From 9f92e89717bd5d4b87a3eb05400fcf3b54dc2b46 Mon Sep 17 00:00:00 2001 From: Michal Danco Date: Thu, 25 May 2023 21:21:59 +0200 Subject: [PATCH] Mangata dev v0.9.40 (#19) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * rename package to avoid name clash (#1716) Co-authored-by: Bastian Köcher * Cargo.lock updated (#1824) * Use resolver 2 in the workspace. (#1817) * BlockId removal: &Hash to Hash (#1818) * BlockId removal: &Hash to Hash It changes &Block::Hash argument to Block::Hash. This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292) * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * Bump clap from 4.0.18 to 4.0.22 (#1830) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.18 to 4.0.22. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.18...v4.0.22) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Collectives: alliance and collective pallets weights (#1813) * Collectives: alliance and collective pallets weights * ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_collective * ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_alliance Co-authored-by: command-bot <> * Add example zombienet network file and instructions (#1839) * Add simple example on how to spin up network. * Update readme * Remove unnecessary prefix * Improve folder structure * Add link to file * Fix paths in readme * Update README.md Co-authored-by: Bastian Köcher Co-authored-by: Bastian Köcher * Bump Swatinem/rust-cache from 2.0.1 to 2.1.0 (#1816) Bumps [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) from 2.0.1 to 2.1.0. - [Release notes](https://github.com/Swatinem/rust-cache/releases) - [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md) - [Commits](https://github.com/Swatinem/rust-cache/compare/22c9328bcba27aa81a32b1bef27c7e3c78052531...b894d59a8d236e2979b247b80dac8d053ab340dd) --- updated-dependencies: - dependency-name: Swatinem/rust-cache dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [ci] Fix publish benchmark results (#1840) * [ci] Fix publish benchmark results * Update scripts/ci/gitlab/pipeline/benchmarks.yml Co-authored-by: Sergejs Kostjucenko <85877331+sergejparity@users.noreply.github.com> * Update scripts/ci/gitlab/pipeline/benchmarks.yml Co-authored-by: Sergejs Kostjucenko <85877331+sergejparity@users.noreply.github.com> Co-authored-by: Sergejs Kostjucenko <85877331+sergejparity@users.noreply.github.com> * Backports from release 0.9.32 * Bump spec_version to 9320 * Companion for Substrate 12586 (#1808) * companion for assets CreateOrigin * more runtimes * fix imports * update lockfile for {"substrate", "polkadot"} Co-authored-by: parity-processbot <> * Bump Swatinem/rust-cache from 2.1.0 to 2.2.0 Bumps [Swatinem/rust-cache](https://github.com/Swatinem/rust-cache) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/Swatinem/rust-cache/releases) - [Changelog](https://github.com/Swatinem/rust-cache/blob/master/CHANGELOG.md) - [Commits](https://github.com/Swatinem/rust-cache/compare/b894d59a8d236e2979b247b80dac8d053ab340dd...359a70e43a0bb8a13953b04a90f76428b4959bb6) --- updated-dependencies: - dependency-name: Swatinem/rust-cache dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Bump ruby/setup-ruby from 1.120.0 to 1.120.1 Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.120.0 to 1.120.1. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/ece82769428359c077b5a5eaff268902a303c101...f2c070bbf74632495b403899c87610cd4cb99dbe) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] * add offchain worker to parachain config (#1860) * Enable Docker section in the release notes * [ci] fix buildah (#1870) * Set `OnTimestampSet = Aura` in all runtimes (#1876) * Add migrations from pallet_asset to statemine, statemint and westmint (#1742) * statemine: migrate pallet assets to v1 * statemint and westmint: migrate pallet assets to v1 * remove items limit * update dependencies and crate imports * change substrate version to dependent PR * revert to master * revert changes to cargo toml * fix weights to test compilation with companion substrate branch * change destroy etrinsic in westmint to new extrinsics * update lockfile for {"polkadot", "substrate"} * rebase Co-authored-by: parity-processbot <> * [ci] Improve pipeline stopper (#1873) * [ci] Improve pipeline stopper * fail pipeline * fix pipeline * Fix for xcm weight benchmarks generation (#1872) * companion for #12599 (#1881) * companion for #12599 * update substrate & polkadot * Bump clap from 4.0.22 to 4.0.25 (#1882) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.22 to 4.0.25. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.22...v4.0.25) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [Backport] bump spec and txn versions from v9320 (#1889) * bump rococo and penpal spec_version (#1885) * bump txn versions (#1851) * bump txn version * Remove the `wasmtime` feature flag (companion for substrate#12684) (#1861) * Remove the `wasmtime` feature flag * Update `substrate` and `polkadot` to the newest `master` * Update `substrate` and `polkadot` to the newest `master` * Bump array-bytes from 4.1.0 to 4.2.0 (#1883) Bumps [array-bytes](https://github.com/hack-ink/array-bytes) from 4.1.0 to 4.2.0. - [Release notes](https://github.com/hack-ink/array-bytes/releases) - [Changelog](https://github.com/hack-ink/array-bytes/blob/main/CHANGELOG) - [Commits](https://github.com/hack-ink/array-bytes/compare/v4.1.0...v4.2.0) --- updated-dependencies: - dependency-name: array-bytes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump futures from 0.3.24 to 0.3.25 (#1791) Bumps [futures](https://github.com/rust-lang/futures-rs) from 0.3.24 to 0.3.25. - [Release notes](https://github.com/rust-lang/futures-rs/releases) - [Changelog](https://github.com/rust-lang/futures-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/rust-lang/futures-rs/compare/0.3.24...0.3.25) --- updated-dependencies: - dependency-name: futures dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Use pallet-sudo extension `CheckOnylSudoAccount` (#1850) * [Backport] weights from v9320 release branch (#1890) * [benchmarks] pr with weights (#1857) Co-authored-by: paritytech-ci * [benchmarks] Update weights for statemine/t (#1859) * [benchmarks] pr with weights * Update parachains/runtimes/assets/westmint/src/weights/pallet_uniques.rs * Update parachains/runtimes/assets/westmint/src/weights/pallet_assets.rs * Update parachains/runtimes/assets/statemine/src/weights/pallet_assets.rs Co-authored-by: paritytech-ci Co-authored-by: Squirrel * fix weights for destroy Co-authored-by: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Co-authored-by: paritytech-ci Co-authored-by: Squirrel Co-authored-by: parity-processbot <> Co-authored-by: Anthony Alaribe * remove 1 Parity Statemine bootnode that will be decommisioned (#1892) * Companion for paritytech/substrate#12739 (#1899) * Companion for paritytech/substrate#12739 * update lockfile for {"substrate", "polkadot"} Co-authored-by: parity-processbot <> * Bump clap from 4.0.25 to 4.0.26 (#1897) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.25 to 4.0.26. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.25...v4.0.26) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * remove 2 Parity statemint bootnodes that will be decommissioned (#1887) Co-authored-by: parity-processbot <> * rename package to avoid name clash (#1716) * Bump tokio from 1.21.2 to 1.22.0 (#1896) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.21.2 to 1.22.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.21.2...tokio-1.22.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Correct issue link (#1904) * Bump bytes from 1.2.1 to 1.3.0 (#1907) Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/tokio-rs/bytes/releases) - [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/bytes/commits) --- updated-dependencies: - dependency-name: bytes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Collectives Alliance: Remove Founder role and veto call (#1902) * Companion: Remove Founder role and veto call * wieghts * update lockfile for {"polkadot", "substrate"} Co-authored-by: joepetrowski Co-authored-by: parity-processbot <> * Allow try-runtime for contracts-rococo (#1906) * Enable try-runtime for contracts-rococo * Fix typo from merge * Remove av-store, av-distribution, chain-api subsystems from minimal node (#1903) * Remove unused subsystems * Consume requests we are not going to answer * Respond to incoming chunk and pov requests. * fmt * Improve comment and logging * Add reputation changes * Do not register pov-chunk-request protocol * Remove inbound chunk request channel * Bump Polkadot * Bump clap from 4.0.26 to 4.0.27 (#1911) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.26 to 4.0.27. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.26...v4.0.27) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Allow Sufficient Assets for XCM Fee Payment on Statemint #1884 (#1910) * Allow Sufficient Assets for XCM Fee Payment on Statemint #1884 * Revert of removed payment.clone().into() * Fixes * Bring AssetFeeAsExistentialDepositMultiplier to test_asset_xcm_trader * Fixes * Companion for Substrate 12740 (#1898) * add helper config trait * benchmarkhelper * update config * update tests * into * update lockfile for {"substrate", "polkadot"} * include benchmarks in tomls Co-authored-by: parity-processbot <> * Bump serde from 1.0.145 to 1.0.147 (#1797) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.145 to 1.0.147. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.145...v1.0.147) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * update lockfile (#1923) * Bump syn from 1.0.103 to 1.0.104 (#1918) Bumps [syn](https://github.com/dtolnay/syn) from 1.0.103 to 1.0.104. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/1.0.103...1.0.104) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Companion for contracts: Replace cargo feature `unstable-interface` with config (#1916) * contracts: Add `UnsafeUnstableInterface` * update lockfile for {"substrate", "polkadot"} Co-authored-by: parity-processbot <> * Bump clap from 4.0.27 to 4.0.29 (#1928) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.27 to 4.0.29. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.27...v4.0.29) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump async-trait from 0.1.58 to 0.1.59 (#1921) Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.58 to 0.1.59. - [Release notes](https://github.com/dtolnay/async-trait/releases) - [Commits](https://github.com/dtolnay/async-trait/compare/0.1.58...0.1.59) --- updated-dependencies: - dependency-name: async-trait dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove more protocols from minimal collator (#1927) * Bump serde from 1.0.147 to 1.0.148 (#1929) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.147 to 1.0.148. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.147...v1.0.148) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump array-bytes from 4.2.0 to 6.0.0 (#1919) Bumps [array-bytes](https://github.com/hack-ink/array-bytes) from 4.2.0 to 6.0.0. - [Release notes](https://github.com/hack-ink/array-bytes/releases) - [Changelog](https://github.com/hack-ink/array-bytes/blob/main/CHANGELOG) - [Commits](https://github.com/hack-ink/array-bytes/compare/v4.2.0...v6.0.0) --- updated-dependencies: - dependency-name: array-bytes dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * BridgeHubKusama - initial setup - (chain_spec + basic runtime without any bridging pallets) (#1764) * [BridgeHub] Setup Rococo backbone parachain * [BridgeHub] Setup Wococo parachain backbone (reused from Rococo) [Bridge-Backport] Rebase-fix BridgeHub] Added zombienet startup tomls for Rococo/Wococo Fix typo * [BridgeHub] Added chain_spec for live Rococo/Wococo * [BridgeHub] Clean bridge-hub-rococo runtime * [BridgeHub] Add bridge-hub-rococo to CI pipelines * [BridgeHub] Added bridge-hub-kusama - empty runtime/chain_spec setup * Fixes * Fixes for BH * Fixes for other runtimes - align all * Fixes - const * Fixes const * Fixes * Fix kusama-local * Sample zombienet runs * Fixes * Fixes for benchmarking * Fixes CI * Fixes * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs frame_system * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_collator_selection * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_balances * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_session * Fixes name * Fixes readme * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_timestamp * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs cumulus_pallet_xcmp_queue * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_collator_selection * Fixes * Fixes * rustfmt * Fixes * Added pallet_utility/pallet_multisig * Blind try for regex pr-custom-review.yml (added bridge-hub-kusama + collectives-polkadot) * Fixes * Fixes * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_utility * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_multisig * Trying to fix sed expression? * Added license headers + correct "DAG:" desc Co-authored-by: command-bot <> * Provisioner polkadot companion (#1940) * Provisioner companion changes * update substrate commit hash * Update Substrate & Polkadot Co-authored-by: Bastian Köcher * Bump environmental from 1.1.3 to 1.1.4 (#1933) Bumps environmental from 1.1.3 to 1.1.4. --- updated-dependencies: - dependency-name: environmental dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump syn from 1.0.104 to 1.0.105 (#1936) Bumps [syn](https://github.com/dtolnay/syn) from 1.0.104 to 1.0.105. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/1.0.104...1.0.105) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Upgrade tokio to 1.22.0 and replace async-std with tokio (#1917) * Make tokio executor mandatory * kick CI * Update Cargo.lock * add collectives-polkadot final raw chainspec (#1914) * Companion of Substrate PR 12837 (#1944) * remove reference to remote-externalities * update reference to remote-externalities * s/remote-ext/frame-remote-externalities * copy the fix from https://github.com/paritytech/cumulus/pull/1917/commits/747400a0d7876a605290103b5d4341072b4e0868 * update cargo.lock * Bump serde from 1.0.148 to 1.0.149 (#1948) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.148 to 1.0.149. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.148...v1.0.149) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove `parity-util-mem` (#1958) Fully removes the `parity-util-mem` dependency. This just required upgrading to the latest versions of the polkadot crates. * dependabot: Ignore rococo deps (#1963) * Bump ruby/setup-ruby from 1.120.1 to 1.127.0 (#1951) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.120.1 to 1.127.0. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/f2c070bbf74632495b403899c87610cd4cb99dbe...ee2113536afb7f793eed4ce60e8d3b26db912da4) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add collective runtime upgrade to the checklist (#1966) * zombienet, store node's logs as artifacts (#1969) * Backport collective weights from v9330 to master (#1959) * [benchmarks] pr with weights (#1945) Co-authored-by: paritytech-ci * Use master for some methods Co-authored-by: Egor_P Co-authored-by: paritytech-ci * [Backport] version bumps from 9330 (#1956) * Bump crate versions * Bump spec_version to 9330 * bump rococo and penpal spec_version (#1926) * bump txn versions (#1941) * bump txn versions * bump rococo txn version * bump bridge-hub-kusama spec_version * [ci] new ci runners (#1967) * [DNM] test ci runners * restart pipeline * switch to c2 runners * restart pipeline * change runner tag * [benchmarks] pr with weights (#1946) (#1971) Co-authored-by: paritytech-ci Co-authored-by: Egor_P Co-authored-by: paritytech-ci * Companion for paritytech/substrate#12868 (#1970) * Replace WEIGHT_PER_* with WEIGHT_REF_TIME_PER_* * Fixes * Fixes * update lockfile for {"substrate", "polkadot"} Co-authored-by: parity-processbot <> * Collectives runtime: add query call info api (#1976) * Companion for paritytech/substrate#12764 (#1930) * Companion for paritytech/substrate#12764 * Remove `async-trait` * Fix trait * update lockfile for {"substrate", "polkadot"} Co-authored-by: parity-processbot <> * Replace the label checks using bash script by `ruled-labels` (#1576) * Add rules and specs * add labels * Add new checks * Fix criticality check * Use the new rule filter introduced in ruled-labels v0.3.0 to better target tests * Add workflow to tests label rules * Fix trigger * Add new GH Workflow * Don't swallow failures but allow them * Fix new script * Simplify check * Fix Workflow * Remove dup var * Fix vars * Move pull image to separate step * Remove continue on error * Show input list of labels * Fix check-labels workflow * Remove Docker -it flags * Prevent shell from splitting on spaces * Fix rules path * Comment out rules related to labels not present in the repo * Fix tests * Fix labels specs and tests * fix test * new label description and rules * fix tests * use ruled_labels as crate * fix toolchain * fix component * move from docker to crate * fix test * fail without labels * add cache * fix check no labels * add D-labels check * fix emtpy label check * try docker * fix specs * test D label * revert Cargo.toml * use tags for ruled_labels * fix rules * test D label * fix tags * remove changes * add PR tag to single criticality rule * remove old line * test ruled_labels test * disable Check label Rules * fix GHA name * fix tests * rename files, upd ruled_labels 0.3.2 Co-authored-by: alvicsam Co-authored-by: parity-processbot <> Co-authored-by: Joyce Siqueira Co-authored-by: joyce Co-authored-by: Joyce Siqueira <98593770+the-right-joyce@users.noreply.github.com> Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com> * Description for new cumulus labels (#1879) * Add files via upload Documentation for new labels * Update documentation.md * companion for #12663 jsonrpsee v0.16 (#1905) * companion for #12663 jsonrpsee v0.16.1 * update deps * update rpc client params * update substrate and polkadot * Bump tokio from 1.22.0 to 1.23.0 (#1952) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.22.0 to 1.23.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.22.0...tokio-1.23.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * add test onto statemint as well as statemine now (#1954) (#1955) (as functionallity is rolled out) * [ci] use external repo for check-labels (#1985) * [ci] use external repo for check-labels * remove ruled_labels specs, docs * remove repo checkout * remove checkout action * remove old gha * Introduce migrations for inactive balances (#1943) * Introduce migrations * Introduce migrations * Bump Co-authored-by: joepetrowski * Collectives integration tests (#1979) Co-authored-by: parity-processbot <> * [ci] Add variable to disable selected jobs (#1986) * [ci] Add variable to disable selected jobs * apply suggestion Co-authored-by: parity-processbot <> * Companion for substrate#12845 (#1960) * Companion for substrate#12845 * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * [ci] small fix for job switcher (#1990) * Allow to specify multiple relay chain RPC urls for collator node (#1880) * Allow specification of multiple urls for relay chain rpc nodes * Add pooled RPC client basics * Add list of clients to pooled client * Improve * Forward requests to dispatcher * Switch clients on error * Implement rotation logic * Improve subscription handling * Error handling cleanup * Remove retry from rpc-client * Improve naming * Improve documentation * Improve `ClientManager` abstraction * Adjust zombienet test * Add more comments * fmt * Apply reviewers comments * Extract reconnection to extra method * Add comment to reconnection method * Clean up some dependencies * Fix build * fmt * Provide alias for cli argument * Apply review comments * Rename P* to Relay* * Improve zombienet test * fmt * Fix zombienet sleep * Simplify zombienet test * Reduce log clutter and fix starting position * Do not distribute duplicated imported and finalized blocks * fmt * Apply code review suggestions * Move building of relay chain interface to `cumulus-client-service` * Refactoring to not push back into channel * FMT * companion for try-runtime revamp (#1997) * companion for try-rutnime revamp * Fixes Co-authored-by: Bastian Köcher * Bump serde from 1.0.149 to 1.0.150 (#1987) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.149 to 1.0.150. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.149...v1.0.150) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove integration tests that are covered by zombienet (#1998) * Bump scale-info from 2.3.0 to 2.3.1 (#1978) Bumps [scale-info](https://github.com/paritytech/scale-info) from 2.3.0 to 2.3.1. - [Release notes](https://github.com/paritytech/scale-info/releases) - [Changelog](https://github.com/paritytech/scale-info/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/scale-info/compare/v2.3.0...v2.3.1) --- updated-dependencies: - dependency-name: scale-info dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump toml from 0.5.9 to 0.5.10 (#1995) Bumps [toml](https://github.com/toml-rs/toml) from 0.5.9 to 0.5.10. - [Release notes](https://github.com/toml-rs/toml/releases) - [Commits](https://github.com/toml-rs/toml/commits/toml-v0.5.10) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde from 1.0.150 to 1.0.151 (#2001) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.150 to 1.0.151. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.150...v1.0.151) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump quote from 1.0.21 to 1.0.23 (#2003) Bumps [quote](https://github.com/dtolnay/quote) from 1.0.21 to 1.0.23. - [Release notes](https://github.com/dtolnay/quote/releases) - [Commits](https://github.com/dtolnay/quote/compare/1.0.21...1.0.23) --- updated-dependencies: - dependency-name: quote dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump dyn-clone from 1.0.9 to 1.0.10 (#2005) Bumps [dyn-clone](https://github.com/dtolnay/dyn-clone) from 1.0.9 to 1.0.10. - [Release notes](https://github.com/dtolnay/dyn-clone/releases) - [Commits](https://github.com/dtolnay/dyn-clone/compare/1.0.9...1.0.10) --- updated-dependencies: - dependency-name: dyn-clone dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump thiserror from 1.0.37 to 1.0.38 (#2004) Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.37 to 1.0.38. - [Release notes](https://github.com/dtolnay/thiserror/releases) - [Commits](https://github.com/dtolnay/thiserror/compare/1.0.37...1.0.38) --- updated-dependencies: - dependency-name: thiserror dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Limit number of blocks per level (2nd attempt) (#1559) Prevents the StateDbError::TooManySiblingBlocks error from being triggered by eagerly removing stale blocks from the backend on block import and before the error condition is met. Introduces a just in time block recovery mechanism for blocks that were wrongly removed via an explicit pov-recovery method Co-authored-by: Bastian Köcher * Expect less chaos: use explicit call indices (#1984) * Expect less chaos: set call index explicitly. * mark test pallet as dev mode so explicit call indicies are not required. * Fix 'dev_mode' syntax Signed-off-by: Oliver Tale-Yazdi Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Oliver Tale-Yazdi * BlockId removal: refactor: HeaderBackend::header (#1977) * BlockId removal: refactor: HeaderBackend::header It changes the arguments of: - `HeaderBackend::header`, - `Client::header` methods from: `BlockId` to: `Block::Hash` This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292) * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * Bridge hub kusama fine-tuning before release (#1999) * Fix benchmarks-ci.sh - missing pallet_utility/pallet_multisig * Missing ParentAsSuperuser for bridge-hubs * Fixed missing stuff in benchmarks.yml * Added MigrateToTrackInactive + CheckingAccount (for completness as other runtimes) * Measured xcm weights for bridge-hubs * Fix for fungible benchmarks * ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::generic * Reverting migrations - no need for them * script for generate genesis spec/head/wasm * Adding invulnerables and session.keys to the script (https://github.com/paritytech/devops/issues/2196) * update chainspec with cmd: ./scripts/create_bridge_hub_kusama_spec.sh ./target/release/wbuild/bridge-hub-kusama-runtime/bridge_hub_kusama_runtime.compact.compressed.wasm 1003 * para_id 1003 -> 1002, cmd: ./scripts/create_bridge_hub_kusama_spec.sh ./target/release/wbuild/bridge-hub-kusama-runtime/bridge_hub_kusama_runtime.compact.compressed.wasm 1002 Co-authored-by: command-bot <> * Bump syn from 1.0.105 to 1.0.107 (#2008) Bumps [syn](https://github.com/dtolnay/syn) from 1.0.105 to 1.0.107. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/1.0.105...1.0.107) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.47 to 1.0.49 (#2010) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.47 to 1.0.49. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.47...1.0.49) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * BlockId removal: refactor: HeaderBackend::status (#2007) * BlockId removal: refactor: HeaderBackend::status It changes the arguments of `HeaderBackend::status` method from: `BlockId` to: `Block::Hash` This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292) * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * Companion for Substrate 12307 (#1947) * Companion for pallet-assets callback * Update lock file * Bump serde_json from 1.0.89 to 1.0.91 (#2009) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.89 to 1.0.91. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.89...v1.0.91) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Companion: Accept Kusama StakingAdmin origin (#1865) * Companion: Accept Kusamsa StakinAdmin origin * Fellows origin for xcmp queue controller * plurality bodies to ensure origin * include root into controller ensure origin * fix * use xcm bodies * rename to more frequent "defense" Co-authored-by: parity-processbot <> * Alliance: remove veto weight func (#2030) * Alliance: remove veto weight func * update lockfile for {"substrate", "polkadot"} Co-authored-by: parity-processbot <> * Bump clap from 4.0.29 to 4.0.32 (#2032) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.29 to 4.0.32. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.29...v4.0.32) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump async-trait from 0.1.59 to 0.1.60 (#2024) Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.59 to 0.1.60. - [Release notes](https://github.com/dtolnay/async-trait/releases) - [Commits](https://github.com/dtolnay/async-trait/compare/0.1.59...0.1.60) --- updated-dependencies: - dependency-name: async-trait dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Collectives parachain integration tests update (#2036) * Collectives: update integration tests * update title * Bump serde from 1.0.151 to 1.0.152 (#2045) Bumps [serde](https://github.com/serde-rs/serde) from 1.0.151 to 1.0.152. - [Release notes](https://github.com/serde-rs/serde/releases) - [Commits](https://github.com/serde-rs/serde/compare/v1.0.151...v1.0.152) --- updated-dependencies: - dependency-name: serde dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Backport weights from 9360 (#2038) * [benchmarks] pr with weights (#2026) Co-authored-by: paritytech-ci * [benchmarks] pr with weights Collectives (#2025) * [benchmarks] pr with weights * provide veto method for trait Co-authored-by: paritytech-ci Co-authored-by: muharem * [benchmarks] pr with weights (#2027) Co-authored-by: paritytech-ci Co-authored-by: paritytech-ci Co-authored-by: muharem * Bump secp256k1 from 0.24.0 to 0.24.2 (#1973) Bumps [secp256k1](https://github.com/rust-bitcoin/rust-secp256k1) from 0.24.0 to 0.24.2. - [Release notes](https://github.com/rust-bitcoin/rust-secp256k1/releases) - [Changelog](https://github.com/rust-bitcoin/rust-secp256k1/blob/secp256k1-0.24.2/CHANGELOG.md) - [Commits](https://github.com/rust-bitcoin/rust-secp256k1/compare/secp256k1-0.24.0...secp256k1-0.24.2) --- updated-dependencies: - dependency-name: secp256k1 dependency-type: indirect ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * BlockId removal: refactor: BlockBackend::block|block_status (#2041) * BlockId removal: refactor: BlockBackend::block|block_status It changes the arguments of: - `BlockBackend::block` - `BlockBackend::block_status` method from: `BlockId` to: `Block::Hash` This PR is part of BlockId::Number refactoring analysis (paritytech/substrate#11292) * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * remove 9330 migrations from statemint series (#2031) (#2039) Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Backport version bumps from 9360 (#2037) * Bump crate versions * Bump spec_version to 9360 * bump rococo and penpal spec_version * bump txn versions (#2018) (#2020) * Co #6498: Selectable on-runtime-upgrade checks (#2057) * Use UpgradeCheckSelector Signed-off-by: Oliver Tale-Yazdi * cargo update -p polkadot-primitives Signed-off-by: Oliver Tale-Yazdi * cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi Signed-off-by: Oliver Tale-Yazdi * upgrade libp2p to 0.50.0 (#2056) * update asynchronous-codec * update futures-rustls * update rustls * update ipnet * update once_cell * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * NFTs 2.0 on Westmint (#2058) * Add nfts pallet to westmint config * Fmt * Use ConstU32 * Bump assert_cmd from 2.0.5 to 2.0.7 (#2066) Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 2.0.5 to 2.0.7. - [Release notes](https://github.com/assert-rs/assert_cmd/releases) - [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.5...v2.0.7) --- updated-dependencies: - dependency-name: assert_cmd dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove the `RelaychainClient` trait (#2068) * Remove the `RelaychainClient` trait It was just some historical trait that isn't really required anymore. Besides that this pr re-exports types that are being used by the relay chain interface to make its usage easier. * Fix warning * Bump tokio from 1.23.0 to 1.24.1 (#2065) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.23.0 to 1.24.1. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.23.0...tokio-1.24.1) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Refactor `validate_block` (#2069) * Refactor `validate_block` This pull request changes the `validate_block` implementation. One of the key changes are that we free data structures as early as possible. The memory while validating the block is scarce and we need to give as much as possible to the actual execution of the block. Besides that the pr moves the validation of the `validation_data` into the `validate_block` implementation completely instead of using this machinery with putting the data into some global variable that would then be read while executing the block. There are also some new docs to explain the internals of `validate_block`. * No clone wars!! * Integrate more feedback * FMT * Delay the header encoding * Bump ruby/setup-ruby from 1.127.0 to 1.133.2 (#2075) Bumps [ruby/setup-ruby](https://github.com/ruby/setup-ruby) from 1.127.0 to 1.133.2. - [Release notes](https://github.com/ruby/setup-ruby/releases) - [Commits](https://github.com/ruby/setup-ruby/compare/ee2113536afb7f793eed4ce60e8d3b26db912da4...93287a1fa82c6ddbb6d8db978df4b0119cd8879f) --- updated-dependencies: - dependency-name: ruby/setup-ruby dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump JasonEtco/create-an-issue from 2.6.0 to 2.9.1 (#2042) Bumps [JasonEtco/create-an-issue](https://github.com/JasonEtco/create-an-issue) from 2.6.0 to 2.9.1. - [Release notes](https://github.com/JasonEtco/create-an-issue/releases) - [Commits](https://github.com/JasonEtco/create-an-issue/compare/9e6213aec58987fa7d2f4deb8b256b99e63107a2...e27dddc79c92bc6e4562f268fffa5ed752639abd) --- updated-dependencies: - dependency-name: JasonEtco/create-an-issue dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Use primitives reexported from `polkadot_primitives` crate root (#2067) * Use primitives reexported from `polkadot_primitives` crate root * restart CI * Fixes after merge * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * remove update-parachain-template (#2077) will be moved to polkadot's pipeline ref https://github.com/paritytech/release-engineering/issues/142 * Minor update to Readme - Statemint section (#2078) * Minor update to Readme - Statemint section Common good -> System * update parchains readme * Update parachains/README.md Co-authored-by: Bastian Köcher Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Bastian Köcher * Remove old migrations (#2040) Co-authored-by: joepetrowski * BHK + BH-Westend release backport (#2083) * Runtime code according to the released runtime bridge-hub-kusama_runtime-v9360.compact.compressed.wasm * Add chains spec for westend with generated by `./scripts/create_bridge_hub_westend_spec.sh ~/Downloads/upload/bridge-hub-kusama_runtime-v9360.compact.compressed.wasm 1002` * fmt * XCM v3 Companion (#697) * Fixes * Undiener * Undiener * Undiener * Lockfile * Changes for send returning hash * Include message ID as params to execute_xcm * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Companion fixes * Formatting * Fixes * Formatting * Bump * Bump * Fixes * Formatting * Make the price of UMP/XCMP message sending configurable * cargo fmt * Remove InvertLocation * Formatting * Use ConstantPrice from polkadot-runtime-common * Fix naming * cargo fmt * Fixes * Fixes * Fixes * Add CallDispatcher * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Fixes * Remove unused import * Remove unused import * XCMv3 fixes (#1710) * Fixes XCMv3 related Fixes XCMv3 (removed query_holding) Fixes XCMv3 - should use _depositable_count? Fixes XCMv3 - removed TrustedReserve Fixes - missing weights for statemine/statemint/westmint [DO-NOT-CHERRY-PICK] tmp return query_holding to aviod conficts to master Fixes - missing functions for pallet_xcm_benchmarks::generic::Config Fixes for XCMv3 benchmarking Fix xcm - removed query_holding * ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic * Fix imports * Avoid consuming XCM message for NotApplicable scenario (#1787) * Avoid consuming message for NotApplicable scenario * Avoid consuming message for NotApplicable scenario tests * Add 10 message processing limit to DMP queue * Add 10 message limit to XCMP queue * Always increment the message_processed count whenever a message is processed * Fix formatting * Set an upper limit to the overweight message DMP queue * Add upper limit to XCMP overweight message queue * Fix for missing weight for `fn unpaid_execution()` * Fix - usage of `messages_processed` * Fixes * Fixes * Fixes * cargo fmt * Fixes * Fixes * Fixes * Fixes * Remove unused import * Fixes for gav-xcm-v3 (#1835) * Fix for FungiblesAdapter - trait changes: Contains -> AssetChecking * Fix for missing weight for `fn unpaid_execution()` * Used NonLocalMint for all NonZeroIssuance * Fix * Fixes * Fixes * Fixes * Fixes * Fixes * Fix tests * Fixes * Add SafeCallFilter * Add missing config items * Add TODO * Use () as the PriceForParentDelivery * Fixes * Fixes * Fixes * Fixes * Update transact_origin to transact_origin_and_runtime_call * Add ReachableDest config item to XCM pallet * Update SafeCallFilter to allow remark_with_event in runtime benchmarks * cargo fmt * Update substrate * Fix worst_case_holding * Fix DMQ queue unit tests * Remove unused label * cargo fmt * Actually process incoming XCMs * Fixes * Fixes * Fixes * Fixes - return back Weightless * Added measured benchmarks for `pallet_xcm` (#1968) * Fix Fix Fix * Fix * Fixes for transact benchmark * Fixes add pallet_xcm to benchmarks * Revert remark_with_event * ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic * Fixes * TMP * Fix for reserve_asset_deposited * ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm * Fix * ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm * Fix * ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm * Fix westmint * ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic * Fix * ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm * Fix for collectives * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm * ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm * Fixes for bridge-hubs * Fixes - return back Weightless * Fix - removed MigrateToTrackInactive for contracts-rococo Co-authored-by: command-bot <> * cargo fmt * Fix benchmarks * Bko gav xcm v3 (#1993) * Fix * ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" xcm statemine assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm statemint assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm westmint assets pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm * ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm * ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm * ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm * ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm Co-authored-by: command-bot <> * Change AllowUnpaidExecutionFrom to be explicit * xcm-v3 benchmarks, weights, fixes for bridge-hubs (#2035) * Dumy weights to get compile * Change UniversalLocation according to https://github.com/paritytech/polkadot/pull/4097 (Location Inversion Removed) * Fix bridge-hubs weights * ".git/.scripts/bench-bot.sh" pallet statemine assets pallet_xcm * ".git/.scripts/bench-bot.sh" pallet statemint assets pallet_xcm * ".git/.scripts/bench-bot.sh" pallet collectives-polkadot collectives pallet_xcm * ".git/.scripts/bench-bot.sh" pallet westmint assets pallet_xcm * ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::generic * ".git/.scripts/bench-bot.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" pallet bridge-hub-kusama bridge-hubs pallet_xcm * ".git/.scripts/bench-bot.sh" pallet bridge-hub-rococo bridge-hubs pallet_xcm * ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::fungible * ".git/.scripts/bench-bot.sh" xcm bridge-hub-rococo bridge-hubs pallet_xcm_benchmarks::generic * Change NetworkId to Option Co-authored-by: command-bot <> Co-authored-by: Keith Yeung * Add event for showing the hash of an UMP sent message (#1228) * Add UpwardMessageSent event in parachain-system * additional fixes * Message Id * Fix errors from merge * fmt * more fmt * Remove todo * more formatting * Fixes * Fixes * Fixes * Fixes * Allow explicit unpaid executions from the relay chains for system parachains (#2060) * Allow explicit unpaid executions from the relay chains for system parachains * Put origin-filtering barriers into WithComputedOrigin * Use ConstU32<8> * Small nits * formatting * cargo fmt * Allow receiving XCMs from any relay chain plurality * Fixes * update lockfile for {"polkadot", "substrate"} * Update polkadot * Add runtime-benchmarks feature Co-authored-by: Keith Yeung Co-authored-by: Branislav Kontur Co-authored-by: girazoki Co-authored-by: parity-processbot <> * Instantiate All Assets Pallets (#1908) * instantiate all assets pallets * assets instance * fmt * fix merge errors * fmt * no default instance * Generic AssetFeeAsExistentialDepositMultiplier Signed-off-by: Oliver Tale-Yazdi * remove old import * don't rename pallet in runtime * fix merge Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Oliver Tale-Yazdi * Bump assert_cmd from 2.0.7 to 2.0.8 (#2074) Bumps [assert_cmd](https://github.com/assert-rs/assert_cmd) from 2.0.7 to 2.0.8. - [Release notes](https://github.com/assert-rs/assert_cmd/releases) - [Changelog](https://github.com/assert-rs/assert_cmd/blob/master/CHANGELOG.md) - [Commits](https://github.com/assert-rs/assert_cmd/compare/v2.0.7...v2.0.8) --- updated-dependencies: - dependency-name: assert_cmd dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * adjust pallet_contracts config (#2108) * Companion for paritytech/polkadot#6578 (#2112) * Add ExpectTransactStatus benchmarking * cargo fmt * update lockfile for {"polkadot", "substrate"} Co-authored-by: parity-processbot <> * [backport] version bumps from release 9370 (#2095) * Bump crate versions * Bump spec_version to 9370 Co-authored-by: parity-processbot <> * Simplify the template (#2072) * Simplify the template * Fix and use generated whitelisted keys * Fixes * Update Substrate to fix compilation * :facepalm: * Use correct runtime function name (#2116) The runtime function name doesn't change on chain, especially not for old runtimes. * Bump clap from 4.0.32 to 4.1.1 (#2096) Bumps [clap](https://github.com/clap-rs/clap) from 4.0.32 to 4.1.1. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.0.32...v4.1.1) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Warn validators with slow hardware (#1863) * Warn validators with slow hardware * update * fix * revert * Fix printing logic Signed-off-by: Oliver Tale-Yazdi * Update polkadot-parachain/src/service.rs * import Signed-off-by: Oliver Tale-Yazdi * update lockfile for {"substrate", "polkadot"} Signed-off-by: Oliver Tale-Yazdi Co-authored-by: parity-processbot <> Co-authored-by: Oliver Tale-Yazdi * Bump lru from 0.8.1 to 0.9.0 (#2052) * Bump lru from 0.8.1 to 0.9.0 Bumps [lru](https://github.com/jeromefroe/lru-rs) from 0.8.1 to 0.9.0. - [Release notes](https://github.com/jeromefroe/lru-rs/releases) - [Changelog](https://github.com/jeromefroe/lru-rs/blob/master/CHANGELOG.md) - [Commits](https://github.com/jeromefroe/lru-rs/compare/0.8.1...0.9.0) --- updated-dependencies: - dependency-name: lru dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] * Update substrate and polkadot Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Keith Yeung * Bump tokio from 1.24.1 to 1.24.2 (#2110) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.24.1 to 1.24.2. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/commits) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [ci] Update check-labels and fix check (#2128) * Removed forgotten unused `pub Ancestry: MultiLocation` (#2124) * Bump parity-db (#2132) * Bump async-trait from 0.1.60 to 0.1.63 (#2123) Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.60 to 0.1.63. - [Release notes](https://github.com/dtolnay/async-trait/releases) - [Commits](https://github.com/dtolnay/async-trait/compare/0.1.60...0.1.63) --- updated-dependencies: - dependency-name: async-trait dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Remove assumption that there is a local bootnode in RPC collator (#2091) * Remove assumption that there is a local bootnode * Bump zombienet to 1.3.29 * Separate "--" * Westend Collectives raw chain spec (#2131) * Bump proc-macro-crate from 1.2.1 to 1.3.0 (#2139) Bumps [proc-macro-crate](https://github.com/bkchr/proc-macro-crate) from 1.2.1 to 1.3.0. - [Release notes](https://github.com/bkchr/proc-macro-crate/releases) - [Commits](https://github.com/bkchr/proc-macro-crate/compare/v1.2.1...v1.3.0) --- updated-dependencies: - dependency-name: proc-macro-crate dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Do not verify on state import for relay chain verifier (#2140) * Skip verification on state import * Actually use existing variables * Merge checks * nix upgrade to 0.26.1 (#2135) * [ci] Update runners for benchmarks (#2138) * [ci] Update runners for benchmarks * run benchmarks in this pr to get weights * run benches only * comment .post jobs * add docker env to benches * add git diff to artifacts * divide assets * update weights * return ci * fix refs for benchmarks * Bump toml from 0.5.10 to 0.6.0 (#2146) Bumps [toml](https://github.com/toml-rs/toml) from 0.5.10 to 0.6.0. - [Release notes](https://github.com/toml-rs/toml/releases) - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.5.10...toml-v0.6.0) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump clap from 4.1.1 to 4.1.4 (#2145) Bumps [clap](https://github.com/clap-rs/clap) from 4.1.1 to 4.1.4. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/clap_complete-v4.1.1...v4.1.4) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump proc-macro2 from 1.0.49 to 1.0.50 (#2130) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.49 to 1.0.50. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.49...1.0.50) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * 13110 Companion: Add WeightToFee and LengthToFee Runtime API (#2073) * Add WeightToFee runtime API impls * Fix typo * Forgot some * Update Substrate & Polkadot * Update --------- Co-authored-by: Bastian Köcher * Companion: Remove `uncles` related code (#2126) * Companion: Remove `uncles` related code https://github.com/paritytech/substrate/pull/13216 * update lockfile for {"polkadot", "substrate"} --------- Co-authored-by: parity-processbot <> * Update benchmark's successful origin api (#2122) * Update benchmark's successful origin api * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * CI: Code mark to request a pipeline failure (#2158) * Added new empty shell runtime for `BridgeHubPolkadot` (without bridging stuff) for onboarding parachain on Polkadot (#2137) * Added new empty shell runtime for `BridgeHubPolkadot` (without bridging stuff) for onboarding parachain on Polkadot * Fix benchmarks/try-runtime * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs frame_system * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_balances * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_multisig * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_xcm * Fixes * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_session * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_utility * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_timestamp * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs pallet_collator_selection * ".git/.scripts/commands/bench/bench.sh" pallet bridge-hub-polkadot bridge-hubs cumulus_pallet_xcmp_queue * PR fixes * Rebase fix * Fix new runtime api * ".git/.scripts/commands/bench/bench.sh" xcm bridge-hub-polkadot bridge-hubs pallet_xcm_benchmarks::fungible * ".git/.scripts/commands/bench/bench.sh" xcm bridge-hub-polkadot bridge-hubs pallet_xcm_benchmarks::generic * Updated aura/bootNodes in `create_bridge_hub_polkadot_spec.sh` --------- Co-authored-by: command-bot <> * Bump futures from 0.3.25 to 0.3.26 (#2152) * Update rockmine bootnodes URLs (#2165) * Bump parity-scale-codec from 3.2.2 to 3.3.0 (#2147) Bumps [parity-scale-codec](https://github.com/paritytech/parity-scale-codec) from 3.2.2 to 3.3.0. - [Release notes](https://github.com/paritytech/parity-scale-codec/releases) - [Changelog](https://github.com/paritytech/parity-scale-codec/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/parity-scale-codec/compare/parity-scale-codec-v3.2.2...parity-scale-codec-3.3.0) --- updated-dependencies: - dependency-name: parity-scale-codec dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump tokio from 1.24.2 to 1.25.0 (#2153) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.24.2 to 1.25.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/commits/tokio-1.25.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * remove collectives migrations (#2103) (#2150) Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Co #13301: Rename `pallet-random-collective-flip` (#2159) * Rename pallet random-collective-flip Signed-off-by: Oliver Tale-Yazdi * cargo update -p polkadot-runtime-common Signed-off-by: Oliver Tale-Yazdi * cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi * cargo update -p polkadot-runtime-common Signed-off-by: Oliver Tale-Yazdi * cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi * Try to fix features Signed-off-by: Oliver Tale-Yazdi --------- Signed-off-by: Oliver Tale-Yazdi * Added bootNodes/invulnerables/session.keys to the polkadot genesis chain_spec script (#2171) * Bump bytes from 1.3.0 to 1.4.0 (#2166) Bumps [bytes](https://github.com/tokio-rs/bytes) from 1.3.0 to 1.4.0. - [Release notes](https://github.com/tokio-rs/bytes/releases) - [Changelog](https://github.com/tokio-rs/bytes/blob/master/CHANGELOG.md) - [Commits](https://github.com/tokio-rs/bytes/compare/v1.3.0...v1.4.0) --- updated-dependencies: - dependency-name: bytes dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump serde_json from 1.0.91 to 1.0.92 (#2169) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.91 to 1.0.92. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.91...v1.0.92) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add retry mechanism for pov-recovery, fix full-node pov-recovery (#2164) * Increase delay for pov-recovery * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Comment * FMT * Clear waiting_recovery when block is recovered or recovery failed * Introduce recovery queue that preserved insertion order * Better error logs * Decrease slot duration * Style improvements * Add option to use unordered queue * Maintain cache of finalized blocks * Wait for one relay chain slot before recovery * Make retries testable * fmt * Improve docs * Improve docs * Simplify RecoveryQueue * Remove unwanted changes * Adjust to comments * Apply suggestions from code review Co-authored-by: Bastian Köcher * Move recovery delay into the queue * Check for finalized number * Clean up * Use timer Co-authored-by: Bastian Köcher * Simplify implementation * Revert "Use timer" This reverts commit 3809eed840d3a09d54212f99486782ff80cdc1c9. * Properly clear `to_recover` flag --------- Co-authored-by: Bastian Köcher * [Enhancement] Use XCM V3 for initiate_teleport weight calc (#2102) * [Enhancement] Use XCM V3 for initiate_teleport weight calc * deref * replicate in all the runtimes * fmt * better handling for AllOf * fmt * small type fix * replicate the fix for all runtimes --------- Co-authored-by: parity-processbot <> * Companion for substrate#13159 (#2136) * set setMembersOrigin * Update Substrate & Polkadot --------- Co-authored-by: Bastian Köcher * Companion for #13158 (#2121) * Companion for #13158 * Update values * Add MaxAttributesPerCall * Update weights * Apply suggestions * Fix imports * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump parity-scale-codec from 3.3.0 to 3.4.0 (#2182) Bumps [parity-scale-codec](https://github.com/paritytech/parity-scale-codec) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/paritytech/parity-scale-codec/releases) - [Changelog](https://github.com/paritytech/parity-scale-codec/blob/master/CHANGELOG.md) - [Commits](https://github.com/paritytech/parity-scale-codec/compare/parity-scale-codec-3.3.0...v3.4.0) --- updated-dependencies: - dependency-name: parity-scale-codec dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Add stake.plus bootnodes for westmint, statemine, statemint, and collectives (Polkadot) (#2176) Co-authored-by: root * add warp_sync_params (#1909) * wait for relay chain to sync then get parachain header * Spawn new thread to wait for the target block * second round of comments from the PR on substrate * third round of pr comments * add zombienet tests * rebase issues * refactor tests based on pr comments * rebase issues * pr comments * passing zombienet test * cargo +nightly fmt * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * use cargo lock from master * pr comments * cargo fmt * use finalised block instead of best block * use import notification stream * rebase changes * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/relay-chain-interface/src/lib.rs Co-authored-by: Bastian Köcher * Update client/relay-chain-interface/src/lib.rs Co-authored-by: Bastian Köcher * pr comments * use new file names * db snaphots moved to google cloud storage * Update client/network/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Bastian Köcher * Update client/service/src/lib.rs Co-authored-by: Sebastian Kunert * pr comments * Update zombienet/tests/0007-full_node_warp_sync.toml Co-authored-by: Sebastian Kunert * Update zombienet/tests/0007-full_node_warp_sync.toml Co-authored-by: Sebastian Kunert * Scenario 1 Parachain node and in-node relay chain both start with --sync warp. This ensures that the waiting logic works as expected. Scenario 2 Parachain node starts with warp sync, relay chain points to a node already synced up scenario 3 Parachain node starts with warp sync, relay chain points to a node that uses warp sync * Use test-parachain * use test-parachain chainspecs * remove relay chain spec as it is no longer required * add back relaychain spec file * pr comments * Upload snapshots to google cloud * Update zombienet/tests/0007-prepare-warp-sync-db-snapshot.md Co-authored-by: Sebastian Kunert * update documentation * Fix snapshot URLs * use master lock file * add finalized_block_hash * Patch diener for CI * Bump Zombienet * Add 0007 zombienet test * Bump zombienet * Revert "Patch diener for CI" This reverts commit 9ece6c9fc9b17058b61cd7e9dee29d3a9af87841. * merge fixes * use master lock file * Update Substrate & Polkadot --------- Co-authored-by: Bastian Köcher Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: Sebastian Kunert Co-authored-by: Bastian Köcher * Bump serde_json from 1.0.92 to 1.0.93 (#2175) Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.92 to 1.0.93. - [Release notes](https://github.com/serde-rs/json/releases) - [Commits](https://github.com/serde-rs/json/compare/v1.0.92...v1.0.93) --- updated-dependencies: - dependency-name: serde_json dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * companion for paritytech/polkadot#6161 (#2151) * Add an RPC call to request `ExecutorParams` * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Bump toml from 0.6.0 to 0.7.2 (#2170) Bumps [toml](https://github.com/toml-rs/toml) from 0.6.0 to 0.7.2. - [Release notes](https://github.com/toml-rs/toml/releases) - [Commits](https://github.com/toml-rs/toml/compare/toml-v0.6.0...toml-v0.7.2) --- updated-dependencies: - dependency-name: toml dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump clap from 4.1.4 to 4.1.6 (#2193) Bumps [clap](https://github.com/clap-rs/clap) from 4.1.4 to 4.1.6. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.1.4...v4.1.6) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Polkadot companion #6603: Use a `BoundedVec` in `ValidationResult` (#2161) * Convert message `Vec`s into `BoundedVec`s * cargo fmt * Fix missing conversions in collator * Fix the fix * Fix the fix to the fix * Fix tests * Fix^4 * Avoid use of unwrap * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Add stake.plus bootnodes to collectives-westend and bridge-hub-kusama (#2201) Co-authored-by: root * WIP: Fix templates (#2204) * WIP * More fixes * Add API section and various fixes * Companion for paritytech/polkadot#6744: Retire `OldV1SessionInfo` (#2213) * Adjust commands * Use `NetworkWorker::next_action()` instead of `poll()` * rustfmt * minor: fix mutability * Move imports * Replace `NetworkWorker::next_action()` with `run()` * Import fix * Make `NetworkWorker::run` consume self * Retire `OldV1SessionInfo` * update lockfile for {"polkadot", "substrate"} * update lockfile for {"substrate", "polkadot"} * update lockfile for {"substrate", "polkadot"} * Make stuff compile Signed-off-by: Oliver Tale-Yazdi --------- Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Piotr Mikołajczyk Co-authored-by: Dmitry Markin Co-authored-by: parity-processbot <> Co-authored-by: Oliver Tale-Yazdi * Rename .feature extension to .zndsl (#2215) * Rename .feature extension to .zndsl * Rename .feature to .zndsl into scripts * `BlockId` removal: refactor of runtime API (#2190) * BlockId removal: refactor of runtime API It changes the first argument of all generated runtime API calls from: `BlockId` to: `Block::Hash` * fmt * cargo update -p polkadot-primitives * Revert "cargo update -p polkadot-primitives" This reverts commit 58506ecd31e1e5e42b78c2db3982acbc4d8edc70. * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Benchmarks script improvements (#2214) * Benchmarks script improvements * EOF --------- Co-authored-by: parity-processbot <> * `BlockId` removal: `BlockBuilderProvider::new_block_at` (#2219) * `BlockId` removal: `BlockBuilderProvider::new_block_at` It changes the arguments of `BlockBuilderProvider::new_block_at` from: `BlockId` to: `Block::Hash` * update lockfile for {"polkadot", "substrate"} * fix --------- Co-authored-by: parity-processbot <> * Companion for #13390 (#2189) * Weights for offchain atrribute updates * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Add metaspan.io parachain boot nodes (#2218) * Add metaspan.io parachain boot nodes * Add metaspan.io parachain boot nodes --------- Co-authored-by: Derek Colley * Collectives chain xcm filter (#2222) * [ci] Return benchmark to bm machines (#2225) * [WIP][ci] Return benchmark to bm machines * run build on docker machines * restart pipeline * rm docker runner * fix refs * add weights * return ci * fix asset benchmark * bump `zombienet` version to v1.3.35 (#2226) * update zombienet version * remove 'is up' assertions * Companion for #13349 (#2217) * Companion for #13349 * Add missing line * Cargo.lock --------- Co-authored-by: parity-processbot <> * add turboflakes system-chains bootnodes (#2223) * Add gatotech bootnodes to system chains (#2237) * add gatotech bootnode to Polkadot's Statemint * add gatotech bootnode to Polkadot's Collectives * add gatotech bootnode to Kusama's Statemine * add gatotech bootnode to Kusama's Bridge Hub * add gatotech bootnode to Westend's Westmint * add gatotech bootnode to Westend's Collectives * Tests + backport fix for teleport_assets (ReceiveTeleportedAsset) (#2235) (#2238) * Wwstmint test for ReceiveTeleportedAsset * Missing fix for `weigh_multi_assets` * Added tests for statemine/statemint * [Enhancement] Use XCM V3 for initiate_teleport weight calc (#2102) * [Enhancement] Use XCM V3 for initiate_teleport weight calc * deref * replicate in all the runtimes * fmt * better handling for AllOf * fmt * small type fix * replicate the fix for all runtimes --------- Co-authored-by: parity-processbot <> * removed `frame_support::sp_tracing::try_init_simple();` * Review fixes * Removed `as u64` --------- Co-authored-by: Branislav Kontur Co-authored-by: Roman Useinov * Automatically format ci pipeline specs with prettier (#2229) * Add Helikon boot nodes for Bridge Hub Kusama, Collectives Polkadot, Collectives . Westend, Statemine, Statemint and Westmint. (#2250) * Bump proc-macro-crate from 1.3.0 to 1.3.1 (#2248) Bumps [proc-macro-crate](https://github.com/bkchr/proc-macro-crate) from 1.3.0 to 1.3.1. - [Release notes](https://github.com/bkchr/proc-macro-crate/releases) - [Commits](https://github.com/bkchr/proc-macro-crate/compare/v1.3.0...v1.3.1) --- updated-dependencies: - dependency-name: proc-macro-crate dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Companion for #13486 (#2253) * Companion for #13486 * fix * Update Substrate & Polkadot --------- Co-authored-by: Bastian Köcher * Companion for #13352 (#2180) * Assets balances * Update docs * AssetsApi with MultiLocation as preparation for multi pallet_assets instances (#2187) * AssetsApi with MultiLocation for Westmint + assets-common * AssetsApi with MultiLocation for Statemine/t * typo * typo for check-docs job * WIP: AssetsApi return MultiAsset instead of (MultiLocation, Balance) * WIP: assets_api + conversion refactor * WIP: assets_api + conversion refactor * Finished asset runtimes * Refactor AssetsApi to FungiblesApi * Refactor * Fix check-rust-docs * Removed todo * Fix check-rust-doc * Update parachains/runtimes/assets/common/Cargo.toml Co-authored-by: Bastian Köcher * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: Branislav Kontur Co-authored-by: parity-processbot <> Co-authored-by: Bastian Köcher * Add Version Checks on Para Upgrade (#2261) * add version checks on para ugprade * Apply suggestions from code review Co-authored-by: Bastian Köcher * remove unneeded imports and errors * fix test error path --------- Co-authored-by: Bastian Köcher * Update polkadot with one more commit: from 54bcee1d5615f53781d5172fcce6700dbf35dad2 -> 3dd8331414c92f5d01d6a470eae43049099d7aa9 (#2266) * Update polkadot with one commit: from 54bcee1d5615f53781d5172fcce6700dbf35dad2 -> 3dd8331414c92f5d01d6a470eae43049099d7aa9 * Fix test * Fix test better * typo * Migrate to `Weight::from_parts` (#2245) * Migrate to from_parts Signed-off-by: Oliver Tale-Yazdi * Fix remaining files Signed-off-by: Oliver Tale-Yazdi * cargo update -p polkadot-primitives Signed-off-by: Oliver Tale-Yazdi * cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi * Use Master Cargo.lock Signed-off-by: Oliver Tale-Yazdi * cargo update -p polkadot-primitives Signed-off-by: Oliver Tale-Yazdi * cargo update -p sp-io Signed-off-by: Oliver Tale-Yazdi --------- Signed-off-by: Oliver Tale-Yazdi * Bump syn from 1.0.107 to 1.0.109 (#2249) Bumps [syn](https://github.com/dtolnay/syn) from 1.0.107 to 1.0.109. - [Release notes](https://github.com/dtolnay/syn/releases) - [Commits](https://github.com/dtolnay/syn/compare/1.0.107...1.0.109) --- updated-dependencies: - dependency-name: syn dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump tempfile from 3.3.0 to 3.4.0 (#2247) Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.3.0 to 3.4.0. - [Release notes](https://github.com/Stebalien/tempfile/releases) - [Changelog](https://github.com/Stebalien/tempfile/blob/master/NEWS) - [Commits](https://github.com/Stebalien/tempfile/commits) --- updated-dependencies: - dependency-name: tempfile dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump polkadot (#2269) * Bump polkadot * Bump substrate * Bump dyn-clone from 1.0.10 to 1.0.11 (#2262) Bumps [dyn-clone](https://github.com/dtolnay/dyn-clone) from 1.0.10 to 1.0.11. - [Release notes](https://github.com/dtolnay/dyn-clone/releases) - [Commits](https://github.com/dtolnay/dyn-clone/compare/1.0.10...1.0.11) --- updated-dependencies: - dependency-name: dyn-clone dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * bump zombienet version `v1.3.37` (#2260) * update zombienet version * remove 'is up' assertions * bump zombienet version * introduce RelaychainStateProvider to parachain-system (#2268) * introduce RelaychainStateProvider to parachain-system * bring back RelaychainBlockNumberProvider, adds some docs and derives * allow deprecated * Apply suggestions from code review Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Bastian Köcher * deprecation message --------- Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: Bastian Köcher * Don't pass `leaves()` to `Overseer::builder()` (#2275) * Don't pass `leaves()` to `Overseer::builder()` This is a companion for https://github.com/paritytech/polkadot/pull/6727 * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Companion for paritytech/substrate#12828 (#1939) * Companion for paritytech/substrate#12764 * Remove `async-trait` * Companion for paritytech/substrate#12828 * carg fmt * Update client/relay-chain-minimal-node/src/network.rs Co-authored-by: Bastian Köcher * update lockfile for {"polkadot", "substrate"} --------- Co-authored-by: Bastian Köcher Co-authored-by: parity-processbot <> * Bump `blake2b_simd` to 1.0.1 (#2282) * Companion for paritytech/substrate#13551 (#2278) * Companion for paritytech/substrate#13551 * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * relay-chain-interface: Do not depend on `polkadot-service` (#2287) * Bump wasmtime from 6.0.0 to 6.0.1 (#2296) Bumps [wasmtime](https://github.com/bytecodealliance/wasmtime) from 6.0.0 to 6.0.1. - [Release notes](https://github.com/bytecodealliance/wasmtime/releases) - [Changelog](https://github.com/bytecodealliance/wasmtime/blob/main/docs/WASI-some-possible-changes.md) - [Commits](https://github.com/bytecodealliance/wasmtime/compare/v6.0.0...v6.0.1) --- updated-dependencies: - dependency-name: wasmtime dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump all runtimes to 9381 * XCM: Use matcher API in DenyReserveAssetTransferToRelay (#2290) * Use matcher API in DenyReserveAssetTransferToRelay * Fixes * Fixes * Fixes * cargo fmt * Cleanup dependencies + dead code (#2302) * add amforc bootnodes (#2246) * Companion for #13482 (#2303) * Add migration * Remove parentheses * Return back + add a comma * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Remove use of trait Store (#2286) * Remove use of Store trait from xcmp-queue pallet * Remove Store trait usage from dmp-queue pallet * Remove Store trait usage from parachain-system pallet * Remove use of Store trait from cumulus * Run cargo fmt * Bump proc-macro2 from 1.0.50 to 1.0.52 (#2312) Bumps [proc-macro2](https://github.com/dtolnay/proc-macro2) from 1.0.50 to 1.0.52. - [Release notes](https://github.com/dtolnay/proc-macro2/releases) - [Commits](https://github.com/dtolnay/proc-macro2/compare/1.0.50...1.0.52) --- updated-dependencies: - dependency-name: proc-macro2 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * [Backport] version bumps from 9380 (#2309) * Bump crate versions * bump transaction_version (#2191) * Backport: Brigehub: Add in force upgrade xcm version (into master) (#2289) * Brigehub: Add in force upgrade xcm version. (Same as assets and collectives) * [Fix] Allow force_xcm_version call for assets parachains (#2276) * add force_xcm_version to safe calls (#2284) * Removing duplication --------- Co-authored-by: Roman Useinov Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> * Update orchestra and metered-channel (#2304) * Update metered-channel * update lockfile for {"substrate", "polkadot"} --------- Co-authored-by: parity-processbot <> * Companion for paritytech/substrate#13592 (#2310) * Fixes * Remove `sc-network-common` dependency * update lockfile for {"polkadot", "substrate"} * Update Cargo.lock * Update Cargo.lock --------- Co-authored-by: parity-processbot <> * README: Document usage of RPC node (#2313) * Update readme * Improve * Apply suggestions from code review Co-authored-by: Koute * Quote urls * Apply suggestions from code review Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> --------- Co-authored-by: Koute Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> * Update Westend collectives chainspec (#2311) Signed-off-by: bakhtin * Fix runtime api import path (#2319) This syncs the latest changes in Substrate and fixes the import path of the runtime api. * ReadMe followup for #2313 (#2317) * Readme again * relaychain -> relay chain * Bump async-trait from 0.1.64 to 0.1.66 (#2318) Bumps [async-trait](https://github.com/dtolnay/async-trait) from 0.1.64 to 0.1.66. - [Release notes](https://github.com/dtolnay/async-trait/releases) - [Commits](https://github.com/dtolnay/async-trait/compare/0.1.64...0.1.66) --- updated-dependencies: - dependency-name: async-trait dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Bump tokio from 1.25.0 to 1.26.0 (#2273) Bumps [tokio](https://github.com/tokio-rs/tokio) from 1.25.0 to 1.26.0. - [Release notes](https://github.com/tokio-rs/tokio/releases) - [Commits](https://github.com/tokio-rs/tokio/compare/tokio-1.25.0...tokio-1.26.0) --- updated-dependencies: - dependency-name: tokio dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Enabled `polkadot-parachain` build for `runtime-benchmarks`, e.g.: (#2324) `cargo build --locked --profile=production -p polkadot-parachain-bin --features runtime-benchmarks` * Bump clap from 4.1.6 to 4.1.8 (#2272) Bumps [clap](https://github.com/clap-rs/clap) from 4.1.6 to 4.1.8. - [Release notes](https://github.com/clap-rs/clap/releases) - [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md) - [Commits](https://github.com/clap-rs/clap/compare/v4.1.6...v4.1.8) --- updated-dependencies: - dependency-name: clap dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * dmp-queue: Store messages if already processed more than the maximum (#2343) * dmp-queue: Store messages if already processed more than the maximum * Put new event at the end * NFTs 2.0 on Statemine (#2314) * Add nfts pallet to statemine * Add missing trait * Add nfts pallet to SafeCallFilter * Re-use uniques deposits * Update polkadot dependencies * Update substrate dependencies * Bump crate versions * Bump spec_version to 9400 * bump transaction versions (#2364) (#2366) * [Backport] weights from runtimes release to source (#2377) * XCM V2 weight template (#2344) (#2372) * Update XCM weight template * Remove copyright year from file header Legally not needed, we already remove them from Substrate. * ".git/.scripts/commands/bench/bench.sh" xcm statemine asset pallet_xcm_benchmarks::fungible * ".git/.scripts/commands/bench/bench.sh" xcm statemine assets pallet_xcm_benchmarks::fungible * ".git/.scripts/commands/bench/bench.sh" xcm statemint assets pallet_xcm_benchmarks::fungible * ".git/.scripts/commands/bench/bench.sh" xcm statemint assets pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm statemine assets pallet_xcm_benchmarks::generic * Revert "".git/.scripts/commands/bench/bench.sh" xcm statemine asset pallet_xcm_benchmarks::fungible" This reverts commit c4ac1a88e2607309b726d6934273da4e5a54ca9f. * ".git/.scripts/commands/bench/bench.sh" xcm westmint assets pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm westmint assets pallet_xcm_benchmarks::fungible * ".git/.scripts/commands/bench/bench.sh" xcm bridge-hub-kusama bridge-hubs pallet_xcm_benchmarks::generic * ".git/.scripts/commands/bench/bench.sh" xcm bridge-hub-polkadot bridge-hubs pallet_xcm_benchmarks::generic * Update weights Done directly on bm2 to bypass the bot. --------- Co-authored-by: command-bot <> Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Oliver Tale-Yazdi * [benchmarks] pr with weights (#2373) Co-authored-by: paritytech-ci * [benchmarks] pr with weights (#2374) Co-authored-by: paritytech-ci * [benchmarks] pr with weights (#2375) Co-authored-by: paritytech-ci --------- Signed-off-by: Oliver Tale-Yazdi Co-authored-by: Oliver Tale-Yazdi Co-authored-by: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Co-authored-by: paritytech-ci * Update polkadot dependencies (#2389) (#2391) * [Revert] Use XCM V3 for initiate_teleport weight calc #2102 (#2394) (#2403) * Revert "[Enhancement] Use XCM V3 for initiate_teleport weight calc (#2102)" This reverts commit 8230ec4773751f2ff9d10b9144deee331d02ffcd. * updating weight format * We expect to pay 1bn+ for a teleport at the current weights. * The test isn't needed and hardcoded scale is hand to maintain. * remove unused imports --------- Co-authored-by: Giles Cope * update tests * fix tests weights * resolve warnings * update reference * fix fmt * update branch ref --------- Signed-off-by: dependabot[bot] Signed-off-by: Oliver Tale-Yazdi Signed-off-by: bakhtin Co-authored-by: Squirrel Co-authored-by: Bastian Köcher Co-authored-by: Michal Kucharczyk <1728078+michalkucharczyk@users.noreply.github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Muharem Ismailov Co-authored-by: Sebastian Kunert Co-authored-by: Bastian Köcher Co-authored-by: Alexander Samusev <41779041+alvicsam@users.noreply.github.com> Co-authored-by: Sergejs Kostjucenko <85877331+sergejparity@users.noreply.github.com> Co-authored-by: Wilfried Kopp Co-authored-by: joe petrowski <25483142+joepetrowski@users.noreply.github.com> Co-authored-by: brendanedelson Co-authored-by: Anthony Alaribe Co-authored-by: Branislav Kontur Co-authored-by: Niklas Adolfsson Co-authored-by: Egor_P Co-authored-by: Koute Co-authored-by: Qinxuan Chen Co-authored-by: Paritytech CI <52199148+paritytech-ci@users.noreply.github.com> Co-authored-by: paritytech-ci Co-authored-by: Pierre Besson Co-authored-by: Aaro Altonen <48052676+altonen@users.noreply.github.com> Co-authored-by: Xavier Lau Co-authored-by: joepetrowski Co-authored-by: Alexander Theißen Co-authored-by: Adrian Catangiu Co-authored-by: alexgparity <115470171+alexgparity@users.noreply.github.com> Co-authored-by: Dmitry Markin Co-authored-by: João Paulo Silva de Souza <77391175+joao-paulo-parity@users.noreply.github.com> Co-authored-by: Marcin S Co-authored-by: Javier Viola Co-authored-by: Keith Yeung Co-authored-by: Chevdor Co-authored-by: alvicsam Co-authored-by: Joyce Siqueira Co-authored-by: joyce Co-authored-by: Joyce Siqueira <98593770+the-right-joyce@users.noreply.github.com> Co-authored-by: Gavin Wood Co-authored-by: Sasha Gryaznov Co-authored-by: Kian Paimani <5588131+kianenigma@users.noreply.github.com> Co-authored-by: Davide Galassi Co-authored-by: Bastian Köcher Co-authored-by: Oliver Tale-Yazdi Co-authored-by: Dino Pačandi <3002868+Dinonard@users.noreply.github.com> Co-authored-by: Anton Co-authored-by: Jegor Sidorenko <5252494+jsidorenko@users.noreply.github.com> Co-authored-by: s0me0ne-unkn0wn <48632512+s0me0ne-unkn0wn@users.noreply.github.com> Co-authored-by: Radha <86818441+DrW3RK@users.noreply.github.com> Co-authored-by: girazoki Co-authored-by: Sergej Sakac <73715684+Szegoo@users.noreply.github.com> Co-authored-by: Arkadiy Paronyan Co-authored-by: Stephen Shelton Co-authored-by: Vladimir Istyufeev Co-authored-by: Roman Useinov Co-authored-by: Tom Co-authored-by: root Co-authored-by: Sam Elamin Co-authored-by: Piotr Mikołajczyk Co-authored-by: Nikos Kontakis Co-authored-by: Derek Colley Co-authored-by: Derek Colley Co-authored-by: Paulo Martins Co-authored-by: Milos Kriz <82968568+miloskriz@users.noreply.github.com> Co-authored-by: Mira Ressel Co-authored-by: Kutsal Kaan Bilgin Co-authored-by: Web3 Philosopher Co-authored-by: Tsvetomir Dimitrov Co-authored-by: André Silva <123550+andresilva@users.noreply.github.com> Co-authored-by: tugy <33746108+tugytur@users.noreply.github.com> Co-authored-by: Vivek Pandya Co-authored-by: Vsevolod Stakhov Co-authored-by: Artyom Bakhtin --- .gitattributes | 2 + .github/workflows/check-D-labels.yml | 7 +- .github/workflows/check-labels.yml | 7 +- .../workflows/release-10_rc-automation.yml | 4 +- .github/workflows/release-30_create-draft.yml | 10 +- .github/workflows/srtool.yml | 2 + .gitlab-ci.yml | 87 +- Cargo.lock | 5139 +++++++++++------ Cargo.toml | 183 +- README.md | 70 +- client/cli/Cargo.toml | 12 +- client/collator/Cargo.toml | 26 +- client/collator/src/lib.rs | 48 +- client/consensus/aura/Cargo.toml | 36 +- client/consensus/aura/src/lib.rs | 2 +- client/consensus/common/Cargo.toml | 23 +- client/consensus/common/src/lib.rs | 5 +- .../common/src/parachain_consensus.rs | 307 +- client/consensus/common/src/tests.rs | 182 +- client/consensus/relay-chain/Cargo.toml | 22 +- .../consensus/relay-chain/src/import_queue.rs | 25 +- client/consensus/relay-chain/src/lib.rs | 10 +- client/network/Cargo.toml | 43 +- client/network/src/lib.rs | 3 +- client/network/src/tests.rs | 21 +- client/pov-recovery/Cargo.toml | 29 +- .../src/active_candidate_recovery.rs | 18 +- client/pov-recovery/src/lib.rs | 246 +- .../Cargo.toml | 38 +- .../src/lib.rs | 36 +- client/relay-chain-interface/Cargo.toml | 18 +- client/relay-chain-interface/src/lib.rs | 34 +- client/relay-chain-minimal-node/Cargo.toml | 50 +- .../src/blockchain_rpc_client.rs | 166 +- .../src/collator_overseer.rs | 31 +- client/relay-chain-minimal-node/src/lib.rs | 26 +- .../relay-chain-minimal-node/src/network.rs | 305 +- client/relay-chain-rpc-interface/Cargo.toml | 34 +- client/relay-chain-rpc-interface/src/lib.rs | 11 +- .../src/reconnecting_ws_client.rs | 2 +- .../src/rpc_client.rs | 70 +- client/service/Cargo.toml | 33 +- client/service/src/lib.rs | 234 +- file_header.txt | 2 +- pallets/aura-ext/Cargo.toml | 21 +- pallets/aura-ext/src/lib.rs | 1 + pallets/collator-selection/Cargo.toml | 37 +- .../collator-selection/src/benchmarking.rs | 13 +- pallets/collator-selection/src/lib.rs | 5 - pallets/collator-selection/src/mock.rs | 16 +- pallets/collator-selection/src/weights.rs | 48 +- pallets/dmp-queue/Cargo.toml | 22 +- pallets/dmp-queue/src/lib.rs | 458 +- pallets/dmp-queue/src/migration.rs | 26 +- pallets/parachain-system/Cargo.toml | 44 +- .../parachain-system/proc-macro/Cargo.toml | 6 +- .../parachain-system/proc-macro/src/lib.rs | 17 +- pallets/parachain-system/src/lib.rs | 210 +- pallets/parachain-system/src/migration.rs | 10 +- .../src/relay_state_snapshot.rs | 14 +- pallets/parachain-system/src/tests.rs | 69 +- .../src/validate_block/implementation.rs | 195 +- .../src/validate_block/mod.rs | 43 +- .../src/validate_block/tests.rs | 36 +- pallets/session-benchmarking/Cargo.toml | 14 +- pallets/solo-to-para/Cargo.toml | 17 +- pallets/solo-to-para/src/lib.rs | 3 +- pallets/xcm/Cargo.toml | 17 +- pallets/xcm/src/lib.rs | 19 +- pallets/xcmp-queue/Cargo.toml | 31 +- pallets/xcmp-queue/src/benchmarking.rs | 2 +- pallets/xcmp-queue/src/lib.rs | 210 +- pallets/xcmp-queue/src/migration.rs | 30 +- pallets/xcmp-queue/src/mock.rs | 28 +- pallets/xcmp-queue/src/tests.rs | 150 +- pallets/xcmp-queue/src/weights.rs | 8 +- parachain-template/node/Cargo.toml | 77 +- parachain-template/node/src/chain_spec.rs | 1 + parachain-template/node/src/command.rs | 23 +- parachain-template/node/src/service.rs | 60 +- .../pallets/template/Cargo.toml | 12 +- .../pallets/template/src/lib.rs | 5 +- parachain-template/runtime/Cargo.toml | 66 +- parachain-template/runtime/src/lib.rs | 73 +- .../runtime/src/weights/block_weights.rs | 2 +- .../runtime/src/weights/extrinsic_weights.rs | 2 +- parachain-template/runtime/src/xcm_config.rs | 127 +- parachains/README.md | 6 +- parachains/chain-specs/bridge-hub-kusama.json | 17 +- .../chain-specs/bridge-hub-polkadot.json | 80 + .../chain-specs/bridge-hub-westend.json | 75 + .../chain-specs/collectives-polkadot.json | 15 +- .../chain-specs/collectives-westend.json | 220 +- parachains/chain-specs/rockmine.json | 8 +- parachains/chain-specs/statemine.json | 17 +- parachains/chain-specs/statemint.json | 17 +- parachains/chain-specs/westmint.json | 25 +- parachains/common/Cargo.toml | 35 +- parachains/common/src/impls.rs | 38 +- parachains/common/src/lib.rs | 4 +- parachains/common/src/xcm_config.rs | 109 +- .../collectives/0_xcm/1_teleport.yml | 116 +- .../1_alliance/1_init_alliance.yml | 9 +- .../collectives/1_alliance/3_kick_member.yml | 5 +- parachains/pallets/parachain-info/Cargo.toml | 6 +- parachains/pallets/parachain-info/src/lib.rs | 1 - parachains/pallets/ping/Cargo.toml | 10 +- parachains/pallets/ping/src/lib.rs | 34 +- parachains/runtimes/assets/common/Cargo.toml | 38 + .../assets/common/src/fungible_conversion.rs | 136 + parachains/runtimes/assets/common/src/lib.rs | 70 + .../runtimes/assets/common/src/runtime_api.rs | 41 + .../runtimes/assets/statemine/Cargo.toml | 96 +- .../runtimes/assets/statemine/src/lib.rs | 278 +- .../statemine/src/weights/block_weights.rs | 2 +- .../src/weights/cumulus_pallet_xcmp_queue.rs | 29 +- .../src/weights/extrinsic_weights.rs | 2 +- .../statemine/src/weights/frame_system.rs | 88 +- .../assets/statemine/src/weights/mod.rs | 2 + .../statemine/src/weights/pallet_assets.rs | 401 +- .../statemine/src/weights/pallet_balances.rs | 84 +- .../src/weights/pallet_collator_selection.rs | 145 +- .../statemine/src/weights/pallet_multisig.rs | 135 +- .../statemine/src/weights/pallet_nfts.rs | 764 +++ .../statemine/src/weights/pallet_proxy.rs | 194 +- .../statemine/src/weights/pallet_session.rs | 35 +- .../statemine/src/weights/pallet_timestamp.rs | 29 +- .../statemine/src/weights/pallet_uniques.rs | 432 +- .../statemine/src/weights/pallet_utility.rs | 59 +- .../statemine/src/weights/pallet_xcm.rs | 276 + .../assets/statemine/src/weights/xcm/mod.rs | 215 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 111 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 307 +- .../assets/statemine/src/xcm_config.rs | 241 +- .../runtimes/assets/statemine/tests/tests.rs | 236 +- .../runtimes/assets/statemint/Cargo.toml | 86 +- .../assets/statemint/src/constants.rs | 4 +- .../runtimes/assets/statemint/src/lib.rs | 161 +- .../statemint/src/weights/block_weights.rs | 2 +- .../src/weights/cumulus_pallet_xcmp_queue.rs | 29 +- .../src/weights/extrinsic_weights.rs | 2 +- .../statemint/src/weights/frame_system.rs | 88 +- .../assets/statemint/src/weights/mod.rs | 1 + .../statemint/src/weights/pallet_assets.rs | 409 +- .../statemint/src/weights/pallet_balances.rs | 84 +- .../src/weights/pallet_collator_selection.rs | 145 +- .../statemint/src/weights/pallet_multisig.rs | 133 +- .../statemint/src/weights/pallet_proxy.rs | 194 +- .../statemint/src/weights/pallet_session.rs | 35 +- .../statemint/src/weights/pallet_timestamp.rs | 29 +- .../statemint/src/weights/pallet_uniques.rs | 432 +- .../statemint/src/weights/pallet_utility.rs | 59 +- .../statemint/src/weights/pallet_xcm.rs | 276 + .../assets/statemint/src/weights/xcm/mod.rs | 215 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 111 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 307 +- .../assets/statemint/src/xcm_config.rs | 203 +- .../runtimes/assets/statemint/tests/tests.rs | 236 +- .../runtimes/assets/test-utils/Cargo.toml | 21 +- .../runtimes/assets/westmint/Cargo.toml | 92 +- .../runtimes/assets/westmint/src/lib.rs | 301 +- .../westmint/src/weights/block_weights.rs | 2 +- .../src/weights/cumulus_pallet_xcmp_queue.rs | 29 +- .../westmint/src/weights/extrinsic_weights.rs | 2 +- .../westmint/src/weights/frame_system.rs | 88 +- .../assets/westmint/src/weights/mod.rs | 2 + .../westmint/src/weights/pallet_assets.rs | 401 +- .../westmint/src/weights/pallet_balances.rs | 84 +- .../src/weights/pallet_collator_selection.rs | 145 +- .../westmint/src/weights/pallet_multisig.rs | 135 +- .../westmint/src/weights/pallet_nfts.rs | 762 +++ .../westmint/src/weights/pallet_proxy.rs | 194 +- .../westmint/src/weights/pallet_session.rs | 35 +- .../westmint/src/weights/pallet_timestamp.rs | 29 +- .../westmint/src/weights/pallet_uniques.rs | 432 +- .../westmint/src/weights/pallet_utility.rs | 59 +- .../assets/westmint/src/weights/pallet_xcm.rs | 274 + .../assets/westmint/src/weights/xcm/mod.rs | 215 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 111 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 307 +- .../assets/westmint/src/xcm_config.rs | 237 +- .../runtimes/assets/westmint/tests/tests.rs | 237 +- parachains/runtimes/bridge-hubs/README.md | 7 +- .../bridge-hubs/bridge-hub-kusama/Cargo.toml | 80 +- .../bridge-hubs/bridge-hub-kusama/src/lib.rs | 40 +- .../src/weights/block_weights.rs | 2 +- .../src/weights/cumulus_pallet_xcmp_queue.rs | 27 +- .../src/weights/extrinsic_weights.rs | 2 +- .../src/weights/frame_system.rs | 86 +- .../bridge-hub-kusama/src/weights/mod.rs | 1 + .../src/weights/pallet_balances.rs | 82 +- .../src/weights/pallet_collator_selection.rs | 143 +- .../src/weights/pallet_multisig.rs | 128 +- .../src/weights/pallet_session.rs | 33 +- .../src/weights/pallet_timestamp.rs | 27 +- .../src/weights/pallet_utility.rs | 57 +- .../src/weights/pallet_xcm.rs | 275 + .../bridge-hub-kusama/src/weights/xcm/mod.rs | 215 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 109 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 305 +- .../bridge-hub-kusama/src/xcm_config.rs | 114 +- .../bridge-hub-polkadot/Cargo.toml | 170 + .../bridge-hubs/bridge-hub-polkadot/build.rs | 9 + .../bridge-hub-polkadot/src/constants.rs | 69 + .../bridge-hub-polkadot/src/lib.rs | 760 +++ .../src/weights/block_weights.rs | 53 + .../src/weights/cumulus_pallet_xcmp_queue.rs | 74 + .../src/weights/extrinsic_weights.rs | 53 + .../src/weights/frame_system.rs | 130 + .../bridge-hub-polkadot/src/weights/mod.rs | 38 + .../src/weights/pallet_balances.rs | 134 + .../src/weights/pallet_collator_selection.rs | 177 + .../src/weights/pallet_multisig.rs | 162 + .../src/weights/pallet_session.rs | 78 + .../src/weights/pallet_timestamp.rs | 72 + .../src/weights/pallet_utility.rs | 99 + .../src/weights/pallet_xcm.rs | 275 + .../src/weights/paritydb_weights.rs | 63 + .../src/weights/rocksdb_weights.rs | 63 + .../src/weights/xcm/mod.rs | 243 + .../xcm/pallet_xcm_benchmarks_fungible.rs | 158 + .../xcm/pallet_xcm_benchmarks_generic.rs | 348 ++ .../bridge-hub-polkadot/src/xcm_config.rs | 266 + .../bridge-hubs/bridge-hub-rococo/Cargo.toml | 80 +- .../bridge-hubs/bridge-hub-rococo/src/lib.rs | 40 +- .../src/weights/block_weights.rs | 2 +- .../src/weights/cumulus_pallet_xcmp_queue.rs | 27 +- .../src/weights/extrinsic_weights.rs | 2 +- .../src/weights/frame_system.rs | 86 +- .../bridge-hub-rococo/src/weights/mod.rs | 1 + .../src/weights/pallet_balances.rs | 82 +- .../src/weights/pallet_collator_selection.rs | 143 +- .../src/weights/pallet_multisig.rs | 126 +- .../src/weights/pallet_session.rs | 33 +- .../src/weights/pallet_timestamp.rs | 27 +- .../src/weights/pallet_utility.rs | 57 +- .../src/weights/pallet_xcm.rs | 275 + .../bridge-hub-rococo/src/weights/xcm/mod.rs | 215 +- .../xcm/pallet_xcm_benchmarks_fungible.rs | 109 +- .../xcm/pallet_xcm_benchmarks_generic.rs | 305 +- .../bridge-hub-rococo/src/xcm_config.rs | 115 +- .../collectives-polkadot/Cargo.toml | 78 +- .../collectives-polkadot/src/impls.rs | 6 +- .../collectives-polkadot/src/lib.rs | 35 +- .../src/weights/block_weights.rs | 2 +- .../src/weights/cumulus_pallet_xcmp_queue.rs | 29 +- .../src/weights/extrinsic_weights.rs | 2 +- .../src/weights/frame_system.rs | 88 +- .../collectives-polkadot/src/weights/mod.rs | 1 + .../src/weights/pallet_alliance.rs | 515 +- .../src/weights/pallet_balances.rs | 84 +- .../src/weights/pallet_collator_selection.rs | 145 +- .../src/weights/pallet_collective.rs | 294 +- .../src/weights/pallet_multisig.rs | 131 +- .../src/weights/pallet_proxy.rs | 194 +- .../src/weights/pallet_session.rs | 35 +- .../src/weights/pallet_timestamp.rs | 29 +- .../src/weights/pallet_utility.rs | 59 +- .../src/weights/pallet_xcm.rs | 275 + .../collectives-polkadot/src/xcm_config.rs | 150 +- .../contracts/contracts-rococo/Cargo.toml | 84 +- .../contracts-rococo/src/contracts.rs | 4 +- .../contracts/contracts-rococo/src/lib.rs | 32 +- .../src/weights/block_weights.rs | 2 +- .../src/weights/extrinsic_weights.rs | 2 +- .../contracts-rococo/src/xcm_config.rs | 77 +- .../runtimes/starters/seedling/Cargo.toml | 32 +- .../runtimes/starters/seedling/src/lib.rs | 4 +- parachains/runtimes/starters/shell/Cargo.toml | 36 +- parachains/runtimes/starters/shell/src/lib.rs | 2 +- .../runtimes/starters/shell/src/xcm_config.rs | 35 +- parachains/runtimes/testing/penpal/Cargo.toml | 72 +- parachains/runtimes/testing/penpal/src/lib.rs | 24 +- .../penpal/src/weights/block_weights.rs | 2 +- .../penpal/src/weights/extrinsic_weights.rs | 2 +- .../runtimes/testing/penpal/src/xcm_config.rs | 101 +- .../testing/rococo-parachain/Cargo.toml | 60 +- .../testing/rococo-parachain/src/lib.rs | 89 +- polkadot-parachain/Cargo.toml | 109 +- .../src/chain_spec/bridge_hubs.rs | 181 +- polkadot-parachain/src/command.rs | 128 +- polkadot-parachain/src/service.rs | 172 +- primitives/core/Cargo.toml | 15 +- primitives/core/src/lib.rs | 23 +- primitives/parachain-inherent/Cargo.toml | 20 +- .../parachain-inherent/src/client_side.rs | 2 +- primitives/timestamp/Cargo.toml | 14 +- primitives/timestamp/src/lib.rs | 29 +- primitives/utility/Cargo.toml | 16 +- primitives/utility/src/lib.rs | 331 +- scripts/benchmarks-ci.sh | 62 +- scripts/benchmarks.sh | 17 +- scripts/ci/changelog/Gemfile | 2 + scripts/ci/changelog/Gemfile.lock | 5 + scripts/ci/changelog/bin/changelog | 20 +- scripts/ci/changelog/templates/change.md.tera | 16 +- .../ci/changelog/templates/changes.md.tera | 2 + .../changelog/templates/changes_api.md.tera | 19 + .../templates/changes_client.md.tera | 4 +- .../changelog/templates/changes_misc.md.tera | 8 +- .../templates/changes_runtime.md.tera | 6 +- scripts/ci/changelog/templates/debug.md.tera | 2 +- .../changelog/templates/high_priority.md.tera | 11 +- .../templates/host_functions.md.tera | 8 +- .../changelog/templates/migrations-db.md.tera | 4 +- .../templates/migrations-runtime.md.tera | 4 +- scripts/ci/gitlab/pipeline/benchmarks.yml | 15 +- scripts/ci/gitlab/pipeline/build.yml | 66 +- scripts/ci/gitlab/pipeline/publish.yml | 106 +- scripts/ci/gitlab/pipeline/test.yml | 44 +- scripts/ci/gitlab/pipeline/zombienet.yml | 78 +- scripts/ci/gitlab/prettier.sh | 6 + scripts/create_bridge_hub_kusama_spec.sh | 4 +- scripts/create_bridge_hub_polkadot_spec.sh | 108 + scripts/create_bridge_hub_westend_spec.sh | 101 + templates/xcm-bench-template.hbs | 45 +- test/client/Cargo.toml | 38 +- test/client/src/block_builder.rs | 27 +- test/relay-sproof-builder/Cargo.toml | 8 +- test/relay-sproof-builder/src/lib.rs | 12 +- .../Cargo.toml | 4 +- test/runtime/Cargo.toml | 40 +- test/runtime/src/lib.rs | 4 +- test/runtime/src/test_pallet.rs | 1 - test/service/Cargo.toml | 85 +- test/service/src/cli.rs | 3 + test/service/src/genesis.rs | 2 +- test/service/src/lib.rs | 113 +- test/service/src/main.rs | 8 +- .../bridge_hub_polkadot_local_network.toml | 67 + ...from_tip_without_connected_collator.zndsl} | 6 - zombienet/tests/0002-pov_recovery.feature | 26 - zombienet/tests/0002-pov_recovery.toml | 16 +- zombienet/tests/0002-pov_recovery.zndsl | 16 + ...ature => 0003-full_node_catching_up.zndsl} | 5 - ...ade.feature => 0004-runtime_upgrade.zndsl} | 4 - ...eature => 0005-migrate_solo_to_para.zndsl} | 4 - .../0006-rpc_collator_builds_blocks.toml | 4 +- ... => 0006-rpc_collator_builds_blocks.zndsl} | 9 - zombienet/tests/0007-full_node_warp_sync.toml | 77 + .../tests/0007-full_node_warp_sync.zndsl | 8 + .../0007-prepare-warp-sync-db-snapshot.md | 37 + .../tests/0007-warp-sync-parachain-spec.json | 53 + .../tests/0007-warp-sync-relaychain-spec.json | 171 + 344 files changed, 25812 insertions(+), 9258 deletions(-) create mode 100644 .gitattributes create mode 100644 parachains/chain-specs/bridge-hub-polkadot.json create mode 100644 parachains/chain-specs/bridge-hub-westend.json create mode 100644 parachains/runtimes/assets/common/Cargo.toml create mode 100644 parachains/runtimes/assets/common/src/fungible_conversion.rs create mode 100644 parachains/runtimes/assets/common/src/lib.rs create mode 100644 parachains/runtimes/assets/common/src/runtime_api.rs create mode 100644 parachains/runtimes/assets/statemine/src/weights/pallet_nfts.rs create mode 100644 parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs create mode 100644 parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs create mode 100644 parachains/runtimes/assets/westmint/src/weights/pallet_nfts.rs create mode 100644 parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/constants.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs create mode 100644 parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs create mode 100644 parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs create mode 100644 scripts/ci/changelog/templates/changes_api.md.tera create mode 100755 scripts/ci/gitlab/prettier.sh create mode 100755 scripts/create_bridge_hub_polkadot_spec.sh create mode 100755 scripts/create_bridge_hub_westend_spec.sh create mode 100644 zombienet/examples/bridge_hub_polkadot_local_network.toml rename zombienet/tests/{0001-sync_blocks_from_tip_without_connected_collator.feature => 0001-sync_blocks_from_tip_without_connected_collator.zndsl} (88%) delete mode 100644 zombienet/tests/0002-pov_recovery.feature create mode 100644 zombienet/tests/0002-pov_recovery.zndsl rename zombienet/tests/{0003-full_node_catching_up.feature => 0003-full_node_catching_up.zndsl} (81%) rename zombienet/tests/{0004-runtime_upgrade.feature => 0004-runtime_upgrade.zndsl} (89%) rename zombienet/tests/{0005-migrate_solo_to_para.feature => 0005-migrate_solo_to_para.zndsl} (89%) rename zombienet/tests/{0006-rpc_collator_builds_blocks.feature => 0006-rpc_collator_builds_blocks.zndsl} (85%) create mode 100644 zombienet/tests/0007-full_node_warp_sync.toml create mode 100644 zombienet/tests/0007-full_node_warp_sync.zndsl create mode 100644 zombienet/tests/0007-prepare-warp-sync-db-snapshot.md create mode 100644 zombienet/tests/0007-warp-sync-parachain-spec.json create mode 100644 zombienet/tests/0007-warp-sync-relaychain-spec.json diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 00000000000..2ea1ab2d6b9 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +/.gitlab-ci.yml filter=ci-prettier +/scripts/ci/gitlab/pipeline/*.yml filter=ci-prettier diff --git a/.github/workflows/check-D-labels.yml b/.github/workflows/check-D-labels.yml index 222c916fb6e..91062720931 100644 --- a/.github/workflows/check-D-labels.yml +++ b/.github/workflows/check-D-labels.yml @@ -12,12 +12,12 @@ jobs: steps: - name: Pull image env: - IMAGE: paritytech/ruled_labels:0.3.2 + IMAGE: paritytech/ruled_labels:0.4.0 run: docker pull $IMAGE - name: Check labels env: - IMAGE: paritytech/ruled_labels:0.3.2 + IMAGE: paritytech/ruled_labels:0.4.0 MOUNT: /work GITHUB_PR: ${{ github.event.pull_request.number }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -34,8 +34,7 @@ jobs: labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",") if [ -z "${labels}" ]; then - echo "No labels found. Please add labels D labels" - exit 1 + docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags audit --no-label fi labels_args=${labels: :-1} diff --git a/.github/workflows/check-labels.yml b/.github/workflows/check-labels.yml index f524dad13d0..004271d7788 100644 --- a/.github/workflows/check-labels.yml +++ b/.github/workflows/check-labels.yml @@ -10,12 +10,12 @@ jobs: steps: - name: Pull image env: - IMAGE: paritytech/ruled_labels:0.3.2 + IMAGE: paritytech/ruled_labels:0.4.0 run: docker pull $IMAGE - name: Check labels env: - IMAGE: paritytech/ruled_labels:0.3.2 + IMAGE: paritytech/ruled_labels:0.4.0 MOUNT: /work GITHUB_PR: ${{ github.event.pull_request.number }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -32,8 +32,7 @@ jobs: labels=$( curl -H "Authorization: token ${GITHUB_TOKEN}" -s "$API_BASE/${REPO}/pulls/${GITHUB_PR}" | jq '.labels | .[] | .name' | tr "\n" ",") if [ -z "${labels}" ]; then - echo "No labels found. Please add labels A, B and C labels" - exit 1 + docker run --rm -i -v $PWD/${RULES_PATH}/:$MOUNT $IMAGE check $MOUNT/$CHECK_SPECS --tags audit --no-label fi labels_args=${labels: :-1} diff --git a/.github/workflows/release-10_rc-automation.yml b/.github/workflows/release-10_rc-automation.yml index 64b55a78075..c6b70326bf5 100644 --- a/.github/workflows/release-10_rc-automation.yml +++ b/.github/workflows/release-10_rc-automation.yml @@ -52,7 +52,7 @@ jobs: tag: ${{ steps.compute_tag.outputs.new_tag }} - id: create-issue-checklist-client - uses: JasonEtco/create-an-issue@9e6213aec58987fa7d2f4deb8b256b99e63107a2 # v2.6.0 + uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1 # Only create the issue if it's the first release candidate if: steps.compute_tag.outputs.first_rc == 'true' env: @@ -63,7 +63,7 @@ jobs: filename: .github/ISSUE_TEMPLATE/release-client.md - id: create-issue-checklist-runtime - uses: JasonEtco/create-an-issue@9e6213aec58987fa7d2f4deb8b256b99e63107a2 # v2.6.0 + uses: JasonEtco/create-an-issue@e27dddc79c92bc6e4562f268fffa5ed752639abd # v2.9.1 # Only create the issue if it's the first release candidate if: steps.compute_tag.outputs.first_rc == 'true' env: diff --git a/.github/workflows/release-30_create-draft.yml b/.github/workflows/release-30_create-draft.yml index 15ad19fdf99..fc5d9ac0622 100644 --- a/.github/workflows/release-30_create-draft.yml +++ b/.github/workflows/release-30_create-draft.yml @@ -50,6 +50,8 @@ jobs: runtime: statemint - category: assets runtime: westmint + - category: bridge-hubs + runtime: bridge-hub-polkadot - category: bridge-hubs runtime: bridge-hub-kusama - category: bridge-hubs @@ -124,7 +126,7 @@ jobs: path: cumulus ref: ${{ github.event.inputs.ref2 }} - - uses: ruby/setup-ruby@ee2113536afb7f793eed4ce60e8d3b26db912da4 # v1.127.0 + - uses: ruby/setup-ruby@93287a1fa82c6ddbb6d8db978df4b0119cd8879f # v1.133.2 with: ruby-version: 3.0.0 @@ -156,6 +158,7 @@ jobs: STATEMINT_DIGEST: ${{ github.workspace}}/statemint-srtool-json/statemint-srtool-digest.json BRIDGE_HUB_ROCOCO_DIGEST: ${{ github.workspace}}/bridge-hub-rococo-srtool-json/bridge-hub-rococo-srtool-digest.json BRIDGE_HUB_KUSAMA_DIGEST: ${{ github.workspace}}/bridge-hub-kusama-srtool-json/bridge-hub-kusama-srtool-digest.json + BRIDGE_HUB_POLKADOT_DIGEST: ${{ github.workspace}}/bridge-hub-polkadot-srtool-json/bridge-hub-polkadot-srtool-digest.json COLLECTIVES_POLKADOT_DIGEST: ${{ github.workspace}}/collectives-polkadot-srtool-json/collectives-polkadot-srtool-digest.json ROCOCO_PARA_DIGEST: ${{ github.workspace}}/rococo-parachain-srtool-json/rococo-parachain-srtool-digest.json CANVAS_KUSAMA_DIGEST: ${{ github.workspace}}/contracts-rococo-srtool-json/contracts-rococo-srtool-digest.json @@ -173,6 +176,7 @@ jobs: ls -al $STATEMINT_DIGEST || true ls -al $BRIDGE_HUB_ROCOCO_DIGEST || true ls -al $BRIDGE_HUB_KUSAMA_DIGEST || true + ls -al $BRIDGE_HUB_POLKADOT_DIGEST || true ls -al $COLLECTIVES_POLKADOT_DIGEST || true ls -al $ROCOCO_PARA_DIGEST || true ls -al $CANVAS_KUSAMA_DIGEST || true @@ -224,6 +228,8 @@ jobs: runtime: statemint - category: assets runtime: westmint + - category: bridge-hubs + runtime: bridge-hub-polkadot - category: bridge-hubs runtime: bridge-hub-kusama - category: bridge-hubs @@ -247,7 +253,7 @@ jobs: - name: Download artifacts uses: actions/download-artifact@fb598a63ae348fa914e94cd0ff38f362e927b741 # v3.0.0 - - uses: ruby/setup-ruby@ee2113536afb7f793eed4ce60e8d3b26db912da4 # v1.127.0 + - uses: ruby/setup-ruby@93287a1fa82c6ddbb6d8db978df4b0119cd8879f # v1.133.2 with: ruby-version: 3.0.0 diff --git a/.github/workflows/srtool.yml b/.github/workflows/srtool.yml index fcd7bb012c2..390c7628439 100644 --- a/.github/workflows/srtool.yml +++ b/.github/workflows/srtool.yml @@ -37,6 +37,8 @@ jobs: runtime: statemint - category: assets runtime: westmint + - category: bridge-hubs + runtime: bridge-hub-polkadot - category: bridge-hubs runtime: bridge-hub-kusama - category: bridge-hubs diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 294acd5f6ae..875a3ca40a5 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -4,7 +4,6 @@ # # pipelines can be triggered manually in the web - stages: - test - build @@ -15,7 +14,7 @@ stages: - zombienet default: - interruptible: true + interruptible: true retry: max: 2 when: @@ -24,19 +23,19 @@ default: - api_failure variables: - GIT_STRATEGY: fetch - GIT_DEPTH: 100 - CARGO_INCREMENTAL: 0 - CI_IMAGE: "paritytech/ci-linux:production" - DOCKER_OS: "debian:stretch" - ARCH: "x86_64" - ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.2.82" + GIT_STRATEGY: fetch + GIT_DEPTH: 100 + CARGO_INCREMENTAL: 0 + CI_IMAGE: "paritytech/ci-linux:production" + DOCKER_OS: "debian:stretch" + ARCH: "x86_64" + ZOMBIENET_IMAGE: "docker.io/paritytech/zombienet:v1.3.37" .collect-artifacts: artifacts: - name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" - when: on_success - expire_in: 1 days + name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" + when: on_success + expire_in: 1 days paths: - ./artifacts/ @@ -52,40 +51,40 @@ variables: .pipeline-stopper-artifacts: artifacts: - reports: - dotenv: pipeline-stopper.env + reports: + dotenv: pipeline-stopper.env .common-refs: # these jobs run always* rules: - if: $CI_PIPELINE_SOURCE == "schedule" - if: $CI_COMMIT_REF_NAME == "master" - - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs - - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 - - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000 - - if: $CI_COMMIT_REF_NAME =~ /^polkadot-v[0-9]+\.[0-9]+.*$/ # i.e. polkadot-v1.0.99, polkadot-v2.1rc1 + - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs + - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 + - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000 + - if: $CI_COMMIT_REF_NAME =~ /^polkadot-v[0-9]+\.[0-9]+.*$/ # i.e. polkadot-v1.0.99, polkadot-v2.1rc1 .pr-refs: # these jobs run always* rules: - - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs + - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs .publish-refs: rules: - if: $CI_COMMIT_REF_NAME == "master" - if: $CI_PIPELINE_SOURCE == "schedule" - - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 + - if: $CI_COMMIT_REF_NAME =~ /^v[0-9]+\.[0-9]+.*$/ # i.e. v1.0, v2.1rc1 # run benchmarks manually only on release-parachains-v* branch .benchmarks-manual-refs: rules: - - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000 + - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000 when: manual # run benchmarks only on release-parachains-v* branch .benchmarks-refs: rules: - - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000 + - if: $CI_COMMIT_REF_NAME =~ /^release-parachains-v[0-9].*$/ # i.e. release-parachains-v1.0, release-parachains-v2.1rc1, release-parachains-v3000 .zombienet-refs: rules: @@ -94,14 +93,14 @@ variables: - if: $CI_PIPELINE_SOURCE == "schedule" when: never - if: $CI_COMMIT_REF_NAME == "master" - - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs + - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs .job-switcher: before_script: - if echo "$CI_DISABLED_JOBS" | grep -xF "$CI_JOB_NAME"; then echo "The job has been cancelled in CI settings"; exit 0; fi .docker-env: - image: "${CI_IMAGE}" + image: "${CI_IMAGE}" before_script: - !reference [.job-switcher, before_script] - rustup show @@ -113,7 +112,7 @@ variables: - linux-docker-vm-c2 .kubernetes-env: - image: "${CI_IMAGE}" + image: "${CI_IMAGE}" before_script: - !reference [.job-switcher, before_script] tags: @@ -152,33 +151,33 @@ include: # In a DAG, every jobs chain is executed independently of others. The `fail_fast` principle suggests # to fail the pipeline as soon as possible to shorten the feedback loop. cancel-pipeline: - stage: .post + stage: .post needs: - - job: test-linux-stable + - job: test-linux-stable rules: - - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs + - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs when: on_failure variables: - PROJECT_ID: "${CI_PROJECT_ID}" - PROJECT_NAME: "${CI_PROJECT_NAME}" - PIPELINE_ID: "${CI_PIPELINE_ID}" - FAILED_JOB_URL: "${FAILED_JOB_URL}" - FAILED_JOB_NAME: "${FAILED_JOB_NAME}" - PR_NUM: "${PR_NUM}" + PROJECT_ID: "${CI_PROJECT_ID}" + PROJECT_NAME: "${CI_PROJECT_NAME}" + PIPELINE_ID: "${CI_PIPELINE_ID}" + FAILED_JOB_URL: "${FAILED_JOB_URL}" + FAILED_JOB_NAME: "${FAILED_JOB_NAME}" + PR_NUM: "${PR_NUM}" trigger: - project: "parity/infrastructure/ci_cd/pipeline-stopper" - branch: "as-improve" + project: "parity/infrastructure/ci_cd/pipeline-stopper" + branch: "as-improve" remove-cancel-pipeline-message: stage: .post rules: - - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs + - if: $CI_COMMIT_REF_NAME =~ /^[0-9]+$/ # PRs variables: - PROJECT_ID: "${CI_PROJECT_ID}" - PROJECT_NAME: "${CI_PROJECT_NAME}" - PIPELINE_ID: "${CI_PIPELINE_ID}" - FAILED_JOB_URL: "https://gitlab.com" - FAILED_JOB_NAME: "nope" - PR_NUM: "${CI_COMMIT_REF_NAME}" + PROJECT_ID: "${CI_PROJECT_ID}" + PROJECT_NAME: "${CI_PROJECT_NAME}" + PIPELINE_ID: "${CI_PIPELINE_ID}" + FAILED_JOB_URL: "https://gitlab.com" + FAILED_JOB_NAME: "nope" + PR_NUM: "${CI_COMMIT_REF_NAME}" trigger: - project: "parity/infrastructure/ci_cd/pipeline-stopper" + project: "parity/infrastructure/ci_cd/pipeline-stopper" diff --git a/Cargo.lock b/Cargo.lock index 9a562a1b165..96e833ae729 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -27,7 +27,7 @@ version = "0.19.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" dependencies = [ - "gimli 0.27.0", + "gimli 0.27.2", ] [[package]] @@ -36,13 +36,44 @@ version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" +[[package]] +name = "aead" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fc95d1bdb8e6666b2b217308eeeb09f2d6728d104be3e31916cc74d15420331" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "aead" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0b613b8e1e3cf911a086f53f03bf286f52fd7a7258e4fa606f0ef220d39d8877" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", + "rand_core 0.6.4", +] + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array 0.14.7", +] + +[[package]] +name = "aes" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884391ef1066acaa41e766ba8f596341b96e93ce34f9a43e7d24bf0a0eaf0561" +dependencies = [ + "aes-soft", + "aesni", + "cipher 0.2.5", ] [[package]] @@ -52,32 +83,89 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e8b47f52ea9bae42228d07ec09eb676433d7c4ed1ebdf0f1d1c29ed446f1ab8" dependencies = [ "cfg-if", - "cipher", + "cipher 0.3.0", "cpufeatures", "opaque-debug 0.3.0", ] +[[package]] +name = "aes" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +dependencies = [ + "cfg-if", + "cipher 0.4.4", + "cpufeatures", +] + [[package]] name = "aes-gcm" version = "0.9.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "df5f85a83a7d8b0442b6aa7b504b8212c1733da07b98aae43d4bc21b2cb3cdf6" dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", + "aead 0.4.3", + "aes 0.7.5", + "cipher 0.3.0", + "ctr 0.8.0", + "ghash 0.4.4", + "subtle", +] + +[[package]] +name = "aes-gcm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +dependencies = [ + "aead 0.5.2", + "aes 0.8.2", + "cipher 0.4.4", + "ctr 0.9.2", + "ghash 0.5.0", "subtle", ] +[[package]] +name = "aes-soft" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be14c7498ea50828a38d0e24a765ed2effe92a705885b57d029cd67d45744072" +dependencies = [ + "cipher 0.2.5", + "opaque-debug 0.3.0", +] + +[[package]] +name = "aesni" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea2e11f5e94c2f7d386164cc2aa1f97823fed6f259e486940a71c174dd01b0ce" +dependencies = [ + "cipher 0.2.5", + "opaque-debug 0.3.0", +] + [[package]] name = "ahash" version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" dependencies = [ - "getrandom 0.2.8", + "getrandom 0.2.9", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom 0.2.9", "once_cell", "version_check", ] @@ -91,11 +179,20 @@ dependencies = [ "memchr", ] +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + [[package]] name = "always-assert" -version = "0.1.2" +version = "0.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbf688625d06217d5b1bb0ea9d9c44a1635fd0ee3534466388d18203174f4d11" +checksum = "4436e0292ab1bb631b42973c61205e704475fe8126af845c8d923c0996328127" [[package]] name = "android_system_properties" @@ -121,11 +218,60 @@ dependencies = [ "winapi", ] +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" + +[[package]] +name = "anstyle-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + [[package]] name = "anyhow" -version = "1.0.68" +version = "1.0.71" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2cb2f989d18dd141ab8ae82f64d1a8cdd37e0840f73a406896cf5e99502fab61" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" [[package]] name = "approx" @@ -146,9 +292,15 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" + [[package]] name = "array-bytes" version = "4.2.0" @@ -157,15 +309,15 @@ checksum = "f52f63c5c1316a16a4b35eaac8b76a98248961a533f061684cb2a7cb0eafb6c6" [[package]] name = "array-bytes" -version = "6.0.0" +version = "6.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22f72e9d6fac4bc80778ea470b20197b88d28c292bb7d60c3fb099280003cd19" +checksum = "d9b1c5a481ec30a5abd8dfbd94ab5cf1bb4e9a66be7f1b3b322f2f1170c200fd" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" [[package]] name = "arrayvec" @@ -179,21 +331,89 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +[[package]] +name = "asn1-rs" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30ff05a702273012438132f449575dbc804e27b2f3cbe3069aa237d26c98fa33" +dependencies = [ + "asn1-rs-derive 0.1.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.21", +] + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive 0.4.0", + "asn1-rs-impl", + "displaydoc", + "nom", + "num-traits", + "rusticata-macros", + "thiserror", + "time 0.3.21", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db8b7511298d5b7784b40b092d9e9dcd3a627a5707e4b5e507931ab0d44eeebf" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + [[package]] name = "asn1_der" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e22d1f4b888c298a027c99dc9048015fac177587de20fc30232a057dfbe24a21" +checksum = "155a5a185e42c6b77ac7b88a15143d930a9e9727a5b7b77eed417404ab15c247" [[package]] name = "assert_cmd" -version = "2.0.7" +version = "2.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa3d466004a8b4cb1bc34044240a2fd29d17607e2e3bd613eb44fd48e8100da3" +checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151" dependencies = [ + "anstyle", "bstr", "doc-comment", - "predicates", + "predicates 3.0.3", "predicates-core", "predicates-tree", "wait-timeout", @@ -225,13 +445,18 @@ dependencies = [ ] [[package]] -name = "async-attributes" -version = "1.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3203e79f4dd9bdda415ed03cf14dae5a2bf775c683a00f94e9cd1faf0f596e5" +name = "assets-common" +version = "0.1.0" dependencies = [ - "quote", - "syn", + "frame-support", + "parachains-common", + "parity-scale-codec", + "sp-api", + "sp-std", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", ] [[package]] @@ -245,125 +470,44 @@ dependencies = [ "futures-core", ] -[[package]] -name = "async-executor" -version = "1.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17adb73da160dfb475c183343c8cccd80721ea5a605d3eb57125f0a7b7a92d0b" -dependencies = [ - "async-lock", - "async-task", - "concurrent-queue", - "fastrand", - "futures-lite", - "slab", -] - -[[package]] -name = "async-global-executor" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1b6f5d7df27bd294849f8eec66ecfc63d11814df7a4f5d74168a2394467b776" -dependencies = [ - "async-channel", - "async-executor", - "async-io", - "async-lock", - "blocking", - "futures-lite", - "once_cell", -] - [[package]] name = "async-io" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c374dda1ed3e7d8f0d9ba58715f924862c63eae6849c92d3a18e7fbde9e2794" +checksum = "0fc5b45d93ef0529756f812ca52e44c221b35341892d3dcc34132ac02f3dd2af" dependencies = [ "async-lock", "autocfg", + "cfg-if", "concurrent-queue", "futures-lite", - "libc", "log", "parking", "polling", + "rustix 0.37.19", "slab", "socket2", "waker-fn", - "windows-sys 0.42.0", ] [[package]] name = "async-lock" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8101efe8695a6c17e02911402145357e718ac92d3ff88ae8419e84b1707b685" -dependencies = [ - "event-listener", - "futures-lite", -] - -[[package]] -name = "async-process" -version = "1.6.0" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6381ead98388605d0d9ff86371043b5aa922a3905824244de40dc263a14fcba4" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" dependencies = [ - "async-io", - "async-lock", - "autocfg", - "blocking", - "cfg-if", "event-listener", - "futures-lite", - "libc", - "signal-hook", - "windows-sys 0.42.0", -] - -[[package]] -name = "async-std" -version = "1.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62565bb4402e926b29953c785397c6dc0391b7b446e45008b0049eb43cec6f5d" -dependencies = [ - "async-attributes", - "async-channel", - "async-global-executor", - "async-io", - "async-lock", - "crossbeam-utils", - "futures-channel", - "futures-core", - "futures-io", - "futures-lite", - "gloo-timers", - "kv-log-macro", - "log", - "memchr", - "once_cell", - "pin-project-lite 0.2.9", - "pin-utils", - "slab", - "wasm-bindgen-futures", ] -[[package]] -name = "async-task" -version = "4.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524" - [[package]] name = "async-trait" -version = "0.1.60" +version = "0.1.68" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d1d8ab452a3936018a687b20e6f7cf5363d713b732b8884001317b0e48aa3" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -381,9 +525,9 @@ dependencies = [ [[package]] name = "atomic-waker" -version = "1.0.0" +version = "1.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065374052e7df7ee4047b1160cca5e1467a12351a40b3da123c870ba0b8eda2a" +checksum = "1181e1e0d1fce796a03db1ae795d67167da795f9cf4a39c37589e85ef57f26d3" [[package]] name = "atty" @@ -412,8 +556,8 @@ dependencies = [ "cc", "cfg-if", "libc", - "miniz_oxide", - "object 0.30.1", + "miniz_oxide 0.6.2", + "object 0.30.3", "rustc-demangle", ] @@ -441,11 +585,17 @@ version = "0.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + [[package]] name = "base64ct" -version = "1.5.3" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b645a089122eccb6111b4f81cbc1a49f5900ac4666bb93ac027feaecf15607bf" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" [[package]] name = "beef" @@ -455,72 +605,22 @@ checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" dependencies = [ "serde", ] - -[[package]] -name = "beefy-gadget" -version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "array-bytes 4.2.0", - "async-trait", - "fnv", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-finality-grandpa", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-utils", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-beefy", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-keystore", - "sp-mmr-primitives", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", - "wasm-timer", -] - -[[package]] -name = "beefy-gadget-rpc" -version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "beefy-gadget", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "sc-rpc", - "sc-utils", - "serde", - "sp-beefy", - "sp-core", - "sp-runtime", - "thiserror", + +[[package]] +name = "binary-merkle-tree" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "hash-db 0.16.0", + "log", ] [[package]] -name = "beefy-merkle-tree" +name = "binary-merkle-tree" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ - "sp-api", - "sp-beefy", - "sp-runtime", + "hash-db 0.16.0", ] [[package]] @@ -534,9 +634,9 @@ dependencies = [ [[package]] name = "bindgen" -version = "0.60.1" +version = "0.64.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "062dddbc1ba4aca46de6338e2bf87771414c335f7b2f2036e8f3e9befebf88e6" +checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" dependencies = [ "bitflags", "cexpr", @@ -549,6 +649,7 @@ dependencies = [ "regex", "rustc-hash", "shlex", + "syn 1.0.109", ] [[package]] @@ -580,24 +681,24 @@ dependencies = [ [[package]] name = "blake2b_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72936ee4afc7f8f736d1c38383b56480b5497b4617b4a77bdbf1d2ababc76127" +checksum = "3c2f0dc9a68c6317d884f97cc36cf5a3d20ba14ce404227df55e1af708ab04bc" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "constant_time_eq", ] [[package]] name = "blake2s_simd" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db539cc2b5f6003621f1cd9ef92d7ded8ea5232c7de0f9faa2de251cd98730d4" +checksum = "6637f448b9e61dfadbdcbae9a885fadee1f3eaffb1f8d3c1965d3ade8bdfd44f" dependencies = [ "arrayref", "arrayvec 0.7.2", - "constant_time_eq 0.1.5", + "constant_time_eq", ] [[package]] @@ -610,7 +711,7 @@ dependencies = [ "arrayvec 0.7.2", "cc", "cfg-if", - "constant_time_eq 0.2.4", + "constant_time_eq", "digest 0.10.6", ] @@ -620,7 +721,7 @@ version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" dependencies = [ - "block-padding", + "block-padding 0.1.5", "byte-tools", "byteorder", "generic-array 0.12.4", @@ -632,16 +733,26 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array 0.14.7", +] + +[[package]] +name = "block-modes" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "57a0e8073e8baa88212fb5823574c02ebccb395136ba9a164ab89379ec6072f0" dependencies = [ - "generic-array 0.14.6", + "block-padding 0.2.1", + "cipher 0.2.5", ] [[package]] @@ -654,24 +765,28 @@ dependencies = [ ] [[package]] -name = "blocking" -version = "1.3.0" +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "bounded-collections" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c67b173a56acffd6d2326fb7ab938ba0b00a71480e14902b2591c87bc5741e8" +checksum = "e3888522b497857eb606bf51695988dba7096941822c1bcf676e3a929a9ae7a0" dependencies = [ - "async-channel", - "async-lock", - "async-task", - "atomic-waker", - "fastrand", - "futures-lite", + "log", + "parity-scale-codec", + "scale-info", + "serde", ] [[package]] name = "bounded-vec" -version = "0.6.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3372be4090bf9d4da36bd8ba7ce6ca1669503d0cf6e667236c6df7f053153eb6" +checksum = "68534a48cbf63a4b1323c433cf21238c9ec23711e0df13b08c33e5c2082663ce" dependencies = [ "thiserror", ] @@ -697,9 +812,72 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal", - "kusama-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "kusama-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "log", - "mangata-types", + "mangata-support", + "pallet-aura", + "pallet-authorship", + "pallet-balances", + "pallet-collator-selection", + "pallet-multisig", + "pallet-session", + "pallet-sudo", + "pallet-timestamp", + "pallet-transaction-payment", + "pallet-transaction-payment-rpc-runtime-api", + "pallet-utility", + "pallet-xcm", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", + "parachain-info", + "parachains-common", + "parity-scale-codec", + "polkadot-core-primitives", + "polkadot-parachain", + "polkadot-runtime-common", + "scale-info", + "serde", + "smallvec", + "sp-api", + "sp-block-builder", + "sp-consensus-aura", + "sp-core", + "sp-inherents", + "sp-io", + "sp-offchain", + "sp-runtime", + "sp-session", + "sp-std", + "sp-transaction-pool", + "sp-version", + "substrate-wasm-builder", + "xcm", + "xcm-builder", + "xcm-executor", +] + +[[package]] +name = "bridge-hub-polkadot-runtime" +version = "0.1.0" +dependencies = [ + "cumulus-pallet-aura-ext", + "cumulus-pallet-dmp-queue", + "cumulus-pallet-parachain-system", + "cumulus-pallet-session-benchmarking", + "cumulus-pallet-xcm", + "cumulus-pallet-xcmp-queue", + "cumulus-primitives-core", + "cumulus-primitives-timestamp", + "cumulus-primitives-utility", + "frame-benchmarking", + "frame-executive", + "frame-support", + "frame-system", + "frame-system-benchmarking", + "frame-system-rpc-runtime-api", + "frame-try-runtime", + "hex-literal", + "log", + "mangata-support", "pallet-aura", "pallet-authorship", "pallet-balances", @@ -712,13 +890,14 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-utility", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "parachain-info", "parachains-common", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", + "polkadot-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "scale-info", "serde", "smallvec", @@ -762,7 +941,7 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", - "mangata-types", + "mangata-support", "pallet-aura", "pallet-authorship", "pallet-balances", @@ -775,14 +954,14 @@ dependencies = [ "pallet-transaction-payment-rpc-runtime-api", "pallet-utility", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "parachain-info", "parachains-common", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", - "rococo-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "rococo-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "scale-info", "serde", "smallvec", @@ -812,9 +991,9 @@ checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" [[package]] name = "bstr" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b45ea9b00a7b3f2988e9a65ad3917e62123c38dba709b666506207be96d1790b" +checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" dependencies = [ "memchr", "once_cell", @@ -833,9 +1012,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.11.1" +version = "3.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "572f695136211188308f16ad2ca5c851a712c464060ae6974944458eb83880ba" +checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" [[package]] name = "byte-slice-cast" @@ -849,6 +1028,12 @@ version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + [[package]] name = "byteorder" version = "1.4.3" @@ -857,9 +1042,9 @@ checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" [[package]] name = "bytes" -version = "1.3.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dfb24e866b15a1af2a1b663f10c6b6b8f397a84aadb828f12e5b289ec23a3a3c" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" [[package]] name = "bzip2-sys" @@ -874,9 +1059,9 @@ dependencies = [ [[package]] name = "camino" -version = "1.1.1" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88ad0e1e3e88dd237a156ab9f571021b8a158caa0ae44b1968a241efb5144c1e" +checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" dependencies = [ "serde", ] @@ -892,15 +1077,16 @@ dependencies = [ [[package]] name = "cargo_metadata" -version = "0.14.2" +version = "0.15.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4acbb09d9ee8e23699b9634375c72795d095bf268439da88562cf9b501f181fa" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" dependencies = [ "camino", "cargo-platform", - "semver 1.0.16", + "semver 1.0.17", "serde", "serde_json", + "thiserror", ] [[package]] @@ -911,13 +1097,24 @@ checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" [[package]] name = "cc" -version = "1.0.78" +version = "1.0.79" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a20104e2335ce8a659d6dd92a51a767a0c062599c73b343fd152cb401e828c3d" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" dependencies = [ "jobserver", ] +[[package]] +name = "ccm" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aca1a8fbc20b50ac9673ff014abfb2b5f4085ee1a850d408f14a159c5853ac7" +dependencies = [ + "aead 0.3.2", + "cipher 0.2.5", + "subtle", +] + [[package]] name = "cexpr" version = "0.6.0" @@ -955,7 +1152,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5c80e5460aa66fe3b91d40bcbdab953a597b60053e34d684ac6903f863b680a6" dependencies = [ "cfg-if", - "cipher", + "cipher 0.3.0", "cpufeatures", "zeroize", ] @@ -966,33 +1163,33 @@ version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a18446b09be63d457bbec447509e85f662f32952b035ce892290396bc0b0cff5" dependencies = [ - "aead", + "aead 0.4.3", "chacha20", - "cipher", + "cipher 0.3.0", "poly1305", "zeroize", ] [[package]] name = "chrono" -version = "0.4.23" +version = "0.4.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16b0a3d9ed01224b22057780a37bb8c5dbfe1be8ba48678e7bf57ec4b385411f" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" dependencies = [ "iana-time-zone", "js-sys", "num-integer", "num-traits", - "time", + "time 0.1.45", "wasm-bindgen", "winapi", ] [[package]] name = "ciborium" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +checksum = "effd91f6c78e5a4ace8a5d3c0b6bfaec9e2baaef55f3efc00e45fb2e477ee926" dependencies = [ "ciborium-io", "ciborium-ll", @@ -1001,15 +1198,15 @@ dependencies = [ [[package]] name = "ciborium-io" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" +checksum = "cdf919175532b369853f5d5e20b26b43112613fd6fe7aee757e35f7a44642656" [[package]] name = "ciborium-ll" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +checksum = "defaa24ecc093c77630e6c15e17c51f5e187bf35ee514f4e2d67baaa96dae22b" dependencies = [ "ciborium-io", "half", @@ -1023,18 +1220,37 @@ checksum = "f6ed9c8b2d17acb8110c46f1da5bf4a696d745e1474a16db0cd2b49cd0249bf2" dependencies = [ "core2", "multibase", - "multihash", + "multihash 0.16.3", "serde", "unsigned-varint", ] +[[package]] +name = "cipher" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12f8e7987cbd042a63249497f41aed09f8e65add917ea6566effbc56578d6801" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "cipher" version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ee52072ec15386f770805afd189a01c8841be8696bed250fa2f13c4c0d6dfb7" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", ] [[package]] @@ -1048,9 +1264,9 @@ dependencies = [ [[package]] name = "clang-sys" -version = "1.4.0" +version = "1.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa2e27ae6ab525c3d369ded447057bca5438d86dc3a68f6faafb8269ba82ebf3" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" dependencies = [ "glob", "libc", @@ -1059,9 +1275,9 @@ dependencies = [ [[package]] name = "clap" -version = "3.2.23" +version = "3.2.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "71655c45cb9845d3270c9d6df84ebe72b4dad3c2ba3f7023ad47c144e4e473a5" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" dependencies = [ "bitflags", "clap_lex 0.2.4", @@ -1071,30 +1287,38 @@ dependencies = [ [[package]] name = "clap" -version = "4.0.32" +version = "4.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7db700bc935f9e43e88d00b0850dae18a63773cfbec6d8e070fccf7fef89a39" +checksum = "34d21f9bf1b425d2968943631ec91202fe5e837264063503708b83013f8fc938" dependencies = [ - "bitflags", + "clap_builder", "clap_derive", - "clap_lex 0.3.0", - "is-terminal", "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "914c8c79fb560f238ef6429439a30023c862f7a28e688c58f7203f12b29970bd" +dependencies = [ + "anstream", + "anstyle", + "bitflags", + "clap_lex 0.4.1", "strsim", - "termcolor", ] [[package]] name = "clap_derive" -version = "4.0.21" +version = "4.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0177313f9f02afc995627906bbd8967e2be069f5261954222dac78290c2b9014" +checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" dependencies = [ "heck", - "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -1108,18 +1332,15 @@ dependencies = [ [[package]] name = "clap_lex" -version = "0.3.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d4198f73e42b4936b35b5bb248d81d2b595ecb170da0bac7655c54eedfa8da8" -dependencies = [ - "os_str_bytes", -] +checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" [[package]] name = "coarsetime" -version = "0.1.22" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "454038500439e141804c655b4cd1bc6a70bcb95cd2bc9463af5661b6956f0e46" +checksum = "a90d114103adbc625300f346d4d09dfb4ab1c4a8df6868435dd903392ecf4354" dependencies = [ "libc", "once_cell", @@ -1159,7 +1380,7 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", - "mangata-types", + "mangata-support", "pallet-alliance", "pallet-aura", "pallet-authorship", @@ -1180,7 +1401,7 @@ dependencies = [ "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", - "polkadot-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "polkadot-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "scale-info", "smallvec", "sp-api", @@ -1200,6 +1421,12 @@ dependencies = [ "xcm-executor", ] +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + [[package]] name = "comfy-table" version = "6.1.4" @@ -1213,30 +1440,24 @@ dependencies = [ [[package]] name = "concurrent-queue" -version = "2.0.0" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd7bef69dc86e3c610e4e7aed41035e2a7ed12e72dd7530f61327a6579a4390b" +checksum = "62ec6771ecfa0762d24683ee5a32ad78487a3d3afdc0fb8cae19d2c5deb50b7c" dependencies = [ "crossbeam-utils", ] [[package]] name = "const-oid" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cec318a675afcb6a1ea1d4340e2d377e56e47c266f28043ceccbf4412ddfdd3b" - -[[package]] -name = "constant_time_eq" -version = "0.1.5" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" [[package]] name = "constant_time_eq" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3ad85c1f65dc7b37604eb0e89748faf0b9653065f2a8ef69f96a687ec1e9279" +checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" [[package]] name = "contracts-rococo-runtime" @@ -1259,17 +1480,17 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal", - "kusama-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "kusama-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "log", - "mangata-types", + "mangata-support", "pallet-aura", "pallet-authorship", "pallet-balances", "pallet-collator-selection", "pallet-contracts", "pallet-contracts-primitives", + "pallet-insecure-randomness-collective-flip", "pallet-multisig", - "pallet-randomness-collective-flip", "pallet-session", "pallet-sudo", "pallet-timestamp", @@ -1320,9 +1541,9 @@ dependencies = [ [[package]] name = "core-foundation-sys" -version = "0.8.3" +version = "0.8.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" [[package]] name = "core2" @@ -1354,27 +1575,27 @@ dependencies = [ [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" dependencies = [ "libc", ] [[package]] name = "cranelift-bforest" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52056f6d0584484b57fa6c1a65c1fcb15f3780d8b6a758426d9e3084169b2ddd" +checksum = "2bc42ba2e232e5b20ff7dc299a812d53337dadce9a7e39a238e6a5cb82d2e57b" dependencies = [ "cranelift-entity", ] [[package]] name = "cranelift-codegen" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18fed94c8770dc25d01154c3ffa64ed0b3ba9d583736f305fed7beebe5d9cf74" +checksum = "253531aca9b6f56103c9420369db3263e784df39aa1c90685a1f69cfbba0623e" dependencies = [ "arrayvec 0.7.2", "bumpalo", @@ -1384,6 +1605,7 @@ dependencies = [ "cranelift-entity", "cranelift-isle", "gimli 0.26.2", + "hashbrown 0.12.3", "log", "regalloc2", "smallvec", @@ -1392,33 +1614,33 @@ dependencies = [ [[package]] name = "cranelift-codegen-meta" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c451b81faf237d11c7e4f3165eeb6bac61112762c5cfe7b4c0fb7241474358f" +checksum = "72f2154365e2bff1b1b8537a7181591fdff50d8e27fa6e40d5c69c3bad0ca7c8" dependencies = [ "cranelift-codegen-shared", ] [[package]] name = "cranelift-codegen-shared" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c940133198426d26128f08be2b40b0bd117b84771fd36798969c4d712d81fc" +checksum = "687e14e3f5775248930e0d5a84195abef8b829958e9794bf8d525104993612b4" [[package]] name = "cranelift-entity" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87a0f1b2fdc18776956370cf8d9b009ded3f855350c480c1c52142510961f352" +checksum = "f42ea692c7b450ad18b8c9889661505d51c09ec4380cf1c2d278dbb2da22cae1" dependencies = [ "serde", ] [[package]] name = "cranelift-frontend" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34897538b36b216cc8dd324e73263596d51b8cf610da6498322838b2546baf8a" +checksum = "8483c2db6f45fe9ace984e5adc5d058102227e4c62e5aa2054e16b0275fd3a6e" dependencies = [ "cranelift-codegen", "log", @@ -1428,15 +1650,15 @@ dependencies = [ [[package]] name = "cranelift-isle" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b2629a569fae540f16a76b70afcc87ad7decb38dc28fa6c648ac73b51e78470" +checksum = "e9793158837678902446c411741d87b43f57dadfb944f2440db4287cda8cbd59" [[package]] name = "cranelift-native" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20937dab4e14d3e225c5adfc9c7106bafd4ac669bdb43027b911ff794c6fb318" +checksum = "72668c7755f2b880665cb422c8ad2d56db58a88b9bebfef0b73edc2277c13c49" dependencies = [ "cranelift-codegen", "libc", @@ -1445,9 +1667,9 @@ dependencies = [ [[package]] name = "cranelift-wasm" -version = "0.88.2" +version = "0.93.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80fc2288957a94fd342a015811479de1837850924166d1f1856d8406e6f3609b" +checksum = "3852ce4b088b44ac4e29459573943009a70d1b192c8d77ef949b4e814f656fc1" dependencies = [ "cranelift-codegen", "cranelift-entity", @@ -1459,6 +1681,21 @@ dependencies = [ "wasmtime-types", ] +[[package]] +name = "crc" +version = "3.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86ec7a15cbe22e59248fc7eadb1907dab5ba09372595da4d73dd805ed4417dfe" +dependencies = [ + "crc-catalog", +] + +[[package]] +name = "crc-catalog" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9cace84e55f07e7301bae1c519df89cdad8cc3cd868413d3fdbdeca9ff3db484" + [[package]] name = "crc32fast" version = "1.3.2" @@ -1478,7 +1715,7 @@ dependencies = [ "atty", "cast", "ciborium", - "clap 3.2.23", + "clap 3.2.25", "criterion-plot", "futures", "itertools 0.10.5", @@ -1508,9 +1745,9 @@ dependencies = [ [[package]] name = "crossbeam-channel" -version = "0.5.6" +version = "0.5.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" dependencies = [ "cfg-if", "crossbeam-utils", @@ -1518,9 +1755,9 @@ dependencies = [ [[package]] name = "crossbeam-deque" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "715e8152b692bba2d374b53d4875445368fdf21a94751410af607a5ac677d1fc" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" dependencies = [ "cfg-if", "crossbeam-epoch", @@ -1529,14 +1766,14 @@ dependencies = [ [[package]] name = "crossbeam-epoch" -version = "0.9.13" +version = "0.9.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01a9af1f4c2ef74bb8aa1f7e19706bc72d03598c8a570bb5de72243c7a9d9d5a" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" dependencies = [ "autocfg", "cfg-if", "crossbeam-utils", - "memoffset 0.7.1", + "memoffset 0.8.0", "scopeguard", ] @@ -1552,9 +1789,9 @@ dependencies = [ [[package]] name = "crossbeam-utils" -version = "0.8.14" +version = "0.8.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb766fa798726286dbbb842f174001dab8abc7b627a1dd86e0b7222a95d929f" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" dependencies = [ "cfg-if", ] @@ -1571,7 +1808,7 @@ version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "rand_core 0.6.4", "subtle", "zeroize", @@ -1583,7 +1820,8 @@ version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", + "rand_core 0.6.4", "typenum", ] @@ -1593,7 +1831,7 @@ version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] @@ -1603,34 +1841,33 @@ version = "0.11.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b1d1a86f49236c215f271d40892d5fc950490551400b02ef360692c29815c714" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", "subtle", ] [[package]] -name = "ctor" -version = "0.1.26" +name = "ctr" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" dependencies = [ - "quote", - "syn", + "cipher 0.3.0", ] [[package]] name = "ctr" -version = "0.8.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "049bb91fb4aaf0e3c7efa6cd5ef877dbbbd15b39dad06d9948de4ec8a75761ea" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" dependencies = [ - "cipher", + "cipher 0.4.4", ] [[package]] name = "cumulus-client-cli" version = "0.1.0" dependencies = [ - "clap 4.0.32", + "clap 4.2.7", "parity-scale-codec", "sc-chain-spec", "sc-cli", @@ -1714,6 +1951,7 @@ dependencies = [ "polkadot-primitives", "sc-client-api", "sc-consensus", + "schnellru", "sp-blockchain", "sp-consensus", "sp-runtime", @@ -1761,7 +1999,6 @@ dependencies = [ "polkadot-node-primitives", "polkadot-parachain", "polkadot-primitives", - "polkadot-service", "polkadot-test-client", "portpicker", "sc-cli", @@ -1783,6 +2020,7 @@ dependencies = [ name = "cumulus-client-pov-recovery" version = "0.1.0" dependencies = [ + "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-test-service", @@ -1813,24 +2051,31 @@ dependencies = [ "cumulus-client-cli", "cumulus-client-collator", "cumulus-client-consensus-common", + "cumulus-client-network", "cumulus-client-pov-recovery", "cumulus-primitives-core", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", "futures", - "parking_lot 0.12.1", "polkadot-primitives", "sc-client-api", "sc-consensus", + "sc-network", + "sc-network-sync", + "sc-network-transactions", + "sc-rpc", "sc-service", "sc-sysinfo", "sc-telemetry", + "sc-transaction-pool", + "sc-utils", "sp-api", "sp-blockchain", "sp-consensus", "sp-core", "sp-runtime", + "sp-transaction-pool", ] [[package]] @@ -1838,7 +2083,6 @@ name = "cumulus-pallet-aura-ext" version = "0.1.0" dependencies = [ "cumulus-pallet-parachain-system", - "frame-executive", "frame-support", "frame-system", "pallet-aura", @@ -1858,7 +2102,7 @@ dependencies = [ "frame-support", "frame-system", "log", - "mangata-types", + "mangata-support", "parity-scale-codec", "scale-info", "sp-core", @@ -1886,7 +2130,7 @@ dependencies = [ "impl-trait-for-tuples", "lazy_static", "log", - "mangata-types", + "mangata-support", "parity-scale-codec", "polkadot-parachain", "sc-client-api", @@ -1902,6 +2146,7 @@ dependencies = [ "sp-tracing", "sp-trie", "sp-version", + "xcm", ] [[package]] @@ -1911,7 +2156,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -1967,9 +2212,10 @@ dependencies = [ "frame-support", "frame-system", "log", - "mangata-types", + "mangata-support", "pallet-balances", "parity-scale-codec", + "polkadot-runtime-common", "rand_chacha 0.3.1", "scale-info", "sp-core", @@ -2008,6 +2254,7 @@ dependencies = [ "sp-runtime", "sp-std", "sp-trie", + "xcm", ] [[package]] @@ -2057,6 +2304,8 @@ dependencies = [ "frame-support", "log", "parity-scale-codec", + "polkadot-runtime-common", + "sp-io", "sp-runtime", "sp-std", "xcm", @@ -2103,26 +2352,24 @@ dependencies = [ "jsonrpsee-core", "parity-scale-codec", "polkadot-overseer", - "polkadot-service", "sc-client-api", "sp-api", "sp-blockchain", "sp-state-machine", "thiserror", - "tokio", ] [[package]] name = "cumulus-relay-chain-minimal-node" version = "0.1.0" dependencies = [ - "array-bytes 6.0.0", + "array-bytes 6.1.0", "async-trait", "cumulus-primitives-core", "cumulus-relay-chain-interface", "cumulus-relay-chain-rpc-interface", "futures", - "lru", + "lru 0.9.0", "polkadot-core-primitives", "polkadot-network-bridge", "polkadot-node-network-protocol", @@ -2132,15 +2379,10 @@ dependencies = [ "polkadot-service", "sc-authority-discovery", "sc-client-api", - "sc-consensus", - "sc-keystore", "sc-network", "sc-network-common", "sc-service", - "sc-telemetry", "sc-tracing", - "sc-transaction-pool", - "sc-transaction-pool-api", "sp-api", "sp-blockchain", "sp-consensus", @@ -2148,7 +2390,6 @@ dependencies = [ "sp-runtime", "tokio", "tracing", - "url", ] [[package]] @@ -2161,11 +2402,12 @@ dependencies = [ "futures", "futures-timer", "jsonrpsee", - "lru", + "lru 0.9.0", "parity-scale-codec", - "polkadot-service", + "polkadot-overseer", "sc-client-api", "sc-rpc-api", + "sc-service", "serde", "serde_json", "sp-api", @@ -2227,7 +2469,7 @@ name = "cumulus-test-relay-validation-worker-provider" version = "0.1.0" dependencies = [ "polkadot-node-core-pvf", - "toml", + "toml 0.7.3", ] [[package]] @@ -2242,7 +2484,7 @@ dependencies = [ "frame-system", "frame-system-rpc-runtime-api", "lazy_static", - "mangata-types", + "mangata-support", "pallet-balances", "pallet-sudo", "pallet-timestamp", @@ -2268,19 +2510,18 @@ name = "cumulus-test-service" version = "0.1.0" dependencies = [ "async-trait", - "clap 4.0.32", + "clap 4.2.7", "criterion", "cumulus-client-cli", "cumulus-client-consensus-common", "cumulus-client-consensus-relay-chain", - "cumulus-client-network", + "cumulus-client-pov-recovery", "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", "cumulus-relay-chain-inprocess-interface", "cumulus-relay-chain-interface", "cumulus-relay-chain-minimal-node", - "cumulus-relay-chain-rpc-interface", "cumulus-test-relay-validation-worker-provider", "cumulus-test-runtime", "frame-system", @@ -2291,6 +2532,8 @@ dependencies = [ "parachains-common", "parity-scale-codec", "polkadot-cli", + "polkadot-node-subsystem", + "polkadot-overseer", "polkadot-primitives", "polkadot-service", "polkadot-test-service", @@ -2303,7 +2546,6 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-network", - "sc-network-common", "sc-service", "sc-telemetry", "sc-tracing", @@ -2355,9 +2597,9 @@ dependencies = [ [[package]] name = "curve25519-dalek" -version = "4.0.0-pre.5" +version = "4.0.0-rc.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67bc65846be335cb20f4e52d49a437b773a2c1fdb42b19fc84e79e6f6771536f" +checksum = "8d4ba9852b42210c7538b75484f9daa0655e9a3ac04f693747bb0f02cf3cfe16" dependencies = [ "cfg-if", "fiat-crypto", @@ -2369,9 +2611,9 @@ dependencies = [ [[package]] name = "cxx" -version = "1.0.85" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5add3fc1717409d029b20c5b6903fc0c0b02fa6741d820054f4a2efa5e5816fd" +checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" dependencies = [ "cc", "cxxbridge-flags", @@ -2381,9 +2623,9 @@ dependencies = [ [[package]] name = "cxx-build" -version = "1.0.85" +version = "1.0.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4c87959ba14bc6fbc61df77c3fcfe180fc32b93538c4f1031dd802ccb5f2ff0" +checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" dependencies = [ "cc", "codespan-reporting", @@ -2391,24 +2633,59 @@ dependencies = [ "proc-macro2", "quote", "scratch", - "syn", + "syn 2.0.15", ] [[package]] name = "cxxbridge-flags" -version = "1.0.85" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.15", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core", + "darling_macro", +] + +[[package]] +name = "darling_core" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69a3e162fde4e594ed2b07d0f83c6c67b745e7f28ce58c6df5e6b6bef99dfb59" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2", + "quote", + "strsim", + "syn 1.0.109", +] [[package]] -name = "cxxbridge-macro" -version = "1.0.85" +name = "darling_macro" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e7e2adeb6a0d4a282e581096b06e1791532b7d576dcde5ccd9382acf55db8e6" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ - "proc-macro2", + "darling_core", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -2434,7 +2711,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" dependencies = [ "data-encoding", - "syn", + "syn 1.0.109", ] [[package]] @@ -2444,9 +2721,38 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" dependencies = [ "const-oid", + "pem-rfc7468", "zeroize", ] +[[package]] +name = "der-parser" +version = "7.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe398ac75057914d7d07307bf67dc7f3f574a26783b4fc7805a20ffa9f506e82" +dependencies = [ + "asn1-rs 0.3.1", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs 0.5.2", + "displaydoc", + "nom", + "num-bigint", + "num-traits", + "rusticata-macros", +] + [[package]] name = "derivative" version = "2.2.0" @@ -2455,7 +2761,49 @@ checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d07adf7be193b71cc36b193d0f5fe60b918a3a9db4dad0449f57bcfd519704a3" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f91d4cfa921f1c05904dc3c57b4a32c38aed3340cce209f3a6fd1478babafc4" +dependencies = [ + "darling", + "proc-macro2", + "quote", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0314b72bed045f3a68671b3c86328386762c93f82d98c65c3cb5e5f573dd68" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", ] [[package]] @@ -2468,7 +2816,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version 0.4.0", - "syn", + "syn 1.0.109", ] [[package]] @@ -2492,7 +2840,7 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", ] [[package]] @@ -2501,7 +2849,7 @@ version = "0.10.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] @@ -2548,13 +2896,14 @@ dependencies = [ ] [[package]] -name = "dns-parser" -version = "0.8.0" +name = "displaydoc" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4d33be9473d06f75f58220f71f7a9317aca647dc061dbd3c361b0bef505fbea" +checksum = "487585f4d0c6655fe74905e2504d8ad6908e4db67f744eb140876906c2f3175d" dependencies = [ - "byteorder", - "quick-error", + "proc-macro2", + "quote", + "syn 2.0.15", ] [[package]] @@ -2577,9 +2926,9 @@ checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" [[package]] name = "dtoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c00704156a7de8df8da0911424e30c2049957b0a714542a44e05fe693dd85313" +checksum = "65d09067bfacaa79114679b279d7f5885b53295b1e2cfb4e79c8e4bd3d633169" [[package]] name = "dyn-clonable" @@ -2599,14 +2948,14 @@ checksum = "558e40ea573c374cf53507fd240b7ee2f5477df7cfebdb97323ec61c719399c5" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "dyn-clone" -version = "1.0.10" +version = "1.0.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9b0705efd4599c15a38151f4721f7bc388306f61084d3bfd50bd07fbca5cb60" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" [[package]] name = "ecdsa" @@ -2622,9 +2971,9 @@ dependencies = [ [[package]] name = "ed25519" -version = "1.5.2" +version = "1.5.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e9c280362032ea4203659fc489832d0204ef09f247a0506f170dafcac08c369" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" dependencies = [ "signature", ] @@ -2650,7 +2999,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7c24f403d068ad0b359e577a77f92392118be3f3c927538f2bb544a5ecd828c6" dependencies = [ "curve25519-dalek 3.2.0", - "hashbrown", + "hashbrown 0.12.3", "hex", "rand_core 0.6.4", "sha2 0.9.9", @@ -2659,9 +3008,9 @@ dependencies = [ [[package]] name = "either" -version = "1.8.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" [[package]] name = "elliptic-curve" @@ -2674,8 +3023,11 @@ dependencies = [ "der", "digest 0.10.6", "ff", - "generic-array 0.14.6", + "generic-array 0.14.7", "group", + "hkdf", + "pem-rfc7468", + "pkcs8", "rand_core 0.6.4", "sec1", "subtle", @@ -2691,38 +3043,38 @@ dependencies = [ "heck", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "enumflags2" -version = "0.7.5" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e75d4cd21b95383444831539909fbb14b9dc3fdceb2a6f5d36577329a1f55ccb" +checksum = "c041f5090df68b32bcd905365fd51769c8b9d553fe87fde0b683534f10c01bd2" dependencies = [ "enumflags2_derive", ] [[package]] name = "enumflags2_derive" -version = "0.7.4" +version = "0.7.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f58dc3c5e468259f19f2d46304a6b28f1c3d034442e14b322d2b850e36f6d5ae" +checksum = "5e9a1f9f7d83e59740248a6e14ecf93929ade55027844dfcea78beafccc15745" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] name = "enumn" -version = "0.1.6" +version = "0.1.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e88bcb3a067a6555d577aba299e75eff9942da276e6506fc6274327daa026132" +checksum = "48016319042fb7c87b78d2993084a831793a897a5cd1a2a67cab9d1eeb4b7d76" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -2759,13 +3111,13 @@ checksum = "e48c92028aaa870e83d51c64e5d4e0b6981b360c522198c23959f219a4e1b15b" [[package]] name = "errno" -version = "0.2.8" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" dependencies = [ "errno-dragonfly", "libc", - "winapi", + "windows-sys 0.48.0", ] [[package]] @@ -2815,13 +3167,26 @@ dependencies = [ "fs-err", "proc-macro2", "quote", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "expander" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f360349150728553f92e4c997a16af8915f418d3a0f21b440d34c5632f16ed84" +dependencies = [ + "blake2", + "fs-err", + "proc-macro2", + "quote", + "syn 1.0.109", ] [[package]] name = "extrinsic-shuffler" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "derive_more", "log", @@ -2848,9 +3213,9 @@ checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" [[package]] name = "fastrand" -version = "1.8.0" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" dependencies = [ "instant", ] @@ -2876,7 +3241,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "thiserror", ] @@ -2901,9 +3266,9 @@ dependencies = [ [[package]] name = "fiat-crypto" -version = "0.1.17" +version = "0.1.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a214f5bb88731d436478f3ae1f8a277b62124089ba9fb67f4f93fb100ef73c90" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" [[package]] name = "file-per-thread-logger" @@ -2917,21 +3282,21 @@ dependencies = [ [[package]] name = "filetime" -version = "0.2.19" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e884668cd0c7480504233e951174ddc3b382f7c2666e3b7310b5c4e7b0c37f9" +checksum = "5cbc844cecaee9d4443931972e1289c8ff485cb4cc2767cb03ca139ed6885153" dependencies = [ "cfg-if", "libc", - "redox_syscall", - "windows-sys 0.42.0", + "redox_syscall 0.2.16", + "windows-sys 0.48.0", ] [[package]] name = "finality-grandpa" -version = "0.16.1" +version = "0.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e24e6c429951433ccb7c87fd528c60084834dcd14763182c1f83291bcde24c34" +checksum = "36530797b9bf31cd4ff126dcfee8170f86b00cfdcea3269d73133cc0415945c3" dependencies = [ "either", "futures", @@ -2963,13 +3328,13 @@ checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" [[package]] name = "flate2" -version = "1.0.25" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8a2db397cb1c8772f31494cb8917e48cd1e64f0fa7efac59fbd741a0a8ce841" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" dependencies = [ "crc32fast", "libz-sys", - "miniz_oxide", + "miniz_oxide 0.7.1", ] [[package]] @@ -2990,7 +3355,7 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "fork-tree" version = "3.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", ] @@ -3013,9 +3378,10 @@ checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" [[package]] name = "frame-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", + "frame-support-procedural", "frame-system", "futures", "linregress", @@ -3032,17 +3398,18 @@ dependencies = [ "sp-runtime-interface", "sp-std", "sp-storage", + "static_assertions", ] [[package]] name = "frame-benchmarking-cli" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "Inflector", "array-bytes 4.2.0", "chrono", - "clap 4.0.32", + "clap 4.2.7", "comfy-table", "frame-benchmarking", "frame-support", @@ -3050,16 +3417,13 @@ dependencies = [ "futures", "gethostname", "handlebars", - "hash-db", "itertools 0.10.5", - "kvdb", "lazy_static", "linked-hash-map", "log", - "memory-db", "parity-scale-codec", "rand 0.8.5", - "rand_pcg 0.3.1", + "rand_pcg", "sc-block-builder", "sc-block-builder-ver", "sc-cli", @@ -3071,7 +3435,6 @@ dependencies = [ "sc-sysinfo", "serde", "serde_json", - "serde_nanos", "sp-api", "sp-blockchain", "sp-consensus", @@ -3086,7 +3449,6 @@ dependencies = [ "sp-std", "sp-storage", "sp-trie", - "tempfile", "thiserror", "thousands", "ver-api", @@ -3095,18 +3457,18 @@ dependencies = [ [[package]] name = "frame-election-provider-solution-type" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-election-provider-support" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-election-provider-solution-type", "frame-support", @@ -3123,7 +3485,7 @@ dependencies = [ [[package]] name = "frame-executive" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "aquamarine", "extrinsic-shuffler", @@ -3144,9 +3506,9 @@ dependencies = [ [[package]] name = "frame-metadata" -version = "15.0.0" +version = "15.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df6bb8542ef006ef0de09a5c4420787d79823c0ed7924225822362fd2bf2ff2d" +checksum = "878babb0b136e731cc77ec2fd883ff02745ff21e6fb662729953d44923df009c" dependencies = [ "cfg-if", "parity-scale-codec", @@ -3157,18 +3519,15 @@ dependencies = [ [[package]] name = "frame-remote-externalities" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "env_logger 0.9.3", "futures", "log", "parity-scale-codec", "serde", - "serde_json", "sp-core", "sp-io", "sp-runtime", - "sp-version", "substrate-rpc-client", "tokio", ] @@ -3176,9 +3535,10 @@ dependencies = [ [[package]] name = "frame-support" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "bitflags", + "environmental", "frame-metadata", "frame-support-procedural", "impl-trait-for-tuples", @@ -3209,43 +3569,44 @@ dependencies = [ [[package]] name = "frame-support-procedural" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "Inflector", "cfg-expr", + "derive-syn-parse", "frame-support-procedural-tools", "itertools 0.10.5", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-support-procedural-tools" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support-procedural-tools-derive", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-support-procedural-tools-derive" version = "3.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "frame-system" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "extrinsic-shuffler", "frame-support", @@ -3265,7 +3626,7 @@ dependencies = [ [[package]] name = "frame-system-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -3280,7 +3641,7 @@ dependencies = [ [[package]] name = "frame-system-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "sp-api", @@ -3289,7 +3650,7 @@ dependencies = [ [[package]] name = "frame-try-runtime" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "parity-scale-codec", @@ -3315,10 +3676,14 @@ dependencies = [ ] [[package]] -name = "fs_extra" -version = "1.2.0" +name = "fs4" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2022715d62ab30faffd124d40b76f4134a550a87792276512b18d63272333394" +checksum = "a7f5b6908aecca5812a4569056285e58c666588c9573ee59765bf1d3692699e2" +dependencies = [ + "rustix 0.37.19", + "windows-sys 0.48.0", +] [[package]] name = "funty" @@ -3328,9 +3693,9 @@ checksum = "e6d5a32815ae3f33302d95fdcb2ce17862f8c65363dcfd29360480ba1001fc9c" [[package]] name = "futures" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38390104763dc37a5145a53c29c63c1290b5d316d6086ec32c293f6736051bb0" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" dependencies = [ "futures-channel", "futures-core", @@ -3343,9 +3708,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "52ba265a92256105f45b719605a571ffe2d1f0fea3807304b522c1d778f79eed" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" dependencies = [ "futures-core", "futures-sink", @@ -3353,15 +3718,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04909a7a7e4633ae6c4a9ab280aeb86da1236243a77b694a49eacd659a4bd3ac" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" [[package]] name = "futures-executor" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7acc85df6714c176ab5edf386123fafe217be88c0840ec11f199441134a074e2" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" dependencies = [ "futures-core", "futures-task", @@ -3371,15 +3736,15 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00f5fb52a06bdcadeb54e8d3671f8888a39697dcb0b81b23b55174030427f4eb" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" [[package]] name = "futures-lite" -version = "1.12.0" +version = "1.13.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" dependencies = [ "fastrand", "futures-core", @@ -3392,13 +3757,13 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdfb8ce053d86b91919aad980c220b1fb8401a9394410e1c289ed7e66b61835d" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -3408,21 +3773,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d2411eed028cdf8c8034eaf21f9915f956b6c3abec4d4c7949ee67f0721127bd" dependencies = [ "futures-io", - "rustls", - "webpki", + "rustls 0.20.8", + "webpki 0.22.0", ] [[package]] name = "futures-sink" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39c15cf1a4aa79df40f1bb462fb39676d0ad9e366c2a33b590d7c66f4f81fcf9" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" [[package]] name = "futures-task" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ffb393ac5d9a6eaa9d3fdf37ae2776656b706e200c8e16b1bdb227f5198e6ea" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" [[package]] name = "futures-timer" @@ -3432,9 +3797,9 @@ checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" [[package]] name = "futures-util" -version = "0.3.25" +version = "0.3.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "197676987abd2f9cadff84926f410af1c183608d36641465df73ae8211dc65d6" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" dependencies = [ "futures-channel", "futures-core", @@ -3468,9 +3833,9 @@ dependencies = [ [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ "typenum", "version_check", @@ -3493,17 +3858,15 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c05aeb6a22b8f62540c194aac980f2115af067bfe15a0734d7277a768d396b31" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" dependencies = [ "cfg-if", "libc", @@ -3517,7 +3880,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1583cc1656d7839fd3732b80cf4f38850336cdb9b8ded1cd399ca62958de3c99" dependencies = [ "opaque-debug 0.3.0", - "polyval", + "polyval 0.5.3", +] + +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug 0.3.0", + "polyval 0.6.0", ] [[package]] @@ -3533,15 +3906,15 @@ dependencies = [ [[package]] name = "gimli" -version = "0.27.0" +version = "0.27.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dec7af912d60cdbd3677c1af9352ebae6fb8394d165568a2234df0fa00f87793" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" [[package]] name = "glob" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" [[package]] name = "globset" @@ -3549,25 +3922,13 @@ version = "0.4.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" dependencies = [ - "aho-corasick", + "aho-corasick 0.7.20", "bstr", "fnv", "log", "regex", ] -[[package]] -name = "gloo-timers" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98c4a8d6391675c6b2ee1a6c8d06e8e2d03605c44cec1270675985a4c2a5500b" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - [[package]] name = "group" version = "0.12.1" @@ -3581,9 +3942,9 @@ dependencies = [ [[package]] name = "h2" -version = "0.3.15" +version = "0.3.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f9f29bc9dda355256b2916cf526ab02ce0aeaaaf2bad60d65ef3f12f11dd0f4" +checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" dependencies = [ "bytes", "fnv", @@ -3624,6 +3985,12 @@ version = "0.15.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d23bd4e7b5eda0d0f3a307e8b381fdc8ba9000f26fbe912250c0a4cc3956364a" +[[package]] +name = "hash-db" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e7d7786361d7425ae2fe4f9e407eb0efaa0840f5212d109cc018c40c35c6ab4" + [[package]] name = "hash256-std-hasher" version = "0.15.2" @@ -3639,14 +4006,23 @@ version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" dependencies = [ - "ahash", + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", ] [[package]] name = "heck" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" [[package]] name = "hermit-abi" @@ -3666,6 +4042,12 @@ dependencies = [ "libc", ] +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + [[package]] name = "hex" version = "0.4.3" @@ -3678,6 +4060,15 @@ version = "0.3.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" +[[package]] +name = "hkdf" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac 0.12.1", +] + [[package]] name = "hmac" version = "0.8.1" @@ -3714,7 +4105,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" dependencies = [ "digest 0.9.0", - "generic-array 0.14.6", + "generic-array 0.14.7", "hmac 0.8.1", ] @@ -3731,9 +4122,9 @@ dependencies = [ [[package]] name = "http" -version = "0.2.8" +version = "0.2.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75f43d41e26995c17e71ee126451dd3941010b0514a81a9d11f3b341debc2399" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" dependencies = [ "bytes", "fnv", @@ -3777,9 +4168,9 @@ checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" [[package]] name = "hyper" -version = "0.14.23" +version = "0.14.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034711faac9d2166cb1baf1a2fb0b60b1f277f8492fd72176c17f3515e1abd3c" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" dependencies = [ "bytes", "futures-channel", @@ -3808,7 +4199,7 @@ dependencies = [ "http", "hyper", "log", - "rustls", + "rustls 0.20.8", "rustls-native-certs", "tokio", "tokio-rustls", @@ -3816,16 +4207,16 @@ dependencies = [ [[package]] name = "iana-time-zone" -version = "0.1.53" +version = "0.1.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64c122667b287044802d6ce17ee2ddf13207ed924c712de9a66a5814d5b64765" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" dependencies = [ "android_system_properties", "core-foundation-sys", "iana-time-zone-haiku", "js-sys", "wasm-bindgen", - "winapi", + "windows 0.48.0", ] [[package]] @@ -3838,6 +4229,12 @@ dependencies = [ "cxx-build", ] +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + [[package]] name = "idna" version = "0.2.3" @@ -3871,9 +4268,9 @@ dependencies = [ [[package]] name = "if-watch" -version = "2.0.0" +version = "3.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "065c008e570a43c00de6aed9714035e5ea6a498c255323db9091722af6ee67dd" +checksum = "a9465340214b296cd17a0009acdb890d6160010b8adf8f78a00d0d7ab270f79f" dependencies = [ "async-io", "core-foundation", @@ -3884,7 +4281,8 @@ dependencies = [ "log", "rtnetlink", "system-configuration", - "windows", + "tokio", + "windows 0.34.0", ] [[package]] @@ -3913,17 +4311,17 @@ checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "indexmap" -version = "1.9.2" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1885e79c1fc4b10f0e172c475f458b7f7b93061064d98c3293e98c5ba0c8b399" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" dependencies = [ "autocfg", - "hashbrown", + "hashbrown 0.12.3", "serde", ] @@ -3933,6 +4331,15 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e04e2fd2b8188ea827b32ef11de88377086d690286ab35747ef7f9bf3ccb590" +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "generic-array 0.14.7", +] + [[package]] name = "instant" version = "0.1.12" @@ -3958,19 +4365,33 @@ dependencies = [ ] [[package]] -name = "io-lifetimes" -version = "0.7.5" +name = "interceptor" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59ce5ef949d49ee85593fc4d3f3f95ad61657076395cbbce23e2121fc5542074" +checksum = "1e8a11ae2da61704edada656798b61c94b35ecac2c58eb955156987d5e6be90b" +dependencies = [ + "async-trait", + "bytes", + "log", + "rand 0.8.5", + "rtcp", + "rtp", + "thiserror", + "tokio", + "waitgroup", + "webrtc-srtp", + "webrtc-util", +] [[package]] name = "io-lifetimes" -version = "1.0.3" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46112a93252b123d31a119a8d1a1ac19deac4fac6e0e8b0df58f0d4e5870e63c" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" dependencies = [ + "hermit-abi 0.3.1", "libc", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] @@ -3993,20 +4414,20 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.7.0" +version = "2.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11b0d96e660696543b251e58030cf9787df56da39dab19ad60eae7353040917e" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" [[package]] name = "is-terminal" -version = "0.4.2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dfb6c8100ccc63462345b67d1bbc3679177c75ee4bf59bf29c8b1d110b8189" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" dependencies = [ - "hermit-abi 0.2.6", - "io-lifetimes 1.0.3", - "rustix 0.36.6", - "windows-sys 0.42.0", + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix 0.37.19", + "windows-sys 0.48.0", ] [[package]] @@ -4029,24 +4450,24 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fad582f4b9e86b6caa621cabeb0963332d92eea04729ab12892c2533951e6440" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" [[package]] name = "jobserver" -version = "0.1.25" +version = "0.1.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "068b1ee6743e4d11fb9c6a1e6064b3693a1b600e7f5f5988047d98b3dc9fb90b" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" dependencies = [ "libc", ] [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.61" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" dependencies = [ "wasm-bindgen", ] @@ -4124,7 +4545,7 @@ dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -4189,17 +4610,17 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.3" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +checksum = "8f6d5ed8676d904364de097082f4e7d240b571b67989ced0240f08b7f966f940" dependencies = [ "cpufeatures", ] [[package]] name = "kusama-runtime" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "frame-benchmarking", @@ -4211,7 +4632,7 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal", - "kusama-runtime-constants 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "kusama-runtime-constants 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "log", "pallet-authority-discovery", "pallet-authorship", @@ -4249,6 +4670,7 @@ dependencies = [ "pallet-session-benchmarking", "pallet-society", "pallet-staking", + "pallet-staking-runtime-api", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -4258,7 +4680,7 @@ dependencies = [ "pallet-vesting", "pallet-whitelist", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", @@ -4271,9 +4693,9 @@ dependencies = [ "sp-api", "sp-arithmetic", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -4295,8 +4717,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-support", "polkadot-primitives", @@ -4309,8 +4731,8 @@ dependencies = [ [[package]] name = "kusama-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "frame-support", "polkadot-primitives", @@ -4321,15 +4743,6 @@ dependencies = [ "sp-weights", ] -[[package]] -name = "kv-log-macro" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0de8b303297635ad57c9f5059fd9cee7a47f8e8daa09df0fcd07dd39fb22977f" -dependencies = [ - "log", -] - [[package]] name = "kvdb" version = "0.13.0" @@ -4377,9 +4790,9 @@ checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" [[package]] name = "libc" -version = "0.2.139" +version = "0.2.144" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "201de327520df007757c1f0adce6e827fe8562fbc28bfd9c15571c66ca1f5f79" +checksum = "2b00cc1c228a6782d0f076e7b232802e0c5689d41bb5df366f2a6b6621cfdfe1" [[package]] name = "libloading" @@ -4405,17 +4818,16 @@ checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" [[package]] name = "libp2p" -version = "0.49.0" +version = "0.50.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec878fda12ebec479186b3914ebc48ff180fa4c51847e11a1a68bf65249e02c1" +checksum = "9c7b0104790be871edcf97db9bd2356604984e623a08d825c3f27852290266b8" dependencies = [ "bytes", "futures", "futures-timer", - "getrandom 0.2.8", + "getrandom 0.2.9", "instant", - "lazy_static", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-dns", "libp2p-identify", "libp2p-kad", @@ -4424,14 +4836,15 @@ dependencies = [ "libp2p-mplex", "libp2p-noise", "libp2p-ping", + "libp2p-quic", "libp2p-request-response", "libp2p-swarm", - "libp2p-swarm-derive", "libp2p-tcp", "libp2p-wasm-ext", + "libp2p-webrtc", "libp2p-websocket", "libp2p-yamux", - "multiaddr", + "multiaddr 0.16.0", "parking_lot 0.12.1", "pin-project", "smallvec", @@ -4439,9 +4852,9 @@ dependencies = [ [[package]] name = "libp2p-core" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "799676bb0807c788065e57551c6527d461ad572162b0519d1958946ff9e0539d" +checksum = "b6a8fcd392ff67af6cc3f03b1426c41f7f26b6b9aff2dc632c1c56dd649e571f" dependencies = [ "asn1_der", "bs58", @@ -4451,17 +4864,18 @@ dependencies = [ "futures", "futures-timer", "instant", - "lazy_static", "log", - "multiaddr", - "multihash", + "multiaddr 0.16.0", + "multihash 0.16.3", "multistream-select", + "once_cell", "parking_lot 0.12.1", "pin-project", "prost", "prost-build", "rand 0.8.5", "rw-stream-sink", + "sec1", "sha2 0.10.6", "smallvec", "thiserror", @@ -4470,14 +4884,42 @@ dependencies = [ "zeroize", ] +[[package]] +name = "libp2p-core" +version = "0.39.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c1df63c0b582aa434fb09b2d86897fa2b419ffeccf934b36f87fcedc8e835c2" +dependencies = [ + "either", + "fnv", + "futures", + "futures-timer", + "instant", + "libp2p-identity", + "log", + "multiaddr 0.17.1", + "multihash 0.17.0", + "multistream-select", + "once_cell", + "parking_lot 0.12.1", + "pin-project", + "quick-protobuf", + "rand 0.8.5", + "rw-stream-sink", + "smallvec", + "thiserror", + "unsigned-varint", + "void", +] + [[package]] name = "libp2p-dns" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2322c9fb40d99101def6a01612ee30500c89abbbecb6297b3cd252903a4c1720" +checksum = "8e42a271c1b49f789b92f7fc87749fa79ce5c7bdc88cbdfacb818a4bca47fec5" dependencies = [ "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "smallvec", @@ -4486,17 +4928,17 @@ dependencies = [ [[package]] name = "libp2p-identify" -version = "0.40.0" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf9a121f699e8719bda2e6e9e9b6ddafc6cff4602471d6481c1067930ccb29b" +checksum = "c052d0026f4817b44869bfb6810f4e1112f43aec8553f2cb38881c524b563abf" dependencies = [ "asynchronous-codec", "futures", "futures-timer", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", - "lru", + "lru 0.8.1", "prost", "prost-build", "prost-codec", @@ -4505,11 +4947,29 @@ dependencies = [ "void", ] +[[package]] +name = "libp2p-identity" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e2d584751cecb2aabaa56106be6be91338a60a0f4e420cf2af639204f596fc1" +dependencies = [ + "bs58", + "ed25519-dalek", + "log", + "multiaddr 0.17.1", + "multihash 0.17.0", + "quick-protobuf", + "rand 0.8.5", + "sha2 0.10.6", + "thiserror", + "zeroize", +] + [[package]] name = "libp2p-kad" -version = "0.41.0" +version = "0.42.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6721c200e2021f6c3fab8b6cf0272ead8912d871610ee194ebd628cecf428f22" +checksum = "2766dcd2be8c87d5e1f35487deb22d765f49c6ae1251b3633efe3b25698bd3d2" dependencies = [ "arrayvec 0.7.2", "asynchronous-codec", @@ -4519,7 +4979,7 @@ dependencies = [ "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "prost", @@ -4535,31 +4995,31 @@ dependencies = [ [[package]] name = "libp2p-mdns" -version = "0.41.0" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "761704e727f7d68d58d7bc2231eafae5fc1b9814de24290f126df09d4bd37a15" +checksum = "04f378264aade9872d6ccd315c0accc18be3a35d15fc1b9c36e5b6f983b62b5b" dependencies = [ "data-encoding", - "dns-parser", "futures", "if-watch", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "rand 0.8.5", "smallvec", "socket2", "tokio", + "trust-dns-proto", "void", ] [[package]] name = "libp2p-metrics" -version = "0.10.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ee31b08e78b7b8bfd1c4204a9dd8a87b4fcdf6dafc57eb51701c1c264a81cb9" +checksum = "5ad8a64f29da86005c86a4d2728b8a0719e9b192f4092b609fd8790acb9dec55" dependencies = [ - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-identify", "libp2p-kad", "libp2p-ping", @@ -4569,14 +5029,14 @@ dependencies = [ [[package]] name = "libp2p-mplex" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692664acfd98652de739a8acbb0a0d670f1d67190a49be6b4395e22c37337d89" +checksum = "03805b44107aa013e7cbbfa5627b31c36cbedfdfb00603c0311998882bc4bace" dependencies = [ "asynchronous-codec", "bytes", "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "nohash-hasher", "parking_lot 0.12.1", @@ -4587,53 +5047,75 @@ dependencies = [ [[package]] name = "libp2p-noise" -version = "0.40.0" +version = "0.41.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "048155686bd81fe6cb5efdef0c6290f25ad32a0a42e8f4f72625cf6a505a206f" +checksum = "a978cb57efe82e892ec6f348a536bfbd9fee677adbe5689d7a93ad3a9bffbf2e" dependencies = [ "bytes", "curve25519-dalek 3.2.0", "futures", - "lazy_static", - "libp2p-core", + "libp2p-core 0.38.0", "log", + "once_cell", "prost", "prost-build", "rand 0.8.5", "sha2 0.10.6", "snow", "static_assertions", - "x25519-dalek", + "thiserror", + "x25519-dalek 1.1.1", "zeroize", ] [[package]] name = "libp2p-ping" -version = "0.40.1" +version = "0.41.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "929fcace45a112536e22b3dcfd4db538723ef9c3cb79f672b98be2cc8e25f37f" +dependencies = [ + "futures", + "futures-timer", + "instant", + "libp2p-core 0.38.0", + "libp2p-swarm", + "log", + "rand 0.8.5", + "void", +] + +[[package]] +name = "libp2p-quic" +version = "0.7.0-alpha" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7228b9318d34689521349a86eb39a3c3a802c9efc99a0568062ffb80913e3f91" +checksum = "01e7c867e95c8130667b24409d236d37598270e6da69b3baf54213ba31ffca59" dependencies = [ + "bytes", "futures", "futures-timer", - "instant", - "libp2p-core", - "libp2p-swarm", + "if-watch", + "libp2p-core 0.38.0", + "libp2p-tls", "log", + "parking_lot 0.12.1", + "quinn-proto", "rand 0.8.5", - "void", + "rustls 0.20.8", + "thiserror", + "tokio", ] [[package]] name = "libp2p-request-response" -version = "0.22.1" +version = "0.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8827af16a017b65311a410bb626205a9ad92ec0473967618425039fa5231adc1" +checksum = "3236168796727bfcf4927f766393415361e2c644b08bedb6a6b13d957c9a4884" dependencies = [ "async-trait", "bytes", "futures", "instant", - "libp2p-core", + "libp2p-core 0.38.0", "libp2p-swarm", "log", "rand 0.8.5", @@ -4643,75 +5125,127 @@ dependencies = [ [[package]] name = "libp2p-swarm" -version = "0.40.1" +version = "0.41.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46d13df7c37807965d82930c0e4b04a659efcb6cca237373b206043db5398ecf" +checksum = "b2a35472fe3276b3855c00f1c032ea8413615e030256429ad5349cdf67c6e1a0" dependencies = [ "either", "fnv", "futures", "futures-timer", "instant", - "libp2p-core", + "libp2p-core 0.38.0", + "libp2p-swarm-derive", "log", "pin-project", "rand 0.8.5", "smallvec", "thiserror", + "tokio", "void", ] [[package]] name = "libp2p-swarm-derive" -version = "0.30.1" +version = "0.31.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0eddc4497a8b5a506013c40e8189864f9c3a00db2b25671f428ae9007f3ba32" +checksum = "9d527d5827582abd44a6d80c07ff8b50b4ee238a8979e05998474179e79dc400" dependencies = [ "heck", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "libp2p-tcp" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9839d96761491c6d3e238e70554b856956fca0ab60feb9de2cd08eed4473fa92" +checksum = "b4b257baf6df8f2df39678b86c578961d48cc8b68642a12f0f763f56c8e5858d" dependencies = [ "futures", "futures-timer", "if-watch", "libc", - "libp2p-core", + "libp2p-core 0.38.0", "log", "socket2", "tokio", ] +[[package]] +name = "libp2p-tls" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff08d13d0dc66e5e9ba6279c1de417b84fa0d0adc3b03e5732928c180ec02781" +dependencies = [ + "futures", + "futures-rustls", + "libp2p-core 0.39.2", + "libp2p-identity", + "rcgen 0.10.0", + "ring", + "rustls 0.20.8", + "thiserror", + "webpki 0.22.0", + "x509-parser 0.14.0", + "yasna", +] + [[package]] name = "libp2p-wasm-ext" -version = "0.37.0" +version = "0.38.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a17b5b8e7a73e379e47b1b77f8a82c4721e97eca01abcd18e9cd91a23ca6ce97" +checksum = "1bb1a35299860e0d4b3c02a3e74e3b293ad35ae0cee8a056363b0c862d082069" dependencies = [ "futures", "js-sys", - "libp2p-core", + "libp2p-core 0.38.0", "parity-send-wrapper", "wasm-bindgen", "wasm-bindgen-futures", ] +[[package]] +name = "libp2p-webrtc" +version = "0.4.0-alpha" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cdb6cd86dd68cba72308ea05de1cebf3ba0ae6e187c40548167955d4e3970f6a" +dependencies = [ + "async-trait", + "asynchronous-codec", + "bytes", + "futures", + "futures-timer", + "hex", + "if-watch", + "libp2p-core 0.38.0", + "libp2p-noise", + "log", + "multihash 0.16.3", + "prost", + "prost-build", + "prost-codec", + "rand 0.8.5", + "rcgen 0.9.3", + "serde", + "stun", + "thiserror", + "tinytemplate", + "tokio", + "tokio-util", + "webrtc", +] + [[package]] name = "libp2p-websocket" -version = "0.39.0" +version = "0.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3758ae6f89b2531a24b6d9f5776bda6a626b60a57600d7185d43dfa75ca5ecc4" +checksum = "1d705506030d5c0aaf2882437c70dab437605f21c5f9811978f694e6917a3b54" dependencies = [ "either", "futures", "futures-rustls", - "libp2p-core", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "quicksink", @@ -4723,12 +5257,12 @@ dependencies = [ [[package]] name = "libp2p-yamux" -version = "0.41.1" +version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d6874d66543c4f7e26e3b8ca9a6bead351563a13ab4fafd43c7927f7c0d6c12" +checksum = "4f63594a0aa818642d9d4915c791945053877253f08a3626f13416b5cd928a29" dependencies = [ "futures", - "libp2p-core", + "libp2p-core 0.38.0", "log", "parking_lot 0.12.1", "thiserror", @@ -4737,9 +5271,9 @@ dependencies = [ [[package]] name = "librocksdb-sys" -version = "0.8.0+7.4.4" +version = "0.8.3+7.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "611804e4666a25136fcc5f8cf425ab4d26c7f74ea245ffe92ea23b85b6420b5d" +checksum = "557b255ff04123fcc176162f56ed0c9cd42d8f357cf55b3fabeb60f7413741b3" dependencies = [ "bindgen", "bzip2-sys", @@ -4757,7 +5291,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95b09eff1b35ed3b33b877ced3a691fc7a481919c7e29c53c906226fcf55e2a1" dependencies = [ "arrayref", - "base64", + "base64 0.13.1", "digest 0.9.0", "hmac-drbg", "libsecp256k1-core", @@ -4800,9 +5334,9 @@ dependencies = [ [[package]] name = "libz-sys" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9702761c3935f8cc2f101793272e202c72b99da8f4224a19ddcf1279a6450bbf" +checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" dependencies = [ "cc", "pkg-config", @@ -4835,25 +5369,24 @@ dependencies = [ [[package]] name = "linregress" -version = "0.4.4" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6c601a85f5ecd1aba625247bca0031585fb1c446461b142878a16f8245ddeb8" +checksum = "475015a7f8f017edb28d2e69813be23500ad4b32cfe3421c4148efc97324ee52" dependencies = [ "nalgebra", - "statrs", ] [[package]] name = "linux-raw-sys" -version = "0.0.46" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d2456c373231a208ad294c33dc5bff30051eafd954cd4caae83a712b12854d" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" [[package]] name = "linux-raw-sys" -version = "0.1.4" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" +checksum = "ece97ea872ece730aed82664c424eb4c8291e1ff2480247ccf7409044bc6479f" [[package]] name = "lock_api" @@ -4872,7 +5405,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" dependencies = [ "cfg-if", - "value-bag", ] [[package]] @@ -4881,7 +5413,16 @@ version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b6e8aaa3f231bb4bd57b84b2d5dc3ae7f350265df8aa96492e0bc394a1571909" dependencies = [ - "hashbrown", + "hashbrown 0.12.3", +] + +[[package]] +name = "lru" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "71e7d46de488603ffdd5f30afbc64fbba2378214a2c3a2fb83abf3d33126df17" +dependencies = [ + "hashbrown 0.13.2", ] [[package]] @@ -4922,15 +5463,29 @@ dependencies = [ "libc", ] +[[package]] +name = "mangata-support" +version = "0.1.0" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "frame-support", + "mangata-types", + "parity-scale-codec", + "sp-core", + "sp-runtime", + "sp-std", +] + [[package]] name = "mangata-types" version = "0.1.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", "sp-core", "sp-runtime", + "sp-std", ] [[package]] @@ -4950,19 +5505,29 @@ dependencies = [ [[package]] name = "matches" -version = "0.1.9" +version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3e378b66a060d48947b590737b30a1be76706c8dd7b8ba0f2fe3989c68a853f" +checksum = "2532096657941c2fea9c289d370a250971c689d4f143798ff67113ec042024a5" [[package]] name = "matrixmultiply" -version = "0.3.2" +version = "0.3.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "add85d4dd35074e6fedc608f8c8f513a3548619a9024b751949ef0e8e45a4d84" +checksum = "090126dc04f95dc0d1c1c91f61bdd474b3930ca064c1edc8a849da2c6cbe1e77" dependencies = [ + "autocfg", "rawpointer", ] +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.6", +] + [[package]] name = "memchr" version = "2.5.0" @@ -4971,18 +5536,18 @@ checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" [[package]] name = "memfd" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b20a59d985586e4a5aef64564ac77299f8586d8be6cf9106a5a40207e8908efb" +checksum = "ffc89ccdc6e10d6907450f753537ebc5c5d3460d2e4e62ea74bd571db62c0f9e" dependencies = [ - "rustix 0.36.6", + "rustix 0.37.19", ] [[package]] name = "memmap2" -version = "0.5.8" +version = "0.5.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b182332558b18d807c4ce1ca8ca983b34c3ee32765e47b3f0f69b90355cc1dc" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" dependencies = [ "libc", ] @@ -5005,14 +5570,22 @@ dependencies = [ "autocfg", ] +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + [[package]] name = "memory-db" -version = "0.31.0" +version = "0.32.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e0c7cba9ce19ac7ffd2053ac9f49843bbd3f4318feedfd74e85c19d5fb0ba66" +checksum = "808b50db46293432a45e63bc15ea51e0ab4c0a1647b8eb114e31a3e698dd6fbe" dependencies = [ - "hash-db", - "hashbrown", + "hash-db 0.16.0", ] [[package]] @@ -5059,22 +5632,31 @@ dependencies = [ "adler", ] +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + [[package]] name = "mio" -version = "0.8.5" +version = "0.8.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d732bc30207a6423068df043e3d02e0735b155ad7ce1a6f76fe2baa5b158de" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" dependencies = [ "libc", "log", "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "mmr-gadget" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "log", @@ -5082,9 +5664,9 @@ dependencies = [ "sc-client-api", "sc-offchain", "sp-api", - "sp-beefy", "sp-blockchain", "sp-consensus", + "sp-consensus-beefy", "sp-core", "sp-io", "sp-mmr-primitives", @@ -5094,7 +5676,7 @@ dependencies = [ [[package]] name = "mmr-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "anyhow", "jsonrpsee", @@ -5109,42 +5691,61 @@ dependencies = [ [[package]] name = "mockall" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50e4a1c770583dac7ab5e2f6c139153b783a53a1bbee9729613f193e59828326" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" dependencies = [ "cfg-if", "downcast", "fragile", "lazy_static", "mockall_derive", - "predicates", + "predicates 2.1.5", "predicates-tree", ] [[package]] name = "mockall_derive" -version = "0.11.3" +version = "0.11.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "832663583d5fa284ca8810bf7015e46c9fff9622d3cf34bd1eea5003fec06dd0" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" dependencies = [ "cfg-if", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "multiaddr" -version = "0.14.0" +version = "0.16.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c580bfdd8803cce319b047d239559a22f809094aaea4ac13902a1fdcfcd4261" +checksum = "a4aebdb21e90f81d13ed01dc84123320838e53963c2ca94b60b305d3fa64f31e" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "multibase", + "multihash 0.16.3", + "percent-encoding", + "serde", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" dependencies = [ "arrayref", - "bs58", "byteorder", "data-encoding", - "multihash", + "log", + "multibase", + "multihash 0.17.0", "percent-encoding", "serde", "static_assertions", @@ -5180,6 +5781,17 @@ dependencies = [ "unsigned-varint", ] +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + [[package]] name = "multihash-derive" version = "0.8.0" @@ -5190,7 +5802,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "synstructure", ] @@ -5216,9 +5828,9 @@ dependencies = [ [[package]] name = "nalgebra" -version = "0.27.1" +version = "0.32.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "462fffe4002f4f2e1f6a9dcf12cc1a6fc0e15989014efc02a941d3e0f5dc2120" +checksum = "d68d47bba83f9e2006d117a9a33af1524e655516b8919caac694427a6fb1e511" dependencies = [ "approx", "matrixmultiply", @@ -5226,21 +5838,19 @@ dependencies = [ "num-complex", "num-rational", "num-traits", - "rand 0.8.5", - "rand_distr", "simba", "typenum", ] [[package]] name = "nalgebra-macros" -version = "0.1.0" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "01fcc0b8149b4632adc89ac3b7b31a12fb6099a0317a4eb2ebff574ef7de7218" +checksum = "d232c68884c0c99810a5a4d333ef7e47689cfd0edc85efc9e54e1e6bf5212766" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5286,9 +5896,9 @@ dependencies = [ [[package]] name = "netlink-packet-utils" -version = "0.5.1" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25af9cf0dc55498b7bd94a1508af7a78706aa0ab715a73c5169273e03c84845e" +checksum = "0ede8a08c71ad5a95cdd0e4e52facd37190977039a4704eb82a283f713747d34" dependencies = [ "anyhow", "byteorder", @@ -5313,15 +5923,15 @@ dependencies = [ [[package]] name = "netlink-sys" -version = "0.8.3" +version = "0.8.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92b654097027250401127914afb37cb1f311df6610a9891ff07a757e94199027" +checksum = "6471bf08e7ac0135876a9581bf3217ef0333c191c128d34878079f42ee150411" dependencies = [ - "async-io", "bytes", "futures", "libc", "log", + "tokio", ] [[package]] @@ -5333,20 +5943,21 @@ dependencies = [ "bitflags", "cfg-if", "libc", + "memoffset 0.6.5", ] [[package]] name = "nix" -version = "0.25.1" +version = "0.26.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f346ff70e7dbfd675fe90590b92d59ef2de15a8779ae305ebcbfd3f0caf59be4" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" dependencies = [ - "autocfg", "bitflags", "cfg-if", "libc", - "memoffset 0.6.5", + "memoffset 0.7.1", "pin-utils", + "static_assertions", ] [[package]] @@ -5357,9 +5968,9 @@ checksum = "2bf50223579dc7cdcfb3bfcacf7069ff68243f8c363f62ffa99cf000a6b9c451" [[package]] name = "nom" -version = "7.1.2" +version = "7.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5507769c4919c998e69e49c839d9dc6e693ede4cc4290d6ad8b41d4f09c548c" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" dependencies = [ "memchr", "minimal-lexical", @@ -5384,9 +5995,9 @@ dependencies = [ [[package]] name = "num-complex" -version = "0.4.2" +version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ae39348c8bc5fbd7f40c727a9925f03517afd2ab27d46702108b6a7e5414c19" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" dependencies = [ "num-traits", ] @@ -5430,7 +6041,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" dependencies = [ "autocfg", - "libm 0.2.6", ] [[package]] @@ -5450,25 +6060,43 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "21158b2c33aa6d4561f1c0a6ea283ca92bc54802a93b263e910746d679a7eb53" dependencies = [ "crc32fast", - "hashbrown", + "hashbrown 0.12.3", "indexmap", "memchr", ] [[package]] name = "object" -version = "0.30.1" +version = "0.30.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d864c91689fdc196779b98dba0aceac6118594c2df6ee5d943eb6a8df4d107a" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" dependencies = [ "memchr", ] +[[package]] +name = "oid-registry" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38e20717fa0541f39bd146692035c37bedfa532b3e5071b35761082407546b2a" +dependencies = [ + "asn1-rs 0.3.1", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs 0.5.2", +] + [[package]] name = "once_cell" -version = "1.17.0" +version = "1.17.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f61fba1741ea2b3d6a1e3178721804bb716a68a6aeba1149b5d52e3d464ea66" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" [[package]] name = "oorandom" @@ -5496,9 +6124,9 @@ checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" [[package]] name = "orchestra" -version = "0.0.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0aab54694ddaa8a9b703724c6ef04272b2d27bc32d2c855aae5cdd1857216b43" +checksum = "2b0766f60d83cac01c6e3f3bc36aaa9056e48bea0deddb98a8c74de6021f3061" dependencies = [ "async-trait", "dyn-clonable", @@ -5513,17 +6141,18 @@ dependencies = [ [[package]] name = "orchestra-proc-macro" -version = "0.0.2" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a702b2f6bf592b3eb06c00d80d05afaf7a8eff6b41bb361e397d799acc21b45a" +checksum = "3c8e83dbd049009426b445424a1104c78e6172a4c13e3614e52a38262785a5d7" dependencies = [ - "expander 0.0.6", + "expander 1.0.0", + "indexmap", "itertools 0.10.5", "petgraph", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -5537,9 +6166,31 @@ dependencies = [ [[package]] name = "os_str_bytes" -version = "6.4.1" +version = "6.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" + +[[package]] +name = "p256" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51f44edd08f51e2ade572f141051021c5af22677e42b7dd28a88155151c33594" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", +] + +[[package]] +name = "p384" +version = "0.11.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b7820b9daea5457c9f21c69448905d723fbd21136ccf521748f23fd49e723ee" +checksum = "dfc8c5bf642dde52bb9e87c0ecd8ca5a76faac2eeed98dedb7c717997e1080aa" +dependencies = [ + "ecdsa", + "elliptic-curve", + "sha2 0.10.6", +] [[package]] name = "packed_simd_2" @@ -5554,7 +6205,7 @@ dependencies = [ [[package]] name = "pallet-alliance" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "array-bytes 4.2.0", "frame-benchmarking", @@ -5565,8 +6216,8 @@ dependencies = [ "pallet-identity", "parity-scale-codec", "scale-info", - "sha2 0.10.6", "sp-core", + "sp-core-hashing", "sp-io", "sp-runtime", "sp-std", @@ -5575,7 +6226,7 @@ dependencies = [ [[package]] name = "pallet-asset-tx-payment" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5593,7 +6244,7 @@ dependencies = [ [[package]] name = "pallet-assets" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "frame-benchmarking", "frame-support", @@ -5608,7 +6259,7 @@ dependencies = [ [[package]] name = "pallet-aura" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -5624,7 +6275,7 @@ dependencies = [ [[package]] name = "pallet-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -5640,14 +6291,13 @@ dependencies = [ [[package]] name = "pallet-authorship" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", "impl-trait-for-tuples", "parity-scale-codec", "scale-info", - "sp-authorship", "sp-runtime", "sp-std", ] @@ -5655,7 +6305,7 @@ dependencies = [ [[package]] name = "pallet-babe" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5679,7 +6329,7 @@ dependencies = [ [[package]] name = "pallet-bags-list" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5699,7 +6349,7 @@ dependencies = [ [[package]] name = "pallet-balances" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5714,26 +6364,29 @@ dependencies = [ [[package]] name = "pallet-beefy" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", + "pallet-authorship", "pallet-session", "parity-scale-codec", "scale-info", "serde", - "sp-beefy", + "sp-consensus-beefy", "sp-runtime", + "sp-session", + "sp-staking", "sp-std", ] [[package]] name = "pallet-beefy-mmr" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", - "beefy-merkle-tree", + "binary-merkle-tree 4.0.0-dev (git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40)", "frame-support", "frame-system", "log", @@ -5743,7 +6396,8 @@ dependencies = [ "parity-scale-codec", "scale-info", "serde", - "sp-beefy", + "sp-api", + "sp-consensus-beefy", "sp-core", "sp-io", "sp-runtime", @@ -5753,7 +6407,7 @@ dependencies = [ [[package]] name = "pallet-bounties" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5771,7 +6425,7 @@ dependencies = [ [[package]] name = "pallet-child-bounties" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5815,7 +6469,7 @@ dependencies = [ [[package]] name = "pallet-collective" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5832,9 +6486,10 @@ dependencies = [ [[package]] name = "pallet-contracts" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "bitflags", + "environmental", "frame-benchmarking", "frame-support", "frame-system", @@ -5844,7 +6499,7 @@ dependencies = [ "pallet-contracts-proc-macro", "parity-scale-codec", "rand 0.8.5", - "rand_pcg 0.3.1", + "rand_pcg", "scale-info", "serde", "smallvec", @@ -5861,10 +6516,11 @@ dependencies = [ [[package]] name = "pallet-contracts-primitives" version = "7.0.0" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "bitflags", "parity-scale-codec", + "scale-info", "sp-runtime", "sp-std", "sp-weights", @@ -5873,17 +6529,17 @@ dependencies = [ [[package]] name = "pallet-contracts-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "pallet-conviction-voting" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "assert_matches", "frame-benchmarking", @@ -5900,7 +6556,7 @@ dependencies = [ [[package]] name = "pallet-democracy" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5918,7 +6574,7 @@ dependencies = [ [[package]] name = "pallet-election-provider-multi-phase" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5927,7 +6583,7 @@ dependencies = [ "log", "pallet-election-provider-support-benchmarking", "parity-scale-codec", - "rand 0.7.3", + "rand 0.8.5", "scale-info", "sp-arithmetic", "sp-core", @@ -5935,14 +6591,13 @@ dependencies = [ "sp-npos-elections", "sp-runtime", "sp-std", - "static_assertions", "strum", ] [[package]] name = "pallet-election-provider-support-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5955,7 +6610,7 @@ dependencies = [ [[package]] name = "pallet-elections-phragmen" version = "5.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -5973,7 +6628,7 @@ dependencies = [ [[package]] name = "pallet-fast-unstake" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -5991,7 +6646,7 @@ dependencies = [ [[package]] name = "pallet-grandpa" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6001,56 +6656,104 @@ dependencies = [ "pallet-session", "parity-scale-codec", "scale-info", - "sp-application-crypto", + "sp-application-crypto", + "sp-consensus-grandpa", + "sp-core", + "sp-io", + "sp-runtime", + "sp-session", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-identity" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "enumflags2", + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", + "sp-io", + "sp-runtime", + "sp-std", +] + +[[package]] +name = "pallet-im-online" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "log", + "pallet-authorship", + "parity-scale-codec", + "scale-info", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-runtime", + "sp-staking", + "sp-std", +] + +[[package]] +name = "pallet-indices" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "frame-benchmarking", + "frame-support", + "frame-system", + "parity-scale-codec", + "scale-info", "sp-core", - "sp-finality-grandpa", "sp-io", + "sp-keyring", "sp-runtime", - "sp-session", - "sp-staking", "sp-std", ] [[package]] -name = "pallet-identity" +name = "pallet-insecure-randomness-collective-flip" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ - "enumflags2", - "frame-benchmarking", "frame-support", "frame-system", "parity-scale-codec", + "safe-mix", "scale-info", - "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-im-online" +name = "pallet-membership" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "log", - "pallet-authorship", "parity-scale-codec", "scale-info", - "sp-application-crypto", "sp-core", "sp-io", "sp-runtime", - "sp-staking", "sp-std", ] [[package]] -name = "pallet-indices" +name = "pallet-mmr" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6059,15 +6762,15 @@ dependencies = [ "scale-info", "sp-core", "sp-io", - "sp-keyring", + "sp-mmr-primitives", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-membership" +name = "pallet-multisig" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6075,49 +6778,44 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", - "sp-core", "sp-io", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-mmr" +name = "pallet-nfts" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ + "enumflags2", "frame-benchmarking", "frame-support", "frame-system", + "log", "parity-scale-codec", "scale-info", "sp-core", "sp-io", - "sp-mmr-primitives", "sp-runtime", "sp-std", ] [[package]] -name = "pallet-multisig" +name = "pallet-nfts-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ - "frame-benchmarking", "frame-support", - "frame-system", - "log", + "pallet-nfts", "parity-scale-codec", - "scale-info", - "sp-io", - "sp-runtime", - "sp-std", + "sp-api", ] [[package]] name = "pallet-nis" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6133,7 +6831,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools" version = "1.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -6150,7 +6848,7 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-benchmarking" version = "1.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6170,8 +6868,9 @@ dependencies = [ [[package]] name = "pallet-nomination-pools-runtime-api" version = "1.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "pallet-nomination-pools", "parity-scale-codec", "sp-api", "sp-std", @@ -6180,7 +6879,7 @@ dependencies = [ [[package]] name = "pallet-offences" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -6197,12 +6896,13 @@ dependencies = [ [[package]] name = "pallet-offences-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", "frame-support", "frame-system", + "log", "pallet-babe", "pallet-balances", "pallet-grandpa", @@ -6220,7 +6920,7 @@ dependencies = [ [[package]] name = "pallet-preimage" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6237,7 +6937,7 @@ dependencies = [ [[package]] name = "pallet-proxy" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6249,24 +6949,10 @@ dependencies = [ "sp-std", ] -[[package]] -name = "pallet-randomness-collective-flip" -version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" -dependencies = [ - "frame-support", - "frame-system", - "parity-scale-codec", - "safe-mix", - "scale-info", - "sp-runtime", - "sp-std", -] - [[package]] name = "pallet-ranked-collective" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6284,7 +6970,7 @@ dependencies = [ [[package]] name = "pallet-recovery" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6299,7 +6985,7 @@ dependencies = [ [[package]] name = "pallet-referenda" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "assert_matches", "frame-benchmarking", @@ -6318,7 +7004,7 @@ dependencies = [ [[package]] name = "pallet-scheduler" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6335,7 +7021,7 @@ dependencies = [ [[package]] name = "pallet-session" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -6356,14 +7042,14 @@ dependencies = [ [[package]] name = "pallet-session-benchmarking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", "frame-system", "pallet-session", "pallet-staking", - "rand 0.7.3", + "rand 0.8.5", "sp-runtime", "sp-session", "sp-std", @@ -6372,7 +7058,7 @@ dependencies = [ [[package]] name = "pallet-society" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -6386,7 +7072,7 @@ dependencies = [ [[package]] name = "pallet-staking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-election-provider-support", @@ -6409,27 +7095,36 @@ dependencies = [ [[package]] name = "pallet-staking-reward-curve" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "pallet-staking-reward-fn" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "log", "sp-arithmetic", ] +[[package]] +name = "pallet-staking-runtime-api" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +dependencies = [ + "parity-scale-codec", + "sp-api", +] + [[package]] name = "pallet-state-trie-migration" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6446,7 +7141,7 @@ dependencies = [ [[package]] name = "pallet-sudo" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -6475,7 +7170,7 @@ dependencies = [ [[package]] name = "pallet-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6493,7 +7188,7 @@ dependencies = [ [[package]] name = "pallet-tips" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6512,7 +7207,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-support", "frame-system", @@ -6528,7 +7223,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "jsonrpsee", "pallet-transaction-payment-rpc-runtime-api", @@ -6544,7 +7239,7 @@ dependencies = [ [[package]] name = "pallet-transaction-payment-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "pallet-transaction-payment", "parity-scale-codec", @@ -6556,7 +7251,7 @@ dependencies = [ [[package]] name = "pallet-treasury" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6573,7 +7268,7 @@ dependencies = [ [[package]] name = "pallet-uniques" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "frame-benchmarking", "frame-support", @@ -6588,7 +7283,7 @@ dependencies = [ [[package]] name = "pallet-utility" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6604,7 +7299,7 @@ dependencies = [ [[package]] name = "pallet-vesting" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6619,7 +7314,7 @@ dependencies = [ [[package]] name = "pallet-whitelist" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-benchmarking", "frame-support", @@ -6633,9 +7328,11 @@ dependencies = [ [[package]] name = "pallet-xcm" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ + "bounded-collections", + "frame-benchmarking", "frame-support", "frame-system", "log", @@ -6643,6 +7340,7 @@ dependencies = [ "scale-info", "serde", "sp-core", + "sp-io", "sp-runtime", "sp-std", "xcm", @@ -6651,8 +7349,8 @@ dependencies = [ [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-benchmarking", "frame-support", @@ -6660,16 +7358,18 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", + "sp-io", "sp-runtime", "sp-std", "xcm", + "xcm-builder", "xcm-executor", ] [[package]] name = "pallet-xcm-benchmarks" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "frame-benchmarking", "frame-support", @@ -6677,9 +7377,11 @@ dependencies = [ "log", "parity-scale-codec", "scale-info", + "sp-io", "sp-runtime", "sp-std", "xcm", + "xcm-builder", "xcm-executor", ] @@ -6698,11 +7400,10 @@ dependencies = [ name = "parachain-template-node" version = "0.1.0" dependencies = [ - "clap 4.0.32", + "clap 4.2.7", "cumulus-client-cli", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", - "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -6716,7 +7417,6 @@ dependencies = [ "parity-scale-codec", "polkadot-cli", "polkadot-primitives", - "polkadot-service", "sc-basic-authorship", "sc-chain-spec", "sc-cli", @@ -6724,7 +7424,7 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-network", - "sc-network-common", + "sc-network-sync", "sc-rpc", "sc-service", "sc-sysinfo", @@ -6740,11 +7440,8 @@ dependencies = [ "sp-core", "sp-io", "sp-keystore", - "sp-offchain", "sp-runtime", - "sp-session", "sp-timestamp", - "sp-transaction-pool", "substrate-build-script-utils", "substrate-frame-rpc-system", "substrate-prometheus-endpoint", @@ -6774,7 +7471,7 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", - "mangata-types", + "mangata-support", "pallet-aura", "pallet-authorship", "pallet-balances", @@ -6831,14 +7528,15 @@ dependencies = [ "sp-std", "substrate-wasm-builder", "xcm", + "xcm-builder", "xcm-executor", ] [[package]] name = "parity-db" -version = "0.4.2" +version = "0.4.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a7511a0bec4a336b5929999d02b560d2439c993cccf98c26481484e811adc43" +checksum = "bd4572a52711e2ccff02b4973ec7e4a5b5c23387ebbfbd6cd42b34755714cefc" dependencies = [ "blake2", "crc32fast", @@ -6850,14 +7548,15 @@ dependencies = [ "memmap2", "parking_lot 0.12.1", "rand 0.8.5", + "siphasher", "snap", ] [[package]] name = "parity-scale-codec" -version = "3.2.1" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366e44391a8af4cfd6002ef6ba072bae071a96aafca98d7d448a34c5dca38b6a" +checksum = "5ddb756ca205bd108aee3c62c6d3c994e1df84a59b9d6d4a5ea42ee1fd5a9a28" dependencies = [ "arrayvec 0.7.2", "bitvec", @@ -6870,14 +7569,14 @@ dependencies = [ [[package]] name = "parity-scale-codec-derive" -version = "3.1.3" +version = "3.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9299338969a3d2f491d65f140b00ddec470858402f888af98e8642fb5e8965cd" +checksum = "86b26a931f824dd4eca30b3e43bb4f31cd5f0d3a403c5f5ff27106b805bfde7b" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -6907,7 +7606,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f557c32c6d268a07c921471619c0295f5efad3a0e76d4f97a05c091a51d110b2" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.109", "synstructure", ] @@ -6919,9 +7618,9 @@ checksum = "e1ad0aff30c1da14b1254fcb2af73e1fa9a28670e584a626f53a369d0e157304" [[package]] name = "parking" -version = "2.0.0" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" [[package]] name = "parking_lot" @@ -6941,7 +7640,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" dependencies = [ "lock_api", - "parking_lot_core 0.9.5", + "parking_lot_core 0.9.7", ] [[package]] @@ -6953,46 +7652,46 @@ dependencies = [ "cfg-if", "instant", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", "winapi", ] [[package]] name = "parking_lot_core" -version = "0.9.5" +version = "0.9.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ff9f3fef3968a3ec5945535ed654cb38ff72d7495a25619e2247fb15a2ed9ba" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" dependencies = [ "cfg-if", "libc", - "redox_syscall", + "redox_syscall 0.2.16", "smallvec", - "windows-sys 0.42.0", + "windows-sys 0.45.0", ] [[package]] name = "paste" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d01a5bd0424d00070b0098dd17ebca6f961a959dead1dbcbbbc1d1cd8d3deeba" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" [[package]] name = "pbkdf2" -version = "0.4.0" +version = "0.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "216eaa586a190f0a738f2f918511eecfa90f13295abec0e457cdebcceda80cbd" +checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" dependencies = [ - "crypto-mac 0.8.0", + "crypto-mac 0.11.1", ] [[package]] name = "pbkdf2" -version = "0.8.0" +version = "0.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d95f5254224e617595d2cc3cc73ff0a5eaf2637519e25f03388154e9378b6ffa" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" dependencies = [ - "crypto-mac 0.11.1", + "digest 0.10.6", ] [[package]] @@ -7001,6 +7700,24 @@ version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + [[package]] name = "penpal-runtime" version = "0.9.27" @@ -7023,7 +7740,7 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", - "mangata-types", + "mangata-support", "pallet-asset-tx-payment", "pallet-assets", "pallet-aura", @@ -7069,9 +7786,9 @@ checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" [[package]] name = "pest" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f6e86fb9e7026527a0d46bc308b841d73170ef8f443e1807f6ef88526a816d4" +checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" dependencies = [ "thiserror", "ucd-trie", @@ -7079,9 +7796,9 @@ dependencies = [ [[package]] name = "pest_derive" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96504449aa860c8dcde14f9fba5c58dc6658688ca1fe363589d6327b8662c603" +checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" dependencies = [ "pest", "pest_generator", @@ -7089,33 +7806,33 @@ dependencies = [ [[package]] name = "pest_generator" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "798e0220d1111ae63d66cb66a5dcb3fc2d986d520b98e49e1852bfdb11d7c5e7" +checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" dependencies = [ "pest", "pest_meta", "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] name = "pest_meta" -version = "2.5.2" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "984298b75898e30a843e278a9f2452c31e349a073a0ce6fd950a12a74464e065" +checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" dependencies = [ "once_cell", "pest", - "sha1", + "sha2 0.10.6", ] [[package]] name = "petgraph" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143" +checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" dependencies = [ "fixedbitset", "indexmap", @@ -7138,7 +7855,7 @@ checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -7171,9 +7888,9 @@ dependencies = [ [[package]] name = "pkg-config" -version = "0.3.26" +version = "0.3.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" +checksum = "26072860ba924cbfa98ea39c8c19b4dd6a4a25423dbdf219c1eca91aa0cf6964" [[package]] name = "platforms" @@ -7217,14 +7934,14 @@ dependencies = [ [[package]] name = "polkadot-approval-distribution" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-primitives", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-primitives", "rand 0.8.5", "tracing-gum", @@ -7232,8 +7949,8 @@ dependencies = [ [[package]] name = "polkadot-availability-bitfield-distribution" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", "polkadot-node-network-protocol", @@ -7246,13 +7963,13 @@ dependencies = [ [[package]] name = "polkadot-availability-distribution" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "derive_more", "fatality", "futures", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7269,12 +7986,12 @@ dependencies = [ [[package]] name = "polkadot-availability-recovery" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "fatality", "futures", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7290,10 +8007,10 @@ dependencies = [ [[package]] name = "polkadot-cli" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ - "clap 4.0.32", + "clap 4.2.7", "frame-benchmarking-cli", "futures", "log", @@ -7305,6 +8022,7 @@ dependencies = [ "sc-cli", "sc-executor", "sc-service", + "sc-storage-monitor 0.1.0 (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40)", "sc-sysinfo", "sc-tracing", "sp-core", @@ -7317,8 +8035,8 @@ dependencies = [ [[package]] name = "polkadot-client" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "frame-benchmarking", @@ -7340,13 +8058,13 @@ dependencies = [ "sc-service", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-keyring", "sp-mmr-primitives", @@ -7360,8 +8078,8 @@ dependencies = [ [[package]] name = "polkadot-collator-protocol" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "always-assert", "bitvec", @@ -7382,8 +8100,8 @@ dependencies = [ [[package]] name = "polkadot-core-primitives" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "parity-scale-codec", "scale-info", @@ -7394,15 +8112,15 @@ dependencies = [ [[package]] name = "polkadot-dispute-distribution" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "derive_more", "fatality", "futures", "futures-timer", "indexmap", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-erasure-coding", "polkadot-node-network-protocol", @@ -7419,8 +8137,8 @@ dependencies = [ [[package]] name = "polkadot-erasure-coding" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "parity-scale-codec", "polkadot-node-primitives", @@ -7433,8 +8151,8 @@ dependencies = [ [[package]] name = "polkadot-gossip-support" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", "futures-timer", @@ -7453,8 +8171,8 @@ dependencies = [ [[package]] name = "polkadot-network-bridge" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "always-assert", "async-trait", @@ -7463,13 +8181,12 @@ dependencies = [ "futures", "parity-scale-codec", "parking_lot 0.12.1", + "polkadot-node-metrics", "polkadot-node-network-protocol", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", "sc-network", - "sc-network-common", "sp-consensus", "thiserror", "tracing-gum", @@ -7477,8 +8194,8 @@ dependencies = [ [[package]] name = "polkadot-node-collation-generation" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", "parity-scale-codec", @@ -7495,15 +8212,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-approval-voting" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "derive_more", "futures", "futures-timer", "kvdb", - "lru", + "lru 0.9.0", "merlin", "parity-scale-codec", "polkadot-node-jaeger", @@ -7524,8 +8241,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-av-store" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "futures", @@ -7538,14 +8255,15 @@ dependencies = [ "polkadot-node-subsystem-util", "polkadot-overseer", "polkadot-primitives", + "sp-consensus", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-backing" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "fatality", @@ -7563,8 +8281,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-bitfield-signing" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", "polkadot-node-subsystem", @@ -7578,14 +8296,15 @@ dependencies = [ [[package]] name = "polkadot-node-core-candidate-validation" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "futures", "futures-timer", "parity-scale-codec", "polkadot-node-core-pvf", + "polkadot-node-metrics", "polkadot-node-primitives", "polkadot-node-subsystem", "polkadot-node-subsystem-util", @@ -7597,12 +8316,12 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-api" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", + "polkadot-node-metrics", "polkadot-node-subsystem", - "polkadot-node-subsystem-util", "polkadot-primitives", "sc-client-api", "sc-consensus-babe", @@ -7612,8 +8331,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-chain-selection" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", "futures-timer", @@ -7629,13 +8348,13 @@ dependencies = [ [[package]] name = "polkadot-node-core-dispute-coordinator" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "fatality", "futures", "kvdb", - "lru", + "lru 0.9.0", "parity-scale-codec", "polkadot-node-primitives", "polkadot-node-subsystem", @@ -7648,8 +8367,8 @@ dependencies = [ [[package]] name = "polkadot-node-core-parachains-inherent" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "futures", @@ -7659,15 +8378,14 @@ dependencies = [ "polkadot-primitives", "sp-blockchain", "sp-inherents", - "sp-runtime", "thiserror", "tracing-gum", ] [[package]] name = "polkadot-node-core-provisioner" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "fatality", @@ -7684,21 +8402,22 @@ dependencies = [ [[package]] name = "polkadot-node-core-pvf" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "always-assert", "assert_matches", - "async-process", - "async-std", "cpu-time", "futures", "futures-timer", + "libc", "parity-scale-codec", "pin-project", "polkadot-core-primitives", "polkadot-node-metrics", + "polkadot-node-primitives", "polkadot-parachain", + "polkadot-primitives", "rand 0.8.5", "rayon", "sc-executor", @@ -7712,13 +8431,15 @@ dependencies = [ "sp-tracing", "sp-wasm-interface", "tempfile", + "tikv-jemalloc-ctl", + "tokio", "tracing-gum", ] [[package]] name = "polkadot-node-core-pvf-checker" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", "polkadot-node-primitives", @@ -7733,14 +8454,14 @@ dependencies = [ [[package]] name = "polkadot-node-core-runtime-api" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "futures", - "lru", + "lru 0.9.0", + "polkadot-node-metrics", "polkadot-node-subsystem", "polkadot-node-subsystem-types", - "polkadot-node-subsystem-util", "polkadot-primitives", "sp-consensus-babe", "tracing-gum", @@ -7748,8 +8469,8 @@ dependencies = [ [[package]] name = "polkadot-node-jaeger" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "lazy_static", "log", @@ -7766,8 +8487,8 @@ dependencies = [ [[package]] name = "polkadot-node-metrics" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bs58", "futures", @@ -7785,8 +8506,8 @@ dependencies = [ [[package]] name = "polkadot-node-network-protocol" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "derive_more", @@ -7800,7 +8521,6 @@ dependencies = [ "rand 0.8.5", "sc-authority-discovery", "sc-network", - "sc-network-common", "strum", "thiserror", "tracing-gum", @@ -7808,8 +8528,8 @@ dependencies = [ [[package]] name = "polkadot-node-primitives" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bounded-vec", "futures", @@ -7824,14 +8544,15 @@ dependencies = [ "sp-core", "sp-keystore", "sp-maybe-compressed-blob", + "sp-runtime", "thiserror", "zstd", ] [[package]] name = "polkadot-node-subsystem" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "polkadot-node-jaeger", "polkadot-node-subsystem-types", @@ -7840,8 +8561,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-test-helpers" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "async-trait", "futures", @@ -7858,8 +8579,8 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-types" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "derive_more", @@ -7881,16 +8602,17 @@ dependencies = [ [[package]] name = "polkadot-node-subsystem-util" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "derive_more", "fatality", "futures", + "futures-channel", "itertools 0.10.5", "kvdb", - "lru", + "lru 0.9.0", "parity-db", "parity-scale-codec", "parking_lot 0.11.2", @@ -7913,13 +8635,13 @@ dependencies = [ [[package]] name = "polkadot-overseer" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", "futures", "futures-timer", - "lru", + "lru 0.9.0", "orchestra", "parking_lot 0.12.1", "polkadot-node-metrics", @@ -7936,9 +8658,10 @@ dependencies = [ [[package]] name = "polkadot-parachain" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ + "bounded-collections", "derive_more", "frame-support", "parity-scale-codec", @@ -7952,20 +8675,20 @@ dependencies = [ [[package]] name = "polkadot-parachain-bin" -version = "0.9.360" +version = "0.9.400" dependencies = [ "assert_cmd", "async-trait", "bridge-hub-kusama-runtime", + "bridge-hub-polkadot-runtime", "bridge-hub-rococo-runtime", - "clap 4.0.32", + "clap 4.2.7", "collectives-polkadot-runtime", "contracts-rococo-runtime", "cumulus-client-cli", "cumulus-client-consensus-aura", "cumulus-client-consensus-common", "cumulus-client-consensus-relay-chain", - "cumulus-client-network", "cumulus-client-service", "cumulus-primitives-core", "cumulus-primitives-parachain-inherent", @@ -7976,7 +8699,7 @@ dependencies = [ "hex-literal", "jsonrpsee", "log", - "nix 0.25.1", + "nix 0.26.2", "pallet-transaction-payment-rpc", "parachains-common", "parity-scale-codec", @@ -7992,7 +8715,7 @@ dependencies = [ "sc-consensus", "sc-executor", "sc-network", - "sc-network-common", + "sc-network-sync", "sc-rpc", "sc-service", "sc-sysinfo", @@ -8006,7 +8729,6 @@ dependencies = [ "sp-api", "sp-block-builder", "sp-blockchain", - "sp-consensus", "sp-consensus-aura", "sp-core", "sp-io", @@ -8033,8 +8755,8 @@ dependencies = [ [[package]] name = "polkadot-performance-test" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "env_logger 0.9.3", "kusama-runtime", @@ -8042,14 +8764,15 @@ dependencies = [ "polkadot-erasure-coding", "polkadot-node-core-pvf", "polkadot-node-primitives", + "polkadot-primitives", "quote", "thiserror", ] [[package]] name = "polkadot-primitives" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "hex-literal", @@ -8074,11 +8797,9 @@ dependencies = [ [[package]] name = "polkadot-rpc" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ - "beefy-gadget", - "beefy-gadget-rpc", "jsonrpsee", "mmr-rpc", "pallet-transaction-payment-rpc", @@ -8087,9 +8808,11 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-consensus-babe-rpc", + "sc-consensus-beefy", + "sc-consensus-beefy-rpc", "sc-consensus-epochs", - "sc-finality-grandpa", - "sc-finality-grandpa-rpc", + "sc-consensus-grandpa", + "sc-consensus-grandpa-rpc", "sc-rpc", "sc-sync-state-rpc", "sc-transaction-pool-api", @@ -8106,8 +8829,8 @@ dependencies = [ [[package]] name = "polkadot-runtime" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "frame-benchmarking", @@ -8151,6 +8874,7 @@ dependencies = [ "pallet-session-benchmarking", "pallet-staking", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", "pallet-timestamp", "pallet-tips", "pallet-transaction-payment", @@ -8162,7 +8886,7 @@ dependencies = [ "parity-scale-codec", "polkadot-primitives", "polkadot-runtime-common", - "polkadot-runtime-constants 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "polkadot-runtime-constants 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "polkadot-runtime-parachains", "rustc-hex", "scale-info", @@ -8171,9 +8895,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -8195,8 +8919,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-common" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "frame-benchmarking", @@ -8208,10 +8932,9 @@ dependencies = [ "log", "pallet-authorship", "pallet-babe", - "pallet-bags-list", "pallet-balances", - "pallet-beefy-mmr", "pallet-election-provider-multi-phase", + "pallet-fast-unstake", "pallet-session", "pallet-staking", "pallet-staking-reward-fn", @@ -8228,7 +8951,6 @@ dependencies = [ "serde_derive", "slot-range-helper", "sp-api", - "sp-beefy", "sp-core", "sp-inherents", "sp-io", @@ -8243,8 +8965,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-support", "polkadot-primitives", @@ -8257,8 +8979,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "frame-support", "polkadot-primitives", @@ -8271,8 +8993,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-metrics" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bs58", "parity-scale-codec", @@ -8283,8 +9005,8 @@ dependencies = [ [[package]] name = "polkadot-runtime-parachains" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitflags", "bitvec", @@ -8302,6 +9024,7 @@ dependencies = [ "pallet-timestamp", "pallet-vesting", "parity-scale-codec", + "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-metrics", "rand 0.8.5", @@ -8326,11 +9049,11 @@ dependencies = [ [[package]] name = "polkadot-service" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "async-trait", - "beefy-gadget", + "frame-benchmarking-cli", "frame-support", "frame-system-rpc-runtime-api", "futures", @@ -8338,7 +9061,8 @@ dependencies = [ "kusama-runtime", "kvdb", "kvdb-rocksdb", - "lru", + "log", + "lru 0.9.0", "mmr-gadget", "pallet-babe", "pallet-im-online", @@ -8377,11 +9101,11 @@ dependencies = [ "polkadot-primitives", "polkadot-rpc", "polkadot-runtime", - "polkadot-runtime-constants 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "polkadot-runtime-constants 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "polkadot-runtime-parachains", "polkadot-statement-distribution", "rococo-runtime", - "rococo-runtime-constants 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "rococo-runtime-constants 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "sc-authority-discovery", "sc-basic-authorship", "sc-block-builder", @@ -8390,12 +9114,14 @@ dependencies = [ "sc-client-db", "sc-consensus", "sc-consensus-babe", + "sc-consensus-beefy", + "sc-consensus-grandpa", "sc-consensus-slots", "sc-executor", - "sc-finality-grandpa", "sc-keystore", "sc-network", "sc-network-common", + "sc-network-sync", "sc-offchain", "sc-service", "sc-sync-state-rpc", @@ -8406,13 +9132,13 @@ dependencies = [ "serde_json", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-beefy", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-io", "sp-keystore", @@ -8433,8 +9159,8 @@ dependencies = [ [[package]] name = "polkadot-statement-distribution" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "arrayvec 0.5.2", "fatality", @@ -8454,8 +9180,8 @@ dependencies = [ [[package]] name = "polkadot-statement-table" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "parity-scale-codec", "polkadot-primitives", @@ -8464,8 +9190,8 @@ dependencies = [ [[package]] name = "polkadot-test-client" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "parity-scale-codec", "polkadot-node-subsystem", @@ -8489,8 +9215,8 @@ dependencies = [ [[package]] name = "polkadot-test-runtime" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "frame-election-provider-support", @@ -8527,9 +9253,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -8550,8 +9276,8 @@ dependencies = [ [[package]] name = "polkadot-test-service" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-benchmarking", "frame-system", @@ -8577,10 +9303,9 @@ dependencies = [ "sc-client-api", "sc-consensus", "sc-consensus-babe", + "sc-consensus-grandpa", "sc-executor", - "sc-finality-grandpa", "sc-network", - "sc-network-common", "sc-service", "sc-tracing", "sc-transaction-pool", @@ -8589,8 +9314,8 @@ dependencies = [ "sp-blockchain", "sp-consensus", "sp-consensus-babe", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-inherents", "sp-keyring", "sp-runtime", @@ -8604,16 +9329,18 @@ dependencies = [ [[package]] name = "polling" -version = "2.5.2" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22122d5ec4f9fe1b3916419b76be1e80bcb93f618d071d2edf841b137b2a2bd6" +checksum = "4b2d323e8ca7996b3e23126511a523f7e62924d93ecd5ae73b333815b0eb3dce" dependencies = [ "autocfg", + "bitflags", "cfg-if", + "concurrent-queue", "libc", "log", - "wepoll-ffi", - "windows-sys 0.42.0", + "pin-project-lite 0.2.9", + "windows-sys 0.48.0", ] [[package]] @@ -8624,7 +9351,7 @@ checksum = "048aeb476be11a4b6ca432ca569e375810de9294ae78f4774e78ea98a9246ede" dependencies = [ "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.4.1", ] [[package]] @@ -8636,7 +9363,19 @@ dependencies = [ "cfg-if", "cpufeatures", "opaque-debug 0.3.0", - "universal-hash", + "universal-hash 0.4.1", +] + +[[package]] +name = "polyval" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug 0.3.0", + "universal-hash 0.5.0", ] [[package]] @@ -8668,17 +9407,29 @@ dependencies = [ "regex", ] +[[package]] +name = "predicates" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" +dependencies = [ + "anstyle", + "difflib", + "itertools 0.10.5", + "predicates-core", +] + [[package]] name = "predicates-core" -version = "1.0.5" +version = "1.0.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72f883590242d3c6fc5bf50299011695fa6590c2c70eac95ee1bdb9a733ad1a2" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" [[package]] name = "predicates-tree" -version = "1.0.7" +version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54ff541861505aabf6ea722d2131ee980b8276e10a1297b94e896dd8b621850d" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" dependencies = [ "predicates-core", "termtree", @@ -8686,12 +9437,12 @@ dependencies = [ [[package]] name = "prettyplease" -version = "0.1.23" +version = "0.1.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97e3215779627f01ee256d2fad52f3d95e8e1c11e9fc6fd08f7cd455d5d5c78" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" dependencies = [ "proc-macro2", - "syn", + "syn 1.0.109", ] [[package]] @@ -8709,10 +9460,11 @@ dependencies = [ [[package]] name = "prioritized-metered-channel" -version = "0.2.0" +version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "382698e48a268c832d0b181ed438374a6bb708a82a8ca273bb0f61c74cf209c4" +checksum = "a3caef72a78ca8e77cbdfa87dd516ebb79d4cbe5b42e3b8435b463a8261339ff" dependencies = [ + "async-channel", "coarsetime", "crossbeam-queue", "derive_more", @@ -8725,13 +9477,12 @@ dependencies = [ [[package]] name = "proc-macro-crate" -version = "1.2.1" +version = "1.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eda0fc3b0fb7c975631757e14d9049da17374063edb6ebbcbc54d880d4fe94e9" +checksum = "7f4c021e1093a56626774e81216a4ce732a735e5bad4868a03f3ed65ca0c3919" dependencies = [ "once_cell", - "thiserror", - "toml", + "toml_edit", ] [[package]] @@ -8743,7 +9494,7 @@ dependencies = [ "proc-macro-error-attr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "version_check", ] @@ -8760,9 +9511,9 @@ dependencies = [ [[package]] name = "proc-macro2" -version = "1.0.49" +version = "1.0.56" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57a8eca9f9c4ffde41714334dee777596264c7825420f521abc92b5b5deb63a5" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" dependencies = [ "unicode-ident", ] @@ -8801,14 +9552,14 @@ checksum = "66a455fbcb954c1a7decf3c586e860fd7889cddf4b8e164be736dbac95a953cd" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c01db6702aa05baa3f57dec92b8eeeeb4cb19e894e73996b32a4093289e54592" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" dependencies = [ "bytes", "prost-derive", @@ -8816,9 +9567,9 @@ dependencies = [ [[package]] name = "prost-build" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb5320c680de74ba083512704acb90fe00f28f79207286a848e730c45dd73ed6" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" dependencies = [ "bytes", "heck", @@ -8831,16 +9582,16 @@ dependencies = [ "prost", "prost-types", "regex", - "syn", + "syn 1.0.109", "tempfile", "which", ] [[package]] name = "prost-codec" -version = "0.2.0" +version = "0.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "011ae9ff8359df7915f97302d591cdd9e0e27fbd5a4ddc5bd13b71079bb20987" +checksum = "0dc34979ff898b6e141106178981ce2596c387ea6e62533facfc61a37fc879c0" dependencies = [ "asynchronous-codec", "bytes", @@ -8851,24 +9602,23 @@ dependencies = [ [[package]] name = "prost-derive" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8842bad1a5419bca14eac663ba798f6bc19c413c2fdceb5f3ba3b0932d96720" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" dependencies = [ "anyhow", "itertools 0.10.5", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "prost-types" -version = "0.11.5" +version = "0.11.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "017f79637768cde62820bc2d4fe0e45daaa027755c323ad077767c6c5f173091" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" dependencies = [ - "bytes", "prost", ] @@ -8887,6 +9637,15 @@ version = "1.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +[[package]] +name = "quick-protobuf" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d6da84cc204722a989e01ba2f6e1e276e190f22263d0cb6ce8526fcdb0d2e1f" +dependencies = [ + "byteorder", +] + [[package]] name = "quicksink" version = "0.1.2" @@ -8898,11 +9657,29 @@ dependencies = [ "pin-project-lite 0.1.12", ] +[[package]] +name = "quinn-proto" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls 0.20.8", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki 0.22.0", +] + [[package]] name = "quote" -version = "1.0.23" +version = "1.0.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8856d8364d252a14d474036ea1358d63c9e6965c8e5c1885c18f73d70bff9c7b" +checksum = "8f4f29d145265ec1c483c7c654450edde0bfe043d3938d6972630663356d9500" dependencies = [ "proc-macro2", ] @@ -8924,7 +9701,6 @@ dependencies = [ "rand_chacha 0.2.2", "rand_core 0.5.1", "rand_hc", - "rand_pcg 0.2.1", ] [[package]] @@ -8973,17 +9749,7 @@ version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "getrandom 0.2.8", -] - -[[package]] -name = "rand_distr" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32cb0b9bc82b0a0876c2dd994a7e7a2683d3e7390ca40e6886785ef0c7e3ee31" -dependencies = [ - "num-traits", - "rand 0.8.5", + "getrandom 0.2.9", ] [[package]] @@ -8995,15 +9761,6 @@ dependencies = [ "rand_core 0.5.1", ] -[[package]] -name = "rand_pcg" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16abd0c1b639e9eb4d7c50c0b8100b0d0f849be2349829c740fe8e6eb4816429" -dependencies = [ - "rand_core 0.5.1", -] - [[package]] name = "rand_pcg" version = "0.3.1" @@ -9021,9 +9778,9 @@ checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" [[package]] name = "rayon" -version = "1.6.1" +version = "1.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6db3a213adf02b3bcfd2d3846bb41cb22857d131789e01df434fb7e7bc0759b7" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" dependencies = [ "either", "rayon-core", @@ -9031,9 +9788,9 @@ dependencies = [ [[package]] name = "rayon-core" -version = "1.10.1" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cac410af5d00ab6884528b4ab69d1e8e146e8d471201800fa1b4524126de6ad3" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" dependencies = [ "crossbeam-channel", "crossbeam-deque", @@ -9041,6 +9798,31 @@ dependencies = [ "num_cpus", ] +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.21", + "x509-parser 0.13.2", + "yasna", +] + +[[package]] +name = "rcgen" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffbe84efe2f38dea12e9bfc1f65377fdf03e53a18cb3b995faedf7934c7e785b" +dependencies = [ + "pem", + "ring", + "time 0.3.21", + "yasna", +] + [[package]] name = "redox_syscall" version = "0.2.16" @@ -9050,14 +9832,23 @@ dependencies = [ "bitflags", ] +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + [[package]] name = "redox_users" version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" dependencies = [ - "getrandom 0.2.8", - "redox_syscall", + "getrandom 0.2.9", + "redox_syscall 0.2.16", "thiserror", ] @@ -9076,29 +9867,29 @@ dependencies = [ [[package]] name = "ref-cast" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c78fb8c9293bcd48ef6fce7b4ca950ceaf21210de6e105a883ee280c0f7b9ed" +checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" dependencies = [ "ref-cast-impl", ] [[package]] name = "ref-cast-impl" -version = "1.0.14" +version = "1.0.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f9c0c92af03644e4806106281fe2e068ac5bc0ae74a707266d06ea27bccee5f" +checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] name = "regalloc2" -version = "0.3.2" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d43a209257d978ef079f3d446331d0f1794f5e0fc19b306a199983857833a779" +checksum = "300d4fbfb40c1c66a78ba3ddd41c1110247cf52f97b87d0f2fc9209bd49b030c" dependencies = [ "fxhash", "log", @@ -9108,13 +9899,13 @@ dependencies = [ [[package]] name = "regex" -version = "1.7.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e076559ef8e241f2ae3479e36f97bd5741c0330689e217ad51ce2c76808b868a" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" dependencies = [ - "aho-corasick", + "aho-corasick 1.0.1", "memchr", - "regex-syntax", + "regex-syntax 0.7.1", ] [[package]] @@ -9123,21 +9914,30 @@ version = "0.1.10" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" dependencies = [ - "regex-syntax", + "regex-syntax 0.6.29", ] [[package]] name = "regex-syntax" -version = "0.6.28" +version = "0.6.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "456c603be3e8d448b072f410900c09faf164fbce2d480456f50eea6e25f9c848" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" [[package]] -name = "remove_dir_all" -version = "0.5.3" +name = "regex-syntax" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" + +[[package]] +name = "region" +version = "3.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +checksum = "76e189c2369884dce920945e2ddf79b3dff49e071a167dd1817fa9c4c00d512e" dependencies = [ + "bitflags", + "libc", + "mach", "winapi", ] @@ -9205,7 +10005,7 @@ dependencies = [ "frame-support", "frame-system", "frame-system-rpc-runtime-api", - "mangata-types", + "mangata-support", "pallet-assets", "pallet-aura", "pallet-balances", @@ -9238,16 +10038,17 @@ dependencies = [ [[package]] name = "rococo-runtime" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ - "beefy-merkle-tree", + "binary-merkle-tree 4.0.0-dev (git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40)", "frame-benchmarking", "frame-executive", "frame-support", "frame-system", "frame-system-benchmarking", "frame-system-rpc-runtime-api", + "frame-try-runtime", "hex-literal", "log", "pallet-authority-discovery", @@ -9287,22 +10088,22 @@ dependencies = [ "pallet-utility", "pallet-vesting", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", "polkadot-runtime-common", "polkadot-runtime-parachains", - "rococo-runtime-constants 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "rococo-runtime-constants 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "scale-info", "serde", "serde_derive", "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -9323,8 +10124,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-support", "polkadot-primitives", @@ -9337,8 +10138,8 @@ dependencies = [ [[package]] name = "rococo-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "frame-support", "polkadot-primitives", @@ -9360,19 +10161,30 @@ dependencies = [ "winapi", ] +[[package]] +name = "rtcp" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1919efd6d4a6a85d13388f9487549bb8e359f17198cc03ffd72f79b553873691" +dependencies = [ + "bytes", + "thiserror", + "webrtc-util", +] + [[package]] name = "rtnetlink" version = "0.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "322c53fd76a18698f1c27381d58091de3a043d356aa5bd0d510608b565f469a0" dependencies = [ - "async-global-executor", "futures", "log", "netlink-packet-route", "netlink-proto", "nix 0.24.3", "thiserror", + "tokio", ] [[package]] @@ -9385,11 +10197,25 @@ dependencies = [ "winapi", ] +[[package]] +name = "rtp" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2a095411ff00eed7b12e4c6a118ba984d113e1079582570d56a5ee723f11f80" +dependencies = [ + "async-trait", + "bytes", + "rand 0.8.5", + "serde", + "thiserror", + "webrtc-util", +] + [[package]] name = "rustc-demangle" -version = "0.1.21" +version = "0.1.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef03e0a2b150c7a90d01faf6254c9c48a41e95fb2a8c2ac1c6f0d2b9aefc342" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" [[package]] name = "rustc-hash" @@ -9418,47 +10244,69 @@ version = "0.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" dependencies = [ - "semver 1.0.16", + "semver 1.0.17", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom", ] [[package]] name = "rustix" -version = "0.35.13" +version = "0.36.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727a1a6d65f786ec22df8a81ca3121107f235970dc1705ed681d3e6e8b9cd5f9" +checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" dependencies = [ "bitflags", "errno", - "io-lifetimes 0.7.5", + "io-lifetimes", "libc", - "linux-raw-sys 0.0.46", - "windows-sys 0.42.0", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", ] [[package]] name = "rustix" -version = "0.36.6" +version = "0.37.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4feacf7db682c6c329c4ede12649cd36ecab0f3be5b7d74e6a20304725db4549" +checksum = "acf8729d8542766f1b2cf77eb034d52f40d375bb8b615d0b147089946e16613d" dependencies = [ "bitflags", "errno", - "io-lifetimes 1.0.3", + "io-lifetimes", "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.42.0", + "linux-raw-sys 0.3.7", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.19.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35edb675feee39aec9c99fa5ff985081995a06d594114ae14cbe797ad7b7a6d7" +dependencies = [ + "base64 0.13.1", + "log", + "ring", + "sct 0.6.1", + "webpki 0.21.4", ] [[package]] name = "rustls" -version = "0.20.7" +version = "0.20.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "539a2bfe908f471bfa933876bd1eb6a19cf2176d375f82ef7f99530a40e48c2c" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" dependencies = [ "log", "ring", - "sct", - "webpki", + "sct 0.7.0", + "webpki 0.22.0", ] [[package]] @@ -9475,18 +10323,18 @@ dependencies = [ [[package]] name = "rustls-pemfile" -version = "1.0.1" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0864aeff53f8c05aa08d86e5ef839d3dfcf07aeba2db32f12db0ef716e87bd55" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" dependencies = [ - "base64", + "base64 0.21.0", ] [[package]] name = "rustversion" -version = "1.0.11" +version = "1.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5583e89e108996506031660fe09baa5011b9dd0341b89029313006d1fb508d70" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" [[package]] name = "rw-stream-sink" @@ -9501,9 +10349,9 @@ dependencies = [ [[package]] name = "ryu" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b4b9743ed687d4b4bcedf9ff5eaa7398495ae14e61cba0a295704edbc7decde" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" [[package]] name = "safe-mix" @@ -9514,6 +10362,15 @@ dependencies = [ "rustc_version 0.2.3", ] +[[package]] +name = "safe_arch" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "794821e4ccb0d9f979512f9c1973480123f9bd62a90d74ab0f9426fcf8f4a529" +dependencies = [ + "bytemuck", +] + [[package]] name = "same-file" version = "1.0.6" @@ -9526,7 +10383,7 @@ dependencies = [ [[package]] name = "sc-allocator" version = "4.1.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "log", "sp-core", @@ -9537,7 +10394,7 @@ dependencies = [ [[package]] name = "sc-authority-discovery" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", @@ -9548,8 +10405,9 @@ dependencies = [ "parity-scale-codec", "prost", "prost-build", - "rand 0.7.3", + "rand 0.8.5", "sc-client-api", + "sc-network", "sc-network-common", "sp-api", "sp-authority-discovery", @@ -9564,7 +10422,7 @@ dependencies = [ [[package]] name = "sc-basic-authorship" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "futures-timer", @@ -9587,7 +10445,7 @@ dependencies = [ [[package]] name = "sc-block-builder" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "sc-client-api", @@ -9597,13 +10455,12 @@ dependencies = [ "sp-core", "sp-inherents", "sp-runtime", - "sp-state-machine", ] [[package]] name = "sc-block-builder-ver" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "aquamarine", "extrinsic-shuffler", @@ -9624,46 +10481,48 @@ dependencies = [ [[package]] name = "sc-chain-spec" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "impl-trait-for-tuples", "memmap2", - "parity-scale-codec", "sc-chain-spec-derive", - "sc-network-common", + "sc-client-api", + "sc-executor", + "sc-network", "sc-telemetry", "serde", "serde_json", + "sp-blockchain", "sp-core", "sp-runtime", + "sp-state-machine", ] [[package]] name = "sc-chain-spec-derive" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sc-cli" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "chrono", - "clap 4.0.32", + "clap 4.2.7", "fdlimit", "futures", "libp2p", "log", "names", "parity-scale-codec", - "rand 0.7.3", + "rand 0.8.5", "regex", "rpassword", "sc-client-api", @@ -9692,11 +10551,10 @@ dependencies = [ [[package]] name = "sc-client-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "fnv", "futures", - "hash-db", "log", "parity-scale-codec", "parking_lot 0.12.1", @@ -9713,16 +10571,15 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-storage", - "sp-trie", "substrate-prometheus-endpoint", ] [[package]] name = "sc-client-db" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "hash-db", + "hash-db 0.16.0", "kvdb", "kvdb-memorydb", "kvdb-rocksdb", @@ -9733,6 +10590,7 @@ dependencies = [ "parking_lot 0.12.1", "sc-client-api", "sc-state-db", + "schnellru", "sp-arithmetic", "sp-blockchain", "sp-core", @@ -9745,7 +10603,7 @@ dependencies = [ [[package]] name = "sc-consensus" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", @@ -9770,7 +10628,7 @@ dependencies = [ [[package]] name = "sc-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", @@ -9799,7 +10657,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "fork-tree", @@ -9817,8 +10675,8 @@ dependencies = [ "sc-consensus-slots", "sc-keystore", "sc-telemetry", + "scale-info", "schnorrkel", - "serde", "sp-api", "sp-application-crypto", "sp-block-builder", @@ -9840,7 +10698,7 @@ dependencies = [ [[package]] name = "sc-consensus-babe-rpc" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "jsonrpsee", @@ -9859,23 +10717,137 @@ dependencies = [ "thiserror", ] +[[package]] +name = "sc-consensus-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +dependencies = [ + "array-bytes 4.2.0", + "async-trait", + "fnv", + "futures", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-client-api", + "sc-consensus", + "sc-keystore", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-network-sync", + "sc-utils", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-beefy", + "sp-core", + "sp-keystore", + "sp-mmr-primitives", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", + "wasm-timer", +] + +[[package]] +name = "sc-consensus-beefy-rpc" +version = "4.0.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +dependencies = [ + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "parking_lot 0.12.1", + "sc-consensus-beefy", + "sc-rpc", + "serde", + "sp-consensus-beefy", + "sp-core", + "sp-runtime", + "thiserror", +] + [[package]] name = "sc-consensus-epochs" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "fork-tree", + "parity-scale-codec", + "sc-client-api", + "sc-consensus", + "sp-blockchain", + "sp-runtime", +] + +[[package]] +name = "sc-consensus-grandpa" +version = "0.10.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "ahash 0.8.3", + "array-bytes 4.2.0", + "async-trait", + "dyn-clone", + "finality-grandpa", "fork-tree", + "futures", + "futures-timer", + "log", "parity-scale-codec", + "parking_lot 0.12.1", + "rand 0.8.5", + "sc-block-builder", + "sc-chain-spec", "sc-client-api", "sc-consensus", + "sc-network", + "sc-network-common", + "sc-network-gossip", + "sc-telemetry", + "sc-utils", + "serde_json", + "sp-api", + "sp-application-crypto", + "sp-arithmetic", + "sp-blockchain", + "sp-consensus", + "sp-consensus-grandpa", + "sp-core", + "sp-keystore", + "sp-runtime", + "substrate-prometheus-endpoint", + "thiserror", +] + +[[package]] +name = "sc-consensus-grandpa-rpc" +version = "0.10.0-dev" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +dependencies = [ + "finality-grandpa", + "futures", + "jsonrpsee", + "log", + "parity-scale-codec", + "sc-client-api", + "sc-consensus-grandpa", + "sc-rpc", + "serde", "sp-blockchain", + "sp-core", "sp-runtime", + "thiserror", ] [[package]] name = "sc-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", @@ -9895,15 +10867,14 @@ dependencies = [ "sp-runtime", "sp-state-machine", "sp-ver", - "thiserror", ] [[package]] name = "sc-executor" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "lru", + "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sc-executor-common", @@ -9925,7 +10896,7 @@ dependencies = [ [[package]] name = "sc-executor-common" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "sc-allocator", "sp-maybe-compressed-blob", @@ -9938,7 +10909,7 @@ dependencies = [ [[package]] name = "sc-executor-wasmi" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "log", "sc-allocator", @@ -9951,13 +10922,14 @@ dependencies = [ [[package]] name = "sc-executor-wasmtime" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "anyhow", "cfg-if", "libc", "log", "once_cell", - "rustix 0.35.13", + "rustix 0.36.13", "sc-allocator", "sc-executor-common", "sp-runtime-interface", @@ -9965,80 +10937,18 @@ dependencies = [ "wasmtime", ] -[[package]] -name = "sc-finality-grandpa" -version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "ahash", - "array-bytes 4.2.0", - "async-trait", - "dyn-clone", - "finality-grandpa", - "fork-tree", - "futures", - "futures-timer", - "log", - "parity-scale-codec", - "parking_lot 0.12.1", - "rand 0.8.5", - "sc-block-builder", - "sc-chain-spec", - "sc-client-api", - "sc-consensus", - "sc-keystore", - "sc-network", - "sc-network-common", - "sc-network-gossip", - "sc-telemetry", - "sc-utils", - "serde_json", - "sp-api", - "sp-application-crypto", - "sp-arithmetic", - "sp-blockchain", - "sp-consensus", - "sp-core", - "sp-finality-grandpa", - "sp-keystore", - "sp-runtime", - "substrate-prometheus-endpoint", - "thiserror", -] - -[[package]] -name = "sc-finality-grandpa-rpc" -version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "finality-grandpa", - "futures", - "jsonrpsee", - "log", - "parity-scale-codec", - "sc-client-api", - "sc-finality-grandpa", - "sc-rpc", - "serde", - "serde_json", - "sp-blockchain", - "sp-core", - "sp-runtime", - "thiserror", -] - [[package]] name = "sc-informant" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "ansi_term", "futures", "futures-timer", "log", "sc-client-api", + "sc-network", "sc-network-common", - "sc-transaction-pool-api", "sp-blockchain", "sp-runtime", ] @@ -10046,7 +10956,7 @@ dependencies = [ [[package]] name = "sc-keystore" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -10061,30 +10971,27 @@ dependencies = [ [[package]] name = "sc-network" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", + "async-channel", "async-trait", "asynchronous-codec", - "bitflags", "bytes", - "cid", "either", "fnv", - "fork-tree", "futures", "futures-timer", "ip_network", "libp2p", - "linked-hash-map", "linked_hash_set", "log", - "lru", + "lru 0.8.1", + "mockall", "parity-scale-codec", "parking_lot 0.12.1", "pin-project", - "prost", - "rand 0.7.3", + "rand 0.8.5", "sc-block-builder", "sc-client-api", "sc-consensus", @@ -10108,7 +11015,7 @@ dependencies = [ [[package]] name = "sc-network-bitswap" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "cid", "futures", @@ -10117,51 +11024,54 @@ dependencies = [ "prost", "prost-build", "sc-client-api", + "sc-network", "sc-network-common", "sp-blockchain", "sp-runtime", "thiserror", "unsigned-varint", - "void", ] [[package]] name = "sc-network-common" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "array-bytes 4.2.0", "async-trait", "bitflags", "bytes", "futures", "futures-timer", "libp2p", - "linked_hash_set", "parity-scale-codec", "prost-build", "sc-consensus", "sc-peerset", + "sc-utils", "serde", "smallvec", "sp-blockchain", "sp-consensus", - "sp-finality-grandpa", + "sp-consensus-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", + "zeroize", ] [[package]] name = "sc-network-gossip" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "ahash", + "ahash 0.8.3", "futures", "futures-timer", "libp2p", "log", - "lru", + "lru 0.8.1", + "sc-network", "sc-network-common", "sc-peerset", "sp-runtime", @@ -10172,7 +11082,7 @@ dependencies = [ [[package]] name = "sc-network-light" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "futures", @@ -10182,6 +11092,7 @@ dependencies = [ "prost", "prost-build", "sc-client-api", + "sc-network", "sc-network-common", "sc-peerset", "sp-blockchain", @@ -10193,21 +11104,23 @@ dependencies = [ [[package]] name = "sc-network-sync" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "async-trait", "fork-tree", "futures", + "futures-timer", "libp2p", "log", - "lru", + "lru 0.8.1", "mockall", "parity-scale-codec", "prost", "prost-build", "sc-client-api", "sc-consensus", + "sc-network", "sc-network-common", "sc-peerset", "sc-utils", @@ -10215,8 +11128,8 @@ dependencies = [ "sp-arithmetic", "sp-blockchain", "sp-consensus", + "sp-consensus-grandpa", "sp-core", - "sp-finality-grandpa", "sp-runtime", "substrate-prometheus-endpoint", "thiserror", @@ -10225,17 +11138,18 @@ dependencies = [ [[package]] name = "sc-network-transactions" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "futures", - "hex", "libp2p", "log", "parity-scale-codec", "pin-project", + "sc-network", "sc-network-common", "sc-peerset", + "sc-utils", "sp-consensus", "sp-runtime", "substrate-prometheus-endpoint", @@ -10244,7 +11158,7 @@ dependencies = [ [[package]] name = "sc-offchain" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "bytes", @@ -10258,8 +11172,9 @@ dependencies = [ "once_cell", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.7.3", + "rand 0.8.5", "sc-client-api", + "sc-network", "sc-network-common", "sc-peerset", "sc-utils", @@ -10274,7 +11189,7 @@ dependencies = [ [[package]] name = "sc-peerset" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "libp2p", @@ -10287,7 +11202,7 @@ dependencies = [ [[package]] name = "sc-proposer-metrics" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "log", "substrate-prometheus-endpoint", @@ -10296,10 +11211,10 @@ dependencies = [ [[package]] name = "sc-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", - "hash-db", + "hash-db 0.15.2", "jsonrpsee", "log", "parity-scale-codec", @@ -10321,18 +11236,16 @@ dependencies = [ "sp-runtime", "sp-session", "sp-version", + "tokio", ] [[package]] name = "sc-rpc-api" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "futures", "jsonrpsee", - "log", "parity-scale-codec", - "parking_lot 0.12.1", "sc-chain-spec", "sc-transaction-pool-api", "scale-info", @@ -10349,7 +11262,7 @@ dependencies = [ [[package]] name = "sc-rpc-server" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "http", @@ -10365,39 +11278,45 @@ dependencies = [ [[package]] name = "sc-rpc-spec-v2" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "array-bytes 4.2.0", "futures", + "futures-util", "hex", "jsonrpsee", + "log", "parity-scale-codec", + "parking_lot 0.12.1", "sc-chain-spec", + "sc-client-api", "sc-transaction-pool-api", "serde", "sp-api", "sp-blockchain", "sp-core", "sp-runtime", + "sp-version", "thiserror", + "tokio-stream", ] [[package]] name = "sc-service" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "directories", "exit-future", "futures", "futures-timer", - "hash-db", "jsonrpsee", "log", "parity-scale-codec", "parking_lot 0.12.1", "pin-project", - "rand 0.7.3", + "rand 0.8.5", "sc-block-builder", "sc-block-builder-ver", "sc-chain-spec", @@ -10417,6 +11336,7 @@ dependencies = [ "sc-rpc", "sc-rpc-server", "sc-rpc-spec-v2", + "sc-storage-monitor 0.1.0 (git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40)", "sc-sysinfo", "sc-telemetry", "sc-tracing", @@ -10456,19 +11376,50 @@ dependencies = [ [[package]] name = "sc-state-db" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "log", "parity-scale-codec", "parking_lot 0.12.1", - "sc-client-api", "sp-core", ] +[[package]] +name = "sc-storage-monitor" +version = "0.1.0" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "clap 4.2.7", + "fs4", + "futures", + "log", + "sc-client-db", + "sc-utils", + "sp-core", + "thiserror", + "tokio", +] + +[[package]] +name = "sc-storage-monitor" +version = "0.1.0" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" +dependencies = [ + "clap 4.2.7", + "fs4", + "futures", + "log", + "sc-client-db", + "sc-utils", + "sp-core", + "thiserror", + "tokio", +] + [[package]] name = "sc-sync-state-rpc" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "jsonrpsee", "parity-scale-codec", @@ -10476,7 +11427,7 @@ dependencies = [ "sc-client-api", "sc-consensus-babe", "sc-consensus-epochs", - "sc-finality-grandpa", + "sc-consensus-grandpa", "serde", "serde_json", "sp-blockchain", @@ -10487,13 +11438,13 @@ dependencies = [ [[package]] name = "sc-sysinfo" version = "6.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "libc", "log", - "rand 0.7.3", - "rand_pcg 0.2.1", + "rand 0.8.5", + "rand_pcg", "regex", "sc-telemetry", "serde", @@ -10506,7 +11457,7 @@ dependencies = [ [[package]] name = "sc-telemetry" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "chrono", "futures", @@ -10514,7 +11465,8 @@ dependencies = [ "log", "parking_lot 0.12.1", "pin-project", - "rand 0.7.3", + "rand 0.8.5", + "sc-utils", "serde", "serde_json", "thiserror", @@ -10524,7 +11476,7 @@ dependencies = [ [[package]] name = "sc-tracing" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "ansi_term", "atty", @@ -10555,24 +11507,25 @@ dependencies = [ [[package]] name = "sc-tracing-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sc-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", "futures-timer", "linked-hash-map", "log", + "num-traits", "parity-scale-codec", "parking_lot 0.12.1", "sc-client-api", @@ -10592,7 +11545,7 @@ dependencies = [ [[package]] name = "sc-transaction-pool-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", @@ -10606,21 +11559,23 @@ dependencies = [ [[package]] name = "sc-utils" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "async-channel", "futures", "futures-timer", "lazy_static", "log", "parking_lot 0.12.1", "prometheus", + "sp-arithmetic", ] [[package]] name = "scale-info" -version = "2.3.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "001cf62ece89779fd16105b5f515ad0e5cedcd5440d3dd806bb067978e7c3608" +checksum = "dfdef77228a4c05dc94211441595746732131ad7f6530c6c18f045da7b7ab937" dependencies = [ "bitvec", "cfg-if", @@ -10632,24 +11587,34 @@ dependencies = [ [[package]] name = "scale-info-derive" -version = "2.3.1" +version = "2.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "303959cf613a6f6efd19ed4b4ad5bf79966a13352716299ad532cfb115f4205c" +checksum = "53012eae69e5aa5c14671942a5dd47de59d4cdcff8532a6dd0e081faf1119482" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "schannel" -version = "0.1.20" +version = "0.1.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88d6731146462ea25d9244b2ed5fd1d716d25c52e4d54aa4fb0f3c4e9854dbe2" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" dependencies = [ - "lazy_static", - "windows-sys 0.36.1", + "windows-sys 0.42.0", +] + +[[package]] +name = "schnellru" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "772575a524feeb803e5b0fcbc6dd9f367e579488197c94c6e4023aad2305774d" +dependencies = [ + "ahash 0.8.3", + "cfg-if", + "hashbrown 0.13.2", ] [[package]] @@ -10678,9 +11643,19 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" [[package]] name = "scratch" -version = "1.0.3" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" + +[[package]] +name = "sct" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddccb15bcce173023b3fedd9436f882a0739b8dfb45e4f6b6002bee5929f61b2" +checksum = "b362b83898e0e69f38515b82ee15aa80636befe47c3b6d3d89a911e78fc228ce" +dependencies = [ + "ring", + "untrusted", +] [[package]] name = "sct" @@ -10692,6 +11667,18 @@ dependencies = [ "untrusted", ] +[[package]] +name = "sdp" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d22a5ef407871893fd72b4562ee15e4742269b173959db4b8df6f538c414e13" +dependencies = [ + "rand 0.8.5", + "substring", + "thiserror", + "url", +] + [[package]] name = "sec1" version = "0.3.0" @@ -10700,7 +11687,7 @@ checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" dependencies = [ "base16ct", "der", - "generic-array 0.14.6", + "generic-array 0.14.7", "pkcs8", "subtle", "zeroize", @@ -10708,9 +11695,9 @@ dependencies = [ [[package]] name = "secp256k1" -version = "0.24.2" +version = "0.24.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9512ffd81e3a3503ed401f79c33168b9148c75038956039166cd750eaa037c3" +checksum = "6b1629c9c557ef9b293568b338dddfc8208c98a18c59d722a9d53f859d9c9b62" dependencies = [ "secp256k1-sys", ] @@ -10735,9 +11722,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "2.7.0" +version = "2.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2bc1bb97804af6631813c55739f771071e0f2ed33ee20b68c86ec505d906356c" +checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" dependencies = [ "bitflags", "core-foundation", @@ -10748,9 +11735,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.6.1" +version = "2.8.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0160a13a177a45bfb43ce71c01580998474f556ad854dcbca936dd2841a5c556" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" dependencies = [ "core-foundation-sys", "libc", @@ -10766,7 +11753,7 @@ dependencies = [ "frame-executive", "frame-support", "frame-system", - "mangata-types", + "mangata-support", "pallet-balances", "pallet-sudo", "parachain-info", @@ -10806,9 +11793,9 @@ dependencies = [ [[package]] name = "semver" -version = "1.0.16" +version = "1.0.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58bc9567378fc7690d6b2addae4e60ac2eeea07becb2c64b9f218b53865cba2a" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" dependencies = [ "serde", ] @@ -10821,29 +11808,29 @@ checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" [[package]] name = "serde" -version = "1.0.152" +version = "1.0.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb7d1f0d3021d347a83e556fc4683dea2ea09d87bccdf88ff5c12545d89d5efb" +checksum = "71b2f6e1ab5c2b98c05f0f35b236b22e8df7ead6ffbf51d7808da7f8817e7ab6" dependencies = [ "serde_derive", ] [[package]] name = "serde_derive" -version = "1.0.152" +version = "1.0.162" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af487d118eecd09402d70a5d72551860e788df87b464af30e5ea6a38c75c541e" +checksum = "a2a0814352fd64b58489904a44ea8d90cb1a91dcb6b4f5ebabc32c8318e93cb6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] name = "serde_json" -version = "1.0.91" +version = "1.0.96" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "877c235533714907a8c2464236f5c4b2a17262ef1bd71f38f35ea592c8da6883" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" dependencies = [ "itoa", "ryu", @@ -10851,10 +11838,10 @@ dependencies = [ ] [[package]] -name = "serde_nanos" -version = "0.1.2" +name = "serde_spanned" +version = "0.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e44969a61f5d316be20a42ff97816efb3b407a924d06824c3d8a49fa8450de0e" +checksum = "0efd8caf556a6cebd3b285caf480045fcc1ac04f6bd786b09a6f11af30c4fcf4" dependencies = [ "serde", ] @@ -10921,9 +11908,9 @@ dependencies = [ [[package]] name = "sha3" -version = "0.10.6" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bdf0c33fae925bdc080598b84bc15c55e7b9a4a43b3c704da051f977469691c9" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ "digest 0.10.6", "keccak", @@ -10949,7 +11936,7 @@ dependencies = [ "frame-support", "frame-system", "frame-try-runtime", - "mangata-types", + "mangata-support", "parachain-info", "parachains-common", "parity-scale-codec", @@ -10976,21 +11963,11 @@ version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" -[[package]] -name = "signal-hook" -version = "0.3.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a253b5e89e2698464fc26b545c9edceb338e18a89effeeecfea192c3025be29d" -dependencies = [ - "libc", - "signal-hook-registry", -] - [[package]] name = "signal-hook-registry" -version = "1.4.0" +version = "1.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51e73328dc4ac0c7ccbda3a494dfa03df1de2f46018127f60c693f2648455b0" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" dependencies = [ "libc", ] @@ -11007,35 +11984,42 @@ dependencies = [ [[package]] name = "simba" -version = "0.5.1" +version = "0.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e82063457853d00243beda9952e910b82593e4b07ae9f721b9278a99a0d3d5c" +checksum = "061507c94fc6ab4ba1c9a0305018408e312e17c041eb63bef8aa726fa33aceae" dependencies = [ "approx", "num-complex", "num-traits", "paste", + "wide", ] +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + [[package]] name = "slab" -version = "0.4.7" +version = "0.4.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" dependencies = [ "autocfg", ] [[package]] name = "slice-group-by" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03b634d87b960ab1a38c4fe143b508576f075e7c978bfad18217645ebfdfa2ec" +checksum = "826167069c09b99d56f31e9ae5c99049e932a98c9dc2dac47645b08dbbf76ba7" [[package]] name = "slot-range-helper" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "enumn", "parity-scale-codec", @@ -11067,14 +12051,14 @@ checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" [[package]] name = "snow" -version = "0.9.0" +version = "0.9.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "774d05a3edae07ce6d68ea6984f3c05e9bba8927e3dd591e3b479e5b03213d0d" +checksum = "5ccba027ba85743e09d15c03296797cad56395089b832b48b5a5217880f57733" dependencies = [ - "aes-gcm", + "aes-gcm 0.9.4", "blake2", "chacha20poly1305", - "curve25519-dalek 4.0.0-pre.5", + "curve25519-dalek 4.0.0-rc.1", "rand_core 0.6.4", "ring", "rustc_version 0.4.0", @@ -11084,9 +12068,9 @@ dependencies = [ [[package]] name = "socket2" -version = "0.4.7" +version = "0.4.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e2d2db9033d13a1567121ddd7a095ee144db4e1ca1b1bda3419bc0da294ebd" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" dependencies = [ "libc", "winapi", @@ -11098,7 +12082,7 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" dependencies = [ - "base64", + "base64 0.13.1", "bytes", "flate2", "futures", @@ -11112,9 +12096,9 @@ dependencies = [ [[package]] name = "sp-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", "parity-scale-codec", "sp-api-proc-macro", @@ -11130,19 +12114,21 @@ dependencies = [ [[package]] name = "sp-api-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "Inflector", "blake2", + "expander 1.0.0", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-application-crypto" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", @@ -11155,14 +12141,13 @@ dependencies = [ [[package]] name = "sp-arithmetic" version = "6.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "integer-sqrt", "num-traits", "parity-scale-codec", "scale-info", "serde", - "sp-debug-derive", "sp-std", "static_assertions", ] @@ -11170,41 +12155,12 @@ dependencies = [ [[package]] name = "sp-authority-discovery" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "parity-scale-codec", - "scale-info", - "sp-api", - "sp-application-crypto", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-authorship" -version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "async-trait", - "parity-scale-codec", - "sp-inherents", - "sp-runtime", - "sp-std", -] - -[[package]] -name = "sp-beefy" -version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", - "serde", "sp-api", "sp-application-crypto", - "sp-core", - "sp-io", - "sp-mmr-primitives", "sp-runtime", "sp-std", ] @@ -11212,7 +12168,7 @@ dependencies = [ [[package]] name = "sp-block-builder" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "sp-api", @@ -11224,11 +12180,11 @@ dependencies = [ [[package]] name = "sp-blockchain" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "futures", "log", - "lru", + "lru 0.8.1", "parity-scale-codec", "parking_lot 0.12.1", "sp-api", @@ -11242,26 +12198,22 @@ dependencies = [ [[package]] name = "sp-consensus" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", - "futures-timer", "log", - "parity-scale-codec", "sp-core", "sp-inherents", "sp-runtime", "sp-state-machine", - "sp-std", - "sp-version", "thiserror", ] [[package]] name = "sp-consensus-aura" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "parity-scale-codec", @@ -11279,7 +12231,7 @@ dependencies = [ [[package]] name = "sp-consensus-babe" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "merlin", @@ -11299,10 +12251,47 @@ dependencies = [ "sp-timestamp", ] +[[package]] +name = "sp-consensus-beefy" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "lazy_static", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-io", + "sp-mmr-primitives", + "sp-runtime", + "sp-std", + "strum", +] + +[[package]] +name = "sp-consensus-grandpa" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" +dependencies = [ + "finality-grandpa", + "log", + "parity-scale-codec", + "scale-info", + "serde", + "sp-api", + "sp-application-crypto", + "sp-core", + "sp-keystore", + "sp-runtime", + "sp-std", +] + [[package]] name = "sp-consensus-slots" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", @@ -11316,7 +12305,7 @@ dependencies = [ [[package]] name = "sp-consensus-vrf" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", @@ -11329,29 +12318,28 @@ dependencies = [ [[package]] name = "sp-core" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "base58", "bitflags", "blake2", - "byteorder", + "bounded-collections", "dyn-clonable", "ed25519-zebra", "futures", - "hash-db", + "hash-db 0.16.0", "hash256-std-hasher", "impl-serde", "lazy_static", "libsecp256k1", "log", "merlin", - "num-traits", "parity-scale-codec", "parity-util-mem", "parking_lot 0.12.1", "primitive-types", - "rand 0.7.3", + "rand 0.8.5", "regex", "scale-info", "schnorrkel", @@ -11368,16 +12356,15 @@ dependencies = [ "substrate-bip39", "thiserror", "tiny-bip39", - "wasmi 0.13.2", "zeroize", ] [[package]] name = "sp-core-hashing" version = "5.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "blake2", + "blake2b_simd", "byteorder", "digest 0.10.6", "sha2 0.10.6", @@ -11389,18 +12376,18 @@ dependencies = [ [[package]] name = "sp-core-hashing-proc-macro" version = "5.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro2", "quote", "sp-core-hashing", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-database" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "kvdb", "parking_lot 0.12.1", @@ -11409,17 +12396,17 @@ dependencies = [ [[package]] name = "sp-debug-derive" version = "5.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-externalities" version = "0.13.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "environmental", "parity-scale-codec", @@ -11427,32 +12414,15 @@ dependencies = [ "sp-storage", ] -[[package]] -name = "sp-finality-grandpa" -version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" -dependencies = [ - "finality-grandpa", - "log", - "parity-scale-codec", - "scale-info", - "serde", - "sp-api", - "sp-application-crypto", - "sp-core", - "sp-keystore", - "sp-runtime", - "sp-std", -] - [[package]] name = "sp-inherents" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "impl-trait-for-tuples", "parity-scale-codec", + "scale-info", "sp-core", "sp-runtime", "sp-std", @@ -11462,16 +12432,15 @@ dependencies = [ [[package]] name = "sp-io" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "bytes", + "ed25519", "ed25519-dalek", "futures", - "hash-db", "libsecp256k1", "log", "parity-scale-codec", - "parking_lot 0.12.1", "secp256k1", "sp-core", "sp-externalities", @@ -11481,7 +12450,6 @@ dependencies = [ "sp-std", "sp-tracing", "sp-trie", - "sp-wasm-interface", "tracing", "tracing-core", ] @@ -11489,7 +12457,7 @@ dependencies = [ [[package]] name = "sp-keyring" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "lazy_static", "sp-core", @@ -11500,7 +12468,7 @@ dependencies = [ [[package]] name = "sp-keystore" version = "0.13.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures", @@ -11517,7 +12485,7 @@ dependencies = [ [[package]] name = "sp-maybe-compressed-blob" version = "4.1.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "thiserror", "zstd", @@ -11526,7 +12494,7 @@ dependencies = [ [[package]] name = "sp-mmr-primitives" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "ckb-merkle-mountain-range", "log", @@ -11544,7 +12512,7 @@ dependencies = [ [[package]] name = "sp-npos-elections" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", @@ -11558,7 +12526,7 @@ dependencies = [ [[package]] name = "sp-offchain" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "sp-api", "sp-core", @@ -11568,7 +12536,7 @@ dependencies = [ [[package]] name = "sp-panic-handler" version = "5.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "backtrace", "lazy_static", @@ -11578,7 +12546,7 @@ dependencies = [ [[package]] name = "sp-rpc" version = "6.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "rustc-hash", "serde", @@ -11588,7 +12556,7 @@ dependencies = [ [[package]] name = "sp-runtime" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "either", "hash256-std-hasher", @@ -11597,7 +12565,7 @@ dependencies = [ "parity-scale-codec", "parity-util-mem", "paste", - "rand 0.7.3", + "rand 0.8.5", "scale-info", "serde", "sp-application-crypto", @@ -11611,7 +12579,7 @@ dependencies = [ [[package]] name = "sp-runtime-interface" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "bytes", "impl-trait-for-tuples", @@ -11629,19 +12597,19 @@ dependencies = [ [[package]] name = "sp-runtime-interface-proc-macro" version = "6.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "Inflector", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-serializer" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "serde", "serde_json", @@ -11650,7 +12618,7 @@ dependencies = [ [[package]] name = "sp-session" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", @@ -11664,7 +12632,7 @@ dependencies = [ [[package]] name = "sp-staking" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "scale-info", @@ -11676,14 +12644,13 @@ dependencies = [ [[package]] name = "sp-state-machine" version = "0.13.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "hash-db", + "hash-db 0.16.0", "log", - "num-traits", "parity-scale-codec", "parking_lot 0.12.1", - "rand 0.7.3", + "rand 0.8.5", "smallvec", "sp-core", "sp-externalities", @@ -11692,18 +12659,17 @@ dependencies = [ "sp-trie", "thiserror", "tracing", - "trie-root", ] [[package]] name = "sp-std" version = "5.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[package]] name = "sp-storage" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11716,13 +12682,12 @@ dependencies = [ [[package]] name = "sp-timestamp" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "futures-timer", "log", "parity-scale-codec", - "sp-api", "sp-inherents", "sp-runtime", "sp-std", @@ -11732,7 +12697,7 @@ dependencies = [ [[package]] name = "sp-tracing" version = "6.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "sp-std", @@ -11744,7 +12709,7 @@ dependencies = [ [[package]] name = "sp-transaction-pool" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "sp-api", "sp-runtime", @@ -11753,7 +12718,7 @@ dependencies = [ [[package]] name = "sp-transaction-storage-proof" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "log", @@ -11769,18 +12734,18 @@ dependencies = [ [[package]] name = "sp-trie" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "ahash", - "hash-db", - "hashbrown", + "ahash 0.8.3", + "hash-db 0.16.0", + "hashbrown 0.12.3", "lazy_static", - "lru", "memory-db", "nohash-hasher", "parity-scale-codec", "parking_lot 0.12.1", "scale-info", + "schnellru", "sp-core", "sp-std", "thiserror", @@ -11792,7 +12757,7 @@ dependencies = [ [[package]] name = "sp-ver" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "log", @@ -11810,7 +12775,7 @@ dependencies = [ [[package]] name = "sp-version" version = "5.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "impl-serde", "parity-scale-codec", @@ -11827,19 +12792,20 @@ dependencies = [ [[package]] name = "sp-version-proc-macro" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "parity-scale-codec", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "sp-wasm-interface" version = "7.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ + "anyhow", "impl-trait-for-tuples", "log", "parity-scale-codec", @@ -11851,9 +12817,8 @@ dependencies = [ [[package]] name = "sp-weights" version = "4.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "impl-trait-for-tuples", "parity-scale-codec", "scale-info", "serde", @@ -11872,9 +12837,9 @@ checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" [[package]] name = "spin" -version = "0.9.4" +version = "0.9.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6002a767bff9e83f8eeecf883ecb8011875a21ae8da43bffb817a57e78cc09" +checksum = "6980e8d7511241f8acf4aebddbb1ff938df5eebe98691418c4468d0b72a96a67" [[package]] name = "spki" @@ -11888,9 +12853,9 @@ dependencies = [ [[package]] name = "ss58-registry" -version = "1.36.0" +version = "1.40.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d92659e7d18d82b803824a9ba5a6022cff101c3491d027c1c1d8d30e749284" +checksum = "eb47a8ad42e5fc72d5b1eb104a5546937eaf39843499948bb666d6e93c62423b" dependencies = [ "Inflector", "num-format", @@ -11912,6 +12877,7 @@ name = "statemine-runtime" version = "2.0.0" dependencies = [ "asset-test-utils", + "assets-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -11929,9 +12895,9 @@ dependencies = [ "frame-system-rpc-runtime-api", "frame-try-runtime", "hex-literal", - "kusama-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "kusama-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "log", - "mangata-types", + "mangata-support", "pallet-asset-tx-payment", "pallet-assets", "pallet-aura", @@ -11939,6 +12905,8 @@ dependencies = [ "pallet-balances", "pallet-collator-selection", "pallet-multisig", + "pallet-nfts", + "pallet-nfts-runtime-api", "pallet-proxy", "pallet-session", "pallet-state-trie-migration", @@ -11948,7 +12916,7 @@ dependencies = [ "pallet-uniques", "pallet-utility", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "parachain-info", "parachains-common", "parity-scale-codec", @@ -11979,6 +12947,7 @@ name = "statemint-runtime" version = "1.0.0" dependencies = [ "asset-test-utils", + "assets-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -11997,7 +12966,7 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", - "mangata-types", + "mangata-support", "pallet-asset-tx-payment", "pallet-assets", "pallet-aura", @@ -12013,14 +12982,14 @@ dependencies = [ "pallet-uniques", "pallet-utility", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "parachain-info", "parachains-common", "parity-scale-codec", "polkadot-core-primitives", "polkadot-parachain", "polkadot-runtime-common", - "polkadot-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "polkadot-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "scale-info", "smallvec", "sp-api", @@ -12083,7 +13052,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -12096,20 +13065,7 @@ dependencies = [ "memchr", "proc-macro2", "quote", - "syn", -] - -[[package]] -name = "statrs" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05bdbb8e4e78216a85785a85d3ec3183144f98d0097b9281802c019bb07a6f05" -dependencies = [ - "approx", - "lazy_static", - "nalgebra", - "num-traits", - "rand 0.8.5", + "syn 1.0.109", ] [[package]] @@ -12137,7 +13093,26 @@ dependencies = [ "proc-macro2", "quote", "rustversion", - "syn", + "syn 1.0.109", +] + +[[package]] +name = "stun" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7e94b1ec00bad60e6410e058b52f1c66de3dc5fe4d62d09b3e52bb7d3b73e25" +dependencies = [ + "base64 0.13.1", + "crc", + "lazy_static", + "md-5", + "rand 0.8.5", + "ring", + "subtle", + "thiserror", + "tokio", + "url", + "webrtc-util", ] [[package]] @@ -12156,7 +13131,7 @@ dependencies = [ [[package]] name = "substrate-build-script-utils" version = "3.0.0" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "platforms 2.0.0", ] @@ -12164,17 +13139,15 @@ dependencies = [ [[package]] name = "substrate-frame-rpc-system" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "frame-system-rpc-runtime-api", "futures", "jsonrpsee", "log", "parity-scale-codec", - "sc-client-api", "sc-rpc-api", "sc-transaction-pool-api", - "serde_json", "sp-api", "sp-block-builder", "sp-blockchain", @@ -12185,9 +13158,8 @@ dependencies = [ [[package]] name = "substrate-prometheus-endpoint" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "futures-util", "hyper", "log", "prometheus", @@ -12198,7 +13170,7 @@ dependencies = [ [[package]] name = "substrate-rpc-client" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "async-trait", "jsonrpsee", @@ -12211,7 +13183,7 @@ dependencies = [ [[package]] name = "substrate-state-trie-migration-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "jsonrpsee", "log", @@ -12221,10 +13193,8 @@ dependencies = [ "scale-info", "serde", "sp-core", - "sp-io", "sp-runtime", "sp-state-machine", - "sp-std", "sp-trie", "trie-db", ] @@ -12232,7 +13202,7 @@ dependencies = [ [[package]] name = "substrate-test-client" version = "2.0.1" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "array-bytes 4.2.0", "async-trait", @@ -12258,7 +13228,7 @@ dependencies = [ [[package]] name = "substrate-test-utils" version = "4.0.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "futures", "substrate-test-utils-derive", @@ -12268,18 +13238,18 @@ dependencies = [ [[package]] name = "substrate-test-utils-derive" version = "0.10.0-dev" -source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.36#cb4f2491b00af7d7817f3a54209c26b20faa1f51" +source = "git+https://github.com/paritytech/substrate?branch=polkadot-v0.9.40#98f2e3451c9143278ec53c6718940aeabcd3b68a" dependencies = [ "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] name = "substrate-wasm-builder" version = "5.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "ansi_term", "build-helper", @@ -12288,11 +13258,20 @@ dependencies = [ "sp-maybe-compressed-blob", "strum", "tempfile", - "toml", + "toml 0.5.11", "walkdir", "wasm-opt", ] +[[package]] +name = "substring" +version = "1.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ee6433ecef213b2e72f587ef64a2f5943e7cd16fbd82dbe8bc07486c534c86" +dependencies = [ + "autocfg", +] + [[package]] name = "subtle" version = "2.4.1" @@ -12301,9 +13280,20 @@ checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" [[package]] name = "syn" -version = "1.0.107" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2", + "quote", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f4064b5b16e03ae50984a5a8ed5d4f8803e6bc1fd170a3cda91a1be4b18e3f5" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" dependencies = [ "proc-macro2", "quote", @@ -12318,7 +13308,7 @@ checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "unicode-xid", ] @@ -12351,43 +13341,42 @@ checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" [[package]] name = "target-lexicon" -version = "0.12.5" +version = "0.12.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9410d0f6853b1d94f0e519fb95df60f29d2c1eff2d921ffdf01a4c8a3b54f12d" +checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" [[package]] name = "tempfile" -version = "3.3.0" +version = "3.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5cdb1ef4eaeeaddc8fbd371e5017057064af0911902ef36b39801f67cc6d79e4" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" dependencies = [ "cfg-if", "fastrand", - "libc", - "redox_syscall", - "remove_dir_all", - "winapi", + "redox_syscall 0.3.5", + "rustix 0.37.19", + "windows-sys 0.45.0", ] [[package]] name = "termcolor" -version = "1.1.3" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "be55cf8942feac5c765c2c993422806843c9a9a45d4d5c407ad6dd2ea95eb9b6" dependencies = [ "winapi-util", ] [[package]] name = "termtree" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95059e91184749cb66be6dc994f67f182b6d897cb3df74a5bf66b5e709295fd8" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" [[package]] name = "test-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-support", "polkadot-primitives", @@ -12406,22 +13395,22 @@ checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" [[package]] name = "thiserror" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a9cd18aa97d5c45c6603caea1da6628790b37f7a34b6ca89522331c5180fed0" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" dependencies = [ "thiserror-impl", ] [[package]] name = "thiserror-impl" -version = "1.0.38" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb327af4685e4d03fa8cbcf1716380da910eeb2bb8be417e7f9fd3fb164f36f" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -12432,10 +13421,11 @@ checksum = "3bf63baf9f5039dadc247375c29eb13706706cfde997d0330d05aa63a77d8820" [[package]] name = "thread_local" -version = "1.1.4" +version = "1.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" dependencies = [ + "cfg-if", "once_cell", ] @@ -12474,12 +13464,11 @@ dependencies = [ [[package]] name = "tikv-jemalloc-sys" -version = "0.5.2+5.3.0-patched" +version = "0.5.3+5.3.0-patched" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec45c14da997d0925c7835883e4d5c181f196fa142f8c19d7643d1e9af2592c3" +checksum = "a678df20055b43e57ef8cddde41cdfda9a3c1a060b67f4c5836dfb1d78543ba8" dependencies = [ "cc", - "fs_extra", "libc", ] @@ -12494,19 +13483,46 @@ dependencies = [ "winapi", ] +[[package]] +name = "time" +version = "0.3.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3403384eaacbca9923fa06940178ac13e4edb725486d70e8e15881d0c836cc" +dependencies = [ + "itoa", + "serde", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7300fbefb4dadc1af235a9cef3737cea692a9d97e1b9cbcd4ebdae6f8868e6fb" + +[[package]] +name = "time-macros" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "372950940a5f07bf38dbe211d7283c9e6d7327df53794992d293e534c733d09b" +dependencies = [ + "time-core", +] + [[package]] name = "tiny-bip39" -version = "0.8.2" +version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc59cb9dfc85bb312c3a78fd6aa8a8582e310b0fa885d5bb877f6dcc601839d" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" dependencies = [ "anyhow", - "hmac 0.8.1", + "hmac 0.12.1", "once_cell", - "pbkdf2 0.4.0", - "rand 0.7.3", + "pbkdf2 0.11.0", + "rand 0.8.5", "rustc-hash", - "sha2 0.9.9", + "sha2 0.10.6", "thiserror", "unicode-normalization", "wasm-bindgen", @@ -12534,20 +13550,19 @@ dependencies = [ [[package]] name = "tinyvec_macros" -version = "0.1.0" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cda74da7e1a664f795bb1f8a87ec406fb89a02522cf6e50620d016add6dbbf5c" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.24.1" +version = "1.28.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d9f76183f91ecfb55e1d7d5602bd1d979e38a3a522fe900241cf195624d67ae" +checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" dependencies = [ "autocfg", "bytes", "libc", - "memchr", "mio", "num_cpus", "parking_lot 0.12.1", @@ -12555,18 +13570,18 @@ dependencies = [ "signal-hook-registry", "socket2", "tokio-macros", - "windows-sys 0.42.0", + "windows-sys 0.48.0", ] [[package]] name = "tokio-macros" -version = "1.8.2" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d266c00fde287f55d3f1c3e96c500c362a2b8c695076ec180f27918820bc6df8" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -12575,27 +13590,28 @@ version = "0.23.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" dependencies = [ - "rustls", + "rustls 0.20.8", "tokio", - "webpki", + "webpki 0.22.0", ] [[package]] name = "tokio-stream" -version = "0.1.11" +version = "0.1.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d660770404473ccd7bc9f8b28494a811bc18542b915c0855c51e8f419d5223ce" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" dependencies = [ "futures-core", "pin-project-lite 0.2.9", "tokio", + "tokio-util", ] [[package]] name = "tokio-util" -version = "0.7.4" +version = "0.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bb2e075f03b3d66d8d8785356224ba688d2906a371015e225beeb65ca92c740" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" dependencies = [ "bytes", "futures-core", @@ -12608,11 +13624,45 @@ dependencies = [ [[package]] name = "toml" -version = "0.5.10" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "serde", +] + +[[package]] +name = "toml" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b403acf6f2bb0859c93c7f0d967cb4a75a7ac552100f9322faf64dc047669b21" +dependencies = [ + "serde", + "serde_spanned", + "toml_datetime", + "toml_edit", +] + +[[package]] +name = "toml_datetime" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ab8ed2edee10b50132aed5f331333428b011c99402b5a534154ed15746f9622" +dependencies = [ + "serde", +] + +[[package]] +name = "toml_edit" +version = "0.19.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1333c76748e868a4d9d1017b5ab53171dfd095f70c712fdb4653a406547f598f" +checksum = "239410c8609e8125456927e6707163a3b1fdb40561e4b803bc041f466ccfdc13" dependencies = [ + "indexmap", "serde", + "serde_spanned", + "toml_datetime", + "winnow", ] [[package]] @@ -12671,13 +13721,13 @@ dependencies = [ [[package]] name = "tracing-attributes" -version = "0.1.23" +version = "0.1.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4017f8f45139870ca7e672686113917c71c7a6e02d4924eda67186083c03081a" +checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 2.0.15", ] [[package]] @@ -12702,8 +13752,8 @@ dependencies = [ [[package]] name = "tracing-gum" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "polkadot-node-jaeger", "polkadot-primitives", @@ -12713,14 +13763,14 @@ dependencies = [ [[package]] name = "tracing-gum-proc-macro" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "expander 0.0.6", "proc-macro-crate", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -12769,12 +13819,12 @@ dependencies = [ [[package]] name = "trie-db" -version = "0.24.0" +version = "0.27.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "004e1e8f92535694b4cb1444dc5a8073ecf0815e3357f729638b9f8fc4062908" +checksum = "767abe6ffed88a1889671a102c2861ae742726f52e0a5a425b92c9fbfa7e9c85" dependencies = [ - "hash-db", - "hashbrown", + "hash-db 0.16.0", + "hashbrown 0.13.2", "log", "rustc-hex", "smallvec", @@ -12782,11 +13832,11 @@ dependencies = [ [[package]] name = "trie-root" -version = "0.17.0" +version = "0.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a36c5ca3911ed3c9a5416ee6c679042064b93fc637ded67e25f92e68d783891" +checksum = "d4ed310ef5ab98f5fa467900ed906cb9232dd5376597e00fd4cba2a449d06c0b" dependencies = [ - "hash-db", + "hash-db 0.16.0", ] [[package]] @@ -12807,6 +13857,7 @@ dependencies = [ "lazy_static", "rand 0.8.5", "smallvec", + "socket2", "thiserror", "tinyvec", "tokio", @@ -12836,35 +13887,41 @@ dependencies = [ [[package]] name = "try-lock" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" [[package]] name = "try-runtime-cli" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ - "clap 4.0.32", + "async-trait", + "clap 4.2.7", "frame-remote-externalities", "frame-try-runtime", "hex", "log", "parity-scale-codec", - "sc-chain-spec", "sc-cli", "sc-executor", "sc-service", "serde", + "serde_json", "sp-api", + "sp-consensus-aura", + "sp-consensus-babe", "sp-core", "sp-debug-derive", "sp-externalities", + "sp-inherents", "sp-io", "sp-keystore", "sp-rpc", "sp-runtime", "sp-state-machine", + "sp-timestamp", + "sp-transaction-storage-proof", "sp-version", "sp-weights", "substrate-rpc-client", @@ -12877,6 +13934,25 @@ version = "1.0.9" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4f195fd851901624eee5a58c4bb2b4f06399148fcd0ed336e6f1cb60a9881df" +[[package]] +name = "turn" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4712ee30d123ec7ae26d1e1b218395a16c87cdbaf4b3925d170d684af62ea5e8" +dependencies = [ + "async-trait", + "base64 0.13.1", + "futures", + "log", + "md-5", + "rand 0.8.5", + "ring", + "stun", + "thiserror", + "tokio", + "webrtc-util", +] + [[package]] name = "twox-hash" version = "1.6.3" @@ -12915,15 +13991,15 @@ dependencies = [ [[package]] name = "unicode-bidi" -version = "0.3.8" +version = "0.3.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "099b7128301d285f79ddd55b9a83d5e6b9e97c92e0ea0daebee7263e932de992" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" [[package]] name = "unicode-ident" -version = "1.0.6" +version = "1.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84a22b9f218b40614adcb3f4ff08b703773ad44fa9423e4e0d346d5db86e4ebc" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" [[package]] name = "unicode-normalization" @@ -12952,7 +14028,17 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9f214e8f697e925001e66ec2c6e37a4ef93f0f78c2eed7814394e10c62025b05" dependencies = [ - "generic-array 0.14.6", + "generic-array 0.14.7", + "subtle", +] + +[[package]] +name = "universal-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +dependencies = [ + "crypto-common", "subtle", ] @@ -12986,21 +14072,26 @@ dependencies = [ ] [[package]] -name = "valuable" -version = "0.1.0" +name = "utf8parse" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" [[package]] -name = "value-bag" -version = "1.0.0-alpha.9" +name = "uuid" +version = "1.3.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2209b78d1249f7e6f3293657c9779fe31ced465df091bbd433a1cf88e916ec55" +checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" dependencies = [ - "ctor", - "version_check", + "getrandom 0.2.9", ] +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + [[package]] name = "vcpkg" version = "0.2.15" @@ -13010,7 +14101,7 @@ checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" [[package]] name = "ver-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" dependencies = [ "derive_more", "futures", @@ -13046,6 +14137,15 @@ dependencies = [ "libc", ] +[[package]] +name = "waitgroup" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1f50000a783467e6c0200f9d10642f4bc424e39efc1b770203e88b488f79292" +dependencies = [ + "atomic-waker", +] + [[package]] name = "waker-fn" version = "1.1.0" @@ -13054,12 +14154,11 @@ checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" [[package]] name = "walkdir" -version = "2.3.2" +version = "2.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "808cf2735cd4b6866113f648b791c6adc5714537bc222d9347bb203386ffda56" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" dependencies = [ "same-file", - "winapi", "winapi-util", ] @@ -13093,9 +14192,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" dependencies = [ "cfg-if", "wasm-bindgen-macro", @@ -13103,24 +14202,24 @@ dependencies = [ [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" dependencies = [ "bumpalo", "log", "once_cell", "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-futures" -version = "0.4.33" +version = "0.4.34" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23639446165ca5a5de86ae1d8896b737ae80319560fbaa4c2887b7da6e7ebd7d" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" dependencies = [ "cfg-if", "js-sys", @@ -13130,9 +14229,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -13140,22 +14239,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" dependencies = [ "proc-macro2", "quote", - "syn", + "syn 1.0.109", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.84" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" [[package]] name = "wasm-instrument" @@ -13177,9 +14276,9 @@ dependencies = [ [[package]] name = "wasm-opt" -version = "0.110.2" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b68e8037b4daf711393f4be2056246d12d975651b14d581520ad5d1f19219cec" +checksum = "84a303793cbc01fb96551badfc7367db6007396bba6bac97936b3c8b6f7fdb41" dependencies = [ "anyhow", "libc", @@ -13193,9 +14292,9 @@ dependencies = [ [[package]] name = "wasm-opt-cxx-sys" -version = "0.110.2" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91adbad477e97bba3fbd21dd7bfb594e7ad5ceb9169ab1c93ab9cb0ada636b6f" +checksum = "d9c9deb56f8a9f2ec177b3bd642a8205621835944ed5da55f2388ef216aca5a4" dependencies = [ "anyhow", "cxx", @@ -13205,9 +14304,9 @@ dependencies = [ [[package]] name = "wasm-opt-sys" -version = "0.110.2" +version = "0.111.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec4fa5a322a4e6ac22fd141f498d56afbdbf9df5debeac32380d2dcaa3e06941" +checksum = "4432e28b542738a9776cedf92e8a99d8991c7b4667ee2c7ccddfb479dd2856a7" dependencies = [ "anyhow", "cc", @@ -13248,7 +14347,7 @@ version = "0.20.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01bf50edb2ea9d922aa75a7bf3c15e26a6c9e2d18c56e862b49737a582901729" dependencies = [ - "spin 0.9.4", + "spin 0.9.8", "wasmi_arena", "wasmi_core 0.5.0", "wasmparser-nostd", @@ -13280,6 +14379,7 @@ dependencies = [ "memory_units", "num-rational", "num-traits", + "region", ] [[package]] @@ -13295,11 +14395,12 @@ dependencies = [ [[package]] name = "wasmparser" -version = "0.89.1" +version = "0.100.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5d3e08b13876f96dd55608d03cd4883a0545884932d5adf11925876c96daef" +checksum = "64b20236ab624147dfbb62cf12a19aaf66af0e41b8398838b66e997d07d269d4" dependencies = [ "indexmap", + "url", ] [[package]] @@ -13313,9 +14414,9 @@ dependencies = [ [[package]] name = "wasmtime" -version = "1.0.2" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ad5af6ba38311282f2a21670d96e78266e8c8e2f38cbcd52c254df6ccbc7731" +checksum = "76a222f5fa1e14b2cefc286f1b68494d7a965f4bf57ec04c59bb62673d639af6" dependencies = [ "anyhow", "bincode", @@ -13336,43 +14437,43 @@ dependencies = [ "wasmtime-environ", "wasmtime-jit", "wasmtime-runtime", - "windows-sys 0.36.1", + "windows-sys 0.42.0", ] [[package]] name = "wasmtime-asm-macros" -version = "1.0.2" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "45de63ddfc8b9223d1adc8f7b2ee5f35d1f6d112833934ad7ea66e4f4339e597" +checksum = "4407a7246e7d2f3d8fb1cf0c72fda8dbafdb6dd34d555ae8bea0e5ae031089cc" dependencies = [ "cfg-if", ] [[package]] name = "wasmtime-cache" -version = "1.0.2" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcd849399d17d2270141cfe47fa0d91ee52d5f8ea9b98cf7ddde0d53e5f79882" +checksum = "5ceb3adf61d654be0be67fffdce42447b0880481348785be5fe40b5dd7663a4c" dependencies = [ "anyhow", - "base64", + "base64 0.13.1", "bincode", "directories-next", "file-per-thread-logger", "log", - "rustix 0.35.13", + "rustix 0.36.13", "serde", - "sha2 0.9.9", - "toml", - "windows-sys 0.36.1", + "sha2 0.10.6", + "toml 0.5.11", + "windows-sys 0.42.0", "zstd", ] [[package]] name = "wasmtime-cranelift" -version = "1.0.2" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd91339b742ff20bfed4532a27b73c86b5bcbfedd6bea2dcdf2d64471e1b5c6" +checksum = "3c366bb8647e01fd08cb5589976284b00abfded5529b33d7e7f3f086c68304a4" dependencies = [ "anyhow", "cranelift-codegen", @@ -13391,9 +14492,9 @@ dependencies = [ [[package]] name = "wasmtime-environ" -version = "1.0.2" +version = "6.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebb881c61f4f627b5d45c54e629724974f8a8890d455bcbe634330cc27309644" +checksum = "47b8b50962eae38ee319f7b24900b7cf371f03eebdc17400c1dc8575fc10c9a7" dependencies = [ "anyhow", "cranelift-entity", @@ -13409,120 +14510,339 @@ dependencies = [ ] [[package]] -name = "wasmtime-jit" -version = "1.0.2" +name = "wasmtime-jit" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffaed4f9a234ba5225d8e64eac7b4a5d13b994aeb37353cde2cbeb3febda9eaa" +dependencies = [ + "addr2line 0.17.0", + "anyhow", + "bincode", + "cfg-if", + "cpp_demangle", + "gimli 0.26.2", + "log", + "object 0.29.0", + "rustc-demangle", + "serde", + "target-lexicon", + "wasmtime-environ", + "wasmtime-jit-debug", + "wasmtime-jit-icache-coherence", + "wasmtime-runtime", + "windows-sys 0.42.0", +] + +[[package]] +name = "wasmtime-jit-debug" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eed41cbcbf74ce3ff6f1d07d1b707888166dc408d1a880f651268f4f7c9194b2" +dependencies = [ + "object 0.29.0", + "once_cell", + "rustix 0.36.13", +] + +[[package]] +name = "wasmtime-jit-icache-coherence" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a28ae1e648461bfdbb79db3efdaee1bca5b940872e4175390f465593a2e54c" +dependencies = [ + "cfg-if", + "libc", + "windows-sys 0.42.0", +] + +[[package]] +name = "wasmtime-runtime" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e704b126e4252788ccfc3526d4d4511d4b23c521bf123e447ac726c14545217b" +dependencies = [ + "anyhow", + "cc", + "cfg-if", + "indexmap", + "libc", + "log", + "mach", + "memfd", + "memoffset 0.6.5", + "paste", + "rand 0.8.5", + "rustix 0.36.13", + "wasmtime-asm-macros", + "wasmtime-environ", + "wasmtime-jit-debug", + "windows-sys 0.42.0", +] + +[[package]] +name = "wasmtime-types" +version = "6.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83e5572c5727c1ee7e8f28717aaa8400e4d22dcbd714ea5457d85b5005206568" +dependencies = [ + "cranelift-entity", + "serde", + "thiserror", + "wasmparser", +] + +[[package]] +name = "web-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.21.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8e38c0608262c46d4a56202ebabdeb094cef7e560ca7a226c6bf055188aa4ea" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki 0.22.0", +] + +[[package]] +name = "webrtc" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2d3bc9049bdb2cea52f5fd4f6f728184225bdb867ed0dc2410eab6df5bdd67bb" +dependencies = [ + "arc-swap", + "async-trait", + "bytes", + "hex", + "interceptor", + "lazy_static", + "log", + "rand 0.8.5", + "rcgen 0.9.3", + "regex", + "ring", + "rtcp", + "rtp", + "rustls 0.19.1", + "sdp", + "serde", + "serde_json", + "sha2 0.10.6", + "stun", + "thiserror", + "time 0.3.21", + "tokio", + "turn", + "url", + "waitgroup", + "webrtc-data", + "webrtc-dtls", + "webrtc-ice", + "webrtc-mdns", + "webrtc-media", + "webrtc-sctp", + "webrtc-srtp", + "webrtc-util", +] + +[[package]] +name = "webrtc-data" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1985c628011fe26adf5e23a5301bdc79b245e0e338f14bb58b39e4e25e4d8681" +checksum = "0ef36a4d12baa6e842582fe9ec16a57184ba35e1a09308307b67d43ec8883100" dependencies = [ - "addr2line 0.17.0", - "anyhow", - "bincode", - "cfg-if", - "cpp_demangle", - "gimli 0.26.2", + "bytes", + "derive_builder", "log", - "object 0.29.0", - "rustc-demangle", - "rustix 0.35.13", - "serde", - "target-lexicon", "thiserror", - "wasmtime-environ", - "wasmtime-jit-debug", - "wasmtime-runtime", - "windows-sys 0.36.1", + "tokio", + "webrtc-sctp", + "webrtc-util", ] [[package]] -name = "wasmtime-jit-debug" -version = "1.0.2" +name = "webrtc-dtls" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f671b588486f5ccec8c5a3dba6b4c07eac2e66ab8c60e6f4e53717c77f709731" +checksum = "942be5bd85f072c3128396f6e5a9bfb93ca8c1939ded735d177b7bcba9a13d05" dependencies = [ - "object 0.29.0", - "once_cell", - "rustix 0.35.13", + "aes 0.6.0", + "aes-gcm 0.10.1", + "async-trait", + "bincode", + "block-modes", + "byteorder", + "ccm", + "curve25519-dalek 3.2.0", + "der-parser 8.2.0", + "elliptic-curve", + "hkdf", + "hmac 0.12.1", + "log", + "oid-registry 0.6.1", + "p256", + "p384", + "rand 0.8.5", + "rand_core 0.6.4", + "rcgen 0.9.3", + "ring", + "rustls 0.19.1", + "sec1", + "serde", + "sha1", + "sha2 0.10.6", + "signature", + "subtle", + "thiserror", + "tokio", + "webpki 0.21.4", + "webrtc-util", + "x25519-dalek 2.0.0-pre.1", + "x509-parser 0.13.2", ] [[package]] -name = "wasmtime-runtime" -version = "1.0.2" +name = "webrtc-ice" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee8f92ad4b61736339c29361da85769ebc200f184361959d1792832e592a1afd" +checksum = "465a03cc11e9a7d7b4f9f99870558fe37a102b65b93f8045392fef7c67b39e80" dependencies = [ - "anyhow", - "cc", - "cfg-if", - "indexmap", - "libc", + "arc-swap", + "async-trait", + "crc", "log", - "mach", - "memfd", - "memoffset 0.6.5", - "paste", "rand 0.8.5", - "rustix 0.35.13", + "serde", + "serde_json", + "stun", "thiserror", - "wasmtime-asm-macros", - "wasmtime-environ", - "wasmtime-jit-debug", - "windows-sys 0.36.1", + "tokio", + "turn", + "url", + "uuid", + "waitgroup", + "webrtc-mdns", + "webrtc-util", ] [[package]] -name = "wasmtime-types" -version = "1.0.2" +name = "webrtc-mdns" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d23d61cb4c46e837b431196dd06abb11731541021916d03476a178b54dc07aeb" +checksum = "f08dfd7a6e3987e255c4dbe710dde5d94d0f0574f8a21afa95d171376c143106" dependencies = [ - "cranelift-entity", - "serde", + "log", + "socket2", "thiserror", - "wasmparser", + "tokio", + "webrtc-util", ] [[package]] -name = "web-sys" -version = "0.3.60" +name = "webrtc-media" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "f72e1650a8ae006017d1a5280efb49e2610c19ccc3c0905b03b648aee9554991" dependencies = [ - "js-sys", - "wasm-bindgen", + "byteorder", + "bytes", + "rand 0.8.5", + "rtp", + "thiserror", ] [[package]] -name = "webpki" -version = "0.22.0" +name = "webrtc-sctp" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +checksum = "0d47adcd9427eb3ede33d5a7f3424038f63c965491beafcc20bc650a2f6679c0" dependencies = [ - "ring", - "untrusted", + "arc-swap", + "async-trait", + "bytes", + "crc", + "log", + "rand 0.8.5", + "thiserror", + "tokio", + "webrtc-util", ] [[package]] -name = "webpki-roots" -version = "0.22.6" +name = "webrtc-srtp" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +checksum = "6183edc4c1c6c0175f8812eefdce84dfa0aea9c3ece71c2bf6ddd3c964de3da5" dependencies = [ - "webpki", + "aead 0.4.3", + "aes 0.7.5", + "aes-gcm 0.9.4", + "async-trait", + "byteorder", + "bytes", + "ctr 0.8.0", + "hmac 0.11.0", + "log", + "rtcp", + "rtp", + "sha-1", + "subtle", + "thiserror", + "tokio", + "webrtc-util", ] [[package]] -name = "wepoll-ffi" -version = "0.1.2" +name = "webrtc-util" +version = "0.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d743fdedc5c64377b5fc2bc036b01c7fd642205a0d96356034ae3404d49eb7fb" +checksum = "93f1db1727772c05cf7a2cfece52c3aca8045ca1e176cd517d323489aa3c6d87" dependencies = [ + "async-trait", + "bitflags", + "bytes", "cc", + "ipnet", + "lazy_static", + "libc", + "log", + "nix 0.24.3", + "rand 0.8.5", + "thiserror", + "tokio", + "winapi", ] [[package]] name = "westend-runtime" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "bitvec", "frame-benchmarking", @@ -13566,6 +14886,8 @@ dependencies = [ "pallet-society", "pallet-staking", "pallet-staking-reward-curve", + "pallet-staking-runtime-api", + "pallet-state-trie-migration", "pallet-sudo", "pallet-timestamp", "pallet-transaction-payment", @@ -13574,7 +14896,7 @@ dependencies = [ "pallet-utility", "pallet-vesting", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "parity-scale-codec", "polkadot-parachain", "polkadot-primitives", @@ -13587,9 +14909,9 @@ dependencies = [ "smallvec", "sp-api", "sp-authority-discovery", - "sp-beefy", "sp-block-builder", "sp-consensus-babe", + "sp-consensus-beefy", "sp-core", "sp-inherents", "sp-io", @@ -13603,7 +14925,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder", - "westend-runtime-constants 0.9.36 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev)", + "westend-runtime-constants 0.9.40 (git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40)", "xcm", "xcm-builder", "xcm-executor", @@ -13611,8 +14933,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-support", "polkadot-primitives", @@ -13625,8 +14947,8 @@ dependencies = [ [[package]] name = "westend-runtime-constants" -version = "0.9.36" -source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.36#dc25abc712e42b9b51d87ad1168e453a42b5f0bc" +version = "0.9.40" +source = "git+https://github.com/paritytech/polkadot?branch=release-v0.9.40#95fe4c8862810bffd68343231a517e62689c05c0" dependencies = [ "frame-support", "polkadot-primitives", @@ -13642,6 +14964,7 @@ name = "westmint-runtime" version = "1.0.0" dependencies = [ "asset-test-utils", + "assets-common", "cumulus-pallet-aura-ext", "cumulus-pallet-dmp-queue", "cumulus-pallet-parachain-system", @@ -13660,7 +14983,7 @@ dependencies = [ "frame-try-runtime", "hex-literal", "log", - "mangata-types", + "mangata-support", "pallet-asset-tx-payment", "pallet-assets", "pallet-aura", @@ -13668,6 +14991,8 @@ dependencies = [ "pallet-balances", "pallet-collator-selection", "pallet-multisig", + "pallet-nfts", + "pallet-nfts-runtime-api", "pallet-proxy", "pallet-session", "pallet-timestamp", @@ -13676,7 +15001,7 @@ dependencies = [ "pallet-uniques", "pallet-utility", "pallet-xcm", - "pallet-xcm-benchmarks 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "pallet-xcm-benchmarks 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "parachain-info", "parachains-common", "parity-scale-codec", @@ -13697,7 +15022,7 @@ dependencies = [ "sp-transaction-pool", "sp-version", "substrate-wasm-builder", - "westend-runtime-constants 0.9.36 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.36)", + "westend-runtime-constants 0.9.40 (git+https://github.com/paritytech/polkadot?branch=release-v0.9.40)", "xcm", "xcm-builder", "xcm-executor", @@ -13705,15 +15030,25 @@ dependencies = [ [[package]] name = "which" -version = "4.3.0" +version = "4.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c831fbbee9e129a8cf93e7747a82da9d95ba8e16621cae60ec2cdc849bacb7b" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" dependencies = [ "either", "libc", "once_cell", ] +[[package]] +name = "wide" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b689b6c49d6549434bf944e6b0f39238cf63693cb7a147e9d887507fffa3b223" +dependencies = [ + "bytemuck", + "safe_arch", +] + [[package]] name = "widestring" version = "0.5.1" @@ -13765,16 +15100,12 @@ dependencies = [ ] [[package]] -name = "windows-sys" -version = "0.36.1" +name = "windows" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" dependencies = [ - "windows_aarch64_msvc 0.36.1", - "windows_i686_gnu 0.36.1", - "windows_i686_msvc 0.36.1", - "windows_x86_64_gnu 0.36.1", - "windows_x86_64_msvc 0.36.1", + "windows-targets 0.48.0", ] [[package]] @@ -13783,20 +15114,74 @@ version = "0.42.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" dependencies = [ - "windows_aarch64_gnullvm", - "windows_aarch64_msvc 0.42.0", - "windows_i686_gnu 0.42.0", - "windows_i686_msvc 0.42.0", - "windows_x86_64_gnu 0.42.0", - "windows_x86_64_gnullvm", - "windows_x86_64_msvc 0.42.0", + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", ] [[package]] name = "windows_aarch64_gnullvm" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d2aa71f6f0cbe00ae5167d90ef3cfe66527d6f613ca78ac8024c3ccab9a19e" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" [[package]] name = "windows_aarch64_msvc" @@ -13806,15 +15191,15 @@ checksum = "17cffbe740121affb56fad0fc0e421804adf0ae00891205213b5cecd30db881d" [[package]] name = "windows_aarch64_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" [[package]] name = "windows_aarch64_msvc" -version = "0.42.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dd0f252f5a35cac83d6311b2e795981f5ee6e67eb1f9a7f64eb4500fbc4dcdb4" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" [[package]] name = "windows_i686_gnu" @@ -13824,15 +15209,15 @@ checksum = "2564fde759adb79129d9b4f54be42b32c89970c18ebf93124ca8870a498688ed" [[package]] name = "windows_i686_gnu" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" [[package]] name = "windows_i686_gnu" -version = "0.42.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeae19f6716841636c28d695375df17562ca208b2b7d0dc47635a50ae6c5de7" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" [[package]] name = "windows_i686_msvc" @@ -13842,15 +15227,15 @@ checksum = "9cd9d32ba70453522332c14d38814bceeb747d80b3958676007acadd7e166956" [[package]] name = "windows_i686_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" [[package]] name = "windows_i686_msvc" -version = "0.42.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84c12f65daa39dd2babe6e442988fc329d6243fdce47d7d2d155b8d874862246" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" [[package]] name = "windows_x86_64_gnu" @@ -13860,21 +15245,27 @@ checksum = "cfce6deae227ee8d356d19effc141a509cc503dfd1f850622ec4b0f84428e1f4" [[package]] name = "windows_x86_64_gnu" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" [[package]] name = "windows_x86_64_gnu" -version = "0.42.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf7b1b21b5362cbc318f686150e5bcea75ecedc74dd157d874d754a2ca44b0ed" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" [[package]] name = "windows_x86_64_gnullvm" -version = "0.42.0" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d525d2ba30eeb3297665bd434a54297e4170c7f1a44cad4ef58095b4cd2028" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" [[package]] name = "windows_x86_64_msvc" @@ -13884,15 +15275,24 @@ checksum = "d19538ccc21819d01deaf88d6a17eae6596a12e9aafdbb97916fb49896d89de9" [[package]] name = "windows_x86_64_msvc" -version = "0.36.1" +version = "0.42.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" [[package]] name = "windows_x86_64_msvc" -version = "0.42.0" +version = "0.48.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f40009d85759725a34da6d89a94e63d7bdc50a862acf0dbc7c8e488f1edcb6f5" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winnow" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61de7bac303dc551fe038e2b3cef0f571087a47571ea6e79a87692ac99b99699" +dependencies = [ + "memchr", +] [[package]] name = "winreg" @@ -13923,27 +15323,78 @@ dependencies = [ "zeroize", ] +[[package]] +name = "x25519-dalek" +version = "2.0.0-pre.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5da623d8af10a62342bcbbb230e33e58a63255a58012f8653c578e54bab48df" +dependencies = [ + "curve25519-dalek 3.2.0", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "x509-parser" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9fb9bace5b5589ffead1afb76e43e34cff39cd0f3ce7e170ae0c29e53b88eb1c" +dependencies = [ + "asn1-rs 0.3.1", + "base64 0.13.1", + "data-encoding", + "der-parser 7.0.0", + "lazy_static", + "nom", + "oid-registry 0.4.0", + "ring", + "rusticata-macros", + "thiserror", + "time 0.3.21", +] + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs 0.5.2", + "base64 0.13.1", + "data-encoding", + "der-parser 8.2.0", + "lazy_static", + "nom", + "oid-registry 0.6.1", + "rusticata-macros", + "thiserror", + "time 0.3.21", +] + [[package]] name = "xcm" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ + "bounded-collections", "derivative", "impl-trait-for-tuples", "log", "parity-scale-codec", "scale-info", - "sp-runtime", + "serde", + "sp-weights", "xcm-procedural", ] [[package]] name = "xcm-builder" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "frame-support", "frame-system", + "impl-trait-for-tuples", "log", "pallet-transaction-payment", "parity-scale-codec", @@ -13959,9 +15410,10 @@ dependencies = [ [[package]] name = "xcm-executor" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ + "environmental", "frame-benchmarking", "frame-support", "impl-trait-for-tuples", @@ -13972,18 +15424,19 @@ dependencies = [ "sp-io", "sp-runtime", "sp-std", + "sp-weights", "xcm", ] [[package]] name = "xcm-procedural" -version = "0.9.36" -source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev#04f7ef19b393a34ba2311109648c88e8ce88c450" +version = "0.9.40" +source = "git+https://github.com/mangata-finance//polkadot?branch=mangata-dev-v0.9.40#27785293e4ed2358cf6ce0bdbdf508ea9ba5d441" dependencies = [ "Inflector", "proc-macro2", "quote", - "syn", + "syn 1.0.109", ] [[package]] @@ -14000,25 +15453,33 @@ dependencies = [ "static_assertions", ] +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time 0.3.21", +] + [[package]] name = "zeroize" -version = "1.5.7" +version = "1.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c394b5bd0c6f669e7275d9c20aa90ae064cb22e75a1cad54e1b34088034b149f" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" dependencies = [ "zeroize_derive", ] [[package]] name = "zeroize_derive" -version = "1.3.3" +version = "1.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44bf07cb3e50ea2003396695d58bf46bc9887a1f362260446fad6bc4e79bd36c" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" dependencies = [ "proc-macro2", "quote", - "syn", - "synstructure", + "syn 2.0.15", ] [[package]] @@ -14042,195 +15503,131 @@ dependencies = [ [[package]] name = "zstd-sys" -version = "2.0.4+zstd.1.5.2" +version = "2.0.8+zstd.1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fa202f2ef00074143e219d15b62ffc317d17cc33909feac471c044087cad7b0" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" dependencies = [ "cc", "libc", + "pkg-config", ] [[patch.unused]] name = "pallet-collective-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-sudo-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-utility-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "sc-basic-authorship-ver" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" - -[[patch.unused]] -name = "orml-asset-registry" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "orml-tokens" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "orml-traits" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "orml-unknown-tokens" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] -name = "orml-utilities" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "orml-xcm" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "orml-xcm-support" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "orml-xtokens" -version = "0.4.1-dev" -source = "git+https://github.com/mangata-finance//open-runtime-module-library?branch=mangata-dev#ba84c87dc39d8ff299e3dd3f5bd5636bef046a77" - -[[patch.unused]] -name = "mp-multipurpose-liquidity" -version = "0.1.0" -source = "git+https://github.com/mangata-finance//mangata-node?branch=feature/node-maintenance-mode#1b56b471c1014e29703c8698694ff1acedf17f86" - -[[patch.unused]] -name = "mp-traits" -version = "0.1.0" -source = "git+https://github.com/mangata-finance//mangata-node?branch=feature/node-maintenance-mode#1b56b471c1014e29703c8698694ff1acedf17f86" - -[[patch.unused]] -name = "pallet-issuance" -version = "2.0.0" -source = "git+https://github.com/mangata-finance//mangata-node?branch=feature/node-maintenance-mode#1b56b471c1014e29703c8698694ff1acedf17f86" - -[[patch.unused]] -name = "pallet-maintenance" -version = "0.1.0" -source = "git+https://github.com/mangata-finance//mangata-node?branch=feature/node-maintenance-mode#1b56b471c1014e29703c8698694ff1acedf17f86" - -[[patch.unused]] -name = "pallet-multipurpose-liquidity" -version = "0.1.0" -source = "git+https://github.com/mangata-finance//mangata-node?branch=feature/node-maintenance-mode#1b56b471c1014e29703c8698694ff1acedf17f86" - -[[patch.unused]] -name = "pallet-xyk" -version = "0.1.0" -source = "git+https://github.com/mangata-finance//mangata-node?branch=feature/node-maintenance-mode#1b56b471c1014e29703c8698694ff1acedf17f86" +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-collective-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-sudo-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-utility-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "sc-basic-authorship-ver" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] -name = "parachain-staking" -version = "3.0.0" -source = "git+https://github.com/mangata-finance//moonbeam?branch=mangata-dev#94a1c99f8803cbca3618e08f085a52d6b4dec2a5" +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-collective-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-sudo-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-utility-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata-rpc" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "pallet-vesting-mangata-rpc-runtime-api" version = "4.0.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] name = "sc-basic-authorship-ver" version = "0.10.0-dev" -source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev#8d5b532ef66f0f06be2e9b23c0f8ecf335440075" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" [[patch.unused]] -name = "pallet-crowdloan-rewards" -version = "0.6.0" -source = "git+https://github.com/mangata-finance//crowdloan-rewards?branch=mangata-dev#d9c94c030bab8674ac043a04d4e3951b729a87c9" +name = "sp-authorship" +version = "4.0.0-dev" +source = "git+https://github.com/mangata-finance//substrate?branch=mangata-dev-v0.9.40#df06b646b84576d0498ad5540ce65fd4e7613d45" diff --git a/Cargo.toml b/Cargo.toml index 0e08bc15343..9aa5aa692fb 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -35,11 +35,13 @@ members = [ "parachains/runtimes/testing/rococo-parachain", "parachains/runtimes/starters/shell", "parachains/runtimes/starters/seedling", + "parachains/runtimes/assets/common", "parachains/runtimes/assets/statemint", "parachains/runtimes/assets/statemine", "parachains/runtimes/assets/westmint", "parachains/runtimes/bridge-hubs/bridge-hub-rococo", "parachains/runtimes/bridge-hubs/bridge-hub-kusama", + "parachains/runtimes/bridge-hubs/bridge-hub-polkadot", "parachains/runtimes/collectives/collectives-polkadot", "parachains/runtimes/contracts/contracts-rococo", "parachains/runtimes/testing/penpal", @@ -59,33 +61,6 @@ inherits = "release" lto = true codegen-units = 1 -# patch generated by ./scripts/dev-0.9.29_manifest.sh -[patch."https://github.com/mangata-finance/open-runtime-module-library"] -orml-xcm = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-xcm-support = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-utilities = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-unknown-tokens = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-xtokens = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-traits = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-tokens = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -orml-asset-registry = { git = "https://github.com/mangata-finance//open-runtime-module-library", branch = "mangata-dev" } -# orml-xcm = { path = "../open-runtime-module-library/xcm" } -# orml-xcm-support = { path = "../open-runtime-module-library/xcm-support" } -# orml-utilities = { path = "../open-runtime-module-library/utilities" } -# orml-unknown-tokens = { path = "../open-runtime-module-library/unknown-tokens" } -# orml-xtokens = { path = "../open-runtime-module-library/xtokens" } -# orml-traits = { path = "../open-runtime-module-library/traits" } -# orml-tokens = { path = "../open-runtime-module-library/tokens" } -# orml-asset-registry = { path = "../open-runtime-module-library/asset-registry" } - -# patch generated by ./scripts/dev_manifest.sh -[patch."https://github.com/mangata-finance/moonbeam"] -parachain-staking = { git = "https://github.com/mangata-finance//moonbeam", branch = "mangata-dev" } - -[patch."https://github.com/mangata-finance/crowdloan-rewards"] -pallet-crowdloan-rewards = { git = "https://github.com/mangata-finance//crowdloan-rewards", branch = "mangata-dev" } -# pallet-crowdloan-rewards = { path = "../crowdloan-rewards" } - # # patch generated by ./scripts/dev_manifest.sh # [patch."https://github.com/paritytech/cumulus"] # cumulus-test-relay-sproof-builder = { git = "https://github.com/mangata-finance//cumulus", branch = "mangata-dev" } @@ -246,6 +221,9 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" # patch generated by ./scripts/dev-0.9.29_manifest.sh [patch."https://github.com/mangata-finance/substrate"] + sc-network-transactions = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sp-consensus-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sc-consensus-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mmr-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-nis = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mmr-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -290,7 +268,7 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-tips = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-election-provider-multi-phase = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-beefy-mmr = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-merkle-tree = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-merkle-tree = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-scheduler = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-multisig = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } frame-executive = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -319,10 +297,10 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-vesting = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-vesting-mangata = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-informant = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sc-finality-grandpa-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sc-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-gadget-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# sc-finality-grandpa-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# sc-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-gadget-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-wasmtime = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-common = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-wasmi = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -377,8 +355,8 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" sp-authorship = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-storage = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-std = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sp-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-primitives = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev", package = "sp-beefy" } +# sp-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-primitives = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev", package = "sp-beefy" } sp-version-proc-macro = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-version = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-transaction-pool = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -428,9 +406,13 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" mangata-types = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-utility-mangata = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mangata-support = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sp-consensus-beefy = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } # patch generated by ./scripts/dev-0.9.29_manifest.sh [patch."https://github.com/paritytech/substrate"] + sc-network-transactions = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sp-consensus-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sc-consensus-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mmr-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-nis = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mmr-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -476,7 +458,7 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-tips = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-election-provider-multi-phase = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-beefy-mmr = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-merkle-tree = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-merkle-tree = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-scheduler = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-multisig = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } frame-executive = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -506,10 +488,10 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-vesting-mangata = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-utility = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-informant = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sc-finality-grandpa-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sc-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-gadget-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# sc-finality-grandpa-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# sc-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-gadget-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-wasmtime = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-common = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-wasmi = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -564,8 +546,8 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" sp-authorship = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-storage = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-std = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sp-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-primitives = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev", package = "sp-beefy" } +# sp-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-primitives = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev", package = "sp-beefy" } sp-version-proc-macro = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-version = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-transaction-pool = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -614,8 +596,12 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-vesting-mangata-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-utility-mangata = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mangata-support = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sp-consensus-beefy = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } # patch generated by ./scripts/dev-0.9.29_manifest.sh [patch."https://github.com/PureStake/substrate"] + sc-network-transactions = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sp-consensus-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sc-consensus-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mmr-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-nis = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mmr-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -660,7 +646,7 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-tips = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-election-provider-multi-phase = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-beefy-mmr = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-merkle-tree = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-merkle-tree = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-scheduler = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-multisig = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } frame-executive = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -690,10 +676,10 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-vesting = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-vesting-mangata = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-informant = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sc-finality-grandpa-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sc-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-gadget-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# sc-finality-grandpa-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# sc-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-gadget-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-gadget = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-wasmtime = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-common = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sc-executor-wasmi = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -748,8 +734,8 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" sp-authorship = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-storage = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-std = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - sp-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } - beefy-primitives = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev", package = "sp-beefy" } +# sp-finality-grandpa = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } +# beefy-primitives = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev", package = "sp-beefy" } sp-version-proc-macro = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-version = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } sp-transaction-pool = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } @@ -798,59 +784,60 @@ polkadot-erasure-coding = { git = "https://github.com/mangata-finance//polkadot" pallet-vesting-mangata-rpc = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } pallet-utility-mangata = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } mangata-support = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } + sp-consensus-beefy = { git = "https://github.com/mangata-finance//substrate", branch = "mangata-dev" } -# patch generated by ./scripts/dev_manifest.sh -[patch."https://github.com/mangata-finance/cumulus"] -cumulus-relay-chain-minimal-node = { path = "../cumulus/client/relay-chain-minimal-node" } -cumulus-client-collator = { path = "../cumulus/client/collator" } -cumulus-relay-chain-rpc-interface = { path = "../cumulus/client/relay-chain-rpc-interface" } -cumulus-relay-chain-inprocess-interface = { path = "../cumulus/client/relay-chain-inprocess-interface" } -cumulus-client-consensus-common = { path = "../cumulus/client/consensus/common" } -cumulus-client-consensus-aura = { path = "../cumulus/client/consensus/aura" } -cumulus-client-cli = { path = "../cumulus/client/cli" } -cumulus-client-pov-recovery = { path = "../cumulus/client/pov-recovery" } -cumulus-client-network = { path = "../cumulus/client/network" } -cumulus-client-service = { path = "../cumulus/client/service" } -cumulus-relay-chain-interface = { path = "../cumulus/client/relay-chain-interface" } -cumulus-pallet-xcmp-queue = { path = "../cumulus/pallets/xcmp-queue" } -cumulus-pallet-aura-ext = { path = "../cumulus/pallets/aura-ext" } -cumulus-pallet-parachain-system-proc-macro = { path = "../cumulus/pallets/parachain-system/proc-macro" } -cumulus-pallet-parachain-system = { path = "../cumulus/pallets/parachain-system" } -cumulus-pallet-xcm = { path = "../cumulus/pallets/xcm" } -cumulus-pallet-dmp-queue = { path = "../cumulus/pallets/dmp-queue" } -cumulus-test-relay-sproof-builder = { path = "../cumulus/test/relay-sproof-builder" } -parachain-info = { path = "../cumulus/parachains/pallets/parachain-info" } -cumulus-primitives-utility = { path = "../cumulus/primitives/utility" } -cumulus-primitives-timestamp = { path = "../cumulus/primitives/timestamp" } -cumulus-primitives-core = { path = "../cumulus/primitives/core" } -cumulus-primitives-parachain-inherent = { path = "../cumulus/primitives/parachain-inherent" } +## patch generated by ./scripts/dev_manifest.sh +#[patch."https://github.com/mangata-finance/cumulus"] +#cumulus-relay-chain-minimal-node = { path = "../cumulus/client/relay-chain-minimal-node" } +#cumulus-client-collator = { path = "../cumulus/client/collator" } +#cumulus-relay-chain-rpc-interface = { path = "../cumulus/client/relay-chain-rpc-interface" } +#cumulus-relay-chain-inprocess-interface = { path = "../cumulus/client/relay-chain-inprocess-interface" } +#cumulus-client-consensus-common = { path = "../cumulus/client/consensus/common" } +#cumulus-client-consensus-aura = { path = "../cumulus/client/consensus/aura" } +#cumulus-client-cli = { path = "../cumulus/client/cli" } +#cumulus-client-pov-recovery = { path = "../cumulus/client/pov-recovery" } +#cumulus-client-network = { path = "../cumulus/client/network" } +#cumulus-client-service = { path = "../cumulus/client/service" } +#cumulus-relay-chain-interface = { path = "../cumulus/client/relay-chain-interface" } +#cumulus-pallet-xcmp-queue = { path = "../cumulus/pallets/xcmp-queue" } +#cumulus-pallet-aura-ext = { path = "../cumulus/pallets/aura-ext" } +#cumulus-pallet-parachain-system-proc-macro = { path = "../cumulus/pallets/parachain-system/proc-macro" } +#cumulus-pallet-parachain-system = { path = "../cumulus/pallets/parachain-system" } +#cumulus-pallet-xcm = { path = "../cumulus/pallets/xcm" } +#cumulus-pallet-dmp-queue = { path = "../cumulus/pallets/dmp-queue" } +#cumulus-test-relay-sproof-builder = { path = "../cumulus/test/relay-sproof-builder" } +#parachain-info = { path = "../cumulus/parachains/pallets/parachain-info" } +#cumulus-primitives-utility = { path = "../cumulus/primitives/utility" } +#cumulus-primitives-timestamp = { path = "../cumulus/primitives/timestamp" } +#cumulus-primitives-core = { path = "../cumulus/primitives/core" } +#cumulus-primitives-parachain-inherent = { path = "../cumulus/primitives/parachain-inherent" } -# patch generated by ./scripts/dev_manifest.sh -[patch."https://github.com/paritytech/cumulus"] -cumulus-relay-chain-minimal-node = { path = "../cumulus/client/relay-chain-minimal-node" } -cumulus-client-collator = { path = "../cumulus/client/collator" } -cumulus-relay-chain-rpc-interface = { path = "../cumulus/client/relay-chain-rpc-interface" } -cumulus-relay-chain-inprocess-interface = { path = "../cumulus/client/relay-chain-inprocess-interface" } -cumulus-client-consensus-common = { path = "../cumulus/client/consensus/common" } -cumulus-client-consensus-aura = { path = "../cumulus/client/consensus/aura" } -cumulus-client-cli = { path = "../cumulus/client/cli" } -cumulus-client-pov-recovery = { path = "../cumulus/client/pov-recovery" } -cumulus-client-network = { path = "../cumulus/client/network" } -cumulus-client-service = { path = "../cumulus/client/service" } -cumulus-relay-chain-interface = { path = "../cumulus/client/relay-chain-interface" } -cumulus-pallet-xcmp-queue = { path = "../cumulus/pallets/xcmp-queue" } -cumulus-pallet-aura-ext = { path = "../cumulus/pallets/aura-ext" } -cumulus-pallet-parachain-system-proc-macro = { path = "../cumulus/pallets/parachain-system/proc-macro" } -cumulus-pallet-parachain-system = { path = "../cumulus/pallets/parachain-system" } -cumulus-pallet-xcm = { path = "../cumulus/pallets/xcm" } -cumulus-pallet-dmp-queue = { path = "../cumulus/pallets/dmp-queue" } -cumulus-test-relay-sproof-builder = { path = "../cumulus/test/relay-sproof-builder" } -parachain-info = { path = "../cumulus/parachains/pallets/parachain-info" } -cumulus-primitives-utility = { path = "../cumulus/primitives/utility" } -cumulus-primitives-timestamp = { path = "../cumulus/primitives/timestamp" } -cumulus-primitives-core = { path = "../cumulus/primitives/core" } -cumulus-primitives-parachain-inherent = { path = "../cumulus/primitives/parachain-inherent" } +## patch generated by ./scripts/dev_manifest.sh +#[patch."https://github.com/paritytech/cumulus"] +#cumulus-relay-chain-minimal-node = { path = "../cumulus/client/relay-chain-minimal-node" } +#cumulus-client-collator = { path = "../cumulus/client/collator" } +#cumulus-relay-chain-rpc-interface = { path = "../cumulus/client/relay-chain-rpc-interface" } +#cumulus-relay-chain-inprocess-interface = { path = "../cumulus/client/relay-chain-inprocess-interface" } +#cumulus-client-consensus-common = { path = "../cumulus/client/consensus/common" } +#cumulus-client-consensus-aura = { path = "../cumulus/client/consensus/aura" } +#cumulus-client-cli = { path = "../cumulus/client/cli" } +#cumulus-client-pov-recovery = { path = "../cumulus/client/pov-recovery" } +#cumulus-client-network = { path = "../cumulus/client/network" } +#cumulus-client-service = { path = "../cumulus/client/service" } +#cumulus-relay-chain-interface = { path = "../cumulus/client/relay-chain-interface" } +#cumulus-pallet-xcmp-queue = { path = "../cumulus/pallets/xcmp-queue" } +#cumulus-pallet-aura-ext = { path = "../cumulus/pallets/aura-ext" } +#cumulus-pallet-parachain-system-proc-macro = { path = "../cumulus/pallets/parachain-system/proc-macro" } +#cumulus-pallet-parachain-system = { path = "../cumulus/pallets/parachain-system" } +#cumulus-pallet-xcm = { path = "../cumulus/pallets/xcm" } +#cumulus-pallet-dmp-queue = { path = "../cumulus/pallets/dmp-queue" } +#cumulus-test-relay-sproof-builder = { path = "../cumulus/test/relay-sproof-builder" } +#parachain-info = { path = "../cumulus/parachains/pallets/parachain-info" } +#cumulus-primitives-utility = { path = "../cumulus/primitives/utility" } +#cumulus-primitives-timestamp = { path = "../cumulus/primitives/timestamp" } +#cumulus-primitives-core = { path = "../cumulus/primitives/core" } +#cumulus-primitives-parachain-inherent = { path = "../cumulus/primitives/parachain-inherent" } # # patch generated by ./scripts/dev_manifest.sh # [patch."https://github.com/mangata-finance/substrate"] diff --git a/README.md b/README.md index 314b71e8699..d1828eafce1 100644 --- a/README.md +++ b/README.md @@ -37,20 +37,71 @@ and treat as best. A Polkadot [collator](https://wiki.polkadot.network/docs/en/learn-collator) for the parachain is implemented by the `polkadot-parachain` binary (previously called `polkadot-collator`). +### Relay Chain Interaction +To operate a parachain node, a connection to the corresponding relay chain is necessary. This can be +achieved in one of two ways: +1. Run a full relay chain node within the parachain node (default) +2. Connect to an external relay chain node via WebSocket RPC + +#### In-process Relay Chain Node +If an external relay chain node is not specified (default behavior), then a full relay chain node is +spawned within the same process. + +This node has all of the typical components of a regular Polkadot node and will have to fully sync +with the relay chain to work. + +##### Example command +```shell= +polkadot-parachain \ + --chain parachain-chainspec.json \ + --tmp \ + -- \ + --chain relaychain-chainspec.json +``` + +#### External Relay Chain Node +An external relay chain node is connected via WebsSocket RPC by using the `--relay-chain-rpc-urls` +command line argument. This option accepts one or more space-separated WebSocket URLs to a full relay +chain node. By default, only the first URL will be used, with the rest as a backup in case the +connection to the first node is lost. + +Parachain nodes using this feature won't have to fully sync with the relay chain to work, so in general +they will use fewer system resources. + +**Note:** At this time, any parachain nodes using this feature will still spawn a significantly cut-down +relay chain node in-process. Even though they lack the majority of normal Polkadot subsystems, they +will still need to connect directly to the relay chain network. +##### Example command +```shell= +polkadot-parachain \ + --chain parachain-chainspec.json \ + --tmp \ + --relay-chain-rpc-urls \ + "ws://relaychain-rpc-endpoint:9944" \ + "ws://relaychain-rpc-endpoint-backup:9944" \ + -- \ + --chain relaychain-chainspec.json +``` + ## Installation and Setup -Before building Cumulus SDK based nodes / runtimes prepare your environment by following Substrate [installation instructions](https://docs.substrate.io/main-docs/install/). +Before building Cumulus SDK based nodes / runtimes prepare your environment by following Substrate +[installation instructions](https://docs.substrate.io/main-docs/install/). -To launch a local network, you can use [zombienet](https://github.com/paritytech/zombienet) for quick setup and experimentation or follow the [manual setup](#manual-setup). +To launch a local network, you can use [zombienet](https://github.com/paritytech/zombienet) for +quick setup and experimentation or follow the [manual setup](#manual-setup). ### Zombienet -We use Zombienet to spin up networks for integration tests and local networks. Follow [these installation steps](https://github.com/paritytech/zombienet#requirements-by-provider) to set it up on your machine. -A simple network specification with two relay chain nodes and one collator is located at [zombienet/examples/small_network.toml](zombienet/examples/small_network.toml). +We use Zombienet to spin up networks for integration tests and local networks. +Follow [these installation steps](https://github.com/paritytech/zombienet#requirements-by-provider) +to set it up on your machine. A simple network specification with two relay chain nodes and one collator is +located at [zombienet/examples/small_network.toml](zombienet/examples/small_network.toml). #### Which provider should I use? Zombienet offers multiple providers to run networks. Choose the one that best fits your needs: - **Podman:** Choose this if you want to spin up a network quick and easy. -- **Native:** Choose this if you want to develop and deploy your changes. Requires compilation of the binaries. +- **Native:** Choose this if you want to develop and deploy your changes. Requires compilation +of the binaries. - **Kubernetes:** Choose this for advanced use-cases or running on cloud-infrastructure. #### How to run @@ -120,7 +171,7 @@ cargo build --release --bin polkadot-parachain This repository also contains the Statemint runtime (as well as the canary runtime Statemine and the test runtime Westmint). -Statemint is a common good parachain providing an asset store for the Polkadot ecosystem. +Statemint is a system parachain providing an asset store for the Polkadot ecosystem. ### Build & Launch a Node @@ -150,7 +201,12 @@ See [the `bridge-hubs` readme](parachains/runtimes/bridge-hubs/README.md) for de ## Rococo 👑 -[Rococo](https://polkadot.js.org/apps/?rpc=wss://rococo-rpc.polkadot.io) is becoming a [Community Parachain Testbed](https://polkadot.network/blog/rococo-revamp-becoming-a-community-parachain-testbed/) for parachain teams in the Polkadot ecosystem. It supports multiple parachains with the differentiation of long-term connections and recurring short-term connections, to see which parachains are currently connected and how long they will be connected for [see here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-rpc.polkadot.io#/parachains). +[Rococo](https://polkadot.js.org/apps/?rpc=wss://rococo-rpc.polkadot.io) is becoming a +[Community Parachain Testbed](https://polkadot.network/blog/rococo-revamp-becoming-a-community-parachain-testbed/) +for parachain teams in the Polkadot ecosystem. It supports multiple parachains with the +differentiation of long-term connections and recurring short-term connections, to see which +parachains are currently connected and how long they will be connected for +[see here](https://polkadot.js.org/apps/?rpc=wss%3A%2F%2Frococo-rpc.polkadot.io#/parachains). Rococo is an elaborate style of design and the name describes the painstaking effort that has gone into this project. diff --git a/client/cli/Cargo.toml b/client/cli/Cargo.toml index 5bce47545c8..4c6a21eb678 100644 --- a/client/cli/Cargo.toml +++ b/client/cli/Cargo.toml @@ -5,13 +5,13 @@ authors = ["Parity Technologies "] edition = "2021" [dependencies] -clap = { version = "4.0.29", features = ["derive"] } +clap = { version = "4.1.8", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.0.0" } url = "2.3.1" # Substrate -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } diff --git a/client/collator/Cargo.toml b/client/collator/Cargo.toml index 259736b7703..a2cfc8f87a3 100644 --- a/client/collator/Cargo.toml +++ b/client/collator/Cargo.toml @@ -11,17 +11,17 @@ parking_lot = "0.12.0" tracing = "0.1.25" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-client-consensus-common = { path = "../consensus/common" } @@ -32,12 +32,12 @@ cumulus-primitives-core = { path = "../../primitives/core" } async-trait = "0.1.42" # Substrate -sp-maybe-compressed-blob = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-maybe-compressed-blob = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-node-subsystem-test-helpers = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-node-subsystem-test-helpers = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-test-client = { path = "../../test/client" } diff --git a/client/collator/src/lib.rs b/client/collator/src/lib.rs index 80650ff72e1..a931201f6cc 100644 --- a/client/collator/src/lib.rs +++ b/client/collator/src/lib.rs @@ -26,10 +26,7 @@ use sc_client_api::BlockBackend; use sp_api::{ApiExt, ProvideRuntimeApi}; use sp_consensus::BlockStatus; use sp_core::traits::SpawnNamed; -use sp_runtime::{ - generic::BlockId, - traits::{Block as BlockT, HashFor, Header as HeaderT, Zero}, -}; +use sp_runtime::traits::{Block as BlockT, HashFor, Header as HeaderT, Zero}; use cumulus_client_consensus_common::ParachainConsensus; use polkadot_node_primitives::{ @@ -37,7 +34,7 @@ use polkadot_node_primitives::{ }; use polkadot_node_subsystem::messages::{CollationGenerationMessage, CollatorProtocolMessage}; use polkadot_overseer::Handle as OverseerHandle; -use polkadot_primitives::v2::{CollatorPair, Id as ParaId}; +use polkadot_primitives::{CollatorPair, Id as ParaId}; use codec::{Decode, Encode}; use futures::{channel::oneshot, FutureExt}; @@ -91,7 +88,7 @@ where /// /// Returns `true` if the block could be found and is good to be build on. fn check_block_status(&self, hash: Block::Hash, header: &Block::Header) -> bool { - match self.block_status.block_status(&BlockId::Hash(hash)) { + match self.block_status.block_status(hash) { Ok(BlockStatus::Queued) => { tracing::debug!( target: LOG_TARGET, @@ -154,10 +151,9 @@ where header: &Block::Header, ) -> Result, sp_api::ApiError> { let runtime_api = self.runtime_api.runtime_api(); - let block_id = BlockId::Hash(block_hash); let api_version = - match runtime_api.api_version::>(&block_id)? { + match runtime_api.api_version::>(block_hash)? { Some(version) => version, None => { tracing::error!( @@ -171,10 +167,10 @@ where let collation_info = if api_version < 2 { #[allow(deprecated)] runtime_api - .collect_collation_info_before_version_2(&block_id)? + .collect_collation_info_before_version_2(block_hash)? .into_latest(header.encode().into()) } else { - runtime_api.collect_collation_info(&block_id, header)? + runtime_api.collect_collation_info(block_hash, header)? }; Ok(Some(collation_info)) @@ -198,11 +194,34 @@ where .ok() .flatten()?; + let upward_messages = collation_info + .upward_messages + .try_into() + .map_err(|e| { + tracing::error!( + target: LOG_TARGET, + error = ?e, + "Number of upward messages should not be greater than `MAX_UPWARD_MESSAGE_NUM`", + ) + }) + .ok()?; + let horizontal_messages = collation_info + .horizontal_messages + .try_into() + .map_err(|e| { + tracing::error!( + target: LOG_TARGET, + error = ?e, + "Number of horizontal messages should not be greater than `MAX_HORIZONTAL_MESSAGE_NUM`", + ) + }) + .ok()?; + Some(Collation { - upward_messages: collation_info.upward_messages, + upward_messages, new_validation_code: collation_info.new_validation_code, processed_downward_messages: collation_info.processed_downward_messages, - horizontal_messages: collation_info.horizontal_messages, + horizontal_messages, hrmp_watermark: collation_info.hrmp_watermark, head_data: collation_info.head_data, proof_of_validity: MaybeCompressedPoV::Compressed(pov), @@ -396,9 +415,8 @@ mod tests { _: PHash, validation_data: &PersistedValidationData, ) -> Option> { - let block_id = BlockId::Hash(parent.hash()); let builder = self.client.init_block_builder_at( - &block_id, + parent.hash(), Some(validation_data.clone()), Default::default(), ); @@ -422,7 +440,7 @@ mod tests { let para_id = ParaId::from(100); let announce_block = |_, _| (); let client = Arc::new(TestClientBuilder::new().build()); - let header = client.header(&BlockId::Number(0)).unwrap().unwrap(); + let header = client.header(client.chain_info().genesis_hash).unwrap().unwrap(); let (sub_tx, sub_rx) = mpsc::channel(64); diff --git a/client/consensus/aura/Cargo.toml b/client/consensus/aura/Cargo.toml index ad0da6230ab..7879418ef07 100644 --- a/client/consensus/aura/Cargo.toml +++ b/client/consensus/aura/Cargo.toml @@ -6,28 +6,28 @@ authors = ["Parity Technologies "] edition = "2021" [dependencies] -async-trait = "0.1.59" +async-trait = "0.1.66" codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ] } -futures = "0.3.25" +futures = "0.3.26" tracing = "0.1.37" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus-slots = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Cumulus cumulus-client-consensus-common = { path = "../common" } diff --git a/client/consensus/aura/src/lib.rs b/client/consensus/aura/src/lib.rs index 965f8fe3baa..6bc78c4fc98 100644 --- a/client/consensus/aura/src/lib.rs +++ b/client/consensus/aura/src/lib.rs @@ -26,7 +26,7 @@ use codec::{Decode, Encode}; use cumulus_client_consensus_common::{ ParachainBlockImportMarker, ParachainCandidate, ParachainConsensus, }; -use cumulus_primitives_core::{relay_chain::v2::Hash as PHash, PersistedValidationData}; +use cumulus_primitives_core::{relay_chain::Hash as PHash, PersistedValidationData}; use futures::lock::Mutex; use sc_client_api::{backend::AuxStore, BlockOf}; diff --git a/client/consensus/common/Cargo.toml b/client/consensus/common/Cargo.toml index a17a6b1f18a..9a66a00ec53 100644 --- a/client/consensus/common/Cargo.toml +++ b/client/consensus/common/Cargo.toml @@ -6,34 +6,35 @@ authors = ["Parity Technologies "] edition = "2021" [dependencies] -async-trait = "0.1.59" +async-trait = "0.1.66" codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ] } -dyn-clone = "1.0.10" -futures = "0.3.25" +dyn-clone = "1.0.11" +futures = "0.3.26" log = "0.4.17" tracing = "0.1.37" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../../primitives/core" } cumulus-relay-chain-interface = { path = "../../relay-chain-interface" } cumulus-client-pov-recovery = { path = "../../pov-recovery" } +schnellru = "0.2.1" [dev-dependencies] futures-timer = "3.0.2" # Substrate -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Cumulus cumulus-test-client = { path = "../../../test/client" } diff --git a/client/consensus/common/src/lib.rs b/client/consensus/common/src/lib.rs index 39119f345c2..86a781adc01 100644 --- a/client/consensus/common/src/lib.rs +++ b/client/consensus/common/src/lib.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use polkadot_primitives::v2::{Hash as PHash, PersistedValidationData}; +use polkadot_primitives::{Hash as PHash, PersistedValidationData}; use sc_client_api::Backend; use sc_consensus::{shared_data::SharedData, BlockImport, ImportResult}; @@ -140,7 +140,6 @@ where async fn import_block( &mut self, mut params: sc_consensus::BlockImportParams, - cache: std::collections::HashMap>, ) -> Result { // Blocks are stored within the backend by using POST hash. let hash = params.post_hash(); @@ -158,7 +157,7 @@ where monitor.release_mutex() }); - let res = self.inner.import_block(params, cache).await?; + let res = self.inner.import_block(params).await?; if let (Some(mut monitor_lock), ImportResult::Imported(_)) = (maybe_lock, &res) { let mut monitor = monitor_lock.upgrade(); diff --git a/client/consensus/common/src/parachain_consensus.rs b/client/consensus/common/src/parachain_consensus.rs index ffbbab5a200..734f682d25b 100644 --- a/client/consensus/common/src/parachain_consensus.rs +++ b/client/consensus/common/src/parachain_consensus.rs @@ -14,58 +14,76 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use async_trait::async_trait; use sc_client_api::{ Backend, BlockBackend, BlockImportNotification, BlockchainEvents, Finalizer, UsageProvider, }; use sc_consensus::{BlockImport, BlockImportParams, ForkChoiceStrategy}; +use schnellru::{ByLength, LruMap}; use sp_blockchain::Error as ClientError; use sp_consensus::{BlockOrigin, BlockStatus}; -use sp_runtime::{ - generic::BlockId, - traits::{Block as BlockT, Header as HeaderT}, -}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; -use cumulus_client_pov_recovery::{RecoveryDelay, RecoveryKind, RecoveryRequest}; +use cumulus_client_pov_recovery::{RecoveryKind, RecoveryRequest}; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; -use polkadot_primitives::v2::{Hash as PHash, Id as ParaId, OccupiedCoreAssumption}; +use polkadot_primitives::{Hash as PHash, Id as ParaId, OccupiedCoreAssumption}; use codec::Decode; -use futures::{channel::mpsc::Sender, select, FutureExt, Stream, StreamExt}; +use futures::{channel::mpsc::Sender, pin_mut, select, FutureExt, Stream, StreamExt}; -use std::{pin::Pin, sync::Arc, time::Duration}; +use std::sync::Arc; const LOG_TARGET: &str = "cumulus-consensus"; +const FINALIZATION_CACHE_SIZE: u32 = 40; -// Delay range to trigger explicit requests. -// The chosen value doesn't have any special meaning, a random delay within the order of -// seconds in practice should be a good enough to allow a quick recovery without DOSing -// the relay chain. -const RECOVERY_DELAY: RecoveryDelay = - RecoveryDelay { min: Duration::ZERO, max: Duration::from_secs(30) }; - -/// Helper for the relay chain client. This is expected to be a lightweight handle like an `Arc`. -#[async_trait] -pub trait RelaychainClient: Clone + 'static { - /// The error type for interacting with the Polkadot client. - type Error: std::fmt::Debug + Send; - - /// A stream that yields head-data for a parachain. - type HeadStream: Stream> + Send + Unpin; - - /// Get a stream of new best heads for the given parachain. - async fn new_best_heads(&self, para_id: ParaId) -> RelayChainResult; - - /// Get a stream of finalized heads for the given parachain. - async fn finalized_heads(&self, para_id: ParaId) -> RelayChainResult; - - /// Returns the parachain head for the given `para_id` at the given block id. - async fn parachain_head_at( - &self, - at: PHash, - para_id: ParaId, - ) -> RelayChainResult>>; +fn handle_new_finalized_head( + parachain: &Arc

, + finalized_head: Vec, + last_seen_finalized_hashes: &mut LruMap, +) where + Block: BlockT, + B: Backend, + P: Finalizer + UsageProvider + BlockchainEvents, +{ + let header = match Block::Header::decode(&mut &finalized_head[..]) { + Ok(header) => header, + Err(err) => { + tracing::debug!( + target: LOG_TARGET, + error = ?err, + "Could not decode parachain header while following finalized heads.", + ); + return + }, + }; + + let hash = header.hash(); + + last_seen_finalized_hashes.insert(hash, ()); + + // Only finalize if we are below the incoming finalized parachain head + if parachain.usage_info().chain.finalized_number < *header.number() { + tracing::debug!( + target: LOG_TARGET, + block_hash = ?hash, + "Attempting to finalize header.", + ); + if let Err(e) = parachain.finalize_block(hash, None, true) { + match e { + ClientError::UnknownBlock(_) => tracing::debug!( + target: LOG_TARGET, + block_hash = ?hash, + "Could not finalize block because it is unknown.", + ), + _ => tracing::warn!( + target: LOG_TARGET, + error = ?e, + block_hash = ?hash, + "Failed to finalize block", + ), + } + } + } } /// Follow the finalized head of the given parachain. @@ -75,55 +93,75 @@ pub trait RelaychainClient: Clone + 'static { async fn follow_finalized_head(para_id: ParaId, parachain: Arc

, relay_chain: R) where Block: BlockT, - P: Finalizer + UsageProvider, - R: RelaychainClient, + P: Finalizer + UsageProvider + BlockchainEvents, + R: RelayChainInterface + Clone, B: Backend, { - let mut finalized_heads = match relay_chain.finalized_heads(para_id).await { - Ok(finalized_heads_stream) => finalized_heads_stream, + let finalized_heads = match finalized_heads(relay_chain, para_id).await { + Ok(finalized_heads_stream) => finalized_heads_stream.fuse(), Err(err) => { tracing::error!(target: LOG_TARGET, error = ?err, "Unable to retrieve finalized heads stream."); return }, }; - loop { - let finalized_head = if let Some(h) = finalized_heads.next().await { - h - } else { - tracing::debug!(target: LOG_TARGET, "Stopping following finalized head."); - return - }; + let mut imported_blocks = parachain.import_notification_stream().fuse(); - let header = match Block::Header::decode(&mut &finalized_head[..]) { - Ok(header) => header, - Err(err) => { - tracing::debug!( - target: LOG_TARGET, - error = ?err, - "Could not decode parachain header while following finalized heads.", - ); - continue + pin_mut!(finalized_heads); + + // We use this cache to finalize blocks that are imported late. + // For example, a block that has been recovered via PoV-Recovery + // on a full node can have several minutes delay. With this cache + // we have some "memory" of recently finalized blocks. + let mut last_seen_finalized_hashes = LruMap::new(ByLength::new(FINALIZATION_CACHE_SIZE)); + + loop { + select! { + fin = finalized_heads.next() => { + match fin { + Some(finalized_head) => + handle_new_finalized_head(¶chain, finalized_head, &mut last_seen_finalized_hashes), + None => { + tracing::debug!(target: LOG_TARGET, "Stopping following finalized head."); + return + } + } }, - }; - - let hash = header.hash(); - - // don't finalize the same block multiple times. - if parachain.usage_info().chain.finalized_hash != hash { - if let Err(e) = parachain.finalize_block(hash, None, true) { - match e { - ClientError::UnknownBlock(_) => tracing::debug!( - target: LOG_TARGET, - block_hash = ?hash, - "Could not finalize block because it is unknown.", - ), - _ => tracing::warn!( - target: LOG_TARGET, - error = ?e, - block_hash = ?hash, - "Failed to finalize block", - ), + imported = imported_blocks.next() => { + match imported { + Some(imported_block) => { + // When we see a block import that is already finalized, we immediately finalize it. + if last_seen_finalized_hashes.peek(&imported_block.hash).is_some() { + tracing::debug!( + target: LOG_TARGET, + block_hash = ?imported_block.hash, + "Setting newly imported block as finalized.", + ); + + if let Err(e) = parachain.finalize_block(imported_block.hash, None, true) { + match e { + ClientError::UnknownBlock(_) => tracing::debug!( + target: LOG_TARGET, + block_hash = ?imported_block.hash, + "Could not finalize block because it is unknown.", + ), + _ => tracing::warn!( + target: LOG_TARGET, + error = ?e, + block_hash = ?imported_block.hash, + "Failed to finalize block", + ), + } + } + } + }, + None => { + tracing::debug!( + target: LOG_TARGET, + "Stopping following imported blocks.", + ); + return + } } } } @@ -155,7 +193,7 @@ pub async fn run_parachain_consensus( + BlockBackend + BlockchainEvents, for<'a> &'a P: BlockImport, - R: RelaychainClient, + R: RelayChainInterface + Clone, B: Backend, { let follow_new_best = follow_new_best( @@ -178,7 +216,7 @@ async fn follow_new_best( parachain: Arc

, relay_chain: R, announce_block: Arc>) + Send + Sync>, - recovery_chan_tx: Option>>, + mut recovery_chan_tx: Option>>, ) where Block: BlockT, P: Finalizer @@ -188,10 +226,10 @@ async fn follow_new_best( + BlockBackend + BlockchainEvents, for<'a> &'a P: BlockImport, - R: RelaychainClient, + R: RelayChainInterface + Clone, B: Backend, { - let mut new_best_heads = match relay_chain.new_best_heads(para_id).await { + let new_best_heads = match new_best_heads(relay_chain, para_id).await { Ok(best_heads_stream) => best_heads_stream.fuse(), Err(err) => { tracing::error!(target: LOG_TARGET, error = ?err, "Unable to retrieve best heads stream."); @@ -199,9 +237,11 @@ async fn follow_new_best( }, }; + pin_mut!(new_best_heads); + let mut imported_blocks = parachain.import_notification_stream().fuse(); // The unset best header of the parachain. Will be `Some(_)` when we have imported a relay chain - // block before the parachain block it included. In this case we need to wait for this block to + // block before the associated parachain block. In this case we need to wait for this block to // be imported to set it as new best. let mut unset_best_header = None; @@ -213,7 +253,7 @@ async fn follow_new_best( h, &*parachain, &mut unset_best_header, - recovery_chan_tx.clone(), + recovery_chan_tx.as_mut(), ).await, None => { tracing::debug!( @@ -283,13 +323,17 @@ async fn handle_new_block_imported( unset_best_header.hash() }; - match parachain.block_status(&BlockId::Hash(unset_hash)) { + match parachain.block_status(unset_hash) { Ok(BlockStatus::InChainWithState) => { drop(unset_best_header); let unset_best_header = unset_best_header_opt .take() .expect("We checked above that the value is set; qed"); - + tracing::debug!( + target: LOG_TARGET, + ?unset_hash, + "Importing block as new best for parachain.", + ); import_block_as_new_best(unset_hash, unset_best_header, parachain).await; }, state => tracing::debug!( @@ -307,7 +351,7 @@ async fn handle_new_best_parachain_head( head: Vec, parachain: &P, unset_best_header: &mut Option, - mut recovery_chan_tx: Option>>, + mut recovery_chan_tx: Option<&mut Sender>>, ) where Block: BlockT, P: UsageProvider + Send + Sync + BlockBackend, @@ -335,10 +379,14 @@ async fn handle_new_best_parachain_head( ) } else { // Make sure the block is already known or otherwise we skip setting new best. - match parachain.block_status(&BlockId::Hash(hash)) { + match parachain.block_status(hash) { Ok(BlockStatus::InChainWithState) => { unset_best_header.take(); - + tracing::debug!( + target: LOG_TARGET, + ?hash, + "Importing block as new best for parachain.", + ); import_block_as_new_best(hash, parachain_head, parachain).await; }, Ok(BlockStatus::InChainPruned) => { @@ -361,8 +409,7 @@ async fn handle_new_best_parachain_head( // Best effort channel to actively encourage block recovery. // An error here is not fatal; the relay chain continuously re-announces // the best block, thus we will have other opportunities to retry. - let req = - RecoveryRequest { hash, delay: RECOVERY_DELAY, kind: RecoveryKind::Full }; + let req = RecoveryRequest { hash, kind: RecoveryKind::Full }; if let Err(err) = recovery_chan_tx.try_send(req) { tracing::warn!( target: LOG_TARGET, @@ -409,7 +456,7 @@ where block_import_params.fork_choice = Some(ForkChoiceStrategy::Custom(true)); block_import_params.import_existing = true; - if let Err(err) = (&*parachain).import_block(block_import_params, Default::default()).await { + if let Err(err) = (&*parachain).import_block(block_import_params).await { tracing::warn!( target: LOG_TARGET, block_hash = ?hash, @@ -419,50 +466,42 @@ where } } -#[async_trait] -impl RelaychainClient for RCInterface -where - RCInterface: RelayChainInterface + Clone + 'static, -{ - type Error = ClientError; - - type HeadStream = Pin> + Send>>; - - async fn new_best_heads(&self, para_id: ParaId) -> RelayChainResult { - let relay_chain = self.clone(); - - let new_best_notification_stream = self - .new_best_notification_stream() - .await? - .filter_map(move |n| { - let relay_chain = relay_chain.clone(); - async move { relay_chain.parachain_head_at(n.hash(), para_id).await.ok().flatten() } - }) - .boxed(); - Ok(new_best_notification_stream) - } +/// Returns a stream that will yield best heads for the given `para_id`. +async fn new_best_heads( + relay_chain: impl RelayChainInterface + Clone, + para_id: ParaId, +) -> RelayChainResult>> { + let new_best_notification_stream = + relay_chain.new_best_notification_stream().await?.filter_map(move |n| { + let relay_chain = relay_chain.clone(); + async move { parachain_head_at(&relay_chain, n.hash(), para_id).await.ok().flatten() } + }); + + Ok(new_best_notification_stream) +} - async fn finalized_heads(&self, para_id: ParaId) -> RelayChainResult { - let relay_chain = self.clone(); - - let finality_notification_stream = self - .finality_notification_stream() - .await? - .filter_map(move |n| { - let relay_chain = relay_chain.clone(); - async move { relay_chain.parachain_head_at(n.hash(), para_id).await.ok().flatten() } - }) - .boxed(); - Ok(finality_notification_stream) - } +/// Returns a stream that will yield finalized heads for the given `para_id`. +async fn finalized_heads( + relay_chain: impl RelayChainInterface + Clone, + para_id: ParaId, +) -> RelayChainResult>> { + let finality_notification_stream = + relay_chain.finality_notification_stream().await?.filter_map(move |n| { + let relay_chain = relay_chain.clone(); + async move { parachain_head_at(&relay_chain, n.hash(), para_id).await.ok().flatten() } + }); + + Ok(finality_notification_stream) +} - async fn parachain_head_at( - &self, - at: PHash, - para_id: ParaId, - ) -> RelayChainResult>> { - self.persisted_validation_data(at, para_id, OccupiedCoreAssumption::TimedOut) - .await - .map(|s| s.map(|s| s.parent_head.0)) - } +/// Returns head of the parachain at the given relay chain block. +async fn parachain_head_at( + relay_chain: &impl RelayChainInterface, + at: PHash, + para_id: ParaId, +) -> RelayChainResult>> { + relay_chain + .persisted_validation_data(at, para_id, OccupiedCoreAssumption::TimedOut) + .await + .map(|s| s.map(|s| s.parent_head.0)) } diff --git a/client/consensus/common/src/tests.rs b/client/consensus/common/src/tests.rs index 92cecc37d29..e44c26e85d1 100644 --- a/client/consensus/common/src/tests.rs +++ b/client/consensus/common/src/tests.rs @@ -19,20 +19,23 @@ use crate::*; use async_trait::async_trait; use codec::Encode; use cumulus_client_pov_recovery::RecoveryKind; -use cumulus_relay_chain_interface::RelayChainResult; +use cumulus_primitives_core::{InboundDownwardMessage, InboundHrmpMessage}; +use cumulus_relay_chain_interface::{ + CommittedCandidateReceipt, OccupiedCoreAssumption, OverseerHandle, PHeader, ParaId, + RelayChainInterface, RelayChainResult, SessionIndex, StorageValue, ValidatorId, +}; use cumulus_test_client::{ - runtime::{Block, Header}, + runtime::{Block, Hash, Header}, Backend, Client, InitBlockBuilder, TestClientBuilder, TestClientBuilderExt, }; use futures::{channel::mpsc, executor::block_on, select, FutureExt, Stream, StreamExt}; use futures_timer::Delay; -use polkadot_primitives::v2::Id as ParaId; use sc_client_api::{blockchain::Backend as _, Backend as _, UsageProvider}; use sc_consensus::{BlockImport, BlockImportParams, ForkChoiceStrategy}; -use sp_blockchain::Error as ClientError; use sp_consensus::{BlockOrigin, BlockStatus}; -use sp_runtime::generic::BlockId; use std::{ + collections::{BTreeMap, HashMap}, + pin::Pin, sync::{Arc, Mutex}, time::Duration, }; @@ -42,6 +45,7 @@ struct RelaychainInner { finalized_heads: Option>, new_best_heads_sender: mpsc::UnboundedSender

, finalized_heads_sender: mpsc::UnboundedSender
, + relay_chain_hash_to_header: HashMap, } impl RelaychainInner { @@ -54,6 +58,7 @@ impl RelaychainInner { finalized_heads_sender, new_best_heads: Some(new_best_heads), finalized_heads: Some(finalized_heads), + relay_chain_hash_to_header: Default::default(), } } } @@ -70,50 +75,149 @@ impl Relaychain { } #[async_trait] -impl crate::parachain_consensus::RelaychainClient for Relaychain { - type Error = ClientError; +impl RelayChainInterface for Relaychain { + async fn validators(&self, _: PHash) -> RelayChainResult> { + unimplemented!("Not needed for test") + } - type HeadStream = Box> + Send + Unpin>; + async fn best_block_hash(&self) -> RelayChainResult { + unimplemented!("Not needed for test") + } - async fn new_best_heads(&self, _: ParaId) -> RelayChainResult { - let stream = self - .inner - .lock() - .unwrap() - .new_best_heads - .take() - .expect("Should only be called once"); + async fn finalized_block_hash(&self) -> RelayChainResult { + unimplemented!("Not needed for test") + } - Ok(Box::new(stream.map(|v| v.encode()))) + async fn retrieve_dmq_contents( + &self, + _: ParaId, + _: PHash, + ) -> RelayChainResult> { + unimplemented!("Not needed for test") } - async fn finalized_heads(&self, _: ParaId) -> RelayChainResult { - let stream = self + async fn retrieve_all_inbound_hrmp_channel_contents( + &self, + _: ParaId, + _: PHash, + ) -> RelayChainResult>> { + unimplemented!("Not needed for test") + } + + async fn persisted_validation_data( + &self, + hash: PHash, + _: ParaId, + _: OccupiedCoreAssumption, + ) -> RelayChainResult> { + Ok(Some(PersistedValidationData { + parent_head: self + .inner + .lock() + .unwrap() + .relay_chain_hash_to_header + .get(&hash) + .unwrap() + .encode() + .into(), + ..Default::default() + })) + } + + async fn candidate_pending_availability( + &self, + _: PHash, + _: ParaId, + ) -> RelayChainResult> { + unimplemented!("Not needed for test") + } + + async fn session_index_for_child(&self, _: PHash) -> RelayChainResult { + unimplemented!("Not needed for test") + } + + async fn import_notification_stream( + &self, + ) -> RelayChainResult + Send>>> { + unimplemented!("Not needed for test") + } + + async fn finality_notification_stream( + &self, + ) -> RelayChainResult + Send>>> { + let inner = self.inner.clone(); + Ok(self .inner .lock() .unwrap() .finalized_heads .take() - .expect("Should only be called once"); + .unwrap() + .map(move |h| { + // Let's abuse the "parachain header" directly as relay chain header. + inner.lock().unwrap().relay_chain_hash_to_header.insert(h.hash(), h.clone()); + h + }) + .boxed()) + } + + async fn is_major_syncing(&self) -> RelayChainResult { + Ok(false) + } + + fn overseer_handle(&self) -> RelayChainResult { + unimplemented!("Not needed for test") + } + + async fn get_storage_by_key( + &self, + _: PHash, + _: &[u8], + ) -> RelayChainResult> { + unimplemented!("Not needed for test") + } - Ok(Box::new(stream.map(|v| v.encode()))) + async fn prove_read( + &self, + _: PHash, + _: &Vec>, + ) -> RelayChainResult { + unimplemented!("Not needed for test") } - async fn parachain_head_at(&self, _: PHash, _: ParaId) -> RelayChainResult>> { - unimplemented!("Not required for tests") + async fn wait_for_block(&self, _: PHash) -> RelayChainResult<()> { + unimplemented!("Not needed for test") + } + + async fn new_best_notification_stream( + &self, + ) -> RelayChainResult + Send>>> { + let inner = self.inner.clone(); + Ok(self + .inner + .lock() + .unwrap() + .new_best_heads + .take() + .unwrap() + .map(move |h| { + // Let's abuse the "parachain header" directly as relay chain header. + inner.lock().unwrap().relay_chain_hash_to_header.insert(h.hash(), h.clone()); + h + }) + .boxed()) } } fn build_block( builder: &B, - at: Option>, + at: Option, timestamp: Option, ) -> Block { let builder = match at { Some(at) => match timestamp { - Some(ts) => - builder.init_block_builder_with_timestamp(&at, None, Default::default(), ts), - None => builder.init_block_builder_at(&at, None, Default::default()), + Some(ts) => builder.init_block_builder_with_timestamp(at, None, Default::default(), ts), + None => builder.init_block_builder_at(at, None, Default::default()), }, None => builder.init_block_builder(None, Default::default()), }; @@ -121,7 +225,7 @@ fn build_block( let mut block = builder.build().unwrap().block; // Simulate some form of post activity (like a Seal or Other generic things). - // This is mostly used to excercise the `LevelMonitor` correct behavior. + // This is mostly used to exercise the `LevelMonitor` correct behavior. // (in practice we want that header post-hash != pre-hash) block.header.digest.push(sp_runtime::DigestItem::Other(vec![1, 2, 3])); @@ -144,7 +248,7 @@ async fn import_block>( block_import_params.body = Some(body); block_import_params.post_digests.push(post_digest); - importer.import_block(block_import_params, Default::default()).await.unwrap(); + importer.import_block(block_import_params).await.unwrap(); } fn import_block_sync>( @@ -161,7 +265,7 @@ fn build_and_import_block_ext>( origin: BlockOrigin, import_as_best: bool, importer: &mut I, - at: Option>, + at: Option, timestamp: Option, ) -> Block { let block = build_block(builder, at, timestamp); @@ -241,7 +345,7 @@ fn follow_new_best_with_dummy_recovery_works() { new_best_heads_sender.unbounded_send(block.header().clone()).unwrap(); loop { Delay::new(Duration::from_millis(100)).await; - match client.block_status(&BlockId::Hash(block.hash())).unwrap() { + match client.block_status(block.hash()).unwrap() { BlockStatus::Unknown => {}, status => { assert_eq!(block.hash(), client.usage_info().chain.best_hash); @@ -319,8 +423,7 @@ fn follow_finalized_does_not_stop_on_unknown_block() { let block = build_and_import_block(client.clone(), false); let unknown_block = { - let block_builder = - client.init_block_builder_at(&BlockId::Hash(block.hash()), None, Default::default()); + let block_builder = client.init_block_builder_at(block.hash(), None, Default::default()); block_builder.build().unwrap().block }; @@ -369,8 +472,7 @@ fn follow_new_best_sets_best_after_it_is_imported() { let block = build_and_import_block(client.clone(), false); let unknown_block = { - let block_builder = - client.init_block_builder_at(&BlockId::Hash(block.hash()), None, Default::default()); + let block_builder = client.init_block_builder_at(block.hash(), None, Default::default()); block_builder.build().unwrap().block }; @@ -406,7 +508,7 @@ fn follow_new_best_sets_best_after_it_is_imported() { block_import_params.body = Some(body); // Now import the unkown block to make it "known" - client.import_block(block_import_params, Default::default()).await.unwrap(); + client.import_block(block_import_params).await.unwrap(); loop { Delay::new(Duration::from_millis(100)).await; @@ -502,7 +604,7 @@ fn prune_blocks_on_level_overflow() { None, None, ); - let id0 = BlockId::Hash(block0.header.hash()); + let id0 = block0.header.hash(); let blocks1 = (0..LEVEL_LIMIT) .into_iter() @@ -517,7 +619,7 @@ fn prune_blocks_on_level_overflow() { ) }) .collect::>(); - let id10 = BlockId::Hash(blocks1[0].header.hash()); + let id10 = blocks1[0].header.hash(); let blocks2 = (0..2) .into_iter() @@ -615,7 +717,7 @@ fn restore_limit_monitor() { None, None, ); - let id00 = BlockId::Hash(block00.header.hash()); + let id00 = block00.header.hash(); let blocks1 = (0..LEVEL_LIMIT + 1) .into_iter() @@ -630,7 +732,7 @@ fn restore_limit_monitor() { ) }) .collect::>(); - let id10 = BlockId::Hash(blocks1[0].header.hash()); + let id10 = blocks1[0].header.hash(); let _ = (0..LEVEL_LIMIT) .into_iter() diff --git a/client/consensus/relay-chain/Cargo.toml b/client/consensus/relay-chain/Cargo.toml index a54ac9b8d1f..ba2186320b2 100644 --- a/client/consensus/relay-chain/Cargo.toml +++ b/client/consensus/relay-chain/Cargo.toml @@ -6,21 +6,21 @@ authors = ["Parity Technologies "] edition = "2021" [dependencies] -async-trait = "0.1.59" -futures = "0.3.25" +async-trait = "0.1.66" +futures = "0.3.26" parking_lot = "0.12.1" tracing = "0.1.37" # Substrate -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Cumulus cumulus-client-consensus-common = { path = "../common" } diff --git a/client/consensus/relay-chain/src/import_queue.rs b/client/consensus/relay-chain/src/import_queue.rs index 31004c0005e..ba082574328 100644 --- a/client/consensus/relay-chain/src/import_queue.rs +++ b/client/consensus/relay-chain/src/import_queue.rs @@ -25,12 +25,9 @@ use sc_consensus::{ use sp_api::ProvideRuntimeApi; use sp_block_builder::BlockBuilder as BlockBuilderApi; use sp_blockchain::Result as ClientResult; -use sp_consensus::{error::Error as ConsensusError, CacheKeyId}; +use sp_consensus::error::Error as ConsensusError; use sp_inherents::{CreateInherentDataProviders, InherentDataProvider}; -use sp_runtime::{ - generic::BlockId, - traits::{Block as BlockT, Header as HeaderT}, -}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; /// A verifier that just checks the inherents. pub struct Verifier { @@ -57,7 +54,15 @@ where async fn verify( &mut self, mut block_params: BlockImportParams, - ) -> Result<(BlockImportParams, Option)>>), String> { + ) -> Result, String> { + // Skip checks that include execution, if being told so, or when importing only state. + // + // This is done for example when gap syncing and it is expected that the block after the gap + // was checked/chosen properly, e.g. by warp syncing to this block using a finality proof. + if block_params.state_action.skip_execution_checks() || block_params.with_state() { + return Ok(block_params) + } + if let Some(inner_body) = block_params.body.take() { let inherent_data_providers = self .create_inherent_data_providers @@ -75,11 +80,7 @@ where let inherent_res = self .client .runtime_api() - .check_inherents( - &BlockId::Hash(*block.header().parent_hash()), - block.clone(), - inherent_data, - ) + .check_inherents(*block.header().parent_hash(), block.clone(), inherent_data) .map_err(|e| format!("{:?}", e))?; if !inherent_res.ok() { @@ -100,7 +101,7 @@ where block_params.post_hash = Some(block_params.header.hash()); - Ok((block_params, None)) + Ok(block_params) } } diff --git a/client/consensus/relay-chain/src/lib.rs b/client/consensus/relay-chain/src/lib.rs index 4cd0ab24beb..a31a9ec8b2a 100644 --- a/client/consensus/relay-chain/src/lib.rs +++ b/client/consensus/relay-chain/src/lib.rs @@ -36,7 +36,7 @@ use cumulus_client_consensus_common::{ ParachainBlockImportMarker, ParachainCandidate, ParachainConsensus, }; -use cumulus_primitives_core::{relay_chain::v2::Hash as PHash, ParaId, PersistedValidationData}; +use cumulus_primitives_core::{relay_chain::Hash as PHash, ParaId, PersistedValidationData}; use cumulus_relay_chain_interface::RelayChainInterface; use sc_consensus::{BlockImport, BlockImportParams}; @@ -197,13 +197,7 @@ where sc_consensus::StorageChanges::Changes(storage_changes), ); - if let Err(err) = self - .block_import - .lock() - .await - .import_block(block_import_params, Default::default()) - .await - { + if let Err(err) = self.block_import.lock().await.import_block(block_import_params).await { tracing::error!( target: LOG_TARGET, at = ?parent.hash(), diff --git a/client/network/Cargo.toml b/client/network/Cargo.toml index e98789d17a0..6885c204597 100644 --- a/client/network/Cargo.toml +++ b/client/network/Cargo.toml @@ -6,47 +6,46 @@ description = "Cumulus-specific networking protocol" edition = "2021" [dependencies] -async-trait = "0.1.59" +async-trait = "0.1.66" codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ] } -futures = "0.3.25" +futures = "0.3.26" futures-timer = "3.0.2" parking_lot = "0.12.1" tracing = "0.1.37" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-relay-chain-interface = { path = "../relay-chain-interface" } [dev-dependencies] portpicker = "0.1.1" -tokio = { version = "1.23.0", features = ["macros"] } +tokio = { version = "1.26.0", features = ["macros"] } url = "2.3.1" # Substrate -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-test-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-test-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core" } diff --git a/client/network/src/lib.rs b/client/network/src/lib.rs index 7e906da1b1d..5a2043ab5f7 100644 --- a/client/network/src/lib.rs +++ b/client/network/src/lib.rs @@ -29,14 +29,13 @@ use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; use cumulus_relay_chain_interface::RelayChainInterface; use polkadot_node_primitives::{CollationSecondedSignal, Statement}; use polkadot_parachain::primitives::HeadData; -use polkadot_primitives::v2::{ +use polkadot_primitives::{ CandidateReceipt, CompactStatement, Hash as PHash, Id as ParaId, OccupiedCoreAssumption, SigningContext, UncheckedSigned, }; use codec::{Decode, DecodeAll, Encode}; use futures::{channel::oneshot, future::FutureExt, Future}; - use std::{convert::TryFrom, fmt, marker::PhantomData, pin::Pin, sync::Arc}; #[cfg(test)] diff --git a/client/network/src/tests.rs b/client/network/src/tests.rs index cef327b8763..dc820a00c52 100644 --- a/client/network/src/tests.rs +++ b/client/network/src/tests.rs @@ -17,18 +17,18 @@ use super::*; use async_trait::async_trait; use cumulus_relay_chain_inprocess_interface::{check_block_in_chain, BlockCheckStatus}; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; +use cumulus_relay_chain_interface::{ + OverseerHandle, PHeader, ParaId, RelayChainError, RelayChainResult, +}; use cumulus_test_service::runtime::{Block, Hash, Header}; use futures::{executor::block_on, poll, task::Poll, FutureExt, Stream, StreamExt}; use parking_lot::Mutex; use polkadot_node_primitives::{SignedFullStatement, Statement}; -use polkadot_primitives::v2::{ +use polkadot_primitives::{ CandidateCommitments, CandidateDescriptor, CollatorPair, CommittedCandidateReceipt, - Hash as PHash, HeadData, Header as PHeader, Id as ParaId, InboundDownwardMessage, - InboundHrmpMessage, OccupiedCoreAssumption, PersistedValidationData, SessionIndex, - SigningContext, ValidationCodeHash, ValidatorId, + Hash as PHash, HeadData, InboundDownwardMessage, InboundHrmpMessage, OccupiedCoreAssumption, + PersistedValidationData, SessionIndex, SigningContext, ValidationCodeHash, ValidatorId, }; -use polkadot_service::Handle; use polkadot_test_client::{ Client as PClient, ClientBlockImportExt, DefaultTestClientBuilderExt, FullBackend as PBackend, InitPolkadotBlockBuilder, TestClientBuilder, TestClientBuilderExt, @@ -84,6 +84,9 @@ impl RelayChainInterface for DummyRelayChainInterface { async fn best_block_hash(&self) -> RelayChainResult { Ok(self.relay_backend.blockchain().info().best_hash) } + async fn finalized_block_hash(&self) -> RelayChainResult { + Ok(self.relay_backend.blockchain().info().finalized_hash) + } async fn retrieve_dmq_contents( &self, @@ -133,8 +136,8 @@ impl RelayChainInterface for DummyRelayChainInterface { validation_code_hash: ValidationCodeHash::from(PHash::random()), }, commitments: CandidateCommitments { - upward_messages: Vec::new(), - horizontal_messages: Vec::new(), + upward_messages: Default::default(), + horizontal_messages: Default::default(), new_validation_code: None, head_data: HeadData(Vec::new()), processed_downward_messages: 0, @@ -174,7 +177,7 @@ impl RelayChainInterface for DummyRelayChainInterface { Ok(false) } - fn overseer_handle(&self) -> RelayChainResult { + fn overseer_handle(&self) -> RelayChainResult { unimplemented!("Not needed for test") } diff --git a/client/pov-recovery/Cargo.toml b/client/pov-recovery/Cargo.toml index 39863bdd695..e70614e0ff8 100644 --- a/client/pov-recovery/Cargo.toml +++ b/client/pov-recovery/Cargo.toml @@ -7,36 +7,37 @@ edition = "2021" [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", features = [ "derive" ] } -futures = "0.3.25" +futures = "0.3.26" futures-timer = "3.0.2" rand = "0.8.5" tracing = "0.1.37" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-maybe-compressed-blob = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-maybe-compressed-blob = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-node-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = {path = "../relay-chain-interface"} +async-trait = "0.1.66" [dev-dependencies] -tokio = { version = "1.23.0", features = ["macros"] } +tokio = { version = "1.26.0", features = ["macros"] } portpicker = "0.1.1" # Cumulus cumulus-test-service = { path = "../../test/service" } # Substrate -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } diff --git a/client/pov-recovery/src/active_candidate_recovery.rs b/client/pov-recovery/src/active_candidate_recovery.rs index caae3615a85..feb09d005ce 100644 --- a/client/pov-recovery/src/active_candidate_recovery.rs +++ b/client/pov-recovery/src/active_candidate_recovery.rs @@ -18,12 +18,13 @@ use sp_runtime::traits::Block as BlockT; use polkadot_node_primitives::AvailableData; use polkadot_node_subsystem::messages::AvailabilityRecoveryMessage; -use polkadot_overseer::Handle as OverseerHandle; use futures::{channel::oneshot, stream::FuturesUnordered, Future, FutureExt, StreamExt}; use std::{collections::HashSet, pin::Pin}; +use crate::RecoveryHandle; + /// The active candidate recovery. /// /// This handles the candidate recovery and tracks the activate recoveries. @@ -34,12 +35,12 @@ pub(crate) struct ActiveCandidateRecovery { >, /// The block hashes of the candidates currently being recovered. candidates: HashSet, - overseer_handle: OverseerHandle, + recovery_handle: Box, } impl ActiveCandidateRecovery { - pub fn new(overseer_handle: OverseerHandle) -> Self { - Self { recoveries: Default::default(), candidates: Default::default(), overseer_handle } + pub fn new(recovery_handle: Box) -> Self { + Self { recoveries: Default::default(), candidates: Default::default(), recovery_handle } } /// Recover the given `candidate`. @@ -50,8 +51,8 @@ impl ActiveCandidateRecovery { ) { let (tx, rx) = oneshot::channel(); - self.overseer_handle - .send_msg( + self.recovery_handle + .send_recovery_msg( AvailabilityRecoveryMessage::RecoverAvailableData( candidate.receipt.clone(), candidate.session_index, @@ -90,11 +91,6 @@ impl ActiveCandidateRecovery { ); } - /// Returns if the given `candidate` is being recovered. - pub fn is_being_recovered(&self, candidate: &Block::Hash) -> bool { - self.candidates.contains(candidate) - } - /// Waits for the next recovery. /// /// If the returned [`AvailableData`] is `None`, it means that the recovery failed. diff --git a/client/pov-recovery/src/lib.rs b/client/pov-recovery/src/lib.rs index 90c0a853214..60fbdab310c 100644 --- a/client/pov-recovery/src/lib.rs +++ b/client/pov-recovery/src/lib.rs @@ -29,14 +29,18 @@ //! //! 1. For every included relay chain block we note the backed candidate of our parachain. If the //! block belonging to the PoV is already known, we do nothing. Otherwise we start -//! a timer that waits a random time between 0..relay_chain_slot_length before starting to recover +//! a timer that waits for a randomized time inside a specified interval before starting to recover //! the PoV. //! //! 2. If between starting and firing the timer the block is imported, we skip the recovery of the //! PoV. //! -//! 3. If the timer fired we recover the PoV using the relay chain PoV recovery protocol. After it -//! is recovered, we restore the block and import it. +//! 3. If the timer fired we recover the PoV using the relay chain PoV recovery protocol. +//! +//! 4a. After it is recovered, we restore the block and import it. +//! +//! 4b. Since we are trying to recover pending candidates, availability is not guaranteed. If the block +//! PoV is not yet available, we retry. //! //! If we need to recover multiple PoV blocks (which should hopefully not happen in real life), we //! make sure that the blocks are imported in the correct order. @@ -44,14 +48,12 @@ use sc_client_api::{BlockBackend, BlockchainEvents, UsageProvider}; use sc_consensus::import_queue::{ImportQueueService, IncomingBlock}; use sp_consensus::{BlockOrigin, BlockStatus}; -use sp_runtime::{ - generic::BlockId, - traits::{Block as BlockT, Header as HeaderT, NumberFor}, -}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT, NumberFor}; use polkadot_node_primitives::{AvailableData, POV_BOMB_LIMIT}; +use polkadot_node_subsystem::messages::AvailabilityRecoveryMessage; use polkadot_overseer::Handle as OverseerHandle; -use polkadot_primitives::v2::{ +use polkadot_primitives::{ CandidateReceipt, CommittedCandidateReceipt, Id as ParaId, SessionIndex, }; @@ -63,10 +65,10 @@ use futures::{ channel::mpsc::Receiver, select, stream::FuturesUnordered, Future, FutureExt, Stream, StreamExt, }; use futures_timer::Delay; -use rand::{thread_rng, Rng}; +use rand::{distributions::Uniform, prelude::Distribution, thread_rng}; use std::{ - collections::{HashMap, VecDeque}, + collections::{HashMap, HashSet, VecDeque}, pin::Pin, sync::Arc, time::Duration, @@ -77,6 +79,28 @@ use active_candidate_recovery::ActiveCandidateRecovery; const LOG_TARGET: &str = "cumulus-pov-recovery"; +/// Test-friendly wrapper trait for the overseer handle. +/// Can be used to simulate failing recovery requests. +#[async_trait::async_trait] +pub trait RecoveryHandle: Send { + async fn send_recovery_msg( + &mut self, + message: AvailabilityRecoveryMessage, + origin: &'static str, + ); +} + +#[async_trait::async_trait] +impl RecoveryHandle for OverseerHandle { + async fn send_recovery_msg( + &mut self, + message: AvailabilityRecoveryMessage, + origin: &'static str, + ) { + self.send_msg(message, origin).await; + } +} + /// Type of recovery to trigger. #[derive(Debug, PartialEq)] pub enum RecoveryKind { @@ -90,24 +114,30 @@ pub enum RecoveryKind { pub struct RecoveryRequest { /// Hash of the last block to recover. pub hash: Block::Hash, - /// Recovery delay range. Randomizing the start of the recovery within this interval - /// can be used to prevent self-DOSing if the recovery request is part of a - /// distributed protocol and there is the possibility that multiple actors are - /// requiring to perform the recovery action at approximately the same time. - pub delay: RecoveryDelay, /// Recovery type. pub kind: RecoveryKind, } /// The delay between observing an unknown block and triggering the recovery of a block. +/// Randomizing the start of the recovery within this interval +/// can be used to prevent self-DOSing if the recovery request is part of a +/// distributed protocol and there is the possibility that multiple actors are +/// requiring to perform the recovery action at approximately the same time. #[derive(Clone, Copy)] -pub struct RecoveryDelay { +pub struct RecoveryDelayRange { /// Start recovering after `min` delay. pub min: Duration, /// Start recovering before `max` delay. pub max: Duration, } +impl RecoveryDelayRange { + /// Produce a randomized duration between `min` and `max`. + fn duration(&self) -> Duration { + Uniform::from(self.min..=self.max).sample(&mut thread_rng()) + } +} + /// Represents an outstanding block candidate. struct Candidate { receipt: CandidateReceipt, @@ -115,9 +145,66 @@ struct Candidate { block_number: NumberFor, parent_hash: Block::Hash, // Lazy recovery has been submitted. + // Should be true iff a block is either queued to be recovered or + // recovery is currently in progress. waiting_recovery: bool, } +/// Queue that is used to decide when to start PoV-recovery operations. +struct RecoveryQueue { + recovery_delay_range: RecoveryDelayRange, + // Queue that keeps the hashes of blocks to be recovered. + recovery_queue: VecDeque, + // Futures that resolve when a new recovery should be started. + signaling_queue: FuturesUnordered + Send>>>, +} + +impl RecoveryQueue { + pub fn new(recovery_delay_range: RecoveryDelayRange) -> Self { + Self { + recovery_delay_range, + recovery_queue: Default::default(), + signaling_queue: Default::default(), + } + } + + /// Add hash of a block that should go to the end of the recovery queue. + /// A new recovery will be signaled after `delay` has passed. + pub fn push_recovery(&mut self, hash: Block::Hash) { + let delay = self.recovery_delay_range.duration(); + tracing::debug!( + target: LOG_TARGET, + block_hash = ?hash, + "Adding block to queue and adding new recovery slot in {:?} sec", + delay.as_secs(), + ); + self.recovery_queue.push_back(hash); + self.signaling_queue.push( + async move { + Delay::new(delay).await; + } + .boxed(), + ); + } + + /// Get the next hash for block recovery. + pub async fn next_recovery(&mut self) -> Block::Hash { + loop { + if let Some(_) = self.signaling_queue.next().await { + if let Some(hash) = self.recovery_queue.pop_front() { + return hash + } else { + tracing::error!( + target: LOG_TARGET, + "Recovery was signaled, but no candidate hash available. This is a bug." + ); + }; + } + futures::pending!() + } + } +} + /// Encapsulates the logic of the pov recovery. pub struct PoVRecovery { /// All the pending candidates that we are waiting for to be imported or that need to be @@ -125,21 +212,22 @@ pub struct PoVRecovery { candidates: HashMap>, /// A stream of futures that resolve to hashes of candidates that need to be recovered. /// - /// The candidates to the hashes are stored in `pending_candidates`. If a candidate is not + /// The candidates to the hashes are stored in `candidates`. If a candidate is not /// available anymore in this map, it means that it was already imported. - next_candidate_to_recover: FuturesUnordered + Send>>>, + candidate_recovery_queue: RecoveryQueue, active_candidate_recovery: ActiveCandidateRecovery, /// Blocks that wait that the parent is imported. /// /// Uses parent -> blocks mapping. waiting_for_parent: HashMap>, - recovery_delay: RecoveryDelay, parachain_client: Arc, parachain_import_queue: Box>, relay_chain_interface: RC, para_id: ParaId, /// Explicit block recovery requests channel. recovery_chan_rx: Receiver>, + /// Blocks that we are retrying currently + candidates_in_retry: HashSet, } impl PoVRecovery @@ -149,8 +237,8 @@ where { /// Create a new instance. pub fn new( - overseer_handle: OverseerHandle, - recovery_delay: RecoveryDelay, + recovery_handle: Box, + recovery_delay_range: RecoveryDelayRange, parachain_client: Arc, parachain_import_queue: Box>, relay_chain_interface: RCInterface, @@ -159,14 +247,14 @@ where ) -> Self { Self { candidates: HashMap::new(), - next_candidate_to_recover: Default::default(), - active_candidate_recovery: ActiveCandidateRecovery::new(overseer_handle), - recovery_delay, + candidate_recovery_queue: RecoveryQueue::new(recovery_delay_range), + active_candidate_recovery: ActiveCandidateRecovery::new(recovery_handle), waiting_for_parent: HashMap::new(), parachain_client, parachain_import_queue, relay_chain_interface, para_id, + candidates_in_retry: HashSet::new(), recovery_chan_rx, } } @@ -213,15 +301,11 @@ where // If required, triggers a lazy recovery request that will eventually be blocked // if in the meantime the block is imported. - self.recover(RecoveryRequest { - hash, - delay: self.recovery_delay, - kind: RecoveryKind::Simple, - }); + self.recover(RecoveryRequest { hash, kind: RecoveryKind::Simple }); } - /// Handle an imported block. - fn handle_block_imported(&mut self, block_hash: &Block::Hash) { + /// Block is no longer waiting for recovery + fn clear_waiting_recovery(&mut self, block_hash: &Block::Hash) { self.candidates.get_mut(block_hash).map(|candidate| { // Prevents triggering an already enqueued recovery request candidate.waiting_recovery = false; @@ -244,9 +328,9 @@ where } } - /// Clear `waiting_for_parent` from the given `hash` and do this recursively for all child - /// blocks. - fn clear_waiting_for_parent(&mut self, hash: Block::Hash) { + /// Clear `waiting_for_parent` and `waiting_recovery` for the candidate with `hash`. + /// Also clears children blocks waiting for this parent. + fn reset_candidate(&mut self, hash: Block::Hash) { let mut blocks_to_delete = vec![hash]; while let Some(delete) = blocks_to_delete.pop() { @@ -254,6 +338,7 @@ where blocks_to_delete.extend(childs.iter().map(BlockT::hash)); } } + self.clear_waiting_recovery(&hash); } /// Handle a recovered candidate. @@ -263,11 +348,25 @@ where available_data: Option, ) { let available_data = match available_data { - Some(data) => data, - None => { - self.clear_waiting_for_parent(block_hash); - return + Some(data) => { + self.candidates_in_retry.remove(&block_hash); + data }, + None => + if self.candidates_in_retry.insert(block_hash) { + tracing::debug!(target: LOG_TARGET, ?block_hash, "Recovery failed, retrying."); + self.candidate_recovery_queue.push_recovery(block_hash); + return + } else { + tracing::warn!( + target: LOG_TARGET, + ?block_hash, + "Unable to recover block after retry.", + ); + self.candidates_in_retry.remove(&block_hash); + self.reset_candidate(block_hash); + return + }, }; let raw_block_data = match sp_maybe_compressed_blob::decompress( @@ -278,8 +377,7 @@ where Err(error) => { tracing::debug!(target: LOG_TARGET, ?error, "Failed to decompress PoV"); - self.clear_waiting_for_parent(block_hash); - + self.reset_candidate(block_hash); return }, }; @@ -293,8 +391,7 @@ where "Failed to decode parachain block data from recovered PoV", ); - self.clear_waiting_for_parent(block_hash); - + self.reset_candidate(block_hash); return }, }; @@ -303,14 +400,19 @@ where let parent = *block.header().parent_hash(); - match self.parachain_client.block_status(&BlockId::hash(parent)) { + match self.parachain_client.block_status(parent) { Ok(BlockStatus::Unknown) => { - if self.active_candidate_recovery.is_being_recovered(&parent) { + // If the parent block is currently being recovered or is scheduled to be recovered, + // we want to wait for the parent. + let parent_scheduled_for_recovery = + self.candidates.get(&parent).map_or(false, |parent| parent.waiting_recovery); + if parent_scheduled_for_recovery { tracing::debug!( target: LOG_TARGET, ?block_hash, parent_hash = ?parent, - "Parent is still being recovered, waiting.", + parent_scheduled_for_recovery, + "Waiting for recovery of parent.", ); self.waiting_for_parent.entry(parent).or_default().push(block); @@ -323,8 +425,7 @@ where "Parent not found while trying to import recovered block.", ); - self.clear_waiting_for_parent(block_hash); - + self.reset_candidate(block_hash); return } }, @@ -336,8 +437,7 @@ where "Error while checking block status", ); - self.clear_waiting_for_parent(block_hash); - + self.reset_candidate(block_hash); return }, // Any other status is fine to "ignore/accept" @@ -386,10 +486,10 @@ where /// Attempts an explicit recovery of one or more blocks. pub fn recover(&mut self, req: RecoveryRequest) { - let RecoveryRequest { mut hash, delay, kind } = req; + let RecoveryRequest { mut hash, kind } = req; let mut to_recover = Vec::new(); - let do_recover = loop { + loop { let candidate = match self.candidates.get_mut(&hash) { Some(candidate) => candidate, None => { @@ -398,16 +498,16 @@ where block_hash = ?hash, "Cound not recover. Block was never announced as candidate" ); - break false + return }, }; - match self.parachain_client.block_status(&BlockId::Hash(hash)) { + match self.parachain_client.block_status(hash) { Ok(BlockStatus::Unknown) if !candidate.waiting_recovery => { candidate.waiting_recovery = true; to_recover.push(hash); }, - Ok(_) => break true, + Ok(_) => break, Err(e) => { tracing::error!( target: LOG_TARGET, @@ -415,36 +515,22 @@ where block_hash = ?hash, "Failed to get block status", ); - break false + for hash in to_recover { + self.clear_waiting_recovery(&hash); + } + return }, } if kind == RecoveryKind::Simple { - break true + break } hash = candidate.parent_hash; - }; + } - if do_recover { - for hash in to_recover.into_iter().rev() { - let delay = - delay.min + delay.max.saturating_sub(delay.min).mul_f64(thread_rng().gen()); - tracing::debug!( - target: LOG_TARGET, - block_hash = ?hash, - "Starting {:?} block recovery in {:?} sec", - kind, - delay.as_secs(), - ); - self.next_candidate_to_recover.push( - async move { - Delay::new(delay).await; - hash - } - .boxed(), - ); - } + for hash in to_recover.into_iter().rev() { + self.candidate_recovery_queue.push_recovery(hash); } } @@ -483,7 +569,7 @@ where }, imported = imported_blocks.next() => { if let Some(imported) = imported { - self.handle_block_imported(&imported.hash); + self.clear_waiting_recovery(&imported.hash); } else { tracing::debug!(target: LOG_TARGET, "Imported blocks stream ended"); return; @@ -497,10 +583,8 @@ where return; } }, - next_to_recover = self.next_candidate_to_recover.next() => { - if let Some(block_hash) = next_to_recover { - self.recover_candidate(block_hash).await; - } + next_to_recover = self.candidate_recovery_queue.next_recovery().fuse() => { + self.recover_candidate(next_to_recover).await; }, (block_hash, available_data) = self.active_candidate_recovery.wait_for_recovery().fuse() => diff --git a/client/relay-chain-inprocess-interface/Cargo.toml b/client/relay-chain-inprocess-interface/Cargo.toml index e882e0df00d..fb743404d31 100644 --- a/client/relay-chain-inprocess-interface/Cargo.toml +++ b/client/relay-chain-inprocess-interface/Cargo.toml @@ -5,26 +5,26 @@ version = "0.1.0" edition = "2021" [dependencies] -async-trait = "0.1.59" -futures = "0.3.25" +async-trait = "0.1.66" +futures = "0.3.26" futures-timer = "3.0.2" # Substrate -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", default-features = false, features = ["cli"] , branch = "release-v0.9.36" } -polkadot-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", default-features = false, features = ["cli"] , branch = "release-v0.9.40" } +polkadot-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core" } @@ -33,12 +33,12 @@ cumulus-relay-chain-interface = { path = "../relay-chain-interface" } [dev-dependencies] # Substrate -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-test-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -metered = { package = "prioritized-metered-channel", version = "0.2.0" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-test-client = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +metered = { package = "prioritized-metered-channel", version = "0.4.0" } # Cumulus cumulus-test-service = { path = "../../test/service" } diff --git a/client/relay-chain-inprocess-interface/src/lib.rs b/client/relay-chain-inprocess-interface/src/lib.rs index 4477763c622..f230a23bd25 100644 --- a/client/relay-chain-inprocess-interface/src/lib.rs +++ b/client/relay-chain-inprocess-interface/src/lib.rs @@ -19,9 +19,8 @@ use std::{pin::Pin, sync::Arc, time::Duration}; use async_trait::async_trait; use cumulus_primitives_core::{ relay_chain::{ - runtime_api::ParachainHost, - v2::{CommittedCandidateReceipt, OccupiedCoreAssumption, SessionIndex, ValidatorId}, - Block as PBlock, BlockId, Hash as PHash, Header as PHeader, InboundHrmpMessage, + runtime_api::ParachainHost, Block as PBlock, CommittedCandidateReceipt, Hash as PHash, + Header as PHeader, InboundHrmpMessage, OccupiedCoreAssumption, SessionIndex, ValidatorId, }, InboundDownwardMessage, ParaId, PersistedValidationData, }; @@ -93,7 +92,7 @@ where relay_parent: PHash, ) -> RelayChainResult> { Ok(self.full_client.runtime_api().dmq_contents_with_context( - &BlockId::hash(relay_parent), + relay_parent, sp_core::ExecutionContext::Importing, para_id, )?) @@ -105,7 +104,7 @@ where relay_parent: PHash, ) -> RelayChainResult>> { Ok(self.full_client.runtime_api().inbound_hrmp_channels_contents_with_context( - &BlockId::hash(relay_parent), + relay_parent, sp_core::ExecutionContext::Importing, para_id, )?) @@ -118,7 +117,7 @@ where occupied_core_assumption: OccupiedCoreAssumption, ) -> RelayChainResult> { Ok(self.full_client.runtime_api().persisted_validation_data( - &BlockId::Hash(hash), + hash, para_id, occupied_core_assumption, )?) @@ -129,18 +128,15 @@ where hash: PHash, para_id: ParaId, ) -> RelayChainResult> { - Ok(self - .full_client - .runtime_api() - .candidate_pending_availability(&BlockId::Hash(hash), para_id)?) + Ok(self.full_client.runtime_api().candidate_pending_availability(hash, para_id)?) } async fn session_index_for_child(&self, hash: PHash) -> RelayChainResult { - Ok(self.full_client.runtime_api().session_index_for_child(&BlockId::Hash(hash))?) + Ok(self.full_client.runtime_api().session_index_for_child(hash)?) } async fn validators(&self, hash: PHash) -> RelayChainResult> { - Ok(self.full_client.runtime_api().validators(&BlockId::Hash(hash))?) + Ok(self.full_client.runtime_api().validators(hash)?) } async fn import_notification_stream( @@ -167,6 +163,10 @@ where Ok(self.backend.blockchain().info().best_hash) } + async fn finalized_block_hash(&self) -> RelayChainResult { + Ok(self.backend.blockchain().info().finalized_hash) + } + async fn is_major_syncing(&self) -> RelayChainResult { Ok(self.sync_oracle.is_major_syncing()) } @@ -265,9 +265,7 @@ where { let _lock = backend.get_import_lock().read(); - let block_id = BlockId::Hash(hash); - - if backend.blockchain().status(block_id)? == BlockStatus::InChain { + if backend.blockchain().status(hash)? == BlockStatus::InChain { return Ok(BlockCheckStatus::InChain) } @@ -369,13 +367,13 @@ pub fn build_inprocess_relay_chain( parachain_config, telemetry_worker_handle, hwbench, - )?; + ) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; - let sync_oracle: Arc = Arc::new(full_node.network.clone()); let relay_chain_interface_builder = RelayChainInProcessInterfaceBuilder { polkadot_client: full_node.client.clone(), backend: full_node.backend.clone(), - sync_oracle, + sync_oracle: full_node.sync_service.clone(), overseer_handle: full_node.overseer_handle.clone().ok_or(RelayChainError::GenericError( "Overseer not running in full node.".to_string(), ))?, @@ -390,7 +388,7 @@ pub fn build_inprocess_relay_chain( mod tests { use super::*; - use polkadot_primitives::v2::Block as PBlock; + use polkadot_primitives::Block as PBlock; use polkadot_test_client::{ construct_transfer_extrinsic, BlockBuilderExt, Client, ClientBlockImportExt, DefaultTestClientBuilderExt, ExecutionStrategy, InitPolkadotBlockBuilder, diff --git a/client/relay-chain-interface/Cargo.toml b/client/relay-chain-interface/Cargo.toml index fe17ac75a0d..43a2a5d46ba 100644 --- a/client/relay-chain-interface/Cargo.toml +++ b/client/relay-chain-interface/Cargo.toml @@ -5,19 +5,17 @@ version = "0.1.0" edition = "2021" [dependencies] -polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } cumulus-primitives-core = { path = "../../primitives/core" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -tokio = { version = "1.21.2", features = ["sync"] } -futures = "0.3.25" -async-trait = "0.1.59" +futures = "0.3.26" +async-trait = "0.1.66" thiserror = "1.0.38" jsonrpsee-core = "0.16.2" -parity-scale-codec = "3.2.1" +parity-scale-codec = "3.4.0" diff --git a/client/relay-chain-interface/src/lib.rs b/client/relay-chain-interface/src/lib.rs index 56de750b687..db4fd24c64f 100644 --- a/client/relay-chain-interface/src/lib.rs +++ b/client/relay-chain-interface/src/lib.rs @@ -16,15 +16,7 @@ use std::{collections::BTreeMap, pin::Pin, sync::Arc}; -use cumulus_primitives_core::{ - relay_chain::{ - v2::{CommittedCandidateReceipt, OccupiedCoreAssumption, SessionIndex, ValidatorId}, - Hash as PHash, Header as PHeader, InboundHrmpMessage, - }, - InboundDownwardMessage, ParaId, PersistedValidationData, -}; -use polkadot_overseer::{prometheus::PrometheusError, Handle as OverseerHandle}; -use polkadot_service::SubstrateServiceError; +use polkadot_overseer::prometheus::PrometheusError; use sc_client_api::StorageProof; use futures::Stream; @@ -33,7 +25,16 @@ use async_trait::async_trait; use jsonrpsee_core::Error as JsonRpcError; use parity_scale_codec::Error as CodecError; use sp_api::ApiError; -use sp_state_machine::StorageValue; + +pub use cumulus_primitives_core::{ + relay_chain::{ + CommittedCandidateReceipt, Hash as PHash, Header as PHeader, InboundHrmpMessage, + OccupiedCoreAssumption, SessionIndex, ValidatorId, + }, + InboundDownwardMessage, ParaId, PersistedValidationData, +}; +pub use polkadot_overseer::Handle as OverseerHandle; +pub use sp_state_machine::StorageValue; pub type RelayChainResult = Result; @@ -59,10 +60,8 @@ pub enum RelayChainError { WorkerCommunicationError(String), #[error("Scale codec deserialization error: {0}")] DeserializationError(CodecError), - #[error("Polkadot service error: {0}")] - ServiceError(#[from] polkadot_service::Error), - #[error("Substrate service error: {0}")] - SubServiceError(#[from] SubstrateServiceError), + #[error(transparent)] + Application(#[from] Box), #[error("Prometheus error: {0}")] PrometheusError(#[from] PrometheusError), #[error("Unspecified error occured: {0}")] @@ -103,6 +102,9 @@ pub trait RelayChainInterface: Send + Sync { /// Get the hash of the current best block. async fn best_block_hash(&self) -> RelayChainResult; + /// Get the hash of the finalized block. + async fn finalized_block_hash(&self) -> RelayChainResult; + /// Returns the whole contents of the downward message queue for the parachain we are collating /// for. /// @@ -246,6 +248,10 @@ where (**self).best_block_hash().await } + async fn finalized_block_hash(&self) -> RelayChainResult { + (**self).finalized_block_hash().await + } + async fn is_major_syncing(&self) -> RelayChainResult { (**self).is_major_syncing().await } diff --git a/client/relay-chain-minimal-node/Cargo.toml b/client/relay-chain-minimal-node/Cargo.toml index 75e398b55a9..0fc92d61f74 100644 --- a/client/relay-chain-minimal-node/Cargo.toml +++ b/client/relay-chain-minimal-node/Cargo.toml @@ -6,31 +6,26 @@ edition = "2021" [dependencies] # polkadot deps -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-node-subsystem-util = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-node-network-protocol = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-network-bridge = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-node-subsystem-util = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-node-network-protocol = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-network-bridge = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # substrate deps -sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # cumulus deps cumulus-relay-chain-interface = { path = "../relay-chain-interface" } @@ -38,9 +33,8 @@ cumulus-relay-chain-rpc-interface = { path = "../relay-chain-rpc-interface" } cumulus-primitives-core = { path = "../../primitives/core" } array-bytes = "6.0" -lru = "0.8" +lru = "0.9" tracing = "0.1.37" -async-trait = "0.1.59" -futures = "0.3.25" -url = "2.2.2" -tokio = { version = "1.23.0", features = ["macros"] } +async-trait = "0.1.66" +futures = "0.3.26" +tokio = { version = "1.26.0", features = ["macros"] } diff --git a/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs b/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs index 1ed896533a3..7c4674a4e2c 100644 --- a/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs +++ b/client/relay-chain-minimal-node/src/blockchain_rpc_client.rs @@ -14,21 +14,17 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use std::{pin::Pin, str::FromStr}; +use std::pin::Pin; use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; use cumulus_relay_chain_rpc_interface::RelayChainRpcClient; use futures::{Future, Stream, StreamExt}; -use polkadot_core_primitives::{Block, BlockId, Hash, Header}; +use polkadot_core_primitives::{Block, BlockNumber, Hash, Header}; use polkadot_overseer::RuntimeApiSubsystemClient; -use polkadot_service::{AuxStore, HeaderBackend}; use sc_authority_discovery::AuthorityDiscovery; - -use sc_network_common::config::MultiaddrWithPeerId; use sp_api::{ApiError, RuntimeApiInfo}; -use sp_blockchain::Info; - -const LOG_TARGET: &str = "blockchain-rpc-client"; +use sp_blockchain::{HeaderBackend, Info}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT, NumberFor}; #[derive(Clone)] pub struct BlockChainRpcClient { @@ -49,40 +45,18 @@ impl BlockChainRpcClient { pub async fn block_get_hash( &self, - number: Option, + number: Option, ) -> Result, RelayChainError> { self.rpc_client.chain_get_block_hash(number).await } } -// Implementation required by Availability-Distribution subsystem -// but never called in our case. -impl AuxStore for BlockChainRpcClient { - fn insert_aux< - 'a, - 'b: 'a, - 'c: 'a, - I: IntoIterator, - D: IntoIterator, - >( - &self, - _insert: I, - _delete: D, - ) -> sp_blockchain::Result<()> { - unimplemented!("Not supported on the RPC collator") - } - - fn get_aux(&self, _key: &[u8]) -> sp_blockchain::Result>> { - unimplemented!("Not supported on the RPC collator") - } -} - #[async_trait::async_trait] impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn validators( &self, at: Hash, - ) -> Result, sp_api::ApiError> { + ) -> Result, sp_api::ApiError> { Ok(self.rpc_client.parachain_host_validators(at).await?) } @@ -91,8 +65,8 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { at: Hash, ) -> Result< ( - Vec>, - polkadot_primitives::v2::GroupRotationInfo, + Vec>, + polkadot_primitives::GroupRotationInfo, ), sp_api::ApiError, > { @@ -103,7 +77,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { &self, at: Hash, ) -> Result< - Vec>, + Vec>, sp_api::ApiError, > { Ok(self.rpc_client.parachain_host_availability_cores(at).await?) @@ -113,7 +87,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { &self, at: Hash, para_id: cumulus_primitives_core::ParaId, - assumption: polkadot_primitives::v2::OccupiedCoreAssumption, + assumption: polkadot_primitives::OccupiedCoreAssumption, ) -> Result< Option< cumulus_primitives_core::PersistedValidationData< @@ -140,7 +114,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { Hash, polkadot_core_primitives::BlockNumber, >, - polkadot_primitives::v2::ValidationCodeHash, + polkadot_primitives::ValidationCodeHash, )>, sp_api::ApiError, > { @@ -158,7 +132,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { &self, at: Hash, para_id: cumulus_primitives_core::ParaId, - outputs: polkadot_primitives::v2::CandidateCommitments, + outputs: polkadot_primitives::CandidateCommitments, ) -> Result { Ok(self .rpc_client @@ -169,7 +143,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn session_index_for_child( &self, at: Hash, - ) -> Result { + ) -> Result { Ok(self.rpc_client.parachain_host_session_index_for_child(at).await?) } @@ -177,8 +151,8 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { &self, at: Hash, para_id: cumulus_primitives_core::ParaId, - assumption: polkadot_primitives::v2::OccupiedCoreAssumption, - ) -> Result, sp_api::ApiError> { + assumption: polkadot_primitives::OccupiedCoreAssumption, + ) -> Result, sp_api::ApiError> { Ok(self.rpc_client.parachain_host_validation_code(at, para_id, assumption).await?) } @@ -186,8 +160,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { &self, at: Hash, para_id: cumulus_primitives_core::ParaId, - ) -> Result>, sp_api::ApiError> - { + ) -> Result>, sp_api::ApiError> { Ok(self .rpc_client .parachain_host_candidate_pending_availability(at, para_id) @@ -197,7 +170,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn candidate_events( &self, at: Hash, - ) -> Result>, sp_api::ApiError> { + ) -> Result>, sp_api::ApiError> { Ok(self.rpc_client.parachain_host_candidate_events(at).await?) } @@ -234,8 +207,8 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn validation_code_by_hash( &self, at: Hash, - validation_code_hash: polkadot_primitives::v2::ValidationCodeHash, - ) -> Result, sp_api::ApiError> { + validation_code_hash: polkadot_primitives::ValidationCodeHash, + ) -> Result, sp_api::ApiError> { Ok(self .rpc_client .parachain_host_validation_code_by_hash(at, validation_code_hash) @@ -245,31 +218,34 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn on_chain_votes( &self, at: Hash, - ) -> Result>, sp_api::ApiError> { + ) -> Result>, sp_api::ApiError> { Ok(self.rpc_client.parachain_host_on_chain_votes(at).await?) } async fn session_info( &self, at: Hash, - index: polkadot_primitives::v2::SessionIndex, - ) -> Result, sp_api::ApiError> { + index: polkadot_primitives::SessionIndex, + ) -> Result, sp_api::ApiError> { Ok(self.rpc_client.parachain_host_session_info(at, index).await?) } - async fn session_info_before_version_2( + async fn session_executor_params( &self, at: Hash, - index: polkadot_primitives::v2::SessionIndex, - ) -> Result, sp_api::ApiError> { - Ok(self.rpc_client.parachain_host_session_info_before_version_2(at, index).await?) + session_index: polkadot_primitives::SessionIndex, + ) -> Result, sp_api::ApiError> { + Ok(self + .rpc_client + .parachain_host_session_executor_params(at, session_index) + .await?) } async fn submit_pvf_check_statement( &self, at: Hash, - stmt: polkadot_primitives::v2::PvfCheckStatement, - signature: polkadot_primitives::v2::ValidatorSignature, + stmt: polkadot_primitives::PvfCheckStatement, + signature: polkadot_primitives::ValidatorSignature, ) -> Result<(), sp_api::ApiError> { Ok(self .rpc_client @@ -280,7 +256,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn pvfs_require_precheck( &self, at: Hash, - ) -> Result, sp_api::ApiError> { + ) -> Result, sp_api::ApiError> { Ok(self.rpc_client.parachain_host_pvfs_require_precheck(at).await?) } @@ -288,8 +264,8 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { &self, at: Hash, para_id: cumulus_primitives_core::ParaId, - assumption: polkadot_primitives::v2::OccupiedCoreAssumption, - ) -> Result, sp_api::ApiError> { + assumption: polkadot_primitives::OccupiedCoreAssumption, + ) -> Result, sp_api::ApiError> { Ok(self .rpc_client .parachain_host_validation_code_hash(at, para_id, assumption) @@ -303,7 +279,7 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { async fn authorities( &self, at: Hash, - ) -> std::result::Result, sp_api::ApiError> { + ) -> std::result::Result, sp_api::ApiError> { Ok(self.rpc_client.authority_discovery_authorities(at).await?) } @@ -317,9 +293,9 @@ impl RuntimeApiSubsystemClient for BlockChainRpcClient { at: Hash, ) -> Result< Vec<( - polkadot_primitives::v2::SessionIndex, - polkadot_primitives::v2::CandidateHash, - polkadot_primitives::v2::DisputeState, + polkadot_primitives::SessionIndex, + polkadot_primitives::CandidateHash, + polkadot_primitives::DisputeState, )>, ApiError, > { @@ -332,34 +308,13 @@ impl AuthorityDiscovery for BlockChainRpcClient { async fn authorities( &self, at: Hash, - ) -> std::result::Result, sp_api::ApiError> { + ) -> std::result::Result, sp_api::ApiError> { let result = self.rpc_client.authority_discovery_authorities(at).await?; Ok(result) } } impl BlockChainRpcClient { - pub async fn local_listen_addresses( - &self, - ) -> Result, RelayChainError> { - let addresses = self.rpc_client.system_local_listen_addresses().await?; - tracing::debug!(target: LOG_TARGET, ?addresses, "Fetched listen address from RPC node."); - - let mut result_vec = Vec::new(); - for address in addresses { - match MultiaddrWithPeerId::from_str(&address) { - Ok(addr) => result_vec.push(addr), - Err(err) => - return Err(RelayChainError::GenericError(format!( - "Failed to parse a local listen addresses from the RPC node: {}", - err - ))), - } - } - - Ok(result_vec) - } - pub async fn import_notification_stream( &self, ) -> RelayChainResult + Send>>> { @@ -381,20 +336,9 @@ fn block_local(fut: impl Future) -> T { impl HeaderBackend for BlockChainRpcClient { fn header( &self, - id: BlockId, - ) -> sp_blockchain::Result::Header>> { - let fetch_header = |hash| block_local(self.rpc_client.chain_get_header(Some(hash))); - - match id { - BlockId::Hash(hash) => Ok(fetch_header(hash)?), - BlockId::Number(number) => { - if let Some(hash) = HeaderBackend::::hash(self, number)? { - Ok(fetch_header(hash)?) - } else { - Ok(None) - } - }, - } + hash: ::Hash, + ) -> sp_blockchain::Result::Header>> { + Ok(block_local(self.rpc_client.chain_get_header(Some(hash)))?) } fn info(&self) -> Info { @@ -422,21 +366,9 @@ impl HeaderBackend for BlockChainRpcClient { fn status( &self, - id: sp_api::BlockId, + hash: ::Hash, ) -> sp_blockchain::Result { - let exists = match id { - BlockId::Hash(_) => self.header(id)?.is_some(), - BlockId::Number(n) => { - let best_header = block_local(self.rpc_client.chain_get_header(None))?; - if let Some(best) = best_header { - n < best.number - } else { - false - } - }, - }; - - if exists { + if self.header(hash)?.is_some() { Ok(sc_client_api::blockchain::BlockStatus::InChain) } else { Ok(sc_client_api::blockchain::BlockStatus::Unknown) @@ -445,10 +377,8 @@ impl HeaderBackend for BlockChainRpcClient { fn number( &self, - hash: ::Hash, - ) -> sp_blockchain::Result< - Option<<::Header as polkadot_service::HeaderT>::Number>, - > { + hash: ::Hash, + ) -> sp_blockchain::Result::Header as HeaderT>::Number>> { let result = block_local(self.rpc_client.chain_get_header(Some(hash)))? .map(|maybe_header| maybe_header.number); Ok(result) @@ -456,8 +386,8 @@ impl HeaderBackend for BlockChainRpcClient { fn hash( &self, - number: polkadot_service::NumberFor, - ) -> sp_blockchain::Result::Hash>> { + number: NumberFor, + ) -> sp_blockchain::Result::Hash>> { Ok(block_local(self.rpc_client.chain_get_block_hash(number.into()))?) } } diff --git a/client/relay-chain-minimal-node/src/collator_overseer.rs b/client/relay-chain-minimal-node/src/collator_overseer.rs index 7ed01193026..dce68e3b1f6 100644 --- a/client/relay-chain-minimal-node/src/collator_overseer.rs +++ b/client/relay-chain-minimal-node/src/collator_overseer.rs @@ -14,8 +14,10 @@ // You should have received a copy of the GNU General Public License // along with Polkadot. If not, see . -use cumulus_relay_chain_interface::RelayChainError; +use futures::{select, StreamExt}; use lru::LruCache; +use std::sync::Arc; + use polkadot_node_network_protocol::{ peer_set::PeerSetProtocolNames, request_response::{ @@ -25,10 +27,10 @@ use polkadot_node_network_protocol::{ }; use polkadot_node_subsystem_util::metrics::{prometheus::Registry, Metrics}; use polkadot_overseer::{ - BlockInfo, DummySubsystem, MetricsTrait, Overseer, OverseerHandle, OverseerMetrics, SpawnGlue, - KNOWN_LEAVES_CACHE_SIZE, + BlockInfo, DummySubsystem, Handle, MetricsTrait, Overseer, OverseerHandle, OverseerMetrics, + SpawnGlue, KNOWN_LEAVES_CACHE_SIZE, }; -use polkadot_primitives::v2::CollatorPair; +use polkadot_primitives::CollatorPair; use polkadot_service::{ overseer::{ AvailabilityRecoverySubsystem, CollationGenerationSubsystem, CollatorProtocolSubsystem, @@ -37,18 +39,16 @@ use polkadot_service::{ }, Error, OverseerConnector, }; + use sc_authority_discovery::Service as AuthorityDiscoveryService; use sc_network::NetworkStateInfo; - -use std::sync::Arc; +use sc_service::TaskManager; +use sp_runtime::traits::Block as BlockT; use cumulus_primitives_core::relay_chain::{Block, Hash as PHash}; - -use polkadot_service::{Handle, TaskManager}; +use cumulus_relay_chain_interface::RelayChainError; use crate::BlockChainRpcClient; -use futures::{select, StreamExt}; -use sp_runtime::traits::Block as BlockT; /// Arguments passed for overseer construction. pub(crate) struct CollatorOverseerGenArgs<'a> { @@ -56,6 +56,8 @@ pub(crate) struct CollatorOverseerGenArgs<'a> { pub runtime_client: Arc, /// Underlying network service implementation. pub network_service: Arc>, + /// Syncing oracle. + pub sync_oracle: Box, /// Underlying authority discovery service. pub authority_discovery_service: AuthorityDiscoveryService, /// Receiver for collation request protocol @@ -79,6 +81,7 @@ fn build_overseer<'a>( CollatorOverseerGenArgs { runtime_client, network_service, + sync_oracle, authority_discovery_service, collation_req_receiver, available_data_req_receiver, @@ -92,7 +95,6 @@ fn build_overseer<'a>( (Overseer, Arc>, OverseerHandle), Error, > { - let leaves = Vec::new(); let metrics = ::register(registry)?; let spawner = SpawnGlue(spawner); let network_bridge_metrics: NetworkBridgeMetrics = Metrics::register(registry)?; @@ -122,7 +124,7 @@ fn build_overseer<'a>( .network_bridge_rx(NetworkBridgeRxSubsystem::new( network_service.clone(), authority_discovery_service.clone(), - Box::new(network_service.clone()), + sync_oracle, network_bridge_metrics.clone(), peer_set_protocol_names.clone(), )) @@ -146,11 +148,6 @@ fn build_overseer<'a>( .dispute_coordinator(DummySubsystem) .dispute_distribution(DummySubsystem) .chain_selection(DummySubsystem) - .leaves(Vec::from_iter( - leaves - .into_iter() - .map(|BlockInfo { hash, parent_hash: _, number }| (hash, number)), - )) .activation_external_listeners(Default::default()) .span_per_active_leaf(Default::default()) .active_leaves(Default::default()) diff --git a/client/relay-chain-minimal-node/src/lib.rs b/client/relay-chain-minimal-node/src/lib.rs index 1c61a7998bb..c5c2c2fd6e9 100644 --- a/client/relay-chain-minimal-node/src/lib.rs +++ b/client/relay-chain-minimal-node/src/lib.rs @@ -25,18 +25,15 @@ use polkadot_node_network_protocol::{ }; use polkadot_node_subsystem_util::metrics::prometheus::Registry; -use polkadot_primitives::v2::CollatorPair; +use polkadot_primitives::CollatorPair; use sc_authority_discovery::Service as AuthorityDiscoveryService; -use sc_network::{Event, NetworkService}; -use sc_network_common::service::NetworkEventStream; -use std::sync::Arc; - -use polkadot_service::{Configuration, TaskManager}; +use sc_network::{Event, NetworkEventStream, NetworkService}; +use sc_service::{Configuration, TaskManager}; +use sp_runtime::{app_crypto::Pair, traits::Block as BlockT}; use futures::StreamExt; - -use sp_runtime::{app_crypto::Pair, traits::Block as BlockT}; +use std::sync::Arc; mod collator_overseer; @@ -127,10 +124,6 @@ async fn new_minimal_relay_chain( ) -> Result { let role = config.role.clone(); - // Use the given RPC node as bootnode, since we do not have a chain spec with valid boot nodes - let mut boot_node_address = relay_chain_rpc_client.local_listen_addresses().await?; - config.network.boot_nodes.append(&mut boot_node_address); - let task_manager = { let registry = config.prometheus_config.as_ref().map(|cfg| &cfg.registry); TaskManager::new(config.tokio_handle.clone(), registry)? @@ -156,13 +149,14 @@ async fn new_minimal_relay_chain( let (collation_req_receiver, available_data_req_receiver) = build_request_response_protocol_receivers(&request_protocol_names, &mut config); - let (network, network_starter) = + let (network, network_starter, sync_oracle) = network::build_collator_network(network::BuildCollatorNetworkParams { config: &config, client: relay_chain_rpc_client.clone(), spawn_handle: task_manager.spawn_handle(), genesis_hash, - })?; + }) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; let authority_discovery_service = build_authority_discovery_service( &task_manager, @@ -175,6 +169,7 @@ async fn new_minimal_relay_chain( let overseer_args = CollatorOverseerGenArgs { runtime_client: relay_chain_rpc_client.clone(), network_service: network.clone(), + sync_oracle, authority_discovery_service, collation_req_receiver, available_data_req_receiver, @@ -189,7 +184,8 @@ async fn new_minimal_relay_chain( overseer_args, &task_manager, relay_chain_rpc_client.clone(), - )?; + ) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; network_starter.start_network(); diff --git a/client/relay-chain-minimal-node/src/network.rs b/client/relay-chain-minimal-node/src/network.rs index 9bd31ad7600..0a4ace78ca5 100644 --- a/client/relay-chain-minimal-node/src/network.rs +++ b/client/relay-chain-minimal-node/src/network.rs @@ -15,24 +15,17 @@ // along with Cumulus. If not, see . use polkadot_core_primitives::{Block, Hash}; -use polkadot_service::{BlockT, NumberFor}; +use sp_runtime::traits::{Block as BlockT, NumberFor}; -use polkadot_node_network_protocol::PeerId; -use sc_network::{NetworkService, SyncState}; - -use sc_client_api::HeaderBackend; -use sc_consensus::{BlockImportError, BlockImportStatus, JustificationSyncLink, Link}; -use sc_network_common::{ +use sc_network::{ config::{ NonDefaultSetConfig, NonReservedPeerMode, NotificationHandshake, ProtocolId, SetConfig, }, - protocol::role::Roles, - service::NetworkSyncForkRequest, - sync::{ - message::{BlockAnnouncesHandshake, BlockRequest}, - BadPeer, Metrics, OnBlockData, PollBlockAnnounceValidation, SyncStatus, - }, + NetworkService, }; + +use sc_client_api::HeaderBackend; +use sc_network_common::{role::Roles, sync::message::BlockAnnouncesHandshake}; use sc_service::{error::Error, Configuration, NetworkStarter, SpawnTaskHandle}; use std::{iter, sync::Arc}; @@ -53,12 +46,14 @@ pub(crate) struct BuildCollatorNetworkParams<'a> { /// Build the network service, the network status sinks and an RPC sender. pub(crate) fn build_collator_network( params: BuildCollatorNetworkParams, -) -> Result<(Arc>, NetworkStarter), Error> { +) -> Result< + (Arc>, NetworkStarter, Box), + Error, +> { let BuildCollatorNetworkParams { config, client, spawn_handle, genesis_hash } = params; let protocol_id = config.protocol_id(); - let chain_sync = DummyChainSync; - let block_announce_config = chain_sync.get_block_announce_proto_config::( + let block_announce_config = get_block_announce_proto_config::( protocol_id.clone(), &None, Roles::from(&config.role), @@ -76,13 +71,11 @@ pub(crate) fn build_collator_network( }) }, fork_id: None, - chain_sync: Box::new(chain_sync), network_config: config.network.clone(), chain: client.clone(), protocol_id, metrics_registry: config.prometheus_config.as_ref().map(|config| config.registry.clone()), block_announce_config, - chain_sync_service: Box::new(DummyChainSyncService::(Default::default())), request_response_protocol_configs: Vec::new(), }; @@ -108,251 +101,61 @@ pub(crate) fn build_collator_network( return } - network_worker.await + network_worker.run().await; }); let network_starter = NetworkStarter::new(network_start_tx); - Ok((network_service, network_starter)) -} - -/// Empty ChainSync shell. Syncing code is not necessary for -/// the minimal node, but network currently requires it. So -/// we provide a noop implementation. -struct DummyChainSync; - -impl DummyChainSync { - pub fn get_block_announce_proto_config( - &self, - protocol_id: ProtocolId, - fork_id: &Option, - roles: Roles, - best_number: NumberFor, - best_hash: B::Hash, - genesis_hash: B::Hash, - ) -> NonDefaultSetConfig { - let block_announces_protocol = { - let genesis_hash = genesis_hash.as_ref(); - if let Some(ref fork_id) = fork_id { - format!( - "/{}/{}/block-announces/1", - array_bytes::bytes2hex("", genesis_hash), - fork_id - ) - } else { - format!("/{}/block-announces/1", array_bytes::bytes2hex("", genesis_hash)) - } - }; - - NonDefaultSetConfig { - notifications_protocol: block_announces_protocol.into(), - fallback_names: iter::once( - format!("/{}/block-announces/1", protocol_id.as_ref()).into(), - ) - .collect(), - max_notification_size: 1024 * 1024, - handshake: Some(NotificationHandshake::new(BlockAnnouncesHandshake::::build( - roles, - best_number, - best_hash, - genesis_hash, - ))), - // NOTE: `set_config` will be ignored by `protocol.rs` as the block announcement - // protocol is still hardcoded into the peerset. - set_config: SetConfig { - in_peers: 0, - out_peers: 0, - reserved_nodes: Vec::new(), - non_reserved_mode: NonReservedPeerMode::Deny, - }, - } - } + Ok((network_service, network_starter, Box::new(SyncOracle {}))) } -impl sc_network_common::sync::ChainSync for DummyChainSync { - fn peer_info(&self, _who: &PeerId) -> Option> { - None - } - - fn status(&self) -> sc_network_common::sync::SyncStatus { - SyncStatus { - state: SyncState::Idle, - best_seen_block: None, - num_peers: 0, - queued_blocks: 0, - state_sync: None, - warp_sync: None, - } - } - - fn num_sync_requests(&self) -> usize { - 0 - } - - fn num_downloaded_blocks(&self) -> usize { - 0 - } - - fn num_peers(&self) -> usize { - 0 - } - - fn new_peer( - &mut self, - _who: PeerId, - _best_hash: ::Hash, - _best_number: polkadot_service::NumberFor, - ) -> Result< - Option>, - sc_network_common::sync::BadPeer, - > { - Ok(None) - } - - fn update_chain_info( - &mut self, - _best_hash: &::Hash, - _best_number: polkadot_service::NumberFor, - ) { - } - - fn request_justification( - &mut self, - _hash: &::Hash, - _number: polkadot_service::NumberFor, - ) { - } - - fn clear_justification_requests(&mut self) {} - - fn set_sync_fork_request( - &mut self, - _peers: Vec, - _hash: &::Hash, - _number: polkadot_service::NumberFor, - ) { - } - - fn on_block_data( - &mut self, - _who: &PeerId, - _request: Option>, - _response: sc_network_common::sync::message::BlockResponse, - ) -> Result, sc_network_common::sync::BadPeer> { - unimplemented!("Not supported on the RPC collator") - } - - fn on_block_justification( - &mut self, - _who: PeerId, - _response: sc_network_common::sync::message::BlockResponse, - ) -> Result, sc_network_common::sync::BadPeer> - { - unimplemented!("Not supported on the RPC collator") - } - - fn on_justification_import( - &mut self, - _hash: ::Hash, - _number: polkadot_service::NumberFor, - _success: bool, - ) { - } - - fn on_block_finalized( - &mut self, - _hash: &::Hash, - _number: polkadot_service::NumberFor, - ) { - } - - fn push_block_announce_validation( - &mut self, - _who: PeerId, - _hash: ::Hash, - _announce: sc_network_common::sync::message::BlockAnnounce<::Header>, - _is_best: bool, - ) { - } - - fn poll_block_announce_validation( - &mut self, - _cx: &mut std::task::Context, - ) -> std::task::Poll::Header>> - { - std::task::Poll::Pending - } - - fn peer_disconnected(&mut self, _who: &PeerId) {} - - fn metrics(&self) -> sc_network_common::sync::Metrics { - Metrics { - queued_blocks: 0, - fork_targets: 0, - justifications: sc_network_common::sync::metrics::Metrics { - pending_requests: 0, - active_requests: 0, - importing_requests: 0, - failed_requests: 0, - }, - } - } - - fn block_response_into_blocks( - &self, - _request: &sc_network_common::sync::message::BlockRequest, - _response: sc_network_common::sync::OpaqueBlockResponse, - ) -> Result>, String> { - unimplemented!("Not supported on the RPC collator") - } - - fn poll( - &mut self, - _cx: &mut std::task::Context, - ) -> std::task::Poll> { - std::task::Poll::Pending - } +struct SyncOracle; - fn send_block_request(&mut self, _who: PeerId, _request: BlockRequest) { - unimplemented!("Not supported on the RPC collator") +impl sp_consensus::SyncOracle for SyncOracle { + fn is_major_syncing(&self) -> bool { + false } - fn num_active_peers(&self) -> usize { - 0 + fn is_offline(&self) -> bool { + true } - - fn process_block_response_data(&mut self, _blocks_to_import: Result, BadPeer>) {} -} - -struct DummyChainSyncService(std::marker::PhantomData); - -impl NetworkSyncForkRequest> for DummyChainSyncService { - fn set_sync_fork_request(&self, _peers: Vec, _hash: B::Hash, _number: NumberFor) {} -} - -impl JustificationSyncLink for DummyChainSyncService { - fn request_justification(&self, _hash: &B::Hash, _number: NumberFor) {} - - fn clear_justification_requests(&self) {} } -impl Link for DummyChainSyncService { - fn blocks_processed( - &mut self, - _imported: usize, - _count: usize, - _results: Vec<(Result>, BlockImportError>, B::Hash)>, - ) { - } +fn get_block_announce_proto_config( + protocol_id: ProtocolId, + fork_id: &Option, + roles: Roles, + best_number: NumberFor, + best_hash: B::Hash, + genesis_hash: B::Hash, +) -> NonDefaultSetConfig { + let block_announces_protocol = { + let genesis_hash = genesis_hash.as_ref(); + if let Some(ref fork_id) = fork_id { + format!("/{}/{}/block-announces/1", array_bytes::bytes2hex("", genesis_hash), fork_id) + } else { + format!("/{}/block-announces/1", array_bytes::bytes2hex("", genesis_hash)) + } + }; - fn justification_imported( - &mut self, - _who: PeerId, - _hash: &B::Hash, - _number: NumberFor, - _success: bool, - ) { + NonDefaultSetConfig { + notifications_protocol: block_announces_protocol.into(), + fallback_names: iter::once(format!("/{}/block-announces/1", protocol_id.as_ref()).into()) + .collect(), + max_notification_size: 1024 * 1024, + handshake: Some(NotificationHandshake::new(BlockAnnouncesHandshake::::build( + roles, + best_number, + best_hash, + genesis_hash, + ))), + // NOTE: `set_config` will be ignored by `protocol.rs` as the block announcement + // protocol is still hardcoded into the peerset. + set_config: SetConfig { + in_peers: 0, + out_peers: 0, + reserved_nodes: Vec::new(), + non_reserved_mode: NonReservedPeerMode::Deny, + }, } - - fn request_justification(&mut self, _hash: &B::Hash, _number: NumberFor) {} } diff --git a/client/relay-chain-rpc-interface/Cargo.toml b/client/relay-chain-rpc-interface/Cargo.toml index 7b3659ea17f..78ddbe89d6a 100644 --- a/client/relay-chain-rpc-interface/Cargo.toml +++ b/client/relay-chain-rpc-interface/Cargo.toml @@ -6,28 +6,30 @@ edition = "2021" [dependencies] -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = { path = "../relay-chain-interface" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -tokio = { version = "1.23.0", features = ["sync"] } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-babe = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-authority-discovery = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-storage = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-rpc-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -futures = "0.3.25" +tokio = { version = "1.26.0", features = ["sync"] } + +futures = "0.3.26" futures-timer = "3.0.2" -parity-scale-codec = "3.2.1" +parity-scale-codec = "3.4.0" jsonrpsee = { version = "0.16.2", features = ["ws-client"] } tracing = "0.1.37" -async-trait = "0.1.59" +async-trait = "0.1.66" url = "2.3.1" -serde_json = "1.0.87" -serde = "1.0.151" -lru = "0.8.1" +serde_json = "1.0.93" +serde = "1.0.152" +lru = "0.9.0" diff --git a/client/relay-chain-rpc-interface/src/lib.rs b/client/relay-chain-rpc-interface/src/lib.rs index c8a1c4e46d9..475d5d905b6 100644 --- a/client/relay-chain-rpc-interface/src/lib.rs +++ b/client/relay-chain-rpc-interface/src/lib.rs @@ -18,14 +18,15 @@ use async_trait::async_trait; use core::time::Duration; use cumulus_primitives_core::{ relay_chain::{ - v2::{CommittedCandidateReceipt, OccupiedCoreAssumption, SessionIndex, ValidatorId}, - Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage, + CommittedCandidateReceipt, Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage, + OccupiedCoreAssumption, SessionIndex, ValidatorId, }, InboundDownwardMessage, ParaId, PersistedValidationData, }; use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface, RelayChainResult}; use futures::{FutureExt, Stream, StreamExt}; -use polkadot_service::Handle; +use polkadot_overseer::Handle; + use sc_client_api::StorageProof; use sp_core::sp_std::collections::btree_map::BTreeMap; use sp_state_machine::StorageValue; @@ -123,6 +124,10 @@ impl RelayChainInterface for RelayChainRpcInterface { self.rpc_client.chain_get_head(None).await } + async fn finalized_block_hash(&self) -> RelayChainResult { + self.rpc_client.chain_get_finalized_head().await + } + async fn is_major_syncing(&self) -> RelayChainResult { self.rpc_client.system_health().await.map(|h| h.is_syncing) } diff --git a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs index 3414dd652c6..9184ab74651 100644 --- a/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs +++ b/client/relay-chain-rpc-interface/src/reconnecting_ws_client.rs @@ -37,7 +37,7 @@ use jsonrpsee::{ ws_client::WsClientBuilder, }; use lru::LruCache; -use polkadot_service::TaskManager; +use sc_service::TaskManager; use std::{num::NonZeroUsize, sync::Arc}; use tokio::sync::mpsc::{ channel as tokio_channel, Receiver as TokioReceiver, Sender as TokioSender, diff --git a/client/relay-chain-rpc-interface/src/rpc_client.rs b/client/relay-chain-rpc-interface/src/rpc_client.rs index d8ef632b693..6a7dc0bb5ae 100644 --- a/client/relay-chain-rpc-interface/src/rpc_client.rs +++ b/client/relay-chain-rpc-interface/src/rpc_client.rs @@ -14,32 +14,33 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use crate::reconnecting_ws_client::ReconnectingWsClient; -use cumulus_primitives_core::{ - relay_chain::{ - v2::{ - CandidateCommitments, CandidateEvent, CommittedCandidateReceipt, CoreState, - DisputeState, GroupRotationInfo, OccupiedCoreAssumption, OldV1SessionInfo, - PvfCheckStatement, ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode, - ValidationCodeHash, ValidatorId, ValidatorIndex, ValidatorSignature, - }, - CandidateHash, Hash as RelayHash, Header as RelayHeader, InboundHrmpMessage, - }, - InboundDownwardMessage, ParaId, PersistedValidationData, -}; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; use futures::channel::mpsc::Receiver; use jsonrpsee::{core::params::ArrayParams, rpc_params}; use parity_scale_codec::{Decode, Encode}; -use polkadot_service::{BlockNumber, TaskManager}; +use serde::de::DeserializeOwned; +pub use url::Url; + use sc_client_api::StorageData; use sc_rpc_api::{state::ReadProof, system::Health}; -use serde::de::DeserializeOwned; +use sc_service::TaskManager; use sp_api::RuntimeVersion; use sp_consensus_babe::Epoch; use sp_core::sp_std::collections::btree_map::BTreeMap; use sp_storage::StorageKey; -pub use url::Url; + +use cumulus_primitives_core::{ + relay_chain::{ + vstaging::ExecutorParams, BlockNumber, CandidateCommitments, CandidateEvent, CandidateHash, + CommittedCandidateReceipt, CoreState, DisputeState, GroupRotationInfo, Hash as RelayHash, + Header as RelayHeader, InboundHrmpMessage, OccupiedCoreAssumption, PvfCheckStatement, + ScrapedOnChainVotes, SessionIndex, SessionInfo, ValidationCode, ValidationCodeHash, + ValidatorId, ValidatorIndex, ValidatorSignature, + }, + InboundDownwardMessage, ParaId, PersistedValidationData, +}; +use cumulus_relay_chain_interface::{RelayChainError, RelayChainResult}; + +use crate::reconnecting_ws_client::ReconnectingWsClient; const LOG_TARGET: &str = "relay-chain-rpc-client"; @@ -137,20 +138,6 @@ impl RelayChainRpcClient { self.call_remote_runtime_function("BabeApi_current_epoch", at, None::<()>).await } - /// Old method to fetch v1 session info. - pub async fn parachain_host_session_info_before_version_2( - &self, - at: RelayHash, - index: SessionIndex, - ) -> Result, RelayChainError> { - self.call_remote_runtime_function( - "ParachainHost_session_info_before_version_2", - at, - Some(index), - ) - .await - } - /// Scrape dispute relevant from on-chain, backing votes and resolved disputes. pub async fn parachain_host_on_chain_votes( &self, @@ -184,11 +171,6 @@ impl RelayChainRpcClient { .await } - /// Get local listen address of the node - pub async fn system_local_listen_addresses(&self) -> Result, RelayChainError> { - self.request("system_localListenAddresses", rpc_params![]).await - } - /// Get system health information pub async fn system_health(&self) -> Result { self.request("system_health", rpc_params![]).await @@ -282,7 +264,7 @@ impl RelayChainRpcClient { /// Get hash of n-th block. pub async fn chain_get_block_hash( &self, - block_number: Option, + block_number: Option, ) -> Result, RelayChainError> { let params = rpc_params![block_number]; self.request("chain_getBlockHash", params).await @@ -398,6 +380,20 @@ impl RelayChainRpcClient { .await } + /// Get the executor parameters for the given session, if stored + pub async fn parachain_host_session_executor_params( + &self, + at: RelayHash, + session_index: SessionIndex, + ) -> Result, RelayChainError> { + self.call_remote_runtime_function( + "ParachainHost_session_executor_params", + at, + Some(session_index), + ) + .await + } + /// Get header at specified hash pub async fn chain_get_header( &self, diff --git a/client/service/Cargo.toml b/client/service/Cargo.toml index cd2b147ef93..32496e57a75 100644 --- a/client/service/Cargo.toml +++ b/client/service/Cargo.toml @@ -5,29 +5,36 @@ authors = ["Parity Technologies "] edition = "2021" [dependencies] -parking_lot = "0.12.1" -futures = "0.3.24" +futures = "0.3.26" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network-transactions = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-client-cli = { path = "../cli" } cumulus-client-collator = { path = "../collator" } cumulus-client-consensus-common = { path = "../consensus/common" } cumulus-client-pov-recovery = { path = "../pov-recovery" } +cumulus-client-network = { path = "../network" } cumulus-primitives-core = { path = "../../primitives/core" } cumulus-relay-chain-interface = { path = "../relay-chain-interface" } cumulus-relay-chain-inprocess-interface = { path = "../relay-chain-inprocess-interface" } diff --git a/client/service/src/lib.rs b/client/service/src/lib.rs index 4e091c033a7..6f0d5790586 100644 --- a/client/service/src/lib.rs +++ b/client/service/src/lib.rs @@ -20,31 +20,41 @@ use cumulus_client_cli::CollatorOptions; use cumulus_client_consensus_common::ParachainConsensus; -use cumulus_client_pov_recovery::{PoVRecovery, RecoveryDelay}; +use cumulus_client_network::BlockAnnounceValidator; +use cumulus_client_pov_recovery::{PoVRecovery, RecoveryDelayRange, RecoveryHandle}; use cumulus_primitives_core::{CollectCollationInfo, ParaId}; use cumulus_relay_chain_inprocess_interface::build_inprocess_relay_chain; use cumulus_relay_chain_interface::{RelayChainInterface, RelayChainResult}; use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; -use polkadot_primitives::v2::CollatorPair; - +use futures::{ + channel::{mpsc, oneshot}, + FutureExt, StreamExt, +}; +use polkadot_primitives::{CollatorPair, OccupiedCoreAssumption}; use sc_client_api::{ - Backend as BackendT, BlockBackend, BlockchainEvents, Finalizer, UsageProvider, + Backend as BackendT, BlockBackend, BlockchainEvents, Finalizer, ProofProvider, UsageProvider, +}; +use sc_consensus::{ + import_queue::{ImportQueue, ImportQueueService}, + BlockImport, }; -use sc_consensus::{import_queue::ImportQueueService, BlockImport}; -use sc_service::{Configuration, TaskManager}; -use sc_telemetry::TelemetryWorkerHandle; +use sc_network::{config::SyncMode, NetworkService}; +use sc_network_sync::SyncingService; +use sc_network_transactions::TransactionsHandlerController; +use sc_service::{Configuration, NetworkStarter, SpawnTaskHandle, TaskManager, WarpSyncParams}; +use sc_telemetry::{log, TelemetryWorkerHandle}; +use sc_utils::mpsc::TracingUnboundedSender; use sp_api::ProvideRuntimeApi; -use sp_blockchain::HeaderBackend; -use sp_core::traits::SpawnNamed; -use sp_runtime::traits::Block as BlockT; - -use futures::channel::mpsc; +use sp_blockchain::{HeaderBackend, HeaderMetadata}; +use sp_core::{traits::SpawnNamed, Decode}; +use sp_runtime::traits::{Block as BlockT, BlockIdTo}; use std::{sync::Arc, time::Duration}; // 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. const RECOVERY_CHAN_SIZE: usize = 8; +const LOG_TARGET_SYNC: &str = "sync::cumulus"; /// Parameters given to [`start_collator`]. pub struct StartCollatorParams<'a, Block: BlockT, BS, Client, RCInterface, Spawner> { @@ -59,6 +69,7 @@ pub struct StartCollatorParams<'a, Block: BlockT, BS, Client, RCInterface, Spawn pub import_queue: Box>, pub collator_key: CollatorPair, pub relay_chain_slot_duration: Duration, + pub recovery_handle: Box, } /// Start a collator node for a parachain. @@ -79,6 +90,7 @@ pub async fn start_collator<'a, Block, BS, Client, Backend, RCInterface, Spawner import_queue, collator_key, relay_chain_slot_duration, + recovery_handle, }: StartCollatorParams<'a, Block, BS, Client, RCInterface, Spawner>, ) -> sc_service::error::Result<()> where @@ -113,15 +125,12 @@ where .spawn_essential_handle() .spawn("cumulus-consensus", None, consensus); - let overseer_handle = relay_chain_interface - .overseer_handle() - .map_err(|e| sc_service::Error::Application(Box::new(e)))?; - let pov_recovery = PoVRecovery::new( - overseer_handle.clone(), + recovery_handle, // We want that collators wait at maximum the relay chain slot duration before starting - // to recover blocks. - RecoveryDelay { min: core::time::Duration::ZERO, max: relay_chain_slot_duration }, + // to recover blocks. Additionally, we wait at least half the slot time to give the + // relay chain the chance to increase availability. + RecoveryDelayRange { min: relay_chain_slot_duration / 2, max: relay_chain_slot_duration }, client.clone(), import_queue, relay_chain_interface.clone(), @@ -132,6 +141,10 @@ where task_manager .spawn_essential_handle() .spawn("cumulus-pov-recovery", None, pov_recovery.run()); + + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; cumulus_client_collator::start_collator(cumulus_client_collator::StartCollatorParams { runtime_api: client, block_status, @@ -156,6 +169,7 @@ pub struct StartFullNodeParams<'a, Block: BlockT, Client, RCInterface> { pub announce_block: Arc>) + Send + Sync>, pub relay_chain_slot_duration: Duration, pub import_queue: Box>, + pub recovery_handle: Box, } /// Start a full node for a parachain. @@ -171,6 +185,7 @@ pub fn start_full_node( para_id, relay_chain_slot_duration, import_queue, + recovery_handle, }: StartFullNodeParams, ) -> sc_service::error::Result<()> where @@ -200,18 +215,17 @@ where .spawn_essential_handle() .spawn("cumulus-consensus", None, consensus); - let overseer_handle = relay_chain_interface - .overseer_handle() - .map_err(|e| sc_service::Error::Application(Box::new(e)))?; - let pov_recovery = PoVRecovery::new( - overseer_handle, + recovery_handle, // Full nodes should at least wait 2.5 minutes (assuming 6 seconds slot duration) and // in maximum 5 minutes before starting to recover blocks. Collators should already start // the recovery way before full nodes try to recover a certain block and then share the // block with the network using "the normal way". Full nodes are just the "last resort" // for block recovery. - RecoveryDelay { min: relay_chain_slot_duration * 25, max: relay_chain_slot_duration * 50 }, + RecoveryDelayRange { + min: relay_chain_slot_duration * 25, + max: relay_chain_slot_duration * 50, + }, client, import_queue, relay_chain_interface, @@ -264,3 +278,173 @@ pub async fn build_relay_chain_interface( ) } } + +/// Parameters given to [`build_network`]. +pub struct BuildNetworkParams< + 'a, + Block: BlockT, + Client: ProvideRuntimeApi + + BlockBackend + + HeaderMetadata + + HeaderBackend + + BlockIdTo + + 'static, + RCInterface, + IQ, +> where + Client::Api: sp_transaction_pool::runtime_api::TaggedTransactionQueue, +{ + pub parachain_config: &'a Configuration, + pub client: Arc, + pub transaction_pool: Arc>, + pub para_id: ParaId, + pub relay_chain_interface: RCInterface, + pub spawn_handle: SpawnTaskHandle, + pub import_queue: IQ, +} + +/// Build the network service, the network status sinks and an RPC sender. +pub async fn build_network<'a, Block, Client, RCInterface, IQ>( + BuildNetworkParams { + parachain_config, + client, + transaction_pool, + para_id, + spawn_handle, + relay_chain_interface, + import_queue, + }: BuildNetworkParams<'a, Block, Client, RCInterface, IQ>, +) -> sc_service::error::Result<( + Arc>, + TracingUnboundedSender>, + TransactionsHandlerController, + NetworkStarter, + Arc>, +)> +where + Block: BlockT, + Client: UsageProvider + + HeaderBackend + + sp_consensus::block_validation::Chain + + Send + + Sync + + BlockBackend + + BlockchainEvents + + ProvideRuntimeApi + + HeaderMetadata + + BlockIdTo + + ProofProvider + + 'static, + Client::Api: CollectCollationInfo + + sp_transaction_pool::runtime_api::TaggedTransactionQueue, + for<'b> &'b Client: BlockImport, + RCInterface: RelayChainInterface + Clone + 'static, + IQ: ImportQueue + 'static, +{ + let warp_sync_params = match parachain_config.network.sync_mode { + SyncMode::Warp => { + let target_block = warp_sync_get::( + para_id, + relay_chain_interface.clone(), + spawn_handle.clone(), + ); + Some(WarpSyncParams::WaitForTarget(target_block)) + }, + _ => None, + }; + + let block_announce_validator = BlockAnnounceValidator::new(relay_chain_interface, para_id); + let block_announce_validator_builder = move |_| Box::new(block_announce_validator) as Box<_>; + + sc_service::build_network(sc_service::BuildNetworkParams { + config: parachain_config, + client, + transaction_pool, + spawn_handle, + import_queue, + block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), + warp_sync_params, + }) +} + +/// Creates a new background task to wait for the relay chain to sync up and retrieve the parachain header +fn warp_sync_get( + para_id: ParaId, + relay_chain_interface: RCInterface, + spawner: SpawnTaskHandle, +) -> oneshot::Receiver<::Header> +where + B: BlockT + 'static, + RCInterface: RelayChainInterface + 'static, +{ + let (sender, receiver) = oneshot::channel::(); + spawner.spawn( + "cumulus-parachain-wait-for-target-block", + None, + async move { + log::debug!( + target: "cumulus-network", + "waiting for announce block in a background task...", + ); + + let _ = wait_for_target_block::(sender, para_id, relay_chain_interface) + .await + .map_err(|e| { + log::error!( + target: LOG_TARGET_SYNC, + "Unable to determine parachain target block {:?}", + e + ) + }); + } + .boxed(), + ); + + receiver +} + +/// Waits for the relay chain to have finished syncing and then gets the parachain header that corresponds to the last finalized relay chain block. +async fn wait_for_target_block( + sender: oneshot::Sender<::Header>, + para_id: ParaId, + relay_chain_interface: RCInterface, +) -> Result<(), Box> +where + B: BlockT + 'static, + RCInterface: RelayChainInterface + Send + 'static, +{ + let mut imported_blocks = relay_chain_interface.import_notification_stream().await?.fuse(); + while imported_blocks.next().await.is_some() { + let is_syncing = relay_chain_interface.is_major_syncing().await.map_err(|e| { + Box::::from(format!( + "Unable to determine sync status. {e}" + )) + })?; + + if !is_syncing { + let relay_chain_best_hash = relay_chain_interface + .finalized_block_hash() + .await + .map_err(|e| Box::new(e) as Box<_>)?; + + let validation_data = relay_chain_interface + .persisted_validation_data( + relay_chain_best_hash, + para_id, + OccupiedCoreAssumption::TimedOut, + ) + .await + .map_err(|e| format!("{e:?}"))? + .ok_or_else(|| "Could not find parachain head in relay chain")?; + + let target_block = B::Header::decode(&mut &validation_data.parent_head.0[..]) + .map_err(|e| format!("Failed to decode parachain head: {e}"))?; + + log::debug!(target: LOG_TARGET_SYNC, "Target block reached {:?}", target_block); + let _ = sender.send(target_block); + return Ok(()) + } + } + + Err("Stopping following imported blocks. Could not determine parachain target block".into()) +} diff --git a/file_header.txt b/file_header.txt index 95c7d94c8f3..04f0c5de271 100644 --- a/file_header.txt +++ b/file_header.txt @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify diff --git a/pallets/aura-ext/Cargo.toml b/pallets/aura-ext/Cargo.toml index edc4fa8a44f..bafd7452ffc 100644 --- a/pallets/aura-ext/Cargo.toml +++ b/pallets/aura-ext/Cargo.toml @@ -10,14 +10,13 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-application-crypto = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-application-crypto = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [dev-dependencies] @@ -37,8 +36,4 @@ std = [ "sp-runtime/std", "sp-std/std", ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", - "frame-executive/try-runtime" -] +try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/aura-ext/src/lib.rs b/pallets/aura-ext/src/lib.rs index ae531a9befd..e0290ec4022 100644 --- a/pallets/aura-ext/src/lib.rs +++ b/pallets/aura-ext/src/lib.rs @@ -232,6 +232,7 @@ where { panic!("Invalid AuRa seal"); } + I::execute_block(Block::new(header, extrinsics)); } } diff --git a/pallets/collator-selection/Cargo.toml b/pallets/collator-selection/Cargo.toml index cdbf6ad99e7..18f0ae1abcd 100644 --- a/pallets/collator-selection/Cargo.toml +++ b/pallets/collator-selection/Cargo.toml @@ -18,25 +18,25 @@ codec = { default-features = false, features = ["derive"], package = "parity-sca rand = { version = "0.8.5", features = ["std_rng"], default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-staking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-authorship = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-staking = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-authorship = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } -frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = ["std"] @@ -60,7 +60,4 @@ std = [ "pallet-session/std", ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", -] +try-runtime = [ "frame-support/try-runtime" ] diff --git a/pallets/collator-selection/src/benchmarking.rs b/pallets/collator-selection/src/benchmarking.rs index 2f4043092ae..8a222511137 100644 --- a/pallets/collator-selection/src/benchmarking.rs +++ b/pallets/collator-selection/src/benchmarking.rs @@ -19,7 +19,9 @@ use super::*; #[allow(unused)] use crate::Pallet as CollatorSelection; -use frame_benchmarking::{account, benchmarks, impl_benchmark_test_suite, whitelisted_caller}; +use frame_benchmarking::{ + account, benchmarks, impl_benchmark_test_suite, whitelisted_caller, BenchmarkError, +}; use frame_support::{ assert_ok, codec::Decode, @@ -110,7 +112,8 @@ benchmarks! { set_invulnerables { let b in 1 .. T::MaxInvulnerables::get(); let new_invulnerables = register_validators::(b); - let origin = T::UpdateOrigin::successful_origin(); + let origin = + T::UpdateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?; }: { assert_ok!( >::set_invulnerables(origin, new_invulnerables.clone()) @@ -122,7 +125,8 @@ benchmarks! { set_desired_candidates { let max: u32 = 999; - let origin = T::UpdateOrigin::successful_origin(); + let origin = + T::UpdateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?; }: { assert_ok!( >::set_desired_candidates(origin, max.clone()) @@ -134,7 +138,8 @@ benchmarks! { set_candidacy_bond { let bond_amount: BalanceOf = T::Currency::minimum_balance() * 10u32.into(); - let origin = T::UpdateOrigin::successful_origin(); + let origin = + T::UpdateOrigin::try_successful_origin().map_err(|_| BenchmarkError::Weightless)?; }: { assert_ok!( >::set_candidacy_bond(origin, bond_amount.clone()) diff --git a/pallets/collator-selection/src/lib.rs b/pallets/collator-selection/src/lib.rs index 34fa5b371ce..3dba6846cc3 100644 --- a/pallets/collator-selection/src/lib.rs +++ b/pallets/collator-selection/src/lib.rs @@ -165,7 +165,6 @@ pub mod pallet { } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); /// The invulnerable, fixed collators. @@ -496,10 +495,6 @@ pub mod pallet { DispatchClass::Mandatory, ); } - - fn note_uncle(_author: T::AccountId, _age: T::BlockNumber) { - //TODO can we ignore this? - } } /// Play the role of the session manager. diff --git a/pallets/collator-selection/src/mock.rs b/pallets/collator-selection/src/mock.rs index baa4655cce6..1e35e5dd011 100644 --- a/pallets/collator-selection/src/mock.rs +++ b/pallets/collator-selection/src/mock.rs @@ -39,13 +39,13 @@ frame_support::construct_runtime!( NodeBlock = Block, UncheckedExtrinsic = UncheckedExtrinsic, { - System: frame_system::{Pallet, Call, Config, Storage, Event}, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent}, - Session: pallet_session::{Pallet, Call, Storage, Event, Config}, - Aura: pallet_aura::{Pallet, Storage, Config}, - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event}, - CollatorSelection: collator_selection::{Pallet, Call, Storage, Event}, - Authorship: pallet_authorship::{Pallet, Call, Storage, Inherent}, + System: frame_system, + Timestamp: pallet_timestamp, + Session: pallet_session, + Aura: pallet_aura, + Balances: pallet_balances, + CollatorSelection: collator_selection, + Authorship: pallet_authorship, } ); @@ -110,8 +110,6 @@ impl FindAuthor for Author4 { impl pallet_authorship::Config for Test { type FindAuthor = Author4; - type UncleGenerations = (); - type FilterUncle = (); type EventHandler = CollatorSelection; } diff --git a/pallets/collator-selection/src/weights.rs b/pallets/collator-selection/src/weights.rs index 66292751b97..32e816b5dbe 100644 --- a/pallets/collator-selection/src/weights.rs +++ b/pallets/collator-selection/src/weights.rs @@ -39,42 +39,42 @@ pub trait WeightInfo { pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { fn set_invulnerables(b: u32) -> Weight { - Weight::from_ref_time(18_563_000 as u64) + Weight::from_parts(18_563_000 as u64, 0) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(68_000 as u64).saturating_mul(b as u64)) + .saturating_add(Weight::from_parts(68_000 as u64, 0).saturating_mul(b as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } fn set_desired_candidates() -> Weight { - Weight::from_ref_time(16_363_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + Weight::from_parts(16_363_000 as u64, 0).saturating_add(T::DbWeight::get().writes(1 as u64)) } fn set_candidacy_bond() -> Weight { - Weight::from_ref_time(16_840_000 as u64).saturating_add(T::DbWeight::get().writes(1 as u64)) + Weight::from_parts(16_840_000 as u64, 0).saturating_add(T::DbWeight::get().writes(1 as u64)) } fn register_as_candidate(c: u32) -> Weight { - Weight::from_ref_time(71_196_000 as u64) + Weight::from_parts(71_196_000 as u64, 0) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(198_000 as u64).saturating_mul(c as u64)) + .saturating_add(Weight::from_parts(198_000 as u64, 0).saturating_mul(c as u64)) .saturating_add(T::DbWeight::get().reads(4 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn leave_intent(c: u32) -> Weight { - Weight::from_ref_time(55_336_000 as u64) + Weight::from_parts(55_336_000 as u64, 0) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64)) + .saturating_add(Weight::from_parts(151_000 as u64, 0).saturating_mul(c as u64)) .saturating_add(T::DbWeight::get().reads(1 as u64)) .saturating_add(T::DbWeight::get().writes(2 as u64)) } fn note_author() -> Weight { - Weight::from_ref_time(71_461_000 as u64) + Weight::from_parts(71_461_000 as u64, 0) .saturating_add(T::DbWeight::get().reads(3 as u64)) .saturating_add(T::DbWeight::get().writes(4 as u64)) } fn new_session(r: u32, c: u32) -> Weight { - Weight::from_ref_time(0 as u64) + Weight::from_parts(0 as u64, 0) // Standard Error: 1_010_000 - .saturating_add(Weight::from_ref_time(109_961_000 as u64).saturating_mul(r as u64)) + .saturating_add(Weight::from_parts(109_961_000 as u64, 0).saturating_mul(r as u64)) // Standard Error: 1_010_000 - .saturating_add(Weight::from_ref_time(151_952_000 as u64).saturating_mul(c as u64)) + .saturating_add(Weight::from_parts(151_952_000 as u64, 0).saturating_mul(c as u64)) .saturating_add(T::DbWeight::get().reads((1 as u64).saturating_mul(r as u64))) .saturating_add(T::DbWeight::get().reads((2 as u64).saturating_mul(c as u64))) .saturating_add(T::DbWeight::get().writes((2 as u64).saturating_mul(r as u64))) @@ -85,44 +85,44 @@ impl WeightInfo for SubstrateWeight { // For backwards compatibility and tests impl WeightInfo for () { fn set_invulnerables(b: u32) -> Weight { - Weight::from_ref_time(18_563_000 as u64) + Weight::from_parts(18_563_000 as u64, 0) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(68_000 as u64).saturating_mul(b as u64)) + .saturating_add(Weight::from_parts(68_000 as u64, 0).saturating_mul(b as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } fn set_desired_candidates() -> Weight { - Weight::from_ref_time(16_363_000 as u64) + Weight::from_parts(16_363_000 as u64, 0) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } fn set_candidacy_bond() -> Weight { - Weight::from_ref_time(16_840_000 as u64) + Weight::from_parts(16_840_000 as u64, 0) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } fn register_as_candidate(c: u32) -> Weight { - Weight::from_ref_time(71_196_000 as u64) + Weight::from_parts(71_196_000 as u64, 0) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(198_000 as u64).saturating_mul(c as u64)) + .saturating_add(Weight::from_parts(198_000 as u64, 0).saturating_mul(c as u64)) .saturating_add(RocksDbWeight::get().reads(4 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn leave_intent(c: u32) -> Weight { - Weight::from_ref_time(55_336_000 as u64) + Weight::from_parts(55_336_000 as u64, 0) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(151_000 as u64).saturating_mul(c as u64)) + .saturating_add(Weight::from_parts(151_000 as u64, 0).saturating_mul(c as u64)) .saturating_add(RocksDbWeight::get().reads(1 as u64)) .saturating_add(RocksDbWeight::get().writes(2 as u64)) } fn note_author() -> Weight { - Weight::from_ref_time(71_461_000 as u64) + Weight::from_parts(71_461_000 as u64, 0) .saturating_add(RocksDbWeight::get().reads(3 as u64)) .saturating_add(RocksDbWeight::get().writes(4 as u64)) } fn new_session(r: u32, c: u32) -> Weight { - Weight::from_ref_time(0 as u64) + Weight::from_parts(0 as u64, 0) // Standard Error: 1_010_000 - .saturating_add(Weight::from_ref_time(109_961_000 as u64).saturating_mul(r as u64)) + .saturating_add(Weight::from_parts(109_961_000 as u64, 0).saturating_mul(r as u64)) // Standard Error: 1_010_000 - .saturating_add(Weight::from_ref_time(151_952_000 as u64).saturating_mul(c as u64)) + .saturating_add(Weight::from_parts(151_952_000 as u64, 0).saturating_mul(c as u64)) .saturating_add(RocksDbWeight::get().reads((1 as u64).saturating_mul(r as u64))) .saturating_add(RocksDbWeight::get().reads((2 as u64).saturating_mul(c as u64))) .saturating_add(RocksDbWeight::get().writes((2 as u64).saturating_mul(r as u64))) diff --git a/pallets/dmp-queue/Cargo.toml b/pallets/dmp-queue/Cargo.toml index 18e5af26647..1eaea4f49d3 100644 --- a/pallets/dmp-queue/Cargo.toml +++ b/pallets/dmp-queue/Cargo.toml @@ -10,22 +10,21 @@ log = { version = "0.4.17", default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } - # Polkadot -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core", default-features = false } [dev-dependencies] -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [features] default = [ "std" ] @@ -42,7 +41,4 @@ std = [ "cumulus-primitives-core/std", "mangata-support/std" ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", -] +try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/dmp-queue/src/lib.rs b/pallets/dmp-queue/src/lib.rs index 1e0f0576972..05abfe4a214 100644 --- a/pallets/dmp-queue/src/lib.rs +++ b/pallets/dmp-queue/src/lib.rs @@ -34,13 +34,16 @@ pub use pallet::*; use scale_info::TypeInfo; use sp_runtime::RuntimeDebug; use sp_std::{convert::TryFrom, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XcmWeight}, - VersionedXcm, MAX_XCM_DECODE_DEPTH, -}; +use xcm::{latest::prelude::*, VersionedXcm, MAX_XCM_DECODE_DEPTH}; const DEFAULT_POV_SIZE: u64 = 64 * 1024; // 64 KB +// Maximum amount of messages to process per block. This is a temporary measure until we properly +// account for proof size weights. +const MAX_MESSAGES_PER_BLOCK: u8 = 10; +// Maximum amount of messages that can exist in the overweight queue at any given time. +const MAX_OVERWEIGHT_MESSAGES: u32 = 1000; + #[derive(Copy, Clone, Eq, PartialEq, Encode, Decode, RuntimeDebug, TypeInfo)] pub struct ConfigData { /// The maximum amount of weight any individual message may consume. Messages above this weight @@ -88,7 +91,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] #[pallet::storage_version(migration::STORAGE_VERSION)] #[pallet::without_storage_info] pub struct Pallet(_); @@ -122,8 +124,13 @@ pub mod pallet { /// The overweight messages. #[pallet::storage] - pub(super) type Overweight = - StorageMap<_, Blake2_128Concat, OverweightIndex, (RelayBlockNumber, Vec), OptionQuery>; + pub(super) type Overweight = CountedStorageMap< + _, + Blake2_128Concat, + OverweightIndex, + (RelayBlockNumber, Vec), + OptionQuery, + >; #[pallet::error] pub enum Error { @@ -150,23 +157,12 @@ pub mod pallet { #[pallet::call] impl Pallet { /// Service a single overweight message. - /// - /// - `origin`: Must pass `ExecuteOverweightOrigin`. - /// - `index`: The index of the overweight message to service. - /// - `weight_limit`: The amount of weight that message execution may take. - /// - /// Errors: - /// - `Unknown`: Message of `index` is unknown. - /// - `OverLimit`: Message execution may use greater than `weight_limit`. - /// - /// Events: - /// - `OverweightServiced`: On success. #[pallet::call_index(0)] - #[pallet::weight(Weight::from_ref_time(weight_limit.saturating_add(1_000_000)))] + #[pallet::weight(weight_limit.saturating_add(Weight::from_parts(1_000_000, 0)))] pub fn service_overweight( origin: OriginFor, index: OverweightIndex, - weight_limit: XcmWeight, + weight_limit: Weight, ) -> DispatchResultWithPostInfo { T::ExecuteOverweightOrigin::ensure_origin(origin)?; @@ -176,12 +172,11 @@ pub mod pallet { ); let (sent_at, data) = Overweight::::get(index).ok_or(Error::::Unknown)?; - let weight_used = - Self::try_service_message(Weight::from_ref_time(weight_limit), sent_at, &data[..]) - .map_err(|_| Error::::OverLimit)?; + let weight_used = Self::try_service_message(weight_limit, sent_at, &data[..]) + .map_err(|_| Error::::OverLimit)?; Overweight::::remove(index); Self::deposit_event(Event::OverweightServiced { overweight_index: index, weight_used }); - Ok(Some(weight_used.saturating_add(Weight::from_ref_time(1_000_000))).into()) + Ok(Some(weight_used.saturating_add(Weight::from_parts(1_000_000, 0))).into()) } } @@ -204,6 +199,8 @@ pub mod pallet { }, /// Downward message from the overweight queue was executed. OverweightServiced { overweight_index: OverweightIndex, weight_used: Weight }, + /// The maximum number of downward messages was. + MaxMessagesExhausted { message_id: MessageId }, } impl Pallet { @@ -211,12 +208,19 @@ pub mod pallet { /// /// Returns the weight consumed by executing messages in the queue. fn service_queue(limit: Weight) -> Weight { - PageIndex::::mutate(|page_index| Self::do_service_queue(limit, page_index)) + let mut messages_processed = 0; + PageIndex::::mutate(|page_index| { + Self::do_service_queue(limit, page_index, &mut messages_processed) + }) } /// Exactly equivalent to `service_queue` but expects a mutable `page_index` to be passed /// in and any changes stored. - fn do_service_queue(limit: Weight, page_index: &mut PageIndexData) -> Weight { + fn do_service_queue( + limit: Weight, + page_index: &mut PageIndexData, + messages_processed: &mut u8, + ) -> Weight { let mut used = Weight::zero(); let config = Configuration::::get(); while page_index.begin_used < page_index.end_used { @@ -228,6 +232,12 @@ pub mod pallet { // Or just ignore the entire page if all messages in it are processed let page = Pages::::take(page_index.begin_used); for (i, &(sent_at, ref data)) in page.iter().enumerate() { + if *messages_processed >= MAX_MESSAGES_PER_BLOCK { + // Exceeded block message limit - put the remaining messages back and bail + Pages::::insert(page_index.begin_used, &page[i..]); + return used + } + *messages_processed += 1; match Self::try_service_message(limit.saturating_sub(used), sent_at, &data[..]) { Ok(w) => used += w, @@ -306,12 +316,12 @@ pub mod pallet { !T::MaintenanceStatusProvider::is_maintenance(), (message_id, Weight::zero()) ); - let outcome = T::XcmExecutor::execute_xcm(Parent, x, limit.ref_time()); + let outcome = T::XcmExecutor::execute_xcm(Parent, x, message_id, limit); match outcome { Outcome::Error(XcmError::WeightLimitReached(required)) => - Err((message_id, Weight::from_ref_time(required))), + Err((message_id, required)), outcome => { - let weight_used = Weight::from_ref_time(outcome.weight_used()); + let weight_used = outcome.weight_used(); Self::deposit_event(Event::ExecutedDownward { message_id, outcome }); Ok(weight_used) }, @@ -329,11 +339,12 @@ pub mod pallet { iter: impl Iterator)>, limit: Weight, ) -> Weight { + let mut messages_processed = 0; let mut page_index = PageIndex::::get(); let config = Configuration::::get(); // First try to use `max_weight` to service the current queue. - let mut used = Self::do_service_queue(limit, &mut page_index); + let mut used = Self::do_service_queue(limit, &mut page_index, &mut messages_processed); // Then if the queue is empty, use the weight remaining to service the incoming messages // and once we run out of weight, place them in the queue. @@ -347,39 +358,52 @@ pub mod pallet { for (i, (sent_at, data)) in iter.enumerate() { if maybe_enqueue_page.is_none() { - // We're not currently enqueuing - try to execute inline. - let remaining_weight = limit.saturating_sub(used); - match Self::try_service_message(remaining_weight, sent_at, &data[..]) { - Ok(consumed) => used += consumed, - Err((message_id, required_weight)) => - // Too much weight required right now. - { - if required_weight.any_gt(config.max_individual) { - // overweight - add to overweight queue and continue with - // message execution. - let overweight_index = page_index.overweight_count; - Overweight::::insert(overweight_index, (sent_at, data)); - Self::deposit_event(Event::OverweightEnqueued { - message_id, - overweight_index, - required_weight, - }); - page_index.overweight_count += 1; - // Not needed for control flow, but only to ensure that the compiler - // understands that we won't attempt to re-use `data` later. - continue - } else { - // not overweight. stop executing inline and enqueue normally - // from here on. - let item_count_left = item_count.saturating_sub(i); - maybe_enqueue_page = Some(Vec::with_capacity(item_count_left)); - Self::deposit_event(Event::WeightExhausted { - message_id, - remaining_weight, - required_weight, - }); - } - }, + if messages_processed >= MAX_MESSAGES_PER_BLOCK { + let item_count_left = item_count.saturating_sub(i); + maybe_enqueue_page = Some(Vec::with_capacity(item_count_left)); + + Self::deposit_event(Event::MaxMessagesExhausted { + message_id: sp_io::hashing::blake2_256(&data), + }); + } else { + // We're not currently enqueuing - try to execute inline. + let remaining_weight = limit.saturating_sub(used); + messages_processed += 1; + match Self::try_service_message(remaining_weight, sent_at, &data[..]) { + Ok(consumed) => used += consumed, + Err((message_id, required_weight)) => + // Too much weight required right now. + { + let is_under_limit = + Overweight::::count() < MAX_OVERWEIGHT_MESSAGES; + used.saturating_accrue(T::DbWeight::get().reads(1)); + if required_weight.any_gt(config.max_individual) && is_under_limit { + // overweight - add to overweight queue and continue with + // message execution. + let overweight_index = page_index.overweight_count; + Overweight::::insert(overweight_index, (sent_at, data)); + Self::deposit_event(Event::OverweightEnqueued { + message_id, + overweight_index, + required_weight, + }); + page_index.overweight_count += 1; + // Not needed for control flow, but only to ensure that the compiler + // understands that we won't attempt to re-use `data` later. + continue + } else { + // not overweight. stop executing inline and enqueue normally + // from here on. + let item_count_left = item_count.saturating_sub(i); + maybe_enqueue_page = Some(Vec::with_capacity(item_count_left)); + Self::deposit_event(Event::WeightExhausted { + message_id, + remaining_weight, + required_weight, + }); + } + }, + } } } // Cannot be an `else` here since the `maybe_enqueue_page` may have changed. @@ -520,28 +544,58 @@ mod tests { }) } + pub enum Weightless {} + impl PreparedMessage for Weightless { + fn weight_of(&self) -> Weight { + unreachable!() + } + } + pub struct MockExec; impl ExecuteXcm for MockExec { + type Prepared = Weightless; + + fn prepare(_message: Xcm) -> Result { + unreachable!() + } + + fn execute( + _origin: impl Into, + _pre: Weightless, + _hash: XcmHash, + _weight_credit: Weight, + ) -> Outcome { + unreachable!() + } + fn execute_xcm_in_credit( _origin: impl Into, message: Xcm, - weight_limit: XCMWeight, - _credit: XCMWeight, + _hash: XcmHash, + weight_limit: Weight, + _weight_credit: Weight, ) -> Outcome { let o = match (message.0.len(), &message.0.first()) { (1, Some(Transact { require_weight_at_most, .. })) => { - if *require_weight_at_most <= weight_limit { + if require_weight_at_most.all_lte(weight_limit) { Outcome::Complete(*require_weight_at_most) } else { Outcome::Error(XcmError::WeightLimitReached(*require_weight_at_most)) } }, // use 1000 to decide that it's not supported. - _ => Outcome::Incomplete(1000.min(weight_limit), XcmError::Unimplemented), + _ => Outcome::Incomplete( + Weight::from_parts(1000, 1000).min(weight_limit), + XcmError::Unimplemented, + ), }; TRACE.with(|q| q.borrow_mut().push((message, o.clone()))); o } + + fn charge_fees(_location: impl Into, _fees: MultiAssets) -> XcmResult { + Err(XcmError::Unimplemented) + } } impl Config for Test { @@ -577,20 +631,23 @@ mod tests { DmpQueue::handle_dmp_messages(iter, limit) } - fn msg(weight: XCMWeight) -> Xcm { + fn msg(weight: u64) -> Xcm { Xcm(vec![Transact { - origin_type: OriginKind::Native, - require_weight_at_most: weight, + origin_kind: OriginKind::Native, + require_weight_at_most: Weight::from_parts(weight, weight), call: Vec::new().into(), }]) } - fn msg_complete(weight: XCMWeight) -> (Xcm, Outcome) { - (msg(weight), Outcome::Complete(weight)) + fn msg_complete(weight: u64) -> (Xcm, Outcome) { + (msg(weight), Outcome::Complete(Weight::from_parts(weight, weight))) } - fn msg_limit_reached(weight: XCMWeight) -> (Xcm, Outcome) { - (msg(weight), Outcome::Error(XcmError::WeightLimitReached(weight))) + fn msg_limit_reached(weight: u64) -> (Xcm, Outcome) { + ( + msg(weight), + Outcome::Error(XcmError::WeightLimitReached(Weight::from_parts(weight, weight))), + ) } fn pages_queued() -> PageCounter { @@ -610,7 +667,7 @@ mod tests { #[test] fn basic_setup_works() { new_test_ext().execute_with(|| { - let weight_used = handle_messages(&[], Weight::from_ref_time(1000)); + let weight_used = handle_messages(&[], Weight::from_parts(1000, 1000)); assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), Vec::new()); assert!(queue_is_empty()); @@ -621,8 +678,8 @@ mod tests { fn service_inline_complete_works() { new_test_ext().execute_with(|| { let incoming = vec![msg(1000), msg(1001)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2001)); + let weight_used = handle_messages(&incoming, Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2001, 2001)); assert_eq!(take_trace(), vec![msg_complete(1000), msg_complete(1001)]); assert!(queue_is_empty()); }); @@ -633,8 +690,8 @@ mod tests { new_test_ext().execute_with(|| { let enqueued = vec![msg(1000), msg(1001), msg(1002)]; enqueue(&enqueued); - let weight_used = handle_messages(&[], Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2001)); + let weight_used = handle_messages(&[], Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2001, 2001)); assert_eq!( take_trace(), vec![msg_complete(1000), msg_complete(1001), msg_limit_reached(1002),] @@ -646,7 +703,7 @@ mod tests { fn enqueue_works() { new_test_ext().execute_with(|| { let incoming = vec![msg(1000), msg(1001), msg(1002)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(999)); + let weight_used = handle_messages(&incoming, Weight::from_parts(999, 999)); assert_eq!(weight_used, Weight::zero()); assert_eq!( PageIndex::::get(), @@ -655,15 +712,15 @@ mod tests { assert_eq!(Pages::::get(0).len(), 3); assert_eq!(take_trace(), vec![msg_limit_reached(1000)]); - let weight_used = handle_messages(&[], Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2001)); + let weight_used = handle_messages(&[], Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2001, 2001)); assert_eq!( take_trace(), vec![msg_complete(1000), msg_complete(1001), msg_limit_reached(1002),] ); - let weight_used = handle_messages(&[], Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(1002)); + let weight_used = handle_messages(&[], Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(1002, 1002)); assert_eq!(take_trace(), vec![msg_complete(1002),]); assert!(queue_is_empty()); }); @@ -673,14 +730,14 @@ mod tests { fn service_inline_then_enqueue_works() { new_test_ext().execute_with(|| { let incoming = vec![msg(1000), msg(1001), msg(1002)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(1500)); - assert_eq!(weight_used, Weight::from_ref_time(1000)); + let weight_used = handle_messages(&incoming, Weight::from_parts(1500, 1500)); + assert_eq!(weight_used, Weight::from_parts(1000, 1000)); assert_eq!(pages_queued(), 1); assert_eq!(Pages::::get(0).len(), 2); assert_eq!(take_trace(), vec![msg_complete(1000), msg_limit_reached(1001),]); - let weight_used = handle_messages(&[], Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2003)); + let weight_used = handle_messages(&[], Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2003, 2003)); assert_eq!(take_trace(), vec![msg_complete(1001), msg_complete(1002),]); assert!(queue_is_empty()); }); @@ -692,8 +749,8 @@ mod tests { let enqueued = vec![msg(1000), msg(1001)]; let incoming = vec![msg(1002), msg(1003)]; enqueue(&enqueued); - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(4006)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::from_parts(4006, 4006)); assert_eq!( take_trace(), vec![ @@ -713,24 +770,24 @@ mod tests { MockMaintenanceStatusProvider::set_maintenance_status(true, false); let incoming = vec![msg(1002), msg(1003)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(0)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![]); assert_eq!(pages_queued(), 1); let enqueued = vec![msg(1000), msg(1001)]; let incoming = vec![msg(1004), msg(1005)]; enqueue(&enqueued); - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(0)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![]); assert_eq!(pages_queued(), 3); MockMaintenanceStatusProvider::set_maintenance_status(false, false); let incoming = vec![msg(1006), msg(1007)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2005)); + let weight_used = handle_messages(&incoming, Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2005, 2005)); assert_eq!( take_trace(), vec![msg_complete(1002), msg_complete(1003), msg_limit_reached(1000)] @@ -738,8 +795,8 @@ mod tests { assert_eq!(pages_queued(), 3); let incoming = vec![msg(1008), msg(1009)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(10000)); - assert_eq!(weight_used, Weight::from_ref_time(8040)); + let weight_used = handle_messages(&incoming, Weight::from_parts(10000, 10000)); + assert_eq!(weight_used, Weight::from_parts(8040, 8040)); assert_eq!( take_trace(), vec![ @@ -763,27 +820,29 @@ mod tests { MockMaintenanceStatusProvider::set_maintenance_status(true, false); // Set the overweight threshold to 9999. - Configuration::::put(ConfigData { max_individual: Weight::from_ref_time(9999) }); + Configuration::::put(ConfigData { + max_individual: Weight::from_parts(9999, 9999), + }); let incoming = vec![msg(1002), msg(10003)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(0)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![]); assert_eq!(pages_queued(), 1); let enqueued = vec![msg(1000), msg(1001)]; let incoming = vec![msg(1004), msg(1005)]; enqueue(&enqueued); - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(0)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![]); assert_eq!(pages_queued(), 3); MockMaintenanceStatusProvider::set_maintenance_status(false, false); let incoming = vec![msg(1006), msg(1007)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2002)); + let weight_used = handle_messages(&incoming, Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2002, 2002)); assert_eq!( take_trace(), vec![ @@ -797,8 +856,8 @@ mod tests { assert_eq!(overweights(), vec![0]); let incoming = vec![msg(1008), msg(1009)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(10000)); - assert_eq!(weight_used, Weight::from_ref_time(7040)); + let weight_used = handle_messages(&incoming, Weight::from_parts(10000, 10000)); + assert_eq!(weight_used, Weight::from_parts(7040, 7040)); assert_eq!( take_trace(), vec![ @@ -822,19 +881,19 @@ mod tests { let enqueued = vec![msg(1000), msg(10001)]; let incoming = vec![msg(1002), msg(1003)]; enqueue(&enqueued); - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(1000)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::from_parts(1000, 1000)); assert_eq!(take_trace(), vec![msg_complete(1000), msg_limit_reached(10001),]); assert_eq!(pages_queued(), 2); // 5000 is not enough to process the 10001 blocker, so nothing happens. - let weight_used = handle_messages(&[], Weight::from_ref_time(5000)); + let weight_used = handle_messages(&[], Weight::from_parts(5000, 5000)); assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![msg_limit_reached(10001),]); // 20000 is now enough to process everything. - let weight_used = handle_messages(&[], Weight::from_ref_time(20000)); - assert_eq!(weight_used, Weight::from_ref_time(12006)); + let weight_used = handle_messages(&[], Weight::from_parts(20000, 20000)); + assert_eq!(weight_used, Weight::from_parts(12006, 12006)); assert_eq!( take_trace(), vec![msg_complete(10001), msg_complete(1002), msg_complete(1003),] @@ -849,8 +908,8 @@ mod tests { let enqueued = vec![msg(1000), msg(1001)]; let incoming = vec![msg(10002), msg(1003)]; enqueue(&enqueued); - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(2001)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::from_parts(2001, 2001)); assert_eq!( take_trace(), vec![msg_complete(1000), msg_complete(1001), msg_limit_reached(10002),] @@ -858,8 +917,8 @@ mod tests { assert_eq!(pages_queued(), 1); // 20000 is now enough to process everything. - let weight_used = handle_messages(&[], Weight::from_ref_time(20000)); - assert_eq!(weight_used, Weight::from_ref_time(11005)); + let weight_used = handle_messages(&[], Weight::from_parts(20000, 20000)); + assert_eq!(weight_used, Weight::from_parts(11005, 11005)); assert_eq!(take_trace(), vec![msg_complete(10002), msg_complete(1003),]); assert!(queue_is_empty()); }); @@ -871,8 +930,8 @@ mod tests { let enqueued = vec![msg(1000), msg(1001)]; let incoming = vec![msg(1002), msg(10003)]; enqueue(&enqueued); - let weight_used = handle_messages(&incoming, Weight::from_ref_time(5000)); - assert_eq!(weight_used, Weight::from_ref_time(3003)); + let weight_used = handle_messages(&incoming, Weight::from_parts(5000, 5000)); + assert_eq!(weight_used, Weight::from_parts(3003, 3003)); assert_eq!( take_trace(), vec![ @@ -885,8 +944,8 @@ mod tests { assert_eq!(pages_queued(), 1); // 20000 is now enough to process everything. - let weight_used = handle_messages(&[], Weight::from_ref_time(20000)); - assert_eq!(weight_used, Weight::from_ref_time(10003)); + let weight_used = handle_messages(&[], Weight::from_parts(20000, 20000)); + assert_eq!(weight_used, Weight::from_parts(10003, 10003)); assert_eq!(take_trace(), vec![msg_complete(10003),]); assert!(queue_is_empty()); }); @@ -897,20 +956,20 @@ mod tests { new_test_ext().execute_with(|| { let enqueued = vec![msg(1000), msg(1001)]; enqueue(&enqueued); - let weight_used = handle_messages(&vec![msg(1002)], Weight::from_ref_time(1500)); - assert_eq!(weight_used, Weight::from_ref_time(1000)); + let weight_used = handle_messages(&vec![msg(1002)], Weight::from_parts(1500, 1500)); + assert_eq!(weight_used, Weight::from_parts(1000, 1000)); assert_eq!(take_trace(), vec![msg_complete(1000), msg_limit_reached(1001),]); assert_eq!(pages_queued(), 2); assert_eq!(PageIndex::::get().begin_used, 0); - let weight_used = handle_messages(&vec![msg(1003)], Weight::from_ref_time(1500)); - assert_eq!(weight_used, Weight::from_ref_time(1001)); + let weight_used = handle_messages(&vec![msg(1003)], Weight::from_parts(1500, 1500)); + assert_eq!(weight_used, Weight::from_parts(1001, 1001)); assert_eq!(take_trace(), vec![msg_complete(1001), msg_limit_reached(1002),]); assert_eq!(pages_queued(), 2); assert_eq!(PageIndex::::get().begin_used, 1); - let weight_used = handle_messages(&vec![msg(1004)], Weight::from_ref_time(1500)); - assert_eq!(weight_used, Weight::from_ref_time(1002)); + let weight_used = handle_messages(&vec![msg(1004)], Weight::from_parts(1500, 1500)); + assert_eq!(weight_used, Weight::from_parts(1002, 1002)); assert_eq!(take_trace(), vec![msg_complete(1002), msg_limit_reached(1003),]); assert_eq!(pages_queued(), 2); assert_eq!(PageIndex::::get().begin_used, 2); @@ -921,11 +980,13 @@ mod tests { fn overweight_should_not_block_queue() { new_test_ext().execute_with(|| { // Set the overweight threshold to 9999. - Configuration::::put(ConfigData { max_individual: Weight::from_ref_time(9999) }); + Configuration::::put(ConfigData { + max_individual: Weight::from_parts(9999, 9999), + }); let incoming = vec![msg(1000), msg(10001), msg(1002)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(2500)); - assert_eq!(weight_used, Weight::from_ref_time(2002)); + let weight_used = handle_messages(&incoming, Weight::from_parts(2500, 2500)); + assert_eq!(weight_used, Weight::from_parts(2002, 2002)); assert!(queue_is_empty()); assert_eq!( take_trace(), @@ -940,40 +1001,64 @@ mod tests { fn overweights_should_be_manually_executable() { new_test_ext().execute_with(|| { // Set the overweight threshold to 9999. - Configuration::::put(ConfigData { max_individual: Weight::from_ref_time(9999) }); + Configuration::::put(ConfigData { + max_individual: Weight::from_parts(9999, 9999), + }); let incoming = vec![msg(10000)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(2500)); + let weight_used = handle_messages(&incoming, Weight::from_parts(2500, 2500)); assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![msg_limit_reached(10000)]); assert_eq!(overweights(), vec![0]); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::signed(1), 0, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::signed(1), + 0, + Weight::from_parts(20000, 20000) + ), BadOrigin ); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 1, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 1, + Weight::from_parts(20000, 20000) + ), Error::::Unknown ); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 9999), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(9999, 9999) + ), Error::::OverLimit ); assert_eq!(take_trace(), vec![msg_limit_reached(10000)]); - let base_weight = super::Call::::service_overweight { index: 0, weight_limit: 0 } - .get_dispatch_info() - .weight; + let base_weight = + super::Call::::service_overweight { index: 0, weight_limit: Weight::zero() } + .get_dispatch_info() + .weight; use frame_support::dispatch::GetDispatchInfo; - let info = DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 20000).unwrap(); + let info = DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(20000, 20000), + ) + .unwrap(); let actual_weight = info.actual_weight.unwrap(); - assert_eq!(actual_weight, base_weight + Weight::from_ref_time(10000)); + assert_eq!(actual_weight, base_weight + Weight::from_parts(10000, 10000)); assert_eq!(take_trace(), vec![msg_complete(10000)]); assert!(overweights().is_empty()); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(20000, 20000) + ), Error::::Unknown ); }); @@ -983,24 +1068,38 @@ mod tests { fn overweights_should_not_be_manually_executable_during_maintenance_mode() { new_test_ext().execute_with(|| { // Set the overweight threshold to 9999. - Configuration::::put(ConfigData { max_individual: Weight::from_ref_time(9999) }); + Configuration::::put(ConfigData { + max_individual: Weight::from_parts(9999, 9999), + }); let incoming = vec![msg(10000)]; - let weight_used = handle_messages(&incoming, Weight::from_ref_time(2500)); + let weight_used = handle_messages(&incoming, Weight::from_parts(2500, 2500)); assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![msg_limit_reached(10000)]); assert_eq!(overweights(), vec![0]); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::signed(1), 0, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::signed(1), + 0, + Weight::from_parts(20000, 20000) + ), BadOrigin ); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 1, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 1, + Weight::from_parts(20000, 20000) + ), Error::::Unknown ); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 9999), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(9999, 9999) + ), Error::::OverLimit ); assert_eq!(take_trace(), vec![msg_limit_reached(10000)]); @@ -1008,24 +1107,38 @@ mod tests { MockMaintenanceStatusProvider::set_maintenance_status(true, false); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(20000, 20000) + ), Error::::DmpMsgProcessingBlockedByMaintenanceMode ); MockMaintenanceStatusProvider::set_maintenance_status(false, false); - let base_weight = super::Call::::service_overweight { index: 0, weight_limit: 0 } - .get_dispatch_info() - .weight; + let base_weight = + super::Call::::service_overweight { index: 0, weight_limit: Weight::zero() } + .get_dispatch_info() + .weight; use frame_support::dispatch::GetDispatchInfo; - let info = DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 20000).unwrap(); + let info = DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(20000, 20000), + ) + .unwrap(); let actual_weight = info.actual_weight.unwrap(); - assert_eq!(actual_weight, base_weight + Weight::from_ref_time(10000)); + assert_eq!(actual_weight, base_weight + Weight::from_parts(10000, 10000)); assert_eq!(take_trace(), vec![msg_complete(10000)]); assert!(overweights().is_empty()); assert_noop!( - DmpQueue::service_overweight(RuntimeOrigin::root(), 0, 20000), + DmpQueue::service_overweight( + RuntimeOrigin::root(), + 0, + Weight::from_parts(20000, 20000) + ), Error::::Unknown ); }); @@ -1038,8 +1151,8 @@ mod tests { enqueue(&vec![msg(1002), msg(1003)]); enqueue(&vec![msg(1004), msg(1005)]); - let weight_used = DmpQueue::on_idle(1, Weight::from_ref_time(6000)); - assert_eq!(weight_used, Weight::from_ref_time(5010)); + let weight_used = DmpQueue::on_idle(1, Weight::from_parts(6000, 6000)); + assert_eq!(weight_used, Weight::from_parts(5010, 5010)); assert_eq!( take_trace(), vec![ @@ -1063,10 +1176,43 @@ mod tests { enqueue(&vec![msg(1002), msg(1003)]); enqueue(&vec![msg(1004), msg(1005)]); - let weight_used = DmpQueue::on_idle(1, Weight::from_ref_time(6000)); - assert_eq!(weight_used, Weight::from_ref_time(0)); + let weight_used = DmpQueue::on_idle(1, Weight::from_parts(6000, 0)); + assert_eq!(weight_used, Weight::zero()); assert_eq!(take_trace(), vec![]); assert_eq!(pages_queued(), 3); }); } + + #[test] + fn handle_max_messages_per_block() { + new_test_ext().execute_with(|| { + enqueue(&vec![msg(1000), msg(1001)]); + enqueue(&vec![msg(1002), msg(1003)]); + enqueue(&vec![msg(1004), msg(1005)]); + + let incoming = (0..MAX_MESSAGES_PER_BLOCK) + .into_iter() + .map(|i| msg(1006 + i as u64)) + .collect::>(); + handle_messages(&incoming, Weight::from_parts(25000, 25000)); + + assert_eq!( + take_trace(), + (0..MAX_MESSAGES_PER_BLOCK) + .into_iter() + .map(|i| msg_complete(1000 + i as u64)) + .collect::>(), + ); + assert_eq!(pages_queued(), 1); + + handle_messages(&[], Weight::from_parts(25000, 25000)); + assert_eq!( + take_trace(), + (MAX_MESSAGES_PER_BLOCK..MAX_MESSAGES_PER_BLOCK + 6) + .into_iter() + .map(|i| msg_complete(1000 + i as u64)) + .collect::>(), + ); + }); + } } diff --git a/pallets/dmp-queue/src/migration.rs b/pallets/dmp-queue/src/migration.rs index 27b839ed8dd..b360f5a7bd4 100644 --- a/pallets/dmp-queue/src/migration.rs +++ b/pallets/dmp-queue/src/migration.rs @@ -16,13 +16,12 @@ //! A module that is responsible for migration of storage. -use crate::{Config, Pallet, Store, DEFAULT_POV_SIZE}; +use crate::{Config, Configuration, Overweight, Pallet, DEFAULT_POV_SIZE}; use frame_support::{ pallet_prelude::*, traits::StorageVersion, weights::{constants::WEIGHT_REF_TIME_PER_MILLIS, Weight}, }; -use xcm::latest::Weight as XcmWeight; /// The current storage version. pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(1); @@ -33,8 +32,15 @@ pub fn migrate_to_latest() -> Weight { let mut weight = T::DbWeight::get().reads(1); if StorageVersion::get::>() == 0 { - weight += migrate_to_v1::(); + weight.saturating_accrue(migrate_to_v1::()); StorageVersion::new(1).put::>(); + weight.saturating_accrue(T::DbWeight::get().writes(1)); + } + + if StorageVersion::get::>() == 1 { + weight.saturating_accrue(migrate_to_v2::()); + StorageVersion::new(2).put::>(); + weight.saturating_accrue(T::DbWeight::get().writes(1)); } weight @@ -46,7 +52,7 @@ mod v0 { #[derive(Decode, Encode, Debug)] pub struct ConfigData { - pub max_individual: XcmWeight, + pub max_individual: u64, } impl Default for ConfigData { @@ -68,7 +74,7 @@ pub fn migrate_to_v1() -> Weight { } }; - if let Err(_) = as Store>::Configuration::translate(|pre| pre.map(translate)) { + if let Err(_) = Configuration::::translate(|pre| pre.map(translate)) { log::error!( target: "dmp_queue", "unexpected error when performing translation of the QueueConfig type during storage upgrade to v2" @@ -78,6 +84,16 @@ pub fn migrate_to_v1() -> Weight { T::DbWeight::get().reads_writes(1, 1) } +/// Migrates `Overweight` so that it initializes the storage map's counter. +/// +/// NOTE: Only use this function if you know what you're doing. Default to using +/// `migrate_to_latest`. +pub fn migrate_to_v2() -> Weight { + let overweight_messages = Overweight::::initialize_counter() as u64; + + T::DbWeight::get().reads_writes(overweight_messages, 1) +} + #[cfg(test)] mod tests { use super::*; diff --git a/pallets/parachain-system/Cargo.toml b/pallets/parachain-system/Cargo.toml index 51aa63a072a..9e6f4d452ef 100644 --- a/pallets/parachain-system/Cargo.toml +++ b/pallets/parachain-system/Cargo.toml @@ -6,7 +6,7 @@ edition = "2021" description = "Base pallet for cumulus-based parachains" [dependencies] -bytes = { version = "1.3.0", default-features = false } +bytes = { version = "1.4.0", default-features = false } codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } environmental = { version = "1.1.4", default-features = false } impl-trait-for-tuples = "0.2.1" @@ -14,21 +14,21 @@ log = { version = "0.4.17", default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-externalities = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-externalities = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } - # Polkadot -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, features = [ "wasm-api" ], branch = "release-v0.9.36" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, features = [ "wasm-api" ], branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-parachain-system-proc-macro = { path = "proc-macro", default-features = false } @@ -40,10 +40,10 @@ hex-literal = "0.3.4" lazy_static = "1.4" # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Cumulus cumulus-test-client = { path = "../../test/client" } @@ -68,14 +68,12 @@ std = [ "sp-state-machine/std", "sp-std/std", "sp-trie/std", - "mangata-support/std" + "mangata-support/std", + "xcm/std", ] runtime-benchmarks = [ "sp-runtime/runtime-benchmarks" ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", -] +try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/parachain-system/proc-macro/Cargo.toml b/pallets/parachain-system/proc-macro/Cargo.toml index 3ebbef35968..952fde32d86 100644 --- a/pallets/parachain-system/proc-macro/Cargo.toml +++ b/pallets/parachain-system/proc-macro/Cargo.toml @@ -9,10 +9,10 @@ description = "Proc macros provided by the parachain-system pallet" proc-macro = true [dependencies] -syn = "1.0.107" -proc-macro2 = "1.0.49" +syn = "1.0.109" +proc-macro2 = "1.0.52" quote = "1.0.23" -proc-macro-crate = "1.2.1" +proc-macro-crate = "1.3.1" [features] default = [ "std" ] diff --git a/pallets/parachain-system/proc-macro/src/lib.rs b/pallets/parachain-system/proc-macro/src/lib.rs index 855d7fed484..490b9c17c44 100644 --- a/pallets/parachain-system/proc-macro/src/lib.rs +++ b/pallets/parachain-system/proc-macro/src/lib.rs @@ -114,11 +114,20 @@ pub fn register_validate_block(input: proc_macro::TokenStream) -> proc_macro::To use super::*; #[no_mangle] - unsafe fn validate_block(arguments: *const u8, arguments_len: usize) -> u64 { - let params = #crate_::validate_block::polkadot_parachain::load_params( - arguments, - arguments_len, + unsafe fn validate_block(arguments: *mut u8, arguments_len: usize) -> u64 { + // We convert the `arguments` into a boxed slice and then into `Bytes`. + let args = #crate_::validate_block::sp_std::boxed::Box::from_raw( + #crate_::validate_block::sp_std::slice::from_raw_parts_mut( + arguments, + arguments_len, + ) ); + let args = #crate_::validate_block::bytes::Bytes::from(args); + + // Then we decode from these bytes the `MemoryOptimizedValidationParams`. + let params = #crate_::validate_block::decode_from_bytes::< + #crate_::validate_block::MemoryOptimizedValidationParams + >(args).expect("Invalid arguments to `validate_block`."); let res = #crate_::validate_block::implementation::validate_block::< <#runtime as #crate_::validate_block::GetRuntimeBlockType>::RuntimeBlock, diff --git a/pallets/parachain-system/src/lib.rs b/pallets/parachain-system/src/lib.rs index f93d2b0faad..25ec04c82d1 100644 --- a/pallets/parachain-system/src/lib.rs +++ b/pallets/parachain-system/src/lib.rs @@ -16,18 +16,18 @@ #![cfg_attr(not(feature = "std"), no_std)] -//! cumulus-pallet-parachain-system is a base pallet for cumulus-based parachains. +//! `cumulus-pallet-parachain-system` is a base pallet for Cumulus-based parachains. //! -//! This pallet handles low-level details of being a parachain. It's responsibilities include: +//! This pallet handles low-level details of being a parachain. Its responsibilities include: //! -//! - ingestion of the parachain validation data -//! - ingestion of incoming downward and lateral messages and dispatching them -//! - coordinating upgrades with the relay-chain -//! - communication of parachain outputs, such as sent messages, signalling an upgrade, etc. +//! - ingestion of the parachain validation data; +//! - ingestion and dispatch of incoming downward and lateral messages; +//! - coordinating upgrades with the Relay Chain; and +//! - communication of parachain outputs, such as sent messages, signaling an upgrade, etc. //! //! Users must ensure that they register this pallet as an inherent provider. -use codec::Encode; +use codec::{Decode, Encode, MaxEncodedLen}; use cumulus_primitives_core::{ relay_chain, AbridgedHostConfiguration, ChannelStatus, CollationInfo, DmpMessageHandler, GetChannelInfo, InboundDownwardMessage, InboundHrmpMessage, MessageSendError, @@ -42,10 +42,12 @@ use frame_support::{ storage, traits::Get, weights::Weight, + RuntimeDebug, }; use frame_system::{ensure_none, ensure_root}; use mangata_support::traits::GetMaintenanceStatusTrait; use polkadot_parachain::primitives::RelayChainBlockNumber; +use scale_info::TypeInfo; use sp_runtime::{ traits::{Block as BlockT, BlockNumberProvider, Hash, One, Zero}, transaction_validity::{ @@ -54,6 +56,7 @@ use sp_runtime::{ }, }; use sp_std::{cmp, collections::btree_map::BTreeMap, prelude::*}; +use xcm::latest::XcmHash; mod migration; mod relay_state_snapshot; @@ -134,6 +137,20 @@ impl CheckAssociatedRelayNumber for AnyRelayNumber { fn check_associated_relay_number(_: RelayChainBlockNumber, _: RelayChainBlockNumber) {} } +/// Information needed when a new runtime binary is submitted and needs to be authorized before +/// replacing the current runtime. +#[derive(Decode, Encode, Default, PartialEq, Eq, MaxEncodedLen, TypeInfo)] +#[scale_info(skip_type_params(T))] +struct CodeUpgradeAuthorization +where + T: Config, +{ + /// Hash of the new runtime binary. + code_hash: T::Hash, + /// Whether or not to carry out version checks. + check_version: bool, +} + #[frame_support::pallet] pub mod pallet { use super::*; @@ -142,7 +159,6 @@ pub mod pallet { #[pallet::pallet] #[pallet::storage_version(migration::STORAGE_VERSION)] - #[pallet::generate_store(pub(super) trait Store)] #[pallet::without_storage_info] pub struct Pallet(_); @@ -368,8 +384,6 @@ pub mod pallet { horizontal_messages, } = data; - Self::validate_validation_data(&vfp); - // Check that the associated relay chain block number is as expected. T::CheckAssociatedRelayNumber::check_associated_relay_number( vfp.relay_parent_number, @@ -391,7 +405,7 @@ pub mod pallet { .read_upgrade_go_ahead_signal() .expect("Invalid upgrade go ahead signal"); match upgrade_go_ahead_signal { - Some(relay_chain::v2::UpgradeGoAhead::GoAhead) => + Some(relay_chain::UpgradeGoAhead::GoAhead) => if T::MaintenanceStatusProvider::is_upgradable() { assert!( >::exists(), @@ -405,7 +419,7 @@ pub mod pallet { relay_chain_block_num: vfp.relay_parent_number, }); }, - Some(relay_chain::v2::UpgradeGoAhead::Abort) => { + Some(relay_chain::UpgradeGoAhead::Abort) => { >::kill(); Self::deposit_event(Event::ValidationFunctionDiscarded); }, @@ -457,9 +471,21 @@ pub mod pallet { Ok(()) } + /// Authorize an upgrade to a given `code_hash` for the runtime. The runtime can be supplied + /// later. + /// + /// The `check_version` parameter sets a boolean flag for whether or not the runtime's spec + /// version and name should be verified on upgrade. Since the authorization only has a hash, + /// it cannot actually perform the verification. + /// + /// This call requires Root origin. #[pallet::call_index(2)] #[pallet::weight((1_000_000, DispatchClass::Operational))] - pub fn authorize_upgrade(origin: OriginFor, code_hash: T::Hash) -> DispatchResult { + pub fn authorize_upgrade( + origin: OriginFor, + code_hash: T::Hash, + check_version: bool, + ) -> DispatchResult { ensure_root(origin)?; ensure!( @@ -467,12 +493,24 @@ pub mod pallet { Error::::UpgradeBlockedByMaintenanceMode ); - AuthorizedUpgrade::::put(&code_hash); + AuthorizedUpgrade::::put(CodeUpgradeAuthorization { + code_hash: code_hash.clone(), + check_version, + }); Self::deposit_event(Event::UpgradeAuthorized { code_hash }); Ok(()) } + /// Provide the preimage (runtime binary) `code` for an upgrade that has been authorized. + /// + /// If the authorization required a version check, this call will ensure the spec name + /// remains unchanged and that the spec version has increased. + /// + /// Note that this function will not apply the new `code`, but only attempt to schedule the + /// upgrade with the Relay Chain. + /// + /// All origins are allowed. #[pallet::call_index(3)] #[pallet::weight(1_000_000)] pub fn enact_authorized_upgrade( @@ -501,20 +539,22 @@ pub mod pallet { DownwardMessagesReceived { count: u32 }, /// Downward messages were processed using the given weight. DownwardMessagesProcessed { weight_used: Weight, dmq_head: relay_chain::Hash }, + /// An upward message was sent to the relay chain. + UpwardMessageSent { message_hash: Option }, } #[pallet::error] pub enum Error { - /// Attempt to upgrade validation function while existing upgrade pending + /// Attempt to upgrade validation function while existing upgrade pending. OverlappingUpgrades, - /// Polkadot currently prohibits this parachain from upgrading its validation function + /// Polkadot currently prohibits this parachain from upgrading its validation function. ProhibitedByPolkadot, /// The supplied validation function has compiled into a blob larger than Polkadot is - /// willing to run + /// willing to run. TooBig, - /// The inherent which supplies the validation data did not run this block + /// The inherent which supplies the validation data did not run this block. ValidationDataNotAvailable, - /// The inherent which supplies the host configuration did not run this block + /// The inherent which supplies the host configuration did not run this block. HostConfigurationNotAvailable, /// No validation function upgrade is currently scheduled. NotScheduled, @@ -569,7 +609,7 @@ pub mod pallet { /// set after the inherent. #[pallet::storage] pub(super) type UpgradeRestrictionSignal = - StorageValue<_, Option, ValueQuery>; + StorageValue<_, Option, ValueQuery>; /// The state proof for the last relay parent block. /// @@ -628,7 +668,7 @@ pub mod pallet { /// This will be cleared in `on_initialize` of each new block. #[pallet::storage] pub(super) type HrmpWatermark = - StorageValue<_, relay_chain::v2::BlockNumber, ValueQuery>; + StorageValue<_, relay_chain::BlockNumber, ValueQuery>; /// HRMP messages that were sent in a block. /// @@ -665,7 +705,7 @@ pub mod pallet { /// The next authorized upgrade, if there is one. #[pallet::storage] - pub(super) type AuthorizedUpgrade = StorageValue<_, T::Hash>; + pub(super) type AuthorizedUpgrade = StorageValue<_, CodeUpgradeAuthorization>; /// A custom head data that should be returned as result of `validate_block`. /// @@ -732,9 +772,17 @@ pub mod pallet { impl Pallet { fn validate_authorized_upgrade(code: &[u8]) -> Result { - let required_hash = AuthorizedUpgrade::::get().ok_or(Error::::NothingAuthorized)?; + let authorization = AuthorizedUpgrade::::get().ok_or(Error::::NothingAuthorized)?; + + // ensure that the actual hash matches the authorized hash let actual_hash = T::Hashing::hash(&code[..]); - ensure!(actual_hash == required_hash, Error::::Unauthorized); + ensure!(actual_hash == authorization.code_hash, Error::::Unauthorized); + + // check versions if required as part of the authorization + if authorization.check_version { + frame_system::Pallet::::can_set_code(code)?; + } + Ok(actual_hash) } } @@ -766,7 +814,7 @@ impl GetChannelInfo for Pallet { // None then it must be that this is an edge-case where a message is attempted to be // sent at the first block. It should be safe to assume that there are no channels // opened at all so early. At least, relying on this assumption seems to be a better - // tradeoff, compared to introducing an error variant that the clients should be + // trade-off, compared to introducing an error variant that the clients should be // prepared to handle. let index = match channels.binary_search_by_key(&id, |item| item.0) { Err(_) => return ChannelStatus::Closed, @@ -790,34 +838,6 @@ impl GetChannelInfo for Pallet { } impl Pallet { - /// Validate the given [`PersistedValidationData`] against the - /// [`ValidationParams`](polkadot_parachain::primitives::ValidationParams). - /// - /// This check will only be executed when the block is currently being executed in the context - /// of [`validate_block`]. If this is being executed in the context of block building or block - /// import, this is a no-op. - /// - /// # Panics - /// - /// Panics while validating the `PoV` on the relay chain if the [`PersistedValidationData`] - /// passed by the block author was incorrect. - fn validate_validation_data(validation_data: &PersistedValidationData) { - validate_block::with_validation_params(|params| { - assert_eq!( - params.parent_head, validation_data.parent_head, - "Parent head doesn't match" - ); - assert_eq!( - params.relay_parent_number, validation_data.relay_parent_number, - "Relay parent number doesn't match", - ); - assert_eq!( - params.relay_parent_storage_root, validation_data.relay_parent_storage_root, - "Relay parent storage root doesn't match", - ); - }); - } - /// Process all inbound downward messages relayed by the collator. /// /// Checks if the sequence of the messages is valid, dispatches them and communicates the @@ -879,7 +899,7 @@ impl Pallet { fn process_inbound_horizontal_messages( ingress_channels: &[(ParaId, cumulus_primitives_core::AbridgedHrmpChannel)], horizontal_messages: BTreeMap>, - relay_parent_number: relay_chain::v2::BlockNumber, + relay_parent_number: relay_chain::BlockNumber, ) -> Weight { // First, check that all submitted messages are sent from channels that exist. The // channel exists if its MQC head is present in `vfp.hrmp_mqc_heads`. @@ -1059,7 +1079,7 @@ impl frame_system::SetCode for ParachainSetCode { } impl Pallet { - pub fn send_upward_message(message: UpwardMessage) -> Result { + pub fn send_upward_message(message: UpwardMessage) -> Result<(u32, XcmHash), MessageSendError> { // Check if the message fits into the relay-chain constraints. // // Note, that we are using `host_configuration` here which may be from the previous @@ -1089,13 +1109,18 @@ impl Pallet { // Thus fall through here. }, }; - >::append(message); - Ok(0) + >::append(message.clone()); + + // The relay ump does not use using_encoded + // We apply the same this to use the same hash + let hash = sp_io::hashing::blake2_256(&message); + Self::deposit_event(Event::UpwardMessageSent { message_hash: Some(hash) }); + Ok((0, hash)) } } impl UpwardMessageSender for Pallet { - fn send_upward_message(message: UpwardMessage) -> Result { + fn send_upward_message(message: UpwardMessage) -> Result<(u32, XcmHash), MessageSendError> { Self::send_upward_message(message) } } @@ -1127,11 +1152,33 @@ pub trait OnSystemEvent { fn on_validation_code_applied(); } -/// Implements [`BlockNumberProvider`] that returns relay chain block number fetched from -/// validation data. -/// NTOE: When validation data is not available (e.g. within on_initialize), 0 will be returned. +/// Holds the most recent relay-parent state root and block number of the current parachain block. +#[derive(PartialEq, Eq, Clone, Encode, Decode, TypeInfo, Default, RuntimeDebug)] +pub struct RelayChainState { + /// Current relay chain height. + pub number: relay_chain::BlockNumber, + /// State root for current relay chain height. + pub state_root: relay_chain::Hash, +} + +/// This exposes the [`RelayChainState`] to other runtime modules. +/// +/// Enables parachains to read relay chain state via state proofs. +pub trait RelaychainStateProvider { + /// May be called by any runtime module to obtain the current state of the relay chain. + /// + /// **NOTE**: This is not guaranteed to return monotonically increasing relay parents. + fn current_relay_chain_state() -> RelayChainState; +} + +/// Implements [`BlockNumberProvider`] that returns relay chain block number fetched from validation data. +/// When validation data is not available (e.g. within on_initialize), 0 will be returned. +/// +/// **NOTE**: This has been deprecated, please use [`RelaychainDataProvider`] +#[deprecated = "Use `RelaychainDataProvider` instead"] pub struct RelaychainBlockNumberProvider(sp_std::marker::PhantomData); +#[allow(deprecated)] impl BlockNumberProvider for RelaychainBlockNumberProvider { type BlockNumber = relay_chain::BlockNumber; @@ -1140,6 +1187,47 @@ impl BlockNumberProvider for RelaychainBlockNumberProvider { .map(|d| d.relay_parent_number) .unwrap_or_default() } + + #[cfg(feature = "runtime-benchmarks")] + fn set_block_number(block: Self::BlockNumber) { + let mut validation_data = Pallet::::validation_data().unwrap_or_else(|| + // PersistedValidationData does not impl default in non-std + PersistedValidationData { + parent_head: vec![].into(), + relay_parent_number: Default::default(), + max_pov_size: Default::default(), + relay_parent_storage_root: Default::default(), + }); + validation_data.relay_parent_number = block; + ValidationData::::put(validation_data) + } +} + +impl RelaychainStateProvider for RelaychainDataProvider { + fn current_relay_chain_state() -> RelayChainState { + Pallet::::validation_data() + .map(|d| RelayChainState { + number: d.relay_parent_number, + state_root: d.relay_parent_storage_root, + }) + .unwrap_or_default() + } +} + +/// Implements [`BlockNumberProvider`] and [`RelaychainStateProvider`] that returns relevant relay data fetched from +/// validation data. +/// NOTE: When validation data is not available (e.g. within on_initialize), default values will be returned. +pub struct RelaychainDataProvider(sp_std::marker::PhantomData); + +impl BlockNumberProvider for RelaychainDataProvider { + type BlockNumber = relay_chain::BlockNumber; + + fn current_block_number() -> relay_chain::BlockNumber { + Pallet::::validation_data() + .map(|d| d.relay_parent_number) + .unwrap_or_default() + } + #[cfg(feature = "runtime-benchmarks")] fn set_block_number(block: Self::BlockNumber) { let mut validation_data = Pallet::::validation_data().unwrap_or_else(|| diff --git a/pallets/parachain-system/src/migration.rs b/pallets/parachain-system/src/migration.rs index 514675b89ac..e3d1e11a51b 100644 --- a/pallets/parachain-system/src/migration.rs +++ b/pallets/parachain-system/src/migration.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use crate::{Config, Pallet, Store}; +use crate::{Config, Pallet, ReservedDmpWeightOverride, ReservedXcmpWeightOverride}; use frame_support::{ traits::{Get, StorageVersion}, weights::Weight, @@ -52,18 +52,14 @@ mod v2 { pub fn migrate() -> Weight { let translate = |pre: u64| -> Weight { Weight::from_parts(pre, DEFAULT_POV_SIZE) }; - if as Store>::ReservedXcmpWeightOverride::translate(|pre| pre.map(translate)) - .is_err() - { + if ReservedXcmpWeightOverride::::translate(|pre| pre.map(translate)).is_err() { log::error!( target: "parachain_system", "unexpected error when performing translation of the ReservedXcmpWeightOverride type during storage upgrade to v2" ); } - if as Store>::ReservedDmpWeightOverride::translate(|pre| pre.map(translate)) - .is_err() - { + if ReservedDmpWeightOverride::::translate(|pre| pre.map(translate)).is_err() { log::error!( target: "parachain_system", "unexpected error when performing translation of the ReservedDmpWeightOverride type during storage upgrade to v2" diff --git a/pallets/parachain-system/src/relay_state_snapshot.rs b/pallets/parachain-system/src/relay_state_snapshot.rs index 5b6a1ad3df9..0a6426a8012 100644 --- a/pallets/parachain-system/src/relay_state_snapshot.rs +++ b/pallets/parachain-system/src/relay_state_snapshot.rs @@ -149,7 +149,7 @@ impl RelayChainStateProof { /// `proof`. pub fn new( para_id: ParaId, - relay_parent_storage_root: relay_chain::v2::Hash, + relay_parent_storage_root: relay_chain::Hash, proof: StorageProof, ) -> Result { let db = proof.into_memory_db::>(); @@ -195,7 +195,7 @@ impl RelayChainStateProof { let mut ingress_channels = Vec::with_capacity(ingress_channel_index.len()); for sender in ingress_channel_index { - let channel_id = relay_chain::v2::HrmpChannelId { sender, recipient: self.para_id }; + let channel_id = relay_chain::HrmpChannelId { sender, recipient: self.para_id }; let hrmp_channel: AbridgedHrmpChannel = read_entry( &self.trie_backend, &relay_chain::well_known_keys::hrmp_channels(channel_id), @@ -207,7 +207,7 @@ impl RelayChainStateProof { let mut egress_channels = Vec::with_capacity(egress_channel_index.len()); for recipient in egress_channel_index { - let channel_id = relay_chain::v2::HrmpChannelId { sender: self.para_id, recipient }; + let channel_id = relay_chain::HrmpChannelId { sender: self.para_id, recipient }; let hrmp_channel: AbridgedHrmpChannel = read_entry( &self.trie_backend, &relay_chain::well_known_keys::hrmp_channels(channel_id), @@ -235,12 +235,12 @@ impl RelayChainStateProof { .map_err(Error::Config) } - /// Read the [`Slot`](relay_chain::v2::Slot) from the relay chain state proof. + /// Read the [`Slot`](relay_chain::Slot) from the relay chain state proof. /// /// The slot is slot of the relay chain block this state proof was extracted from. /// /// Returns an error if anything failed at reading or decoding. - pub fn read_slot(&self) -> Result { + pub fn read_slot(&self) -> Result { read_entry(&self.trie_backend, relay_chain::well_known_keys::CURRENT_SLOT, None) .map_err(Error::Slot) } @@ -254,7 +254,7 @@ impl RelayChainStateProof { /// Returns an error if anything failed at reading or decoding. pub fn read_upgrade_go_ahead_signal( &self, - ) -> Result, Error> { + ) -> Result, Error> { read_optional_entry( &self.trie_backend, &relay_chain::well_known_keys::upgrade_go_ahead_signal(self.para_id), @@ -270,7 +270,7 @@ impl RelayChainStateProof { /// Returns an error if anything failed at reading or decoding. pub fn read_upgrade_restriction_signal( &self, - ) -> Result, Error> { + ) -> Result, Error> { read_optional_entry( &self.trie_backend, &relay_chain::well_known_keys::upgrade_restriction_signal(self.para_id), diff --git a/pallets/parachain-system/src/tests.rs b/pallets/parachain-system/src/tests.rs index 1147b1c8af7..32ac774c5bb 100755 --- a/pallets/parachain-system/src/tests.rs +++ b/pallets/parachain-system/src/tests.rs @@ -31,11 +31,12 @@ use frame_support::{ }; use frame_system::RawOrigin; use hex_literal::hex; -use relay_chain::v2::HrmpChannelId; -use sp_core::H256; +use relay_chain::HrmpChannelId; +use sp_core::{blake2_256, H256}; use sp_runtime::{ testing::Header, traits::{BlakeTwo256, IdentityLookup}, + DispatchErrorWithPostInfo, }; use sp_version::RuntimeVersion; use std::{cell::RefCell, thread::LocalKey}; @@ -423,7 +424,7 @@ fn events() { BlockTests::new() .with_relay_sproof_builder(|_, block_number, builder| { if block_number > 123 { - builder.upgrade_go_ahead = Some(relay_chain::v2::UpgradeGoAhead::GoAhead); + builder.upgrade_go_ahead = Some(relay_chain::UpgradeGoAhead::GoAhead); } }) .add_with_post_test( @@ -477,7 +478,7 @@ fn manipulates_storage() { BlockTests::new() .with_relay_sproof_builder(|_, block_number, builder| { if block_number > 123 { - builder.upgrade_go_ahead = Some(relay_chain::v2::UpgradeGoAhead::GoAhead); + builder.upgrade_go_ahead = Some(relay_chain::UpgradeGoAhead::GoAhead); } }) .add(123, || { @@ -505,7 +506,7 @@ fn aborted_upgrade() { BlockTests::new() .with_relay_sproof_builder(|_, block_number, builder| { if block_number > 123 { - builder.upgrade_go_ahead = Some(relay_chain::v2::UpgradeGoAhead::Abort); + builder.upgrade_go_ahead = Some(relay_chain::UpgradeGoAhead::Abort); } }) .add(123, || { @@ -548,13 +549,21 @@ fn authorize_upgrade_maintenance_mode() { .add(123, || { MockMaintenanceStatusProvider::set_maintenance_status(true, false); assert_err!( - ParachainSystem::authorize_upgrade(RawOrigin::Root.into(), Default::default()), + ParachainSystem::authorize_upgrade( + RawOrigin::Root.into(), + Default::default(), + false + ), Error::::UpgradeBlockedByMaintenanceMode ); }) .add(150, || { assert_err!( - ParachainSystem::authorize_upgrade(RawOrigin::Root.into(), Default::default()), + ParachainSystem::authorize_upgrade( + RawOrigin::Root.into(), + Default::default(), + false + ), Error::::UpgradeBlockedByMaintenanceMode ); }) @@ -564,7 +573,8 @@ fn authorize_upgrade_maintenance_mode() { MockMaintenanceStatusProvider::set_maintenance_status(true, true); assert_ok!(ParachainSystem::authorize_upgrade( RawOrigin::Root.into(), - Default::default() + Default::default(), + false )); }, || { @@ -589,7 +599,8 @@ fn enact_authorized_upgrade_maintenance_mode() { .add(123, || { assert_ok!(ParachainSystem::authorize_upgrade( RawOrigin::Root.into(), - Default::default() + Default::default(), + false )); MockMaintenanceStatusProvider::set_maintenance_status(true, false); }) @@ -624,7 +635,7 @@ fn scheduled_upgrade_fails_maintenance_mode_no_upgradability() { BlockTests::new() .with_relay_sproof_builder(|_, block_number, builder| { if block_number > 123 { - builder.upgrade_go_ahead = Some(relay_chain::v2::UpgradeGoAhead::GoAhead); + builder.upgrade_go_ahead = Some(relay_chain::UpgradeGoAhead::GoAhead); } }) .add_with_post_test( @@ -660,7 +671,7 @@ fn scheduled_upgrade_works_maintenance_mode_reenabling_upgradability() { BlockTests::new() .with_relay_sproof_builder(|_, block_number, builder| { if block_number > 123 { - builder.upgrade_go_ahead = Some(relay_chain::v2::UpgradeGoAhead::GoAhead); + builder.upgrade_go_ahead = Some(relay_chain::UpgradeGoAhead::GoAhead); } }) .add_with_post_test( @@ -701,7 +712,7 @@ fn scheduled_upgrade_works_disabling_maintenance_mode() { BlockTests::new() .with_relay_sproof_builder(|_, block_number, builder| { if block_number > 123 { - builder.upgrade_go_ahead = Some(relay_chain::v2::UpgradeGoAhead::GoAhead); + builder.upgrade_go_ahead = Some(relay_chain::UpgradeGoAhead::GoAhead); } }) .add_with_post_test( @@ -1318,3 +1329,37 @@ fn test() { .add(1, || {}) .add(2, || {}); } + +#[test] +fn upgrade_version_checks_should_work() { + let test_data = vec![ + ("test", 0, 1, Err(frame_system::Error::::SpecVersionNeedsToIncrease)), + ("test", 1, 0, Err(frame_system::Error::::SpecVersionNeedsToIncrease)), + ("test", 1, 1, Err(frame_system::Error::::SpecVersionNeedsToIncrease)), + ("test", 1, 2, Err(frame_system::Error::::SpecVersionNeedsToIncrease)), + ("test2", 1, 1, Err(frame_system::Error::::InvalidSpecName)), + ]; + + for (spec_name, spec_version, impl_version, expected) in test_data.into_iter() { + let version = RuntimeVersion { + spec_name: spec_name.into(), + spec_version, + impl_version, + ..Default::default() + }; + let read_runtime_version = ReadRuntimeVersion(version.encode()); + + let mut ext = new_test_ext(); + ext.register_extension(sp_core::traits::ReadRuntimeVersionExt::new(read_runtime_version)); + ext.execute_with(|| { + let new_code = vec![1, 2, 3, 4]; + let new_code_hash = sp_core::H256(blake2_256(&new_code)); + + let _authorize = + ParachainSystem::authorize_upgrade(RawOrigin::Root.into(), new_code_hash, true); + let res = ParachainSystem::enact_authorized_upgrade(RawOrigin::None.into(), new_code); + + assert_eq!(expected.map_err(DispatchErrorWithPostInfo::from), res); + }); + } +} diff --git a/pallets/parachain-system/src/validate_block/implementation.rs b/pallets/parachain-system/src/validate_block/implementation.rs index 8c03f012be2..3a5f90e0495 100644 --- a/pallets/parachain-system/src/validate_block/implementation.rs +++ b/pallets/parachain-system/src/validate_block/implementation.rs @@ -16,18 +16,24 @@ //! The actual implementation of the validate block functionality. -use frame_support::traits::{ExecuteBlock, ExtrinsicCall, Get, IsSubType}; -use sp_runtime::traits::{Block as BlockT, Extrinsic, HashFor, Header as HeaderT}; +use super::MemoryOptimizedValidationParams; +use cumulus_primitives_core::{ + relay_chain::Hash as RHash, ParachainBlockData, PersistedValidationData, +}; +use cumulus_primitives_parachain_inherent::ParachainInherentData; -use sp_io::KillStorageResult; -use sp_std::prelude::*; +use polkadot_parachain::primitives::{ + HeadData, RelayChainBlockNumber, ValidationParams, ValidationResult, +}; -use polkadot_parachain::primitives::{HeadData, ValidationParams, ValidationResult}; - -use codec::{Decode, Encode}; +use codec::Encode; +use frame_support::traits::{ExecuteBlock, ExtrinsicCall, Get, IsSubType}; use sp_core::storage::{ChildInfo, StateVersion}; use sp_externalities::{set_and_run_with_externalities, Externalities}; +use sp_io::KillStorageResult; +use sp_runtime::traits::{Block as BlockT, Extrinsic, HashFor, Header as HeaderT}; +use sp_std::prelude::*; use sp_trie::MemoryDB; type TrieBackend = sp_state_machine::TrieBackend>, HashFor>; @@ -38,7 +44,32 @@ fn with_externalities R, R>(f: F) -> R { sp_externalities::with_externalities(f).expect("Environmental externalities not set.") } -/// Validate a given parachain block on a validator. +/// Validate the given parachain block. +/// +/// This function is doing roughly the following: +/// +/// 1. We decode the [`ParachainBlockData`] from the `block_data` in `params`. +/// +/// 2. We are doing some security checks like checking that the `parent_head` in `params` +/// is the parent of the block we are going to check. We also ensure that the `set_validation_data` +/// inherent is present in the block and that the validation data matches the values in `params`. +/// +/// 3. We construct the sparse in-memory database from the storage proof inside the block data and +/// then ensure that the storage root matches the storage root in the `parent_head`. +/// +/// 4. We replace all the storage related host functions with functions inside the wasm blob. +/// This means instead of calling into the host, we will stay inside the wasm execution. This is +/// very important as the relay chain validator hasn't the state required to verify the block. But +/// we have the in-memory database that contains all the values from the state of the parachain +/// that we require to verify the block. +/// +/// 5. We are going to run `check_inherents`. This is important to check stuff like the timestamp +/// matching the real world time. +/// +/// 6. The last step is to execute the entire block in the machinery we just have setup. Executing +/// the blocks include running all transactions in the block against our in-memory database and +/// ensuring that the final storage root matches the storage root in the header of the block. In the +/// end we return back the [`ValidationResult`] with all the required information for the validator. #[doc(hidden)] pub fn validate_block< B: BlockT, @@ -46,35 +77,49 @@ pub fn validate_block< PSC: crate::Config, CI: crate::CheckInherents, >( - params: ValidationParams, + MemoryOptimizedValidationParams { + block_data, + parent_head, + relay_parent_number, + relay_parent_storage_root, + }: MemoryOptimizedValidationParams, ) -> ValidationResult where B::Extrinsic: ExtrinsicCall, ::Call: IsSubType>, { - let block_data = - cumulus_primitives_core::ParachainBlockData::::decode(&mut ¶ms.block_data.0[..]) - .expect("Invalid parachain block data"); + let block_data = codec::decode_from_bytes::>(block_data) + .expect("Invalid parachain block data"); - let parent_head = - B::Header::decode(&mut ¶ms.parent_head.0[..]).expect("Invalid parent head"); + let parent_header = + codec::decode_from_bytes::(parent_head.clone()).expect("Invalid parent head"); let (header, extrinsics, storage_proof) = block_data.deconstruct(); - let head_data = HeadData(header.encode()); - let block = B::new(header, extrinsics); - assert!(parent_head.hash() == *block.header().parent_hash(), "Invalid parent hash",); + assert!(parent_header.hash() == *block.header().parent_hash(), "Invalid parent hash"); + + let inherent_data = extract_parachain_inherent_data(&block); + + validate_validation_data( + &inherent_data.validation_data, + relay_parent_number, + relay_parent_storage_root, + parent_head, + ); // Create the db - let db = match storage_proof.to_memory_db(Some(parent_head.state_root())) { + let db = match storage_proof.to_memory_db(Some(parent_header.state_root())) { Ok((db, _)) => db, Err(_) => panic!("Compact proof decoding failure."), }; sp_std::mem::drop(storage_proof); - let backend = sp_state_machine::TrieBackendBuilder::new(db, *parent_head.state_root()).build(); + // We use the storage root of the `parent_head` to ensure that it is the correct root. + // This is already being done above while creating the in-memory db, but let's be paranoid!! + let backend = + sp_state_machine::TrieBackendBuilder::new(db, *parent_header.state_root()).build(); let _guard = ( // Replace storage calls with our own implementations @@ -115,22 +160,6 @@ where sp_io::offchain_index::host_clear.replace_implementation(host_offchain_index_clear), ); - let inherent_data = block - .extrinsics() - .iter() - // Inherents are at the front of the block and are unsigned. - // - // If `is_signed` is returning `None`, we keep it safe and assume that it is "signed". - // We are searching for unsigned transactions anyway. - .take_while(|e| !e.is_signed().unwrap_or(true)) - .filter_map(|e| e.call().is_sub_type()) - .find_map(|c| match c { - crate::Call::set_validation_data { data: validation_data } => - Some(validation_data.clone()), - _ => None, - }) - .expect("Could not find `set_validation_data` inherent"); - run_with_externalities::(&backend, || { let relay_chain_proof = crate::RelayChainStateProof::new( PSC::SelfParaId::get(), @@ -153,34 +182,80 @@ where }); run_with_externalities::(&backend, || { - super::set_and_run_with_validation_params(params, || { - E::execute_block(block); - - let new_validation_code = crate::NewValidationCode::::get(); - let upward_messages = crate::UpwardMessages::::get(); - let processed_downward_messages = crate::ProcessedDownwardMessages::::get(); - let horizontal_messages = crate::HrmpOutboundMessages::::get(); - let hrmp_watermark = crate::HrmpWatermark::::get(); - - let head_data = - if let Some(custom_head_data) = crate::CustomValidationHeadData::::get() { - HeadData(custom_head_data) - } else { - head_data - }; - - ValidationResult { - head_data, - new_validation_code: new_validation_code.map(Into::into), - upward_messages, - processed_downward_messages, - horizontal_messages, - hrmp_watermark, - } - }) + let head_data = HeadData(block.header().encode()); + + E::execute_block(block); + + let new_validation_code = crate::NewValidationCode::::get(); + let upward_messages = crate::UpwardMessages::::get().try_into().expect( + "Number of upward messages should not be greater than `MAX_UPWARD_MESSAGE_NUM`", + ); + let processed_downward_messages = crate::ProcessedDownwardMessages::::get(); + let horizontal_messages = crate::HrmpOutboundMessages::::get().try_into().expect( + "Number of horizontal messages should not be greater than `MAX_HORIZONTAL_MESSAGE_NUM`", + ); + let hrmp_watermark = crate::HrmpWatermark::::get(); + + let head_data = + if let Some(custom_head_data) = crate::CustomValidationHeadData::::get() { + HeadData(custom_head_data) + } else { + head_data + }; + + ValidationResult { + head_data, + new_validation_code: new_validation_code.map(Into::into), + upward_messages, + processed_downward_messages, + horizontal_messages, + hrmp_watermark, + } }) } +/// Extract the [`ParachainInherentData`]. +fn extract_parachain_inherent_data( + block: &B, +) -> &ParachainInherentData +where + B::Extrinsic: ExtrinsicCall, + ::Call: IsSubType>, +{ + block + .extrinsics() + .iter() + // Inherents are at the front of the block and are unsigned. + // + // If `is_signed` is returning `None`, we keep it safe and assume that it is "signed". + // We are searching for unsigned transactions anyway. + .take_while(|e| !e.is_signed().unwrap_or(true)) + .filter_map(|e| e.call().is_sub_type()) + .find_map(|c| match c { + crate::Call::set_validation_data { data: validation_data } => Some(validation_data), + _ => None, + }) + .expect("Could not find `set_validation_data` inherent") +} + +/// Validate the given [`PersistedValidationData`] against the [`ValidationParams`]. +fn validate_validation_data( + validation_data: &PersistedValidationData, + relay_parent_number: RelayChainBlockNumber, + relay_parent_storage_root: RHash, + parent_head: bytes::Bytes, +) { + assert_eq!(parent_head, validation_data.parent_head.0, "Parent head doesn't match"); + assert_eq!( + relay_parent_number, validation_data.relay_parent_number, + "Relay parent number doesn't match", + ); + assert_eq!( + relay_parent_storage_root, validation_data.relay_parent_storage_root, + "Relay parent storage root doesn't match", + ); +} + /// Run the given closure with the externalities set. fn run_with_externalities R>( backend: &TrieBackend, diff --git a/pallets/parachain-system/src/validate_block/mod.rs b/pallets/parachain-system/src/validate_block/mod.rs index 44886efd4fe..e641c77f897 100644 --- a/pallets/parachain-system/src/validate_block/mod.rs +++ b/pallets/parachain-system/src/validate_block/mod.rs @@ -16,36 +16,43 @@ //! A module that enables a runtime to work as parachain. -use polkadot_parachain::primitives::ValidationParams; - #[cfg(not(feature = "std"))] #[doc(hidden)] pub mod implementation; #[cfg(test)] mod tests; +#[cfg(not(feature = "std"))] +#[doc(hidden)] +pub use bytes; +#[cfg(not(feature = "std"))] +#[doc(hidden)] +pub use codec::decode_from_bytes; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use polkadot_parachain; #[cfg(not(feature = "std"))] #[doc(hidden)] pub use sp_runtime::traits::GetRuntimeBlockType; +#[cfg(not(feature = "std"))] +#[doc(hidden)] +pub use sp_std; -// Stores the [`ValidationParams`] that are being passed to `validate_block`. -// -// This value will only be set when a parachain validator validates a given `PoV`. -environmental::environmental!(VALIDATION_PARAMS: ValidationParams); - -/// Execute the given closure with the [`ValidationParams`]. +/// Basically the same as [`ValidationParams`](polkadot_parachain::primitives::ValidationParams), +/// but a little bit optimized for our use case here. /// -/// Returns `None` if the [`ValidationParams`] are not set, because the code is currently not being -/// executed in the context of `validate_block`. -pub(crate) fn with_validation_params(f: impl FnOnce(&ValidationParams) -> R) -> Option { - VALIDATION_PARAMS::with(|v| f(v)) -} - -/// Set the [`ValidationParams`] for the local context and execute the given closure in this context. -#[cfg(not(feature = "std"))] -fn set_and_run_with_validation_params(mut params: ValidationParams, f: impl FnOnce() -> R) -> R { - VALIDATION_PARAMS::using(&mut params, f) +/// `block_data` and `head_data` are represented as [`bytes::Bytes`] to make them reuse +/// the memory of the input parameter of the exported `validate_blocks` function. +/// +/// The layout of this type must match exactly the layout of +/// [`ValidationParams`](polkadot_parachain::primitives::ValidationParams) to have the same +/// SCALE encoding. +#[derive(codec::Decode)] +#[cfg_attr(feature = "std", derive(codec::Encode))] +#[doc(hidden)] +pub struct MemoryOptimizedValidationParams { + pub parent_head: bytes::Bytes, + pub block_data: bytes::Bytes, + pub relay_parent_number: cumulus_primitives_core::relay_chain::BlockNumber, + pub relay_parent_storage_root: cumulus_primitives_core::relay_chain::Hash, } diff --git a/pallets/parachain-system/src/validate_block/tests.rs b/pallets/parachain-system/src/validate_block/tests.rs index 6087e6a29a3..2c39188a085 100644 --- a/pallets/parachain-system/src/validate_block/tests.rs +++ b/pallets/parachain-system/src/validate_block/tests.rs @@ -14,7 +14,7 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . -use codec::{Decode, Encode}; +use codec::{Decode, DecodeAll, Encode}; use cumulus_primitives_core::{ParachainBlockData, PersistedValidationData}; use cumulus_test_client::{ generate_extrinsic, @@ -24,9 +24,11 @@ use cumulus_test_client::{ }; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; use sp_keyring::AccountKeyring::*; -use sp_runtime::{generic::BlockId, traits::Header as HeaderT}; +use sp_runtime::traits::Header as HeaderT; use std::{env, process::Command}; +use crate::validate_block::MemoryOptimizedValidationParams; + fn call_validate_block_encoded_header( parent_head: Header, block_data: ParachainBlockData, @@ -60,7 +62,7 @@ fn create_test_client() -> (Client, Header) { .build(); let genesis_header = client - .header(&BlockId::number(0)) + .header(client.chain_info().genesis_hash) .ok() .flatten() .expect("Genesis header exists; qed"); @@ -289,3 +291,31 @@ fn check_inherents_are_unsigned_and_before_all_other_extrinsics() { .contains("Could not find `set_validation_data` inherent")); } } + +/// Test that ensures that `ValidationParams` and `MemoryOptimizedValidationParams` +/// are encoding/decoding. +#[test] +fn validation_params_and_memory_optimized_validation_params_encode_and_decode() { + const BLOCK_DATA: &[u8] = &[1, 2, 3, 4, 5]; + const PARENT_HEAD: &[u8] = &[1, 3, 4, 5, 6, 7, 9]; + + let validation_params = ValidationParams { + block_data: BlockData(BLOCK_DATA.encode()), + parent_head: HeadData(PARENT_HEAD.encode()), + relay_parent_number: 1, + relay_parent_storage_root: Hash::random(), + }; + + let encoded = validation_params.encode(); + + let decoded = MemoryOptimizedValidationParams::decode_all(&mut &encoded[..]).unwrap(); + assert_eq!(decoded.relay_parent_number, validation_params.relay_parent_number); + assert_eq!(decoded.relay_parent_storage_root, validation_params.relay_parent_storage_root); + assert_eq!(decoded.block_data, validation_params.block_data.0); + assert_eq!(decoded.parent_head, validation_params.parent_head.0); + + let encoded = decoded.encode(); + + let decoded = ValidationParams::decode_all(&mut &encoded[..]).unwrap(); + assert_eq!(decoded, validation_params); +} diff --git a/pallets/session-benchmarking/Cargo.toml b/pallets/session-benchmarking/Cargo.toml index 9733756a59f..4b19323bebf 100644 --- a/pallets/session-benchmarking/Cargo.toml +++ b/pallets/session-benchmarking/Cargo.toml @@ -13,13 +13,13 @@ readme = "README.md" targets = ["x86_64-unknown-linux-gnu"] [dependencies] -parity-scale-codec = { version = "3.2.1", default-features = false } -sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +parity-scale-codec = { version = "3.4.0", default-features = false } +sp-std = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-support = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-system = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-session = { default-features = false, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = ["std"] diff --git a/pallets/solo-to-para/Cargo.toml b/pallets/solo-to-para/Cargo.toml index 5a6c0a5dbf1..2fffa31c3e9 100644 --- a/pallets/solo-to-para/Cargo.toml +++ b/pallets/solo-to-para/Cargo.toml @@ -10,14 +10,14 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-parachain-system = { default-features = false, path = "../parachain-system" } @@ -35,7 +35,4 @@ std = [ "sp-runtime/std", "sp-std/std", ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", -] +try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/solo-to-para/src/lib.rs b/pallets/solo-to-para/src/lib.rs index efa61c8ebda..515dd385e7b 100644 --- a/pallets/solo-to-para/src/lib.rs +++ b/pallets/solo-to-para/src/lib.rs @@ -20,7 +20,7 @@ use cumulus_pallet_parachain_system as parachain_system; use frame_support::pallet_prelude::*; use frame_system::pallet_prelude::*; pub use pallet::*; -use polkadot_primitives::v2::PersistedValidationData; +use polkadot_primitives::PersistedValidationData; use sp_std::vec::Vec; #[frame_support::pallet] @@ -35,7 +35,6 @@ pub mod pallet { } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] #[pallet::without_storage_info] pub struct Pallet(_); diff --git a/pallets/xcm/Cargo.toml b/pallets/xcm/Cargo.toml index 3fac286ec33..0c1bf44b582 100644 --- a/pallets/xcm/Cargo.toml +++ b/pallets/xcm/Cargo.toml @@ -8,13 +8,13 @@ version = "0.1.0" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } cumulus-primitives-core = { path = "../../primitives/core", default-features = false } @@ -30,7 +30,4 @@ std = [ "frame-system/std", "xcm/std", ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", -] +try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/xcm/src/lib.rs b/pallets/xcm/src/lib.rs index 9d9c656e84b..f230ced5dc5 100644 --- a/pallets/xcm/src/lib.rs +++ b/pallets/xcm/src/lib.rs @@ -41,7 +41,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); /// The module configuration trait. @@ -67,13 +66,13 @@ pub mod pallet { pub enum Event { /// Downward message is invalid XCM. /// \[ id \] - InvalidFormat([u8; 8]), + InvalidFormat([u8; 32]), /// Downward message is unsupported version of XCM. /// \[ id \] - UnsupportedVersion([u8; 8]), + UnsupportedVersion([u8; 32]), /// Downward message executed with the given outcome. /// \[ id, outcome \] - ExecutedDownward([u8; 8], Outcome), + ExecutedDownward([u8; 32], Outcome), } /// Origin for the parachains module. @@ -113,7 +112,7 @@ impl DmpMessageHandler for UnlimitedDmpExecution { ) -> Weight { let mut used = Weight::zero(); for (_sent_at, data) in iter { - let id = sp_io::hashing::twox_64(&data[..]); + let id = sp_io::hashing::blake2_256(&data[..]); let msg = VersionedXcm::::decode_all_with_depth_limit( MAX_XCM_DECODE_DEPTH, &mut data.as_slice(), @@ -123,8 +122,8 @@ impl DmpMessageHandler for UnlimitedDmpExecution { Err(_) => Pallet::::deposit_event(Event::InvalidFormat(id)), Ok(Err(())) => Pallet::::deposit_event(Event::UnsupportedVersion(id)), Ok(Ok(x)) => { - let outcome = T::XcmExecutor::execute_xcm(Parent, x, limit.ref_time()); - used += Weight::from_ref_time(outcome.weight_used()); + let outcome = T::XcmExecutor::execute_xcm(Parent, x, id, limit); + used = used.saturating_add(outcome.weight_used()); Pallet::::deposit_event(Event::ExecutedDownward(id, outcome)); }, } @@ -146,7 +145,7 @@ impl DmpMessageHandler for LimitAndDropDmpExecution { ) -> Weight { let mut used = Weight::zero(); for (_sent_at, data) in iter { - let id = sp_io::hashing::twox_64(&data[..]); + let id = sp_io::hashing::blake2_256(&data[..]); let msg = VersionedXcm::::decode_all_with_depth_limit( MAX_XCM_DECODE_DEPTH, &mut data.as_slice(), @@ -157,8 +156,8 @@ impl DmpMessageHandler for LimitAndDropDmpExecution { Ok(Err(())) => Pallet::::deposit_event(Event::UnsupportedVersion(id)), Ok(Ok(x)) => { let weight_limit = limit.saturating_sub(used); - let outcome = T::XcmExecutor::execute_xcm(Parent, x, weight_limit.ref_time()); - used += Weight::from_ref_time(outcome.weight_used()); + let outcome = T::XcmExecutor::execute_xcm(Parent, x, id, weight_limit); + used = used.saturating_add(outcome.weight_used()); Pallet::::deposit_event(Event::ExecutedDownward(id, outcome)); }, } diff --git a/pallets/xcmp-queue/Cargo.toml b/pallets/xcmp-queue/Cargo.toml index 7ca2716fde7..930b3774ce7 100644 --- a/pallets/xcmp-queue/Cargo.toml +++ b/pallets/xcmp-queue/Cargo.toml @@ -11,31 +11,32 @@ rand_chacha = { version = "0.3.0", default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core", default-features = false } # Optional import for benchmarking -frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-benchmarking = { default-features = false, optional = true, git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dev-dependencies] # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-pallet-parachain-system = { path = "../parachain-system" } @@ -49,6 +50,8 @@ std = [ "frame-support/std", "frame-system/std", "log/std", + "polkadot-runtime-common/std", + "sp-io/std", "sp-runtime/std", "sp-std/std", "xcm-executor/std", @@ -60,8 +63,6 @@ runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", "frame-support/runtime-benchmarks", "frame-system/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", ] -try-runtime = [ - "frame-system/try-runtime", - "frame-support/try-runtime", -] +try-runtime = ["frame-support/try-runtime"] diff --git a/pallets/xcmp-queue/src/benchmarking.rs b/pallets/xcmp-queue/src/benchmarking.rs index 5d34d499dbe..f4167e522fa 100644 --- a/pallets/xcmp-queue/src/benchmarking.rs +++ b/pallets/xcmp-queue/src/benchmarking.rs @@ -22,7 +22,7 @@ use frame_system::RawOrigin; benchmarks! { set_config_with_u32 {}: update_resume_threshold(RawOrigin::Root, 100) - set_config_with_weight {}: update_weight_restrict_decay(RawOrigin::Root, 3_000_000) + set_config_with_weight {}: update_weight_restrict_decay(RawOrigin::Root, Weight::from_parts(3_000_000, 0)) } impl_benchmark_test_suite!(Pallet, crate::mock::new_test_ext(), crate::mock::Test); diff --git a/pallets/xcmp-queue/src/lib.rs b/pallets/xcmp-queue/src/lib.rs index c51a234890b..8f1e162fb20 100644 --- a/pallets/xcmp-queue/src/lib.rs +++ b/pallets/xcmp-queue/src/lib.rs @@ -44,21 +44,19 @@ use cumulus_primitives_core::{ ParaId, XcmpMessageFormat, XcmpMessageHandler, XcmpMessageSource, }; use frame_support::{ - traits::EnsureOrigin, + traits::{EnsureOrigin, Get}, weights::{constants::WEIGHT_REF_TIME_PER_MILLIS, Weight}, }; use mangata_support::traits::GetMaintenanceStatusTrait; +use polkadot_runtime_common::xcm_sender::ConstantPrice; use rand_chacha::{ rand_core::{RngCore, SeedableRng}, ChaChaRng, }; use scale_info::TypeInfo; -use sp_runtime::{traits::Hash, RuntimeDebug}; +use sp_runtime::RuntimeDebug; use sp_std::{convert::TryFrom, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XcmWeight}, - VersionedXcm, WrapVersion, MAX_XCM_DECODE_DEPTH, -}; +use xcm::{latest::prelude::*, VersionedXcm, WrapVersion, MAX_XCM_DECODE_DEPTH}; use xcm_executor::traits::ConvertOrigin; pub use pallet::*; @@ -69,6 +67,12 @@ pub type OverweightIndex = u64; const LOG_TARGET: &str = "xcmp_queue"; const DEFAULT_POV_SIZE: u64 = 64 * 1024; // 64 KB +// Maximum amount of messages to process per block. This is a temporary measure until we properly +// account for proof size weights. +const MAX_MESSAGES_PER_BLOCK: u8 = 10; +// Maximum amount of messages that can exist in the overweight queue at any given time. +const MAX_OVERWEIGHT_MESSAGES: u32 = 1000; + #[frame_support::pallet] pub mod pallet { use super::*; @@ -76,7 +80,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] #[pallet::storage_version(migration::STORAGE_VERSION)] #[pallet::without_storage_info] pub struct Pallet(_); @@ -106,6 +109,9 @@ pub mod pallet { /// superuser origin. type ControllerOriginConverter: ConvertOrigin; + /// The price for delivering an XCM to a sibling parachain destination. + type PriceForSiblingDelivery: PriceForSiblingDelivery; + /// The weight information of this pallet. type WeightInfo: WeightInfo; } @@ -138,11 +144,11 @@ pub mod pallet { /// Events: /// - `OverweightServiced`: On success. #[pallet::call_index(0)] - #[pallet::weight((Weight::from_ref_time(weight_limit.saturating_add(1_000_000)), DispatchClass::Operational,))] + #[pallet::weight((weight_limit.saturating_add(Weight::from_parts(1_000_000, 0)), DispatchClass::Operational))] pub fn service_overweight( origin: OriginFor, index: OverweightIndex, - weight_limit: XcmWeight, + weight_limit: Weight, ) -> DispatchResultWithPostInfo { T::ExecuteOverweightOrigin::ensure_origin(origin)?; @@ -158,12 +164,11 @@ pub mod pallet { &mut data.as_slice(), ) .map_err(|_| Error::::BadXcm)?; - let used = - Self::handle_xcm_message(sender, sent_at, xcm, Weight::from_ref_time(weight_limit)) - .map_err(|_| Error::::WeightOverLimit)?; + let used = Self::handle_xcm_message(sender, sent_at, xcm, weight_limit) + .map_err(|_| Error::::WeightOverLimit)?; Overweight::::remove(index); Self::deposit_event(Event::OverweightServiced { index, used }); - Ok(Some(used.saturating_add(Weight::from_ref_time(1_000_000))).into()) + Ok(Some(used.saturating_add(Weight::from_parts(1_000_000, 0))).into()) } /// Suspends all XCM executions for the XCMP queue, regardless of the sender's origin. @@ -242,9 +247,9 @@ pub mod pallet { /// - `new`: Desired value for `QueueConfigData.threshold_weight` #[pallet::call_index(6)] #[pallet::weight((T::WeightInfo::set_config_with_weight(), DispatchClass::Operational,))] - pub fn update_threshold_weight(origin: OriginFor, new: XcmWeight) -> DispatchResult { + pub fn update_threshold_weight(origin: OriginFor, new: Weight) -> DispatchResult { ensure_root(origin)?; - QueueConfig::::mutate(|data| data.threshold_weight = Weight::from_ref_time(new)); + QueueConfig::::mutate(|data| data.threshold_weight = new); Ok(()) } @@ -256,14 +261,9 @@ pub mod pallet { /// - `new`: Desired value for `QueueConfigData.weight_restrict_decay`. #[pallet::call_index(7)] #[pallet::weight((T::WeightInfo::set_config_with_weight(), DispatchClass::Operational,))] - pub fn update_weight_restrict_decay( - origin: OriginFor, - new: XcmWeight, - ) -> DispatchResult { + pub fn update_weight_restrict_decay(origin: OriginFor, new: Weight) -> DispatchResult { ensure_root(origin)?; - QueueConfig::::mutate(|data| { - data.weight_restrict_decay = Weight::from_ref_time(new) - }); + QueueConfig::::mutate(|data| data.weight_restrict_decay = new); Ok(()) } @@ -277,12 +277,10 @@ pub mod pallet { #[pallet::weight((T::WeightInfo::set_config_with_weight(), DispatchClass::Operational,))] pub fn update_xcmp_max_individual_weight( origin: OriginFor, - new: XcmWeight, + new: Weight, ) -> DispatchResult { ensure_root(origin)?; - QueueConfig::::mutate(|data| { - data.xcmp_max_individual_weight = Weight::from_ref_time(new) - }); + QueueConfig::::mutate(|data| data.xcmp_max_individual_weight = new); Ok(()) } @@ -292,17 +290,15 @@ pub mod pallet { #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { /// Some XCM was executed ok. - Success { message_hash: Option, weight: Weight }, + Success { message_hash: Option, weight: Weight }, /// Some XCM failed. - Fail { message_hash: Option, error: XcmError, weight: Weight }, + Fail { message_hash: Option, error: XcmError, weight: Weight }, /// Bad XCM version used. - BadVersion { message_hash: Option }, + BadVersion { message_hash: Option }, /// Bad XCM format used. - BadFormat { message_hash: Option }, - /// An upward message was sent to the relay chain. - UpwardMessageSent { message_hash: Option }, + BadFormat { message_hash: Option }, /// An HRMP message was sent to a sibling parachain. - XcmpMessageSent { message_hash: Option }, + XcmpMessageSent { message_hash: Option }, /// An XCM exceeded the individual message weight budget. OverweightEnqueued { sender: ParaId, @@ -378,7 +374,7 @@ pub mod pallet { /// `service_overweight`. #[pallet::storage] pub(super) type Overweight = - StorageMap<_, Twox64Concat, OverweightIndex, (ParaId, RelayBlockNumber, Vec)>; + CountedStorageMap<_, Twox64Concat, OverweightIndex, (ParaId, RelayBlockNumber, Vec)>; /// The number of overweight messages ever recorded in `Overweight`. Also doubles as the next /// available free overweight index. @@ -480,8 +476,8 @@ impl Default for QueueConfigData { suspend_threshold: 2, drop_threshold: 5, resume_threshold: 1, - threshold_weight: Weight::from_ref_time(100_000), - weight_restrict_decay: Weight::from_ref_time(2), + threshold_weight: Weight::from_parts(100_000, 0), + weight_restrict_decay: Weight::from_parts(2, 0), xcmp_max_individual_weight: Weight::from_parts( 20u64 * WEIGHT_REF_TIME_PER_MILLIS, DEFAULT_POV_SIZE, @@ -633,34 +629,23 @@ impl Pallet { xcm: VersionedXcm, max_weight: Weight, ) -> Result { - let hash = Encode::using_encoded(&xcm, T::Hashing::hash); + let hash = xcm.using_encoded(sp_io::hashing::blake2_256); log::debug!("Processing XCMP-XCM: {:?}", &hash); let (result, event) = match Xcm::::try_from(xcm) { Ok(xcm) => { - let location = (1, Parachain(sender.into())); + let location = (Parent, Parachain(sender.into())); - match T::XcmExecutor::execute_xcm(location, xcm, max_weight.ref_time()) { + match T::XcmExecutor::execute_xcm(location, xcm, hash, max_weight) { Outcome::Error(e) => ( Err(e), Event::Fail { message_hash: Some(hash), error: e, weight: Weight::zero() }, ), - Outcome::Complete(w) => ( - Ok(Weight::from_ref_time(w)), - Event::Success { - message_hash: Some(hash), - weight: Weight::from_ref_time(w), - }, - ), + Outcome::Complete(w) => + (Ok(w), Event::Success { message_hash: Some(hash), weight: w }), // As far as the caller is concerned, this was dispatched without error, so // we just report the weight used. - Outcome::Incomplete(w, e) => ( - Ok(Weight::from_ref_time(w)), - Event::Fail { - message_hash: Some(hash), - error: e, - weight: Weight::from_ref_time(w), - }, - ), + Outcome::Incomplete(w, e) => + (Ok(w), Event::Fail { message_hash: Some(hash), error: e, weight: w }), } }, Err(()) => @@ -673,6 +658,7 @@ impl Pallet { fn process_xcmp_message( sender: ParaId, (sent_at, format): (RelayBlockNumber, XcmpMessageFormat), + messages_processed: &mut u8, max_weight: Weight, max_individual_weight: Weight, ) -> (Weight, bool) { @@ -682,35 +668,45 @@ impl Pallet { let mut weight_used = Weight::zero(); match format { XcmpMessageFormat::ConcatenatedVersionedXcm => { - while !remaining_fragments.is_empty() { + while !remaining_fragments.is_empty() && + *messages_processed < MAX_MESSAGES_PER_BLOCK + { last_remaining_fragments = remaining_fragments; if let Ok(xcm) = VersionedXcm::::decode_with_depth_limit( MAX_XCM_DECODE_DEPTH, &mut remaining_fragments, ) { let weight = max_weight - weight_used; + *messages_processed += 1; match Self::handle_xcm_message(sender, sent_at, xcm, weight) { Ok(used) => weight_used = weight_used.saturating_add(used), Err(XcmError::WeightLimitReached(required)) - if required > max_individual_weight.ref_time() => + if required.any_gt(max_individual_weight) => { - // overweight - add to overweight queue and continue with message - // execution consuming the message. - let msg_len = last_remaining_fragments - .len() - .saturating_sub(remaining_fragments.len()); - let overweight_xcm = last_remaining_fragments[..msg_len].to_vec(); - let index = Self::stash_overweight(sender, sent_at, overweight_xcm); - let e = Event::OverweightEnqueued { - sender, - sent_at, - index, - required: Weight::from_ref_time(required), - }; - Self::deposit_event(e); + let is_under_limit = + Overweight::::count() < MAX_OVERWEIGHT_MESSAGES; + weight_used.saturating_accrue(T::DbWeight::get().reads(1)); + if is_under_limit { + // overweight - add to overweight queue and continue with message + // execution consuming the message. + let msg_len = last_remaining_fragments + .len() + .saturating_sub(remaining_fragments.len()); + let overweight_xcm = + last_remaining_fragments[..msg_len].to_vec(); + let index = + Self::stash_overweight(sender, sent_at, overweight_xcm); + let e = Event::OverweightEnqueued { + sender, + sent_at, + index, + required, + }; + Self::deposit_event(e); + } }, Err(XcmError::WeightLimitReached(required)) - if required <= max_weight.ref_time() => + if required.all_lte(max_weight) => { // That message didn't get processed this time because of being // too heavy. We leave it around for next time and bail. @@ -737,6 +733,7 @@ impl Pallet { if let Ok(blob) = >::decode(&mut remaining_fragments) { let weight = max_weight - weight_used; + *messages_processed += 1; match Self::handle_blob_message(sender, sent_at, blob, weight) { Ok(used) => weight_used = weight_used.saturating_add(used), Err(true) => { @@ -775,13 +772,13 @@ impl Pallet { sent_at: RelayBlockNumber, xcm: Vec, ) -> OverweightIndex { - let index = ::OverweightCount::mutate(|count| { + let index = OverweightCount::::mutate(|count| { let index = *count; *count += 1; index }); - ::Overweight::insert(index, (sender, sent_at, xcm)); + Overweight::::insert(index, (sender, sent_at, xcm)); index } @@ -818,6 +815,7 @@ impl Pallet { } let suspended = QueueSuspended::::get(); + let mut messages_processed = 0; let mut status = >::get(); // <- sorted. if status.is_empty() { @@ -846,12 +844,13 @@ impl Pallet { let mut shuffle_index = 0; while shuffle_index < shuffled.len() && - max_weight.saturating_sub(weight_used).all_gte(threshold_weight) + max_weight.saturating_sub(weight_used).all_gte(threshold_weight) && + messages_processed < MAX_MESSAGES_PER_BLOCK { let index = shuffled[shuffle_index]; let sender = status[index].sender; let sender_origin = T::ControllerOriginConverter::convert_origin( - (1, Parachain(sender.into())), + (Parent, Parachain(sender.into())), OriginKind::Superuser, ); let is_controller = sender_origin @@ -886,6 +885,7 @@ impl Pallet { let (weight_processed, is_empty) = Self::process_xcmp_message( sender, status[index].message_metadata[0], + &mut messages_processed, weight_remaining, xcmp_max_individual_weight, ); @@ -1147,28 +1147,60 @@ impl XcmpMessageSource for Pallet { } } +pub trait PriceForSiblingDelivery { + fn price_for_sibling_delivery(id: ParaId, message: &Xcm<()>) -> MultiAssets; +} + +impl PriceForSiblingDelivery for () { + fn price_for_sibling_delivery(_: ParaId, _: &Xcm<()>) -> MultiAssets { + MultiAssets::new() + } +} + +impl> PriceForSiblingDelivery for ConstantPrice { + fn price_for_sibling_delivery(_: ParaId, _: &Xcm<()>) -> MultiAssets { + T::get() + } +} + /// Xcm sender for sending to a sibling parachain. impl SendXcm for Pallet { - fn send_xcm(dest: impl Into, msg: Xcm<()>) -> Result<(), SendError> { - let dest = dest.into(); + type Ticket = (ParaId, VersionedXcm<()>); + + fn validate( + dest: &mut Option, + msg: &mut Option>, + ) -> SendResult<(ParaId, VersionedXcm<()>)> { + let d = dest.take().ok_or(SendError::MissingArgument)?; - match &dest { + match &d { // An HRMP message for a sibling parachain. MultiLocation { parents: 1, interior: X1(Parachain(id)) } => { - let versioned_xcm = T::VersionWrapper::wrap_version(&dest, msg) + let xcm = msg.take().ok_or(SendError::MissingArgument)?; + let id = ParaId::from(*id); + let price = T::PriceForSiblingDelivery::price_for_sibling_delivery(id, &xcm); + let versioned_xcm = T::VersionWrapper::wrap_version(&d, xcm) .map_err(|()| SendError::DestinationUnsupported)?; - let hash = T::Hashing::hash_of(&versioned_xcm); - Self::send_fragment( - (*id).into(), - XcmpMessageFormat::ConcatenatedVersionedXcm, - versioned_xcm, - ) - .map_err(|e| SendError::Transport(<&'static str>::from(e)))?; + Ok(((id, versioned_xcm), price)) + }, + _ => { + // Anything else is unhandled. This includes a message that is not meant for us. + // We need to make sure that dest/msg is not consumed here. + *dest = Some(d); + Err(SendError::NotApplicable) + }, + } + } + + fn deliver((id, xcm): (ParaId, VersionedXcm<()>)) -> Result { + let hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + match Self::send_fragment(id, XcmpMessageFormat::ConcatenatedVersionedXcm, xcm) { + Ok(_) => { Self::deposit_event(Event::XcmpMessageSent { message_hash: Some(hash) }); - Ok(()) + Ok(hash) }, - // Anything else is unhandled. This includes a message this is meant for us. - _ => Err(SendError::CannotReachDestination(dest, msg)), + Err(e) => Err(SendError::Transport(<&'static str>::from(e))), } } } diff --git a/pallets/xcmp-queue/src/migration.rs b/pallets/xcmp-queue/src/migration.rs index 5eb808162f6..f6ece1da1a8 100644 --- a/pallets/xcmp-queue/src/migration.rs +++ b/pallets/xcmp-queue/src/migration.rs @@ -16,13 +16,12 @@ //! A module that is responsible for migration of storage. -use crate::{Config, Pallet, Store, DEFAULT_POV_SIZE}; +use crate::{Config, Overweight, Pallet, QueueConfig, DEFAULT_POV_SIZE}; use frame_support::{ pallet_prelude::*, traits::StorageVersion, weights::{constants::WEIGHT_REF_TIME_PER_MILLIS, Weight}, }; -use xcm::latest::Weight as XcmWeight; /// The current storage version. pub const STORAGE_VERSION: StorageVersion = StorageVersion::new(2); @@ -33,8 +32,15 @@ pub fn migrate_to_latest() -> Weight { let mut weight = T::DbWeight::get().reads(1); if StorageVersion::get::>() == 1 { - weight += migrate_to_v2::(); + weight.saturating_accrue(migrate_to_v2::()); StorageVersion::new(2).put::>(); + weight.saturating_accrue(T::DbWeight::get().writes(1)); + } + + if StorageVersion::get::>() == 2 { + weight.saturating_accrue(migrate_to_v3::()); + StorageVersion::new(3).put::>(); + weight.saturating_accrue(T::DbWeight::get().writes(1)); } weight @@ -49,9 +55,9 @@ mod v1 { pub suspend_threshold: u32, pub drop_threshold: u32, pub resume_threshold: u32, - pub threshold_weight: XcmWeight, - pub weight_restrict_decay: XcmWeight, - pub xcmp_max_individual_weight: XcmWeight, + pub threshold_weight: u64, + pub weight_restrict_decay: u64, + pub xcmp_max_individual_weight: u64, } impl Default for QueueConfigData { @@ -79,8 +85,8 @@ pub fn migrate_to_v2() -> Weight { suspend_threshold: pre.suspend_threshold, drop_threshold: pre.drop_threshold, resume_threshold: pre.resume_threshold, - threshold_weight: Weight::from_ref_time(pre.threshold_weight), - weight_restrict_decay: Weight::from_ref_time(pre.weight_restrict_decay), + threshold_weight: Weight::from_parts(pre.threshold_weight, 0), + weight_restrict_decay: Weight::from_parts(pre.weight_restrict_decay, 0), xcmp_max_individual_weight: Weight::from_parts( pre.xcmp_max_individual_weight, DEFAULT_POV_SIZE, @@ -88,7 +94,7 @@ pub fn migrate_to_v2() -> Weight { } }; - if let Err(_) = as Store>::QueueConfig::translate(|pre| pre.map(translate)) { + if let Err(_) = QueueConfig::::translate(|pre| pre.map(translate)) { log::error!( target: super::LOG_TARGET, "unexpected error when performing translation of the QueueConfig type during storage upgrade to v2" @@ -98,6 +104,12 @@ pub fn migrate_to_v2() -> Weight { T::DbWeight::get().reads_writes(1, 1) } +pub fn migrate_to_v3() -> Weight { + let overweight_messages = Overweight::::initialize_counter() as u64; + + T::DbWeight::get().reads_writes(overweight_messages, 1) +} + #[cfg(test)] mod tests { use super::*; diff --git a/pallets/xcmp-queue/src/mock.rs b/pallets/xcmp-queue/src/mock.rs index 715246b2dad..e27ea72aae9 100644 --- a/pallets/xcmp-queue/src/mock.rs +++ b/pallets/xcmp-queue/src/mock.rs @@ -18,7 +18,10 @@ use crate as xcmp_queue; use core::marker::PhantomData; use cumulus_pallet_parachain_system::AnyRelayNumber; use cumulus_primitives_core::{IsSystem, ParaId}; -use frame_support::{parameter_types, traits::OriginTrait}; +use frame_support::{ + parameter_types, + traits::{Everything, Nothing, OriginTrait}, +}; use frame_system::EnsureRoot; use sp_core::H256; use sp_runtime::{ @@ -27,9 +30,7 @@ use sp_runtime::{ }; use std::{cell::RefCell, thread::LocalKey}; use xcm::prelude::*; -use xcm_builder::{ - CurrencyAdapter, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsPreset, -}; +use xcm_builder::{CurrencyAdapter, FixedWeightBounds, IsConcrete, NativeAsset, ParentIsPreset}; use xcm_executor::traits::ConvertOrigin; type UncheckedExtrinsic = frame_system::mocking::MockUncheckedExtrinsic; @@ -59,7 +60,7 @@ parameter_types! { type AccountId = u64; impl frame_system::Config for Test { - type BaseCallFilter = frame_support::traits::Everything; + type BaseCallFilter = Everything; type BlockWeights = (); type BlockLength = (); type DbWeight = (); @@ -117,9 +118,10 @@ impl cumulus_pallet_parachain_system::Config for Test { parameter_types! { pub const RelayChain: MultiLocation = MultiLocation::parent(); - pub Ancestry: MultiLocation = X1(Parachain(1u32.into())).into(); - pub UnitWeightCost: u64 = 1_000_000; + pub UniversalLocation: InteriorMultiLocation = X1(Parachain(1u32.into())).into(); + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000, 1024); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } /// Means for transacting assets on this chain. @@ -147,7 +149,7 @@ impl xcm_executor::Config for XcmConfig { type OriginConverter = (); type IsReserve = NativeAsset; type IsTeleporter = NativeAsset; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = (); type Weigher = FixedWeightBounds; type Trader = (); @@ -155,6 +157,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = (); type AssetClaims = (); type SubscriptionService = (); + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } pub type XcmRouter = ( @@ -228,6 +239,7 @@ impl Config for Test { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = SystemParachainAsSuperuser; type WeightInfo = (); + type PriceForSiblingDelivery = (); } pub fn new_test_ext() -> sp_io::TestExternalities { diff --git a/pallets/xcmp-queue/src/tests.rs b/pallets/xcmp-queue/src/tests.rs index 3daaea336c7..8760efbd3d9 100644 --- a/pallets/xcmp-queue/src/tests.rs +++ b/pallets/xcmp-queue/src/tests.rs @@ -48,8 +48,9 @@ fn bad_message_is_handled() { XcmpQueue::process_xcmp_message( 1000.into(), (1, format), - Weight::from_ref_time(10_000_000_000), - Weight::from_ref_time(10_000_000_000), + &mut 0, + Weight::from_parts(10_000_000_000, 0), + Weight::from_parts(10_000_000_000, 0), ); }); } @@ -71,8 +72,9 @@ fn handle_blob_message() { XcmpQueue::process_xcmp_message( 1000.into(), (1, format), - Weight::from_ref_time(10_000_000_000), - Weight::from_ref_time(10_000_000_000), + &mut 0, + Weight::from_parts(10_000_000_000, 0), + Weight::from_parts(10_000_000_000, 0), ); }); } @@ -88,8 +90,9 @@ fn handle_invalid_data() { XcmpQueue::process_xcmp_message( 1000.into(), (1, format), - Weight::from_ref_time(10_000_000_000), - Weight::from_ref_time(10_000_000_000), + &mut 0, + Weight::from_parts(10_000_000_000, 0), + Weight::from_parts(10_000_000_000, 0), ); }); } @@ -98,7 +101,7 @@ fn handle_invalid_data() { fn service_overweight_unknown() { new_test_ext().execute_with(|| { assert_noop!( - XcmpQueue::service_overweight(RuntimeOrigin::root(), 0, 1000), + XcmpQueue::service_overweight(RuntimeOrigin::root(), 0, Weight::from_parts(1000, 1000)), Error::::BadOverweightIndex, ); }); @@ -109,7 +112,7 @@ fn service_overweight_does_not_work_in_maintenance_mode() { new_test_ext().execute_with(|| { MockMaintenanceStatusProvider::set_maintenance_status(true, false); assert_noop!( - XcmpQueue::service_overweight(RuntimeOrigin::root(), 0, 1000), + XcmpQueue::service_overweight(RuntimeOrigin::root(), 0, Weight::from_parts(1000, 0)), Error::::XcmMsgProcessingBlockedByMaintenanceMode, ); }); @@ -122,7 +125,7 @@ fn service_overweight_bad_xcm_format() { Overweight::::insert(0, (ParaId::from(1000), 0, bad_xcm)); assert_noop!( - XcmpQueue::service_overweight(RuntimeOrigin::root(), 0, 1000), + XcmpQueue::service_overweight(RuntimeOrigin::root(), 0, Weight::from_parts(1000, 1000)), Error::::BadXcm ); }); @@ -170,7 +173,7 @@ fn service_xcmp_queue_does_not_work_in_maintenance_mode() { // This should have executed the incoming XCM, because it came from a system parachain let weight_used = XcmpQueue::handle_xcmp_messages(messages.into_iter(), Weight::MAX); - assert_eq!(weight_used, Weight::from_ref_time(0)); + assert_eq!(weight_used, Weight::zero()); let queued_xcm = InboundXcmpMessages::::get(ParaId::from(999), 1u32); assert_eq!(queued_xcm, xcm); @@ -179,7 +182,7 @@ fn service_xcmp_queue_does_not_work_in_maintenance_mode() { // This shouldn't have executed the incoming XCM let weight_used = XcmpQueue::handle_xcmp_messages(messages.into_iter(), Weight::MAX); - assert_eq!(weight_used, Weight::from_ref_time(0)); + assert_eq!(weight_used, Weight::zero()); let queued_xcm = InboundXcmpMessages::::get(ParaId::from(2000), 1u32); assert_eq!(queued_xcm, xcm); @@ -200,7 +203,7 @@ fn on_idle_should_not_service_queue_in_maintenance_mode() { // This should have executed the incoming XCM, because it came from a system parachain let weight_used = XcmpQueue::handle_xcmp_messages(messages.into_iter(), Weight::MAX); - assert_eq!(weight_used, Weight::from_ref_time(0)); + assert_eq!(weight_used, Weight::zero()); let queued_xcm = InboundXcmpMessages::::get(ParaId::from(999), 1u32); assert_eq!(queued_xcm, xcm); @@ -209,13 +212,13 @@ fn on_idle_should_not_service_queue_in_maintenance_mode() { // This shouldn't have executed the incoming XCM let weight_used = XcmpQueue::handle_xcmp_messages(messages.into_iter(), Weight::MAX); - assert_eq!(weight_used, Weight::from_ref_time(0)); + assert_eq!(weight_used, Weight::zero()); let queued_xcm = InboundXcmpMessages::::get(ParaId::from(2000), 1u32); assert_eq!(queued_xcm, xcm); let weight_used = XcmpQueue::on_idle(1, Weight::from_ref_time(6000)); - assert_eq!(weight_used, Weight::from_ref_time(0)); + assert_eq!(weight_used, Weight::zero()); let queued_xcm = InboundXcmpMessages::::get(ParaId::from(999), 1u32); assert_eq!(queued_xcm, xcm); @@ -268,15 +271,21 @@ fn update_resume_threshold_works() { fn update_threshold_weight_works() { new_test_ext().execute_with(|| { let data: QueueConfigData = >::get(); - assert_eq!(data.threshold_weight, Weight::from_ref_time(100_000)); - assert_ok!(XcmpQueue::update_threshold_weight(RuntimeOrigin::root(), 10_000)); + assert_eq!(data.threshold_weight, Weight::from_parts(100_000, 0)); + assert_ok!(XcmpQueue::update_threshold_weight( + RuntimeOrigin::root(), + Weight::from_parts(10_000, 0) + )); assert_noop!( - XcmpQueue::update_threshold_weight(RuntimeOrigin::signed(5), 10_000_000), + XcmpQueue::update_threshold_weight( + RuntimeOrigin::signed(5), + Weight::from_parts(10_000_000, 0), + ), BadOrigin ); let data: QueueConfigData = >::get(); - assert_eq!(data.threshold_weight, Weight::from_ref_time(10_000)); + assert_eq!(data.threshold_weight, Weight::from_parts(10_000, 0)); }); } @@ -284,15 +293,21 @@ fn update_threshold_weight_works() { fn update_weight_restrict_decay_works() { new_test_ext().execute_with(|| { let data: QueueConfigData = >::get(); - assert_eq!(data.weight_restrict_decay, Weight::from_ref_time(2)); - assert_ok!(XcmpQueue::update_weight_restrict_decay(RuntimeOrigin::root(), 5)); + assert_eq!(data.weight_restrict_decay, Weight::from_parts(2, 0)); + assert_ok!(XcmpQueue::update_weight_restrict_decay( + RuntimeOrigin::root(), + Weight::from_parts(5, 0) + )); assert_noop!( - XcmpQueue::update_weight_restrict_decay(RuntimeOrigin::signed(6), 4), + XcmpQueue::update_weight_restrict_decay( + RuntimeOrigin::signed(6), + Weight::from_parts(4, 0), + ), BadOrigin ); let data: QueueConfigData = >::get(); - assert_eq!(data.weight_restrict_decay, Weight::from_ref_time(5)); + assert_eq!(data.weight_restrict_decay, Weight::from_parts(5, 0)); }); } @@ -306,12 +321,12 @@ fn update_xcmp_max_individual_weight() { ); assert_ok!(XcmpQueue::update_xcmp_max_individual_weight( RuntimeOrigin::root(), - 30u64 * WEIGHT_REF_TIME_PER_MILLIS + Weight::from_parts(30u64 * WEIGHT_REF_TIME_PER_MILLIS, 0) )); assert_noop!( XcmpQueue::update_xcmp_max_individual_weight( RuntimeOrigin::signed(3), - 10u64 * WEIGHT_REF_TIME_PER_MILLIS + Weight::from_parts(10u64 * WEIGHT_REF_TIME_PER_MILLIS, 0) ), BadOrigin ); @@ -319,7 +334,92 @@ fn update_xcmp_max_individual_weight() { assert_eq!( data.xcmp_max_individual_weight, - Weight::from_ref_time(30u64 * WEIGHT_REF_TIME_PER_MILLIS) + Weight::from_parts(30u64 * WEIGHT_REF_TIME_PER_MILLIS, 0) + ); + }); +} + +/// Validates [`validate`] for required Some(destination) and Some(message) +struct OkFixedXcmHashWithAssertingRequiredInputsSender; +impl OkFixedXcmHashWithAssertingRequiredInputsSender { + const FIXED_XCM_HASH: [u8; 32] = [9; 32]; + + fn fixed_delivery_asset() -> MultiAssets { + MultiAssets::new() + } + + fn expected_delivery_result() -> Result<(XcmHash, MultiAssets), SendError> { + Ok((Self::FIXED_XCM_HASH, Self::fixed_delivery_asset())) + } +} +impl SendXcm for OkFixedXcmHashWithAssertingRequiredInputsSender { + type Ticket = (); + + fn validate( + destination: &mut Option, + message: &mut Option>, + ) -> SendResult { + assert!(destination.is_some()); + assert!(message.is_some()); + Ok(((), OkFixedXcmHashWithAssertingRequiredInputsSender::fixed_delivery_asset())) + } + + fn deliver(_: Self::Ticket) -> Result { + Ok(Self::FIXED_XCM_HASH) + } +} + +#[test] +fn xcmp_queue_does_not_consume_dest_or_msg_on_not_applicable() { + // dummy message + let message = Xcm(vec![Trap(5)]); + + // XcmpQueue - check dest is really not applicable + let dest = (Parent, Parent, Parent); + let mut dest_wrapper = Some(dest.clone().into()); + let mut msg_wrapper = Some(message.clone()); + assert_eq!( + Err(SendError::NotApplicable), + ::validate(&mut dest_wrapper, &mut msg_wrapper) + ); + + // check wrapper were not consumed + assert_eq!(Some(dest.clone().into()), dest_wrapper.take()); + assert_eq!(Some(message.clone()), msg_wrapper.take()); + + // another try with router chain with asserting sender + assert_eq!( + OkFixedXcmHashWithAssertingRequiredInputsSender::expected_delivery_result(), + send_xcm::<(XcmpQueue, OkFixedXcmHashWithAssertingRequiredInputsSender)>( + dest.into(), + message + ) + ); +} + +#[test] +fn xcmp_queue_consumes_dest_and_msg_on_ok_validate() { + // dummy message + let message = Xcm(vec![Trap(5)]); + + // XcmpQueue - check dest/msg is valid + let dest = (Parent, X1(Parachain(5555))); + let mut dest_wrapper = Some(dest.clone().into()); + let mut msg_wrapper = Some(message.clone()); + assert!(::validate(&mut dest_wrapper, &mut msg_wrapper).is_ok()); + + // check wrapper were consumed + assert_eq!(None, dest_wrapper.take()); + assert_eq!(None, msg_wrapper.take()); + + new_test_ext().execute_with(|| { + // another try with router chain with asserting sender + assert_eq!( + Err(SendError::Transport("NoChannel")), + send_xcm::<(XcmpQueue, OkFixedXcmHashWithAssertingRequiredInputsSender)>( + dest.into(), + message + ) ); }); } diff --git a/pallets/xcmp-queue/src/weights.rs b/pallets/xcmp-queue/src/weights.rs index 41a3d812fb2..b275982b003 100644 --- a/pallets/xcmp-queue/src/weights.rs +++ b/pallets/xcmp-queue/src/weights.rs @@ -18,14 +18,14 @@ pub struct SubstrateWeight(PhantomData); impl WeightInfo for SubstrateWeight { // Storage: XcmpQueue QueueConfig (r:1 w:1) fn set_config_with_u32() -> Weight { - Weight::from_ref_time(2_717_000 as u64) + Weight::from_parts(2_717_000 as u64, 0) .saturating_add(T::DbWeight::get().reads(1 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } // Storage: XcmpQueue QueueConfig (r:1 w:1) fn set_config_with_weight() -> Weight { - Weight::from_ref_time(2_717_000 as u64) + Weight::from_parts(2_717_000 as u64, 0) .saturating_add(T::DbWeight::get().reads(1 as u64)) .saturating_add(T::DbWeight::get().writes(1 as u64)) } @@ -34,14 +34,14 @@ impl WeightInfo for SubstrateWeight { impl WeightInfo for () { // Storage: XcmpQueue QueueConfig (r:1 w:1) fn set_config_with_u32() -> Weight { - Weight::from_ref_time(2_717_000 as u64) + Weight::from_parts(2_717_000 as u64, 0) .saturating_add(RocksDbWeight::get().reads(1 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } // Storage: XcmpQueue QueueConfig (r:1 w:1) fn set_config_with_weight() -> Weight { - Weight::from_ref_time(2_717_000 as u64) + Weight::from_parts(2_717_000 as u64, 0) .saturating_add(RocksDbWeight::get().reads(1 as u64)) .saturating_add(RocksDbWeight::get().writes(1 as u64)) } diff --git a/parachain-template/node/Cargo.toml b/parachain-template/node/Cargo.toml index eff2f583801..6571a573aa8 100644 --- a/parachain-template/node/Cargo.toml +++ b/parachain-template/node/Cargo.toml @@ -10,68 +10,63 @@ edition = "2021" build = "build.rs" [dependencies] -clap = { version = "4.0.29", features = ["derive"] } +clap = { version = "4.1.8", features = ["derive"] } log = "0.4.17" codec = { package = "parity-scale-codec", version = "3.0.0" } -serde = { version = "1.0.151", features = ["derive"] } +serde = { version = "1.0.152", features = ["derive"] } jsonrpsee = { version = "0.16.2", features = ["server"] } # Local parachain-template-runtime = { path = "../runtime" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-frame-rpc-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.40" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-client-cli = { path = "../../client/cli" } cumulus-client-consensus-aura = { path = "../../client/consensus/aura" } cumulus-client-consensus-common = { path = "../../client/consensus/common" } -cumulus-client-network = { path = "../../client/network" } cumulus-client-service = { path = "../../client/service" } cumulus-primitives-core = { path = "../../primitives/core" } cumulus-primitives-parachain-inherent = { path = "../../primitives/parachain-inherent" } cumulus-relay-chain-interface = { path = "../../client/relay-chain-interface" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [] diff --git a/parachain-template/node/src/chain_spec.rs b/parachain-template/node/src/chain_spec.rs index b6d018602df..b37468f184e 100644 --- a/parachain-template/node/src/chain_spec.rs +++ b/parachain-template/node/src/chain_spec.rs @@ -217,5 +217,6 @@ fn testnet_genesis( polkadot_xcm: parachain_template_runtime::PolkadotXcmConfig { safe_xcm_version: Some(SAFE_XCM_VERSION), }, + transaction_payment: Default::default(), } } diff --git a/parachain-template/node/src/command.rs b/parachain-template/node/src/command.rs index 581cf97dfaf..36e5ab635ac 100644 --- a/parachain-template/node/src/command.rs +++ b/parachain-template/node/src/command.rs @@ -229,9 +229,12 @@ pub fn run() -> Result<()> { }, #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { + use parachain_template_runtime::MILLISECS_PER_BLOCK; + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; + use try_runtime_cli::block_building_info::timestamp_with_aura_info; + let runner = cli.create_runner(cmd)?; - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; type HostFunctionsOf = ExtendedHostFunctions< sp_io::SubstrateHostFunctions, ::ExtendHostFunctions, @@ -243,8 +246,15 @@ pub fn run() -> Result<()> { sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) .map_err(|e| format!("Error: {:?}", e))?; + let info_provider = timestamp_with_aura_info(MILLISECS_PER_BLOCK); + runner.async_run(|_| { - Ok((cmd.run::>(), task_manager)) + Ok(( + cmd.run::, _>(Some( + info_provider, + )), + task_manager, + )) }) }, #[cfg(not(feature = "try-runtime"))] @@ -256,14 +266,11 @@ pub fn run() -> Result<()> { let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { - let hwbench = if !cli.no_hardware_benchmarks { + let hwbench = (!cli.no_hardware_benchmarks).then_some( config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(&database_path); sc_sysinfo::gather_hwbench(Some(database_path)) - }) - } else { - None - }; + })).flatten(); let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) @@ -277,7 +284,7 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating(&id); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); let block: Block = generate_genesis_block(&*config.chain_spec, state_version) diff --git a/parachain-template/node/src/service.rs b/parachain-template/node/src/service.rs index a8ee57cadbf..245569230eb 100644 --- a/parachain-template/node/src/service.rs +++ b/parachain-template/node/src/service.rs @@ -5,26 +5,26 @@ use std::{sync::Arc, time::Duration}; use cumulus_client_cli::CollatorOptions; // Local Runtime Types -use parachain_template_runtime::{opaque::Block, Hash, RuntimeApi}; +use parachain_template_runtime::{opaque::Block, RuntimeApi}; // Cumulus Imports use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, SlotProportion}; use cumulus_client_consensus_common::{ ParachainBlockImport as TParachainBlockImport, ParachainConsensus, }; -use cumulus_client_network::BlockAnnounceValidator; use cumulus_client_service::{ - build_relay_chain_interface, prepare_node_config, start_collator, start_full_node, - StartCollatorParams, StartFullNodeParams, + build_network, build_relay_chain_interface, prepare_node_config, start_collator, + start_full_node, BuildNetworkParams, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; +use cumulus_relay_chain_interface::RelayChainInterface; // Substrate Imports +use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE; use sc_consensus::ImportQueue; use sc_executor::NativeElseWasmExecutor; -use sc_network::NetworkService; -use sc_network_common::service::NetworkBlock; +use sc_network::NetworkBlock; +use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_keystore::SyncCryptoStorePtr; @@ -162,13 +162,7 @@ async fn start_node_impl( hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; - - let block_announce_validator = - BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -176,18 +170,17 @@ async fn start_node_impl( let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| { - Box::new(block_announce_validator) - })), - warp_sync: None, - })?; + }) + .await?; if parachain_config.offchain_worker.enabled { sc_service::build_offchain_workers( @@ -222,6 +215,7 @@ async fn start_node_impl( keystore: params.keystore_container.sync_keystore(), backend, network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: telemetry.as_mut(), @@ -229,6 +223,14 @@ async fn start_node_impl( if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + // Here you can check whether the hardware meets your chains' requirements. Putting a link + // in there and swapping out the requirements for your own are probably a good idea. The + // requirements for a para-chain are dictated by its relay-chain. + if !SUBSTRATE_REFERENCE_HARDWARE.check_hardware(&hwbench) && validator { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements for role 'Authority'." + ); + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -241,12 +243,16 @@ async fn start_node_impl( } let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let relay_chain_slot_duration = Duration::from_secs(6); + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + if validator { let parachain_consensus = build_consensus( client.clone(), @@ -256,7 +262,7 @@ async fn start_node_impl( &task_manager, relay_chain_interface.clone(), transaction_pool, - network, + sync_service, params.keystore_container.sync_keystore(), force_authoring, para_id, @@ -275,6 +281,7 @@ async fn start_node_impl( import_queue: import_queue_service, collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle), }; start_collator(params).await?; @@ -287,6 +294,7 @@ async fn start_node_impl( relay_chain_interface, relay_chain_slot_duration, import_queue: import_queue_service, + recovery_handle: Box::new(overseer_handle), }; start_full_node(params)?; @@ -343,7 +351,7 @@ fn build_consensus( task_manager: &TaskManager, relay_chain_interface: Arc, transaction_pool: Arc>, - sync_oracle: Arc>, + sync_oracle: Arc>, keystore: SyncCryptoStorePtr, force_authoring: bool, para_id: ParaId, diff --git a/parachain-template/pallets/template/Cargo.toml b/parachain-template/pallets/template/Cargo.toml index 27558ff71d6..65f6ebb0d0d 100644 --- a/parachain-template/pallets/template/Cargo.toml +++ b/parachain-template/pallets/template/Cargo.toml @@ -16,17 +16,17 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.2.0", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [dev-dependencies] serde = { version = "1.0.132" } # Substrate -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [features] default = ["std"] diff --git a/parachain-template/pallets/template/src/lib.rs b/parachain-template/pallets/template/src/lib.rs index fde11a46108..5f3252bfc3a 100644 --- a/parachain-template/pallets/template/src/lib.rs +++ b/parachain-template/pallets/template/src/lib.rs @@ -27,7 +27,6 @@ pub mod pallet { } #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); // The pallet's runtime storage items. @@ -68,7 +67,7 @@ pub mod pallet { /// An example dispatchable that takes a singles value as a parameter, writes the value to /// storage and emits an event. This function must be dispatched by a signed extrinsic. #[pallet::call_index(0)] - #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().writes(1))] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().writes(1))] pub fn do_something(origin: OriginFor, something: u32) -> DispatchResultWithPostInfo { // Check that the extrinsic was signed and get the signer. // This function will return an error if the extrinsic is not signed. @@ -86,7 +85,7 @@ pub mod pallet { /// An example dispatchable that may throw a custom error. #[pallet::call_index(1)] - #[pallet::weight(Weight::from_ref_time(10_000) + T::DbWeight::get().reads_writes(1,1))] + #[pallet::weight(Weight::from_parts(10_000, 0) + T::DbWeight::get().reads_writes(1,1))] pub fn cause_error(origin: OriginFor) -> DispatchResultWithPostInfo { let _who = ensure_signed(origin)?; diff --git a/parachain-template/runtime/Cargo.toml b/parachain-template/runtime/Cargo.toml index 13ccb18220b..a1083681c1b 100644 --- a/parachain-template/runtime/Cargo.toml +++ b/parachain-template/runtime/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -25,41 +25,41 @@ smallvec = "1.10.0" pallet-template = { path = "../pallets/template", default-features = false } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../pallets/aura-ext", default-features = false } diff --git a/parachain-template/runtime/src/lib.rs b/parachain-template/runtime/src/lib.rs index 80e17166e9a..d1e1a9bb161 100644 --- a/parachain-template/runtime/src/lib.rs +++ b/parachain-template/runtime/src/lib.rs @@ -220,7 +220,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 0.5 of a second of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); /// The version information used to identify this runtime when compiled natively. @@ -321,8 +321,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -402,6 +400,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -477,42 +476,36 @@ construct_runtime!( UncheckedExtrinsic = UncheckedExtrinsic, { // System support stuff. - System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, - ParachainSystem: cumulus_pallet_parachain_system::{ - Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, - } = 1, - Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, - ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + System: frame_system = 0, + ParachainSystem: cumulus_pallet_parachain_system = 1, + Timestamp: pallet_timestamp = 2, + ParachainInfo: parachain_info = 3, // Monetary stuff. - Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, - TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + Balances: pallet_balances = 10, + TransactionPayment: pallet_transaction_payment = 11, // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, - CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, - Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, - Aura: pallet_aura::{Pallet, Storage, Config} = 23, - AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + Authorship: pallet_authorship = 20, + CollatorSelection: pallet_collator_selection = 21, + Session: pallet_session = 22, + Aura: pallet_aura = 23, + AuraExt: cumulus_pallet_aura_ext = 24, // XCM helpers. - XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, - PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, - CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, - DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + XcmpQueue: cumulus_pallet_xcmp_queue = 30, + PolkadotXcm: pallet_xcm = 31, + CumulusXcm: cumulus_pallet_xcm = 32, + DmpQueue: cumulus_pallet_dmp_queue = 33, // Template - TemplatePallet: pallet_template::{Pallet, Call, Storage, Event} = 40, + TemplatePallet: pallet_template = 40, } ); -#[cfg(feature = "runtime-benchmarks")] -#[macro_use] -extern crate frame_benchmarking; - #[cfg(feature = "runtime-benchmarks")] mod benches { - define_benchmarks!( + frame_benchmarking::define_benchmarks!( [frame_system, SystemBench::] [pallet_balances, Balances] [pallet_session, SessionBench::] @@ -621,6 +614,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -638,6 +637,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -648,7 +653,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } @@ -694,18 +699,8 @@ impl_runtime_apis! { use cumulus_pallet_session_benchmarking::Pallet as SessionBench; impl cumulus_pallet_session_benchmarking::Config for Runtime {} - let whitelist: Vec = vec![ - // Block Number - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), - // Total Issuance - hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), - // Execution Phase - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), - // Event Count - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), - // System Events - hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), - ]; + use frame_support::traits::WhitelistedStorageKeys; + let whitelist = AllPalletsWithSystem::whitelisted_storage_keys(); let mut batches = Vec::::new(); let params = (&config, &whitelist); diff --git a/parachain-template/runtime/src/weights/block_weights.rs b/parachain-template/runtime/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachain-template/runtime/src/weights/block_weights.rs +++ b/parachain-template/runtime/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachain-template/runtime/src/weights/extrinsic_weights.rs b/parachain-template/runtime/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachain-template/runtime/src/weights/extrinsic_weights.rs +++ b/parachain-template/runtime/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachain-template/runtime/src/xcm_config.rs b/parachain-template/runtime/src/xcm_config.rs index 73d45339b6e..8383e096a7d 100644 --- a/parachain-template/runtime/src/xcm_config.rs +++ b/parachain-template/runtime/src/xcm_config.rs @@ -1,30 +1,31 @@ use super::{ - AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, - RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; -use core::marker::PhantomData; +use core::{marker::PhantomData, ops::ControlFlow}; use frame_support::{ log, match_types, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, Everything, Nothing}, + weights::Weight, }; use pallet_xcm::XcmPassthrough; use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; -use xcm::latest::{prelude::*, Weight as XCMWeight}; +use xcm::{latest::prelude::*, CreateMatcher, MatchXcm}; use xcm_builder::{ - AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentIsPreset, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, + CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, NativeAsset, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, + UsingComponents, WithComputedOrigin, }; use xcm_executor::{traits::ShouldExecute, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Any; + pub const RelayNetwork: Option = None; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub UniversalLocation: InteriorMultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -76,8 +77,9 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } match_types! { @@ -102,9 +104,9 @@ where { fn should_execute( origin: &MultiLocation, - message: &mut Xcm, - max_weight: XCMWeight, - weight_credit: &mut XCMWeight, + message: &mut [Instruction], + max_weight: Weight, + weight_credit: &mut Weight, ) -> Result<(), ()> { Deny::should_execute(origin, message, max_weight, weight_credit)?; Allow::should_execute(origin, message, max_weight, weight_credit) @@ -116,37 +118,40 @@ pub struct DenyReserveTransferToRelayChain; impl ShouldExecute for DenyReserveTransferToRelayChain { fn should_execute( origin: &MultiLocation, - - message: &mut Xcm, - _max_weight: XCMWeight, - _weight_credit: &mut XCMWeight, + message: &mut [Instruction], + _max_weight: Weight, + _weight_credit: &mut Weight, ) -> Result<(), ()> { - if message.0.iter().any(|inst| { - matches!( - inst, + message.matcher().match_next_inst_while( + |_| true, + |inst| match inst { InitiateReserveWithdraw { reserve: MultiLocation { parents: 1, interior: Here }, .. - } | DepositReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. } | - TransferReserveAsset { - dest: MultiLocation { parents: 1, interior: Here }, - .. - } - ) - }) { - return Err(()) // Deny - } - - // An unexpected reserve transfer has arrived from the Relay Chain. Generally, `IsReserve` - // should not allow this, but we just log it here. - if matches!(origin, MultiLocation { parents: 1, interior: Here }) && - message.0.iter().any(|inst| matches!(inst, ReserveAssetDeposited { .. })) - { - log::warn!( - target: "xcm::barriers", - "Unexpected ReserveAssetDeposited from the Relay Chain", - ); - } + } | + DepositReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, .. + } | + TransferReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, .. + } => { + Err(()) // Deny + }, + // An unexpected reserve transfer has arrived from the Relay Chain. Generally, + // `IsReserve` should not allow this, but we just log it here. + ReserveAssetDeposited { .. } + if matches!(origin, MultiLocation { parents: 1, interior: Here }) => + { + log::warn!( + target: "xcm::barrier", + "Unexpected ReserveAssetDeposited from the Relay Chain", + ); + Ok(ControlFlow::Continue(())) + }, + _ => Ok(ControlFlow::Continue(())), + }, + )?; + // Permit everything else Ok(()) } @@ -156,9 +161,15 @@ pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, - // ^^^ Parent and its exec plurality get free execution + WithComputedOrigin< + ( + AllowTopLevelPaidExecutionFrom, + AllowExplicitUnpaidExecutionFrom, + // ^^^ Parent and its exec plurality get free execution + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -171,7 +182,7 @@ impl xcm_executor::Config for XcmConfig { type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = NativeAsset; type IsTeleporter = (); // Teleporting is disabled. - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = @@ -180,6 +191,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -189,11 +209,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -206,13 +231,21 @@ impl pallet_xcm::Config for Runtime { type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Nothing; type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; // ^ Override for AdvertisedXcmVersion default type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/README.md b/parachains/README.md index 1fb0c5061bb..41ea61bd0a6 100644 --- a/parachains/README.md +++ b/parachains/README.md @@ -11,11 +11,11 @@ The general internal structure is: - `pallets`: FRAME pallets that are specific to parachains. - `runtimes`: The entry point for parachain runtimes. -## Common Good Parachains +## System Parachains The `runtimes` directory includes many, but is not limited to, -[common good parachains](https://wiki.polkadot.network/docs/learn-common-goods). Likewise, not all -common good parachains are in this repo. +[system parachains](https://wiki.polkadot.network/docs/learn-system-chains). Likewise, not all +system parachains are in this repo. ## Releases diff --git a/parachains/chain-specs/bridge-hub-kusama.json b/parachains/chain-specs/bridge-hub-kusama.json index 2803a92d073..f49420b1747 100644 --- a/parachains/chain-specs/bridge-hub-kusama.json +++ b/parachains/chain-specs/bridge-hub-kusama.json @@ -14,7 +14,20 @@ "/dns/kusama-bridge-hub-connect-ew1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPQQPivrqQ51kRTDc2R1mtqwKT4GGtk2rapkY4FrwHrEp", "/dns/kusama-bridge-hub-connect-ew1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWPcF9Yk4gYrMju9CyWCV69hAFXbYsnxCLogwLGu9QFTRn", "/dns/kusama-bridge-hub-connect-ue4-0.polkadot.io/tcp/443/wss/p2p/12D3KooWMf1sVnJDTkKWtaThqvrgcSPLbfGXttSqbwhM2DJp9BUG", - "/dns/kusama-bridge-hub-connect-ue4-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQaV7wMfNVKy2aMz4Lds3TTxgSDyZAUEnbAZMfD8rW3ow" + "/dns/kusama-bridge-hub-connect-ue4-1.polkadot.io/tcp/443/wss/p2p/12D3KooWQaV7wMfNVKy2aMz4Lds3TTxgSDyZAUEnbAZMfD8rW3ow", + "/dns/boot.stake.plus/tcp/41333/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", + "/dns/boot.stake.plus/tcp/41334/wss/p2p/12D3KooWBzbs2jsXjG5dipktGPKaUm9XWvkmeJFsEAGkVt946Aa7", + "/dns/boot.metaspan.io/tcp/26032/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", + "/dns/boot.metaspan.io/tcp/26036/wss/p2p/12D3KooWKfuSaZrLNz43PDgM4inMALXRHTSh2WBuqQtZRq8zmT1Z", + "/dns/boot-ksm-bridgehub-cr.gatotech.network/tcp/31327/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", + "/dns/boot-ksm-bridgehub-cr.gatotech.network/tcp/31427/ws/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", + "/dns/boot-ksm-bridgehub-cr.gatotech.network/tcp/31527/wss/p2p/12D3KooWFQFmg8UqAYLDNc2onySB6o5LLvpbx3eXZVqz9YFxAmXs", + "/dns/bridge-hub-kusama-bootnode.turboflakes.io/tcp/30615/p2p/12D3KooWE3dJXbwA5SQqbDNxHfj7BXJRcy2KiXWjJY4VUMKoa7S2", + "/dns/bridge-hub-kusama-bootnode.turboflakes.io/tcp/30715/wss/p2p/12D3KooWE3dJXbwA5SQqbDNxHfj7BXJRcy2KiXWjJY4VUMKoa7S2", + "/dns/boot-node.helikon.io/tcp/10250/p2p/12D3KooWDJLkhqQdXcVKWX7CqJHnpAY6PzrPc4ZG2CUWnARbmguy", + "/dns/boot-node.helikon.io/tcp/10252/wss/p2p/12D3KooWDJLkhqQdXcVKWX7CqJHnpAY6PzrPc4ZG2CUWnARbmguy", + "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30337/p2p/12D3KooWGNeQJ5rXnEJkVUuQqwHd8aV5GkTAheaRoCaK8ZwW94id", + "/dns/bridge-hub-kusama.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWGNeQJ5rXnEJkVUuQqwHd8aV5GkTAheaRoCaK8ZwW94id" ], "telemetryEndpoints": null, "protocolId": null, @@ -47,7 +60,7 @@ "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da97896e968dee3411be7bcb6e538298679fa66e865f8710e3373bd7042e4ee89e363dcea7ca2f46f118d5b5962967f3b09": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x08446272696467652d6875622d6b7573616d61", "0x3a63": "0x", - "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058e41903da9aebbc57208cd24a07a347ddcfaac96388d22a0e2c24dc1e9be45cb90c494532eadcc0df1eb3de956126d0d7297eeccf1ff9cfc8012edc0bbf8d6cc65b73135ce777b6859d9d20c874dff43e1ca3a4914dc8de7b6f299394324919a50ca30a680af3472f770d703e7df9f2eb315f49f66cac59be517733a4f9f324074566562ec173cdefefa637c39abdad3cc2cd25f47c9eeb25bf1db556cbf38dba6b4f4a0ee68ff465cfe4e3261a67a62fbfa321ee997c0380f4e5cb4f47ed997c2ae29ec937eaaebd1976f6240745a6552ec1f3fcfe4f725064d6f2080cc8f3fbe7d703ace5f95e13c9dc2fbf1db396e71bb5511bb551cb50f64cbea4d1a21298e505b49e0d4527bb9b2f9b68943f45d933f9f26973c2e8a4558d2acbdbc91810e07cf9920b7a32b5c8b0c5054d0581096a01680a202a80a400aa0228052031404a8096c8b2004a02a402d0530c1e806e00d201080799164051b2120069914d21d30232236323f34106842c0899173221643900e500844666035019591bd918d90d321a80c80041c9d600ed20d302d44516060806a02c322f322b1918d90e321d643100c5201b42a606288ccc044054b22d20303231b233b22f3233321962a4013a13e34a36438c1e62988971430c2c315a8861250695185331a462a81023eae78a9f217e84f8f9e187859f2a3f567e5cf8a10223cfcf0a3f2ffc78f971f203f5c3e4e7e967c98f929f273f523f487e8efc38fdd47eb8c4b6c460f881e127cb4f949f263f54b12e3d5b6268626762756248c4928899899589e510c32176438c4c6c4ccc86580db11e626a625731ab589a180fb110c4a0883d11cb8ad18939116b223627c6446c89981231393122626f6247c47688e9101b22e62626442c88981131ac5811b12fb1186232c4c0c4c4c4bcc4acc45c885d89bd10e312738a1de9d1eac1a2278a1e3b3d583d46f45cf5c8d013434f548f0a3d4d7a90c0eac042008302f6c44f1218162c0918123023604cc08a80cd81f900fb018606d6032c0d8c0798156c0598142c0a16050605f604d604460556059602ac064bd23306e60462014e01ca01a7804a803980518049803b803a8056e019100d3802f009c802080524d3e3038804acbdeebc4ef062e2b5c44b89979c5712af225e685e665e58bc767869bd7478b979fdf05af3eae155e675c38bcc6bcc0bcfabcbcb86570dafaa170d2f195e31bcc2bcc0bcbebc608029e19eb8a0503ad80c46439de09cc096601ef00ef80c27e54d7c4c7c795cb5ef0bd791cf0b97930b090106f0c1f9e6c0b0883d7558df95cfca8f153f55fc141143f2c5f188a85ebe265e119c125b145c129e12de122e1670193005308977a5b2a96d2a104e450d8242f185e9bae8e8743a743874397466ba25ba325d1a17151d105e187b8656b95654ac2f0d67661bd381e978e8aea84c381b6e14de196b65b7501aee13f5cde7650bb3c5e9b2c4a812430b2c0e4c0e2ccb35a57b7279c13ab8a8c4567051d51f5c573e17ba18b0d42b8bee8a87e51203a3d341d9213839b688da85f6e00d51a5e098a85178565c3ab876e0b25c595c32f4d40064c5e1e1b8f0de58225e3c80595f171f9eadca46659b02cbc14ae024f01218093c0733119b61d37275f9aaf4ac01e9c480f269e1d66c5e70568cca4f989f186022c057b0152f816f7d4ede151e169e093e24de161fd4c7e47bfa927c4abe255f0a5e16de09bc2def0b6f8bd7853702cf8bef88a78597c7b3e375f1b87830785abc1278773c12785c7cb54e8b6e8b2e0b3c05ac01ac02690067006500c5803180614030e017d00bd8058401e4026e01b58059402a100bf802e8027805b4f2d2c235c347d5bd714979557430c0a65c512e09701a17181797180bdd119e113f5d1c898563f3d838f60b2bc73ad183a54e017407688b4f8baee196b03c047db168b62c3829ea15d50afb544750b37089c0d67eb474467445d422bc23aa0cdf0bd8ca7be1c3c27df183a5c343b3a058d425af34b4cd6b08d893eb05170d3d41c480c395c09aa132c87ee8e2f450b9b43c1560573e458f0db12a348b63c185a5e7c846c643d075b16a3e301f0c5ea7a3eab4dc2cabc555e55a1d17ae185c52be2d3035eec496c466833fd103052bc1ad236bc26505a8cad542acb681f9b838145f164e0a57036dd2d3c50687cee09af2ac80d4b8b4f47001e46467a8715c5b80c670717af27c5f402eea112e18f0550c247a7eb040005dc9e8f408d183873e21eb22bbe2ca74279015e159ae2a32127c5d6250017de1a270539d171c123d5e381d9742c6859b026b8183e26171b9e0fae20ad3f385470163f3b3856b21461c202ede0eae275d12b1a9d7164318645080970f56876e6639b92cb6a649467c70e088888fa4108e8eba498108493a3ae2f00d2ea7e1c7d1900f84ec585a1ad200a61f494b4b431a40009f411a590ae2832909c85152d207027019e4900f8404393aa1481209231c0521929984248970828f09bc8b91493f840c1172e4e32808919cf443c8100930092161c88f1f99028f01c8901f49402cf030d2c809494a47468c9c90c443c89020468c2459207430b2034188e422494a458660a047e85f6412930f2041967c9470944442120914b80090241040f0710102b8176944e94752083fba48234c42928a24852024c83b0c42827c20c3b9c81f418c08095284c984a4a313968810f171542409c85210127028fd18b28463866f91221cf960f201c40753520460aec50341967c04610a2224080ccf22957e0c59e2c0511213093f924c48ea712a596448033cc7228d2405610a526448084c24f888f90b52c890204c3e8a9000e48869c89291a32044b28f2224641872262d71c0079310123e3862fa915424081021418e8e807e6cd49562f3264996b44e5ad56a79d22890db1dec0e93c8bcf5ad0c1932ac8c9f0e70a714d3eef62aa5cbbc5db6ecea94cadca54bebdd2d9db694de4eb17497de4d2df54aa5a45fcbeedab4bae6743b279e73cacf6b535ca5bb7db9638c6977adee54d64a2bc6b5bda96c4969d35bfb7294fac54da58374d2da7d3f4ab76fc3b531577b30fe5c95b6b76cc08f3b6d8a65a5eeeeb89bd25a03e0d23dda9252eab4da5a316eda5d6957d958b6cb5aa574295dba7b6d1cddb5d2eeea54b6ad2dabb4525a97dd8db17459ab9d94da4add279d15734de3caee066ad9547677c5d5f5e1caf5e07b2fa5b8db69e5a86ce9b2da2abd02496995b21dcba65dddb3cf30a68ee7b4460c58c04c01f6e5eed65d001ddca0f6552d7677d1a64da93b0ceb2ebd2fadb57295d64aa577dbdadd414141413d3deddeeedddd33a49c58d696dc8b8304f49cdddd5c4b59e794b825c65f7501d15a71576abb31ad3d14bb534ecada2faea9d72d007700c88651dab5e906ef7517fdfc50dadeb2dba594d4ab94b4694baf29a5b67f3c00debcdef24a5a29ed29e7d6b4a56c5b6dc5301a46b7bb377577979e6c0b28f5dade3000b4a4f65529eee6bc6bd3ee5a6b5759dbba30c61cae55528c3dd9441e02aa94b67a6e2bc555763b959e06541e60764d69774beff6ba5b369592ca96555629372967cc65b7b401823d69370882606f3283a6dd92d2ee96b476b46be5382925c618638a6b7597abba5cb536c775535a29c59456ecd4bdbbdbc5b93877a7ee9e944ebbbb65570bbaa5acdb02296995b5567a4105d8bd02cc350d2c9b5e207797b23d6fcabda494524aead367cbee396988bb2dfda115376e4a5f2ea56c8931c6957295abb5d696524a77d9524a1f6a594b2969d39ee1b5c4dd3524ed962dbb5b526bad94525a29bb69d3a694d2da5d69ad954edadd9536edeedbd53a6d977376d0932016688fec138a0c11214904370090a42249408a0c392242808da42045980620002018414a3f7c70606969c8003008a2a0020a807c2ed30f1f4684f828c274c41444041186cc62883284241121e263ca0c44a840262515f9e0a8c810261f3f862c2df9a040662042102621241411631f309140415208474c4282142172f4c3481011666840448109433ac0540111026cbccf06363238b291a4e4638903472008091282111f21fc652ae283c988006c5c7081cc2089c9479124214920143102804eda48326224a908111186fc382a9254c2901f49458e7c1801f223e92803252204d820f223c948d116c20f261f1c380ac1481021413e103f085224a984a30464800004d8009274348489c809457e5cb0c90c924a485a3a32c1870816cc9019803064e908042141400061c81210ec632624011112e44848101f21fcf8e08321e201969682280d15c0880008206d300d193200203e928acc4e48523a62322149480162302581208050666084c9481013920620246d9810e483a42244864a1092446132832321438218299254c251111f494b3f8e9240f0516408939123204b4142f871c4b444828f0f92801c31999024548290243a804f4dd3e6a559fa21d1266dbe9a2a6d6aa2dda6265a13cd9b9a68b42b91645353138d3652d3a435353535355124da94b4261aad7648b4d944a348345a53136dd2684d4d9322c9a6a6a6269a4592340e49d23624d9d4d4346914a969d226126d364d24d93431926c6a6a24d944bb48b4d9d444a355a426497324da94348b2425126dd2681549d268348a2469b446a24dda4492b48994a3829952ca2982111f32df79d8a3059cefdf2ee29ef557ae0ad83f7a99bed7445394b4ce97f3cd9cd3ce39e7b4d8ba6de35326fd49c53a5585e503961b2c1edcc4b2b6acac2c2c2370c5e2264d1b6bf1dbc74de46ab09cb9971d051c4a29e4d54dc0d7edb5d6fd3ad85b392afe39fd6977efada2a701dd3b6eb36f91b2bf7d23da59cfdabf5f1d8bf55eff7eef991567de26b533b7eed7f71057b7dd6dfbad0c479cad0cc79a6dcf7004ea371c975cac72abccfd51366b3d9b497a461f03316b77d6327dec81bdb541e10244dd9a5b4dccfafd73cec873566b8f9a6d0e978d4f85a88f0d4ffd3d0f653d1bea197d0a80de8f43b867944b61da5a7f7e20dbfaf3cb71eb1565963ea715d38633c24a6b2ad7ef5c6ac011af012b2071482a54a74619a64577ea06290a348e2bd22f5488feb5f365a45fe8545f5161d129b72ad30315acaaab2a315568c47856358a55955b3b3d5ca2d5fa4fb6a24b41d17062e8e18abbbb7f5b6ba7f59707365b7176644a3c39ac09a4dcddb1b4ee6e6f98c98aab0d7746416a5fd222efed635ad42d0dede0852f85ec77a19442e32cdbb7761b22f2483f04030f0de1a622c07202abdd5287c2ca2328c64ea31c7be098aa0bfec8818d017c3f7eb6b26c4150e4a0fb312c1aa242f4474ce43fd66cf18f9483eded4f790302b306956bdc0cd1222210983766d4ac411f0441f01bf286b8a1dc79946e32f71e5639b34f8416e119356f485903ff67bbb525b738901283b133feb1f338a3a61415a28ff128cba3c49292c9a44fa91167a986c6c367ced589a1c4c0be982d278e1bc8f56798ed11fd767cf629671fc8df0e3b65bb36514a0cec63976b96f4f0845c93ab58abb2bc80e69af88849a3925941c82c3a326b8da493c345221d11724b6e552cb3b83861e2609935b18040338323e207365855575562aad088f1acaa142b2befc70d72cd2057a15cc3fb2308f4b20d3ab8da80164d800ad1b720dbf7c4d1823c82b9b3e0066271c479dc206fd0d9c5102406f4bf1f241615b2e20e604f6bb4749069dcac633aff1aba4fff69e79c3e6d380275076bfd72dc0dbfdbf7bfd5ff7e77bd1ef5ed1b7567c3da33fffbf5cb71e9fd7654d1ab3d7351ba92fae5e8b7a08fec8cb55f2507ce44b3b56c40fbf168f71b4a3973a7d9f3540adad925b855d8abc2f2012bf7d7c66e6ac6e2c103a91b9f58b622cdea19fded099a45b3b007625541130556aeb78a0a1b5cb3b06004ae5a70ad616f8a63d3539eef0a021ce7d438efe45ae5a7a3b3fc28d03824151aa556ae622fcd3bb97e4f3ccaea87408bee577152cd3b4178e07cd2ca633f515180e2b8626f5121fa15aa9fe4561efb097be0bc53a5d43ce179a7d62817b25a710c21dbaf4bb26cbfcaf6692f5797e560bf2d38eb197d17999ac7996c0071c2c491d113b875eaf5e97bd8516f7e3de8dbb066fb3d40e62ada8fc7e44145a6cefd23d0fe3ae71c69256b15c759ae3f4326e79ca34faedfd970ac23cef53b3aa594755cf2c9f6dbeffdee86d4bb6167e56c5a5d5262d06fd4a34f8bd2c311a8bd3f82b96e3f7d6cb09248cad9f8caf6af38bef208daece20c09387f9ccd327d59b14f3e00153752f8e42aadac9a0afad8e96530d75196eb2f7979beb5351cbd6c6b683b1c81ce59bf7611fe2a8ea0ac561cd6faf7677dfff936bcb6beccd6d66a6b755bbb7e57cf768d022b8b8a072a2c5463b07455b54a551515169a195c9b0bcac792037ffb9be400bf15c7252f5f3549940ce1c0f200f6936cafe471705c1317ba3c80c5d93675c6a2f5fe78ccec629518d0b6504a04d8ef2f4745a12e79324e9838616a969f15e2e52a5630cb0b9a9ae64db3985576d2a35f0e8cafc4387808caa810fd4e76d7939f8ef9fd366cdbd6dad93fdfedec294aafa2cf11e097a3bfb311a876cedad5cc16f6c49156e57e4ba33295ca37cf97df0ecf23dc3c45293118e953ae6fd4b5bad480f5e5e7018cc6ca551c5b661b7a88ab0862101c1b4eaedf584de45f45b995e98f4b148368c0fa23ce1e28e764fba34fa65879a4565b3fd94597caa263c3c923c51e489b063250e856ad9325e74b9a2fd6db02e1b6d6975fbba85fbeb44ffbe7d3afa115e537edefeedfd13fc5da332a4a1a9d5387a16b2df6cdddc591c966fbf73b7bd380d64a29e4effe9b3f16a55fb7d75a91c966b7c0afdb5cc5213ca918c742218b52f140a9b050aa31144b97ad48abaa155a45ab6ca5da81891554b962b1e05928c8a15f7ea05fe81732d4cb975da465bc2068195a867ee91ba4b0a05f3c8b0d9dd243b7f4f30067af5bacfc78e09ecdf7376a5b5d1c67aed20dceee6d654a4fc01a5d6dc0fa46b4c325afcafd35942d311e67ae2f2507f6ab38ca1ae21fc05a451c143406741ab2ff08cbf4fbf36046b6a25b490ce8734780f347b7f2b0c8cca35b55dc5f0e3b97bc2ad79f1f8f4985f5c58638cbaf8a32767415857855f6b6b2bc80562765e1be248d714a65fa5d0e79c571e6fbd4fb11773f82dc8fb2edc77ffd3873fd38942d15fa7edc20db97d2f37dffee86b86756e0fd1afbd94b1c67432e711c1a37f8c47103f03d71c4b0efc411ec794e1c65790433a542f83771fc09d0a29828a590fd1e990c0682b40814ed8f1863306f3f82198fb2bcfd28cb585a652b65919442db63d9449b387e1547a45c3fd737a2381c3f8f122bd3a75ff10d65eefacbe1f7e7f70099afc8e4d9fefc78bcf2e4c9e39eab38a5b2bca0a9d2beb6746ccdfedd0bec994fcfa88e7efb33b43e321b8e9fe7a41dd6ef6acf467084996d8b351c41cae9c9261a71114885e8cb16475aee99e9cb26f2b75f9ba8be7ddc45db5b71047b46bfb3a1e300da1f411d3e3da36f45d9163681b55aed080e19ec6325fbf7e7d730680c681fd7ef82826c00edcb5cffdaf70f02b46cbf9b5e0d67969fed6f8715bd9ed1bf627f5c0ae0f450ca997d69c5f9b5894614b2fdf9fdeda8d952b089aa7dfa5f8edadf03647691a966fbfdf160409e3c79725851c68e7efbfd562ca1e6dab35973d3a479db2949a4ee10e91f71a6f4297d4a699b4c29a5940615c189cb37517fffac89c69abb9f86535411c5d105e83ccec8fdb29fc8d08b08505a21b992a5d5113b799ce5fe03646975c42acb2f0768d420e83591fcb69fe577369499863377f200e0cc4e3d1bfacf2f07f5971f0468d9bbf9edb0efe268df7ed7df0e30db975fed59fdae7a349cb9a39e87f6e7277b36fae4f95d273f17475af6a7e188ed531a8e35fb1b7547c3d101997e27bf2b8e26e4fb341ca555a66fc351f6cc042221206520d31f65cfc60964faa37d40a66f446d28f30d47a079f2e4b993edd370ec20d7efa647c3fa3694597e3d6ea61e8e70b315c799a938c2cc93274f9e3cd232fd1aca9e4db1f66cfe509617d07c56a74e0abdd880d2ea48551e71965647be64f95e174d1cf2654d24ad6a77b2fc1959bea4218d3a890070be7cb9759d6c2239f37cf9dd4b3691ac4dd42fbf9b5df56413c93ce22c1fa603eb4ecf64a6f5e9f7d32f478b72c2741851eb99ccf36928ab38bf1cb867f4e5f700f9e5e837ea29442773f7cf6ed1a8697342a09b3fc3d719d0aa9695c79afbf17c8c252d922d348279fe08e63a27103a694ffa463d29a594cea774763fce2dcae0d15fbfe7b738f65351e9275627698c9ffb3ba901d8c90380f2e9cb2f87fcf9796042ad563b92a5287b36e2dcdfb5279b687e13c99ef51b350d6bcffa6d80f5654d2433d844b267f2fb7d9a887ebfac8966ee975f0e5ac3122cc8466838cfc7798a3278ccaf3fbf8a4c3353517e39a638cecff2021a9d93884e66496304737f879b680c0a1a03063fc5b17b987ceec1a7453d4fe76371dca028f6531c87327e3d0637f0f1cb16da9e8adb363b71c9cbb02a8e43f9beebb9f113999a9b5f334c54ea60ef9ef8638b9c38d689c3bc01fbfbfdf18089138759e3bec491d6894a738a138732193fb61f87c18927c6f6e21b8e20e7949f07fedc77d4eb0963efa1ebbbee3decbe278c7d0e2f3d6fd45de7d8ddf1df7baf97a7c7d1f3464d3f1df85d4fbf1c1b8e85b885fcbb7004b36fdf55cfc358f85488737d4f285be88dbac361f75b587bd6bd87239871ee7e7e1e70df753f431c8e600e50d62ec45ce86da1ec69d10cb0897c7a361f3f16cbe0f0ea9eaa8e662d55bd42a73acaccf3499c513db3fe95a9c716ebc4581cf16faea7f2b97785b28538d10be57b5ee6c4fa230e1a0362b1dbee57719c593efeed379b6d7f3cb073f85b54ba17d73a2d58adadb6de376a1b560fea0bf1b25215310a797e0d276d4e3ba7ffadbfb9c2212a445dec31448b36d1c51b3edd0935a3f07b88c59196e7bd5394f7e57c9232d79f51561c6b96737691eb8768914bac335bf1ef11903e0aa211f51a4641cd1af5eb5b233a02b5b676ed4a42760a56e4cfd22a0955ee64d79efc62b109148bc5dea8e7972306fba17903c6c35e3611ec61bc7d1bf3060cb1070c71a465180f0b317e180c63d8e3a75f0e0cf430422071a4e5180cf6f3cb01eb6413c5c47166d84b6cdfc6d3284d847358588863e13873ecfbdbd1651bb3c6f5a4c478ec2063240d3216475bf3681f29c68f2c96c33e2d328af123b3a1ff9a2c802cad965cd9ca40595a2d81933bead92f950ba5ea2b335b712afbd0bc21b31569949e71317ebe1d6bfe79fb23f7d67e1e4c0a7e46918c2071847dec6513c1f811fcef8d681105221215a23f4394214a2ad40589920af58f3229932fe5f652163d927d99384a37a34c8add268e1d642b62fc3042d9b311c6db7ffc3d187bdff33ee228dbbcc71f0b83c6803091c9e6588f386af0854163405064ea1cfb3106d6a184bfe698a8041363bfc17efb11997ae4c4cf664f54827d8c476cc2f01e262ae1b7997e3d6cc6a28d59c3b336660d7bbbd7cb2f87eb8d7afefc74dc9fef8533cb8debfe86b267febda7e3fb22a41885512b0f896eb41b69647f245a545bc8dfc33ed967f4e7c1f7ee3d7db9c2fa855ecfe67b2118fad022590bcdefc45196671b0ad9df86e2b5316bd8b7efa111f5a7f5ac8ab5181d9be29a67a2f28c26fac6fbb26bad754aa93d776bdd1395aabc32cb26c2957a7d975e372ccb3e58d6fb33bc2f5d55c4dd5dbfa7b292f74db9caaebbe63aebc4eff8bdd7f40af678896367ef41716c5a3dfcded78f8767d4d54519de102d7aaed6afb5bef71bd1dc5137fc3e1daeafa252fd7ecff5aaafcef51c7dd5776d677287ad672f9419d7ea853377d7fb36ac5db8bd11edea0caf3cacccf3abf4415a0413ff7bd944551c71ad55a93efefba397effcbe7ecd9f2752ef3bec5defa9d7518faab5d65aabab412c7abc335e54a51a47309be0d344e0bf5efe8c32a79a88fb6d46dec2ef6fe8f44da0455da342f47bbea3b0aedbbabb65d7bd6db73d0f6adee8bfdddc1e4f9727ba362f2a5f6bad88fb476b456b5b54da1ebf951df5381a0ad7af37c5854a3dbfe9bd3f27f7ded3bc319ff3a4ae5177773f7a511ed4bcc1bd7ff7e3bde2e845657f7cbf3691ebefdff1de3ba794f7e37c22727987e3bc41b48b4ca04214df9fa20db74be9778d16d1279fefe95aa6d6bee5febef774bbbda8d18bca1cf8e9e8e97ff57094c6de875a183eae2bf6fc77e9bd30e8d47dfad72726d21eefcbc1796772b76ddbd6d67bcad788bac2d77b21f85dc8fdf4ffc2edab6f022da24ff38eac893acb9f579ac8eae8fcaa4f9f68119d9ae288f37c583871b7f8df8f5eeedaf3a0ecc874efe57ef6dc44eeb7efe6e4b6afffb3ff5dd1b3ff85f8b9f7b1a5727d3a45ebd4bdf97bd78ff32973dce3eeef9d3ce2fc3d18ca9e7dff0a6bcf3e7164baf9be4b94d7bbdf891e14c7bd7f39382f2a6ff7deeb41cd1a2ed64ad53363249994aee96894591b7dc619230df9b800434d74df93fd34ecefb66ddbe677a1d20b6f5bd7c9f8b961fcf48d1aa8fb97edf1fa8e4641eae05fa39dbf894addbfdefeb869d04430ac0866ea3414ec4f3a7fc8fe14477fa656dabe295bdad1ecfda17983fea5537676db53a01f5f3f5f1c6994ecdf788a34088b4c9dbbf9e34b64ea4c656e46b9a6833c35c8d3fe46c3198e2d22d122297b2fc6733f8f5f36515004e653719cb97b1b8e32c44d94f1fafbfeae877d6c077dfbf6e7d783befdf943f386fd296e7694f1fe238d92efb7ebd331df8a4af6b7ff666863d6b83e3d2f2968e97c0a648833bc4f077da529e3bbaf8797e923d1a2fa927ae2a4401c359841edcbe0d6e4aeb39e5fa1cc9db55d6843fbdaec509eef9f0efafda17f50f83d5078df88ceb6ee7a993862d8c7104730f63fe2d322a3d76f307cc451161347598f08fb0c8aae0d77dc775b875fdf7136e68d716ad044f635e8205b704db66eb215dd32590db28b4ab6fb6e5edbedfdfc76bc441bb3c6f6f6bb7064ea9a375106fefbfe46b408890ad597c94030db9837b6776bf3eb5d3f6a90ef0775afdbbdd26beb1ee9f518bf7e045fdbbbc451832fdcdeb3316f74db737fefa551f2dc429bf1167ac6a1ccd65abb8535e32bda9835dc86b86773d6b2bc801634638c5993bd0cfb8eb2242a23204b2b257072275f6d4069a5844b9e6569954217b993af2a4069a5844ceef2fc5927d7ef6634d1f7f2bf89b607a517c1f0f0fb197eafef28c618d350e9721853c71cf7f38d1a1c1bf69c3876be0f13c7ce74d6c9feb28b86fa7138ce7ce9f78f4b62d3bfdff8bbead16822d74b9ac716b79f96864253ee7771fa08829ce738b7f2687f0b95f037e50e474a339d618763cdbdcddfc4a995c711681e67a63de6837663ea4c7f64ea3cdf5d1c679d6c7fc91b5d1c6bb64e45a51e69d158b357f7971f8f7ebc8533743a448b64f75c04aefffc0e4726eaeffd2b023be6f7f7cfafc7fc7efff9346ff43b7e236ad4416340a6ce3d32f538ebe4edbfd0f5e9807d8b4afdf83f5838ce3c37eebd8ef5780efbae7a4c1c6b4f3f8cfb726c5172474399bb290dbb66dac3e6c6a37f1eda07c3ed7d4218327fe1d7b4c8e7eb7722488b7cc4ff7e8ab2679ef8aaae39d68c27bea252fff7f8bbf626d4bc314e1ab585e8b738d6dc541c97bc2e28880c382e79dbcfa020322013cd5854eaf7df1e7f3723e0bf89e3cc3d7191cfe39fdf8e6f7e3f0e47269a7b8a32ee6f6fbf7eadf8edb8e4e5efbd1f6bde98689e3f32d1fc7df7e38ccadbfba763bed2f7dcdbaf8797e70f7d5fffc3ef89f56130d18cbf13c71995ed4fa879638aa3115ac6cffdb67dfd726cb34ef6507628330e6d9e1e0e3ddf50e60ec71366b76bfc40ee0ffbe5b7c3e6aef9eee8b28b136ad6b062fb84520af54b2bb06372ec7cee5e1dcab04062209f9665965f0514cc901104248bf103c327d603035faecfebb80d5fb795f69418c897df08334ff642dfa83196a3ac888a520acd979ff30c9b26adbbeb504ae5cb9fe228df7efd91cab74fe52b594a29a5b4f64cbe78824e4aa25a69cf6e74cf59433e6d4e1d9d9445fda39c9d0c7bb48038cb9f2f3f1e372b4911f74c5221f94d73ea985556980e23e4f44ce62a6badb6d65abfbe438056731595402d3b5a6bad9d4e74521cc12c5f4a22f9e37cd9b35af3c78366a5899b688aa3fdd103b6cac9bdf76e79a242128332d007046954cddd1dcf1d2a241340828aa72a2a0ebe7e6dcd4eae75918f24b13277d06914178c8cc0d242881eeed4f0a069210a0e77a20a1b67ab094d53441d2378a8e3459e26aebbbbbb1d2e2d24c56032e01959b6b3e6675777ca3869598b55abd564b8f7dedb5a595edd90442b1b35b69c12898513c0165966c862882c18a6e0b8737c78e12543969f3d8dff273f7b1a4fc4e63474efbd99aa0b9bb3240179a86d7162a508282e9460828b9a1e2e7094709cffec69fc5b75149733f5875c4e4c05287a9d6c5b7512c7b5e489fa3949f592e7568082e6853b46684d5902cf165006fa80206d023e45625ea72b33bc8903450a5228918506284e84208aa05ab3051077ace0703951b0b050596bad75814b0b493164ceac3172c1cd1d9ad1850a28073d897c71172b28e0d72160702085c5823559a6f8214e541a18cc207103949f2860a821899a3077e0e0f03852d448a19a9900aaaa8bac1cd6e0a902870a8f15b48e1c99bbfb912b2d24b96c388e88d9b6196a9058419db0c0f7defb4394169257b818fd2046f66c9670dc9b365653ac5cb7eeee1e85d6b6b9bb3b49a27deaac40e34d936d73a285e4f274c5a5ca8b1a4ae2250bad2e2f4c21c511b43ab9bb6fbe39cc9db66d852b1966c8c229cd1b2746a07992aad56a4f3669b505ced3b5d7efbdf73a604d0a592c11a6893963705c2c27236c7151a54a1429335be0f022a270928d94132f5461a63481850835554c70051e0367cc9c3175c65831c68ecf6878a0ea09149e3b5084d161883651a4608c31c630374b38ef4d930bb858b2a48927f2c410c68d1b29a00cf401c1202b43138a3b4fc395fcec69fc0f80ccd315ac3b3e94c9e2083b4f0811c5d655145d38796badb548dcb4908483e7803890d491bdd6a441454145152947a430c5551073a28488008167cc531425559001424d9629aea0aa800e1254b6d82086851360b5919204982c5a8f55abd59adc7bef95565ec0c9f76a652ca00cf401c1105c20538b020a38b53a382e9b2fe8382919723662d890617386cd1afbf8674838989b2553035098707206ce1826a27ea02265a782ebc51aabac372b5421e5c30b55239019ce1d09b4c025052480a881051fd6c4a9715771a056983d9d0aeeeeeeee04e6de7b2f962c8b450b0c814371dc8d72325798c201861052429a041d272c5ec490400d0eefe1cc9719d539bda553037dde744aaa4027ae3c5a500ca1660b2a2a354fd8095c72a52e0e6074c0ea828818eeb080e35e3df1a0309142a50b175f4cb9220d0f6870dcaaaf4a56920df68213cc9db60d036aa854918584172c6831404bed0275cf68b1baaa31c132cf1614c74551b95fe199caee4f64b0200d173e2c89c29aa2b38029b52a30a86a3bc4b0a58b2a69ac28400a15302ee539d1aa3bc74ef6f7894282d62da4e078ccb738a1e164005b251274727081ca0d5c4c80a6831eef4d936d93ca22b6c509ad3280123b5b132a2cb99d0a5bacb5f67dacb5d65291a4856454cd5444a9558ebc9ad326cb7332e436c9ca0f26c062045be44c2183aa76dcd8ebf7de7b2fe8f324072c379059b20310379e9c2cbe5575aaaca8b253d5450d497c6631e00209c618638c6489d50bcd550194813e2018e2a95b48c199535d55abd55890732a4b2b13889953300e9069e248173a2c9c8009074a681b334ba41e5fbf5f9228ab2857643fa38b1d285006fa8060932ad7adbbbb3b8ea83bdb36a306272099139617b47ad8b9c1882355ac700235090881438132d00704abbca1513e1ad444a005660d1d277ad8c00a1d123cae3345c7892bacec5c51d4029b2a30684bd4b8292209152cd24c21ba428416d7adbbbbdfb992ddff8b0e495c7da9a9800402be80c27e310596a126220bcf88fa410627b4a8e0e08306451cf1ab2296acf044e5ce16f543778aebd6dddddddddddf9cc9ee323867e8159c344cba0b8441a3831320b2d8e0c301d648b96edddd7d8935407cd14517474ca962e3c9fb14ad295b53eeb450db82ca64772b49f0f57befbd59545448e2285e4ac42c3b4a38eede7b99b82d410d2f58918aa18bab3a193c595305f664861fa74dc2999ae18a314782c8e16ae88914dd93124065211bc243b55acd09b4dab2ba7355b3b21a59517ef634fe9b709c06552a3009c26a8d0d610cd0462a49162ff6446db2e4ba757777cf74e46cdb8f15779515049338f8de7befbd3d54790f65bc072befa18df780d5423e13ed28b1d65a2bda518291709c191bb4542971070b2cc460c0860b241cb7e4872e1635cfed15b6272ae72465a59de08922b372f79aeeee9e95a5159c2bd93d2b3351bd262a7888848535437c9122054a019c4c1145cb63ebd65a6bdfc75a6bad165a2d24b78cb4b8537b32da426a088c2b0165a00f0862a96ea486a86ab51a142c95a55596355239881bbc543d4125872708d0e508af8b132a709ccb49a412d55979a25af9a13b821f4ae2caf7de7bcd94b166acac9936d60cd63f0d2d199a08a20433d090c20d036803e6e9674fe3dfcd128e6b52434fcc69936ab2c4ab08a920c4192cd0b8a122e505a12927c082a52ace13162aba848133937212856aba9e16551c52ee71b2b26b2d012389a83dfdec69fc6be128eece169585fec0796a327d06c455e4a04494148038e28200f02cb9f72ee1e2aa872e647071e28a355a5a1ce125007994d43c505862f07245952ea210c3851600aed67401f3a1c913253e343048ac6001a5ea29062d6838e91e1586ecd3e8a9b342936deb9450418bd9b558b55a2d059bddddbd0997169262c89c316ab2e667b9822479be90408a16da78b9a08b149855972e502894ee54f81b027c44540d799c5891d2c29378254598cac68e12d8174bd8ab26be38a90d7d4fa36be2eebef9e6df12ee674fe3375cc50447bc50420b132d845b4881d77ead5643823729a7ce26c78a6d0397aac8814e17799a600102877ff62b3976962c3164b1ccaad56a4adcddef7b6777774fe2a685241c3c07ac23b3e273123b2d24f338cbf70e65a3de86b8708508b2e40143268d0555f606288c31c6b846e1b81366b0420409b0b0a2a6822a56f8559534517ec856f10302151e1cae68f2440d21a080051da4b0d4f2ec5aad5693aab53e6e9f5a6bfd39a7b492024eae65a3a6f59c567786b646d9bdf74aab286ef2bd77b25163dbf466045747cca993041233b8cc71396179ba8189106762388115329c0b1654a23a2b5ba6de78914598235143043d516168c10a114143f469704edb6644124f53377041822b57404ee036353c61366e96d8e9a0d4898132d0079420103849b0a8a4b0049330b2394820717ad32677afebd6a56ab51a1377777777f73659aa512226bbb7c966b884a08b272977ec80c1e131b20b8124bb9a255052c09e73b13c354f5e007d280ff13486b43045104da4d9a105333f4910b1f5f4b3a7f15a388ae3a49b3478c0b481c28926d6c0f0216bbbf2810a2a1c77af88b833074f94b7995273839c2c5daa9051c2a705f905125eeae0f0c596234c62525b9c7070654d8344ea873a5bce9c81eab1e14a9969418e9caa5aada6029593a555952d3938e6bca004950b3258610506830d1c0c6798805304d1c29a167688da0261f0e1c2104515c6a36c16193181458564b61667a3def0abc6868b0d5ab8a96af29af3cd89fa40154d9af001c9142a2a5c73ac5c73886842f30c6d4fa367574f4c6dd2aa0928eef4b3a7b16de23fe088274bac4172c5891a3e355226d8b888c0e9ff87b0e8ecf57befbd5796efbdf74e71049323962802cf13509e1a168270366f9a6c1bed490d5ed4ae44c184569d8ecb15ae068a122ad038a16c83458d0aa72929dea4c0a9a15ae10ab995efbdf616cdac5aadb6028e5196efbdf77d9a68fb2bf3bdf7de6d2b4bab27bee42bb7b251e310ec597d1bfaf4ccc89628b69839b2030db56d0a262c105a0f7a28f3ca3d27821ec2913b53a6b013822d53705c9caf15122be49bef1470f25d82e3de0b82624da1739feefeb5897cbaa8e2f07fc9c1cc2e8e4b34f2ec01741d37ac3da3b940441413281c6cd0ca0287677f10081264ff195d24ad6ab51a131cfe3466b448e270df019419e390342ad512ad02c01400a60030058028009002c0941c985cc904c8d2eaa996ebb8e46513b27f0d67999edd8c67999ed5db94db36a5a29c35fc6b38c9e4c661d6a8621571d3eeecab0ea3e4fe19cef946ddf83bf97930331665f0a88f5f477d2cd2320e47fa3ae81bf50d69993275b6a28d59a369764e25ea40d58172d977892ed713541d17549d27a83a501f8c4271ee7ec7dd8efb96bb15ee5aeee2ace3fa71d6719708fec7f5fcd8fd0b74b03fa14f1c6b6e71f4f207fef73da194429fd330680cc8899efc1713cddcf6f5fe8b139536917be97af92fd7bfc471467da292eb39ee7eef1295f0278eb3cef45e7e393afc6e7f962dc6f8ddbdd127bbd3ed7128c4272bf96fdf518f0bb7bf17ec3a110c7bfe0bef7b01dfa8eb5781d8c3704fe8b590bf11fdc2db1382db3b2c942d841fbcdc733e99f332b73dc7812f2bf666f46c3e488bbe85a64f0bd5a9033504f6e0a1ccfe2ebe686570700b7b6c1f0461620fad325a3071a465d8e310bbe377d77a3d2c7c4d1c309e652626e338cc324de4532b63b7966828e3518389834fb7df7521f75b2833d8447ec30d7fece9bb7553dbd0356d353316cf642783c559a6675e268fdfdfc76397e9099a3aa8e4a95b298396554c22a2114100001a8317402030140e08a579a68abe0314000f64a84c5a4215cf4291480ce338866128866118864118c61062004048416ed200fd235188e299da38a885e3ced3bd3cdee0b114106f1cbd91434398e78b72825ede53b633c0e67b1b57ee1a566aba7147d282cf68a9ea7a2b923e16ec5311223f5e0d70ca9d22b425e6b3d4d0e634670967df59a4fa6219214a2776b3ef7f573d1b3451105f45c1d610b8e21b16c770b68edab12cd0378498abf187fc1f5c51fd5b6a629eceb40ae251600d8fb745e9ddfb7a19bebbbe32b4474c19d88f3282fe786f10cb3fd9b06ab88376f9f6ebd78e1349ef414fab6dbed1718d164608ff0a51e0831aab966dabc724e31b9e77f70d9042a66fc3de44de7db0904883aacf6378e17b1d9738e89c690af1445cc9fde61a7e7a1d3faece34135886441aaad6c44381dacc2dddcf6e92fdce8fa011a8a18ff607cc7d7dbba741d73cfdaca7ac2fa83a14830f189bffb358fc6eb6032e0f3efc2eb93e64ed0e4411aa180d316db0cd3a4dc0e268a0e4f7996cafc54e12343418a459fb36c3deef71dc9581d2b8e97484688c0b479f1509a4a57039f4e2d07c7a0753f8c5cdb342561d9a92412bd5e28ae69b01334ee3b3de6c5676f213a5ac28b8e8708d544a370d697ec9f2fea982411985484f2c32956865c3cd68212d7a09ff3ccab399d0d6de1583a687f1b9de7fb878037fd2ca9a8ad03ea298c3b1bd14fab0cc5b36766268660dcf1d996834dcc1297a057ec1b9cbbc2931a8972e9e53c7412fa5606b531658c9e90e835f31d8d8ef26c86bc35441ddc201a4864bf9c793670fd10493a3d6590859e6c2b51834608015129116a6f0318e000fa9bfafa1a5a1d67c76b35b2fbd980750e30194cd4f8d97a1c1d07c169ce459e51a03471af9913cc3a53d7a2c327a2b19d6fcf5733cf6bdb310f217ec288c4660894bf86e525ec0dc7e5e7584bc148b41cbd64a34444072073b57d07ed830175d8521f51b873f66048b332ad7ddefae583f0ca3dc5ba6cb0e361caacc490879b769af8a30f371cb533299cde8cd23ae6b0daa1ed512dd34fe3d0737c442e58c5726e24a9d98154f502132111207bb8b469f75c50e16fc9d687a13f42050fee8aee423a76669bf412c9fd42180a00e1236a7d6f00fcadc3dac8014a2d67ab755af4e70baa442af069c0d7e20e944300cde4547c7340985c28e539c8d4c5ff1154904bce75512264f3c3ebb7a2fb4fedfbd44b656edb039b10700ae2701357c614ac8b4a03932bba5ac4f3531914da1b005741e93a3277aa9aed4ffe527a2f777a63bbc20bdf9d1511f291bcdbf8c33c4782cf509712523ef807aef1e93b60a212982631b47d19af9d0dee316d54b4ea1530c139a667d62e02b264e222a7ddb472e8aed25ce6439fac5e08f89d10b3ee097ce00190bc79c66e5c34b11b1e1e4263623c6ef889f830e9f1f2dabd17e5f54cc9c7e294d91eba7a54e967e6514040708fdcc42e034a56de0436ba0c20939f0c2a36322c24b2764823797b708304c698f8859ee29ad40aa32958f2beb60501b2dffef83aa237cebb93fd1fdfbc66b84cb8edb515e45d1e53127d0dac617fc67a421e2beee54f8ec1f578129bc44a9888e55ba62c025094f999506d3e0104d39222d74ad6fb7cb1148c8b75a991df12890f05cead90290ddae1ccb15eaa04ae905f0e8f83e684e48589ec2a33562aaa114ea827dcb06bcbe748f4701ab8e1227e4e67c392af49a2a3a54f62514fb32fd327a641087d46d25f13d9a15bcc8d07b870fb1b1027f6c14cd7d4d479e5281e67b9c802030eafe6b309d26c6ed37b3f3ba65ba9befd71a77a231d8297ba3a4a21151ba14e19c26cec1af7da82b90bebb22d799f7b620f0b0122ce83bb1c1bda4407a5cd242f482db7e0ee2b6b52ae81b2a6926dadcd5ef7784bae9c0f7c819fcc81c1c29afacc47b21ee57a900b2622953381b529642e5eb6b6c077ce8ed54546b674470d24d0997614a13ee88bf80c676af2b35b17e0af0eb24bc60f125c9e58a6f1371c355d4faee2c56a5ffc08bb2e62b7e8ccb4c1a4cbc3fd51a9c0c93dadad6ee285fb7d9e85fd102d67a90b2221c3cff2d2b68342fc39bdd0f7606d6568c520a05210aa3e4e25c6437471c247c222be8107d9261397c7cb5413d25300a94da97b3de98572572d83822ce44eb2dee6a1d71bb1f83e4ab5cb3bd5ec54d42eb7108f1db617daeb173bf5b31a4f6af4e25dd33fa7a230013887a0612b207a8a32fbb2e149739bb138f4bc040b4fb126a21b245ee4f6517ea6dfcb0232ab5b5bdf802cceaa068f744a0f1336008f082efab8c12b3e40cc52db87b883c14b5e17a7310c347d6f399fe328a32fc4ed3a37173c1f03b62e05b8b56280eac9ef279e9f8a2a4a211a17ae7449e8a3231a1a34e83fee3a8ddc5be01395e13ac99701c6a7bb7fd074375746e3b5f25aae197744d08f4df6cdb0a6a3d4d1ad27823c0ba43f3077d9b975eaae9907668df7d47c98b3b13cea3a3c83b0dfd243b1f7423732d1fd7193fd0b45ee071c67bb6ada215a128f638b9502709a8a86f014be948136d88fd26a36b28bae485dcff41689ea8f2808da5a078f2055cf7ad94a23cdc1ad1612ee422c123f3b981a3d5f407104443c3a8881dd03bf760315b96103502a284e6dd43407e3b196be4fe5e3ac6fa5f182169b8b796bff5881e105c313934b5ca47ae1c05d67c3e65e3f6bc922bd7cda7be8d68d2852c6c46b132a07c3fde8f92f2a98278eb0952df1b633fda41aa0ed6bc06410577105584e31974e0edb6ff7580be185897729a99c767bc9f1d025d7311a5425107dd3acebdae039a95138de6291626f5a6fb82edccfd15a75e7cf08599ac4233758d42c26d86ad24b90d6a0f9d0a80bba358a1099014182a85c75092234f68702325c1b3501e4ef40c6905828c0e70a87e36833c74473e0406e1941fc9f90a1b72b5b64d99aff1c77b3d3838f11b909d33f2a2b9b4da4858cd912fc8ba9329cb279a4d7f3d4066c8b8d39ec3a8b1c380aefa569cf899e5ddaf79f37411b7e4a8d71bfd06729e1631aafac279d412016680ec0ac05ca257e5b40e398d61a46c36c5d048cadec7a202aff5b21c5fde7df0cd3df1b7846c8eda4760fa949a0ea798474993f508091fd1cf0f48594c0cb79c2bcfc7e454cef2471c57b4112b27171f024cea6219bab040005a494f6dc270973e521e339264026ec783d94ebe9e7ea91e6b2bf4f7751386bc5939c68dc0881224202d1a2561a61bcd48477ffbdbe0106b2d9e5947525ac47c5a09e35050f69f40fce11e9e618c77da319d90f3336d20aeb0445203bdcc4afd458d155f09e8eddb12445a28a084fb4405cef58e555e48067c95dba109f86e85d8fe46c63873992467b2aac1927778ab388227fa6c705e78fa6494dd565f279f2009359d78f4029f466a3cad5a3b6e48128bf3fc7e43aaecc5ae83cd1bdf924b9e7b3a7073b5ef9d3e086ed4f84958ce796bc5b0e0b271b1700249667b848b8ce9f3cc06ab30812e2a1b54b69594ce5882763245078080ea4a08da3eb07ae3b6854cead5463fdd3320f6c17c79fe417e3642e7f73b5978bd266436c9718265dfbc1d8b80d3a81091757d55fbcfe649f707bdbe87e6c4bda3b556ee91a414c5153a213f9bf3f1964a5b498ad0d8b3df2ec005020c1fbd9e93290cec1ead9d8dfc0c9fed688e5488cf21bbf145bfcbdf5ffe62ff2b34ccbada3df8d02729e4ef090593cb6763c5ff764440b5ae4572d6628f7ba3ee4ada0c008a5c78618f3576bbd28c781b0695b9837de7fc7f3cbc11729e4a8cd851adca3468c0ed312f5d30dd01959c896953d5f109195356111b3e6b86d2fd11d8b040f11facd56e8d18091e71836070a4d02d533515a12d8b950a60a7036d70ad42f7fe498de181d6d4595c4ea3a36e69158286df9057182227021c4f4f1e199b7cbd337f97c284177f90744ab093c6662ae544e1e198634686e26bb236be02dd53cc99ac6a9b5cd675a80401b2149c8dfd7668c8a74000d4c480ab5dda4bf334e859f9fee3e5c090d3f83ca5ad4b40d6a413a3bffd9065f3430701938c2ded4d808ed79b35202306babf01cc69eaa8f62000983424fd18a7ae5caad4b7760c4661c651ec63d8eaf2d80773ef349fd09b007a230060bc21004cd59d184505ef1953b85928299069e8aae7b303037847563d75af6687276261d3413e83f2ede681700c09dbc8aa1ec010243914ec8caf182e9a0aab8e87b0d68251505bc1c566a5ed72bcd31e46a33540c9a1a6aca6c736907cad63988a83636a606305a3a7a9c7e4531813db9fb63d5b851b22218c1500b362c0be8e62c85c16294766a95bc92190d7f3195507903f1a9c52f1a52647ea7741b8382ec60549abedb3a7858dc9278abf0c4b5f826e97c651b5e479893d0d737fab3f976adb34f0b59f8b0e92ac4a802b1a0acabaf16108fab749a77c488cee0d110464531326b6502d9a6963b6cb9a28e9e37c67d5442d1ce5a2c1570ba9a6625ef10b37f5514a26f9e892d109176b3645a7bfa25f03600559f3270ec7b1f4120c88c84b328df37e14179c1accc98d0826a5b0a52050424a2dfb12adbb1668994966175cac913eaef9fd5590519d0fb3dbae2b9b96b3d459fc71d1e6f4f0b1fdac66afafab7d33f159c6ed2e000c68028af9c1a4c5ce90967342d46ab134219034b4aad7d1ad0ae6f9438d68f0dc0b3ef581af5d78aa3dcbe32db8ac4c768f259c8e4c61c81cb0f710247e119762ad71ef74d66e3a10f4e67b96e6f01ce11a1cc1ddcfaa57f208dc048a01b0b43bb3f875457045e6ac94ae4c0ddc7e6f1683168bf260f5f85ac6bc3da03836c2b083d9697c12cb3c2274dc5ae63124d824ee1b71cafbd1c0513322c64e412eadb51567f17c775bf70787c831a6482c07c12fb650320f86fb23a27eb90a6b5318c9aedb138d6fb2c9f7976fb43c73ab3b5d8a664af17df10db109c10682a5245712997df399c08962e8cd8605683007362ef4b6b2eaa237e42cfe8109cdc102306d576ef7d7c805fa6d0301b92fe5766d7b582848b00bfb9c72b0fc90dbbf8993b4181f841ed4347da8598d5c4e42d25220b228a690391579d74c1da342c80e4fb11d30b212b4215fdbda6eb611ab75a640935c10aae17cba3c4c22184d492a9175df9891a58ea618b436af7e8de0f73be3aa50c6cfeb6234ff5868d89c8ab8c4e9678490e77a62cc7719e2c2472c3b124cc6dd056c31eda9702a3249938e517d75362cac2a0400e944c97ba57ae59730bb255d0881e4765ededcf6e6bcb199452a1032a61b1ec508f79830eb73f9ef18dec50783162138c639a52d42fd0256eb5a2b89a1a464d902507398e3591122b06a17dc4095b0e59ebe91f4dc89241359d1c61f4ea7a39de7218b89f9db263d9ae540fa3440c8147be8375bd4abbddeea31eeff2c0eaa3015c451a0b74ad513fc2d05546276261b20bcaf087d0ff83d22d54964bcd07982fe5af41e4984f5d6818157dc112d90c33e4dc870ff0b6b8ecef0f03bae97b0620814abfbe9cd6f77db66b1b8ce159943568f8d8fb6890b4bf62ad3831ebd9305e9ca857416d80852e90086f3fc393d109c034acefca490eb554682d98c2c98ae0949e307d734f50dc8e862d520c64b104748d7de4d6c518c2c23d7483b1fe96e09ae36169d4c4bcb631468b59061adeeb23d3cfd67966e49086b87a557f8d5aeaac63ca60ead07cf94d657402041c9d01e463402f085bc4300ee1e759565dd0eee7929927b084d07733f4967b493d920ee3d3b1fe90766b96f6042bfc576be9bee6f757d309b9e075d6d59350d87f14e332058119e8cb48ef62222456b2681ba1a51df484d69659b50bd620ae89289d8a24164bfe28a773130beb2bffb151957c040615386e61618b47d97ddb47a9a16b1ffbb558d77d9a7d7aeb208251657bb47e2ddd226cbc88959baf243dda6c9b84819b6a562b08c88781c75bb70c082a760b5a8120024653a3c7dc18a04c38d97f16990efcf8168d96359560093c64f0c60d46b7b202c52cabcb1332d3749eaa62bec0ad58d71cb4a713403fde81755f068acde1af0f0f2cbcb4ad060b0895d6843641ac7315f9a903dd3dc803c114404314795024d927eab9a0d91e0cf156adb64e9fa843f0aed82c224f62ceadb9c79d1408f40227903baebd36eae33907b5bdbea5cacdc5c692ca5f40bc7553b7160b41ad9008b79f70779c010101142096539661901ee4d432dd12ce75ac663513e1c2b3d1b6712830dca12d77d31e51d1588a919d9450fec77b1b8cf6533752e4c43e030c5bf5c8fb7d10a4d3a5a33fc5ff8371063dd45765058b4ceb8aa1a283476081ddd8cd47c68553cb39c6be72501906c72841793868eb6c3bc73c8b4f346959dd278193dc856f8dcf446fc6f8e0214a525d31079b91a932cd88e84b9c88d371429ab2a4d8b9b8e7526a34467322ea3d1c8f9989797f4cd5de5b0f9af7f483fd2bfbd33420b49b7092f1721dc60ffe7a5fba2a37bce2620122e4adba3a28f50e6d814799a1f170be8906077502c8c9ca7fff54f0d3eabebd523b4a97940b36ed40ae08c11603fe8b6b17bd580119891895ea9c9cacf65c054fd8e50bd86c8bf286e10da5de18317c3752bdff6b36ab11bc1785f07e65e950beee6c733126f3cb198d636f6afb7006f5d73fb4a6be9fa4956614c99461a09ba675d5f1aba334a209e8291ad2824703aaf86642fc47a42419e0c97b740502ac1a9019773e2a4eb21d8132a9046066222e96808fc635c3a49402c8df325cd6816732e0509b061eb6980b77f142a14a2f6f830c11605de61968decf7ab18e2bf300be4c014720ea26908198227e40614a30ab4dcfc526010abbecaf60cfee864a453c94cd739236a8cd380c540843826c5691946436438f3c3218bcff2f6c99c51c8d0264f20ce3e68b2989ceb3df562d08113b791c2464c66570f1f51c4f5e554ea5afb5b6b6e4db2f64f41d9a04a9009cebf262ecd3c1cc8cd04b9628eb28a548c7b179c8984ae8933b4952782d13ffd16683fd4641c49954364f23a4a593332d1f3e1bb1eb344a7df49d7498eb006e3646e1a293759a3e7f5bb5cd69f9379dff83c449be8e7d89c34c4f1af3d89607a235efc55d2a9e5f507d7cd6c6de2454a45b8e43f08389869066c0e2a4471c9c2922064372b194e320017d9f9733b3ca882ffe3187e2d644667db4b3641f35008acde322d0abbd27ff9e33e3cf1104fa702b7553845b04784aed620f02847d6ed963b5852dcef10649843790cd632865fafcb3bfd29471d5d6c6d66858953477c2815748b137584b0e49096c839cc019d0ad7579e6f01c662fa40f8fbdbc0971b1efca8f7654eedb0629ea095d30f96d9f3a921ca15698a2243fe16f0dad8561fe57f94c6cfa223f25e66c91df5dc0d26fec27f06a5651af27438bca182bcf3c29c91a8fbc6810afbb050150c6da743488b5ffead80122a58466c8fd5bd53ca956f9b5c0d5744cdb4487bdd0b986a556c511a0b235e6ca58a558b6f3945777f6c69d51928edfe5b0ef207f3884206c51163dcd5ca57143936ebb834579ad583c9465c6a3d8c79f4204e331fbac0dcdf3d0dc14aeff491ddf143ae4994a9a55a4a77c72d9aed3e9c5d4d4555e5e90f39a7a4cc184edced2b3065060eb16a2b9ff23708b4b81930411b2735da41b7fe18b588300f4adc668e2d5fe8d78a32bc92943680d5af8f56be153354053e78c2228b1c4c8cd10386d5f5737e1e88935f6ee3b30e4167179b1a16ab879134baf1b705f4efc53c6a4c0b55a3b0042ac4210e7de8063b8c091f7975fc8044ce89071c426995e1a9cdcd10be904833614949754e364fe6d79787fbc784744b40e4d20047b6479ff8ddab803ca1bb759cff5250986179649aa7c862911df3cb124162f54f1d9603c360fa4d1d909bcdc07ce33580c2a5ab0085828b4fbb424625e44ebe718d4325eee5072c8ca04e0dd4244a9a3ea008a1c2e1d76f384a4b3a8856d41c3ecbe366c4a8a6d2dae3e5492144c1f283e128a4578944568ae041b0c2a3bf047e9b1fa67509d0ae8b2d7e604c14b927767e8182f761300e57a0064939a5db2043c9ec0dbc526be4476b82665b3cfe71953712d6114f7cf6d647e83264f55075987fd7bfadcca98062f9e08d287b4151dbfbffae956ff8682161435c87ef8057d6e4678038b08234cd431e2aade9e3889d82f6b4fe2e04beb3a20ee137cfce8786bc7b2d7ab21bfa035b9c8bacb94adfb2d9341b80b8b04219c0f32c6e1381825144460988e750b648a1ed592f827723374e43da8912c64eeb02320b1edb4eaff678de63a5b2e185bb22a89d512364c6230b97121ec46e3f64a8b0687f40884b5073a3cb00ae4135c49ea51780ee51cbc76541fc454f02613414fafdfcdc93044288f2fa160e8589996d3693cb17eaaaad695d3b0bd13a53e07b0773c982ce6b3c53f7ba29daf0fb753726e369c57310f97d64dcc51794b167bb085d924d2e6a89023667e6b0fb8dbb0cb99573d05a70dc3238a71b85d0ca022de390f07727aa637d87b859c77bfc81af7337ff8f758ad402b2d56261c4ec62cbd9c78ad88caada948210cc5ec67bfc5d487427c983b357ac7b0615bba2def7fdd8dbd362fc7fad0d65bc01824ee010e9aa5bf39c909461451848c07b493bd2be625e5a087029ad7a571c59069b48c52db4682db4d7b77db9feb17901cd62fd421aa21b3da0d1186d67a393128d93cf68ee8b5b6d0511c68958e6132fb19ce1c8e11420a8acf6591b5b0ed5d43f46a6cfd60f8938280d39e8aa2e028de117a579f3e1588c8a6040d20a72108b52c5fa2eca268f4d2feb75413592560cfbb7daa18fe5c17e43dcd03605ba1e25f9261650accc0633d3bc223c28c750ce2746c8d5d3c6b82a08e544f0dd95877dac72943b61c01559854b6b0145179d8aa512d9a76543a9b1886f92fc38ffb628685761f83c6fc4d370f43ee4420e6c74b25aa5707d3fa333119410e85b179d6125d8d02c69145222c5338f7fe59d226a71e0d4027e4e07182a989c9d2ca90d8848bf0a2fc813b07efe0d0d889adb28f9aaa4bf7a2631e6c52582064eb9e77ef98d50184bd262558d9c92ad41fff85ad76b5686a08223bb42f7cab8340231802a5a584ae020ef2c3568eb2b3a1af2d322287d839c52c6d20ff40298d254fddf33b4e67d0534c10aae5977f637193ba21bc82298338c82cff4d2afeebe7bc00e0eff87eb255c84722b0c3e11a2714b0e4bb93b2793cd517d2f1da0e04d28491822c2951fbcec825707a8dd1269267907e8770a6f696b3ac49189065bc2da4e98a00a0713a64242545240216043fa26332cc46e46f3587b16b3ef561e2fb27deecc4c73436513618cb52fb82dc62feb300069071db7e6e207aefdaf8139550773b649aec807672d960b03209349669a80b7f6703031eb39a5a682c5deef50f0abd4aff0417eeb4f7d6448bdc720b92ed733e38caf1f70f176002e43b558283e6078bfc7a4c30824428b00733b840bdde3205d232056d531a6c6e132cdab2ed06d04cce4501fa04649a79a582e6e795a05081576e580a1f08b8fcc74536b708bd164a3c491327b125706e77c99007a04061ab0e80640439d4825d2ad98f4e04a60df38c66e83800e41ae2de118d90a3a878217c09e0a144f11800975eb148006eac3259219520522cbf47e3cade241a7fa5a6a63c41780a50380aaca0d80d69bf1950e5dbfb6d2fc4ca6feeb80bfe6d5ed0a16086384e907edaba23a592b02cb8b6bc321d0552df9b2067a4f2d9dcdc610e03e878b85f8ce8eff358b3870900e7d51ce86bfe6fd368ab8b20579b860eb5ad7e2b8260d3f5fc5e94530cf109f2625b8a895ceb16c26fbe29f6a302adbb6cb3de9cc110a3b8b735d876d9a57bfed4eba702c943ea7eae036e6186ecf373b88ee14b5881d965413355127f70b15b3e46e7c296d67166f83ed94f22d8da0abdbb0adf3eab3f99a3b76acc1cd75aeb42dc93e7d3c1725bd3fde6d5357db9e7d4231246391b689a8d904ae1658976ec0438987b4619b8c361a91505aa06693865cb2bf1e55068c48bc3568e842926149cddff73a23a39cbcb30732842b80e65094ac97f3cfd3986477e03a393bf92badd1a892782af7f548f6ad4db0c85cb52d7b84fc408011358e6e0ce2b73c403a15fa7462260c6031c6ed2b3d35ad98c19141122f01dd88a790eec908e50aba194033003d1b4a5d92e76c62a16db320473367c9461fd12c8e319562ceb4e3b76ac9ede29f41bfb3efaa4a80d65ace86194f07dbb69c11da9ca521eeb061b6a7320ddecbcd8b37294e67cb62ac2ca44d729c67f58166b7309b68932986acde91ba143312b5d84fb7088bc535b168cb0bc22671d2b6a9f44bf58e8630dfeaaf68732a6eeb64e6ece5f63c8ad5e9cb7f21e8cbc26d9f9291fff7759e7145012092d95b1abb291ade84b731457549a4ed2d7b550a5233055d61de39672e3b84685c7dd14740d00f2de5c092df7f60274a97b2cdfc70453d030722964ba9d23a861b0ec2d61b5079b78023ae8068928955027c37f270b0ed588fa553deb1809556b463148a95fa582a1d133cd4aead99f1bb624a3cbe4440221aab49391711acb6f4d059ef2a99387fb3cd30ae10a26b467843e04ea3808102aff6126f2ceed645e178136f4a7a1972a4ca52be06019238fa02295efc39304737c0da054b5ef02fbcd6d3db25d1f8cc79fe42cb28e6122fa056d87a5f1b326e6d7eae14ffd9f6672339262038cb0bd0b857931b69943ad80a67b68fb0c3c1b88ff228907b4d10dd616a4aad6b65bb86126dc03b08d65a941dc11697355059fca726a0fdcfbc41d4591c3b23f2d8c4a2880dc6a1b9c4532a2d9c1892c96c229d26edb3fda0cdf67ec7407ff87c664130b96743bf21794f7aa83fd32a2dcddf5058af25addfcabf495a263b828356b495739f128af676f6f985ebeb13d00c636e4de137589bcead66e9acc2d0002cf29e3b0cc2fcf18eda91cb5e07d887247f45b8a01310da7addc0aefc803a46c3afba91f4eca64ebcb567e70d3733217493cb1158b4f2515329bd8e831e9ef161501f08024479b46d96a851751c184607ac7a2f977d470a09162094c71d6c2812edf623501204a926a7549ebe716075448392b0015a105f1afdbdc708f8a9fd573e98e90cb92c6285dac074c03727834b29ed2ece60dfefb11bd715d9027bd9760a4fd86b19a04c46826d1a2318a970b9254594554c762fea17f30242775922c5be124e4aca4562965959c335d01b222eae9891ca431255a544dbd899a59b24ee20de2fa99de802b06a7b13c956c8a36cd1c50ceddf086055047a2a344980f610d078d046ed01771e07a48c24036d9086fe7319733f7ddcaddf71f7d73e5094b0941c8af2d42fc138e54653e5b39fb7a128637f626a89ec6dea46daabad7f7351d8b06e16187bee7d9ac5841142f345829f3b905e44558a476ac100e4c7ed528495e862645363e904829f91faf44184e19081307228f7033dcfd993ce6568d0f989ede3b6c2da8e47d3b9900ebde9dc8a4cdcdbe34ea58ea1affa9b72b851db71c676ab7501efe63474cde861498dc9f2014a12dcdcd800c454b838dd4108188ad9300d47023e5a7375bd4b0f378e3b8b22e36c5ffbfbb49770aa16e4d49784670d927d23af354c8c559761aaebd5dc52195a001b6fcf3dff13e63323d145551df598702c1aa169539f043ba2947b60f73a557da04467b8194bf276d6b350fa71c6e7b9fc8e812cb229cbb1e191dbfa9c81768da62083667bf9fc8227667716611776eddc47208898ad0c060928d253a8773418849727a043428a161461494d91508280ae6968aed8a43dbf04d10e00a13bf1f9d3e82f25b90a81613c9a3e87e9809a71d249136639e0bc3eda17054d90215fd163b9b6003e7cbff6c39567d18bc5c3ec20a6067bd9213d92e602b3488ab260df54e0a4add960f9a6a65d741de5264e0e6ee58323b6542fa43011398a260208cc91e61360995b583cd6949a6ef43a76c692d3f7c77b2208742fa9aaf4bb17a49f4aa735b7c757fd5af2ad210c6a81773da04951f71857c4e187f83306ed78b7f042f39c032d2e647d30eb78b371c0207428bab1d8ffed1d7048d5d762bf42cb05bc3c18dea9417a86cf17e9cd8dd908eed51661f8a242abdc6fe0f91531bf5f6035fd27d3fe19f8fa3516f4c0c2ca6523696616419b09eef4278ca0fa67c902b82214d0451da1f5b79d3e643d590d7ed5e9e87e888824207eb4527263edfd12008fc971731154c6912bdee246a6a7fc22f9fc2b2b4c954ae5673227556d73f3f1493a11b96698adb3b68433161b0adf0bdbc57db0aa8fa6958fc2538bea7a1a671ca7f206928a080afcd1d3e4d36db67e29e578dc4b86eef04c4623dc8f15d81a2d7103d7310ad6415711359ad0ab981595d0bd0a4a725022274835be256fce15357ff2984595865972d43a2a67dffb6e4a99d0699d0c480d3a1de5daeb0df94d7afeffd35471781ef94bdc24dcfc186bfe0bebd3ca5448cde4da36fdc2316017ee423d55ed7e8c6871278548e96959437dccde171dde5ee78f43900f9b499894cf249612b0c7ed2059fcfb5c0a408e4f78393a2d43b918a2c2d911b08f0abeede21e843d4c6093f2cfba5eb4e6e3daaae30d71bba249904c2d6736203fb730f8cbc72804f23d48861810acc2e5166cda4ca92530d3fdcf362f6fa5ffe47ccdfc29c200e94885e3a6cee0c5cddc918de3d47d10b8caf2418c671d353b739d2f5e7af8bb6dd72736247e1df537cf368e75d7e8069886f917abcbd7eb494338834fddf6b424ad5b170670d2ef847c71128f34017453fe4ca59c83ebcf8892b608b7f34fa9ec5fc229081c2df432f5f00ad94604918025ec28ac71a30efc0746b48418196825683cba5e6d4a1b2a7e47a5e709fcadca66f782ba54631e6d9404cdf7555171765b4836cb26b4a9399eaa7943f670cbdde89910a029970fd630c87f01cfac93209974639967a90e59dd6a9dcd7e1065009966f056581973ea3444842fccf6e9878e2427346d3bb4cc2768b8ed26d8e51e4ce4c6da252c32f4b03b8fef8ab17545cff5ab5a6205a464304b9aa6c8a9894af5d3c7ca4701538fe2478ae4799513a4eac066e5f0c069fc75117cd20ba40847e491fe21056cdd4c87ad716f335cbee608ac0e763a0e0844909d199bc6b60a895227eb8ad7e620a5a97c89ea125a66db4289df1dd8ba9fcd3422f65ede8e06370466f3dd57a7416743a20edecbb2f515f10a4a9d8bf5e5c87fafa46be4428974365633aa16e83ac93be1b72b182f98b156ebcb49d1c82e30831bebe3ea431b3e431e9135b0795d308f0873368e45759df1ba06e1d8a6f1d845efda1c96114c2c02ef92723f9ef36f15bbb225d8c0fe68650357bfda04c06cf2e6afe14270120f6d5f3dda0fdde4840902e123eb885e37fa1083a73960f56b369018d19dcbb4b924caac72142c50b7ecd7d224ae1bff29713bd0c052c659db9c4a69f6fc9db3b50712637eb3ad3102e462360dfd5862a28c368274e30a9298003a33a977a7f3f5a8506f948a021278a50f87912ccd13c38838c74240ae1978a9055c63f25c706044d2240ce72a5010d3aa1000381807275d5bb0a3e06845d766a354c9a3f633855973e9ac8b290b00879cea3d5b8a004ea6156add591ab087c2810d386402e167002a02f4b0f4f095b38c08290784f84f0e71909b0b5ccdff9c03e430ede65dd1bad78f4d5c041fb8e1a2d899d83b77ff49b61fda790bc06c0e6873a6cb0f181ca5af3f3556a5626efa7926224a164df5a9806b2026bd12c2a53cfd6fa90d93854033a457bb00789d860fc3715b57dddc256de8e58d94a145464fbe66702eb2ca5c3ed8d697c1a04a43aa51e3454ce330c6d7d2b3c1b563fcc666fe3bff43e8e321b48aa146aeb0f99136df44491ed51a63c2d2b17b86b1655c3b5ca3882d96721868c98b2b4c9686bcf3eab78e217e7400deabacb5660e16e20b951171f3a0236081c3ab7138f8119d4f3e38a87f2c3f2cdf89930336616946080a6ae0175701444bce43288df90952d849bb00c78372e3451e3e0f2a04c79f746c625a71d7c28821038f733fd443ac425fe6b481ffb06af5557fda3068708f7c6b4f64d1ccb77efc192328f5801b42a8df8ff5b37b63fdca413d84c953158f44ba61aaa2205a296ff4d6156f2d214e7ec1658f4be3c0612414a01d5bd5bce6aa2de0d47d92398ffa39ed5848d52b54df7440d3bf5673301df89e5cd03e518f42d9a43306d879c4e1f39f1382243c9cbaed92e02947bbef01faa975a083438780d3752c9a3e48c9c1eac85993263b8e8a8c9fbb69ba4e959184b5ee55629432cedb439a6e061411fa14bfef4aea9211c87b9e291e3fd7a47bab10c349476afd82b46df6db585547142f2f21ab660601212b858c67590e9a8f464be5f196c202479bd33fe33b74ced9c07ec91823753cd04cee312eba18689eee38f7976a851eb7770bfc9724d499609f81ea0eac538770dba1b418454afede973935893e559a9108c46d99813637a128532191cbf1d527ec2128cc0b209bc39e09e1d3636edeb492be3d9f975051a19fd1e94c3ceb881049e8843d3412c09ab80f63d10f7e116019ebc3f92f533a977ac65bd93c9a156bdc658d64446e6621b213181dd6f1b7c81e21eadfa1aa8477c4730f413202214f599a0ddd87df53f690e8d2eeb179b1f2681ef130a477a6369e7f6f245087ddae89f19446739ed1396eeb2cd0f1690dca7dc2bcb9aece6f9f8c1ffa99c1dc659b3f990c0db6d288234deb26c3189d308d4cebb7debb07f08a21c061b0e628ab41403ad897d45e0ec523ea7874fefb88142f8b72ccdf90f32afdb4bd0547a11a3b133ae5b1c1f3086ff65255bda68398d412d07a99233e3beb242f324476cbe89fd881f21fe28d6a5a8b1c21946ddc7945323cf9d042c8a0c90fb167207f98db64227b06906f7276a2d93bc7d3339c4a73f27da223302b83a3fb689f8125a340229713ac4b19116c7e46332243d60620d3b5e33b1294617f8cbb16e17e5f98feb7df27389315d9df8e287520cde98be5f137493baf91f52885e7ea687e859630ca651862140c37392e64b53429328e51ba3e00c65294bdf5e363cd443055b58422a2a48e00a20708aa5846038d4533549bf03010fec88dbf810b7f802c0c81a48354ff83b06e7ffec02e8858dcf5397ae97183595bb21bbdd62fc9256adcd0431335da70369b631748953e1de5fb45a921f6d7b0e87f87d28d197a5c4779538a026ff59a26880eee79a206a1e02b0999216cb5ef50a36a432496c6b15902e46b5931f46cc6b64498f62c26dae2e1f4b3e87e461908bb5c4bd5d5c5d9325f45f5f5d6b57bc20f0afb4924d92e6433addfeb7c8aea20c980081dc507e7a794a38fcb293f79b8bba8b487677230f282c3a2c6385e86e08e38d453c660547178cadba1697efb84e47ab0edadf22ac426f8f394fe0c05f30fe8045a5fc98249afc4cd98251329024522468d918b71cee8a73c3b8eaa140792082bb20db61da1ac191146f65d2db4b6c6f39ef322988e9440de24b5b737969a4da5854e0a2de60cedcf7ed609a000e0b791a89bfe391d806927f53d16aaa7e905f0d42cf3e7003aa939c57c3c9535faf47734f4f1f4ed8a5946ccb2cad0e538b6cb00ecbfc05dc87fac917163cbc74ea2be065dc67cde975760ebe3130b43b112c017d4b0bb7e0d418741d545b50ba50fe8b471c7d16de58a11612abd635cb44874890b476ad1e96f37328598f4a894245a4d12152f45c6af4b812f28cf102f33338bf22f4bce4a063b06b92ff888032fa5c0ba68e836643cba2118511879dc5de5895110be8d5b4d854cde86521f7cba8b934920922282819299de62ed0c2046866fb9c3d92fe72608d96d5811241acbf653e13134d5d1fc9705ac2d77e023dec0832530c66693dba7bb65341be23fd3a58f951f89360eb592ad5083d206575c61986cae66e0dd78a8fe0b0a8cb241ea895f29e0ac82edf1719a78ac02a4649ac86052f7143ab38a99f418f6324e2f0b7eb9d6870041916f4419afb760fb5b6f5643d2688e0ea19bc099183a25117ea2db4ce6db4ef23053751c7651d6a8e6172e6c1de0baa07c956dd7f07a3ce2f80e2a78d6490d5169e462cd96b8d55bf82ab2e07e183ca4987ca8be19565800a7a04c32845e30924279093ab06328f1504babeb66e58c8a3a574b9bb4406097b5d358e065ff920f9c0febdad50034c67e6496c1f5a80d93e3204da263240f5013abd827674036778073215d9b1a9afb90e0a6d8295cb467411eaaae1f66b8fb5f3c078a2eccd9b5f493d9872126569397f6ea39382fe05fd3bab16ee1a649314897a185e82f1318be55abd95cd7c07015337f4b515b99e17327e87236c06e279835c0145fbf3d8d1f90421d528fc4380dadfac91616ae5cf9f9c1d3af0336bda197ebc54b4bf321c45f4a7a2b5851649e53c4e1c299ad0ffe128d6ba7d16080687b7b97b6a832cefd03c5e79a178c01778da1e9946936ab1df823ae547b55edca3d8ab03498d7878a9794246dd4789dba61a2e4fe0ee2c5fd826ec47a8fc23317e99c60f8aa14827157568079c519813896f28c34b2d215a9cadce2a456a4287323de7c4490cae6e7df6bf217d332482680f468842c017ebd69eaa92f742036dec485564a410f54834e3923f27172cd8872b60fa42c3484582e770e2badc8d0429e8e861e7c163abb2d4e5608bb05f624fe24b857756fd08027a183648fb41efe46868ce3515d3251d4f92cf09a7220d3dbbef6c68d578f9362285a209a185344447300277982bbfbce61865fad3e1050d87357fb93b85ebcd8a6d0f0a6eac0006eae31cc01b1d27de2c08d04853ca94340c716746e65848b4eeb20309b1440e3e54ae561b7b0250cdd8c02ffcac150912070cb93cf818529b0a03b5cb917740d78b39879345bd768931d3b5440423f55d14eef83eb8c029d079397f61a23de70c278446f9711d85846cc4773b0184f9988dedeb0915f6feede742d56aa90b71fbaf3f8001161fc038934c606cef9b41cabfa667e5369d235c47aa4176b103364582e32a30a27473bde1581ecf64beea3d8620cf3ef61802328a00067b51889641617a3d0546d447aea29f17fd530f02a068dc98c4462f3cef900b34a0d30b4caf47890dde844ffc1d8d2cb1b48cc5d259037e63d0734eda2eeb37571c10de34c90df80f45b90a7754392c87fb610894bf5cad7ec758219c342966af26dce0fbdab4f3edd49940b183a0997654658c9f977f4f3eb5459314bef9b11c9d120d2545c281f5aec226f4607723880ab748e5bb05d599bc6c77c9da5602a2946e2eb1d827100963ed18b791178bafc135f01f27ff60ad3fa277bb85eca87b6fd14887a6be4d9af1f4cbbcb1936126807e95fe15648f5431554730accca785f95a9a6c448f146cfb05193f3d257128491982c259a7480da360f1a885dc9d8bd18ea4f6c86d096f09b63279f05efa80a1f0139e54439808f25d31a67a844e003103a2c2627aaef17f6612501568460bc6e3382d2f420ccab23017ca50c1935eb8dcfe9b44eb9738b525df248d1cd355af48972d2e56ba66cb58f29ce98a1eb308703340b2a17e18aa9b11608a015938e452a05b8d133d08564d59628398969aaec4b9fdccf301d62d1937f1b371a6556e9741579403fc66a20b180aa9b714dcb651b48606fa1fbc8a068c26e1b756d43d3fd7f21be8d7c6ce765caa2a3df6e8adbd0a468b57536fbb958d2b3102bf8b9ef72924b861e49251ecfcd3265552a223a3cb90604555aaa0f865571299e0cad11fd5f4c98162c61ab940295e91c2c3d6e1d28561dfa7e8b349a85766f4c1e25e7653223fe50054b414d381dcdd532ab4b70eda177f20d47418f895268a32a508b508a740ba77442bc9976a54c20407e3cebfeefa7abdb5c9bdc34b11dc7915fa60be1b047ce975128f9117a123387cf7b63bb77400f5ded9b21576465d0db961b355409919907a9181ef41bf6be59d69a2ba4e4a5a846ff25a6e57a50edefd764d65e8389a867e2bf960b8b8c5c6b44d2c55898f652f04c5f94b54856f137755684c79367a9642c266212a0af1ed0c0a4c7574d018684e1dc690528e2a553e34d67a998a6882c14c2760dea9730f1969885efeb207bc55626147be2393a5582875201af3c827ef55d2a1ebd3db956466a0dff8d2ed1e2aa02e6093884364cec053f81251ad94bb850104995cb9c3adac38367d32a035e21fc9c0d923ab57ca20fcd72fdfc1973b294f360f8312606a65516757b7efe241dce92a2a93e8d8a862a88f4186eae6f436068f17ddae913471750464c6311a718c397ced0b94e1404dcdee76cf8a5abf2984ade1098c209a92c266b8c417f599886c1e537f81a85e00881126984d8a090c12e39222d9a046a864317d043322a1e4062a0ae7350963115bb9addc37306c2cd52e6d5ad5a6b90b71ad02984e9198e990b68c84c0303b4adf53cbc441482837250890283526a3d51e3ce119035a82956c0ab3c6454f0fe71601e3e7ea6480357f12438a3974602359ce82ec28803ccf73845b18b3e1f25664d6be4e41d9fa54150444500a31741223e283caded26611256e15750df1ccec3ade1a12f7994401fc97ec4fe2a55ffcc1905b0bb76ea741d503cf1a4feb73323bac279d709dd6147ddee0a76b720414f94fef49c03aae0c3c05720dcd9241d85780227d330c7158d361b279ca54332e163db9ec4e362194fb6e6f9cb3ac9d110ba5e2e00d60e04010680bc0ebf8123d102fdea9d113b2ca1224db8fbfbbd98c18e69b3bfb5d63621846c423621646fb9774b0ca90b390c77c60e6a3c05427abc37a477f706e6f1224bba12261e6e3630f7d5b846222e5d3ede4ce34ad33512714c7ce96688635ed331915a1a2917694cbcdc361ef33152ee661969c7f81eef8b1ddffdd8b301c970f62e3d8ff0cb436f870671e8bfbc5c362ae62f7fb9d62898bfbc3e1da4bf5cfb8bdd686ec6c1db69537a4df4269bd0bbfb08bd4b42dfdd077dd7d96745219b65dc66fc6d318f969bf178e935d92001c7c0a4c75bdf0d79b33c7dbcf2e2909260cd36ae69ede5f132eed3115fd270bf481b7a388c1eed7b37f2088f4878f4d1698c957d1a1dc66ab6be1ba34b294fef43def76edcf76e24c1db761fdcdd6e121c2db5393ef418d1dfd6d574cce89de8dac03c1e66f47847f29a6c488fd74094c1a3936ead8ff7516fbca43e8d66766f7a6e3635914e0d6e402676ec18ce4e334b7d64af8fdbcb167ab936d9ebb3ba6ddd9c57e35e13b147a5f6362a3b9b49b80bdd5c3969c3c6b9ed366c4d9436937e9dbe3c66f7661ec3e6b11e2fa6ed269bd143f7310addf76ed427d91eba8feda1d05647bd65df2c1c03bf4d240a5d8ab26bb35d7ea3a16dbb06b65bdf8dd07d74a349a4f6ced2bfd8d0a5e5a8cda48b43c2d82d3806e6d15d53771fa2fbde0dd1b7fbde8dd19374dfeea3fbf62458dacd76766445364bbcd5d36fa67a6dbacb77dbe5a5dd35d9c877d74077ebbb412f6f7d37b627c16febaec986bbbc0f6ed36e5602637fa7f2ef49704dd734c45362774e0b2d9b87e8cfc8e351c65aa32d1744607afa9a4626916aad32dccd32989bb312c1fde853754e56b29295ac465d555d191c191c9997979288f4189897edf5dbe5e9c6711755ddab0d48e8f4dba5cd32587292939ce42417baf4be5797dc47366fa4d347ae5e4a5b5522e4ab6bea5e9dbe5a53f7d0ebb66dcf25cc715be86622703dbd99085c6d1c69443a776f48a7f74674ee35bd591c19ccbd92c1241177b8d9886e898b81797979a9e74eb997ca71947ba91ce588c01d8d17d9345566742c5856192c2f6fd881072cdf152c9f8fe50dfde8937ca8fe52745fe449d5cd3223993ee1c85422b0cc31775cd1c0150dcc916e2e8d6c09572fdccb1d9d645f9f46b7b35cd78946f5e59c25fdc5da9046448c44174786081c191c99244c925021220718ae8045260718ae90c54b138e8a644892baaebb19476b00e50eab28bab9baa1ee32bacb9b49b8e338cd661c1237b53aeb5667edb6d0a5c669a754bbdce943366bb5a338f49d3585aebde32ae642975ebb767aae3bb519074b8dd6aebb38244cebe9bda90fdd9bed1d0e097738245cbbadeb4ebbaed3e8b9775a376bd566d58064587b67b38b6cc6c1a289477f4d333a1dd94cea328946754333a8d490159db35b4d97228d8c8fce8d1efa8b79e6c9d5128ea3d1cd245cdd8c43d268a7757f5bd77136e3606e84aa23fbfac48d46a2cbb055fd75edde741d1e7d74330e09777fe76c4e82bb87349b717077b95756bb48b3b95e1c92d675d73a0ea77ad75deb320e499b41a54e9c7148198784b7bfed59f61e86c0c1ef33d2c8d4cbc20e5890041c12de00ccc20e5880049816498183da7c04a69d945c55550f01e12a4b65adefeadf0684a3f6e1d00b89547ad1468f8121713fe56abdf622baecea3920f4dbb957a187aea9bb36f4be3e71dfeebb7cb55d64331d3df4586de6beddaa12bdc2ed87eaf29a4297a6d0a929746de8dd2e9769b5b95e5447a387ee8df6fa9aa6951b555ad54ad748ac3130a4171289237194237134f498352c4275d2a67b8fcac9cbbd267236f44ac6236a242fc3ca9e91325471361f81b9bfd73432ce4dccbdba0c5b1343a2733667a473767492b5e1de856c3e026faf6ce822db75b671c8e66cb3f46d3c42e7ec16b2361bf7ca6688ab775567b31298bbaf4f1b4c5726d0ed249b8fc02491141d57f97af31158dedc9d7b4da4f4b55ef4f7a9beb3a49b4d5e79ab94f5a2daa7ede62478fb23d987b90d9e42adba3c7d3982b0bc0684e5614e7964a7547ec61b98cb5737cbf8db7ed01e93432f5ddefcf2de80c80b73534f2b6b7901dffde0ee31a7af33427d56a2f0c1f2dae9a395f6361b7a596d40ba57372351f1064c580349f0f6ead5e68aebf3c4d5f4e3e1ed9a48bf117d3be96e17d5edf43d6e0e089df4b8ddfa6aa50fa37717d97c04161d6e3fd4cb6b225dbe7a674da46fcf138be83591ee8f474fa2279d5ed2f6ed361f21b3e8d70f8843afe9cee6eaa33b630775bb0412fa766f4227dd9b9877af6991352271776973758d481cba35e6efdde16613739f8c6b2462edd5bb9b4b57be5c2311c3bcd22e8ccd4a60d9bd9e565b2f4f2bad5a008b22963fe4edd948c430372741a7a66d3cb24bdbf86d4022963f74578a6eae6e24d69c044b9b6e94ccb64b29a5ec027df61e6c93e1edd566efe2c623235d24fa6c9a19179d8a2a07842eaaa33b0a3d54c9bc3b67b56fa2739f614537575c3520093671bf91179dbbf2a24bd125658778bb37d9e96367b311f97ec0f0f6ccd6bfad765ec0d3d3d775a13e2b5138c1f4557473122c7a6773c5dd2b9b8f309dfb6b9a19afb84bbac9be9e21ddd7dd67d8d733dd6ba2c86e0062985736bffcdaee4d3d3dfddb6ceae96bfa474cf6ca8a1e82f9a813bdbae8d5b3bb3dc6de88aeec132909ae7ff572efece83036641b8f6c7eb94624a69ba5a7ad559be93590048bbed1b73de06113e9dc49dfece895ed44af361f81eb49b67b35baaf4ff5db397bd3d51ea28744f6557aec219b95c0d4d4fda67a7d776750a9269beaf5ddeb765f9f3aee662530bdf60771a6dd9c04d39bbda6330b2f83e0f7697311f8fdb2f908fcfe228d4c45cb5af2461adb60f887c411d848c4f005c3c7f4480652085884f023042d42009a32d01267deb446504b9554ebb5044b64c1c3829f153c59b0e09e8a0723902f357862f0ebba2e1ef4543ca052f1c0a7446304b55449b53e3102e804202770914196b5848b9fe8242727a705f1073f2b8670e567e73101d4332fc504975983e2929f2ef35f569808c3926b090e2ccbb27630ac8bc2d6c59230a4a057604551822bc827084bd04f909620a0c69a88c1eb1267deb4945cd775956009edd20a1644e122d3914cea6513a912f014a0044d66099c98a0962aa956aa647ab1c40b265e40e1c5132fa488e0e131762c13585ba8cc194c25595502cbb22ccba2e1c475029e2c93d9d9e20327b0f0220962485d6058599842c97158593402a4c096b544c9153768818e1352b00518aa70a5b77429018661188659c7300cc330279cf4cc8bd243c5c7aa71028b65e170c10c2ccbb292c0832d4b3611c4a402e30a185a8091058c2ec0d8f27caa99939393b37359966535b1a567de17338cda8418259d2f39e1c017dec9e1038636e79cd3c6963982c8c4896b0b2d4df40cb2481e6020418e0dbafc64a1ca17baecd0b0428a1e3831031cf3b22e486509152654a028e968e2a7cbfc4f3c8143fe5c060bdd4f97f94bf0d3657e5dd7250227b2c908e24b4c428f125290594b60b2042896f0640952aad3d8620b13181721e0c20926a69c81082226ae0abbc20c2e50c20b4280862a780108f00841161a989096b5c406f28ba02fba7421a70b3b5de061e2745a020aa4a832062ec470862ea8604b0a78a04e7c62d5755d1716527ae65151a5aac1e2ca65ec6459488b26e8959d2b3c579ae8f440c213769250c50f8fce172dd0f142e645143aa4c0b22c4b0b5c7ae66921686aa14be59253ba2502263eadaaab885255d1535541a5aac2a7aa024b55cd276a80a3a3c49937e592aa0b2ad5bca4d0441359662dc90123055278618a0e9830c3132eaca0c90b9e5c8c272ad8d9410d4600c50b5b50410b6660599675052a88e1c911a690022aa090b2b830f9820d64f0a8a0828a2a545c1180184cac20c30f97ebbaae2fb2d0c2093f10411678f085d4a5052d4850802c5874acc07eaacbbaaeebba7c829083af2ba44513b55449b53e01c68f939c9c9c11c41ffc7cbcf0f90922878b11b0f8d982142cb25005c322053766088304227862075e88020b569a48e18508a280f2892d82b054810b55a270e5075b9884008a2730007002d4c3a38529aad8e20a2fb8f2850d1b5861091aaca8411086608518c02008f2e090524a998628320d3d320d54641a7c641ab0c834fc48d94aaa2d9c44a1c216a45479c2e70a5754015bd609769cc880a2a832f189783d41c3120c3b43956cc967555555552db1c4124b2cb14425991ca16a427bc209682941c313270801175d5ce9e2043c5460721e9c7853f0b12ccb12c1a9aaaaaaf242939e794e6694da53c25ea0f21319a47cc26a227b727272a2e826f859e183309a28f9e932bf137660789e12767ae6f1347152a384285cb4c06ae204ef2871e64d014ca1091130b9accaca728025073f39d052b22cab892d84469013cf114bae5bc8071376faf47036521de7eee1822110f9fec4a2e62aa5517dc1a81987842f0972893450066f06be06302807b08b0f722cced0c94e117896d00443f80427181e4227ef063c47859aa1130c9f01e9e4e978189e460ba5bab450769eaa0e99344d7578c8d3a8d7597ac6420c79220d4cc1c3268d7aeff68f15869afb87e277c50ba2e01c811e162acc893431c39de81369a44f9c8187f1e775c19ff1dc3f62e0f71c7fe48f958678faa3082300c125587ec04e41d7588921d012255602594d3454d6cea97539517a3a1e7ecf3aece8e71cf0fba52dbd1bf143c01d7d653c1ca275e7d36182028e773e1d0fa7dee663c3f3dd88af692c874e6dceea70be128e22629db9b40de99475679ce9d424438d5db444311a15fb43449aeaf13f227df3ea0e5591d3a385132d54f450f901daf245159f288dcab18b9327529af4f450d1d353a52747f2e07e2a7b8e3e147beca227a3347be47225fa442c8d82018a416144319ae68501286ad1a867258a18b81f7f224da7fa14cba8342acb9dd84345acd2a84706dc56a260c1f4d9a55d1b8f2878c699192acddf64a7cfd9e9ed908f25f0687d8255a8ba09cb2ed3a83661b74763ac3a8e48a3d340da12dc9fb55130b87fcac143d3e8684054c0fd1e9ae681a14f6ad4b352032d70bf146960aa8f6595f5f1c383bad2a83706dc971b0f2ab5b8d17837669f487d6aeb935e28dac623eb4cd36ef48933fdb6b4e853bfa74f0f43d9794a7ba5fdbaa6f50c8f39834acd5edd06ab7daa1df2b1042a105ef2643d97d02793618ef5192d3b955478fa3a44ea93a9ff88a043058ecf3930bca96f8fc6d51f1142f004cbe76854c4f03c748182c1f04618699a199493930382147c0f8d7a566850e565c1309575244f7e403a984f4e4e4e4e6acab302050538bf2f3044c11ded830962581f3f4bac8f1f9e46e5fa46e51d30cc281a8d7a62c0f03bc01df132188681f30dd716f538e778c10f0b27cc80fbe68705c3bf18f2f183e19c0337f6d1849abed2042e6008736000b17c3fb8e1737dfd87e3cdf43be3b825dc36f0e5338e193aa8261f6c60f8e3871fcef09a6c8ee38fe3338ef7a93f73fc4f1377bccc49e2d3154c30852ed0c854e39a7e3f69f029c2151cc2cf070b1778c20bc347f36703d4012701aee71b72e0f7aee0f7d30e359c0eaa4ca3aac39f6e6854c691c153be0008bfa75045495841ed8600d350435334082a2645146ae602184695f859a9b202dc5bea859f952a3c381fc29faac84cc23f8002c7782bd333f0a22c548b9f151a80812bfcac00a109cec7f04f06de1b1c2aa02fd2f45feabdc21d7001539a60492d20ca0abaa4686b6d4d44faf1f12249808e4faa6f8d33f04952f475378430c6877139097e3838c14a4e4a8986993e99dc415ee898208b278230a65d328994586bd4d381f190f4514c7b9b8f594585ef17d1a7f87bfd5df135fd5e45f84827c414b3481cb1fd40379bea5a162678822d20952d620b6eeb0ed1a786170988e3370071bc50279e5e8da54f313d353710eef79646e5f9ecfde6d2a87e033d1df4fdaec2d3611d890ebf77235bcf3e2db510cfed87d76da1be2c489083b15bc71e9e70a74f7dccc2251632e953dfb21b80785ec8d369b48a5d41c9e524d86423b17589addb59aad4d7a74cc2d710443c1df12d0001544ffeb244fad4f1310355062a9c9f16dcf1ca5945eda0ec04554bcdb2ee944aca8d078c30cae394f0a9aca49495ecde78c4ee562204d9343ad7953c75dd29d68c1d54ebd5e1df3b9ffa8850862ff013033f2290e18b0d5ad042fc36cb089cabe394b0f5b66c85adab6d2ca89d1325084da20081e731f9e9b1a287a709ecd8cda4e7078b1f26504422d49d3ebd253f3d56f4ecf0449f2bf8c1735754187dfaf422162caac906c39b8de01186930aa510b67c8f91475a5725251629a525251629e5d5534a2c52ca3ab5ba91a4c452218e5565e915cfeeb7db7cd0c0af4f3524ba51be8f63433a128d4275d4719b46336c5ea3d168f46470f03460b0d0f7c2c03f5a48892277a4ce16209f2a118a2e6164f9e991d24b7a87cb962b3ed00984428c2e58cbcb8277c0010f79bc7b053f9f3ebd4b27120a31ba68c942454fe4894bbee082e5ca9376d2396274a1850a159009e409c2795afc884bd4137cf0c95029fbf496a87907fc1e371e38de8d2ef3a2661cf85d766f3ce0c5d1a7f76903002df3a2be579b0f88ca49307c9042ebc5be2ace6463617889e1cd4a6019d4a7f710170a27086a776c29df237e2d618c39a0f34f865e5afa69b30c9e9faf4e3c1b4b243b64200e1dc073fe3d1df2a1b8444582a785b84f2308ea3c8570368c517248c031b0c9a68a58de8c04bf77633e2b4d70c5d7a99451464e84918858741f0766a439c9c01d3d401c62bdb9748aa7b9c9f4880ee853fc29d2f4903d9fb013c64ed9afe0d898cb4a60242296f7c7c3d2a369663300b18705c74fad4fef3832261f2ab65eb175678feaca57a1e5c410e8eb2a2ef83d46a950f66c272412508d124208218451c247482275f05c1615ce1a85060d2ea518a56ab4352e8c0a4fe18b1db97ca3053f68bb07e1392254a8bdd7043ff862940a81f0ab562563c3ebe2e07bcc0a665b78e1458c7f5ca83a5332003112310d39b8ba92a7a6bcf7db785cf6f5a9f175dfbb71fdd979b3ccf17b6573e7e0ea71eb112d1f2a8eaf4ae4602351da5cc4831db9f76ebcbe6033a14f26c71e1c29ad973223e1c275f2e6aa0a55b5aaaea671dad4b63ab7cb5b49b356edb4923619aa5e8170a7afd742d78693d5d677b1aa9ad6bd8226aeb2262e64e2ae0d3dad5ee543f4d7abe9aaabf74684139be02aba1aa992e4a68db45a39ed75a455ae5695cd224f6472bbeeb0e22e27c27c30e9dc46b2ddcdb109ae3c91499f44b75a5170d5aaaaaa2a8e7bb5dc6b135cab4abbc6bde2c4265aa5691909174e8b4d324e6cd2012c1df841c205bfcf1ab14db5841533884daa25ac9001868f3df8d990e405569e6b1fd96c048f4eebe367e851c39c111c6fe62e7a4decba875eea5377ce8eb4ad7bedb2df8434fcb0c8661c4da32fd84b89925e3a9a3d6e40b86bb80b854ca3df84ae7d74b587b4a83db33934e2b4ee5567a3111c7abca6d1a36974ed79e29069747f3c6cda7e937df42dfbe8d99dd7349b8dc41cbaa571a2f8eadabda91fdd1b987351c355e34af4f25c0ce985bebcc4a885b473ef5e302dd4611a762e6e3cb0d3d165a35e3efa6c94864da3d143a57ab346aaf1f2a13b834a8d97b7c45d64e9abfc8b15fd263e74d18d0f3d86348cdd9ca42672dd1f86751a3682a5e88eb8cbb0353164bdbb0c06ab222e74f9d0e531ed30f62634ba194793db392bfa8badd53616d94cba5796b3d0b5d0e8db47d7ac2864b311dc7d646750a99cf6cdde843a9b71b46ab31238ebe4d52e8e964522f033c208b4c11636e0428336d8c2065bc4f4a8e7da338ebeade200e1bab25ac671512365c77a1e69746d3cb0510c898a0e330a9d86ac755a6d157adc805859eba994e76cf590cd242cfbc43df49a0ec96fef707380e8dca17cbd94a73e95d659eed5563e64dca5cd383f8464e8b9e290ddce6d21cbbdad87f6108e8d7604ee42bfa4e81910d1e5bda1970f591c92e84a6a43ef8b913023d2cd108f46a32a6b68c46d3cb0108769146e36218b555cbbcb5369ab1ef5e624b83ef4cacaeed17157f46ae96ba429d55235da806cbfd5b318766d36585685feb6d06b9a86ec8df6ec59f650559d6aadaf5eea7a33f777d14b37777faf899dc521e1d037ed31f42ccb6c17b25cf7b04de8a2bf6d7bb5dd2b3bba19c7fae87ab3d1349b1dd32ef72cd4b8ca3e43df7cd450f6f7ea4a926621c6687631ccc24f9b7bc0a9e44b93a2d06d1e267b59863d2b3d8b79f6f28c94c9c064bcbc90eecdcc1e5f82c9322ce605c3621e1ff3f2026373251fe34bf131d6c663c677cce3e5cd35baf4d8308f341e6f367d03126fcce8213ab2d569532a356ab98f7c8c32a9c66bea6e8fd1e9b95a6b965519f781fd45d3a226e3da607f39f642a31cd9f8b73980f42e5eee558c87892ff9803df46afb813bbda678fa9787ac293e7b482432c5db23fbcb4537e36091a6695556ab45530df731e3324623195f3eaae1daccb88ccf78b98c2c5e5e0332f48804fb78b91907d3ec661c1c8ad5f603e2f891c52e4336cb630156e5535d661cf8411e1965b4f90175b41947a545857fcfdd7df81ec4cf64933580fb67c259c523599737bba2621886e1f080b16311ab97f2a1b0e7281f65948f187661f127fc240efcaafbdea584a94a08533ed7776fa3927d82735ecfb3a53cbc9157ae7df3c472f609d5cff131460b4a1fc004e12804883f1c3bf429cb38785e97bdc121617a1c12a6170fea0dbdf62c84df15310843a64f71ca296fce383898de6688e945c2f398bd99d7e6337bb55f3693706f3c2e7addcf2b47a0021b00bf2b5534c13e5f0557afe8104be4456c10a797cd9103479f72f8a04e1f3bfc4ac1b3b721fd20dedb107822ef201f126f5021c6de8d79eb1a9e376fd7845824423ee4405824403c4896a33e2b3d50e0875fcf123c3f1b452fe9cd49b6f7db539f624dd718e2357d8cf654c1f3f4574c41059681df1553fc6031f07c86832fa8352dc432a7cecbd3384629a641ca5373fd89b904224d046a972a46a368d42ea615c69645b5ba5c2ba84f9708aa049ead20ec343e4fada0488304a624704df22f25814b09d89a45fdecf0bbe2c913f8f3d8c643ab9b0392fcc0693eccd36bf2619e9ede1b0e87a68c5ae67ced12697422cf14d4b332851632824239211d9ae784f8da458f1838be02451a988a726a6954b682ba68d42b038e875690e9d1f41a4ee336449147e0702be28047e06e5862f0e6d3a738c49a880cf18933f1439e2415c49a880479041e818b64c31267e2833c49ea6d3c826c54e24c9452930872219ec4901779ae3fd87b549cf1bc1bf15304d90e8e3430275eda6ca74f414c458810f94b09614d458208e22f452ffab679b3257d9a149b48d4f99cedc89c9c0c18a918cbc387838cdc2944228e21069e39188998017a2313c377a395c0f3dc69d47af321ce0bdf493edbc91f889b8d0422b56937d0b15fe4b4d7b4769188985e4ede6c27db89cf9634eaf5367b9b0f625f8ac27e307248442c9f2d69d4bcf1d94ea36a3c9ed22c35ac691ee2f921ac69de8c279531e999f86b49ad5a6efde9537c2c43a571b14b2bdf8d7969a65d36d386d8970a4287e82379c083b8488a3cc889d8217f5b117824403ee42219f21c229ec490c3203687882751e4fd6a13f25244fca27013d22f7222163e8821f0438e84062096efa2541ba750e32e699cc6cd12735c9f68bca6df0bbd3ebd3ed1987de20e371a6f148d9b9360ee6639146e43608a896e8c31c6182315e46f2bd2a920178912a920afe918a5d6f0de7abc600c0bc4146e43aa54906b05c599a04853a5e277b07d0dcf78e24cec22e3d9a8c821556aa3928d518554a9a8251342ed5c7f9e0e8825c6b6abdd9f70f429e6d8883ce0a6220dc4fb2f556d4480dc54043ec883dc24841cfea56ae2651f1e625faa887da91a6c108eb761b5e078d34605c75b9be76dae98088b04a67ef8fb14a326c4be1410f6a5e096a34ff1d7abbd6e3ea2faf5d0e731232db71ed5eb453fa2c75fa257318a54092286902a44c2102234248c466511158dca5f040951bb14e9191224a851190a105d1a95a108f9d513c4e71571115169548642e4d71505d51f1f8faf597a3cbe6ae1f1f8da450f8faf40f6f175cb1f5fb9d8787cfda286c787721a9505f01d8f0fe9342a07e03a761a9511f051ce9246e51c1fe9f429f2308049aa0986a2c649f6048b32a55c8f0ff9342aa34ef3f8d09546e51d7e80c787b0e8f0f8901606787ce867018f0f6551c0e3435a12f0f850173c3c3e04b43d3eb4457b7c880b7d7ce80b99d3a88ce339e8342a17e038ecdc5872c3e3453c8dcaa3c78b98342a931e2f6ad2a82c82a25119e6f122278dca335ee3f1a2278dca324ee3f1a2288dcaa59b1e2f92d2a81c739f46e5019c008f175d69543e7de6f1222c8dca3207c0e3455a342adfdb8044a620f078d18fc83e4c6d585bc4a7cd28706a37226eb235ec912b02bf7d913f47911df7c8b4e143eb71f32cb2fde61eb75164c74df7482d92c3b4558016790d455c88ab3325d7b88e7b64e6ed0840008f9b6dfc3dd480807ba45e678a8d9b755c3d6eeee108b847e68e9b11308becd0711b456cd8b8d9be8622366ab8ce941e6e8652e43b84404091e710020139ae3345c7cd36cec3de5cc37bf82b20c4368530d1ec5688df239a10f65084b8a9029b10a715d8a1e33a53b29bed7dcc9bff1ec72c16c400d9749a7b6406d9ae338501415237639f41b259230803be0531406a7b3601ece6ec33c82f0a6043aece944cf303dc2333d7b80e3acc6335d77580eb708fd421d799326fa6f9758f5cf3c2d7e11e990cb8598719a486e633c89c37d35f41e6759d29f86628415e3344872037c03d527530c03cbe5e736c02f40037d33c35a4c61c7200d33624bb991e1b9261d79942733394213fc0046a0cb969023407b8ce94ede6ec0ca037634f5db39a90ab3325ffc8373c877b640aa9719d290b50c0cdda46731072c3cd36af21e40605d4f82601ede6ed54c825111a1057674a5e40c661e690809be9351ea4cce1e61c7e0387eb4ca137f370fdf88d7b64dadc7c630a49000fa742289542a8bcce941f374311f204007143c86f00e2c60dd799c2c3cdf40990e7e19a041670050091c3044201406c379bae01b169d799b2809ba1007105482007208e830472c0e13a536adcbc7d01376b57c0690c41c4867b64ce1f04a0612252c3d40002dc2395880f3f6adc2317beb9c64d44ced923178612011a415c9d29d926cf1c00f7c824000068c0701c01666e26c001708fd420664c37bf5c0d380c111beec33d3289c0bcdc44c464e28898b8eb4c69c0cd50881c0041d840e4304100c086eb4c79b9d9f417ee30a7718f5c18ca10249b89a104418019c48fd14941d4b899741af788866f0874a6d4a0719d2936374309e23f8620c0cd50769e0ae233f748c521d099428099eb4c19dd5ce323d2cd344e7a4df4d183470f0c48e19a052820013cecb002b80e1b8023c0ca3c87bda7b1a803d81d600a02d7c1cadc00f63e078b03075b804e41e037accc6fb0f704b00398b12724310581ab33450057d4a54f31005724469fe20160652e94216e83bd43dc91b5337e2be3366ce935d898d7b0334ec3cab8c996ced9986f76c6352be3d4962e6dcc333be38ab4b48c2beaa24b57046463ae684b9fe285b0435ec406791076c889d82007c20eb9222e71265e880d7245411986b1d61340608430f08bbd8eb003051d60928d2c0001162fe091b59cb022080bf86d36cf078baee8a74f218be3e11c9d45423e9399f5d1984e287b463ce7bcf07c4d9c48700057cf49261217aebe030e6a4f2f8bfd6d13eb6adeeaa29f4689b434ea7abca80b1150a3b0c78bb65cc4a551f4f1a22f1aa53d5e14d4a8edf1a2301ac53d5ed425d2bc547c1ee5e01cfc70ae3fb62ee19de2a7ad5bbc533c66eb135e95c2ab5578a778cd562cbc53fc66eb16de299eb3b50beff4c33dec5d4ea8c739e3f9c9f0bb62065fe09c39a191331e1c5f6d3cae5bba420dedf4291e88ad3f7126fe01b66a8933f13fd80a1467e21d606b500d6aae3fa73e5d515469af2895c3ef8a2886807305c2b1fee0789820fc6c50e225894d33400bfa64e25fb4d105101ee08b2e6472f4c195058cc8251cad18234ea9883e557f5895b8d3a88c53c256d469a0ee06ea06ea06ca2f02626a84117dd2da271ad1289c128e2fa24fd569b4465451e3f303f261813e558fd7883e55fd1367aacf7a1a7a2e899e2b577f66508f5fc589423797609338b3f188ada5513f9106a6aa432a91a67dae6c063586891a9fdb07579f813d3710d4f26e54874d220da41267aa6737cf7973e56eae1436c1d5312baa7c6e205c3d5e58bd81b668afde411d467769d4f6ea31a751f4d5e966b36b36b3a87df8ca309b2110aeaee02adeed0635bfa023e29cb5141484ab5475238e63075cfdbc2b32c082330fb8bac5a456183f99eade441f3a851656a654c11d7e56a4f8e027a219e81cfc9e9d3efbf085e59166fe82a54863fd996d7c15a1e612ce7474b0799df824e22feb9adeaf274965d7f4e68960d7f46e7d7e9e5e22f19a84589f37bd4bc4fa3411a97ebdfa9524959d4efb52977d291ab5ab08751b0253d79f6d4c616c1839d3bb11884dda89c463df0ef1b4a6f724a6d027813d3e8929db25223f9f443cf6cb9ade35695708f67822d8e335bda7e825322f9f84bca6774b7dcafe3893fda5e6b127d5447ffda54cf49a8460bf5e04fb75939842247e3e0979ec45e6af5f3789d47b2ef98018caf548733d7bf61769b03f99ecdee0c8e28b1f295a1a95210f86cffd93a551f0065d740ac62d5d70ee2e303c0fb664b0720327d806fcacd4200bbec24a0f36007e570ce1096ce5063938c79f463d2b369082e163968e408d7a569ee4e4b805c3ff60788ab9a0e698fbe707e6c01d0c0316853f88419f4ca63f8d7a89394f47fc8c1dd49883fbaf7f8650a17c314727c6186305ab18638c322a8940883da8f0119333be28a5941909acf767e5bbf15e55a44a1a91649d524a29b327e8ab9ea59412f6ebdaa727a594b351f94fcefa7444d8332a29658c0d9fe4e2a59412c332ce649361f98eb77e2161ec259d2d815509a294557551b9aeebba3225175da25db1b2ae19e392898d403e1def30c29865b4aaaaa955120e89d24ab32e11685af5adaaaa27e39c96655d4bb6864f4acebaefddb05ed3d69d1b17a312aecb86409f4c7e40b8b9ee88650c1267fa3856416965ad0ad3d62aad9296872d470e995d307252b3287eaf8934d80d1267825897768a337dccbe3873272abce4d3013f371e970c494ead927048a4eed896011ef1d7b51969b0bf4a2ad1c06c698352e3cc0e8d4486e893d41a5a885b892bcb361ed7dfab95754d28218ef60dd1a7be2c91de6c6e236e4c43d60df2c44fec2725575df86e541d0f39ad6a94cc280674b5d68412254a94285112a392c803b903c48183871c39604799f8df703a35a94f35571aa59226a1d56665553142e9d330f658efbdf7de7befbd6cc9ecd9a8fc0edf7bef5d5c4b2e74925a6af58fe671a67fea7ece816be24cdf47c61e7ef4a96b80a8accc290f21eddfa97a1511381e964a8fc71104f28a3196aa378d35af38533dc618ab28658cefbd27ad12132afc83afb8e116860a9fb49333d9e078f3056613e8c374c2ab5b56524a4c638c96d656e2f750f1b9658c6d21eeee19218ef13d9aead93c718c35ceccb613bf4753bdfbbdbb5b099824f604e3be1c506c6247ae69554f360abe53f501895fec1a69b01006e09b91df7cb870c4b03c82fbb4c3320c4628a5ccfa897af8bd18c51038796de32165a37c9005eed38d474f1e700c3d79a2c3f1391a259f92cf2c96fde9031ae0fed302f7b18d47cf2560126070a68163155070b402c7cf2ab8e048a507387ebebe300c8109395ba802a80a1410042f6042e3e553ad279ca4203c8e48d32968041f2af0e4a4e083449af7033f44a320863930ccc949e513cec756c07dd9bf361e7da5e107271c6f4914f4c0098c038eafbabb3b0058780116b2a002840523a41ae6e06e11eeeeeeeeac91b8c099c6159c657430058e97f1330438beeee00938be44050e70fc4380a3151e14214a1354f8fcca05c7cbd84390a70362f8380323cd49ca123298800b236459928a63e0781c8d8adfa151211c6fc6795a30961a23bc020300a71e9084dc0f1e53478fe699e6552ba9d4a82bcbe07cddda27781c195cd22981ac02170b0527883b95145d4ba49213f9ea0d20507c91a6a6b286af67250755e0eb7249aabaf5e15cb115b054b504049e3a2de9072bc0b95e8d4d218006aa16e767a1d2c0cfca13190c2108ed841a839f952759b278e285096a093f2b52e438a924fcac48d1e4a7bee067450a2955486145107cc08082a354b7e03e8d46c1478428c4c037340a961a95356c5f1a705f833af4c9e4ac075ba73c553ee1a162973ec533bc93f52cbbc0d665101ecd110f95e5161209d8fa7b345962f174c448279186bb751925d26cb72e7b228d76eb92cad3e18317cfb0035bb772bc53a4913ca5fa6e9eb4469aeeef94b3dd7d71268b766e5a1452675f2ab39bf623ce4c88399b036b259c250fa935ce66b726ce58efec4b6df6a5a0edea4b493b23a5591d985232533a4acebd1cac6b5007ebb30f605df258b7ac37c1d669d4384bdf8cf5cd8ede8c75cd9ade8c75686d7837ac472bd3a754666152d2ead49c9c1c28524a4e291d253595bd1cac4fa883f51c50ea4bc9e7d8257689344374c196b446c419eb13ce7999018a971f33e8549c254f8d30480ace920ae5310310e605bb04e568913b5cb075eba1410c9ca50eb6ce80b35c6223317c4d1fd128e9a309391c0eba119146defa1091e61467ac5b8f57cba94f5616359fb015b1eb260c9b973c8d6ad22819d8baf4d1a2691e129c58975034ea59c141a3b29482adbf2ca960eb92490fb6e4156c65e9045bc7e695a351791ed1a89c035bb76ea451cf0c3f44c9a44f966cd227eb92a74fd62f32d42c79701369fdc958f726ebc1cf0625ac24b2b517501f68c1aeb6446a52730777740ecef31d5ede52b5524949e00c5f598755c3f15e526af774c0f70e6825ed734195a2d774e8d9319b61d84f183bc5fe6a3a84d99c750f65efaacc76b6daee524b7daae0c5feaa7ba066c79edf17b83a4ea3f203c2ecfb543db3a73254eed98bb0003605178c5d740ab550a83bedac9545edfefad469a19b47af7dc26e09c80deac359c5a4b70649efcde6225d46d878d05f4778a3320cbec861d835617fd8d40362ec8d21ae698d5accd6445a69989d138742a1d7a7e3e1d0ad215bd2410d55d543d8e5d3b11d7b6f3c304a3b7b833d748a5909b5901575d7e443f7ec3eba3bcad8370071f7faac3b56fb54bdd4a78a9e620fc2c86118b5998541aad7a05e5154996a3601075d601bf0bb628a2de057561aa1de5487cf385a75f34d3c3cbc37d7f3ac8ce0eb90bb385a0fec17bdd86521c4215bb8fa8338649981f76e640c577fef06bc856112b3d62b6c7bc799badba371a7e1fe8fbe4ca364d0bc543f08913e114d039bf8b9e10aeee3e0a1df69dcdb6c24dc015fdd823bac579f70c79bd7b0a669d6ea41d5eeeb9306a5deb2a6edd61f86d6b4dd1ef05948c431c6b0ac9ab8b5d67dea6ff77d7a357d395125dc7ce0eab767d6c41d622e3371b7be14a967fad7927abaef137dfe0ff056b659922df5a961e42ad6844a6f66312b210ed52d6b411caa4a93af2c86d9875b0c353f2eb81fa7f5b75516969594f2f15e52ea0bdac2a0dd5bf07b04ea2c5ab2c8cabaa69c33369ccfba2666696f6219d5a4a6c586dad4decba8b65de124c7c5869c4fa6bda7bd0d86f1ba0a87c67154e0f7aee7097eaf557b367714fc1eea27222912c586a276d2a7f72e61b44ee784d1258c202c57b2fc5cc172c5073e710299c02690a7c3087a5bb8e0f76a4b113b747c3e78871c1876c728656549cb8a0d2dd8314a5955d625af2b36bc646559d7352796c92c8b0db36b62589651aa6d72db62c32da39ab66d1cd755596b6c58370d721aec3a0dd6aac1504883a2911c8d62c391487b2f2fda8381d15e4c49964ab16129a48946230d5a522569d0bed0170d5a98cd07c42f46c6c4c486319333d960181e62783312dc2f9333d96058802e50fae0a3acac9e1f2c20926805944a849ae79cd995044a830a3b0b2879f4ad2c786521e1bce69c5403833e99bcc987c516a6801f165bd062aa8e610bbf88df294f95c2a3b1a8c4999fa723c6068ebfba783ae08f18b0740147cb070b502a0d6abe7eb2f4295e5a70ec409fc352fbd695055e5d60d81dfbd002b2b65c3ba8976f117e57cc6004385f4eac20abcb844c3650af267d8a87f732c3c573e55c3ad5fbb1ba72da5e3b96965abd7f6ffa978e05d4a7dec9d74e4e9f62be7270fc9573edc01d547837e2a1b536a953e52f1e2a306954b680ae268dcad61738de070971e8c36b411cfa0f47fc7020051b003f2b5374c1417db2ba34aaafd5a54f70c7bbacd5c50abaac30b4b6d908ee9386fbfd6905e168f8ba561729355b413ef42d2e105b5f34aa1f7f75c6e1416a9bd537fd69c303ae6eee6f0026c1d51b8a3ec5eb89bda25c52ae2697146abe782c200b880b159e8e1779a4d5fa14b35c5a7e2c2a38fe3243bdb4fc583d91260b8a333c4f4793464126386b385f3f39f2e078682f2d2678a86b09efc4e4a1ae2cef147b54dcf7e252f3c5932f9e8b07f7eb21f1949f586ae9538c3bef46cc730bea5a0084fbc207217c1056f1c52a56b18a31c63fec3df80a4208e1ad2a7bfd4d29e5d48e30d228ecef1c68d4fc3b1298d334d95f668df40cfc51656f0fb346e6117deaff50e1d6fd5c91f4a95fd92338d027237deacf2240a0d995171dbb3bf6ebb62af95e9c81afac7cef067cf6443f7ba2bee7d8900a7436eabd9f6aa579347d09656cfb6212a844773b41dfa3917f9f8fa62bed8abbc3379d23cec0fc7c7094417dcf13ce46f5cdf0e10795e824b0a113a2943732ee70dd80e167a34e7d82f2bdf79ecc18eabb91fa4834de39e37abfe46fae3bfbf45a3ebe6b5ca8acac6b6233e3784090c70706b593feb1ae79651c0f08f2f804b51359599775593cd027485656159e6ca824ea5809343d0c3aa7680632020000331600202814108905a3691ee869e90314000f85a2545e3e168cc21cc75114c4300c22c0186000208610030042c8a05c057d92e0251aab2e201cb7894a8fe3abd1fe04830e81c64c5ab67a6aecfc6800b8ef5ea5897e1c86929d69912d088fd083b9674fb82969ad7fc69b446d4177d46d151741d44fc3ba6261e21ce51e593454c17a0f95201049a615f1d7cd7417907c7c92a0057868d3e4086a267f4c7120bd653f644c7070a8d6c6e3e38633f452ed2ee4d63ad77d8baa2390c005af417c9da9f9feecb1e42f11bc26227184cfe2f096517c2bb0598429ce7c49495d270ff604add1c28935418e1093dfd412838656a0cc136b5e1d31a68141d79f2abf774162ff1a6905a07a9a956f5c9b40469d2586027e029e17bbb30ae0cf02a842fb9d37316542f98aa388012419a13187820631c17217ca2b6b1df4b9bdc8fecf620a81b24b573c29d0cdfaf6c87fbbbbf49cbb330c0a799f4710941bc84e906a2b4775bb560903f8932a00fdee69bc7524d5b1f642df6f1c80c42fd1cd73d14576a9a73ecaa989c8952943e869d45d5a9213baa1b231867601d16ab9c7b17bde9d6fdcbf865b26bce20d95c335dbc8a73d59c9a6f5e57e8e0c33e77d08691791d8f8305cf6991a12fa3864420091fc3f22b5972e42c23e6b8454b258cfc69b744038e8920a8c9551fa9f689fe97e5a266619dc4435744d134368ef2142cad4e96bc0558c57a22c40cbad38f4cd6aca3caf0e9fc52a113433f4afdc0bf186218383ead37d901045e993115ac3f9ec4d1698c2c7648811a347422fba99eca52b428204e07707be12e06b30eb83bfc39f3e5dbcbdbba7885f34bde4a7a49a3f1a760a04e9523f05afcbc4d788c4e3c4e31f920ed869ab8c57e8c137617703f8f5ae12c33bd50c7e0bac2e5a3cc2003de69fc4477a5403f1b9e8fac767780084bf04e47789106bb11232d4b3b0070c14fa21a048c2ece754ac720afc67524f015968ecd44948fe8770fa53eb8e0bda9ec1e88eb27ea6f145b45c63abdd92b6c247ff59d2cdd4f60202c6620eaf00acf179fbf4d350ac359f6f7a440d95e8458d2fa59cae9e98f85a22a6097655c89d97d39ca240ccdfa6725629d1d8c2f9a716f631b9f07c1e9a779ecd2b6ba952178385836d0d2e7f30e045aab02b16f03eeef3979c468adc8b02e30001c392996cb3608fb300375d903973e64455e58144b02614643ace91c01090406c6e9a99a88f0f4c1f7f21e6109112f0e972a14fb23ba23a31f2493c30866f9d18f7a27165329ebd12a9cb219bbcd252e7104c5d084a99466069ca71baceff2014de4b7eb4d77074e0e6ad8106d3cd4104360f6cb762b0478fc34bc1413aabdd1ee5caeac233305fc40d56205e6a7bf07eaa7f68793f2f69446f4b6e24512e21c1973061c4edf98aef7a38f4481f02efa139aefe7bb88f200f2e02125f44cce1b466ddcd82b15b00c358cb99acae396f4c8dddb0bbdedae93f10aa01ea761e1beae7fedb14f4443ccc897b2ae2de42d87e3fdf7b0d407b90700f540cb198e2e104be0f8e20a5ae0ed75a4f6a52986296010e8c02b236772a38d002044d542f35bf3dd6951b0cda9d335a701d52133e5e1dee75e93e0370009f5a80076de21bab4b437c1beab452a46e28a276b0e742a67561cc721b538b589320250aa6dd816a6a8d019957ee435a4451c4aebdb8181c9e88a22ed94ac86aaa24966ab69c234c60c561200d3361e89c5d688a51eb2415490a129d5201d50557f2a43ee1aacfa8c0ca6afde5665883a774597f338accdd8573d5e66f8490dc049b5cfb55ce6f8aa7597c166d03f9668b8375e0593e6c84e69fb3b6d8529e052dad4dcb151fc290f3b018d2af55af1b31d8de1b299db8dc8aadcde9276e4623cd41ea04f61d136253b1b1bfc55da2385f1af7f80e78ec6b3641e7cac99315ced8bb285e99032cc8a5368dfe30cf00d58e31b5b944396307636d0fb153c795466f3e555e59c56d6223dbee42a9b1254c5fdbb4ebf286d7c98ac620c7629d1fe48aa027147a1b19f1a1be6300aa0ac886d417dadb92eeb689d6732415bb5a1e7d3c6ebbff8408668f79ff1a3fd8373edce7e30b2266f78fd479156b8739810469b463391f9805df5516afb1f828e5121222587286c9eb160af1889ac37669e12a6bc4edebe5016ddd088a3de58f6f801f71f083cc4749d0bed698e8fa559230e9d239c3602fad2c187d98803fad5b0e4ff7c990ffcb4e5dd01eabd39fb7313031157027db47e84d3ffe83fe81584953674731391eb6e55a3e11d48daebe6e5768caa71de4232fc9ea1a8c6f2b07d47853b5c411e3e90eabe002396ec1a214c036278d851d4913642e1bdad8c17dc975eac699c29c4691e22bca05422d9d303a65005c5d76ca146939b465f5596933a29d7e606ef217b139462acd0abda1f521fdc0c6e6d718f7a7d7fd6878a61216ce547c5fe7e62719daf81cc685d084b708801dc325edb47c78a3d7f426d28b72ee09d42dfe3674703412847ed9a5476ce640029125713ad294357a29c5b740dea57c7a4631976ef553239b5c138ed1282d09dc3ef4b267311a807b3643a7921b6e2a58b99f3f897bdfaece0d950a796358a9f956528848f239fb9192c545244ac49618744c8143ab5d2b438b0cc70d48cb3292e4e383fda752448c8f821538cfd53015e529d2dc7bbf612faaf531fa8411c4e4ccb51fc840004a584c65daf46082031d4a196b70868edc6001b383f662007380950ce7c3b5ffbe45bee9b1188bf1ae9df07490711d04f976e45cd0679aebc0fad95391ca1fc724a50a0f59e3f11b0f44b45946833e0e856680661bc3bf4d7cb87c4bea3432ef66f274166f7c3afa48d50104020be211a52a0505e7a471bdaba494bd15ceda2f9d6e51be5e1f0bc38ec2c4fe55c5ecff003c6886e1ab0a0cffe31849a45a92b19fe3712d1362cfd5b4be56b7d9a8f821124b9c49acd9509952b35dc989439bcb7adb389c4297fc1d5c072ecf77e2f6bff342b5d2c1b610c3986382ad5000debd829d9875fddce82d180175919ab855ccca0f6cb7ab0ed7947e15844ed55bce05b35d29f9546426e26a97750ce667055a288560106f697846876cf0c64cf52f3ec6048d27fa3328202468c127e55856d6348b332c35a1be4804b5dd4461f98c5b54da0b8b5cb69854dc50532f9202ca3371631e09e23fc08268b299aa50dc8ea70468f00b4e2ed24479485e907404879e108ecfe8c2bcd47bff56c9b5bf23a8e3b64ef6644c175c5c4382a9d6e52d6690f2bf894fb21452e4cb87324c1d1ad748f1dd7b52179ec08daccd90a69a95b730535bc9133bb555310ea301e34c96e015441621ac4eb260edbd1f180c9d6c4ff6c831b0edf69618112de981dd923146388a01f70f277794dcb8fe36d2e91c9faf4cab2d19ece045e87887e0ff1cf0246fc83d8e17a98c38441fedeac76b3c57ca29af139e7992c4733eade6267d638716e5231768b10664f8433b3490ed5cf8c7e6afdbe91716106f7e108158bd5ade7182b39cd6c60c564d0065d3d8127e3993571a2acbf5fd386707c96fc9ab7f3eccc5e34bc9883a7e673f67788260ba4a065f3f33379e67cf3f046bf16ad3ee873582acd35c1b03e5ad20a906b92ff1bcd957847b720d0ce91d36d25ba2c8c6a2f48d552a9e9df326efe6f1eb668f6f991b86b29bf0b650867900ea25acaae41f3292bb767e8e754a94ba9bb34b3e0c271a0186d8d76d45dc5996b384aa8a45d8bc5f8ec659f9c109b4ccd10e3001f250a3554a616b196b754d15b1aaa8a5b509b39c71a02fa1747237060771b619bf04403730424c089efbe818ad2b2f207dcabd2de2b11b83faedde8ed1ed97e98974d030892ced1527fd6a8d5e3fbd0988844cea940d903eda07b17d123201dfa0fafd356682753324e6314c0b437b2e95485f1c681c78712776ae1c6cb7a881c893122219d3b744a0c68478697c82f9c12a4fa6bff2cca53a9f29cd9fb2e57e1b523fc3941107205f4a1aa263dcd2f820d747ccb6fd4b19edd33dbcf6cd08cb8da990aa6dea3bb64c10f0b717e7273bc139faed24a314753021c157abf45ed668019ef2b8a2dff13944f1d7428193249999b1679a2e99d25955e3ac42052a599a4dfe4ac53a4c9fd7ed776059f292da9b1e00005823c537000e9cc5ee02fb71529025c1c32f969c3af97a7744b52bea7701a05f4c585d1e353e4ddc96687cc1a0cc2db6be3083cdcf0cc8c32013e4eb30ee46359119b99d40cb9f01d44d5efac90d34ab4b8fe42f7ad652ab75ffd4f85dc418d4c87bbcc0989f2632cd869e14007a00cdd165f707440a249488cada51485169580a635a220e85d47caa3b9f9253284daa360e9d6226360d39a0ac095e865145b7c7a90b8940014dcc1dbf17371bbb92b439d7efd533db8259368325c4766f33393749f21cccf31a4c67a4c230ebbf3cbf4052859751e0106b7bd25b0ed70eef3279375c8a56d2a67c5eba709f1696692078bb921a85d63cae5caea9f66e049b011c356a22597af2f1152ec3411a3c229b3e23ff80b6c17527416591cd6308a2625348fd8841dc625edb0535b97c73fb8b74709f7ce2d5c527b0c20ae1a62f4d0e2bb3d3016a43ac323deec8f30e4e9fd78324bfe9a760cce024c10d06eeb49ef04d2ec8fa64c0584846904c6b63a20eccb1d1ea929370f89d2cba27638308c144d7c411a65990381a53d0e72cc503b190e98bd16b4a18cadcf2980cf456728ebec4282780543dc2e2b8127101a748329b2ede109a1c2f1801c4cc1fe5228e37cc26bd3b61328409e257a30e2cee8b2bb61f43ce8830640f8cd4f771b86e4ef1d83e303d8c369a77a94c1771953bf8822331abee17860bb67ea31cb0e96a5f1ad04ca4ae1cde24695d22c59be60fae57921c937c2015402a9f9dc8a9e856cb50e97fc1eca66d387266bed624aaf1921872428712e55425400becb19b369c8ab323cda3a59ea1221e7c980050874e24b446bd09e54eb91700337d9ddee0934cd3b7b78f3e44e8ff3952106adce2ea553537ac722e020c2c5683d1a7d29ec7125ab91d64d0596c9156cd1ca63d03b6df4b7e8fa902ba2c221eda1937f31cf552bbc7991b99340a6fae8d49a230eeff80b43f747798ddf2e395943f96efec87f8a2139322539073792930181f7335fc5a0a6938f0b54a65b2514eecb75cb9eb5629b11b2dbf1e5a8fc9e33defc2d417de6cd83f203cb7a969cff5cef351dc76e9bc02902dd2fb5d13600da2f530e1fac3d289feae69d54b4e81167ae01ec8b1ffff4b707a6a496d9fb5f3fd04bcb6791a93610fa16ce97ec3d74b820e69b25aca111f8f9933c3d1128e01b54b2d504b4420ff2a2ed8ab5c154e13a97482e283e78e33caa0856ccad2c61a5c67754e8bee8dd2c623a46bac75714f5c4ee0a2714911a1f9e21b02f83213d0aa92a7972dba1c5060798d43e6bc0fd50188c628da077bb94652f3cec5904a802decede950f03eb75687e23ae2b97975c1eeaf4cfe2bd2ca3710c6242cfec5cb950a3cfb66c0f2f2f911bdb6d385c0d485686d911ec1c900e6b9eda5891d9d1cb7d86f631c04b4cf0d37ffb87df70e935b00e89a15550edb547e353e42bac208ca7e3792ef18bfd3a39e953369b871c1e2f766e02c299b1d7cf2ede650b70c04a2b7588563b3edf79613605e0c238103f919955e0bde55ea0242b5eaaf28d67172e2bc14f68dea31b16ec84e5a07111382aee731641758684583897bfbd44321ed4e67e7bbe6effe1d1b1dffc4b903d75bb26eb7b3d93dc78aca402a83913cd3cca1ef297a8713dbec2a32456a28a56159de43b45180e5aaf22b5e22952704828a7788a781187f89c7c8fd412a34c1de9d152322cfbd4503bd2e72f0ca5c35a1acc3483c5dd182d902502dc9b19f3f293a688356df8cd91718d39d56918c0c3704c18c8aea382ab5daf5feca32371602683a19a7153bbbd2babfb203c37a9e84da2feb68abe9c92c8a865d0a27ce33e37c0b2ca892f8e5fc047e39c4d65033d00c6895d73b1bd2d920b189ac078f38f3ea3fc41b3f3c9e8062b8021208060a17e062fe5d1b1f3c5677c8d97fad9a4faeb4415fac9eb8471289f8fa6cc17fc1edfc4ee9dae2fab50f07cb1b1adc9da76e47cd4ace9c160e01e956c5b569e3186c2ba84a2b8bc95c582d8acc16ae7fdcb7eca747dc3139f5d51dd60b2e2a6a05756da550f9d26d268a9a9b7408864558acd8d716142b67a972f6b63660008404b0b925a05721a6a32d0021111b0e01723de10abaa245b2999d5edde9de64850357957f45f0588161d75953b53478a8e2222b85b4b60b718c4643cd896b988c7b4257bd06d2d97eb723f1a14115f1af929e5b7d9f9deb2f3c6d558711c5a919b34f2e560c80c40d43102570c8e630b12c1c275dbc0b9d3cd6e61788c7c86d32a36f9a8cc9674fa0aa1c329a52e60f89edf6c107c221dfb11bc5e4e553a583d5fd852d56c8b5865b3e771559aa858ccafecdfd025c39f54643e55b43d09ab1462ed920ce0da33a1133346d74396076bab5c0d23580dc746ea619c908949d3abfb9aa45378c47a1865cac459b871962bbe4bc1f742a53f537349fed21879c3c6b0ab35c8836caaa82d53a2dcb12a02f5c650286c63014a0859a475d364172d4897bd5c94ebbedbb74a2a9595d64f2489f0145fd55807d780a22a405159caf58d4cd2400d5c770162b1c8557f41c6604b1d21b1cafe53a1385ad4961b4c4d13be1b663a278a91dd5cfa9781542a132489ac4d7217e96730766a2c89ae4aa90b4bf3417e6246d6904d3ea19e758e64346f51d8511bc5a979a83a76086c1551420e7a906ad83e695d16d977507df37ec11e2996739b9b047a03267a96df7d6b44b91622d6ffc8ddea4e55cf852cc0f8e7963b710dc25a72282f4cae6909d80e3d247c18801dacbe7e5bbfa56f5f312eda1a32f9f537620ec5300769b86030b340ebe4452e63107074c15e505148d4f53d6599c56a283de2b4edcc0295c2eb21808a97f89b104504bd1f2334a6bf515c051e9cbd03599bad5930e0004141f98e59232058f837113a28eeb28c9e97fc5c8610e5823ec942894043636202d52ff07d7131f0d65d7759a06e8bc76e71f81228ba391e355e0e54ce66c4614f14e38d2d8519dbf6c39ad749d3595e12466fa82451d084200a46db44a9870458a8c27edde6ff626e47446518fa43a87ac2d278541c53e095914f9e5d39c2da0e1246229890dbeb9ba6af63a0afee438d99461b3e4149eb6abc4d7107d7c25993e8448cb9ae2c6a6565e433f5b6dcc0926a4253383f48e2cb6f8bc1df3b4b2153aa3cc46ab4217318421abe1729c930202f57c9b99877462866d538058cc05ec9e542359f310f6533671ee60a2a16922d84b21e20c23189517c434d0a204b3290c5865b9a3cb74a2afc3940a866b3c6e1f6c83d4cd926a7924ae8754d725f8d4ceffd00cf30c6ccc0b5425f4f65a5064b3066e2b691c0fafcb0ec2cd7f3d38900cb0ad27e1524d1b89af4ce3d9821817e0e69a1fb15fcb2f15e19bc0ded7ae00ae93fca728cb16f0b9733ae3f427bff6f02d6527216fc19f1869e036a480e86a09c3d649b236f1b599317d04702f47f063166cf291588f91f8e42742b1d85442abc8624957d09ee3f9c829f37f725b86ad870e90e9e79a1545e6a0f43a366c1a901a530063492c211f889217d2c2e77025c69e619e28192175be12732c4ea8e09ee152e7e5b7cb1a302303341c93dc4f80db9526dad316cd1acc6d8969daaf6d56432b94aa5a8284b50e3bccb957370f2d30f311845eb314c96d75cbd1fe6266f9a80c455f07575df5502f8ea182f2135e1db8b3c3825fdd586e1c8849ff840a44731ef657d40dc0495d34c53756ef7161a488451d5050734d8a27451ea154c71e77c64ae5a6ada0b1de5c0160393ac78606f54a4e3957feae11c2a5e1c0ee67dfb31e30ec73a942ba1f62e017c34c7ec04132e46ef314a1ade23881b8019ca0dcce294b367d2ba865eac3b70148809650dd2d6b79de96bd6c676f13d24a99a4dd9809b72867324249a6d237d432d599638e2519645702d9e6d8fc88c90192b0ba019f1aca871cf2b91e13edb420804c3e07338d40bc98c74265784440bb5865da087e3fecbf2031edb757ed4c25c639f7592a9ca1b29e8d3f3ebc29a28009840e64f370eac4a63f9aad9a69de86f8d4bdb94e1b1e9354aecfc426f311c40449994a230cdbb32f94320fcdc8785f50f4557e07d9859ad15cf06d59a7b4a97e126b28d0c670fe880c86e381a54b283e17f16a0bd5ce9f93ec8e0f9229d0dac1ca2a91701c47f8e7ac6e7f507a7ae721814af76d15df4e03db34d6eeee19ee084e8f68914f0e77a22e1841088913a19067c5430997403861d0c1083806c8aa4703131a01db998a674385285e4254ed923e0b2f83226392f718d99fe91067cc64cc16d036c083945a0493eb90f6127b4e2e3ddc3dfa7f6c502607b655f7997f6077044e2c1e9800f767cbc1a0d38b3a114af79481e4114c61088e852efcb8cab0682946344583850c159be2a29626179dd06863dc9e441dd2dc7f51d4974a8980af6c76c98c3b11c7ef60ee302437990fd74b7c238881665529ce316d55be84d84eb4ffe0a6843b2c03bcda7704c7fea98a1d8ff95cd752ec764fafd47855dd9d161397323cf4692b003658646ceb2f2d3757b879fa13006033444d2bb57d485ed81cba453d9c80c0ee5ada1619e7d082d9e55bbc8884c544e3a26053dafa9f1bfca9753204bb4a602002be6cd0403fec9c09ae3094f613b14cb5a5024335ff2ecfe6c8a6a78a1207a9b907c85f58fd9ac1a08486a46a09917ce930f45d743a485dad8703f012be0396dadf9ae8649497486c3a72f4bfe604e26f31ae2d799e25ec490de5b7ae4520c4af929b457996edad5787c3dfbfd4bc303426ce4170da9120894babec028992ea19c57500a7bd34a312df7dd9943af5c06385a3c301ba480f76719192f19157dd3e2d3739088938f63db742f14dbf13754de661133a50b750d8127cc67e93b003ecb7e52259b5cb68abe587490a6d94ee22a56011f2ad3d084c5525df8126e58b7c5c7eef4e0e0fb1619955d6379ae220ab16581a0de6fe08c3384e32ce97e2a64f8bfea65fbf8f60ef3a9ea17f78836f9dc433b2f33e5648ce1c8c2f8caeb0bc613d24fd4fcda45a0ba89a237717485ee41afa341f3bd481d7df16652b545753769fc6d3117da539a2bfd3ed8b43b2ae7bf3283486dcdcd11e7e8e4f8c9df144051869c3cb96bef2fb0e635a703aa90126522145eacb27d151d9e1b423f9f18b33138236890eff2182fde840d305f98bf3b5a54252a482dac0a6d21923db245d7b80ddffbae092f454c82c422d8ae32a5023a10688724e2d48a411cafea5761a6551c37491bca5c7209c0d1b3827765147bfea49cd505399712d0e121459488fa86c75a2221ea63136bdd5227f6f18707381a62821c10df2bce7fcb2e84235787ed9e4fa6428d261995da47ab9640b612ce984422c898687b0293d5efa78eaf23a938200ffebe047081fd13c5f7af7725d23d052a3e240466b9e16b610d689c3c57abcf24ba092258c4094d9c83ea61e93fcb079435ee181c62c395548937d3fa7d9e6ff66c860a303fdeedaae190af0d9405b89ca3a04c82bf399b36ef0e92f0d2e7522eee0b3b57e82b28d6546d9d355f2b2d2222216f947bb0ddd8e8ab2fa2fc6e415943636132b2d8aaadc5443bcb8bcdbc7c126cf57cb684812c99c51c2b53d5b58e40b3d5254f61a83511f61356ef3ea9f6ed905023214582a8a04d856df962c0e916647a9cc73d470840848566f09998c3b806d357fb33b582e00230e05909b4fbfdb24d8a30206455b9497f981169bb44d577f44152b956a8b3d854586b392471a5d6eb8d088dedb618b4d12a410523ad28f94e6c0ad5ac85bb854864196643b027b9ac1b1f78695955b6ceb5d693fedb600801496948a49780eb5d286f35aa1918b4bb32caea18448fad8c1df8d643f8c8120a28ce36dd4495fa959b91814d42d5d0c99d917f8d56c7b3bef0de67860d591daec9daf1e49a034403e37c4a365c6219de238fa4dcf1b5634341ead0a574cb4279af90ece858b128d2309cc491c8f2d3697df42cd91df3907e6834da4d74bc23d692fc2cd2b7bbfdfdeb6bba2d4964c2dab5037d1823c29292d83ee23050d4041fad2d504e551bcaa310c03b5b0e59867d524fc167a1b17e786f478babb92249aa29827c19f8635d586d1687080ab7272cc3527e81c21d7940a84fab6e3ae5068689c6b79caf26dd25f4ee2e64c87e47bec52b0de68e92252594af871c22efc592689892e00fe2f89dd2535e1a688805c4a68e387cf4aba75e855b96aaf46ee118c5233ff02a3f6ffdeeebf555134f39e12ecf82fe5f01c5b9f388d67115095df50722872788e7209718b0b136a146402faf7305e21b3ec73fc830e3e62fffab5a12d30df9a1d089148a6875313ef439fb65f899c0634428c36f3805d4a696130ba0b439e4663b0d1cce4b65733b751b9ea4806274b889657a5d7634829df912917cf595cfe2e23fd6bf2203243e247283319d0c2923997853fa74ce8d6044983862c240f16a00860e3f2531f98a2d662df0cb122f9ff0294b7345e68a5051dca921e34e1140375f51c83a961d395e1b3aa1b61a2ba924fe887a3eb544074df218efb24c9ab856875372d9e5a796ad75243bf60ee13a06851deee8377d9d4c91061f6294018e7383e0c67b8170ae85e96f175b824c0c2bd875af07bd970448d40ae0eeb3d77de6ac63ac8cbc03cd2094fba3d8f3db9147c4cf9c833f7d651b1229e4189de47849e7b39b84c5483586625a9bc2cfa442dc371c4622449ff35c51ee21b79c197360d6c0c17748025ad2c416a35beb368c9e1d263d699bdf756d9e28c2291fb0947a58476dcc077bb13979554b25d0e9bf8f913d59906002a1ae7e585c44a557fc6857783e5af858a323151a66bec8aee3c55c770e6bce7dafed6111b2875064a632a263290a1daea279b953a9d07125c953746f155dd3466c8075d75b590a1408981cf4654826afe87cb0af0e23f44bd0e0a1a6a1e89bd754aa4553a491b1f1dfc38bc1984068d7e605be450ca47d7a6de05c33f63b7c8c35ecb6ac65425dfc40aa1d322e7bff20db8f526922440a8b25802cfcf1fda34e59822899e43d4876df79f525ee6192de7656df2541bb9f01d5426d6e5d38643462d726c42c63081bbf043317f6b0b38fd78b4b201424bd2a77f83fa277809ba1cf7ca7014ecfdaa8b54fecda5aedf18db4580c1b902ec06c064692e0660187f576e3450213162a0000c1960cc50addcddac0a485a42952c91092022b5112e565fdf28561b452f4ac0de1d80b4e19d9d8d80758f215ec3439bcb516c4f87d4d79edac5feb6fa38eb388beeca95d60bcffda00e2000b70493493b007ed84b3d27d912bc9de235c9910f09afbad789ac960652a615793e518085c0caccab666f40441047f1c15206c2a4d083cf1738cdc9bace20f44ecd9b75c3af9563fc0827dc68460b263e36c801290c77a988cad600668b7a30aa339356148594566cf54029224e86ab98dbe6dc0d89d8a1cdcb1ae6e3e0c5070b47cdc58ad111a75bb10b65c25c307c964a8f9c79805560f20db60c7d591e42ad1dcb0105011d00d9db46dc5e96c404dc9aca503aa168814d4fba97dc48aa483c21f7252b395e9cc7bd427e83e7f9f19846af38143b025574b98a5635ae83694cd64646e85b1b8f41e0037ad798bf1fc69a036ab4750e73e3ad1b1f389ba9b358b8af3dbf91326f7fa0a700555a1e14e0e767adcbe3c074dba12e07e1e1a7d8ad91c778d3a97aac3adb0039511d9f2b957ea6a86ea29000e77b902c66dc48b98b0ee2a75bbab3f083e497ec5f876bb089fa55067638ed07fd0cc03f3e8a97d326bd38ac6d89462cf2a52fe9c291eff65c8df9227b0bd2184a2bbff1bae80f47f945ee3b7a750a02c32145b8db1fba1c94c1319c7e68de65632db8f9285f3ee27cfb270757f42ce453538dc36527c93cea0efefab08d6c55918402c0da4a478613602d83f69a36ef613160daaa8c3eeea0581c71b80a9d3180ebe2e10d2318004a4a291ba7b7aac1b974e9b5d62e020770639ac25f457aa3857db462192971f1526dc61575219167bcc0c169d99fa1c2285d10a6b6ba42f0cedddcaeb1bbfabee0e33e54afaeae9d6c35c18a319912ae24ed2aa1649bd0e14149774e523c0a7c83f0ca1bc7eb78444f78a50587e54fbe7bae237f654ea83a5f1a2174a65e6fcd27e9cc0f142db0d14265bd41106235826275fff0e8a87aa66b6cb1e43b87db77917a4ca36e2e52d5e052ffb3a14412ed6b8e760d32c2a625d1495ea6ece3838b853098cbd050a847316f0f9b8a159adea36588f64274db189d45ec523f1bd22fdc5a78985c80a445f825baf1dd60c114134fe2cdea4aacaf08f5c42ca6d2cd1e99a6de111d8f391a1d65c99aa43f9c5a4588cae03f50095761ede46c1ca727fddd8965b6b171dc1884adfef448b1e8cbc6559aee1ca311b9d57555776cd4924ec2a890231f65aff3f95d3390637b1c06a2b06d36b4fa3a7ab730f01be0e99a64ecb7f75212e0d5cd4aa82b8026ce3b5d57966a21a7a589859a3788560bb84ad2fcc457a68c1f59e5732ded0651c50b7992cb2a635ecd84861202d1b0197a86d60d2d0474907cb51b720e821473dcd139980812015dc050ace7bf6758d1199721ab06ca44f8700a4e78f1d925535f07682fa3c000846bec59565487375b1e76283fed4692ff6bde47951c893be8d5a7e552dca69ef775adc3c2954f161b25acbfbaaa3793c2b8716d325830f30a22adc79168aaddf0adfda141cdb7f6c7f2ffaa5ca3160fc1aecd03192e72ad90b380e341e49bfe923c973a54a862652901703b528859161e9c40c2ac1f7de148490859ab48c666684996667052d802222d2d3342b3d6c0f16643af6750f67a73299b144846428f52b9eb5e880f439d54438632a1940211179274453aca9132af229da2c1a3a2c76f7c78fc89d218ae7ebc14ebe19067f0f421b3a868ab52b8ecc1adcc53b7f75d393c7a56366c1e7514ea92120ce282c702ea5b10e4f71ef05b481dfcbea7eb99d4701b12f53a5555a0b2085d5341c1038c6e18f8bb7708c2dcc436b1764148b747ac00e987c8731f114b11921eebdfb85409a5ffdb930ba68a1067a97ab5cd9fd348776064ddc2e2c8f624300bde7c323244ed6e8d0a07b91f3f43d57cc7efb065480d8a118b2d81b69a78bb115ac8e9837319c444337a1ea2735361a9b83d2dcca248e235584cb56281aa582f6a6fae144e52c47fca0913ead2520b0e3de37b1478e02b4c3c77b12731d9f0908423dd284eb7d629abe84c5053bbf8e63db9343b9296ccae84021d402afcca7a0f586770798eab79ae7e8f135676a8b3ce6e109e68ffb88bb6086ead1c8fdb1e8c9ccc9af760f7905f8f2a1d51ac3b2215a85431355287cb46ff6ca8db484aae95e5c81e08e02761ae08ca72e07f971b65806f2186a5dd1de9fb137044fffc61e6f45c95a29658cd82f187b01e1172249852c748f0c321d453c511a93c22fff46b137659e52eec161b21db6e2c44e918c1778a3c1ae2d64beaf784d2db5b8a615a40fe322f44aa0a9152baae9634e1278eac484bb40f1566a6ea05652fbbb9975988f66a4a2f28de3311c35205d43daf0df1819385428ccfd6a54024a263ec4a69633154776734d7c721ffb51be313483b41803bf4b16c3021c30957ad4077367939d3414f65d313ec145d718fe42087ea8f00937aa727372d6041d9c0199ca30b6daaecb18922e31178f1a442570ca26585707fba90f84ac519d027fb0dc1bd465fe311f1082c057e0073e806ee33a1468a268ef6ac08ccd760bfdbdb88e027ef7f461d72fcddb7b752d77ec572ff171cd80d2ce31b69709b0c27ea3771e4be42b855043e31b23e4691766d3bbc92f4b96b09630d12ae8cc2b57ee4128c92345036b74fac0ba4c0624d057788ae6eae719a0acc6ca30001b5d14c170bc14101a35b52dda34512b8ac54a2c107042d3d0c8974fb8e67097d5a574461534af5641a959e7f36ca340a152209e573f7e7ce2ac7e68fa3b64e21fca999210dcfc285424b7e41f47511cf28ecd76b11ff5ac42fea5c4885ef295b34e58a4659911fd5fd765d445d0bf1466dbfa16b0781f8e62faa01bea731be404cfc310899cbec03a657000916956da8df4fe18b4e6330efbfc2b54667a5b159d27036a3342dd4b059683ccb34009c5edfac349e551a90d9f698d2625aa0a10ac7feb531e058ea1305871385abbaf08746f60b91ac183e641a38257a6950712586728472d9ae0669f7213703f66179f52737d7c23ab6ad4259fe4816d59435c02dcc636c9a2dee13d9787908150a0229022059ffd6336d9fe118bdfa10e226bb4fb7a660a142cbb0964bed18eebf3783f981d22bf698f1ab40a27e229b303d5f80f523c33136d15f223fc6496c83f1314f23359064413be319ad8f26b5b34ddec635e0205290d5cbd15c70f8d1eb379e506145958a289013822d89e967ff9a6e7e8ab68a7361df4d583b7716d49c40f682f9767cafb84347739810251bfe7500d578259f15cba0ca03502a2b19e195febb53589270d684577a58c13bb5dd838451f715acc1aa0b54a835a2878aa758f872d772b075cbfb0b7d8d26e14ae87193cc277206b5788a8cb79371f9143af78c32dae014cc5046a83aa907337356c559709320f92f94b3c0d8b3da5defd768261516e782ef5e15808b368835df6283c58a0cfe51ab63647910171ebb2fd0f0571cc2a21c258596b78c6cd90c4f24e810e71b84d0df168ef3e44aa075cd79caa1cc7468b98571fe30bb066c15c7400229fd518c6e8f346729dd75dc5cb05045363c40e710c11e523890a6e4a965b9314b472485c0d635f70d35c97c8dfdd87e797802f8201d5a227de3a7da24fbff52eda6f90c641e0bd14e1ae0150f620756c582c1d46189425100f1bbaf7984a8a1d0723a42118ddb3357c375292fe4f215f9698963d0c2e9bafa45894a9eef55b438b5c8615e028a191a1f748367b4c691140cdbf980a8add4bbe291c98406718ff80821a799dd945a67a93b4b68bc23b8d14bc0925004db3009f1f8d7817e862044beb9425d720dbc278d6a8bf98ee3d563ae4ad4d61258e24ec7decd4d01f22e4806a6fb65c42080b1529c055d6abfdb2df8209ba830f38e7109990dd204ce0cdfe485e615643a8655a5647b38b0539a81b5788848815024c179d8cc77c8899127610c2f250a9abca67642349f84c93e0a882b34054b7f4fb88f2695c717db0ce91e27050a39bf2d0c5d299cbc90c12a5b1366051033653751d2aa96ac08b1023e8242111c04d18ce4500ff479b888b23ded4f1caab93e90a3af6c18070e7526243a8133794bb83693aad2b1e5de80092c00ac99d4e57a39b6786bd61edf605240f8408b60e6b08130dcf60b736dafbd761d964715dd603aeeefededa98b0570c54a0b0e47e99fec2b438d36e3a3c18174eaba23dc828a21e8256e28882626a7d34e6a49b1028d00d850944456ca856de4f876505ae364a2ef37cb5ce79401256f45c3eaa71283bee30a272359f3aab2f8dddfa01daf4ebbe0f1461b52c3e29c8cb88cd4316fe001be01102d064d362015153586f839880de495db45d7003389fc8f78ebad87dc6a00a1d04986d21488837145ab7be561b70f2ef534cf1e3e8033cf1e7ea33d013fa817f563ef49f850df93e3d1503091af08bb33661c5be584cd9045c1ac114b9f4b8c4494049c780189a7077602754eff5e60361ee33f320323667975ce6b92f0c2219ba99d80400b9b9d1b3874c0e1fddd8d1680266c61204730f63b1a961822d2ce7f3566e09a9e67e9f3b9ac55c30cdcd02da0437ad5c3ad93b5a63190d19622623ba817a8b965b128342a76e54a65e2bfaaa78b613f6f4ceaa5150242d9a39a96d443c06365cb0a5c655f69f53cdf525876494a049c10a514419703e9791368c3132949a2cab89e80e898204a590df47482524de2ce04ebbb406d5bc6f0237b4a5edacbe892556da2e0e4862393e7a603f47174667bb7795f504415ec68afbfdca88e0ec1f6f48896d3190958c9a34b9925ef280e63009372258f3feeab522a66d2e1ba066497454b577902f2a08a87e75715862faf97aa13549f78ab2dde983282704826be072587ef378231f0876bc45df621527b9def6b1c7f52339792bfb5807ab4165db832d7011465a82ac84f2ef5d3c85ae867720d84888f74511b903c200d8600ca31adea1a64a6c899c84bfe3052c1fe15eaebe7d09f102cef3f1010207e20ee9b8987096703edbc5c2a5154a91a4a406f26208d20d01858d1180e80943314e943c658a7f4c20a0cf3d7d54c78010dc74b9b19682b3c389e91ee40f8d518390c5497a9b90bd60e68db3a14ef38420129b38b8a34845437845d629def4d3830af37e9edd5a5d203eeda57a8df46753f4879feb7d366d100c88355165a3421212a5d2497849177b21faa3de2fd6be385b503eb25a688f585f55e586fece292a37ebd85f58e276a3539d0b1730f22d867713b01f1714cc5351ce908ff514da1aeeec90c2544f74a8eb0eae33a02123bfbc06bb4d450b4caed1dc7bd5bd03b4b37126f3bbcb1e6d258b727616f3391c8ec7bb0319f1192edbaa4ae6ba1702b1bbae6cd750eff15c0d39a55f67557df69f663d368adc4efb82981414f33cec71bebd4990b74c06408b3274374007ae4880f08df5e48e68c2139fded5d96f5993fcdc8452c81146dad0a7096fc00c29d21f2244c9565977c5feadb5183539b405793c9690913e4b2051cd6241e2295607b204a665594cea32700f9174af26b2e79dd3b3a50a333c9f0ca4bb63da1256382c302d61637d252987669415fb1e6dca43d36afeb2a15d2a08d2cda1b89460ccb3d0351559734f4497be1fb18258d27003144376ba0d85a47449fc120aece9b1e0c4e1ab89da7ee3990b10130a4023aae180bd3352ebda1a0d458f13259bb8ae24e3e302754ec2bbb5015e983db3d4674a39790485b29258957ec6e3c738084c7e947f63a73d307365d9055bc7c82e2ed3eb677974fe04505c1e7960d9ffbc9660b2746753f16a44fb909fd671ffc7110135983bb12221adcfd2eaf27920ddf77ba5496915f1bc073171c3c81a703b7ce3f7b988413e29815ec1e97be8fd63ee6472a59355ee8c7250f504f9de57b72074dac54ce47939b80068583c999fac412a407027a9b60514ca852522c70611a0fd3368b1948140c07f7e598897759f58354b3a2636b086d28206aa0f881f534cd9d6b6f7369a599501cd64a92c49dbb2cef86d586dc5b50e7a5ddb59754379cbf8cdfc149c0e376700534ae2cca3cf86c5cd4101ead0e1926cc2fb6bb49cbc59b1b974a3f8581c70ca21446be37f318ddade181c22d8ad57f8affcbd4bc6718b8b03f89a9c4dd9de84a0c2a1eb3eecfb777e9e293e41f1e47337871f10cbbd299db22c291857e8f421a0b997164c53fc03e0e43e22279db79d61e007e950215c5f712885066f48d555ccf0769ed8b9b103b316a6d7f323ebb0f848163801f86c91a94faac0c1eb9b99806088a6bc6441c4bef4c20827575d410d312f9afc9ac6b722770ad297f3c3ae23fd3fa33149bad931ebcae57a3bef8818ebb803c7c93f7c3641b2c946245c2b84e023e765a572f898571b4cf0024b207ec1af2db47c17083184a358694c907fa89091c6e3fc943494d00e1ef19367288e6ae2657aea82ec012d09847a992f96ad5f067fa9522a4493bf69e561f376fb69276a33a76c82dde09de77d822d23ebc980798ce71c8dd3a0180942a608a0669c662183890fd02a2e75bb0d6acb4c0b402a63473eec377fa7592bdabe066933cb4e27ac3872c47c084705e454ab6d1f3b5211aa119073b39943950b3d0b7e0f1395588ab1b9f06e44fd8c2eaccfa3370930e0467fdb906dea665a308579576e2664c7fe2e5fe190f496182a8759bbdc5819f7ce1b896e3f56b3f7ce3bdff51ba24848b20173ea00c5eb09af6529553c29d01781910d76d4c34880f90bc87bd78f552e23ce3db9c0681b071407266267aa39de97c13faf9023c3d6eaa5bbb1c37320d7ed04b4709cd10f1647a58809b98978c5d1c165bf1872228d3c6eec2edf74c84122a1d26804460f00c12a535de54690c6a06f1fba4a1c6dee5a730062b0cb1f970050cebefec20481893f04977ada15154e6dbb54ec25cccf0b6c8339181ed4526fc38c60794983f6faa74fbe755fd563652f9710a8a502385be509576008bf1d407948d293493b155fbefddb2350841954b63b2cf44fa8a2c23ee335d7561adfedd9873ed6e08346cafc4eaf0da2d65623848f32220e4562b073a9309101c0d0ed438ed35494141deebd5491e89d2e269562214d9e7daeef4620b1c022c57693fb12de00b00f516512e026d9a059d3caa13355857e4972aa9d3e072ef7b593015b857afcf28044739af966acaa94935b9510d9d4be5efce000da9630992e2b8836d69dfe809a7c125dc7faaffaf78a0e6409cbebd510fda1d8bab301efc25bc511524b5283575e269b6e10497dc728bdf6f1709282630aa0e833316fc116baf20c97f2aac289549d33e8788bd95137a03f5bb83e05c04954ba63603bdc96f1eb2d7784c7e5aaf89a70119482e47135ced7332b220f3e91c376b204bebe82fb358a14021b9eb8cf9484402640e91c672beeef87d112a2dc8f3f6bd1b97756eeb76fc4e38bc28ea2bef1be00ac6b4e6f49eab1945f92d11ad22569bcac865f23232dc08bc588a3072a9b6ecd7034bdb839f1105ddf89069c27c3797a467752d57062664cb7753408695d55943fb860d5721d508214a45985a5d4253a0c743e63081c9a4356b53d07640741ed45a7950642a79af915dd17d24d3ed1d364be060a1807eae0d0f2fde6d50838153c15c03f0a4cab29cf3792966495c9c19cd521532ecd4c9ce116bcc432691694fcbbeb9ca3eaa2922f8282866317d1fe39673c3b9a886f813c0b6e1a96b4a0bab739069a41393e1e232d9c750c12296e86511b8eb1c4b76c5d340e11fd94c6e1995ef931d12e8f2059c8928426a6a1de3b845559608d15583ce345922834b9b862820c994595369109cd9b4a5ef17e493acf4b5f245a9331f7b425153c2d1da884a1a9e2e253bb1bcaa7cde221c2f653ac2c0e24f25062c0a03bf0bb481bd0d19e509f534a0e721a3cd575ff7521b998853d9434507e8880d4b1051c16eac1fe11eb15f750e3cf8785f578936bf47540111f0b28948025f6f92ca51216e8cf4822c371c8fa95cbdf0db20cda89aaaa664bf8870952b0e899424a21633cf183c038830720fa71a63a83059740689c8613ff48865426a980e87e107e8187f001b5c58d57ca4d1b87086440e6399f292aed524661b3f72954af2bb5cd0a91f706fc0edec7344eaa7270ddc3966dca191434d8d5b5dbdf585f978e20bcd69760ec634312308b5f3819a6640572c20b461ebb571f9d146f59fa14dd4ea22873448a3aee828198a4e3305de01371a1283faa62d74fadba7fbd6bd791a843fc11650de65fc634fa32ac4a234021d17c1fc81e0666960257f06cdcbb9836c84d02faee0c6a84dc6f36489df37d23a0717e2993b00e90a8940940d52a1952227e841b2af0a72a4fa66e153a16d2532b789321cd5b8eca75d968f6cff9090807d62b1b7b401cd0c42077cdc7c145620a10424c39bf86e3a0d6c0507b57e387fbe1854c1cea9913c979e38248de015068ba1e938f947cd2d1eeb348bc0374424197a09484858a2dd190115fac000f36c95f28fe44ce0fad89ab6db7c539c902060c2b274dec49c18280cf884916e2dc27a9fc76a405849744731504a1e2b18379883632b59a4ea60c4ff7d6f856bf22c437e371a7039531f6613be434b038272c1d88307a00cf8d5444bc1dee21fcf2d3044fb7c67e7d01dec82de6de8de044575dc59b4d07f4f0d89ee293577c85bc0524139d4931eacf30aabaacc29472f3d8f86239ba1591091c6997efb9da141087f0c3bd4d1a124942ee8249d5b893bff296880a47f1fad694aabf7e88cc960cdb045467fa706288ded4c485b1cd9e3b2310b76aed73c6746e1b95f05b91879552500b7ce8e99f4ac27aaa83d9510577886552016f1acd09a665e79d0516ee15abaefc4023050facb45cec1c137d258924da359a99ad76038a0691ac0a1b2e8b64941e58ecf2360858f102602660d318e85104626186c8ee65f6f14e59e11da09639d474fb0b54c4c58f10dc86026e6dfc6e63ab16b983ba553c10636dae45c31ea7ddcd951ca944a7295a5273535a4036c5f2d7dd76e24847ddefbc4b2f512e6078fc028fd823504dabde3ccc223420400fd0dec79b6a1b7844e49b2f7d5b041a4add3dc70b1e589c393305ac317dc29a4444c59b04a35c97daf8c2456ae37f5e53bdd4fea49156128562b8e584ed93308b05b531a3b11f46479049ada5f790a626c1115424c009a8165caaa72d74e62511a337891b5f46d97e3f1fd2571ef8d6d4582cf1019fac20b27eaaa15968f30ac1703d39b218ad49a4a20e768b110235cbce37d95e243b30a61e69bf30f2ffeb34949d0da99888b7810f26f9b0e4ac28247ac2f8d18c82883bb8e966f5667f99eb6f6f19ca8b74599858ab729b1db71ac54b3d20cf863fc473d2b194b52736d9942e889438cc816db2ac108e08784a55e8441a6acfec12a80e541d966d03e3a83537c6f86bcf167c1b8603110efdfb128ff77edca747a1841cdc338a6be7d9e923f12e7c508459fe79846416d89b711502ea7060721fda52a9346ed2012f20c6b59b01c803c724783e0f811a8c6929bb44cdff1422c6bbc8b7dfa8232eb633507426fc7c581546a9e12ff4837b1073c8f871bc0cd15bd9275b14bb07ad163335f96043a4b927f3df3970543741e32e6e1a409349c9562e630ba99bfe692ffa50dad061c6ef4dc9bf6f272fed0e8fdbf2946d6e1d990dc8ef89db44675e735d5d340bb382573e5eb720197204103a15337699078b3f5588a03459d3e86a0b8d6fbc0b67a32cca42bfc25e7cbf203a16a13954951b5c0df26fd677f73c05bb290bcfad63431167b68832c3dbd1bb4858f936d3e7ce9c05703a63abdffdea3b118fd2fd543c5af4731c50b26249752f7bd655666aac48e3fbc4528fa712528f87b06c33fbda1386d6d771c72b849a9783be26409e7390fac4524baa5da209e56c7455934be2ebcc412781b45265141abcdeea076e8481b693057d29b4f0e16a68372759e2a6b9ae986324ae21f6ce9c67aa30699a96c163a1effa072d7d86977a6eeae499780370282d234f4783ee0fa880d6cd62d1f15e0c2fb482590ed09f9608e53e2d226be6802b1d0d6c4cfb7da9411099eebf758851395ce68eed4b85d163e30629518b4e5abb8191428ec88a6a5907efc866e2f09b9e1ba9b183f0c1b189fe2d24a678dc522ff7dbc9dce2053571282af2410500047fb1e4182f9566e801901e45c308344d6a8dcd47afcf8f4146b750a0de1beb8d198363d67a2dd6abcd0062c8e42bec7d48d6315e3f648fdd870b429f55f6ae4a6af9fdd25edb8355dea281927ce1163c1022854083eea5a8a205a8b430f5cf5a27f3be141210357b09175917076e9a42ee18725da46a8a3e5ae1a573f7e9199b21563421f2f76a4669537dba994aebc83cfd010a62690bbebd2b214392a2116d2fc3dd380bb13092bf4a2a8a0acebb6c098ca3fcf481b526968a1ef0daad8e2f3bd07e615e44085e4cfae0d28db7f3e49815edff4b377ff319c0b3637a29d864e2cbc3aba0a72e3c174d076e22e2e0fc31052d100ed482be57f5f29bdf65a6964c9db6e5380a523249ef0f25ecb7f0e9b3d3e1e82f2bed094f30bc7f259c851f02d28b8ab01dc684d8a18208398ca610d0bcfb71588bf01153d8009d33e4356e9daf5167dd9df7443e02326fce86f4c9b6e7357899870a13a10277557c1d0e2cb105aba4defc83088f6cbd4dcfe92199dd759cc8983ca8fa95409045e27e1d025250e3ed3d69ccad0b55af0ff194cbf96d904996a251cf365754fea375a36a8ee1087593e708d9fc19ca8362c5b28afb46f6c1216a15028328d80471860948010f2bf19c7137f0fa526a76f8a1cb4da34da9a68301b2cd2b009fb472f25a06b9f3ed9b082e22176feac818d191ee632116e27c996137d565f683d795cf41aea1b3d732a01c2900a36201dfb0f2ca5171cd04db2ffed37473eba29a90f20641bcdea8034eafde75862260067aef06037f63c6e4d7727685568d6c5b8ba650b641bd1d816abc9df28118ca27448e3412fedb360878975483bfec3ac455ee386928956712be14ebbbcb1917010b3d9125d1c917ea4a05e006e887e665945f1e5f4053ec80c40ebd50d5df939cbda3a22c1b128f4c04ba4930b132dec9cbeef2db372f064856bdc0601700af4b691368570e2a6889c5d197c1294be0ec87e3b3a53620664e0a610060a111a8266c285e0b765bdba1f531e48b16dd229d32b4306c907699135b7d456ca1c82e0041b7123d15130b628578ada8ff6dda2adcceb5809f399201f5a3f9bd2fc95c6da884fc53c3f781ccadf1bff73d89b786eec2cf1c8431cb90f576eb46b88edf3f68567d08c2d5213afff2aa390081c5a944699db13ab07cffb2e2a10af4ef2e981c7ad59a1a39e4f04392ea751a9763cf6bb07a28aaaf10484daae7bec092ca86ff198b4a6308ffc6b68344e30c875e2f6d3490190daa547f68a7083a53941703cb64b2ba25a61cab951198f2e4bec27dfbd47a90b317cdfb665078f0999f5dc15d78ae5e372162be81c9c03f1b777022962be4386f51255067cade8fe664d035558e55eca52ab2b4c82c808783bab03b22688b6814380c99c82d8b372e5c34461e1be2ed62f63380cc66eb1bec1bcfe943e72731f4a1fa49aa49bb5a6f4dc786c5fa20da170d128b4087d3b518ec73e10986b0abd9c00772246127ae8588eb179927f4a9f05aee870cbb618339a7207f0f3d4f31cf3df8bcc270174cd673c9b0ea610ee7b4753f494446b416417ec040ce5b7fb891a0fb7e134d4b2e51e7085ef0503d2e328df827f2af80a4c6092979c6968627ceae520e3cbccbd60ca7cb2ccb03468b4dcaba044088098c736d2d337ff2c683a8aa2a6146dca15a673f0615b2a17694d599b0b9339807ddc1358815efb803b161e13f9f19b041b9a985e9de1079b639a6ecbca4998a11d4f74b82fc6c544005c64533638b9ed830e528c8b8e74b97eaf0dfabac6e7d396a4196cfb5ca60000b705511a1cf99f04536ca7daf8c3a25989f361d377d4e7f89ab94617d7f2d9cc3b21c68d39195fab24680ba35080f2853ede55d4d73aefcf443e86e0c741746fed98f1e1dbf1188b5e35a2314adc6e26d724458dd07e7a324e49e423c0a069b62678a904ca58c67f6f65c7cb9937070f2d957a76e0c2214dfb3aef748ff0daee2235494a179f3dc9eb4dcec143b314cbb495a634274a1e1a96463b5157caf66a269917983cb62d51a3176963ec4c57b7708b984891841c2ec3ddf34b9f2c45e0971ed5815714e7c4a14aface04b84cce473b0728828eeeb6990cda73560e6cf70153f9d249627e4172c6fa887150b9db8fb61361d09c4120c3a2c36fb42d76b5d5bf25ac561248f6da631c508f9376caf5d9df4287bf81d8b9b0ca6ce9a612bd7f1a05a35b0160801b152421c171f46be126c873ac580a9201e4e3ac7c39e8e7495ce37e721401faa40c7d7ddabca2458a13423b2319a01012eca20861e7e7cbeed40bbe52eb8f230ead436a359d3f300dafd00f29287804fc390a6525f0116c633b9103a50f4e2bc520a72d2607248dc368078cabb3e367e543217839e8c9f1dc6d639f268817b1014740876c3968fd86bb0a1bba586c1d47eee53d906d50c58e967adf0d6df87f28c530949de842276d31f745865a0204e0aeff5318e1e6e89f44f4717a4e8427e7668b11a921967d5561e4c35cce326fccf1ccb862b3a22cc27607121643a68750fdb1cf5b80658806187dcc06ded84059f98ddcd8580fa67322973dc006096ed578af76f64baaa2b0b190d934b806c9ff868e187ff461040ff1ecd113be60fba88a4ddf82bd8d292a5e973af435716e1f370362bc08d1511b28757f99adc90d9950304495bb18357f0d6dddd5eb0dc6f197d40cba79c7120ed0e3908bbfbd724fa15c12901eacd8d0126e2d6c568a4b58937b112920f14a4f2b05b7823701dcb6023a493e705b509a11a70399cea8b318bfb78874f2bb929318102a866f04d13b850ca698aa2c3f1521c830ffdb08c9289373d5d7d019a07b815866469e1849ef05cb670515b8ea8ff9f61d706ef35e10188f11d844886c6bbbdb965b4a99924c01ed06b306fc064ce14a8f2f3b9648c6e539f5fb345c820fbf51099efd6b13b4e9085706a3a00ddc1d1c12290aca806b033b471bd87ade13f68fff6354c3203c777737542d89bd1b5ab1a6a861b103bfec764fd8650eea07550f63e0aa67c7d5cf7b9ae5af7e27e5e3cf8e90016ba00ded59f76500032f9bd4b0087bedd702c1e52f8fd1a1aadb61cdd67d23f64055a753f17fb0e6b9c429f0fca56955a4c335316a499b42d9044d59f09d75d0664f72501925973ddf8ec7a08d0df4099d08af87ed630769d883de5cd6d0b308b7dbf36de04be277f721f130087bd0d96583d80faef51e6a10e459900fcd7ca8591f7238e4432107398443d88390f5b0f5210e7635c782ba91e772e6dbafc0e30302c930f1f1906ac8538dca1bedf42c9fc96f0c71d248b69d951e42cd3ebe9d155923572318f5b3140b759f0cc25e7bec2420d449219d5cbda041c5d145c06f23ecbda041c501f222e0871cc4f50d7b46d8eb28b4d9d9417af451c84355d4503762af08f5f356e843e26515ec859c0681ad0f75a32daab4e9248bbd8657cd65b329201007ffaac20f9f0f0874b13cd90704fa80429d0f44a821ff24ebbbf59b12e228678b2a72907fb2455d1ae152c8dbe5cda67cbc3dfb70f0e5173625076c859cc4db7ff89070a06e5fb63a1d1e42fef18c84fb7035b0d79fce49b8e91f1127871801ffd3f900e2f6254d28c4492df6a4d543a8aa20bf1ff24cd3607c3ee41ff6a190c335ad4ac8616725d45ae442be711fffe692460e197d74f6ba712f3c867c064b9a2ab824f276a96ad3c8dbe50ae378b73c4fa82097ad4de16f1a68188d6ae596bd58570d9740de2f40dc3e0917ff85c30ec98b8e08ef419e81b8fad927444321ef43ad8690bba5a78487f8241e9fa4fb9078918338f823ae6d9ad4997fcb710b7bedb01392ad3671cb3cb56955e8a7fb46b0fb5c05d47ddef5a2ae5f5451412ef26e718984e3cb1f7dceea3baed570e9fa766e69d3c56a523bb7c827e9648b3d96e7d3b1bebdb1a8a00e4728e41f07b90ef0774f3e2150f769dffb1ec97d228dfb44ff35a723725a9f0cf2ed945bbefd92ad6f9f9c0ed9ad9b6cca7ebb0f5cdaa872b55e08017a70c4dcb1f383730f3370e468c43f328e110b994f2b683239af8e7b54ffa15cf561a771d43d2e45dfc15f3ac7e71f4c3ed99548a79dc6e93cd95123726c0f5df3193ca31b05071a36842002033c504dbc4ca10a42c3a51a2e7938760fe3408e73f7753fbd037f30614fe4d50fd4cfbfa5ebd8619ffa0eb0b3a275bb367cd3610fec9973a707247ebac7a5ac078e67ddc73f399dc96704fc0ffeb462f5fcc37639bc56b02e07f40ab027ed5797037a2b7f9d9b1b4a4ff4c9ddf021f13176287b828da1ba89075bd81431303e10f20bd3039aafbf303d5845d9a3d21939d0e0d27eac23d6503e8a3ecef0d1330eb7913dd9d9c8d16c3f931886616ec27d71c75f0e4b66577fa6ade813b669a16e8c12368fb9631887c3a9618fe13a876bd8863d661612eac7ad766e7129badc14166671961dfc31cc6590418ae859d6801d2a1af784e618976da66d89b39b7974da59891c0c9b3e83b10cf3cc836d1886611846e76c19b9696941d3240ec2a496919b9616b0a549a04e8f6c39dbcade76f7d5f8501e4208990894380421526299e6d940466e8cb46256314266625631120542082743ee8e51ca794539e775518a713a9c4cd33a1d8f67aba1d10b0c3aeb781b48908d78985ff7649de5bcb48b874929a599e704d90b212f54156ad9ee4279047cc1eeeeeeeeae8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8ccc1640d891adc9374f1046554721cf1ee38c5cc5b0c7aaee8892d189679fd1e58a2dcf4e231358c4b0668845d49c2c5a63e4d9b116c7e6d9b31af698c5e1a4b429629ebda3faf1ecdb14ec716ad3b60f3b08c51eeb881fea667976118f25892424cd90a44fa966a15430f58b2d172f3a4ecd43830cecc22f9ce21face2554bb59aa16175eac433a7d3e974621a964debe6d9af542a954aa54ea7d3e97482a165152412b56ef8c42c1eb7a85633342c954aa552a95028140a856a568a5d52a9548a5f38c53f58c5ab679fb2d56ab55a2a954aa542a15028542a954aa5521f918b514805577006d2b0204aa552a95428140a854235abc5bae113b3308a5daa542a954a8542a1502854b39ad5ac6635cbc50b0d46090742d116e8025f5242a8542a954a8552a15028140aaee00ca461b54aa552a95428140a8542c950a2014073ee23c4dec0536c451544799efb68542b6c812ef005a6d89ba14aa552a9001000ada2d01855355ac596109ee73e1ab5a84d6d8df6c64f0fa58b74912e1e5b576ccdd892b11563ab638b06ad61aa6f2f8314955d503ce99f73cdbe18bbf26f677ca54b9be44c93d8b5eea3b5d2ee1b8d66f7b9c719ef3fe9f2ecb4a343e7e50c1615fa27679e3d730fa5b58e46fecc9d5f2cb80ec60130bb78b0c7735e3e270b7b3c4fecb116f684dd2385192e7d9b169e279d3e537f6d5ad894a542e6699ee6699ee6699ee81318e6a32cb060dce4c1249e27083b8f3d2f0e73c1b85599dcfc8b837b029dc38d9a04bda750e7e4384fc31e7b6d931cc2247679e4d93f1423cf5e84658deabf51a39aa549ec916b1e7d628fe7e9bb5d5e079c27ad6b6af6b0c35cf6248b97192e41679742d894196112fb90213535458ab011237c848f7c7d72f1b0cb5aa32c6c2a55dc94ec27874d8e661e6d72d737d5366d72fd927b82e391d3614e30893117f6d861fca07e1ae6f2ec9a2a864b5a100ea331ca66382fba9c4ceb78b6160d4ad07ea314a38657b8a0464e44805f9818307cf60b13d3f25ff5663886176e8142208aad98324a194350b35f98d512d0470585a10a35648512541846803aa854082fa8222a5af092050bd8260823a00210307c014816269021dfbf304098109f8051c8fef35d99a2ca3a94514a2ecaa0e01021f05842ad4692b072026c42edfcc2ac66a01435f40bb3eac114aaf60bb3b281265751bc94d27dbb8f02c9c2f30bb36ac16a0525ecfbd0d7e4ab1a0686ea2624783c1e8fc7e3f11861e30f48634f731057d9d3b44ee53c1d0db4c4112e87d039ec721d761fc797bdabeb0189e73cc73368a2637af4e68a80df1eb9f68c9d19855249d9bf29f51ad8934e3b39532f87afb904b8f4a10cb129f0a54f60532e7649c368441d73142e55972e3d0697a46795d3d8ebf887abec75227b1d8fd3a8f1744ee1dd13d81cfca903fe867da7d328efcfec72be70b0c3cb3f08d921e412777e7151c26dcf8410426eb1a81c0e872143e600e48e3d6353fa1bbb22c5e8c57dd4311c14a318a538a8b3478acdf01ce845e3c50b67d7811f31d8c418638c31c648bf3daf86182654f320dcc09c734e29639473ce39e79c731e9997cf397dce39e79c73ce39e735274cf448d98b28ccbbcb0c35d1a630a5b58e46ee912347d86161106d0ac99a18b0a4980393a2471c7038c0014e4e0630808f0000c0474d7636f624fa0cf6a2633115461f646bf2c9999f51f43ab459136dd2f4d6ef076fe67a3f57f3855961ddec99985cce17a7b177796b41fb0b95033f3782e0a77f35b08989b3072f1a66999cc8a359dc7d749eba47de5dc9e5d13d16cc481ff9e91cadeb167b5307fcc6a252c71c5b13b3f864979ffe713fbb8f5b66df60a7c8f2d33f18df0ed7d4adbeb4a855f6a6334b9bbad5a4e9a351ad2c3ff2beeb9a966ad915a9d63e3b2bdd59a11176b00ef376949ed3b16ef51636a57d7a73614b1c9fde5bac693375fcdbfeeb96c7bf17343cf58f86e91b772d893a87ebf5a863dcae0dd43d1cf50eb74bfab6a7de1cf7d431cc871ddf5833d75969d9f141077f0cbb3a39f32b800df48e8b3ba80ce6c788b58c624e03c6088748b98f05f8b82a8c8b107625d4d983ae7195bd0fc6c3eff3d03fe8b0b30235f6a64b1f6d13c1484d086ea8f29352e290db10cae9b3c321e5252f299d59c68f53f2a4711cd125e4aec931f7edf8ce9e4097cc95f4c02e5d76fbfcc10b42b82794fba65f09609f109e2aa7f0c729674bf67841912de8f3d936906fdbb66d9b7f4024db06fa6cdbb66d9fedf3d93e5be5441ff89fcfe7b379fc6ddbb66ddb40dbe703026d20d0e7f301813e1fd067fb6c9f8da3fe09f967dbbc7afb0f5bad2050dd1ce45905812a28b481b6cfb66d9e7534eeac6c5113711f7f7539844bed92864bbd228e24f40244f2117df6452e1c76442e3e9e7d40dbb681b6edb36d228f2fea3e24e0bf20e1b88584e4e31bf7d93edbb67d401be8f3d9b66ddbfceaac6cdcd9401f0e7d3c240289409f0ec7e61f0f75dfe6a00e0f9b7f3cdb401fefac8038f961e78e0e71f3ba22e21747e2dcb973c6d92f52919d1d6e4afb47dbe7b75f3f74775fd1b9c819013f76547b014585342ca5673d06d9de50afe07179f3d23b312cef3f5336e5f2edbe8e6f0f1e979def7876714650f61b8f39733ab808f85736b9cbb3e932c82045a4d36302a6e388745593fbe98dbdf4edf3d239305ebaef4e4a7de9f486db1eea14fec631111e6f997b32d7fcf378686ae61e5fc7e1c93c1c67055ccabcb73dd13ddd755d138bdae974264328676ce640add76e2a935f18d5912f6273238821ecbd78a2b67fb58d506770a9849d1fd2e0927fbbf48bbac432a861dca459a63147fddaee8393a6c2676ee67474f038f5d8f119cc39d57587326089e3e9f8b0e38d80cff1ec5a1a358e3de3fcb7b3c25b0dc78bf0f8e593c3e171ea1926fd720fa52e25dd1cf0af28c408f89cce8a97afc1a5afbacbb79ba074a0b43056f0f8f61cd804555af4dfaa66c40ebbe4704c2f02bec49ce2c05c7abbd7b029d1db4f36e5f21cd4b1eefc70b9947e5dbe1d1eae78512a1daec86c3b40f8ec0974d0478167bf54daa54dd40893a4d3232f3c523e7ebcc49878e958132fa5cb4b17cf1d6db127fdea42fda60b5cf6d43d81fe7d342ecd4e4e61afb8717979c5164ebc74119ba08abcc20b475e622e520933f480cfcc318002dfc0ccccce90b9d6ca95999939060adb288257dd8d1aec8140505b15606160a6082e7d6b73c4ced4105d51356903650e1f361d42ca0e1deb9ce3339853395cc2bc9dd37d98733cc3384ac343e7400e9c1d0d146f06182a7b770e5ceaf66ebfa1618050f15fa53062215b034498c4afcf40218435d0f0cbbfebba6870e95a4ae992244763460e34423c9c337280dda78afaadaaf4c5a0c1a5ef861c7ce0d2c7bae106d12f0c902bfe1bc520810bcffac10fa25053535383c2c26c6232317dfc4e1ebff28834f2ebb2084f9736b9f0f5f9d2a617be2e6d628842becc6a28a65f244e99afabb3d27e51175c76a3628f638ca0783eaa2822171fa3da4c3c89a6a566ae98d13c5be68bff0597b9e0328dcb7eb8701217be6dcaaa60127b5604a5c61be2424659100e42bdffe80dd6823513b4092762fee3203ce369b1b77a173515040a894424f0736d72e3c12486f5c3339f36458abd97cd934d09921f59e50dbd09b1c08d6bb8a608a7e323b3fb9a07ec4021962859eb0ea4525297345e313695a278c5395ba3528bd70c853a2b571489485ed8d3a07811aa753472f73c1494183148b8900f26c14081891ea13ea8f18ad3870ca9a92952c488111f23e8da35399986715cd40f686bcf878348ad9dab0bb1401fec718c4108a1422c2e96f0d4b85862f674b1c48a4bd4d9b320f486ded01b7a436fe84dd7d4999ab962cebca6d194ce0e244f3bd0cb116488e5afe863d42c4c824e6f9a098dbb99f39b079be8cdb613cfddc473fba0b4d6d1c81de561f7798eb8e040ace6f85731f76fff3c19be8a7af61057455c3dddb469a39deea31bcdcd46e34da48e5e83c182fa8558422c211f2194e7c673844da021433eaea9c1ba8f8b14a1ddc7468c7c7c64a3f9b417d9815e5e1ca1568aca48b4e6aef71c7966e720da0b14a35167e509129a1720d70b89bb78d9796ed883c10409a741c12476179d95abd35ebce8ac6850b0c752be00892e3922fa454bb1a7bdb01762d9132ad46fa379f64f7b79f6cd864b5f88e59966c8c6da6ab8f411019d3dc4b229dba926410f7193eb207b023d72302675e3827a4a78b83efaf5b1fb8af87d1772c7877170c9b2ad89684468229179119131ae628c4488cc1857314622442e2642635cc518891021420412d13a2b9f617368f2228b6c4d3ead45d36820851aad2f33cc60e319b3941e77e7dcddddee93deb17b254ab9922d822c6245299b48854b6113a9726ad0e79cbb9e5d999c17073f9b1cfcd6fa0a157a7778b8feb3009df9f556f5aa4dd4d7e15f3e5fb6584a89d96094c3584de2315fe64b94cb3ffde278443159ffcd99d53cb169561467b6cf196747bbbe8ce06c2d3eb72f9fe6bf4933679a246fd8345f78beb08fd9049378b6b4a07e1aabe5d9b522d3258b4bb2864b6dc325d9b35d2a91facd9767678f91aa9dd8a335e64b9320f4f99249d96253b73009ba8bbc79397d93e5fbc7439fe17171b449135bc1d7aa78deedb41f29f6780af69a48d52eede25605bb5e477c2ca5aad13f52ffd1d47f7669cdf5fbf84fc4456a866994a39cf0eacbf359e0b596e41221a4be65cc5ff77edd5b28433bb569bfd10e9575af33a681a76f1a194b78981ffbec4af677fc95aaed32424e311032fe35c92e2b2a54c0b500cc291298b70989cb31aec40675cca9631d6d12fbc595d8988ef974ac53d926d1eee260850c95c0222608149b0eedf44d16c79fd5a0bacb111ea6222f7bfcd1a65193d829ad3d1a4598a2592b5c9cf0dd7d55831473d80102c61f3e3089fda3dfe8f3ffbcf7814d4ebb55b7fa6f577587d015d2e966d0ba6dd267f2df1ec9ba1afedb23cf9ecdac321d407823141071d524f697121b1edf7ceb8e882d9e2eee50d9a102c402b14dd27c3b353c1d8e3669db5462a3e35aa7db121b9b7776a8681e9db6a9e39dee888e6f1d6d5274eed8d85ceb8ed03cbe3cc716b8ccf29cf9761400553c9dd7a4e5663469bdc395d8c030dfa1a2712536384764cef11d2a59c66d93260bea59a69e7f7cc6451aeec7e77d7358646953d334899dd25a47a3a661691a9697ffe28f67bf62ead734cf9ed1d40fa69ea17319dc85ed692fe1613a74d895d4dff1a9fad5cf132aab4ea7e729ccd4e0f4f577b2ae1d176b509802112244d6e4db5acfa8366d8cf65179d475ae61adcab53a6a1387930f39a9628f7d9b3d8649ec4562d4a00cf184789067efd346214c62a7436a9ebd081b3912a3fe374f1c6eb6cb6752ee75cd393948e9353d3ae4a6e49ec83c7218c7230ae83d5c05730ec7e22a58873981612e2b98133146ece5b4271e29cc539c51ced3a62ce6c475697584699cceca13d96699569b48fd3097f62c0333081aa703bb79620f42df750f10eafa8c5eae3d410411040eb6bb23aae30a38d225628fd8a3478fd823f6e831535257ea0ad932765894fd01ba84ec18811eb53bca961d23d0e3f2c0040128d41d653fa087ec18811e5176777794fd801eb263047a804e0bb9a3bc60077677a5f6843daa80831d81011e271f9005b2681dae885610372420048b882146d086ef523dfb07fa85576a9da1e94a4112fb5e37809cd8c49e00e12549e718c1e9f0407be89f1ddc13cca3754ddd341ef09ae239b644549338a2b65344b1c3c98a4cc4968d281b1155a3d64fe49c383ed0d85543ead7144cba521ca87d71339e88c16189010285b806cfbb0105251412c11946231317893a2b719788dedd2d49bf7e98ae548daa2541af29ae1fdd5d291b578a937166247f6e4a78f8dddf0eeca28cac338d3382c8d98d35157ac4baa5a4dd17bdbc50a1f7ee94ddbdbbb19b36c61ca8c1dd8c8351cdc39c1664a1c4d50529631632e64842caa8848c3992b8ba9023891c494001d3b48e990daad5326f5cfe3a3d7bb3b469b29ac4ce6a59539b854363860e2efeba30968fbc5f941bd7dfd89328541c7a74d4da74f5c539371a0521047b7c430f8c732dcd3c4d160b4b2dc1ca3429aaecf5d0583756be763c9a56f7d3c9381ac68acca9f95431c50c7ea0c4164688c208809040d430307a8d4d5926fde0c1119c40821580400c22702103299c0082101f569800fa00c282796c189378663ec1671bdcc831dab4b0b669070f202b14a0e0055d58824a052af1d13dbac725eca3a374e163e8638c71878ef2cae074e0fbd90a6696fe030d8f436e11927bc4e830f24eff9871b0082af4ded5113fb237ec42b6261f657d7b167ddb06ca889dfc016db0c2a6c04eee604fe8e967e069552894b2786d12a29da5492816a24db0d5cb82a351ad4d83fac1d60bb7da44bd6d507175237ff4d58aabab356f5a6dba7ab6fcb85a2fdf4a54f903cab8b4581bdadbe50e36e5e2c29eb4776b4f6a50bfeba64ddbf3068e1c761ee7cdb7b7c32d6c0a18d6a42da9c5852d6db1a5e82d0f4425aa2f94017f3d4e8f30ffc117565993ee705016f603c29b86bd38608cd04b7888a793fcf8dbe1019e4e9c45a1e5a0b2431edf43dca8f0cdf735afd9d24b7a881b8930afc641f7ec91842cdbb4ca4de4458a7883fa896ca06131a6a646eb0e9765c92ceba1af28d6a07eda5368c34aee18323b43e6083dc62b8a22dcd6b3b79cf3ba34e6be1a76e0f7f604c338cc7d7407fe28afad43824a83bd20a2112d22465a77673aacfae1f0ebd9d2e530ecb827949939c2e628e278bc50b9fbb44cebd40d5eec6d98c9a6445d0de5dbf1744fd62567722e1a9bc330d3fab9fb32f0b0bb2088c7106dc22ad0a6daa4ed8d015100998036b05fde9d1df873c03128805530cf321995a8ddd1217a490f8d23b2f7ccda14eaec3ae0eb80ff31abcbb60029ad2db08505998032600cb4819d639e9d098e5532aa0dd1a656696913ff6812bbca65f532c33450080bcec02070b527ec3006ca8042c0624fd83f0884237b9ee0a870ba2336a082759c6a121515fa075708d8f117187d11a3979f63c7f0b29354358465894633c8ae3af429a5d791b729aa48d97db123020586e03fcfe23fef1b82e0bf185460f96f67ae68fdb734dfdf0ef90ec0906f178dda51da848025c400063bb0e20627f882ca8e149c9c1085222d39488246a5bb8abc5f982ba678d02fcc152ff8af7a1358acda390a3c219d88adf92788d0f20b1384f50b3384183c1192f83c8c108a3c8c5f1899d3c3ce0d07f04965bb53f405028e414576a7d895000155a24395d81d11c5025605890d6c8dca696b54201035a0d77c855e60ac835c5dbaa4ce7104fd1c18f848693653d0bcc2eddcd560ef067bdcde6ee306f475dedd99bdc1a5ed7837bbb81b4d5768ec1a366e344a737777d7e0928d1bdddddd3cab9031f4ca90214354b6d48da897c38fb3c23ebb5115717cfdc39c1d07d7e9b07b32314eb77bc2ed665e456cca3a1326b51bc19dfba857476397006aef1ab7cbd11b08502a9ab5eca3efdaa4ee9816c25ef776cb51e8bdbbebebd0295d97a5db8dd1ee6e9a5eb5aa67beda33dd345c12c2a58f7e1de4dbdbbb5ddaa5b2acc8d644a481cade33c4caf5172af41d623d2d2a5c56b6262650b3a9ac8f3277032e4b08d82b219008bd389cebcae6e46473665896651ca71ccf3ce36418cd320e46afd9dd18943e449f6d6c84faa1a0dcc02691cace60c8791e86faa17c8eeaa64d5ba545967594e660e372f6be6007e1e597e360873c604fc8c225d84187edb0cb2807593878c21aa3272ec167beba1b3466d4608f2530c3838710a235033cc1538b854bdfde7cb384a854f80ca8890510fe6f81e8006590808a8de1390a7b8db28a59c5b06256282b942056ab158dd02fcc155d9054d418c81ba25f31c6e89c18636c4e73e2c628638c317217c351ea8a9967dec68d20222b4618202c314252f0ed53487629a152ef2d6aaf126da2f40354987c98cb4bcf664d9d282eb16f6d2ec2a676e9964d812e9d6d564ca87cfc681e52fac74620490799c8a8246c18eb92582aa211090000009315002030140c090563a130cb7279f70114000e7ca448624c1d4aa34112c4280c33c818640020841000020332232365820028e49ba333d79df63f54c4508bb52872b6b0ae1604e220ace3a0e76303c31a64ce8b515b051f76bc16c9c82cca6e2b9c60b633d19fbd1f2621f3d6356b3a1985e1c3965df037a6f81b2ed4922b6ae74021e4f61dcb7e39857c7be321249ced5ddfb70b4332193dc04a720a731e5dce1ce1fd053789846057d5ee2822133908ab80e0a10194e4a16a3bec044bd84e04d24bc7c1c78c717c254a105f8dd25419c092e4a6201fdab1738b3a76a4e426dbf23f053d4e397f5cb36daf395bca2cdd03079ee7dfad29bf67bdeb81b64a01057b2bac25a698041200a40300a2fef0e513fe15f98cee470ff8471cd78570753d21815b71deb870e8161a24672caf3b8ab7538feaa3199889b09592149615a559736c81bd7163ab8e7a58974858738a7e446ecba108dd744a1ff0648a871205fde7b6638cdff49043f43880173d1d23c2b74a312bc4128f5e12a7f031081e6a1dafd393b275f719e85110534498a101042811ae1f01ac5fd23020dac70259628dc24ae64a2deb29a04036e50518c536c995c4be321bac1645c463a220c1f0827535b75c97bc43841b6f620a05bb98cc09dd33cb3bb664b3560b3d03057c32ee64191d4a8f36efb7bc41d8da6f3ad72e962cca4e18c89f6c12482a702806326ac1016ca5c2019470948ab58637bd61218aa40f47c327b88286d8fb198532cc65378a630fdab0fe2b5d01dc661ac27ae8f08c8bc937e2a6b5ee4e9e2ebc2480e6b0f3069bac155b2640937bad072b983381ce9872ad8e151b084aaaf0b741cc153bb74104661ed447d98c5f57de2f59938317fdfd48b79d1a474404f361b30637e347f1d8b90b790651de82216f8b7f069bb590d4df2839b7aceed4fbc1ddc0607f2c39b7aaee54d96d2b94e613b2fc3d7736202d741a9a2d3241661e5af5659190822da7fb3b03810a2c098ec28e7740089c13401ed159880ddcb17fdad880a40a004a01d2cf5805d8cc2a70c19df8411bd469f11901c4590b70a0c01e685b20ca010d9c491184b329c9652f0e69484ae2847a0d649a51bef7b0fdf6dd07b571e7c44dea2fa5c36a9369f1c0c600dd3b35b617e042e13c9de4ffa4e6951832ca1096cda0e5f21b05ceaa3734203e547729326b83a6cc8080b74550fb00456c3e41a41fd59dc0a7cac2bdec7edbda6039306bc4d2d93e486b62c873012ca41d1e37f5b062c05c09482901e46fd7920850bbae0e10d440cb26ac7efb9d9234900ff38755f239f7daf916dc56e8af0ba472db02255d1e3df82ebcfda73e6f177ab92f9a7a0390a9bd2cd46b05f6ff5b8eb09c3eae73d4eff537e9781e97694a2807848af542a98a555da256adab91553cd6b64014db322e4f4bb8b0111fd919e63bd45409a2e79e75a0c86f8810d7075e1c4a1ae529b7817d4e85759c3549ff088941d1980587632dda6ed85347a6b412519aac8b3a4fa24ea51c922f5578c47baec57ae99e84090da0af27650a232f2a9d5ea63253ddf2de1eb7019c07a82e36c4b14b114dbdde7eddce3b96bdeff15be414f32b7e4138f2d536a2482457d244ecb22baceae99de93115382e7c4841b653a9ee032f560fa9961b5874ea5e9d26667cba4e9350c58eeefeab68713a4ad98282dadef5604289b98356e9ed6624444550ef575f573a67d21a2885f9582dac36740a8cfe6aef25fbf679c01b5f6b70ed775b6fcaa5c22ac01c071f4600a91dea431b98b466ba476c94aa4236344886b9e197bdd7e3cc5e1fedeec4305b4e864a1a881be3394e8cf1dab766cd3b3b8efbc9d84dc36eec8aa00fc0ccd52b2375e7fc7e2f08189b72b6f165a49123f3b31767bc6bd0986148b94669b726fb7cee027815c8df965d9ebd05da17748db924b67ddac44e3e7ee5ec465d0ea63a71ce1d423f9c5e23c0eb28018367070541ab02e9f6068753601efc9e6f41de5d4eb5f22edc2bef51af23534eca735c0b0bd4279e64b4c64c6afa1d49be81b6ca2a96662b29d656ba81cdd25e05b351d44aeca8bc2ae1aa82da1ca6ff2a2e22c0fd41be38a2a9421dae9917f24458cd4986357789f64a945de24935039c4c14eb0a34654c60dd388df9225c60a7a947cf5e8e5838c2dc265bf2d98f8537697a6bbe42a5f7ea4d6d22057f34ec3cc5c7bf4c1c4a2931838ded1e49fc562fa5e44a00093e124eb2e9dfc8c8b2692ebc61650954eaff80cb0ad2417f598fa41147236966790c35e3613aec3c981a3248ba39e3e1a3a60502b1d8c6e7f448ceb70a45792dfb65b76bebb3ffaa72dc34fd6bc18bcec7deeac8fb712d41e4d249fbc108ce525a746cf3a1163badd3489833dd32795e56e4785b3e8b408074efdee8392766599e3a66ffcf699b618e931940be95ee32aba363b3685bfc0752d11ed95126fa92f6970a6c20f8f08d782b903e765f632ff0772a8abc724aaa863922b07dea8720841639549e66d2747a5269e9780386a87e80e0a9711211fdecd849904ed6431d4f3f0bbc3b73fa6ea7b6aa745f32c6cd1c474d6bbd25bd36d5c08acdbbdbc1b00777aaebb1d4170f7afd3e84c024a0572f85d666cf6e7f8ea5ab0fa3d945a5e09abce7f22dadd6f219a1e48f8c4614e953d3c66b9b4d22ff36e75bead615c727e52266233519fb4e5ab1260f6536b056b7ee4f5809da978e8ca8357c21caef89ca95ade20f053565b70f83b0841b9315cb556606a786ded36c1ef7bf18bb6b8a72b56961f9684f4bbed9994272d3e97190f8c80e6fe494e3c477304d19f9ec2769b55923040b50932c711d5e005d8ef39c5cd89f2e46d362504a9de0d7b9db96702f0fe8fae98518730ab7a6fc7bfb417501c5459300cd4e01c322f27ee3b23f138dbcbb31db2123318240d6514846d7792017a615fd6e33d314bd8c28a960c229bc3b1326608e92f53d06466df1acba5104466404110d655b303eff4d2339e854862c0b3f8959d0f96d05d13f22be8b4f74dcd42f21128b1354aa4c87a7f2c0baecfdd54dd4e3f901cb23b6b717c13da9f2d9164544ca7491411d79bf1004939d7a12d35a573a8208518ca180a2c6e22943e4e133f25749d47e63eae354804f44b3a4cfa8b1cbd949060c90d0d0f261b4dee951bcf2f697274fee7342bda79c23fbf33b107cfefd50c126d1f23c1be2029129211d025549c24e8e19c5797092461415806a1c835f145592db9b6857d1a5281dc7e0d71e53e7cbee4fd7c1b29077f2a8277ce722f1cb09e31cd94672f2bd999fd402c4a040f3a79e9ee61783a9b909b0a11f798b400a41e6ec1c718cbb3c576abbc3350bae4d971307bf1eb06c7666a1ea0524a56b0ea54a9e766bf9f969bf452ba57f82c807998f0ea8e76eb3d4353bc525ac5353a498f3a58547f88afec241640e66b70a8866700a96d9f6cf4a01aacd2395c658bd96a2128bb8be7a62eac42f0dbd3f674cf2feb675b4589aa4938a9434e13900715047a5f023b3f755a1d4585da7281772b8e7a08cc0c29704752b3bf8769d5e83ddaa997ffc94a1b33a608ec1745afa56bd853d1cac62283dbf00f259db9068f7e2d35b59af16ba155c0df52692a21000c2877f85a3bfd26fc6306041202759e8ca45794367afba18ca6dc65bd38fec945ebf96035e4748649b027ff5ab7bbb106eeca9b5f0c164bb5e3bc23434883b500465df71ee07a200067a0307da14058baf8b5fb112df9046009fd9dfd0338546c2679f00780b21de4d48773ffc888666af2abdfdd229c73d29483b36c6c35dba5e1cf73b1396c8b9b5ebbde1f5cfd89b1e33943458d1a4129e758171b5a8659cb2d1cbd738b631c2973b133533cd722b35e3b7a37def7565b99a9205de7f88ad8d985a790f2496eb81202d4e2d58de5e0d71c4e58959961e4a5c23c85e6f254d4ebc4e5cac213897e2717d2aed780cd66c89995b4f7f5268ddf49c42856dc12849d93cab54933615742f45e40afe6c9f8cddb4ba1115608f4b7768b1bb53508e2ab4492b7fefd9ce68dcecdd08968fab729c6489249c01e0a6efa9db177bf28ce4a097393ca25b14c51b4e622e9dcdc2d2ecde058cfa2d9a0234b75e9dcb6cafa7c6da792f896149344a954a790aa65ce820d150344459d2fa9fcb334bac5a20fa4fc0a445fd30b6e23f3d71f1b9a40e472f51260d503bba091f977bb806c200e94c5aff13c2db3d9ff71ce4ffa2b18d9ddc840d6ea5990c4f623e6ab14291e6ef9e41ec293db089020f7685812852f604aab6fabe73f4af74fe0a3a18bbaface8b2019c0c2d518c584a473676ba2870ecdf322fbfc6e12221696800d523077e43909745bb26d69b482827b03f7d048be101ffe56e4e145020d1b82d40c6de73ab648c1ae1150c2d16e99586189bb39b338bc40fda619a8760715d5062faf96e3ef9b27dc49fbcebc918a36464179857aeff6c58d0f0187e55f8e2958b2eb724bd769676dfcd1e8f44c9da8bd1ac77cca0cf4981aa192ce26ff7a44be220cb05cef519042568509aab2726d210322d2e7e8554b3cbf3cacbbe0f17c25c8e7971ed33f7706f0233da877ca00e58264c74ffca11da5cd328a0800b78b5302cf4be32fa680167b1a9a0173fa6d87320b2f63921eb72dd3eadaa5cf28ec8f063405300c26ff345dfcdbf2a6f39de13b3ca0f76f4c772da2d659c2d1b5f02bace9114ecbc5d809bcdb8b02ff47a3982d6421f6f1becf49372c4789c5b1132429e06f1e58aab76b8767bf54a3d0d52cded812dfd4c15f988dc7b860f87b89c872d7f20a533060a0ab1fd1245ce21eb059ad58322c14439a6f8a0c74cd287820faadfc83d4764fee9d76034e8a37f820c0727fd66c29acec299f631cb2935a7d6df4089f5de92061a40dda8a1e50df0e4168e3c4c320858f0d1f23364c8623a1e167e7565300f987e1d9d4e14cb783bc8c46e0b563d9ff83bb586b6ef70c742966fe9ec9fa00d7d71789b56cf494fbc73690ec5eeffbcd5e163ce03b64ba3683d5ccf2a1ca5a7e5161e3ed96907ea217f2decd07587df78b1750395222cb8bf1bb6eadfe1ef640a22a0506ed4b1ccd0b38cc7aaa130051013bd5052e48cc78c5acc5c2e9c183298dce59161113c991e05ef8aee0b372410a775f7fad1e1f19197bab69656d90eceb0b81fedff2b86f39ee723ee7471ab39c6ef23c96603a3584c7acef2721debbd581e48dfc70a626f2b814de2cbfd4e06581d92586422301d63b52053cb7de1413c1697d98f22dae46cffc1e2930979f839bb48003b4ce7c8f83703cbef2c8f21a54966834d12473569da495fc809109a12295db5baa5181a18473823846f514fd230e7866a6456071ee6580645b1b492a6cedbcd7078a95ceb752a3f93ab26122ec7931c5c49eb4812bc430f829e4f9cbf605dfcc108146108bc6655181f9c0492f694c03053f850dc2b99d90f633bac645788cff7efe133404bc8dcc694924625135afe067c016d6c4b8dbe1d5f6eb10a47564c1836e0205188500a5d7bb1eb0e79cf3407eeb2f866fd297a3b9a1a67def8d1bf32c045318f94e700f138875816a4fb1dc073d5f0331e0874301b925d84134efad144c0f92503033be19dd8e021c0cbac2703fe115f1842b656b5608322a652200b62b41ee2bbca5f813e49ffc65c3cc843652c8cc4aacf79fc530f8bcac9e44270111182aed325d44734f4b1c7f53ded31fb10643a28a0cd1e2a2e341300234cb4a195757ec47799ffc8a50d19e50e685a0f26446a1c0838cbaa3e49dda5b5886c715ba189907d9212e897209f43f6881da91267263042b67dbaaf2a49417eb2ba8ed537004b1ff21dba381354c95a29fbb6f7961b3751df0ad747eca2415d31e8c394cb8ab3369457d01e37ba62da28f9da05133129761347f2e5bb6129c35486c1d800cc428fb2f5843501a0cc83081b9c4a5a886d3ca811f6a0551a395c582a89a3c70e99495664869484024cfe77bc8783f6a1a87ec2f000d9c79663d4228224ad62077cef2df6c792091d7fa60bff7de8324a6adc70ff8fa846f448ee4526141854599e55ff0dce411f3600ed30375f0c8328ff600a1a3e25a3a323dfbb17e848594870f7a2d4b2d5e75d8ec614ba244ea18891378d82fe076a62efca25cc8c8a5d8c0982a357806f8fb3cc7902823e3cab1890f5da95c384dd23c6c35ce184ffd8adf143de683010f18d6cb36fcce358c71a0262b0772098968cc79c8c6438cc2674ee9baa500968cd5d8ce87835fda3e2c9db35cb2d74a371a5caa9ae52d45292fbccf1e60fec4b8bd66272218421dce864e747bd7a93f184350c24c110689af0588d203df1300a00d63e18bc5a9c75e0dc1b51ef74baab1d1ab4fb7402915d5dffbae70c50a60cbd5d9db15b19c1019faaa07fbbc0cc70f8a37ee1adc8a62319d9d52fa092aa9d4dcf4a5e48ea547884753217444ea00bd0b664c431f6fb59f9b656ff8cdca98e7fb843e49a1a22f486b11238cbb8db9dd6ecc7b315ce09ff8bf37b33f818cbb2c17bb4ce00f8afc40c8fb2708ea9e132a42fad6984792da793875a64af1f8cea1510690be0dc17f5a2faba7dbdf35783a5cb180b33d81ef6b3f73d85c3e29abd082cbc0bbe9ecc609488ab7dccf7f80302dcd6146ef850791c0e39d3ff52533e6f00e17abe5fbce8b382a5fa36754c74bfa561bf9f1fa9766e7ca36cb2a112b920ec7832d18d402666e9a14c6eb33649d1935290b54db7d8b4ea2790a141dc8ea3c089e10cfb05324696017e38eb608fb1ab414bfe9e2bc74d9e05dc8c43a32886f517c4cb41e4d203a7985b1eadd3dc289d0f534ade03abed6b7123f56239f92a4f997155bd30c3234f91968269806fc37eb7e4ffe8516dc0da6a81194f1eeda0363ec52727d0b3b25bb77a1f865147c4231e79db613b91f68849d0152924e45ea3493b9c6a35a2688a1e38cf15ad81c4d9e7abb06ec92b029a92786708806a9f62c97a22d6567de787f9d44a08fc166eeb46f8b5fac33bf8c44fb69ac1bb9ed41860a077f6a57bd50acd65d09e1096dd7f7239621abf2fb3c022c64e0a2f6ac367e1a27aa1a6b2378a6b0bf413b3a5871490c68a9d2f9d42518c39074eddb54b22536c6db88ed6affb490e418e15bdf12caa2509c90be2a4facbd52b0ba0263cc8660aa2eadadf89db9d250c7e0accea714430218c9d13ec3ff1da78266219aca64ff579728f1dc3de3349b6c8d05db1a64e554557c2f95b11c0c9efe952cc409a1a3ca55d1528f03a266f5f966d79d2ef74d9a3cccda0603a135bc21526094829885b51c278ba8bf09453e2dda9bad162fbe35e97a661b40868244cad8ea3cee535c7af3478359a3221332b053adae96b290b41fea9259466b918bb3389dedcf8e6794f06e8556bd20adc2b6a2eef9d4f3b278da2e3fe0b4d793a35acbba8f5f96eb8a60939906d43d5e988c90723750f3c2ea094bbc4ccd561848425a44a63149db5d07595947dc64d3327ddcaf93bb29158189fb5714be93c25d9d1bb93a57fe9f27f2989c2af9d4ce522e3f02727651133f854244600459d2089a8a0a00434be2c32c1023b769ca5439eb55df5ef37a8a6892c3d21122dff19d8e24d4d2fa589156abeb9c66162e6423a9647c64ade0746cb4db98e9c1b86baa066e131ac5e4e4c9a92144a60ee474e2bb5b4d03ad36f35feb707e763b34b3c1d7c30aed9c9ea91fcd86134c45d18ad82eea69d71330abc2d887c63e294a8bb27632bfb4c4707ed2b06b0f9187bae1c944b48334e4a2b7c83dffac99bb4f6a65a36dce552b43d1ce4e3643789a34241e431c00d0aae63466379a86b1948b186a8c530d32d0e546dccb77b41249ba8e25150518c006f61c385a7d60fd574885783823d7c8d88005cdb7fe06fe5b47217e25d90b93a46bda0254c2994c4c8cf465cf27d9dcba6a1cafbabcadffb355867023585decb33d80459dbb319e2deeb7319afdca4f8adb64d3c3996ab5f3183cda714ad899a94e844befeb7603315d7243a643e380c870be9f145c1b857e48dee79721f25b1093e6c2ee51f30fa6aa70b5039b15c5b2c01522eef644326b0a489fb0205dece1ff7ff821446ed1bd47976863be6df4ed2bb2838fb6077c0a3f89f94a0059aa049372700bab500f344b10d2801f784f2ee5e8cc9260e8e4549b88b0445d1768d9562e68f88eaaf90b464dbe4cc3bffb0159b12bac291dcf8fa392d117d53bad45136b803444b8a614491b818a3b522228258c6907274811b9ceb53318c53b4bd18cda7deae69d0da0d07ca5f2d6a81eb8e5cddda026e255154bab4365e5b544521f0a65361ff352dcfebf8a49c341de2a11a4afb7472e57dfec028a846ee43383c0bfd8b8809922d71098d14f74d0f091567ed10cb5a7ec744a7522101f5dd621a4e7c5402e85bf6a380306bf5bbc0be799bd12df4fdcdad807613f80efa9dc1460201071062176fb9cc8a1c9440632c2ac3140d5e529806309214f5edb799bc8b12d02b9dfbf5b9c347d7820a7697bac6d94ef825292b4451167b8a6e342823db7a325e6a3e4fb914e5ba3248db22c4fa761009b99d8bda5a2058b920b75cbbaf1237a3a96b69c44feb086527a2e98927c90caad38ea47678c08d61dbc78f81dd2595ed5976d50d46b2412aeeabd35eb0e828e53a9420c6f3f640ff7bc04f6ffb13943a095f1a6d330886e208caa2161036c9e5105c848cc097025da4ef584504265799ae3a08adf1b457c8e18ded2c98586768136c5e7437531dbe32360dc66fdede1e8812735cccf9d126c5a81dfae3b966a328ccc2b94facd053c445c321b98a326e00e50a38a221d112aa945a71884c1fff539b685d6967e65e98d670f90aa3bda05c9aeb99ea65a85e2169f04d5310065f3c4480a6908bcd970f374bf9a87bd5b02d22798a0906aefbe52716e441e7cef309f2d3cc699615eeda7959237d97c9c48cddc273b13c05b15435370cb75002b58f1559489b4a4f619653640e54e805435252acffa192025f55950702af6b618b7a5583ac4670b2868b34383d133f55571db5d9ab3a8b1b5ae87ee5e3e8ca78cb7851fb978fab18894c8b1d262adf4eabcdbbdc8bb6ffccac0d6f24cb49273257c9046b93332ac69242459282ac1b5e4d35822969fbff853b11b3e706c8e9795b4cee9eb7e26e50af967ed55aeafc789ce18f8214c929f4d8dddb56e12ea18e380ba460a939477d879ef8dc802e54017a2f1fbc9e2c80dc097f5c419d583d6356dde76ac61a48ca0e81a195fa63ffd196af798e922dd16771b342806e19de6855b48484646d316d41ca921efa1a42f2c2cc01a066b49cda0b20fa67108a8cad9f16b2b1fbe072d91cb5e11c7228162c5c2352e136c58457923240b3fa6e25ab64d382c9d74c5dcc2c99e301df5eed984dfd8fa9c0eb4d926e211722c4d0d0a052a50d250fc2759021278f26013efb64aa3446ddf460a9169c827fb3eea68792e287c098e5c4b99ffe116f7a109d1b6adb30e0daf186f7858e3b7450c4541705a58473976a069677ad40954ce22f23ab046ff059f97ed93a95db7b0a96925ca98f5325c992e87e8b864e79ece6f22bc935186b14ff8c8893bd34ea24f748b1736c5eae86477428365080b9144d556d5769d30bd6d8a67e3dfbd3b3cc8933a851582a4f6a9cddd385e2429371ff609187dfb4eac033cdac87b917c5c534b46ec06003981b836cfafdc4a882092867fc058d7f891775d07aaf6e93ea4f61a0a1b62450faf30e52e40aa1d3431a7c074ee7c47105a2b6d87ccb84b8222eb5cf366d23dba1b6741687b0858c9d733c900ba09926dce5c0e803b7a89975fb716cea6f27a151fbb7990bdd4bfc149a0951700874c5b237c5626515510d918043328a6189fe43148e91108ab90755d67b7cf08bed360840863a68a3834bd71aa5e3c77411b0c0720cc70e8299fc162445c977e2cea34c4c345f3bde6bef2d4cc24255c3d90655addcc35d70ffb266ba91e7e754d21b15d8e9878a418276644c5909f6b00c085f3d4b32cdd96e350a9044ec06a677461868ce45d440059af35123bdb64290687121030424b518b5532b74128f6d02b33aa02754990826335516e131337c839b92b1ed85dc4453cdb4aad2904f7014af3903136c42cd7411234ef7665d465c2bf629f16f5b4456f21ff6bf65dd23e0eff5d4bb6a7f7a58474b0794105c953e1f5115f290e453697e44b69cc458ada59a935252f4720e14b3d0307b294b651ecd0a92a1e68f44358ea7bb9f7024541c5ddec23c8fb57078a5c5e18a40a867cd7e575e66160aeb6e148e64c7691325c7a369b888213fa84c2e149a36e0fc1fccb6af0486d826fae885c93cac9776ce31c7ef23a86a49d6a9eb763ba8b1394643bbd66232215638dca0d9577aa3d684c87b6cea0d8e3ca6b6dba1c627538a955434d2ac40900476e5dc5d89f1a6ffb13111e87e9bfaf5698d31df0680ee9cb18d2dadb0bc5f78550d013218d5b1bfb4a72bdf806ab32054d4eec81a98d868d0155529b06f10bc3ed78f5054a9abb18de4771171db2c96c03764e7caec1bbee4bc4cf0592651738446d2a9c20b70530a584e423b58ac801d89ae804e1e145d37041b115e9486d6316c41a82ff0312f69c22de1560c3815d50cc342c55750086993221413d21aa912f0b2e35aa3ad04f81e021a642dccc0693c0f32d55d2a45cfeba8a2026c71f2f8bac47fdb7b2fa614d361ba7cd6b2338b12448a35bbf0fd33f8be7283a6bc64c43e8e8815e1881009550dc338b1bd32ad4180bc4cbda6045e941d9e73f4dbb67e4fd7f593423e48d1f3ea2e3c0de57603b60fdcf78dfe48f877b416318f949d691563775301c9697b2c3f0d5ff6125ce62f12135e2013416d434735430864975e8bbc58178fa2960919b753ce0ce1cd8203d41616ad9e63199a33007ef227ae58665c3064bb183aeeb819546899a2b7a100bcc64f8a3cafcfbdaac215b062afe8be06e875c2d2577afb3ff318b7e7ad14b390ff7806f8d4d19fa17527479ea3b8c8db507b4d38f0ae32df4783a3438e737153d7e7da48f6fe390ac690a6606d18058c005e197851b590a6602b36787ee8f25f42b1a7c10ece15e60c2e8708ed76df6c70c7daff5c591d49baa3fe6fad3a4c91f5c666aaf1fd2f8a470bfbd382fea2453af54474b5cd6adc0fc25b913639f7376c22685c83a4eedd9608485bf2dad5edf6bb025acdef2799d756f76f9ba93fb5064349fc90eb1c8e262bf1fc3f15ac1f99c8003e11364c8ff4e984446583993c6aa0d3e40b9bc8d75c3ad7abd90d1aa9c1137dac67de3a998020a4579c69fa18a3ef8434c49614f5559b50a3bd7a520b95c771fa0317eb6d4d7e61eee3de85665b73c10e490fe8ee17a0de28bba79cd94723392a086ea24b7c9842bc8500eb7e99d530a85b500214a6b2874341ad844548b27efd61a3aaee1b008b537fed0880fa49d2652a83d7c6fa31db463db8d26ee054546e852e106084485affb1c2706df80bb980a5db8800f6de7371b5e09bd56a659443026560e53af1b1a50f686104d34d7c814dd62779252d52ffcc0a34529b1065ed8f0974809ea003fa1211dd28b14365d1af295ebb600e6400d75e2b2e6ffb70ff2930b72d87ee7bc9f5d63836a76468d11cc884c59d93f1f61cab81f80210f9025d9d3c7e835d196d6565e1a583f08d8cd222e05ee60a455c83cdf7d92e08e5a369f50c7e00f9ef9b573e1a110e784ace167580b1e581b4160541090612c2a264956ac9a98a3b4a6b960c3777289df7ece0f24f56bd82997f27c1d850a2a9356d452f5e464984e970b50c5dc47dfafd0e1fbb356da14b3b3cb8476c44ad5a8fa48248de8779693c4f2993bdc4d35271730724650b5162beb930d441b4f958a58f9295b9fe568f0bcc8f6f39f4e8a6d1b9e5587471ee3bc73c2d59f78991f490b3d5c42dded67d46dab8b9dda0bfb737c047e253adc020caa6a11ca9279736184edc3011773a884c8c37cec85779d7f7d269357a805754a42d63151303c0f960c6980592106fbc81d16f6a85672a4214517c3a3a08b2882c3c325092fecab8de04e2ceca2da1f85301164aaff3284e7662df2dd41c2702b3657457574f67d1aae5d4b0c7f33b4cea77f12e802f1e3704e01cb2fdd281bf62ba111e100ff72b25f814a5774489b05318a19048db5495f48483925e518312ee8ff8fb86a3a6478a0e889f6391386afbc4719c1fb5b79e61e3e8026ef36e0ecd0385be71b4ae13f8d13c6c0d13486020caee72a5b171f45f251f9cd983e13e5a6e5c1f58f44bcc14a79d309630160e256283ce33553c620f8c6312aaf6d0cfcb68b56051ca7e5025544ba59d703e10e060d3321a4dd926d06baea0f8952de9094009e90bfc58a4b87803c16781cbef5f8a8c7fc44e85d5dde2dd31a3a9e7a2a310408f80ab3f48fdf40e1b3c55080223199cc260856067bf8808bbab061d95040469a5bfcb5e040d152162fe20156f1cb1d471b4c0e4cfdd818415c6c9734159370a686e68ef211235061bdd8ea5b2db38f93a7de947a1756bc61146c095ed4601feabe99146c59ee609cedc38e2d7cf068525d43e8e2f96932754f29f6169585e6a719722d21bac37597c1b327588e19195e4292e9eeca01202e7405082d0cc981cf8ff0e62e379a074a0ec1c1cb8047150f2d03e102a2f80bfc868ccdbe15b48897bedd4a61ac0c2abf593a83c12693ffb60870f63c8c0682ffbc8e3885405a4f4c3b850092a79f443e224760d6c19db755fe6cc5ff0460ac1c2a134fc86d01632633d633121d81c7746ace91008132d74c72439faf56656a69909742b7ffdfbc30a9a789866c2d0acfb6e6204d33c015d9b9a5bb6747a27dca77888baf0d233c2094f9f2a38f0e19ac5e4a705d19ffa13be215b67bf1b3391df7c9438cba307b926127a8f573f119f2f438f5e0e293a81b649221f35068ee805be26a2435d90c0f8fc1c515d0539e7dce44dab6f4dda0bc7ec912185b8733ffcfa9085d128e20a36939cd8fdc0fb307984da503e3d639cc50d89156d68f136fe7546012f2035ab9c8a990e6de2d3bf45ebaaaff998fa58b71965bd2a23cd421b4a8e4e9160b5718efa90a302e369b16b3267b0d023c376ae4c12b8200ba6d1911e61c71683bd5f8e38e94df303a824a00cb6db126743b005cc25cd477537ac0b0806884411d14b4158912f6f6417e82baf1149821da5641a4b7f2b9e9be3613dc3e5e73edac7c1f1a393293b488f263d9a74548f47a4b77e6c6152b169b938bae09fa9b6c04a629ed0b6818a469e2d840dcf7688a572768478b2e0cadc792979efc2ecdee8850e308b29a97f88782ad68bdb72bc4387706c6391a470b1815978f291fa00deca888cf5c3349c962123cf16c2f47f49707fdf3a151814cf460b93d905c56751cc61cacd9e00a3e68c8d55f46ddd3ef171b9892d05dd13aa3fc1f98be2cd7097268bf045df015d7cf29f90838f008f7c6feb6889737d79a9d7f4a41243412115429e0a56a561d2855d2cf26d9c884d044bcae023ec5c447c4c147a1741a0105461484795edad9ff4cb4333a7f67701bca1c77545f3c0104b73ba08de6d31c3f610a730df4ac343495d17131ed7306a8e382aefa95d3f4dc8e4a5a886a694ee35d99c7598dfcf918fd6e249ea9facaad2e0941e662e42c870694ae5eae9172cea47474d42c091880cf3be295c2ea1bb21a3b05e8bf709f599676a42140d4548c575a1163f39a5daf9cbc321b3bd3c2624099b27b3386e62407b8d28b3e89171f48a3163c58510baf76d5d0b78997a5408a02f6ec4e53b54c84d6d3f813556c0e8340fcc06ba130d4290b086b04878567ae5303716fb726817e89741ef1e819ca717d007a3b53bf7d0e6cc7caa555f1e7498270079500a53c0c949d4bed32008f35b3dc47ccf0e1e792c0318faf4755087826fdb5ab045dc3593a121115405c39781d04da0e1d8442809b983f4ec2d9138ccc3b32073290abad6c15470cc59eab801154bbdfee6d4c1e9453986dbe6e5ed80b7c68c896fe97eedbfae6c8cfa62fd583026565ef2f3736f59cd24447893877361b91bd8094127d9f361eaec6307c3484771ad09c47451b1176616b3bb176bb2e8f239ef7b4b60f01fbef1e4feb74e5beb3396b21341404786a5527834846a7206a9cb94c71c6a22b3af14eee46beda123c68c29064ebb55f3cfd9001b5ce48fba38266ec73fa39fda5ae0e0ca6d7c559063b3a52394472a9b03d5a82ba19225067d371546be4f0c01375403c3cd3a5b529c7b2d17592db5cf01deef47ce320b443d05bbffe0ee3fd48d822110af238a955433d8a7d2b84505d9818c9d2727e46075b4883476fe26a888163ac28a0437c44a95a694059ac300b563c4c720221a0615c85d0f6f3d0a5ac1a8bfcfc9102781740dcb026d92611ef175b19bdba625d7859e8007cecb33929a9c6e9aa98a122cf1540ea87dc425a63d22676232ce6b5fa6e18e76126d151d1057d30894e52129e4da8b2fbb00b68cde74c4554b59b847943520b98aea8d2d4e79cef24acd1137e3b932a29d5acf1f4a38b2fdd984d61c938847f32d753cbd536b383aef9a952d71c0a28c95dade40d8b8a68a95bb8e1fe7dfa4064027e7ea913311dcf18ece69d09f7011f9d556ee4872035068690e48c5c9722c9006b22d514fe13460519ef972e722f291418774527dc8f9d9e0fae47f7f95fa8697c2d1785b9b071c9415fdafce7daa7f79fbb07ad5c3a70e460cebc37f6b88bcb2888057161071accf1acef2d66f6cfb6faef3d39c57f1baff4f74ff16d0f73aa2eaa6ff79c7d8621362f6b6a9f63dbce1dfdb1d635773e1df1e8d400badcb5fa0413e68438dae9607e198f525440443031c50dbc3fe0ccbfddb1f745450be29cdb1ef281084530fc4c787ebc7b8d78a10ee87240464711f696d87b0972f71495590279265cb78df25a06b1e97f8892b02c3a54a1a4248c91a2df16f245691bbfbf0efa52951c64066a599d8b60cd9eda46a302a2b8c76691255fc439753489242bcc0ee943adf7fcd573058691d004f9f6f5929ac5bdec1b1e7239703b34c3943c4ccee3d9413a4349778515acf24dbce7f1ecfecda2c86974f0b510b911f5b8c23b5d8d8193d598edbfb88aefff119eceac3faae09b4dc35d7ea42f9f68ff31bcccae09381d2d7e42f41a692e5e820284d7cb4814915b4370bc61140c1c51ea2f4a8b824a9ea9056507e61dea06af808e2cd475166475a1fd75d1210f28b9102f484270ec10f5042a796c8b794aa03c622a1877f8586b0040a1b5c499309f40feccbbd854bbee1160ba48fcf2c82a3300a30233e2c500b30f44fd42f442a8b988256d1e375cdf259519500f8dda9ed9a7a3935a1ec30dc03dfab838eddba3c38b9e771ad6eeccf92dd83d8f1feb259bfb5a55f2853084427e313c92975484bef3f761efbdbc123653cb0e46cebfa8a0e6eb6d2f746fa1e61ff5628662b1e686b85e56d92b12c7205c4894561cb09ef8bd44decf4c1efc4b399a7fb485e39e22006b42877c8d2ec0ae6e3ce584c5ba26a7071eb8a81a0daa4be31c25a1557d5503a8080bb3f82bc5bf3990b0194034630cf6b67bfd5a23d62b8989f772288bca952e410edc58285d6627e8a7ab3e655d8487a4e1cf55053a2f9c532966d1032c228d0e648b4eb8444bdfadd56cc92586da1b14085ad73e6dfb4d1d33c78e391b29bd9c2900d2d3bd765356b433e1167aa25b15582f61c058e8856c65d26cb0c1426fce1f18a9f5c0fc80524123e30a46ff8fab6a7a59cc9fde57b23e2a82e47d0cf58475eb7508955042e91cff7dd8a0b1d5fbd8f26f33eb037e4835bc5eb50fbdfd0491423b0a42ab1b59b2cb9db433a34e5d15dbe82b6f731d1db8528f35bcc8dc3b75d8c665a2c8acef611ac76b17a8a29801e2b265ea1d42dfdc6df166cf757702eb95b19a9883f472c4ae8e257cca86f4ffb9c775e8a010f402cdf9ad09a971694b4c025b12c6761ced59f416a4acbefa41dc6503ad4b09dff4c6e9de8a0fa3a1b350a34b9af982e956fc1a50ab6f0a7f72e6b9c73d8927e6aac41df5f74dd82dab1f1b824f428e67dc34081aa2d47300d8370f239cdf81308699d17e27196acbd4a2a82c110893e6c4ef41a43c7e6ddad9992e6e53806fe20dba36b0c2765ab45f14444b139ae0f0eabfc04f53a5d6840f294008735402a2c6ad5fd7ac1aa655b256d61a77a6216b2561e40d65169eb125ba34cbf89db509dd126edf174525e42ec2838af3d50f51ca150c8d1a04fb29ff652d9e716dc36d17f39e0fbac59053fe2c67ab1715736d3dbfeb0000323c2f35f5eaa9767df85a41138769204ae4b33b604ad60e1132af9272481f60725307202a374e87cc08c8e84cf0bc0854489edbfd81727761ff047505bdacc64626182fa1339d2015ec980c294af5a49389f4b2b1b6f5ba305614022c3a45e8962a7ef80dffd99c8629bc6d94463e031b74923d0549bf8aa68e432f9780b55dbe543d40d92f0df986cc25d9b91c09339c2aa2d7b3be51f1bd2db60e7d28978e04328433b19090c68d54140e8f9b3815340a3c973703a04df03aed20ac1904dd6cbbb84f0001dad0ea81d874225d5dc01199c70b6bc56a083bf244eb71701fa201fd80c65d13ffd6a2129d6c269e948c1eb1ddc1da873241651b21bf067ca1ce3ebdb421a443aea2b551e8eef42ec50f13b004883e3fece9dc7ddcd2853fcb3729207cba932013676d2593c5b004982f9d3e19496b519052e2c0ca09b80502d9c9db473cb904940072a6e03e6a3a5179e2b82f71b0b352a7de1922dc1d5bc8d9e234a15b7a142212b414d955935fb9d80c998e558f152e00a3df96529a0f953665997d1161f9066ce5941a1053b7d6fd45510e967a21ee7dd765dbcac54f5c7358a499d40feb5b16154f9b5eb90db93b91231911265e062b15051861840f7e76de47f3eb6116fa19d4a9c43ec40b431392d010112949cf000f845b8dbd849de7cd43c45d42fb5415ce89698c70c55cd2f4aef1131b98ee46ed530a0515fb19dc1281dd9580915c33448eeda4f6d60850c28d5bc40898e185fc37fb79458f8b3eb6bd0d0cc16ea1032389e999c2cc4957121ff7df19063ca1e78881da767267d2afe14e3e4b820674df0fc2bab4e9597ba93ad2bfd7aeb94e4a4189c0e11ffc6a6439cb02fa4150d525d40d221227907169bdf3cae12222b5b36e55f1c5759a07d793cd458722cff0fbe0acbf6285b98e00eb6cbbfb2670cbc18def714df57248e13ee646c4bc58a1d2cef0957e9d87a49def8622eea16333b84273923eec39c96600dca566e220c5b1cdc68acb7c4471057d76c629acc10e49d3db73c675bbc03080e79929e916ab0b6d2926a54975c53b9a910b69e0dc49291ecfcf111d82b2e052a530b0ddfa95ee74812a7008f9a144ba13e9a96fd8d2fea4393a377cffa679da9051aad7ecfef0f641b57b530c0892086fa12b830e5cf3a8a8a8cb16d18a5f263bad8fb9740c98b4d6e18285a50f29e5509c2919ede47240eefffbf46a25c3da744bea62d5cf390cc70d8ed5a906a28ad9dfce4c4c9ce27da76fc2ce462a33e60c61b8dbf6d523d8b9884b91def69aee9b8c2f6cc51b8585fa36facb9ac125e6c399d4abcb7722c97f4bb256841273758ec24e16378ba8abc6c588d4b83a1d81c58798fc7062ac4d85d1a379abac13da7dd7b4aa06becd8a376ac1bbd7ea98baa930dc62e088098df3471932d4ff989918599f9ffd177caca6787a5be831a729bf3a39e8c1144be114cbc72fad053237a138300213363818fea9b4ae1715774a01de232ff4a8a1104f183d9d88b524032dcf286cf89b8ed993189cd439ace2ff0976a7fa4026e2803104d9f4972b727f6897a8e1d081a9f436886c08dc3ca57b5b0c889a550e5d5b4e28ba04a41a1f1286e77434f77b86d6fa14f7209b6dd735c12c35e4aaec2c73781c87ee603882213b2c57c82d60841d9a1930451b1dd3edbbc6d2d511a73235076134cd9dc4aeca8f5a9908e670290384eb3b089693a62ab698e4bb9580cfd1a4e3c09a68c59435df36106ca3a04b07fab89afac77dbbffc907b2f5cc64d2659111ec3a134f0bb1ecdd050eb1f806c448b226a459019e2834f79e504eb4d1c4cc9ed0b518382da128ff08066c5ff554c38c85b3eb651b5bbb148afb40e6364c5d68013f4cfc93c9f29f5dd65a53f8ff59bd70d0d3eaf33025e7cbdc968982218e442e71371221940e94fc3faa98cf5e76dc7f2faa685ffd9976532b8437e33222d692e479604a038f0f80e1eae08e46290a707a0209b0f695a3f811f57ef6c28544e3dfb5b6261857e3975a23107722c03d036ab25856173c2705cd0e370ea4b726a34fb920af9af7ab7454b089967ead907c200df47f58665f294e0f37ced5ed0dba232d0d125724fec88e86b096f9c1df8dca803fdc15f43dc1d4da50bdc53808efff2eb41dfae5f2fbcdc18cc052c29283449d4a352c3c7958fa498fbc93b8a492b06fdb3afb3908180e9666a9e580f6c05b412ad45cfe7dff788f3df083d7f0644d9ad3d47c5b27ff8acb85fa0d99d473d8d1026358e88219a2018fe4f5b74f6545801217673b7de52102bb91708bc7ad3b3f763a19b6b41c139ac1367b89fbb214fab91d927319ae96b3c46c1a30c0ba0cfeaf036397cc3906279a13b0949036882b803388e9045bb88eaf92932a9bc02b1642657dd61111bba6d301bcf8ce13fcf402a9ad73e7cef786934f1a91754c320861d45327fcae399fc013f06543379fccd1b551e653ce40ee34faf67f15701edce577c4c9c758793b1ce408e1ec28f88742754c26f4e4dc872eedc7510aa87b1dca15b0c54cc0d88ba1bc6bee7c883aceacdd412adf2758cfa83c74af3baad8ba9a336fbfe597b37a8a474fc20f35eac00097662944ad826ea9651dc8b610402b9fbb979dbd521082b4d53de96e2630e05aeb695216e94789b5ec610950d3579d60741ad337520a50b1a03967fe911c46e332ae6fc04eb36a7f124aa364dcf49014bddc6521a0ce2d710d5906e83a40890b804ddf86b9523baedb2ede945dbda5e4be6360c0b88bddcf62c7777bbfa9aae06719b21cfd7ef3918c5f19a24dc669a93f4c1e6f952736d8da56e1b0ec2c2e2b6618981913468ecaab92dcab203501ecad9feeb3ab331e3dcde9ab92b57db06954c0359da129ab468ce6c1b620a8c32882e557dd24c728808cbd08bb628415024110d68464935ff946c925d98be33e955cf85fab61fce9fedd26b4d12b6e6dd0f116596d921156a1acb95dab6583486bd0b2fe6e7b91a1437f34095b6299fbc46dbfc2e78ab2ab44d3e019b26e5cfb63f0d48dfe47e8db18be76b84ec3f42169690e97d481955d2ca396587fd044e9702ab29ed905737ab6440598d979a6b88559575472ed363eac35cfb14594b1e0644679da432d095dcc7869b1e1514d92a284a4cfea29a5e23d93da059da5a51f06ea12609a14f53812f2d0d826f6c23a31b6960f1461a80bc91466e108f0afd7405c4cdb414e4c6b404e646d8e69bd041d29f5640ba4f255cdef04d5e95f4d30a48f75329cb1b96923f4503a1335d5171c3b73d2a37d31228376ada73ad00e9be8aa1926e6037f21d6cef074ede5f4a8bf83270c5ccaf9ac0c348906638bfe149888106649bc0c8083923708a9d817d63338de494f5b1c82da1ad3dddbe387a6125e296cb108553da111f3f2d751dd5a266791095175a45444cb09104ab23a8f3d619285464cead9876dae573aacbd4137130834612ac0e80ed62e33a2a8200b5a4b5f769326b9dafe71fce005b75abcf00c4eba2a07acfa50fb2dca4010433c9b95f33b84a8f7d081218cb3736e0eb9dc03db9c94fdc30075c899b1ddb4f49ff0503509bd086172d2eca423aa2ae876303d0c09fafc137b616eed17eff2ae231be5a5125c7a5b8d7ccf019133d7793b7d29eb2cefa452efb0795189debccff10948f7f30a0f83d2a29977d83ab2fe93d74816117e21a95fd0a6481c52f80592c50026a5e43905b167fbf1c3ecfaa8e3408a9d91afeacaf06ae97c1c7a7cecef05a65277d3e2c5e4007c1f5f43dd731d24dfecef7bf37ed268fdf548c497a9f0c6b6530846e6f852c2ccd5ebd00c60a9c41a240b7fe59cbff589dd5864ce2fe499e283a6a42a2bf04e5df9f6e93e854dae2bf05ce3ff6e6e2bf0bceeb657bdef4c3a0c8cd750abcd7048a50bacac529cbb61a1c9a8d097b6b4f1dddda3fb5b4b6849fde536c0eb86fda4d6aac079d06121ab98e81ae2477bc9f7d69626a8c8ac2483d99867c64ae18b6cfda8e0eb78a7c6bd4ef1059759fb49a322e53d8350e80d6a58015ff5efe4a43c8eeff96a355bbd10820aa3edb0288943b46290948ee0d5aeea53db4f0549e9bd7ffbce41561376814a3ca70f3fc59907bef82e0289aa9c6e832997d03beba8143eca94264c9c87cf9fb8da64f113bd7ffc63798c6c664b53dd232c5b8b479e71a063a12dd45e94d95807023e8027da09220ddc904283b6925c93d31180e27c08c59ab6c322938987a1001aa49b6fb200a7133bc44777c55af97880440ee31282f4fd9917ff5cf7b164ac3669622bf843127a1b410a8dd12be59d34dbb53b7d05654e5eebff2f052b3ac8b3a0817fa49e6b9c58ada771b67ac4b56de9fd6a6c7dc74eec65abcbd403572b1c63b01bd94d0b325f5e8285165eb292a12a92a0fcb2f02429669538c6823331c66ff37fd7da047e75f7e6225122a24c3f018c553b583b61cb8001b17cbc7d85708662d1fef116a115a70d75358718896562cd0416c1975e667419d23ba34f95ffed6ca80716cb8c4e8fd58ec096b67da9bc6a63b8eac077bd23335834151a304b6292050fbcfabd592cc69211e904178a2b1e97291b89e6300dc55bfa0184228148c1715a5b9c6593531d7befc0679a1a25caff02b7a2a23b80e3dcc47eff3ea57f685b15f107c71910feb838528301ecc16d34e91511e6468e805203b7608f267c18e500b092743cb20a8230ae62154118218428c96f5aaf319e44f8d2c7cc0ec66b28f96cd0f19b39d9c7a89a06f367c9b906c4a075eed7da905b7678d873d7ea48c4d5f6a2ff9f928e7660a80ff2114e37129837bb596078e35bceb51fa605359aa380e69bf5521b2a7daf2a446934f9726ff3abc6d6572ef4a396148bb2f1b67cd014b420132ba1f8d80f001f82328ebacb0e6f3e3156ed36dacd3f6d29f7a24016f0223536f48f4ab02aa21866a5a40d819a50315809b0706e90cb782a2cc34b20421a32ba25d9bc99f4d2c6e3cb5dadaa8339b558bdc19ca6c1329d11c37ff44bf9b7f077f040e6fedb0d49d9a8540f15a8a71a5cfe4567a3b5e88bf85b446c8265b4a29654a29059806b30679068c53f919c74f1b051d08d1e0091448e184940dff744737395dbf2628689b6d4d88b9c5fcccd7c4cc97f75ce6aa4cd9a282b9fdf7032571c5a02884b9bff162f7c41542f565b01be6f8c9a21693b9f382b939ce9136bd57dd8a79390da6eceece90b4e61e85b9c11c9dd6e04e6b0ee10fe8037520127ed107d68fc5c4026a1373e6f56ae730872b74803fffb406993037eb87a4220db546d41a4905739c4464f9f88924e4343970a74dd0fad9608e0504935893c503a8b3268b0953eb87a4c2b17eaa3f49451a221131c429c1e0202b7c0d54df018a88267cc0a26292036a537c7fd5df39e9d4132128aada6e11d576cad50a82a13129fd9fd31ababeff1ac50f142218aa0e871bd509b566598956510d3732372b08b38aa4305065ab0809d068086749ea9ab2c384a4bae979525ab1e8cc606e58ed6791f366ffe1d4a0a0a0a020ae2c3f7e728ee5c7b1fc38961fc7f223c54d7158b8a1974ee82575d329cc7bb486de0a54374cb2f564754cb1826a78916915b56963f919226ad36605d5366d24294faa2a08a381879b9e27bcd2f96929a824ab23687574ceeac8c1eae89ad5e1bf6a9393724e0c13b2acb4d6a9ee6271748e3e8d5005d8192c2a1b43ff76756a153131375265e7849c9477d3a6ad357030ddaa6e4ee8e138213f59df83f1cc9d8ae554ab48c82a12b28a84ac2221ab48a8f65f317ddaa5c164d8303a676a3fc4b69fc1c47cd4499ecd58326186b81a3f484b8d56910eee231dc2d56172a88ffaf07f0f6b702a84aba3459695519236ad5bb5a9ddb1a864f8b4b489e59cacc9945449cca58da39b569154c74fa7f23b52f9dd54b652f9dd943e39bf5b394652fdc74f2567a56ef2e7c6838ed44da63ca5533799127258541f9cbb96d5690948a6984cc9ac6295935e542a286d8ab55f3a95514ca6d4a56a333389bda57a5d1a7f5fcd7f3706ff657f251eec9e79055956e13e94045163b3c4c6157ecc860052d7c710af4a3a107f2b0341c426becb3622d5f5889472b6790055b9e3c76c082228209e1c9c1b213e80b22942c4a63387331aca69fc379a02d445c03a51f719c52a22043ca10053d4a55929eae6f080779c581aff6d8550791ae5271ed8db79f06f1aa933aa32651e8bca6cbafe35be50673a54025195af7dbfa37bf02266ea8e989db338bc8b9ca651ad7151dd1c8edb3cea564ee347e6d6289ceadfa8be699c36314475f71643a9219fd2a13f76671e8ad9c748a771331e98db026dda8e6dd9ced91dd9d364def82ca48f54e816c8bdc7ee3dde236d72bf31fb98cee127998334839a5b8e1c9a9f484db3cfbc29c78416f7527e0dcf60bd5cecc9b64e22dd64a88fae3b3540fc1a6703b84e9b5c663964688d44431073dbd4b6403d3ab5127bb24e647006e019b83a5ff948a93575818a2c6152a3e8a903a8db6408486aabea8bff36d291baee57d28d531be9c6b094c3a83af8ed4846908ec46c91304f6bfc8e75ea26eb7392d6f889cc8d832a3f7f10ff38f3730f2f6993cf4ab7a7b52119c133f0969c4ea63e1a054dac18e26ad57d5197c657dfeafa24673031fddd6f927b3c0a3408cad81d42777777ae9bc589f9c39708e4fe01b30eeea6400461b34ec3941b87eb88496368c8d160687bdd929925d3b5c61c63e064e08e98fccc5658218514529490b82e77c49c4343a954cac560680a970c26c760b67b13b37f87bb7f7b336525574bdd20ec808b8ac55cdec47a62d68582892254acb5f782d41aac0b05134e609c2884484f7a3c489ea2035131f95d7c7047208070477a3fe724c7e31e150e92b6b40b93bce95c4f4f632a98fccf1dee54774ee0184b5a1cc1a2852319904be31648f5e71fa8838214277046d77c528cb813522c50448a1129400e047552640ce16a69d946f154e824a6352d0673cd633d7156d0e28040d00904b272ae076594525a7224a5942d30fe0b12639adeafc127ef615adbc74fd6ca5a790f0f6bd50282920eed9848f4120fd7f2075965a8ac60c1d929ac1c0bc8d2e913c90904824010080241a048029a4a6411a36b3e92b52a790d6a7bcfd2f4effb0cf6047d9ca61d07b5310cfa60abd5e1a7c602b35698b5c2ac1566ad306bb572b4897ee078e60681e0eff4254dd3dea3c4dc302ca64fd694d502a6db2ed580b9295e58ab9e521b06d55ea0961040a0b672ac1c1719832190b56a201f68cebdaf2010909b62f26fd62aca12cf0c22b02aaaa8220b9b8dac23f248dc25b90e5e1c4ee1abc23de79c73ee6def767777ddeefb8e40e032b625dddd9db4a5a51b103ed60f4f3d10a9bab91238e7ee3ef21f556f2942e28c3823468c3823ce8811e8a000020448137614442cbc22af489122afc82b5204c6a0e8f301fd30cef103c9aa3ff32ce9130280b689d094eabfee2f2489e3eee1479b58c701bc830422f0809d01be7f8fd5d1999093a43f401a6463f077aa81c5e19fc38105b23a6254ff1f5687abfe9c44752ea2faf307aa3705b2385230f92190d684b4e63fa80026070713ff91b2307788464c207ebafe9d941765bacd118659f425dd664ed4a102a78efeeb6855adbe7ef4a3148da06a59399cc6e21c5efaf5e612ff9523c7eae86a3d057a4080f5966559966559bfed50b56a5ab37e4b3c2eaab566bdcfe1fd56c97a79bdf5d7b54c6df83aba9e7f347a2f3580481d8d7e47ff35b2a88f25c245c3053494d8b09533190851b112d77d6289243588abbb3896c6e268b7cf41f84ae5176c71f47bd67284b950fc2ca91be985c6eac056c755178a1f9e8a3d290bce9dbafb735fbabbce39e7a591d1dddddd7d8444dc41902210beac02103ef79e3b5eedfd3e7f7651ca78c47344cf3d57c573473837c165b0291d91b56c67f6b4c337186aefc0220de6f78f6b399f4efee09277a38c9165df0bae9dd9e04699311c073e3ff51ec8c46acee327d8e345ac09feb4d6dee33dfed326670164624d9e64b5589d3acf1362854aba79e53c10c86bc0bbeb39b13a8e6c9357c91ce7b154813b6a71ecef33efb294fb6ec38cfa68a75e0b821479286666e6e7840cc761666666e7de045e1c4f46750c21335ba0c85b82cbe02a4386336a75b81ef239a7955999b66acaf09c196038ab034a4f29d8d063a1d5b8d319f5d1a76aed0d354dbf4e0e78a406de7c8d1c9dd6a2cccd7370e8bae39288097317878cdaa936cd60c00ecfa99dd3267f886407eea4da843937cfb3c2576666ba39c7eeacbdf71c3be7ee0e17873cf2bbbbccd4df8b309b55baea984b3c1cf54cca29e4d5fde7ee4f0857bf5d970bc4e7ee6afccbfcde8cd539b769043ef8ba08ba8192c992a49b1045a7a38882a282092b26104d513431285e2060054a2849385304584209944054fb1f0dd56368f0c2ddddb4d5b9babdbcd04a38a276156acb21e6cb936c032fb8918209b2488112128cc005468c92908218e6bc01450554aa50842b2069824590021c94626c184a151b96124e4ad24a240895c02aba906005256495d5084a9111c42a4016941d1dd8458e84b2e43959e43415ca4f0e152128414650f1817204228a82a04c91536507ca154950d9719a894db14a0959992798811186b630c28a04d3a56e935491464d19759ba494a062bea8db24b584149f54142aeaf6354bb8649b9699676b2719a53b371fe15a3fed7c6209279551a716254c1ffe5df78925a054d6813f50976e362487162275730f83c3a83a1aa4a5eeef126a4dddf64addfcfb7778cb94c9cf75fb00fb5c0af2b33a655413c10948aaf5d6fbb35050dd26423fa9ba4d966045ddc14fa4efe781a7762f941dfc04c44ea10648f8d804b14140820a2b6c96f0117990c0e66f7d8fb21a29a6bf25e4d518440157ae5c51427a97292951204729c3791bd2bbe9684bc6926d251e97f52ce455eb47dfef46d9088747a150376c65eaa51c64ae5cb952adaff1135b94871da4cc6d85748857d44873d458317b685343e1f7e767161c18f9e21c9d750703543099c4305cfb79685356fb192701ab0bb4699b2021a876cd94da292db6494a8b6d54042975e323b57f9ff39a366d30e480c1626448a26e34d4663af3adf5d7868179466de9c0e5168cc46c2bf8c9bdbf13bd7369656eaeaafeae92724e97c369fc59f39fd2dd733cba4ed3369610d3f15b7193aaf00c10f5d51a8d32ae6b1afdd66ff55b6df5f59694f2b29ead8d080ff94a3c2c1d584a8b7fb3b2f8aeb548fa48a231fe28dbeabac423d62de1209f2384e9219d067e8fd6e06f8d43cc1e5a831f290f42ccfe6d55bb32c1e5c3be10c940590efbf1bb7abd786db08ca44fd293d4f7bcf37e87f752ce89bdb742585da1fdc83968ed65ccd3da4bd2d8fbc74be494d87c4cfb1a4da866a73eac3ec7fcb43652aba9ef6daabe1d9ce60d31f987b24f6bef7d14c287819e12b057aaef0d21a8bef7f1c608ea88094304800795540401d46d2285aab200ad143f157330d46d7204238ce053031f840c61bc7205118e3233d3f918420811104528facb26518c50dd1ff3f992d2a296ea3689d2a46ef35b0b24e060c705365d44132346303de10a221b20669092440b9b204a47965084cdf601365265b7cf249484229b20987d8822097f0cc29cf20212e4d8f073cef7b03a9a875a639c36c11065ac32626e8ca3eac169f88970b230bf32ac0b8415ecd4a55715b3073fb1c4aa2cc2dc8ac336f06f8c2800876d6096c24ca0450b202836f027f05ab4004a820dfc4761f6dfafcd0420104040f08319d8400ab3b4477cf86bb336dbfcc1389ce334fc2f1b6202a13db4c61f85988ec4dc02fff2eb303e00192fcd0d6b17076f1055df2bf178718191f947b37f4510056faee62f8ad14a6bcf71516b2f7e74ce652f2fcf456ca54dd8b37b315bfb47e5e54676b3847b236f73e32f2c73f96b616436d59e8386055a271bb44f36e532d4583220725a6ba3111339a9f15dfe2291de0b7243513e712907c50939294ee586649013a052c9c5e812dfc539aa453ac3444491422107d5e5611e468f30323483e16e64bb07d89e8ecb9400e06f64386f0380bf4654983b98a37b515813cccbfcf6aea0bfbd2a64bfbd2c4c307e7b58a8ef5179c14c2fd8bf778141557e198a53f9b323bbdaf6722a3f005eb44a0d20525ffee5b1aca8329dc2d274a6c204e12af3435c75f9202dd5e55d1e860ee12a4337f791fa705473a133ad3d1269460c26bf10f32a91d83976bcd0bdab8e9f661b57eae266bf9b3d9991e48b177e9b40010a9c5c740313f568937cf154eff01d4db3ad2f642fadfd67bce334ef79ea7b8cba9ee90e55552e19af161f2673abf1cb6472357e9a9156e3cfb2b91a3f8cec6535fe1bd90579a1b36c7df817ef7b315bd3a9ef95dcf8d7ccfc17d4aa8379f7b34fcfc9303f9778b8f0cf33c8fc7b6a634df49fac31a68e18bf1be3a94cb61b83fb980120bb913999ac060e60326783b92e30d6f095bf28568f62b22a3e4cb6c1bccc33fddfa936feebc5f2545cc4454fc5454f954a15b994cbc171bf35ca3dbb1b828bfce4887028b782ce714a348e0b41a39c109dd3a627ecc9a19ce63dce15395954b743a5429dfa1e3c82b5699379acb5e74308577723e3500e2593710d7281914ac9c8a4646464646452347504194a5f26cb6034b38c7f58bc559bdc944d5699cc99d0cc8120c965ae35faf465321fd9fbc0f5ffa589ea07c64b0680df68dc08c0abfb0ee5a7005057611800e6a433b8148ee1fdd6d5579b894b3333f3af68e6375fcdccb8141bbeda70ee62b5f757560acfc045ad445108564d04517d5516c7fbcd9d50dfbb24cec77d605145e024515fe7d4f79b3341cd419db1f19b5b62e3677ee322199997180ee550ee26f20bed23d297d632baadd17f2a84ab43a1335e30a34e9bb27f1f77fc74e3677c749efaa77493373267d234ef67320f6aedbd8dcc9fb8b8520df067bc606e53e54308d7171ff085a8fcc4443048fb6fe811d5d7ee78e9bb4ae9e6812af359e63fdc53b1df16a88f344ed637adbda2a735c42a43dd496bcfa1da14ffa99ce6bd8bcccbc378573d9917f32f64b3b5f735b28d6b8d489fea637e7bd76f4ff554f0a64d386d8af9f7f0489b686cb3d2a0f1bb34dc4d6b38ad3d5852bd97d3a962a843b5f69ee53787e2276a7e67d51b6a13d1eae06c083f0c4cb6b546b69546e6036359517d3f23db4832b20d8b91f910ebf63eb8974c555f5c1c0a5b1afe1774529e6fdd95bd6c097e04fab68189cbfb613604fc087f23fc6e087f3307dfdb1204d606be3fcc9cd4da3267611786961523cd98d7646b4b6ba8f8fc395b73f8126613d249a2a14deb4a4acc0dc3dab44b8570e5b1ef1ff330b4093eccd2476ad36b00911fa4faa84c020a49ea4201495d2cd4fd8552f79d0e3e5827e3eceeefa24ce6762d1dcfcbcbc454d35df2cbcbc454130a77eeecfe51e623799412fe80ceee423d41e841c2c3feee2e49c8599d948f133e3993bba74fcc9df3f7493d91d241e2b69847523e4ef8e0b83be79c3bff1dedb230dd53ce52ca359db91bbabbbfbbbb7b10face461765be071d948e14e3cbcbc454534a49823d3131d813612bffea2649dfe4252ba9c4c3ddfd59664b4ccbcfccf9e285bb40182384ec4cf7a18f4c16dc142d5c14b705175d54a952a58a8b72852eaa54e9a24a152b55baa852a5884a5111175c5c2d6e0bb785dba2a7ec134f3ca14511b27051b870515c142edc166e8b95dbc265b16ac2dd17db8d7525a9b597d95a6fef6aae8828693d1e1f16129243e0c9a9d63b247caaf5ee2f67c1f8bbfa1e8ff88ec964a1daef497c4e2fc7692ce9f37872fcf492d0242ce4a7b7c4a28fc77f5a6b9ec9e398fbfb87bfb94fcfead85e0caaf58ee7256953cfead81cac776f652e1bc25592b4486544c5292e5785695981ac0529e7c4b0e7d67cab89a132cec6d0bfe158dd7021c60e25495a1d5d996e3f388342986c0353d9da8c1e4c228ce37e33c661a63510a9cc99c3e1233bf44b39372bf1c8b8c6171f1ea43247e7c8de9663aba9692bf5bd4fe1e19ed4f76e1fd073ded70f7e36a306f37d101955c852b7aa3bfa9ab1642ac19136568fd1ef6819da04436bfc3b68da3f264422c1dc28706d9da98ee2fc107cc5c6a2db34fc9c333a22e6b0b4301a2ed9f66353a377c97c907eeb24cd6c23e2132355b71f9bfab1a99697979716aa04a6606e3f36c57023e21323c6cbcba6daa5474597fb9dd9fe926d9a5ca78b8b8b8b8bcbe84a7de1a67bf1974537572dcfbccaaeb24b178ecb7a7e87c3d1cd7a96ef51dd8fdeca7ad42ed5c057ea35fa20efa24368d4eb7148bab920ef35e0c3faf93eacd11bc91f596ffdc8a2412e128984fd9b3f7a52367f6b0baa4eea7ef42cd9e85bb2ad878f203e46bf7523523725412cb104e9475ffa20dcec549fda1d842174b6c4e3b97ac1cc6535bc877f49279d94f04b1a2052dd5bd607b97efba13a3a844665cbd120d76f12c65bd7cbb7de65d90e7730240dc254491135be068c1ab408cca6888c87418b903645687c91b934ee677c11ec8b6c915d1af85b591efb6b17860d7ee9b1195911191488d10a58a0031390e00751f0d804b1423d5a28026528095b58c226064bb6f5a825daa5974c8e325236b3ad5eb281480e26fcd1e837f82399715d3f0171b3577e40c515b8e8420b5bb86203e387601b9c685384880d0c2ae9e6b2cd72df251e16c501bef3920ef0e54bbac5eae4d6511649167d19c184c941be7b296b4d75070ce11a29cc8f5887780d421279d1130697fc6d29e9d6a3cadfead847fc0ff27efba14a3a84c6bbbbbbd320b0c64b62fa6f490689923a18364983bcdfe2f3fbf8ee65262bd320902ae17fd4096181223bb34acc930c350ba849c1e3e70f3ee6eee7cf657cefc1277b6262b027c2eabb565a568cef3df8de73ff81fbf3f7de7bef3d18475e8c4dc418636c22c66859d6b39e15638cd1b2ac67bd67c518637c966559cf725c4c7f92f38c31c6f8de8bf1a194f1dfebdea0c52f846bf36f77cf30e03ed547272155dfbff097b592ab1eec57126615339305316766b225627ee95bc5c4c4c458eeea256fb5d2d9e91e29bba797c87759f7c897ddd326ebdff79297c59e803c2a1e93f5926e1ff7fe1131b73577837af856f2c44b13f36f637e7b56627e7be998dfe091076dfccb22fbd73c6dea978fcafcc0068ba849ac98df201258e261e363b298cbcaae2d59cf997b2bb3811fa606ae0d206271966d5c63249d692de677f4159763cc5f8e149315bd55f6a61431470f9f2a86eeb3f13654ef7bcc110b0b8bb446ab182ef178e17b4020026b8a332f375ee4cbcb47286fccc48ce49cd8aa7bac2956f7c4645b8cbb21391c877228880373e0ceb3028f401d88823737dc509289305287ea1bb806b5cc1774864e19e39f953649b75a4568e36f6080fc6b2ee9cb85e4535ff7f4b44634639ec6d720ddb4dbe1713d47da5442529f4bc2f25e5c2e4e464629e5ff6f6f25a5a4373000521b6fe8a96a92d8e3a7997fbf92538ab2877f23f3ab4566816e60402fe91e3ff50ebb294531adc9d878576dd0cd033473a2d6decf648e45d3ccf86d574c7eb2ce416baf7bb2de89d4a7748f7c233882f12eff2cf85cf8cf76c0c048fa562efcf6564ee6df4a67a74d2e20c130ec77b177594c6b322ff4709af772ce950b34be0695d294221696559b4a538a58481f13936d95adbda791616fd543aadb5b6d58dddeca8768653e3818ef5d463dde0bbac9961d2ecbe4e39774ab91699a23dac5bdf89677cfaaebdabe99932ee59ff99c75c99dd6e03f7f528fefd94f9b22137ec29ea6d3c0c7aee02c984a85bf2ec66fc93673add5380d7c2967cd15b75e40fc14e3218c27bdfc15c3ff0586c78c99645cafb72e2f7ab09f98cb0b197672d4f871837a22fcd18b9ad6e28f64e00fbd87ebba3807facfbf621c3d3714f4c4417152865a829c00b1b0f09c24cec9e9811fbabc2e924bc64c5a835fe32706721af88f6110c21f2266fc5e3299083e8c87df3a8da44d49b62f7dcbe859d5a6f9f019be059ba792e0c3c87a380dfca8bae8264b749bf00547959f76e3dfd4b8116e843fdde7cf778933b638dd6aea0b771eb8a483bf0bddf82785a1b5f83e98f6d01aa4a5f82c24281f4296f8ae5a1d376d8a2552e92a9528055a83bfa35bba24210bffa8f8470a13067292a3c32a3f0191984e9b5a5e7c60f89c03c41ffae53c40c80f69aa7d4afd42138cba9834272677f4db06ddb03aba5effa34d5bafffa14dfed7e3b0d75fbf7b5dbf7b5dd765a55ef29a52af5f56f5d4c5a26e132a98d48b4bd93e37a532d7b866b810ca7755d22d881a2f927cf1d2848a9ebae5a8d7bfcfd1a66dd27099faafbfe183303fb9a5e127d18d24a7a45b4c65ac06d5eb9b6f68ed9a929f36a04d90babfa14d92878c7ffdf53b73412640f5fdb5251e2efce502a3f3d363afb18335d6e4f25bc3fc06ebb2d49551a3ee332f17f92900371e0b98aea8740c1766492e95a211000000025315002028100c87c44291401c06abbe0714800c8394506a509708635990c32888628c31c800030020001883c0989a19b90100f315590ed375bd20a70de28ad2d1ea3c7e9d787a3c4e4dc8fbdd45e4e1dcdb1d3af9f526be1fdf70433b9d15f687c58734061630745f01c36ed7cd87a9955c1bb1c990e0deab97ea0e6a0db435a39470220b181a44641a5a03f183c1581e720babf4e054a9c121e8dbd3e8b552e0974bfb0080dcfada63016e0675989668ba687778754ff729e0d0cc80fecd4add7a2465f7b8094a2fc371fc178b73ef06b14459a95853aa43f76935ce7f8329d425fd2de00eb5212f8fbfb224210c968092c5ed901404fc832f11da89acb2e46e294d5d43848a7f3cb2a77c3a3f109da5b3d9fbc4b504679f7d1000b27f6cefee95256af83c9a9826094f9699deb5eebd622a4e4b72256bcc2d7709882b4808943d46e69ab9413a5e1f508f6926b21a5cab3cffa0a1f323bfe958305c607b34a4881ea7a4cbfb2e23200100c723437c2f8082e5f51da6f9ea121da9d374ff99d12b5af54184076c9d7a958e520eb9e4bea622b0957d88a7a6967206c85c604a8978b688286695ef4ca60e2234f1b4efebffe489b639d85532d456573eebef5fbfa39d89d7dc96584dd085c6a7985c4cbe3ea0bf224e742937084892a231d8c0839e370784619e2a7455e4be0ccc813e74b182c4a23e7aa4bd820348a1028d88883590b1a52e40e9035e1e0d2e1f27e40d2561fd0ee2ea2200cd13f6e20e8517d021ababc001aed12b77efac690039c3a491edeaf5e6503baa979d078bf3c5f1e794a68a5b196f363c2099487ac5c73091c2c459102805491cf4a104bee86c6f522c1926cef052f96c940374d562501724efc2d75717e72ca13c1ce4b910afb0d32b3dd439a817f4ac90763f54fe3d66c6e2a82bd366bc784da228dcb51138b1901a273c3d8aae916b37bdc697f235295524e6a40f574bd028120585b5e428de42b064b30aa02ab790103ca73270633421cc68ed0055a66ed8b8dc1e612ed8e31ba136890ca7d39c8ab8ceac5d1605f9d31a5c50741cae624a7395ebb77d03343e631e508ac9feb875317e0135ea9c218ef9877bff45610f96ffab81ffb4697074e29334c0c620d4a562e0ddcd84f08fb752eb02bd73bcfac7ab1522642749c882c289b920d5d87495171dc009344eec438b6741d52287689ec46219c49884cb21bb620fec126262adbe33f5f6c444dd7629dbd6fe0b7732869b5afb243053bf84eb4458a308da7c818f37398136eef1c3704027c02f07111b222341e1eb69c0a565a598521c4bf57282803e72867767d88d1e90c0abbe156d68d03411f187be0256f4c36a7a48c61a82de20d68e31d8a26f98f3f78d06d88cb65dfa15884d35756873d02d480ac066686ce9afc08e6923cb392530bf798e022746f3401e12f1779837db6770b725f83dab112534c56fd4139137a1848c4f909b5d69e3ed2c7392f47b62e0dbf7cff839addc17e504cc5e6566b6527ee7f3854723553b9680aa02bc8ca697b4fa402c0c3b3249ba8423db826e90a173c876925248f6607991e33990c3a4b1ba223a78c883a5434671eeff434dc87f52e0216a4f15c15b89145443982d5902a4d759d48a28b9849e4fe8551936452f35d7211c35ccac18f1432b096e3eb1e6e0886dd2513d4a2729faf887408b11edf2ad49362c1be2d7d622832a6dd06dc7998ee27b1e7ebbb77ac5b32c65c56f26d8907b0a39fdcc81bff67d1b37b51a1f98b70adb92031b33b0197926ead1feb7217cc25f0ceaa4063b0bbe23cd0296206706ae975b9d6c3842197141985da42bef766fcc783585c3fec2ae23b9cee8f8941ce9aa1142e3e006a7431f4511bcadb054076af8408f6179d3c0929d1cb59cc42ad3646652a9a1ba96015d15b2740e4b937e6aa8907d48c65008497883f4250a5cd4951a2aa0f6925f4dd2abd83b9ae312f92dbeb8148bc345ab651128d5d954c13e95574bb91a2eda7c3f7974fb76b6c150188dded642f693d4e8890eec5d736d0bac8acf980614d55da5b230e4fe30101f26957f9a69c9a017ca5aab4eb4897556453f32e919d7a6bed9a860583a5f9c47cec27a86494115fa0d47642e3b67b21a195cedb419a5d23c1880126b9ff34fbc751c9200a038392649a965dc342fba0070d806b9f93434a5b9051b7429b72fc6f3bd655a85e072e18441837a1a4e3eac51e667b67b1cd161df722dd34acef44c7563159c6ef63e8711c11cb9021b177866da513043651622c3d69061370042546af0c8e917fc84406fb7d9ad9c27c02177683874261f51c3a26a043a5c5ecf7dc8a0c492d13b602445cce6a851ed94c3277bd9e964d40a95cd24914230d807e27eae88b086333f75082059bcf8699b5862e83925630d6da6ed01356b229fad0d2cff430ec4d74ff183167444b6891da55fb4a55c7b3741c9d2960a9811acca54871fe0e4d659c33d052063a62c749f811aa8fe1c1394f1c8a6e428f2620d3b3c304505f0db91b9acdb02cba6aafe2ebc67712e4b40819d7cb21e62c559526023dab79a85f0c4aeee2c8d6f2ac67f641d1c4eba6d698b0b890e3e35011785359fb57b52309dc4e64f8a9b827f87911e858299aba7a4e623754f3d1188ea29f426294499e69ece00a147fd3575b04d3143bccff9be3a072f702abbdf0fbdcb876ca4c9e9751f6fc886d456b807900ca67e002d05a887cd86c1a2b7082ccf3b3d131f0edcacd92c9ba9d20a26f904aa2f7dcabc7ece0906406430818021bda71b066930787a9980b8da9ad30be48e24d81ad3cdd4005e7f0447f227e0c7f8a2d126a4a23e4ad3363f047320645d3a0d8ba50b49e0a1b05f0d8b72d29a1708b6153930f9d421a2c330d0286732e5761d98f2098ef733376b76ff688aa3560496b86385483fe876184aa47c05bc1e9d1720adbbd919771798c04769b4986f6a53cfa65f44623e296be6156d0c752938b56813447db9058837e727abd4c79dfde07b7d1b4db4819ce6f8ce28aa514a172bacc299f51aa99cfb7da68265a25e2f45d1307492fe15bd4323aa45ffdb5c7bca6f958f7395d4d8a8a0c54715f3e9ad51aa4ee3118927f0e24d429286b93e331ac40df2703bdb600bbeba378af5899cf15de4b870b341acc8a9dae809eed10db1a2b5a388c69d88a67c193ba47065c4f30c464e9932628b71d20e1122ceb9486524583a9d3b21245544c92997b93b9ab20a609c3bce22416013d5c5ac8d759aac534f5c07fcebeed3d7852a90219dd48150be80f60257a3eeb52bc68bbf2da0c393e9972555e5a54ed2169bd72d4ceb74b11bafcb963b0b33dd0cd9e905ab5fec1b79f4bcec0aae9edf2eb82439d8dccb9c6525c24e42c170f365f4fd188675d6f3bb89b312e750d7af59dbeed2e8ad416274f4daf045de909e4458cb6f1cd78330701cfac0782a6f7f810e18c3ef64b41dddf95eb60ff21bc8ea8599817871bbc0e2cccb5e180d281c9b1f95ec5e5bf2aade5da5408a6f0a178cf0d7b94e0138a034e45877b04e4e6657c42cd0601a4f9a72b4e0c22bfb288b0c9986a375c1e93c20c2dc3d9eeea07111f0a4ae42da1acec3b70c13cb88b4266d57dfdebf208afe6cabccc110d3b6e5344107ccba9ff60deaeff9787db9e34fdf0087e4b9aed435795c73548f6fd0ed661a10f75eac0cc8f6fb1c95aa08c5d17ff34d13fe908ca9eef10419f791ec044258557697faeecffde6199a8d715857fc1afe65ea4a98db0e3ca3a4bc42f0d999fac24593760b458be2fc731ed233d787e57554ff5812e4892577adb0c2ab5858305fae18a6688633701565f6cd8f561d3039515b68aecc3c0b616db0569e10088432d8fe5f38d6dffbfb83423869c57df12e0dd2dad7e081ab55ea38325e56a97539a0ac52bd255405251fa995991f4b1fcdd555335790556a7b9f56dcc6d938d78c2f628f345e86f2c31a0bcf77afcb5472be0638c50e4c44a269fb1a32267eee5ca0f4120be499ab483a8463d096281f13ebe89c1f4cfa883915abddc09c138111338ef857914266564597644210b72ea1dbe710f0a39bac2ffb52ea7905ce6c3cdd5131e1299028a5135a7e3b617d76de84729b7b21bcf0a960421941466394db2f9a19d9fab966f4763f3374602f395b1c1bd3b681588ec297ea1edf511a42d6cf1e1037b7fdbbf74b84a1c2a6a79f6613449278eb31e1d1bf2853ad259417cea8853e28ee4a750e8e888a863c899a1aec90c8a88a7b02f4a23e150b3ad344bf6d2eb44210c934f13ab3e056fd11eff7d7c20795205a7dc5c8739cd8a5be63fe5d1debbc15bce4f40ebdca64b913500a3b61fa6f713d48d98f4055dc9549cd9ab7e72d3eec2e9e3909a6769de82eb36ec10038c8339c2b0baa87925d2ad4bd019c54848109184e1b6a4f133123c5c93df03996451dceb816633d1b11d44d469886d296f0dbf256471ad96a03c4bbe4c4380138e660842022032071bbf74365a7a577a69e51e971a6e9e0ee0318dafa654d2687e7b733978c95ffd7a98d26f4c0d49163a51746afac3d2dabff9f6842d7df7c7c91da90128feb6decaab381ba59723b648c896a8746bd1be2da4000d7685ff2422192a188500ff384b9a4c105b26dcd3b3345f5cebc396457b1417aebe2ab1ec0eac1e7c52256d27bcf0c6b97804b0278ec73d1c1fee66607ed70c97c4d294ad70869b3dd8616fb2afbd2a97ecc0d7f7f2ad1614fa8e4c089d866ebe38d29b97fc6140b432a8a84074e6c238ec6efd0e55daefe808936647c3b0f5424c5ea2257589d81d8c480a9e18b91ce346355d2175b5bd6d823b1849b18410df56bfe39b2b1b25f7355c004399d1f555eb6a1ec4c9a34f8c0d69d0ab6efe37d43d8134a64cd820dae46d51395a79a88976362df8c8778a8c24642e562bd0e0414b23e0e4aafd9e35e06f4b7e8a1555432bcfcd5a07c6d8ab3a1550b7df14f6021974117df1fda6a890a8ec912faba544c8b3c0241a10d72232573f11c5bbb079b05b1494cf800f0ddc8f78a5294c04c472144ae00926a7cbb475083451e7406a01d8de829a459a50002ecc7c603d67fcca37301ead78a6d6ca0321bdc230ec2f8e2c25282e7ce16310360602d0727d6ae9766c67105964383678a142b8dd7f545b6b98b033094e684df6183626f4e6fdd3c882559ec8a3d4e72c30837b76b94640d5161dcdb2817d9e4ca04bad63561a51d47622db8348e245a783913cd72c04362777ddf2e58f8a1dd4e9180e85dc0987dbb372e1e81f5eced5fcdecd30993dc48304116a02bc3aa1a645d8c96d578a1175476795471103634c0b092400891ea84ee015eda86b40eec4081e218c1587c7fbbe6788416c6885db14152c647d3e4f3ff8f265caf3ed344c429d7283149732ee1822b900d0bc2b6ed65dd980825dc67d76a49756f28ed0b6ca75cd7df237cf61a658672fb733d58e885177af5c23998c50ac6ef1f68c01599a72fcd7fed9f0bc27655d32d88f49f155a733aebb0ca7cd746fdf2ad00aaec9e94ab16ee14ad6f4be5f82d08e7d09bcd805d28db3b8fc39be505f89815cc7b35ef9ec038466a3564c844b590df3b19e230c1c00c5020137bc780a4e1cb87abff3cf253e8c4d445f2e4f2e2a004de24e2fc9ae69390f60dde2c9ce0e1742417a701f407660ec400f4d7f7f78397a22f29b9746fbae83d3f7444b8a2885606c4a20ead070fdaba28400bb148c4b404c43527c238150818d53533f8163c29a51ff96a16ee3231b9da859327fcc8ebb227cbf239f6f20a54c16de0e818982fd5689941a401a51c41b231ccde073b13701a1c6a0ba8f862bccd58d7cb7d7b0d2432807ce38fb85142d41062d2483fff4e2fd58cb9306e6ba80c71266fc74c205715dc9c7110613d96234ea081a302ea054d88b134d86fc6795ab455fbc6cf7190ff82e15b7cd5890e1ea5d3a180524b97eed7ef3f7660c4f9eb4c928bfa7c000c51253d53f1cc4beaf27c2330b6f768938ff28c19a84aea64f56931db4c30c00d6f28c80c7277005496a60a47d5d11ee1009d86b5fe9b6a2552702c6e144a6190fd830c91db2f65186052668c9ade82efce03d6785a7c5a175284a5b13f5ca1f7e2a865997066d952651a1b4276a2f6d06a9f59b0443aa84b0f10073e4226ad0040360cc3a47a2fac1537c01a21e02518bdd85f747dcefa6247e05b7db2e8cf7df73ebae2cc19ee2c1c3a30caf21e3640f71dca7281af915fa54a00a96398ed09ce76e5b0ad38e6718d38d99b2b0f1c34dcfbc3fd94d55a7a89324e4f974636f9447698b96202a644a29698f084b01ec4843d550f72c9306b193290240c6dff0d4c996cbbc2f00e1b7b8fcc0500b061aac5e60846ac4d896e312f7b0842d1bc7153810dc802765fbbb67c82c1dfa5b99dda6909aedfe22a680769d1abce01fb64098148f57371020fce2a15dae2cd1500a1b78cc83373b0d20c69c9249fa01b6375cf740204f2f9e7a30ce3c6409c417c30cac9bb01c05f06f6eb82bfba3b114c6dc46a0735b56db081b20a59e62cf7bf7c65c9bfcff00eecda1faf40c63d84b379e7f86b91588bf84e8ff9e215db382dcba40aa5c1c7db4d5d4e99a2459d5f82422f39a8f2dd3836b5c8fea4e80289b0e84bf63de9ba073ea2bfdf07cb7473d4a5d6c2e42f93902c2cd4ee3f2d3704df15924664f2eaace4856281380f67fd803d9535e513a025088fa83cb2dd5417fa217f80ffd3a5c79686e39ab70251e2081c15cc5203d4636a1976403f12e8587ba9b5b891243075f8a0c18fb06bc54678c443f371124ba5d32aeeabe8008e3508b1686befafb3c8c6a9c7d762e018b7081fb9fb04eb7250ee4b4c3311db5a3cd6da72dcf93d5109a3e64ce7ad0d87c60af8b578bc5642579ff8ae4e33426d545dd61144fa16ea1a5019868f70ab4b3cb149ae91ad5673515624819f3f3568c0bccb7ca8f1fb5e9f596eaee0c757a9ae458e595c12024964672cf163836c6f6568a08d366a89804c656e309dfa2b28011f7af00953c026ca0587f07fb68647155e3099c31b0256e86add777a5bea1262b607567c87044481fc8d69ff6bfcd3a6c630f1d23483795d526c2cd602a9ecb4faf624af858519d60286d36e0cd7cbd4be80b5402e9b953673286a779539887d266379416e813c8184d2ee3288f53a7d02466bceb751a8f7a3b8ab4ba43e7017d56f97c21379cfbaaaefe888c0209c0219fd1e1d4a056f73b1c94b04617702d8a25ed2a0873ab6d32db7452032830810d913021c9c17956705bfba6e7e45e911b5716e759d027eff16d464ab6b75608acc61448abd1bb3a1bbdf73650bba0ed0b233808e06dfa374156cbc073f44e47660f0f3984f97b8ad8e8407a26b3d73ce0a7b035cee5cdc9ac892b8fdec643f2506390d3ec18d72186831186e44004f08fffe5507c99d901ec93abc979daa4e55bb1de44819780b61bd244617ccd37fc3b1697a6dab24f88f1fc6ee6530e31969f4b4c2583487880766d667a570d6e00ea8ad371ddc4f9a28dd056866dbdc24ec036a1891cfeb0e75130a68d4f4caf71d9c0d4165154b34a7b0d9a62e0fb38b6e5689aefcdcb4497ca504d57a6c12a3b993dbffc5370a2afdfd2c2457b5864dd1d0498cab7bad1f5474de2d7682dd34bc434fd3dd69d0dad2cea780116612e2eb72a4e719ada1b7064dacf0d3a1c7e75a03b4bebe95ccefd0f1a9054a6bf23e576f46b6e2603ae5f556bd8194804648448d01903efa332394fd4a841804b1cced075fbabe105ac7e3c47e218bfa0ea38dbb2fb6ea08465b12658532356542cfb4a99199a09f6be3cc205ad32520b399f82245c14793ecedb3ee3da4396d2982b818ab68848415d65b15e98e9cd899dcaffe90681ec01314ca82e5f11061146e89a4d0d7d8d361da31bff6307005cf9fccd2bda9f6a7b6abafd8338f32fa3779b0d719b6d070000eeb0fb293f9cffe1770ad3bcc6eaf8324af7814a1106a86900d24329994aea7624d184222a7b8691a95cc98e54ee5291e13282aaa263769d87738b3209f1dbb7045e6410bcbbea083232cd63a5f1d85edf6bc892718a93baa8d4e32eb2f58999af24d720161d70aa8372559b5c68a3799931b8bc85489b65c68dbf0418fa5fce55698d118d00bbfb6f48ab71de644a371ed81bae0e01f9b9122028adfcc21e6092fda18c7cac4df3d19d9670cf385533c378f6d0b2aace5c1d3a9626f6a6bd2f22094c8750557dcab4edfd5c92de8bf6f65038501b4536d6008b940e3043052dfe86453b8f093e75a647f85c17c4f2211deaca97c2aaf4adb39ac86302b22774f10494c2c5aa3b3498ea73e59dcdbca4b08133e2bb6b072c0eb1481de16577edabe97155c518078b45e03b6eeebe328f263125e7b2accf2971e1df1b340eda6078e892dcaf888c47ebd8654696d12bd6ea9a54623c95853f26a25ad153e9e39629dd85ceb9e3e61a621cc6f006355b97202ba52a4958758b6763865e0e7c43e4cef501e51720d80536dc799fa4fc79e76418c55fe899214d7000cd359461f44dc69e866db07c1a2bc4e67d0039e1c50352afab23d8bbba04ea4d54979726886f6bc89c69392cccf8aa847dc23065cf29dd610e9f9ee5e7dc24e6cc6b4e55ed215454617cca2b5e72c8570cef3cc4c2efff30a0ede2de70f84c3bad05f223e8e5e7f5e3e049afd9e8c47ada65247f69f6fc318da51644d93b37b0c4cdb6104d49154ffd066b690fa7d4515e577847d2e1d94d761f55ec017803f3ba42ce82a24a5d33f46c0cf63cfccaf0a63de12a74f4e065c6eeb63448a648b61c8de69521dc92236820975d690931eb4eb992c2ad3e12af0fa2787a44e3800d98ef31ef12714a44294e96d2411ef9870166a83e4e39dc593c1c2fe414f80cc3e852b375bdb214606f14e4585496f44e615ef090a29efe03e3a5af01364763ac8f20bf38edf02e5284c822f16d895a10f619c5f5d740d99a239899209a7245ad9a15cb9a87eb55227917d06c227886f2dd299f6735ec2eccd3428d56c1b4980ea74fe872c2034e2900e725dced6e65ef5e6f9531ceef23544de7685445059fbeb76e07d3a88774542b60ab69d752e488591c005428e8f59351da27537e6a03ba54c10052171ea2cdeaf6154f240d401b930889b944ab2b50e7a33a9f70b4206c6552de8ef1421ff6df4f46951822f897f82b6f43490d42cd1a7dd1706e5cd664507db896cef58df4d2d980b13703343155b11433269c093120f3fbab6b57bbba0d87a3a314dfd3c8d172448dd8f3c683b72520759ec1ec7c23116e2e8ede25b5867919415c07671b9542d13323b80cb7e898b4cdf1ff271fd9b296aac01e5b4887931b158b078b0741e028f1e7224ee245c302a7dd4b6626b348d5f3173fe032db6f12c273518731aa87ec2df3a4bc50e1564997daec0b066b3e132634d64a9bbfddc6a42228fbbfb27b4d66a79c2553b422d8f18828dbe5ef87ef78ea7a082c221138d9a4156035f1b42b35c8f2c246b9850ddc1d7d4a54b5c6c353f99ee8e0990f60ceed0a696a6db055de55ebdd15bd1539c41922f90cf5cc014519c54f2bf79840978e7cf82ce07ac621a536ef0e89ed2b5d70693eaf3cebcae1b96c48f8b5719cb6a275ecb954a2663766c6928a395517470ddba0d7a1673fc7cbca44bf5ada674e170f2bdc2d9d3a2025683e2dc11e65f877b8c02db6eda82c897ce832870a3d2d29796f6b22a2d3d1a7cca312738dfce448a5786fcac1119c2d2343c4ae11629a5c56a25e24877b22f2d13f3d1ed625f1e7169cd3b9b90f0fc8604445caae448f1016360503c32d52192ee5c0a1ba751eb3d6aedd2ca1d59ef57fee0131448de0e4b474d3eb55a1b63895a00c481f66d33fdbf7521fead66bf72a9255eaf8c9ea2d4a54e230165aae7c53ed9b56c4f75c71404e20c59990700f0ec6b5a3f50a00624078e4bacba1108b8aa13236289d120bdb36e162edf0e3828c1bad5593ea89f9591c4fc66bcaa8380f3e8e4f21e040cdc14e72282cb1372f72ebd7ccb86fc634a680ff0c32cf1a2460a34ef9c8bee60d17b1b22aadc43f5218d489ba38b84eed213f64a1437e62657b30139228f823af04d0c0d260e038a98748a9713d63fdb8087ffd2f3bb1c85bfcaf9ef2ee7b72162aa1b0e36d464df891c96f706f61b5dd81fb01221a4c75c5d4f11157b8cb38b51377c83393ddf87123b60a89a1101528a0f9357147235a99a610822f0b8b8f0db3a407352af63dca4e45ae14061a5d9a508d58d46370b398a38c7448052b4fea333d31f13bcb5448cbbca89f68d5637bfabf0cdd48ba5171a5f49dbaffe3167ca8f9ce0aea2fe69edb9c5e6d6c7768e444fd589e3530b4fe375e8e17c9a6ed11ae4acdd0d52941c080b71b113fafd46e4aff0009f7f46daafaea2a66d0d005414814cc6c5ffc0eeccb4d853c3c29fdd28b7e73780640cf9f503eb72e457c1f78e36ea45943b6d37f717540bfd9237ca01e8bd780af90e6392ae6600638e18c4f540ca3eec16e7e00631ad3e2abe5ed4cc98ed9bc37bb5b385d3d96390cdb110cc5a16427a533bf695592b0b95446131c654b81c95e88c764ba28ab6617c553c21e06feae0807443fa9937b0cb537215ff4b8a56d75f72f178fa37cc92c7c0c11c0344408e38829655c8a59f8e4915896a45a252c53ecfdc6581afeacafa2056b7847bf11ffdc072715b6480f51d3c710e85ac5c88442747010a653c2ed01668d10d8a246b30001f5daab3312f237af060bf28725cc21111c599c9c0ad0a681d4a228a4eb4bfdc6b944014aeec5f185b2f6e3e4d905871b77f92f587ae4606bc725390dda229e351d050aeaa81683dbd4bece907c861f9cfdc69e690ca9c5d19122e264c9a39c1cbd7d41e52b9d5211fc515cb9bc492aa714c34f3e0873f942c0a5dd727019d5de09c8e767839b2521ddf4d44718fe2dd43b145f27dd7202db3b7151eee719778f5a62fcc829617121c41deb8a1903514dcbd1d86e9223c6979b37d4cfc6ecb31c5a5f588cb1ef57746acd170a8425f0101621d416c05e57e89e0bf86bdb11b7f2b3b4d3a8b4b5e4c53c45d8d16135174e39984f715ba3d74d58c9ac2a72f7bb76789a944775ccdb0841a0cee93d5447ac28adf596a9baddb533bdc93452932cc405362ea941d343860b54d1a849eba37f968f5339e7b2be4d94baf7cc7c141ca2b1659f154cc51ce709b5ac391e7b39cec57404bbbd150594c425ed86e96a01ff7f54c4742f777785d065c46103e5474099142bdf77fccf7a391cf74dbbd860f72965b13c0c9377e1de9812f32ae3577e5d03f912e00c576f28857f69651ba4f71af39658f6d161af4dd204010116df835790a9d229f7ae7e168129a8eaaeadf3075929a99f908b49c8a4a345c44b8255585fea73411e64d90fec63f4a70467c95cce76d5cea8cd6e19281ac073dd619c2b3e71f1bb92e51a2049944e7e5478758f880b9ca0627d4060fa275310eb87750fec8277e882ac3c34a10e887e39480500d073f447e562ad21957df3449e274a79c76d2aef99e0b25f012891269ca8eed221cb9c923f47a2f86ac2deb6ebf5059e3526b1e7f49e4b585b3fc6643d3b91f7d4cae75716741fc6d2cce72f4904461981805e5d4bfe79518143f93e2a48405bc4eea768b8c56b8855ac6c09dada9a2b4ea4f9ffa036bff4b6b506cd7997dad365b0d932f1412fb2b32399e1033e533680d8d51afa2194bc7079114911fa83833a29a98064f008a6835c885c78560837071d4421569ccdc83c2229cb095eb0070d06430c5b73344aff2e2758c9305a0701415e9e559ceacb3dd9cd22e5bd4194a489982726724c1077c97c0c95a08bc765abf491ad5d1912c35b07912baeef2e7fd9facc550cc5277a9f534a88094d09867040fb0c778004a083985802aae04b2d9de1df8d5b26b608a9966348ef1ce386b1663bfb8bac27be853017fe9f242e0e5fd189beea82786dfa05a770ee161f5c2a621832271fbc48891483bfb8528bb3190f70a834a6c779fafedfcced5147165f3f6d73f332c867181d1df14c2e89ff1bb623b61866b30ec960ed13600a71f34cc7d6ae584a49f2d0a7211ec78b0ec29925c469101b545a4ae1c0ac94c8875c5e2154798253cc8bf65adb13e92489bcf53a5b832a675619ee6042ab6e9398d75cf9c74d12b5b365cf68715d4066aa95d961e6c10702335ae324b62d6bd8872f67df302a8b5f211f8aa6b6ee0971751821eedf6a72229b0ceb7f685f6345500836367305adfed8d258e6fa66892b7e68dad2b77c5ffe042560b41320e155d47f476cfa81857f7e101c7948498e3cfa4f33275f49443a1c869237f2c183022fe97baf2dbcf47ef92fc1d155f8024c95d61ffeffb5018531e4e8f99acc067dc65c9d37e4cf777ddc289d29339a7e56b3b8b421ca11d53afb878e51f80b37fb866ce954af27b251e1a423cc03e27529fa6b30fa323122052749a8727a75476aae29b604cf8dbc355279bde4dbe07c235e0303ddd1e1c6c0ae686e21b94b0cd158ef93c712939781354e048da931106e9cfd6abd2f411fdda76bf7a4f21a2e548ef8b66778322ffb6c35b53f792ee07c895ca0758a2f60f4a6c5c4ae9232d036f90007d4990469631c2a3bdd47a68f02f7bdc0b6bb539b8e3eec481202017664f09de1e761d3cb13a886733b49a4aa2f1008422a2eaa2f019a3fb3c7081fc303e197be070cba9b083b060126c108b2ddebf37c300136ec01086b7ec8dab51c4f69fa74c4e52848c4d6d9570adfe07726baaf01467618975c2a4ce99988d2b736120718f4b55f493b5da96af467a9995f38a280363c2b7112ec4c56af4fcadc969e55334d0efcad50559c86972fdfa7eb1c73ae123e4cb3c96ba9230d968716c69fca70da8609bdeead1085f28f72c69ca3fe385c710ee4cfb90fc735f128af2286e8f72773ccd2ac747b9c81f7465a60561b8bae0830d3e6909a8be6d6d7496e2bf7b000597e8fd7835865ffe39f304652a0a6a634f2014d8369859a1b8cdcb84960c19449705176885456dd8dd0350017f44fef5294ac74c1ed6de2a37167caa73fe05c77b7c724172be43af72d752fdad02cf4ec4716677c1f56d16235303763a0ed15b554aaab92de23818415a7b34a83255016a37fe4a8307d5622270c780d000d56a3189638e5a8be730f55d61451f60201df0e338211c0fedebeec5e0c81334cfd87d44de5d51d04dc842ded1ba5aa0364e65b372ab6f5b11c3a4f28000af0534144f1efac6628f83cc4401fe8fbb547024244434aff3c61fcc0907df1f3e9bbcf4857898be908e3f8c68d0356a30f294ed61bb52df52d54361f2b72d12949caf42e963fc495ec014edc0574882d9c7f18b7d26cd47f6dab03c1eba4f6dd909853e8957dcb957d7931019ee3279531c175afda0ce3471fcfac133d8e5409b7735a07440653cf330f2b67e72282fe68a951ebdcc842f21e5cb033f2c00bc1bfac49735c2fa2bc1998cc44d691a1340b720813e7bfd2da15c57f4b7c21cfeb157e3d9fe964c44d79a568b2a579d809580db890586c81b1516461bc2a81d6fa765f8ff2a2cb1541502e412429e8493746b86e70921b50c40a8e46d3e9afffdb8e26646ce6fb84043d8d4c1666d2a976780a748209a318ef32f8366ac57697f98e7478e3fbd7bbf748711acc60111d63de58ccb72e9a7f089177d080ec5382060669a19777fea1db4ed7e1094ae776f4e1ea01ffb887c3c8750252caa9317ccb50950d371d8c362591288a66ee594b0b8747834fd4914238a919a5cd92100582f285d3d579f702bfda76a12f67d84d02ba3023601bdd59472f60799b0bd805bc4c1b89eec5e967f34004e22c9f78e0ae011c7862cbbe5f112214c1c6286ed801feb2ebe5438052b3976e799d4ce9d497d58d368d4ded2f8aa246b217afb898bf6ac80bd8988caa689f6d2846a5991031bf7ad9dd6726a41ad99980726b80c8f651180a434b5c9526afb8219d5422ed7235f5ceeedf8e7f5408eccc1001cd7d448061a5a125cbe2500dd218fe0ae2c7b7aac8c64c6d8fd5d9161a59b6f18efeec7a88a32e289850d7d8314b225bc9638c2b09c7fb7864334cf99d03ee7051b7698571c934a8070b58db83f1b0f261d364ef801063eb040bc8cd2cc659c533240abb8cf9a2803c09038e665c675127443dedcdb0ba4c8329b6a3f28dbb9c8ff04d0b800d3b9276e4711727d7cd0ec4b527f3545a1671b6c287f729839ed4fe1be041da5ca506d59e849f2968377377e42a62e3809ff38a4ce40be6ba258f85d05eb1e6cb589d4911dc95b9a3982cd9d8b78c0139914604a61610a0e5db2adecd50bb53ec4c639c8668eedf5979241cce9122e8c8987487dd22e92f1dfa13d0ae432c925f5986aba5cae4265c68e193a6b449f6f2406af00ae7097189c0a6039a383f257eb08e56c5fb02ea7b0edd669b456019891dcf3122356a89e0686a677192ca403296b41f8c799cd11d13aba405982bfedd2de51f077ded1f69c6a0c41e61fd777dfcc749116215daa5cad85c0f92a6782268afd3567ab7161f4adc1fdde272536ef3edc03188eb4146f44e4c56d877792e4383e2149a0df4cf074bd938048ac8749ea9d8d0f59aa3bb6fc80cd0c9e0edf367529eaa67ed7c26d8f1d59df254ebdddf81ef0abc4a26105181b39976526d03d7603decba3f19ceb731a8842150bcba0cc2164c2f54e76cfc94c2095b0012216bdcd806bfcaf66254a4434f18fdef216ce6ca73dcb5762bc1ac542038f0ead8febeba103d78ca6eb6e4c2b7af362fb419cdaaa06579269d87ae2a9586d7c7df5d35b346515d2f0d90a70bdbebccb1d7cbb4e76bb842d96d08ad05f390d29a11d4274c5737c894921a1a1eeba3c3ebe115e3db6bca3fb27b70525b3aeeb9b90f39a315ca510ecfc799e8adfbdfedaaf32a3b420099c4a7765ceabb6a97bdf98225c7d612d30f858b4f1161307151c0a57109994a5961b060e0a825e9f1d33522dcec019bb0a2663196fe9d0cb6e9be8865fe29300424a1776dbcf2d6cac1fd0be225efd9656c3583bff506ef66260d6cce86ce611c11ad234a51f0fa6aaed123709b03049f2ae8569ac29276c71444a00feb6e5e96dd761cd77fff6a5d5ee08a96886df8ed8b12840b38e24023c5a87f5c0d5941dde4fd19017742309168f6db80648cbd8494ec716ad59da378bca449e0b66233be9588e24c56fd5e0cb2eae514b2491039d2467639c4343314e3e5488c99e9205d4233ac9131892ddfb6f3fa6a095d3b931ebcea7f62173c5fe285e9bced851a0617be90ce74932d80b20a3af3ac904f183f001241ee8c40c577a92b57a8f43c94c3a889938a71d13428abae30d2a6584b1e368726688ae968f12b2c708495c8e404f3c6ca93555fe7d8d3c0e892b019069cf96a37d81ebd7b271405ed4e6e25df94861e4946c9f380c7446445576cb459279ed3edb4b00012ffde4684980c0cf3961a1c4a16b4a0992014ba585dff8323c639000955b918d15973912ac203286977c78408055babf831313dd80c8609b29d71195f81c24e955b91e67228f495d0382a7a525ab01b4a21677abcc47cef349d1465f219b50d951321f0526c58374f9e85be16f23981fe49e21a8b504061df45e8cdb051d9bad8449cae21087e5e39679accfabaeb768980b2c24c69813594e13ffdfc3afad5e5ecaf77343f30c7fd4abb87f369b9c48445ee0b18492d38ec77b55698bb3b16878fe6949900e13701625f06d850469909b2be5beaef8367a2dd92b17901846dffccf413fc73156b4fe4c60df02fa2cc9dd55d5fb6548cb77051845fc9e855b8c0981f49e568838b64ccc9122a9ae3475847ff217b159874c681a67935d20970ab43f844f99fc84450e3a8f40a1cff5f3332824b2923dada81f5af02d677e97e6ee4970596510104663332e6dd3798e6afb2f818a78185996c9e660c9d53ee4a0e7b5d1a5d10ca277500809c6c54d23eada065ccc9e837cfef86cd4c45a48a5a2165db429a44076f4eb1d2f1426d78fa37b2a956d484cf7d680c3f42f55a3b7a36633d674a2aa54d00642c148db0f6ae6320cec01f02d85b57a322cb178d1872e739f649854a6ba29e788618808384b4dda6f6ec7510f7751a62c3457dfb5d6fe45b93a0612c5047fdd1efe8617860b1b56d1fd136aaa4b16b0e806258bc95da0ff075a5943ad9c85eb3f62002fdcf65100c21cab2fd3e3c6bd911a4a54f395e316b46d9a9252f3e376479f00b5277db0818e22e50be41012e8200756ea4f805a2a1ec8cf87547ee5b588b8d0ace73717d1dda8629747c4ed9c8c784094ab977ca0e94e43d2023a55ca181b9d02190c42eaa369a6a435b5209a34788db1eff9d3017af871ccc6bf259052d3b5c57b8f0255052ee5c299e6d6cc2e9ab136b6a2de7e8615957d88e2921ade3e3c3d71dd071eddaf43eff9e1b89a128be42dea302d92ce3478f750efc949cea37547ae8eba55b835a8d0a9de1ca66a388658eba94a69f24bd7119f958a00d2758a88168991aa739e4f10cda3e6cf9c618fc71b6acc6e0d91e1aa011c9279a5dde26c4cd1e555f01c6ee1ea8c6a79738fe7e8fc081298b8f8e1dd19d5a062b1ef2aee6657985c40ab7e1e91efc7812c58a97810577a6e5f900b0582019187b53bfaef1d962a19e139e7a690f6e608f72e87bc7cd806a0de68c3a59ca019dbd91e1246fb6c13686574cad177bb4465d149319517fcdc4858306ab3e6970268bbe8d0ad3cc10938f333fe3d28bdd63b817ac1e2f8fa53283b7026ba00936bb449b17316c991c80900e80f51f9596fc294032650d122d9f6bb117c725a2111bb7fb70e61a6407251da8b4a1d7acabf6ccf5d8e4ae5285a0653fcaef9631c4d5069befdfeb819fe55781c21345a723eab8493fcb579437766c427c0e12296e823ba90eaafd3b94db7efe4f691b9c1008794ac35859c19f442dd3b96a7d660e8c4ed12a57a8165bc45c0236072421ca235539ac057ef5f0edde683aef9d09ba494dd9270262923ac4d32e190b90de0bc198598f11685ba94d23d9c142c3447845b7be5008107c74c6ef8f34d39a90649013180888547fc82e97588f6abd13ea3edf4e9f7c6612218780e0db1656daffd96dd2b64c5777850e854840d4a636c30f3dbda4030412650aa9fbe3db6f4d35191c90dacd13263e4ba15dc94b1453bf2e8fbb90a101912375909b53aa085e138ce41f3abf39838e5b2cec90e88f170eea0c1e2cc29c250622434956384b33e279c5b66812f42ae5ec89e8df0c5c5fd77aa996cc717a412cbcc4875c6324d3d4d1d1d31383465263f739daa3a7d9f8b3862f19bfd1bbace69371f6e619d2d4b7033fd993d9b750e9b0d3afda56fd9c3137ec6660eebfd0919a97a0a53cca88a98fe0b623761c5b1e6cf6146d09a6189259424c24dd4d14ecd7eef31bfa8c8aab941cab49f5dd61ef6ac4e193496d64ab39bd0973a9d034a7210d3612b0bbff40901008ac8910f06137b2868f4a27d396047d88c86211c911eb0c2be61d076591ea70c0aee23510e9374dce6952b71e7c9c5ab5e0045b26bf13ae35e272ca991c9a2e17d5d4a7237a681f97de9ce34545098c94af60dbd73b60256602800056214ea8edb6a32a26d5d512fc39aa4a32e21131ca58580986d2a19806bf6b2f0eaa1473898fd9ad02653b601601fb00b2b9ba61eaa9ae3e92ebd686c278b25052bfe6bc0d91e43dbb95386a7512caa4d53e346e2ed3c4547096be64044e3e896b9b6b1473fe8eb965fd82c86a204d328922e93f988a29d9af3e39286f4b643adb8ba747c363ed57263c69b4a6b9938b66fc9e2f705f310eaa8585cc9819796a3067cbbf37c379c7b284ba39c40a875b40906050436a4b9bcdd524cea185c7bbfb294685bb16d5a1a791c47abdf319624007df1a1a7a8c6d2eed6d4ce538d4cb2b07e7864ee3f74fb20be31af482a4bd673148540ee41f1332545b63b754ec3d4e252758111de9649e5b160a56bbd9a65cdd86b1573a2ac7d2f33d6b862481182909fde90304b2f5746af308bb1940dd600d9a9574232199e7312ff2f5d74aaf304dfe372fbefad1c094e3a531aba4b2a5efc3291f9c355ebefa2ad11d25e2c18f0d51ac35fcd71b5b24ade1360e1a176587e609de32cc70a355590a9feff1037138209ed23c9ba6612d47b8ebe74df26b6a0caa69002652ecde378fce9901edcaa1216bb43cb4f44d7b8f4713cbd83de0b8f9caf07fac2927eb94934c2642fbe2bbf5dfa5f92ebad6aa383cb55cb54963387f1b8a39424009550935123567151d3d92e58960373faaf9b0f7bc0ee39777bacfdba86f1c76e53282e2a20c910b4aea680ce8ce30cc791283f0c36c3315d1399c745c67739c0a17b143cdb66716f2a0c53c0d4faad3b2937686ac1b1387064bc17fe416ff1dfa10e952a2da4e29fe9b8de84f2897e96d49537706852f10e316b8b1bb2ac4496636d8fd7b6f5209667591aad28329598fdd51dc828d47498f4e156c572069a4c3213273d4508635ecc4336a7676e205ebd714538b193c627fd41e54f463138cc616d2ee67c163291a266a7aa5c3b509539b46acd520dd74508e1d09bbdb006b1f6c97a13baea1aefad0a2f1434a58736ef90a2ed251bd42a8a18e59c4591721ede94b3858c6801a84487d84bd15f644d8dd1eceb5e1a611122e828d1e0ae18c68e793c07f55f22511f34816b252ef9d091ce276aa88688c528cd4e8466286cf19c2e80c83467e7e372358a718fb261dc7751286d7abae42240ab9351084b8695fc940501557be920b311f5e9bbb87e3c82b19ca2a90d43feb668db19da5915d2790183390db9f39ce88582fb13e2c64f13c3f0052b1a66ff2a857d18b0f1fa403f6e061274b0fa7e0e65356abeeb902c47c53b1c84a5a87c9743591885ef3a4cd651f02e0e612d2adfe7b085351035757fe426f99508d30323690f0909d6be1897f5c77692a64b0d20bbd6a87d5fefbe5e7fbfd7bf9febd9d7f5ed7bddf6bd9efbbcfe3e5e57eff35fdffeae03c7ed69deab765f6f3def5d05d3eec188ac32dc24812d8841bf2215b5ff3f2a93b36bb0d63a4d31a61b85ef75b1f70bf6f5cacf3a76de3e7299f6f65a4c93824f57bca46c1fb93c67e9f95f9e667f64df5fe9a7d19cba3bb03f13a81523f25d66a653f0188fd9d91834de417b40eea6d93da1a36344b9764e33d9fb0598d39200b3d68d86a15331b1b6a3b6505786f0b3cfbafee8f55d1573c852e46007f512a673348d040f33cfc6104cf78fda7be1bf7705515b2b65c093ac8207b20baed5ff8dfebb1144df4e20a70d977c4922d413eda0a8fd5a70e5f4c1382d986f74fbd9e4ad0c273ab7882a97df5e308d4b37449552fa279dae34bf89732dd54663ed8b4996398c5045a7a5a7ff0f4f11b01956d7f341ed26ada64fdab73603ffa985e8dc48f215b62046ce1b010756a1052a5c86df11b9046a49144b43335e70fad935c256f9fdcbd00d45bf18bd2dac300d4596cc20428d5a6bb2ac1b4aa74b435bd6dc12f686719a45693707d45d7f93cb4c6fcdc2a007a3460ea76eae7aa96822f8a989c9d0fe9870fcf1f134f66f12f15104f81f6b67fe82d66ac78b9f3d5363d9559935732d6394c443998656b3bc4e9ff58140bc0c45fb38968b2394f402a27a384ace15b7a9a3aaad45afc8e37451eb01ee1a74e7f478ed32ee9c6d6f1e7eda94bff5802b8df8f42576c31f71a956dc4549b2cff233945922643a2d94973c1f2dcd5d1901924f22ffe59d405af592d847d3709fa62d9d5fe1c8eda3825323927b48382c652fa8aef06c34a94d16fd1652501b417fe4d10d4fd8ec3d0d66324297d88ef5a95ab2231fbda15465ab7986a4398415ea5a0c72bea8dba4246f836ee0d036f641f9c47b89838c41911a1d6ce58a932f4302023a7c88f292239ef8e55349e1d8471522c4107424c4def17e88f99634f57a47bc4e971f598d89bb56f8c983b5c97f0bed60d6ad6af223480b54a6d009d565d378ac9b9cd75e9b8195bba63706c7bc361258abdc52b319706c36469d1cc97301148020bb224b51a5d3d1ee137fb72f66baa1bd2f7643d8e9775f6adebf714c895ddec0f879859e0d20e4ddabda842680e0105085546e5d6786174e1a0ca03446a8c8cb84e93d4a6a883910d1df2e7bd2db9fd5587c27558387774b7de7008f3aa69850ea7801e93431fccead9b177446ce25ee7f6e4e9c5b3a79203e22caf5707d9f5b9b3d1adac7b3dad8da38b56c7b79b9af0da7b9a9a5e1939fed94fb288773a85a031dc8b1cdb6458730389471834c2b5e09121596209fbaae01461c15dfdae55036146e39b8ce674a1e539fd93077fb4ccc4cf8997bddf2fd8915eb2a15487ab52c2a4a8b147d21c02b723d2c46d3a2f5152cc414be0756a3ecc38c7063bad8daf5de529a28e7c90fcd50270593986b596a9264af7b27ce5b3046ea8daf82a8720f9526833df52fd237578507a8b0f77e8db2b2e1d7271fbd46901ba69cbbb6541574fa6a049165bc41bdf47504d43e26b44eed503669075817bb4bf27a93b9b273ecb3a0f8d941828d70b2907803a382eb3319704868327adb99e52c7202566e14f3d6196892efd1c743a4c9ea60ab8b2dbad0e36f04608c1968581e22e48575e9f728d5c359f8e90f1dc58d4b0304a41d230d9066d87f6c42225b110fa07fc480ae4d442cb3b82b27099bdafdb729d821298e1c8b1d13ab131fb58b4a5704f47fca8b5804110078b63c260bb004922b3040c284876ad78355bb73206de7bb9b5fd9f2706d3276f58dd4b17d78f484793bbe6a68a8bf84cb1ccc07fb46b27e3035563cd1e0a6977033488c03291a0c296313e126eccf886f695c00e0796798e5a29546924ba1c3589f065a97442c7049e2725fc56403d04da03aeb6a9f35330058b183a372c96cf5bc0344a8ae8792d538494fd6f625f0535574074b94b2fbb35d31324d58b7178f363b87fd17b677bc648b8bdef04a0d2810d2ba0d4b52bd45039ad21090a5c55ad28da54c8cdbb79046c288169dd6da7aaa20c8acd2872f88658e8392a14b153d06a47b84a587d7ddd8d88aeeafe7277ef7057a256d2c5b1058ef644310a16314eb92f35d141f135b05047ca17ffa7e59cfabc10f369b8d53bd910cc174486ff51f721b95aac078d25025cbb11c7874c43820ac45665b0d9e157c3337b3ab5d7b4fee0de8e713969151a9e5f2178b28540715bf66a9b01c8ba147412c4b100b878ecf1f0cbda45505545c036ae7f69558305a15710e49995c465bee51f2466d9c0c1315e75b2ac1a4af42b62df7cea0e5d0448872651f71c7254276444b9d85a70c4000d80a686816f01395361466136028c24fb7ecd7de807c4595f8077ac1262219d922774a52066d092c0971096793d541a7ff001501f180ce17debe049d75049d311374c69aac425872ad5334486bc2fab03eb0d7b746607fbff954a6804b702603673d4a7026cbd7cc5f83b4498e3e57035c8245e8006715a6e6f69b27e4fe2a823311a4d9bc2d019720d304e9ace4ad9a1924cbfd9f4b50e62a961f6acc1d59ecd398fb3b6228389b35e18826d4721fa157c4aa020c9cf9e0d26f4af00663131fcb848f527751ca818f9e4a134eb64fc7aec952a69b4763838e3da7084915f6c19f9bcb79ec7968353ac56c0a24467c96ed8b8c1c1115c9a2b35156c4936d88234474ef2832453ad9620aba2050b799686a387d0375221a4976e2c2c9f6697962c383247311ad49bc3296a25696e17e135962bed00a702942922d10eeca272d25a1997243fa69b27367dbd551444be191f2fa5eb824fdf0483182aa484fd09414f487be7c9994245bd2133bc8364506d9a6b420db9413d4a88a64965f2e494f281129699425fd54966e0df81b4f5a220e06234946fa21296994ed4c1d9be70097a49f9456f7654a3792483f29ad2025c9cc3aad22c9486693355b924c48b65f2a82247395e8678506b824fd90be07b99aac3c525e29374db2803ee547931d4e4e93419aeccc149d14214db278a3c807144548443da288d6281ddd9824dbaf239020341fbbae45b46c3dd20f49494a2b0596a2d32a16598acd2bdba7654a8f6c536e52705282649be2caa0eea4d56419ce7e9aac3ac82736a5c8cc56c74e2e45b16c1d10fe369640f4f290c0fe9e22055c927e5ca4319b486dfc37d24f4acb553efa6c622ddbff567a8045a6e8677406c1fe25a665fba29b217c6471807fe843630962b6076ca3e846f4f294e55eb974d916c291c2c65ed3cd39a3d51cf0b841498f73ef43f8e8b576c4d8f76e5c4563bc97a73c214c78b146594f26e3bd7773456fc73b8b344973914659efaff8c99aa45ecc13e2c96a4ddeb71e8fa7ac8a0412535e8d62c9310e91e21abd96a7ecef8859c9a49f4659d1f53c244d96a29f6cdfb278e3aab3e7f36383717e66d9be47738fbba21f9192262b0e6c0c937e3c90c7034222e3ddbc5c45773ae6aa2ec6bed702f1b88ac614f164ae6c1d3403d13c1e2fc733b39dc1e31d814b54bf03de5376b42d5c7ab4472429f9683b4a7848aac9029c9d256c50493ff547ae623fe9e7e33c9e6c9f85e3ee7b3c4dda6cdf4b02cbf6bd59932bd9fed76a9247ab40a67def489374c81a92b829971e8f4fb6559664482ebd9f6cc1569229e4f2b3c9b6f46eb56f51d9523764fb7e7a113792ad29972ecb769be1bfbd7d130e0e52d827eaa851fc6413596cd26f9fe8baeadc9b747d79aaedd77fbf81d9bef4167c00bf40b4494247107549e6fe3aceab13b9b7e2cd0ee2386eb48eb3e54ea43a947ee39913bd3348e4f10219a5b7200813b4323702f9462ee4ef6fbd9bece2f287674d9272dbb75bcd1d123c26978257eefeeb0e59a40c7a1fd888fadf1652fabd0f0cd24ab2fc3968297de9ee1d764deffbc19e0ca50f5a4b2910fe83bb0f04cabeef07dfd0c2706932437135aae3114a824b14178f119e9909687d605a4fad255aa9f6fde02dd31fccbd8f30d3924fe90c5495824353dd772b2f959516e44e549222779f0284aa506e3cd57d27046c84dc8d4bc8dd5b20f8fefd141c579568b12b76350442bb2fd14a3d1d8ca7ecaa0f4d755fbf9406aa42715d9d1bcbf595ab285714d714b9fb3094a9f63de6aafb967bfbd7bc3a20d7279accd8408b29196954f78da50878424c6011886be6efad58e26954579a75ef2110eca9eebf13e0b2c493bb2ff1948ca0dcc0b2c5371827db4779d19710a547b6a49a11402f645a894653dd7bd93e48a32f28d93ee57259f2010355957c4a64c8dd877c7089e2024bb26c8fc0a5c90c095c5ef326775fa34b45a0b8401928cb9dc9ec049682d3467269324bc13199a5e05097ced20097204feede1e814b20dc4c80fdfa384d8672b7e5ee41234d82dfbd090f7da1b97b50bc4b30787edf81461dde0bd165d077dfe53aa6c01ad5a5e45097ee41a20e21704e01425dba4f3982cae8c6149c149c520d4a3eddb6e5edaf096a816cae79cd6b5ef39ad7bce616c2e8cbf7dddbeead925699763ad5fd91233d3d489038ace4e3b0928fc3a89075d40c2bf95097ee69e88d2b52aea349d6a8faedd3495aa592a453dd1f39d2d383044992244a5a89db7cee46159f4675ef035ca6e0e4ce27774f4fdd98817fad28e97087b1491892c800ac01e40c41a102187c359230432868f0026fa4028bc16420ce810b40ad0f4644170498470422b820d44043607081c0d3f1a8c0fac0e4ae70b3b92e1451ccc083b82c144b5c5dc307b4adc6821754ee07487e9004d766d0049f4ed16c83fc748ae612ab98e12c0315464eb4a10cb124704ba643ca60446b01bf14350998c51674804b435680454ac0208a1f18c12a321d12050daa0f6c92e990286caa1af096e990285a487e9024f14411487cb0d578c0905905b5a046ed27b6fbcebdffe66a727b95f7227c5b41ad345e2c8808ffe1b317c482243e77369b3de0010f98fd8c826690a4499f8feb402ee8406bc034360cc23f886a50142bc83c4a5d7eb0db7750c75deb6dafee51121f3d952d3e79fb64f006fc81b46e45f6405fa2c8c01b4b32ea62ed8f208dba6c96b3a092acb3f58a2bf2b7b232040c76216f6f3fab035c52c0ea0073ff6d1c772dc76de16a45bea37dceae58e46b52176bbf2cc9b2bd5b4b8b4f13df677d581fd687f5617d04c1220a20ed0d39f5ad0e7089f2d2517b447951976dc55380f2727b6fec0ab9310f65aee9dd5cf8e8a92cc9f256d6b2eb55c2d44bf0f6df7745d073216b45bedf7d7995c8de7f9d29df11a45117ef6bb4d7035c82b4ecfd8a47a9cb35c1da356b7807d2f28624d7bfb55c5f06a4892b5a326b45b67fcdf19ad485452eeb6b655a91edcb0a16d9b6645b92f91374a3dde7dd0ff6efaefde393e1c49016ae37c09f9b70c42ba350319e68e5fa331e508156d9160f3db46e07d5384f14914bcaf3d19e80e5921e21ebd717b97efd171586e6fae0696442d1c815956b1af297ab2fa9b5bb04c14679adddd67677f758d6f7a779031bd5a65c9f8526f7584e20d771730114d8e4f5b232998502532870d938b9521f1f99acbeeacb4281eb539aee725de833a19986ab8b830f543723f0d637b8c4dd1e609185609137b1e6cfc7fac0e585d9223008465dfaad4fa3be15576105ec5faa8436af791bbb1880ccadf575bfc3ccdd5802417966e044b819a87fb7bf4fef485796c0ddd725b9e41e74c7b21bb931880cf8d3cc957704e28d264862fb249a85266fd95a6b3f70817247de009785f0bcfd8e1c445db264c992f71d800fa280a0c90e7387098e46a393af2801b4d54abc3fea69d25ed2c6fb8f683658228bb52fc0654b2d9f789c5e2797d8126dc4160b0bcb7f2b600b9246f9bdac66fdea6b74b37ef5df4a6c49c2e259843233ff7dcd12597f45d6aff4009b9ee78bfc39a2dd3b8e662357d58c66a31912b07d16df82e7d53c8dba97f539c8126f4b92265763ad05499333333a2cac8f65046d1270c9e111c7d0a7618e9ac7310e81e36bfec321723e9ec221d69bb0be5a78e5cbda945651a81c41e66ad4c5df5b030ec19adc919dc8147a644aa4c891bc43a644a440856c864aaf500e9d430eff9980ab6e16abbbbbef4a0c8532367e86f45f080cddc0407d8f659761a01e468b2d11476c89afd24da3fcc55693d4a6c995f8127b34b91a4b2ff1a6d4a3f422d152a557ea535fe20cd200b3eecfd8f8fb612863e3bfb09f753243416c88211dd1d6e2ab626b34f394db781acad07c8ddedc806966fd88d66439f3d6c68b23da6846053cf33df39925967704e29a79e66dfc6876c44f46c8fe5475321b87a714071a968cc02d3515b3c950f627d1483d2a34fa42ef12bc7afba115e01827d31433c9aa49c889a7c92eddcc3677f627d51ae57f32754eb193ecb4d3246b24d14ea41e12cd55355f33e2c731d24e8d2bc41648037c32576209849b2db5161f1cf6db1043346268460cc95c0c60800f06687de0d0cd7f23d043820180aaa9198730418cd83ab148c0388432b146b9902b73154b8e9ac7f138c621581c80e3737c8eb1042c4058fa1bf0391ec7b3f4c8808e69c098632c95703ce58fe3694ccd78659eaabf23a6fe37065c9e4c12cd0135ff8901972d35b125ba9aec8ff12f5c7cd965173cb28c532c64808dc1319e3c21b8bfa5c5a7c9fb317e0689d6297f1d6474f80004e03fd388b6c30e4f8d6419a758a37218be9f4ceae2ff49015b92ac512229369ad1173a9a511799f76f713569bff4e281f5659779f8d2cb5524678dbeeb305651197df9b987a73dfa12957b187d3923f760f2e4cb882793b662052915fad1a47d71cbd6072e4f660b9e95ac82082e4fcdd263ce5f92682b5e0adda8541ff35f09861018b24679f70823465d4e268c568fa359a38e804b120d86cc55385a6a2d354f79cd9730ceec0f2306a315058af22f9dfcb351fe283f0385fa5751699529e629ff91d8ca26198e59be5f23d2f265fdfd0f055a1f3808a6e12ed35b6aeeb08f82ff9fed2dc83137c57a4e243c4966d995d0b2d7b2ff4a29b67088b4533522edee2098864ea34aaf263dfbf729d6a86e2fbd1ad5acf1143be934ca4baffed2abc9eed1e4bd69d2e234d92558c92ce934391313d2e44e93336793acf72f1529196992a547f125f66089220fd1a651fe2b517489622b64a5e4163c47e0fe9abfcf03f892440b9203a832055c866ef29fcc15ef12ae6ceef1642e01c74c425470d47ca96b7ce9e577b46389718864a895ec5fbf140e60e8e6030018ba69f2d67c4ccc975eaeaa19c5d62b6491b21d61b41ae5bf52e35b0cf980baf8d78821d353fe9fe859882bc6162717a6173050291cec76bd2ba61d68847222328564c6108cbaf89b0778aed65f4d048cd56cd4386e071075d498d04df6cf62d9d5104b6c0051c75600b1740288e53600b1f41b18b1749c17b1541180588a78b23f0db12ce9647f95a86323c512f720966d840751c70ea28e1a005147d5412cc1192db5ec2f432c410088e5e995fd5dc4f2730cb1047310cb0d07b1f494a8634389650743a465ff1762a9e2422cc193587e0bb1448d628945b134e5b24596fd1f870445f66721b6b2ff0a51c7661a6d2ba28e2d97c4f25485ecaf2296a79eecafc2142b51a4d22bfb8fc49359c23842e93822b134f98d8958e2905876e1c9cceebab45cdf134bce26df9f5c5fe58505c1c9a9b026cdadb70fc1424176b27fc86c12ccfea159a8a7552afc433a39d943b0eca1337b88277be848f6502cfbc6f934595e59fe69b2bc676e35595e9e5c39244dd61e809c92ec5c2d3b0e3c0be8da049ecfdd9dbe7757822b43d8c2d5ffd61f0756aaa2a2d3ca103ed30efbe64ee8401ca8e31ad79b8e0893d00a210fddb7cd41771eb83ec8fbae498f65fadda6e281c4f264ede6a3ffb5a5bbbb6741a1141d68e33c774ac4b659d0ddbda9cbf7658f09eeee9da7bc537d2ffacb538d411a52ea3581ebbb0c7dba790eded6ea1e3641a96351a8250d15e41141cb57f114ddb6cdbbe6b6ed6ea11a70fdcddace73607ddcba8ee3d880b76deb8d526ce2fa6e6fddb66bb936e0fa9d12b8be6f1b14b8ff3c95db9d453630046db6fbef2cc23d6df2decd864c3a13cc2181abe85e8ada4870b74d74b26dd7c753ed9f4f6a787d5c757f9cd7e7e45aae937b9ddccdbd39b93e28dbb6d5eb533e0a2cd7109681641d356fa39fd4a5bf6b01eea79f093e4971244e4e14928acdfa597f80372490209d293d389148a19ca80a560b360b4cbcf4e53a57fe3c100c439e0ae8c39c0906b9dd54dead12b8a43ca1b0a663be9107d76fd4a5b6139d745b93376f4d51d68ee08ebd75ee965e7ffbfe9edf553689e3f4cc701adc78c7929edb105236b7404e504825b74ba4ac80f4de3b6e3842c0f57f68d27e10ac025a254a49602f08aeff95bccfbb38a036390315694ccf8eb4aa29fd95ea6b88a1210a4bd0b0441034e4a01241030bcc8049681882c327da081cce5a07ab60c21a3056220a67d04119cec0a31201632569c05d921d1c663ac4070a25f85ca1abe0538598cfe92333030f917a83a98a75958f3876ec5662c62ec0f68672e76a95f485d117fbed3fbb393cf7c729bb3ccc6b43c3315d05da803c62600f19f8e304732e0f18e4ce2e0d6c5df0a57bfa4d6140df55aeaba10f9eb9ff40a20e21ba0cf2128895ba5813701dd73dadba2ffa625d3cfa69d3361164f67fb7929aba582f41f6af3197e62a6b95d4aecf4f8f56fee10299ab94eca3f551c3e65b5737c325dff6dfb62d01c35edb65b9d7fe853569f3f637c88f26c3bcfd9d35d9d3aaca82d6f6578747defeb573e66dbb47f2766379fb6befabc9f2e2e42d27a749ffad74d7edd164e541deea0e72797fe46deb9c05db972b10d7a402be42c89b2d02d321b51f90f90313b3d6fec0d0f3c01004c1cffac0f5439637964e2908524a69e881381ee8c6337d10a7c9f075845e880eccc9b50461de08c61a55411dea52ff038d405dea8344a032c211344d0f74e37df55e1dadebb9affbbaaffbba2f1b82a699ab077ef5bebe3dd2aa0f890b74435dead3f01b57a4ec8d5fad51f5bd57f5deab5d4fa7ea1f39d2d383044992da7d07bab92fd08d89190241a7ff00051804df86b724805871a32e2d9a3481e94e9273a32ff4855624b24aa3c62a05dfbacd3977dfdcddddbabbbbbbbbbb8fdc376782524a55542813b83e754a29050d91413008c3300cc1f00bbd1014762117deb00b43ee2b08819608c3100cbfd00b416117865c18de300c4370eb54d085a0af0d31600127854f06432ef11311840af20a4050e5e37f105f5d2f2812c8b85620b62d7fdd0bdabd364829ddc23660ff9208ec4f6d57ea34632a7cb576777777a5dd1d3a5173a468a20c5230e10652e8b810beb0896f77f7ce53940261c9d131fd2588a19e721ed85ec2ed4aa643d0f0f3bdf3d153a9a295fbb922604c6b92f39afcb8d07ddbb8ef3001b427df3103dbd3fc8544ca061b3cd1aa216b2587a70fb0cb1ad5df752f128d43d4321062065cc681801f127b0aece073ff819cd875804b026ec21141c825f691e9c00df00bd11d68720b4f578946da298fc143e9e7b0faff0551f3f79d5837d1b3041a55c1ee4601815044d16fa07b326fa74399cecb517f5c25f291cbd0e43f0eb43eb09727fc252a8480c897e012d3300dd7b00f4e52df93859e2c3cc3b3eb4167cce0f1bee166c0dd973372d3fc95211572ffb6dde8a820d00f8deaf0bb4166a03c2814510481d087234b8ef04ffe641ca2da4049116431e10bc5c7f454ff631a7de9be1ff734d96228ab4c01979866e63e79a031ce70032e67884494ef449083e57e25335c25fa7e1aae3af9de6ec2b3513d634693ddf7f3d01cac137dd7758f72d5c977e109eb80a7fa59ba17fd8e98afe6085f241287f8d4e0238b09c71529e31b952de0eddd93a93881b7df4ec4cdb5bd1ad5a2e85dbc9826eac00b97942702127015fe8e40a39ad2aa9b01778ea961bd493c14e03014517c3cc58d504e4628274972608deaf7465f763e4239a939e7a6b71f8dea9a50143d0d73845e34b2e4107df8e138048c149690c5887e474c8dfeb61360cfe1199e2a56c09d4bea139e2f141f914863be30871763f2346440c7c4b80cf076e32a943ff9b2137d8955b2277315ca884fba4ee4c9dc4303ed8a441a63b16822524f85c49617837d3c8569b973c780228de17e80fb558076789d03cc840bb8331d32458f5c9f863e13eb8309262c12707dd0c7126badb5d6871d82b5d65a6bc160adb5f60bd60b16092a157dba23d3ff64ec5fd1d5c5dcb7628e6e9526c8e507b66c9f85a6e264bbf9589a2007b6760cc2246f2390bb233bfd1a5dc3ab585bd9534efbe8a9c48127fb5b1e411a85800fdd88a11bda1e8285417c4cf82cc942c87ccd34f44125cbf4b0343e5811881b5a015621ba449b05bcffb7801bab1bab5f7d8dbe1c8d0f36686c8c66366c3c4d6da959cbb2ac991b2b7bc3aeacb52bd60c6bb55acdd8bbbaabbb2abd562c96a5416366060135647da36f8c40722c600482e3da6b81d4acc496a74a8c5f6804504d4fc6c6ca3e4b86c5b22bb1bca30cad34777557377c98b93edc997bc7fcba7163e6c6cc8df79fb97f432ce5b0665833acef7bd046ad5c4533aec64b656cd81b27e0a027e790a9137ec06c5a674bcd14331931c54c424c32d3cc4433d54c484c495a2592d11d32ec647fd3399a8d9068317a16de75124d0109f0e1efbb02be34c94c311fbe73697d7805f4686659ac191b2b1bab124e29a751a51fa59b46f57891582c56e94709a78453cae9dcb271892203dedfa4a231a5579333bf001b3fbc874ee07e967f65014ea1d93e2b043776b8b869ee46ac515e1242b94a3d441bc51a59fa693ccd464a461ae5cd8558c016080c1441f334332b9ad5cc8a0123cbea696ebb001bd6c6026cd8f8615cc0aa67687d29200162c8d46914cc97249a077a1fa987440bdb436506b28a79aa7953ee4799ba469f4c1de06b4f3c469a5ccd8e90ab53ad4999279334c96247d369da619962d6078f2754984e3f8bbc21478489419abc6fafd843bca618350931c1686d30cc15205f9a62231e4fbdee1704e3f8ee4bb175d6e0186b1e5033def3e30181ae92fbd3e2e94008a88f682382cbc4155ba2ab347355cd57cff39e86324c70361c8f46d5175b2773883bf3547d1c34acad1ab1ba5ab4e75a12eddeafdac0d61fa51768257413c27155a8bb1fbc2eea52ed8760c8653f017d09ce27d355387ac42a4db2c8a557bfed53ec64b2ae2be6a9136c625fb0d203d628ba585fa3c55b5ad6d8e283b39b98e452294653fee1535a80a705c8c1723d70b923d37c8f682c19968c383ad2a89e46f9e848a34634eba323a39ed18cfb817fe659b4768866e488389936c6b29b19cb6ec51a4b2f959390d049c83dc91ae5279d46f98e0a1770399a7d161ccd5c25b66cab094caa356a0c59a04ca2d1ee908ad928151a75a9aa0ff960337fa3151ee093e9aa1cddc9cc81a38600042080d9a81fe0526c750d781cdfa86f8028b666aeca31f6f8915072caca117847a6a5170bad4915d9bf54042e5b6add2733d768b34614d546481aa5e2331aa99068a41e124dc514d14c94965a66fd4928d3c2125b6a8d6ad1c65bf1bb2734ff7d2b3e4abf1653909650c664feb7842c5336c12a57f10d3efd27cabc18caacfefb58f7cab0ac18b24c39242386764267a8c8c9850bd0fac02dfe7b015a23708b17200e374d9272f7bd70284c01b69fbf0ad32770538c865fa341b7e54828d3124a82c507439629b7d806b80ac7e7f80f044f4a9c96a02ff76b3ae6cf3190685e08fdc9b448e0781a3a20c737603c9938c4534c0cb81ccd6e806b5a3c192e5b642db296130ae338fe07825c0d6afa5bfc50803dfb9f62aeaa799b24ece3103d6d558e17e51849341a02de8a40723c0e31051dc8f1249aab7288a693f92b261c16d994433ef8bf24d16a53df429def585a20236034c11ae59f71883406015fa3b950c61611b25ac41b50171b50177f0488a21138ae229970703a5b448bbaf49b5ed4c557a4ccd2a2c58b3862cb080e076eb35b88c7ab51eee285cb935913831cfec9a42fddf216095c6dcd41d4252c16f98e4070bc78435d48a7e3105b968b01aef9174f3a6bd4a8f1f6ccfe39c4108fa758ac0a1f6efc8dff56e2fdcf640a657ca0f962baec31ffb5e71bdfa39dd999d59f8ad899191ba2912167666547b3d56c6557e2d768122d94a1f99578bfc5fb5f0b975e27d3c6cc9f8a34598a2d1be3aab30d6b24934e3357d938cf4e4d0cd9ff443bf5b4ca2694ed886105d9ff84a45520ce49489374a7b693fd4f321b3364597a651b7f9147931589eca6980704cc7a97a1f91b62b91a817033d3f840d32b40fb029650c606eb61b45ad4cf520ad264a34aaf528f5a5e314b3157d9581305d9bfa4b23121028524b26a7b957e3449899cb3acea9836c59a2cff943549d623b2bf69a7c99a936db6ac265a24eb470fa3c5626386c55acdacdeaede920234657f7b94fdcd5a8baa4d48c1996bd763e74ec0f5dd9d9660aed66e01b3ac6ca65f02516d721d3b881db97a97cb1aa3f268d466c7ea6ad418caeab379d8369469f7daaf1e74e381c6035a05f3f425d0247efaa2afb3c35805a5f2d7009a0c39ac7db397eb40de078621132cda64f94319915254a89456584c2b58b4bcd8fde7af05d822a47191c31e8db2df093c810eeb3a8c371d5cd65815d2df0b1046ac334fd9c762a555218db26f5265a60e2e3f57ccd5a43fccdb987fe667de7bef8bbf17879bfa7befbda8bf97c6fdbff7dedbf2f7aaeef8f7de7bc5bf97bca6bff7decbf2f7f67059fcbdf7de157f2f0f57e5efbdf7aaf87b77b82b7fefbdb7f4f706e08efede7b2fcadfabc34df97befbda4bf77c63df97befbddedf2be37ed5b9f702e0de7bef75b977fb2bfa8bffde7b6f8c7befbdf7fbdb7fbbbf39dc7befe9ded0df7beffd5128735bb880414345f6c0c30e01d061860c00b8c4c8e1c5e9c50907522a0a148c172e4e2d50bee5fbafe53b1943d1fbbcf75abc4f6402593cef3c4fcce25b01db31b18c3013151539e387564a2a2ac2511428f73c4f308523c1764623ec3bb99e2be7ba5c5e8d02db1ae76db26c65678f378a4018e3ed7e5d735b5fdc71a17bb9adc31b0aed844e57bdbcfd1bfee87103634dfae25b4eabbc560b52d31192c3df709a3c7df81b0e28cc6693fa72d3410e7ffb415f501ffed66ad5e6726d2ed7f6726d374a9a84210585d972c82f7d8a1ffad272a4551b0cd60343024b326b92c51528ccb6d3c397ee8411fa22c65ab59da7ec3cc3779d26ffc3772528ccc643f86ed217960fb79affa8794e901cbebf9a2482c2589b1dbef418e4f09d077d59e1d32aeb72fdb8bce5721792264d62a0303627005f36196af4454591565918cc08ec08ace76c32c50914c6eee8f06513d9a12f2558abec799a672cfcce6952e5c3ef1d5018db33e3cbee410ebf71e80bca87df36adb21d8f1cd6ba47ffc8e177ab49ce0d14e6dac8f8b22e51425f48b4565d97abe6f271fd1c697294050a737300f065ddc28cbe5c21adba30d80eac08cc480efdc3af44a03077a7cab02e5f5623e4f0ab0e7d39f9f0eb4dabee79569c1366e6f06b8c2f2b0d72f8550614e6f608d1aadb29b1c9397c49cd90c3d70085e16cea8bbed40fbf034d7a1f3e10f4a573d55cb4f07f6815e7f294c5e14b1a851c3e0d85e172aa0cfb746700250f39fc18ade260379a047df833f465fbf0514d86fec5973072f83d7ee9397c171486db39d197fef0f494fd30fc4a61b89e2ac37ef8e1bf08654259de5c9bab85cb852ba7c27c41c89c6c3fd70683c1762acc07eb61e7749557ab9db5b37666fb5b4f85f96c78d87ab2fdade62aef3cb7dab9d5cead665361bc9e1d6c5caef2603017cc0573e554186f2700393057792e170c06dba9305e8e0e3ba7ab40b5da593b6b6785f16c66d89e6cdfd65c053a4f5b3b6dedb4359b0a03ea9161e37215080673c15c30574e8501ed0020275b90cb0583ed5418508ecbcee9aaae563b6b67edccf66f4f8501d9c4b83dd9feadb9aa3bcf5b3b6fedbc359b0ad3f5e460e372550783b9602e982ba7c2743b38e4e4ced5b960f6b99d0ad3e5d4173bd93e77ba8ae36a27777267b67f123f9d9e0ad3d95419db38969d4bae27bfd7de6b5e4b8d9b4db6ef2813183516e4c5587ee3a9c5388ee1f805c9f65db48458c03e58b67f12c3af7d362d3516b55a0b1670e5ec613957ceb327db1f577c260fb6c3e2c1563c9807dbc9f645155e8ae7f2725478ae14cf157a2e2f27dbff1248a5e6d9a8a8a5d46a9e4db6df82d271670fca199edcd993edb3207123106c0705040b41306e84ed64fb2bee75102807e402b940ae132bea6a209b8fa756eb6a209b6c9f0509de72e9b3eeece1cef3ecc9f63f8fa5b365a893ad4ea3603b1c1e613bd9fe075ad9dc43b173e7cae95c9dab7371634ece5f087faf52873fb85a675361bcb3cab0afa282f1d8d9843fb0f8e9786785f994a032ec5b1e95cf1c0275b1de99edab84abce26e3675217fb960c787355f8f26ab933287c819dfd4893225609e0ed873f429c30a74914e82e4fd9778739cce5fa3ef3d3f9622efb45f04eb6aecf240306bd9a576b927bfb9e7dcfa7c63c466bccfbf0d505f02e053aec333d651fe357d761aca2f26fff33119da2fa432247514274b965f47fa6ab3e9aeab71f13289fc9fadc85af24e0eefbc35793a100debe8a21e01288001ef4a0afa38e2decd1240d6fb2cd01b4377c6dede12b87cdbbe66043e0c842b365f0b70c8e6509b2ff27f68bd84a3ae58d2051006215d2a99d7ad6228db235c479d9ae54a9252a97e14b8590cffc745ae5304f9960f82a3f93b3097b843f64d9de317c35ca7ef8caf6c126433e3c747535f175cdb5733d9d5095ba54ffb26bd418a256f8eed9b55a25e68a1bb494c054ba25300b4db6ef4160f4c524fbbb8e3bec089ccc51c164b90ef3203cd95d647f9f794fabaa0f99eb9cd94bdff123d93d96fd9b2c4d3c68b2de206bc06e3aac519d4b95cb73a3f81004fdbe33c0472393098ff266b2da4c7eb051810a3e1399cd860197a3bc12c3dbd7703576b40385ecaf46161a50debeeeb07543f2ad6a9bacca1d99457774ad3faad7f6cd86ea777727c13ab6dc9f8732bed56a1d046dd4a50347dfe16ebb6067379069c4812a5fc712e7b7df17caf88d1dd96eff75e0d6e4d6a872087aea6ea77eaba8f4143db99bc6d26c174e1f48c0254bb33ebab081efa362dd1a75629d1a6581af760ca7342eb2d3a01de281ba7864c0ac01842b7ae4d60ed5af230dea429f07ba6da15a9d88d582458235c21a61b3608d50827542092770adb5563b040a862cd9c97448a64396b4f2679dc066d76d4a3625363cdcecb1f9642ce0b2ce9a74b3c3699410ecfdf0705c751fe471582d92cb3a5be574d548ab3c93c7335de53aa3ebb89071f3649b115f87553cb4b1a37778ad2d48412b052defdd7bf7e8e9b3c1f59d73cebb5fff9e00dbffe69ee3388ef3becf3fafdd5d898a3183be78cffdc7fde779df73fede7f9ff7795e0cffce3baa42097cdfd21367857cdf64b0c9dff7f7fd9fc9fdcf06d3465dd4ed46555129ab0802b67f4f804b54be8f7255d775f7f344b1b475a422ed44a74681bc18333e1df27d1b26c0de91c605aac990a67ef51b290d3f50f337c668541dc51b8dea716b154a60fbdb3be5e9023d3f6ad2054c899cb05c664ae4c4c994c8f93a6d3225422449b699122112450e33254284962bee4a959df5a8046cb5574d9032542410000000009315002028140e8a05a3c1344ce24cb50f14800c7a90526a4c1d4b635112e4280c838c61c400420000001043648686860804e36d38d4ee3a311f904cde6696f50047791bcf5118879e66543764924faf2fe7ced561339fae6b9891e0915d7377844b6fb6e3e5f713ccef72558aafdf6bc64609e486c0fd887d4598c416d5161d801ba2889efcdb833d15fdd9c4392a50e4b3adb48706d884c260a4b39ee219e6455abe16855df8b9510643427188000a24df223a37df37d53228727f0d2909b62a6ee2042baecda3c23ffc86a44292efbc6fe1d10d85fbb4a2bc34a5338908ca0334a91830829f58224489338c30871a91b3628100560574091f176146931b4f22b8a1d6822326ddd1fd7de9a16bfba676a22a6647c42c08ee63d2ae94984372a6e991195a2d062d26e971441a53018d454b7a9b28f15b3f0111d5f6ed9d86dacfa3d40bea0985ea8792603be26e15b9a406944b6d81e04ca7c722e97095c6c776774db36375bd42d331d6519bd7b35f45959b441ed3fd750d8fedfe7a8dc7ed7c65d1c8d4b89cbac88c0630c0cced197b992b5d53c495d88b764c902cfc346cba7d38380e7c265c8a4ac45deb0c36cde8a971624a050c76e127bff32c72b019f1d07a8d34ec0b46a0a96deb3fe9b9637578951d2c4ba53ff3f50700af78b647d0d56d140395f2c037c4dace133d3e5d983338068e0c791e6ee217fd3c0b3dc195060b00bf9fbb97811ffe90e45c67a70e2c6d6aea6779ff9ab908bfb0a724e73c336e606953533fcbfbd7cc45f8853d2539e79971034b9b9afa59debf662ec22fec29c939cf8c1b58dad4d4cff2fe3573117e614f49ce7966dcc0d2a6a67e96f7af998bf0dda272e75c7b92448e3a8bca6d1c1f7ef51ce9acdebfffac787ecf70c4b0f79174069f9f64ad0c042fb9d3bc2c2ad7b3e8e469ea7655b1037ea2b229b9a431aa67da7ce95a9b7d6bec969b958e15bbd5dda2638d6db9b3d25bb159dd5af4d6d817fa7b1b950dbe163f8264e912af1561565bf950d62dc0477a035ae890e102e3946b0b45276e8e0a883ce588fda088fef0b46c1aef70a5f77f96da55d9b2f2c77f71745ebf3d3f8c6d0dccef0fcd1e9d579aaf92656c6f2f06f3d79fb28911d4ad21b590a1a453b036da539e3ec20c0c054531c5516b24241b19f5a13d44552b2a24ff9e1e4c0be52a88c9b0ae4de41acd5ed3a7ac903f2bd2e61b68873fb6f9afb6e8110ca691e776cc0cac3f6509388ac485390244af06d478cd7192349a81fddd09af6c4f30589eee494ec471847e6f811bf39e4b709b0c54c86f69e0e0a2c9d7aefb1d381940dc1707faa37b109f9c199f3ac4565e70c17347b792c262eaa1b040801d4fac547e0ccb1a0231f62292546650cd7227eaaea205940cfffdff66ebadb92afc7347374565a30127bd3f76f4d98bd65addf7aa7e2df78a2b0a0e3e0dad97e984fa26e243181dd91f138b89612e87d369403701cdb83b505ba82e81cb22ff98d81df09ca81263e8a690eebb6f82760557f8003b2158aadc563282075df1d288c10fcb32dde4747bc9b115b0dfb6702c12530546981cba01f22c1080e2a65979b2ca18d0c54e554fdab8962c9ebd5b8d4b290b14ef5af2e16ddbc5ac87f4855bc661ac7c5140ee8bfd885bcb3cbe5c5e4e62dcdf0b6f91deddaa79cc006f207d3fcc63d89a0ab7537776eb4b5fea80febddf15971eacc005426d13e45f4cd219d15c4342d8b68256c5b657b35594a3d9082ab6cc3e844330277dffc53a7cd85bf618c3e3afeb8cf13a29c8ef85b5ca174fb1c8d7b260cfac3d1d83cbd9c639d09b2f72d86b396ba82111dda8c299189fa34b031b3fd2ab0effce664c516824e377251b3a5f687af3e1691f80ddf2dcce4c9c25c6ec7e3099de85929d31658d23efde31887e2c4f18fee140a7a70c7d60abfa0f68050f33fd7d08e78eff6d004c53ad2bbc19a05c596518ef0aba7fdbf71a5b55e1ebc8bd8bf883ed85d18b646419a1761f1988d0e2e57fe4e0f55be9dd469084f9eccf3bb358001923db059a0043f56f45a49a71134b689494ca2716f0247535a0b42d1444385871361fa0f2dd1f1b1f5038c903428322c2a9176a75901c9f00a19b0c24234dcedd2869368c2481c9a2e1cf98f302ed43287560430db37f8f703366aa4c47302b6631b645dd3f50a8456d0cd2fa28d63187ca61c1d0e1e3d142f0a1624af83b9c64a4c9b91b25cd06934d34593cbc11530a0a44a9431aad297dcf5663810dec2706cd3b1f9f38ce504b21d5bf0d5cb3d5c0ae12b23b07673dd8be1679ea6f764584e845980a7338d0e76651c05552f3817b4cc2a1ea6348086ea29c4e0062e178209ccfbc2906b9eb09a11dd893f56f85941465f130bf1e3ff176a6c07dfd0690fc67668fab670e04ebbd47659f5a2a18037946352123b8891466365e6e39b9cc9d26d601a8b02d2fd3fbde264040b846a65dafc8148c21b32fbf3b8770910cf03dde583578fa5875132f5384b5d9d496d0249622c996ea4b8790f25a192408f4c1ca901405356f1729d380583d2f6a6e907e6b080cf9c378bde9baa76f1d1aeeee0f2782c18d8ce0692ac7909f4bcffbdb9a3db67d4c90f672820975771068d6fe2374a235d633a8f7c50f7bf63e023825a27023c4f16eccce61b94728a419c8832471b8d1d8bb35ed4823c6fde036d3638da2f0a770b6a3f67fe0b174006b5b276cfc3841cf18dd2a0a0efe3ffbb78529a5f2b53bf9b39cd7d73cc470d1fda34fec98708be53af9fbc5dc34974ef28cec44163be502ee326b8257ca268ae7a633c6b033516412be482c434f15e431ad81faaa2ee9d8667cefd449dc4d1238d65496a1933e41c5d8c4a0d4171824f44116173d5aa334ec0b5e25bbf8f4c8256b0404481aac6f6c15c14bf3a4a21a39c515b89fedc42f1e60753b0cf9025f5a0723b72fc7f145433de4c378f27a7a449e9bb73cbd32d0cd5cd773491c78acaab343c74420de1d1dd5a3477f6931a438a071234ec5dd7e690c5102f83c57a85c979d137f5cfcda30cba3ad966060506d711db51d223c2e4e19704914c6f337c3267ed16b8c213acc44173c8ad7e4cbd737ec60e93135904f68fe3e78f8bfd39cdf8c57bb405dad28eaac7b29b73ac4893be741b74fd3ed4d279acddcf3d2bf2f2e51ac0b6fe96c64208cd4918095540770d3aa2c85e31c811028ed0bdb316827af9f837e588bc45e18123d8a19501b994b2604e28998515d94c0a030852c1f02a0580ba13c485410bfbbf076230eb777ff7feec51118a9b544a8f07cca61d8d3618edd903001a25d41860ecd9eff7956f92ea0f362cd081164046b4d7f469ed1d805cddbcd0ea47ccff033ed95bb6bf11dc6f985bc08f287a890cfecf1241c3f0a5388938568468d85131af0c1a13309f6b5a39672a2fe5c5881fddd1126ddb313dc66ef46b18d23cc615cf15ba9d72861e979c214fba7ca910a133e4f4058d1b6cb21545bcbeb63dbd4ee0ab00b9cb067b7779f4d652a42511a0ed65fd853fa4f6036d680294101a1185a2c19fc38f14edf502bed612c75910d5e0a7c82badbac71294b36e873df3321e191aa1c19e035cf16540d72849fdec7b98be6da458a01a95f6fb97f9fc9951e1f30123a49f205a663841947bd5d2a98eb4bc751f15258e1efbc8f937f80f41f84a9a89ce3437b70b1004543ffc0af8bf60b0b42e0e9c2e28d5182e6c5b161d00592982d02bc7ebd127708399589fb4eb40ea3608109942c8c01f3bb4b04ca6d61f2a9e645786bd60adb3958b66827b50c03818e0cf6ac9374df86be4cb3122e64cd7186df0b4172ae8709c240bc79b176dad1d6fd9b17cd9fe9315a2a857641b3dfad46258dd601510023a2c710d9ae39cf257bd08f5f5090420e22083c407b12f3e899f7e475bf0500717473c049b14cac5e4f29d40fa0e97e139ed44965b686adbf90c4c21f557ea42f2dfcb14e0f5fb2ca24fc1444a45601ed6de932ec5261436d27aee847d163d7aee6c038be4617d7fd1ec4941e3376541578a9e63963d3bd270ad05dc55dce56518e8d1421a66dca7d73360e0760688fcb3f0f147e5f6d40eebc446e76dbca41ae3ae1ea1d41d5a6cd783188a44559e555f8a1ea9d7172572f6e7632700c1902e0b0e33b2c6e276a3b29f4853cc26d23356ad10712589c7bce66976874c59babd510a3a618566f44478825b447a9eea3deb3c65270d020737351ac29fcf8712dde052f0a02b45291ded135c3f6d2efe6208d4f42a8e82a679d0eae8afcc600a0f33ef7fa43d52240f14a768e3ee01b5c62d6c3d6b85999e3ffdacf548d113a0e22dd946e40020550eb4612ced0d14cad9b5cb6f94f211df43bad11c40f29306a354111a46ee233c0153858e1dada9f839f77a2bae2a10ad6e9cc5be9de6ff743ee00a8b97a086d0838912c4b811fff873ba031dab987d900408daa6b62a8e084a0166be9454b1254e29a0cfaaff58a602030f12da2a97611ea80e16190da0d8df345f00845eaf7b77603fd695cfde83d6a8884044e1ca1094a759f523b5ada119ffb9658e27a7fdf87ecd09a39386cbd2e0a4d748474ba9d32740efda70939c6489ab8699f25f98dc445e3c01578a82ebc9a882b745e16ac5a1a568b75206b77f4bd86824992cdb0f85487929fea2d73bceefe9e1094f36fc8d293f7c1e4b6571be383d803e9ef40f5cb04bacaf95da580bf537253b9fddbdd81ff8a089036a91c61a8a7aa76ff9a12f5d5d65a161346996b00979e3ed235c7e62503cafcbd7ac9cbaf409e113655cb758c17482218e00236702772560466144379a0f3749a0575dc72e3051d1066e5b7741b0387a592b9e7c31b4d9a296423854e2f0e8ed134af6631a15bdc75363bf508e241595eed81442c3415b6165035e870a4d163918f5adff043ee6ff0c67b25808daea2a1a5a134ed6eb052757e201f1cd868a639b8025bba6c7e1b281d0539ca0b076fe87cb2ed237aa7b7bf0d1a0bf6708138fb17814523d7be85babff978cbe0cf336944d5af1ccba0ab418d59fdb122d39183410a75f8b5d7bb7ac1767b1a0c3beab7db6d3d854e9528d81217f69826a015ce851a2c141bbf60dd0445cf9f1674bde212dd0ca75ab9b6459475c3c43c56bbfbdf73c4246aa4808a0afd52903f73950481c85423080abac11a14692860b0291a323e67d07982d9a282681cc1abc68b8e1455a2a2682e141a8c8193669a1be595e798773f87a8794fe9826bc09daf147f2a5749149cc84410f5e20667443b3a26ff648a60c60d61a9595d33702eb5a38bc18e3c978f4f40b952e90542fc64f7c673d1e649acb5827574110bde59b67f98979d5d1ca443e4e7ce630c7d147ae818f3b0341f3a8aa5d27ef1ebadd66865917e77aca1c69f6261693972341b6cb1cfa25857adb234caa4612a8dab100bc552a1956a15407454def3a0189362a8a1983d2eaff192f213ea64117790abf4306708d424a5d1c332406940c5de1d757f3c2fb3bb4f5f03cf92c6b256d044cfb40b41ca590c036fb44a7e3cf31f5c4749d5340f72e6499402321dc901e9d908721112eac3fb6d897c7767e4f9170a6d7838717fb5e10f93e78da5a5a7b72195503fee461cfa9e0dc3b37c4a32c35030f9fcf0f34f2cacbe388a48ae8fe8e4fea912b1116391ea23d05bcfa8fa4d92d9c8ab3f3a0beae63249a37187a2b34f628005a4ef559e519b07d9993b23c8c07b3c58c77b7439315aa92b20f68fa84e8c21056dd8c1cd5ce7e956fc166cb6a0829c1ef9a3a17a2e6493bf18dec3feaa2b335247a6ceafa501fc031b401492d2db2ed184a52a66263a6c58a002e5aed8030c693d898cb96c2b3b4de5c509a7b8073e7baf9b4b6a16a5f893c1c728194fb5c97c9ba127ee3c229d38aa680f8f0bec4669c16e66e52985bb4336a1b3d54deb93281d1f7e26ae051137a6137445fbd4f9b60f35dd872d12db309d66e4f61a6772f2cb6e255dcc8e19f5e7e27eb3d997ec2a9628e84a6ff7af83a0555943da91660b1f3d413f83bdafb4b92795162a956bac14811c742dd511c4ff43c985a07f1e03e16726c7831eefa7e7bb623a8cfade3791340c96ac64f800dfff61b43a05df6875bb16249cf2129b2435baea60a208066a74bebadac87ba07b2caeeac0b9b549d1e069b0dacc04d6fcd8b501bfa0eaa1c53dcb19c2f08c9e06c3e4abf134a7f3cf10b56b52053a89d6ef82a2b4b93a5bb04ea0b8a2d5d5890e03a2a51fcce1a5489fd54fdbc7077a70102d664e7a605797a6d41fde5871b11ae6b5e4ce1ac53ead956ee27e802716bfbf265a3decccc4ea9fe2725e90007ca3ea303036350d1eec609a1aa15152ec57c77414cb50ac3454297ceca606b422d13563a0fdd9b9fef25e659a182b68db8a4963c45711e4d9e563c59e719a35f2c526d66c62d2bb9c5e050339573f0c85b35d554deaa3e4bb43d59da6e996530cfbe622e8d124828b4dd27a84d446e3acf2994481cc0c98202490400f3437045b93d7ce8f05758e9f8cc430d1aa6437de269810735abaa96eeba4c19549a9610fa6801c6ca249e5eb71ef05b2e225d831753728d7095e49fea709056bf6de2a3b95013e084648e6711c23e0fae6b9a41354d7340e2a1a469b7be238c686e560cd4afd314ff12430d49dd9fbfbbec5bcdb67ee900c536b0200e322f9eca1769ec7f5ba585576a13893afada2966c4869b4258ddf441743ae71c62dbbbeaec7aef942eac937d8e29630d9041f603ff9d6042fb9a618ae75693e47b770011366ef7e652ab261483078c0c12d8c1ebd3d39ddc7731f8e589b5c9c0906694eb8b00ddd412d7083c1bc436fa75a48bdd05e15d86d6b2c702700dc9668c546511929e1277bf7796ad0b90e0944afe0fc6cd90b93cc2524231f8d9949f1b8634c7d36f2c42244df6bd4ac28eb9f0b8da74e298490160a4fa407813020522ab45708fc2e00138502378d8ff3c92a14050b559d3bb1d351da01b86f45f1f6a4d6f08014aa81abfaeae85695d733e5728c3d6c9b25a4e4b53ebaab177294a7b889303065b208f76c8ec367aaee65365791e2cf003d049c4e0721e79cf4d487e2e0d0cc85646e26dafd5ccc3da074f0eb7824b3160a5497e9d6ea62dc42d18f6fe0d6e13ba77cd6547914db0427b084336345d616f39dedb0bdab4461bca398a11e4ef19d4d98c9963a864e1302881a86e9d5d4cb953e5149a27500d2d5aca32c7b38988c84553377d0ff1854b81b3a7a8d835ed9294df8c68deb1e24a90e76c94e190bc77c7b66f0a3d125d14f55f3c5957c2a16a1ecaece49f28b9a3cd608c7905f4ba424927cdd2bc613155feb89c4e99b52aeea3dd22495db8899bb65fa909e8a71d9090ca3cd7a65f86f48b25e16a2735310755802b09013ff29f9108827ecdb4ec3e919759a8934830d42fa2bccf600408a12dea40f21b02ca9e71371209e9d739e888ed90a449bd3969ed1321117a194dcc362d7bec29033c592e96b26a1124a5d4ba7828003f560691e43d1d18901b7e81859037c55701227f52b8f17c6923a19f8b59a1c71255a444e280566b70d9caf0f26250dc49f91c69323756be0f5ad1a9e4c0a995940d5909b3c31a08783f0240757bec901cb09a11b8c2db8e8ba3626e654f22d6cbc4d648b7cab862b8eb55c81636af6ed3276b7a7497bf2bf384b3231af8b1452a483adb3fd095996e3c1bb57fdce1d43f76366aaa839a396052a6deeeb878876a50d89a2cd92193a0001a6e8e7bf1643cdd2c3665772738d03400a682b6064ae40e1f166380e73664db6ab63fee88282a0d54683035f16123f2316acad4981719818629476030e4627497acd8c7465dcf3a82f5ed5157953bcc5e6a94145398c4180c7b16351531057040f15b50d739307b7aaad10d6a568c2199badd649edb396eb591e675c24ad0399fda9fccec32e2eea6c8c5f14fa5e92ce8dd725bf5e6f0958844531d16e85b270b8c3de2852f03326a659503794020b910ac032bd6c5082d75fb0900ba7995564b73099044820ca3bddbb6308cd35fbc4d0c7a3f64bc23e923a8925a67599541325bf466da00c5b51660c3620524690df867aa18a49cd5ab2d04a53298f03c697aa1caab7cd2f490d929ce086173de0132b7d4bbfd716915661432dfe1e894d5cc14786b8ce5a16cc24919ea590687237a846a84a8cf59fcbc39b2014bafc9dd2b4b82f3fc81be4d46063dc8616e05f053ff872734bd952a9db1c879ab68e559c41ccac3ae232b74d482a1c194b2273a65ec2858691e009542fc8116ed359c2ca21cc36af3510970222382f63bdf1c1b0614a857a79ee7570eef8a1540697113ad1c60bf18d570405e643920a719b20313933db4e15b894f6f32fcf33c91dc3042a2a234666bbc521ac9089cd8a76b619c181e934b1856c4e6a4611b89bce0e5ddee317c21bfd1be18a33bc7d67f91e4060fb2f0300e0e93d579671e0c023ff5f41648fbcde6587f303de83f65cb7e21f6085a0a72d76993253bb8abe4a99ae7d42321a5de987fbca9cd5bb81ea8d7097a4f2520fe2e11ce2ff6b2b01f43e0de29c0a475f4156384c7ac877158e775e92c08a6aa1f62eed0aa0842542a62273c83fe10c768f7a2d2fee5d1e9c8b620727e4d6615bed31ef43190021f3b80d5b5101390683734318962318e29eaa2811650b6c36526ee9ef885b6ba33a3c292a207657e0552e369e09ad9e1d2a189fd7816fbce8149f0f0f7e08b9c9cbf83ee913aaf2594f8a5c7ab3167234834300c45a9fad16e0fbc80503026aa3b5d42c06d74eaa5a785a5d0b6e7ccacb164e5e5b788b366ff115ca11e6df112390c3a0fed8ea108d4329e18093708bec3b0e324dda7738834815ebeb1b6b818724bc816d1881b8b52f4a3c3c2ad15e82f3750a32881b0b9faa4dfa5693f7ece177d69da9e73a112fbe06e532ecb7058fbed2b37059dd7386a3f4441be98f7a7242eb9e7872d053316a6b7bcf5780773454dafcb36f23efae63ce4f100ee3ddf69866650c5cf4065603b875b58863b1f2368f725bb0dda677a065bc969bd02ae0d092331cdce8c006a300bfbb6ee309f0890505525bc7c87bfa62e737839cd02d018b66cb959dadf42018554e10ce1a9c227448857c50f7b0041575c9c2eb583287c43a2201ad15e30102e2e7d569ad02a8a5e396a02eb809f56995e16cad5822fa2bfb228532c51e054eeb467e944bb7ebce7f8eeaab968f84434c564ddbff96ad7ad58a0421665d2df3f007f826c4aaa53f76fbe685685fba5fe5bc812d02e1f4f1c4e5a0db6af7c104d66f95d57af993104c27be76bafea235e117c5666c164d119bcde1498507b4339f4321a731882e50fa6bac6d70d1c7cf18e6176314d7ac4cf28f81435898e98d70b80c4c14995f87bffeeb225bb7899b51f16096c3de29768d37c6c197d67bacec75ab2c638522d847b4d90e7b6d1443a85ab202d700f76aaa1b4081fd32bc578f3033deb02ae1d23b534a18ead7ca1badd1d67d729e744626b27a3c106bfa301f502cf92fbceaa5016f7910c8a4e38197ef95039806982c2ce64da1e5feec3eaa0d5bd6b2e8849d495fcc87454eff8de306d6fdc77c95547cab0a1f2e5e6506e86356fa12bbb2e767cddf9bbac070da5df14da49aef8f34bf7623052656fa70aa2d6a545bb405ae9f8d62afc007ab585126c68956517121fcf58baec00035205a53c1f2bf5093aa3ba0f73de1b942167baeb05e12f926eed766cc40a6bdd8c4c85aa7b3bec8deff2e56651789efce94aab32d40da2ae0677a79c6fff7f16c49032d5763ea4e3c68269b494a9fc40f1460740e605fe2f2f8c492c0348aaceabff1b4c6db578b4d0f2512468b53c81763c8332f32f0f56d107a98eaa8dfbd7989f13ff1fcdbdc34f96045c5601eae690076c1edf98e8dedb02bede9654912ba406cc16fae02cc36672e346551d4bf492e086ceb7fd3d1944bb3cb16a3cbc05595d9f93fe9077b69c2819ba70a0329eaded0a6bf45f58eafeda2601bb275a73fa0b7211fe188ee30972ca16ae11eed8a583e07c2c4a4b5ddc8b353917ae615772620381b03605c08e0d364d8744f59099f612e9ea81f19c24f35bd33db27004a38b46e193983315c8c0813828560914fbe3061bfefca09ea2c816c0dfeeae1fa88adcee928b01fa6162cf76df2600b4c454d221df1235808a9b016e21fb3500c9038efffa6dc1c31397ac36d070a406c82e1ba6fc8e6e91b7c88fcee9ead3fd9f91d9b0bc388ea815efe208c2c891f96bf930a2623e42c3a85cc2e0ec998f340a53ae7aa2eb41ef58d0f30c5b5efa7e3fe4f06b63588fc2122b482c83b196ecfd4b41b91f013391b9374bc9fc9cfa9ec48907ff9a0411e8fce4147af650293af04fc9bc202b626f5007c4f4b64cd123e9a193987937811fc6003586348ade27c100abc13e80308f208dbdde0d930c5839038f3065943369b01d9d101128ee586281a803fd40f16e82670da77b715e7e01f3db7d37fbafbd1e6aa880c9accacc795402ed4b37b04589e5bec31543fbfaa938c4c00cc2992a96721d3009f00638c2360a531aeae01b8a073d6323085cb0a26587a6299d0d216baae3729384e3d36b7f360499754753726d9d599af58062d7012a0ade3110e163f0ae518291a669c8b2cf914ead5f94fd9159fad2d1a99beb1a65266e08aedcf383180020724d76f09041d5fd88c5421adc522793e859ea90ca9f72cb5f72e62b0cc441fbab0f7ed96d9a6a6721e98ff43d6e6ee358944b5c6ebcf8a5e15fdddf067a875f9f517537f399ed0dfce8aca74b9e701ed2bf6db5da495484ce5ab48b047ca821887f5655c0cb7eb997ca63e405d5355609cfd998a345cdf34129868134fb8fc81a65a48c5b946d51e911a1688ad257125005bc927780e91c2715cc242ed11dbf4f5f5ef3c0270dbd3d65623179c01db40db214369533721292e6c1d05713cdcae2675f25e0bfe4f2df255f10decc3eb82174e38897141939f912f9938045d192911bad456eb38851051f1b90296f084f4dacf642174bb1186ced234e6fafcd6b101112657a164ff0eef08707bef5fcafc4080167b21c266a186236acfe491b14ebf3477092125dbaecf4ff20870f4865ab5edf1b7d63733d7cd00616f0f07437b4c4837cab4293d51a8a4e7c50fec2959f9c5857ce7af5cb7f422614ef792d37d20a09344131063980048621b1c30f59caf15a057c3035d9ac40b925b26ef836edaa409afdc32e04af03afea2333789eca5bf8976051551ec90feac6003fcd3f657c388ddbc78708c44ff4298254e0518f517a78a0aa6af18e9402c457c0c06a741a745cb6328b7bfb933215ff0c843e0e593d5368a0932d4faaa1f71dc10b4881d7bd304c567efd79fa73e3256c5e9e1ac53c0744e038005c5e46161e50dd1522bfa240fe1d7b31b036cfb32818a55e2320442965cfcba9211ca10754baa87dd3d1c647a24f5fe61be45499f886e33f83757878a2dc748e5e0308ad2cc2e7e73b1f85eaee0297f32e79b8663813793cde8049d6f25d673b43469ea27968acbcd07a4425f1477828c6c2901528a0ae80459d246d331e8f71c2f094135dea67032644e387d707594754e438494cf2d3c1d07e2aaf716f3571b976943d1bd28c4701a0518b9447dc7a589478a9a03aa9f6c3ae7fb542086f156f20d9d4c25169de0a4ee62582dd6be0b204ce55c4f1aa86843d36c306447b5c0bbe30cd666ace6be7333bbbccf922facae1d757e09f18af2b7c38b34da81b1b3624f910809f76845f4e0f398308203037ac130143d6322ed8814778290db1183cb9e5e1d0cac36913d407530e4628d07d4f92c74f40a6d90f2e2caec63b6c6e849a20af09e934db0994e59169adc831520a7ff6c5c60b4bad42e73bb98a9bbfe6be7f306bef756a2d3d5f06c89f40fca4785c5579f72abcce8a42ca7a7898717f0b3714421a02ed9f66bfb50a006dde3e4ed004bca99448cefbb3278500da81f4d426006c4707be2d9ba6b01bec9210645313c3a40306182b2da4dfc0524b0a4ef396976b3c54aae92b6804a1d3b6b153f17017ae648a296fc6301ae2e74f1a07f71246444553d6911f62d006059872061db3fae4fb6b87c7b56e2a6edea6d9f4ea9e98226e1d3e7b68d1990f581cc779b292b656569ba7901ca6f34c360b0f25dd727fcf7423454aa57277a3a11fd3ec5d160a7e3a7d936cb484c881d3a88ec1e128665eb800b1489e8345f61311eed864eea3a9ce2a71a56c944779709608000460f0007bd853dd9cf077bdfa2c7af64e1f1de016477f64b181b1952d11493bf316ed7a0e3a117a0296acb1135d4518773cf0b67a0698cf6cf4e51cdd5705845bb5c29050e41c2fd6f4c718c617e415ef6c7a3903e3ba728f33a7b20cf033dd7c83307caa68d75e157351cc7b67afeed3ba8f935d642f533e871835a4ffdb4a77a1fc11430b3681d11034a4aca93eebb9cf138ee360f91e398040730ea9ecd136cc31294171331a853ab54e73aaffd804e7eeff03b6d5430c2cc75660d6a0b78137055d01ee053f908438f1086f1192bdfd76f3a9c2474fa26becdb8d2ef0ad6e8d6fa3e0b8c6ecb431c5551d08682f88a20da40d11aaad4d1c6c0ef1429079d43c6c4a0803217da0e40c7fbdd009a121d3d2791fcf6844c17c9e9368a0ec520d5bec61532a02bda0be08550ca8243fedd9a5980d26dbc1468879f80b861c5a5d1f0bf1d7723ab1771f6ba870cfea3bd85c81d2227e89fcf76e5d1c8ed4ec9b7dababc466fac2c5afc364b8f5cbeb09f6be9623465dbadf6da79a0fd71c35e680f44b3fd21b14a0e60e19197848fefc87696f794b8cf4d40074ac63af701ed03d7744b8c0c42b0bd0350ff94606269fe2aaf72f6a12a7b3d430f219a4a8409cc8270a1c696e600e2eda86f5b67b57a3b68341cbf33061840915ca88c7009028331b5a878a40877506bcf87f101196f66673e52bd25e0befdd861f51e256839bad011f3280d9706cf21da4358fbb894a2d5248ae402b98949a504d68cab22539788914b3e7f4574f8136e1575d227cf07a23538621533d333fbe4d2b88f7621c0b0227620308f79522ce17fc61658d9a43871dc6a5cb96186137f0022ecab87cbfb70aea113b0a0d45deb4d5b65fb42917f695e51aa5fc37b071df69ce34eb2182e02b08cc952d07c11bffa3be6da784fd007b42eed28f1bd1a4409fc4ec5ea362650c22301f9422e653c627d4c0e262d307a81917b1f128aaeef860eb17fa69ec458d121572f1c2f002d7e8630390ff37a820a15f55cb88a05382df47b6a3e41e6f67748434f2e03fcd5faf74d05a8f8cf598f37b48b08f7b09a462ba963e436f3320a396e237de25e84ce440c51b18a9b3c5a70088715a05c898b44fa2609c9a1c8f09a867b3c9766f5efe17da9bc1bb62f2e347c642c02a3a2f81a9ed6c5216fa1f6ae4fc7881c258a051ecaf93c124a4a882dfe074ffdb641c5a74e7a1e4c8f80f27bc31373f71559abcd8a192a54bf57cce325256cc415616d01eeed4ef826149c6851f3c53414cff0a0b771404941352bc8dab5bba22191faac673c0c72f1fd054d5ec7e8f24259fb2b7df08c7a41a6894c1dc3f752e7a6f58aee66b482950cda09fe1c35ef232aa527bba32eca673f8eaec4a62bdbd9ea6a2812748246835ffd56837825050dfa91617452f87cc8f659ff1d6d7fa5c3c48e3368188a5fb78572d33cba2102228960fcfe1247af6edd99668ac60570666cb63b21940d550ad80f1a9ef41e80312c2568d92dcf77e0e3cd58dd15aa93d17a5e7eec62bbce08d5da2a77ea37b10d6c00dc8e3690ab62d04e6ae8aac6c3a243cf62bdee421d480491b73e84b8d880b0ca978fe7c63156a8ab24769b07569cb35b6bc6331fd1c786ce6cece15244c9844c5683d8f6521626c795dc117a533791448f39d7b45b5ae8e87404633c34d3a54953c23c8453d8659b9e7a431125e7702cf9f517e2346f310cd09a0f63b091191d18ddbbbe31cf2be41c5e29c7a658fbca172dcca0e5126e14674c961f3e0236c56aaad7633f9d4b1d9bdb22b7166331f3f999c3d462fcc2e8e395d914c91a95015ca0d50238316e3fddd16b3f643fa6c80b0a1261f6af8a4ebb6eac83819f4f8bc212502cc9e8105b4b25f7bb9de89125052398235bb4e18354b173124d774ec12775e5b4b57d73c86d5fc8daa5ec48841fd3cce222dc774340110f77db1031886146392596dc237cfd4e0110d10ee800522a8a0bdfbd20a08c3f29633e38f40f3f3ffdeaaec70f0beb661bd4e328ae9152207c357f9f22058ad923b14723f4978cd63a451ae44a926f62ef3aa20bf06b3b358d1f5b7898f6d10256a1ed9e44c86a3ee8b4751fe1e3e6188462aa5d044c7f2e31bcde8b105ecf62b69c8e5860c4d34867d0fb527fa430858322d6e826c3b1b3af3dd3bd9fe96d418ed21c0ac326468df7fd65e6ad431383189a76a19cae91c2718e83334d1f74588c46e31c1a22f5a2231b782bb5122bc0689910957ccfee9e89686d6bc957b418db49d6727dad458ddfa1201d76c9048251d0e9323e01394e7dcb38b50a93f824908e4f3ed8531d8d776752d617a0a28d36edbda8358570d2303c8d9d73336e7a63c47df2fabbbfc9cf64f2098e84c433954f9de1a00c6b4288c1c54741a4748a9354b0c60dd25bf58097979d256d6a011b679730a29a64adcd0a9f5726bfaa23ea27566d2036c85ea29e884d13884d7c592939d5629ad18c24c7cf48820bc447e5766a390e77ddd2ee020887eb1f974b7be8eed4c96db199d14c7a64f6137569f098b7ba11c33d81a8e810a50ac92bd884a79369a42781ceab850ea58372b4c6be15824333ea44782052527c5bc17e9e0d0767d104cebc1a267d4eb2b8300c12346db20eca6577ab1cb245008103dd29d7bc123c8a50aa09ef509cde6eb3c8c53fbdec9a0a065bb1613c2fa04dfc43f17f90befc1f98cba5d449e08a0f70d61b1738d582bf2e0c005f6fefa31432064082b4e4adffba315f5f976b4963b3cc2e0789c56b29245d8da1eb0850533e3c9daa7410e68b99cd565f7986d1a84cd0b2bf90c57cfa6c6335b00ae55fd750679b20546d85ae086554ba78d6a3cb610a91e2cb99cdd248e0a0918882e738220a157a0466c623434144436d864738604c8ab039f78b045083608245a92baf4ea7474f746a7f1fe2f2417aa0f19c0ba86289309a46806090b430e29e892f818bb6ceca2f7c961e3180ab2094ee26e2cd70c6e30786853794825314abb766d00ca327862d12ab5c394e5de005e4970063640f03f02b8fef96f9a3518368a8f9fb829ec7737732eaebeef7e21f31143e81825fe8e0a2061c155581fef61f7e09423a396ef5c9ece4b82f1b202c58abdaef73bdb09e6faef2e2dd994f491e7b79508b5614248e2db9e3b446864e490b4942fdbe9995ebc847711b024e8c733b49e74bec6076b88578c5e8ba589aa56a3bc5f7ec6b560918206cb28a58f541d02f5052fd3ef5a51eadbf42a9c6d3b249c06f1b4778a4b99baecbb6a80f6a665cc213e5851632ec318df0bdb484128ca34e98a64776405c2206e81e968b1c255803c6afdbbd24743bf2065204480cd396842e3089b7345431c878c1047225d4067c15487b2f23dc36d914fd7c8ab1ae00d691bdf397893b934c08feb6dffda40acbcb156fc3928f063898cc21d81c40b51d348298ce510d2ad498dbb89b092d7a951bcc15a07dea6dad725156b16181c18f6c6c833ea0e0f345a5085e260b6ff3466fd6f3a751a331e6c084c825c19bc0d6f917e26db8b73ec32f857792ac59dd9c467ef78f6336b05ad68e8068e204f4508266464b465263f0b306a1fc51b0adb957310c974dc3814db68c18f2abcd43fff13dbe348155902fec058aa47fd44b7ac4af1add5515f39d5cf5651f01eaf76de8f6211147851cc51783851aad3ca2b9eacdfe33e89a8294e9c207ff3b30366bb92c3bea4458e6a1b1210f283617fde001e297e965db8ec859351594bf5cb2f2cef4265b7e25b67e926b9df89fb517fc6b41f18cbd09dbcadad21588a7f2f896326fa247c116403abf311328d936bfce20b851cd59b49676b517a1473a6fdf0efdb32438a2071d01e72867c6862252bce1e0c1a95403b6d09748b65875212be8a9c8043e5eb8de0deadf06fbda4608b846ef39a51ab1d7b4fdb7705ab9f31b6532858a2c354cb5a377269f8d073d4835879e7cbd90cca25d9bd06b38e0c6b3be9c714623eb6babea2b9d956b139d2443ea1b085bb9dbf56a4b3b5b740af130962287a92406212da536e8a4b6b26de5d216de1858b8143dcb2d7a63433f519b7226182de36351ea8a7a2229a71dec9cb40592f545b219d14ffe8cfb168d8f7f2cac18eccfcdea070eabbe991fc1a412039f3a287d30584202c8947a8ce4a8e8fb8141c0a1c166c625a6603343cb90cba83f417b75a9af8b0d7ed39e3a64121ad7455a831ca646c13620150425223ec1aa52851423ab453cde24914611f826dadb3ce7cf90a3ad6c496349b6b38d5b8a798f1f8789210cc456ad5edece886dc2abe90352d4384f389fa14f353c44ee8dab5b7b8cd55586fa189f2a9e4c63cb4f89e6d2d6d5dc9cedab444d07e8ccaf68f5fac5e9ca0c923ab9ab054e4af20e2bcea175728175638c6bbee1862960bd05bf54c48bee1e027458ab8be1a3ff8f03c9b16034f56a10bc95b9c9608b4feae01bda196a7b1c3cf85d986125bcbf10ac2b52d9bd0077116fa7877f840d1a3a877d9fc4ae48f5563d44034020616b56321b58b6429214697db0005a4efe2db878b918942eddad64e2cd689c194134b4ae09f3ad510ad65b7630daadfc70ab9c8d2bdb5037406a8cb6552f2f0e3f49e6be5b6ff849214e4035940ead5f2416bf7bd9a31d7b5f5889a0208aab4c1eb048d21378f4435fa697d1856c22f626f6948954c1f9816def42eb83807e612b73a657bc0078d54b2f44dd1db1ff9360d267280db8231ac372d42127c82ba65e34452580bfd42a07a25b22d362f29bb7bc0531f432db67c08f549b3734820a880b7a51328ad1b99bd9198f4a3cc396522a388c79929ea0e5b58c2337523fc545278178cc6b02570f4d11079020bc0a1eb024b07f4e4e1c3cd53a0e550bd97aeb82fb0d716dec361d9e0e48abeb9c1de67e02777a15afb3a85c1cc97e9e2fd906503d283528b49f62e74ae321e50b0fb543bc1600f80f55710ea672a061d5187f12c65ef40a29050a0e6ec676620491f613f74709086dcc0efe32a3c1e12a84b14ae75926b40c5eedcbf91701542a2ef6f3c5bf81b0c07c63ab43c03008903467d0298684094541dc211ac6909b74988c2b19206206799111f60702598202b6b7fd187e3e576a9df55e7d45eb4cf9606975cd1a6c00799d447432dbd9d8838a4d79b2e937c203b27952afa9111808921aea342f40a96e79379986258458cf83f7dc10f5d0a66cd83d20851cb35f8840324a5d5c4e3acb82d910e6222751dd612c5d4342282abafe7da2811e1ac7e110f070ba7e24f32df9aad56a98b117acfc76d1b762d0929870e012fe875e0c38bdbd21259e33c68222abe7cd49088d5fd94ae8eb46c48495a0e95c5ccf94e8c1bcec065743f03558e98411009f6449a520cff789f8c7aeca0004245d2ed2c019b68a4b1dd69f818fdd27030296fbfe6f260f3e585afd2861b82450b75117782b50b452a1381017d19014cd9090aeef1e5e44e4fb8a0650915b3375872e233e73ba0dd211da50ba4bc00c6f181b4c221dab28332c8422b93853c111f5103f77bff1af30071539f5195ec644bdf07dfa3bd57bb35f80936380779342d72c661b8b93a4188aee36ae1661f0b2a4d7740e90f0b475c5b65ebaa871b2c30f55b80acba38ca77179c7801b8a2015f0d50bcb66cc55a10ed524e29bb93688acc9a94154faa83c21e88bb9b932c1d240183168d3f3081970e15c8c70d147223bfcb81891a00dac3a2ce5c95846d0c7c4fb88036444a3bd95af21c2e4f68fc16da0a7b42f20df725335e88e9152b8a3e9d32f1c1f98e29a38e4067cbdfcfc6dae439ecbf9a118ebd4401c72782a952c157d6248ff29a7c464ac89228e037fd49aa3cf73857bc1926c1879402ab7d5d2988270b1d1be58e5b036792b555a4afb29563364e31d464e2116c1775db6f6156b9eb6284bf92d245371e93ec316a7e3b626086ff3ac0fc35ef87a1b259e452a7aa72ea6a266dcc14eae0853c8c07722e5bceb5d276b92900847e964dd3a5b7e59ba195fd6509cdc2f2ea2a6adb42a91e78786a049beda5143c9a9cbc9e39a8d0f3bf20520a95ca9470cfc3c6e61ea1525775848048459e5309f24db71a42d4b1d9ff3d0c0052011b65b4662a41f0abb7ab04f047845649aac3cccb84879e6fa8b99bdfd08338d543f0dce377850c9d97a1e99efd70f155193da85e56517dd0450c38edd9d5520faba8d46b1e4d8ec990e1cd37b1891613fe53ee6b28a23603dfd89062b1c99109659a877d0902967b4700d46ee5b88af94358687e3720eaf9d03e75d84c7a6f5d95aa61f2a9440c2a421ec074320a17a0d3390d7b916241a001f897eb8e846b95917df5e82b862b65b726d2a0b05cfa044fe114e04b791f13d2d6de35c885747718417106978faab49d4123cd7ab979d658f3ce12312cacf7bd3575515024083116d0d5cb072e6d9eb6387abb17ca938e8fd78adee9f8a79f9067a3376a3413752bb175ce099ef8c7042a2b99e82a46480d26b82e4af08777ed8bdde08b9547c7ec0a573f501477ae265f65e9a45cda879b775380d7d37eff817981822c9e59bbc344fa3c047a985b1842a3a485c0f8d3a97ba3341dece81e29748515a032d3765277302f61cee851171ffaeb821288a1ff83bd79bc104b68eab413593def7e612f3c5dbb9dabfcf2006af19d8b6ccd9b8b62c29bb67352388b25c5a32a26bff5d23ac807056d077ed5d6d03ab44b9c1412b3f0c5d02eeda9ca863971c40cc9e0ebf0fd05d8388175d7da191e3dc47aedb3464226a54467a491cf3bc45c86189bf804d84be6ba11eef5488f7ffc598c6d3df47cdf8cee5d939adcfc261f86a038b37d73bea6c96eaeeb86b40e3274a5da512e30ba155adee0b090f501a75cdb23fcd565d0bd82dc9adae5f5780f1eee6517f43d2859f8429b04120ddef931b236c736a35a1f290f735e98e7b948b2db090f4f342af355f36329a2dfed0ee72850bb68c13e3d16f71e7b5fc096801ef279028317710e1c3def80eabc854301c45b2dfee65f0d96759b0572c9fe7f9989478d53fd2d141188b1d70e52114a52e362c72bc6e2a2c21c218fd26028ade928e60d1e0fdd341312d0bb0d358a1a1e62bf781a80d4a470d4bc1a2ef663c483426b010714924a0695c21d3f89e27261b6bf21efdf85f3ff50e9ac98d935de5743e02e4e72a2663d9af7d06b53e603b50b9eed9e68ce980a1772a96f5aa3ae886ee81d0ab9e7b868b7044633bafb8bb5dcc69bb1082177d2d7ff1d394422412cd0d303b90265fce08cbd7893820a1762e230c0893c220d200a20d878ffbf5c66cce47fe621547658a96feebaa6e634ea6f90410344bfb562cc6a4f61bc00bee429eca178d466d5285551fc98c379811ce5df4075e6f173000abbf6c52a8428705ed490203d1e40a4482e52f08070bfb829935a46d6c2e4ffbc3f348698c3d833ca29344496385fe330b114bbdbde4f569a4b37c022bea538c7aebd054cc34a05ab7a886ce1c7dd4bed2df7e8e75e856eeed3c2f28734e95741b49c9c3ba0a4017013eaa50a21e6aa8f27628f27a42e20f0f8fa127286fc206054e039a6703c2cec95646818de1ac81e6fc1223401d8fd2b3d3ab7a47b73cfd3579a72694de06e7959d509bce4f03f20b2723bb0c7670c4781477aafa559755b0d7b32fbb711f026520168b7e2f525c9b505424028813fc23e750bbb3de42b830187e6f81a3cc6090602744dc89626c83bc9b1064e668d16c2770e0a513393b6a6a63a76c2ebd29d5208adb453bf2dc998bf746c021aacf4c743be2111f127c09cd0b6d50bd77465710f257335dfe200b66d4b003a34cfd381db6212b065d47622b9a3b62722f15eadd26f64ade7440ccca6bcf92de114cdfcfe24e4f44572b6c02c56f938ee3ec3077067302846dd08f3aaa098d6c1554e23855c449e4d6de1045ae5f762987f9995e32b4e51ac58159f115dfbf367445b9f25bdf6713e399ce358d8d3b0572b92b59e4400e35c69129d3fceac4cfe37edc01ef87341a2216ed2dbb84838a01f16efe47887dbf47e178062f4c950bac18db2f917393688783bcbee6a4bdfec452f8250e566905793579af869dd3498cf85ad803cd479adeb08a6e43b02cc7040bf645fcda69caf5647a84ac9a5af67c49be9fc0469691781c378d867ba48fd1361cdc8329097d20088a7dfd26860437190c5cfaf348ae0de32fb8588db5a198a78168efaa05147e22d513d23e03c8de8b9180686aaa38e556639193537ef8b5f3875177d0c52837898cdf01c54093741eb760af7ec4b58c6c762946eaf5df911deb6db722868a0b4fd1016cc7dbf1e86be22077217719aab51555ca619ebb69e7acaf1811fb93975f94c6da5724ea83d4188a58601d46b83b77d214392eed2c8157160e3bf593fad2c9ed146919ee64f4d514f94c76622064f20bf2aaa72625c01465720614183ad074c2eb4d05d4be3bb2374f2466a18866d50ccaa5718f33cd6c537df4857402e55ed3bfb77ac107d63affd5496efc590a2f80d15521c7ca8b23e6c49b6a5e1137abfce8bc892cc333252feaa3138544eec9bd90368b938abde3a4c3fcfa4b9d3631decaa543950289b06a8e92460b3eebd1bf5ecb10da7ff13300fe847ceb29036d3fdcab0c9862d4028406dc37c99702c44a48c6345bf93956eefef2d3d20c25496127ec62897282bd562159eb2ac106f8c8e78ed6e99002988c7e3d19fdfdcb8a56d33f694dc90c0cb83107c1d7bc0cbf8ea633bd072210ac86f5d705fa7a5caa7107f6eab4b0141f3c4b08907cc96e2cdc91780f0de80509c10469e512fedb380649d89d03d6abe3f260248ee3d104c98b2055f6e3adbd252afdf52b4a77aea109489c8a49aa7794fc9f26b960c0e62c7ba3a4538447c03de70927b9f34c7ff8eea7f30dedc4de984869ef9d8c4cee42c39ce7e224c2dfb09b973e10afd657ad456f37404c4ef0e13450a42e3073ba6200c1f4caf8d45c8cda8494eae0249956e505bf84522046d0fbac21938f43c6e17aaac1c22aca9bb50b8acf8238ef7636721555cf93ed86f9d5851272817b9db93b544c8dccfdd941515838a1a27ab19417ba7f8e5067f272bcc1fe5fa2213db416d52f52e672a72d74e58e016471b2f060532e584b153cbc7cc9802d6e9f3c8f6d20a26d4fb2c7387442823c061cc171b582004807f645dd51d6b1a0e4efd4cfebba2fceebad281ee8d0bb1cd49aceb7cb8b87c7a623d14fd31b0fcfbf789cfe32fe09ec2b255dcb1b0425150c9146ad76fb466084993d3b29139fb78895337e0771ab83bbeb4f0325fe5b02090691878a16b0a20920b5a9515d7df3d8c73704a4a4e2650d216e5d113da421f3fd506f310076f0ce7daeeddcbed565bbd3e7abe99461dbb6edc4037cf4b99782c58df046521bc0aea75f8eb2fed0a9020bd282410e665cb5721d6706514a0192480762ffdba5b26bdb94d28ee81a2566a3bf181453ca303e8c40889fae2a26aaac2ac52596fcb16f21996b6abe969055cc0d07770fadbfefc2390f22b1b0a9724b541d707b9d0ab5afff942ce6be8d259cff4019847d7aa1951256c6b643b8f82cdc36d4bdd57da43d04a2d8700a3a849448f8243891c54ba8c364b540838e77d4a4f4e0757b6c83698af834c7d68e09203d4c620234219018e05d58256b2c9118a201301941489a90b4bd3d0b258035379088f71ae64e59f3dfcfa8ca8574df5cd20bb82162bf320d365d92ef59f047ce05330424a7a719cb283f4a8cf6169b29d60628132986d6c9068dd2499c8d3fcb6146daa06bd551d3954bad27ea5b092e1fd39a551e9a6beb436fb14c9c7cf438a5c6ff77d23f60980e454c2830b5688bc332d3de123a2cc38c5b98b6e5fec67085baad0d782d485e72390013e351a19024084ca3d2b8a02da86093d3c77bcece4ccd0cf81ff6e6674487dcc7a384df37f439fb21a1e9c0a5ed22d34af5d7520a32617f6256525420f05e5b6fc66c2566574b4bb87c24dea5efaec7586c740643a6f1955449b993cf132b1a65788daa2189b1e9b22d9ec121c48a9f86ec2c09a6cae8c2fac8cfa1899c289614c18cc329ec0f4e2e5b8c88c99fe367ad954a73170b5a781e99cbd2e7c51402b55bcf7c041402a6c816cf4f67bb2fe76ed3cfc14e07e4fd93fd7577c1052189f8be6550940d3d1ebb1e9c259a8474d88138481be68e9386a30a0a3a832316f739aaef15437099837fe740c7c3fa4b6794b2a233e8af81ed1a31f15397630f71f50356f63a554aa9da5a880ed6d0bc79d220c3e682d31c384081a178b5e04cac07ab43e7bc8f5c8b124768542c309dd819d60d3be512765e18309fd977d182545ceb3a2d5175047bd3aa7796f370ca1d3b8e69c5c01779269ed5102fb49b098f3541a9128ee0c782699afc68f66272d12e2efbf772ae8e4686c16bdf47841d509b541ae68b1f3f16c24b4d4bdc8cac8d0fc5ee3296644a4d44302d2751d851e709fc373360aac75199a0ed9388933bec7e9a5981cb68a35ceaaf268fb5c357d7c08d7d113486cff70d9a3c510e787c4af603d1c3f30d5525867a6850fb590a1f3dc11b7c10892bc44d99ca079522368340e90d7a23afe9193f61964c374d914ca3781829f2014c63e1f3a0ec5f7c9d4b237ebfe7cebfcdb79c7be9b1f10ee75c0f1024f20153faf1d167c6e8dd63e001e161b8c7832ea3be0321827d4d80d0300c17b63493d142d350586cc77928b9fbee6213a448f091aeea32e170336e1df008e6fa072d0e77e47875da3b282f9163e402973c279a2b085ca2e27df78b326e8c04ebc72282610419fc2e3130239cc27929906116712ead1209b38e64bf08c0f0e83919fca484618fb07b55fe2f2b0532663e8c0bb503186283c8175ce36316ca30e2920b284b930596a8972cfefc648d6d7ecc12739efc7a809f395312e263fd8739df9d5b27d01d510eaaf72ddeee489a8e14ecae29ba44e3a0956665aa874022f27f248743fb9092af4571b33022a90c515e5898c49fe47429b14c5edbbe67b5290ebc0f2e627435ac95a913f3a678c8259891235718dc04f83aaa354d0fc6578fd2b22a388f2181c1f85c1ee88d0c8ce08d36f50b0abecc7346f5837261e3e8bc8f45fe3174636e605d969d7715eede55ccfd173604bdecfbbe751fd55ff4cc3aec698996b78a114912e2c45212dca601c04df257562405e95d7367fe93b057de4c974e3600534f324d9d10fb4b15b55ab0d6a0485018e04bbeebdd89326aefe5973621d580f529cdd63d8522a6271dc507737fdae8a1047502b908b1a2b3eb2242bd10b7fc49b8bdf8af7d27898446f7ad7d44fdd837feca7a66130edb71c9ddaebcf3022f7c413485fe2110ef92f70fa17a83481987133db80f75d81bfd698e73ca65e19a9efa8a8f9c45e47dd1a69c10fa00d0944de7f23cc2fa969d8851682a63bb7495bf612fff16a4067f93f68343a5e68ef74536952d918e0d1da09c0774b2a0875ab1ba6739243b1d467b86df876d0ee20d89cc8e43c42a351c6e4204d534243f71033e40022dcc75bb9c181a4d64d0c1388b210d0678fc9a99360ec292c11aaf4cb5701e5d74009c807ee2cd1f6fc459959b739b654dbe0b889ccf466f4ebf2250dd5bb311e3ade300385f08ad928c29313c373140a7ff5c6a5d0449a9a1f851d6d3b734b42ff8134212d239ca356aaeb8772e7851ab61d844816271fad5ca528aee25ea5de5c39a1497b0a68f30e5cd168b25118b898dfa017829fd4f91ec1c10a139547a284dffc48692edb010f67b376d6cc2caebf13f963262878a220cb612baa1b57b2e9a4ffd292ca2a78e38b2901c3ab34e4adf8a88604774aa11ad0b2c790cdf0b203960453d124db1d52f7916dc57a06438ec0195d11f0b29018a4411f77a54519ab6048fd4c47e1fd7bf6b415e747e5f1b4258abec2dc63f135aee500fb5f4774e677e5031ba3689b0e9678d93efda4fab479480cadbb9b0c6bc22af05070fa6ce1402ba67e542f6a2e10718da9b299a3c6f0bddc277d218d70aa7ae03e96cb301c75bb08f11855cce665b0131cb16b721258a2c72077782b9458d986161d84341ec2c7ed2c1fe677b65c9823938ae4e9cdfb0621c54952d8c48719fff901327825d892c313d959524236d129330e147604a37940fb1e4533d57a2f16737dcb9f105d4324b1ddfa0259b26ba419d3a4b286e5799a07ef724058835fc4b241537c6ed3a26aeb120d14559509e8568a5f48f347f5ce840f3150b49648fb68d4016c451568154f267bc3dcca8e161c8f2a48e6313215af2e0d4ddb2d227336e37010e126b91b432b999ddacb54c5883de40b73924dff88e4b5a309a63c40f99c1b974f516a195396d58320b57f42c3ec6125413c3f16353bad864c64467a8ae56af8b2d403b24c94f7bbc6f8347b68738d382321c23b41d4f1cec306f693eb24250097d37985aba24d4a744e83d780b6222cc97a5c30ec09c9d62e92fa4d7514cb1bf0505384a6528b81ce45301ff888d4940959454e84acc6ae7c4eb0d15664d499fd9a8e5ad4aace371f06143be376259e9e4b25b05b6517d66bcb04c181c2e8cc4b8e6c5128d04cc5234251141670644a8b04a09a8abbf2d69408a8f4e9a98c59d8cb832df86f75c266f0a8712f10d8ee35f7d9f00cce9d576f4484d64ebcb4ec8da1885357b74ae07009ba87c577809e346844040e29922c55295b4da96a76921f5751dce79b535b4d09f5d1be0c1e60285fcf564f764d9197de04eb33a3d5aa29f5259fb2f9192665fd3b80b31956a7b755f292f53ec6ed8dece84879a6235e35a1d71dc000d16babf40507c4f41a421345cadc8d9b6ce4d3653486db3b09039715a25bcf1c714dc383cc27ddd3b0174a9c75c4cb62c5723ea9e7f2f281f0e8da286fe5e10fceedbe2488ec76d19fed8dadda1f5fe89e0ebbc2e6a481935a3867b59437a9f1686cec0ada7dbd6fb77de63cedbfb95e3d23cd574f1a85ff8cb76b54d927355164b0264f971e6a4afde6e80f9ea8a0bbcb076490b9923fb668e9ad340396039d22c2e0e014a3951e5da926a9da7b11a5206d494024a2ef26b5d5054594d3aa921a9a4754cc6691f67d27bdb6ebaf4ffd3f1801476857ffe00087fea4e0067aff24c500884d86f0805b8a5d886e00ee8edc485c4c0aed9037d19b41d12f59ba845dd2047822cdff16113e95b936e8410423621646f2977d10687069306d9e7251091663bf76d3b562f075ece6ebf7d1a4987f3ddc2c2773bc7cef9f9f6e9d610b9c339b0b34129441e91cc6216b33a2b24347218524b3790f94ed9ec74be7384b4699ea7b20fb6d1aad4913952488c997248f70f66216d1055cc4f69e44548443e1e3b270e62ccfc6d16d8796e25e7bb9265db74e55991268948d39fd2c7ce738d7939f4b9f95282ec83af3659c7b4dcecc9361dce1b69530c3247cecff0a46f5eb25a1ee9e69e5ca8bb9bbd0ea78e3969879386e6615b2687be9cb1cd63ca81b9e890a314beec468e1b2d2c5fc69dabfb9f365b7f09d2e9e781cf62d7af8f4aec2d2206bea838bce8109b365c970d3dd86bbe6853341169b55829ca1a6787d9fcb1b3ce39e39c73ce39e77589cdc7229628626fecb1d88ffd459bb0e340a2f4fbb05859b26f4507dfbc645417862ce9a65fa4e1cb8b224db491c618e3d4510209cce5c95476b2ded036fb0b1b7f391be70465bab33c63e50566ec0d7e77eec59db11c517ee32a5efb8c48837dc417f13fbe492896f8de516873272febf65115d5af5e92f53c0fd4c1357420a905c78c8de0c3251f071169d8a64d9785d8ebca48165299479b22d0e1159e44ea4af0dd783e3fd2448e60f8a7b0ecc2b22c75a28aeb37e6d22825757820b4fcd291f2515e4693644abf6f5e52cac95a755c140c3bbc6ae429e535b14b8c6118866118867d769e0d6d310cc33029312c1452da1d8619e96d4229a20b2b7b431bc319d7252b4b47467518fbf25f8b8818e1baaeebba30ec4ac18561187661d7f5ebbaaeebbaae5fd7755d17865d2950fdd8588412486c5f6ed367ec428f8d457461c7b6c7316e9647964f58b66cf92c33e77ccff90bbcb187c698f9ab08bd02e633f33211981169626c96a16bca9b1f20202020202020202020202020202020202020202020202020202020202020a01f2a2733b7acc0c52d5e47be5884123a3616a104c9c8572412b92c3a9416cdc766c54ca4e1c21231bc7e88a52be5028187c34f50ab4322160505bc13c74e1e36683402af64d91e28b056aa21f6fb7e3c55121fd62a14026fab2cce0f76747282d8ae036fd7d855165a3eac2376dbf887cd584b04b57c28d54182aa6707c364accc86fa60b4d666e52f67e351260bca2ae4afd69186790a21864388214f23c4929c2c202b97c0801e2cf6c9d2466feecc15c4d30c047ea7100ff89d3170c0efb4810e3d7a5f6a219e6ac8f89d3e34e0770691c3ef24010e3f39423c714d8c5fc9842b9f00e35752e1457f338827ceb9e157e6e04a1fd4f02b81b08016bd2f43104fbc52c0af2c010dbf7205f6570ae1a2435188a74625e0b79520e0b7b570805fe9438b9b1c114f8dc3e2b791a0f9ed23ccf0db4c98f9ed233c91a67bbf5d104fad3afd3611a6df9e810cbf9d8315ed29114f1d6480df06a200bf1d0202fc7609647a7b9f9310e555fc721203f8e528c4fcb2121b4373e12f1729fd321201f8e52304f0cb3bb07db6413cc91e5992309189b0ec02187e1905b6cf2410a2bdc040d4dfa88405e269dec8926cf98d3e2ebf31091b93f0d287114f7307c78b48939de537f21cc0c4af0cb6636ca3fcde8448b3fd14f1346122cdbce65343530880973e0074c0cc8cb62303bcb401e0fd72c001bc2f56bb89015eca00f07e306ab49b971c79a2947e5f0d392d2bbf00f0be48daa300f0521ac0fb595ec9bb00ef8ba4a90480972200bcdf01c04ba2292bdf0285234f59100bf0521af07e33e00459f919f0bec84c75022f3581f79341b502bc2ff21d244f198e2cc91b00bcb400e0fd08d041321d64658652015e3a805496ca50563e06f0be486c254b02002f0d0078bf1278492b2b1ff65018c04b3f00802964eb469eb09ab9234f17eb05f0be80e025d51bf9dfbc8097a200efe732775ac0fb222f1da9f9c8d3c502de17d209f0923e13e0fd4893ae80977e2ae0055ed2bd34184efae68f939d26ac543d4141276db94fbbc1410e8e962a5224c6b4b41168351a2a282727c6f0bf1e28b0562ad943f688314c533dd0c9c1f1f189311caa6db92e889e80dad01a8a6a9ee6f154497c58ab4e75ca6bcb6d383fd8d1c959b224c67086ca5a90dd643659cd6a15636adb6d9585960f4b8890189333849e1d1db6611badb6c5aae6830d81a5301b243832d612412d9f1731a62d377590a0ead9b9301626c6b0e61363a41685ad46069b0f385ab0528995f2d715be3ebfed49f369417962112b7f4f36763031b0d07658855c1169eee423f2f33226d8d30a5fdf87351f796de712c0f2a36a43f50459d9d20045c8c4981b7cdcad7857b607b0311e81840c36cec4951b7cfc3b3707308d249254418912254a942851a2448912254992244992a4d56ab55aad56abd56ab59224499224896a09cb7e9da47d4de18b1dea70197965a4ecb01fc3c4f69b1b08b26dec3c17fe93ff0cc089cad20c59c5ec2a6316add3436aef344f873daf4da4bb08b780d02e7526ed6c74d8d3f6fcd47ed9ce1ae9a68137a646afebfa36856f469afe507a6467ae5949d8ec6de4929e8cebddabbeae734b7290943b263ac526c766e75ec413496583469f46bf2b62e8c9647624c0b670111710b31f20b2e8693b88cdde403ae4ce45ac7fec766f7bb73d34059b1cef261f7b0f614198ef491f64b57bda434bf8587a792c08291bda8305807036eb36eb360b25259189f3d5953d36b226069816145944861e78c30e04410a93a2595c8d0e0686d29cdc7de7b5ca331934e9b3f0e4f75301658f3005a42860ec92077660a3e82fdd38cf7b87be7ddbb685b69b6ca16d236ddbf6996ddbb66ddbb62d852763ebb66d33d9de755e0782db613c199b075efa1a5d341776b2ce73f5da2a5ba99d7f64ab196b3a26ab6b544d10f55e8c98183aac4a9e9638393a58952b882ab25f550291a90e7fc498ec5a95377da47d5a6033243e7afcb0a454451a6935a949ad475a4d96b26bd7ce9185ec6115d9bb6ba1e730b1a1b7775bd87867b09e67e2fdf34c4ce24ae5dd457b6fd126ee1e0beb7d86e87d26d274f73ccff33ccff34c0e7a323c13cff3be66b52933f9fd6e62525f3c189f778e3bfea409b843777777777777bb783574a8d6e830bb11a8223600361a81c2b15c4cc7b53979f5d5ef7b326477af0061cdda47643a998e6b90d72958e3c583c1e00eb617b8830d1fd94e4882eb4804e8fa488759b380903d93474f549bb8937ef4f4317bd8ec5289985d2e8934dd4fac924bd82ce8875b48b2ecca22947aa7bfa1d3ec5ce4032fad81a24fef3d7a36dc30808ec9457e6cf68e3f1d663182ac32c05623ab549ac65ddb34cee5da8d35755c25a5a4f784f62f2f594b09c6a3902e5e8c094e9664954ad5a8ef239164a358c5aa1893a134909be95628ac16188e21c866bf2bac0c55c9a9b5a669b44ddba6811f7d18ce155df6151e8c14968b749831e1e3567458f6516554ad1163b2cf4b070f9fad408cc94e81a8229b2479c2d1a5ecabdbac66b5902ec99e41b659f16048906fd847379d611691b18d59d068d3bc0fab4bd925dd68b338f0f691f651f1606035f6d4611fd54883acd2d2d0aed366224d6411ed9d414a95ece96f26d2c4f9eba35f991394149595cbcf1059442b59c89e2e6557a9b14b2835f6498d3daab14b9f66c293a1b5903d26dae56fe8ca9eec9d77a9e2c108813bd89a8037f4eeda499e0ced1eb8836db33acc6eb3544b7a56805050033bcd6bd376292b76c4277fe44648454e9c0a651e928e8a8dca2ea5ec9ee2c9c8d1c232cc0b1cddbc24d53cedd323a71ba315c5934141ef26c5294e655fa9c177b14b140f9b0eb38b3c1858684646660f7f52d68379e0bbcde2538e71defd321176e4c9a0ef8b520c8471445e0c1a92def785957df04d277b7a7ae8bbdf7e07b28d07863c180dee38c755bea9ece38a42f61a8d8a34cda34df3594dd7a24f356429e369118941453acb62fcccca0bbc7949223126bbacb2a7031ff6ab599d44f69b302112c9470a5e1c305b373d6dd3a53238b0bbfdcf83b1bdfb3738906f28c83e9a6dd8867df00d479b522e52439e66bad467ad228ba551d411ebc1f0dee00eb6813ef4f6fab4862a0f6c3dd08697eaea8a18d3e7ea56af0cb65b78a9cb4400e1548a735a7478877b6c866a138fae01801783be8fddce5a6b96f64bd29a7543aedaa83bd4adab57143e4944f6d0ecd4bbe1c6d79d7a373478830377e8303b0f6c37d04687d929b82244f61a6dda9eddc60e6d629556b9ad524e82cdb808a7e4694597fa2d28cf478454e44652363bab64475b48ac8ac136ab6c76ced46d97757e546330df75878c3cf5912e65cfb2ec5166e761b367593fbb8ed947b26cf36048f0eb307b36b9e641670b49c84216545998c7cedce7f37b65e5af257cdc4f5cc23cecc4d1a5f9e8d9401faf06d2a1965d5cf8aeccb143fac4374648453e2252a74ddae7250e220d0ba40d228bfec12ae62715d2411ad000d829a91369e4e739e97939f0431e0c3e66654ee7c160ac5e56460c0363e85082b3e2c0608c2799134bf33ada8e9d3db64f9ca0c177a3df29b07162df45372895f005c9549b80f429d4a63b772c76ecb1775a67489bb64fee8848d3e530f1c06ef372e05ffee671ab917450076592d5e2e6962c1612bedb4196f553a84a963cd225991387083d479e4260ec527fcaef9324f98751aebe2b59ac0ea7910e6faf268f36dd5ed9396b224d9cdf41d2f3b3c4ceaf0cf1dd5eb591364556c78ead23bb5be7309288e49143e4100f468ad9e7581ee970f2b0f33d7974382511be1bf23c7050ebc8996a1d3b2f5173499b78449adfa171441ad12f98d0af8bbdd127c5dee8e3d91b7df8478cb93eaa7c835a412c5d07408a4d0acf5ebeb97c336fec25c1c74873f23b7ae85c87e443e94cf0b11de9f82aca43f512819781a05c542fdfe8b8ece51b14906f2a8c3da939306047ef4af0896e6e7e449a6863446c45355a89230829d1a7e8f3ece520fafce8f3de30390f6c5962c058efdeb7cb2133ce0fb1d7b13abfd3a7843e839dd20b9bb93058eeb38a3e62cf8679c4e280b1d37ed5c4f2fc1163e84dec57434121fb55af8867bfdae574f6ab9cecc1d9af6e3e9bfdaac6a3d9afd24e51fbd56c4966bf8aad30fbd54bc865bf3ad926c650feaac41163e85df40b693f1026c6d86f461bc1d93331a6ef7177da196c9fb4e27ab67f91a889ed15cc9333814d15057c20052b7477cbfed552063723e9fee925cdc30a31c207203616c1051c7bb9860b26b0a757c6f28d3e947edf25a29a9da7e720a2e51c3b670f2c570d8e0ee7b18a810eb9bbfbe793d939881a0e32190576de05b64619b98625b8c314b5708d9de79a89551caa77811113913ae46139a2b415b79db713978f2f3ee5dad97b40a441d6c051ebd5a04307980694a3c480b1dfc935d0030d271cf74b14bd1b46178dae11184d98bfbb6851fd4c2af659efb91cdb6f285afae8e97002fea0810d2cd1832624c90217945882869303d1030d2720102a4701632cdd1098633bf7ecde10298f57a91bf8212e41438d091a52c0204e7e729a7127f5075e828618cc9f9cd48ec10512b1fc13302261f95d14be1fe5e4e4285496221f8893480202e5409ca0801f89a412b59653530382effbbc1355cf4e18d22dd42427bbc971efb87b0f4929bb9b8cb6d95d94bbae77dba5b7711cc7f137372ab9300cc330aca194524a3b4fe3b6ced3b84ddb36708637372ab9300c432fecc29a15ba9da0a4a86c2b5425a543f14eb66b5de7711cc771dcc7715c88bb0917627d4552c5e63ed31cc7711cc7719cc7791cc771f7bcaebb07ced0ce71208d4e03eff61a1bdbc993658f2a3b1786611886dae4c9de25af7979c97b31e6e5bdc19d07a694fe86346ac86b7a1a774e932d9b5d024122f14ebe8f372ab950158661584329a59452ef74f334dad18e76b4d33aaee3baaeebbaaeebbaeea3cea47becae7b8b3669ef58d8ee33c4ce7bd7755dd7755dd78dbaaeeb465f379a31fa3aca514ab91a333655b8cd6b5e729bdb5cc94dd620b79d1ed505cea0b3060db90541394ef328a53554a394721e37eabe6da36ee36495a146a9f68d621a9555da300cc330d434da76463bb92028a534729482747274e555466560ab3368d4988004b8f093271baa9e9d305c7dabaf46b3e9d128297ba4dc3cd9731a33335cdea5c95fee98c7813bf8d469f25b953684a19e77f123afa8a4a09cf0755d35dac43f4e6326d26ce7b73861144e61155e61d299f9a41595149413be34beaeeb0a75e7bcd8813bd886c01b3af7eb244fc6758f7ff00d4ba68603e905ceede607a5e08e69b9e730b1dca587691bb66ddbb66ddbb66ddbb66d9eb661deb66d9a94524a29a594524a29a5e46a36907b74363356abd56a85715bcd86cd7461188621a7ba5088e342dc6886c96ab55af5b009713fc4181fa28a9a942ce1749885ff28f7eb02b9c6a43b77aeab6cc33d5633624cd6a848b3358ecdde3e449a08a46be28c950f8ad604b16d1bb73d524d03e7c6513a3b906db8c7d6c366dbb619abd56a45b7aedbb6add6e8401a9da7d16ea3dda6d1adce6b9817e3f6a273d3c01a1c48035c11e2cb3e83460dca6d94dbe8acb267fea4512d43765a79601be3f6aaa12adc9909373072c602a3daebb1eb0c184975ebc00dd321471de4a9e38c2acb4515ff6016f293c8e54987d8439af964748840a4895492624cdf1eec75a5e64f768ed296c79753fa42e9cb895bb2949d656cd5a05cce72fe0913a41595a7a09c8cce976993e8fc9df92d5c2ca04dddf92fdac49d8f830e119841a34f3fdf469b24b7278329a52d3a6cc9d30bcc1890a71740b691a5ec20a5e0173bb4c9509c05c5598cf841c7926c34e28794e566e7525f2e2bfd6bfdac435cab5857b97bb57ba87a37a9a17fdf475584524f9e5251ae5253be52554eaa2b3751493f514dbceb89b3d47e4b651b79e21c975f92ad957fba947d9e73e49f9d5dc04bca5a3216f05296fa72b627b00f7cf42ebf12088a5f29846dc9de419c4b658b82e52d9f9e0c1467b944719673ddb9d468a31703c559eea25dbe83adcbdb4823b12c77d12fdcd575e51f161d737e872ca8a5a2a82e9576e8522fdb526ba067a9fcc3411d663f51794987d94dd44675989d947da5764ded1e1d664fa95dfba4f64dffa8fdd536a98dd3416ae77498bdab2d242b7b9d3be93e1979924c88a59cef09940a1f90bda41293071256d2488cf1be22c4775dbb077a6c790907998072d5619425eeb2ea3091abd8a1279300a5910e2febf0f0599377ce0f7b09c9c9c9b13e54602f15975170234f36ba74bda33fab252b56508f961c53ae508d0eaf73b52df3449a0db4410379e06bee841a46ce75aeb695d2a672908aa170912d2c274c90565452504e46a2cf24e475dca6d1eed9cf7adad80b858b6c61396182b4a292827232127d2621afe3368d9e9b1b43515f4e6b6b75887fabdab9bab55496cbda72976a3bae91b4a6a67d74e9ba6c1b79faaff78dd74d2a670e0c64efe43929a794b273a92f383ff66220ee6122f672a93930c079325c3ebfb97c622e9fc7ce4186d828432f3d7db4899ea8d18576885b86b263974be520955b2a0b611d1ec23b2b2a9589545675781da57291caab0e8d1cf141c2adca3f1cc44b1a559b4797aed30c641c127cf2b46dda14d43f36fa57d8dd35cd28cd302dcb349a615cc33d1827e79a81c569134e9b2207e19c4813635070d2b6b928cd28cd302dcb349a6112c5d22a478ca0c7087a5cccf10273ccebaadf94734e3b9961a05ac2d7e798861e9bc07a124844f88030e38319e2694696ae7b30a4e59a03acd9c59dd83fb0d7af0ccd1eaffd80b22a6c34820339a373b4a3b4478733dde3c923cae38947964798c79647138a776a06c13760a72496d136d5177e4a7113367fccd40432716690201d86e0637b49244ba44d26aceaae5f5e5d3662afcb2c965f3ec23e7c534de0a9892a3a586f1331511946f948a451f9757e42a449f9bc2e55768d76f8db070878335114bc5939e9a4fac229c5afb790ee4bdb69134ff73411ae57ccb469f454878392d3a2c33b23f073b6cc93664b0c42cdf9697ae1f3286d026fe2f32d87998fa14ddfe765b6cff9162edad47d7e016d3af9fc8b36a17c1e87369df8bc0e116813cce767b4c9e5f334fa94e2f336daf4cf3922fdf264ccd19c937413866f798ada2959ba6acb592acc4f5496a3d4133fa928efeac9b9ba55937bde43f5bb5643cfaa76ac663751b183d5c45fa8e045f5055a6b8ada40ba74ed204bd749a3cbbaa0f810296e22c57790d4e70aaad8b59afd856ae2a1aa79f5fbb69dab26b48e7e52bb1315e5b5d2b3d41387a92c4f51654b96662ee97ba9bfa89a388afa72978ae2b58ade525d0e535bfe4295ad0eafa7a8f2a74bd768469e76e8d2fc0be03c08de6fbe8297343faad54687f32fb54687f3282a8d0ee75dea8c0ee75b6a043a9c67a93a74387fa2e2d0e13c4a7db100172d3a9c37a9332b6462083b9c9f9f266ad792a7af4b5384fdf4c81dc9239aa33947141b8db039a240268ab4a24293f2eb9c026e01ab209a448c0396010f612fd1593447738e28361a617344335265191dfbe82b9565f4792a259191dca1973c9166f4ebf28878ea9494570feca5239990238f808384bd421f853e1a9d5e9d4abd215aeddccd444d1e13880964ae60962004346574facbcb41c7e5c1181dc6e8210612fae8ecc9a03404f24d871a98832dddc1d3e1f5d0f4e171c4d19ac3c486aed58f7e343aa58f1e0cfad568bbd5e16d2d8c764c9b835b565bc9f9ee44458bcd1ae66953f464300579b690b2221b79b6d0c372d1640a363636da1e2c075aa263a24f1f782c8c8d46f850c472b453190de9810d7462c042e8c86162b5e7c080ddbe731f1d9d7a358c1e4760d799e0e391f78f7aa79f07c2d8ae04dfe8d8552a5b1ea6d52e79469f3146a3518c315ab7e839edf6edc1deebf398444d709e562aaa5711db271ed8ebddba6438008fe2116656041654966f18bcdf08bc242902ef2f0cf67216822fdadbad6e5d48108934a2f30d127bf1139809f6fa11ecc537372ca483d88b81881e451507cc44b18d34da0dd29a749dea54a73aa56935a4554fab9d5639ad6e5ad5b44ab59a6915d3eaa569383418b6dc28f418e3116c7c4402c3b22ccb6488a7184bf122cf06eea43b39e122ab4369814171f7d5ce49eeac68c91f6e5483d86b749b087b35900eaf4ee1e0bbb2d54992449aefd765ebd2ebd3479f48a4201766f6b0994144162b58c575935fdeafce04826eb524d83a075236b4d1081f822c173b46d109ec03df243291e81d799a28894a7d2a52af76266a14234d94275ed2a5eb3c688fcf87bd52f6dae11f61eb3ea49ecb374068904f086988bd5a3cf6ba8aca2fd145957f5c973b455ad792f0e7484847d8c84e4f18fea4d6654520df88e013fdcad86e896aff80e0bb9dea5403699c4813faf52622d2c85f9f1c981e882799fa214e14b3904358c5759d16e49cc05e12670422117871c8f04d0ed84598283b9f135517da4976a34506c61ecb227ac622fafce81c27aa3f221f1929ec4814ade82eda02f104c3af97d4a8b40b98aaa39e54684604000000008315000038100c85844291882ccf1359f91400107f9e4c6850198ac32889911433c0184408010000000000000088540d00c82c5419a6ce9910602a482a75aeacb52a91fb4d47a4d79b49ef9d3a9c6feb83864a76b72e905c996fedf6a1bb856015dc3917591a466514876edd504363f5bba96a6cfda1d939dc5e6200af07992cfb7eeb1966ea8089c6a6606a1930426cdbff27b6272dd44e53eae83372574e1caabb2a42459874c032ed089324ab20307204155f403872b1c7d30daea5220a1d54d5fd5bb5a707602b11ae0c1162b63417836b514054dc903e83f81f486a482f6ad026b8111162bb9f76e3e7ccab014096e7f47af6fc940ad4210436b5d518694145bace06cd277a081e46899d2e98d4fbdac767cf674791232720a5af0c885aff118b0e5b5a147da6f7074a464b8a6a95de3380c73cc79fe8cd3faaab8c82936a4fcaaab3fbaeb14bdded2abfbaaf7475bff013c93c040ad2f8cf93351449404a67adc031c55b69e6ff61b6563a5b4b4fed0a349a4865af976ec1d6acf5854f6e6a1c6057f559ef5ee6b123c7e20363919b0e65516077ea8089307293b1e84844378052f5ca6f8de200a1661e61860543104539ff8e307ef415b187cf01ba4ac1ea11006ee71e983c0711be0ccb89ccec956605e0501c132e9a90e6c4883410123e12ea60aca96a9b58ac2ecd060f89d99f59321d9923849421d0144df507b9838ce644fa13180c5c99f91aee09fa6bebd99f8fa66de19f1940c864f4188eccce0796e6d7b1449e70a63ffe9f3b8e8a73763027f15c6f8f96f3ef40566b6f3eed4ed94b63e8ea8e47d8dddde5bbd18a131810c88486b6f11898c563500d51a18e908f40da5dd350f5851f1dae7b69d0fcb161f3e320f37f9124072504a05b293a9141d1414ec0c88655bc72f79b21b1539521329f4daf1c2a48da0100640ae701953859d43568905b6bcf79e770d5c0f7450d91b4d90867d6c4a378019a8ec1afa277abbdb04d3faadeb3f07c361502104dccbfbfd01e0210ab488b0916a756a5bcfedeac720c23a1fb4fb424e521bc0fb7c555f03ba05cc96ab1f23ee732539c926353755dc86ea7349f36771e90dbe6c02ece76cdb3969db7d47501ac8f9f564e08b727728937004d6207d8ff0a96f52842785aada3e17baf4d8a0fa3c9e878dc031c0cc1d27afc7d01ee6256ba5760f703b11fc7f373348840d6966bf7a24d7b97a13d153eedab402e5acb45885b1d46a5ea648ab09581e737d119812e2a131d15ee3bca99438d44ff7a1f7fcf1c59776a001f11f03a134137f56be86381093dc96495a98069d5fb35bf23bc66da89023710eeb7173b4c838bc1b70dd30b9be4d6f30f47ae48f1f38ab26561ed1ebcb5f81b691ec3f67e1767b620beef9e941463bf389b5c21de17dfc4d57146042c63e1e286597807c3d94a2ab4873135ce111a459dd5c748a916a24ee34b2eec1d5c1f63ec6de303c303210fa50b4ffdb9d9994f524c6ab8f300c260ba8d02528338bc204c1e229e845aea88894cbda6c4edadf95d81c15c2394c5099af7b5ac38814fa959d7d5f1ed6016723778f82e18dc91f014764b76243c0b93ee4fcd6c1c7823fdf3733de51d79d203169deb2d5200d804cccf6440939cb10c201f0ffa2f823ed5dfafed9aab38f8579552d84e5d5b6b1e56c26fe7a2d1db1cf906444585a9715d9cb00058c65fa93fc17cced6c324162a90e2627e3503d189ff0f9672fdc023563da3b5f7dc9e8b855362a581c64752f67131a609eb0777a3296480469f1e4d631800fce0201cea7fcba64270254b1a52d430b0f43cc557fa1fa3909f0dd181927ae88e5799684f427c0a1708a981ba3a9c4313661753aad2c544f4e5dab5ddabff76227dc73e24280ad93e67899a5bb8f6c6622d8c415d2904341088ea3963e72db6d8c17ce9b0f02743f12843761b7e21672647713c5c47408e1cfbffa361d8cdbe0db15443b7d14009aa28cf9b96cc3f3ca8f2365cf26334f1647ba000176c6bcbe192a5e196171ee7931fdc3e7711656c8e85f3664c967701306553bb930fc80f1801469f7d772ada038eee8ff3e5bf6c38d969043b9cd5c2310758f54450acc47ff9548a39d0d49443c12888b83b31a3409840fbd82a1bc54bc74da231a8dfa0925fd7c53a40dde6112c2358b58b074003677c2da2a0a5677224f27ee95718bc32386842776229314ee0b515912aa7300aa7a613ad23f0a17eb3f17e89a6ee7f8e41662564b06920a2fb645ca6d913155543581f18822cd83f8dbddc0866167960059f83f3d58901bc9b60fb4471f874443e823b3b6a596fdacabfff8a85c83ec563bb114e9536a220c8f9260167bfe79f93b4752b7208f8c9b3304807286058823377bd5b26903d468293e58479209f304aa7858ea0221150c3bb8386170395fea9fb9a8aadaac13ce1273083f034be5007f1311fd0f8908d8e9731976700fa4085a1ed11846b8872a9669f826310ac4649ad9228cfd6586f8d1ea2a9cd68fdaf8d5cdae5bff123ffe4eb4074d964481e5c9f833ae37ec9373dbd8e8e3243b81754680e7d1da0ea80f73d6e6ebb8405db8d70e73bae97788222df6b71f140415347d6743001c0038545cb6698162a099022010e8187759ebca728c40f47b8c3d131b75557f0fcedb32bb0898456ffcd24148a1de41aa7e8488a22b7a7d4a0c9ca46d39a41c6800cf60290f4d1ed15a4cc3678f4c1d3edf12c45dd82a8499959cb184b22f6a777c9a5e2ceb716bf413a1751557cd60bbddb571f948ccc9a07a7c428d0749910033af113b398575904a0090c91efd841340799bba586b3fef158561696e55aeac6b51707bf8bcf1eb70f4aa0494b25b2b26c3bab4cfd463305ca32a3c3511c2e48d2a4bb061f7380276f4334501a1d62ae1fd040911535b4f0b116809d0399c48c70d0db993e770916c2a24017f84874b8f93539f8eb2f51067627d3936699dd124a92f1d6fd6979bfbbaedb4e42920fcd13fb98cdb1d89aed6b25c926db51125b45c72dc54a284933326ba2ed2ec5d11ac1631a7874cb9411278237578b66191d05229ae532a4ea08c4e9e76ade452312f4c009d66924c95a17c5ad8108e75ca9085eec56fef439eb0ad44b91cdbdf7a3d8b1412619cd2e13f18910c00bef430bd221ebd6ab29c8b5da3ceef1856a09350997f5857a84ed70c9d3d7563e9a6bf127a91c21785708d3bf3505e2e4748cb50e95b4e6aaa9a671e5bb8b380a5b97a97d0938424ac619a68d9f80f57c9e85166a7cf990d1921715c538430a85c57039770c54c69e33b37fb942863c08527f36510e5a85e121cab20cf12214c46a3be37e95825827d25d9dd1c1200eb4682c9309e52614344e520a14fd054f1f89b95a32e2699f4581f154bab73f2a7cc08ba0d91df11cd3d142559f7a60f230d9f6f2dc6aee1c0216676a75bfe3292d2dd98df18c0623e3803951e70409332c96757a44a4181f21b42acc44e87ff1ce66e8ebbf24ba5dc930268345b97c9ead3656d00a4e928703cd113b21239df957755a019d411cedf61558b98e4600bf578bc568f2adb58d7852dcf0f8d31976db38503b9fb80a53863668575c6aa205864ea56b09e840a41107026f4bab9c60a062e55c39f4fa810770dd8b946e51512b71320b2d9717766a3c2536ef46f83dab9c4a6e8056dde884c3f5b2dbbfeb8ffa4925edccf8008a8755bd43dee05c56b6bf8ef86c06720691304aba776a3e76cf76181ba99fc5e2d4bdbf76867a5fe37d57557d19e0e000905378c0556bb5aa7c1bf85b558365165aeaece6ad832621b0891007d8f7f9416411161c864148f732a12e960141780f83f8dc3842a4f30b8580ce324364c99543c8fd044434199a44a81e96227af99e45d0fe1c23025ed9f534e2d21047b42c8896aa4902892687e8f472380e8b573c5c944a5b5fefe3e4ecdd3cef5a49f268dc5d6af76d967a17826d10c587b9ae1bb3a7eb6e5c155da5957b381e14d8aef5a1814197c7734d24fc58d7d77240fddbc3876452144a3438471525e0f880ab5c6ec51f2d0d0f2e58fc0b11ef3ae441b1791d4401c86dacd77f9225627a74db6f42e30151ef1e3f4cef89d75617468762dc65a1d6154ef899b1841e9fd92ff75c013811383dc754129fdae787340b9d9fc2b681fd1f2fcd3903a7556de596a608433d58837fcf76dc9b0bc3ad1aef81bbf6051230194566c10f8ecb256c094767cfef27b61533833a11862be8242758e4960eca6053daff10833fbfef1b2a157c0ce6f491bee9dc370f8be98ee9ab7c90c63fa8cd36c6ee38d8bf36be95097084f9361421da7a9368c56eefae01d1c84745e757521242ac32153e5240bde95be7a05b786db83f47e86e6e5edecfe5a189359c501643d93899c28a899f82b11e41cc0703fbe1dda802e21e77929869f1e61860599e6264e0d25301898e5fa3b3e8c0182ed80acecc40b045c59d4c8d9828a7a19d686b21ee814875c8e91322fbd73a2dfe5c38f749998d64930b726cb39969b656ef97f1086baed65b4c74e5a7214ce024a2038ce806d0235b18b6d08103b0995b7322611dc1b18b91de94df3e08f2c84b769c0f10f1268a19aed9d27b565592701aafa9ce18c51ba73c74a2ce9d640440d0c8b1a10d062d380d06abf8d5c02d80f76d30226a30118e8557a8e85645ad973c81de24f32a88a977ef851afb927d2a4f9dd3b7f6506e1963f3ac4d9490b7d66dfea7998268d90a06e82ed95b709267a1e3423deaf4aabe6b01458818712ccdd9ab529122b3384e8208227a0fc0be25e15b4d1931fa547c872bdfd567b5cb05ea1d3274cbdad4e62b9c4e9bf9cfae82433cc76fe94e6eebec5e9436dcde661969f0f033ed4821d4cafea3e15b96931db89ecf6f419f0eb111e8a41d3b776eb6b0d0cfd4f7eb39d0e1679d88a74e85f73fd36fa6ab4123a9754f0f37419b7f76095717c1bf30d523301992f2a7fced7ccfc3a241cbf5265d78b4077875130870716e64c6339518f19a63c42deb2b607388fb98eef3cf3efacb556e7351170fb844f0d60b2ce86c5da6624ff3a06fbbf4a3c555cb71741bc3443bdf8f20ab8bdead4aa3f57839ec943adcc30524e774168bc41520c27d0585b04c013c021539e6dd5b12b71c2e5ea4b783f4c68b2baf78eb066477938b21efc156cb3f7488abaa57772bfeae45314252a25ef11945b28a854371c83b3ac36c0e6bb0309595de11bbfd641c2b553b1a89928332045f7dc7e74d63c9254c9c45f4d5096eeff04a7c6500b35023a2a12763dfd99f471bfa8375b09dddf70bee15c48d58e819c992189755fc3bfb0a9b06d79e3a7b78ea590ac5896daf2e8457a31700e99d6c66082c3c561062a0d9accdc2c8b4a8b1c49e5197a8e9e9af32de03030fd4046a450602bee04750d37c09d038a98abf7606cbc749bf4f8688bf0368efb6a402677eaa6b660073909e0f37162aa966fe4fb4e033bed614ab016ec70a8f2bab030617fde73395c34b6190aa04d51713a4ea9f026ee8476fbda117ab9bd037597c299c085ccd60393707ef8289fe2a5b1cf988f75ab15a873bbbbcf7ecf6d7faf625b4280a143f577d7ab8345ba6f16c4cdd88eb9ff5e436c8cf6773e3b257f1de2a4e21536b3b628c1ba2dd7d32525da20676c08eeb3beead5a5e25b1ac9fff78d75d8c9899220efcce74a71dc1b08c51b7fc282fa54c1bccfdd2ec75c1e83270206e722415285c846c1704cc0a450024a1f756e584cf787553979f195a6c1c34be63292dc5633854ec434a2043d1668127b6168a2c00908706aeab73b12454bb51f14e7635c734a1e4cffd5552e3124c72bf49deeb4fae53875e0575b4dd5340b6c1bb74c079054eeb625f29020d0ff7e2a112f0f19725ed02f1909a0b534054668f24222bad4f00d469cc73fc891b5964cf14d90282c999980dee8b85221ffe304d3bc38f95a353bb9e40e998c45dde1e60c77405602440443cd1e5ffe59d473da9e1ed6f495e0ddd806e2b71781fc0f9511cad8fa4b02cfa1f0aec36b0af13075e9b2a74633a69be908102811a437c5f41171e2d2206a19cbc8170293aba148e4bc4120f1b28d84c4474d72bb8a1392e780b85c2aab2346d2bb9f917094fe04a22ca4f7665f661a350ac8c4080fc8e497eb17189bfce5866dd2027bf360f39b34a1ea948bd8f4b54cc86628d8127dcb7da98c55d4c080456116fc058e4e7ceb023ea181b9fcabf85695656b0739145ef623366f9ced5d19a1966544649d559a2133956f6310361c0fcee768703201613990d8b0df1b1c5f357e676fa30b6c91713ff9b13d8fdbfb03fa31adfe9615ad39cfbd340869abb30f5bed5eb637db3358a437367e6b77b57a52beea36e3495d312d97de4f28794581cab9dacfe237a8ec7082e99734940c317625992b6401528164dfdd3b58aee0f29ed7ea3012e919a0a4178394a3b156446ede0695c338eef96e63e5cd28e00c8ebf3ef2a9752d1d3438b7089f564c518c8cc9997ff648535e82265c28cbac8ca7cf4799f7c3a207fad37a7b8e3349746f833e4ff4dfc9ec8899f7a394b4570f1d94d42a76a5af56162f7c47f164adc2a3ab3fea4c6ad92672510dd1598b3b35be1b8dcc1ed971273a08b643ea775122e9111020cdf1f3d48cdbb1fc449e0e8e9ac76e22f32d44db77e712e69284424cdc50e4b06c334788c2a7db84db550cc6b2c62cd5bb72c7ad0ba5d973c606dfaead25cf4a9e0fb7421e0b9ced002c91cba07c0c60dc0cb18293153eee6925347cb014df0d8a7573343da29b296c8aa34411b5930d629b44934a7d71b8e3fce98d3256df93d9f9094239a33dd5b095875466d02f7df5c5f518b259b2dd7e697128efa45c1f71b05511118f1c5fd7563b556ce4956c8c6dceafed26de9f2dfb8b3cd4f745cc2706f7fefb329186263225248ddb3ef85799ae0538b35958245920b7e39a1c28c13c0a87d6e28b2358055029daaf5df09d3bb0ba5eaca5ff65a455838593539990a398949b9257a734e48e9c79be44e8c6d89ea687752072fd2d499be7e52caf8971124820a81a61ffccc1b524c8cf90d8d6ea560e05420ec3ad03974a974504669e178193b30196ba755379d69bf304c2b54dc246b11b8ec84e517d5b28f73ab6eb0262bcd65d48e1c458f36e4960ab12b0c7125301715e2722896770c9fb7aee1d6095a61d264d32aa44d622339c6366e47a21c9d7fa94a0947dc1c7867d955c8b14aa32a0ba0ec6838b86f7857683ba897b0bd4b31a50514155e50ad411ca48bb34294895716e47b1b2ff8a6bbbfdae3b39a30e1977d9230bcf3446e1b0157b6b7005c4d36653ac9028d851f888015823b6200cb50ed8aded03ff9cb0a690ee6928652413df89eeb1c6ba3798e2436d5f3ab4696306420908f27f15740a3ff810b5420e1954c20803cbd47d57b8bfbc769710ce439d01868d37c5a29f4879d489f05b01b2ba71bb2cda847ab412933bedb5f3f6319569f68c62bae45cf456992f12111ec8934f0d4e5ddf4e6befdcbdecf4f79ddcdd220e2bc0d35797c483ef165be9e3c79eadfec9a2a761ad5673cb465e1491f4910d8533dfccbbf1473574bbd9b5ae5a4d508577d1cab3f094f47e5534944a6d075288f442f7533861cb0753b49a9d5a1ba150f4baa5169a9d45b4c950ccd1dda2c1bb2523c2ccfee8ecae80a8f3e4d13b30af18cd12f8792769ae27ad34bd3140ccc5b6045dc4a0af411a7d53aa2ed84ebb0d02ede0d3c321cb267a06e3470fbc27716a40015474756cfac9a0a882a1274a6c0fb1a4d79a752b18060ad18281682c6a19070dc1985b5a8272d5a1aea6757b7842a54b2e811332b5658bfdb80d809d0ce37d9c672f815f8d624a430f924a59fc4b2499cd67e0519c79c9566f174d4f8b979576fe2c016b4d4ef6069532c164fc6b08df27c8c904b8b3d25eb141435d30c3ca3ad2f102eb2618e351d42d7c58ae21748c83f5c701f37e3ed8d46118fcf327399d724edb12e2aa1725f9fa26181a33a93a80bef677762b57cf155dda5686af5bab01286f4297bc0031e7ca42c5b8dc6e3a6bd71bc50b1493f811ab883f40d7f20e4b52048cce8a7351df718ac8686a8dc7aa41458ff6ba701a03643cc075c1aaeb9704db9e08d068d8a4b8cc6c4b1ae442c2ec9b9f1cc113f3654ac6192caf9b9286542cbf2e163ad1ae159c9910dc92c02638680aad2bed473b02d5e7bae3615366918f3cc201a18b5ec463e2a868a427a249264b869fb4a1101eee7093e68f019555fe4c877f6977f1483d19e064d39ba1ee5476aa57194c816571ab72b4557cdcd9a99c84c7f1e0aaed1acb8effdf6e9a51fcb91afa1ad9aa667300d79e43d9cc69c6fd9a611d8af210a116378c3c84ec5f2456d1a0df3e130797751d79bc875ac3020bad70eab365ddb4494ab0712107db0556b79e9be5a093846ae946e44733b80440838f128241b85daffda475cc9c7500efe6a5a517ce85f9c349bff94ca4f492616cf3a2469c1fc93639b91f368ef96623c50c19823985f3a962a74f49e8b8e5da45e2906bc304e0b02e08d1a9171a5e82bd4e1bab09d7dcf563f696b44359a232433f7b38dd10d0135710012e7fa319db60fd67fd78d32038bf5f9bcd75d6dcb0302af3b9a96d08a2e515e633c1d26bbc2eb047fe46fb6bac3014b5ddb01140a871cbda643065d4ef70856b243b31450fc6a1166eaeab5ba4de6feebe1bbe85ef993573b6272d732a9381dd075550eeac106137446821462d22d0b26096d9e94daec9f0b8623c15635b86432d52606cb6ca35ed6159b0dc68b98480d6e20653272612ce58b92276010a1437791ca55248303e769e8101a7092589fd77f42f0c15619357797f1b03b1c7da9e5e2d9c9cfd69d1203ae21667d8bad50a7b74eb523a1fcda23b6a18f57a64bcef29c3bdf02db4bbe81180602a8088a7638f25a59a92574c0690ee49321a60de3be0ccb2bdeac30543e9b3999f4e8f2c82883586eb416cb01cc2f3944d405f086124e62a2161ef5471294d775ede07b1f8d9d7de769e2b7ab1290b04687400c7b365dcdafe78b5a5248704ac5628bee7997e1e4a2f1184e346f8bf7eec30ab4d205fbc36ba7d19311cfea9a7a49a79a0269a5f70fa002ee8ac9a59365f144dea2f98e26762eb7ed7d07b9b77bab8aa9b3efc7427d8831cee45f53bc587cf15a8e91130d190fa9b03fd3dcf771276cd83925509a87884efdfe409c00eebfd0ddc067959271616cdac996320a658666f8b28fcc8065fb743917a3cc49fa6d0eb2c8252f9ec5a3f3cb298292279168905f3860a54514e9d0ffef8e21dd90d7a0595c3de87213d5443168a266123afb8c133f281a914218a2d1bfbfe10ffb9f86ce25453ba0bbda18ed456afa45f30f850420091643ac286211ec10a69a95babc064a80230588b30a7ddd89cf0c9ea15286de22dabf678d950555d9b2e8596a3517248cd1bec7909c490dbe4e60afd40602c32d31a2c1c8ede20b057cb82bae5addc7cd6b219b1ff3631f477e56607d1ecfe76d682f6f5f304d366fd6033fdb603298e38484ed56bd7894b09e811f779a22e3b8cb1b92f50c472af7f9c45462d5fe1d58735ce821f3b2bb5c3524a53782d53defb04501a38a74f95e3fd055048bc6c35ca8ade812506b066a79092c11a8b2355659d61cc97fbe048032bdc085d051bf1b3135791a564d2ee7564eb9399c531031694a94e4584ea32bd906e97bc8360b2675639ca9474fb8c51556c057a9acf8d0dfd08be7fc5465531ebfd6668cf943bdd9add0803abea7adb2afe26d6ab923e54570bcb343179e6f7553a8fd67a0f2ff121fc3824b3be6a92e68758bbdbb359e589d2983de810f7f85a291de0d92eb648c139459f993f80a022262b0258718ee3d8436d37bb9661e85a903db2412a9b510cf3dde70248127c95c91d9d959d6aa84ee87edcce2bcd54f15c1ade6032f796a815525f35b0ae81a23f51a8c639a291cdb60c20ad7766fe0bb47ba69e8bd93dbd2761328bcee73b66e691626e56b01d6d6bf924ac6e668fd98020f041e87221c378e763ecec61019c28e55f92a485314eb882e9067b8c02f6c87696228124a8f1a9decd77ebaa09372da4f329d13a5da9d2917ea005e174550dce17ef99c955778187f63a669399be81b2dab9eeb7de9796ef08fbbc71cb4bb983c23f3249b208fc34a1a85cbd8f2496023d91b7bab7299f2503cc3113f62d0a86ae1903abb088db9e601ecc76146b6e8cb90e8c548c9ed41239547b67da44aaef50f04a0b489721cf36e4c20a1a9b30036865ee5599c72e05038030ce907017c031c0f4b7e2c10fa03e407d0101736318f5e8900179d69e94645136aec234b44f9ee24c0d0ea3352a1381839f31fc1319c175520e84e31d265a7459f753040a276a4402deae35e01e591630804289e35e0e7cda3e4b054029b0e2cdde30a777405fb128c857ba717584bfe368a13ae711b0797b3a9d21769ef26103622401493557fe43f9d97f6746652023442721a98befed2091a150c9d56112c794007bcf7591399c1f7c9a30dc9ad99e37140a0b399fa0e5dbb305c7378b3542d56feaad426858f2ccca92410483d8b95075c1b41dc0cef6a8c15c4ac9f1bd8fb6975577fac04260fff685fe3f28580b147381198ff73471581995ff783119879ec1eb1579aa3dd45038b38d14755ab0cff1e20f5d89289963636e3c60f26b23a869588b9f69b0335e6703eff44c3e67d1934eb610f20e432124e91ccd03c80f7f8a353f4270d170e9dc906b667e7eab849f807c39b2e84f474ac6388464f8d488c17db979464d8c4ac1195f66c25b6d7de7717918b0187261a7b0793f0802fef26a47f0e7a055859985ea42238855f432a364e903e5545bb9411e90c065008a63d8eac71f98347dcfbbf4a81f6f49929cfdf272eab3e78945c7703a7bb0b240b885333a79d8dc7bb916e55acd44b0016971308a799231d41c2d89242061d20a7f0775c00e6443527fdbf5303936196e1743ae19622c0f2039424e1901206d14117d695363ce1753cd64d2d2b6160c52ea67b34902d83598d41a030339272156226bbc2efc7225c8f329645c8bcaafc8c8c63c548ebb437114c5167027663fdf64d56e33661da30c0f517a3022ea6b4c16f3c4d6efe41a3560b4426896f0319a956d2803ecb0aab1b7f99fbd08614a5fcae269b5a661f755d701daf845c9264d575dda5e57b0473d8cd05456cdec0bc01ee9ce8fa83af4d6140597a912e52d76a2e36b36c6ae61a0f9664bbe60fa7537315e3020d29ab3f3a03a54a153702ee92f2f4b6114fc753ad30e79d103945dc3186eb330adc93c6b5783634d236644f91029b24b0a356a201cf2ebebb7d44bc3e0eced709552e595854dee5065a032aac269fca6fe5fbb453b55b1b8c0e8b1a67ddf1499d7f4ee677e155f2368370e7d95128a33b9ee591293590091ce453fd0c0a8500a146c9616f357490cfd926ba940e43a1e69edc432d02bb5ee436649a864a1e6d6c291cd20d094488b5305ef423f09ac0649b4bf65d259b89eb259f8cd2f1292cb11706bbb4a4e2671ca8661d5030009ae6a51e3b41e2b6d075131376c7b446bf9408a5b340676b5534cfce88b1373ce2b8e4361c57542d01fa7bf6537b4c51ecbc6fb99a30118e4e87f02e142a82717028dc5816e4392789d59e463123748b19e687b1e1725b8270ced37da8df883acd9912e2cf3934e02c197e9427e06c33f0c6dcef712a015b8774e1b42f2e0d1e0d0ed2a062c85502f572253c6d26e264a3acd33f926760d792c1457359897da5b323c803fe61201200f406425b6f70479d0b802ec41c0334d824289185278ca6970508591231adc006766f58edd183578885a26c63a375f331d29f95400f0b2eee7ca58052077d53096e3609d627803f12a65dfa658285094b07d84a2550acf5882ac1bfba69a8a9aa56880d6c93747a41a1c822285c942f0c9b5ce25cd7e35e10e7de464887866a81964243b43274dda0373394d8b402f2118e4481a68849f8a01f350efe1914ab3549634905e621a758e85786f2b410565132298717a4ae88f2b55b4d56fe8cbd9ac8f9d2ac606c3445c2d6f14500c74939655f45e73a84215cfb3f2681c224635e4b37883b8aa5ed89568d70c6349f79dd4fc89f047598c09ed99751d5634048e0394016e3219cfba384e4705ea6986f71e8b1fc41f88039b797c39a1eb63a2f297d48cd5598286d1cce534b0f58e247f52371c71bf76922f060144a62dcafad1f2b4dbc34ac6257849573833769488fc814a46516d234744ebbe19c90c5cb46686708d35597b81ff526f0af802d6330dac0579edf1c6c87cea9372149512efb8b6bcbb75f6ab52c9dd86c86e52e0309bcc0666e8335b079338a8adb0656661042246d73cf28744a4758a8aa8e0cf543257a354a6765d9e543d92e4c9e0d76ac4e239f372dea0cd10e1b6281a9a53f20b159bf464d3d8ee4e2afa2f2dda4d3d70a24d5035796583d70eb0cc08746801cce70cbfb5cc1261aebd5d826e0d431971c574c1c0381bd68b2bb334e99a37581297102e736e721ad033cf0e521d178a82ec6287792779f98366a658811f8e392f0ecc8cbcf5215d9d2ed85198a78454a96ab6c9b262012557677f1c408f8ec8ff256cdd28ddbaab26f87f5869f53710db8b46e04755ea2f32f6f4261423ad2efa1dd8ec3b438d4c2a63fe18456e9b994d8d544125e8525d8424151ac92b9e36eb818d585c280f30c14eafb78f9e58b77c03c31b86e017de235e757ad4c4bcae2eba9d11e95c3b6d3a8b326d500e9fc27c2014f49fd00c71825edefc5a7098d2a3590d2c205ae46a2a54dd1a1e58e905f8468b472342ba706202102ceb4149b366a65087cde0c3de1b0f2b31ecb4e81270d07a23d79b51300e9ab7de24535f8863ed7b561bafd4cec797d02f6e5b9c2ddbd65e0071289306c03c82efb4954eafafd664b047165a0c14a9140ee501c454cf5e411b3887b56e179e2f11d711f40ff98df304d319360c0cfa959e7472fdec4f4e612b31c766af5177ee7f415393a59e1532d6d62183f92324747794f688070ce9413cb206f8ec4332c764dc3943e02210574b10492651bc0e1e0d55bd750f3c7506188caf0964735d4df9e0eebcaee824d38b448a756ed6bf1606f4fc4262a2f0a5aa26c09eabbc94f8801dd0bf2aa6d40ee537c7014c4558407920c9cccdf019c7ece89e41d0cd1dd81e176c04662f3d08b01b2eeeedc081efcfa11b935a526e175d8480371b43914552eefca14fc518c294acd307387290c9f0c4a286d7d04b95fbfcb92c734d0d8c0894e7b25c8cc52c48f2969a2fdeafc801080bd3150aa44f726681d900acbaa1c31c539c0ef9665409babd004aa4977e9bd3b14e99a78cc7e735663523003f34fb6045126cfe99848355067423b80209fa9c5680221781cb2e580d8887379425f21fe79ac792f40faf0a944626794e808633459c0b42ca6621e32c845e4243a0ef798ce6d692726f830db3801630a44aaf657a29413361ba963decefc0746fe3896f8b687e289f311c5489230ed2723439d791968e839c8ecf9a2651c0c8311779ace1607ce6c355912e07eb93fb9c14593d0e64e37666138c5cd694a6bd9588b1a93741184a2666f26eefe56848f2f5879aa7da467c1e1d4248939f23312c58a53f71751b7419cca3249203b39b556107cc49e2621e4929684667aed98996a04c6731776ec7eff1035edd2a6307ac58ed270ade8697075b6eda80b57d382ed3942f569a6a1830609c2f8148715cec15a10e1f257d1835516e148725091d1bf534fc3bcc45a19a9706d244346875dc1c995b2d9ce5397d9566bde098c40573cd2a5c8ac549148f283b42a1e76230c237b7a7e5feed13fcd8d4686ae0a3e45bef906e48ab2b91b9fa2af2d769d1865d3fcf1cc4493301f2c38f07d70f6c933666e6444e028ffa73893b1503b1f49c2397e912d7ee6fb8f5c67ece83590e8e94bde90c45130d7041c3c270e15bf9ab2259b3283adb9aa64f4d2f37b88f522a42f8cdedeecbdc808817d734db7b70a5c1993c15e48a6ac940b971a86716255bd8373dd9c6e48aa498564000094ab6726661499d1bbbc314f7a1728bef90a05346f6ce46f45b31f891eac05669a8d340a88431a51a0b7ce67a8dd4f31b16c9391a8dec7f46c919363850636746438424f43b923d5c500012d6829092659938aad19d2112e0b170339464c8a6bb8df9a868b39cc73be10c94915f459d5aa29394dc823c04258d8359522804d2fe330061a0763438a56dd77a0860904a7db771cd8c58c30ac656a067756b6d3fabdb109327438509ceb62d14cb6322a5e3cf950eb530612c76a609bcc620da8da86c374b1b4fa4c85b991915c6cd1ba76b29e1d1dd2084e2802d69c3434b4ef06e72a176b8a0e767c0a438af62dac9eb0b0812aa1f25112d169880a24e66515c2099838925754850bb5a38440715036676802e5a81a9d2ca131dd8c1106a23288d27089979e01f04e35da6fd5765aa0d08ce565b7081ab51162361e6b1910d60d336cba028bc751d7a867b50f3f89362b846e9411859e71a365e54546e8b327aa1d8cf32b4638ba8cd2fd40da96fdc0e901c46159922b5f387a46a301a2e34d596b33b1b703bc05385d43d40833c519a27d18401310bfa38f6b98d6df801d2b66e2d368e68ae3a3222ad53e645414115aba6ae100a86d03029a85dd68884e6581ceab8f312deac38b37da83936189b5143aa14877dfa420a33ac5f510e94bf6e1bdf48750df7b440bb5136d65f0bb4fa01d3f8ced7359d516c10bf0894b5a4a0800e18d40f9dbb8ca407f11dea8a13568031a5ef9980ad7c98f3299bbd7e80006645ec67339e9aa140fca1480cf90bac0d8e3b2249d297fc324b4c9522ea1ac87425ccdf565996935253ed0c21b778efc284469cf8347c93b61e7eb6867529ab11b99fdd0a38ac1d5b44ff93e4a6ac94ac1d6b0236a2ece1fb1948c4ad71d71e55ed6e5c74b27fef776d0cc63dda7889fa8ac0ec6832e8f2c54f6bed178740daccbca860aa3b3369c9faef008c8568421c0395609a21b02bdd207fe35226e829cf7b4468025c17a3d6ccf3a5db9b298fbbc851520f8c3029d60788841777895038833346aaff9dbe865c9b091c3280780bcbc09860d5e5d3785b674de7bee672f159c44ee599420c9f5974af5b528acb4eec36628e773c760d27698196cadce1fd33943d5ec6703e5824d43c084d72b6aaa4460d01174877da28291b4c43fbe589b05cf332bade758f478ad0b86f8c48bd0c10e172134eb9ca03de3cbc3b67edb505ab136dcef76a6dbf821f9321cfcd290e4896f04011b894baf0b6136d3898ab4706329e6138d46b679ed993675a1a407b4418f204ac8ec76169cdb7c6af0d2caa82d45d172d25047ed98a5468036850dbbb55a934d357a63cb57587b0b655b756cee38678f64b2928dd4af751c5ee9448706f5e794b3486f68b297ec1277be9f16539b34b10c33b41ac81628a7925b1f6baebeb31ecca96a6653aa19f7837d962edb0636f5265fa8dd4f2fc15744ac0e060cecd147ed43f496241cad102e2254b6a38a80456ae4b65ebe101c0bc2d66491015ef54da4f6fbe6b8c66154fd4d22cbb2bebdb19258127e6a72520b01279ddd8257150af18341f05a2af4f1b00a41dcfe0dcc17831432bb7c6c9e55ac35bdd27b4c41c9c377056f62223e2a45be1050eb9314dc9f0f8dbc87f80ccb2af9986e2752eea26ab9476a18bfb6a2d7e6099eb961dc6c89e8b5f6f44124ccac45ca80d1d613ccdb053289b2b1b2d8db38049fb1474652b6d348d907bea615a7f4f286bf514f1b773701376bb20c454fe78faf59c81a1282eff01b66f37d744853f82318ba5221a2a3238840984193083fc525f884a597f64fd46376d40894205af2433ec2cb5844c546e9be7ec482dbdbcea4c6f3f3eec1599c2c5d650ea1b05b6bd5f8858aa2e6baf23a24dd154064d48f15d719ba11950c3a4fd58f600152d0260d63ad7828bd60c8a4e9fd4a5d47ef05690d08db6ac6ecfb6fa77c0a459a0e138a78ba071b4980cae787fe1b69cfb3d6deafc67a9c5208d96d52aad638e3fdd7aefbbea29181774858e1134e10297033b818de8f4ca40e5e5ab700de1b0b9ea2ce3aef8c45626fa794e296e9152e80b335ebb871949db712ea79cb3e5a822b50f80d72c7344fa56028cd19ad5c4354b8fcfadf6d3c5a58a07d4e7a08a411d2b406b478ceb86d6470acb35687e2f47c38ee24ff4cda198760249ae7cc836a8cce832c1cf420dd38a06da50042a96facb9a6f68e4a86340f323d33e629e9faa2440803603e75ce38606784f8e25ae117573d2640e701883f0a0b221b7e8e6767ec7505b609fb60c7add62c8315fc49c18ecc89db8625170c1b2e0b4c9bae9b8d44412b00496463a7b3ea0da4244c2dbc919b448f63205701fd386c35942fb57600be00452346c8851722dc269d20c100b225cf77af0124646072e98592f8b500d233cbc83caa00db48fbc696e3dc3243d263490a541b803c2dbd17f3853309466619a273fc3b7db1ba9f4d9f0bf391d1ed75458ba1979ed7a17389c7e8b28ecfcdadebc9bc575d13ec87cb4cacd361c6609769cd7ae21d881dc0e036bc8efab5f7596bcbccc043fe219b6d991f2af4bfed836ccb4c578bfa693d5ece0be98e235a29f5f5f1f31569ac567a78aeb4cc347bc5a7ded400ad7cc6dd46c5a9b1673c52cbe784e29e49f015b07db1793b8bc44d9f5fd089d9bc98e4c9bf9b8233aef410fa7d58e5acf6e237f7010beb96128f51efa13dc44dbd659ef199c87ac3aee86c36f44a688dee46855dd93d0e09f282d0c3a8a4a72eada8b141915dd0069e64c67632c858f862f1c7d9b2c40ada3f8684e47d1683da0e0c56cb88182eef62d9c21cb7a198c76e72a18cda26181fd23abf34c4220bb497d55c762c58ccb1c6b2cdc4fd19ba048bb9fbd0f32f522a68abfadccfac75768e18ffc14b3ea8862fc853d8cf879ec98c01a3ab806f3a4dd6bb23e1e9cf11b7494e1652bbcf4f09fe69bf62aa65b3a67e0d62d07b73aef09d59bb6f6299f7e99cdce5070437292f0d9c575139f70d6f0bd356b357fd5e18a2f565e7918163f67de1e33611c18e9340f295bad877b096f264e79f2ca71c990019a5307ec5042ca9432aea66886082a4d22a5d0507980f7037a4a41c9c67f6512449fab727854ba61360e3ff8bf0c749df6dd989fa9020dd06e9763577a91b17687b2e64f74ccc9ba7cec9e430f1b18824fb93c539c1b7f28884337e594990d883056ae70774ea5d747521015bee25f9e7a5df8ab603f59eebdb3174c031303440b170e88031787400b158f480315834c0985874c09858f458bbed15fd47bfa2f9d1aee87ef42bda8fee8afea3bfa2fd6856b43e7a15ddf7d383a8fda2bec59e6a790f9d122889f05ac6a86999029fce5183dbfef905a9d94c106f8fee7457aa14db58aaf2f77eadc8973ec0645bedb41db8cf837fadf89a8ed37e7bf8d04be83f7466de6d98268cb99a4716e4f1d75a87be4c97f7b8b27387d54345b7d7a98ce11615881ac89aeb24fc2a335099b3956752d5593583d48f5ceb3fc555b1e704c1dd2a9e79fae41095253c59b800053823738ae1d6eac0a6cb52728ae2945cf1748a8c9aaf69a7a6159dcc0fc11b538bccab5345db2d280a7a7623f1a590f6facdbfeb52de18db01dd3c5aaaaddc9f334f968af390d81a68cc4aa5e2a13135aa4129fff4ffaad463e3013f1d9eb663a4d4b492bfbd7e5439c2c84877ddc0b527a5ed05e548a3276afcecdf9a54ef8fd3806e4b2aa305f44bd7fe7afce0df929477c6033d01ead3718c145f39ffa8cbc535a67844a4f1e81e10ac94ccfaa84dbd288f1235b82e66b56a7c021b97a3d0c5c58e7c25a3a6bb352ec10c3b5d32f916e5f12eaaabb227c21e546e4c5365dbd2b6811f26d66593c652435951d816a99704939f3b46a94781dea5ff1b5c393446475ae573a19d43bd7c37543f86ca42745cf60f05b3c266664832fe0e1a5bfbe5aa81fbb022fc68dbc6c150cb0fee60a657b013870fadc829cb2bb03830aefa9807a676a0c5b19853aa8bc8e45499faf8077064712d5ab0e993848defa920bfe263655af4d66e0bdfbdaa1eb7f564ea16af970ba9c03d61a37582cdfb840e1978c1ae767389bdc3db3a2d7ff3b5def5c9835f7c25185267aec0bfaae39397c1f8163b0c8f617a61eecf75e4714896c5428c0e19438c7e58b8b88952eb5c5a71d9378f522386e404f984e52755762b656e0bc67446eb812fa3218e864d9d51fc66e5ca316ee1034a74c3f042e36251c0f020f2dcd1025858d33fc28abff0cd48995b9538409676010a2a252a1d2cc6c19cda2d9fe7040c8d30af4492cf1aebbe492944bde9e4fe6fe98fe04b9352cf946ab41918cd96607dd771c0ff530c1da54c83f6be390f1ab474480f66cdceb5f698b518c93dbcefdb9db6abccd44eff2f1503d70c5d3d82c7b0755eb925f9cbd21d4657e35b7752064a7bec1bb9a96f8717a350a02c1dfcd26bd0f0cc34ac7ea1db3a79a6dad99b14b5733b44a0f8d3d3eda3fb3a12cf7e85c2298e183be247be03774122257c7a6d2fbc1d8fb10a371525ebdc7d14dbef94f310fc8b00bda8aaf5e9e8e7fafc6ec574b33d456a8722caf8ccccfe3c8e94f07fb63bf508282fb2cd971a7aa7ba5395594ebf7b00f340dae9efad93c1e02fc415b53735d02c0a6027198db6de9738dbe99341e8e01c59d15da9679a5e6b04dbbca7cfa154020cc7b6e1ab9ef0d2e121b91bf254b86bc44c7cd80e34762923b092c1509b66ab12c2ef3241bec643b4779eea190fed85402b2cec6724053b979cb9865d37eaae4136228364fdea0bef1896123815ac1a5a882712f84683b4b13540a189c0915203e4ce7852699d5556678f7600c70f33bd3c0239701a7bf5a394b2290acab4560a0c42f0cf0d9f6d14478ea29932e4dbe3efe45e5244c8cfbfa81e56c31376e39db04acb3215238e0ad7fdec270745cb2f5c59646451186fc3974adbb3a8a023c3e5cc720c7b1e1fc46b0d52534d94bf3f43e93740f72752239594546fb79f584faf38dc1f095e67100b7b307cbf315da7b65fbedf883a1599b6e81ba21f0282ad3145a734a4aaec00db4341ea69117ce13fa2e0c1e04e19a917e79dbd0c2932059b29521ff4a3b6560942122e78b81ddef188c20b8ad14799003ef59f73a6f83353549559cfe59c3711b5ab7458aa326a952c1a27dc155f381cc9c4dbf811300c90828c322919e05698578f74c3fa9743db225a3223f07ba1e71a897e944d937666fb14815e466fe2aebeda25d9800c42beb1439eff405c27eb53f810c4fc9f0f1b9cc9f2b8bd8a0dd501f428273a8e9d36a10ecf1f524a6190a5e802242bba4526c4213a1509f0d24118080d699837fe493b9f3516896e9cdf60479de60a2de47fb42f2c782bed33e3aa232e0e120df5bc99af975b4a9e909afd91a8503ca447019e3e8544c0cb708243c53d0f658e13272565f65091763b54a86bee38fd70a32ec1141b67e2785c92faada6aca95b3e5cc7769d6d59c88c7cb6d391632e6fade0c2cb06953ce458c1d36057848f4f151a86a7f76028807d91cc96301f3e75cb454eeec893b27d74a95adfa65c835db1fcfbe02a44ee57cadcf714a07fb417aebd1fc062bb8c59383622b660acc89882b122630ac68a8c99187ba0de7aea59ac47a07a19eb757cdb77c67ed15fc67ed12f637ed12f637ed12e637ed12f63e5c6b2580f9e7a59d6fb83bec74aa1a24bd9fc38a57b940db717e247405fc8bb80d31adeee970d21e64a50b18cfed9f6641693b3141d40dc9c8c5ccb1c4a25b23c57b4e983f7ba05c916d61ec0d955a733dc16053bebaddf32706ace24ba353a97205b70090f04e191f30054816bed55d222b9d491084aeacfbdd909a148e87fc6afa2e96a620a21a482f3e28b31aed683a0af2058d0a6f6ddb94259257ce7151c118f0e06407c3e15001e651173b21ac3ea5ebacd4690ebca9e7b084179a4cbdc56cd3bfaddf5981cb6287ab45996807c0103ea1fba695c4096594d07214ea59b228b3fb0c2acba4458469ab9824e2e07bb4414d54a506327efa1b4ea39067f3bd88166e7893014fe47d78d694c81a48b810fb4bd4651e0242b847c88f607c34f11ec7b040860cf1ad24d6849935b4a99524a018606b006710672890644ed6d693d0bd3df024956f9b515ec6ef44483614041871142773f9d6840f79349659292f4637a9a26755acf5cc9d2d403a1d6a3f5b46b50734d83f04443832d26d2c97f239d6ab4a89a17b5d7b123f6a2187c687a76a98a50a41a02756dce539973a26e2f722f729896d22d1b5ec4c2abc80ab4a874a2019d33b9e0ed820b2eb800795d7031041ebc5c1bb7ae7de9ae87362375cc0c8af074af365295c340eebec90b031f070f5ea0840a97890a3fdab4077db53270c7ca401d3c748b66b8e9015f031bc3855da8bc5b2d0caff0ffc55b1728800ab7461e4944c80b0d7059f845952fdaa32b231f7a4f5742a18e63c7ca48a903fd68953fe31eb8a747cbbfd1c0c6c8c12ee4cbe7b130e6cb17da26c734b31c1cc389ca7f548b2acb2254fe6fa1a85293f1e1d3671f1caa80f284ca9327dabfa675be8adaa7b4e83b7a4a99525dfadca8a55cd35cd3be2d5afe23c92f1e9d4d7b0c54f9d9a73d6e265afcb75300e0bf8d2200fe381606d7924fba36b10af473c946334557b5b1d16c4b9d4dd795ba5dfe526753fad83551d7b2f6e0cc5b30e400430e3c9d97e07ae745a04131d52ced83421b9385613a62619c507fe23ed4a983402608b429088348b8af29a7c2b5f4a5eec84b4754f59e1fd5991f790b0605c5231ad4ac98b75a74ccdc03c2da6324300802f911043aaa6234a5a554fe00fc5008049140d84f8b6fd2ad169d477128cc447bdca43da601b257f9a091cadf472bc33d243f0c6ad61228d4ac548fd27bb3164a5918dbf3c3276ca5e593034a5fe93da83dfeed4b9c0dfc55e368e098e2b42aedb10b2d69af468eabc6d1d0f5f3232a0ba30adc823387e1ff6051083e2882cabf0c8b547ecdbc056db030fc3ba80c67485436aabcc47682412bc31f97a0fe5bf9a3ce0c46311277b8f4a5ce87572dc8974867c289da635fa2b237a9d2daf38b4be9e833f17b93984ff917ee3631c1df328fffb58f2b615ec24358c89b3d33cb2afbf49126cdda29afbd2c95e4fb4855d9452f712d32702d3dd752d7c3bff47c82c1f94b6cc453da48b356f3e89ab3efb4c7fc6a0f3aacee5f5a2fedfe565a2dcaa8fba50ec7caecf7ff4b0c5fa1428fbff94a4c7ba6ffd8687b36e229cd4a3d3f1f718c17ec829f9638ed4d5ccd8df60ca0b1d052a8671f66169e7f9763acfc64e9be0f80ea4b5de957742c70045898d2abb8d20780db85f916504b0f00ee885afa9505422dfd8953a296be7d4c4cbfbd527c00946a00c0f589467c54f7b232a51c5a3c4e8eabc5476ebaa9e352f7e5c05afcaa5a742dbec4c9ae05e7dcf78157895b578b874654fec97d5ed5381a626d21b96f6e128caa3fe45eeab7b71f593a4605d05b42e0078930bec34c8faabc2544fb205293117ee47ed8fd500e45f57ba9cb2bb43d5f66d85ef7d77072d4ac16fefe3dc2480f755f15d67072d41e08608e377c82481122448a102142a488094c3002b8526a1c02b951db7da2616223701bb54fd3db39bca1c66fa996b5e2f7736c8bc5106afcef85ccaecb386d6be5db342d8c157fae3cdd34395ee1fac4798510ba7bea3df59ef2280e856571e53f5ea2964e0f483d8c356be5650b636548f5d8e037135a091b83ba4eb7587c6cd889ebd76c0fa24e0fd856ac40b1801c0bf5ddd5391b6645bd8fe58646581836d0ea1fdf9fd8184e17068aaa68eab78f9952dd51acead7b31a722a2a06444b7c0dfb1af6356c6be1339813f9caafab368e6340b404123bb0410f9baa45c31ae6d551a8d4e901a877195028945713c73c52dc0e281d15db4e2cac902b348fc5fc145b8931136afcde95f14e6ecabb8605f19c38580100ddd7631e73c813f4301510f5a933cac6d1d8de1f72128cc4ba98412af51b34b1e0b8c861e2afd870d0a92b9f8295935899f88cc4ba68d251542e4b6a7c97df2214fa71cc353e4a1dd1860500887e1e9b3111518c886344b19589df82c9c4715dc1b99007c177230d13ff882351e2295817f1519cf7ac8c7794a215d4285c488d8e0395469d6088f5d4f56c2bc7bc7a24823a514acf6a514cfdd751d454b7e2f480d4fb2ccaca90eae0a726111191f7c0a4a874368eab69477b27ae2b1a5898f8cc33042132c6214665a7e09e95895e37ad67a33e10d4adeb282b33e369275648f573a285817a16eae7449ff6ce0b93fa155dea4fdd51eab7eee86b14a05229d4db006bea7da46aaafbfd13072b3c3d60a583fe3386d47b8f19539da77c4b792ad54a623e1388c254411f4bc160a53f715d535cc394ac4c8cf50c62b15843e92680a03aa2c6cf010c3d7ce6503a27aad1891c4ac3dae36858794f6d6d8354d74a38c6318e71ac612debcbdcf94c0a8f715641bf15a299d12db842b228515f4e5d76c1ef462c7e264dc913620f05f45b214f88675601d3fb3a76edad4c14f45bcf4d0dc3cf12c5450a0b2de7609b0a1022e46baf6b3acccfba4a3b94ffa33b5e78c212864c4107af228ee08a30a8f107b21c864850054cdd211238a9a8ba43437ea0b3f911aaa07a828de8219a689b828a540112b8053318d0ae3b94048aa1244fbcee5012591226bec31680264a565019c1679b10babfda748f85264b50e241017377777e77ee99f312eeeeeece2623c85e2495457077777e77ee99bbbb3b3714eeeeeeceb108eeeeeedc50b8bb3bbff7ccddddddb98de0eccdeeeeceefceddfdd09d496a8721242c1325f808f2f040081fddccac3882840966a0106d4bdca087e887f3cb9f90ec236b81d4d166557874a0d859696750bcb8044d11e5058aa909173451c48de909192b3b4c86b891014552e9c48fc8317c7442a6821c2c410683811213547e28d8080a5102216c04c57428ab162e68a28855f7abd78854e4c80fd6487580265c200415149666fd80113ed1b3039f257a8066c03305c87d66e340c8132a3f141246e10d4bf587f547d718129082264ca8fc90bb6181951f7edc0c65732328ff56ce61deb1b1ef296aa67e3ef1f7c97b0a9b4e12f8325c9e4535e1a44ba36a06200e04fde813f45ba39d181bc536d14016d301546313651693f9d0130e283791c5560602a7195048b432fdd08995e95fd7baa02ce63033df0ad57618779fcfe0ca623128d41e6c63b1da6fe3069cf500d42ff40b414f41a02ba0d50a886667f58289bb9cc761a00de8e779311086830e221c3b1cd5fe1c5156889db311847e4b84a3bbfa2a22a4a3bd7ccaf2103efb58c9e9f0ae1ae84721f5543a94f60bbd5d7734c4fa035667cab2ddf703564a03ba7352aaea5305a0b7c3acf6c7bc9026e9ad4948cbc1cfecc0c48b91c13adaaa5fe8d738af5fe847394169a0115dba055fafd7cbc7d59ec3f4fa8a1c01124d3842fdbccae21a4e5e91fbd17602392eedf967e75d5a8d27fe4d9a7eb4e7130d9698130def3c79d261bbeb8fba5096388520763832038d6cec3023a309747179a12cebfb99687bfda9644dd42ff46fa515704d01f55ac6044908fa41a3864d3ad3306f4124da894a8fd02de3606c653ce809f45bad5ef014a1a2d4a8f6b3f011252e2c0d44552c1d6ba0660531502369d6066dc73ebd848fb4d7b0065a02e58635124eb232fd0de30a036aaf1b8891ac4cb3abbf61cda282f2380c8c763f773c0dd44048a6e857ff34c9261b537d33333a10d57e19366e2c94f83abcfbeef3510d09287753467bfd34edf5f3cb484279b48d6675ed1b35cde2f7164a4c2907fa7931fdc2a32c6b14a178a980e8b0a4f6e34c930bebcceff65abe77ceeeecec52939ad4a473b233016119fde6fad06f52d974747817fc68548f38f8ea17fa494ad0af5f241f287deea1fdea1df8ead791da2b05af0287f490da5ef76b651ac216644079a772f7ad51fdfca8fde8050177c10e52ca628a46d007b4ae0e436a3fa42c2f26150b21e8b7b1fefe9517d08f6e52e84793d8d8b52f3fda6b20edb557f9d999d999e1c68d1b7779b7fbd1e118a133fc0082137ff66ad64769902ab59f65861face3b2ee1ef99b26c97d706998daebd87dfcaa1cce0cfb23463f9ecd9af5cd28ddfafe699a456cec22ad804eeea9d23d1feff04e94dacf43a6c9857b30428a02edef57fdb8a7857fff09cdcc4c9026b55fc63281decb9ae096a6d0258e1a665f3b3c3d3e339c00c9babd4911253c0835eb9b33c892da6f52b9c4b024f1d7e15df1f7e5073e4d7fbfd00f79e8cfcebba0cbd4b5482ae8a7aaed7114dabf42ec50109fda5485a4ea0cf9586affd4ef45875ffe4fcc5c5ee3c9ab59433bb2faa36b0d70492b359c186d5b0d27557c63530f8152b7d690f1346b7bb003a1bab586932acd6aa9e1a48a0f9b107f7fe77611f02d10eaa92636027c1b86b7b9dba13fb7eb605b6fb1cb4b0c6549ed22a0eece9a6aeabe9bd57c1bbcfec0df4acac11f27c7e50f390ff8b76d3fdfb5d7dc3f488ecbbb20f2b5aef4f3491b3fe9e527be8c9d107fe8fe90fb837810ff2041bc534510c48e3e6cfbf26933d3f69b89dd347f63528c28a0f23769327139aecd71f14c3a4daa579d5656bcd5c66c38918d1b354058c7668bd668ab2c514fb33e2732e244b485212e4545a8130dde542613d76263fad39fa64b69af4b31fa8dc32a1bb168c1b471fc39aeed379d08accbf4ccd5987ee35afcb7cf71e5407bb5d7b0d3764cdc4cbfd0ef9c8de9b70ec7d4d1bc68bfd6d3ac8da20d69afbdc55debe9d78cf46b3ecdda6abf16d398e816493bd29a16545b13aaad35a9ed907986683d348b8dd4664e1bd2ac7ec8d578f27a354ba75d9f54123c9a956214cc6e7894547e55e6ad52c34995215c0d19cfb7a062243087612675eba7aaacc361f8d7a5e540bba35a08e8fe37594808d006ea712c1cb91fd2e62dc7fd762fedf9eff7beaab7ebb12fbfd979ddbfd749ee87f42cdd227d93b89786a9d4f787d0f87b02d215a66c2ca5a0ac9d807273bb388eefc06194d29ddba57eb3fa05aa777365da8f30a10eb4ffb94f8fc394d8c9c3ee2e0b718a42ac3bc482a1fa51ad05254be92e63b0a179decc0b5615818113d963a4bd497c97317cc1210e458acbda8d6af74f4d02411ab87e2e93c524f4934545cd8add8f14265dbb2f712024cd829dfbb4d7ded3238d88acd0aef8b3d0af4a45a943d5467616c4ea47bd055b8bff6e3c9733a9341efe8558e09bbbbbbbbbbbd31936be9918773fda7717e3de7f0439e77affab98982f06154509724e9691d9e16c66880546acd46f1e217b21adf7bfbab19aad562d53428bf4fbd304a5d421c17d01ce1b2fc06f872e042661e63131c6a89148a44ece27fd3649f035498a51933142cf4628077f1341841da7c2b62f2c2dfe9df1729b736addddddddddad39f736391aa671f8a0a6f96dcc46b3fa6fb4ec7e187632daf31677dec9f34edb81ca20b24e0b2bab5b773a4cc3d6b4285fddfe1e63e4a1c381d8f685639c18e68c04e9bf157f1207372214bef6fe3b9a159f48dd6f26ced1105ffb4d4a0975f0298244c28d3bc4b3a4fa7310cf58082f69d60e95404a65990e0b25b1c97886503f8ee20f9ba337374aceee5315e5d0b12302ec227d0e14762c2bc226a58c3272eb62d7ba8aba9bd66bba30fd0be32d9ab57163bdfef5bcfe6f866a82b0f38153f947d364907fe7a4eb2fe3a4315d465fd9b8e1eeee5add2116ecd48fd2607bcd5b08a2f1678d8f9569b7b8557afe778d534df843fac8fdc08691fcbcced1a00db4b924e752d06f561a2d31ccea5f43f5dfd7cecab0772d7356b2f17aeedccd0bfdf40395d3098820836dbd456db48f1d085a24c0aef8ec8add8ec9a5fd0e74e9c4d761ba7811e0da930d74699d0e39a45cf1db05fb193e4d83c073bc39c87d288bca4d38ec2edd852bbe446aadfcfebf78dda2bfbcf25d8728d3b3e056fe54fa8d65c041699cfcc9991ed6c99938da302cdc374c9f7e2b2af528ae0523688b0c03e821ff3fd9b5c4f0d5f45f4daced3fd9798ff3f0f4c0d32c294d2754b732b9d289db1ec5b5a84cb97569dcd6298b408207b27ae2b8080a9505b72e29051502a5b9bace57514d816dfaedbb44fafef7d6cad4e8370388506237c6e9f43554ee26475926e7bd98a88c43f541752909929482928440e99d490487d426e978557e4a941989a45b4d04d4ac68a45b5dd4238774abe51329293a62f1ef4abbf09d8a5af451acf223c754356b13151dcd367591b72251242a5ae68528c932cc9a7a9a4efdaca9eeab61c75b134ac3f4a3ba9d29b5dfd4ed6cddf73a5efd7cc7a77e32284802c91e1989bc259114c5236fc9210dd3afa4f693888ef470549ba88a4954fb99a5ca2a9a058b2aabf0152baaac02aeac545945a4b565153295aab20a0d85aab20aca44cd3a9d2afc950a63f74df7190f5a98fe49e3cc8e07751f0cea9cc777da6bd82cc4091595df6bc0f561a147eef0c09f64c10fb55d9f3c41ed5f8ee1ffc1fac91dd831800825d6dbca1d038878b22eb67e1576241e16b2395593facb789ed13662b17ed15e6bbff296d6b5b377f4080a1ffc39bb38a78c134e28e3dc2122ae503f954fd103d990ca42dd1e28517a492ad459e811f5eea7c5668bdc0d21882f1f477bd9b54840fefcd9dda075d493b4b8f85413bbe930bc0e23a720eb32717254bb06af18d76664f8f3f8e13fc3574cd0b894eaafc9f9c29bdb5d8f63f7d29ecf8e7ef5934b7bde7502b1ca089077200c2a43a0c10d9224f14310460401849f811042087d12004e213ab59f26210191daaa8d71754821dc2185d0ce922b104981135c90635021dc2a9c31ba957f798842eddad0888d4f3268b5ff467b1b5b62c49163d777e8d808bd6619e6dad8d4dd8cf6f67fe4ca617665b4b7eb35eb639af5758300c2649f2456667b2fda6b696be3c6cc85868a10d5fe287c0d1531aadf1ad53e0d9980a7ca086966348b61151209a276371ac60635b537bf19ef7eb4ef97d12cee62da6bad7b69af9f9fbff6576108515540dda1214675b53ff2b510ecbceb64a375900aeab42e932746a81fad0bb37c82a1f2c7f23dc4b6cdb241d61e747f0bb0cdf473e7307f34353c90318987590a4bd342ee0421ef8aef523638a7a0dfcabc480a0dc76876116532594dcdaac65b74ca3cd9dc029f57fb9deb329c2b68a1eed00f4afcba686cfc57f8c9a8ecfa865d8cec7e227ca1f91bcd42dda120a690624e05d0d20f11f1ea9f3ee7ecf9debda826baa59304967eb6f9cbcdbd31d5f9eeeed3bfb9393752e95da77f6bce4bb38ba5efb15fdae24ef872a5c3ee67433da142d5a00ca5dfc9f5803fbb954fe35c7df88da996beb98f6b9161f6e856722d31f4cfef6e5b64983d66b7754b5bd7327f5db061785be6c33a83d0baefb9c9992809689e8c9208e10638e079bd5c5aaafa338df9c14865f2a408a7c2be10b67dd134212632a66952489b5248258564ac594b4dedcdad7e33a0ed83181ca95e5d1fc07eeae60ed34ec0eba81fd2d33429c8019b840a657c4d0aed04543eb7741fd7cf79ea541151795241a1b24f357c57e683a79a524d89f4357e4add0fa9dbff266cee87f42dd24b260dc3735dfcd43b29d4e2054c926951faa7fc1cd7f456901c57fc7dc9e5b820a0fd7c1bed678793043e8e66135f76385d8b77b0bbc86a6626068a5df0e4185c97511c83e2d46f3f9af6f7e16c2a9b6b32700ae18fda63ffc6a4fdb28b4f56ed975d7cb06af16f4cdc6a482891952f01f797dd0d496ce0dfe0bf23d8f6e5fb56cb3efc1c57cb762d1088ef6f13bfc349b29d8d3f5cf838b16bd95f577cff1c977604fd1e08246a774f86e86e116c9abbbbbbbbbbbbfb9ccddeee3e840d4e8e0d4e0e2331b52dc6e3d635b97591b8756db2bb9b099aee7e19e10bf68e5d4cb11d07bb755fb5351ace0e0f0962d2c3911d0682c9084dcc74aa286b1def6c3ff4e357f763066f699d8e1c1b9b91c91d7ea07fd3ac49a94af59e04e00d128837c08f5d37f7c36eb2229a94dfa32aef553d037717c2df6e5625410cd384e83779d835676c63abfeaf05b49d802b6f3ddc7db8cfb02e103ff86063587baca42ef3528fabf8622557271addcdadda8b696fa5493369d1a8f29f68b8d4ef54c3a5d25207766fe4b2145455daa06fdbb6352f457d394c9bbb17a23e9c6ad2ea761f076af7bf345ab9ed403f3993b3ed7c10aa9f9405d57dedb5cb7d74aeccfed7788b46a8c6123bed6d050010fd5656d32c9b6699dae367e1b669160d4ca177934e5a89e28c1ca316359e113b4dd3a25c2554ee6e6060fad44111dbc15e88ff57d6c131c6f7dd85befced830cea4739b6edb27c77f31f20e7eeda14286f732dd8855ee5d56a40f7238441372c472c2c9dd73d7bccfc42d34d803f342a14fede986e4c5508cfff957554f9ab69dd43ce7bf82fedf943cefb11ebfe57fe98f7983c49c284ab25ecc274cfbd21a19451465863561f40aafbc0a93ee40310f553f5cb13391a308414f2a86f4429a38d770ec37554ffccd942404185b75bebda08c45b3c8a8e80348b8b34096ff84402fa6d51065686ffc4032d22fa9609407032104dedf93c81462234de077f8dae5b6584db8de2130dd7ea0e0d21055f024cc6b803ba0f5e082b8e1cbff90651ddedcac0083d76daa8e8d2669a3149223e2efafbabe5231cc441cde2a2294c18c604070911cda4f04b09d3f8d98d53d112e73d899b59ad6cd008e1a861207f06fa7ed4061219094eede70f4206ea8e8d681deff4f430631dfed66867fd92adf16cfbfbb2c578929999999999b9b7db956197fd1f6edae329e7d4542a1795b780b00f7a9a2c4128773f24ef76e8c8e1793764503fea55864a68e99f4f001f18c45eae96ee6ab4273d7cbd5c3bdae30d080e9012d6d917738433fc2071d3612673118f9b1c38bc353b1b36ed31ff0c218ea8dfaaf20b39111b60a93b04844efd1e87c3708b949199999999996584368cc3e7a4d479467b4ce32dad5bad8464708c0f5130716285fa4d1f2a200f52138280260afc4045290737e8b6113b828452c6eeb7718d52e7f7246cfba252a95eac6646b3d2d374a99bf35455cfc2b62ea0aaaa8571aad246076aa77ea89dcae198ad1a4e813eec66a46e45e794ec5246ce2483c6841a65a7636580e83a4cacdcb792dc57a375f366556347677dd1de6bfac02acffd09dfe6238f1b3ef26306d6a48e667dab1dcd9a51d49f9d77cdeea66198477bfc16a0a6f6981fc7ecee860d6fcd6e66c68abf3285e160d33a9a26f46b93214450bf9d4d95b7304e35ce68af6d74343532d95482ce27bdd6f139973e556f65fa4d3ca0b2d6d4d87d35dfea63f6ff6aeacdaa4295ec48c46a79a094ae98876d5f3e0a27531b5b0d5cf9dd19f6b1125a4443fec643792c0caf8d43eda5f2ed6ce5db285af8732a771f77346cacb292f66275757477d1b62f4468fff2f3121dde621723a9935b1d3bf8039b85a8e40d5635510d118d00004010005314002020100a86c3a2c1683ca20892bc0714000d8d9a4272529648a320c861140621440c0006100000002020024233640300e463e6217d80f3c7bb5527b5a7022277ac51c59525b8a42ec6e7c7f99c086310148ee162527e736bdd8c2fec253d939a04ea0ad6740a23e7c275762383c929aba2d7334ece11a9d1992a69f3eeeb260b4ead1638a626790b3b15e42e6fe59818ee806779ba42e25ba481a03ff86969ce23c6d5138a802ea2152bb56f60e98b260bdf328ad56314853ca24ad27ae537b4d02fcef9def40258987e184e666b4813025beac75181d139191df46ae13db9ecabd7d108baaff1189ab50c4e7f8f9e77362fbf9869ccccfd2d459ee71a4dc4eec5b31dfaee12b5e4a7a81e0379b1b1fe5e2704e2331da1e8166e445c8ee5ec3b0c02786d9190502714c1533700799052a63efa490d2e0b5649979f829098e87c8695e4b522dedd1b7d4ceed2db97fc43fe2d4c1971748d846bc9b16e115a97bea7806b64f5af450111afb7824ed27e9477dc7573dcdff571260298204ec2451f4ed0c2f2b5a348323591039ae4b5b73ce5522640d6140aa07d49aa50b0c148ab9196f90c478420bfb13b7cdf1d21935fefdf45ec1e39d0d99662a75580aa639d8781b8a3b09c0954124f57e7084f10f9944dfeab1378a2ed7325c0832987e1d55347396436f16eb578a9020e24a922aa7b1e66fa68e7ca399f2b570cf5ab8c2864a522532ca5a9dfa313e97bfc886244269db3cb87ca70eaf8af423bcaccd9c81201aba09fd794eb05ee878c3f5f595097a5a588a54daf21220e40ce84399111afe586ef933c0a684be82c319f33190aeb1f690e054254f67728cfee5370b1b395f8242400b8bd7ca1d1bea77b715e99001c40b49f33fe048554fde12e68013996a2a6a37ce6e59db3e61a8ddafa927a45207837330694970d213afb617c03cd1597fb13e9c32380563197f78f90835a7e2dddf29cb5768e468048df3772d79f7511e8a57e395a8fddb3f8cda6ae8a6b4d772dc15b247726663f0d71f7b9c0dd409703a3c93e9b3fac2b81bca446af55a811c41961551d962383b24472e54724aa5815a8c48403a1c2fd0d8633c6d6e51b856f3580d98c6d8f5034780789fdc67535c1ecc4b3032dfa48d7b8aa414a37bf697a61e0d83cddfb05a1d480291b897dd188564f3eb02d7dbc54981a1755042e166d2d2b21cb946f2a31642b2891a819a28858b63ba0b83a758e153cc66f7d5e354135fe9a2e5e2e38fbbaf503c30f058fc8f26a1b0fe970b68a661bcdab9f993655024730e57542cd1f15483cb80de6525d4d4018609107779e23efaa932851287180e074ff0a9fe6eaa9445b01d7a747e45fbccfb31a56e505f44db9606bc16679818560c484c9dc0059516835372dff92301b2d1126b2ff47b0c370162f1351395a22cd22d81f1833449e7c812d4cf51eb167199a0440567e63477dd5ee57a4b4090e8fdf12fb282c3b846c3f0a532f544da0aa17c4826039cc48dc0b04f201ccc634f585bb9a11a75925411a27e31edfd389cd6ae2a4992753e39c0a5bd44a8ae7626b0d9855928d995f8b70a1f614722fa39e5814bb6f064f11426b94cd2bedc528bbd56b511448fc733518c0db8b9a063c24628fab478f73a0fa65b938af81156817a4a4ee551eb1133953a4f782e5a2d9f233630fd4cb6bfc72e9f794ab43aa21fc05e0d945a87f5eb9ee0599dbca3dddd5545fb9684b5dc48067c8f2ef02504cb82a8e1049707a4e04515b4f67e5343c294daa86f2e2e841044fd2aac415e88572818747f81983de98477f3618b65b63c9435aa94ac052aa464e91ff4938bd28372634c08651206d89249e7a85bfe9460975e8dedc8f7fe7c14fefde84ca785fe10132c3009afadb64567d5f5faffa86fc311270db4c34560a9edfc6a6b33759e25d5b67d071aa48fae56fff5f7121000f15caa93c3a063ac2de42555f6f0885a255e9de0d7ef285fd6743fc9ec6eec50e7350430101cbf5e12202b5a91e31003323a025cb9cad6dbb18fc95b7c77dc9f7395662074783df2430b3e9a1704b33b3a79341ce2f525f92113332039dac694b1ba064715d70d117e14489791031710519978671021146276fc945bd408b88b9f0a5c226fd0d7ec532196a1c90bd2096b4a331fb6259a6c65fd70290bf6d9469106e5a32d1cc1563ced958dc63cf02cb3dc0bcc8509fe54d86792aa786c9a5f011fa416c23db2adc00f76865915756548cf9a623ced4da86ea5c8ef6e3f368a2ff009dc17169bcb7777c87bb24219841f93c6270fbe089796aca534b354dc4226ed7955b7293830f8d9189c12054a44618c1a8afaed1b17620383a35c13cc897e0c8473612e841a9313fb40e41b54f91368bcc7bb4303102eec8a6b1a925ad30505169445028b406de4a942e3e56c55984f23b044886e1a32fc1fce98e03778ef34cf112029a356f030b6f49c1eaa245920cfd46d877a0acebc37178477f49fbfb96b51ecb29776e13bc1565bc5cdf68798d4c8f0a994d2c325ccb88fa052edc6c1542b2727e047583b1a017c86b1fc9c19eb3bf165b4bbf1f8a4bfd67e0f1f31b19c4b751512babc938885bf3ef122fc6c42e46dd9b8ab60a78b43862a72c77aef00b449643b488b791575176388a9286f005af971a8e0be30e24c2d095e81b6c493bc76897e890c983d1b2e870dfdb2c192b93a44e37a775f3838aec913b05f0d1f601d7671c6fcf45f8c93c266869e9794213ea95569cca53a53b11001903a243292a13a3942355a05f88d15572294fc337104f9483efd02efbaf43e5b7bbabefa1d9a7276558bee3b8133fcc9597a490cf50a5ef6e9e762deda041ef135c14328ae38a9ba8bedaf958b824777701b2bbeec774477ad664a031f6dd877c701c170c9b7742d9e613a178bd429e465d742561d43284a122edf6bfebdfffa1e77b76b68860d8a82602518c90cf802906f7485d25b915a79e106344ed080a613e1a078c61bcb69b054b9926ee43d4e56ff99a407e80d50d5a58f0e016b01bb818bf1cddb53123ff14b94f6935543c13a036dc301218797984024a0ee6203607b57799bb874a9e203384e3871358fb11308a23fc27ea15b8bac638f5722314031bdb5e954bbb72bb40028f77862f230d4a56a96d8dcbdc483d4d79d6a556bc80cb652e90b862f8b003a33af11b356f98722292fc86d6abc06c861e7b7d6f9a84ed878ec62fc837c12e7726bf21ae180c294b557603d269014f4020097c928d89c82285ef56a97aca4a18bb4d0806a3e0047c8fedc677e625846177b1a1b3aaa40e2cc0f52c34137a684248c883ea2f72f6b3408af34270349ecdeb02e5fb95d7f226d7a84c88409f069ba5db7be64719657cf0ef6e1444df3f7715e707b01ffc86d00000ec69d60b972c2c5c025203d559d8525821f7d2679843f283db26550119242fb61dc9853bff88571f24a3154092917d975f4a083083049dd61a611e170618d76a50d024d33d799bb92880a9560e2eff722e676e1c92acf48c4f6fef4cdd5fed7ced0cee311e521a720976d3939aa93a4cd16d32fad3463c8d7ac5de1e05f27fd3b1027d6a585b19d0d0d30db68670cc4d6d0dafa7989d2ba294542316ec21169a69f9e3ee3f3e0c91614cabff6eb8f183418ed40653d4b04422f6244a9afbff5ba5f6e109f3a137280f067f0ceb4c92fcc5b80670e902268bca3eccff6b7dbb3ca3f331ad98c35d7d12ede83b2b3cd50c1216d59773a8a68a1901750b20ffd87a85a6ad938aba98f7c68b300d17a1f2f6fbbcf966f78e7b1d4b0e644ce2c88adc80f2311d4467d9c5fce8948cd24ceff3a42080d350a6e89afafcaade2ed5554603e417a65dcd68525b473b45855111f84bac1f4b550db6ec0ec54e17d68e666621c313bf5d6e367fdc6aa0ceb2808c273a9be71c75dcc915200c7b7ce67a2f079341e88c94094869817a936933eaaf07b30f7dc076fb4797911d549e487d8c5b452ddb1f1c5f8fcb577034fcce4d74b9561fb2850c19f2a90b5cfe7b10edfbf86c6378cc3fc021ebcc089439b774758cf00ea8ba5d8f21493693f390713d6e1ef33f11b0ce36a068945a688e8ee70228706e9b37076808ea2ff4127289cd766f938a99ddc747eb5f6cc9bcd7da69d9e48184e8a3018ca3988aaf6849830f4bd21155cd0aa369ec880c6bcb03e4ceb6c08c46ff467bf6eff8380eac031c6b4d79d941a045c1c69f1817d938b2f3ff5c29d05c4595844d7af9a9e7596a16f68c62484f0bc337414f7a2c8f9005f01024614d2ba9ff957611ccaa18cc560a52f0e780722a3eb9d5aa06f779686a3d0e02dd859f64e81d772e78f685d60e8934c07c35ed390bdc27d10f498859ffbe16c291b62d16931203987a20583347f243f711e2698fe76cc3a20e48b6fc1cf7cdc3d71249a6976672df70303844ff4e15b9fb978521a14427ac7fb8f74b8dd308ee9c1c79d417103637b3dc4b7acbfe201a15a8d442123cb616752971019ca23bbbff385dedb8a838bffd93595ce16cdd2dce2fd61cbf0efac0539a2064147b9a41b57a75e5115603b108ed28d5f2d1a90f249624ddba0e0880fee6269fae6c95bba2de447bab0daa88dd202a43bc04d1db423bbfb7f413ef14b43ec575fb6051c881e0707d8952983792cbbb9c5432388ea46d69e3bb0b234cdb02b000ed2ed29df1ce98fb70af96eee3a4dcd6a9e6e86ae5a5fc1582767bcace724b59206ec7497005f833f45b161a305216c26915e4709e13a6e72010a29efaf0cc442a22b5b88e83dfce6814eb6b19152b181b09ac1e77878956a253ca00026e5ac256a75076fe3e15ddb0172545dcd420916e600ee01a0557e680f6d54927fb92f0620a5a8a3536d1877feecaffbe0c44015577ee3a0e3e8768ab039a8421d3ff2f5866114bc52b27b926ddd82fb2d8ff7f881ac10359a8293c8dce198f7f4ba4a23d80c0f18676092347477978382293cefb0bcb8b69b639a3834f0c5d0db87b324e28a8909ea291e0f70705c3a67f225afe924e57640d431feb0673cf32dd201ca04f7dd1a9e612b71710464ab209601fb86867f80da214b2bc39a0c2af7d894cda370886893a56125aa907a3d87d53c29f0004d09bd1f94d2dceffae77f4509c2a0f8413afb1c2c903cc3582027ea0913c037439c93bda7650edbc8f9d6e86416b7872373aa0e9500c05ed49d4ba0ab66058010f99836607da00e7b8cf430e2752090b1497072590481890e7a914186a3e625210638cac9317c18838e20f4e9ae20bb264b837a0cd35f9ac3c5c682f9e4352b87c1a32c078578c1e907dfc216759d5c3900d21220074543bb88706c75e4f4a651ca71c0d074e29142ac5b26482a86ec86c6e8c3560695321f470e119052f0d191901956081a737492dfcd973b12a6cb53ee7a89881e8a601600243bba16f9a737ee2523ac728d35815e41e112390169a1dcecc482850c943b4258d3cd9cc76e6d9280b7919cf77c1522c2632b6d58acf852a82cd6ac1b729e15e5ca658517d0affa8f3b2584f99c80ab3c3704380a3bcc9941221b224ff3f211fc060c2eb62f01b19e6f1be54f327f3305a83cf6180c29585ebdb93466a4fb2f39a91d4b8255565e9b2564fc3994c10f6f20417c51e45b56b48a9cc35c131324e2995496e290ba7c93e160d4bfa77df95357607b863a26ca51ee93b75e449368c452e0068361f2b0a90b506cea386b100614a76e3f636a65d5ed935f955ff2654b0fe30216f92c569610b10277b544d2bf1741edf3dab310079690c7471c00496059ac68811f51391fb9460f60ce27f3f8f2a1ab8301464344c733ffaff5597ea7b7e9f518b17b7c9580ebcb56684a48c43801c66fe8601d45439952ab3ccb0b9f4d4d19d94eb0d06b1e3767206b374014be7abe10da8828c6d87d3b71414bc49f74284c3160d393982d233d1b788e44f132723bf9091e397e960cbda1471747964ba7aee721a85340bdd7137f152d55dc3e06d84910dcc90247b20de88bf89473bb009ba3a989822812b8b608db9e3e4c8a749dfeed68c8b72b96da5559af2f2c5c858a8a0e42109774629dd30cd66e010497192eebd4f9c3f004be91329000fd95e83573a71d9ef55ce0db17b1a82e07c81156eb5277a41627b97a5afc3fbff9d4cb43c968450fe702919e1a89c44738fa487a3ce6f8289a9b50605aecc8ac5e6ac67d5fd73ee475616bf2c29426f261558813af7183a0ca8e84d90ca654f3b964f15ee79349edaa7860793967bb8392890ce6b3916669714b73979db2867d99de6aa70688990bba6c39e9fc003c74ea647268d5f0ab57e59fbdde87da0dee210eda6ef8e9f5324a63194e00e9ea5b63793e93608b76c685f584b2d998d0462ef413c71a4381811fb45ea542453ddd996835de867522d46aad370bbf4976aaccaf9cf86a5c47dc3eaec90991b3efbb66610a49a300032d554162984c3909b24b375285934269bd43a53be55f4156759d9c5f9793d37a0e6ad4ef9d1fb0e2a339165c88ccf50842a9d939da9bd6c0596a3c8609b3b350bdd33404edcc084aeae677ec07cb868658a110e5b5f50da865da6bcf043291473edb0640906c6c175caea4ec17e0e1dc1562d35b683008168771c0b0f42ff9b8d12044086249ba8bf516acd62623179ca11732a9d69013907441d7f706a3b7ceb5146d42b8e6267c6763db0fd9f9adfb916487531344995df3af3d000d4a75734ad52145dc7005206a4a3bebdb98e861c61dc1d91f4ef9aba2392fdf0ddf8ce8de1f8b350c86bbcbc9800cfe5887a9526b10bf66906bbde028e4c3d4abbf94d7572ac6401a591a11f21f5ae32f4c5736c8659e60e5a4f941c945220557bee07c9c3fa002168ea8a68c82ba3ae155917445d5564404a6cff083bf645677addf58817822a30df477621c376aaa960a17992a77d03a6f5658eb0760d53a9235e299d6b48251344c704cdf6592ab6557c8eb3d37fd6b436038f85fda9e80a303550e4e509988aed99d9c9d0a6f6e4f298790ba70dac228a3a805037b841b26256e1f5e4284670328b9327f0c5dbb2a49a74655d2c1bea461a8cb0c791756a40ab4d803400ad0f4d623d94d38ec2833d747cbc3765b70725f6386dcf8c2a0c1d5ef75785f7cee7cd7d3f03ae633ccfafe1709b40f3f3b4443b5011221aa4dd86a4b42ff63eb5da70ff6710981299ce16088f878dbb31a746ad0c5efb2689f695a181e4906ddc0c68d504285f53b78c0e242afd70e08d987cbe8421aa7e7b69fdfc47107dbc9227e3fae5a9931ebe1847f3a36a125554643fccfb640228261b369d023bc24b7fcbbf3f588ff094a795f65cf40a65fe29f23346bd66e214a5bf252bad94609845b23f27e1e1b8f82ecc99e880a3e698783b9ee54311a381574408fcde7d16d06753f3d27e6601029e8fbddf571f9a5452f28985ead1aae7accdef31631d9d8e78dcd8f7cab26b54ec139fa477a1f101622aa3ff80cc42c199547522356b391dcc433a2586f6bbe93e5bd2398ae45acf56ca0c4af07349ff8e16e016e3997fad5fa246d04bb2c7c9f16d78d018340a9876a40ef620edcdd2000f00947362940970eef7dab6eeb452b5139e2792c48e2a830058525e158d8d6af581cf4614112498a5f83f16041d80a1e71160e500089118230604301bb8452c951f3478d93185718a44a79d873e1dcbba73e8e763e1d01324002d783e7ab73e5e65e5f50b69ecc4a5af19549588fce8bb65f8dd26b9083718332110a7b16baa1d54d147e7dd9221d4b2b8a7450f27a80158812ba258db5771ea7c164d251fdbad48b7865d384ca2b5fb31a09f8f53fd5be0097d145bd848e3d2d673e0904de1a11b99347870d3cc25f6ae2c90ee041d1bb6374ccbbac102ef9c2296ccbde6daa0b45a4c6040110252df1331463b845c4c138847539c5f168c47f1592c483476e780c82e1421356cfed60db40684ab8c61cc75d3ab098dadf0fefb0c6ad5d51d42cc3e8167cec152f1613aeeca904d299f79e7ca2b329c9e6726229ed7fd55afcb2827f9aab2b9fa3389893ca3a91ac1f96369e9cdd207687bfe96e2847600099568dac8a07c4dad707bb8e48c37e28bcb9e4bd4ffc45c31681ed00c3393a4b63865bb411c4cfbc869c298f16a9c62d3f60a660af91b84156c81b2b2d3ec7972a930ec38488c863d90649c60398ddf4d83cb6c8f79626ede3c859eeab0a04c923cb260ea9c6db605cfcc28dfc3fd94b29e2e7d95ef60068723e08c17b57aa6d3a82e0db2fec56db3e1ae9ee0707809be840d3c9d713739ea976630820ff80754b308bd73d6d35f9ca2288b93cf728aecef1bad474693b72643dd724dc48017fa877e2b21754f0b526060bf61a7cd3008c2a832452c714f152c3733ae96c44290044b0cd30f991095d0fd1a6d8369fe7a7d4ee2c65ade0c19a7abc7991ac843f1ad7dc66902e2626f6411f321b8397817fa199580a5d6153e48de1635fc60387c1c90f534fca721445c80f2cb720fdf62e6ca858fea1d07bd419b28edf11628600bc124f5916e35410c69fa5c5836aeb66fc266d0f1d90429cbe12360300c859995f22b0d7cda1b0eaf02d4e1c6ba03739baa0117e3ba0e3683d841e7ea4354761afa47761901536af13dc29b316b4d700f8d4304715fe6a2ded6a3fd77b31454034ac484397a6710a164a2633b37bcd4b31913d84441f48a3e72ae2014995b846548ce4d59e6175bff00eaa689744a30130a10b66ee0fc8a9e6df06db4a66dbd4fec2b6bb746d8c1512691177249d0a3f01ce360c341ea0fa9c41c5a44a9cb3879e8e363c397f097225a41875d6b0406519816634d098062eb9177c64451d107a3c33acea37eee65d9a49acd72dd75aa69546e73f2bfe5e767647c5b5dbdf18cabeb3ae7babaceb1b64b2fcb99c0fcf637bf766e554a173d959cb46abf37527556f5f8f3b350765f87cde407da6472591923bb558714f7c3d7e867c59582bf1dc0cf28573c80f4b8fe8d1f7b365f8bac257f9d5dc5e86fd0d52e3b76d732dcbd86a12f3cb8540cb72000000d7adf2db8cbf2ed5a7accaea536d8df63d0a72ddc27ece8d719b9722cb86b62a0dedf59d0f61ed5cb23cf28a00499f77d2411b15f7d0b39576c20ef6491098b41cd7ee4701f52e8528caa98d2949ba036ffb030d07d3860305bde8eb245258d42a93ab5d7bda3ec702a0b408985b9fcced548b2e930b1d25ba27ba9606889ef10f5893620995ad0b9eed5e4258eeecd8285f47a43df300737748445b490d74710b62db2b7ddf93bedfcd394e137c283e294bcc9869e0ae314bf872cecffe7d557bce94251499a0217318401c6c31299bba0d0d9d1e5e8c7d76a0f2990605c581e569a4181bf7f1ac7b7fa332b5dad04fa898cb67da89c489394836ae595a3c381b204e626683556918cf52093b8795199c3f144d3d4fd01899243458e62d6f009343ccc77b6dc541f7ceb17aa9aaec71c616f9dfe382a510c23701dd5c420353d76bb410427e4f8b38d4c070da4279b68349e4e643625b59fddcfaa3d83b82b9cbfc874ca16382e306ea1f8007b0d58d796762681b067e966bf37fb5b3a75773227fb4ca641759585209243b2267a40ea1ae6d6024dcce291149a59d806251ce4f5407448eab6b1c37b579b5980b6b69da9083867aeae7f52cb15f986a1a717ba35316c3b1214de46c55562398b2e72ac52c51a0b1dd9cb6ca3b320a2f3a95bcdd140770707a53e04d883a5685f944fd7293c1a0cc8a9b16b088461d7301d973ca05a879b42010e12ba853a6e24a982e14206334f298ff77ad233130d765221a0893f44708a27bde763f6837974273d6f2c353d115b6c539b809c54d1ab3473de4aced8ec5b370a1eb88a46c01d602319d4b6162f973663b39fa962a357828f9bf4d01111ff6824d589bfa15b519b2345914efa4dd2e7a845b24f719cdcf88bc5d98b1101ffe77284ba6e72b4e8a25492a573fff8689477bc1244a3eb89819093e276543330f129e35fefc5d88f63edbcd2c8a3620d54696ed07783ecf4d5189706f7560d3347f858a70a43b3660f4353258bdcd12f3ec5c1b2f71637e966e4c88813ba6f75df816010b5f04240eea17388380f63f7d473232dd855dd541f4568213cb6964d464dbe0922baf859d2c3db7358ade9e0643926a8a720a6035238ceda3c1866d8419c4a993ca543ac8ee71f3726ee9f3e06ebb51ea1ba6cfdb4d88168bf834682c5d8370a5756b26ee07bddf3a111d7ff4e3b3c0490d6ce2e3cd9ec9fcc787aa6fe411b1bb7c16bbb3f589b13bcb6f19bc854c7831800a77d62dde8941a5872b9a28e6341178166733fab104147cc06e8bbef43b1ce89050c200b6b9473e2c87af9e0e1c50c48bfaa5567938e7f4ac1a1b0653dd9a356468f45c6eb70600af3fbb0ecba2814d958432157b378549f19cda6f3e63b4802a397d19dcd101efca71145c4cb8b570b8024a87e49aea0b54b21e6f9521a236c10c03f42583b1d22d9710a98ce7488d271e68b081bc1f3eaf039d1a49a014ad6610a3ba747c3bb81533c3d35b6eabca10a96ddd7d837a62fdf9e3ec4c6a9321ff886d14f44d6dc17e1511c11aa3559dc981dcc13cdf7c4149fb39ca13c91049c6db5d0dded2eb9559de717f6bc960768c13e620d940cb8d2cb269ddcbc488bb3a44194b89f2e2a40034747da96f2a82370ce3f232adf652e641c99fd5ddf41d5ed0c9c4074daa1e35d119e0748fea1773a718ab38bcfebbb9c6f1c6dccf2c464c0bfc258774086c69597137d25d96710eafc21ccd05384a35242e652537016b84445665ccb7a51355a6fd030d34366c8050b31bb986adc8d8023caf453da93d608253384bbb9b1ca08d0744395056e8ba81f8b48134b2049b8c858380061a993b03eebdc40461005b1f611dc02021ec313daf350242a60a557bdd9a668a0e4843903ccd2bc07fed9771d2560f09e00c0cad32725a0851238b2435e468e26ecc5f4008d4580cb3716bfcbcdc35e526491a6912f41c2ab48b2b22553fb92e70059c741c9cd57b91f299cec08a3fe6847af4f170ce678335fd45fb872244e4aa04ebe8fab219ba81f2695a3157bce7b7f221edc3234414c1f01bd9c61b4d3e695b835b296e33cb65dd0c22b83e20c9f90e6c794864f7a4b8a5fd2482acc97f962a9a8877c74ffa8bfc1ce410fb3b161a3b565460cdc23f514010458b0d931c2d42d7cf8dbd74aa0eb27a11d832c9a15b72c1af4b00a50002ca62656ccd4c4a03ecd0beed457b8ca94c15d87135b66906ef84c1989ef782e251a280acb697c7aacd748ba0b57694df639131b2126a259b80a18a2a4283c1bee38ce14be16f13f23160d67e50141e5b3893a496b708f00cdd66083ee766970a3e5ab31f5d1c6c850589f83c16d758e37c16475d823a28ef617e577159275f5f85b9b4f98caf2afd20f6323a70f600279d9ee2e0161dc6ee801557249d8dc62a063df22fa3daf8a0f9d9929cff009a50dfbce7f5b60ace96d4220d1790beab9f3fe695f928384709fbab12517cdea6c51e6094dfec506454adf4dbc4d0189826db5f2fc4d2144b2bd01a096e109fb9759ceb02aa54ca116a7898acd997b6550b6fb3d620e6123b9a6ab8c76ea43cf1c2311679531028efce0be71515b70cb3a95bb693dd3f8881b38b2cf2d484f82bbc605d5994bbdf4247162b1d258294bd90d0841ad81877c93fe5d7864ae1424b480d2672530347b477c88d1a4061d529998409ad0665327b75c92293b93c327a705971d4bf7d07798904127246e3d1a4ce2084286f932d9e770ddc27be0e11cf5b7b16a67a86dcd0f47f6ad9967020d59743055731761ed55af5ec57138a9a6379fae22994845a11d2c06ff1783f3142d9d3db4a74a165ce904cfd919709162585033ae941c5b61da5872f12a68478602a563c3a1d47ca418431a501bb150c256b80974d8b5fa3edc0982d12f69f076823754983017fa66d0278b7ba5884a3b61b142c22e5aef0c53ffbd9507892fa6b4fa7c9d2878e759d21ed177c121ce320c32aa91f0edbd7408fa3adf1fcd7aad4ca64be4650404f0bb361a0e3c4ae1be0c609073a34513ac453488c1dab9ff7f4438fc9f4c72aea018141ee81fb46162118bc5d8bf3af504c0547ad17580189a9256fa4bf95a9d2c381c6c987a340cf25fe9b6d9257f7f04d3c2eb06027f0975036bb2c116312700fad2f3a88d00eaabc6dd13df7d15d1a6fa96baa722a6ca966df4f4615357627295f7e0d1751a375774d199688e4f6c832569b0e1c12ebf2024af7cc1f19ea876ff0ca56d08565fbd4663119730bf0cbf87deb3ee905cd40dd04fe85eda0868f50b35028abd9b6d8bdccf6caff8e4c972dc0ccf1313bfb6f54b5ea1afdd1a15489e04b4f898ea2a7e621c05a1ad3a1a124d2787568b4e4099adbea8a3cc2049268f8bd954e0c00710026bc51b1de9d5666a3e5f9de0406d1ac437165db9cc9da68f2df223a7b31780b4375d277176ef4198eee896ce3dad685e50dc6e5ef0622c0d164ab388de799208a98cf0c2f882ec619f748b58f0c8335bd76578e7e7b30b54526e1a20619d2c1b539ccde122d77a5c4782067091cbf6af98d03242d580d23d9273a8d3bdfedbe2fc7cb1268c7443a9c210588730652ae731ecbe2d05c9b7e0143e505b07315d5cb30e4ceb5816f7198de3dc808458cbd1732bb85ba78bc00acb50945a0791c11377013cd1e72c3c3173170799f9b2d32ecd8c7823fa5b421826a4b8fc3622b0c15c5a6d6a113d284d7f6d1327ab3bdfcdd53caed669643a93c98859a1cbee7d2458753d5518e67a046a7dd22cd43ab8332430e42002c1d28562ad8ae644cd6f8e1d68004b85c531abd7a28fa30047e857c210ef1907d32f6ed0844044b831cb38782b7057b4e676086d3e89730dd01f37543c988919efa30abcb4a3b968646d16df1016d8997381224962e527a499ae7aef218bae79d5135efb9517726559e7288446f44e05ec05d8fd25455904685d023dab3b174569e63e70d4263ec8d9468f59749b2c16f2fde6a7ba220b163eca4d269a9359f56cdd3cc3a4b0437edfe52aef55726be9de50d6ba6601c60e84efd85ee8443de379a9c24b04dc29078feb291be7e8e79c8dcb661fab1ddae8a30e226add260820b73bad1da222e240027d4ae105015400ad6981ab5cff43b4ac2c8fdffe1acd99d5c51225deb3f0e18ac953b3ac94ac74d0bed375a530d73574fde6b376b38c4c68e8910a2637a6dcafa4bcab54f17d651e80d5fbc64d7b96e22f017a7f6e91500895615858a8f092b46563defbc472af21a73b9cc1c10b37bda27d23935256bdc0e5a30c0bfebb00900b216c1f9caad3a1988565334bccc5d3b783c63b78e713b7639bec5e743b126ddb7afacc0a3a3124cfae5db3aa59d07234bb655eb380ae15906ba70fd2b9733929d2aac063a5ec979a581caeb6dfa64b31012c2bead22f35491d2bb968787965b279a61acd0a8bbe69bcc0ec4acb1d031cb19dc6ae4238dee5fd7f097238f8b4d4b8208dcc656289117951ff0220f3c4e5c9c43b9fd4e857855c8925eb52604dc943544317180c2b20f8e1a19133f263408a832641b630c4d5cbe83083a0620485d50ac95829ddea184a8f8cdb4c439591a89267838ffac9a12b04fca112af6c64cf67c4776ea2247848579cf0898b9b54ed0c8d1b9f2a2da36fe563826256924aa3f254c9242e8a1af81cc4ef2b61001c5b609e7c4e6fe149596ce4d3889e7de3afd8e257d821be952c038a6ee4ceb36796dec9cec0e9280ecb396687b391ca0518810b750b80932c557ce87f535117ef3b2437c8471d99436519942d85778757e920f234e12b5c7fa24320d485108f9ca64bdec73e982dfdfb7763efd79da7b0499a48e5d1c8287278e2f37f08cb856f1f3b8201dccc01b01d0098c13bd96cc8dbdc950a49c121bf52b12f0853d9137e16b5a302e5a556d94e9ba046904c6a40949bc2289a937fcb08c0d81b816a4276a9f44f5be6ea05f92825b7ed013810e4a3f0f3c3f17fb90520e2712e7877027f7e7205e1fe948b4499875ea118283fc6675f153ad1ac608db622f99f42ad22f33859f2b327ea62f1351f88c689f63b866c191125a1e20fa0728f45c2b1dce4cd640bc36a369e5c4c164a0a1f2fe8e8d2197e666c67ac6ba968e6ad212f1a180242c13a78f22b15c88d7b4392aa1ef849c3a481a63ea53d70c6c51105d0964910f227b097a2e16f35c612f6bcc0b71cc9f6650bb48a906e51dd8418c6a7379d8b6cb69051ffcaa6b78e81da7ed5ced95b78b89d309dc2b1e1eb3f870f52539d3bd757047933d45559188f366395a03655709b61652ce022b31cd438bdc53ad3dde0dfa02b43f48b28618dc220607af736f70a45dd94eac191a08589c4f33208acab537dfb863b9c9220d4503360a8acbae630fa487ea017b86242e02a947a34dcd06faa2b778d573783efd884479e7a0a231c9216c626fea92823a7bcfca3548fe7fc6124190de7c8b1b6a08a1681e07643f9c5ac380eea1892cb1bbb950a86d8af237b1029f33783bfe1c1b4c0059c82a7fd435925785904b1b2545cecf1eace092c48d21e533ec48be348202e07ac8da070d7e938bd770d1df36704092eadf5197d6385e3770f2d33e17156e9167b7a1d24cba16d78f055896c279744e8e50cfac33d8b8ddaca424d9a876222027c4de33f4e8acd5acd8a0e9de9a06424d86553c7f3f1e041243a9621a26ff0968a4aaad23b1d6cf6b0141f25d9c9b8be87fe2a4a1d6b9cb4d9c6205d217a21ec85fed8bac15751c57b6d7ce54daba558813d9811b66d7e25eb76e28dcf8824db652a3d9ac6307dfe0ad0d44ca01db8dc38b45b34ff378918f27b7e7a774c19d071c28dc988c07a45ebd696a9ccf094edd0a83b817e653351b8ad28adac89fea53e99be271cd98c08dd2bbada09b6b85d15f8719341e7f15bcb3cfb2f211166d93aaa4527ad6a6e447eee1840d33b36a3c0333beec81bc7ebc56e1240e27ce896b8b110676ac57520cbaad054b119270767cf4d82f92d3680425f958657619fb51b147c3b43a0d289b452d2ee946d378e8b7ac312e8a1579aa6b6e9b4a0f8045494a27036e2035068d4cbee9d980291912b0a9489e8255a0aa6b79149a0534a67da9bf8ac01332406f9a56a7ba0c8844a2942435badd2ab77b1885a28ccc4c650bfa34b02771107d4d043f333c271621369a5c6dc002650e6c6a222cc12363c7bb0345069a58a83ce418b6e0d0cb5830b2482868293a6efb2a27c41f8189f61ef92e25190746895144effb383435b29f56bdad6a6f7ea4d3b69e3388262f80ca1ecb121c9d2f4326cd0a6d770496944c13f5c0d9786632329b760c01976d961dc854b6caf4875ed82fc7821ffa3cd6e0442aefecfe7808bb0b95543da07de13898b9d0cefc38a6319697aed6c1abd7d3e2e7350ea13bba711f13d357e65d21959e1e7b19177d35270f7c766d4c98a4c00ffdb087df0054cb46a41c5e105d36f7b369449d25210edb7c78776ee41e288a2357e78abf159f47548595a5a0c274e93f67d5588ad22c86b7a620d443c1534293e0b416ed3bb1448f072be7bc077d5a5fcb806540f6698957f2a57eed532f10eb625c8ff17cd604254beed82359bbe9e6c711852ff31a1dfd7969607bac938d192d52d1b912a6ec4afa4f6f30172a6299c1f6f3375505a2397bf0ff5d36b12f51a7bdf891d1748857e82aa9a367cca0d8df77afe91c9cf57932da76b35abd65ff606defa56e381749e54b562e5227dcf2b42a0ffd8253b3153450cecc34791576d1978c0e9e8bba89585140adb2017749135866188345fcee5ac6a121adbe30008d37631b18183cc1b09fc0bed38d7478b417e693f4b82ac4e58ac81db2e614d7b5f4267536adbdbd27e53cdb3bddd7de65055975daa03c630611fc941755ecd59f841ab9514950db63e8576485650174ebdb49c333e826b41b7f6076adebe022ac380dd830bb603ac264808711ff19bb332e2839287934e9be2f2c01c5c686bb149107538c979434203de418ff9ffb0788fb2dc132fc1269a9a53a44519ea9fd84bfd726d058506ca8330237b4cee970842b6062f2778395a040614f0193fba5aaae3528083f71cd311aad0a6026fc767881d52136cb4f9b8834e7f66475b80c97c770d2e5a914206cdc3f9a3507ebcf0b81ff9aa8a8cf7752fee6a8ff3aeeef42f5e4886a042865e1846b0073c8182ec39b187d41381ce74bdd963c20dc481a807f0e6244f8c451040689a973c46ae211f544a7c645d3e05198c99716c2006e6964eff440fd5ecd6d4785f46302e603ea55ee5c4ba2e4ca2cf1a6e38414f047e3321bc365aaac01fe1984062469118ec6c2a078b9fc32a1455baf2035f6315aad07ea7aabc4659c223f14cc0ff33def37e74af8b01c745d19794053b6bb58f2720a01aa2294d76460f5f2761755274337b9f2ab98de7cec39942a09dc1beea43424c79d6ae99a1f1cf9e6957edfeedb9b1362735a2f06c273be962772409077bffba683192e186278c4c41bc6e35dabba768a14fb33ba3ba3ad163a784db90be8adea57c680e2709e5b56e1205b5248ddf60ae28ef2666bc78576fcf868cc175253538e8208fddf246556a2c0963cef186433ad0f8bbf704bfc2415c86af739414b28024381e53a1e341e234d6dee117ff39dae3ac307a842b29f662dda5ccaa1b16ca56fac065f361c909d082c432e97148258e73309dc716bb8735541f614d89c9e7af25b0a3fbb4a8a253941863700270f476773c97d2032801a1f49be06a938fb2ff5a397d98f0efc04f1c8454ab2ab03cd839ad01027644ee95ad0fd5d9393ea59fbfbe055c486969c20732eaf7aaa95a0fa91718c0708828aafb612bce0163091dde82f153b4db34b181e244a0942b7776ed92ad100eb8645e5c011adbbf4329d053fd1a54264176be73b8161b3fe60cd6294d46eef5106a1f418385afe2ad3ae5172a334ac0639c170f3b481b22fc62021ab54feb3d444a25ea6512c27d9276163f5907e917022d87d719ae9010209eeb9460c0d133ed12976fac8945c905c5ffb9729232a33a3ddda34caac7148113a20fdef414859e1299b000d709d49574725328cecad5450e4f78043be4dc84b72f0944aa839cdedbc2dd868bce5ad471941e5eef0bcce8912fcf635bce6942cf171604234d3201f51339af7f29901ded43783c7934a477a1748217cc9354974cc49e913f50af71368a26451724f317d621c46342cfb9345e81b5bb8417d929122a9db718523bb5795f05a8ad306f0b29a873166a4919f3e647dec50a73132e61aae30bad0428b3922ec6bcd2cd5609501d87e8b60994c9ac7b0248a702040dce3589a3161ecb8e1fd6b49c0a21a9685e93d42a958440bae913f9727cca67854f3d8695fa110e4b9b1d72e489538402e925269b60bd41a1fe5de480793ecf75ac65f6c80c5eb33ab8af1a3d9e4a1a4472294842545adf7f440727f9ed49a91619743929f6266e278589447a1e947777ee1f22989d1b6826e01af1fdb1f02bcbe1f28a330379935e4f916abb8b0352bbf0127b2365548a98d9716e42982e04754464c522ffde8699a6e797111faf16588b3e26466e8b3a58c9cb68da5eec84a2d8136bd511bc1e4b496b2443dc08d9163dfdd8ca0f9711526b3fefa09c1845c7d4edc53b9ae54f7de3a4510b900685a412dcf3391db0bbdeedd6c0403e2cd6f0a2ac75d36f1edb555102ce2b8e2dd834bbb3e851f4654c97880873f1fe47bb66ef5d14a246e0f22b3a7f5557b1526ba9978e4482b6da48d1b0ec46747d0408a0b68a53ea3f9c8553cc46b852ff5dc55edf581b6395b07218be0aa52b2efe988bd24120a6debbe41bd04a57018804784d8b8dc2dde692e711bd6a32110a0f074a3ce5d2514be92a968a20c1eebba315ed54a224de0f32b81d1798e951d7836c061b2935836e985a40f1354fc7a7f5c826b0510f90a7d19f4b282554dc8f202f1d35a82ddbfbfb5539de96e25b934ecf850414924770f69fd2467850d47242441ae7b7262f72b809a832be2b212cedb3dd5f3831ed4b443e98175910c1376f29db2fac147cca15a3704ce4e9dc621e1c6af9aac3b56ff5e1abc5e41feaf62445d4f4a2fbe93cd1c7e0e93b931017ede0fdd9c02acfc72d98d9a14b603d960b260ea78164d9858e94fc17a8484993a03b55f4897745e4718dd97f777a3803c17ef1dd98e853e07e552a1f6b1c251d8a0fb66c0ac28a60d9ceb5e993829c5112715f751ec3dc579b5235e3eb686f56311202103538fec3ab5dc36c8845b764430246bfe5fbf79166877168872aca26650185144d17674ff901c1f3e89b76449273092880531c23a5e76ce252574aeeb95eff295f82e10e348fee2958f9cd790d946fe2b4fa39914c370e1e905c07db7e210e205c4cf9ab44cd528105c77882c8eb3eea152da1f30d9d3969d3f976600025df2cca666c64aad1b0abf9003df627b2dc4116ce4d3dd9ccd70d1395617a34083e8bdf1bdfb715d350252976bcb03632e2accfd1838a69e62759ead2b183b71df497e1662bd659233ab8c0c349bcec92db4d9b330282325aeaf0fef8c632b20d144e184e2b0833450d70f5f7279cf2e0e6e1ef1004c5fc7b306a30a5c77546a2408cc0c5ea473746de635e8ce81869adc10d4a2384abf005c72af9cc6f888e1163836c44db23c0ac05920c4b8671150d3e4d2681e3ff18dc404014d210caa4716ea328d808148bbb0863347c04674c24b7d6f1271497ad02505daed4f687f37f2c7fd2cfef2a34edf3f6c07be539f5d48ff4e3e2a7ae123c488412521aefabd38182dec6994f89fde896bd0a2832b96f7d6b761a55b38a81988d901bd5140609264368322a05d692910d22c93d70971e1f5be3a32b639219422566fc27e5aba4dce0bc16d641c6e80c8f659c6d5f1eef0764d56b5ab234080d429b1be4167a7d6f729f14078f82eb71ba3bb4167897bd7ae742451b7be6b489e8edc1a800ca16d1cc528160782796da391de625778e0872ec01439472a4d3b09d303c35efe91fa93e53f849011864d6db092c952e3ceb87df682abdcc3c73a5437bef77569ba9f43d6debdb0231119ccc46f8dbf6809d38e9c926e27c2a758b21fef78dab71d57fa2d1838b758d23011031bf42965bbbcace5b6597ca34cfaa4b32e44fdfc6f213f99d97bc28fca2390c8a1775e76830c87345a59fb46b04dd3e4d0c25765038c2b972c0a405d9be317ee3fc2007bc12c9f3ef58bf031f989cb84a56e120dc2f121d442e36755093ce6822bd003bf3ad08e7cd0ed0acc4f724052e21f17663229d27db95bd649b1f10ab0b1bb47ec012750f4409e6f66168818fa47c7c4e82c0e5999b14260de1219280196b32ba96d24d146fa80b75a47ac7aae2b3a9f5267aec36db41d51308e57857232d028f55b7b6d8b71cd4187247125f96126190eae6da007b27f9595bfc3847556234fe65c61a7b870b4433c85c07c50f073ed703eb551dce9d48a382bf24290de69baf73f111ba75e075bec4a330c08cd50d7e2f757005327032bbf91fec770b1725be2eb24e7a762d56fa46d4a717689effe481c354fd328e3f8932e8c5f87615a8b75701b0bf7cafc6420fd4473c8563da2d80997b37eaccc9cc78dca51cb9886fca4e960880bef7df99022c270c3f835a3979732184fb84e641cd2e5c0d495c1763fd58417bce175d3a611ae4493c8336b4914af238f6206b7a3ffca6b69193d24218a9c32702e4d7545f38f5b4712cee875e8b13000b5c3def932946d6bca8b30515f2c4e03da7c3f3a947794a248eac16dfc79433d5b323512d82707a5b4cd009cb620d27002a7296adcaaa7dca4d65bb883c958beddb7cabf8dc8e3a23caadfebf828bff2948f033d31a9db53b491fac7d85ec911e17a439752daa5ee3f0387fee7ff127f94b00c88788cffb65b07f14b507554dd56fdac103e4848698bdd0390d3e307435316e4498019eaa4b22c4c071e79c0031e500e33f7a3dc86b81a2c20b44d7df6f02cdf59957de7eb5b6855f2f7f9bcf33cefd217af33b7e4d050a8f900bc9d4232a9a9f9d9f9fd9d7776afb46d9b14729ffec6f0da6527142a7d4fdb1abcb3b01f6c40e40c8c1222fa4d772eae3858e628ec6be04db714e29bcc352053a4115b90ad9f4e79a06a6479ca13333245d71c7443bdf91274c6850e918e9138e3c0c30c62d4e1c841c4e17ddff9212e2426b8168f3d184510688412aab3eb005ce4e2740c76b8e49d8824285ae432ae13c81510f644bf04d689800a6d7bcd59a310998795aa999d4f0d1e52a89be9545094669ce4fc9ff5f7423cec851651f14b153d817224ffd854d97ead93cd346bfe8b9a051991a64b68d12c93953fe8a946572cf5bfba3facf5574d000115e6249659fcfc642a9d34d936172c5af97ecbea0e9097437c76a2a86c16f16d12a88225b768e7917a621ad9a6936ad59f0984a1b14fa2a9c768ca2837e11e9935f0f7a7a96b9e1b7e84f8d0f23597cf6bc2271fe8c3c605e0159e27c86abfd9005a2ee7ee1c3b9a11b782fb81e5df721cab3507146b6d6ddc72871efb447ec847355f39822a3506e9e4f43f0d707a88667e3761e2c46b5fdab59c802a3fad3a99cf318d0388e45ece984f424725d3911eb7a33ee75736280b502fbde10f966839e3310301e74d7dd179449730b03829c4b040c67513250838f8d26d586630e669063186ae998941cc34f4d76454d37106ab9634230105be2d63e07c35575482fd1b5378b21782c08170390fdd84d76a7134cfd409b52a295c41c914dfadfb96777b89c4a18fa65d3c2f86ccdd2af9e0e5c9e18675c636cd44f0c4220f583c4b10f31f3ab80d3a56e7a1ce10018690b9f0a5d1fde6f338c9f94ca9356b8faa0de6814e67ac96307b3510954aae613c78da38b7598ad0d436c7299cb7677d242c8dd58b7ed927924f16d21e9168b6d8a6f8d3207b421a40efcfffb3c85d0bdd4a19acbe70d85855f1433f05407f2d559ebce3753b123fe83541e1a7e114a87604b69af32c013558e6b1032a0aeb4c434de101aa6004a61a2ba06271902de8c1e6295c27d9080992ee0e623db631e62c3e8989d909533a825538384ca3096f8f4afaf34b803f2e25f60521286aee0538af685c0c959456f3965aeb0729c0121dc53554a7fa11e3ee1e124e54018f218e0f75c7215a7d330272fa151c97614b1bd33d4cd058fbb9de2313145a1bc79c24d8ffe6f9e602be371ba053c0b066678626662ea06527d0c1802bbfdfbbb5c7406d8dc9eabed71bf2aecc8d509dad5b8fba6b8f02d7d07602a65552d449282878c5df2a51bf0ceb42440de528c7b2b68a72754d62994bd4104025adf6cab27a78d0c53da9da703ca8ad1ca23caec64064d558c4b1011459d7efd4a2fcca5ab9161226773813a6174f12ea0e70d197e18196a0fda69b5eb8baf7fec46357ec4436063a587c4383b17911cc9c6a806f1b87dc5cc7b036c2c23e39e0b7bf05c9f498b3fc1033f1b3c41d7ae8f28a48fe82612c65f1067b24b5d0232a1e35ed94adc314da351d77ba34945fd10454d54b4e99eb4a4e4d27d9e8b4a913d9478870ac5276e55bf6191c030b41bb2e939ba089f603deef5c27f4f75ed362329e61ce2c8c1938080f0b6fe04c54e7db9585c5a25353a82a3ae371d7d11b7080d5fd966f25c74415b16efb77a7b7acd66f500c706a21dab977395844da00ee297d60696c3f90385e89fe3473d9cda2672337e74bc558f4fc5f62ccfc54696d6163a25c88026c6479c0bf61e61caf27c9f815d75a0b04f4b4260d05ebd490d14369bb1d56579386fa006b193b77e50af1330e39ef03d1f8a9854ab0c6aa51277445285091d5b155914756ca58d8c556428002e79f8a2d578a6aea719781b2db84564d29d9c6663df0a52b3d3e4f713a7fa054a1988919a83fcb6928314b32a47b23e60b05df088c5598073ee8d3399235f14ea2fb67d017ee9a9b5fd6e006430e547068110beb314145a1e008dfd69a61c00b7d9c4a9591d4980e54ef85d9f5e02e01ddbba811c18927cdca016d5ccff1e01615dd32a1277bed4725631c4ecc6298ff246201ee05830f8a0d585824cd5ab8d6dd8ed93eda25790e30fdb0caae08d33cbd0df501e253fe18b40210c4f442beb33881d3980642104e494c44b9912ea3dcc3030d2cece90bd4813e0801135eef33b9f596886562b7c7620fc5ae6aeead058337da41aa22b97aeb86290bc745e0993c448355af8706aa8a9efc0c9d15169343bd70b0c99c2b6a17bc8a50c2d9b8b335ad84afacfce78b077a2b37ab4d59e9f382e15e21196ecb4d7213b844da800f2694a2f82ea39ff0e8d8d176c469b48f7cdd6bd642f2bf08cb28c5e263727a96c9b1095f244e49486a6c7e64faba129f6335a0932292d2f03b506a212735c39160da16afebcb16f7c667d22aef658631ded27785fcff14bc8181a8a48546fa5647f719822c081e96a0e00bc8a5e2537271538a0aae437d585a2aea0ca033d1d6a3fe64832eb4f3aca2ff07d1895adcdd7b7a73409e44967dfcae0386d5978264ac292eeb1e5678765f907f1e473dcf7d2a20794dd581e339b8ec3768fcbd3b0adf95ecd90f27e47ea2f60498f923e956bb67e351c4d5164c85fae38d4f22addaa3a5082ea3ae54173fb241f1e32292f04c50cd9975a81c422db5252ca66b426ef532c4cbf93722742b51826b03bcd622abf5887826b07c49776ab29fbcff61ca10cec65c4335aa40b66573605553705c2dbd2ddecf120c404f89586b30ba39cb819bbd281128ccc3e4e74a8d879f8d43ba5e857133da5e95559fac3e5fcb0a67f43e8fb387971d6cb967a62f2bfb44132992e5b40e492c75da958556740673dd8be44282d22dd6ad4141471d00c924f11ff388f2231f1232d802e474e868b3c980de846a8444540831b07a1e107a38bb7bf88441714657a24afa09baa3e9b551c212865b6c4eff22158cedbf55e2047a7848ef3d98753627dabb39dda9ceaec56c3499dc5a5a19c9322170149095f92b818444915c1adbb61969b73853021db1633f4ece73acb31aaad02555995e17536fb36ec43c9752b0614fce07f4210e04f9461640ea12a822b9660e2b269268bb9656126b5cf9249686aa72dd97fe203bd310f144b56719ee4e2343eb6868ef774f2a1b19f2d05de13f787f34afbc76d7ab074f799c05da11c07f32985d247706d1074cdf818b89791d989c69b78f2ff9c0d4c29dc8085e07230175a0e713f2ec79b1da65836d1cdb9ddc5c12b0c614936193d3761d7b4782c848417ce1d6ef543af7d13de44a5f98948ff5b463f8857405f0cb0a68ac1ddc80b434f4ee23edd6720983a26f5b3e5bf9a347fe2388635129be98b6ec6528a353f9599f07226ace72d45ef92de1575927b61283694fdcabc364280789d1405e66d305450fc15bd15a87338cf48e7872cac118a856b5be801897a2086c05bfbfd506e0b20830ac16ad8c12a63ba596b3447134d53a2f5b2916f59071a5600a05987f4d7a103f3df2c60bc1ad0019c8dbdfeeaa4f23908cf20b8a12da31a2acecf3cce184ce54277055fbd40fbfb22a36af70d22cbdeed805fc526d07dd425ec083a1c78d7ad3b99ba6d06a35a3f3779c65247b52725b509617b2c145575a577eb4913d46d4dbf727b5d60215a1fa08691838df9bbd01b65db7b258bfe15ccf4dd87d90a537257b03cc300d4189c1976db535f01b454eb0a820d10d4ac64567b6f6393ba06e27f9ffd9e0d8249d435428dc7e6c0817b7f53b00159fbad7de16babccb699a2cb21b1832052c8da5c08af137e76a20be886c3d63cf2c65a9e6b1ff04b429ead96d239640602a58767d1d9840564f87318648a42d12bbeb83062d1c51833e275d6f5df1ddac1e68a97ba1a016665c0bad62316c306ae63e0009d12715607da055a91fe27beecfddb90e921d8d803a3377f0a892b5b56c095b2a194ac242e8ccb7ba0e1a7c3bb0b0b4d6c0e11f9d666599418ab561525979669ae4cb881fa4f6a0cab5e1be34e067f4e481396decff0f4bb2175e3afa0252198820192dd08ad687b08d0206b49aef18f88b2f28433dfd0932ba6e001ad650dd7edcd1c6437800fbc0a6500659759a2643eae39fcaa47814c0bb228f0bd0184ae6352a0c15d51a3513437a977de2c3c881755db08c56f2d5abb37a5ab44e7f0978fb27d13f350ed6eda968963a6fc0c7c46747d77fd725a45e25bd4cf131f71e5c6a93a0b43359c1b5e184257bdfcafe8a787ed96c900ad96dfbf7f86571ec14e09ec0cf41f6cc59cfb3582241e062082b6c8aed99ed8c027558b869ea2c154dd7741d10fbe1200587f161882481310809a300085466493d9040ff7cad3ef012c5192cfada31af2dd38ee0b7619356521a9cac8a47b5cf340aa94b57ebd55f7bd9a861421099ddb23cfed1e25e9978bd429882080cd21bb00cfe4df40145e1c36224ad76e3ad357fcae601872eeff59f5c4a6a9d1bbb888cfad7a29b75c84828994d07be7ce2e461cd8676d0eba77a33793d394dee2fcfca40c607b45fd070a7979ef36c117e2515b5eff504671be912f693c1c552f1908b2b956516cdba415f764e9b560d4431892fbc941024b7759546788837a3e602d9f6b29130275b6959019f72a51489a00ac4910ebb6e7ef93f5f29b0539ecf8d8e61e9930788af3eebf2d7850a163adac047a4d1341dd31ad13cc296dbe11d647ea0966efe7fb4530cae923fc5ae4520cc9c580300fe20ff2725b0bc6f232b2079bbde89b1373e4154ada8a49fd4013931a23fd1514045b8440e38413f726d8df544f098dac6b6a8c1c36d07679152db43adaeb252f1f1673dc657d538ee342e03b90bd8e556304f3c0f5ede96f1184be2e7af70c80286de499005c72ee52d2b905a6bf1d8e3613763ac72e49105a0b8100c69cfcb6e69269be3f768c7ffb2f27d831f9111d3054d8952599d5b7628ede0b89ef2076f12fe27f657c4c5843563f99eecf45d8af79075bde784ee2983befd0a7341068f07267aad3e012027bc4c7261e261106d4c1516f7c2eca0c8e0f58445828063c15be0736154d1c38765a3fbd049b37e1238ce846287fa1240d895a7326a8f2493058a844506aea174328896b25c43cf31b90d104b2be1c5d45b00eeb64003f165dcab0b80a9e8e92ed59b5282c156e1a075c4a034a7c76805820962a4e07f103e21ec5fbc8f5d395c2df06d678883419b2057fb9103957ace531604c02c746b8a012625988036320fcb0ca79e0833870680c5b41b0341e067bb1a957ce2219779fdf3df58b6028a4eddd6dcbbdb74c49a6fc07fe07e407b31aee6e9b6bab69daa66d44345804edc471326a6da88151333c0008f9ea958cc558352a0167555a0154c72d8aa94669c5b3d76083154bb31ba36cd0416d91171531898b2a7f68d00c4b20981624efa705a11f580e7e5cd90be6c68f4b34c3dd0d5a8059a84e49cf41071ba80caa5792b5f9ccd24efaa6a6d3b0c7a6a673e1cb7e9b429d5eca6ea17ba27ab58936f4a2280ab584b7b9c71ed31da4eabad6039cf8ecd08c3901e3c79d91709c18fdb858847a32831660166988da02ad2c2e68843ad97c4ee6c97213bd290b0c723aa8fedbcc6603a7519628c210366b10c1e7065200cd3987eaa9fd09c95c0f29ae709973ce6ee61c99a5439a28021162e800a789161bf87030ea78724d0607ed831e9ce19a438d36b6f091020a2a9d5409644bc75b35913569d0030e50fba972e1b8529a5a4877d932b078011b5ab4000d2ea0a8c1cf39e79cf3e4c50b738f9c53491355f8600b2969a471c4460fd00b74a07137ccc5a78efe3eda658bd589ca3e9b594ab6c118539cd815b2744eef4d06d1f8354dd3bcc52983ac37bbbbfdb12d87747fb08fd3377135c96868d4b9752aeea43978dd1f3be7f4ac6cf79783d94495deddcd725bb2cc9bdac6d18ecaa6b671949bdac66d3f4653dbb49fa9cdd9dc3e55fa323353499b70f3a7f376774b58ca8432818181a14c60606060606060604a3094090c0c0c0c0c0c4c0925ca040606060606e6a54499c0c0c0c0c0ec285126303030303a4a59502630302ea5ce823281a99aacd459c0984a9d4569ce0d6739cb0e9d809a53ee2712f1aa715ced9e38368fc8e24bfc01c1504ade4182e1b21aa757f40aa7d875986f5aa4b322541c8fb72716081458486c784a92b8e20839e822c808181859bcaa783db58da31260ca8928999916c7fdf92356604410525889a3c8881e78d628552a8e9c48b7db98deed0fe0053429438e2b509a080a42d2a0899fad4b7154d212957dec317987d650e2b49c983a1918c59ccf0fcbc37a07d8d54a21d2e5d24646be145b92e5913c703acd298eed2451a6db5be8702607ed3f9799f9649e3f31c6c8f6d7600d9e93ea853334c31eecf162a213632283981040f85146992db7215e6f841f7c611be2f5a07b12a4c0e48180749277480a4725fff9565be0143b28da10ce10235d6e449048d405b202cb4ba72e5b4b03f3ec522ecd74aff3a27aa24c0b6fc80041a6c849ceee630e5a0d43d475589a9a6d713ca8bd0aa38efcb3c50ed748da304a7a24cfdbbc8de483e4429d55d6d71c62f74575ef442224e7966c0d1dc98c848a7e66ad1f9790ced08f0ba1fca51cd22e6f0080048974a41cb6378931d29765722ac6e4c028962d9b98cf4d13175392fb9036426a8b1ee9606ab186197a65126528ea96254719191eab0c07ab526b699a66939313f3b9c9b9914da44b97e7ecfc6c768f19bc30654b8a25d74b96e905320088dad3448d6a9a4735aa518ee3663bf5266c809a64016a82052432c3ed02288a16cbdba9fe5ae7ac69a0f32d4b058d50af08463f2c52b82caf44843ad2da3158a339e74b250801cd39aa35b5a28e94e34d8a8f07b9fc1f0fbbbbcdbb1f0f557afbc8cb3cd180a2c9e941a9d2e9107a367b509a06964136252f28da6e47689bcbd51b473bf003a5dbba41eaafa594d2836383785f077ef8360a84cd8d4ac4124ad4f185ea706ad024b8a2cd8dc6d93eaea8b6735fddfe24833a83a39df6c2a8aa461d675e0a997366f3a69bd832238de4751119ea2744e927649e2135ef3d43135b26a341a6ef0e3f9d5f0a69325a2653ec5d454a339e6500b9ad3477d6c5c1f5b66ddb06c484ce6fdafe7662d416a126b217af220d3084c05854ef172888a39fdafd0209e1c38f2edda8e02f9010375e54ed17480825c818c2ee52cdb5d36997ce3919082899212e4a1a6fb0a088c7f5b304ab65f0edce4df179bbc514cf4ea2dff5e42d450ba8b64434eda753013cfb2ae1c3b3732011a62bf480aa0018b8a2c082c807517ca2bce660e61219f51b7b7cffe8238927dfdd5e9398f2ed2726be8174d8f84635e088099911a42c41e20a8985136b7418755fcefcf821f102319e9d2291e5d9b5da83133f80343215c6b3532d553c7b5728aa7c73b22a852370a80adf4dfaeec0a8fbf247cf79e3f9d9e4ba2208580d8018d26288216bbcc248620828070837438a8eeac9e86509a11fab7755e854d22f90cb480651e92f90eb080e58e28783f90562c1cfcf5f2025b0fce84c789c12f5489132e4d250674fedaa082760cfd0a9f317c5457a2579fc2879d070612d71f0ac31ac89c360f2891c9257649451063dc39e5dc698d9e9ec97dc614e9452b63679d353b46186a13a527a3ab9b8d037e2966890bf4fa76abfdedf0686a89b4b972d5671db471a736c96858f584b0596b5891e90815172e5f9ba0fb9f244798553ad9262fbca15496c1f59f8f64fa7f6e3305f867d6366c63467666f90088b2d962ed962671107f932ec0f4aeb8e6cf5e9542bc7415c15621951111de5866244728a108f50104f2c0aec55461d19f68461eddf3e8ccac0ae4e6f7cdf383765183fe155ff4491af208eb110cb28275fac1ae5d0ef306ca50da39ae4b2d52b922885ac30aa875845c4aaad9d67a876fb4cef0c0e46ea6f3e8f907c36c33a954516897206ebd60e23786481d3386ee3366da774754ae6b0948bc3a8964153a35fa027b0f819d918b204b2044d9cc10dbd34eed483e4eb759e47f2489d04c3ba2f7bda1e8b6aef42df6fe9ce45f55803338b3720f9394ba59f170b7e3cfd0be41987cc942a7d8a1f6b0e6d0137c4691cb7b594dfb9484a3f31d8512cc8208216f62848464846a403abfa04d490ef556dc8a1c789d2d3e96562e1b5cf3f7ab105a262ca7b3f5e501018587ea4ad0d02e3caaf246b83b0f879ce79f6d8ebfd37c88a221e88af8f116c3d3b0c8ce2492b0c4b54647edeceaf88478184d4c50860d7116bf2fab93bd7a7e679d39bdef4e6e426cd3b1b0fa37c3ef109960004409645147dc2708afb0e0000f0248514885040a1498f1e566262824e38a14a14134cd8399da6f0e0710506c6a784126e5e5e9aecd86145878e1c179727b54631998886be864ad0830efa100689a82397e5b988518ce5a59472d2ca15add1cf2a0af684f4430a22f99062a4283da8a3171b65a6ce87e55927cb84b9b09cae5422a69e959fc19b327ab067ce472fe8d9833df15eac1a49383ba4282423cfa7d3c2286e318addc777d2a4d869b94192bcd9f9cc8ea72444c7137b0ea2aae0a52575bae7d5f0d1a15f59c3f76be57945574df90cc74e67c628f6ae3cfb00dc0312fa00c4834809c437081020405c865304124a209e03f13ca21f80e8c918c5443cd1b3920a47faf3ecf48cda852ce74938ac1a3d1d520eab46cee7d9198612478e88a4e33561d5023dd979a6ad71733dfbe8c514208578563e9ca559178ece0b16a33c4d722dcd6639f2623bdf69b1e99a7ce248a7043d6f97f3ec1c0c87f924e77ffc025171e53f1f4e5bacfa6c5c37ac2280b3531c56b1005361003e9e3c948ff43d157c7945c2a1329bfac357700912f921ee10aa00fcc5f38457cb9a5fe987fac36718b53f58204048c21980389e52e25851e248ff0b5128d4ae180381972b410b484000e1b83f2b84239df2ec2a84238df2ec3ec2d6f812ea308ab55711ab2419bf1f80b0465684058bcc88555207bf2f86353223591659161e56492bbf1f863555787c7c845825c7f87d0f6baa084d99f26295acf2fb00086baabc767660ac92547e3f85b0a60aecc993215649d9efa310d654192222d2619514e3f77b843555749a3491b14a86f1fb31614d1599152b3fac9260fcfe09614d959fa0a02a3156c929bf6f4258532556254a95282f56c91cfcfe29aca1f2dad9116295fce2f77984355484a64c99b14a7af1fb30610d95d9952b3cac9242bf5f42584385c7c7c7c52ad9c5efbf8435545c37373aac92527e7f47584345a7491319ab2417bfaf23aca122b36205875532e8f75dc21a2a383939305649a0dfaf610d15d893273156c92d7edf14d65089458932c42aa9c5ef97c21a2a43444435547e58257f7e1f0c6ba8fc50095a1a594325687fec0f61a02d7e7ee45c4d8db6230db6b9e64a293def7b6f3d9fe10dbd38f366ba34d80ea37aaa268e2ce4e2a28eaca3e9f4aa8f26ac5db06fd774f5ea7bc2df8ba7f83df95ebda2b4256d7ef4626b44bd68cea94def74249a436fa80da35c148751acc3e3b167186db57444a9a3178b7951c0160b0c013548d5656936eaad5167177a9ab66989e2064268228aa9715ba411a31c477a49b162042bb46824929344240c90c3073256272a61796bd4c9a8ae3997e138d64d84c074e9439a6bc38d1b161292ef208d8080c282d2ae84e57521295c9008756d079918183aef5c094b098b14c6c040ea2dbc61b76cd99284975db82cd2ace17403c871334a9b7a6bd4ed8606d4b0334dace1f4ed24fa33a4df391886b73ebaa55c97610ddb64d4ec86ed0f1a446f565835346b82e6b414df0b70394bf31154804b86a5f968fa6def96019aaf266e5638d5e226233571c12663926b73cd3990078cc122a05d86e00cc127200d7e0f3082200c36487b53b13fdac7960204610ddb7eb0b5f1fd7d40d4b1619b1abbcda6167221a9055b80f62d240db10768d74252108b809622c9b53fda3d2b7a82b0fdd1feb9ea26eb5553d1587cf70f2a08fb7610c67c446516e29d9272a9e5af389ee0b74bec55d6f504e18c95bbdd13892a7d494b6061e29dcedca1fcb9bb20f86161e8de7d4ea2bbc3788102ba5002a757db6db9a5bbbb4bb94deb4e8bdd8e2b82d8d2c0f0a2356f6fbe704a9a90447540fda816b6c029291302dec2dbddfdba707db173db57f3dddda935067ed0da0b8d09661e9c966b88b4bdea56a7a4d37ae2b6d609b1c68164754b7abb5e4a29a56b91b5a0aeec3ad6b66cdb30a1ba9bcc3dfe4022bb33e981fd21e1a82b7ff04cedf2d37cf68e0c22bdbd61bd23b7a09d37fd166e53382547509704445d1f9285db1446c9cd8b0d9283fd217ddca4bc7c16bf2fc01f37d9260442c0fb4da8495d1f372196dbccec463d80a28727c0970b868680a823a9f5eca4d6cbaebe2675dc868686e4720fafd8d248e79814b7a2fde1aae336f4ec43bdfa36c5de8fddac7f50c7adc87190bf152d4dfb3af9298e9284e3431773ccd13ef4a0cd468f388a3ce03473425546fda2280b3252726016dcb333b7342bc60e9c4d480b4db0c57e6ea9fbf4e7966a822df63448e75c72122ac7f9268ea11552dc623b554a293a0df99be2ce1d38717873ce29ca3919a5a4a5948126e73e0df4089a23b4b9c121c1152d1f91e319512757b4b9c11571487048d0223824a811b4081b742144eb9bc5a7f0c3410fdddddddddd3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3da5ee813195baa734011e9044e1f5eeeeae44e38cfda66449bfd95d85162c457eddddddce1f78caa82d21a5558c1a86fefb0535007efdab0cc30cf94a67f45ca569b54d5921086c92fbdbc0df843ea14da837f0c5fefab161b0fdb1449dd5288c984479431e50a4e78c0f165e94284da3de755d473b2218c4f13e4621e92e505f6698d551bee4135bd4718fe413cfbedf3db134db8351a713f522bdd2a153ec5473c9a00bfd9cebd039288ea74f14a94b14ed90e87043f571e41efb6467047b27015e9d3ac52d0c794091f97aa1667835d35d8c222aea9914f2f5e0e8333a63368da691fc88584b8f2f0b7f57e4fea03394248ee3484b227dfb7da50e6c81365a6819d40cca064d63d2a139a3439c46adb856c845c7ea90f267114c183193983852c8bcc1d9f1e3c491bf318803ea802dd08651df1c1ba4fddba2657f507ecd9bd76bde7c4bf0357bc22b14a7a44ff9de9fa0191f1ae5494347eac7a193cf65e8a4e45be8c44559259fa113576595dc0b49a10d10cef2442ddfee72d627d22c9c6aa747bddae1edb46b31035c5ce36944db2caabdbb9fee5e9d6a2352ab579ff3a0d1c5ca18bb23922ba4436112927b9f835eb8ac8d456f280e75d1d63c9a461fe923b9e7307c0e92dcf31848ee89dba9183e07459f5a24f1bc04ba4b092011ea2568fccd1fa15e258192a4e45eaf92b838e831d261f0bce430803152ac80e7258fc1f392b89d8a017417910e7d4954935797d5e47938b5f36257bb343bbebd135a1aa35e953a34bebb32be9dca777744974b4e744c9d1daf6f1d221225ac89d3a99eb04eb5cb70decc5838bf709a78b653a459441dbb9fee27689c379e93c2652d8b4467bd2a39e84790408181e49f232989ff89484071469cb30e0a329e8a2e8a5571dede395915f5f6ee2585502b4774583c35614dd03cef873a763f3a21c5e11beaa2399cb22285d0203648fbce7737c1a12ca056ba9fee87c65835ce995117b5d1d16c0979de3ee4f3f659f4853321ca83f9b670bba0f22285ccf24e32ec88be67dfff0d7db24e88e42411c90eaceea753ed302091cd61389c44cc22640a8ab9044f9c30aafca1d42b024bf3bdea5cedc2aa346fa7c0169142aa0cd2deb978f09df02db8ed09b24b37703fbb57af26119b6a5782baa0c2e0bb7be1ec0f20eab84238ddcf37631411a3865cbdfaae709542be3236487b968ae5fbe3c1772df26961d548dbe7a94bfa8743759abebe6173a857246fa7b35eb59342134909c71c80628c6fd9a27a553a7625b3a97ef9d2b0877345954cb5aba414a2893c3648fb093c38e4d77868b6e88ce8c9b72cca7221479436fa2e712147193f4e9b76adfbc93c7fe8943ace482963868e1938430c0d21ab406b7b306349dfb254d9be15f54a220162c4da5c8a4065c41aa80cd87703c57cbe519dea656d22ed5417b5fb17c80928cfa00341d1e4591ce2c796793e5499e55c6aa824e1597409aa3b7eb938f27954af8c401edf7de1a49c1d614eca9de2aee438e776f78a47c31c38c560046c389dea909f5b77f7f6437777b7cbc9bef9a9e8c8ae8e748afd242433536576255339071b3c50a711104778cac8c8c87cb2ceb1be7bc0b5d8ddddddddbc656badb5d67d434f76d9922d0d544a67ee126a4d9f5db9b0fac2aaef24f9c4aa518e3d9edb4d35502995bde5d0ace8082fedc92c4e46f1cc0ac9906eea86aa1b11956f2afbe844d5a63cc24d40959b2c25acddb9aaa8d5565b0d07f93d41227369b648b7091f50a58fc3fc1378648c5ad4d21849ed2a0232b54227337eb7ca37aac8fe68e776b0d3e4d7a85be24c393c1c72a0cff9fed820dae4b4bda1b76c21c7d170991279e9e13e28505d5f6f436683f5bc8e2aff02f538f1a59e26a4184dbefde524a34645420a98ee8429b230a3093878987883256db888a593b5d2a9f4eabfa05422a55462e39070441941ae20a0085a224794a02569f010414b743047d0922d3816b4640657042d7112b44489d77e8396e4e460af18c10d1ff010e10613527c70b24101a265bac18274a3699aa6815f30f1850b8000f2850dbc2f5a70c33df47c31bbc737504fd0b7929e207ac670830657c85ee03e627e817a60f0db2f504f143fba0c259259c25baa10e1427cfbcb49468a91d1a9cb410f130d9b9c594ff5a5d60d0d9d0e0d17f450b9e1986d515f4ebf40b3297ec72fd02c891fab4f2e644e5cf58162c17d300ac9172cd062031ef81001076be3a145848ee628f7e1be6ddb963596b80f4649ef15a5a2b7ff6c91b116ad2798b87309e88209d32f9014247401e5479751c35b1fa3d65a9a0ea760591fa3f7ba8f05968181ee9cb1931775b5982d4e2c66120bb0ab391357018c92b33967733663bd621c94bbc937df7cf7d9dbc29369d2a9695a77c74cdfefb934fdeb4398fb4a60056b056b6903894cf1fb96553a283f0d47e942e9a711d3cf24fc6312fe1823fde30efff2f2bd9efd1d6aa10cc7233fd620f39f8f2a9c3c8ac329764a9f529f8cda9e0ad65056e9f0e91faf5e7cfacb04894ca35fae5da7f110bd6ce21788064dde6bb066ca1823ad823739f5393332727113e826a33779fd2287fa6c03742a7bea26215037cd00e7eb57f776b8bc94e0622a957cb0600ae9f37852f739f7c0d20c6f30816e0a4ba17c13f8c29cd3f74d26d1694883c9a983d43fd0888936f388e5b06aacaec3d95987553454777176c6599a1dcece442c8d29bcc154c31da17c107cc1e42e26932f68c4e42e3e847784fb0bea08c7ea25770969a86e720f74017493934023553489dee993e33d1f5fb809a39871ac54c9ecd547be5234d73039fb0ba7d38c552623e1a987282a608755a369c2584583c95f1de8825c62f6e00ba053d088c96bac57d44ba0d45578eab15e2d8bd6197bfef607e5f1a456e79c0794ca9daa8f39b029a4af812e98bebae7126e4f839bdf367e8166f07a2fe6e351451de5f7f87840a99c8f95471595861ce4d3b08c9acea5a0955e18359d7b4f72bb882f1ba77569dce15f5260b929cc9229dcbe144e71fb0b471448e3cb387f649c3ff263093fb5960ef6291bc444e773e8df15a42c81f32b4589978e5f294adc4ce9f10b04032da630fa0562c2f5e377f4ec3b7e81a620fa263954580955e8eb2ba87563805fa02d43df5a8abeddc52817a4b383a1271964508c710174ea35200a2475253f84398471308471091291e2c963299d598e4a2a1646f576496e1f0712914048960445194a1ee63efc5c869d83e1a8e47371919c041221390e319defcbd2d779e9ebbcfd8410dc31c1c265547db18a7a13521e3c81c7eb550adeeef2ea550f37cd344d8e6f175934cd1824c2ec9d6aef11a298d418cd637c65ad162b46138ff47014bca958a912d4628db5e8c873ce59e5798fb0a210d698907bd5d7374ffa4208f805da82f3dbcb14c26531489ddba9a369d694e2c034034d3336e4aa74e4ed758da57171214e2e3d541d0fc7b76b291931aab37413d57fac42554828c64de0015363fc65c2524fbec3f4ea9497b089a3ccccac6a3e54af42df5e8558359a809c8899aeb0a988496b5470c6aa11d431bd4c10c597389e4ee2e80e238e2894cc0e7194a945333f9a5e446a25aa23282b1df5ca34a347a6d2d1d7d20e611d61c5b23fda5dc22a84fdd175082e4cdc0588ef247c7b49ac466096a12c62944e1d4d2f93698719e072568c68f4cd62c5528b189553fd970b33b2fc08cab828d584c6fe68dfd2127f819240e4833a82b2244c4942909318970feec438bbf61bc4c314efc584a62b9c8a6191088b633d7ad9e0c77ac4cea2098da25a3487d0cf66a659ed411d41d9094573f0fc02fdc0f500f8054a438d0765bdaa45d445878b0b309ef8d1a5e8db5d847a659a996632a3a1371dcdbe41598b515d625247d0e857b5950dd3aca8eb588b8a7a657a75aa4dafefa9c59886f0bd2b5310a490718567d03b2a3a588c0fe18e8a28bedd346354b3caf45a9314476de7db29a5140514b40ed6c5ba21566d17a57bd20975441d4fbb464db35ec9b04325ed33ed3017633ce1a28a8c0b2a58e62739941f1332ab83753cdbe6691f11ea60d841e99e54718319701f187630d81fed32f4aa9ba2ebe9aef8ee606354494150b6349a0bf607955d69506859145da14d51868c69af1f19eb601d8c190c970732806480329c5adfa8454ba3c325886f1ebe97bef6aa45b5a81ab9e8b8ecd42c2e585c5c2e4dea918bcdb75396527e3c5dac8335287fa81dec8755b05ec94d49172da6f13005652019201972062f8550d1345b50d62b195b36cd76886a2f4ab597069311694fdab59d1f2b319f6fa7f3a5f562f33b8eaa514c4c2d92cd2522dc0deaa8bdb41d56c158454123d4a37c8c736654ed558b5a2f31e18bab53da4b7b75b0efa7853c30ec1e24a28e9dcd91167ad4b528966ff77818d53e4f631a2c264644b2034b7b75aa7b84cbe29063c2658144d411bc015b8c92524a49a97b4beb53a622d8fab27cff302ae8dbe7802dd01caf5fc9aae57fa89a937c34bd4cb35e814f38d51e85823ea61918649a6d5b2a28fb760777c01762645a187a067768953a825d8861f45f08de30d8fab2e47c7b87e3dab4fc77f4eda04eaf3e212aab432750e78b7ebe8d8aa2c8a945a2e7431d6b91f62afa76ed558b6a9196c32bb9f3a4c9d4c22b79c3a929d439369f6c0ef59cf52c7a165a3892433fce9f3c704e3c82228a444a018793168b3ad3d8929b31e69c1df4830df70ab2d1a2cd727edc59eb872d7e5c2cb367acd499de389600c2e92485c897ae2d4f594345e77d6653929b2f68bd266ecbcca30d345aac16c71502caa2c8a505740323a01b1001d5208c173c2b5e8749d83def30091418d83d3149fb9cfb46b34fcf394fb2ab17f9d353b0aacdb9394a9db02e4aeb48e081a5d9f1d367589afd497d4a1e7eae1c734ea721aa53cb252a2251c2f24e4d9fe9d4742dec3184c3235e7b4c6a0f1b1bea9cdb1cf15c0b49e10c9dd2a1b73bc5f950518c9acccc356dfde65e6d7752728ffb0b6225b30b7e63259888dfb6ed73d04f9ddae4b67d736c528e5569be559fbe6dbbea920fe153af8a9cea26659dda862ac0ac9228619dfa09658c47067191294594248eb413a9386b4a6b6d90138f94e41a4bb3e33797454b83c33cfcb66d5c72626a756adb4c2212252c1d3ab5499c4e6dae8539306aebd4e65fb89d6a41e5cd371e5858356e1639cb61dd66faf46d731e4ba3396d6d4cdff0d6c7689a7dbb27bfba83c400cf4719510a993bea8977ac2a6651ed1a758e5f854e4b37a50bea665d964ed6117d7bc7514a298e118bea6f2e0997e5d1fad2d59853b58959d55cf232975020bb5a41a6daa78f2bfcba2855a77069d8972caadd84554d1b469dde19356d5835c3a8b96455427a7c74a354a3da26795ba19fe10af9c1cf1655fa911abd510d37cd57a0435288264e1b5f41aea8116ce846a946b56ddba68d143223831841ae3a2632d5be339eb743f2ec7e3a299d14c9e45bf40dd29d8b7de36d9bdbe412be49846924a5fb5181ce24b045ab65af5031aad1c4d9a6d10ca7e3dee6ecd296e5a5438dba57f7ea602f1fe5011d5a611acd23eda53d995a66160d47dbd15adacdb74f9652ce6f7685a8bbb75086fdd1cea1112672b572460ac9c006698f804ccd142102fa37e19821810871ac4a339242e64c731971cb6d9ef7b9272611934081c11363a47bbeaccf93c44831e608c92db02c927b4e1293208112832726f99ce42431467ac995b092c45480e48948a0481106cf4b2292ea9e23d1c15a16e838dce082fce9165856c97120c2f991922f68f26581618cf4cf97d519859a8ff6135301927f1e03c93fd1f32431d25d62f0dc2426f9c4980ab838e831528cc1c5c198184afe79c93ff7bc9340388f3aa5b94aa1a6a3c13aa5b5be5d47b89d7209b7536018fbd6112eab96c2654da34ef59122d3689c386c64a94c9c2d63e24ca3bfc2b39da9a8942d7566410b15a2110c0000000315002028100c888462a1482c8f5445f30314800a7a98427a5a9ccaa34190e3288a52c610620c210400020408c890cc9409023fae2a27ba5c2f14c1057e810a85a1e1058c608c0b680569bd6991f45d5b37775a15b8cb1591fe566e0c61b68e026aeba84c53240e3b97d7db3eca07e079b96e5d710a2cb7c3b8e9d385a52617706ce959ec61eb8a03306e0fdc49ad6cf7a0553b9a7126ce712f099cd2294f107847ab5fed10be4bf421af0ed22135016ac0ac510b16c4d3df565886da26ffff3d04fd6d9f5b2515084c7706f192f77071e521fbdf34e48304052d5ebaf950138a03bf3ad76113451748c68ae09a4875d78eb446d10a980ac099091905b18f9fc3305248c86c4925f10f9c3a9c6a3795dc8638f56923e38d57fc2a044e6d68bba25c35d4387323a3b2d4160a1dae1f740814c4f337268c1d9f342639a9af1514acdb95765ed68cb2b55c7d91f53f0463414ac57ed7e8a52c79fe05de12b555718cecaf75771984f9ca08b2618b124852ae44ba8635bbd2522387a99de2bb0c73e5572f855794c46b9014392be5f1253911ac2b854b22cac10453947f46d0388c94997e453bf819647451f5f820320922c22bf0bfdcc3a729145bc98db473d042ad4df23e601b18ced1a07246e4b4a340c62a463a50cc49c860b99bd156f19ec1210138a6afa3e69e459a19fa2188c7ebf3c32d593e824465d547488f73a1248e29b8bd138d6e6037679718ba76aeae775036dd9ccccd73f2ad9d5d4b0a2051a12e51cf2bf1b2ff26a372dee2f43359709553e29e016955fd67ef708e62c2ea4e34718ca0e2e4b0c52de7c45e2e77fc633100fc98e7988e382acbaf8c942082c820e8f56f1444cffc9cdad6bdbbc9732c4a71d0f46443679ecc295a7bfc756c5c25e1b6c4cc4bd66df354f13e13afdcb1a9d05b272814e40a3f7f273fc0a477edd92f475bac47b7ead110423783e42965844e07d4391324534467f67eec126a7d7e7a64c16c9fe11e3771659bbc4aa40e8f0bde9f60334f26b845e81786d7a037e18da50439567a3d491511afb69c627396ec6f4a68ac9698e85272a1e559b84f27a86aa08345a77b4a5c21936c413c5478c57a9b595385cf5e29490e9a2c9cdfa4184580881b253f137680115bb9fa378f8b0da2978bff1375bcbf5a61000eb0a92560a5e4b0bdf287a22041f6e901fcbf5c9e7945331de071da65e1cc2e6219e312d2d6cc468353451a1403198aca52c54f3875865299e463c0cba1c3a276bad1b4093184b8dfc8901020486c1b391331f49607fc78502d9a896d2d904cd4885f9c53ed2c3234c749d665e7f2e6edd353033830f891a898f11409691d301a8fa57d304882899bedf71103a31a55ab64f681a22897e5c57c8511395426db9a3f027fbdb63e1a5e93359486e498d2014c869153e386c60c4122840df5f97e3bf2900b21101dc862f53817f35b973c7ff1ea1205f76fc291d25e87f5ad1377f47acd99f359ad297180694cc8d0d6c476bc435048109f1a7c213f2c967ed5d98c72b74ad3b3fdd75ffb12acb254f429828130f4ead4147553f3dfe4a09b8ae7f60e273f8cf0b53a6e8c77d942b5515b5894430be81d0c15721f80cbc43001df397dff002acaa7baeed6bdbf6b5b0392ef0cd49f398d54ef1d22b8c3a55010c91d4aed52fddfa86977da6d074ff42ee594bbade9cbaf2bd8230b771c3a5f9b7fc553b4544f865f2a831658f490fcb9926666cc8dba6453b68c17e0228e0acbcb6914066d3a3edceb4c67412b1b11793ee690efea03f1cce19965b23c40cc67fbd4a10b9c18a6792ff2b9e4c1d4b7e5efb99dfacb2ae8b6ded620de3a6a98ada76e6e41eb93f7886866b6c77adb7095f4f88ee531b09abf3e89824e61a03e27dac5f9b5086b61c0b1bffb8390c9adaa1d364bf264bd45e918cb94e9062c9db53001abd61554672aae18d97bc46ca418068131cf58f91ea94ad250173ba8637550c40dce0e8585717ef5b205ebe161fa925b9e7bbfaaece730e91f255e0d851350e6cceb09352da462dbc6e4f32195bfc54ac4db7598d7179aee41426787b91d3544c4ae16b206d2cce851c82b7e4d3200394aa25c1840e39c1cd275bff2d71057c4fc65961def65db268c02f6227ff1710bb4e661ce78eedb189706eee695d670ed7f34074a885b7b842a2a37c9c0e49e72ce8d98fe44f31622fbfa7c76ec1463229b44e4b5669d5ecf935b5940a80db2a842349c0a066b2a0c9543f6fef0c3252798e286bc0d5151448b9ee945181ced3db616da623ac4824c61b0d4e68b0079df75e6c20a3adc4c8e0055df6c5a5073609827b480f5116e566c1b28fe188ded5047a435414e4c311ee60779072933b1f032628418a3cb29384b4ccacec2a44de02a56ae921b2a2f17513052a048f317b2f835a552fde712cc53a8cfd96f4e0529a982284f8cca8d78a69eddcccadea9ed6e96636b09e13d8c8ea39dd1ee15a4fc23798f08f9425ca457e68f9c49b522e8c0c36f900616b2e2313fa047ab9234d8914c6bfd132819d280d2b8288050260eacc7d18fe4764209cfb3e8f9b14b6521cc663980e3ffb0b28603155dd5fd570973625796c738662343ad34c2c97d36c9bff07e7349cfdd8ec08e1a5b6b5c93617cc170b3caafb1eb208121eabab112f61bb854f3c6d23ad66c1182383fafce0672590062990c5ad43d849509f55a1424cd670ed1092627aed4016977c17616d7848efd3a2438660a7a9e0db5c3ddd7639c4536152ba59131ab0b17887e53673747a6821057d8f9dd1371df74b7a79ea8e469bba7dacfc57988b10fc2fde95c88de0a91147104e26709d1b3c5c1cfe2fcb66aaef70d5590b886c5433cce47e41c9c0b25ff07fff0d080902ddf7cc64264073682d3f2d522844661f63e8aa544f9d0dffb616c3f370441f56a74c702f41c4e8897c4414d5d267bf4efcf54fc1bc12103e56b92ca170288c163542b78f855fe41c623a6130cf2a9e08514fbde7df57ad2122e8cb01ccee45f254497898955b9684395381b3890b1f21213a0ba2ba723b2b1d010fa66960deecd3f8760022a834a30e7d1430272b58149a355f3f29997f1f9af4981f02a0293e74130db50838e2097eeb845961c5d186ce6abb8341341af81fae2cf9ecc5a973ab12eeb03b71fb3db57a42f6a88e16512c6b81da1fa3595700c059ba48c89524063a3adf390e287356928e480d95b397482897456d531ad4f57efd950b3124915063c5e046317086dd0b1cadee17f71e1d9801c10a5b44c00c3aed50e999c70a9414d4169fe8a69d41301c179ea626f5e65cab2d46df138c92929dee8ba7877d05410e712805568900a45e2ee67a7c844b9566483bd2dd4e2d11649c9bdf161877184a9fce330559b4944a47f916ebc48eb85d377df12a60e795d743ab22544e3318cff7e8e4d27bc850641e38c5cf1471b5f182db519bba7a1cf8debeeadbfc56c4ec2da7c3b2efa3149847f1b9f8c08480884e951960e58fb55f52e3302c20c4338fc2c79d38f473d2b793b563688b4de004711e39903bd0e0581e2f328929ba138272a638daa550bc5c2c05d9a2524007c090fad8ed9567879801671e14be882ba76853a7eea76e58976d8535eb83400e1d31e9ceb90a0e598d4b3cbd7d52e69d52674697f91954ed87802733f21b1033b7d9d32914239d8fc783deb59ce4467bb26bd66226f99182f25ec9dab168f26ef13f718a57686e599241d9cc3224a22fd7a28d29999161c9f5846dcbf7f6f596b877714a125f44529f109f48988b80bc457c00356f0aa8fc10812e102ec8dc839f138ccdbf475e68db903179a99f7f48d4c73432e85437990c85df9ff99d1598b879c7ef39905b28f7974563db66e87572316e56c750a86ddea170d06f870913f55a273064dbe965c719b0add45d5707386c346cddda3b2a63f5063589cbd72a062ba357a059cb569dee6043641a7e1952b41cb81947b243d59abbec3148a7012bbdd73c3f304de6c8d2f199e6340b4189a4cbe36c7312746edcc78ae2b9d1202eda5fdea990617807a8ede1b2d4b867cb299881ae903a14646f8e82674f7e0cec3cbc5d007bd0f92ffc70359f54252c0fe0968325e03904081291f09bab4bc01ce7fd86e39765e3fa94cfcec0cb79dd2035a17d2d6c45747228ba4c1d22b69b14338d48c1be7dad39ed9e8c2f621827694b59656f9f2313a800cad740407482c3bb57269674e9aabdf083035b3f862b616c952431598ed0f9cfacb85886b1185f108845d2b0f884760be7f8fac1545b828c0e31ddc9854416303206e4b09d038274775dd7c6556b956568c5855aaac61665f75ceab90a7e2d5985543da9554ed114e064013b90af822ec031442d7bc1e9539dc71536981693d18a956d9d4980136c0c54a2361d9e60118c380cf069d30ab9468e0999dbb2e80ce510621026509f375897095956d14cd1d15ba5cb07238041d83985c584315ea402dfa649861dbbb4d494d2a255e18fa9d29c38a1e3a800bcbe7d8952fdb862404eb17c8449d062a53838cc9e098162f5c6602f297a9866bef4d3b9f93690cf0d93b0eb51ed0a14607a2f85897d3d8935434c5e3125cb3db1a81d24e759b57a94f906b706288bcc8eeff52d640e11c90fd1ed8e5547499086bd4dab713f3acdf6a673a64c170472a794e6e81ead2efa30048d79221330889fb0611a338011c297b6c9f1389b3e60c58dd36acfb767df3edafb9b785e2692d2d890c803cdfbebb8d0a9c1fd4d4a72d159c6548d5f054454f4c82bbecc7bbce136eab7f463c22d89e555a0d26b96a499aaccc465ec9989fca856132495423842f5534a8fcfca1f7a3348936fd3ccec49aed5db897a0408f725c352674fa86eaf153edb295c6d63089f10f07e3b5251ca8110746f70dfa977e60f700131433158f69c732f3c847b93950c3e61e36a0e1c5e7978e46fcc82f43cf806f8c42ccd2fdcfd8cb25f17a058767c3ab9d474dc97871079c6c6506005cd27d1cfe4317d3157325650af819d8ca45ce6ee084b0bb863089a51730d7f6b3e588ce35ac17498bb120246089ff5d0b5e7615188dfcb26086643a72c24a0f8ea021c0377d47d303188e82e75fb1eb40b5de1f364f81201216fd8b335b7a60414ab6e5c15eb32dd86c43aca9464684e35cc647b4899d4bb659a841095114efb2aeeb35061e3d0bfbf4cc23b5ab53d0c60ddf7bc07ee8caa1cd8a1bc4df5073cf680c8e1336148ef1caab3de652ca6c7c08e60cf4f86bc3b31dbb3668744a806f43c1902bbfaaceda0682dff209b4b2f483adf5374f86f06edac5a5a2d17c1db8839e75fa4e81de03e2a8acd6730a6ba27c347350c93ad8ab937b83444c024ccc569345107fdb0e6069a7b4983a484b68a30244ea17031a936ae53b4414084f1e7063f4b4ad7139221fa7f1dd23f21210683d113a7fa9c16fc8e7b6db7082c7c2ac47d0577bb28a1f9ed387b0378888c61eb55ac509e62c1251265e34560656507939f5ad138c8bd5671006a6e38d2d8b3318a63517f64fbded3d9807ebf40ee38174b6cc58027e0e44e6ab09ea6b7acdc77da899fbec097b7fbbbe873f62064f4033f59412949431720f12bfa05a68b5c44fbe0993bc8d6fb3e2f9b477be2c4166baf0101e1c4d9211b087d7e464af90dabc630eb384400e70809442861529ac2e2a526135b8929aebe1fab90ee70467e88560ed8ca9c5102417fc069ffb185f237c6b2158b4b9712c0b716d6ae16af31b0792716dc66c990f06fc0e7958c164694086d9e7082e014298c49e260202403c07ecd6018219910f74d5b23ff3547e3ac985e525e3b9a3cf8cc760f15e7eee93f86771bdf274d953ac392ee2e91be1df8d901f979cf669eac9a6555a645c69acef0103201ac81b1311cbe98ab777372d47ee715ef10fd0c815afda7ad6a9642af22ecd110d4dd0b32ec416dc058bd5d3743ee86151c86ddaec93798c31b32cacd887362bd1043497da21e7caf897130e8bda492c190159e5ce763b40191c2e427da52545b364eea9b18112f58cd04ec723d22c19ed990d93e8a52c67d251b4051bae3eacc6ff9a237cebbf48a991f2b471676cdb0ecec68c4b0c50aac19014b91ad664f2521297d19efba1c1454f817d0c7f333ad30c4d992efce9dbf7de5751bcbcb61f877b96086e434a54dce187f5d04524d90bdcf1af24679f2b2258830de5a8b9569b9b7369ee7fc4a13e5d1e8fdefa033aff98e81a4ed2fe3a70aded443ae5a83ee849b3924ec3d3485f5897766767dcd9300ead5b46556fbe0d332993ee299ffbdc0957891a0db5e9ab24929511b4216577c4aa861b3139aafb60e4a497f81e833b373180c160c7a64741a61565aa49157948b8b76c457750b6355087440cf1b1c294e247d29a518ba778bc0f4530e0d2d656aa168bb4e0cac5d0ef3ad344f8c95483ff58d10040207e28f64a9f57f8a4b5fd224c01ec56405c1c7302d0318098b9f893efbb9f4e803c0190683cfa10388cbe86230e2dd87290e6a47ea2aff71731b18d3e88dc2b4370cec9a60149a22d0f67c1053a637976e39ef6f62448aabf9b44f34d8138f06547ca6ca1df6abb984aa6b9e17562d0ae2f2dd8ae9be7f784aa768742f66c29a82b2a443b6a82320ada31b643c764a20d42a22c1adb350214b93c881f116612952ef8c144e543d24a4203d701a1e52448fe541a13c2e658482b08819ebda08f48e02d439d9b13229fc8e7a0724ca7237c0e7db35dbe0e5a24bee2d9f1e60e28d28c7651094e40628945f167a22d5cd684e35c4f57bf2e1d1a742b09bf024fba22d132c856948e58b026553f312b76602eba8ee8e806e8a3063a32dda34fe0ff4cb675a33a2ec0c9d3c3dd11cc7d5435dc4d58cafee9c58c484c08419245e168a239cf0dc7546a767b4a3f42b8b9408272cd0059ef862505d2cc9b7cc0c2ecb6a86cbccf7f03d3272fc4a740db41d579bca570a2e01dd96ef363116f7caf29b4126dc1291ae0aaebbb4bc028d908e9dacfbd63b05fe57db45003d1a305f38481f9d71f0662e6b11610e472ef29e6122f0dbcbfe3137b06032606bab81a2804f6f8daf07783fc96b71bd56578d54ddec23ccdd7cb0a7f810db892638ee780d215711c628e39ed5944b0b7330b9feb5dab3e58a727a2b83887cf6bc1273c6e58e68ca7359f2ff8f3f6e5c25b51cb9391416c70fb6730dd4b79b28e3dc092e90922f5586c2b675b6a36eeaed521a4bb43ebef58988cc1acff59ff2cce3c4e4fb1ac983015903f1f63bc4765030795130bb1623f0187ebe7f8de2abc8b93b41c2d55ee0c8c362ffc4d2043a066fd458c7af0de20b4bf875557b9ae9b2654f3df9bc5ccf18ada1f9f97cdd6706ee4cbc53457768a40c33d70adc6f41b606037c33d603cca9218223d5858bae4e3602a3986ba9bacf9e68aa1c6ce795d60e43578b832ecc45ab4f264ea0659493ac821e5e8061f05b33372830262248143ba2226f5c5d0e4da463e5e8f61a35ec05b7ae4ebc11cecf6f8eff26ae47db410ae7abf992817b490d3380f922ddb30ecad9bedc1f0c4cb79afb09f4118f53de5b5e6202eb9b0405f42dec65d05d8344259f548781b42fd1a113196390c6f174cba633ca8b0788de9e03e99970998e24a8bbc0974f44429f332a0a80d87bcfad4c5975d80182041bade31b6924c676a829d4187906d3ea39f9fe5c917d8dfdc053a18b9911fea438fffdb0c4cab5f727b3b26f03327bf8ffe4cf089effbd08ecac35082cfff64c774167292be30ed5c0166e781627d586db5aac43bac6718721b52cd430839463aacc823c1617469c349d3cc1cf80792dc4f67b75791c4ae5cf028bff28327e798faa67a6b1cb342ac504bde4f4887314eb88f63407adea4afbf3413fd731e7a42d2aee2a74ef21557864086e20bbadd7382c1dc00115d7f52db278d721f450cebc984ebcf179b79ae0651d580d6d5e4f2afb77e800751216526727760bb48eec922ae6364e9f3ce2f49e0780f96ececdea915fb0cf8ee3b4e67e13db3751178881d851b0f46492e344378932254b547aa72bf44245793dfafd8101fc37abadd95a5ce05b13a55d358cc7228a909189fc1d8fc57314e83e92b3093aaa6b51f8f5abe4747ea8221b156b3a732929181213fd6ffd9388047f7dd1caebdc0c04df139a6184ece5bc1f00cf0fd08b71d68cba6040ccc981140863faabd1e81870e6fd81646c7d017718898a847394676181dd63a2056b0994e118ba22e9f83552c668c106109a5b1c8336e09d1859791509aed80d5ea2e900e15c5b595ddaa7930d5006ff81a62d8afc65c5c5e73d38f0b9c159a2784cc751d62518122264337244b144c59ed26ec1aed1ca4ae9fb65ccbb6babc37365e2bd3a7e37daf04596ceda84e1ef73039d455b16d82e5d2497d205bd63b6099a7e6106a9296762ca51e82c77db05c7c21425943805d8603eb50b501c2eaf07a9243979af6c94e8f7c73e82490ecdb0f6eda7b3cbacfbd9a8251374abc080bc8c4c188653f8c355d3488de14366903f878e65e41825f22b579680325cb8a0669f0b6a0c280599b4e475022a0cb23c7ac2beaa04dbbcf5e9d487044a5fa255a20abadcc3bae4a4e663bb8f0b4681321664d842c965c37809ea8200dd2624b5a1e84e428480d7731d17cc5efef48843e0051b487d4a256b2f50941532b7903530697d85517551f5e07119ac46348f15f430049982af5a630c7843743ff25cae710f5238b7d85628d80570d9625071d71e9097fbb25df0392d335b0d4d22e6c8a213be215cf15ec0a92f2cf7845bf54366324f07966a42c52e0c0504db0c3b9990c8d67c419fe6ea213ab8c0ac7b258d573e3328f01fee591ac6b255534342c1785b0fa86459d0985f6e65c1241a18b4c8b0cce14ad474cd38c739045170ea8a1eb496ff8105961741b790e18e5bb8febba3a0ecdc08b7efb2c2223a8aa46914309ea39a33cdb661b536d5c161c747671ab1b97ce1cffe9d13ab5b5b87e832ffa336a6133ae34aa490b5db5cfe83052e8f6c0c4e84cd314a9cbae46b160052e0c52d129e886c16e8b66d2486e214558439a0c807e9c3ac66db6b4669ab7d329441a20745e9f024ea7343dede194efdf110bb826059b453bb64ce977aa2962d62a972a268ecea780393ca8e0ddf0fdaf3eaa5a379fe3d26cdd1996fbbc416b9df5ca9a5154edf66b45672b1bd3a85234dad7d16c3674cb2555c1f31955a640ab4f8c43e156a18c29ab33bfe82ca2888299979c8056b13298a0e6ae33aeef0bbdedf1238a5c42e8169ee5436511c3e0f0d32a4be71c7814151061c93a81b7b8c0b02f4346ed0b8fcc3f00b5c3a883bad192f34b37251b4631c95e8d802223664c86c897ed9f9b3d53568bc2c3c88846ddd293973b6660aa05d27479e33005860ddfa0da804052e1ab6f8d85b609f584f8ff3456433ab125388905f51972a4d9b918415010364a2ec509db68c9a68e80605996e13496e5c0e693474af79573daf83a961bb0b275609ecf915d1e4fb30a452726a89a4979d09133392265b68aac311322a7a44335d2fb5c904e4f302aa6404e49354a98ad17ed8eecc52525a68d40884a923999d76962549211d78c3156302a0c7c57d6aee5bbde3adbddc6e8b47057c932bb196ccd258c7aff9b3c4d6f113e0793dfa692e6a3e7ce147d13620dfa4aa4162c1cad05e193055d6847d29e7410806a93db99625e0188904b498277a6c0269febabfabc66f6d6e902b65312fb89e1bf18859875e6e962da86a68658114e4789dc1c8df58c888c608c5bca2e2d5a983fcf9c7fb7eb52c825ec72bdb545020b53e0a0108532410e14bc99033257c04bcb65a8ee4b5a7c883763842806ae4f01222a8e5529c47fd68a707cb43dffcccfdc6569747a97492eb3ee5fee84746a42b683bc64e265d9bdda81d95153aff86632cf05305ec862a69a25f199c3d56a8a42139179ccb0d742b3b97107dc005b31227613c3e42f5fd3ed5b5f13598d542cee10c63c98c31983da3bc737ff5e254d8896600b45c0b7c00f04701f98a56f12ac93da0c7d4de1f0c5263fc2feb0f8f16bfb7ba984f9df65f139a592c47bea26cea2c72b942a8da14cbd712d24a0c0f15e4dc1c9641d6d731487515e03dcfc36d1bddb0ca73e93cfaba87a0bc377044bd7f3d56b6e3d123816aa442876f3b6a2f3f9eb50575effd37e5705bf9f051aebc73397ea2c4b8379541d56b85720f54a16ba3547f7d357713c026c39e06766e84d5f0e1a92f8180c803fd654c4327508b408bff844e9cd2939079a5bc52c06340a9174f140f3fc6d85683c5f54a70e18f2200c866b29d5001c2460c79a9b7214e7e01863518829b85013917884291265c6535af55379a6cb8dcc78cf9a22909546ea722ccbc8c5bf60a4f8f0039530516eaefae0bb624fef4b96e1e885c421ba700b02cfb3e1c9043117916df9b9d13b9efb6f9fefb7446a12c8a81310e840c5e3e8c13317d559ccdc3f76df465825810112730f06e2cf1d4f49792fb213c2fc8fdf031164717bea5c588807e440ae2163d188562bfd5fa5b3f92611cfcf162985534166bb256e259abcbf17bd80d77ca0798c7680d2620b15516c890683e3f23e8cac03bbdfae728e4268a4cd77b0585f0e6b08582436a192d56321f0f6570caef4d1be5820d309402a8f180c451996e2c5af9861af3e57fa83e629c55d3de3d33a001215d63e512a0ef8ecd08e2e65498e715c16276e6d44aa2b72d1c23e7fd060b47885a78ff50bc98685ce3a24e64bf8ab80666618aebaffd60fcbd37dfa2a722205e8edeb3bcfa08ff969b03c5ca5d05404a36c114f14e5664564a08d30be391a1b8f9de20423e6cce458cf85f04f80e75273ac0cff80acec8952593a4be954d3c4e058a7f8f752be0098f3cf4e5d059841dcffcb38a88f7db5807b32df343294716ee19520cf8da9c0a5ad0a471c9e4f980d614d303554ae2c654e2901c92f0f59845cead0e0daced997c11596db2053b78dd42e37a9bd8f5d2ac88e4e7631de9bc54068b20ff4afae010602984d999f94146801f464d97adc94e58f5279e5095709efb0f36fd45361679637dc863ae3f157ea01014dbfbe5d6cd04c948bd90a78b6dafce4da030259dc77e85cd20abb720f1bc71065b7354a53bd1017adad5f3e58ef9a91e7dd3417a2f7851b06ebd0baa747cdee4c4b0233d410d62ab78992fada85a0465d1de0dd4016e55891c718147bc9f6d822dd81e496e9e69b823ff674ee35203eb2d37f94ff0b111174f2e14a07f0e6471e07930f83c59fbb55e52c1dc9b967070039414b712a80cb4395ef338773c0bc988edad1c161d0c1936007ab3c1041a7648ea613969447a06f2b742ecd0e27287ed56e762e858c03359a8dcf3a12d08eb714117e4b576fc4385bb2ea5467290cf36746618f2eb00e460f0d8b01465a46eb99847631297c7c7e4af7dccbfaa138dd498d54d25c4fa27200141849bae2ebb0c8aee52b6fe0e509da56f9bc03db7ca56bc1666d07852fea7e55d7e2a1dd18424c216b25e6e8913bdff0270b740c099f3448b1bebfc7937844747fc8e56d85c74a1813e8d6cbb83f6016048c5faa3b10f5edd7d014bf40af39fc2d7bf3f47feb5ea10c5096934d03a84b1d4481c73b7d6de05a60fb2382cf1e3ea460f89907181cf6e4ef06df357df0c1f8524f4538acd11f137ecbfa3085e14f9eb47058869f30fcd7f5010dc39f319bfd8374f77d6dbf2e350cb1834f5a14e8a91f4c67bf0ff54c48d0253216a74c2b17b1f299f5fd42438ec2ba544a2d6c05b829cbfa734e0c8e705e1baca1c79d9cd98874282117311f05fe841a1d0d1d47e71a4dbca7ad57c633a5549164c0ff6c4334acc709a3a097853c9cdaa05da3dfcbf7fdeade89311fb92ce51984b3a60a21cb7f7166c38721b0703119beea00e55b17148a78521164740813e16c8e4fb188486c815cf3850e86f074ce55d6358790659b5dbd6a89fb2b434659ca4e91c6dae21af1989e428ee798538895d0ee5b5eafefc9addd63498b8f007f20d6fa8cb1a1de35670d1be6dd42220de0ffb6ee9e623a3db92ddbee32e4d4a0459a6001f19120778eecf0b4a968725231ab9266a04725fac88806759a942a8afe1471c1f1f240e0b89df9e9ac1ae28b24235166281a8ea45fd2ccd6f2397e298ea4d39ed0718c34b6b273786536e5c5647fbbef9f6985a6cb9174a04708bb55b2d9a02d9606a701a3d96d0d89812917a99875b221d90d29fc8db7771edfedd0a6bf764c6f17eaf9f44c489abd888793b54dfd2f7b93d372a28608019d63ebe2d3e5f1ac3be039308523ff65c07a39a0f31277f1f3a15e03a5d2851ad925fd0b23af287c9fd6e0256ff5e4160e0ff0ed16e4fb14f527bde6e3d91452539438832317e8f3d299087e6b69c2ca5a9b0346fb2552e7dbc1ff345eab54c495585b8ad3daf853850e48aaf2f11e8ec2b74efd488a71c00ddf2bf46678d20b5166d4b6cdfea7a1411f8c465501cad17f96ad10a164d2b846303ff4b96a29ce00da97e4bf6c1ce720d612579a144cbecf5c314a8bcf20762d59c7e8b41a2e7aae7ab22bae9cdb5b5218df283dd65554c7a7039e927287c32d2170af626e1659350260fe781b31e2151735f99512363332322c5a63d50df7b99d12641eac40f371852bc4e1e1913f882faf95218d3c2e2d9616c84824c6d9a74a5917d46d4aed1e30f972cae99d03225b4d79ad6bc0a78b29a1740bf86c49cab8ad6a53eae780c856535eeb1af0e9624a28dd023e5b4a69add380e55252a2e2127029424aa91d3e80927a170e2399ce43eb760f7c42cb34fc6a9bb3624430021c74a88ce468d3139858d03f86f6f433d142564eaa292aff6e077ce46a6a067ceb37a759b10c49dc380df8a74f0a5938e20ec917818bbc6c8597d423c06967bb7de0a9ee873c5332396ce0c59841ef10bb2bfba11fcdd19aea234235d019ecdac6b127de0551451e163869280db931eedfb926d49233a51ea617e657e8b73a66405853330be07e8e437bce15c48fd9d5ac899140def6a366b24ab91ddb1322901d4fbc242a7dd4ac472b559cd6ccbc18714180b1ec617e33f1fa05549b4c13b5e24f4fcfc681465258de0277fee956dd3fcb303eda27d85d651417707240ba22e3f728cf8abd7b270cb35edfb363c673d38acce54d444983bb19f9f9db9d605eb04b56c92a4d13685591b6d4eb769132c2f3f409598cef9b04cb877b77e84c63a54348270991bb0f3e03a38c3368a4dae677157a50ab4ffeded9d5533627104850771bd075bda644bc19eb972434b301067e27ba1f91b91cc05f7871ebcaf8fcd0ed44452fc00ee2f9c204d903d92915eb051d7a8c173cfd093af43fb735eef42e7d6d789c1fd7fe62b33655eb1e30b55db1f3002ff3e64231f273104a63235c093405ab0c6b933d4273cd27faa65c1cec93f344fe61a7cdcc14c67ebffe8bd787aad92d21499f8be7b651ec29b9c640cbb991e0442e8f7a82bb66f951ac4d9525940cccd9a2ac7b5eb8d88f97895cce5c057968a74a61d017c6392318eb5347b852fbaee266638ddbb9dbd68dc5570e4b33072ff53be339d063055b92be4cf74cec5ef4570338a4114fc791078590b6e6d081c4829e580470792f1fcc7cde127ae1a48a757290c0d00078d16522cc1cf6ad09cf5a8a4015e8f8d3c1b15f0eb754589a6a697b2b2b08e4a292a05959234b6e4d5dc170d90630ac4488020c3838ac6042087146b88f9a3c83b06721ea8029c7a22a9091a126ba473a3d78bc3c254948ee13a41b4effe609f0fa4c3b223eb66176d1a695a2ffd3c64814979034f17235bf6381a56371a410aa9fb410633c53fe23a2112a1e41f65ce26a2658c232edc75c130343dd5c78fb8148404068c27158db0d573fd2d99f80efb998f9a7e0091425de2c535a2a1d2a41a591b97f9e2448ea2b56e3ec67845735e13e5737e9d170265f8d226dd4450ad7ecb7a11f0de38f1bc70d50a2d65da8fbd8fcbe2e8545af88bd2680262650c76d47bbe5dffca5f8824cf5f2229e79f9adf1d9bcba286aacdbe61f60759232c5c87f590841010c75cebbfe8ff40e7c94669135b080d149f659f935c9424c6d67833c7f852294bbe227ef5d5cc88f22c71ee169ebc8117605dc78c89bedf4de867b335031969cad04463a9cabd6f6fdd7cf26f70b2b3d822bba280a76e72bd53be2ba1740371d1a462050f3033e662d0a56b84ba23c5e98ba8ced36e2f59c030caab6ca4d9b348b3bb706361dc71c3d063792a605bef5c38e8b5857d4865a6da65ec750676eaa187101576e986690d2e6f930cefa21060c9752e2aaf05576b3b6876db3289e86ed61c7d5dd5b44093668e67864ccb7c702859c6b5dee87ba7ac9597b134f5e54b5c5cb13440430549f1c74a8430e0872f094c9316256b4091bf14b5743c31a949be857809580048018929e194ebf48f5e005b8ab62477ba3064eb41ccd22dbf049c32bd5f6742e9604ecdf8b682a40ab4d916ccbde4b87afa57eda8d000d9996d478cbfced6329c3ea92fa0142b73d562102acef43c0d70630fd70e9865181f2f1198ffe62526964f85bc66f52893a0683ee73413345199fac849ccff4f406a5065a74e4776f9658d1ba7da274da6d8784b1b68ad35d85324d697c6c7d80f69d39963e60a7683f62b692baf048afe9f4055128cd4020a87a4f0d258d245bf42ed8aa0e402fc8cc12261d5faf70db4bd575b2f757087b8e47fd1ea7e51805e286160f3a0093a5d885e58d3773b03181f946b96897745de6d045df0bbf1fbd76a6c9ee4d36e46fefee94f957c596db1b428fa0ec54de70ec7c7a01463e250e5da81c1e862c5cb69f5944d199c9e3bd4649993c710c0126c3d4c848ea8e396443fe066e4945d269bb5c670cf7f7e35c231b028a388ddd89892377858ca0f1a62644cf5042b0d513c26045a380b6162e98dc64a1744565d70dcb59e7b33720dee08c79438ca08327cad4063cd2b6379e07d031138bb5b264161b9d8490ba9f03af26a0fe58288616534aca384406825d66724ee361748069ea5a95c981967ab649eedfd75d89d204f67c095215f67c8bfac5d960a7a31c930f39d7f87c02a2bf2582e3d64e048284db9a51f2d72abc03354d61391926028830c6d47895972642004b74b283d5e9608dfa359af82e55c15aca85634adbb6a81a5c08e71ec7cb2909d18e198526d5651b2b4f09fc6def5de32177a28d34e95c6fc24f2c4d68e1ca1dce800a1ed383609a0030a6ad188da58336b1dc1440bf387ea5fa8497c83ce57905a2436648e8c166a542515e82d384f5e9a35b0e0197c83f51eba839de6c60ee878c1e24e3d01f81d7c2219a265b9cd2218be70c873d6852ecfe1eced2a5e8826686b4f1175c894471f211d628fc024e61ae8f8b5e5208b2131aa8429e5289c637514b2d03d7a69003aae5d9ba8c88b22258f30bf7ca81dfdb0aa7dccc1c2a2e5d9383ab8d5ffc29cac840a0fd0bcde03db40d361db429e2e9297104cce75b448961900d98c0289c8394bbb5f5081d04d2abfbb5218aea20696272dceb2078c4812902d16e4b234e93db391338884f660cae14ca0b8ec391ec04e0c6635dc8946d7cffb2afe112de09d2849b16ae01585713aed5d64f01535895612f0a08af97026018256e65555acd6c746c6c245cdaba58822a68ca9c510ac4aca6a5af95c29c41725127a4660797dea025eba947a6370d52cb3992acdadb82d2a49351318120f4828dd7b169187283469f66160ed8aa824bba6bd208c41d5b746dc21d5942aaeebaeb149baa74baa15eafa2f85e4ff7c418a11eb37517ca13d2768b4eab153819f4e86396ba215d81bb99408647e325b2c7e0e8209f2ee418d38f812b830845b286332739b32b9332d60c5aa598a140b9b04c61353d12630587a13760429950b3e0eb9743e593bc0792f9b590d31b95f81611e03e1c00c6ec72da9a37b9abd29356e43e06452a63106e4b29ade3483d9dff733226bd9a74de2d7a6dd08f60fca717c1b5a5124134128b66ab923d282b5d0cd9a51b79a83c1aa4e7fe1060eb524b0c4e218c1121fdc6e159137df4e23153a36df88fa741e7ec70e4d4b8fad38203a45ed75c83284f38b92cab4c9cd747e479425685eb08792c480d32313eec0a261274931c19f41462966eea10841e23e60df2a9a09bad06719f940075732a857103d8e94d6840d09dad82b89994b8bac1377a55d0cf5680b84d4ab0ba6129fa1334a0e8a6152adcf85dafca8d4909aa1b68ea795905b50b1a3cc9888379080a6f4ce2e8e7878cccab2b97a29f06224c4542fe2c44581c7c26a55622744ddb651e4c5facc27f59a965fe5242a6cdfb51af3719ef96524f14a293de8cd96a6f86a86d90b37b2c67634d9176fdd8eeb13a397f050a7fbb5a11ea64db0a6d3c8e71a12198e5bde20d21b8d4bd493ef9ff809aa4542792c4f96ab573ab29269010abdf7c01aaf0f8dba4a365f528a20fd2c058445338bc4fcac574b9df8a573d4de93f77337ddde39323e1a4a83eac4b46caabbad2adcb53dbff0579f7c6b8088cd69bd57f4bec514d2b310abc39b75dfdba20677693615e5bc8401f654faddbd5c670702fb174730a818b5e094659cdf5fe0ed832d66a64bfc737b401da1c627f00554bdc967d16aed0e4ec03789ac9dbf6e9138328c8a37d4399418775026f36d30ac13d34e9d87b185419a601138e1e6518af4ec1a669c3b972f956264994096a62591e86a5f31d6a26e7ef2e4b2080deab701706ac42ea380e8c435d13c3b9756e8dc50209f83e36ad3c4efee95268520f20088fbe8dfd7981161152ba720487c9b7abd24b580345b1544d0dae9fd47c1b5eeb9c11290305df22e34afb8083043d33bd0fd518a3427ac508b36e029b392c886db6460a0af7d6a461a52e6e4ed980c002fa5317840fcb396b22892108f893b6cda70ab6770f455de77509b08d423f1b72be553d921756fcd6f2df370631708b77a83a9e4b352613ac39bfd1487668165eaa8f2a5dd77af0d0fcd9774955795092aae27da3562f77c40c2a85aa6c960bd50984563349b9f906d548917266db25748794831cf0991c4b042d07c0853506f5c0ca5b72d036e5e999499be10d0c78de59620dcbe3f0f04b4f1881d3fd1bf54092797d4a61e108cbd2dae97314995e3615182dee87b60a9f4f352fc01d38d4bf8005eab7dddbf1b3aa6d359b89db4f4968800553ab4f315240965316d98806da70789070183cbc331741d0bae28266759de131066ecf1c3351d646f2919e3e76dcce31584a428a011296c9a37cefe20672643026ba69803cac969f44d0274047d943a621d7586b5aa23bf3edc924b360a9220409dc883192c0e05d8b713e19106eeac44545ec7a699a6b8f8c8919c59141cd8e3e8793458e9856e8a761a7a5660237aa8abaf757291cbd835dccd11af941cc2697a86bce01168a259ac1ae7435e15a52c85603bebfbfede7b427b78601a774c553e6fb0144a40de54260d473831bf9810d32c47eb89291cfa9abfdb959a914c7739bd86741e33a60ccb47f6fbd922e4861f68a097a375839ab75f688688bc3151ca9c5f4482353d14b90cda768048f99a5b894cf885dbbd0b27169bfb3460328a6c7a6f1b99c9616cd3f1bc56b53f0ecdcba39c84066244afed7e59b2ea63673d64d598b10ad25d0dc55ae7a97ef1de8163a34c3bf8f449017f9cbe92277eaaf47d2988a53ac38f9a2a086866efe59db51bd0013fd4f6dd5d6f06d1a81edb069ac003c74a6e1669fc13f69e01c4bc14121808b334283dc7a0795756fa8933814b77862b39c0e90be5525310928a0482d72afa6bfc73f55f66e7d8355618e312242aea1aec34c634d2e27d36f4515916fee467d4f6c53a7a7633f18712e3132ac1e6d848691c0f40cdea29679e5a1eb85091f1fc1bfb739cb227e147ca3f761a630a1317d5bc572ffc33cd010083753450c54f0992be344e0c84c3d0f84e2e17deeffc3ed952c409f8b78f15444bd2050e06c244e0298747e9312e89a0447593a6527bd753774d36c94f3fe0ccd15d4af71aa428f0b1ee5bd7250edf5ce78d29ecd74723d7c46e8a749ad05815e2fd0002708d4d5fce1bc34872968a5d2b8cfc49168fed0a10b3dd8bfb65bd7708cd00338cbe464c266cf6bffdaec8789b0281250fea431e45b28dcbc59c826f25cf1ba96dd8f034c54c1a503fe72a7cacecc2883db86148ebfd15968484d1035d278ce67c5b26b3f10b1e59eaee8ba7f5bf4f166497026067b228ba502d94915f573ebdc1d0a3c4a7d7854d1c9bf2e5f5fb50c8319ef776608918284c4094113035da3864ea29c8890d1809f5e9eaf0a0dc34cda20ab6ff2642b5cb1bdfd878cf84f459560637d0e355215489261ea213ec4bc0e53bf096e26204f6dd29bc4bb68cd0fbfcb5fa6a6573c416ac98192226c1889677fcb0c3c9521def4c936a4bbe8ff17cd0e10ad009225f3ae29d7650cea10e4f9be41bb02cdf7431bf441b4492eb1f3d6b206464b298be6ad52cd97cdb5774291be1705a565fccdf4b982f8d7e213b78c84c372d527f898f9a4a72b9d68928729e154d2c427f8b10881b3d3f962cc2168793e76b3248cb7c83effcd82f6288d57aedb2d31223c683fa8d27020893d4c315aba73c6bca19fdfcd288ba3219b08d46303ac13c17259266d77d04a5cfc77ff0b4d3a6f80de8ea2d1a8c916a507413a65f2c5f686d176667703ba4bc4c2a9739abde0bd707b1604004a18d93c0963f8619da4370c5768c4abde23922cd72eb380619687006dd7d0cfa461b212c0b2e1734f00320524497c37b11da45fd6d27e27b568eabec9b1458cc8dd4004fb3d2c6837b17d914e178a3790997d2f39da10bc1da234425b326256d1f9e5ec969c734603f36552b0f060bee42207a400a549570c26da1dec96bc1308948d8bf533c9ba04a733ea725e457db0256f5202ae735da7b68da49d912ff93d1a84355dd09e73335a955173d47500ba7b781be335b0e1d95367bab0c9471411ef7c84b67278523399e5e28ee16eb30eb3f02b8abdc9aec8de538813d008c36959c50f62b4ccd336c758b14fbac7e6056750993e7fe73abe01e45e1674206b899a67cc48967a9e932057de5c85085b855ae3ed4ef52e9ef5a5eb96b6a8b5ad0f059e3db632b399619d9c090ed12f7ce7cea1a0c8b7a653c8073819b56ce19b9667dcab0ee7a422214483f5dcc292e8e46bcb0a3c07ca37f662729a264039885f3e59db44737e6d3dcdebc1863a3b4499ca086140252ea30dba8430e3fd8158b3a46e67b49f4aa79c12c798799d60607955af3b45781ef394b22ac517e33dc75b4f88b2ea1a088626aad8f912c3f68267e77d82e6a7898b616d7e89f1cca3910acec34a2140baff120b620317c019737a82c9f1b80213a365b2580678ca9c8acd164c0c858abdf027d97c73081373678acb6de4e981f1c74f1726e6e937123b7b9ce8abff6c66a2c557c53e76eb1bfd6382ed645518ef0c25dcec91d564d21b051a9ffe312aa98c8133c1a56f7c7c16f2a7aac099162ede5a984fc25b883fa2d3fa227e81cd5442b215b979ca15fc59593531140370a68eb65e547ab6ce566d610c0713f4fe9b2951bd886e8f9993ca7899661a11864721b49a7775e8d99e940514edd0c51c7d70bd8e1a19d4c95105d775d491419d1c55705d470d19f41a8c2f95dfb39804f1c0fcb5a16fe35c1e9099be4e771491f22978a5bdf4b4902e9d8255da5b4f0b6919f3e0178fe6ade3eb8e0bbd00c78e111f0fab1f33fe489a1e35d2e8a7e34aabeb512145e1faf8a2a22e3ba40d1230e24440f99a84eaf546912b4e83ab88974e0b9982d2e02efecfdb0f61dc2a8835e3da3177b1603eedada745b4dc64a0171d05ff7241f74da3387ef94e04308a251823e4c6883e6081ac51fccda4d75f156c4dd498e3118e0421d7ca51f46cd82964b6f0472ddbcf75e127c400190e86f11697b567e04c93924eb2c711ba900866b6d5b01b3ed6f51db14226a84e8b1a1e0888acb71e1755b8068cd2dbc19059329f2a9d4102cfaae137761c692794c622bacac5dd765af1c0e06ae444d678fd7420acd9a01172180d48f457e71b56e2d8d8d35bd2b98fc2163a607a70557ecf81248907883e95b836ab556c78683cf5de2d749ab92481938d492cbe90e64ae224535ed8ff20c1a8dfefda9095782571689d40c1849205c040a1c111c6d0ed04a84660b8300120502c282890e55e8d906c99dee74394a41a7ab1e8714c4d842f585ad3f69d11210fe1ac94bdc07164a863836461560bcb1b1faa6b76265ab0f8a0161f80568187671c2d6029a2b9faf59c744e8e2378728034c1e452727172a9325df77166d6c058f940d2b85e8cb83c2cbf3f30e77c18c60676ad9e3526618c7869f04e6fe01c5fb83a5e393482cd667795796025cae5c91709aa440832a18113c22c647ff1a91076b32fc91fc27eb7ff0a8c51bfcbc28f555e52a0abb3a5d123ebc3b4ce09dcad185895933954906f25d1378d51a74ef751faf042375432db2516be7844d032990fd186b4fca9703f23201500f702de23fac8a1494dbd662b5af44ef794f9ba8707e0489eb1fc5aa2291bd041650e82fddd39196fccf4dd50b4d067d9903fe2f0045ccad39423084304b36174d5dce4859d16a86f1b4c5e621f91d5da002c27633a5b9c23a74d033996156ee0b38fea8729c3cf3b7c30d34a8fd42e965718a4c607ae5705bc0ab559dd708ec21e3da5aceac4e736e18c2fdb3f2483277d8226ec2fe14ab3682509ebf3d30857d27cd5190bfa0ee062d1d6020f3f056d02555f0d1403428e381be87ba45005974d1d6d42d208303fcdf5b1516ed633c628bac05e493479823d3df3a5bda97195bd8062216faa3a79446ad7425c209b0073ab4b71e69d5d38017c386ab0d8019979fc25c9262a0dffa140bf4be3e4efc89d470d838e4da8e6d7211e713a994045f8b3842a3e4be3d8a8a9b158b83de7f3c9880da6441f22619c381444ec8675a09855b0759ed5594f817340be988ee1ee3560d4104cd694b0f1465e4cdb941f44702af4039aec3da0e87e7a3d57769c543827163fe88b3d354c321462e65c6de14229da69e99e19d135c6818e9a65d3ec986146ed433f21ac5d61886776e9d960db8fc400d9924bfd5e5d25c7ef067b24751f9fa80aaa2dd363619097ce778c0a6b1bee9213cb6b6d0a607429004ef477ddf4c5ef5e6f5a1d910e3fa20daa6eaac8da9ba63aaa3c4027942d12b555779ab0f7e3c3a11870f4899c90edf16e61dec4b1f628a4b61fa3453617974e22ff420b277e275a439bec1fff8ac53aa22eb646ad5a43de0d9920ee57e91f76fbcfe5bce78ff03bd2365797ef62a10d7d493229cb508181968ee523fef634c1163d1c3e0d7a23f502c6d117634436a11d65013cf343ee110b96954c1b496a0ce1bd9b672f1a479ef9b210916e1f27661d0b3ce59b12ebe5f3856a970576c9d101c3dc52fbf48427a3ea4520072a4a9f79c8af0fb1a9b1e28ca278d9d2613315a888186eb82df6913ffa35eca02c53ec6b8029280c0d20a02cc212383d364154416311b60afb843dc42998b0cc4bb8a5c9be295583f7a5166df13dd70fbfcca96a3f6191e786e67484f69382c90ce628a30c14870cd2dc68349f2662ac11bfc28cc11ce321cd90b5d82c8c9585d63be4651ac5dc0c5d811b9953c95deecef458a2214699f6b3e12287d5a9c5ab9dc3dd8af4be3b43369c012724d1ce19a89f637fe307d8fa2fb5dd165a08b209b3c54c8b75388e0872c427c6a2e8506ac667b77edbc60700e2b241335708c72e21ef334619153fd9f0993239f10b1b269f01871160beff0dd3e2f538476d1576507bc349ddc3d30c56aabf78a5da3e5d64452614641a0b358094a0176c6ef1bd0849f2ebee5514eda4a7f449a417180f37ba350dd03bc270b2f97c829d2697939a1856361ecfa73bd6812b4614482226cd10ece42fdcc45bd538f48869b9a9b10a1e2359c14c815a6ccc2738be9f9fdd9a57f36941f6f35e59949d6f05728e3993f5ed68f4f76012c71894e8b2f5454a4c73a264b71a070731fe2a171287ec629cbb40174ac91b2a913158863bdaf174efb41a2694246636e008149fbf5ec02b68c8a9c0cc8fadad647422e49a02793b69aa2b0916cc405cc625f6b4181b63ed87b2914babbce35cae62cd993e47483ada4b59cd9cf41c1de996b6e087178cf88b4feec0eb6d9d5e29a52a10b4560487b33ce5123c56da181d578611400d04c1166e474d5fafcae96a0ff1520b102411bb98480152cd7d91922ab4d162eb021248142767a600edc4844311cec1276fd3e1833f23f04d0e1fac842206d276300c45041a22e239af55e31d6ef05d428fff7171c02a1c6d400e23d244f1f4a0b01768b68aae4fe4b01efcd4fcbd0b099f8e6b132baef7d1aadccc5616ce99cbcda6f832d2c8a6dab1eff301caaff4eb1bc05fdf864e2f1aad54819d2f821570080f4c41c2b1dc4f0420ad3e2a378a9146a1dce1649bfeb4404c72054f194e5c0c6aba39f9d2fc8dabaa19cc8dd734a66cc28c8a0ea8630d3cf27edc25fb554e741372edcb806e9d95963c4665141ff8dc5c5225807ee0877d973082bdef4273036d616d4896f9736c3fb21273f128b53a856004191a8e234fcf4072261cb9ed000b61b34d348cea28fb35245f246cde1a2f8fe10461d1cd70188eb3fe0c4408fa000c7df5215eb3f7c3bb551fd1adb1b081f5a4f6189705a60371a1f12e29b1c59bec87c11b68530496ea446757242bb356ef53fe6692047ccc19d672dfde347031800ecb134243d2dad01982fcef7b7fb390c9a19438839f1aff30fb274706ec86366d6cd63acdd19c48f4fd74834bf2e06befc38288a4ab2b17b4817abcdc792259b916d291e9c382e5191c78617206a62b3b708e26fa5dec76e2a78fb7712962bc46346fdcc692d8095898c85f0952054b0d41963541e725c94572a26b0d2c4c76bd52ab6d1f7046e605da8770a284d08f6eac434081571d6c21790161b3fc29154a6ca524d39b3c3419cdba63ee4e31911e9dd3086bda41556ba1c2b7161c1a48e0f46ecae2e73352ac899aabbb301387a035247760f166823697bc5fa301b6a61174cad5a7cf4689ff7232898c80ed7b6f2f8328b607b976dd8cf9c3f2831792af87819cf9406453d8a1c0a2eb92a82fd0c14b1dba0f46ffc724e722d22aa660d7c336400f27c411158b2c988d523aab531bac5370670653a9429ef4f038a2b3bed764a99fffa2b8da6792e1d127a3ffb0dc47e7257cbcdbbc97a45eaf1fe472a0f4a6b2c0c01551bc0218e649b8311a920b32612c7663199747a83334cf230fbc5ba130089493d62bcc6de1ed863ddb193c39a411353f30b1b14901668edd76b9097501d0a3d3052488d918167c22ec7b8fa21b1f69840f366a674f880b284fa33c4705772d38d63a1e20a8779dc34e8155994d17e75076c3de40cdb8d4f94cb79f55e9da3111d1f33ea17327b760cbb07fc61c41af8bee9f65b2f603e3cf702072503eb5cb7cd0df903991b56fdc15cce5e355ca2240e4474f1623cfac83f46db9727ddd369ed8ca363152375f79d0f3234c3af8dd491180065a09cff60c1f1f242552081d4c65b0db0c57c28dab8b2766bd376dd13e636d39051c8900740634fc6f7ae6fca5d71f56eaf9638da0066c5025b031fa5af900f3fa17ff9641abef698d4fd8f539ea6c4edf7b0e86bc5255901380a795a90cd135ec0c790e26576b7608811671214e2633d943808b58d88c4145066e39796affffd53ae4fb7c170c94de34e613af9541830da1837d6ae0032b500fc9f6a506350c8d262201d1d6f3ded0aa683c8139f588955bca1b247c92636c41a4f133940fef9c311e4b6d1d32c670dc371e839d4d74a64e85f12349a25bbf3dd206ce3b06e9b7d41a7a4a932696d6b753324e15e194b6709412dc7d6479512892ae6d37e3bb4f052a7162bfa98ef0b69810758a29d6f2e7e656325fa9d1de6f35b2e154c83235559e1a9361519fae8f4f7bd7308b5129ecbfe73fc6d41a452678b3d1b9863604022b3dcdebeab2ada403e717d76f6561db9ab2ade4c2b695af39cb561f0b89cc8059ada7f93439a8b8fa6b4fc122d0f07b78c3d72ee72c8dc3de699d0f2c9558da34e78b01fa848124e36fc31a64c3696278b8058807c19368afb41eea04dadb178210f51b118219a203ff2ca1bd52f1f5c8b691572250e927f1fef62195060637a202efbfba09331a0989e19fbcb588732aff99266035aa09563d54261244959951521b167a42e9ba00183f40abc953f09872622d436297e76bc7f7ffba141a93d3cb821dd0d5ea1574942aba203ffc57ea60b4c96d8f9c91cf69905d560c1a596ba8db9428ac28b0a549c390e067bd50821384d4404bb1bfa0a77733c7fef3183d655f7fedd29773ed5da2169db2fe52242aaeda3294fb7cec7abe4ab4c43b36c5776c062940a6c13984be3f099af3d9cfd68f682546aaa85f039259af263b57034a46e7bcb6ab02841793c3c29f28c88827d7f9200107f93fa9db9888d1a71c363aeee3dec3b1feff9f40e8c8a33632cea098626206e42d4c5456decc20bd431728b4af014b598682d055a3241b79afec329dfb0c436c810ee59c5a7cfc26b541c6cdb4035f038ef78abb7d338c46f380091416abca964074d934238b09c4a4ff782bc4f0f94421a1b1eb023238d0acd80c9338de3846bced363257dd61d43422d252900d8809c04a70b5d78702ae4ff0f43c049df4139ca67ae34f35b770092ea05e31aac5802341e263cefbd93c278309239b0d1ccc79e61ec571684e8e074308d4af481f237650b86db9f1600d0eb9d18f42edd3650b3ff7eba94956ebf91458b48a2845ffde2888262c569d7f4090992ff4cd839e17a0931a9cb44f8b2eeaad2832c3af50ae044b26830dcd280aafdc663d6dada3027c1d2879b5dd7fb950f3ab4901988086677a91428e93ebc3505783a8fd61b120c2f5659dd9d92db0805221e0f6c53f664e5df0663f4c5f6cad05e0891a152f571b72da91e2e89edf4351bd7f02edd05fd8f177b6847ac0b8e80f786efa83761ffed8b15efee299c049d663ff25e72f33b71979c8d176f0d13713123f847027e23a11c8ec487d67813a7255d6a21d4c47f7c9218d30bb062fad01360d0f80c43439ff2508703e54946fe1315f583139b5cc59935b7db8f147170b20c8774c8e6b98cae97fea3807742cae5d56825e1d1c04a0d9760ba24010f1bdc9eec7455d1e0cdb93a7b3f4a216c422ec283c2ba7244865ef799ad421571ff5be2d685852d338abaa4718b7d66e6bf9f99f1770eb02110e564bcd86d6f956dd57e0d37d9a9d4d122e135bd6fc2c8f50795f7d5048209799731fff8dc1c8cc2d89ae824c22f062b7a27aa09111d2aa57a2a57b80deb426a083cc7939144b5960d9c11bac17f3b618a1360ce48b93dc49f0efef4721411c0ffe407783813568e042c17b2bb6c08a913160b642150c583d221bec6661dfb58a6757bdcbfabd06ed1bedcced521e7626b41119b841fd406332947381dff462c1a5e97553c7166af44360b1996fd4cdc3a6da237ca64240bffd7fb6df07b46263ce481751d19da96cf8756a453da33e9823dc6b6c2131515f68e84a01395839022ef93de5fff10a4beea58c9d9196d16a3914babac9f252c20a5393e4c6c789cdb7edeecdc0892e36692ee7344d5661f83da0fff89cb3dad6b6ee19f7fd80b6ce2ab8f850310eeb085700fc7ea47d8174912dc68572894ae1875204915fc0e257d4b794571fb40be2c12fcf7eb8e904dfc75dd8a19e102b1d5fa7ac505ed6025008df7704008688d0bcade6780c6110234223ed5aeda2f813fc70501a76fca064c19515bfaf8fe3278b11b666c003af56a35de5cd2d3c4d2a12f7ea445995d3470dc564dd5cfe6eb181b2c0aa73e37e478de405e72a29672b9e44a61f1267ce611997d4c09b9a0cd0c805a1ac4bdc704fa542e28641d2c1585ec5e66151f979cda39458acd86736e2d568b893d8b63d86613b163b54d5a2f0faeccc280c068c49b386919476db0e1e5254b25c6ead155b911cfc16c7a56ea01b1d89fa1170e4c4c6777d898327912127c4e7ed4a2d8bcfb0e6391049355b33daba49483224bb1891f5c2e4fe6b21d44402846cae44be50e3675ad09e4021cf83247dcda0f77650318435ddf07e523584ec6aedecfd0205bf9126bbee76c9a1843b6582d9cfbc49c37e926b6b199c42c5c27a84ebb951820877e309587129078d2eb15dd514e4e99690233df87b660cef1b2d9e9e4926db79ca81d271dc88df1dbece41b04300ab7d4188ac755fac024dbda90b95bfa2764eea101ad5b80bc98b016045b75881a84d1d023a69dd981e40d8d1b3568411ec043ab963029486033a8f0a805a40d811a903dab58d5352aab6b69611748b0e687158c509e88320c891622e699a8890090d5e6207169b61cdf837dfe1f9fe13b1e780fd665cc04b889fb9d552c62888f0ad8bf66073afb34686611f402f08eddd644b29a54c29c9dd07d007f1071016490059f2e850cb13132e4fdd32056bea16487384136ebfe4d12d2f6c83efcced979e87098f49938facf5213add2229006fa21250d4df04cb09d755c1957e294d57c6a4a4499a5435557ba487db382cbedcb4906ec7b9eddcbeb184d01d42086184b099999d3533b3d2c2fa8a9999511d6a4abd1c41906c64ec200770d75b70a5df2e61e9d7876e63f3c353331d6275a8dde6b6dbf48c6532a882fdb61a2b052b6439f63bc9aa90719151a1de489094345cfe8833a44735d270fcc1d1e6720c72b92194b9b12e03216c3fd5649f2388671b5abdb1edfcfeeaec21f451add67e3eef2c560e6c7551fdc8a2afcbdf14e64c5f3408b5e996f94c63b31fdebcc80228e2d760503d3d6ce631cb655cd5a1184f394c879899d52d5f33eb728cb6070aeeeeee1e4df3720441d2627a54bd5bb2f717e7e13b86740ebb7ca465a68c47cf156cd508cdf7587642433ee7c633ddfefaa3c60c8b4c28e6616e3f570149d2bcb91232572817ca75948b3257e6a24020c9b723ec649931a320b4300748aacf1933675956d967b3c07e10b6030f91df3f3a8de61ee994d1631402909b1d170281421d893146203ae49e43489fe7d74e88fa997b7d987539749074dc59bdfade49efabf16fb877b23e7f1dc0f43ad421f78e75a83bc767daa6432de466c8fd78b5cae19626a202144c9338a8a65b4e3ab483c66e5e58ddc280dbcf5040dd2e59751464f436014c6759f77933388d93d32df1771ce45e0bb90deb50b7cd24b1ab15dfbc30a0bd6f3424d87e75e3b8a81f5582ad3a14a41b8757edbcf2919fdc5ffac4df71340e4ec49961b0fe164e38a1cf8e278c9556789a71086184ce2643e89475f79816f9b3740b883ebc13547f7bd083e443d2e60145cf571df28f513d90b8b1bb6803db29152ab4ce673adac37e9d8a9487fde87db68db0a8283b984275aa532853cb13862ec85c48b305d3109d931b058f1197f2b371eb161d5b8718a6430e9960bf08833fc42f0a11d22d9f9f6e4d8fbc640a727dc7e9f3f90f8558589cff63fb71c2ca934f8cdda22335e18b5ddb69a6f4710ea823520a445f597540127631cdfde28d9e8c65298040a0805df8d044ebe70d3efc1fe2fd8e351a9ce1d161891f19c69884264f96ff83ad1dfc86bf074aa55289f4419ce92ffde35387b11ff4960d177afc9e2e4892066768f1a445f13d38b0dfdff843bc8f03fbd9d8b2565cf86e046843421acef2d1f6f0bde5343d1279f85e035de47baad5357aa73feda76e797194b70da4a1a311eee67c8865070f4fcc09457d680f45dcdd47ee080e1fda6b15055d691914b2caed524aa97724b756ebed7d73e67e86d8ceb5ce612ec2c969513f49e779f1f87b4e9e93a764e6aa9e822ef0460f8473052ffd1b60dce86d301fda4fed3f573069dfefa56ea13938b80c07aef46b90bd2bb99ecec7f6b69b362e527d7c34655ad43f83cc9a49334373c6731ce6285bad51d954381c95c638a949c9363bbe33cc5063b78ec3316f8658e8b58b7c1bb8d96aab5a58936df3548ae9366b70302cdc4b5befcb66660e53130ec7945e3761f366e2ace64c8fb61bcf09e639c13c2798e704f39c609e136c83710c1449c7793a2e864b71286ecb61f1a8c1ed60d9e91ff7f3c8d0785e3c28f7a43ad43fd279624eb68ec3e143044211930bafab3431611e0e47f53ca70e795e3ad47302995d0f9ef2a04e30b802e3c9d5a81c167debdce5a269511c86abcc1833b54ac9b0279f58b7540c31592a957d8c9e28c3e63119cc144b3a319c193d594445532cc164d86eceb0797ef3e0e4c4c0b83cb53364c6c72343665505804debfca545d4f31314968bdfe26838973663f3976ee1a73fc23960bbec71ad0ef5abecc06eb06eb18179bdb878b4b81dac9d956f390ef39cba657a50dd127150c83920e5b267e3a9b6e1f1f21dae9dd66da6b932a22ed32067f466484315d9ae8d654d02c2ea6e402c7429b9fd1f1058ae4970e1ca1cf6a1703b46e0e4522558ba84751c37de5514a2e6f6cfa79182853425e0714bb0638b8285342478c9879786042edbda69e59c2ea431cddc0b694c3d6e491b91757adf898ced138365e743ee061d75fb80e81bbbc56187ae14a90b694c42eee7421a13cd650e020de189431d777a5f9c0e44431d1192400a502a9372ba2e2386877f0407ec5cd1853442bcaed61bf73086ff2c5c00e8bf1840ffcd7039ef4657af014cc3ffb3217ee5b85a6b95d135893b1f321ed4992a49c6dff051d60216f9672dc85a10439743867f54879c8391d1e590f133bc26b9077542803e06d0c31840cf7120d073573d50d7dd3782d26d5077f241de108edbb9ae795cac4333aceb23aa11991f2932be37fe7c7f9e5b817dd0c8c778fa5e83275cbb02ebb27fadcbad4bf33e1baef6ce69efddd5be4474b5b70f5d839c0f301f413779e82596a4c492688ff2301e459b1ecff4920ee7d3d9189bea900d17c66bdfcdd0551c58103f7491097b388cc0705ce429ded7c3c9fdfcf6dbfbd394f53acbea6cebe4497eeb489ee405f6b33816c7c31ecf93b8c0deedb74779da81ecd32ff9910e647fe4f96add71177d60c3e557f9d45cb629aff166715ce593f21ab309ecf6fc36a6431eeb964d6424a75bea8b749f8e2b52f2dc6d4044447a2008c8e7fe06e9c1d771bbfbe2b7c365d9993ce46ee8e17efc998ecb5d0f37eb8090d7c43300d398dfdd0d17e9acab431dda6ccdc9ddde763fe018f908d02ff16287b6bfe12a5d97d27d9f0e5e94ee23e171fd3d3d7cf86b2813f6b35ed82fc574fdd9b39b675930aceb242429215a1706b990a60439176e3716d29440c8fd6cdee6526d2ed5e61a41797cd8fe92d8ede79258494ce574b205ae45534d5f540895e9a731b44583d0953384100683c16030984a65ede7a3718c316e9bbc9fbba2704d58ad2a980ae62a1679ee3991d741724fc5f291c8f7d3147449e96e3f5df968e4fb696ba4833446e5d1141194eb70a026190b49f47f98f5e9e74f698f1b5ccdfba1ef4753b4075ce9cca3a9ca03fbd14b4d94c7e651991635ad41477b401afdb3a329b812434d16ba8855dec2a1d5c07e34455337455334c5b5b818770f12abc1d9b1b971b954aa9898546ab55aad622cfd26b9645231ec72a9605911902174e8ccbc5acdd55ccd158c4ff9142f47cac398adcbc2f24dd76469cc24b10b70b2731121f78d9e2b77afeff1b83b0eff50dd207783e7a797d2814c6074a013bed6da46d9da28fad0e7aa51990e29297fd2e900e355bc1c2a0fe3b54fd72595ae4d9f0ea4438cff7c0caf4ba0ec3f1f03f42a0ff2daa4e281b28fe1b56a9579393449e5553e5ea75ed96799c9090a0acaa3989c642a1d13261d08eacd7c3559f3c7f6223f9abe3a3129992bed5bab2299c7a95497469e53d025fbfe60f637fa8351388c0e92524a483a78edfc91ee07eeb8eefb0d4607492933a5a6a4a4c098ab149a92022325a56bd25ccdd55ca5a4c038e9ce04192b63411a87fd701bcf719707b9fd9964168b592c1694fefc53f0385d035c3845112e19dbf773968ab367666666ceb2eaf1bce6c93c599679d1079792765f0f30e62b6666d634ba7140accdbf62431ff84a8faa6a90c49d82fd2a0bbaf42663fd7ece9a80e70a612d6be5ce72969d222d68584efc31135ff126b662cded778610a652a9542aa5b9bc566b3f9f7f8d85c5260713f10599229082c8787004493b39b1822e28b7e3e70a5bc5ed28e24c2340f2c72885ed6be32348821c677ca71559251ef8179a80345648d82f9e563391e54aa09a70c25371155771c5a897665372b591efa3cf601aec322e9f5cdea2f7d9dba552a9d402528c1eecd08dee2434c8c12e531775bd74ea8e2031a63897e9cee5a62e868110429865f5abe7fdb32cfb6f06f9d4d522fe2d48f5c6b6bbcb3a57aef2d4263b5ae1cd202cc0477570808f3271f9a9121001fcb40874865a014794e5227eda040cf1336d6d719949def9d83eeb4c95b43dacf57590b4da4d1d5a72114807cfd7f7785307e4da6f1e2d79207ff7726852f699474f1e4571613feaa22e58ff379740ab80a39ad990c0a9726b16ec475d36dd0281c44027876df86bcfffd1205408bdb951f368ad1e3dd1d36451eaf2d8748b3f7b6073d5a11f80a8d73f9373253b574592a41e187dd1204caa59d635c903f311add5520fecca5c7e5fc295b8fcd4c5ae4f2be5aaecf9fac83c4f45eaba0cb33710c209e79c73ce49e99c03983121e037fae0be0357d1e0373e23e3ae76c8dfcc283b6765167ed99d480ffac0ac4ab9ca55a9d98a81f61b4af6f2519cacace5a356d64a7d6ec72805163ad700174a81850faaaf4adde23b7a94f198acd564ad266b3559ab66b15699e909f6cb5acc3c02ebae5ac8866443fa2108c2d9dddd0dbb3db99959a572958fa0ffb3d88fdf3b0061371b418ccfa1e27d1ea4f22a70d44a88bcab54fef31f2fc7e7553e6775ab54fef3d68a6317ec9caf3d771d80b0bb8129b9086144e801be46b38fd1e5088288d70e528cac055d40b73fa3f974201d3e2fe365783940ff791da4ca55a049325ea503e9a0f232bc0c5e0e195ee575903450c73a5d975c04ea403ac4f0a08fc1631d507dd0c7f03274201d6678197e06af65f040f563f03aa5725183aa97439364bc0caf415ea35cd455b05fd67a754bfd569531477ca6c4552523ae1a29912103d42e8d0bfb65ad569f3a0975e4eb0f40d48bf232be617c4a4acaa7a074f0cae8220946b7758865744ca07420a8b7daff662b73653556b0dc93bcd69b8cae49b3355b1346b79d7c06696c6f1f92c89001f250a14d9e515f026e7b10ae4c48fa749074d27ddae58fd17d800a44ac4826dd0f7c4b3a92ee6b16d76ddd672fc3c07e7f3ff255fcb5eea35e0f101601a8050eae6b2698357bf6d39d599d33cbea14c2be5cf5fa01887ae7b7caf767fd3053e92289761504f5d22f7b65ae0ed5a8744caa56f8bc4ad72457f9286bb9a8bf56fbd1b256d6ca5a540727a93c5f1f2a5e8e20481f2f6bcdb975d501a365dc6075d9e9093e3d754b770b0db486c23065315d5d669aba4c652ec3e6eef61c06052184b076ad5e8e2062d7d7f55ac3008eeaf3d31374015d96979fa2a8ea32ed71d9a335a64e3e8a3d98b9e422eec68ebb5a15ace604fbc5123f3dd1d385a1277a4a71abaa84e831ba7b747777f7e81eb508a143d1c191afa2334be9ec55f81550dc9eb009eb969b6e89bf00f9ed2e17b953253cbadca32bbea2ce8e18a426e2c49d68d3ef0eb760f8ee5a6de1fc736a7173ee06eebac71d7729134a0ef351ec0145fd45256e974aa9e88a291fc9ccd876b560542716d349c9ecf4903edd6ef65857a7b4b7666e8e9fd226b9c748e4a709257ab8220c6064c16d151257b9c8ab7097ca5dae72d710f6f3982be6b1149dc26c1bf33b6e4ce3fb3be54f77ef93dd1d7a18ee39aaa6a234c5284df224599246bef4aae58fdb129443933869725193ea8d654df2d6c346d9a90ef5735cdf36b9942f23737ba6676e2b0169f41270a5ff934bdc7ea904943fa4496adf9edaf249966ce28edc2f7a3ab8712c8827b812d3a13639d735499e24ea763369eb409b97437bcecbe121c212295210f1052426e6731be779cc755c548a262e8a60a14b1770e42f1bf7220d67f5341a6424375c119b81a5af21616777777bf2bd03ac7337203f08d395dfddc73a22b733242ccc47198e93328f0717f5d7f70ffed31e58a7c3828ad7ad978150e11a31a975aa4e10a6db3a1dfdcaddc05776082edf1c9ac4838bf8d24ece4e47ec3e86b9ee75bddc3b3e120114f193c012c12cb8cc1c02ba85f592d73a1d9a3af6d37119c2f793090ee07bd17238207cf626e266e35bc8f5475669a7db913b25137750a798124308e32bbeb61e969999559f659fd873a63a145f2eaf2f692361326e7fdc812e24b75f967c947d8b85b3faa424eac6e21076fee738d045f2b5ad878d2fe822a447f1a5453d8a57401b910848230be8128be0adc74b26bbf461a077da8d26e8e23106575af26811117014bba0b95f8cd960430d350c209a66ccb85f3499622669e282fde2ab5faf17ce901db6e1ff723b76918734452f9ae00a132f77b962ccad7d05e996f89069100145fd2c78c1a03f9ae04a7f62cc69e2aaf934a2a3a35352cdec60df61d465d3e597cbcd8df2eefe181de523f7a2fab8fcacd304fbf9ea8a5775c265f697ebb88eeba04e371b0ea2c85eea4dbdc98c803a10ea784a1e55b77876f44ea36e477677752a7bc98c08422a7bb19911310681e34a9c09604b16e34a9916608833dd86cd1cb8d29f6961c6b258b74c2bc0503f7b132789eeeeeeeeee6e9897e94c9c4ce7663a990e6f4c70b95e3add0283c46a70766c6e5c2ee67280190b4b28f41f5b615e4574411758334bd2f1544f97bf96ea8e6aa2300aa3b0cd73273467a93cce8a2acfb2e75e0b7d2c77c4f3988bf8456ae5acdd3e1feddf138a45137439b1e00abfcbe5ea20dddd31c251640da1bd0557f823cb471ec56b0897ab685dfec84ad9347dcd29d4e0682d97524a29a5945242969239d66aede7f31f0a45545c4556b3a0260c36bd1cecc41798b0052908cf114b90262aa2224a2a0151ae47715b3ac1f264234f2eba893172d006be1eb0822e1d5150fa4dfc71714250802bfd5f04820d7702a4d12f3d87d1e08baf20ddf2c9d35df928be5cd4aa4fe8bdaf7ee8f440ec55d2147686e723bb4cc195ee188b4197f8822b5dc051bc22be6230be62ac192585adf78bac2fbef8a54c4921f69329501c4087ba5fae6ac858586ac8540370b077430af6832d1fb913a0a89f0a36dec5cb0b1cd9acb54ab678c2c60ecd000ab8448c14afb9a261e6cc1fd366bee6cd6ccd76750da53d57ac39d32d3c6764a64cb7c49fabc9d2b19fa7beb99aabb98ac2d6f294abfce5425c865dccfe03d5dd5d525253b5d0b1a0ec72bd790aba7097ddcb5a1d52c27e9e1ad2a3c972518c66230f9b44c6673984c4fbe4ce6c8d78dfdc71f945bc6fba38ef9b3c2effe67df3355fbe39612e7ff5668cf47ee0d9c565b8c23a56bb9fa7b2166c4f79aab32d8e30d21d8307b22f7bac52a55ab307eeeeee3ea7e68fb2f29d55312ed854f494a2a7d42ded59797e7878785497dfb3c393f2cc784e1e98cb1fbb71268eabd6ff50888525326f5258cfa521a215bfe9464544fa5dd5822e3d71f8595818e73f1f6b6bac43d9900eb1e729411794cb3c3ca7fadc56ef063d3bd2f573b37e47ef589f7659ac43dcb5562fd361d9f668bce91097e00a3fddc23a4e87f837cf611da236967b7eed3dd9436863fb6a3b8631dc4fc56ded3e19773eed3e19eef470aebcf13d8b655d802e20b05b8036da0341bd43a08b4e3fe42887a33f76f4c2e8f910f91bbdca7e70f432567d82e5e717e9da53f2943ab535c913abcb273f754b770b0db126c2f00ba72ecb5cee13373333a7b6aed5dacfe79f99736892db704558be9fdb74f74bd95c11b67dc8771b7e8731fdf993be0ed26719723cf9e8045d625cfe88822ef2f2c7948f6abfa04e27b0b03bb9487a11e5227e19c24217b58edbc438c63ead34246c2f56c66ae10ca181fdb0c9710581cc6231af5859c6724f7daccc6a899dcb1ce370b663a55aa956aa956aa55aa956cd5e5662d98c95b13296dd5e14c6de3102c117c49e03faf2fb68082631e129b852844db95c285813f4878db79fdf7321102884b8ee315ee67a06f4653946e670c817d8120dd5f312db81c1a2607942b40328eaf72a60a81b065d50b29c69f335c8c1fdb2581626c8b914ec57e7cc605266b00e8e42393b4e9fe7a65b201027f0f0943c2d204e60e27e9e976c879b00c579a5627a94c9f48e8d0dab6019ec66b00c666dc9b333670a458b9f7db53950eacfd1e71790f25990dbb55afbf97cbcf7523c4d6e0c6f3417b272b544ab1a9d73466ddbe69cda46bd0a3429e5513a900e289f47791da4930ea4c3c9c378185e0e187ff23a4830ea7f5ee561c0f818303c507d959af22975fb5a49524abe7fe370989898dc942e924a6a4ac70449e56a8996c29590588f87f3542d2505068c823b1448a29d7cdb7ddabdd3765f3d918f92398a868272828282827282e2414139414141413999b3a4df0a2fd49a9a5a53b5a85a7851b5503995c44a62253a26291399921d9321262793189392491c818dc0dcdddd3ddb5c79ee37028bf182855ed8afb6cbf39894a7628c51d322330cbaf41c8141170e86e976491770b4b96089155b11e06863b56c596cac1f1beb4b746e970ce95097ecd4d8cfa45412ebd0e6da5c32f62b817d2330912cd86f63c136d60fe8b2d5c09520c096cd0830d4cfbafd9bab87fd4a62d96a2b6d3b7a8442d3a27e21426e6e7272860c298965ab9258b62a8995c4e04abfa3b43ad425b1cd55ca76f46804f60293c9fcc03556c766f71b81a15ce98da03ad4233026ea7db654bd6f4427f3be91d8cddee37df566abeb822b293436065736d7e72aa9d32d3b3d1a81f13697b7b97272a6b7b964f293f00c3d1ce08a74c2beb8f485afd56aab55fc4802170f70a50a5cd808638c3056fbf9d50e50c48f534f19d8a15be27cb11146030dced0fcfad6a11845376650549d081f0b8b0d3d82a40844c8ce8d8f43a4b9d1064a913d3182050b8108c9b9f1ff6a23d91396999973d4d0a1cca5bc31dd3d52af0616c7c2c6bf21816e40b7c029681073fd774811c2f6d7c47ae851a378071cdd7091fccac3be5c980b7fc6b3bcdef509418fc0c0d39ece5c0099468e34c6872331f66396f6a3a5f1c636f0722f1fc610acf6cc6d4374b6cdfb38e687e6793cdf5e06c365bfed478b52e10518a4c20b364c82547421e7ca6f99386fe418617a0449f286b73e086bbd767091fc5aadfd7cfe432c2c8d7a79d1282ad46aede7f31fbd2f249700bb362e04a204d5d5703a244d60432c1b1b96ab460d963bb37688dd0e7065c60ffa331689d1e4079d50997f07e8c297bdecb5ad13627b6e7b78b5bfd1dcf6946e73d3b4bfe1ecb37b1c990956efab7e848dfd75b3da4b09d21e5e0f4e0ec75887774a6dea96faf21946a337689fa412cfcc6fb9b8bc450809515ccf628b972daa6023c51d11205653c03605598c31260193c518638c2b48786113c90c98f03a438b58748100e894734a21f44007f7e3c4172c2760f91ec464c156181a2d5cb0025b7221102d84e81778614517b0205308421370826cc13b965e0824c82b882b0b1b219a967577a5b0bb7065ca58a3d5ed7deefe00efee76778f52ca2ec6d8eceeee15461861eceeee8e744208a174776f873086bce12b46c9a11a17bee58fa114d0dadf1e27ad5fe994f10b5a69adf40b5a699d321651e994f10b1927ad32ce22a294717e51a98c5fd04a6b114554fa05adb44e198ba874caf845c9100dcea8dd1ea72813c1cc03378380bd5929c62837e696f82be612dc6696524a39694c953ce083874dbeac99e3006d3895b2014600257aa708da6018a6d14fbf84ba800f1ce44cc1a4524c4b28cfb90645bb868fb8872dae0b6d9f653efe468dcae188fe10ba401776d96008d2cb2968834b4ca3b39d8f8a02cbad1fa9661bec44d75c56dd06025c692eb9c72cb8d2af8541ce66988910d146e6d3d54620f35be6ffc8e09f1162a9a1baae9abb838cfb411c2df0fde090cbcca60b772e5fb1baf423adf32587638eeeb729e0caaf5d5cf99ac121618b016e7c47801561b870d4dd90c3c1a71b6db4da2dcc2c353e44bfc291fcf89a8410fe9c956f6ccbda2c6a50496005124437d21dcbffcde02aeeb71da10997003702b12205d7c616b1ae704110b498a20a3420f510b79bdeeeee96b1ccfc927c72e38c01f010f7abc1869a1b1f7e3088901b3f780373b8fbc12131dc8f77f8fd9847bc1fbfdc0813e47e1cb384fbb10c11eec73337324ce2c68f5fede74344f071e3d7b8f1001c8a3073e35f60879b1b9f070f5ce1c60f41155f28796162e2c6e722a0522fb8f181d47071a311a6b811c8115670636b065058dba704d0a00a8ee4dd1200d713b00d4865eb61ad8022910da188298354c5e20879a243a002ce10b2d0820be3da61c44582e53ac2052a978c0aae0c5e9f2cb0b0e184b0f40b6ba79f60b7226e604d8ee01858910b813881032438c1eac2d60b813801e486b08858948025e542204f1ce18a2f228fd18e216a90ea9b2a295b80a992ea7f5988546b90ea7f2377011dbb8bd54591bb9e8fec35df8ee0001c9d700903700ba6eec6000e172851a16695f60d970bec075f38c42f5e80a7346288477ee867fcfc423b8194524a226a2c9e2089fb3d0be5a1413882a3f995a5468c13cef9d1befc0a47f2a995d2ab1ed41183e86e2acc4da3750470742202d8127fce39e78c1a80734e6d7ab4e999737ed6559f9a11f69b19e8960f74e7cf183ccc39e783624097f8dc51a5c15e40ff07b7e95f6b7bff8dd6de9375a53e5fbae31048d866170e94c37c7f0bc8077d77a01cfc357f0d64817eedbbdbde45400ee00bf2e1f68597e41d883f7b48da3a106b1d8835486fb0b8883e77385417512a84e561870e5118d3811643d0a55b6c437a0c637e025c891f6fac2c29713faca7e04a94de07612d161f656f2f572be3c3f8a61b3fa6c0f6c748299db4d24a2ba554c69f2fb03192e27b04c10ec5183f461cf2e4037ad021840e61f7c5eeee760fd6002164a97184853f8585ff59112c588e39809fcdc082b8d031906baf226159606ccab9fcf1e44a409bb1f0354a85fd1a0bb71f0bd0a52be4810559c01b010964816e1de4c73d16900efe3a48ede1e0221b4b633fcbddd23d2c2efb436972310d144017f6980870a5456c2953c115a984649de0b234715793818d31599a534a015d8c8023ce02b6d8867bfc621afdedf1b0b0084000000000e87eec02c18f4d987bc2aeeef7d181b2bdd46f8405417b210d0f3ef3992d7bd3631c17b50aecd7ecd2799d3458830d12bddddbdb63163dd1133d31462fe4836b47d88641c1f2378c52616b6cbf6ddc6faf833472c3479a07d2411379ed7590eceb20f137cc763746ba1a36f6ab615dc4cf75b5071676e805f60b6ddde75dc4ef0183a54ed8af71eed739dddd006f0c9625b920a779e55cc8dd40721fd0217e1b6e3400470d1f160636468d85a543cdd086fceeac8793108b176cff171a80a7fba1be0f4194aee767277f7607e10aede124c4d22d30e6e95a050dced0b6931c1d622ef977777777bb7bf5ead5bdbd3bf772f00e1a213441a6404d717ac9178b8a286e2ee470484f678a976bc7fda0ce143b973f07c38c0636043e82ee9982fd025ce16f2f200dde9e6021102042eed73a578a21506edfc96d1a980b81d0bc5cfede6937310f0823f38d3536770384a1bef1a36f37f88d10aec015094309ebd2fb3a4787f82177430fe996a17ea894edb53645ebd48c00000050002315000028100c0544229150402269b2a20314000c7e9e4476529ac9835990e3284a21630c21c8200202022230323252050169a97ae40cd456a21a8dae87493ebcf749d55565110bfe792de2e702d353440e6569414dfc4ec0155b23d95ba4aee66d153027114bf53cbea6f8f389a396f803e832a9c634acf99605cc0cd0e3d286b2cf0243dcb9d2b3e72382409311a21b17b4d9b3c65915279759ba0cba732c97f8198c751444244e8e387dc3e2a5a769b393b50a868672defeb7aa2fab18b2af98c983337a5a7c8b75ea8e05bee6289d50decfbd8477e7c27a4dbd6fe54562f80cce40049975e9e4b2d112e331ce9135188bcb4648cee9d58b1be7cf5dcc4c783a6e65f2105705c8e912ddf16e35cfee3edafd4027b49233e4ba8e76edbf4e14f6225574e5718f545a10a0d761233a945ea33eed70a677856ea5e44c6f1a989d8e5c8fc84f6b9aef9a14c6a9910e4181ae7781a8abd64f2dffc4748d7283c99bc31e9575e5c031ea10ca3ea17f060dd459bbe6fc15e6453a36437fc8185403f2840558a737a0e5e1cbaa3239f0174da8924699464fe207c28c215a1701d7530c5a81d9886d7e1411b8549162bb6a40220da722ae0f4aa1500c1c12344b09a158a1dc7c694128b633bd9fffeb3117240e76391cce183e995a5c37b7728caef3a236b1e3d5637488de8f6020818421834aed7fbb2822765a86753b03abbc1a5cbf298c29e78734de6c187518b3cb6c0f368ad84eee84dc4640c5ccd6bbb404954cacdf8e73761c820be4e1fae7136e25392b931cf424a506f27f6b994dc90b69b647ceb9517a7c7ad6df63adf4c7ede9ef05e6011576e9d8df14ad738cc35278fd9652654d66b0ce7265dc86e12f8cf81b4ccbea7b07159c619b47c4b5d0b6e4ce9820cc2f2fc420dd9f8b066d5bf742c3320b54aec07c3906035e9110c8fe2b390478f92aebf1d099ce6e41c7b6020f1cce5feb9de6a33110afd4baee4a29af8e54e2f2de0e9b834ceb0cff81c05ec588fdd5b81f11df63e5bd3c5635acbf037e52a12d9979511478429267355854cb06ec806cab60d9ae5affba8cc56017319a8190a40e7f3806d3ea4f9fd758c0ad7a443cdde6d858330912d63b107b7923af1e848c674153c53cc2d2cf55f541277f428e1a47e0313d961a8d86e373887c362c493b0844629e1f95568c1a933f2dbcb2692f588b6c3d3df8f7372d5c1cf297a90285f5f57f1386292ada9c1588d68a7050879276b5890ca7adbf8fb530f34c3aed12a27794993d42a4c9671f2dbdbdf4c3678cfe2e3caffa284204da59c8c02b0b411b4d684fec50cc3a3e6773467c03ca00fa16716ea8e9a9d30e231a557740f3a1209ba813649a0cdaed2923808cd556dedc65a2536ef7a81e8fd0495fcd23369fc744034b7788b3c75ac06c3f2b15d643a718df37955c2998ec9322be91c5685da3aea9c86a1289e786e1376dc3a18adf32b7d3203d12a22dfc862383567a8f18819bfc32ebabf2bcac327c3988cd7171355bc1023621b52b03dc1c637822e8f78666da71cefb53015fde33c41f718f7e6664686ba32d0482799104c13b9263fac419bfe3e2aba20f8d47e1540773827c561daa881e633379d1ae7fe0e394ca0abb1dd9a031f3448c94b0ddde001a87447981d2a617ac026be848b49a44be348abfc936e2f485d0c0fa4324138d597b8654b6ad1a0b7b3137087e598b105e4578a79f67f77f5a4758a73c1ef0a7c941ee05d08868a6faa6b0b977b7e4f2c6d709f124298429ad4582ddb878a18df76c133f85c40743e231658a53f102233d1287f22b8163190947d9db222e0a58faee76e1be7cbe05a447314a763c66bba4c81d7c356094b0eb3ecaf4139f9457379f5d535b3f713ee2d7d4f8c01f9c46dd36143e43752b7ed71c367fea85cbfa20b5817e05496e25a723e6c794907c99ce0c26e574dafa2e31ed5886d62a86b93afef6b1fa3e1b045c8457908962d8119085b2cc55e3f6016c089fd6663d59017543255e3b90788b7387dabadc4aa7f4b99076dc8475bde72e18eafde8074046558f446e469d28e23dfda8d330d4890212c77aeb436e613cf5d0e59f2237946e6a189cbffb38727757468b25d3962c2b9d1433e840cf7bedfe5e6f2407e0a69ce99892d542348180f54a1db9c7dfd3ff6c286da5d784aed6d0d509c651a3284bc902827c2bc4367f5eba1b6dcffcda4801bfa6811afa97529a7a8fddbdf4c02b60158294b9ef9b42e353bf08e43c194fddeb9b27b4c1c30a410677ac2241815ec9e9a74736b25054a237938150474a2824c80ceffe5c32b4143c3e7fc9a8c01fcac94fb88e66e1fed5ea1510a97834314b23fa79f74118250750656d21de8528c9933c856bc62bdd055052e4abde88f406204a670e5366d74437c18334760ee8d2ae6dc0a531d382df4625773abc821da6d2388065c5ac401b8e934c10499eee40b50ae383a6b67daa3bb198c110058a6735ca65291ecb11804af9517061758f71279930a5d93e74bb15facb1680e08e79b05b32fa717f6a81aca9c5f2976c5eaa8625f6e5b52a4f72f4ccf92b4df4644f0753b13344e94d87650b629cbcc00ef74e135cc55edc71aa3eb6f3057e71f3109b8da3a68b4680d3ced1100384e006bd249b0a2195c2c8ef1af984135d75f0baa009ec54d45e069b3204e1fb56aca68fe32c65ac56a328afcf2eb81a6f8691964064131cdd4494cc4ba14a5134d23eab436915941ee33883d9db6024d52389f03ad2c4a86219f5cb1331614da2393b95f6bfb5cc6158c146082585b47debfa5ec4589e6b3411a7259dcf7d47c05e82497708d37a253387180bb8a9975e4a10d3513bbacdff57bc9a91ec168f0e266b2942d70f42591b0656b43ec962ec4f9933c906bc183ac9359fcc7bff675816503cc96d8c06a4e464b50c52b0bd5b4136142b0989c9c69eb894dd1e7534676d440aec37caefdbdd809e6b651e838dc243f0684aa9b9fbde3d0e8abd557ab6d89ec8a1e171e82c9e8f56c972ca311c2d881dbc290ed7d0cd215e6c42fd79509db9aea83ee19d9ea09bc521d0137d3fec12646f256536e1a29b0e506044d12aa43182d7a1d91e5f93d5ab6ea708fd574ef87da65f1a07bd43d8a262eb674d38e2ad913302ddeaba1a1ae35529f7388cf3637786d58a9ab0a7c6f6199f4cdad80aa0c4a9bae05126efc772d6e961d357f9a9940d5aed5629be033ee1ed6d1de4a43306626bcac989836473633c2b6a2fe45be9d963fe0c9f416971e801a5a8ba205f8a068474250144f79a9afa9b4758a1ea785db199f4519fbc363880d5fc806eb33e7526b8e79a5c38286cfc0c6163be4b80d2c22653547b161cc89055de56e02a4a7b43be297c9f22b27bb1c39ef04b534f314101946713b76d72d0debe9bb9bdf6a45c2078c14379f0603f39466e445c7214475afdfd173014ed5bba5e8a253f473aca471185e7c9fa9d1e180f45aa5d63d3f098cf5d08b11292a243f5a5314b46886c9e9358af71fb6ebb0c285c628924421a8f0fe21d00d55860a5eec8d4f52552d037cd089d2dbf02588146876c1f951c2afd1903df32c728704884c262a96076b41e145db4b0fb6ccddec1d2159fa2d2927690b73599938d3da04bf2f173438d301411f82da548a911d5ea616228a9a04df67f8bdaa1b30245ced40f67615876c1df960300b46d20fcb3857e63ac3ef50e444eb242e07da2e7890ce8a08c6e0da2951a9ed97d47aaf56fc1e1a0a5941cc09ab8dc5079739d7faf1c898c21d0d18f8f1aa6dee75fbb0a338e281a95386883263dbfa60f1061635e9e6a3f1eafbead6975f0953252244db31c568c98482c37fbd453213f2956a29956fbed144406ce3e65110595ccb21dc4ec87115394ec9fee8e75d82d13107bd99ded67065c2eef0d7724177ce490145260cd7aa53d24b4bcf4a723f4633bcb2553911d4b07e6e7fda8a311b6d0f0b46bc7df30f6d148b489ff7ba3967819ee50620f174e5d307dc7c9ca9ca50921c946737bb09de902d6eac3d809beda91a22991c8525a9cd5dc8f799d87ad1c9dd801146b04e1e530b5fc06be74f964637d21e856612c0383ac24926aefe64b33542fc9004482bee500359798863c78145fb24a2e9a4c3ac3926f8fc74e1da05a977409849dcd43bc5315ca45ba3a4c7bffef9c7e45e95658a0466b1f4c4fee8a94755517858231cb369ebe254ebb6340a37f0170c18ee3379175383bce03e4ed344746062783e3085bdee011327b8c8dc45b04f41a1b913297ee88aec640246949562ec8ca99c60e9f4ced0e9609674d616a5bb5d6385ac998683843cdb1a20d355503b20893299c23ff48f59580bf3ece757c3d57c0b423594526cfcd85c4a4e264f2b59130530c16df9df8fe9369ce696e8c17e7848a9d5c70ae9fd80b4b67af2901f5047d602dcb3bc10f0394d90f77bf215a8545202db7980a185bf87b724847a0bc679023cde7ff9513e190f47f27218813eccfbc151ef776ecd0aa9dcb856e272900052ac6275627940961f3f3c9b26057484bdea63c32620173a1e36c112f2c28f22b5a132b6e4938c95e2dc62f8921e1a281dd260798892c967210861ff7811fffa784c7428ef992d368424eed46305fe23dae4b3ab8028f4189a579c2570bc165ff6e10b55f0e2b670e6c271477e184477036add15badf67e9ade294c740dddad77447ab699a4bb552368c72c0c778e138a37a3ac420749eb92d3172515e03b57a7a48c7ddc8ff6107d3f945c669cac4b89a6ab2d2618acb5f82e619118546afd9616da253e8e6f9fc5d3b9ae5d7a36e8274597a0e24b386b8bb342e965853f52d120aca01597f34bd71be3c267096406affb4d3c1448cc1f03b7a22d5500a95ddc84f6403fc95a0cd730574144d8cb3065eaf5c4c87238be6fae1645e5640489ffacb5e8988b8ddd1d816fd71ad2f32b4e14efa49499fea709ff2610aa97288f60154d702d7e076770e14e268ae5dcbf52ec09c9c1bc920ade14f37c41594f3e17a69ce84462ef7d62a75838324f43122ff46f819d1a17cc78eb5f462cdbc64e8afcdcbc4c0812bc850f2ceff8b38528d88a01289d6d4f326b33af1a3249840dadb700d707912fa857674363b485885aa7feba4e5281a69eb0136cda4cec3e809fa42f2aa50c1ff3a7fe8b16bc9e8a52ef154e2ac5647383f98464c03e9348f5f4427a45e75e98abcf1d7a817069f52015ff4363d8d936beb9b81ecbb2fd7a87d96ca0de97238a32ccb5a6893a369dfed5d92c4e3a1a0f485148334a8d813e230a59a30bd5ee6f213452f4837830857c99ffdefcd587c8f390b6ac3b8efdd5906088f8c0302f14a20f0e0a751f5aa4da645d8baa7472e77abba293c4d1541b0afe56421b140fb143bbe4dfdaf5398371b8d866f279e5cb07c1ea87470c183e8a2da0a2af63fc73ee873308e68f22203597f7e330892ec8a50639e2b04aa94a9dcb47e7e996c455970fdeb71ed5da4290504641952ae75df8ce08fe7a4be226871c6e1fb8d6bbc81d29fdb192943ea786d889f6f27f09733c221b24666e01375db1e9d8ef6947a274aa0eccbb2db00975547b4e30741b7547cb02ef4ee03bfcd4e03c1cb83e5394accb2614951170d4a00f09d27bf1b354415260ce3f5cb457c89ec6842e95cf2f06528e169bb5a72016bdd04af623d172006a144197df83160ac1f55f81218ad0edb658be8a6a49a250084d58b2e8479b7092faedfd8914d4f145c8ed7dfc2f02be003a4e8f02f8a8a1e082d7c33a690305326500cd4c86b26665a4a56a5b77c2171555fe00186cad883e087691668a29245a7496eca753afc8f048900e94f945ae1154fd8da20a5bd34ace3eddc9b25f2f840d582d5c6e41e7f0e0c44068cef58daaf7fc315b05b06afd58ab83e80a4c4a680da8d8c500a34aea9001ba37bfa6a197eea9a932d1fa28ce38f1fc3e2a6cdf66b1c252ffa3c2f651a3a5b539da1691e16b6a7ee6145b9a3f1a79020d9c273e0ec6a3ae14ddb172c342108721ca9c4f50213f719c72a0a02015ee26885ed454edf420e8738395d3d109ca291a9ccacc3c6a90f80c21f450a40a282485b3b311ecee36a38763853158f499591cd111988dc65287c66d950fa060389936453d83ef13dbb63681966877bdd8ea01436938852f2021786d437f00571780d7c86164d69694b146d5697d5c2d010ecb8d14dd3933fa3f15101de27f6744b4e8263f3437601a25758f66cd7dab06fbb153db52106182b6fef627271aa91750ae00873c5493ceee1bc4edd98e30800ceb041bf6867d48d4348b88e82fc496da82b409a8364b66fec24907ab8c91e3bc55ad35da3a34530d1b74a8763374d2500db3ab72a0de022d5291861e0781d76e675e97a31b58997f32102626b48299283edc5418b941bde83a74a4b7b278b7c6b8007631b93d2fabbb3457ec96cdc7892f43be15b633dca8700508b19df6d6c4d213a38c59ced0adc95971917e677b3b76b34356e8deb3448a61607be8879a0ffaf3816367acc51392268c4dab56d18396cafd401a6b2dce11a59252c5c829ff56163335a01d489947480a28ffc7f7cea7e56b609a7ba2ae17d681ddad380697e1a4bc176754b8f16eb5507cde541a51dde1324cbf707193a239841e176379ba020709537364cac8a39f0392e14854199dd3dd49525c64c027f3489b224f482058664db640c4950e5ec947d9acb9191aa452bf36b3d45ad2f5cd230ea16642555bf41e35a971201584c0dbd653dd3391930ad4642e020f53ecd22f9f5f06a89a3a573519d468099c52dffd0fb10aa5c699095e1701ea21808ea4afe275a5c00e25e0cc7b57deeb295aba526ec42138c8483367d4a13f22949f02f3b97bd4517f4b9ed06832c5bd781dca65ca22d9c787d2449cfcd16ec82a32d788adb33828474be0d57db1be695bc1a3de65afa70f23e9c4d369ed2f7904727da239a0e629907ca706f00ee6a4a919e945c04b3700ffc18499400a1d18056ad08f5303ccf0e8e94a6e430698444d540a065630142d171b82695613901404397fa5c108a84525847b4ce664b48889b4a60d7d384cd73792d6c94d7fcf2e34c091de227a7ba8b450aadc09a45164182a805de2027da7c86fbaeb8ccb900eb41d6fd70abc90930dfd54e888862fc4207daac350140de03d84cdcacb2652c2c64db0ac5c208c6f78a1298ee9873a22f0f1df818337b1a3a2f43af54a5501bdd9314254c51fec61ad964a95f1ccc35662e3ce0987ba592c6074da84b7ec61ef4756d43200185529fa52f31a409599a3e4f4dd7772e2dd78f64b49e50af41e78330cab4d6fa6a3ef7cd81643b7cde5a15e58a25976a5209e525867ced52a80496c4998d2c9e0140e33aabbb2ae482d4e03e0547a40db41a3a5552fc887ef8d8946a0093024d499e95ef1bd27bbacebee0fe8830ce4ac5d3597216cd432d68c91114b8600e0a989862a6bd4bf397c42f9807b1de7ba4b2f282b89df32395a5dbea2c1f9ff71aa405f1886e01de190063412867c1025449ac54d9f9ddf19ad498a3b0f94b58a48d235456048ffb8e8dd5e0118d5410148e87d69d0a79318716e7c967d25aa971891233aaa5c27d58d90aa1d46e287d520bab96dce53cbc0c2d8730ff348c41bd978ab8d85a5c84c84234bff0dfc2666b89a3e22edaf94c5cd2f1079843f5ccdc81503e27947da0fb7a37771cc5020e02a712773f6dbb7dac07df1b593b5a3430051da2cbbdd125e63c2da35b47538bd4a22c986e7d00437431c75bf44023f0fb92782c76924a9ec155f075969b4bd292981a393aeb04ee319d2609ee8808c2500e3b816bd0edfb3099e094defdbb431bb00cc5ab51adca6f4750e404f4171076bfb04d30af6155a72f4418c8111814cb36cfb1e5dd2ed7ecabd4b884f77314ae84ab6786078948f8809122caa54e85fb869a2af62af3ca316c3b96816b9b83e4c2df357c40090c79bb7e40ce89466102c129619ea9403c2082596e6f3f00da1b3c3d8d118cb574fe952a80332a9e656b02e26575d3e03305c49b63d121b2e40e22c08701a37732b1bfc18af095db6a2260b7f609f905ed8a1ab00c4b26794c2113d8fa02795c72d31c4595c257154169f4e575a25eabc630a5320648c567fe3cc29971f50262cb981ee7399751f2c66dc62a8b7b585ae7c4fec7ad77080c912375580d5920416d6d6d79e0e00d591fb6a2fa0462357b2143704baa1e15f53e3e3ce8445983b9074b2423feedec80e2cab227367700977d3ca08fdfd507d43bcd59b6cf331ed0315127f926142aebfe61efa65111b167a45196c10efe8c832f0e7959d26e53ca43416c401c80c58e0accafa7bfc740ee2bebc43a2d445d74d9694359c406cc1e540336ee785099b626e541acd410c955b0e282b02e18b04b4ea2265b5820005e6064c0fb096b56c00123ecea0915b7d4904c359f6f401adc0eb04fa7020e4b230f0d8a91d1e6e314fedc6cf186d3c28757b6acbe82d4d41b9d99fa557c8c98edde2d641138ed2af462a7fd3d0bdab808193471ea4064883d98d5b70ad8d1b54950332d9a8b229cc30c41ee1a7b9fae34bd7ba8f686942d3c7a8caa3addd42f09f3bd57fa71e7f4c10b40929476ab27708324e83bb967a86a46f31d740dd34490340231125535424a4c9c19b1fc3b8941a6366ea0fa7eb43ff3193d06c7715a080bb160ed807b757dcf6a324e172a21f163abc169099327d87fbda887c5f82895eeda3162051b90388f41d8ea19a2b66ebe3eed1f4f460b7f58ae0370df01aaed0100d781a6c38e7a0f07217e5152d60ff02a70683cb85f176a00f7c65d64c411074e46a84b1e10124682fdaa26120a3922c90ac54152c308a668e0c05c01c85ea24450189e10b1876e1e7bcab1ce0b60a4fffebede036f66c9b452a6a5e23f2cc446146313531cc88a12d08652551db136208b61ce8117ea6be5fbafa0189440f36f7f33e429a4612b88e46df84c4744df8da6f348b0c00c5246e43ef5362f75e0fc5e85aa2b790d086caff46307be4d1644ded6c42c13ecf26086097e939a7e24d4eb42336dc094d89a41c7b4ac3e064ceaa1a426e595cb237874e8b87f3f947b2b037c6cd84f762661bdfa07a0119253c08d17b6affaa74842183fd3d69af42365d0f06117fa3166a999d18f8f5c243e9df193763b3718f03c6ea7d5a5069220d9a352d0814a338ff20e4418ed1b90b30908e75a118498a192552a57b08079a973c52178cb5bd207674c8dc1238004988bb80bc58eff0f0c5081357723ecdd948be2a0d3757511e2a4f79590d6c05794fc239cff18adc63ce4f85fc50deb2ea6b474169504c1d26a6e16614f8c7c921adff3313be42b9319cb055e9f35039ad08884ad6c34d2fc0884a1a6ed6ab6b32c279fb2b2f144c8abddbf7bc433246854d43db58b98d00f0b853b7bf22c1a42abd0aa54b1a66a4d98f77ce4570bb6ba930fb357ddebed9cfc67e99b8084476fb333c629d08821388132413208dec29fa80f81311c9015560420a878657f64c7d4033251fac35f1a3562343b3141643bb8c3f3df15746ecd45db5851adebdb28f501c175eb18d8949bd7604c4f1687877d451c31f704bfe7cc16cdcc1cd628b77a372d00914a8503c2ac625623943e54f5b080b691f82f0ab3205af461cef13e60ae9b651d7b46341d0440ffabda0d71361e02572011d261c120fc6e787515c68fdfa50a4ed5e891ddb9f02f9863b46040fed6e37432be8f3192eceeb5786208f4298f01e4fb740bc2e9d1990e0ecb7ec040bba1c43cfc37e0bb5e57ec949be913f1a45c0d4fdad6847a0ae05544ce2d067bb68dca74711b1b71160ba1b7bd80c7130534809bc8d5cb0c858f186d87b98ee20eddc6c4bd13ad21bd6897934f4da1139eb7590df70bafa6b75f395d9f20b16ec58a76730e4661917ed3253a59fed28fea4be2fbfa7cb40dffd37beb6abc3065a020f5e9103f51089bbe9b4928264d22bcd01d04a36fd3db00e13e952a993f0fa688cd11129d5a48e2dd24499c73aa544c0cf7a505d354697d45b9601d844d9c17ac9a58a5d05659713516791201355f6b4a056ae5176bf01f8a6a8d0f2a4ac508444aaee780f3b995f176af22e242db7d8c4b62e292f2f392032a78048ddc429f886d41480b1a7d0ab10a5d71464f9a72cb1344520e8317b4f3c1d9eff2a90cced40e0986db6dbc2613478d45b149fc4aed7cb954ba0925dade993f47641e594547953ceccd66ed562dcc2072859fb40522b9f0dea7bc34e07db96b76863dab7d41e81812bd7b6f9549bc55d88926cde2e27ccfa40982282fff44e19822d12d6cc58bb277d66d0e97677fd83c1aa275a15e5d66c9b951529186ba1714628cdafaae721f74110f3b811da2cbeb901860823183990f2fb0149533598afd61915489daa7c16304bca35f586b6ec3db8d87796b640dbe8fee201e93628c8cd2e95586fd9e1d2dbac5de2dead8491fe6a9c519a39761a60894d17616c472b473a90efba816170e1841a76408d5a7462683bdd36d0c630c741b5ce4b4e15e56824eeffcc9dfa180349d79020f8751a36d48a7a0d44ad2f3bce2c68b15124b17ad362f33b213451d279ddbc856fbb1a93ba2f9bdb1cddf775061901d07a8aed713958f1fbfb440a27d6c9c42741bd8d5ea44cb17467e35461e6b51fd474481b84d49ae285e2aa08e1ba96374b205f7b13a256254fb735eaf37d4e03728a742a8cc12b2ba3bf27cedd67a21d094ec1881fde994cb6555b089b42d4edd8a9ee2908b9a3052277edd0188f56d255217f610647356b3014e206a20e452e350f7c978a95d414dcf135861009a655cb7e6e8d3c8ea7d44c26b44c9c3a20f36391635749ae11f355aed466c6e840f3ca66c2d0df8d42025358ffe8e7a40e51bc8df1217c104d15fff4f23dbf1fa54ca04df4f2047a21747a7abdcb5ec808c1fb971e7bb4ee94d8488f3da29fd1d89f482f85b63528d0958fcd8915c4502d61c667aa7936f860649c5acf76f837be916734d6245325c26bf39f424941cc8737ebac272ce35a3fe1a48627d045be4c56842138c3ffd7e0ee9953ac6a60dee0caff2b6760e73bcaaaf71399cd53629290a26f8247f25af92d4c1f78c0001bb446d3bd56cb53092866bc29b40a4904fe9051963721feef9f6cb8b533ddc4c99908fce4349f65c31b243b056a0365b8019811b438a1041743186b380078680356d1d7494c1df26b68a031d6a0f511585bfa842bfc6d8fec6263338e89998f95ddfdfa9f0219247eab230ba79426913604e249a5bb7efa2056bb01533aa83c79a1425340de65e2a570b50669b406be0945a5fde701839eb181e9fd903f641ed1ac4399dd38d69da78512c7cf83fadf243dabd71cc5a6bb1c707fd53158e8987c397678e4da4c79a8cb91c452f867667b55bf6bc71468103b014080315d805c3a3534c8e99fb4e4d30ae190fb0b6af11fb768e1710c72a1de826ed3aec274278c86d64d6d8fa6a17c6b4605263f49f0d2823d093726f7b2c88942328413ee8b98d5e4497021a18b6a2013921a20f7b52e599411937ab3343e3f24da919fe882d6b96feb851280782c2efebcf153f5223421ace353c6617fc989bff74ff03c3b197a1d6cceca1a8e34be8ebb0a1bea7643189d60d0dd85c1197ec3d132213e23ab9b1690f6d2bad5da8444ec82d228e4519b2c66fc36a3fdf3bb4c5d03847b5b110025dd98f3b073d18c822cbc374e71b78e435e4e81d9ca8c1007dcfa77631a6b8c03875338777a23bd0967d423dc064d3e2d0413e10826b1d44309377a4db90837013fbcafa922eb1b94b09a54029370e918865006b00ee3f076b45b0f0b6ac9f04fb7f006659eefac4f9c8825e2eff3c667e88990508887ecbfc86d2be1cf6d4e53da38231a3972e676ba5a0bce6d56e8e59927f80847f1898b803ce9675269e665b96d0bcdbb371472c4b8c4304b6f36ce8b012e813e2a1a4010ab472c8080c684bebf689c72a4c5484d62be747c4084f349c156f8e01c5238f01eacdae4d04901f85cf0ba1c2bf7930908c531c7aa3071d1b923fb8cc2f5214c36dd53f0b706c70bac66409b86b15befadd9efaf3f4292d3ec006cfbc4f002c8ebc3ad2ef85813292fe5df913218b239969c74070e436d210e81fe64273fcfb36cd1a35bc2066d7f7eed24e3d02f5b83341b26c885b00ce84d29fe3fde88b2097d84959754cb844e5eda4963fc1843b73ffeb11f4016114dec23f0ca1e22c4fb5caf37dcd0c890202a46a10cf693c323f81768571fe6e3bbdd13a59654d25b3e23a719651a7b20261117afa765a691e0e84ddd8899972b252c7e1d37c7fb015565d1b0ac8c4ec147f61282e7612bce64564704e0c5cf3ae5c69880c9e29c329f1d05b9ca4c8fdb5843fa1e36d8ed1b4bc598082d4a3bad8e6a814bd23614010e1d161a26722e097b47ea84aaa6715b5eec3374abaa68a96fbc6807c591690ba894c002b70f2931d04e07ae23ce197a3e10d30701a7696169dee0ee6947eabaddecbeefaee9bdd05c0147d008f89ddcf32c0198319a1cd4200f912dca55a01956c0090d98629f8e7188ebb9d555693aabbbd51f52c2faa0875c4cc5077f7c9d0ff0ab9a3a6bff1ab9ff79940b274e4a296d2fb18d02073bd64eac160eadbb90f8f5f1dd3756bbc36ae2852ea1823da0f200f3fbdd23d735439e7614aca1aa5dc33f1481b3c4242509b9a0feca46b902318da03e7dc87e8fd0cfe61c0f5e23ac68ef4c00f386da4f9a8ec6394485bce06b80f782a09b0b8a674ee20726c03aaba85688d3b6fd91fd39142f4574a6cf8195c89f7dd8e9882163ec0f236972c124946e9d83392d5b7352666ce6a46393b45051adddc9c22de9ebcfe45fba6abff617f5f56796f504b99f6f8c18ba59d17ec3d07ed7cce6909ab4be7cbc2b20b31cdc829ff7aaea9fa986e5ebf68380599a996836720a5b628aace78672541bb4f6bc8f0b7e6f0d7dc36ac096ca57242a12546c49f00b4bd0109cdbcbb491e2e20ce482104432c1308d2f8293526727ca4a2ce79188e6750e73d5dd5d5ebfe1a831b69c91be81eae9006b4c70ac402405c97b973f17a387bc1a7ecb6e408567b262c0d09cd9d21a9c6776e6cb3fc4356cea3ce6c001a1b0c56d903403565ee03897f8509ac1d133fdd233945dc47e89b98c9f07d38fb0a591c7da665df23d8ce4ff9585dda6415ada0c1bb162d2ab99d05b58e5717a526b205d46522f8f5359043f5634486af9b72ee4cb54468c960cafa47e715a8e7b24a1f72385b088acad51e5bed1749538d58427d91b953d2870512231960c18b8e2255810b47f61a41b45b52d63f099fbeec2c391d8c685c7c88d441c5d4ba6ee6b4f9e2e8703d9cbac991212d2d21e46395aae5bb4b61ec750e45cf880083cee81546eec90da91ed65ffd2594c68cf108a1e77e14c6dbabd5a6ead7d429689ae3176164f3bc14500d36fe4b027585650cce515656ec85f7222c469286db1416a9be7e89fd0e437c4e1b5960c28a4c068581d791a13ea5ccbe3621a5097fc6186abcff37abecf26728ab825f80e16b1deecdc9fe64b81a4f0d4c2f2087b4f5c8e638b97e3ed73c5952cc0d5682a49d51653cfcc184aa034fafa0de76830faee6dbcb59bfdacb269057c8527b57ac3647cf08979109d21f27338ff2d826ef6aa0ff0acba78ae6f30921b4630c8141ff1511f000ef826ad482f4fb342d19bbc10743ef8d051f719114b57956e777d55e64baf75c8eccfc44cf9fe1ed33e020028e326308b7ae5702f7c3046d54fd9fac9a91f7419415f4a3f50efc50b7cb1eb75d518d187db9a7e3e7e208ef012211988f120af9c6cc25b2d85d1ecf20e60f869125b9a2a62cf4dd84e45df6b75a859ef9af554796333eca6225fbfb8c5a8293faa70bc48535e709c9924b74764f0a18211e88db3521e449aa991aca74edd5c65e38c1f561e14be176c2a3c98dc0c1e66c41703243625738379d1e253ce28948448dcfc02c93733949a047c9502f756518127dfa8d7453230be8e9a8327db2bb1b532a3f758045430723bb06e7f286b30d75225c8a3826c14a012f5e665ff1950a7159a0a5a7ed4bf80a958e744698da0aa7aa9458ed6ec59836901d130326c2a68e2f68c175be575a825608acc38058393213aa3fa896702320c8eca0615be834160b152a84853dd505630d7aac221f4ed0a1a7352ca33c47c62b4818fb468a1d50a8bce95b627a61e92f141342f99403fcf4820d8c1116801062356cf61dd289cc3c84d0a68177830e498cd18a76f46224e2b4f65899efc52ffaf2b07b34851130a30f33ff46a2d21803d5a3282df3a2f7a722e4ff13c6e43cf04128909150505551ccc64654663485ff19d005a63954e57e06dcfe960dc8014db27db71d81988d78f4050ded1533981903c4f412a15f8382680220a90edfea4e61e96be9be049b9594c2643e258024732ec19e8a337932e87abe0d5ea35b9c9ab4f82c9f7246d13c1fe2d5e5928f78a8e30ed7f63c7921007253af3a81c28c1be2bee9472270f9f87b0b74699ef32039c9a205d0639ee702ac6689470c018576bc5acb5e8c1cd706dbaaeac4c784502d11da7354b9cf71d994ee248ba9cd5809d2375f413d111bd51576d4cc1d85524d63d3bfc1c287b39d1dc793c82888528123c38b4bdffec7f7e82ffc394bedd859267d0b60ffda94d3e909fb6670e090c71a4ca5427b07cc767e47c93963425873d20a46b251e1a07defc54061ee628985f13734424c125dd260bd511da20ecab20deabd01e5c9cd60b286a565569f3b094dea28a2270a783b765c64842e7052204c69cb4350bc505ab190b916a33f720eb5974983b1aa7e70fe2be37975bf9cc2c66ebdd41c7fa140c56aef856a5b405d0b16ea7f313c2deb67eb5e4f7093d77fc63abb97bf8c3cc64a733b32d369607944efe9e8a36580a79947ae437103b1fa0148cf85bc18913b8bccb66d637193341ee637cb0b0f482784ac16e95aa77f9ed100c91beb9f0f3cb71447e2dce700557c7a43295b6211427f7ad867f04f6d3e5a58f15d85cd0c14784ebe5c2a39d47f956f0c5d3abb8182af317a521785bc3b9eb82b72abe6795d272005180ad255518c02ccc7e830038fb61a331976861fe67d9a2309b223a719e75db86e08c3c4693e7cc6bdd2ea35e8db58d57bba7512c116f81595fbbd9d39e1d6d3322026d2e580f63a33bd3d653ee34893608c17cf6b9c1eab1f88e6a2f2515b5ce5472f37774057cbab0437ae6cf7a84a8f6d5206f01202f89683defcd747875c9810156af5a55517e7f72add5ddfa1d21ab3e6a5677a1a2dfdac989e7c2c80c3610d9f767dee4f8ef08288426413c541cc387713977ad4536e25b4d73bc7e28cc62440b872cbc48f9b7979df39a0f08536a3e464dc3c48bf861b12ce6b823f6f36f1e105ee980ab910a57e18feb197aa0ceb7fd4d4f9817118d2b3ea54ef35dfce0b30a95142f0b3e2371064368668fc7516d4df520fe76e9f09b04bc3a78ec477d6781954e0d04f4faf71cd2c6e885c2201cddc88c64e6cb933003db9b24ee4a5dfc221505c174e65d97dfd859991e2049e48ffef295fea1865e8d4e83ff24336665676218e0a38bea0ec2af40cc034c64a45ea34abff6b73f496c33c52b5597c6845586a5d61897bddd0a95b3fa8cbf8f91e5e57f5fdd5629abb3e11eb585618b542ce52ca6f3c5b2e20c067a74c4082e1f11faaeb03f2b3bf2113c7b9ed79b53b6469b183af7339d7b801aad0a6e50e4231c76c786b1ff50f422e5240b134ce59f0a921ba7fe1573d6822aa7da699380020eca5bad3f2dcae133b2fb84baecc8d5e9052957373c9af7126d3545000858399bcafab121902f1e864766a752d4168a722836ff034899158f728a4928322c184bb1414d05dbd03b2af76f4690cd6a74a4687c6d81f7389ac47e60da20484a4f5749b4c1ddad38e7bc2647eb923237f288fae1e09d11d5a1f38b3dfed0db407d86360f41bb6457e3216d5a64cbed2173f5b81b2b9d0682130ebfd19f40bf36269d71c2a56ef989f48d7555cc70e71c410e23313101fc461f4296e2abf63cb36dbb2f60063349421135a5c007b50324a5b9a1035fa6f732dbf722b1dd4f6c56e4f0a5c7777544224154893bf80e93239193551e6b7edc6d90020ccce851ac13e9e43f9fdb9da858dde6752f1beff1257672da6d18d96aa6f088de4b9de80d71ee7f2f2b2f90c456b7ec171f02481dea87ab78a046693bad8ec4521c0a1757597602d71da2692ce3cfecefe5ca4189441ef315fc9125ad623dbb0f985c27b64b3b85f0f922c74e57032c28962f31bd36bccda197179eef367bec5b12c597b33c43422d4e43d8a1fe21ae9229c23dfd9100d23565b552f3116768c3ffeb38a4849b1cd9962440d39959a439c1bc71482fc36a4c755b04725b11170039532ae6d237a086bb5a7c799ae102f8b6486b412d921188c944d0a3e2505145bceeae0d45db9e8bf8a587869764b59764406239e9df88c491ba24259158e2e458dbfe24125394ba53e0acc8f30e6b936faa9367521d4d2ce232d226af5ac6dadc7bb2675b755866bac9cd7988c1a3aacd4dd0167a70eb24d82c4d184249a0fda8c94cb488e7a4b3e5de9caa992dd525b28bd25866ae5e9b30df999215e400cfc67ba04d2d43a3ab14ef785945494bc3079dc45881394cd371c55f36b61bb1d89118f16fb94de86c7a83a62f1941b5f93384d18b7e2c8728478e4aadc21dbafc971601eacc6d1aa488e3ec148afded384bace2b1d06b44a53951f8ef0fa5d762443c0fc414560c8f168b607c8c5ef190edf6e8ae73f01a80e3691c307093d03d8a262bc292df003714432218a8ec0645f27113b4d3f0cdee6205848357ab73717363b4015b5546ee2726ea6cfad6f0fe9f8402a035ebedf7e359418211547482051c7ad11af07054b3a918bfac9d9a05222e114c278083cc355282e13d70f569b75decaa5ddd16b31261580e0d90460df1f8c037ca01fc171b739aeac943dc7163f1ef3cd7ab88a7f16aba8cb3248eaf5196b7e065b7b65e4ddd409a1923a54eb74fb8ea89972a291edbd4b24239c6e5180e7302c825050616236caa4aca3e5d86e0e7080e322ff02097097eedb2c0575ba17a7482d2c3211a79af1a71328d2ee9f07f923b05dfa1668400c171a5d6a3b200fd1bd36d5f187e1969666b2aafe9c248fc2eaaf00700def062c70e33f45fa1393a1750b09fab926418c2dc4011ac871590fcb9a4e248f11ae95c412f1be591c9bf8d19d3390336a299bd2e5b6330edb765a1726221a6f4567506a8c8e46d41f92a66a94a52bd9df5e25b8ce353f6ac88b1dfd2cadb40a283a3eb2fe20aa5893524616b06d86bfb5e84d98de5f6e809eb34fba85458ce15da99326b267298054ff1e059c225c54b3ad7433c8283228675727266eb7a5e0a7b79f8f68a4359a4561758fb2f39d48713a62cc1d44c6b9f9dccf501bd3273ab3fe8b881f5922378434059e513a218d89e86bbf5a18d22db9242b161c52cab948293a8ddf173c7b10ad7ac1cb3a6e4c9f40530608abe3a91196989da9a65f98bbaa305363428094cf6d2d40feafb6f845ae1a988e7e84c73538c1d08fb2a3c4ec6dfea7add4f1918399110e374d508bd5c0103a1d55b9ccbd03e9a997d8aeb955fa9cd7c9f7ae90efcb2bddb48d2c87371a25eba7e849cc77950efd1dcc8170094bdea208c2d8c14bba595aaf17309df4620c6cc5fd5cb011310cd6cb37eb90b939cdf03de5655ae039ee9670a6a236f691a62517be23f8dbbc25bd64006a8a4207ca127218203c23b44e0bd6b66522ad1d9a13b32b8ee25e302791dcf11fb813b9c26e138d17e87546bf6f49c8ed5cee59904ec8355fa8bd44f226cafeadc29290cd6bb528c0a84da44a50fa8b2213ddabc107356dfaca731a8f4b6f9481a49e8800a154755a8e51f3de293d094d94cd4189dacb8cc24314124def2ebd76aeae6a08c78757458104a30129333b2eb31b08ce22d72dc0a3d108ad78f5ddfb5a826b339050d16e76566ba2517ea34b1c7dc8e1281786fed9e60ecce5910dd9aab644cf8180f50ba28f989ded24846a36d4c7805d19898d53d76f4cc0004a9aeda7cf48d1bd7ebb02c7322f2e3a72cbc775185cb58a54c0e0a738be04f2280f8c5c87aa0b3c84b64c556d40634773487b5f27d79ba48087ae6e2e79e381b5141553a6be60668641abdf7ed14957d8560a62611ce1d5ab50ed7fc8bf0dfa1c33e1adf90f703cdd792c867c367be02af2d513304f399342dfad5993423fa579bedac32a61315027848a0857ef26bfb24ca6cf0fbfea67480afd5264c2219b9280fb878151590252bca5896ddc85311f4192cb74a2e130596f1c62a9deadc6b221214064ab257d9c4387af1d22f6a11d4f47e913f445998521e2287641c2b19db8360ad78d2b26b63e15eb2e51b95ebfc10a55dbb07a4be42cf5909ff5d24d22adb6dfc794a8b0f9b6b94c8a43e80881f74d8f112d238659f1bdc9ab9b31cb3172f76399e8634a36c049fa3b97c9da81d58d8fdf012e494dbd96023d07b5ebfc199492f813925226ebf4eb01fb3a61dc82ea8e7c8f3662ed197dc36eab008d16a23f545d041cba321ccb933500ec1142b9dbf82850877696c90e859556a41b9abf5d2d38f9e22d685c4b7a1e37865d5ed96dfa803c12deb9a4cfa8eb77ec81bdf46236edca07b60c8d391fbff126c153a20bce2e32f5d6d9e81d59c6c26f7d142f6cbb62b0213ebb95083e0e0673c003aab8e89c2e3abace6f08a3b9825590a519b1cd3ee3d4b98660cbab004bc33a72de9279021443a0a438c82fdfbf765691575e8dc61386d5f27bba1a3b5f52c05651ec9217c8847d62fbfe1003382bb2ed653cc87f5396a3a11e61b9eb38a23651c32aac0b776b041e27e4db1b7ae01d9efebd13919e85bf494d1f12a344c0f2a040beda9d2fb3573713d407ab66b4ed1b7550bda8743b1278e0a34c7ea5d1828034b66bb43053e8f6f5a2f0ec3abe52181a418af25d66bf9cdef13938c53f3a461080cd24d7a85e04831b47687e5b7941eda749e537bff6be7fdf16274cfa3e011e5a6de6f23182b2a1a713a298448cd9742e073e640c8d02e96a6a1dcae74f6553825872a9a40cc69286fda698760ebc8e4759f25b0f712f8a3a4c11be4d660d25393c51a4f7a7f441cb0e280b7cf1ada9e6c616e15e231f385fcc4a47105475cd0fcbd4be6cfe7b0455ab5388ac9af5f413ff4408b1bef229aa4083a0f95b33e4c5b14f8bb6232cf667cab6389c0c3de8c88018716b5d7f20767541e41f46f7f138f88f7822aa3b1ff37157cf5727dbb72f515ef3340d83f829efff649adf733ed13b4fdc70561d1ad2e802de5814cf16c6e5c7587e503a6faee73c2a9c1b0cc2ea3eaa41327e2b4f310f603e55c7fb2b39c30b217af5755b1e78cd59c3d8827da402f6a6b142fcdc071f0dcc44cd4cc321def13d38e1076ea6496f6610de5b5629f69b108a21d1849b47f98353c066f1d959ce0da3eaa108808f579da1990b4a298207201dcebc9819adb2c1dd95dc9641e58d5ac512c1391501a2c2478015e861dd8d92909ff92574c4aca25591e88083e720de65cc0a068929f36417a896897586aa04c370cc68a477b143e7ac1010e6e02696635cfd89b6d9da127d7efe4753cc82fe85657061abbbb9630de3493262446ee4f510ce5153f39d7d53715547715ef03d1d6c2a2ee03868a43b622687961e45c91cd3adace92adcfdb142cb448ffe5822fbd3bec845eac18292ff79cbfcad4fe050a310e25f5e51118400b9919afe002e6a67a7aaa454cbbc7998d8d3be335ca19253d623df68e72b2bfc40235f65ce3d9ec56f6a75bae893e233589d50bebd0fbc323d8667538c6f946606204d009ac3e91058ab9eb6fc42678820528efedc2c122c0b1e709f03baabb35b01d3f68960b221205b1fc28481a97cd01a405dcc7fd7b118ab6b2d21f50ab2ee324fed8cceca4ac3ef7c60eb2559bb479e8d8a340a112dfb98230842931dffb8ecf4d4db41107d2b7fb6632ef2348676741b080f79079bef8741466730ff0bf9775a253dce48b4fa1f45616d515f851d25dbb46ed0cd809b059b3598d892860910b062d88a21fc88ed4a114e1d1ae80db05d267680921cd8a0296bb84632799498293cfc0839cbd140ca24ca843b5018a5f9d19ec501ab52f337b2f3de326ba5658874c82240521b7c8f8a734561879cb4bee2f4f9673000ad9024ef2df3609ad3029fb2f7cecec1a2c6287b78b08e30ba6d0b29ce777f76749453914ec49e63a8a4dbe3c7fa6c664a9517d9ca3d2604d3d719aa42d316562aa6223ba0a30f0c7c4657d201165b9508f6fb4cf2793e39f4c5fdfc71620b5e07d12f6f347286517f924b63b785630735ff5367acd69673d1b21fbfd6bddfb30e87ac89a3c0d80f5110cca90d45031b6292517282b92708f23211c89da564ca3ec5b64b05c8ca9b826baeb1c82e78273054f0c33828bcd6800299e4273b7728c600a5762a7ef0ed8e00cf3a000e16c72a492143e6dcbc6c43d8ff5d56e13a27a9de84b89210bd9597f4283ae6edd0c15da355ba20e41dbcaf3adc1581519688a385246d0df42d80bc65f8e1c356f0bdad70a201e50f19f151ff11af9b9187bb6e9afb823611647a6d6653dc065d797d1b0a5d033585f3466539af7034ba31b11cc8083754d35c82faecd2a00d35e05e8d12cbff5d2e680a78d8bafd401f5f68bfe13594fc4fc3060aa99ad2412dfe915b94c05726c8a0eef2da6b2451ef6491989d961b04c219a3edc16ac8f5d77a32032c68e63cffce634015d00a5f99ed0edd4d6c65a50401f5ba45f3e6f4a1b7dd728a3d463f26d9e7d54f4fe2faf5583cfc6496d7b9aa1c854b79e341c716e565d791347f4a07c6f9c900c1db147dfe4ab48d4221bb1660aeb9c37606e748f65654a698c014d39761a96c4774dc1381d492da57224543724f93c95014ff65a57593cbb48c3d5399ed987522f969d8c59411df3aed0db6702d8bcec688dfdacf03c8b4552498eb05c349baaeeeeb2159b38b65080b2116b073496b571e5c7967408af26e277a15a31d4c2d0c360a3854f0d8742c97681264f6147422f1ecb45aa388f2c0f55a02eeb4236e80fa2de79f18bcc24725066a7e17cd2dc707912d65bf41dbef989f35fda77e636d2a831ce4458065c98dc3260cd712c510c58e200b01a735baae380b3d9dfbd884f2e3ca04ae0762f4b4fa947401928198e9ca2a3b01dada6040f1e02cc581624ceedd7fc336621e2c19fe46ad52bd25662efdb61d71937b70ed64c9352055698541ac2b9b26ada6db7627070769a44cab184fc571c5afbb48702538ba8060ae91abec464e906b330b48e151ac706cdb8a9b869abb5703d300c977b23802639b5e9f2abb871d9428bcc4194aa3784986403e302f3fc469be90adc3c094d8e158e9d68601b98dfe2913e59907989b814fe5d16369df3552e2a737fda8abd78da7e92a6ad5417f8462c5617a7eefe217070925db1038541faf2559c154b670ce61c9af840f25909ccfa34aec28b46bf069aec4f0d13b6455faf281a2d20800a2f12fc34f29789a1c3ec5ab7e65ffe6c4699026395fd6855bba4bd8629d04ea84a1a84cf545a218fb9f53b7019d4c87257a5cee266b17a1e9682c416ffe1b6468c9c10bb68c511cd966426a9ea4090025e5e82e20046d01ecdeda845893d045b94f3161fb0f1e1df328ba501b2276bc0abe0088cd8a99024f3ed77d80997221d2a99619e2c5656b1e5354295cacc32ac760f5b8ae95356223c21b0a41dfd12d4ceba3ac7ab829083e39bc48269a25a7322c7588cf4c299af22460c875491798d1526c96686dba5ce1834b0f4dd968eac201d3fa1cde6064fc47700ffc28ec92a49a5fafb6951e2f138fc7eee8f127f30bf294953f2acc25368289c771a7e1b844b163afa9a38e0754812c9b3cedcc039802d06f9882a2846472943f123d73d99d81d97a23d484d17e8602555457f60e85f26ab2f5f01183058582e4e94fcf1f2b067845b301f304e68b44c9c6852fc010405812d5c18215e106fd435ad3fd43c050023be4183c7923b0e4287a5f71949ae9b54884dd06af0e3953cf91722b12837a9b8dfb1d47b6072c1b4ee606bbf8295219c3043ee400354323e23dd442ac1c2209bfb1c534b76bd63ab33be15043f2389452f7b9346f4bac67fd6f1856c889399f598a452b70e1c697e31830bfac77a96fda33aced15fb906afdba246b14f76c086937f50a071b2cae209f308a0567510713d21baa0e8427403d19c39ad5fca518ce89151493ed46ed5ffe14f5310b691a10a51efa11abaf12ac8040aa26a633eef5d51aa36f8c9e2649a068c256b4fccd826002628d09b428b70491c5e5615b26efa112a6be1b6078d9e38a43922cca8ea568179120f66a95b73bbab070cd19c29c36b312de9bda1bafb8094f57fafefd9bc8545a477d0d6defa9c0f53bc6fa6b273432533a2009462ae0d9da60eeacad1af5b89b3a02fd83e12f152ef0dee96d04b925dc3cd68a32e979d04a0b61da4067480d80452276d0229f1683b214e55bb0192fef0753070602843223855eb309c1202b8cb294ca4d251faae1b89df8d95c97ec4b47d683c6483afd59df6eb7b3e58eb712fff20b38b8ab07b854efd4fafd13d5b9c0fbfe1083821d3fc2ea2894d903e48307ca3d933f07b38999e5a1b381b2e997a332bb8e0170008024085eb7c1647a348feae87359c3e138b076c72cd30b6ad14d4aab3c764fc67b72059da0200d350768eab1e6071fadfbf68921395772a296e821dfa5cf7bdb5e3c2a4109cc67d74c22d8e5b5d7482f7a3afae4016543e2c81f724adf23ca0de6e57bc964a93046c249950db13aec4fd8d13f72f000704e3f8d9842df8a890cebdbadbda5c9c8855e809e75073e81102fc4bb00cf9d8984b897f094ca2d2d7f6263b90808602a2191b6019a0ccf0f515184d9ed2b2e4e17cbf8160ff6aaeff367a4ccc8b6189c8a84ac5adab3db2fa98c02c21389a8c1a9072ac8a74fae73008e624b66bc409401d202876942fbe68f59026049930175861b4a55a192623820291950909a2b168b7c56251094462bd248fc5d341a98e2a95cb4a00e4dada4835f690646a265f4527734bd7b11f74d684d0e1acdc1df0b98484806550d21a765126fc50ab644dd5087af57509eced53fe89727336b95d6f684c146ff1f3785ace6b9c09318f6ca945b2aa4dded4b573178759cc1aca3c0702930db80b2a4596da0d91a5e5dc71a6485284698133b1570970b6b31c855d142047e5ff38c9e543c01ccf052d7061ad7032992ecabc026ac41db3aa73c27a1e7c99aeef912e68fe2dffea3a497a0c19bc4495f77961d76bf0df674322c0666287079a26fa2843c00c8f4bc88b3adf4fac3efa6dc4e184e16c71b1597e37a90101a2c22abe444909ed7c602e072a7dd247763cc4e31858fb791356733f25d0dc9ba0fc9bdc0b89ab1e9685d924afb0846c72663e39ae4c88a7073b99cd276f83e10386c5080b77b644bfc4a7e31ccf78693c9e4514a5f07270d3b9415b92cce06ef269b56a70a5f111e75a0c2f1011b054080ed48668dba77f5e0171d4a5fe1271a45c755cf1271d4eea9a059e9170d945089a0e3c36f498649b199d63e65e2790c2719ebcf31a6a8ef39178d25c94ada5d5c489cd1b751b5e988165b0af706ab6c4f26c6060d3b2071cd46ee6456c1b963330eadf2b81ff9e4ce2836057e7a70e1453314d054c69a1e2b0693d1412d17e08c7a22549122df1d8600e9a8571a823a49440b438512b00d12cb35b9c8f845753a80558b0abd8b34e2221632328a1118e44d1465910162adb623544df32906c435224ce82a2bbc0e43a94f322e70e40ab02d0a24b8deb0f0c9994fca50068ed55f8be21aab3d9b9b5ae6a56dcfcd3385f873331cf6a89d98823a1170b464f12970120ee13dc01b3066ae1808035cff263030bead0203b8c1516eb4813aebfa509a3cab701533bb9e14769abbbbe103ddaf1a77827166f589d0fde72ef4327bea942aa555b8ddbb9c553ec166ea82c4ccf3817eb4d26be1285188fe2e093720c482535a52b4ba8870e6a709587473d1a3c2bd01432e649fa6722440ad0ad325e90c95b26a140de3dfc4d46058440d09fa3bf8360be0414798e3486f92fff11f236086d71a9250800f06b19edd94e2da980aac3c6b7a9285107df5e6510db87abce39219789e7e0244e0b5b5f546c278f8a4b9010a47d229138ce2507c2265ee39260731f4481672c28e9460c30b94a9dc2c4aed3f1721589a5df71b5749beda0aba4b6ad19730bc898d83237d22ac150ec6d2d54f47f6977393428450c11aef149a0d20373460e07627b9df0310db1298317199af66f217ff26f9580c1e678a4eca9cd1180af0489e20c03b1624b452e20dc059d2e8ce65d1c604cc7fe0b0180fbf268a2802e1b309adf902b5ed3bb526102eaa1c6bc81938016da5d2e2ead315ca47f716cb7cd7954123cd1d0bc5eab64d2df8bf2458941b0d0ebf79fcc55e4c29310636c4ced79987e9a1e379048445193c95f31b700d1d4bb1fd99a15c5d0fc5e85b189a1c813530f4cc65faef77f9e89e5dd30e0403c8cd535571026f1f8d0b43c1cad1bdbb5d1143c52c1c2aaca6e0a628c0952f31de762357c94573e4b8bbc4e81ea871ebf73122df24bb20635b4d0b00883f79d8eb95fbf07df021687490cbee2677258e428422c6109deebb2bc216cba7c1c7b7000ebd163ac7bd23cdd9f6eab9f0a9e088665bcb89ea0b034a1d2dff844f4a497060e1c14503edaf931017213e651eb4f2dfa43c83d95395c1199848b7d821c11bd98b86b119c0dd43d08398bf6e24a6692f998d4c1ddf9827e699950bfc4bc0592d49b29310856d3808cc8d4e77326f04052fb0f660f3771ce047e84a6f94c371569f59e652a9a9a3bb7b68e5e0b888aada2102c11c6236cfa071b44ffeff4dc001a35bb3fdb994d8010b11e304e8cd910f259a89f27a3f5c53644904b0dab5c9b40e5373e39cc3bce11bfcf7ce89c2b748679387cf994c994d349a9c6b51998f6494ddc7aa312e026bae2d6be25ec71baed2e54d9724c2e3ab1d4bf838f367233a381cf875cd6b9b0c15dee850f443b2c821ebb8d9089a7c633ba7ab6e5f53065990a07bf7ce1f61a604f2126ecfb68d0eb0724f390ff3b8b7eb3007195f35249ad2d5876e146edc83203a021e4356f5ca2e7a35678b02753ef25fd08c88453a45f4b5f0edba5045348ecae535f6a8707ded410e8766104c81029c221005536419d24b41b5d8236b449be1e6e9d328b0cae7067e08771f160cb11037de8d9e06907c79c4a1fdc8280948faca6ed93bcc20f12b3aa96b9c6a56bac147857f98a3506881e8076aafd6478bddff42435e5ded2db3cace79af946eeec0d00265ca12c76ea440222f0f2ea80c9c9d1dcb6b331717dbf14744ff950832dc137ca8ba356ca7fed2b6983a20071c241c09beaae90efcd760935a0ad98f179fd1be332b53643b0542a2b1194364c1a5ab3cdb58ad068d89a5a4e4c6a8192ef45f35271fa8d839d349220a1d77df7a2f84379d278a1356b3b3f4584c295ffa16a87d99de910ebf8c9153b7bd8b1854e14e529ec36665eaef8e693e3450527e568298f7234d54438e59c98acb09dc0c06c67b128225afa5d18101249beb5ba09622dab6296df4a7ce341a34b95a2f856c61b3b8ac4e4b430def93a8546d9fea6cecedb9241c7c1709c2e74987e6d33343febaf297b6e6ac7eaa11a234858ff485d7d0d933336628af691ca1e2ebd7bfe262669d54648276328d5e08638b52f7e55143de463ec4e6bbd77627b56203e9277bfe85ea02d7433dbf5b2e019d9d7bcda1f001df0c677af5eb9de82db09f56deb73845269284ad07c813cf45de5c48bfc6e72a6118f9d3a1b1698f1673168be7be5fec1d09d4953b06ab613125acb6767444135cfec2bd81559c7caa95486913827955609238e174b0a760673920673849cd5ba4714caf644143d0bd4694207c16348a20516ee091c54c508f94638ec12410fb0a50f2a81f12e4d55a93892c314a89e86e3095dd8068e0a6387e587c3440f3416cb7a6331fc6e3ad5998a5802f78b529a3e01f55da3c7814f0afd720add766eaed1250c6855dfc461197500b284577640a3a1628b94727467d709da820dfbb19d8706195849d3dc87037c2f14c0bbfc1e7a97dcb654c3326d9eab2ec99b0ee0a9109e1e42db5d0c8bfe5feae68b51418dbee003017440a104c119dc8fc744f3207ac65c2d71e5a3549caaf762e50ef00456c989a9655144d20003250031e616405b089e5c3d554eee206280c737a82d80864aa37f450684b9118e9ace088f24b3c16f76b6ee7f4bff1ea3ff935446bc9f46d4c5fbfe01fe7640c8dd210ccc656f0f7c0b389241938471d9df71b531eb721cdb0ee1a96f16782e595400733c54566a7194d1fb591ed7b9687f04f799f273ec318a42818f4e36ee14ccdf6719d0354ff102c5366538d0aebec2aa763e3219547199b9523372681ede72f67644ede1912af926708429e973e42f3ee55dd2db02838cd8b9f8ca5b08ae8809b0979feb989065206d312addf9d47174f17d80e196d0224a6cf3563de419e6aafacc4f94bd23c77826808a6348bd8fb88eac6487b1c48d23c066cdd19aa1cd7ae7ca0c7e4168c58e97be4ebccd10063d9c7bfcd0252f74669cdaabb5c7e165030cab873ee568294588bee2599aa16f16e294436aca3691a251a170505ea1efdcbe3993ff11da37b363cc0bae686cb909e5c9dc5da4b8e9b86364feb6e9d8205b2c68f9ffb332e4aa77d91ec994d177eede38995f301bbe52c3bc31fda1a76b40bc3f57ffb3a8dac06e285ef01f7944806ce9cc4bdb99e00ff8d9b2c4eea0579cb44f4171458dcbf8b9e9711a3e46950b6c8e1249bb3ab6aad380c24482d5b552f140206db0b4575b4a5da61fe1ea9f46c5ed4cae5c4e5698c72f6ac59fe0721702a37e86c12dbe212d581f1b5fab88a08eb28202ab4914effdf900344fdd0c64b77aaa039603496bb85a050c2e757821a32f29db818f17b9167dfb24d4e5f4c0589e45e9ea0d404c0d4d1a104e037ff619c1c5229985d7309956c311196728123254a4f8d13bec78bdb2839b73a2f884c081c6e6be2783213eb7d416dbbc1c69429c5eb76ee29e23f6a9086542790e5619954a49798d6428d5ae21d6ab0cefb5555c0cefc42332269dade73fcb706f902ee64d43d4530e4ecf9dc6522dd0865eb704afc7d42ae4f2b8fcff7865d44997b8c5bfa153ca90d9fa56c3a0fb4d3c1e171f8c7f215926d3d8c013f51edec221411093d3ff5e9a4938bbb2e2614769aa8dc601c86746e9c139291e3da142cb1df2106ac7bea7a319fa4ddfd12586884016ac29e7a507bc2336a38ec1ccd53591424842f636d6b0cdd2ade00a7feccda1a9d856e74ccec3df34adc3b96ceb9cf9e13af35351d6563c9715a9e5b99075e65a6eac1fb586707adc954628cfa0beda86083b3675966218044572b63233dda23954d7fc5cf6612744da5cdbde1064e655690668035d7348754f25310428289c946bbe75bf91cfcde1d32b112f9d4bf6465f96bc600cc00bda45b9a8d1681242891a09e102fddc20e95709293a833e4e285b551ffa4e342e363c701737548c8f59484c94d62fa89de844ca6248763d6113875a7d369499c31df89f6d11aa125c63d50c49b991157601962808e35f267ba8d414e2655b4f268e30fb1a177e75c770f41026b19aca6cd035299a29cb85e589aab06bf3e26b3049ce9876c3fda3c78173c2cd524a2f1753222386bc2de917b0339cfbb3fa035b090fe04f777f01af1ab1462762e67f97198bf6c129cfdc0a7d6859d005322ab5cc0d8d5c75a581dc3f123706ebf2ff656c3e96811bd7382942c17ed8bbde7c372f7643cfe825a065e48390e5436463814c59023e1d068c66d7c23d255f37cf6b0b131d197f0baefcd99e90802ae45787955da4b1488c378469e9d17bfa522177e05f860517eba9da51b0824f828fad2626776bee524c0e2b57b8d4b1bd117d1571674b4e3903d1bbc819078c7000bc3121f07de205cba640638db9733dc784c6882c58d2bace6aa35d96f37a1dc66f1387782d15ec3bf07f94873141408e16dd0101f98919c37732473b2f4004336f1dc8391a1acdbf571305a3d73acacffc8ae4c92c9f960cbd9980fee65d17b75590aeebd60da6b9b3ad4ee02d2140fdf18f5f6acd7c7461c273088ef4bd330b487cdbbacec655d258463480cc5e8d99658d908ad03ea5cc9243462a7dbfb3e0c3e23399aa92b17ccff30f198f77ffe947213811d8c0bd48584d67efb2eb53d91f1e9e87e6d18c73ecb1b319c3edbcbefc1375aeb4df248ebeb2056ecb9bdb67007078c77c90d076143a6f54a62516c052bf96b35597691bb4e0fc6ab3bdd8abd875f7cfe1c0b09d788112fcc281d105336f6a7550c84e174f438b489df09a79789e96badaea8e2de569b9076d1e3c0aaa37d50d1c85fd41b78a4668fad25274c232d31657bc22a69afc87737ef79de7b0a48db9cd925baf407cdf464c5c4343d9578b2536e1f926471d835e12a51eeafb21760300fa163a9617329e41459861d616d576fbd78c05026b3180d1d151ce2e5e741b391349237faa27a215d09cda7d20b4fdb08ba505ff4d90d194dd777b8e9f2a3fc2dec11835e90e06f7a010710a7a8e12870ae20c5001580d42c58e15929e0c99f62b1b96c952f07227fbcc6d84939d7c67601554fffb02849a29f0b3052e3be009740a7e0ab7069cdecacd83a73777147962f5ea421a409cf1ae82d875d22b46fd70333e379fc89ce13809e3f13528668bee8169835f0e1a634f876c33e080860acecf60e08d859019502948e6e22f74c3b57d17d057e5d99eea4543a48e8a061c6724144da171bb392ad02aa1b05a0f5b571c4563209c5798ae5439c33e283b1109ab24142db271705c23746139a49a2cf2e05fde9f457cf1ffd648c298a21777bba20b2c3459d49459f8b5a7ba58e5a0c90da3fc8bb4a914823fca4f0a452390c08f134c6cbda217519e4dd3c2cabeb6454eb8a9645fff2326ec802280bf3a23accd07ae1e5d612922217691be07cc0348bc630291367615cff7ff70faee698b64097c9503aa8e5e815930181aa50339962a8ea343549e1aeaa836d59ab610498bf5fdc65955b9e70a19f7c272a41e85331002fb05e076717a1c943f7f00d6e3d17337a2ef75cc2b781d06b1731c0116ef05a61da359fb8f9290bdf7de724b295392290b08ca07f607ac35226a2c7b33d429d5a4d70711ead40594e52027ecbeca32b68c31c618a3f42172ecc905cfba937519638c31b2ecdeae2668da2ebcdaaf6fefeb796e0663406161377797ba4c66d94d6cc0a123076e2875c7e6c00db37543ec1474e4c00d11c2eea2c3eed874878e1cb861860f9a66a255d02a68153d640b216343a85f13c97951392fa1560d35164f3567898cc99c8a9216f916da7eb67a68d1a8a2fefe986aa8d067ab2546d4e97051703ac59ef9e06059c934e3060aa56da65a6ddc4b25936926cd160f8c188c4a6ad5b44e275a45356da5f56e42b4aad0375a391ed931d298adddf8ed13573f4ca85dd4464d04449bb12de76c19ab2a01ab6e73f94adf8fa793d3ccbda1e9b4ead3f90c882c482fc4acb49bb90ea37664fee97ce6b5c028ee4fe77907e79c95b4d256e2bc1dbb6919f49cddb9c1a86b098a6eb486133718c528d6e9d3c3b4c74858191d772184907358e9b1bb9b3b768c317677ece6dd0823dc9dd7177277693d795f8c71298d31723c54e898102af4e595483e1d272af48e3146d9044a773b0e49e22323119a06e346e96e774dcc6955d0c885f05f0c343262540a8ca26c86b1146340e3755d5ad4c0c4897afa2d5a8df1833ae3b768b5458a16b0a36c2e0fa5c351432f6a8ddfa21595a2951320f71c866c70260f275a4ff1144f2787383af48483e38328989899994fcfccccccebc47f30587c9311e5db03706286e264c67a2b4021896fefe81049a8e14078c215dfae42f59ed9c6333333a7b0c27fdb1390f81e838a6f0700c7d395e5a4abe178e276c51840494c7c3b4d6521828871c2126c50e7d5e289139899ad884605a8c1f1f48959082200b19a428b283c7104ce410824cccc1c0f3b4188d44c115b7032a82638e1db63389e3e3d71a2063333e7c0441d07f86e429526a8e0db690ce1882274c9210a22c6a862a7977c3787058655cb84211ff095840a1d6683a9114305cf623cf1ec2726b09e7d8697f1051044e8200765588981129692197583a9b1b911c5b3d37a72d41230d043116470e5074c40e24805422c21b3a597ffb667989a02f01260f0ecf5e4289cade2d9399d0a08210b207ca183152c2bc0210821d3225522f16b15c20f0af0df8dd60e0cd02223095628e105cfaee1b456ab550aba1db08545050a4d3c3942889df6f9eed37777776759686a6e9cb0780603876730b4786630c8780e234b6b09244879d6a919224b0db84f10e1db2f6666229a00c3cccc3a5ca67cbba4fc801d6ed8428a2a5520a1c40ea7809d059d06303347b8039867e1db69155c584718e2e4dddddd5c1435852b6cbe307af6c84e8d20c4b3572358793e820fcfa853b3acc4541856c51dd8fa0fe608ffd534f1df8d2248f13c042fa46c71f2ec8efa2205386ca827a2252d2c4c585844aa64e8da5655227cf124eea82069de0044efa4608b64ddc030271c847670a0b5084734d9f1312a820d78f039fde024459495923ae3f78a152028565cc08395267e00bf5770a0e54af3a5c20aa145f4dcad2d8cfedbd6163bcc1eaf2dc8e5f49210888cbabc4f8616ba83ed97c72e48fbe55a53e7e8ebd1f8801ebd07f448bdaf7d06f8d1a71ff91d1c1fa6c66de8cfaef4954fbb23a3a00e50ce05cd5122485b2d9bc57f35dfc27f365890f1ec916631c47316653cbb0f4108cd83efeeeeeeeeeeeeeeeeae16a6ac0575fd5b87314629197a34edf1283d7b7b244218468c30c2ddc1a753ad7c792bbdee3e2857c6c84eb713adb5ddab8c62af758d7cf394357acc5da81373bb39e7bcaecba35f737a44e24baf475a5939bd172222740a7d67b4a2d1a0438a1810ed4c6997ce7ea363c723242108ab9dfe2a4000ad76a27705556e9c1804d9a3fe42e841a0471915a54fe9fd41a4f71563ec895faf60c1e5b1e8e2a1f7ac4c10b6109dbbc8cc4ca33775edabd4fb847cc49ea8d10bd23ebdab6bdaf41863fc8608794c9bde27e431ef13f241d8e7e57df5e927e4e75761f47a8ab4278451107abba0d2f860f7eef70acbc9f7e5832a84733e1c22f13f9c224638e78311d229e8b49e4eee28140e0ece432ceab7ad1e6ef10861142c3561f660a66563ec134c8c31f6b0a2bbbf9f00bedbe6d9260b556598a3585572eed3d12087e4d9a3c73e5b97e7846186792c8551cc2262a295ce2c57f188b204428bbe361ba39491e58a5145d877708f1128a4a47edb82da1e79f63ef89a4c4bca28a17e10c9311b900ace618ee79a172c2262541875e378e8da5842ba36391e29a50c18f583dcc523326af2402a2746d56c26c42825b557c37a906c0e761782d32a98646368550fa7dadbe47d50ca5a61c4b76f9af7c127df46b087ef1cbea1d748f6464803a18ada5af6bd22548586d91b060539a895a1adcdeeeeee62572a10ce597fe1729debbae6f5dd6061af6e53975fdb97b3efcde5580d6073110617df1c3cd01795654fb4939268777777ff9449ed0395d894f41aac601350fc40a1bd914800a3ca2c412f6112a5b536ccd22ae81365908f760d49da1be930ac9697dba47ea897736e50a8ddc3ff28b376d0e40d464903c8265e2e142f539b92a8bd911e3d86a30fc8d001b812e3052047283a2f47b56a035fa09280f26240fa91a24dd7b8272a746d7677776f5cb79c800963777737733ce0b7920a1d72ed3516b57d87bbe0d2851dd406306aba206dd858823b1766966f8972e0bb703da085043cbc7908808731abda01b3395825a453d3216c15ec615310490b9bf7ad17d0fbe06ab3fcfce06a8f7ed2f9176cb237d3574515ae2a0ce7b44f3fb56a776c7ece2b58fc3ceca6c749942d8170c539ecf0999999d9b3619464cfd8bbc0919d0c669e746e7a36ce28e92fc0c039d2a56b80810cbd7421b28b977207e7387d19e70436153e3ea8d462ce1de611738d8b72d8822aca21e9519b83bd3db5a7e6dc46009b83f3761b71a8c200b98301087b30bcc0a8de23dfc17087051c18804ca91fca05940e8a7d1fe674272f95b2922f977936862afd0f2e618d373fb26925dfd159772aa1babdd4d544c8f10860c3381ed331c7a013eef899e311c0deb45f5c0666709e058c402308ed5437f98c8e8632aa5117ea39085c59c933d73437713c1a84d07becc322a5ee8b5c1f79ee7afa390fc6229ff98ed63aea5927ddd44108b437ecd177b4c954e599eb813d1ca2c247c3d0cbc0483adf5ff4186a575469fd3af17ba54ad01371be39e7d14429f90aad1d232bb47638df284629f45dfac4b7adeda2024485e8f7ca1249ffddfc5e59c2e863d8c0aa70868060f0440b64e0033176d8bb5d4ab904518cdd3b98f29a7f10ca43ffa0110ffd03de27034cfacca351d4ddc17f8b8467ff623cb01dd81b8ec1a77e708720ec22f3a8b9a669de635ff3234fbb8f7e45b24eeb6c0cd52b55588ff591875d4f3fe64115401cd169f7c1253b7a36cd787a718a52c621705112c22149a4c72222e48e72b7e6745a8630b5c26d835bfb889b63fd7d19c54e23c438fe40e3f6234c348d74223bbefdc8ff584090ee143c85674f81017155786db595df11d9c12ecfdd47430dcfbecc039f3b9aa6e925faf56297d7e2c6ccbcb2b47b437d68a6cb496b801b873da1422e7ac65505159e7a4354f8128ffa4360ebe91088f4b4b934a50902d233ef0ef3acc3328ce324209d01ff31d783014fbd210c78ea5a6d2802fe19e653bf604fef87f4e2cc42ab41ea07761dc2ebc2f9a5b4d6d369daa0b25f573bdda6b51bee4de30c69ecf27763b798435740bdbc5d931b63d4bb3d4608237f2ffcf61273ee6117f6a11724ca80f3238642111ce12ec6ae8725ce8f981754f18267efe291671fed89e008ec6010284b9e634eb12ec8b51fe1f3c6288941a146ff99ece3f302335d9b2693c7983c46c66360b4c86c0b75f06aa67590296c3133335e4346c66730cc9770f99de2b74849d26b03708ec7a26c64bcaea3e1356262dc44a4a9c0fd8026530a9c8f18374946993ae93205d8e0e680337e9a71191b279fb1d1c1574146c663767770e79e02000060a34ae999945276354e1c8f9257d708b0b14fab4ea7f5f939a79fa6cf79f473fa8c6bf38acd3104b6b29c3809b4cb996586fbd12e69d0f03ef85f0da7e1b3681a11710ef7033e8c841c04a83f0ce7c3241333d32dab55308bb35ab53bb44e873f83e3c12ff3d5bccb9cfc936ec36710e9339b83c6a747269b23c6a76b31316ec3658cd374f067701088f199198f718db798185fce478ccff80ea61922bd930f31fde963fcd439bbb6c206716c70464a357de63f3347d42fae3ec6359c1923564b9c391fed276f06f825871c8feacbf5082267a40defab31e305a9e1333edd34e325ce478d192f26c699f311e3326e6308fc198fe966803f53f2be1a5e8a71c9f50832e33df065bc863763c4f40f26fd9cf1bc6fc6359f325e901997f1e92519e7381f333207d8e0e6e011a4e43db39b3102e36690a81f4c8a401f74cd6710e8d80fea986f9c0fe82da3346eb89a2c2da3643c8ff3fc13c053003c8d79cabdc9bfed25d7837a3bb8c6a5c394bafd976e4657bb1ef8c9317efaf28a739220199325e7697a32696fa24f56abe4189b8acee4a397bcef84c3c759c3c7c9fa08eb47afe962134e45cd8b4e22c32cd3bfe813b5441a7d636c41d63cac90ca23734e0c9301e7e7d57df1a1f46ce289bd206e38fae9343fa64b9fcb398db9a6f106fb5bcc73094ca79de92f8ff6307df48698fec805a10d6eece690727232086194f44d4747a715c063f234d7b8a3e19c9a5c019bd34ec34bbe3b630115b25a45c3931ba720ab8feab75b5e484f11cee9aeb71e32f4304a0e815d56bda2abcc2f8fd3d12102bb1e89fa40abf6e518f5834750c67ee2891aa96054c709ad78098f16fe8073b96dbe1f140273180ee7c8aba21885c3449d128751475dd2bcaf9e3a1834c4a88b9919f57cd4101e615e6d0f850ac23628c40383182567be7d391f330fa5304aba7422b15950d4e85adcb050221413f0f1e6a3003e6e0f59dadc4e0af80cf09b5a6c67ec7ae7908b90d52a48844d499754704aba3c824fbcccbc0f12bd3c3a82422fbbd81be9dd614575874e9112272f1d06f9e9a07038872ee0c53f9b9fe11f0c0c158c92aed32a1af4c54f33bcea61a9d2a1ff681ce383763a51ea3c02191776a7a02f3b853ca4ad0de59c209199d99b1c7510e9a1cf0ea1c71e48047afca99fdfd81cd4a7b3c0394368701b546a73643efd6673603e5d8773f8a76b58b77b03bd21f08fac98f822254b66910a9cfc741b9c8902212a3f3db20aee4c8d4bb5f4eca56757e1b5deb420d4d9fbb1806727b2e3a947e36301cfbe80673ff2cd731179a1f5d8df85f0a85953a0fc6948ace15c840352161b17b6f74fa813e7a024dd620dfd4edf4be442037e6c7b3484b6361f6c7d33c3ddddf5a067ce74777777175e10c2bdae6c469975f00852e1c9f0810e2c12ec826a9a0685f414310257db3998efae38074a661f4632a57e709579c3156c24d007fe6cdd1786f9e550620c992143662c6edcb8313a06e10f23c9ba25dcc339df111a44056ac239d98f22ded3c3a8f60eaea04f075b62c02488e489fa6d4b484f910c6a5950ffa25f717eeb178dbb3edba389de1e234c32d1ed071c79660d4c8fdc0f19a40bb3f7d867af47fef43ee933c48e5d761b8178c218140bed82059e5332cf2e7a735e97c73fc0fd8d4f90584104b007ab638acd7165559c4485551b51c482f0d80eaa3cdb20823aa6b3f61f8629b13aa0b628a6443a387b5aced7f9688d7008b02fbf7005a863f3756f55bc4585d5217dbda3b1114de7baf9837439e7b323d2534d743239bd9c669ceac974cabcccbf356a1c401c10073bd73593c5a1c4de24b1387ef6867d765ffb7ced333b06d3fbba8867d79a6c73ce09b4c1c0c0c074ed23a5941b161333312a8fc27e26b66d7462db466168781498a9049389c5c4d0f030dfc113036a15922997dfe03b349c7d32d92e78fe6c0e24ce9162482e8d03a82373f68e0154d1241b3c7b27b13a36676f25364711cb483c13f1eccd823aa4b3b74fab603607e7dc3c3c7b33591d456c0e4361512ccee124174ed5fb4eeb6141348931a04e6a2028e0b028c85a3805bd8bcdd222c01ee061e963d70f7366112c4631a5356806d124cca75344adc238c780aeeb8a97773743fd211719abd54b4fc27c389a04bd0da6e31dca83f31dacc1f8724378a2c43890dea1dd00ba5497b338384bfb74fdc3a8269c00d9d9c0b1d13c9cc1366690b5b256d6ca5a592b6b65adac95b5b256d6ca5a6b830d414c89dd144b81e2a409b664d9bb86cd591c949faaf76a73409fddbc3ab905360efff5cf8772c80c9bb5502ec618274b665dff748ae19c5af6448b1d111e3cd09751106641598f289b47c9786650ec3185bcf6cd9b410da47734871f25c3a27e93357f58c9256e8eb9653a69e24b4e134925438ad1f5cf0f5366aed229207732efea380ba37ca8161c1e624494b91c2e28ea57dfa846d7163697a27834d16f803b5368a4039970875d48ab68a29fe0f2758e1e8df426007d3a90134c891e90f5cb4f007dfa09a6b407e4f2b64f30b5a86bd4aa8e999dc7b91c406728eae748e072155ae66b93751b10b5fda21fb58fbe49f9e855871bc02acadaa226505035f80fe763c66a0284ff5af8786919d7e3ba21c151e63b3acb9c7ee6f29b42bddc7acdb7591126bde630e8b50e3e73343ee86b4e5ff33e1168aef536eceede4a9f097ef7e6a22ebbd5af1f451a388114446564ee18654de9b10ef3e9d4640125fdb03028a3f461759472c6f85a8cd9938a41c158d78c9f42dd0c9ab2c5aa4965920f91c86254134e31f6f3a47edb11f6a3651e51c139328bec1f4e4a29b348f9b9b1b227f5c3585c0fe8ad9798a81f843274500dede08eec683c94ff36c65858501b75aabb4885b097975bda6b24734876a69e35cd72c22b2e2d9950a07563cc90215f36cea89e31fa8ceaed900be770de996f6325871dfce9a2d7da45e7e61c73587b3efb8444603ff3e00f246aad76367c63eb6c30b991233ba6185a5b24ef7be14d6e3239ec2e13f36532751b3db7b9c128e8714cbf20ba660c1b581cddaacb7b818b6f9f17f606a87ed0875221da41e90cc7d120c684ca5152136c38056fcc0075c4156cac67748d56e1e810ede83c88031a3117424943472c284c458af4f6175a75793b0c455a554f49de2988037aec6a3a4a7de6e5d0a7bd52d4e5d14ef50e2d42fda04f6445299c1363d047a2e61212ac2c8929a69882d38145ad3cb1f2c40a1033c4c882c89e644f68080551e1b5db86edeeee2e6da17fc26de57c5cda6e0e9ab7f1d3696d95b675b45395b1e931d2295b87d14f5f3887a63354cd21386d004fd361f6df1cea9f53a7962cdd4d9b552606f4042813a232a9ffc582f9b3cdc36cc1b30f51afb66a4af4d99ec2d7fc9cd366e378a6d755b965323333ac9d6ad400a211b439b267a70144c3090d160d2850eb6cd06c341ccff6958ceae4a0bd6152bf39b42571ce37839eb770d95a6270ce27c3149a35d839c4824df1360b968967e739b4f306ab8a9b82db95acc495daa32184f10b0e34ca39cccc307bad37c6e8deaccbf9dab54df91addaef81ab6d17e2ddb307e4ddbb2de348e077bcc307a71318bc6cdcccccdcd2988a81863a49dda6b1b4208218491523aa4809a9d00dd1e5080c2dcbc3f06f84912c8839a1a209a2bc6486505343e0441813aa8f1b72888a5a466bf45413e6cd01215cc5c813f04d5d0aaa6dfa2284a78e8350a117280611dea76051251a4308a62658b28474411e5075e12e50627473c810655fb2d3a220c2b476c517484151f63449d225c525f7400bfa834625074c40fec53e96fd1114cd8880a538650e55ab087ca71114495f92d32420a17d498df222386e0144620f1a722237a28324207d67fd531297056a71ad40d2eea16ad80f5df69053fffd1530dea06cd0bd3f781f06a07f37a39ed26e6519fdde53b9a762b04015efc7a5168a21b59a21d124c27c1157362b3e7d1bd172e8f9e9c01939ff7f1a26e1193d617316151ced922265b8a766801e1d5cee4aef5289757e4a30cd2c31fbd19fad769fc723f06f0eb452141cc89cddda54b972e3b9377b74b979d193d0a0376a6b79dea8d5a38f6eee63011feeed2857e77cf8fedd285b9879f01bfde76931b4ca1be749bb274f36684a04a4d4a1ff4b76e776807246a1edc0448135c1bed6826c0f9e630701e0c9adb9052876c12e6bbe5a3774834af4836b751833a6493be6767d700d3a1471e47b2ee3b7d771f0ddf1e27f703017fb93637ed824fb56eca0c3c5b7677e44a983703ff45e925897ad0b655532e20310131720381abd50af3e0a6a2867553628c31c60e069f2943743e484f3f75d41fd9c15c5bce47fb8704f31ba60cd1f99e360084b1dbe71f347e7212e86fbf9a6bbfb06eca0c7c75379525eacdc031fe509e942fefa1cf13f571123012e5097e48ef1b88befd48e420c0df976bf4a27e4d081cb9602b2982d021dc1be9e32f8f1d5edd0cec23ae560f3d22d37be8bf74b838e237d71ee30cfcd3476cde212dbbf638cffed5df6b0b0ee8d1d13390d441c3b16551541c546dd5b68a423b85c3b66a9504f224d0c6f150e1250b8a5a838b72c231001be000f0000890423c4b20d982556dab6d55c4f34a870afddb10b0d50080c6468dd38c4c0c0c8d9719b5c624e442d913d588db23028d60d03b1729a5f74929654db469984dad4709218452caee41bc309b8f3ffa67363d39fda98c92fb6f8001ce950d8a116c58c1053572b070f64023a8868a058c1ca28421c50a1a6cb1338b408176450e3e355d56801285130e142f7ee6b708cad10db40fe6eb4699633364a42f4616f6066bd5f5cfe67d7757fa7a547edbd7871ba3e0fa4a19a00a5d6605f58b50aea0bb9b73020fa1bbd7034f19d55064ae04e8b4894a7ddb4e5188ed0df40abf52bac35376773baf39c1d48d76470944e5bcae29e93525bda6a494524ae7259dbe106d8ee8ed2f3f9c53fa761351ab5e7ab02f46ad82a830dc8bd310885eac207a71c237f4cbfb50f0c5e8c5a85fb02c746d8bda0e7fbd832e160b4ad0118d1f295096fc542132a24228e7a3571327d7149ae2f46234830845456079f95f0c12e77c2f46439cf35d2d2a9cb36570ce161101f42adee92f460c53151391a6458537c0585280bcefe5680259f9a14013903b2f469db241653f516115ed94d0890a2cdfa7a2ef53956fb741ebc927454da0ee5e7e5e9abc18bd54217aa1f22245e805ca8b13a26b0275aa9bb360ac75ad8bc9d213903b99c32e86c5a818284bfe7b317a319a444673488cd38b071427d0f78bd18b51a73a062906a9559c4bce8b41faa9350629e8448553ed555845415884a8d0f2ddc5f716f47d129a64d4efc5c84464d49984a4d1b7d34869f482e5e5e8258906125649d60b15508862905eba78d9f2d27a21e325cbb7cb0889b670ce67128ae92286cb37bb89e8db4d42d7a95a01b91e59d42ee2543b1616155af82111981690fa6ba3a1a12a445b543556454370a1220b1217a318852d6afbbe0cd1104340b814432861020aff3913d6118e6021b1b208b1c5094debeee89023d4425b881d19b55c1359e8ee589b997963d43aa5ed753784e96eca39bbbbbc50700afb8dcfcfde47e4e9deec8c96165d8518a5bc61d3708d3c4e7983717e1b55c3a8754e8c0afdbaba093b06ff8e91c6b8dddc1732ca4829a51826e346b78d8f19a9399d346ccac85d9911a8864da839d432ecb14dbba8a77135ce3965bc326d330294ac83bf6198438c620ee97448336ff706738c7a3e314a10489711c20882249c0e66c47c1795b986f1c848371aa9399d300fee70a155255fb8b241ddc0614107f582af4e59f4be18fc254cad31cb92a851db0dea686f95a934a996b339077d3a86ab23541854e89a5c549679dc3ab8a82c33c15f1eb192e6edde649e795ef4e0f4be888369e09fbe5a097270c51a0fe0ca07ae22b7710907a78ab344838ea380ff7464c095517a92031ddb858cd2a9f4caa5c8090b942461714e4784e53f9bef1b4c7c7b6d2058df452de0f2c317dfbbaa1f1a5aafeb62411272e0b6985810851d3628824a39f0a0ed608863e9903dd1da60a004832249ab810fc5429435e12304050f511869e9e1a5f829024ac20afe09201b9808356102737202a9534b8dd8e18db614fd40e5e7a3689d84280a62cb7fd563b25c3ce7e4b2830c82d8a1e83fffd9818a2276d0d28020908a82d8a188072b8a8250123f5a61adf1d3e9e10db41021eba27e301917d916991659122b776f24ec7aecd765ce23c763726d83e0e4074d768cd0b031f9e2c99455c12065f0f4935656079fc39636c9d358c6d3c88493115b9f6c0f14095397734b97b13ad6c9d36db2e4694d97a79e09d58f9636cd6bc8f1ecc87434404e34332ee327cf08543283242e768cd0b0e980350165670ae64776b4de168a28c078c18e111ab4a49d29339c063a84cfce14cc7b884aa38e4940a6a71e5b62704e697ffcf393d01a51ef28306bc52f596f5912f5d2b6ff3c4ba2723b91e37981c6eba34e51bf3a9a7619afb3683f551249565379248d9e7e324868e8a9cb8884555d4e3d76c1399b532e9b836b6a9ea2607c1b48fe489f2f32e1f222520cccaaeb2d7bd35f6c52184fa9cb09f0cef4daa8531df79a11ea1791a851536f28a8d3295ebcaf5ef1d47775b478ca5b680f2ab3b8e8a9c724547a97c72d9c05a647a44e51deb26573649b4645a5e11f0f21ad60bc8fd6ef44b324ea179124a0f917fdc533163a1a9cf7a179433a3a064665a2a7ce4338438ca2ce1c0fdd86a89a7f5ef2a8f4d8bc28d469afc5ed8ba7b1f5548b4d51c738eff28c4cd99e9e9153d21296d0b2431dba8d297577a49224ac9dddb1a1bb74d999c2fe551ed943da6214f588e402428d3e947a3b410786978e08a45e6473644e1d06ea94d6cdfbea6679baa555ada794fa124e51ff6e44249c8a352c0e6ac3de50ff02d03246ceba88b437d4790bf5d38952ad08a38ccca05e8451da94fa6dd23ef522ad823bd4bddd9b88b429ead4a91735aee812a8839d2e79ea25e7a897bc15f79c17577b433d9b52bf88b465f5d423525308973a6f69d56ef9b15c3c4619a5ad4a9c820fcbadaa469f0e391ed3a3ef14dddb1015fa52eff3acc3bacc35d85dbf5c04e0db18eae6db18aaeeb2477e8c51b4da4eb0a87267fb4704a6bd696ed83e107dcb7cf7d52af241e8bb81be9b1bc907203477e483181d614e7fa676d2443474d3e6606ff50f1af4b5f9baf5ec59d07a310baaed71b54f6aec20ce9162d8281171510f5a9e8bb8b53c77efa959ad23201165fc57d32d1f343fc7c3ee807d19707e7a4186ccd01f258b8e7536606ee4480930d7d8e3cd370cc33cc9911dcc4ba2f9e6eda63ef686c0cbd3300f07cc9364198679d6a9e849304f827992f59260dea9533136b3cfa18d6e4aec26b49936c5fe6d43cf9b940dcae6646bf2db92672c0ba8630b6a950f02a0bba8b40d76853d2bd5900c000000a314000020100c8784428140281a5695d53e14800b869240765c1b0ad324877114858c31c618420021c08001011922d2260866f9103878601eb4666dc682f06b888b64ab7d8e944a465b83105110458bb6d1387099dcfa8bebe94836d07c240220eec0d7ac7ea266bbcbf5fbb833a7b73767867f9cff42243e12af9358f6373b005fc8dc05a9dbd9f7a14aa2016066b59c4c3ef7a30342e4570f25670afd81b75efd857eaa15189eff6925891adbf4e15848a2f6514b0902199dd867c8cd3b711184965b4f7581bc432370d967c24ab47785f806e7fb9dcc8f19bbe49e8fda7d0b860b41fc774f3a9438b378df5a0eca0d52a777fef4793e4ef378b28320b55aa6c5ea56b9be55d4561ffbf4c6f9d367537a5451349b30d8514b661ecee1b04f2d2a195aeac5204510259eb78aa974b281e7d9acf0d244dc03b9add35cb335018b349fce2a14ff4c863c1a939796dd43c6b422dd479e2bc6cbe00e0fb90223efccbefca0466e9ad20f0a3b453da2dbeae999c55790bff08caed3087fd752714b92add1cd30f8cbee9b262c434096fafa779c7ce5c02cad3c0ddd3408d1d43200d3817db2d61fa7d15ed83078ecafca5cb119b60059b7b94da3fe778972227023ef9a9e1145ef91d3abb51af41e7a87dc9e69910aa04fe5231e274aaaafa73256e146694aad2ad2814d8d915619870b824c1b109acac88bf2b669479b18889b9244a345f3d2b62b13924c7a9080abdf606b15e60949f8729f643eae2f670768925aa6c95b1ddf9e0310d10d880e3c938d99735d12d1467129324bd8ef1e5318c302b51bed8f7a4a6ad09e306b0d2061fa30b28d0ad4262bc440b32990a18aaf74b07937d7e9c039692351911d0ce86ed077b7fedc6e8a35da7576d3b7dd0664775ae78e6239d8abaf0de81561fb84841ca19d462c30081b4ed6870f526830c0c847a04609f9cb7223d4f98a9ac28b3b44e126138d7c5fb689d8f879b5be6e98b149fd484e5707c6f3c9f8188c62456889ad6110c396883bb62a795ed622164c5eebb02fb699ee257e5a8443f3d0b37220a58b7a5e43210aef15f64fe9cf84efd21f4ac79cc5626e86cb0577e1a063c29e3497c037c3135823b5cb7ab9070ab617e0e96cb573b7f9142c9a90ac2f0713986e63449bd4296d629ddac427a9ed624c6dbe0d9b1e5ee9f636b1dc9c57c05948441891a07d1127540516997463ae04e2f7b12b3806281f1294a99880677f8b4bbb9ecb0fa72b3606f18db80d94dc19d4cdf7718dd43c44d90fa6fc4019696b705cee72999434e8b40e8eea2f0b62922dd02c60245defdc13ace3ce7cd3623533015b9b6ef5af7263c3148c843f9a204c7312664894b116873f1ea64de20e237fd99a79f445b79977e39aad2bdc87c389d3895b1507a8ec41bf3af7f99f8fdb8bbd9f2eb71f628615b5c19c24781ec68d6d117fb2c71f4a2afa9f4b231ffa49a563a17fa13645bc5c6206f54f802d10cc959fd4a37ce80eb85b75dd955d75bdceb63ab5c41b6bdcb5692b637b9d9d7b2fea3f936c5994fca1cca9c332ce36afd5445a839910b75e22d2f2ab9974ee9bbf81c3390e65d7f33dafa791fddce6ca4d918010e22edde69153c2b7730e684d3c278890ef2a7440aafa039cac7ff8c17077fcbc6531f7170d8c9f3f66d65d59ef946031f4d9d8966505375d6f46393037d5e51738d9e40161d393061b45f2d521058365b5bdf9762e4a5e008c73c0a319d7368a65dfc88bb3c6dcee8f02bdf5d6a72c61892597f4204a812f3e43c6745b5e7ce378047baf0c3c40d66fe7d5be2dac1d294be00880fad52edbea384f44df60323dfff27133a56219130bd7dfbcd2ca7c819ae87c1a1d90a89274be033d54804746ffc46f38b38d3c8fbb220bfc0613b4c2e6c69842e0b2d7d51c827fce28e2361140d8d7c6ed0725e7e181025c1d4a019cf4a5a12ec74c0e3e1763da963fcaaec276ceebb795524557a75f993b02f19d162f2e11109240ae5900405c3948647495af1c073f7591b253b33750b706f16fed863cfde8c73ebb302aa2a8f282d46f64cf05c9bbd9db2ac916e403be01d7f93b25ec7af8f9ba8c47b04b5fe60e454c5cebbd56c4aca0beffa7a9e2a566d55fccf10d3e84bc341abdb018f71183b421f5ce8dcfd43d21a22f633a6d3ab4a89d104ed92974d4d53b6a1d26bcf42415af1c5e1f47ade11ef096b2cbba3b540d3eb24369cf8d1fdf43b235f735680f6b562fa879413b7b18d8b417c1897df75118370a3faaacd6007e569f99e9d9246c928d7374c1bd367d6c730b7b9853aa6b01004f7892c10cbdde1b481d21716c60d720cf5f34fd1dd04ec0172b3b9855c503e5d607fbdcc18e7821fb1fc422cc71d6787a008254a006d22e37da9da7151f6aa1152e34231c35a804a75f2d61de147823a5ed96be7672e40e47100ba558f916f61065704a304a216727a2dfb51ad0e463925beab00250fb665323869ea15e04f30ea1e4cd6eb94cfb5d07eb54caf8aa1cca810f898b1589c3e97b9a17e89d14721fcd2d39e9689175e74db397c0599d6ce4e1dd94a83901bf3f69fe8a50cbb6f70b86144d75fb7f9d0ee0cc91d2161b9a062902459f36721f350dc38877441166fa8a286775c037a7b13fd56ce8abed7804bb8952fe48d886c23ccac9774655d2136b421346fccb89576e4d8cafd89d6d6d68212d0f2260bd720ae0469d6d97d8a3511a9f844e9e019a37790e7a570bfdded4229319b36e34670082d26aa11e31754d9214e6f4c59bbbe30d0d86237151ca791c750a80b4e64a228f4020a5f9760bbb8e8554353e4e6bfe689537983106415c427f0446ba10ae3069ba2c7ef768e7095d82ad1d864081c94c3c2cb95e42e97adddc3a6c6134aefc6839366fc2be1b7c489d3bee61f099ff460001bf8b4950979cc9b88d0c6066e479a044559eac10d54f12e00dc136e31c16d5f11e08657e0015a57431c4c3c496709823573f6e180e3e6bba512d508da1226ff8e7e6e93407fdba09bab9b81379de1e4738b5057c1d2d5c4e729e9c55102fa44b81dea194a44f29519d34edccb2c5151f4fc5f5018aa1cf4a373efd8e4815ee8b9de77577e0171024d651c6751e7037002b31c71926e274da1e504c246ade6f13c17cce7cd7116206abccd6b002082ef06961f8ba5b5be2597204864fe9d542d45f904413a19e9ad46c258cbe70987fbc9899790f2ddd16be278bf0c3ec8942741e6e97e1ad6c29273f68b89f1fc14586f4a0fa55cd6dfd52fc42c7513da43a1d52928366e1acc9a876c58d1035b803d6e00fe8fb63f4b37cb8871b306bb6ee01f8c2865563f2ca16588906d557a4384c3c77729b32ec85d6452f402ff0173ac2ef4bbf4e7203644d965fc4922f838d6bae02076c5abe97128a55a49238bf00f722f1d2b5f06d0ebb178d869edd272c7143525712b103accea322ec37087439d3c976b3b0f9b9184b17e04b0a510c17276b95de95d2af958d193554cf9aa5b58f6468b489d53046810b11690c3f5bfde6ecd9dba5f7f8204c8bfa4f3a88def08a8499d60736dbf5c96a238c0a6b3a84b2dd58b826fd40206b297b3081bb0f0a817bda1381b75604dda82b4b6e9d8d94aeb51316c574ee8ae990fb3d29e8ab51ce9d9ebf759a5d192741bd4a81e092edef9de2ee1acc32ace634b4d69d3c5ae1ec735a248f59d0c2d09f8be083352934d86acc6a3041d780431d03d558702890673a5c27f498e4c2670c6dbd22897b850fe2c3208d332fda504a7ce0c901c67a39fe15c8b7a84f26c9a2712dbcc8e1845fd92d6a09749eb2f252d0ad7fa34e0e0d8594bd666ff323883f429de764e2b70c387597f7beae1ce93d5a8640ec0056bd7a5e4391d16243e98d97a0f3a06ba4051623e6a39a6efd1790d0fadf9af382ea416638541c1e82d1189e8408bdca4b9fcc7b7d30e450d0b17e7bdb6611a8d1a9da08bf7d207779e3643fef1806e855b36c384856f0df043718e2b1d97f77faaf95ff08f6845ba7560c1ce64889408d5a96cb7b8f5d5441709f828fa99e86a057ea2f842f6755170ccf32e0e2fc586d8e01865c8c74511dfa80b55280421f9091e3bde2a00fced6c40aec3a443132721460573abab5f9ca1fa550157c2e1259ef313a3c10d63a93be95213d142bb268dfc131f135123b6bf03e3ded1a8e92bb085bdd4e26a9e9595a24e2c90268f7bacf63f0160806e250183f2a0c4a1fa44bb74d0104439ee3037a7077cf719656bcafe5c360dc72ec4ee27df2793fc93f18c34ab08417d91f0b3f20d97aea62aec13cd6eca9226e105c53153a7541ea9613b4c4417229992856aaceba24b2aed40f8b4add3cd33bab34ca7e7bc1c042cd311c030da7b54403ad407363aa4cb6a84751fce40258d48d712414283631a48334dcfd4e754be2629ab27c182a75cc5cf8d5ccf3a9772920392f70b47c47b94f042ba42ec204142d325396320d6f2c9acc101744d0874e3fb507bb299223028d2a980c59ae29ee30ddbd0a6cf15f0fd6144e7a45421aa2bd9688eeb4d1bd9095273130514ae4cecc4677ef85c1cf8e292ab8bfe9eed1d0dde9a607d604943dbf1c3f625953af4cdad1b734ab5b09784bbbb781de5c11d6bebc366d8a233f9512d61d1ec8bfd84bf122dea56ce97408af93f876fc390c205f230fd512b83a1aa4c63b35c9bf831c7abd757a4041306c81b98b6756d7206ba9351f70d2c04e5415da641c24741341938b0334a940e9b354e66299ee3a5d227213070d9b47c260d64e45e878d7bad65ad11ddac1bbc0d67568bf4a2fe4be08ea370becb2970ae255c668894e5dc9c92d39b606f24c986245952b2f0ff3535691994eecc8037183b0e3a27eaec4cc4eece44d4f54454666ae62c33c1b67634264dc0957d581ea8638f236f978750566b24cf26cc1481417f9a15575ca2f7bb3ccd9b80f191dd7d04b3a258fff6b174fad665d5082ea3a5c4284d9c93dec147532c79501f659ae39db9bae0f8c42992694f79b60c9fbc8ab9bb35dcdea74398cc300a39e0b36defff01762a49b4010eddd8e17d1e1f13cdfd26bfb4448003978c5586f3b81585246c08d91f29533d6a7acb8bef85ef9cc5958f4d2d4001ad4ac17a0bbf2b6b7b96d25bfa64c6dea62afb502ebdf7d652bb5bbc1d99a176c2ff1c752f9cad93004e1c17e7d223095d5e859d008d3589689e2b82decf0d34a0aced38a66e9120f5fd2085acd4ab6034435220e195b6c146e1a7fa7ccf0d5886b87b0682739c50a6bfedbb2a21b1cd9c6136bd320e0d3ca1450f09d6162d44565a1c46be10c92f169fba2c219a32a7054df4c3bb83e54f445469ec033bef98c02c2115b03dd8b24aabe174f4c525330909af7b56988110e8e737550d6ec2741f41f3258e8c899b34b3d1c014ddbc4885d91111202bd7f4a078f4d145b308c867de73ca46156f58c290b11596ef74bc1be256a87178a5e1eee28ea2f396ec2f2cbb1c1f67ffb21e9093ba4551c73e97e7348e2c2546322ec6f82995208640b84ffd492df80886430622bc1fd250812b9c1c03ee22e2a7b47d71f305560eb2c9c4df91dbb5bf4dcfb0adce655db141d5a1f1cc4c61889ef29bdf0c057dae1e59f49d8bef59a2df47071d2cb446ea55d11c0238323eb0b91951583fa0189de5279cc4ff499dc5dd3646b796598261d725816cefb8009030e4e64e178414ab0ee11c1397d6c61c88bd4f6288e20d28a3240af79abf507ef274cb2f69d5dd8caf728745cb4af6671c439698f3e3e93473502e7c72cc353247152dfd76da84532e0543e837e62389d855550689ea0e370ef9ac1333c9b906a9623da885526300ee01f4b565fd9c018ce44e56e3ce7898361ea7d4d2e7a13a9f4a0abc752ef8bd8d47adeacb3ab1c1212e50ce142c386bd10569f6eb8aa018f6758ae967e8fd247eb7b0fb833822e5de11384db3ccea742fb45af9338c49f2a4e30bb2479553f537813ee862f9732d03c7dccc0ee50951621f69f8374a64a8dd08148872ebebbf042c3429504852ed760eae4205018592cd9e099fa2aba8db4e37b18dbf3ba7dca27e6bef938e7176ce73093b903b83f7fea2c96aacfb93b2428ca118668a4d2cd868128e1716c6dec95cf92dfd9d4cfc16a767c215ad812162840f4ad71d5e8046575dc16db1659c5077e8233d856832b9705da4a424b9d495ffb60c7bfe23e3b5f849573d2532098c7595f8674608928be3a9822f3e66867536e53065550ba712b75d328ffea51fdef0bfd8542c989c24fd259f88935c039112dcb989a66aa9b7dd361caae5973f2a20cd6ab1780581e637141bc40e4e5ebd0673793b94ca7ccbb709afe98a4bd6905e4f1426330e3f8e8e3cf4c986e9e9469a939ca149c85a991b3cdccf2983cbf21dc13349a6431f4d759bd25090ecf045276b6e1f6a38d837a872228e1149b8b16d64bcc6bd5d43421fe8fe8f96ae498c6e130a605ace463cdc998bf3f89049a07fa62b9c7919fbc3e928d07fc7e2a8cccfd4ccb60059754bcef815291b14dfe03bb0bd7a84cc546eefd8cae4e7686b3511dff767cbbfa8396a3a34acd3a5f8f7c6ed4231d1b3f9dee9dac666a2c4a6335036811bc23c4fe3b10d13ba14580f1e7ff98b9b95c268c238a31f722437d8c2b99ad06dac1bb22f508b128f6620547dd4955c64c4d254f9d20772a00e4210aaa9b598a8b9094cbf1509ddacf0f1c14f4008d24fc22511755d76b6d0856af9cb5f6929889e647d290ae01fa07dc9a8732c74db7d5856f6ec32ec6b93b5a5c0e0649f787794be7e2ef78c3d63f652892e900be13b059aa604113fb1c1254e90783f255666cbe351e058de7d380561f7bc25ba11675d5d4e9825421435b7965611b197f2aaa4332531b4d36cb5d0abbab56d723eb8c2f1934e03930cb7c04f15fe4d05cce22a0b8702b86c300e86695d3b9a5d158553552c8fa0415d6bfb74acf154662b45aebbec066b6faf96651ae963f8539a5042f713a9db7cfab8025a8ed82d6e9d45001a0c2ded12e8da4c6edb1ded133303a303c363e032e32b55e8dc7f382f2a00c17e9c8b3bc92d3459a510404e62fabc21d0bca681c24a8549d9088b64ee2b77d862815a5af33d7a1b75d89c698e9ef10adf0b6f74d66837831b7913ed9b1a3d970ca94365a50511e589a6c2d190408112a55b5a950544eb5bbdcc93e9434bdecc16a8ef09712b6756f36b58525fae7b27db1f8f83993b005545ba18d6b140224df61ced11f68f64098879507ac6aeb496e45b19a66fcab162bb3b53845e40e8fa43cc77dce36c4b3669a3a0ce4d473b44d69d56c3b52780b9baaeafbd72a87b9daf5effd69e9998e6d6c90db801780ae305257cc5e33f4c47a581d340adee4465a6cdfc254ac0eff3809232370b0099f41fdc58850a1a65e1d7cec314ccb316d44cd30c3ff02d09296790edd731aaf352c4c0d9ac346d1e561cc1dae6e13bc35745274b8fc162a5b7b4cb191cae02ffcc75322c34dcc8f35730d9c1d2e577e7671e11ec3d9ecab2e9a779f9843f0b38a0ec6b560bf97519b816f48ccb8d1e70a8be421ddc4a4f873f3456981cba16a6b5c751ed993166cbbbd71d019f17413742d348f4c5350d0f02ddcb9e89982a81c4e583a7e48432d3a35152c89e99d4dc0893206293cc0fdf55c96d2a52449fbaa6bfadd9f2ac08e6e1de68b7bb4249e83a4adf76c9346f2c566a1cdc67eac0243b930b7df5684636432e0710eff7d32e2b49cce043845b37c412b8e415324cc026c5bd8ab290fc41aa8eedb5c6cc3bc172cfe2f20a4ccad72b4c3a73830367de275f05a09f18d71bdffcf2372b643e9b8b1c7c1e36db2ee01e070199ba0c1583ce6158bf0168e3e67d7a2f553dea938e4cfbd7d7f58d9a28a3145f48a7d33830fe968c1aca318823cd0c4f34137f84fb654a7b2b52971fbdef811f223850d9da723e45c601e9cdbccfcebba2506c23b1b475c0cf95074d8352d6482d1859478a2ad8da8210986ff29a4463efe8f2805faa5e71e37f4802fb5d7762a917f38cda49f92b9786c3eee03b8d6857395cc13eee30ffc411cbac93d99ad6c323e6ef1ac4771647413292cbb025d93a90b23b326ebd9be011d0c0236943f5a3d28167231da4a30df16acb398cfffc6f02b256eb34a2697e65d01da27ef9e4c0854ca0ca84602f898ae4132829753e7f124b11616d86a74339f3844d5891149a15401f2d535a7fae6f4f65b129bc493827fd7a69cee4ce3582a31de19049e8689d82f72f6e47bc7129eb989af286633d046eb6a8a1089b213020d6d7c18a6ec2f8a04013c4782f76b33f54cc0838ca440427246809c0ece0d95cf72f3c4f61711e561990af5de23af021e0468876bac13cef2ab1c8e43962a2f99ef9edaf32130dfa80e3e182529cd2ae15477edb053979015f754aac7b0c7c886343f79c56665d382161d5739177bca850edcd62ac1c5fe41dab586da5a53e87a5be14cc591810e96e1bc66ff2108b2de2c2238064c1513581ea23292f75bbb4135849f1f580baaddc7b450eef4d5482de615ef6ef9321243f0a00f48ccebebd31101111fc9259fced366d0460e18b17e3167de1efe268666a6ed8927c9b1603ee2f02418dd190016bbff24803438d09ae1208241f68556e8e01e2cd9af32d1d27f7964aa2f0ffd2444d26e28f8189dd10b87cd602427deae619d54911bf6d781c09cd7842a44de317b70fdf35bd91291f017070121bb5e5dae47953d5735e18f6f5f78ae8bf556f69ba6ffa7204f0aed2fd0075e53f81c0212cc3df6a6d8ecdfa49ceef024930fe4f453e9d5fbe5879808c9c9c3552a35a499e80a8fcc3db373b4348b11a16cdbf20e7ca44a889f1be7b60db7ee1d39165cce89b4b4360d7ca0446253bc43187c827650d07fb37ea045c814fc407e2214928d554550ed6c929221574415390d10b3c8a200e32acad1c10e4b6d641373302178a357124412dac0a8ec66f21e29e2bea1b3934edbb5cd0aa66794ccf4337a88f4d54bc429243d1c38ad6be4f595e5040f8c9c2333f2a25820eebfec7e68414f2890139ca6e1fe3e8f69d71aebef9e8278530ca5397531a85108748a304429e46ab4615e557b88d344c3770bc1ff21da2457bb992096127f27046e7a042ceb45c82246bfda7cac5e280cfc7b33c3c44addc31a8a7a0a62332cc322163f10c6275b08def29d50c9e067100f0aeecd654dae1180bc02a9e4245fe8e042b12ee47df5736aa4ec4f2ebdc6efd07721943ab5dd55713dab1de2193d87d54a947e7ffa15dcb912fb1dccb063aa1faf5615047dbaa6847c4784d97d5a75b1146e554e8b64eb555f6af2a8b68388a0d0ff7d7717114a6ced68b52b8988bc164f509797b08fe4bf021a73830591720f85f8d8d3cb641a4518314b69fef4629ee8dcaed4353bf1a3844da10411b0c5b60fe0256bdf69c3a787a16a830c14b950a80b54b20f0cf840abbf0eae0432e90216a168f64e195cbec888df1e84066f5541ca228576b6c7dba39e87ff9932968e2e6bcc935caf79e5657111e193176bf6944f3fba24fef88bd19271c88d3c53e65156c664970f5eb11c037659e2552cc9949843c38f941b5f28b31837db54da32aa1a8720d40a4a6fc1d4ab9d2994156188ad0df268bdf830c700982bf92ff7bf22631eae8691e81433774889c3ac317ac6c0752d7299a97d7bd374952c7e93c85f82fa1ce7c94acf4986231d157ba1a2264db30152117a681420863c38fb0b4e1415c579b54b100e708c104d8d6c91bab660ceae9448d4ade5fb020780b0794c16a633734ff6f81f24e98a38c7052853b1d21d87ed7e46b9f4da544dbf317039fff664bab328db7fb6bc94a1d53d0f495ebd27f7da93124d99cc9f9497e871019aa6f1207fcdc3a9155240ff6b58b42aa9d95194dc1332df921224b7d4f9e0e5e3cbe9b5b187884bc2bbd338caff0c2281bb9ccbc6205e775a2ec9d388a5e61c9d480882f1f9eee7ce77032796695933efca3ee7c537cf08f52bfc1f6e0ded7f674f125ad60e14161ff19610f5904fe1069ef06e14990790cd63e2857e64521fad3fdbab1b7711c82d70fec404ffb0c9ba3adbd7d039c80ecc8c4f6f994189b91af431f6c494842658871120740ac350303c774cdc87ee7a300bb5c3ffaba50afde227ee99f315f0b840f27f48fd6c3de0b161c7f9e763558af2bc57ce25207dfbe90bee2198360c4f14bf009f9f28b293db8eee2bb97b03ef66866cc3af4e30ff2a60ee0e8657fa1405b0616af26a21d68c57bd4d24736ab1009cc02d454c2f9ba6e71bb988534d54a411bfca8ef5e3a9456050d09869827e3e907dce40d49d70fd5e4bfbb9b1e4ce1b8bb3a9a0b96b00e7d0fef96181c6cd628d199d29c2b786d8f7a13f4e3b3da8a09f298f6a9cadb8245ecde26c4c5c55d635c552c09cd74e9d3f17922b168e949953a7ce52b59719f8d123e8c70fc6e277f554dece3e5df1ab5f33374186de1f50af0fb01fec749474df4ee4de85ee91586c1e9453813e01b70583885d0055a5ff4f0c9aea326fbfecf1e7b36432ed2b88f5aef1217e7da55992b4b41213c1b796e76db9e22d7c6edb02f72f489ddafd14ab9ef1e6aa74f49cf839d9d83f3e3e8a7f6f943a7613938d2aee4252644f522038603f8d03d4b806afefea2970157144c0d3ee8cc27b7db68100fb9f9dc20a2b91315685889e3448426dff8f65df40b5a7c4e24260096a12fa24fe83200a5201f4509429faadb59fee707d0ac38ee1892b2088766602c331283318793544874151731018914c47680aea27bff84b82fa41c7f86fdbe15085c3f2cccad073591a4616e768d77f84db0b42ad2f7896e5d5f2f46afcea44a9d8a3381265ebf53326b32e86660c8f80f94c02b767bb76f94c0fbb4e975fc2321bf6c5d1fa2cf7398b62505bcfb960688e1261950475b14f0e95f606b02e1bcdf6a402aabc1c7d5a02ba84620a1ddc6a45fefc26a511761c034e2c634d3c11f32e0b1cd902484e893c205d11da30616230d3f4913cb89f33fe7f4a1731d9a995264b7ade07778e3146354ca8e25a503f061626291c81f8e8120c2a63b4d8b5a39c50c7c2825e73a4ff5e523348d5143bbef4eeb1c77c80c36b4006c811f9844becb3e37d9006f86e7d4fcc56936aeac10fb26ea8f791d27fdc100d04d71da68be760734d9091c5007442272418b728114cad731b82c42a5fec596b99962fff19d8a166606d545f1be18e8a79cf0fef7d497f7cf3489323ff5c3c627569794a218cfa1ac49b6975987d340b97d3ba0b99e653e8bdd9c26e5195ae5bbb50d56a3868e44cdb14d4b1ae86f4972038d4d83bf19086961fd737c2aefe2ee8e5e2f48a87b6d31942ece13658f771124849128f9ba942bc45f78a50a3e594f44fe802e8a58d04d84bba513c4c8efd3840239e543a87b54cbd1afa928ce45fb86b89504cd193a1953a3b23d4f27bb983a8407e0616bd522c38d8a7e627c46516dc84b5fb08f15ea8d9612bbd4a5541a2dcfd8974f3ad13ae7596faaeeff7da9f2194c1b82ad4231a5ad8d306c89cfe2aac85b5633fbbe8d5d23acb78d175a4beb82e20cdc30d5e4bfad79df4a64689c00e5c825db44af80395fd5127996fe30f56f8743d0e5543906ca1263e04d6f0b58be2e01514a4a1cd514ab322c2245ceb1cacbb0cc880ad9f122fc6da4d4a1a01dfb92107db215f51ae8350998b330053d4f9cfbe7829a5076996f06732a2c55398667441af16d12a309c3490deb24c601585ae033329d50e2794adc5d060c28134f10ee48294165ae6c6000e244318c004e1aca1013f53c1d3944024d75a6de392a9870186f4b3e541daf2a10e38a7e95826137d4966348d53c28cd41f1e349967551b6c29685080e4cf09de1ea22375809a780ee108a350094167d5e0333a2e3f69c4f093f25f2390b5116fe88e4220d023863be3ce716fe06ec996aa68b7d5330cf5b40709a177431237f397e2d989bca16407250651d10f1025a791bce9779aff31635c4c5ae6f577d46bed9fc618c320aabbec756806bd83ec8de4b257e4a2b06d3bde8999ffd8ba7cf694d86e2ccb08e31f7e93728fc7abe8fac69a5799c43f52b0a78e1aae2792c5ff242cf26e55082913183b272d227f1242ec6043d44a385efec52632a2265062d8b53462bc9711f7a69ddead45b39e2a22bbae23cfe6fbe7d06afc5f7c71d9bf8021b4e9d746c4ec01775f2f8bc3d6a9e1518a83c9e69d9c53fa8201b12ea541c57432e842b20bf928099c6ca6ea8e52586a114051e86279bd4341ce56252ce31317da2dcf7cadf7178ec00a25901e324287a0a0980d16ac0815948ee195c3d0b4c37dbdc17069b0e607e81011b1a989ea16ebd13716b2516f98a84786ad789b00a869dc3d16841fe0d03078bb1c578965fe75a5bb4fd109b772e9366e355a1a1d94b98a3d78052613e78e8400a508c6d21d2910c9af8e9f3d14d29e3c73cc3cb86305d7665d5b9057b8d5758a05eadbb0a2c91293be0cb7cdf14808739d10bf7dc2e508a346ddce24f0b1bd831b5009955e5aeb2f0a7492af5fcbe05dd602a8530ebcadd21344a609c943bf102891554a88c42652aa3c9350283205dd37f2021653e8aa39bd0625a3da591574efe7100974ba625f875df503fa76ba75e51fa69a098668c116f3ddda079d8d33daf293fb0b6bf5422a755acbf75ec1d0756f325bdd600f1ca774a6669043698888ffda8646bfbecb1336ee7343917b9054cb51a9f0f002d721d232f836c575c7b8d9e977baeac48b1c7a72f63b81add0ef20592cc3c8c3b60febaba86d253a4d2fab6d24e10d650c4c0399dc770648d88bfaab86eb7df2dafb34cd0e5a673dc141917b862ec7c6b29cceae63b320800f0d867613871801bd61fd28a3af68e001fabe05cf7b17249082aa24daca3b7a06134c53e78b625b1a54a64dd80f4948be84e34780d6d628a9b85f78b3be5fcaba67a847c5f9d89cfacf115faaf56c2b6a7490a689f64b88ce7d722b889f7cb7fd61ea1954a5e22bb980a94798d514f13566f2b2b8f15d4c47ef5adb2d1a0a84ebd7c2150cd1a2dc551e9ea94731c048358b28f2f4957fcad451ca131692a95b74ca37af768d917fcfbcc392ebfc9eb45ccbdbd84ea529724cb4a422ed9a419b8549e4b61bfa0b637b8f1595b64d316208c7397e70adc09ca1bb467a1faf26d80d9e6c07f23fecdb9ac125a663142669d94127b7dfc7faf00df282454e25271ea80cf8b39704e430403d4ba0066d7a9778f320003733d515704aaaa369b0af4b035d1a5f00d7c57c14c18c5a94b45fab6cda7387f74a20f9da02765a0398de4d3b21920ede9988eb89b1eea7720d81a5532e64b7319a5506ebd48a6312fc0bd4bd788a91818b1b270363c91db91c68cd3f92984aaf46c0239715010b75522581d948403f27fa2faba4320ac8271a203c6b4afc4bcc4d65168468a1815f56e49fa446d7124c060b37f62f3e2a30f07cd07b1faec13a5b8328604c9f627ecb177e74ed37fd078926a85158908defe7323d3d528340d101a04b52c266478b255486765341d91c2af6477bd6c6ae8d0abe2d37d1c1b07c2368fcaa0dda66dfda833a82e9e1226456f55b03d2bcfa47b070a3d050824a2ead7ad27cf1ba764cace5a8b9917832f2204ac527651d4b6b95402e815627eda368c2b76987ea22946a17638aee195e98d666adc4d5682ceefed33ac3e71524699b357ac70579df93eae2596cea1c2ed2562706e588563f8e85bfb0df8ad68d44deacf359319766b8a3136dc645dc35bc5ed5099aa1427016f56776c9c6aa6896bb4a698cf8f98263777333f5591cad6d22af5ae88081aa9ed700ec21c0bc3f0b39e4067292d79f7437d002995a16f0483705f57341c3445042ebc0d0c53b5a59351d544ef3b05bc4b2f016db3d475afe1aa4948aecb2e3575cd0ece7c4234c2129c51fca960647c937221c817ff20ff203a2d13188f071ac2a209019581cf4e9b373fe75f2ddd0d6fd58ff0362fa275156ea7f558ebcb6485d5cc8027f3f29bb2eb3b22eef287a13eaeb673d92217c4601d7859202b2bc7ec9fb9193f9a2b13e4c838ced17f9f402d0f9bd3c181ae2c26999f7d495efef6a7218ab632a06bdcbb517a2a1de9e0b7204bdf486443f509ab01f49efa5849ad1268a2a099ab77a363000ee681846f893c93848f2497b42e33598ed23f919bcc75c562d86e24cfa767f98348a8f51fcf41e8e7cdd0ea0f83c6925062d604d03cefa615692b08068236b72cbe0329b9be3eedb752b549c992a48b0827082cf6b5babdb2cf4398f4d89572bc1f879b60290d2e5be506045b7a3819303f24549d039c77e7f11dd7f63e4cb23b60b625f1388a29df749f4f73b0061daf3a9600ed99c3245fa939b331930914dd0fce6522231daccbe43ef8047e0b583a06e7b98929296a522f45ffcdc46189d7f7186a0b429b7d47055f49e2f774237add1a1f1d822733a4b6affcfd04e5ca7e72e47ffe845ecbecfc743a23bc37f92c22be38eed86940a92f90ad29c5b19e3a00165bd58bd5eed486d00033a373e42771da27e30380c1f16054f6edd9b2dacc51e21655500390b9aae86144e6e933815c6a62f72952c03a88c324e3833861e339f3dcc4d10fbb77c46d43c3b173c1015a9bfad828f61d05d46c5b4f3a2c422e90c1ad38a44d93286969cd9bbdea9ba0b08b3c7d69b706d8b65cbf6df99010da73890c477ba648905288aa9cd94e7f463fc2b147f4225879026d5777f47c92a14bc5504baea970af1e2458e43346c8dd559558e7936f718e1670fedb31231a25fc5e11b8fbc46af5b5a251c876ee3eb27d36f72183a0906f0439e16487639c1eaf9ebf755385db7f41c386e094f7ab615e744c82a7a0e14ef6f5ee48e79fddf1c4627f2dfa945425e567df9d1583b455fcb93dd7dc7aec9ebbc44b8c11e561fe823bb9cb62c926bc63dcf7f8ea1526f2d9b5cd08516b3e8b8ae0d75df55c45b700cd522d6701f6da13ccfbebe51f88c594f9c58dec172b1e6fb8e9cd50a40b7712c9330b58ff4553bb3ba6a853cf57f0d4e520f321699e76f1a1dfc6f2462a967f8d057642a06bd752ceb11604c4658906b732374881b4e4b8ac07626057792f8ca1a5fd681d918485febd80f79befc5d7e4acd2bbcba2877e9f96a6535aa412cce8b9508ef158d726175e53ffcc25a917771f9a0c141362e047eb2fd648e2ce1377f884e3899fb6a56e2e87839fd64433e05cda869bf9c5d722489e31aa7c7a683602e03b18a8541e49df20e9d74584f446f7cd427b14dda04160b846f358e0c07f627859f2bc79e2d64dfe42d3a4d1772ca0d0a8ac5e42b8f9e8d7021bc47b981cfcab3857ca0b27cf6bca2ea9a941a61951f4ecb1310912aae07c592be46814ce81d4c15c78d4b202cac5f87c25e6c3cac85b724762163734e57bd216ee6093d7afe472a30657008fd9df8008bb9f16219910280633288dfc6281911ee236e7fab9ac01b2873b6e008b70a9d0424ecdad945ef26786a37de51cbb7b26fd31b4706c0b285d0d80e09962d7a3d54496e8ce4e741efa316bd3a2d3bfddbb17ce8a7a2de82f7d252241a3b25eeb17082a838b626125240ce91a3a284ef0ce630fc311ba856ab57600012b139e3e5143265c6e290910bc75e9c88aab4dbb00222534ae36d22261c85ac24e501cda423f7c5195ddd5d94bcde9ca296aa62499319b2d5204c49961cd4f5c5d88c55e946ee3a7289754b124f8182c59a40fa093ac867e55bf24da6ef57639b67152068d86e06a74d5a1bac6fbbafe8ea4e076aab05997743a4c2624d7084e581a3e5805f1b5b5c1ba1c5195f6ddc0133375376169007e6754ab68101f816f1645a5ff05d9971d511da6a83a82b46dc324d7de2cd19374bb53d706fc4d0404b2ea67839f84346943f47e879ca2b1dc18384530f0276469addfd9f0ad939961e8d67d39b91de2056d65eeee07a26c9cd14ba605c0fd98bd879ad4a32ff30afebd25be684e4e9654ef6511d93f476198bf2d12e27b1f12baee97fc607c266db9aea556e352933c753c11423fd61522587ad6201b348fb907448b77828acc68de7365c07b663b437c55d4e9d01961d26b71f95b12b2fd564f5fa09b78deac30f9a1acf979656cf21aa10d53480e825188dda63ed4e2421baff2a556871b6778bbe6336c7607a57a3aa21f76b420dca29936a1c1a65958a357684be96f2abe0d88c3dd79995d1036cdee0d524372ff1d73a9e0ea34f90c2402b39dc424fd93eff12434c720d60bb4ea7cb8091eee77723f414c322ea5a8215e3ef656448d29c59e6b9fac15ba4d64f39955548db3efd830283ff1f29affa58c354396e591dd35a56bbc82e17600e1f08bcc5d405501716e12254ccfc5c0566f16da633c327b9c2cc709316818c8f74e6ff94ea74c1137c927bf8ee518fb9c5f5bfc00735d9ea1677718b3413ca877c5af5287a618487da51cd2175377858c1c9acadf9f4d84755443f7278f19f2a0139339160c57f1204bee56e40dca079b631ae979b580e070a13a1fba662135d2fe3ee8b12693f6f3921f018ab73ac1a95428bed4d1ff18d8db04eebe023e1dd22b506d0a9e08fcc4a32be56dadce5a5abb12b23beec03e710e75e665904c719e99947c47c5fa2b1d791b7a4c9777878f689f20a512f4bb2f1e4c61b97c38cd9d9c89edc5bc2ba95cac58c589a6acdd9810cecacf6a795d0c4144d3097d2c0f6a702d6ec2b69ad2ce0b1e19906c783eeb61a60202d965bdfe0fcafc815024ec39c873503569f22bdefd189b5b276db6a42a25ca079fb6a30184891403c4e8ed005ab69a7a50107fdbbee468230a13b12fe7d498c1d63fa33c7d51f75f51915ae868b6136a9bd3ae047c8cca2d84a67d671831a0b37330e86ab9374d6b9f8f2952d6b5db987e3b8aaaeecbf14198a3d61839c2c11dda890c20fff12e102bdce1339acfdc61b4258497a0803fe19cba051ef7b8cf0a5aa8fe079715a02374f5470733b40c787655b72cda200bcd9cc06d5c728b0a26c7ecdcb8d71da4ad569710b95a1b8957cbfe92762696038fcb895bc2698f2c94736897ff6116e8e2de40e0fc3993c85f030d015fd90a9e73f862d886b5e2b97fcefca0d9dfc1a2bed239bdfdd9f4c5c70ebe7297f339475811ef0a5e315b10a53e85b86e62f438075b609384055207194131afc45e3cfe9adef88f425473a2dc6e2c5c31e7acde87c3331e4024a55430ec594d3814208173fbdc35721b02194f76c10fb40281e6f9b273614aa9550308f112d3caa43f18e127042c17022a91e06830278ee30141c0ab689f939c1faf11207825bd20e5ebc41a1445a00bb35c1a7a51ea662b1a8aa8dc070dc72facc3af0fa1b12df5759c11ffafca6c6413f2c217d5a5a72b693ca716092d9d53207ffa97e13fae708a3f7652d57dc954503e31720976283305b26dc8ee4696865b298668897d695c263cac621ca0552308f054458ae9f1e3fa1412cf47525239c8e6111e7a1ea4d20a024bef7f04a4fad5f4b796d76deb293bfe5bc458f175ac29fee533ff279e35656d5179338324edfac200b7b071b4162297c76e3f63f618c979229e8dd790fef12f8de1a5bb1bb159be1e58e497fca0778ee61009058966e98a6cd095f78e9229c9d6eeb2d32e95677d986052ab82168b497cac05184c159d56adcb6a192a77fb6cfc696bb7b0430d3bac3e5f7fb276a9eac8bbe161756c8c9502ca838de126c66d293753887bbcb6b6669c8716a03d9adddd7c948dd90666270bac56583bb0cad29391050d27ba47dee472ce9751efb5276bb3a98748bd4c1f82e7599d94e2777bc2bc1c5ad1dce4de62b4604a911ea9c33f79e0875a9e0a26e50bab3120ec4a251c3dadd80c7bef8fd8784d46a410c27eaa1659aec62aa763b3e0b0fc8df80061303a52cd6cd2a580db44cf64955ce05d9c5c0a9d69b7987ac4f6a033d7f805c8c9e959b5a37e79392d5da1da9aaccfdc30ab74d48151ad5b10fc6bb712ed7a65c979b0e06317c415c0ecc12027a2b87c97bf2e6eaafeedf3a94926d70f5ac7aacbfde914518755b5f615288069a4a06f21702cf5bc3121eb760d5ef3bcb3d328b4158ecabf3ab9f85dd1eb7276c8ac600104a2875f73fe6d7c495d9fc2a265b744b5b20289f51b2acf06e66ab2600af155584328c5ab54060d8f7d9b59c0bc875b6b1fa6d155cb1bf9988eb3f7aea0c5461b7c7412498f99531a9be193d5180144686551751512abf74b69bc870169974ef557644df9967671469223be74236d4d7180cad2c6f7507d3aea4750f446ad3ad447a8448d7737b176cec301338cab0f80462dc944943a902c1d4660bf67ce3db63385be04a60667537b35224d860b6c26b5dab46ed520a8505cedc53413a810b4426fe425305c3d478cbe4b565e1cdd62c9ab50e215546e39c8c0e9ea5955b41641004d0ee1b9c85c2dd8c000d17beebece782052c89f5c776331efca828b271742ccf7e1361bf65ae7547b0e5778b4b67520845e13ec4edb66704fc632d88da89faacf3c60c3af59b8beb6466558aab2625e7a3b595fe29f3a7e595c63300c627a2c27395da841e95072b56c31d6533fc32735a1dbd0c4ae95987abd3808b21f3b71952e3c622d26724e09257dd91c55a0c676f9354155027cf2f4be2c689c1b66328eb0ece62c953e301bfc848d4c5410101cae83d34e2eb3c3b5b22176b89398c02a2cc91c093b245793a4bc8996e4488ba7a2c82e0dcf93a576f37fd33f22f377edc60898445579a5b033109de7d3cf3170a20915b1a694417db27351b404d7a92d503d7ec8ef2ad4dbe5e909a45a46d4e689d6611700507f7eef7c4b3f0d918affe0521715f62062f7c69b7d78581668227af1b238dc2e5f96c40071c217b185894aefd199609640bbc28437dd650c0b77d9f4725c5bc7140e48daadc36194fc5c8427d7c2ea73523a3b093a1cee6d5f434d9b61675a2ebe44560ced11577213ad41878e1b594c4777c6f6be41815fbf576b53f18200043a95737db9c2c8ae178ef39b9993e6a8167ed61c39023aa34021e30768da52fbf550e68b6ab2a4540444afadd3dcf899c23e1d7067044e79b38781a0552968536189de5c5da24201112ed0cf950163348380708f10eb2cead3cb8dfffdbf9f0869268a486b6c1ac0c1f18cc78df8cfd5bda4b2e6858328b19466421b66a3fe745d71fb6d04b91ebf7d259f7fe61abc001f6921756f261f3d56d6ccb87adc75e72a42cdfbce638ce984db9985ec3941da33eb847869c7131e1928dbf0f56cfc121b9069c4b408e70604b162109982152b1c05c06132303381780e3ab0a9c310ca0d45e33345df3c5615f02362ca5c1bcf164d420a154bfc0d9bc4f75848d58bac63412092133b809101713759e6434caab6b2f61e37a09356fb461dc0862c1762902e4e27a8ef426a7bf642179503d5595b928408aa5b2fe6ef68f1a818cf23b109b7d26218258d4df7998cfca66c75eb821fd3eb2363b44b5ccd8cebaa576beaae4f93415610bb7102a14ca4d0cd2ce381511b94fdfa204f6ebedd533c3f3f21c2fd5910b673142657d498630d0fc031bdf0a7bd123f5295b370863d0cc5e97f157047e9455185dbfd12aea50fc9cfccf091dda3f1da58565fcdd8dc8a704bcc9bf3449eeb86f581145832309fb1791c750cfa31f650293971572e62951111bcd8d857c105a1bc0fa081c09da6b542cc8b240b7d59ac356bfd1a57f20d48000affa262f2ce16f9f5c76e4445baaca3bea76a7ba985c1d62a25cd5e42086b97c9fe084190263f20360a59cc3e045844921da45dc609f42633ca2a071785c3d88b43f57750832ce157b41e105ac499546717c1e0b8060c3302f48742948bdacb07a6d8bc7fea13653bbb71d7d6ead50646badb1543a8a4eec0714592e43e8b1badbf944358082ae6ad88e3f1047a8205824f4be732d4222a13476eb7d3ef9809c6e87be41ecca5bf6ae409927948cbc1c188274ee285d46123fae88f48e2d910d02d784b07cc7b9fbd3398202ac322212f38292ebed10d4b988203590aeb44ea07a4e3651631df494a8793efe01ba088ab6a25c973299877c4626bc91fecb0b2bf2e674f48bb8a449d1ff10762d979fa21197ec05b48b833dcd04d96525060aa36528b12a21a51b40e9424942dda98a22b493ab80315eb7b37a54cf0a2f8dd4056f1a4a81cd2fd537fb98747b81d005fc899dd86fb92d608b22598cdaf71bfb4ca3c7c010013d26ad1cce8762033cfac4455319a0e0c0c987f27547c1201c51fe663c932afc3fd476034a87ee2b9d5875a2a61d2dcd2d951d74505065b65383490a561b1fbfe791a1b41735fef7028770c78afb81dfc43a8aa18cc8f7df278438f9176188ca6264795975930b8047ce5c58c5e6dcb557f0dd169fa0cc36c7324522c4614879c9249e9c29337d24d8949c5715d0f34e4d1ddfcca3fe1c521449551de5cdbe8d03d154cee68d0be557a482ee4649b99aa53fcae3f24164bd0cb0a5deb9559bec7c889e2574f6fbfb7eafa8ba9b035b4ebcb59c44cb0505aff0fb1e0913ce4d83935453b8cbe9358ad970d969ea98bed4bddd0b2fa2ce79623b0d51136212d3506a0b14a10cf358fcf3d6e2f90315b2325941d61ef7f5017537d25fb8616d30152d577ae54833f547158f8b1fc19e3035fd95240277a95ca4903538c7e4c2168e2852714ee9821ff61dc89b6d1a848f4ac096c67b9bd5465cf56de2775d0c70b0c25cd81660af04d12e973254e00b3486cd1c7e146f66126d707b1981c3e29928ad168e317ae6f78e2af5677c7890dabd64b7ff19b086af7de41378308a6211e20afe67bc036a4815bf7df335659663cbee4b9dfc3f66d85ef0ef949aaf2abd450e8f4890e4cf986c2ad9796bf9205566325957118469e4d31f9e0a52000adbf2af488a8fb059fda6c718f8691508e7078ad2edf71373bdfa7f8605f0069cf219281df708fda478378886b28d9b488425dce9e2071803e14f7944317755b787a9a09242687803fb003dbe36b0fba4a474303bcde11e28f8bdf15337429c0d9527809fe50b527e6e358d992632d6ecb06f2a7f00926a55d0ae931af843c815258ac58d997f68f6adf228029111744fce89421ffed531eddb1b6e3ffeb025429003892bdf59279c0b59098e8830c5a25401beedfdafd9ded56dba7faf259c9e61862e9934eda3fd56272850d69303383b9dd8d6fded3e2f666518f42c484b393ebe8a46e3e9c4ee95dfe213c7a3e2d043a810214354db37d8077e460307824367caa3491411ccd2273ed01a34ca744bc7c0d15deffb3fa6bbdaacef9a9b85426da6057186ea8ba58f1ee3564d91d206fabc1262d4b7b464714f9a2d654ee5b115c3f40432d0cc84777ed209b8c543ebbb5db7aa038bba9a432e07f7630bb8b4f2975cdcb28018c5d28f79a110777019b105b96ba76bf93902576cd2b75d5615c8048f526064969c18cd974b2ac2622f8f7fc071966a5b30da063d2f1cc29de4f7278d79bb6f2edc2a3b1c1e41a920478798c600651f5b804d71783d973294b917f53b284ce907f5484eef8fc7148d089a71ffb57a508abdfd05894019c56efb8db18c808267798fc56ead7527f637d470771687b4307f85d9f44033434e41c386c08f0a413d407c236ec6902e983fd0f50af143945fe0e825bb26421e5a27c82375cac51025397eca9d4cf1912c261bc6f0f773134a3db0a2634143398306901c3a9297106701668a9652175849486c23d171e8580d3ac0c1f5487501689965a992f743756d63b9fec5cdd9b527b007dca5e74db59a290969358e6544a5f09e7fa09e97f19d3cf1edfedf53e1dfbd529aed3fb8487fa4311917d34a4ffd8c2b96305807312dc77000cc50f5a7a990d29f2831d5452eddfbb8420ce3733bedf2028a2c898fb7c2de76470443489d1648dc4b68fc852f1364c431a69e1a6176d48451d244424300b7432b5475da1a18f2ab0ba1433b3d1f4ffba3da6ae594227a5d8df3c98fbf0210fbc4746f2899085855e5b83afc872e2175d3be9ab46900dd738b2c5559447ebb644565e05b53e2903df991852cb3b4b5a39c125cf217b8af227c58c01a1be6933aa668d9665bf2cb19fde6c9f287291b937feea7e480a7da4735a533dfc16d4a8fecd8d65262fa96c354c8c89a7e19acaab616ced3a4d402e451f1b876cc40568e337cb79658ef2f8ec9b49435106a1736cbdc0d9771232c73db74b628ab7a0fb4eb708ff240092a8c9e03b62f1e82e5c6d62f871d4e44f511ad4630c203ebc2c86969498558327b3b0bf6c49943a95a97256d77f036eff1d3f8f1d2bc90e84a0560a4a11dfc71a4e5ad0bcfc38c0e90b1b3db0cf45c37ba8f971fcdb8641e2d0a135b33e3f3dda10d2913b7b51af725ef0e12425447c1ec1b669ded015eb411f8ba26bf65129fa026909d95e34463d5bb89e5ad6f68d3a9fa3f010a415ed0c374fc535fed0c588da3200af57c55229b91a7c15a8bf08120242dda4ff7367aa437e396cc4f559292b4a5249ff222f91ce24aad46b11540f2711f6301547b7411d7866030e7f9f2c9b553861559ca6457b9a855fef484ac836c164f347850565c31c39323f4acf4cbc9bd9fd5c6c318e22484fdc74b236a0cc0d86fc11c7a542063177000f321d74c3230bdb501ae74afb057a3d5a0c5660e66ac596320daf5f795aa296ea4cd3343c1398a4ddb50212ea5319872244e759b53bc6c50f6e096372205fb77322936a93843c25209f1bf461e87932fa2149d1545964418195651002711a47a578247088170aa2e54509429195ffa4fd51938a9507fa12b896947dfa1d46ec8cde082fbc4edae0196b095eb8a2cc80702d389d44b5a94f5ae3054264c906b166421015dceaeed5908c97073a6272100031a3345c9ba5c921b566710d13f2b0e74619ad4c25c7fba2ccac1054330ab8d24bc35313966106d3c7b970978e771b9d4a9e29fddf16c88f82f398e54fbee12f9c44fe4992b1130e20068753819016bee3967e2a288a1d04476c666853c611ed99b416f77e4e8c6065c72b402390dfce4ab8f8f8323f9f4a7e0d5112a427ed6749c51dfe6f2018b3c660821a629391769e04ac124466af0ec9031563e8ddce2598d839caff07fa9803ebba757d805d1576f9170626707dd272370cb389a894a62ac911535a419d9a5a7994fa47641a86f24d9101938d4258708803a4414158b9b44f22cece3226e0803d620009a2530bb215e0477993e0de1205b2550a881ab8408700309c2f903067f5881838cb057ff266178db75c37c5bd0c2610353e7dc59b584c4896fb100b03b387a63a7651f929310d66d5d40ed868d978017be8c4f63f8cce1a4863ca73abe5c7987141a36dd1da04eb7faa7b23ea12ce14ac5855aaf97386b2b8f8912b18b580681c90eac37d6291e0c9d9ccc75f88f0a6e3175b49c074c4c3dbe5a328266d3f475fd382c301be9f05f8ea9731c7c7c318c256aa786c8d278db665ee641b94659730204209711b1071c7c95c176293c74dcca12a792dd25844f2e95bfdf52e7eb2053878abdb6e8f20af8f9fd96c28d31bc5849b4a8d60c1e113a822356b0f7a58ada49b80bdce17564e5a107def853f1178041490056d7feaf550ff1819d81aff9a145d859e7383c2e58643c014fef687085553196fc4ece2577348a1a916159b25d391e4be3cc3a09c976901f78176d54461223d9803141d2e7a5743cc718d25ab6424161a5247e155f92920adcc8d9e48ce7ac410120e47e9315ee49045dfd78cb752ed97f6033eff395443b03ee6428efd54e91e9c1920bf3d912290487ec39a2fe8e7783dbf340b7f8ebea1217386fc5066099a0f8ac584eb454b366f361067e8de77ac3562196d29ec8613ff492d1dee0684fb03c332744de5feaa11e559a5dcdf2fe85d647d630cddb2874ad1f62b1831175b98a65d09ecd63b1afcb3d23b36594dbab3c4da07013b7694e79090247f746c640bed60ee393870506e027fe024e3042627e99b72ad102e118d572f5c35f403df1d93eaef880a1d1d8ac93a3c0e6f9c2cd0c23f29543e8dc1813fb4e8b2a25e675eddaddd81e2b223ef2706058ac8f2a53264fd77fb0bb26e3edc250a319fbb7db0d7ba6ada33114871a5f9979f01f671e50e762e3a3faf1fc1eaaca95c2d4fa4a05bfe78cc67fd22b01f60d4ce5f93e4bf792bed78bdf9d6b82c61904dd1a0c2bd04d1176e7a3cedba5a58f0843ad7bb91c19116601f8f1ec27fc8d082cbe9389799ded788f324b529b7b2641d923c86b9481cadee2076013891f5813dc708c1eb38804abc176cf4701e837de2345d1be14a1bb55ec33a224b4f5b48f98a9a7b1b5db5bb9045bbb169119ebb34a8eaccb0c60c44ab3b0aadb1444d621bc74d7147ad9a3207fad2f523d83e6445a5ea78c22dbea4d0d80a1c6888ff35e3b37cc14cf0714556586ce9f064ee3d59fe1adfa2ca1beb0f3f1a5823da02602546274474dd1068786d0fb45fb6d83c73e402c18bdf84f34d62f0b07743cb2ecf8a045573a31a0203688faaeb9cc13c30ed34be1062180a981c50e7730dbb10e11b6a7bf6852c2ebff2f03c2d3179349ed83d8d6819519bb8320e845b2122cb944401dcc8cade5af269e572cf89b1181f0032dcc679b8e3200d057e8c734ad48de8d1cc9e3be59b1d5e18e2144668d932f2b946e1ff66b614c46db2a8928cb0b0c2fb65b1c6dc8b52525ca4c12bcf4d579779ecf1949350094ed5c7886d205da17ee1a9d211c9e196c5e1fa2b0188032284c3ab78ff58c0bf42680de997475a1428ab401343fc946b83293acbb5895e22199fd152bdf92b58a1928b5e59cd59c72bb5506a82b5a1162f79165a0049da340840fb6536c85298bb781b602ce150b816af5cd36a72a204ee18f98b0f217de424da9fdd144c22ee00cce216c8195d75d41a272633e5eb951aba113e9d6f5354e6a04ed27e6280c2d6d8530997d286e870d6372a38ec216fb894727831650e7455a55e1c1d3aecd8955dc894ebf27c2b66d57f2abddcc70c04c874ab06a6f4e7723c75a374527721782bd36401f9cb9862433658a7554612ad910aadcb192168d15d064ea6ed1b350315b0b0b3156a868e8381c0a3a3d62aa02dac0acd143a66c590a2db3e0733236402f014222554619109d832071a79d468a8454d9287ccec52534dad00be4a47e3fc37b884d43cc8e8c598f5e9367f48c5c9ea1db469e8c81c9323ee559869493b0c614c5f8488d610796f554b076859799c5bd023cccd6bced7127297e66094976e3715c99b9889e22a607646850be11c817c6ab12c3c78ac848f11a00c47c4a865f50182068285fe176705f17c06a22228c06092164aaf57ab2715fbc8849b30d64cf66314c460c795400ca60dfaf8b2917b39a8bb5de8ad9a4bf6a37a9861b84265c822f12bc7de184540971df5f4f277710d4346eba316eec401033e9ee12395a0580101876e2d061416bf403c2447d2320adb521805d851116512f9ee598ef6f7bd908d268826617d11b811a0ca86383d4c5358a6ed3d7acc2ae0b8045748c69c8b622a6c0c003a829efdce98b9d0a0123333dd36f068e0af4231364efabc09a7b9e7691519eaa3b01a4340a98a979af4cbb0d15e9ac6ced1c380cc036b07488e181c452f26da75ddbc0c4785690449165655a7808fa72b319fa47d645d87cbe41676903620c993d4e68fa5315586d81692fb81f58d48d64a8204bdd528311f3f5ea9a8980883444b49c56788e6690a11816fda5465eddbbc53c40cbb4382dd7d6a2d2a3bfbfe69a5ad9af4f0632b924ca2ef6acf9baa2f073c86f23013509b0e2790bd1c3dc66a0acde12445650f6fcfab2b1dfeffbc00906ba34a2afa23ce35cc84f11446cfcdadcd28df9867ce50392fc11ad5beac2b1ca4aad7c95c5d2a1441ea0d3cbfe11ec8b55cc860118d36294052a88c2a27bc22f2cca705210173bd97e02ca0cee1bcc1bb346a2ce4edd08972d2e35cf7a9762815992f6482e33eb90610d339dc24147f60fd2572063be2cdaf2f2886d13d836c49445b208bd95a1870a5d029c5f09e4be5c52579c502b7edef8e0a3a22b501a8a0e3c1732e70ea46e52e123325bed566ef5291890e800218456c4bd666f2e075d1491ed7be95b8662c16da2ebd05d25e189c1c230a53510b10056ad0ebb6d61ed63891a91fb13a379475816100f049cf906626d1a0921603f326d9d9e8456a10ead6c6365bcf0fa4d1f5729bfea885c75208fde2ffc90bac762d0b6e551ac619fbb3924060368954225b2c205d6ee533c1469f446f5c39d214f90e87312735c8c56f2039fd7768efeb5ee1e1ab1897b0d76e9cbd604cbe2c5fbafd1198dbbf882ad1908a7ef7e4171028b80979380e714652abc18367b6461614c9de3bec20fea1f9f3b650740f1e6442c80cebb0dc4796e37719588eaf9cac1d522299e2017cc267f1291908c6b1b63751484d0eb19b59480dad880ae29a7355f55ec570fa50e4be8970683f13cbbb8a0ddabcf3ac9e122a0c0044378b8e8d31b6591cb172713c518a1e81781e8df1667a72861fa9cdd54f01ba06481d9cd141879812d5c5e2566c19f2246f3c3c0ee4a4adc2cfda71b6466811cf79b84dd28e57d28cdb5f82141525c440c6db103c1edf1862c50b4dcbfb3032db76a36dbf171718c0c9db924de2de56a048e98b7b7f850ad4aa3f82cb4d34f71f3d5d8aacd720bc70b8161c70b2a62523dc7b941a272b8acfd623a22bd95fe443e18f975ddd3da16a8c3f2b0d839de1fb4d249062d21798b3b10af9ea92604d4d83231a0e56c34221491899240d4d1aa5b93481fb8a8f57d2ad903de02357e78eb4e1d38cbbddaa5249f1963ba462598b56cdf4336b4348d5cac6fd13033f542a02fd057ea0dbb93433d4e762f14c35c5f80106c7bb66813dc54148acddd351768e4168f745ee5306e4e5b0db94463e2142fc0146b10c9e4e0276e7ead99b04ad6213964be00b5dd483a46023a1b17695e95bbddb2f08f820824c60e2f9b3681c88f9da193e30b75a4707541220c72e6cb2284e0ee83873180c5da625d97bb6db432594cd1e68737901cc692f303f36b11ffa3491f991a91501c088001730e00d97b620b7ace18bebe2ae756a1912ddc8ccaf86ba8958ff60c56884139d6fb3a841020b02d7f41eb7c722307c50b52e871e0c8c81ec6628fa0cf06180766a18d0fcc016c340c5a7ac68d47d67c81c7bdb34878670a93d2cf1c42e147299fbc015285be716b359e6398321db3b8e9b94caa26a85186a7b249b827325a6fe5ea2b1c60fef939e595eaed461df4565ef40f70cf3e60eeeef4073c4dffdc93737923c2132830a62ad579518ee23d86732c8a88c4775c88e5f9c0889816469a047cb65ab154cf4e7cc858c8189a1db22e8f3d3eb5886d2743043d6fe14f45125af908a65bf5ddabb8da8c47f0144200816ef7e22efdd5e4892a97c0911ff54f27cd82919be9955966663160d8972e54ca52fbcc3a4cba0ab2ab30b4ed8da652f245252928baa33148bd6f58c000bfbd5964903fab6572ed3ddf4bba70c7bc822b808692faf792fcc2dfaf7996a5f1dfb7087c41eb65a01a668a025136cd182f1223633f460e9fb9f04976529064454e62f249cac0868b5c369e86d91c2225f151d5a951c0b8166c3eedf0a345b9861dd332908d1b7e56e4aab02fbcc8fb29ae97f1fd631f899069e27bf11333573b5a15f937f79b8e59cc809cb194c75e7fafb15d22c090d106081192060c06fa8f460abf73d0960ab26c9df282e8676d39ca0d4863bf98750910a9c3f0da14f054ead33f300ed3d411fb258a73690c441ecf3f842ab731084b017404b98a5cbadd77c6a07b0a7d75e049d6420a808aee8941b62adbd272527d984a673e5f57118877cf38bf621abff4ef483df0dd4531f47f78e8ff8148717678f330c5813468ce8d256a73d242c6f0ab8685da010c9f911c211583f30da06190850bb27116f5e084a642a190e2883dcd95b1988393f8aaff311d18dea87380d1dfe6dee776341d5c550d0eef850c7022916cf0c9cde753635adf097015dd64176af92816caa1eb8bfb91f919401c5f34add76f899e37817540927f084974c89e47d13f6c4dfc1603618f22c86b297ff304d6b5665a387325dc5fa7b58d64fb7d96671294e012422a43cd664bca2f7c8ef3bf8c616780f3552e33f4d079984b8fdcd76196432916f6c16fe4619509606a1463f8b18844245fa8abb1fdfb3c36521f8caed27b43c51b0911e3f6b3d132b3536e5f675c6e6d8acb54d48af5b2b9ce620d4eec21d42e7c268cd11103d137fdf3f0f1952c93b3d3f20406b050e9db19ec01542eed0e273e1ee947352a568bc5f4a82b3a9e336dfba48d5682a18d049680d02d9c6e44737789542c5167045091f426175c3706808859f9bcc3fdfa2c02868b10712f50c5362688c107c3af3f633e062ae5d15ac1307cc550fdde4071233725e9b10dc2a72c3248adbe703c7efe8eb1b3cc5b3725896be608ac0326860fc34a33ef7d5bb63756926798156ab8d89b8f6c98226e8a5292b4fe3b6399fda61bd279336171aaeb7e90c3b6cc75b3dddeb2eb39a917bbaf08d7db8d18bdbe75fcdab5172c58bcf127647636fbcbaf42c0544c2aa0c2e736a732b27b02fdc12795f182ddc570772ca7f9ba2302257030fa8bbf12cf78ee60687ee0fafcaf0770f210c3ddeed76ad46a063ef7c719c53c72c6b0c7f8eaa41726fe1865224566bd7ef5b05be6832a88a8e775da067b310423ce6a7d5324ce9d95b5f4c0e822837118aa4c4eac43e8bb86a11a8a7e26ef2f36812eaa3c387081566d5a4afb6b42398517a810efaf3db934712ff3347dd6d6a5f50798b2c6b0725ad11ce3a7607581c260d970685c51e7d85d4512aa43c8096e81aed6936d11d092ab9b46235bfd6e57dd1616d4c37ae72ef116470cc0e9b9e177a42d5cf5c283954c167b1a403b40e21086dad0726e8e0f949e9949421b658dc0d325469b0b0430f4ea121eefff5a0b4fa230f3640a7258a00c18de5bf73f162ae3e9327fa6189cde946192cfb2e1f438e4b3e620c429ba5a15db2e05542024c786b6982d09e5114823d8e5555230988fd8ba7a49be396f3d6d4f7c5d2d1024a094009002f415cf46beb59637f1aa52c0ba89c899b21c94acac6bbe6d78fbad4ab4e5bfc3bdb7b15399cfc43a3e8631b05f7b1f55c4a1d79eeef611b44c4ec3a2bf541132eec798356c76e08ddb6be275e9f641f6c1089aebebf1f10cab8055536dac6302f380dad8206e56108e3f16912450c3d56e5228ca4cdeb9f3f63c77067ce48f8d12ca145db0b71a3dc37f58e454aee651e4cce1c14f57e98e44c4019f6833ac2a205a11f20e3a45a6d6a32f34fa7a2fb8cae7a577606b3eaab203388f76e3c186a6986bd55ddb8ccd9a6cf807b2d69ef91a00deb36b21ed6b00e05d8d89f6c1da2a280feddec1f216909d5c4d109a094515fa19ce6479036c381d13d198c20647566289d2f6c14505520cdd52fbc6276fbcbe44795f9fa63ab219b8dd2e6e16ea209753d30616920d0e85e032fd39eae30b15d6349216d3891774ac49d85d5aa61ffe4131fefede587d343c93ec9ffff1efe91a8067cc984560cb41d77edd153e301bc0d4bf70cdf4720edaad72772a09cec5df871d6ae924d8732820cfcf7c0a49253af05cf0f95e6bf4b675c55d96da68a5ecb232669d79a5eb51d36504de2b240233945169bc617314920eb8c348f14acdd30cceff5ec3479560e27184ac02bafce5675c30d22a4e072a8cacb657c224c6250ca2609b2d39d2dc56f100e4260a23699ac4da0d2d5f3a0d34bc6d3bbdf0df261e733df0f36f0f95180cc43ee26a53dc0ae79a9d851af58e1fb401e5a16343251adb480b35b2f7de72ef2d93942992068b060d062520d48c19f49480b41561cca04636454019bebcbcbcbcec9040e6f46d72ef231da6f7918efbd5d29aad36aa261cdda8317d89a3a4c928e47efbd65a1b817ab2f6010e623bbab09382d90d680051854f175748706cc1df68c792866c67be719d2cde37e18b511c0873e97a6b9046db2bf09bd64c1a466375b0866c7faec0af23166afebec10f973ad9aa70c5b743b90ca7c905f1291f01f37bb474d528f40c0dd19d5fdec81fe374cea9bab4f4d9dded339d65557573c9c2a5b2f84f3bcc653d4274d5559a48f61e7a55a56b9c48af4865dcd289e4e9b02d8820882022238144a6358820327dcfde43f51e7ac8d363ceea489c37b6cb7499c35d06c122ce39ae87eb91d58dab7141b49f591a3d64c8663fb420aec6097132df388edb36e7b0bfec67aae1bd31d890cb6037061b7296bd3095536efe66bbadab5b8dd5aedbaaca41520f2cece91cd37fcee7c6a0acae7ef722d2b58414712e2235b0a44139216781ae504848c448688492977518a98ccb7de9f580457445b3bc527973c9e00cb7215af392e99388602f799b1e73d6f7a1c75c667ed674aab426c55d95b33ed548c7f6326fcf5b7b5fd630afe7cb52672e1feebf15cbeb7119ea48c0ffc6127c0046eb089923ba5e4f4ca679c3a506721db36783c2cc1aabb300e800fccc6839996ea9a4f9ccb893d668cd28f7572a43677c6718b1dd33d5fbfab3a873fca05954466fa03bf44069d9a3d12a8dcadc55ddb66d9b5005aa41951681cf1baeb34e26e496753671f5ced3ceb800e79cb306b0041b57aac28e0a48d4b20072032161444903c5316016381cc303365c69b8a1db1ca95067d7df7149bf8bee7695c5cebd73ee6d76ebb66de3387777a7ab8de33877f7cdab0fe0b6a97e50395a43cb9d2cd2dce1520399c336ef70934a01b6124494903d69201f2c99621a680e812ad3a0caf4a7cd32744358a395e7efcc39c3d037c42783efc877e53bf22dc993003dc8e05bf25df9ae7c617c573ed91786ea883bea762488660fac28c15255aaf9b472f60be7a949e9d5127bd99655514add5fb6ca4c404db82415885338c72fabe8aaebbacedafa7ddf07823e466a2a9c35701192a4f593045125e3c5b66ca885aa1ab1e1b38e89ecc274525428c46aa44715f349a9496436048208495855e8e2e2e2f2f292840c3b1263825ebc1784e349a2c649cae8e5065212048746844a88d82435253c257c8f6acf28a9622899a2e48992599ef986159f55238f128209494c01730325196ac225a9440008e708ce21a4f8a820ab463254dcdd33b4f6cc971bc807b6f2692929ca14a6b4c56da0245e363750122deb2a1c8ee33862eca28509e18d1b376e986042ea67159e30d271c209231d3d43ff84d50a2689265e5b5c8026366edbb89bd709aac84ec00317561cb11384173e53862069c1132f72a346e46dfbe148deb69bade7063a22482eeff350a1d244d6c89cd3bdd66dce2df4eeee58772d6803c9c9f52c7697dddd36c2aa0acbeeee12c9e5964a77f71b96dddda6e9349293db79feb49cb8eed4715c8f45b5985236701f0c38d4765d52a54b1a954a24d33d9ddcbd72eed5870061c2b2bbfbc545a5f2dcab8deeb636cc40c51a6602669899062a4248727269707c43bb11bace9ee1544f82ead6afdb873ec4adb5afd43a769780e98d12463afadb842b37463afabb4d88210540081e1e1a8f151a8f9517ed05858787674e1e1e1e9e2aca2001210847ccccb6f56c3121262b6c6db1504896bad5adbe9c74203b98734e0cf0f0e0f57ad186cce99ad35513e36585f6a259995b8c6665ce2156683c56683c565eb417141e1e9e3979787878825e45e62cf1d086d086bc5ef01a32648827d9286947b1494a7e3b34394bf01df139e79c7352ef986ce96a9b930a0923e4aed4c57c474424dcf822b7a471d602aca53562ee27a1d4a22beaa22dead5d636aee67d60382295aee9d4824a750e5115dadbcf219943454444369cb5d99842b3060323c6a8c417115c441821b51929f180caadc52d6dcd7f684fb4ccf0a44db933973aa4c227ee678fcb4c99acbf70f9498d90cc198c588229468410b6cd2d264509e197c52dc396f5c2d6dac2a059145625531885511809e177e4fe4804b53d85c1a691588c541b71086b184c953b2c5f0020fc8e9c107aac860fa4266a8464b6c013c255b8c5c0960a5a3d45e7f8723f28533d1f19786188030018c180250002086b0e5de108209c630a36360cb8c981d682cc68470e413862667cdb625bac67a4d0ac56353b8eddf9208ef03b7267c22d862a9269cd48e8faa159b4d54a41a64f5b2420906a61ab35005b1bc04887a5626b310488a10975085b61099a656b61904cb7587f433917ec72a55a1edc4e278b4fa714d872437db607c151a40f52fc9486cbf551a875b9fe0b1ca02c179a1459509e529b79918788c892cb1ea3e3a814228272fd4984c7e9bfcf39fde7611dd49fb0b8bdf74d529c631fc43aa6b7dfe40d4d8d3f7c7ea0b048fff4e083df32fe306191c7e9c11729ce39899be9bf17734cffbd09f77f58dc30cec52e17f89eeb7b6b479b7187cbd40f471f245ab5342e53676cc26872bd51533b958eb000dd9d05d75bd8c100bf117296cf3663e8cabb9fbf83d6bce02cf19da6e75f3c66fc5e1cc387195bdec688fad328d6277d93aa51ac5ffa265f46b1fefd265d46b1bee99bec5193e2d824ccd8a48db1491548e3ac29a3f10effc4aaa77196d862e311fe31faf0411c86df37f98d9d945b76f539c2797909f48c9f60bed304a68c4ba067bcc33e3ad79d3f9de5e342932fdfab9cfa70f42f52179a3cb9d0e40b76b95afe7b17eac34e883b7ffe1429c601718747d84705aa669d09a0aff0c8f55caa7278e46eb91b81369c2311e7fb5afe7b8a511fcae08099373bc201bf1b7db88c113d74654333ca343de31f1eb9348bdf23fcd4f70867f4d4476a9c2d9c1d2e994dc401df8526412cd21ea52c342aa448b1c863f4e0e78c1ec43a3ef47528ce71b92ed3bdcb8fbefb91faf0bff1870ff73fc0ffbc971f7dcecb8fb08e8f7d1df05f70bb8cc539a377c13aa91fe12af200fffb1c108b95c33929dc58acff7d93a851ac1f7e932da35831ce09bb5ca67795de357af05df75da47785fffde89bf4f185f103b3356163176537c5b2a9e4c386aefc2ba6a12bf7ef70b8405a763a5a2ac346539144153680e27e6bc8e082684ca2ebe58096e07642615c9315d4c93d25d1e1da22e80e4b4216d4b8bc1003f6b3248d269ae8812b920393232bb0c119412c51060e4cf8c0a449115b0fcf00982ce935ac900981270a2a78d88274264a4c26457042e490050e358b1c82c494015a79c58ce15979c5c0c0b3f28a29da84c09303931818c3e487ec8f5279c7440726d400a3ede5baf36e6ef63d21d3e960154e3142f9cd893b9f046f32426d972a941a6d012ef17956a61771e76f5e91e715dde9e4d2520168c21bc299479293cb914172724df5bb5c71e9814c67ae9c11cdc9e8aa9fb40338e79c94765de7dd9ee9f0b66dd6a93b75ead4a991eb4fdde238ccba6c097086157a86be516badae5b5e17e6b671d8ba4ccf544a496aafc7e6bb9159cad857bd6fb85da6fb656080e2fc1b254dd8dd1968dd7295572b1c600628cb4381d219338d10b5c082608f2660bfc33a634ef71ed6f1be7bd01be9a85b3f4da492044d76e3d7833b9f8e1dc9d5086c7566b9a5ea37c8a54c9e363c2fcf91559abcceb1fd9c215dcd90aeeae42228db7028cf497bb471b5dad19cdc4684aee668da9a80db973850e8111325076e643be70e8ae04005c6c3f5b9201a645c2f075489db0941b9262b6694fb45e1830be5967199b85b0d0654825aa0f71bee7e0bbfe7b068b18e7dee77c81d7287ec3b03fac10ba02144548a78ad180421830a2ce4e196b606ad5aa3228b8c8a2c45b646051a3eace18d2fc4b5dd4833e496ab8d88088a1a78b216d0a023e282871ad09a2b3c3c99a145e1a1499420b4a11d5c429d156f46458d0a15b52c342a5c60c50a938976821026650724517c45250c4979113d19c9a4f020832427d5105114285c4014a549ad08eb0325f261c806e00cc807358018955a519c0c792b8a9335c25694d913cf66bca9ddd2a6d25a2b50cbf35fa0352e2aa05910a5cd6c90cbd9aa01cd8090cb29c4290e0f669e5fa9b8048d49a7b5c802041424101b0331c81b2e080d14244102e9825004b93d8775fa0b1ec8d0208158131c416eb829024a1c9986dcbb4c8fedbbdf38b187fdee2de6b6ef3077290262a6aa67aceb741545c21822815420c8ed77c8bfb1a208a0ff9e27bee58e0701fc7e70e783e097c4a5df80d601639041049e9178afb343daf74612d82f3b3cc107ff865a6b9f6787b498e77b106319fa67879339fc59bc837d1ecfb3f6bde6b16d9fc7c3d765fa79b0ca65727b0a5ecfe8b631b6d2f13f0081999bc39c915b36adfe4d77a5a1abfe76221faa0d64a7a4d0fd15ddb269f977c0dc6c9cc5a56aa3a1ab49473ab8b94da781078849314482a5794508172d122c5128aea89160a9a54431450c48c8ec881a099668153e3f2458a257347991608906bd6224589ab31e381123fbca12575f59e29a4bc4d4782d01348436e403318078617931e7dd8a0e88b4c8898174100e74d043fa882abcf4f71879aee0044a10916089ae710616122c512a84889160c90be203162969bc64f3d5021e594b1643f821c14f6bb5e83bcd595d6b09d1ffd210820fa6b4484ad46a91f4dbbf90ebb63a2bb2317ac2d4842f7e122e3f8fa8bfbc5914a3b220fa5e4b80164cd0488b4b4a448b9c75aa1519a345d2a7ad494ed2895e32fa12fa71590f0d72569394f6646f512c7428d37216350af529146e697914164b1eb4d402c1524f1bfa60098472a9dd70ac7aceb96abab2f1980aa9dc1ff331a0eb8e74d8c00571ae0bbaac146ded9d3b7966161499cde589ab00bb7db89efb41f7918ecdeab0ff853e5cfa3473303f3532b2f83d5ac13463ece83640aa8f07b76c2155053cacd16c13e0ccb5baedbe14a52abae5adf5dfda5a7f05647859dcfff65a2fad2972df572003ba059946b2ff34426b6e76384bf5fe2a98ea2584a2a54ab3d57def32de478da9d2095439eb557f6343a3badf75dfdfafa37d1d8d463b3d97693432f7cda9b3ef4293a553f7ae3badbdefb580b4eba8d396bfe3e9451edd7fefc3fbfbf4868656d2e0b8ec9bde1b7f98defb6eb4dfb57ccef72df6bfdf70cefd13d631fdedace92b7d1fb3c3070c35b46e5e4553c92a0d873ada7520edecef3cc7bdc53a249dfb5d47b98e36f7f67b9cbe7b8b7ff8e49cbefbd13dc751cb511375c16b774da51389cea736605e542e2d2898917b1b63c9becb087e6afc1e358ebe650c5b26e5e143715c2eefb977d92f8915e3745d77e2befb1cee3befb9a738a7f4dd7758c77e8924a53013405f39dd7358c7677b9d9bc37d09eb9070e3b8461f82ff796f5ddd739cfdc2ce03479cd31110d4a3d2029d9d105a535ad50e97b94334f9938da8578de1bf8ca9378d2e7f6af9c06b3a81bec3594d3aee5eb86b75ad39430d8fd02e7db0d26eb97a97f1ed02434318a0636973819ef11786dcda7b55aaffd5ca67e0defe1cc9b0bdc52e7058a49ff795d6c8907ad4bb5c3efc0d8b14e37cdefbdfc022fd97df21fdadf7a8073f07f5e073a8b7b0bb01f7ecfef386ecfd83ec2d3ca0591768191f65227fc12be2a23efcee99eebf6f79ebf2a7d7f13e75c23aa777f91efdcbf7a87ba6d215d5f1e1704ef82f58c725c43f5afef43a298cc2df7bdf7b9ff3795fcb098b15e398b02be63257e6bd706d0f59986987a3242138e7ee22bcbb8fe0a2c7b80d87f117d508a37d1146ef63469717c50a338af5a55fdcdd9d73779fb01903c1efe17def79ff03acee8dd7ddabfb0be76e006a6d3a08e57d2da602f48cff1cad30ca1c9e231944fa6fdfe55ddea772aced5ec7c5e21c2f852bb743fad46f19c57a1ac56a1ac57ab7b1b3bbbbbbbbbbfbcbce46c159d7e2d4c8fe9c1ab406c787b360a62c8625556bd5a638da8719bbb7317eaf1abd7f19c34f8de0b78ca4771947dfa3d4d864cbd8a40b0e57c411d552a0d5c6fb9dee73ec77dfdf9574503bf65a6b63f3ddd8f7be47f71ffe61faee3ddc75ffe3bec5623739feb8aacdae75cd8547d7bae6020f1c7b4f9da96402c1dc28bd97c358a4f8deeffedd21ede8f2dd987ad478615702fe383e3a47e72cd3fbf70eb2bb7d97cfb1ef7273ba4f611dd3774d8293f4449c6b7279df9dc6265da66ba91b7d8c308c35cc97fd4212acc36991b8800971fb6dcf34eda2b825571392e78f84d01aeaa01075f5dbdc3655cfcc39840fb9b1a882d33c9fa33927cb1d764a7035ae36a2a95cabf9e3ac7f9ba2f147f8720691f0313e8760be6cda387eff23f8248c367e84b1e545185d3e6654bd38a61e667cf9716cf2c7264910616c12b471d62c6ad1e6cc65bcb614f05dd2975e8b9e57744df7a5f79f4e9a757f7641a223ee411b9b9b30fc1e20f86108ce3983f91bbac49ccdd96462899ef139739827852da0be7f870f6795c0efa72098b9c26097eb7b1bef02bf45e5ac55187a6168037f2d7807b6711957bd8c30b88cbf8baf6c1d715a1e448d93ecc6dbdd325406d5323466861a9bc4f99ccc9fced150420741acb3438ea571ca4021b79c4dca5623fbfc79a203de380b7c7f9b1d3e6070d67def5ae94d5f36d1699ca48db39aa405d58486885aaa1d53983f3348080b6d8868ce6e6ce8aac341b5d3d1d310b25cb92aa4d6afb02eca7565033ecc987a1b63cbbf8ce2f6e17647717bd2f625eb024e98b36a80d1b84c5de1af3f61a7193399be07f827fcc33ef826fb20f83f4e75ab52ee86cbeb52809ea9069832b5003d53697aa6bab48db34cf6b71bb4a66014a00b8ce2025d6014100a08057c024201a3009f389d6105cf761260fe0a26145de59d39279299bb827d03f474baedeb57ac437bb8f222b7df2173ea67bf6231a7725f7f870cc79ee2cecfa1c137aacaf89519778e68373b82bc1d4a7d48942e86ba10caf351a037b4a6a3cc9a894b8302654d9ba7e9a957643cb97349b37216fdc6e5a5c97324e5ca6cd1b8ebb9258d57c5ad551454702bab98f3f5ef90e0189a44151ac80534b1878321fef19534d0cc3dd8608794fb6d8e2c66e194b7e746910553dede94b78fc1fbcdd2ec619185eded6f1f03f70de4029a2973630369a146fe8029cfa751408f05b7bf054a29dd4129a59401f486ae866cf1d5b7771cc3e665cd6efdfb8c2bc0924f4ab7c0d2351cf7b26bb45683b378f884955d84d333be054d76523b80b68cdcfeb0c9f5077dae7f3fcb925e695d809f13325d0e56528cdd0409ed4c46e868e0e245aaed0ecc62d1a1bcd9e7859f096c0d6d770f8c59565295b0b3e192aa70795a09496084a59054c5ab84341cc1ad127657eee40e6df866007acb5f9da3c371794fc5ad6eb887a5dffd0f0ffbd8daa3eb1f148b391d48399153c580d97f470e6595d03222bb4f29b77a515ea90fc1fdedef90db5b67898e451ef4ede7d0b758c7c75fc73ebd399e0e7d0f5bbb434eef4b140e2a53c36a4939dcb2ba72f5ea1cf057ae31baaa44463318f20e1fb54557f577b480e3c38b50b9eca08a83cad4e73618165c17f218ad19e55aeb1c5daed827c77b8a75ec7bd8a74442bfc734a3092c5ae40f2018c8d561ca10e40f2016b7dc8a0e88d4f722bf55ec3aae5630d73ae690916badb4d6da711b0e5a43a1c8b5aa209728e44a65dd16444dcbfd131b121a65c962cd00c977dba3eaded57f6fd407ced02ce2b6ba6d13c9b66ddb6b0a1179feb5538e44a9d7eba610414d0992cb0ba44ac2bb4105e0c68511e368610c7143e32cd2c83737501663e400ec1be5d52102b009e0db835e67a84f83cd5ecf8c3a58a8ad96d72c6c5c58471d9de92802dad1d1037c93c173c5b667744c91852dd7df72c5fd9956d88296b75cda5c9d0baebbfb6f68cc755f1cc7c5382373893cdf5f3d348b62712702e4464a522cce726befb675f7e6eededd3dc339b1e0d2eb6eea354cd66d2100eb4fb20882969185902af7cb0d94050e4058f820088d7283c32b2bb069825bca0d8405961c60219457b5bfd1a383ea5eeb8411426e6220e4c46cc88d173327a6f8010c2127b83882527da1e48b265f3ca1329dab0ac88933baaeeb848c0819719fd861c805e305068cca742eedc54286450b8c75a1849229178c22891b06fda004952f94b8329750a207575c526e2025d6a0462e971b6889902b8a96cc6c7005122788e40672c2954b4f28cfc7911ba809216f284f22a250b59205d9d86eb9acebc169d6d6f5498fb77fd8375c7fe88a56eb66b8eba1ab698121647f1cb23ffdce65d7d3f5acc0c590ecd2effa6dcbeea75b724b4a24fa23d132f397e89cc81c8a6cfe743d3d33b7d6d6da5a97e2aea7736cad9e995fb7d6e69aa53c7f9bd19a279435916c42684d033521cab38b09c97293e5b9422193d569cf9459ed87d6944de58b205a533618797ed955f22cdbca50112cb4a69c53a80e79fea44f5ab4662aa135f48926b97b1293cbae670a151472d9f58c41469786935c766ae4f9934bebe28aba165de5d28b881cf6a4a4344ae3645ccf841981dfde2e33a714e91cf575c52d88dc6a2e333f357399f95d8f57438da89a109117cdf9b63549f5738ac2a52dcaf3cbad95a77db5e0132eaf0997aa122eabec8796e72c28a8ab15cdf75af3c3a595e5697bf2fcae677e37237a05d921674d59edc77b61b135a1226735e9753d169796284fa13ced2c4f1ba3b8b4b03c5b2835ce18d0fc0accef802e053a07a5ee58548d915513e81cee1e841699525aab952916ffc64ba073d4ef40d32077803211c20193a8d5ca1b165738c6c8ab1c5a23d2a0404371688d6893828d38292eaf676f08456f0459bdea7e269835b0c8f5cf4f3a62b4c2ec2ab44cad9159446b26162d5dd1d0d4399cfe4cd1f344cc2835c55a8652bb2405fd53e427322d22539a2499f62c6a6e16d19a8d28d3dc84b22614187531198a11a14534ca6d356665e2cd286b84d6d02732752297d6884c9fbe329d4555dcf0935bca10b0e4721655d112cab3a873d858cf5007cc990a9ad54832fd6ebba4e56fa8a973acd0790655cf883c28d98267e6cf77564b9d2d9ffa14d6f91db2f4a09212657a7b6616d99835c1e096b3c85954084f60ad13a90a2eb080b5481a9801a8e48c174641ca14a21101002000001315003028140c870322b158240a6465980f14000d7996466c4e9d0b634110c3300aa220630c0080186200410419646888a8000060e4ee865e36e84328bdafb310cf0f0e7fef345a517db0e9ad63e42492a55eff50f919d68b5d8ac05658639be269ec0f7c49e0dc693710de2a1a6cc90d7c4e5c3ece09af63fb0029ef51433ac5240f164df1fe6591d8174adcb2b6663919e657e8147604fab5dfa803287a1328a58111d4c659ca1321acaa683e5b5088ed0886277469809c66b95a03bcba91ba26ba2de700b47dbff1665fb937dddc501ebf4ae58f5f26de11ffe89052f95d90af3277b26f87a2763f85b301954604e3cee2765f4670554fcfa2a3c71fbd84f6410fe0ae503273b49c1392a472d4b6c0fa7accab93821e3df8db5763528c2d7b61a19cfa8c08d6e5b1e860a07267a1d4a26ccc11d7504a7c2e16b3f191e1c571f3e807a4742f08a4e8007cd8a51bf309222498636fd12d4a5f05ca64819cb1e3d56920f232ca3fa043998065004bdfa42c9834fb229f72beb6eeb9d217cb79a40bc6d76024390bb27ed40d1b9359bb77da9f8ad399226ce3417066b3b0de404282e511676f67baebb026f967a532ebcbc7aab1a8b0b7ea79cbaafc9d1456125f5731a2a117bfd3cbc092037a2920a2890ab5d81b2d52a3a5f84250b57864e5b38f41653463287bc7905f3b2ab5737a684c0304e9325d6c660df39e42f025d6ba157f33988cee137c3552831e89b83def1b40b34f686784b3e680f09948cd865726a7c005d10f33bde1e9cf2c8d084d7ef68d23204ddb71c60ae250c0e0ffb521881abda380c312dfe5cbb816c23d3aa06056e9489e3447cc69f312249ce194c7a14676a6171b9da03db98d4c779710a64676cf18214fe1f841121c7bf8e4f8b12975f94c044ba7dabdc7564e486bb8d1292dcda72debd8ebb2bcb30e7db06305060eea66dbe47fc343ea917968fda6ba1c5d3f625fc09791a89f9eace42aaf1def802ba58dd5fc8acbb2e747c30a6d955dfa7831cc0c67cef05a93279e9f49647207b742b90edb4062351c9cfbdfdc64f8f1381df4641a299d68225b9c0011d991ddcd6422c1eea7d86bc530ba601cf8d662dc467dbead4c18fc3077351458a73ff4902359189066fb75a62bd20ca97530805ea43c2b548d38ff469326acab145d2b6870c181a310de203b2e1b9b61a37588d3179e11d3da17ef67bd2efc7da30aec797ebc8a0744bf8fa287e65894849399b97880109ee6247b06ee24037206d3aa489b4e91c697a0aa922bd16aa136e5008480a7c401696218d67dd7d7bc1f05a185cb9857b28a466860ee77f61b1e482b29db2e3e9f5f79d9cccb3596a54e1228ca30537f32a086b92507573f6a0f4ae83bf377d6ad1270db4167a73b18cab9da224838b01d967a87bad458d93b85a814409acb539120b877870330296d61ce7d29a555012acc99844665237c36c549f46e8586790a116da22ab405b855ea944fb68a1b4e4c2bd84439257b8283f3d4209f87607fdc579ee2ca8078ed3a532432cc246b33e68607a37983af90814ff9576091d041af90054556e2b77a428e4ab493c2c6f96b2f675274f8fa4bc42f41acf8b126a87a7615320ef9653497f041f7098e450705ed242141ce0afa68ac811d8ef6aa5d0b4f6cb595239b89321544b7dfb1db1ac7f5b45469b71ade004a5c6922cf1e7f59f3a3cd479866487ee33cd356723463849b9a709b1be2e0f5ad91659fb9df8e57d064922ce686ec13d4dda3c7905664616aceb11e93790a72799c40e9bf68dab854a9fc60fa1e30621f8c3d07ca3db0f166e0371bcb5096b33ef763288d17dc6fa5fbeaf3bce27452d5474f37ef7a370f76409f529a640c963c04c697a42803cf005f2c9546d5e4b8eee35a03ea3ffe4b946a1c4a9a80651970c88f93f0dd08f4210c04d1fd7c0ea9fd96e5dcd570f7ac72c97480c962842f8525f76c0a6cbf3bd2fc1421be38189420c2435bc0505f3b646bbef86203186b481107ee61612817cb91498f777e2b4ec18cc9926207bb06d93ec5a2e8f2250f4c0a231d7303ff1f67031f0ee4631fe653764f40d36da724a7f25d6a718638b82856637705e854cc98f6124f707ca7040d91b3010527e089397e9afeb6410f5dbd32b4ddb041af135a82aa29b260052986cb77f99003e3f3bd77b3b91c7ac3d3cba4f231defeb8a4a02db3347026a1090a875cc3c5688ec6551c8e308be31f858e3eea8bc1f37006f5ed4881bcee2e9aed029e6c6c79df1c78b3de39c853030e01e0535576b458c91b2e8ae6806c3ff9ffd2ca05f0d52e9d2b52f8e3c46be2b4203785b93d5d96a6c9dc052e623c2a443e509da634e81640664d88602b19df5654f42247fd2521ccda2fb40b58b6895186ad1a228854cbf6d3c739f7fc8dc91117c33d2032071dda6393b84e192f41d638e2ca1db4c222ce47c16751dc30f4c5ed07064f18300b7a9ec365478a34dac80c309eff1d122c92e5314eb029f373a7b8461441f1eeb4e069e4096cde3df7fea47cf65ea0a6e4d8649d8f3e80f4f7ed945a2487947a00286e141831beb631fbd658bd7ec2503c3a328229e9d0b3584c22207c05e1b39a6c3f0d5415cacac5f48fa991394e51146104a60d590faf9521d9dccd98e0df08b54d937804c68d8285e8b35c43a5c876d4d35a312bf08256a3671eaa9b23cb53476ec4e71523a91e1fdc0792e6055227c9f36ecb310cd85fec108bb6b6acbac9effa90f3c2a5d52881b183d468aaf5b1399c2e54fbc06fec02b407563fdf3250acc97155ab521ce6f463a023aa0592cf849b152a70e9ef2827a0165e3a56f0b1b2ffa8cbf9bd1e8e85d322b28662d4f81856d7d0046e1a089b9da2a318374ab48653397bb0ea160a3a6a1e3f0b0febf20bed3a6421354395fe49b0e07c12ff5dde4ce40d27c22651efffb83220c2a0ccf5cf4204b126eeb83381d8a07edfe836a33ddc8d41feb40f9779f6ce9441612884aa5fb3f50d3913e8d35f29b03655089ec04d6e5e669899343e90a5ec46cc55c0c5b0ebfdd9401f0e9367fe271ea00835d24d719fd7d339b06f1a5f602dbd8b318a4ec01c39f67cbf6687bdf014ec4bfac36b42050fec5b845d0d44d30d1d4789334d520c266491db325e92dacba8aa1e933b6e2e75780958e6f037c2ae2aa0f62b4b6855124ea00311b4da79b6121de5a25fad59dce8750dd599f24e5992063f8913578006b4075a1928206106983b3bad80f0d929e88b05d80626fb0ff76267553196e2ff217dfb4bdfca835611eb881bd510d00aa21cb634d1a8dade7722c26afbbe9193f1bb15cecd0f966fe6c9e840068780117c5e79c3f483dc080ede3b806da077afdc94fda7980ebb58e185d931bca97ce2c50368ffd2281088c379f8eb41c396078f6200aeca0fc327dca7d7503ef2344547aa89677da73b4ee450e10021c9fe0d2c1abdc681dc44c766c3be41da5876873529c8b93de95b28d589553abdb7406519f8a5a0e6b4e4adb00c954fc291cf866480ed6303ebd0209ed41632dae5aaf38207123c5aee9c4c7953c7082ef6c774dc7d4a46df2752221ae11e128a04c7de5d83065fba7a46235c8284d56dd3d0f2663f34598dad16fde58980a6855475da5aef76436f9955c633b7a191e3ded180f2613106534694703174b794033dcec332cdf00294897e74aed036f1e4d219ac26c8de44cbd8a42cc1f10617b8953f21ac5066b6b390d64f0099247ff20856dc5d0e36cd77dfcca8394b83b0b9a2c73085bd51253dc0a0616c2f4af07345f11a467e08c5975b80fcf69a3f1378db46e07439ed0c1b08506c687d8b40d69caa91ecbcb40296dd893e3720e95b069fd28839bf59488fa04e2ca9c0b8d1cde815845cc8530dd2a2bf17459433be3746d8d4dd02e3db0be33cabb571402de84a9c28d6a5f958dfafaea511133710d4f246c0bae906f02a2cc7680658689909e62e1c8718dd9e8b26288a0263142749307029700bc12ef54fe225f11d61eadcf11728c3706ae71e82c3b510a6fd9198903335807ed6ac5fef84d856820a11e756b4b5f6d7992999fc28ee87675866eac4355d29981f48052f676245cffddb8e4de8dfc0349ac6aa098f3766008b877cb920b0a7e0d05d3dbdb6777eca85c4263353689adb3ad1a9465867c777793fe889c5c4271604dc13375f1d1cf872aca7aacb53fa2c3edbe7b20fd9608d893df48d151d3298cadb43674271166cf6f53145b146167a7506fb47ed2cd3ad2d4ee76c4128b1c33ef501035dc041a8211ecfecd6e6d94774c938f63dd2b708a1c772879f666e168aaca7054944f9f62f96ca8a53aa0810bd87d4ef10150f19ecea062bd781bbc0ddafd61c280be9de38ee025ec23ca390f165762b0c56a3f951ef373d95904ebf232b158c497be708c63f23f04dc81855f693a9b273d359c640f8010cf2fc693c390cd325e1b7de6c0b2989cf4e846ffd2048679fb9681d3a8d98c28367388740efdc1e3e689eaf63b424d2a1d204b1191d0ee249bb7973466a1735c7a475cd864b05bb2f167f0468cd69e4ffe3785b9ee3e3ac7eda74c3d6db200d8d0001d888c44600abcf056e305de4ddb44f9dbbbc49761b57671d49c6dda9a508fc7bfd98233dd6e075bd13bf4be0f0ab3f698c1001a4ca3986940e12979ad01bb28b18bfcfaab23e465f5b067d4e27a2ef7c6b30e0dabe1f31018b40e355e2038a52f3dedf2779f2ae8fdb7ec0d10a675afdb649e96515118011d4ac294137038c74d9f54aab6f7d290455f27a368ad01f37d223cb26a584d2697a0f575272c3a97f0c024f24a0e754858aa8ea183aee247cc7f6e9c40a393f9060b29d6b61922966e8b78772066119c408abe12af854eb21e123a5798ca180008441517731969b71da6829c24c88aa0d46d02356e7b53fae29bf950bf149f65e939a3b4c1d39df8c74486105615b0bc32ce3ffe0445cc65ba6824373022c226f05238329766b3c29cc78d83b3f29f037e62bbeb59a032c3da0fe45de152953415518c428ecbd32fec021ef8aa8f155aba4c616476c9e38cf4232dba25bae68d55f31068ea9402001a770860cca292b36001955db4f396b87a8756dc875dec790ca2e4bcbaf9d7c6c342947fe9b049a2ab7928079001c9b164dce9751e98a59116465012ae3518ac4463e3ca32e195c034bce635975d1240cc2ad4a16a46e530da693aed0e7da340fabc5f49241e8197cc19fec3b21910c4425db62694ada2c51188184c97354521e486350496eaeb6b827c8180703de0bf9fadce3e0dcdef757250c37d736e1906500f236630fdf74110e66c2916542201bcec02c8e77c46007e018af4e708d242dd6c5f5b09c755497cf065e52b6e693d84f57f5b73c8859787f62838b071e6d87d426c4ff57e0c2198ac224422c21be0b5503db41ebdf0b0f35f3dd692c99a4b154522059c3da18a84eb46071eba989d5285f11ba3d901c1131d7e5f8956d52c66637809df23c8b74fc99d719c34bc92cfbc29a714dbdabad3ad0fde3c8048aecf9decb24d6e95f751d891cf59792cc7f7e5e9dd11081cd2dba59c53b8cdf28de9715f1bb7462dcc485bff2ea3f744905fbfc2ac3a5d0b7ae722c80e9df5ac984ff1a779761b0f2fc0e018316c92e5305d80092f75acf8d3e1c3f22053bf4fd4cb1f22b436ae3e2706097f69d5d4b0122cb0ca66fbdd1c7a9e91590d8bc422f60e9d2461597738314977b3a033ab43030544b1c58ece700ec0841310cd088144aed3a52a7f8bcacd6f011912c76bb4ec41d6370fd5d0a8c30a1971c2101e0e77c44fe476e9418943e2b887bc6cde7cdd525c8ae8c4e1a182474104a61ceed36a41c6ffe0e2143ee44b8c2a056d2c26bf944c3b0e84799a7f6bdf0672df0ac98847d845eebeaf32bbe867eb08f79a96163a042e493e6a769616448eec429ff194045412727727a56de603c4e5756a6e6307b5ee1a016940dcf432e2e13cdf99685032498d015dbf590333f40afcffbb577b7439e75f7dfde7a262c84af902511e9292c93ecd0920a5a3718e8f89f22e96000c6cd6957daccb75736b0dc62aea99ae7bcc33521d205aefcf909396a3deb26ad3ecf0f575239b4eaa645905c1cd5d531394b1a6d8b15164fd8c0413eec437dda190439be3f8871381fa1c5b4dd29fe4356c5951fb2e32b5f13b5e967a12b12c454f28a3ce74b7f68bf5b00ef0e77d3af2d99f22f30348b19f1aec960cc817cd9652d29bb65f5fa4813384a26232f2cebad001e4c4c6ecc60f29ae9a00014f174d7231618257372c06fc776e294d349cd3a0fbce3f6708d0fe0abd28d0b57d9a5d2d20cb233c52d79d4c309c7e6a82de829e4124bbcd931ded6ce4bf3fc6a2ee5654e164eca92b693a56386d47c286d4a3747ae4ef2672c712459ddd974f643acd3ef271f66a30d34871cb890c0bb01b7f53fb02c46023cdc83b397196243effbe99135c8bfd181f19358ef3d4b028ab15b61b5972e7d53538e3aa2c5b34511832d90ec484012cc98407a9f9c8415a8ec3eca10fd018b8cad7b2eec17b0f44e423e209152e2f8b491b67185fdbbe5dac5d648fa6347b0f2ca5deab6c0c983a666e0382b2a8305df92f091d78ca3fcc55ec3c223459b0331629c9f9e844d0fe46ae7bd5943b4df01d3667bb61c2eb488805394d37f4f0b2e309318b4883051932472a773fd4599c68f38d9d02209b1f159f6af00b331880624980c539221a3ccd1c9ca53c01945ca94a1b35e7c3cff102a65cb42456d62b070093bc6e3a32f1d564285464e6d0349e9805e84e784ce93d483e409bc9726c5ed01322a31dee912f391f1b24c9a62b3d38f4b14e78180f5c6e1e3aefab34abe9fd2094035a1e905053297502701fdf2691f3d01a07e0668a860c37a4989e094d7373e12901d1ecfce93f2f627279ea6393a394cbab172369e0e886f61b6c692120c0bb1471732c81c94631af19aa7047367b9a6de4a008baf291c4d046dab372596c477d68fa776c05ef965ea3ce9c7c6d57740c26ff5ac840f200be80633e3fd545edac9aa59aa93c9946cc18ab92581957a6f691aa81de9f8d81585c00a1eb22f3ab22f2e07b46f60d5e5c66dd2ee1f731f88b5e88dd5b7e35922e662ff411f7c81e53477d7295170fc8ed2af93093dbf3df80547a19ce3ec3e57472238758db33d7993688c52bb880a1f6e0436d0948facee724db1f96856eef1f1e43dbd8b90c9f697709fed5caaa1b73dc80563fb6a576a42cf10f62060b3e0e94aec787a8474c3ccc72bf114b700d66f5af4a6dc813cd66e4abefb1268b8d0440a1ea706fd022a29e81598af3ac1411ff1c68d04112820a4363ab33b7afc76881091580aaf69fc738a742a2588c4a2a9638c8bd4deab3b5176d73c60f35fdb1592a38279dac0152e8ec2e6f80df411e6e20ddd7472a44769bacc046f514aaaea8df7fe4dff465099763c76fe70b9d0b77004fd70492a8fa7839fb3b5a3b45d2a20d0b5882f2238da5443a3751c5b6d840716ffcbf160da9e92ccf493041fa03ef85b4d775d44b6722e638542b52273afbe9ff2848872462c2518429b9801c93b463d58546e82a3d627a654c208fa4d52d393f4e14def6ff609d85287879c2fa515425c061f619ca9a7a61e16866c865cb43e5c425907ba1fa5ffac82b7c3c2921e20106c5fee8bd92d5474c7208c84ea304a7e11b64a92996a81901c98aaa09344faf2687b6424e445c2c9490a2bfbc81443fb97a6d6b99457ef9f4a31499fd6e53320c941b235d8a919de39f6ba5d97aa031ac627e0c119e8715fa801b66dc1001b690176b26273456ec74ef5c271bd8b112cfba8ea93e8c74bcde147ceef9bb1ba8d0febd8975e61f865ea43cb5726e174c892d30af2e68c9600e38d037d102a357fbd29e75bcf157d2467f4251af40c5084e1a2e270652468c8ca4a64cdd7f8202b98a577937a9940bd22da4f051786513496b5e60c129a2221520d4da85c4211513b60e7af5fd65082daf2a3cd855b1502751881bbfc8da1be2ce49bdc440ec8ed69fb9217cb1841c46f85dbc41d7ee15e0aa7dbad1087bc0299e4a202f26f6ce3ae019a06c1e7b118f670dcf6e78a2fc5392b9c80e18666c4309ab0da7dc98b5a0390bee58c82d5b104544af80b6b68189d339e7ed33e2225835638b57ab27975e962e31e9d078a0c40cbdbb2b3d8848d5e9ddd9293ed51e9f29f472880fd481d4c3150b7a2355478c5cdd0f9f04b4054806f5eb679e6408d0988f19b9244ff4debed7697786af33e116c846b31774417f3bc293911938f54533a5a4c2a315929e52d4de5e2ae4c58cf0cdcb8e4ca0efab3f802051dce824d1566a82d7eeb5ef216340743833bee3e61c71211859d75bafe75400300d8a101a20b3c90b22d8106ebda8859294c5f2bef2bac857912d7b5a95771f17deb01c44de6076731279f1e2f597286eca4d1b4a38ab6568d65eb6c2f1eb6a969391eac7034e5f3067004252dd899492af6e1e20320cc80732f8ba9f4b7596e0828e934cefe374821654e80b7f0f34cfd11d5acaf87f2c2eed4b7de23f5bce53403ab06182485c9edf0a23343ae044bdbfca829e65f66999050d0b756c0a479682c5de0a68df6d775939b246dc071a2454ee8c26929e05646d9a5c0ef299bf92e97e99c4a9e8f210d323b069e0d38e90c551906671fc33b4d2fc2d1cdc749b02f0f160adfc18c82b23a251751fe4b0e9d26b9a82fce70941b03b897dab41d25968b0ae33c2ba967a9a4a24a4fa72a25f54b995b9fb889a6954ec5ae873e819b946cd7b55a3edf9fe91de679f24be1b1640c2f178ee216e998f05228792e8494287ee94ca5b9cdabeec3b92c6cd1d239cb59452796df94b9c3ab454da72b5595cc3423dcc966cf16b901eb2a1b788e91d5c00fec941f01149b2627bb7fd182971f70e37381e660b35c1acf0876536c91e303fd9bfa9ac22c4c599a4caa43432639f94668aa404f885e8d0cea6eab297b2175cb5b740a57d7e4eec99ad309cf9533dece6bddb22c43441cdc0699a23dcc0d4f454ef390a7043643ceae7277edd886cae716f58ae36cff6f653af32073dd60f81e83c339043fe1224670b038c0b65c7887922b0c5f8797f26981aeebf9e61a9800d705145c0f6935e13905e5bace87f7851efbf0815fabfb65dd420baccce804597cf05a84234e7532ae4c9508ade2eae21399304fa63f91ad00fa85589fcf4c450811e5e5ad11555a809492fb8328722864c5459907e2e1a8b001190d8c251c961c0bc50019cbd2e9015cf9b5124455b2d68a6716075e9f5e4384a8f448d6cb94862d2e6bec6c22ef22386962ca4cac45e06f828760e9176137a7da64127e152a3d031220eb4bfecd0b63680397ebf8b656996deb5d1b60f6f900f5b9eea7ce2bba617080d323bd35601e01aecef36849518317d3408e00569c349fa61e007631a7c25488db1ab08b7a6d1856f76c514e27d804e27f9109219032bb59d6cc288cf2410184de2a6d835a24a3ddd89c94347926cbd7a5f917e1b6c4e8c9662f8783b0d128bcfbf10075677d2887c6322f29c58514ae87a2dd45765bc8e536d1c723c30fbfa7f102055988a1fa7a022673274f1490f8e2738bd9aa716fbfd21cc734d207c829a166202dc6dbcf938841b28522db6665486839875301ee540368957fcc93c5cfffd8b840be9fa64ace009699423a656e7691d4c683bfb614018d304167406304bf6c8102888138805c397dfd053486d7e76740ac7daddf80989558a11cc0d4edb6e9f4e2f32c1b90147c582d0355034bceca6dd955c44fff6c6188edf866846df7cf0d08d9819fdc32f73ae261d480ef798afeeb0e1d247461a52468a0784f532cd35812ad9116ee1d6cc0d934a0046e06d45bd1a765e5a04ff8f87a065c2c220670e8e5f34d8e2aca7700791e1afcb76a0a9ca213bc91910ff10218b07ed7b796b5406a538dd0c588df5d0a660039c21752fd31694a990aed9791ab6e01c0cd1688a665720110c23e80811efb8d01b3bb0a0c8a3f6a32899d5a3b850716e8debe018e11bc6e01103d10a1aae5e17ea10d46c1e39686670bcf67882261d10a331b6e0283cd14ce966761e83f3405328c5e2d170ef204baf8250271ff69be9477244820238d748161a52eb086e9b3c4ba330325e8a2acc143c1e79e3f7c8071d18647a211040cb45c8e00bc2e3dd5c312b83687951b3a7a01882fba930901184f5695934c10ba9215dbf98155b52433ef34a50160b3d6de6b07fdb4aaf801a0f6777e0c38e02f9a39fb9a562402d321d2aaf10146bc376c878e9ba64686a0b11151c69dc381ff321b281bf0ce1b3eee1c3c555063522614fac28e5eaad3e6a861e7dd5599a6ed906865ee234b26c2d7f93591a5a62f98efad4dbd4fcf46dc973b8d80f967e2f9cd19bb76e8e4937643a71b7623e34c9afaf525f97f1cd250541a2aa922a2f09d17dbe83ce2b8316273ce2c43f400568663b5872a85caacb9da1f4a4c34b57c0fc7fa594f37e98aae55a07367bbc69d624c496ad7ffd7c4ad7208573e071d749d1e87836c409128c8c9485ee67f91450bdb4e1eadb69167f5b252708cf56ba4eebbf124a830850ad7f49aa3023718a3efafc37624b80f4b3b689b3eacd5cd5a4f20524004f77ead634d64d5eac472a54aba0259836aa65d10dc0ac54f9533cc3c865de58b495174cce70ef730cfef3fa54d0b01ec9fbc898ac6bc3477d687ea94a65960b7ffa301fa220401030e6f6fb5d3f05ddcf4e46f8cc7a94fd75b4c9b9dafc8c92b4506a42c566fee11cd40a85215076b6020e39e5f3a2d4e9f85e3135564d3d9216d33234e1708ba06df319b17e8959c0e3f6a8cb9f6fa4d0b6d1b6465fb2663e0f62af6684cb99275d52a73b64c2a8dce02b6889892ccfb09faeb451536a112cfbd7612c2fde0b6bf0a4960be641d1310778964d5d6342f907833ece0aeb43dcaafe89cfa8a6fd3014a0e4027df3761978ca6d41fe6f92543be4f2e213710ef8b28336faad04d180ae163e2cdae00ab56bd929a49d29358900f692defa6e47f38388414322ada949de3e69b1c7159bf7a1d45a17f2ee84a1714df4a9d8381cf6920709951c504a749af6a8448a48464e373b52ae7072e937eabe0208080e8db668a6d99b28991647348f541064b64171a46c743e696fe764e23d982a375c2fe2903b1c89a1360929e51a5d66d8e6f86995ec65d8eca62a84511058977261136959719adb7a8d8d0868d613d641d651ff63288ad23a561ed67f4a0e4f4060ef552b36f1d201aa35f5c29377f5cb2f409c28405b5e748af83c9d290c81e04fbc66aa327c4c84faab8fcc6aed18ae24f084ccd2f8332ca04ca3236d0fe729c8ad40b651beb2d66c6e95f06b7b48d48b7234328e3e9d404acd13114741a94653af2d02792eb7392a33a57516e2987693cf704ad628133ee6a34b74a54c931ad08b4891b5915094f6def0b91307bcec8889540c4873bf39654147dd6aec065efe1bda90e97d6e4c05e647c8867c849ae52a90ad3950ae7dc45c29959f401c2c739d6d0948c664a11eda68852d1e5842ab7130ff1c3c6224a583a4def676dc825f440b287c10dfb02bd72634651671a2426f3c8aefa47b4b297943ffc73846241d0cb66707adcba3c3ab88c61aeaa18574115555a72242dc1dcfd942d213724629010711177721690227b2dbd0f9903dd1469846ece60c7a63d7c61ee9464e88302edee37e5601f5f87c177a713d7fba04566dc1f8bbbd16b3f57ae219b70981ec459e9becab64c4f4a5aa9481b0e503201d1f250525cadcfd9273918e7f4466818a7fba3f071a1330736f4b58bd9796ab3fa4f86ad5e9ce8f71a38f5d4cb9408b8774b3153934318568fb1e2bd40f66e3b059d8f3a9158e6969b8ff746e56c685a962f532e342486b131cbb131064f15ae65d8400cd6d4bade71a6e0e95d8dc51b25abf6eb8bdb4621e1912560cac102de71045970bc0703514bc8f4a414491db207d4a35bed8046448d5c0fee46faa390455c28b53c610f7eb60e3e437320bb72d996b4b609694e1e3680343fd88afbc1c0ef50c7bf5609f6ae643f95d3a7746bd2210876bfca94fe8c9c6154906892b58bb27b76c7053550b483fa64b135449c1b5e00bf84720c9e0e5cbd65a197be7502e63294c49da03a81e49f0bdfba2c2d7b3acaee517e0b3fa4b4ac84a70a48c6dd241acc13664295e60668fa5ffccb65ccc4f12899a9bfebbf3746afbe4b027928433b2efefea15c1d83e3d4a0dcb7ac229975e8bfd46c173c2aacb07087d6c2fbe76ea88f4dbeef882acc8108d9e417f262d21f962b770c4a16c3e5172a4c2edb5af00e389314cfdc00646ef943aa816b120bda4d3701a623864281a23e605cbb0a1ba7fdea22ccec02af53c5394b3f6db7636fd760adaa415dac3b9528d5c9768e0ffc64ffbaa44485212ddca2ea24c8f08884cbbf49d953d1c582de0f8983f16fc80b59c9db44cc7e48741df4eabd5ee3f3ec68d0c72b44cfbeaa4314b8b0b122e6525e8bc309d55da264fa1e29b84567ea4fd5a52035ec87744b4a860639ca995f22e3bee926f0f5d28f464caed7a09d99b01ef1b73ddb92a3ec3adafaf9484ab2c461164ec1ad2222d965c37b554c03a1432ab71ac8a8c767f24b3fca628cb427e9ede37c6ac556b81423067f9b047806e1655e8617f203839f37a75b5d456de8b04fa746d08711f8bc920911e320f5f77d17dc4e4b50f2431a9ec6253969f70203b88fb1e407593396e6a8f0aee6763ea39ea0f6185dc11a4e1c49dc25acb43901cc7d7e9c877acb5c3a967b00f0e64fd8ccc221c82784fd19885faa25dabd8e46ca5b2612217b93cf666d2308d4a55dba47c49b986fe4e2fb9135ad5380a310e3f6f5d1bc904817e5cd1183111d9e8137474e08ac11d1e1e332455d85ff5e1498ccbe91b758616179af78b617a685c63c0a10a828be48a8ec15048ee75ddbf18e68d163c5e1cc6f206fd4376e463ed1c0599ab8f8090335d2baf0a91fbbf34a74fa299e7fb368f5a4aaef0197098ffb29c9290d2b3518b7a2beb4c0d8eb2f8190cec12f3b0dcc5df4f0a4f53b5d2090a04cc32141d2cc44a7c5391eb229a247885a86ddda07c0d558056112b17ae0d56cc982ed194ba6612524023be7cf3a04b85238b966d4e2674c221e7032b6f2da3a2579caca0755abc8a412627c67fbfbda5a274fcec39feba1a86ab8dad14590c3515b6e2636dac9f7db7dc77afa92715ac369abc2dfe9783e64a2613de1e40daf39218141692d36dd717b5c889a3d8ff7c99dd8374810dc9a5075f892f8389908b26a5821e87367a7f887422da85e12a2aacb0cd9d99968e012569fae969e7ac0ea489c86148bb44bc88a8a6c5c1c26df05ef6563a3ac82639e862f0c9f81497f2340c7fbacc89df0ba144288854b0a4465ba6ce8e1a5c4e0427e08e7dbd7fbae3a61253f7b1e591ed074b47110496b4284351611b779080c36696d8d8e3343d571ebfb47dd5ff32c1a21a13800ac53f241e08e6fd76f56df1ada4662144083e8f261dfa2df3e610ed6f266ca141f0db2a167f2d7f4e41a783a04b13ce927a5045280f0eba55508ca34159362a50c1519003c81f7db5eb1de70a9a8b5dfa3324b9744a804a00decdd7639d7cafd5c7b87fe11fab9fd1fd56e07ddff314e07f04895e47c1536a19d146bee5b895a003c2a8f644bf3e864e71383fa803393953628f265f146c6c351d7f12805d6d56956dbb50444de2c32e5c72592a80e4f31ab81df59ad05e6f3eba5d4199b05c5c37682b9f938be3d417f7b3a1f8b4c365dd97604d2c9309d0c1272383c9ef6e4be379031d4088d6aba11b8e96929fa7b442bb34a41f58821ab2b79ec1d48b69e2c97a49946106f17fb0c66053d2199e480e507bbfaead90eeb592b4a946dee59d274cf26dc263b7393c13a300507a4e9f258718098ffe7bced47696d7556df5d9a9a1c0500f40e161b74281e220b987faada1ecc802d7853c2bc4a06addae0f8dd704baac89f6af25d69dfcee9fa76716b3a409a062c30a3aa329fe60968728f1e491e62bea803f5193a450eed522e948cd222848c071161f71fabc8e83bec03d650be093967b9697ca2333854335e00458a9b857ee1fc5af71de8677d98cbdbaacd85ae45585a1f53ecc59b6ac4e6c7afd6ca4b64954ce331f7f0d1dfac465bf71d7c94df8d39177c605997672cf0c82dc9517d1ec08bdaa804314cda29792f6230913b335569bc12b0791a70d9d64112389ebabebb23282445cc966ca045b064a1720f50cc6e85ad4c2bd1d6add4c435bc9feffef563f91919e1272c191b0be807c43e908e0d2db150cbdf5664556ac82dec7119bfa814021556733b4858d88b0b242133d8db66c3c170444bf1ef8af507170156e43d42c2c7718bc635ce965dab4191e0e84f8a4751b9588105b96d64d317609af2952a8ed768db4de5ea205de733459acb47572712a18f2d9c394bda206f255b18d7607c10ee09327f80b01f205e3b15ae93cf967d51894042ea96e4bcb2ef273c7ca364d7fe7fa27ac285c84606849e17d28075f6e7aa3b148e6410a70021389b4f1b984367de98c6ee2489c191e596e87968596f6397e0ab068dedd4fe3f9c3736f6aed5e653d120800a6dc933805f7344e76808adfc3a86b5b3e0b96b4a737467fe11826da7517126f26474bff19bbe1ecc9f6cc4024e755c59cdd8a4e56a3921fc46b8b9d963c6b7e8c0cb4e41b62674102181e596159ccde92a8a1cd88e995be60cc9dc4204b77ed58b5edb92cef488751e063edc8fbb3262b205ee536a71656418c1eee943d0ae449479a400b092b8eb01b6b237e9dba3a51091aae357d5db602ff6c0f0924d69f661f976808373b2e7552363e9430a093202a726849f9a3d70b0cb481e09222d91c8cab47c9a6ade7dcc0c201bea395f3d4d288ad6c4e1b52e5137b47100562458f624f2c3a08c7a8f4cd3414b01fd8218a3e84d5f8c4850cc7ad199d162c33666c20e44196a4de80ff0e7ed1673b6fe225a05f1f658f04fd6d2fc25d780a0c5b95d88329e23bdb3f46115f2637b9dd20409274557af016a901d181a4f60c742194864e81c44d46ad1981317a466835f20cb08c7f49d433f28e6765fe080a88085ba4709cd17f07df6816bbbecf9029cc256fffd6103c4515dcda0514b44aa3fb4a9d008b117f1e1bd81ee39a7fb55e1633e03350dd5c06d9ef4a2528248a42d3ed552012e344fbe1ee70daaf6a423c7286df3fce1c51de9090fb34e15767da4b20978f87aa9ab5e234cc121bfda0dad9b7fadb3a1d458d58e832d78bc2fa3bac1e032af55ff1bdbd1d9cc5f44fad1d14000a4b770c632014814807f7d41f17f69a9149436a1d0d5cb82a87a1c2ec851223dde826e1a303ef785263b408ac3b68a29107968c93c5419ee626f3f9f7318220ea0dd3c0e28d12b4fbc8f4decda5136f3f894f7e1bc6c4dfa38a271d95aafdc7071eddff7809b2920a15bbf4eee2107d7388a83109848314c0ca26b56c44d0a03121622d59d7caa01a2bd58b03fc9841f88fcb80175bac1e1c21a0e4d32dca7e8f8c914cb812dfd8873150deaf0c7d7f289f7f46a617e43f7fa966c2a4309e6a080f124776ec0f2ecb2ec19c0b41d931c4ec4690c9f043fb6aa582e7ceb79a215adb40ca9915e954b2c254d7017851784b8dd902de409a922dab118a23fca687bd04053dc543718ee22d72ba0bb504f4d38e871ce166339d6d294c2068f825e3c8e9eac60d4751e5e26fafba2772cf364f88c01d86542d5c38cac71f9f13890088dfb9ecb9c2b4a02eee95b9602d8e828848c6c82bfdaf935848de3fead2877e3d57f4d73f654c0a6e5ad7435da9ea53a58c1083a4bb219da6528a758fe194e79d0d75a24ef795126cafbea8fec3d8ce5957e361f42b707c61e2f36345000515354692fb6f576eb58727186843eb9bfd447e4c19e4dcac977c898c5f440147f10db2bd4fbf657333e6d145464ac633ed8eeb168495f56c288acc717ce8232292683e470c43cf881157bcd85929c74678c9fc926aa347130327ecb00be56391c994f78a19808a1cc89eb5729a00b02369c9b4a27a2b91ab8006e64f3e5b789026fc5de48afcb128239c83b93cd137aa2130bd5c094512ff52e928c86dede92d904b9008258b40624f6feb28c04de8c28a9a25b54f1250110e3e4c6e854163164cc4197232f174cc5db6bf6a8a08ff268037e09bc88957d99f640d8493b6b09bd650bfd6e86716f1d0763a2b492b5eebe8898ef32667bd87397f6c3e694af968c6a9ffeb8e07c59d18dfd46e1a3b0cd82bb386f7d07fec497634ba01e823fbf0abb4dd2d9c626e02a87661b8435d2c73de96643f6b535373017225666b9f04ca2dbca22425256ba5db949362c0abf2dba9bc77488706d5c0b9443e5667ff41bb301988c07b6dc1f8f46bf51ff15d91155c45891c9c60c97018549ac717043ab025cb047ea371fa7f2840b7a3e9445faafc60cd5a069d49552acd1da3478ecb8f2dde26f94fcb42f16ea8a4409bca70213bb03b546370a2466d432525daf05324dab83d88149c0aa9110dd4a75c914d8824a1c555c230d783d0f5f8a95f1b7e5eaa3c08a64f492f3197e8ed29abbb2550ced7a65f49d282fab0010f862bb40e8065569ac2305162fa4cb439640a87c03c4025bc69588a943385dbd9cbd0566b9ef567245728a609582af095e292f68686870a77dd14da1eeab7442cbffcf7b6af5c0e88ec86b5ef5d15b64d5ce40686079bdd395752f736540eb39e3b796351af2093a5d96081b0dd098e58eb0f132021fa0a3289fcc31b0fde31793752be11c28733e8392c915be0ff5412e92a1e4f7d2a1007573fcc0182597edda0020f302aef64fcf36a0e718fa0fa06df107079be2da2f1995c83cc88de02c46dfec8d39c02320467856dd1acd5c72bec8d0649455198b6467009962c4b0f887dc914150dd1fce58090aacd3ba6e3d5a72b424f3d45f2b276cfa30fbdc1ca83c22460c5f68ba88959e207a121a4b90f4f56b7640ae74252392b0b3f22570f80375bb0d04d6181ea7096ce32c5c302b94c9147fa095488cc7bbb86abc572e8d2b1e8fca9766a018784f1479c5afd88e1e67a2eb0de5a4a79253081b0dbcf74eb97a9c6fd82ca2349b3f8468e744f84ae5ee33339b02d2b7b80e635d76b455619613833a421e370888ec8ee0c5e4e9eed7b2a44c7df312af036d87b74e378baaff55fa0d7a73919a6608b4876f420b368cb344ca7afaccd5e7f4e42f2acc881b30e0ae8565aff0564252f3679223046338ebee678a46d6ee0d5d2c420915105d9b001601fe04f57fb7476f24e3805b04d26e568d207ef3f29ce01c77bfe60523095533ae10a16252099f61216c1f1709755f857be67a13edd26554cd709d43b4b0d4efd165ba8289ae26ea6e0099a69e34b0eba2d311a05d5a1625a3aaa446aeffaabe153cfb7b83bccfb942b20cb024ddd88fcf238e1389395c25152ab7bb5cbba13b19fce695896bd8c63153abd8bbf8b09e2f11ee0cbcf44e8d4a5b4ffc4392e25d9059414973d980782a9fd0829df10e92ab388af9088c5ef211b6f5cc94e76d00b67f44984263ea012782e6ad14341ddb10cfb50e3959a8a3c18d99b0952230cbc3cf705bcf7444de705817b9ccb0b5ad93d71317d512f9b812a8a3708b8d25294cb6adc575d0254b2d35052f3e72b13b0d790bed526b15b37b1bb8c058430eae835c8e82b5803f9045a35f2b54270ca484b933f5bb6084645c850409d984aa373e425069285d56c2d8d6eda0151b63bc15add5a1a190d3e98b7144af5188aedb32298cc8a0797f0901132077c5057ad6401ca43232119a3f5fbbffd7c3e700fbfffc9dd323dceadd867a88afdfdf0277dbad830cdf7c8b1db0045a13174e889e1a728ce4035fffcda9beb826be2e1a8e0ce24fd1634c72a07dc205cf331dfccd8d7bd633bd27b9fac29c6abda43055cc627ed1c2bcd0f974fee6a4de253b67c3347c8ff975363c4699fbafae168fc35988eb70876bb8a47177886f9f8755ceda3699decb900526d07d590bc0717d403ea76efec8a7df7f4a79e22cb3a238f0e22d9329f384e0a632729df91d627bd8d065053485ab87e09fb140147db8a9d9f975c144b6c05123a903e5a84bf085c050cb3b127ea8b6b55a05185d2f1b7861094f53cfcdd6c7058725eab8e98abedfcb3fd3a32272a777ab4df67cfc3664a1e8cb6d562bfcbfc27595003e51a16a103718abc83ba0986f59d3e79414deab11a81850672da8f5640ed77f51a125e155ce5b3153ec29d70350e7a5d0815a73ba27ed23b540cdb2469e7e2407a63d1efcc159bc603427cc0b0161f629dc5bdaabea3be5d22d1a60688ad76b996d56d3ae4f22e6caf4005cf505773e4232f190ad1bc4f310703d8e78f563a1f75b8d56d7b91fc79b7d6b25c32f5af20951072b971d409242cb9a67990ebd82b7aec3652187b9c0c56b78deb42b4bd36bb4eff2d7e2c020ed39fe36546fbe5a607f2692664b972000d00641ec6dcb91379f64f1ca276e82b4b39c8691007fce8123ba64ce4fc2f2375b802bca1fd614801348f0399ed8719971fca139f8cc35071acac2a86c95b7eb71219bb06d5c9c3b134e0285cd20d617658c3eb300eec3534c8399db55e001e7ec026cd89daacbf9804c0aa52ffba7a312bc6b1c79094bbc2b92bbb8fa8b92ccad55792d1fbd8bd544177e370bc4f568fd4e3bb9638e8621b0014e35139de6e8d923b3ce010915054c0cb0a3f5c1c80278f9dba329e08510ffe12a47b1ec37342a6024560f04db45346c4254413080a12dc747d92e5c9728abe5b4df6b82b39f8962c1998a3b280768ce7416fddaea90e2de6abc2db81765db0771cb40fdd073989189d246c28e0a2d6b3600317a7282f8f13439113c07cdaf653e62f4324d4855bc7d38c28a3366389ae152ca3395839550f3519f882149ac0d69f1261d093c4929e47d028f887c632d79693bfb74558eb7a719aaff100a49d571c8e067576acc20c7a123116dd59c93f0b275a5c8be702e7299c26a10ed0675184659a0cbe888af465d947e3c036d1275d368a75d02487823d421ffa195ce0cb720799b2ad0eb11b8e4bbfb07bab623284b6ee8a3279f9b0bebfc345c280efae1a0015a53290ae9dcbe38610383302435c732c84a0f3dd16750d544d137f1c774520081d4d8c1a7894d589a6c2991e4a586e6a502f797e822318858c9ba467a260651fc3b9a9c3c71f3fae1f997a3ec02187abfc064c95539037259775e038121dadc65d1bf7d5f2d32497c93f632310eafb940612bc125dd3c03d36ca8520e4f12d4eaad649bb411c0ed793ecb185518246096619c6ae28d1ff074b4cbc1761af28c0d93b7ce5af17750feb3f986d30d3e8a6c2ddb0b56c86d70e6d6e2e8e15bf9e57368abc9459c9a6e70c2950711a35a607dd68653539d0e116592b04b57a1b2e32021286a6ef882476626a1c7598999336df798ce21c7ff24916611964553332353dbe84c6b7f3ba50c0a129b65a9e96f2fe0617f4066367d5d422bb7e57c56d71db1c0f437837fbe25e9a4d23665cb6797ac05d3a1da2d29b2fc4603594bb2a2c3dcd875696a7700db1270329007a7b30b2aacc9dc5ab125eee07d96833a87325a7084ec4c8232ba5fa398c0bb01df4c87f9032fc36950078333cc166e96b05116f28fe090f4d478c69a706a05bd50083c6649fc075c136004f8309539457f43cb89803f99b39093330a676d8f5ef6bad2a6bf08b1e79b644afe3ef483d16ad16e50541871f878575b45126bd675ea827544849825f6d3a5843fe95818839650b5e0ac4bc2c37f4329fcc34cfdc2137f845bcc5fd6d2106b0ebd286569a28f15fb07bbe95616885f90827ca58dc99720c527399088a6a12966febd8229f71d1c7baa45bf41936459a13bbc31d7bf0edb5238fb1f22bde85696f0c406b3bc7fa67eef4be9e10ca397a929c4d5cc8ceb56996d222eb7dabf8b47a4a50868d5b8fdb9790f9c946d0aa6968ef94147beb6a3dfd03ceef2c51396478799a48d76b41452be3efcc211c23f480feecd146cc4c4af933e23bbce5d2bc3d3fb9db2a06ad6a3278ce30017ae8b70d1baafccc9bdf7ffbdfe39fa60345704361680b6b528ff66bc81ca2244178db77f56c5e94763f6deeb5a2c1c7aa29695893e56ed0fecb65b5d00bf400bf695362a1f02f08f2e1ae29f9870a134196542233d690559199772b1b8c2d87da095302466754e72624655da402d4fd98b746cbf8eebcdc5d97fb33206ba2580357bf95ac78f58bf99746de3040455d303a28a295b59744a0eb9955ea09a06b11caa910ec1bee6a5474d5ba8fc57fba83b79c54ce1ce349d4382a5b73d3fd717b7b45347ad4ba3be17607355ed7fb1d21dc12a0a1fd1281f040d36de1ec8379fecf385d71048cdd21d00e5f92a95a46a60a57e7d5ec1633c7495ca8acfa6c1ddbe7dfc198cec96f1db9e65452f53fa23cc3a0f1662b21be87cc81af633022eb264d7d4d7bf04da4a811b617e7d8658c454e4f7987218b7b52e966bb220186cf7474ec58a7b234f89275a727bde27ccb007e15fb65419a3b4ba1da6a3a2b00fe86998831de6e4b52d450e04efa03834db32da3fa8071fda2f54e7f47815422c868740ec78036fe664d485839bcd8a0e1a3b203406eac3b6d8b5e4ab84f8e881b96b6b58ae2f5268453294449a4f175860105f57367162707f5faa1a19e847c3f4cbf31b1f4ad3f75390ac8596098f59b483ba0400aedf39d5a6f156045a54795a4325d431b30b32058368ee1fd75e9ad4ff612de6c075cc8f89916ba635373b170b7c70d7cf5756591a4c62cca6c975bc1fbfebff2f33ce8b170a1d9fc70615356d77e8be933be696db19b7643fd452e18a754c6584cd896c412442cd0e6e1251e907651a1564870358708179a1543441eba472acc6578c3214dacb380e68548e991c3160fc4520f9815d8e1499dc5cf883eb9bb825bad5cc237f4c65f9bb687bfe1ba80fe90e69b0059ad00525cd22319e7cc4d322cb1190e35d73ceaab568d8206a811522d705c6033e5a56a67095770a7b1528b8b9ff56d36513513e204fce067c4904b42622345d1230784a5bf937b5822c6e521ac04811b0760d8a5048163db2f890410a34f02889a224cda8230fa5687de0993e3f6f5f67cc0b7524173356eae25823be0c8c986df9bfeb7f910d5176ba3ae78c43a2290954d7314e8731e531e17c988bdd3834119e0814cebaa7cf9da28848b2e217d363f2d5538a0a0aa6533ecfa85a61018a82809b22ec0ca5b8b9366dbbc3fcf7fef688f01569af94ed57a118c05c7bc883b6faae5db37429cbeccbcbc754705c058e52360679b57408708d69b7312b85c629d0887d6251bf474225728de393f50b53c3a2acc772457e9e6204546504895bb85a09cfb3358093fbff1b8a0fbfbd06672acb06a969bd6ea2c3b6230f7298cdee36c8473617eedc753330df5d037f9a46de4d6dd61380860c38612f244c59034a74e27f5a20d03a4e07d9e72cd56b6f00cf1719c67fafd03fdaccac5ce9b9f022955c83e22bc5a052065372fce20572f7295aca74f30528d585295710a05c5a71dab51bbb30508b9dc1438e48ed5b5b1e2de09316d2f6eeb6e59652ca246507080c08ac07726ca4eff6228d7ac94bd644d24a80c67eb54f59bb1c270da9a75228e543c99a3ece25be5941ae71369951be9d851ee54d2e2d3d51e2062d46d47085aba3f8715e40ee74b27b7cb4afd05d7c7b6e5fc1e08b26908e88c11848747135966fd7d1c1d35e42efdc6f3741c936b126c963db5eafdef9e16126c25fcf01fadca4de91386bf95a1d8725b1d75aa5072638409f5b00d0071300f4a99f1379e488722745be62e4b17291c7caa5c953afc16151a77e83d6c07a40c0d7239896af473918f9ea39a04ffdebac01803e7496c15a1ee796dc39c95d11799c419c4c2e7d991990715d5200a0cfc59d12b94b22775df2c8fa7933f938c1ccdb5cba22831ffbf526db408de4ad95d5ca2c4e9610099dc183db992b3f4e9a12cffd38b9bc7539ce216b2d144ed8f7acc5d6fa969f30c488c1c4911166d07e9c312b36fc6482c3d2a1ad1e64664654847971a9b9daca8f3c4759fc6c65852c51e536454a139814288e84deda2c37ac38f1945af9e2e98c96c4d3d995199eba08a00f959284fecf71409fef39d99c59d1e14d260f00e8634a02436b9f6566a2f202aac19062b6a0a49f3228a2f8ce3b17419f6e67a4cec9b8190d3f4713e326738d1c4d368f921e630f411fecaff7dc411faf465b366663b523287f09f0d743007d6e2a8b3cd222d6ebf59ae1f67ab95af67a356cc26033335fab0300f4a9de501e1bc6e586d91808341ac7b6a45b106dd51993945edcd59a2c46238e1d0ce32c565851adca7e569aac664bea60b14e1c71914c064df9afa41b8671b20e08d3e80dd0c776d0cf1b6dd1225a74fb8e028416277923cea478ea36f00f49ace607aad994a72eab243df515e843b3b5d60661039b59838a2a3a3c751a728a1daa70c2c4cf155893a3b7404079ab7a6badb55c16da736014928aec29759b1328a5d4004f7b18d16507636a88811963b8e86c0818504aa98cd6803e9446043be2bcc531ea28e1adb54fdc70e5892a9e3833a526fbe1adebc899ec8ab73323276f9dcacbc7d66690c494328013b6a79e6fd375fc7803c75b1d4d40796b1d3781c55b2940bc85227b2ba5cbcc891fde3a8ac772b21e12c4984bc30536d63bf204fad8cac418253c75d00c13587c3ec4eedcf12a15267878ea26d08772676079bbc5e2d7124c04f0d6715016b9c68596e1646f8b9ebc68adb5d65a598b64d65af7c153b3151284172bae68c224091799cb56796bb9b7325ab652a8ec491e39d94f1f39d9d7c7f23ba8ac778a68e60a41987ec0dfd5c1ea3b9349ec3027738dd18b6720fa22225a8bee0f49c2f87410f052fc408e5093b01e63994389521bd028f228932e96a27a38e9eb7e40f7e6ecae2e56588ddd4e3025a71de4b18ee91d25ddba384cee8654a7f527857b3056d853af30daba4e935a68412625099d41bf06204b7dd55a6ba5b024f9fee82f7390479934676399a35d5a176190a1b5781267b4b23379c4388a093f3257270ab93d502462206105906b0e71c15190eb48893c9d01578600b57c137e64497347df2f5d642e193c2cf21be305cc2583ce1227c6b89c8034180972c930c21217499cbac81236970c2398a1450e50f9a341292e2b04cda149348ba66cd27aa8466f34673abdd1d72816555b4d924bf32591882aad56649313a8c2460a1b73c5154499b660e8925071c9407b70c94ec058f35686e212a673c264252529a5945617a59496114e973dc950ea9dca54ca1c93de30e79c6137dfc99cb3bbcd0899ee4df76c783fb97a833e28ecc6ba745957059dc8d5afd71076839428a5b2564ae991d726640a9b734ea20aa3739af1248eacb00a933b665257d82db244b6c8ca2ccdd62c120b15a9da6a12ae9676505216476bfb396f32e924ce4f1ce70be86727daa14a548b6c36095663377a81ae9501c16cccbeea529e968b276fad95d6eab9f6f52b97af48b8aae3b0688dd6b5165dbcd12cd0c98ac70a10f0b1c24f9e37b26545968dd4923cf27c095dbdbd56f472b645ca8f9236db02f43c7ac81ded0d018aa35bd2d518f09eb6210c06b8b96430c0cd256505a6cb1ae0e6f2fa6b1102cda25848da2d8a27774c97b556295d4e17e6192f2efdf87da829b29c69497a20cf76b76d293ea012ccd75946480e3a2c79d284195e90b142a50c2453e0c0071c8af0c288511450064800a183289808b1850c033d78c1033188e8c288a12921dca0f8c148081eae4479c2878a21be4889b2830db670e249152f4f645298210323039795d285d11163a890b962c9132eda44141d118a482d5f1ca103c2cb99162c5a644fba0a55ed8b9a294a4dcd11382f326d75743aad2af879e76479f801aa8d7c9ff1790c8cfa71dadc6d94cb9de813ae65f240975882d33df1e5b3cee969b3d96c586c59af6c6d9be15f0eb87c2bf6b475d3f6c598ef39c677b36a974e9abc09a6734e906b6c3623bc0fd356d75169fbf22d7320552ae5ceac21fe130a05fa0875dccf89ba1928b429d491aa0a290d37c11ef8679d603aa7dd66da96689c3ed0fb4c5f873feedaaf7eb427019a6b1a2f9ec419a7572553ea2710599039a89699d774386591a94b0f747777cfd9ad842771a44fcf4e80823da4b7f8437abb7756be4fafa008e47be9ee7d2efd1381fc9033bce931fdf3e9df7c5377bd2afe905ebd7edfd86eea7aa8a947e71c4af013c7cfbb2f1cdb4d1390fe79a84ab348817cff7d61fb0c83bc04f27d532c7d02ed52fc118ef8e4d33def0b6b58c3eb5f387e2e066909fa5c20dffff01c86f7dcf47ddf57144a1ceb7f0efa491c3f0743afee85f239ff1e6a0a7fb800c38723168104f976212e5020f447bbfc06bdbfa9628f5efd28bd3d086c6fe685e051f164de8f675425cb0fa0c8e3f7939ba07956f258e341e11d7933af0a151ab7dea9623e7586c5bec3aa522dfde839151ec9de7fa150cabd5028bb098799e674d8bd77faf07ba7af0bb9f752df299c32477b0ec130bcff8542598886a6a6c6aba9b1b1017df24fb33abfbe1d44c1f4d5bf2379ec8a50b8f155ec8a6ccceaaf76a0b7e1f0b5959a3aafe7e9c689ebc2ef6dd888f237a84fea77047289be8a38839d83f0e4d1d191112d94f64ad6ae731ce5385aab915c6b4134870acde7386e16a9d4729672d472f58653e6e02cb53373dc9c7395c5b974b75ab74465d74d93694e30aa4ee534cc397b5335e704a3f27c84543e555305825ce526a59372dc893b512ee7232e953ae254aa23ee84ca299085c5f33e2fdf906fc847e41b22a3b1a629a14894c48069db78e3c7899d7207f61c4a570def4b305998c86377eb6e32c7926e994c484ce4ede6d5909bdd4faec62c8fdd472473fefd645368939a657974ceb028936cc5eec64d1885297db759b72e8ce674774d60ec766137e813a9385e229338f69922a5ef89391a76402959d7e14e0a8f0e6bbc34eb27a5fcfd642a82b10a2ea1d44a750a0681b13c054c9e72bb8bf314b923d63b4bbaf5cdbadba575b74beb6e97d6dd2eadbb5d5a77bbb4baa2ad2f8b73617901f3297567b274379ab3d4ac9626d3f4bcbea1e75025de2c1fc8dd2ccd6a3f49916f786960ec4b1ebb9badb61d8cc91d125cf209a59c4a69ad9452ca4953f5d2c0582aa4de89c2b80e7fa594f3c9711c061d60f354fc6442d9b9d06b4cd1147695742b7b83d6de0eaffcbf21199c2285511818036d2894722e258214f4a1368719a75257a5c23434a04f957eaa65697d864068ed293581530463606cb66e964beb6edd4da95beace74089e505925cb49e2f927e5f4da2465ed2ceebe3ed649b9ee7b392b25ae14942ce95da977b7c4ff81dd909a5c435327a5b6d63ae2ff6ae85fe71429a5f50e31e7ac01f2d3698d6d4abf4e6bafac586cb5f951f3b6294de9e8e8d469ed95b72ed1a9f36b2a722746882e5fbac8f4e5ac8bad4cb62f675db04022f7cb59172bb6d8e09b7599e97469d225c80cc7554e2f56ea082f675e62af7a39eb22c619aff7505fefa4a0fe8ffa6f029a337d8985241f48b547ca2a05840091840916435868b0048cab8a645ec7cc8fab323fb2c8fcc873fb51d2c6fc289174f061c8600726808055f123660ad714f3530b143370c2444c1246b0b8669921c64ce105141964814307ca7802840d30a002065db8a6f7d0d607683618111912e6ca520b66831c7ec420838c1eb884bc82e802c49632648210c3358d9218a2881522c638c3355f5f97c0984b34107dd445e92749adb55625392bb52c7b6098a9c2cccc4c11313341cc20333898a1214b19317e28b3c50c53060b0e659cf85ae6499922ca0cfd983d892eb097b31b047d142f675ca8f8dc3bb5bdd270fb7a3484c9d7f185d7ebf541563f3fb9c3f908529f60a5f539af55bc54fc41bd5f3e6731528b3fa837addf223ea2c1f628c0ef02eaa78f74c8cb31bbd973ced9f38727716a95722e99a059b36577777777ad554a1d5887470766e1156e56feb1596c379d31603ab0246018a6030303669239d665cb1c5b4d29983247c5b71b0c608d03ac8dc06eee9688c3b7db4d8e215bb38d60980e0c095867f23e0e7fe2844d1d984e73b9dd603758d77080ac796b49ed7f5ce542fbb40b4d2a12dc9e371cbfd4f694960ba7d214c194abdbed881bce371d33301d9815308b6d88ff86adb5d6a26eb81945834d9d7a10565548694c29a851baa16eb8d5a6c1813707d05eb8cca8fce426b83cf1248b7bc3f95c3825ab4ea7f6da79045dade89c938ab0ca852771c6dbb3b94b59beca3d6b73d2185c92b62c97ce69f782c16425ef29da5aad4029588cbe680e7dd11715df6ee0695771ca1cb62ded6a6b9de17d45f13c5b454a3c832c43684a453a3b4aa56c9f2fd4220c32b864986d9f504a7de89e469c8c93c91d36d641384f59e3c1787eb6f750d30b174881250c97f4d450ee2a5ec8134a47494cb9c248d119ae9193c930705012c495a22d9a58eaf2d3392f72472501eb7fac68cdf5154656b36e385a11088b9371df121b4473f8680e5fce8f1f8d7db16ffc680df43d7e311f6a5094b062062aaeb8c6ef063f7e434451bea24f0a199245c6996f4fccb777fbf696be3d2ff415d4ded0f7e81185f1a357f4011cc6203d31059629495ca327e3f2a3471bbd1ae71a3d2e653c1eca784b3c249e926f2fc6c94c4bdecb03fa7693cc44fb1e4db51f4d4824d8f28407443cd112c519d768b251f1a329c974332959615ac20a931453135314ffd154f4ed72fa685af23d9ac60e8c1f3b32a68831450d3730628a6b34bda6f8d1046482995ca3498951678551e7a5cb42eb9c497bd1560668c00512338c8870628a8b8b1f3b20f9c594328e8c20a9c5b6708d1d6c013f76b11a8c3059d2840aa32c8c5c631724c58fdd5047d4f25c631785093298382346e91b2fd91846b27de7a0a31ff1d0f788693fe2a26f1a9220224c1733687103d78865345cc35ca0601ea0e02518c98863b46809bf30100da97de46e9c52136e89269c14aec9b76caea8c6c5828692460ef6cd2911e25a21c4f572b37c73f9beb09befebcb8f77bcb11080c981468416497af0c135de2df78fd83e62ad18abf46d971a669160b68625ed8c96c8841f6dd1370e5b72a0ddc21c1d91836bb4322d6f6bdf960b189607307e5ad99d2d50571ad2f75218325cc088d125e61aabcd06ed556989bac41252c65a24ab4d64354aad06d5a191de927ea44b15a888f623d48a79e4a753a42c3099b402c3412888063b64e183ab29d008b06c099a8d7165a90717d28f548a1d284d49c20623a6c8e21a6950961fe950104fa3b8d064906931bdf482ad93869a56e3f2ed01a81005f3c12f72901f4f8e6f76d429ace158f3584c228ff8cbd3746fcdaf6ef40eca3d24eff997737607c8cf62769c1d7b1665b3b2634fb9c9857ce7a7700cf2a75498c3113f2a448542fe147e35cc113cefc2b1be077aa6d00694aec39d0e2a4ce3c6ce02c779ddd6f33afc44301c63f8c0aff33813d761ee867652279ec4a151268ff9ebe75956301c02fae9fb44d0e509f4ae0345d0bfd02482df0782f587d65a85789ea471abf2adb55dad5d574353ad353471fe85d6711e25adcc30c64bb007ea29189ec4f982f02c2d006609911791a29c9fd52ad7b04a701d387275a35bdef43c51c708f24a4a3bf278eab6b6f034db175ea453c87a70851d52f32ad7e44c74957081d804aea9f982c48fd96b95f9fd4d22c48f0d41dc7bef65a2d41db16670466caea8464cb4d841015f66c0f1ccbe08f1a344925ebeac74befc707106c7b810f343f4533319b935ed6a733a697be15997389e0d0ccdb5cdaacc36c62908073de02fdf9893821568914573a6eb85061d40f3a6772104d9531f57507b2097a8c3af97910f427dbe0453583d15678823a994330b9b9c14051bef02009a7565e334abdee0b75e834514095a1db2cb9bebf27152302d98ccef65b3ba66dd9b050661b1f4d918b07715c0de893dad835b410362be3a0bd5be6a15484b5d9b5541c68ff32543bae1c789a4729767c4e131ea2861c92b3d113ced8ec3d271a3bd3a0d15362573f53debd6d84b9fe0a5d7efa5e2d8e28fbed42f92f8a39dfe0f3ae79cee5b30f901fa5942e3c55dc9ed1e05bcfda68725e3cccb191962be002f67644c79fc95512b83e8bdfa51d05a8ffb6e589d9380fc2a01891dfb687f7a953be4db093ae07abdedf5b329e0e0fc4d8ffef614846014f2dc04aeb738f68feb37c4798943eb0d72c795d5ab879ddf10e3bc0da5dfd0e435e4385136eb43a1bd86b68228b44fefa1b57a0daf7352e2fc94df0ef9c7f466e2732a95c480f1c2a57ae7d2baa4317ac4052f717c73337fee81de37daa22f7a03c3cf84fd74fabc7ea74fb4a6137ed1210a864ae401461aa3ff852ec8f0fa93289b75c242de270a65939bbccba89849a44037a46e439b77ec1c379b8504c7ab593f14c886b616267bcd7f6168fe7653bd4c56bf30f9bf3021eabf305f18dc9de8eb84e5f6d5dd7b67e2afeebd33bbd684f1defc6678afbf19d2dc008595d84b28a0e0e2677843c5117ee7bdfacd301b51e38977813eb7ba7283f7ec37877e1e15a1fd1483f4bbc03d0aea0c553fbcc77d33fca0bc87bf19aaa6bcd77d1dde5c97506091e2e67acd5bf74cdf0c4ddfc57bded7e195e089ba515867cda2418165cc7bf49332e4471c5f75dcc60fd9bf7e4af209136bc9f3b1776e02176e37b0ca6e19190255568d28205b95cacca95e652b2a8e758ad414c78ae5abac5599cc51fd96917934ab76617e9dd0acea5dfda6bbca6a1297af5e69bd63f3d5ebcde656b3f48e9c8559aa5e6c49605497b57ad359e710753289c0093c6e5ab2181a827493250015a1ae219ccb090a5eb2d7eba5046888cb08dcbaf803baeeb92ccb5d361cb3a4d566f2bb54e7b7c4f56b43ee902c29f295bfd58876d393d074d3751b8228d4787a6bd69d224da239d77bfa5e0fa2ad0a4473aed720a019d65825228a62132325290b51510da98c267eac60fe3ae66cd20da8c6a898de91669c792aa3b01aa3ade9d72bd0b5d7e7fdeb262b79ac3a7f475989f2f7c81cd7a1647c1dd73a98c4ee61dab6a2c0c8729603a5c7feb9772fe8539b55c1ea85f2c1b00253e415441f9607047ae78763efe9f0f33ccf037d3e8fe3fcc38ea9d8392a8401e52b184eee3427c332288ede8d0a7dba5161c680f2e9b51383d4c7cee5d04351129cc0153fdc2c2a6dd6074fe28c1cd1d70f5c5a6c396bad7318a7ec9743f6caf27464af5cb558fae0e6894b9eb1096b16972467e751bdd274a43c3bed9c1377ce596e7233e4dc762cef07e7f73ae728afa7a77523e5d9ad3806a9af72eb9e2aecb94a64954aec69569da08fd00d97a0bd096198ae9b1b5aad7a4a9a55633fa7a23c813823f9a666af37bcc200e0d5278db642f0eab3465bee1504af3e6172870db9837efd4edfc93fe7e99d1a9aea36ae721baaacca5a6b63e32a557e950d8dd0056923f6f034ab7a0dc843be1583d4a7710ca640e3128c00aa26ac4f13dea4d0fd4079e7f225a8420d07c125a8c2ca5d340108e10b34a78630d8701f307ce02bd09ccae383659567af1e8278a302fd0000e28d0aed203808620c36bc5de449ed9067cab19432a54356dd1071e7d854289b95c5ca790f45e1091b270ff92664d11c9e127aaa53328ffdea34abba8e6655b7117e10e63005f5b1f88313c5ff70c8236b15ae684ef51a213744e690c823eb89683a15840b44a65dad6e44f976a74184b3c4a46bd018587e94b2d352133fca2cb6d21916367cf7085f08c85d57bcd12b9b87d222579922929bb6adf40a244fc3648518caf302e24769eb88665750f9518ad9d99924ccc774069e87fa7eea740f05fa9c94f2fc7eb2bd5ce3efa7a7f1f77d3fdfcf17e9d58cef486ee7bca789fcf3bc88bb50de9d32cdf9f50e86f927bf9a95945f9476455d91bd17969534ab73578431f78161fe6994884abab3ff0b855262574473ba93d2adecd57f5e28319dd3a8a4ae089554d43b548a75a5a547297dbb0974c08d47dd9ae58395445b2b3ca2923eb426542e22ca4a3ac39af5d3399e985f3ee41195f4ed28a5def13c0925a6774ede8e0af4f31afce6a90a016e4125f89d68cc0c4df16a915aa4c807525a04ac454ea85b4d30c1845a1146274bc4122182ca7312c99688254224a5ba1c4d021290800e7736adf672b8bb1c673a728f983c8a8598e2d522552efdbc5e209016922ae0a3a681159040c0820d9c4373c85a8c532a1c6cb5a249761b502467d047e8a654754aad5594b7014552aa7b748fe8a85434358de38e83c5a2a1a9b19935456e03563535a08fd0b5a1214b90abbc456c6adc20e7ec23be876611b2c5d92614a48a442bcd5e0e83dfe74d1808024da01914034d44e4e93d3d876cfed4053101114a247f552659ae023e34b00212083c90055b0a5471b3680e4d1acc5645aa4873a882e13ab0073e55a43954a7d4a2f6da846c555a956fee76431519e290b826dd32cd3aa7dd8b173060c48851e2b85b154d32ee46ab5938309c8db34180070d4de56c30dbcf1c9a4373680ed125a31c76ce2673e884a19e2fd316e7728b8a2473dab190add9a467fdf2433c26504847c7c68606a7863b0e168b060d9b9ad58d1a5f0dd04788e36cdf5e039c40aede0715a977a40d4cb738b14a29e26edfcedd38a56e552f9dd35e913c50914ee0ad46155556af1d33999452da80397390ac5be7f4c0bc67948901bd8082e68d4c1423414668364660b75a91a4226700905760b2ea56cb2a2d98c8a82d3d8c99a2c41827fdc398a031311d0cf160556da6944e1e5a6bad32164fad20155d27a5945249e935d13cdc3b18b766f7ec49c39c1945ff01fec1117aea95d22492b600bde0881a7c20b20319f8d07d45190678fa01863829922426071bb0b8a8184f29c579481ef34f11828ea0bd5cd359627e68bec9607bb9b07300e608c7711c10cd9138076118a9a245910eb07d390b63a85ac1f37236b764d5cb1952991f735e9d104690f597b32b801023c510b3fbe95c45dce564ba930e6b7e4e9a9f33bc991ddecc9b7fd6f8f9b3db6777f8fd54fd9ce14dbda91d9a7e566f259983ba1832c7cf4a97e899a7367ea89f92bcba9247296bd1251e94de9a25449edfcf399950b6689999439d1ee1a9343cf5f100b48ca73ee6d05b46bec1ad68bd292df58e4d50abe675a648868432a9afa75e7bf650bf71429655efcc9d768e0b8f62e9558e12e959a02debf48618e3205bbf3ef2f0d4c23ce5c2e829751dcdf2d067f50a9156d000b5794a553610c05e2ad19e3a4aa03a75061eee9d11638ee67cd80a50bf942450d902cd912e8dbe1a7d95b2ff5169ad754e29c338e7d5ca6be5a954f6834a115ee2c81c1207aebb9ec933d5708b746660bff8cebef7de7befbd62cf5fc798e37ccee084beae8d2377985c7a0b40a3ac89f072b6c61a718a2798d204e0877140770ab4cb1367ac07d3e83ba7f2c45f379add9f0fcac3a3a3c362b9d73a69f478ca5faf9a44d9610e47b358449707a61bf2eca794d220f5855ed633cd917e437dfe4d0fd45347bd100b2ca55e671735139436496891dee60858e48e29d23232c775393dfbe726c753ac3199a306d731ce79b52a4afa228ed2684495781241b0464a1c7116474c03258ed986d23a71a41c05235baf0dd4409f5323b95379a811e96d954fe26dc45103d3c836ab1ab1c6b224e1bc72a41b156cbcc66bc4186adcc6a5eb4acf268c81061ba7e130d0106f54888186d7b874c160e33444d0878d68130ab9c14f6f32cfa1393487e6d01c7a616969696969e99a38495bad705e3977fb7be96da9be2a508c849ad74bef165c4fea9d58d0753a749d125da745a7a61182f51eeade7b2fc618877154c30fab9fce611dcc62de4fbf787a9e5bae30fd747bab82044bc5d3005abe9f4ecbc84e3fbda57718764b333f3ddff849650bd1e38cb13802613d2762517ac9f3ad58c53153b1c5d15518cf13cdbbe13726fd7a361d42f6500ff510924cdde4d5a91572a71e91acead52452dbe53a1c9408c4f8cbd95bad28d0572432e73d49e0446a9b23d420775c917221738815088c4c1b89629cf36ae55e97266dd2266dd2262d36633336632de02ee315e7d7e22ee315e79707672c8e79e56f451a486c49b7a5faaa4044425cd5a98c521aad4e6bf361b73f321e6b9240c51e720431050264e925e8c05183f3893da4cca997c71d23af381666d1568f66d19674e97cb78c87ccd12f34abef5296358937b917bcfe50681e1f28804a489934bfa7afdb09abc193389e242105d8ab24985eba8e9c24b44f125ae43147b8537c80cc715d87b63e47b994bd68cef5156d9d441e34e73a88f197b3b75a99dc59e20b60949c4abfa09c58a3c8d65712f4d1794f5fcfcdbaee7dc95d88c1165cef09ebb636242921722b82a486e8c3381491bd0477166de53c9df822e88bd8b7abbf08faaea02d539f37d5a528c55aa9b8441354d711c80aa5f4627e4a2f3f6d5c7cd064ad041e1c3a3c3f71dcc32390d5b7cb0fc84ac8b7d3309c4e670ba1d376e1258be95e2fbcbc3cf37206a6c9e3b1851f3b0782735249f00499037d3ae7ba4ebe87c7204d030719e5d57bda0bd28f12511ee451e28872202b946314cebd83fdeb567561714cb9970a73e8e1aeebdc33d9b00105f4c9273005af334308c885720764f5284f759d7ba76f8211e0ce38e38c336f128568fc040a01b98b469461e57282bd4114b0e70ba69042d94fa184bc07fa60d143614f851344c13e76947daf7eb25b2ac719a71cc8ea33e893123dfba1c2ce730e53f74ba14214b0a70a7f544eb0dbc87e720f047d4edfe974ca620b3f6607b2fa93f7f419292f673c80fdc8faeb3a2f6765d8fe2d98c50af6b828c7e129bcc13e6fb0285df8288ff8fb50e1fc8cf27ceab06c56179e18a8044dd65641eb14d108000000000315002028140a0845e270381c1a527569ee14000c769048785e3894c6b324c7511432c800438801801002848c8c10cda80601df3be325309f2ddb6b88bdeec01b3f60ea06ed7a67a3386ef3f2d6d30ef7388aade56c37d19340d1517dde2d80b079439b0526b0363893fb1e47e6a932b47b4d86c4d26207b6bbd7541c00a0df5e9100734af8eb504acfeca5354eb1ad2caf0650e26e17e2d7171d53e37fe85fe86ba1770b7a24945e80a8dcfba7e00220ddcd8a0a9ca6c2be87527b666fab227fc2fa2138188da6739c8efa5531ab63ec16b66372727734c01e8e780fd6d15c15849ec650622400b2d22d8824d26eedc0f3520700512ba6bb88cdc773df75c8a7ac0b841720f4fbad74dce075690d0e7dd50f23b44d73a87a10ba2ed82c1902a5b5458435ba94cda6fe151a413427a418949662d6e9c67b115c1a11a19e67e50713ba565a1f12b8bc94c9eaf44e058742246e077392f0c0cb0c40810206eed355388d03a97949dbaddf6d62e52545e850eb66d96deaf6fb3b44346a660a70c6ea0b55295aef24007ee0c15ff330995979372e327b7b9e39ecb5d636702d6bb6d236598b80b935bf02d6759c3deaa271ee260bb25e10f7dcbdc02ccf87f4a41a942f56c187c4f7912a996e6023f56e0b9554bff9f6bf4a784390e8609a94622ad75014240eb07b3983d302c27f840afc3c32193c52418e128afd6391e8bb2f3fa5ae4ca340b7ab6f03c7f0797614d21021308e59a2a0e47b6a8b84ef12c081483020e15074ae79d77bd0f64d343d7ea2a4d7f48618252863f145b4569097432d05b6d91ae3cc0ee6cf513f7c6fe0112ce707730fd2904f4127019d3e3d33daa48c1e8ebbf89b4f977d322994e15a80426874bb845a8b849ee08efee1f01de7fcec3e2cc9cdfd1076225528ee67b41d6b1bfb934ef123eb8a841888c8112a1c5fc7d8e56fc92a3de8196bc7fa74c288ccb28fe3d72290ba363209810ea54726c5970f2b1417f13a44f2d574c00e402641cd7086f11bc309ab1ef067fcb1a43dfc72f6f79e065746f2731c05a14189c17163b676416be30cee8b611cdc07449dd4723551187370d568e75700661e0d5b5fc7df22b3a6a59e73402ca5dbd6476d9676a381e98117f882efba5b98a45478df10b5f246bac02505e0c34d0402a56154ee8309c03f399220fb237565d41144baa2d88753f4bae61e9ac68cc6742a82bff292a70516003e24c7e1910c83f34132f34b741ee53780a7e3acfe09428a6fb4cf589bf94f2fa1139ceead14399dbce7724a8a58b4849020610eabdc4600d45c84df036b063f4530622c64b425bd110b3d231490b09174c2d5d3975cbba52378764216ec0b301d9d4d3c8bd35bc212d29a6dc03d3316519fc1b8b040eecc72cdffd0b854b8f5df28c19e697e80f84a9ee0ee94be93b6e00d530f1e3b5a64618913e42da29fc10e6404d3cf81485c752085fceddf8f122b083286bdf54d0cc0bb313a27c2405384ef8a10079a5e2950e39cc65f505376dc90f885106260e57d52882ec7ffae0a2288678e4c1134e5d9edf06f7036b016e0bcf4464044d16ef9d6a022d886d900638ec97140e427a8daadc4df42809cdadcc527abd8f87418ad3142cb5b8b4e7859f60d683ba9eeddc7f55c980c334a89234281fcae51b3aa1878c526e9745830bed1edc123e6ed3d920040c21dd77ae8f9459908c0d38b29534e7562d4e5ca24b591dd7242eb495e5da66ee801636ea5131aa7fc69488e4dedfd8d5b1d83da85040469d2333aa360c0d5fd6d98233369e723a617aa126a1127c9e8a850581a5c180b7ee091be08992753fa374018d680f22186b25d7c365225f090088a954c319b3020782840cd60d2fb4bf0004dc128aba4e3d4c04b5b1c904ca9a44e295afa1a0ec5562557002cfd17389b004c81db02c1428dad809f31db05a88f384c507758d971154d80ad7f0fb4147265d182b279f9b7f98de91a540f14b4994e48a7652d3ad79e573ce94fe8e5b371fb6545a7127c976a8e193b1b0b7d26deccd6b142c35145eb86c3b61c385858d604a3369b6085f503e31c3f1623f39d428cf11eec941baebf0c923e1382fa8c4f6df2909360c1ceacc0a289c1951f17bd3fdb35e19f19bb722fa1be946e97f3f2d0311c0f960f18b29fc7216f4cb4ed89c02f9002fa6b202e193efd298d974713470808c8c9eb05985f62800730163493b60a9daa3fc1a67699ac1aa0aec75636bd9c18794893ea9640ef21545846d92bb5b1b3cf5462b23eeba5bf2bac049c1161460cf58ea53ae2ea79b8e86034f561a86c36ea4588f96d798c183980c174bfa936bd6a2038600c651bfc9f902e3de45889f49445f2529688e116c4e26a6e6a66ed62cb1edaeaf61433c13f0fb11a626f3c562f67cc35e4040c37a538280013e92f4a617ac3819bb0b8024d4d4c19447641895242a07b1a1075c1bda72ef8d2bea2d69d5a18da0e254f0de8ed82046f1675261bc9411d4f8142ea54cfb5f64feaebe53fde8315491f680c3c9f6cf3a1f042cf96846bbb5335fa031292545bd864e169f61026a0bbe7e78a3a575ffe0fe1cbc8d0ffe4f4bbd51f1e2429406f9f2b32e96f0e43e6dcd207c95fa2f6e63f67b7f812d10a1082884d36d4e1b1cd4158fdd8cd30cfab915b6cb685d0fbc2c209cbb4d6cf09a349e1237eac86bbee77c0b10fba58ecd9769fbb2e21e727fc7791bc041ed27ccc526f31a79ca86871259c70d75543acbff10a29ed4e7b9787dd8c0236b617b3635e6120c1b33b43388af54c3119745e3379c88debb575463c177750b8f1af6245b96625a745c814d179cceba69b443f3a0915fc2929db6702c1eb2f55f71ca3f5a0c362173dd20b293ae26ba0b6846d3aa2809041136c8090667c84dabf8d3baf3fcebd7c5f99e1b74c06a4900076321bf1b12ccceff5578ae9b65dbe8d3b6f054f9d1e9c70a76eca7b98dc7e191a1ec46e04b9cc797c2747914202a7c346fa8a70e5d3d79e10d9f2d8c4a5cb6a2c341779c4ce911d23d12cb87db2017924672d93aef2593c239e46468aed992fd0f4d53c6f4d65c678a1b1eaf4849b0dc7b5659df364a5b9e0ba56686d8a82a351fe1b258e55bf5fa6c14cdac166f06acdb29f0b537d2b8c7643bc6b72260026717d68b45f78bf50b1b071cc5961e1948cb9e24473a36d2466b3df0424daac9e603caa8a421a12b3a3112b0f4b7be6ce50ec705ad66a53e29adf9717439430d2881555ce921ad37e12fc2e478412f12f5929dbde2d58b9a2d1bbce59b1f2a0c7c992741508caf71872750551963aacb4623272d213f67f35862289ecd4088f29e89536a8344de05c45a0be4d7c9c7814d27007728fb99897b26ffe320b134a8d6b9077b8510b16faa3eb94e6bbcb011e270414bf6325223eeb53c76951ec635d79acf124b22c1a026eaf1161b17db0932518a099b1c2d1301f17d59d9d5a1dee2fd6cd81be224bec2220cefdf09f7a2c0103d48363b1d2438cb2d9d9d321032ff47401a6e55eea6044386964007208fc83edbfbc39591bec349bce40b33e921277d64882729433ad22de4f63fb9fe4f237a439fb429a213785c7fb7a0487e0db86819246b6eb20902e5674b8fa0c0a2cb0cd21ab10ae06de6d85bf484ba85c2a78b797990180b3ebc3915db648711cc2c961ca982804438eb6a02165a461e4fb8c05498a4168185dd1e3a0a6854858b9e46c2bed8829afb86937631b57b4865af3c4d8d9f018ef2718c8efa4f51d6b390337b62071d3b9b31056e0a7af587a07455875dc935260618971f67229bb57728b33ef2c79e3fcf5c7db84ba84e4aa169d41635ebc7f672ae2e26eb0f391440510eaf086b955c7551ce3559d2766b2cee0d84669aae31e6cdeddc91796b646bba31807b5c952201a029339d9c4a71b105ebe8026c9069641affc9cbed54bc5f4b952d0fe4578763653378e243d62111e40af0ae24c195d388d0d4041920c55a5da2d666333b0cdf5a29674239954dd60928133338a3099dab704e5b6347268700ed70d14f76652d319872e92b0d7e6856e2e7d5b137ba0a7486c28bd569327b1d42b83b5012f322f57092a5f18b294877f63f4d6f43bd0db98cf84e6ee31bc06e0691f562d61afaa857f2e653a95ebb471d906dd5557e2e36f66d47ad010f8304321e5f6efd38bfa9c4a264444139851fab2d96eac3e491604122c6aa87525c69be39b6bfef6f6beca7bef1df2825277e492317cd37c8ed551c30038c150a1a56602b575248b2f7afac640327d89d5a980a0508eb595822e6f178279c7775af535309433e5b33eac34b839a20c59654d6cc25cb9506204fdbeb97a7a0fe51d9209c58dd3ab293dece781290f94c9038cb746d8109f4bee8c1df1ee1dd492052260e79bcdf9dd235ea77e7415abbed39263f968cd37f42ba27f37c5c3631341d2d6da96c9d57a799d5753490198ccd25006c916861488cc224c30e4763aafe4aa7a6ccddfbed33ed6da5c751015905fab39205d6ba0ddffedd3f6f798503c4c1aecff22ea7f0c556c1a9d8195cdac829d0599e76ffc7532a2fd3bca2a432f74a5a0a149b8cab4bf1e4b1a150b1418582af9729558fe11491643660e38f34093e35b1d9bcf73a6ff0488b31764581627480dfa2f2ba60dd30218d44b71ad14ad4ab120750276904f9c58d0a8439d9951e700b13b70b09959c5b0b322cf5e75ec57909387eb8b34d002cf988f4164ce62d3a48b1a3fba01c8626c040bbae1a99044713d3254f2715f344690cd35208bc6f34ce41f788d50af75157de6c115fd51b69dda8b328405da6eee5c039503bd9a26d16d530dbe49af6e324a6a93fc0feb281e0711856b726481555c4c6b7af833ebc9ccda73c27319c0e5daf78e4d302c456701e455c55d1cd119efc14aedb1d897d571c0ea6e7163afb6250afdd248546a89932e50db099ad31c6d84ef7b4eb9606399fc4c3015dbe53b03bd1af3aa15c613bc0bd48d94297a70a5d8ce161f62a7d861ee74b24600d3659c82464259f01a34e8cbde217380954c846400ad4657de84c992fea77d8bfe37185824c634eb5761a8d9a02a389c3c54e23aa4ea3702c64107ac7d8e5cb08ec8543a9678d6b12dbdb1587f478188b8df271759c9465edf41e58c2923a837a5d93982f488808ce0430fcd869fc884a970d80ba86be27656103f0560a5dfc845343a7f1f7c0b741ca5197a806d3f164f003b29cb93061fa1258b092ccfb1c4a9c3d78c4e71dccb7b45745f40c9757e05ae305a4c93b6e1d6e3e83337aaf909e4b2255191a0bc0df749c272ea6db1262353c2f6b8101b80069d1f29efbc7b8c09ede91ba3fa524bbdb2d738df34cd0e8e600c7b8c7ad027e2ee6367e50a966ade59eb74caad08b932b7c16ef67dfbca7e20d7cf73109bc864ad57b30367be29542c012ea0a60c58b732e90b63a13549f6bd70fbf22e0bf1b16819f925b917530fcf67f75ad6b1ee08cd915aacb46cb63b8e4b12ff53aec455a9ac7b2b2fd179b022faa7aedd4a3da2849ac09a30592f1142e1a2e8ac0cd5e8a2fa7a7ad7546a980efdd75a5c589894fa79949e0db34445c3146adfd664c6fc4cbc44224b5e4444578459d96ee7b08b1889dee08f359635c9e291a416d8f7b2a7b95eaa5c85a848948a82bc04550e722e4c7a144b4ae715d11a7edeabbf5cdf684c0fe71c1327fe003e01f36239e0b02ffaec00480034fbae6aea0fa49e46f8550f4c78d1fd9cf1576944e7362adb66fdf787894acb07874ad8c4005ff4bb7b39263223db5b641a25c86ab04c677b0435950b7a32100d48d71d85d33e550e66b9a555d8c682cb881d489e5077fab283e15090aa93187d00f906fb8c4f7fdd5e07c4faff758368980671f7cd03eb21abe811aaa577e782e22b2ec2d132200972a0be1ac9254e21166ad088f25a64193dc1333707430f5dd6fa3680cf9d85f0339a7e732f5a67be103ceebe156b7a800efb512025f90b3139283cdae3c1ae78bb40c1e04a91f1655207907b20c94bccf602d5a214b7ee5b085e4adce248015b131604d5c1381b9fe3a447bbada385bd7bf82e1eb7ae5449f9e9a51f9df9e41adb04ed6dbff65ba42dcba6cbbe9c67895ba9801705ef2526698ee6791618e67e8ed6a0927c1f691cd409f4b08aff403a4f16b3ba5136ba21b8e1771a8c465fe0c8a9e884a59bc4d984735f6924e2e1d83ef89afbd8e16f6da9fee0c75effb22d9c8611fa72ab15c75673e998424c7aeb400556737bac2e49e4bc38ef88f64755434c24bf91c13cecf2dbb97e146c702bb8f0afebb7dcf586af424ed99f47e1d9dc07e62822332a81778543d907ed420831690d9abe548190ae64f21237be22805294807fc0d1d3dd8b988e854e90994e2ea7a1712d8e98a0886a02481e0345be788c2a5e594a8bb1e51345ba987609ade10b3b3ef983ccba090d2799ef15116b6346bf46e1e2c7c4460422baee8e1b39056120214e22d60b8021a540e80e8e06668aaa3e5af351679595ef6a88688245c575473703ecd10dc88c7802526f9f18b79452f86e32b0268f1d63a5975fd5c0acb3cd8dc41bd056a3d3479c26f520c1eb0b473eb4c825a30870e7cc4e74adb57e65665045b14f48e2cf0cd6681906e98193f669291396be05032799561441b9702b0b6702bfe558b1db8ff98bca0d9b3524b98d5a852dc193fe747119029beffde7a6abd91324696381ad0211d6fc6efcfb97de87b078eead85f6f8acde6569ce298290f169d1b919090d5ca6a3aead2818c7f1b2d0f883ea073c8763b66247d78c63206c0492a6a2800458342af9164cb26efd2e321c6d1d4143a757a32ed9c982296769b1722ed3de03a2602273755cb3e2259f1dbe4dc67378adea7c616520633f24506f4e584bb5fbcc0304777edaec376c17c065029f14cb1862e890058210edaa1c884af2e54bb81a94d4efc0d109271481d268befb186781aef7cd0c3b67dfebacf84a5d3319dd7bdb2cdbb244d7f8ef5100a9b4ca53327a6f9b930577a5966c0de66e21b33274c1864ed528a8f4370bb0da66d9b59d85f0be243214d103031173b5f6b5e586364297d0b494daa5d2421580e0e2879a24171a7de0c5e090d07b742fedf4587f87dda53347e5415ae32fe49489195e4049c4c89fc8c7d2a35b57f0b37f529bf5e293c757265ae26182100c50c50556a9532047ac370e8f5b3611151a64e41d31790df84411d28dc9a046c8c862e3ac185c7d3edbe6e9ae704028c48e3798ca5bf5bd8a448462b5b243e36cdd2315a9f9a62d66831e8ade9c21d130a7410fbe69570de051317b3a3180ddda8fe608ee41ff7762fcb9138d1ac88e29829a7a44099bb2fafa0dcbcf6c71e53a2df22f364aef4d7c1e5dc7fb512e8ca782103a3742980bbf14293ad37bb7b08767a46d7a9fc5d817a3ebf537976af231860033a10234f401e4cf7c566114b19c878cf27e5931076b1f0e315dcbb69d3b2ec19890ebc030d209df229280cada684f5823d89df732286658aeab1507621fe7e9820ce46a9d851e52e12540b368e1a7d76b5b3ca893441e6d750a521740f56b39041cc4f4ac8996f72e474c91e434cda6874befcde3415e2ac60146961f00746424f5f4c78c576981fe2e70aee9273f10fca225b734a8d7cac22451be9197f309dda0157ae82de0d71302851523b4602cf14a7f3b4b38c8ee3e36a546e08af3edbf390e6410ce1ed30cc7d431e32d4aabb369eacb5414514bb5fe9235c0fe0c829d21b35a9f610f296bfb5563128601cb3ee089269bce695bf006f6b5fe15c2559f61560982cede07213720f0c7282152be05927171e1cfc5bd44ee84552229f175ede527ab1102709205b8514fa71cec19b0aaabf7672d0536157f1a51c355cfaff079d09903088c2160d626667f66284bc2e71a5236a9f21881f757d833a99b2f1ed2bca3610832fb3194401ad53cbf5762c602f65bfddd637748557a8ed7a834896a4a3049898a70c1eb0cfcd9e3e1e0231a0c1f7448b3530dd94f2e5ce4f5d21b3dc9148ebff349257b11d4044a2ee64ad6140ad485a5309daf0132bc3a2cd608749f60cfd19001e5e6a73f1dd76532c063ba68be7e978442b6ecb9e1b779a56a00a90943fcbb6c6e80941f7f03a042cf740da96508ec1fddc22349b94b461e700c571e672c036b0d801314b52106e6882c0155d1bff139645a3f6e0e9e1b767d6762bf17638ae85ad98c49396a09048313e216aac00b91e45ae0d33c83e081e335b9c5b9c7330c4b4efafc75a727ef9510b8773c8d4836e11e11a2a760bebaff02d8b9723724fee45b7d2a9913500c1fa93751df1272e157eaa6aae89ec8a30ee4af752ef86c4bdae7d98a3e6e9d8ed51ad65e08ad0f785fd0933177d7b0a5e53f4b393a70206f8ccc96a1005371664cea8e559404d06d8201fea2267a529794915fe24510c85b5d64178d7bebabc4abb0f16db72127f4d607faa78107edf71e4b4758e9ad82797480af8a5cb45eb67bc8833f5e7723f05a897ac1209ceb7ade9aafd15782178e92ae271325cc0495de988aeff64fdcd568b46849485bdaf4605c68f73006a5174197d55b9f5618d02015180aed7642c6f4d30a71ceb89dc8b41597b9c1ac3f33d2bb13fdce145336b4b0c10fc3de45f19b18bac4634725e357433bed5f68aff3b287d4d7553b5f07addcd22c2c839f1eb4f71108824340430565e45476143a78e3b39e2d34c53c9d76591381fb4304c4d2a527ba470b0d4c20e3d44eea55d54d68bca17fce883db96f71acb69e1e93d5843ec6b837cf7d4299ae899efa7316bb132767a0a613fd7cc585e5fb8813b109e2025cb11d3db3b25abd50425dcb0ac385fc5d31f64405c73dbf5782682710fd6fedffb8a61eb9d1775f7a2c8cf4450937e6a64c8e8f94eabc09838bb32d0e119a041ac73558122859bd6f93f38ea0f6f7e7b6a977ade1b1c164ef1e846b93b3f2b2e6a7be2ff23aaed8385a6a59c280c39639b9069acda09c2e25c94fd4f4c7632d785abf7725cc35badceb8c60894a78822bcc1a64aa2f7659d50d26199c10c9e9d2a57630908491b09e7307a33c3e8d41c5adf2cb086bba29549675d30ee6f08fe842b3823d3acfddb350e2a09557f2d22f91af1751f156a8741003d1ce630f19dfd047a7cc39a67375cf48234c2e024956b62c91c69e4d47ed310f1cad423322a21ce69eded095022cf8adc9248ad42cf6994f954660a4a37819bbf8fe3810acf09b9d993b4baf82ff51963f9e15104727aaed79b184f048497fde70c5b2ae0bcbaec26281a5b7c9d78fb34a937086a38e21d34eedc368936a3468ff421fd121d925ae1a4048ecacf9cf43409c5df5b52811ee3356ae7e7abbca7572f8f8be253b3b13f6c501e6e7763b69db7645a3505d0c08756696f4b8f43d766abadbca7c4742b86307469dc98229c0dd52bb8deba985975133d1a2661746c51975c6fb0303c7e23e86f09f9609272803410249817f3b93e9a1992e7c982d2180ee4308e2690f46bde01d2c1560388b1d073d987e384b96e64697cf70cc1535c24862cb857c9a39881f5fc06050baabe5ef716353b5a9dc8aef41c2c36b1cd44559e206eed251cb5164b825059ac02b47a39f0669eca25b01bbd57511692ddc47cee855f01ec0912325f30f94a8b35cc54fb0a97b516931c566750578e9da14be546e8b213e601b0dfd6ca3a06383430c3c020f10f2c3811bfd42b26f532f5997de311f60cad336b48f744e70a4058476f135f613b6e827b65518860274361cd28fe01be5195406a3a5e52a459e54c0668de5cbf1ad981300ef9bd2a62c953e5d4d46bfbd942ee76ef5e26d93a71ff7c1771c45c294bc90dd863939e15d450476a38c75b346c515de280314251feafcf095a59f37baa284af6cee31f74ea653c7faed698aa4e78e21a010481fe96fd1b0eb4844e84f6015bbae8862f4c021314ec9b5cb58b5ece97a893b52aabc2014fe72e3c8ea4e901033a18e5e0c85463221e8487f8dba61026621f6e4fcbf2c78bbefc8b4c8b83415fc26ae32b98b9c361f8c68977221c8ddaf04f0c50c980c81f9933f979b6e1b62c0af14b576ac69dcbb7cf186faec089bea7dbf45d9ae837bfe1c29de92bc53b936e99840e67030a92b0b778d414e876bf38ca39cb7748e2a659f4e6d8be8e29b3731f04788ae71b04d7bc209adf821b95e5099738b851c05c43b5c48f0e83e92693d0ed75edeab6a87cccc52ae80ed208143acf4189fcc36c97a248a26b4ef4e2e0d137c1aa90e3f8586e1a085a130b842396c508bc3c5e8ce9e3c876b8bc93bad6dd9960761c907d52edb0305b75bdba20ed73ec77ef51fca03255308087e7b368231921ff0331445bcd006e6206826858ef859ee80b93cf9590c940e49d9f5965047bd90b60c0117fe9bcc26e11070c62685452305a8c09642aea72e6313b4f416b0d56f4b39e0388114fa7785eccb1b5a3225b18ce58bed210accf6d9358bb70934b3724ea0fe9f3d6a8171f660e2e565e1909c09e0284e803f7d617822aa2a83b53870e246d5d46b36bf2e7dae595d90c49a33355bfea08d510211bfbf92de9ad5c6fc910d014fa19be25009d8e76e24055ad748be95175050e411ec781a56f4cf5a7632c554408de2b90851523ea29ef2b80840e9716bb66595a2262735b2295031fbccffe83d64109ca18082fb0545c7c4947d1e3753feaa57a22a3306f30701a6aedd68599f74e2870429851dfaf4f4b74455be5f732cd56ee417d2c225eb1ba35ca09b8d054ba4baad8b17e88b8c0bdda0421a27498ff83a9988b4b3f8302cf1b29c18ec99da854002c58b33f1625c173c01af3cc5841ba70aad376e73b364afd3dad99e9bc9b0b67084d9a6630229290ca293a1f98b373483aeaeef86f1427dea284d85cd28e91c05fcfa66c16fcfbf67e0f7956dbe86bc87376e61ddc6b2f0a12d493718d2793d79113dc935107e624706c3ee0e3d4c660c3ea6b05d89ff6bfa61e3fc6c704eebda2752cd343b1aa4ac926768c755ce9f40f34ae37c141ba546048b5b5e6aaaea8781db0cab118f5fa237287bdd55e23b76e2d4df56df0403a28c58e51718c7c9953231b944be72eb34ab2b4d30731990d783db7163c00262a5a5b9db928f7f0e08565085b46b35b556e36697b235a9bb2e3f568c22041451c94f2f908bc96ed35cccb7819cdd3c3cb0ccbd7e558fc111c2eb57142c721ffbe7a92fb36253b2ad2719ac4099112ad2fc266cf6d48ea799ada895e8873ccd848d845e285ea53518c2b17d8718d6eda389ee76b2db59b61fd9eb1817c2ed625851a8d87ee981029693bf5122fa252ecba842227e7bd568da1eb2cf4a8968d9b8f29bdc02173a710fbde6c1c66cbfb948113ac82193cb6d9c9f94f07acb703c1f999ae1b969327d0f21b18f8f96f208dc21abc6095acd0bd6a5fdc60d56a2211cf1037875f5a7f77777f3b675fd46b5b29ab5756f0682d49dd3339f435029dee4a687ed49e7829563e16297b2984aae65cad9c45663ab7106c6c8d9777dd863754208a2e0cba85efe82767d2107279cbd31de87ce015e44ede3b0ba56d9127d274a3f7ce02000ef1af1bfd188296154545041c5d756900837f4760648a92a14dfacff42d24240f22111e1a1cbdc0777c30fb46595ea8fb20d024a65d39fe6cafd0895137f3b1343d915a1ddc3ff5b87fef601549c32f77406934f76e99a27d445f7badec1c5029082a40cbab3986128a4d191869a706737b41eb1610b5b6f88d3d9b962c39c44d5d741007a170c14226f6d9a41c4078e6fa4d563a4fd274d0a97939223f2d1c42c1f0be9f9953c67c7e840c0b5856232ff3eb6e07ede45e4121e3b6f756b68d43c91d5c74b17287f38faa0193765bcdb5aa4e314b1bfc0484b968060b056cfc7bf97d92d5c25678f107e087349f3cab501102ccf5449adee72ac8ee30892ba8caac5d1f5ab1253db608ffd1c3402c389a50d2ef768f1bc0b3e19ac2f337798ff4a679dca0b294128cdd97854dce1c0a82ac5e7ac176afce1fafea756ed31e4d014ac6766c7137c34def9751f50deb6e3dc433854ff6c522bae0e6f2bab8c5661cd7ab68a4b122772d7ed71bda2f35c0e87f99ea4d6ececbf615fa06a11ad07a2defc0e5dd4d17ee42944254804e26ecee3f5cb4d5adf218ce29173b01a4b8e75878b80e9b37eef82a8a6240fcc32e9f816cb36037e55ccdf07729d29df01f0446f1343554e023f3e692e079ec7d13b92650d5fd2920b64919f304130b3f6fcba250e33fb81451f3d0cd4d1e1b5f014591d1c8095a0a10d61a97451ef3bb2d19e03f97d28794522daa6dd51618995737796e259f3c217bcfa3d1566f518e1ecd8881222ba9de0251c1116c5405170a53ac920d560a3672522b8bf343e74829db1ff8401b835c945919e572c68f8776c44ba022eb1dc7fdf8129a1315051a2cd878b4075db233fb8507c01672753bdb511d60eaedb94067ea0ca5acf35887580f09d5bd0cfd5e3be6e46a6be29ba8d0ca3558d6ff469ae5a6c84f4da688ee1eed3429faf51578483cca6c40d86dc663b40aa649fb25fa817261ecaaeedaccdb00ebacb3cb16f7491590caed799e9a8c43d2ea68b31053f2e9c3f9ee4331d4aa80223e75fad11e8aaad4df9fc794765b908b888066eb0d858dd6c42d5f9bb142fb6fc6fe522ef921ed758269eff6d33e0be8f588a18e0b8d913d59398917b215dd390a3c3f1858bd180a5a491bf24a8f996d45d35ea5b852868fa2e78303fe811a7b7d2d167ab89388d805c424fc2171df0fa86e29e30187281b246dfa7b70d7eebefa7615c5a9ec70e235fab0c47f906f5126dec153ad230e3e69df7ba1f79e02897fd9d06fdeadd37554f0dd75bcd65cd7da1926b1c2b9535c1d550d8e6b40a62f44a1defb90e65f71376ef4c359400e70c51f08383110ea46af874ad953bba3c86199b366cc72fcdc3c6c2ab8e9ea7fc0bc1789127da7b351e2ad5a4bc6cf33fe33e4fe7cfdd7d58e530aa201775f8bb25ae31317d9b875ed109f8f2bb825103434623612b4a420e4089364e4c76fc5553c630d5c28779fe97cbc2b5dc0b29511b467a9e3143bfcdd4fb4c2810526dd7aa4a5fbe1b7698f5ee88cc64d94a83bcfb97f7de6a9f525c0972baa0cd4d072532108d3c9b61a8f587de748cea496ae15022ee771376cf0fb0b2d4347a7048aa7ec4f3ab7c9405f89c9d62556d76dc1a7300096ffbcb1bcca3c83d222644cd43e1514857561dabaa5fb8e613200c8d2c660aca6b2fd5f1a8e005d2a6bfe7d2be969f32ddbe748d8925b1f9acdb6c956f954f33794f075eca426149b0a3b0f783f66daeb3568a2aa52de81d8a824503870491f897e1c12ec1e29c6dc2d7f6ae85a68001a8a4cc48085fa0d06e6305530cc78198e926a70199d40392d48a3ba27cd82a563c2cdc0ea6c048a8d455f8d24f13706e78191851252a4b1db797b9971dcecbfdf9b29fe078471d46a90fd21ae9bb9cb9f3acaaac14b033bbb3c7ae5ddebeb4a8e3ab82d62717b80e44d1eb24914527bc1f0e0086dc556d77f2a4fb3e73b95126125784988b4b9c18aa5f00a809c374405fd0bb30a10531e24cb69142136aa7570a557e7817665a99cf6ad47069e058c340b1db3e2c0edd568ca22c96798ca5e62ba6aef15619c67e2fbf1cc506084bb860fa6eca0a2289b19aca3affdb67a6f82826f7cf4b4e3e30560ff5e0ab0c71389c982e7f1f3a4f93762b88ac4a3a7b7023cb51fefbb158e30d5cdb436dfef23af34f5116641abd5600216444936d87e2f9064020d105f2fa9552ac8885d43126b4fb2a13550bdc4433d73fa177c20dd1dce00e9ac1bcbfe93908fbb98a462ca973e810d46f5e58ec4d164d3aa6d2759ce8db39ceb4692a16b01a59ddb86dfe361d8245e81e96ff76e1911d1ff9969bb506e243f0f7956269ce5bd4c1470e928f9ebe6bb871ca3ab3bb1d220cc33ac68ec6270d948100469ceaa49dcfbaf91f5989c6693468c93db2c9ead0239a392d6b5e217d28a2f0986603add534cff0f898ae051df5d93ed017d66043ac582d191e9f7e268a05f53fc4dea1c20144040875b27a9707f7f0cacdc20c1e7539855c19780a2ce071b15a29c986dd61464cf5541284d28372e8554f3a0c90b912fa277864728eb451fd0625174bed4281060912f35d25daef09b012f779c050caac44dee0a137fcab5b2b4101799116c26ae02d323ee2b14646e738866667d8e7de18bd79416dd42b5c1b7278755b80441addcc0a5ec9b54bf96d8a25c82ee3b71997a0baccef383e36781081ccc2c3c90de9b7960a30668cac4f2cac14db893c3bbf9557b269991bb94800be25c6e69e01f0e3bf51f8a86a4775445368d565b4a98459ae791dc6c8289aba1e8cfc9b4ea0110b4be1d9d86da35765368d55b2038277d3657b4b7e575ee359c90d45604177c5b6907f3c9c8883bb62d8dab593596e798b019cbed6f00d74377cd050eded4665cc8de0b450b6b8d9514edc7556ab32936053e1b3efb838470dc632d69983f30b0691e7efd10e97e846577137c2299b7fb1cfa82002a900093cbfaeef0de39de5f1de479828c2f927d85599c2d5ffb8fbe5ec022a41a78873444ef149e3f14b24a16f099e0125109f5079a4d657aeea48d7d30e88e125208e6b98f05aa763be6a97b74650dfee7531f9df2fd2845f2be62d8f21f6dcd5a5a9f70a889e634fa363e83ccafa88a9543d1cfb9b859e3d61bfca9e5f69772b10ade75e7f23391c06b33270b79a7fba140b3df816e9307a8d7affce8b165d1d26ddf66e3b5759a9456b1af73991c9e4b4473987b797b5f561fce7ee6cd7d57a5ebf5761732ac9a5a5d76c3be2185e428d585d6654aa583ecc5e3f4f5ac3f07b6679d356b7f36a4c57aba10514660031a66c4b574caa82a09d20f300b9624a06a06e3565f1121ab87b3fedbd932d160e198b703ef78e7a59a5039db2b4c4312fde7c872c8ac65c334bc69df266bac72ccabed71775555125ffa2a81d70b6524dee2d94b325df8f0e5dbdb672f7c584b2c624285ce9120b1e50eb1c19748336c3134d926d97bcafe912eaa2794969c4ad0172f404e646ca60e55d6dd3a340fdcd8b61c8d2ce0e32d456fe729d71b72f91561e909bc65a7d2c5654c54b64dcbc281c5c7c61da28467f4f892f4aacc60f767435074ae20495bdd805f2fdeaa89d4ae872b1f304bb9ac378be545d9cb94cddd82928c28cd61d3db18e4762a4f4261eb7002ce18093c5c37b686d7bc790cf91c36cf620a9287d56a4de95b37d6f2dce179c975400baca73278bb1e5e60db18d3dd709e385145191a970382e2e76995da0780057af1b02fce4e1b9fd41b54a5181ce6d33319d215db13b2af1697d201acff258299a238876bf923308aceb167f637347cd3b6ba9a7c933ff7b91738cc8ad12041f97d6917fc6ea8c4660bbc67576866751d033bc680c431a9207ceb62b51044246eeacdb3af284ef67433c23ab6ad6b3d4bba5d524b2f5733857292b433ce9338e56728a027bc03b59b8e7ecfd864eaec11fd03a6d8d53a40c71b38b210e24d8214f74638d55d3073fc822c30e6e43f72c1abcb6cbc27dc9e7f019f016f6e01c64b6911a653630058698e090f0a6a3d6d02f5c44830ec52466f624bde7dff260fe81a9755b32579bcb54260afb99f2e978a1ece5cecb5bbd7278d8ee3f4e0333bb1d5188e8ec431ccced0166e879a5c302e6ed7a21a61ded90a0cce0cc152e379edbfa457face0ebe2de80fe5413aa363ee019abdd7ec4054e5582655400c15864dbeaa08457f09a0cf45d9cb75325d54095d2d05d1daa26957ca35245f7f74f097d849d18f026427d2663844ba35544bb75330fe67306027c9b68c403e40ce1c07d65b606eb3d0059e8cbf344a48728cd30bdd791200fc7018a7bfcb56d8eec8b5bdeead4db6af2517efe07e8903bbc98a22c49213496bb91cfd384c426da6831c572e0ec8b123c4f4476e48d0f1a002d9e27e289bf424fee69188e382eecf5a08c8987b760baee3cee9d6455b5742b174b9d7f23cdfa98add39f131bbc5782c2d0fa5aaaf1c9b85f0b4dca14f66f94bd841bf7bc95f61e30b8c6b884eb2ee9e7968b957c543c72451e3022326a3e1f564a6e51f508aff6f91191c9f6511a0b28f06198401cf5efc6f528b76c7b27522ef76404954295a90c2c8b47ff74a840ac0ea3cf7d406439d77773945cfabef774e352814241a7d61e889a4c965767e0f46dfa4311311543c3775fad0d8ec2a07e2e58f7ac08e21ae833340d2dbce34a5fed5a8876b02d4715d5ac8214dd7cae940be08c337f044fe4eaa2b1992323f20fff13a6e35ce1d812ac98b2a5e01f15168718cba4159d21f3c3c0a8a6fedea30c77d05307266173d79568db8115fc688effeacbc9efcd7a4e8e11ac0b0f7a479a978c8ee90c374d06a2496ee50d076c105940ffd74dc455ca94d298cae3753580590cfc5854f004b889fb6829a791be85b11b8630c82d1d0f7ba829e980e246ba69dde0bfbdb751a642708b603766d5bff72b2b6a0180977ac194446303606fba0f6c064baff278f83f837cc3d602704d5d172969095a04bddf4c3ceb573c505e47af1427ad1f39fbcc5f9990650d60c9deb631402085653d9160eb0945a7b2249d83aea4049aa616a36cbbf09ced1352b72140bdf0e71fc53de9656972fe9b732b11559fa5ff7e37ce6177fd1cba72304e7de6817e26ead3b2ea48389327f153cd77d7e139344a9198e1537e2e453629cdfc41a32a1ebd81ed511d9981c2bb48192b0e77c8ce19870c00e213c563c8ef53b21489991c4b42aca539c67bb80f153b354c1a1af6ae80bb09bdf1049a78bbcf17735fe08dd1c00eca3a808e166df9657f53999de3fb947166ffd753f100791b5d142011641e6f3effd1e6d2b26987384d5f119a43ed85e692185dd35260b8d2cec967b352e5c9db172ea11df06becb3f8f638ea83bd1b8518802636393b3e555b6778dc770ba6435c8df84b288f7f8b37813b230334c6ff2439868af05bd341ae63db66558359a90e22c90846f9c5e3bdd03217cbcace37bc353f633e245d1139733f2b2e31a70dfdbbaf3fd4f536cfbe38bcdfc0b25ece6f255c70c1edc056ea7666b29df3c082f3992438102339ce267be26d5aad2d4bcced343e135c12bda1c6d604b4c45ec201455bfb7c99bf0c3fdab8d40f5daa616bb97e34ec42af7e44d3a08fdf732685fe1f3f7ecfbc75eaf856780788a8347beeaa6ba7d28e0d22c2a359c565493ace418e2da6f145cbdf0bf18ba4f205d6f38bc90b0b838fa673cf8cd3f0fb533100233c70da124072eb1c1d31f131c5667d3637a8891294bf5f730686b89ddd6518ecb86694acc9cf027ea5981fcddb6c4e01fafbfe4aa0736bed6c00f0dae3e5efcfa0aed17cd4487fa8407d7e560135083c9b3b2ad55ec2632237c87915b83d8093245c36823b4145da21a04a0f3c24356c1452c5204971484a8b09f7d22034c23b84f81480e7cfdb7b8112b0d8b52fe631b87fcb9b3af579417ce6931d7d8f14889e9329317692a66ea461083db3f51832f46ceba331e20c3ea6f628d2b0d36126f0d580bcd1f47fed4f01e2f3ce306bc7b8e71b0255b0ee0c2df297ee2036b4e97a37cc3073a7476f7fcf80f1f48aaf0c6b78a30909dcc8258c968aeebd608b6435acc3d986a172756fb8a72a2091d7d5e66bc27540a753a2278dadf4d2345ad0c9db15baba0111c2ec155f88006586696fa697452714996d7238df7acda52f2b12a1f62bca9053ac4028fa3eacbb7d978938c095d8fe2b7cba4d6d3c37c7c226dd6f9dedcd454d4cc438c63ed8f0cda80a8443b3df2a4636c4506c424aa73561193ca65225ff04fb4c6b1f15d92741299b5cc46b09d714b97808cceec2b50b289947b5e5accd36f1d041645bd043e27d4bee6fd7d7b918c7b9c8f4c75c523759b0865836e134f9a18111c15b6545f0b1db166ec4071278a25485bf94f3a162e03c6cd87818c11fcf96e64b9b982d361b2a622bc6fd41a58c6efbac032a0dc1feabc4b71c373c368e23bfe9d2041801db95848957c6319473a42d3b81081cc75d9fa2875105c457780f2f537847ec45288d02873951fc88760f073cf820bfcbe9bd5e0c3fe073611bac45cd6b65a702c650bfe094e4b3809126d412a695d2ea3815e68e8a8d6195b4e256d82a1ef3aacf73f78a4eef8d13ff1b34ba2bbce9c621eb3a283e4f2baff11c1514b0c8bbd2196f421ea5d9aed114adfa9c57f6218f8f0200a72b48b42e25f326c6c6641f25cd48b30e1f487bf5101a4b0eed6b706d3709482bd0d516c768f44ec8f3519e6100cde7120821437f170c6572315731afbd641b10962d190425005080ae49271f345aee259ec3c1da21c80df6f78948fccd92ac4ec5b6f81ae063456f6efecbe30e4388d640bbf444922881c1f968c520ab12947772096cce174b5b171a7bc0c540631962794aba60e05aa29ff1a8a36f0072b4b60773e086a55ac0541b0963e1cf647ba0c77f4991675836c504b347c2620ee017f036ce561c40d46047bca77a6c0def3ff17156541dc94bf3b32b4154ae16fb92eb1e2c2875a57657270cd7a6e56aee58ea05b39cb42c33b0a5024772d828dcfc6bec90af06624e14d97559b7a44312266631158c92b972eecd989f6931b4b31e6bf32cc2537d740cc529532f1c9c76456f510a40f8721b3e21838099f9a7dedb1b153252de4a6dbc3c356da762c7ec3622d1b2e9eeb72a75a323cc21f95e4c1e38b46471de2feb84b45985a81ef65cab80974a90e0461e9ac1e9231c88ffead94c7efc6893adc5a45dce82b6d1fb743a9fe92bd6d260afe44645861eeabc25d174214363a2a884ab0a6520fd0b50ab2013fdc7c59c22d39da1c0f3577542ac2cc57e5016bd190f10bc0305428fd4afbe9513180304342c1ddcd014e43e40e79568b8d01b405de0107d52eda3bb2f61ae6cf5243466d83b254e4b67d6093e8b6e7cf7cb138705da1b4bea6a074c2a8d6445d6218b8392801351657230313172f2055e0bc1ff22535866496932aba1f228cdbaf7f8567ab087d160b428e63f78117e3426cac252172dc17f627421c86989b4410638ec0763427e2170d7d850ed8af5f4989d80c0b104681e253d05392ebc8ce73b4e26f5a4cb4422fa8bae4240a4a9e74c3b6df5d2aaf6cc7a4c354ac96b5a933b94b50d037b6c8bb51b999aaeefe3a76f6da6b6e2871d22b96d79d145bf233cd46a22ab7d25818e5f8dc82a7fbbc7af837e378de413270a4f75bb29c2bb92fe1e518d446ef7367c1900403dfbbdb2de9ec6abc7b89d359e87bbdbaf2c986fac0cd10676c6098cf1e5e684ae43e320d31a875ff1834410065c1ef520f1a5f775fb07ce9bd9134a781231fd5ad540efeccfdad7b933b81e1f4e92d8a22b1487c68f1eb5052add4aa74287bfd1f5183836cda9e0607b8a82169ea6635c5676d08b0ac2958612ec963fe6240f16414f3e368b9d4529f35d1b22c97aa839a7a3ba8b8aed7f8f6dabd9c925e13ec432efc6c7b345e570b8b5f61bbd8f4027f9ad798fe14a7d8ad6d50540215bbecddb41259e341988f3398f9541bc576abe91b38206906ac1efb1e8ae8c21fe03344a0f5756b00cf5df265204017fb3c5534a9b5976a4424fab117e2968cac6ab9514125e37c3682764cd9e173a005e652bb3fbfa3bf752366df47127ab7f326c9a46147ddbdbfb311c4102e57ab95c68a37c56cab1f057040d20c7f55a6c08e306a4a3e4406e01f7a29d2229b46bf2206e5b53b789437bbec634bcd569fd44b06b0d2691de2d91619fb60bcd752fc25b521c9fcf817ad45c7951fd132e869586f2cbea42abe7475722ad8b6ad727e7347aa7efc2e750629e0e05e3a6f34e04a2db451ce235ea8533ef641e57f637f47dafea24672bfc87f96111362205430bf61b0a1567c38cb02903352b7d6be00b4143cb5166157c55de570875838e9e0d45bf6eb5d29f12cca06e242b26d84b973c553766691d9645d2e43927a92da33ddbfeb4799a18c6a5d6ae5a4335b8e86bda14f2c2718f0c548de27ab78157d23b96a95591043723c0cbc2504c52999f0b5b47189edf3f751d7cecc0d5cc08e38f6113682a30ce361445c510c87e06ae1d6674d621ac30a66a944089c7aeebda7b01ed852f1685c387dcdf4ee4ea23727ee952444e50869eee9e003d633868a50ca38059719f2141c799ee92c5241e2e211eca1504922b42686fd40a0fb003cd33c8df3e6b5c14ceacc02f1c3f7766b1b2cf84115bd58128b451317cec0c4aa3d537d10bd25c1b277c11ef2b5671dbd0911e52c71f6cb8f6fbfab4087fd4a4b4834f1d059b00d144c7130588e2b183a1b0ece38734836c15110901bd420522a4d0b7ea51c1b6435c10efbc17493b3fabc51fbcce42c08db2e4662c7a97193e87cb7fae41f9315138730077b196c3f91db8571f8550879f90b1d36cfe24c234205bcdf1eac9ae6e493b7a6338d2f92d4d87ecf28fe39b9cd858726fb23aaa620e3beece76cf45b504ad45547add031ca9dbe48986e9667cf40e290a1d2fe8478bbe514368752a4cbd50109e172ecd14e8db88083102f437a5c97de65da709bb409001ceab0fbfa89a409fc1078cf7bdc9e9ad6f4338daa7f64fb980bbaf2ff28efb5a8a2f3812e75d49a70b5b4169694244eed9ddcefabb1929f22c2dc5433a71c100d775192985f7752a70b29d33801683591f16db81e51b3919b849b70e8a7502d6a6c3e02bc3651d840c68d48b23a0b4655487668ece5e84c91076453f1f9a7152d75d979e25f80a669a2ad910ad355698c34d6e720c22f9b6919990b64737108d0a43824cb0df9960d2f6106befc59a425f29f769d2f416fea047dfb44099198af602d894cf345c14e7cb34b3760925ed447035b41b6117266836c9508554027832653a271fa7a50ff606e8a305d570090c726318f93872d76daefbf807b4ad2dfcc2756198e92cd14931cdcff6bd1d1e919c70718fd9ec2c37347adeef6f77a6bb2cac94a012818df1738c6e990490e1cb54538258c7ba42be8769c389dd0c2c45340c590ffebdf484de6f4a1f8a68c5a1ad7c6e0e32188eef7d2d26dd9bd21425cc5d2a4c4c91cd101336fc298458e0cbe44d91c9f4b0a5455b43845f0b251e8cec85c967a3b7d6a18ea0da887cd7f4e06b27b394d24038578b65ac2fa1cde4fb54f4f1c1a96fb685e7d4bdbb4a34837a9bef71c0cdb3a40586199471bd1da216344edf8966d0f547437565b048f3c0c21196d3a4a5dc71417325da99412d9e455cf2a7903159219830ea7a10c80e3ad05290e6a2dd8b8a6134dce7bf37243397933168259dd6abf0b59a0f3e26bfd0e61109070f782d9f45c138a03023891d4e933128db37865b023f14ac54841db5a877b8d1a3a77f897d610d2a6b92ab1116dbf713ca86a02984ed173c651c4a616cef0eaf29dbdb116ab81634ce784d6ade0a6d52a5b933ca9f01e65a68415a021730c01ee68a90b2f31e02d6ac58bf802c53a8470f60b1dcedd0ed5381944a8a3564a377c122628d44d99c86eca7632c0425bc806879a9da2b60c1ba1710fd2059c0b0df744ca164713f861ab94fc5ace8002aa1d1f535d70f211e326c1bf170dd71312b127a7131df135ba775f5cf6b250192c179f5602dca0ec958213c57ddba94a054ef3bd0b3168a34d426c9df5338b90867b8ae13bf2ec309e092870d046d591b02beb9292d399770dc1c149023974e990dde44c524e089c9caca9354a5cd0a6d2a8bfbb8a1d9c1652323ba4b2bb2a9a7030238687aff596024950b3053476fff406e42c1405ec2e54f0c49d9b511ab85f6891c543478ad27a991b458726f2bff1da86e953512fdc148152b1d5d4e6b8583e10a21c9ed408b0b2fe5c0b705ac8594fdcb951961961f79e2a35052a8965200026b59b41c315e573835eb51442a32dddfd6610a4c39f73c71aac8c5d0383a1c248ebcd144b000e2d7e6809e348e27a36e1e81345d360b5a336f46fde5edb37436641b13f7b3125fe84c9c41a8d8305b63ac151bcea03159b1ae03519b4b76527b0dce2be1dead53311850c2066e3ff0403b8ca39fcc229eb5d1c9cca567d6bf32920783eb38b500df9082c485aa24b89e828e086f07b438884134e0e080e01f33aa56cbd20295156c02816b4f7bc38cc403fc563f4fa840b58658a8e004b3999b9bbcd7842881292d206dfa7c09bc501be2f91c736a066ca990ddf4eaa8d268bcffc7757d424ffc48029ca76591c6aa1935649525b509679d8415048a6f53c8e33fa8345add05696735b9ed93396415d0df1d98a9f78dc15167e0ceae40e115fde3933cbcf2d6ccc06981703de225422ab1dafbe8b0fdf8978fd286b3ec639eaddf04ca405bd7e9c42a1630875128ce773bec5ce6522193860484afe519c4d4ff91a6c442a09a230459ecc48b4bf1c9108c2066353eed3bc55fcf512028d149cb2732963d5195c198eb436ad533c4f1710226766b48c69a61941ba38fc12505fb5ed432a5f0b64b1c9d08799c8ff330ab7164f40633c58650cea2ed583c20929ed5740306424407a5412765f11dd87fb1c740ff76659f240f84b956a76d5c281e86a983faed2f089a41c0c6a75f0171411811697795014014798b4f6958b5175cf717d84f471210d9d0891f106eee9269d72f6ebad9cb668c56a72e5bd2ab594763a59cae33e2ee40c9405f372e606f440d775010170498fe505f5042f81c5db60aacc910a5bcdbe9208b935088851e20cfc3589116308946ee44e6bbcdde6d162057137bc6a54fbce9e27a72237a4ad0001dae33425fe3211d6947b300081aa5ec6dc9cd038a1c8b2236640c6a1e2a92b1384bd6fef4cf4fcc22cbbff4c1678ba5a542485905e122083ed0c3efde2408c8792a7ac5f39f3f2ae46ba4e244d1e553d597ba765403764f6b556e8714d62cd8745b839e29ac722fa94495a487622cef41d904623a5b95b1dde355c2d458a1fdc0c6e69d9444554a723f94901536d75e5c80e22fa244072cc55f306d4924c6764466157f5fafd115bd9ee7129e0d55f228f42d55321706e9f7756ad8962da1e8c9f1ad5ad62ad7d6c99cdbbfc10bdb53d25dec8d7ff7c3f6c1a7b31df75ccd1340892eb154b1daf9fcace080ae7b744f5e249a5257d4ec480c5020e3ed28d6bd7caf5e848e68a3f95d35cd290f578cfdfebaebbceac8169a5e6a16d9a8f05dc8d8ee045da5632733391a12878f26bba8d7d8af8e120a3d615bea3b1ffa2220f6f98f46718bb402e82aca83a470c4b9079846ddd80fffa520012c6fc9f7feeb4401175b7ab3711ae01edc37f0fb0be6f015115182aedce08ab5445f85ca60296d187542cc7f61bd3c09ed1372727a9d2e734aa1d02ff4b99ad153dad0a528ec42685d875f47bf65acc1638e1e7e4b445c9c45491b29d4bebe68adab8e2829841ac5793f1221c367506e216e86a3b2ef50f2967b7f0ccfaec19a1c59f630c55d616300147b00aa0a0ec76256c39b15ef3792ef6c5740b0d924cf36b20b3047554c7e9dcdfaf9ec024c55987f6adc98ebbbbd4048f12a8a9f337709920d1da2aaf71ab349ad9a60153e0ef7b5bab02acff70ed470c43b998eef84a5416082939d3459f3a1d730ca24e8705349535ea85b69c78fe8fa3665b578c3810bb23a1e70b000c980eadaea68fdb4d1fc5463211c3f63ac33991a0a9c95967bb73a0d216530c1db4efd30d9de44460c587cdf32ce381569c44394c550a14574e2bfd9c31001e2c2af142db36bbfbefa937388f787db87682fe79be0efa7bed17f2a792ac2430fbd7d4ae49b2d402bf650ffe6e76bd5adb34b8744fb7bbe349c141b1f9bbfe7630865cbe3300f280ef929c98592b61c40dea5136d36c4de6acbcbfa8eb17882a8cd229f1f5968976f1e9ba145d61d03dd2c6d6532f0c85d6cbb34c70cd43a973518699c1570338059b225b8c8383a8de43264289738780c86949d639b8750e7f375c3b2629d7a72c2cd17607fc8933836758ce0a05a7c6b43cd38e1005342377b4ad92f73008f5bcc43cabca478a10bdf0fc8252a1437f35887d0d10d2e9a5761413d61653878d783297d9269cbe5b0cbfe27b7104406d52563c95f6c2055d05e1bb1555420757e6267cd8b7cfa6f61a2dac0454b7e5c7c25c1c0694dd9c282645e6cee82490d6b194191d8553fc2575cd2d6d2d491b5206177986e77a142c8a63325734b68564b6ef86b9cd47dbff3e828387729b9c3031596c13e3a3c7dfe2b411b97727dd48122c853d93de46c6f22b708a8c973f77fc5e9ab92077ca104c9008e253974a21b11ae529cac816fb7c9a44a869c7d16377e09aab97a3139c158ec349b0ae561fa955461522a3adb77d5f2531be0d6750311d0ca6fdce308e26958fe441381343c5efb5930a1b8ecee6e97c71578f8359c4c211844d7ce989a98b5daa5231cf99892a504558950fc45ecf54a878fac0137331161f01578b2d578538b898c20fc27eae5c9d999f154f8496959aa672657b749962a4c01435e2af7bd6022f0c344e0b8110ef1ed612e3f0444db129add8d550b5dbec1657ddc6be2493ca52293a64e70baaeefe416b3052d181cd3709810b64788020f732de591a0b7ae31a38db94f56345531084765f02185389901f741ee70066c4e411ab8f2aead31b3aabaaeff16726e04a0a9a670133b442c5a99eefa72c40a7d23613e851d4031a101f8ce0bc5057221b78bd0dec800c04c4492e93040015785b6f4649247426487eb682bbadfc11eafabe20ba3b5cdf2a151b15821cc5933c6ea2af3fbff0899709b78ebb7f6ab88f304d4bd100a567c50b66a944501683f10bd6071df45db4a55e77347d4e6c4288ba2715cc4d4ad4729da40f6d5f1e7f061f240df764238bd23f1241b43b9be13c8390dc8d40bb71c27e0d5262f422ea045086605a52a031ce8bdb30fb1215043d179f90eb2eb99de5dc6e66d960ce963e82a9a430d0ed236ab47b116d596207840a425b7d384ea8a83ac0a798663797ec7231fbf581c5433008fddcc6f7ffdb479de74229fa297ce38aa3f512dd2e396b651d84e55eaae671574bcfb2324c8ba66f75079098defa38a9c72ebc02dd8f515712ef37be32c29e6086a51cd7f70030ce1e0dc6f6a70eb146826f633c338094878da48e75fd410723e37709714b919ecaad0247d29a27a3937055e8a716e5036d1a8c613cce7950281153aaae17f1e015a660e509d4dff43eed92a5d98817aac334a08e9d48328c84d1278c1412e50011c52dbd7724919a76bc5debdfcf55ec5ad0da6d9bbb897d7a72aa5e556a2c407f816c1cdca191b3526d3c465cbdba54b29edf01cd46e61b7bdbbcb7f6b0ba00aec3650b6399f1e2cd07155200d320921f403d1eba780fac92e885edc5a82a6483ffc394538733bd4fac2049784bde6b1cc5239644ca996fb188a9cb139e1b68dcecad4d7a85c103e676b244747245e1518b65a69fce5d335832c56bfd407901317cd85cf2a1ea81633aa61d9c053a381c530749e765e172ea36df39d6d51e29ee9dce56d96c439c0e801917a56ce1e59d2bf79875e131797cc4d952cf3cb101b8b5f44696ca6c1a3f2080e59cda38a057d22416a3a565bb9cf7958ef9b6d1e9dd1e088ebfc00c97b491ae6ad45c8e4a73be051c0fba1bd2f0e970c5aeafd482c87e0545a1bd025697bf2e80f0346de3b0419fda2d3a06a6a994e85f91488f8ca53affae57fdb6b6a067090999b8d741a8164cd4c862465dfe664a70ea4a2519ff399d24e3f3926d85c328c9228f75df52419c38e9545a7bb05d2e8e23ab44a772ad934697a2cd278ecd553daf01e5baec2c5abf7c1a24afa905ec68272aef59e4e91a19e1efb79e6690cb32cbcfd0cef4747a5dc61bc72850745956dca86fdc5c08bbd7ff5bc861ab493befbeb12132e02f12199aa4b844b682a5d20a139853aa07fa3b2c65fabe67b420114b0984be504e67022c63cf232a62b287b369fe83b94e78275b37134cb84660ef7e48d6452dd41456f360bd6e8d92526ee2980c837091863d896ce16a0298eac0ca7179e6f3f290d14e317c9e98966e412552509e216a10c98ae1a2a6b85f2934905f229531ec790832b2f876914e796df3e52b47f49e3021d433b3f1d584a5996631d02ee1c9cf081ee8a12825f5aa8940f851a103acc3acec9c0cf2fac32018c8ef284d200c0776930b1bf7d30556500829234baf6e6837d0460185adc2f004472e86627a1624e209ab79da2151c4926172291c709af3365d53dc6ae2b894c82c79fb50912e0589bab94641d3c9e395afca4503235d3f109758c8d1a6cedd505e125a58610c93602064a4a62d4c2f7ff88f102168deac272edf2e0882c1431bdf6518d958d2e26878bef0011de00534ca116eaad2094ad31940e46770bc23d23f971f234a539d338254a1301cc40cb49f15d576e405933710571ff206b4466f99e835024be5087b03d29fd70ec70ef31c7ec6f766fdf88faf1842941a45ba505ff557b09df9a5fa73a0a59be07397b5c7ab82d1b28161a015fe1aa0845f1ca1f126049620c4b1ed195d0282a5bdc4799a3e43cb0f06541aa68ab431dbf63969664d9d9050748fd4a6c909428089e4ff0b75fa0c1062cd4655659008145360313c352044d5a41e5cad34f8d4d2c53522f8a664ef62369d55199c08b2abf6ac8251c9ae73d22cbf21bf2dd5028d9082f283b41f8520c26345e8294c07491e7793a4a78c2562b82d74b9b42fd5be8d3743c8839b4e6ee4690ac0216088a582355902cbb697b367d798e93913b3844a4167b02e58e69c40b5ba5c3b66cc8b8a87e33393daae93f5d1a8af5e8240ebc413d2bc45456e89ef3ad04976050ab45db6bea98a57c5d26a1491460623740070c9fb5331fea243cd6862b940a874ae1896670ab57ca4f41d56948b49d08136af4e2786c847315c050b58918be4147fa0645f793cb189d946d8d7efd33157c533b379a69eea29701f939b0a4d9ef43242da43913fa66438001e45b339282a2c664644ed1ec7f51b7aee80b1617f2432b5d3839f2b56e42179164e98dbee207846f13b10a80f266f8e2232ac892d3e25118afec68df9d76c37cebd99ca4956bff233ffc7325b1b6e873a6e80bb44768555a7ae36dd956822d0e6b2772c27b69c86819fa17dd7fa03c740c03aa1d1e6859401816a5033d921eea4341459958bf9f7fcb979a246dba19bb98695f0b1145fb5019a0afc99c49964807b11ed087e47de3337f71ff04e765f019a006d454d435e1ed8cf87fc8a3df1061e6ad1122c9de5b6e29f79632a594025a0691067a066bf58f1f6eaa344c8f51697f74697fa509d3e6f10ee4fa10cf99ae4bcb825d1ca4864924f498d64a7a47eb259dd34a3ac75f96c90b9309bdc4645c5569f1ab2af4d6f35b565551988eae90b6cebabc7fccbf8743c7a0f5d07ad185696eb108fdc89c52e7a5bbeac3864cd06f30f674cefcf73d3ff291393b83cf50180c193ed2a5270db3f549971ef6311ed3da35376652df679a0fae1b9f248f1b6489b9c4a79bf93774e9b9bef1e3ab87980c7428a2301908e90bb0a7e1577acf059cade12e1ac963c44396baf42afa5d7a8f0d61d629b9f81be3aef970752bc9f7a51b78d0ccd037f874511d9dd349c9e3673eb983e1951c4cf89c537190ed92a59dac98ee5da7b4c117a4612a3ec1b6bc1f52a113f57d84417dff74f4a99da83441ae9431ddafc80ce77430fd9df3bfa940d983ae895dd583aa597d8555558555d557d557d55715e8abaaaaaaafbe0696692b5898fda008217c6b6a42cc0f8140f33734ffba26e8a796651fe3200d9b9966fdc4ac0b4a6845583d2197655b9f1ab7f9a1ec45bf9f692c5d8a1fd2be4bf1a1df10d192b7c4a73182462ca51b1a66536140c36c8f43c3843e7e89e5fb638c0f5a112324d284107d4a28244a1189441f0abd281412897c8c5cee94d3aaad549dca73d43f1c68cca5dd8033fbb9562016cc6d77681a669b16e0a1c70f95567296524d7dee679734001afd06840eb84a55a32ef90d0d03df1f871d11468b9262a9d4a552976ee04c2c0de31c9359ec51ee39cafd07a76dee631ccb9930d557d5fb0d38cc448054414c675a1cb7e0b111c339e778a673776fb705b92ceebdd484907fedcadf2aff3d297f35a6cd92b5273acfe73d7ed5b512c6dcb827272727e7e5e4f80deec9c9c9e19e1d253af285757272a8e79d867191f28e8e0eac9c99771a46c76fbcec4cffada76198500d53bd7b0d03e5692bb1ab21c5ce15c3edf116d7b267b69b5d848974c95d5a9870bbc6fda93df6897b1feee992fb951c54cf395deae6b12e300831bbc3300218efb96be7dc6b7fefbdf79e7befdf7befbdf73eea60ba7feead1323e4ba90e9bac422e58d1f2478d3f5ee71340c8d28667c9655bc9a581626d3126232b18a523226636132d643cb2d971f350bf0a0f5c0785831f9a1153199f8317af40cc361ab4549fece5f3d47208230194867bac470ba1d0db33b3cc6388438705c38bc058703d978a85bf53d46357aa545adbae896e2f30c3530717d3584437838911668985db9626e38f8711c20e600ce452b66a5e8f6a88d2504b9c2646eb35e523e6c98eb05d3cd9d152b4cebe5bb7cf8f1676429f7bd50504a0b42a945ba41eb635c6af1a22af52cd55117c5917da6735dfc6315dbd4b1d5f5f30ff946355e462376cc594c22ef6ac7620ea67bc8988ce3ebbdafc2747c8663a69c73d106b3dfbd73ceb98fc22b635d9cfbe080f8b9433847ccd200dbe27e07d307d539f7b18ae9df6e850ab35404fcab6154e2060a3d2c69337409fef41b21fa42618c31c6e875d28da6c68f690b00019f077c1f1a86fa19cca8f017c25ff81b0b84605408e1c7c408238cff3243a9c6b3c49528ccab4bf0fd7bfe8a15e6949665617f651fd28408bd28c6d0af28f45916a2a18f1a8886b4f9311e35d0d4ae0f69206d83f5a218fd2e5956d3d099de90f6c0a76a09b9aec4745d2281fe65d381c11015302106581012850c30ae88c1142a484192290021c7e46454b466759790a1c4a3c8a6b0dbb24050eedf0f513d2f01f6ab9a2dc07e45d37ec33df3ac4d371f8680ef7e88eab94741df96cd87ba6da8f6a3bb0260d3d3816bf7d3bce74791f43bbadeb21dc4abe97e4d188dde73eeeeae511445b90300becafd7d7777d7edae736040f9e9d1310202c274bfc12559c8a9cf79591e062e255c445c9710d7d5a48bb95d3fe611987039999bcad5c5b5848b8babc9a584ebbafafab97e5c4dae9fc9af6454b75dff903183a380114694274eb4f871c2a447c98e1449faa51b49c239fbcff5bbdfabc768292de739caa78bd28862324eed1311e482a6f0fd3d40ffad762a57ae3c23f0a95403a8f73c234852b9b7b31ab0990bd200d86f0288414291105a73baafef37addbe21f9fa3fe313f73dd9f4faf1d144bc410027a32f937c43bb28c247554c3fdc6b64e37f7aeedfa9eb1750570841b37d8b97d2751affd885f910087a97a14dd51fdd699698214f5e80be07e8cb30ddbd43582b7382b9abb0854558d9e78e289142b5cbb6e8493eeeee2a37076779fab988aee09e89e73ee9069bc0b7777770199b6dee283dfb09e7a2028b0393a3079b00d4d5f309ffa0aec8d1f242899b0bf1999e653d4e88b4a61bf6d152af5d2e213637cd3252a547bc78f1fd767ff433ea8c68469d8cf5cd8a43420ca3b4f49edd228f718eb901c2539e092ef1c9d918f519a227cf216aac674e32d94c5210a6975e3dc9104bc53fbb971f8cda152dfc3a807a91e92dca296e53402ded2cfaf91f6b3dded21ed675f63a2d97d293fa3256f79167df27d8cd6a53fb42e8ead2629dc9db92d0bfd3d426aa709b92cef77f4555b4adbfa54a14e850e2f6dbd456a24ea6b4c9646a2e88e1f35261b95234a98d684841f7e0a11734dd6bfb7c04732d31f67e25b946636fcd831c68fa499f85d11616e2f1de567be934382aceefe3247b005732b69c78f7efe50e54a7aa44763bcdefa273f6ef087f517fd115fd2186fa95e23bdea638d89e6e3bf8f9406c9a333b1aa2c5a63aa3145e82d95099b62ce75791f5a97f72def7d1c0a174ebd9448a1a34305ebb04e65283aacd3387dea53ed9d3ed9c0b17163e3546decd8b8b1716a02c3c18ec04ed8a9623bd8093b452de24ffca9d64dfce11b7ec24ff849ed20959ff013144888b3987bd7aa6fcdb53f1982d47e97e1d4a5ae68c758b90c39fdd29f16de3532e4b8e71ce89de664c8a932f4c870624cc6012143ce0e557d4e9321a74bcedb793d73d70c996a22fe442de216f127c808003bd842129c1df1249153477579803831fb08fdc514d5e52162838228cfc20344090a8af8625a75796e86504b48b8ba3c27504244ac5e5545e186dac209e439c20a41de116eaa2170dc1627ea04387e0423af0923aaaaaab630e2660c4e46d0e131010e9030021499244e3c451cc18344ce65441fa9f1c359545e5c2d8417940c000915ff4c57970748134f0d7956c9a9a38a070812fe53a3f42f2f50d4e879ee51315f5d1e1c2fb298a0ba3c385afcc0e108a16ebb840747072f1eaacb8333839ad5e5c12952b77f792299892ec00a9ad00522c248010ea2f09bad1c175730c1134e80e208309c88b790754e708513accb03e4668a608914a06d98ae7c532b77e174c9356c77b9cabd77cdfdd3b68bbabf7ccf1bd0b1d5511d5b7dabe853e3f4117dea13129b7bdfec5eb9fb07519de3fe47976970d76480300dfccfbd758bd325f61a1ce7bc8bc4a6fdd4ed0757a9efe137364e36706cdcd838c2c6c9c6698a1ed70fd5757301b9702e1c2a888036df7a5cd5b9f79c7beeb9d7bfd8637f8ab6e6ef34ef7eeaa97577efc5b806aa6f9829a07605991c987c8075ee5482cc6dd4fd359eb46d31f1ed82257a77d7db1d9ced9a06b677e9d6e3aa386a80e26b43df9d247c84f8c12d53c13a5998dbf66c123e522ed6cf5af3ba9a9d22706a00eaeedcd87c6bef5723f57b90ea4b2ad3f06a6332fbde7b41d466d703601af6dd6aec413450d5feae5c6b28765cf0205bbbd42b82b9d5a8fd257f6998561900dbb0cf698e8cf92024e6f6ef7d84e76687fa823ff43635f4990f99eaaf9732fb755ea48a441086089cd4ebb1119c6acaf7ef4e05bdccb4d04732a67b0bf5148633df73ddf653fef779b888527f613a700e291fa25bf629bf984c0aad3019f79816c7982a2fdf3f46661ad71bb667997c85dad76c82b287984c0653e80677a82aa6c264aa0adbe17dbca88eeb311db36674e39af295b6550f02a5f4a821151d1ae0335c36ec2b6c071196fd7e48eb21a33d546af5f3ab77980efc558c4fad870aa9a20bb81efbad169c1445512629b5ad5fbe8ad6433ff68ee9805d30986052df43bfe8fd377bea45dae6d09f12d2be82400e02bd6332a04cfb1a7a4a66a12ccb34186e66f69e69fd2adad6c674e8c74839601f7a6c7ea66d32291fd2b614ba805d17d0efba641f922fd2e687f80a917200fdf5a0ecaf8c5617d5203f05e28b892fb42039ba8058abba95eace502b1d2fb80289191554f78a233b5ae8603186931a80ba586461497dd2580d92e674c1a762718691ba5870418abab14ee5c751170b33caa88cc9ac40995bdd4baf4061aef06052ef37d854c3d2625cd2f8d3254b03d556a33282bc9ecd1768354cfcc856b42813e952734e978aac40616e7d3f9fd891ec9a2ca9cb6323c5f2d45d720618f58c266730a9bbe40c2575e323ea2ee1c2912a1793591963f64a94d9d03937638cf353e68b66c4260485fecd4fd184487915f794dfba73a6a4bc6b229ae2a24f4911691bacef431fd352c61aa3ab074ba528ecfda3e6316e8c71932f774522ead8afd663549d7f82b44caba14bfc98c6a34bfc9766811e3efc00048dc6365d62169dc9d5b96f9ae40a76ce398703b9324633b30561fcad31d2f850a3e8062b2a52fed8b1377712b942c64a1666145da6013e3fe79e7a66fef7a00761aede69cf71656d7ff739f79c73534e78766e6588c95ffcf2eeb27394a35e6d2c9c53bbbb8efa67722ef31810ab3bf166c3ebbd8abf5dba288cef3d44f9b686bafdf06af56fe3ee6ef5ef63b462b420d424f5155da6216e2f03601ade574f6d40d4a5a2efee5653dffb757796ea2a269ef3a50fbafbd3c197be752c478ea80ad35a6270ce003a2e8c8ed6e5c550df05aaab6c69c443f5a9d2a3fa35af1f7af88bfd0a584ce1d3308bc51447aa3ff5a4c36898c5420a22d5c5a8fed5c9b21efecb1af716bfa4343435404480871f1c7aa0ec8f0bbdf58ece48d0cbaf71928b1ac95192036264e60f81871ec705a24132837d88d28cbcc567aec7284d89c6e156aa1e47268b921c05bdfc1084b0c76808402f5f02d7634f72218de496f42c2d7bd1d7989a75526e54280d1bc9d13172239a59cb9bfe8d735e30b202c3af29fb8d7544cf4f8364467ee86990cc582f5b66402fa2343c137a10a5e1108d424369b8c7eab17e2483fcb3a839a07a0854ff2408c0e7871fd34e9470448c318ad8d898b2173d9299f9f163fcec67e26737224ad3376d2427fed63731c788df4089e23750a2504ea830dcbf6041e92872f31b95efa74142836426e5e3d3f8df28c024fa8cd22099c95e85d2a87c36333fa3342ab47b7e683a8592804d22da13fa35857e6b9d1025bdaf3135e8d704a2a44777fca09c788b7f8d890ae3a7faa710314df1d9149120213900f4a19f017d88d220714f93a33303fa49691c445dc75b9c72e250bcc5dfd2d664fde639160d019219f9d62331854052d2cc636f511204aec7fea234482804a82842be68a2891e1b1b93d3dcb4e9fa20e463160d2ae69afcc75bdc5d4909a61082109ed8d89882b011f54c04fcd8a90b047f4ba3922c991b956423f9f8d41b8fe22d2ef2c15c9365e2ba7914518d6b152c700e2c16ace062470318b5df8b0c41b9bb7711dc015544c10a4f3041c8172630791129c00255a332532490cbe22ee3ba31996bfee4f5bf8e4c87197477eeeedc9d0502bd04815c97e2b519d8306a0ff12b2b93d9cb5ef6b2f79ec57b43f40b646f88a833696fc244882251fb883fc7d79159d59e8b311dd5c727d2a5225deae7cedd9d837e4e795dd791e9aa0fee6e97ad63224f60988e6eaea078186e869b3a49eb34ccd6376d240bcd2727acdd1bedf37dd33831f868ede32ded731d9954f5e1aa8c0f77ce51b2ed12df2539805efed63e2d868f5b9ff974fb64bf98db74946a89b9351326980ecb332ff79b7b3137f8583b742dc6a9cf34b7f1c1f52345311d5d5fd6a5ff31119dda55bda19d9e6898e5410d8a6cde23850e1a8a24d48d993ce73e0db3bdfc34cce636158a247d463dd587c9e828420dcb6344131836a22e6532bdadeab4b482b93d1ba93d72272d05cfb973e7cedd31a4db9cfcb08a7166a615ef30a112a6bbc27c74eba1521dc5f1fe12e2ddd91d16ae8280feebee03803a57b56e07007fb4bbbb79bb779f0a788c605297c708259507757970a2e098dc92e937a2d6035f70bc6cb0b6126c0713f6f042c11dae4ad11edebb5d52dffb7b276b9454ea21849a2fa93b5630b7f57165ecebe0980e3f7075de6e1d170c3c13b30283810873b932e627b9823337b67986c1c2bc8d2dbd4f79b6e1975d54bf071606f6fb6d861d7e63f2b0000f3d1ac6faf73e348cfccd51956ca4d06d86bab1cd8be8f62f4cba4d5046e77c81a2db4885daf8bc6559965bebe0427855087fbbbb32e441fbe576b00d8eb20dd3f0288f605dde3f1bb6a14550df33f5ae398d73b80813e9529007832d3d36b22eef9350348a4d02ea38841773bbac983f4ec09ecc4d05f3026b02c604ac0a8af9dd8df685e93583b9ed4e43f11bd9bb29633a01eb2d458ac0398ad91c58753e60ee72d2bde31ff7138e669122dee25ae7473a99dbeed48dd91cf0dd22a13ad7c5b6b8af4275925a74c370e7ce1d56c5dc966df0816d70da3a3e3607a48d03c9d0860eb8c32be6b65ae88075c7baf0675a9ba0b6155287c2f4ef2ef6468cb7b8878eab4046757c46758e72a30ec3417fd1ad24e9f6a1b7e836fa48a168ced06834a973b475b8a12099fe5c44c76f4038e768041da4ef73df5b281babb3133cf9d14305c893319c701dc1e049428a1a435d9e247cb820526bd4bda28927a91469c73522b97ff934d8c3a7b0af813fff016b9a9466e93641bfbd3cd39ab2a776780be5e3016bc281d25ceb53298c9266ae877f511becaf87144906debb5f09c0973f1327a541c226487acf9594c30e8c9276544f9ab9be7a936332ce74bd749ae45de64be39c9fb9515cfd8bc9903cf64be9bae377bf94efa40ca2fa6f35b5e274bf15dd49c671771f358b2b748a7addbd4f6680f10505b7ffde7befbdf7de7befbdf7de7befbdf7de73878df3dc88063290cbb24d7fddedededddae5d7bb76bd7deeddab577bb76ddce378e6ebd0fa49b6e3d464c9a068d53b71faaea9c531c4d03aa4814ce7b2c1832f2090f57fb97090ebe3b35bc949c6bff2e8de28c194879fdf5edeeeed01db666fd6a0e2dafa065c5748d65f93fac2a7fe96eb90563f5dea354aa5b4737be593a03acc991dddda538ba740405ff4a2c201916dab8623bc86a61d64b0b93b162daca4219102012c875cd7796953ddf6419043d8661402046194885e9c080b00d5bb3c732c917a6d225ff11a5619f3d8b2b0644b5b64a8d4f170e03b90182a36488c9383838d4cb122962a472d67c6f81217eacc2769095332a4c9f5bfb2d0c6e4ce750b1dfe0832c177a8ed9fcab6f4c197a4f613a58753e4cc7fc8a0a19fe2e71e9332a4cf759103dd8f6e25e3656c23a4c05ec924bc154b00d50ea8fc9d827796919d69ca5d4b2393846cbb2227cf11158f2a5dd92525a74bbb7a81ac6e7e27355f590c20a425851d4f5927ed7f53e6e0eeadf26ff92d775496b5d1e97f1c2526ad91cef2d8bbe8cd11f5f6514c3e670efd46ff1adf86d758474e1bab0780f88d87195510c9be3fda34ba3facd7a49694431ad8739d0a00185949b45e96a705dfc9f16d7c5bfb9d8e675698274364c049ec2fab60e1a8c04c9ccecde1f5d9e02331fa1ddb577f77637b18ddca9d7de4d9c73bebbfb8325a46b31d45185c1ad54f92a8dda16976d3e54aaa42ed7524455c2cbb55095f1726d5650955756e575b98655895dae5d5566976bb24ad015ba6295a1cb3558a5e852b954e40b72e582e11a5d241a99d3b72eeea9ea3e50fbb700ee3910d47e1aa076448408c96142092596182244480e13bd53ad975bdc42d5fa2d86baa3db3de51a7e43da5ac66674c9e2768eea76daa3ee29ea7f4ad6a22dcb72ee29ca02a24b168f2e599673566f8e7e2bd2c6e1a71ef5a8473d67ea5fdfac8bf5d49019bfbf2548f3e19eb641eb5df3c1d58c6a7de55e7e33932ead18d63bca3e5db25e52eee992f5a020d3fab678c4a3615cb59ea6617e348cf57cb3398e7012b6e00986546b6327aae52ceb09cb52522d6b0918d57a725344b55eaae5b86fa0352164bacde99665f5ce542244480e13b0bbbfaff0c2a7fabbff4aad2f26c5f3373ea5817e2933b9d6c7848492617d5cab4220a8de872ac84261320c2b4c077ff75e38a936ea5ec1c591cad80ed50e310d3fa6b32ccceb292526fc98666ec2ae3ba3de610bf04a1d6922798979fd57edbe6a6c01ae52947fd6053e35645a4f3d7c4afed37cb0111f0c3ff39718fc4b6b31e6d63715be532e42396705937fdcc6ae42f83311a0b9a17042f830056254c827863540f85490092dfe7108a1eb138809520ce669428c2686e878a1b60fffb26cef6c30fb6f5cb527b3c615275a96f53ab65a9424bf07ebdf4b4a43e7bd455f4d65a95935156a3dae5a51d636473de7576fb1ef69b0da7ef0dd5db84fb6a21cd436be710c8472bbefeddb5de74e1f0bb02e302e302bb0256055f0e25456e2f6298aaa288a7a8cf39ea328a7bd27832e968787870b216049c0acc0aac0acc0acc0aa982dc6c496802dc1c7c7074302b604296049c090507911f7d63f243e2888c512ccfe7529a156bde55545df6c7715f663d5692b6dd7e559daae4b6c773dd657bf7fd46fd6a5df0d5e706667e7b0286051a08ac0828922bce4a76e57ed1f482c0b8659c0edee2bc8ee1878e43074c3ea9e0a95528960284e0b24b30bc3ae4c82ac19435054a5502aef05b7e2305cbb39babbdd3d866bbb6964dd5810246c98dd39827bc369eeeeeb4f6023ce5dac306a1f1b1b1b258a808019b61a0e507d5b2636eab65abce002f035a3fa8fea38ce44b2baf113499811248bea3f4741b8a8feaf4492ea5f52620ad5ff45c84ef5c711a382eabf8306d53f023cb2a8fe3c2c0185eaef830caa3f10394d6c8028b9c971721a22454e09aa2f0f135e543752d9953145cbc405a72718210289113e30b997a0ba1326a8deb3cd0974f1021f2151940083220e8448a8fba116554cf7553ef53496d476fc545247cdea2135f533f1a9efa633d45bf4e5bdc5631c798b3f3ad7c5e1684ddb68ae0b3b6fe7816f53bb4b7115d35555511535611258db2a2364b9f0572e5c2b52ec98995d64e6202a079c25a8444ed66439ea188d00000000b314002020140a8744e26048241896ecbade0114800e8896466c4c1809b3248761140441c618638031c000039021304233433508a0589b83ced1808807dd793a69613a90a775d743463b495de9da9a269f29ed8e65066855599faf8c69906ebc1a86c6bf657e21bd4277bad818da5b65b089e4ca57f43f65d1685ef2be8a3b1c80ddc155c67fa4b1c14208251f0b71e23312a5d0cf8cd76103b4bd8c88356dd04c42aa430badbfaf2ff9191ec6eebe1673cf99dbbc78604219d649c193ee1d900bab685bc0e0090e9211a23827c33299a50b281c3c276d19b3319aacf4e78f36bc43f093eebf0838e487372b2ff37b3b2e8433b3d0aa74175825bffcf7d4f579c080cf3ea2596d28ac7762c77fe40cafd7b002bada123f66cf7aa191dccd3a78c496574a3184953329976b56aecc9a03cec0a9ea87b1200a9a6c3c6b851d9fb078b26e74ba42cf96dc0cbf4a806760f4e9d2210bf52163d194142c64238fa96801cb4ec94a9228ec18c8a60fbcc4afa543565704a205594dece605def945fadb81beff848601a786c8dc60200c1f987bfab6bbd60544b13c1ee82cd5ec1c8566c6afbe67042a034eb2d56f0908d03456a81091a915d6774494d6545756c8de59879db65550c5355c684349d4d94398657cb9f3244d4fdfa60a2113785befb9595c52134a9c92d922e83d41912baaa67c3c433756632cc46091f8b179fc00b38fc1ec3cf7d828e5a365c82ace4b5d3b16940b909c8e739499d60c24ec66c57b36c250390b11f718d9a6b3764fd16564c7b8c0d90529c7d64a8b8d4bff9e8b7425361eb3736bd520bb28bca78538f6fa628172900a678cea7065fca558c3d1c968ade68709c93918492b994b14d43d9873b88dbd96dc29eb28ac8e0fe392820ef04bff45aec8956826e35be07087ed80f6fbdfca1ac0cb7a0cacfcdc3cb4700fd2706eb5221c1dcb607c91e4ad53aeee55b52508a4d11ebffb00035786b7dae82506fb9686fd4898a4cec1fac283021d49778f03ae63fc56b661f309aae924e62e16e5494555b650ad745f7de9f5a6c57869a7b514c2231c78f555b437ba34e28c5d7d895a230dc853cca9afa7d4860309522fdf37f85fe23a5b482aff2478e9cad2d6f2f5832b091b12535e8fc7b66e5fb56e9a2a83636c8dac6ffa7ae27510373f928846dfef11ea418f1d6b7126c82ddb44f46973bf48c92c2a9ead20b4dd5fd7336c182d573defe5ea9846cda14214d7527f8a00e375fdd92d7772ebeb049dd78605bd824d047b8fc3c031c482f1b052c73abd1664c2251933d9806c070e8934c663a270b236e52b521622b5a7847ca9d76b35f881abadccbb06986fce83e0e495bf3f45771f3b3f50a0910d087579052a65e30a5d6a6070e124b1f4218d5c5cc817927254e1587626ef69c3016d1bd1d4b24ee19d253fe448cee583e4975f09493b843b2b8bf79559e9ad14b6b031152b25184dc00af3c84ec6aa8e888c8c34421bc743612d17909035f12a626769a6bf46d15df0aed443e59174a2f33665fd9cc863b92ca453e88abb933b1eaab31d3ab1f271fc248c5092cb6130fe04b5352956dcb941433ebd7ecfbd3581bd1c243b792d175203a520c1fc941fdc1d45f713beec89b2cfc201d3a61229ad72c910c7c45bc1fd8790b422962936b5e81b51f19b3914e30ac83374cd0f6688f3cd7c081a6271a08e911019f6e2f774f55a9417191edc8d386bc0783436b9c37b4b56e07030b8d77b313007f58b6e09a34781a329e98b4a8ae9677abaa6ec6e52a42160cd934ac3f8a27dedd356cec127aa3bbfaab7780f6e4b324205ad6655d7de7253a47277ab214d85787fca4f44c207f79beee9d21dc36fa33f5c983c1cb08162d95c9e6f5ad8993c1e4afd63a981fd026f5ad54a0036e28ccb28856681c924cd860ada9778914cf7ec5f1c2b7206857cf1802cfec13b14c47cb54e159ae2699bc84a5f0e1ae90efa3b605814923e28075ea6a9fccef1d739c6731f8cd6563fd88b8ca8cef969d4f8d89bca01bdda8d2fe8d4f44bd1d42a18657cabd62c8e934ccae51327056e8cd1f02c9717e3cbaf75a818272c938be03948f8a40ba4b54a328857c47eb462c5ec907b1f2ca020500e821ecc8fe090d9c7900974390bdb3e458f6e0195460387e267bee81ed887d5044f60803c03abb154e724936ce9a748d50fc861d617a6a701c92908645a019cd203dcfd914e79baf706674c204f4ea004b4b021cd351c7b02a1385c38f5bc5152fb57fa2c19973cc5b399a459aebf4dac738114ed316605de2ee3a2b5d96348e5434a2644993dfa139814280943bdadc882589411116bad456e804f18790ef78de81d2bf971bfd3dabecd09e10775d75d0e2577c07468b37a475265a05a611636f1f64d7342c515611898d25a8bd1758b45df2fe41bc61c40a88c960be07c09f88e74dc3da6b83bdefe4342a19a78f4dad3adedc9b4cc97acd8b4ff6288c47d11cae3158d53776a23d5c6cb606351dc2618031771ffd2903afca20a5fc83fb94d381f013ce124907108ae325d863e94575fe49cafd00d0cda61f2028f0a93d18c7bba9934710d88d9fb3c30d9d05c2bd0da6ad71b3f8ce9e3afa0d7e8dfe8ff18e81ed46afc41ac039de8d1bf49af5313b4cc90d25531340e7889d1a9dddac3e1a33cf6417e92d3667e4849e7efeeac1351f0d91b21dabcf77a164ebe7126e6c87434752f5a7ba3a422b7b8ec909222dab99980514d9c70cd0bd56117b3914b6140a988f4d2cfc850347286e99b3d5d80374d7bb59938f549112a8cc8438fb8056de97b0217fc358390e7bfe10a9b32ccb0b639ba5445e29c228f90631c69c6824499a42fa9d00117ed5986191424fb81ce4b15357e9497126a62734a89cb9b501f1bcd4c60c73eeb26ed8bf878856eaadd2872a04b8ca5361e7f7f11cfa0f4f4a6b0c483cca244560d141d245c7b750409cfd85189c3276286e569f2ecf07f3a82a86712b69bbb754a3c203dcfa93d84c0736641605393be7c93fbc75ed03773ee22f9d075af6ca5fa1a3e5c1be67e9ed9af4e157bcc4fe8cc157b01803c615cd9067af0d823053b4f39164a033878bd84f088d982f356da43938b67ad9d02df99f32ecbac12bb4fc6c6447bdc9ce3e166b865c42cc483bf0079c00dd26bf0566f96b1c17712a983529ca08baa9a3fad0666af86d27dd71b5caf5a97717653cf12c52ff96a656158eb5b6e626d3c84fe38aa9e3f40d304147e5897ab0ae500a7d3efad2cc825196cec31e09ea301cab441f40635ce5690c97a6654a5b286b27f79b60a0b819f71e8b2ca9ff74fe5596ffd7b14714f782373e4d7475f11fa046e36473efdf417a19310dda41804a1830724a23b7c604a66ace8826b68f735f18bba2104571788f59f965af3eac6477ac0a3bb7aed3c600ac81197004b31a602691776f4e83bc03975c089fababaa7ed26377a00706b2a9908f10e08de7f9b790546a35d3a76805458cc006001a3737b971e441537ab0a59e0aa80515cdc68550fb93645a188db0b33a6004ac23c45d4807966d30f05e0cf8ac019120dc82e53d69284b18807ee68bf7143a0200851e4047fcf950f02ecc880d5a6c5659505d016e23629d40236891a72fcdc49d189c50d0b6481145900a0bb851f24cc58fb700a3c1ae49e9d750c4f40a1ad23920bfee856cdf7ec1c7bcb3700d397e20151ace2c22968798a1141e0c480ca084adb7b7d8585cc576050c832049c8822492a04d87f0da021e3664526a806add60ba0b6b9f2c541ac3e838b3848e82e1c290e0cdfb0a15a67645473ec21f9eef655c619405125d05f3ceab51d33ea2130b84a50e9f216f06e5225fffb4500f2db4c40a625a3be266307880a35e88a415144c47d3a601d150e5793c8e53f77041b15d575d6c3a02c8c11646bd0e3e9190364438338d1f5be9a6d3ea4db7ce85aec94b92c17b5fb03f600311ceeb64b3a966f6c64d2cd828b9976bbb138fe1463ccd34b5604a752980f3f7a4ca185cd70371f5dd6acbe07ce2da7777e7d42e81b841bcacc3fba74770e42cd0af9aed78965680f8f236ff3be5d6a7e6309abd9cd781862abaf35de59fc7130ddb9c02b42ec7574677219c032fca947504c0fca353c99a7c37217b4b3220b0d703283b807a232ebce76d71710aa83aa88c8e28fd19c909e8861a4626d94e1685e6b59cc3b6461f312654f103864953f994bf73951bb98a3ac56a6bcfe485dc3f745464abaa662ed7aefb100e762af2ceb3160c79608865e6b711cf2632ec5d58ec765e88fc6934577e168632aee36de16075733948144d01c8851fd26f424dbe71d4fb8fcac065b5623fc8063df20fcb775ac20466a9b347301a70cef06e434043e49399b278c7c15fc6e382600080b84ef72e9dd62d2fef09b40e099824a7c899965f693aaeb6359d8d89f42534281194fb13442715f76d379ca97d30c95af7eff0552f8f5e5e1d6c93b48b1efd06de40c58ac1dde07ff838f254831165f4a7d4b9c439d1690bd2483990f18acf6ee5245f8e6fa0300151ef940892947ce34de9745a1dfade253235e973c3aa91bf6adf9cce27af4a63aa629c1287a9bbd14c4e58a0385851f6b6be93d3d9fb5816a1db8f56ab34ec1d22953427c93a61c8e2f04fc8d64296b2d1a6ab701430be69658052b048809ef12659c7dc8d29ae04dc706e1ab7477e0057433c8cce517504792d9a75652cd1d21f7e7fd978ad17a9914b6aafaca79cc0b195977ad96b8ab4c0b6c9f1f0d8a4e5fca2b7620c635eb2fc8de778cecce212ecf7ddff47b249f6413c93496411a7019e73a66210554a3b8eb53d5076625dfd8a2980415a0a24d73dc5689c75efac722a12d82edaa4fc8dd4cb621e5d116c6e41e79967126d10f2eea137df1ceee6e8e51158cf0cf82fcbd2a3133e676403bf1d04bde237915955c9388bf3d33fa40d0f3c0490cfd5a9e34b130724ec433393b88e51c377f755b67fc88257d80384203d8af45272670519bcf8138957044d994b43224a10e00eafc0defe0eafc796a3fab6231355cc3cbb0380e53ba29f6fbf7fff0d032ebfc37ecdc29ad090c12418a3a4c4c6b3bf17eea6eb3b0039b62907f7fd3fea9b146778b349674e1c36372c34ed95f255df403f34704ece00b64d15b3416fc86eb8a5bde6d4f7ddbfef9413091b9fc1ef6437c3e3bb8ee8ad43b1346bf1c4ea87a8f536a1bed8150c0440a9fa66601b84b482cffbecbf3412a99f208cb02186b54dfdde030f0dc236bff5676b06160ac98025fafa80f48d1b82db608265204786f99280b34652686164c72e8d0a1270250110b01405708cdcb367c112169f28462acd78688bf2abfc8d301667cd09d092233d53f49ffb41b22df60e74ce986b3b2e8fb381ace1974e71237e6435f807d393aa056e593a18559ba668b80c3d647935ff151fbe7efdb13b74fdce8c01471c13de2715c71b0d0fb8180745f1094b6560a61a099dab11b8b4d965582057114004571ca057df213f47506810830f03160fb7264d351f2529fc79d9f3b309f11208c2513fd2374a4f865d02ff23cb4d6663ae34df1eb94f44260b888f5ab91f8b512ff49602e31775274e3d06fb9ba1c6006a2614b5334260fca867c97f00a66c0cfa79ce0cf7b514f0999f6e3c8c122e27d8260890b8e4604b12b462d69ff1155ffe50d9cacb9180efada4331b081e848345838d5d4c93c0e08a512cc809df6f1514738e8fea8fc1ec99d0137ffb3ca60fb65d627c0343ec80a8ddc3c31a5c5ae6ab2ef4fb126ab320046a3cdaad2934f4c6df98f6f7a83c4ebe5ac637290753e5847f541068d00cf612e4f9328c6d67cdef853b4d508bcd8450a1138df0d345d86169de81cd9a0c73bc16c986ca066263cb0ac5948cdede9268b083eea8750e86f4f8849cd7ad4572b48eaf83fbd39b5c256880668e43a2bd7ac6bf5dc4f9a0fd953fb2bd6a13624f6cde7e18b55a4a794501a904a69532e80c4106567970b27da7083e3e24c1f7f0ffb5b9ca204b5ad4c5a88469b98aa8a44eb4e618f0ac846c1c3f133aa600868c0892476d9bf09013cf5200e224e93ccd03578a7b4ed729c2889bf6338991b3a235c11a8a31aea5603180c40a12ab4aa02584c40511df4aa431846a0510d345510140ca8a20a3aaa11440cd0510d5aa69a834fc8a3ed350b68816b7e84e0b57097c8b5f9df7cda383bea841bad7949576a6584aa1f5689e07f16015b4bc869ba3ea6c24755bede20c98cc7e6b6eb5716d19b299ad3679334bbdde415c9685db90efda96e01c305a1d7f8a43228584be2176c1cb05d74e2acf7d239d5ec4f6676df80079c07406b03e86b2c73be7e0805f641cad0e3d2bcf63d9f069cbc793d64b66e98365d4d22dc62fec07c6cec44e5584dd9d5797b4c1e88b4a9bf4182c76d134bda3f6a2d5b60bc20ce9fa212bc8534c207f37084d2d7d4a5f18ad45d4709aeee39de5927411bc59592dd2eb3a969e05ac005d743b146acd664773cb8032dbcf6d06cfb062ed3d8aafb62107c182b702637f2f63cd4201bd1d284cb57f6d17ace3b66a02938786e294bf15c6689e79a6766dd26ba8b38d89edb5f4665f876ad171c02f27e4da029f048c7173480dd6f6480771bd23d4f6e5ebcd70e8370475b25ee38a18c431bf0225214c004aba820ca0a75aeb2a502f85f612db24e9a6fcfbe2ddd0661d849cb4d0bc950a4623e9e8bf3276ffd85e21fd149a85af8a57141502cd234d565d702752aebfa615ff37ee59e22ca55f41c9bcb0dc259463bcf41cd2432e3d4fbebca2baf528ff111f41f8a9c056b3ea4847d3b29ec5545dd49f0a93f69c3365f6e44a411634ecff73f87f44499506a1816bae70b0d0c52ea26b76d874572867315bb1d19ad3adecd5445e1b191e5644b2abdbd0ed48fddbe043da394b2182cd2d25918b517d82de7f9a1fb8a8008fd532e2552c335177b6ba081e751cdc83dead0a14ec32065870a274a82007f680845d59d4e70eccae8b3bc935fb87ee3620011e5a81e78b456175a2d0d3bd3d49b7c1b8a248afe1c3bebbf2fad7c43875d70368cdb509530304705d35ee3260b08a0d8a51bdad1a814c723cc88ef0676ad2f95a1910ce83e68978e8f527a4cffb2b4adedd9a8f9a6602dd59742e167f2f588d8822afaadd45585a21dacf1bf0756aec0cc2c6423468ccf4382bb0aef11ca86491d7c62958122bd87f37ef1d63eba2c38c0ee3edcf06ea35906d0ddf0ea72549d1830ced6dca0ceec29a38584ea5d271694181be91f1eb76b1d434439493f9b82b63994d78a82f2f1a83f56d5c2f3c872c3b8fcee1be7822694e83836c3cc78055abe76f2a36c33c1826074937182c59c49a175534b017d0a7f63c4ca42a0a2da1a840f1f5149539535b044acbd99f28990a28520c6b6b382d4be629db47475ca8443bb32e93ee913f09c8a988b6641f63f2ee90c1989f48a227b04f633ae82c80a1993ca3e7bd2f85d21c072ea973e4d51c90d51d334ddba6380aec95774adfc37457c0715ea20180114788a0bcfbc9df1273ed45e87afd54ba76d39a89eb1eed0c24f0200019e7528c744bca1c7d4a6ea306eb54831161c27614b1a5e673bb36f9996b9a903e3eb3c72043b1bb4ab97b71c561114059eaf8c42df680ca119e6a9d6d3967ee7e3019514dc9f140d2bb0b16d3b52154f032697c77f458d1144120b1c313e21a5f2a9006ec6846a0fb8a282ac8a6c228194c386789f40ecbcd16c9d5132cae0b2ecb437ed3a291e6e86b6e31c018b8652015300dedf713e03ce370b33c309a049631b3fc052aeedf0dc1f1a711beedf9522cbe2926a2ca93bef4260b9aac2e5b87bbeb5e8bfd284a52bc173bc19ef087beb70331594b63ebe3db1e6bd7b3eb0372556c3681f31cd63464363b3a3b393d22f35f22b92fa5f652121a1e0c076e8489e2d772cba8bbe9215c8363ca9fa1a0795275d418d4263ebb9e5abc001e026be43009c904955bbfe7394112c34c8f888aaff7c516e7f0100e12d701207f137d4920414e371bbad3e28783a3b61880d2eeb072501247db3545d40b207b30a7df9f27f8fb8beb01e052b548f606b59ebc3fc38bb654249c00974762311b0a26673535c9532d9d4a8ab45daa21b11b10b28e7d11be8447b5a2be1888075e2afe0ab8a155cfc801361631a567362cbb16c72c44f36a2c5842cd5b7af87d6e3ccc3dbef1fa006dab6d4774f898d6e8c17b6d0c1d19a456a9cf12d37097a54cfc82d3740bec8aec56137bebf857c26a5e18ee80fa491766744a55759905406c20337e60c48f6602abb08f6d9f55d6e1faff699c3fb2815287e39ba6e1eb4c59927e628e7d7598fce7c97c876b94be4f49d43769b3249eee290fd5b670b41f4b5973d5057042efe841fe0d6276ad9a6aa76421d6304684762b7c74a5360d4775be3e4c4e9b3c771cb708b2b6a09c0101b210673b0f6ea890adbdc022f55998a91ed24d592d35a5fb3d05ecd8eb63989b4227f3ca65286937966901fdd98c9b1a3f86de1748bf89744db90a17e0321137e1c9afd059534d25934088d30f279ad9ac2cb5a1be7c86977484f39d20723b79c903739fe66c736bc21f01332329001724772fb00c1f1f37cfb6766aa2daa8c5b85c34753a1346dfc31aa2da94f9f78eac5873379fed2d373cb1b4bc5dd103511612837301f30985325db36978d0ac6bdf6c5f20d79008491a99e28d2c92763515929eb0557e106d9e9b97c6d476d9f08a13d9ea8e37b245630d85c0f22d00285d6a6eb57008d498e119a8163ca4aecea012829588776133e42e7e398d0ea99f433ceed83e404485ea058294833b698553d2933d078bde99dbde27f67a33bde183f0dcda9e015f6af23f04f5deeeeac31e0c30a9acd70bbf1669add5888bed1d6a7d1f0fefdd2c38fe5ce987c8a815d569505c6b66fd141b4e1f2b0516f8cb648fed482611b63b1f0cd2d31c79a7aaf9aba80f05e54cf9905228fa931a270ecb343578f347a3a6d6c670dc9217d94b921ae74f8ff9e78b7f5547eb23251d18cddf2aabfb7d8f28f75da375118c6ef43dc35f7704d862e166dbbb32314bd35c580d84f9ec646935dcc1aa4803a1b010637b1d0f01bee0a026d04d53e1c62581a69f71d02c276ccb0e9387b1566f8415d5a5a6ec2d0f169e07c37baef11bc1443d9c704bfdf452a30ad86439e6ac447d1c460d59a8e1f8538d1ffb9c3bb41f8ab885353e31fde9d7510578c51fb7baa84a3d4ddf3aaa2fa2d756f01dbe10eac1bee42e8507dbad6262d4c8600a90ca31da8286359725f6a40f79ff1cee634acdf03a2b682cac05469406d5651807cab03eee79469e0ddbba225df688ac7ce6c50a64deb36e7d623a0b65766a91b15bf3b18dc85b90664e5b1dcba80b4ecedbe86f3d8ed91d0a61329d8dc12619bef2070f9d82a09d746eda5d2e73ac27c56acd386d75aad96216022effb172b6518b8e1651f0d519808e653694d01c455cd575005a6e6a1ed0bc0771d04559e4ef8e0f7e2506be7c6b704916fb55c3e0c8a3c63e2d888fe7c760fedc18b35f4d0c3ab3c5b0869a2b2e2076040652f5428b9f56e9093709084702b1fc34dd189f684e1e5a576fa2edd0104369a10442bb08b87eec233cb8d8b7f4465d0bb494a485163a0f48230a29716b70c091ef135c00b96240308bd1a749280e494303e213ab19fb89b2fd5817f765a9eda49402124bbf9a9a504115ba91f7f0d46b5680f64db1b32e7c71f8a28711a8daa1c32089cd91dc089571cb9d93b00f8525e329b3f04a2e4790d79181be0c13f2095374f62999856b39110db3da03e4c4f508a95a60b1596983bea6e1bdf543b2c6f14b185ad1d93197e9d9b12abee2f013ce31403437bb8f9170948c467942759fc2440d4cfcdf6506708a10dec362b912b5eb103128da61487643a52080e98e98d7cc03d37d397593a4c3e9213f6c5dc223393ad6e769c997b27da4417452d386d0a4989ed6051728e2a0306aa18216924322e30bb1c31503693f58ad6a5bc8370f27686aee42b07a1f9a07a84d406b2c918c1cba09b4d6731803563dc7a2a4e52ac637eb31e10c2478bff627162acf450d5d4d169231ac2f7a888737e002229ed992a4a6a4fd11f290b1d09a352f6d52eaa433d8264f8eda7bb4e47d818eb2c7f5b489afd16cc13794849b09093608e036290ba16c9762d5034947b958e9a01c05da8d14df99358ba245f04072a561e441ff6051208a0145beb08b6f9757335a4950ab29e0c8caa2a23085af116db1f1b62438e0196fcdc31abff69f5039d95ea2df6d801c55ed5e74df920c2799ae02b2a46ef3360e74a226e64c6359131d060285eda8552094bd11c29223e552fc565674783a6ee28e315c4339b7ba37ec3dab5dda8e5bfb07e99285b0737f0612f1b05c0c6364932036073f84485d834b5b31b0bdd66e9a8efff024faef1fca26559b75c3f10ce2650936d97607be6364254adf761072d85e40d0402897aedc448f11eec9c031c613f3998474fa1ffa2c55083b97049d25b96a92a9715986339b1b01c3caf6ab455045f9321d313242bddef8b7c3a212c4d76f285539b3477e08f642f3ab3935d306f0d14760c54299f4c7e92ec3d6ecbf4e3df641b0a0cb0381c782d2219f3111a5644bab54f8ebbdddee268ff18202678608535c8b14ce33466fc5c1f5c38c9140cfaff865ed12e4ec64c1ecdd8361d896dcd9fcbdb4cace3d6c8aec4f1225fe2bff20dd30492bcb52ad6ac25e34a1e16f51085efae85759dad6448aacd80224d68d1f5aa2e72ca019a2b1f7fdafe9ed41b43e4d9cab170b5c21eecf5ff70f6deea44f2b14e84503f3d8069d3e95cd2e7b88cb5ceec5018e4e54a2d6144a7cd5db3ed1d2b1d67e26f8a21bb548af17681ffd4a7c6a8b760c7d331964c23ee8d755193e54762b4f72c81a313c15def1046399048350fd167ecbf754bd9ccc3a560250a7488b53296b697a65dd8069ca1bf2e3c8835e4ed466ae86a1eefda42c06ae57e8aedc4f413c2ab56ab898da43df1a3c19dae25988cd5e208323bb0bc85c327e5fe255b5885a3e537253dcb044970135da4db493c64d81a9ab969dcd21470a3992562021026f1e276c1a32dc27af8ed3c8e1100d8afcbb546476ecdc81db73486fb1f1dbacd78cc141687f2bd20a767c555a6e943ee98d30c2d734603a4bb583d12ba852fde202776f84c75ea81d111ef33af2ae48f7d2aa087856d79d48aa4c30f2aa042774d08c79a4a7661cc297db3931f0b86ae0f8e723a6bd5a7b5697756a5e26c8b38b20f38b3fea9091aeb6b92ab55a9364cdcdf59b8bc2e30126d1101a7369c85979a5ed0cd217237aa33b805833e63e1c09228761846921deecdd0b80e601286f5b4832e41da0c8e0fbd1903dbddd41da51d4710b6922e1a7e87f3083a0ddd32e76109e68cfd9073bab47569b1893870be566251940587970182d5bcf9b0d0be93d6fadd5d53c8c0a24e7d072602a398816c1efb96068592e9574e1096cd518d4a4e339414dc21ed2a75c7105badca0cd6145f1baf7384b5dcb709628767923b95317199f7569cc1f12fce8bae1e643af90b343f185fd8fafec5f79d71f144edb39b53d50418fede318203d01ddab3bc6ab734c4ec29c32f1fbcafb3106e4dc457360d936a3bd9088c838b2d2fd23caa549dd35816a02bac7089f821703d9903a09694cf4852d8287ba1894870ee72f007cbe0da5366fb65fd9ceed479ec818a15306f08dc0f1d50c28ae5010d4f155996423189b924198bf83193e2b255b5665b00561542c723a1cf95b2eab1920e6912226c155cb99e4c9b0ad13ca26cc3e9a20d468b3c280a7fb6d48a4154a79fa0b8efafb1140e2772d38d08b627fccd3158be2891c6529694a82156a409c85284c93359ea83bcdd66cb45d9b8f655baa7e21f25f1a79672834e56173cf5e20f678992bdca6af260b83bcb8e0b54dd05c5a7301f110c3d990db9072934ba0647df8a02719588ef63527b76efbcf94bd3089efa4913605021f80b121331b30edf84b8cb015f9aeb5ccb27def315614f5b8931f851744827c43d0892a0c67a570dfae17d68d77663399553b3b19179b0965d63c1ffc7d0f40b3049db6dd32990309cf61603833735d7bfd0c03322521b3e011a97a1cbb58726dd4370ffee94fb040e49649c396b9f1410323dda62b7591995e8f7c0151fa7b69e8fab593a6f82cd7cbac0ef01cbd734c622b943ac606f4d03b93649abd7c2fc2e56d495b9d17f9033327f0059726ba59b6f1fb9bb045e920be1049170cdc1f0b14fe063a5cb827c370ebf8284afcb8bcdb30c0e8ccfb148de801747afa9ae26286f7dffc8bede1b2300f6399a52a9c1984b2503364e90e0e61c9d1c9b448f97e5b8e2fd4856adfdb297cb084240fe0946b72432dc7355a46e02753cd8bbe7f0f5f76e0edf6b33aa2117a698c836bca1db3ef2c9262e617db64d4f6328fe755c569ab5cc5b2c3b6d8299036add3c0c01b23a34715a2b9dcecaf5a2f2e69ed623292ca1b81faec789193838d06c3dc5862e9d86f96ea6dcd3fbabd8e006000d1e275441f560959c0612ecadce24cb0b59a155587f5284d1be836dbd60ab499c126622db8affa7a2aaf3d4cee1d0cc72817edb8a2f9755742b22a7a7b36e44b070d36192d33f07ef78e49d538e0fb40140bd2093e6fadd8a88253173d34ba291f4bdab14e7ba88597e4db03845d66a70ee9407eef4dff1eadaee77c9f44ad632aa49c504df5a8a9e7a92403573206b8dfd2f35d82293bd4370b5e44b402463d471c9fff82594b298a3c9b6c8c352671c9cd5c95524f58bbf80a3e72df751313a3cd431ea929fbae8b60018c62353b3238c0d24aaacbd45500db4c06a4c5a5dc045ab81fb89808882f14f403c4052ddd91e6c9a0370dda41ad732af4964381692d8a0e3ea7496d9ab047d92586adfd6d11208caa4f6277647d0b4f16fa648840ff96412c5214a93068afe1751b978835bb3b5647fe44e0489440d4f89992575ea00fecbdf4bb73199a2fb1e59615ba14f401dd09c014b4e07c43f0c5c24a822cb04b01281a6a9d4c4f2d0ec530b3ea3363f7071a8a7f6650d2953f56867cdccd81946bc03f1a8be3cda2b228b4d5f29d65d47bef3b86b514c5bd265880aed2895f78b47ff161b67b081b8bb0506ad00e451f16c8a8dc093f779e1c59480795f8bd88d9c76e29ac74ce124775cb600d36d89402ee12fd117141bf99c55e50be362493bfc86d4290809610ef4dc023fc0725c4714dc079655eb79610b95e6c5210ad010b710611640ecf32d1a1ee2f88aebb9f66c7875beb645215aacf56f5bfdc2e8087fcb68c860d946b58af2cc6b72f79bea905d75195a321bea7a960b75faad7493e0af180dfb92fcb37876977a54d52d8db374af2ef32d5c17b06be145c263e15c2dbec0d1e0aa315803df036572151d5aa2e89ba8f7112413255088e651adb00a5cf6798c0c3643bc5d392964d6d1c1c9f37c92c7b33a9d881da0b6337a13838665f6948ff70c49bc20ac2382a6a5307757436fd1f1c5ad37c8283e56d3251e8756862834e8369db8c662113ac20a17302452a7587cfa8ffd0ca2bf3e2d6960d0903a16b7f6a20a72e96e934c8a66f6e620385d81b94c1e48464dd25f8dd729298a8f0aa1222003cfec1606b58d28ba4809140523e8de6f97dd7803a58017a685153e851c3c6ba90a2435caebdc4f21015ba2c78df16dde09140e22b5eb6615eb4c741d02bb8726fdac2a0220e45ccf6b543793927d73953dd265b18eeeefb5f851475eebb60ce058acd78332221f14ba4898f2832baa152eca792e53edd94b4ba487104c2ebf399ba2b7d85f08f55a5c5f020619f0dffcfa76dbeb885ff63ca46f889201f9fc90acabb51c84f86453d152c71dabc1cdad08a2f602a7d11587e1927268565292e7243c71f0f2e8d71197d5af25acf119209b892e756bcf5eaa3ffecce075916f4575754e3e4a5a60c17c931481cc0e882644521cf46047b1533424a86c1eb647df5437a11e41a47472b7d9dadf46644409e2c43e9ac5e9de55e8fd33718a65421435fcdd75853e9423f998ea6e9b679f8cc22a79bb49a0d24fe67735d007266e053981629615bbe8a51b9b7b5a35b2492ffeea0301b6aa5b46b62dc425de9e86cd419ce2e7b305f52d768aac1d9cd1dff38e3fa07a81c2d642619e32141e8d0e2dfbd23c6e62cd68c7b81a8f057bd513a9c6125a45d2b737b0ce4d9022163c0af82e1c4aa3b1538c09660905e05c015a6dbfe8cdddc0cc659d5937d8807b5b0bfea8c6d61ef623112396ee63291fbab5ce76de84e631693dc298ed35f708e3de37cefe493462795984478f76dca4685ef410b767340225ea8578ed13f713b36faf89dae9624b7c09b97aa3858c4d11954233e129c487bea9bb066a82328589dc45804ed669b8fbc645abc306f639b36a227b266c0d310c8c17243d54fc9ee491a0cdff566c2c7ac7501af5db6ff9513dba0bccda6b526b7a6cf89f6507d58fec0fb692d7dd2493a51c29ba171d0cdcfa6baaae70ac5d027d22f6ef33199d0e1bd8bf90ab1d7c08b6a22d8dd6a450321ffa641d97990ab2424ded2245021216352f028dbdbdf15fe96037427ba43dd988b6345a93d194a30f1950fc042b69fc5f63a43a8d48b61e582dd8462e4a8167df1da6c27bf37429defb8eb172df8daa9ac9fe7bb11fb9287e0b76771444715ff6744bb1e8e0225c469d2e4d45dc5ff6bdc03e634371fddaf4194f39d1016b95c0d9fbe66b53925107017d94e99d8b2fdd594b786d89fcff6bfd970b5095aea31c75c2ec5e6c98760e18ed28c3e6c863a45c579f19c2b525431772da5ec81a0158ed0b95222be18e93180007c278a38dd01793f65f4457e75fc82f0446207b21f989dde3a55477a2619580160eca19d4000ec395667b517a32ce5bc5c13ee2986ec53c0e93e51c8eb56eeca0ae19af0c3d4fbee64803dd5f14071682cd04216b94272993d80fddbf9b7ec827929d2e8ddc3326d3f752975cb3544a095713282d8497c49b412272d2d851556eb34bfd893be78b8c9b664ac228ef455d2f1db89babd58ce1ff9581fccc07d6dbafb2e110a8b239b1ac9a845b8ab35867da099982f6461fbdf74fe915f0cea705ecaf17c63fa2d950e9cc2fa812298224478b54b6a9ae642095d495522481a262814f26544a75f352c79083682055c954ad63a935d783915e18b4bc28dc5da1b0e5209708cfb8ca0b252fa19862ae5a15850b3601bdce0763d79924b4db11b79a066c5fa7e87e6a48c6edb4443a6f3fdde012116e96255352b19f348eb4c33945f476307781ed390b7cc8bd1db861801c081419bd1d6fe3be6fbaa61378bb9b4b685d1a14c1e4fcb720a37f20ca48dfb516ff1eaaceb5ad61467143f7c5a1cef9e0cfa1bc9a5e551662dcb3dc48def93d49f7577ca619017d4ef102f1a4ce6ee1f5f04f50f2e489815785d08ead6dfc8a69022ace00eb893e1c52633ee50ac8937127f25775bea546612eb44582b510f83dbc19c485f5cc5907547986239071f9a047440bf35384c0198716c34337adfec8927397fc49ec9808ca082f734e24122a0170c486f0d639afdfcdb9f03a479b30d7c97879385dcc0910a303bd3ad448e7a9d89c29e0d64f720a3ddcb61fbf13f16b40f583ba18a8dc08ddb52c56d79f3a1619ffd8c8c8c84789993585b79498801e3481a28d4f6ec81f7bb71afca779d7950f076a6c9d2c1f6371d531d3138b90435a5c145837d09bf94933f5b01d3bd36de8814468c6b65894c532d142e02090958fc0e4667d6c22ead704e34b7863b18d625d77cbc9254faaa4ad7966a13517c1054ced20d2516a1da41e462668ee06c350c4ed5d9b45387490e2609a983981c3b27560bf68d599e10171c7eb7cfb34ee9e2fc08244e8e2c9bfe072512d7a9c3ac4536121d241f50839f47d2e025d0696f91d2aa0587d5350c3875e3481c4e29cd45e5391386b0fde15746c972c6a233e8b5b7f2bcf809d9a31d4c4d350a3c6dd436325b3097c13e93f044afb352e45f50bc85a96a1cb4c231501b8c924e4ef8634d1338ed40cf76ca1534ce0e70f462e7a28ab874fdfd423226cd6fdc6e1a2c47313f153f91953f1a82ee5ef0faddf8498cd8a6f81bc98c0b6844844e14c5505d2f0128aaab7f6ca6672be953c401649d5ffaa90f4ea043001aaeca4abcc5b31b7fd6a660b2e453d48fa55825c258df7ede74ba191430f6961dad91fecbc66756731358df14ad085e86aae2598e372161f04d0f5af5754eb521bba1d9888ea1527a394d0ce7857f2561d540393af19d246bf905e8aafb114e5d241d534ffe9330ec9e1353a9424c29abc2026216af3c081a6e6c5d1a4aa530056822f258404c280ad22e32788e91533bb66ffb9fe1f0b8b6bb98080bc37fba35fa5e5d576e30774dc01e8a83288e945684fcd406f5495e61f22ca94444ef008e1172fd9ef18bf30f86f12e221149a34c0012db7e324f01d0eb368f41d5705610be0fc4618d050fd007ae2e4339974b82433b4eb3a76cd343e92a8675acfea47180d04e0edc83d49c96260a32e12184e2d6016f5fdebc11e8312b1a7f76ca9c8611b46413f266840aaaec3ab0f12a5e9f4ba80ecdadf1a3d0db27c2ee60ca61213e2e6d1573168a22b6395d9f9abbcb1a852eae86e9f2ffbe281ef164ceff202033f2a7cf606cfce4e63c5d8b6d13a3b10439aa74a24602c6ccf5e40fc2916712ffb534c7bb3dc152a314891568ffdfdcde26a8723b12a3db17e2757343d5fd1a62cb2ac56f521c783999968af23827ce4e5d7699aaf925656a19cbb8d5169a9b367405528ad7997b92e64db9fd281594a8f331451e0a5616a1565da967f60b4623a4c095d3d358c11b68f66a825f930767e1bb329ca74aa2e1bb7f08f6fdb6116161c6a91740cbb3af7db482bbb0d6952bd3d2e807a5229984013a0a998e70a5b63aa07ba52cb8f4959252e9f80dafd812f391bfcbb5a22ba7fcd1ed98946a78893d19a3df12b904c7592f5e606cde0795192aaf49caf8db4c13061a2bef69388f3db492db1cfdab93b139b384b3eb7fe5a226bd3b32bad476604f4d4fffac336cb96b32e687c6932e5a4ba7563789ab517887689687c5b4b69909db9225e62587830c98a2f36b953a510963ece42c756e50f24d92592d65c70d6e961379e6fbbb1a3d7e30f57da55ad321026b957fff0f9e395d24b27b013a1bb28ede7833c2848e07c568df656192e810f674574668b39169d304dfd431de0edb2414aac3e8759318902c210d17b2cdd05a9eca7597e060cc61d502403ec2964ea5bcffa47205e37cda4e3741b6fa3081907deadd753624d80a289bfe05af4ea9c37c2c44aa56e20f19f215ea2352f5db209c66f504e95925a6bab0a8a3cc6c90c66ed414061aea00b2b8d125253410375eb5bae40f774bbdaad6834749570631c3ff5631a6aa781fb4529504402e84873ba228497f7a62384f94dcb45720f81ab4b5791a6aecf3c24ea6bea1240afe8905e3965dab541f8f5b0bc7ed93808eac0d948b281088946b7615f2f151037e1a441f1842a031bab6fe15bed3bd52ab1155f202da3059c974ac75458e4b6e21cb6c7b6120228db007babcbaa797714f8a819fd00cab799c8491ce3a754bd5f4ba0053f0f54ad988eec44661bab2cff4e6ea9558e812a19386458a3a861f5c58e440510a305e6afd8a2f408f3e052191079807a67714cbea6dc23e8df251379e4381e0a27cd1685896ddfffb7993931b8e042e95f380b63350664150781de8faa9cc38a6619246c6ca00666856d60fb294a0856273d9723214ad211ea281c731044d67d092d1854f56f833933faa82fe517fc094dec46e08104514ab61555bb666da69260e98369de55fd6bbbf1b5906ca204c460266d71f0edafd007859cdbf085576cdf0131105e7e2b4d1f873ed8a49823501eaa6ef4d635ec30f50e2051829cf8225d7bddb80a9a99cac67ffa09842f8200625c3550db533436f45e6fdf43274f81eb184c8db69124f29a64a23dbf886723cd408bf5e1b733395cccf670bbeeb0a7b1a51d449c3d518b794d2cc19bef679d0203e4b19c85f5e16cf2bde64803c2299661a150d88cf713fe97ffd5eb7513f495a7f8982853616225272b8c277d88d4db9026ef45dd2a8a90e38ce8a08016a7b1707d56561adc92933d86e49f1738663d7fda433c6eb8f4ba23f3a62ac340e5eec33a8509517cfaa1e1bc07c575c694b14162b7d0e07f52516f6f10bd6e77ac40a105c7939108c18ef5ccea45dbf5fdad2d07346d419588029c140b5f87b221e65a2098c9112c0c41be18ab8e8da90ba003beb63d42a14e2d7109908cb4188a4feafe44bc4bd4b159081de594b959ae7264a2eafb1bb5ef7d0e7b117d03661e57d0ae98655e09b71e56464b3d87f258d7982c9dfa88dc775e733d86407a594e4f0659bde4162b81e5374fa1e083b2c117578f568f749585ed51e9ab020a23fab1352227fe1fce94d120e06daf27ad6dd49c30a1a7e6eb93e8c1112e942a3f0c32d4372775df57fbfb2e56f0b1f3f5bce87a0d853d87e3336246912709b02625cdebffcab1a3d5e5dd308160b49efb5200208e39209a91ee7aba07c864068cf6f89bbbbe1030e8a432b6a5cc2b3dd4f7f9489e64f7e17f586bea74e97ca023f636fe00d9270b93c20590031620907544f8336f920783edb6380e8be649a6355b9f7963518dc25d95e278edbaec27256f6b56ca44c55190689e5700f3a8626c0324a976d9807f24c08b02e02791a06f9004b991f61a14864d00b558ccb487a2b34854ac6039d4084df3a0f4ab41e1af65ffe71907eb48e9a1e8b29d990e4286a89a4f43aa4c3b35f2db0f0644086b6d2078f568aecd2be004ca7bcec462fe5130d7875b138d08ec538d443519142d30374a75e8c1a3ff3320706c18c9d30b42c8329634be3cc4732372abe57664c8296af9152e5703b7509f08a0f98a2def979b08f9a6ca3f842b2a6b44b61a9aafdc6fe90f9ada1136d1e5fd0d353075a79f5a0d38afe54fdb9141d5f23fd985eae0f2378a331b3c2f9d6450d65d973c87851901805c076a3f38b2542829f45311e074f5f714133504311d2da4d5ffa3d1b66f1220dc9aaa1cd810b117fdcfd7ccc6632a75afba17f80620e047508b30ca0f25db099b8e9a0c70b65692f541debdac5c516f050126dc13c639d2e80ce4f1f71b1cc84f2deba4e8ca3f09781e578fc69a2b2c47ae5b343e79f76139e02e3545c914584767d3db1035d6f3f005622fe184980aec43b9882ec9a18a62019b52bdbac729e0229b6a21c8ae6d82dd97a50b23aab2796030da5ba47fd90ddc72dbafbdb1a598d2689b4c4d575e7aa2c984711bbee7ae298023249d8b3f8ae7a7e4738cdb639df92a4b3db2dc6f802296ab52b53d1c1fbf39f880dbf775b2d57e53829f755e84681acf693ad288c88a773826671fdcc3561795d76d58f315943c627fa920ecb36d118f3db0e86ce1352023c173b7ee564577f5ccd34cb1ac2ddfa6247d8fed01df13bdde23119be977c2aa73eb83ab09e7aa349d506ff45b9b8ba04ca0a3bea99ac0c80f8a4c631ce509ad797710d983a6702f1ca4662ceca84efb8ab151509faa93612157d05e905f3f3320f56330c5599bee66cbc7504b2b4fa2172bf40b4a19582fdaed56674b2104f3891e51f16a28577e858e4396be52c0adf3423f50467f58056da0ca9f87b6794592fa02017753316b2a9ccda4a7bd9fc72327b951b0e78431b33e159a7db0e985b774bb0b999f600a063e673aeb5bdd0322a1aecbe8e477d3c8a0761ca0965423afe27fd665eb4562f0ae9b7df4dfe4c7347c9477aee11839d1920487838b3c6a1bed994a9a280d56ecd94b4e9cda5796d781cb7420c26333e3eedf1dc05a52c88d6a89a8d22c4b52be705cc107dcc3ee1e4a08a7d264585623a5a1bfba92e6493afc796e577695a7745434ae0d22c6004178be7279610679175d0a189ae2e081c5e8d352ab359803a280322ed2a99a878c73cdcb453e5d519e9aa5500d7d2274e9671dcef861f2ce3f864cbf18450762ec650dfe3abfeed7101e9b3fa3e1fcf90e4ce6b9705a41bae88674c5ac3039eb834843cc186a946d45fae427379405f6d846ef7700d054e86baf3e6f4d23ebe5e575a2d3daca33c866a733d34314998a533b62387c5968f85354f35a007f44a38eb36dcb485a79912a1b01e23ec79e29b89b7b80f30c56c62fa4f06ba14dfa7051be2cb78bbf6039d24657895d05cb4c313674c3b18c64630ba760434b4152207189fdb53d2b086e2d63e96d1f34461cec4fd8db168ca5b2bcb7a0195113fce87c14fa67168b9bbc68afe62d1bf484b7ed1f80098f552f6af8ea4f9c6c92c3a26bca44cad5564c5bd77b48fe8cc4cbc9bb5a9bd23e0ad5e888a97c4907f0d186b6d6b7ead20719e58a4b4b06cd89a4a017420633533482f20f1857610be8a1a247511793fb95b49cbb697e9d0a2d3c16a5dd48f3c91a09edd3b37c62b2a99dbe688e9172d8071b36341b37efe70ce617a27b2b6641fc21a4dc2c8c6be2898448770efe75a54165681eb1cadf3ed7fc2a58c4fc2fd86ef461a2befbbab90df035420b6eaaa9c2e0464f8af65002cd529d36c80a370dfcc3f84cbac4d8946c80bfebcb7d36997ca3d4242434982521630e7ad955f9c9d1fff8b696697f09b4a06e0569f6ca490d9c42d681448d42aca5923871618431a505f1ee8ebe4c78c66effc9eb59d82c982e0f30b93423da7b03ea5d6dd630618b38484c2a2904f31ec63d7529eeba9e808242b12070b58988971bd8f99fa12a0891af6c7797dcb470c0f7bd856198ba4c70429baa44d767cfbb47411d10fb34b9872be39a2dbcb99dcbd3fc019bd77726704615e2e03858e9642a990011868aa292c4f7fdf4b55cf1a29e914ccf7db5a536c45d7de372af5f8c5ee4bf82b8ef80bbb907d4aa81e7332cfa4dc9e17140be0da5901c7e4de94f64f1a8c71130ffd07b17b6963b008fe01aa4c2c6364ed2fe14f6bf44567459700b28887df0c2249f2b07643eb0a4ec1b5f110f0b40261f988f6b4e1ae5b304c2793ad0edd3a28f426c98274aa82882465ae791412014dd65b3a1da9b5d6e11663f76e48519054ff4ff2488c806945b6740cbbd1e7866b875476535ceb16b28e019989601da8da0c2b388205e53ac9560665106a515a100141a9399290f38f9f10cfa939130fe98208527c520299554e3cc9c2e45f2c7126bd22937d0b49ecfbd5761eed0292f0d58966b793173a9ec314f91e1ec2346d5f1107431cd40dd029e9ed0c869e4899bbeec32f69208e04c59b3c2ddf677d3f71f4c58125693a40726b13c37e37e63a3bc48498dc140fefa17404d20dd9706b14130a248196734a7c890105a825c315145fd55167cc67b4e26757d008bdc059d5ec678931c11f80bf436bb7c214afc0b27cd502d9023fdb6a0e2c07b0069829fa03483580aa114209b8209a36c69c6ada621b32156826849f33b0b9970c67ee6c18112a14b5a5aa4954d1fb7656cb8f052f349dc1caa1e4d61282120601b4173705ff38518538dd16a8c856ab44ab713f4cd3a3dcb8f733326478f8f97be9afea7608a0ca1bc9d2ae25134f03d11a94329d2f8507b068902a593ac4922166093138d305a6a7a35c8d57dc15595324eeca285398d937104cc961fbd78587a1bb5b91ed5487bc4b3814b18ea18e94b4170780742f05f460303548d47515e805d171560c13a4fc3cd2708b8e82f256e072d5f8c0b06686a3ee2317e858545c6fd96714420201abbb26ada076e527015f80f2d0a8dfa00088e19c9f2d016b6b3dd5dd7cef8a445b0529743e4e63840983934feac3a86c14c81d23cc598358d77fc2e8c39bc3fbe47e40e88437df7cf413e3892648adc152be208241b1ce00984d9080cf33aaccf212e2e221771a93055982b7dc7fc729a586da74b42b12748f7d01f8d2cc9954b85763885008166543a01a6da72a757abc587e799f54fa82133768f262056663647d4d9082ecf18a13254469722e8690fbde72a134c2880fba742360adedc4a97f1324d7dfc2626ef3b429097d1cb6f227dc5cc33e7aaa44d447d88bfccc4423d2410ab558a7e15549bbd1564695087e241b4f96792fdb4274a020031d4e94f9771465b787aa9339c52fff0d51512de84b63554f1de1617ec59682d1bc3fe346400b50f4e28d520bb644b1844b336ab361f892165236cd97e804efcb21af98f7ad05d6948a67cbb659fc00cdf876fc974bd78dacf9b5ba40c71f8417c070d582912682ede3e82c47c04886d9590fd813babe7af4030616b1aa2bd2dd0f9add65e6a11e702246a81b5c7b3211663b862e7d9787e5b5d0610440da5632a35328c3ae9214b1cd87ebaf986ec87e2716bffd7187c51323de7fad52abaae950b2a24e070ed745759a158ea42b8d4b00cf73305c0e5d13ddfda086e87490a73df27699fe0eddd6a593258e18681c53f8f5fa35ef171c366691d418c104e5060c7a3b3be31bacf774850e9da8fdffdb81efef952b38dbea0157993f561e14fe0a536f5f4340234fe6836f1e758e0251fe195dd196c1bae8595420487120248ae8d9e0027d7bc5a6cc6b52b5765240e5befddba5f7d0db250b071d1ecffef3be6fed56cdc0f72d9f148c9250636a22bdfc0915c5af9f4f2e2976263f4a704c0262ef28d36f70993d409481a958321c15ef2c8544fb9118b7d8e2f57395d3e2b0f91915ff4c89204f65669911dabe55723b9de20d022a4dd7033974c0d8d65c30fd1d092e1a015af2c2754a01d02b06055220c65e6644661f7003acb507ec47c21ab3ae6c3988be627cf05ecace2dcc2624c2db02a594972ba37c7bb1a53b54519fbc8b0fc5f2c03b33945dd156f1c5c07078ac668710f78686f687bced36167b79805ae5695b48d09da0868fd81e2f3e18a2d17b7bc907ac26b061072f8e00a5b0451250359b3fc2f76683456fdd9380d54fe3139adab88b2267f9955e6ff31a446d44035069dcfc8bbd9c3f2eff6f0e44976a2341c6ef87d7175de9f25058ebd5e8c8708b8b634b9165a9731d9941cf687d385df03503803ea1beae6ae24da2f70affb790bb1ef2d54d59e807e2c723242f22c43cd8839f3d850fb7ec87ab9ee93b3c0b767192a6169def786cc59f30abb7c792f6b7705e77ad0b4347d780094baad79105b82780eece63ad43b3206669c21550b6ba2db777ee7c9e36abd82c27179cd131bd72eb0b8b2c80772f60291a5fe6009e00be19d973b4db64e85541779982c7184e9dd03c7760a1d5b84639f5087cb86b85ba33172ad32ddf0449b7c1136966e36f6c4282659acaee444bc92f1744d61019af79c43126335fca0f6abaff033751beb049c2e649473055e3dfd7822b3e00eb266253e7de134f91873c3fb92b50fd753b0c85f52af3b38519c7180e14c6ac277d4a18f51531d15a7a6df3721c5a0ca6e35e98d847eac3fe05196387a1805a49649728417838941e363af8889621048ad045d77259df1cb7f160129779eaa3085063a632dcb8877e747b2c9b902c18c5aded5a7f8013af958f6d74961c88bdfadc3bd418b0fe9896926c988c1a3c77f9302c8fc4048d090a82053c97180022151417d195833f47410b02bc28d9d357de0e6642ca43e489e23cd1d6a36917794f7c492ecee6c4f20e5420a4b23a486979b71a33b80416f2b9a6b5a8e503ddc78959a6addafb83815f2d387d973b5c1eef0095c395f8b4c8911cc41ae8d52fece0d4cc62570f517a2c220163d1823857413c1a8bb622c9d8e2e436bf9fd45e90a37744b9430433869390cecf5646864425fbf4088d7211587b72d578bf4a2b4842014931191386b8c3c176187ce5c2a8b5be2bd848b52041cf1eb664de8b9704c854ff44403f88202eed984fa5095b1c5fce2c0dac41abe01747459611960a5386f3183832d7d1dec036a1b4008798e26e66de4cb55cceb5d5ae73901774cde43965237868240eaa04bc5e9050de0d8f2dc28a3a095a1774a6f8234fad0eb6a0106a0a90c75df30887b0a26065b7c60ad152d03cf7447e7725d23dd7371e52bf99c70b5062b63ee090f43d78c58c0aa23604f47e341e21ec7c7046b79c2f0a07eb1316b59b970c0e2846e460f26b24c3a6c81acd318de74f4371a7b7f5bc74fe8fafc7bf4259a192434592cf07d70f22a78ba71626790615bfac2d1a92657f88e799e04b28913de967097013f1f686734902f89c14708d4583be1b961d7508cb32cab1a69aaf653dd06fa5c4715aa33b6dd2899ce5da82ef3a3536ba30407f390d49a82836fe320a9b504a7e8fb7e6b43eac81401a2a75eb5c23f8711e045291037c67e174d2b42f2c38dcca2909f1054f75d57330709e0c2804228f49fd5b69e8fd52c993761e9162fe81bc2f2dcc8a082d4978c0cc25083ba16492bd742fb2e56f4cadcd87fc019993f808cb3356d0671955226dde4105008cabfe3c17c390a24c59125f28e7edd68c8cc9acba3f90a929528fa5e54e4cd78de36795d24a335af0bf9c2ee9f20bc6f89223b06b4016a2faa7b58072e32e607e13b2caed6c1750b4c5d53d1d2a3137f2ffef09009cd79b11a2f7d6f37eee14911d0978e034af8d74c1f400d7fbaf401c9a2b1ce943fb2e9b190611d2412ca7a5973da8d336e933d397717449ed09e069979e45e4af2eeabb7ea3965e65ec997897528dfc4aa38b4d326cbe40046ef168716fdb06483fd1ebdd416c70b83ed876d502b8ccddc8fe73d64747d8ff41a4f9af3a1d8e5ae7221a49f74ad0ae941a72f91fcc96d7ee0cd9e884a06aac0449a80cfa2ff9fda9a87ae5e4afd8a6b79da006d7868faded8ffc00579301e40a1c3b29dd012f222196611661306c772542bd462fc04b36a5f929b50bcbef0addd3f1f1ee5d01850cf51bad32ab705147e00674902f329693830caa59fdca883427e3d5524cab78faf860e1afc27a737f41a81e1ce78e287897a78f3d1a4984bebd097c0f96346d4e023ccbdbd01246712a291830087e8ebdbe4cebdc293b1ccc76ebe2d6efa5e5347988f8515560107607afaf5516b90a48f65ee975eda320dd918d780275a96acb8e0935a7f6b433f7fda068e19d758b1cb8977996c94956943f30ffbffff3cec75c1861367289efa30a7bd2ca574d490f7f19b6d1774ebdf1abfb841ddcdc8732617c6480a4ba0a8e0733a66a662761bb93002e2250c83e5461e43b87ee8c900d7dbfa6830c37a6cdeebce569cf52fe956d0a59e55c7469b9d21c7693a57c2b30cd79dade5df07fd8bca39fa7ed2841d031283dbbc972fc7fe6ccc10966fd08c012ff6f4658a48d761a1f0ffcd0949275e8fd08a04b387ce101f383ec7a506ed0e9656f7069fd2b6daf344d2e6276db3cb3c8d114e98b1c9884a2069bb041b74454b00ced176a0e98d26b4f2cb84186d0b968d6ac9319eab1fa3ed7de1e0ad5d876a4c9a23f2974916dd9b1c47eb701205a38907a12bb1f50f89e578870b5e4a52b45c2b5ede21eb39b24fda27f755c1ae948478f31ca16616469e9f0b94885f1ab59205e45fc5bea6b104f0b3e259a1a0468c3174f4de0fbd40751a54250fc92d15c0f8537df8b8247b1d150528512e09fbec93365bef6908ee0a67620fda3763743b1b6cba328a383e7cb8131c02b5868228d74b77b46d272bc60f14f428c22ba7b46f981533a4b3de694312c4b2565be9560a531a54fbcc128a1cf00e1ffa502cc0dd417e7b3b1b5c46265fad8a6e590ae6cef1253db25c51431b4fcc8b594b6e04e0532f082c62e1cabb8c923406999279b0bec0afc1b8a1426a637b0b1aefef7450f0fac604ec98c401cb05245e03ca66de785720181ea503e672997f153315139562e624ff637aa5819d0e91e170af88f1574b18f329154dba52f02e9edb7a5bbc3dfd9267bb30291876a040012ecfb88c06ac6201b75db9503f7438d8eb2609d95bee2db79452a624039b076b075b07eff1e3571363e4fbda099eac8983093b599913ac7486ce9ccf643151921193c54449459455c60cf2aff5e30767ec2f6e422ea0c93c8bd8d56a051926615373ea1a39c8ee1d8c72bd83439c77700a8d775005340e85dee7a9da3be8a46b3239bc6b3129ef7a8c9bee42c33bb8aae11aca468d7774faed28d5713b6a6f6e6753396c6e70497eb8cce7f01b7e391b4fdddc70368e839b7fc3c6693c470e1ba736396c387923074dab85838b7fc3ddc891b2a149c1b7b9918326c5bdefcf41c37c837b8f83e3bfb9ceb1a76c6e95cb373cc5dd701cdcfbeb2f77c30657e335381a354ee328548d57d6501cffdb6a681a6b4771b055c341a41adc1c12c3d278e65ccd9bc460af5e83a30953839bf12631bc0637f32631acc939fb2631ecc96b70a7378961ad9bc468d5e04c6f12a355e3f46b6ea7e46b9cdb9e06d7dcd72a9adb75d20b99318383fe9890f31d7c4aa60eb6b8f51d6c7198ef60ab893aa9831d6cf9401643c832d2495c79016dcdd400db1c62db5b40e61d7fe61d7cea5c37f89b9b4c14c3b8b13671494e5ae635e33f69f5b3cd6912cdbd3ae619976d578bdc7b06e8f8f9a94f0dfbd420c0072e4630f15482ff542197510a5d7ae659c691bb7c7a3b8cdf5242c9401d84710761088f9847ae63e1e30c1aef6e3c9b364d879da625572dc7ef70c73e7bbbe8dea15e668e71d06377c3878587d0df16992384315a51c44b40f2a15f81b403329e90f1845b578c149333ca0ca3363c303eae0aaf39e79c937342f076b43b91428e0d1109b6e3a1f7200fd5ca2d287018940fbf208518ac50831b3441a0f912d5aa2e965f762ba7a2684eeb4061217e1f2ca442d9d0ccb39ccf7e64ceaba73bac82b7a35dcb8f2772945075bbecf6d83c7cbb33942eb663d5536aed1b02af56e5e497db86c1aa8865088d11cb101a03c7bb41f90199acb7459c7971861f901b5dc6c38c746291c024a802dbcdd66cb50e0d4cc29e798049f4f9da165c82ed6a84697d8d30ad56c1a4d9b22d1c2d27d487d3d9508aa6d667b7d6dbf9c024cc0bcb9f65cdd7e39f2cace6dbd4fa4c4a4d19762a3d20355c9e7a9749919345f37c37a55675b1dd0c4be96758df0f955e8f969d247eb729d950925220625529ea01911291a98a16a2304820d1b6b41444365495889488aa103dd4a2441486888888c854450bd1d2d05210d9505dca8658dbeab7072d0689dec451302cbfc98374851da5ae6dce626cc72e271258f4d4e13664ba7422f5b13b35c7c63c2098f748cdcb07699be1f866f628c6f244028b78a65758442488272e6c0c756c8cc4a69724fc57bb71239a5628fcf1e3298d94d2c8c1edbd1e3e3e2f1d06cb3fe7ebb89ee8f1c8065cc61c09e1a56bc71f7f2820e700dd8e8e7bbeaeebfaab372225f8d931f9095d96f198864b54ef68477136b81a5c8c2e399ca7533da3e18ca6f226e4ead6cb30484c94f4c3e4a777383cff5c3f6fa77a49279dd72504c3e1213d2d0a38c04bef76bca47ef2edc6cb9997de613b28970e77505e733b1d7f390d7d4867dc198abad77d6f87bda71af7bd1da6bbd1b8efedd02eeaaf1f1cfe879fde2e88724998dd47f5f30749333a3bc2d2e9855c97f3cc19f798524a6f27fd62487d729a8938e79cce4fc677052a31e5a03100f93115d1c208bd27c20721476854bb2ec618df7b2c1d32f3f5d15805f275bff760331631c617638cefbd1863c482da576394978410c28beba64797d77bef368410460821841142f8ee83ed8429a4a0620748a62d26a320a2a774c5537acd13305db1c566d9a2656b4c5a6461e262c2226a9a0da867d315335c20212151eb89bbabe86e2bbabb8aee8631c2d85d45777b29a2a2df7b354af6baa60c4c5498b6d4d37bafbbfbf57bafbbfbb516fba8123ba8279391c9c86454997653ee1b98a6305d6132321999a430199d4c5ba288c2b4c56485ede0942d324e1a35223659616f11ca6485eda8dd62bac2b26ba62da62d3448a6294c524c992c2cd0e903c2cd00f9bc9352ca4bdba23e1c8f5d8c31d67431c22ef8d2a694524a8d1e31a5648f0efd62f68bf962bef149bf1c4abf2e0e1c4bcc29e594f209cc818c3ad0a15367e8f75dced28bc01b2f4b0e878cf1b61372727840690ee4e81009cef740d77c70fe75612f7fdf4f6158c2cff722c1f9797ba2cb7b7b871d93bf1d21db099897d3de713dede57c75761fdab60145d3c5b8f931ca1865ac4f33f1755d3e2f6dd5f5f047ab22bd1d5dc2aa2677cd3927e6d7352fecf65c4eaf1b2fbd5c7b083b1e8ff3566b2ac58b008c82942a8218ba2207291011034321c3163ab822cb921297283818428602fc80c20bd10c8a50420e31803688e18541c4133000e30b2d9220440c1d81c7850cad45862560b290e922052e524002d68057b06303179039c252102d2d4431f4a00c2f78282308525811840c2a1a529042052254f1c1143c001143471143d00b74f0e28bd197170c757942786364b00232a40083050c86a041d00f3d1811260a6480614406526928647861ae9e220032c8c2085e5431c68b25cc20062151088248081ab06069891f62082ac20556663066095578c2f2814704bc8001163ad832c4843064c029f44541066c0af6e5cb1863b0c3a1dea14e39a5e7db9a64c9d2a54b96dda57748671f434653b810e160c2be2fd2658d875732e33c4eeb4029259d576e2ccbfe94e41756ec73b6f281e752d6da4d279c716ebe6d72c6f7180661fddcc233d5801e6377153a14c8f310cb77d4359cef1c881182092f506802063c88c1f368ccc07bca623bd5ffb801ebdb79340bb6753a0d3ac1f7e80644cf7055dfc90a4d00f59db4d876cdc444fd77744491121c0875f9410ec66461f13cadb2c78661cec077d50bc31cbb2e875e537923029bb89de6995f985b15388fcae6f97d0b40f2b737675eabb62767b456e13c20f8cff9a22074d50302713e881314a72cb6a37f04911149dfa8131496bd95d4d7b53e2d08e27846b48ac6382a428ace73ca788bb0c3e62d4558aa7cf937a3c5f1d20b47504f38e0b73d20e8631482e541076ca0c582af2fd5bce7dd1f1cfe79d75ea5f5efa80a1101fe1d1521e6619cdc740953f30ee19f8e137da8271c58e87dea20c5718589685f4f30cad90e7be0fba99d9cb0f55425e99fbf7842e207878f7e5f07ea6b08238c1046a83dae082edf59c882b70e8fd681451491e5a1d7f44ef37411dff9e0f66863ec9dc7c3aef1111159da637b8b8bfa9a21c72c7272a2d8eeb5a42461bbd71afad15e65173e34cf4c1b564d9ae6bc69f5f2149ccf3829490cc92bafc4b1c1d20422a8a2d88eda50643b1e5a9232a6a30c4d9192c4108d4137bdc23ac22e4c679f375544fa94978578c5a4558df4024f6167d695d6a18e5d9b6bded5db9bb44e135e699ba4dae515c5ae1a29cf0ba5945257d19c1fb37bce085345a0b3c39b2af23df1fac8e12894d585ed9e17afa10336f8dc00c48387e7cc58c30594b0945a8b42b9ab54542b42e55c98f2c27c6a2f48f76e685523417d0fe64c5ad5cc016d441c502f3ae4ca808e50f741d14ab94b5279c91bdf9156b5479bcfb8ee89f9f62390529b14c4012ec0181909ea7ba2077d47f771412efaf0d1aa661821b555aad76badb5191149d476401fb1186f07932c3f7bab9cb0fe54bbfc72edba92dc093bc9b4c78ebfa67740c7deb5170c2c7b8c914e873e9a91d7c5115d1c0101f6f69491662f98df23d304b2dc051fd894f4a04f15911ea9306915a7984aabd86968559356bd00b9ee79c1e1c20bb261df9491d837d51ef4a922dd79b78aa89bc5f07638cfdddd5cc443b098b20b2c1126256ad56384f0d2320d426dfa75d12bbee9714ea7d8a52cf9ba518768c58d301f451454b61515a82d4511051599a59e8e50211a4242e12897875ac5428c85af5c78fb4892652ead820f894beb4c2e35b40aa65828ca104f61a2215a3543aba0f33757f36f137264061aa8f4eed9d7a786593a0d9d59adc30e5338a91f4be2f7bc5619310b41fa47ab989939bafde9b5e79c7332db10047660096852c242bfec49922d1472dc56a71caac933df8eda2f2cd7b4aa35c7340ccbb078cd68bf6631f347fdcab2de60e00bc3267663abe6a57207c902db6d4351481acc59e19c51461a4008a164411434884bb0a552b1c0763f725a674eda97aba2077dbc1d3f0dad52f19834bc975a8766464626536ad0e05aa9bf300d1314b7e6db36e3a693c78e4e9971676e57f333bc63949c7933666ed761320f0227ea2d77e2a66ced5ac748b13ea5d8fdf841a9b52a4ab14ba9b3c056b171eac1f218bdf3c3868be04e0d70473bfd56ba8d05ee74161bb76d1a3616cd08dbf51296aea6c7b050ef68ef3135c09dd74a9109cada293d44df2e763d4547eb30dd2d1a6d6af520da56dbea86981b646e8cb91186a645d3da8636283856b0adb6d526846305fe840096048063b5da84fc09012cf913da189a182d8cb634b1bc1eae631b12c0d2364464b5313da66c43da981e4493e70f34be795dd4afeba21d884dfef25985cbebe9d55a2fdc8234eae736a7f5bfde5212b654a3f4ba6e12be2e3aaf0b247fea9837353de8e7edf86d9891d7de783b3e6d0374162223e697e09b7933f16a4334880e4d3bd8eeb110f76369896dc8c9a28656e5f8b0a1b5946132e3ebe56528fd5a91b6727cfcb86e10b823b2376a005d1cd1c50e41bcb0639ea570141e5ac91bef65284cd88e524a29eda14b0bf5e8bc7a4847983cbb105f68555f90d97d50cf36cfdcf3e2eeee2eb40ec63a1a86450aafc87c534622df2093e34d46e66bd383edbcbdbdddff4a81c5504c7eee549fb78b560bcb1b919a2ca21eb335b175766abd80586d4227440d73da4d1ede0e73ea95f24708e1c519bc328c53bdc6f5408fed91464a2dacd9c5b9c04f67ba19d1f19747666983993493de2665a3b20d4da51c5eb623befd0afaeb76d367d24cfaee72849cdc5402c7461469c08838a08001dd088b09c976f47f72e478be9488cdb312949be73b81b01309cb9c484e4565f76253d4839e12018508a24f15a1bef976bbcd6f882e1d49f4f8b5ab0c99e1e6156e42a06fdb1df28f724486f46fd7837447e47d8f4f44e2546b5553f6e91a97845f8fe94051723decd2bd18ed80f4efdfdfde8448ad75e083a61f2ea371577f855d50c6f56b1c97c1c1c9b3a6d5eca6d8ff621cc66993b3ad42b58a215f4f181075d0c2e789047468c0900cc470c313185898800e1c78e2c20c4774d8c09317785af0800e202062b556d1165e64c92c99c37851ab7822f14636368ca696ed70a67669a62d4c79c678418931de0ebac44199b6d84ccb4c48d6079ab63033c30bd414a9bef7de7bdc631e4f5f0ff6861b916d08333333333384f7c7ebc1ced1941a229f75a831b60f64d5771f071fb1ab61701b926559767b9404c1d0336188ae5dfec95f5f95dadbb4db3579cd2777e2603f79ef00cc2374f227ef1d603af304811af7d3e423f413f778e20f3482dd9ecda3e3c0623787b3fa94d1b79baad7089d995f3d945e46e855647af55ab94ef31436b9147687486782a8b6d69379bd9da6b91c521df3b715c16e874daf939f7ff2773efe69cf4d50eb61092c70690957c650424a12daabe4c95d3e67a2aff0d0b967cf9e97f7a4aff9711e044aaebdf2c908b69d25d464d4a46c87fdbecc4b65ea9ce7151e5e2eea3b35e14486ed24fe1d3d0183ef20fe1d3921e655ff8e9c18a208100ac27c37021ea8389dc8b070cbbfa32882f06cf4ef28cb0fcfe3df11145b78239265a1f43f357c1820fe0707d377404308022a88ef808a82a843f80e688721c8ef9480d1040c04d041d2774ab024fda3abd556e69f770ff5873f4af9c533048eb680f9e8cd5d50ca88fce2a3cb2fbe5312f4b1ab04f38c94e5b9e7beb6d69c8e979cfce27923e24b68f0f56f37c2f53457e66faa083b7422ecf002d5d7a2f4400d3d887bc871df40f5cb207a3edd87dcee708ad81c5f47b0ef8835c49d51aecbbce7c45fa55f0ebd9ab894c9df5f5cd77d7f4ebf443b59af516baffdd5e3c3afd5e427cefac599bc39a89db8f8356a17f79ef0a747853f71fd35363f79c569bab857853f49ee68da1cfea67d798d6bb7dc49beee85a029a83ffaae21af397ced76415956abaf5e4f46b0d54d5c75275fbdc2257c8d643c315fa566e2945cbfa41f0449f86b116cf51ab721ef8b84ccb19929004cd58d5639bc89cbf99a715d374ff2d342dd5c838fb98639d07cadeb24dad6ae61fe93613c30f7771f5e54ab4c7c2d6d9ba66ddbb66ddbc3d9aa506b96d55a6badd51f4e850286518a61188661983f1c8c09afbbfbeabe5e8fcb993bf1e0c403eb117b4084b45f402e7f38d75225f21ea7bef7de7b8fe367eef53869afc7c99b3b71614dee272e6ce6d8890b3b4f27d71e90f6936f0fc8fb93f7298c7a2a72f9e5d79333edd4a14f08e9c496f0436e093fa510bea7b7874280b2430a21843f4dd8e90ffc3e7db1edfcb814744e79e5cd8520ff1e8fee72f6eb4a02a4dd50c353a7cf7ba0c39be4e78559ad1e68c6670e2190f699df40b9243f2d7cbf1ed081e67712ea40d388061e731d3f2d3cbf1e2f3c1ed08748875dd04ff68b9dfd5d6a5b7571a9d2ab9c33f6726e72bdf7fc5d3f4d7ee0474af97110fed0fe814fefdc84c825f67de2cac9773f171927171927657e09c57aa2c3773bab75ddf727c992f9ec4bae5712f47c85f4ccee0f93f9982ac22de796f4f4dbfd34917c35e1ee6e675712f4cffbf27ef1a1c3dbf3bce90b5ad58132ea690bdba677940497efe237336fc06e615b7bed0149c2ad0d6e9a69c9fc072409affea78567ef955d3dfbeaa350df9fbf9cc77a32d6387f3d8a50e73a8e3a67351b829df86be698108e1ce596f033b7841fc36285cd109af8fec04f0d81cfced75f8fe7fc94c36e0ff5ea71fba13fbd9e30e7ed04040bdd86ff65b0f9f160ef1e1034c5bfc7831df320b0493b06bf0bfa810fbf5808bdc74f4ea6f8fe18ad564f809f37a8d01f0ee44e5ed81ee92b7c27a378e0014992f3559e073d2338fbbbf30a3de9c1331d0a0d0f7bcdc7cee739a7084784a677b11d4729c2476ff2dcc21d4fa092832072c0525aad78a6b3d755bc410b6c90831051f0083de9c1c30e8586e7b9d093e6b91c4a0378d82707a5013c4dacccc0de84bd899519ae38c374be4dfcb2772fe9412105565451820f8e0883073c8fe705f5c0250a2080d0e2650927f03c9ee75dce0cbe5af17094d65961a806f53d205d0ecc5ec68be4818957ce2bfaf503bbe93e5089302feff40e5e865cd4c2053f6f152abdc3e13b9f202a3f913040a8753b260f913c2d865e7a67828ff32279605edea42229563cf4de8efd28892c6ff3ef280920be4a93e7389cca9429438507abb2aa1104255080845574aeb2ba61011152889204802809a415d00d0fcc575919e08b2dab250c106a31593d2d86789e7726f8ee1d59f1e281f8abe4f0c0f06077f5c0f0bcdbe4390e4880a801184ec8ac563cf4ae84562b9ee75d9397b7eb6e789b040cf08596321298092308459481823265785e919a873da5a83046e68b4a69a59c5148fb20897854abe48cdf9142e839ae82d3e984281bf2bdacc1a33a159dbf3f156d70cdc8c556827c4098f3d12a6945069fd3b0a3a72d2ccdbcba741bead27f3c20fe7a50975e39dbb47750b7add33b506fccdb98d4a1142ef3e60cf47f474880799b5651eaa9cbe1f7a7aefb8eacccc007ea93cad7e33dfe1664027a8deefd47aca4870e3d3af5f8c344280727abffe94840852a94f9e94a827e5e25d25fabda870ae5e084496f46a8a78ac0787f9a7c07bf77502f97339a6b9bbf076448d077da10ea3db4a3ce5686b6215d310ecbb8c7ceff6e87554ef3fa3422d96bfe94d392ace6d5b3a7afdd1ecc1b7336d28e794623843ec49c1f393ea4a3965eba4def348f946e6ba493fa1ebfc71ea86fc656bd57439443f4ebea7905699d8e5e3fae23248cfef20bf44ee4b9dccbf5c43f1b2f2c84bfbc1f15c65f571825a2989de6795104104b12ca2642b7d085fa68aab046b4beddd6045f4008218c322ac519638c52cad9314608618c114a8fb287403198c9b0127e38d3fddc4d63840df971186040f132264a16fbefc807483c1864e28c6c1dde66f773461f50f977e40330dfa13e1ef980cb736c95bcae9c54b68c5209512965138b6211dc6956c40277686079f1128bbcc4221ccdba7177afd607db35cb392b37cdbab9b9b96996ce0dc7ae59f3c6a2c8c5a25649ea986398ce8d4b6f259e7849ad78e186937ec5221b8b62d114f6b5aa49aba433699584fe76dcb87c589699bff1aea66f246b6a3abc95783befedc8e1b25be9092d39bc6b2b1e2675dcdcdce4b8b9b9b9e1b0b0fa8a169bf98d9cb1ad6ad7e1411a4a942899bc3163de9837e68d796386dee4fc62d62ce794f326c4c669e0054c975e810724ba740b3c9dcca57b477738ef2c9019fedecef576b0cff08c838fea7876cec6b3fb896f381c4c502d05f63d756cd25aa9c61b11eadc614864aca2a266b13aa9bd7496e6d25d8c5e1ea9b5078959148b8a32329be9a4c375989ab3b48c9a95c32bd432a73d3a3c09ff8d1f79a18b31de84040ba7c6295269957d324eb14fd81a8ef21b0ebd68fa0ee7d263eb864b8f49575a67337a29659679b2b128164524220b66a91ff69fd3c76bc3bb66c1403dde25fc47e87da15552c74d8c02062ec11d771a8f114a76392eaeb6c6825303294e39f242a412a7c868d21ef71518f949532a7e76bb13e8f0cbbb37a68dbad54470a7597087f41cb7a37f738970701d3f0e9fdb90ebe785647eb0ec29ef9ad5335aab6878d7ac663d205d522ebdbf58efecd79c6afc6d426ac8d92c486dbcacd465d22ae928ef9a75c3bb37a69fc0d2acbed25830c781e26c7055dc6b7034b81a2e09d3709d767133b824170d12f52ec01dbf48d65a6bad8d4a2b6839f212e5e80b32760a2bc59117518ebaf872d425cc51972fd687cb2baf66962fc6f82fc0fcdbe25f0f96debbe3cd814a2f599015618ba59ad392617fb0b46388c96eafacc4617c3b7f612fec85bfb012549a44540b85c58eba70c9c246099281105870490214172c018416b60939457dcd838eee6e7760bbd347b71142787a4072ae795d56d8ceffbadc79b4ce755d53ce9c290cc1824bb794af0b6b6b5031c6762070acc2b64ef4e835a828a5f429785a2eb643fd44d9f8749536af8bf9e29944af1833bfa65f3efdba3d97b777d74db5bc6a5a4529a594526e1d0cc3a8132da5db2cace3a8b8bb89f0e507f0ef880b560fb8204a12f3cf9f5110b30b950aaba3c6e78504ea16b6a30f5119a80e2317b6b32fb9613c413db2dde9db3e77014025f29e932cfb3b00845750a03e9cb759241b8334d5604802f338ff8eb6e83225c7b7475ef0c656cd67b5b05524499143d7dbc862db598726895e313739ec5880d9a5d5a8b341bdea7108185fe3aa9c3c3b79bc5adfc1242ba74322fe99c7f8d1b39bca5c5e2dbb94fae630e94beb74afa24c19829505a98bd21852a8759a13b2a2c5b919b95f4d1c7f6f61f49a639b1168d4d55c88c4bdc736bb84ed602721f23e7313d78f3d0374d5481b39c157d71cba76bb36322f34ea266f71e5db37089caec62017af078448f2f163294dd1fd825d60d2eb019db01d6cb5a0d19343490c19a273512cabfd5412a7391baf41e350361dd0802ac3268ec2183a52d2c1f6a084edc122818b31620f7013f29e115a1c6b3f233c01afb80012a86c71450b1d70016266cc9c99b2cc848a4e83519eb157d7b8eec8d7d3299ea2f5cada0c4d3bd98cde0e3eeda7dd719665557b9996659af3c97b308faed1b846a3d168d98d19b7e13acc386ac669cc38cae50c6e86eb7c72bee7e4ef377bbbd38dae69de1d79cdabe61d9dae4d8dcecac556655ee3af8613b2d203dde7fa2530e823748cc3b184cd9ccb7c8779bdb40886c11c1e2bd1bbbb1bde193fd8a198034321be2781daaa2036895ca64c99324bfae38d508b7dc24264c13e01ea28811a08dd5af306e383ecafb92807657938ce4c13f6c8059715aa524587578cd44e79e935ad935d21c40e4ee1f6ef288b17f870648598232ba09cca4421d3d1152f7872aac21197297cf6ef884b98232cc86011c53ab1ef888bd21197a1232e5e8eb090728434a64f659cc8e4d0c83991c9810d05a4319899991942d638a42f485efc890bfb8eb4207d7bfc7784c4837fde47485c1ef5580af50485d5846a6c78de517cbbed2c9f1303f9ef488b97939818a3aff09d0c925df40e83c023c2cb1739099508c343efea69310457f8ca6fabc00adf837a828247fde16f27a4bce6d29b53c2dfd8ed61c7a403d1ff796586689eb9f0bede11a01e08253bee89115d7342e835c7bc56e9d8662416c15cf3207d55c738cde166843a735f7ea68fbf7d09fca213e0a34f6f82cb4fbf8ed0c0c418c893939aee38aa1a6c68028ae481420792872a5524aee2435be43dea30e725d582bc70e5ca4bf751f35dceeb920448db60b8e12fefe74013a775649276a06944037f39bdbcdf75dfe3f16ec5b61782a698d99c7e7973f4f574b3c8755346da2fbf6e7782f776f7caedcfbba1b7f3c5846427df513f3222c9d69a49847a778232ece4a9d7d72b7a350c43c5545b83a23e3de8b3a05a6b8a3ae6db12613efaa684e975f5d12713431fbd46af3588350ce37e9a54ff81a7ea3d292397cb78992e2397e972ea15cbfc3d96dd21d431c75aac9e93a884cdd585392c199a81000040008314002020140a08850291503c9867e2e27d14800b8d9844745698c8932487511c848c4186180208000080c0c0ccd0cc0804f699f53ad47dbd244f07fcfc5072c405ba9a41c66fc8bcef84816835139eceec1fa531395527ba3130a52137dceb91e5d313c680e63ba2ff53efa8e7f2a9814e75f09034e1bf8b534aae3b85324eed65681524e5d5bda65528d7edb128cae69ce6ba19be5874e7cdb1385b0ae028945cb04949fd49bb52a7fa5e9ce728cf1ac91e1981d1f307e1b4e4f7e6745b456734124fe8594ec4ab81c4197993886e05da299a930e189e495f090f020d0f89bd92db47192fe9a0329674f360de0f02583bd6774b0096f5922f492868fe27374ee09cc1993347684d2fa669e0c5ed5b82fbcc0da789f34d1933da389e2185ea9ba58a7e9391a84646ca630d59eb363452e8eb6388160359790790af7e967758dc3ec90e4d9ce565a1e6141840c913bab020c894977e120264e5780100d793a46fbf2297ff56e426088e35f20ba23d40c38e7d4a37f61de08fd5c1b3a426f6197ba0949da514ff6d44a888484fef43f85034f00d3657dfc61e7e2a3b14473ae811f9b5f4e1118571533491db437be9bc8b325c081bb2830650e3b9c321f73abf8e4250521635cbccd09b5d9936b8bd39d7165a398165a623016fe47e16411dc32da4afff667de319f47381e0b12dcd829802ad9edb2b7bd61c56c492ce815d10a6893cf5bf9c82673d729b40f2c83c65664b9a30877fbb4c4ef830b209e82e754549c5a24062ee7ea8eba88c5505122bd725eaec26f982a3add8166eebf77fcc0e6ab7b613ea9e9b3f861f8cba5d9d54338f7caf0121e79c7b7f44f55ca4b05182d7cfec8b7b2e7e8ad09b20b4b221d29e70fa18c7dc335036195da9bfb44a20d44b37c8284ffea12641b1da764c1517654500a46bfc1bb71836a4cc90e8ba0d55edf961bce1753539ec32a76ee738ae3da350442b16615c9e1908b8a8e92b85850c082939d7baa57aa95a26392fcaa85b11d90832e958894c190b553ca597a2f9e4399841b161f02baf616136e4dbd0d734bbe62b14a2235013bc2cbf48b9a96b275e1aac561aca894f520ba6abb366224397a3fd593229e9cb0a3877f1b64347076f271f6d9cc3f12a954aa2fd92a616d15bb00898c15d89465928fcdd1754ed11a4bc0df25bbe855e9422aa2cc113845422d8ab322c2092989c005ef82ab04b5d995107f37753a72a697cc092270845dbe99e4d66c16bb7fe2efb4e6c728a85e42d70c43282b6be0a444f108ac3e0974425a816ed1f90131642880399b0fa2032b716d4a2d2d127b4cac38e8553f488de5a63d1ec8200e4770e2c5f4f10a22a7312a1cfba5ac0d56d01b8824267c5a8f14da39121e0714f2e22a9c659b57f80bf9b37ab55c65c581a24145eed0e94b57f83a437baf4b526845724fa0fccfa52143ad44399da125889b02496fdc388f457ee89e4bb143afc6a022117207562dc1199c8c3733122b9365e9f33f84ddaf494a2b7a6834cf59bafb3e48075c29080c53a93d0baf379f3015a2bcd66b66c8024818e00fc000800508704ea110fffa48247ce169bc2bdb9ccb22004b9f01d74654ba484eee21513a8558d655f44e6ad55c492cc82b4b3485272421a5a029716c5b1274081e2da93c38db7b341d6f30844a7f0b8fa870875e51149aa2f68956cdf41667c7ac1f600d383da66fc99354d228bf3f6925dae840517edca880c42ac5f51ccf8fbffe635be6fabe18593f229f347554907cf7c16db3e84fb54c722cdc22e70178e4f7f6f13654861719c9ac00d1e6dd61e22daaad4221ce2b41a98e88a82d7c6bdc5f0130f3be1201f15d87ba5a0cac74c74e63a3585f9d738883695c1e02ee08b86d8b6bc08c360a20570ce0f760089bbb7011869e08e45179d167905b0325e19cd43cbac99d726a16d1a4508240f2089ef3ed2023dc1701042962e133923410266a3ae7849b0ef178462d22ff9cc20df7293fa0baf72c5048a24d710b055c65859e3b5f55834e4629714e8ae520a00749a863fef79cb332379e3660eca540decab08c5c9de5320a2535c70720a85862bbfc2b0011215a3deabaaba20c5be096363d38a5d07d1c8ea49a88b4c95c8f75d660c47d4d1bc91f96e4047953093db05e954b83e29f7b22352b203b647e8600b1d7fd412123cbad1dcf2978d62f144bb80440aa5f17dc7344ea47872163a34bd092b1250283d8a217d768a66de61a3107265a4a3079a976bbacf4ef30622c8549184bbd02b18fd1302f42e8a5ee36f14a097845d7ceea7420f52a6f91d016218de7dd05c1ee4aeea2b3e17754aee239644c901ca47c1410e85391afc0ad04476bfef8860d95bba376414d534f6fef246286edffddd18f678afa4d01bd2660fa42c844227afae4f095ed8fabcc011a505498861800768fa235a7ec89cb91dd2ce056c0fd380733c3aecaf38d1fc46738bd894f451474a9da95f53017cdcb8550663ac05b34adb09dd0f585372dfad0ebb71f140657a7bb995d268893ebd9247d33fb4568a882e5be4865fcc376fd5ff300a33295065e4f44709151a7f19d5a221347a3f0cce112e94b9d44ed4363a52ea553f6bb027b890e260c04fec83e457557a1501d9e0b084b7e8d51193e3bb5b0d4e7f87482e97fe30b44abbd53990910376ab3e290c2d4edbe7b91cdccc01e1853529bec1b457f92b0af6cc2f4d9e9452dbed110df194526ac5e978b4a146d3941e555c41146317abb265690d66e6aa73b91baebb4b0f88e3f2747a435cb0df88a7fb1c602f270310bf11632b0bdc07a0f3195cb7cb9b1ceacb4f745e705cceb060bd317119dc073b36bf338cb1d293aa21f10fa12b317523acc8b33f4badf7591c59d6357d2a71974ac18371f02881897fc0284950c323ab4e0a665b1e97d4db0908a9d7cd3dd27f116895230ccbc48892752fcd8768dbd656ea52ea4360b10bb95bd030ed83eec58502a6969e23ac6bec9633ab260cbd998e473b7d6b2a1867dbc282b5e0888a39d5234f5aea44472d5f06c41cd7f2c95365e8a0e9ce0fd205af8263c3b2c76cc0fb30346b1466a8129a6c0c753b634966c42c10132cdf9378625d94d1791a4eac03f16503133ed7302a5d4cd52b09a8e217249ab3196439c9325116053310c28dd70ea8629e8fb816fd9069028107c42da9c20a177fd99ff63c30160a7d994610a1277708837f05a3e967a24e5ef51ce02117054f26d982b68db59a91dd99d86f08662701e3158a7d6bea9fbea0cfd48128bb48b081ca62a5081a794649e443e011d13ffa2fc518ff214bacf0db2160c70a06408cda1e4d1a0f560f2ddb336fa30808f4ba95fd96fb7501281089f1b5e9b851c321a0751d7ef799814d1922788ab49695ccf0745f4b0bbd1003da0d6f93814204993b35f0aa59e8a8c97a1109ea20088f9b42221c5846e0de91d327622a5e70943696ef27b6b022510b8e6a59f6b9f4b834703a52b9a81cbfc502ab128193f6595418180de44811847e76e72f2b4292e6227ce6f5a1e746d7dac0a1041459a1b0dd9bc7429cf7fcb7b677c938a78b0b45a9e301b87ccd9812a7e80487a8016704d3070c7670892f0c380de6a09309d06651b3575586c632cca4c562c503680860a9829025a71aa56596a649b2553054056a6e48550707a28de01fdad7f0838aa66502597576a11bece52dc62ca801c00f871b9aca38422d9e1f8970e79556a0a8aa3de6d324c0c10efcc422879c61cd7352d25ca06ff0d26db9967db7e257f8af34ff2abaa763c6444423eb4033defd84b6cda9e8967fbbfe387cb405145ed1a49f0bc942cf2e369557b9db00a149db0815df46af1957f2ffc0b6f2dc9bbbe9e99f8ae9be6491c0ea2ba9d46a29485cd731fc44172edf8875c88d95a778300459516b11090dee51ba40277e19049bf50fc613904b1adc4cc1668d2f5dde61c659db469aa5f545bc62c1af311aa97d2ee6a0b164d173aba284b40c55151d4a7caf68fed4ebb0fdfbee0e88447c8a5e28502b3581bfad82d51b0e41b8921b4c432ddab05d0e90d118434b2cc71adbe34f039e9817c94bcb985b08a10c9950d81dcad5a6ab8f109d8f1ecaa7eb54056f13260186b10d29486c182a4a5fc849014a27cfc50d81d05bc74173c2a6119e3603fdefc2b6f0ebe2ef070126810ac95dae0a5afbf08c5d1e4b5400d06c8cbd653cab554bbcbc76a48d650bd373d4b53536d95446925cdb273c69af476f2643f6769f64d3db8c257008b710a346949659fa10f2dcf66a46e928eeb34228b0478b2b474fec2abf748c2beeea7839767a4936dfd6b50d996dac74a024277f0d3b881c021876607ae925b3d681674525441ff843d739f51a76bc1accc2f22717b979eac9f3943ed483ee074af93b343809e300dd2045a29b9352cc125488fe45bab1809f53312dfd2cc43f83c133e951bc5bef7c8c43ad6dd398cd379379ecd807beaa8a5533a23dda6075b40a0cc38c9ba62e25b32b703cc8700d875cc558e1c4f2d07a331a7c33dcd67a31d7a85c74ce05138a1dfa5a2587b69fcb0c8524b8d8f286c4d4d0c3fedd52e7c65ea63c54c470f3fd286e1187047fc6898a67ae5b50e2116a29500526ec833d9d911592a936056441a44ed52ef32da75526c246f9a3191a457ce09977a5ac73312e90496c9515d3662182aa169bb0edefd805a1947568cf0d25ed3127a6e9052b675d62055b7d688cbf398a934eac77dff60b299a34bad239b8eef2cd0004ffef9d2b9790a44aa74b4145fd9ea5cee60184edc901f33398f8944efa7249573a0ebe35af78f2b663b9f6fcea84d7a7bc93f81df8d4060475b83f0c25090589ae74fe004503e7da9e0f71972b1d234bfbf86564f5fe476bfd1cbd5891431dd53f2b56aa195a071cf764c7955651c5e2066cfddca6e33cfcd5036e8f4cdcf69c4b1d5aa873fdfd47204709671fa961a755c4b81c07f08e68b55f61ef56718a3a675dbfdc283fe0ea99282862dd8376f47410b28807caa30c5a3a4e7706d2ee6f6de38921ba175165633bb2cc3abe2d5e79b8d1ffdf648ac0af1074449debc1299b9ee638fbe3403dd0ca01ba0ff0e950128abf3d3e1d57e713498fa12da873a4a4fdf70b1ae5f874ba9d347af6f3b31cad477bfe40fababe5a644368fa28befcc4232e7b4bb6348e9f61b20500888735bdaadfc39d84cb8463296a4242463aec69b34827d07f2265279ba4a2dab7d66125098427fbe9dc03bd85ccb9492511ef09e2e6d04778f524a8ac9e77e8d7c0bf5dbb69cb32abe322eb9a3738b86f3e579747760547a1c8b10fb37cd0d0b3a8a756cd4fbe2fd88e1bf082d1e34a4fb6a9a3c937ba9a6af7a73d48a317bcae90fa820760f756c4ee7ad3d7cd98d66f9bed4c7ab292aa7a8d1863ef1b9facaaabb79719586c8a7a19ae99e698c85f837609b9a2a7ba0ae483ba9c2c0005aeab346d713ebd8aa61876cfbbb725bb3e2a1ab27d90b03309dacfb009809a0ec4dd119115080cb91be00414c8c0c651e1cb96aa9ab4b9dc833d43dc9a742ff1fee728a25e9707d7a2615d57e9a52a408b77d0eb2ddeadce8fb39f8a9959f6e9c66bd2571f10c08dfdbe1f12260eeea4d48aaedf5ab103780218669e7ceeaeef9f8c88fbcb5551e0daf586d5c9ff5d6a25be48afc3872b165bf479fe72162d2bf2d1fd64dc01dc98ecdfcfc812934e595ac7351ddc4ba757a7021894f59708551844f7994390168820fc7701c35a0f0f7761916c2662601c30e73a4ac05c35c652b169aed572624c28554e3ec7dfd9714602625902e826e5ad3b762235215ba95b54d8c2bf581c1e09331eaf4bc2f1dc1021daa26cd6f57ae3748b7273b185decd95198ed94304df51228e645600a6c906597b9777dbc73d98def524d2059ed81e37434180fa364361a4d0f768ed543010b5a4ca4bd9708cc9a090a8ade10f486493b647f308e518ded9048416e69b0649253fd4cf9987f968d0e9152a50498e887831e90cf0786495bf92ac35506cd48f4e362614faca12b6b7a4eb8071c4199421a12fdeba66887836c8cecf076a5c37ac3c922774b3a66732cebb6e50ecf91d21456558cd90225cf5a24ca80169f32363caeb8321b360cd841904c413161abd280b9302cab6fa901f818d6b1f719d5955aac19ecec5b7d191f2b4ac24e8239529c46a40cf88484ad8aa5c07c98236364fecabef0909064c528c906ed5dcb466ea4c7c504ed93216566690ae577d7225d7b5801bae474c7b4bc67978e989f9cdd1715ff0f967a204e6d0521c06f5dfc3f8192feb5af0e688a2a2e18bf65d1154ddd8007c3f5689b782a4d0f1bdda1905b7fe720165769c1a07243f3701f88ba48162d412530a990700a2a5cf49e207514cac6125e71f2501197cfc44fd525ca39a5622eb868a416f1cf7fba1ac5a1702d91f8d1b4ae09009a73f98a312bf288b3b8d59a8e5be0fa1912b82153db2b5081d3f1c053946f02ee9227ac197fad1b5814ae34cfb06a1f43774937739b6b7988ff266d0794f2186c11300813a902b97a13b0a45544d445d3bf39b378b09308c2430bd4f2c90960cbd1993560f6f68dc415fe44d8cfa74fcf82578bdc357974d01359fbea982a36dd01be0ad9328fc35b79933f9cc2a5bab2692de6f1f8f961f122a7397e180c68f0f7538b9dec45c11ea06ac7a3ad1073a4063e41a821ac33aed17679c72c52574d656bc04ec1f711eb2fa77f8f64185c76b4c9a2346ce02a144148f14d2ffb3ba458e87136920d437a889e4c74b46d99a56839f6305ccad12dc82329092cc434ae800db7a1f8ec090f040fe791881ba38023daae4ac274da56570c13b7f15d2841967e6345bdb4091bf0f8e655aa852482595f8e33c62997c766e7b60db66cb80e6cf70dff53b698f8cf7baec03a4663d319b10c7408ab2957b2984b093535aea9c30234cfa21676ca32c42a4cbd65f8a3078d33b87ba6d7af6c9c5571de68dcbf64b75f617b2c0430df53d59fb9be49caa8651cad9c6edc56f601579be0ca8cd033ee2a2019a5e40802fa25e514f5e75200ea72f2b547705f67b61c11e9d06ccc3f9b6833cc60d8c8f7f563671702f4073d62f03dda71b8bb6c6e2bd5770a7f4c2325d041a233bfc9541c877b3402f8bd725f0640eb9d5bec391d4e2157936f3de5df205bf6e8e0cf849f8d48d912d457becf67180bd682652acb99bba90c083295c14c1774b88aa1c36dbd45fe0e7642764ad1851b6c140905058923fe80e5b8c615ea3b36e3f364c5fa6de2bc1a464cb04105a7c26b429537c10dc79047f1c30eb6c66715216e921f58159c43f3939b3c8fe762f24d9ce08839cfa7ac5b4110d35688e1e138bd0c957f23ebd2a779a9c4f0f1e19ba13cb73bee826c99d7cb0e45c08012ae4980a2e9cc39de0680cc97a7aedba73a1a7cd1e8e29398c4861a06be59620c4cc9c0df41972f11156fc0b3d4e49cb06911a3266580eec14b8d349bbbcbc928fcdaa4257f5805300d1d05bf0375185127331c1aa966895b60153a4f3116b5c22bc1fd71e5298501ab4a39e48653ff3b658ab944af82ff3472a9288cda9fa20548abafbcc3d8c299447adab34dec555649811b0d44f2e669b1693a50a0e6954ab63eb283870784fdb404ecc6d1542768866d294eb8b0cc78c7250a6a07149ed7283d35331c721a01ad0ae5779b88a9ac76b9eb1bab021ab3146f258dff172866b8d81628735cd84a7fbbdf5c8dd4c140792087f8742dc716d7ee449fadd5cfeb8b9a5ac93db34ecef791625420710d2a60e3ca871c852db2e93772e9876afd114283f180b09429fd2fa5bd11b60e61079fedc946457a744e327d34ae1c9993fa192c963dc48846c10be9ab502af83deebe374ca14bfa1e5169c4c60ce5bc14d2642e7adac4158de999d9c5e83946f2dfcafe33bfbbafdd790303ce2a621743fa3987fd6f84af2b534a99d1f372b06b9c5c5a422c053db0acd1803549405d00a17ec3deba4b315d395ffa8cb5798c0e0caec4d175dc91bc23cc810475261767aeeb3de3d846fcc84e52926ce81c7721880586022c9ec774dbb421f7c7a223cc7a7030b20bf14f6a2805d68c0f5bb75a6161c724209c26df049f10ec59e33c823c3e13f6f8db6c2b30184a45826d505c2a1bcf1efc2d0b4f886430e717bb27ffeed733bc6889e7320504e25c2b08559b689f7b2db4ac7be0d3265882c2d604310372d0a68a4f4d9f1dee271471cc8db2c268534d885706fb2b85f4426bb25374546fe86d4d2a11bc23d69029db370c05616304ee8d881b4fd8566074ec5bd18068f9e2c52ccbdc988bfabbe9495a76d3dadef02ee34a0fd2db5c0a3e87d09fb271c824a00a7d9ab3671536a2ee3d9157e5ca578adb46400c5ccebd26bb185198973779b7fce450ea29b467a791b2e3fbe8aeb9a8b8887e722e38e9bbba6951a53c274512c196b904c0151c34e6269326a9f1967147ddfd02dbbf8ea3adf8359c8d60710d6bf36d8f04ba6bbadf8122214d11836dcf46f44a48b96188ed692f6b0a2a1c32d9d8008770b49cf4d07214988a952096410d45c61de2d6688ae43d103800f89af6298f2e74b08c0c3538ff02277284ba1fd7ba582612ebe6ad0a7e8e1cb6d42eb12cb43f35966893a3e167ab2c75055289427c27b15b90291598f33a4332fb42538c68305dc4215f24cb103203a2021b0be010939788a4c560410ca74352a144e3c5622671e9390e5f98e0e62008d37567c1df7308a64e9d89c167c3ee9adbd68e2de2a5c83fb56443cc67a10e59b443cdca64c585860a33885d29076dad412a343bbe4e049b570d80f90960adf8c3197f4d42647f0f3616bf5340a552697354dc293d844f3b3f95c3fee58c28d98cf8fdca336ceee5be42f6bea4769214aee2b88fbe63c0f1075665339a9d41d19bb53af04084d65207bdc6d403d7eb7559313307c7621359ad3cdf53ba0f303f165eefa569eebf4558e40c8af11e9c146be2532d90335f5057f70a5615a4b030c8a629846e62b2efa2d8118a11dfca7057d6b9cc2799c41000a55c0ea58b5b7cd7e48e86b2449defdcccdcf9b1c7b496f5fcb00f4696ef6a3b3203991c8122378e02479c501dc53ecd98a4e49840fe3d3203aa12c74cae731309d06294c4a77e45455a3e1c929f67f6ce839ec02b1474a38507a1dc9bea83c259818fd9f9bdd0b3f65ffd81fdbe30647a315c9916e32cccf0bdd870f1bae072b20c52dd3413cfb42d5030b25a19e884dc774171d74f7bf57ac3cbe5ddf77e030ca69c980fbd39e1c9c7eb9b476c5c56912c11d52075304bcfddf8df6420ad3d9df94df1f766586d706c6930cd987bdda6cb3fbc43932d18cfb028b4a93cb282d7942ad511027be99219edbbdb2fff0b21ab62fb479cff6db263921ccac1f048b46975115b5b0c77c0cc808a8a10bfad9ea8ce2c6fab1770be0ba231d9af2aa9b8b33b39209b98e219d612a5a57488f3400607dc0dbfb1c34c5e4b8aacef3e8ed1e8ed69146100f27ad3c7264990842c08ee0a01021810b2e85b9ca5f0a076f71bba6d7f4646cb37b925db739706486a27b2965fd8853df2058361b858e35d3f466bf4b5c4c65bf2eec8f1511fb1bda9851207c4dbe934111c72703a3be2a090e6c62e300be2a01266625d2e2c6aa3c838b3d549ac4918287e891345cb7c6da8ed0bad3bd70fa8851a783f002d67cafc3d765d6eee0f6df7c1d61cd40ac584d0b2b0f30780a322623b8d554f58ff2093d442e34abe4fc0608c7554729ba0659faef93400c24aeb48ac16035081f5730b8070b60cb50419a4383f282e1d4abd357061ef6a802765aad476b5fd7840bef028ebe64c64f94c61dc113bd6524616ddf0933f2915f935c7faf1ac8918001cab3692717f335b25ca709f1ad435361167e368da01d9895c53ea237cee962caabec71ac787378d8e43204c5b0bfabdc501e80286b7082af2d7d7146a2531324c2ec57212b600b49f87d9a4f86d8c0bdffe2a1679116d8cc089b9108a6fbb858b6d1f2a625b0ecb00245962aded100c97bed8165ab65594bd372deca638ddb3bba1f4051d3de73f8946ec87ff195cf3cb72f184bc85b2a70daf860a1fd3fec8b8b0fe4fb445cdb506a0e80ff3fdbaaf01779a7d894a74e0d2c4eb559f3a7f4228f2765c866e1c10354c14644afc750b9ed73c54e2a0f0c92ceab253b624e454a5111be3f654e0310e9215ad63b65d3b239d69f3ccd7c237461454283d68a56c42b92035dff8fc48ad5dd7e0b656c6e6a5fbcf0820908b6e5dad38c5b72d822c3d952041a21e6acde52ce0e9ed88a2c563eb9d2ed699a34398b9aee0b1d19c16b2b46327d4262989a98bc450f79272085c5667673de9be0e1bf86c9009bf054aa4ce237437d9e3fc719a3749f6593534752057489371aea76942452317d3873e54e452f7c428307500658f19c0fdbfc36a1ced857a98620eb19a3d4ece1e2389a52b5a6d5e23351deecacde21d506e09bc70bedddfec035db847b0f8e2541437b4f73428560097c49ad86b94dc12086a5c80fb54fc177aa2ed10a8368338ec57d0b75401d32e4a71f8627011c2a5cafddaa20096b81488276392aca4904c3427327ea43e1316217867811f2b2581ce56c0ea86efbcd0909a79a99ed91b62de21e938f46dd74fe091301368f5e7141069801abb2d27a621772fca072321fb876964e82e320e157ece6b027adcf38b2ee13bf5dc811f75f2249cd5f64ed393dc4670f1f25a0824c05aa6a8bc7822adb286187295a1ada71a31fb675b5be6acd75ee715a419dcd44d26358c63aa9280d1b2550ff9dfd484188e8e787ee808a39cf61e823ccd131e414704042b9379a963aea3c972fbe3fdcfe4da36bb643fb9dfad50e75ed27c7c8481d4ac8e0de2dbc0c23cd60bb7416ea38ba63e1ae37d77682b2acff96313cfae10002ff31543490cff54993eee0a354df026f6c557322faac29a16bd6c56103a7e5cce0739114afce12b47b1ddae70bd6866b476a0b0bda97f0024bfd5937f5f1cdac24de205e1a2e8fa44fe3ae73c5ad3aa7d7347832e036d34ccaf34f7c198b0b8f00efa46c46e82d829b6c8907a4efbd8e6c432550a2b8fa25744d8706448b8ee714f9ae35ecc39cd5282075814db8330a9db580bb38b726bb15f5da4e70a8f1617d0ba8fedf98af058f29762cebbc8761077f74d152b5082dad5608355c3bec62fe6fa0fac810cafb190e384a463f290b6c8e64ca76186ca86f9cdea5ba70ec2513d2cb22b639e198d95500fb0d4b6d2c6ad10d1cc69ba2543055357a43124abe2563871731134e699676c38a434e723c890f0bbb2c0bc48934e4928ccd38d64b6b9040c18e06a7a9bd7b13a2775cc4641add3b99469fe9234bb2900f587eba812f87f9aab2bf791a5f42e15564880c68cc54ba2f1108de18ceb8b3e7f145b9e44ae58dbfaa380f5f658813e69eb7001d8c013eca16b5f90b20f701d801e325ed27af083b36ba412f9b41ad0d01ddc80c7ad4f20a25556f24e2d561935d493489bc1f7a7f61e673c4576948526ff96bcd01f083a8bfde2bc47c4a6f77e135ef508526df76700240ff848a1ab6dd3857061d59479969b5c4e70afd3d27e2c7742a84317cd502d1236f6896cc4e579bbca0017de3d76e05e9f03698eb5ac438f75949072df005ed35fbeb8ba288f2855c8895cdb637f4e40c94395f3a74c9717a38865ee74d6cca4a3a446f8900d09829030bbe0fa400772224e0c6ed5895e21226a741d8151d02cb2d50a788c8bfeb84e87732b5acf41aa35513f05bd6bef8168f7247f435eb098623bff539161fcd624393a58a00cfbadecef0b3c164281662e468c2288c2ff8e99c3797063e2d0223f1c0028f0bd9d7f3e5380803c40f0584ddb6d8196b552712129ffb4587361dc6a7a4e03657f02152b48a7114fd851a67b832046d20dcffbad7d425580b434649e39a3ec845d85afb77b996db96ebec054f26208d28c273b886e6e4d31a062df680d32ce3611c4c41822ce218de12b7b0ba38b1417342c43489975ded07c83a81e812900e2656bdc14a8b2ca28a6e5e822ae61a382f4234404dfef97b9e381db31647c6053adc8da8ff0f297dea0e5668a35e12beb9d8c663acb9c5ca038bffcae0f5edf718f9b0e96c66be5aa3ecf52d57b274f60fb22861b5ed086a6f862b2b06984aaec191921561ca0d6dd82ea070b70ac7786b0f0f8a227bf5254223c4e74c988f5f250ca34fa68edd9918aac3c06750c518e45155322b58b38764a667342fbe1c433c8947832cea256de010aaae45373f6a75cfd0bc1ec27c90d22cddf45edab99007ea84e9f2d49fd9ffcfe49117b71a9c5e9be30880cb5e83cbe629036000f778275b1e1100127806ec3676c558e87367c11bf8de73fb359253a7cb8fa731026270c3c80bcdbfe0e1022eff813e4cb595270e66f7c10ae0ce465235627799f35db45d01b69adee39e019c2cfc0d8fcf893a3606f9288050a31c34592cdfaf2bb65f025c018926fb7fcb85d138a234125572657f3c629ecaf35ab9841885f0fcdcdab37a65289a4cf0d8bf5e8e44ccb6c5df13be032b148343afcabeae36c42a251ef77917e341fcfb79fb6d0760822a9b81a88b301170539169298acd177edd0da01cfde271096b17521e141666d59fc0a0aeb9a214ef4bae9a8472cf11a2795e2f290983fda66138640e44d19938ef6bd66ab40fd3919e52a2ad1f13919e2c11c8ddee3a5a00b5eee3bc3eaf9c90a3b06cc0343154b4afe9eec7b462c4de8e8abf69bffde9de7ad28427765a87b338ca34bd6741eb530396bea21f8188b65ff7fdaf7c6e0ed17bde0e5533d154ac695549a7e1e8d3fa085d4c9634c8995a5a8edef81007d8e9df32e0ed155c43af6c39f441e2ce31e4aa5aa16ea3f507ae8cfe63abc59380d0699d39b7bbd83fb2d026e6db2a54a231c99a76e934714d7515bdc6997413d900a49e6f30dfd3e936955bb060b6ff303038ac2f931a6a4b43147c124bca3e3620ae0b5704db9bc21b1ba8a81f39a516590a66627295ce8dfa872cb0f45f667b95958a9789b7b395fc137159f66b05c8e2b2f95f5b9b66f6be7388b9deee2a70a1599195a74698d6b3aafa1e4bb20688dba0e0c1b6d1af8ff9ae4c798d7bacba2c3bc5a11d8cfae4f8288f426c9b74ff4169bda6d41dd6644c14bc00cead2d3698368de241ea2aacd427d1a92829566a6600b3a6c964f69383f536c04a1e7b66498b642ced84bcb319d0ff36e38ef03ceb55ef61c72bbafbec0210a5a2214f25f1895f6afc5edfd201bb869c4a6f0d1c4f5ff878b52d3461d3cf2bd4a90c88a34b2698b3be312ad36e6eee6f44231c8f0a52d2abd4e7742ac1f8232f5cad09610c7f237a6678a0afde99433ec8327776ceac367d4b744ef142ea9459471ac12c25ae285f2936aadf669e3decfb2dcaf0950a6ed6a68d64d2da4195e151f4c8d8fc2ed9bbc012a495283230af4877e691ae2269a5c0aff4ad20003fa5efda3d713b232de2d7d1a798442ea8dab640abee1d597e4ca5db12ab73c147fb1179c939cb689f251c5e5d0bd4492bea7cbaa84df119c65edd10de5c2be8a812cdf24c6e420d187b5154d0e836ef0f387447f699d3a0b237497d501c32828133a8c183153a180c1ec2d26da03b57706fbe04806fb96d19fe84185f00b5cdd6b9c1b11e80a0934f6a4cc59cab947152f34641650aa4df6f84d36975b2e5eba3ef150419d4cff68354662d983cb6a5212d1b9ae77aa7b643be50caaae406c2cd089d90c2c062e444c029345638a4e06e57bd5040020a8a4618731ac4326c5722cc3dcc4254601161ae456643b127938c3891692aac43e80981279a254c4bf8853c5f04c9bdad929224e9fc8a1a612b5548de89a832176a3f67fe915500634b08c99dc0e5912913c5e13b31de66e2469e2b289f0db21400777ea50a750f6e2d811ff7cb00432401d236b2ce9294f63fabd13ee732bf9cba4f692c85cbd85b302512ed894f97a7465a602165d56b00b463f6227c00fed9696e11de74f086fca96fa7ceb553dff33fd079cba49a2bc77109e90dac9f5990f5fdb1df014b501f428aacad11717900d404b62bb73ddfb35882b7887aab79aa69acfb14b0d1521b49f0ee13aec379ec49d04d3162a6a3cd19188e675945ac4078d970421b9d1cb2d66bff34c8ad0b11fc8f77910f20ae88b26577ab4aa4c4a21abdbad4aeafaf8b50cb557f2a1afcdeed4fef5293ba09083afbb412971e9ea920051812562a11dcdcb702964c50281343beba70ac839ce159fcd7ced26381670dcf54393b7a7698c8cc817a894712c99a8ab4eb6f92d93fedb9c62795c44cbc4422b4fa603040d7c2dc529b18d66a25ae9572c5173fad98872942a8e5c575db0311a59dccf2464d5e492a58ca9dffb23af2669686aa715a74a3d2d42b06b32ea5d58aaf166da1289e8f6a25a0890a165f796751d9cddeead6917c00468a686cee5ce29092d51008327f309007b6353f2273e2437a4c59b580ff74c5b11f4cfe193133bdbb23c5314042de312ce95ff69082b09fd2b3eadc50e5821b2b727afd50d82848273012c699b2db2de5cfc1046ab0be0e62fb606e5fae1f8f3f2ea8a6d47c192e3b9bbb1a4ee272b9f2ae8ec4d5224c411620eab7ef8dae0adfe8592881b8875ee2d635da77784231f18b8a7f703c2a1e095c17f669e4b91d7a89c6a7dcb5c9f107736e3f8570a313034006ed333d219dbbb905ec5680e85974096621a8458eb56ef28a4087991f22140056e2021d3065743c1f48788c20ed48f11284b83b1a93d78f696a66ab52c0b6a37b236abb00a8833c00792b3664a3eaac1c05284ee77b7acf339677e0cdf80d843d482ad06bfeeef32824e27e59c6bae78a9d3e4f6788a2c0f1b8c87a4e1f4aa253b58e0bf9854e2e6d0caad06401325a64cecc89469883dfa4606469e486e9921d75cc11221f11848d14ea4e47f1b6825114b1d92478cdccc37f0e61efee8f723312909add1b640fb16657c832ce609c81e7569450a0a4b05a32d0cf24b841b1a7b0d6dc4931bdccd9dc11b19328aafa550e14a3102a179a500c3400299133b6935e47cbbc7b60a9cbe931602e58e862dfa47406470dbaabee7943495843393cc6bfc4664bf34f84175aa69854577afa65ef72bb256ee203dc6caa8a31742b77b40de3f244a580c7e29799c1592dbf48fc65ec4e5de245ec6d85893a61a2658222845e3eef38ab5829fc9b174b405f4adc3a7add64e6f58713891992c0d4983bff4d58d6c0f4be9b17fe08a09896af3f4ca4d21476d6d578686ab44a57197094e5ba6475b6443c4bca396704fe9601c8a476fd606e3062944a8c72b52e0485e4736eeb3d103b9192fa73d35c3e15dba41919004d30a8858bdb7f6a84b16fe5d91e3e20baf9eeb07cd1573547ff085bf3f2df357e9be9a72e63ec680667e49eceddc64a72b41a4da02d4f76034202064ba367f84194ef54faff2e25bc8bdfc71a78bf4bfe654a0fffbc28ff9fc13b0a1393e581573e1028fd7a15572b6b0e79743f31b83c90a2c45edb9f4ce0eca2110954e46e0f09f6969bc6d266c1efc394c4a3c8416c7beccd34f36c73c5b59abc8089b6ad9766259347e0f7822407dc59a5d51c73d51ba74c3b97b11ae63266cb78378b89578370c0023dc8c270fe25ebc9c403666dc874978f9213f44096f3ad1c3f760698edf3e4bdc32440718560caa67a96630aa85f677587567c780a259450cd2312f9ab06a5e895c46ffc503b0c822d5aa86b107e904543d8085d7caf78be81582ad42e36680cc4267a8253d20ee1cbe17f6b9f6ed457426c0dec348b83288378c3a5de7f537cd4e28fc38de3486394f71aef311dcd72b0c095feedc1baa9a3ac620b8a1faad0a3066cd2af6cf9492b17300b8f3860c7ba77805b785c06588780affbda4a3488da76edfd4e1802c650bc071cb55fd4175c0a664f0ee760c896f36ff420f3a5461d5c83bac52c0d54aa8e153c699d5906659e5b0ad8ace32ae633af2e477063c0338380cd5a24c9193c67a75eb6776e876f333313bb2aa70c588d864fa584ad951389cf93c7c49d1c2a77656159bc3d78ba73048d1351584215eec1d121e34ae8af77ec99f6f3582545bbbbbca6d072e568f533ff60f045fbffc70010d76158101329850376385278ff3a91f21fd80a52927f79e5df6c9df3f021aa091140743d3d22402e3a939090080174ea13b181b18cf09a5bfed9e82a3d6a5f0c00254601f23af103d1bd90d9c2159240bbd22d82807bd2426989e9c62d45bd5599d61c19aa2756064806fb90920fa2e4a934f8d99f4c30baef0c4502a7ab5b52a3dc2188b847c7cd268c4825840102887eb5119025cf5b089d716d7b47c8c3548406922c829007c112989bc7e9bd72a093d1e6cc770e3636e7057ed2c195beaa6d4cb56024f524c462dacc0428ed8f174fce084695b443d851732afcf78c4925697d9e8298da3e8b2b28e0c2c5cba943527e004b0616ec8b62cc81ab73c67f727a865000b13d858709fd17d5b9dc2394bf181225804707c4dd50386a4be3480d9573afc32d2eb3768e88c0f90e127e346d5ba82517d97ca0aa1801d762f474a5a5888065c11bf187011bb028753b2099db98c48720abe932412ca8284a0f8be31e95fad1219428b67df8c911e74407d04c6353d34028ce1d4ef6b85cdc0222ca0e9ba839497d585d09ed185d7d4783828c0bc364921cabf0cf952f84e48faf34bcf02316ea63d999dda78380820156a42ed45c27afa7cd923d91057fc43a1c21d18761b6560c151c508cb8977127935844b23bf25988cd3b8b5edf77c9696b034e218c79699376d5cd65a677a24e954258db3f969fd736a9c55140b7f87a977ee9780a29e4b384d3172523d6a5cb53e1429f1905adc8531de30035fc5049a1118051298081f547512e81af14ffd888b1883ef8a8df5ded46a9a7c1eb382b44cadd21e4371ef6d588a82b02f1d97f88c3e05ac059cbd5ce0e965e248f5266049f5052038a501465fe8fbbd3f902a8141863b65a92311a60c0e4d1156538c2118ba2cb50d12543f589a1c68a6378d1a575d613e1ea2fff30a5cdbeee8c423b3172b6520f682f2dce67af8a95f6605d6816557bd5fa3e74cd29a1bf6501083a37d17547ab475239805ac5bab861569d8a755afc712edb77a3f3a5f39ff58baf916343fee7280f2f493c3e2232f4851127e2ddccca17101d13284926a02ff8e1b1542473dd145ece50133dcbe67647e01c91d95e30d461f30a8016ee520542c70ba0f8bdf33f88eb1af6148f557c2915125aac1350cf0139235bedc71ff379fbbbe2ad91fed7656f8e295bf4ab950cdacf43f7b9a0bf7bb7577b011606914306e9ed742d35869da568b40656f810ceb6b173b4dc61653f3350d64beb28430777126956c3f93610049612f36e98976ceafa459feb8eba102e987852804c932da55d6d384f4962a9db2564f5f71c549c043703a6d3e0a2c5aa73837e71cfc82404a520cd71943797358be747982ca9533d082215673f96b9f54f96453c23ad354ad3e1aa3beaa7c02f7ed0d0940339626cd8eb2cec7245c4a82c58a767c902a56d89f47389dff16b0a3b2fe290670f3a274440bfa253c96e81f2d4f118bec96e6c417c5862a12672a4513a7660d80427c30929a0ccddadaf69dbb2db0665c0536a4bc5d0efe058e390c7bf1fdb8a867df90dce0b8738837ac2e336ca9e0e94e69eab7647fde19103a7cdf8e81a1c64d5f0af24985777289ae3044b610d448d1ebd5f736f92a3a69e0bed082bc680ba287018304dbcff1f0d343d9467d32d5ff35c0108b4417c0cb685c83688a6e212d48fe97ad611f61eaea0e98453fb5c515d6493d2ecfbb9b883ba0b3a3b99cc40876eb3a40475c7fb499f2752ba113c4e94d1fbfe908f4abad4612c8de95ccac62c3a2b837ccee7207c2263e708ff396aaa318eeb292fb9b7f3c30d02639756059698c99520f940f0ee4804b6c2dc6cb307bfe754d081e222776fb97dd9184245bccc774c3d488030e1458b1d75f5ea94c2c0eba866685acdf71757a0f19ef707d9c12804324a092bb79d01ccf5175f30f113dfef52295869afcff04ba3c5531c9611d74dd340ac771c64bdea0f158204174e129822ca4278e956c18e3915bd30c81e1eb6f95ddced60dc4ca6ec094dec7f9829be7b53e948c11fe1819f1e4e6d4f77c607318f8d1c86a17f9398c360b5a5d426cbdd001edd9e2171228cf90aaa8f27d7dfee62d9d1f236fc71b33eb6972f24a15346d0e9daa561e8ce56bd42e7487f5d9057b6d817ffb7c92f31701d2f2714a99b9b3345ded1aa555960f99157acc3c3aae4ac89e199fd87e9aac6f01e4c2ae3d007a8370fe218dc18d30e5b1488a54af0900004b339a0bb1fb7ca6f152247a2e5b52b9d00aeea371e9ebb71f17b266fc5e39e9c5fa5bf0386460a5426e6df4965bcb65cb1afbd1a71de2bcb03de76b24e909c6144724102046edb19efdcc4d95f5639fc2617d51b5955c11c5f13bf6e98d49cdb775cb8ee8e76d4a7789489442a3fd97356820c660fdcbe789c1e077846f1638e588daa4e2d011fb69b1c2c2944703c8ca3f74010bba14a60ca0785d967ced639f79337df67cda98b95555cd9ef1318fb1ab69e729278b760fa985f1cc09b6b589c51a0264a7608e6343a2e5ef95c01540b8d90fcda3a2b532b1814005799ceac281140b7c5ba67a510895bc55957e5596a0bfcc411d353fb1759437898d02d3a704d28d395347d1be695b993506f71ef36a7885966381608f70adbcee18f1f41875d309d9dd508b46b93a5f5c08a21f54c966d625228c7d5eb7c72c28022d905e86f779da0bb692fbd9669ca36f1ab5ff63583ef076b8815958a9941af8411ed832e6d479a26db90631b47fed88a15eeacec985a1e5882a09aeb0a522e85c6e19cb0dfa204fa9746e915b91cd6cf975040c797f7c475c5c804cd45ed2073297214b4b1f05a047acc1729dcf30156992723ef75cb50fd96e7ddb26c0bfc77ec3a8812ccea70f3cdc41ece20475735c962eb7e169273a51c2ec27f3014d67676af59e00cb1bea274636f49fd879ecc6e36a1af9eb08cd8cd549ff13fb5fd432e819d1eb49bf1393f99d1180a1c64f5ced2e0bf3988e4dd8db9819ca4e469e142152936471e28ef6c7dee31743d5c14fb944722927d5ab8050fdfa47419bae738987d35c9c880fa0ef31446a96906de2240435dd5e46655dbda7ba7f7d5a9849c8153a0ecd7baf4ec9fbda42c4083a9ee601bc0aeb4e9618c754a99807292d31f19c08bb0b2d0e4fab2fc8192e2b846d66e780bbee9ce5f44b2513487c0183bd37566415455b8f66bf6d1137b22b5867f929f5c394556e801e1806d43d16de0741003d71e6913a4f39a1a761db4ba1a7c7a71c0f5a42347d133b91215a56d9c5179cdb4b9effda8ff33ea7f0fb33f7084cd3629756d2007ee212c6a2beef4ec8fd839b4b2956db69cfe3f32e185fefc00cd37bb0fb9cde09fa0403309d69976a3c7d1269b0a70104f605602b06ce61a2bc6cf26176efa0338b0c869e284135fd9cd06112e06aada0b43a554fa471735a6b1a2ec928374cd41ce4dc4e49f99fb5dfd9072636200356274f943849b8b19f489b94b0f332e442c7d4897cf4187a949a0c101e9c5d1b84dbc734359f4f47d64f7fc2419d89763a4b58e1c46e05597562b1000c96ab88ed44161815dd9cc42b9cdbe301afac834812ce8ec190836005a6d3931434a5b536fa1be58d35e6b8d142ed7188e1c7b55690d4b175abb725c3b122d46d1223c8a5c3a0547ab78543156424ee9271d79246a2341012248b7ae136a9f0a0a157cf88962940cf5da95f47089fc73fabaff27b44f38540b7bc539b73ff111ecacb0b403ce31e8665d8736c7eebed5a094a1ac47225f9d30990de43128bf5ef682d3a0a8dd036e0a1c678a4e0191e1a535f962e14c61ac926c3b2dd24f682051d1f2d10f58bd108a6b755b1954307964e8a166a776b6b1a324f0daa33ea9e462c923c1e69a681f81126607dff53a0b0116b9be1973a8fe15d98510426e28f3e6f1d94c48382febc554a0466c9e157383947ab032185d4bf312fb3600082c6f6c9c9fcd9bc58c2900c30e0338d0713a9ce3a43f509cdf9e66ecd5b03ead1950a83a37004027d5da43eb068e2933ea3507233ddad265ebf339213d967e9dfd64fde3aeae96db6f65ab64979d09091f3ffa66e930bafb5c223a3c1e43666ec051431f22b00f0ef6355dc04d4ae2a58dc6b0aeee2d7ab20bf24e1bec6e494b0866ddba686fc5a5ea9005ea80db55386fc64bae34740efbda3c730139fcbf29063e88ca5af174e730bfde2839c2a0c1014da3cfa0fb4b3eb24aa5ae754c57a0d5cbc59baaabbb0cd12d49f6e47d66d2e4cd927b3b0a15687cb5a3d4ea98ba41f5c21daa4dd91d50514cf32581c9cb30e4644b1541efe3ca6db979d8a800c4dd9f286480ef1c21df1ff31a39e7a7488f4a586e9990446c1e022ecbac40d280f5cbf6f544e0dff5c69bca54ed27f9a404210be939cb91d5870f25fc933f9b20562fad2cd0148b6cb18c915d6efe63cc782043e1151d29d21b77e7a1a9594cfab98abfe7d6cbd146c2b47832f905577d996cbcdc883533620175850eafb6dbf03bdc1b1116da242740a8bb21dcc7a81ebf671a777d582e182e6ac836906be3d991c0a08a5d07a2010983055f22aa612b0261d3e2b85eba801ea0d3177557c04176c141893162ebcf1fa042e9d3f4a565b94385aa81f60eddd08df69379d6f87cecc83af6d978be1ddde804ef067ae7b7ffd050df4c1577f4fd032f9f36437534086047df021caa2f0c50e724d1a1a48721698bbc4f0e266aa6d48c7a6cadd92a0ae9d6893bc2d85f3e7a5eac13078d91c33a71070cb0ba31f79fd18461f4595dff8efd18e58cc6f858e9c4f21d2ca803987247e072b1919de4283e1deb3e2d1864b79b65b07ff1dd8cb1724e938d8d3b006c6c5812b13ea934f4edd6e04b9be4073a46ec11bca2e58cd9e0022b563dea6f9b0e910583d503af122119d4fb13772e21bb4735251d08046c229d802da46cbbb76af6d00bed54499e6b3af09e05310c9cfe3fa2f944b19c0a66f1d2bc05c737b582b5b172399e8b66437143154be41ef1013ad07bad3d49c878ce9f808fa6f36d538eef1dc66c3fd0c2d31c41fc07c3b1fbdace72c31bf0b8a52145f0994f776515bddcada9cb5d76f6585d7cfbf08aba309a5f37d352a56e2f664d9c478fda4b141397f635c4208a4d66aead4d36b22ad798b1f2b8d7869dc3a33e448a8ca58c27d86358b5eac7ca89b1b990d5e394113b146be66336286170fcbe6ef694996e6080f31f2fd0fb3f03c081114d99ec1505a108bcd8ea6ea20ccfd480825d0166703b90b1d192dd8b6028d874cbe07a7c48ed7bde3214c7750842886766f493a782ec3a69c460cdafa45eaa89e242197d8c571a37130ffae159e8b780f24e299141d3d81a3833f97a2fc41cc95bdd1da142c57a1dd3fc4c117b3bf39344f8eb25ce5f8d382a4c61ef70468b122776c587a95ebe6cefdfccc96e617a29e803bd339ce7eeec979d62cc126ea870113921452216266bca5067013de003c097fa23dcb43d60589bdb916ed82c06d94bf91256d01eca6ffd1cf1d32a93666fbd6ac0a5596069969962ad497c05d0afb476866ba7dff24bb789e7abd00722012faced0506f905731e6178db545a9ae9d9ffba2af4223823ef1d1a71de9caa689ec3e32ace1a49a78025719220aa28b2ca61b35a3baf98ff989b6e650de8e19beef63dd8aecf1e8e2c251447686aa70af737a5c2eced5904986a3d10b1874ea1fe03689380522de7d5c71b8c601e441cdc5c6ed16d2c6d6b04c7a8d9545b288516952d1563398e2b22bfd86baeeffc312e7cc47cca7aa1f34901e77ef5a93c42a2f9036f291a0fa9bb47b4cc5bf05cf15cdb169d4e0fa4181bc6c5c8d9ba0125bcda1332bb5f1b6245e6fa2aaf80cfc792dbb7905e7b4566d3a3dc375a149195d563bb94ee3d18ede06858850353b29612a7546562934e3a7a54e671b702d07b804d8b7e2299fd89a212da828dd3acf8e3e93a807d0106a3ef83a3b78a6c7e85be0483723a230badef8a4f66e5352e237c84f4272253b04738d7ad44c88135255dab2dddfcdefa2399f1c4261463d0503c85462c3166188cda23bd75312251c238a0d212ca1fa1d69fd59ebc058048f63c5b454fcf1d0a9a949a2bad4eae887ff886c05ae51afc3e1844869fe40041600bc18787293fb83f795bacf3360ae0136f2a723e1ccc8464a3c252ec97eed69d1c008738e8f7b6f241a46227dc618e6209e8c55c1a1f705ae4bb47a896e22107c2ef69c1603604d0906d92194992b78902e1621099914e7b7204b0c4e7df6c95f733cc3051933238e2b8fafdc3c46f440dc9d690e6d8c9615f3136479e7a5e036286afbfddb971eb46d8bdb9e21db4218ba50d2f982c5353b82b212a53e93b645334694429820607d93d1948c5d99a477a7a4c74d1386288e2a7aa0b991cb221d07750eb81c8f902022d589bfcc014080074d04644c0972547bc0446a3e42d9b27f099d51282bfb4c72c667d2e23a7f5bb54ce9846c1292938881d952836cde32f89d5fb77d988bfe2a9859f12e858b84b73d42cde26105acb4faa3d7b6c8222438a01c49a7c6c5abf1a42d4510f4294de4bad1938c9271618f4a767e740e23f11ac433b51b33ad39f326f67bd84dbb4cb3fc47b66a9c4f6c353aee7da8e076b521e572778e84151463b79f13cec70e6b7f8dd8fff85b55e75f5bdd910a8266ede48f410d9b24cb658b5769dbbe7bff5fabf616315f0e15d904cd62bbf24685b5f407cee6880b1c826bf012012ce06cdef1bb5f0573b369d024101d0a32f8ce30d1039e6ed258f7247f838437239ba24ce247042028f018adcea9f93743635c709013aece8d4fcbdb7c11d2a578be36f5f09a7156ad3dd463fe8f62d4a0aa21b03d46928d49ff1fca5216e84f797fc5a09b9571e836d790f718805628701d3034ffb6e823d9aa5f75352c093c4ebf3408561d0754c0b05f667571f7a0097cc6148bd8b262f5170fddf3d7236ec190dd1d481a92795ec3cf082d0abdbf4e77528eafb814c11a8a548ecd04ebb2549359ddab52ce79bfb727e7e0e5a9bc999b34a49ee6192258e0cbed4d0cd4b2b3a87863000b48530772e9ff821bdbe9063639a2fcde803cb8fc07642768583e92953c702a5ebb4cccc42de424f8be14a450345003e8149fcf5c6be6523a3509c7858d7764abfc1a3825ddaa4dc89f16c9813a260d1ff9359fd5ccdd59880c383929023e3a6acafc38f797cabebc2fc90c9e9de8320c9446231a2cdb699c2b478dc92d233321566a2f44fa763d8ef012e936f05408a3f02b35bf0c1cb7147b248f4a22ea225a0a4fa50636e60afcb13729035dbdd55db42d4624768e23d5cd35baf4f745914f1388e3cb86d6578bd23ee09a90803c405416cebdb2df43bc60e1c2579344356c3301b87a48f28271cd4f4d87ee50ee90d583e9e2a632a3461808cb63de70c53ed9544401bddccd45d3c40a7ae47ae2bf363a519cbb69826d54c7d640a652ef6c8451d77f704f79803a00d01fa8a7775cc061f9fee52d45467a1c1d37546d377c206610ef3a5db1b1de3f1917a176c9b377d2ae45409fd3a46d80ae84fae6f54ea84ad1b72a9c7fd76b03b5ac0b0550ff7570e4d27a10087d0b8a0dfc331098552165a99468f82c488907b9470142c6fcf574a76bc1c79c17a082cf5c4359915b789cfccb1e02e82f705458cba4c0d663844648666def096bf615f52fd71baa45ddfa5cdfa8c99ba8f40f2ae52d469601b03c3452c201cc7d5a434434d23f1779f0a71d6e4dbab4068487fb2454244a1026c30214b9f1a7126ac4d9db5262462941eb9baf2117cc0109d84c026e42bfd19d381241ae091954a33307e21b05be99db896283aa418ee7a31800bb3763dda180c32fc2c47ab1b2a1166aff986f2692a2e28a2e0522df9607d05646613fa2f59de91e7ebe8af30d8cbd734bacb02d0b3161d8de9f012e3a2b01649396c4b07b58ad11d3f7fc6b6da0b51b2e8eae7d0ebdb6c1d354a0d217adeb505a15603cf08ac94fd2ab62b5ecc3ddb799df31a637994a889bf256fc5c7ae32b129beae79e0eb815e4e57ad4897880735bf92ae84eeb34810e89a199015ee581ee31460d9f46e2a68377b9d0657b8e8d9a92e43d15b8f7ac63187826aba70f35c573e228c043d1af808ba54e965bce3609371345f30545cef467c6015712c608f75a80fb506133b7d48b72bea739f90d2a8c932ce527daf23baa2f54e21c79963aacd3aa1a7dc73c62f57e05cfd1345c5836c25af2e6b115177fed52f5dd9b50abfd9cde74b46c82edb3141947b65907d6893ce818d181f93c64985a025a915c47af1dfcf1f45d5190d963f52da6ac53f9610ec46eaedf73ade2f1e829ef9060d2e0e6767be21108f053f12512413e98f18df0f39d98090d9302a3b619171349ca40c90a369d0a09edc2b721ec67e302d89cc7595b68d7d45a6717c41e82f7430cf1cb08fc88d3ca3a35f1e2a9b0b53aad52dcf843cc278adf469e26995ffaff1d722e3c4a5756c8624de90becdfe3f4985cd1056e5580324e40d4262d0430ea7738c1d1412d4fa79f71f304c93402faff600a1d915c698087c1ac8c6bf22fcd78a5f87829756ab667641c3b2a234704b6f42483e1058ee1e5a950f210b22090da17de64e3b0209d0f285bc256c123535e09dfc07d135bb6b69d4a79e0f376ea5a62b81c3b8724c7848a58ea1f6050926a9be738fcf42559a66f16c04ee3f390e4bb466216a41c41ffac4e52c7ddf3a00673acc7aaaa6d5054c1aba7260dadbd7656a4318976f0668712511391b5fdf1b76adc3f6097cad95383714320e235bce9f3ae8896b5a706128e5e37c66274005af8b39196c4f9cad969730710daf8e115a284a5a10482f6026af47436a990014438562681d732279d6e4489fa837f96ab0d22a0439181f20e7fcd4e520c39659a60ec22158026390a48da22adb474d315f6ad206843b4dfac10fd87362d06a3fe026888ae13036b1c363f08db046723e72ed3d605ed8f61988d9390a0f4b25bbbab46314e00ed157c74620a6043e1cf12f2e2701bb780447341892d23b6ca84422808a5da7737724080249f638ead3bbc8404c0c6d2c7301b20594b73fe309611d11a2d333db002d65854f06e10eabced305e3edaaee1eb62600403b9243eb1042506ff92042ddd709b3b43f83ba7cd4b33925e973f3d1ceb73ffeb7a2857b29eee96a6bce7801c35d0d2487363946c519c255e3991aa1ac32ecebc971374e7ffb692e5c35436ca71511627127d5a59efa75d71c2f7aa495a077e074a5f77f8e2cb3586d8d9f142594f9f7eb645433c6baf920ad7ba4c05266d32fb97b0a133a06f91ee0525e44db653cc8c629c89f4473cb6d12fc15a68be94bfdc998780ff3aa2a0b77ae086099e781325287c93a399bb6c4347f0c96f8ceb4f338447e544c79642d44b0eace3eef9d038c952d73f99ef238b2a84e60864ef8973e56567a69bd4f62cd6c491545de8c73f0adc06562b11f596b7e43940b11c66fdc9cdefadb2b821b960d5cb6bff1aaf427657d5cd74fdd1a453ae8e33d7a3af0307574ca4808380d77085c423e7649a97fe20a41236861153882ec65e9db01186ed312a9a83840d6d1c31a41e3d19a4dc95a4cc1df989e5695f45fedfa601fe346b513a37634fd31fb7a1d1599db555abd4f311f7d84c934f769de52c0dfd5fcafe8f57fc2fddbfd71280edcd6fb1693f4ce652a5fe860895d691dbdb0fba8a3efd3b36dad1499ef7e9ec19ae251835ea3484574048f8826b68db3badbede53c52b739cd76c4532fbd1b37dad87e049c0cc1be419c61a2dc76e840d0038ca159880c512c310dff504225383108d723654c9515e9a349d965d98d11ab9fd554910dc5942152cd37954458120d6fefba9f63c6922bbadcd8437bcef56ee8469b9b0686272b339acba0e9bb31724b267d56fed05983c47a0692b499862e4fc1cf0fe0f3d8e04e06f7af1eb4edfa61013dff6325bcfdab27458ed49b6b41f9b1627cc36b6cd4cd56e30a372f77af0f149c936efd3ea8d076bcc2495658c412df74a95b7b45ef52ed5f2113f9029c7c7df22ad8e7c5136a59d9fe84c2ef44b28d6293b33f281dde9bb37f00f288c852eadc8bf1f444e0be7b87ed5ca64ff9f2950f73b969ebcb3f3f9fdc171940e786f2b763e9ef98cd5aaac37386bc6c0d37ff2ed4edb6f545710661809331fad7269dcd0dbfe2fbaf38a4dda6c9766f87da6871cb076bc66825a40de8b0133dc81b1d3da7bb8275c2ce9d04995b79038adda64355e57164e249aae1731508933325287d8640cf390741877cfa25297f854d415155c15303bdde68da004b7177da7461cd52b856edf3f360db53bad5469bbed47e72a15c498a54be0e88183ed324b137e247053c34b2894c102620b26bb7049451149557dd62e90f844ea391366d5e2868ed02ee36e2b262dc073cc3f1016206eecf148fb827f4b4d342e281a3116ba5debd8a108b604d45d5d1405508f12021b38331d6047710a13027cf6a0b57010028e9526a34333662f5723aa1a4bc0b338b789ba2073f89c1fd05e04fc91fdc770cc8fbdfd63046840fb8ac00e0de28003c05d029f7de84c066ad3fb46309c064ed169d050fa569113805942fec2c67b9a7d5adb435324b6ef83f444f7b042df2c00e26990a22b2b6bc701252802daf5e78fff9a53e1ed3258423b3709252ef305efe6a69a030fa47cfac63aa393136d629dfcaced1f9af0630eb9c94ae1101e01fcb89ddf38fa9bfe05d4594dd9332abeb86750cabb7c4d35093914b3814868d7c21826cc0cea510b80ec236aa394a0f9c2d581cda1615f39e012ca373755b2ef75318fb76e689bc1f42dbe63829497ab9f89375924dbd00430217dab1e0383b7b43a71371c27d03e015c67936df646a9ad3fa2fed89db8140017335254d40648cff8e26ac237e3849b733d1c028d29534a3b02450684f3ae35687093bb8b8d6ecf9280fa0b793a90e57015a1e02625f59df8230af19172a6a256a94920668e5e3725cff8c58aef3c7c701f7bd07331e7237d1c940fadf6844c7fb3dfc770202a9121c1c150e12e8257d6ceef9aca5e31cc186841b41ff7b3e6f558bc6e73c888d38278468b537039a38f18a3c2b6e02e655b31ec809d0ff392251a5011fe492f0f20cce1c4b880d6ab62b6c75ee16026282cb8f0fc89659be719e87941aa9ef650c23879b094161e3ec7070ec5f3ba41c5e53753cc2bbef48be54b599071f0a1270bb0ceaa3f3179aa29e518ee3d6f45c3383808ee634809fed6596566b8bbeb183558388bd95d02df0514a1b15e24b6a2bb0c5b83e17ef8521793c00df0bf87be23918fccbad8aa2a0d5b673a3f6e5086f42a9abff2fbc73a07242b77e624e011d5405ea6f83d9029c3cbfa92f765cbf33cc1af9b54b10e8e3ea224da13dce809126f362783393c7e74cdb9abf0281f3f8fb66e5f6f8962f00cd653f30aed81ab34898fb953e6ceddf400ea089f9cf19e0d8d09db4a36b4cf269b846671028d991fd66b507ed463054cbf68bcb3a80fc2909e764c7ea96578b9b51e2b73f58543f05ac9f47a3fc5c8f2d3ce31c5e738684a97b6890fabc8ec69804cfa782973da50b8bd3a95edf90d124103f102e0572b9fb283382c8c448ea91966a1b232ec786578a0fc04f0a0867414dc783a9b258c7cc9cda43b8a6438a5477af431d2337d347121965550e7fad18b358f3550173183558df29a6d1e2ae022bbd72a6fc088943ffe83a20c0268877c9a1f8480a8d7a25160bdfd237d0967fea524da93be8048e1ee9d213ebc096d93cbc4b8aefe13b696c0b48844dfb90d363c4e03771b3da7afc2e6a7041313dc2c1acc6d8492919460eaa798cc3216a8a48a069ee41e793bd79d82a92eab1cc098ba306808d7aca3b0960d462029a8771525d400ada4a070a7fb518a91e8d9dae0b737400aff93ff85fec0113262e937beb008a33fee289462576f853dadd0fe574370cb4ee86dd07e05f2354a319662ed24e734cbf9c685a2f6899d0bd92818843206d4fdfeebd09d95bca24a54c01110528051c0528a6c078914debc0e232f8d6a04964ad755abf14ea2f34bc8b595bcb15b9ab9072d922f7e32bfca24a7550bca63e339d76e64bc6e6fb8dfaf9c1c25ebc1c4c0477c15d30114c24b4f2eeffc55ef0bdf7de7befe5b87b6f8d0de47b3fc45d70d39988c4978ce9a4b3ab8ed378e4f5e10067eeb103f1e653bfddebc3c12ddcc8a0eb9c634e12f8dbc264c49b3c1fcf3969e589b29fbbbbbd2776e038ae73f114e17dafd7ebe57d2f342008e2e45c25c20f638c43b1b6e50decd3d1d1d181ede00039f1f1f0f0f09c88790a28be9e9e9e1e143e211309be1ff0c59c3ffff30366302500537cb56b5b8eb872d7b844c9b1093e2e38501d26ba3449620a9ef2a547ce126b2d672dfe210409093541dad880650bbe5ad275045e68e8f142848e017839f279810282755c90bb660495cc93bb664494cb83bd1974be769c3001c070e4a8890c66daa86932647440c244080f4e4620b90fd51f7d60d099ed0883e6ba0257471f18334fdb239da0256193ece80c03a172c5cc452bae00814504474fbc0441443fd641464e54474c35cd10430d4410d1ff0e32329244093756926eb0908488feac831ca02304514c471851c31244f4eb0e5ecb4a7ae402031c1cce9f1f2990fd647a41ee00b4c8fdb0ceaba05da4ce6ba041f8e342030c3408e91665f143369dd1af9d3f9d112be1ce391fbeabbe005f383f04c371793a3042b2f41cbed853805c81c6183d127c69f3cf9737d72fbf145fe21ef21e827d25cb192d66423b302924c1b88191039300f47dc61a28c614630cff1eb29c802c6327c812f3903be4646a15f461e30846e0724af510cdf461e384228515206509d50b4b7c4087191070b44604514f8a4cc142a4f3f45de17f3a238f4c5f5c515fb84277b98dd22ae8033a6fc7e38c02bec071b978c0622a22ab0c1596345fb5a30753151e3a649851e88c9c50b4e0723ad11883ce68b41b96c244b902e6a80899defac00d441cb9d0836a4aa7091235830fa82f6790f454d410475b2e84e0c80422fad5f5fda201c3730835b2eb37f0ec4a41a58a62d4984894056d2917496ada10b919d9d2818dd1094d40d8107344f504e5013ed85c25598204932512e003cb1a282246acd121ca94ea13b9c4dd943a91cbd69a525458329d51e8ac87b8dcd96b1734c53701aa4bd520db40f5e90f16702aa7a0e09c424e28620eb86c2a16e5fc2002b40804caa2a47590d18f333e3cc0420f319cf142447f4e75d067c68636688828d1640d11fd49d5414648ba90d18169051cdc0441142481244caef8f0c385217220a25fc7277af4437f7a454c4505b977ba73b1787d3fac87e6b70a777fd7f8f5ccfde9e80de4bf22bb7f19ab408276580d9a4d902df8f7673528464735f31864b953cac83e4958abc0ae8e9bc1b2bba00fb84e3caf4e817c2275eff5a9670b609f1bbb0b50ea1800ec0bec631e18c7806d02949ee8925deb4f4ad9784dbd1fb88480cb95a680d7b48731de75dd75184e98ed5b7bafbd5dccba0730aef7725f3f8602c32e77b911dfdb5de3aedb36751ab0eaa43389e9d58211a9bcbb29d45aabfd7b6d4867b6db56af5c5c4f274067affff6d971decb7a7323be5c2eb556d6762147dd3bdccd2ff7f57d337b2faf4dbdc9e9a0d4a9b5e0fccf9d66bf3686bb586c522d1863dc95df965c471a3373cf8d5d53c12a7b93eb46b09382ef6d6f0fabdfdb35eedadb91588ee3b80aeb0973ad4ef3d79f8f7ebdce3961cc7ca1bc36c0ad61119db95ef63d0e7ce1d9eee79ceeae39efed3e1b96d63a3dfc80ceba8fdd7bededead77a6db55d1bdc809b55860c3a7757ee6f02388364f9f5d8654c06c9911da66ec40b995072862ce02d9ce5ec735555b6abaaaa309dc1567051a9fa644e4a6b75b7e31c4bd98b5009ee70096eb2ec6ed802eeb73816a45ff5fc655df7ebacb5b6c9aebb1c213b9dd5fa62439b21e1e6edb135dee79c95acb9d610099eb4fcc9dc07b214ee04e19fec0bff1f3a8bb58afe3a8651787e75cb719cbb08d5736aaa43835228fb874ef0fccec1822678fe2c5401cff04915da217b2e7aa8a855ccf7826615a87edf2fb34ebbefa060211759a98c030e5c69e1ca8f3c8366a5033ac3c11568babc6f9c1914127291e3fa002e672fefebd384bafaf3aa3384b2eb2bc8418d1f9a9a40c9333a4b76b9c81cae85d0fc2bc52d286731a10a24b6c1fea2162e3b0d2ee79021f40865c13d71e40a3e94ecccf5ede662176c5f83a210060c4204267074015a83b22867ccf27c4aefb7950abeb8a4081ea555d8a763977388d8050fb11ecbe10bb8ec0b88606b7dfbb3096551ce786a2164b9d93de40e3821c2aa2acfe8aa3b7af6b12f980fa3414dd411d912670bb27dfb529c8fdbd6ceaeb7bb3f06fb905417ada2450b7d906db8029eef3364d9ae98c9fac70b5d98d6c99ba6b92f6bad956bda8c22b9d3b68a0afb72bfaf6815968d87cb2f4482699d97de6a474a353ba0aa73ce39cb1dcca0d19f2dba39c9aecaf52769e4b3d2f0326bedd7d996ad689808f65eb29fbac384ba69b1789e6701ed1e3ec8f3bb46973f79862cf70a2a349bef338472bf8fb5769547d70e63c021123cdf4324ac6dfb2da345a8d9be7bf884e7fb935ee79c61920a75bb217feeda99375135344bd4d468d5d25c1999d9bd3a55104eb5345b6a699ad46e58b55b955a1aa4ab22f50a890f9e31646e8ee574a5c45df9d8d1b9f773e6881cc3676c59cc5d3b132597f8bd07f7aa250c3bc32497f86b3eb608a9128382961c984c1963a6898e19292c3000c80f3f0831e4880e26aa9596992523ee4e97ae8808afbca050c55c45e55cd920a482dc35336ecc8ce921534abbd91ded3a1c9b64592ba514e644d471c8808a8ad2f0045c6badb486798a7a616a0b9a1f6a65ac9079aa9149a14646a93626cd97202d4d5736820023040b616a657ed4c828097d849055468b98372908310526d4f165cc6d0c1a098ce0090e59a49a0471c2b03162a2c21d2008d912460b4bea76e4050136726831e103574c1041977089162ef98022c9c2b093e4eeeed6ea08b68a4ab262c2eeee06070799500c1338727e70e51053f5e282c35aeb03111e171c2d254607508c10485b458a5411c1d612969024c444e121c605174f0c1c98f0462301060929536e5d7e20a90a93468c8d1638b0a465a986231d7c382111a6ca8601c3b465c358b961b424e1ad9ddcb53149908c016267981ec060c90ddaa84a4b135777af8d49ca7e83c81d3761adcce42f77cd2a895ce2af1dd1437c31c325cbc99211578ad0686eba8ef626022db0a919994a9a12c585091913342698986098be20d1f2ea5eb11218e7ae81f1013b981db2cb72968381ca37770dcc925c3e4d6be22c3535304792301b99ac8dbb0c4b86259361d1a0266aa958cd0b13468393c068f0179cc61e71f096e97b5f5caa7e99d3e9a45283a932b5e2938e286298f33378e35eb8dd6eb7dbed76bbdd6eb7dbed76bbdd6eb7dbed76bbdd6eb7dbed76bbddf00ddf38167e64166058ce77f7ecc920292304eff57df9cb18d945de122cb54e6a4940e1b2f594d3940513930ea5e92437e994abda115bb96b5cae6a5cb4e01d2655e5610ac113fbc0f641afd5a376044188a82c80dcb5209e727dd708d9fbcf7e33bfc818312a107d6c0653d517498bf9383bdb2f69f9f5f5adf7633f94707aaee32ef7dcc3388ed3c21cc7e3caf2c0b2d635620ac3e981b4c4e3c7c663cbda7ad8c041b612eef67bb469d3060bcbb663caa6438b1a1b130e36b61d4b2cb1b1eda8ca5d6edb8e2c594a4e39a062686ef895dba6834ac75405bab6252a4bb55c3e0d0acef3cbf7de7bc32b7caf0bc692cbf51305da96686032833b7f3953a64c195b92962d89698c131c62942089b1e54882438c2d878fcce5b6e55092c9acdc6561646164266ce5be92db664213ea432feddebe059445773fa52cdbc61488025120fadcad6306545495ce33b9dd6b7a5b8bfdc1156601a92d179620a206eaa6c49b195c6f722052c919340cc3d8b5de7c6f989c80314f6edb0d35b9c45fb56c11d56bf52f3d70acd69f1b5972ad0ffb30088c93db76830a08b2cd6dbb418318af5cc12b59c293fe273266cce8a76405f2fc12a8d1a430bc8eb2a074ce39e79c94ec49e56798504b96cb86fd199597fd7ff13aef6c9b266e4da0b1d175689c2811c414d50d46886a1bdb8d29b61b4a6c3780d06855ba8e269301e12ed33203c81038d234e19246098b8c6b8d126b6d122e2749585eb61b261cd11282ae87b5b9dcbdaf7cd95a2286cb0e1b4ad6b871017433a50715374270dc38a1f2b22c9b8da9508b110f157a3461660732282411b99aec4dbcc9eee6060a5460b96d36ba642fb7cd06962128941ea24f852a108592679506bc96954e042e2954a6505535e85acddb9d541588847b94e56a298d00a544ab41dcd349e4e357a04b65471f0f9c84eedd9bdf24ba6fbf4609f7fd39b284fb6e6b3cf1609e9181cad1fbd728812ce13ee7eff6e9d30bea1185a2b31995e743f978703df0a7234929872467e63cced3287abdeba9d860518dce056d00f8de7b2409e283d5ebbe922f5cecc2aa3c9fbbd59d779ef790131fecde03df033dd287be8b9c5462161faa459fe8903cdfd2b00f7a1d09e177df44a04802e73d255f50d8eb840fe35e87c2469ffb4644b0f7ec48837e51cebbbe3e8da2d7e37cfd103ca8e1fdf739ef410df031581416712f7e0ca4eec5efbb17491f7f1ea8112ad03cf21d120a6c9cf2b9e4143cc62ad0c4c0cc218440a3010df8106814f978f0fa9ccf2149e89e3e8d221f0f724800c5a7e40bfbfee173ef85df6011f89c3886a30f7d23a2ee3d7f7d8e075e11f839ef455f112673489ffa3854df8d3e958cd1f40217d915c888a81bbb96808d2ced44e035bd3fb526acd4b6c284458442bcf1f20609fbc34ff2cd1139f6b2375972b81748f8c31b271c219525b4704a469b9285361ca0092765906200420a2b4d160c5d560d48d65a6b8d9c58015286c712aa2e48b7ac279be584870c4e6639ddac2249a10cffb22d2d4fd7ab7b1d6289e218cceb966d8754d2dd8a4187ad136e6ca18063ebc8d690da4cabb6c44da9c604543553a9a559486c82d490a54629eb0c52380305b96b59406481e07bbc562c2d364a6bbca6b525aab4d434401148585679cd91da9a2639d6dddddddd9dcb9694e15f316094fd723dc4dd1ebab6876c0f55da43b455f4d0cf97fd4e0a7e7d33e0f5af4e86bf055fb8660537e8ba51c67d3bdd1f04341a0d5d4793c9a6b8cb68478451646194acee2633c301c52ef8057638e3ece3dee3b8b2cb93c41d65c16bd9b5cf711cc771cecde02ad0593a0b87b3a287bc97b5f8bd03fbfefe277b859dd781619ea73fc331516784d119f73ce3d3199d8963e7f0bf06ed844f77c670c4b41518d019f7e0a8019d71ff8d1dc46815dc37375f54875a15bc9659f0bf264bf0e783b45c015a96f1fdaba4b9971f59d2f2f75c8fb1d769b18202511d2ce2a72f92e5f75cf9197c9cb10c40f59ba8894afc44460626c8f3e7d71c5e497f7e47be5eddbf5ca48cee1f034630ba7b58a5b6d6fa1403469debe78b2c9fe3eeb5d6bd564a27f7fa6eecdc43e0ac1d5df37e6767e350bdd65aeb120fe45a691073db961ca13c582425b54e49104c9c5562c34b090c2e254bb012271c254a9f4e6edb9225579208825b6c87b5d65a2a3e4f60763c41914f48323327b2ececc00345c431e58709684be1098738454911b927b74dc9edb3a26100e294593d3a32a0fe246bccc3607d3a4919f47d2ae96f948df2acb38e0ca0f565f857faf42b8cbab1a5f0c39684898883c8832d490a498c88340cc096a4882d899398032edf8219fdeff0e72c309d55dc55244f4990b28b2353327d0c6248d1177dc065578150fdffdfc51bf0dd0197ff2fa3332aee80e9977f838146aba1eb6836489122458a4c0aadebfabfa01767b9155ceff5ecdbbddc619805fc8932e0f967c41784e4b0193912622b62354474e245b038131cf44acd9bb7fb089391241e70f7ea386c478ee410554891db56444a91177289df6657d059b52de01667c03dd62f4faebbddda9f6294b5d676f724cf40892bcc20ce50e71141fe950e9135a135a1359129c9a10d563a7f825eec1a5b102b7bebdffb46d9b3e00240d108a6f3001aa093fc4423d873f951db43dd3fc741e5a0031b7896713dd737c10d3c775f7d561c6bc9106aeeb8fb33033206af9b45d3b664b370aff400b4bbbbe912f6dd36642bbb5bdf00570739d880fecba824eda1f63a69105188184474725857dcb5ba788253cc7d1d1e82e7bbbbb7ab87e7f6729dabebaaf943ea469fa8dc5eaee3a46ef4c9ede5aed4cdedb5526e7dfef04a9fd2c422737e4755eba4b5da596bf59ae4b38a4d62537777159bbabbddbbdbab8fdbdd4d7d76778b4d7876572ba2506bcf762b5a102ba20fdcb620596c41a66c28f4e06445ec81db1604ca864296204f4e5b9e4413ee75fac1434462623b01c9d684859d8e4e70ca0d2a7975af2210dc8d117fe01ac68ab96d4d42e4aa21b5e6c0f32bfd39e7a4d5ad5b5be9b4d65a6badb5d6babd5ce75d57e9ec3afffc729deb7eee9dbb5e5ee77abd3ceffbc02a388e8353e9c4c1f1cf41cff9401c9c9c1c1c6e6955a1aab2254b15aa2a53d65ec7c9c9b9caf4318c992dada25be84ca414ca5a6badb5d6dab16ce1a20ecc613b3c27621e8b553a63ce7322d613eb41e1f3e33f3f95ce1f143edecfe712a4f014292a9d2950783e3fdecf0d99be04127c3ea648f1f938018da2f3b7b6a8d2163ddad2a2aab2254b15aa2a53330a6a1e994f742bd3af5af5eaaaad5ad0aed2a2059d94d6ea6e7f24490a2890c93eaf00000e0000543a01108a3a3a30d8ce0e4f577f52d04d5addadbd6eefe5b8ae73bdfcf5aa74be5e5ce772bd5e9ef7810e82954e107c791f08e2e0e4803839391887a1a8e33a3a954e1d9daf865f15ab8ece5761b0afeef0380f4fa5938767e7f3d1c7127bcc7bbc9ecf51f8b88f4fa5d3c7c761de0e0fcf57c713752cbf0c621ffd9e0f85a34051e94481a23ecddcb5dee5fa34727dfa2e12c1b3924a994220899824e290893868376cc2d60444b8656bfaa169aac907dab535e9b0c484c56402e7e2d11bfce5b635c910ba6972017f121e15c7302c465581fa1f37250da13f7bd9ccc791fb5b0b442b5b3bb57a4c854c609cdb06c40a4815f723891f5bee9a25ac5405eaee87c9f6e4082b2233d488ae9b1f53f787103d46d0b9d68fa70ad4ddbdf7f250e28a37b56e97cda8e4eeb654a943333500409004009316000018100a0704e2902447024dd4dc0314000b6b7c466e4a2e97456381400ea3200882188862108041288c410819641c93e8ae044ed0d408025c565b45da0a3e2b2191a9bd25fccc6c1436449d2993bac481e28cd0be39407ee03182b27efe105aef03b086b8e84df497761837716e5035265719b3460098d5cc3e270cd54b9ee7a1bb1d575b1447226a3094795b3aafb1221655f62521fce1944ae6405242c04350acf22fda487208e518800765df257c598a6f33a9e990c6ca565cd8789b4f443eb554436df8e56cb79e9461dea4ea507f5ec2ae2d82135038ca675b283bfd816998c7010225ada796bec098c13fc00d97e0e2479ca9a5ae4c69b9007e6be3731e4b8d4e5eb140b6e68a3d0c68a1e50455447e5298880d97228ce87ee00b1caeea75f25faf5942a040487eed559cf3e228b051991dde7d6615009247fb150a886fa456e4fd8bb6128ded47355a6b8838385c640fff456c9e5572495c642dc54533b5198358e7d9700cbcf4bcb7890877537b4e5a4535e92032073f873a60240e228a61a63bd6a61ffe12fd8114b30a402fde1a45cb89f88ea5915433167f37e9022dcade4b8605c522da61470c4027126efe0623ab63619fff6106c4a36f0271dd67b191d2e88ff8a30241379023cabab6b97d69a28a1ab12cf3511b9ed888077dad94f399501109a590d1b94d63cbbf15675b92001a6c9522eb7fa1076b4bb3be3dc25c440dfb2e231553056bf00b4e089ad2c8ab70875dde6d512d5495699e24e620039400772ca104503c533d085d4d187528c3b0742a88e5be0a7d3e58cb1c2d2ad8018a2d3b0e7c56c0229f6066a825b8ecff372ecd7d8433c04302fdf9d996954974fccacb28eb8845f34d86c1a056698b6257b4bf634a042d4b48da554037078733922105b4630f491be8731e893df0206a156f0381962ff92f7aea40150f7ce0c13b4f9913c5bfddb25abda4f10d55642cc6009a6ad434d3032b99b246a6835813741bc251c184a1a6f744abc9741c8a4c75f584ba1ff0ef5b32886f1183b8248a9262bb07865365d1491dcd8129d28e95cbf838a6f8865235cd839bb3212f83a75e44fc9e3d17b8bdb310fcac3936b10f8e74b9d4611a06d6044c06b68ee34643472ffb8a7bae4b9f3f4fa1e02c7b1a768b5c99fd1b2a0916de6035aa78752816a2e84e8608b74837172f899aa19a15abe0605cd2a82f7b45309eb38cf9cbbfd77c456f14c6ab8dab3d7d75a2bac57658ec8f8f9cd59bc7c26c7075185f62286b0c6e1dd30897ffb15ea02ccdbea15ee7526677d783475d328a1de2150c2db9a990758bebc5154b57e712c3edc626b288008c02e73bc4dc4410113c47b124c31a26e23786fc2bdefc10589e4172763692f5b91553c378c5cf2d930cae25431bcc58581d023624a3ab3c6f686ec5f17c4b154d88c7eead3044c3c6a09ee0469eec6eb7a6fda84b0406a75c542799d279f579ffded05c8e33ba82acc9127aa98f50b64cae2cb34a68bcd9711aa08a1c1453b39f511e735ceb5c14b724c5c9d6e479b7cb94c605378661626f17e8c6493c75a5d2dff642bbfc6a68364dcd7a3187102fd9614a05e85709c28641fca2527d75573a54d033fc61db855f40b22e2173b2f9c2a1cfd39517e2934ddba9baa5c4f06bb1c349839dc7bec347d2fc10e0d58619e7f1776c7705b259a0f561bd3a16984509f5cb20493209c2fd33314f2f912977089d0b14fd14203b58285976b7196fe0727a09e6e75538fbc8571b030d4230df064b0ba00b5ec2ac001aec6bdf3e49d6a1f3fa04dafda655469e86e572485d99db9104f0e7113a21cd15f8753887238e79715a2631d2c3cb705ab1c8e72309c13471572bfee862abae270e720fca303a9c46027c88f20000bd091c0c444e6b43448a2fa90a0eddc07c9e2d56da46c8c19951e95ba30fb6523eb958ca1b87d8a282e46fbb146313b102f25232eb4f3d12203f57e50f2f0c4cbec4a712bc6b6134047f09825518198a25f4ac9eb8b0c714448c03de6be2da2fba5f5f29505f38f1ef007956c3ed590f135ba268fe77de247bd013f3a0e2451c2a93963815a62b5f1eee50c507fa48fbc2d64988f5f482bf5022c6d0256eceb62503d272b362273a345acd439a55a95efa71fc40c84439706d48a5f9244e507db4db1e225b16f18a302b8388d5774821d11228f97022f0cd2c6555c2e75b3b8e3cf546ef4ab1abacd19179fa071728d9df8c2c2379a2f624495ec339877eb85c9c8aeefed27e7895dd6fbef833e827935d8d8bdd4a7e6fce1b573c631333798ea765c4fb8bd9587c2970378b772425922d917ce119275899a93df7f14bac002dedf40af8b299d54ba969de7a9d1e37bc7fca56ad529613fe0f4d4f65316e492a0e8bb2e0dbfa288be48b6a92c4b768ac05962294ab0cbf84f937667e132793966255a9836dca865905feebe7bd64d12a2229471f68778e44b3aab56404ec09d071931a76cab92dd64501b00a1b7c2a7cd6d269d4723aa45e26e2ecc52f9a2c6a0af51ed95c722f37a54a607e42c7b2d3a5979c4dcec51fbeeb53024573c4137f598f33980b5421aa75676abe113fadb7c04443bbd7d02e3dd227125cdac65fb52289ed600829f10f849b57c89b81dee34cab476812d35e24a7c202f0efa9ed4aea72f55f74580c81e67cfa0d24423822a0ca6a84ab1cde2c5b87a29c8c1edac8c1a12b4457e894c78fffbe53b897097e33dc87368ccdd7313467b8170db3e4c1c64e771f1fc385807348d9eeab3fc05afafd77faa8013045c21ffed9739f152f8a86fcba9959b91900e01e0e47180c648d93ebf210376e67b08c7c8dcc40d6311f08fba5badf93b82ffb8a59554a495c19209272fc09a4a1602b83cd03283144ca09c4f77cbe7a102a563ca440da4d6ed27dc385b90a106a66f8f1b4b69c9704d57e8f322d4333778bf7b5e5dc497a2b30cfba19aae26781547e0302a1fc4fb3ec8ce302e961f7a5431c856d204811e934c33ec1242e2cdeb304acdc69763394dfaa57b41ab12870292a294a325ad24fccb9e919016512987ebce03136cbd79abbe2cb626c0835fa1ef2428454483c8d9e83a7b55a4b9d49a17aab405ebef57c26538f976fe28062c9e743f7632024d78095bc532e8f781518fd1f708faea1b3917cc26d7b6a4e09299202a487701d583521b7d35bfdbcd07d48c236cc8af2f489d86e9a5fd6e4213e3a8c9a51c49c981843b8f404c030f90979d8508f4fb9e6c3d686cd9b6e6ab41598644f28e861ef68c5d4f8cd2c8c2f92ea6cbb6c00b76d189e31b7fa0ec75b463f05e4097c6ce542270f1207e023175bfc8e18ef4bbd577555fb32c6b9a962f98b423817df4e2bc3bea07e433156606830a4c7a229b82ba9420a8e62a66f063fd62a9dbab8ec08f624148c5cbc8acf5659a40940fe5629f90848e5a030dff744788f49efe9ecbbd94366365028097d940fc85cb2391ab2c4dcc4e90221b451162085373e027db656d559e3293fe34c6a5570546d08e25fc2b5e77801078829dda3b5b2f32f3fdce0ba5960768ffb7bfcda7d27a9479aba3d1283a6cad026acd298eb279bc59581a4db2012e601065b8a6010b45843dc2dc106fb537ba26a722c0697c7c8fd5a63d19f6c55598201cc665465349681a1c2050e33953600fb651ae0cb750b6fdb004c57366aec2c8436332ad9e871abbaf2e2d84c4211c849f7a071546ca0449d5b955093d63574446cca3426d269e7fe1bacd3a7eb07de0d5474ec93c109e7a05ee3ddf032710576c8e91d55945400014b419c9ab29776bed144806bca3c49a6ef319944ddbf50a001680599aedee73493b6c8d66e323a9195c2d620c8908603a928a4a459d32d2bfa48768234a744c77cc2c05a12f86932b2547888af1c2baf59831093db5121195fc290af06a9cc989e18c8dff032332256832c80237669f845a65becdd31a1d89e121667ca4e9590611260bc0303e69084ce976951a9290baea2e175387fde47e04e71e1348b88989578a82b85c8ebc56c22094f46ee06c646340dd1d88570a41a278feb09f255914df855b84e41f352ef80c48e0728e720ad377ba49546f868e8b01acc3a994de54d9a9fcd142cb6e8c2e479087ec5b4c58961f8cacd8b0343e27a0682f69cd213fd29c1fd30d4b6dc60881f6c57adcdcfb6131d78e78f067694e02d3709c7e8c087d0b30eed0fa0ee99b1b39f088e8d13ef203a509b67567df45eae8319b6d3569dbac00be80df04bcfff0283871f38ff74e8e2abd8a55c83296388cdc87a36becd595164bcf4f10e4c8259687b3779a1e785c963e03c2b9899aee204ca9b105c1ce3bf8297c6956b5e3d4336f29abef8998e3241644c99c49e3896b0fe5349091110dd134b4cb0c34e1c59a74e2a32bd76bbbe87c2dccd529c4ac1dee18f225f6a0f90ee3ea1803e331503a19249d954c020486928ffcd97ae3ee3d8381cc94cd5cb85e7cf33ba1468db71068c5387ca547201018e76a0baed8772f7f65cbad4901781fb6bdd97e93c5f3433d438aa92333c39af3122bb8dcc8674027abd0122e2acfac0bb75014c73aa3b82cfd5d6e9a0d01db6cf933161fc20bdba03e8e3568e9352b2a580622d4dc9475b184be2ee08296e7272668e01327924e64593dd945e6c1f96150a9f4f82582f11e4343e38d72426965769445b790e41442b6d82e09882abf61bcdcdb73388008d1d0e70fb2087495ad8d08964fbd8f75b1998ef14df40175fbd039b61f10fe0efc243204fa13edc8721c467959379ff9478a3089ad12e8c20bcddc97908a413d73003caa02d0fbdea49e3116e0e81256f5347f9f0a33b22cc658889b16edd692879a7230762ef1c601d2a63770a40f0e503d003fa561a30d8b51962bdeb26563efb0883ac65c20b19eb8648fe5edecc14fecb70053238a1db2762d08e62e9dbd725dce2d5a9b4610e5e57698b0c3c409387435c6c837a5b687aea93b115b1bf4a2bedcb2563082f6350c00f9b59b81b8270f5b19bae1d061ebc2e61dc5575a1d82a4368e7213070da77e3ebcef5bbd877a104b6f00971c5d07c9ec4738f464376d3345ba6131fc08cf85e30f155a7bffa8047d94334c4ddf414a2e00b2fb93ba9cc5b27aed71db1a2d51657fce1039948a2862f35d819ddb80a5ada195e8da382f36b16c1d11dc3b74318d52b4caad3eceb70938292a8bb1a8db7385270d001a075850120cc006d34bc86c08e5e24e10583e1c36bd20e0a120311e2e01f545d04c1f2a9bfcf5890ce58bcea68e512964b90d1b72f30cdacb07e06eafc4c5284372558555d562b1bedd700bd72090b38117a78bca244a92aa9d51b4b8391c4a663ca0a971d18dac5358683a3b3644bbe4d7e71ef2aa00b4091088aacb6ba0469058e606cdb061160b816c76bb79426e157a85bd91264e691acf2fd956062d921c04c5a5805b6d4181149e10c486cebc0708dddeb80d6e1a89e84ce6971ba2550e2c7cd610ccaf18123f35d013711ffa0134a07fe2b4f8de44c4f20d103a6c9be55ab28a227db8add3533e9eb19e20a8c1e894ccb26bad791270b86458369da5b1262e395600201e5828eb14da1c1ad62b5698d0bb046eeb2021fba5c3e5608a8b91fa30d44caea180f3e9adf001cca801e00d9d3f9498d87e3fb11d688f29c9af114a176fb5b38887286f59980d36c3c67e384d124b2dd5d50a490e388b91f3d61cca55e890273d9f344585800144f6f8110aa17fc796cefc5836df96c0362766565027990f96bf38f81dd0eb531da2f77967a666d00cdc4f5e1c1c7152bca1dba594d358f04543083fe25a3aa9ba5ddc5454f3b092511e2a44e3d2e6316847a9666389f3bf110f90229f4c08fe86590a1b8d651b49f44e130a488b6cbc15788c35007795797b3fd03855459c7eeb9c6cd5f1773110126cd2192439121fcc8179e3b983d5d6021f9061294e3eabf3e0af5b6250a9692729c7ff38660b77a15a7c27a8282e531c90776f319f3afba737f791f575a49b4316e3ed60526f8f67cbb912d1e503da42ba9efb984d3629ecb639960b98d8cdf79edfec36b7fa88bc8da2f9e18fa1d9fda13a7f728a1c83886f74ddee740cc2100a41230f2d424fe6e75eb647807da97cb124647bb4c289461ff1dcb7adcf7130ea37155d18d3f330820b9ea1db2691a852d2541ca6236717698ae92f3ed215c4e1aa972829d9de4a052ee3e7a41e462e123850c7199667bacdcb88f936beda93463f3baa2fa1eb9f823944c066d7dfd66b5d6ad1d03f9d12aaf9b4624a0609bd6df654bf1fa9e04b07f80ac5b3a199e49afcbf1c178ed60747463d9d101c1a6c104a861d8fbbe185ca30ac2189d169bbe410d4f3ab5cac4083484504084a108f99ee116248ef1a980a061ffa1152fefbbd423207108b5c33f7978789cedd6c881798876c29d2aa72ad05997ff8ddf53d7ac57e6d2b274112cbe1b63dd2ebc1e0c58343070db955462cc806981a835ff1d6f3516ca40d80adb0100bdfd641c52d27f0c9d7a9bc96cebb45891951bd8196247799f68a7578ecc923a774abb3a4154592ab95c4ec9bbae4196b35a85be22bd25f3f2d0d2a58aba1c275a44edef5d85a3bb5444ca8d367b499166549345a645ad12ad8b2f96643426544115f8cd127830a1d76a2746af65e4d79eee53b62104f0c74c9648da9f279095ae2ca039ab84bfbfd445640dd74f2bed10526c740742364d3b43fbd402a928940cad92ccd6d335516243b4a2e4bb4c581799251cf95a0b0930d3f45ada9fce2311c929d5473b6d2f430c755b9f32c52cf274653e34ad9f9143d0804c8866226c93dcd199a7a1892e3d7db6982a5330164582ca4c28992b8e0b462766729a856d24894cb99b73352bce8003f205e3d593e630ec8b6db21b02e14d24c0be2e976ce400802bb13a133a11622d1fe55363f171a72d20d514fb75fd0edf6119add843ef0103a2e53e215021dabb3315431caa756653fecfcf30a9227cc80bea829adedc84b3eed3d93362c2808486fb5a8a31a8fb487e4a89aafc79e66f61add87527a0a6cf48cd1a137ffde5fd24dd8e0e45d26b4a8e3dd66e0a59dd1f450b8a2e4b40e91b576f9e4ab198f4a7e1ebeef3da29c039e83f0df7eeb0c83e9138f483e3ee560e00f510f674b57f19a0051ca1a227ce878f8d2c1f49debc527e5b3e7072f597b0b628515bb748b21906687df2501c813ba3a345332140e1dc356f250c5ace86e62c51cd0bd9b5890a307cf037f4422a9abda5f0994c08bc0f6620daed4eb733dc728c1e64986b25227ff33742085ba1f22dec707c50cbc4e862ae8402c7c651835c956f6e6d0d16627b042e32f85abfb004fb8c18e2853a31400ee13abf2f2fb7e4eb2523782d64180066550f4cfc0e032f014048385f696cee68f8d214102f6a11e971bd0862fa9747de5d5b9df78fd1b55ab63f51643e6bc32205659fe9ddaedda3984fa94a69d49650f7d84f23b7d639b23c5c7b794bfef25f3bb36c779bf72a0300b9befe23b1156322f926e8f627fd6468d62bb745427908219a78aec3523c9489a957817cd0e7838ca5924a556ea4b678c0b6f9f678db2f567002e9dcffc261f877287fd8ab4ceab0aca0642a75f506bf308ed6ff0b001e3cb00f302d77e2690a1a5a8392a93cb1afcac1815c6ef1c1503a39487278fce63d2a2edbcf8199b69970e0543867a9e90a1cac054a5149b87bc5a7424d5a3121d414953c4aff729d4d976c8984525022486d8e4e741a0f3da91fac60b6ee3f5da0c8da3687be9b20c731e4a9d1f64e5f50397ecdba055fbad49ca82ac7421c47eaadc659b3b9c4c5f07f0fa76748032c6deffa4fd36d156b1df0f38647f1050339501847b1e8df599e0ea19e45febde3739c4c64e078c7dbce549108e3c14ea23c80a3edb0fe5c07316b346f41a9b4f2ff7b09670d0bf831819b082095376cd9f8c34a78ddaef1066ff3fdb13f8c58bd670945240dcc53665f7e39c24d57eb5c19fc79ab668c15f154513321ed1c9892755e06654bcfaadb7e8888be9a282e2debee7d72d66299964e6e3aa5c4b6e4def5070e53f5d008d627a31e594e77f761446338bc4953c5d53250546b9ddc9882278d0d03a18c9fa16f7aac817ae8f9d9afa4b72d79239ae6fdbbe6b097c2996aeb7d8eaffd7a52c1095d67c1f2b60da389ec5879155cf00ffa882d3ec6a89d267051ac768874c18d9d57d0daf933aacda7eab278ce1a4162c1598ad6a9e3058008da8dc58ecbd9d4d9afc2798a91b5df4de17d32ef0875efc2eec8ed640411020238280198855a7f24e4f69fec20fd1d8b11ea51587912978c52a7e46bc458230de15b206a6488accff00b44fc4e372ef56f3f82f605a26407162902bd6254520d09976b5a850694b4392d58527d831e9d8bd69243b5bc645e8a7892e22dea242f81241cd351d09b188beccaee9ef89603e46845eba0df652c9869439a4df42d4333bcb7f5a31e20c311a8132d2d55b179762f0ed84625ee30bf32c9bcb840c74e6c646f4b49b2a144d4b634141f900585e322137c22a67510171b5fcb078f3dea30386a8437a468e6d2ec3ee482cdf3f96b89e17c62e43f6954f4f98f5bf62818095c257417ebf39b368b9a0301635d6c64fe67c3bf0e1f3ba71cc74fe60d97bab21b6365d1950af5ddaf86dcfd30925edfbb005739a92d7c825bc3749c085e30c5e586be77fe0a08305671c7ed92e8889401dea20f68ee84475bc381161387f5bbd4ea1f8f8299ddcabf33d5ed13894b5d44d67cf3c4d00e91724677e0e5d1b433b4cf62a93f08c29a39c96864fc5d89d2aa75a0fae0f2bd14a05b3facfe44c08081752bdc793be16a5ad3674ca690fd6c0eb6e68cc3b44c80997ed30207e9efd572093910715fd96fc6373cb2001fad2417f7b95ac2476c5764537252fb51917539d315a9cf2f1269bff34f4da742b65563d6e6fe380b94eb19e8e552e05590a742dc82d4e031b083ae80f90a52f5574fc69d24e9163338a7c58eeeec6efe70be622a9d7dcc780be00eb3e37c489023c03764d28c9ca7f426c777d28cd27993b9280c8bf6c04d5a0b28ba252c8ab2d203f567fbab6e4f720323e27b50a6b9836f5d75da499bd2f4215d08d25153126167a408213d2811a7960f1a0708dbd17bf3ff72f4a1b68b4bab9018a06ca2a424d5045d60015cc4cfaf042724432c4b5adada7316b56db0431724a0f66107ef98ac8a94ad040f068df6e020c14f4f4bf4a7ad4c999bc17b9c56bf3317e091dd500fa4d985175085eb781c75722a22d383d0dff7a58c8b190ea2f58fe856e197fa04c4fdc14a58c0939b9f4288e2925cc90e83e741c07e4077ab9d759ba48bce2d72e25e189a8c9ee4decedb84f4c344f3a5d8b68d0a9df00fa1543560171e27497943429b8d0b8401608875ac22d53b7c17448015086d8810c98d784456ae8aa83b39fdd7c33a0072b028f8158de7b09edc005b428b494024d1d9cb4d0756ea1cc5ffa041f036afea9ded0f056b5537431a33675b55cf551f3d78a0dd63f041bc3b0d9776a62601be9b98942c3925f2ee094769966507e05621bd031d5c15d1f6ece8f72bb8fcf6616fcc1ba52d91df69b6eeb91c8eea27d7cffc51740c77221533ad5eb40645a3a4b5566aac4e755cd35f21f213652977f8a37b8c38c58f624e35d8e4c79aa7ea8d7d239c92a7559cd331b531d20a0634fe2e16d8d93bc29f6aa69c7bbf8ebf1347d5be475f99db404d1816b770c2181633fef4be1f46b510983e995f358a204ca7649dda005888832e2c85d3e5b4bf382d1ad74a16a523d106a98fa5878ed9ccf1926d0d64deb59a1b4613fcd4d10c98e22cc42c1e4867b1e42104a25875410d11f3046deade18362e00e648021b6be5f4bf24694541038cca0514ea0e10a93feae4140476498ac5109b186c6b1660be5eded890cfc28b4dbf2850c17af007f0209fc2833f041ffa003e7c3ee3232846aee4b23d2f6959bf02a4c0d8b5ff20b63aae4219383a2ddf877079b58297ef399ce1ef6f0a34187615188a6b2e4da3ddb296377ed30035891953013988f2e9efa3f66d1996a9d4ad95e03c1eed49bee6bb039795acc247bfa395deacaa611e43d3856ee6bf064eb86363e2d6220d7dbe329d172f6927f1a2091e04a459ad84ad1043942501ff6dd0e623f5417e41a68f0cd7fec061d55292438515ccf5bd2326f3a3a14e66eef546f0f2f2d39b667b5c2f8f726116ab2a520ddab8d024e959cc7516c2125090c813b418e2f20a53299ed35af28e0acca7ebaa247785149d27dd0f16b3a5ddffe93e4c61869d209ee57fc19f77b6d54547316d79f88997e7ba67666c60319d0ee716f54f5157983b8acae663713354551bd8d41f02c8aea1ea92bb43c2228b98c4f92f657f8dd84e18c6815527c4929faacad07f6d62e99ea4840f077e4b430a651589f65cdbb751bf1d7d8ca6c9cd7de73685d15469451c3731ed51d2e83c77ec7a6d6ace1729c1aa32f69d46d8a136d732e855df3a7c2cfed16a145aaebf73953539ea1130be8d0857381fedac44bfad3605581f3d8862eec8d5c7125a3d08f93f511ee64c93eba9ef7037cf4c7c25e89d4e63648a0c1a7ddba3e56aab7d62ffb70062739db2a17891d519a446598c720c2ed5783c15698b570eaafbc120c71d5caa20382e50b1acb5a6c2bdf0387eb615efd70da8f7d4b0a469cfce7da7c157e646a625dcd818122122550eb5f4a5e0c20040aba85b3b89f1855ccf6856e31b810e936850250ab672d494405597a0a7c95ba90121eb89399ca0e81eb5150129bc611e14e07a64d1414615e9cd30aa48c823e7a8876f0edc7e1a88b280dff52d51263a0abd4bcfe3dacd160d114fb7c8e3fcfab48a70a8d0f7e1a8f92dc5d0913b5332f11391707be349d28de43c31d7f37ad1088d57c0a1b8d2d3f043fcfb13016fec3b7a814d801a0d5a295f8268146229fe3e498afd8fafa18f14fa3d130a62fae382663fdc2807beefcaa95bded03ec873d4f7d7f92210649287d0dcf7df5027c5e23fea55ffdd1a99ae2eae56e53d7cb6df82f33906359bf6ff94dee6f1498d5b4550a800eb0b4788cc7be2e2074080ffef97d027cca3d7c969b11098e3e362a13bc62856755e140ae4697d8f590b3203c3275d6aa4e7101572403387bece965e785a0560b5244b057d9e48e7a1c117a4c777c38e09f2891e7f49810293fe4d93bd1bc926f84d488a68ace69380c5931054231df8df1e5e666f2a7a01c11bc1a937933583f2fa287b3a108638efd6fb03683652ef964289d8bbe2cffc206c0f09c13846872aa5a5cf19c3ab311445cb49e31caf4679cc4940fb0be0edd95c7ba07e14220d4eaa6b91765711c3dfcf8f545aa9d1402197a6791e69a2a8567ed5b3ebd8d4e83edc64bac9882cf41f9fb227b2e3b3813fc68a19ddab1c416340f398640fc90878cd227f065d24c8baad8ac351718871b6e88f5f81f3a4069c418f153a21bda70e3ed892222eac88228227340ca6b00d144d44177c2fb7607134b27da50f06ab34ccb627f953cef54856886f5fe64dae26103ef0d27a04b4fe20622efddad4b8ca6c664c948c735d22fcd4d7bf8415eac00283a04402ce3c12eb6369fb2940da786c94202b5430c220cbc29f77b0ead69ef338174d617d81f5a4b223c1d8c48648e69a0440ee14f5076946e514e3706e1fdd4d02c028bc3a07a876349972801ab01b5de298f260ee55f8d88130a483d1c8b06afede6bcf890c42304fb2bc7224417c0562f353847c5124ea8610f9b9fa4eb2925d11a3f601288e647deefac8b86f53da1e49c8452dcdf04ed10a332dcf6cf3584b0f2a8e6a4345933b64509eaec1ff1b09df438e76a0898f54574a0b05c5448c2dbf7c945d1f6198311385c486457bae019615addfdc5c05ec151b2a6e5da49bce73ac83f71b5fe69cb56fb341706510589b950a581c4066af39f7de0675cc5073c4a51f4b5990fde4b23423d7547d40c3cf42bb57491f880251afbc09ec0f373da8188b81b2290b692c45922ef015721bc7f209e0c25fb011e66c2c88c30c94165d985752abd145053c8253de6194df95bd0b414f343e234e52943d9d5927625b672c1c73dc8fc085fa1705334ad2996e4828316de4e4b37979798f78b09c0b6eef1b4cb20c082c99b4a6e530f4a49c2816b833fe3bd34abde072e6fb524a3468010e9d899e38c52d7598baee9a8a613b1ed71c425065f389e0fe586a2df893a59ca84f7a288c96974ce47a604a864df2f2463503b2170b5f46959d367b9c4ebbffcce2b23e0419532234d0218e21aca4c45b8bba01ee88f0a0ee10f2afa37c42d4bd06f8f093b834b372e3796728a0cb73f43088cf900f572841fb3eaa0186441693f270d3d79a5fd10313393055bdf135cfbd9e692031f750585e561062eb7d345f4bf4fc735c53164ec24ac5b2eb7c886b40b97360c8f908c2058944fb078719ae37af3ed8202eb1354d3fe973784436b66e1c8c10fbd20b963020dfb8c2a739913818704912b6281fe0ebc3430523c7b11b3d481bdbc743acc298594c928ad583408e0f8fcb063ee30bc5d1f42d2418f97e25a258ef1203c93a32bb86589e6adb3717e569d3562b031df7fa58460e888e59f4fa3dcc8367dbc628bb22dc517862ae08bbd1cb89ba600dfb82ca0f2c357e81700dedc5187a19fc5c9ce55ccdd57eae87b00707eaae21d273ef24cf7668173899d4b92d676986901b2b53f2268495171b2ba36daf2edb27e1c14c3b82fd013a6464c4efc5e3debe491b8c9bb382274e9c28c13aff4604b3ea2d0b500beb275a35f37e47e3055b93d8cdb5acbb3f6713a56f9d30ec4e36fb9f2204d07484b75557d5d7309d4ae804e6a485ecff2f58aaaae951ae0547262cef64460d21fdc768e85f1057bd161543775fb8cfe99633ddda09e156e98a29c5a1e9190ef09ed87122214b1134a932b137e67c7eba65e1483a8409b64b469563381e2b9c77bea0bf5d96b5566078f06b46c501e030284d0e1411f2990cb1b13fab33b89c3e05e14a347ffd01f8a6413c461d50128d10c7354d06ec2931860ec65657ba833fa0f9b5de0137369c45b96a091b03cd904cc47729dad2317ba8338f1b20f39e4cd63d8e0d54492bf2ef56679e2334151a1134f77f46ed9c04893e3520e8ea0d4ca2fab7ab9c914525825893aa25e0cc635447a1628a99691e989fd78ca2f60e9861e3862db55d9e9610050fade3997b4ddc5c550704744d4a13f5c9f808e132a0ea5408cd92bd25f53a2507e65d87cb20480b9b058b01eb5b1cc675b1167ed69ab985421a35250b52de545264026915ab80658553e126558181bd3c2a82a23646f006cabbb5d530108e637344ab927248173b7f0a1eeb0db423f6eb41114da15244f7d223c1173967eea329a08f0f1b0ca3655db964d23c7a3050b51f32b89f21066a2c3df9655e01bdc0ace14b737ec1e212c362b27a5693edf619a397ecd85948a606839a7d530933238c6e2bc8f3ed15506440656ea9019b714daf34b71abf7c71873ffe56f65569e1730e9c654489156270baeee4a72e3efa2fca723fa240adfefa2846c4feb5186b115532aa1cb20d31b84ea56fdd4743f05ec41a92df9904cc2da27a228cf8c59b2458c8e501dc8aef3a43e21c28ab44b724b43f8b8d56d14929808621f9e38786312cb107121cd228f52cf6e80edda733f7f5e6bd4c7e57a770cede02b3dcb0d307045ba9c6d221dddba1b38de7105870a9269188f98aaa2e039005364dd30d3b7390fd2842ccaf3c2e4a9a36d134f2899404e6c430de03cfa5a3494db286c6e74519bb0821cf301ef537648ed54894c16454de3091dd546449f0cd90c89a6c2803fee9667c17088ab21daf27840e34df8538ccc1e118750b9e116ea2504fd4434394c1008601904287a8ec7b9fed34b8c0ccca5323723ec974a5e166fcd414550580c5806e576d850e91500a44e8bafe686d855e5e1bfe4be81fe6be83c335d91b9e6134bb0ce4e9dbb3f443a4c29c1837875666ae462c8504dce54e40e01e756c9798d8d21ca2be19113f64ac762d258096187ee74236c75e3159457c9e90f1ec69cac91b296f91efb3946038c1820bf9bc5132b6ce62c5b7176d63a2c2e6e2a9a5a0d885bfbc30746ff370e83876fa32bc932b3cbe2d03e160aa81f67620b4b7bfa8e25d2e8b474425aa74aef6bb72d3da19cd8fa7a91e51b9c7298a8e03fc90b16c9958358649723c362127c025710723e888aef1247c6f27a7d10b6e6b7c1a9d8fb93c316fff1d1bf4e1d7eca75740c5ff0a07f25e3ef76b540a740bcf5c9a5b00464651752ea181d42f00d32b216fdc8dc0030cc07462dac6a63f2b250054a43b31291c32ff22e9cbd4653333ffea264b84e27fb59c8f793453cb187566728cf6065a2da481f169965002c827cfe991ec286f8e88d2f66f277800eca0409e177d7567fd5571293e33286c836744a1c73bc00225ecd8260cf3b30ed4e3a33c66bc310d65c2a3169f4e272c6a26e99a454c244d594ab3a41556652ae9ca4a4c8a579fe3a83ffa3a1de5a23ce7517dd4397eca4531a753d728a0a98f8bac864ca6076d30e348f00b33ce897e61c22dd15766dc137cc79c63826f90d9c399e8fb01dc7fb59c674a69bbc21a6c7ecc29f6b979f664603ba24d4ac2649d9ac08069756eafa5b711710b31ff445caae432940ca62d8e09cb92f3d18a304ce30ace40357d9f96758bda096f7d6e2726480760022d0fb694bacb47d6adbfbc5e675de173ea6b125ceb4702967d33ad3c05802fb9c5e1ba2fc860763e0a8a38e6a9b410f7a897f70d4d378a3ee3e0bd458b650659c54eb08252647bdb3c7ce913ac3a379e77ef1744ee81fc9225698d9bd600546494a2734f2a8b4a06666b8727fb62daeeef09028c374d23504a9f1527a6cb13d8100aaace329165dbcb38181966bbe702e9003fe565927e20b818a020746542d1e5f3e1d1f570aaa5a94c5379cc2db1dd5a34351705ac52bdb191cd4c4e059fdb711a62c8218fcccfa718c16c53d430304decd13fa1dab68527d2c87d207c3a3a19bb70a5f5fe986ef1eda51d4efdc9cbaeb8584ac3ba90206748490bee0aa76c9d5555ef7af214f072ba17bcff00d182f2ca130dbf867568cb1419937068ec0ab6132564d9805c95c427d224b19c1c74834128122a0905fdbd041f61882f0d1ad05c074a5c9fdb716543829b7507d47d31afae62a86c8faf791e96e6536f7ca8438de8f89560f7abb1366672b9a38655f44d9791343ed144f493857695eb70520974dbd49ce031330e48c3b862d8f12547c27266f5d5d9a5cd4132b4c0dd71119ec6e739a623087beb0484cdcc05e900dc037b1cf27a2cc3d431f630732a2d63dbc2a8dd1e8669c0cb9f96da7fe89343af51a6744d87ed2765df349fc802cdc1e934e8bcbff8ca8a86d260ffc5af24a5812e4296ccf565b4fd1757ac066272cc51a6daac31fdcd63505a167f1f38c81cf54a3131ca640e38b5fb462bac7b48e6c0425fe1366d39039c40c3a8b4db9623933920d35ed434b2733bc2e0cc296991c5b7eac6e8966060956af4bab3dc7bd54e101a6b5aca2cd146bd25b6c8e654d3a8b584d6b3386d5a752dd1224ba74d579d65b7c8e2d429aab30c6c0d648ffa89b828cc3a20ef477421138ec45f65c691d037e61c897f63c23dd12f4cb825faaa993d2e89bf3e409d2fb5034662b5726c74aeb4efe5ad52d7fbca699c41ea11539895b0558ebc10f94e72e36e2d5ca966108eb0f256ca98527a0dcd7f47f088035719d64c95eee9fbd77760b260396790881cbcf98e5ba06a9a9208fbe6c37025e96e36403b4daf92eac6e2e803a5816eaf524fd63e7c81e85546fa2d48a7d791aaf50a543702c6da667a95b43152edee4f9174bf8d7ade1422ac3c07e69fbd300db4a21c78dc5d673e25e77324c7729e63399f4324effcd6a93702b044f40dcce65273764bd407864f5ab86dcc57cfb623012e3a376547d476e25efd2dc54048533dfa9df536c8d45f1e801d31465444e31282136e332cc2f62772b2e45e977e87ad7e8f81d6407c870bb741edc0c9a0d3c6a20ce2c83180223d53004a42ee7233f9bc2b42b3c6a20ce2883191023d530848f076b05a913e270c27b93b803184142ef03743c082df76cab9129d6718e257c99e424246498085006cd21b1292dda96886dd9d36e8d1414f3949bd9815f51f61aa402bc854849d3a93f062177a69945d5b488ddab9a3dfd6ee29d9d8858abcd74f429ec5712c1379ba1a55881f84f6d70a0c1ef53d048e2b2dcd5028a2c5defce3b9dabf8cb6c9103e4c01fe288717e31e80acdb39d70e590ca5f5eb27096478c406df493df63e711f473028be1880d9f2696626ed4ae4ddfbfd247619c37bc086151717d575bc428f1cc18fef96ff8de20bf9d87f00386c4965296abdca2418343b282aa0dad990d91bebdd22033bcb0c45c817d26ae62917fdd15928a9838b31554393f60ab96b0eb4d8af14ffe95576a557704ec051864cc9c9adc0513b9e36b401326f6eb180bc2604ddbd20307afdeeb55afa2dae197b37ca4877de0194057c7ddc1c8df25a076b4cecdcbabac29e823ec8b9fabbfdd628a59ee6857fedcd4bebe35095fde18856a8234cc137c63a69b605c4ceaebf04f0507c6ba03e15537c0f18084f4f68b88ebe6d2bc3ffc6c8ddd8e662231abe538a0452083c5f2edd84c99fee346d950f2f2ba21bdfac6e3336e20b26b072612ff6a19168b4382ee5259f43eec505308875132ce109a49309e7f4067d12e32df1be25d63ac6d08613120253ab8f4911baf423e4c67c482f59b155e5a2beca32c3bd90e4c21d4438127ebee86ee138f90705c3a541fcc1d798e7e39f5e8a86393bf30c81fda3c35247efba143494965e615a5c05b4ce40b00134528370a9a3e132b1503c6832ab785c7b74286a061c0f956b5c514451c3c3421561408123abb458baa4eb5c55eae73e41afe2edaf3ee14ba9d61320b9f9944ed4b1ddb4ccc804cf43d2ae2434891040ee88769139ebde853da052f4d4bea34f22cb1554244c5cc34e449afcf80722d03fcb2425fb2fd388a52193ad2f1fb48573583e5a535626e96fbc076c0e06373aa6f5b388bed4d6030e3e8f34b32bb534b4db6c7e2e8660341b6cc764981dcd5a2a49aaa557140e6cce2a38a3550ecea7eaf657200995bb5e0b706b0291968e9fc62faac1a4343e923d0203235a6229411e1335677dedcef0890195cc76caed8b27aec33defba682171cbd0d59965e8baec33655271cba39628f888dc4d035efef5e7745edeacd70daf1b7b95441cfa730df4817624d5a076f756a5f8c2431552d342f14506bcfa2dfac2d87ba217073e784cd2bc498c69772ee153fa12989ef127aaa28a624fd82b9cb95a600bf67bf77568171f36780c0299a49cfae701eb44b715ca5851a428b772f4468dd8420206e06494a556a1d317e48425906bfc5ce0248a32d5f0ccb4dc1b1cde6e4f93a9830fb1879be2a4d30de5c92575dbc4b8a769bbc3bf094ce4d1aab892d696cb1e428a5889e888c81e30e58557a4aa09e9f901478ce639f102bacb47b7874712b3cc31de83cc321cff9b7d203263396b4d83dc5cfe3a4fb6b2481e93aa18219dbed99be99695ad6c93410c10ea0faba10f2acab55f0cae89b5001c3153607c47c6145686a4d0899c7084415a9be4402e8fe97ed76c13247836dc9da27affbced68fde80153c3cb5d827a66fa865544e3a141dec0f3641522127b33e77ff2172edc19b506ad1153183f5507848fb825d977db185a9e8310cf3ddc05491e231f79a28b9d49b5e7f17b33f297f8e8ca16f7dcaaec3720a40199084d288b0df99fb7fd41e31ce39ee1040ebcc658df48f75c06287fdd1a6183761fbee2b8890a31fcce72c95b477e963c8665f3e9fcd4546e99f32761068e060a7447d0a10c8267b9f83c6a63932ecc35432cf549af111af018df5603b959ea02f312ad4cff03a527136ad6a7499072cd25844cd1a8f7a95e456dd88b3551ad1279ed046600a1ac26192e6b0ebe14ab644db847b411550e01d3a934c05350a19ea0535c62f8066e73408d946eb63c2865ef8856545981c7185ba15ebc1d3bc3ab77d91e1dea200504624308b0640f04e8c5ae7bcbe0bc73173b0b8ee3fc8cee8bea2e465e4ac07f3d380515ce88a60b5f3da9214d6a7dbe9397ef7c125d384accbb6e4f9f39b9c2a8929441a49b4bd710fa2cf69cc044213abf10ac43a23f6bd6f794a7a71d0fb97e21d5751ec157b0343682bfa9de0b0c202477fb2cda70a6d7b38ae1b94a490bb5bee9905c24f25229984c0d0afcb403996155a605fdba75cce83109342b43808461ac5f7e5f70e6ca7c5ac11982843d28e8fd0818f76d0bc4acd5c9890b8bea70e6b35c26efa3c41460262fac0ff49a612dd08bb23b70521b2b7402a4108352108bfcad5318023ff60ec4e26af9371a3bdd48d2383ab3b904f90f0b394950745a8d2fed370a6ffcd0e469f7c7bab3da576f1d397044b0447271a112a84a60c87189aac6d77ea9c0891ebe60c337e51569678afe830220f1f9bf429a4b5208dec82ea416d9c1eb760f214e1199b7b51f2dae94b6ca488318ec794628a7a04ed1e9194e230f1478f8afa2edae72a3afa58f851c9b43e7e2a54e948636e240bd790457def4272db40f04ef0d48837807ffe0bc771f7c3a43c02c3d6dd1337a7309d98e34df16b17696973cb6ba7b034ea058759cfc0c0933f341714f1990ee327f554625062149d114f0d9960a509493a529ec642bd480a02275a0639d642da17474e1a26d549c29b5c0755955c4ff7367ef2a0ae8a1e829db3c5a5cf2e4cf388e3748481846b8cbbd7a7cd4d75a5d22898c5e8c0bb1737900417faf8b562d8b2a52c8d12980b2e52205bedb1fe392228ef3079233e93d679ea8ee95e76527a1a15fd9177859b930b0e691e0c5ca726d15b303417e8b99b98b124e7d150ca13302bc386969f07d4ea38a087fe6ccfe789b00365c2713d36165b3dfa1f1dee19988f1563c74cf35f46f9e849b824dd44b424d464bcf7579addd0d4f38a99325c9b377553e4fed6e4300d4a62912057f039249edf03910f6a880d51b92f7dd9d8e00d38673e98c82ed730e4c95603621ab137e533161087f67adf23e96fc9297d354ac71e27e85f487cf2c5a355ce04d89a2103cb6929022d3c1cac88a2b98aa2be4a37a6e5a55192d31d0b2d42d030fa8fdac4f71f17b19e23e2b058b9937d5c41550a710bb0573c21f9d098b21d4a04912ed379fbf73258978c33842a2bf2dd21c118f07cbc144f644592bb14b28b9620c037a3b7417a66c7dff85bfc18beda9d98c62b56436e40d8d4f4e011f3782c42d4372c20087a6d3e8db41389575063674f2d90615dc17e28a6abb87cefefc8ed5836853db578902f6ac6c6bc6abaa46110652b246463434d288dfe3aa44fab42a0143edbaca1aa8e0a3879959f33faba1716a28f6e32b178e62f0e2cb603ae85b4e969a56017075e4bf50e3559ad1f3a7dafe6734e60c57cb2f76390995103e020f739684831f4f2de30fcab038e5d0f2e7eed62bbb7d6928d35c79e5910aab3233aeccc6441faf57367190cfaf720919fb84d31879c6ef650ba7632f7fec2670841882b27b3313742eada7d623213578211c586061a5e0bd678ea327bd3cfe0f0f6ec9ba43bddb6e8612cbfe5ee5126959774a2de5c771fa52996dae6d2407a9bb5c42bc11650a3144418cead7f4fe01f1a222933ea1f33a31314dd52bdd8e42905125f3f622397adc4eb830691a91ad4e403dfd1fa169e80838b50eba7c1b65b51eafec8eecad4baaf174dabd6376a9da60485b00984b8fb3aa770892eb4df6e749969c0468d85d8541871bd64280ccc023d2cdeacd0ceac6c22c264935ec66ecc6fcff5a6e8b7f56fb3f33df6ad2405ea6648a7392e1ce7d5d9ad9085ab8a01669b20b1a350403e5bac8a694976e370e1238e8eea4c13a8d4a7bea9d331fcd067b93fec212d587fc6a97972ffbb92af0ed0cd5f1c8792a63c7a6323e12eff0f3c8cbd8e193a1ba12114358079602e231662254546bae8af3c34151ad605a612d39ef3be3647a734e61291d7144a2a8ad9edbe7f1502fbc31e6315cf0014a5735465c308e4a4a0717144bbaf9a0a320ceb3ca20c144e60a5540cc03b2f5a5a05ad7dce3cc2c8d3425c345c3e21040c56818b6ab430000c24887fb8932af9d517519cea33ff250601e7411278f81f6b9df1a21844842f6de64cbbda54c32c91004f90351043eb835cf86949936593002373cbf9030e60877881b4a35a134d3016beffdbeffd70ef921ac6133869c7e84848ffc598e3368a1a129c3b21c69c09259a0261b20cbd186a5dc3be68fac6fb3d0ba57cf86b6c39dfe0e23694197f7ccf92d216e3fccce9ea50ccc1f29b5e0a46b86dc7c317f525f5df347356ffd55875749dc11e64f285473eb715a5f5fc72ae76bf7abaf0f7463fee080df9bb9ddcb1cdabf791c6ce7abfedce06ebe56445c995bbf0273403939508172beba4f758f023b0b86dcbb2bbb3634dc9d594dfaa3431eb07c7aae4fdc3b4882e4f009f4002c8723e4a0d307696f4ff8658c1b43f52f15f8de23c1551377deefe44fd4e9b5f0cb1c874fdea437dcf9db9f5af60ede3edbdddddddb97f80a40840d653e1e32564abcbc206345e6abf5245664bc5da8f651f7b4297329d9816afee904ce9fbf2347e7c31bdad05ee7b86edbb60e0c3a49bb6d5de7e2fb3d07756c42a1e996c3e1f40ee51977f719cac0210f9f2df40f79f8f887db3bae19d15065f2ef4ab7c861f6423308e751c80e869e2b53cfa8af85d48a9cf58683fc45d8be6a9f8542f385264e53ceba8833d7884e925e7ac01a6738da873c7cb4fe9c7e9cd73aa987c7f82b3d86f78ec1d005def0e9b5cf8c7674be1c8c83a9e310477d7fc79beb4009759ab216e48ff3294f842ed7aab9c0299cf36123efff7470aa066dd87bafebdf97dee30257ff0fe760ff54fb7b9d1782568f32d78132bb77eeee384e996c547f20bf0155df02b5afa86f30bbe0941ea38dfac31c5a6fcc9fd55bd5cbf0183d9a6418b5d30e6179dbf0c541f5bbdfb8d951363d0396eb4d0ae5849de1e1c3c307d6751da66c36300cbf07939c7bef75ba7de693bb0f79f8e4fb5ae7a9c0cfb3d17dd0c5616b9e085deebe933c860b1a76113d97f2f0c9dba770084379944dcfe87068021165d308c89e36e513286bb659aeb56a98b2a95f7f1333b9cbd9771293a3cc4196e31235795c32655c62342ee992b9dccfa178b27450e3b8c6d4667647bf3d3d0ab9c1d073f63bb2777c2de7a9d3370e673e35bd98beb55cd6dc9f9e7e48b1251a42a1b3f004efb0bed00cf247215390d6b7fd360ca2ef89104e397f52dc87db6719961c169a59c3599675e6594be0843fc3610bf9ce8e0ed233e867d8411aaa1e15e48960a90a5f9bd12eb33b4e4999e34e20a54fdf33edeb2a03eba7c06c47f7c96a6fdb9e7090d6ca427ac6128d7285666e0e0751db1307875b88ef68ef7db55f9bfb938775a05c21cffda19067eeeb6fbf129ad9fea9723ba811154eca3eb200104a30a5199a284912f3012369be2481a58a111e5698c14a9030499832cd72546265e2b0a912197ee4f99d7f39c952123379fe8bf983524a2b8de93fe93ba59405e43aa5b4be099576922e39bc2b1893fd5b6f266565869b98409441b041a69115550810e529bde7f698d03f9f05e406328a4818f357686eab61f07ddf9715c1c905dc6ae7572fd33aebec41145bdc01e9a1ecdf03091b425dce7c503a576ccc382992e9a7a6f63864079d3b7b0d468300243b68d941875a90f64381284ffdec391668bdd55b50669ef99305c9f57772d8cfbef575f51918da0fb3476916b47f13dacf706092eb6b381cc9dcdbd55bf03ecffcc970fbd7b716735ee7f2bc1a4459f5d47b0aeeac9ef5329f5a7f0386d97b0befac7e2707cb7bcfbe3fceb340d5afc01a44598571400b06a5302863be1a7738cbbe931d98d0b9b6b5d65acdf6c856b31b38d9df34abd11b4054c2a85e0838248c7e149aa835ad0aa856a5f44707ca457df7f4fb532f3d54aaa26a455509a3bf5b315d9aabb5aeec99d3e9a8f634f753f4b3d679dcc99dc771a87d4dfdf6f7a597baf45398d23e5d4dabeeb46e906a57c24991e55edb4007adb5d97c4a6913713db7586badb59a7dcd5afb9b6faf819ba6b9b46ddb36fb5986ed7cd5aa7160f627ed331add4a892be7ab6221df77c4d73f3669216b598e3720196f30bac19b46e30d40b22335657f9eee9fd5574d37fc90e617199192b21c9b2820cbb1490ab27fed6a67af98b8fd99cc137ccd3e0e85bc96b9f4a9b8e11d41c78e9ed1b9ca90e93b19829333f5967bfbdbdbe7c9de871ae48d7b01f3c95f0e6faef36a985a144da5dcfdc5711da86579abd973913d7b1deb85c0bdf42c377d6c76a3d9629a359f79033bb0a7e0564c37e4c9fefeab3537ecb2eb40b9f6b3ade7bb90e790dae4a2514bbdff72f6fefdd2a2ec7c65adf9caee7c6d208f2f675328abf30be7bf3a73af742d7be93274cd64fe703fbde7522f5fa552a954aa7b6f77efbdd8ce97ea3b950a447d0a0c79b854dcbdaa47a150a897a86fd5f703cddad9cf40707217873cdffd06c15437bfc3e1555d30f4c91794f3e5812151f6debd103c55974a814233a3ba07724e86c7e8205ec5917b43c347bccb91cf2b27ee1c9a3df3bbe85a09a37bc14de286707564419bac3d27a77703284b6c4267af2009f4b5b7814bc0712a81845e22d7773074123a6b58b24e265241ae5f432e912b961206c5261065fbd6bf7b2e07ac8f033ac86a92b5dfc9e1afbd8bd742f8be82f25bf51d0cdb43ffd4b7278255cada688395ccbd7f08df3b78f31544c198f6dd7148c47936b467bd0559af0283b8577d0a0cb94ffd0adcf95e669c97f729b8f37dcebbf813b893837b17cfbd0bbcf3e11a4479f53b3972fe7ecedfbf2fbd1154681a41a44c40583f7b1d1bfe36075c3d0eb8fa1b30f4de7e0b0c52bdcced8940945938e4de3e90ebac40171864ff62fbd96fa00c30c8c3dfe1598356d0b726fb4259debe84ed85b27c3a93dd7fb31a9617f6354f02f435ea24747610e5036b6af29393f2450d1dd37028d7909f81e694f225a9f79fb8d4b74f9968533ba5ad38cbb1ca15596ac0496955368450335fb24a53eecc1a6ff8b9595b6ef81d6cfef47b307f6892dced93fb87cc9fd93e7f6e6833a594ce1fc73b6ab2cc1445e49d812934edeb13dd6e4d7b2f8708c28a833eaaebdb989928eb1903b7ba92aaa44b4a2ce5bd454815fb4b561477fae0ee8d80f05fbeb2bf982fffd77cb1d4dcf0955f5459c1127ace9e347569e06a74465da971353a7b375cbfec814c96a39531d927cbd14a0c597a38b22b81386eacd225cb972fb8d37651f73b160eb77a3f054be8ec8f97ccec16db5b84b469f4b5ad08a9a796e11dff2c9c768b90687dccc9f9418ca638bb8e42f70338e9a29fb188b8f56a5f8454b377592a5d3cf355596b6ef87d2de9d325d9034d77bac42f6cfee06a749e3b579464395e29920f90e5d8039a54053b8bc30d6dae0eca2d342ce50996d0b9564ce578654a9e630f68b2f4bc6f11d2f6728cfcc97ebbb20379028b90bce69f6238798b90661192fc15febb8e63d65a83b8a8ec7cb5584154acc8df7c35983a73ab14c9598e5556c8fd57e239a7d3b18a92b14a949f738a910a9a7b8565839127a428a9202e21424c8c8a0a28307933820b151f72a0d2448211d720f9e185080d4a8ca80c0972b31ca9bc4025094b05605c2e2394ba4af049d4e7059a85846a4c2e388201054390a0c9d10c364c21b20590cd092e3ca0997205eb88043c58c182610a99295e8ab88a1419a71c8d3b406189748a1315584653769802654b8c0811998d3a9819a544c17221c8d20a47c4b81083114a5cd0410d9121e30e2de42ccb7187159868418810188cb5022c87a5274d2c161890035311eb87942879cb729472467bfbf94b4ea67e8243483a3a8e9bcffd8675a0def150ffc4f7ea48a17fc2fedccc799c9bcff99b1f42d2d1faf9fdf475f453fafd1bd6f17d7804efd11e070f21e9c0f9c643b01c8c838780bc47fb9e78e8bd47fb163e819c0776780869dbb08ed4a3f0501b798ff6a9ef6fdce1a11edef34348130f71d8687ee321e93d130f351eda80f768dffd90775f2593ee4b1a2dcfb0be296bab97345a7b203f5990050e21e9e068709f7a1578c113907474f804e93d473a48587a0f6e27dea369af23e5e2138690262069d4cfbebea411b693ac414113c547de1921fb09481ad957a0695449a353443e351b5845aca25416e3933139a4e3932e36cbf149d2f8e40c75819353e24075279bfdf0a0cee0dea5b5be9f36ab60d34927a5d4e73725c1017336284db0a31ae54eca4093db9119d55aa911a54633b0429b723d5a617169538d8d35288d4c9cf85026ca667ce26474a28436d1a66f8542dbaa88bb7dd8659dd512b79b1fccf7bfbe9dbe7eed3abc5381f9de4f60be8789c0b0b7afda5ba27c02a599dc95ce975321e5ece9d2874871d4fab5ff75b62444351c76d9e299e707db87b63dc6b6652b296ef8d95db65bbab64ae282f0747bff17fe777e666ebfb48ead3706290763341f9cf4b94e92801a7737eeb41a2c044046dc1e4920d4e8be5f46eec06ebee498efb3dffdbeafd69e70f87d9f5fb010c85829f122064a350ce994a208e15ae90a0b2736f726766fa8b8fd478cb2cba44289d1fbb59ab8f286596221cc132d8469c18f36d4cb72fcb20517e4337be26a88a274c5dd9d56325e96a312972ccb343b2a358d4a684eddb66ddb890be2e3863992bff96a300c93305052a954ea5ea54c4b6b5b0af344fee6abe585d06adddc846913a605dc92521110a5212db4a14a46b6e094a05691242649bd15069635154b530af8060b6b040beec3e2e48a161c185a672e0e375498e49b2f6090e47fbd0b8c918cca7204c3420e1f5603aa0c9a1108262e48f6420c33744f80e801882ddd048723c312578e60acc81ad3520e2d992c47305a463058c044c96dad52d1a83444c2000167c8f87d375b58fbc160375a580b73b96e6440a9cbdd6bb8e187133ee46086852d34e4111458c9f0c37cb9c86205139c74e7de7bd47b8f72659eb9d990f925614c09a33d97c6e372d1dfc22ee4d1e5ecef17032ae74bc34119961ec4d579b9f2fcc62c4bed0a87c0c235ce91db38e20d01c04957cfa03f62501aab28ae7db93a039ccc73bebf95c098a54866cf49e1f6bb4be1e4fc318b1219c62c474bbc5d4a7c3757c05ab4757385eb07515ac1842880980edd650b2552a8228b344896d020264c0a4290b440e420468488634ba213fd435ef1436b3823c2625b885424180080e9240588751b5984992c5699c82082b440ec618838457e49424cc50c102b42e90430acd9218b364e944ea0c4882cc4178837b1198852880a78115bc108c458a7d0840d621bb9e163045996e050431422982424f10808b1b57822ca2c2a70d2f363fa4b1507884933524936a146ccb22ccb802409237a5942f4c189717181888a1d110314883d83d4d2a3d86b2414ab51d460032ec602d10a2b85e8a10c11a63247b460f1a50522487ce817122095904d04682142883cb124b1a16041ec229e62604c6ad132e4c4249924fa09790606509a040c884927aa6829a40c8e884a885f6c8cb8612066c64a0f5fb2a84085972ac4232078a85aa6699aa6699aa6d12e58820072b36d144b52ecc607227a4b097462b2574023b69c03499018220a1dcaa89961c472c590a32d36897cb0a026861fac7849b3846e49c26284e4042650810812118d0fe28c51d14388915e52d05a584baa985c82a9d9d09814e24aac69904c28119110031073c5fa073985882476941b984404a45123b2111b100346ac8d48467cedc4ca5419808f1db6881fc4ae106d4c06511cb9a08bb45807d149928b5c93030ca2521671460731173199c511221607e03003910ab17a31a36e8aa28b492496c420b61519a6a5f414372663e002160b28a2852630103d06a45f8085289f28237a1013d345a411694419376d60dc607124480e612fe4527d2da391232d39c31fc5ae25d7bf9bd6af788582db9fdbfdebd71a40b8b39c5cd61337b5664e8dfa94cdc9ee265a4ad922c84d275176d19d1b532f87578328d3ecf3e7fb572f870632c601e620fab37a38a6c75850b0a0a05d2748827fdfebcedfc9b0c51f8bccad780d47802b293780fbcdee8905709b019ceb4a9ad18c45c40dc0ad11c054325db00d57a3f36f70250580063cb708c9034e4e2ea5c4952879ce4a79e6ab93e28637cb6a3753919c1c78376bd75a6b65a5b9eed33febf9ac3433ab8d79747952e17674ae7c99b9bbbb3fcf7c396b0dcfbb5e2e2eacb5e0be1c1f705cd6def8c8ef6be998acebc34956973b7f3e5177179141a8440dd775390915d10c0004088200f3140000200c0886842281582498e512297b14800a888636664e28938502711483310c03310cc0200082000c02300002300884610ce97d6b9b0c5c233e0aab658de962414de770137cb6293b4cf4a544878a98bcfa46129c160ec67f6cd7aade969425ff8068e99374eb634578837dfd9ec3466d74fe91240d1844eddcdc605d8501a190f694abc0d187313d16023837f00d6de8656a294692e1b5aadb782d8083ccfb8f1e12ec5f5b1547f355c843651c0e6a1fd1a6c1f31760d5b3ff0a10e8c762f2817ab6563ec468841f74168a53acc5ffa4308eb59b22dc5627fa5f7d0a4573523a5d4bc2ba37046807528c71e846f8bbddfba039a650b676ba1117d6ffb1eeb08071e27189e110d3101ee7c5837440eb48ca32f5d211b482f83014e8f0d078c4f4331abd9e478edae71dad9f5ff31b65cfc73e938a92448d90ff8448750ef20d59fa2c7f1a29622654dc9a3cfe3585ebd114eae5f4dee6ca00a8af002b93301f0a69726de18a015867761cb62c51ff043dd83e1f93b35a69a623364b1a086d2af48a8f017302842f269f04dd30180f89e90387a19dcda32294f2d76531800fb2ede7354264fabbb2f791a51a11db0f1c8526cdd9ef19999f41c91e671b4b25a2014659fccb9f7d07d0105e8b7d5fc5c90f3f236154c33a0b134ed16d71417590ba64662c15661fb1a4cbe8bbf9597c40e36d89d188ea41a2a8aa0da846271322babaff49dc4857f535c9f81fdcaac7be731112a2de4dcf99d468737eaa9eab7bd2938580d645adbafb3243f2c450cbf66cbc927ddd0d492826b8b3ed20ee41cb713ce76e8326dff3fd9f49c62ff91af1991629ca6c3b52928334567d644b0e92528821729a23d6fc9a51daa0b389af8ddbc22cd3b3d34c60d7151a2e3a58bd0a8c197e1b3a2d7945b0656c0f995a013f415f7e30c6c032ba4254ed414fea6b6b589b4ce65eb5face0ce621bb0253bb8b30421ccadf0b1f3f7571ea92cdcbdc4ca3f15ad3f6745e082000506231a35f6bec2de79aa7b4680568d50d7a3ed55c94442f88e162a28a5da2a2e565bc3fc82575849214159016c0feb84c42f176f9969b607a5cc73d6a3492a055e6d970429ca693964241d838404c8f207d9d5e2c2861726a7189c02361f29d1b640529e72bb7d7983fa29b712d69ef2aee56c09e5d114856978ffcf834041cd8484e0e0418cab2367c86214979f43be23d745fc5c79107f95d72770d32fc6a7e42bf29a4e6b5fdc48cc2dab383d4e32d0c7bd247b42d168fe5e588af4fb73451c1ef072831505d16212750640b419ea951a22a9cb9611fcdcbca93ba79aac560755c38758238bd69bae0610a14160477b1586a2830db253501ace5399ca9bfee7aa541baa43a4202ec95707e5f6d95cd5dd53315cca220e414bca4e9cba382097e0e704314422122079169739f1dee1413031de94bb09a5479ec0c896da354798b9958e0dcb7b404853a03fd6800947edb975638dc6c2d1cd8d9f3270bd3ddc213a4701c763b1ec482cc7f27fb519f461aeb5cceaae1f146774ac0610a02c5afcd80c4d883e90c39bcce71d8621a6d576bec46622caeb764c6d2c8cc1d8d0c9495b2d2bffcb16cb27f2b39370c4025443b277cf2da50cf7189fc1fff21e499f6fd7c1f7b445fa888513be23f57162f1d47fabe110635f84778c1446d820fe9b0e88283a8c6c05646fe1a402cf2b90bec9e0db4f1103ecff0e4db2cbaf2341c0e0f6610b542d081e7229762861141a8b436f8e254b4f350b359e8f464cf99b5d3b3bd66c1eda1be5b91c3b3e7fa3e90f7f0fa01f7501aa86dc8ea4c87681ca40719cd62a767786e056e0fdfedf060fe600111dfc36a3ef86c7960dae07a704330d447e569346db83cfa2d5da822bacc11ef010d5109623963c522783b1c43ccc2518614cdc0ea5a78001ac4a24c3c246c163d363e5f13cb6c3c6c3daf8eb00317aabdec3cc8a0054db11c3fdc88204081e6a9a95351d673806621d4b31f7701fe03cfe001984e7d5a4fb586cb078b3e4faf630ee2a26ccfbbce82dee3e78850ae4583d88220efa88b1d90d7180d91a335212fe442b12f136e4332eee796e7bab64a108df3067b28ab4d41b043f41f8eff38ad0b62210f6688d27b9022c7239196ea015b0fe341a4dc453c2573382ca68e35d34106ccd96b6e00b0521c742fa895584f62012bb7629ba7d115071145591e6fcbb7070b8287a7c31f8414ab3c1b6f16601e5ec707022a1017a99ed39b191ef23db8663cf03ac14b33da43fa811420ac85eb91d4500fccf260d1e7795e27868e67afeb1e48a69ec665699d0ea8e2626f2839d41eb01f7c7f18f7a0f2419a875a86f0d9f51c52b398f28c81fbc9e4b1bd8d09a2ac5c1e4fba9e291e3a340ba79ebc379fcc3c76daf3c7cd8de607153b3c913554082c1efc7b1843a88290fa4c6f2ef3a002dea3b45680a0e3c32e0ffa82b880f650a35391eb39fe66a1ebd97e9733c783b73167c8d79e6785e678f92383b4dbebe782c45111b4ad0213e0deef2c040ed6fe44a1a092a2acd2d004b04c4b987f7f2adab27c4462548ff2f56b4114460fb7fb93740f28fc9c5a41306b07ca8ab8bbb9a1c9b9b48f81db1882d01e7c5a786e1a9310ce01d1157a6f27c06151958e0093e6e2e136c281412591973349489c4819ef5e2e989f010f6f39ea3c076da3ccef37b7a6a1574317e1087135dcc569d70aa1019105317e8815c43d6e372e089f0a3df169167f3d1fe7ad870284f31fec21ba1fc936e9871608f71f5410e7f1d45e21103fbf36fd3da850f18cb985219c40d8f1d0d583bb1017a17a9ee97aeef214af59707aa8d77ce6f2ecdbfa3d9041ac15c485bca7849608317a1052ec78125a14c4b020f0fce3d99e8382cb83df701f4af66061e9a100479b700f7addb1f8f1781abc3f58143dbf9d1f44e58314844588ea40c0939b87d7cd42c14319a7279c87109a4594e7d0317ddcb913844e08cf0f15f16056bac783f6df83ea1f503e5480580ec48a170f95c305c46cfc78f45af61e2c643df46c2aba7836da8683304b9687e3b8fa345a3ec4ca20ca62f11880631ce4e1d9d8f760a1c21373c17978fa08bb103da888e239a5cd40100ee2e286e7c166c2436e0f5f1fd55a281e54f4f7ecd3fa10e410af1e70103520b620c80b619698079dcde28b6793e37b083988152d9e01b581217c3e7b72a0591479621dd00fce7aa8dde7e2764ef078278f459bf66cfd7017e669215e58a80be62241d42cce596c8f0d5b707b44b66317553d86d2a7c050011ddd792c5eeebdb4cb13974c35d4ad68b1a237317d3dfc7328eef8c9d090c0fcff2025c07d56a45bee0bbb946dbeaf551d0c2c5abf918bf8cfa5d5dc9ee8654cfe2cc3bf0610e042fb460cf79e3800aee5fd43409345a9f3be36787e1faa5ec1e6497a976a1412dec989ac599c05ba9c97d6e06539dfccfa25d82bf1fb1b74230b7d92a747c1edb7481b6ad021e82e05c563bc42256c6c22ab3b7e1409bd76b712d23acbe076a9dbf19868834cde05a462025869ccbd15b34591221ce7eaa808ca918949e7d0dbc35140813f4455d92b27e10c40fa09ea46e27e9c66c164963f2328930c687526e0756e074d447e501fec10ca572bc8c57cc9bfbe31fac35877f0d6e81f91906b6a646c753d3eea86bf66b0f3c407d2618d9f6cad8e58aff1d4ace736b49af940824c2905b90888d4d699eb920cf07cd6e6a66f3983f0eb77e91b987a807e021b6a87f10031876add17aedc09853e4d0ee83f7ffbf3a65c98319c8f1220907d8ba913b7f66a698bf7fcc18dd3b928b1782febaffd2a2a94936655ebda17ae8909307c6c813ec5b8d0b4f25ac4b915cc85ab0dfa899fd6b2528e927c6ebd9e551face955204a0ef65f2295a6f8d8502946c0fe9a2f053e439383fb0a31344e69d164bcfb0cf232504cd00259096fc347a120e49431e5fe36126bbcffabbea6b6a19581e4c97865384f825b56cdada42ac9c8021f004846f5e8cf07028318040d291d309519963f3f3c014948a09cc6f47047080cca5fbc593818684c36142bca542180c7d5aa98cf4f2e1a5ebcb16bd40e79a56be6172f699d224bc0abaaf5a2bd072aaf5deb7d548fde9295ef63f2e68adb99bee5ec7a395578ece7c74bc2152c9074ab8643b396611370468335352fad3a926cc475306bfcf231fef7c8853fcbe398074f20d8dcc4d20368b67c92899d57986d582a5da1da80a6c50c713b4509279105e101601742f9b72d5d7721c262815f7eb3d0aad3c09de512411340e7d7fed7fd6677c259b33ed6f88d2423e0272cb07897f52b1c173cf02b1c2c3dbec0ebea67f2d439e3cdd6ca7d4ebc35574a5cf99e07b35e4cf577906a0960ad9a8c2ff04d8b6c43642af45fa99c177943bca31bb13eac95ed40f318d82f38d7eac72b9f36defd5144f2e2c3aead4fe0e700953754e9fb29b7fc292051b3a4ddc88e3f3b0c9d0349033b8a86244f72892015e3563bb2f26d8855703081ad2a3651464558227bcbd47ac59102269e7eb06166622fa0d3cf706f1a37aa92791efc1e62d3d69cfa21597201bd26e049d997dfe9aedf474413eadf9c3d351f6de564bb04b3f5da92da316acbad2ab9a3ae310e020b2647279e54db68ee90741524611a54747ae2403b3024ae4a461464f3badb64d76bb6e986336a3f20450e8a1f0f78f6e16bd074f78ad19f7556faa4c9b5478ed46a078bb45bbe90d8bb23e8d5706ae21dd60be994ca980147a5030bb8785bad08609a38adf71ca4bbc4d4eae2d190fb28a310d255ddd62a9988687c4a0e49d0a0efbcf81e6b96a4818481f887566614720f626ac928ed35a8a9407527c3422ae46629edda9f22eed242ec9a9576eb1bd128c3d2e1004e60e38ab14ab1791342e0cbc80ab30e89a50b1680ec833be30852a78c76e7a53c92de67444f53e538b91be350494ddc4db2ac6bbf953d6130ae036ef986e321860d328272bef38215fbc42f41bdb46d40855b72c5b61d573837065c30aea43c55f4207b058f0d136296416dd76c4aec7d2be28f07cb9453375bb86fb2926b8c7ada84a6e5fb8296cf40a4820a07ee7d68d6121f5015e75a2df790d3b21dd33311b95789909b6421933b4184b1496c40c11db978fdedb88fd58b5222d62eb44f48df8ef8d35c262186824efc5da1f66061a0d7dd545d1e3bd597382f915ef370fa6778af8172d1790756e1c8f6d67d8397ba487c1e342e500891b09447e0b4442545a005ac145807718de0444cf70fe23e60b90f9ac8d1408e9ed6ca4485ae5c40fbd2b3244bb7bc92b12768aecd405c67f40b19606f95b62f4bea79d12dae5c642f256eb9c07b43253684db723dd74b417f721ded1c8905702da7889a97a2178202053529d6a7340ce26257339d0a85bd57eee46cd0b641f2f4690a0d25e8897198d6de70c62ceca63bd99292b234228ccd75621ebfab596638a2559be7715114b2aca09e022cd77a1ac0daa9063a74e265912280a30597d9f396ac4cf6948d2a6d2ed7ad4e9990eeff8bfe0df71fbcae2ee5c6752ae5c198eb38ffdc583315111592de61787679eca55cf412be71741e80a2567399b9a1d57bc37b60ec36ad2dde58ba614caf64ccf6e6c8f580cce626c0ec50a90dd151f7279402ddd08381173fdb702df5435ec6a9eab2f5ce8cbd909a5c3248e348e4150aff27ee40641a8921792a89da696c6d6664742b90d5370f52514ec4d404a444d176b883448dcf094130422e84041bbf201d75c7de194e1141f326217449a6ce18d19b43e10442a0417b8c5278191f4d6468217a1b494a7481e41c053497d965e8f0aa3713577a04d60976f599d899173f51577a593357547a90b727bce22a5ffedaabe1610441e1e1709b4fb8bd4989d5c9a5ed3188f5e46446a6b1fa28bdd5934451a5131fa54bd2b9016ffa0427a8a60cec33210b16b16e9a6c282ee7e03485e03619e36bc8f19ccfad7d390423cc191d0dff64c86cca7d7abbf1344eb65321577bd95bdc9e2ac554a32ea7316dacb3fcc7b8c2e8f66b531c4f968b126271b71f44fd778098a48d2478a7197dc051dfa12efc25f0f98b6774b1b72a3ccb1d39f8f9c130292107ff0487b57d8049ab21ba23f6d793a74717e61a30b0a1948c7b6a0734fed151bab7db75f410ed2144410adb60d751d11b118661299712396ec73583e07729b5d2961dee4bfc086ad13f0821fc53661093af8f082580a07e02a887983f956a3720aaa51a8ac19cc4199febecb87808cc8525a6d10e616a6d0cbeb5657ceff4dc1516a8acb0ee25b9883e94ced790c4f8e72f98a8d7471f60604a503d0a5d3008bf6ecde67c8bac8604a9220d72c613f5c051f1905d4aaa26742ca52c02bf6fc7631c1363d7cc81634d5b328d07f1c8c230b80fee3d11a6f115b9329ec279f3f507bde15aca2923502f154aac910c45543520101a62fd1578689c4a9eeb9496e83c3c73ad157e5cdf69b08271661557d840b2a5b297672475727c82e65a99cde1c7d39b308195443be0ce2ec6efd357b57467a7373c99d90f2d6bc19266c7325e2caf94d682d28bfdaa9125d5b04c6161fd229fa98aeaa2ecebc26f2c3dea0ce5b243a48223377182dc538adba7eb3616ec64fac692f5d96495962ee840bbdc991968283de1baffb1e98506d50105d4ca99bb9ec9be6ce8b50f9b4376f2bea95345142d06beb8725be59c1796278be652a6ad7c0739874ee1e5904869da4808c651fb2499bbb9ee8b30c753ee393b1c00794c48206b2a07a4f977c473efa9b87ee10e0d61d81eb814a0cc269a2db9a83d42f142352648cd2400ffe137f0e2c7912c588fbf083169842ad85175d581ad46dc88fbe83a92ec0b2abc86bf0d480c53ae4da21664ee616d3831c3ed7fd9920e12b5f0f466a8438c08905a2d4bc8dbc01a890a70c1b818e618a1ebed984b63d743d9eca1b7162fc1b92a492d7f6ecd0ca6d657d7de03df5184daf9868470802cb58fc7bf20d50eb173f11f740c59da9d4f4d66e6928bb5e14ce9ae98601df8d5a5148eadd98ce3a26aea8d4db7cf857bb9a9392245287333d5e0b0a9df9bb58885fdc8ae8a537be3a44eeafe15e86f9769239c7e110d98d8dc8648f28bf7cfa154d0dc97f1c24a593cb25ba4bf36a32e40d4a243d529aeb0e1fd184620603027c6d9ab21b76d3bc49c4f4f3d709432f7119ea30f6ff56871c28dfb41d89fb7ac046b60f045eb3668325b14d4c31e09ce94ad1f80edb76ba21c801922e52854a3d506c8fcff115ee658800b12f2497ae96ebdffc4ca9a90d3319f550b60f8e86299f91b184818a26f8cc658d439c5432e1c4801ec0320dc2fdac645010f7a4717b844ca29363faccee30db0d9346d921a3a13c62a632e970e1d1a01e4b8b05da654fc7b87ddd2a5cc4573f82e7c844adfee4a0698599114465f182f312f7107b198db1a585f18dcc0f08be75448653d65ac18d3eb1796b66d67ff01c4d150191d3a3432b8b03eb71169eb5f80d3607f4a282fa46188d48e94709cb55daeb21b8a6e1add4c8c295193ecfb0c10ad705ad89f3638768eb7f4dd74a31547d9a1a5718aa747ed869d9150c2ccfecf0367874a451269353fa0aa07aa9e7d5ce810a382c0f048b017db7bc95365aac116584830d23951e0e63f60e9ad004b5ae0e2961c9ff43ee67c7511daab0ff83754441dcf0de36c8d281e2c466157ae2005e33779b8eb7b900d28b13aad64d5b9b9b5fdc70843cb05cd3f27750bf888e8ae02e45917c7b040eb77103ae20ff8c775d6f9c288e839fc2ae2a46098348b4b635bd76e62b79c07cfb6d9a0bdbb055ea26d6c71aa8e9eaddf9fa60d395d072c9c2a8a34bbfba3a1ddecfaa8f719ec8c00f4dc40c4883ab610ba1376d64f5b8289542b9356ecbfb0bbe83805e5f704975bc2ecc9843623cd020469397c46d64599ebaacc995f272004118b7ec7c31465659cbcac6eea19c80d03935ed5d19c6d07742612fd47f30ee59835f2d8fdef67dec67e027b2380ee9e897b43fbe353bde386fc8991a48a9afd9108621caf3781eff519819452448dcef81b1718f15a8998cb53073fccc65e1413e6650779bbb70e4c80752ba13aa8b16c235aaf984f51f232bf5ed025d104435ee4ccd44eef894fcb8bca847fd5bb4c3e4e05904dee32e7cd915f7a019653c7d7414006818d197ae91aa671472079e82e89982c5c4d407c3e6402634030218edc364b24042d91a96a895c2164bc6d321bcaaa6e4b83bcd0b5e395079a446284eee20ae645148c270523521c34a448b06219fd24544f2bafa11f59482c9381f4f3f07e3d8328d6e3b0a12aedc895a60e7c8468a16ad7f5ab469a2fca2db9262435b1b9e0002f5a082ee186b43440fda8df0494722bed89480a495d1d483b013d912c01ff462f983d54228b51424e00eb5887b8414e7bb36a7c06af71297af39297a2adb7c591598342f52ab336737f3a75b894d4b2016041468148230766257bdd11600865087a433279af7ea57d45eae291a504e4573a28605ead210246714309a9b124afe95dbb03de7abf5728e687700f2b9ebe7a23cf8f05053053145fc141f263433d5cd27fcab3bfacf963012b7f186505bc103e128dfc1bfd468199adca07828bf03c2916f57684c97d7eaa2939532c69ed0a0b03fe451f4dce4384d0ff1439166ed324827a038bdd0d3fc44690807107701b4e4e6e196d1b04896a8eac54ae557e4a9843146dbbe95972ed333f0af367865f41ef93d5f79c98b2d975b87f76963d82a24e5bdb252d39a9e8911bc5ebb6a4035492918d5ba81d8890913ea12ad21d279904d87c024566c9564680ecca6ddc0ea475485cd1470d2ed45e4860043b72be13026eeaed0134df7e522180780a87aeeca5059d7a700f0d5d9055507b6f788ea83d226a41384f97f438feaaa33811daa822b4b1f24f4fd306c4b26ecdef73b813a48ea0d9a7cbe0acedcf6a6c39296aad5d6a4e78b9d5b1c5c5de092581ff9efc7348e3f40a7383a7f17c88c42d158c2dd69f6b5982671e45ca886c26a7acf86724a7744a58f4eb01684969abfc924f243b60e1edfacb2228a471be2f10c12137039037a108eec9dbf547dd2e10d234b8647461ac2f99809260af1f3023ca11066b0004b3b5cf88d6e2d632814464da4ba35aa2a1e02c70b9e8e40481bbb66201667606a57175d37177be96887c4be6e1b9ff11d01905eb9d49b2c7d3be2b1b100e39e8ad1dac6cdd0872cd582520d64191e723d7426fd383ff746e677f54619e855348fa3ad368b0269c221a859b3d8d6f58efd77f4d5a5a9a7171313e01b135e3b9dda2155ba4cb35653c115152b68d2fcbf0b2dfa908558a1966cac1f06e511a64774ab895cd155bb8651e261d2d26beda9b9c1d88e2ae4095af8af52ed2e55c4c438dd1cd5b4a52c4804e23ff8c68143c6bf01223dc1acf923d47dd7d12f13c96ecbea4fcb61193cf1c02bc5eb2177ad4dfba44b350110b73277b69d4340d9a98a00638bbf1642d8724d25f5ac149c706224b8317f49401fd1e9a09ec952e9a95a02fbab10e41b5f7ea33c642bb8a96c7b859c6c44de8a7f315ec7d8256c5ac68e9b04c6adc7696a0dfe735123ba41a311bfb38ecbeec4240297d0c5d8ac4fb4baf57973fb81f9452a9568c4640879db2363a304e96ba85b3261f26d1ae9bd73cc3aaa1c70be90b289e3a0ea76189195769d61e2c0bd7e34a7166b005d9220ce5bc8981a7100dae9fa88f7d48b4826e37075732762e000f46ef19e162c8fcbbe91b12e9578a2ccd4ec1397c843e1a59bf24e5e6a42ab1493bc29f5ee30eb5b5f9d598a6fcd9011e567d0dab88c68b213e6997d1712ac7a20f09109f134a2889e6696d841e4b766a090865427ba979c4743b2c544a963bc0f185e903c72374eb270e6ca4d52eff5d0248b60d6df0a22b50a0ada17813fd38dbdcc1839bbff7dfc00409160f38bcecff6a1c269b4842eac3f8c4e94f9922c43eb75134cf1f34c60d8d1ec20a345ad05aa87407edc5583d808ad312a0fa797960bf58609dce87867790760122bd8ff351970810c058ff3cf85135392ec988482df5118341a9a2e6530dab438a6fe8a69c796f9e98dd0bde4f2af3647353afa7af85bc49dc4f953694251e9c4d95264fdfa0e70d83332ae5926dbe0c404db40f4aadb8999dd08b0ead43f531f44e56ad9498ae33b000fa282dd3fe54b8f26af3feae34ddc8e043896b2a223c13883b220aebbaaea0b2a7a6acdc7c9c01e5191a0a6588094c5eeada563a428fbc78881dd9782e16a85f89617999e258e68892fd9f00869bee29cff25d1d84377b3cd76ffea41d24f551ea47d51bb46f71de928a361bd7635e8fcebd9a597442577c6ebf3ae8d205f1eafaf8fb35b4333a41ec6f00a07d679ef29244d6878faefc636f1ba1ea2c398d40afc9df9abd82cb7d4a71d69976b8839654fc0b749acd589dc9a71daabae1349a3e3b22dac97cc7e992bedfd1a215a939b13bd2ae5ad0828efcbc80cb16bce01ad2a659673f9be146f3fa82436d9da4a58fe67260db3b62ec3024c3a0cf39ddcf0d942587e227c37b0780e19a0ff32f2b6b8637fbba7f679e0a92a29b8aa3702dea44956d0692fc743db87157117ba1478f2f86f2e7df1d3585b6ed318b50944aa43827df38c11c96c5fdad6c47251cb314d3c37ad3cf0300165c794904e07a464c7d8fbf6cf449b5ba48b153cac63d2d6a280f4130085086c91f0f90c741e8db877e84e029f81da1962654c4777641dc8cc9f266de5f967814cc62f9ac87bb624397c11f8322d8758e35b304ab862cfd0558f9dba4bb128fac3c1700bad16295f8e31b455db3021cf4f34b2e50351612ffe43612f142f771fc262b033d8948b2301aaa259ab8438a403e0b93d532cda12946f806da340cab8328bdc2172b5cb4b108f456f3752079aec6839beef9b0987cecf5f584089dacce27e5021a56af9adf9d8ddb0c1b15120a928c6f3eb006da37db3dcba0f8499dac1246362052e0113df28f037f795636fb808bfd42340f67fbd54858414be26ccd2a238e7ebaccef15595dc72d63038d3535131d64f1c4decf13c6034760bf6572d8fa0fd16bf5fd8fe0386f5dd7f5f78a3561e7a754d54402b2d193154d214e0376b298a176ff4b200a51362ddd26be5f122ee97f42ab4383d0049f6f6b0a334e646fd1d1b5c52d5013dbffc8d880fef321027db30e7132d200c4ef8387aa08376e791f2dc93bc80ff1b17a4dc68a6a604c3e6073be4dfc82cd68719a1bc46ba240326aed62521fcdd0b94bbf1e2f8ae4406b6ed91930035ccfde1d14e143f9ecc66e3b153ed304e3f18b5516854c37af5850c160cd8d06956e088af4ea7134adb3f01313200b40ad49e940859c5e5b1612ba6ceca6d58663d8cf3f23a1484de2f77ebcdbc3630e4968ed4bc6c6712a1e04f44faad0bc166fba349de121829359f22b9dfe58bfbe69d918fcee991ac217844cffc732e6402afbb275931092e14166bfddc66a08f351ad6f893c72f88639eaac48c3e3b7f3ff9752ec53dbabd9277e1087756d94205369186a9d9f9fa606ec196dfbe8ecf7f563b152fc2a6bd733df9ddbcf844301e04805856b03e56e432b72bb7a261e56f77a460e356c3c83d8b0520b58b3ccc1a7738ae17df41eb1e24a8a354d2dde2fd68244eacf496b9a6ea8da46384f576eb5b19e86825f31992e4cc9af15a5b66ac2ff1ac2a40fc64b53d9668f575f9574ffaf561a677df1dab2fc315e84fdc97d145940e671798d528d2d42b0faf568301f3b1b63b1618f76b4e19c008c4d3485a7b5c571c613678c74d65f2c90cab504e8fe14264fa02c3d883cc21cd765c5126ef62ecddb8c1fd4a25d258ef9369e7eb9528c45b039981657cf5b83ce2134b7fc430f1830407bb4f81f7863eec5210e0db2080281bb7b64dd4e51cc9ea06e4326174bc2c5a41881aa662f066c9212ed02988eb1600d8dd6c26c9e90e79d3008ec03c9ba6b39360eb5977b9287266c26ac77a612e79e32bd1ddf1398160448540cf6dd5a3d224b112a331e5830040ec9c0630e460ff05fbc6ae5d5cde422ccf9d4e69a2741d4ec7d22d028eca9318aa3c13d2c2dfaa2157ad6cd5b71c864c1876839087771bf87c331f3562218ce01751fefc8fc7a893a2631b3e08f61c05f6474359a5c26fd7af11ab761e7b5c7bce1eb3d37d9edb4664f3b03eba5cab4ed1f299d0d044fc5cc3ab903e8619c70af120b37cc2b1f89deea46bfe1d1d571568ee6f2d2a822e42cd36d917afefca6f4d0848041c52fe44c21af217f5a170675b997a71eec48cbcdec9773e57a96b5e5ec0f84800130d1ac4d505c31089f12d4338dc7fc4f24fc6aa1d62aae80f757e4b61d62fc6a3a262e1f266e2a1cb144caca308e385a68d7f9ebf90588a6b19ef6858cc5765c4f547f4b10206574280ceaa18755d378399d979c6b0834774593b58cce978619472abf6d54c699d948168c7910a0944d3f4ff636a5cd1ed2a94137b327e60c79e771382f4718c0e336e916342d42ded97ca780af23f4e7243ca1abbc5a9124ca44b2d6239e336dd8503ced38f7d9aaa7e1c6b90cbbd412c7cb2e5aa487c298ac87b591fe5eae8dd0054257ec1826a75c1542c4fee3d606d4f83be1628cd3357b416f922bda6a76b635927a343d56708c0a9430a6e20318651531c7546fc91ed3ba21507633dfa14976aaddf5ce785be5981b63a1cd3deb30167f3efb49b713fc17fe08f3bc2d318780232892bdc7785f53335c6d7daa9a1ae64e870670406e346aaaf6944799515d0042435af455c24e3c9014ceac466977e5f00f8b00d3e79a21b99049b600c621249fca5b98a221015eaf3909ce53f3d7317a4847cf85375c40402a5a92314fe91b0e380a37571249a6c86d73aba5cd8c44fa4138657e5853d8b6304e55253bf7c681bbcc93a5f8491506b1b9b1004a06971d61f3bb4360d642eeaa6081b583919801f9bd4fa53d11e761195b04f3faea53f3b8fecfa3e42c8d496e4112a0932361ec218a4bc58cc63d7a0e2be099277e1cbb37c74384e593bb3839ba418353a0e26dcd788c19a3f86a259a42972adc28e369b5ea038e0d7f3cec1be845505c447451c2a5d12ed1cbb775ef5e1423143bcbabf65865ff325f332cfd907512c9a94839d2bf3a4b63228e5a9e55329f1818a910ff884a78b2c32d131c7b9b06e1b8e30eb1ba968edca0f9a1604ea6d9446497627171f06fecd60a5ec4b11f374f5fca29da50e3637e93abbbf4846a26dd6639f6933f65b5851966d899dea870f37fb7e32e6a43cefa4e3c92959c264bb83f4b53cfc35dddd0c81db20cf8cf907675599092d02dbfe86d5bc958d0817a372d88d57c7d629b5a129117f6c1fc70fd776ea2dae0deaeea6b18438a65ad9d5c490655fce2ab395dec03486957f6833bffedf660fc4b70335fdc3e581035811b54004e1df0c7c9917e13dbd934555dfbd425c9d3644023f1ab6db73ae1431ea16cb181c738ccb3f114afbcbaf5cb848c40b1c8454e25d5de3658759c28b50f698888aec20e94784e0da2ee6a763171c6f9e920b25b221ea7d27ffe10c5aa5a1e75570601e46c52e012a352e3534aa564d43c5780b847537264d3cdab7ac3800742df15b0a3b7a94183167c317ccfcb3a63364c85f96382656d215eb0879f4b11ec86adae7d8acf3383dd92fdcbe008c24836415bed7a7383d70810429030d6306de482f3ea903c3dc5a57b0cc7b917345f55205650a4e661208b0292f03d12c143cdb523fa5e6c4767eb3f63077ba6924ee0423eced9055b8c48fa1a4ca4081f67460147c429e619e20414e14e2f08f4b0a0f57421c8c1b7582ef5556a1df5dfadd2f0ed11d455bbbe0b868df374a876726589fae8fc14856bd5230e955bbda2387d52b25db45afcd9595b88bfdd7594add18c0d6611c73314db14c1e0cc1b888ac8b4a0798627de9fc40341b3f8d9bb75acf9a68eed46d404312ce31c748f5ebcf76a4cdc14ed07dd59fd14f83afd77ef774c075488571209a4ab706182ee62622de694d556ab649a5ca6a92f7fdbb93b4e4654cbd01b8842411d56ef38a8e33673eee9b5c14f2d9b85d65178ab33e2fe54436be1df7d9405e9687eb6b963005573c6f8ed86696abd86c606637a8e13b58617ab66346ec1786065e246842bcb35957e56e6a97f4e8cad3659c754c8b1cccdd257d9f1ba0326485fa0c4ea599ccc25110a47d7f6f8f28da9fbe7558134407b824f66a761c3ad1da3ac042e90f894156d777872e2baa55a63ac6ed60d94a6a421899ed966875cc48c128e2f0719f7544aa6d86921901691227b5c19b26e09e8d180d86d9cd2c264aa52b2d72272ba549a49c78ea9aa6f6cbecca0b4bc97cee5e051191c9ea7a1b17f8ceeb9ee884035ab76884f8008bd0747a78bf5464c1c6b04df9163589ba12d160329aeb014f7e5d1a04cb8f5a977c8ef82a94a08acb19e2279cfa9023971001152886669d9730c9ff59d24f852103a58635bcf0d9a6038afa5fb40065d5cb8e0ff3ca6f550f31acd714be1bdad09ccd49a70d59c3ac013919c05fb69a2706d99dce0280a175b482d257f66ea052b86e45fc0348df4adcccb92c14ac2cbca98baf95b64dd8aad5c3f4164d849c807c4828082cbc5cbe5048b934c92dfa51a2a9441603a36976939e2414371233c52f4c66880ecd334f0d75e7da334be746032495061d5a83aac4fb980d1927159c9731b1a0230c551154c3bee3aebae7bff92206ca9e420cf5cb0d9193950e8b6cf7fdc48a18753d1227d3050e713e710a3fa126b28fdd26e5e62f88e639e58e1d082a08026546380f89aab1f198a72b61981c49fb8d4e6e7486d3f188dac48c2f087eb87772fd967f1f9597bbc7e7fd6ae4340b4f199131896480258fb26becf5881de90de537288efa1714b4b8a5e907b23b51e88b3bb69e27c10ac509fc6392bed53859dc094819295f1173837778c6a46bfd5d1a9fdd5562f869b8798e1a2c5085f3066f8334f69c295ce24c309fd166495974365335afc8ce95947524f0d5525442a728730d8ee2bb5666ff913b5490dbe11ad4e2b8c3f61c6b28de3abcca66f5382fb3fac7c88c95c509eae05fc39fe90c7226134ca563973180a817318a65c05f67ace757b95df27a441933cd587c6c43f84b8d7a262522159d42f41c5907edc10d86789611da40d1b6d46168111b9cf7b3430c6bd38603b7f6af80e40498ef93456275dd6e417f4af47f249c2f19c447561ca7635ed42f1028997bd64cb25cbb5794b2f855e3c17f9a8ef08c9138ae7aade8ed287dda0bd2981a45f54b3f0201c5b446ce22e97925350ae8adb6b57c123a2072b808a54e176189371fbae97dbc64e8f4fe62a450a26d1170f65e5f43eea68cc23d3b68a529f1e69a37959b20d7fd87a3265e563af1f50a2914040dbfad11b46e3ce54860e8e6bc9ce613161e0f7a935c50ca79afd8a48c89173b83dce6e217ce3dc9bb95e5285205ea51734d07014274f18481a35dfd36f48ea27ca46fcf4f4525750ffb1887e4edbf85fdc44eb15f4bd910d71e4e5b72e06549afdec2419d49f1868c015b2ce6b87e44faa92b6a327d6391c66654ce77a927d409c6a533ec8e306645b441403cba29e0ccaa7d1f8c753d13a959670ebbfa23eea13c41a0fe97b5f7e5d881fb5662dc17f4139ab671c761a55df36ea81753efeb90049a13a5fe83233df703a942afcb848913abe1076fd2c89819b5b79671c198b082b2d71eaf08dd7535555b75860b290de5e65f0d7b2d34f1519607e1dbb2786a69b372a382492bcc4b1bd6817010092df5442717df41ac6c8eada4aeffd30d3590ed50a4c6a53f6160430a96b2616292d4537963f27e37457ba9c36f6bbc71c408e33860ffb084a1cf6c21d8146726c91f191ef38aed153c92c9deb773104ffad953be4f2160096a5c63be77810dc620ba2579eec6ef0521a06d7c3229b7699bbf8023eb79521ddff88d2ee56fc3fda04ba9836d2ad8dd52e9963fb9e5b700c07ac2899b37ecae42ca49ae44f434a70478afea014acfd6719cf6161fc8aa6a904f6b83f162cc1031a741a7d5d40541aa5039a44b36d6a1960fb3021d6a5eb960ffd2febc3d9c652162e73a84f8db9bb60915a130bbca44af0003251e1468f0916ec9dccc2f60c05f2daa85f39b9f95c924d2cabccfcb9efa4199246c8b2d94d88947b4b29a59432251941085207b307be1aa150be42a1700ecec13938a72773fa83bd980eeec4077f76e6b7c6fab7e6470bb93e7c5dcc369e1bbe949dbc80fc7caaa8328525654ac620ae5286b201f2f391d29331bff36aa4c76f599773df71e7ba568ddea9cbd35c3f6bf9bbcd68e1ba98b311c78d30cc61393a2035587cfb9d8f1b2b57d34f299625c7c19de9c5a83b094986cfe0a779d6f89d53cef87a655faee09c6f46db4554a6ef8d1ec3dcdd75eec3dc67fd4bea897567a48cebbc57b5defaf73fdef90d73dffee5de598c738cfcefc892e693708eae21d7f9b85d1c61f5deede55aeb758a358e8c7aefb5b4e51fd75b6fe51aa7ff1bc75e32b7beb9d2a22f951d822cfc9f003368adb5f05a0b21b497ab8123dba445b05fb51f719d53292595d0da28d6ad907542ddbf9bc87feb76284f2299eab0e645eb094198db26f0b54aeec275a86c85acb54376c8da268d80cb7ba0a98548d23f519213d193890bf2b64daeebba5419831042db84f6d6dddcdd1c5b413137de83eaf19eaeb3adab64af97de6b9bbc28f66d13ef41d55874ddc6094e64c389e88bf2a2dc7b512de3efbc28f314fe1388e2db26b6c9755d76285b4a29b54d200c157d93dc55c6481aaa875cdff232327efc5475535144acbb7b4d7d98bbb5d4edc56911fc69dbbeab4ca5949293b5c65edf9436bd3adeddd75f558bd07f5d16f5d553ca757745297d1b4a9d52eab4d26f6e8350a5bd0b07a57c49ffaaa8fb5dd1bbca17c9e572c8499336a20d794826ae6b157cca753e2eec8b735dd74d92316bad75eee25c55a67d51ab52354a42958abaaa5e7aefc569957cfa5d2f5b2fe52ecec5c3d2d1a1d7bd17e5a1adba99e25c9cebbaee2a5b4a29bd383b2f41487e392b63a4fbb8bbbba6d2eeebddbbf3bb45cf71568e2f7efdba5d31b9befbbe5dd263d8f55e6b7d5f55a7ef428ea35a6374af23da328af4a34b0bd779a6efc275ce451a49a09cb70e684306b33ba2afba56c73807e9237749b3258b2f2f1d40914433bd95b18b5ed7457760b9d6dee48fb6f938a0f763f176e703d5b5e3d7ccc4c9f8f5f8baa36ae25f4f2bfe084365a00d1d57e63ef615e7b8bee672f67a1df7c6ec392dc2c57596f39c4680fc3931cd74566ecf71816248bed9e5bd0a275514c95458a162491541302bb776ba88cfd04f7d4c95f8710ce8aa2e6bc12e6badbdb69afa306bafabedfd1c4c7e37c2acdc52caabdaefa4e4a49496abb9bebe945c17dda574e98f03fad661226edf852c1d4ae9788884de4dfab3625686dddf5c6743bbadfb90dccdca33cbe0b7f50d5e61814775ee7acbb90ada803a254e95e10e7f89572d82fcee3066653887cb4b9cd308a01096de647a8d93fedd49fb2efad7b48b43a013ec2ad7f940c52cbb7c97dbcad825e725a594d57238c71fe380a38df477cb1edbe8fb7cbc5d383e0bd006d481ddbbe2333c990475e2673d3ab6eb738d31ae5c8d7cfbf83b54c63952d27c7d67431d952fae46367d2b7d60cc61cbe11cbc41dfb1a1b9bfb3a119ffe83b5f65daf86fc50d8172fc6c236dd186665fe5e903952dce69111ae76016ce89a506801288824f72f0a4881f4e700325321c89c1143a44203ec9f1b3a11c8d7052c31324b1bbbbbbbbbb7b3cf532a7f5a513c34addd6fa52fdfd903c9f27453276611a8b7340f8dcd4026bee559730c2ad83dfaf76fdf36084f089901c2084d0b4824ce6e7f32486264f5ea0a20b2a191619263f9f2984a6d081091e9e6442800ce8a00c037ca60822c3fc7ca6784166a92077329a0a76e86148d114424c48a67801a88bd216452627a4683c51685e3051e26289690447a0a0065bc0c0a4048f901e9ac06109110dda0b444176f085c90440b062859602220d4913a51f3031c580030d4b12cd0921ac60011127b0a2638222450d26154811839605186058f101154dc9939d1e987210641afa296129a2a4450c7c60440bc287262630cd10850dda4e142a2cb294b2e0e28a2b78a2682678020a257a72f0432b8b19987c7081498714584144891b6c00054e0fa008410e577ac042bba18a1c40614a42481301122eb801110daaf4f0e00720783001810430385911e10406ad0b2f342259986630c574440a1b9a684976a015a1a4e4c5103704916405a6283b26264aa0c9f044cecf1322d8018b86032d4c4e7c60b2c114da1343457810031f6d09224c3c1c31dd0021050aa2c8418bc10916109c90c1344418da942d341daa948aa0986a70c2882480805646684e64a05d6941294b91d2173a048d00a707339844d0831bd312412805e1075450619ae24443c1121a143a301561831612232f30e140059a163b6837434c530c09318560e8051274510aa34813428a94284a5d3061fa59b2c5119a0f3578010c4c3fe031ad7aa8018719344143ab8920da105fec00042556e010b1a0098d064c4c39e0a06425b349b4289915820b204c40f8e0a383f6c50d1a9326424c343481c1b4832f82b4d05454b421504a583c616ac1123d40e2054798aa0c1186105a1540683af0c124a4030c6e60820921346002062dc81746b4304941850914a127822cc1031225384263c1104484e00208960f2619e86092e186110809d1562004830cbe2801410b1d2a5a09a004e189d2154b683140a28a234c570c9102214a600071840fa61c1d9edc50832584b8600918b4235fdc400b24a8989e8022c41330584208122d38c2a4c510da0d84d08e00828a0f2fe810c40d24504248144ac060c2e10b934a8b1e2a52a0e0f08456b4849605095391234c3e43685084480208938e0f1a0f74d0427083694912424c274802068d862fb419b4300dc92a15130c5985328513ed07264ec0c4d4c48f96d3428206a52b4141e44e461b0a0222772f63445091dcc9bc27e3414432fce810ca401bd1b9d601c060d22487491415932a3390f2f361b20513d56472430c92490eabc824052bc804062b2644a898e040862b3f1f264b2a1159b572eed5bdb67b7db6dfbfedd4c42677efabbcb097bd77fa22eb6a7e000e4f491a065c97524aab42cc2723322b65e00cf932325e4fff01f40ac17e6dda3798132f8890ea3c4d91cd11e2bfcee67da068de3673e55673f07e6e32536cc2cc73ce9e58e663f4f6f6f27cc93a11b93b2aa24e4450cc2827a0ece4249b73da211d50cea221c07c9b1b0621841342081d6e0e276e1ceeee73ce495714bec4a6ec2ce59c333ed85cbc3f89faf97bef45fab80e951f7df99ef6fb46ff6dfdfc3df507a194504a282594127a7def318c854cbb525ae97c1fe95d51f9e0470b05ca108fcf13273e51747ca04c09c292d3133b0fe32d53558cb9bbaa2422994eaf5443641dc9a248d65a8cf1e77819e397f8e5636ef4f38164ef6c3236c2170392b1cdc7cd17e7db4ebc2149def2f3a142c75f6f3f60f4b1c7fababc38ccf2d4005e0df87fa48df80cf89648eb24c9ba015c1f8011926bad4e61c4388191c5aff1b5887d74e7b0df468fc9276db3d67aeffd1c2f5f0e067fcd7dfa9703927deb6e761bbcd97ff8b2f37dc30147d267f85f0e4fb0bd1ce39425ebaa8d16c077d75031291a95a6af754c7365a88c7f84655b0e1d107ec6c16c347f343fe31efb3b4265cc7e6f38e065e9cc3419e80416ab0c9f712b1c95f98a08e39c05a3434cc20bb1c739e99c704e6e4e19d4ab18db7b15679015b24333c0fabdf75e9d89113acc9245047fa4d7af1b0ccc8a112b447cacac32fd4b0b2cf42b262f4d96f9d74b67bebbbee6a05c0d5753afa794cb3e4687aa5366140020ca51a87703bb0fff527a29c775d3678b235b14c16057fbfa5cdf8d37633f57dbb9be1befcd9f7fbd0b0a7abed72d820a9d618eeb2b07b3a3ad676c47f58c6126bc56b68f5d1bcccb1c73e31d7d73936bddf178c828e7dd4504f6bcfbdde6b0930eb2ff1393cc5f3ef7b88ec00cd8b005c1c09e6771243f9fa256cecfa788c7fd6bfcf52928f37f30a05028140a0a28e44309b95314d76ff5f7f7d12e057b1eebd3e8d6fa60a1243f1f2c8ef860a19a453af9f3f3c1e24ac6e07d58c60cb1246156ca638291e73bae12ab97fedc7eb838176e045ae03ffda5cc18bc73f3f7f951e62758639a0aefe90968b9fb22a6b196cbefdabf1bf6b009335fdc43c9c7e176a350c87794633125b7e4e783855076193482e0c4f6c4239c9ec8e8cdb546c04a9409749b5fdf6ef3e539390d0759ab46f1f981cf155054d90ad9264760d8ebfab2b5a756566d5cff6bf36fdcb97ec5b8fa72d2930d32f8746e75bb6e2b83f5a3952a5dc20470092fcbaff2ebece72309dd47b40a4faeb293e35fd4d7c7a8b78fe063f4f995798241081f76679369276b24e7e366f83e6e8ef00aec397dcfef3d560e2687fd9afaf6e7cd0d23dd80e4b9c57a73e41e64a2afd163a82dc7cba3bfff3005b811d761ef2f47a3d1e8e7e8e78fb807927178e3ed0292ede603952b877360dc8060ed17c7dd5a0e46c7cbf673bc6c3998cb7e7ccbc5bf64a6f31fa64032dd7cdc3c1dc8eceea2a54364474752cca22d297dd5b24fe556b51c6f300caf70ce911e4fc9d639d520f3c73935684d1af4e48e1eb9d7943aec8930c246802ac79f11c6229e82df3a271a649e81c016381c50e24017f2ec80d020f3dfa9b147f6dc81488708776b102d25404b8284864e316865adac9509d15202b4244868c86730380487a0132459a6a1647c4cea148495988524cb34948c8f49099175d650323e2685735a5950a67d4b49d6c239594b2777deca5aad96b72e86b55017075119ce211a623533243787bd77a36d735a96c1e03ed697367765d048e00c883a1dc96aec4bec91ccef251de433187df8100802c125146b1262b6dce380b38d788aa77b9ac7678c74cf0906fd569e6690d57fb9798e649d3b548e49d1c85de7eee234029a63e5f93e54a89aa7817ca66b9eec4345ca4986ff4286cf274a121412cb4913240ac9aabb8e04da681e477204e3babe2e0e498696abf0e77661d02dc14e09af309152090f91a5d2aa542ae155a954c22c5f7dc9578f72c932ae7329c9c8d9bb7c75698919cec13938a7eed0ca6d437e3e5618c11e732e19fe2ccb32fc59863fab7121e3996598425ab369af29efe3ccc52573f9eb923d0e98e1df6a46ffb26fc9b68d943d09bbb83c0e6f197de64222e14922b93cd7754b0b094799b564d485eb3800a4a525fb889f447fb45d9c4600be97042c5f0fe39fdd788545fa4bba382412e9af8a44225d158944baab5691b28b472352f6a08d7b712ecec5b9382c7ac40758f201f2f3f14150c64876d674f4e3bb905b624eca2cc3b47631c36cff82f77196e12cc38f03e2eb1b73185ffcf7fa0173d6b9906b4cc01e3f0e7ffcf7ba9f3de3ba1e717dd1278d7094517fc4e1e6eae5369cd308b82ad7d1c935a9690f76aeeaaaaece555dd6bd3b8ef12d3d76c12edb2de1ebadba382d5e8b2084b6ba4318fbadedb735f25feecb63e46047dbe129425901f9f94cd9b18288b56235258ab5f6ed773e50a48fe17fb327b57cc4396a9cebfa82ceb5dc11bef75e77f79696378d5a5ab82ee34823ae8bd9b98b7136345f9ccd416596881eccc22bccc2ac9e518f4ed6a393f5e858aecb4a6f5fd3b2a5d56a5b6943f940e5cc5aae0b2af477f4299531efdde8263d92757ef067bcefbd4ce3d5789e440e5196ff82b27fe7a01f7beb2c7904981deffb733c0e6685787d7310488ed80439214ce576d09a5903fd8539eb2a28c77fd63d6298d1758d1c6212e6dfc9412e3008b7116c3ad37f4941e63508b572fc6849e838020cfe15e2f5f5ff07293f0efbd13c2e6e85ced884f88f5ba1f3e5ba86dc08fdaea695c6a673e4e28b7129d823e9c07f727e7451ee0cebbbf1f2e3a2d7fb6ebc1b5288f8307ebc211f92b2f3801fa1c76d05d9fd020c12e5f9540756ec64f8910616a93ed73dc5392cfdeb617e747ebf42ccfd3f48139b309fc2e656e8fc3852275f851d59e680bf7d6adfdb66dac9b769fb90ab8935d685fcb68e3bec7bd7b9e21fa4cc81f76a74f62136017271856e981df4e153ae66d6f8db74963f3affe87c75040283f1e9aae891a8c4af34dce4fa33de0a655e46aa5080dc1c0362bc1091c9c40cc14e66d8c9d73920431a19768e33f299d031ae8ccec5ceaf00b9b99af9f5e38e49b9ce57689b269a4cb0e7333feacfaa6220073888429864527e3f4286b8e0e147c8ce0f8e102f2718e28241661205a120413988c0891958f003213df5470812185e7630e5f783c3439ef9fde0e85c692102a32082c3154332f00215254ca00ac21652ae98418a4c83f9fdcce0248c1f55921f19825e708801bec10b72061494628c3a5c2051c310405994e08980ac528238830e32cc2024cba5d282e5090db08b25f647c5040d2f43fe637e66f8994149ee5e0663823daf1ea9e470011ed45004c4cf145818e10312bcdcf072c30b0d3cc28862830c8eb06088145624b97e44e063c34f9015e49bdf4f901d827e4460e4278811fdde0b0df3e3941719e0d79f204432ea27c89038e79c35fe50e2d890bd8fdcbfe464f1dfbcefc6fce1c28bd5e277837e7c547c8ccef910c830f45fae99eff365810f7578c1f97941e8e785a29f20417e60b02223f332838c147f89a161143c7889e125487cd09df329158b37e3e58e6423470888de8c9727575f4490bde4877768c07dcafa921b881064708501640e006922fa898a8cc6a45cbacd28a55f6bb5b6730c45418bc8572f6a394ae9514a7f8f6e31cfc5b46262aa0559f75a2dd4cb788e6f31328864094e3d9dca0d217427302bf49a76939398842bf77b2bd422bcfc8620a679706b211579384fdd9c5ed0de3cad8236ae2a4a843b61bc7a0223ebbeff6181eeeff9db804d8ca6518157a3ff6d2778aa3fe6d44eb0877adcf5d40f5af006af5ea7e559a74414cec12b9c83593c46768868f418c95e033550ee6f24f0df53aef94a460cbc09fa0941d0cfcd112ec8504e4484e6979b2cfedc24c98f8a4cfecbddbf7ae56b33ee495eeacde4b831e2a55eee60861b919f9b557e3e59b0d8203f9f2c48ace4d749f2eb9e2bef465fc9ef84598177a3f3ab4103618411c208df8dee219085f9f364d10901d3bc531259842f3795305a18c9ff34a5487e7f92226b955fe95be4a9b6e2a9a6ad33e429274059fd93938cd544d6f99529b96fa2747ec5ab78d1494ad696868c4d4d266af651123949c91aa6e045249da491744fbd94d3e24fbac5af9bccf37a6a4e199e422591a542a021f3001cf3e51dfad1c7c5dee71b823f9fd05b9265ee426e272bb2e95f2194524a09b1cbd66a6b103078f281d739b50b3ff639e79320c4780431a5b609fccb56e83de98ca72c64b4c05ecca98a4cfe7c990cbad3ed8425bbbe7e9557629afad95f928c7831c674b396d2d13f6cede83e9517bbdcfb085dbeba4017a984bb3b909c7a9e8ab2f38c32c2e89806c61861742f22cbf2fbb93192a143d5abc185163745a72ab23f6591bdef2a941f427e32dcbff41aa49452ba5ff716b2bf19ccfd97fdfaf5fbd7efbd7ea52ce2fef5f26d2fe3c7e1a3d168447fc43de9ab4dbe7f6da4d1c3176f40f2c55279b68e67404441444008cacf270ba11cb35092a7ac2dd07f704677d64247a0c219dd0d8081ffe44b095f1119fcce96c09e675660199a2f2a718a92511d259c4029a5f5b1cd3ea5714e1b02b4564a2be5cdea4cf78632fcf931a91955d8fc17d3bda22cbba892695b099eda3afb3d5048a16d8e97afc76c3777e963119e706dd6d66a2b572d175f86a734d44989540834641c26e78f8956a2d05182adf6abf5e1294f41686809d04dd23ad28315e121a24357ac2037362cf848a1070a3dc8ba072465b552fef5819234f2b1ca7517beaf329431c66ed91d89748084884aa0b1d7add85fddb5a6bbb71fb08f8a6137c4bcd6ae3d309fd17d7d37840d9b64dd03dad0e134fdab5abbb3a1d987a7fc53e8713242071e8d38aecb548859f61022c2bc250b26b100e566223f1f2f8a32e627287ca04af094ebf054fb1bf154d6ac966e550b2c541f1b40a1c75f6f810efe2c41870f54861270227b70e4f2383c46381ac98fa3d18da3d1df7befc5fc11bd2bcd6a9ecc004f39497e8c11840223d7a5408ad76505718c10ca147227df07eae1bbcfb8a811bcf1f290f13494c1c7016dc8702ad0c0a791f731b869284f3dae5a2b310d0643fa1a924dd737f992a4bc3fb87cdc7e8098c6da70e124e033fc7b89acabf06120a745ee611e276071436d1570b9c1294ad63d56370e743e0d65f449d2571a29fd9317997cec554a73b3eb334e22913ec7cb240e26fb1ad2d32771f4b3b70f24d7adbb9d4dc6d946c2a30d48c69b8f9b6fddb2bfe83ba554267271d3fdbefbbd2725a6696bdbbeee5afbbd6afbdfc434dd5c7c9bfd6e79a57b279e0c9f9e8a643882d9614f3b4ab2aeb493a165b15e96641d89d4c2e876aad6a6b22d8233e0db3f61397b51926da79da2d6b8ee4b5c87ea3297a2548e1fa30ff90cf6a154ea1f85cab2cb7535b37c06fceb63c0c7d76d65f8b276d94e3e15e948ad0c2d2b430c6f5e8dd2ce4b5057da69adb4e3a5aeb4035d4a3bb1a5b423b3aeb43349a51d5391cf8c32fc97a0acbf2bed988ae049eb4c0ad60f5f78f0a22423d241d64df8b58adba870c6149fa116bb55aa950c1f562c19625c678364f8975da532b44332fcc9592e46377532e4ea144fbd30993a76e78522b9df483d922551927b490be846e53b9eeaeab00554dddd1d42c8d2d9e1e94152ddddbd5950e64655dddd9d48d502aaeeee0e617577f7f6eeee7677f726b4aaca585ce741dea51e242d7729ba72035b5a40414344ac1eb0678aaa887545e6b9bbbb7b08fdfaf5eb27f3543cb41290df0f0fab7bef92abe11276c12d38c3187bd2087b8acd7baf77edfa924b4b86c41c71dde749eb9cf29a1883d9d15972fcce922367c2cdbb21391812b0972f73df8c7a4389bf2dc63d58ebfcee217c4122eb49fda3505976c5bf2076c19b4cb72cb98337af863f0c09f2230e27a14672f086ebdb022ca82a0d244b2c8eaae2515c689465dcdd1dde18892922838836247774a1e646c07946880ae2e1e9e94182a4d5c968d9838688a614c1f71d78a36275325b29fb4e0f9216fc2e02020a0a1a1a22ea643697dc4557fcc655ce721d1d9d9d1d1e9e9e4e666bc9dd6a1650d010d19429535e512793af5cb991a1b7595e75b21def31341414946b0f68e3c9a454a82b581d492e72f086004f34df719eecee5ce7410e94bd4b45d086efc019fd3cb9bdc76f90b8aae52ca0dcef2eadbe02e42cd8d2403a413b433d533c663d5c67ca4e11cfbbd22349b987ab86aee47677c7e628c583d209a1b63220d47b43f7419e777d06e717148024ac1db0e4f7b3c3ea00f9fd1021caf088db88f1f1618fcf680f9de4088572844b50df41251900f12711b411839b477c467c002499825252f4c25dc9f19fcfe8a6508e1167ed5f9464fd5afc971c649d25b2443ea37dec523fe34fd3e8f95fb2a30705f98c296a442f4ab21ef82578535bb80e9565f86253997ea6a84c2db5f46990cfe0ce8568378954889c0bd5dc5dac9253235e9680b26315cc1ff34de611b15a5dd4f90ecc0e9c3de8b100744000534638ea3c3000ecb2358eba0fbc1c752d6ca89793492bcd510702ee07208000c8808941479d0b04e06a6e2ca63fa6c0bf51e0f175b70650382213020e1d275860899093202dbb55a6bbdd6564106542c0a1e304254b847c47cb6e8d316a204a89420a40af15824ccf4dee1e050df44801494655991070e888a1c1807f3f3d14e9222dbbd54241693568c94069d713549266c9406153c82822f77f0f196f23117d0f455ab9ff1f86cdc06eccdb523f3d14c93133de8d977a377e7ab8414679aadfbfeda70725b9c86585bdb4b0d4fc7e78b0f2c34394ec3c40f1c34350162cbe0d919edcff88b06ef27b1a94fb1f91ceafb32bfca059c6abf1ec7b9cf682a4f3fb4ca7c5a47cc3a8ec09b78efebc3ce8bf7ebd419b98e34b9be34b6c621e5c7c5b16e5778cc9329bd00f359f790f955cd7dbeb7a5b54d41d94dffb18ddadb6528949803b2c173918fb7704cfd931093b2aad57d4a72d2599d24cb91842644ddf65ac35f42be560280df51c1444441424bf52814f6f32fd7a05fd6a82a22c7f96a69d562bd9924b1733d3ed253e034f78846e656a636d97965a535f7e4b8677542e7230d7c58de0993ee61907a4dbbba8189907e8a8400f1f2c04611139f222f1bdb6a2eef39afaf46f2ff1998849e81f1d58d78e9aa1f28ec945ce633f28472d928e4fc96128bf1f1d2c3a41593e1cb1ec4fb364c96225bb8e973d063bd9bf0392757ab293f0beff07cdaf86bfcd0f9a79f47736d387f273f398ef1448f4f7dd5eece4974bd083d5792fc75e6e378bc970bb5e6eb6831fa3a5b0337cc875f3e5941b9415d60eee8046508c0c4d266e166219d53a99f93084ed019ef2fabdcd983c01f06af8d707a0aeb000fdcadc5e0dffee25880c3e4046a668bcdcc9f440210568e3b53620e333efc6cb326e32b28ac09eff0c51e5f773c3cecf08acfc9060f533a4ca048044eed6d4e07b5838dce4f812879dfcf2e3e1af82cd0f9aebabd10f7f851f34df57a3933ce4cb6f58b109f17d878cff6af41f417f92fae38b910c7e8dfc9eacdf0dfbb1663ec5e60fd2fc8bb3dcab3ce66caec6be2294e14325478ae4978138c902c8ef6748926cd3b3bbe976bfbe57a97dfc3631df39314c33e77caf067eba5d3326d35af1573c423fdc3ad95db80227bbeb7793c7fc393bf8f34856d39dc43b9a9b133efd38c2fbf76224fb41cafd6a98c04ac6be03926d94fc32368220360829c92fdb70245f6f47302463347ca61b3d965d0dbbb6fb18c337268fb60efbeb2da6b1b683a4bc42ccf76d6296a82b032525e9729d7dfc16f3183dde2a09f3b81ee3807452cea9c28f0de45763f413fb51f7fc51631e187b8cf985fd08c31cbb8f5d1bfdd156df8fb6fad88671c43cec6318f7ece41e0d4fbd6bc5b292fb9d1525bf0c244fc748188d88699a73f934fcd5f8cba7f3e38e02d4741d0780647f9de46afa9da34105832f94b9fc7e583db9b71fa4681fb32d7bcafab6726f8bc9347c6662b11bc6c0dac937f2fba921ca1023437468d0b811a5e0a8342ed73539542403000000b315000028100a86c322a1501a4649b0ec1d14800c85a24076509b0ca52087510c21630c218410018101000090d1b44901f25cb0ce4818f2a351c4ed8637245a6efbb0fa705be79442a623c1b1f0d1101171e8e025519949a48fe499f0688ed637308169c40e3bc9a4d922ee406a0c0b81a8eab89e079f9c1cc7d6f59888442ad1220148dac132466bca10a4782496cec31ac4e65c421e210425b35ab84046807f214842c30cf40c7269d13306a4cea5a9675f2960dad3fc7b74a6ad00cf2174e400677d84dea54b3bb842e6255e9701dc7b49245f17ba9a4bb16eadbc38836890eaee55d2537278f8e927f3a54ca64e2497bc24b1999d94d14fb46afb9fde571df0afd608fefc72226f1c10ccc4af9fc4cfdebfdae395581db31e70cbe94afc2b5356fe78efb67365745d3f2341b727da3ebd7402343a8e6da3d899575409c9cc1156b327c1bb9d43624681375b5e8d89fc144c36379816e2df82b03ae375a06599c884a65e14f2dc3c537d66a35cb2799d855c34d22d0b546622dfd434f7c81bd85c0474a05e0ffdf377e481278ad57d3b415ac33061fe9a5497519cac514807aa7462082a3172f3416b7c77a8d1b57ed597c4e1ad0ac9d7c7e5d0177ec192180c7dbfd8aacb7c97c1e1821914a62c78a51df3077424229356bf685f97c1cf57aae7f8dc8f0d8ab39c88e14e059f246a5f867660a66d356d445c2bbe78bbde4e08cfa7d2e5982f34e42f4ee0dc1a49605121b208c0516eb549367c1f33f966b2c37769aca20b1d6e781a36ec0936b2904294296073c845f5e3bf217d03f439fa9774a679980e53831fc2687b0d697f3818d9d9008b24eff17671f7239d021667506698a64728012a32288f7cded8a1361f654edaecd6459b144068a3b17c368b9a79c23b8c3cfbd1dc7655ba3054bfef97da7136543353514bbf2725a8a647a384c3a3a90dc47437f38bdb8c1bc30aff3a413d7b50e016d40d4cbc396d4db154d9d954b1312db8fd4e7aa09a178d624e8c426ab355cda4cdec8ad1a94fafd066308d985a3e204f318fb05fa53db5f5a3f05f0e148a9d058710d3e79e0d7242861bde7b4cc74d9f0227519d82da20b3287c49552a8fc985e5c1c4d975becd7b26c881cc41b4dd26b4f109c6693bb219912a18f20a6d6e160a14a2ed551c376d8a9c443935b5413a73f8b63e5fb34193d96f4d1bfa797cca223097e15a1df7ac7b8ffe24b42912643991641259e2c60e0f14d246033f6941e2de233aa68d4d1325f55dd3308c9bdc8f72cd8ae737cd287210e51b9adac049a259ee3d3db341f7d9cb5cf9e7b459c527b5b31924a6321bd1ee1116a791b2099c976cf46c67735ca3780f37eced1eb979d9e536ce72784847a2fd0b2e4f430002cbdad98c6bbd8812ef8574011afc940358a19a806655514d17cd04c50a6c252ed1f69c8d940a0be1022c164a59d6322e8312e92b0f3c8347b621f6b231501daa6cbca1c13480264e1b06ceeb25b5f9ad1971b0f68c9413ad30c668578d1e6d46dc91a4575ae6e7643bb1c108e846cfc60193dd9cded4e603fb149dac9e0c2fc9b122370fa08525d708cf117f115bd567e34dd7f0684089dabac1a7aa49dd9b64a19ababd20b5894af6c2e84f65d6de4011411af732471b0777efb07ad0c61f762067d583ce263b9b241860eaaeba064d97971b097f5bfd284fb051e50f9ab2d8a8cd1ada8527b78f23b1a709155e95a7dcae95f8c24f71383cedc2b8c90f2900a80d552ece55bfa3e3f866ae44a4dc68289dc33ae55572b2ffd4c61fbdc62c3284d2c558183d2cca66941ab6a64d7d22374af3f9e215c8a99b3921526ae382a49138ab130d41a92b179b04737f7b6b076380fa862538dc3bede4038661f213546c8fddaf4b122ce005c4a26c454bf1ca730480095e5887dc00e62f50d2bab0617191ca0266fe0bc4a5a25329dffc1a21b01048c6d2eeb9d99498f0a09775eb0599b7e5248aac508379c85ee4bee1a8c8cd967ee9c3f154e1036de8445fbb3cf113458ccef53aeeb81192a0254b3c8409c1bcec5452262adeda413b1002cfe7ddf15c8504e12355d92473e29cb44431c31dc359c4fa0c7e07a00eda87f788212b7412f56ebc6a8f30567b6aa02dc78cc4c9a8ed74f1c01da0c111489f75eb48ab0ae65909490ac155e1b9dd24ee58f911d078c4b240b0d571027e04be646dea6e52481bf93c0e2325a3a3928b98f2f6164ff641dcc211262844b59819ca8af3db53f844701835656f7a841a025a25c9a6af7ac475b193936c217ba2788044884ae94d045d4dadc1208b83038e60031f15f26eed003a3cbda17680a215f269fa7fc515f2861941e51cf960e0003518237ba7219bcd86370a8a5f6cf48ed7e741c482e52b001cf390085f5b3f79496fe6644fe8519a881f4fccc08e0885c62caf8c1f4edb48d286b73c2bed62368615b5b8480facecbe907b24b8e53c4b7817057c588d6a8f7f4c43cc4f3523f2554f8db45c17e8aa7c11387bf98098281f56e3dd92c90103956a921bcbf5195185afcf8ea5ca93a7c8f11c16fcf2800e2b2a88b7fde514139611ef15d662f5e2f28ddfb516f55ef71c692595ef4d1c05c23e4b3841263223e7b6bbc05860446b027ce24a5cc2e161d1b7302eb9b12247db4e695b607c79e5e023f87ece7967a6e64916ecadf482c6b9ca6fcce7c449429bfe239d1f21020329bd09d6951a8b45e1447ecbdaee6954a3b60f716055f5c3441b93231f2bf4adb65ffa6870c26a3eb60ec55d62bc1455f96f939e8aecf58cb8886e937b980ebd5db4751b27544a9bbc149ba47558b469e8ec1f457f0933b06daf3c8ee8899b359165804246f945b219627597295a5c4c16c636532f392735be48d56012705d9b364c6e03a541a0cf032870b140684feea215551b6b8c433445fa5dcf5be863a2ed3f7e4d4f3ec6cd44d1ec7d3064a463a1adcb6b78909b168cc495479f25923334f67204edc236b9ff2a3060939b5714f46a4488df876a4293c4ad33bab5c13206238233f25f167344de87ed15b04799a96646fbdca123b2faf25901eb04a487c61954d1668b83bed775fbc3323f1f31a6ebf63d0aa4310d6327f2e6bb309c45632bc6499448f550e71a49d0b9a1cb863163ede1e5f0238c896fc48d33319b92043d30bc1ba2df752f823362b0851097ab12f0c68e8a548ccd83cda1ea309d41f0af2e0ea3879aa0cbdb1c16f24642dea66321029cc25257c3f3e7cd6f5582df3d768dc1296c9e135296089b01329b9e0a398ec9abe468ef8ca912e2624506de0d787818d575c1ee24a114d45678e5c9a4a09eb49620244576c3302b9158a5e61fce037558ad58d03d7c625a07b476af2bf603fa2c2c0bb5fcb7cc041734b58f96fbf61f08d771504403a47605822ec5c64e2ff6e98ef8387b01854319a0f04a8cf6c36426a6d5fbdcd630b91b1fade68f150caa181db967b835a894dbde61fb8a5b06854476a4a0a9429398e1a95eba88852e6e40f7e13ae12cfd713a048d62db9685587d947c5b2fefd80658c96164b6e38e57aa0a8a90e56ea465b3271bfc76de80c279d81614e9457df6f92fc723901d588099f4dbd27f69536da053d978811813179942174ee209edc57aaeb2dac4a90f38680c4e8c4efba14d3b6c5515b132eeb850f9442eee247a5616fe743ef570f0b20df22215caca3d9e1ad9e0197c691a2e0ab250a314bd6b0d62a941e3da135fb9a0bf2ec8b06c99dfc9c7f01725c9fca2afbdcbd5c90b84d77591142e249281fd6a51c870043057bd5e0dcbee97200fcf52352c8ce44d382e6ec0650488e8cbe99d3bc124b41d504139c35f83e7949eb38b49aac945059abc7464d69f301f3ee71ea35c11e85dacc23f3a6e1e2e7ef21184eadf5093c94f6d933bfca8df1385c4f19c191bc5f7182b2b5ea44ba9dfacecb27800adcc4d00df8b9e489ca508d9c700dffd93febda2fdc4275e70b6537224847fe89e2054cf30728b32b5bd6d35673b4baca9bd21682ddaa311d036153d23b93feabe0b3eca51cf449177b55c23fe0cb576e4cfa5fcf6f29caea09e727dc96097c598fc4d810bc6b94a4975a70371a5f1586651131fb2d4cdd045f5bac49fd51768e49e0be81ac87eadc62e91484108fdddd80b45c0e4a39af8f83e42941fa8beaf6942f0ce8d1a7ff2fb07528bef0c3ca5cff99fea8e9503bcfbfcebb8061afef1f9786262e840cb26c9cff1bda90aec639973fd878df1a87944c686c3696c8483004704da36f1ffbd1a48a793b8138cee5ecf1262cb8ade2688235081193dbce453a00c47304ac02880b6c15dcf952d469c19bed244adc5c107408c6b8270d535f14e639007529f78e51db25c0bf00c00322c4d234d83a83a124fd563366106b5b0ce73bc710448f71b849d152d899d2a99f3e0a3f0bae9bc5abe9bd1fadffc70aa11bc7ede84c4c18e7d6f1faa254f7e79473a539ccc5b77a02591fd303125128912cf64ea0844f980b715527fb05569eb5402bc8b964f54dd7f295c5585ca3720c02486e7e8ceddc45a0017985fed0b42a53a23f0da464a7555b8266798893f7589bc0268c90587edf21bfb623c9c186fe988aec6b2b3adbf2766226ee0cc2bc8ab9f87e7be19edfbf27f35fe5855fb00d6a32749a5c9329711b00d3cfd6c3661b5f9885d2e509fc0e2d7845ef75d8b525d5cba1523bf3c4d7c528c29adb25ce368ff3c5d1e933950283ab0247750ab40714dbb076a1671534134a20a2b7086b5d5634a204d7895a1857dbefdf0eff7a374e13735fb6d77f089f13f9f0672de7fe1a9b6fbc1719a70a6ff92c73ad7769adfc42450d918295d42c843859d8d7a20ac30e2c6f444843289d57759958182bb970fe6482d62748cd2132217594cc3e1728072a37552536854d3287507e8df5603be11053a5580d57be7c08b1dfc73afe9e3963e35bd188a583ee8e3e8cdb0449036f0f78e205317a164649e1e9ba93ca5504b7f62c98d8451e08266c4811cd3a4be39c2c6e6c166603ad239ad1f6f478f0bd1f89f4238487e185528085bd03b5e340ccfedff625c1c78d21dbc26b7e4ca79c7d25c83fca00683a45db51713b1ac379d78baff88d0dce1127c068028a83b77fa28c630e391540199f07e7bde6cf866bcecbeb69f477b8754261614c51c5299e54fed6f7b4ee11427071c73905eff11e84f02311fd8b0a5bfb7851b55562b5527785a9f720242d1c80be7875aa5390ea6a2b4001be808446838b2b047c2e5a40d4f8a05669502dd9e2f14cde475469daba8ff4d608b8d2f936fe9369f607e05a7ce5cbc611272c7f941c7b0325f6e8b7a99b9623dbba4844b9765ab2953806eab59417eecc7d6416e9c18c1beb1e52d4951bd2c793b2fcc7fbaaebd8e1b8f0681615e3d8d5018630d103e831b25093e3208cee556bf40287da34870339279ed3732a9dbc75659113ea6b50c5afb01478031baa5393749e17f1759a984a9b3932f1eb3a210fd4e11e9d9d814b9e718ba9369ed4ce33cfdf2feaf4aedbc5a3feb95c59cbebccf2c7115b4f974b03f88f0a8f335861c2bbdf1c88f25c4cea964fc05f24ce4a327259a8d825b2fc5f1f6c722caa57315cc09d821c70bbfff710b07cf43e9a4e674769400acbee36f9ab9f8db008758a9cc4b1aad6835568ca990988e958be823f55bbebfe0a2ae4873b2b38ecc8dc836b9acb92eb5897f0c2871b8e5a76d2d32ba678894ac22d508c44ec5045f5a611a376b0d862839280d42dc7e864be2604b2166a9936020d19160a4e1ad24e273483663e2058a24c1c35cee5124102a971c1bc6259c80b9312067a269d5f4611824fc93f16ae05c6b404ee780e50850d8985286160344e081a403c384c7fa5227500205284548cbbc4a040e484945ff4b5319df11e3a76f5d071181c2cc9f59d0da2b16265d33cb15aa7217928d9a0f8aceb290bc40061905ac865fd00951857821aa9ae3f80bca4e56de8225e0f165c23f1bd2a701afefc13fb64d9cd507ee1e717a04aad88087c2fd27864f7587ecf82bc8c019b17065677d6d12c9626505ceac66b389dafe8935e9f8693fc0c768827ee4dd48bb2fcbd3c247c72d8ea842fe99c823715f56095b7092cab8770e2db6da718793aa74e8e0286b4e12e87a22c640cb8e7782fd54db62f7c5c026561f117c8b54fb60f7c78ec104d3d170f2f3b5872f2fdf838e9fbd1910aae61a46009a86d16b18360e1ce7c86b8d8af5cbba09ba90d9e1a3c892fb6d6176fd2f4121d83d10db3883187ac2a3e811b277f6dc3aa6b8f6fcdb4eb16063a2d0b1da7de16d0f35cc80956cc43e04fb0de3966ed870ea465cd2453ed12aea9e652df6215bd2abf4049893d8f47ac42a326fb64463db0abb61c67adeb62ee82e1fff98f0a046a1120a52a2654d3c117c2b83d9077b3476290192ad7cf244e22bfc47e1c5d4e0ffd15f6a2b37e8e58fac39afa4d506c30bea003919914e2a58e5a1911cf3045ddecfb5adc39071df2b139d36607b72670223520f1fadb26176b18954b2db449e5ba9a8667f34b51b9da1ac2ae663f38d9e4a9ebfed2f90358b36d834a0ff2f564363faacb7677dc46a8379b4536bd9050e98b9229e9aee5341a4055583566a20cdf4e3635306c33d691b01dfbafebaa77eb345593bc02493c5dfe840e40ae65a7b5a81a9d43d808bd0d953d376caea17f518bde2501ac04f537adf58fa214b7fca93114b1513cfb38a438b96822f61d82439441f821421d4e192b8001f0ae86666d15c8ae37fc8b58915757b828f54f2d7e21500f6c65ad629509e161e0ed1db0ab6246278881aab7ff6a81cda1e846f9364431e8605d187ce61d0369569f46415099256691cb76d113dfbd0a02037893013481442aba152d4e6b993d51f1ade33ea10d05579da1e45584d27ff8d1ca876f62f28709ac80873a6714191f0adc8d0ca29038a876a1bfee0aba6d632c46b53e1801bf3c38dab5baff1c6d610a634cda6aadb06e9b5f4b5857820cdcaabafa373d61d88aecc2bdaf52a460e80d78bcfa403ed23577548cf97d43483dd2188aafdba1edf5fdbe06ccfb822f00f97e5b87c926a4684051022563b5b9d500d2f97fd580b853197dbfce737b63e66d49be6abe3aca8d94ea34c1792e92dec9fc832f4d9047b1e4c1a174cac62c59e762d8f096a2e6bc84288180c58be7b9ca7ed025bec1980f3827d0f00e41d137943902afb8f271e77c865fdf8cc4969ae253a1c2a4df6e5dd8d749589a36b85e723558d5810a09875385eb61765a674acbdec0d28b466d435128e8f21a890a79308af64c3d380d430a101db0cc80c7ec75731ad131b3d49ba05bad76d4c6b00bb902b141909b6c69741aab47cac3141c9e9e3ff5aa699d242db111112296dec6958a9e8fab17a6467590ab3a0bfbceb748fb5aae95414620a81e97890a307e3d157d32c97a99bbae3945bb938f7a8ee6dd74438cbc6bc1d7be78e04a8171d4963a0d8b08dd41522c75b788f51050a6c9413fdb1b8284d5faa9b137169f31c6e3bbfc562d6d7c8f0b9607e67950f53215c39536b2bd6ecc1766d362de522fb6ae265672e2cb4aabe3c428a5c1d933a33f3e88eadb8e2e2b0beff9d1d360e2772bdd232a0f34dc23c9f99092ddc73cc6345b348310a8c9da8f8f8cebb15453ef9756f4e1f1e60d99c00bc15063111202e332ec10538e4297ac7b4d2d1ee7737579878847213641330cf2174c41ef5fdc25a1d8956b26253e1a338869c5feba990887d92f932eca76e22250fd0b8b6ae1041166f22d23d403fbf85d30f6cdd2a93e0031220afe0f8912419a16bbe3e8978744f023d9f127f83e66d5b1529fbbc9c0db2c0efc1b63061da836a30a154362ec48fffc0c535b4e8797c873c2d051b2af8ea71d4ea459aa8941c1f0246d703c00c6dea6559ab47855446f56eb17cde2ed0a8108d513730c09200edf46a63a74e611d9a34696bf8b12bf9b4bdf9021a8ca865244615a3d6910fbb23dd590cdd9ae83f828cc3ba3cd4f417d40b5812a9bd5da61d4f763041ac25534a2ae5698fc68560d0bf633549ed6c64cb7a700c17478cf0bf7cb43b6f7a03548616079b35ce29fbcfe11258cd028b3b6df60d423fa48ac23cb23abffa6aa637ff88255d6c7539cbccd8d366c147b248d7559348a354fcb8486c7128f728933fbba08a8aff813ecbc055b46d0dbef837c717ce464bb803415bc9f59b699f4c5c41ae44b03a90afd5aa6dddbf7d35f5c12c3096fb01fe5e272bebef2dd20ba17f34c8fdc5ac990a2ae6e23ef01888ba80fdbb395ff7fdf004d17d83d53060bf29499a686064433dff56f11712bd82801e9d1b7fdeca4e9a5dbd562b15b8c8aec4f0dce08caf0ad4b441b5a56a865ea910319007ecfb1f7ee27c58ca8ccf5ffc45f0cf6d9ef246bc75acbf9b48c222732ec9ce0693915cb86c8eb13057f2ac97798d5364833a05c67e02d6b04987d28bd196574fa9c0efb20428d6b399be6879736bbd15be228ace47fcc900fed5ef1c84c485f6574bbaabe046da58d2edd90b3ff800070b86c565db7cec6c10cb3fdc8128456aeda151996e706456885391b0aa82e05331035586bfc8772b92649bdfd419a72c0166469e3e59edb9b8aad110c1d6c59462768e6e47b8cf3b94cdadb086ccb0815c84b48a176168284fe141684958a5245acfbf4ca592fd33cf6f4cfaf57954aca4a234f70ca5afdac9482306883814a41f0e0d218339829974c1ce35f63cf734c0ee010a2ed5ae65506d6d8c3a37bd0adcaba2eb50954e51b84e8408094128869d7591c4ba529b006cb957bfa70ae02d6d8cc6b55734528732a722dca703303d803cf2a2176d6ecee04436ea84eab421790d2a585d4b6bcf3bac218950d2c52f30911e6f621e0e89a068f077477dea060b443aae1e8ed227b22069629275a84478b686278081733ea9805057396cca3e4cb0ad990ec1058fc99aa054ca32a61780b55efd290e77f9b03cbb77aa384fc48b6fe083d06587229974b1e4755609dcc108724f9a14fa79f26b25dc5ebb853c019f88e72c300b0964764c47be871f9425e63988a950cfc9816857cefa4a07fedfca4530fbc3d161e3df1a027454aec5ffc09cf3b5651371248f0712e3d5e8a09318fcdee37ba94c91899d27df2c5354981a3d04b7ad002528a8dd766f761321c84b4e0d1aaed152f7952bbbdf683b6c93e595ba95fadae4e936bb21198666883919b10636d21bf7e3d72204f0bb3864a6aba7dabe56dfa3935cdac2d157a554388099e49d9508e6b6aa0eb38cb779331ef05cb5e48493183c05682acb182c3774d8680200810e8bf4e33ba7f29b6d79838b2c94fbafefdadd30ccffd5ec8cc947d16225137bc0bea10e7b81e914072757c5ad9f8f80dd97dc34fa0395bd0aa73a893ca7924f073835adcedfaf74e171bc27d6fbb8a5cc92f01760857bb515d5afaac014eaa5afc56dddfd8b2d2c9b21b1da4b5fe78201223a839eaaa7a8f59862996e2d6e0d32da5ff8c3500aa4eb19659451423f67919710fe7a44f853cffca79670958a9daf9492fa4d890bd19f8f88d5d8a890f718d0e3546deceb3c4e729e8686ab58ee79479a17c896a79aace1eae5a161b5b93cd297f58b1e4cd1295e9b9900909b1aae64f218ef338250864038ced50a7763895e00fbaf14c8be768f77be5ca4af9ca71fcaa1ba721b00d7b33a6f6436ba397780d5a0a25e3fbef33e194f28dbb48b81b20acbd52a914c45f552af61b6690b5ce1ceed63c49b6c8f2a973af00e2ceb11903e7280f2950dac57f749e817f90720e8bf586c7a47564bc11c94c650aee67068f73f326ab1677ea4505a743c74136e0b6066985101dda99fc10b5e89815a1f20d98cd2501c804faba3fcbba3503a0c214a1fc7dd51fb80cb89f9e90213b8b239bf38aed73cfc7a29794595d631876c8507e6faae684e2d684cd5e38e2a961bf46de9cd5d7a0dc21449dbfe95dcc40e909c40ad2091dab22e6aff5e5fe5723a447bffc2c964f890657959ab2b070af12594dfaa44888035d9bea6fc95e6537c69dd218abc1f2ed54e6947dd2b48200948ca1b7670a0472637b503dcf40d025c3c02e3e60b810318904eec19c9f285c3e6d3a01c33ea648b80aab6330e8d419e87e57a8dfc73b02c3b8ebd1d58671d964309830522ec50d8695a8b072cef41c6b74a06eac6ca49f89b3ff7ad7fc0fff9acf99008eda8ca618df50c520ad8ed287f2434c7d29c893dffcaf33817ba259745734f592e4f872bcf65b4b6b6a6f73890dde44f605d551e372472f5e2ce98fc8fdcdbfab0578e09431fff75f4831d1fc115a0a1e52ed704b9cccdc17e794d92bef4b7ca0acfc4f458ea802ecbad825839283239c8fb09f15e90d714c3389eb1283ddb3b7ae128fe53317a0b13a2d0e7302f08b4ecb532216ff5f5d673a1e7cde88f458bd55f871fcc903035a9b88b878f3f9d0d90c6db554d68a78d5239c01a86ebd4ba9dedbcadca71c3130de459801fe8c642ceb5bb58f4a0a0f29f2a749a0469c5fc29aa8624650545846c01ae8470eb15a23fe3425de3e1ee989370a0ed4ba74033155d750fe146c6fd6e08451936e3d5633c50c81c38281a6eea870c3cac232c69ca01c0a9291736e327e12599fb89874a1a66f2e4a0573c75b87a8507d89c76152383e316df89b252ff32df09d64474d34706457e90784686317440ec80728c4b1655b8437b4a18a308d207a97cbd637493c67858df057cb495af59658b84d54f55ab214bd89a6ecb7b30d0dde55248fe25342e1710468376a63040fa057e979130d7003d92fa01b74c0aa9c67eb965b38ec2893e8f9e32d82d39861afff3025f98305f2da4d9dd592742afea653bbed1d41d46bac2313e3d42d94a3e10d335901da4048004f1858a2f2ac80bd68e14157100483362dd92f5e6070e11c4b08aa4c120cffcbc7063b9917fb9ec9ff65e8b2ad57ca1419ca7943772913a1b3aaec8a18358f96e988952dd643cc999b33a0842fea5e9f58981f78fa902ebc89aad365fe46013012ade95e2c7e511aa1ec68db1a0275e9718325c59a8399444b2a3aad412f673c295311fcc4222d10c70d74e7c9465a44e16aeaf6df4892ccd8539ba3cd1f5ecc60732af01785b221b9c7a80758db2bf821c2269a7c2126d222d60135910dba91a488177402134d96d8010417de0bd36636703b0e265b7660a50d807866afdb982e1393f2e3d44802bdda7e10387fc86a2ed7431763c6e007f42df5f91c7f7fd8e97139be02d032e9100d2f6ef7f0e981deadb8dab12d8226f624dd84ccba5c4f8b0b0faa256b22a78ca6ae81e3d45dfb4ccff1b3bf6bd4855baebbb1fb85c3aa2fdf12eb3c64a275fc2f8627c95fab5422cdc0b784399ed10064b71c043965c2d82a523082581070eaa23abaebf72f6793f905765b0ec484b71f0010502d487819a516ad3b406b1c18bd34142a945dcd67593c2601329394e8c355dac96dd179b6327062020290c6f8254690fe86c07390e3cc24a160583cad4621033babb71f1a193173b2127a961ace467545a37bd42e88d98897ce5b77c78cae891b20286c5eaa0da07c93faa574d36e107bc023d6c8d654d977c37e3d70004f683cb8ccd8186cbeed49d4d03f7cfc120482c68e7214ce71ceadf38472103f2cc0aee18252d3a0ca875e47a333f769169cf6f9de2d7450ea1d08da46786953bc1e02b2854758c7151b98042b5470121819f3bee4c0307f90496cf65b62553e553372505c23d5705cb3450420a8dc5490993b6b3b2829ee798bcaad180dc8d02ae9d5c4aad52a394c4da73181dd61366adb1fe04bf6a9a91e31497f0efbe6fd8f50efe02c63d6456c639a90a8a319e101f9f65b77e37bfe43640fdbe990ec57d988f24b488d0fb2454a2cf274801fc22b804c4b3ff2a5fb4a12a2438ef5696bcc54bc30a0c43bd394b28b43ece3c5db811e1f053dc95f80dfcd0925a8e075bca2ed17f1bd9c2334c944bfbf536827581229d1c010dbbe444f8e2844338e342789121fc89d53e8ed7a9c33c5e29ca92a2b704e4c825ac783d12129c63a9316996d93d8642746c1596e3dce31e9e083baf6f85765c801619207bc11c1e1ffa423179186311d7c98880a246a4489630f85aa4f2137b993d209f4ad42fd5422ae69199d8ae84a38c8ebcff70df9ee0a5047eb249f3b3753059b7cc9c0d2fad9cd71d3b764287dc2a1c6e8498eedc42684f80b77353836abb3adcf81fc6c7a0ca8a3f41fd18dee105f64de28ef192a66be395d86962d4f1b36cded40ee44ca85e81dbac8ebde6be918afef2cfbc188488f098d1f4861368ae7415ec27cd1de74ff47697c32da67a964cdc64e78f08319230196ed351a99ac0af6ad950d9e8320a4ef175b269f16f699dfd83d0d84a4183a5398564b387b3fd810efb12ad3c748cd282fe0fb124d1155728bdcb5480fc17558328f668ca56428d9728401055a87236fad2780e1107dd586f7a3b097fc4d6c37fa32cb0d3dfde5d7a4e838316c6e14815ff92ccf434162ffc76299485a1ec3a28110ef3527176b2c0cea99a0b9d3a3edc6c2cdf8a4bfd6d8ffa160b9a694da74c8d3893c8687605df6a1a8cd6224d5f0991a26372f3154b0843361fb906130a0ab2210ad5af83de2b12bc97bc5e4e5d3a38779ea32318d2fdfaa3c49e7081987aaec825d84d0ecb1e72ce909a1b785665888c00c4e687164c27837bf684ebc22d4f0b8f5b0bfc4d038da9b8040b151f575b93f161fc1f9ca0924b67422f13d034921983f1bdaa972f892a4d47804e533de21dbb1ac1920e724be9c02a9c639abc05418946bfedfa9c5a2ce809bf94d89041b5b66bc1842a59ae88404270a9b6c9363dc76ce8206c512494a4794c7e472507431e04cb2f376c0638e410c7f2918b1fd641548a94d4dbd1bb07af912b036e463129cf993fb21a81383c28da1c01ee890db7a4a9e7efca529d59a5689b60651fc02970de8dda258d12709c103f8a941299b9f7096aa4cb1b7a374adc52e4f73eb032aa54dbb34a252153bcbcb85f80228c7b9e425454b8505118d5527582e385e3b9be1a2ce11ea336a7415b3c5852607c3607cd6ac9872dd32875fab615a8ee33f81c6566f4340b6f4e273d3c4719232e938ff13b56b44b8e8d976698f35589419036553f761b52d0f1868a06106bf68c32623f26c21f657a641e7953661d05d7f277021d5854d060bef83ffe99bd4ac6dbc5d5c9782a073561778bb090168a2dfba80fefa375f924129d7e362718b115c67ba38e903a8f8d83c020f2354e5970ca47106d1a05f2e9bb7ca693c7665c319125756f8d7b7b21b62f802959125f6e96c53e083896b7f9f1e8a9bf0b5a3e36054b45dc57b8b4d47d74a6708e3637ef15ab293d36976eb3bbde47b68e8eee4ca57cb58b397cd085131b4a32e5680a49abac0204c8097fb6fd205655e012735238bc6aa6913f8e369f360207887e530bd49510541a3018dbb3075193e5f233d3483b30b327f7e541bf54ae1c036628101d26e896f9dc271fb7985083a3fd6eb65e7dec8ea4ad5fd830586f12dd22d1d3627ce4602247e840b759e65aa8b6af6d1ac663bbcde96d36cb09575a872b5b6b74742ecd88d93847622a78a4709e719d23f96ddfb9bd035fbfc368f6d9ba48c437e6950d402cbf14182fa9c6dede5b1a3e6399af87ffc33c47e0688782cdc9aa55baea72a4408114a6a399dbbb7033ac58705b3a6d704c59b3167e3e9fd77cbefe8d8ad3a331742431b38eaca3bdcf59737b6d06a99670c8cb005b693361e0ee102051e6de07621e8990a385544151b757adc5e607503266d8e2a22b97b7e3ecfcdd0ad5d7b8d6a0483b44314fbc97c856d9326663e4a8a420d41694a258ef478882afbc596f543f0b9d7050a20a0c1a80f86efa27e74ea2d31228899c6ac540d4a61980c6153020bd442e1cc5307d008fc636e3a95da164d8a98d7a5cdc1faf040b27778a5a02adf27264e8e372960c30fb45d73db86c31aa5325612192d4855c9cfb19be412dfa544f998ea5e73ea859cdfd7d4f14cd9bcb9f7e99cd605cdf4c3d01fe45b7de38fb4b58c1287a5d3912067e8f59a2041b4f304c3e554361b4446489431534eab645516a49fc56ae48ce672a74b66686ea0d2216b7443d49ce1bdde0d60031e79fc918bbea951d46505e1dc124a0c72db629bafc8c491bf5d37c998c3a54594736848a84e5ff32c00e52082a7360944dc5476e85285637e37e05fa7e392c01fda28384bc2d524bbe4e26a8f7e91e9890cd9ab8b9082520af3a5853b678216c071d7a1f95b269c44d40afa372567ffa052653eab4abf83d156e39426a5f102059a7801dfb21d79e02876620e4bbaaf9b82b2fb8d6d4dde992f56ec4653be8258c6c5e74744a5e1ca8c0374acec8b274746a5b69b26c7f988cae2231e84c8c185ec17f8c739d2e9192c2392346b222ad16490220465f4090f7811ea62dab6ad4d5e5666dd02457471517020a31fd65752448698c8e77d20581ec2d0992bc045bef7be12d044b0b4e3124c991d8a0011c47920e3e33a818fb742f3a233adcbb613ac202b85a091ea956f073d3feea14d612056ad664364019425e8cf8a627d398d356916383e3fa451327bffd8577e809811b80f939ee30c9986434417ebccd123ccd4ea9ba2274ac398bb824924406e4dcc28eb22455295b9862d500adb101a131186c326cf65c47df8505daadf257d9b288693b5f3acb362c57231db966e016298730a7c4b3b46179788b60d74fab57758651398086aa58040e420a0f2ed556ed1133a4c13887be8309aa4f781e04babdbe14e9c862d1982e34c3b97a4113694728dafe8faf697919313a4785697d8a83153b68881868f83c902865d614afa516f1b031ef00718894ecf116de16328ba4823609af6e0f8b22081cbfee3fd4230f8d56b824e8335533174145b7ee0accc2b1455e4ee50767bb42901f5c48c597a186b565677356ca967d64148d9c78061784f8843528813cc7a1369fd8c49c37106726b63d7cb4ab9e83b9bb11495eb9b5ac0dd1cd204b7b7d32981699c6ba2155bfc5d347c9ab430eeada285cb3c5346cad1f6966ee654005032a2f385a422013016209d50885fdff868911bb004898782159856c10f8273de4709321a9778099b7bde126490c9db005c7d2b11b7792123b581ee61489d5935027397d405b1c9da8553c4782b9c79882a8c8918c992b7d712d9a3189ef9c6f40c470fd2ec6daefab0be969a9dfe627721b63248f1d2ee7e091a0305043ea627b1e02ecf9325e6e1c84b0fff229c1b1c954597037c426b84601999dcbf2603d519b319c568f3271c5db30f23418a83d77a840783f5f6570a7410ba271a6e4e5d51d73d99f6b9e0c81e0ebbc08389dc761a21be86a78ab3958683a6334ef3586502435b77528f0610ebe235427b9e69cf69a9549a27677dc430643dc546e654dea0ec1e482191aa8a6934e0c81dcf595b153f6c441e212c1892259986774e317217ff6cd50c4fc7e8ea4db6ba57159ce4e52dc081c32c61d37c1c63c780e9f54e106f0bbfbcef91d4e14fa14d7ecf423006f4df0048cba03f1aa5c1f8e6151e1c052b6e95fd86e4197365e603a4ddf093f5cc4a57495b3a10106b61b46dd5aac688fa1708e3a5cbcfc3926d613ad7b8b346c2336bfa63bd988b8df60738e7460a9f7fccb1f8cd353295ec6049a0b78734f412099e9c45a5d62a7c278c478b1e5d2fa94ac5b471b2260e1ba54334c2f800b9efb5b078ccae274384afeac2d0082050d0be4b8ddfc54ce489ab093f109a20004ecf7c22ec5b593d3b86af9918dbb66c979a7d490ae8de820ded39d1c92f08509745c8c938f3e35f44ed0b2798103420e939ff7de0cb8ec13848dffc1ae0014c867427e485e614a6f009b31548ac8f7ce0126b947b6cc44dc8f7ac4bd0ebefda45104d37b46eaabc29c92ce3f250a6e24efdfabb6c8cb653e487092c00f6443f3f5966e7415f150b1152195c8494b61cc1a28bca072cc11fbccfe836f3792358e84147dc9ed9599ae54599559b3abac96a7c59d1ac0b5c06d5147040015dd33f4f23f598a11f8a3247028c4f2bfdbfdbf6aeb59633f5c062b4c7a95ec2916c1a9a34386cdd3fdfba21319048acda2bb826ddb65ff364244c0ccb8368396471ddc0c6ea97979ecf5eb9075b819d06c53a439bbdd60812aff0a0b764b8cedb3a0ec0441f70216d40ec576e988533d91c781b40631a88036e22f602955e54a624706beb4e0822702c05be85a78ce8d5b38f6b685efafa672125ecd707b5e290c33c653992c9cd760387908e8820e20af518ee894a1df464cb0e80b4f362864eb67911b7d7d514f8bf15bb9481f511b395b99a31c2ba9543126fc5c68e13ba86b25e65c85091c52339235f4dcad3bfffde7dcd4352723396d0068052ed16ad54960e1f84cb7fb0086a2db2d28e90f195e601978172e4f835617566e072d638f9c4b3e742b26e462816f1e75e5abae83b9f8be67437c5313c7194b028a177301bbba8bee946514e1d5b5dc4bd7e01378c8c388ec313fb327cf372d5ee193edf58b76ed3593274622dca5a0b60838812e3d4e411a4eca4c9af927df6c4df68431b68c505b1cca965c1a794d76d3c8278eabd8f19dc8e3d96a5036f5141e19f56cac741e2afe34c45b73371dd5a555c81ee6d42fcaef2d587388b2b8135ac71aea71350938d94bc5c4cf81676df22c8c296485d772ac3c9705568521f159a444d49f48a0125d04081e00ae5e4763e68a894bceb3785d4f2f7b5eae9ffe0e096fd77fb10e70075ea08afb657df5f246ad6f9a0b134a46e4c082a992dd151306b0b342f9199602a30a78dfac81d344bc2c34f9606a92f9f5e0f5b595b354e7dc4935a4b46904bae400a84e12334e803f3f17c6263798276bed97a19d3c8ac72538b0934b747d9f439173587eb515f6e2bdef456813d529590da861272adf61a61975b371eb3fe6c6ebe0ba97d8673537c85ee21ab6253bc90963fc23a35b93af0bf4940f677a5555a0743efdcb7ac038408f524f6941f6016d4fa18dbc5ac004f59d171d2b876fc6cf237b9c4d249a59a4f13c34116dd5d88aa4990d0f8f4fb254253e5f7e6946b0c5cce22602f2327e935d48f79d3b95470bccad4adccd1e29004a9479817d0342fe84a55b99fb8baa18d795e0f903bfd4875da98bda965fbc3bb837e446ad4dca4a04a5ea9606dfd822536e62717f3e32d74e9dd763c590d5a311d0d8a765d7ca036bf9f17976d490c78e7b5f838830899bd01cd1fd4f927e1726ba9cdaafe64e8581b70efd6891b8b9d1924f840707de7c11592bb1413f3132d5ce96d762c5bcd3a311c3d8c372b1ab10acd562996e363efae2e73a2bf50d63d990d2ff45133fc8ec5784370b7dea423cb4487cdd6448270e1c1841590d4c37a7c9f5ee7c287b1dd836a2ddb7d0ff34ff04601076b61a03a2838e7a48d5b1b256d3c455638091f71eefff4873667317f18919b127eba329e9cd4e29ca40047ec81507220a6bb16b4c2370d3c8e4badab9454c6b44af106c5f96b8686e05aa09f245f44d15efa12ab2212d7e5b010fdf20086b754594ae445d726c2ce3ba7a0682751ff0d1a5d9410f1d822a8fc99c887dff2b079b31b38cc29988d72bfab90d2fbe6ebb34c8736bd460b4c079fc351893fefb090fa3cc5a08c2bcf9de96a32c890e376e8971c326b406fe71fea214b3a18f4ea767600485c0b6eb7df2421b63427b143b01e442b530cff399b4f8a0b6379ae6247998761530be82eac16d7d01cabeb94b9e555b79b08c9a13c3726df07b15cdd53a654a353e600c5cae1d38cb8a954a371f58463613c039c34930fe335a20243cac6bc7bc3874dd260677fc0202ef389c3a14675e870e0fe450df42b09f2ccab4404e3c51e2c031bc2356a2a68a4615373bfd4e55c17016708989c34600ee261b107d6991ebd43cf2b01124d4a5eb48c34fc8ff7a36f50f9e81d218f2ca9e3062820b68f70ad6137e7ab401f63ff983acb31384e81086fabf40d617adbd436f08c6c3f5885d667a38249be329d0acc204db4bc6d6bdf19199cb8d7118e053dfab0f64980a33a43a0066d0604bea61bc4b41779a7618d273c0a8860425593bc10d9a0538b10602810db8730d6a78ba05c05b67f630b3779fd712a2b71e4f2e3fe336bc8208d1b2d0425664f8275e570a8ae0768cee94dc4544b3ab10e53cd2eeef149de8f7bd620cf0993cbba855a95d4d5ec121bf7bc5124fa4936e7e8b2aa454b2362fbcab2d2094d0ec8e7acf8402d208ea2ff59930d593c16d512b59b37f1751bedb2b0e19ce7de4bba0c30b5043eae0e80f8c414d9148094079d1c26152f57405f3a346f55059c83b8bb3dab85c0a9c544d4a0c5f849792b337f93e7c2a04a077627ed066619623c0f9e9a93829d3c2c905e744ec067ea88c7845644377d68256407ea3a71a7807247699296b9d0540ccdca966021a032cd73c0a42cc9732d9e5d3d558b93dd40a6244d188c3b839a1cdd7fc17a929f8a7ec114c5044a219b7a6bbe4b1be964d94423db88222a00e8e1ec4d68dc4ff961983a1a47ab95bf19cc1d24619ccd197a94b1fee6c33a56b6c10bede2c43da4cccd566d8eda027e3ab037978775126ea74854eebd2b2e8025d4cd784e17d7c08345c2957ff8004fb1dd22e26fd38b06cda097fbfa7bcd56ffb9ab428e38b522fa8b0542dcd76f003228cf32315673ec1c0810847186c2937f6076560a74f8cd87a1b1b0afecfc38acc1f09c084c488764b2366a1f33e600b9815e950d44a17c722fa6d655d95597368a55cde5d0c87b4502e1dc375a570911b418f463e91ce5a81d1654fbe78e31cade2d50c57be070f9742cb1cd4addcfe23ab0bb2acea917b562b319968ff0ed29b08c89a5bdf3afb279526959e85d5ec46fbf00fe24745df65b9d4f8992e85fd1d4cdcf701ef041cf05f45d3c792c07ff41a37a08f0aee817fdc44422f3be3d9c233d62a0a545a69e27cffc1f78735cc6129bec59e4a857e0ee613ea7df05220d3fb551c3f16a7f7a1977143faafe0a8de476e8caa66a683f6e72740074d0597036037563d4b6c5fbd7205f9bdda25455810990344f6100f44ddb7794bfa6bbd9e57cf9e8c05e53fa68241c0ef5f5730d3fa2f070464c81ba9aefe41dd0655f110e01c623380cf753d2bf7ca754556d11f21411c81acb456fcc54ec40f84dcff9b135b05df0446dda3c64512b896e8a6a884a6791562e611ff985fee8f4a64ee4fea3ee03b657a40c977e413e3f61a0ff940250d41b99120c1c5f681ca0615f3e77f76f066e213d9e8f8db406b107563f9d17ad8ff9a819cb9f05b37260e07b0d2a9d42cdc2c79fa5dcac1b20bb8e34bffdcee4ed6b8adcd50ce48467ab40f9b6876fc93f1e37136a3bd963e70d8c6fed04aedfe96becac237185562ba0e4b45315ff83ac25d77c9cd64d8fdf4756e84c003b930e9b3e5e7951d59537aa741f021018102ab11e131444eacadf48e55113d96d4305eec5a29c4a08b7771acf7a7c03694ebe06ad710d2a58d05bc6bdaa5124abd8bb185e8924f93fd62258aeadba682d521fed253bc24881c9e65dda063bf1f23f2b7b3d0aed799db69b3af4bd735db30eb7bb18ff5af40f032b1c5494634acf06d9776b05fd867378660318a5512d5bf3a0d58802b59e2f55278bffe8269f39c459b26249d981c558ba3e6314e9e4dd8ef952b0dc571077f32e8f085807634ff23cdda3893b1ab8191158c87734fdbbc7ed8491258c9a8f1857f588eb9b0b62400b598565afc40fde1e56c64dc34ff8fa4ec4945af1f8df37d8ced85ee13d189fd2352329df84eb8c41945f92fdbb0958f7e6f98e35bee4288267895890f18ac07b765c4ffeedd5c4672201bbaa52db715dc3f106a22e57ee98fb84080d084a0ac7ad3adaa195f8baa66034aa709bc5d76b39b4df57b3339d6158989c5df102c4e387bfbf5ad476b27f7310de470d696abfd9f5aee4382814e449fea89167760d9cc7ec66294d20855a172dc247fcf58e3f0f8d0caa4aebcf0c14c7e90dfabeb1c648332c5e6baabd9b43181846103b8345720af7045ef4ff3a18d6af4e22dcf17720906cb7a4f26df3bdce71bfd483f52df1ab3395f04d9601ef365a050e401e0d3597a647362debbc1834a379912e6dd5c922b41fcebe2f2ed5a0933f8253d3e783640478befa3fd6348c22c4d45c08c5f2f1c65f601cc01dd15f60ebc9e789f7d79bcccdb5c66301b48629d5e6cae6b0c48b8d8f95a6a828138ba58f702aea141ad9eb8f6d93ea64e0b38fda1d4fb8ddf5292e6f78756396c5dda162515699134bff8ac1e764cbb674b991a778750ffa662715fd311a0b5d27e6bfe70434cc99aa581405c3c084236c8a706f669f4665f61a293d30c9f2f4fe89579a8d5fb618b683670637355ebb2825aea54ce201f59617d4c91588938c8d5757d8f31e8bd21f207f9f58a8accc1859de5725b052b223973098fa2bbc0a9032e6fbd70f68fc0f3a79c2c0137351b2d49b2933468112088a5053abec0fd2340aa4e9b21b2d01a879c35000c68bb63d8783184c483718dbdd59f82c6f1ddba778a6da52f4c1caaa2fa530e254e0b2c78e10798e412079f98e0051a185d24d186e7e57d0565cf88c6acd54c5da97060e410139461d7d8d0212e71bc47e54e1d18742b5ece7dd0298f91cb4775cb1df5bac2d6fb0863a10c08b039b7213499b4d36a4341c6ea55ad0c04917be77b73245078854cc074f928744f938ed1a7d80604e80e67903e992b8a98a5a8af32f77f00da3b0353ddf061956a2d214852251fdc12e9a0d899c3ba6d0cd24f3ac20cdc78d49dfc9561c4e3b9f801f449526d5b8449939435562ef856fca00e4a5d382e3f8609383d4e56783ddef8db5d4e90248bf55229822d3827671b1e859278e845471cde893db152488b100460155f59091444f706676e3530c813ae89e4e8d1040a4c547b1fc794d39ef8825d6ec0054f0a2d69f45096ad62b260b3e9e9a7d4e039372c3d07460e8eb7d7376fb48daa91a2582641f7f7494cb5dee69def87cfe7750c229870d3b038a39f13d3251767ae6586076ca7d5834d712fab70a81c8c8eb52d0b8e13331949addb12e37270b7c196e01532d99adffe1c16f3de7c728fcdae8f9083bcef99fa40401615a73371224937d417140a417d442ac458baf435a02eaa8560c8ef3a6ff8c224aa092a49e3a1f46f5423dac0518be427f50f4553c435eb621b85ba44adf8794f29d3e7efd9b661cd464d213c2d12ee49bc6c9d30e006f8de4426525d145694ff997f1fd8ff0d39e8fc9d844f9da2cefe077502e7bf3732b161f157f1e998c9688ceb26611f3258712653439ab9f96d4819b9e82e15670a7218c6e44b6b4a4155b789d20fd49bab5f5911a2397fe444df62453de29c533a123fe2e7218ecea3361f344625796df60cc19cee827b8c0cca904b60b47dda598b36ff477430c9d9a1acacf7720c9584caffcb0436c175cd06a7e5975f3c99714975faa5f6df5a86ca49abaf48e06f523b4e8b2c69da1a9567a94011a5e85202468397fa62c8cc93754bf43a82cc45579d3525a6d4bba24bffc39cafa32f015e47a2dfa45e997242c3970ca90b7e27e1ba75cac78992a47015921e6837258d8691670f91076730f7396429f8c40a62781b1ee3a6071b2b07e842b00885e588623efa034f54b1a619e4e331ad2422fc108c53f48b2fa9b5e2c9b6ed10b9ecb6d7e46000933f5041445a29b32f4e7c2b949f27c0fda3a6980c5d80d8b7b63e6d151eb36cf4146bd392f14dbfa292a9ee096a16bfa3779992e5dee7fc9b3b032138cc3f85739c11b357375d9dee586adad94c80abe2da1744272387d54556884f84d3ffdd3ce752763a055d5c32515f2d207797b17b4883bdc054d52650bf34e0ffd9966a03d7161b857fbd875b6d90c8b14a21bafd4b8244a29043923686356a109ff2fcd56494a28b102fa822e91f73d87a1cf9f81514cc9b6dd91ac3b5c1a0346458f6cc36f9c0038d360e3585acdfeb381bc1f64f6296d3860a5363019280727e6709d6c1ae3ddff10fc2d40bc5932302430381b371a7600af0202ae635d5b8626c6f76443a80c3cbf923fe2fc355bdf92bfd9d68e5b75e4a1e074e43edda7c2c222a0a13ba9751edc91b15b49508d07986c57e806d4acee2c9911b0031ec072f7b3440e7787801e29836551a3b4b3ba32e49ab97732192ae5a92e439cc4434aee03120bb0f3a419ed985b7cf326009447067ad150974b7d82679334b6432d11bf1617b9fec46da0a907234f771d027087e01d42ea33fce63767751de96816c6fb51644795d76400026a251e82102434871b17ae5061948af7c0544da45d0e07362a928558305d7018fd2d12e22b1897992423a66d447f4693471b8eef075652f863247b5c80d21f56ee361b7ea32f1880e804f81c37622ea070f923ca83d3d1a957574879aca6ca4a3575e0a5641e5163615077e968b13a801e00f11055ab073160da7c09d83abcd3bfe4c530ab42d975179f65d22d6a8665a5b867831acaf36e775cfd46b32702f42a207b05502b6a0e189b433d17af597a252e71a994bb435718c39d011a218e5228ed5f7c302b8167c39fae457036b49d2de97db45161d9b7d722420d5bb47df379cd30f292a337d54d34dcf5a3a227427370e11753c161547d92a46f19a7684a2177046c1ea150c47ac5135476ccccac5988bb4fdaea710a30f8ef3df17ee866f14d20b6549803e225474b7273e7216f4d716138c83deadc1647a9091b5f3c89a4b89d77ef503c6b9a8d83a52ac40eebb4924ebcfbd3290934eed5d81a8eecb2ca75ea6befb68c5ca28353e02150420bbd17f5d417a57bd678ce4f09a7043a4243559dc46eb9097b9320cdb213e4cec6cbf64c8b89ddcaf84d1e3edcf4456aa1c6e05ae1b2fb4e1647640d14c0d49380a2503e937947bb419ca849081cb0609cf719221c7c38c5bdac35926bf34b28e32082eb4a975f7cd8c115210e1b76a4383612a91285eb286ecf4dd4de0861a729526181ca55308286b8c0c27621997377c74ecd1b3c0185e48a9615d32b675889c1aeac788e053e40ef6e62f1c8e8185f07c76d34d624e9d8b562e4346ce661f907b713de76d9acca5a1a20cc1bb3f7808bfd022f05532dbb8c8a8114236d983ea7e037c4c37abb2b51ac2a7960ec88951e41dd9a8e5a7713ea150cab79605a778bb2140362a0b61ef04688ead5f562e111edb6f7f2982791c5aeb1addec696b0ec94ce703aa8a0cc8c98ae7f1a6f10fae872adb7c52e6bf918db4c3a8ed08cbcdc8063360d60606f012d4a365974496828b573e52e4f919228d1aae7596929ddc10c9d8b58938768fe9840827286d26013590c4f4e233d804b5d02e29792cfc64748060942e5e4da6edd2d1fe05f0fccedf61abd2bbaeff891947efd0d33051487e5876749211a9bbdb2b9b60f764c2970740d1587ef268499a8734561b9e01ea2c7f3c41ce38a9dc44514af2552496b21022031c8c2e1f410877e1f2ef13765d3464d18d8988632e08541d3f8118b9a328c7bb13ea263fa367d4bcb1d9cabb4b8c7a1b5e042520a5290399bf9010dddb4aba8edb39a7b83b4bad9de675a1e6c136c07df59ad820a903613c42d8287d06be52835fec0693658918dd63ecd82e8bfc33f7113b63908d8f576c31fbddb9a2243fb08770c1f7378435c124d0c5f84fb3c99e974e5f9efca161ea888af7630c29dd9d433bfb7a3c3b5964d4a361588f612a825217adee8ca0cd8bee505e978298c8be1152841e70a5c2bb83b829b8254c5bfd02780481cf6d2848a9d3488ea40a26d96eab1664dd07805eeacc35a23038e9dcc984fe381b46b2619c211368f6513fd1b5d644d5ee9a04fa8f71dd99b461c82590e3de4e25d37b61f02b9daf3db70c207fd1d2de3896d644821bfe7ca94ba4b0fd1227b90a9937001124b64e24913fdbe6fa3d88faa59d924fc7c7e241be5f2224bd176dcc53817ab8ec82a93456eacd9e356753af2added62098abbb28df1471a5515f94416110ea13fd23cdfb5d4fc3a7318f317497a56c32376a92326351b2b3ed92356561897f7943a77c57bfe928c06a50ec5afd83ec671cf52277478fa6d47507bed25de89104f1d932fb2a9ae87d0db160345dd1b4894bf1e7172a59e50c93552ab06d50247ea65082fdfb37eefa491be6031057cfd5c4d6ee6a476f956e6abfc7ab6658f4a2134da1227005f208cfc74a58b09526e023efd092da3bb8ec2c67139d091b9d554473ce88a35b9780d66dc783d2705e6f61ae3055bd7624e5f1fe48d7aa95dbd0c2f0d04f394da338266afe17dee72d58d60525fd620f4a537098873eff0a8cc47bf5c98b878e4e78852e3fc2657795a01239be79968bb0ad54a754483f31ea1a9099b156e24b48320e5eed43144f279c6640cd336a42c58839c8b928b38f20da61502a8a76533e4308acf146142528ca114490a985918242249634576fab83909cf0bd03e5fca4916a8f4a90c97c7552cf9e2c556b04cc9d8ddb5bfb01ff5664ef6d9cd5ad54f5d0746544ba4f50bdf0a06fd0158f41f79178f6e1e5cb23f54688af49c3f826730bc097030277b5cf279cf5c4b773360b9db995e731ffad683412bcd19eb603c4830edff6c8611723ad92c466e34df198617305adb39dce279493f795ca74b9a9ba22f1a027642dd10fc4031090b59b0d12a4fcbc80b29122789b16468002b52c7c27dc36e29ce3ad1dffc53fb534addedd10411781b9c3e42ff6397075b8b42f303bb57249ac28015edb83af8efd26238e168713b523d6279dbed27e39e39484f87fb924a51c914887b4c5681543bbf3270e0be298df15d1df48ba051bce2b5571dcf41b9e69b0b51872388e2b73b5d03e83e2505b92afb232afd737bb969eb7cced35995ccec1b97eb56f4c818c28c269cc99b72e3a5bea9cad3d50635ab074c210ca88fe7e899683720157e53140690ddc547445cfa6c2baf4910f7601596f6651148dca93bd2d9d3170332bada2accdfbc55c883814578dbfd9fd9a0c5d4f016d6981a32bcb71a3ec86e766cecbe1a472e2ab19edb0e39a20da07cacb99be3af986bda566b6313fa60c3a0f5656e66ec4607dfeec71236c1b7a481bce39458d7db44eb4038f6f43bd30b761decbed5f3f9f5adce6e7d8df37bdec44efeb5d9d65d67fee4fda83c5f7a0fbe81e86970173b48c968c6bf7a8ebef7b8d8c75956fc54d7c212a99c90613b83ac33a5b81014fe4900620a2cfb345e84240d73e09e64ef3669c001dada3f207f0be9c71a329125fb213160ff72e8daf661d78c3cb2793d4e97e88b33db5ba2decd3e5b501e44398c2839cd891f05d4801ae8ef4d5f67a2f4f32062619abf3f77809e0d4e4bb5622c935b2ac30f652cf3d277eaa7c19aa926e46eda7f67e650f986f168bf2571289f79646d8d68598db00e51671f48670d272ab79dea30103672491d5bc0dd90ae006a0d461d3dbd195195d8267ec6ca06ef6756a4dd51efb09210dbcd80a81eebf71057e3b7ffffe67561fda4b98a4a9a718a59fa1f07e7082c11d2f68085fa82749ba2a328f1de02e078545fc306c7696aa58dd25b3d20026a46e1d8f52868d2147019f811b447e099c926e7feb9cac3058692061ec6a704e956f6db5f84dced3640c14607bff886eb4db99c0c0a343d257fe7cc0a0b0c4d7f0a08cc35e1f8f391ecc0e183bfd9922a852428c31549f8970bd62347c277347657a6d8d8f01f5ac9ebec4b34699e4b6824b8f078ead60a66c2dbe50cf8f63db24e2b7b4518f12f25d3323ca42aa0ea527edf67d4519ed1a1eaf2ac68dc83cc00678e2a6cb3aea0ec27170155b716936ed8f508ecaeebf64d260eaef35ef82d1ca191ee42069703c74104b904dddcebdc8bbdd5aad77700a14334994476fa37cc3a1e45d0f79d6bf450886e5f73a9c12991de0644829f6a01a436cb7f87f1e0a5519410f80d3fccbfca3d76a0e3ff3089168dda0f368eee8c01e1465ae7e540a5cb43199f4342d83103dbd0e01e7d0227f10a9fe5e1dc070d0b5ed2077fadc2b60b8aa183657154d623730d4bc49834390cd6e813da8d9c00cb75d6f9445779100604bc74f04f04c8b516392369e5607505633301c6ccfc4adb7bbfc742f2cc8b6d6afa9bfa8c883daa35a8105df4c055834f6062e43496c53b1f0246c41bba89068a2edc53ac8b6c72b8e2c7e411932364a70e8f3d1fe3c826c0d1aa3c5cb524bce927fdebc7fe9800f70efdf59398c67b3599feff21b0bb2f8fa03fad401db48c82a360ce31a2247f13b434853d92e659194cbeab1851ec2b7999efbbe152ae6469e50ad26e98c0717371793b65181b56b749f3de8f03086d4d736a796cf0b6c9e044ca917408af64b3d9c430adfe94d15664e710ddcf0eb6ae4c49b58b44e5b32e0205622654db92b4098821593f15c0b7ded27981ee3f9113c342265693dcf7566db2bfba216426db2401de7764c2e9d06095deec280c2b429e9cd009927b0867fdcc7382c0f2c2eb404513367dd7a28bb62c222765a0f4058c4e7cb4bf90bbe60c8a0e9432a868b777ded3d7cb018040b2ef687f5baf931f545de19ab4deea0a6e932318388b6bcb8745a6c1c920d726ed921fc5bd6a136a0675f982361965a8152bc27f164eee0f630ae787aa6ac673b5d02e64c88b99f2a689bb379143c9c22070c55a6221aa28f3f5965b96ebbb8337cfc5336447a5b416188ac137a5c873104bb7c2c22b41181914f266d48b9b0073a9a1065aebf0a9e2e811cbee86cd6cbc76a7ac6d0c534d98da1b6eedcc0d25b02f12e3986fed5eeb33093f0fdfa88459cc343eedc9bfcdd47fd95678d7504a54c923c0ad16d48a90fa55bae2d1fd3a1d937d5de0bbfe2ef9eda28b8da875df4e04de887be1d83f94368a5525b3e0b890b6142aae45baeb2ef5a3e85d63c611f3c0ebabba04e55357de4206601ca9ea9ba239919dff4de518d905734abc54b995c4d08ebbbab80d388118a1aff2be8c9c60b18103df76c995a6a9508b637e8206078ac97efa7c11fc379817f7ce3bd5a24202ad81be1a49a26a3a739aac45897af1436947a54063996d3e539e3f320089cd8fe711c824670a89e2e51b6b87a471e490f21157ada322b3d9974b67baf8ffb20a7f7a778cfb87a603d94d4b0bb04c9d10003e4171f648c4fc540dfecc6fda1ec61a28078c4943373b7a94911b554b266721fe2c233dd7c6bc583bc71b4ed02d228f102a602de27e5c5b4256ce797a8f28a12fd7076ec52874614e6a7523883f04ceed876f193f42446cfa236eabe504ca83ebbeff01f9fb4a58a9260da7fcead3bddf5058482128f3f35529a0a100ecabd3f988384ca4b01895927111a1636f9d83e62ee2be21cb65be884375e75750dd9ca0eb3518d7b1601d60dc03ea0f8029828c418d1fb0a48020f89690c2f5e581986262c2c350cde34682876ee38cc17eea155a0882e22d1898e88352278a132370368240062184a8a2513b041c178346bba8839dd9d4c4cfc9bec548002edcecf33d5085ba7ca09a096b009191f17410da743dbf245e7703328ee681d02d95afc1870eb7c725b5badc66ccdefe2288bbd43836e6183a4e3c71288e6efd1d8d73c0a0030b98886b68782a9db129d1a91fa8a04ce12b7d2f522a82a970f11895fb252d130b760938b511cdc7982606ca0234f809d6630cb36bd795e49a9f82799a0551c378d7001b8a7943e5d111b6d585cd685c95035c1939bc2a9dd0a124549a3a78d9d9f26259ff6824e96d5920fd3e390a48f5c43f7b123594a50df4174af297b3a025802c13ace11b2adbc2ea50ca49db56de5711c15a9b74676e345678ad64035eb88444408f5396512727b403fc039d16fdd9371832398554cf8fb5e1bb9cccacd7e643aec7a02353a279f3434a89a9666be0ffeb75edf7cc2e717a0d4e1c5762d5ae5437861444a3384c0315b475787166728a838cfb41fc06c14566177732e4323290a120c191d44b0a2cbd4b65f9af533255c27b4d354d93ea5c8948a9823017922ac08f716b06541d12cab547d8ae521d9fb080e9168586a471ca506f09b74e41277d4bb30021e67aca5e740671e541d4d750b80e16498621f0c08a87812b8ad34712efa8421f7c0455862dcea12a755d2994f07bba1f74ad6430b119fbda8fb526906b88c61931360ff6181dce6672b066b4d0efaa4282308726582a8a34e34307f0c9b6b74866eabd25013c287611dc3da03dbe14eee764169b99d5c6c67666d63cc3375eb5925ff22944192c53f51bad9ee611d5ff53c1d52037081a20a0a06cd55b0ff04bf7d16d4272e2ca9eaa5f59dd10264eb916e412ea6a91d69e0f4226e64005a96b8a73aaf710f7647f22e5c3c7827170f4c99de64d5f36dc510a251de0f7f0195fadc42fbb3009cc2e9a7a6298ea466e6e8912662ac411e502f3d44c0c530cfea5773c9391b11199c573d291beb2cde4936050f458826224f553da5a834efba538140be2c859c1a75e7f8d0d5085098cbdb8053038ee70842adf2e91866b8e73b142be759e4fac096e91758680cb22bee049c103b68fd9790e06b7e8c28d12d6c0bb52faff3a53527ba4397989e0dba7106f68f144cc8c1881077a032e85afdd283784c6039fa7a1f201116c93d31b747ea68de8fe1762710b46ecf01ce9d2dcc0e940644c4fbec1b953fd142ac62cd1c25d0e7e9f82249c4dc1f898580543dadf747c1fc26907c33ad22ab4e91b893af8d1afaf5b71c3d6d9f16c805731acbf89e6f3e05d99fa997ff43d094ad152d6a72b35e5f87482d12916cc0d0925496b4bddbb9f10ce35dcec32a503ab1eb11bc0e88418166c8a344af998a2ea2d48080c1e8f34115a09f543adb148d402cf576b5d4dd9fb55835d2f34673fc37eed6f067612b989e00a45582a5ecf00e2b17e901fc42081e47272d2067d34cc695389bbab8f28b3acce6b1f58f05bc87d6592b7fbff06c361652eeb0e771db51c3b082757d2dae46685951608ae67f1d7da574aa4f62c3ebc9949bb7dabbebbf3773a215554dcd08a56cc165de607c6aaba19fa68b0925a4f25ada0fdb61f807d43f4f3616695269466973304acb92ce51537eace3f8a5e509cfbdfddec5f934a905f4c9f4dee9b6159fe03bd9ad503bcac0a824bfef349f2cfcdd8869694ea07062b8efecbc7168e2ef8383dbc078c4da91943d2a50071f16d077d1e78878f9fb59089879537b42ba83e1f6ea30a3c52fd2a15ef5adeedb2718b9f4e94a32f95e2e3eddc5d85d9cad2756661c3c4463dff038d49c446020e35629a2c4d50e44a51e18b8f822f28d94c62ce02c60dbfffd741838195ffdfdde22a9a1dfa74d70bac888d55ad5c5ed29c5c1bc47801af5c1b53047d96f85f1d230162ed47540e56afb3cae0363158807ee3f8c83c9239c68b031a56531d4484aa4af295ea7383b0c2a08435f99412ae07f13ca5845142a71e2f6f365f737a4890ee0ccf8172db519f847e729143da411777223dd7dfeec8b1c04837b7e70c350d3d4f0ca6e88217ce212d2414e4937e0d1017d97a882e027a6625983611439f95706ca46f3d44fa55e52731930c83895814d0e67f44401e42bccd464f64611070eb39b9eb6eed254876a683953d579af41c887d904b2708f858a02b7438f4bf98e059debb2fabece36e1d61bdce2443cdba770c989449e8dc7a70613da5db62ea5f2ca160e1624227e4f962425b90304255e17f26a3f85e340ef2984024464ffa857b668bdbda03b226812cc04027c34a845d047545ad0a9b96303ce67b98604b26ffc65fdeabf24ce93c1bf20971a153109e1908ed862ccd3775a340928d45cab4e61d2daf7ce1ec22a5671f7b1d8780c0b2e31c0e727c8a75fd367c052cda11ffe4ef8df40ac88c22c8134b55ebcbd3d9b112dee2570bc63a61ea97a7c56adf542435f9dd3ce488c2e17390fe8a6b330ab00313a7ffa3b3086d0d6c0215cfbc7d202b594b9eac578ebc201119a330e55a0fa36665161bc310216343ea2c97dacee698d631a2a548fecd943606aa2bd02006d2a6e61ab44250d63f0c36fac549417ad143d2f2bbd029b4dbd984c2f7aee4408e127f61c4c5d76ec92eddb8f4db97013dd2f6d1ae6ec4985e4a5fe70eba9620fc9f2561d0cc218aed2f420137d28121a6604a516fe9c6630140f2721474cd1016bb048829e071f41f087a7247f7e2beee9bb6064ba1bd0a1dd7ec37c81b3a5d09bbbba8033de797db36770a9b8ca14523ad85833d6596007b8badf9279440b034a8a8c3af620c61334daa7df16c860e12f43eff14b434008f1db6c6fea3837d8a07c9fd823855b33eff51b5052a876b15042a930df7f0a5191b25b6ff1a086b05a9c241cf8deafc078e1fa08aab6ce3023c67d95f8bee077dcabbfae36c254dbb656f6b0fc0065a7f171eccdf231d59cb783f6eee38006872c5ecc3e255218bac02b732f12874297f368909a43004fc896b5b64f0c301157a8b8c33043ca4154c706105d2dbed6eb482ad1b04d4542bb094a8248c55eb1c062cad221921ca45457318b32b92541496501ceb286d15ae7c2c720a12056c0434bbb350b8313f5740ba8232c1bc331aa9b419ef00895b26877471ab5752f9dca6ae4d6f68d415c1e5e8ab69c95709fd7767cb27c7cbb75980450ae07459ffeb024609314b0acabbd51d1c326d38999bef5a76c33a58662d386b8103f25d754a1b5a291a01c395227f42dc7a6be1c0d75eacc2429c3a83cd0c4d0cb3d5f333ab17292f173412ab438df35a339ffad1d1a0ac1156341afabb50c627f1655165e542354b8c6679d1d10a3980951063b68c5c26218fd0eb1d0cd2c477d3f127dbb2e5cf16568d23d2ba71837d601c4a449f9dc020d8fa80092319006d5fd88fe0a2186f2548e20bbcf0f2f9b1db61ece9d99fdc65e6868502e6051de68a3c7551d3f0df14371477147c93b909f3a1c468550b32c3ce6c2c05ab82aec19f27e6cb472411c1fd48583fcaadcb1465162e7e080d49f03919a3d8085e528fe85f790d56483042625382a6b3fdaecf8ed8bea2e239311a97193a410ea10c92f3d0e99291a9797e90c810edf89983b80d1e28a5a685c7d692534c455a90a14275ab35e5ecaa2a49f62fed20f574a1f3177b7b3a4ca0147eeaf4573b5154c32014a418818128019f926612359df170c04b6e34db217f646331920d79d3cd5a15eb817b6197d08177c8526cbadd44016a0ce5891a36376eabd9888818271aea283684a194cf6d7b951cf58d2dd20e469a29d14111aad0a50276842b7e8f64e97d04352449684e926e9d048e02a7415320438005aa1a2d0bf5d96e170be8668b85c232553625929e4a550805157443b0559e0266c6a878c563c9eb7c161b74c20358aa288d9a0219022cd0d5ba76b2082e1d3c1ccec4f6c03aa98c9789a36931eb62b19194c830d6dd62625db8385d859407fa5c57bc43df4617d86e130b7561742ca2d0c8afdd67c77ae155a93c1e5349b10c0914ea2aa43cd01f2a6e4fe645c1286d44240a9e9e4ef1eb41bd9c6c8e2aa781dd31ea5e31977f4e124595d3a0299021ac9bc742ddb8207a4d3cb3dd401728d911e30145bc505c1f4b924641d39029be0ed69f934751e17449cd51e549b9b03750a0aae76df008220ddf05a37591b06828038a30a46623c4b41249957c3eaa169c29a60c338494887d1b5d182ee4484ecc4d08b35d908e5c9b36021a053360f43db248db77c502d7352d16d68d8dd18580fa49b294d622e8929b6b5267e9401746a1c5c3e25c48b0362c2dd49d9288f47c1788864780a3c0ac5c2fac87270969fd2e1cc58881d605fa6c97c74453baba585794e8de515cbd0d1e41a4e948aaec48d4b5526ba15934c0ab87f590a45894340d998218e21da3ce781b3d72546c506a2813dba8cd8aa1f5c3e84da498c6e9c4057843c962103956673495e8e0850ec250cbb9e1b176655ff0180c4f77edbaa1ba083217d8badc0a75a8baf68ec4be4de35ddd53186a52cb0f3098cc0dda214d62a1e83d1f544da553cabcd671cb433573b282778a716dacb7886d39d8bd2e15e24a50a1d478b6a38d7491e8c49b9d2aca524b3a96a7156a1ed50c1d1bc3448dc1caf61301ecc7012a17f5385f60ce1d3707c650dfed44e44e3ac33510bff081d5c1baeb829d0f9ebff2680bb3cee40ef48f566365df07f8205ed86f46b4935f8ad529475870036df88bd4079fbe06478178833c4fb851728359e276aa539fb3c338592fd9522629654a22773d032103d5032ebe7dfc29f9beefab9f7d2c9f524a29adb5d65aadb5d6daffffffebe3eeeefe19b65dbd7517f316c993727a6114d167f41f10044110eca8386f984a2693d9643ee1ac3c735efcdfa1846118d2b834a85803e693c12e5a65d751a65229b0090882e0e9f16def7c745d57aa0101fbd7a948452a522a622a56fbd729a594d25a6badd55a6bad9df7de7b2fc8f2c92c1fccf2b9b6de62626262622e13b0e63ad0f2398d2ae6e89ea3be25606a042bd8755dd7755626cde4317d4c20544a1061306b64b5ec8c30d809d80d19cfb08bce779b6117ad6ee50fbeeddda454a369b57f7d745dd7792769b57fffffffb1adb7d4e9743a9d4eddddddd709988d14e38f9bdcc63bcff33ccfab630541f9444291527aa634c9baaeebba0e4a1886a114455114e56317ad1607fd3e1f33cf68b59f2b589b54b08215ace0ada0cc68b5d75a6badedcdb7542a954aa54ea7d3e984c265076aa1284a16493edcf43ccff3bc3a8e250924472ae12ce9e306281f0a165e210d6b6851c052c0eae8c964dccffc9aa8b792c8e5e6e5789ee779262a564ba58e75ac631d7f7bd3ffffdbadd65a6bc5dbdd7af32d954aa52e01602860de00e4cf443940db5ce8a059e29f344f842291721689784cf141050837ad1ceb066ee607ec682d3bff9a36cafc36b4a10d6d18ca0a56eb4d146c4ee1694cd63359cf643d93f56ad8ed4dff99beada4d12dff4629a594e2cd378a9aa8f9237fe4cf8ffc1900b6a3c9d8b0479819bba8fdfc261a4cdb4a2c2c3060b8b86c7562d746373bc5effbbeefe3667b0a3154e46606590c63f9aff45f8d5722b7ff449f569ae247452a52918a54b46426738d2e02601d5847cf86a696156862cf39a9f8d5fad5af7ef5ab9fb56fb26fb26fb26fb26f0affc30f3ffcf0436e66ebdd6bbd6bbd6bbd6bbd6bbdd17df4d1471f7d0431063188410c62f05fd344a29c6b5f1b57eaac770900b3aa7deb8236d10e34f9a22b01e59af99a259abdc5c902bac589d6f900dd397a732991887ea8626fa51870c652a3a3fa202c4b0ecb23dbdbc8faff87e916efbdf75e6bd4c202ad738b134d47be2db6c905e7e6bb252e71592e251621d7f9f2ee3a295ecf942596b5809a2520af5c1d9681421ac875b6db2576fd59d358d48eeb5205bd5928e13ad38feb512d05f2679266b676405f816c6fef7ecffeffff1f638c31bef7de7bbb5b94a7bdf8c2b7fbffffff69b5dff77d1f0a8542a1f0d5593fbef7ffffffbbbbbb455114452c735b31aed8febf8b08f4ffffdf6432994c6118862108822068d997ffffffeaeeee2ea594525abbb548bdc86432cef3bdf7bec05a7660c4e84000218f36192eeee2d253bab8d06f92668fa46ca7d885ddb10b638c31c6f7de7bef0aa6adf6f1edc618638c71b5efeeee6edb7ec5f7efbdf7628c713bf63ccff3bcd17df4d1471f7d0441100441192e8aa2288af7de7b6f77778fe3388e33308c31c698e2ffcdf2182080f02d51d204fc9628f928153a5291fad01e2a8e64b88830e3c55f5e7aca97976ac939bbdd699d92f6ccae67d875efbdf7d26abfebbaaea375faedbef7deebd7ddddfda5657777b7bb93eebdf75eefeeee7677770fc3300cc3c6b6cd7a2e22d86fc68bcd213989d4539248524ee9dddd2d37cff33c6f767777872e58777777bbbbbb9b4c2693a965c8c82288f0bd2869c2cd4c02472041090da741a3a7a441c322c9d9fe2612687c57239391d4869bb984a731c14d30a1a734c10489c3dddddd64329966bb535aadbbbbcf6fc68c17ec858459a30b3603ab0113fa371980b372cef9c6550256ed4f2a73bc530c40cf24b90d1b3da50d1b445264b15348b15938c4cb3e006e0f37338c3849d3053f21939151b8990360a1d8c0d8952d7983deb8e13d6fdcb0e12459524a593dff886134dccc9909b3462e8042542669b46628e38e5ddf1285160265161dc7b1eb585f13650c06b3402704c00676d9c72395711cc7f1eaeeeec65ba8af142a54e47033b37893b4229391d688858f496ab1f2e42c6b8594e0d81828e548651cc7d1315aed834d401004414c628c31c6ddddddbfa17e63f196169516172f52f0cc1f5fcffeffff31c618e37befbdb7bbbb1bbbaa6de17dc528408c05238ff2680020fb3877157b44510489567c7cfba3ffffff18638cf1bdf7deebeeee9e6ded93713887df5e32b03bb27027006cd6c022cd6c85d4446d68474fd4a3a8b0ebbaaeeba838a5f44ca16205ca36031c1d8f2427be6024ac00d80e759b6117ada7d3e9743a814d4010047d7c6c865db4da8f89c9ed01b2eaccd0541a5fad56ab55adb5d61e463cd58c11194ea070706408267aa2501e3849d060e4c73cd9d4d81e375d83ea233637abd56ab55acdf48c3700881d3be8018922497ea850674862b34267c606c9f9c0030f98a0e007094a403980a382c67952030c71044bece041112910d09b1f130705d50bb2b251a9542a954aa5aa4270e880109afb831c3c133d624077fc9ca9427ee8c0f4a8ce4c1335b6c7cd0cf4e76423abcc78b26d70503b64103d3861441035f8c1740215ea0e0f482b8326d25834cd5a0bfa8fa952a9542a958a96b001aa52a9542adbad56ab15a6410f47c01234988cfc844930a941f5111b954a6557ab0c739d5c054449c202d30b503552a80c3f70764713692c9aa50d1105e504491130508107284d0f3542ac5674062748102147d4f0b6a7ee4063e5c70c6247d30d785467a6c6f6b8e9d56ae54458af79d060c3d4441a8ba6699a967b47c69004c78a0b7818a1c38f2134e009e1552b3bea8c0f121b00b1040e4964d881042032783f6a6ca82a954aa552e130a528d1c50009243a1451859a848cc007bd1264079a0ee4f00313102488f0e9b970889881d61d469ec0d95143ce134210e9e1e109211ab851a13e2124fc40ce951d21010edf103de10b7ec0d92039e02c133d3491c6a269453640821e78e0b33952c525063dac04b1c3ab576c82a0c0f95183e3413440679cf09e68afcaccaf56db6a15c31226c2223270d204a705ab23603cbb4c92762593b24bce573229bb642d3391831920445045c5e3535db1c939c350150d8448fff9314f365eab8f3880c313392461e5881c156c139c0d52c359dbe3466444cf4044a56508ada50a0f22102c1101f161c5a485075a0b15ad94453468eeeeeea2237276b99cc563438a2b65181a0fb40106a21e50a7d41b6024053ed4d08220277062c389e7113273c38343c5f204d14164c4dbc0836b62f5f5390b8c2d4c1204dac23806b39e240064801829d3b2b393c9c4a0c8644e17cb9fff6da26e0a4cc50aec6a6949b578e222ca0b184f62788c183d658c18296bdab468214f2f6048540c102490103c84107aca104290383a739fd80eed961d49ff62de6e1fdf766badb5f6ffff1f638c31bef7de7bdddd9d349d76f6d8adb5d6daffff7f8c31c6b8fefca452a9542ad51828a43dbed75a6badb5eeeeeedddddd524a292528e4282cb66fadb5d6765dd7759d288aa2d8dddd9d4245c5f61f638c31eeeeee76a9d65a6bedffff3fc618637cefbdf782200882524a29e50c6badb5d6babbbb7777773fae2c2c3099e138a5dacaac3c513ebdddb153cf9373fa8d24d758cbce4e0b173098cc253d51fedd304979a22669664b4a69490b460c094208d3264b2bbe59db26676f5b499088a093b0e0349314d14326d1810d4f921f8e72164f921e70252db78842c215123d113d113dd1b05c4758be442ad04a55f43cc3522be128a5d9374c9c249a5bf8d0c02a4e141c07c6ddc0d50b772e38cd3703399a1f1be70fa40f8cf8908decdc7c26b99094d0f013910984b072831f23e3a881ac84e00807668e80e088096a8ee4d010a1893ea0d968a53c02cd0812197276317202ae94615a49119b5a2487192813777777f7161c683d34d5a7c7a7a679504ad8cc161d684578cc1ce1b5c889ab61061976e1fbb677b8acf945e8954365c289ae1377a7b4880bacb5ff8e8bf470a249b254c825e281a788121285cdb4baad196ee636bd08ba2dab8b4041619991209cc808129bc425526259281f1e941273ce6e1e94151e5495223c38d1243571592ea5beae962eb69287b28f2e1d38e49edbb792556aa1b1cc97151385eb9c2275ad20b91c01ee85e67480f28a6cb19022b328619925f75652f15907cef28547540732e3bc84c399050ac5754e9143cbbd955ae84c6570ceaead339c1580e5506ebc65998e7a0514d9b3362ac110b290e5de5e8472679c7df42294afec2f421b0e9caf7c659cb57ce1be724d008acd850e9a6f78d381e5d0a683856f9bb3584166169bb5627ba1b91499657315db0bcd81b2e7141b6854ca0097e3cad74866391a3f800be59ae570164a59be4a2f3407da4a18e03a4773d79685b692e7171a9762e0ba27d779b6a847eb3c4f276e0118061797a6e1c0110ae5d016ca07688d9b287268e4391b6128b49c6559d6b2edb28073dc0d5b97bb5a668cb2e170ee50281b65d9bd02a05caf4d47af70c1107228328a516854bab28742a3c965a31268b318e709c42023af703d2ac110b6e8b4ce99e39c017985ebb46b2b6580c3d9ca58c624772f05c60b781c0c2167a990c38bf019c2b5d01f5701c9c9227c7456ac9021212eecc2dae52c8c658e20b35b6d8e5049a49cddba8f412f72e0b99560e01a88cb9af5753c1e1d209c0e0faef4263912cd39bb9b504a69ad3aa2ceff5f04f8906c492bc13a160749a19cc5334408506a855502cb8fcecd909c2140585668210c04028142211e223e42415c221cb25b373a26ced2f9b8eeeeee6e510d1aeea1a547074a097446d10f0de32c9e219da846037116cf90540b0db48bb378864c11f9d02e67f110b1e1217203911c1f5c63c9224f9b727371164f8e0f6496920345f2e44c6180a5c224b203ad0509ed082d2795b30b13dc73164fce13ae9461dab32ccbc4234425a59cd30b75ee2d5ca39445c493b38427e7cb4971b3de5cd6ac3d0296a0a844efba53450310820603190000c3401885a1400c83925178031480083f62523a582c2a323011c843715019063110c8300c000001600c008620e390a60554b4a996e1003fa363e39bae96733ff4fa2c7e1565165ddf5bdf0b4c3ad85b0857bd88a23c730895e38daf2bdc670adb251678e7a5fa3704714b0971a2772283370266748a4ecc5070b07641031ddbd50b3f5384828e43bb56026ac2cc19c61ca6ce6f7e6a49149bba9b6e4b362062764dc55d700eed4cd040d13cd3d588c5b03a3dfa2edacee10fa83946e71cce91335bd8ee871e36ff2bb87e645540601bc3b724dcbdbc2de9a254b6a2ded94ca8c972066d4ad9fda6a3506292ef1ffc519f2a3f8162fbc04fa7694c5d2bb3e55904bd042cfef424e74311418a33dd28209ce9710c7110b628a719c47c24351a5567f28a0b6a1f9988b35ecc584a4da4c5cdb25a66d6a113054e9c5735eb977b750d05ee72b51f8210810ed43622f7debd567302c1b5b25dc9a312075c4410c4fcc7295010c47a8bb7802b33fc08fda08afd24782382cead84a86b11e6f10c635a3ed708229dd80234535dfd2dd12c51a32a8c53dfbda6d1ecf73a7f170798e47bbf7f6401174cfdb1894f2246d0ae9dfc8b697afe77ccbcfdd70c8cb524272d5da181d3c772d901eefae308260435f59d7fc9bfb4972b2bc2faf6701aea488a4088e8afee4a6bc88bacb8f2a57ac9a285ea9ffeeab62f577319b041b67e2bbb461b85a8a34633cc2580b86e28dc6faf6492d18d2c838d1ef8b05d09a9b5d1a358e48f084ae006b0127db0ab8d671a91ef528470744e7d9789060be0fa2cac47200d13bfb54b318534c47caf302675a1683467c93f387dbd6c6c52be22b7a1d7f71dc593eacc710e6ef8dab0743d0895e4102245dd2e0d088059570c7e3a25fec111e6e4e0662cc5b54a126dc8b2e7ad72bd1d03112ef48b3b05908e84dfd2ee72509dae7a9788e5cebf11a6949611234ff705ab1b1db65b8cc051adc9f1eaf4a2414d1451208b58113102d812305653f35c8869a55fc85f5b2c1792bcae142db3d454c5f6ebee775f47fa29e2ccf74386102b2aefc3752e00a7966912d5a8ac31a3aa266a4548fecf79ffb71688807930bcd37d48ce1d18d06122f94221dc831ca4556eeb3b081c351950aa2fec4e8ad4a2428cf59bfb5448d26e4bd986a08f2786201c452773be861152495df817b2636c5ae626682c69cc0a46f90beeea294217e7c671c15b99be8b5c56309edc77d7c3fdbde6702778d329b22bc3cae8ef95d512198727b911675d3966d9e2fc0f0565997a591da704df9a967b66a5c8516a874585804b8c543fb78a2fd5e8055757f04768fc550d0bc311497b2104ad1ee5cfc89e8784d4c2254718b19327c0ef4c94f705d2a68badc57055643bb62063da5f1b70f5620620965627c741b139286b55bbd5f200992ec4825a89ab094089bab04d41148e338cceb536c85a58ef1f51955a3a68400644fc78c63da2093a0005450fcc5b666e7cfaea8bd1239679e925ececdbc8a9a84756e7d9a481d29321ba763c0565052fd3935125f4a1683b1517379cfefee8a3dc901c285a2f42b795b04c2fb2fe9973fcd2121f1e9fa8c505af91356b218627b57ac044137394db32f0b93d07c28ab5fd6c3e5d2d6221699b4c877bb1962c860d8bd8ac6c2fca7e5f5a2f214a6d356e5e029980d65a91205a9122dba2a27ef53c7208dcf1d9694597e83be3675bf0a714ab32cac35b85eef38afe0331075bf2590c6c0626bacf847210ee45a40be95471ed68a1116b2a7403a8a9931febb2945d8f9ac3ee9e4172b9ddc7fbe0175bd28440809133e6ec0b5ce266f65d88e8e22c34c6e838d8f282c9d5704497aa29c805b0e084078fe6bb73e5e8d8d780e0898d0d6cdfb3edcc89f5f5700d03e7572559f80a1897aa8ba57df0475a94223ae7ed057d740f0820703aadde72ac30635374ea0addacc06a839d93e397979ca536d6f4723159ca20ee3934aa86a95b4c1c1e91dd3adb09bf760ffada4c03e8fb4a2e909de84c997003dbbaf4823308b5c1aa195df11b2d57cf0b2adb7a08fb11228efb36a38cebdfb061dc6c6790dacceec4131430a729e18452c2e30a922c972631604f19447e6754f0666ecba0773b19ac1f1e58e18106e2b286abf333f5caa199702ec950863fb8026a45b797fb56de791285d79a8462487719f37a4536af36eb09edf62013880dcb2cbcc396fb746536867d4d589e1cb413b21c0af7caef77e1a467502c8032fb32d88bb00e7fc9f2574e0da566b84760abfd87d9da07d40a861750cf198d27ed44ac3a376b57da3d4ad42e96b74c7b4ed073687743fa2a8e08d89fa007e422556a585938e8e38ef2abf4987b3f34b143e9eafa41fa50d0a919d6e60c1d9c6046083682db3238be820bfbb16ae3983e26e4a1cfdd3593df00a3813fc19cdcedebab2aebfc358daca8e5511a280ab0f2920c932ffe7463a0cb395f861babc6761252aa82e782e457130cdcfdfa74f5dd4834ea899b23f9435d9b69e1c04ba9d0c2be86e1911d47b5f58320211912dadf2495ff1a070955942d481a0a034a4d75c3e7c7795310ceb61f8e0a289d5394921f9c11bd3499a860bd76fd589b4699504ebbd6dedbb09e0ac1347b7f69309c80affbc109d71eccad935a3e0ff9b271acb97d0454fdbe008f25b35ea37aa421729b5ecae10a021c69fcfed7575c8d485106e2bf594fe991ac98494f09253b25b4491d876664b6600a3217a28818e267bde6bdadb37b66a3ee9f5fa22385f355b80ad046e32c62185b653b0365286566834567eab4b0ee11c9aecf3faa83bebb84eb9106f61ed5cb12bae0cf9c0acdb6c382215955207a0a31dc96117b8363264c146259b514d2f47e1ee222f54440017a05ab483db2b8c14e227d57dff6ad374a94e78f6b1f1f3261d0c0219e275ab1ceb6884792f9ab823ee7ce8388ecc3939895f9c67110a3dad0ad54004429c4d19e6ecfc74c2bc13a114b36d9d40075d9eb66885a2168807f0ca9226ba0fa90ed53df5d4324348e99c55fb264e2b670366195d886d31ed836705116a9987b45c70825cc48107b095c4e2cc5fa9058bc3d62906d0265fd0be34d6be28dc0e702e962be4b9feda6e5fae30fa32873dde493c6873ef83a538a33a1b9db068e75410b01ed35bcb18f022cd50a39f0be68f5c16c144154a879b9bba7583bfa9e6c30c8dd3d301d2176eaecb72594391af9e9ad0f27df452bc6cb350571cdfca1dba8bff197cb50300a49c707640c9376fa3c4721a570b898df4be776c3743c716c518b71415127510eedbc46159adf6e0b62679a0432a81c67f0f40eb24de02282f91829c4aac7b09bc315d27908de5bab11b7835672db8b74ac46c78d0657e6ad3630e1afbea21d5826bcd223bcac78afc4f708f29a8d0a96d09937c82bc678d3243b12f705328609fbfa3c4631a570b898efa573bb61753cf1a7a57c63a9633689c9dac3af8f5e3162c85417022fe7acdd58940b3184ad62189b87aa130567d5dc9d75c350adf7e24b973dadcd0fb2d0a36f26a08ebba4c1b0a6e5947d24e7c724554ac5252f86693b8ba1ca3474ec44350629727fb6417d3a7e11777259948d1cd817baaa7d645aa0c6d447c4b88f0a3157ea762811808166b3c416a812b5f511ee816e61caa94cf6ed3b29dc63d412348176d4014cdb770d9a4f03bba6dcdd00afcbb1ccb28dc10c93694e78a5fbda06ea90c491b5f9a4ab76822df0f35ceb1acaa33054a14f75542f0a471c66deeb7c8ee094027130be9726db8de5fa93afb2aab108e5447b10bad7cc7cf51352085fb407d1655a0cfcca208de93f3a13234546812c18f3aec9cc26ecfd39710f0199fa51a80ce91d0342c5a0494d0637611fee40a8e1a860ed6b7f6b295550c2e523b2dac7edcd1dbe0d96e432ea301b471fdc66cdfa5434f74ae3ba85aca67caf6548a3030eddc8e4afbd0422265fef1c8c2e9e3be8c8b01458d697ec41d3371f0c5531d8b240d3e5818d7ca7255a957860b966dc69a1e2811c79d19cf91de23754ea629adecec6641e9e8b8b82800a3514e46ea866b0850fd1e4c3ba4575c30fbf1e1a684d2580a20ef4e09cfb549ce2b0514239cfb58d0d3424e03242f1275df8b4686562ca401681e7a35763eb4ff0e8183c4393ea46598473b06fe782e0a3af39ee67002e177bb130ef01097da24cb980a9ad7c3c5068a00b4456fc2521f0e1ef6c8a03d34966bdf9d0422d945461a23b4d0d100a2ebe33f90ab918f6c84e55244a0e9ef8f88b126d3a3b9938a632d4c113101e090120e7c220e009960246f4d5b087ff7ae960a67a3858db8f033d844d16a44825951f46dc69728ee09402e9625e973edb4de3fae316a62873f01a30f8be561b77b8ab8135ac30b6e3d5a25558fe7a19a9a8d6c94ebc841c2574707482be99aced57a1d054ace9242fe83c6808eaa54a5065f013a9ff39c8e5ba14c16454ce45040270f14dfc803121d58936a1945002f300568b81ff0979bee87ba2ad2af1c8d3ce02907826ac12726404c70a5e281acc52d657fbe2853e54f576259a152ce9bd8d83de6df13c981080382718989890a299f89e7e7f226aa3722e364881f00348c0a0a673a52bb18f7f19a837a0cad3e7c1a185f694a8cf961016e993ca9ea0680c4ff89f937f2db3c9c047cba7ae0da54406c74da888e12a7d0647e3ecc20c0f48054c5ee923b819ef4d06513c057f03506cdcb58e669818b09f500df0034dcbd89814887267a1620f7c5e505179a0aa98e6b58de727614130dbf7e446491b2da3633089cdee7b6253a62d9c25e54b0002503d1375bd4f184f130f1372ecb3f56f764073255c19ee2f14aaec6c4e3ec1f64791a1c1d6acd7171cb7c224108675455499104443a6f9a4f1b85599245014465615201078b6c1fbe34b4056d7fbe91620fcbfcae3ea6da3f5719da01033a8b3a4376dafa03acc804c6ac35555a91a4a0b429f6f19ee55d5256d634b5743239dcbb63bbd69dd83aa5b5b5a2f1bd60f655513be8fbfa9e2819a2fea0c0e5f64ecbd51565c7aa2b7c910c9bff0a1f96998cb7f5efd479f229b3ff74a61fd19b8a78e8ccb1d608697c78a55c49239af2aaa1f53c86b3d6dd707bb404dc9bc4f93433e713d77ef0eaee2bb2cae2967f3a29806565fcaea6c7565f595c78da6fa1b64032579caf43180624a94f6e92b4d2464c2e991b04b7439c87f2f3483acc5518e847a200e88f4fde865d6a24cc867f4c21b60e4c329340be9770cba521c3ea7db07de0b7a0e1e6045cb1cad6890dbf370f9e7854d3c958590c8da30d6f71911d2cec0da04e7451efba7fe67569c723e9f6168951907081154cfeb669b4bc533f3ff53ae76a61ddcf25c517206dbacd11824c8898531337715b3c3159f9ef5cce8edb296bcedaeb4cebbd269c43c3d31a39c114d668cb64e75f29793387493cab2b267cdf686e6829b248c998acd507b37dd6dbc825876a8aec5deb2fc63d6d49a4aeb35888e63e3928d172584de81c5325a2606c9421598a86d2c1f0ce5e3bc5ad6e626f9d31d05d87f3438c6ebdd9123f32278976090edc51615340b4a7ec50b00ed301a48a73d30870dc18708f0279e786b05d5c19b4c245b648611cfcfed01675c5822b889cc01670af0b686c94511787f913b38eadd10d99d6e0d17bcf8d2095a717ce997dc0461d69005bae7b1e7f6405c3cf354639d1384088f42810d149b3d90f310ca1261ab0947d512658ced188a6ed3aee9282fcbde14069a58bb497520661794ee1e320ba9753162d1b627177526edbebe0377f22ad42eddad8fcb47159aa029666469239673d593d7cd0f080e3abe8b3a846480fe5d6cd5ffb8e073205ff598a0e14f3d0fc6c7d64d9fabda0d4d607c03880d2038bbfb7e96fe18321b4c8a19cf412711fc423861a54149443ca1409869481891b7c6751ade4547675495526d3e54a33f39bdd7dcb9f7f0de50ba158da097be3e7b7ad524fcdaa16cf9158d4fa04eb477fe1873a0aeeaa175b9089b48c58a40c85ba6af8bb26877cd22ab211960c79a0f00e8e1fad227958d03f214935d17101723159445cc0b8b244301645570ad21f02cc3e9aa50cefd2bc57bee0cc5ab745f99302bd129e7f6abab2120e25cb8aea1aa23b7cbd480610d38cf4d02ea5cb507edfae2ce7a21e8011188beddd3886ec1a439e15683a8534bed5ce61d1b08acaf8cb423d8b11d986c8be24bbf27c999d81c197ae09b0a7a60a4b653a02c629e8821d0553cd32afd14df76c38aa1232b4f7db98d5e2a37e863eb42f41b630f04fe7033c77ad9d0ce61c0783872b907290c014a406f07e98aea0ee6a958ccc86b10e2df864778fd93834b689b34e6b5e21a3cc8c62cff191d20574e964e9c0782bef3cdcd605699437906e158805b6d42eae6d29c51402964f3248af870ea15f07d3f1290a48561aa7e1c410e8544fc8f47333919d59341bb94a41d4eecd405618a4d8332013ba1427150508b1399e15511a130e5cdbdd0ca4fac2eb9e3678f193527e38961a9f8b6a797e6a4f4f49a40f48382698b2dd258288857eaa4821a66c4e2726446a4b0d6ed4d33c2fdf7803061595a47831f30d145950db3d17a25df3271413b388678d09f0b5f5cf0f5083c97d50f7bf96577a9f4514d7d1ac086c0345173976b4f4ac60c7704a6685298667f874991ebcbbfefb69fe023d0923db4620858adb530b3f221feb395969b2dfb333bd8cc0643a4d91b1b855c866daa27a5f25c2c0b92a281ae796970aef296a0ad574721b770502e3823a0b08bcb835f821ac720b5f4572195c8f376c4cb946ee962d8fd750b69bdac7d699082b11497be15462abea5d9d3f50d393974693ca20cd5a5137642ae41c48334f54c703352da2f98d0fe12d5c1bf78ec4ba0de87adae4ea67f41854974b8d5a2e95ce04f6c35ab60e04064dc58485c67d2346a4b590fc804d565c9c2fbb35d325131a8fc301aee523ca96eb6e2d91ad269a247a5078f65c4a6ca0c6f9d9b6a565f466eb70fc44a8986044576159540f7b6f07f57e2a7219ecaadd98d9ec2f04101e87e006e39a35f503cc804ed94431aafde055904d80120924d83b2b59826249bd66420d1f837b61d03ed809fcb4e5398728aaacd6ff939482bf9dff90d08bd2d228bdedc9be9fc61891d013149dd0eb1bf1bd2b9243b3248acad387947b1639b23e431b313797805200f99ba9f35bc37f2886a4a1462adcc9390d8fe27444a1088e82ff93bd14e96427f7d45b5e6536a9581e2b6bdcee8e5159b2885f30f809eb956e9cab675e022962b018a9af24a4332cbd9353df8405e4530405c5ecc6c2b12188526aa875f37677d2df8cba8cbe8054d969a990f00be5c80ad54bff36dc61fb98ecb59d1f1a80e4e8c267a3303ac27ea1b8d4cef39b830b282086ec23c573da075cbc8c0b2a7f441c6c7600bc1901f30514c414d38677770f0a3d512783bfcd986044ce5961ee385b5b170d37f26920b9ca907d5ef767963e27a6fd443f00006de1733869e3762f5ef10d158ca9c7832edf87bb223406ac48f70d9703860644018202103abf7b1113310c7df8e3669e208441af9d6cf940d3e968133ae044a06c9b6e74e308303f5de21c6bda5b374d11034f758c972180e6404ff4012dd16a8eaa71a49ba3f2fc1bf2cfd8cabc68740f967b52852ba28128e084b67c34601b2e4cc4b7db1c423da5b39898fde5476acaef8723d9e1f6090bbe6f9bf34127a56043aafa164b0a1e5ce6e21f6a6885564a541ece83a7d03edabd1389e09244ce84711f11250ee256f9045a25387325e9dc5344c43426910087f2dea20dd664b1b248c376dea1a18d511ae9e070d8a5a381d53b46def948648519d99d097f32f809eb9424961fbd75e0fc426c03228ea530ae415c7811286630b81c8dda4389469f397364dfd9a0132e7221d66db126b0f866a051963284da32810f292c1d2565ca3042d69d64e23a12974cb9710a8ca576979e68d643fc68266232a51db398fbaad7a4e73ad0bf93de47b96d14d994204656785e8a9f984271b4b1a0f119d859270504dbc5fa48711174db9ed70f50cbdb7e8e947b11451a196aaff00ec89938094e87b5856451afb19a2d248f8dd4a2450a2a15cd13a7baeff3f311a4b95114f367e09502e53f13fff0b8f9f45739f1f9d1917fafc498ec0012dbbe31d12bffcc637319f8113305bc36265bfe09dc02e1439d18956642deb09c016332ce85d08f0f088a064ad26a327274d6c63fc094bd99ecee015d973303ebeeb3b2b9232cceeff7053ec2c619b9667ced61c41b493b43608d723cf091004a8d3d7cfa1468b7f8f25e9ebc9c662cc3ac9d5af919044831656e06c5b9d6fa06d9b49d698243affe45d2c320c4822bf31eb171800008ccd30087d082c465456b4f44b8125884d37e459382ac091727dfd12e66558131dbf5789ce26de4d11ab982974398c9ad4d4c9abb6209a42b7a2811a7ec2c1949480c708b3286c122561f829c85c22326e394022d39ae5311ed16d8e030691b02c2386cb0683165e0e05f282c8c8a5d8491f67644284cb0351c94575a9452ce616cc80aa134526d19662ae87bebde6910c087c3a854f1940f63bd80a78c215bcfe61eb649f76376f86f157ea68d6de65e3cdb920430c7c84ca933c38818284d1b1f0085bb0e03cf290436b8b5330776cb6ec81912168bd8124a4401d7e2d890466bd0dc26862234e865f2b4c92775873d93f9bc5553912752035a76d2eeee75462554ba3c3fbe267210e47234bcb7ff28025c12444c258d213061b09ad97b9582224f29ef5439d6adbe00109cf44c28c8328b627cdf58823ba252d468192daa0c8df076e8a355c18195728c734f2972dccbeeb1f61aae37351c8cfcd52576584ef9736c77865eaa9ade9b2152f72c8ee425d1b78e5611ed72392e05da4dc5f48fa0660718a1b0f71234c225d82e3422313a8a785d2b14189dbde228c2344db6779db3759220f32170f0dca5062917bd64be3c84f9946601451915450cd27180c8396aa8e1b2bc3019cf70905f8ca16ca582f5b292c62638c274b1cc2e9446fa3cae36bbcaeca3be41ba2822748610cbc5279ce3b370bdb12b40906321dd93430e0dad21bb661c5f55f38804562311519cf09c96a8ec4a2efb316b5e188143ffe5b88d304ecec17587ab8e296de40d408a904fb3f29edd2e7df604404607e550ff67d03654c5ae97ce925e2ce5d9b760605c24b02832096860e9af1dcb41d81155942509633c6511542edda0449d0b7ed297ba2845e786e71ed49740892d0e0dad36aa3ec29ee8010a308842f4d3291aa031032c91fc42f3f9f70537d2cbd5216867c6c9712537a18f3617db2a64b71560561a3b9d75a8747c3f40f603b1464c58e14541e781e89b9f0711a17f874bfdafa13baddfb2f0715a07d5d3e3c0a730d742faee8c156ec6fe4579c50c43cb7872f6e629435c4cc55668483a95a06ad76a6e21b756b68e8384044325158393bfcba34173934603dfe242020b26cf2d70185c4aaf1eaff45a6e5c32633703caed9721552ebabb0716d93e476c1aba39215bc40ef4d018140c68be6e5b4dc328ac75f462b1a04a36b6ced3b818535aeee40d4119fe7e7c7304671ed53ea9d84f0d52253ad674fed121d86c972119ca25b0613187ec8e50a516286f923a0f58c71f3b484e134774047226a333ff1e1b5d75b4b2d3dddb5dbf41982cdaedea2652867cfd444f6b30b4c00604849ee1e03db641280a84ab944dd47384c4ec667af410aa984184caf58a90f7115da1b61de4304027001e2346321a5bfb1e3371f22f2b11fc77dea97fae11615e038ea0fafdfb6c7c3fca604eaf84d25b1f2b7330d29d44920f5f8eb7f330b2930ac11e95c0fc41b8a288a40ae42e967631c285a74ee6af2552715381445c7ad70bbddcacd703de446126ad76ea3c8c0b0576a344a4cecf851a29e9e114b2f2980ac0b4a125df321732dcec2fc74dc1967a2c51727d94c24e3479023bc00b80b803ebd91e89733b96eae3da3566ac052a75e79a3cf29302dfceddc24e3a279344f686202a04362440617eb5987fa725f6c6e9c45519a603bf0c10c96e966542ed08c18ca98610bea32fa5558197043f5353d72e6a6920831f602a2bb4d76000f12eb1120c9780501475d6c8b3cb0ef1c344791870554cc0f525a534a97d8af1473cec2b79b658211f331f348c0f2e28a68a014f92e90800ab2aef0e89b7cbff773df5e6113159881b41965021e26c7eaafea538a3f032d38f5d1e507407cc3f1a2be9c0929fef2dc4df5d98f49f7bef369f33bbef5937c6a6ce29f88920a11c7060284ff2b135d51665eaaed4c8f83d0c4845a9af7ab92e97c77832763a6d534e5228683f09bea4c41c4f9b762b8ced0ef4431248105c01de40bbb8dedf6bb1a57be03190ad80d23d44a8325117b824c99b2a4795336fac31b31ed9501196d3c203b2d22c62f35e014e75eca1f3818e3e4a10ffba1b2339a4ca2f03378fb1a1b47e963e3fd3248cbc5b8ec642e43715648350ff2bc9228c48c1088ff682a6adc8a95eb3fa7ff7ef9547381828f276812225d99b789aecb879d9b161593666bc6ede7826062a580b240798e8b5f953cc8618d3d5c692410e7c22938f35f146e66c543eb407a89c0ee7190286c299bd8383181532a88ec2c9d373350c8ffc05218b382aa9341d17ee702d7c6c0ba4c3b2d0f003ec0e17d15d2f270b0aab5c16acfe56126c2c165803da17375f123e9e1c742ceea6006d2095e02c6540d4473fd2a1f09a510a4bf618153e70a14b7f99f0d3ffa1172bc1e2e3296e402e8862a3b861c8f71a425f38bf6d84cfec7ef16284652dae3d10124a5b58175c83c36b00b1a67747cdb0b83fbca94792270287f76097efc588cbe9d746c78a0da0384d7f335c29a8adad345c6773ee5a1b83f08166a4ec07a4f97ada918a6837d16541cf7c95042d038905624307b736d2d434db80bdb7bf5adff72d48ac2cbf32ca2375005191142b24303a76cff05a10e100302d777fba53a1ec35c259c22692ed5db32c8e6b32e87430a657838482134ef93a3100ed7901e2fada7f0a265e57d92c74d0890684e6aaf77f28ebd30ffe9e53c88bae224f4117752534fba12d55d2064681f396f3c92989e9beb65663cfd433be4ee343bbe04c80ef2e398db49ff43466d66a331c8f014a02420ae7024ad34248c088b0045489b176c9ca1f104ddc0ad2d5a7b72de0a876dd3c055b3b6c112d7919006e3a467f3dce600caa9d5fc6dceacc18309d7afb54944d0656b9cdca6dae21a0a271ef301e36e14c1ab35cf0847db08d228bb29f96c8a0c3d4d0fec64b7a34efb45e6fb1f28a265478489201bc9da7e15cde12f209597522843aeb566aaf7931443a6e70c59b42b7b5b01e7fe26225cf1a209b8357aa6e80dc52e0315608c5039e04ec4f318d7a379776aa9021fd20cdf5865b8fb1cda6813f70f9f224f6656f85664da9c402f4552849f586bcc11966e4ed4b91bc184dfb669532a83512d82e3da4b64d3908c812d0bb75f0fa6c84e98477bf0d46683aaeef71c20f3ef6d2c722123c934cc059c17654be4579063bfca96cd3aa8b130e06797ac8fda37c2f089c42403a2b168c10135b4cce37f09e49c2ca424ac3b71be02c49145946ab09161499e1ebba33a5fa1b5a747650db5a7b2119257594b72a6c78c8a7624937ece0d94fae8dcc0da73e706427e3290e00b1bcf32714c095e09abcb4695cec8fb29397180fbdd860c0dacebb98aa35500e04cf6c855cf799bb3f67766c9b3f88675668f258016b1f2a526acb6ea032bc82c6c4910ddcf0b32f3d8d1c6e5110a8ad661cdc4ec2db1f5a1b3058cd45ff15227460c47c5ced538dc6577b61de2c4e179bfc499ce52024829e4390c6dfa147614b8d6994f120108699d4cd009a10cd7131a2e251c8e621f0e2a10375a23750a3b5e9bc87e5a884b46d97cba7c42e324c64f64737d23f2742c0733901e87130a49cfb429d18c2191d649ae839ff473a4099a96cc5126d7ecd8c19b4447876181001228a0a80930761c662f03cc1d55edae9f2d6567284c6747f407a30c0225ed606a59d90a8ad78d8405e8e905e09700eb0e96080a8b3095541f21143003ecd51b547cddd02fcc88123f28ebf621e02eaa9cc11acafcc2a61603cb4b54de85aa63afc34bee07ce65481906288094aa2685419f0b2f10ab47b849fed0ed0e557998597e2fe1545eebd8ef916f6cabae1d3afaeb14f884ee3c7f103210a4a422e4e68d47559e644cf75af2b43d54f9c034935151b533ce228e17ae6433f5f0971965323cb7a27401e3d923d4a1d8b594d607c63bd793bf60d8670fddc196b03d47096b76f748bcb09bbf87d37c21512534ec65e78515745f604ad8b4c724a83b42ba83ad72e67eca03ac8229ff2f7808cfd2f006286584220392c15f0f019641f73c66a935fa6c2ff0053fed9f342ba5a5bce7123372c8d1003226524c37646689a12b0c489b35806888e92e1868034439be4c7c8faab75862a1ab5f0a86a0a664a91e45022024e0d6c2c3b9ecadd129f7b4a417a8ca8b3f50798cbdc2f3b6ba98fd22b7136906c144011f64f0c176583341d5b00ee3a213d1d30fce3618bffd10b93c0f7a2de6f3451640d4fa90a1038a1ac5313a4163d2f32ad4e23078abdc26318c136bf26dfa763ffa48853f21ed1f4d34cab9a1a300ffd445a1fcf8bd40a9641dd452b910e30ba21c35c470fc6a8f65c424100adceac2f06fead6197cd9c2c0fe09fa27e575c67be92a2464cafdff8045f773a648803471259b2b16eb1345b1e687c40ad921d6b6cf8a68f62c95d2395c1b633f8436b7813122da7233bf8980b91b632a427f6f40bc8844826e93d9ef6f74a6f4c69900afdc4d2b5530641b02436e1a7cc08bdfa6d9007c0c45047fef556d11d626a31d8fc89c51044ec8c309ec210ca63105bcb33f93b8f2639c07e94687b6e6438026e2b0fba718a3d4bfe689643a22367431f8b8b7a81c5fa250398df83fed2c9b945c3a92652b6eba23a05662a706d8781ef17f4cf3a1203913c8e10b5af7a7f15f331da8cccddbc1143e013453ff442112083810fd46b0ed328aba4001ee2e06ee05952fd5e6ddbe14800963b6548957578f3aeb458a90242003a73e6164f426cbdb94b5f081b63043b85e90fd17eb31bb9e99de8bc52571138804ba837b732d16c21480ec856e97ab06db8fa7d4be04c7a9910750e606e6fc3e79f1de122e412f92d675793ee01dcbc5727b12f6234c9750c3047d101ea5615503d0aa0fe30621abe517315f7194a49d76a53be8475bbaf4c00f5cbafc8173baf40f82ebbc741a825bbe14391dc30d6716c1a93aab87ea53a962970fe13c59e7ab2004c93af1ff00b4d589b907d0e296202836d7984a2ed64ee41919a3458c2feea00a48bca56a4dc0e0efa078d0fd6d8a7996cb800da5205f811a826ede436dbcd02e098dbd71a5fec6583ab0b41a2f9ed622db9181fff245ab11c7f67101562404d2f35b0da1787d66a1ee99743b721f8ff197d176845890c575196124d3cfa217a124bbcdf16b0901fba5be6d5ac6fcb6cb14738921d923626d72f5ea0ed563c31505a7bb7f5f26089b58ecb949cb713cd5c8a8d3561f7e59ec8f9034f3f6f900c14d87386825dce74e2ddccd3908d16ffeddfa96daa169d56b6dbcdbf4594f15bbcf896ed121564f8eed66e76b2b7370b75d69234e5862cd19acb68ea93d7e583fbb719b76c288c3728213e9059d126b33c3f6769cadf3d103d744f9c1aa047f777834959d7a5fafb1dbba74594d0cdf94052c4a589573c77af1c606d090301d22be868c7216e54dee40a589a93a8ca702a44e474e3f5856b6e245571d3f7c504d67dd3ee7e729e0afb9201420cfa3d0d5f2b3a50a2c2c49951580fa6627d460c6475ca49d822cf72fec4658b2238a674c8712ab4a3ad4f6ca4687daf93ddb91d44f749c9c292f73955f9b953edaf9336243ef25791f1b9e5b779a03e446aee3c989d012e6302dc98fb88e1aef65615d28fe85f34f4872c4ec2e227a3afc5aea6a1f222fa7ecbf2ebf4f20f6195cc91ab9833686661514ab7cc3f16e752cecf81e2176d07936e4b1fade41d8292a7904b9203eba630e8d20386107340b44a83cf199a0b7d3793af8b0129e879d5a88ddc6339d5af5d11de2b25fbfa76a9f3a4c59c82f4daabae5d1b29f49e243452d0e1cb7f6f7aa25f4f0f2acb57e3f14c27802871540e27795da07ccb7ac5041986b5769ed2071c68b0c848b53ef803b736efe377901f81f3fdf51c4d26d0c71f301ca9b4d9e47225e27af184a8286841ca23874b75d99b6a6ed6ac7aca012e6ec83a38b4bfa1689c04b97a12d9a0e500df9291f0cce2a512733a2a4613e9a076418c04f99000cca2757eca1e2da2ecc082560e5b222d720fa4c9d5481183372513991ffc88d26c27aa283145072965aed62563f06f2a3b0ba870bd37a61a0c4f397605f66c0c6d2f13108d12c1a59c60abcbc3bd3736a03fde0f56b47fe84efbef347a2159a9be7d9eaa688f30d12c491709ee7e29f858278989919fa1e490a6073ce1eeece05eb9660abf05191c1a8fc7564c8628987fe8d00178032ebca9d2ca28697c654f0e6982f82aa1568f42c323163f7180d2029cd98301cabb4e8a70753b94c23f3e707da2adbc3d200a380c8205ac48392d0c1f79cd05c063584fca5fed0f07db7591879f5cbfda41f49380a729ec8ddc2a40f615882e87341931c98805bc696a5fa3b416f6e996c3c16d2d4ccc16b89d9224d914a415183561e44365e47f99b2e1f5ed5541f38c7cf762596a80437a13f15b2d1fbd105ac8389dd06cc00dba7b0b864169399136d505a6fdee69d8aa145a5deb4a1f54c59284dd414a6b3d1d2e9d9990dc43060bc77534af9179f44120ca8d753f94dd38bb40c1ea17f4be6afd3f52fcab1b0adaaeb977fce60c2fd10566342f831c4596ec25a535537e607865da71f95a11cb21ae05d0d418a288aee6908f7e7ab4f2171e12381650c9d302945a984640579d2f9032497c840d5ff69adb76a9f0e1d83be927ea796be9c134ed19f1aa9a8e71d8e6cae1df64c18b2d8e1bf30a4405cbef73ba6a370e29576bb8abf7ae3812abb253d433af1b6b1412c4b587201a6c504a34245c4fc4be68de018a2e4b96acf0683321ec7d537d563b0ee0fcaa0c61bb3467b6d12afb9aa81dcdfa719384e0af934f7648d99f687d90c7184eb3fbfe760d10441f87d2a6fca5ff28ec1363fefc1bdfd89c9fb5d52ce7603d9455dbc35d2b3d40c4f90c54c06aa9d4d61c09a542fdfd116202c276dfa081eb765d1a046a648216287d9056b1d9c90ca3ee14a91f8de147bca954e48884e9853241e55f57b703380e016f9e07dcf449aa4a8f7588c50453b5bc54e1339ec9c89451b83c8d71a123c87011aefb43155805811e7f880b9724460641036c3ae9ac9de022a4790d440d73cb3c4cc606b27de18ebe671b96918adbe41d4df87e91ec374c7eff87dca10124861589983f350cf4044225c05feb7ad8444325aaeadfc2da594520620030703dc023636958ce2a7925439ab46f0be7cb55c7595585b51c6133196a6b0196badb5a19b9610d75969d65a1b961850c6133104492419f37d9f0d0f0d4bc490b37c956821b12b87b6dc016cde4cce4c579866a310f956ed010c3fc01b83abd54bbdf2d0f042412693c96432994c2693c96432994c2693c96432994c2693c96432994c2693c930c0804c824c42ff207d481fd287f4217d481fd287f4217d481fd287f4b1b1219140194fc4102491f86c30e730be17638c31c6648f0efce9c8758b3e4f8799adc839674fe79cb3e6721e89f2b8c19db70e578c452aa33641cc41b05b9d372fc72877f8ca647323c1f74d852ac6e0b53d80d882abcd2d6792c956b70d30b905e6b90aaeb6a844ac54857bd48a714acf749c79add1bf6d9cd24a7ef4120db4f5c03e74cc740498bfd6fc608c453f3ae6aa988eafa7a3d4adb967641520690458ebbd167f978b58bdb26810340dfcc2e5814909b87be5719510ea95c7a5c2cde138d225b9002bc781ef5bb0b9f27db93fb41fa0da0fede7ceeecbeb7ceda0afebc2396bbd6d21bd6da1d0dea25a437b8b449c6834e2388feb3acffb3e52f791d0aebebd275cd6ed717ddc1e3d3f33db6363b6c7a6af6e3976758b6385589c2020dbc3ae8082806ad7beaaeee81d6befc538677d31ce59eb4d6f5b28b4b7688b44a311c7755cd779def7913e120904c350144fc61105a55432d5578d27275db5b7d75e4d1506fdf6da91be6b71c5fabba60133120bad5ba9dd4474d54b8f11d3c1912727a727e1487a16ed2f47041ed618393fba4aa5c9ae61a5b1fd5e194b537be519d26485227298b8f762cc9df4ca93d3c5b66d5b28346489d701f9489d7d1e9d1c1d243a42e8f890482410d499f1e8340152128398702879394aa592c9a4b3848708ec4444092252a41061a282e2b112b2507696a7880ed92b4f9120c82253704f078e0c22870528ac0cdce515546e6be7c0da9ad00bb72410b91a0245dfb4d6439ae85a6b8e8730c13344099a538409a79cc3840724143951e4746142892c01ccbdf2e88c00e4c7e8c2490e4b44324228c40fd0070492ceec834fa7490a1e1014ba2040381c4818c150102921c22622050921224c3ee0b14211164ac83d9b18a241fd9eb5930d55716877f17404d001e0e908bdea53f2d2c1780d0800238000d76201349fa59866aaef8384fca3e1d43e3fd897e49be1d409bffc4b714ae45fad7fb11ea69eed2ed7c3181ef5b0a7d2843f23bf3cfd6018e68e5c0586e99509f5308d85339c1a6d98da300d69614f986e6efbc6a112caf8c1623127bfcf7b92518029adce79b6bb5c1f6778d4c798924a23eae392905faedabbdf14c3dc7b23e42a708c5d99500f75636c36d2702a1c6363acdfb136ea4c861fa661caa53a1801061880000262c42840469621035f2b83801805142043464c8c0133f28c19f8da1932620c3060c68c030ea05123d7a881afad31e3001a346ad4909149cde499197ced4c0d99546a66060104686c641b36f0b5366610a0a1b16123810414b8916fdcc0d7de50e0c6020be0c0d17b0d03990106f0b50c24c02970e346a77f81053afd38381c9dfe5e936b6af0b5351bc78e02d49cb3222e742fbf5e04b526e506c3dc31a64ab9e9978f3194ebca6c8eda9b29e5e6370e48f7f63882e5f41cc628aaed7e924b40f085a4579e574e578968dd723b45af3c35f8d0ab07810b76797c4e015e99915b8e7f5c9912cf6077d39549e1286e5fb80d805b8e5938d54367e5c46d07bc464785eb94fcc69e85af7c0b3f3d8bd7391595141573bc2fb7a585735e8e1616be790f70d05958f8c86d6f6131c77a435fc9cc5de76eb7f2273e3ed7513680273ef252e9c443a7d2a91b7fd4573e080c578131cb0fe2628e2feaa5cf3546f9cf57dee4a77f6efadac7df5de5c7fbf27ce4a6f99c7bf3c15d4a79181cf530b8ca733e7ea8af981b061f39e730780783c35019c7d21c3fe4a52779f92b1f0400aef2298f7af900fef44148ce01f03d5c7807bcc6c5d419b9f879e287e3eb6e7a0d762f9959e4b78ba66a831e86dc721777f646732e5f1e7e28fc6de4b78f3cd4af897dd0c828401fd6a24e520a50745e99136e4522914824b2968ff745e49cf8a4ef3dcee14efc8e73b9139fe39ceec41f6d287c77145365d34ff89f9837a6dadd866605bf87a9ec4da56d34153ec92560ed3576653e51ade582397c36363636360159e35a46d147ffff1fb32e8a865398e5fdffff0eb7f8adffff177da83e7dd8debe855378a5bf856a82bd061eeb0d450b798a0f9cc22b140db5246585aae9550a0b15d4ffffffffffffffffffffffffffffff5fbffe7f5d99d0ca54dd14c52846318a51168bc562edd56a9fa12da73aa7b9955badbc370892246f9518d7ca97b7895bb88968e9eae20d66956879b6308a5398857fa75f9eb7777d8a5398f5ae7f3dec4fd67fd9f2ca56d92a714a2165ab1452e2549af255b6ca9690d2552a71ae4ce85d7a46bb1b6cb95a670dd7700dd7582c0e72e83f294cbb47d13af3e346a2ac57abd5cad37b832049f29576e5749f5dd9c2a99cea1d6f13b77013734b0c83704da71ae66ae1143eb9ae7cf5cbbdaf2391ca5689e214ae95ad12a73c4b2125ac749d9e7669977ee953bbf4f9aa347a676b97769d1ad5af2b13da672d68465bad56abd52aa739cd29aee1da8c2fed1fccb46d891b89320ed36d4d94df1b044992a33885a28d1adc493c7413b71586116739ddb19d9e7a855339d531762194528752ea4c26edd2294ee5546b983e714ae41aedfbf4f6b9cf8d64a3fbdc28924ab393ec739fe88695905c99907695b3ffff7f140d4543d15034142da707ac84a969669a9966a69969669aa970284e95ad0f9652b6c0f3e47abc4ddcc24d7c9788aaa168dc8c8ba1efc22914ed533a54ca4ed22f5759e95456bab2dce78ee1148ab6cf8de4ca6c1bddb30de3508f43b91d0ec6a11c6ca7d2703d9b433914c6a5dcce95099db76c95adb255b6ca168a86a2d18db31e41ad196318863c3f5898bebc97038290efbd4d150892a4a9e21ccaa19f126f13b77013b54b0c7929a46c7db46f06d32e9c2a5bfcb99e7eb9c9d2992c5d8bd74075697171c1d7ba6c0ee5663855b63894dbe1621c8ca371e907f33ed807fb927c291ef52495e653f2c1605726d43f58fac53ed807fb925c991087ee7383243fcb56d9ea9773353a13ad5f5eb98b1741ad31cd304cf8e39d84313c0a675bb8891caa0a67276278a203a7114e239c46b81b8523425ae0788933e76c69616dbee1e786d90d4d6e003ac1c88f1c9cd168c4753b46907c9de779def7195162a407ecec1b5972fac0f2f41cc29eb39bde1a4e5657e5f3c791264798601f5fccc0a3d693b54792703d586bef3572444935f14c67ad73164074a082092f6e8044a8d1383ce0177c08416bad3de039c2a38f7ae53962c569c769c769c769c769c769c769c769c769c789c789c70da209ccd662d6c843915f132ff1cb2b09f28fe30faa0d906f226fc4b9f1454efed64b62289a38d1249aba64da5c396fae7e3f77f1f14d38b21ef7b0d6182513ccf9f610f007a5af5d0c4733c8c90c7968d61a83fcdab18fcc2f66f5d0114dfcf291e428a293d1b543def1b0da0839e736e74a6fe2e36f1dc5c4434e72d1449a4ca44945a3902376d18c9fbbe9515fab012a2e96485cfa5a63a09066bd2f28b78b5f3bf99987273d873dbfed285fbbe9c4515f318c5832839c4c11e5c7affda40345300479c845917bde031c74103443babb9cfc0254ed4d83a1ae82fc5e90879cebbc1c6198c3bcbbeae520711c98f4985b1c42bf37272abe55b8f5622de63a54e4050435dd500520624e45c09d4f45c00bb0ab5720e29bdc01cc2ab0b39dbd025b7bb30e6b7601aaf00d139db79d5bd654e56cc92e4015b8779743084976c184644272c149264c828282825098e5c1c1a5753ea2a5c5899c5bc82724b813fca0c214331f2f4ca02d1033d3778c083611927841445781fc89b4ab38d8c51149f46ce1b324a6c44bf65292795e54bc663feb97f7c47a7e663db11e9cb3d6db16d27a6b3dd2a2d188e3ba6e071d755cd779df47ea707034c9a51f0485e0000501dd1e2ba020a01a6ca727dd81eda016a7654fb037275856fdb94056ff5040e3aa68743bd36d0c29dc274a1843713d5ccac1b81d0ebd2f9797ad7d720eb6936cd84637927dee13a75034ed0a0045d1b44bbbcad6cb48b9e9fadc6798a6691afe84b3300d63614f9886a9aeafd2755f36ab2a8594381bb77db366d9fa6038656bf4ef3cfae7bf3e6c820aba2f0dbc0a55432db92fd744c570cad6d0f60641929cd12e92c789c207bf6e94b7bd4dd20c91a6a874d194b68cd5cc04405000b317000018140e0a4361a4c3280c926b0f14800c4d843c5c6c442a0fcb23a2200962148718630c310611021021c418648aaa34022f6afac4071ba8ee778b9098c264c35dcd98662f8df1378f8f03da19433bd1b6b1c4c4810b83cf25f78310993fbd3a618ce53a8f98cc758ec8190baa0ce5a748e0412fe4023a0818ae4befc91aab9b9867359ce2486525e2db3cf52a3873073112f22de0a7c09430a8905d16253ad7e184b4ef232f66ed488c320b502544c3dbb573f94c2945d4218303719c650855268019c78dce4c24990bbfd3ee9ea3b5ee48a560b8aeee4ee0cadbd5c980fc9f46e1ee2427c69c0a2d4e8416f3caa71ef2c99501400e6fc8a764f924b249556efade369d47c8e704bdcf0ea08708eb62f066d9749fe29eeeb2335fdfed048924d02c7803e1398b3f74671bbccbe9c07830cdd5297e22fa03201a01bdb41c3ac4bac222b2ad8071e7b5acf7e51fe911d6871c731fc1a31122734f56c7b7317bd2fed53851a9112737966f2b67d418f4af7395dab44fd8ceb59712900039bd7a28b28335102d86dc2d82310868173323cf8aefad461d0e890a9da0c6bf216e61c6f9450cb0c53e1558153c6fab0b9f6cdd225046acffaefeb50d832a29bb935ecdf94b93d9004a86eba15c94c563da865bb99d790dd33c66749ccf7ae202eb830f70fc9115ac9be6d99f11663783f81101fb3633b3d268a3cda3d1038a91ade0c2e334c204259c672db1684e6cfa281a0674f1161622bcc7624e89a87f630c26a80f9e134be0200492b650f68036729ccb7700392cae7f93b45182ac14f39f4c287419358979b5df3b5899d888bfc8a69a050414a5ffe018d05001fc509492528b5385a774cb9f6f30c016645b96c7a8c19672b0e2eaa2ecd3fb26eac24cdb89d6ab6127eaad62cc7e1b9785cc9e191579596bcbbe5c1f06c2123dc971fa707a185edf73a54fbeea10ca0cba7b57315dbdb599fcd14c4ca3ac989c316c0bbd55e83e8eea03626e7f99053c030401e15860c11e08eab05b1509fdda93634033cfcb601bfe6580dcee32116fb154e876669649f4dfc92d3fa4f24c1787cfc2f6ee3e3c3e721c61f42faa96f50f78863efab64a9b9db256242d3133f067d366b78951c7b2a7100f6d5477ec410f1ed02154580b46ff2cedc343ac74e5f03df3728cde8eef5e16d38b2cf04178e1d66304a9e594ad266fa51ffddcac82bed9464ee99b1473b0c605b1e9e1977103c6888fbafbb1bd6588fa807f41776658301d15275403dd21f878a79c9510d3e08329382e449182b6e929463a52d8039f94fec47c767a1a787bbc0183171eaa66ac7879d25aae02077f67407a2983b142a1c66693cc5d9b5edee85cd77a9cdb5d8c514e15353e9c2747140a91ce4f9a06bbc39ce7179544a0ded4795b9cfc7b5d78a51515a9573d2cb0f5222cf921d0e0304f8e09a5ab164bd98cbbeb80d0595f9c01195ac67e6fb622b748894b4785ab56925ac560acf947ca53a05d992b57bfd5341ab6319e1e30d55a103d23e2c438867be83dd76d15fc784ee7aba6b79855d89304ce5fb157e834cf4edf650a9d42de89615607d45ebd4360c6d2d7673db443010c579acc5222519bae26a8613d72163163178e2a65ea531614d5765e959db2af427b380b8f257f917afc2467efddb45f23b947ef9015c641330e4f39e336e66b50abc747466507eab06a4436b64e8c1d0b1bdf0ccea3aab4807e99bf45fba337f9914d2bb4f5e93d1912d791226bf26df45be01fc0407f089c5401de13666ede8ebc3163d6147386b3e9352b7427030ecc73cef8e12427d568cdbbb6c3d97052633dbc679f2d89f639cbb84acf87642a59a61ad237a02f1b19e0597342d21ca19259c96b94fc490dcd587bcc03754d882e4d828735dd958905edd3349aad21e230b13cd48ce7b901a069bf6e471246b7c536297c9c6fa6e6dd784a36850431bdd226624110123ac2d60beba371cb256d2712495c04ae10440c8e0af9915937d88e4447f50f7981cc3b3c910e665a62008b53dc3e3a15248e424c8baae053eb93d4f4151ca824b654406037b7e9e4e09ea9162ae62e1d3f2ae852b08e62610ff10b4e28d16bf88f08f682bbae609f4fe00585f11643dff22106ea8231379d0146ef9fac7102d46c1dda09b5f236a82bd03776b970df958aebb006241d7e84219c7d294c36c05c1b0258c14af69cd8e6773d73b0f0f67137382451afde9aed4e96f95ece35df45a2a11bec3e2c9e5555237f32595b707d5f779bae23b6b2ad0dd17eaf882e5e77346d1abe24a4fee74deae7038c65e816a53cde3d1a8f739910d00ae098b757365e9d01f2ec566a92e5772c1337d4b4bd38e64415dd4ddcf120476f5d67a9c77946edea621caa74c3db009520fd175afd546eea28215c32096ed630380ed5c7e8da55e470f2548df452cc3778d261804c17ba8af501ecbef713b990df9c0f2290a39b4492bb226dd5acf12da8c0c44d070c5da5e5f38bfedb7e07574c2b503d04cd6f9501d8eb6199960096a3bd8495e300881c567d05966ec48c4958f06586eb10ca9e63e5b0b157ccde58369c57d5101305e06802496f80836ba4a43db2ee0a654279470048d8508771d33ad70333eca7d7bc0970c050e5ea6554e61b134e75a8b05e75ed831836a9c7dc1c6542097ea28319401d015e60d5ac3ad229f82eda637a5e43c240bdb5d51d60499d84401e328ed0ae23ec6570ef33d0a6348b347d6162765a664084cfbfc15085125ba0c1c9b3feec43497031f78b211c173fb2004b60092c37a85ba3e36b1dc66c295059d4229985b5599c1a63ccb300cc1df6af0a27e86f34a6e1de280f2d73cfb1004b780df78cd36132c2fb46d04070477f08497487c47484c620636ba103aa2cfa47f16ebfb640bac4d10706e400eb29e0002a53b3469d14a0165709e71d3ee079b1b626b5004ae09429e8c6b22b745db08691d2d9a1f560f91432712892f442d14bb0bb35ba68ba8c63d18ac76d839e0e1b3325c1d29b0c87f72fca3137e5ec60ecd0898b8d9c82e54579d25e8ec0c361db1c90fc04b8186b9a3746a1fc8ff1a51719d7b89b8c1670030f384b597b92102b01a454b72a5a3c0c38f24ec760911a861349315b49e161aa99b23c92528b86d34046487320cdb72d4add4e6faf774aa6ccd499b2046c542ad1abd81ffe4964b8952b6914e02797bda803f6701d0c83a53cfcd8f70505020cfc6b0fc195ee14dc251383cbc3053ee39c34ed40deb62440091894e410852196a4872dad591800b1fe93ba4dba81c11c703dd1e37b6b9a8d6f87ccf9161aac6f8f78f7ed85c0c0f2eb18bd460e7c13cb107f4ec5949705d9c6b7991e801c3e311b79b68c3d9700003efc91acd20259a55e94c86e7fb5007c6b4284492aa48781836472e86916912ae365b8b0e634efae3648c4d8caa2b8709453aacc0415f70693453f29aac8e613dc87489bcb091bcc2614651619a4f97dcbe2385571179b07eda9b69b378324faefaebb6695204e453d232200abca6ca5f7f0683fc124c00d2cc858e8555452b980ca311c161ae20bee14bf61323e1270dc211ff28510eb8f9a8289e1d5055b4335d0ab526295b4cb23930f24b0239b7aabfc7e2fab824985fb97f7070399a1dbd93c4920de1deeeaef092039b681422e7748e5f8809aeb08f46a3ca68d26bdf3d8b9301a9ed217230679486e8e06d6732c6c3d125973f1e3127983cffb5a9848f7ee7a0c34d9b5e9d6c2f8afa3425f8967d3aa5d383bf9ba47b8a0d02a670329ae577c53110f87122bbc3f906f6f7ae03ff0455776e822febd7f5bc4bfb02eff3593fee50e814bab9c74dfa786c17348f9fbf15c8e936963b734b864f5f5d4f2aad1eff9f66504b8c49011b2737f1d8835736f79110b8f4078f5f24098d8e0be37f0b406c0f78202df1b3b4e5fab7c1349791cd1f821208b170fa76ac71a0162046800d605073864f600a94110f01fe12149994e00b29d6cbf4252167f2654c83e5fca4f9a4103d9e44a99ab3205213b1e29434106d8f500a70f3a0f2a8197f582e2fd91c1dce2836de5033e4582fc84077cc939e0fdbb2b51e052606aec2e164c806585df3b4b85deb93205cefa6afe95a68b4dd9240adf56a2e58b83a858a17a59d747b66f51d1c53505fc7e337de49df4412520f64a99b3b4c753d64ab96c7ce3a7843798b79d59cae1042824e952a39bd847c505d7fdd7fbb3ad230100b941048d3d03f60176c56c207cc097f17fd589344ea0bb42588a8d1cedf352563cfe840854b9894805ca34430e63454e00ddd1184e3f81ee9472fb146dd8db556bfac8066e71fdeb381deeecf32f9ec0ce381e726e5f08c02bf6978e3a4f0ab6197139cbc7f7fd537a8ea124983fd48f42133180b6b373497420dfb8c6152335d39ab5780bd44619a46ebee6a781bac7a8538066e1920628ab471844d523d149bbb4a65d5d66c65e3eda171829649e3b78887d1eeccd0ae78dae0b682d5099648607910d5b7e398ed97868bcf1ad453ffda59f4655504565b89193f993b432bcd60141155472fb90d64948665b12f5d28e1cfbfae2fa4991a767a30b747029f21e1de63babcbe57d4b97eca7736e8e31410a521949b1c81737746a94d1e7d972483ad25fe59a9fa0351e19ff8c65399b18975e7ca477251eba9c08dbea3f9b246145a401050401bf476a4073d633f0cd43403ceb70f58c04cd671a919fc13e1d907694c2d887a52846c25ed11b583e4c048115a50d4b2e5f2cfa1575064b1b2ab6c1e0a1b064254879ce51f01a447f92f93a7680063ca2fb5cb267ff541da1b48561298be92e42d015f2603af320e5c21bb6a473389c9753936038695e44e942151257069003cdf625a97f082fa88943853dd42d23475857789c8da4c6f81a5bec9836a8d276585a6f87a5e17958e2b91605084ed8b65cccb05c66bb60505c2adebb0fb7d84cc0bb2f39c8b649c8f19030d814b04427e96a87c8dec81e218dc7201602fe5f3b0e4bd312af0b6e6a65768911b3d1ac2f92836b1e3d02d30d15246299ab9a3f5b00d8f0aa4483746817ea23d703caea5d1e4e3b08cb4bfef5344fc516f2b00ca654793d91118fce2fc1baccaf8b9fcdc3612e115d296c67871b96571e710e578c71c28b803e7a904a442deb13bb8a866ee38d5f6d16396bb9a5800296dedb890412c0156e530b2df1bcdc2038d703cb7f153edd374f8f879a139dd737ab6aa96f2e0d0c6a1eb60eb48975135c1d5ed28050054cd961140681489ac3b9cbde18a2075e26e44656a922b7aa9eafa4f483a63b4dce838ef783d25f48da09becae71dda92411a83dc464d301773814924b65a229734ae384917ab622cabc25ae8394107269ec1606cacaa89f4baff6a2177af77d552a394dd2e8f033e8d291275adeff82e6fb51675bbac0e8816d262c226cbb0cd6befd78e24da68d7e32340fbec880865fc7158bb721a554e357ea472a881ff9463cc73aaae50c2c2ed9ac3d2603dcf8f7deb9e61fb3200d85825ddebe89a3d09a701a25d12d60c740ca71e59c5531e0547d97bf88467491302937e453cfa62d2b93ae275bbdaa9e3a6f0bd5d18d8954d814bbb8a38d77a0a3feadb3c93db05ad614212b960218e3e1c674571b3343cae3f1990dc11820342edba4ff314499f7650a646e074e9a95d3b767189d12f4a0d2281cb2bbc6394152da016c4cfb7c138a3043825de8bd2546fd28fe09b245dd43e8c30e83ad42b48ee9ecdefbea2c2885a4ed7af3a9a1e9047cff5e17c502163871559f4fde276155392c73f62e2d5f9cd5e16736e81b78b89ce69d592707a269ac0a762bb48316b0f9a76e8e2e511c047db2590afecc546ce5ed3ac8bbccdacdae2fc98301fa92755aa98ed0267a4ee877e3392ba53873826e560a175d2f31cd1c4406f995cf916815c792ed3b8f26da0df1828b195d63065049ebede9d0ddb0800f0ba6b30a0bac641f2091d3d5729966a468c58bee79b7407a4281f3ebc04845de3575cc93b12369b6cb5cfbfb0cd3b31c9dba564ecfa42e3bc28332e02db5111257f86dcc16a3cbf7ef53fff7a35462fbbbae7af5c0593b92f40e25b25c8f987e32c482d14327d90709e766012c27c53bed6ee584e4e29fab01c7c223bd6e2f12b93280514ce86025d91d32bca1feb4b6df2a183bc19336c4c49f713e4d66c81522954826477651ac1058b9436a2d3024abd0b069530504ceb4533ad4c3c445dc1471d5043d5f05d0911aae37f58c3a77c0858e84ae99db67cfb40574ecb29b9ef8e986d7fc05d819604e98c79767e172ce8a30fc77346cbb9c0b83b52ebc9951eef60095ac40e87f68fa4ad9d3a03a23b54baaf9a65ccfc7eb578af7ba9d411459b184abeb541a7565cb7a62bd01b3fe6cf62aea51d5190e0eb31bc2b3b60bcc72922f691e9011dd5f3ab9255582e37db7a51567b5fdc1b2e627c8f8b76eade581cba6283d27e2490b786ee6bdaa8c0b767bc2b260318ba42069de0efc160a82bbf3c256d23871dfc0aae0429db7597eec0e062074edd43bcc83eb15596aa4521b4790ed1ad073a035b1a0cafaa51f7ed8e9bf1d498a6ae58a8b425bd4913a07c11332d45c7d7f6d43cd2cb745df57219400fa889ad7f64b471bdf17c51ee199fe850a8336fe8166d08988972eb75393cdf871653d6e704eb5c0b513f21aaa2d211f838949c7991d2c2c831d07491e8c6c8629031b3ab5a604b6a3988141bccc8c64b90c8caabf6167f1e2fa6e44e431faf143921cf0d02f90d09e8c6d60ea58beaacaa709507c8eaf81fd60e1445420bc895f71630b343e7adbca1bf8453e1c238b6d98258b935b604f0ed52a1fe7b38ce66049873cd417e4c42ae038a0189ca2573e14aeab11d0411b1e61e699ff66359acfc724ce5a30271bc35b9dfb6d079ef5e564281d3cd9daa82bff23a79aa3de8587ccc9d9bd8f420b483477eae966cb1ed750e40afa1531f35ae8f03f5c6af2f155e6764c4d7d148cd6dc434a5ca9967e30f0e346c6d11bdfda671509032c6f94eb96ce4642631eaa2d2f86311219602dd1f6d5dd9fbb9ca2dc8aa0546d1c15a64d5788adc09f89c585a53f901ad9e4a1d59eec459390bced55198d6af8d108094a3809bc75180cc84a3608ccdc23abf51689013bc04bf5ea635e21d1308c6ad5a0c4914114dc83a2da08010ae838f0636245e4600b10b454e424b8fac93ac4fdaacb109359ab85f0a9ad11b7c87212c8305e40afc95674ba961b83a59ef5e7adf88d8714e687657f461e3932fc02c7bf3f04bb205304d047678c4282480b54bc8e4ebb2712400370802e379a701b91d4230206493fcf1bd48fa58cec1a3e6124031081c35199b6e39aa1ea5d5b7ccb5f1a5f094ed7a7e86e1a81e9e3ebdeeed1f020c54e7af57c832dc82d3738fa2d6b0af077f8a5a0c49d74a05e5ffb9303dcd1c48a777e7d2771590e19ace2bcd6e0bbd80b42fe446d409e575f93258d2465959e8916fccb3b223f7c89a922579110a5951d7bca75a6f4cb9ee7710daa534e0cd5ead163de36c029ec1fd9e85a17d42e07ae474a79d80c5bc965d65ce74371497d80f54fcf637a248c8094ea0cc31361108c7472d93e00c6f5029cd913e7c69b1d2a3d7fbdb90af394eb86483102698ede2ca0dd8dbca510187f5c2b11602b233377d1aae8dc5408a7eb47dd001a1a6141d7eab9eab278e1d41ad66714e3242215d048f17023f9c36321db5ec2b8e11187b503caba6c81bf7c1bf22302ddf2a0d59c800543514a55b06761729bb24e4e68d7da0684fe66c7ce7b6f2dda5f486b6bc6e98504c2fe7145b76d444c498b39bd51db470d8d0016933aafac2e7fcb90750414cfb538b590bd15375fd31b156bf368c5a0822e9a2b2a83fe4e2b9ba853e8ed5154ed05b98defb1c6a79d2a01744b299d7ac75b05ba74b7853e1b9212de3bbb6072544d3b5de43aaafabe40a9cd487d22528b1cbdbe8ea32bbd0ea6b9aa054ccbf3ee6e3ab0b1137b520da7471f3610a78171a0f5cf49fb98935f177555db6dbd43ad3a833b58bef7d484e09620ea991723cbe1e8c9bbe5367d14aa145750a2117122f9cb2b05a6c0bb22a37cafa678c3e2a914c1c1c85ef8c9675f7ddedf459c9a299e75f70fc9bf6bd595df0837e87d11ee150ca9303fd618cf55b5865b9d6b057b6dc4ea3559a35666bab6aa23affa458f49254383cea091c0a6f99bc2276ac649be81cb6d80464676fdc5e09318df2a1185e2c595b9fffcef9e84c4bd58e2632aef1853aa93eb35a1b884e341c8c04d7c325fb946400282282837a19e85e453283f2bc3064119d29174966e019e2ddc93e0b23038e9c6c30e0f3a9c48b672d56b57dec7c74d057506752ec9e3d1b1bf40af8ccaaed63e7a383be823a9362f7ecd9d8a057c067566d1f3b1f1df415d49914bb67cfc606bd02de59827fbca5426bd7141defec82e44df004f48b784c2272435f8afea941f780f842bf331f9ca524b20897b4dbed9a2eee47271afac1bf6dbd3ec58264dc3a1615e3bfb96d4cdf6f735e07f8a042ba497bf157b8c4f33909f141819aae26562304ab810bb94499435b48f1c2590a442dd8b8e18cf9b1c121da3539bd5d1275e4ce4edc401481ec9c50d48d0ca77003a29e45b148a23af59f79ecb784a2a63ce6fe9e604c4db8c735457fefdc1889e23369f14627c0999bbdd09588bb55249ef26b46be366027292e949a29931a4e9af879326b373bc736ac14b65b591f31f76213e42969f81cda415a1d7a39dc886e75c46dc1f81178dcd94f339ca9c4ca7b721ca1aaafab877a707053b2fbc50ce2e8d63824841c74e009d42681ae637d51dc22e73a0d729bd57e32aeb897c7215a963a830cf44f91c81b0c2b9f5bc296c0bdec9e33fcd287b57ce49125f5a2fddf8da3024d1fd79cdc938064599438e17990f488eadf478ee9cf9ef42972370a59799a1bae082f68884dfab25dec445cdc3d9f6fa9acd422b564cfe537704e4038c46003c61b96773bb8a86be5aa70efcf36f1bed1a7c4bcaad864d867fd87d90d70c15a889ca7a9db61edec64005c21487cc082b8bdeb512f2fd3668304742681f5b8e42709053e705256f90326b17cd40921504daeb9af5538048b12de734d58e7ac3a0eef241d86fa8055c84c3832c424187ba0c180d4fb3e9b4002d8ac5e42d8c8a99e5821d76ac315615e2e0f63ca1707eab8dfd6111a55c86d7f1d64aac5456c15e6b32699cdec6638b41f0c7ab26c16141217ceecf7d6012a4bf35b723a1a0411827bd30de846a7706a3e3241ec41a7879762082add7f3eabc08404f36e9bbd6e05ba661701ec2ea6cfde0684ba3dd6e61b74b320e028befaedf2b97051090299edbb0016eac86c82ee0364b63fc4982d11ec8498cd641e40bb5ef6868e32ebbf503d50ab16d62dc1f09f119af420d3ef290a77d24a0f68fe52208874e0eba659f461b610402838db4477ba9e53b1c931c398710f1743a89508f7ee6fcd27e35f9d0b61cf6b5d45514816c2af3deca8a61c0603c44faa47d284b8db5208f96c5833ee49c7a3ecf4de09405c3db203be54f534a1406013e0484cf8b5f280a84c2fcaeb68b98c8dde691a342fe1531091d15a1ab035427b6b0cfd78058dbbda13170dd49d3e41a169b830195471b8ddb6497546c92371bd20d67353bd2644fffc202cec5cb08635da52f54d512edc20f3259437291c3efe5ddeba56b788b986eafa1b470e1c3aaeb9df5076109afd026cdab52b0dc248c8dfe0bbc90fc23c902184c8dd620d910b7790cca1b1b9fe9f7ad79409662df57e6caf61f462ff8d95dd080637e7168e67dee0e896bbdd866bf87b92351773b6dc201ca52aaf0f90cee71f8408ab9047ea35533fc65f81feb82a0b963114a14f5cb789bc16a69213e2179bb0f79993ec3929d2c30fb6d1ef3d644f8c608aed5144b70f5a1bc902dfdfccf22462f54cece21dbdb8332d0bbb81b6cc248b8ddefdda5091cbc31650d67d5387b232301cea9b5bddc9dfcbcfaf6fe20eba829f6389f2ed11d5a8223172a410ce0ff03a32466014a7dd80c487bd310d9cef4c6cb76f579f9758eec71ddb4b1091c1a4e83bc1625abb9e51d74f05dd3527cb6a2f0e724fbe5770d4a35dec58bdd73ac760aaf57263d2fd8ed57bbb89e5b0a7dcd57add8e75552054790319337012adb59ddfdf84ab76bded29e31f057c10583b7ab204c47f77d1ad31a20df0db87122dd383fcacbcfe6be78106f7260acf885fd8978570c7552fc71d64777b21703719519c15397d57688f9e84ce58533ed8a5942fab5ff2894dd5e099c8e6c58f5a0585fa7e39d63e976b16a8556cd9d16a05acefcbb1deae91c636b5388b388dc68845e167d3a2e8a9acadaa0362ca08d04de0d0fd326a0014f47553335263b4a0a272466c0dbabed4390c5fd1fb5583f08e4f327e3adaf529497de6a9e9c8a83a4d7b845e3d236752687913d2da0bb2f1d611eb6720b1d349745ecb28ec26e05e5f0e5b1335c60153d7da545b25990025c2d512b1905361687d13f550098fa4c0fbdf169d4eb2d11154fa2514ff29006282f0cdab4df26b924a27c1ff5b4dcfbcda8465472d704f6285abb47679df8b8bc55b54cfb473bb3b37985965df740224995f4712c45a15d20018c13b1beb23962f202c16ca4da595b6e88620b3008ad44b25244db3d30b5c10da6a204327e74d8490731eed4102b16117fce7fdb0de0c82847fb007da9b73ba5b6bb570b0906d4f9fc0c75290b4a3782c96f29557a1ab5e5a5d25d0effd49b0a80e696643423ac0597799b249a47998411036d516f506b723bdebfc9e10c8496350abc6b8db0ee3fad8110adc695fe9328ebcaa1432e1e10372f5d4ed57ca45f188361c06d818fac0066d1e9dae0e778c54e96a92445a3c413df081352485e5a71dd5bfc242a2683959fb31f9bb45892f09fbec9298988815d07a9367faeab0171f65ce1ec792881ab710da5a1da1ae379dbefe1b4495fed9c5cd04b162343bd9d4e618570335d1ab67faf7e0d99d491b744fa6aab487303da1f5aca0e85800cc86241476456fa100b4936b1c86f8eaf4919203d569977988e8f4c364bcfdc1c891b13bab4e7a663ac28bfcf86952ccd1873abfd220037c8989940794392c57e4e4f9251e5b450c1ee10e705fc52e298e215a7e25f51894f54421ecad52f741622febe40cfba706641c694aa3cb155d7cc0b594005beafe944d993295a6672510efb110869b92fb14471004bf1b748284ff575db52ec0ea8ab09826e80cb910086bb7b0f612aa41a25802714bf00896b3eea2a064dd9ad486420e1b22977fe0bd5d473d4310cae423f408c1c10aa7f62206b4c132c9b8a9e0ab315e9de95e922e2026ae8bb2699af138212f59a9fed92e4c17e8534bdd868130d2a39694456fe433ef4d2738a078b44208323d5ac820ac9379253bea9fd90aaa195db3d820744b0b63a44ebe1d3e45f37d922fd66afa5e55fb4eac3be117d26ec51a1ae15baec80a006b88ac930a3fd7cc3439ff3a3e8b2ab43b87973db5413de52e17477cdfefd774a0bd64760abd6807ba46c6df65249ad93951d3a44404bb633dc32f824b16e8b5084533da338e0d3cf53752d8adc8116b790b0cdaddc4c24eaa824b95e9dd158a28a3c22006cc09119e0003285619362b13689b86bc59aacafab005029b8862536b68d7feb7d4fa29a9101325e1880098ea250711a655c088983f807704e347924e8ef9029b4d6c86a70a802031ad3660a4a02de88ff1d3a9e9d74406ea6e2e6bca50f32df5cc930430ff51611c50a926dcb7547cb66cf6c6cf3d2e03fbb3341c2107f4c001fc58881de159dedac25d4e70fc22cc9ebab2d7feb338a06789d501605a5fc059770534fa5bd3ae41f6ae953ccc822dab8bd7dd1792998dd7e60930a046a072006cda47c05072e441ae955a4e2816c4484658b11527263fc4546d9722e0f1a75cea9003d49eb218eb457fe471bbdf6884d13c55f94ccd61b86ac21bcd3b5c89cfbddc3cc89f86f36da75e559a4db2374f9e6d632358cf7f6f41b37d86aab1a19f9f3624c835bfc5deb9c8135fc669b1fa53c34623a8610a067b497e5ff0990ac9a5e43558f2f094bbf09661fbbd3e37a676117955e0bcdd617a1c410f41ae1afcbc92a6762fa92efea6f0969880049dd919a4bbe27eebd01b6739494ad67a51a63025255e93ecd895ac12073f32200c0cf1511c39c97234ec9e848864704e0029cbf8821b97c403676f2ca35e46928bbd64550be098cb3396ca4a7445c777329e529e4920c3dea39a92bca55300bc531252d13e1066d622c7a6d416de1685d088352870ae10f2d656c5fbcb9c9f75c944b024befd949397eb1b59f24f80e34764ed963d41c10937a657af5ed573ae0f6bf01f648b555fa0c9b87316719a4644244232038aedb81d0eb0d663ccee13db3177a25a6ce05b77ce433b761e5aec01040aaa68b80d595f5ed4b2b497336b387afcd9cc99fb4dee7b92679dfce28e85df0244135b492731ce12c96005f4175c2e252417259b3a51e36d45b6828627f76dc216512c0e22d7a202a6357e112210810e3fb83b30ae6a7cc848fb771b6f0fb9060e6940de0ed488c54696531d062bca7240021cba4b49a441837f93dd5297514142eebdec10e39f09df56e21c46c2952a12c4081fd8a3cd809c772e8d62ac817bf8afe3e7dc0d4453c7c72a3480ba2c26d7e00fffabeb8ae539c508458c008fc9a328115139dc87a55c2eb7f1024646ce002bc0b2b84a3ae1df81f2a07a02d319232e823a160a0fb3aab1457f04409174c200505fffbb6c5a72b460c166d0f716679ec7c457d911c83c8f42acc3e46863fd02d98b0425c3a182836d182320d1c4eea1b52e00adb207f78912b329aec97d8fc4aa45dc6a14032e611d987765ada3270b46c6f9d3b373190d6617435b06d89b109815f141da1e41c6409bfaa481e0d0d4b89bdab2811a8cc010cb6c7a883f823830c6f500c8cd5c451423e524ec00069bb5c256f7e11975334710fd04d2b00b894ea49e81747cb3eb107159788e566f477b06e00a943bcb0c7c43ac2493f1bfb91aa24b1918ff83fb52bc30f3cdf9e46a8acb3372fe2f97295e9e8973beb94cf1e2cc36ffbbb834805265c8911b64a22cc341d6590319e55372eadf4719f05e9c6f99ac97024ac2a9575b701615a70d19a84fe11cc1396e804958f910cea0b01fee37ee43a4fe6a15c5918e82186e44ffdaafd72602ca425cf12deb466142e36242e34a311f56e56ba0806e1f1b7d047f1911b4cd80afd16861c0bfdd44846c2291dd9b2b776b054d05660514093257d041091ed0810a24393973e0635af994c0864d0d78d8420d8250839b14af811036c418fe46063600ff060c181f03cc0d11dc20c5c02143dfefc9706f8c1a0e794e4afd6b0aeaafe1e01e611cc2f5934b295dba942efda5f4d8126bd45a6badb5d65aab44c09c2fb55ed256b2aa3cc2ca62945a3caa5c6ed5bdfc3196c92cf308b32bf3d9c96eeee011488888bc22fe23352446a1454d930e35962ddf478f1e3d70625e74c8bcbca4a009aaf84bb983428cc2e7c4232847549675adebb22ec6b02c77ac4ec723ec641d109010904b64c41a19f1084742463c1e12cff5d12c4df308350d042a015d222c17ae12175e78018617aedfac6df308371b03c7012000fa7a8c42862eb975a18bc323b8e1bf3b5f0170e8d00544808a9823c83172de0f460716940f544e8c3a947420451922d05246d56c80a294e083063cd840039a99ed0783c2710339a59cda0c2a00c1e442031f38989073055b4a1000f14141be3c7c6ea0b93be03c429ec9344051276418f923825c6764205321db9067c043c60caa40a3d180106631e2916f7f6b637429e38fbc74e5dfec4909618c565b2da374faae173feed831c6f834c9963aca6824602131ffbdab4493cf0a6481efff24957982eff8f0f81e2424da07327c9047feec87318384518c6ca9e74c14c52f914a9404faf6b602629c15eb50f62bcd1daea4f49facdf0999211a447bc6f4658da896c776e91de842b82e012b8a88e43cdd611d492d514a54d8af6f55316c4559a141a82cb5cba99dc05a3aa2346efa92befc119deea3f9b144a454fe2b19b97e1db8378b53779852cba29452aabbc9c24f3b3e6a5437ad0d78dbc23ae20d83588c128f7c637ffdc29bbb4f3c921b9352ca8dfd9d17dee69c73563ca21bfb4b2fbc516af1a86eec6fbdf0a699f27d2b1359260b0e4e2ab5e5abe9bc66d3c75a33e5faf42b4c8385bdf523ec7a4b578fb253e0b77e84f5893eca86d8fa87b12ec18f7d89f5281bd335608d62e4ea8ebe4031b2b57c1143eb0a1a0c607c4af2d443ffd1771619ef4444d294520a03fad557ef426667ff89ae83278a328ef2eb669b0c493c9d9fea26d94aa0672b814ff22826eec3a828c2381e55c1269493f8b8890edec9009ec7c40842e591c7d58e281a21794c238af00908c088e1f91898e44738044f248a58023804cf247e95846782afcff8fafc974e911f7991f7119d4951e4799257e17912ed0207f82e3eef79a85590909064b0c9dd24a4c3a8ad8920cbefe88c88c6a56b269e60f06375e32448f03b19c013c5effc7b2722cf76da61960aa74ac28e9f611d9da97ce010e0961d6976fc8f93701651fdf8037827efd5fab3d627d9bc54bfda3a8cc2b3a30c8bed1383ec71cef7b2441189d804f75dda4a8eafed90e39352b07ae8d9f1452001621c11e30f5db793dca4547765e375a2059574174880f85484d210d518616347ea8203254322f941ee686a73d2e69b4b8bb3ecddb98bf681912db7bcbd67373803049c848c23e0779e0da37c2eb1ae0242b812c2f7b493a006820c25490ff24842696f2a2c4b99e56712938fe525ff4a4b7e25adfc2aa9fc29535bbab6373cc8f1a554b9da0dda0dda0daedda0dd502acd544abb41bb41bbc14f805039fe1ba1f0172ffc491d65a8166e7c125071ad1b4544e0a3221e534c2d231ed5117ca8a5964f06c723bbe9c7a8debe545169abad9b483caae2a699a07e7ec8154e3125c5a36bd387305bfcf9a1e2510a8b479006bb25b4af56d8fcf943e8f983fba4cd2054feddb98cec3d5de28eb22fc53a94518a09c02132093c133062e0bf3ec62d8900feeb5560fddc44c5fd51ddf247f1c25852bfc6e82ea59c73ce8d524ae9566badb5cac8e0e0a4525a0b418569b876fd6b611d0aa5d4a6a8b4bfd034ab01c5c8ae8f62648fec915d35dda28cd30da3a8523b89f464d85708440124c7241089144a09a584524229252cd615bce0d802d80fe6a5b46f86ddddb13ae7fc78712b7e5d16bc2c7859f07aae043f96f0cb7a6c5b71afecafcb7aec7a2c5e11bb34663d089443f5ebf176c5e756b8156e855ba13a5cea5c8953e16a702a1c0dce44374badd3d596d61d4aaddcca8762e172ead4a9530f55141735440ad550156328546b0d857c50d906d80fa6871a1f68aa0f397ca87189b8d4a71bc8c5c2bc6a71c97befd5ddc5340b27617cddccd22de4ae429f6c4ba57d43251b228566d850c90a953eeaae7e75f577f7b3ada6a3f545da58c7c24939ab5ac85dbfbbaaab5938c9925f55eea194504a28a5842355899c09e6b82f0b3f7a9c3172a68a336dff9a7d80fd6052367a90e9a1655fc711a607d30ec07e30291c7c8944d1abbaabefc2c24f96a559d0f74a732bdc8a6b21caf8c95de2897cc7e1a90cb918ceb4af65299df152caa9dceae1fd6927a5d301f2a3bcf0094bb719310a774171c1953815aec6dd56581857bacfa95c8ec6c5b815ec769c69d397db33eb421a2caa4b2c68a970254e85e34cdbe2518ed9d28a76960aa5b27231d2a23f2ff875b37f2dae4477a4e6a49306fcb1a33bb6d754a9831b3ebe7eba3fbda6a6bcba63e1270b67fb732b70066e0512607ef55c299e70a66d29a5945bc11804a1a1635fdbbe4da568ec04ec07c3c30e1e5cb6683f181e66f0f0b2efc61f2a5dd429a594bed3c09edea7f41f86b736ecb1b75b25b920a204a47d3ca2b8b02c7d2b44236e2b2a9b43f6a395750ea5ac885f91644da2bb182a6dfa904208218410c2f8d5c3ef28d59d845b9737ac282eaced2eb0433456e4c7c0a696b572d7c7f0b17e5d4865576be587f5abee42a55dbf45b46f9d84cb16b26b61a1756badb5d65a6b339e93a4d221ab4baac75fdf49f35f7817746745e82e8bf812dd7d4a1ea4bbd7b4f61f7d2fd51da51fb21f9a0167a0bfad2d540a95f40afa19e217a608dd7d4a409ed7e8d74ec3d6c29aeeb619fb2b2c6cbf327946444240fe7da8a58fafd4be3452b9e346b3c548b6ebb32d3fac8f6dd6fb06c3cbeddfb38d6c225b48650a91a2a87e89483d8af69c0af09678d2f9eb69c9e7dbdce58f2d8dd81d2d4188e1efb69b8d7587318c752805ced07568b7d548b9adef5ac80eb27012860eb0cf02864aaacf6f726b73fe7cfe459d02664763ec57b9f1772de4c63efb6e9bd9598372c82cb0afbfc1b03d376921b7995df1afc0ec5f58c7cd8f9a1e334eea2a993d3f940267c0baab0125743f447a8a4fdcd2a693524aed46e17ea1144880aaedc5028a3f83ab23cee878efc95921a4b582d0561742eb62082f9c5dd8fbece5f75e7cdfc3470f1f3d705e625e74c8bcc4bca4a00a2c3df81e7c0fbe08df8befc1f7e07bf045f846c018dda59c30ba4b39279593d25aadadaaad2acbbaf7b2ee75618c6119cc72074464840424048fe026f26ad8f0a11662262157210a598071c3870df88d1bc8e041e959f98ec0819cb3488dc28edde5efe1ba0fd50d6ef0e0c611760c6bdd0af9bd6df7add4ee4bbf18e4ce4fa0fbd6d317f1e4fafb9e7d69975eba513edf3e3f443842403a39c3f075adca563aa54728a5e7dc4083e10517449480b40f8967442404a493ab09320c5fd7aa6ca5536a80053770b87163dbfd606ee4706b76fc1ba30eb995c83df708af74db8826f169ec8ecce33367e68c68ce40db626748dc9678e2f2bb4b23ed8cb433d2ce483b2367b61c796e4d0e9e0272769308b3977212359f68b1d8238aa2f511a7a09dbbb32de26cd1f2c41e3127e23c06cc8f3e9c8445ab7d6d96cb203d06cccdeeebadea336b671abb23f3f8f4f8119b639bb36cd746fa44217794646966ec77d50cd18feff1e1b123923a4adaf129299ecc8824eec787d3ca6842aa2a941a2f53d816f2f963807ce71d974420e4f3ab08d12a40aeeffc8552c6699d6659afb7b801d7fc6b3ea6af9f7fd91f655f1da7c8f47b3254ad09215fd55b5f22e2ed42d955d36dfa775cfa6340a25c51d6e0fadf92f72b62bc994b39e7a494d25a6bad45a85c6b45f8f91ef5c329a3571b9c4c5046697da8f42a296b959a442291423342a4504a8d16165aa2a63d35090824209048334aa79983738232cac9992a67aa9c0a57e256e80e7a436ba2686a3ff093f6033ff969da119868608fbff31209e6ea2077ce42512816168a6289a1288a83a6e84b0e2a134feecc0c4d88144a09916cb4d0538b0d7acac1d2c252a3c5c6c905454f1a4c3573b0b4b0d468b1717241c5b0b0d468b17172418552422a14d5c242635a586a9c6c5014c5c14251a194d00c6cc39bd52412892594426b2e1bee8ba1aba7edf25d4e2afc88e40cc4b55a0e72e731d5da1ca3e120afa87edeea5f67d452558927b4d2b8f6fd6b4bb5613915aec4ad404d7f501ff5059d2fe24985557da10101bf9ada0e72fd477d6838c8d0fe097d7f345ec3ad7034367d981d62a88f6a8a271df5e1312912d0843ffd5149f1e4c1ec50c3632a895b995d4c574307a1f6186ea59e6e8ae56a40e415b56ace242f913725a5f44f2e57bbc9f2716cfa1056932bbdeb07d46dce9539abf7ad82b5d6c795e60a67aadbdbee85d225fb69520aa59cbaa45521d3ef3c25372d5fce67b1582ef5c2467096738647b06b5e57c4d715228d7cad233f3d33f3ec1d07f11017717af228334726a6233dd9b736e7cf7fd69d28c3b4a7941c3fb6e1abd67a85481e2acdeaf2babc666b307905fcb969bc204e31f7bb7d2a82f2ec9788764ee085dd19c9f810511a37dbfe9cafdd643759d35e31b5b3d488a26bea10a9ea10c956a1dcc4bee742fb2344a2ffcf27677b2f7ad27a64fbde626dce9fcfbfa8beb5fef6ab1cdb6a50d49163d3f70b1f1e552fe2c90672c9ef65fb57f44b51c6dace4d1885d7709628a2f0e9c32a5569500e594f4a299df2aa011922e34a95335508b912b7c299b2af5ba63b146e852b3d6e853371256e0593b4eee04a1f19203a38dc0ac88b8e0f101267eaf4e8fc0081d1c1e15624a43db6c4d9f2eff39cb5d7b8096846c60f9a91bb6ada12fe8f281a79114552c4c793417e07077bd991b1d81476554452f104fec5c15e4870a22863d9d2faeeaa88a4a2a88383b3e56b50e8380e1c921e5b7e0707c74b0e1d343a76676b6ab815542a4666e6238379bc7862831b1c34768c222831c2139182bcb5f4ab27cb9d90110af280bbeb484827671e093f44b229a578626109777c42e4eb26624fd8fbe24988f436a41f2ad9edd11477fbadd77312216d23f4e4949bc0f050835c7294d93925dfdaecd15dfe88e8eef3b565c43e417588743d38fb6fb6b61fcc4b8e7de1a5c1e415f6e77ec0dc59269ee4983c134f5e728e78a223a74229da0fb9fa9772131b327e900db9a3f061d8e0ebed3fb46dd6c9c60a22e2a142c62837912f6d7ed10bdf8d905dadd912869052488c93d85e92fc8b239d9c9dfcff7303c3e6698922f9a1cd53e326f2f58672f9f75fd0dd081774271281511784511a465ddf619c2d7fdb4262b690d21622b3e55b2712dd8dd8d67b743762445b55771fcb3a6d295f934296efb9d9f2b19cf1d8d8f2adad0b8111eb8c2d6355d932561af2ab2d9ad025fc55eaf5993c3822e2084b961863493196d5e36c76a4c492abd101c932fc9dec3b137010d9d11d67aaf994b7d3493eb7c2ad702bdcca490b2f607ce0e119c54596e1cf7296d51c52c9e685b3adcb282eb29cb32fe119fe6d059675b20c247b909cb30c02821f04ca81ce07e9bc751222df01a9391301f910900eae19cb3ecb42a1d0d45e9be0ee9e4d3c1f8752328c2d9c61185b9f5d9f61fc252286b3cfacf919f6d649741ed35df659f6796b21b799256289886ddee281ce0622e5ebb7996d66db904ac5274229d95e365482faf2400e95a20885fa702b930d66f688fd606cd03273e0b0ec7c6ec55a6b337badb599cd5505b1b9b2d65a593790adda3a2b23665df52036e7cedbaced5b4c83b53b9daf7f3bdbdbd5631e03e6fbf61af1643a8d78d2c1273ab333339c1776a38ccb49bc67227d0432ee7416276102e52c5e9bcbd8163ec1ad541cb4169eb020199933c9bc00d4015007b4293886b37f7fa109549572137fac8ad95e9140f0f9cdbd2a7832f89788336a54a4287294ab0075134f2a0f9c77154468a2aab1a294e1d50feb45e5a37ad9a0e82f2016393567fa01a57a79a952511471341db9f31f5c70f80f27689d3c055dd69e93909bf5daa62908e4829923d217140625d119f124269e7c7e8252717efce12f1c06ddaa8f9e3151347fe68826f3e7fcb1e77b668f3de7e4b1e79c3bf667cf49b3e79c3af6fc69b50f871145b3dae41099461ff5defb5df4d1594fad88b263853186396770eb8b1d29eac930c48f17e41aba83def0a0afc671388b3fdc7eecf838da1072e7278a03c353353858a2ac14ca12c00b3e853de04adc8a64c27d31c8f7a209e44196df8976a5317ab4f355555582f6443482eff0636ffbc1ec30b3738864e910cd5ab420d479435508f9ea9c64fdb454c72ab80c0a47eac58484dc790c484566880b3a9d38d3e662b812674a5d27450d23443a854a3f851a303a9081c9010b42251960415301898e3be38497a2c86a54c8f6af77f66358ef253c7a4f24b25f6109bc67e2329e89fd2a57b8b2de67e091f595769528b23ff188929e0cd657f623d67a644b97542fdf7cafacaf6c65dfaa7e6e9eeda878d2f9c9b32b1994cb928db24221515104e7cbc0f7a9845b03bcd05d4a592acd39672a4529a5b4d65aab6fda15ae8083934af97685e85badc189c14d2613ad733351b7f83402d1c48326ead6b969de98e6cd8fec26937d31fdc89db3587b5a424e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e4e0ea8cef83f95eb56468ff3c87e7d8958c1d8d10365c4260087b8bebabe7a1557e7271537c228a3db91bbcc76445dc6dc741bbd06bc4d7589fd15d64d51354551ad45616afa228aa2e77a0b2a4d0bb9d3b4903fc29a0a85f801227b22a2c807b9134112699edce411721441eefeadcdf9f311ed48828d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8d8dcd75a1e8409d8b9b2d75371fcb3fb7ebe639e74badbb7b6d6f63a64b2df921f2b3ec3d6f1d10f212ffc84bdd89e4fbf3ef46ef7d12f9219d97f98ee010d8a5e5ddeee3cfef773ef614db24c8cfef6c9d8b1b07602f75497ef9f7e75692fffa5992358afbd75f7fbff3d74d67ebaeaf17ff7c100dca214f8dffea15f8b35e41f272eba67e1212fd3cba85ef901fd15244b7f09dfd0cc932795d57de2cb1bffe66f2e785e96e7e0bbff9a54cc9f23b2b4bcffa69fd05753aba43e9e4fc59e7cf7690cfdb7c6cc357e7b107751fec3b98b62ebdc2fa9bc2d2d7042f79bbcfdcb09f9de78d02d9d77baf8b9b0df220ba63f164e7b179fddcb0ef6cb9cbb4bdf7af79dd683559caf9d89770b9ddc7c0aec9d7356d8c2d0aa02cf04ccca9811e52609a1ae801052722388c0c4cea04738261c96e0df06a2d884c0b02945282296599d41d4ad65863bc652f731059ca0ce68516c48920b4205eecd084d0945072dd1896867214a3f54c219c926efad3494e92efe57bd1ab9475ce5929a5b4d65a6badd65a6b6dfd5b5d73d38c90e3bb11dea86a39e78fea9bbaa4befd92f928dbea1aaa4631b229a69138d260779752d2543ce79c1a8dc594524a692aacd1e4f88e83934ad1547864313c1acd9f1a45870189526387039a1044d084d0840042e5c5c7bed9e34a34c0f8da7fb7ce4ff86f99d6a8442ef645c164332300010001c315000030140c868322913812a581980e3f14000c8688486c469c48246290c4208842d2288308180220200030329244410060a2412006186c2d47a1bf6fadc9fc89dd6ef33503d59f3b4b99f3ca565389604a018842cf492c225b24a8b6798de55303f923f1a840705a46a657a2aa694209c6020d76a09aaca521fbac9663651f499c8a62125203318f46c69dc26761855b07dfcfd84c11b1fbfafe8f89a8d27d4b20b15ccf175963c7f9b669fce59f3c93469b4dd55bb40494c1f21b64edc23016f1084d82ceced6ce41d6344f8a6cfabe6c4eb01bfedebea7a2b0805b8a3873655ce9e841141e2f6cce1eda83379d55448558b8a2ac4c6b4016162814beec003222576a4372e1e71ccfd4b403fa3fe3b90def157359b501df5f964ab2df2c5bc854a70fa80452353b7ef2649043f6dab351eb617416de1fb1c44e29e558ff82dfe0b133bc1747865acb04f6a3f6064099b383f27e7587ed7979c51c8f2a4c03788a26d2ac50c02771022608539379db30f7786b18bf7738c721a0b11ed7dfdfd6ecd5712e169f4733707f790be97d1dbdc27fc9c820c40e10ffe53a046f7bbc30e90879932d6449aa985c6afc1e7ac8402c5aba40a5af0cf9a997ee5b73b9e023605ca182128100d9314211aee3a56a744cfe84618e2bb5f6194367a9c856b9cbd85b260cd5fb11a6722e0b5c6822228056543854db07fc82851383935b860ff9a9b6ba8e3745f575bdcbe94c2b4fce07e443ef2f410cf0ab77ba8b667c3ef74d678f403c860a792907754d479f163b307eaf27b96900d46f242c3c615576c4d64c7cc3b3e311f9c73882a4d346025c731d40457bcdc33e4fb5adb51728357f44b792d07f9aed41070f74f91ef0af7ce76a910d3c7a86b06469d17d7e27d40c5b457a7be5408444b5ad6a6a53a02c789d219fa18769a2101d804c3939c74f60dbbcf2e8a12bd71ea1568d26de623b534a3df3834cf06cc725918ec74e13ad5919d1413961cb6134b8314f4979a3db3b64690b883d543e27b3ed7d3be3b1cfb70fb35625050abad896992e841311c8777415bc6ef7271efe4364dbdeebad5eb6cdba478ec4df3c76376460f973338516895c70d9f79339e5302e7906192bad8dbdeae49cb83544ae5184d41bea67ca535ac766fcbb5cf2aac788640016286f5c5c058223541b37c3d2f72522dfcdb25c8b34d974ed8707f6680a520ea4e446a5d3ea8caaf6aa23ae40ca40ac4c80b5870acc5f1356df5032091ee226360c99d87f0a7d003ca96650cd03a56aa2236c28985d3251756f881e9a18e2eb64ece3cd90155281f0183ba976a9405ca50270e854809e12704b45754744f6930cb4e6b054e77b29de23ed97d770909f436bdddce14eeb90ba0a1ff301da558c0b83a2b6c22f0e4f72e1f6b643bc3f3b3aa2192c89eb0f1ff226ccf29c16fbe2b9cfb2d1841e423576b14d6fc2a49ae4a4d866bec33f94a2ea314f6e641411d0361c0727d17eb5848f71069dc9a8accfb257d83ea5a1a43febd236b413a43e91c9eefa69f2d5458e0ad97aa42c7dcb14c16ea915cfda9dfc35973a205d45dfe36f0db86d3ce9200dae687b5aa183750694d29ec20ba1abc822aa580cfa7f7dd0e0244e9484cf4afc1dd456166a98ecf66b3a5b2bdabbdbabe9355e5b04148460de51a6002c58e58e57f79896faa0562ab4bc1b555f78f8d664125513d2f900d1a8eea035359cd553a395543f48375b0cad49f8cdfd54d010a88ffe636b33c7c25c63d523ab773a0d47842141586b47f69e1f918df42653dd4466dca6dafc7f38a1fa8d30cb723053c3b57bc2db617c61eeb36816c412ae5d46a5d1e3c4b35c47955d9322f37c4e683e7072b5ce59ba06b7b80e76a181af7f7cb39c317857ce9c478c62296fc65c118aa616f8324bfb6a4588e83f4d6cfef58569df38d21d8b0ed04eda087b8ed1fc68a9ebdcf6deaf5632579901c6a9c3890497a1778818c2d60a88aa72fcfc698626094ac50fa3f3d5632cb4aefe622a02fcca32b145f76309b8b837caf3fb4062830e16f4ff293140e6387f00b4294d8f1d551cf33398ec74bb259756d3f2e259a2c743e5239d54eb360fbd81ce7071918f63d7029c8f3ecc3edcf861464f9548357da74f5e159c1fa6043d92ceab0b0fe7f48761b12ec04bad4fda92a32af687f1992d26b999956a7c3eef0ab016bde8a12166930c498c4ae3dc148cbbf5ee4b76aebb0c26ecfb77df91797fce13e6565f806de8b78d46b7604953704a4309fc966e08196d06b5998a4a73da6b4f66c83a584502ba215d06dabf4257efc7048c0a18a6089a0bdc5cf4a9f3fc91390de7657eade0051a3b4296fe793e58dd6e8e2bee9364f8b939484961cd175decb881ac935c163497d5e4b125a7a4c2a0b2b75f4da149955591daeadcf131a903ae5da5f69764f3bbeaa8cc61776c7819a821a737dcbae051f3fd93416a33c542635b0e65bb18c0cd8932226db4651b6c6e57e577dc8cd009e93f6a2531366c4f6d958b144e587f9bb59737a783b6809ee53a1b3c17a455b686973333d3d2fff7d15a6c58c7da4ced6f58dcbdecca554eef84fe5780cdd20784b3eb723e1969e9c67176d4ee6f7dee07ffc85573d39a0feb7ced0bcc224829920ae796472a115f529187162ad602f12c804860fbe63f05d39977794f04f0860ab9eee9ca831c4bf208522262757ac9a1f4ddc44be5db0c6339fcb585af4d182c583b4dd162b28a1583166afa65564991fb4d52130311fb9a900b751d5c3a5f9fdb46f274115145610634fa8f663857766644d5bc902a10b04a2815b21bd7f1e451932918bc396e950422b1da1fc5163988f52070851f26a800e23e4b1cc0517f5383f0f27194e84307c380034e88e53753645fe029329a97810c085994c4efc5398b4c1166f1e7a7ec1c53f45a541c4d88a4d128a6c2945304c45635d45d2379bab9693a6ec33610d572befc043e83608fa01f40bb5e48ac40bc366287b3ea8548f1cafcbb4b5e58e379d94916f42e97996edda678f967713171c5655aabddedd287c25d1817ee7191ae7929f64a17620c9edc3b06b88c9b81fb1b4f9f1fcb23b29ef410422b68ab317f9decc4d1fd93c3ea98f527d574ef6589ec2cc1b68e95d52a35da101d8d42cd9acfc030b55aace71b875add37ec27b532e6e5f637ad5eb2071993985639957fd0abb42a1eae3b7bf2f6a5a86912bbbbd8ab1f79df207dfdafad76a272dc92907021a5be174fff6020b618d798601185dd4cc4a6d6b0c6799a32d986e0eb526387e4ca63415ce4757b6c1c624fcc7e58ce9f1baa352b429b0d2d0bda3f10efc61c7be06f297114ad9cfc7939c8e61a31beee1d2c10905ffc1d3a70e2309f7fd498f1b1c617bd80000d1a3c2850f86b6787813366005e8f66db1891b29a03a75a6984b95d5b7b01f4da6c9fe02d80d0e1e574e8add55920b55c888ab73b9239a8845f08ca6bbc0284c8eedecef5ce812b8b34400779ca28ceb482646b1941c9f40aa2ab5aa75824219acc5abeee8d8002c18034932ee4b8769dc03c06ef4ba89a81695efe5b6b1e143656fd4bd2286365223338c115e0f88b0628a9269a7517e18c17901cabc53042d80771bde86a94eba5bb66464d4263172fb9b7daa6a315c6c40d9c1bd35c43e1c8ec1a56c144ae16f4b2286573cbf09b9f60b98a78f9dd0159de998edd9ed02118cded195cac4267517c400de7984f39d61953d778e8cec9d9af43376009403589091669ebb8f44c3190d001bee012330e409a0361cf2e8590783db380055524c5ae07c4c92b08e16a1a98a8d90528097c3548b0e0eeb635fe638566a28b601bfc3e256856e94f001ab7bb1b78cb7eed0ef1ac8d96f7a1a83b3d5ab07f79bbb27a95f2eba90e1430097ecdc2923bb52520187df5814add7865ae127a2c069fe949666e99223c9a6a158799445ab600bc215bbf3ec6fb3ca67585765f1d868e2b72dcc6001b52ee83f00a5bdb7f03ecc98a7bda824e4b56d1736bc15703804e46d979405a19a25a12d78f65a4e3c356e4cc6f34dfdb44d287230cd1b3a93eb65eee402f7c300afcf0cdc9035f07a91ce3c716bd810207ddcba79313ce1d66738d1a1d6f749cc21350f041c102055a7ef91ad11ed7191e24f919603e76931400ec00099cd9a4a3e16eab5a0661cea2670d3b412a2ba875e92a545001dad32b2c13030596e823ca11a4b2425c8207a94dc16bf65c6398fa20f71d1322cf442aab1520c05685e65fa5b262cc131dbb97ebcf6b00d70df4fa18ed52343ad4717312b9f5bcc1d0263aa9ac35edc66a0848f916f273442a6b6d531060deade5d0de69c16e15f0fe2afb87189eef320151a4b2264d6c5e9817a7c696a5b20a37c0a19a97296ce296cbf595ae568dbd936510e5eb4b59ef6684752016667bae0d0a83d0f49a9739608ed35fc24f2a2bb6789b5f58c4177b92f419014c153547eedc114709f8e690ca3ab945bcbc53d41628e094f782262ec1462aeba3f3a86ee8c1d96661e99892647dc17fdd2cf54147774c2a2b6e0ea9fa59c9cfdc626a1b57a1616287426485ebfe29c4907ed68dbb39545315b588ecd7974ef3bed05ce6be3c6595ef0a1a4a992b2a58fb41b6f9de4f1c00c89eb2ee1cfc516d72c1cfbdba2f519596df3c651d7b1165a7551dd0abcdd5e3779994b24f34bac57f70510214d79d94ae540af594d5e0272db3dc6710d795980b3514e6cd2143fb943573d9cc6d3511d05be63c99ad92ad5fcd75413314ee8b606c58a18e926a0aacfd3ac7af5c8f4dc71f8a61560e46704beb296bcf782be34146c19927c4605ed659fd4db755b0bd30bb216e391c62ba81d65f4c09f17264f4349108360d7f23f89415b67275b43c8e84548dfca65b7a0ee213db5c6ebc8744ec8025be91bf33f50dd5aa8253148a1bf35356891dce75aeb34e26b3c4c443b5db1c5c0268c0693952dc0c4af7d68d7ea230b4c12399b0b98a75043a8b7e14c7032f1469e055e8c2fbbbeea2e2858736f22f2a533fde1846a5e2371f8eeb2b0ed2b747ad1052ce422b5d3446c5c531ea1ebe4e3eb17a31a3e6a658f7198a04ab7f98800734aa443510ada85137c2b6646fa5e24d2ed6b1f7e07c1d76ca6bd417301a9a5abafe04158af1be5b1d7ca44db8b6517b6cc737eae8ac058ba3a618c4e6a8dd3888bacec7ce9928ff3ce560a3e7d938bd216e0437aa885e5d07c04e631f882c7f807adee452dc00ea8b23165f2464fd83345f2d5e349dbf60c886b0e43cd690db82fa7cb5d8036bd027e889d9e10a89fdf423f4dd01b48e8fe04e4e67269d1f70493b80abe5c747c8fc3094290127765701ebfde5bf3064724cea96ca8dda1ce40b4a341fc895abf4a4b60f52814383c1c24c7588a8d43cab7730206646a1d78d513383e57f3000aa03e1f15d3451243bd08730c85408c283fb6811a23699272ec2e0592508cf3723448e1cbde72d7a35098348ad93decce4349da5f6898456480880dcc262695a52798ebe1101d6e7c091a31c6acf7113241c691efcef295547688fe796c1e27d93ff5ee0fe15fe88f58e1eeb081b78850471f15ac9b9f3782ec73f6110310e9d01b542d23e91e92a0e39d0c588fa3a377331c0f82b00f6ac654f204989437aa86e5a39b1f91b648cc69289c31174b16ca6d2608370b727feb8531cee723b29b8dae1da6da1c855db99732e42c2e8fa849343c4910c279fdb38cbee4d96703d04f78dd6af31e0cfd3748ed2329c6d62a22ce84d0c410a7f0935a82d2920b2faf7cbeac3342fe438236fd4318187c456dd8373263075fe285bc5af553d1ea34fd1c51a2693303ad31d05e83d02fcae01565ef831e518044ab835f1364ae7135f96ee41501350b5c747d20c212f59c511d94830ef2ea0cc629791f6fc7ef9a1477aed27f99b9f7fdb58f5ac410f725b8e7ea785fd2c9b100739652426c88ed599a9d2498003a45d22c632f3bf9a4e7f9c1f4c4cce58bbd3087f155bff2b1d1a284daaea0acd96317f6da2a580b7c06e043a566048982ca74d024c803d5f0d0d361ceab4ebd2f2d23c1cd5715f03760e6d386fc42f7339a4d166b730a7d89ea6c2eb4c443a363340d2f8b715b3cda744741d9a382cc9de95f3c8e9b96104c9532f0e252c5c4a13067839fa7d7848ab03e2990c46a949a3ccef257505161c48f98b92de020f794307e3d4392db19f4009ce0e9b3807f972a3c364e923af4f90b6c88fa6e0b16747e4c3f5027d9f04fddd3790eb6ae6c81508aa90ef3509e05d3650e5f23d5226f235b80c146c193b252f85e60e5b837be611f7b527cf5242510c03873fbf18b9e6bba6cb866c8f8951398921639a48944de6acabf137ed5a72ffd4c783a6619ce344e613dd6d82179246c2c62b57eebad1aff918c51c07c1f0510278792a45532b0a9915ea089295676d7d3d48978381a772f5ad92788b494bd84a114caaee282767433a189006a7f09664800a9d69852a40c74913cab71e97d2075185e77c7ee83540ff5fdb16d5be2490f1a3858695d5e33969be348c1973c6a9cb447c77cfafb41529351341589adc2186b2dc3bb53e6630a88ae07c3a090906830ea675c056456d55e4aca66c87549c0df4379e041e2cda1ce41cfdc4d0f468fce9f21de4f84d1a9284a2a80d058437799b2fab11b03c9e02c61a4b8622f89aaa7e6d1b84fc7c048a9f60d6d989625e143f87a9a3a4da32a41e06ce86fe34c02df31dc2fad357a4c57652ce037783469876e475fba8a536f3d7c966c10054ad5c290d9f03f149cdf0f6285218828d660642fa9f580a8df6c7be3724e8a18a885d867efc6121ffa267ec3f8b38feef9b4c0978f9f94bc9f2b45d3fad32b07d772be08cc0769580b16c7b781d24a2dfcbd77104e090dc2782311ae1418a046962cb354f3e2dfd1cd539363300940e8f29fbcd76c81763b80268a2e388c6198f0cf5d5eab05602c664444f5d38c0b7cdb701e8c11501915b56d5bf1644c819caa3fa9ad74e196a59f7714eeab01ac38d4e0387a14a4abf97af5afb4161bd00b68a1ff03a001a3f2e82cb923643cbd8b6c6fe3d58b4e994771a016824b5c53992b6b1930af150e2a4bd6b2cd826c4cafc01617692a1a89ecfb5eeb2900c65cc65638f0250f45126224990bd96123d49f7b74dbbb77484cc8e929e774fd95109e7c7feff7c30cea44767c5a9353694903e38b946f47f8251394592125662ffd30cd34709e17b58f83f2f2786ef743abbf19bdcd17124a2604336f23f61088c36559b993106bb078d53f5fecda582a092193e68f0accf43d91c4c03ffb32975c878842086a25116fdfe13beeb021557d593476e069066f7fe333c3f143d84626e08246386a68c9913b2e81873af3ad558dd7fdc4560d79bec42315c0dbd3ed7846625a48899aa9c935295849c094f400261b1b021b5f050d56fd118e4834e9ac20a823fa0fd48478ff4eda80a69c034a6f1934d8e90065e8a453dda55f216a4ea179af822fadcec36dfa6321a79f4f8984126e1c473f68cca130c1d974302613e8e7883fb1141bcb06f0041280fd86fda94b083d04e8cf8248033c2b4c3f65b8c63975d950de86e0188ab083d03c48020f42ed74020673501b6d6c65410c0e8682aa9985873e081892cc83435cef6b0565f8a5a12ce7f50f9944c7781748f004e8aece6f8e62d5bdf58d5e79bb9eed724a884f5ce459eb360659ae15bb029a51bb761afcc773031996e9f0226371ff9a101b1839116386253c95234d5e5f15d56515a2f1a75a49a0d9629b68bff7403aa60d84359fa9e7fa39c69341a8b8a24670164aaf72e7e605fe8d88db98e90671025f197f004c0e0dde9293475a1df3b1d5cad173180a1d6541cc3768318270a91ea3d9c002148488dbd73a6560557258a8c41b5c31595120c6c3d9391a81c8cef16cc66efd3e8c6ce76ee50c43ac073b4f13907d8c77eeeb36f593e22f5dab57d08230f67d2e3d74fba25309a0c8c749a819bf42a7c90e566106fa6f8c81f09a70457a50e1d1c0ad013a875f06725a9e77437a39f3a3f813677270905cb13b0f496a19163d6ab31e123df5883edc2ca10c6659653e5f3eb75f2f3292cc8e407c23252ead49481228af6a224390b691305f49187bdd238b9daa8b58da97a7e9f6b304f433f233381f7949847ee9ae2eca8cd6dec84d9e70264d46499840d7117b556e46251af45f0b6b6923f1f3929192e7ebd5d1ae9e0b485bfd104b546745a75ad2424a0641a4120e67e979f18851b6b1594e0a058f6e0fb5eb97317f45ecdb124f22a1a1b712da84dad7046947299b759b5f5aa49da26378bc90829134c50d82666a35442d9d7dc1b0284520a503cbf1a553a51e85b717e510a0ef8c3b2bc4c154f69f1ca52462f0a9bb0f9fd7b9f7a9e9d61279f2a89db3138c0aedaac694cd0156ea30cae7d26d0a0f8d3b0445af83ba879e0aecab7fb6032ac876548a7074762ce73210d919d3772ce5bc038110672afe5927cee2d7d440c80e044bda1f9e1da6896720711e9b7ab6640af112e5decc7a8cac3ea21184594f616d0c943d3f21fc54844d61cc338ce1ba9f5ab096f383b5e6771b02b203552677782ed2f30ab0cceb256ebc9553e2c3a37f93493404ea9c39a300b687802f7ac740660bb953b55eb4b995317d17ebbb9d170f5e1852d8862ce2296c566f0c9166429584520d964b091793502379898fc8877f277d6bcf1bd76b8a6f1f226fd8bf784c0b5c66af60a00f8d53f225b6fc4ce73ee3b0d3b3026eea7018940fcc6127f3a747cdb29281bf15fc185365410c6d226b920628645a211ff3e9f606ccb67bae0c263fb7569e17f7efcc8312fadf1b071b4507d6aea03055a63b42a2eaf12bed2ae8d8b13d378ec915b4816838ecf68f4f003d84c473212c30d89f84966a1e07ac828817496221dd099454f5a3f0b724528145ed910ac6f0f22f45c1611289025c2ac3f80878f4a6317a5894451a620c2119300405802506b688e4ecf1371e5e11e2f57c0219e3ed0435af532c5c8441b28f0565cd40a21c73eb4d920fc869574cc36a7f85815be03de6a720d129364165459479dcdd960958332a9fee1c8d87edf88fa958106635c2a559c27263f1864ee5a098264f9c27e9797925453f6b41270cc0f9b16fc6c86f7ec41700da0d0a900c71cb67487b687119f144bafc438d751dbc9b6b885a997bf2ffdb2c7555ef5c091fd9004d79a7726237cf0feeeb73ffbe7fab2d6d2caaba1c1d150f01702e8a9651a217114f359951e6c489bef3ab77eebf7c85006fe8e87eb9044666eff40ddf06f1433834e507fb60be9888045575dd17acef55ec56d04ed52129ef472f1ac24f0c86c94485846edab18de094f813aa69a71bce98d54019cb2dc45a34e7a4b14c7657a1ce52e53629e894076526f74cc13c8f957bb89012f3e843a09bd46e8071d821c8f1c41020e16be033b01b7a5a5f304565aa78a8b8c39c72a3cede0f6483e1627136c53c699fdbc052bb5ceb179093a116b125569f43be1cd8651255a45839fa56c642caba3fa8c0185775926b0cc63c70152dbf1d69105cb20c3497d2e9b2b713544895eb8686552ee68e365276752b3ebd720c4a741d511548661f4d35894281cd4828c1772d33b783cfaf0f0d16fcb45db367716a30185cadaabe8d3924011e138c554624acd28d528b7d0174abe323fada0eb22c852f713977e36888e72cd1794623540e0ec95604d45d146a2f85ac07706ad74ea74c2f97ba7dcff6470c5e33ead6c37b89e4c1256d59182d56c27d68cac2e4b521a8986faf0ae4894474ceb5ca5e2861e2f19798644bbbb7f646c3a1343482464505ee978cdc731f1a7a8180d65a0797424b295ab43e15f3d201251c40c439b13bce374f07683f9613912f03726827bcd5c1e27ef4629aced0f72e7762487b708e16f928208a9fa5a4aeb5739bc38c3255842dc16c98a2b639e599eb183d09caaeadd5146f11fadb1f0869dec8f28ff7c19e01298747d826ba490a6384bc4d7c415d04253008456bb4b8185ca41a1d602983312145e96eb85ce4ded8224e407f057ea66382cf9e58ea364b324726f1a9a3bcef154d5246f6fce8a54cdd36773a2b5d489b37d13501330f2b3027fb74b336828b83081796e0dd524c8d84c83ce50980006c0ad6f7cefc67a0323caddef0cba192523a866ca4c5765f1a787c7c9d9b69632019ab942c98e5da551eb4a95554f0428e20b25bef97ad53ad70da348062059c17cc0d50942d38d744ab824bfdcec911cf444e06b058bb5bbebc21b9823a26f4c0b812707423de40711bf4010acb45cfd8139dcd3dba086f69f67d96732bb3065560e9a7068d5a2c8c1991f2862d3434d2fca11cff8418233c906080e74d22271f75407ce846ecae68620dad4850505ce44758a17952184d26c9bfd60429a391bd1cd28c5c1b8221bba490587bc0f875642eb1fed895ba19b51593a1fe73c11c68900fd66d2f9df8e95cef115d7ff3164995c9e1e8d2723162ebe81487c5608334f1d0b6866f1d52054299f03dd0c4d2f11849e36e974a707c5af33c6dc651d410b8f31479d4df88bc50aefcb44b08971896ec98ac992b81a0b982f227e46a35e50ad99391c2d8a7a87213794f5cc7602b2cf98017c8f3afdc8d6706e0a0fcbcb7a0456c7c1c289720b0945e4b6eef62118931c3a07d588301a2076cce2e01ade18603aa5d1123e79d757de251d151ed89541f73d1ad144850cf317a594223e78df132e1f1359f62d5e177a831d6668b4d290f8471ca47900fad36ed3eab41f4f047bb32d4ace1c48ca73e6cb1237b3c9879c69fe515d240edab562b2d969996b08460dd20fd480c68a8c695a40ce9485169aeb4611eb1c8073b108be5283418c707a1d3de6a057bab1a55fd711f3fa87b692a69704070d263c8ab6dfacc11a83fb8d33cb9138ca2f3f178de67fc6bdd381e9abef0cef547bafa58d795481431b793d2611bbe1dbc09ac914e563ee0319be072b3e73a7974e8113d901a7d27042790e9d6a3ccfb01cc10b10c23aa2adf26288ca41f20b22395df3edf3b56b4e71fb380c0e1a2a6c0313257bf98be2cb83bd736231c5a251872e61d982191bdc91894dc30547aac17342462fd2b4907f82819d39759d56cd63ddea283223a268d1b4cb92ab092be07017cd3a2e6b9859ae2e9ae27d7e185b781834e704711ba902eb905e86b6680e28bc624b1126c68101cca2b99d35f90e958a64d17c3b2b2bc29205cf49008c5905f46e138b26e7867d4e73116a4dfb925ccc55a8df5ab673f65cd7c8fb32e7025b1d5d664e43c383c3fa197d01c067855a15ade99cdc9439d68aa6e6fc25489d6db6abbab01569100230bf6ab25249b2d21159087fdb6e45c285e5022f3b7a6fb871da6c82e73516abbd3ea2a57993e1424edbff489794cc4cbb3329d6dd58d8b9647e1d058a6d817366be06ddcd8804e657c4a0252a05996539c47054281f6a69472c5daf6dc61bbcfaa2658e68d4c2358975c634c7a14ab41695391cdec98b8ce6586433932f0d0987349e11da63573b5fca25c03c604dff027ea76350d48a4e51fd3446b45e030ea11fff171e75646a3306e9d58d414b48ced898269b8f71422933c9cd191e08a51a6aee611d75af954e1b0d2f3aa805b1c77d25f576f434fbd0f15c49245c2c461eb25053e8e889a917cc029e91ce15aa426eea4df7d147554ec055d947d4118494c8e8adeaed8765acc4f14d155eba7a4b76ab49e024bc1cc1f2c01d7862e198d4324d0766fa6a1e6bb586861355f110b32240ce5fedf694c59acadeec8c1d33f9822026a7da00c7cf224cc964a8d9f4a65836dc7e9aec1a94ac65bd1391d5be79537a1286ac3223094c0dc8a43da5019c3a1de3f3b7850b455d88f4aa59bc482b5605272a2a0cc9e3e94caca4decc7800cf74a15376335897569a4005bf18abf900c3adc06847c78591841722ad666ce7057d6f95040980c87ece51d982fd0a4e006390266b16b930af281cae2ae6f86c741522e8ba1630e6081080bf07741fe102b7d87481d98e011ce8981d42760cd16114de3d122e145bd9463ec2c8699eabe62153e6f5eead9a97d1477b31b387ffaed9aaf9076df5828a66d0a90cd6cee7e6426dd19d5a3535c0949e25008e8603edd316eade9401102bd290a12a56df95b1458091fe238afad23a7d5b3faec89f0f23a80088e1561202c1e8d8295c1426850b2af6a69af7829fad49a3875409b3e82b8f83f86ace67824486957687b514a407658d680d9b215579ed2914a8fd74b4828b8acd90696bb652c145b8ecae0a5aae28ff4e8a0efb22b0fda19a223ac70d2d60a5ee186f65185ccc4888b37077d4316a8b16dffdcc60890538b7e3eba3ce3787468e0d0e4e10ac5576d673d7d6eb034d2e65532ad4735ec017ba1d3360070e9fc661dd68902d10475a86f82991306e32f3adbd58a599867a1ec1c365c195697d25a6d1688ad0a8277b632947c9550421b2710c9792a8a0afe2b48626967fb3bc6ad92448472ab840a4848b2c6e79a2cf34b57afb97ae45a1c41350cd5bb571afcd7e8b90d29e458f545bd735bb3b54838a1c74bc6914f1ef57afc098311993e44d5c4a796feee3340701a078bdd0a9563d22a0545b426b6f2ea9c51801ea055af18f1dafbfcc370bbb3b7cfd2f3ca5c95c491273ae443d402c38671e87a3039e74aebb442975dae4c0a8da9a8c30f50d73eb0d498fa19901f48f7e644b46a1f28ca6b70c2e35b43b5d389d3a9c0638e2f117c42269f7460914bc7a531626d689eaa91c7a2769e30dbec52d0223672788aec49bc66b87405d51e387ad31a0639b6950eb2fe208f988f251bd296d9cee683baa09cd6c2c8641eb1e03b24a840a9bf12fa28de78b0a26d8d72cf86188026da55699b02918adb1235f12be817c5ba264562536dfef39fe52b5a887477a6018425f4f7d0a2e749008848fa5ca517d8c02eabe9e4c5be0db2a425c19033d1a1f9816dfe0de8c5c57c9509947351d1cf537a1742c6fddb9d081d5bf062597db1efc8035da0b421221591baf291ea3a1fb44c3578b695ae6114e3c46a9eb5da96b225231bdefd3abb0b0394eebb2e10429bbf59a5bc1554a20266e058ae91c3dcaee9d80f2136edbe3259592405a9c75308c4e68c179d583c8a4333841669c67f19ca4810ae29049bcec191358e3198430da195012bbc7bfd25ada978498a52c0e98869f0084da63a0158e4a29fc37a91dbbbe5f98244af48145f45e208b9510b6531464a2a968604649d88d140c7b57e0246555af466762aeafb324c4d3d8ae309c2199cad4a3d7b65df8c66bddd763e15dcd1fa93f97ef36a73460a69ef47576438d3872403b8fd53f6142db784b15d442956dbca716b7d9961b56d007cd1b755e678a79e71ff427a4113752d26db9442d4e773c84923934a51b464ff4c02b0a20d727e0e1153d7028819e25a081096834018d71023ac151d3d9a1679ac0e02e7c3694d3252c8ec803fb81a2d79566681b20687045a3938bd54d5a11334ea8c602aad72e8da6ec4186d0c87af9a265cfac92902a3b38ca8268e1313df4818641ddc4c510042ddd7223874536d9bfbe1ff3ed75ee62ecca36570843560574bcd3761476ca510518ca82dd942e41f15c7dc6c8cfff937c25caef7366f7b750f54fabc8d5277163332916b142dfb5debf3dcbb38e59e42d30743aae701c8defcdabfc1945c1a16deecdfbb6113555927afaeb16b9fdcf0ef609193cb6db6de99ffd670e724d1eda532e4ed96b0b89ba016c633b22628094b9630c1a77c7723e153d16ae6b49c5baed33c57e55c9abcc583ab2b46e2d240048b71725d2729c968407477dbcc7713da60c1bb0e88599c9473e38f48a620f803c6159468121fb37f58e49dd85c02159097b0127ae0e5314945b022c2a111d132469b38e36efb27dd8568b6541043f87d85a868def400e033a14084d2b28d4e581966ba0b74a0240a2ceee27d789c045101b504d341dda9c08d51a6fc8d9d089f3c7ad3d5a8f2363600f089341bb10825412aacb3abfb131b3cfd8daac34a64c79c61e4c98b688a315745e7a9a9fa8f09c5b0d07708a942a3d0f137603449fa0a56ddc5b7439a040b2da014d1a3f9a1e963b7acabb30745808d5ad0c08ab9d11e579853774effc6ce0aa96addbfa6df9e867910f1eb900fa20814ae5710040a3750017c7f044ca1a735ff272d1342ef12e91bda3a791cd94ff9cbe29cd495596b51ac243716428ded4406733a5672c119a2cdd703b8612a45f2718071404eebaa2c5dc668e37b8b0f68e4e8c485a50b9f65aab1805151576bda245ed668e3758be29213a7b8fb401fc1d3f3483ac02f02e32990e1e7086682e25baec05150c13b665301020f75c2c910faeefd1d7d10de38ce1877a8b081fa87ed93fffa6648367018156ecda5b039a4bde4d75ffeef3967247eeb391cafef1dbcba45f7e52360fc2f2bd905a7ac85c1d74463410647887cca706d9c8e2d29dd11b08decda82653acf6dcb926a6fc2480556f413870e557c47c5332b2af43212eb5068d1f70a8f2264112654e117aa56dd290c402098f5e70577d45c899b6a35682660c56e4b197c705c77da718cf129c81c5de5fafdd2b9018e3218f13b20ce7dbb5eb0f2466d689bd2d383efeac6224893409afe654bad8376a14dd6338886867b03b010d0bca19d0105053a7ba9d19a7271c3dee8c202a541121ae06dcf1353decceb6b733810b36548631c4f6bca1a7af068f030a29d7b728630d4f97ba3b03b39e8b7b0f24a1713329f5a54ee9f5ce60eac3beae4a5406280f28ba1b101acb79d9b3c7a0646b70e55d0c4898fc1d39b4cb858c156b4ce57570d565a356e28f2d8a9272283fc087845ce31683fda2f5292a47542a64d0bb7d35a42a13fbcdb88821c13152d08bee3426596580717f0a4d1bc4b825e9e1d47bdccf0e12806dc889b01d4b0c538d612021465cbc5d65b9da2555933f3937ca29033bacbe4773005a161ebe67620b9f8fccd6f5b64e9f88170ae795ed75a8f6d6697ded8819b782d1f495177b35dd13b706f2d1a51c054e6ecec0fb76e044cac44863d168e430998f468cf85e9d7de277e362478e346ebe7fb3e112814715ec5d83c285b8739a46001738bd5665091d5939224124684e59a1012193588f3aa637808589b9884884950d1d98396c2a3d0126fbbabd27074148c983f02b2f782b87d397b7746a557afcb7ce82e9d3e15dbee1e9e67943d55979952aacae923b61122949c5b8757debd4a56efd53d39cedac2cb066194bd6b260054b96b37476ed88cdb7ea30986ca664102f0d4920ddd7a89c567fa74aafa55e62407a95b428bd2f60f5feeb704eb85167504050e41e8be130fc158d985aaca7aef5ea50bfee75eb57a7debaeaaeb3be9085a567af4a581a3cb264235396b26421bbccb2ca24b1cb37b711253b1bed2a8a6fa7bf0419dfb85f8b556bd2e1e50fe0cc79f69d0508b56d4ed5cd727d6d94de318fa00b21598f2009f725da7f92d9caaa0bbdbe36f21e9bbc4ce7e39e34ba4753dd89e2f0a906687caec58ef29f131274ed29c465a4a5ef5a3db66433cceb189c6958ce7aa9d3d707b5a0feebd27447086051a03c7641968c8e3a6d59ceacb8114e43d8355d2eae97bcb4c1923e23268c9018d38631c22af49728c3cf704ddcddd156a32eab7491107a611ee1e1eb07d266e246f277ccdd15696a7652fe8533096495cc6e7d0c70c69533112ebd4cac58ee387cd35a6922836364ac7f68a316d06ce5d63feae026d19965c3604ac72c50d214718e9d21a09f4b8eb1f18f09288ea945a47d532bb7b273dc6a2e48321f9ae7bfc6fe86bcadbca01517bcc781eb9a26c021b2fbc90493285271cc1a0ad03d9a91df947016671054592c5c0e248d295df29d29a88636276c76a2a8bc8791825e8d5161b1209105cc830bf08a8cbe1c1cea36b269df00cecfb1333f5dfe51da5f32c88cf1dfb971f52a1058b52e1736cc42af33837c03b0d0cb156cc8d05aaf0060be4713944eda62d3de0b5fe6d0369ccb956c6723f482c55c70b83b518802f052538e4546986001843042844d6c79ef374945f97420fbce0702747edb629e14df1fd60b2d05abf11bdb5c4ada02acbb614010a0ae232447db2a0b0c158bb64457da4020c1d58d83805f44819ea4016726e0af247d66daf0368ee0e765e2576a0a2fc065daf935172a51fb93fbd7e102ddf5030b3ac7256c8c69df6bd7a660be45a539ae802d4088ba39d7309389c8a831ddf68f5717831da0502de60069410c1bd2d626bd4e5e265e4abe701e43a9fddf0d70d35d0c49ed47041a5ced87d5b395d6c9c94f85ecf42d59537c36649b3ee6531b01aaba642ecb007b4d0c2cfc833d3a678ae919653b74d07e348e969b958cbeb2a1e8f17b540f6c563b80a926b286a0d05f4390657a9db325d2982aaa085591c14d3d9753e589bc51160670f5bc45599d74b9c00617b335631e325d80bc6ab10c0aa067c02ac8eee5afbee3c5f25a9a79cd0c8a8c0ce73c65b5306cce860270e87418cca72232bf29295f1a7e7501e257dcc2c618f4863d81e322ffc2f9479f8633ab1f525782016471c29bc89467c8f5081f00d385499eb9d22f11e180a0890e81cebe1bc814462911d1b37c3c6a929d1385a26a95064421c1954f4772880554533045dc0cdba469de3a02e3abac2cb566b6b4586067134f777c6902470149cbb12973c01b881b402f66067423b9e532b649fb13cb14fb20815e2cd370c405df66e1cf5d258d6bffd640b398a83ef3455be3c3ae4e53137e8aef6e1de7f3fdb1a15917bf275db5dd34606443b0ee3ef59ac5816f2ce8757130957e7a723db4e3cbdc3e06f12501054412200edfd696fe8973416c7763f5a5dd5010d0ca1ff9bc47ed348549128db93a4e06d21a3a23bb6214421b8a31d10521200423bd66a5402cc565680338e3da7aa8c23e0116cb55cab03f88a83426c77c2883d607c256715cfba063ef4206d88c477186744d19c1e7ef1ea4d136e5161bfb5d33ed0e4b55c6a66cc1f0c11c0783fc57c3e5801cae9bc26a5464f7bcaf15c681cc848662ec850beb618738c97dcae5a51641ab8946408a63db76fb6f5a5fb03c884ca8152822ac612d666fd2d24afe3be370ace62c1666ff85ff17d0f93fabcd7653d051fe4817bd0859e98a849cbe06311e52cc2713c683d274ff4bff42345e3e3d2870beb86e7358b0c5ee1340487f7c979bcf6c3982dcb9ab27702aa23c4d34e890d07e647088a662db6c6116ecaddf8092da4f9548f9a317387ee77a17d8dbb9847ef3565b06fa4d6215bebc51d1cc254f7855dbf0ec2ff3be99f7036ba718d527d89a41f35a69bc169d040ac3cf7fe789e224a3f2cc798bf006549bb2195a4e0a810464b0710d2d42a0832e874621b43779dc9621a9771ff683380fb4dd506b4b3d32157983db3ca1f126ef83dcd91ca210dae22f81a77eae919cd531bc10eef4bf9e281668bb877637f0ff666b69d710e0884f726c1c32948cb82b7c1c027a6824cea5eadb6d0b7ea7d3fe409184f40da026ae74ba40ea576fe458fc1b732c9889eaaef631f6fc03610a3e02e54a7a8b9ff36c0d03ac06f6da68a316f53f9a99103e79229fed7973ec561856a4aa45ebb4bd9b3f182b4cfea87b1aacc47e42f703723d339789d6924ae4fdb39a4a1f6ad43f78a2faf46147e6d2cb566eb4c5a9338c3a22b2af86c776560a85455a359252118ceeee5359d13f80a73dcdfb028646e218b82df150fe1090b81e1eb556849883504acb710127cb129f614f88800b63d01174ae61a0eb24efc076d6a273ac9f412248b204e3f28e0d8930b5233fed8654815bf5f4fc1f4ddd7813e7aa7bfb708b4210542b2265fd2273d9ededd38aa7b36da42364b540a6f592076c0a1c16457fb6d591835275fbf00d8b6abfe4c2926638cdd79ab38244efd493703073d59dd0122436a351eca114ffa979c970e6fd0eb215763d181e938578587a2d931d26dd494b77896cd22fe68eade6ce505caff0e88e0cb617b533cb57a71e1789e2f7e482803a574c7585576ca7fae7c733743043b9a920c0e0106ffcf3fb7c5a1aaf82ee8d32177c488818c5a66624136d9ba96dd5922f1ef2d4747496be6c5e1dc41be2d139475e36963118f6bbaf1a21e0fe6134a1c86ac4377fd083924660bea879898ed3608df4176410ba9194710d692c854f866d36fab1411ae62ef1716757634ad3362e80c2b0025a70e778a238d239d02a4f48cee2aad119bdf925c27c79e1841d1fe7262c7cb60af99094b4944fb9a1ad80dac380059690a058cae3f6a593f2e44601c303b09ee5c02016c56e0b3ff926d060ad42308ead6662a35f05a95f18ed13fc775be3017d6e04d78038f0081007fece96b49444c278a192ad488d0dd6a3b235e66c119bbebbdc9daa7dbbe7ff43202f1e4b0a12c1162744ea66fe0650a7b249c7b3d12e8735897b52d353a90ea9226924e3e9353aee274d57cd3f7183525b1b044e624077ccad9738242f8bc86f11246700a4f72ee2fb27fd1fd86e472600515c859de4e57194f86871f55847b1a5c7dcd35413a054a5a66c626484872440f9f5dc2bb9b526a3515aa0744addaf079a5fae8291c5a3eda109b26e12925200d8ecbd4be1b97414692f64cd164de474efeb7b77676df10193fcac175293bd7058ccba88f05ee0e7425339314941c5cb5daf6abdd0688e3af6d27359fe8d7b08379b66b3accbbf455bec9a2d2f8856fe12d90a97e051af3ccabf080cc673ca0b201ad641de5b126a81e9176aa69050dbcb7abfa717ba14f5c27a92b0025dface9143302a5b45ac9d1aef6a5805fa0c3f3343360f3b30bab7cb506ef01ad2a1093bf5d4fa90b50a83abb6489876838d705512ac63189a4d6013102ff31085944d2fe10d33f187a91318f9362dfecf3c6c993affefa0dad231191f65d7a0a9349a7683ec1b8f33aa8c477315b65e3333899d3e80de892625a28aad6ca9b80b7a32664b6c64478fa2eda42285c2b204f1fb14b12ee2ac570ea1776c187065718513a8ae0b78a9669616654dc9aa8933d07681b76f5e061c0523472a5b16a62560021a2ca766bfa7541ca1d0c841efab5d5a2bc5fe9967db1440df6e6b90c35af878ddf819794a2450716027f348e6e6e50af0ba865e57d75505da75dbd7d7204a037369586c0b5900b5e7a3a0182ebf47df29037f19c6e8c23db23d827ad0c6b1d9a312a83f112001adbecf32fa2a04a0cb8754c16e5a77525c322e04d721cd76cd8a7c36bc986af8e12564b010a0cce4b9a341d13bae932593e6d012d79d72b09f4ff181337750a0d9e2394d755ac02062c71b315e22f53e954792f60aec16a451acc15930713d74224f0d919f6534402f5ba843e96f6e7b889734ce907f2a27769663c825ea2a7a483a0cf5bc8da533220787926ce39b09e740a04b417e63c97ae1d234b534e3f6bb4542f6010e2d532d5ba12c2a32c5b6cbacaf04644f7d14de957624223827d05d23a57102e393f0815ed39c4f7a20af1ecd139a8f6c2df93cd2244cd5ac6f53d9c3ac59cbb6eee8e62ee168b1e69f874d1aae2f506ef97d5e4a6c9507475e49af89c069cd0970157f6ffb62547f1bd027db34a0dc69471626f2c42e159614640f1e36d4760936965f50d498d59b479abc8e466c96a03bcfae2d0264d511f593cec0d4977be99f72ebad77b5d47132c895c82275e56737d5e35052766fd647e19dc48fae06ad4dcb1b9e39490e3f576798f5c882db9e25d222a087ba5ce0d432a877e8f3b15c29f1be022bf46ba56a604bdc714cd6e840d4627a35145e525a49b6a285b4e10db83420ab8a1196519a591241ada5fd469be3adf854acec2abe8a84925306bb459e45308ecbc608a47dac94f6b53adfe74cb2e5db41e4b2c54d9d1196b1c03659709272e834508b36790f934a71b44b31f5f4ff1be3f7dd0f048baee369ae96eb6706b921148249a32f7566b957aa9485c8059711da195316ba05cd512d0c5b276b915ead52c79eb30a0e2ca25dd88071af1a893fb0fe9482c0f5558b6334bba804244d5b9a86da9ebe76133bbe36aa368d753be2d4d4c211ec3b6fb3ef3cdf56892c6a7b606817f42bf944d1d9bb74a1d48823e90a399bc17a216fe756426f6a0c7af3e07285a7fc8c092fcf9a000fefa7501693826527a97ca6ac52dfb7627b5ef6340955d8500f903dd376d8959f4c6162959c1f5b22cd60b420eb781ff54c64b917a453f25097d32b46c14c8eacaeafbcb3eeca082d2d83a43afd86ecf6312b0cc254f8f4813276d00361e7c006c4d8aa97464af37e95823229a4c7002eac0089039aaaaa291b42d22026caf5763f2a970bea2d34aa9dd697931fb206d1929886937442dfaf1b54069ea3cf05a5c1f0a1a889374643dfe6c3276a174ee998fda5bca602b8e1172df022e01d38085bd79a34f13f85ecd4a4024154218bcf9ce82cdef6b39f954019b82d63727d07a3099ed5f0cd1107aac2273db248f1610e544a34956aa52283fae8b5133d3b40d83b612d5126454517a9fcb6f342cd876025e392bc9a5d71d85515f0a1345960c71def6c4e8a55674fda5cbee7e5c5d40e2a6144925e6fbc309a0c01212cca4404fd794cdf9c4bf69ed8a874dbe18ab49852b91f696c8ef9e53cd04ee5989f3b4c765fc7d594cb0e41eda6fe2e41c4c0a2a77dd99243024659ad78f219dbf6e5316e464e2090576f382c2036a3c8435b651c445be27dd3cc82e54cb97abf8b1a8c02b901ac42803288a05e4ffeea2c759663c9a4fa3b217303ee015069b6b8d78955cb78c5c6100a33268436b5a9916188ddbb8c93becd2710d3be07de0d9153b9641e56d71d3380da093a1f20957baf45a6c0a4e69cd26a34e5d0a93d81fce7b402a56999a1f60a1dadc64706365f4ef395c46f59ec6db85cc60578c0be0694f6840c282959b56349ae9f926362dda7830393c8be1810b6f20531fa61e62cebd0e4721b06a560ea2fb0ca62cbe642d3928a928f571dac840cc68dae5fe38c107c161a46f3ea0b26dc8fa0084728901258fa18d8b8f9a327856395fc235ec17f61269b861c6c3fe259165c2b9c139ef4a6065ebcc3974ca88fc6010174f38f613309b747bc3fb2b63851c4037e13d2333db094c83ca7363de2952c0a6c1a607d308b6f2a15cacf125a0ba83535706aa0116f4fd4077b2835c348bc850c74c06e0af053d9a303f3e797d0ce849a8104f1bb0337d52fb2a77635c8fcef10a1c445401e5805ae140f09a2ca3f77dc3c577eae1164388364820d91b260641498ca2ec0533e1d0069ac85f304f0cef84a161faf61f140dea1212b6f32bbc202f836e0fef29fa6b3ce5390bdbc7072317bab79d0260bab8ddf1cc8d89f8981ca0da464a6406fa216ef24f26363596bbb88e91a7b752d9356d7d037fceaacc8300c82ae19c4cee21cf32c736efa0f8542e4969fef7a855f518a66dcd58ccad6d9795b2b6f87c7988b7d4884d34ca49a31ec2d03a6da57e3e68e503f80b2bf680f7f0f0cedfe76631ff904d2907b4f5448fda897f71df607f59cfb046bfabc030263cec17e2e86a638f745254bd541622aec5fc0ff30e6662b33713677ff34d03cf6e7bbf671ec873d4c5e638919dc87ed1c7e1df91f305ebcf52a5305b4a859451ba2b148c65023d5c4e13f9742a458dd1ad28da5b1441e390d3328324a98490a7db44427e1771760c7f680198bce962035dd235b140d3fc9d91b0c308c57180a4d0af4092faf777ae38fad73abca92042a191030eedcac3342d6853c2ed4700646acf14d58a218fe031556ebe85e7280701f3c15f1468d1d9384175f3f9dd93723448d140de42e3f3a3f80c42041a4d478d6b11988b52670afd4fb9b8610fb564ec4a62c717ec7e0abdf303078a0fbfb69319188d32ad5b2268cf48bd3e32454d5c5ef4a1129ae9c3296a62e88f967a1db278ee7d9565c3ad2799f0e198f84a6bfe9df07fdb146a4e8caf012c02b574a1dac598f4d57df92712e81cb6c981809336918711567b27d0911a83c731fcc421401059e8e04f90e57209a1da703d302c8df99c40d50b8a95424b2d2ae4ac5a550b49d4a4dd49b525954fbd2db08da52329a94bb08851a49bb9b5c0d5ee56efe6541aad11ed56026e5262fda862bc9af924141e0867ed63df18fa0675bb2770aae10a10d7a0ed3f3a465ff4b4b28bfa49be9907437ac3d981c9de78c22cd2fc789e4e0572b04faf46a1ddc61d5e6b5d5d2e5aa96e69a12d0c51fc71972311d4ea5732d6de8380cf1fa232ccb7e8489a32d294181866972a22263d171c0c17758f5c72fbc980109d8e12dd9f8d871c0c1336d469ff6fd4c7c21bafb87f63a1d1adfef455b7bfe6f8ef5e06a690e7f1c6dd8b3e36be011f6a881870d3a7600d921e36183e82388c8a3861d3d6690588f20b1203b7888618faf61078f9e30e3f2f6f45014f4f31a7afdb8104f12a9bbc41fe994e1890a02a33dae4b673ad6b083798231dae378badb457b5c13dde344b2e4dfeeb6e9367980fbf1389fee96d11e87bbfb457b1cac1b87a4172bbd8f2bc5f7132dd9133ed28e63caf2faa30bf18fb9389696867da7bb65ba3bb1bb73dae360f0fd32293b7537d75d5f7bef7b9d2e7ebd65feebd5d23c737df2c71a493dd379b3cf2acd7992d7ca7c76a7ee8ea1bd4eeaee547b7d4477dbec28bb8f64fd9669386b33c4f70b1f09669bb727bcb827b4e3387b6e77de181dbbdb5482e9ee2e072a3f48410a8cc8c8d8a2c4ce0a6e1065c808302892f1c087136a46222c15138270c1b1a13e2e5cc142685440123241563b1ad8c10567c602be520d03cd90835115047400e583181e7ca1e92d53a6bcba14e3832c345c115c113054aa705e84ce0950252034de36aace69389a520d8d8af3b1198288ce51ab299d73ceb54f4d8dcbc4ccc0f88c8daaa302e335cea9869071ae93b1711d3a9f1a95942932aa2272a05285f329791139f8f000e3365e54aa711a55fbd0a86c6c7c86c6ab703e33ce394a45a5c66964a8d40c31e3dc8c733e048d77eea96c681489f1d351cc0a04b7ce4f2b10dc4a9e036a35a5e4a81a1b2a344ec5c68b709f19e76c565356548620a2e433ab29259ff19915952aee63e3251b1f3c1bd51044949c6635c5616c782815957c465585f39971195515ce47c66954548ac8c167c6ab703e344ed3a96c4a364468f000e336ee43898a8c13293e36ab217c8819570d41e39ceb50a299519d9cf3d1618107a5c3f03aad8e4070eb1c04371887f1120d1e60bcf3a2d250e72855fbd070364330de3643253fb120c733e9acc0e44268744c50029d2568688e4c0e63c4b49252e276a0e94e05a5d4751dccea08a65d30303030ce711c77c419a13c060a8d11e7029072729828485d2e791453c9144500525e2828a557ccca28c64bfd82511d995650a2bc6456528c3ad4110a06a6542ac194606060604a25e76c76b8e94c21a0698ee34a46282832de41303723757e72138c0a4aceeba85bf56b660525ca11ee859259ada04479c5ac4ca6d3c9e8a8bd7b010daa04244a14223a2f39119cc378141214c5f8c9a350a9e23ea62219373911289ff15e4529c27d4cab28449c7c6655c57d4a2eb32202b5aae23e449c3837ad0e7013863084210c3e256f27e2c4551a540948e7c3a9aa745e4545a50acc8a0450722882045072781d95a0709c93182ba86ed48b33d16085060ad070a514c5960ea62b49a12a3d4103cfa8d4a5392f712901292dd1edb457d1aaf652a72a3dd1448c152cf0a0cb0ea878d1d4a812e3329ebb5757ea98d56955c3017ef21a46d4a852e324a32a2951d252b212532acd88c2eb1cd5a52add4ebb51694b7ba35455948070deaeea6272ae74041436d8411436d801133b48c2c68a115f70ba178eaa5f423a56a95f2e563e64aef0ea22f365668a02bc29a6e06a7a019ec99b4585a56301afc3a1ead2ce8bd316d32a660b8ea74e39305e788cd738a16f78e125afc6bd9480c06829ed94dc044375721cd5e9955221a15e38ce71a6137732e1e0a84cdd3b305a4c302f18292ee7f482c5c251955ea714f70247d5bdb817382aee050387b3724e2b10e0c0e9dc645a79c72af98c2abc1b8fc95202c2f92881838313838a49024715a3a5639562b26ce97ec4c874b9e2ddd810c1f1982c4b743f5c24a125a6891827ba1f382b17aa1a930d11ef743a752f5e70dc8b1b1a538985c3595e84c3592cc781c371aca2e0e0588e83068ee370293e269c150d1e588ec38b588e63158504381e0587b34c26c75915e57096b35651589e6325c507c784e31d0e67d55ca1c64b0d16dd8faefb118397bc6689ee870dbfe134cca0fa225372992b70bce4a204e4e40525c3cac8cb59956698c16facbed858d52ce16535c3ca48478d9511eb85f2d5ca88a55af9cac8655819e5c8f80b954c17992b54325e543258742c184ed375344c8ec373384b4583071c9ec369985645383c078d221e67398fb37872e050b154a7293a1697d201bcd47c2901c131634363e334acaef31b158d4c0d0d158eb7cd8debd0b970e1a254857be1b80b95910947e5f90b1c9594171d2b66c5d3b14aa655490a1caa1297d24ec9595e64ba74ac526f2971811143c6f58c7ae9e4780b2fdda06fc8f15296d24ec96bbc4b40761c676554ba224305c34daad34b07869b7cc60c184e0363068c93e9d43362b29c4a324eae3323068c9dd30e0c55774b4785847acd5875b366a8ba5b39a7930c96efc480b10201eb74329dfc46d51d0b6543c47bf1628583e32f543380e0e1f8290bcf45cadb064775e32e54525ea6d4aa8603b89e1b293c22372506d8d4f4161919992e46354dbc4a1e635a717df26185866e061fd034eac61160832a0169e143d4f88d9f6cbc859f3abf711f6afc66e5838db758756907732f544989192ddd2aa97410e095b4a0502b231893c94443433303081eca4f2a1997514979a16260fcd4aa1a4ea63355a1e9198c607447739a727ac1c53d2747078be59e93e3753b263792a1f2820a18555e269f394d394d395139553959391d71ba72ca1283e21204461514171497ee470c1555743fba743f62ae4079417de97ed02819112527752c930b2b595c4c31d5a6943a231747b8b8f2328d30340e6343c4c6655632325db79291711d4a251957d538675384c6c60db7e14537dc860dbfc1bae12cce86df50dd54b9d97253a504c494e5a6ca4d959b2a37556eaa98b298b298b298b29ca6dc70293e9db70dbfe14536fc460eb7b12ab2e137fcc62a0a0eb7b1ea5297c371c038a2fb61d45e60c030a2fb81ea7eacdce42fb8743f66701abc86771700007877336494764c7e33c5c51417545c54716184294b09c8cd969c95112a4747869591fbca88e54ec3ca48c70bc5a59b6175b3a5c6ca48c7ebc67d65a423002b23d6ebc6655819b100b032f2d7cd8debac8c7266ac72563256313c374271713145e5828aca45958e6544c7ea606a56dd10951c8ec369748ae068c4f8131bbee34f6e386b081214e170960f916345a3e43b6ec37786c0b1a211b3e261c76d388dd2aa68c7068d22bfe1ac55d39c6aae68e1a5639d5e3a1480617218564a406ea44a3fba5930dc858d18540c959194570ca791a951a94ade3631626262dcc8c594ce512e6346ca8c8c520c15ad6399bcc72addaa45971baa165e3a04782dda15e3a61b6ee2827abdf02e01b1e19d15cd2abd60c0f052da3139cacbf1170eeb8503c3a56472182bba743fba59ddca4463655432398c17779d95114a069fb132f262f01c2f2ec38bc7f0e225860c1932666600c12b7539de365d0c8f5149797539311ca5325249f18a1163d5428b0e196ec472ef85837ae178774060705c670a942bbe3242c950d25919b9e7ac64acaefcd04185910e6eca0d1b2aaee342e3305ee054515240164f65e4bd542d64608c80b1b282a9d2b1ba55d741c0331a51301d97928b292f9d243c23982a554c46305580d8f076cf86aaa6db7961b3038c1bc5e850c0746384e62443e3620a0ae579a5128a0b8c1b45e958465c161d2c967b4e8e97650a17931bdd6c79994c594e53a8b8b9c2cbe4250eb57ac1a563996eaabc4c7e53e5c6882bdd8f981b246eb2dc68e97ed0e8bc63684e353a14f06874a87836fc86c9e43754306cc0b0f232bde032c53342717131e565721417a3575733368c2554dd8701d3498ad20ee7bda5b4a5b4a54f353aa52a30364468f0a0e3395ea4b3ca591595ac94764c4e63e27428e095a4b089f1999215179e512f1c2fc27d48d03907c36b6038c7394da73abd64a890509cc7880113a37ba7dbe4252d4bbc5ea88eb0324345a57bc7018898e233a3eb56374bd5991c86e9458e8b1508724c3a16f04c6e63e32d5ab448a55629d50c20785d942c5e1cd7497971aa1b95914a8a970dca6d543226af29398daaf32f32559091e332bc28c765c8f09c9c55941c9fb192e21313c3c9f01c373a35d17991c1a2fb51f2ee850b130c8a3ba1bc144e0c0ec64a6609992656463257e89029c2abf3d4ca88254385cb4c912313852773ea72ea72bae2e4e584459f9ce0ba52951737230c5ec951285495538c4aca2b47c68c15185dcc179ace758c78423b82e4c850cd8b97514b2105c7e918c0d32980c79d54ddaba6e3c2f08ad1c9d2d1c4f88c4bf141c5aca29020c6a3c8aca4f8e868c083f1d2a99bd105cfa8a5c889a10b9e913fa11d417264a8085d82e95edd0c2c1faf20a62cd0f40c4632a62f32564a404a59505b68ae5d534a40601899be94ae348d5ed1e00186bff02218fe62158504ed515e388c95aa4b510c181e63d53ebd5a89c07be130dcc8144507a4b32851416de97ea45cb8d762061563fad2fdb8c20f18efb228ed74de7541522bd4962e8b12105414dd4ee71d0a0bd6158e2a420e8a0ad41793caf4c5740595290b93173a5667faf2eabcb42ac15095ac7832595c74a718d0989ce3ba6fbaae54828181813199be7c39c5bc4e5cb87cf9a293018fdba1a6547223a792941767c4543a398d1236ad62acd0414207091d247490d0414207091d247490d0414207091d247490d0c180ce05b060c182050b162c58b060c182050b162c58b060c182050b162c58b060c182050b162c58b060c182a5a3e9e6381d0a783e2f64a690e1222345b74aae43018f0b4e151e178f8bc7a5e404cc013c238f4b6793c5d35202529385cc179b2c325f6cb2c87cb1c922f3c526cb694be7325294dc8a952b57b2643142199db6741e179b2c1e979b2f1e1727b2bc4a8e934407e4b4a5b493e5b4a5040427091c255e25bf59199da47895709ac079e255729a95d1a98a5709270a9c295e258f59e150c1e5557223992f3830ab36f2b89caa74acd28b293152a8e9f27a3185d659d44c2693c984e3a2c4e544b3e27163c7ea6c6a686450315db85209552ad95491049705892a6cba94acbc8c6096e82c924a40820409924567411b4ba6530c4a86d3d201b971cea86485c80ca7a504240685f262a4889182d3122305a7650a033ca320af181b23315e303ec3254bc7a28047c56be1375e165fba1f335c64e8c003a263c54881427939ce8a91e2d5259580dc78d7c1cc708971a2b4d3c56cb14922668a173ca3205dd7755df7624a4de7e2029c0f753f522e705e2cc1c4cb6665445f9d8dcdcaa806c3a534f1ea68afce63a860a85e7838396e24656514a33af2000fa685b7e8baae450b9b1a1d233c1a982c32364c2cd171ce3961f272dc64e29ca07123982d4f9ec06ca95119c570397179d1a88cda0b3147c4dce015d3e5c5b9ce10922359ac74fd83eb40b3b88ecbc2f2825f21070bef8aee492926e664f295c93b967733c4bc3c558c145c5e33742c942a864b6987e39c280189e912e3c58918293ad03fbab9981b74cc11dd0ee7485491841725be34c1c53cc1c544b10566cb0c349cd3e830c02b95563133bce0715c0c4a8a4de71d61cbabc5123a46c4a050463a1ee071af18d7a13b19e993516fe92b4a5da92b75301e57ea2b705c8cf0ba6e35934567029e114d0c975712365cba1f9c1bc124f1ea62b8d8ccf882d7b911cd9457e73a74de755dd7752d9630c29506944aa552d745a70146a0c10a0d56687ac6133c1aae9cb050a34a8d2a339ee0198da52a356ad4a871aac1127d25068532a9da46c98d1be5740ea3aaa2860350351c6063d3a286e36e72501eeac6447343842b65e958a59207b6deae259ff44a9578cbbd4e1b3ebad6e6e023d171c26aff473050ace538332e81eecf66f466b196b22530db5758b52e97ed85aa12bf56f631a722b6d95beedf2dd324b19636e6b38cdda66d9c8ea983b03a4318e82d77d792aff4a4ea629d589c7fc59f39c85bdf1379e8b9ac557abf6679c619d24c6f98cb98e35c9f2c67770279ebbb1604796e5cf0136909858e3f2bf849ea6e22edfdf4f069824f169f28fd81d9da0b3aa63be087d50ab13cf38c93e6fa19d3a4b7d9d1aff5ff2bfbe8add95bab4ddf0183c6996d11f8e3cc36fbd3b2c5e31c47fa89ffb70838a70f8f105e3c7845e9ef36c7fb48962c319e3ece6a69a6a238bdf585b7b438d7781ccf9944e415830e52d001093a18f18996969fac319299f67d392c6fc6ee2aed8d061b6cf89e76e4d9d69f4180f765e00f53871e74687d454a942cf15bacce9fefc398dfc7a5cf1893a3d0225982abc5f3af78434cc9fa42d82b83fdcbfeafecc33ac7e9739fca68ae2f063dd27dfc4b449a8309ba93accf38ce30fc263f769443f090cb552424c9fac0f01c920587f68684438070f882c3151c8ce09023040a20ed0931a23f18182b314cfc09f2f0d88163684631b803268e9686ffd2328ce6b12461b8dcc1ad3ac75a0dd39bf15fcf75da5cf4d2de32be25d95b033d87a5bd897f6db5b459a5e2e3196bdd6a896b696f2e0bf2e975faacf9df8fbc552b968f6b2efe0d3eb8e14a3863e3686f387fb4341b69f3bc214877efd09e2b0aae27babfdbd372c695f2d8b0851adab3218a7ca35a1bc6e01fd1b132e96e9cf66c9811a40641a004a1818b0eed01b102840990fe81821f3ffce8f9e1813f3e96b2fb361f477192769cce0306d1c23c7dc0a7e55a7963b34ee7b145fee10febcc982cc34b431fc779a40474ea3f3b3f2c2560113c7d5c2e970bf6e4bc3270d66e31c798d28a58fecd2acda5cdd65ec75416f4edcc3cc5999ff44a473a91260b263ee8ae5c67c6d586efd9d6d697f4b7241f76998df974b13e510db71a623508a0869f1a5cf8e8f2edb0f074b9acac06b95c459ec3c1719c21e88f44f344a2f74527defa767c80fcab126f7d587c6f7d3b3b584abcf5c1b2b54b6098d2de87164cad908f29b73f5ae203fcbc4669f87eb5d9201f3afab33251a84797ee0fdffec83f4f1a5a8c27491ddfc8d42d769e47a2e363bffd0e326b6fad470e1e5f78d88087e521801d59d8a1811d02d891d33cf86bb74a7d878667c6cef2db98c3bf74c7de59e793b7719c252e594e7ec6378cff8ae2747c03970e14e4d4861f7b22bc4407151d6277b3dad3214407d7dd36daeb21424f057ac29e1edd6da4bd0f8b8f89eebe5f6d4a6ebf03e82e91deaff9677a9dc480bc05e2dbef90935e08741e50a6440c6ac203bab0387f490cc85b9ff84954e6983a2da42c2c52d8ed8f5c2e7cfb1d5cae22d071c6367cf907eeecf8f1d647fa9793be8e34d7d273f832d9e71bd7e649daf06319dbec38be3e10dffe08fc719ce10e66ddfe083fce4f74bb364fb14e729c45e324afadf7c5fa9886e71197abc8ca6a9095550a74edbd0ffb72fa6bb549f3aa240bb156bac05615b5f9d7f1b4bd5a4e74cb4a77878ea7edd5dd33b4d7027368af95d3dfcc5374d286ad6aabe349a3d95cfc1769484b229e28c8597ddae399ddd01e0f4f777f4daebdf607f459a5e338434a249c372715e141e570e2cbffb6fc317f3cff862fdaec38865fc339c0d92d6bf6be10ad5a94c33b56bf68c8ed8f6ebf838f1fe5902fc7d9e4f63b0809bfc98b36ecee9df67068e9ce947c00b48723ca8e14762eb0e3801d1cba1b497b2c2ab0aaf0db7d249e9d47a2b83aa62e578829e972590aab61d0f138ce90e5e00e114b09e82e9b61f931acce10745912480412790eff6135d1fdc9ec13b17c6e5ce1c612ddfde53996e138c379cb30bc2fd6d2f1ed8f6225c6a5db9cad5d72fd9d380e1c38707c4954f6b786f39d19dffec8a763f2331dc7e9e34877e86e9af66e0871e3de7802eeec6029b993fcebadfa4733898d2ed8f80012368ce86e557b368ebabb467b368ed818424316dddd23c46bf87714da31368ea5cc31fd9b9df827d6c7f4f31ddefa76c2176dc8f2cff4da76788b9667f547077f409b833b3f2c25a0b78608f11a1ff8a20d417c143e2db4a2e7d28a3674db0f698f0612d4e6d31cdfc8f5c96a2f45aaefb731463ec6afd83bf9d9acb9ccfa133d9eb4a1c793562332a44848f84d70486b36cf3c81669ee287d5569cebd390ca6425c637d7d2fec87e09be4f96b8da705e222e57110d4f1aacf679660c94f1cfa828743f46963597351a9e47b2b51786438a2bbd39e983d0c1431c12a414127e93a4176b103c7af80d41ca1fba6530c3ac1bdf4f1c6919dbf1f5f878b4acacd2d68f33c43d3d780409df869868830d3c7e84e1ef689136fc62252dd3d9edf6d8d99de1d773cbf4ce5aace7494bebc19396e7d0b5f71221c327437ed4c0e3881297cbe522c3a420a518544301357c342d53dbcc696fb585d514b6af7e4beb36df1925571558d956dee338435b617f3433e8b44c8f6616e7d79eaa8aeeaf487b2a6a437b2a1ddec5ab74104078d2249d679c650ea7f3e4b1c4e2e79f89a5dfcff3efcc31d569cf8b7c86ee2080e0a1e149f31f80a8cd9bbdce31240a0013babb75b4170015048046faf46b439a27697339abf8b4a200c820c58727ad4e19926458f100005200c0134315fd892fbeb533bf8db119b3b7e6b83ed2fd5c67bd8f64673eceb2ce24feddc618c5d8d6fc691997f6feac4e712797d666bf96de9a38ff4eafd459df6dc4a5a5487f6b7e6f31ffd9bc36e3708e35c71280f662102286198200c279808278fc0720ac75f16b357b45c7d3365d9cb4178d26d0e0c2336d2f1a0fa08169c8a023451040782ead8b4fd27cadf38cb552f44933759efb485f6795ce22ffa6ce0482dad34192c7f20720be5c1fd797a7636386173a0820fc491be672da6496a7bd191fa0d1de0c06743793f666fcc8e9d21d04103c3f00f1555b2b3f66338ff3dc793f635ae9249ff46c2b7e2be63296c3af2511c981018ff6728c98509674f7aabd9c1c7274644421a3d6dd410031ced0797e1c67cd7944ea3f00f1813b4b9c470c721e16f8b7cc1369d2bc96b252a4cd287903388ef307f4f9222dccb386a9283e12a65090e8877f1f575bc37ffd76bfe4a1bb77b4274347fd8ff9234ddaad4ed2ad2dea6e19da9381eafeae9529e9ee23edc570e2133fffadddcf95f6b417634a7f622dadecc3faf7657f4fedc59875b793f66278dd2db37e9b36b7d5e77d5ae6f9313669e1fc5b4bc7d326fea530aaa894bc9f5fc43792b407234ae339862fbacdb4b0ced6df1f183abcf0d27d5f262b63e1ac6197593f0ae7e813d726edfe907f95fa8ebd56749bbfff28cbbfc498dabf37da7be1447ff7f34871d10b2bb93eee6e21edbd38d2f7912a05c1a217dedd43ede170f976c4a765fcb796546788cb197eccbfd9f7acfa4874e64f2bc221a23f5c4ec793e63771fe1da767ea1f568a5da4e344aad431cd94a4488424599f2164f844c89021e3387f9ea4b9964b5cae21332aabf607df881c4f2f1292f18b4386ecb08490e1132764f8640892212f9ac73289f84d8424591f1e3dcae6a13d0f4a8bf6bcb0bb677b5e876aef860b3749dc20a1a1bd9b1b2da8e8fe1e4f5a78cb5a929f273cb73a5d469da7f5d9927f5b2f96635829a647985ecff3637e9be448a7ec7ecdfad3729db44c411878abef367bad749ee9e29db66b6533faf7912cf6a7e5fb325ce72d6a01ebee1fedb5d8b969af858e8d14fde17c6dad5662cff8f31c416f7d2ffaacd28f39a6324b9b95f6d2729e21ad2549dad03fe67586e368731291eeeed19e8d0b093538a8c9353366daabb9a179c2477b3455bafbcbd465d6713c69318e1baaa536df463c6d371cd9561c8edf8a8e296d2c65187f1896d85fee2252a444e87b7192d5daeaf569d979fe68e65c4b4b4e274b92264df26919e31f292dbb2cc8bf6a3fd7c8cf793aced42b1d476a7310963449d0ab25dd0a7db7719cb7b15abfd66fe3e71f6ba40d5dfcd0c1192641bf4fcb4fb3f9ac8a95baf899625b7bb13ed27b7d7dce237e9d51ec3ce36c62fc649dfe44685ccc44f151b7d9c53ae9d3b2cdd38ff0abbb63da9b21d2dd44edc954a1bbbd3d991e74f7517b323319a1ee8eb587c2024581ee0edb43f5e86e01b417e3849827bafb497b31627717b517e301b5779ae2f3dbac59b7b95257ebbbe51af9feb1db4ce2dfbfec66b38b8f4bbf85b44c7ea69ef1a5b2fa31b7d95b1f8f1e6250f802bd4ebf5f7f26b3fe721778bb938654f6f563a0b7bedb1cffb2763cb1d96b2ed6c76eb3833b3bdfc79a770e394fae7fe7108bc713d03fe6b7719c21adddb28f2375e21f2d277dae16c85d60c62f82defa92fc3c29c34f7a17ebb4cd2bcaacff189bb519fe57c7d3eb1fcd3c8e9347fc5a96b4eca24891ecad79b6d53175fc2fcb94a4a3ed03c9cf1406fb978132ebd7e6f0911cc420f51727e998fa8b1457ebb93e799b35ff2ff2d1490b7d9ca11d497b658ef3633cfd498b3d5f5bfbf18bba5ba8bd1351abbd938dee6ed29e894b777f3fc626a6a2db7cadf3cc2a1dcb297b11468649b08fdd26097aebdba9365b8f6ae9987aae7d184eaf339cb97ef8d733b6a43f2dbb8c3a2d539b8b2fdab07e929f274fcbac974decd3f31375378ef64c48ddada43dd38dee9ed19ea985676ad1dd5e7b3060e8ee25edc128f1fda5f8454c3dc9cf13bf56e6e2c7e80d71acc47e1b73fd7bcbd0ff4e7f9bd3424ab3b9cdee4f2b721718da11f4d697ad5de21ff38ccb24ee022b9dd16b416f7df86775d242af96e2fb48497e9ef8ad4e9f552ade39fbebb8f49b8c665bfdfeacdad16dad34e317fdceb10c69beb3e601d55e9be7fa367fd212f9876325765bbdceeb73b2426b65185a97898fcbd30f32945cb449345d00e6ca15acb0c38261faddfe08a62a85a16198acba61880029417793001583e456a768472082ee0e8116256200d3dd2fda3a93de6d2fd41a808114958e4d5a0083daf76a0e88eedabcb61760d1eeaacd6b739b5fe004152ddd3b2c7cbf1e1e483de1c52e178f2418cce522c3a427c06e77b9aa5afaf4dee9f3c490bb9ea8f19e90714111faf3213e44e5c40547b84bf563cc05a00b86dce53c2ea071c14c0bbeb4c04bbb2bc3eec37adc25feedc1e558bb2586f1b4008a1694a05bfc1619265d2bfe0d6195b6e086055e60411076dcc57277d1bc5267c193ee9f91ce22497e56e72daa7f348b1edf176fe24d9c4c727da2d70a7eb082a25ade609fc5fa58055fd138ce1f324c8289f5710ac090822cdc95f18b6dd3b0cfb6360100267fcbfa44e2ff189b954950b642b75c2389fc921f2c4e1f222b44d4dd317407d11e13a7c6f7cb25498649ad1e324cea91fdd7d08347ac27c8f398efe36b1081f09005e9a1c347ab868201a040871384e1045984a1469f808661b34a6fcf97505e84858fd4dd1780a9c012cd01e109de124ffa56e7c4e27fb523a6dfac331c407707e8a39c6768ab7f09ba5ce2579b9217672196eebe5281ee17e860029eb10125e0410b7191924094a0a8f1fd6a64983449c74188574a92c08aeeb6b21a248a2f21dbdb5e48892f2851806bef25a2c493f6e6b6c0744fa07b9c99868f54bd3649d87714ce18083aae45fccbe1df6b711060d24c02fef0b1dbf8653c91f8c773cbb49624694396f3506cfb22d616652b84eb4c626dd14b0c7a5921f1b31532b517021984e04a770dcfd3ddf67556e98402078d021000117e0d27e559110ca6654823000925c0f263b1da18ec16e6c71396ebe74a6146928ac2af11b540c08a09fa4090ee5a0dc4f7c3b0fbb590e627ada0bafb0198629a27ceb34e7bc349fa0d60d224677021be9334c9197aa0b046faa1f73814b013c0811acd95dd0db6e701238def77bbb97e4f6d92b7587777735e9240a26999ded9836bf6daf056facc2a15477be4839288d4ac1572b97690f616117f5629b6e38ff8b9f661f8c25f42f925f56b4a7e6c2f5423ef911cce254e7420b95c649844864f70fed99d45377c5f8808e379731291bfe538ce9f17ac74b9427abffeac8689885f9914b95cf8287cda0f07c3d1fca05b08288d81226880ca068ce8afbed0069e74bbabbebb7a0929bcf410b26cc1974bc2f9706beeb7987315e84a36bab92074f700dad30014ba3b7cd1d62948a18bd06d84eef6a1bd0c7889894f6fd6f1f9e0f1e968c5c4d6d39ba91c407c9bbdd7c63280d4df2d96eba47722f957fb338ef3a712c9f5896a64f824d727ca93bcb688387dc4e933d25984a8bb69ed61000332323233e2e71ffc6945323232331800808c8ccccc27232333b3d3d3c23d38b462abd249f658fa7d38b4624f8f0bd772a6b182c03f3869332e7f646464668a70929f279562ea4efcc3a25b3cbefc03c58b41d0274572f16fb549627a9b193b7e5a91274d32a4e4ac3731c4994e5b79476b63b74c5bb352ea377cb59ea757ead7cafcaba1470d35fcb0d56df6ce1c834ac079f30ce92ca13cfed0dab27f2ead673c47172b8fcc7aa5deaab6f68841f76b1fcb73f677369b414e648bc8f089387dbafb6bef0a92ee6e045d1abb24eb92ac84c38cee92900a4cd1ddee4af2f3a43594e4e7c9507745dd8cf8345cd63ce3d2e8a7df30c32e0da12b50d3fdcd2a1d29f6af5217c2bacb885090d092979396023793455bc1d4dd647b145082ef27d63f0a67ac525a38c9560f7e249a29496fadb92b0109748b0fc56f98e1f4db7d2422dd1498000e26b084bbf0d34cbd7b016d445b60023eba73d2b7e62de70472ba5ba51ae7639f4bca9753d9111c68cfd3bfacb73f82e5a4af2e17cc3be276c4937697e7b973fb2356972c20012474774fcf0f99acc70f20b29e1d3ca60e203d421f628f1e3e82e87820adcff3661c2b710fcea5edc97486ef17a363ab4686493db88747ab25011b244023024388800fba4110c94150897f3b3870382da4d5ba3fc0892964b180126030324c8235cc0f8c4fc308c9e98609d2303d0da38240514847cc04880c9fd4c8f00911d14f8dd2301ee23c4442ae2d328ef3679c3f2ed78c486d1397cbe582e5b0bc30587d51a43418ad4d580dbb5cb2f1f12dd391e652fcf24b288f6130180c97634996e110976b4848c7583954abbd6c91cbf579de7006c7d3e72d5f42e62d67fea390e62141d5d24a71d224932689afa5d5c2f23869f85f96632f86df840c931e89cec44a77f8da2dc388fc182b2d50c69684e5091382622149d6c7e5123fc9c65cae6bf390213b2c91c2ee8b57c91021e137d9c1034908193e71b9742089954eda0f5956180c06851413f0e40b13e0ddddf9dad8f4d66d8e456cf159c4145a5111413ef18bf05e08d8d2dd35ff91d26c36fb0b0153ba3f11532b8480125b1a952cbadb0a51d9d29ff842d0e9f5a96c80ca50d7f2bacdd486e9ecced163768cd50ef005674c698cd2ecad652bcea3d10e1d4003dd5dcb4bc75aadc4334f2026a20d0f406300280cf000039006004001bef03d694371de59ade4115fb95a5aa3b900372800fe404bb38174d678fe65a438c11acd200ff82f8381fe2f7b89d5c69226590098294df4973fe63b31968b75baf84893b63359b3f6a6f4904285142bdd9fdb6c0dfd67e27b9eafef6f399b51daacd25acb8b290d9763c872fc2295f26487e5988e444c81882b4430210204dd6610ff549a04744cc56a7d7ec0af5a7fa4f9e3fb97e738da107ca021aae8fe627e0b612285c1c46a63432475633ac491ee21bceb5822d520af7388eec64551ba645ba338d113338992e529797f28ca943c452ad6194619ca7f030af22837d8be12a001041022c41284e08010a41048fa73027acb6f23193ea94dd241d0058ad307f456929f27f8e6e5d683ee96b5771bbb4198cd2e8e368bb798a429ba5b6c2f897671a6617d92b4e15fbf4d32cfb014ffdab840dbb341c0a643777fe06d862fc260f46892bec365f6e55fb5337b6b7e3fe329bb6fb3a3bf3e5a386b18a9064857c6afb9b43d95e2efc912ff12a41e4833bafbdb2b9be8066bf68ae3d73a69e17d5abea5ac66af9865d365b6f401a2bdcc848c44f7074b9a24ac46864963a6211d6b49efe26d9276169b8ebf5b9dd9878cea1fcb3394e4e78927f97982c5fa355c12612d9801d886eefe669e405f7ec903e8d7ca6c5f416f2da9d98cfddd65f6da7b5f0c9a770e898fcbdb1c7f499eb05c1f0fa15d27ba567a7ddd295f8c621f4ab2e488d7d705af0edddd779ca54891a85829942a8eac4399f241a17d5086fa83c282e2758bd3a7264e9f5a073a0f89412e57f8482e979831ac8667958ae2e3122606891406b35d1adb2add5f9d98da23df975f42b15e595780695d551a2410c811904990419035462b8c3ce8ee4f89bb4031d74722f2e1f23e1298c45d2013d05b2efcdd26a904748c67ed3e920d29d27da21782621892adc1922679440836f30412e71f11e7d36041041981be243f4f46d5d1973e5aa2bf243f4faacd021d59a1f88876a4e36337ea51ce878dbef45729c5d4688b1b5df9980cb92fce3f02b37d35f2e1c7b0962eb3d387865c4bcbe5ab3e6993b85c45365b6902a88d0680e6830cd01c401b4293993531d3c0f781f931ecfe28d649f387550bfa1fcdec7231112910e832cbf21dd5d21d7067470ccc4fa4049c5688e560ae7f9f568340d1d2fb436449d24a9380b798d7c899f1c7eae349cb8f27ad26041d679d1ed23a6b417ebf26fe9145aaf4499a6795ce2aa5e179641ce7cf2c48cf50b22abacb99ec4ab54f5afc921df9d8ed69d96fb82f5e5bfe976ec754c96ff9f2ccf393ba6d7dfd507fd73a8f9ff6bebb639e6fd44cfd06fcb4485ce2e63c5648ac89d5d24abd480c1266d1dff861b635cc326d9e6554f45748eb30487f78e7af25597eab731ce74fd8613ada5ee6d6e6a221435caea22162d084c2f4c0b44d20a017f088af56e8fb71b14e1f584a3e8c3fb4b7e679d66878c31f6795629fad293e4906c10c000382b160310370c20022308039809aee76b196b25fe23c9fbb78ab2fffc856b5ce33abf407081a005101204a0f88118800fc8045abb5e3c3f5c1c7071c1f627af0d203077a50d2838f1e584f9ef024054f8a7832c449149c64c0c99113274ebc490e9a944d7a9878615203261060824351138aa6288a5274a3488728074453888a86b4471463890c70390e792b88d7cf0fcee3eef201f296e3f01c4ef3cbe8e838d3eaf385a0d8bf243f631791b7bed6f779e692f41d3bdca5a427c85bdf0ed1cc8e2c2520cbf37d5a78e763bfdd5929d18fad241f7c6029015d666df88fd3d6ec254a9a4940bfc566f8394844cb36e63c3c18cfda6d55cbc45b1fb8338ef3c773b80f9ec389409e6b29a6d53ea6b6fbb4acc43f7007f8e344a2259425d3f1e501610f3e2ea7ad3211eb64390ff8a4250233ad2e305b9acd77585ec7f1c37aade30fab0df20fbc3687b308067139d69c873e9e3ea0bb86be0be2a7d7c2c01dde72d06576ca68c6744e1ff24a9a499c4748f84d7cf03891ae1d7214dad14748aed4d69ea445f56936225ce69931cc66d2c660ff57b6c4ebeee6a18aee8f072bdfceb51469d23e8629c9c3911d9bbde4c1ad0dd2de50976fc766960f19d1dd433f4abe74f7f7b55bc63fce4a8b7cd5868f6d763c6d444a62a0a4d6dd1fc676bcb9ac3c40447219b3614bb3b9121ddddf0efe97097de91ee72d53a12db61ea12bdd5f77e7684f08c4493309169f9c55a8bb5ded09e5d82455f48fa5f8b41023f92b89966e4a736bb337494244eb6fcd0766fbfa7f6530dbd7d1da98a5d98614099129a99547d62271b98ababba63d2416408204894e143b40d9818600ac20002804c084006202a00962222888a0186ab87f195f8a6fdcc7a538ff7ac6a5007ce7cb9b595efb3ff2cf75de59ce329e3f7a9ef9761fe97de7f138652c1e3c693e8e73fe686deb93d11a0dbf2fccef3c9807dfbfd5798bd5fed64a7be3117fde8ff1ec805f5290e5f88feacc939631ecc7d884ddc66a6738c666ae7fa4859128185101cc08aac80f8a30a0489022368ae4109982080888282132037404200b74f7ab3da01e8066e8fe48f701f236f41acd3ec7e9363be83fd640d02fb57655a3f952a4957f2e6be45402663a96e4cbb974c783ee36ea14910174c382007064cb07da6c05c11d9ec331d8b239fe6c8e3d3fa6cde8116b8b44715422bec53504cd35c088a6656aab952ed6f77ca36c2e044782c8cf41b79b2b91200081a05d3098909220a225449ac08818792d5152440483b95a3fbb93f6f3a425fa6a858a9aec509b49fe6f914f0f500ff971cd8b2a6c69af0a53b4570523b4570527b46785537b56f0f6ac60a33d2bb862e0d4cc747b5e08aa682f0452684f04a6f64490d39e0878da134190f64470a43d112c694f043db427027aba42a5bd2b1268ef8a07dabb3282f6aeaca05349b03a95c4ab5349242581a5531db041a73a20854e25810202e3c68b1acf08ed9411289d3282804e198140a78c60a0534644d029232de86e1b1a54a76e68a8d0291a3074aac6a65335dea99aaf53353674aae6d5a99aa04ed500d1a91a289daa3940a76a8ee8548d073a55d384cd8d0c1730ac70a23d2b6cd09e153d68cf0a27b4674515dabb02a6bd2b64b47705cf49060e78b487831bdac3c1ab3d1c08b58783d749d198a1533474748a460e9da2b1a453346ca76828a0c58c8dc9050d13b93d2610d01e1312688f890cb4c78496f69848417b4ccca03d26b8b4c7c40fda63220aed311186f69a8869af091727134ca9eb6e1978fa029c91174e8aece8a1533a50e96e203b3e1dad6ced7d41f70217a0a0082721000187003b869e94cb997bcddad189ccccf77762f1ddf32c22334392369c55e6e3a413690036b84ec2d9d002e7091d84140e5992de66225486d8be7235704552ae2cbab903a0ee25027a1d227ead466fc62e124f9b107cbf9e9490d40d51b8fe351b62af147634df7634df4987a91b8674ecf876b4c2471ac749e29d96015a8802b4a808c14d9142c41051ba390208b1c3da61452a4814a55410902715a4ebceb89cb42422405a3f48f08349d2cf86304477efd0a9964faa8626dc954b5b8395ee3e75aa065bc3ac8623a4bdb271d61abcbb6b38a57c54c1d26cce83ef773fd7a638613e6cf031c3a4d9607586b3533d9698383dc60f573a2fd0095ca0820e7477013ac5434bf7cbcc542bd66a6f5e5f2d831674f78c628e09a91d36af63866e0c34d1dddde801eaeee9ee7657b5d9bac3e7c4d0f8488fa4668b4adf91ee2eba7f5f0858b5b545451311e9ac5526a99604badd5504dbec38be523c4f48f14c91e261408a870abe5f0e16a4728c2047961c09f8f9a35974ffbe0f3a78f0e8619b4bc4a0a417eba4028e25ba916e2d04c5e32ca1bc0b41456a9b90e1931f327c924464def2356ff9b2b21a5474d4cd19d16e8ed6cdcd64dddc8b1c6b4a8a35c6280e960a5648e009dddd69e1400886705c200590eee67288c00f4aac2800034f7437c700280460e79a848ca0bb3b2444725802036e30400bdd5d82f1002e52a8c095277ad0dd270b4c200b8e0a171874e86eee0a2c40208a172a600590ee86b90018838596032324743747458c070d806800142374372c56d260f8f63b743548dd98a28603f2a49b0b6344e123c1c4efe67e98603707ebe67ce08200e2876ece07ae07283694e86e95788b6c44e9940d30654348bb8be756c65c75562966b2e3ad5d22dae6128ce7f8f34354721ce97c96ecc0e445fb93a2a14583896886110c05a9818868da6c63d36db61ef9177e0dfb1cf32a480d18affe06a98188a8cefc33e231a06f86586669781ec9f8d2f2c5d1b2484f82047fd8856db87fb41a0dfc9b6d7519f51d963f1e6711ff401e3d4a107c7256f0cbd88eb6fa931387b4566d2ea3e00e0f0bf4afddf0dfcf2f935912d33a69e151386f767a1fe9473a86ad4c9bd131a4b59790f997e53e933838a44808f9b42cb3ad5c5ab733cfb626591fff5a95fa6c62876495bacd622dfde339e21f0812f9b7836fe0da2459ee1f9e497866367b2e6be3dca994e5b5c83fa0a052f6e4140abf4614648bb0f82f14daa21fa06a85ec7d1faa1512df4480ee0ea253394274b7ed090d4f9a151a533a4d828ce8f848e9dc48e9784a47864e97d2e9d48c3074d7acefd0c0eaf11d1adc79687057cd3a0f0d2c77170ff6207e48cd18c28c2d3b2c571111f1daf0975859c5f7b3e50401e7e8e87e800c14e0fb9178dac2296b55db0456c318964bfb18368ef408f64a7140069de240974e7540d5dd323a00dd365a46b70d1b80e9d40668746a03b3531b40a2531b7041a736b0844e7180a6531cc0d1290ebc3ac5015aa738b0816e8e07123b748ce30cb91e7c6de6be6eae458649dd1c0f97a3bb3f80ff65ddbd010ee43f0a69eee67034eee67644cab1b81b365056a45e14691e8ec36b338489a3adcd904952ed959fe8c813112d019a3ffe882f3e8f8944e8080f24972be5228646326913a294976ea2eea64177d74ea57e48a56e48a558dde305574e7937e0d1430c7a0f89c62ff1c71fdb0ba56ea290ba215337de776d0e67111e3dc4fbb58f478fdb1fe55bccc19d1d1e164b665f088a3d87fb001dd3c7767cdab532bf568667ac7ecd8a2f6485644a72a9a406ddafa52d92ad50b642b36aaf1326368bc449d24c22feb519dfaf458649f7616498542dc5b0140dabbb753a45d3c25d62a547f77179bf5612e1172c35a383d40c14a9192d3c8f317e097dfe1b56fb83ef0723c32497ab5a92b4210cdf584a460abd04c8ca2aa529191dddbd80030c00874ea1b4b4bd2f84387f749b5d4669d8492a66288552a2a3c70078dcea74fce49d3eb403367e58431e5f8f56f8a20d5b282b9058910183151d599ed0d2dd9d7a02090d890f5477f70c132cb5eece53e65f44ea14250230b882ce7b83f51859ded0a76398cd95c2c4fa217e1129899176c1c491d2425737a7eae6bcbb51cdc9404a9966c0f74bc17c797a7348cebf19777301e064e05aa4603207002a3d8ea5900edba9924e77dfafc503c9e5eaee5aa7ba9a2cd971c0c16f1996e60eebc8c230fd76b047d981390f66d988e23cb05b0c06fb302e02e346a7b81852a925259b549b8016e6498a77869802bdc422dc156e025686004316fdb246b015e292dcceb8caf5e08181fcc4f934970bfc011c4b1cfacbbfaf16c8da3e5bfe9b675bc79166ec7f27938b6d9f6331743cb18b754e3bc6ecdb3c661d4fdbbc4ec3b559716cbac5e3cc98a7c67331cd8f292d535a48ef934fab51d2691020f803a658bcd65683fc1b71cd7a7dbd5f7a731060c614df1f027fa085f35d663f46dde5aa6177392ddbd0f6751c6910448094fc1cc1c6f16d3f04f183cd79c4f9b4d9b233fc487456adc58e5ffe89e353d90c6232abb4565372f3117f68467dac2d7a652b24662b6485c4caa40a20a80295069d56a00a443f2e579e2e5702a870a5150315b86e550e206cfc9a7ff605a8bbd2399b8e8fee246961fd98d7f2fa0d453ec493262906c1feda10f655dac40ed92c8ef66db430531bf6b7e54cef9dd469e10c91ee136d914212aadba5b16e8e4637a75333a39bcbc9d2cdc9e062f0a2f0a53ec60f833dbdb9bbe96e02b41785108730f14170bae8b61e60b1a51b97501e0f11728b71c1c2761b3fecd5f2cc5bbefcda224e71fda36b7189eb3fb6b4d06f697bf00fdf59ab4d2f457b6b8e03879db6f7f10fd772a0f967ee14c83f269e30826e712412f3acfd92fc44d822c9b80412df66c54ac40946704210dddd4e287577d038ce9fa49984a419bf8b9ead50b5fe356bb3907f956712553bfa771babc520884bf04ed0b14c665f9c97faf80782a5edc14110f421dc870c997902398f18c433c4e5721e222124a511d566121cfcafcd445fbb11c0dd6d05419088d7709b718d9c49ffa2cf8c73695d663f9c692d8b700d22f248747cd5fe77209a552ace073a0a2d923c81b0c0032b5e74f7e46ca0842e4b508296fb48ee8312c62f466ff66ae91325f058a22549c00248004988f2483409affe443c64042acdaad1adea824437bee30c6d77b9d3dd23f84017cfc7b7e3dbd11a2717a39b83d1cdbde8e670ba3917ed21610a0f095bb85437e7d5e6d35c3024b89010c3118870042a60302b961806cbe1ac7f841176d06d5429901e3d76507cc339e961f3969386e711713eed5e22474a8814152107781cb90a24d182255a7c2837e49224a9e369a3652a5af2067ab3cb68cd66cf33e93907e0cf8ec93bfd916c2ce8452be403f4f416b958a7cb1523cbfbd35c018680826e7cef678abb99007237ddcdb5e86e1db599314933be5f8829d993d45e154ee01e5af8d9f3f4eb8fe78f35bf417cd98b3eab40c2ab4248b7bbaa4075bb2b0cdd0d86eefe421068a01004238070058f263b9ae868d2dd5ee8ee2e743717ba7b0b5ae8ee2c743716bafb0a55e86e2a74f797ee9e4214ba1b8bee8642773fa1bb9dd084ee6642772fa1bbafe86e2bba5b09dd9d84eeeed2dd48e8ee2314a1bb892084eeaea2bb613a08480ece3c45182c3f06bb8ffc4089fe64321bce1a697f7e7e30a569780a11e7d35ca67b6c8f0a23740fbe1fbe9fe872f9a0876e1e486e7329fa88ebbce4b5b2fb35af4fc34fef973ce01afed91c121f4f2445343c8fcc3c81f0516891dcbfdd47b221a6402f9b4459e841ab5baf71c9d19de4fd3c9dd4c87b84470f2644334f20fca2fdc94f2452201a9e4780329e487eacd15b648b442644407822a98f641c5f76f4b93f14d6d2d6facad81e79d1fe34b1bdd0acd25c27d28fbf64286808df7e8717e9ad91e1931af47966229b15ba4fc7da7f919cf442b996f647c4e2fc232194245048a08c27123c845f3f9b43216c074fba2b25d241123e9c29497f6e7526b10561c64a7cab8da2257590a47b8a2fddfd8162d0d76e45b7dfe1f6471383b06ac13b7f0c1de79f616ab3187baefdd18fb119e41fbe919d07573afb983b71f1cb8cafa5b48ff9ac52c74f33f59092b6daf07d56e96d2cf2cf3f2cb3f60edd7e071108df7e072b2474832e647bf1fd6878d26ae972dd00c8fed8a4b842b7144dcc176de085ee1b96e25fafd46d7694b92ba4338ba488fc4058b5e0c7be79cb6983991a78e90e6b79b3f3b46a100230db91e80724ed881d53242ade179b6b1afc2dd371e66b93dc72ce5b4e1ac800c3731c270c4f182d531b7edcdda56eae1b260a1dddb0285e74371ee9cc2fc2fe655174b7955528bc74f7145028d1ddf8f647b023fafed1b536984c66a148ca136c0c8302a8718bf6a0e0e986e245430133032c84a023153388a267b044cb60063e7a92139747ad58496bfd4ca437d6837bf00c62e86e1196ed8865f0a5dd6671fa7475965ef0e1cf3fbe1874fac08dd6c9c9370ba6b3a804f02ae7b1a2858ca9998124000000831100203820180dc74352d188b42ad9dd0114000478c0668e4e9ca95198c39832c41043080000000000808848c380020ec9199b29cde6ca092fd24c0a1df591146f1b67160310d2d07533207dc5be9c89a6afb75f43283fc2a34ac56a8f3252f42af1f4de04dfe37a4e20d23ad3b831e2a0cc2cea4f985449e0f8c9b49d5d04d9732225be35bb09a74793826c1116cabc0052c26770b6ad839df3df4da140d1c86d3eca25aefee977d78c8ab1fa71a010032553cc45d827a29b43cd933cf293d341a4425909dc526dda43303135bfb2cbb740471d305d781796abfdb2f1f1fae08f0672eae20e0b5d674828690607256b65e205c8f0cbc40521c809bcb67e681d5c315ebb4b60565b3bc53cbf9462e26cef0493280bc4bcbc4e6a760d222fffe2907f333672b0e942d289f2cd9680c0e77791ee3c691a937403e3166f027237a2017855623889605e5ed27cea9520b78c3a7bf47f3233fe43047946f5328c28be8a2f5fe7045af74d8705b31475ecfded724bd636ee82a64215db1e92be016ea01d38270cb8fa32fe0a533f1626a9d2d9194cfee8c8ec99ec7877807de0a27bd2e35e8760db0c7c51d21cbcfb4f5a14fde0676fb03d8f3c6e38085f39c70cdefff72b624ad7dcf286d06187c460bf6d6396b9c9c96f99ae797ac2dc8bcc7dcd1068bd25d436cf38189ac0e2674e37698fa52676e28777ef7d8daa0bfb3af59604367e1070701b049f31dfd7866ec293cfdad2998116415116f8cbe9ce7d29a19ba32e28522013c13807313966e9b3ac774a4e9ade956e22c6cbcb197efc4725f1215be30429056ef2d24cdcbe86f030f8ec93ea8b4c982b12c277c784814a2d96b97e7671107ab77d0fd658cad953f88e7f0d468161b0b390497c73a6851716b1efc2b6300fd8bebee13d9cdb397dcf3f64d800914f07800afc65c209078765e21c8d3f4e4a98e1046f7bf99b2e963f6fdd827f70edb4ae007da7e388abebee5ffc107049850033ec976d393949385b4d2a50088a398c0dbcc167c5969c2a30a7fc7518b28e706f99cd947dadbe630cc475bd7d5cd4f3b846baafe6d0cc9e96b49556896fe13dac3260f8c776c8cc1f64ade97bcb8f32b9df4d7dce3bf502d15d1e9177e7a4abc3347b3cbebb34080f2b2db6c1b2d7c48113b87e42fbc9cc995e8cb6c4b50fa26552a9c63d010855fbca9021de65577ee28d6ad36e85889ea43de9e7d551887d7976490293920b91d078182476430df08946439b6ea43b99db53701e48ab53571b4bc25a0881d6a70f152083782bd9e1ebb42cbb37964e89332ccc7598f2fcfe3a18e2e9a25777257ea52a0d65e4410d7067e0efcd082f2d2cb030066233bcd3175b2eb8cef6001c0e266e86eb9e8b661f0e2d6279c872d4b286e5e5dffc7d3283ff1f98191d517cf1ae631f8f4ef48243e75dab81a9dc1af5c942581533fa898e0644e18275957b03d7e2eb9c275816ab249c4e40ec03c673311ea5330577fb1a6a4d765c7f7aa73ef963021c4ef235fd3723937b43e278d0f59e82badaa9bacd727d08a88d59c3bf8b9a343a246b7fc1b8dfc185dfab0119fb5312748eeb59f7154950ee1e9622bbec018cb83964be4e7d2e52c171c29ac635e6c4df9661ea7ad478e7d3feabc5a57f9bf97f7d421047af7f2ef50165aec1d9f36b75d61d44b9a430fc05b8dde1a11b8e771ac9bf4b65aa1da988402ece029f7c4d73ea84d4a19122ba453526183bf62c6131c935b6f3d14ed42b261403bfb4afd33f556bf87e560ace520515038706b6a51291252c5429f8cef8ff037d3c08b0a7eebecc772fc2c13c7deca4ba810c0a30f5b79208fae4a933f4da4848be146a643b3c8b9f9fb5d8fd12e6ec01189ecd73e9502ecfd2fc9ce47931ab8205dd0c89e59410cf39233f97ccd9b09a32f40ff4f297df79c15f576e91591a55ebfd3f506ad6b6dcd90ac0f7e0cd1e5deac6f5a06b960f8302ba484b49feee43f3fb3eaaa14bb2e0421cd3d6fd3b6942f28633110add4e9c0ae11e08ab32d377a865ef42ed5f26b65819ee309b61c75274fb596ff23845996db6973d90c82409d9bdc80d9703c30e01a997858643896f4d8da2a4c76a7bb088990b569509075f282c2dad57332a1b2bae82ff8d2d96acf71c98732cb50319974a99f533914286c88fd80203279e0961c4403a9e1c68c8eac2029e8993197183b1a1ef9d526198a7fd2692040e628731f3c6a0db1f82d370da7525496ad448c046801e4f280cd45755da339b8f49efc95c4a3403b4238b90d8ba64565f755da4994c65c84631c30d35c7daa2d011d16fc1b88d9cf347c42179a64068bfff63428bee9115c4fef55da27febb91fafbf9e5fc920bc416760d7ef3d809275f6728b67c96e6ba74b284bc6fcaa096a39c766092beed4a01b2b4efc01134844a0bd81005b0d35d6db2c3071711a15997d180bb771899355355b6795facc969acf5223b11d79e20dfaff495674cba0652cd43e7b3ec33ca13f824442a87ff3e4c4fb29a1cca2a9490ebf953f5604c61842aeaf3d10395efcff01ac15f5817f83d11cf8c316dcfdf7155aa676a5beb4034d080d3843951f87501482cbb8c179dfa45766c1df50fcc12b26b55c4b4462fc86179bbab3de4dbda19ed20c1185306e5487699050ec46cdf3d5b44b0b15c445010fea0bc42e60ef65f70284cd3288ee7b25420ad48de553eca13d7e3a0e2a72c151ccc2521626c76286067f8c82fc1dfd76183bfe714d9e873d2ec89102befb2ddf4da6a8a11f9dee81f9211a62c880f770947ddc7f27fabac536241705f476b067e2be765cf0d1befdbb72016ca73277eedccbbcce9e9179a501d7bdb49e796c20a45be34151daf766359170a56002af80e8a3d41076947a56f32abd32ff39a7ffb1d22028a4f463bb5852a64fd957b9e31c5b4a8b70490de3036c3275d75598f7c1556cb478374b9e1adb69907b5738a6232412988de5c2d373610738387ad73497e8a193a496417ab9d60e26752b0ad97c702b5e3df567ed0429d16136c629648c8c4a2c133c5b418c29e0a5900ce0a101f42bf11182902e855ad04f6eecc651af192d4cea8cd632c81d6644b478096c50c745cae7d34bc19c2119589cc01c7f05ac7cb385f140e7f65c3eca721eed6c9429c188b383bebe7b88839ca4616c68f67e6c539223ad6445977eaad5532ccab89f354458bf924cc982626178da4a484fd321e2c73d256589a08e3253096a619a96201e82e893e2fa8535fed61053b84dc2e97ef11814f0e286955b12ca0783fb26f39312699d7a755fbe2ba55a73bd58fb562715000bf0ef2e0bf179295b1a3b6c154ef85bd509e1b970c84583e06980d3eb04e62bf526b2fa52bbb237c11c53d37a72bc7caf159084b9de6e3b2229ed1e0b9ba7c58c65a7f5bcf9726e8a09605e5984c2fecb98bd985a94bdb4db3bf1730ea7008c03a06e897115040e46903d5f6c5ad8c77d6c260313d43e6edf18ab7bda263298e1e68af485e2d8fad33f565b816054037170d20818920f9ba02e754d3c0e1f6ae91b855ce0c326c710c103754e22a2610d91b18910566e4f2be60dafe789f224a9246950dd8033b07cf012294a6499e280d35b17dbc8916ea78a669b8bb73e9fc275dbdb3ed3b6502309ecc0bb69b79b8834927b671b960db5286cdbf04455b445e05e2cbbf352b0a40dd271c4327beef8aa51b26a17b2bb13dbe3e4fb05c43ae1ffb534749a0c1934973aced16b1870502caeb6fb939c7e07d50b8bb08ffd8144810214bb0ae689503e37a3ffd2d0e0fa5720ff91aa704da3b6e87c23fafdf41fac141ff3c62e78d514c34da38db81cb32c8256793494afa0437b10290209730ba714b1d6532b906d922d313ee8dbf5a76d001cc6f5e58e1b6eb860a525fe1d6569c64fbd65446601f7a51259fcd187f6c71e34069efeeadfb22fb8e848ae8d2c1b032023dff8af9152bbcd0196b31fb84e48d60d62e306018c055989d1a52628700cebe21ebf5465091d3fb9d8406cf5ca7cc31d1aac608bee4006dbd776a74e1d051868b791ad393956ab0536eb89eccd14b0b8938beaf77479f7141ef807c4fc007e6823a1e97a3ca6d89b1adbaf1b169fd778b72b25ff375327260c7e9ae46ae0056e5d418c193dbb30837d30c58f6e9dd30fc04f80c6686ab94e027201c7d8a5fe88b8285979bb288f2da47788ee99c04fc0d11d49a01cd2da638df0628f30894fff269b10205c042b5e7d15eb3b4e3760ebef5841596bc044d6f43fbb70985b70686753d13588d9638435b4bf838e9fac186d8b5ab3f7cbb6d59dc83dfa935d7a57b6dc488f240500bd9a043a5720019fc035efc1220928ef88ef6959ca2ab7bc0a5e228cc69851c3df798e306a0c088c5cda422844883c4f20e1367d7e1a00d39bdfb7d870d5c5f5d209715d0555cf2f8247fef73fbfd51273e9aaf6f502da738fd5dea82e2a93b077e8f6efc5386826892359cc89ef2e4b06c27e1930fcede16841cd4eafb31cbc87aea85eade8d26792de70c260d78810e4fc052ec7e22a6f1b81e63ce3d787b1bab629d2b69c5a85e965597d34a19c6688b009436156035bd2856cade97cb88dd494315d4b1d6d15e9640db2ccc54051a88b0d1b99191214f4102ce05ff92409ae4f40e8f02295c1c75d28a92ab40fcd06725a444ebad8090a08e6f970ce0502bc75025591809c8e9e7229d1ce9561c8dc1d8fac2fe771a6922fecc4fa9f510d648c1dcf220d70dbe35c8a3a096b3e22743b1518fddbd3e1ad215363e7f91c3469d72282ea19bc287755680ae53a698826e8226c2f781b77c325e6088c4971de1e3fe016530a8859cb6c5e9bdb4d0d3f506b88674c03b771794a838400b30dfb1d351b0122b10318cf72e966d87a1e9298d419ae8b8fa4c5c7b61cfec5376c83621f52b66b4f341bb769ae03cdec7170281c8b4af54e49da8c7896ecba1b2a0dff6077198dc866f3ccff45981590354af02ae5010245d631c32dadc303e20995613e65bde874d7cd36d0b2717fc11c4f5bca5d2fd83d28fe68ecf0df0176fd939bb9365c67f468930471891827513188c72d6d096d8cc6716d35b6ecf789bc3722d17305f8d4edd35287098edd07ddd2d784938cad9dd1fcf2029177e6ba75b4c3d531d1abec5ba9fc658cd687b10692832b02126bd18b039a174b0f744da18cacaf2dd0869b901e50aa34a59f4a02cab1331ece6e6e57da88fb58221ebb7382b62daf47d6753bd484cacf1291721ed3b1eccda2fa601f639f16f4eb43aa62831161dd5c4fca6109fc2bffbe260532208e2c9a7e5e7d07b71522425f2e353686ac473b88bc5c6e60b46c5b535da0cd2bb8654cfe4ddd2c38cab2369879be7005dede1384fa899a39029a705a3921d44a8d76b2ddf1bc42746da48270f8af8cd8f951c2ffc96fed585208f1837ecd0cc9fabeadf1c8066f41780726b34690dc45fcce73d796687887379a2286cc0fb8063808c01c4383208c6450ec7a472f9bd2879463ebd497632622dbfcf4a0eebc50f7df974d39cb85f430f896ee8c9f55d97b301dd014160e4ba05325c0d1e0bf8508f037b9cd15497fc6fbf66f551bb75607b8187eaf0791bb337bfc84d91f06768aa4d9a45b432b9df18ea661bd00d03bb546abcfaef522171a32aea55402f6d6579ff64141d936c7cfc3c39e88a89a40cefc5b0a677fd246fa681bf8280de4e5d1ccb5801d61d95df025e2547dadd0e18dc21303cb654b0799f1eca46b0b46416a8bf6240cde4f9302efdfbe2af3d453b107b4178385b93420eba181de60f65bfd5ed4948a5a9065ffa0844f95480ad17e01383cd360eff30d93b928248f0969eba6d3584f007a833d9c8d6ce8311988fb0d30e8fe0aa345ff2239b71519354cbde8cfd657638ff5c5f81255e087f121888c741079b080fe3a04eb131acead4e94014148a238c1df3168c00a56f7bc3e193ff894c31fa5c0233a1237d4643bd0f52b5acfca5017208c0fc8044dc84128ca98f5fa23149b4e0942ea4d12f9145bcbfebb655c893d42862edd870bc30695ec602522b1242cb716a41c7eb10549406242af3a6f54e69ae90e1f510b21e04ce4dd0ecb4980a2bcb4b98994766599691340f4bbb1c9841f14b13a6b2789714791537c4483695574ffac1692c797a5dd051bc2c194ce2135e0e2cce06ce665865bb55182665825a79349e57909e3dda83db75d5f35615f82381b5a6f0a93212da348ab12d0e4563475d0d5eb23c96bb6490f26679d0489136214c902cf0c3d587427ddc7f1f4c29fd986a43b09c9291b6b7debb308980144a0a1d851d374607f56d34ad6501f30d322447721b3ea00fc2da1946a1ff663f787afa8cc6962177c8f4685025ca1fe5429a236b49367b707ccb0ecc636dfead518621077708304a21a0a1f9bb82814c13425f86a8b42d004bd131ed9371cf0c506d0b6e0ef12991539fc5f8689cff0de2f629a1f655fd8bb0a607e12748c9b8be110ef73c69ca633f5b1ab6f7627a62759489d2f8906c321b1d7f09855929c7898be50108d1881255cb87d920b54fc7d0bc8e71ce10f6dfc82ecd0048d3b4447b6548e2553acc39e3256e3c9e49e5672dc5babafd6161af55365371c66b37490cd9eb4d1a083f04b5e7de230484ba43011e7df075d38da473c545c71594de6c4640c08b9022fa56750808bd65b62e59634e43eef20f5b335eb99088563106a8654be5d7143b8180f3499027f53e024980cbfecf32289730b4d9300397376459aca1c603b1af517ed7cfa68cc0b80e19400654b072ac720f669596e067860f48238a9234be4db1e646bcc200d4f962524e0c4a33d76b007e2cf9921dea5e95781604cb9e13ccb43425acca32816dbadcbf9a038818eebbdcc2a4090c87efa48faedb23a473efaed38e1c435e5d9cb2ad6194ba732d8491f167f9e71259abcc9d61eebc2ee0068210f174710f8992e286730eed642e5af4fe77b8308148cf215cb66f6d89102b678eebce90ee053658b1aba9ec7aef01ac3fc46558617ca207da27a7c4d767953fb324460acb9cfc4a2c9bd9217e3ab7d09123d24bf6cd75303ad2c79df639adf7749b10bb1d55fa85074b404ed69491c54aac4a35508b358660b60fcbd0361c0e0f30f89fb4b462412055c48d2e459d66cd18a7da1108fcd9386dc4ba92faf15c22fe1cf28bde51497a0b307a73011e2ff26652036317dac21731324f5f4c8ab88a1408f75d7e2fbe0b7a0a4c42822edd13a1ecb480ed7a4d1b14b69864ad95071c93c259e0499d824fc1fb0ffc1f11bc84cf65f8ef157469ba768e4d0ee0f9934984df3efbedeace7f8d2062e1951934c653d73e0987a192500d2ac7fce450886889706335c81818b6bf88dfa9ce15ba43c01c53678202715944c5e6b84cf7655385b4b65fe833643ed8620340a687f4df88356ac461a31dcdda7335e86c5c3d47ce0b3f4f31e249ec5f11cbf41043c2e34eaf14b6fb652966cb0c0f6818205e98d8b229f7fcf4526b010d00794eeacea4ac25ca38816765adb62b0195feadd20d458e28cabf6506ece60539e7cda87f1af622e195cdfd2fe9acfcdae206a8aaa8cd72926e267360c8550dc0d784c7294961f6514491803856355c128ccb6c55788d838f08226202c41848ccd81c22358670cac9b7ae2ecb4a755757f52053f98fe463fcfb71aefc59ee682cc5eec6fd9f90463ea1cb6946ba719f60bd87b1465c1346df92f52763d08d9341f752f5209d181a9bd07a5c57745320ef2518200dac22194005e76ea075db83da1b1cc004294069c6e9a471e94db5299e516a3cface34fb8ccce3cfd0b891c69119378b90c3d3b2adbcdcaa47d91a4f48f50a06e21708e32830bb0d614fcf88609a130cb8d46ef5002d7847d27ed09d8db50c5ce0a62ebda159c3d716c3bf766b1331a9ca85d6d2ec9bef0ab3071f1118ff9c347677df3dcf3126524b2009ec4e125a03865c243535ba4e8dfaa459ad26f581b8027f8eb581855b240a2712359f22de417bd4134579ee6b152e5cdade76322e5c7740660a469c9ff1b96d785e9e641b52fbde8385d13e8e9ce454d6b914753cb661d8ccf0e9741a0198bcd700bede83a114e56950f1a3d057fbbc2b4c18220284acc1929c536ad845850feed69c95e2ec89749d16df999c5b46de20cf3c4272a37e543da527e5c20837bc4336523474f199842069e95dfaba127a2225259320f96d3a778fe659120a2a5fa021681d45886144a1331060a28c0c1004a2d34d358c8c8cc926abb23763afc9bc4bd289830f97f422fdcabe782476681ab705bba1640a247c91ed8749d87415ab952bf9e9b82f95bcba6282b113305c06f1021bb87bf071cc4662ff8b67fe2afb8802fe07420d5b7343d0c60eab31aac0f551e5cca91a78970af6db3625c81d2a1c9d1eecea3e0fbdaa51cfa52e273949cabddfb99619f591211ff3516d4a9ce04af3cca42d9a35abaaf0e267289c8ff337b7aecb18ff72f4b26e0dd974ddfacd06fc1369d1eddbde34c4eaeb9fae6f31ee1fd13b8cb793a7268ea5fa902c369dc17a171d4b0d7bc7fb39c80391472e09bf60a10ed336dc6f4c19fb698d23bca372b3dd098f6efaf9b412224088d22f05c005b86c97fe1ff393f2caf3bd5083fd8586128c6bebc916b875d2cf167796906fe415981f46813b391db29e40ea0352cab91b3856575049a883701937a4d70fe81a77f61a52c28d6fe96ab06884aa8d7933dd8c3d01283261de7883141d36302f0bef932342b32c3a2e10bf1fae5e626d11b7d225e0660dd4c0ff79806912d21df1c08311509919b568e9e8aeb2057cd718449ba99d9bc073e2619b041337f0a5dd55e35237fb1091ee9f5f941e44f9dacc6f39ce4ea43f2e30f1e7077be904ec3ac157fd973787264a65a2396e95f0972eed50642e2fafd91e09a850712f484336fd3c60cc16ef1e03c0928322d7080f488d12564f9536f74ad3336e6c2a64406ed3d7421483e2c288bf9630891517532f12b0ee885641c1082fa2b6cbc6693feb7fc877330c4a00f2966bb9d4c48cb0bd626151f892a683e918986d0c802ad644e308e2dafb858c197d65b5c8dd7cfecee6aef694b6277e3508d9eb82225c315c1e3b8e78dcc7939cae5002d18932b643060c45ba2ab3725431c879de8093ab14bd21fbcfe953a73b3bc9ba5090e6585def3ff63977f28f6c37fe9ed5015f4be05d9372adc7c87ee9fa2b29c27533995774f7822f0dcbfaefe43c3cefcf321dd0d715f9382a28653c055e49b96ee8704e16375426694f4af3f6a7608a8dfe0120373ef478e4da40d3867c1eb84bb849bc5457ee99468eca1f830a4e3bf81bdec052b66aa0e6cd32b3936daed2fe099a431b8fb81146b6e2c35e743628105e18e8eb1e45441224f2094c1407e40fed8436cef4d5bf4974852756db39befa780bb8e0b5911ae2861b0636b8600e65b7497b107f461a90f6d47ec05ce1250c7991169a99023e102d8369ce3cccf942b67068dfe7f503b4e0c38c73301d49ddec8e37fdb400197c2d96998d98b38e63bf2686b4019ba40b262d62662ccda00f5a6932c3075214171f8fad3c79ea3aceb03ee0c1fc9175e41cd5a3bd76f44ea726e31266673796a1a7690ce764f781a62858f4c5252a9b091222188417e13db4a4a58f18e908188d7df9c9e5ef194f54d6d0f193888b52bb2abc06ddd7a5c45c333223aab13609c68acb08ef6cdc74d4a603bfe6a64041a274b92ca8444846e1960485c4f6ec498d8a3032e7d382fafc7ca8a6bb0da22316f12e0b30869dbd4474608862148287b3e1a382359fd80bc17aa43eeab318da98a19d6a393357d26731f5bb58e76256a321494f5bd65fa8faa690dcabb6730192fe71e8acb8b9863a0286fd40d92261b0ba2a7830ba8748a5c15d2457ce7a4a2c3623ff05eb38de8596750950e7d33e121c6aad0c3df8ad31b7f518086be4ffc72e0100fa76bbca2ef4362ae582e10b6a15ea0606cb232b812468882bfd89eb37ed970f339c3aad6fec49c6670dd9f2f839d1f5d088b5bce4c87db66c0e91ae8a9798f2b87cc25c0fce3b6201ff6aa164b5b02d6b060f4f7d7c4a029b5c29b952c428b3594c9a18a948f64f59b5d854401152a83f0251d4519c5b3d2faa61bca2374285c1fb7a2063465afe1917b5af2b644d65480a7fc18a20f1b628077fc5144bea2982a87713f40465c29b149a00f3469f20ed035786e98b601f831d000e7aeced198656780b2abb7bae7e59c409800cfbd1e35daba7f65114dd17b4e65b426ec04db01d947ca0093824987f4f0fca45f1adb230d44e17dc40f03bf82c7c1d17a0f086537a9361bf81644ed3e6c839af05040ad3bcd7f6743c65e48f1190f9f2677b404915b34607c7b393ba1155347f7b24b7edd58bce86811056041c75e517bb595e528d4c9b834202d6aeff342b9c1e1cd6d40aaf0ecb73c9bc95fca6588485adc093bce2333247a9354ff38a91b00ebb92f7149e09f0a592e73e1d294e5c920e1a1df6036231b0ccbcd09cf94b960223db68d815f2e43c29c1b70ad1f5a43c157e4d6e936a4082d73af4f52d049be2823676cb39eacc438837dc9c34affb7f13178c36733599545e0beba7d4e6510275900ac12151e8d9d56cdd184768ab7f683f192d88cd135fe7c46fd34a85c768d4e782525c2349628ac964f143ac41e0ee9a73b423d5b402bbc18d5bce05a505c0195ffd17ac7cc2dde019eeb1d6da6e926fac2d06aa7f3556c7979c82dfa5f006c10ce5a1ae987b88f0d0472d98cdae308b012b01c0aa56e9d8a6004dfbba8f9dea7c16cb7fcfba72a06fd06ecc540305b2672e6cb6dcfff06e3df39ef3aeb5e68dd6fed554baa146d4f9ffee7456896e69fa3c5b859b4a55bf33cb8e4e2f1f7bfcf5173e087da2bcbd678ebac792302b2b5bedcd8483b747eed0676c066d8d6e7d6eaced2a0911387752bc37e2af6d0a7df0317c8ba6f89682814b3904c8be39c7f55df764d745e3bccde3458f95a184c6fdd67fef45e9c2351bad7f381e9490d3d34d2e20ea0d7fc8edbd7165ff83ed98992f6173af33602f53d2c889d443baacbbbccc5149d5806e6f697d9bfd703eac5bdef63d35aff5ed4b3e9308b8b0316abdb5fff998c4b5bdf5455367e5f7ce7f65feb39635074ae5b6e4f1d5dd61c4ab9073cf9fc56da0e0673d7138615e944cf535569f143d086557a6eff256db254d5bb5cd0eb921e4fb8df44455744db3b2978270e2507cb3bf808aba731939679b4124f8868cf20b3b5d152543338ce3ad5e0aff1764c671adb0fe5bb3daee447a5a50c282142158655fd586aee6e08109d5b7a5ffb97ef13fc43b9b9e4c70eea645a915aa8f3480aee05f726ef73bbbb15bb900fdf5c0156827d83d66e4ef04513bd95650c1b2f62a08ea523d6f49705f4126acc44b8f681cce9bb962d0cf00fa61e408df041eb3144c985c254c9cd5d27f297ef21cbd902f36cece3e66ad70c2367ebd0f6c980fb16974de6d24a680fab9d29e1128b4f90fac7f243c121c56de246eb68d8f000a267d3bc87d8bec58a97f5d0c5aebcb17b8aac463f791411bea14d6d5b9423543eaaaf13b35f04ef3f820274c4288d0c91a63f7eb0018762d25b5db7954a835cca4b5d0e432ea1cc0ef63f965ad086905c1f3a4a05437f6adc3984181676123944e4078b1b7dd515849d6a602b10a63a456b2e058420c2d7ce6d59964f17adf5fd9f8b6266469489381374638c16e89ab804f44dbab29338b698e04118f0824dc26cbb363ba5188996e9b2450a5a1cedbea08ece98db3dd973b2f145e2e5a7e9b82c08343e5cbfa0e7131f423b749f828cc2040ddcb4d184671c353f145c3134cc48da4231c7d23b2f4d681ca8dac32de44111a6e040d3b8b90288c8a3d4ce429dddf729c08005dfef09c382a3a5c7d0edfe6c8bb85ad64feea05f690e2150e4dd814ad6be0995e879bb24c1ec9c08e3d1921bbd5bb5664edea6d949b01694f7ae7ce17eb970cc55b7bdd81596f8d4def2bef2e2baf29c1cdf5eadd7ed1c35d5a44acfd0fc0e14df18266fb63b16b02ac217ef975b0d3610a155ae70b2a8c6c5eeb9a7bc482acf01d82e611fbdce8ed14949e42395b6900ed0440ffedd4693e472a08a59fac9223ea42e1e63625bff1041a8521ee579b419db7f82d2502a57783b9693e317a9c49cc421a7d85518241da723ef9dc3fd5ca927c264e3f9e980526038e2bdc011347d7aae20cfa412bf6eade84291d69f7757aeb4bf8aa79a5849e752f311a5773331672a103f7760b070df390027f559303c843b53b1acd49b04f392b1f336263f60b21c57f9649be7d8bdb7b2b32bfcf94a5c9dcc397a32b3d14f7b60ca249bf88a46d824fb9232c9a30266a9d5524518522600a38220769d8e0c94640949c0e1b4554b4574d5dcf747e7467e6963dcb5b22bd25f8dd834d7388dc1f6edbee1c4c8b0255322708e529b09cfe736f6b07626edc1b50fac366ba12210bb39b0b4025db4408d361119aaffd1435564170ac5d5b362c8d5248ceb6547a566a59ec7788d3174888a94ca6500349ce16aa37ca862ef3d2d9c430d8980750c22f5510289933d9d493dee62aba17f02fb6c4920ab2ae6ef3964c23ce8f2ee764dde9d39e4ed8850f74c9a3cd34de3589107972b88130052a5054979256ee818a83fa093ceed499b0d14dc39280af8b055b4c80a89cd2af31754302296ba5dc05b8cba8ff8546ba66286ecd61172f8790967132aee006f16aa464665ec59225b112c79ea27fc6cba08bd70b8184aee7404af179305c681035fd6a2a957f46ac1985b2176a7cedb73e9e262f59d5683b3585dccffcd74239c6cc61a414f2e0abba60bc43389f889830d68a33f42aad32e99aa34ab991e8d4ce460e86f8d3a3a77648b6ab1bab83decd2d4079a8a5b36279e5f1706501149b8efd320835fc052b1420ef9b4e8fb76a03161e04b8e47cc55da9c93f120bb1ffcc23e472a36c1452f6c4680dcef90fe63dca198a3139b78ea052392400f694eb59411cedd06a4274217c0efaa321195d8253d68d92229c901263045c98322c9569a20c4b9366a37aa327059eb31ff27e4c10edc0435e2be61e6a6029599ce7346e83f85efa4a4864afc67e118a0393e0371e8be0ae03f5862a1ac5478eefa7b71d50273e55d420678b418c2016292dfeace8c3f05ad7475eee797871917ac0bfe2da6d9696c053bb17e147b0c41e36827986f2e1f72a907e30b5a27a72fd8d5ecd983e664e95b2650e80119985b87fb95fa03f7bada08d4c762487042627f267c661e87bcd466457516ac15109683baefa060e179847aafb84d58febcd3190d072e251f376f979c7604a4b9857cd5c927a4f4b46120aeb7a062541f185a73a57809a7d03d33acea03b4da3121c60a27561ad7df9f60808764cec5609f6085f644ee1fdbe89e91e4ad764725e57826f73cb64ef1063d48c9c883daee1860bba7cb8695cedb2b07b76a6315bd0f0d5984c956a2a0e67287cca39ae239761550a4e23eb5ade43e55283dccbe5c8500822e8792512872964d6594975b2268a097058bdb0fc5a3ab21c9314bd9df702479654d6c800ac7363ddeb70e3f80ea7b081c7b2b4d7848b5e174c413dd0ee39cd4b03883fc3cb7ac18a7a35d43023492c14514531d027948de99ba41e0ab85f331cffdd63c01981b957759f9b0909ccb4bd4602d2d522095e57817a4ca30260d24b612c8cdcffbde7fd7b33fe5d9b16d609c15adf8464c5705e2fc3ac8806b8b8c22231a2291cb8294c22beea3056fc53b5af4f37d19a530e834c96a8c4e94bf2e14464200c11af6703411e39624ac0179218f0ac159bac7f41824016d565fd2424429a49f15de6656a624f6d5457795269dac96d661e0dfbea493b40e336d384df23cb289b692b270ed12867bdec30105710649292c2ae02a82efc931944cbb8ff228f1fe7dab304d9d63869a17d19c8b88e902be95adb1888efb86c4ab312fbc0ef823b959b2663fbd6b0ba876bdffd32c663b794ef754f231b481bc33e0914871427f24431bd3738f029f3c14f0c711cb67c9dc73db32703149c7395eb91e3f812129a4edf978a89795732b996f6ee1bd1eaebd872b292d1f48c65305ce43ff19957af67054f6cadcac56ee8deacd93f9c33dc4d4603a7aabd3d51e885ab648abc4d2d53c6abe9bef820a0b72a9bb71b0809ad13be69e374ff0d9fa7d7ad91d840e3b5072141138947932f9f94e4c45f172a26b1391537da693b45fc225b85edffca8c0395133e99214e1610a89f976307cb21203bff71afd3ea3c8fbfc1852b0c6a1a5bc0299d1e645fde5756edfdd1362ea7a38eaf1a0177ab556bb11a85765e9d388f2c5c59781dafe7158609b399f54292f74026cced148dc91c0caa033b106eafdc5295478c808780bd9934b3601569c8f1dda1b315bf00b5857528d6ee99cef7d972e501b90cd3927ebffc72267209010570dcb349bc0bfd1b07d52f772129c7d30bc600a2e1aede1591a10c34d0dbe096e6a6e5555096c7ba398b5cda67d458cc079693af1469e708812f9a9054842ea2c70213bea438a4ac0d238ff6488327a192149d1bd4e1692e4e8eaf0d37625d121c94aa0d6be52d603c7344697fc690955060fa394381b0d80a1f1282ed6dff7d216d797963ce56e10c92cf64382277412fd8bea194fa00387f3acc660dc2b45cc591e9677b44f5967a4206056242cb630bcfb3ee4ea2f45c277a041b1939c7296fe6e3ca8338ff1decbfe76fe94b0fec3ea0064cd6f5d55234c77bcb9302b3f23c3869cf443b00733de844e7c1438389f624d709a528186bcce0d87bc168125c0c2334047a7277c1e31bbd53d644a4392293116c86f269f4c48a9ad51d40a5f918dfc0feb1542ea75b659a5307c6808ad53c1eb2edb956849d52032e7ecc4bd1c549dbeae9ef60aa6daf3129bf2c4cd9d7decaa44785ee166b1dd2670d2ec832e4ea46f326273594588f3e99bf52deb60976ad47daed41d49986dc26bada98fd4c9ae10df2144201edc9dcab822d2304b14107136b6fd63540a1509c4a3948612255a862b121628d7f06b82ef54e0444c2a64d531e2378f790d11aa9453335f3b78e2e36e758e18ae0fa8318ff6df64137fc04dad34dfce6155b47480f48ab5acbe33542b7fa418b1fefefae57b468cdc364d0253dd14bcadf58e52dffd47f12d3306f861dce6e1c4037eb547d1b60d26241508db5f3b4a922e35fb51ba8de6fda5556ab583e3ef1f50cf6210ce4dffd865541a84c7fcf56bfbabbe3ad15bd5afc9062d3109ce90798e3e276b8d9254dc1503c61c67bedaac44d17a1ba8538a01a58440f0b968bbfd9b47894236c2eff35dea3df06bddfbadf7e13faf188573dc8edd766a639046c2095e9c60a283227d2e0a7dc9b183ca9e2f61afd92e21c4ba11e3dba89d292ffb18f540d87565354cdbe0bc35fcf53c8efa6aec5a82050f1b29c15439007a923c6e0ffdf9376c5bd65dfd26ea10317fe8742b945d38ee7711cadfb775b58f6902350236451c13ea368277c195dba1baeaeb29f6b5e5e25f589ad6622b8e05fea4c94b037ae5c6e23368034ebb6ef8d8150a3cde68573535131703b58c83704b43c592fa66349069fa2d31155a27e31858815eaa55893c61eebbf41166ae9180c15e40cdd4cb89166e020a5b3637d8d9c73279c6ef11779a1efef83c6874640557f2d8a9fd8766fc2a9502d320efffde723aaeab4c64408b191c068b4c700638006c4cca279f223fade0b39bf6dc12b4dfec10807f942b271b029db8d27bdba0698492b8cb8537d51ef792d8e31c10e5fabcd2b25097da9ce46f9eff6d2bcb18e3b19327974b4dffc6d76283d94cb97f4fc5ecb35b1fb18c893a461fb593a4345304be0119a0bbae1961a75b5825d4d6c1535e756fd80753ef536aa62f758e91c5dee43c04d208a853d0387c86bf3355365bef8eae3995b417dc4744ca990c8c4145323e6b63d4eb1806f6ca846802c621bdc3c97661fa7a7e4d9fe580898b6d34189eec391bc2c59e9c02e7dd12f4312a6fa3ec0a01e0e62042bc97588d94281959c7e0bc7a71f0fac2393bd14e1fc281c9bbca0f9d638fbb21b04a5969c66b4470445d8857a920a43ea2a4caaf4d2ddb23273081dd0521f2e78b1f031f14707e983c66661648bc64871e28f3ee398e6da52d3e3a09260c43d2eede3ef2d2036f67455fb3631b657eca36cf93d813f2334e72e1a318bc50a149afdec5d1d968f9fd58bb93f114e91bd016066b9cd52e20a68d110f708b6f3e334d9714a0c44eed1a947c8d9e1038d8385997b5cb02be81b328bca0dad5725285881b58b7f950abfb9f7cd87d858030fd20e9e9ff59f088834f9d0e3d792865fda69ea7819e0c9864b7c32902251c000faa0b4d3a5936999ed99b2a749248de6983f397f6790790be605b404b07ec49a7db209953a5d244f5e2c3c6148e309e871157f41190f228fcf74673337afdfa5e6ce068b3acfd54f998396474b2e5a9f5827bf760a656bd9ce4a91eae85cb50446180d29fac717cc4af27654b1b84a65e9c62e31f33e4dfaf0e7fe6c746024e28cfa4c5feee99f581519edde99507365679af215e6a475344f292f1b792cec19a7d54126c4f644a8854b0455550ca8076d076b7ce213feca6eb1dd095f7a3ac22dc0561a79d5eb7c3dc27dcd2a1a5010c352a4a6c810dc9c902ce1e81b059accd3ae11554dabf68fc32f1c5bb159b6018f21612ffd300ad9aef577dad25186383ce014a9efc89cf98cebf491efec68d997f3e2070f4d843d07ee2fc4d3dac5d448edd03ffad1e8e918ef638e7672cbcdf3850433650799f56e38c21e5e6ca76ca2c261bbf2076fb3d3ec059d562868e9dd6ba74eab4841585fd3fd1ef999592876c298ee7b11a8fa07db4b0745abc81be9c6ff1372e53fa81143339ed533a447dd4f482479aa5e1625d44d1c03d2e428d48e883c6f31c4cca1d5e25c1749d17297209b82fc8e696214c929ee1236ceb2804ac61f8999f67e8839e4473bfcdfe4ae0294320116748dcd460b1f8a483bb81e89a2bd2630881094867c8e88384df66be299c4a03b2cd6ab60a6f697fddf3dd832a3411b96c8e24050a7dd0106cc41712f0b2bd90789f681d27096a40323a1547d90e8c7c3694328969dfb83d9746b7b9f250b62a678aa4e50ee698c98bbad3ddc5e56161d632f261121aa6c4cbb660ece189a83cc6a829b4bacfcebfa8cfde7f40ea2e7e3a39d10765f59d73240c295f134437691bf96b6da27d6efe146287126aba058d4b72f4b392ef05d5c01628887888678c78840cb625cf114cb66434f03bd2effab90eb9ff8e0a077ebf924faa68f0a5b21d2e5f239e8024d59840cf473e2ec4831a9a2b9d7f604d4cf775def5ef62702067aff7c93ac859fc1d1f9b063978e748e46ff6b1deb39cb7fa5bd5c5d287866c92806f888e94be1ef672c00ab1d996598ce631302903a987cf9c16174a382af8bcac9365822c24c3ed5cb076053c181b092733acc0790058698e5ca40f60d6aaf72f42c83973d14f1f4f41b19a78b636d8eb5f2d752d109f851ade62d38b9e3ef0190e86700b32382f3872d0a85892d478990d430203b5577a36589b643c08b35d10ea942819350b9b1ce0dd6c64ce2cde0a6a3300cd621a439be0b32c6a429b29a10bb48770405e4716f810b705a8215b339294dd86d62a8a09f534d221155933b02034b84bb65747127aee6bf12b8330a14a91c3bb92fe1cd1a173d7790fc579c404f5a414707d17851bbbb5332962e45547289dd9404be8cbc58931d503dccde52a37aad15209c3dc8be6f16fa0429b5f3b28f2527529df1a465856c46d9c7b92e37a292e05b8b9c45ba3cb67e2a1b11778eaf38a65b6b673e778e9b14c31443f7f0ca694732214896246de4243b2890615a26541ae8a1599c79a0aad1dc6083159688973c1ef2f8da7a0203b69b9a1dced6d98328b500140c87070f8884b6d260c7f9d1c50110bc45f208a833e5634d28b6309df79fa708bd4bc64906e52e80952401f9f939259f92ff0cb89ec78a69641e6a91a7c9c56dd7161cf9b7bac09d243983fa067ef50de5e7944d2cea4b7d1d2aff3036a9c0daacfad5af55ad4bdb3aca4a635dfb3c59c02ad37d5948b7e4a41a4e17aa18857bdea71401153968f6b72d02925278a7223291068c5f8d0657d94d8ef110365da5c5f048827da6a66dd462288421c00561674387de0775ba37767f27990fadc5926adfa0d79f3a89b1531bb0d7466e455aea06756b934c37710900696fce76b0e0739a391e00a0cb447a37b1c207750702ac9974c174cf8d1ca6ef2cc5155a2369471aaeec702f37fabc843f41b2b62dda2a558bd65250c5ea387d1a72261046d50ae42700dbc28f23d26789dfc5d74f52231b62e679757bb4dbbba4afb09d4fe99d1f044a677467e318d5008344e606f0d05a91d614e6c588c00d50deeca3ce03305f10c075e5f26dc82fd4c122da2a9420648267f6761226a6437b5f57772f5f61b0194bdce86d09b45c0555657db95074fa18dfc778bf7938100da0520e5b375c49905ddf749fcde160a579c09339ebf9fcf6cd00ed72ce3afc7158c0aa7f5989b6fceffb054cb90f9dd0a591c1a2d842407a38d25527671e62c0a471b959b65ae5347b27ad6d0c57ad69a290b715ae06fccf27797b828c90298cac34fa667c6f56ee13b73b3d0c5227a93096f3dd1534f64b7c506fcb1310f0bf7e678deb1b943985c5003475aebadeb3c2b1bcf2f94fb26ac29e06517f32679cc9b6b74e1db3dd8de6bc5dc3c1aac48757f35ba19eb7dc268d19eb905f52119e72a74186dc1c8c9176afe10b30825e941fb017af5cf2845fd0fc79718cfceb5cd3a532e5e6aa3e2f95d8151cffed3574d88a7b3a8b677073de8b0de1be566ceae0427bcf9ad57a28afb4ca8787147451a6ef7c7bac176e5d84426327ce59a21510cddbda28e4757caa0f1aa744440ab1f467eabb0208ecc41dcd45a9e9f22837443649466158ca7df362715c637b0738531abdb32b845ca4d2cd58fe8c87ae534ee5d6e7ab6dfba6140c834f706ed12e1a5cd7b64785b406bb119085468d52a6d93eacdd0b366f484cf5051a9899b3a37f0ac35dc36adbb57f1146c0c06cab75dc15f108b3c0ce699a6d6eb01cfa29a310990afc010961e362a98332c5ca1f4989a634000c33a022ada6da660511b9ce00c799b054b9931493a72dd6712b9b68fbb7de9c193a9d41e1d11b9a130868240d3a3baadfe89385b9ae9cf02dcba2a45b264fcd54941b11cea48e4bf635de2da51ed0ada4691fc2a75b003ba105f41970f93fcfca8d2c6d6226791b3a96200683d201a832e968c9ea83a3672bfb445660a757918d4e078ada3b84c37d5e1272964a77827d08b2b8ec8695415d391abde1a2f58b8d01643dbecb8cdc9b041f5d3615c46d43a3b92d27ac51b439eb5769c68dfe7f2271e422cfbd2ebd59fed94effe6b07e1cfa7e018682c0433155b683ac69dc22c8ff1158f7651a8efb3bc4c65d8557212b98da21c340f83bdccce553061f02b76919d75decc720a016bbd549d235f254fc2a9375c9d4e7a2d21ef91d1530073b841e080b3329048ceaff1673ca1325a009cc45d1cd49d499996cf39572babd72abdc45b5f5586e15b36536a35ff54dd737a3a39fc162f17157dcb7e2f612e72e78c10e0661bbeae483ac4eefa62f12157ef8a114f6da0e434482817eefa68f20ac175d4668f46362a49f2372b963206adc47b0333ff7a73e0ffd6a0b1304802822f4375469668e9274631a47f30d1dba744996d813743839d02ad7ad3fdbf21acfdb93748c4a5c92b340f4ffacda945109346147c34480c01942c045a31c3a7752399750f98c70f47c03d1011a9e6e4fdac8eb6425133569be77978f2916fb469f121ffa05b50ab1d55296b19825504a664ed5328c968b6370bd093d7b4756e58f5a473475de93a4b397f2fa09af2a12f5ecd8d23bf53d8a543d2f02aec22494249335ad7b086e566c7d8c44e039cdace65597b1eb6ad9bba217403bb8bb6037c2887c9133307e2eb2efdfde513704e93dff9578e0036911427a5be265e3e7abd7ef279ba044b11180ef5c0e869a8a88be95fb887459ff8032466d09db7ece51bd102b27a80845c32bd5c7e0631c9bca43529ff5b64e7e510b323a5a430fa7465b4858fcda6d591272eaad3dbc414e73cd340a953c608094cceac02e8db3fc4ead3c586857ebc2cdb437c2dd1cccfc358775fecd8072f27bf868e20c8ce16d9f4bfd15d126588cdb4fe856524e3b88a391cc44f1380115c33ba698d3a14583237fee660567e04f66502bb667e112072b32e04fdf40a80b6e72b414d889395ada50a3b7c33e98ba433cf907e0da1a4a3b467c415a8e1f9f63f4279443ea4d751711cc91daa332b3a0b56c3e8819acdccf6b59f538e8174173e67eec1fbe72c08360afe66707784de236010d13a80b37a3c6ab301bf3b654714cda6bb2199216d426ba2aaa934f978d95f2dd20978375c48ab5a0d96778bdb6b1849b2606383cc24dab0a756cbbc91514f782621b98deadd0d2e9008e873bd5276bd02b0f0e9b7141edb9293eaf9e3dff4c6dc9efdffbb26c1217a5139a6b8671b9c1be14fb99927439d614ff271fa44d7577fc8931a3910c3dad15181028bd1b8c69234117b8268fb540229c4c00689e5d5f89888cf8e14ce66d9be97916d97bb189e97ca7afd15536e89269165735646cfe94757ac9670fe51bdcd1cc5bfae15efc77d36009ad9521c0cc5cb464dc9bb7ae84514f9b972ccd474b485e22d7e5f047dd31283532fd1e063198bf8ab27d6b1aebc96fcbaa7aa29ab392e93ecd6cab7d4c37d41fbf8bf5ff685681a916d2906a561b3c3ebbbcb663b5036c662f526a8361c2a6e8b2e2f506b4fbfb42d1f58d61ae830b725b42b0611c32d0117b829820cab074ba148d2a0f7404db1fe8cc16175a61564726d32e6f754d092ef34e5d7b1b8adbfecfd38b4b7513839d0b5df3fbe9e5f8dcb11d4e873690716b9e88754922ac2e629ae947c7b1b5fd3a394d4ff0ee4a8a220025858cb575cab4320fad8634db8e89cb78255c9f1e61d83641e43372fdef3521b59da8c6cef300f20dc7dd79aa0f63c6c059e0e5c2aafb3bddab8f3036b1bd4c1b9008386f2ed750df0df18e2898c847731fd12c167fbf2b298b9259b04801b82be2a4cb3ff786efcabcd559f4ef2fca1d94310ed18d30b6dc6fdebd8e0f0989e572508cec409c5617b9e3f70ba8bcf90a1ad677171d9c6d666b64d47fd20e817d9d707415fb5102545e6b0bedf6bf14987d681d26a4500af1ee1238733fe114637a3e44cf3af197669945a748e662f2e3553eb7bb1bc7db8b06d77564ce8d279699c046cbd7f9b4e5c131b224e6ad817b44f65004c222de3ab588d8d33059764f13825d680b03654857e66011af72161b5e0bd323d47e98f96b0cee5f53a51300ce362543e98384819fd6d53c2e4a69fc82d4e19c4129c92ef9d8bf1e9bf8fe7eda3954f03de347252b29fe5923249d57b9b17b1058fb003e2c4122d18091009915817ecdd2e19a559531b533a178b1d4e2ff65e2a179b011c9013aed27799cb2226f0277a8014ff1519a600628b416c08c10e483d4359787043d31dedbb762e905b01e50aa06aa07d8445d6379e41b4eaf939aa96ec3dc5267e0136a374bae40afabf58b52cf473b7edee36498287293f4ffd30f3980fadefadc0e932de9e5a7a5d7ae3ded27da3743cdc4c9726e256176422c92c6370e11ba2021dccdd8156cdeb083c282019478dccdc69fdc1b38b30c49e4f81c2673703055df84c9110308dc55fbaa650e24a8d6151500401fbb2e0fbd6b4873128d602ca56a50356bc7c515d38489a97159cdc11b13da2ad21ebd3c4da45e45883705b01aa1841b31b64483a395c23756e7540888c2d3790ebab53eb7afcb7d1c98a6854a579922fe8e32405132a4e2cfa8090cd650de9bb83d7ecd986d01247a641c0fb4a76f72f1aafd563576d3fcae3f10267957dfe4cf5e23d8fee3db973ab23cc44acf95af50d49d5fa7d39a8c6d9c8561774a976df7d6fe062c08e64546e3d1048cdda95edb61c7fcb6fe48b68ed7cd3da3cdc9e5fc83d7d7991b69b9a0144ce57086603005063cba134d8e9a998042f4146f0148085a65c0db262ef391b42a2154c93cf036f94abc2325ee80ba7042914823991594b6198bf462de7d8c53508bd0ffa63fddbd8d71e54cd348c78e146bcfaf88faa5a9639b82c9377215b7b56c0993f666a84adb33c4663c9aeb0aeedb6851abb785f608f38611253bc9ee9347d04bc657d0c77619a7523981076bcd2029a8760cb968065f23a37d6aa68f07bb21fa56765f29b605177131a32fde8ab0ffa6be6f320316206fb72ecd3c4bfcafb27bfc54794da3ebd9b2cdb1a3d634b80fc7567a624f3cb52d3532099c4b174c81c7e35f9191104214d6b1274eeffde74bd74b01080befbf01e7a62e2ce9304dbb3556602c4a9bad137187247fd5ee755e8600ad59f829560e4dfc6aa10e01b72832e017268502c4039f3292d8ec79f4dac8732073a3b29d00427f2454aedff5bfb8b51404d328bc611c8bd3ac7b448094d6d521fb941a14c659065f30a7a381da52448b1984b23ecc88ff33c7bbf86224c4078d3d2382702255152203d0674ac335ec304a019f067862ee3c534270c6ea4dab883d6938ed2d69cbf97df71980fc86f3f2875c17d99bcff83c1149c0adc534d3ed21bf398235ce6ea40041ed39d621ce21e498c2cee20a17f303ef353815abaa92238535c33a92b4c0f480f4a00bddf5b67b9d7f3c4be62f72219ee8d17b7730055d349900ff9a6ffbe15193ec96b9e4801a3505e6f92544dc5498b00de8471f5ca66658a2b04916c815519b9b0672728548cdf3c59f67302b87064d52567aa6af3ab33db240e30b7ec99e31958fe1ec2fe71d60010e83c0ef2253e5f13edb119edb857862cc3d6141d08cd30bb51f1b591482955fb40069bb2a284fa360c0f3fa56a3949a461ce97764f4155601d0b16791c2197935a7a2204e53fb77960f82ec48d02671e36fc917e6ac72c3a787b3366c6af1f7a58c12070edd28bfca63cfadf4ea3d9dcd3e33d0fe025d358f8b996014fb1abf48c45c8c1aa8968d95c09f95c60e2fd2a73d7a034e67413381e29f5b330c78e6832e0dd4caeaf641fea2f2412bda629eaa553a5c5ba429ac1f6cb003bed61ef926de796ef1ad48c5bc7169f8dfaba272e31d4a224cfb4164b8006ed093f98d4d403efe34a200dc970c541d869c00a80aab3d1cebe94a9745663536a7ac2735e6bfea254562fcabdfb578fc93c6031b7bcaea7f4c183b1474fde6e6971ed1b1acacecb91dc90c61420ff247953bfc52be7724588438ffa63f1630310cea59de3619bf18c16c8e233014bb6a0ba6867f51d7690eb198709af206c3ab90b4d39522bb4ae8e7ed2060aeab7a1e5a3d6abc63e8bcf5f52adbb6362d1e23b23a0993f7321f0f985c26f3dfe41d801731ff8983f8cf968d5e18b016f64e7333a78c2d35e695d9fbcfc3382b385af2a61e02640fda27e5a494d74617d7b859878c8c8331d91fc5721ca2a81aac2bc254a06f40f6175d7044267e4b086b69b2296b0c3b0442059db1a8860a01fcf6a331352e968b81fe8364262f554f612f96f95c6516436a58175f1651ed229c500ec686b7e3e69bebfa3d30e089548440062b2df382c88d49837de0b4cae4f89e02cba5e2e6aa4aa06da6f53f491048f2603427e4127b2b921cfabbd68c2d23a7beb92073e66e0da18701f2071dfd7d4fdf868bebfbdcb98a47f3a3aae803e94a257ac1223437a9f495abb9ab64d27166789096facec577d02db0d7fc63b0b71b14f750e599649eb3ed1d7282420b84d2d33004d2998b0eb739eccc802de9851e80c47ee46a3f92b55de0addb6a5fd74a07cbfb01b2c35613d27ce295e6da86885a018525e02d05917515c4ed08b064e9c57bc68e240124bedab82a8cdbd57b53dd5afa69b04c1ba9ad89eda0f448500f3c2bbd185a62cd8eb22c8b1ebbc71f04c91d489a056569647c2de66dc4184a17564e8b967c7d18efd18534dd6b46796c0d5a157960bf04c7872ebd909c802cfcf7e7928fc267fdc7e26f7a4bbefdd361d5476d77a28de111a7b56fcc85fc330a58131b08bcdf33966a7a05ee57c24e3359331413ca5bd32919af85def69cb0829ee062fb10711b05e45a05e7734d8b65d251f75f32b483ca666eb3bb85da1bae58e54e2c2c73093abe8f399dca1c1d036c1e28630c9db191412e74023af5e79f09fb1f8c3a076f8bbcc583728d467411cf177c0e9de5318e3503198f1aa0612f368d1c7bde5fea6fcb63570b44415b51e21daf0e91abf864084fb03c119c1f6ec365b87200df9ec60b05c693100753f2e0edff7ea87e85c1776b73c1d1a1e775ee56291dbbae552c00d6c78c9ecca5d62a95943b72a79cd60b7f42390fb9768fb8e3e41d2d36996fd7cce3410be59032f63211e1be9a4c0f829ecdf41fc4fc885aa67410c4f7f8f2871c2f1fa530e9e005a1b9426289a1bbe8dca82530c3ddbb462026ee4c5467cfc151a7942b4612648d19e7776509c82e60f040dd6725bef561c64205663676e85ce442418b0c1d203fb64ee1b6c9b55344475efd813a9c82a46b5da81a091f68e27a2c0fbbe12e64d17d6f5119050b9164c3e5c618a0ac589b6126e69e456c74d1e3a715e20e4e9fb5c9873bdcf088f21caf8111e8f7714020e92efd10e32e4d77527f93f502d2455c3e06d34f9e5af05a567f1fa7061f9756216fb98f09ed294ba68e94cd65357a3413b7bd2fba81be1c5105b68c72250432c23a0b2d170afa3f4fa128228bb7328a5a5e278da087635c9ff64433b98464d85dc7086a9fb727d6dd2040cddd3978546a687a7af7b0c8766819ad924b2fedb447eac713234404ecdf91ddd4b892c69a002d702a28141029affd383cca7a59d2148bacafd8b3d1210d3ec63b297dcc6d0a08fd9a3cdfc88ee6f5060458c7bfdc1abd7234d3f580c71981d11471c3d93f5d5c67d461573720656c2de572188ed8624a22c46fec8c163c4f683879c85be004ed042a2020c72e8931f1f76b9cc6f9b1750fb59e1f423a193da4000ed5c225cc8b8bdd07f096808570813dcbd0faf2e943e05a0f7efdd72a407b61e9c4af55b9266c40e922666efbf4b7ab8879d72edf2a0625ed279d218a831e01e5480311994e322a67cb48fcda70abbfa736299ad77ba97e156fad184179a44d42c88199ddec3c90646da6b24152f85be8dbcfcc4fa8a5c64fdb34efc1b39ec6017c37aa4afb2f047fc31013d0826a372c3a7a86533cd40fec63ef082bcbc2d6d63c1d5ff6632d7f2dba4cf5425f067115001f201a83668bd41be4e05f9e9888f0c84fc2e9ba992bc511a1ff017366fe4373dbeeeeb947ea780ad0026185339f9caf614e962612a2a4cf54f3eff8ac6ca93231707854712a485c335f7e13b940eb3774b7e88348cf47ff0c4e738439369932d40040e304bec83a9ad246f5db8bd487fe84e012600d5eceb17982ac89540e0629062c46d9826e7e5c2044512837de563be49b7f4cf5a699d5fca7341071377590ac8892fcdde80ed0803bbe1a847fc9757c1ca699172651b3771beb4df180f1dde39da3a14c06d9b687b18f2f033f85c5082f311e4b5c1f7d76fc0d08e1844307f2ff61dd2e00f9fe11b56f8bb0dd0d3b8175f29b290a602156878a34e26ce8fbcd9373ef88d25ec5f69adebbf0cfd1fcb8733d6229e95bb27e93bdef67a554b9ec60f3250839cd9e3fe97edfb48325f2832567de3187fd51b37d8c40cd52cc3272184df6e611a34fa1360babf4856680d34bd6abfdf908558ab7312d8d9541edad1a89bdcbab82f4464771d69a3fb8192643a5ce61874222ca6bb03a6530de0f623a7803a09ff01f99b88639bae147adbe3d6310647c74c2bdfeb23a59fb44c8717293e843388f389cd8b5de264033a06d1521d7cbac8a1b37e3985e003622628a4527996e46ae66654a785d09225bb5b5d16f302cb24c48320d8f03e4015d269fdb2878cb6c046296dcbde8d817b7a364e848446cfd8b7f0221b7b792916e3de32a7aed3024f530d4d42196853ea72e9f697d30b95506cedc1c670e35d408ee53108b919ea7788df344250d8b2a26bc2e5607002fa72c16310bc8c6e776a433861c6b8f73c46b1f7369875beb10ba1ff5daba10d0161f4820024b312def7c96fc34ed2df2b7df83e0df401ab24c0b0baed36aef00274c9c9c8b1115f53050373c5ed6f03748d1577cd2084e7488ed39531124fa5df8c2666621efd2be06c99e614a0a721a1687ea9b51430006a32a11e5405b0738259c7960d69b8a49c56f3d9acbf670fe73951b085d7f97155d6467461174903d6404d69a8ee97ce7006eeca0c59d539dd0feb65bfb9949abffaadc4f3b059cc547d55977d82436a699ae4543f4a1fe8318d8a0f6428e8069ff2003c12ad4564deae7a340c37c6aa35407f17c970a6e2748eb9679e9205445b184405b2ac56bf570733a55df47a55692bf939b63ac86ef894c394c9a8b9d18e08015edd06bc995d00e6940ed645e1ca11298de4a9a8b152bee8fbf53be5809d6bf61a8ba6c9d85325c758e7d8ddc4c91d3ff29e6755d3898bcae3747d0e02972827271e6307d263615a839265b38485554ffe0985553fa65f6aeaf6f55f45efaa3e12ce3341b493e0f29853df09965910c926c2cba5c3db4aee23328c3d9374f1de67cbf83966ebf24d92b7653948fd0664cc933fbbb8c64b8b0d1faa26e3701bd48a13157c32e7a934951b4b40aabc410e5b57647cf1f9b569511500c882cfebaac782b3ab5c943991263bb074d5312d7cf16ca3132aae1902e153203f014906047ec52f028ccf968e38bf628e746ef269767472038b1cb0fb0941352702ec3ec0cbc2f34673e5da2f58c651a97dc7e1e09c3627b7820089ca8146835b3b515cf48ed7491cb6dd5587b386073ea59e64bbea43d1c2c517faa90bb8e6524e361945c2fb4474a3ea1b4bd4e3c187a54bf627b30a58cf86d2780e13608a83fa209dbd85a4caa7b547003b9c6ebf7fb3e9e7367aa75aeb3ec09c387fcb1c454ba7e973c4d21d4af0621c9ad3b8a9c1ba17c17766e01a4899640e1eb99d5d883aa390a5d1cb79f3d6e70bda48b590cb1e9a444a2a22e4b0eab144169bbbf4899f12d247b9f254de84ddce110a4972fe36535c92cbfa83cdd4d6d9f553c4a062f804ec8c20e6d70259c3aec1d3086f22ff63dd74651cbaefb8253cac45cfb4a258a21a9c408f25e0bbe304fbebe38757ae3402ccd546d4e53958167e6bc805cfb6140e485def2870657cec2a276d63051b72a5a9a76b3e86a0498bda461a0027e0d810a3162fc743badde35f38c5a71ff6c5f5a2a02c2f08bb1744a3223255d1dd67bcb1717838692e4f48c774ef43711c4ceba61232e406bb68bfa31818c8d968c52198263666074fcabf263454e3a51fb4e61dbb266db42b43f741c960a93b529cf7527f5e6a05f80fe4707493ad4d1091547cd918edf38630d8486f5d6fb03b45fb4ad3ad8c030bdaea1820f7bc058679fbe3491a97a91c1e00e06c80e6883a1a10b378ff3af224623d723f7b815d681d05c80367da7a36656492033aec1871ce70c0d51b803036e61cc6f768d1b85a1d9199e1add6562a7cfb85723a1849b83aee3e84ec6f606b586cdf90476e7642032b663655e66785170ad08722fedefdfea1c0be259d40b3ddc606896e95141b7a4515b7b7e636195c54128da58e40c7cdebfaf1223cb9ad97655b26497a2344a29373ba64500c068de4b81ddb5469dcc45871754fe77c09eeee51837092022b4dc060cc1a47ed6ed1cddde442ee14cea1e969b74860d13b0e1fdd1837eac0cc28815ebffb1f4e04ea74d1833c45a4293cb03c075f44c22fe54f07d444974411b0e5ae9a9339a61678a84f4fecc8d07bf8992faea7d6ca1f8cd35db7cd8b4cec8ace56c2977127f357ab840b5c990ff403e906fa899d8dec191af6801b5d687b15eb693adfbeed8df31442f479dc588e6329808e68aa5aeae8c788e003a7eb2eb73415e231cd1f45221251cc74ef0c57ef9675b320e38bf1bf1b2d68db1d4dc56d14f39c92e7888ebfaee330b82a16108a8d747e2f9f68acfea079c3f6f9e019d18980dc764822111ef4d365edeaf5e8b778aab9ceebd805ecf810f4e565e81d1c88370671d3320bda8b387287e05842c50c6ec81b154997ec3ce98a476d052e543affd4a7555bb740a94601aeac5d9f9c8978155d8a9e54e4d84a38aa486254374270201685f3f695fc2bb034e3f336e6ea4eb5216789eabc1fd4179d4c7415d934c0c5ded6094f7b4b1f65391f906cfbfd2a4a3d2d64d8e2dd50c23ee1ba6dd264b3a7b102cc056c81a38ab645bb7df11c257814fb340c3568c0390c2e8fc11ba808f2ffd382c80af9e4de64910cdebbb348c8e17469a6823a9f547ca4d39881ade67d7fcd1bd762fe96ef8961cba392a8f48de40cd0fd0703386e587cc03cd215ef09660a1b82b8bca8f97ecd020fd17ed72543b501337ef8392d312d93500ccf3b12f92ecf1b1bca4f903d6c467aafd1ff2ae44c030cbab4714d77e7a644875ab58ceeee3469be6bde71ba27a3ea2ead9294ad3dd256759df9eec5ad71aa5164e0efacafb25c05ff0c2ef1fdf6591199f59b950d1968b8b50b62692b96ab2e28cefca58fcfd547c4224ead734e01e67b093778ed07209a2c9431a3ea0ccb8563a93b572b315d115db693ae20cf2fe6e694cdf23433b3bf92553abfdbcfb921d6682e305abafafcb7437ea303fc4df6b1a5d20cea0bc14103f6f19c999d3be70fa57e6501c9669a30e1e5ce41b4fa6a2b0c351fc7800d920febb43186e8cf76df316dbeae128e408880e137001da1f2e07af1725be56277691cdbab360a79f9ad52c35c4ec2a0bd7a7a33e16aa57e927ffe745508c54f5a0f9a9ac5d16e16a706c42417bc73ab3279b9cb327f7b9506963530670342185647cb25f09a331ba80309c9ff08d342fd748cfe6ef6365fbd5d1a0b75400e8ec659db709733fb80bb7a0f78dadcdb4ec1623cec17a665d06f5ce7c9a2155a36e8ce3aeda6065923a490711fcb7565875a6bceb3c9a8ee501f635a6c81b1be72579128a292fc17e349162446006c585471080a4a93229927c8fb85fdaa71e04c07d20a10ef96b735a9e860ab289255018ab00a73f627936dc2d45ece30cc9a1e8ecc72b8e2a60fccabed0413a942811e43279a65bee45a4a6c3b18a0e9826d3442b05fa463bac88abdece752fd13a81cda8cf028c2f9ca672f7ae8010e9185017abbf8b22420cb60cf0066d2dd3233c749b1f2c40ae4074cbbb6ae846072486a10eb4a089bc4b17a465387aeb28339d1338f1f2322833e5e3ff2fdb7bbbf7db20139fce10d8a1aedf0cd91ce37966882d149427d4bf4e1adf3b893257117e37391c2a49a12e4b69a3cf47868acdc03cfb23fdd668c45a0df8c599bcba7f0382445cbedd3859473674ca45f1c11cd518acadc36eb2964ed09236b3be45a1c5e853c950ff43da381161dd7ef34809a831b6463ac80546286753a095eb89a883dfa77ac1016c3b3b7058ca85b703ead1fd904d0032357ce6acc016c583a1035542e8a08466b9d14f3d3f4757eb533f1c9b5af947822593ac00289955632077f26de2faab536a2c2f3df05da53220af72fef88fc469759700a984383fa955003398871fc816744e63043f34b624dfbf4de9f2d8fcfd8ccafda9c2becb2a071960e4e70294748c5545bb860cf44714d730c86e417dc4f8968a624a33321ba51759ef4f75698e6e0ee1686fdfea3d43031bc2d56d70f59ad133a73f92f922cdc2b7ab804d2f9b75ca4c592ba375c43f231f47fa8e7cd3d8760db711bf6974d7780cebbe182a17a99c4a40ec8a358d281226ee9e77fb7450fdc6e1c92e8401ce79040243d57a9edc57910b9999b768ab2ad393860ea0c28eb2ff3e6e1bc1b0d0fa964a9ef9c182980bd50791caab117b096296712fe097d63de18782cbcde4d16804172834db4cbb1bab41cdb0560e2abd14968495a99cb88d71c8a8895a1774570c02014e83a67545a212798a35eed8e50e74daae0513532d4a521caf432766986dbcaa4938b5785c4cf14efd41e5acce1c5acb21f36b9df2f155d0b220cd4c16f90b7cb2ca13b335c1a728cc9a51c8f40374b6983dec84ee589019ee950a862544d235925aab82eb9c6ed4bda3640e8f4e060fe4ede71ecc89b3782115a2328ab4b8fa66db0bcb68bd0b973bc98c667061db58621fec66136eeee308f9487ad250b91f4448d0ea65478635fdea5fcfd7278c2241a48383a4b46cb09d066db07f65cbc5020c81d8d56055cdb65535ff052ba57fff2d2274131d316cf7979ba98d9fe6071dd917780d57eee188a92ec72dbc8bd47bcc4f53b1bd576a8101c32eede2872c8cc1c98cc75eb102713bfb98773ced88e13c0b171b35d483623925b3ab709d6ad39dd40d0234bb646da64b9097c785d45bb45046a474c4f54e39a35e1813e51d4918821bcfc307fc8147aed41f2642190eb32a17a8ddd04c0b690fa828768358fc31967d3358815e829ae4c55a4e30bfb2db43b12576060be9adf41069354a5ac12e0ebfc46afb5b1fdef9fcfa7f00477f6b417b8325885abe7980106b80157b01c1f7cf59820fd3cad589a56fe2f3ba800cb28f9c72adf7f9d0e4594039f58fc0fda309e96d69dc44ce0bc1e692c171e8caa2e0b5f7cde93ecc8552e9da521aecb5cf264c9bb6c9a3c5bf4fe785245456eac15193e7dc69d49bf930522a7b70550801914ec48a0a11070ee942c882143830ebfd47e92ced2ac05dc9b4c7c0aadd0bd395f48001f8f03aac086dd6a5ea6fb2791fe73d3ae18c9158a64fdfd7b86b313948d99a19d63e64d2c1ca9ac9dbafdf212b7b8d413e0e0452c109c60fbf021c27e4feebe2c275620755c6f026673bd1dffc435fcb35016beeaf173f95d7c8b18a3c3150e3f2d318a9b8beaeaea050807a82d8c7dea930b8332f2f0cd87c1dfa6abdca0c5d9abcf27f66c438da5bb3901456bf725f31fb78798c7c223526f58b0e32748f8f19428e1a059c7f55e8530b8d9f94640c4e6668b748b3b7becc098648735f60140fdaa9183105a02565afefa1711f01ccf68d1740430ce1d061f2e68d0313c2c2c37452f23e4e5ee784a08c53e36f212c1cef50bae11fa3f165a99aa3623e730f9b3d4784cdfa4012bb4cb8b37a9ab4afb43e89af99bc3dde45ab58e0545c6ed0cda93c894eba0d666d501df7ae57dc6d543f710ec1a5c69db5fee9454525709c2c9f3975c4e2dc9d99b7815a3218c82462743dace51900abd1bcc940d8d3b6e3245225b654efbc3be31820b08d326dd64670b0ff0299dacd5eac79976716e906e4fb238661edfd839cf37a69789c173dd6c3e299cbeb1d344f197adf1b4590c30273c2ed534f1601fed0d7b65f069e077d83146312eb5f105ea1727f561023e69bba050c96f44eeed0e24b3a9d4645d0154a37e99b8d5001dff1794b964ba4506bd9136d65e15f2248f451fcd26d3db438c24de6ccfece9e9a00206757d1f302ef33fafa6a1914e415c8bfd4c8a4d24679c800a8228150cb7d29e681e311df3450db9e9cb92dc57287cd753e49808c9012811b5854b996aa85266069580f6766e266fc26924d06dd490654dfbfe59a64857cf3687a21bb36e0e4fce9e9964d0d9cace7385ad0c492ec6fef8aabe3038d3e5b961a1fe4c871b167bdcf48ca28954e9e93b311e60446b346adc374cf44fa4fa04ea2adfde12b21174e3474c348a40b15c3a5b5c2d71c74876db6dd39e37ecd3594019b6484813ed0f1c36e61a073f94544b519806e594e392fbb0c3e2ed02b808d3a38756af03bc43223b56b5e694a7ec1144c3a8caebfd89a5bbc6c644c59fe1690b3c2d64a6c01169d7123be98c1d4f8eb5bace8017da3ca31bb0536cfa3190338cbf079c616371afd4669458f80123fa60b76217173ed8ba37dcbfcc7c3e7d2a0bb06d55ebfdbc372d68e50a510e1d03488c1454de0550a4be9816e07b7171fcfaf237e7e600062ef0bd8135744b4274263c05e163af3795d35a9ce3aac4ed6d2ed05cc8f5ed8b0ab3e0c9350d045d8522f80518198331305e2ac6f83f1e3b9a8dfaa8ff925e5c1fcd63f26cc03d2bf35b788c1c4e163d75e03e064206d12613e5caef2477f38fb92b5c9652b03bc54be41b612f1e867f24503a570128927265b824d168c9881e41779b9384af5ba94c32910474db932f987b536dfbea1dc547d475b39a004bafa1f30e51fb7287f840732a28b69f44642f6c157b1d61528ff9e423da3a3ecbc52b2a5efc067635378a01e7660fbded4dac64221a02669a242094271a11fad67fa2266ec5be0ece78f7dcf7dd8f07397c3e1c9fb0c1dfb6968d551d4f001d6e3edd0a20ed9e8218126ca8f9604c9cc85a3599dec4da251d1caf73ad368848d1878cdaef1bcd1efde977eb0b00b65269400a41734ce3ee28b3044f71e794700fa9480c11f6e88fb33bc2d36b8e5a3935deddd4b6f472c180858ee6aa4556d01f665b6e0b74240cde574c1c4e68040465765b4bf634851b02384079ad8aa0f96fe8a0584b906c36dcadbd1a5bc9c8a4422881eee62969c3c0ff07a6b32135119e26fda58aa8eec09df96575ac07ba36b9b90b1a39a3acf98ad78271dfcb1d8708a174db1d685d9a4fe1869bff95ec5f01fb0e8213f1ad92bdd7a258acb1f62c84085a8aa09e318d389be0544819f8b816929bf3a7e06ccc2e058da3f22bb0c6dc194fbb5cc68e1ab39c96094cad13efeca415f7d1ffde7a0a2a3cc82d674f3a6f5453cf2f62c55166a4ce4798df470462e72686cba584bd2c9f405211310da1aa130c610fd586e1f38289104ce3f0f114de50a4411116dd900d6450edd764c3a85d27e10b7ab604323b3056622d1ceaf17021726b191b45683d2fe070a98270081c6b08588c03792c6ae248c684072bb68182fc456d51bd5ad7ae9347993c8acdeb169347aaa16e89f2b20421485a1c1201be3352901886b43190d663c5d4148623e2a347320cd121833683e7e76e7bfc0d4a025074cba11112026b59696e69b44f3f2779d6e4372881022fedd711f1348e392b32b9b73e21b84d7a88bb066545a1958e42308f658e8e8d06b2ba7c3a33e67592ef183db6eb9809e76f6328ffc1808d690d1fd318e668669859d84ed032b6c6b3051eb71a3c6e31581f9542e256a1fc9eeef8b48a66707c0f761718ff1473fc5c1d1621df063723f91f460e66f3037c830da2e1ce4ae00c07608d1cb0261e20c19e5fe01b7c900df430f1773801632b806bfe81c5eac109be0105b65d1f990d4346159f28f52f1dfc0eef95bd0a79dd9f7e12daf9eebbe3ba3b867ecb30782c1b6cf9b744f2f3c75a304e170bbea35ce43a8982f09afdb14c41e65db51a696836d5844874d9c6358562b2ae1b8894b5625fd3522bc7171405db3ff96d994d4886b7e07659da8ef27f69eb42b64b68ff535071398e3604aec798e3fce828da1044d07aa6f293f532529fd0516ef5285a94bbbafbe56a593315e40e3f1903e3a369d1f0e550a7046fe2b620a1e83441615502241ac27723e97b29466684e2148d76b4e7b46c64110a054684820861aa9caf665a1b194211d2862e5e9a75f7eb1c612ab78960b9b48f4a15aaee35147080e6b82b29480b33f7278a0909126a53da0aa4c288bb2f96d4fb70578308e8e183dc87d76bf1fefe27a44ee36ed7fbc04c76b4d9a09d7e7f41cf353b844b95a2ffb9ad2c57cccbfb2c4a94b1378f7d86c591471e642bf138d16cbe8f82ed989e063ba820f5dff6276edf82bb01719659d1e2045a3523f3270fa230115b204e700e59249b78ea1206fa317f037d55987588d481b6abad12579065d63a2cff87582c36235610cb88b50405653a903cc24da2049c58f22890df4343212bc1711047b01804b0c19afcecf30da3d487190afaccf985a2f3852683c0b8dde6908baab08fe63c6cc3952b15940f6269b14638e4be74ee3c49a5c85f27f7073c884afeca18904b319356122d1a020fea850645e089e59b77ec3e0ae33386c7a1d164cb0ca60ecf2360fd084f120262091704cd3fd1b3482811d0a4681a3bda7781ab43cf7c51c64dcf5809609cf0d6f85e426f54793d8548d3285b28a784eace1fb5c71d3ce4d11d09a039f0fdac10457c9510988d5565a9df346c3737ffae6a93d40c244c6a861014a2250643c92c2809a158cd97cb0bda76e7f44d0ec2428de895478fb48ba55a9949ea3c272ca531e30e7605d31311f9cc637437e74e799c8135cb2f08ba59dd13d666713619f4193cd8487c1923028911278f0a1cfb18de46f757b8959a424bf719d5fa1f2dbacf3cae482e42512864e0f2d685f68112c653526831a07709270adf3271f66fe978e780db433c88326280607b6f02b7317e2e66c055a19b43eff8271a6fa5a8195dc2cdd0bd798133552653d543fad9f3cf1a14ce95bea2ec4dbfb02a0509d396d770a21d8f02ea3d5179929540643e543630f7bbe9a8dc25d6834f2dabd690acadf094577a534d911400e6b38416abd0b38fa06f1f5708cc8687d1e514c5331e904704a9e0f298e1aeb3692f39da50c92f15df81708250f35c11c49d56e2ccb042293cafc96a4b94098a1940769929a0e402a1ae3319e40208ab8ecf809e72b9b9dcdeb8440d19cee66551902df8c4d03150a1a74d0c2ea12487f56d2864b04fa8bdfcd42c7e2600ec00d7ff4882ce11ce1f99efee3883c035c2e4c42267b625308f075d4a9d24d9120608f944bf9138e2c3c8583ea8dbc90fa06bbeb8265168402508efa77513cf6d121833731e5108d76c5006710ecf37c148a2541b586c58ea4bf8a7c3508791b0809a43271d4f8700950d1a00dae09cbb05e1e832fa94095415cfc1cf60001a00299be38a575ab2d06003b8a7a53316b86b36a1b6a1755a5ae75b6e36da6243fd503d13dd91eaeccbc2076b0e210398eebd291ed4eb61f29fa5facf93880775eaf71188738ed9f93b73a7624c4bccf5d3397d62b0edfd49863005392fae9309382a0d6ae73eee2612d60881db0395920096b97e01ccb215d387b451d68622fb76ba733eb61da51d2820948bf04d38c5e9eca803875e9eb1c7855adcd36ec4818ac221de5db6136519b5be8a6a649e8583cf75edd2419b075aa37da372f31712a216bae0e82f811a012143fb7a7a18576ac59ceb13c0fafab434b4f4ecb1bfc72fe67c44289982d1cfb3c91ca2349b1a14d5eda1f29439217f91d76b9fe5ac8c4fa494349443998a2dff4f046ef0a8fd42827325e0138d956a1f18c19bfacef2ad52903093e532f7fe98d2ca7f79b75416c5d0d2a60333e6800cecf0350b710fb1a920832049ac562e57d3b1ddafe56e15da3561e280c7bfdfadf4f034134ef418f8d4c850519e971ca5854cab692b123f09342808673b79d90ab28cf77ce2dd4c01d85673ddc9cfafab0db6f3dfbfee39b40ad5df28ada392edb9301502a86982a433aa9695a09475e4ff408ac549f9cea0d958d286564bda029a1eb9d998a499d977345f063cf0efdadcb8d8357c469f1694d964cc82d92153fcc47b3806b0c8ecbd019cb290d0c24cb19359842b23e50ca4471d27380780ea2edbc3fb67bdf24cf31966eb67a62fcf584900aee0098294084a23c650b46d3829238fd364519e15459e2671c74607fa3ab0366e481c7bfdb36dc84326740e5b95437f55c53f949dbc2fbab7809780bc96de43c7ab1fcb11fdb1d941632ba3555186de85e8a79c39569aa3e1f45a29a7bbd9af96ce4aba12aa46fdfa7f0b562e328f7328935e9ecad93fa1a3be53fe907d6bec008e4a1d1f80fb00915e16298727287ba20afd8bdb3ff8a7434fa0df79ea9b32ab95a535ec97f1ef4100cba9a71c35e4e7a5818509d9462f808e3c85781a141ef895dad331dd6a4babc36d1a8117911c1a2dce82465cb4bb4289fcbc08f8ef7350ce212e36edd035c1e71558a7645474639029286732ca06a7ce6c25c0421314535061d40c232984d94b1dfc300d930acf722bb80f8fc6fca0a2561a519c928db7924d6188a0db171d9c45957808568d578221c90c97bb8e8205b4c9d40c96a89ecab1f785fc7b892718ceed8a607ceab7026515d6029cd0038ea3451f114d10608c346d288aa2288a8229d8072b0ab62d5817fff0c6754273ad005cb94584e6db56dfecc56a6bc9955d726bd4f162dacfb1764331aecacd95dd7b3368c47d556c84b3901242ffdfcc5a4202ba156e0f7e0f1485a2b1a9291a7ca2f2a8992996c5990303649cc191230ecbe2c0c1b9806535875ffc5b424da14abdadf928524d56aafa4f564ba29c2a89e653a828b0931219d4546fe944ba4f635295b0fc13532ddd12be4900e3725a62591c35deb0a090d1410a1a60591c322c379ac367bcd84616cbe2b0c11a978782b3b24ca6352c8ba3069787c2e4043695484c3869ac381640c3c2a5d48d290afe33f09b4c373396c531c3b22c4e1916878c319a6a8924ee4fd1572851c2ae58628824942849bdcd8d4a652a51a1c2a61215252ca79b26a79b8c17105b3a399556a91a850b4631b14a551bec840b4631215bdfc81b2e9fe5c51b5cc24e66b2a4505a567faa419d1ed7a04eabd30d6a89e692688eca4a75423101259137492c314811ac047cea9fe82aad8aabf2aac02ab18a5791552c8b7385652951d2572851c2b9b12cce4aa59a3265068a131a2633541230aab2248ad00de050a54447f41529cbb262380eb85181de004c58d604bc90c1a2800de6b8a07045e13ae442c195821a6cc173c8173510e39eb8a8ae3d6c7e384017345841919826688000cbba385c786098011c2e90811ea8193020071c708861595d585d7cb105175ca496585956298a03a4fe742a819068a002804e6f62202580009dde0465606073c5926bc925730525b29007088290830937ccb0a258531c8007991728c17a93b5a513ae9f7a4113578c948c6c5481241208150241640890922420255f535a8df2a790d068413151c99bfb53a84a364b54259b8ae55432d9d4945c400412b8e08ae5c4122de881b54412aac7a8530ba2582315cdeaa7b0e00bcbb258f0b28293f5c61a5705b09c4a5e6ce1804f5d210348201717d9e657aa2caad58330cddb4041cd5c9f42a592142952a48891536502245a3d9755aa74b3240549e44001e9043674fc2105cb2a0004fe90966585e019263063d4c58a0004fc38825557aa2d1e067e4451958059d6a5c50d91600bcbda2243026959a83ec4e8830916e854026dc127554a14a3e54f1f2a123859912489124b28011a620b2e2159e57fa2444a0aca2aff131008043a590101d0165c1a3d16fc232bb8a0059f1168a1441245804e6f1a45e1c981084c201148993d226059113694169acf524d4c98ea4ff954949afa9aa2104208217cefbdf7de7bcf39e79c73ceb9d65a6badb5d6babbbbbbbb59638d35d658638d35d658636dce39e79c734e29a594524a29dddddddddd638c31c61863841042082184f0bdf7de7bef3de79c73ce39e75a6badb5d65aebeeeeee668c31c61863ace79c73ce39e794524a29a594d2dddddddd3dc618638c3146082184104208df7befbdf7de73ce39e79c73aeb5d65a6badb5eeeeeeee663da547f85ceb286a9c5855d8b185a54a896aea8fb8a5236e4a4505957a2b5c9840cd7ca9096cba415111851694e99960f20f40a59a5816474aea49ab15ea74c29509cbe254299c2b96c519591687012754898a142ef5096ac6b2380be05861599602aa0a5f4a99d4a066542b9b9b97725a92bab917755a52baa2d4443ddd803e55bf84edaaaa6e2ca809fe93966aa35aa94a9f7a2ed50432d5d3cd10b69e9c7cea66759353372b0b22ad52250baaa093e85441a61b5505d96a126124385598ea8d03e600826571a8b02cce1496c5a162c9ccc10747ca9f50335f839a62591c292c8b13c5b23850661640ad3899326a82360185c90c1d498122450a1dd127549a8012c5a8ca922894285972fa2c289a37dd60541472899a5f39c1823261277f2a6139512618a03204124b8b2975dd2107173b52a9aa0d070107589deaa954534a5d5509836a6e4e5fa3aa5a40a827b09c4aab14ca2e01895e268e25a82c8b738365716c184013a6baaa4d2c8b238000585655e1fb29fc0b78303e38bcc025d414a8950d97d46d0eaf5026d50a659af2e2cd050219d9d854254a4636aad910b694ea8d2e5896255b538989e30d1e2c4b8992918dea0d30a0c8b8616395ac6c3d52a5dec6f424d9fac68d0b0a13cbe21c89c1b24ca914bd289369491b50d8f0830db7a694a2d842660d42d63862fd1a57aacd115c561c239c18d54a75230584e55520d2aada804ca6254a945816a70827c6b20890f2f020a34617407cdaf88821930610d250001a4740438a08db1316a8033ac390330cb1ac2dac02675439955036239933a0ea5351da154a942c4152d52792c0a2e2524d8fb5a0b00985baa31469547373bad9526b30aab99b321e197a908100320c60357733461e96a59a6251262630fd55bd271413ec4489921dc4d0a36453475a381ccbaa43460c1c2c4e01c2d0c3b2c270238c2d966581944802045272e50a68a5aa3657e00abacf040c2dc040040c2bc0e8e18b0d702e8e9588655935b78a6a09fe9a5f39a9f99513d5aa4485175a2c192f902c91e9c210cbb264baf0c2125512a82e91e9228a655922954c17368870733715f0816559542c990a6c61894ca6d7a2aaa0245c54cf44056cb0da14a7253dc54be1228b656d81c816a92d4296658956aac782e5460502255155d28c094ca62557558ae2bf894a8b1e5ea44c16512ccbfad4cdaa7e065d519d6e465764f952ca082e9fc5f2163d1133020bca0406cbbabe605997172c992c9074c10a167e585a6aca89da490b2a6549aa4a92c1220d9025838517a87c72c2c56463b3e455951485860f0a6ca184c495510a35ba4252954ea50c62429512a956a59a2c5c58b0b09c4aa9d514254aee63d46dee660995aa9a46a9b7d9526b92d8526b46afaa7689e66e92d8526b684c75025a50f9e4240a2e358aeaab40cdc848c08a4b0a5130552511806289442221566f5299fe0a25a6bfe24d232596657501011540e003aa4a22a92a090211b0ac550a45528150a8959257a5fe8a4f81fe534d4e9f05b55271a951fef348c5a5daa854d5741f60c7f50427f80304a04a8930125c3460fd4af5a751ea57a551cddba88eb87f05172f64b8dca0050324557d6289259230d5d509f580520a455a62a444c99752ab918d6a844555535715377773d32c0b35d3441628cddd54d3c88442d991cab4c410a024aa2570a9a694c8b2ac5f628825a024d84912f7a718a2b91b5092e66e905c07d48c1c50831df06c642063c364506248410655c30fae1f585646a1525196a84a51ac50285c5f8aa9e2fa525628d3947f4069cac9894d4dea0926d4a626f584655d875c3e30c4b246af44c9680a14361000201472803a98800419dce18324143080170ac4f46144a68f41ce009de0019c931548c0031746f0a3003470f1c40d20cc90a1a911071f7c1851051cd6c0e1068574a08909e480060c2584f052482132a636644c3cc864015d3bb0ac4b071721570e2cebc2012132a529c89450c0a55445a66459960584eab281655d35a08117ac2ca052a0b7a81903c860d98268f52a2a8325094b26d3a0ae6a1319874fc3b2aca719e1d3a7feb1d42832d80dcbba641003eb828175c25232d57f4049b5ba4171a94f0e2073650ecb9a42972b164c0d8ce5b13c4a5c16cc1c17fec85c30160dd7c7866b862ba679dceaa4e1f101861313f3f174aecbba8123b238d62585e700970583c4c7a2e1e5b2aeebfa7c1e27068e755d5787f3c475c15c9cebeabc3c8073712e188e0d52aeebe582b138970ca20ee7e5058911d0e5e1703c665c9eebe218b9b0c0b98a589fcbc3e9fc753580735d9c182a9c1d3817e7c5c3b99cc0b9ae17ce25c575c3757538312ef8746066b86cb8aeebe24cce00623a571c17e77ae15c17a733ba381e23451ee7c8b544ccf5097594b860381c4f778c7038d71034c40b029e8ea149270ac7f2589c0d5c9e0e12cf877375ac8f1a57112e8b63d550430dd6655d9e8b7345e18ae110715d9c0f87d3b92e771d71c55c47381c0ee785c9250487e3e15cac238a218718035c320040070e1bd78793c3e5b93a97c589c20119b93c16a7f46281ae5c63742c205c7059081084d3b95e2e0fcc25c3d56983c38951d2b964e7e2703c20ce912248aecf75c1304fffc02e8e919718ce755d17cc7529b9389c1f745eae221c4fe78a2b08cecd75758cb88ac4c0b962602e0e02383e707ce0f4d0b13ad645c3f5c2e15c32786ae878383970389cebe5f2e4ab48e88ae1c3b93ed70cbe03c7094c0c4538978d3902c3b9a4b862aeabc3b93cd713570f9cc9e18113030786f3b93a17e7e25c4aae1e383170603c57e7d3b92ebf3a1792abc875e4ba2e242e1f38463a30578ce7e25c9792eb7ab1812380cbc3b93e9e6b7262b83a1c1fae4e87c3f1703cd7e4702e1d3846ae22578c87735d9792ab078e1198cee589f15cd7e5a00b07226292e814f1b93a5791cb83c355a488921814b0830f17013c1787f3c281f9ab8601b0189eb82ecec5b9aecb080bc6b2b1ac50e09a421551b04055d0b10442aa00e2084fa0a2162104548880884503c421d6143a70f053ea2096143a50108714205050a4a0a3015388521f029ed0e183159ea83cb049070e47cc3a83079c0832841c08235724c205867825113922280c96e88a177c30e2ca1d9c248870009504c48828628e2452f8e10ae8c80fa01b0060cd11800558573e6758208f16967509a24a895eb63052001a7481290253c433434c8429d2e9e1080d163341c420793112233d4768b83c475e461e2d1d193a321e43b478a3cbcb0c1c98229e2432f42043d0c5c81447b027c90c5870de0e1f2a9eeb2589167451e24913325a703c463c4f86d042972464410421585c1f25323f20000b8e47878e113617104b7c8a28a4cbcbcb0f51b618000d4c70d171028b2ebae450848a2302382280073419804d8cca4816ba24b12ae2c415346a8029d291e193c5f3851858c4786678e9e1a2c161a1843a8a10c1832d62b6c0c60c9c183e089081991e285e017a6411800f12234d8c18e0c50a0f1130330b13d0e14416789461430d6c0b19ee133002e912c34dbe801632341aae2978e820019343c4c208cc7c31123343c79d38d1e9c148932c743102e3448629314fec409b1829f2c4912938091374b9c193241a79511200195e8cc44083600007ba188979c2071b46974fa786cff522c58b910f122f442cc1440c3745848879e2c5084c0e32345124e499297283007830800e361011530414520c80859118118c93c1b9932830473c303a7c94746291231e21400880290263c473c4070a8f44c0f5d9a103c4c7065624e6762645028718233614712c98ccc4f0629078429ed00b1e5d8898c1d3c4a7888f0f45421e1e68e84e0f5974111d717572c7084fe70381201860014050a73c4240c80af4c8030f0d804101096c5165c97faf30c00a2b55a6a03225ca93043ca1443a2406280001401e415e9088149ea084032c51802074c801660e1bd4c00e0e48410fa0a487011c89e1251014fc01823becd04006e898230e2a4884384274813768a624f2852b582b5288820a46281934ca28e52590300273c7196678111f18d2813b94cc78830062301203c3c30e252081158fa1cc24c049132a07195f74010044600af208011e14a0620a8f3808c0830342ac30c5124ac422302f7b54e00f11d4b18605c2800006e490a30c28334b2021c491cb0b9d2e70b6e09902280a9c257894c021c20791eb104e0f383c2852c8911d7070c019848302ce1e9d3c38593c0db842d70f313d7c78902107ce0d9c015c029009c007001c99ab06cf0c9c183e46384562623830301f8ee7ea5cd78b25030d9d1d3a8074f18cd1c5f3e48508d00583052c6ae04097cfe7088c010ec1c243477b6e38a2010fbc80d1c5f3a4880d4678c0418b2e45aaf058e9f810c3eae5484c9318f962a483040e463e34e812e347170158814511efc451852343e8f249a4cbe7880e3ce872641504205d8ae03003070689cf119f34bc18400c39b09185478c2e34004103101d23648e88c14126912c3e45c44898243a34749288d140974e147dc48b91970f74e9c4f0a28327490cddb93c473c498c34f9140153c58b0e2f465e1a70440047045004872236c054d10143162f3a74f4c8e213832e056880a706342a400f1e2547687891f15c1d233a4c3c518edcf0c281a10266079899cf0066b85e62e87c3c473a9d0ea703d389e91431c283a703430506003444312203f3027375603ccf7384e78ac9a1b30316457ef878a0cb0c1fc042e6c5b3434c13597886904510239095481894e003437040880c62708365ca196650260ea084a34e5288c21142d440430c8c02ac409949e4063bc8c10f65b036d840c01b43e8c12030504109f2b0e3089101d6b85995a14a61810a530042213b78411f14980003acb05205ca8c134d7ef0e1061b5070020ae41182094860d4030fa8d30f330c41080ea8e9924818b490052b1470830d323d8081202c50410948b04719647c316240155440997132c80d04b1410ada78e207870c028317a800100e68200c2eb4a0c2147a50880a00418108b6e8f2d8099591610a4838c21064f08213fcc14707ce18e3f188015628800a2714092543c8c830c80d6410c705ced8e2310312e0a4094542c90c32782c241c61901bcc409013fcc1c71e1d40838c2d169000274a20a1c45f0f0100198f9508128e208419c84090179ce08f3d3a80c619648cb14511460bb0e2004788bee0852750d03043107830438c30aa50c1ea18230c2e5b405024914e183860f87881d385180f78f0e0748063c7d538dd61972806233a45744036fcc0e1e1da0146874e0e170e9e1b2e1b8a04000000e8d4e0a1e1c80c35c8a0c3911c62e0c1884c1198981718cecbcbe7d33122630508ab53296573c463d42d9d6e60ace861250b2b0f90b14273058404742a8154252ea99aaaa40baa5682b0e283951a2c0ba4441220244a2401aa02912a0ab1ac1517bb009148a400274fbce8607d9008e22344155152bf5a559b2352ab222c992a64a8b28521aa1c5225100bb45a5590aa8a06405b1e7f9554952ba0142aa74855982a254a916ecdd714c9a20804a83882655d2688b95e605957209675b900900b09d66cd012a054eae61231a79c3ee384f34d37dbecc9e69452ba8c12ca279d6cb22593d3a5bb4787fedc79f376e633cae83146185f74b1c58e2c4e28a1c308217cd0c1061b32389f7cfee283ef3df7daebc7de74d2b98b0ebae79c6bae1d73b3c9e62d36d85e73adb56eaccd96ed1d1bf66bd7adbb594f2699b3c8207bccb1c69a31b685fd147758aa94a8e6e674c4aa262f400146922031824402200980200002253192c40804402010086459570bae15003205062999020157a6d0618a19be40c50857ae8094184972e50a48c92abf090432726508d02abf09c91525945002884b05805001c1074049841022cb1696a5844aa5b2c402a94a7f1305135478b02c91880a87c60b3484584380924802d4484078d0ac64689ec8722aa548aa92959a42046b9542d96a59171f96758dc0b22e1174b0d051c2b5871e7958d61502cbba406059d7072cebf280655d78c02123a50632526220332588912a2572a23602a44412a0eb0ecbbaecf80c2223454a01040b0b29ba58968c1455542f13250a4dc207cbe2820c941ad8d41a31d890817245060a4dcc1a571a967559c0b22e342c192835c840f15c6758d665c611ab0e35fe70f284cccc94ab0ccbbac8f058b854a3fc3789820c910ab5b229ad40195532d9d4d42b57b04dcd8d05d524a82920d1159bd24a85c4104580900011011ac2a6f4798404a404c8a6b41aadde84c41036a515926baa77a40408b47ad31147803e853a61292559a96e5257ae5c01896c4a2b0b4a32844d69850464041753aa9a4a35a79b9411ab132a95af986a4d4a754295b00427a02dc2ee77e71f5f9df30f6a6b93d7b196b7c906a50968ee0cb18c11fbf496fda0b0b9af18bedf9ffd6209686535cbeab6ed67ec1c09289b0eb3c71ec6d13edcfaa052d697b1d79725b3990f0a6bbb6ffabbeefe646d4740f17cf2d66ffecea05f11d0077b3ae8f0636eb6b907cd1ddb6d7f353e6bbbea412fcbf159942cd7c8661ed4e33786e1b7e7b33d04b45dce99ddbcb75d3309029a1db4ce7b565965851fa08ee3b7ece66779b107e8c3134b3b6b86af673b1ef4c9e84fb6bc583a7eb003f49bbbc6113e39f3adee0e2ae7abaed96fede128db0edaf28dec1bfa65134e0ed01bdb4a86b1376bf3637503347fcb70ba26a1f4595f03d47afcbeffb0bd978d3340eb8591b9ae15cfd8ded641e3f57636db2819bc980e7a1fb46d9d776cd9b3ce4173643d739d8f65b77262807a9e177b8d2fbe832fe5a0fff094d35aeb1e3a1907adf95acf76e6e7323b1c94b9362384f7e1c3edc50b50f7a0b4d327bbde9ebd3768ee9f4fb2fbed1aab6cba41e38c13b60bdf6d6438b741d9630f3f3a2c6dcecf0685b35bb436b7632ccb5f83b2576b9519b66663b36a501b1f73995fdbea1ee234e873b5bafa64fdcbe4bd16a0d14226b3654d32f747833e840fdef8d04ace191432d8a4db2a9fe378a7e49841fdc678e7cb13df874d4a4e1934c3ecf26c1edded875d72c8a0ee3209f1bc51c2c61f25670cea9c9d7842eb2c731647c91183ca7eb7dbcb2f1d74364a4e18f4ddcb2a7bb59f3b6b9be480419f3f99a37457563b65939c2f28636daf6431cb670f36c9f18256e9adde77f8de6faf25a70b5abbda889d83973deb9953019a5fba68e547881fc2ec1c2ea86d17bfd7ea3266f7ef9c2da8c44dbed7b371c7e7ef1c2d687bcbc86076ad59ee774e1654c6e69a3ffc8c5d62ec1c2c68b473fe944ec2cc9e59e774a1b3661c9f63dc9f5dae9e088d115a092774f82fc3d5c340b1635863bb13d7895f753050575bcdf2fe952e4628fd0bb45963dcdeded26126dd0bb43adb5036c6589b77ba77814296a5735036c96ab73b1768bcd8cd589dcbf8651b7d0b147fc7f7edc5fbf8b1e85aa0f9e18eb3a1db37a17c9e052a5fc62959ee16eb8ccfb140af7b6366f3b7cbf79c5f81b675cfa08bb1f6c3b5dd0af4c27ce7fd967f9d75e655a0d9237ccea3d759df634e053adb337ba3730f5dcc364e81b6dcaa9c96fd6df3b91aa540b1942d1f64cc4939dd8c51a0b875abee8db118a79b110a74badbffb5799bd566199f40a3fd8cebc47232eb2c4627d019ffbd3af16cb05d0b631368631646d7b9e1faac74910934c728ffb37537e37c2d2e81b6cfb7c26be37313bb169540ef6dbfcd799db7e5ee98049ae58cb81d6bacc65a594402fd8c27bb38de682fce191e814ec9ec63d9b367bbefa11168ec7758a77cde75460b8b40a7755eb3b5b0677eb84222d076f9ef9bef99eb1c27448432862fbbf07dcbf0dfe110a86c6c7ac38f658db639140295dfbcfb45f76cb30c611028631363ff172dc671420804ea8d6577af3b79196e087f409d37cff2bd627f081d3c84c6879fc5e6ee623fd9a00fa87cecdcccffaf1fc286865079f375f87a94b8b964b00774c2cc729415be8c1dce8f0734dbe7b39d33fbf6c1fc0aa132f67cbfef3b63dbf9ed8062b7ceddfa963d191d7e3aa0af31dcb3dedb30960cbf1c50562d8c2e596d31ca5a1f0ee8f79d35635b09a1373f9336f7752d4f1f84be66d93e2cabac12b77a03eaaec3d54696216c7f6d40b35ffb6e467825f69e35a0eca3ccf5fdb15b9fa4016d354b1c5de7af8ff90c2894ad65099df4f8649332a017c72aeb73861d5a176340717bd063b36fc6d7248401bdd8b2996f96b05a069f20f4567fee11b357adfb175056f137279bdd07a5b740e8bb36561bbdba189fece702dafad989e36b5e61b4b905d4b2391b64b05a18330be8db8cdf46ebb7d9cdbf026a718c793ec91e62f72aa0d66d745ddd4ed80c624068ce18b309718ed84a6953405fc6e630944d367b2651401dfe7bef099f3b01fdf966c3cf5d737f507fcfcf9a8c6e61cbed4c40fbb99ed5b2099bbcb79d1ff4b92827f41cad9338b62b017d8edbb551daec38e6dc4840ebc7c8aa9dd12d8bd0b63ee86798e1638765bbb9d9c607cdce3d0cb363b69d63b58d80b2e8d54226a714018dd2e2b630b7cdd33ddf833a26ffd5d95ebbda10ea419be7ff16ad8390ddebf2a0acc5e6acba88db5fe84240a77d6e2db61ed965ed1a08289b1db37dbfef76e2d63e40e17b88ad852fffbcb89b0768942d27ceee6dac1077c3833e2c19ecc73e4a7fdbad03b4ddc9aa8bfdaedd3cbbdd4165c338366cd2dbccf0eda0903dd75af4c6b562c71ca0d8c98c5dc617bef8f06e803a38dfec88a584ddd56a804e771fae78e259739e3603d4ba0899ad97f96bb5d93aa8cd1fdf7c5b199c93553a28ab96c1c86a4fd9e4cb392864f379fed772ee7b250628749699e72b5f3716a51c94c18ab3bdce70ce307b1cd441f8bae5ec1f5feb0807c50dd7d67275f6f9f3bb00c5f6beeb6ed14a7ff8bd41bb5f5ffbcc9f75353e37e885acd53a65adf75af8ba0dda2f25ae0d5eecee636b3668c736317b2d76c3d95aaf41dd2564edb39d9239ee56835a6ffdb75b76d1cec83a0d2aabb3d97ecced133bd616a05f6364f65d8fb0ddcd68506861c6edb519af4b88cfa0b0a7b52e33f81ec36dcda0b65f3a971dac72be38cba0edca6e6d192483caf7197a7678ab7b6f8e41fdb6b6127b9d11c62cc5a0f31d66f967f79db986419f4f09e59cd59f9df181415fdbd9cd5e8e4eb6dc5f5068b1fdf930b2572b638ce47d8587689c083509d13c09a9a6f086a87c2ab19eb1326ae2f282c25923ae983dccb24bf72e68b68ee3775b96fb596c246ffca79b5753e3c4c52675705580e2885f7bd0b34b09a36b92f77f6a35ea7e1b2e34ed75211717745a67db7331cedb32dbba057513ced96ae35bdbbf875ad0dbd2bdf6be96c9fad8cb825af88f7dbb6d31ccd0b12ca61b3b43344e98ea2905c564535392def1cac285057599bfdfde972ecf7af3d5855619e1f35ca17497b99829401dc4cc62e7cdfcb9677802544a776f7dec659bf676247963399554a99bfba9513f164c43344e8472fd274c4253849884a0083109ad6ea21089529f25556bf24b798c9a1189442294c9f404ebf618757ab09b038704e88535fa9bd362cf92351b015a31742ec2d8acbdd9dd8400addde6ff7cec46ccec3b914824aa02e18c95d1e801f4ef95f9da37abb4b3fbb9506767fb9a7dfe33cfee6ea1f6496739b26f33ca062dc91bb562420bc53f616d0be7bdce2694246fd7d1892ba88bafb2ea755e96a7bbf786ce2a9be50cebbd2ebf3c571446cc9af533f7973337d469a4a2f1bdcbd2cdfcf7b5933945eb65f159ff6fcf1dff1d402183357f9430c756afbf0dc5f8661c1db38ee3bbfe285a217bd259e377a2ae5fb313bac5f5e3755f43bbe76d76e167e6ee9a288bf7e567af7163db320b6d2cdec9bcb9ee072dc30da09d9fc9975dab103e7c6f89baef66aec9eaf9de4aa22effbd75c2aed559ac58a8cd12e659fdc6681bcf4cebab13778db9420bab7c0afb1d7cdefe1de7c7d4bd5b8ff11d7f3b86973687e5b36dca09ddb7b3963676ff6f061fbb99bf5226fbc50773c31ba5e32bf49d4de8989d1646fb7644a3b3d7bbbd6e5f5debca009adb2d6ed9d7dbe3c40ba00f3d62d6eefdadeed20a6a239cee6f46e86c653e15403fb266ef758b13bbbe56a8cb125a8c71664fd6ca6415f463c5717663ef3c7bae42db8db2daf88f65f7950a1a63651967d6d1bac33b059d9deb5bfc2c7b0d624b853aaceca36cd3fd7e8634b45a38fb2d9c5f3d3ae7536864cdf37b8eb05f732c85faedaeacaf73cd569752d0f95aabec452ca194d7c528b4da775d8d3f2d9ed327148a5db6963d66fcf3e69ea1f635d86eced34d361b8351d0c6b72f7c2cefc4d8dd27f46b74dddacffc9a8c110a3a5fbbb9277e17e659db4b00f599a5c393d5d9fa33764299b40ccf1b3dba85d73e41ffdadc7d2b634db6599d13743e88e384b946e8ee36a130e6d86aede770640e539aff9994d659c39ddf5b1334ba59ff4ec6a237949909ad57c657a7f3bed3311354e62b1fbe63ffe08dbf844afcd8acb29bf5087d2280b27a5dc5b53f62fbec01a8c37eadf3d80d31667009fad2afacde1c9cd3d5a6046d57e58b6d5eebd832d6495037b18c99bdd81a74ed91a0eecd9d9c33c2caaa7546f23ebd6974ff8ad16c381ac99eb1326aa284baead76d6e6ebd59743667d47c3269fd8aebecd92aacd0dd97d465d62a742dab95796247f21eb98eb1ef5fe1c469758fef7389df39eb9c49dea3d67155935d8cf49fec182f9cd3c687312679af521201903e5ca76d6d5d3b9bd133c97be4f2d1e8387e6592c55a1f5e4cf296ed8eb69756be07a5bb357b7d246f2da814966e8dda97adcf07fbb5375937c93bb5523575f91d9697fdbdecff9fe4bdaac9930aa31eef65d959d795e48d4f7584c2ddbc8a23a857666d8618bed83756277993543736a3142ac7252126219a10cd93d0fd29b45429b31dce58193d11518767fe08636388eb7447f24e55d21db15f9552548844ab9a2c127d0a75a958ddd48c189cb132a2c2083aad6c2cebc3799d6c2e935cde849a480985689e8446a792b7d4cac67d0a75df8c95911249e8bdedf3b330566b5f8395e49dfa5311d4a184f59964eef29b2c93bc55f85f355a3d16d8211a275435c4da4de86fea0635458a4834aa41e1534d896a88e64968f4e68c95d1e5051123d54d6a34d26108fca3081b1148527525841039184087021011d281003e049103103c8090fc10840f3bf4c0030f353eec9042adaa0e41e490573738f4e849231e6e78b1071bb6a0b4ac7c1840840d2400d97ad43e4b35d911965389a4aa24500084004023804c8f0a5043ab41ddd1a746a3ce1261b3b9af721a464866188d0820c3965af3c3911ea14c232ca712162c28530e31808c0451c4b1189510306d8542bde0fa29249f249ed56311a2d32a22388d5d3d1aadb6fc10960e7fdc500717aeafa927cf0d19c8e3480c160c72b08525161326962ca14412482899d2237cae353b42644492228818028910062840280820403ff8d0030f3b7074e0e48003002c992c9e259385062e2074bc88c182c1205358622981021bf8c3b22c2e974d124c9685e5b4aaaa91a9aa522295092ccb8ab1387e2001113a9020c51147787204a904ff0a85c5b23825e090808f511f7c58560a65841792294206869044085b1042124c58cdadd26f599c9565714620822666fcaa742ae53db0a94485c9b4c4b2387a642826d312cbe2e4c109c1e9265b160704b864599c0fbc0935839d78607597e03f95f2e335ac2d8ff1781db0e41db1ddb09ae352537670c0a24c4c1cb2856532ddcc38c110442c8b93813af03b60a542d5944ea8553dd5fb2ad08c115ff35a40359b5e75459512b12b8640a2a286406153f4143577cbc98929a756272a26d34d1393ad2bd40c36a19ef80794b6d42854b409cbe2d061834a9da8d494aa89c9a36854ff4d56a899a1192ba3954705b4665b3b478f0f37632f03429b49dcd059196f7e52a6803ad65e8c174f28a3acae1fa3669ef4a08056dc99bde850ba6ddef84f5a5023d40a36eb259e13d069adbd2ebb07e7431c27c9dbe2d108b58ac2a4b56b9fb1324a80e70f7ab36bf64a28e7b317d925799b4cd5492b9bc73356465b3c26a02d1dabb76177b3c30c3e3f287c383af6eab7e2dbb18d3c2578ef4136a36df2f68b70ae4ef5d62924170f09286bce4e8cb17ded726646f24ea1586bd0a6d6380678faa03e9dbbf8585739adbb7b2a3d2a219a2721d4eae4248a870f8a9bbcf1e62a59f496398e80e279613f96f7360cbd398f08a8ebf766eb1a59b5fd18739ec5b3078df55ee60f5b7cb3c9a407add661f71cffe16c323ec9fb494f1e2d629e10bc8b6fbe3bb7efdea9952ad4444a48360f085ae427cf07a87c733aebebdebd6dab24796378138a6ddd4dc8c29b10731bf07880668cf38d2fcfcae4830c371e94dd97d63d84dd6cbe85246f7780a70354d65ca5b4393ad836be25796f41312112e1df82b2ac3d77d0f7ffeab36cca3a6783d80eead94939719bd67a38402db3b2b56ff21be78637409dbd757a741d5d6c98cd0b783440d96b2b71d759b1b50e3d03b4b6738fe3bb28257e1beba079ce6ef1d59fae5ee94d0795f3a3cb2b3f42675f84a9958d159e39e837961d64f6d99861c5ecb16ec383013a2babd8b557d9edeb8372508beb63b53d27f1cf6f1686270e3a337c77afd13667dbcb705007639d6cbebb863de67b011abbb2c89e6bc8fcb3b56fd07718ffcc9ea1ebafb2e7c80b8f1b34e6ff771976efb68ebd36e8850dc6e7def3ce3a19737214010f1bb43e7eeb2e3776ece475373c6bd08c677b78ba069b6df9580d3a25aeedc9e6f0fb7b91cd5177b3353c69d0fa1ab638377ff261cecf0214468b996373b286067dd0b17c33e3f9b52766af43344e84a210891a870ccf19b4cd67655becb09b8ddf7bcca01362af135a191dcbfa3c6550f95cdfebf155f8ac6188e64996fb2426b13d64d0879331e7d13de7a6bc710cfaa2bcce6a75872f86f5c588d6fa7d33ff7356ba3bc9db13068ded7647fceafb9c1f6c11760a3c60d0d92ab6ef9a640f3f2c6d884928c424c42414a27912a222128944b7f446e0f982ce2b5d6e1077acd66d3fc97b54834a65d7abd3dfd44771d64e3c5ecc8c6f76cf32e8e982e66f13bbff595d0568cd7dffc91833c36f7123391794c97fcfec830d7becca48de5bd0ef8867d71b2db6df1cd6825a7f964d1bb1c5d9bd9459d09e103a3663bc4fe6971d0beaff13ce17e13ff4f99e2e34b38bfdbdb1cb2476182642e5942d3ee6eeb60b337b6190b1b128339cf03a186863ecadce09d98b563646723e3a5fa0d6e5c63563dcd84338b3d4d51341c70b99dd9f2e33c4b6ce5b63176aadb5bd67619df0e7845c7837479819b6d7cd0b7b0b16b769a3b3ecdbcdf3492dd0cfcd638bb2edff6cacf7e86441b23affbe3c6bac333e1628f6d65fbb45683fbebf57881fdfb30feb6c4d5a47f2fe7b42cdbf2728a72651aa6c5056a0ade6e872ffadb965857d2ad5146e5b6a142126217c2a41116212fa1b536dcde5534f52d527424c42219a2721d627e854a1fdc9f9e44b87ff7ecc54782fa333779bcff7246f2e9f65245bec2930f9efd668634f2b236c27a60831093528424c420dc59bac4dad19b14ea156d309e94881368b7fdafbe07b6bccc928382850fb249ed9fdcdedadc6c681ce13a8abb1c2ffd7f9af64b049deae808e13a8bd9dbfc12b658bfdee656e039d26b0d9aa6c1cbb2fb4d95d92f78f50b823d061028dae31f6cc246cf5dd4d92b70a65e3681c9d256077d8c997af9fc56c49de18366b4ae897ea24a145543a48e8396793f34187acc1295d766be91c814e0cff3def592793d025c9bb0695aa41a59a7049d18844ab343a46a0b61bc4f159dcec9c5d9b4824128944dda36ead62dd8a405b862defccecc2d7ae3a11a8cdec399bf6c6991f5f2747cd26d0418462d91d1b6b07dbcb8de1106874cb9a84d361862d847af1cb2d3f9cce7096b594a269343a41a031b676ec31091973d93010a874ae7ebdb155dc39b7fc0165eeaa6b7f1d4adc0cc64328c6b99f6c8e5bb7857534bde8f880ce6fce5cca9717de56d9d3a26308cdf0659e4e7ac5d9718cb607747e6bec5daeeee7b559fe55a3d39356a366a5c3032a9d7dcffd37d8da8beeb4fca9756c513a85d098a76d53b69bfb369e4ef21ea550232d359580ce0e68bb9ff963748f91bcbb61c7263a3aa0b19d5bf695fd7b11cfc7e2be94a279483a39a078de7723949db3b4f83fd7374d09747040d96d866bbdb07eced04642a8df0ceb6410beda76c24cf246ad4624d58dcda3a2330895375b76fb3a630cdf8851a7be01b5cd9afc76e795995d2c49de5b1e9f4aa3d9211a27b2dcba9a926a22da807eceecbef5d7957d7b8db5d7803277b3b91c6d6df07f5a92f7a99a6c46dd211a279e08d13c09b12e1d1a502867cc18d727a9aa0cd138f1a5140df4192ba39ace0cf283ce9b8b9efbcadc9a0c5accd227f6672291c9f4d75f033a31c031b719abcbacfa7d1187689e847a0a18c0beeed98cb76163904992f784577404c199b5e892455731c38ce4229183369d17d02a71bd5d6dbfe9326c1c08ed9a65fedae4b7752fba0ba88bde2ee7cb96c9af7992bce593d26901b5d2a767f789dbcbeacf02ca708d993966d749e8da5d01b5f66b74f5ad6c6e745440db73ae56ec5abf6be6186b393a80d00cd96cd341db15bbf9b6a580f6b3ce5fdf17edbdf21b05f4bf617dd663844dce3e0165753e68e5c57e9dc3ce7fd0eab759c7f6b06bcf0f9b80de0bab73d5ddc32dc2fa7e50f9efcada668eddecdf9aaa517a8ed12901c510ce796fb3f7ecb79645229188c9514b46468704f4dffe64b1fd717edbac482412bd1e356bad844e1fd45d5b6f6ceffbd3e5f7ce041d3ea895b03a7b10b6f6b9dae647670414c77ff54a582f86d1e52c025a9ff339ff4d0665dfd75af7d1d983ca9bdd568b6d834c76c424efd8d08a8e1eb42b76d92ebfcfb9e5e7416d9430e2b716be6ab1ffc4a31302dab95f7ef52d64797a8b0ecb8dfd269a48098180f6ad12b3cffe3c57f730c9fb03543a9badbb4a1c1bf37624eff600752f279c505a36a3737849de24d6522251bb1b74f0a0b01fc6589b4fdbbeb149f26e4d24722d069d0e506b5b3b6c99e797ccb94af27ef00e6ab3c52c3bd7f7367797cc0eea1e73f1de8fd6a5b36624ef9a5b65be291d0e50c7b2ba83365f579d748de42d43344ed4dc2af8f4531a64bd010af163375d4bebddb71fc93bd6556d4224ea1ef5a75077e49a06e8639c7bb27ab184b2b1dcc900b5b13239d964b33d37d9d7416f8cf8e1db5eb6fa20fb6f22128944a38651900e1df4cd86f3659cb9ce416576573eee8c3363af4d92773c40070314ca3a716c57d6970fab44229fa376dd57b49abbc5cd58195d7074e4a017e3d6f559bb1956e6ee44270edaaed538ad749831292126212645884988450931093128212621361362126251849884d893109310832214e549c86453531abdc9e666358a7da5a00307bdd0a364fed341fbb136c95b7688c609313a17a073b6ae7f5bbcfe5a43132e8d4e280fd1381172e2ae83ce1b343ae7ece296f261b4de24ef5f9d6aa3e9b8412d7ed8a36cad569c2393a3d6a4e8b441ddc59a6d7d79bfbaab95e47d93fd49870d9a1ff6c5f865fb6dc20749de118ace1a345a989bdd77d0e15c5933e13eb251c59eb132a21d35e8cd2d67acf662d91ad79c5d0bd138718242054a8849884988e649680997cb442412891aa441270d6a1bb697d8b56bad8b5292bc5d87689e84444e44b1d9d1b100ad0de32ce7bdaf71be0f49dea3516b6fb2f54445247a2d041d34286eaeda8719bf779b94f20cfa229e974d772db716df094a8849884624926a74cca04fe2d85fa53b6eef3393bc4f2879822212a9b2a05024ef0c74caa0d0ce97b3abd02f6ef225c9dbb5d9b14a870c2ae394b166665d76d97a7b1b2eab19a2712285caa87c128918eb5147d866ac8cae0f74c6a0f2e28f1846e9d8dd762bc97bb47a2ca87c72b27a27442291882644f344241289e61b1d31a8fcfeb6d3d9b5d5358324efd5963f3d09d13ce1f25088449d302893d059162decd86cf60c0666f15668e37b91e12821d3a3f30565ecce6831bceedd0659f582ba760cfffd62ebb3d92ea8c4f09973f87ed69e535680d6f74f32970d9db3979d8bd9cf737558afcffc98636774b6c8ce6c6c7ffd2dc6d18a440d4a333a5a5086677d2fcb367bc6699dc5cfd4c9823ed83c42e8ec6cd56dc624ef08db13225188e649482412b5973a5850d9bc418ba1ed38e2925ac92f3a5dfe3e9fb71fbb1943d7ce5445a26e3d3889b0c758eb38658c8f41c7a63f51cd152693886209eb47665b66fd6c429287a2480985a23c118944a2be4224aab95b42344f4222112aca333861a0d85df64ffa8bd5e1c92218e847bff8fedffccf3334a1f20bd138111289444c424e42344f4236350a91c8a6d688442a9128f5ab52bbb8e07c81b2e712ded8ba5d8ba7bc5ea0cc5dcbd7b58b31bb10da2ed0f95e3e0c997b0d5fdac905eaffaefb852de5846ee316e8d727ef5bd96cb44d5aa805caf2d7ebb35ed8de73e8b240db7975772b5b856d2f16e8bd2ebd767d8b6575af91bc5729946af458525fc31a1ec1b902fde9be56f97dedfd9ab315a885d542d9f2d656abc3b90ad4bbdafc184a79edc39ba94027acd839ceb8e629d077d9cb8ba3b5f3cef72c05caa49c6d67adef39e697a34073db6c9dcdf34d8c6b6728501763c40dcadaefe6d6f90934e2dbd1317c18fb6bf99d40a39473fe63d6be87f5bf0934fa64f6af8c6da7c3f899403fce8a278c7fdfb4f8fe12e895b3f3753967082dbbaf049a6d3fc9dade24d0db32be57b6585dae5e91406be3376f677f385f368f401de26819c3aec2e85c1a8146fcdea0bf97cc9f2c029dcea5ac96d5f7ce362702bd2e578b318bef66cc1111ca2cebdbfe56f6b6251c02fd27af6b314ff670ba1302c5394678e5b4765ac85a1028f3ecbab53ae56d1203817a9410dff6174f06bdff07b4617b63c36c7fce68f321d4d5fba493dedf0e1df60165f8b994f0b9c9de8bd2101ae58cb755171f37ac3da0f53ebc1fe7b3d8b5e93ca03f238bccb9b36fcf1642db8b2d623beded97774073ce31669fb1c1ec5507b4c5f7e8ffeabf8b1fcc01ad2ddf4f36b39d183e8771402d7ce7267caccdf99810facf249ccdb1fdff8607a1dd2d462c1d37f4e9ee0d287cac568c338bd1e56c6d405f56d612331963b6b2d6803659d965f5dfed674dd2803a6fb676b6ce1cfa8d33a0113a1c3fe3da6cfd8632a0efe26db7553e8bee31a013cfafaf3ed8de94eec1805a8bb3ab3242e7f84a2708851f216c0f3b3678617b01c51066f72693d9e78d81d066523e77f7ba9db6b50b28ab2f3378dd47f95c64b705d4793b7fcc986dcccdcc021af19ccdd66a3d4a3c5740ef65f2f1e3cb9c3b88554019fc38e1bd4eb6d81c103a9f49db32de76ccbd9b02da104ae8d85fce173f0aa88b57daf7e9f8cd896d75bc7ca145d10bd44eec2484307b4bf6f9532b51935da0923d0b9fb5b0cddc2a6336b5c671615a19edbf09e763b04dd78db54dad715ba019e2d96cd777f9f5b7e9ed450bb45e3b659530b7e99e8b8fc44b16a8c3b1e5871becfb0ed69f79c1426ec9a07becbd66dc0d4277c6cb159ab7d89e7d533216dd42d2e946d2bc5881baeef68e13db9ece24c4a752a679824fa52622514de5f15205fa58bf989f3b9356beb524efd5a9441afd034aaac9c60b1568d75cdbbd6f5645b0fb650aeeda6b4fc6f9d8f41729502865bccc6508f394d3d5d54d14e8db9a6beb9aedb30d3ffb02057a63cb92fdbdb859e935b6f1f204eaf371370ce73f07ab672750e78f6b74f5c607afb38d0a9148249aacd578690295f2af57681f7b57dad75c56a5ee5143415e9840ed7d287bd69f4ec27fbc046a2bbbf83d4797719e102b81b297ff6b5798db9499d924d0862f94d9c16621c40e2b1268ae714e27dbf52aa5ed7a04cadcb3593dbfcb20b3ef46a057da7a59c3d6cd9b618645a04db2ca9ccc0e4322d0dcac5b896fc33ee58c0e11ead15ec8e273efae95b20d81329bb1bb7f0cdd63ee9810e8ecf99235cbd3b91c59f69720d0796b65f8b9fa70be1d311068b493d5fcac43d80feffd01c5d6d9fbb6acc68a5ddb43e8cf2bebfb76eddcc4ce0794dd566f5788bf39387b1a42bb59bf7f96d5cfccde1ed06f2e3a83ee1bdeca9ce401ad4de2dbaac3fcec39f342a8dbca5cc3e71e9c2e7edc017db0ba26af73b3d53719d40165b3e2d73842bf7d71bb1c50d8d87de3dbd23dc7d87040fd21b3afdf6c685b3b42a8b376d01dbf8ce75bd68350fc9e9b491859b3f5ef0d2864d12dbbf55de9ee9a55f16203ea58cf9ed17963d39de11ad0d9eed7dd741e9d64d8d280ced826ce9031ebb08d73ce80563c9f65f64109d9d79732a0b6312963adb3deceeeca18d0d9b073d0fdcf87f0360903fa6a7d293373f97da37441a8f496cf4edc3abe80623625bed8c5d720961806426596b16dc4fd8db97cd00574625c59eedcec369cf1b580be778fe7bfc61c9c303e16d00a6b83f239932de3d96f0534e2691fbf6bb8a7ed772aa0f8b2fb98d7f67a674f0708c58e35f7a69577c208674b016d2fdbc37fb55f96ed3514d0fbb962166b4bb7f2b276023a6b7ef7edb1fa0775cd5587ce45fc5a576902eaece69ab16de99cb3e7078d127ac4dd993d885deb1250cb9cc4b0b54c02eaeee129dffc7673bc7dd0392fec176d76d9dad6cd07b5d6f57d7fff0ecf974740b395eed5ce6e62d951b2171150179b83aefeb33ba53b9546bfaaedc4cb1e0ea764d24d97ad41f698ec399b730fbee61f259b0ec58b1e23543699504c9814f19287102f2118956c402f2028d92cf97b42f5f0f2811f5e3ca0e2f2598078c1a364b324f55952282aa000f1d2012c582a4d112f77a8ec50815e38b0c3cb06463cbc6840e625030378a903002f741c799923002f1818956c06f022076dee26bb2edf19e33bebcf526be6112f7150e7d89d8d63be133a798183b277ad9cd3d9acffcc32305e2e40318311467f5e677bb0e71b143f37db85ffd8dda0d9debe6d5bab35fbacae0d6aabbccfc9c9f2c42cdaf6a514cd5bbdb041e7abb07e9cf5eb3787ef1a745aecd54278ddfb76fce48c95d1e9450deaee7378dbbbbbe8b0943356465b5ed2a0ef453b636dfe6dc20aa105a86dc77936f7f3c6771d2479a3415b5ab7d9e15673f40ae5bf9c41bfc9295dabb01966b6b61934cac9dc834c3af92494b10ceabeb5ecf0b10cdfe1b6246f2ea8d44af5d8316a863532e873373ffcf85acf4c4ab6a594a7132f63d01c5f6cb3c6f7f1a5bb520cfa6f467671abf24628a32379c39730e87ce610f663acef8b4e4e093121a9ea13b2d9d49a1730dacd3a59c6f06deccf5f44f92fbf7fd8e47b41dbb59e9f3b8661634d3292376ae4515eba6056e6699985afedaace2b2f15a012cfc6dc459bf1b5ad31c9db46752a4179e1c22376c79da5c5f9ed165ea1bf09a5ad1337fca20585eeba6dd35fdb76d556d24b1616c60adb57f7a48cac2d16f39f6b8b21c3eec2d7f7a50b8d9ffd62f6e64b6f887322f4415821bcb93d9c2fcb16061aa56bae55afb7edcd5fc1406b8c334b97a1dbeaa67c246f955cc0e70b547e7ce89e9c964de7eef502ed1ca5c75bebbfed8f96e4cdba407186b64e7861b375466cb94025c675ca66afdd6733ae5ba030c3889bcf0bd96ccc5d0bf4455b676d2cc2fb70c6b1f5cb0265f6fa8311ca670e678d58a0d72b9bd279754cdeeaf60ad4dd4197f8a79dcda63bd6663e56a0ade218e77f8d55b2c81ec91b56815ed62c5a1cf39c6c4ae8a840a585535689599616428ca740bf62ec269bf9637e0c3329d096b5c6665dae19df7a7114e8c3afee3e37c7716638a140adf35b23eb2967c72725fe3c81be3bb39bfeaa6387f3cd29d4e84f25d3a9f49c4067c3d132c870736f4e77ad5d934f13688c32ba73b65a8c1b7c18cb870974e677ddb06f4d69b1a9292a9acf5819a13e4ba05fbfe1739f6f7cb83fb71268b3af4adbde5bfce6f067ac8cae7c92401db4756207f3b3ffd0e6fa41428b3e47682223b44f11da8708ad11699f21d0f79adf3e76dd3928ad480421201f21d0b772beadd8b57420f80481c6f96a6b6e71cc4cca17bb3f40a0d0b2e8e6748f5242369f7d7ed0fa9016b18f0fa875acc6aed13dd8e43369488b7a40dbc22aff35cf395f3623c99bc9975234affbf8f08046d6be39c30d631cf1f342e8b54fcadcb06478beff6707d53fbb7c58ce0cadbbaa038fb1f36dcf0f739cf6e52036e6b8afb48dbb627923043e38a819e7f955caeb5cb6acf513d9f3cae24308f5be4efe7cfb564228ef2034c356f3abce6e6e5bf3bc0185b2c23adbb393dd98b301ad70b2da3c3e7e562386667c6a405ffeae6f216cf82d5a4903ea375a8cadc5eca16d8f757f66406b76384f9c27cbade3ac938d8f0ca8bcb85dc7329cd6cd6e3306b4421b198ef1557fed1606b449d8d0bd2a2f9cb6f913844ef9173ec6aa9cb0b9da2211eb51bfaeb95bdc0b6896f7237ceb1633c86e0c84f664f0b633276f65aec53a3e2ea02ebb973e65ee68e7b7db022a31cb8e99cd12b79dee7ae0c3025a19ac1f2f742cc31c67bb293f2ba038b73b5dfef3ecba9b2579bb9638f8a8a0450cf800425f6bd0b53fc730aeef35f85240a1cc5e6d7589fda5db403e28a0f3c6563dffdb7e3366f7cf09fef029dd8d1ed9dfcae07bf1e66302dad75eecad5d69dd75d848de0edb131f3fa873f1c9362fc6b13dd70ae5899722fa9480f67766ec9b6579e3df28dff89080b607a3b58fb1d8ae7a766e7cfaa03643c7a68578566ceb473eda6704ed2382f6d983ca78ad85bec6470ffa6cc7eb6c7d9045e932ce323e7950086dbfd830cc6ed62c6f08687cdd5c848ef57763b1eff88080da3b7df6b4cf72ab98b1263e1fa00f3af75b21b3d1e5ac8ee4ad8a547c3c40b195373e391d7b3243594f378fca070f8adfddc9e294f656f71792bc53ad4df9748042c85ab6b1bd0ced7b0c4ef1b983ce67cdcefc2eb3efc63b49deddb094f20975bfe65669f163c795d3faab3fb34b9c71f40f07a89c377bfb73eedd97b649def08432311189fe84325d9fb132facf06a8ebdb5eacf1c18ef6ca4af2466109e5a301ea53e636d964f6239bb9c10c50f9e075b04efb5c7eb33613e35307b5cdb59b8eb9cb31369931f0a1833ec62f616c1d2583d67f8edaf62db3d9c1ec0d7f33912212b5f6e383012a33ab8d7d7ccc4d3bd99483ca6add83b9dd8c8336f66a4b292774ad25744c8498884491f5181f38687786f9cefa11b7f4eecf0568664db2bfecb684b7b14be3f3c6c70d0a71643e639d9e677ced92dcbd363e6cc00699b3086784edd379b7675b3bd6afba670edb4af276c03b809a6a696553739fcf581951e0b30685edb8ddbff5a5b5526292379653499e502994053e6a507fed66fbedee2cbcb6d3a08dcdf9f07bc6dcf9fa93bcff0125d5a746af4f2727cd02f419aed94af812febdb2a141abfdc72dbe3cb1accfca4fbd279f33a8e7e635da38d9cd518e5a77d352536ece581925e0630675b725c6fe2c3fb456be32a87bcff37bb6f6cfdcaf55577cc8a06de2aed1a57c7332fb720cda5ece39b2c960cb07af18b4ef63d5da97f2cabeadad9ca0562727f11306b5b93e6ff23e06e76c261f3032f6f7d85e8fcccafe82c6e9feca37e385d2a1bf2c1f2fe8644cce8bef85d0b9cc20ae28538ce2c3da6d5b6b960d9fb576f2a9007dfb30bc733289ab7c8f69b454292291969a1289e6870bfacfadb58dd9c6353bf6ac7cb6a05636e61c775f196786ffd182e616ef73f7c958737e7f49de5caae96636965329cb44e29385c493c5763366f8b1fb29c7070b6adbb637ebd7c69af539452291e8fe15cd1bf0e972ffb297db5d272299634e3ace16b36a6394b18b270ced39cb86d7fa83175e8f14f080a1455f68517ba1455d6811175ab4c5b3052d64c12bee3865cbf6e3841062a1af6005f66a3c556851ab3c5498428bd0f04881d697edff5b3bc62e931d053af15bccecbc39cae6d27dea468532dd916c239b9b511614cae44d8a109319a140b3bbd5becc5ab35ee36424ef10f69b504d89a4125d11b27e1362cf8ae70934ff73b761b3db4d4aeb04ca1e3aefe730aeb3bddb2650995b9697c5c613df5fddd4c82537519c9a8844ae32d9d494e0171e26d05cbf9b43d72084ef4da67adfa9496bcf12a87d9f52c2672fbe2d3eac047aa1bb9cad6f4e02cd2dc7576b7df3b17b6b9140ff3d699b9db3f9fb78a33c02adcd9afddcea946f1d5e235006a143e993fdbd19bf2d02adcfba8ef5be5bb363334b22d0aecf6ccbd5a39bf5c5988607110a2d7c781b83f63677b8191b9e215039f36553d667df661b2bf308e159971f426cbd3106eb0c02ad15667cfb55375dc38f40f0fc6036275f6b6fc227236411babf1862fba273b7df744e44a2e901cf21d4cef85d6383df135fec58fb805ecc24ced8d6699d6b5e9d093c86d0e6f7e1f7f16ff3c3d3033a5d73099d9577b66cf0f6e1e1016d3f61bd135e7963edcb0aa1125e276fc4b1b19facb21dd0c92283ee24769ce18bfd018f0e2896d74df933d7286d660d0f4f0e2884163aef8c1dab36b31ce5494866c083031aedb550da8739cbea5c7a08a192796390d9db6c7337b0e6e6e456357910ea4c5ed8f856cc6eae5afed458eaa9462112cd4888e706f4422bb19dad5e99b14fe6b101754e36fbdca6c418ff7ca986a706f72daece55dcaa6baf6940ed9dcfde8c23b41d9d45d4cca8ff9e50a7fec33303faa484fd13c338dbf9f451ab4aaa3f3d16b7028f0ca8c37ebf753ed9a35ec518786240dfc918dd9cf2b5c8b083ad472d6fe08101cdee677bd1593f935088e6096c82d0ecdfdc7390c56ed36bf3bc80be7cd8a06533dbf60f3a92f7af50a7ee10935088e649199e40286cccd677ac3ed9ae7d7401fd76f02bb4d25606df0cd1384153834a3511895883c3d302faf6bbce8e8f35963dca920a158505d4b1e6aaabf9d9766b45a59a1089442a27587e4624aa2989445b7856409b47e90eb22959330931fa269b1b9a5094270194e3a8a4eec9b59124885110c32008c0607dad482000f313003040201a8d4563d1782e8de30b14000345685aa0382c2412886371381c0c05821804c22808411806421808a2180811a15a0314ca0657ba4b65699e3e6ddd55ffffbd82c5004b1c262678801ccde48be3c296e780cd025bc2d1270bd86818dcdb4c16d8b8b35468bcf940ffda7c31cc38336c3599303a64c2a56c2c58ea6a18d448d9dbd7089fabb1c9869aba4972d441d3b2c157e08a7d1d466bcb694b8a1ebb88a05d0f7615340658b0ff01c01f80fb43d9b4010841160b409a09d077eea5a6ca76da1851a17143159e1629037b7ce4f8b205e3d8eab5821e3381891db1c7248046480a56627d0620e378f9e10329699bb77cd7d06ebea5cc478e05940908dc0822f39e1a069eda8f6c766b3595a9c061b50770096b2bb6b997daa674df95b8ee00c2224fa6e9ff669c675de84b8a0146dc6d9c537f50271a6352f64cada08c3bb16a0584627c535d1dec4d18a17d27aa12ad43e4c9d68ef2a642472bc63090e86b6e6b33ebf9f89d602853b47e82324942462c044edc5d48d0e746c518bda0e65a48563a1f28c2f78443668ffc83e04ac6a9dabd4f52b998401f07ac4e3016facebd41bc332f810c8f769f33eeb8c0525117a2e88b4e56d499285aa24c8d1bcc82123f32d1ec8a712e3adb62c299095b52c1313f2f9995d6982a3515d2276322a1854f02387d74d4f645244cceafc0c27c72d5eb22d6258b2b002e1fbf6a8111e2a54cf0dbc0088520508192025dca74aa6b8a2d6a2cca9425b4f37b71a65ada6caa2b922d7264321df2ada419648724fb24a3d58f0cef5baafd0ddacbf4269da31f492d16fa05670f1b71492a26e95b9f0e6d6f60dc7838df6eba09de3deb9ec3cfe8c4902132c616109b1c710685e05471caf5c098bc1915cd4dd5d586116e556ea61f0f439eb036d3cd8a00fdae36ac3926c98b49c82733150f7dcd74461d52c3a5e452f8b44a2504743fad99d6fbba8feb9aa899eefcecb8cd6800a06a0ba48f071bb13233fab33b126d1a1ae3caaea3211465b37516bdb92093133453b40640f1d3e3771640473100fea61ace305a847fc74965bbd31365cc5d985f572ad0d1235702e2de8cf662f9d78be38126a7c7b6ebc240c93c00956ba1a2d23b4e09f97f853dc38844a59843f5b9be4212c5802b9c213a043c32ee9213a06b9b0bd8521ea4840e335eb793b5ef727d5941ab2b66cc20e3310d4aa36574e2eb967ec3791374f426c51d8a70e8a9c6986ce7f4042f3d4ad6fa372948f59a1012e0b8f7d4faac700ef577ebf77068ea6979d1bf64c63d202b0d480fcc2e8f901605e6861ad8bacceabb3e10076a30f7bf4bdb87956c129b99d1581f2f0b8ae2dda6497fb2c67bc198e91c99a29e033c0d5ef150e3f58292f299c105df05458b7843813eaf88a2af8c10d09a1867603862585bb0e3f59d0879b1d545081daae02d11289c8f0a4d413da9946ac574bcd46f684449f51ad86da221ad31b351c9b2abaf13af8209e447996a5f097cee38a3d6053e991de10e2c057f2074da3d1bb0ffa8ccfc105556504c0cd91c855587559bc205d8bf5acad964042a2f63a82ae4c90e82484dfa94eddbefa782b531985d4812c935a5896049d02583f031c0b2fb215133b444dced427f03079890aa8cc72c858f844d5c2a50f25c82886ca61566393772f5e0e03a54d13d9dfd9fb191f648b18a9832610940c516e1113a513e7bcb4818d28a77c22499b4574468994301f61cb33d5e519877f62236c9f3cec3962e3b5885a00de49e2c0149678fcaad36001f5d5dd0faaef7e48825f331ab55112b2b72fc76db2347c44bdb6c895d49264a3de9c39111da9e357297bd1c408124b92c78a481947b16e2dbb89d03cbf40a80d7eeceb10ec1e2b04699c2dca816509e0ba5a513c6feaf538c0bb091631d628d9a6faf78fee82bbe91a36e8028559e5e984130672252ca5be721283f9709db7793e21e129a110fc9d78746683753d2d009978183be352396e00d1775b19acc594215dab9e75fb5954bc336bd480993b4433082f003712435b00000aa44647840e3a0c5000d0e692788ffc21fc401863e1bd2d0b93d1088e2782176d9c8eca2d55d8aca88e716f22b27dfe624a11899fed926ec949cd11997b7519c82d840845777b24305ccbeec689471b4b4bea2af4f711123e997c4f55624e5b76e8058f99f0815249dbbc49707e0a7b535fa497ba47be6e3437dcb11ed5f9663242cb5cde39977a30d3e48d92f6eaa3993a6614d9e2ed9a52a4a250e98e8e664088c94c1743d524be7f5f1f6cc2d6be8942fec5cb93230e2758eaab13f0300fec7018275cf0b85d9563215922b69f0d3c4802bda8e49f9ffc43c219e3034bf400c9b85270150f6cc551ea7521afb61d4495c59c614429df33fe133208ac9eb6b820f2ac5f9efbc4bfd2bf8c0bbc5cba0458daea817e4551badd0e7d48c11ca707e44d6ea40b81036ef83be885cad7608abcc071e061c7b37b4d6c233531f4415174063ac300a3f85fcdf428a67cbef462c40b9761ba70c215040528b8e135f88e0374390defa4450da1cc9ed9e79751b0539de2113c1f1276cf15bd5598451021b4738cd67b8ff0928c093759245aa1443ad0ad8cf0332986054e7827c9c9c1857f289621425da46bda74ca86e92d613938e471923fcf84d15240029d8f540ad1150927f8e067d7414383d7d96bfa1f07056ce603f7a9098ef0226456fa03a8a142fa3809264b108a5ec2c3134b41d156a22604c7d90c40cd8765664874f72eaedd06fac075034e98b567ad75aba681c41c40124f24300b74ae956dac145199f1d4d40dc089a9f6d4a2e01d1c36041ac5556d86e52831f17d9214f8f41a5a6e451e8abc925ce48cdf335bf830f2665d6720c79b7513ff9981c93daeca6b98be7df78105c506c88e8ea905b453f65fc4e4dfb237ff1b7f206876badfa411c6a9723614c1d128ff93cf7bf149ef4f1ea29067d02a54d7e19d309b78487f0e2412c836a93039cc27955f42f748a2de94a5c5a300fb3e4ea11974bcdef3279dff9f5364e4a52306b19b2f2b1905fa50c2c5f3ebe962c360093ed877304eb025d3255809e221dbdb36b3fc754051b6026b8f6db8284f78fe8cbacd18a49800b78d6110136f6941787e1c8f28bf743c586ae4f859e48772d50b7d7a814da004c318d0d279615298be61516ff90bcfe8725dbb9cc023d8c1f265bfbb4208eed22b41954af30c9289effbc0629978731495faa610a499e9a0f448ccce99774bc9cd9af1d38480a2d844c48083fd6147e9f0fbd8bbcc63fb9ac7f2de5d66bc5706fe8654f0767a3eb0e91c85ad980661554594a8cb2169f427d1e14991d5fc3e67899e10f00b6c829d4a7384b707693e8ede0dda0048767cc0319787d461fb857e54392f5452b8183ac02f30d4931afcbbfafe87556a85f8a3bb6fbee1d72b82b51758a77776fe8b8bb0bbe5f49b04d85d1210b991f483d2a6e191027934cbd09852aade0c537d5c57d3a0953fa61e0453c1b9a97f91bf1809f06dd31a28d3906886a4b5a9bae85e80fafd98c9e970859c3f8c80822053f68eb889506a842954d7c07c2733146acae91c536dfe7db1aafbb42140cad89b4d92072d09865cd5684d900046b88e083701aa2dae36a9ac457bde8dfd51dfd61b088d5d5ef46d50b10a9c86d905a32c6f7df22705e571b0c93613281661babead14fd2fe06dd5e22c3bbb9cca2ed9c01428ff54050983e26681a3f2522fa310c5f9e523299abb1b758dd348a300127e7aa8a3bc4687169510a8ad97a93005a9496a0e442304bf79e472e80cfab02cdc5ebb6ae946e6b1e82cc1f81f376b0aa4a5efa7b6068c30acd8057681dd0502a41834a80489b6a1099500843beed31e7951af6408afccfcff06031eb9ad080f5ca500c39a2a0c524f6050654520a699c4fec48b320fa58d968d36f606022e106e0ea1f08f6c145d9fbf94dd06c8cd2ebc09fdc32fc2d06365b0705404702248c0ba1fcd9c4ac4429341c1023b8e2240f6adbf024dc05c2485f822032aa0b911de658109709c767a7c817588009d1af7f45cd03c0980a63a4e3aa4f39dc2068a5ca571301398ccf08d527b2ffdaf2acd5f182d9ff4d7f80888e33f815415dbb90fe6ea6a64a1e9323ea2ad75eaa3414fbcd172962c73388fb4bbb61abf3f3fe02b984c9e562381ba2210e36a783600e5b672d664129a1c5ece8129a90978653c88686cf04db8f00badc4d3faafeea69a84910a38c993fee6c01c1792b5605fe58b165a28748b6221495f8688541b3535f9ea2c6dc58d17225ad4c662320d1650ce6af00aae018c0c62c29684c23c92a8d1dac9f8804972aa83f10a654705e47f5a1768f337f97edd0df4858e2da950f293ab4019a21fff0ca6287a9ad8cca80924caca1e90bcaf88660d0ca863c80560525a8f8beee573dfe805a9dc9416ee9945fc39d2c628a9159be51b1c1770e33b8b2b563deb07a1768060cbe1e93717ef184bb79ca1ca58e7969f8712296d6d64525a255c9671fdf75e81f1d466897a7b4562a368ed61ab8188ce135fdbf26363972d606c3ee7afd1f353c00b66d145a2ab578d947c69b8c28ad376452d50b1fdd8fb818f72431fb3b8ae2052354fff8aad0bee40d7792981eb2e8e6d9688540565cd4aa3d1afe17b2a8ec2a8ffb4d57cddddf7bb4cb92f33b267deebde3fa0513ccca020577a9cb5b8c7e1abb8cb972840a72dfbd6f43fdc8a627152605b46809e07fd9755749a1cddc145ba3c04d2cb4bd725f6a9ff330dabbc424bade40a5dcadbc0799aec3044139deec8047ca0621c7199c95013d9a8649d310540262bb4a2e0ba718c989304f6840aed02f311309025e17da5105948d751c36b298ba5b52628e6daead210669fb0f51c5cbe5d84a8e61b2c5d34667f47dc058ec6264d0201b1387b96fd6871f7907686a488bab9dfcfb3d92c1e615d26511b67f96bdc073d7209091a7625b2db2a022a92d37e59a380b7f859c0771b1a0dae1b37df764fac458bbe62ac25d3a417753200bad24c471f4b46eb2e11cad0878efde37bd29244609eb9f476b90a229f04daea5eb211d38355b4dd3d7c76a0ccc928001134d3c7e68125f18e04075b46b5ad74a0fcb72cff3d4042d8a15706658d3ec6537f93feaf1fa3f7e48657fcabbc47ce8e6463c414fad79571a2ea66fa27acd0ceb824588135b5de4885b433acd25304a177ac9bd5c93ee67dad965a5ceab3885b5305571cad81614cb4607d45dac5217b873a95501b543c7a80de1bdcdb20e57ad231501d7b110310a80f857b3fb131884d50e728fc3e7f5eac1cf253c9c5e5519093aeaccba02ab9f596d395c69d8efea7f18ec6598ecaf681e77840aa7464b4606bc1c420aae097af4aea5bbe7b7fb8085d8537002140a102c4f41fa0bc7574c09e2370df9a8e7778d312ec3ca85592cc1f15c677d940491b6f6c557993193a859a1f3a8e2859091f17c65fcae9b11057dea8fc3dca56120c147bfe2d5c2710661fa157efd57cc0554528fa1b826bd712af29239c699c4585bd9361911da0f62e4500ca1b74036039dd46a5e883dc79010ed4eac4f1a1f3b04e887383609027076c1c100e19848ff585460334ec1fbb7e26f8c9f89040c91f5cef2b9dba7a16be75f54f45f1df19808d56a6862b2f6daa8ee4c438cf13164de5d0fec6c7d0ba41805712efb08a0b1fb9736f977892688e87e887c11856442fa90f777c06de6e17d67abdc5e3174722cb74ae2bfde03411ca34183254ba0d2cccdb67f5ea016c9edfe1aedfa68ada6ca359b73157ea437d2d04ba36e304a8f8feac951dc62b4d3fa8c9aece5e27cbb3d71a31236ecf47d9e4bb4ee6ea6e6e455ce12b9834bb2fb903bc9c538c97d39d8a135f97a0d0432398c1dba70a31bbce0acaa322ef6af0777316d19badfbc8ef78d0d4851fdfe8eaf1f8363245a317c9d52a6fd296466b7ce3dbd93f583ddd500a6134422cbfb12576a67ae1dd2199259a1edcdd69330aae8af3fdb97506153e313afb7da7965b032cd9e4ff0c45f1898118df9b16ba20ec42a1c699c4e316bae42a200dbc3a223cacca3e0d50643156c6a5885051e1580fad7ed2aadb4af72d03d36c62254a997cf21e7677cdc0214eba69208053f180218e90a01eaf827e26ea31542fd324f728f257355fa1ea7ae1fa70f186c46fe214a1b18e9297a76ef6d7f521dd7dedd2a837172b8d417afb3be954136a8d3966afc4646cb7574b0457c8d18d6317466befa24e9e1284b63a257a06f2506373ae0fb4714ff803fddbe5f859c4b6f03921cc1d5da8c1083b9928c34e7e517294088e7ee789a60b2b71aed452b2b1dd23e86d425961dd3c08d2bd50e3b554ca5eeee0a62740a18caedfa09baeb5bfad498b45a42224934c7338c11e8870ac4037bd5f0880c5800610bdd47fd38e56bf6d3e57825239ca218fec7cfbcbcfa7aa8c13379856fb47d76e4387585ceddb931897b5e8ee58deb1c77d15fa8a25a046850f87b7cb22326e7fedb3d6bbd0fb8495d0026e8121c9c2ece4a11c02b56d44b7eb8b19712529c1f2758106f82484677afc3d657667e50b6a3a5612ce6db29f47659bf0a7e92b551959e4079a1bdae026d36c9149f711645c33290b667ea730e218cca1245446c22b6725bda07af3249a3eded15e9f4c14a9ba248d63df6d91e9c955e772c07c7ec15143bcfd9824419c004d9ea4c8421d57a25e261f1991d1bdeab0d1dbdbbeb6e6d4fef25d13c2dc2b41b7bd5687e7d68e67393c7087944148daf83c82ff31f3f5ce8662ae990b0b31d34cc2bf408b886b41f0797bc179c12e258c7632a16fca365ada0ed77a9d8714c2e2d8c6ef350e4764ad99ab81487bf75dcc8f3629e32ee05660a3e2fd2811c298f91a2e301d3b736f447b3bf1a68360ea7725bb55be89653688e1dbadb4c1b810187e3c9716bb364ae5149a8fbb3a773ccb11b80fa8430b1eb869068ef821cd5d991e459a1ff39955a2d4501b6ce1bdb161ab5e042a06081dc15885a22320222ee34bdc911bfd8ec3f0c456ea3bfb9c05f513747126236459a858fb739389cecc6ff99d98f3885add6e443c216abe463a162a511d89b9175c03a93e42898d39131989a643cea4718959ece905cb10e380b52a2b58da06a139b33d70387b2bd99cf0550e9fa6bc60830108ef2a3f388832cee90d39defe8a493a7fd2e9e1249f114c19d55ddf36ea11ad11b8ac483cb7247eaec63858e1398fb486ad6a32e3c0901597fbe8f0380fb3f89662769ca7b239245fa67e4e71dfe57cbcb0a78d88070f81e0f2e36748f76fb14d766cb7f54fd99444c50effefe9e771c1e32720d28647cfc9fb95c135d6064a796aed682a9961339e118dc9e3a356c42e77715b0a29e1b3f2cefb55061a2139fa8c4e0f73fd3ae658e496f3ad624f4770b59bfca4bc2534c42f43b9bf9aab296e04702b9cac08a7256a91a89b2ca4ea3689ff3da90218ceaa18e2e76dbc972de80befaed3248811c7380dee5da43c014287c83f9ef3eac9251a170f2ae1e74dc09f05e0c4caf1677d3e66c4855891afaa5e07ced76525fe6e4bbdc3cadec77aa07a476d8299e80fd1e26b823c992105e4220b2872a5cebd89cf1904821d2384fc2f282d41a142b3e44d8776cc7117b0cbc20b04d28e365acb64664e03cac4148e8f640677c46be3185c00c9b9c53d3e72e82f0320c62f78102071d8246706b506a2ca94b376d04eb61242e142fbbb32afac9bf6df850ea4d5c692d74d3de17b22d498d670cf263119065c53cf090180bc9fef5550d304b6f41cfa6e175865331bb1d46a32bff8e2701d58ed681134dc6b99910d52c6917a92db065a78304386a9b0a7172861a702f4fb8b807e5cb17fef82cecbc178a3b6e7c9d0dec3b6b8f4d945608262d6a467b2446689607c9e71f3956f410ae4c98f182a19936479f5ab48db1af31c48cedf2881747ed7f0b04a272fe64a9c17aa122312e1a4c009ed21fce7eca4213006424412583862dd7da31f73be1db6a4d2d16dd4b8c8d10651e64fdba6aff6847c6c26f59a6bdf823d899c0f9b17394681a39b302918afae6d18a189c38f67a2cb065f7d9f8f45d9537ce60bf5e7bd2467612425a834a45ae91d3c6050a663c187301191b1447c4713b9a8644d301ea3ce6c896b65f18f0903f4a655fbf1314a69c511b1e3ac30e7a33b0d7476e2d0c8deeb993148719d7c1cf9391e19a25d46de6d398d8bf5fe19fcd130ca99b7cf1d90b108bc037e0420508310b3d594de77b4fe2820c952505023f20748d4ea0dacf604c86e670ee4341147de74b638434003039d6a92ca8c2909f8429e9ae0be6cb8b54aaf905acd62cd42282444dd272ecfd026a3ebc1d3268b926d826926fb35a3514255fceda1cc6c81fd7f5e5f5172ebb121b7b557434cb30b49dd9b41431f3365e58f9062ef7c673e2454ef0535e93c1380f21d3fec431f1f88b00432cce88ce38ac4b77729d28fea2b0ad86c030721bcb4d9cb807ddf89481512d6325e07bbc93e07335908daac33004c5c762b0f8742244aae56a9345a64fb34e017f80afc20fe1a3f0ff8897961a3616140b9010f693e704ad4bc9f6c1039091200426054025526129352a8b92a210962cefab6ba15ab67528ba66ad39d9c86be81a7ccd5c63ac096c64357bcdb9465a43d9606b06d9086d2a1bb42651b3d9f86be2357ccdbd66aff1d7446b389b7bcd5ee3ad89d9b035558db3466643d6e06cc61a934dbc86afb9d66c36fe9a780d5b73d8e06aa435940db666b031d9446b98d8886dea1a74cd5e73ac116c443574cdb9465a43d9e06be61a634dc486b3b9d7ac35ab1ab2066733d6986ce2356c716e2a58a784923f4e0e03d3bc696c9a9aa6a6e169661a9d26a4c16a7e1a3b8d4d53d3d4343ccd50a3d4043548cd5363a9316a8a9aa286a9196a949aa006a9796a2c35464d5153d43035438d5213d420354f8da5c6a8296a8a1aa666a8516a821aa4e6a9b1d41835454d51c3d40c354a4d5083d43c3596e298c83add91310fc2312d36eba6b56679b4625a7cd63d6bcff266c5b4d8ac2acb7556592b9945699db3e449d1a65489b179997664e443dca44f484bfa813ea4dfd26074b0f41f82cfc4be9d122fe153ee296bca92b2a40829400a92624b49a7d029e714790a9d824f9953cc29f1143ee59eb2a7f853e2296c4a91c2a40c294a4a90824ad1a7d429e89cacd75a3a9eb82edd77a936a7d241e7669dd236b104d9a96e3db626b848017f27e90b69f511c9ad59733067cd37f0eeb2255c17dc28bcb90a176996128235e5502fddf12161bbe1fe7aa738cd741c6c51960eca7a3fe5bec904ba1a348902d083f79a88d181ae257288322581e226779bc6e9fad0d76c1e09705341c8ff8302fb8f780511fc62d35b5e0124dd3dbde36d132610bd03ee2450ba8db40cedd631ad24b4637db0aa6fdf86890a80de86187cc764a9c344ab156d59b4b9203ca7200b1c5ada2dadb594ace2b21ffdc4ac316f208762518c44205c00e5049fa65f86c9c6529b26e50ba0450e1ff14ab0ce12e3c07ab408f61b7503243c21ae6de5db4431514bb425b4c9c944664298e04d06937949658232594ce8129f4960222f594ce8128f49dc8433b9992c26eb12ca04314197e84c0a13bf04673298cc4b2a13c42459b29b784cfc9280c96e72329198d0263893c1645e4a252e13bdeb767f74a4af52cb5b8249b0f03351b4af2c14dae6c541fb48c4d09dcfab00146f8df2ca70daecd241bfb0d7f22dc8d03a86a8ae895408dff2596a2ba7e8d42c154af08f150c70f7a445291eebed619304f230b7536bdd552f0137a8b59240a30c0baadfa7e942d336792023551d84edef8e0a05d321f365422ba747d898e1c22d7c06b5031ea5bcb470dd3037de671894993546f383fef0d2b8f3951a074c97aa0a0c06fcf7e025ea3e52f55983f08745f8059d45fe914638a87f64ac650c9e960c58e1afb2fb2ffbde4097a532720668f2b7a36526d72842d67300e9b45ef6cea7978a3981c590b335aac118d7e1318678bd8ce60e4561dabc5c9395554e5cafec0e1817c61a0603753e728d61088600162cf3931f60bf49e0f021d36d0f820741a0885f2bd20972d31688e98bb367d2508c0c87006a5f8988ec2441066aa51f602533379618891781fb37e4ca787200335843b2d807c045eb82caacbb128a8ac6df148481394c534f7560139b5b469ff1bd9856ac0d8d118f00c555bb3843e653f84a5497edb0a76802549010d81b0a7549551967127ed8a7e0549f045af4459a04bb0c97193d30f029db1d0d232f742155c2c7a01ed54c6147d1365d85a96d30dbac06f2fc2d8b2d61631d5e161bf7e2de0e65d8c00ed60464a05b2e439d40ac08fc878438377f353ee77aaaf682a4846cbc49f9aaf272d05165172021cce65d8a4fbd9fa3be46b5aa23dafd5085c1f915edef314a1625cf260e501487e73406773f582f7a6aeaf3c71114d96097d2cef3ff8262e08b9a78d22da4669c20ace8ad69198e3f1b6d2a296ce62891fdc21a7f397dac0c4bdcd5e91846cf2947fe95d96133d1c81de61853c196291651737227b49172737ced245331154619f48e48344b520eb4a8efb2701fda31bbf46200d785caa417ee536caa220bfb218d04f88d4fdd1e79b19b8ffeeae8e271edd5e3bab6992071c4c6a3f6ce2b675184d2440d9e248ba43fa2f6bc19b1937d4e844e0a32a98c38743babe50165307c8bd8514ed22145468bbcf214ba99aedfbb36fedaacddc838fba98938b4fc419636330fb324bb467558ea241f166751c1a2b6a70ab7125a6905e3b5cb9cca4a41cdb0d5b67351ce3717296c1965f45c5325338710866d211355fafa5e3586a5cccbc07452051705ebadbd86b90d6b95386be9e5380b3641d519e783ca99cfb03200fc87893ea69c9cd2fa04586bf9f0929817f4fe0b4944d7408c9fb9b3f357fd5ecafb6dc399ab07a1fc5dcc761fb9f1a11d287a43f5bec26854f6b91043f9735180e10c7b4a0726c55fde4ec1c094cd6592ba71f77bee2aa28c50d98b4bc2831d4dc5b49236d5b3a1ade1f5e4c33bdb0e8eec3850200dacd0b165e0ebaee1f034b66437e4c2d374cbc0dae53223bd86da93649d143a7304e57eec2f25e5513235f4698409fdb87fe665d1e035e84d5151151aa749fe07a5fe5f223d84b7e919678e8e74c053caa59fdc480348fa0f2da2ec6e2156ab9e7d3704da46c564d34b64d530ad10a114bac6cb3bdb158712fface1005910060142eb59e6f73a6537856319105c4e5c55db1f4435886547562e9c6050a8d6d8c6914996e580c64ad30c5148f277eb47c0136a8069e727723b378e6f87b2030520eb08efc53576a8b41171c26f5b8058be78615016abe7cd303ed115ab04e1860ca184d05a2fe303ddb56d589fc16defef59a01193a3ef4362973f4f44409a592a77a10e722cdac39fb16b6e6fac8865830864efb3632bd567953b807fbb51cf20203a32cba8fa3606963a452f94d2966ceeb581e5782ac89279e1f8c2cfac0a612520f3c5060520f6ec742b29182e01cce729094aeec6be611d0574f4075e5176a39f8a50032b4f5cadea2eae4226c75c1322b0091506d0cc48f8b18ec09f24c2f632dcd24877d3137fdfc83af8cdd551e12ecdba1576f0b94c29b55c75db7e470a40f895087728bb3034d15f08f781012f846098adf16fce0da8553ff18a8621b8347e092521ccb3b5df4e0c265643cc919ad8e77734e04186b8b17b816b884f084e739726838ce6594fc5dda6c3444c6a2f5307dad25f9154600a2244fea14bc1340d8077bbafe3374976792119bd5d0845da9ed0d0502817bb69c55961e748913a7e0b59d5c9c3fc98470c61ae298a67118e0bffbdddb6ab0baa94f3742a2b93385b09a4e8a4ac4d2e3320a31295d908626fa5cf057495b45954be73656b6d585698d174bacc100f15eb290f5bbf47d8dd7c1aca2ef0aa9602b8ef5e0dfd4ca9f4faed20c1b451211bef8120bdef71f9038fbfa74ba84577dc8f6d661c49578f42d535a4f6bb46796073793eb5ef3dc69dca1cbbef7ed58a71b5ac832997f063a5be4b01fe2906bc81279237d2f28456d2b7ee46a6e70eae23df69f25ecb039c3c708f702cd886ae8ec6f3db1e1e8300c61bd503b43a4d7c26ee1b2205dcd187a791e406b83381c84ba1d983b1e04ef96c4c10971d1d4e62a61c0782a297501c2e8cdffb5436097e1a06161f75a7f3858d0c244904e27f88298f448983f29d1bd24b6af03df669e2c098e7a3fa388c3dd3025c28f4d21cc9cc694653a2109be2bc199fb7ddfbe7313319ab7cafb17aea0adcf98f237f92b88a87fa617ef79c5c3f267888e5b77a5d2fbc1d302df3d3152ee087305ac4ca7728c354c9266017eea13ea1eaa4d3825cdb529771ef3d6494636f603832620620078791dd7f2263fc2783f4ed9d193a8bef0e3641b8fd26712c19a1c39e39d785ce4f05dfa71104cdb803239bb51e6fee7d615ae4e44c80aa746deb19919d2faf28ad12c97c11e3accb5aa8b9f4cdd5ec62768867a1ba62be388c04f29d2298f7026b2ab5ae55085cb6803b94ed11d439e7f601779206465783790ad88ff69023d02708ee72d05716e475224f650c9c729028148c206e24643309876c32348972b90356eff39e191ab93e86952e5c8871ff84a5f2e3e699e716515e140101a356d606722fecbf4853f2171d889ad392c98bc0a55d7c002810158ef185a7331719dc68bc3d28cd84828a4ecba509e31c87537a76dd46bbaab7b0262d94c754cb9ed9698675058fd6019b9a661e7cd1e630c0f9cf84e9c5217a3f9b251255e4101f2c07de9a555ac7f217bf580434ed99074147d55c8276a03750879bb0df91f0fe60809ef102006a428e6700e9587ab2f783b209d0609e11f0fa74e590fcd59accded6ec656e11277af1758efde7b5505913bf5a23001987273fe4df5b51fdfb2619666c4df8d662ca991dcac885c4db5ccc0cdab98030de5460e113350d21bf763644fc7d849c61fa9a5af5e024c36bf25c5240dc8c8eea32d57022bfd1e944cb6634b16086de43e455d41f4ec4d94376dae94ad5cfcb5dfb0ac41df78fbd0366e0cd8d2ff86bc5a333f00f0059df6975cab7b2d476cf777b35cfdd006c7e74f8bf6fe08ac3b78a660865dcfdeaed29d28feb9e77bc8011683961208f2258faf8ba477bf772f78346655f5cb627a46edd6e40ce1dc6a78d407474297a3cffc76d5853b9ed4dc6fec436fb39ab038fd762cbfa9367e1dfbd20f15003bac367c1c69aa2af27eaa1ace5617083069942d8ef8ae35516fb5ec60fce1cd6a81b4167bbdcc8a9b444e2797592e1caf7ed790966ec9f1fe9f62d4863e2d87addca30c66e4f138d325c3a4a0addf0d77d10a0df616f1afc36761e79991fda9a7b214cd6efadee2630c3734244f345b427cd4b99f71786ea8fe4e1e2cdf8ff30c3a26aefa268ba31581b54f308fe33ec4c7b0b9e2d393f07bb802d95be5ffb2daf81586c103e81482d56f18da7e556075deb10ea37054ebf525b46609b6f9567d72fe0afe702e7e41be34813f563d17caf1d9b138685f968fa43b6b5c7cc0c6502fdbc1258bce942fed57e053ec58135093ceecaa50b13821200dd009218aaca136db71a16439f2043c181ede02bc021e2c063efc0a6bed0e1af72480bcca4fa1eadb6dccda77791c9cda4fa2e2d9dc4cda77592124ca4f40e0d3dc9dd47a14a8b02250ab4e851424f95dd4d2b2ed2d249dc7c5a2729c1444aefd0d093dc7d347739d15c4acbd3d1935cbd540e19915942c3a7d397b8fc754e7991914cc7a7d3153979344e7281819cceafa393bb79f54e5292899cceaba525c876eae652b2e50fdca6b30d485be9b3a587cdeab5cdadc555ad44d48a98ff39e9abb1099713b4f724c9a7c6cf49579595808c20bb07097e6afe4e74eaed04e505597949f153f375a4a56223482ec0c29b94bf1a9f733d557b41524236dea47c557939e8a8b20b901066f32ec5a75ebe498dd2fb11ab20583d0d398b691ec6705be0f5d0ecaf9c525c9b1e2c39d5bd06ace7058cdf008a8bd77fc8f302ed64496b3e7f410dd235207e61585ee751047ae9bffcb96615dc9ae6c9c50aa09adfdfbb5b742e15c284a394f9694e490db67db8de342b3cc3f2c2f9f84d446eb7c39d3127d8209e1f0c649bf075b88152fce25c6fc9ee5ed2b96c6c2eed36628389c1a8f5306f922a6a2dc2047ed9f9bf8ca8705f9477a94ca37e1d8520709786d43144ac6c17fc2d75e0dbaf080129313a27d9d3cfcdf42b814723b4b5286575325222ce8fa102739a9afe4c7c43fb6f2ac640a8b80bc971037f90a213968af517e92e9bf6989b7a84e6cc2241fdfb64c8c08e598d3d88eb46aad8eb7b5a05cfa26963d90ff46c0a081dcb690206f2c15eb6bb8f0fcb46b1a86da1be6f8c810b15be33f0dd7b746920f3af6ff37681271f16eb60079c28f500c69970a06a04613946ad23ae01263f627272d71c24446ee40099d662f9907473f3609dd7c19e08971d93ac43d2769c19d19f4c8be44057f7d95e56783e9b2b3e3854dddacd888275882c87af6cb58c0dbdc69a3034aa03f0e120f310270dc3e7a8cb6b46a1458a8d8b99812dd01b20314cc7fb13e891fce78ea4b1101f61d0857d2fcab244fe87f177fe2f6f93e34d9a9f3ca0964d32a41cf9c4f89705be644ebcd13c0ba678141b3cca43f00cc13caae81001a5a8a6c4e0c91b8bdc99c35ed8ff666a26e08004c77f2659632a78565cbb46c2560b361292bf8fe6bafc68d25791d13a3ef51576ef8fbfbb1c19328f3001337664de540961775a27555b15cbccbbe39632229227722658e06f4958acd25adb420e217e481a421e3fef7bbd5ba56d2e6efc4203103779ef042d59ff31dd3d347d7ef4c88cb1b0f24bfb9052bf780338f3519ee759e9021c8e35ecb61f816baad9d9607eb92235adb78e34d934423deda131c3287f0f37ce81561baf9fa6af7cbdfdab33139d5b1ec566033e40e23c2446a49f8fda2d3dd6152a4fed76895ea8e3da9b889dfa8c57ea063f5db57344b1f0b6af33aad36bde91842bc2ea188f751f974f6936d4860e2d3095c7e50897cca19ae015c64acf507c5d3aef8b32b246cb505a17a13cfb8a4e69e2efd07bf7635eebfb42028143ba71440670bbca03cd95b7a0f58dbbe331f0fe6f6d05674c5dfdd549485e24ce3c1e10216ee0ecdbc448a63bcd4a135a5fe5898ed01e2b00fe68d761441fe7fdc8f19dcff461eb2db0de77c1ee0bf759c29b8561ba9141bf2cabbdc4e08208cb5f11fb97dd5bdd5c6ea14f48ef0155779ae987387cf4a84d927f9c6c51d0d1abd48aebf8f2e18ff3903bab6037e55ddf70dcefd1cceb96a1b6ef47d5bacbaadcab07e49b3104f7febda34035168671327e7becffbb47b1d27f74594fa5c99a8124826cc16086c07a295793243a46cc8e4912c7a83a5abe5e9076639a556fbd6d647d9c269240e2b522eec14bbe7d7de0813d7a1d17e9ad55e9193b852e86047e48e1e00b68fadb7626cdb7aaddc0938d22097e236b503e4825ae55ec9a4d380b61fa15e3821c11a880cec477ca4b4a786c327dbff43b4bead2dff0c6a03c4526842ebe623e45d2c011845e8b0a21ef4cd799d3a53789008752525b88f6dd527cf25dc1f49d80166e87725917cb8362c581064d714b7510c149303138b6366d2d6290f0beb6601e061daa4321b6efe71033081f67c627ed6a29d2d3b123a8b0794a931ad81811c75ef71eaf75356b539fd5d42516ce2f457b949031fa53b09047ea1655fa4abe7d1886463e96763aaa8fef60e6dc0559ffa6071fcb7d4dd69bee3daaa4f02d2370cfd0e2249bab0fcd966339157d0dc3e9124ef2cf71e7b71fa7bd45bb9d3fae96f3c150e94224cadc2bc0293e56de0cfc8846cdabcfa10d563a3f78e7a1d2b54c5cc94c747b0c70db5b782daa0b66d658a1e728a185c1d6bbdfc54fd58d5c5800de2283e0b128b480a224100a8ef874fc93bcf2a0c874f39c055c47a1609afd511984401b107151e0cce0cb92a31878043a5df7b581667f131a1d0846ac051e774210aab384c28ca25cd305b41a5bf0c8faf4bd59ff40a0f4738f2345834d3f2c9d395c1b4c530530f1c5b25982cb6bcc7d1a39146599c094755c2a26994aa26551e2a22e8a81199b0d76f8dd2aca54cfc199056e100e4a58fe8211cbd55d8f6085250e642ce453a9839f4586df126daa75d689db793a5a313a230e11dc0b7aa254f964434b43ae054c546e6017c7554cf0859ced185fc241fa9bb67ac4bc8c6854f846ab6e30a0112a0eac83df46ca604531392dfb5e104b9fac437af6bf3e1f73874ea754de785a44a3fb1a9b58455423a6706d6075acf5181864e9722c570f74bcf82d1a2b2b0bd02bb237bf5d9b469968cb3cbf9afe4c14f3f13a7353d774286a21253dd94d00ca89c39c53430234d0366a58764885c1de1528043b66cb5053e8fe452dd9bc2f4c81fae631faf2d07d3f38a84c6841c2bc70ebc8229d69966ef677ca59e41dfdb1a68656076d12690513a9eaaa853aafac0a675fbf9f4294b003fd5c2ae83a0393232ede486fce1a07ccb68426f4d84a4793f552c32aa6256593e5891439c90055e0abc9dbec7a3143668346ef285e6854afb94003eb9ad2a809b05fb53f615b52027f60b3fc7224ffa7ae424856b027898036e9936f135998704d8fa368a93ed1c486b036253f1139f46c0533a70e62b1410ba56b634ba24338bb1f5dc0ac0e72941c937467b080204f60c3e01c464990a37b1e8f28d360fe9d0a68618f3bec474d2ec60d0d5a738a68488778dcc4b95d0f93f3fac91c0ce909e73a621919d0d190228d388a4ee400cc45b8d4a9b25a9b3da7ef41744e700cbe104129d44db4aa888c02daaa0df90aaad291328314afbedd459d0bafbbdc56765f98f4fcdb417ec1a5cf18260fa37d385730b2a23da6000ee9bc9c7bcfe13553afeddbe9697f28e58f5f27458608363d2dc28fd5437e19daa3d03c84ca866902933c55478d4f6392d2657c2a9daaf201306275f193fcbdc7f72952b23e0e4383b876fd93094cd10a243eed934bfac6eb4ccee688bf5b4ad9c5e6e210b655dc15e7ade1170226691e4d9f3f8d6bd761cbf7dfd999dc663bf8d0a94dc4c74840ff9fee4ebb29dbc6f2f572fab1f676fa5d0118089b982b080c4a0964b9848442c0119a8683bf544da64c2a66c400ef87e98f25fe3681227603749e786e3f2130e7bbe577244c7c3999818ac19a732cea5602ca6953f9fcbf37244ea106f18b8e0fe321dd6ca1a20d939bc770a059181a14e677b00da401bf4f4867ed0ae83a39706a4007b11fed969c3e11128422e10e8013a6081e6c20ad0656471fe94624b9ba2118d7fa4052bb7150bd7f260efe5e2bae2537d3c5fd934a9b3d0e09cd7fa5730f9cdd2132c9239c34b7b061b0f7247d9bcfbcfd2e4ea37369baa02e5c2fd37fa55ab59dd86986d365d75a7afed9019b684da0853d9e0b0e7b76dab7ffef0654cfb8af1068055aac46bac6ed19ac03623dcfb4abd2814f19cd00231b2db6d21e6b08f35a02682ad488001401e8dbbd6295911a39f20c00e40a3f1b7b84f95cbbc155e2e09a301e4466d9464ccbeae0c6c65d665981f2c3a074c09b37103f2b2dd8da354cadd21add370de0ef6892830b29b8818e10dfca1bf94586edcafe17099e7e90d021a05a7d6024b6bd58f0486818a539c87da896758b95ccb222dbcd81fe3d7b3eb7892568ddea72e27c504bd3b1ae2208ca24b7ef7264a35265ce909971e8eb8eb67b6ad0ba84bdf04a4f720c75ce8dfd7aa4d45f174429326b365e01a1b7f4dd288c1485c0a746508d5ccadca7ffa62e4b5c4fa5c7db67f5f2ccf7de70a9f67727d3d3e365c9f0c76c377b4c0c8051c1e2e681707b56a2fc7a2d54e0dda804271e60379d36dff7e2367f6818768f086f88d8e6334dd6d5a325d4828e03a36274f26542d95f06b7f256d3c7b4aaf2f072ea109f98ebe46bde3ac338f2b4c56ca3a683aea2089dee7deeacd6eed06792f79dd961031a0f588ee9040bd3306a0f28dfb3ec0c500b30d50059aee7393a440f3cee72deff8e43f340ff7ac3cacebf56a92634d45937b8f6bb0c90f0af416a3f6eb8a4959437fd9393b9f40fe53951cca673dc10fd34d94fc0fc8520ade4d704f72ed75c7f3a0612a3276e1f33f9fb9cf7164675f0d5171d36bc92fcec7b8cc57d83da280f9e89983607ec26ad66f7cd2c1b59e86785eba973029abb18b9f3281b9331ecdb205bce9a59c499c072cbc3979c1c3da44b79fd9d8db47a4da235ec414131932ca7af8999cc5357d8781ad7630ecd789ec40e87a8fb43ea483d706864f7eb06d09609a9b937071bd9a1062598755b792f3fe9e342405bded5ad78156b3205e38b6db31e9b32a83070a801737cc4c4b528cd1e39def8882f4aa91a0bfadd4b78058b74c3295f78bbb7c0d7e2dbe2e55ef979d710f59e29864d57f4894de3d6f21a0ef58387f47675e9dd487737b9b5750f5b36a5efa6cd8b1bf434923884b6353b5467c72771d95ef960aa8e3779737c440fe9079a1e2d6a7af5ee4ac167156c9640a808a8494dda22675e53b996af8cc0d7e9fd740ec3f7f967b67dcba9f1c346074fee4458f77f2d73dae241ae96a5fa7c7c1f72467e7b4a8178adc302716cd9a27d4d276002b5fff935c97fd1803c0d75e41cb7fa42751da64dd8add3166bd8c077128ff204ec3b0696872b175934938be18df72166f47bd0494eac7e1bb618d796029f1aeef529f463e0eb993ad763b83f75ec001e7c547923c1580c1475c258aa91500e8a76d096e46735bf2d9d0626ea91173b423719ddc71cfe6e725e8bf312b91fb4ae3558204680fd0922ef16f3f0d0ece67f4e030293bee11f9248c83395cd818b22d01488d9cdfba44622cf730860c4fc8e63cd5110e2c0fcff63d37f9bb80f8c9e59099530ce2fdfe75eeabf57b253582a7aae07ff1e12fe1a1a3de6fb9c4dcd8d8ef56d6d2fa5af23c9712a8233ebc35952784549dff30f29ca8384addfcb0d36a35d528cfe357631c2a3ad09bc367f92979c718ae4ed76905d2aeeb49fda097c8e1a40d83de72979f23c38878c65e61ccb23406f98ed03e6a14e2698a04a2a1b33d05dfa0e0a2de14d758b262042ba99ffc41f88bd54b0e0a08763ec5fcd016eb691ff8600bd2493f620482edc0f2901627d6b9968567b0073d78d11ceba2bde773a286cfe55c02966c8162d89081c62fc3b85a1403e48305365a0f2f352530c4cf571393f9a4dd552c0993a33ce5e2aec826f1246c56ec59c206963a23b24aa023e2444d30a3850b2a4d001c33f3f3f3f3f3f3f3f8b326f87c0e208413225a96455b5b74b859029c994524a8a1c46018a02000000000000404208212d5220a90ac10afe0a8db6018e4d142d759cb3a0a3cf3fb28656c30536be48ce3491e8d1569305d5be5bfbc85ab15a70642271cb33ed79c9da141306b82861748d1aad9848eafcdd299ff4466dcf2592fd82b58ce752336a5b224127dd297c957d0abb5622b153def74f418e694ec93570502259db9489117d26742c6d74998d06704c22496a06dfb27825478647d65812c9f1fc535ad3caf9aee03712899ded29091966d9378644925b550653972edabd4724dccfeb69da7ed777d8050e78c0710970610119c90c7484310147231274e9d097544e8df7192b2f703022493b6c3e4f39884a79daed14381691f061a35e2a7fdd60315dc0201118165833c8a18824b391494d890c11cae648445257cedb19fb7fa7f12122d97b3dc87432c715df8bd3efc5e90bc010380e9124344893313e8a50291b5963195c4460c60c56701822693c3ba5bf187ba94106068e4270102229c69c3e6fca1f63ba78173806915c6db1c6814310c941e8cf39a4cf8f3a4d2012d4f5e658686d1c379d1b380051a6d6b6aad8d2b26425dbe93373d9e9f70fa30c1a22a68ae0f84352c519b9d5da6ea5390770f82139cebd8fdd97f5ce97a570f421514c6f2fb627bf2b81213262a34776c4464b20f990acff16afe2584eb2f7c8ba40e4d10a1c7b48bca499adb38aa6d9ef812f14e0d04392957f06935d973347890c1a32b80802471e9273e7adcd5ebf2f21838744cbb1628de6903657b943f26ff85115fd82ced16387c4ec317c83ebbf078d6bc00232b2b880a30e09aba37d63e6d8548da92270d021b96e2f89d0d8b1d27a195c5840c68c19fd23658b0c1c734850e3a641e824a3cd96ff821a1f060e392406bb6c299387bb13729e1838e2902c1694bda54feb514b05080c38247be9ce5183a8ea0e1a8e37249baa921b7a3975aebc38dc40008e3624db9f6d1ad5f164b76938d890184be6afcd1eaef45e38d690f45a696974da2c723360dcf86202340a0646209238d490e83933f4e8129a83d4d390b4d9773b9d560c592a33020e34246f8ca5fd51723e66fe0c4932e6543532886913bf1912db848a96dbf4b3295f86245915d76d534f86e4d9b57dcb7625b51d43529c8d6ba9a6f45b2231245f9b89a67df9916b1892f6720e97d1392d55060cc91fdad3e7c651b3f9f285a4e4a167ed7f4aaba55e48ee78be395a908bfb7621c12c85133ac6ecbcd57121d155c53a95f8fe18aa10e81612333d55d6eb9a7dcb6821c162b48a75194f62952c2475caeff9f1d22cfb44c5c0084440c08185c48ea527f63f5d0ef95c21f1a37b7cacb55821b1ebf26f455a9f5473644d248c1a37cc7839aa9024537557ecbfd85b49236b2337be4005705021b1424895adcabd623965cc35fe461709018e2920871490230ab8020e2820c71358c0e104e468027230c1965042e05002722421b1629912eae2afeb67c3682f5860a38b4c0c8c4064021c4848aafe0c4a5b0c55a5b41c474852b76983e90da7b3938ac30889a983c7f0cbfa1473e301471192e25c58ff142637ccd201071112f466f0a074ada2fc37e01842528a6d2252e5726ad059c4388470fcb81a2ad9e83b29173882903442c65ed53693390384a4a4f56959830575427326628b1c3f48ccb1d53d4b2f6c1037031c3e480cd734b92111306e88fcda0a4c1e06462082018e1e246550972cd52ebaebcf83a4789b3cf53c96e68bef2051ef65b4a4881acf393a4810d69df3a6a9def9981c246b8e3bdae9f5f1458503078969a5f3fc2621935cf31609236412997314cb35a32d9273ec9cc27588abdd578b24b50b22c44a79a5bb8c2962d02229e4633ba82bad9ee459b05f2a7afa4d16c949a7280fd5a1f5830aaa21462c122d9b2cb127757e66938618b0384f543d3ff8d8f98518af48cee51e32aec9db20eb1662b822695cbf640cada644e7442cadb010a315499b36a4c91addd9473e8518ac488e696e2a88a70eeaa355245f3c956df73619e5aa22512e98ec94954d9e5f2a123e8c986ac9df9131c37d440c545c8c5324bbc91769d7c1f27fb011314c91a42ab87db24f51448c52242737a1eb5b9da1bd2a7d88418ac4d4f93a591f9465a55188318ae4197997c2bdd7a8ec8822f1b25a50c2d4150a50e00c8df189c49f7bcfc1523ad770b9420c4f24767f57c8b43eaac29d48ecd57831f76683cb891309b33163b2fc799395480b313691a09f748c31acbe81189a48ca9e54846be5541f34269b102313896d9767e674eacba461911898489061755cf4d25be5f0c89a08188e2d887189c4de5829086917322902866b1a06462002460c4b248be5ae658fea91e14a249bdc64d59593b80f224a5899a6a52f3589a4fed4fa6db2fff49644624acf397deb86385112891189846a867db1ce931648e019d38bfa3456fb2392352c05bd29067f5fdd11c99621be3369af4e1a8bdc7814a43522295e52d13aa774b5a23322c9c298f8e0e93d09b57a616c1063114932ccdb8c18754b9fa488e48af99f34e49b8844d7d35dfe153ce554424482ba189a74b3776cce2112acf64dc8352f15326e8804a57c84a6dfea6c622f4452ab66e9968a13224979d09fb495d2591734882419d155eb9a6398ed0822712efb765da81396348148faae24359aae1cb4c780b03e8a1835e11f1243ecc97b2d6976baf503df79930e5d31c7beb20f892a33fbdbd946a692f32169e493a9f0e8af96c63d2488ab06b70cbbf7263d2469a7501b763eb7852f0fe8c80d171be7e510c4c04392bcce565ab1bf12eb0e093a5a9521a39fbeecda21f9bed3e91e55a9336a1d12ae3ffc5ab3adc7cb466610830e9d6c174d9969bc9b4372be96c607edeca2bab7218704214a070f599bbbf21e87c4b041ba897f5025760487444f724f3f6e90172f48031690f186e4986207cdbe381574da0dc99f498fd05fb62141282d173de8cfc12d850d49f9376df83ccb9cf41a81186b4850fae64a9e8e10599a0b58a00675d3cfce3c65af93d39094f794dabb88af984a68481255592ea4a538bfe919922cdc33452b956e2c6f8684ef704ac87cb1d9b45e06374ba9db1e75bfc92243523ef34b951f2a838bc69098deed728898512ae78801ad326d3a4f9b922531c408c36b523db34ca760481aed1cce52ff966ae60b4942e3ff644ef242723e1dfe524c695d66bb9094beffcf3c6446b90a1792f25438b3ce2b6a3cba85246d26ab664e2d945410b9b92342b8a764e19cf794bf1b2f6a4d2c2485bebd6c1bcd0e99af905c3afda95baf6358215136edb9d776236b6538885185644f71e7526eb2b10ba24292923b72edee2363855348725352d573bbdfbc9742d205a16269a7e829ee1385c45c52d37b52da4c8e09853f5756fb5bae8fb59e10c309c99e498c50a72a67fbb50949b2dda94665bcee4e25c46042216a3bec3573de185a82e97c4e5989368fb157429259d20a7ffa2d276d232146120ca1739505edfd318b9090204a7ccd7c7ebcf3cf114ea33e649daeb05aa61192acb443a78af1f16e5384c4fd0a3955ea79e47908884184aa5c4fc63beb241e42d9565312b1dbbd3b12c261ab3a1a536915b905216993ce7e8d95fcca5520549ae2a7dfb6113aee0f123fd359903f5549bcf441720aaf1afdaac47bf408317a9070527ddd32679272eac89a4818356eac310b7a056885183c40ccd5eef2adffed12630709a57194fcf0f32a860e92823abd204bfc09df72021d60810bfc1fe0cf0217f83b1a1862e420792ca9d8f22956898b5d600233662491193314d7100307496f364aa77acbd1a4b6b7484aa722eb7216ddcab745f29576ecd8a5beb48322a68818402d12d38da54e39ff9a4a7d646db90866509ffcf3f84372a860a7f5f473521f9b83871f1264cad1b79db23363a407078f3e248fbf559657d027560c98c1830f094a34c7b02db3f1a0522662f782b361c4e0b187e4cc69e653a94fa2f2e5a187c4df947ad5a2d36ab99c8784df8d63ed1e773abe784854f53695a396a42799c71d92928c7eebabba8d616387c4142ea756c62f3dea90785b3b4a67757bf433039ac894f0a043624ea735c9dadfc7fc4dc2630ec9b94c6a6bf650ff3143238cf6e26d3400121e72481021c385b28ef6995280f0884372edf6c9abcb8143e2575e9eee122a2d4e7c4372f6531afd2b941ca1714352690fbb4bf26ee96b1b123bbd8baedc97dbe865c1830d495e495b2cf91c9ffa93c0630d095293983039dfa263a34ff0504382b77d88f4f815cf8c133cd2902055cc4e78f8be98db9135f385071a3cce90583a55e5d3b85366ae171e6648da4c9a63284f4d4fca93c1450414055dd82843b25aec91f23ee32df68c194603e1418664abf65449ac08d9cc8dacd9dd781b361a60012584c7189294af2553a9aa65422486a4ec53be2375473df43078802139c9d0272e6fc61df0f842626cebb5cf75a3625047d6035f64e00ccd9414787821c1645ab0adb4b535e6c85a7660060cc008e38b7f400d2ebef8112ec2f8e21f3063c68c192236120d1e5d48cc30e6b5e9f5d43cc885444ff94e7769916696f3d84252f6fac999d8bb13a79135306c7c01068d193320500119346448e00a1e5a48148deb51bd4c273b31173cb290e68185c434cafd2ba87958a1643116162bab82c9658b650d8f2a24cabce74c7a4bb69ae85e604cf0a042e249efb014f65ac39e61dce8420f1e5348f8113972f63b77e662a49060756265353d7caeb07711c68d2eeae4e01185c4d8eb316cc71fd1aba19098f6cd3628a1959be127247bb727554da1528ad709c9efb95ece36fce9f83c9a90e0669d7cee3647a90a131293258daf795ef7de2d21c12db5d9abc552f1b4b581871292c46610bfa5a5494e2809091fd4ceff69ebd32b3d9090942e8b8e67162d6774778404e122f4ec9ead074f8be06184a4dca594bd577eb552152141fd8926bfec110d7512c18308c9313774c8384a8a963c8404dd794ca5ca9af93dc767f7030f212487070b7baaabc37c521092e4f78968101399b205844417fd5ebdc164d096f941d246fbca1575e6c2ce3e48903d9ab6576af24935c3071e3d48d6e8278309959d9e651e78f020f9c553c593e1ad791b6b31485860c3630789b249286d3ae5798f8c0e125c5350a5c1cb739b6a46178e1e39489acd9d5214a146d6c6c2f0c04162eefa3016e367cc411db748b45cea995452c2000c1a3366c0008c1a358c6d917cda57525764b7735d2cd0518be4bdf8b9f23aa532ed291db4c8946587f64a297315fcdb309b45a2c98c3542cbe6ac56331db248dcee1af11a4bc5fe39b26608e88845929c2ad7e862a94284653b6091706ed13e45f9cbb153236b2ee87845b26e897c0ae5a9372847d6c000a3467f8d1b1d6841872b1267e3f77fdef9fc4faa6dc5cd401dac48ce0c1f3b3f8eec7449ab48b86ed714e7a9934c41aa483415e3b3626df4bf74472a12456995eba06bb445b7031549252dd67c9a4ea9a2dd718ac4d83145369472640d4d061711380d7498223b4a911da4c88e516487283214480b7a734677101d7fd42ce840185f81b5b4440728ce98f6f92fef5a8e46d67e04358defa206173366d018b1d112a071811933500058e8f844767822a9638c5541734aad14efe84492d4ca5146e628ae57aaeae04452cebc282fa6ad3cfe1d9b48cceccb4198dd6b8d9a489a93d1dd8a6f295c9c89c4e47aa52ea2e2a8bc983011745c2239c5ee921d72aceab044728c496837a14488f66964eda8d05189a4d219cbfa7d27c4d7c62891a449763ccf14db1052d78281118878c724923f7bf88bcaa03e051d3e7448222946adde50357a534e24124ffb5e0997efbf4cb23c744022c9a35c4697fd7822e747245ba6ac0f62a4daa9ece9704472dcf023475df00ea91738743422a9e5bcc489b40afbacc81b3a18919862c5a0d95c33b276e32350888e4524bf5d12b566dbf6e3eed1a14311096eeb3a42977823062f32828e442476069583f4be9bb11e1189172c568ea2b7a5577388e41c97af6adf152ac98648be90664993341f691722499afbe8d68fc1629e0891ec9f447ff88dd9ef8306916c3d4ac54d396ea97405915cfe39b38d7ae6246720124764ad3be83c954e663cd10188c418194def57072b1b23d0f18724f9142f4fd3cedfc69ae8f04362b0eabece7fb714f691f5a2a30f89d1c4a4566a8be181c17f817bdcc1074fa5b27c5f175ce335fe8b2f8ca5a1630fc933df9a636a90192a1f591301e38609a3430f894189e9ed382a7f583d0f89ebe99f2ff425a1e478480a42d3d667d19596a21c838e3bf4eb1a4e5416c6aba09c1d122e94dcf8983e3f887548f0209a84c8d9d271333a2467b05242ef73b420c21a1d73b00e391c1a33af83d609bf4cb1ae230ec9dbe964e8a4d1c497666491dd77c021f9f33cfe739253a73ab3516ced0dc949c88e8c69de1274b821393f59bf56fab96c5d073ada9094ada929dffcd7055d071b922d98e83fd1f4b2c91544c71a12772bee3de93769b2544382f0d9ac68b7a1aa5f1a122be968efa66ffadac1d08186c4986390f1637e90415bce90a0459dab9b767797668604f5fff258d9b821d25186a452a172a51b3e7d4717d04186040dbf5e355b162b94e6031d634876911aab73dcc5539a53e81043523eb9caf3d8333a4352e80843725a8e1bfb529f9483d00186a4f45973b706513195a91d5f48cca29d638a21336dc5bd9028961d94d8521eaa8e2e24ef67cbb57ed5d1cfb6d341071792fac2dd727a92993138e8d842e26dce97848e23665417860e2d2456884d2a5b6eda27ddc85a16922a4e6c4eabcc17a619594bdb42071612c32ba6a7bd8b7325a2765ce15421b3ec98695500061823ef857771d7870e2b2466e6cc266643236bca858e2a24e89cf3a5511fb1d9b791b5d2418524f19c9458de131f433fb28634466e740102193464c8a02183860c1a3256f0376c849165aa858e2924fa8fc98815d959d724870e29247e5ea875cdf6af25a261c346f25dd4e0c2d43aa29024456ac8673ded964d50488cd972639e4affe2ff131264ea987174a5fc1ebd131264ce41a99dcd3928cf37018d0937a3630949723d1b1a37239b792524f959c9f4dd5e139f272129de2839fa7ebbbe2321f14a78188f9a945ce508c99b342c763e6484e4b415368ad0172161734e426f08cbf922222488b34f8d26c6b23c84c458973bac6f86f3560889f1835b701f213fe94e10925ecf3b7c27cf13ab81905cd2cab34a971297ff20794695c909cf39061d1f249c58ca32aa1aa69a1e246e9e11e2d5935bc53c48922bcfecb9964de90e1263755adcfc96454d1d24dac9f914365fe7479383c4b29c724c71deefd21d384812229a5b44d65b2496ee8e67ca42688cb22d92fa4f85dddeb5480af37efa6e437cd64b8ba4146c45ee5e98ff796791268b9c51b148ee54daa4457dcfb92d2c122e5ed2ad9b2ef4c3f28a8495dd1def52d1c3a3ae48f24bea174f8cb88fb31509639dff4a968c8a2f59919c62dde7ce5aae22a9c289ccab8d418365aa4890c9cd4ae6aca973271509663dee3136ff6510519124c4af68b88ba7483a15ca7433f573bd678a5224a8e77b52eaad1a62522468d1d0d9738392f91d4539bde6cbe64514097fe3dfafa5277d0d45b2e8a02c679e283fd140917442d7f27308ffb47504383e916cbf62d2d53ca90b7b2239e72c637e4c9bd3d7090e4e24e5b449a525f195b30aa3bd60f3227a97fbfc2581b021b1ea363ca874bfa39346d6d690dc5b1df24748d3399a980051435286933986f146d6b60b903424a65e8e2e3359ca3d3424e5dc232cea9c4a263f51809c21e92f36dfb8bf65d3df13206648dcf449577bf00b256f2740ca9038fac27ebccf5c3224558fe724b7d4553e073286c4ccf86e96a7fd4aaa20624836dd38e25d4ed9e745bee8a26b789ab600240c495f51ce3588b90c4f052060481057fb49cc6374aad0b032f385e40cda7b5173748a76990b807821c9faff2c9e8512f9827421a934882c2de26b7d2a16e34272d0f0246aa35cdcbb913504d942f25d9211ae99b306cf8fac992568205a48d261755d2c798c7bd23480642129f9fec76b52eff12ad607102c24c8a59c64bc24b4281d902b24ffa78b8b3f17f91b64c3d1446c0e205648ceeb182244aafb85a50d205500a14262ff9789f9c620266440a6901c66f22c58886f9bfb0f205248d62c2ac573361b534251484c6aee5a4b879ed0a63380402129caa7c9a4fbab640e823c21c9545359cc18f27236ad31064620c200102724556c7d8b97d9f3ba6505356a34a001ee8517bd820ecc9881d8049b8102102624c50eef41c5ff990ef9c81a5a9e2d2149a78adb6fdb1ba21e0388129254f6aa4fe5bec6da8024214166ef5023f684da1c13468d1be6042048484e4a6db5c5e2236bc548007284a4faaea831ed68302d1b93c0030cc40898cd855c7c4a294282b8b89b4eda78cbe99c004284a41e190da53de532ab204348b898f36444b97e8aa5051021d80c3501481012d52ec6338fdd692c0f080bf283c46426b3ec7dda075a203db01c01080fb08c08c80e92c263d2975dcacece2a6302880e127b74a8b07b7749a32604901c24c996ad5b8df13946c90f2038488cea9bb362d29e63c96f9154f37e392bd9df68710f1fb648cc919723f3a1a4863b06ef5f9c89d8d9472d922d685b89927223a6d9d122494fbc4273d6765f39023268c880800c1a0f28c2c72c127498cee2c14aa5981bb30f5924589d0979e3994bc6661fb148be18464f63765824ad291399acbbf246476e74018357246c7c7d79cfe5870ebd1bba2239ffc71f0d9a537db60b91308e88080b6c38e0460c9219336ec4e0a1f0d18a8473b196f55c3aecc83a3063860f3e5891ec22c395943d950f88d40023897881de596023c9f0b18ae433f71853ef7cb4c2aa4832a535cfe572f2ca9754e0254c86e67d1f15c94966d4869a19111b845df83845e2c574f3d32947132a05c387291245e65c8c9a3207bd2f37e1a31409ee73d2fec305a97d8dacf1d2f82045520eb9e12954f69f5a1fa34814ff7df151d32c561a59238a040b954194a607dd387d8422b9dc64aabb52a3199340919cba35a61ceaa153f27c22d962779d7c69f3ccb0271245ee45d62899540e964e248c993c997f53fc898f071f9cc0ddbf42e47505cb0afa8b94c14504acf0b189444b3a357467529a94ab89a4d0a95c54ccea5e756522e9b6d3fa55df236b759828a485701d99593cb72b00a346ca75c4c725123de55dcaf876380b17217c58222964b866eaadcd9ba3fca844c296fe9bfbce7ae14518356e5022b1af2d9ff4cff8ca5965c2c724ccf13aa54e7ff89044928c2a31425c168944cb192aa7a8a34e5e494406171690f1018904afafbe6faba04d263f1e91a8e929661ea133b246834618a98b1aff8143177c6ce1c311c996527a4cefa09976994624e5f0155b73865666054f041f8c488a9e4e74ea2c2184ec8b48ae919b2f8676d0272e8a48eccaf3f654c2442428df0a55b29a638b88485ecda15df71addabeb80bf08fa178898f92f193e0e919c6be5aad38a8a92db1049d6be26dd53cbe2e28f42245c52f7b7b949f473961089f993965648f56310c9a1d4f2a6ae184205e1c88ad4b8c18202a346f9104492aabc9175bab6469746d666cc9831c34c0d3e02513e00513efe503efc503efa503ef8a030f8d843313ddc471e4a7de0c138f6237bc1b3e38517edde3366740d2ed43000b0f8b8c3abf7a2bedaf2306aacc050f16107b53ae4071dcac71cbef023ba66960342b4a4799dbe1de360ced0ba632745e976e3030eafcf66ad14d3cfacfaf1862d2c6408cf5942a7021f6e48160ff3b015997f41539ef0d1860469a7c1463f4778e9e4123ed890a42d63669a3289d339c5ccccccf0962a888111880840081f6b48100dd95e51d627de5ac0871a12cc33c80c5dd1b1974f439296f88eca31da2c66d090a86673f6e2e767fe9e21317dbe4dcad3538ae1628684cb552573124ac530a32f7c9421f13e57cfbbe5a8e671640d0170880f327c8c2131ea08b5b93c8f29f98eacd5e042060d193464fc43000c2e08f12186c44a99445f569ceee5c50f1f61488c793b96da8a7ba544347c802149e9d8f1446caa0c1f5f483013e131788c31c6f8875cf8f04262b018a4d6fd65cd2224b2858f2e247fd698353cddea58b0cc64e0830b09363adf8be89c5ccec71612f4ed49cb3ea5eb34d442a2c80baa53747fbc9836091f5948fef8194cab9950753a123eb090244d8d92ee1da7f1a2236b8c828f2b24f75969e8b871fdce6285c48f279b6556297519838f2ae0071592c39b9acace618367d0c8dadd0b3ea69028de319cd2575dbd9f913566197c482149b55f6d5a55dfd0d991351b514854cb7163dd6d46733cb276e6c5071492a4e9a7131d373a6dfcf18404e99773da5e96820f2724a7454f39e989d85fbe0949351ff325b919a34987094959e47acaecdfd8a05e42920cbd33a7b2ac8444d919f117b476745e9260edc9eedb6b0ea21a59f3bff1c5bfe0f5081f4848529329b3d1928cf6df111264c3f5e6bb449c674648b699fd20e2a6fd62f0a3084962279774ec547c4bb9bf888d0c001a3e889014b4974a22d2ab0186c825e063080997e46fcc96a36a975808c96f62a151ecdcfde444f80842724a323b837fd89b6f68c8c0297c002139e66f5490b72732b8b0800c297cfc2059f6bd94be137f72d2fcf041b2d5063127567a47cc3df8e041d2c86ddfce77fa54f0beb0fbd841e29916b114c3e7469d0c2e2210860f1d247dbad12123f5c33a45e30a1f3928c58a65ec568fcdec697e5947bd576da70b18885c8006a2cde0030789153fe6339585c86c82010607a4e0718b04d9ccbb709f6db5563d0f5b24895be89462cab548d04b499fbe50d9af3c47f0a045a2e6f7b8e6798387f267e0318b844b0ddebb2f1b32636491a062da75838aa529d51c8b44cff9d468d05beb9f04030f5824fd962951fabed164eef18a24d3d1add42977367d46d60a0864706101191f017645a269d593c92e77c854b2c0a315c9e7b7b1334c5fd470c18daf21f2451259818d868188081837101de0c18a84992b13e766d5db975d4562d6a0848ad1ce269407051eaa484c61aab4d96d87ab5c7ba4c266182a6cc6f138057a9822714defbd4b2b2e871ea548bcaed1d72cab36a7c2811933508d193348919ce7e36d8cbd1caf422f6ca01a0d38435f8461230fe0318a6387decda26ac1922e68c13f00fd07ec8c8a2249f4d4c59c3d1a8a24ed390653bfd4f6edb84010788022f155c43ec5bdf13c4a8f4f2459e907bdca2965f74e063c3ca11e9d500f4ea8c726d44313ea9109f4c084cd50118f4b685902ab12ea4189e4247b2cdddc3f89240f4a88a9d1905e199244925cdc6c4945b3d9f944227153382b4d425ab70c8984b19d4f9196573a6b8f472495c606b1e19ac3089d3b0f47249d4e39a5388b194b9a3b8f46246a8bd2aa992cdbe99f1149be2996458fe7b188c44f11afa2b1d9f3448a483e4d4ae5bdc4d3d39c88e4d2cbb9e29228a5c28888e494573766f6c99c1a7488e430d115847ac7987f43d80c8f42246f69535679a22484cdf0184452acd0a7b2c518f1168eac49c04310c9574aaec674eef86195814720122f6db497b63b753198040f40245a92e1823e036448ec24f2a5fc53fcfdd018922ee70d2564b02c253d624876adce17bc92a9ab1d864437ad74eda0ab5f6c30245d9a29ddac31765a7f21f963f4b93c7ad26e375e48b4fdcf20c3838adbb90b493af6e96452f7263ccb85a44e62d5628a7be5f1b2858431df4f5797562a2d5a488af99a2e44cc42b2d5dcc71c435610ab6021494c69e9d2262fed29af90a0534fe8b3e05d5a2b2489fbe8e1bea3bc58aa90a0e62be68e566817910a8972ea7d436e5027f5292476b4d2fca89d3d884e0a49f937d64e76673f452139f8c836ddb5ee178442f229a9deaeba31fe4f48106a93bedf5577accc090927543bd5c999d0e926247f75ec4a2573f9d1624252107add63be8e4fca5a42820ad998c73f7710a551427214159be3d7a98c0d5a1c102009c9ee7d2746951c5d311300098957398688ee9c6d654120c01112442ff5dfc49fd0296484c414a373778d8edf1e538464effbeacf9ceb2d532224cd99281ddbd1bafe1c429266ca39c9f76d9b9684905ca77dd6496878e9a0202465798ff3717480906822b271f73c8ff4f907895aa547de5625800fb058a9f732285fcf790f0acfedbf3415645c6043040d017890d4c192cc582ab5ed6c990302ec2069363c2959293e474c5c0302e82031bae8ccd74a917f3902e42069d35792a7b3fcf59a04c04162b8dda8f1fbb945d28905e19e7c352b55426c916897d435e94a9574a570518be434bbb7153367fff5426891544985cfa0e2d9998a1df08090592497854b166349bf422f8ba4b9ac92f2622c924fbf263b25d4f4660f8ba40bcda172aa704a5dd02b9293fc942273a6a7983bae487c931d3589261b15752b924a6ba8db54ed27640c2b92735e65ce1433ecc794552468349de3645dec065515c93d2aa78dd523b643988a24cf1b2bafbfc8743b0415099ac74fc552eee0599f2241fb4a29d1b395c266532455e57471ddf4c9d34a2992a32897f9789f5d09214562f4cb69eab5df9b8446915c973d9e497c46d644fa8617ef5a21a2d090502427b998b5641e0b28123c8797bdf3ca41c6fc40c8271264f7cb5aeef8f27f09f1048774824338c1219be0104d704826927e2fab77a896b33631c176890cb1048754a212219410c0154226b12689522191e0104824e5dc163d971ba17250c823b618db9fb1f62d8e48ce37b515d5c4dae97448231235767ed5f4ef69ed863022a9c37dcebb49e42a4c1cb288040fed1bcc37749a978210a28804bdbb7f629943469373084944d2c771bb4ee22bc3c5148288a48c19b4a9d1bc09420e913c375aed3c591c5df920c41089d9d23253d0d3a7f7422428d94e3af63e2fb3467c4ee8242ede4124c84f651f9b62049128427eb84a62fe95d705840422394d98e85cf23ac6cf8048acb039ca64b469c61af287e410e673fadb6e60a710e287a4dc5217b5baabdbe08c1933668440068d0face0860d17a4c01bf00f01ff4a45481f12e42d6a0af55e3b3717217c4854ad501a2ef23f5e030c16aca00b11ffa2f37410b2874453f2b3758951b7e154647011810246881e12359d8ed92e848a654d1d42f2902474762575719aa2e41a8287e42c3fef689531a83eef90217648b67c7dcd36ed2d85e160382065208c1b5dd40023057d011b13b043481d1253d28b2547b76af7a60c217408994362389b3b1df74eb984c5102287a4b8156ae2b1fd36ab7148dc2ffd3175e87fca120ec91db4e58d76f25b540a85903724280f7a6f3726dda12c37341a4d9d50a9aef16d481c93f3593ef72baede2a84b0e15232aa896b782e094dfa15a64953433a88ca18b3d347ac250db8694a4b5aa745c9201aec70bfa94e5cd0ea0c965ea7246e35c3d921df3408cd6c9a2d839e3c481336d7a9591241c1175d84e1650d50bd11428644af1b150f367fc08a103206e582ffc98ca7b10e22440cabdc97b6ac2967d3fd21240cc856f88837212ee7acad21040ce569d82ed541ffce86902f24675b44d8e94837b9178eb1a4aa6ba3b45ca80be91c59ea4ec84b216a2e581a97e127e49e660b98107fff6563fd1e2d64b761cf4b0931f7ac10920537c86b85d1a121830663e19cb26363aeaeb0fe0a598cd8fd7c4c22b4c2b3fe165aaec22a9a02115205f475107316fdc34d6984102af4317a8e8e32c2752b53b83d6ac77c71ef3d6f0891425232edaaa3e46e14257f147cd11c8842527f5b8cc9547763f650d854f4e435e22e36c2f80a3c21e1d3e6bc9df9f14e212724579665acf76867e5429a5065ca1435b5c757d2b19b453e5c086142728ee5ab263a052d51594252c6d6bcc1aba4fce94a4852fdda59eb39c5d43009c939b90779ef9eee7410098961315ab068f7e1329583902324469ff34d32855bb05d0316908116628424e13967b3cf896dd2d3f841481192478e3cadbc4a37cb0c104284e4929b722ed53597c462030c0d8cdce802041a3284e4516216d2b357e86710228404dbb54db320a45c9e055dc020c3080942729275f775d5dc53da2fc0e8a2866113428090dc2763cdd928252e8b46d6427e90ec2e7295547a36cf7864ad2021c40749dd296c93bb874eea4182fc658d269f99bbad91351e24a898f163234457c7ec11427690f09e2d3a6b659669900e12e3968da88a4ffb713b2284e420d1e269cc8f3fd737d1db08c141629296317a6537abdfd4dd22b1f407515e41bc84dfc616c9a9bcf7e35d6a91dcfbfd1dd5b2259dd122e9b383d2b962f3989646d644c0f842e4ce60600422066416892322fdc29890e94dbb34009145f2b5a73055af29c51f8be49d0bee61be3d6e0ac12249261d944c16e49ad2f72b12c77c6f45a6dcfbf101882b92538e41a8153d7253cc915624a5493dd149f766d0ad8de401082b9263af671921339e74696315c9d992564c9ad9e8c28bbfd1c5080c446e3c0a5491383ea7a1b62d55534e2a12e44765d698155424454fe1a46ada9c540a4f91a86d1754c46b4cabc191b5d301882912948cffc966453800294562cc6ee99331e8bfcf395d78e145a72fbaa80280902251afcd538f10cbdc629103c828124414c9dd7fa11f3a7bd659466cf40848289254f491a383575acf058a04a9b54977591a215efa448258d0294cc9e6ceda7b22c16f631cbd512aa94f77227153c5ae6ea64d97623891b45eda6a43ba9b481a5916e2214dd3d4a7209a58904c2c082616e4120b628905a98451626d12d807b9e9fc2b08ff7c640d4412ddddd5b55e67a60e0d087040461c4022510c12ab0490472456baa5ec299b368bba2312cec74325534de2e2341960904624773695350d9b846e0a8411c9f173de6832acc892a7452469a83fd5ef902212db3afb894ed3bcdc24223105e56da32a29194445c49f17933ad5a443e51c62cf8ed51844bb2d8bb7c56c9ffd1c468812b3410c9154e61fa2fe3766d1602192b692eed6d1e1359a4e8824b1a0ccd574c9c95287003288246f7151bae9b46c5012447216f31c47d90719610722e9da92920f2a452961014482987aca78598ccd0604903f24a88e991119a5c4375703103f247696a779aef0f1cff721e173b20e9583fe948b9981f0216154f66c5cad94b3083911207b480c3b256f3ea909196b113dec1f93c9e421b9ed32a83dbd68222a7848b00ea6f47ca5ec57db1b40ee906c2b973be75735d7ed06103b245cf6a42c8f0ef6bf5e1d92fe33882d3132260c207448eeb08da2af2b46cd3fc81c9254bcf4f11cd458c8942405881c923a5a4c262a5c233b63860c1a327c0235cc2840e290b8c9828a9d6131e46740e0907c2a699f6fcefcf4e81640de9014f494fc864f11b27337245657ac13aa3fe61bd300481b12efc4c3018ec4a80472e62251180a45410c022110c362d31ec312000000101412c682e18058b0eef30014000441342c4a3a341e2e1e141a1c8bc5036130180c8543a24020140806c3501845723008953a5e001447ef35ef96f7456fa5f720ef83f77aefae7757f76e8df875b31883057ab9e5a1d8b13ef8bdbef5e0c3e57deff892e0cde2b77fd3020f2ed41be4c94bddf87b3366035880654f9e77242032095cf71d0c2fc8435e781edb3825931d1b26c8e0c0d536c8b323005811cc6610a0c347d628f513083a026f1fd870bee91e00283087218224ee9cf0f61f8e3f0e88f7ee2a5b83cec26799ae765826b28db30ca282175ed2d6d8332b533c482517268c48b0d04132949353cc1b4f3906becf4c29c23aeb7dc2861ae1f5dc427cccb92fcd13f33137ef2cdfba48b0a19cbff4623e6d9c2c47df4a05b6110cf75ac50b60ace83151784ea30bc3c945821f30a5ca5d65ae724d5311ac8888d4528c98030a3b08db48958821482f905444f8350e4f80584ffb4a790ef95ffbe74d46b9f72adc416142eca5aee0611e32fc09f048746bcbf0eaf86c6d616a7bda9eaa04cb51fc9f3bffdcda5003020f23212820d8e9e52cd2ab8e3d771adbaf23c20d71a7a4ed8eac6e815530ba89b91a8f47409042b9ad50c5a6bb661cbc0ffebb6aec8d72a08fd47301f0f75d3e44b7061c3999ed1675c80e4cef2f8412f71975a80f14101fb03acb62f90b587287bee01cfb216c835ec8fb83d757d30a284b384bb9a57b9dd0ac04248a7052f7a2e61c9e861480a688528148b6cbac8ccba88cd4020814bb085b54d1dbd2a4c4d26acc6ad9bf6075063a9f262e882401c7444dccfb28b94114e4dedc4a0fb66cb94a6f5d5b7122406c036581723e0247eefac330fa82a903238823cd6b42fc252f841524529e1ed076ca480b0b4e026203e951716c819a746a4f6923d227f3a999a3d1aa9a0d2d36c21afb0dab263585a68ee7dfb712c36de5d9ecc9005da8c5c1be2f2030ad91be7d6b4be7be4d99ade3e5cc79c1576645bebfc74bdc17a20678f654c2ab63900bbee0c5520b76b1c21052f5c253fdd8965d7841100825a4709de9fd5360a5c96437140e866305ea52e9d744d048de895e473e1bced7e21fdf01a8b6a21e123b9304168eadc93ad44d45a226240b494be73b84d4ce50eb36e369d8bed4163602538682f7ee0a55347dc916585b123d21184b758d7e2dff408fb67cd7be72f5beb90b60a1dc8559b7c502272d1730330abfecf1bf300527237661dbb053d3b68c35ba6f6c2d89da2ba4ef5cb23a546c257b9851f2aa14945b979090657991c085872c67a3f8c395931c649b75b361535e100a373a40dc34d55b22064425a33b510613618d4ffe36f4d662744e9b99a0b6c13fe75e8fd0d012c654a651eaad4cd0ad46cc708603e8eebc921307a967e3d3019ca73a02c275ba017009a25a6a8192bce02d79688e365127ba8c1a16963fb14f029c2ba414d2a56a1f13557af9d69d6f1b3f9dd3cd6be543f1cd396a826e9f329ee87c773e80c70c4e9f8213a329bd4ffdd563d50c71133d73d9e59ee410368ff02dca45aee7cf3d13f3f331d37d11b079387db2275d23fb1687a4f4a2a4fab056cd6123dbc3fb41fa51d619d16803c9a2f65517e799a6a79064b700690e5e7663618063c0b236839fe355f74e5475e6be3a075547824c001b1527d7f7adf3cfa576ddf9f6866048753a44b835a578b804a6ec293fde139df2cdacbccf4849162d22d58b864d61457b9f451342d08832f65da2ce29795d1d17546db2314e63a58daabc2dcd7ba9ea8c0be153a688ae8272b568d01c47f430b79ba83719c5ca76cc7f92021e4845c6faeaff965b444c1a4560f261c872829122265b003a305d8c5d56c05512013c0b791a457b6573275c5c1a3812bfaf3e6474904a8987352e8c87636216df9b939e38114bf13b153acf6d4a2a18d863ff8461c824b17f19858fb6da3f74ee568d5483fde0e1b580c355b3274ba291434c29214de642026b33d212bad8aa3e350c2ec08c62213d0be6d0c1dd0c65c499c46970a6a34ac508431a22f29520b45fc52d8b18109c6c9c8db22334984298d99def06f34a7a27a84fc7e6186075b4c1697a361f3421f33222b58429fafec238b17130411de793a83f6dd8980835019ff75ab58781da393a3082ddd5dd651dda6f0786c483e79f99927309ba3f34b69a1c01e3fdd74141615ae727782449ca0018ccc907a4bb004216410cc0a77843d6f41d8142120fea75e70149442272386d8cc037331f52b701f79f91d4c9700d7a53a9eae23c7f9e5761db1472b2a2a3b75ca8260881ee17795ce791303d4d521caf8011353fc0099ee9ab7a4b51169c634b03cf6b65010753ba4dbcb96a7e09098b2a6955c428f849f1c5293a1031693be2028f1d1d8d0296264f3b035904d91c8088b8a69f19acc96422300dd956ffd9cbba233849181f3152140631602e3006178fbc07dd7c019c3038941c50f64098a9fdedf8f8c25add5095db0567b36621f0f14a157cb157ba62a351fe7b09117289069d1079aae79e03fc0b05b2ddb8648929b1781dec2abc48c2e7f1c3c9ec120a69288359862959588c509470430839619576c40d65e6af224925806a8eb7db816191987a227c6d084f7ceacebb96fb31408759a093bc4513c07d7049732e16abfc23e1405b676a9b9dfa4ebfd3d4201b16bd7811b0f63df8740dc8aed2d7ecfa3e671d632af959966d809e3dc5904cfeb4523833066b6ba3463bf8be8a075c7439ee6b65b663692ec01769c12d47445385d6da7e7509d321e2601a4d320a9785ac20f061a1e102e4ffb0a3b6175df534ec8f3b505d466fc44786fac2b141b151156a12fa153c59c5fecb3a487bdbd02f6a51ed8c81278dc634fd8fc2bb635e800b904c12484ba8f319d9ff6d19d0896e42f81312665bc2c43af03bcb80b9dc8b65b826678f9f085964b3f2fe83e92d0cc0d1a9971aa9925c25c7b4c973adf808c544ef53e3a33cdc6e57683cfde2f68944baf3124e4b4c17b652bcd14a4edabcbbc83d00bd0f766ae70863438651d5990b79036cbc4eca34bde32d6b6a31702c360488b523ce408b57262c169c46d0dfced21ec6a831c2c09abb65c6989df5cbe01c81e6fe39e992995583af01636e6ad49e3bb09d74b003045a0c2c4974996b2b201827f44415458fcfb5821ef4ded7973ca843ac76bbe7870826e5089d2c2b792b321e4e0d113745f5b8a47033d91db2e4754d22d0a6f2f7819d26fb726f819092736d8ec66716e6a1af0e9cdbf0326c202e7b959eee292248fea2ffdd6d84776c38d25cfe44c172a5b1c10e1ce55d3ee96672754f15af433b4e4941d71c6df3770b8e50967067d45bb125b204592391de7ff2fbfbdc59183c63335e62b3f9b25fbac4a2262f870012540f6eb692a81f0dafd84f6f58d31ea740873aef13183f9f2c80e360196800834225b069c21588e72c4746ada2c1f403827388e7e7955b9852825da648f2a20bf3a49c7fc20ed2884093648030c020c09bf87843cb71c538c4d0fa5e6342eb4697d5e8b48dedb38a894e4d46f2d7e109088772ac27a8c721b17aa02e5a2039af24f99dd9f3d8a6a4a5bb465d1aa83a723e2075df372a33be12c91ac9e4b8d34ccb9f94a769605e804f2f200d5458e38e193cf414eb9dd792da88982cda0be07eca8588021ba55a34af46c021e8fcb573a504edcde084ea64339137175c58c53764da654d5b0234accdd905b6f427a6773651bf5107f0c3f814e882e893a35492938559091baed52865a1cf8b16038e15742e0bef0cca45cdd0a620659a068ac42e1488c41275db7e7c7601130a05dc0cd17eb3c06fab8bbea8ed776cda651aa5be37199ea2581c709be68d8640f2d677b2a4ef63b0cddbdc724e5ec435e0d86f23462569b5f720bd3bae835be0d30946c1de8e9d39c29d858a9bf0a037660800f9c947f09a311e8178e1ac26e62413ec1c2310fefec5e8f0dfb0c813d74e9df03124b511bea0e300d2f0eae302d26e8d1a8c3609820fc85be3a87bcd359535e5b6279e018905267f10e480195f57715c621bb0c4a50d26319fc2eac2df5f15ac5a7940e418e75571d2fbb25873846c320b6c1e8cc6d9176b280070faeb9c84804d1397af0832f883af287a82222a15471b56582f84b259956e3251f9e56c94632c29c280699cfe68d09820ac97499eb05210aad2ebe61fc0899d39d81b2453b02526e8608db81a0ae444ec01e1b0f17898ec89fa4df5cd087154733c639762afe88bbc4865745da0ad2f1bee77375402e5500530baf994e9e42cf56cae0187490e8ca246dbe38ae9c73d3f71082a24fe497f612e1f1884f26a12427909f1623729760ce3d0958681ff8d44c687b87f69c8a99e5efc91b81eb2a6e96e712444f6c2143b0d76979c22a8acf98136b7fea633438230850e39c89d22b5050466f7322f4ecc31e6ed3e514ed8deece4f0beedc4084485f310ce9769572725da64e411c181efca0e95b31f54f870b42e46405fdea5e231438b416073118a89a0dc44aca2ce0368b8b1d341bb146cdc22b6798c779b8408bbdf42640965ce4b2d9c1e5ad1723f5c46b60b4620eb45a4eb20b81a7e8e184b4552ba6e319314cb0e97c7000e0ec42584be4cd997ac01de668d1ca552604b0b70fe7da217f88194c785356ac0f7050d888c07057e18ec937123be5c59bec55270b8c498a3a0a0f13aa44f5abc1a851cc55d2677b38ca42f66d4acdf876d670ec862d4a66834953d783b7c027568c45ec98a2a96e0ade6beca654d5cd1dce9d01d64bf1bebd8f85e293c13544960991906c37bd0ba45ed3e8111b98e9d67c488220f4cd75ca06296ee4e2bf81e6319995121a1d005835855544cfba3031f6887c996dfa79ff7b768be0f13733fb8ad3d4cf5982bc455e80fb22afbe73c4f7790fb5a397d2d7500d8e7e4a443573e6a7f8ecac55868d121d09956bb9b35ed03783aa58c03961798ce1a9469f985d89f7f2d883375e7176ac19d62baa98e5867285e78b647fead2be30bb35ed1d3cc1890d6664dae955fd58eae616c0495d2bc73ee505873d0f1fd0b1049c19fe3b4e3e4962b011ea75bb22a511dda3f70f68150cbde788bf9c1fb842eb6aee8a5df6db25eb2d6a3988be4c6be8065f5ebc502ae7adc1ab1f91f77d70f575988f0c41607aa49bba108977d23db65c2f54fd876a7ca8adb0d419b08cd8098e0612eb64a89ed60b9affeacab7242d5a53b8026fc495d577625ad0e321ad35847c8ffd79429b04806d45c86289723cb6588e91465a2069215c364a3a59e92e8eed91de10dedcd1cef87a2527850cfc75efc9a37c24f9ccbea18b15dc2eb560fba3a2b5494b610c9fc2e7297233b25ed6d048d98c1b08bca43a993606c89d0074d43293de621d1b35ead07747ab58327edc4e4001bb210a99d1a4d6e249910769dda4256620b5d71437eafaaddace9bdc69b809c531824f2003646a9b6d0a3357d677f7cb69c326962a56fbfaedaa3c5ac7cd8f46a273b8847224b3f615d32985ff1874100ad343465db6c98d7cf85678dd51a16ae8e87d9412e4e63b6c941edddd1e3841a620eaf6a193139c84f10bf3bc3b41be4fc69634f5625d6d8c8bc7f2c948fc4424a4714b36b294f3396f84b40c35b392fbb62929a3aacd8c524ce9dc2bf9e3dc60ce333eb2410d1e40d83bd72e41b46a07d6be17549c1e50532318690d5d6d957d7529af1ca16eb50c1ac69c2198b91d5874ede35add92cf8957ed6b4c85cfbf1f32cdb67972c5c745c0c0b3785fc8a59b5fc0f6e5f92e0ae59871c592c4fc71295e9986c1b30b95356fa513ccbacf93abd1962eb7813e8e19ea46a89188b9b939774aae588483f31ec3fefa9c6ae4fed9328dd9c4f987a20dfcecccbd9e409d8e19a6fcd2e42c8555ce476b84d708acdd80edb0213a71ba10b67d63f371eb41246944439f148c02d5be9ddf21e40ddeb8452e1966f3a916347f8d37bb687d3e669891b0c5a17290966a35a14e149b740dd1bea06d42ed95460bf6e2d0e8cc43b93180443e31ef88894aa72ac3430c845171fcb4926a744e8a33f9b9c9c6adbfd0668d4c9250856189d42adca5ed8f509d3e151eb55e964c7ac5f5fa8fafef610d5ad6627bb7a293ae71f7fada8ad23bc16ecf51900082b821258e1218132ca2c78894f543bbc08499d234ec914c974e12551bf03a126f7340c9d69dc33dc860a8827c3f2228983ea2a79be77becb313c9ba26ce1215d164d9c931b3de1e84461f5a50aa821d9a51c9ae90e3a32f9e281786ec6c5dfde52dd380b05fbfc80a2706d3f6558d9181a97bcdf2c26d72f98a841162a76a3b90046146c08e95b80ecc526acc352087519f4a5e8bf1476c6029584b540a474a5157a4e60f51c38da75632daaf3975f7e1ea1d3eb3944f41cd691c057575d08388d7914e0e9954037cd4df5013a547aa00820c34ad02c729d2c0c587fdb58392fc2fa5e90ba6fbda95b3ff6355aecd791e9a912045a9f3d33e7c20f99416bc6f3bebefb14c8aace86c03e2ec3d2a1a7f4c475b26963c9948ec9f4639da2ed3ec5d20de8654471503ef3f246bd7e964c2a6e1c265f9312bcbf86b3206ce9e1e8ac2f803aac2be02422e5da65a33db2f3ade1538e8cd51dbb435085a6a98ed6739a9438d32902533cdffc86f92837bacc1c8917778f686f276b20ec84b49bfa1f29c9515ba2efee6ba691a76d7ccd4dc9e5552c68e88233a0ccc33508db8384e64b31fea8b8e16e2c4256a4387d3585147e762dcabc02a0723c78a95e75ca87f329a068803aeb6437efdddad636e098799e502dc3ae419841780b71ad938e42b6169e476f69ee443261d4e677a3bc1144fdd815ba71c7bf90c0a4a37d7343865d5241c1165e9edf52fe5b1a6c4cfe4b45cddf5cbba9d366a53fb2701b07de0bea655a01ce45e98dd36e6ed680c6ae1bc2c26cb624a2fe4579906931ab351352c8b2f70ee611ce484f119335576f8ffd96674a6007f62e76e49f1c5fb93d91f11db834d406ef92a5ede0c01e5709335768833c90ebd6c4daef323d613ea4f73e805e7ddc5c4b71cdc0b9f271d37afc50c63ad58f89705f3461d7fed9d69b2f34ebdf8cfa01551c809b4d8383733e6ebaf77c64626fb608620e2950cf68f04eba48001a77cd6d9a0855781690e66a107242b2c4fb00e1519389506cc094300f53c2a5b7694711f2c2798073af810059262f2097d5529c21fcb007337248daa84a9742f62effe2bdc783c6436c2b659997422edd042b35de00ac15e397f6b5c688284d080689e3a104e3892b94aea2a58fef760a5554dd2f7b33d3f5ca1ce3b1e7a2083b76664be8beb42e1883171bc12c445eb259a0aa06bf4cceacb5563feade43541922c38e3aaf0aa4bdccb0c20c601c3e42c1baf9853bc5511411f9a533011979ae95a9abdb6ddd006ea6b9a9a5b7dd42248e7024880f0c8545a731da4430fabc912059bbf3c4d70d4f266441907b49c233dc8462d25e6edbba963929c95e09c651fb9f24fbfd6567197f342cdb9367959225be99ddd2bbcf7ac41a646f519f17631b392eda7ebee1ca40feffcb764ac46ef4284bf3d5e49ed5f4d147c7e014c9cdcd8f0a72167ed6d373bb175fef857f0e883b0e8443648d032c9d1526d9f7725d4190e98973619343d317a71e090794eaed8e7b0212e346d0038ed4fad7e0f2ffdf4092ad7094cb8b888376702fe6f6b912ac21b70d8f2e1a8e9c41ec0f47ae6a7a1e167c24f61b2cca57b51ec3da9623fb685002a6d1edc9764c869ebb4fb6936d686fa00380845e53f0bd254a2f10514ab63db044aa885a9c3a7faf7643f98dc218ce79a715f10412471278d4292d6011b0c14657017b00ece6c6f36d7b4c2efc2f111c4631d6b7492d0651f9bb070d9d2536be0d4d40759b602f4aad925b7dce775db06b84609835736a12f5e2eb35be524790f124139cfb056c3b075fdf454269bd5da9a2a0ea159b2fccecaa1c03b9ca34b064dcb7b32db6c17a21bd1b41fe034b587ef619d12f2c03649b3c8a607b07da5f40deb79074bfe3005a2002a4aa0beb9ad5c9d746c6b70678a61525db158ee7bdaf5d0e0026c2c3b6d06358d50ce68fd941c06f9bed0c10182dc8985474e626ce1005020203bc6147777d745654056fb5c20d54b2112796824377d2be69ac6373b1ed0202834da95483b86dd372582ad61ad8f3fd35a60a0063a500951bc982dfbf08d714e0f4fc3e8f9882fb84ab24a645a30f89b16333938f65abe07813cc1f6a1505611c6c175563e846e356e812964403408e774b7f00a7125df428e05f65572c9e6a2575302c5a3fd3c4440902a5d19ad96eaae83bf0ac8d5064e895700741085d06a5d11d19d59f5c740559faf8f761c1fc22284e1d42cd4c98c2f30085630cad73ee18d2b19ae9550e00fa3a61bd906aedebcf15d1f69f37742ba6628084300862548353deca4dff1aa3b1e5c29b04d88d1a6f5412f3fdafb71c1928ad003d884b4fc441f4d4ca773e896db28117ea259ac8115e1b0898a98091f53259b4f3e570f7a8aaba373d9072a878b0de086b8f86db414ce8a3105ddd124014c32c6a8890d3f67fe938675083397ffab8d7aec7625aefdb05f5809d42448ee9cb916d2f2f146bd0a21ff9950f97309fc5f5e7b50fef64c2f2bd095a71241358f9c8c7b71e9b2b34fd4c67f673332a688ce32532312a4a68ea1fc292d6e9832e43f9308626797865645829fb3038bac7b980557a44746c19082ad949b298344ca78aadb43674584cf6f4d17214f6b0646c9d706ec8948be90c77cc8cbec792cded8e769496e04313a1d50521332b6034cce233c4e6bed85e1e74206520f26eb8a52597a7b0fe55fec1704447d836d2dfbef558c5874d88da11e09c3bdd077cfda4139781cadf2a38e645fc775c20f5060d219275f733269f7ac05666236fb28d80e605cc4aa239eb20e07c983f240442b747db4084bed1aef3282230e51043d82729c164a1981cab2a2287bf346ab935cce7b990f348b0be84db94617ea019a9ecef5733fc759cb9037c208105413dadc2fb3f2270acf186b36626ba0810e03103b6435f3995af3345828a6687c96c98f3b260c50087abf1770a18ee778ab3cea224b8b5630b2b5b7340784b4386815d0bcde1a922748b59efda9f58e132b8b88e230343db8440b4bfb10b5f37ba906db8c82823a3b0f08a30ff3dae3ee4b299cf4b8e6fff8c265a2ce590520b452de6c1cad88af93530bd1b2f44fb447a3921f67aa67c38d03881805cac8d95d7311edd4e9fb53529ee77f2dd843cb5737febae65a6a69f236150438df7c14dccf4dbd6000d9c446a5f8aab3b0ad2229d1cf717cefcae2e6f47b5ac5490a90e76941ebbebbd21dc234a2748cc52c5ff3694d848723db4b167455aa3e74648c795cc4b4ec9595e43061d425426fdc6e3ffb38d635d4e279598b7b08e4cec364632315c3ab8943096e4c8c5174d36e05d88214eb2f0240fb11143fd8a0e03f2f1538ec887a07808e38ac0899c502f2c79ac3746f36150c6b183c58fe011d4f775fb16263e46709b21dd5eae8f1706bce91f696db5c0bbc223a568b796f7081684ff8b25ac41cd587baf5cd4bba93cbca144cd3cec5c8987df700a6c937d129bd984a2f38c12d25494ff932ba0f6b20e0985c470f55404b4da345cc05e480bb153efa03658613256009ac223a735ccac804d32e4d1df705291dd678045f4cc13fad10c39b02a983d8b12553a9c58d18f4a63f3468c747fde6e8d4e44b6373aaa1baef3cac7cfa6a335a80878510822cc9e351b35d5bb05d398c61116211c0b253ea3f7721f9f77e2c3488ebe5bc057a2fd2516ff8a9f9caa53599adfd7c2ae4952201ee036142d3ef7d0a6ab682588bebd0e99c5d314e970cba7e7e4950265245076bc4cc52c0e2d941e692ded757dfa8fb23a650a09d84b2376f8ecae76fd53d480441eb58c5f4e53548313cc4d8515013fe895b03d01ecaabc24af4ac730810377f5fbae421d1f40b066df399086a99651f553ee9c4628b70e58b1897efc9cc91ef4d9cb4f092f69e205282315424343c340a364de28e205fc5a39329ada8870f07d6414a3d48cdfc3251aaccabb0c4182ebd3d3bef0082c65c823344e940065c05a26b550ccbab07d500455262d143b4211cccc7cdabd075e8742e750e9213097fc76ebc0d85ca5f5496d12216b66aabe9d4ecc87bca049c9c1e1d816deeace6b12fde0b1fd80e252f80ab9c24a208dad62fe0fb74d784311d69a1fa627bc3d5b834c1c231b433ca0cc89b81b018a591f23bafa3260893937e497430cccff65332e9b0e63e6ae14b686d2489ad3324260a5c3c7ef1ef658090b790b778ace970a8afd7bad931b49959a10097c5368bf1c2639b8441d4b91842aab5e264a8660e1679c6c6cfb8e942a1da6ed0af1d024a34a9f94780958613970d4426e3c5069918bd96516804430723daee373f35037e02daf18b2b2183a78547f588732b5e61bcff88943b94540880489af802badc9874c9e57cc5499bbaac5f205beb86795cc58e85faa699ba070fd6f66b4e9fbe6e2c2318faf0f2d573d389d84049d913b72f6252d8da2a8770eb474fe25c74908b2b1c1338227636d589841ad79a07e62d55385f0486937cd49bdd36d8625b9eec9b513311a018807e1368974c3403792c525d16a9691f98a793113a15d1d2405fcb5d18c7a837444b9140c6b3643d7d7b0f6eae9ab168da8bda1948e2fed8db310a085578825cfc5a7e98517f575fc4350b26ca607bc5b821d61454e8b63cb5e10f028baef34810cc1df26c86af066c36be142458a6e77c4bfcc5a72821ab963b63cc3a3491b9f7d6222f7beccaeb103bd708393b311a0abc8febb1051f544b640f60a10e69654ea1a00e2f2d404020454d3a16c80ada95f898e0d84c49777673feabb865f20439125db1cc2dceb935a5f4f996d8de42339794d997562dc6c99961b36be2bcc7ff615f5417efe7563e9b2d3ba0d71900b42f576d36a0b10b7617b65a16b3be7174b8e1db3ddc2bbf66271c46c0a1145e15288d7d96c75773013981bab369e0751ad9cebca4154f45d2bf5038cc7ed41700948fa87bbf4a7cdad3c8d19e4900bc4896f100ae22a1f532084c85b471a9a78f7cff212869478dfa87eaba94fae29d24b6a03183ecaf6ddc15cd50b55a390d5f01f8e6678d2e4ea3c0a8be51edab52594d6843f77ec588a33dea7f7037be0e9c140645694bcc6036f41c8e9b888d6cac3d576abf7fba555cdc91905fb31061222162a6e513b23c97695ba500740f67eb284a74e4aa19d9e07763c17269f03a90b49bcf72749e2e8af1ef64261754635b6fc24b19a4daf00abc8a8d306e50fff16755179100c9c590ffe2a9b922b58ec0de79a1ed14916f9a74efbf407b1b2e52be4f9e2790df68ff718b01399d80453f5e035a9554f1b99cf1a7cd07dca914405dfac80a1ad2d2ce71dfbaadd6c86613a30052f87126eaf7de90427a0f73463ef27f88f86128010394b8892a92858d0c9c95ab2b5c854d757d557b87fcfd407720c2cbe67d5792a962ba7bc4d0203d58561625da2afa280211c2b89c8b142415342bea97268d8127a425f7851ca6277b29b4054e77bc2d9a0725d667d78b1f0be49989673f30c5a71c829d215f71071d262892dccd2969b0cf86538ba2bfdcc77a173a59b78ff039fa19b09fe8897b3b0bb0f660e65e598780e9c0ba59ff3430a29b82e7ec4baed9e6f6264d570090e6b1f90d3a11f2840afac7d960c2836f4def024c39b0da7838dd7dff5e59746019e5a387f8aff55b87a3201004cdecbe8af5e2c76f802b8d2e60cf9abfe3d376035f2f3c673fde6abcae8782578d2239eee6ae3ef53f6b533a07dca57303f653ceb33d633faca39b570173dcd1d0c38aca21a911d71458004e0e2ca3c5451d4c7a61d3db33656c325db20bab4ccee215243425d72e88aa9eff82c01efbaf60614e44f31cdc031075f4369deb8a365be797b2f9a72cf87130cef5d302cce3776ba2b0e2ef86e8095fc4f6fe89a59dfb030686a79f22f94fb310821c31c3a3596f2103b4541ac27cd62409687d88113dc2bce02b5cb4c3b870d078be081ffaca00ac20a367c656b6d762cfcef4d3fde5bf9038cbcb03a71de4e1f08c85b0d5b7ed15581acd1b2e678994b4e1619585b0a576dc66a8a69c83a8a6d1e8e2d696508ab77674c26e31b23246e61ce9c99d834a658136815ba2e761fb24c16c496c751f6f94a7158857f81d70febe2b5a75e2d61818d0aae2dceafceb0554ed6c10b675e7d622fe31099c333641b11da67ee0dbb22a49c6ece8c4f545b024ab9af3eae3148c08438be54e00b4ab6c146184d6c905b9d3c247a35206967cf505440f28d4e152bcb8721a2e5469fd7e893c9f6702651988b3ece07efb785ce9aeeeadaf1d251954cbfa3b9e4010e5249b58561843cac7b9c4a5a162ee806871a4e9b48a8d24a420ad27f9c7d13d5cdd724f5bdef307378b9d1c9f730d00af6649c145fb47dc81150c5d76da3922ea6b58f424e3b4791e865d829148a3eb7e8142c53912af53cbb02002a9f574b92c24ce377e485ff6c35b6a6a4d83a6fea16f9c5222416a63a76cbed685aedb1acaf9a2aec977931adbb913ed0353d15a7c715d2d6583d34e575d934b1ef3f9146b7a2626b7253d333c4d33172ffa4106afdac639642a41a2d48eac6f9b3ee424c01144ced409fbf7f1765ff86ea1592fc80d6452ff6415b38c972868c1a0424478f4ce3c8e18279f5ed8737021fc73dd72054c2e83ede4d06a70a16eba6093e40d0fe2e6caab7f67c2da9e03ede1cf1c0221086404134f643a8db0d2448738744aa7d810588fb74954f54c96c2819dfcf058d05cd54fd415dcd7477655b2e4408ecd85b31031894c8a7362a4bb2cf118cb6718c6cdab73a5bd34673cd9fd0474b49d03082152e2136dcdc8ecf079aad4d2d6b7b08f112c9eee3d7960c9225a01044c1e988773223ba73e9ad9e2d63ce07267c3e89b60c7098451ba1ed853fe94fbebc7c663e4b574d67eead7265bdc5126c4f793dd594e8f22d098448712c580a0338346886f963329652ec7f447d43557a6644cb2d3d6dbc7df5b135eda2c00f00a7f12c63840fc1c99702e875c855080a0c1ddd129966a041f7e59525351e44b56c7213704b5c6f67a4ba34c60aac925421c24289c58bea9cf40428e15b302b606ef15240beea4475e89a99a9e338b4caed26d816d33303c7defe27a7466f77bd538825a6f088622a0b6ce297627212e637345682b53f96921abe787bc2b1be0c82c99ff938966cde33f781a9f5b60960d1968d769aa82c51b91bb366f18cb307410b3592c328698dc1abe3fe40db719411cf95b046ac1f16f9e1c40703d55b376d1987e88c1223083a17b6bba018a91d1ef2b23b74670fb623b42f12459ea14944235449e80ae03dc34446537d9a80e8d20bc524bc7d20dcc9f45ac51d43102da438b8e9336c256bca4ffd8149a8daf6d5881fc2737831093d346546d78cc735e7ae646b9623797103edbfabb2fc59a9cc374c8c560c247122062aaa39f1a40c9ba468a353e92b5834af72d803a8c5a1a80cb83683e2fea97334f6fe4a6f2a816268a09da2a8aa6bf4ba70a6fb4fdde9e4fe83ee7475ef4fb7ce74dd830923f7c7753a7b529dad7c842e002397b80236dca80fe99ee7e46cc0d533382847f25019fe49df92c04d59b0351e16c31a1808082889c56575fdb4afe0717bf1bd4cd2da9a073705c751308f1338a07f40c6038b8f8267a4bfac295089a70fa234bbcdc1aa5f1dda62b5dbb6c78e8e715f96c16310dbc80508ea132c423821a5c78e98610511b76f46fe311a0d462f3f0f7b315ebbde125ba1bfd3ce64005db3bc2e33fb725885b74213f7b217b205d73a95ae8ef829d04b6414ecea46fcdde9b28a24232349740f963a26e83bdf65ef1509e086156d7d3b9995659179cf483481a518e926d040b4026cfe71446fd313980977664680ee23e1d4eada2f5c15f45d2ac22cc7a6391796cfc7c08a2b4655d53cec3c4449c8a30b27029b88382657765504cbb877cf53a982657ea87e4dbbc19c06e20c50f1201b08e8070520bc9b1bc1de35ca454e0f6c0911d95688228d28080210cff05b81cda687c10bf453a94d8e58d3d2dd07755481656c471c281e1d34f0d1b71c2d7395443dee027934d28eb8a600ae95f6f8ea2a81ab87812cd30f2115f2fa73d29633a90046ff03189d722e4471455874b3679e354070e64e807a5ec507ce555567c0a71784706626ebac72dd421fa9eca45312495a42f1e4fd8f282603024c1f46b085f09c801d60a734137182c43c9389ac04808c3b3089436123459453dfb095d2c92449a3342de91f82b47309982885e15287a4caf8080b4e1aaa038ed8a8235e0e0c407ffce584762a50ca75cc009b947d533e9ea742f9ebf1f66a690ab4ad6c02c892746d0a34e87f551e6540a0d1c61a02507e0d4878b126310063c9f859c5803cf0b00414013ccf9045f420c1914b0166ea48862de7379341b252996a18e789ac75207ed63cb18064cd01dc78be46e072abf2016ef13a66e2f6012ca11f23431375a4dd014ee9658255f5633632cf784e2e5d9e0dc51213bac18000620c434488270e96795fff2753128e44662306aad1f8c4332d07451dd1547adbd94dd59f76f031d90473db1d1e872fec1b31a42260cb773f7a44419c1e4b7aab12d9cb007ea6c6e1e245741408d8b60220320d0a8f10bf9ac38b4de054a647883063e7149eab8e2f90c19f69d9ab6ecaaea8f2db37f42434cd9616c563a8ca9593170d2a7dc49605661ad57c1131b13167eec3a74ca1feaa7d548aad6ac60da9b7f4d0f80895188fd79dca5cbd653d6c45522959ad516df876f73c0c3659f65a21d93ad4daba2bbbcece4178e4b874cc56b203365908efa7b337d5036535f37927aa8d9f34c5dc9ecdc0ee249b581396a83ccd414fab57bd349757276f3f6e43b8cea21dc7005c3f236756e37001269c6573d9a12805fa688bd69fa03b5ac7100102c11dccecfb1e7732eca4c978dfef566cf7684d38ca9faf9f195e916cdf2f650832a2fcaecf018af586ecd0c6ec0ef890e0cdd80e49b44e10f233f1907a27149f69634605c420032ee505f70e3750b0a6d001f3ffffffffffffffffffa8df985ab34059f26592b2c4fb3f73959e524a29a5946c08003a0c0000805f7093267d0f18803020350ff20e810eaa2899d038e531a81fa928da8afda989ce072a8a41fd2929bb4b49bdc98f539437099e6593b6dff4d38729ca652d42f7cf093afc518aa2668b122744b367943e48517cf30b5bd5f794bd7f8ca2f41666b972a1bde4a60229478e1d1d483972ecd0418a0f51b8e75db1dd6d6b9d64a61a3be18f5014b34e902235f464fc58053cdbf0018a92a083d547f992dcc2e413e5aa39d55ef1f184d9f8e8443996cecc6cfa949c288a2ad9b63b45af04f9103e3651ea18ecec4b89d5786238f8d044c95c349c50f246c42ef191896292f4fae4f2cdfc49dc61f8830f4c94e4d0fc550f26c9a7fa113611911c5f340f3e2e518eb942891ee64c34e98eb089f8d559a260faba27d708fb3c4f25ca79e46b099fa3971917254a5f5abf3b94ca68d08eb0f9c724cabb7df2ee7bf0ca914ba220f73b4e26996f53d5b9a3878e8f48943cd7e4fddf13244a32ab8f0afd393257f488629e5e4d5ee1aae1731c51daccf518b36c4449501da6e7a4edd0b11951f810a7840c6bf5795e44a94c1ad126c94c52bc8a28c92a491c4d3ac6afd2449424cb5e3d25d3c95a4244392965151b54efcae61025b1be1963fc964c624314d466bfd2294b3c0db310c5b0277e75ddfe264294e48df13aa38926294183289a7ed8a4845166c2090aa2f49953ab4d1788c27bd06c32eb01a2fc316ceae8f3e1e4fe0f0539594fda63e687728efeeaa30fe5763bb94af6d3e46efae04349b81b9dc5ed64534af6630f8599cff199e41fabfb430fe50dc2fd94dbe6230f4593d1eac492fba3767ee0a1ac7aadbd7759c2356af4f82f440e10811a3596310055f8b843492b9447bd16a5b5e7871dca49df2bcc339629bd7fd4a1b4b5b9fb55e7e9d40f3a14546d7b8a3931e55cc83ee650122e574b4d58d3aeef193ee4502c61664efaffb0b1eb471ccab1f3db979019acd4fa01878292fccac6c5fa78c3b6da316e67f7ea66579bc98309dba40f3714b49e597d0721eb1e6a43d9554ec8a417103ed850d4d8f99b84e9b82baa3594c3459eac58f9de3cc17bc1871aca6392a06b59b1dee0230d2525ea36de68dfb3d050daba509f156f92897586529712748bdcc738393143b136a8fa12464f87ef365ce0588682b4fc5ce296ea25a88f061f6428282964123bd19dc1561e63286de8b2ce7fcfa3d6154331aefe32a83eb1d83b0ce573cbcdb1c418334b9bc107180a4287cd0e1a44db67c41a7c7ca1e06f73b2c34395f735c25628830f2f144358d59d7f8fe9da47d8ec727c74a168f26a1015ddad9a73a1f89fa49a96c7f5787c6ca1f06bda93646a37ae975a28aa5d66befeb59a078db07516ca25c79d54214fc74239c61419ce7edcc4f87e7185d2491984ec37f96dc187154a6f32161efa399fc91961e39163842d2dcd051f552885fa7025641a2f9d49bc6c011f54288f891bc28491f9984229de73d225acca9a9c9de1430aa5d6d22c276be37da93bf88842d1f5dec4db102b3f5128b4a71dd7d6e9e522db5e6221d4c47f1ead071f4f289e5ca29eb6a8883d9d0f2714d74f6be85192eacce647138a57b33b1bd71b3e98505c31c9dbdcd39824e8c2f85842418cd2d239a7f3430925696d37e90f279be3fc4842c16d4fce2a724fc6d97c20a170a7c496b090f513c31f4728c70f1a37a4558c12ae093e8c50fad2fd98cff3b03815a1608234f7b4e2ad1f6c2294cf453fdfed87dc1d8750cc265827cf594ad0690aa1f8c1ccf2d3a782a0bcb5788c5ae6b6ca76e73afd63a3f9004279cce4f050cfbd5984a6f0f183e2bc07b72ef9fdc24682c2870f4aa1454b10be2f9f2dfde841d9a4303153359c1cbbfde0412935e504f1feaf1f7346d83e76505597e6885aecd9875d669c685e9326e87e021f3840df870e8a61ed94185f5677357c8618b9280819b1e6d9e9b3273f062eca22f4570693f4d3af2703316eb1a7ec8d65b769bcb9ccab751cb11b72b4939818b628769de9962fd9ef63ac45b14d34f96d6cedf3ee2a88410b74e8e979fbf81f9e856eded9dcc6b38698b2289c24cbe7cd9ddbd96e2cca275c4f88fef6d80fc1a2741943c9314d547cdfd6571c74c9f1369e54b2618fb0e5b20e306ca02b0a2b22744dc977f02b8920c78e3f018e1c1ba85123c78ea7018e1c386ad400230c1cdb8ad2c971e39c9c70a57694315851daa4c9f755945e36292506fbf825a71d0f821d3d4060c63b7af04055144673073d11ba4d0a190c111c7f834d44478ea31f2315c5b4d8ce77a2aaa3063502315051fe9ed18f9f67b341bfe3d18e1ce78018a72809d9797e4cd4a49d1f9ba2f01b264d38d94443c93f2110a314853bf72cc1dd44677aec10715214abe2fcb644092e6ec2f137444e2510631445334975493a897a9d6333228ae2e5471f9f3b514e226b3b7af0084549b23e350f67991a63232cc2c3c69983a2646f92b29855ab34d11146381e8c1fd161767ca176c61788f189d2768eeaaba92635633d7878a234ca4cfda44d6a278a9b4a4c922a754a4e94c49857646d08a9a193b889c2498df94ba70a139fb9bfa1238c1e7a9a28aebc4992263933c28622225f84913cdacb44a9a3dd8fd2d7e8c01a313051122d27c524935e8c4b94e395f06699b761371d61e39103a5e98e1e3cd012a5134596ca931f6b3faa44596354390d9f44e8b4922006250a3aabc732e9a73d9d27c624ca615c3e07b9b7244a629fc6a45a9474b1791244a2d423663d98ecd9847746d86e981d5f7c0f1c364490d17106c68e1c13f08e0189c49842e798b6947d1686480f30525320c623d25eaa9a7699d7e311b6dc30449ec70ea3236d03311c91fe9b24ad49f27450c56844f18451a35233558c28ba8b6fe658a14c140466dd038c840b88b1885266f49c4d4ce2236ce845d23c86224a92249afa0a1d2b277e8e4c076ad4e0b1e3bf8891887256a913264243eb71230c1ebf0311c50ff3bb79d3774ed61fb08113889420c621306d274c7451b1b18961885298d8a13647d76829c62844319d20bafdc38e6d5884471b21ca9df14d4d3c99b36f28c6200aa27bd6bc041d933041236c9a80188228856c09426989fd9fc440dc621627e91c9eaa39310051fed19a5d2e4d8a6a7580610393187f28b75b093af3bf3748133f142bb7ccfaab8ed187e278c8b8e2693b3670980e6ce0042229061f4a5e75f6a399d943a9640d556a3cb456c9a0ad1e8aee69fae4eecda0f569200531f25012ed459d74926c03271031410c3c94e694899ed6838e9e98713ca0468d19e030b881138894187728edc69594221b61d31e602404c4b043568c3a1494fc59e7297cc38b5e06c802356af0b018745845542f67ebbb65e6dea412acc64b8ed98e8d1b3cd0dbd0f13674e498c0070e50d6851873286fe748cf20a3a3a8900262c8a198fdb9eddc6b47d5c34612c9d143042d10230e25b184ef2b1d56729fec089b0162c0a12057322d4d863fe1be3714ce34667326d91c3738c2e686d27ce997909bce9498b7e11ca97aeaf46f4c9a6e1f88c18637d57c8472ace190f524c99a957c82500e355c254df818bb1b43498120461aca9d5c4cb77c8ea96434c2e87798111e6d1c030deb67b5ab399977f43b11c4384349e72659354f2c06396edc30233cd83686194c3af4ce4473809163870ebb10c4284361a4ebe7ccdc215f1d397620ab1864285e8a92af3ab3a9f1a08da1ecf269a73942be621439367a981e3cce2c86188aa644873811f973a2ddc3c60d1d3c1a0231c290b839c99ac533a8338db0c5008371f5b1ea2d9aebf97aea1a4328efe872773f0d6cf0b8185f48eb49d28951cfe48562f4ac415d29319912fc2e943d271d4e86146976e2827725a96cf314da42c9ebe23bc7f768a178b2e69c613fd5a39564a1746a3ccbb3060b25ebec1ff1bf5fa124e9b8c81c63892599da0a45cf6a8d255c69c8bfab7026156dfd6052a1605f9fc5b3e3c9f3f5144af2e88f31decbc4ac560aa5adec249ecbfe6527a350927184cc99b724a955844259537b6b73fc5cb1ee09a5aabcbb3311576e7242414de9e7f5a034db6e42c19412df5b63f8e7d39850f47d4f173a65909b53fe83184b28d68949868c873351338fa184c277124c37dc673e4d4928e739396d6ecc923d13124aaae47f84b2b59e4eb249a76f12648462fea493ac1f1d21ab5384621eb3ce341f536a75885038d9e3f6cb4dd0e9930ca1e8229e4c8f658450d8f81cafa644eb0e7a100af7d9a72703a1e4337a83c6b4f94aff41499cd023beb56c536c1f14f52fd64749a3833cf5a018abc49a8d5b1a6f330f4a6ee2bc57be5f95d20e0a1f7e4695342235e934860e0a969dc4d833ca636a7351d2a984955c5952df99b828faa90de6794564c5788b929824a93a26f3b4b3dba224bc44cf7f33e14fb016255ff3f0214dbb4776b42829d14ad2cd93d3afb559946f64677b79cc24b5c2d1852c8a79a489a735f95894b47694969093ab4e038bf2664ef2baeb57144efa9c397cd584c7ac2b4a4a5c4e269d4d3f3c435db4a22474b4d79587ac89cf8ab2c9abe3ff1ba3858856518cebcd93a4912afa5b55944ccc21ed4fd021f744535112c49376769363c79ea828f59ccc1beb3945c977cb4ad4c9e92863d28529b68b52147564ebd6e690a2248474d5d6f7243adba328d5660a7d9de779e98aa2549937cbca0f4551844972b889cf709b048a7288c956d2599f9c493e511a534acc9b641243c4f744499d12c3680c971375d489920ef3dbd693c4d3664e9493cc96dbc9a651f3db44b93e9d1eedc1aed264236c5d68a22ceafb647a686c0a93e9f13bb68b4c94b464939420330774818952082146e33fb506395da25c7e21b23d86f0b68c258a5143b6eb8f52a7315e89b2e8ce61cdbddcdd1c3d44fc045d50a234e3a3b2624b5e37f94994649889d94eb6c81c1f499442d98a12738b5709259128ffda88d3ae91045d40a294a93f99dc63219489794441bf55495af46a6c7744514709425846cfe52637a29c64fcf214a14749b375c18836844926725f9d498c2d4293f138c1738330693ba10b45780de7d145221c11dec5218a7e6fbded63ba1e5d18c2bb280421aec60aba18840a2211a3d3048df7a7520b8401c2d05027afa55ad930e8e20f5df8c1c1e8a20f5df0a1b08b3d94a48fcd8c93cd440fa311b60e74a107cb431778683d55d3455d66ed4243eb26747107efc20ea5be760f9b21f64439e9a20ec51883deb6c9695c6bd3051d8a713a9c5232439afce30c12ef11868e1e617000025dcca13caeef35377273f6ba0b391454a3773e1d3df6ebed220ecc09f941d3ad0e87b209d7f147356ed3856f28e65ced52fd5d15ba704369ec36974ea7fce4926c43314cbc8ac879f324b3f33a4050a3c619ba604349d2293a577a90af11410f736302356ae0f81e3dcc8d94b6842ed65012376aef96bce94ff0d550bc953b25ea2871f3e9a4a1245e9b4fdc74d050901936466363880f9d3314be73903e1e4a90ff9e148533aa50ce8cf719734e4a848536728c40c4c0984185f268d5b87b8c398899bc83195328c95b6532ccc931966d0f6648a15c4abc124a9b3c23a38d4261dc358dae0d32b427a150b21ef3fc549fe07eb5cc6b6adc9a64e24ed44d2749e984627fd0fafca5cc47d73d72dc00418d1aed83194d285df8871021931c2e4f98508e367257d5d387f997504a8d41c3c61d95b05aaa77b796ba5da5c5a9952d134fe89a5c124ab22e2794acd58c7906124a27d37c9c4d92123bbf472888ad9531b16b2394f704256793ea5304ae46eee245ba882657f5d12723423146743dc562bbd59b318492ce7195b12413004c6186100a2623debaef94349b8fb0c1c0064209789f796e6046104a928eb9f93dde099ddb194028c7a6d399f103cf4243b46ad673333b6ed5dd64cfeffca4193e289912fac5f485c61c3c337a50facefeebe9b53c4b260233785092511161df23e39cccd84131df5455bc7a12b3e85dc70c1d943c89413f49d2936892702e4aa74d7fd4a65ee65c7151d48e416bd2614b4a756f515282d08fd910edf183d20520b6289b88879326bf688e0db600a41625d9a3762a83ccaacc8d1c39921b20b42889397b99686e6ae97a45f0c90c8c06ea7ad8c061034718229fccc0807106c68331029059947784e92426b6f131caa218cd4f0c7acf8499f07600128b724e3ad6aee127978a20b02897b83e2795cec998cf8e1c223876bc05d8767c6f00e415c5923f7ad6d292e4f0ae2bca49eafd18c49c27b9592b0a2afb24318fd8b45562e925f03a6610025694fbcf434c0e239f4f7815652bb3ded7a8aaa2f0a1632755a54a059fe9daba9a6b15df329ac74cb38b124ce40ed8b8a103043b7af070541447b4b968f0d0a5323f4559c34ecb4aa3892b31453926e172e4a88ea5f5032945295744363b95a03eb720a428e8d456f1a184c9399c4651ca3b318c549b477a980ed4a831d2034414e551a3c4663a99df4361dcf81d3ab84142512cb93a33df87477a980ee4480fa32367d0e3120414e53b95e7e29e356f8346d80ae41305f33c6b32a6d1f0b18a00e2896256359d1d57d3cb34111d060cae0048278a259e4c85d411a13c9d410fb419ece8e644a93755092e1e33c26643a4078f307688f0b0d1c6e3868d1e6130006413a5f14a1bb9a573334c4d14562c54275572b2c703c944c226d1315d568889f29bb90695d94bea4d5fa2d4f974e7ce2b9f250aafe1e3334f7c937eae4449b547a9171593d407295158317d42acd7497f7112e512a49ed5a94f29a693444194f61844663cb5a22412454f9294197bf483501d240afa21436c47ff8fa5813cc2b41a1d11d3d86bb7b2cdf8931d51543f9b31f183ec924f230aabe154cf46ce845b4118510a1532496d3a8e169d046411a5ec2489e7772aa2c304441125a92e329f732666978928c7e909ba494789b61b1044147e744b92be737c3f047288ee2b3caf54afae2bebd5d3e924ec9f7ffaeb400c510cf1e959ee838cd92e16311e380029c4a2bbe3dd26dfa9dfa2551db4da68dbe0a90aecf818e4c800214a9212f4c6af890bd5fc200a9fa4574ddae41b8d6ede8e4fc00863033d70d8c8d1813513011144d9c4f0d8ebf18492043f10053926e636d36df04cb30a2080289c6527594f50ba1540fe50d44c6d1f94984e3899a40b207e286a30ab124bfb7d2828594deedcb184563b5900f1a1985f92d0b9bb4bc929b387923c0bb95db3d9b934103d94c4cf5956335a903c14e35c88c9a3379456190f05f3b41d62cfba43b9474e691f256abe8d1d8a2e5a324bc72ccffba943c1939b7ffca0d4c8b0d2a1248d95f06ba1d2336be650de14e2cc3e9a243d58207228de6c6face3cad26dae33a589f7baa3557a90381437d4e4a751d2e4936610389442dee610a69957a3bea168f995b9e27f3ef3cb030cb3c374a00d206e28fd884d9a24ebe8db413280b4a178a5834cee962765ba40d850ae8f3f7922c365206b288f7c28a984f9d6ff11440d25cd27d4fe26f5bcd9948692ea28154ad06c53b20c8286721026e39608a573c91cc8190a4a745cba069dbcee023143e2ae2edea165bbeab95ab63b4249ab22ea072943495f77fde548d99e8b0c652f93d1aee1b92fce09808ca170a2a42e49f0bb7ef5c5501032358be90cf2e454184a2a773da692ab7cae0486939827ad4bb7f60547efe465cbaa72336b4cde3341975d5b891bf6c2ea6161f99da9f78174a1e4253a7c64a6d3e33a176cb7bdd1cb94757b1559ed7c9e7964b6156da1184c90ab29260ca285b2af280f72da3a76af205928a5abe9acd13f16ca22f264523a0a728592c936496e95a4f464122b1434a9311dff7b7b6de50142408110e8c061812a1474ce3431bd9a5469c266542809152eba79262625896d01640ac530c2634e7a4ec34b764b00914229e3fec3b5d2f4c9bf1240a2505282f81fed7451a74e248040a1186d73cc61949c292d03f284a2a76e11cb133ec9da8038a11cd47aabea099b500e32eebfcbbc680e4a409850d225333429e15d45949650182de2a94e7af44f21102514738ed30fc2ff7664948492655c6d6f284932410382046663dd2bddd6d4cc4eb663ceb14cce49cef64b0072848249e29a45558a8c3519a118be3d68993d49c6db8014a16482504228498f1e4f8210a19c5dbbb4e9ecb00e9e0c800ca1fcf1cc3bcd8485504c6a439edcd19326950942d9ef74449fa6204028ed2831f9d56cecbc06f941f9041966439f8e6fa2e703365b675e35b542e8d8534fe24992493e480f0aca55dcdc333704101e94449b24face5ca5a70cb283829de4a1c44c916dea83e8a0244e8ced123a37ad937251f8181b83f81d8f6e827051d820cd7f35ae89a7ec16c58c517657be662fb64531eb5c951aab162549fed954920cedde31b428e89d184faa86c624368bf28aecb3d3499350aacae2906bafdbad0acdbb9d0db71dd3219f4b4963515a2de9b2d164c5430916c5743adfdea77b36e815557dabb9c65c89ee7a7a096a61b1b665190cc8704531aaf8dfcdacd6e5f93cccdff80f4841462b0af6254dac9a932727352b4a99cd425e4488b48ed52a4ab3e6a9ec4c4ad791aba224f8088ff1b7e2dbd25414e40961d69a37a3a90c1565d7387a73c79129f4748aa2e713f6ef636f8aecaaeac2b4eb3de632f1ccf95829ca7e29224b8f86a8cf0e6490a2284a4c299be4e4929d1a4531e7e477d07aff96a128ca26e73c49a2e76ddd86c24bab6a5bcfd16e9bf52b1914c5a05d53bb9d1aa542af434464032710a921e313e52487659a2933f7e0df48ea89d28d492b499ccfb7758e1b5801199d287c8d3ee125a7562537c2c63932c009edcdecbbe352c7aee3c3dcc4b0316e5f7c9123033a726ca0468d2f72dcc01d3d74c8d844d944d3c454264490a189e28f521375be3f0f33d20116b119c8c8443169d1acf1f39a30df08030c0c41060e50a3060f1bc98eef408d1abd811388ec90818962e8ecf6ff769728c9f227c8d57dcd26b14479646685fcd849cc18199528c892e48bff341da73d32285192f62673fc66cc9dda49144e9924b5a7376548a2e4ddd76153bb5b6ddd4c901189824e2df92f4c4c2cdd466440a2dc656a4ad292e9b22112643ca2f43b264a54ac11b6340fc87044e19330eb9e838c982c1981805f230adaa5b332dd3ddb6344f65e9d6b6da3b57a2d9a6a7372d0fce9369b27870d198b2855be97d879f2c6245a4594d24e90dfe5397554271125d191e1c4fa0e224a17ee9725db320e51320fff31a9a56e4c258628dc8651dbfb9ec478ea4214b63e3dfce9c6f9f310a29ce24a3aad3eb1735f83e8b52b2d6f3e366beeadb774f8b6b9d3254194eb93bc2839e71c77563f414620ca596d948cf67c9b691c0a320051526315ff32fea966321d1039828c3f14bd478dd6503f9a4748861ff6eef0dc2a6db76e752bdda821b74a55be23818c3e9437add4ac89e90a291b0f1b60241f4a759936f9faf502197b2897f0ec497bc89c16f55a0364e8a1d4a3f4839294ac75ea9387e209fbd3ade9e48ccce0a138f32147688dc9c42426e30e052bf1bcf21c966187620e27c3683393afbfeb5072d1f1654c9eadba910e65f51b1f21647e0e252b3523a3741027fa9443714cdad7b4cc49a98871287d8cc93488923a729264c0a124ebbb26f94bc575f46f30ae6cd5b6f6d33bf345d3bfabd6cb3e9f921b8aa6f324f96fefba7c23a30de53d0d9b4735cdaa7fd85018e5395ac9708faf256b288c95d41294507fa6b30c35945aee63094a9db2db56461a4a224fc3c4cfa7838ef51d908186e2c89820a329cf12649ca17832cb42f455c992a90743c70c4270662886f23033b184a6c648cb50f85293557d429768d6166490a1f8622585da985565d511361dd663478e0ef040c618ca162ab3bc3699368208c81043418965191b7fe5d59d0884a15ce2864d1e9432131d0cc56026da3cc91d1ffea5c1a0468d3418609a19647ca160772a4bc9b50db1598617ca5a37fa83f629412959195d28c95ec2ac895da7e40fe24259a467eaec31cbd842592fcd4ca8abf54a11dd781b13a85183c7cea0c7714186160a32fc3e73bd34b9ee356ad4a831831e33e87160909185e268099b24394967ff1f160a2735b4f6e8b74d1f947185929cc41042286dddb9ad0c2b14edf4d49a1c5b1955288b0ee2f399f8361c6450a1e0bedb1f94207e7d94644ca1d2bd9e04d9bdcb4186144a2f63ad62fa594a8ef3303bc88842f90417f70faa3574ec40a17867b7b1e9dd4adf2ce3098573f73ea9cd7c4799c8704231e6eab3aa1f08329a504eca725d3593c5ef8709c5a0bd2be2f345831af190b18482921d84e64ea1394b4786128a9d4ce98ac653cfe34942c94c4cbeb1d5d489679050ba522675a309dbd0ef114a9d6497c64ff577f26a84f2bb9e744a89915184721a532add2d964184be5edbde4c5fe72b6b4b9a76f9f1904f2f20630865336527c995397805194228b7ab6f967af634c2fa828c20943a9a361d267b92494dde05194028ddc73c278e6eeacd26ab828c1f94849213657b4b76c9950a327c5012356ad26c7756bb57460f4af17aa7bdd48e5ab53c28f86e8b988faa8c1d1434cee7939c73628ea50c1d94d244fbd7ce36da643d17658f7b9bbe394f48d970513095233399b4a945d55b14dcfa325e89134578698b366e5753c5c6e4f49c681e64b528d9499bcfb3c9f59ab3277cd0a26c6da2a953a5b3091396c0c72c4aa56d84d829f17d274a87a7da3f1625b93f09db4936b65c038ba2bd8f98ac125fd2f75778629d29db157226891fb724afd46ce2fce18a72ff286962a3f9e43ce1b02122b2197800043890010aec083e5aa1893b7a74d5043f585118b5af73d2e9aa5afdb10aabf11109cfea713ffb89427450500baf2f59f3b53722402e4ae225c968527bf3d7848b72fffb8832b31247e9b72889ed9c94ac93ca347cb628c78d971353fb2b67998000b528671fb5f16bbcd48a102d0ae2d34b57767416452d41b7ed7f1693e623802c8e1113371bd16bb939ad713e449c1803048845490c2e32946f1273fcb028b99d3237a5e23645af289b944fdab4e98ac26e12b3bf8792eac45b51f2f039669ca004a1745694de64f35362f824897a15a55cb53ed1f5f4b9ad8aa249f5c137a671f9702a4a25afdcacf6c61b2d2a0a429a4931cae50471d329ca31b7a1a7555314b7839924cb7b893da65214a48f8e4eea3d0825984851defcb24109e29424621a4541c4abbc89dc9c2989a2988367d7989442511e0fb7f8581ff30f8ae2cb997a3fa9f3e6ff897297d890e1214f946c77fef2369d2898f62c5d4f329820e744b94d103af788375192dfbd418feffdbf9a2869be8a31b57e264a19e2a4c84dd19acfc74461b3e37532c9ad47f9972879facc6878d6249c6f89e285aab7e61c3e3a7e254aea33869928258aebf627db6b48556f12c564f3264e12e48f792f8972d2a543e93c632db28f4449767ed7d46abf920489f2097642549b46dda44714a3dfca8bbdc97fef88a2a75f8e9a9cdb3c6a44c9e65fc3294bfd0e31a2544a8f08539b49fdc9228ae1443b3f29e2b74d1451ce31bcddee648ba713514c33dd5b5286b98e1151783bb9e4e41c2f2f3e44b1527b84e9cb38730d51fe4a5bcfbaff4950218a3e269b6d9b8428be9f46cf299ec14a348872924e376b888228959808cd1e7bd47d2810251b317a9f644dbd0d01a278ad5ea14aee7635f48782e5a98f2542d3950af9a1185d54e8769d8634f5a124c7d14958f9f0a17056da22b4798adbeca19c5a4286d179a234a387b26b996b0e62bedb3c14cd4ce9aab4f150acaf0eb775a3d5ea3b94ddff349b3aed50564b1b932a74bc18eb5034d7f6189b83d6e4d1a1182a4c093ac6ce1c4a26f89b7dd2e450de9e711dd31b54af138762fb5528f14936af121c0a6a21fdacb63794c33aa36886dd5012ab2acac26f4e67db50dca02f43cb08a1e4940dc51a99c34f3c112ad33514fe04d5c94ba9869296730fd325c57498a4a1946171628666f4cd256828e94f3a875dffccd89233944ad8cb7cdf5782ca1233945abe737ffe32946f3fc9f2a54e5c8cc850ce279dac51a36bd0a13114e5e4dec7f20efa3962286b879d7426270ca51264924c924b4eba39602808a5245329a37d4fc9174af22efe2607cf211b2f20f6e1cb04b50bc5d02db2e49be449e95c28c6fbdc5a1a5dd7ee2d14734ccd689668a134a2e52c9453869d5c79f3162f164ade9db624b942f9bf3f67ba3d13e35628f5d986933eba7e5c85824e259e2ee9c4b5950a2535994787f0bc21e6140a26e833c94668a450584feaf794168552eb9b4ccf263ce6090ac5d3adcca52794363e88970f625a7f2794543b4efa38d518fe2614be36587512d3831031a1dc9d835a56668cdaf4312825091f645a0905737535cb24650ce22494e3c7861531128a615aeaded4b87a7c8472fe657c959df9768d50d834c1743425f5fb221443dec8d8274dc9982442615c4dcf84d210caf2494731a57221944674d6f94b933e5e1e8452688cf14e4cebb92b0742494caf4a2ef941497558d16abb31bcf741317acce1314b9ccff4a0e03ee3f5217fd4ce83e259c6ba5a494a0e263b28e6af534f9621800e0a32b4f493c99e4bf35c947f436527fb51b6352e4a4a9b9e13db74fdc95b94c3c9a477dde959a52d4a277bf42cea3fef8ab5287795697fd9d8bf212d0ae3661af7aaaac7eb59946bbc65efb3a43d59cba224499e35c60e713955c7a2683a9bb06bd2fde4122c0a1a9e23aaa14e76e915a5ac2c21b4f66c0e7a5714464d6d4efeb2e2a41545135abc448f462d1356944d93b0eda293742f5945e9327f32fd319e688c2a8a76f762b27fde6f261585bd4c32e7c86def1d15052133d7ab09f3d8f8290a7782dc948fab15b529caffe1ee25ce8c0c7529cae6f2a3c64569ed34298af9e41693949efcbb8ea270e397deb183884c8aa2a474d030a9761d6332140561e29af0d110ba23284a929a58cd9f84b4193f51b49d0f9ed4287bd379a294a5839f9cd4edb8c69d287f55afc67f50b71973a2248e12349d5d499f32de44318549bd26a7cf8e9126ca6da333563668bc2713c57c51ea41a68d551e4c94dcff4c9fba293129b9443107536f428a7c27134b143fdeadf6daa813934aa86ea755bc632851d8a4e379382dea653389e26ad8e736397eaa9144c9f4c58ae8281265f9eca5654f6f4e624814935e0d93ad9b6bf1238aa1637aee9a4577d611a58c774a94124e87721b5114316282b8463555195114511efe42b98b2877260fb52526a799ab8852ac67ceaa3211055992fce7c96971424414f64a4f1aada337c6f61085117a5f94c69855b63544c1368b096fb2d6fbb58528273541492757799d9e108513a3a7b4e693cee40751de184d9652d25d8f90204ac2587cc7ee70a6418128c9b61e4094b3e98a797d1ff1fd0f253d61ccd389fdd3b81f0a67ed6a26d987927ccf9c44117367351f8a3bd243afc476c9790f259d749a8f91a7d4ab7a285cc9cecc1debf79379289d301b637e6a99c443f1bb4793bb6fd239bc4349b39324c9a6523b944fd67093bc737528ceca8d8af797247428c6248ae85baf0931cda1ac6f5672dff3499e1c4a953147950d277671285698a85766dc58193894f34ef4d2619449f70d658fdb1ae2eda3e6dc0de5e4274b923ea7cf14b7a19cbce5bfa4fa126fb2a1f4fd1dba35992611d750b8b80e267ea51a4a1a73369e4969284982d0c1f44d682899aa8709d23e77f0cf5032b19336797b870e99a1dc9e831ef9b9a49e4e19ca69a961e74fc850f8d417ea24c13194ba6347b7993fd1e42886c2e67a34a56338153986a124a3466e081b0cc5d0f963214aa588fd0be5bc13eb0f997d6e7aa11cb4fefd27a5e939d78582189fd31e94ac108f0ba5d0134df6397d16db160afa4fa4ef287d7e2ad442c134df944937fad9c22c947a3509a9268a955cc242c17b34089deb54c2bf4241a8a6d1bfa5f4c4de0a85f57bd39bffd4f8a94239e3de9d9ce6a850fef068828cca6713df14ca264acef1442a8592f4f6baba9ba4d8340ae5b693b99498f46d9c50289cca9cdceed3d6964f287dee1d2127899d8ee784b2cd49ad1bab6a515d134a25960e5a64aa5f2731a198b9e5249d515fbdb4848212947872da4e922679259452637d9dc8ea4e7d12ca274b8ebe2795768c9050523ac6b0ec9c23144f0e1ac36feee737314249cc2add587b11ca393ccefe7573de30110a4afd68bb37cf2434845278c7e4ffe5f9c342289975382f590d4241e6e499a52510cae649a4da6ad2f90f8a1f5af3d55992f0fba070b59f94922e94487b509239c9f2a274ee8607c5f71cbaccdb41d93df66bc7cd06a083922c61d6afdf4d8bca725132c9d24306994ece3f2ecaa243c993d49cdcf66f51923c344f3de89ce3dba2dc9b5984bcda8a06d5a23456a9f9f9c564896851d030d32743c95e299945514b75e8a95bf74d228b92acad9a234d62519a13b1717344f6c6b0280957f2979449d774f415c5398dbaa2a04c089dc1932635c156143d89dd984a4da60db2c2fe522ff99d55944f167b93d1c36c5015c55833e5313e8ba82e15e5f8773ada9c294f5bcd4045f15c83be8f6eed31ab19a728df750c4ada9d77656b8af229b13f7acc6ff97c2a4569c7745aef7bb1aa8fc70c5214dc4cf691266918994f3346513669da25aa5e3198218a82691ef560b722349c118ab289d3b14a6cb13961df0f6680a268297ed7fa49de184e667ca29c3d856e3d411c61c3b3b1a3477aa2207498184cd01c4b9a9cad13e5d8d095494ef24aecc5831305f93741932488cb937436510c934d3e53a54744e8ea3451deb0a6498e9e839269cc44394ecd4ddaca5127c644395dec04f3f8250a9ab49e06bd5e9a775aa270e59fc5a46dba12a510a34ef8fa4e8992f2ce9a7f53e475929f44c143ac3b9b3c51846b246146f14db61a4d496f470f1d1889aa665e36c46b45e52e4894e6846f5d8e6a0708010574806181194080070fd38110d4a83183a4460d2ccc7844b15dd46e7f12d94849c42c30810980c1c3c4a0468d6b91ba198e28588939a7d22a3905c636a2783f3a26614f2aa533a29845ad77e820ea234e5d44c13c764cf5a434c2a688b2cf494ab9952463e41598918882927593663377d19f9e818872c6c699b6491aae171fa26cc2c4bdf273b3b72f30c310e5ee6db110ba327ebc11b6d52b443974ee89dd9c72af35236cc5840023470e912f7688880860c6204a195f36d5068c1c39b00033048170d888018e3064cc0804f62697346b22c33c6ebcc88e1c223a0c18663a0310dc7e68e9cd6ce86f94b5f6986f829a8759ef0146b2c08c3f9436ac6dc5e4394d2679e3860d0cd4a8e187e2e69cb3afc9eec65b236cdd8752ca8995b6a5b7971d1f0ab2b5e4a6b67b28af88ba8ed94926497b46d812d10c3d9443aefa4bc81299f43c94e2c4f375b3cf085b5a0766e0a1fca9dde4ddef50d2909f3f67ff4c9639c265861d0a32c4889e53aa3e8a560333ea502a5927bafce7f0419fd23830830ea5d1b0f4d2335f9139732869891ad4368dba2895871c8a4147cf96d32d27e7340ea5ee2494e94dfa4ba50e87b295d8f9af625367a8fa0d65ff4ccdb11eb246db10cc7043396646d7533acc6778b60d25a1ee04fb718df127cc8692d895f5493669f4fda73c4470ec38bb1c364474f0d03514c3961c747d4c254dd8cc504349e8899d255aeb84e7236c2681196928ae29ad2585924d166d6ee00422229881867266329decc435f3708fb0758731810f1c60c61996f10ebd58b96eadb8b8936ef5b4698652ec7dcc335b194a4a304f2fbed6a2b121436935fee9b0a64fe3690cc5fc4ff7cd9339d4353194630a8f3b39635b77ccebc87178e04f6046184a2764bec4ac8ee1810e8b98e181ce6b0e6680a124d54a283de9fd7cc32f9494184564e54d56c7e977e86086171a35a93bb7e113b1e72e14476d14b997fb6fbb99c185629f5e7bfba05f92e016ca7392b49ad73267eeb45092f9c4aa3e49a73d21cec8424996691f15c2af659460a1fcf9293273b79ac8f4158a65e2daa7efc820536b8552273959e7512aad247628fde9fe1c9492a4aa0e8531694c99876b77e0051d4a92e913ed9e8328517b2fe65012429e180bdfbc9083d5b0821771288b8f8992dbbcc7eff6020e259943c59a7ecd1b0a9799a4d7f9f0905bcb0da5314b17fd9974da30b7a1601ed2f3abba6c28082d32e6f0727bb186a2fb89417618993ac368042fd450f0a8a199428a10baff088b1c1e2004193840186e54f0220de5d37992c9247c689be5051acad156fb3ab99f7a92f3e20ce55c99cfd15c6d6b847ae08519921afe54866411d9d730a1ae6d32bc6fa154ecf8f83c0673fe6ad87ba71e1314435fa7a39f7bf72994583ae6b7368051f0220c05217b592f1a5b92f4320f2fc050ba1921b5e237c63f6e030c1b19d02f944a6827a5d4e992749045ec7478e18552de8f50922446fb8e0b045e74a1dad3cbcf1c73cfdd52bbeff61da5432fb8504a198db69d3165fd2d144b97e9d0f296d7132d1483a60fbffe18942493b25052aaae43dd9db050d2f933ab7511ae73ba42c963ff4b504f79267a2b14937dceb13b8aaa50fa3351b3f94a8cce50a1248a67141926462e9f4259cb33bc6fbcd25b1f2994a36b6b697b95d3e2894249bf656c19ed934c09144aebb13769e7caa0f7138ac984adf592edabc7c40925418c0951329634a1dc49a68fe2415da86f9850ba8daf92a4d0124aeae96b27db9edcc728a12473ff870c233cc8dc24a1243eaf7bda6e2621344828a9ce345566275a938e50eed778b7f724e6a43742a9b23cc6f42473865011ca1d742a2dad39cd9d10a194795b9f4c8653a2ee43d0e43df1c43b5d08e5b89f64ef645226c81e84d2e567d7d6f86b888050dc984d3d6fd25efca0ac29ab846ced709e692f7c50340bf5f72527c4f4f6a207255dff9fb7e7aa436e2f7850ae30b74ad7ac1f667bb183d2dea911256e2a41feec850e4af1fea746e6240655c2b928c755cf1f4fde4634c645316e09ef624a3efa696f515a4d7a5b94a4f9bc273dd9eae6d4a2243b27294cdee61c6e5a9484eb934d933c73c9b328c66c7b5d65363de1caa2a474e687519d93846f63510c42be5d063d1e46048bc27710970b79ff1a7a45a9248f5d7b4df5b0bba2a0ff3227dcc464a56c45f13764c7b8d269275456144d307d52a94f5751527b3ac9dbb8266a99aad0f47a8f3452513cabb5afae3d8d4148031525f1c40cfb3736324748e314653149f7a6d311691ea4618ad2a8e72fa1db3e4e12a4518ac28696797808efac230d5224b3ebc375b87114e5681a4651144b5dc95d668ebe490c4579f4ace9d17e23360f8a92ead5743a8d8ce9449f28c924656b9231e789b2b58890cf1ad584fc3a510c3dda457b473bc98e13baa74c1d73933651baad8da63c9924364813e5d329ebe773cbe42713a552add5e7a704dd4930513cf9dea4cbf0aab3da25ca75a629b3a72ee97f4b9444a911b2d2f6ac429528cb9ab64e6a74489b12c564a3848eff99446974d20c5a194914374f5c533ac930222f1a9128f7aacbe6ce75933fcd24d080444912f7319c8e86933cc923ca55796289c1ede4a9d317341c7135aa11a51a99fbb427d5166830a2204a1e93d35f04d3504449cc2daa93986d3bc7068f449453fa270f611fda411e614344313dbdf75cbf9a8c3fc2b6a30b8d43144bb6e988d9128e1c3b121ba21ce3a7de16f9c9438ce64615a21842546992a5694ab27e878e234431ba8f0e621b4461bde2bc948acc25fd11363309d0104441947e9cec1de7e6326816a011885b4094d427793fd327391e8e7f40654e5292684a9e95861f8a51b3e4cc224ad33c6c7d28e9113a643e493c49561a7cc064bcd4bac22c375c4556c637477375f7461a7b287d868d060f42bf42090d3d94731015eee279733747230f25d1ff3b9e7c542769d1c043f1ac5dc74cd633f4d323d918e1e13c74e410291a772849990bada22b0e73a3038f726ca091861dca174a649d9a2456ca3a7234ea50cc19744fc8ee34e8d0d9589ba6e996763ef3b2eb13ca4b68cca19cee426ea8658b9d0b83ff408d1a30f81d722858ec8927bffdd9de35f3a51187e2861b13faf574bcb530021dc8c00126f08103a83182061c54330d7d17fbdabdefba8ca6a67a0383c61b4a27e85119b3269335f934dc507c39259f2a74c040a30d25e94ceca5ec9e985cc631011ca9460d36147fc3b6d5d9c72cb9610ed750d21c4d49325ac820fb4bc341430d25eb4e3a449874e1eb3d8d34943c650c9ac19324eb94f030375a40030da58ef7e2e13464d56d236c3a72e8c084c6194a727a8f35423cd7894932cfc3c06998a124329776934df69c3ac038887670800734ca50deac1fbd359cd6fc0bfece8f800c34c850d43b71faa16173fe788ca1704ae96c921293e4080d3114a49e8ea3276e7ad81029cb41230c0593264fee927592f4536dd00043c94ca86849bd35c97bdc41e30b4531e95c544d8a493f8db089a8f5a0e18582f43cd3f17483cce11c20d8408d1a69f63792c4060e1a5d289cb0ae1a45a69149691209e48006178aae27c96dcd494951ca2d9494dc27f7c6db94896a0c8a40430be5b311a74a7e65d05fd1c842a94379c91ba6a2c48cc14231dd8adea4495add7aae706d5bbe5d8edd9edbcbad0942468fab2f512b943a09ddd1e695a574b20734aa500ed573bf9327759c2c15ca961e4ba99f37559fa73185f2091e3ff3be34a450ccc94a26195488dc0645a19c9a4f52b2d5c6a4d50485a26552d599c424dbeee60965cd2c7f255f95da68e284d24455663bdf43ae8678b58635b3ba09a53375df7239c9c5249b408309a550ca8378e8cf9d4dd1584241bedd37844cdaffc4a9404309c58ce1a935ad44fb92f91b3a6824a1d47eaa2bf4b5e8fc181a482896889bacdb8da693f019681ca19cfcdc2c93244af9fc348c50def598dc4b1669c2e479d028424936cc7892a4bd6b352142316dceff677c87508e1b547e5eb327f3242194941421d4c9b10d82a91d5bf39a312668d221daf1ebe3230d20143fa8cc67828f6bc9fb83d62acbdae6ec342c467facd3f9ff9852f2c407e51b3f594af491a34528529723e1b080570468f4a09cca44338af0dd17190d1ef05d99f6e6ed299b6d65aa6b3d7c4ca2b183b227613465e9120ee4350d1d143495fa2b6d2a4308a55c14ce46c5ac6a21b82808f328df4188cf362621b728c97313fafc945062a33b72a42dcab9fa436a8c10aa9da945e14ccf47d4e829a9b1105a9463b8f593d4c8c7b4b959aca1324879c7f7c0f1b22889ebdf5b1396491243b128b989faa057dfa4f21885c0a2ec799a76b455e6cef95794674dee0f256726e9ba931057e8abb6dfa91ad38a72fddc283731ed7c0e3221ac2809b27c94ecf19430aaaa48c82a0a5f339e23377ee65c15c51c66628e75bf37261584a4a25c9acd4acf7efeda6d840d157755be7c7aacdd8e56bb98e49f31077527afbd849053944d9ad8ea27275f7634c414250f63a7cc57ebf7e5ff02478d1ae5839052143d93d2f5d3f324ad2645c17a7cd36b70c78fc4c0ac0e21a34049723527b9524f2a0ad67275cdd49a548b478e1b87ed0821a128c6f598a73819da9438280ae3f39e97231abd63219f285b463d4bc6b2d63ecbfd84b87dc7ddb3dc06219e286693e6573493219d284835d950828794933a9c28b9a66b0d66b24db837726e5da3a7f16a715bea946992104d1483e7ec2da34406f97626ca3fff77d285a8dd4631511e65e28ba9922f51924fa26f8229c412857a6dbdb5c77879feee1e2b0c219528be5b8fa649722851dc8eba5f32883493ce4994e654cea84f7ad3b29744e17ddceae2d54894ba2d3e6576a76fa8422051d2eeba3fa298b3e9afcaf99c5c734449ab3e492669bd3cab9b10d288e299dc5e284d33622df1ac373bb41ddfc302218b28c63a4f5977f939c62c8ebf615781104594e4199d41e7248605218928e89341ee9c8af8b074840d8cef61436406384c0c1e87c88e1c2286688830e3c372d4cc63ceda4a4bfcf8d0d154bd97c932e410e50d3b3f32578409733e00ad870c1e231062082e76c4333c36de453c7d64b42451a7496985286789ba3907cde6a19f104214d49b0e23de35a95e6d100559b2e7ac4cab204a1d3296248f1a0351fa6bd32c61bc940e7f82200410c5d2339d666fce3cc4903f1453b4d8e8381d53cf18e287721295296f4aafcd9f37cc08ce11217d280917d2d6d488eb56e4ec0021a0802d42f850ce76f7fdec970e1d61eca17c32b4464d9189dcbd8e198480c786e8a1a47af26b44e479286b9810a12b2f1e8ad9d326d3719b3f8967c81dca1bdf3e7b922471f59e1dcaba153ac834492ad1b5113618b8a0b712217528e8ff349ad2623a14cd6434a54acc8fc964236c30708148da08307087089943b96f4bf6176dcba1e4266407d12a8fb0fd17e83547481c0aa7b93c85cc262859331c0e2a1e368a90e7ef303a44bec061c305c7ece861e782903714d363124b75cafe18456e28e5c9f4fc312793f5da8e4d216d287514a54dfa2a495ccfb2a1a47e823649eb365eae236c3dd2df10b961be070f1117dc082351f335144cc9beaba1bc27491f9367f73417a5a1243af69a0ebea9f389a2a1989f378bfcfbd4df31e40c2553a5d9fbb74b468f8598a11c63882f3f53b156eb42ca500c1933fd8c34f1b7ce854208198a9e0415bbeeb7650ae3056f268c1794903114dd653e43fce665163fe062282639f1916e739de6e4111286c2cad77ba66569ad7e47a951c3ec781b216028bfcfbadcfbfda698f4170a7325b5c91f6aff45471a8478a1a8f93594ec724a0a4dda1b8474a134f7ed2763ac936c7a032710414108178a5d8206a126d33fe6bcf120640b05dbf4fd1beff335ad5983102d94631e2faf4d23937d501642b05032e9d5a3b375c8158ae6e7e9bf9434b9531c6285921c846a19bda3c466b70a25d9cacabe47a72937a950ba8ebfabbd2542786a0aa5ecadcdd47825ff36522885f498ba43a308199a28943ddd9924277d0f4aca502875ccbefdeb4d1d0e7942317f94f9f3ce7142b993071d64101d73993ca409a55c4d25fcc20d6142f13ec6c9277eb6c7a4d302214b28992925bf4d9568a5a44a28cd797fb6862619429684826ee61874967b31990a4142613f9e0aa1ce3fcc9f214728888ea5e49bd02964d2e3b0918091e39cad09428c500c7ef253eee6902264166fb2dd1a2a5ba297a5df4296249aa50f2142496e92b126de26b712f3214370cf832a4f8810ca5ed5a5c3dbfe222408a8a7ac89ddad587beec6d6f8f496a6bf1dffc517396eec8e1e3a428050d2416793c4934528d14d46d83607213f28b5788a6b9a6c625c03822f70d8d8d1834718213e40c4978a49f6e018217f5af27d1f8e101e205c43c97095cd79a3236407a76c55bbb6a7ea97048deea814cda5e201a24024100a83c15038104add6d00c31308001840208ac542a1683817f73d1400035d38243a3a2a1a1c1c0e16160b0502713814068381813010080884828130201c0ec3a54ab5078a535763c058dc6fbe7bf5c30e3345584274d710a6704ba399f768212ec8011c31c30e39ad04f3e886cf71a17f5f09830dad37d0bc670e41aadbfb2a68fd99afcd96680143af204925cd6da02714a6e20ecc8af98f8490d0940b1838f4e73d7556d7d323025a6d9181f7cd5d75c2942b78ae0df3217306fa36f83356a1bc154bdf71511067186cfdc08a638403fe627e4f70812124da7890fa02d4c57db4585c2e8b261904a63c21fba06fff0cef06f0065c5e140115a70c1adefda4588352650f25bdb3abf4ac785e67a19902c8ebf48c649ed680b020499be0a936036fa86324db34ea463154dd4bdafbe8dbd73c96fe17d751c1d47fbdf718228199e390f2971453d0bca87e29d3849512fc688300db74a1b9357d9ed62a8a6ca6b06c3d06012625fd5068cb331a2e99368d5afacc9a1661b2996ae31eb60cdb056ebc39b84a32e75bae645e44b38353cf0e0e4b31828f8078a047340425ecdbcddb38daa24eaa1d5766e5a230d5f9a95b2431d69a139a332842bd74e654482d5a822af93813b7c64b20fa5ebecedbf93b1f735158914978e16dbbeaeb94ef24e6c9314c8332b3e38df3489005794741fc777102349336fa7ef40ee47d9987bc95ef537ee64fc49cb8222fb77798890a52d250badcd2d3c2a0066c38e733fea35c5c12fb828e4f1fd1e38bcd84e4ebd395aa770ef9b0bf254b4e995004b8760841d6060677f6069daa192c07a7d23c12953fb83878d314f348624563a6e819c014cde4a60a3a721c817ad02072f10c49580e58924a157a146800cb2be467b6ba234b5939ae05135db3227cdccc1e7c4c508185584ce8ee6712b35220603672e6c04ef6c6a4c2ad7d46b7c861a5b83b9360daffe926484026e0c6896b9482465a040abedae62323382ebb9c34cbe5dd11d7396519e4487246770ccf52c85cb428da08a71007bae327703d4bdcff3cca48ad97eb8408bdfa20cb0ca5ff5d38fb1bcbef1c42d3fe6d2237db1eb62d4cd15eef0cd7c33f738b9bba7a482a9f8d341b8ef0931de53e2592f35d43bb046f382f0339a9c72cc95ae7888e57f863bd54d000854d01c63c73b5865526d062b722448cae1f1c002dc0e6a2cff831ccbd5303a2a92f270baee99782539354da9d096df40f6e63028af00b3cf02568178bb4a39c38bfa30e80fb95536bbe0460e14ea6eb54e26f00207699070fa55c35871dae6c571613436cd74644f85526a526fccc43bb80625f4c014614a4b31f328819eccdc7d509330fb1b1fda2753c14f3656a2fe513bf8728e04a60ad8422cd032b8229370ad45581d14e37031f633dee485efc9a83b9b6d2d1a6d2e9a82015415415e00dc39ed5f276a0d6633a2450883d89ca0ccd6c679fe2a2c3d04cd04abe3345385fce2907116a35565b68cd4af75ecc5d224f4baa4be551486804a9f7750f9ab94402adc02da8a4249ba9448c5a2b6c4993afb61ccbd3423c8dae0781f40a43b7a60c0723940eae5ca516e1720a242bfea1e7dfa52fbb0a25bed30046b5b6ce86880c3f7984c674ddff1afb4baa338469475d090ed841f9fdac103b334cd8022cde32b109259bc3c1147690fdcc99b3acacae11781180e3b973fcb56c7780acebf31978a32179afe1193e683c308083b9220ce39ebb3ac99e6b843729066b6788b6b0b7c0af5334e4a088f1544b2a1bf3da65e1b69ef0df4567e832ca330b4ac3b1a34602e41028ee9b8f0a06d37bd22bc43d653ce5c6535c58741beb8b9d8e14ef0f02e303bdfdbee750cac469aa1445dee227fd9a67291c95438a8cb1d545e91433a5860c61bf0007b31382ee0a4343809143851496c5d647c1f1733c617d4b0a6823085846780bfab844034d19f814da865e506c60b43d5cae09185d0dd0e42a4cfb0824da156f443c35fc448fad9b5b2d50a83570d2c8e1e415e9b7a704b0fe1e7f0a0751397d61c94090e29b72539cfe83d986860f94bf205ed322fd20dc8b58f5bf7689285d71c85b350c9dc5fba9e92655f20bc4cfc9c1df6ffd63ea02801c71d74c495b2aa45159a84f37e619e8550aa8127bb7d7bacf92624d01dc0e440649ece6608ef5968f90dd772f213c28a9dbd76b4d7c06bd62d0595f2d60b43174eff805b208d5046eddafd434518c6593ed4c40a7962cc0167125c64a274003f3018c14c00aedf5b10680dac52412fbe8b2a2d6b7677b6899a3e8fec986e1557de8d30ef183c024b6bccc47346473c296ba176caeee6a6ac4e69fec648dd404736244e2d1e34ca4ed40eae467a4daa6760365c644d226c2e205a9b3393bc21c5c90e91df81d7df5e3fd8c3bb58218a7a0b487f19cfec2ce1c23b4d16c108bf1fe7d02d4c1de8572e539533406cdd726e29a65b04900a3769f59a8d451000330297b6400b9e3175d7228852b1a7f4a6821e802f951ec46ce107474cc041572c7d40d00c82d7e3aa8c3fbff39b850dc39ffe9fbd53340665442c4410ba1c77a796c04314494051e38a04291491c1f0a06c5ed92411bc25b89ac478e9347a531a4ebf8d066859e108f3c8ece3074d45bc36fc8e9fe7ef3a370f85b388e75c34fb2124a684e69dd4f64da71bdf02b09ef64c3681ff9a100ade4a5a5c781e6c71a8394db2a6e5b6760f22b4430931de3069157435e84d3ae04be35b8c7fa484870d11962ff5d052d4de65f8ff8307223f28097c109e1a0b62210efbe65d872c7603558da82ed69c315e27836fe9782b8f81afde48d688c15edcb7f120a76ad81c6db902530e60059f7fab64e3e6920941e80c80061067bc54fedb58c12efa9e590f8b67265087f1f6d69104d8c9f566bee5a0d52d180bd8dea98fb64e6208a74bb531fd5f6ea77e542a9815ce8b19544ff5c1f4f6024e40cdcd614f164cf1195ea4234034823e872500fdb276a609bf0d7a9ef3fa714179a5879d168aad0fb9d76872bc9b84c64514a7e0365c6342931db8beae6c9c57bdc89964e487b55dc48e78aebff7dcd0e380080b5810594ef8f0d5908294a8427d5f2cf3d6286a11e97ace4967bf7986ea780d6a0925b3699b2da8b8b834e89a6e48e0c254c4e8716896703e9474d16f01dbe220ae3d3025b60a15f29216c5076d0469634a0d90e05f4af15bc0d1bc4a1cebe59b59b2bb2e33ccc1e7b39c304456f34fb40f4319aec418956e833c9f6f26b84ae791bd7fc83bb017e068d9d0a1ee84dd0754a6263c95e6e0e913b2504726747e4a29bc3ad6aba5b541283ce5d9107c6afd82ab78ddbb8bb5cb48f48a37dbd01c67f576bf076b4b107aa173be321cefc3c54d003ba58d34498f48882d69024364e609067362e2efa9d2a80f8604bc6c5b312037eb116b4f0aeacae7bd2289069fdc21056c09248c695524ca6e990ccb8775c229aaa2609b11b52ee08a2586497027bd61b3d7eafc119c8aeba999fc2389cfed4b09a99f6d45912fee7a70c855fe50063e62da8770b5fef1646d04385e8a9c28b27e966588c8ff6cb16f33f1e09fa2cd0a6f43efd7b91b8f60ea022d10f3da764c0484085e3367d41b0a51dd246b857c1093787de7da2858883158819f1d7fb5bbc63c344bf8a4b3a853b63df8bedb151093dedd6cd0567b28f4de7cd6b475af28419e7b592898c7832f4ab78beab84e34f3633527061c56c4adc07b806bbb1943ab0b2b7cac60220b6c1a4445ef8f87210c8d81748d29c5e0bc69461c99fd62b37fc9018f2ac25b2cbbe52eda0021b07825b9496560fc4f525334ab8259608415b04bdd2d029af212c9ccd20b03802769006d0c541183f15d00509841bf1f69bfbf0843769f81f1d725c9b0191ab91139a2839fe696c7209287ebd982b005416115278d70a07eee2d0f0e63b7370cf90e6c1d23bf014b95412f6b5b2952630f7e087761c659399a8f7dae82dfb14424be41da4a36745e02100ffcca858ea0139545e97efa80edd6d35ec7911d42771eaa7f855d7986a10aedb9da6a94f56a82ec096f87cf2f671bd2105e5e9013ecff574f7f1b647ecc3f3992d91b21af5a48e9a85e4448dd7eb2d1e91f0d9335126a1b701d39a0dbeb9bdb43bf614573f9cda4be1446e6917f87acf000ed1eaa17d7d196370957cb3a8f3880e0b6157fd6764022767dba7a5ec862310314da32d0cb9d43a2379c5b890bbf395a3a52944a1cd9a3ea709dadf99c977ba3f37cdb5abfbac81d2039676039334c873a95e42521b9d14b434945c6fe37723d94eabda7e767af4e6e2ed6050dd8b3b57b7eca49fffb93899d97a6546b7cce5aeb5530a11ac1f60588b3a74d4cd5c1af214b9602ec2b6084dbe1b6e3d95679177402bcdced49819b418b4714471e4480a72fc348779d85c1d4aa21924f555ecd8ddca33724ea7f8249fdbb93b99e78a892523789313ec34b2a8d6bac3589e3310f2223ff257257a1f3af124c3397df7d3acc208d743c42174cb37ec8fd628795d80f3275392c657164e9ab0368efa0c18903261a644173f85fe3e6219c115089f8c7339a379669dfa75c556a261522013b03e0ab83eaedf7e27f2ea621ffa84b5417bea6fe08c19962db65b389e24cf204d798d5c716f91de034c0107c82ce3f5e733ebd3a0c42f3803fac42e899753fc06cc19f92b42ec8d27773472661426bf615cc97b724a2799dde10fa2e7791433c319e051bc6c7cd2cc7aba3f53fea13539fc616f6672852ad221174566c6be68c29fb5cc1dca4fd7708ad9fa1aa24c06ced5293b79e7799e4c42d584b1fe9dfdb37122e7e73c9fb7f37ed69f890b393477f89c9df2337f2e4ee5e4cc4dde496ad53c2cf77596cff2196c587e45d95b73939ff05cabe6944f8a9f8113794acee87cfc22c242027b84ae4ad0cfb8aa477c2926903cb95efa2fc2d1bcb730ac4d51178571a82f2fefb9d4d11bb8541896ac76ee4ee6b9625a59e7a7f4e783d78105b15e1b775189ec1f536d345931a63a8d9ffb53702ec914afe1305a9352dcd038299c7de06129b4ce153c11678aa784bc7a5722c3fa6a3e4157a225b34a578f9a14d79dd21d3ec7a7eccccd91144bce799fe7277c16419bcfbe8b0836413cab31256a5d9ff3739dc6431fcbc3a93ca3137c266e9115c7ba0c4ff6bf8f145f631fb8e9f61e5d818a18c152fd6c33b34a126a454c46efa06ea33faba26183a1e314769180bc30a54bf4293ff3e7c5a95c9cc331867d4fa40e9c4fe44cf3b0abde6098b5d6faf3065c53867d8d5a2792907e02600a7fe09c99ae73613684fc77cc40ceda463d311ff068653d9ddd8520a86fd670d980360d17d0cfc5a524ade4641165aee5f49e4551a5e18524a828e31dc4379eeabd4011459790c8fa8969443bb94d84d129acbfa16963c763e8951986e5d3daeb742385aaf039eb1b27b53fbaa1af8b60b6f2d5831a24708110f5a32ae4cf1a4530216c73c54e913e82b94f6547f64873e50b9acfa3d47cccd50966a39602809324346084e34a2003f56c99f2340573df4d41f155e17e185a7ac4a1bfe7c74ac5cd4da5cc670a44e5f644bcb2e63049b915fbe2238f2917c7f42d84e8b2d2e1a8424411800e5caee144085818ec435ca5004a225d700cbd18ed20ebb3b61f0097c95b63ee9693d8a6df7164ac22edc2fbd4b08e3fa3382e5555155e3d95b7d680400464f0a01a313aef84dae77729f035e0c6d2e45358c91f97a2fd6b4658d3facdde01da66622b7e7bd10a6cee470e8bc17f3a0dce4c18c5bcf770fd885f851429f976b739d08f1be274e8215045c2dbd64be86d0731e83753c28f9dd25afd3b05e8db3e0a5c840383d7c7ba1dd248bb69689b6cc8145cf34e850b453d4da77fe8f7775883530c114a9f20f86f0465d1ddf87c5e1a52632c258df53138cc12d90787ce96cc2a81a8687f5c0b6fa72c056c45b520b35847f55da0df4f1cf840765eb33e5e838feafd2ead0bc3636cf45343236652bd9681d9edbbc72117be1f8bb873b5c183dce35e68f3f2aac026b647355b43aeeca1a9c3546d81668f628c71a5db95a188ddf403622200c1c0600f32ba48acf29aab32469c6e593a55b8578f78b4d260c855600d8259c9c1d787790e9254eb4cb6700cd3563cec89039a41d8c504ad6e777f11b5fd0a41961c6004eb2cad6845338a5475335a3aa853c4eada2329584aa6c997cd9c7e1669c5ee2dd519dc9242c1f937384fc8ab8dd27d6028cbcc376d98eb38baa7d6c846bb4883da831189bc48469e1075ba3e557b836f771d3a2d469e98a74fe331c1e0f43cee7e27a164a393f2d61c14ac5ec414d712847b448604a73ffa2ec7aeabcd4d8bda0e956a6a7453be2046d399d0bd22f37c08ba1f1d02208d009247fd4bd0ab5ac3a068275b74e0381ccea3c911bfdc4aba342da20a7a00d42dad1091da2ffb45944dac5d0e849fee347492ca09dcc9502c1b186f3976922b29c440b9f01d5a73ab930f75492b1d75d87558ab6284abb85481d619d0fdfa80fc516686b471b0a88c74aa77017deda114dc9040e8acf2b279e5fc20460264f2e9cf3712d8a1b1b032f7698fce06d26eadd7d600ea40a4d4610052a940bedebba5ac2301115c54207247c0121357042a684bb9c4410a81c971f483600e8affdb45b5f66691c19ccf32cb4ff9abbe99f47e7376f414329c0132489f7a83349b5f6e0a47715ac34a80a11e7e9bf6230a16446dfa3caf3cc3b9d2ca2d379b8e3f6c0c9cec1bc9b69a77ffa6114fe09488d4723c86aa63fcbec2bfd2aa47c3163a4c9eba89b756a1ffa12d1fdd26c873122633a3fcfa356ea1a17961f9028141f98dd1912b2741d65246e225d30960461deff2208c5a1ca50fbbd3248afc0fc279245b6d1be8dbf11420bdf9711aa011d6558a797c3ea30d6c4171ee6464a6e778a4c894088d1ec0cfb4520f09fabe87c62c3b03eeadee3cd38b2dfd14614e116d805b19391a128ae0c40d1a13b695c99bb133f0f585c53383883dd544c8cf39d207b75faadc602625578f995fab7924476a44e81fb8838343e94dd5b4694c695e2884ce0036d9d235711e3de7124e322ca03f3e9330794219bc74a15154942102ae948667d4b67e99bff83dce09aa643b082a04ca51d8746b658dae101d9e880ada51a06efc542cffaa81e4a258e3186d439bfe7d5549e8e2effe402d10a1326b3d9bcac520f17d34fd886402def72760c383f415cb179487934766ce94274ac989b0b2b0c3ea00e20025e11db05440af4a80f45d0aa4508e887b6983e534cf83d7329d69955cb6d6dcb16ebfbabaa75438dc36a0c8bae4e99c8a2dd80d14438eec08893cb46acda30ceca8b1ca763211c39adae17c784d311f9d8e70eed17d1de01a8cc6c9e3cc4535bc3e45944b9c3353324394c572310429b2459e8f2cf2066db4755818e9de54189a50cfa2a7271fbf251e4ebc5e0d1cca7e9cffa5689098fdb28037379cde2b1a8e7b290ae7cea2ae57776e425268a9c56af8517053322a058b9e56a0c8bb17e7b88a5d4c00312eff29f2aaf29e8cd5e5ca12c96f4eefd09f299c582c6f371c0aa207c99d6db69391b4f1b3ebf873262a4abe281557432c470fdc2705a052a18d4d1429925aac040529c653992bd2c22d2f71f4b03e848a0f6210f0a7c0c7b31a012e3fa98de530eabf6167ec745364dcf4fb7e29e0084908604fb8d3948523013a114b9381c892de0aff27b8c55ea6a0236c412a8339d931ef4e0eade946dd893407d90f10d0dc07948e184740125e4ad29361f70d354a959648a2260a38b945705d6b4a6f9fea6a10bf78111401ab169f0cd688dd52af93de6d04c9aaf6bf3db232741a1c56ed7172a4051c2e42554d776acab0d02ce649ce934379fbe2a4f3103bef51403b26b049fcc0035d57b203fc40cd04cb7dbefa4cd2154d128786fb4dba769e08d597312f5d7d5cab3604353b83f036e4149f20c8a398d0cd1486f202d4c260be2fe542e3a6529212a62bc6942ec03d974d6ac5977b506aacb1b3d3067e0a3479ee985fab3614a413646c5ad583ab7c75d2f5263436e603d415db6f2adee40deb76ecc481612207442069291ab01609344bec7de9013df896aa0d20fddd5198547c5d61aa02829defbb0e311baa637dae057da304ca5dea7346000aa8939381b6c030f6d8058b9e3da32f1d215bf1a415c82e8cae2dd742ae7e8e36865368094454e57300261e1a02dfda3f43c0ac3d197354e9fd25ffbc1119ef635bc70976a280c3c0e1c25a60ec6e7c82bd6a98a947caa6275c5133dc1400c3a0ebee4e46a032e8cea40c784d196b232d6e8066c46ee890d9de3172d145875c99f81e843b84524d51086666b0f8db518fd4d33bdc3b88a710df45824bf2e80f7b11c4b37802d8eefca98ce1d87d01df37be27fe805698f983fad00927b532bf508455591fa236bf6f2316bdafec322ce7815912a05269fe52d5c32ada47dea2bd71efd639dbc6647ea3a879d313252a239cf298b16601a79486e9afb3f6a4dd324f78a9cb4c25a8d168ddc8c58a97042c3afd6480a05121bafa83de7191bbc2f8317b2ce7ed1a67f1ee1cb56b17298b8014ce120df184f16583038821388543c84bca46e6c2d7d38ae1dd1a2a7e4efd6668e02b7cebaad92eb49c549bb9e88cdb1b0523e2a61382280e9346b928548ddcb88cd36a1738b0153e1de96a36af73ff1402dc41f585ae4588e2e0bb125dbeff71da51612fa28af13428d4a4e0e2b39012b52e6f557bf879a80f0228653b0165dea6e6fd14402da4045885d570983dc9297b618e082c4656b08c21fe045822da14fa349200e76bdab3fcc7a8016ed0d22deb8e2aece7b66c6896378bb1586edf4c88f4a987f7369936c7ee1b6e87afe02122306bdb13a8d3ed36de50293fb5fb44d5d225129a97bca192d635df6a52ee5028edf8044ff2b54fde8ac2f57c10488eaa542dd324ece9906d4476ec43e2f744fea6d27c4c00d1cc409690e26800ba5053a2db42e0a8b72d4c4b0473ddff7f97bd5d40c4d5b10343044019315c6826531ed3dede4410ef39012183692394cffe883b91a1b453623e2891c4f1fb2a3a54d8beea3972011387ca15a543c7ba0b222d4560ff640530e4593371f0c31fdde52b19805ea57e4b4bf16c8fdb18b0ba1bdc7ef320aa9825d426047f2b1b79ca8b8c147a7df58aa8295cc680948f23f59d4f939f0672c1e37a10b948d243a584d4f5c5a37fc008b4ecef4c409b49b92f223ed2b1e4c287848b818a8b1c3414446da92d769898293699ca69fef89dee843e57e42d2c3c1316f648264842e3f71bf9ac042e06910bcc60a77e692e439ffa514c5a79bf2890c1e4b7505d72172ceaeb5eec285dc37c318766d513c77f0637eeda18529b5d8d646d857c4716366dd16e459052cdeacee79537a2ea4d9bb42b733073535922e5dca0a71987364b3667e5547f7d6c9b6b81fb12dbfd5f362613428d106225dc2fb06d99ae37540a3b8a1c44c394500aa18cf1cfc31f3517bb6fa2997491acf8a58912adfd593c62b2af7d4b4aac89bf4b46ff7881c3f70e2452943f86eef7deff4f9920846e0ba82a84df96172a8a416b462d911ba8b4ad47ffe08684b1b55cc9994584cf16f34e1a34bf0cb3eaa65d637d89c1aa4f2d42c4ca04dbb002724003fd1d8938c0a58f6230bf8194fce664e98c1b3988bb48fa0c298608ab6a48fa6721a179e51d4d62160b650838b2a06cc94ad9a220ce9d830bad55ca44e8180b0d38e04a988f27d39b56e7c1b040b452214cbf355a1ccc48a2d798c417517d0cadd550bede2d03d0834e9a82d34fb0b67a40c360a8b44f7ec00dc80a5ed4e6a12409ec78e1a70b4a4dd7208695b3188c090f63d6dccfa82b8bd3dc8688b09c6d1f9201545706b754d10120e046753f6432799d63ea26eb8246eac8b15d4e62db6ab4ed571bdac9497bebd00e7ca51267fde71ca4142ab52f6703fa4d4f4a3135e26ebc69fe3db7c382405d32ddb3378d95beedf3bedbb012c8560849e32cf652601df46c142b732a02b4ad1e4e24a2f1f1a624bc06ba4dd2737c8302b2b82606876593bcac0deee4869834728e521b0fc729b11f4f703e9831c3fe097531dcea21d5654ac31fb2ff0c26b9b4cb5f6819761c6f45e7c5a177689f7e87eafb779ebb343b940670a23a4032ae997bf076cbc7f49054ebddf437ae3f9014f573867e4f75f0a6f2d069356325250b8caa17b31098848e804eabb4ad89edae16b2b768c3138b638fa90d2d1a4a531ffc84b33f373c8d51dcc91e80ed21d3813337a685da84a6e0d044e938b4b8d971dd9d27dc7d6bbaf9c97890b85d06d0fc372c7a6e1001d6680e6ec1f7e66ce93f3d4c50039ddf085a348ca50eb833dd509c8198cde3f8aa6923f6b56e2a9a7f47218141913e481157a88d7db2358de46612906b3eb31019a5d910f7a8c6db58264d5491ebb97ce6635498ef8c136a928fb12b06fd5d36d310ae3f4ea1795953c5993be4ccbb3a6d994d9893122a19650b1f1b3f81b8ca9b9a9c16698682aef7121b36299f525f32e2c0001f4fdcee974c8e61a316b21959b0d42982cfb326c60bccbb5695c85056f8e750b2e59ef15419669a092938e9013203e0e49003bc87faf64ae7376da7d50c5c7299c1a8a2cd28563a78b1fc7f3735cd69587f246fc4d82bdccb184fd0c16bf01911e124e285dac88321784d4343677201bbcb55c829e2ecf3653baf569f69d08653d16b08cdd980e17ddcd2c2f5c7142e49af4b9c75e2df6bdc3eb46f1c939193f86a51f16a022e4a3cf258c8a29847d758f43e9e039d3226e4c138ab8095ec89ad0221f918d1886c106316f115de57b0685746c6980a50fdc56c4f06b34f06a3efcf60bcba21e8e89093a10eed2e4d9ee20d4327d111952b704187ed22ace9de34aff9caa4a50805ae5ac4d391fcb31c8aeb031b58c18a3ad98bcded9567f9f4f0e1b04823bd79cb5ef832776f476fd6db7b0ee68e78b9c9b3b3846484631267a62c2749b067f43b4c37888fb49d18bf737d3176fa90add36fc61ae8bb5c62595bc652c40d85650d5bd3d74a0251b6b5dd283ecd661c59d54e289f7e32a7329737a7069ef633a8194955d795be21d2c283a320a5121566b29311d4303f63e0a06249c8671de8eefa6df0d9d578fbe647ed4192e532a4e0c2452ea17ac5418a91f18a9a02a5795df54af25d4dbb600315b08a343a85860eaacde49698601ae0414857162bddaf8dc36d3874978363bdd339abb45019592e62013f2dec3223ae04b90d476f6f0cde93ec76af8f68e27a29064fc1a2db90eba5bdca92df724b538b0bff087e743f5030b8fde99c3edc93c665d055b617d7fe75bc8310e6ced49b413a69e99a6248f63810d00bae7bcff02591ea95c204efc11faa3b151559c50bfb155ee68c16090c59c68efa7385e2935a5c1294bb5dbc4466d4dfeafca608df8fd95444902650318ea6fd757c358dd918e888b8b4650a8b7a54643f7d0e9acce7d76cc57eb1927d726de178511706e70aa2cb02bf4fd84f7aa31f1c6fb29678977528a2f8619febfc118299f47db70baedc1386b0bb6b1dcf0ff218fc49cd4c3b09b69802edec4c6f7fd85d8ae52ba8ff1e83d56163c0340c3a9be26c462752539b5592e01676cc1b4a0caa8118f56379aa0774ddcee0b1f5a6ad5505f77cf3b46e6374aed38e6da8cbe6172b575471cf65b3ab4146aea99fe09263cfd828de16dc64c89a2e73bb2e882aaaa0af3107047a18dab137911121db4252a89a3307c432eb7b9be0a1a32ccd3b3b243d853d76c60495ad9a864d9574edec6c4c0750481076ddd274f30e1b75488449c2ffbcd4394f392dc88a25350a0af1b93c0702a8372a5c3cba9aad197487f14d8078cd626ba3b78220759b7b98dedc3d02c84e303275c78cb5b061e35ec986dcd3acd1912182779ccbb4d49a87892227939d7816133ffb708f5089992953889c63e3c0ce6ada31367a8637d056596eb8fdf79ebd0bf91ce185cff015164867b01bc3bec1d0d175b3cafa5257a79b66820f0a400e94d332a988755c4467d8b8b858c80a45caec66ecb9fa09748489e3555e320c7daeded4e60dcde51183fd5fbec2c90c13996ca5c24e234fe4f8250700847e970d3063335f732a9c3e85e40dcf6932d4714d20835132e3ea476054eee8e8c664c8e1630835905f679a98391790f46d68238f1469ded78402135b255879eddf4ff8b679d026f556a25ab0d24365f39d7cf90db4cd513451073895b47ebbaaa3a1827452b583ca985713be1e7507d621fd5e74a203bd4be0f682e640cc1aaee2d60e2462c2944ad2ca4fc67df7b95075118637cf7ff026c05680276cbb8f30a7cf218fffb26440267e63fe2dffc4082861e6a916c2b590ad7a69f12cb844646f197c36cb651dc3c2040e0a99bd58ecc23589f956644ce7362fc68ff28aa6ee12970c8e9d3eb3c2e08b72967badb527da41b8cd10b2071ab4767363d703ed5c38129224e7a3d05a6b7a97327789f67d360eb590cb1be53d8681a681b7a08221a991463e81768aed6b293a9a5a874305d8397714cd36c5d4f85200beb8fd3a1855f91c8c099b6f5423b8696b20bf282ef085c965d90491493e646084849dfd994363e91d4a2cb8f4db7f957060e778f0eb88d4230494a92968f9bc3ba4f06ffd43ab8b065f268f897908acb48eb7948c7cb13c6801d8d519ca4113024bf8fd2875ea7caab396729906244dabc497e93567596c6455b3f26642aaea2c798e679d9a31ddb1e3f41aa526a48a6c8a07a45578a0309698888ea4b980c85d81878d9c7f2f8de7ffb012748b023e3d1832a8c807a6d3d2f114ad3f026dd8eb581965fb6c1e9ba28edd19154390c671077fb3e566f407ff558fd2991711f72357ad6b959957c07ef99f6a13a6aeb698f697fba6fa13c7eec37d84f39b65bfefa20cb89ca68fc50f0b3f11cccd546308bef25df8ace3ad0aaf7c5e9f4d4896dcb4d000bed31c0c8ecddafcf94d7dd7936413e2129fe44447d5204b27d5bfb8bc4881ced56f7cd926a303a8d3d3e27750c5d8c6f6ac71234445b7785dab6e391e324327a7282d799ac6c98808386fcc731d2f57a0ca1a23376fa2526bee206864d8374baa230df2cd3997e2445233ed9706e7d4b8371cd19bf17d9351a675e495d020e33807ec0275ca294ba5f52c03c350e5d7a8d363c5c4ad4a46e7ccdcf4a078423df3b36c3b4a816131ac6429b054ce183cf61249d183aa78c1bcb232ff04e6c2a45c0cce270efb7f359693d26eabc9aa4f1779d98069626177a8440990f54d59c5c2b33c88277c19c3030e2c208541d676bbb9b4194bd26821c5790cab40fec8c89faab3f207c65fb9fec8fcba3bb1604a6bd1ac082b47afe6fa3da34ccb3522940cc54b9f1249a6e0b24ac04d82cf0895a9e4ab228ed6965adbca807eecaeca3dad08aa23f6e9a2db1465b819c9a31316eae9dd795f1040f341bd0f4a0dd40047005351420941c74585423d9efa6bf55bb51f94b17f8dc049d3a7fa0c17074a8d51055e9cacc30ed8dfc0572ca5032b19720b96830f829370cafc8ad0866367332324d655ac83d4867c76b5f557e4123c0f6bba19074373af81ffa78928cc38cc48fc08f6f1e7323729141880a929608db659b4fdef8cd08e933daa1d29375233c23e4a3b0e3b2e3bee76a47604f65198be63f8a059e55599739cc21a9036ca40249d19700eb2ec2a51b375687c3c2119440d59a110f99e001d36aa0164016501cb01915d80561d26635d8162723acf38be634f4a4890e7f3742f03ac1e1226f9fab69fbe08924f351a3a3a4d818d3d0af726078bb3db37bbe2e8d246f736bab031576e66cb91539acae5c5a8d774854a7306f4f9a957d092c68e19f108d5fac79c620f37a050c5751821bb0069bf15d990ad3106e12e9848925bac85fc3892dbb5af974ee7715bf8dc01eb0cc272a1a308416b846dc01f0d794fe9529eb7ba50fd97f9ea55a29f88e57d1cf7695d6a0bbed8001f73c193f98d352895cb9fe3e3068da5a22b75ce416c2aa8a2904a186c7461d381ab88d45d6d9e6bd3b9f5d96c09b369fafc2b60840bc90b74ba4b64243f1fea1a2d7b57342b486c9d2f807372e32ad80ba7861113bdc5788cbac862f37fd242cbd716d8839f1f10ec1b3e64b9c8ae527099a59cea1b5f6b69bbadeb312315f5daca7d9c2b8810872b3023edc2922baf76fec7de1fb154ec9cdaf50ae49fa8eb52c468d63f6267457467d68ed87057adac82195ee47268d2907631635352837030c8f992f94fcdd6941cb9726a016a11d003b93362aa50c1a14f05863312849f564f32eee397794b283a044962a408593521ad67129343ce98f1cc4de97bf2aac9572172cdad2343ddaeef4422c5c68b42e4e8f707e33a90af8e9a561c1a62fb192d8d419617c10c9430a31d4de135bed65a2ba39496e1e9d603ab10403b44bb52defc836254af8efff9638fc64a0cc14033f6b6e489e10972bd3adabbb56d247e427a6e7aef09c0e8602da7002a01f52a3c60b024e930333333333333333323c4f1a2a037b6b5e35bcb5ad67e2993245de5fcd02d0117b54b32a594524a023d3a58940db824272ec502e5e3ff018c02830288029054706ec154de922d7f082a4e6d404e610add655e2c978676c9c5f0520029855199baa7ecfe420a9d2685c974d272a497564aac6c142697f2da4946a5d84a4714063361b37b5aba0548288c295b532e5f3675990285c9d7946ed72e450aadff84e1df3ce5a07e57c427413c6194a2764aa67208904e185d9c76d09519841326b56b1e32bbfe5f49187d29068d1a344e420c403661b61c17e73f5c770abf04209a30bf5ce9a175fe0d214a904c98443d8fe95141104c402e6116da2a457485d7ba5718018825ae12e6e0a62d7de7561af38150c2e8396b2d3d45a957b51b02c824cce1f36cdba21617524b12a6cfdbada26ffb357224cce2b2388f1d36f5fd8584d1edde92761d4464799047b4f3a1b1ab974e3eceb2f9ca16e5e53a104798a34e4268adb38cb633b911a6f9ac9dc37f96ada176401861927a42ca76e679907311a7318028e238117988289c2087405eab3d9d2c6daf6d08cdf55d1623f2d7745d08a3ae957963f3a53a3513400861b2d8b2eef56f7d8ad50e641009118451eb96192a48200c3eff499a0ae7953fb4050410e62b80fc61b7ed6e334b23a2c3cb556446ea8a1f8c1d9edef93f0bfd3b2fa40fe6cf5aa7caf716539bff3454076000e18349ffb6ea8f7f43f6b0aad3f69c5edf881ca207b38a7a5c55f6f253fe60f441f2607d36ed276fab16081e207730a9bf5b1d4cb4d2d4931d4cf2a4cf4921fa2ce5bd0e261d5d7889fcde0fda87d0c1e0facba2bcdf97c2cb39988392152a5e9ad5517f7230d899ccbc9b8b08cb751c0c0ed8d0808c0950021207830ea25e053d721ad2858349e437d543c9216f309e480f4289d7ef8a1dc40da6adacb23269c975aab60b481b7aef90adfd2e33cb1e436abf216c30ea112d7e752b7901598359d4b3ee6ebd2a7ffa9c20d86f6e06f30ba9ee3ae7b40cc6d0bd1d444d0693570efb34d78fa21c83f13fabb9f8a25a082fc560f4b8235fe5f5cb95f35d1206a38ea5f38708dfc060d6797352eba8b2fb8251f6d57278f57274d6ea20f1422bbf85fa8bd8ae58be20e9822f4be52c4208a3cf050917d411adb0f96137dea6f216b4cf8d8b2f3bae5ddf69e9440be6e0614cbf9b16e2f3cf8259eb2ce4b76b2f9115c7822987e84f41d3e40aa6f9e4c245afabf820b18239ba141e42cbcb0a259454c1b45ac547b9ac963da438a182599c9d0c2144a578a56d4ba660d032a22df4e70aa9762998746a4bae2676144caadba192fa38f72a953948a0605c4b525eb9f4246e4d37489e60f48b1594324da5f7b46c078913f49a60962ffde59fd9d849db98601a65518a7bb78f77694b508ea20453129e5fa9383adb59c9140c49124cba75dcd38e9764a5f71224184607512d5b9da24b941cc1f0625a52e55d7917f428488c60b4ede07a9470d7513fa3868d55d0e33e9014c1a8b2ec5f9bf9a73bad4b8860d6252e69f5e23c8ed4f3b6900cc1a4a274ee79cdf9ac749608c1aca6d3e7a3cb7636812408a6f0a9baa488fc05b91d03c1a0f6b5da9d7cb194b32ef98171b4f3e7c68554d2e51d890f8a0a921eac20e1c10e76cbfa2ccbcb79a70538c08014243af83eb872607ecdba2f970f225bfe855168bdd369e5aba095947861cc546b52c8a9f179310e8ce254e88e7a7649867b03b54ae31dee6445f4ebc2ac2a5adc965a5ea8f5121b78eb7afaad21aaa976c1cbf6fe36b578fa6a27a981c157762c7825f9dfe617090d8ec366e0890c8cf6f1adcf554b85ae9318c880b4c27841baecac2eb5fb4a082b8c72b5bf9eb624a7938a0720abd045772a11a5e3105598cc73ea69199eab3f05465f1941fd45ddfa7995764eb20a634a5152c6b8ce65e97110125598eb7c2dcb51d3d2c39fa4820d157ca7306cafd78ba6cfcf564c61924288bbdce9b974474b61cc4bffe37ab409298ce695d5aa9b2e1945771654fed0dba2e434d0b9989112519caa77dbb9af793a62e94b42619a717b9fad5562544f40919f48f384b9dda5d02afc48ad5ddc892b41c209a3fa4e8fd91f6581a2b117d8c286ca40a20df51163139768c2ec8be3f7bee19f151024994830b158eedc311d5d15d35cf5b4b1c272d65a509920b904a3a25b6bf3de7a620993ceab85bee853258c323ca6cc7a49a1bda4845149ed4b6fa3d73ba7c9248e43126b91c0830472d823124718579bd2d1a6dd2e741a614a5ee9a2e9e609238ee366248b5845184fbf958c7f4855aa4c12711c8788e320417208d368f52a9f6ea8075b134398f5531213d72acc879f14428fd5b41df5ec7c79e55fb418218c362a173f9694263c281984f163c78f7b9d2ff26d22089358297af18492a6ed9504c228ebbb73bae4416b91258030475929c77e977a2655fe6012e9a6ba279322f183494c7f3d465ffa60d0e2d38992fae7853c6ca88f18d845c207a3f65277ddf94ff6601e19dd10e12bd764b635123d985fdc94c789162f73ce834105a94f2e6c98e0c1fc364aae8e4aea0e652d662a891dcca335ffff472c8b6b257530cacb4abbbd10aba589091dccaf42a4102b2f553f3507a3cee1a22b47379183597b0bf57051db6b9a30fa3a90c4c1ac3385ba38abdf3dbe667030493fb1ffef5a1bc91b4cd15ee818bae3cba83e71832997287961afe251a7491b0cafd76207d539e931964ed8604ead3dc90c95de9469adc1a8e5223bf5acd4604c1bdda9f29affa73e0d26ddaa65a59d4ee253090d2629d4ab2ccac3b31aa13318d496d4020f48d3e24e0b44c3053860012d90f101638b1834b4308e668e6b40faf0b861630058b4006971802b3e3c6e70400058a82dce8d2d681c19060080870d95c5072a80000b78c4e0e21c000b1b5ce1e18138040080f3719e6300589c8ff3356c7014e08a0028208b1a5c74a0209d0f8f8e0e045c8145020a90313e64c0f0381d1d5944cec0c50c3318557c50fa63daa7730e8c2e7837f066281b1d2a88f11deff74123c6062265c8181f5f63061932c6870a62fc8d8e8e2c22632840440c2de02285e14379cc50330810018359ef7958e5f1adf653be60b2152a6997dd5e30e8f8b1e54f65cd50339a235d308b96d93a2fbb3da55ccc5033d283468c0f19316ea00e1b1be142761820b2858cf1610386878c8e8e2c225a30281def44a8dc089942912c18df5bac07f35bb552278205d378565ef1f175e8588a5cc1f0a943cbc9b29342aa235630e878c994ec7c8afb6f4676a40a9d85dd4a3a0addf0380944a87012b9d729d68e3705b314ad16db92c8b13b75281b373c68a8ad40440aa6fd13319d5eaf4793c2e86b0844a260b0f193ff7b4b222e8b6e78e8310522503009d322bd559eafb8cb179127ac3acb9e12d2575fdada092e8834018f09e833224be853424792701c48b82398562b7193faf183580411236859586c9d3d2b150a8e0738383c6a448ae09da6679d877d85086625eb827b4739b1425e448660ee6026afd7d4f27c450886dd33d57da65b7b2708c690f1e071ba2bd5ee08108adfb69f7239f79511f9813987d59e63696b4cce880f4c2eeade738a325ad918e981f156544b1d42c483342bdd6ea73ce96f97c80ecc6db299ba33c497e7233a30cc27393a788f8951b5cb209203c4f2aba7d251f4f3c5312e2cc9cf522b44bc88e0c0ee233730a55f5d42cc89bb307e7729f9d662342d6c03e35f542345648a547baa81598fd60761caa4527d6960ca6af9c247dfbc7042333025cd4b59961d9181d9a4d25aa59195c56a0b92201283dda27ab69dcbc78b76db0ab37411362f62515547a9858415264f8389a8427c8c214308218488884833e9a2091004414090024912442594d6031260e0308ac3380a842008a240cc18828821861062082122322236446e5be87ebb12c1860e73d0ee7097b462589de2e12154fceb4dda40adaa6b52e07e765b52a5533975756d7572253481a75722da6d2b0f525257d17c67cfdc99f2c873d0f47c6addc2009bf25f29e6b71ee120416714b8f67e7940f4493785c352bb0c26c57bb4d4eea1a159646a24f80d9bfffdfc429bdcd36cd0309e8d44aaf2ed7df885050e8d41cd82c66337518857b1345491e2ab0c66865a4c525309b3a5e0d82853878ce04942724dd6979e2d9f9cef1e74348e108d9b0a0bb54689c7f88033111393727c021e0d1016fe7282b2d7681551d03038073e40e6e422c206489559a91771eba13804e1765b3d20cb90d61d9fb60ca1caff0bb827eb9ad19fd55d5795492f6b7c2ae894a4a54d86073ea5169d2fcc79f5ae0ba98d5d31249e9bd523b17bc1b5b684cc783dbe7b3ea6b3348c1ab3dfea51efef5767a405179226fdadc6b4fc6a45d10e011e595f942279b4357161d358f3d609dabf237c50b78e3d65e5b4d1aba2c94cd494827f0ddafeec341218733d92288300ec132f7c86a3b8b7222f804e9dbaca90903379fddec6de2bcb08ea0c9c9416b427b7e5428b8856a051b7caf847c2034a06400d082055c94ec2f7ec37711684dca183ba30a4725f3b535b93f0acf50886c077a5d0d05f4e8bffd875fcb468fc77632d94cba2e665312bda5cfd0097fa517846146558a1987d76f65aa6f41c30d66a9ea0d16c643ce5ac71ab55620d49c3c6898a38e0ac7ae98e56ffffa8ae195b6ebdec54a98c13878c7fed9d2c159283d62943a40adc57f0872e879c2205ef14b04d59622aac053dda009cf33763275f18c0c0236810bac682514b3c0d29d1f21a77fe516a9ee9494949166df2126a6f4969af85595129a8523b2a478196b129fcd8341257bb7a1338987a2080f08132e702477c35e8fca80b15adbbe8762cbfdaa8999fb497339142142c8aa5d67f1fce532304c9f03c398bf6a2541119b8a4eaa4a5b1e5b609054b843f03a8cc0b98b8217cb33a09f9389483f5fe186a12b41317c262bb958cdfabecc94b8a762106746d012cc29601c1e28decdaa46a95461f95225a1b3d84cb13014dc26f310c62f2591962a6246f316e29b6562c33ffa9c661f64913573b0913356523597034b014bc13abcc5688daec37e02c6d25f360d959f4cb2531628c80007860738d98da601de05294ee04d959ba55f1505d208b4144567bfe90694c3c0e73104df4ce832a90b7150e115ff027a277984ed83ff12b3d13f8eb84a340c9d2cae4539f2555863527b59549b7ec0eb774e7e135dbb7dcf7d3df7d70eb3e604190bb908731f4082a1a20b95cacde70eabd4073aa3a09a2111e61c39684bf4737c4d4cc530e1f7e3c0b82e81cf866cf42b0f3f97ecc2d5f3d58f1313433da2163686db3d42f1b0f561aeb559cb1c4ce3abc1e669bf663d4f35e59e8958355ae701646de79933acb0451384f6523e721441869e679ca154a2102d8a97df44d8e272f3bf9d23a7c78bbbe25663df166882dbe73c2b606fd540460a048e32c381c786be82265c5820f488059e9cae97771ceae28510e6a8cd8668610dda90abbcda8a3cf61dc5e56718f0d5368799d1b53d43662c4ce79864905029bab0bc0a0bdd71242e5e059f8ce1b05b93257e36077f4cdabb17a584a33c7639307a27911fb242ab0202eb2048a46ddc00a955d194deb58d3f8214e5ab26172489526c0ae3c5e802f746812b091152bd81c97fc3692f77940c456c5b05b1327d36d90c15b6aa41cc212b5e26c8f949bc593b8b33742d55402c7b599beb1ca9c707ee6a0320cc2873a9f10816bc7c12618022c200c24013a2d57846ea5a414fe14e72d7e30936b2d89076ce6ec40912f94fbf56cf38ca39a73b936b7d7e68eff7895089b448205f822273fdd3291647f1edd0cef58c21fe19107c76c1ff248c040bfc6e366d0749938da817a34376571c4f40d8841f62f8d5c1143a8f72c31ce15c744343314388425c628bbec0afad948ef5bb0845f78c020824b6c14d4b703207bbd6d4310fc31f738aa5d3888b5b40b6a47115df970b18ad0bf51524746be81537987b695cc34e57f91c8f78c9be4f648810dd507d9eb9846377318e9f9aa861d3e77d3bd1c247a100f81ea821e0d15889647d84d32b6c3449bc9b77861cee1ebfd8cfdde8d1205cdeb9b3e312db5bda065b9dc39b6f722985bd929aec377a7946d27104758f2b1b79f19fd744a09a471b3016e7e6402de21148d0cef85d2e5252aa14c1d4cbe9d565ef21377f6d7c06c513244fd278f4c50667ade03c488c06184d69dc28ace879e7ce1e9f15861865b057539af73449ced6a63427bdf4d49972eb4009f79d85eaf54427fc1cc420492bf01cb59c2f351190308953831074a7e87808afcc70928b9594b136d154eef059d30a439bc2a2b0d290d478db2181e649a7baf693e2879a4ee0f51d5bb3fae313c38c8a6353427e7ac0d5c5d0618cd409b9703c24cdf8b026c47f3115f73de4a94866e79f6619c97923fd5cfc133844b7ffd82490d510e3fab0809eb8e52e06fc5c1222e842d22a22043f8f0fce5b2841c81d36109483288f38b08aea416dd97e1b8ee93faecdd02f5291946ab06e7735f2204cacbce9f169dc376bebcb6a7d79e0f25081a10bda004059cae0e7b3fe17abd5d6769e4a873da986a651a1a551cda5e0ac1f8add85f5ee8b7a754bc438504e76e9de78d901abe1ba6bd2e278b840e4d0580a1673302dd25d0a217df2034d6fa29bec7930d0cf77c32213849cb629b857182fedd4e2990a9125c9f2de419e6a0e66640f400a3221f72a3930a979e356d344b8c49a0811212e6988d207d8f657ee6eca60b3f2b655465ee3664a8f26cf8beaaf1876469d2167a9b24811d50b21eb1aa881caa2ce155db44325cff57e601ae2febebfcde3bec6387197ef62b99b5a6e81c61bd009311fef74c66e1e7b0c3176db43f05dce20014f70d1828f2f1cbe40c7623c33d83df822f21bb28207d75f5287d057f4f2eb8a878d93640651408a987b2ae947f42f1a180df094fc0f385350a82b725b77633d6a22767b45719c225b4281be31960a16f9b242b2dd0cf1c342c261a536cc2f64c535fdb7e41631336f6b223ad50529daa2736f4a76ce2792c5b00d7aab35cae07bf0038e97dc26acdd3d6540ca96fcfcfeb0b2f656630c79421526d0774999684a35dc37ac423dd733882d578e262ea632c4cc68a85efab2d0fdc9ab51ae071e96bde1c340f77fb22b2564ca068dbc0793edaa454e20b06899a8d0b4ad0fa511d8205f06e8a7119e58f5cd3ddc4ba149d0838fee9dc27bcde4960cb966f23513695a7a43396c65b28d7fc646aa35bdb43c0eed4e67a747c82365a33d171eaa531ce3e3569f655e2791aac4047a85955180953bfe4030b9349c8852d9766308563a41abf948130a578923219c4f626f73ae8af946159d9bf8b9266e0ba3c4f8fcff3b6e9a176051b37bd2ab45ae6451f8d950d088b6f3e3e46a8f49acaa8a1a606b9a028314217045d9bc49aeecea50a0e32c3cbadf37ce122714d0ceb58480fbe93306566d7b9c653d65b0846390a65", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00587474043ef944860f5520581aa5037f9463647bd51e20bd6080b25e2406f1abe2ec64b0ff439520e6ed1847818671893a082d0b4f42116c01308207e08dc5aec66d31d43ec516ffa92d7662a8fd98ec1f76cab795dff6de9bc82da54c29a5cd10a10efb0e1c4f13c9f633aca37a92de6379982bb2e96028fc7a9299932a1e86bec7249429b798fcab616053eb3b55520f2327063a65719ee43b900a9e543d4966d3c3480f631dd10dc01013bdf629388c9cb39a5ea32616f37d95349b2bc62433a2298b8482459233a3906bd2ddd5c38e79b4ee1899cd455a240e53c4f6cc47e3efcafa3a7bd677e4d752fcf7bc3dd377dc248309df77a74a0a5f7255d23aa9ff2e6ab7ab3314bec5d5195aa78ffec7d58ebed7715a66ae260ae16370abaf4afa1e73dedde7bdd523260a3f3e6661dc99b56170b9fdc9ecf2e8ffe9b755930e4ce1fff4db9a8b9b0e0e218d5c875531f96b073b6ed333ed8a6e008822c32dd8f64c49e3cf64a1deb3bee3bf44b4fd2bd3f7bb3de03fae1ed9b7cd5899cfc7ebceffe5e840625a3da0f12b0df5c7dc35a087add65c6d9285f6bfad5a47f4bdec62befff1de8e5847b49f93ddf9ffb4a490b3c22c0fff9fee214cfe254cab1586faaf06d4cf1f6b0d08c667edc7d2c81db18ee026e96a8fd399a1fffde3905847f475c73f93856e00881e7b9427466394f45749dddffddddd0b757777ffdde121f8218a6f547f7fd7a8fa68f7ef6814d3fe410aedcfbac7534dab0bb469d541fbb77994603bd998bbf2810add956a4c02e8ae7a38a2da4f7ffcfdd728ebe93e666d4be3c614db9ec9d47acf58038a1420b21e630d487c8babf1e363ad019934fe6aafbbf7ab01c1ffe9f8ab39b69ae42a11956f6d555affe3d6561fb57e3520f998b5d50850ebb1d54a5c6d424b6f6d7557d4fab8d5edae89921c86d840adafdb5d0d42adaff187c76d6969d3c1e388238e3134beb55519e87b8c336b7b7f018b5a72d3c1a291ab4c2d4e078e238e38e2a09588c228e4cc5f4d94257b1cd8de3471613b8d3077d5c38a564977d5c316ba9f750fa7f64f8dda956a0c5d5a75d0fdddb13fd8f2e88d296f4c5fa3f877e96b54ff3ec61867fc5867bb343eba48e96ea9fffb7ed7809a5ba6f1d12589ee96f2bf6dbbeb8d696bfcab39f7560392ddf5d2de98ae6681652eb0a5fddbcf5ff7b1eddff77e23ebdc1235d380f1f336c9982b55185a1fed97fc52aef76cefd449f9eba48f1907ef76773f35eabd3fe6f0fd41c8bd8d6973b5df7d2636b33bead3fe6d54a3f8376c7be6feebae9f35a0e5b6bb2a81b6bbfe9f464dfefe53a37c633a1bd56f6ad4f36de96aef7ffaa779d39941527e4999d399c19fdf9f3921a68f7be72a53fe9f7ea601b67477d449fbb16d54e5f77f9fa30389c95f33dadbddfb044cfe0bf01b716ebb7b5c95749fb747b324aa834599d468339cf1d6744599440df36cb7077ff5dfeef665a32a53ff7dcc3718a6fffe6a3eb6bbfae8be73b2bbfd9fc63ce3cda9c624666128934c667b2c6115d5e10194bfbfb50b3c958af2b30664aa287fd6a8a5fdab016115e5ffe9dd76346764d20d009173af816d63bbf3c20126fffe96b0f59e28efa1c00757ca192194e93bfdeff74fde13c57a28d18a5c149982027f68c15ca102942f62c6a80296149493eff43f2eca2905e53de48616cc152a40f922668c2a604945912928d277f88716cc152a40f922668c2a604941c1e2ffb8f51dfefda1c7fd05e3df46d57de6b6bbfd7d22e61b6c57aa2a742d6c1730f9f7b7a4c306c36089242e9d3674a8a0c3860e183a473a5e747c907325470a3938c871424e0f72769013860e941c1ee478c9c9418e303951e43c915345e749ce514e1c3945c8a9414e17393de4c420c728c74a0e14392ec869418e11392fc801470e113943e43cc961410e1039a290430a3a44e498428e0f398890e3448e34727ec821262705394de4202187891c71e41c21278d1c2a3952e4ac20070539aa90a3821c247292c839418e0c72b0e45421070d1d554e149a247214714a3aad7152c2a98d131b27334e4338a171f2e21483d3151c28e010010709470c0e12708e8003049c20e08c81a3064e1370ccc029034708385f70c8c00183b3039c30707880930353114c49386c9896807306ce0f70dac059024ed28d13372bb839e2c6e8460537546eaeb8b1e246cb4d153745dc107123e5c6889b14dca0e046899b19dc507193e5668a1b19dc60b991e226063730b869c14d143750dc3c71c3829b2a3743dc087113e5a6e826881b206ea0dc3cb9f9e1c6879b1e6e54a63126384c5030b9617a82a909262498904c473019c1a404d317261b98ae98a230553159311961926213874d1a3668d8f4c0a68bcd17365c6cb4d80c6123844d149b229c1ed4bc5133851a29d440c1c6079b206c7aa869a3e6083548a861a3068d9a356acea8d15223839a2a6aa8a8d9a2860635596aa6a899414d0b6aaad44451e3848d1a3541d8c04113070d1568d0a80182260d1a22d0c0a0464513041a20d0944133060d189a18d4f850d3038d14345868544093021a24688e9870cc31130af38df984d9c614c2148346ca0433d59868cc3013073440cc20cc22cc1bcc2f66976983e9c5e43257b38bc9c5dc62d2606a31ad5842b05181c98b09889c31333fcc006133c63505cb4806099923648c648cf02b6686f05470312113c522423fd129e82a1619355b2c38fa8a0504cb0839516815d8acac319a05396ef40a72b6c811a29ba841ca01a3460dcb8ca9440e1cdd0216c26242bb20878b1c2af4949c29e478c302c25ac34ac285021313da896622e70639aa86a266ca9584a584b69263044b0d4b4c53b1d0b082c8419248d7132e363022b02230299811d810d80930240c50802b09272c4e3d385d71b5f156d718b08d9926c80461060a1e46526130ae1e5848d6102c30d61939502e1ec8377470a0c34547c1b4e5948413146aa25043058f024d1197159716ab059717971225364a3c28dda00446a907a523947650fa81a94b498c121caf0acb0d6b8cd584a7c5a68a67c555c675c625047fc2a57028a014201cf38709c47cc22eb0a1c2565c8c23c18d201346068d69c435e01b701716141889d760245c5b2e2eae2c3a893e81dc6215711dc1326246357d30bd611df17a20038425859f601121b190475848b081529a82c98c8b0ca9326d81a3841a2badc44c190c25668954c429e20c7a89d20a729e10b5340a4c63949c702b66cc88555862c808c140c02df8498d0bac29d6129612960c2c144c272c24260b6695191fac221f6309e150b0869054c8195854ac342c362219d61b561bd69115c6a4850c115715388839039b13f0103640a0419a656030c05080a5006b027b01e604460596059b028b01860593012605a6028c05d814ac05970f30283025b028b02bd80a30176054ae2f9718d70fae238c09ac0ab604f60466e532e232ba8a885368744093031a1cd078a10183e606345fd074a1b1018d17345c6856345dd0d480860b9a2d686840a3054d16345b68b0a0b982c68a9a2b3455689cb0a260fdc03a820d10d612ac2fd71b384fb84e80f306840202017f803e4028f0098cf26ca033058723871ba52a2515e0ac2153844c514d16d30c8f43aaf19e5850e02481c6888b0a9714bc08384cb0a2c430667a68249921b8c872828c94d6a2b7b40eb024ac27e478824d143021b0281c038601c3c129602acc04af8097e02aec044761ae715a8295f4a8d88ca141c2a98c8e82c3d820c114047f31d1c02a821504d3155619d6096ac298b0e028a62498da2815c19485e5031b241aa31810a0009e9906c40263ba7c2da1d41eb403110f085142242807214230761c9004091172cd40718390241f4002e4c891241010ba21e8c891241030c0cc13bbc3912244848270101214f40102ccb060937c0049112124581224021d841451428590048580044482fc4c950dba0149122442880829a28406dd8024890584908820c90d375016669cc021c90d4138b430b382dd8104414684ecb0030982664092a4c80e3b0465609b51c18ea08812ba24c8c892241bb8c036436585048920480434d4804310084040a40603cca46077307243500e3734b13b0821095a12940392223fc30492221fd09999b23714d901499125424d828490e088122544842c09c2e1481111a48cdc90e4484ac7cc121b0221448488e0404428a80234334a94a0c8112245848a20297233830211dc10d424a86626895d920402d9cc097687a02242459624c9414804446c66905824498a08115922021c84082539b28390224a28912522a0376f0a6be48624473c20244888080e458e106122b31c74c40344849088e00342846e085a52040724458408c9b1029462adc0e8b2852e11b62b958a3291e788700bdcc24ad87a3af01feae8409d6d8680bbf4d71d63d4a2e67e8add1ea3d6b1376a518b317aeca83df7d77df26dad63b7776ccd7737768cdd0ebddddba347df7d2e13bd5fb73f7f5132f3cac4d72edf3247c80c6962f4dedd185f77cb27fdf96e8c71a3f7c218e3babcde945266e635ecb664dc4b3225f93ac6ce715ef76eebb575b9474bb6f7c67d298f71638c3872a663dc8d2ee5faf3f806f0b63b46cf5ef7831d3b4ab9bbddeefdba775b6ec7dd8edbbddbedb4bd3bbeddee175bd88dfb1e7cce31f2f308df8bf141678fdb2de5c6ee95b26facedee09fbf1936f4646be6b4acbb2dc6577f477f9c25de8bb71ddfded7694dbedde2fc69fd849778fccf0010e6840472303948931c218b51d0c7048231dca1867bcdbdd6334c118635bcfdff5fcbd88f9f6fa9a4c1ac7c8bcddc37b017dea75776721f3d63c00b1e345b3bb2f6b7f98c3a679bdd7c2d734976cb81de17a43b8d776efe3c7bcb2574a99374380f7643f87ddd2df6cf85c3ef8dededcdcdccce94feb8dbd592f0b9d65f1d4bced71773bba1563afd5fedc5fc9e7b36b69bc7b7b7070bad7dd3db67b778c0edd4fbb32c66e993500bca300bab97979bd63f77befb949cabe91b1a335e3eebabbcdc66e544ecd5eefcadce63d0574af7bc7eef7ae6b574a29a5cbf76666decccc7b7d5dfe9e3fe9fe64bcaeeb6aec5d524af9dc358f1bd71d67370ec0b3ee8e7105d0dded31ecf0ddde6e21c616ba7b3d6a5a6f7b8c31c6eeeece121063d6bd0f00edbd0d805df7ed861e978bbb71771d86766c773b72f7b6ec868ef364cb766fb9af1b3ed87d79fbdbdd8dd2bdbbbbbbdfbe17fbc11929e525df7ab6ddddbbbbfeb20c013cd90bbe6f17bede9aac1bbee752beb7beeddddecedbeeceeecfdbbbdb6a87d13b6e773fe6d6614327095eb34d8225494210148218038a85264946200400940260f815604000089014c9610722397c028e1431c2730002f0e85ce872b890830001288001786a70385224871b84081d1101910f04e1b063110086007042449604210902c1921d04802d0c413bec10b444490892dc20644910932437042d114264071c6e08128200232805c0a0e486a01d7a4a39dc2044c4034272d8a10892221fe8b60f145912c444c80210a00005c08043909024424a48b0e48600948e0431093a22a4099110b4c00208921c11020224454000822447727c93201c90141182a408911c6ef8c00792701c825d04042df9809025498488dc90e4c811223a0a8043d092201c9624118252000c4260083242e4880784041559225480a0101411422282259c8dcf078444c0824d93a01c84082129b24489901b76281282254484762040cd0e394c0b4392244b728cdc40c403478e245952801d22414b7248106444885093202400d0211404821c2bec20b4439126413aac4500922445846e20b20312224b84840815094108927439168626453e10b4440967b38448d0911b74982009f29a45801024498aecb0248889101c900429514244481008882c4922b48310a126413a982009f202685e3411af6bd810229ef1a12122a2b87008110f0d110d0d0d1111c5a1a1a1a137e43d64888986867c08112f5169c8120d1111bda1378488878686868688de901d1af221433cc443433d648887867ac80e0d0d1111f910221ee2214b44740d191ae2213b34d44388181249226b081113f10e0d1111bd21434b148710f112c121bb43889888e80d592222221fb244443d84888978c812f19008bc14f0ee72087620b201717471c612a020052ac4912a3d14a2548983827dc6edeed4feb894b71a84466e1be2d40f1b47aa2847aaf4bde960a5c44529fd552afdf51e4a89737239c1022b984041173aa892ba1e4ae9a140297127dfe1b7382017fadfbe77a24f06fab0e317d87baccade1e53efbc7fbfe4d13aa7ccf7fdafbb1d8f04d8fa15df32c58de8fe83d1924f4a6f96d192dbcad285652fcbbc397b5bcaf6c2324de6c9c878b3cc6ea66d96edb63249741f939999c976abaedaad7618ba4f53f36a6abcb9060cdddfe2a5af749556b551129217305b380b1b7115568d01e3cf91d60b577745b9dbfd3d185f8cde1cb9dddf83305acfb2bcd97a3046cb92b274bdebf2e6cb92a5d2756158a63d4df366edc2b24cd3646466e69bd39ba796b14cc6333319cf99314d8dcdb3b1f1669b9a6c6db235ed56e7aeb042b638a7773a79f38926e3ad26e3cd06b3319932de6e341f4cb19b8cb715341f4c17e7e1e078338e9491cb637fad782365782801db1d3572111785a129ae3eca9cedd26c775977fcabf57270a5c4ac9c44997298e5d1c4acebe5c71ed12f4bccca61c2f0eef0978c68a6e4a8c2452c858bb8e88a991dbd17ccca616212ddc35f3a16790f7bf11d7f33a8d0a3683485eee12d7ac7cb7bee42fd6b7ce2d9919bc0e808b303c985a418c68401431f57b9e8c50c08aaf8323e1e4c7e6c9bc6d49d4eff7e018716eaafd39c049ac2df2fa210057defd328a7fc32346a57406c41f97368d4527ea1eea151f147a051bb122289fdb202adbbf2547d5a7d9ebc2421b43c8155b0ec2a081ed0ba6d50ee473103da47972c9b0f2eabcd07972e8daaf31bc528ca93f2c7c00cf0df4167a86fdec47c5a7d28dfd0edf20509b4b9ba5e28fb54a0a98f2e3f3d1b35c32a77c29fa7bbd25b8f61966571ee25eee37bac33d6dee73ca3299fe6eb53f9bcb2de9fc3342a7b7f16d33df3fdb98d46697f595f9279b9b15177fe341b17f98ebf9f4aa814a292db5c0372ed7df6ad0159998faada973e7becafc74a1b767155885effd3d85695d0eb57b3c0d212b7dd49ae3aa117c7461a0636c52adff19f58ccca2b5e79cf10dff1c7647845fde7265f93dc772767b61f66de09516ae6df3644cac7b82a2faece13955c0d42eb111e6a8489532b2598f90db3c99fd9a060abd1c0cd3c6f929bd97aab3ca868ff8fcf7012d47f66fb8148b5aa6254f4c4871e54292844292c6e46ac0cf1a4b0b406b9ef37b54ce73849eb1217d8eea8700a59655ed7c6a9cbcbb551e04777fe6379b84c0f544f3a8aa64293c8a4c8edc1cb83df1f6be7c2df172f3ddbeba50bf55d6de1a3a579a4a017980753c04557b8888dbc07fb2cdbf8b16d7d07f2eed38ec7a7c4cdff5dc7c383c56cbd674fefebd38d5c9590abf371fd3f7cc725e5ad4a2a23c5ac3c0546d1a80a8fa02a2b82460ea7505885a7507f78e43dd7fb4330fcfed7065f84619cc8ea1b26ac68d78bbf3e06f85729065d126995c1815fe85f1579a17b03baab2215c55863aebfccca5b683f6f69d4168df2ba6168ff220de9aedfd262ee2a8831d43fcce3551b18cdf6f09e063c595948299edba3e9feae37ef93a944fc562f85b50df6f9d71874f48e3f6fa7eedeb6a9d30ce69bd2a82a1f958cf29ba2d02145efd4a70589f6571eea6fc5ed4260fd1ddd5fdee5e5ddf7de3d7af4e85e4dd49f3fbff77a777a0fab7ca7bf9f0233ebae9fb5eb4987e9af4fbb1f6e5cd41d4ba1fd6e90516ca6fa3e2f03ae34a64597bc4cba2a559f6e4fede84bd513d71df469aa4eba625255d2eda752a95455524fca39fb77b9250c35a0a701bd8cfaf3f6fcf01dffa3d282d99ae34a634abae4e938623ead9d98efb60790dfd99e09f08ebfe7a075bd9c8440fd2b0dad1d75dea92b06f5af25ca1ad08fe5e1ef39984feb2679a1a1cb6508336865158d0f1bb4d1ddd219ba5cd85863ddf9c954220aaf604b74e038e8be90a4d6f363bb959607bfb55dfc4253f8fca1052174f8d6fff44f6fd6eeaedc7ab79ad1dead5fd62eeea0fcd085ca4363a0fcfd949988b9bf5fe5aea4c989b298c11359c818e30427489192a1753ead27f6014bb204127230842e68b044169a163350a1832e9a6085104d202395d1fe29b320a2f2830ec8102345142ca801b66e6411860f5c8081e508405c3478ddf3524a992bbd87552a95aaa8f2d0fd4e4eef19fa8112b88861869820002155a22d7b7770336781ed1cc25c2fdc0883d2d0f5c20944a0278acd30ddffe99e975a2f5b63a0fbfc8e9ca80b74bfb336df4cddf14b6207288c0045163dd0600a95f4e28d1ea8fc94db49f2f5f2ad5fefb9b8e93bfcfc4cab89fa4aa552f990aa3aa8efa0a9da51cf42bd8b942ca84b6e46cbdce93d32c51f37b9bd4d4a99fca64631e59ffc3a1ac5bfdec3e407478c61638a2a82d841cae9ca0a16d4dfd4a8a627fad33fdddbec8ebfb4997a87dff4c43cd15d597182dad05d599142773067e4e110d87acfea8b2954c8e92e0fded4fe64060c80830372751ffefb0a6dc0cc7d78817d23d0dd7d397663d7d7d7d77f9d8899076ca61fa80500b0a0432727c70967851b934d0dcd9c91d132ec2a492bc2e7cdcb637f351d380e6ac5ffa779eba9c7b9dd1dfeed6d290f3151770f81e33357e57bd9efc96ddfb3b85f728f6efff6af77dcaa90f7f63b7cbcdc924785bc9ff0f7efe7f5f5fd7adaf7a7abf9d39f266266f2f6d1f8f0428b7fbf8415fe76f71efc0739d9ddfbd7dd7befdfbff73ef263a435d678bf8bb22cf956fc2aa5251bca33de2f57275d7eeba1fc6a3dbff57d3531fb6b46fdb34631e72f3794c5ccffd3567d52e8f11a98ff72d544f7678698fdfbdbc3c7521d380e2abff22fb30d987e6b97479d747f1715bfcadfeeb8faa87c6bb301331f954f8d3ce7df9f268acc6030e7f7ef0bf4c6dcebceb99fce020c25bc082174088f9c5646aeabd2b912228c0e21640821840c397ed25d0da0185522841046871042c83d77034ea14547ac8217336ac0252929498b8e38855724c384089f11d314ff6df13d86cc3ce104b24a25f9117e7c4b72db5d7ceb31eb02efe166fdd380ac1fcb11721b9f3c0da81f4ed3890a2e9820554e8a7c8c163ec60d1f430377e315c924bda25724b3e9637c8c5479a1011524a4305768aad24aa5828f9f7cfec71a507cb72ecb7adcc64dc6885d253884c687ffe318ccb8d680a4f5e2931c43c82dd312fb1a60c82bb10957ae5ce1455252d24a87f543141aa40009294cc71863fc7e0861e408e38c042085d80c3a26241925d5206909495796a0d1c83d55a98ba77aaaa4a4248c46cec72c0fffd9c476346534724dbaf32f0d0132182ce7693b1e0aa150e4c2e6bb8e87c787d63df2999f7155d23c569a365ccde944c3cda3c949297fb7f4f544e58ac2dd29bdfc1227b7fa429199c4a147a435fcf22e278d2b04297c2b8b18638c985b177848a315217ddce379c2e14fbf1a3ca4958ef8049fc949d6bf8fdb9391bb9bfb79b1ddaaa4bc5b7d94f9997bddc5879b0e7e6493649214d6d713abba737ed205ab2c56c96c7227bda4a428258b65cdaf3d66bec220f3b5001a9c14c6af4ee173bb6d8f0c557af8bb3dae87cfcb000af00bbe5db204e1f11e25146006b0147ec17fce9929c39d34ae9e78a8e422579bd60d83c6bf36a6a5ed6d075f89f74896c20cd87d41fe53989494d46397476d2abf36ad2c85fa07f11e36f21d7f29f7a89e68dd23ea8f651b5336c2fe745a8c8db0af92ae174435f88cdb30ae721d008a1b8542a006e4697c8cb38bb783500362f1b68ce42a5318b7cbdb2e2cc3f28b2ec8d8519fb9eb6c6eeecb9e06b9d3054ea7d28b5540f81246f832c25f1a238cac01815cf62084ab0179f4c5d7428fc6f89163f228e45e6c48a567b6510ff63b7cfd4bdfeb7ead01e92772e629f3951ebedc1ef1e197b687b4b094b62740f0a4e42600fe93d203f1a9ebafa16b8b9b0028875a72306231c2d2b6ab80e7e4652f9bb19d0ad872b6d866ae01595f25157a55cc0d5bccca56f3c1df0fb7369d7aab5f855ed4801edceaa4dccceda6c3c6c799b808d36156817df2bd476780ed8eca46d41f0392724eedab4ff615018b7dddd9e87bf9d5d4590eebeb89bef823430c7ebcc706dff16f81c2d7b8da02ad279a9db013bd4eb4b4aba749a0a9c51d591efe4c0430d45f75b24900f22294410623ba0120c2f8bd816da3604fff468fefe1f628c6d9d32ef0de3f6ede423d8373424dfb9be831ebe01931578754945fa260569e525b4521f4d1749707fcd568e8d4fa4e5d240ab9e64d4852f8bdc9ee7cca7a4aa2f073f01eeb21c757a87f159a3590d96423fa7e91686d23bee2298beb31bee3ffb898fcb58da8ff26d1da46329b4f484a499fd163c17ae908bfd24840d2d865c0f5e2fd3c9de4bff7b3bbd37b721b9a2a95aa871496f7ef2d23efe3f3c34d0712f3bd051fcbd121c47cbf147e7c0fb51f4bdf632f7bf0f9dfc67c24a3fcb69a3dee0c6e4c597b5c364da7ceb27f42881bb99ac3297b1eb723a78d9c5c5367f4fdfbd7a717c4ef6841aeebce5fb2a0db274feff4aec07fdb43c8b778da0c4d23f79647fc48646dbb5dfca7013d274fc899781b019b26f8bcc113e55f0d4807dc6a47d97af8ba830c7983dc6cebcdb9d8cb56bbc0a38fd380ac13aa6614fedc1eefe1c37fddf3dc3cc1af939ab8d37b0fcf5b5c95148399b59dbae3e9ceffc7ccbaf3e75f4d76e71794c9148bcb2df3b8b73c6085143e9b206ebb1dfca701c51797ba06e4d1f7d374323d13641803b97a53ac784b9800e94de1e24d795762d2bbf2aebc296f8a5cedc020e41a15330ae126b14c08ffa7e326b78b198d4ee4b6bb139fa4b189b422b420e48e6434d2d5623661b7182b0c121c09068e847e2b1c09a390f33193091fe3631cc991ac30b20af5c7b2fa8a68fcb7552091eef2a84d82acef540743e3ff747542853e28b33aa942dfafb6dd45ae3a9942dfbfad3a128ddf5be41ec799679588c6e7b8c1af4f45dfaff5d5c7d0e749f439d2c977fc1d8cf75cffb87ae41571c9e629bea4f14b5c9593c6975c9d277aaa4fe343ae3ead275a7745fd5da3a153176725f98ebf37e14d89f54da133c8f81af55ed12ba2afbb9555ac8648d8eea83cd41f035a69bd5f5fbbd2d7a7f0d7a7c35fefc91ebef41eec21578ff050ebe363d62657cbb4acffe96cfbdd818f6dbb3bb5a3f04f14fec5d513ad934e0abfc4d549eba43c142a99f4fd428eb93a84bee77f1a90a7ef7f3c426b5b1a2d8b3bc2436184f021878487be4ce41a10cc42aba82084d17a55544a907240cae043cd47d34b967c8f164cc72065e86280f9d5a25b79a8ecd0ad9d6a8a0d7b6425488416952a54683f5f254ec555ee32257295bf4cc8a9a658960664e5b3edc7c78a8f4f1799490de8bdd47c34f52f65174a3e9edd08bf5a5c65328055fc42b6619b952bcae4971b6f21b98a6f61153380b3d817fabf4c0e8306cba31fb24a02903ac75b96477f89055be2e3c294da84c664238acdf4f0a854aa1f52cb2f1b7543f967146a74f0efe8787c7eb25049f97f50a08646c1e7b761087f0e8d2a517e2552406194ade7e7a2264e58b0855a36a0d6470dc892b10114be8483c2cf1ad543e116142e0a86a700ea5582a0fead01f96e4ff76a406c442d7e557835a711120d2788b043df470de89dc1bf0224d07700fa9c40017d38886d3c57a954aa294cc080be7f2fb3693ae9f81d9d0b3c53d0f731348a81a0ef7d64f889c00f0a04d982beafa151fb057d6f030786b441dfe3d0a88bbecf6177c5c41bf4bd50a334fabe49a376d5c40ff4bd9346b9a0a2d2c39346b15064057dcf521ae5f43d1ba5600b7dcf4934ead1f7fc9ea9346aabac80bee7281ab55fe87bbed2a85d5169027dcf52346acba0ef394ba376a5821dd0f7aca5519b03fa76b58225e83ba26f3583908223d1fe961770c30a1ff4c046117078f16ede53a9542aa3549581bedfe569d47b9ff7de7b4f6ecfa6fc356a0053bca05dca81154bac5ab0440fa02c21842d9660821666d6d05d2d1185254c91e265ded05d4d7102698a9627c63ccfcbc293c69ca1bb0202a90d20a08081316d7ec8c64c19baab2094a0f5ab4c8cee2a8828689d1a108298a279be7b0208eaef024f1058f0bc226cbb074e6a6ab83e9fd6b9710afe4fd3b03fdc170dea4b86bbc3cc8a0efd9262d6f56243a3fc7f644b4468f29eebf4d867efbdf7decb1ef6b4f7de7b6f4a5725fe4ff3a6bdc7ae92b466dcded582f9fc4b44dc8f4abfc743fff5bef180a586fe8be3c11fb64708218c97f53f0d2184d08a57fb15c5ac3a68d8d49327f2e33f29fdf53bba7b39f8cefbd2a6c477decbedbde55566c7fdf41eef864630a2efb197313951fe57f41e6b3e34e63ceb22db23fd374cd468d894f5446c5826a801a6c888fb82c1ac0bc6060e34aabe21cf881b2611a3b44a7fc518638cf18aa588c518638c31c6181f8b7fc52fc597568cf1b212e39146551da146d59c264a628cf17572b6c7d301b63b6a4945e3638f661ce82e3261b9a3740f703073f7141aab60fcc4bc1efb93efc4182363b5554fccecdf93b13d3ebe13fde1cbb8158d5f7d78cb14303e554ef1b3d0c85768fcea432357a59c5e5c4af6627141b215b00ffaa4c6448346268346f642e36f6d158daf86eee267988ac6bfb8c886eee2bff8bec5bf5c302b7ba1f1e373188d3a6a54c5f9d2a8ba5f68fcf8eca551fcf16b68547ffcf7d27bdec78f8fb33d7644ce4849f55a7ab114abd3fbebdcd1dd8bf38969bd9456e97fbabd24ad08df5f2f8044dcef05d663d795d9dc43d3a1217ebf06e0fb63de8fbd06fcb3efc7b0f72d7b97d19100bfd761da74e9a63adb7418db7452d2fa9fbe4ad6bbf5bc0591be637d5bd64bcbb22ccec82635159876bdcc6b40be7c198e072c35689c0ebff69b92cf830e733a41641e039b9279ed65381e9c60d1c04c135663a4348e07f932cf03961ae4cb703afcd613a578b85ee6b5af41e6b5e7d738275898ab417b8b7382bdf64eb29779a2d4a63675fda630d6807a890e33307d8f814d59bf04287e101dbe361d7ef99bc241fabf4d87069997af0199971c0f586ab05e7b1e74f8af972ff31ad0bec4f160713acce9d070bd7c0d94defad25baf3dc4a13b6d93296deb3bd7e62eb36d4adb36756d9b2a6d9b925e65e630a43bff2a37cc4aa2d7ef0b66d90f6651097e43967a68d5ac268e63d64c5a312bbdc75598991233464b124d912898fd3feedb9145e22a4c7e61fbdfd6ef757777774368c9a78367f5c826bdee608c566f9267ae2c95aedeeaf4d1195d6859327b4ccc2a6953d9a86e8a716606dda559a3fc5907e5fafb85ee623fba0ba35b0abd27e71e3d3266954166a55276bde5814959da2f7977377cdd1b345d9774633657330ccb324d939199113eef19b6642a112d95ae1d58a665ee892e96652e00adcb54222ae1152f4b3ebf9a3119b631c2117d3f85331f6279bcafee51f685a765c29aae62fa03537ac2845cdd304647f47d7d1fbdd0f7ba98fd6174f72ccb8a96b4a4252dcb8216f7bc74f73ebea30bcbf4f7cf8bf7bcd4fb77d4a8a54f876965fade0343df7bf8f579a14fc6a328bc5edf5ddff5ef860d1b767773fb62f09d3c3e62cc7dc8c5dcaf5326cd27036c9fa7983a4b1f11f369a4cbe509165a3f9b22af983c4559d80b23caff4c336ce93094ff1233f7314884597b75f21effe7efd52bc2d4d180f3f0743450e2017e49fee3746a786fbdc53989ff9cb3015aef9c4e0dee04be3f518a2855e23adf1133ebe9599be44d59dba6e2b629b86dea6d9b72a02027e7623eadbdc29ee895a9f66ad6d91651b75bc17647b5b2d09e2adafc7b82e5d15f9deef3e647ec0bef0c13dda7d177e43bfd15f6b08cac2376a7bfad2a67d0b6980043639246357a5531eb3b3af29e78148fde513c7aae49a06398e5d1bf5a9088e43bfd3f1d91bc47b64fe5e94a5fbfba518d48ee4611c9dd2822953a1e237938372aea89dc11ed7e6e2aa67f8d47f5444b4f98351ed17efee2643e30dd1d75d7f168ea1031275d2e504882be2d47071293b7d0ea53c0b8d1f2682eb35a57687f7d4746b45547b4fb5f1793dfcaf2da62a2f4484878a130d0e52285228acdf8742783bbbbbb7b8ca5eb7aec8a57bce215a347df22e7f303051721dca06ff9bd081261fec83ecb1e7b8c73a27df644a99920de83713a35602ff3329c1399c79e28359f28c5ef45dba329ffdc82f80effccf6c377f84b62a6cc36b54d1a615e5866f5792cdbb0ed8798f5443989ee585a71a15bc2ac9df72c0e8c52d58d287b12d9b6296cdbd46a5deacdc7521d474c1a5afae5a2461874351f3454c73fbeab802c0e8c682775c73d66633a05093475aedde8cecb984f6b27d5d0e55234055a170ce5189ea7b4847951318fd07ec77e98788f6500fcf8af51d7c78f9ffd6c54e923e783f3c58c5f7da80cdccfb52d91afc3908a5ea57f1f1f6e4b84e6d38062a9f48ffa0b9529854e8f98a8cf4f24bafaf22a94dfd49d494777fc5cd45cc3ee86dd0e9fc4a494d27b738e9fb01429a24001120ac25456c16fd8c5066174b75486ee0d806006855ce5e19946682309313e45e660ee2a092968f5a22794bf3af5a21374a1fc2ea5fa14a7c259666595f748793497084dea4344d917f8abfc1286124ab0d1c6acb76aa2fd588cf159960f969a9c52f3d155f6d1f43d56ca5cfbd2f3e1f43df61ed47cecf2f07f1c8e1bd3b9da6f3de49a9f7427df351ffdf2fd49a3daa46a94e42e2c66655589c6871761f014d3faeb8af966d00fbbbb39b80949ca441a812f1f5bcddd8b96073fcb606e1223794fe97969f054895bdfe9ed3d84db7b6babce092535e96eff6d4a3637e8fe5a343ebc58a20aadacaa5ec4468d6255a376b5c414cacf4fba8753cc49507e2f6a547c7e4c7edc2ab7aa0ea968bf5b2f97c77bb831951b53ac795ba61231c5d8995a1bfc1fffe9b811512824c754a6429d53d2ddfeba94eea6f7700fbbc31f85f2333341f9a7f76c8a59e5465ed41d7fb4c1ac5e4419cb5caf22dbc60a1f4bf9dd995be7770d889d88ee79d9ebf1585584ed63d66f4c31cbb2fce373e4b8b72dce8a568cd647aec69fa1056a24fe72e4aaacf1b76634fa889cb71bc9eef1e4d246174af72587b901752fa83fa6017914338f708200d4ffd280fc48a55241e9ee96e105455054610611b46cd1a6aee9b6827677779734a036c2cb3f1143fdb3690412f5379d8cb0a0fe3afcbf51bb3a0208eabfa35139a8bfd480bcdb80148608e30c22bafcc0031b294856115c687f0f8c30f2a1fd9188091744a10a4a24a18b1a7051a3d11a039502440fc8f4356a7950c414d44e0e68ff9b5bca688de149aaca40858042fd7d50af5100a0fd52d0fe961108b23d98fafb300984b0461457242db1f241aa4a9a8bd618a8fff2346ab944e1b260a898feccaca3e7a59c6ea376450411b4850ce9e7349d746063cc120fb22b330601eb626a74575286a06d9938745752d6c8ac9819dd15113dd0d3098a9e4fd349c734c130b4cedf81e49fed42f73d6c4b73625e74574faad03ab3a329e9ae9ec0807acf4bf1778d5afa830418df81dbc9347f47e7c2222185dfda76ac4077058418f4d15d215144ebf37815ae423b8e319902417ee8603a69547f93eeb6c7fbfe9dedf9d15f11501740fb0cdafde891ee48b03cfa7f784f0978a7bff988338400c33ed07eacc9f2e8c729e9aedfb91cbaebfeb883eeeeaee2bdd2e8e26042badf59e432f9777be4efef16607b24c766706d50ffda835adcf64e6531d4bfc240fd2f1c4ca74b1ed58072581e63d460d584df5b7a4a77b0fbe34329e5a42d7dc7e1c65b78d59d116f4982b7a0f1c1a58d156fe9cec88893e0298d7aeacf3960acf116dec22de193d1f2f06f2dbda5b3741775306b67a1ee71081cac8106f52dd4bf3d071d77307f78bf97252f0827d19d339828aa4c9e52190cf58f5ecc2ded56b952d25ebd9649c0fc37f5de391efc9fffe374f62d33bf12efd159fe26dea3b3bf29dfd6991fc7f1f80eff0fe6a636f5b3cfcdd5793ad5a77557b5a37557dd0f0c6c7760294e8706f8f135c0bf1c0ffbfc91e3014b0dfb1c9f077ec8c1dfd4a9bbfeb8bdeff4c36d7da79ee8ecff20fcfd36788fcefb4d2d6fd277fa77732ef335ba5c8a86a0ced529e97269c3085a7968ff13fedd30dece05e6fda9de368571c64f4cf8f1b9f214f895ab04b11ebb56a0c3367d1c853eee81be5f38e87b24f9de7bb9618053eb3b3aa217fa1ebeefedbd6f61bebbf7570c665da41c1a55a59246551d4774344a0bf2c4fddf4befe97f2fab70fb975d0d2186eeaf0de663e9fbdd517f29c6192f796fbddb87f2de8fbf5f24fadefbf81ebee70deb8ebf1d1fdbad2aa1f05bb30053c8010579efc5079f8e23267c9eeef6f7e126793b11deb30ae67bffe7db7bacda9c6734f9ad1fe23d9c32f58ebf9245a21ee17b6b935e9d50c762d65d86cbfc49ddc411858f75916150de2f32eccab55805f37dfd1f393f1168d47bf818d480e27b4f89ab52724f21171f48c711f33d8f0fb5361d48448e9033b247bec276073731bfffed802976f6eeefaeb91a8476a33ae7addfe71b8f3681e6aa8e23e643ce880e4c9c5ab97e4bdb0fa57742942afdb595a0f45867bde9607d954180e054f6d9974adb0f3f38190a2fb3dd3cce568f509cc75c03bac991dda3c477e05f7ffd6b54f6d7e778ecaf4dfbebfa2ae9f56cc5f721f3913351ebb513bd9e88fef8b5e1bcdc98aef04abc8785d7e4b3b0e5d0b83a698ecfe1aaa4395e7b1d20322fdf870cb7dde5784944354e0748f6dafbc871f3337f71442b70466e5a0372c35522ea385b3d62c2b6fde90a94e80a379bccaf264313c4fcd2634b533477e585185a7a99c716f3ac1ea1d7675b35d12c7bec31ae4e7a5dd767d96ff7b0f0f27aec59d8b677b2fff16baba7af796d63c214e75b03d27405ce88cc979eb519e6977e3520325f7a09acf0396e3e27e2bc95739363850d0826f33340329cfc6cb31e678bffe3d6564f9ccd639dadb0951eeb4c66aba5df8188cafc0ad86a3e88a80ef63af2ad27a218a7137f8527a2da86c96c95a9cc675b3d42b35f61f3a1fdf57103a2657fbdb5f9c05e7bb901c95e7bd62420f33832db66a5373dce568724404475b2d701a23df63e346ebb93798cdbeeb427a219a703e4faec7d5c3292ab43b4f4339f71daf5334f442fae12d1d2fff40a1bd39b9bfff19b6dbe69ab11a0336fb3551be8ccd76cf5089df920def352f06d781a10cd725658f8d5ac147d8a056ec894c2c284e9bca193ebba83a52666dd24258d724e820a31e5d285ee17baab5512c5b0ebb54b53d21dfca80179f6327f6d5af6329af67c6dfddad6d976f9755dd7bbbb5077b04977f0317ebc2e73fd4fef143377050531d40074576fe480629d3d0d687607df0263625f27a7e03769943f7c278d5a0a2fae36a1d7fb66d14ce32a11d5de37deb255227a699c0e16b5acf74d7eb6c95fcd6223a801f9b6e451df74a492465d0f2f4e88698903920f5fa851d6437e42e1c7d5a90d30036ca50ee6ae5661984ebf4abf8fbd17278dfb907fb86334acd498f179984f2de93b55a60efcd2ef914a95d2815c10ecaf771f7c11a38b2ad55120c85becda4ebe03c67c6afd885c7fc13aef01b23bfe3e90feabcee1ea874c125e6c990566d12b8d29697ddd76bed3ed2c0f2f4077ea411d86ce73707464036c7758ffa8f53ad66f2ad389ff68d489bf29ecb5dfd1289dd22f95bfdf354a07ae0bddf3bef3de337d9853bb7c50dae4f688c8ac1e609ba977fae3367f309fd687dcaf4afdceb0d6e9a63121dd3426d3ed2b8df93a4adbc97bdab087f990ab3eb49f36830bb2ebae5f7675b218f39dab3e1d44626be8ae99b9025d863373eecfdd2f22782e2260e7d01dbef6e7eecf1d3a84eefddcdd9d6377f87cdd17ca2feff204219722e7afdf7b90217c9e82c95f82ab09c8f583527d388dc9ef8f5f1c83c9136666e67766f2e4078f0aac1fe397f5f2ee26e46f76a77f4fdbc35ed60b0df36565d07ac35efacbecc7fc6d7c2c88b2e2c2c6ea055f5653b8983a74575d5041f361e6a0bbea420c135d8491749a3ca73c9d4ecfc33ecce3737a9487b2b1066aa64772f7a9bba3e8807677779fc2a8c11639e80208ea37a0fe7fc2a1d921cce81d6c8f1a1441fd5f0b3287106300000807e0620bf5674103f249b3860f5b8cd1850d88e0c3e70c7182eda18383c0851007a0be4515d45f4703f2b949c9218306509081062ba0fe3966777777b7109e1662500f83fa9f648381c6941f5041258a1294e8165aa67d2085a085156a001c98842caa40bbbbbb7f050da8b5226e70d3650104ea6fd280fc14441a3630649102066c5183fad768407e1a81105a20593952255101c01c228cb7c4cbc19625c4a079c2acf20a351a80850bc8c0228e37c0152a9a00e5888b24b46081460a1833fd329ba6938edfd1b9708513b45f8687c9114cc8c284288ab27843c70a4184b11a19571041fbb3693ae9f81d9d0b3c3158a185f6673e2f508218585a3046063fe0a23313e58dc5105045196568b9e207564431401530a0fdd79c3078230a313f7882c4e58c9c53924aa50a428a0ab2591a02ed2c48b4c150b1d2a1a20c3366804519ab2a90a0fd3134ea946508da3edd39ba082c9606f4168c2ed43fd698885031fb4c2105c865d2106e8cc14451156aa0ca212303eddf7e9f0804e9ce9a9b1e03751968a1ae0319c4a1c94075a2d9217cd0d11d77185258098214550000162a64607902463b8c4aa502221503fdf11dfe2224c8c9dc24639ee80ba4a07d06ed6e180c413b89360ca4409b0ddaff4b3b0647a0cb8576cfd4110f344e539c0063d2c4a08a996d1184c9821722660eddd515236052b8128796659ae8ae5e00c5ca0b989872ca78500466884943775594e484283d685f44616247e70201e8ae84d0c2e3055b66c0eba1bee7ef3d43360c8f0f2e62c898758fb80c8105adc186466933f8268df1deb3ccc862658c27d54dbaa26a610a0b868aa1fdcf5aad02bcdd59d6d38515786c716ffdb3fcbd8f3f6d6def8161a34704acb3f8be317d5b3d2243671e67f07f0f3723feef6df09f26017e298fc8402157fd9930856f410d0846d85207f37bb5b4bbc05fc87dff3f71fe6237eed3f15ca0fb16677af163b5acf8d6b3112b72496e95b65b1774d0edd666701ab9af960d5b3eece253191f72a6ee2693793de18287e77f47e7c2efc87e68c28ba328befb1d9fa3071c2d7eb0363d945cf0248bef7ec7cfc78a8e40418b1140a0421c47f0727af2e5c919ff113ea22b5c9004106e5085082b53a41cc78a10a79295215ce0048a4377e50233687d1e8902cc5593bf9ae87cbc9065770fc287ea7ff0193eefc7ee03c6eda6edd1f2f7b3463537b35c1edd5298dbc1df7a84666fbadc0ebe6b40a010f5b7409e0379d49fdfb9b6d8a7c0765fc7c9343309bfba94dd399c52638479aacfef026d37989bfe75fafb1b61eedf9cf1e163719d50770d08b6f41e4ef5cfc7d3438cf19b337e817f888cdeb25f775713b3e30af47142903ad72ea0d8ccfba6f2ab6f537fa646fce1ff346f3bf805e7749c4c2f7292db37e9a4dca26a68d3d602db1d4e8618b08319ac5258fcdf3f0f4f141d10e183226e90832e9720d2d81e1b4c10822ae5037521bc2d9a98a24aed5137e4f24c30dfa3fc2d704118b46e920bba70ea8918d30c7f04ba93c17adfdb7bee0f1f8490c14c268f3ece08fcf7b0680554ae0e4aa87cff758f5c5542a511ffb8d5195f897cffb749ef4de8d186ef42cd35e1945461eaccd0fd1b5d2e4548a1fe4198759396bc46d5ac9a583a57e73c9dfebb8e87a7fa34d1c1fc15e87209220c9a45a8779264dd2496c252497764cc9702068d343ebc7822d384135d2e5254409b2e172254f408c3018cefdfcb759267e15308218c727b92ab1b5f843052fee75c44ff1e42e1ef569feee914377295fff1bfee36c9ffd396b54bde6b2eb0fdddb13309739f553dd38d69c4554df70b28baa07c01ee812e57796332c30c517daf03e4a28fd36186ee6f10280fad1b07fd711a22263fd36d05ecb3a6c3eb30a90a8c1ad3dbfc3e66da6cf09d7e9beeebe67f1afb69995f0d68e67fba04c49c2ff3d65f5ffa6b05337bde1edad3fc6a40f37f9a8130e7d37018578928f6bcd55df9ac97cee6ebc9f475aef034bfc266da7c4e3cb4fbaff91fe74de6b16dbead3e4d4d0d2714e9fcd67cccd7a18538e288834e9ac9fd74d72fb3f974d7af6d04581efdb20893a78646552148ad147dca8602ed009befff11a451fcfd3c8daa0488a16bd4f5fd2e340a7e3f017cb3d97c07fe369b8edee993a7316b53f66954c66d2696a1bbfe67cee706aff43cc6fc8f8fab0b8676658ab58a5560c61c2579415a8551ad8abcf01430abe7e5f5718aad9e32f3f5bc451d9c5abfe9d00257e55f7f713afcec4c05ea9163c2547242915a379c0e733e29197aa7993a0f7c2e2417c27c863a10d27e0a64a1fd4df849afa45ca1ed23a67218292bec48a552a95258760a9453a86a92a1512bd07ea646e9489a516e8bd6f5a244a688f29bb64dd96c9b922a9aa629c276c7536666e69771ebdf5fe7e9fd34bde7793baa0f7dbbea2230feddb1cbd5209587f632f35bdfed080fe5ef9f861a1001502eeace9d74c7d520f4fd2e91cc5683feb6233c4ec63487ed4f13a174807465da1c112d3d76fa425a27305e3e27350a0942281b03e22fdd1d61a72e10935203b292fddb7420f11e839696814d65271bcc7e3e821cc69a04d64ad1a7328eb57edeb88bff7473bcd262ae4e9bdcd649f7f8f88e7f652dd42b4be1c20e9642fde22a3fa1fe4d7ce43c7dc7537da8579f2dd487569f26ddb9132c334a31fb595b7ed3ec4cb4caa72a7566046c772c6b40bbbb8fb10fe6ae5a905443a3f683f08e46596fbd8ff596f53c8d7a6fc5772b066a3db6fbd6ee6ebb63fd8eb47eddfafee5613d7b99fc5618f7c1931faa50f8bf3d80f8c1f80e942739c677e03737068c747777778eb57437e6741a33c67b988add819f858a0b851007147e6d23ceb23c201050e018305728fcf8f0798c94733e83f11e2e02d3b5e32b5cb48bf1185e7619e95407a716c76396077cf8369841e1d4326b47618c5810b3abc838e0632e20402e80422e142e0e28dcd91dd82d8f2bf3bd0f69143c8203abdca0107e901a8ea4f7744e59b3bef31e226a744ce8283cd11dd2348c5195231a1f8b4a4cfe187bb2874640f0b1ce208410426f8e8bb42872ace42e773c86f0c9ecd3809c8b3298fe3f3e48a3e2ff8feee28c16d3df0705ba8b411ae55c85ef1ffdfb31df827417bfb71fddc59fb9c124a2cba948e30f0a344a036aedc752875506ca31b84079870eaed90fdf898f3dffae286bbc2b8a6d2ca5bbf83f3cae68e5221f1f1e9eda75ff27e7b8a8bbf83346cc1d7dd2d128fff8ef135da0b1c3cca0ab1624d1ac51fb721b15f9e852c1efeeeeeee67674c7562ea07ea8656053d7c5456e477710be0769147c1b1a051f3e07ba8630287c25500c85f0a7511cdf77a063efd1b03bf0c9a0100d0ad5a03072419607f4c22a27bc97724ece72a4bbf759d84b16ef29b23bef99b0e5f5e02587e5f1be07cc87f99e56ce22e59ca7d37fed68e52cf40dd91d7e24ca6f64c48e43a378762525093ab54cf8d31cc63a0186cd00317377b33b773b63c19626cadc550bc2a0ef9f6233389875c7e6a0bbcfdb3bbce707c88af53fede3e9e3ac147dcae29cdf7b3174175ff0a351fe3f14e89e4db91756b650ff21deb3294fd5fdf2a72fb3bf3e979d498411c6945d3031d3e2a28a59138326b0400d26849817dd5514465089228829a0884363c1b4e8aea018034512142a3018b6d87bfd4acdb2bbadedb15fdfdbe8f298efc50761f78bddd0c777b6fbcd19ee3d7fdba4effd78f0d51385ef21d710c6ba75c36e289999abdddd4f77d2e5dd79efbd7eef3dac24ad082f991c6860727bac5faeee4eba33d448e73bfb16e4ddfdc8cb632b746fefbcf7e8bdc8aff3b98e284131f91ffc85106e7db56bd8510dcbb2a2f55684ef09cbe2673d6159113e21ac08df13f059f009015f84ef092bc2f784258410d6139615e113c28af03de1cead3f8bc18dc9685f77b5ab5a99adf39d7eadbbfdc5c5b62d29a1a5a7a5f71e843df8793e9f3873ee96616e9747a403a824cb566b4341eb1c433432320084a00113150030381c120b86e30145d3761f14800e89a24e604e9788d328c761145308216300210400000000446a261503e6149e8dbbfc970f5424549f34d9cb91c88ebe71d40831991669cb2ed2f877c43d5b3f8d6e0997f7a3d8e874da3367d5749751d0777b90a571c0853ca7fdc9c1ff802e558ed8df6e906faf6a2d3eb1d8f8bd05ddacc328e8f2c47279be8658f3eded26cf18e971f36c003d6e1f0ffa27a082166e08b466406252377e8cdb1f5b1a8168d444a0af9025ef00fb77fae6b86e5c370155d80214fd72d0ced47b2f78fc2583c5bbda9965acdab7fd938dfd5907ff2c00d22be0570c689f6bec37d420d55ee7da69ab145b79b1807854355784b77f5c86e91e0ec1484beb5c106afa05248fe1f713eb5933a7290d0097a8004892ae2e0e683d9340552d704140608853533e576fcd33529468d6dd64a02057fd1c049adb3bababc4ac08af603504df344973f4fccc59b172ded80b4a4d68f4143bf6773c0ca920ba51a0f6dfc30852da848aac8615a6c42f3f4d409b2244efa7eb6de653eeed04c9ffbc658520be78cc77be5ed7a30222b762d7e7390d8aae00232e58c55aabd32322b3f8ee4af91afbfdaa54a3b2cb9e75a0caa99692b1e93ef0bf0bfbba28ca8bc345d7e8c50e36161ceab29f3c8c48b609960e410bc58478579c5fee76fbdd8c8a9f96388e26e1abb76dfa05be74711f1c08f79ae61a0066f173b344f5eb77d418f34332707375a9226feb6ec7e9deef6d5d301a6eb6a9dba687f9d3881b0db7363baca1e481342a3ee1d65676ab42baf7f264f5049350f772fde1da4f0d4075296edec24e78c6f60c3c8072ef768bdc751f3ba6f0fb8609763104f3157036e9f437fce8dc4ea6dd6d3ed026b391b56ecf955d5ba4f132b6955298a51c8cd97c77bc969db6a991c0e9591896b21f6727f264bb861ca63f88e3a4bcdec921f8e5b693af4501e2b35876da342fe01397e68ae31c2cb5368766479354f2acf627720dad3a3a93a6f8888ee7b916088d70378f1e94489f5e8ee5f3f94993ca0a833bb92995d974a51aaab9efb9ccf20429230a5ba6c4a5f578ef6c4f0d97a466b4f2f3d413dc83948ae352823afccf565dd51e05470bf30e71447f4b5e7e153f04477600735b9f438200fd8c2429ec6bb1f8cf0f3f116817d24a4df5355727fa757b5dd901f5a39acd1337a27ca657f889baa2c5b40fb20c6e13ae6c95f7b3a54209c37220f488b47cda925cb60d27545adb1be2aab6d538c9a4ef427685c82ffd744d00d3ee68e93827ba3b64139a2d1403f484607a6893c0bcdc8852933cdc363b71990cadb020cfc5381bd171513d51e07645032def933e4d684cf31eae60745347776fda3d2ecdc408b61ac7684f22fbcd34fc1bb6e33387f0e72ab33240bd7eabdccec6174401440fa3ec105cef98352432f27fd0bbc93e31c897306911e3ef8d014d54e220b892894a0fc83a342e605e338af43088eec70481f8d67c76f38a2ce6fd9adcd79b644184db4ea226a88b96edaba35a91021c8052ddf591eca9e67f68784bd4e34223a13ddcc36e023c83ee8e25174f970b558036fe283259846ec7f259105ef4ae7c48ceafb682d35c1dedc4751cd53471aefa3ac7a8a42b27789c4832aaaf63c97389fab6d6233700756b783aa559562373814abc7a9efff4a63a40a958a841a3bff8830eb1a3f8471c762cd56e3606f93da05b5398d80a9f80215ae4ec6a8e915233c67935cb05fa331b1b69b6b256f8fdec417ea3751caa5653e9415a138822d7c39df5302832bbc17f80c1168919614bda08267f3b579baee52fe4bea250a45114e243659925c29d17f3a6de709f6d4665366d4e207a96e762e452c0e70efcd62d8057fa9ef2743fe4e820a71cbd5a44c2ea939c9ca9afb77a838ed14727a37557fb5d2bec267ade9c1942fcd1594052da228a03debfd3cf6645b6e0c14d5006e41129cd8e64d99ba9215feafcca719e7e8cbecfcafb064c5f076096b1437716cec0f3e3991a33016978012cd465b8db812ab8338600f33998429e41a1881cbcf33d220f7c0e36288d4200326ee805e7fc040362e1f2d737ade64059dc8d163a084a064c32a796909c961b95845c5d2495fc444050ed901f0c8e086e99d609cf3b526efb030f5f742622a3cdaec616b8dccf381d850d92322362702176402a1f839ae0b204ccd8028f3c7e82a184877765a045bf4c500d3f0d027b5aa43ef08f34e1e2fe1eebff4d86c95bac02b68420c9a82f4dd95d03166e16661ebf487956aef2364bbfc1f8e890aa0ce6b20304f9080aa25d28c426487c751d72118648ac8131f5175d424fd083ae8d7fefdd343ec6bf61c234268986c75cd151fd6c6fc0b8389da1837f411468cbe40d09d7d1eda9d237c3ff4edbc70d64d1014c4b90fd84c643f3f54f58a960c9eb2c100fd828f9c423a7cd44622c5100485f5d36657d1ea94f4d545bbf8d4f5a8b9e94554d2537e7e17bfa6dc9b29a58cd3c247ce70f679ad94ddbd13224494fcfae3f47e5d1e5669b4466557a46486ece110d3ca1dc807c98bf950e41c4f66f6416f8530bf4d5c8cfc5ceea5d3fff2f62ea9409dac3941d75bc8658568ae2c85c370e93fe8466ce3600e5fab24203a092000b56ca3043cc1029a422f6c94e2b4a2bf7c947b77958834d145bb9dd4747bf133773e12a5ccc5779fbfa78059e62ddfb7aca83dc4857d69be216b26c8290d9b54641dd5bc95fc1eeac826c71544e1aee5acded203e9bf225e73883ea55a607b61ae2b6a346c667052c3534f5869bc6ad1235aed84c8f2a1c6b4795b3108eeea9af8aabe28bd0964b23071d05d6cfbb82567620330edb714b0acc595ec10bfbf66d3a1e6be9d19c9a61acf31fbcffae11db6de5727dc42f9806e336e4a86401d4942db9464f0422d2aa81b2dc9708ee5488649716f4f536be30fb3fa959d1cc2fcc10bed9d3b2728c98e773f46d168c7990e47007ee80f3f520ad4a023dd3c11a51c85d7ab6636e8b0369f5babb90b8568a6b962c9fdb13830b63048a0e319198e1785bdfe5f1a910ab507ffaad2123c4709d15a3b89dae0a44f54aee191f8d49c822bc6698b163d93ba038edff0c2bd6eb24034f9da26f67296ebfc9b595c88439dd09f19c6a0ed21add4f97f3bed901bee1b44221f474627048ac8e1703c77785301e70f0781427a7bce369126ba9fb675398d8fb4d3e3401d6a0dd9a82f301ce6e606acfcb31153b82aab60b8ad1586399302fd5b3dcdd1520d8b8665e43e520b73a866e3f1a492f7f1d5fc1bf338678985ee77c9998c28efd08639ba27695eea56f582feacf8414bb1282b34d6a64a74baa976a0198cfe1a4791c0696768a26e65166e5e167a35f37803298d94073e4d197c9043734d411bf8933d37bbf188f298724edb8564d62a8978b28b2757c1589a95e69f301a165a621c909c81117acf04cbaac90527d6ef1379ad2f5417f707f7febfeb1d6684867af15d18e53e39a947e317b9ce49957abdd2b23c38762ee80dcdb0cde20999dc5350342c47b92c6fc989b2438000d0b3848721f82877e0c160a0f5a631d1452dd706818055087d76dd464025274bcf9659127b07e9b663badc97a62a33661fab790909015f94d3b12d27cfa1f87ee1f02f8ec1626618593dca0c34e6515c38b1674f6193fee038e5db97d1631ae8ed6b504452b29c2a436a7f028a277a0ace42729713037c183e3de3baa08c2212639d8df733773b55d2f4ee745d9f185ed4861460eae33a1a975b6d44faa7d30baa4b8a974f5f1cbbdcbcf619e64c8c8ec2b4125d0a7c252b004c5b266438bc6c679c54aef7dc11e1ecb29e7e0283674efcad06a99e6d834af36ee9ebefa5e582f0b4c0099501da02a2e39379d08c5263bc2b39306eb08b2b647352a494716671f9960a98a35fe85f61d78d963618e0a974d6757ac82a0169bcdaa3c359705a5dbd511553bf44d94a95c36f565dbbfe37392199e8d9010759fe2bdb44588d961f2fa24844fced231c0b38ce212c6dd88358d76aa5e7ef5c53e1475fda176d391895bb3c57959acff90753ab1064e6016f516e4fe6c53185aa3141e208975152d0591965227c0878e2c1049a74b8cd41297acac54398160a98d9de53ade3e5ee6ed5a43ecf449ed35e1c251cfb53d1b5670d2b545da6083f34baea4bf99eab86f8aa3b71d5f73dc4ef9af5cc4635501f28f976e267d5afb5306ba41e43012550dc22880c7f8672bf0abd807b6fab444d3b8baf8ac0a4235e3d50f39adedc486c395d143bbfe237030272ef1c9c7a8c755d9ae6b90a97a4e4e416cfb06861a9c6fe4f2a208126e622f24f246150b8b10ed5d587d4d9469154a0c7f6fc88b6378f06535f97143a59646b226edf8f97ece5ad2dfaae83ad0ebcabc0f3b20c3b1537f004046ee6eb8c9a325e4bc05c495dfb9c65a8613ebeed7dd76d9e5f9d07f151c0ad92abc7c7f638711cf86c90a265edddf79caf00f690334cf2740dd4dbba57d28b2189efee7d2c0b05dd50b72c9569ae0c9bacf80faa5c1e037a0fdd5ec35926e4253caac206f81e0484cfd0152e56c9ca3f6b13f05c5ca3b55b4fbe2c4af7baf03829e4c74f59ff9cca2a5fb5d8f094d4c7f113345feb958c33606f9aadc96e51704fb4ff9aec5a7087939a208c305f9d25087ee349cb6bfce8f438ef8f21102382b2a56cfe92e8e787e5923555b02b70225a17ea84623baab3b33dfd4b633e27ed2831d94ea3fca9e743b3c8549964f96e10c3b5db432885e161c9f0fad6355424282c0ca8705185067a0c0443f9705c400822033ae9f88f2d7bc575dfa56d5b80271c13b39be9820a7b012e86cc13ab032ec288d8bf507b63c3c699f2a540ec7c6c86494313703f928c348e719f4e4b36de02a04d261f932a2a14a79467965d4a97c3b2f31bd9ddbc520de223a0d76fd65b9a7471aa8b3e0b58ce33bbf71001a63996bd62ececc3831739b45b3145fbc3779d1967b13d5d6e72cf654b248c98f025578a4a8d4e5432cdfba06f513d03ee81ffa87dea1bbe85ca3b361581b87ec1eea20ae1d37bcc227454208b145913b84300ae06ae83b33b22a969e064cb188d679f62f5e99a80fe83a2391f0876729175e971b62d570ee1aeb426a7f3522624c21212964e61df5a2dc1652e438093b62f2e62323ab428baa5e649214d5ecf9f1d40ad34f503d6c312d4573bb4bfb088310e34ffe9b68920ea709f3ec5028751922480eef2a628d8faf31a2cbe34747aea1011d773131b6c3a276e534fb4167248e05a009fa9e55dbdf7e38554dd2f55374b1ce15f74b1016615534e0ac071debd51c4bdd4363af5d66a649eccd0c5dcb81bba463513da63383d0318f758c6e39ee2e0209dc02985ebe75627d2df779705cdaae7a9fdc116e5b1a3e7785bff8d057961e823be7107a8637bb6bbbf648f63be9d7717e0aca827ab41e895547fb78fa45004ed043b458ec3d651c2373771f54cadca6d8204c45f11ca7165c1eb498de67d823a928b99f3b13e5c80de0948e88f67d1f4aa2c1ce5e613f1ffc98007cb73e3f76a763fe76277a50f8313c0a72c035a88e459a51f92ee1e535a5020432d8baae0e868ecf8b47c7e1fd9e335a9457fd5c9f9a2e2629d591f09306d8310dd46f0c37f05df0825a8cc36d77a4dc837e3263bc92094b6bfabad0948edd576f275f592430cc8d438222ebea3aff6572e32ecc5d4e8f45746c62955e85fc44a37011d755ba6214567522ee28a383780a6e60f8d0e8c6b1ff3b855578ace1ceac3bfd7c9808140741fe0d7141f74a1bf76922116d72cc03f92e9558d125f8256c2669f65820f32d63ffdf716e0a7f3377046f39a476089408dce642bcf821257f5a5d0c04bf42283695b53c2442b055d4a862fdb8e90b6d00a39d4e3f088685fa318e18e616ba3362855600632fa7146eebf59683ee5d70a09ae1ccc116e7720046d79437d4132a2a0b706bac9cf6b440a7f3656ec059b9ccc27283c0b37047573356b726b6f3448bd81f65a9d7745d1573846c7c0fe0de9506d78b2094694a045b658ec90fdb90a6cdab3ff3db9e2672acbbf7600e7d8c7f90509107a8e2946da22af1ddc822c6aad746cb241bbe83be8420d9b6b0fceec17b099edce6b9e0a5a7aee4867e0e50cd424400b5d274380b2a987a40861d7f57b0df69c278af0e846e7d7196017888772b14f3e9ed3bd227d396f1248c7b3f8a896895896b7bba54862b616e2cf3772272eee9f40d315857035f03ce08ff77cc880c8e51391ae047cd9c2dd86e7bc81e54fca9be6ee8214673f88f51e2a82a4da1c1983655e9473549904ebb08682d032e906d5cac11620c3079559e2c799a3d2070673f79ee1274897829f4431fd0859db5913990f09808b2ce4dd63005e884767cb2f3430243baa3f143691b543f0348005cab4c037a0c732d1a0d18652d2eb2885577e219152b6e82c438fd891db25ed5567c17d82394339f98050746dd3d166e6956bb0ad68479ab90a123d9b585e546010ce073fdcba34f6eb7af8ec7d77fec19817c1d4ae64959df0a0ed1ee4cf2f3bc6fd1778a8a5ea0a7dfecd6db59c845bbe1acb02ef9a1f1dace54741d27f05f0555e54fb84601b24407093a1e50ad314b13015e4048d8b6745044c5134b4b0706b0ba3a09b256c7ccb1caa9a5ab8cd2832f1d06e30d735f5e73274b26556b2378a4a0b4336a6c962d35717a7599900975cc90cc1c377ea0aa7ad94607e5a945cbb8c7de4c51a4b6cac061ac65d4993e6ff2b75036cd41452bef2cb7bfa289989b004d67c98cd71d57932da498db90349a0012acd6c258a5f7c58fbd3f90396b3b3fbadd34a2bc1e2bb775a3ea0a2d035bdce3878468130251f4150a4065884081f3337d80a7562d6aed72ccc387fe792058e598160c55d7e9325b8876f8821d3f5867961efa46e77d29baa91bf986d497478d641d0796934adfbc628544812c2c8505414815c1315e9889e0b9194022160d1eeabf66720bc64e506d45419235eacd74f1d10829f5fb00bf34a605acfd25cd9ca84d0f4f77ec44e3495deec91949c62198de3ad3fa3897d3b15c8edb69764a0ec58645c43f1b8bc4aec96d8d0ba737d12e964f394886de4383df1948e5a6dfcf49bce5329044604739a17649436e4203b377768f786c92920f43215e4c2967c2243eaf32c3cf18f50f0e91ff758fb331a135a325938dfe6342d592a4e0f97bbfe72754ee87c0904dc7fe294d884252b9211ac546dd5382e38992d2df09720b446a0c9f6d7a4c400934683417248dd0d0770236c5acc29035ab6af8604030d288b4f51d7c2d893d42475811cfccb805d783813e0ca3e573600b23f75018036de227d1190a6ae1c41465c7d311560e41b5cd5baf8cb2215277a3ea6660bfa841db5cfc113a225eedc5b990b6a65bc7432c646861fcb1cfd05421506b60d929fc27c944ca61acfa5b0c166ff4184c41af2e5b05dc3ac6cf4ca08870c443edb8679f427187d6533a14a251c7c0b5eeca3db6e69ff100a21449cf39485f09aa477c2c635028ce10a196c5d1f1ae94645fb183f05e8e8fc881d02ca5414b41e12d444c969c651094815facbd508054f6ed442759136b6e2f8063563574241f8d71f66f056ebb0de5e4d820407043ac76a41302853dea8659eceae07543c36844f11812e97da62165ad3538b7a8e2256f545962e3a249610127c1b128da2ad166b3e491b5485d871a96cbcef1fa41c11a0eaa173e7c0da87ac8d9b8e3e2f3d38aaa479231cbd50e0047dc53673ffd730c61159dd4d99280bc91d99cb562565582d3e2cac5a731ad9d904aafa07dbcecde48c2c37c34ec8260a4f3610539c312eb36989e850c2c966b200749d6ec2284d5f654cb2f6c225f2c3558d8c23e10c0f533280a8b60fe8ee44a01605ccc2a472ad94fb881d4e37a39cb902bee62b87e96d73df5e25afab5954db531604805bfc5eeaa0dc8f35db74c08bb7c77dfd8034520d709719d1cd569794fc54fa352f863dd10367c7ef1f100d5431b5321c8f1925096d28b3a37b6fc382f41e646bcbaa7c4355cfef8241db18a95b39aad8e7e575fbb5971ca2a5ed0c0c3d9397e2795eccfd1489e62669d25a9c3e2a45bf4c4c496c85f2b2294a33902aba7c2f61a811693585c66c47c7f766c3810a2931dcc28d94a0d098072cd36135a02f6153919a3c9db7a807a23362151c64eefd7685b4f5c05380288e7b740548e4b859ba6f543b7fabd92a04a424502d03fa17175697629b9a8160ff4b111a571c8f095ea5d4b1bd06d33234ea31bdbe6153e278fc524f5fe82cdf865f612bf12be0146bcf12373c9a15aa49628ae93eb850e533b00953251db60ed8ef2c375cfb4390cd7f459c27662453ab9d10ba62a0074a971d6a74bf02e3e6040ee718093e8d48fc530abd08bb2e893999766766b5bb9722db97b83234eb2005d9d7ae4f06650d40e7384acc9b4285a1959841645a97a14fa2c4a0feaa01ef10fb0627cbe4bcbaf119f232a2161b30634411236484f99f21a8607e797d3fb41985e769be018f3a163c0b5f7129be85867409dd25f3ea7bcc4ffb21ae39e9525bd363e5b88ef9067e11833c77949dc7e6035595b71be61597b5b4123f18f03749fa1e7bf75e9226e38d114c26c83e9a52d0fb6b235021a09db77a0f293b8deaaf6437e5b70468893231dbd88357ac12484ce78bfc52c775cd0b4317947349927e775acec08aae07a8e38d4c486525d713a67a8b7ad47ad7de645d5038a49f3312736874274c5279e851346266a4e25d3a9014e99be56e2edc262a7536f3ccede58e9a8ab74279e6c4113a94e2075931b79a06e0f8c9bc40f3437ce9ecc7287063433a1fc139b99b68535c3834cd5f375e14daa7c544322e7866b19966079db0fcacd000b773971ae68bf98689ac43284ea8574ba6c3fe7d2011d4533332acdf26c2e0793a66a800e0132dd318ebe0046748916f802e30b1b776594c95ed5d09214d789054cf497c641504238707934cb30abbf80c4ea437395a67676e501cd362c4030429ff908e84aaf452d7bc85b2a2d06e00df317c60a79d807fe411c0c4c2f37fef398a52798327b50499195f48712cfa4176b6504ea4ea6ce0c78bbf0d0595f4d2c0e4428aa9832dd7b9199da76e259eb9a89ab2765576ea4f47ed215708fd5cad31863e7d59725a3771a2daed06dc9c2e315e5d1718990f68618facb08007e6d39e41fde56d1fa5b7fbfc81e392cd5d5f6baaacde80bea792a93e6ae12c00e9448dd1450b3258780021c7356177a23bcee966004469858f44c89b1d75712065004cc81149193a6236a006697c849dd938c43f37f740ef3375ce652c8725d4714992318e208c363a7083ba1996de30f6892921244ebef08836a3aaea5e6732f12cb7d2511fd76daa7f7d4169c60802802c28f54700d2f12c4435615cae44a2360a953ffb0a0431973e4609c2359d6e84e7eab43acd67bd3343cc58e244c4fca2ea1a4b4cfa6f87cb1103ab664a40298e7506f08527a94ddca095ecec4275008a97f933be18b4c6cbae635f175e21ef68afc145278062c8069178e03827afa79fd5c9c73391d064134f6b8b65cb8d7fa5eaaf8d586fdbe689978e17b06796ed6e1886b21a279c00988b794182e993813f0a449ca04801e232aabd4e5fb324ea9015b8eeb2c2dfea7ad4c4a68482a0e30e85c6a4411b32ab06d9c4f4ebf66056b54bcab494572a128fb9dc682e109a2a711e1c8b747a32af8551b5e24beac7609029ad617d34aa7c0d55b6ab81a0dc6b749257f256952ad50ea14d87b1f2d9a95db856d8abd342d6be6b023f7d8c14d3208edefb3c891dbd32fb547072954e973f18910cdfc2fc6b1393eff7da7c0f59ea5a6d221edf0b66a1140c50e652db48c8c8a08272569f9b9afa5bba6a062c01adc0f91e01605faf782e53268c4124b10a2218e3ed75453d0a5aa8b7ff87fc052ed03a038a69d8502385d89dbb1b580860e0e6f8ee2d0ac7d71c2c17051328debe30b0f8ad78fe3326c8ae37ecbf809b8a05e8b80c0dcd5185c5c26752a9dd3c2385c9d110688c2f183a551490bb11d62855f7607235dcf3371bf69fc0014559f4d40a09b7fb4becd9bad24e8e503b2067c178a09048253f4b372a92a369fe94a53c1cbd620e1c999d8e52629b00bb503e446b5601bf8cf12eb717e727cc7b8a5abf2440d361492c24f35a71c8204e14c01dd970762d9873c1855eabf302703787132a13d7462bd4f50ce8d631d8ccf47ac26a20e8114231e94a67f8df196c5b6b8dcbb918e37f88c77a6ff987876958f21cd514bc41c286213449d91aea61e07732610cf773424bf613e87d32d3e1b7bdab899bd7db6e5def96edde97f9f04ab1b50c86644a7452669170f917bc56834e6f84eb2dfcadbfa5bdfa9996eb709e60851527d7ea1a7359f1239b70bc3081af601c5eb1cc9c93a16b6274cec4b31f3e400186dae18c32e14ed5b92427cbadf5b0f4822be6d4349a45a10c545b693c56e640a8879493565af48a1b39e43aa4beca607da0ded1967ea154f0404d6408e043b2c46fc3149c1b3ec8e54eacce2cc3ecccd5d9151716ab7e63d0ed0551b4ebba4a123fed4adf6c81e065fef06c67b2e2f01947ee66c6755dbe239a00fe073d3ad62b70f447baabbe1952a5543ffdc621df182a216c8430c18eef930c23b5d091146e8e3b2537a23c64fccfc7169b1ce5914df2f56116465087d194d6fcaae587897c7bf4b6f4d3ec888120d7c8421b88d6efea1061324be6422a4da51cd7b56328be5c6f8e13feeb449440f95ae58f0968c8f4b3e219960c9011ad43b86c96451a46c74988abdc8b85866ea7d8ac9906f251653381c02ab65100ee3a6f07cc301604d3f272221c76c4a7eb2851ffdc780f6ea275e96912271efd8ec71caf1eecd9494cfdb83b7525ee3488e857750b08b1ca93f135522f474a18ee9ed936f9879cf4e72e1982bde91aee56829bee40168021ffddabc4c3ee61372f852a8951906c807ce68c837fd8d49741b161320ae3d0d532e68b2b279a932b3ff1271ef74be40ab16392db523a7c116f4d83c4f760cb198445800d46b0c7d001226a5985470c34bd0336f82316cd08c89c04058e372f56555dfc94a8e24074b02804b0d2dff681cc8d0bedfabfdd4320cebfdccbf2f6cad753057a0de83c97c008f8ecb774faf9f94b156b827a31937499fd9eae4a933dd1d3f3c61b19162952204607021baf0d0cac3f9577c5b24aa57712893a802c0c737acece6c557f2a784ca2d27fed1444ca2771e846338a55497c346b09a583bbeb855141e08db6b420b864cc5b628d9976f366d1001c426059fa8ebe158422828267d50f97fab560849b8f02bff4c81869787a4aeec5ca3ba9531c4d2e9489174e3d30729fd0f1cba81f5ba624df2e59a5e2b8c8d1cbe3812040cca154645b6323b56ecd5da902bd1f7ac03a570ba98b649f50d04eca97042d385a8ddb5d0b58857d92c4774f503947ab5496489048ad7055fb1522c684660dd0595a0fd55940e0834f763a6057d83924ed8e82e38df68699da1d0c9c0e28249c7cdc6ff4be68acf8e0e4f5ce884aca124669211d0075216ab4735b68d9004037b2abdfab06d0afdd616e5418c8298444ea0981eed625d76f864339d52e86f7d7f08c2967439dc1a3b36877ab5aa79a0e2b51ded782353e89dcc0a9777212fda5318b25317c33d3245d8d882813f6d8204b61c102082c188f4c922f142bd368bd070801388d50e896a8eba3106bc059ce32bc6e623e75d42e718b3e1f1ab6dc77382589c6ceb99275a3810a06d5bddbfc1f0e3c549f81fb2955b1266a00016e55da0b5dd12973d3b3b24a03b3a7504d014898f36aee22a38183a11b5fa932bba18183888735f5d71c8025010a0175910484c343b0184832edb319db65853d940ecd7e01a529d208be0bcd67807c7d15be8d666f18a5e2e57089d0d050ff7b27a756af413673e5d12e7d9b42e994947bbd04b839be513566f40954f9d02edac8157ac82b7f4a38c8f83bf5c213b582cdb2da4d965123b2a808fa9b737f8c51da56743d0b95b64caa589c0716b2c3dab28163f01ca7bfb37201bb69f75a4287019b3a91708f23912e519d17027e506b0561edd657084c030014ce3327085e0b39da0c2bc0a4961962aa134f85e1a09e054ab119e15a3626d7504e212a7b62ab9a86845e12384ac11f1dabc1262e702068fa76c14d08467ed3d00eb1be3e867219e14c507249e49719e0ba39fbb65ee68ef0195b741442a8f8b7519734cebe9b12f66769158728ccfec85c05fcc0572522c54d22330db63d8938ccd3c382f641a4bdd278de508d1172b918a36f761c61c9f516eecb7561073a23351fc618a72bb8143900a353927db00ae2f9bbb834e77cd23bb22c07c0e69cba33a8f45d5ed8099bd7ff8e4d16c737ce172a06a319ddb838286441600ace410be7dca2142dddd246ce678c8c9561006c97cd939b135a88b01b0581a8c525e0d6389423399250c708c248ad709d490c308708987d2c5f4be7fc93e9582530b7282ce9528213500be35af7497298a573596b293d80456447b810b304d7f048ae82514fb43231378cdb6113cce73be57b06d2b60a8d931c4ac0071c56ba89e505504fa41242e00df4ecc32fdf24d90616ad806111f7425e48215a9fb55c7d10920dcbbe3e831f6ee7ff8f157b0184e92be9e44ef991dbcf13aa591e6009a926012696fe42793641a17e44a902476f081825f7c2201632e9598f6cfcb15afb69c9c146a1d2dbe304985201323c7d956a0623cd6c0c1cceaf97a8a29256290bb0a6f7cf7aebbd3643b801ca3012da6a86d0cc709b6239470ca9986f8d8ad02a490113269117b71e519d06bb4f86395252634300ee89fcb017c70d5ae335a2bb5b73b08fb0320f33046bd07a0da355d7b811d9b7f888122d435099cee3fb416ecd78f03aae9f94232d7ee1c216f8469713137a560a8cb478b6ede66135e71387477f7081251ffe566d43c7fdd10086e9f613e1d6dab42f8ef6c45b4ca1fa4671346906f316121165fd48cdd9dc187a2b50c36871ae804b553cbee6ce91d7256acab2ab8a0fefd28b43c3377d7e2ffbbdb9c526281a4d5230b8ea1547cc004857653d08d2a12a56fa9f971c86aa60679ffa1152ad7f048683c609a0265d9cdeb2ac840c16becdfbf05a3e183eb41d5c7c24143c891c22e46b1c3d1a9223a4e6c6b04669505f4af9dc6c282284087257ec7071d40175cd389c75e5876bb34d777297a5a8a03155a5d1fe6b81a1048a0462fc8c9ec5868008c1ce092d228e06b6c0f88f8f6be12a0e70910f67ff12bff028a5b17d02580c566c7cbceb5ecda21eb1ac6900a72b65854c1503493366bc1046a61c0e7e4550fa639e3d36520ca28d3f22c60d284147889f83cb83bea001e69902be1e027265645c51e3f25a99e71abdce4d9bf3bb52df028a20115d01d7dace60f4cc6dd1030963937cf7b1d88ed2f0afda9da605785634d738b5deaf551bd0f20b046c17961bac0fefb41632972c80a8b2b2f2901fd47bd0c367320189ea6b307578ccdfb6e5ac947b29c455381e9ce3b19db4fd1ee5754bdebeb70b6d68ab8f67ec14db89f7acbe2ba38e1be0cddd4df7ca0d40219c992aab4b0419fbf57f4d1bf3079bf1681bae4fec5d965078e445a6c42ab20b5d3a94dc92f7e7944d80a1390497f4a3ce679b39041f2e0aaf4661678ab722bf9ab2c6c12fbb04cdc26e3307a19d7b435f9f3e5f3c8838006789ac092fa9c845b35278693b959f28aaba51a387c49dd91a93c34a105f1108b7f7966e07f73d8eaeb0f2480ba0011a6057f858776f544222d5628292099d391d766b7a1a65caac2db2f8e47d5434f22983fdf4b7413a0ee31acd291f89df1a27866b174796ee5f4fd6a4f6c35420d302390053e921551af0072f7d5da704689f84ceca0c4e627bf682de89bb873d8595c9211784e7970d0996658f7d42222a03a19857cd71a6f2e3e3ed894ac5c276b5a27436fcf669edf11ec93dc5a2e4ba584114758d6039f6540d1bf1a9d79c8b28475da488d8bf8fc142538added1949eff553b98fbb8cbcc828aa7dde1113b502a819cae3cf9b911e093fc5b9faf2e1d3d0c166c49443f901347925a68a7fa26a56c5c23084fb023cd257f2deb8c4d6c7b0e4b233a79da70b14941ed108a643f5e74112152c260eb18a384446207b0a0b36338c68ad9f4e86c088d5afb4951c76a24834b23e7a52d05066b1be4bc9a784ddec39447f37bda87c66d183552fd2309f9dfe3a41ecb0bb733c4a0e1aa400cda2d59c192af91b9a3722cc610ea5b13c3ed7990a225e010fd3748c389123768ea3f2e1745ca3af9d6fdafd996b86747139778bb45cf02b6f30ef9035f5ec2053032583ffff784fe761eb00255725c64ec2a72ecd2403ae4ffab60bd7ae2e1bd0a8a73f5eb7114b35fcf5d69f9bf7b918bd748782944f8d3f7354306d3a92cb8ce132161b09e8c07e4f31087ba39b05ae5f0987001d0149bb438bd6283c19c0ff0e5a1ae05100f165ce9c50b586d354254e6ef38fa26d2d6782fdb792892d1eda7e60900aabc634ef2bdcc3e6734b3327bdbe7a26b198cee4240617d578a6e0505832d13430a7faf6f15a7284ed00107a51c16c144b77fe288c8b20ebd110f048319b7df3e5eff1415dfde11c4d767af6f72f90a5458e0a9e9b1fc8757e58fb73531592ca04eb4db47e94aebcabb8ac392efe77dda9d13d407b37db1bf2c29370955c11ed444cf12f81e3ab5de6f1d7415bec9b43370597e9c75fadedba044a8b33d62715a6cd175e73a5d889b68ad6899ccb37ed733edf1e43e9610af2acd0248f67bc72dc560a54835c3e88f40602fb5ea490b04935299f64406ad0437dae2ae610b4025b01d5d91d5b9e28b8824380318ac39df589260bf5434e642c85f76f7998133eea6cabbc44b08257f9901b19bbabb3cb6eda831410b59c5aa5e1975dae9c334c8033b2c18b3a94978d0d83eb0118b123124e13680b6f72b7bd1af3651bf47de5ab4c70b292f1b5084a138967910f8d2aca0911e9b28a2bc589d53eef6b4674dc7ee7f06df28668b29c52147cff61ae094ed804ed667c1ff0c9a2b44d7fc8e747e5bc8b12fdad165d91aa85e85662460bceffa02944859aef0cac0a2a157a1ba518ba81be77e0eb953c80980186335962ddeb5b65a08491ef82d1af4d27726d1851d09f64c211f765ccd8c75da14492896ad708d85878bc29cdd112525f919d7b9d2202277069c47c276625b2ea7670abfe885b12a76dc61d063aeb0900731efdca90090510b62e973782f949fe5c06ee20e0e0cabe310d5a3f3027215fe9507cc746b86cb0ff71688b7e101124339ffb6b823729ba1b5657d7c79c9d000d7675b8a1d1fe9e4cb073d24562b0187c4e1fab51bb714f408480b9439c6a7fedecceeaf8549031957e6ef2da794e7d0007a7a64c49419adbb27ed3b9834c567a20afb308b383f9687f38aa92303c1c01a9a16238019b7a6992da13e1becff98d7cf29011c6c926d7a226e583cfd4bbd4ef733e79b617833b3a5dace41a1c2759fb1f5da516fcee9d76ebaca6a62ff84b52779423f045a9b1764b5af49b36e9c09847222084bd96500ec185550b9fa5795f56df9abd45355184010b19116aaa82a31322cea63f4d77a093de023dfe60fc4f491e944a29b251c8b1b39e4eda599a26a2bf85ee9426d6c1857d9faadbfa7718cb6395af33d9a796a3f3ec25d35934f1b2166676897659187e1f3103dba345b7ea647e7c2708288a1160d320ee2c35e313ebf101475575d4aadd19e05267878ad5908a8e5b47f23ef5743bab2538373a61cb0cdde3c0165ee3e839a490e6de3270eb6122bac0472cad0cae49a6568244c3cf26a5629909d401945bed905627ea201d4df6f854507a9e6956281ea4dec6a0c92d1796c8457b5b939ab46cd99e661df33018c6f233e4f7e0b48ddbe56f3363b0459ad7ab050cc68ec762e7bcc6727508b2181d093b65a24f649ce8d1272a6983acc044045ec8425050d315f1f47c835eea3e7f2e40b452da4a1b52ddb21c4ef70d724c33899f562102b6257bed5ffa81f3c4d297467115c0ec805d11a2ca87656320ecf111b99dc0c37b084132982ce1f9f395d802cab2b201efcba5bb6a3bc76e5918da1fff360bfba2511bb667f36928245b30729bcd1aec9d3a35609cb35736d8af2bf4179f548119f107f4562cab82c7cd16fdce85693808952f805712b094758b9c577503d648c26c46f8eabc46e13fd3c6ef27bc84776771329043ababa56afeda512807610f7152aaaebb3dd032b870416b16e1e55a45c4f91814f64a242e2007472b0b606f6306bcde633343694834b3de3ef78043990fd8be6a101c4eb391bf79e186a99137f4d3a43076870fce2fe9772d55646e04a734382ba3bcddb357421ad127a2b8a2dc6746c394442492bc45956bb1b91bddc238d14ef6fd7bdd9bf8804628832295001bd888b231967f1b4d1df70a95549247ac7efe7c62239707e701f29b2169a6366a2e576a417279eb68c55b97ce502336cd7c9de80b68ad0ba52ba1555f31c798a378b74853ee0965a922900cdffa86dc8260972a3f0b7e76ef76e536374f6d49f9b8b9ec02d4373f3197e3ee3a780cde84525ea270460b7aabbd78c0d2e771e1b517ae52f2444908345410a6fda993a98bef0d1224faf07204c0ddaa2a58dbea0bdc7f39342d9e74793a12dca790cf528aa3fd757985a4090a101c1e98bef1a79bb573827036947e3662cb98c7725a0ce2b13768ac1370746f7ed9cdc5ab517f6cd8e70050c3a0af37a43941e0f1a0096b35dc8f6ddf7fd229e20a19609c2195a8ce75c42172b141be033be6719d876c03201b555e1a3974a095319bc22bdd7e9e4569a12e9da216c61c5d0a62c23dd1cbf63928cc919a5cb7e1176c2be91a2d24544daa863f633d07d340bc0b9524d000069c933adb489b07e650bdc7d14f265919d512c3ea0b1d25321165f275278f51d4dba9d43096ca2350afe61f6f34689ccb7898ef472792e22177ff8daed65ace0d237e2a588342e29d3521f0af08d5c9aa4a91aa4beb8b30aebfe4eebf98295969d5c2f25cf6c4123acd5479e875fa9341713009718713934a47c3b5f27a432f706917ca527adfaa728edceeaddf9710fa408ade4c9ea9ad0ac5024c79a9c5a2161b8fc9c563006b191d75cb5fc827988cf23d1b5ea1f0162195bb6510aa3b4d18397e086c1a1b4d88ea99178ec74e6979e88a208fecdcb5f0e5afc41f44658881600981bd82a8ae3e5b0ffaea6a0ac54105e55ae7365a816acef240f4139da8bed6b6a0f247bc41754adc46397d4c9cf45e0b04ebf3bed2b9dbb4e8507a9c64e6e21b2acc29da8c6d49ae80ad68842fb999a4685bcac28d93872e7e6b5c430a92648d44b50ab7d93528b4a01a0c62c7618d7a5860294c4d0d2fc9a46c726e7d13f5aa18520f5238df143005ea31ff83b38593def263a859c9409394b8d9f5c022d91c4adb00cdfdaeeb1970909cc134e2b4730ecbc5f39385003fce64aac60b7a0f0d36ae0a61e040441005af99c8deb4709e85e61a2bf539c2cbf66451ef80664ac1fbe0580fc2b3333a6371875d40331e8072b0dae41b03cef144057f40165d2530301064b70b5006fdd596d355f5b398b94f08e09dd64f4263a33ae6f0539b64d58ce93464d23bddf710093fbcb667973888c5011d5e5fa0c7b7ae78bf076ab2726f7422b2b2e1ba7ebef454126b5b8056872b4140de2cc3f70767ce0ca92b8686f66233f2517d2106c651d003b21ea095056f244840135554257215ecae035892ec5d69c48ff565e00dc32fa1e27884e458d643887aed7df07739774a27a2730a164522d95ba69a817288625f57d9908e8d72beb68f2e6a3639789f9b918bfdf258b5a8c7a8b2280a77f48c7aa88f2ee3051a9f705e79baf85062044b428b7613362afa130d187289f3ca03e0eb357e497ad92cd6302b7409c47668858545d595d1e79b55f3d5b2ceeba1e5caca8e07308c1f95a3d966e1798e83f5f881fbabfededf8a661cd48308714ff71f2350fe717eebdb7a47f2eaf253ba62e0aa92558cb37e2a7acb439eead73692a09e5ef8ff6d04ea4de14479fc25fced0c895c110df778c6627dd2a37fd919542abc168a714524c490acc170a72d237c9da03ca11fe775a867b52c6ad3d19a6c4a9cef63ed89628f5e99b118059ae1b6bfb494dabf8d6a285947d073095dda2eed0f8669967a0374fbd8822f4342eb0501f40bf56f852f42f7c6091a2e8f7b51532cee40a2717495c10015833d3eb93428e0c6a85c9283162e0f83860404a9f667f4ff0414ad949e9b809c998d7e567faee70f5fee9e0e56dee5e66e3abeaebefb496d8510662ff3f60a94e5ae09062d15d6c58419933f32cff5e3e6729d6fc9bd18daa54e856260cddebf186314b214795543ee58fb28695613a1786603aa8e6033742a73557c2be98390aa8404e68bafa543448b3be0cfc09aa94854bb0383f96c19704dab1b460e175d98a33110b00a871b37ad88f8ed59f7b45fc0f8bce57e572e2c26e882e6578ba4398fa075c7d7ca536e15af2bf9b92d40c95a6ff80546d6aafc91ad1b191abc8ce198c93714982ece2624f70d4f1bc41baadb1774baa263e328fb430fa7dc219489e95b10f9eca1702c5c430fc4e4453cd91b24bc1209d36de1dbe366836101a77e3f34ce0163a0d9d2238f2c7b2af45431195ced99313bd43d19ff79bd9799c9243fa60f09c1a084049d04f60e8265930c078ba575fad74047f78603725a05c053d39c908727fea98700565c0365b78fa4d3b4660cd0c3c06c20a19b199390b0e7e2886841e00025b0575d297245d659926233b6d5ef2628f132565b995c0b11a92159d8ca163a98608191927501e8a50aa7d4c19f835046ee218eb744371df7bc36464c5b28a7dd16f5c42c68d0f2917bdc1519444d1e9186eb7719aaf2f8a421bb960393812922530bd344c721a0c82aefe793f3f38448e23451b5b18aa969ad2085661004669ef02b0fc50d34af389d6dff5d0739cfe45457dcd8cc2e2d2ba51c14b488d855d29b681a20b6e687e8ac3730428cbaa83693577d278d9e4c91e8d9dd2ef39b0ce339b1ee8e7f2df70f95f6a5416fd2da0ef54c5624953c912face1ebca8a949dd73be41b0e9aee84ef1510b6f278c212a03afbf97176d66ac7b84dc713b27d6ffe38502f212d391667da1403acf6b43d531877e496e901abb46678eaa76de55b0cd6414500dfe241e9bf4d2659cb4a296dbcc9e031992a6036405e1e1396940c9ca58daf0563198f0aab2bff64611bae20fe29d5690ea5df3942fad395da8ac23d05202f84eca6ed85426ee6285f589fe35d6c8a80ee553ee16db9e71e7faa13bee844564122b497e58f5269ebcea003320995fdeb4a860f5b4b2727be5d0be2b7aadcd1d5c44909374136a49c9dd18f7fbc3efffde31aa7051cf135734acfa110dbebc66e073fa83143bc5e3e56d009fa79f25b1239e1e6f23e03cfd298f1de2b16fc869dd2bcac43f224d8147538e218ed064acdf442b8fc09676f16fd1fe23d2ca7b3139bcc6698d61c478d61cbe44fe5792baadcd78d007e486acf7701461b96c7be31fb73c862925772be84a4c32acd6c5193f39d16a88500bd42b2b71abc9270da511da329240c9033efbef9d207b2b3b4f90cd301452b03740d02060450c16cb8535020dfd6b0155d90719ef377d950a9dc2857480b106c4a59c595f467ec02dd6265c257ffb879e0e6ecf401f1b9098ce044bb59a15adb4cfacc2cb3589f55057543aff5ebd0a2e5d83b1bd9fe0a872b398d8e8b60744ee4ee6be712570ecced8d33973e0fe1bdb6fb69fbccdb14bc6d168cf3b533cbdd614480f06e897468d970a6d9850b848a46e626cd9f39b9e6a6deccf8479bf6cf909039445ea50844360b14855f465154e3cdf1d5599e3c399134bd421c273aee0b8d12448988e58285f1d4f2f820c22fcce3efd2cd390236ece0b2acdc3d76d6687462cfe9d8a0fb0f735577cb4d08fae9cd3804a5038b3926384cc28493810b9eb4651ba901146c97222de8201af0d102a0837a50728d2c9d97a873418a13f8668c36a871c43e5206639fb011b434a3412540b40892f4805d52138ae5fce51c36d3bbc25b78478e865db925d4d4853693750f5fe043540c2eb8b4e36a072e9c5f1a18738e7f9a0b6cf57f622c4438a101c33a2909b1b4f4792a0ff20f98d08bbc690cf61d2f310bdf7ac63c038f5d4d115264cbe81140464585f4a7e253ef2eccb19cd20d740f949aa42cfed6014942afe2b40125dfba169543ca9c60a39a6179ae28b2b6491e4a7735f8ba4c02590bde7940932f5b620c388b1bd706531fdcc1c38bddb209fc00d70a8a1701f1422bc21eaa66a20b593a5da46ba9da73d019b4adc0a41792d551acaca9be34b4a984540f015937283bce7a86933b918d5fa2e38a25f36445a180452bd89a11e86aee9384add03839e2255f47b92feb0567242ebf9f4e25243d1fa1685f0543ff0c0bc8215e63d62f45e4583a095daa0a207f386bc446c4e6488706023149cc5cdd72752c04a453568c2a90a6ea5ec2cedcf18600640d8ecba8e4d5cd37ab9df43da15e124889105edd7aa9fac14677c39382584a234d7c980c405468037ecf4b6860291320eb752b7dac91f0d21e8d0f9c06a3516e64867a8e3877cf91ebef21d583a1db9fc7f1e5f3f2a3403148f5cbc2725ad249b400812d471e175faa51a8b10581f6ad89bc0a2ffa80be724f6568637f54939d771bac434baf4b8b9dff110f76ce33b111a2682d65cfa4a86283f04476f9c63a8c0e0793982353a4a33bb8da8d69961df233b4338f84fcde0e0fc54271c93965b18fbf6019cf52d588516c4d71de9021a12cee1b57ef396e17d66f608d8d9994e461e2cb52b4bf4ace32d3be711b24d5a10cdd61b6e3b5371f5cd57f3c3e24523621b1a8ba4481aae5f1455ea52b9f13dad2d00ea84813446c2c34f08a87c6d85f708f792ec44a755e130baadcd767adc5e201214fd67f8b1c511b76487ff191e9aea0e4e651e823c01ff6ee23a0484d060c030432847c564e56726577c796a96091e7ee72f8bce034eaed73088e52d52a89239f85c2b1653961df53b043ea1309dcf39f6981275e28c3a8e44a4239b2e858a113a107701d62b015a0e35bd46cceacd6d4e531f0d59417656420401bfdc0ef389cd693f65164ebbebe44f89e2631cef38104a50282e45e3827eaf45848f45e095e3882afe2577078625acaab320e8b3a24a21143661f5c41f38293a5641f871d2f35d529fa6b5a898dba20bc8e1fdca11fb5c64516493bfa57a0a129f440ea5f2ae06224d5e90dd1d2772e1e8774bd37f0b9de9c631b05ed05de79a7c5f99c955e10323e498b4271c6a58cdaec3b1da5498f541c74a5e47bb3ff5159447dd5436702e1cb1992c1555929f9ee49ae24695d1e5377dba3a48ec249fe2aef48e9253a7e51a11d47a477a43e322c5382fe031e2b7af886120a45b0cb2266a6146e9c2ba64c4f0b7e66faeb36f7628ac3b03d26d06a2a0b64d3fd7aa0af754195a07d601a9d738546c5765a5982c3316dea9f0f800562d25588220e0a89781b064cf6f1fe9f88edddeee50093487c97ee201a2c2d26f497bf791fc3485d8cfc6d411085280002393b7c244e60747da0e25c063d3222e96f8d4b994a8c8a232fb9abad837944fca29c9778029f06cda34540ec823020b93492aa806daf453617bcd81149698e5125d7769ae0388030cf0e17a57cf29c5b38faf5f51ca12343a889a6aaab756444cb438c1d7a003400872fc8806fc0d9ad3a9fdd813d073d3e620b2c1e91d180c50c382be8e459f483859124e1572ccb804b0057b208bd7f443b491846d08045205b2ba6b6d0966e72890fbb53b336c716abfd4fa921d2d8a22df958b2230ecb85cb2ffe8cd5720589b3cdc3ef9d6025ac275e7d80d1dbf62f5141d9d868c1c7c2ca23c1f88a5959b729f86f48f72746c7cd84b18b5c31f07cf118079e8f20216ab42bab8247404fc92e46d7d4ff02d6c65ecabf87d9bdc9e8483bebc21387b23ec47dc13d067241f803a20f1c0f48909f23234f154f211f4ec977a08b7ab09ca2c1414264c749061c56600e3ac4fb46ff614bef698640a03cd4ecb6445df8deea902a8f729bc298acf6e5b8a5fe4126753e0b10f5a8f1af8c06012f65b1c0935bc3133e92bade360737e97112b897007cae9e828071cccdfac20583bc6a7cbcb4991dfa771b52289aeadcbfa219ccc682b3022dc2cf4a46799b1205e02321f431bdfb0c2de72c03c7d47f14a40c5bba5bd30e3b934cfdb0dc2cc577013b1b01781c7b75e947d47e837623b72d565c6badc5f130e13b252514be5b30cd1db89c839da1386246940d48ae5fcca5bd6e12830a2953dd34ba6727a5e3b4c30c45a95af537260d1b18f9d4398090a5acadb5990d9ae1893e5d670d9eb1ac28953557a498f8b6f6b999f14cf494f64122c55e6c3bf5a48838b89efd3af2f1a06783d3703f6490a3a15a3ffa22c8c6ccc26d4d83bf9a99d272a8ba123627a46d1ec9153264a1a90747693ce36285ee5e6856fee328ff67c4183af00da04522d60b72e38f44f892132404b5c68da1064c1c5e747fa1cb1a1bd6fe8064d1aa3a696c17cb073bf9c69a095e3768551a1359951959fb788443a81fbf5acd215ab535ca853ae34d51ee5be733cc6b1b6595c967fe95767eeae634a18f928716dfd7982dbc85fed6f6b7509077d07b727806b2c0c0b5425381fa67c211f6d210f9c08e9d060b2532acbf8f4295be64be59595c0b7ab3fa117b80d46d3207764ccb9203d5d0899868a168112899bbe761ccf5c5e7017ceea0823fddbed4c992aff7a77ce3cbccb9fe3376e2bcddf1d91cae8c3b15e04b74886047a524bf3fc16fbabe9a264f4049e4cb842c32b1fb92293ef60395962e620e0d788043927c08b9be616e816b42cf51baa33754f1f744af38bf7311c1673afc632221efb15fa39fa5a83a40f221f385b8ac3044ff75586a9f715de42554b67ae7c3b8cfc88c4a6be459cc04896f11482f00935ad56094e5faa28f355a3608e2948a136d9e42dbb212188ed07a212e3ad8ddfad0f72b23113a6043ef9f973c6a17444261a094742e49b14bfe79a69db695684f62b06fa2bf41fc19202f416c3e36d6fac0e00a6d44cc0a0626529236f049abf9c4c806e52ecf199043d4d8cd0dbec676339ed9ef0179acf0a84de3cc6692d35f20832efc5cec3da6ac93a92b48ccf38764b7c5c22474de80e14a9a38458c865de1f50924986e2c328a5fd63445a9e14aa7083888dde2d2f596d61295d23e65df00da2c731cd66b509b974773302c3d6393e0163f770614213538eb9ff721dafc503137afae29c1f3a7206c8835840f5df68886273d2c1fb18e875bae650bbcde3797f988151a3f7991808f22f0f6940231d4c80fb049cfd3e0c64108e5521c134c8fa6d53144b287ea38352f943a4c014d628fd4a00e921364383a968003e76981c287e54e9dc0030afd700928ef112b84bbbe73673108d4560cea4027ef486b3d67cbb1703a507ec26c51e50db01146b819e3386818f317d4e3f84f065238bb7e92e4000b33c333e84b0e3629c8a94274d44bf74df480860ff8058f6e0044acb641ed83d7e382de9ba56802790126285403c4a428b9245138227b634eb43428a78157de8466c9ac8e8fcada95fade16dbad39c6585e1a4b8080b44631988f3b101af992e9b4678a7f709630b2599552ce9ab9897f6e2e331ebc82bb97f09f48a5f76c25c78c1cbedc2780bb410bcdba20bf6ccdd0426162113193e0799b41b96b564eca64b279405aa04af6d6722321bdac7b4a6f523cd773cc999b855c06ce083bba2e625390669188bc42c36f42179bd2025b98eaf6c7749af6f2cc777ec9bb8e5bcd7bc44a4d140042f19905a6c6fa204d28ec17c73b512cae365ff13ee525f11b680c56d2ee93dd908941ce88fb0b2060a2a871a592cd78a49ddbf5c282021e3ee2b82a70a23fc10052e14ddf1ca1c80f053599696cf81839e5e881e41c860dc19068ec173118fd10da68d894ec0cba9f8099f529410e2971740fef5fd5e341cffeb6e91b25c5c9776bdf8fcbfdc4f0e29f4016b548b42a2862dd6578cb7da936168d3d83a0bfbfad27e099842b1426deb86687c614b88b0177d522146a1a71705da3a8165592764ca49c73a4a673f7dd981ee8ff4ec4729dd4df3c4b3bd55b32ac7c71a92806c1b2a7985829c7961dafb8c006679466819d42c0c00752c15be2f7561dfaf5f9dc95779380a2b660ba23ddd18705fdc11a74ef6d07b77ed85db1d338fe6a4ea11d50c1c0f38be46667b9decd2b089aeb21755f6d83da4605ec34ea5590412d783850098b1078c01015dce4eba5e9192567be7a1c3e690a50e8d71cd006aa144ff30fd730127fdfd4b7b1650ad4ba610aa508722475e00c0bb90d9079684fcf01cc279f79b3cbbb7cab396fd73e0f3b45908853712c309817734306ccef21f36ff566f07d28393439dfff2227e0392b5659b865476beafad0521aece737bc1ec7c101e04aef3c6795ff56949d08b737ae65be47c9776a1ded3ea7a4abdfd874bd69405f032be20052a0a70da627bb5c2924eb1e9544781026986670d9e6b2fc700876bf2bb394f40cff87872fb1de0be7d480c08ba1716559f051cc1d3f3e5d42b7728d6f6799308b6e926bf82646929bcaa4d65a407ae20cd1ba4347dafdce93d452461392d6fb9095d4f6f6552c5e51d735ba311268c9ec417700e8a58328c25c97160496eec48b70d3236c1c5908e73b1d53b2b562f7d98eb9c1a6969a6b63a108f83942e2de29b009458c1b30f0b2c12dc2dbd2b886dde613600070d5cf67668e345521e288aa335d20a5a8e92244d761e8760e18ddd19a2816648c43203ffe4ab063f8932577d2621a1461f9815942961991a49fd31d3a63863238ad74a98ad0671d9e39d0b50a4bbf3b5f82f7e406a00167270b3b79c57dc758720ad2513e8cac8d6e5ce6820fec36bead0fdd6e68fc2550013525fa2a51f8235239758831425d5245a0a7831c178d40195587e75ff200f1d775d2eee286f7cbb7be30a023c15a6a6a4a8c50d0f2e38b14d7b2d7bdc926bddae777896f8ce061905515b96c43929f9987d536bfd780e3932090919388470fd8f4200f95741b44b7e8fe149171b532169c4869ca91c7baf382c0f91cbbef5cd6ad12ea6917c2dcd553361a3066ac9effc97fbb7d8b4721e0c71184b754fe0cdc186412c634eefe49cc44bf7de32851a667acfb25988537ddf6eb6fbdbab5f45e36c3c591a385ca2e3770909025ddf1471678a6605bd47dff9f237ff4f2f4a253815cbcfb4bea0c44af4943c9a32ecf1ce29c538fe7b7d548d8265e7c9fbef574fbb4e92c29db4019ac0da711e6686d4a69861649eb343108c2d964b5bf2dd3d2ea8ab10089511405a0fb82d00516b870bbe9cb6129e79589ea28d08fafb88059738f07182aad75fbc39a3e451a160a9861109f3313a4ecc43cafd7f415cd4c116d2684374708c7e0c4cd9e0180a8a83433b5db39fce872e193526b7b5ddef322409284d47c0b5b2aa508fa6f51396a68af29e8d83452b0313b699741100f84931a91f644c3c848b50c9b7e571ab96574fda4b74d4c5bac7c7959cf9e0ea9be395224ffda8bcf5f43f6232dceceb21a8425f0addc436bdd44a1342f9aa5811a5dad2b7a3a4c91e933d0ef1f781078572a5e59431ea00c9c2700a9a539be3ae1a56e734cd110f5de0f9e07515e4448605bceb90b48035e27e98582683ea1abc270bc46738374e7ff5502460dd822530c75267b3ce992ba7fcfc27c056ee3607dcc000aa46f86c7a4f029058c19df57882e0229176ea8a5161adbe7a8dda8c7350a5069736f786055fc069d784ddbc05e81c9e1223bd09f7a617306b50fa1c8ec57697b88d17ad63ab781ce45dabbc2a237470a3e758f1d9f661418a2e533844c879113268fd2a7d193ca32e86acf2b8ab3f51b508a6ff4849f2da61e4a5a5338f54a789e6624128e351161bc4aa6421853fa279e0f2e433804f1164bda6b60faf04627aa62492202bcad81e272c1fd17292c1eb607780ef67831463345c8d93ff9dfef5ca859698c29696ea2042ce9d44661b493405956d0a55d45974b31dd3d481a2593a5f25051d8e3e33cbf4783cddc1a5ff24dfef5ccbe8a29f336199854274b39e1fd27bf7fbaa277fdfd42d5dfeb67393d96b98f8fd6c82bf42dac1369d0d9e0dccca5005fdfd64e979793e4108e365967e411035f8ec2c411c0f33ac858dcda55ad7096efcffa8c8e6bf65e1e2c8adc8282d2ebb1088ced7818b8a6b4e92a502ba25a5e60cdf44abc8c8d1fe3dc40b991e479112e72529e953f10af9fdb771ddcf2253eab10d63850013da414da3425a6c344ccfacb64a3e8ff9eb65ab5a8bb4f1b5a50d430340a27e1b9123f4ed347d34d114d2a6498dd7bbcb6c01f5cc829c360e860f59b02cf957136dc87c1db7ca4d81213a9fc6dc98269dfae951dfdda989f00a3622a50473f51032540ee0cf3f6f685e4e1c9b83ba64847978fc033889e8ce14b47ad2023ffae16285ba83a0913b09ec9aad79bce61cff469bd268d49a976c0664b24b41408b82d4fac1b56b409e1c8191e032610939cec987fee3cb3aae3eb3cb0c8e722cc4940a1e3957e3d2c2cc4e49809f78f0e0b735ea140dd913d2cb8eaa73b7a542c19be8992420b4932b9d50f01aed09c7d56613729b6ef9cf0ad7c138aab3fa934a2c6855483b8fe81fc3fd17e911510383e11bf6e74409fe4eccfff59989c43ffa626b58a517fbc6132e58744feb912a4a93c32a06d809e22411c1f40ad98f3d7d902778a9af2823f7b11858b094590b957527a38e53e2058120ac91de996afc18b5e31d37149d3c51da80fa32d84d21186027f2bc8a9c74f191eab99b114eabc63f40ca71f383bd9e01c2c622fb1979b583bb2d16603840dd096812cc05d493e9a541491332e59c8f90d55916577bf440ee8e4d61518c011a201441758a9d647b39d479632d2680ba30119bc8875dfc11787760fba78921e68a22e6c74140f425decdd369da1e429b7e0b4017a1bc0b26080066ac7b611c9a5d154019443451965a934c50ea629215dba15b896a7ef27422a7306ee473eedbd75504a06ea77c54a534927d17259d20ad46008658d73958df49cf296f849301bc5dbeae4825d004f6887a4a056f6953ac5c842ee23ac395f84ffd6bd2dbe03a361693c0c9a4813d5cdc836a3046339ba6633367fc65c6d1e93393d665e9602d68dbf2a1c9c2a343b1d9e2bafc6386db8110f0feed0d43c9902a4a5022d8c4d8b828b6aef916f94adaa1c0665031adc0c802c01b2620485521d438116f657295785181e415092739af7a43fc9151166fc8240b75f2efe0ebd063c09dcc2d4bf3c639caeb96c589c13643be88fa580660ca7ef20a6203d96c4687be1b9bcdfcb5d954fcc968d738b2b3fbf81a935b73e85d4cb14379b474f99094ed30c0933249b8f2b52a44d42524686439f5d7ce28b31adc114d4a460034e9ed60d3d3b5b1623ee41b272bb45a7c43c54fa0ac3a476efa4ee2f438484de3cc264a6c7a5f9a83c47cc95cbce862e5bc58ff250782bd383d9a7f94252e33c2c98b6728c2fa3f6cebff45fcb7d01efc7afc150b6f24466337c333e22490c24249a57ad79fb1543e381454229748313a6402365688fdd26f8d02e79e476afa0bd9035242c1f5b56e2dd04fa991cc7ddc1e22c7c230c30e6eefdb922ea00f0b4bc5305b362377038467453bd818be0383fe38f0b17ed2e9662a81be6ee1262cc8206e0c52181d1c7466ea9509f93c360f9d57a08aacff2b41bf421102476fd096962dbcdebcd40426a293ed53afe85b1626087012330305b41cb120d2623998f41257d438c7e081a98afe3822e122457fee60602bf142fe25355f1ec8fb1c07a4076245c227ae43e8e071c72d662c1c846f10501de2e3e2c431e81f6c88e0c8c476ff4b274e08ee7e967ebd90828b2d89edb1596a04a9498e1bc1bf5291ee734d7f3b0345f41471a843eee3137a1ac143fe3abb9f301ef0aba8da7e00ec8fd615042a9fc0981031f87d1434b811330ae5a383b0d3c8421f71621d7eff4d81d61b8d68cbb4e42f77ab2d25b0284e4704a1d60723847779fd0563bac018f6ca16f1aafaf296db07c966a04f31d291eb54de17193b827deaff1f06807928b4f1aeb3e35234cff9d40f2847c20b3ce97cb38c3e03d8cc44d801ecabbce29fb1d6c13a92c956958aa884422e3e6250d7dda7faae9d7e0818a9765ddf3357ca5475a0940ee0255898efeac3a3d414d59a40b56110eae369beafd3339011efd43f9820e803892518c28e3a72eaf7663f44a0f15a1280cbe71111784aa49fbafbbb3b15978283b88341f1e1dce7de6a55bd557cbc9ac1f9eaaa468c7d7a904bfcbcef5712e0c4fd9982638153965f6b27bb2c68b84ec27447258d627a52cf46151fdd597b34b6f0f2a8b7067d43f9860325070f0ffb4660a373d2d631242c105f92224c1750b8256da702f1248c289fca0812582c35b75e1150464f60fe2511d052225202ec10e4d0184a6ee7229865ea29c96397d3983806a264b8a88853163d63fb5c4ea257e51da3059653e363d8fe13372dc985949322b872eda643c8475c9bc14355f4749941d9d5b89ff55685da5a324d83a9b19420974084a8a7c7e091d6ff233e9d8387c797bf65936599c102931b07bd5123e39a63baabc6145fb058d49594b3abb1b872bf4952a9e89e0dfe2cd3a03d04229407693a1ea05d358ce66c29ed7e651040e7288cae9cea58b9a8850df5291199adb98fb0bdc1170187d2fcf07f876763c57f6d3497f30030de2ee1b30de2f60e2f029140e97c37e8fab812fa2185c18d35640d9f55103ecaf0ecf96383109ee39508b6de96cb6080d86d1cc842d37542b3e6b603a042d716307b6718855da201822657421c7878fcda64de4e084db27b054ce7020a9e767d56409c0da5394d7eea3e5c336024a61795c9b90ead04b212f5ded0a5a219b6970c22487180c271f38eeccaff0a7666ef3cdc12225900b7063d99e3ba35f827e9e14284497223fc01fbadb5b62de9468d7423ad9b90901d5e0748071308d9e921cd916da7d7391adbcdf09ed30bff095de429fdb19ece67e82217d11eea80401ded2e1876b4ebae4879b34b0a14e259f8baec8a7c54a9ef3c6edb9c1b84145ac7b2a7c0278fddf54976cdba1e6537574c297c89756d52722d7b89859e579f36040f770e698ec62bf2497acd4e3b270ecd4e6a55ea29d5eae955ea754da97d636047b74db3dbf5cf3ff597a3f4aa68f45647a33a4aa70bc50eed7cc76aa736d36ce369b38772a176da09adcaf6ed3a47035ee7686cdb8c18a439aa76b30bd6a68d3d9aa756b3f9611221ea3befccd74baf1d5e45bbd5d1a087b73a1af32ed85108af9251ec4e071f96f22990850776728a25252da38f137be0cfb7c718b7bb1e69f766edd953e08561df7efb79fd93d82fed9776aa6df1631dceeacd2ef85db70e07173fe33bef5524be133f2f8ac3ea3c9ede3c22e91053e43174d1e3cda0bb7aedf5f47ac47468af371f51710848f0075c30f67a6a73cd126fd825f97c653bf6cfc5be61b13e565b7fd98cdd3d02a16faf7602f5f4d3e3abf578ae3daa235e92cfe32bc9e7d835b95d92cf0dc26192ec2bd73fcfae7f7eddcf8d3dc28ebd7e3b16b15335f494d66cd6eeb9254f54edea08bdde95d0b7bb22f28ad968b3765b220edd2872778a0af15e3fd11c22d78ddc1688e7e9ebcda21b419dd3cee3ec3c7e76a2f6fa59ad5663dd2276edb5134f3b1487f518b51bef76337d0bc495c6186f6e814cb0f2d11c17c65eadf5cde61e784be9a93df609bd76d92832ae4960d479b4da3bf663f30c203c37bb60cfeb8da2cee79dcfe93ff7f3ec9fc79ed259e2cf6558d9269fbb46f9dcd108b860124fbc279e3e66d75977c7ee8af5eb297dd11cd6cd2eb86e36b7448959b6ded1fa7e5dafdbcd2e78bb6673c5daa9cd3d489edd358a8cd3cf49ac6b93cfcd126bda6558d726da41a7be85b0bb527fbd5ff5571022d6a9ddeeb1b907d6deb1f9e1d076faedf49f6317b12bdb8d3dfab87ab3876ce79af5746c638fcda0db12f185d96af3f50fb8e0edd87474020e937c9efd73cc7a4eedc3dbabcd3d70fdc76aa79eeb7a548f3db32bdaaddb3b9b75d5e696d8b179097c91685fa1afd76e490c2a490efaaabd5e2dbb79097cdd3de27987397c5deb96c5d2e61dd8bdb2b908dc0347eabd8bb44726566e924e569185c4618973849de39c734e24290a4e729a260a42385df6084e14359d9abe42c127a6eb13ead15121a695e9f1616a8cb6545f121587fbc2e73c3d040ff75f3b6c033bd4612642082184104218e1fb42d72308616c202d46edf76e3f064c3762078705165858e1a6045f4a35166665d666ddd808015203e475ad5129ab8a13455595949745ad5a2d8f25b244ac023c31afb8e28a3a547098ae670ff0af2c0aaa4bea56777852c2e546f5b6d9057755ddead15237cb69aa0e5fc57bdf449833477b8dc5df0cea93914e54f5de7439bef75ebff7dea10d4b84c1ef5d4929274dc39ccf8a8a6131b07b57fc8951619cea7b5524df7b1a4e8d62d42ce59549275e0e4ecd12378497565408df7332980ebb3805000077d844af129b471842482dfdc4b06317767a451a5492d0e3453ec59c1aa360ed802829f0092fd804bb19277481e76cec5115edefe60694c4a00744197126ef93c5efa077eb392ada016548903502b246de452711bd4b5e55555154f5e4fd0164b31c11d91e7a349dc4d6b099a501b8ff02600160253499ae8d5149e01d34917173c5f0eed8014da6f3802693e8db2719d8ba95055dda1f1a08d141df9450ad0d09d5f548f6a83ac9439664e4a13f2c6249462e72199f9895bfac8c539bddcc0abc84b652513b41307cbd8350891e4d2ff97c588fce5d2de9b1845a1dbe468fa6f7504485c113fae9d3e10905ce2d8de9e521c571c41b0388971dbb4a86dd055f36c75c0486a7999d8d51abdd5115169ce1e7a975c1d0b2e0695b26ac5d043c03c85f36054ec7462c1238421742e4326eec51b53d641deed86a4b6c16914cb76e42d66191ddee0f3d6b40140bb4c9946df4d0287407cca2de092de0629aa8876c66c1a157363f5c894017aff509b35b1dda0b964c7915ecf29abf604a431b7a66dd0af5fa948600b0376b17b1ae93e4c09e5d05cbae4b9283feba8a75334b862e2c1f4c856e76c1f5da1dcdd153038260781956d4d32830fd0814183ef4e9ea19aa9b810213185ec6e77c98a438409f13de054315d4dc03b740bc123abc6e2e917408192227f90e3a44e8f0f2e8d1b4428f9dfeca511ddeccf279540776aae282e73ff8caaeeccab293e4909f5791f3bae0ec92e498cfae329f5d978bbeb239bbf608887c523b01faeb1d786a2debd8a9cd2c98fe511df092c8c36724f2f318a5774d22af3c490eead555a8eaba60794972549757a92e6776330b86a74f81d4e6ec1bbda3413c2c82ddba254f54ecbe734775889cde1591cfbb32729a59964fc62ecb078bdc3872ed1415a29e7ea23946ae2bb92d10cbf8757a33c98da2db0271e8d7231d2234848c9b1f0e1d7e866c5e62528bd9477340ba013c21765447c443e4ecd8e98d3dca2d10876e2e0186bf3e25a6511ca043dbd8511d10c321b01b7b449fdd79f3f51688e97577f4687a63c883c74387f03ba0e5d1a3e91a132a7c763416e8d17408631d7438601d170e05b9c5a676b0cea6d58bd9685d706673050496401e90140179b6873e109b33d6474d3bad37c78ca7f9da3e370dd36c961dfb75698f9825d15e8ffdc25eb1cfeb94b665da5dd93eef8ae7dab1cd2312fa743a9d4e47d334ada3699a93d2c98861d682357db21d3b1c52e339e8d363b1ce318fa5cf3a37d763db8cc1204fc91315fbc7c2213dc28e7dbbd8b5b47b611886619acd945e8325ac5918e639cdb161d9a338b03b35ebb2c012a6840c0b2cc11a9c59602989246694901189ee12b0046f405dc3a881d9cd6622f0e6f974e2a5917a66f39dc7288aa29e4f04760182b3edd33a1c448f68a594524a75a87fa8ebd188c02e29109bc13203bfd72ca3a88ba2a85391d24efd511df55407f6799ac52c6631d36e0e8c9e7acc683627903d7ea2f5511dd425d14e7d9268c75e339108673fceb479e7cd4460ea197d95559b6bbdd95df97cde95ce336a5966e0ec94cdf5b2ccc09f9b51f11945458afaf450b5665446d1d7671eeaf13a45d51ba92c52d4459d09f3d74504d60e298eeb13f45c12128935c6ce6be679d6b1d93d9607d9038e0dc03188f62c881e55acbe56919b657da81e74b1ccb83eaff914a855775d73be1231e3383b8e253896e0cc23c2d9352d7f70fc648fd563359b6537b3b9f3ea749bf33373c988c0916e56cb9d2be767631f88d8334b440e7ab378cde18b65069eb7aed9bc049e974e961938c6872febf0b4574abf5b36bb40915d8010016780ec40dfb1990577a616b7f8c98db1ecd16636febad727c69279747e5947b33ba861f55b7dbd9905531bad0beed8fca11f2dd62887f83cdeea01c91e698fb76693daebd16259768ff679766a2b097dfc768c84bef3cc350a0b26a177bb9905c777ae79ea939a8ee6a8d16258ae177d9da80440af9fb20aa3b6fed1093c4ceb0704f23c63f9e00ce4b93bccde3487e773ecd910da101f2dfbccb42c9b9936b34cd63a65c532ebd566165c3f158b26c866db31db01e511c6288661b571166920fbb008a28c3c7310e5733d3757ed23dacd2c1fec66d9cc6ac5b4bb3ee97ceb6c9d8fd82cb1d6c932bc7dcb2a468fd5aa5d96cf35334a6d490cea279b53e2ccf2c134b37c7ee0c182dd658d528c8c84da23450bf67cc247f8c191dd9cbd5af3d69cefdcf528b31e6d7e3bc8c61e595fc19eddba2531a8d8edb4389714e8b10e57a75d3554af0b4228e91017e82287377fba1eb6f6ec9a7538b36b211000fe800b9ed78ed98c61ac8375e625f17ca5f379cf9def4c78a859ed16e81dcd6a5a76ec115ecb3c87d7483c9fcfac8e75493cf42bd63da7d63db75c8fb4c3f949033da5b35bf244cd2e0b1641d7ee0ae89dbb128236679705c3a08b854222914f3d56af9b1fae30cbe0eccc67d76ec5647663e7664cc3209c1042d8823b5976d927d8337a68b357ebb1f940640cc3ea79f51cbbe77a4eef39bceeb9eb13d04336f6c8f30d7e83a00be7a575344b5a56e76617dcc15a30e639b51267d9476c0ac46cfe7c7a07645956a8f3cde6169cbddafc30a873ec9d6397773e64573a1e8c1e64eb33bb55db78b3f97329cbea7c763ca7f77cda4db3b9a52406353bf66d9eda95ceabc39205abd835ec9a765d8f26bd7909160c5fd33e2c2feb4a98893002bb4f36b75014471c19b94b6037847091f608c13e6d76c1d3f38ce1c37873fd8c7685bef19c9766b30ba657fbbcb988ed9a8eecef51c55e6bf564373ebcd96376027934ed1d0f487a1eb19b45a0cee722210fb63d521df3d7697dbd24d9cd31afeb1e8f5ddf6c9e77d7e7f5fa5cd8a7c753bb6dd74e697dfc75ec9a25a99fd7b27a73cc7bcdebb35dd75df9bcde95ceb5a9d10fd6d13a22d0b16b2221cf310fc8e3999aa59a36b5ebf49a07d3e8bd300d9bd629851487f5097ac630861debdcf3d9b15a531d9f6b16b3d93bd730ac5efbfc3df2bc631f3e441939f4dc358ae72336b689c773d0fd78306db6669d36b53baa6918b68d9c6e3230ec239d53afdbbc2bdaaf4bfbf539b59e7f6c0e8f3bc59ecd6f363b666be36a73675acde6eb7352db23c7a418f60cd3329b97c83123c66edf65adc750778470fd7ac86d968847d68ff66a3508674f13864d18364da03b9a599f32d041d324e7b64dad5a4dfbdc95ebef61374542f39d4f8f8dd5d180d3344dd33461d627ad7a28ad16f5fcf38f471e5e45deeca6e99202433637ee4b24a7b64e12e910a2ecb98cc39b47eee810d6e176eddbb36f76ca3ee1d4bea96c4fe9cce60fcee4896b9279817863607ab7c3679d4ea7a372fd532bad577534b64fb73a1a70fbb4d9e98e4ac0f3393d7b9c2e9a0edaece7736d3afc4532bd9325ce15639764bad33bbf8ecd699aa6699aae52271295d045b6cdf5684b6252026bd374157a27174c837878fa663f1efacf2d79a24e91eaf07cba2b9ecfbb02fa748c5e960ff6dce8a65f12d1e1a769b20ead4fa23b7d9a93364d6b3a9c1487fc344ded663851d813d49850a7b77c525e50f4ecc1f01dc700ec19a00fabe72387c75e9d0fa0c3cf3bd7b17f2c0671f6d9944e0a27cf69762d7be88e4278157a8f78636050060f33f8ce5d30f614086d63ec631fc61e03e03b57dc39b41d6780cee1476cc7833b1761b83b9f210bb2f4734218a498869a316a8a4a066981a1869a3f9d8646434fd16868347411a8276b1589fed1a8860d2723b32f2a14d20e70303a2138c5f9406905fac62341931c889241941ef005a2d44b59ab48f453fb64a049fc2b4194478226f17fa557b2e4504bd6192a456a29bc16e27cd8c2f9202ff2a27a01472ce07827312ea6b40fa7343e8333896f83c4a92a6827626084518467635d849add14606fe10c103f9fbc04e2b9a066d7057e8754e5e1ccf68d9b9da1c237cd3b83434981266dc01107c737068ead021cdb091ce363cc5e707cb50e9a68d64763378fb4cf9b7f5955de8ec88a7a26e0a8b59020385e074d72e7e0f8fcb868218e467c46860adfb985e0f81e50ca5a45a2c7ea467aa992d559154d684229078565155d459d34aaea02877b4583ddbb8a2aa59433bb819b9165c80ca1e6ab86547dc090a0c9cbcc510696e01718da68d96190884d55778c56c430f3bd673dc3201475ead3bd1722c9cf890921bca7e037b0f982fb57ce7583fb14185a76d55c35211921db9056407fb25ba9aba89675cdeb7a39f88981dfe9cb212a4232d0e47db2ef6a3099cd6aa0c94b7663a35d5bcdab5b4d377dd634599fac8aaa2a1957455531465851f1ba280e2a5655880adc9fa11fd80ffc1ccc4251fca26e705f8ec001f7e9480eee6b325e60906b489bf455d3851ab317290a9316d653548bc6bbd5f4a8bf0de9515715162c15cd56da6a64ec407ab1d5c8d8012529193b703eb8ecfd67b1aea2ba2ba83b081fad807523bbd94818356f2119cb7e8144c45353f2f35ef9702e4709ceb2c01c0a4f568afaded562a4cdbaf00183fb54b3998df652b31cdc27e1900c75339a1ec900c355d327d5fbd790ab14928128f55948c6ba516f46331246cd578d109c455885415b61ca6e325b1476fb014dfa990582fb903483fb1b4dce8f8c264846d3232930e7e2dde9dd48326aea55138aa24dfa94e2883724936119c5118aa247ad840f7984fa9e029fad3e591678132285647ab4d5381a65a839a3c1fd1c92c1fdacd42779abc14dd34556930de993cc026dfa5b8df3c13d47e39db297cdc1f9aac1fd49a9cc9c0c19d90438c17c2fb66c08a173ceb9c7474deeb98972eddcab925f24fa4889cd747c99311afd2522e79c8b437d3763b5a78892cef4141f4df4a12a0fd7ce467178364fa77ab48c62f3b264e5f1783c23d9088c3683fbf3e62312d58a49f93059678c467fc9eb9e1c8430c669ba739733d5b154534f51df7b8b9ee853e37443c19bea3998d9c838547733fca23461100cfc4e51d06647093ff770c0cf6a4e54f5f084585351df21cd5161528c8932d83d432ba2aceecf52b87a6909537de09e8ea769d2cc992904f7211715900a488fa09db00cce954da9264608cd17d804322104f814fc4645c235b86f55328d52018126fd998af443c3412ba04f594da6728fc2898a1746d987651c2a12514e578b9918ee29ea8ce9e760e603778ece393739e726779be184024f17f4a8126253aa10da872b1f37f81de6c4bcc8c09070471f3f62de8750d592b10f83d1a3ce6e706736382b4d174c51b37474c2c8caba1b568599c048443c611c34893e220cce52e21923ac2a6aa226f80962948439756a18b4107f81f3c70adca7341cf4a829ea93cd150d9e2eb1a8d329cb52d168323d6a2d46a381a3d19762a859d362705f03d22759a3016e1215da8f3eb1a24f324b45d3d768e07c70d5d2e01c5f2a20b8274cb40f43395511f6a3aa2c7f006b3353db32d0d05051d327f9c5e0f7dc34b88b3e795198e91b8d009c7b087eafc116bb192dacc05a44810780dd4c1662c03919d2d068214617a53e71335160e20bfc4e839f7b54d40c67de7de0f70c856451d65179426e99706e9bfe74c57b53d1277db1a6384e5033cb07df921ebd477226ef3f2010fc9e5f0e7c2f3f2960687cd4c4e05792c14f0a47e35d86a1e6270596c2f9e0ac14d3e3f487834699fefe62fac475176df2ecc32fc6dda68150a8c7b9695e0005ceb0e4eedc5061200af40167204a9c8126ef9006bf77d3e00c69220d35c694c2ec010956200339b0e0046ba0c3180e808499f8442720030f6cd082171f3649a8e1051dac27ccc42702c116576c81083070c10dc230c018302035623793c517b2e08248165b783ec882067a31af176b0730a05e60e960240e560ebea00d61828c2be40aaabbab6e6a3c09e314a1944f260b326c918439855ab19bd922084bd8e2099c8f15610bac0a216f50821033e05c7f0c8b3014e205862f10c39938c5197df2847061627827856c212448bcc2ec27aa9bf3c554f73ec5bb7204f5fcac3b14c82be17243deb223904750cfd5fc7c4a4b29df84cb0d799bb83e6f9577e0e9927ff60829e45d817c139625e52dd78474f24d58b74213f726e4154113778a3a092bfc3b8c75988de77b389a3062ba19ee511435dd4d8e87e37eec2a4c3763eac7c7f75d89cf46d94e8bdaf753d538320089b7685ad4c6f1ae6d08243e02dee105bfb73c24de495c901b4c5dd42794e8415e30f519352ca6ee8660eab151de0d4a657abca5822aff1ea64eddc4f9709d3a0de78375eacf3c1cb104352deb1c8d77c49b59cd703fc37d01e0f902f000e07e0070ff0178760a9e109b7645be7f5912eb0ae100dc47c2e5c501b8ef00dc77c1029300d1b83a49751d8ef8e15394162eabdbfd39e79cbbefd725f55c3be7dab917e38b2fbe185d7c5fd654c947e38d955de9962a5b84117603fd6ea62da6bb99dc7c5694c1d5bfa675b8c7d5a34f1cbe5afa84fec22e7ae507832fe75cbc2cb50f0e96f5eacfb6483c59af5fe718af78c52bc668d923e0df0d1435bbd24d8f24aa127e5f3c1b0cdfd2a307839a5d09c317b10123ae2ba69b31827a1af1f026cb7ed9fcf0551f0f8774de95931082e303296d9dc00ed5d1889dec0179175f1212c31be1c006315430b1cec406319068820d32870d7580f1b1417aec5087177bf45cd3e0067705467553ddbcaaf41a96f4a82f12f5a861903867764c20d0a4ff458fbab2c15dd94caa9233c6449900e046113decdc9f8c87125fdec51d5f20cab48112675a188c9dc5e7524d8a636a9a43e2492621b59937f4141a4d559aa46ada5468d2578a0b66629d894e9b4c6e5105f105050ea5a28126b105b8732a1a88228234a269035128e7037c47d1b4a1aee80ef53d8bbc503714aa4626da24be7ca166d1439960b449bf21505d5315eb296a678360b8aa54e1b098a0e9aa54956c445569f38064a82ad14c1b3bd894a64d8f2018f53d4f9b4aca9b8f126625ad4bdaec6672de0f9b96a9813ea84a5a55966e26e7fdb069999a385195a464cefbf16c5a264e5435553339ef87cd44c576ae73de8f38c1692627763bd7d91cea3b6ce77aba76ae9dac3217eb5932c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1811fc26c51c3289d7b3c986e468633efbd9218b80f733ac2866926a2cd173dea5782f09182e0fe34d31417920a2b5a16ec675956f64814251f8cd5724191a3f2704b8fbac775651b5de03e46d3b401d99006f4a86d68487444bd3deba12acf7ea8cac311144120d80f04b23267c3dd905e690b75821c94179609e0b26bbad4363739f0053b08432291482412a9478d9b91cd4ba21a086d88600c948124f80302813315354568c3860d1b369e1bc16686d5ed53c94852fd2102f29991901a4d63432291482412a9870d08a18d2eb5cd4d0e7ca1a6d8366cd8b0d1d9b00f161251cfe62627262626262626864422914824528f9b9b9b26f58f06d2332da469a64822914824d2eb7173e36edc4d48041b21997e4820754624e48fa626a6542abd12e926e7a561da47c74448229148241249060900b0f7121313131313135382267d59ab48f48f1e9037f3843c9a575372871d1313131313f35ea9547aa5577a00080056e36664f392a8a6d2744c4c8c7ca930221f8f19c9d478a4474343434343f3181953c55031534c8c813102c07a0bf5180d34693aadca39d734f46689dd5caf9b453f75f3e8360deecb4f0b6170c34093be3084c9e46059d0ba0167e8bb801532aec69a2679cbb22c6949392d29af4f89a3e1e1c4c606d2ca408deef9a8c1dd857642073e9cb09c703e38ac4772861bc9db802846e43ae51f0f3cfd09017175232076e79d81251178ba1bc94a092aa52105eae7614f5681fa38ca55eace1ee128e76217ae01a32042e008a23c191969034a94b661c3b174ff5123622a8bcda481fa6420cafbd13f7ac62ed4fc7ebc21381a7d98839a9dcd1b82112c3dde109c0f9f1e55961ef56dc88e198d6e03b70d1b6398a9bc70c1620c36e820063746f8810b16f011a3bb780e0353d4600b35b0c20e3062d800021ba8680315c2e006983050701ee1d8830d1846a7f4a8e4c4e1d8047402bbf81fdc6d4094286f00e165065eccc8c0093f6ee47a82b308c738f2c4c71aa5761d1d03ae1360d859d032f818ddd45c8c340887b385e17d428c31ba6e97d2b1b250005d9d284bba07db657a2d03e9de7befca1e3d12e067a57bd334cd3ce11602ac917dab1b411378841240487c441238ca3064c55da194b5ce681fb077f4a8bb9bda010f6f811e35743b9ce5e1681c8f3e71b79dabcec3eeb0408f1ade023c22dcc10352d7c6ad011b4208e18e3eb1008f86875d5ac394779512eff36ca6fedecd553e5b97e2ba753db24edd0908e76850d6bbced1682cad2b05cc6ff46567b4097cbd42adae74d731a1becf80328851b8f80343dcb2472268027d402113458f60757728ab3b94ee49f9de8d3391b64aac4750ba57f89c8ba418137d44992cc230caf89021f5498e38c051f449ae110711077de20e6fe04dfc51e34e5082a3b4b54731be9750df9de4c09ba25651dd8df7de7bcfb22ccbfabbaecbb2ae9badebbdeb5dd67b104208231de24bc988871aa3d18807672f0a521facd1e683a736a3c6b539d45ca3460f8df2b9019d1d19a1bebb4b08e14c69ceb08016aacbd2f2d88145cdae5404745df8986f5849f5bdef7b81f0c1f7021fccfbfd867f30efe53121fbbd3c18c82388941d3d827f344c1851c44d097e2f0fe631d127d9e5949e0b307c09c5c567d4e821c61863a4ba638c718a31c6d7a843bafbcdccc4c73b17ad30d680020a0a900b55bac6a23674b5b6a046c1052d1a67a705108f011f314a9f51a307299d8dd16bf48866479017e487ad0c15c21a6e0886d083dd4c144a16764e00630b788a429ac82428c08a19f9bac1d3675751bb6fb8b76d5883736debdc08dec94fd3a18d08a254ef6562741c8df72d7700f7a71b3338573ff0f4a614b06e54b7224193e9cd859ae5d4599d8e790053206a4ba051eacdf41238e0a97f7cc4c09308d7c053166e70026717044f5316375ce0cc039e5e3f8a432588155408edbae98e4728e9a1bbbba3c063e8110f1d9fbbbb29ea517fd457de5b4af99e7cafbb71778d1e413b4a3141ed4308a1e3a2876a8594345e78a31f7a0473f577577d7a7ed55ff595f728fbe45d47ddb2aacb7debb3ada4420800bf5bafad2c5f7583b0512305ceb4bc213c7a04ffee8e1e79b0a8373d4a49d0b4f40914030e3b60adfd3271a185a440937e02b07b89f3c1e1f7defb88871ef5a39e42d92082e813ca518e72d299f4a9cfc90661537ed0a21ebb2e02bfa7fc10044c09e2d6e8517f2b43cd23dc3dfcd027d9cde41eb8e8a18719213ec0108317d3cd10b9424d02a2d4ed0ece3b48efa07607fb29d63d9793e8ae6eb75331e8f5e66b379fde2cc2ee741de83a68d2378f707617e573b303034fd7e32dcbb2a25559f7dc7b0f56ae7ad57b417bac832613622470342611380388c031a04d801f7651e0e9970c9e6ee1004f8731934bc2d1989e9981ba68703fb296019b4ca8d4eb178a931c550c910c000000008315002028140c0845e3d13c0d44710f14001083aa4668481acaa320c9611452c81863082000400000000044004405009d0b287c5b387ecc55b5e4329ae508d11d57a1151ff5676ce1a779492bb3735505962154289cb3d228a43ea5145de09140a7db15700cfd98bdfad9ae5accc1a932a977ee54642e609a2600d6cd97915226f166a1676c5d700ff558e9f2074b372a2c018babee2361aedfb22f29d6ad2bcd205c599f1a32ea0c7dc7c95a7b8f45415cb859b26fe93582057fd299ecffa9c21b5c50290b31b6b4f8b6c71ae18b19809df68f559418940128cc2da712161ad1ff73e94d40c90570210c69f519110ba3ef53da936f3b0c873a81ea9440a459632e5d389b620f60662826a5c6b13fa0a9471451016e4ca5155dd1e6c0deb9f43caf912c1f9954bd43c2e53885ed06eb4979f94cff4f2c0d3365583df99138aed11fb9f3794837e1e689f1506b2d1f42b4a3973a5bb4f6042576b346fc82d0f96ee724bba0ee2fbb22dca407524c926af98efe0540baf965e399e37fd2ec03d7c61991c38b1dafabb7f8ceaec81c865e7d5bd09e4a398830e9c887262efbae68ff9cb769fd3ca42e2754e905c07f2c93df7c46b0638e7977375efc3891447a94c232f60b26fff9414982417f28db4535ff437e675562446d8a5e6754b6250556a4be514746da73772a8b46106722a54858122616fc87edf1667d7f6595b3a9570eae384abd26905983279f31d7fdd95af7bdfad52f882d3ed86a9d2d840ea8809b25b4fa4dd4d3f137827b5e3835076136cca0fd4a1748a6ad902cf574ceba664d43f2aa40f8d43d0e90c8aac6695b0214e1ca8c860d9a72923ed556c2b8e07c4597b6d0248787d250ed18165ec569a55db1dba53e6298d4a988828f01103d771ffa87d8d52621c92690eb1e00f4db3e3835c797c4036e2041c2e18792740ade815a4d68e89fcaad0738850e9591b829929fb20a103d39f182fc98d9e2e7081dd3e6625547d4a1bb856cbbd4c51b342c74afd7f441f51a77705bd1e633dd611439bde69fe55873c7a062fc6ad81274339f303220946d30fd31c1fb1c0b7c90770b48713de10d7213d5a32e497e19b93f354d3930357d89685c6b660d3dbc51827e30394b4b4fd461475347ae136d087d8290c1583f825146acd96e80faa65bea4a8ead7813fe8573c5006858f3f2092fd35713fc587e1e2d1086148cc1f00c9b3a48a70a2a2e3b00f35d7dc9052df115827d885df7ce012f44172cf11dcdaa2d5ad1597c80b61bc501aa0ba7cc761543ebf26ae97aba68c1e36f2faa392b87426a9f4e7ff665ae4b3c683caf28342aafaf2672bee2c31a7d1f308f577e4a27bc16f22698b0eb92ce1d593fdc94f5acceab07b104eafe0e8ae0cdf80d814b178d905e2efafdf298957d102ee15da78b9056a77e104dd01ba08e67f44ee8d2494fa82b8a7e87e308dee9ba09d289f53ec278e35b826e617aaced455ce98cd17e33ea863afa5eb1b689d5a74fff285ea32261d8aaadb8987d00c8403b465b6a4ba14e6ce0885ae6185b277213d68b669105b721aadc96d35f0d7c788c39b5d2dd363e3d70c9ec00ba4cd691e080c1099fcf42189b751966d9abea9b68316bfac8bc78829b0916afe630821c53e057e251b42e04b8f9dd851f4790e3270d68b61e5aa60fb1807388c22ff2b197867ac3f8bbc02df8e2aefde17341ab865ff2d0dcaabc6de97a2772fc79c41975e6ded2d05e8c17fadbc05486525e2f2051d6c2e051cdc7bcdefe551409179bf67c547b64fcae6fe75a226568d085229b3e8fd5ac2c22314787660a325882d8b2cd027cadee9915123a987451e0e13e024934f4918dcf60f058d286839ee3fa5632d9fc9a5041d28b25eda1835d472c30addf43d190fa8a7f8e3a2b142c8afc8e34cbabb9a55f8d188e0e1ca4975566599535427f62db94a7ee90889de2d1d50c919046f1e788e3b120c1eebc145d7a6611132adb41f41da94328210b8b65f61de336b4d31f2c0278bc7bbc5c39e847ef781d1eb4478f47867c996f7955cc1b960f598c616a1d8d6308dfeaba0883d6c67f7a1b7407e82002e6940074ae803a9db7e22e1073a65e628815b5295c74ae7acbbfb05160ddfb81c2b7032b5f0e94be31f0030eaccfb968d0756f45e6d404c0858d942dab7b02c0556071a0a6752ae47d33b4396c923a4808df63c9e260e428d5e6d7afa1f841085276ed84cf7088f398b554cc59fdfefe705de2485f369964a701d784605412b812bfbfe391f43a2ca5ae1e21c009945a2ca60e58b2ccbee2ead5c43d1a54312c76b7d74a23009d9e4cd419a07f946aa933d823a118baf7c03efc3ba2cd745c0ce6b03beb13515ace3cea93bed53b18aecff1c73ec5a5bd438446eb6a6bcf165008bdf338c7d6d90b5f786e0d4ac5d84ad145caba6a91755c470c5a0f57e993ee36df0a75cb4cac5ffcbb2e15bf1cb9e6aa9f1d032485b391e196c49d661932ca2a8aac5e61e496fab1db5bb1afccb914850f09a61bb2c43a2bacb266d3d592e3306a9c8992c93897f08a6008bfb40b42d4adb33061fe4085f7b32509dfe074ba72ebb2d15b80977eb799a187561e340f975a599bc90c119916181830cc2354a98cd428e0fde1096b32f9db865daaf0d7186b680d9c0bace6b3da1000a2460d4d45e07f33f6b96c41dc48afe8d8a7fb2eeadb06b32972cb0658aafae96b92486db194f440fae3feb1b8da3c15737ab33a99c81facbd88e6902f8ef2ad2e6042bbd4d92c14415cd46ad1c04334126ea27a788a5ec52bdc8dbfee16d481c94b5d8ad07f5c41c1fe22c835cb4159c022c964810e3aa098265bb4a6c4801989dd57939ba937a738cf2198c0230af190c1b4a26bc54ab89f2068a01b1a432142beb142b8a739ad720147f551b3ce21c88a0ade7006d1270fcddd138527019a57a78422fb16d0f15bd91948c53885cad424513434694ad3261aaf2ec7d9e26e19c57fbc5b7179900f691da4a1be3fd3de33bf9470d6aa08f89d17fa252eaa50f10fec2aebf1603c168120fc1daf9cd156628fd0918215eb14fa9c1196a6b333e66a2d6393a46a446bfc123d13c66bb9d97863203be90a6a651dbb38ef2a49e71334e4dc7bd28e71338cdd823058cc2765fe004df72d5cd87430291d1b716d1e6d6c5a785d60d7bce3f78906ae855418c0fd74b59043acd28dceed54f1fe85471ccf7e645f616c5087724154f6b0b38a3f3c7480c6c688347eb2928a19ed3c0a648b85c1e2927ee875a112cabcd82b787cb39094b59627643b6cf5084547e85f2d6c8ee9199a4d8c9ec0e5084efac417e3bb76124c3247e52d694f0833a7b8218c537f13ba3da7d9b17d73af0f479e22d1c4b34ae52f7feca0ff4cbfcce4abbce671e3c5a3ab4d2965e00e83a285ca038de9fad76a22b08002107f309ce25eca56b0bc9e8723a3b01831f4c944cd4c8d5f50e69685bef1e844e57a8a1d3b23de79e122611bbbd274f4964bd9b8f3b42675ba39cdf76f185c2018df3db51e9aaa790f4d4a67ac6146e2e1c3d2c9a22dca6ad12e9f9a2ceba85b6a0bffa0afdb9f82800e8a7d60fa98257254c3128a3bac56523ff1c8adccba3cc18ec23bdc86d4c113fda9267485d724bf05a9312e32d79534255131d85003f45d07108415070b3a244bbd04bb32950751271478a09fd5dde3d21b644cca7faf41274488661d8f01284ea2fc1b904783d73d01c2a07d8de85d69e19ab6c5fd4d416f37d56251d81fa43589eb03cde471f6348ed382f3ce115550f32f63eec94ed9d9891b387072ca48f418869b1a8e352bf9fd9a20fae5570d8a764e9486791f4abe73566e17125ef60e085db1e854aee61126867e8dae34e64d3f8fca9f1c01ead944a5df213c7151697a7f73a1bdcf416cf699e204fa37640d417d61f0209a0f55a53bad478b712665760af18e16a3b73abd7aaee1ef2097970718f41234d500c4ad3661871fcacbd9ce90f916061906bf1e56434b40826e744d43b81eb320f544157d99a17c35d85360b28417b643e7009a9b673e3ff14504bb45a8da3128d92b78d8cf7e29c9449dd7c1df3447fcf234b055a457d91639cee2dc563b3398a3b96d879f1c9fb44fe68926227ad48ea4fe9d9f070bb3649189e3672144b43ccf0aafb65e7e5160f852a30a2efd85359ed605c7b3b5740c91b582d4be8f0ce4c5410d798b7c0ea44a0546917965882c9aac272c138f95cd3c22928106b03a51bdecf12aa35daa2242ebf459aa5505014252b73ddf0e1dac07f8252be17451f0ae3c32a07c2df3cfaf824cea22c861cd8aa1801fa9b588afcc598e66996146a5718189666da602e3d1e8ebed6627a72bbffe35c64590ef79cb9c9447af002c10ca5f0546aa1e537fcfbcf6df4c852b71d63427eada4d2b29d3346645cb381ee4345f45c3dd5712374f0ad8767a05d5f276343ffedf4300e62519b2eb9fb373094c6ddaa4047a5281c43be1772a443d815fc89e8afcb719b8b5255a6cb05fd3dd5c2e0d601705f1e7e9dc714cb02c7b25c6532c8de79db37f962ed400b49c0a5aae0f19c3ed700006be130912daeabff7284da1f8b282c20bc0b515c5a5f722150cd07cb872739224e5b60f1f305de34fa04040fddd9c65c0efd5409ffca387c6692eba8936d0ded2909c7129c0991a1238768097a83885750c1cabc7a32b12aaa36d4f48548333ab8eb93fed0df3269d0c4a07cacafe088cc1d40e80f2dcf752efcd35da2d62689f9a4d227d83b7819fe0fb19f5d92ad586683f168b8b1d734acd1f9083b1083c5af9e109819407589e7804ca280e1ad5e0f12a70dc5b5aef283aed2d45b159ff91eff2ba4889ae3a69717a759f331f205e250219fc96d1f657abe1e19ad81978ab805813ff69dc61ee4325c7ef32995314da896afcbece69fffbba7f8a9f8aa278b135651988821b5dd68674343f4451ba1f3e9539479cd420b13990fc335dd1c39b45a7fb2fa06d0c6f9e82b7742ddc10ba88a27f8e42134a9ab28f1b58429f7fa513c7502eb0cabba701d7b263fc22858fe570bf4705167492d7e96c516643a69600539ceb13d55d90dbf3ad0993c41fe5254d0a8cb5e54d57e933541f302d6a169f0582bf989828e874810173de8a4608e8bab4c3336ffc8a0729b4c229bb3dc13939d1d7aaae1fbd80b7d24750e6575bc1b4e9cf305e84e26a2c82be51df577b3d9aa97b4f1a8504cec0f6becc3039a844d02797e30de1d77e2b237b34289784fc06027008924f57974e640250214be420ddaa5e01ff53d64b14f87fb7b9c8e66742a2a884057d04e919fd057beb9a02df0d85cbfbb6bb2b03ac357be826ce01604b637210eaf45555dd1284569ab491d7118bff85317a2dab04ba07d33a4d03d5bedd270212209836fcb812bc76ed623e1864766933763bc3b52568d4953e9b71d11d563b17e2eb00f4c52d15f8f8b9b9da9689b3213e5c78b54fa739696e5205e5b726028032e6ad705385aac24485fb41370164dc138e9618ff014e968aea34e48c4e66677de469d932596ceea313a32083b588b0f547d90d77effef2337da50faae845b31cec22aaf42b83dcfedb6ef161a5a9c7a654db165fee73f034ed34027c14fed2b142ef4ef9f8d62d859f8f3adb33d10217ab3ab80d97a83dbc029a98e68910ad863dbb9531e8f71fe9cf7f2d963e450cd54f0208b288521ed38e018a7696599161e1d5adbcd441e803218c80bd4891781fc86d23841e706e8548480d7246080f171596a3225102e54fc0df8ba6bae40832ce84cc85c0969c7609450d7cdf4ba2f879041e2f2068f60a182fbd0ebbe789299bacd96e0147404040fd01405912e5ef03faa173388764ca7dc18e71ab3a67670416e2a1c95d7e5c95d521244a2d9200e297b9df74d0161db03a7599cd0471abde5dc2d5010b58cc398679e6b744ada42d9f35a44bd3371552b2f1882e1062bdba56fb78781fc63a7df6b8b54e62301f1f39dc480a8194d63a79322688ea8dfe8cf20f4d9ac309d38d1eb96e0bbe6e42c944b81caddc73f27575b5bfd903cd7f97af8194351bfa20a34b8c57785a7fcdc466d8c2cbe91e79b63b701b8f9230c8048e10f415f0d5d1a11b8d623d069dba202e80ac91f8b38df6f6d111b4a4c4ef42674511e8200e12819250bbc9823c238909ba4a5eb904d3cc292024a0683b05ff6cda69214a45d94362d8be137c20325a734ee1cbe23009ee53f81cb33b06b3cb75dcf54484b09b485773ecbcda9737805730da9a96c7af047c8b39f090f0f0895c40122c9c44a51a884d496c311fa78db2eefa1dd3f20c49f1e96577feb03a721a766b5c937e9177405ce398ff1684d16d81c1ac6103fbf674ba7e300c9058d895379556ca3410010f82a2f1d3aad8c8a7030eb8f0b476e6cb30ef233b95e930ca4cc91433eb4fb1e2194e27ad43435ddb434c53798f6435aac754c6045d5e475633435d02b1d768014cb68c0c3b814dd9eb2f60a3e9ed561999284a869c602d6c7a165e2925aed38d5301f9d0f998682b8521ea2b0805511beab9bc3f1605dd542a3085572741651844482919259ff97384b7aebc6c31319f0e625e484451ff98d761b88c71eb882eaf7ebd4e82d76745bbb5f325ee4e14cb32da1b8ee6fe8e2dc6527aa4646fc474dae2c5ced6db52935fbdf4be575eac7ea2d84613eba9bc85f112306a9305f2eb26306f8fae28896eda385dd6b70be475e0032e8da480d3747848cb28f8031a8e84553832a7a3907876af9e19738926c0f00f1531ec3cef9d6fcd75c230161e8c82aa165456bae1e465e4c6d4e24d2e088dba5bda70c9dc8410250d90b5ecf62cbfa5e304283a2dd3e64dc50d407b47c936c8f60e7656b5d3bd34ebd93215775fc3ed2a9fb6567c2b9368c6a11119ca0e129be8c5afaf3a6fd82e59d8bce1c4a754a1e7b71d0461bab11d7953913fef161b92dfcd6b6853217c846fca97dbd9fa9805d22a14bbb9024e5fd15daf5680b4b2ea4be455ee505a3fd0feb6b35b27620c0fa502306c729f141b0076e37bb5b65e40f3b547af489e600834bb924437b88099a8d03e55fc2d892098b8f003c3a9f9e08a4ffeb1d755557a0baeb23043277d684190823751e9d6a710989c775c1634c8528bace9190f3defa5e062bab2e2bd1c32bb2128ae437074ed9c9b2bef9761c2964ed2ab2fa41e540b3fdbe3862c4004275006b400952d27043ad270cbb291a291ab6d072317a079571b44a6f4e650616610141be16dd2a3ade66151abad59568b01ac8293b39f30c0d157e60c8712ea29e6c14a5988df7c090986dd536ef86373be9b8d86f824886bd86adae775e3f56d8222bfdc32b81270ce7dbbad0a07c686854f3528bcf70b2e5a8b73444b0b5c235b8b52ed80543dd551b6fec82ff8835bac25f4936c598ae7fbb2a95061a5abca8c6140b936fdbf4fb02b231f0dec15e5dfc4c7495c0177d00ab8c6f6b4dc9c06319814dedc54a56a54ed928b2afba0eb27a31746a36a4244749380108d8f7e79adc69429f44b609ec90ec7d03c225da789b2138f128a7b8b283aaeaf70a8613b2588b1aa309408e8a7c051623413b4783219e0de793657e9084b918cb36c4b277b08dd6835e810dbf45755baf0b3a084913d0891b27f931d8f51ef58cf644ec585a87c2f8b35e5c061bcc366d903814fb44b72382ab080244b3fb4952c6889c926366051ba4523dd4f4090d436eeb011b2e1a1560f10799431615e34666403ba11735e031ed5b231f92d7750aef395916f3b32c2376df40d654a46a5852df1d4a20604230eee981651dd3864ea1f41a2b28be8459cb5b7d0752d6718282d6b3554fffe6f85a6483a9a296a8646e4528ed55ce65494e9b981003821021fec68c8a18e64bd542b8f96f90000d28f2e0939ccad1a4f08ac738c598da05903ae4490d87f62a7f48acd2336799b2b086c02bea677e979f0d5065956ef044f491db1e754770d142fa7b68b6d7b0bab8d47d65da27635eff022738973565792544089c096c43acb7173451a4194899828e6822ba8d6c0136c24746d035165c58ac70b679dd79108ea420a448c1e74aee2248a8e40e67435e692956da5ca59bcf0f7b8b920dbfc1547f2212d6bcb5f057bab67a7b725dfcfb01315c1975f41be545393c70fcb619488b5cab06823c4df906960845224d57a5561c3aeebf057807522434c24ae41bab2d2f231ef4b479dec0107ebeee958a3f35f10bc2ed7322a321c99164bded56e9a607c8ed431028d46fec95c69d7fbe4b122d4bcc730f9dd8bffeb94dc337e7308a692ab23d7c6eb9b73b5a4239c5233b13a22fe328048f7860f6a7f1ab152c3b707a040afbca21f043744dcc10d1fe29bd594b412fd545b8d2c8fc8556ca540ae25e80e6439ec912a92239c833408166b33abd61adf17456915f2b82b72c714c7ab0d81d91f569a03416cb69c76082d44b09d4f3be1493b7831672582bc44ce4b85cb183694544f5661ea16c6a68c81159d3e88acc45b1aaa4a04c5e85e54896051171ab004f4aa159896d297ff903a9cf03a69459a4a048a107f53889df6edce150a33a0100e4d08814325fd0ab21251ebbe725dcfef4377ed3be752c6d1396419b1688c3a6714494c059e1ac79f74ff79bfeb20e75173227980a93862f3b3d1493c86a770b96afd17522a5182154150308b5edb5779d453472c5341b24de61453004c7506344e3634bc48d557d1c96101f3d15b526ce1875a0445b84ddeb74cf7897c882a3eb6357c328d95b0a4f422d0e1a86957434424bd86944026f0a090a281147d6ea6155ab05a1840d836b49687135a92228fdc9a7dc48df50505edd0a85c141178e3eb08f81fecdba02bbd3d07c3ae10cc7aebaabe58bbd766c1108c48df7f74ec4a5ede556b9694ab779def801b03db5859427d4eeedd479d8d033f10befaf3bbc5cdd457c9f79209cf8a62ece3af58478340f7be038a3b8187ce17c86461efb12cbddf4bca47f709cf9b04933fb573f34ee6fd5ba9972949c4335e8316d2dca95c60d7a627300643a786197f760c48b51c6de36cf7aac940524d945861102855f8197e0ab452cb702e60af1267332f6af0dd8115c7c1b1b31d58f412383e04ad1abc69151e2f8ef2e570f96ad8c4cd18e4c82d0601b4ff6f065ad545b161f91c7b52b26774314462edc04de7d1e182f93dad30b3cfb5705c372bf53b7c296bec3b60a62351d53bda06605ad236aae139d654d32daed08be69c22c8a2d7702b703bf9c6833e8bb3da9b9c13b5d8f8150cdc9031b3a923c781ee6f74460c56513530f63a11beff2981804ffacdd7f88b30dd209c70c026d11c043141478db4ac2daea8489c22b64c21ae8cc06fc8edde359660a030d34e9d80d61bc025c2726af078c7a0d7ff6fed1b704691c96a08e4c0058b61a95975e204668c31a1133d910db9fbde5c42ad39f47fd7977b0a355a762f1e354e6f3e8b8baeb17381fa54b454ccf58973db93cde793a7297071e8d5b066acb7d35840799a7d9c48dd5e2f507db8a0a8105aa395965944332a366b1c862098aae5d2ed077812fbb655371abfa9e7ca7e9be5dcd7a1cad88158e11421e48e3cf636f98da8e6150470eeb05ce58c423baaa36ab4fe9bbbfe8cf9212305bd8ae8522c40fa0dce6ccc0f603689e820f9692fcb2515b0628fbc060867c8a1d630176745485bcee1f7c2b2890e5edb4075a9062b61ae86c61c849c2f2c8eb819d92a74b725e196221526faf73d0f3392a73a2f08b3bae04c987240eb875fdb8f9fa6452924af4deba6e2d5b4e1d9f48e6e269b3bbb3a51b52138758b42e054ff64d2ed2fc46814037acfa602517abd3b0d4f1e13b8932cc2a8e00d2fcd28a355f09a68ab61c081593b6e08c57b6026aac05179e430b346434206d76f652a174b3b58ff841ecc0ab456d36fa14d5b7537a240c4c892bdffbe0de769ee893d4d40fce063bcc07939c6cf03c4ae866aec22e42009011d35e4204c2cd48a1f9881226bb60a97117ed80915040adfe5be08138bb333d595fd87f242848fee3ff646eadfd3901f3bc793d939b82a2eecaeba584c9d3578d08c2b74f64375468fccaf7fea811097a06b49cf8009d979e676573d2b3a2aaabf8ad4e2a388bf997e1f69f01eee7e25da31a857621f435abf6445e99112a65ff1223c53af75bc946748e1269b460bc6b524a42ccc459af93f1b3939201b67405b67562877bdae3d2015397ecd9619aac2e2797a3981a3b47e385f416420b63dc19b0ed711d1ce4955be4868a1a2de7f520d2e9c43889e8e007ded5c4686cef4b05641848f86cb0a7a7fba932991d31bfe9543405d621a6d9912951290f581680bf5bc55e248b011aa53271e80c0babb2decaaa5ad942aa1a58cb34501f74cec9106e24e85f215022aaf2dce524745387e2414352826a0168fe8e2d32de23668aacb3408b1d5afbaa41f29f8bd7d590013884278eeac13be908c353898d7d973e04dfdf0a8280d3ba6f88bd25e24100418d66445b92e580a645054c7c9e75eec11075b9180bcd8f68549b6c1581239d7caaec4ca85ee6cc952aa596662731ec7cfad30b81e7f56bde6add90548c271a6d72d36590784c511af5eec5c726d5bdada02d19c8b3af7f5e58768085e3e9796ad8081a83c233aabaec0000b8ec674cd9a0e9f2423528a41777e7ebf08b46d1c63a3b2b561edf47a88b1b549578aaa90204f6a908b7d82d42f31c8784e003f699b9765523dace44018b99372d8c82494ecaf7523ca88d5cb6727c8d51204a12d4af0770f9936fcf19500ad6ee51ecc39ba43773044dfe6ccdce6b2d6de572a3933013f8dc10c1bb863eeefda511521df366508c0be55291eaa0f9d06f67c0e33a5258c37c77986e9edc4a3c78c2177b6ea726bf2105b26b8eb80eadde9f7422af016e3c68d51ca1804129916f3a1f60ed21de2a64b19309d55462907e7b8b65e6f906fed6dd17c410864dc2519e61f05c604bfe0a8394f9334e4dc2cfdc3f21634edee7949f2ea8df049a7f71f7457c6014c40018ac71d7f1611b41decb20b008825a6c4dfda77a4d46c15f8c650001d6c006b36eaaec2aeadedf09bac1c9c0e2b113125db8b956634ff92ca32d8bf50fefefc65f5dcef122250f1e35b03191c51b88ebe413a53b4b5dd67c98f39239070550cff49ac5419c07f040b977ca265c91745797b98886efe447b487a8744d52824d3264ef60ca8f08289696ae42d85868daa815d354bd48eff85e033495b6ab596e341db75fcd50e53c72ddbc3f66c8c223acddb42336c0b166f4d2d7c4c20acb1958195c2459291142f5c0ae85e97e37d0444284c1680d777321b7739437e5501e1f4ae7181286beaa05b353dfd0bbd4d577a831679019baa33430a26195dc367d0512f729a490847a65557c4b20a26afc000bce439176396e707a3292a58420301882d9bc2a0ac7bd6db0dec3589f673595790e86e3d2188dc19f60c574b1938d189b8a0a7b9113f453acaeadaf975e33aad43141688fd891cf33eda6f89e4529cb65101d66c89b412e777ac95449b47bc6f9e2122d21cb1c466c255d659826d44885f852819daa3175cf0ff27e2c817ca2f9093f9fe871dac24e14304c18e9603af529aacf40e319d1c9694cd1719e81d131e4e73285864c8570553c9fd31450738c712ba0a7a03a128c1800c68b9d5ee2f3a85b630584492ce666a6eba4981364e84b03d282020719cdd8f2737deb1dda6c4b879c26b06983369bb2a2fcecf87d59fd090b8d5fa6990103a7c9370347c48440147ee2fa0a1b9f4b9e2ac286cc0d050a7776b2827d71e2afa8ecbbcf348ea7b16da420c1cb11bc69a5e48cf7eaa06df73e22bdbdf535fe08de4f30519e490253a6eed88b28dfd833a9f0589bf1764495c36140ae76e834367ad9a67ff86f31863573c6d1bdf394164bceb802cbe13e5b826bc5a80ce2867728318c5955af4b7e5e2490a7d85818b261468135db65b51471a79b20d2c0c064e36d1e56edcf8ba9f00b4de0a9db53d09bfc69d9ecb92ec6e00e7c7544d8b24f80f41d31d6d46f77adc9e2a2f033d849a0357dbe91a5d09c22e5d28bda1a9690055631f455e785200e143f799d0ae7bc5309db4aa70fc862694a6a7157e24495a608b6005cae1ec3fd85cf42b454c6cb256bb4c4c89a24f601da0cfd5f2ad3639c7b64dca2cd34adbac10e323c98b004daa9557a1358e6799751225d2ef17e19cff4554bd984cc0dc513fa9324da0d9f02ff0ff374eac3ee9a4a9130aa003b1a33758e3af76d60b29b7504afd889d49bce08e8f087241eed2739d69cb0c3b478f9bdbfcf56e6370ca8ad3b497ece35126e72a17fc1cc13f04d378b181f2ff36edfc12edfa307a968fa81808f41f54fb53ca56a9b6ebcd4b2151769b1f1cb99441422fab157ad9d0cf73bff4cbb8f2a25c49f743232dbf6cfd9c16b7efbde44cf34bb5ef09a325ab7b54099a19da796b1d4d7b40b6b28ac2f073daf76afebb3a7b470e1e4727860cff464be8bea5b972585503385905191351cf5e61a656905d69d9d4ec9db080409d27971c9a1ce8d0d28110f979d159f9ef078b4062af1f28ece11aa986ae44fc60364dfd28bfd5f3e1a09b9b56eb4227e8502d51c81b656bda790e59005a3d148e1e997b2d5d14733c0b34ed9d46ed73a6ddb1035c0243671fe3237d0a7028145c460959f92c42ab224b0bb7596e67da3cb0a675991bc095b982a05422c4466d750a032820f74a71e2ad6647afb4cd5ad3a95052fd7475570395de6b9c63cab49b38a5b9876af515479377a60d8855be393a98d8abaff17da93e160e620ba51c468df476f8831852fac7567da12ab41fedbc9de845c2b1505c7a3e441f92baa035f18ca20291bd8492721234450e9f89d5331b6e613dd1140837f8d0da93fc18bc3a84c71a1a68bdefe7abb6c909b69970f2bdd1a97d581c05a0be87c30a35d8b6d10ab45d87bd83b7a197bae86c0d7fc852164e59273c918966ece478750a74c414cc3bec0a9f62ad0e34e367b162ae99c9fd8af2fbb1769fc1aa079c232d79e7792e8edfd0246b2e36d5f576311567aeb464fad847d90497f5e534be4cab63b7319dce45be8ee17b8c6ec11850f0dd7243e73452ba8fc359251bc33c3051f35a04a3a97b2fa40599a9f263c451c9cdafc376905c8a558f622630f2a8af9a1cd6ef987e097df0ae1851f949cc8fd050860258186d26e5846819a3320c151b0dbfbc4aeebe3eaf855acbcc07ef16d1b36c7d73b9ee802a91bcff53b27fa36c56e9856b713857ade745f7f75fd7f19c6b68b22544257ddd3e677b41a0e084b1fd71da53a001a2acebe65d23bde158ecaaca51ded00710e35e8a5e2cb611fc90380a8347b0ed8aa4efb929ab53a3130b2db983e7daa79c8a0239862e328f0cb0cbb94aa115fb574b0a4ba7659ceaadd88618a2962846e0d599a5c8857858141425e6642638dc3fb1e726a07d5143c87ff34f63fcf9ffedfb0740a1f459ed8e84cb1fcd9069e227a823466488a14eb9bacf972116b78507f49f04e402c772caaad5df672e0a3ff2e3ad84f18619f121aad9d940ebc4dd9ae3d32bd2d70e8dc2dcccbb027f10ac7e09760db614099821a25e9b56f5b569d79b16fc4199f2fc3bbc6b1ba8bd8b5095f949ea3f3298109afd2bd657c2f1997aebeee5d7d96b5628e36e2420604cb1120e09407f2fca0f0653e7a4096e787e11be9aff98f5c079a9f142f1c0536478dd3e4df34d2b4dc60d3bc5230714e151382c3cfb8dbf534d020827325ae108cdb7e028539be14f2d1e493fd12152c35f1d58316e13571c98b32bcdb6fedd02ce6c31f9e779a98d35b5bfcaddafb3478b58cd727d613f7ee291a36a22b65fa85411502c55d7ab741304f80a7f85220080e62b74146fd3379150f4f9338aa1e3a28424dd30e2663cf2e0650f71b4765061de33b406de538290693aa41f4e1f887d0f06149606441dec29f87f813c2c98af1ad849d6e1f98d8f551ef45efbbfb57b81e99cdeaa8c463fba80cadd5edba36fb60f09cc4c78d250e7c602f50d44861d6df334b82a7bc242359fb5c4adb02804a5fedabf82d382eb61a3478b8016980b4fc94d2138f05129b649eaa16c2aa4543a243395792bcd66c92ddc90735b89e42080b48fc3169c12cc3c0acd2c77beb1eef262b6c0b0677c348b61683cf43438c269ca14a7e38ecbf3cb420f29c7c370b64a5a48f15d5f0f0c61bf2765d80bfd559c5aaa2b0efd28e40d55b548fa0e275e24b5fc26f946fc9ebd72abcccb3890b541f264a4ec44459ec074a0672bfa59a23657dc5cd340b7a5a8f12581010fbaf35def7666a083655010c88f92c369d1216ce84888614c734ebcab3f8f31e3d2d3e8daaf2d1326ecbe8d6f22e4cc21e60617d9bcec01a8dd328774aacb98e3fe3f98c3ebbe1c6845d4682aa7a559c9897e40c35025cebf59e434ee560a78e71c5f362b71a14f649d9761dc1ebae4388b393e364b78f5b3ccb6dcb4035c19406000851d3889850c4b3b211dda22976df236ed0c39aa7b5cfd2720ae51084a6fcd4725d858e2cd70e876a2272c6534b2de93302c0a1382749431085eb11d29e5eeccbe919fb1f0d44b398a2d2f5d61502b568d72735adca62ec1e852ee6ae9107d7b64b2c152e374d10b48e35f977a7424635cc06da96c6497b8136b5603347f08d7ad55c6f787373fc6113f7a852e2abc1f3772973563871b2c0137e7853833a3accdf2504546ff4c594b6f54ae87c1cd54546e4b7491601a979675e56c14050f9ef024ed05513c58ce50ab47e6a5befe730e0fd995907dca1a7741b772b632d09e2db9c405a0468802603c90c01e8b2ac0b82f37eae3bb75532adf0bd6c1391d560d249d93f5aa6cb9d4f48cba823d96fa53cf79c3b97ada9f52feb4f284ff79ad3d5e420ea869cfe93e719ac716a5eb49505c212c6734014d38b2eec75a0ed8540adac662122928d906c6e47b18d191fdca9208892fdc3b6a0303d5fce55ae4680a2bd40d0f399bddce5ec15de65c0e211851e2aa2c6a98f247989dea31f230f293615bfafaa17bfac176c9a0be64f8ab822a23ece949280ce06ff9cf902c32f1854a68314c46c6d5bd12fcda8128b9c39d4ecd2b4bb6118016bd71345a206271ed286d857ae53063846fd8156d795bea19c42996acf50a27e85f239615d963d197b9f5da290c0a2549df196185e605c7cb9a3fa1e11e07e07ef3243cd57e236c3f02d89c658e7c8f3056f864476c58f71681229baf0d243a658d553a8fb54fac932af8f377d608fecb6e52e8355bf36f00c4258f81916c7083b51986af236333b91d245fdddf027702c5d52a936775c8b99c356f1d1ce8f234d7bd6fd3422b8cdb980a06fcc499436b2cf8a6f362a2096c0ddfd3ccbd787371cc5e4c6b19d62cf1ff0ebb29082ac3cc8f87b106d22203b25c8a0d50510e960e0f13fbdaf96bde101b92bf0f4d62f3d275e74892b5195504e616180b23f84e0d01ffbb43e9f8d6a82d710178b0b85a0057e921f2d1030f208cda480ac63907ac02f048df188d24452002dcfa89389efd0f194242a0b7b3282a860809e5818a2d51748f59804b4e9dbce78f0c6a0f42d91ccadf82c6f8bd966f8233bc003d8c8d73e4c352df0e504afe08d4650cebb7bda8cc3a50676a03966e3f486b5511ce77984ebd08ed41bd450ecd43de39238b6c46fc2a60e3dab610c94fe2a82595dbf2b77aa2c87982a81d1f3caacef29e1568e4aaa5ca059b60bb46e7745601d85e5bc4ed5ad471f665adcaf80a1db021c6840005ffa39a5658a4dd2060a11cf9036d794c96f4f2e353f3c7c6f3be10f75fdc294a57493033da0d33d0ab73ba9b849514f959de4e4b8a60b773c0306b25d3307365a14dc70d23caa31846250bc942ee302a891ba6bb13cc94141ad5975c8aa4b9dc11dd6347d4c3895ced26c5d2ac8651414d3a150d80159a331cc57f9ea4a0ff4d8a7342f3c1891b6620c5669755886a104ae1b4dbcd52cf2e46c05a5dd0ba4dde42e064de9fdcc494538fcc75ad173e3b3c8cd82f7c023a89894f7384e23277f9771d8b2ee4a4e61923347f99950d94561b337104c6c77739e1be064929d766d228c08a28cb3636f785be78839c332f5e298ac5f3fecb2fd19e0aa53d2951ce0ab142fdb8fef0f34114a3da7a94924321067721e35889195aec81016c087c10358d5f8a162371a44123c2fc9f1b47aafbe87eac07ae1e0c19240ca80cace7bf9493188e449e4e18c2f0b9d094912282d154c8114f3ed0cac56463544015f288451a1eed9e7ac66e929b60508fc832c84a9b2b080298a2088f9d5039e4faffe65b5c7f2b807c8cf2a1719a670a93ae5af65e906105b78d5c806a565a84d32d69ac2089c87659c2fb7bdd057c9a49479614474ae40df91f98a9de47940a701d8160bc584d72361696d84feada10a52a95f4a891b205304f94a60cc3ae482051cab675058a879662cdb28587ef0a3ab164a07b0ae2d38bf79ba574ea14801d0d3f3555544df504a437a9480d48cc1b457f20b67c6cf815027ea2699ca5a85143f3d42fd57d5e315a5a59387793ee678d50e3110f6237eabfd9f98062a51e0e08f14c25ad9495dcd55fe2e588bf2c1086e05314e4ba1ec41ad2a2b1df75e7d4f55e0326e3110f560875842398b07d425e87c507a075d5d0016b304ba1c82c0d8cc224d3a405a938d5765f523fe6e5bae78a79883b9b0f9bfd209c95c16b4188e2203347f1fa679139b823cabeaa7255f718f84a3a1d3d2bb061148dadb5cb93b02c1c0836a165e869b2290aed9bddc212d6971453d00eab2e67acae4c0402ce4a166dd45f9b746bb5159f65527cbf9214adcdd853939a854334d95e493ad30122f43569a75e3b29c57bad8515bf5bfdd2abc125a1a43b87bcb5a9e68972d5aeeabe50e26830661b0d79157cc4f9f0a34169684e0272b439bfbc36a3c564edb1f836521d3c6d40b3cac1b7c91bbade9518eb138940df5873a55185de23b09f1e6e454a267dad38b26c4555ca46ca07dec63af53b885fcf045946ab768c6769151241766102042b81f5911f3a7e2cad3657b4ccaafdad25e6bb8d7bd6d5a66feab96f4162de24979182337c9e65adbcd9ebfb418b67751ba058e63a7b200c433b845a1582c1f52569cc80c5f279dd87cd466f8c7d9f8e9d87d0c99f2add4431ce049bd18d7767030487e02dfea1b089f1732dc36d9415c709fac2e6f1969888a32fa24789a7e5a45118bf372fb5b00483004ddee5be5d17e7f056100d221cf39d1803f9a092c0f5e694688d1fe11c468e97e51c348af5ce3b7db676a9d289bec98e18367b6ecb4a3c7ac8e16a552502b329b70659ed98d2ec634d7669ddb35c1f9494a3fac0d1be748158fc046d843640499fc5e5b663101b656194a88143450a4ab2d0dbcb1923750c3204fed18a03e893e07dd878c9bce83403a6d2181d9f0d1d083e74cb600bed7f3c12370e14cc6e0092643ad47c420ded9c3d947d9f61fd1a8acd0736dd432bcf994969a6f31b2a940f773762f964fdf1bc3a521c16095187d01a94b580a3510a28a1aec82ad371ffd15e0e59ef8da8d10d08154ee4dbdf31dae1bfe17d41e20bed50718c74f2cd9ff025590b752373f8a3dd33cc31f38afacb8d26c3f3a7919bbc6d30a900321b4d80878aec4fa8619937f8495f7f6930a52d480d302451d5a486edf431bd9d05d4f818fb0acb960d2a17e96db683f5cde9c95d721008e04e94a4511cc07ce74b10244c422f65bdd05f5ae07f58d820a272aded9f66932e2930b4c4f72719910b9e44e2f3558d7fc638425da4603421a6bbbf4c58ac1d97542559aea3bfaa9f5fda5540c669acf52c1a7019071dd2ce7983aad64482259dd3b13f5444d72ddddf13c984580cb02efd34cf72dca1637f629aeb4c147bae6a20ad7070b3891993a30721f49a10a189986632bfa441ce679a5f70cbc26d1d68789ce8638e1ae8d187152fb3e885f6e6f8e224d9b8dca6fc6842a9a6d13f3ffbf8aea92ffb7002fa140cc3c337c2be6c91832a7c5749ecd975ffac92a6aa09234ef482aa689e2ef026895613acedd7480e19e5f8bea19acd24d6c0c6bff0579e2111e079daa0a6f2cfee07444becf946e94bcd864356871cb5d64209cfdd0cff26089398ba6d71cad24c1b605992bb7fa33f0efcca7865717627aaa16a9d804b962ceb64af4ee4465ba79005b6fbb207106a55a87015e8272b4f8869cd6d891b0aa502b44bbfc4dc22e764d7fb81472a78eb92378c9d2c37b57e5b0bd4368f9f83a749a64fb1904496c5941c07b59d437fcc253a5410201d414db030afb7f7a9a0c3c6ddc2f276fdc56a18e9219c58d814eaafaf269940b395981ba87dc99b9fff7bd87ec0e1495f3025a87de2836de7c09ae7742a56f6da2be9df59b85001f9eae1e2b49a706c8f8b1209e225424fdb30a209b7d5fd54d12fa3f79b029b0b01153168190ccad4cdf339eb47fc7b6fd183bda5d24ca7d4817da023443551a729224c65df481aa0611183db2bb9223d04e1817c20135b8293ef3ebfb8077b8210176eb4fff795f050d838fc48c8f9a23a51a776418bc1ef12264ebe8afa6851405c91bd1267082b049157e81f296243983a00785dad3f4153ec03901f962648ac8f4a85bae43f51c88a28d5e4bd264cf7a07c9c8398e2e11d3c12393ac2f92d40c8c7d02eb502fa51736c9ec5570a404aae25c5c3c4db8643d0df076e482d4305c05b09edb7e828a90c4f6fe42073b5811a3866fa4efc576621bd4c8ac644210c4dc67bd602cd3d7e860cc41451d14bb65423879f2586fc4d8995bee5db2fb9a267a7e174ebf15e4323e1513c56e41de7d6eba0f5e26e6478231c6fb767b11056057ff330d28325322c3f34cd618631a3af6deaa51f184a8746f0a5d9d96a6985b08e8982156cf6ab81d658c9fdc6de1c216ca94f7f505792b076871c87f6399015fe27a4bdfbcc1148a165802472cb24d0943287817d9958cf0db57ff376d700bf131f0765a84e3b3a5d631f159d02d63237c59964c1611ea2b924581d31c3efc0ef534e53599dc6d1e9144745b05d702a5a17b1dbdab2189a28f0b6938e91cc8498d68ad51f1d43fc650a364904b4bfd631229fe8d2fe2055e0540a758cab944bf14d6b6a837c23169da4203ffada05012ae720566e6953740e74ef207c9e718889bba7d318f715283c47a374af4d7b5024010c962f9cf853c5017e4c34a2857ef186002fca2973d4f1aa6438330a332859e11ffc21d6a62dfc5201e7af24517ec6b57388480e6937202c3aa263e06620cae9d90f18a22edc0c234876eca03c2bae5cc2cdd0c43790a0328d0db6230552cab5c95784c9cd481686ae4edfee4c5e71560947c917cae7d0d7ad5692702c5871d5187f4aac318c0afcb33a84818efea696d102a566274d727388723275d027226a873ff4523e3798ee7cd20e95788e678580fe358ec780d83fd0d60061dcddeac0143d3d52a31122a4a31c6803dadf844b8dfc6a8f86a9b906467cd165db30ed5b0a1d5403c2e89a20e83fa2084aca65529e5f9ae1fdc6513db1ec2b915b7460c4eb1ad90fd1ec70246e0c1e2f44186d8672821b7fdf2f802cfccd9ee269944b4edc3e721cddae0a1b38e2ef3dd8b3ef846b19c105e843992a5ad91492a0614d9ed76b24bbd44048763fe4d3dac29dc8038c5af8a38eb1c828414b73522551161fb4aaf2bce0867b1c309a7884c7bcd359cdd3a729359aaf5162ed453172575cc61a9e13bc53b940699e8b005d31b7989ef2425fc0a655896c24af9290c62b37596df86c9a987000e77fb7ecdac2850e8bc09b158f0f533d8a03b5557e0e9e61a620a434a63424129e48791d285c035d0b4096b5e2e666e2d26cbc109f452a56f366fa3a68aa7a6089c6a06a83074981db0649a530ac0615dfd606f058c468ac547122ff98498f1b47e83cae59bca51c9c116ce5a75bf058bf6b799d018114e6dc6b63b423b947b1513cae82e7045b69bf1268aa29f6527cbd06a72890caa80bb0b91334bad9681b035da80c279a12980ebf228304c9cad7e9627e81143006822a92af1119916d354653b16815db3f280e3ce27bb470fbda1e6c88c191ce0209e37cdd26273224a87aa14ad6639226486c8176310f71bfe232da2823a9a0bbaf5191f9ddb05adc53ecfff28c9b4fcde50093aad13e9c14612004ebf33516f461694f4131c011c36b02878bc4bf64af25d74b8f9791bdc4d4a82e85293251a320d045c5b00f1db02c6caf43dd191f96f3e6d42347f8d1167d8e3d8946ed16111a256ef4d8b240a31ad1c22f774c9f51a43da3d2d17e4aadbf89338a8bcda8e437bad3f53030a36865b240e665141150e7fe8f6f0a19304d46e1de2019951bce5c464659aa0397bf3a0778071ff84c8ac728e74656322b1ca3e20da866ef111942273368c33ceb1c92aadaf94015aa2327f98477721f56fe530b82310afd8c7bdc094d68d25701af7836044b04c5a8a6c7254655f22d49618e72a2be41aac504c428d140388c8a2e826154a37f6154cb7d7b24fba8aaf16f6e6f4cba95eeb75c698d718c1b1f6c68516315b914da11c6b641390b34e27fc977231490e24af7215cf2d03b56376dccdaf7c2392aea580312c614be191d3a17f5a4d7343556cddf55beffc62a857b44e24d200b7013e4be44f18065de9fdffb8bd9382ce1828df3de3d61e5698233ec609ddc272b9dcb00feef0477803aafee591a259e63270e5e14ff9ae963eda062c41271e7328831426925169fea90f4871f19c83bb824f74ac1526fab247cfa7c2668b671a44c3e56e83ac73564467123f146d5685ba4cddef3eb38e6a86e06a2de6a4257c2fd39f847fbbeb2951d95cd3549c1ced93fa855c6c9f5fe432f69069e452bbc7d933adc55cd8d55442cf89b2dac07c0d64c19f9fe1cf692b19702792a735be2eea171c38ce6034769d6c52d4e94567a8ae49abb41a7b26a15fd8bd79b797671dd0b12933003a020fb80b5cb5cf4f2606814210dc89e2c1d2d55f3e7e463ee85cdd45bc10b1fef1f4bd8c59c7e88094c7f0d11c3268b7f4d877c3af996117c20c00e2ccd989b42eb7922499d67bf075e6258ee4e9f0b6d05178ce8e5f2d6135599b691ea79af69b01f03ae5941e9559d1f5cb518f44655a3746626c8157596db9a03705b05e79c774756c39467ca8434a6e1866ae77aa630c5ea2cad11cfb6c3e0b2384c034cbecf24eeb614dafcd902464e37dbf5e55b3c59e23b5058f7453e830528afbe8faadfffb7287b559640b1adbe6ac74fb95640c9ab3b6bc5dc7a5ad96cbd7adc2e63e36effe30a4da0ee8a76abd048fee51542e7ea699dff7df0dabbab6b647325c2bf6f01c9d05cd4e986c9bb3a806da7523ea544afc603da81c75605550977b3142491b777d19a041cbaa4fbb42b4cafa0a417a864ce5c2bf7b39b9b663b73324d0fdc72ef5a73b6e78f8c3d55efc085f80384da27f4ad07b8046353177114073d0e63cfc82c6e1653a6d3ce249c8100dc082ee43ca7dd0ffb3a9b27ca384bbf0aac96940cdf37eb1614cc8d70d50f262e8dd13edbeaaa081b110ea8422281fbfbc9314c4ca0f86334862400bf665c4faf030219efd6f4f4134d7523430bb4bf0604d31fa45555c0cad26f556cd1e55436732743d1c6c62683c631518aac59fea38f4a7a6e0226873606125410bd5dc1afa181a0cd3cb83bf9f0baf72217a2c678610d2fa3ae750a42ca8450e0e8d0ef8dfc8f842c3ec714ce067930304a6a801fff28a93cb9b91c0551c7bb84e18c849c1584041a94f0d67cbe6d07561cf9176305f669bf737a3c86cac4f95b180380019f12e4757de3feaad00703d651c1c913d43b8c629219dd97549634812823b1d075a0cda37e9ca633a7ee975cf76d99b518f60b847a969f09fad86fad5ab1b2d2384f03a50b2b3408f55aa28c18fb36767319c10f2246d41ff725e33fe5dc7831643f6522badd1326fcea5aa936b3d879cb8be616c9a19c7b91f54c3f5ac6cd758803dcaa1630f576d68170c19143c1448fc0d9f5dfabd927ac5a55f8b270508ef4d23fe60faed3ab536b0c27b1825719c757917b3f06f407b5778e533cfcc6a18cbc1d303f2f3afaee04f0d3feff5a7d3dc14039b72a9840699de134ae145d7f5dac14c962a2267ddefa3c76729d7a780367ff8a61382aafa6900db4c8bec8790148d7c2950a85833839751a06090ff5f5b4baebdd2bedc0693a1f49da53aa783eed53227501acda02da14c666594018d6a603f9f907d92f328fa8060906bb540dd6024189a4bd68d312f598fc4971431084e95fdc0dd2c5baddd9716cf1e16ed87efc6c936da49bbc93b4990f86989f312933c7d677051ec3150e3d42ba91dd6d4bb9654a29a5f80576066606b2d38890a29728a713e9887652dd0dd51391214a820309229a69937f9344346d72d1ccccf4ede5aa29dbebd5a84d797e3f36f46b9cc84512bddae49f55919817d2b51d2ef987213b8db533fd3556a35aea03bebfc685fa78efafb9ba3596cce991a6b365244d615cb8d407ebdfe0616445ea10b9d8e4df6dfc1b0ea3a0ab4dfe719bddf6d241f21c216fa86ec468afac46699cc8e589b139a92297c8258ac227287251416d2fd194e99f91b657c329d3df2195e9db2bc744431271222e7231740dd989edac3a91ab5b20b595f2f06f16dc99ce6a937f0b50909dc8c59afe0630fda100a63f669afed0d5a818a584aeeead95c84e2235e55b2391ef357dbaec20f89ad25435c68d4b4e03f9dde8e68b4e44c6f417b9f804a7e8355de49addf69afe2d84541976c289714bb22f290fe7462317456919297a71221796856bfaeb9069218a9e699aae699b5eb9e24be68c74ba14d3aa9952cebf462ed98a2cd566f9a03929b68c6b6ed703ba30a6e99a97e3fbf2b57933bdd3718b53be39a96bd54c2d29839aeafdcf12b46b442eede05277a539a17f0b84d8f718038bd9ddab1e638a9e1d330694f9a1591d618ad9e994d97242cc5ffaf463f6abab96f83917262d89ff8d8a9cec8f8e199a7827a1694a5d3aede54455b777b561216f587cd239bd46093ef5db4c9ea2f395d240765e03c5b9509413a1ee84c2c98fc46427028c1e41b0623a0fa636bb38a328a9cdce896821e4b2d7b07234c0604e3ec27ead46092e31122025b2f31ab7b1719b9ad9794db39487bed7b80d9f7493324718b27907d9794d7c7e57c29f60351113b52bab0565720e3b81ec771e65f20b67f2763e65233911e7b8a8bda294dd5ddee56d57f56e18bdcbce91c9eb6e5f8c1f37bf8739167d83dcdddddddddddcccccccdcdddddddddddccc3136333333337777777777373773c6ccccccddddddddddcdcdda13b27f6b96dcdd1f12854622296bd4d06cf0e366e68e68aacbef3133ac42323f6666666666e67f1b8b22867514921fa6df7b7ecb1f80adc99c0ed8b258610bed611f1282fde350d062c3a6de6fea71aa2d85bdca533cbc5f414cad1ac05f3f423c85712b504128f59e5330ec1de471aa06f05f2168ad3eb0f75879601a46f20731cebb5f372f21bbbb5bb9a5293377b3a63233338e963191fbcefa7c861c3336813fea4a71666ee64643533df9c3f79eaf73ca0c452fabe6983bf654f5d33e4ca13d2d794682c9bf5af2df134cfee5134ba1a9fad0424ce2a9c3dbd581b635d8a94e8ea099a3213eb505e5c12db9f43b64af889634521efc39a48ed45510a0cc6e6b417d8cd48718fa6a6c5cf239e25296d2362923d1dd4758f2dedded43fc13ab2635ae6ef8dd115e01c39efdf945d805b3189e96ab5bf1bdaa6bb2e62ec8ca2a0fc71e07555f485df7b4380a4d5535b3e235c75573668e6f93b90de8779ab33ee8746d94484a2ead8cd44fd23a530bf5ef6bdb3a93c8ceae777e2673ada33cf6b32aa4fec3570d148a832397bd0ad9de7175fc8f4423918e76afc2bdbd5d4aa5d7f19b84dcfab9fb133526a343850e95d939dd0d5b2c5a68aed1b7d13277bb7491ffc067e4e8999030acdae9c14e2f29fa406ee74ce7266427672f84a0e6f4617a266ec1667019cc4f289b51064be124f8097e829960261887a5300e13d00e14a208baaaebfb63ad9d7bbbf7f32079eeaeeddeeefd4422966ef7c69e2708b9ecaafe465a63b9ce415490ebeee2392257dddd6396dd2c736c2ab1879895e1d9f6879581412060d47f1eecc1d8221c44a250163d980f71e39d3c1ff4783e40e0863dd8ed1cfc300023f5e4a9d5f8bc32e47eb3ba8356793c9ddcbfdb6e0fd9d684e5acddb387310c0c97aa606f6abc41924fadb7e7a41f3d7a60da0641aa3ce2c77e3003028cbe021475836a7143c80c19338f0f4ff63f64badd1e4fa68d74bc47848328c608a3a6651e37c9a3cf12d926d5b67d8800e97f2ea517edd5a3ddb09c42524f9e5ac3056c66c8fdf0aa3b6862d9c6251e62967d70700516fd1d465ae5f14ed3a688cada67daa4df69c87d87bbc1a81d845c2cbe62f3737df8ab09496f3bc1ced44ec35540f4bb55790cd9aa2fdb9de5313c0229c1ba6fa662aa23f71dc35abb1546d0123e5968da2b48bbdaa40fc39103af18579bf817fe2ec79bf2905cd53b6de2ee1c170f7cc226f66dc56376b11cfe37d96374a49c824fc6becb38a60aea4309d30a9f1a874b53d0189a0c2d404f9e829e564b184f8ec9d9511f3b59c77b4721d6aeae5f8c614e430be13235d0d4a513c06ac6d794c824525b4927694d5b7fbbfbb2ddd7d803a9d92f0987def1108d0baba93d8da4b395484f12e999fa1ae6e1ece16af765ef492263e601bd3c4924a6350e6467639533854b5524b7f3428c12a9e588b2cb442a0eb095c3c5a598e3e549227d6a120995bc80e405159fe0772fd88c7230a311337635706ca12817e217120973e3709831e37b8620b7dfbec3c17a418583d5a81caee5643652dccf128d9fc395230a6bacb938588b83b535e63e84a2a7f7fbd0a5f00573f8c48b430b4571395c8e1166fced0364b5d57c338d82100a74c1d7cef76a6315a2991a46da146725cb98c8f7309d65ff48dc0e97e20b315c8aa336c5efcf129984ecb89d199fdbe1d3fbf89c95f89aef596c586e70e8a88fcf7c8f830a8e1d1662f8c4f30d1132623e381595c3a5a6f8ef614b7d78e6fb108dfa6099efe160413114f5822a871266fc8886ecb89c195f736135fb06b2b3b1822bce110697038aa0d78c3972b86cac6674c126c7177d03d9e1907de7c20b02ef6d6407d299f141397cda8fd9c707e1f0c9d3ea3499c913c7132e451c2c2ec5d770b0c07841153ffa74b89af139870b2f2cbaf06a53fced5c78cd98c335e3376afbc89a71e370b0da14ff0cd9e160cdf8826ac65797c87540002b16a2782945231d54c81a335448500eba909a1456a4a7c915f979a211417ec0d8ac90a032361df9a6aeb6a062842da6c085b43175d542d284d6115a1649386945e1ba118d7448d11755cc4e7e1730f8a2660b420260eaea8b1fb8907fc6b644baa0c52603d9c2139f17c81a4684e1450cb62978a1828f0a6468eaaa0b2a4c903a5de47431031bd3a7aeba80c14a53170d087bf38e6cdfff547cf2ef9db98d9af411eb46c866d33281c118a51c8d605a54f8a493445c19c10a9ffa77f8e49e3d59000c0c15b25b958e87e46cdad7f4c94827dadddddddddddd0d499a4ab1b04d4b2bd5b4ffa317352d8c9af6bb1e515d4bbb9a1d0826fb746e48115e02a14e4873549bc60b92a0d9802e0e9776557c6ae9d7c9392f20c86e551b88915757a51be8bd913a559bc29e871524e0e16b4ab5a916e55a6c083d61052585bd0def2167640921d87b4dd9808120882a9248615c8b7241e0632f751723ad4c9bb6692408b026323486ec5635f7bb179502858b092732e0628c566a5f3627a5ce6b82648f38a334c53ab82485fc4d04c4c6a0f3fd3b329de42ad90f03c9ff48b6551571695b63965cea9d1e1ac87e4814e544d0cceeef1e0c66bfa7a12887ddfb61f6dba1f3294c39b5675495d81c1bafe1d23683966be1d7b9df5b10d26ddc89ec3cc73bca114ca332eedbd41f63841cc6b5fb5299bdbbbe33dba76048a4ae68a0e13b1a60487c6a1142fabf1619b9047bd9288c8361981c4fc81ccf6994f49c19de8ccac373667bb3644443f23bb7d13487b450d78e5790fd9d336fcb22b46e926a01186bc1b0c7ccccccccccfc981db0bc04fe370a72b28b407ea38156802f9ac4f0c6a58d5c92c15b31c40e66a9b4e38995b94f810c30eac1f0244ac4e28526c9b68680c4ec34cadce7edd20560eeef076063d0b9bfb9887494b6b453e78ad6af2ebbcc8d44f26bbccca0212d0217660e2e4cd767f302d9af7ee9d4ba6743265c6278c3419b2ce4c6b415b4aec26a65630304a3a1097515aa9093b3b3d3559061ea47066c089aa648e826ba8956d24ec4cc55d036b21375139e8256e229f0143411fd5acbb44cabaa2abbd8b5bbbb4cc334cdccfde97e1ffff8cefb841c08d933706f075a2b91fb5aa8934816ed676391cfb0f3eda0a94b07d299bd1a268361d9bb0c9f5ae02b3e3df1225c099f711bbf712cb25622fd35f68f21fb8e314c6b9b66629365d8679a125c6272339bc96ced91544bfeaef2388a51ab6994473972ad46869e2ec302d9b94a89dc64dc8f78f65e86412049a46b4e2487385979c4f768c449ab3c625c5671a921d77e844bfdee3ea3bdc540569cc4ca83bf3b2373bf359bd9dfc19cd90f3d9c56d3a6eeb49a5506adf2e0e7fde6d576ce9778bedf8ff06939170f480732c8082d7b75e974c84c7fad1bad5695f311e1f0f36f2f3e612217897fc01b03eff0820fc32fd8d969933fdcd9e9b129911d8cc2257f4dff5845765a94a9b9b8f401f28210673a8cc225872e2e895c992823b504790d6b1704ad1cd5512b2cc73ab9009f58cf07b0a969d87ac41ea432730f9e3ff8d4a1c035e7d576508f1f3d7ef069b91d5c6a54e446ee2245324528c29a5d69c624398c1a8a0af40e2932977361297feb2ad817dbee7458df2531f6dcda89079c79f62a334839551e2eab3a98a801466c318c315e187f17c320a03873b908a7dc7deff9ee33917dcff73ddf5d666e48bff7b825d1238644032c102be024c6e54ba51d14c8000c3b58bcb05a51b0e725e053915297bad4a52e75e9a54b6d6a154810e4e055c4f7606066ee3161404e90104687c2218450a76e0b1affa57cf5b115419bc011d49f3be6d84b800f6816a02e0a6040d5820cb4a8bc7427e648102171249545c3723fb8d40fb91e30bc0b0d9f0181f7bac7ece12e90dc92c8518b18637cf16ddae4cfb61c60e61901cc3e218031c68c04733d96c0b32c6248b020682e8004c71cc32006ddff87d7207de1e47f5a80d8fefcf6fb1de0dccb48d0df23e0666d107cc80de97902f62273f763747f6568ea12b3d8dddddddddddd5924c9ada99821889318172e3df8fedc1d7b6f3f108039f3079b3a25dff780405fb9b25ae22fed8b892192839c937fb500be0ce8217dc5ca7c3173485fb9321f47e47d0e71f28f80316e48cfc769c9b9d20e1d5c14f91b435397e56167b688652d9445626596c9deec6a9f60cf655aa06d7123451d4959fa8cd4e3e585069836f59328d04b82787c90ddaa8a70a95190db404e0e3764e0e5fc90a0b2dd985f660fc3f1798688f270cea6f7fb51326a5319a76c8290d4ff487195412cda6db20cfecc3543f164582a501096b3e0b681a7dd0a56f762a673695f11ac27d3c8e20a2bb385a9595cf19aa49d9e18ec0be9237985746e09f6241b4257ae5cb942ea714652f01e7e91f8906bb1017ef619672472dc122d298c14ba72e5ca95547f6ad0d4e3629bb6f9a599cfd0d4a5d368a6bfa692be5a6ec54d6407573ce10ab21ad57268039938f618f62f8dea87e11642ee63015970c525e7d9c1d5a4d942a55aa2bea9e50c8c228c2a88610855c8e006082874a0808026555c901b7169a368a46333d3d455142e2668ea4a0c5653f1027db87145ab0657e8200d39922229fb07ed8a2c76684225e7b968a4439362467663f697a4e8ccfe1d7c822fa4a9ab2836f3337525250c2631835867113acbc55e4942deed4c40fd89dede5be6518ddffdba390fa9ebe1d2fdcfbbdd03b3e62166aad0f33685dd28bebfb7f57bcc3f1b2686dcc75e738f6d6a8dd4ae36b5386a12f220f73de424af99af5e2c7322f75b555bd6e0d0d8cc13c4fa8ebcbb3b32f476ef4e81dcf76eedd6e71ce69cb7773b166184118886dcee1d1b4322f7b77dd80f723f2691dbeade2096e6792c8e4655b68fbf4cc3a800218771ce258cd32aa0509590ac226bbcb75af21328ac6163ddd76d5cc16db0b8bb3b8bba0f7cea90b481a3abd860b9c182bff738dee12ada0d1656e507886f0f0e88ce556aacfa0a6d0526ecd245c660cc3c9e7f70346aad9f63517e1352f3488053918b3bc82d6118863dff802268db1036594bef4d30fb771d6e359e17f166a98fa7d5d85a733fdd9a31725ea33c5e3b21bb1d93df86bf67636b955c50a8c68daeb1b58dd47ece359c86dc7fe1d37b9aa85fb69b90dd0edd99fbd9de9954bc861fe735d80ae4fe0ea622334fa4914068ead2754b3525678ccaa96ef1cd4b291ae99011c3074d10c3063f104308ed8964410a9f18c81b49f840919f2ec808831585309c20220c239e8431c40ac0b072058c299f27c0c05181f1c50cc070f2b142fad41518562001c60d1836aed58481b62124b28333fa70a667e6f2421b3ebdb90f991c99fbf005a7306a7d805340b13217ce3c990b6f5ad00571e67e07577319cef0a983357369f8d4412594e0530d9fba66c122f814c301660791f02d660775f8207180ad50937628c5dc6e81d41517349c16b3a48516eff2eef6b6bbabbbabbbda6e0f7497b7b82991da77bbbbabbbabab6dace15274b50bd62cd74125668cedd238100ee8057ab50b870a87cac64dbb40afb57163e34693b171a3c9f0e7e32b7e3850bb40af76b5d0d28e68eaa2d1d0f0695ba3691c251a125a8d46c325ff4ea3594ea3d996b9db42c84eae629b7825598662f8c92b49531d63848d034d5d3a1b2f25fbad44f67e2791ad925d48a309c5f0c9ff71447cb6a03ec685ec4231631009c56c0c3bf93b0707937fb1500c29a40a21919d2623c3a716e498beada9d184681ad522645318d7f27448d5c89f5d2866882b642687785071a1982864d7b30be58c46365e2f9a6fcaa7ceb5b9fb7577ab2a8c43d4d043066316a13b7cfbfef53e182304c2a9803dc7489b7a5e25f51c8875027333a1c12d915c1405b3638e40ea5879961b3eec6ff886fe2408a4bf5882f856bd514f216c3d29f49753ea6a146c14f6af055dac3631466a9d0859322c8732c0d93aca83bfa180bd1f7c755a070d095fcdbd03ada320f79fbbba2b1277d57f8ebdd7efbdf7de6b774223cda0b35fca435fd3c7be7beff779c387bd32f0763b6fd476ef2935f480350b0bf77682f3697797480fde03dc66356b04cd8a8f6b1694592f64785f507a36119fafad735e5ce27f0bfb060db9cfd3997b8b8dc32838059b18de28808765d664bc084d5da4100329d126a7b5046dfbd575e6a220cdaa8c9cb9f1bd62b0183398981d0c733b1d735b25c0ef0cd9849f59dcf57dd87befbdc73d00dce316dea9aafa7bef45e5d363cca7bbfbc33e401ed7dda0aa9ec39bfacfdbbddf1534dfb6b820985357f775a7bed1640d487f6c0526088107123485154ad040ca4c1a52547214775063c61b9f20ae68544c1240094fb494c0c3e47fa31a3f14e12c971c21093f302667ce24cd1494237e60032abc6085032b3c4794f0a000937ff50c293df87084131c22a4baf809a2069b22c305f385c959132fff2ea51d52904045896401880f1192c5881ea488893685dc585f4809e508e9c14122e1d4d5ab09b3fb23bcaa7c9420a30797d28e776922372fb61f88918424c490c21812c7d455941f9210a50673f4bc45231d2f6de27f7963c8229af3033176522850d6922352482dd101186401ea8379bfcbe1cd1ea41011647ff6dd0b1c92805fd292ed9db444fbf87918eea191549fda5ef3bce04099ba3a634a6bea0a27059386466dcf1fe471a4eee70da1078540da923cff0283277bfecc90fd90045cb9726566ef1f20d98783814d1f92a6626c2fe4cf206a302300cf9890eb417ac1919db228d05ae3f032318d6bd9e65af6e3dc07a9263f4c644918d8c4bfa4172a5e94cc9eb283b9fb3a012b24e0bcb84c149b2836a4d969ab7b2b224cd97fde3b7ab43c0c0998dd8fb95ca72e979fbc834ffb1e18bc2687b4a86151824f51d38ad0f40788fbbfe7f1bc973d43ae03ef756a35482a85184889f9cc906386584ba4b63cdf69cbf31d4b0dcbc3b087f3cf70e85707fc77c225a0af416216481049089bf86390d61032b337880ca41046f92a8846795cc8b5e2108e9342a450cb27ff67c8eefc0103c3a5dd7a6f68da7683249fa549dbec1dcd0a7f8078b4b87984ac4ca32412260c452592a5fd6301c94de40c4b0d8b0dcb0dcb147cca9e7fb59d36f18758da4e88e599425f5e763013e9d1f9e9e0ec422c162726933a16b4b7667132e40f2e75a11b246981d0b3702d428a6c0cac44b14ab1bc0e2918f6d0800555ce0e0b8b8dfaf03c3f0b133e31093473a86488e5f170120bd9c91bef216d7366f25f21478d123dffaf422c298a339e8f9e7f69940888a7156782b489bfc5f3f27548bd2784e5e56bad4476219647aba2b34ab1bcb69f19d8c3d590a5422cef817cef3bfe39a290efdd5d44721bbfe152c3300b49beb3d4742c371d0b322c2419045e91ddcb0f9846d9787eed07979889e4d9bd686a3fd86bef2d90d6e467855a8dd2147f28146572177a916218c2132bf87800b3902c2c241662dae4386e8870dc10f1e049e3f895e3b821da27bcc2824b2c010b845e722d42e4b33c0b572486213cb1d21808d2bfd35688c56a93139267a72d96b65888e1126b8a3f423ca91a2c356d8a3bc8ce59568dbaf1dc45e9abdf69d40d8e4514a3b6c3c2693b939fa5903a3b969ab8da207f1692a624a90649dbf4586a623c29961b1ca9a91049532092a69aa5596a586a72bc36def102229ef95cb1dfb347c852a38c64dfa3519b32b28490ecfb8dc08fdfbd4cae453d2dcab5d4807d7c1bde93ea7704d9c5d91f096c0a7ef336a8453f879d2ddb0b819ffde77746528bbe9125b437923d7c234b7c3821fef18dc0cfbe492dcab56c9c90ec21d7a252e384c4f737e25c8b72cf25cf7b560ad9a2b5685c4b0dd9c3f846fcb3b7211a69fdeea7c7f39ed746b9783a0952840b21435e21124208211108218431c2ccb32a1eb123b2a3f6fac6ccecb35720fbb12451677b11b7a83db8d469942ab71f5cc32772f42e2580bf47489d0e531fa687401d747049477cd2f7efd7c1a7f7df580c641747ca386cf37153b4c71362cfb108238c1ea1c32c83915b2d3d0cc31cc3308e08c61806318f8761191b6f1be1bb4faac9512335b996fc3b97f91869d392ff23452d69c93b1ce6ee2e37a4c8648edb1219185e1462f00125e041c80a279bd9a8a48d973535756a4600008080024315000020140e088562b14016c7c2bc0714800d729a427c5a9989635990a33888a29031c410020801061802c4989a99b941000a3ce0ca3d44e60a2ff3247324dc8aa53a2b07047a7195f73b599fa5a2f8405028674a039db61451bccf3ce6f61f81178148c012aaaa35e5779ecc4d9a72fce138f0422cd8157dd1b596f59779d894cb873b97126e0b8bb94133129df468f500c2b05514a826f69463a0f1ac577750a51869caec928b239569a3880d491a21a9d82e3322ee9ebe86894ea7357d0d5a5aa5e9335c235242126e6f0378e9a55f2bcda2cabb88a1cccbb5523666793ab6843ddfbb3dfc6b1c4b3a82d708d32160833cead2e120271f9d52ace0f01fdc7dd1138fc76cdd4aa0a63a1dce49bd8d69fa37da231c705eeff1d3f7233510988168d4433ac2b9c8127410a5fea6f15ad33d5e87338d1a0d2310c3305aa8ee1a05dc78fced106d937cbcd16cdaf4836fce552b6f0b834c4474e96584d81ab500f7ea5d1794fff02f715a8587922bf9b9925d3d28e05c248ae347766e214b1193365b9d9ae3880f87e6498bab61d101c6dfdafdb121cf2a282f133b775ab9a49b476fc83664fda6ae19c5a6d11082a2c30c8745c5ec85f1a30c0059a9d803b81d2e7ab070418978037b761215a40c338688b1db267324e08ea8d3a66210a64308d0e1124f0359cb4a7e14f6d43612090c027ff87d6599030e7d8c5f6d7f749308b772a99470946a253e5e19d21c13a6f5deba874267405d22a4b58a9298b9e848f643fe1b29b473529c9f5ab3fa4130e4e9d97b999641235a71f014edfd5edbc9797ba69b41d1b6a6ceae72dc254d1b39e3034745621670d4d9a49620e2fd5ba67482228a194be26f4b12930dca56bb5b5bcc5b75a87699b97074f13d1542485d775f73939086430c6f71d14013e7fe549ec814ef86435c9b38845f827066bfc7ade6bb4fe2fc10a8df12b95ab90b0bed4c50c2c78f98f41cd159878cd5033868b9e45b647483fd994e0b368a8c20f9f6cde729a8c5c9e3c79651569f91b653d2f43c13dab8ed84936c004ac62f0ada007a1705dceefb5c7e5d4a98337299f8b7b047ab72ff61e78cdfa4aa612cebbc49ded70996b99d00d5eb9a13727d1d2f3d8b36fc2d9f7087905843eccdd02e183c616bb3204d8dff41e8115b60752a84af9c5bd262b729755365d4d9d774e285c8c6f9949a17dbf696ac139710ebdebdf050c78cdd48894bc3e085bc4958e2e81057cafbbf602b5900bfd61bb3663bbc34e8f3b5f42721c8a06225440f43ac439eb5326135c7c19fc18a18361e90dfcbdd189cbe9b907faf9b5a3738027bd58d53688886ad963a456dc943e183995eff65b93ccd6643d722d4cb6862c3242912dcdd973dec10329a5ff352844acf1b4cd4a46fd65388b429d00293484db6f190163d61584178a1acdf21492b36ed1b11f03686b530d3b4936d53474a929f914c47ad7e3dbbad07bbd443718c30ac9c46eaef8b5ae987c277c0951e535ad78914149da7a66e6286d89eac9962ff9d04d6578c92f5658458f2f2e3f4a30ae08161a87b08fce4cc8a3a119c99026da6e0c2c7265075f79e3c40b2412c1989547eba4c997b84643748ab633864a54c8170b642aba3e844cb0324d1bd0e96075b49697d463bced406e74e9b6c9c69381bf3f019858aa542c0128039e4c3eab90065b6c3c82f1a68622109669fb04e63fb2695e7e18137e718eac61ed93a1c2ca68b4361fb824fe34b46bd894024943f2940130270ee282e391c080417e4ceb072cc3e0d10b45e2eff4cf55eeb7f935efec1409b119f60e3a5870cc71f9fd6a2385c853d9c1b59e95bd241a59b033cb6e9b08a0d7ed34e18e46071b715ccf076aa497fc14e22e9edb367821a39c37adf9584a28d8514b03e255c0f1bfab3d3b74b3da9e83ad8daacf090378e77bff1cdcfe7f472047f954c88d4d43b4b09e40dd3ccfd3387bcaff13637ca2fc9c7a761c0179f7d12982dd3aa34102d552e00c4c0a4f826cc7a766797bd8c4acc150ce8b5916f7f1a9e3e232c3eeaaa678b6a45d60a4844c36d148c443cbaefa44b97f4aaf47b9f5f0622780ebaf81b5531ee5739732dd835ec17c26d92ac3685b060958f0995ef5d61734a2dcde00b675db221ef3fa8221c60e20da417b662c9cffc61d217923c59c588f7a705ee28a24791f0898e32da5d50f97c17931b86673f2a06f2888efc1fcffc473ab8498a2299d99ce04d3196a7039a1be7a2b9cb8763683fc54d073ba28aa4b41542e4de1474a0e7dce4cd1fc05c869dbc708e19846eb509077afe5f70d90399fa2f2e6ec26a358c1b6acffc90839e25ea46b772312b14a91e03b7ef7d5004ee701fa6784cd0ddb511fe6e5c4eb21836ea3d8500f5e7bb3f53e49ef311891b21b6216dad09e84e95e6876de86932ff2d62feec501db2e2dba6b7b3540e7f9629940880e1a3ca3617e3191128b58815e809d77c511c0661f3d3bf26395a347ccfb4533a5a4588dda86f4fd46cf36b09e66960fa99c3a4af3151d3d8d13abc66d5475f42a880512deba4ac9031f3776488650c8c8dfed0108179a9211d6ab388501699d12d4505babd032cdcc36a01c1c42f1540a263a37f19f5d3d0d57cf954159cd7d1f6e11cdf8c6912bbd223f3b3a14ea603a2c19521d81eb8650ba0186fa3da63b23bcc9d96a8bddb05ebf241322f83c73cc952051fcf96ddf09dcf87fdaf56573ee77b0a8d19221195d54e6e0677d01c854814cd77f8a83921e0f13fda2b744c2cd90ae201a581c141be40e519e6c0a3d15671955687750900c8c4ef257f483249240bed162bc09688847bde8201c292d7e749fafa983833e907e2885356cd7eb5ac0dc48fe3c04faf19054295374f745c4c3c686ab89ccaf4ccad3977099e068ef73c611c9d2f413145a3db40cad1210bc00346df271232802c381d0e00dc0bae0c8bb9efd337dec42da95aa8449b34321c32e3244c26746b85c46e5782c0add880823cddd052c888035f5d608d38e0d202d7f535e05406cfa0c27f1a280b8338a89eaa6b028dca0f02992e5a16ba17704212db1bfb650fac8b5db4e5c3e18610cf95f396dcfa84ceb755ac796de6bc363351ac603104d52b5019b26897030687afd2cae21a184915c65ff1e4cd04ed95565a40b26af809c73776390b7addbdc9c4f73bcd769e6f39d98060a652769d09a83e5be11d6d95f475a3e42be8e2e2583584713713239a9f63cc041f34584d4963eb813b5bfdbb9cdef6b031939b27d6aa0d48b10fd4883a7bf03ecec92ac34d0fac2aaaa20cd4254d6113665e91b287148e081306a44143100385fc271f04e82596bb22eae3b1d02c8c9176517e27dff78b410688be283a4d19098d1511649428b2a89274996cb380ae7b4c637b279ca67d22574cc865efedc66b6ae93a188e2552ad545b726b14104ef956eb6b6629a6de22f897eb85406964465bb13d343fff241075a7b556d1e89e151f7378ab7060dab374d5a8250353da8844b4354dcb51f232be6e68f19a2131e0c70ba2d71bd02563bc1b6e11724a1d911dd2726d922121bb023914bd293c6d8f1c84cdec10d212d57104928ab43fa28ae620f740ac884b47adcd63feed0ce76fda6d1dfb83411dabbce30a70113a48462e4efad50305574da86399c5d5576fb2e9e33d6616e324b1bf2c283741bc6347bc27d940a05c989045f1e3ce3ef1cc7037215372e0eac6978c99411db7d4763b1ff741a29e76a1c3e8cc00086a74094837932f4da44f85cce846f21d18e034855fd7361f3b79812b26323f7cfae2389d83b77b4ac6666dac89c7d756cd22d1b0245e82e68c254dcac8b96dbc0b5d9458c59f9c8dacc8be2d81b84a6e33ab38ab05b2069002772169698d436fb196d97ed4d8e85dead59d38a237ec4e4200a27d75749ee83613129a8360df778c0c3e868fbf858ef356e6bd8e09cb83c10eecee8668b0f368c050995028d9bd3c55d167432963ae049488d609ad4f47ecc5301f6e923da8c79f95c931593d11540a873718332614ab40e1aa80b6a2852f8820cda03ceb827d2211cab3c2e97e1da33cebbc1127324ae2cf0fb2c8962ac04c4248eb56dcb7e09dd2d109316f35dd1afd27f48772a5266a89eb9d2899531ceabc2c5caeecb900c59903e7176071d5d5d9a826dbd2e05e2ad521590d08ed9de9539fe8c89c1af145425cfd9dd011bc9e2992485d8bc95cc5cf6fb8c760a87a69a490cd8738699ce84ef4c4f070a6e7e6ab1983d044732dd15a60aa5d8e01984f953f82b8982d9a1fab6065210efceb692e5664eb07be3cefceeb4bea5c21f479c2acb6ad4178f63a6837804d52e5331b5c331f4c53a287cd29c5b2e0b8a554bacea9dcc1fc15d2d5ba597a9021eaae342cd17434b1b88cbc558921de2844c176b89167a43558cc005b0e7cd586cd71549818e739e389bc9b36559cb1524fbf6e0c38f77766abc9378eb28c72ba8efc1be55ad026f0f999a6c4b6869430a5f82ad24642f0ccf01d099ffc474d49b1d7d04625e49943cc2a3b5263a8d6a04630331c392b88fb912ee2142a9293871248548761a7f39d3bef5789ca13983c89031db9ae4d25a97d8ccf093d7d3a3d8aeca7427712b7679a920f76425f2fc61a218c1a8c56730bed31d7a2aa95d3f54e047c1309a0b630b5564444f6df4773c3077f26e41ec2fc4b449b5d0208690b2ea62ed359508a47c139eb50522bc5086b41417e8d92d07ea991f0ccd1157c988437f0cbff262238b9b42302e417457e08b7546eb673e6bb1e05cbea084b064e67234bb47f22d527699865afc8ea5ccc3045ad8619e54d9115f68fd9ef20f47a036f93980cb99843f89382c1e23610d2dd9bfd5d8d961088cc10e6727ed846d0e7473428bb715d943831ea6369e80c3a15607917b4fe8437c12c3603a92ae7bc48f9feb880d893227d82c2c3a2b266705f1ce67207f0441adc8a1ac8bf85e907043f5a2c06bc3c12d7e7bbfd4adc7f676512c50f343a1eb3a4b62d5ff8db2ec66af091bc6fe7be00766b2a65f56629a9721fd221f4e6c1ec228c73a902f0080897d6895b01804590c690ccf839d9c04f8688bf40f95bede821040e29896b33f99851665af23c3cd7f6d6020b23694d0649470b39862270cd95514b70571466fd6c71f500f52dae41d98a9bbc86437d2a50f52e01b1e2c271bbb860ae3854828892ca3630cf4eeb570a8711a7448e7c6cc479c2a9dcaa9b15f77ffef1a7db23a62fb8d495615285e5df91e0a7433ed0097e43f3f52a70e84a14a06da07512272a06ef83690f5c01634a6148f370bcb7f713bec4fb75ebd32d3b383fa8f9e78a5ee6a8c01925d920e8cf4005ab487e4a13ba51c8ad5520bd3009e63807df92468b14ca9f3dcfbdca27970989d37c932254137d6e4de2cf2ec8bf1bbfe5479a294f106f9b519c1ec0879cd113a82ff890b5717c1a73e198a52afdff733a350aa2fe91d297c9a5b292d2039dff8b3e400a65bdd47f309bd38e20c6c133fa3cd983672aa650ea775df9049da1334bc207c96d22c11992b5956f356d68d26336a38146fac4e092e649748ed101b9ffe1711ffedb529d2a257812a24506b9fc0d482086fb38ec58c46d9ce259f043c2c02de2fc9fcc17076471be5d22a80936f45846bdbfac2782fdff9e9b11903e16584ca4b43639d753177d4edc68a7ffbc8108836991b0cc3964926940b1e8e65479723f341adc7a459a68e19581b1b5bbc6c87ed5cce0360d8efe0b08946a6524eefb60e089e8a6dc4f98463add1fce6257d215a0dd390dc5fbb39a3d3bacce155f3c36ac8aca93b74d59bd2a1cd3a1bd41d849bdf8ada49b3c415bb6e55280fc1a9b80009b060f7ebeadab97b265399302781e63216462eb38d7c7c3b2387309576cb9ec04ebbca02439f4f7377c6970727bd8fa6b568827dacc9d42247f9fdaea91ed9cccadc83d89a0b37b3c8cd3ca565e37f58999b0c5687bcdc9df206b37c9790a003ecedf5170a821265133a52a421c6a72730db29dd31823cfd4e1c7a76fbab1a991eb221d0932b141b3283b0cc77a3fddc94b062f5afea0f81b348f9fcc768f0e08df63219f10d56608b37ff0b127b5b281a6669f453b736025d0c02bf27e8a7dbae61f2ece507c864751ecbb41843c84f72c32b337e499b29dcbce61f451da0566aea6ca1e097d766e1e9df9cbe6b5bdd1feba6e07ac6fb4d07c239b60d94eb2b83d2585e3a5d9b23123f5606a64d3eb0a66c09bffdb4fcb3ae75af60122c954327b853e30d6b10964c03cc8b0b718a390d43c0fcefdf66c9eca22f2ee78230e94ff1e666fa54896caba91debd539edc2abc1e386f88b477992391d53977fc1b3bf3c626f55bad045040fff63d6c42cc4fd4fc9eeb07f8cf1bfddc17da6ac94d60dee0d51e072ba7144426f75cc824a9b32f93f53846562f19ae97294ac192f17df9b237da2d8deb7bcbaea01cb370a620db0a9f6f2afc0a445f003a7c35d94c0d700f524e12641662597fb7299c98838e2ec0b102db1c9a2745723ffcc3ffb462a9089741f7de30ec1935ea37eba55e7f4b50a14cdc71a8a5b82b1d56cbc5b369e3a228ed5172e4fd1a42e502c55432c0de8ded718b08d85323866e92027b9e80434bfd6897b6fb815211046ddedc947cb1a2b44ee42a622670b6656b5021fa63e3283e241b021c2da2fc312440770bfd425074eb672244e095c41f2a81291e07e4f71b08af5203821c6c09c76b779c7fcef137dc622fa4d7d65777d3d1161874ed1df01ec402c4c4bc1e8cafc724deaba37f801d665df00750ed4f6874ee958e5d7d8d07b4584ddb6009efeb4f706a84bebc8e9174e6fde770c7cc327ff70ac627ed17ccf8f52cf6ab047462136a83c76c749235f4bf8dec93387164a2ff3460909b907ced33811c10c7452d38569b7361340ec31db62842bb8300316c2367f4b2609324b5b50860ab8c5ea11e193bd1cc672a81c38928e674103a8400987ac049a027f4a16ae2afc653e64953f06afb82af059d6d975d521bcaec39c2c745d24b8cd9f7c28a0b4c2df43ecf6b894b1b50c6c5d1c03f9c29626f102733dd39c307af2193054b695bd34a629b816fdab92e38c41d6edd18703d98c3b8b004a4db31ae458797188dd61e194d2da16147ebfd8f58721f6fe36c30fb4233a7aaa41466210452b8d2e4e474eb9086ac3598d2833d193b8aaf0d51bdeba2bd4d8a3690d71f52c9c1651b9ad51f5116c6fe882e6a94af3708e4ef59c7529d9344152d68d11ba3e4735c5eee60649c545e89535c93909a96935f68251990c8a1b04695371902ff7c8ca4b18c7de9fa114b4b8c92b9368c3b47ee5d24c54614e8d493b3257fe7108d71aa858622990318a041be0aa04ef510fa51632425656b98626d7fe881ad6fa40337c2c611aec740c6f7d6aa2cf7d7db24447914a4902c3e460e2f06d95bdf1a83fe17c2ddfbd3ab3e6e6a65bb790770e6b19a08463f14a4a952a43f482ec4ac532c1ac08c5047906fa3bcda628e3ff30df9fae77017a41a50fabe553d811f1abb58b1fbe8bfc74537239b41373ba08c16842adc2aaf8a2869a2dc1b15da90e12ee13eadc215c53d502b1717934997ff02940609e535d3decfbea9803a848e74094548d516adbf1d582eb8cce5e10892820a14b7e4064d12ef36899df91004f2ef75ba3c99458483e81aaf39d33f5a8194d32ebbc06110b633337d2f61938cb7d81105434a59f0ad07e644585fc28e88d4a0ef1d04079e471e830137c0405f1a6de5e2c26443c410b903650c4cbbc0ff5312b35d2b0959737d25deced6cea56519d7228ff8badbeb30fd953a0a6ddcfc1e6c225c802010683438e907411441108107b7b306b0c4cc835d0d4a81e113dc52483281f9c415057d09b432f86710f339bd011240f2abbc988ab77dfa09f34c7e171f8a8f02992fdacf784d74757eff223fbf8c1068de5101abbdde4c08a2fff45dae86e9e5d94ad6927df45febb9667bfbd00246457900a0f347a2ff44abffb9e829ee868ea48e2bd532f0850c853cf3325d44c669ea51d3d9d45e0dade4d57fd73ed8fc1e11f0e52b392c9beec9ee54fe156af99c8a4158062590401f83e82d5ef849fc26ad4aa5864856aaa194f8494e83caff5075636a99ca33614408f52d26d1077b4efa17fa57776b5811362aa22ca5ace74efd770cab24dfd0ec6a65c5db214237e9c774684afd37c9b028c7d15e4e347e73e5e446e9c1b983a8bdefdedcb023e198d883492740e8d19b95b7c3e2ab731e367a8e509301f81e7c1157d959efe26a28b343ab1058e4f96a69f8cd0e2590eb075970ec514005f1cd9bbe7cce4083ed89d311f6df0628969d02f902679994a0848d356dbee78b8dde70725950f0db0bebe75f2c5bda692607871fb4666a1a24e4341ff03d048b03f082c9557bdd2f8de213b70987055a7b74035b1bd1da00c6d9069a15f509b47b0e96a0b0d14816b332c1d2f269cc5f5dd8cf32c3dda4f3eec5a7f728e8bf85d405aab9b17299520213948b969cc2fd30a9cc1e671bdadfd41b33a18985d707aed44a6a0226fd41aaad8fb671ba3870a746f4b0c26b7f0e9ac5a5a017870d8b4db3391ec404a1b71306209f275935c80c1d19fa11860fd24effbe123b5e11c920df09d6c3c60d5dd9dc4b0d91112cb4accbae8cc97d57740709fad3bcb0c44d42a5df6e3d6bde768b890680cb44f95bc151c5ca7e700a3718f68b95fa36ae7b94a3a42d7afb0d66f2ccc74709ac9319473906984640d1a162a5375e06eb20317009209ca965272e4cefac00564a6a26377e963030f06361c565e7d38b5e4458fc95d466d01148d514c624200bbddb554fad7fb2c375f0268291895069528a5eac6319d3be4fae22a04961f47b17dbcde8b97ccf7afba889bc48672283b1879406635f98a99217c0e3f2cfccdd620d7451d0d73b33f9d6c878829072b5a5bc7c84ca9adcc44a1841984831c2295fbb4a0eaa6421ab9db8ae2604dd8bc54e6044acdbe6bb35e11a1c30ab83994400072b55ef16146fc0bafb789b465fe5c2797cd9547dae24c710e97120fc1e9bbb7f8191ee5edf0c5853a987aa8b0fdd1a504795746057c017807122cbf11bd7a2b6113f81b40efd070ea9ea7a245e768e5568cfc7c6d4cd96cdf1be878028d579b41901dd5243dae9876b4de98711b4b5fde013cdfd69cc8747f4d13a5e360c14f37ad0d772960e6f4c06dcbd20afbba0d63bbc7646499f679e3fba2aa1ac8cc4043af0a9ac0528997025e41fc8178717aeda6e11e6ecd418761202ebcc7260c821eec3130afc68c8d9fe127836b61420a8f99d570d7e7c0b5309a4a5c7526b5d1bdc81c0b6ea9ca869abdfc5783abefc80f38d6fbd6f25d12be39c20ec208d37feed33cf4995c31f09d62d842c540ae7081081dd311f360506b4d5aacde0ef1f7a2cdf2f9eab03ce57d3f40aa4d62a8d287bab2e3d385ce346a21533063a250c47d9019c89e2078b361c382309b01c48e3c402d9278a2e22cc5c9ce068f73c13b3fa0c7d8f72c57e054dbfb1869dda2fefa978198b3e83b2bab94cfbb46e0b432c49f48be55fc52bbdc71e4fc5f8a557289479581338633e4ffef88f34d9dc4d2691232f6aff1eb1a5234e7a4dfc26b0f98ac6a8c6293504959e8577fc200dc26913ee0146b1c8780baeb5edec002248d7442eac3eb8ac0887b0c04e32935a56ae58be811da3618b6e422268a108dc3da1196a04ef341a1de3224226979eb8cb1285ab52ebeddf9e6fac7311a881674588e39c47425c1c03649a95b2824de38f0c14bc739c3d0871efc38a592cf642632835948f657804a540bdaad9de06b7eb30c7f6964cddc9667be5ab2580fbc1d6880e6b4c8f2239c5273e3981d8a626b34f8b3db63549d035d32801bdb2e442d3adc9a39a67994b5a8b3e65aac38f6828a7859fb0a814e34a039b7b8f405c14639e992ec667260ef88945b711ba9f701d1f21d53b60bc6b8efb66bdf7cfe89116ce80329c4b8694f357cfd85c95a4fc0a51bbdb18fbdc78f0d2ea9bb34b1d4943b61385957ce432fb98b35c91159fc62a3f62f71882f07fc0a3a1b3aea2a9ed4c654ccdece19e3f1e9df93300e4440e6c35da846739b81c7a9860da02b8a4f0044300d95e2fac6ec2aba5051572cc0ccc242f738a149f4a3b58173720212db6795887bd13c0f71eef91b789ccd2134e43f31904693cf054fe66f0ba3ba582607af0c8f41d9726bc384a4038e8a8e3e62e6c12895350f85344c86ee8c43cdff4d286a892d157546a3babea770a1450dc6a9721aab263412f1c5a4c3643b7124305d7ee4c070f9efcc35ab3260fea97683bc0774e04f27a5101d2de8031a9646b0ca8f5f0a02af2af3e3e60c1e321795f9f69c92d6684e87205c5f27884c18ab4202706a774b8977d190e3678abaad7a1b5f9bb3cd8f811b680b301166119696d2ac5b652b16d617c9d7c1a81d6274ef078be5af5e64ffa807f918e643be17ae03718073c799560a179da3aee44374fd7cd80fd1a282433071038d276efc30a73bf0eb5fb2174714c0cdd721a62b1806dd70346b0a9f78633da7786daacfb9127ab2e83081a53d70cf5209a6677261d2aba4a9e0c169a286e24b54579fc3d962fa164458f9a8d20e1b411b9cf433607d2eec3d7de934cd39497cad2bf9f5f6987f28161c919a0b1f734596993463327bf809797dcf328e713a5f6ae7634166b331a598bacbff64d99d88603507838464e1f94e6fa2dae44d2b5278b29a4a273f899ea8e374c59a85a9a657ea84ffb0ade66ad809f5db5182643b6e6fb630744074baea19b9a525d6044ae9d09620fa2d3598a70671bf2b6b38da57fecab21356e9dc08518fbc1ae2e826f4d009b8e6bb19b22861c741e532656721af2a95c6e4fd86991d390122ca8193e0a56a1ff2b3805203550b5081d51b37760d546d6de4e71bffabaeb6838126f5b1b1c6ad49f61819555640cc3f1616be019a3d273f0f4b07973ca355c32b398e046a6b2084777e2d0cf26ac8fe6e166d726bd07a37259345408daf05e644f882f3069be69789fa8d7b34f13b80a78f7357f08ce779fa583821d899f2496c2777a9ae82cecf48632b004955c59b73e2a2b6132c2b31cea8d97b5a804b7405f1a05501f548c621067af8f0381586e4ee971b458aecb6d9b259229edb1d25cf3eb63721c761b5cb257b7b41fb1f4def9f8e57c9181701ae16c6260e3f4d6b794ded0357c1da05147c76e3e6a4ce7903999a34073dcda1894f2465534fbee90c0aa076cf608f6ced0919ed3b94867dd5a0140e51b407fb8be71427ba1c37b8427c2e4d95d54a76dd91d667bf6e51efcd252003a0491f220bc81f060a5df559ad193cc0889714423da7efe075703be2dceda8245ada0edaee9c3e0af7d1bfa62d121fc4db3e442f5155598976702104ed0e0ffa7a8c6e7d8e5a7bc807052e79adde4aa210320fb0af51977a9a2d620dc3a58c4f4f1e7f37f27fa3885482367f6f896aac9866730bbfcb8922743257309a15998228da7acfe2d12f9498119e25cf8f7935ed82dee0e2477e318d2477e82ea28c80544a1861355582c008e9f2eca2188e00b9c2be71efc3fe0d7230c752f57dc5fc65f0ef8c9c6d899282ba78c80a0b2c6f264a6063a3827c83ef2d9d3d0ef23c2109176cc8f50ad7e3c67bfc11976d10ae869f1a5bc80a665538b4b777cb8de4ab2d609168efb963a0ca52fd0500028f80dc10bf6503311a65de717ccc1db5fc7db1196c0c92ac8e708b5482302290ff18060aa08b44e9d43f4228265ad77f957bbc2ce4102a997318d29bd000be292cb504d33d086d4f3d65ace143f55572f685b7d6cf8806b8cde0f53b982a6a1167918846fc9205b16395b7a1cf1f237050d3cc9f904a08796b17f06619c8cee714bfb26fa1e57186c62a7dd70b3b52c65147a0130aebe23e3654ea963f5fb6a6472566ae7bed7b0648c27fb756d9f8a0006e9726bd247a53818d4f12d67dba11686571269533646e55db83e2884e570b9a747dc32b0e075a4816d21456b7f6ac97903db4786f7d2201d4a9b2c82627b22914513a57cf009932d8cf20c75b14cf046979a9f9ee60b14595b99fa181f5a3245b814ead59b211c476e3aacadef820203e15600c2654b511b9dd9340220835a778a6151a3ab3ceb013756d9a768725d29370b9dfda03788e86dcd39754bd6f4f1b34a80dd0f821cd89566d379df012d377a568a3bac7142ea2fb05db11e11f70d6d998759443e10ef23533d217fe46c75237b761e83c10996821816b8134ad20e1d02266fe97b16f8f0422228cff8cdeec75560aad5ed56683f4f37023b4d310d099d2a296f6f6efc0d27ef1d81b991f3a293644f3597c7147db5f7717f816e8ab7f4e81aaeb3bb83a1b9cc21665cd099a0d4d2ac626196b7838eb03adcf5bbbabd5ebbd736012cc2ad1419fd14f0b8d0b6bab14fb80f2fba1e0010656178237254fb3fc4f5fd673a58266b2eff8ac8bae860b0bd19574075d3a5087c287ca83dc1869e7cda0db613bca7994c2268aa036b9de2ba820371c697bbdcaf62b4baf1d86437db2d85915cd339b376a5a41299775295c142303b2c37a843b3bae9d9c461ae45721f00a76c09375a87505941c37aa3050a95bfe96d2285292a14c120268dfde908c67a74c254d3ce70b271dc0becea42c740cdc58fe5100b3df56ea3f69add7b53cb7776c84ea9b9150ad4f7a8ace7a866d6a475adad40c58eed42f5feaa60f41d7e8646c2680083b97b41282985f51556c6315ffca9123f1c203f6ee110a89fa85f1ace7c47e8e9427b3114a840a7da14d4100a620498288636df5760d92fd9a219c0abd4585e6d9f983f24eda4b57988eedfc32052a1c26205079940f7f668257cfdc9bf3a93a37c6bf6336e646d47e975069f86d51a6e8651e4e7452aaf04582f4b3d1fbfdf06eaa7d5c26da6f4700c554e7d54ef7c72795b1bc698e51533ff6e51a19dcb7d60bc348cbf85466cf79989de129b5e1a49140fbaabede48b8968ee13fec5f61d885bc6d5e76cf42b193ce446ee8fbe8749a0e1d03cec2fd70492b9ba6c90d819873b76f2d6092425359c0ed4c49252856016daf04eb93abdf391c9426c5916838cbeb24be12a8b5bed1884e6ab542faa3cc4262b3fd5aee9b446edc08b1cdb3b3c73589f583b787049982e7e4b8b4d7d605a5fd15fe728096265466cfb370a8f93cea8ff01d9e94ac7bf258211a2a0efb6dd8e57153ef6e2d1b2429b50dea76097a0097294149b792938413c987c8a6546ef3ead4e84bee870618b699b861631e682ab29c175085b73516b933c4bf7ed39a8bb7a1e6e81d8d7e268af4ce2b997de8188ff9085f8b4f09ca74754e525aa06dc5ae319ee548eb77fa244d53f1b2e288c0c7f3e7040841f3f90780d91be7525c59dc00e02a9b0a05b59385f9c2b8bd222f29794ef1b34d5a54453cc0ea2d7abdef129923878a8f5beb458b01c6043ad87fb517c01cb3710c8cb7bd51dafb24d0720982f18d093102a93483b86f8b2db33c632e779b46a5ce0d48e647fa7c0d096211009592761c31287b791787d830374453703943e14ff45036c83cc4c471661245675488a1920c4d217bf6efd3f0a4fca3a6ba8b117182fc70ab2498ed91f4baada18a0a38c887f8515ab9d0bd005636bf24c50a7f979124e699498995684d1b9144cccd1099184c4f89c07a89e427dd6b1d299c3d3df32035fe3b90f2156e322570c8601218a3b14c361673b454136b281f0c3b5e4861638a00d525986000c32be94d856d13df7dbb1e0feccc5ae0cea45affc1028c4a02daecedc0da1d5cc3f70ca7b340787bd7724436f235d689166c139bccd25a9c8836db229c6b5a710ce2f9584c60d97306541a873a0a90bf29ceae496f7f30373fb80784f7b5ef34edd76f34e5874de3f82e2af3c66ede8c916a868dfc49b8e9588ca7cee8f74a8571a2527ab74c722bef40c282f16e5bff309e49fefb97c300439854f7e73831bf860053be47dfc15ff3fa04cc816e50d06b928cdd1f6e6c8e33b6981a255ebde6b8d9fb5908c7b2071e7c43ad5dd0c01bf7482d9eb72f26fba752172f29a1a1143fc0bb249a0ab4578a6c3e9aeb5d15813663383eb94fa933a1e0369424e5a7cd4b44474d5be44fdb633781c881bf2420b26ebdc37834ccd12eb75f21d07eecd1deace6d301d9ac22b83325e194a1f53097f0186cf6911d709c6d5593acaba12a0bdf9211a7affba64d3b68f96d15e1cb009619cadd9636c8de33780bbba8e7980d2f2918babeb04e0d5d539b16f45f6b0331ce875c37e59113bb3f53ac2e921251697f90ed0859247ed194cbcfad7a6b9270ef6073076a5d663f6ff98d87becef4f02a087128043a8452fc5e74ffbe9e06b3f8822c6f60d8cbf8fe6b28807125122b469d419eac8f67fc2c860f046c991d3b82f5ec1f44c8958798a8bd5cb0304a0675e0940e53a94556cd450f1e016b78f3e16aa5e891afe9689b1d82551466dff8b08cb7c88ed3624a7f792467813d861fea8f18f950099fb4027a9f563229eb1c8c82f1a19fd1d145ffa1ff0b37f97a0be8cd081118a84d8ff2d5a969462dc07711882c8647ca244dc438466679ad47eaaff0fb8a242f176269bc8089bbe93ee8637c1880624b1fc4a9884edbde07cb1e0214e23d5ea799c23bf912a66dea4291624e1e2ac92a8eaab2fc701034e43dfb254c4671df4af55bcd00e8bf47e769f737c15d92c0903ca564ffdccc5b2588b7f276b8c55fd19b435c0c50527ec132c5aa3dc5eaf5502695eca6cb6251304c8cdf3e32aa6bd9cb60b71bfe202f5538f22b812a3522a9550210051ae8bc2f3d7bb963b05f1a1b16af49d3c409374646cf7e70bac785d003bc658bc24e3a2b8c71064916875a80e2caab0726dd6a91a8dbf3d3a12966f6e534166b11bb14d24948aafbb17462c53a9a0ca60c9a720c229c8a74614107f9cab842b73c57c25b24e37adfa433bae543e2c9a36d0871da389b892c8aec7a587d22a7cee49c6f972d20a04d827fa510db5e6b1849bb62c5e60ad361a127d72033cd7106b2a2a5099e837ceb95071c65a54b01f68e31e59c490e102106be460ed8ac699696279ce2413213bb412a060ea9a1160fc2e240dfe8b9a9b6061fdb87932f562fbfee4f7075c6dfd4a3e55bbdc85b72c5396c7fbe8f454fd4180a6e4b7dca4ec30b4676461c5f4a576caabf1017dfa2089c44d9ef080b8d8285a57799c4927abec8fe5625e52d76462021d59f482910ac5a80e334645b17e0bbc84d4358c841fd4a7a2a170e5a6b6a3099092ab9b6014b20dba193779011aa91e965e1fb347adc05995b33f8c92b4cf35dc55ec256bb2988b463e07308ad11bc04062ffa033bf0b6543687aa11b0a5fe792a7691b0ecca53ea85a5f0b5a0472cf0862e4b021dc6fae7450b00a5ca972b8213de29ed6077496b2bda0ed95c3da6acea2ff053b92ab311f731de208e6d48479ff318e5fc48b23b12bb04b20d71db802e59334d5376d428babf895435e00153df05af42042a3349d28ec9a1949558b1465fb43fdfcb56052b5e37d22efad1a5b628c24efc70ae9e5d9d103899bea2751340ceba3078f40915d4f636de9312385139dc311d451c08fd0772615590b2527c9a652347cdfd1d7773bea8e627d7d123adda8149d4b5ed8932d0ac6a61cc6a810cc8a974f629632cfd1853bc1bba2c2ec0a329a8d08dad3bb9c549b54a97c59169391d5b14c462ed925a020ff1b0986cbbc4675197b3c757e93805692ab14d34ef9445de767073fb874de8e54aa7a39b47616405bf204d318711ffd0aa729897829d39c1e8c4f0f71d31854559f09480e6814ff42d7968bafcd17f8a3f1c65f5613c23e637369e9ad262e1c352d73e14385822954c27516b803891a94dea4ccf4645062cfb5b376b7d7a365f3e0a690d8fe68338c7d3a7a3159f9bc6279af92d288d8ec0566cab311782cb30e0102e31867b2b5efc3772963b3fb3a10046ce7b684f3e7c8bc7eb744224d375f367396e6f861820071a350fdd63def29fe6379960a0a55c178f6a15015f21c5679e28da0aca934de0f87bcfa424c2b9cf08642559eccba206ecfc09927fbd5e306f02950d28f07ae7c1bf4f68ac070a5027fb34eeed1880f2e6b2b34f746c0a0461fe24ad1e098e1faac681700cbbc44d2cc255d4e8b95ba62e04ed2d9b58c04bc2615c1888bef2558cc11cb5077e6d63ac09b10268be800c8424852c77c563ba217c4fdfb68dcb95dab6467203dafa2fb347205876da3e4e56adab80b81a22bd96eddec99bfc401af92f9b28f7825e7a0b069d262226885a1199d741f6e2ae3bac6cce1250c2816b0c1db08cb5191984a4210c756c0c7e118d7e97f153ec0c9dbfdccfd6f19d34a97c4e5bf041e813b4c396ced36acc777dbc5bacc30c1b3625acf0bff028956c0e7ecc0fbac91380159763c9b8bce7a8018a2dc36ab121dadf830fc6e05f01f0919c91f278773608822c29283ec1b8c869f746c6e3394b824ba1ae42e84c66b69988e7c49a7a68d138c6e111e507a585d67f878587c32d51d7b178cb64e53a3f7c2718097d6a2f7157afb9f7661092482fe0fd3c5bd8fda31088f7f04beb3b07fcbf15e4407eafca18a8050e9522f8a1dba7b3be999d43bda18e18a62b0cfa4e09c8d48c81e2a4c10f9161cb486cd881f923787730153b40bdd4676bf3e5f650b9386fc5898ca52c432975608042c80458dd88d9278ad62a46cb7132a3497837df712cdfb60284b3f1094305d7e06584b48b89b430f0c1c046338812c1f8a8bc4bb743ef4b74db4c55b8ed09e6ff5dd8b3fb7961dd9f510c682280161809e1b8320582b22149250947411db5e3e51ac66df425e8b80ea3c5ee3166f2ea07ce36608009e66c5f4a3a49e29794f234fb8f92eac5dfc94b9ab875363e4b08930bef6b89c6806f2b0c4db3964709da7552c7e8e21647b92e0fa0cc3290dce90e41c15130caf6a796badd91554415050959d712649d7b2b28f398f93c21d1da2626ef2020c7e362504dc0c97e63b767ec49d44b5593e529d9a66b2704c04a06072bb8cc80a79af9405ecc586895880ab04bc8efb2a2886e00850b70c8ce9930e1a4d8040781e2356dd0992cc69a8506d3807958249e5c5d8e11bbb3b801c14545a663e3ff270258cfc1e2e3b7a4b63350db5e83a32b8991f237b455496b8355297fe10c8bb1f6c0927baba46652d1c6e2091ad840d622275b6ff7ecdc06b740d825249301e8c9abcf80091428312a5dde83c18ced861811c7a49bbbc2f33c7a2600045be4d1891fa07c87dd40e511b721792c5e1a8f5f31964275e01c26ed296ed490435117990cd61237da9331b8839d9c68e088172cdee58c53b8063f2b5cad8301a91fd026370a38b48556552a3c3e5f2163dfc97736d7e10d098c633c539d78a23a7165b21c8226b0fff3ee5a287613629cc837adc942584d8e446c578cb936cb5b7e092a635e301fa83c400a32a820b80fb7bf0ad30b23700633492d5d99c2c0f1f9bd037c8fbbeb74504c5ba29e46d5ce1df479b4c6b5c9f99984bf7aa90206369ad562d01543086876f9357a30e144faf718fb335d75b7f2a9f3858bf1b4aa92a979620c4b52ee2c6012d7c0c676d2029493736b832e7a55ef2c108be0c087107af3ef5eb473b58f171b8b358bb52169fb174099959ef3fc94586d953b631b13b5e144fc30a8d6aa35753230941f444c08cacf3293e8c18f4fdffa0416af310d5f672d89541cab533be99d5d4a6a722c549a3148960126868cb8bb51096a2eaea760fbab525ab5f634aad5123016a2d5c202b98ce8e33394bccde595dff54a7a5668fd6b183d318efbd4ea3baa21c0474be243c957b43a3ef1af885ecf56a42ec81983c372cbca21a4d30bc9baf7ff17fd5640aa69058347397402fea30742881b64fa05463cced2b91e7dbb6e2f4ce9295af34387a33aa0491c66254e4ca6f4c18a9830b16f970d93ef531aee83ee0be7e6dbf0453d00e18acc1ab6613ef5a8c7b3b1c8d4d7a35cdfce5ec44ebb33b3d49600708ae3a54ac54339b35d0c8b40686c622ca8eb961aec959502b68b47b27f76ccbd1050366df85c78c9fe075c06e5faa3a2b24d8efae47fd8873c02eea0118b52bae30d3b55fdf11a3e8c4efedad9a8262e156a414d9578c516feb43875a4c2b5817350aee45741630d2556ca3549c33ce91114391fe67389ecf1861f5d3edd6c10540aa2b179b6507d6e860ed1418b233a03165db53283d1ff4ac036fd88c57bb93a9737ca2facc6263576803346e6013970bab8acda6f6d3e7fd7c216d24b5920908209444caa149d6b32b12a8eccc5407da997c295b90b1d8963279f0558b24fab73760880cf205191c8c9d1aa4864383c94157f160ec14acb4127e5d64096fc4df6548e8e4f3dfb4728574f2be730ba252b303aa1092fe338ceba3abd1042a27c412a87258bda23dc5255342f8a40bf99e31f323475e068d2640413e0634d1a211f6fad2df714193ba4a2a18e64287fb6ca9652ed4c03baae81c0f98d6ec3b16302a8c3187afd718eefe97446ac3d2cfbe41667a10cd4f8211b5570b494654366681c61d1506bb4b6a86ca95ecca42cfd6eee9be8768fbc5a91336e8a88d27113343b414e5a8c7dce3c0cc7007e1071b98e1fd4187146d49f56a61af5aa5f872e48a40a1f7969b08e36d299f4e9c74628b52f7386970ffce75fe1ac7b893489bffd398934c8ea443186685fabb323da7e7c9750b7500e65b4430461b7b354004500fdc15cab0527ca7d0b268cea7600f4af49ea096c459b4ae47ecc31be93a19113287aff3b28302b942ec48a083a08c76c91871ccd0818447ad19e8cbcb6908c1c33265083442c52bf2faa28f543822bb1df000bfb1d3095d178497210d30f05f18f104a711c3243a2db103dbd7d630a61e142217440284824e0047c8653c7243df3d600c5a31cf08e99b7d7bdd11a124b49e3e2af966d5c90432b0b18034afc048d6959166050c36a37c984c975f268775abcc8d340c4ce97fa74a8ee63012f28a40015ee085a9d4f5fb1378e8fad699a18ed7c20507987bdcfd20401b543e3e581bf9d988ccd6404ab8ba53afb7c9ce427bcd53b93f50a83401f8eb6323b73d0a61a42e4712256a51b3c9639799f7a03b878a8842f042c3ae3d5a3860a343a7a41349fac042095f7dc934034fbd55765751e29211116d0e1e881ef450cad4f478df965f5012579e4f69e916d6e9dfe782e7750edb26abdc8890c991ed9af6f22280415ac7295e06193d1ee682dc4a5e8c25802d63de343400b87b060268ec071439e5a1a3e2da199367a0a88dc8385ca301d26cd239241e4498f43b1e46cbe27dfd0491d67c28c765dc60ab40de385679677aea155f4316cd1c1d02d3bac35640be75a4f2caf4d0a95fc1b10f8343463ec2b7ce0dcf357e4102a259eb470c51ee3135124c57fdfe943ca4626150e2d68b41068251bb635121af7dacc262f2eeaae886b8a416c141c2a5e83201be77480c6370eca909b3ab768afb3f817c53af992b90c94d267650b642cc0fcba52cfe7adede322a91887ee1ae254afba26556790deb12ec495cc645c7db8710cb7a1854586ded6015d978abec2f9d274dbb4851e1107b2d79b7c5b587b5918dd1acec33b8d0adbccc4885f30e835aa605ba3c96b73a05fe1eed700be4052458048c82f942d6f55fb73573730c827a1946ec806f783ff1e78e7900b6f2e471a832473c8630c40307021d2f8f1c1c40a8982706c27beecedea91791a7bfe3a8aa02fbd41247a53811a219c8e53081cc29b5274c2e9c9b2c53803d00dbbc53e7f8fefab1bf30191ffc67d99d143b853696bb9f6e30902821557c2385cde7fb55e902444e8c9aa2067ec1bcc26712330c8a58fef367a8b1e9bbed914350a71cab1ed0484a172e0218f1f9f2f68642f8d4b5bd76a874095725afad58e412143a18bce6104854c1d4c512b67a59e445f72c78d172e550fbc4ef207e34b3f224c050b0040a07908bce3427786c0324adc73a8b10051261ed5e18e260859f1d5e34df0cc10c93a91ab9445ad05443607562e1202be8ee0e9fd44ce85956d945ce4994e4e183d4a4abd027c30dc4ebbcf2d694a09e558c22d85339a2c526deb30a215b9a97035d1cb567f00c0b63c3678543dfcfc7834eb207a89740ec905531026f85d5e8408f819cd0b1c608fb4df28d63ac32958636b58bc96b432c4059925074c02a0dc93f7f23c9cb531e86c1495159a8a9cd502c544674cf340a515329c2c181f4cc567e0c64a3a91f8c13b134d3fd163486d3eda7531832a54e4e7d5af330f82e1dbfc30674f9744ca2ac7b0a00814246739cd84ec383e11557eb27622c352be5f1a6dc05a474a5d591797873e48981283236f0144138979dbc6a962a1a56a007b0a0a510bbb908cff29f38a0fd5357724c45a399eea1a479c6c2bacb88e2eb2ed31910d30536c8c5eda66bbb788e64640d1826c8f55bd41502ffc0c0bcbbf6070ee0fcc0f667b2bbf51edfe6ecfb0cf1841d536f86c5b436e037604c9ba89d5582c3ec0bddd404e7b3582d96e739ab2855c5c8dd202e5b5638930a4ae459745ebcf7af96d8a4e1ef4a651f114b6e667192d64449c0c3f3b3fe330fe08ed4d96ef76dc903e8f8e62e6efc85abf32b3f64e3bc5bf2bbe2e365b00be597e2844e62adad2d55a9a3468ca983ef970ea62201140feca0cd55cf20c6718e22d08bf4b6a66b8a07c35b8b07062502642ddca8e17b6f08f1bb17a993d533bdfa87a2cd8ca813ec800b18fe50897dd4578cdc999121aa491fb5f7cab3bd55b310a34408a93e749a495fa553cb71c3860615bb6202468d65a77fcf7dce724c2f7fb6c9b76e4a66f5b46cadd2181c4530712de3f4341f6da39975a5c95c7a62c0949d79ec38af9dcef506b2187072c7e4fd2dd908ceaa89cd1696b0a571a514e6df414b67f450218c97ba48c67aedcceafc0f43b3b8486e5de0666783cff30c6fc82652028511c8d70c0ca80bde6ae1fc29c72307eb4f4ff7b083c3bdb17fe4f0a60618fb341ecfa5639d47e0f9a3b286be736609578a15a43b8942f4d22c17890ed8a6eab32183cecd717f6abc72425595c2bc321d906e0dd294aa9e71a737c736b8550fcdeb509032e239fae29503da06337dcf011f0439f4133d9950f1cc3a6d3ab270f25281c1877b69cff9c4b63129240a61feaae60ca0a98acac4a1681e063b55bf628b14d9e742102f2eef54a185562ea15f447fda459255f04abc4af832c81d42d0345634947455cf5ee981aff0ba1233904d0043de5f7ec6aa68d7505b6aac89b560d8089ea2aaea3e4ae5f24e5d653636e3df6b68a8f7ef929ac448c9c2af841376aec4cbdd17f7a9bd2b787c3871b1cfd1da45e3b2ca77255d8eaf3a99aaac4db9a37c95791e4e77764b5d60ae9b8b342e85e61495d698c74e022b95f2dccb7e17622940872983c0d7e96cb7a13d705701191c51d37affad087682e90ce63ae521fc000f79c69399100433a16696958a2b88a772ad18e0b52ba9a6ef3580a1bc7b4f1ecbe28c3c025ac689cb87e11d2d80b1b709d669a44bf4060c8b754cc093b02a848a18a02f9171496891974e88a049409d8b4f32d1e08aa24154396c47e5b11f8d94edbec87176f0c6b127c15c4bbddc67919d77c3ea7ac4a6858fd60ed9c782c940b8fe92d9ba63a633331fd3b0adc24829219c9f9351fb931f90aa19fbf3728c3ced32609cc648b46b857dbd4001dc09c04722b1b14fb21694f875bb2884210bd6fa372af6a616c04c295cfa9af88c597714f654eaa522d4f8d88a117f7b5a717c36debe6df5f91d3af1f58eff35bade5f7292a8d97a0ae9237212f2cb8061da49da794eaa427d31ecb5bcc2bdec9468c1d2118e1694195cc3635229fd4fd4b1efd2b9843d5e1bf137f00111a3fdd3b55654512c5b3aa057437b968ba3cc652ce39c3490e4380530a9ac6a07fc0d081d494084eefd22ac606e4c9101b2fc5734465952d5fbd5944b7a51f5cabffe74f6ac8ce47d0738002bf61a9e2020cde9fcbb442c0033d47a69957a5b748bf381b1596e9b0a64593e057cbe37a4505a62f21d22289b321757e9217eb529f4ce98aaa088d041a157867c83208313c91f7e071e88ff070bd8ad22a2c3526f9286a77e1515cd02a62378a460f4d6b387e08965cb98a6d1cd227bf8056b1f6fa4f554a2868718704a0eb3bfef7cc8b286329624993e12d6900a8ed8d6535ef95652c457386c7f4e14d0e9ec13f73292c3faf4052a31d83a0a0963a2a72f9acc91765838bfc0895bd9d3aac5bd9a38c088e107cf807482559735fbd4b62ac45df18f53d6f37363966c0045a2f28e61989724b88d365d28d67936bec4e0bea554ecd28de02a55ade15bace189797c334fceef94457f17431ca3736a8bbec830f3e5131e07d21f13953bd431c36f9a50b756827470cc7483d6251cfdd45b0a4607746e01e5311b3b6561c6f237e3e17475af00cf53dac567ce989c8ea6fe28367d2917075b8110b8ff40753ad2f2fb5d54fd3fc94b924aa18501e18f98d637444510aa964d45f904c8a3a5ad6b8c2a5ca9a495be41d676b15c6668a9dabd10cbd42eabec08ed92920f393a14427f82a7418bbb66ccee28372ce746a7cb38fbafbaf39e0ea7e0fdfdf2a2793121f5d8877c502dd48b4043eabe631841683059e3eb06c01081692563d555fd29880e61cf060e68bcd8b3b02a0fc20dce8661113f7abddfc1d715e8a25b10c4a21c85bd54e6ba63e6071ed8e70986ed2e2b463a25c97ecc8652349ba4963b252b912e34e58d7cb5fd1574ce8b06c69ca961401f4d3c4ae3244c7234298d9ba50afc0a7622542da325ba823d133ca6d6dde38000ca0a7f32ae6e03305e0cbd1d6f44b8daa0de9b3e08f2312b49fd9061a27a98caf043f2a163cc192c37e046a04b2ecc498d5a0632293031cb6066619aa5be8c56430040af509591245f457c94ec00807ec029f30f45d86005d8572c8310b20500b7c46acd906342ccc61b101096161dd893e8d5a2a2178e85f67b89420ba32a9672bc42c36d8ac5abb396b48f2fbc07aebd87d6c7c2d0ffb6230f69c0c6c753ed15ffdc63c2f67282507be1d80d2fc9da72bb9cd1b31a5e940a6dfa95ea239c83598a83edd782d2d6caee39508cc52417ddf0fd7c997d5668ed8445e363f502e2256b94582fb2d268a3f51fd1a71128d955e18bc198ba0b4a8c65bdf54a1433ff6e92b2b87d444b624ccaad1660fe67fa6dcb5507d06b4744b4192d653e88cb04f62ca03599f363a731a8135b48a5cc89d89740285672590e3d7be99b88280698a668c5fb6455f27235572fa5b1f17158a3910cf1f190e640a5654bce52b4544f15c0ef1f788faabc44fce625fff1495948f54c66ffacb82b55fd131810cb88e0ae2f0f03410296d80c227c98a8de829acbae104fa48f99cd0e723c5f0d2ef473d46fb05d1e84cb9b65e9f3c99f7299f6e180a0f05805fd3cf4d449166a1f8cfe34789139baf4330c0b15ceb9b87eb6e3e16733e3aeef90aad11a38210fa89618369b750cf7150fc481c7c258659af07a826f447cf0e2d9579a0a43b45e5fc75e09966a751f22040d8e00cc8e3454d89b55ad662194c9d8fc686073089f85d4522ceedd5ac70bda383143d10f51c169245fdb8de24f819e29522675a4f683a133ee925a549150e8d1efa3c43f1f0cbab2ff374f940a037a61027759409c15a5035fe966b4bff54aa593c47b6a56060142c030ac93cccee2da54dafef7af4315bea1e0e47b8ee80f3371c21c2113c8c8bae40d1970af1294908fddf1643eaa7062be928b611f95ed63a3b464efbdb7dc5ba694920c57077d0752073d5c14be4b216c387453b2e16c38ddd38508f94361ec7c28ab6840511a7860a0d080a201e54a9ae4acec4dbf1f700e6515e7700e0fdc67bd8220abd308ad876e39dcd7cfb0f3ef86ed5d4308a1aff33e978e6838d8651f30136d1ae24f19c3b41fc1e18ef4e795d9ef7768f9902321eba6443abbe5acccbe0d46b908fa77aadedef0dbeafc71018a5500fa545c88826af4a9b69004c6c18c8d121ca480066058f24409429cba0824a633d7168e20a780821056b0640b3f48726a28a86a0b48a0332b496c61085234c10314ad81be269208a18c23f7b3c76a0fac7575866659a6bde7e30a42dfdc9eeb317f9a86611fbb4db2328e4dffd85d4bac8cffe5f1310c8bd0bb6c3d68ddb256b0bbbe4b2cdc5dc2b21c3a11336eb0f1a487ae50cf052d66b63c3277d67c331406617b7a90b0822596e8e911a28817f473b7b4e57d17a1bd8432e4b81b329448ff3ab345b8c40de1ff708ea5b74417a15aca732372b489c4a4172edf801bb834834b170f645d1ab82fd425d0000474110abb1822b23e9f599ac14e20ebf3d991c3013b346a89b6de59cf5d0bff06512e425b5bee86d3d7c4795b6459b3f6d8e83504096d36884beee3a2cf34eb4568dbd45320010dcec8b1e22f3a19315cea9155c60c7f1925adb78bc2172f069736882ed741d4ea5c869075864f1297a011b2ce787103d3bcf0e8292ddaf0d0386b8fb722a277f05623b9a9a8a8b8f8dae3ad46a3f721473f92a315f9f1472b3c54f6e58f5454aa0dcf486e9b9423397a1595d1c759e5ac5189959519e4ad56566c785634e5e56824a58a7c15a9a222e5488e469d0d0f75d1d5b7529152fee85546a3d1caca6865349a3ee45442f648d16fca5bf1a8f04685f601140af5037d2fd6bb80d5a9f6b6ab8bc3a3478f1e3deebbf85aa23ea3cafb18c5e9030bd5befaabbcca4865f4f1555c0bc00f79f1fe2bbeff28f62f7ef45e4cdd77f18f625ddd81ba50f9f72e4629ff523a1efd2395ce85881cfd6e415dbc0d56f938eb68aacc9c90f8b744ead4bb0a44c8d3628b13cb0331c4e674739d58e6d3e016998647fff56f07aabd6ba28f514a9148f4b544e316947b6d37d7d8a94a536f1ae3be658d46f15f9c55e55dbcffa87b2f86cfaaf2da0ed445576770ec167447d868fac04247af124325ba0ff81de0a1f28e7964798c25c6c7defda3ca3b8bca632ad3c7682a31048c678101e359586000e05948efc1c80fc08b1ff2de90947ff1706eff68f6a2aef698a1188abe17839b759bfed8634fea5e74a486d90f403704002b53767507182e42c4cd7a2cbe77970ed6fbc71e42163a3489694f3c04283ad585fa90816a433770d11e9afadbd06dd111df3fe6e0c3d26bb6f4b8a80f4dad7e9f1b972e1b1556698116ff718c52924831fea3be3cae8fef037efd008dd30796aebbbb7bfab060380a24177d5c71fa7c2fa6c6e9037ebd7e7f07f8d7fbc7aec6bfde46c72ed209c4f4614d25f6e17cd306ae8f6088b2956d6bd76b0bbb08897536a767738210ca18b72791b8d1368af1ba664a393cc525fedeee1d3bf5f908bda1d4114f3571d98b87e7c692b6ac6bd991bdf69acd4973e182bbe1edee0dbdc7058c2deb5afab3b739615d4bff3bd99c8ad89c92c41c2ee9ecc81e9b40b2d9dd0c1ac81ae30ed3bc20ca477089bba53beec42349287ffc619a203661403109d33c15178e504e2da1ec439979b810045ae36acbd90214688d4ea2c714d3d4788411a6794b287b3c82696acca15cb324494e2cc27c396193bc01e5b8f360f8630dded324868938ee8677731b69b3b8f89ac541003b614a646f83b16ec61d21ae6783dddae28e7bdc893bded06143e8dedededeb2611c7c0de320809d3257b58fca530dc3cec3307a20fb9790fdefd4eba976e761e83c0dc303df6af82cef4e93a15906196490c1f7c990614335003140c87b5248938c991f332ed0ac0e08eb2f08ad7f9705dfb22610d6bf0ece1adddf465bdf6f753532a3407b2f167cded5c2aa05282df8c820ad19c81666d3c3827a9f4006b4361420d9424c03697f3fc182f6bb698d682c564f484208406b0fddd0760b6ed7e82716eca116e21fb455c5105c53b35de335916bac530dac59e15c20890421704969b95b5f2ad5cc5c5ccdd6448e5fc32ecc08da8f9a9a1afff6b7d66b56e703077c7e1c8ec3979bdaec5220a5baecd71566e79428e40fb7e276416c4472f997d65e5c4896c3c75b746cc4f2424b7033ee86735c8e37335f2c42d3aa46f9f1e280f0622257b8db5fd31afa66e33fbc21093e336cfe9929b43783ffe02855a7c07f70546bd145740aba882ea253d04434113d86266217f2c0344c9b9a68e4f4600554f768b7d8024cf39ca0bd0ee01cdcf5e0529c3b7df0d0dd3c3c2135e77440eacf0e609806827c5a1f14da5c6ad10179b45836b8e1ccf1847888129b1c4b469e4ba5999997977d40c728a5d7f00aadeb2e2e2ffcdc5c4de370aec677103264480dbce18202c93573b3b81a8bf26b297e23391714487e96d586f2c5d5c4173111a462263e224411a2fc2e3586b4f1cb3744831124f7376d9f89d3f784124308a2f43da184930d48a9857c4f2881a21a7d4fcc000bbabfcdd8d9dddeeebddfcd42fa1920cb9e32c5bbbd6b77b7773b076390fbedcd1813f23defcabc7f6b3d8c09f8de5b4b568899e59adbc690de1adebbfb432fd75ac05e91b2df7737fb410676ff5a970dcbc24ee052b8148e842b2162517027b2aeb8140e0547c2a1e050702680a8432664bf45df5fff3366dcbae00e15585df245cc294fbf05447f2ccf1611eb1529b3adc135fcdfbf55af360aa7f36051e0f1ee3d9920be357c095e93f32cccd6c8c19a76d8550f6805e4b63572b22488901b7d2a2baec04275850fadf28798f97f29c50401a806547055488d3e15155f9882c4e8533df981d6f7c21322587862c415aa275150a7f567861ed08a3fa01763a8220c2318c20839d041821545b81e94154891c416ace0031838e108562881521855547113058b1f40418253ff0ca6b1c1048ad1fe1c6dc25af085220c2d01288b204efd3b3c951552804058893e951531a02af4a9acc8d9818a72767adddd970f9758097f1b0cf4ebb3438d65415e3fd8e9bd187c6921aba6c282e66c7aa70d6a1fee48200655148ea89c84e10a59e38c114dfb2ee664d8b76459dc9450ff190d60534ca9869270be8282d619ea4357a0f5862834b3301c58cbdeeaeab5c23a253688cd1a5febec9fca5134fb851b73359bbdc6bd6f13d510d0f76264b362588f6b15b9b4af61deca512eaeda4aa0af9bd0c78db0972843948001d0f7afdad091b6466f8d7d76419bbeb97d5d91efc9583e9a4f13a9acac401ad5057d2b13a98c9a4b2eb18b57e24eb232dc3d2bc3ad646558e55fab542aea5be32ab2324c73b54087af59995e46b8c43d8517837fa56b273c9825bc12bfd575125e0c7e175d3ff160f8af1638418b6c8d5e3d197e9a56bd127f477115e97f145ab09f5aade2ae9d6b5ea9cbc89512a94c179d647b56c9c2243d4a6a3c5a67789172aa57cabfaff01aa29fffba793496368e7f3f611a2d0bf009d6f33714afc67b32d7f3b79366c2345cfb3c1aa2a7c2fada5250bebeb611640bd55ea564994ac7755be7d2c58cba8d258a55160a5367e8424157c42220589c0a09c9f1e0d1609b12cacff570a8cadd542ea7723a954b556ea7723c94ebb6aadb4fdd80ea2654b7215a37287553d5ada76e3c75dba95baa6e3a94ffd52da7e7a76a405513aada50d5a0d40d45eb7653b555d57caaa6aa5a4fd578aab6b3435a6a2713aad950cda0540d4559bbe1a7e970507644b68257a38facccccd7ac05943f1be2d1348f0e321cca8f658180cf201685daf0fc189447c34ac057a9bd6c533baa61f865fe00b3c6037c8c59658c8f999514f335ccfa353c0d343c0ccc97668da537c0acd2005f805949057802ccfa04f897e7f3f20298a83679cff6b4c905f033cc3a33c3ffaca5ff6ed6ef7ece4a9a3f8059e5005e06940cef326b74f9965965cbc3989504e359667d9627cd5a220db509eef04e9b6000669d01c0aca595597fe55dcc4a5299558ee61065396b9c55be6856d2acbf3b94ffc8d6b08e58191df0f4f860a68f504e006642c0fbe0f58c5ae5c42bf1fbe0d15849bc1ea6b1522aa6b176b89d7834560d5e89dfee731bfe71edd3268b4766d6788059658c594931b37e0ded4303aa4d9610ccacb134ab34c0aca402ccfa0440bdcc3a43bda74d57ea1ac0ac71ce2abb59493febcfd023801e19668d2eb3ca96594930667d161f22f94e9b620e046a539c7931eb4c2900b3961e00b33e696556927431ab54813b9447b34639ab4c9995248240d1a7442b048a30098c09cd506dc250d8509b30a08639626b604f783229a6c1a0d8611a8c07af068f0653f24afc9124b3591f4361a8a1d20e8a87f2102605655aad23b09e17833f011da6ea309f17831f011db6eab09f1783ffea30274878e2c991584294d712ba7eae947572247dfd40a198e3274702a34f4341f1c99148ff8a5ddb7636747b826f0336f2cb5aac0713d2d3260e7a30cc413d16d6c3588ff58f5e1ce44244b6e89881c7fed3471fad3b5b70f89ed58328efc430149798560c45f93121fc188a69d6aac210515c71635f091bde6f58b211ad1814cad8106343d817d6f44e351ead9909b220289f2aa605e57f5ba3624394a78d2fa45ee9d5e869e30b469ecc521b38950c0f2006da7b81b08b0d53a25c2ac56040c692199f95937ea6a92e2f3e04843e69dae326807d9c40b2c7debb1df1b30924fbd830fdcc3d1a48fe1d892a08e87b312e1cc8ddeec11cfcadc903cac502fe6c28deb1ff2c583787c23a83c226e9b0debf0587ebfdaf09e1dbd02e817c4b75839e9f1f1b8a5eff5eaa3544fdb5ab631a65b0aa55b9976224bd8a69fa79f23b3781fd1defd7d229b5a9020ce3efb14a527cec6b8956804dae83cd1aa37d9cf585d6f7d6fce159df13ea2f88fad4e66b98fa3263685d1ceaafade06bd98f085c331501ff6918ff9e961d9c73d3751a26023002af61346eeb62c3b4a96587e8379bd3f5b14ddb6f13c8f6a2c9ed10bd3681685fbd877af51deaffb807ec899ba586816fa361e06b968e95822a0a6bcb8eb539695dcb8ef7d96713880bd99c74fc63949244729d16daa17555426df2550f91e493a09c7a48a2843c87fa348ceb407fe682c482646bfbdeb60807ebfbadd94272c1f1bfde8510c92a148ab215563740d1218ba5e9bdda1e8710b441481c456b0f187d4ec4dcd0989e1854cc4dcc8d9017d4e3053581fdd0ec06fbc17e72c038a415085d80c0e5504ec5e570394da06a2a2de8e6c86ac3428753f268f00ca6ef6113264b6e2061e1caa010324a319e0024190040dfcf7b262c05f43f24d30c1af04b10881703e90a490596aa0265611b6028ff5ce96a9ec21b827e2cb3e4c89d9764f941b6f8e0f47a1f29f49a6f7dc5523af45fd387b578c0ad87c5524c630463c234efb50fc19802a6a88b72e8ae104cd123e88dd0857319b13074bb67ba6e1e0cf7458267b29eaf2228f36f0cb30fe74a77e170e9ba119275e3b96e584a20fb7d675da16d9d5c373f9cfa156433cb88aeb7c633bcbca09d42bbaf07d3fd4afdb0ffbd3f1a32e8722b83f6ee5377518e95446b8be3b5ed392cd5e1022f12897534b62cedb32c7a3468f1cb38914ad29d75b512d3788dc55c0e2ff59a5bf4c1470adddf7e86f6df906387057a7c4048ce113b49544c7e364813754290681fc49f9070b639f8f3ac9366cf6dbe39bc706945e36410b2fef53f6a1e7ceec636df93a9d9af0e7eed99d321029a7d8969b4ef7f9c0e7f6d56a6990e9f2f3e641175e08f6f837d2c752e4e1f5be21237f74291f557574540ad3967647069e6c5c89133a51dd218a3c20d07da04bf9f6fa233216bf7d07ecdc80e973af56274df340ca783730e97ba7a2af5803ec1096f1ae607b2720ee77011a6d1619ab55260d02c6903c9cffd245e599caedad0e863b7a0db6bdb6cc9f1e8f6351cd7cf3d7c1bba5ddd680f34dba7753634eb7a6c149b4b6465aeb7e27314fed86b5fb17f18867d6675bcbcbbbb5fd06b22ef6665de77bf476465de5fefbdefeeeeeede210f38320d3f7f05a2fcd0fe97be4fdb14597264bfdb60d77f372e1f91d0b2766a310c2e31320d5c64a0bd971a8021ca0f55f04587d7e4e17f3d57211f8d94ab901bb85694077ceb21b7858c6cbdf6b89aababf1eb520e870bdd79ad7e206b4aea4a49e188f4bd18d78ac21f4b7d9b31004340f88f3741e548b8139c89c5a1abe4cdda63e36ebcb96471e2157e9af0a00e7dffb0a0ef9bac788e388edf08052d51a58e8802e5a749129e1cc67922e4b3c4486a51409c4860868c75a125f4bd9194a3a238f9e949522467e809139f1d23421805e444498f4e112c38b072404c29569f4153fafdbc17a3caa00f0702d0e741c87d7f2ff441281a41a13d4ff91151a0fc3449c2d3384f847c9618e114a3a238f9e949b2453667a8c76392a3b4f34563c2bebf6ca0694b40c29970241c0967c29de04ef028dc094b8822891552e823020db6a0249794ed961dee6f73ea0e88c51b471215f2659f0449e87b027d2a2252d0f7841349a04efd36a72ae8fe06b6c6d2fd98591a92b5d4451e5967e8bea0620ad4e971379a0548a84f0a0f097487647d2a2e044169f04d1e1c042c4824291ffee37298213e7f7310da7bb1a03fab93f1c51a8db7c5e1ff626c09e45bc982addbd7a865d97b18f6ef9148148b0fb1b89fcd7d18e6d9db60d82eb610c28fddcccadc8010016ed34576e1ee5a96f5e8ee7bd01dbab484b4c734ef5d7ff95b0e65fff5f199aeb7e6e3d2c2ebe2cec68330730db4f74cce6f0614f27d8dcbcb8420f82e7ae2527b8030be5597629af5d8c3999581d6848fe9808095811f2106a185d1cbdad7a2cb61f778a13eb18530d0de4b0bf5ead1006221590b74c87fbd08b2896447f6fc98639f61d78ca7fdd8bdd36b9308f82f12c9a54d0340a9bea023837633812e579a1fc887c4a09c5006b268dbe01e3027626ea26067ab83818284ac91728ffe51d1809a81c9f4fe713aec0f5677134fd6c36e07a34e41e8f3c129fc161c3645e1f4b15b50ef5983ec90104e1f29d4a71296cdf67e518ba20d0305edbd5407a2ee43d85df840d8c7eeb4d83d2a014c024cd33d5a017f3f95e4b261cf9607f067bf833f9b4090f403c99ea7dca101e1d7667cdab4396ddd4a6dda667d6d3e86790983e441b243534d20d96b134955823f025bc50e8a803a8920c80c228560f2829308826413d54ea828823af1f357efb1e1af7b3fd72501ff0ab8a9536100c85d7376bf2c1805f52f2981d618ea0e743de99f9fc143c3f4d79987758d6a987e1e7472fa59e7e686b428c93a4224929428ac47d685b204101074d2f14727bb6953dc6998fe1eba50b462292ce5154b5d2a1f2cf5e34cc87a7558122f46ff76180c9e4ca7ac206bdc49d1feb8d3a6386bdcdfd91f8647833210cfb43d18285b63df8ae1d16cf168fca1300968af0e7dfff10981d69725f8a4a13018300a76378fadfbddb5e0e028140a45f721758aa21bd32cbf26a242f2673a921f4b4208a5cd271e9e895127fec728da2bb02e685dd0bf4547f765c12520843e64b53ccc6c26e08b7f38d0a66fae86b1d798903cb4a94ff05b74f8efefe441f96755fc13e7aa967336877f70b6c62a5142ebe27419f7e8a8523ecce384d665f2b33e5c5ac225d58bc1bf4ab6c636e1c48bc15f170894873635378b94d07eb908ec499b40829cb2c93b3b90fb75551e20d11e4898531f6f0bdad3829d3febc757bef295af7ce52b5ff9ca57bef295afdc95c85aa24a4a14ca7e43611a489fca0b4592b049a472214cf3545844a1fc45287f75940e653f42d9f7c9bafdd0a3b1359240eb8bab3a065a66c49beff57bdddebcfe9e6746c87de8eecea5f720ac0113b01b6afc8e3181052c2b5c826d12396118f8a2200ab1b7c1d7aa4dd9508c525e582772e223088af21c8240d910291b92246e552690fe5956b31585bf0d758c52f646b9639ad23dda2aa6a9a255fb304d5dd93aa6bd84693ad2f510bec8492682d972dad4a936adaa61e0934852768ac22849af89ba7e257eaebb5e897feb7e2c6519d6de1e8142174fb3d77613755cb775a2558ecc9eb117ad98a61f3ecb8dacf1afbfde9aa226356cce3496680ad4faee9944ab0703dfb2f66935345f5b031459af753714fe77383bb4be053f736112b6d232ae8aa1f5751ba2d0122de1993ad37f154941e1ef123675f3318cf5705aa21597e05b0fe1bf173879489e16ee61036d6f30dd9797d2be18bb5c0d37f77ad98677a5b0cf2fc7e0392011d6341c2f17d076e3987e291b84aca9f981cb220f42d6dc4097c3b1d6b26867d0f7d2bd97a0d5188628d0c210a06a4181c14dfc90a24f08f435817242b5e56a2c1722244482fe80d48af2624022ccccccd38ae242128a50fb436b4c6d29116a4b8988c86a41690b8a05c5e77cd58242f953acd0de0b0442d68d7249063108821118689a0ce4e352864518830c8bdc2d336b9aa6adb6da6abb6dbbdb6ada8c6102103a747bfe1bbafd3322af5273a9b4ef61190b0b10b2ff7a0803e9f1f74b6d8a316a9123bf387ae11256a2d667338fc6f6d66b9b8f1da2efc5b0815aef5c0e90c3817f9bdb1340ec504dbb2ea8e3856a737d587a7dd639603a4b10fd5e2c1884d69abbb1bd9be3c9d0251d4fe1ac7267259164e020fd6d264438018a3e22980045e923820972a8962204897f107f4af9f7d263e8ed7bcfa3ecf14aefbdb7edb4c013dae18045757bc30ae07771055957c92ab18448d196452e6a8bdab8a84867502dc81ccff195bac161fe01fb0eb848a35a884371a1275800ad9a38f1e96125bc84793845d9081f611d2ec238723a10b81cac08b77836f72051fe289419e5587890d0901326ab9f254928f71ca18cc37a3f82726a77aabf45a23e795a96cf28840d275eb1f002baa1bda669afa568acd928f6b0bb9e99afcb6ad2b0b945d67337834b391a407a591c97b72eeb6238338369b087655dedb1d123687c9ef13d0b3983c4f1492e5f8a898b13745d127237786e4d48c80c2f6b95828415121138e7eb0a5d9c5127db3378a960880ba23062e5d0ca42939c785d990f8c10c48f0f0a5ed80298f000e8844d9b13e6058961da8b217be2b07e3bf8718a140c3901c93ec8aea2b4e084c4dfe6a4615dd65d41663a6cb6ecc0b0accbe66b2de0638fd3814477e90648f07d58afe9d42744ea6ecc0bf2f253edd1cfdd80b30769133139a204e7b794b9fde81db37e6fb6c6f596c57d8c1f45d7accbe9c868e46ae26baf3d2b72372c497adc0d4bb3c116f6a8a8db9cbae110d9b41b22384aa886855c9c8cc886cd7a719c0e5ac77137b00d831b112238296b3de14814faf43591e4064dece0099da1af891d28110a4393a5588d3ff2ec77b3e7e4f529ff54feb149658ab2093f723a327a5d5ccdf5db6bbb177763ff65d495aa90fe32880fb5de46633ee31ce452bf6f929e16a29b5f21b7673e9fd76eed81e93e5637e374d0e8ce5da20a797dfd76af3333bbc4caf0125bc3e55a37d0de0ce9f021843ca073a9eec20e5ef0827fbdd5f180cff07277ea16b420649abacc0faf87f02db8d66541ee7858977559d65f0f3b1ed6f3af756df1d160ea16b4207c7ef564df565c2dfbd6a8f6dac6d28fd8c3d2fd0bbb30ec8aa1d6c738a743479b63d176ebee7dfab0a7d66253d4d5c875556e5d25d12ccbf6b32c66cc5dcf9dc32b8b5ad4b4e58d1616b118addf2c2c62315e31fb88452cc32af659fc38796011cbb0d8f1c0302c8bd66f1616b1182f2be50410e55ac01f46425cbf3f7485e067ff381dd7dcdfedb49df5c5ea61ebf66b913fce300da743075f0a7c2930bea7700aa7f0ac317a8c36f829dc18135f0cf8be85bcbe463a63a387061e8debe137e0d1e08733500cfb19a6193d7c194ca3f2f0678cbaad935ce25444bfcd365afe8034a5fbb154d4558c72738b35dadcffebaf8c053698b3feea9c7bfbfb3be9eb81ccfefdb55df696d7c6a3d174997fd0ded55deb2385a3fb17772d3a78d06b561b6cb1994204b974fbb1bfba5e47817c36b6c652f80d80f1cae1d487a50c453b72e2e3eeeeeeee9ec54d290b14ed8f99d1ffd21fbb7084f66f4dab087ee0c490052dec36e459f029fc09ae04fadea1782691aa7d9c10a9da24cac9c9c9c981b3fa4f4e9bfc090f867f0a9d2ca4acd8f12c7828a398f027b8159e059f82f2b34781fe131b46f8179c38f8faa7509c50f84f9f18f2a3591bb683030128965a129612a164c55242be4b48375840c80e9347838bf4b013d4a361e4d160ca8f06e73c1a1c376f22b1eb4114d00787803fd0f79ec533710ee53d4122914800203d18e680da2452591c5073402d527140cd19805691ca00b4724094df7f68cb3389e2006a2025e06b50518e13aa36b13c18fece076665c30f65e6a71261c1bb9aa797840f5be83571307d5cb2d855b462a92a5a518ea888480949344456524e10d3542c25f4c334553a5951a0d4124c0887a74906e5889b80a8146d15a64d2e15d108020000c314003030140a08c42281302822d7767d14000c8b9c44724e9909b320878118438c518618620031c0200302240322440100013bbcde27e2566dd18795930d96613cf3ccfe086cc1b64076d1775d7496e12b8bebb1ba30e39337b61b12ba0ba88b55804057ca43f1da77f83a5d22f74c206cb34d43bee498c9f6d17148e89e470745aef449ee5e22d103c16d6e322d064fda90e865b7bc4968b075fbaf6e06450476e1a7344b364f747831c6d934d473bbd852081b01db54dc418445bba63596c08766aa0e6b55b71553768460c9a6a26a0fa639415b83f054686bff5372da2837eda788b131c0dbd32e82d25fd004d139ec474ee79656a0acd1ba73ba84b08d4c7fe0050493e7fb49cf1ebe6f1990d94e555212a796604d62c404feed99f52491d004bd947c7a6d7dadf163522414aada803f74808fa5dae12d12665cae11a72eddf723b13ec57be4b66ff77cca28ada5883144a42be8be81a08a0c830ae0968d8db8d1426c7e58eb409f1f808f017ce39d41a7ad117e637d00cbfd38390ff288e13ac4fb3a0fb21bbf663b12705aa3e5a544a099d5a82d2878773ba6960b7e7af4a2ef44206fe1f2a9f09f4f166d06ed92efa993344efe0a833be0792d303191cb04dc00415343cd07f76bdfc7d38d346f447fc67c23527c7776d37f6f30fc2ce3fb619d8f2d10c8c4ccf5504bc9b62e144ba39c9e1bf56060578788c3ed3580e1d6945a0852b7c957023e9fe1030d5773619c084810a7b924191b0313156d35e55e7f083a21a0b1398e093e446a44cb4a4b40674026a47858cfbb24bcb3295a784e955476bd7f29c8270d5d3c46f0aa55870ae1242e2bebb69e73101e4d7a736a69009a32a5e190f686774a2109d369ec0492828a75bb8cc1a65a47cfdb5072a7517f70a156ff97c9a46d2e85111c03c18fc7905298780964683587b543cb381fda95bcb824081f04d53658b80b4b96b622501a14e01c62b781e9e86150bd7d50ad1f18c40ea56bb9c126dfd8a3e0d7b26c4d73acea79e1170869343d4dc4a55495f455882b137e9f80ee1750835c861a27d2899f400f4700f4e8eb000157d02ce3419cd1756f32f53390c80fd0f966588ebcdabff51b179da1060a770cd5873f572c4e3fcd6d61ad27acbeeea4b55bb0ca0fc956ec7de58e317092f8b87c9b5e6e812e07f8a9750fad3285707f982f77bb1d904b6ce88d2707da6b748d5217e1b86ff4026faf116bc3ebf9540d4873d45ea8e105f645bdca6ae509d7d395d1a4227ac361c396a285fe4efa02c818be6fc9dc91fa2c01084b3eff4a3477f0efab5bbc81d9a1c1d698c18e513bd0310eb12d6039fc2debe7d61adda466b609ce65569dfb76b56ec9c39b9fe8044d607e76d7a85e5ef014aa446503effea15237102246e40a76bf7fec98a6ba4817262363c07609ac94492374fbc34cbc14071c560b492bb2a134f0d577e7280de4ebe48961977cf0e585527605e426a5fe0060b4b7f690c0f5bd12ccddcc460663ac158e7bdaa87e2c0ef5d5c88021d7b0721055dc7502cd4befb0ae24430881e82385e8451a1ed0bb36ef0a78ded1b1530dbbae9271cf870ad236ae25c005c4aa7e256d42eb0d908ce243c77b409093e48ee833b9c0ebee55340a773b67815f9717b1a913e93425a282a696c0f04fec4e94a83de78c6907228b2bb7ba3d3bec42dac7676a2cca1940050e54bf099e726c3330ea39882b3d8195e723458b1f30ddae5da93ce7e48cdf8d8cf575a3013a3935cc78f6ea67c38bc1fd154026b03e46f4447cced10ccc27f130581ca889f917d0ec5f9a176c2a5371d33418d48f9020852c24f85ef7dc6be730b429f6f1365ae39d5fb9e3079ce789a808a4b3847842acde0d2609ed4ddb8e63aae859e9b71eabee391b1dcf4bd95665b316bbe81ec47535b99d8a608cfe5c2be3692d462bb72b2f3b14e8919624d68e270a8600edec85c28c345e1bc462451da47031286f60b5d90593aec03b2ed8dc0d760866706893c4de838de08bec362ae6821d9fa73ab9dd6fe6a40e84cfc2957877ef4107afa1eb314d2c62253b2b8d29cd1e060d511e6d2b467e09d5881231a04eaef82b557631a4b441da82772345490c1c75503d94b615f25807636ed71639d033c89e778ffe3a67fd2d8ac523783130f33eda0d981b0d56cdc160026bf00b5ffe832abd1b98f8e073bf0273e9c898650b1b0bf936e7038c9a8a74bf92378b6b1dbe2420edd9ee7e9b02154bf83241300b8793a0431f54cbdcb458eec82d2782f828f1d8cc1a341e8898acaadb5c34f0850900a08e17d58934abb1761aad6bba98dda7cf1a8992109caa4a4fd43491a7e4e7dafe63b2ca0f937b499586baccca63bbbeeb73e6188900d3e74c1dfa3f207051e3542aa958100f0a9572d7f0566bc5dbce5df4b57729d3669a6a3b145d8872e80d46d05ba7856bd1441e7e9d001a2547948dd78510979f4d943d66952fd8b41708f0e03aa0eb37d21ef934c74a2aa6b5534f699646edd8b16675cd44d1442ab6c98037884eb1ca8f8015446b8d6d06f31aefb930ca689a199464c05978719b37531e180a28e528c9d18f11ebf477717f558396ad3434061f22fbcef269b776fe4747ea18ba1e1f70c3b1c70c478a07d76097835e4487e7adaf1b34b623c03219d27c15ddffdeeace89e501c2368965979be3f618903798d119577d83ced1d7d182482645bd1c28c91e05c9c37562fabf58934619dbe29c2a083394249e258747803b8a69e7817d766dfa5e83cc285c647a119264823c55b11a4b4ed5c3155f526b567fb1cef6a3a85883df34b7ffb9b689a957d4100f977468b7b84cff3fbf152f68126c6853f761029eeb9dad419ac72d97ed09a4650e0c6b0ff282650cecb9e09d238a7ecbc589160b5c49534d4a6d492ccf863afc491af0305634bb0a62af6368821e9e40abbecb1a568460ebe925c2f5ab782a98285f1754a6f574b920f926565b578838e8b57c83c31db3e416fbfa8aa6559b74ffee4b42241841015952a2e1576080b76ec03020bfc037d972d4d72b807c192009f0264a2a52c816d64543a9b781c902a6aed6770b520224ad8ea68577a3f59406dd9b1b5aad4351901f8ed219c4c8444a0ba17ca39c32687c52c1f08e33377f10b8f90bda800b3c0e2193adff2389cb991c2276a956c511cde4a76ac757a57236141df86832fd0fe2cecd0ac47ec8e5bf16e814de88848a627fdca3682dcd7f13951f67fed78036c1794b7535d40bfb2ebe888253e6bdd5dd107ba5119af21007047f3cbcd6f9f3a111e12aa31934d832eb920831366fe1076b64f7d6ec01c9e8b19c2e60647e488146332cabd89ed7ee89f48e552b180881feb7cddf4de3a0808e31d9d46b5c5785866e25dee2850e040d6bb46afb7df4a396523e5bfa073ace3fc4da8bb2fa9fbf9c34b4e8a9ca4820a0d82b1ae1aaee066be8590e1b2cf989e77a47bfb25b583c69f0950e99c5ee9ed655f45e5903c21ef4b83a49d94c1a0ff39104ec81dac4b1647e57ea87d71b5db722d4714942fc16f6cc4c835f2aeedc6d9611e0d3028d432bc5934e5b30c1ca1ba59063472f5011d714cf332a13ae428f1b86b6c74f30d555492ebbff648b6f97741a0ae49947d9fde93264ef3b8b00a5c1e533bc68f8abfac08f43b474a73d74290683cc1ab61b456c526bd19a7027ebb7cb78114fca864a605a5b8a251706f3095bdf936f84684f652e22918528b99b5775fc9a9d1c585aae48ee3aabefe2b0039d1ad3469108aec66298dfe72fd05a859f0a01c5acae705f22d2495cef477e91ac15455b42c4c86478d0791efe5b604c2d39feab9806abd8b0893e663c8acd0f9762c7a80cb78a70467b9672f63da4e556f10375b58f003b382b27d2270b62fee2fd85e0932ce69997802c32394c9c41e7b7866d39286e27c4b2f239d773a10f680cb7f08a1cd62c4ae5aa64ed2ac9ecd592482237c366cbee6ff35f1cbbcf11752875db43552b39adc4a0752d920f8c0e649a6645681fb02c4bad830eb694a50c15c56e56d582e48489a5a80c78915d314dda43ee2d89870cf1e966df9e7a7ce9f277e2938fe8845578f2315687fa3444b06ed7d9152e9ecb066364011131d248a6486ac8a4d44fce7c74ecf12e276c4a0e238c5b3a197b55a6bec4129570a86c4e03c3baa611c765f2f290de122ea0ceb1069333038d173d4f6afc3c94b2b41a3d1e58a307d801fbab6641a15837b7d646503ba8b5b632f8988f62e1dc699935c9bcb2d93ebbe34ff9f941535bb30f65dbd029a364e9aa2a341e075d874586acbbcd2a2cb84a29a4b2d728608c08ac86914e98742fc7ad92a7efab9f164a6f90bc8bb8d382f428551204f21c33e37bbc7a0f5fc2a04d4a42204ad3336b3250662b0c16f6b4b2994fbca4e4311e03d0c21b6225ad4e05966967f461132909ad42dc56e9c6ba8b10358a4a2fd90dfd17e1fb466022e37714da48387cd6e84ef8d18a4250c1519d4f3e5353f4d8b224d6c75067a58bc624eaaa286ff9a44a6c0b8d577c1763a8ccc532d5e59a2fc235fd7c4ff909393c11424a961255d6f902259711289d685120a0b40be34ae05884c60782ba57a13ce8af32b7390f27194c3f27b299d5897b088e4acd0e3e305d43f1ac5a0ce0bfbbcc1992bb2f1fc2c61f9b0fd04a1409e0eda1d0d74a1912bc31610dd96902771859729ca33ed32236cd1204bbe1c171e41abb7129cb8d531f1c4e88595e7452df0dc50377e8a647e8ae060db78a016460648d156fd46ff2909b943dff63408394f9b2943734d97c5ec293608780dcffb51b15cac37df246714e67c9f2da3f45cf194a28e48d5d363b740eaa9162149296596f6045badb3179547a9a3e65f301f5271be3b76c04fc8a361c513096e13e168b0e1d1a74a687e5e8f4ae64837338d5cfb9d1b9c9b9737e0eb31f80e7db8cbe410ed11d67971c8a4756e77672140bc2373484be8dcb7571da10ae81fe66369b6ba160fb82c5b8d21a730e7323a9e1d1ca5d25cdc884168742a78405fc14ad69d695e9c4193d75ebf1c3136f2add2b12c3e4efb1731a00e080b8794f648447790046ad296f2032f374f28bfd211eefc34e5c0154edcc9cf6a0ea834eb42df8fc1315c4a47ce9dc517a75750806551056c4100b4ab55731a150106bec472e8e1284065eb090474a20d291de6b4cfc584fb7802a22ea09198a9b970b167b3e659829fbb86e2f4e47342a7a9c7e87f0e3b1d7f88d3582041f3b842c2a667feb7ff189801af05d3f5463c15d900ff98ac5f5f331a9059e98688ac2595d75c1e841d7488c6f96a9e8a1593dd9faa04556ae2674fbe4833b20cf25d12021e87af5fa0b14a4d8e988dafa5f2339bf7ca439b2b56012b3071a49d4154860ad50efe7bc6c12865abd2726165298b55e5d70a50f3d2c7bde1efaabd7b6845a727d2173af97c9d58ca04e831d16c4992d2496c2db1411ca2fef8e1886e92a146539c7c32e4eb3b1dbc26f870c9e91ae0404e49191271d4d71e7cab1856d3592e70bc11b1c140451213f3a3cdc29f1e221b02be68a641fc2fdef1ea27833c95657d906605ff1c9acea6327df8b67dda81008ac32e4dc9374dd504464cfa0e1a00053e728246512cb0bf28e03f6d4a046ee87a58019c0d3441819bf254a4c6678078313011dd3e9699184dbb59bcf2f36ee55b945262949bcfd67e6205e1b9bd373a4907029fc307bfd245b6d5df287e8a726e6ef07fd95b1f237cd09d989d906003544f48f8a71e9705a1f00ccb395df67f4f33c4cf966f8024b32a12f026635dd38e24bf4b10ccc5613e5018b42394a3651d2b12892a3b4268ac4a2941f295e13c5d25713dd410d8898d02bd3fca84cd8020655eb7cf888e724d9ebcb0edbb8a40bdb1288b7f0f2ff5d108c4b7289c8964cb799a11fd4e95c32f608d321f5fd78264b80a1a94db38280c57e42d8490e7cc1b1d80811dc3bbc9fe22eba1f2b9b182be5477001dc657ec0f9fb0da86c959fcd4c1f8aa05a11b584bb94920f802da1084f4260d3904620fe0480d0c8a05e194685e633a6e15a0b21bebc1fc95ca0b940409b61077fc4e68ffbb5c2c61334da673e82d88f43b9648726934327d97c7b06bd6347729ebc3dcc23cfe4fa9622bd1244a41e226a1511c11b91010575e2fa0a07718918e26157e1bd1716f526b405625d0eb56b4290f361110a2c888cd662141306f9db01559a8226d5b7692a2e86169f2969c0292100bd65c2f09a3985e89dd55f5bf34752f08ac93f3cfe612ca519e7e6a108b140010f0841182a343d6f2dc99e58a5ba8374ea49e34aeba1a6c76028dd1024cad11df7803e94d46d2151023c47391e4054bc24772cd0df7270788a5017155eab68cd28309aa05a211a825e2d4d9872b890ed34956654219977838e53cf36ebb61ccabc44cd0405dd4737b8191059b550c064e35a2c6480499038d9ea2fc0f51c8b28fe6bdd039cb458be7a0e8bc4e472337c539ecaa4018a8e26ad01e34a25243c3732d4ee48257aeff53fe35f4253faa699f36847421499083f908a9cacc47853389b0ed09d8dd09c67e000f65bfaf80b7a0d44d8653b87a785ce3effa000c712243b2cf06b11be9f61a1b1c14d04bb566297069c72196a7183aff7f448b0cb7d11ecb7c838855842ace61d99996723f4eae14b08c8fdb7cf315a660d286a33e78c29ad8e60af08a84158048d797e411f67d927c977e15ac9c484d8a9cd476ff263e277e40bdca79a0f60a2469e101af43964170cf00bc0ece98386a3ad3ec1d234061d5510f75772ba3d49165058c84fed92c1630f0077ebabe722c9736c290e7095c42c76601fac3a619d4f245fad8f5cc4993ad376bb7348f5a7b258cd45e6319188e4f7542837b11b2409b1c277edc476cb1d577682ff73f751397a1d4389be1e3821c0868d9b9b395afefa8c1397a020e4715e38f80c7f6b7b57182fed4773fdf7acb64ea78de7c7e968afd7a5598081160eca79c6a34bfdfc69dcc6a94cc5fd097b1dfe81002733dd3e065ee59a23631e91d5f1bb0fa1f1cca61f6696648c202f82005903db0d8ac0708b12a3c0b395245288618b648ed8ee4d172d50b18c7b57ff44d9b71278d67c40f36232439d4d2133ae03c9e220ff32742a61a175e8e4b6be72edadd432048d118a39331e25bf3b32f70d98311a0b80856a58e01b26e8127e3c2afd04b92c7b19e571d7273a8d081e4c1fa190164201380c70de4e282240b93c1dd13a8773371c499977ca733fc2598d0ba12b37202aec8833a8fa529326eb776c1ea187ff5679bfae155a12ad692872f88cf9ddad49311755fc69b28c9427170da32632e0ecdb16e16684d902e09ed2be0bf1b38a3acd7824a9688fd9c20e4c3e083f8b8f66ee67ad48e53b20a0e1ce1a08d60da398d71c76ce1fe057a246ef60e42ae3e2fdf6640ea1a769c75ccf11e5eec0883121c6688f2482655a94091aba059a8e7fe5dc9d66db4508b0164ddce39ee9bcc0765e216f057a5e22b8653b28fcc71a141c4715bf4b62a8c78803e33670a633796e8576bd4361ed1a4b5e4b6a7d275e5780ea126267955e63dd2b17448ae716190c568256ab982bf878a425e1d80005b871b036cdb65d40f2bfd3e51d0304a04b3d7f0a64f78af8a21ace6ce7093a6fe91a8ab139178a7b0219699f9ae5278bb08959b446ca6699fbb0aaa618476247db5b0f27da6fc588a3854f4b6ef3b0aa6559a17356a4211d265292be007f7bc415e8af3579247480f450398ef97c583f75b6767a3c8030023d2de42dbeb4d5d8db9659b1f4df1f83a70a4709db69318dcbde2865b12638649e082d0fb0c617181dece8d07a75e7a022850758067b93bb3d8fe3b92530168e22eef0d435055d8479af4da65dcacd10603deef93363e41942369f0f6333a3db3f18ff777487eaf59ef48356eb2048bfdf53944540cfa2b9250cd820cd1d3bda5ffc582c5ca458b8ab1442ee79b7a7bd6361a64f84062703331c2de2abbdb4d7323496b02b0eb12c99db80695af102fca925c90c39ceb6d7b989ba16da9b857619e607504e5e5ec178fbadeb8ab942c1f03a6f07e007c7783dbcd0b75d079bfa755376b43b69471b3b136644b3a05eb790f5a82a2034f6f5dcfd9875f5fab30ea0eb2d195900987afd0d9c1ddb2edd4bb6c5918c674eb542255b978282f102e5f51738f5bb4fba2a8051fa7f58dccb9d851f2db767101ed77acf1029c36c08d1732b412d10debaca16e7bf01b43a0b1cc4c343c5e519a9eb3df58cf1acb550648a40c0b7a130d5644c2f9579365b91d9b0ebebc7111f309d5fac64f949e0ce54c763de6bee1651248fa99f9c1b80615cff730270019c431d3b4764746298d4ef35e0da843062b3e436b0d6c3ac56cebcf5bf8f38fc0400f92fb24affd37b261cbfb7213a0654ec7b88daa45752c6047c5bb117f677278607a90fbf9845d85465b2f8afab94d871c7f81990b9420af3bb7dd41df215a2ac60637edb18c184b832c38e7cd82c4d979524c7df91c58bcdbbc2c88a86028a771af29117a07d584495017d59a1cffc1538149a26c010238394ca6376e2a0f513c1719cf387d70e8605abd5dcc6def3f421a632fd6dc944a699d04d073676a0d030ba1c62ad9c3376f70d7596735a895543e7aa17aa5a6b9e7fc4e153f2dedff5b80109fd1de9bd77f3cb4c0ff992e121ed80d0357d3b7889a35c3ed492c05de3810e1049a1c05d7740c7884529f045d4e11c209242015db3fdd672301878c4ed136c019008e40f1744ef3bbd5a6fe6f94c75907c399268940570dd0339441c6503bbae030e246ecb0aec9a87728c184a0309b10e5a569f2d977ce092404b489d86a7213415f656ae23a42aac046ed1d289aab88e9f288b8e2186297a0c015b52f1b8f1e3c2d249d3edc62846e240fbc6f22a9d6ae7d2035ecf610e118d12a9d348e6dd6503bbe6e11c455ccbd1470e2242d180e63a3ddf4f8ca507c610afdfd73292e31c0d3b1a8c48ca576ef22e09b8d114fe42e43194eb7dae4d64f2092b220e64e16656e8c9aaf371f10d7af4c186e6b45588445ceabbd37cd8d4fdfba977af1ca6e21457d8bc091f1f0f2eb19e6a2d68a203580dacd3c7dd23b4c9bf854eb5666e81fc521685c53f23aa3b6d556f239e1d92837eae1aa32736d6690e1845e890ffe45db31fec4e2042dd746fa051d44040884cf467de2ffb57c0e553e4c01b85c5a380f8685246f27ae7926801f687d437cdbdd4931fba88f99a47d22cd6622a95c1f528e0c03ab71e9f7983d81270de32c274ab32421b9378369cc7477a999beb906aa1b1d16b4e782b75b2daf5cc0a84c6d9ab273cb0ba27286b5c92c6de8bccb85905ac1171c0dbf1829d3020161a3b177a5e06d10601fbec2ae4bce51d696e1a5ab74e89c33177ba04f0e0138c32706dcaa59a57a566496f3e8e35bdb5a5a76637df039d3604b21599aefa523b117c012ff267c8995feb3181a161e730efe741652ef6f65efb02069d67e974822185d9647a5c846dfe067a53292819bf0f540e79287f0cdaa31e508d2107c3d23f13471dea65b7ceb3f8f7f825c3bb1f1030256eedf5907abf8078bca086ee5dd854f812a695e02e90a5485006ac2872a9d1622ae2beafddde60293cd12913431a01a970551cf5433252e1aadf74dfde3adadbab9f9eb6ee2626e5c5362673b12627cb7e28b4b13ea1f9b77d7c892b7be5b858af13e00f541a7676871b7d7bf81be100998cab4cc1ad9cb5e4c62089028e23bf400e55430998cafe608b34923aa11e8832fea04edd69ef54deaddd095f065c4fb33e6c7d776217eff4b7364fab12309c037d4e05f71e82dd847722caeaad7f8a15be8cf6c4cb58761fe19d845dfd3b71f648a8133878cb8a7d7e7d68d6de109495d14027020598c5a0d83a3a48749744a3cd810857b93fd53c89a436162b75141a167bf66c116b4d948dd83e86dbcaa95d58a7b586855128ccac94db05468c86e6a9b85b729c79bf3c8cc8158752ee5ac3e6a519de91ddf33c130e98270948f9edaada2ed14232bf76ada48e8a2f7f9446efb34406e88ac73c777e05ae9b24c5b515c67a89cda2a6ccd95c05017aa0bea56ae7027431c259f6458acfd437288abe0ee306aa2c3a732ae50fcd9cad2149c07005d8030491515409bca5a878ed4f89f3e7664d531c499d4684efa68ead45eff65c9bfe9a825c46d0afcb2db26957bde64b5261b4ac31b8a1478b366befcfff942f8bb2d8d7d4bb8887d222e8ef97dab9e2b952fdca0b5d056be75107a0565e5a049a90299d7c7cd9a2d213b80c4bd9032249ac009e3c8fda2c84594d89aa9550fbee505318204ce07ff1e5191c3cbdf9e928f2d79076a913f29cdb65c9684bcd4a7a6a2fe77844818a645214fa2ca01278069493cdb2be9d6c806b0579515e2d7133d93b70046dd5419f4e1034bec38880fb2688572bc45b3b8d4e2c4d97db465b96787df85720fb5419e5cd27de283edcc0f38137a8a88d69973c777cf05d8d03a0e21b5647c427138addc885c9f0a25a294fd6ae4729f648057c7b4578482bd0e4e4a32f191d7725315b7cccf219bdaea79d9b34969ebe5560d541099d6d0aaec658bb22b11d5266876d026b93b5970d42cc24431f02f47d80da1544b4e639d092cbd38a976b88b81fb5e18a72e874305c8131bb8f6a6c289425fafb5f8c3e4000dda0ad0993d57a5d4c1696440becdeb6560a33cc3f39ad68dd3325eeee258b0b6736280adadfdf8a579264a1fe4896974bd7f72d0de52d62cc783efaa8faff36524d7dfa3cb2729681c86631d7e46b5fee049b0be04bfef9782147956f52d084a81e3618fc463855e5901be6d9c36a653d237a93c5da4ff2df8c90090f84bab1b9422158e4d84af3a2e8b2c5b4cb0f4790e706d7a752e2e00db84961870bafe8e4550a4ecb88291ef6d8d9dca6854f8a7045542bcad3cdc28ea10c5746da3859c3cf05e2efc23cbb1a319a57eaef80b687724f69dd6b0632d6411b15b66bf51fc46692d842b9f02b7f069d95fae66e9d59c3deaab93690ce83dfb38584fc93f4ad982329b9605a49e8b3e753669ea86a2d2de49ce3c21d827b932b91cc9db759d7f0f452f35786035f314bca0eb5f87ad551644eac5b0e3ed4b080913d6a343838274a3fb58b8770bb358fd63f1af9751839e6abc61e0e0c20052fde2a73fa04663f876012849e31420b73e2da1053ecd0894e7ad966ec911a9f3e49d990b3e3105e84af9089d8ee8fa3e35352c4655ab4d32302707304cdb4b786f996eeb944081235be49376f6840934532ae1b3eb525d728055481fe397553fdd4c1ae551c61a7f2dac36bcd832df6a4409ccd1542ede1e6935d2248ae1159306b20b0465339cf4f61dabba66a3974d2b56a26ca836716177551663245202605a87afd1c2b267e1e44ecb74dc781e13d8bcd9b2d6de1fc308b08be396859ae5a368b046712f3168b4d0f89fc36cbc9be961a30bb3480d732c15e4008816267f5717c01220fa213fa873b719ac66c68d6ee4f9185569287f06f826601c8d0d8b85183e09620148f8e21232a4313c9a701eb5c69cf9a849dfdacf6bc5a4df8bae5d3ea58f31fa30bd289a47d7cb61bf1b7715de588f2495c040d96b89d0ffc2699a0e211fc5147f0f2f99e06a3c8fe39b5c851df3c1184d961d1c1dc21ef97314214364b46ca54f64738f5abd29bd823178b680dc6ca0cce3029192592fbcdd74869ce413d0ddd1a4408e8d5f9ce50220912131d34654916df3e4a8ddafe6ebd69f7bc3a5adc85c01629189c92b394b35890083a9dd14ce7ae857bcdcc07b8fd837cd6b9d832fa0a777e0316a2896fe803a2fae367505ced0a93d0825e02b3a0d5b16718365b652869f555144b186ddaf84ed4f2398de40720792b5c2c0e975546ea08e0c4d51561e35a275955f2e44c153ca5f37057379352d252c47ab64bacfad070c5a60dc20f2c3d616d944a900cf55dd3239bba2b074d4b779d655574e66368136248cea26d1f3ad5d0c862c45fd1a12e7a30afaca7f22fe97f354d98f2bfd751cf8dab837fde544123fc62dc73ddd5f8f58fbe67fda5394a4d09c635e611c578dc20eed734805631ad8d195fe7e3b9f654cd45dc0a0f0a4cfe5331a9a984e53ce8cdc14d2eb014e52b6f6ef436d1407bee904e0930d022344cec22291b0c75e727a2ecaa5fd28c78c382ae7dfe6d76f6f24be2c787f8b0c297f00ec3f1a39274562b8c54531df93144acdb9a35e91dab9dfbd65d160ec8b24ddd693c0b8a8abb2b4d462e5bed14d6730282d5b3b30f27fb2f645cb135f7e8de5dba52ffb2442a1a3723c82f7af087a227187b6203b3bf204d6c585602a736d99c6e0d9a12dee9b5b810f36e4a044a35036f6a37a32dd99df16858a6c61c3538bceff7061ea3b1b715527632c94ad0ba392c00d440981f5f03e2282a3a48f400d4f73eedf49682c6c2119d1a183fa4b1ff523d08439706bd28cffce9202c8d7bd0c645905b696af3d866d470e2de0e9ae36cb9d482fe0097bf0fff67aa2860b26bc6862ac45623e097c08db8436685eb9d9cf60bde51f5dfaf694912a17ccf8b5d5626a165d060e969fa293283fa3833651ea06e9da9001d092905c6d17daec3fa5e9f9b3c11b49ebb89450c4bc591490476158c76ce4767f7441258d818777c05c6d86b461de777fb67408cbd28e5ee92b44cf6e35e343f2590510fa25a5a7c28aa72ea44694849f14526a0a5aaaca2b3cebb5ee67944967a512191b5e5362406ae706b45f6e2252246b98f200bc007c29d340acc1910945471450345729c941b77260d34dbb63938e8a20d86355b44f69d729c2d913e1f03ee1b7372c45e47c98a3547d851cfe313008fd10e3dd782690004117dc81c073a17e5d9a29b69aea2e88a9761a55565a5a624a71c7d2548ad3c9271a28556bee631c74bc21023d220bd72234d41739a0375978069df612d66d85105e9b8c248c1ac18add7b58a16f9c5b8920b6854823349a5db0d3eaaee169a6e2559557e649387583b2541f22db2a7cb089bd991c63493cc90bac4a849d76b5ee6fe5508cc50ee018f288456ecdfadbaf0f14803ddbbec400cdc6d827b82317653d506ac8558d54572ee2b128fd14d8fe43f7ff7fa8b5ee252088f8ae0a9c6cb6917681ef7a0598876fe2a28342b9b8c098c1e6ece29bacde31da176a8c99d807ef1dccb908a761af0ee0462f743702780b0558042027a66ca6c657fe80de9e509d4a57a7f27f236bb34a92f0cae46c7991c6332c8220502ea4b0964a7b78c9ba11700de1e64dfb5fc3e3d61d4442bc1543f5d2be7c72f62d04b0d8a96013e34e328cc6399c7e1034bbd504f27e04bbba1248b21fd538859f4872745f79181ad4130738103d520859a7ac38dc939be52594c5fd7bdc5393099a2b9bcc6b47d0216ddf725d3bf53bc6e67edc090c3b8155ca2f15ede8ba7372c5849f6e0d1389e61eb4a26ae6551488aef9f5bbb98ea50576f4eeba28f03e676c015a9062629ca389675d641391d70075f213699e80dfc8c297f8a6695e2d96df8758c785099c3e80c7ed05bd3e472b12566295c67ac3cf3bece93a4c3cc04f4fed55f5f36053c3f1194b8b6dfc43613bf26c971350aadce185d2deb0eb385b84f116956bd5c2fcc5bb9bc967543afd7c691974ec94c0cecd10d5bd46fe7fb5791c57dd3d006d7c4088025df82eb5b3c127bf11c956302b7be89208fceae7922ec7fde528231289d49576797f53b9d28a76cd251f46b046bbd973672d80716525c66c32e0746cbacf3841570228878780d18077e083066ca69ac0e6930820ee752f13a04282401851ba8401bbeeffca78d51f72342fdf4624330bf0cfedc83224ac30dd49e7c321561d9ab4c53ef2a7a865e7e4d77338825d405ff8f499450b5894430e2e88abbf15060e6f4567704db1010e7dd789aed46c14b92507efed873bff39ee142ac853cbc3dfc58c2fa91c33f73a3e1a92628703a03850fab36683bdba9c143a4918127cfeed122ddb5cbbaecd69faec8ab8ca93a657c099b8fa560ab16d6db85e61a266ab86dded47f6a3a921f458e70243f8c0fe13327069956e9163248496e1d6a633af210d5d4745358069942409350c466aecf138809741cac78c1e759de049df5394c09b73ce258091541e75999ed7e1754564fccbd3207fb8630f951077f880e9135b3c5832f09551b4c7222149d85305e4efe8d21572f067a82218582af1e8913f2346109cc5b4acbcc55ad39925c462ec001ed1d4ae87420c597cd9e1b55689f86f8a3ea538dde66d01bd8e863cd110e0c0361a8a65243fe03b55b2a14c30e1dc14c883a7a2c43e25fd9255beb4879bc8c13bedf2161197422dd892494203c0064b033fcd3cacdb8c2bd0641037d8416fa22684ae8297323fa0946a96a667c0ad8ac778c1b53e4ead7ee8d2a3a469f42c28b13b223132777d13ef404bb0b5e93507ad226352fccf099246301c0e006ab8bc0b3006fa345adecceea273274555f95448afe627c625fffc0fbe5532fc389d7e681d889016640f538067d9c21cf1edd90a43d622283b3dc3a1632cb49d45017f77d7eff3f5ab8bdcf332f802472a7389036394ea4b8679d9101fa37ca4c2f549d95f0c189ab36f923f3493328a8d68bd91d3786e9ff46da6749fe14761ab364a0a6ad721d76fe98b9019404726dbda8e49e4e98edebcd9a04b50c13523c09480e0acf9cc1752e3d53cfc391d55effc09635b514b85ae7bcbd87ed6cd466785e2cecd409814c5bead400ff2a8912f01ab4345d1c5143e94bb05f18d6af669137b2090a8265f976d414e9757ce0505d34416585ca730778f8926ed398059a70d494b4a51f5082b59f6c123e6f35d801245eb362d46dc7e01241848d4ecbae3fcd815393d82c8cc7f6daa8b14e8a8d389e5efbdde28460a9e2f3839dd552acb9d1e57999a01d16ba4722f9e6ba22b431f58b8be1b8363b2e73a3ac59343cd45412cc6c3a5f58d3a1ad9e2bf8211d644e3ba3707b90b5a098f26b95266a174ee28dc953e220a2b770667ee8352706b517b7631b7fadbef2d645a912fd938b812cc79d39e4d16c32280fdd18213da29ac68ad45dfed573996b4051d8954130d8045277b8904eca4dbd13a971fed51d99eb919337fcf8dd30061f6d10c76ee35d52f2b9fe724ced64e234fbac25d221f11b2e07ef6321be285ccaa12553dd86329c505c58fcc4897b0939b8d8f680bef62029b74b4b8c47de430c7ea54d4cdf3e1101c111414096c4adcb164baf82799f3dff7a788ff621bd573df860535c285ddcda60ca4d4753d0e0d9a684322c2c5bab4d475d03d4ff7bcbb065d23ee4701c0547f3782ffa201b0804590a6403155be871f9f21415f8b4ae019726c11ae5b7f21d24e02ade216858e90e89aac487a41aac4c5d77c864a217b00d8d2b4981012d67092c10f83730fc72fc80fbb7092f324912ca77ac4219469b3bd6897fa0609fb582c888d1882a6ffab5d852bad1bd8b140c2ac78112e93a4809a2623620410726cbaf4ecd3ada59f2b0796e497ec2a9939530ba6a1475471179e2833481271d38f30b59082a2d3fc944187a472b96cb2e27b91f2822a3b266c21b480bedabdaad7abf82761ee7a0283004649090390818c6b74253c92689067729e7b7fb5204c1ccfc61ff25daf37ef7447d8e43307ef730489d5c47faa516306855925ff5047c3cd2d8d120c811194a51618e83406bea8911ccbb099f0a50d22275b84d84f5424fbd998c32908a9d571eb0b1e841c1da67cb2eadb57831dbb8af4c32caaf6d8dddfd2b164c72767813d5b4eff1f842a8d8b626c5f9daaf3e1bbb11d0537adb89fd0c711e3a55345b4d33f44b68bbdf2a5579f53439daefdf4de59e2df739b530090cfb7906b7a693a24cd519ac3cea7fc67988d44eb69f45dc70ca337ad5c1cf21ba7b2e9a37d974896c53a01e53f05a8da87047f056153acb01ff570ebfb304684ac2a0275358b7f4d63cf07fd1fd0dcc596965b25c9fe191c3348ac114a10d98325310ca6cdbc2c56801e867eb97fc1a52a316bef89982b4bdfc7f25afd2a929b4bc3ecaaaae517fa3259518003c690a59c76208d25d1cd82d602f69e94bdaf0788bc1af65b899547a825a73d22af93d5155959f5d8de4820bc1621951a9de8b66626333ceaae83f2304a45c1af534951bb4eb35923010ce2676a15f12145a2072583e2b10eb20360eccb9f8f6935b7c58b27d269a4cae724013031abb9c7127960a7faab6fc469c56143e6759b00fe00a9b0f0159badf5c7cc13bb1cd28368aa3cb5cd96237c8719b8e9a2ed1ca6e8dbd852e732622b01e277ec0aee038a4c870a24f880ca71af767027cd22f1dc927a2caebcbf5d9162aa246c7b18f9470af8ee0442b5741c3bb84124d9185aa10b7ab4bfdee01373fb4fbbb13fd8472b721d64ac069ac0d551a005e59dca20b0d78ab8fe4c2f427566fac27052f4fcf8b58c21b78428e0012ad019a2679cff0ae41c91b8066a2ec680c2e550265d4afc8b2e1d28cc7a165f147038e64583cdbe2ac7a3f51790cc0e10b4f5b9bccbe1f7e34d0edcc60d36bd62dff06cc9ee2041e4d5e28d01b328bb7af50e66f25c2e10e9f1e097f4989903f2eddc479048f04d190cd762afa540fa62f885a7f130195ce114b8e3a2c92947de8761a8b7e7206b0a238477eadc2b94caf6b6ee7e52a72f35a786b11772f407bbaa82fb41e5b85676d2f7e31766e1b783eb580c408fb06cedcc5861032e3f587d30d34f066dd76db3576f104894ae8d752587bafe458518426fe03249992028edcadb945d2f2661df866ee7f9aeb79b26c968b497a636fe01409d65dd6989818baa7b9f10e65142448ff04d7a8964ef881a5d6c334a31fb122b92098c3ae636e6d75b539c94f385190ea68898c962b1e89ddd033cb61f261fe84ca3f259276ad3aba38d8836aafd8a541c33a5ef2f1c309a41ed5aa01a6de8ccd0867fd78683d2b6a4a1953bdf84cdb99a951929f28fbc170958b3a70781d872f7849c58f336cd56e0b576b1acac0a3f984704daac08054192fdb4e1df367d228ee2b8392b5cb065f1121425f17695bad16352f6cb88f28581cd0eaa8d76b99046f63ef2da9a00ef8a73fb9c4b0f5d9119d8355265e6f050518294b23ab9f65df3baf627edd440071646fc3b04f2f767fb2e9c5524c5a50089d2acefbb70a0d22dbbd7cc3899b9b569eda950aabcd9726eb4c2d90442e69acb876d5a4805f17d2e96bd8fb4490a77c64ec350e81d4aebc794c83ea7f66c74ad6c6f17faf73c01e8a2d722319c292be637fbd3e4f1764a42928df5bb23a4da882015d995265719fd7bcd453bc5322c8bb102e1464c47bd531ad0e0524def4b83ed8eebe71a9d2d385d3110b5456bf8372a9aeb8e5ace575b46c8be3574db3dd7a647448685a89855ad5e6171e005bdd3efe5c983f6e367e23c55a899e4165107de9c30fd35b73d1700c7e182b911f75b858651f013b8570696423174380215213259908315ad497f13d9b165f9a4c4f341707caad3caa4c49c921c59b8219df41f666dc0d3e752dd34112498f070a86ce04314af4f3b1352b5281500ba77bc30ebf9c7fa45bb701695b8f9f2e0b13cb6169f6ec6758df6961a7a53dba655e1a53fc3168025a8f6e401fa60505762968f2b0e01ceb03348ee91b0247d8f33a2cda46751a6c3cd3dcd2115a3464feeff63b8c9bfbaa1e2bc13c5662c95c23d73542f87601d9ac46f6f39db6a9155395e6dff7bb1837f31821f46e990d73ad5b54a5a9766b2cd6abd19600b04815d950beee2593d590fdbed32ab5d25425fc3b7e0703376da41452dab1058e34f7635cfda382c2aa461e26ef7dc07db763c932be26dfe288d6a4aa83d665f0ef7ede851f9884f5431cee20a419ecab12ab91084e48c20507285101953a5c3719f4d6866420741d84d87901565ac779023e3e5391df88b6afccfe7bcebbe086b9adeb6b6ba363e8aadb633c374c9e3e35501935084e4ebe5012022e4b40eda83006f4753b992ce6f2f78da6682b0a28e5bfe7bc8b63407704dc0d84ca69a021bb1a041e830810c3a73a92354feb9bc430a899014cbc915610721f1d9b92594c4fd58274a0a1e970d2540b896ef8aa71e310e26b661bbbe7597288874d4ad9491e2f04f17a923f2a933099ab2d39985c2921541f977a336552e43cfab39242abd72af8f4890e90ef4080dc59099c7882fdf9c1c907fbef6ba854d616a20c5eb807410a5760f121cf4f86308fd15b9cda74c8f0a6757b8f75e3fa18dc944bb0371eebd5cca1a8d093917a89df544a7cf0424c40af83e23758c328f2a172a38cd40bf2579aea7aa890da49c3feaff55882173ea6db9180b73559bca8f748904a2b27a19e8ec24e87de92941581a3c5b08f57350e33fe350aa78dd4d76a5facb8e1c2b11f21f1ad409295720da9b6b00269482b71aac99f032c086491ac75b8868c9101446f3996e109985becb5065b626644f7345c681426d817a55388bf900619055ac1d6621f066889f3e0fac51b6d3f27b28f4e0b634fed1ac7881fd3a24f0ba570d549cdb75b3118fc35fb93c6157b11e6b0918269f7e2da582731be3488992f8dcf2501d1ef7cf4d363c7df8976bdd0daaf82561e524420645bc096a41d72cf9066c712b0c05fd2d6042b35a0d919a34270357382773d4d568c2b3e25389c7b58829818b56d0483d0033add26b701e2eca20d60cbff7126516c0ed43e4647ef0ef665c87af847b934dcb2390684e1491a5459060ef369fdcbff3a8843b1de336b0db06963a503d2a519fd805805f8379b5315956b7eb33f412f53cb363d75266bf2e5c9de55e0161a1fdaff7771b13313d8486fb44eb7260a25fb5c724cebfc1536f4628b488fbd0d36bfe821e8c5ef0dadc2c7a6bda3c345a9bee2014f46e0e482c2abab590747949f48fedfe211173c3ac74dd014aec6bebd84e0599fb13b08e1e13602151e08cf7b6da23729193addd042e357afc82979614da381a95a4e85f6bff7b40f9c3ae9c584097ddb40d544a0878543b11261f8cefcd4611b5b4769556944f42da51307dafd239106401461931fe18742ab517988d6fa284cc1af287b572420684d89c3095c65ffc1fe03a122671d1ea7447a73d1e174d02bcfa4d930bd2219ad80a56994cc8af38f9ff88603029c4095da2ec431f8501f9ef8fbcb32381de0679053af802cf559dacb622af6827cce67779c48e5e455fa78458103e83db66b7ca74e157203a840fd5de11ee47d57bc0623ac41bd4852104d9d9f971459382e2b06d4fcd8ba41de736b73bd812ffa5483dc6ec6932473be6a6dc0d27fd94d17cc8c021c4b46849b4a24dd1217f4b63e51110b80e160e434e97b788331c4776174cff9739c347cf86d4fabcd037e7630df2c5258d363f7e34046d341adc63b84de0f4e26b7f8f8002c736d65b19d4ddf57f0b82b18edf59294fd2bedf80e5c0c8d4f1d7a786663ceffd920f7e8be93bd3f00d488631c96d05569f5058e37b98dea0aab70043e805fd65e94c748ddf7fb6969a84d068bfab202afc9ea2e0571d9de93af3b9951566a4bf1faa79fd8a6c5d039540d56cbf61f8462b36260562fa13704909a1ed40bf6ba412e6ad37b7e71eca70b52e90060a3c93b9f1262515b6e9660056c3b38b02ddd492df2d669a34aff094bd20a848e92dfe4a1cb440f916ed59457bdd4f1aab599e275242de076b54829a0d6e589c2e8b5ebdd3ee262c81b600b320dcf215fe0157d9ab591fe627c437ae7abc8d8a647e3c7e023cffe2cb4951510501169ee6d9b5661e84e43e2edf8ec42cf22fbeec64613af60cd861b95c72f8dce068eb8d1c8a9a221fb4d18523f64035a17d95dd43a93f6e047c98e512c40bc9913bf6169319b162be59256ee4f9bff8a31c99131c8e19372434d43bdb2a93adddbba3c1d19ef50ab31f8fa85264b39ddbfc8603a385716a31ee6d27959c71cbc6f6ed5a4f507cd69829e592d26809d2f871c51fb069d7e49e380e5ddf5d4a9202b6452f98f1daad94dd054a500aef353b10a71e517267ce9a1fc1b4cd76b9f93477de4b1c91d5549d86870196a3614108a12284befe59a76b8be95728196ab0041e0d946053a16cdb7b1401409cf59d244d829706574748a69e6a3bbecd0e30dd0fe75b468b368f32e01091a4fd09c91879f6ba8ecbdd936a8b275946406febf01e277745f6c9312b82080e8e098d7526c185785c7ff817e654026d4bf340c25d30458674e969f1a6bc1d2c9e8b1fd1ccece71e1af1454317154c5618b6ab13c7bd00412e91ce275e4c9720dccceca7e263c83b760d331bfde9c29af5ab007c247f7805d5861c27f49a8187ae14389c6c68fd873055a371303fa8f57aadb71f7438d007eeda2c564d18e3ea7afde056ba4d9039632822e0ea33234c6c495f8e6356d0c1b57ace02cb252cb599b9010297d97d966b38c2881be93f67d5c2cecdf801cd29932a7653ea2b45f0a77a584a89b0c81b70128631e1b9ad99cc7c1c0fb767ac0c52902ebeebf514002db62cbf4cea7ef422aac5def2e149b987a51ca7d2871e1a10d074f3a452f3620843062527b94fe508ba88e76fbe203accfadaa61c088884b0071a924aa26d2e9f49965170836f02b228b3cd2f57530077749bd9e8e5a7599c11d8638cc2a8dd9cbfe1ac81f0336c5a6baaaf47529017cf74c39e8b333940a205a8d203f639fe4276f54633ca2ef282d40e42dd4d2d7818c0aef526b0737bf886bc87b16bd725f83ce6e3023404a0ced98c788bf2e22bb11ad16af244cd7038272dc1100b96dca0012893fcdbf18a232b312404404ba1fea6ed6a91dbf88b51650c2133a0618f69bc1cd75530fc6e284252fead21cac4353524a3def11a0126942d9db2cf76da0f785d0fc501a9ac598633f8869e18c7f09143e1bb3a5091a62a66122e584c6623abc1a519694c9551ce49fe3025cb40cf2ac8ae66b83a483d71f1fc502807115f7f2070c51486592a2fe246341b58253cb697c3310171cef4db98feac50aa971915d202e55fcb6c59b2417145fd72d0d44bec07a3df3f3c54e339ffd4129e2a7b110dbc9700faabbc5786864ab0794e40bbc184b71ce722b221204ba433dfe923cb2f0c387047a663c309bfa7a5c390c0fc6fd87f07123a1225d1afb203df9db6c33acbdee92c2e28f2c07cf21e8b1d9d48b18984c5405c038a9a92790de1a627d59f132c3cf7614b396756ee93d690ad1396a7856496c928b42d4ea350c554c297254a3d0b6cd48db2f29bcaf76339aa5eaca3f874b25a0d1c9d3f65c98331cc95e6fe1c1228d8dce178d3f0535861163d5df049a586a3636f2815dfcca26e338457a6b89a3306ef37d626545d4bafef143c89e5964bc01b84f100be8c0b745b7f4773d79ef8232d5a2f36b4b596f4c401dfe4a5dfec53b116042019bba2792dbc3d5962420a2d307676e4e34266faa568b0906b495d97e14f8178e8663f4e1d492b00635a9c5f0e2002a24938129768800f17e2c6112e482a845299e669f894862e2c16ddf91f8987a2b659ac2d9c7312a4f324a1061a5c11b72848b063d6a7599de478be9f2bb10753dd983b5e726c10b524f685315af8b20bacbee02075d10398d81ab60b02ae52ef11cb2759ce14b075dd0d22d32120c4a66487533cae9599b96f4c63e07345421770372bcf782e8aa271b8d67f0f9582c77465ceea09cd3724656f483d27056ceb94647a37fa56c1399be81472ec719af40108ca55cc3ca083021d802ce38af87964c1a00108f66f568acb715cb7c3a0827abcab33747b2ac3a1bb4dff1f0109893c03a1a0128e4f4f55be04bf537dbba8ea40291a6bc85bd27feac3e6bd24159a57e3538af88ce8578a6bea5e492f575dae917069c0c7e6be4d891b584e729b65fa41432b3c8374f3ff80d991fe620488650a81a4cf8968d767f4259c6c250c2934a1f9877bbf5a5ef96ef5136f19c8515b5dacaad470fd200814b861645fc2d0f051387c0e283f89ecb773b7d2bb1c3a9c909699c5151dd74811681b1fc1b71e89838ea7bc4c47ca0a05aef871c6ccd62a18f5902043df053ba8a2c1eba645949a5d6fac726c311844a29e8aa16bf32f10bab9f22a514b4ac0073bea48066c0df0c800c656ccb89b6f09ec5f0284a29602a13032d2f32ed10295bb62e0a339a756626bb160ddd94aecda4c35e3332bef594851d337d74761e78682df1eef44735c138ed11f4efd7a842800f3e245b7f3fcdfd3a5be3fa98c3d8c3a48db09648696e66752c12d03afb755bf0271d198b85fec584b3344f90a3834399a03bbbe300527a81a8ed354f2ad5b878440cc65fe533987086a0992ecc43ef072d5e37a621a58f3c5cf22688f21838ebe9df4237ead8e8455c89f68b30666681320711a8fd6e01f46b65c5522b90d2da878f5811d53325f5e2602c8545037f1081d8822cfc285f53ebbea0d5389953a3cf032e0f5762e3f2255378ba91a46e57a3d997e3311131eaef6da6f1cbad89c46643982af4b3edfbb75561172c945c625d8d8d06f24d4ae829aeec581e234a6c79017b380e3ff0c147ee4ad3c57a3f8c123e3c0d5f40301d9784264c6a2051b63b8cf0580c7ead64571009072344601c882d472018d3c15624e90c2a33865bc686d81112416430088ac231106e46f40b74420e746f85b8010ed6f48bcbb02d558c1ca8fdbbc3782c3421131dbf32670c877df5291998f667c9d69c215d49d110f53c58787e9ad313cbf1e24d23e42a4252a349e220205fc3c611d6c60c0b595d130019cb60d8e7f748f3110a1286783454a2d3aff6f3bc4f0ba3d817c7f9f810fe382c02e49af3efd7987c84c2e6d42b42e011eef15018e986fb36ad8d9fd281917ff9993f6f5fc228ec348ff18b9d4c54c5598e8783a95836a3dce7c152554292e62541cad57e1f8394a50936248b6fd8d0e59c1973cf9a8057c13126e29aec06bbcd819d614ce742c984d8230587aa16f22369ab1faff3d52a219dbcd3eac389367d41dbe5d0583f0394ef73337c56d3140cf79c71e7a13d9e069dfae1345c81c22f871ab40cdb5ff2d46908cb5d5f9ca1877c2ad801e3682aa68018ea57a72190ae35da6179d64fbb526c09b859c0d1fb1e9bfaa2b2941c7fb4e60278f05f8a6435e53db4a4a85978038757139624fc876a43713c22a517bb98c47030b78114e9780de2f1c0996319af006721c82180e5023c87ef1131a3dd14437e480ec0e781d6249a48d018af18320733c78ae99b95e4a9dfe02e263afc00bbcbd6ddc5392929dd7479c95d8c76c9d151e19828c1721f006d49d0f1677feae83847b818893143765953bd435cc7d140b606e31307176b263aa87a6ebc21533aab55f91677f9247bc57accd814bb5bfdf6f321399e18d2ab59403407d4a0ebbd50656e6e7ebeeb710312fad348af81c90f4cf52bde3ed8bc6ad10dadd1a355f2b3e806bbe8854ddd68db717370c9eaf06a53167c7765a7f21cb1db8132f802ae67776dbe16078feb52b31280421b50629827dd86070f2fd1684fe9de9820bd63791c4cbc84a445c901a94796834d5a0457cc5099d867537e63827515b4da364f2ce45c0460a726950c46cb35d194777c66d0ca1cee2add0017fe76058c1995af5fbbe6d2c3fc985135ef57d725e0f150320bcd978c927ca6caca601918630293620d9daf797eb15f08c04a0226ad054cde6a664e41425892fc569e5919888937e8c2f4c5b849a60879e734447c194a596b4ccdbaa1d40cd6adf559c22de103299cf63a2ca4d9a112404c4efc6df4347709e398cdd550b1ee49e01ebe2209013e2d7d1e78ddc671bb4f96d46de76dfc55d5b366b0ccd7174848a6ee913d3c7ff62457d33df68c142986538a7d8c552c4d5e160e0888210ce97c71101ded37a90f6da492e75d3a5271bdbbc76a3e5c505f6e9d49228f09219eaba97e894f4aae1904096dd2c65cbaf302db44eb68304187a156c6c544876fd4161677e43a30fce6fb11540f4e4eb2d1cd5228c76c36e49fd7e416c6baf184ba6daedf6e5c0600b17b2138712971127449b87a618db0e086de67e97cd6acc8b3ec4fc55c713e4b82dbfe745228b169b6713deefc045482e44325cf27a026571917b14a141e0c5a9f1df00b66918605843b3a86bbe77db1b4290ddb412f82e23f223d8fa5da6e5baa4b2f97f1e690ac5da04d0ef98a02a9aa2c2dbd7851b7e870a22b19648bd7d46c87e78d5bead3e50a2be71c67d89310632bae41cf0ab540f29d022c1bf20d77d480f2de97655f19d92ca7a3928a8ffe15a6d5a060a795600ce37161446745ef2a6e21389e7335eef1d247c315a07fc729a826a90df9687f60b392232c44f67f9393d80cdb35299e4416f3495f9b0fc248cd8b50f7913d171d892f4ff2217759d0c062dd914f7b800d149802ea2152695b601815a70dd9dafae9fb13007f30fc03a0a81b675d82aab9be09a066636a2053b3e1fa4ee24d0fcdd8d4b82397679edceeeccf7c6ed8f8f16245a830239df15671d8ca345aa428312ac2cc2028cd3a6a9b58a395dd9b48ca4c2903ae067c062a06d961803f3b0d60bcf3702c1f293853bf28e0735f21019fbb0b08f8ec3ebcf8eca71dc70232c2997ac6c5e73e02cbe756420d9fbb092b9f9b888d63b1dfdf3370a666993ef710a5cfbd031a3e77112dfa5bc6b1646070a6e639c0e72e81013e371005f8dc2c50f9dc31b8fff53c263893cb388abbfc9ee09e14dcbb029ee15f8e63a9a4cf0fc7bd23b867847b40c0fdaf07ce4f3e3f957b43b83703f75e80fbdf0a1c10c782722c13009f1f0ff74ae01c189cd302eedf8033c194a3788acf6ec7b92738c704e79280fb5b9c09d6f0e058aeef97e158b037f9ec6c1040430ac9e73f11c226563813dcf913c7029fce38caf78a9b668da3f8cb096c595e096c115881c09655e4e0265963cbf2011b8d0d07375333b62c1db0e5dbb2e5d14c617f1927959b64eb862d4b1bb67c63a8fc1ba0f2970cd8b2bc0bd8f2c5fe305ece8b9ba48c02b62c13b0e58b8097175b5681311e175b962c5bbe35ccf8afccb0dc84b14c5b96a52d5f1a582d78dc84cd388aff01b62c0db0e55b80e6c166b0bf4af360c75e5264b017ec3fc39655f8e778cbfd09b06539802d5f942d8f72b03f692505b0657903b0e5bb62cb23ff932dabb84e5107005b5631bada96ef75c2fe9f922ab62caf0c5bbe316c3ad83f058c34d164cb2a46f7c44683fd479bbc25b67c4bb63c22d9b20a5c45354ec861ada00c0901fce892906cd97bf06b2cd21ad73b533e50cd4c999c506b06314ff38547247aff591da193c3721448cac820481aa99233b708a871b53cd20512254ff26595b1acb0a393f3f96cb97d648d2b9d21420d8daa5f2af682c9004b6128ec64ed6b4c73b8d0dad1a19997ea42c2b5ba6a2e1a8aa5d6b85ed7e9b2c12573a52e540bd339c2d3da91b231a459026b5543c24fa3332ec5e91074a503213345d01d60ff1c5be05c4ad39917d2e6c6e1ac982c498a131a9c8b59f364f71138d319ecffc36d3861bf497180fd230b6ed7d019af7138353734d89d0d7e6e1202f6168ea569c0ef11308d38c2965be097e1d00386ff4ea0e042787d6a041e06688458811030303030303030303030303042082184103d7af4e8d1a3478f1e3d7af4e8218410420811240c3ff0c5b6bb5b46155cd72408a838742cbd8170ebe05477921b85e1d7006068ca294ef0c963015b08098a44dbddffdc49fc6e77a4cba15c0fffe4c10b7482a57cefd5e0bebfc11dbaf8c3cd0f6713c700c0be651e1c8db7f5b5dde801dbf060f64e1188eb1f849d7537ec081b75794185e3e588ac8c865c9cec6e24c94d313a899f5bb88cb3f97c7ed198f45f51d6657ee4305e989cb4daec03ba21510dae2425254c8c4ea0304911830c2a5edb2cfdc7f5c47e86b4acc01f9c26c5dfb218ad596ada5a5157d84b735c5152de0b75ae35d2a6fff85500f6d2200669466c4b46a26cab46e766daa2ad2edd8f4f8db4497bdb722c7e5f8db5d69a786badb52ade5a6b6dc95b6bad45f1d65a6be95b6bad1dbdb5d65a6badb525de5a6bed3f6badb5ff72acb5d65a6bdf5b126fadb5d65a6b45a1b72fa34b38aeb7d65a6badad6f2dc83e4916c3da13294cc81083898912940a1962486172c28425812a3961a2c48a50284e9828b12114355162e9458d4c94580a4295583a3fa8122596ce0c052d9dd0a2482c9db0a21e9df05114093ae19b283aa12834e9843572a7459ac3a1593fd89026c5d9a0eca259fddc1d5daa1f3fdf13b6b3e98daf69291c6bea43993639cb5970c65950e52c1a92f7f79e3639e4e12972da0451281dd40eaa85d32511903641952a88ca4675a3ea9289f777549b208be52996cbb07874e91669136cb58cf4f88e9d2e95acda145128162a0765d3a5f9feeda34d51a5ea1faa06a20a82fd5ba65fda1459ac3eb11ac5ea544f97de9036c5566c1189ad224642efff68da7449bf64ccf581553fae9727d3c57294f8232277480bc774b578e8128ecfdf784770f6fe321cb5825219a5b8249835612847893840ef2a1c37de11fc01c862780df6969becf516ca4db4d542b5502d148e1452482164b98952482185b0e5262ae545b969b65aa816aa8552b969b2582a968aa5c271ce38e38cb1e5a629e5bda8d842b949b65aa816aa8552b949b2582a968a15ff62b949aa1c25fec58a7fb5e24b796f0bc7c7506ec25a8e125fca7b5bf149b467a37213c67214d668742fc61a5d19df41296ccb04c5896d2bb1d91689c42b3ea256099296a875929960952061895800b05725a2973add6a092511d14b9da2707c8dce566bc6ff498225baacc962e1f82ae49baa3ba7caa7ea4d158e2f03169aa83b27ca276aa270fc18aeabd56ab570fc1451b29e0e8bb5c53709e2429cbd46aaa654b9545d52f5c94c8cf4e06844a2a644b9445d12854114d767a7f1477338d31a63ad560b6475022a3471e6e62773e1c87171e8affdfa661ccbc3d86737ab41bf335036837ebf8bbe31d0bda3d18b341d7680824bc1fe6aef098e054642d3711aa7711a1a1afa71cb01b4d9aca5371d0fdba75fadb6830e91c7757129187e3a8ea53ea6356e2df70963ff9ee0581cc67a4763ff8874093e5623775e6794735958af1a05fb6c25c94d313af911cfcd4e27f3204d7a9942e33436b8d7bf2e82333dfad8ff89139b890e88e9df0061daa44c3f94d5989bd5f170dd72ffcd5aea77dd6cd86d07bae9d04e27071d76a859b17274a4d63eb4f000b013e2830df6efac9f6a53cbf170d65a465dacf6d19c4b995fb54cc30b995d17e89663c5e5bdc0ec35187b0f12b3196fe35afa5876436f36e6f6669a847d8e87ebf67c6c232fdcfc649e4c97e863ff7cbc992e3dd557aad1fc8ac01810972db7c0fd2fa4cdbd19e1fc53f55b4982a5c04e66c0bed260a1e6341a7c12dad3691ab0975a8e8767bc0ea9e2a6be6914ec3123394530a642643504638d83b1c7faa96c12f63860df60d8cc5ade769b843d66d2a2e18861d86603cad806c10c0caa1013038fc4c0bffe5deffbfdf3d183fde30f37cf80a1c4598c2adf61eda349103f178ac1e531823b6ecf118e250651702e3ae6b1802fdde43352de51084200b7966912f51dc772b91468bcbfbeda2c6b797ff9e5ef7dfdcbdd73c4eeae6b834d82aee350e0efcc503e7182826ba3bf659a047beb19075b373b6bc6595dc269d3a74b19d6e01955ab9ca68b74893efc36e258ea7bf8b9b590bdb54fb59c6d996af9bda7643ca67da649f03f9aff6894144d631a1a29eff591ff93fea4bdc78817a1c2a5a93aef08b6c1e761b4ebb8e9b3e9f8bdee4f72b0c8cdae836a12fc1c0f3b0f67653f393c39111ebd23ef1dedbc60f8a39e9bfde427f7f01dd525ffa669211876901def9d2682d33736455a56401c10bfec86ee2036f4100c9bc6a5c0c7c2b5e19fe3cdc860f8bde32667390aec992efd70208e25f6c31ed4a7fd75cb2fabf1be63eef754d6d2ffde635ce60537b70ac3cfd9531ee3325d72978213e9207dfd9f8c525c1227d290c79f8c526487b67db40c8ebfc2f05bd5a50c8174093e9826a134d771222e053e9e2238e6b9f0283816f0e1f348c11da81e0ca11bc1101ee152e0e78e01865f4f94e0e6a6d1b91e7ed374118ee5ca6af43f22bcbcd6f1b06f0fa64950e6f968d2c438e04b3509de2881733c1486d190479766681a47810f49ffa3d1bdf09ba64b411c8bf3076b66bbbf5ff65e9a944997024ffd2a34fabdfd5dbb34ca852b6ddcb0716d1045fbc35037183dcfe0828026b8f9e22b5e287fe4581a5ff17297db341caabfd3e266437c7fb7a1072ca34b0efbeb2fa9e1cb41084fba3378e23613f8d0e5b488de2fba787de0c368e79c730ebe4bb984f8a0bafeaf97d1a5eb7118b99410bb275017be638e45022e74cb1b22b15a6ef11c7c41b6b08a105657b51b1a5389c9c0eeaf16dd2ad89dc6c30a6e0eac60b7d9783f576a566f933e9f49f8ad73ce39127c2729ef1d8dfe4f27ef142bf86ddf241552ccb8702be058dec7b7806371383f1b1c3f6ab905bebe4278e167d3a548812645d2ff68b4cd1cdcecfefdbb806379aefecbacc831e0f74a545e6681dfcab1889f53f03b65f8bd87d26e9987153c0ac275f5441037bf158e3dbc95f66e9a1457efa10def7bd525f7f1df8d9430c3a1079c42885bdfd587ab8623922ae026d0df98e31cca75d1805bcb2ea7456bc18db81137e2529e068dc0ade513b899bccfd0065fef30cc9e8d4bb9be566b5d0a8c28b8aeebba60bfcbaf0b7e841146086d684c37e852f0d420961ac4a3ef92952112212f4070bea7e83413fff7d224f7b74bfdfe58b4454b3802c3e0030bbb9a232b0c5f7c5ca3f66214f2e2033b212f31b8b3e71cc54f841f0afc541a3f15374d87021fc28ff07d832f5d0afcf872e1bb16f0552a7001c7e23074d0615c904aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542ae5022705774532370104f9d79882eb6a8ec06057738407ae1952f302bb1ae962666626c5b3fad5e05c489e1efc7ed6bc482d4420e611e269aeb81063f0fb1853465c0a0bfe802722351ec383a36a1e3b364fa6c7e5b4a03533dc9314753eb8ba812c68047eefb0093d803944885a11fcfeca70e801c7873bd0b1dba00d848133ad4ce033a481043e432222f019f600029f6110dc0f631c8bc894438dcfd087077c8627a0f119ae0007124a70a6779af1d99be080cf1e8596cf5e05199fdd088e63b93b70a6a7bae1b31761c3671712e3b317a1019f5de55842dfef4038d3cb61c06767c1023e94524a29b51f4b29fdd8a79f3f4f2bfd58fa35dbb2fc2ae1572d52ed6177779f4edf7cd3ad0ea5f2fbff125d57f429e51c624e39e99c33fb39a7fc7c6c566badb5d65a6badd7adeabfe852f6d505ae5f83abf66badb5d65a6badf7d650ada1faf97ead3734e99c93caaf9fcff7a66306fbb496eef03d871ee1d31ad3e8506e4fc6e38337a034b373ce39c49c736694da5b5f5e593ff2ab7c9a633ae59c739acc479dc68348798339279593cea7534ebf445152297b659f0b770129af2ae5f522cd2da01dcbe95ee32b2f60889c84937889977013efee6fa24409090991bbfbacd3a9fb67be7fcedea5679f39ad3c6159a73fed45ddddabbbbbfb8abbbbbbbb3badd43feef5baaeebbaaeebbaaeebbaaeeb92d252494b32b25a2ba5959fec6369e4905be449d666b54aaa33e70d289d52564929dd6c5429a59453cafaf948abd1f991f323b33a29919d15d90cf9fdb1ce39e79c954a0b6964a5524a29a7a4f15d832fd28880525e5e3b0711d59db8f7a4dce4f62084230c6345718bb8107094e7423e16b05503210b36c92140011861e717e3161f5cc55abfe1778c20ecabebeea62b163b17f31f7e1f7fb8f9e1f734a3d1362b4dea7e3cb0f8f2e27e5f4a4a308c41718bb87104f3b18f2fcfc57c2cde602c1e4106631f65a28f4bbbe102bf7f66336afd6c4695f223099c49ca14602cf67031606c7b8131af5512fb86691216a3e329157764f1e53ac1f9314b8cc91d586e19ba63d12f218c9f1f865a94946e10ca8669d48f9b3d85b1cff1056328199f01c6de633cd5a538b31af1db531ee332329b11633cc598c257cb66410663234759515121a9d48fca3bf7d8b9e877b8b6eb6959817340785d15f49fcf67f5e77d11e845d94ff91784f05b7eed77fa517e8cfff9f8f4e9fbf531783ec5b1c1f48508fd1ec291009072af72af7a95a9808264a741f9e8949d66c5897c3efb8ded1569db3edb68bbdbd36d457dfab99f6e4fe6b39d642d024051c172af7a7569e00ae94725dec4676962935b2695d85ca3d42d378e2c19724936fa59ce8f0e88e7df00e1f9fda9b57e566b1dd555fd95aeb5d65a9da6d6876bad9f0f4046e35341b566a09c7dfdba01206bc91ece6fe6b36d598dfa93fe7c8d54a7f6b0f4202e057b121a8d8d07c1a560ef40702c9aa4f21e7b45bc6d557576a2a6d3a54864e7b31950ca7b7dbc995853ea0c366a2a9f19c160ec637cf80952803de481b1afda09fbaae22f3ca355af1c67397ad7f207187b29e53fec257d1d10677f0384b3efaf1fcd613be77cd014cde95626d72fba647fbac0f36b7073ce39e79cb3f19c53b4653444f3ce09ead57dd0cfcfa29f2ab216d1a6e3e1bbe587412bec9de6ddc6f4e7497777777777770c598cceb41ad9d3af33481537799046c1de8938cb71fcc66d2aeeee7e6f9721a3511b76bf68233c19222cac6b7d0477e0615857717b3215c6f0669e8fcc698c5004fbf9de7157b17d13a3573578231e17eee8c1deab50dff4542ebb1530d618f32218c61a32c2c13ebb0de8b197d9d3cf0f08c69c2845d632371d0f83b6ec5d66830d0358ea88f48ea76300eb9a53954a06294da4aa8575cdb18aa608acea926f29540e84c6249b0121dc566e7a3a4fa73acdd3793a4ee3586017e1434a56ba6b5ad1f1a62e9f94fd3a20967f0384e5d3975d92f54f6435e4d7ada58ecb3bfa7eaac10304c1d81f206b59811f90ea341cd0e56812e630e736179782053980ad1ad472b856075c0af6371c0bec8dac4a8a55af7a35c2d8087e3691b5f8b6830eae4bd1dddddffad36912f64ef31758712c9ff7afc149efb75918737777ebd45face6e6faa6591f5b226bb9361d0fcf4d6ed3bf35c72c78511a638c31c618638c31c618630e5de241e6022b8ea5fefb175d824fe2b30ac96752c9e72ff17964e2f3358dfe7d0dce857381df8f34a76914ec4d68ae514a68ae4b34d7249a6b944681efc513198d18657c41d3a5f8f2f3e7254dcd56226bf96c397bf9f14bb21af17a321a0fbd6a12f6243413fc028880b957a32edcfe1bfa6dc82d6ed615c1d8e727c3c30936b9f1f0e775407cfd0d10bedebfaed46de5e9ab506da50697ae10f921231c8cfe8b36f56aa54bf2492a4f1abd4987624f29a694d62fc968d01754053f198ea51d4b378f76278ea5b1bf288be1977f0e74d361d3f1f067cbfd3b3409f3d7d9c9216bb9b292557193d3380af6a4ff3af8f14e1d1dbb8f07d59de4ebe50713916fc24809f708d8b9112f10e04cd751b0cb5a1c671160d73fa0b5428b1dec9ccc9c29ae5e48708359602764043db8524be98ed7e3d212f58ef6e1f5c4d56ab57a3c24484a1a2612711fceae06c6b579419eea87ed1d29ec5a5d9252cb310971c5c3f3483c3c9f5f10fc80705fbec4318438e312c48c8b2b2f61e25d9746ef3c12c1f17fe5fa3b49c5a56cb1c20021846f872b61f7f2ec10756e8e0c6782a1832b851e7e035c893e2439535c3dcf48baece09fb892e8e14357ca1e4208a58417842e2bb7723c979470e5f19dc7e557a8e5eb6ae2eae1c7e3a6186d1e8b9978a5961fcf9199d19647a32ddfeb64fc68f35cc49ec722be0d8e0f572b9e1589edc2707194f871f4d936f8210d7baa853eae62cf73016d1e8bf8a3d883e3ca797ce7b45aad4ea753a516a76f643ce531317baa897ce7ba09a660b8099edc0467767c47faccbb0a612824c2b22c240a61374d8a8f27c795ec17c7027a1f707c1c0ef3810eb8d2f5f15d9e0b87792ce2a38238bd1ffce5c8dbe1484e0747821fd21ae048f07de5a61d1c0a74930c8702ffbdf0ac7446bec3da718e44379176e2482737911c0afc281d8acd69e5a4e2e08c73970d8deb0a7d7e186a212ccba0086226a1ab99843ee432214f39ec318e25f4f11d06ce534704d1f11ee43811717e687e28f4220bd26e7018f4d545a43d9ed7f3c0d031cd820622a74bb0127d7e3c3d8e2566345e74652da19fdbdc5c9a145f5623f4f7abe86e2ea0d08b6952fc3c1ff4bae0586ccc0f7dee17d1837e6ab746e845a11789441f7a187da748eb5593425aee246c7d73c287ab03e21baf85a7e861f48912dc164fcf8bbbe1829d4be9acc6bbf1b028a4e570291e702811e60820744a80231870fc1c5938e6df70c1f733082472c9e1581e0e7eec841c01045717fac1660876b8074c8220f8043b212390c1a2c742a2237ce01076428e40e12a4d66883e943d9d966a5f69f62e5d027d7c14f46bb52fbb41d4826533b2d00976590be8459b494b63d1ebc8400f38f422180d722d1cf10487be529b851eb4b99ed0e692831b7a79abb520ede190c7841e861efe95cd083d0c3d0c3dbc01c2b0033de05e893ec78b01730f38c7875be7c0ada794cdf30226e28c6e6e6c419c41c731c125c10921a93cc9a55162af7ad52557d373d38f475e2eda425b16800d15642311d7e1dcab5e451a40179b134008f500c72702c5234ad783637e3e700c3d1e1cd0c5b1cc8b7d5cc5555cc5555ccda97da6964dcd4ead4e8d4e6d4e4d4e0d9bda35b538270ff3619d67c22809b708421ce656304822b3a196d89292ea220e8e3f6484736f3cf562053b79ef68f44f6a1e37037fc495284f9ce30a6ef1a649319e48c1cd7006fee852f6fbf1e18c8c3eeec90a06ae9a47973e1fb38f760a24c071e7b1889f27166df98e4623288249d80919810daeae9d7bf083e2169172535c394a7c49ba2aa3959ab85ab50d6e23700cdd3816876f3894f8f123cf8359dd908c14213204a786b48a71456594b5acc0d9af1ad0374d1269399a143df5a357f17148376f330a02c49148ffb1572e2e257e8d39b88d839be30ac7f82f7e5cc59bc8722cf3634c028e479c299e1ce50b8ee7b980a7c7227e9471412a081c7f108944d8ab348906f6224c54452012242422908804e861b409fccb047ee8455f2b5ce188598d152e8633999444f0e3490c283e979cf81c2e25be48736992c9e60187121f45c9e94486b36bbdc413176012753ae15a1ddc874538ee93f8ea1ac94fcdf540ad45b2b934296212da0d172cfa99830bff7a971ca2eb619803e21b431f7a99cd801f0a855ef4aee361d1966d7c669ce02c9e4ef0e3e9144f109ea07c13d90df3ef75dd75d75d1cafcf02c0f5a1167a11111cdaf20986105f0d841f8c7129f241f86a1f9e0fbe5a8693e1ab5995c557abcea3e2abd11d8aaf366d26be9a6c1989af86f560f86a57ce85af1681447c35f8502e45beab390f2e453e8c96e1f86a8d41db894b910f9fc3a00d360984ab9de722732cfae388742308f767584d6cbfcb3f5904f87af11e48ba033f806041edeeeed7dace63390aa4d1910af74a8912328217ec6a7a782e76353d3b988718369051e36187b80216cba5bc978577702ccf3609738d82c1f0b1ab1f4ea38cde7df24517dcc78347c83649033b5c0143d8dae3d1a51e4ebe3d160ca56852fc1d70b842a326c117dfbf16bdc21043e0e0124d8f4fd287eb536bfff3554a19fa7bbd5e72cecf3e4f5d4a29a55f220863f5f9e42774879873ce39335ba90c65d7d60f952ba4b4f4124118abcf278798524482a4a4842c314b484888e46749ad0e88ebdf00e1fa9652fa1fea745cce0aa59406991ba8d4eb59ca821e2aa29104001316000038100c068442b13ccde254911f14000d748c46725c409405e320c9611c478c51001802000000000000024056034bd03ea6b9bd269469fb26ae6cdd77df591d10eeef4f8e4343256bcfe26e0e26cc60fc8edd0d339e811c36ce91d344a066afb58eac54e877b770d860c40c467171c1d128396f191057db038ca661a133fcf06a6035a4f74b4cd42779870b4ebf66fea96e46a185451cd2923f27ee660214e1c6f94e4d91c48c91424aa02ca73243439ee8a510304b028b4201389ac03214800c01cb6a7b9e00e486aebc36a0acb61ae2f36f8017005d4d1e65399ccab4f0fa4e879999c8203f93e9a51f124079573b1aa87821828b69b7c2baf8e895e6dbc9848f3726d5db5bddae3baef3d95c2879186aff00801156374556287f3e4fe03c8d31aaddeafe6deb47176c3cec31aa995e217c0a299a793897066cbd1fa70becd6ea095921926d86f49ab987a70e68ae574791efd78e3460d0e542987f2973362e49e35b5f97928745d7580a01efe20295b2362edfc219b24c60081f8dcecc1ddc129c9718ce7a68cbe99e57e116a910a8bbf4316e11d2ef595937eac02062cedb2bab88590d789bb5e496df78476c9bb0988d2391696bb70ade314f4a2b09a56756fb95909b7a3804c7aeb2e4130ff009b1b5a92b51868de47936e45662b6197d01657347c9db98375f2ba6a240e75b584c6256684b174b4c309866c18c495e74d4c14e1b31a14c0a175c1b5d5e61ea99005678c6427703a4cd11114bf91ee8b10372117bca8cf4b3b1bae4d207691639618e90e963a29f1b6560499fcc55f1e65ea9aab2dd448c0a2238698192b938eade693134c62a5fbb92f45c6db86afcd36b8cabfc060c59e7d4147272283afba70d7654121696cbe63711353907ca0103309eeaa6ce42c99e01df90d2e4625b1398bb8de2baf2513099654acbacc6ce0cbf50338a9acb7c28d1dbe65b98f16ade92f9814e78efc0f30ba2c79aacc8854570e5afb8c53d0f2faa814930cd31ad9ecd86a6cd8214869f23f5d951b3bbfda4f764f81180f4722a0e31bcfe3e88b9674a6a5b2e3dfd8f027beb0d2aede18a15522fe112cac4013ce6124a6e9071ec1671a4a127ad5c69d8c14c1efe249024f1b7f5907757669c31936e4f0d30e06bedc78c8e058e381b253fe01ed45d29af149f43f26801543cc605e3c77f528e4d7c7c8ed3518c82ff8d6c63f849617d5c0c8d11ebe93630d15be4cf6bb3797737c2c459f85e01311daa2326ff3a3c6e1e1755b8a65796058aa5d66e2673c95328bd9af7f07ad58260584c782795da7cf3345f277367e71f4c5a8f80d63cf267075569e9904e66449ac2b19ff159b9a5477132a9f50568ebf8638085df93f29e624a597d77bfa9fb6811792d6b07dee01792496777f9148023ea7ab1202eb8780448e8adf64ed6d9e4698a2c86f95201f93fce30d6492841ebe9f69ad25092a3516b85ed417b39d01cc55418aa11c5a5ec35bb9a2cae8377b8d46c578f975cf6986c735b8b1c0ad16886f02ea908bd0a57b3783d7b782c0ba46ef387c99634c31275de9cbfd2f131704a5fbb01076eb08f14d97bca6f8dfdd83ff7ef8ae67e3c97649709235c4a933e83908501d1f3873a0f6d2fd1bafec13251231f1a81d188e7a2a87ec6c2595bba24e7d852a7ef2a635d8944710103543c755ffdb0a281d93cf814d0c48367c683bb1f9e5097338d3cb0002edde546eab5e49f85bac0ce8d946bfd5a1454bf1da10a231755996e3f0d3de8f51c89bd71cbc8ab07f2082c3dfbb2fda692761cf1d6b7334f1caa42a48f2a54299aaa45c524a446814c9685dafe6a81ef974593c91f593070135d0710b588fbdf90c9edbe8813ce6ab296a022242379acbf5c4f083a919b1c3e1ba7b914ec1ddf40ccde4cb070367e3c438847e18b3e1bb5910afc82c797ec20b3eea2f8351b2c2cd7fe359b7f31f572124cacad007a0f3995854f53da71689f110edf7a859ee2fd001d1d8bbc644dedd44b10a6ab5e64d569ad44717075d07603f273ce21c37e573afb5a5a051dc6c56c2e10b470335a3513159d1318248f46a0c4fec0503ebe2b58f1690d9f6ca605a12c2257c7e26658f95a7045806832a355a7e724d18d0a2f6aedf2e1f23dd605f20300864b4be4a6751f48cefa6ec22c412ad935f8aa786fe9da03e5b0dab19d977bd960b60f617de1cd3e70c74097b81a24d1b84630049e14b814f82d43d12d09bac4714727c17e3310e0c42894a1365bc02d3110a857c48ababc56851d791caf22a08f8d7485b33360aa4dc06c552568036e023bcc11eaa0f09a23a1162e35cae8f2ef8d1ff749743bfc8e40701e2c865c347196421e7e031788e0c3e71513377c9e10c570233902b6edabc1b4fae533432ba9abfdd3d65257bdf26b01846864d90d5a8a73e10bb0e1f67183ae8ae2811cee54a7ab8fec8234066f869fe96dfc903297cf659e959f8b5ad0225cb67af0ff7684b851f7f933354f5ff42e674ce5fe10cc780e28ed3ecf7a4c962ccbbaa88bfec259f9c17c087445b602aac67971552edea8493e315775907d24bac5c819010f4f09a3455cc3543c4812ea2cdc4bffd6300b62091c4085acbeef8f3d0c61714e13cb2381efac33b69684a286686887c11f855a87c1b21f32ba19af67616cfbe1a7920cb3c5833b777d387571ecedcf079a40575eec53374c5cac730a21553a1541c7621a6c921681fee4eb5063aacd0cb0341765e44228cf48092bf555ac3c92205a5637fc08e40b7c25e0d7eb49a32bf8271b8a300216219bd169b186127752cd8d361640d142e2032abf14630e9ac20ab41f3c000018d4b8214c7cd5a4e1fc73829e9e10fd9e8b2e1dbb4cd607de02adde650c676de66f05b3ce092c487725906a6322256655c56475426e8cc5d3fbf9b863b055017b9c0732f12372080e853933ebb358018983090c2550e2912309ea4d01a2e7c8eb97c5f52495560b4dfc891299b46074d8297c8567bb9257b950245d21991766b8eeb4023ce9fa5907b8346af5318e5b96452bd52a7e0285161c99a67ff49c237e5ea81a686269c9c55da8daf28fb894283b0ea85569415fce2169706543b45d23f0030bf8bcda026bc0065da5b29398a91e0597df827e345d0e0037f75ce02ea3f4ccdd5704d084e362ce6706d62d6f2467502909fa522479acfca2cd007b55ed6bbf63d8933284c8c940c54b86bff86058e61b0d2a1f4998f36c3c86e11d19c4033819eb2cb832cc60e865806d7f6604d786cd88c8269d019a4d3f23643b840610fb8f8686dbf6a1347e057e1a4690415d10cdabd1dd1a9bc5e9908b929cd6fe5884814911d323b29aa1b9aee09679c32a02f6b93dfd2fdcc3d7155a28bca2dc6b23db7fc0c4a7d7d121f2dd0619d6e53dad731782711e6641dcbdc5979eb2e388941cec4b719fd2735006832b30e2e5e9a2a27ff66dc68a23e5dc713b2846aa5c4cdf454a39ae0c5192e90b76e2b0789cb9f1098ff3dc9493ca1840c347363ae0d077370b1d6864bbd18f552a3536327cda2d4a870e270280c9250a8831751267813b9b1cedf0c859c8c3a1b2107adde8a76c7060956295c07cf658626534c7da45d9cddaa73d2a1b1214d97405f1c0458f842ec88a734ae718025a0760ebc8a71d4adf540411e1c1dfffdb06e982c455bc9551235b81e0c33173a025689cb922fa961024a4415b760dd007001ca8db824531bbf48f95fc8e1cc208d994565299340a3155f52138a8964afd417684e7787ca7cd71e6de5902fff8612c81d5889351afe37438baea1526f6a8f4964fa441f1d30f2e89527af9053a5cba0a2eb9300ebaa69e025d9d9f8af31ae9f40aba39a8039dd4a189d98fef01f693b737f6c8a5d413d0216e89cfcbb24d620db1b7edf4d7530afc446a41f3e75177cf3ea7a219290ef477026db9bcbc23a7de24cb972754891ed75012837ea3beae8963c942f26a1063e098d8a024ced964530bb889d334731e261d1f3e316820ed377bb59cbdae281c40a4fb2d60292bce3c44b17ecfe8311a3b8f2ed88c5016754edd3e77ae9fec44741046d6301e8972b0b6e6342c2c6619d1805796f75ae099aa3598dd95a19fe4a52b08063f0bef44ba598bce2db90b7da181cb56b5f595b2d513961030d1c00b9b5cf8adb0e418a9aea648b6d072bf29ab5bbb622afa094bbab213130411adb56c9f6b6282da5efb667a7140bd67fa5ba7111224cce5b2cf576cab06437cfdcc4820db09f36903302e0369986cd9864727563220fde6042a81ee2b483e30467fe8a1426f5a94878b032b88a89e3dd62ba889c8d492c0f11359a10e87d11a098bc0d7f84998ac048229812077974a9c92652c1f2f030f706a06f7e8cce9f97729e72ed5eddb227f3480438dcf40234855754f2e945c34cf0a7be4527475110045fd729def10ec83c4be815d6b22fa5190c44813592990d6e9b073e57c90f21c7cd702dea982de6099f66cfe0660a733d7268ae3990070f7eac5b077a7de4f09d8819a78a11ea5802ed7cc62bcd242adc22d51c83010ca65c2691984e4bd2af8d576baabf28fc277c2597b6b43327bdc612dece5978430d6d581eed5b40555c4ebda8b3f827994ec2a3b79c3136c56e06f7cb26d46bd118c8193e1a0fc21d01a7d1c9a7ab61d4cf51fd1666b8cae788594a0bd26ce3ed0d12d159476433392a72b0bbcf259ca584df03734034baea9b2fa5f775c98e107e3455360c8eb6a9587a962c4f059098dd587169ee532c8ce197d17559916bd24883a271511267db030350201ff4ca04d9461c1170e9032c72d04184d5c2ad350949fc5fa54c85eb0fb2a99890a9407f79a46df8012f66639121947e5addfab4f32a70949127dbf67f590d925d51bf7e122b371e0a0896e215023dc907d3987813983648f8120816deacdbd67da75f7b53213cbda27024178c8e64e5ea71adb29ddc90be2e90d6f704d88082a5f380c0cd0e4e260ca34c7cd2c10662d0daed0e6d9b8ef613e62beecdafa01cfba264d060a67b696e172f61ae970d95c1d26370cacb495ebc9c8ea48c0658ffffd75951c16fc45d6a2e4a326e8922eb9b98bf42e2f1a0c68a80d0be45f101f0162f4d5b8b1d17348be9d5df9a5e149c0f4ce9b15a54958c167061affb011503a94c66446419cd806b839ba813ce01ba06e207db1057b09473f0b3c75d31149a9c684b4740107fc81d4a43cf4d54b3a5253727273400368e7424723a71ae79339dcb45c1bf282ae75e72ccf89b9ebcec5f79350d9c57633490313927adb3b468f752ade7f43f9a673fb36ea357ce6e0ea24b40b67d839b4b2cde955b6e8840eb5f4f104e3eace4ec8700f365438ab5805e896ce447e3ea2b4c47504d38e4b02fb62cf22f33088c9f7767d078d9da55eb77546c6f6c7acb583b4b5b01f2f7036de3fff65887c4b28c85fc6545d40f7801b7144a4596bff1dbdab0bcbafb79d5078b7bb15f6e73a9e1090c9244c603530514da8a7eb48e068ae73850a12f5656fc193711610669595e1edafe4adc782578c13f2b522f0665c309ce048cea7f109798a6e0ceaa409f2a162c530dcd7c7a4bb7e7f9a685251e5b8d32a48f994f23b24962f3ee518e9d361cd8c7575813eb850835ef8fb1160c88275a7094d8ca82320273621ebfeae9e0925dd787f32b53710110f296d3b66768192f9c8c4ea02fcf6ec024260025f4cf16f52f98a6a3d588a6ebebdb90d9cdf4c816b7b5af813d7e2473c7158b48aaeb8f11c3d7788337a00602f0811d50829b0b366ebaebf2e27a1718db5df895575c13a211a56567194729da3e6452c97ba80a7c98be80facc1f96f95d8e80b80b389dd5b31284722166999b08b66620f46e6e4ef5fd7c1440510c07b201bb4c81406e9b6957be0ec6a0e9ece5f47917218ee24a81e7edfccd6149dd81794139a8c8f7cf278fae251106369c187c42c3586f17140ae2cc5d5f19ce8c42212d8b29a6a0fe4f2c203b10e175ca3829aaa5d8ba176a2133832a9281d2fc0287fb06c3c49f3b6665fab933f01bfdf0c69d930d769892bd4d855b377df5d9903dea5a4125db9b225174cfc82a38517e51d92b1442776fa52115990f505664c2977e2d74f8e19c25cf64d48998e4ebc20042e81f0f8881d5a8a52a20b162f48f29fbc4c6c0a4af28a776fa2fa3c7b052217c93f676465030ea7d8d86143369e8a4f39e81a32c64427d69a7b4e40cc4073ee957314050ab415a3cf85417c4ba7d2bba68042f58b2b9a21624f462bd9cb91057ce0ec577bb2b1c45c2596f0c796ba0f269f409cba4e45f6a553ec6885ed3eb92dc97534c4739d774299fc65b0bcbd75fed8e7a06f4c567928e1a0c5cc4e5920b891499a67f1aac9c9014f86d9fe16111b49e826cd86acb6e4d8028a0036f6450cec88dbbc8e853b1f28e38809a23c4ecc9e844ca9996d6d255b0d94355c436e7e6fb43bbe5f1784617b4bb55298e3c36208d5e4b196faa957fcac9a9757cc29eb295caef4574658a9b1102aeb7713ec633dd22c699f2fac3d8532eca527b4aeca22e24b1099c1b0104205bc21774b4122f4a27b41a810066acc61be0ae3c25016410a04286aa527ddb6fb5ec817cfab5343a6dc1463f9b98315ebbb882810a38e9b9a3d7fbd558e8aafe2b6da4551eb45b0d294beda58baf6f1ec41dc03d22af791668a6105472d37164a951898963ff5c638c807705d9b6161428494249cb2f780431da1b71f3ffe62d00f245522b729232666b58850cdee93c00a8324be3ee45b248396bc27ceb0024f330a9742c92542c5de75496d504ff954831cf14fe2c5d2dcad46c3582fb67ad81c27a4688e66e19dbefc62502f995c248bf4c0c4d57efff443e139d4e87c1a5f9972a9a94d11679235a028069ee0e927477ef93420173bc39684f9dfc726edae2d3ac76547f1247efed82263cc2ac2847f9130466de057850f4fee6cbaba161021f97c2f2e76fb2d38387d4f345dd01889481fdfda3990cd27059279d54582f2ee93da25f6e205b4e5ba773ea0e183f3627daabefffcad35ceb0f2562bfeba5213e58f9efe787c4640380d9a24fbd4623509401676bca6538403cd262fcde8ebcb26f771d06bf9ae5256f5697a156256712bf5e910f3506387bdd97a6b3f815315abf0fd01d25a7183d6e011ad1ce45ea956c0ebb3d37e93ac2c6fe1a36c67a0bac4e25920473172b49fb580f4c4f02ddccffe8278280a7139125da84a2298d31a51cd664bb5b9faa730a8b95095b0012aa0322b94e86c82dea43f4c6b5c7a81bf59e1d1a42ce6981f2914ae01e1d108a5d870a1fdc73c5c0f1ec4a4e034a4b84655297839cd8aa8b70b3924e6ab6168ab01bc31a7853cc0a65fa26a89eb4e011886b8556016578597d8aa78a1bd5a8637532c311630981c8a9cf2ad31c71438a0c4237eb2d3cc822a1b51e86fdc53f2bca144d94be2303da2abf19387b850e727031d46f0ac240df3cd64fafd15023a89175b913721c0017184eec07e7b055da3f664d1f3a8f6647fe15e349845c3eb05ce57fece7f52a9c7f859165db76355c1657e3e1a80e745b2c65853accc73af5167f447767dd67feb48ffad87867c1cd959888a929d9250e88991156e1a7c3ed3df990fe1cab1153fc7496d57a2990c1e24c13af25110962cd2aca517425078e918a44a1120a517ea7435a842e5eee84d61e74e12dbece9455dc63605e4bad055274e11ccf5099d86f9fecbcb3c0a0ddcda88d8c13b17a5d8a8200e5b713e98b5f32df4189f59db8638c38fe6f26bc6970be79565c3222858c6c79d2383e0887129c04a191fd7daf8dbf2b4a7b35dacf2a493195f8ed7bc223a20d7a2480d2965f791ec793e33aea12c90fd102c9a5cdcbb8a236de243d460f2d8f5d8df55b86a20c20d9dee622de5b28c4eca1c75a0ca7e4a295ee1ac7ee5fa3921a94f5aa60d5be96ff0fec8b3b5e1a71aff85bde2d0e80ef0f51f8cdd024cf0d557e02bea767145837bc44fbff58a0d95e326c80be262e34fa00d9708e3ee11b33708262164772adf11e6816741f41cf52876f944503748a50274afff3e1819c51b86085899fc87bbdd153dddb90b19527a0f41f7625e92a3a6a19aa6c7bf591f98dfd3d838b1fa44aa4735180940fc294818cf2188f72ed4d982c1baf38c24ff964ca882b68001d3cf1f30a08b4463b4646b0693074b07fed9d4cda0d0db2b765ae40f2dd02d28b8184508df279205bc95570db52370cbc5f88191c425063422e31b95047c0c628dd961a478fd6e8702071a3e482bfe5bd8ba885f470d9384d3da4ad31a7530e727b9fb9a271a03d901ccfb9a4797fefe3a96264e8f168d3443870b66443bb6b20f0382eee26f0f652e90098ee04db74b587934970065b2adf3ef8f95dbcaecda6c5321bc5a3227030481cf3a788f3764aea959feea39b2663a37c15ed9bdee1d8c6c7eb9639e475a4aa4eeba0c173d329e42bfcef9c9d671780a855d2ee8826b7d9f1ae16dab3ca615e87060f0f804999545a79c305fe3a08bd30fa9ea5c9c96709060401c31884be6041e394d564f995aa666303939d33f585c313513812355e2ed1fd3737d4364a98e730de1128f37e9a8a892fce24bd2428a0175088fbaa40c24939feef117d189f17edbb5717815d9a2ba461e139691b341b17410559aebd433b3b35222c81e423fad94cce7b9af6bdc8563bf9279e84a6a2840fe7e1f07cb100ec3e220c4111257088fc9732c45a20c16e620e64c67e24a03b5edca7519c6df30ea1a733adb2291ec816439d75dff54906728f3018061ab7b02c9fab9320e0d49281b47f07fa0559d8775fa69582c99311e22652aeb0c8e575dc3ab7adc477b3a1a5c4cdaa004063ffb4ddafb7ac463b87ce259a0b988100d4b54d266348f0377b102add0bb6c1b9b164fd5e8d2761a9f2fe674871da0a6f722859e04e447191aa4ae34ce597258343dc363c4a7bc9319f137617b74b5822f0d53528f41e7e9089049480a8cc0fa98d52563c47aa6840be7608d8302088f44d141af7bcd48de130011456a7247da9993b7d9b13979aa41127507a54a4c0700e83e9436ea3a8461c0b63cd0b8509757b3e01cdc87fb049c70b65de2d0f2911e53cc2c582dbc07fa2ef3d78e8ce7f5c3b6ec62b01e10d7141044008afec6c1faff229c902094bc77ca070ccff526d8e2dc28ef5a3658b75ed015429eec08804288cc02e1eb91994844b512838f05dd6832fbe09f1e1f96c6b0f615385cd3944ad5bcc3bfb7caa791f1efc18484bab63fc60cc4e0ee756f2538aa8fa4ca0666c304c1db4f3d0325544133f38ff2aaa1d5034d167e4f2989d0fcc83932e8251afdf93d7f206d3d12999e7856c945e16ddda9acbc579ba53b0991ea6479da9c146090737dfe7ae48a6c0d7b2718ec5d85ab841f689de7a8a3478362f97fe0940423adaa46f39b212de99a2c86805210f32411da70664d00ac0c612a0678f814240e5ee39f55e9a133d9c095b86893b7fb8f3d53e9841400032363f217cf67663fa986224df95150b2f909d882ee7fdc10ec10bef025ee707d4689c87988919c195eb9ec373cc953777e678230882523e70981d51c2b151ebf0c2f67d9a83835686f8f9fc31af19a8e0a38ae6eff662c154aad526930fe1fcebf758a328b20edc847d71c7d8f18531648ac116f65273218719e2a02e5fe699b42ccb05fde85b477b7a7ba7fc21ef059fd5f090eb1abb7b07ba2393f530a5b512bb59db60719ec7e43de08b59e9dd267c08f4433ab8f030e0e9fa96649aa887a96032f08ee01eb3a8cc0276bfdcea6759733df5474a12ab59086d99bc4db919999d7b91191db5ffe3673cc68a570aaa8ae0ad7f32669604b87a820ed02ab91790a773918a3f2d09ce7ef8323628d3d1b37c32feee7389506caa7ad815596ce16f97098f41d408c029c246a12f36c63ad309f5caff3aff43f9b15fbb9ef499b9be5e8b906496d3928852b0a4dd96c3816e06d5449aca9ecdac4addf3d01b45149497cfe50059a7eb74285a6253658b34dc8f46c2087106956aceeb731ac07ceb52442dcb49006608edf177280dd99010efc3160dd456cdf84c393c49897392cfda545d04142248dd30ec9f08090f3c0130104242354b798c3b192d9c217d39a0fd5e1781310be2e3435e40f370cebc9c4b9a2cb1521c85082124293882f8a179754e131fd9e8eda5107c3215d388962f1fe84189773f515f359cd017a33d900f268cb78845da4848217a484391dbb3fbd0bc8781c40f5c2ab3b2105fb8347a3d7f61ca429a31f1791dd7efec3c20c33f12f4849973f5749fa55c76dd562b0fcc64e448818e22e8e03a1a701f281413b0830c53406742e612411640f828b1794334e720326d5363bc5b197c12a9c59840365d92e35268697e286c6da3602d55909f438ecf98656294ea685e4ae91eb6cfe5658a268007ef7233f4b174a8f9ac955503a1d925acd2838427bb4e87c9a3982f3cbeeb08ac75157b98a3c980e2885fc3918d5841826fe685b0abeddf46c995f6d234b2b6d78c6e63504e2715713510f9db30c28b230535c1de120ce79059d87a344aab556b701404753ad75956374111543699c896a866fb276e856e7d5a221bbdad63eeb2633b6f58a5df696581b8e1d9aef839adaeebb8e5ee17542efa288b96d84d09bf0a07d94db698260faad0e7b9ecfdf1c589d54be660e30374743e64cb58bc1b767b434e3feefeec55f240e015abde234fd6366c422285f42779140c86a440b940c175894a562476e2866cc6f192660dd75d76e6bdf1915e8101d4ed5f1d20a10dc15f5b8f7ebede0d0ab9d463d3bed1166f9fb02fcb44c33fbe2952ee776135c5dad7d4a5fbc93d0bcb20ccdde5ecbd99ca7295b9e129ed080febdb0400b57bbe0c9539fd5f7fcd11dce460256c55242faf04425e32b29ff98b428122f2ca3da11d266689829b8bcd47ccefb371765b5aae0f04e0a76a469d5bede43986db5df291de800b2f69c3bf1a28fee27d91badb115d8fa2c591a76c862717e1cf2e64e036d8ecc5adfc1cf68dae9c519268759ce21e9efb28888e8d7d14c36035301475bc39fc1968c134ec2f14a0b4cdb0943ee1f1c564b4a55c54c51302590e0392378befaee977c34ce189c171ae0603d99affefdd5892ce976ce44a63318f98bdb1e7e1ab35b9fbf6a21b5553919f00002a235a7f36279c5e5eaafdd32076d4f30fa86feaf87e1be60a1e64d199ae0d066952e0970589c54872d5d649372b001d2d39dd8ff2f8d858611e22b1133fb742c63ab83a04f9fec190646f630633ea11e287275d864ec276f0b6fe299956b29ca1d0fb14db9a0f958a1de82f7e03c0d1e16099d02f989f001c96ae6f501aff5707758d5f64cc51f2c0df3125fd38995457eee8ae151826cfa2955d8bf73ad21660d2190b2e92777b38d9742b45212bee7387c1d99d44767637ce94d813c67c12c93debb2504b5edcc26d4a16bb4d6be11d63e12aad925a7079b2dc220b22ffacdf7e92874d8c6bf6672b28db9e0da2eb39fc5268233814371dd5ad015051eeff14df4c132c3d494b345a32db8d0079e7082bb7979cdfc9294e7c59217d95c503ee319117483e2112cb5166464f1c13b23aa567973605124c8bc7467355bb6e9d4690133a8d1e2683c4dc9cafcddc686abee00aa7a6463e288e3e26244863dcf35ea0a8cd0c4851cf27952fcc10269e9db228ed1c897de400e75eba2a3c55e05d0b61da31439983e764c494e011cc36c7e061c4c49b0718a303feed3941e587f83cac00fe232996e8d06ebeed0b2a866d66298b29c2dde1ac75e81c2905556a5a28f95be25282a9eeac2d5f2b6ca6d225d4b42fe45d5ab7033045f4019b34e5343484a4397a102f22c198497d4c3418057bf2d9858dd40b97a10143a0c842c4545013d2c25607756c7a40da61236de1106f861a5a815db9636f36f8dc8ccdcbdf8a3417724edb86eb8beff79ae1a714e6f616f524a422b47366e988c37851667fd0bb7b5e4b47a6310286b0e0e31ae7190c1d2a30e688e29b763c1ae515f2cab29471f38a28b4de7e1ab04d16848f1ad7284a436bed89d9217c887d60651356800cf4a63fe868a5725df28b9e5206af4ff31b14c6ac58b3116c58b4eb0049441766ba9199fa7ebfef60f0a4c66613635361c660ed8762a09a9b8338f6a06c2b156245971daef4af4a93d6af083e52320dcd2bcef676ac2a9640cb3cfc1455878146e7819bc073784744b74e616cdd6d066022ca4da5c7546d528052745dc074524ed8001e1078dd6053c0087cce57f057653bcbd5d6e4ec8f3e2bef5286050d70e9082a7e5af1d04ab9155d1a27217d892ced11763f64121a66016d7169c589cd6f2e77ddcd804faa06c5fbcee35a9f72dd2b3561f38f42e6cefe935086532884faf4f1b1ce2ec1991b053e62349d19a10d20313cac86b20552e6f1873be2ad00bc32c50ea3ee0aa0fe9841023a0a125b18218f615952f2b56f01d3b3cc1ef357ceb010dde760d8f231fef7c9b7065fb1ee9f5054101fd2f88b4ad35244b858c61415c1ea0bb1263bc875be328f5650587b56b4593f547f849815601b944f5380ac03d3f8e0b845923127a8f47191c858579c796267040225070c72583ca6c6243b895ce2329272b580434903f99a4fbc17f415b123c1cad06a4894e36888710c159ee7a7caf408725173f906d4d88c6b1e12208b9759ecb2cd1eef90dad733e6547b1ceb610c95c396d63c3b1861c5c14acbb90667810a03e6d0d13ac6c545a6c40503f5939feaf3e71e3939f264ac6800229b7ee1fc4b0470c6e49be9db4a8ce594234d48f33d3b0544c004d3092698997842568cc98979b299e8000632ee299ce14db6a8d4988b7332e04a8732c7e68e012732160655b0b18768131649eadebb566f58cab3a2ae9aa30ed947cd21ccc109abdab9ed0c45c02d805bb5c451547889f00083c0cd7b7c57d4dfce9077208844cc23b770e222329cc759955507dca85c119ea8f6d239eed290221b0dd512a423d158c4a7f2f38e23ae5835e870a4d0ce128ed83d7a9aab2d90d703b1c4a3091d22ba654626782b63e07320f66731dc817b5391ce9deabaa8b7a38bd5eb2ea60cdb5a52dac58cbc34281db738767c28a13fb3043e0e4c65ad24b6879097422c585937c58b061486f0c975df9596892a4299d41d319620ee9d9bcd0bd96862b220e27fd32f0b8b17d18d4ab7529df55b4df908428062195feaa751a57427195f019108c55458aac74aeeb82407e7b6c750982ea212a9efb8c1772465d4053e0471ab90f4d81f5f318775de5bec31e35e50be1141035b1fc6ac3f6221ab51f846bd73794f24023f537eadb788126835965b125c134baa7f819d1723bf1195833e606c5e168b9ef5572d1fdf3a18986814095613c5e36ff34fa012adf45bec2914411c4fc2c1b671ec561dbd0da66ba511eefa35390d2e97906cdb53b361834d93a4ada0c3fa302848979a0bf177af7f8bb97058387990a2f1890ac0d940c1160d6c8dec4f44333de9b468ad2ff0ed4e7993b97f8e2de30ae7322690ce5dee573efcbaf01115cf222f6abe8c196a366d139491786ae8c70b383bafe60b6dae01ce27322f501b12bfebe7ca7f0d21c03a562b61ea3a28cc5c86cc54433881bd5afa079100c1161f9111417d4c1028b07ba70f069670f425ad697f06c86c9195d20dcf0035a8b38935412ea8aabb9f208e989a1501590a44c9503720d15aa1a0a6a071faa752bca645bbf71de0457b79536e4b990ddba5e6e316e76882fafba84707ac28f0b58d81728db65d96de24268c12ce6cdeea125d31f4303e5ca81af19164bfb3b2baad9d49a27ba57296fc2537b4ede9f9d3eef756ebcbbbef460da4a6b76d7282a8a49b42edc0594ea57f88afe26fc8fc0c8e514f44ff7ea117cd81f18c523b261124dc86634997bf086a42a115280b8c2a877cf8e0888ae7c541f37b18d280224e88cecc1582098bf060c8bfba3899ebfb370b089b1b15425419fb05c83598507bbd1c640ab74b0dc0b08ccf934ae35b981500a7c630d477bea5d11dac90ed5f0ffa7ed7ea3f7357eb0374cf7e4f468583de109297fd8a4e6bf34a2b7def6e7d2c1f2e74a0ee2a4ccdf500001446740ece212a5febf6b367f1786204278e5a802f16442bca09affc2b0b8ff94f03e0bc5d37a551eea839414aaf4682367323382a98a83c2ca433993c24a6fdda3db0e597f7c9964a7542b99273e2692353ac4f5a9bd597056ac640bbca92e14571761051353fba86fcf6be81d7d302be3855eeb055a97bcae0b777cc766788eb376710568e78f61c0bb6fac6c247b0e8288468191ebc7d8c0ec4bcaa124de487afc749d30e094da31a249d76e07afb0e03f809e181af104eb6caf3312d40e22f989c44711dbe246fd27c6bfb0677975e3185e9770c171d73fe1aadd77d0c610b49331f0e4355086bb4196dcf8d8d9d87bd063fd24a8a10f545a95374422c363008a7cc742b6c36ef8656e0692e7265c32dc1516c05f67370990d2863069ab3473522727ecccff3df92da2599cc32be9bd8393ef8c637488cb7f1554e77bb689db8b2b96401a41ed866a0fcfb2b3c6ecb1b9fc0a01fdba2c6a31de1e876d39f3ea61fc4e5263f9d9d5cdbe82276b46eee41bd520941bc9091f4a846904fa1dd6496f0db0677751008c88e769fb1fc65376c578fc2c97f1a510befe66e25046a22ab0ba34e72e64371d87e683d68470e420a4b79354453f5cf8349c7d81fbee83ee9e50069f44765e06563f5408f263c71d4c8f961978f36e2237c7d776f9aff2506a730239fc466aaa1cfd53a2beb06387b8eadf767735ed9eb96bd6d9ad9037a9de0150500916d01e987b6e1ae1d644ce656b5288d6d45917a928121bec8e5a4aa3c2893c65b6d2cbe23168ce8501a42c43505b8baf4fe94513d0472f69aa218f897991d05c706a2ea17b2536177faf4e91d08c5bb8c1dd7af0a09e88a306a5ad0e17610f300536a71f570069e73025292216e5b76d3e956f99662a2ed7c240658ebbd413ede0d7d90d015411f50bd8ee740688998e531367261f6d769de6aa505faf70477ff7f50d96783894619e93c345195e17532270499c1cf9bd464a3af4363268afc33aed71c55599ec3d76136e75dcaeca7895ac66b2c039047e4c8e67339ea9f4f01ebad839cf47911d3cfc738d180a06368b6c9ba3f7ee365f9a6acc3835ad6094d535afa9e063e7942e49a736361e1a73b5fa3cbca607623f54feab3b4493e32edadd00b919f8da8bd2d6effde035bd2f3bdc73f81ad95c3db0832d06da94ad97f6ec054815189de9ac0e36a47665fc4089793ecb76c909d91de22524408fc31b772e63a91a03aabfbf2f32371a475102d6ce78916b9e9031f01227fe1d5a196fd3dd59dfa884e91534c324d309045cb245fea0a7b344194a17d40de18802203c17e517285eb543ca75a9bd4a9fa3dc1951037ca222f7911d1343abbc4d4c524041809648425a421a50b114d46e885ec14bb83e6c6d96bff45a8fe7d39c89aaf544ef4bef7bb990944548d5aafc8d960731f25cc860d7c0d29da120111c8c7bfc8e780c86c621f646a4de9253efcfdc4b2e2733e50f92f7cdfb7aac4e006ccbd505c015a120713d68153dc0050287bd5ed230522a861cac8d3c99972a6c3d83f4e68334de158037cafb32beeebac474c8ee63be34bbc6be8b68b1778c83d2059956e279881b70ce37a6b583ce0eae232422208b999cd46abe52e73db0ba9734749223f92b88174affb1cdc265da710cb1df6610b565898e44cd2b351ee95ed46bb5b5cd5701e9601f00efb87840f4f807c01d2706901ef701788f8903a2c73f80dcdae655003ab80fc01b4e1c900ef609e88e8b0544877f02dce2c401e96e1f3c90ef0f8b60d3757e9b6ff1f342eca8ceb788795d6066396f990dbf330f38db4656066d1c3ff61bd70c7d786e7a0f47cd316ead8e38a779caa5a338077a8163e6f6c8fdfb7b37b6aab43483d267c4259b9257588e4d885e01ccb2a43a772f5454f798b9156f45b8e4e79babc3dc4940fa55f1f3f2259e40ed5712902721f3ab1ecc133a1a7b1f5558e953a481d73ab1174dc176e535467565d3a5cad1b11a56d14a014d9f143f5375497b8dc82b84ff115575a077edb2a0504ca3364a56fc4ab0cf006e5c6200e9b09f80f7dfc400e9619f7e62f195f48dcaaf0ba2a86c5bda713b80f9ab5edc775d4a16d40a5d51b98de69916c67bcc5e75ca0c2143ed4b706b709a5cca6a56e9e52b9c622a8bbab89eaf7b5afaa99de67cc8493ef85dad32f45d46ab11780516b56ca2f48412478ba240accc3918bf243b60fbddb45aa1cac893bfa97671ce5d7bf71d3af59d6a1b70e8b9aaeb5dced89aa277ff54bfc069d41b71ca781fc201f63f245d740992fadc3256d0cb1bee9dbd56c166ea52654077709b9052a39b8ec1039ee0b4d18ec4c7b2e36f76a57cce7425610f756a2f6b663b47501b1929663ed57c63571f14e78323775d4c8c7c4f014245de2e2d3725173ec4e2c8378e30466ea32955915d3de8ba62e2097ae16eb03256c71547e696d818b92ec14015d9994e2131b28bbc17879c93cd424614bb0045631f7da45e8f893322b6117f7a203631940160a95131d688acd2c1656421fc58b0f465ef6c6e789518af8db102fb5051dde63b6913dc72f1b46b3fdc18c3caece01385ac61c4605f8b7b8811bd76e63472fe3f39182f2c65e4433ea2c212f7aab5c50df33eeacbdc178b14c7c72d899da26071daa0f484e6a7ea67982cdf0e945cd4902f7b7b2c3982ddeafc0df1de406575b7795ef6950b3be959cabe1e060e933d0f373ba8010d5f3767f69de853f8e44648be4dde982be239764e3d403d1a525ff25178d602338c00f60cfbd448d67312e41d0de1f8d0cca815bb5f03e4d6f643c527396216d181c417bcbd25b86cbdc94313ec76e01d61008915119a94dcccadadc1170f1d2560cb38a89c5150c947ad05ccb6666cc8bf94bd376d6e55f6c2c33c96f24f30c9ff5340c4c2fb9aebdc9819acb86042310c3437eab483b6c553cfe8a93ec518afd7badb74954377bfe14a2a016238875c0e3dbd26bea8f69af59ee4c027b06b2df4f12ffcd407981272d03cfe9162440fd9e51a9c056fdfe28d9f95afefdc86e7572dd2a90ffcb3aac1bc47b0a405281120311834b05b8decc3b58180a4a9c9d2fce0b1f9c4f5e11f53bc1bf82e2a2af8f6c6e2df8221bd0391a53a4ef3af5a86debd92b0342ad84534133a0610234a1720453c9ff9f9fed84fb00d79682660922a572b1e7fd099b261f039084f236575f9e9e8cbfc5d255ec2826103ffb34f41c44dd93c0aa847f998057fb4e00f12f761dc7ae2337f2b02ac715b8f554fab3388fa047f2dbb9132498734ff20373f3052b5a3b50a6c3c9dec8ad80bfeeea29892f8e4e4ae8e7c8ad9aa3c36aafada393cc2773abfabe997ddc5e1c8652b013fffbbab7c48ae76c9ee3fa76e25b3f353cdff24042e46971a06c7a9611415d33aac4407c846b0bae2269cf658e093dc4e1dc276bc21bc4ac289e3f5f4221d77f97af5b88b05fb639d78474f9ca47a6805df94dfef77b90c6bb0cb6cef70cef1aedd20352fc57126c4f019547ceabc1089cf88e44b3a2ff05000ca8ecd1607195004b3c88dcdb11af47933dff16e0c786701f03bf1cb6abe71d045dcef49641d9650eae41b8699f5fc2c8ed6ed475d1126338049878c37276f9febe86f4f64203ec212c8885058ea852214b845707baca0104b27ce9ca22a354add2d59328e13ae1e3c3c241ad3e30401e8582e9a4f1820149cafd1c526a7eb03bc755d4f2f8c080e460af6db0c71a3832946e16dd0420f629ead6ffc015912d83d6ef5d673e3ae9f1a14964c26b895d20bd5de2b63f78f5abb602ccbc243b7ad3c74b69543bf59f2e8362b8f5627b6557a96ea1995de95db26106bb3e0d16d561ebd65e1a1db163c74dbcaa1eb8a6daa5ea3f45ea5de81d9e29dc68352d636ce7882fc6220940c94d5c0b5d99fa5a35fda6ee2677d17c6a0be513a43c62864c38711d6e6e2b6b0a7fef7912edc561afa196d4f9cc1d984d352b711dff7220aaaa92da1406601f77d1c61f14a16937b0fe3d19541c47b6c9c2b2f4c5895b54165155e0badff3d67db41a80b881d33726122718da49ebe156f30a3a4c9d16c77971d349299406ca1beda1bb36d299cad865a8000fbaa1318ecc93db87006473b28ab4fbd8681de66695776ea9457d5f1aef8982bdad17c548c7e7272fe7265000f77137c326b35cd1fe3e967ea1334b60a738f4bce81ca3f8a6e6c9d1511bfa757a509f93c9ac80b721323f9f368da86949a5aa52aeaf12e860cb94a7323d7b5e78e91cc8007e5dbc66101b66edddce3f8c8379554a86772c71798f95cf1bb67659dc402a6f19eab05daa99917997cb07831104f1b99956c04106062b3c8bfcaf19ea49eb1dcbd92173eb9b85c1cf593e9c4927d04dfee15c0cfa0c0fdfc58fdfe745dcdac87865cf0cd5ec467336be346a74e1a8c7798ef2b95d1c4ee2f556f74009a29a2f0fb4546e7490a0ad0ef43045d8237bc248cd37a61185be2d21a04139086bfe0053d9539b5a62d518d67bdd9b21e8c8c7d0f38b83c89b74b58d59dfd266f83bdf5003121a31dde514182e4a86e04e6ad85881ffa7368a9ac7a53f9b516d9fe96a2d09e8cbf11371bfdeea42a9b581c03dab778063024dc44548c3e55c48c067f364328a02efb8e0f9b9bf38347d6a743870f78f8a0c30f1d76e041870f38680f185cbee2f2e51e40e040050e10b08081050e2ca00d6410e89a1c08d982b4630a91a1cb22bb387c16bace3ab1caba7bbf0cdb15a28f831d7c028eec9b0099c75e34705cf1d425d01a1b6db4e8c2c2f30e2326f698d86841524799afc57c24221bb4daedae9e33e6985119237c204eb3c596075aabcc82f827b86664fff34334fc083b88ebe0796bef802f2c7205a3be9264be865e13b489fa51fce4b7c4ef22edef757aa491c3b50fbf17479070224c63937f0aac74989c2a62a7cbf4a20a333df30f759869991da9614fcf7c4f096b5ae6132ef571a037f4498e1254720a1a3eab56ca7882504e792112472b652c68fd96ce345b83874bcb74aa164437f59a53c2e811a3f1931c93a5d7524348dacaa9904a2dbc5a4e950d80045deb797b6709ddeb9f07efc127f33644c516cd82cc81a040806c2d499189606cfdb764fe8f270f885d9124b5108d56fb5da6fe27f2c62f262999900dadff4de6fea4e40150abd2840e99e155bfcbd47f543660b24aa2c82331b4fa4b32fdc7c96b3e6f3f87665b2b75c3ffec2fa7c2ac244d1178dff1a745be28175f40331b90cf45ce171cee2fc6944e94db9fde08754cac8ea972e31ab968391e3a5eb252c5f9b8715600275faa015fc8df5409550afd23921076e2336ca788153cfca6d6ac825b82af5d2425406129fb2657d08b1201d9ee4ae073d06dbe32ac3c82de490733a5302bb3a4d1b29c83f49aec037dc0984f513d6c6077ac23641f76eb116be58835b69ccc22ceebcc441e9a12f384f459e186ac5fe0ad586e87e2982ae0b4876aedd8c60fa37cfc93f538393f7c50232fe0aad5ecd2350490298734a58cb002f48bb7bf34aa1e5868e091dc4aa813d7b6f4060a6a1d69595134a281c29230aebc020a0cd0a95122a8d69670bfc1c38f5419cc973298cc51fd24d1a5b13f8db43e459982c9d2903909f7bd374054ec9568f3256af5a849e1e184119c3405bc5e6cfd066773cd80063a826e45a9de87d7d7bd7a5f3bb03d381b3f5420e13ddceb702026761f4205c2544b518ed458d1234b9d6d5d07661d15da0cb3c6f92119ea157a5f203928a704e9060a5bce85150d0897b35c21ef6bf2f7b18e40b82dc039ae258bee3f3845597f896ca6d7ca8e9fdce35dc25fab85e2596a433c22878c953a0cefa05d017daaad8fbfd7428ba3eb531f4e3da2bf61c35ea94996aab7350d6aa3d516feb289875f991f7c29322ed04a392cc56bd4eb2858d6fbd0fa57e6d88877df602a6d8010db5b5c03c50582cae2450ba802f9fef05ca35eeb472431ad62942c42b14bd4b7a0b5d8a1f9db217f51c54c31d8db96b4ff784bf529d98d1dfa6265ea9130a1c42c32d2538710618938009595e579b26ad3362dc764df9bcf7838bcc0e90e5883a853a61fc8d30f8b1bb2c3e93a9dfc98de4a8cb5d208457479ccdd3f74b07d365f9e904800ab8c532c62f3fdc0ae4fd1519aa69ef3ca6851cf7de2b4a784e216ae91bc4d676ad00257974c8496479c62c590adfa6433bd38ff6280f22cac385eb1125b9d7906720ff4b90ff009737c18fc4c2eaaf956584e50fae87441c8842c9e2c2e1911532ca843c044c996952ded62d8996d6d21759d3a178bce7d625f248e419d9f119df5dcd6244ee80d85a124b4f3b4bc53995de2ee8ea63b743ba22eae4deb5b896c78c1cd917fe0440cd8023a014e665b3016564d0701d0bc9274b687a0a1ac7a3a9150a5645b7c32cd8ef96e2342e610244497da1d042267dec44835a3e3d7dfe9a6c2e3d597f2ec1d06ca326283180bf5cba4b72e5ca751e8ed331d867049ab4937b2bb6db9a59429c9143806100670063a4cbcec7018a6e22cc8d93b3846c6137c31343865fce2a7c5091846be05c630e2863b908aa4e00505cce3259ea0dad40e9ef12b1fccd12bbfb3be48a4142efde979a9e91aa491568ea19fe35f70b0d0ea16e0190c3448bfc33a634ed4e9953ffdd80a62c50798470c5107ad4fdfa6e88736ee905dbee2c66f86452c6efc90adb816a0f325cfcc61c91749660db3866dfbd26f9b9cddc854f86edbb66ddd1bf8a9eece04818df6b62120891bb70dd6608c490d469996662e6ad4f050f05abcd4d70d115b755afe6fc52f86effb80be181aecbeb6f92252833e90701a86af0f249deed8631c93041b7aabd5cd8f517c248ca8c531e11953288b40fde9f49c17a24e9f6499f84a164f992371fe4ebf8263a2646dbf7d5bac566b3de5ff20185362815abdea698941241130be6401c9dc534936942c6fb170644ed7f5b4346999960f4a9306e3b67d9bc73826cad6251281646b274a7f584d1f4a296e7c934703ea9a9ebdf0f4993ebedcf6de323d609bde5fea0d895d572995064bf16f37a46fe8b12b782608514602398c8411c19170e3730c430a41c48ddf47dcf8a525ae8cc916c7c4974eb0ddf2d61d8a4736db6fad5e6d1fdf777ae54bdcd8844a47faff92c2c172438f75d79bb40cb7fbc4da2545a4b8c530c2ae4e8cb02855da460df683a1f4db578218a4bf6ef2c556af76e2d04f436930b6abc148030a97c8fc7c7678a6a371e3e770c3d8bf7da56d2b75737e5be90b8ddcedb78f61ed51b100c7f0cbf03f47b85df9f10977fa4a8e064d1f4658e9e3c7289128f26021ea889f2afdf05e6890bb004fc3b2f00ceaa3fb541b51f8589f238f954f7de90b6d066ec986076ee95320b8a5af41825bfa1515dc120a13b8a5771f97b1d5c6ef7e3e0aa51fb747a3e0bdb47836b47c1123342d3f3ddb9daca9fb4a2dcfa56f696969f9f64afd2d29b0b95b8b7ff5c2a6c267c86ce1ee22c672c6d20690c209134e9c30e18409274e66308324e64f9c3bfbc44677ee48ee934b15dca11ac5cef8908d5846c4cca10dd309657d8565540e339fb35ebc9c3b3759368cb008ebaaf5fc72b493529ede4fefa777aec4bdc71ef8ca3bd7715e4c55f152ac3c0af58e7ae75a588e5a8aa68f8d45a230fee0c24e2618502f61bd5a21e219760115847b22f1da97ef59b8109887c993aa8d496db32251fdc4d45e09ea3dbd13367a07940710e04a1a9c8a6f6104e6e13fdfc433279b0843fd6a25c5793ee49b1e75ba81ea270d4e2967bb9c0a4bc7797189d80fa078d90047f5e26d57bb5ca7d38a0986d3bb0ba7d389f362e7c50ef8e56a74ad3ed26919ccef44fd83a9f798db7679c3ec8c151b11e6329161fce70c588c45d9ca17c62deefc78f2fc69405dfff84f2618b4a7df2e5b53569672590e4b675dbaa296b5ac652d7398c35ca6791c667ae8b1d0631e03aa61f2984b0b5ed9643c73e23e7cb6d13c1a4f443dfd503fe30b9b753b07f55ce984427da8a7017551dff3668261e593fe7507aa650d22dd88844232b52b55860d1d168b9f0c269379bdd1755ebc332694ebe3faf125ac63bef5bae805be235bf18261e6af70c396790f5f86182de3db11e6738558ec935255ac1f79eccee75c86fad0b5b8b15ea13e6ed00403eabd57ec545cc633ec02ea93a82aabf5e43a72dd7000e8bc78515e071a9c6fe35d61996a7ecc01c33fbf343c589c4518c7ccf7d8038e991fa1601d51ba280503cad442903a519fa31ce528944798f3541f57eae7230ce5026774b65d4f3866c29a80c19a4a5721456a074edcd9429026126f1735381ff5b5ac8bdab5c2856d03d4d74f222cc2222cc25c2e97ab63d665dae52a97692330ccfcb62eeb4515c376192abf010708b7655d646a81fb1419767e189182d0df9efb82a09e48bc49bde27e46af505fcb6878ee0d41bd73cd4591f5c2f843c45ed4b76be7898b894bc99d6114e24e53cb5ca6030d33bfab55ee4c92ddc9321b1c97f6c82ef304a4c1f95ddf38c433a5af85ed2312afe6f3354f4aa05347a0c5cdeda53ba5dab7f6ad7d6bdf32897946939adf9c4c1090beb96b9e2335d7dcdda5bb77d588b2dca79151cb9c48308a3cfa277d429bb8753e654d8a73e7c904037df926930bf4656f3fbb60199e4ab87336e1cee9ee533db69ffcab17af4d524ba425accbf9d348f3a6d19c8d434dcdf29c69c46acdd085b89af69dd3abe61917344d339a93da348daca335ad6a5aa59a4667f609259a840131ae87035cc6853f1709c89f1f83fcf9fcf32be284bf18e6d3afc8949f8bd33742e355fbfa42fb448da3005b9f5f3ed8482a65d3f6212b1532374ea6779e9442bae68e06979c160ae92ebff6fd53fbcebbe196d36510fefa9e0ddc73937e3ddd53d30a3a1a273d5c058264e96d4f3df9ee859d0bf4e517e4db05f99b37ffb61712b942ba5bb5a75f90ef7e2e2ef0cb975f10fe3ed9309193974ddac753c4a7b32bf5d6f3130a4bffe35a79d8a8237e58fa4221dd6527d63fba8d3cbe7efdc2ee5222973f7a8f2e22a4bb3ddb4faf47b6cce6329226be497e5607f66ff8baa1eac6f62a1cbf708d6d2bc7f07faca1041b3291df187ad545be31f46a48748e3f56eb86b646993f21e60b066a90b5218e639462e7141bbf5d7653355750a9e80aaa1c1cedb46e4ab1f1359304369adae1a862d82ac586b62bd929c5862ec5727472d2398ee33ab23d85466eed66790a8bdc95febf362ea3cd1c869fdfe6f237cb86da4c9bb94c8c5f5859072737d4649735a2cb5c73a818fc3155356002c9d204a7237bd0df60ff4b8fc65972435ba5ff468e9ac653ca97744ad6a6b8f159d547e0e4aa9f6327249669c76cfc8ecf53584a061b8c7f63111e975dfe19c5ba2cb4b76dc0c597bf11fc984a593bdfbf7f6910f488cccbeffd8dcc71074d643ac1cae74e5ac1b9c47fe9e8b98ffd26fcc25f101507387ef114a53ddbcb000488654064e815d3155a66fb7e1cbd00d6d36caf759119b6ff8000f5e8a6cd8c03cb7de9e38f1b84be10d5955f4b1e3b4c6d817ef30ba910d5c5d1307d3707229a2f1adbf263614315cb4cdbd7c3715fdd809c58373cb1ea2603e2322a29bb8ba2bb7da9d3b3cba0e8a34edf79b63eb1f3a70bda160060990d300e9ed956618edb262e660cb8bd7d4038e60656a64a5ad89932e13852b2b70a51f570cf7dd732dc77bd5abdf453e540a65aa1c16863c3f14b0966ff86f65f473db840b431ea34d83c0dfa336955af5cfa79855eb994ba94f6f26a2eda33cde9238fcba0becf457e61aae4d5cdeb4e9a14e959961e643ff1da35857d97fe03f985f6081b461e96ece453cde34fc528e58c0dc425e19252ca29279506fd23d19421cb4fbc985c1e2243dfb9fe1e4687e924dd48542bfd429b4afd83a04a3574259d73ce49bfd2b74dab94a6ce054dbe8cd167e59139cff539b597b56af4e5a433c618a59c5156227401bb0cc44512175714b1dc9d5abb59a534c90665dc3c1bb62f51ba3ddf59c408cd7603c726097cdbbb47bfcda7177ff32f479540d830ba22d18dae5e19b9e2935ecdff8115f10b08a01b46d70f500f01c1d3603ff703a557fc469be9c81870fb239147592c6a999b0af43ab284db1f8f5a66868b5f4024dda6697758afbc555b2ee7e9b13eeb954dafdcbfbfab784e7f173528336ab06d832e34ba5e3a323a9d4d7dc4315ac87c9e8baeb6032b8ef4cc61663c36cdd221bafc4a3213c0e5978eebd66ef786c83b836543f0f28a141b46578f8eae5ea1c2baeb49cb304d57b1feecae9e79add6cefa8805377ad53cab84d5b8d33e6a5dbb6a75530b44347c5ead28433eb0fc6ae1b46eaa14965f4110ddfefb0a0286c4e786f6320e383724b9507352cd84e388fd4bbf9005474d97c271c452b06bd0c8f597a6dae00c6b4b2b65f8f15c7e2591bd5a4939e45c7e2521baa9cb2f21702ed79d2ca2691f91ae3e6a834660d05c238299e5b2cc88e5c7f16bd52a33330b280572434424a594d26fa494ef3d9052fa34729854b325320303f887f6a994f77815ff75da35683d9562dbfeb306319694d87e17c27263c764463fba7a7529bb82bda302591cdba1adf50bb5af327d0ba6ae57da0295eaff05ccf12f418ec0e10a2f9a9802072350198a02d5c410b1a4f3e0bffc531c9c30318215485a373842468305ab050ffecb73385e430c248678525be5844a2983094e68fd04018756105e3733909bcbe5d7cd0f38377cd5c6038e9334081bbeb4d74523b733c56fb7b98d03db1f5fc6975b30d13a4dca287bd52b297f72cc6d1d730e367ecbd060d337c2317defea536f33f988b39a205065303d407efc38be274383fdf168c804c2737e913ea7b5aca7cc6e7f57e955a83d52af82683de319eefb1b0c9ea9dfcf95be9a60d8be725d7fbba556833c710735638e3f10f03f95b2b6bd0ec9c1ba4d29330ce4326c547ad22b59fa012292d59991cbb629a526b7e40a6bd206bbb4d5abfa4d5b3a3c37e6f20bc9ecaec0e64e9bfa53aef7216754a100d5a15e815f80efe74ed9149edb584ab030ffa341f9df53930f982f8606e517f207f05c9d39ccef6850febf66f201f3b1d0a057008f65e6322902f04b0a5f0a295493033805f9b9b420bf22ec30e10bd7bf8713c00b532f5e68fb07e0850cf479e17673fb3d6f88bcef85f5e87694b873258b48cdb9fd354249bde2322e5f0178354249433648643776fbb9230e894bbafd43653459f150194ca07485f58a87be30ba1de5da0cddf48a932edf007835433743ac1e62e9f48a9b70f902c0ab11d269794b8849af988ccb17875723c4c447fa0425f58a9970f9ba7835414936d3e6a6578c74f9def06a846e589425f4a457bc84cbd7865723f444e84713fa09aad22b1ee3f24d7935415582906a1052935eb118976f0daf46a8896b73edf48aab5cbe287835423b3c251e219c5eb1122edf16af460847288713ca7925f58ac3b87c59bc9a57924d67c3a4570cc6e54bc3ab0962e263f281d22b9e5dbe33bc9a20284027a0209d5e71122edf15af264827a8850a6a15f58abfb87cad57f32a32b246af2abd622f2e5f9457f3aaf2425a79210535e9151f5dbe27af26a849906b4690eb75d42beee2f2357935afa3d78cc66b76d32b46c2e5db793541372c16164eaf988bcb97f36a8270725a729ef48a8d2edf9287c20fc7f0ad09dae9156f71f96e5e4dd04e833c132fdf1a261ae2ad09e2e118be13e9f6cf58d39eb32b5b48d5dddde7744dfbe9b94d839dd43780ec0c2cfdc2f8e3840d234bb2644e44aa3f524a29e597d4603f514c064ba5e6d79f065db77d4a3836ac3f40f55bd6fa55a09f94d6efb3590ed315e8a72b6a9876992ed611697bd25dcc65361f87e98f3737f587339ad59f99830aa509f6873b32b9c08680185c6c2f6d21a8ead19b07de1f600dded4930a5395c14e1691404c3c333333333333736466e639048ea5a5f2f5778c5fec77f65441dc0db65ba8bb87b0dddd0d85d36e2cbf9792588e31dc86a25d62f91987eb8e1e8d3a9a474719756c1c332bc7b4182559fc90794e8e71e4b9dd5a0b0876caaf2453d22ea594ce1db9786b5952388a5e47b65862675c7e1da9a203b2a6cbaf23b02340af1ca224b86d0736fe9cb16aee533c0fc99b037bf930e5c6e5d70d125e3e4cd154e6d4c89882e4089f2a9e009a4798dc9cb3ce39e79cd3a76bb2d61004423f9c9f6a50c530efe57c1c1868b0bf6ff8a9d4a53df0d0f4ab7638c065fa2de0324c042425897c30c10d5086a0e42849195618a107583dc2863616416ace79e4a1094552caef80e2e4c5d728f1c0d5722f41044f5c30d4048c24aa04516472b232840d6b0e02f02801b3a1e9ffd84aea8e31707040920110621c51046e0718b89cb4a6987e2ae931b048a26cc1c48b8a231f1a106165872326d0e18d10e16ac215537c6c70f38316540727350c8b23d54b14a008402c08828b295ab4643338e9f677a4020c25e4c0093a104216850bb298f1aa41c6ebcc82165f40e1e201064ac086c0c21a2205f296925849d32c19219d5864872aa694dfd28ba6d9a629e594372ebf78406254f9bbc70e7f61470fede5cfaf477bd92619d9b463c70e4e6e68bd0b661a1f3e6690c1a956b7908d924a0fa4c19ee1853438c30c0db60cdc6f5ffdc21dda677afa491b1b1aff4226a232dfe4e16098f99dc7c2301386a3fc90c8957efda3a1c895f2e9fbcfaf87fbf9dc94dc27039106bf6db6d674a856b0c0c23fe832d6bd1211d6ba0c68bf0adb03ec86556ec840fd04fdfa4668aaf63718a199cf4f6be2759180f6f563d0be7e459cc82fa2497617ff5a87bfa70e3b0b93e58e4844eac1d46f3851d3e6fc18a5c1086b30bea66930212ed360308da857dcd1a68937a26860fbf93ec14374c1cb4ff0187139a7cf496a1d26ba3c803f1ab9fc851e9b532cd7d06712689afab991c3448f1941808b70e5dfd0be1b3588261f377060e987f5c7f663fb9eedeba91f3b8cc680d7a2344c8cf9a7c16031723c5a1128a002a6800ad8724cfb70fc12c6987d21bd7219b6b388fcf955971828fd8c74c7975cb7aac19abadd2a87e9e698289bd0a7807cede75315d0e71e582bd5ad5d6aa50aaa76b020e756356687e1d98e84033f65c35aea61c70afcee3670fc32b178a15735aa6e9491f3bc924723bd59f2a48d0dcde671144059e4d8d0d4a6a11eed81c7a3d8bf59dcfe66b39da77e8f9e50bc57223708bf90eeca0fbbab451d21bdda73d411ca1afacd166e95b7f2dbdb01dd51ea45cb216887242f08c30924be38e293448f0c5a209484102ddabfbc6ef82aea0445a20b9bb22cd6f61147221604febaa84116494fe8e10550d0780fcf102b3c4a5c158f0f3c371c1951ab5542f9c1050b9f265d14565e7ef9f840614b435897e1eaa3b3430d2093131f1d8cb02832b4cf8b1e583a1cd8ae0c5314b60343c85a2d82606b44e1841a846185e52ebf7a8880434f151c5f3d51f0f03c53bafe36e5a906a9b0337eb82996461137b0362ebf7a704c3cd87af9d573c331c1b2cc8caca9082619589315dc102c0a975f4600b5c0b65c7e19918418460c41a7dcb4cb2f23708c40b21da15625caf0028c2ec9ab082d4c48bc8a8882caab0827745e452001845711431491e455840faf226a78314972e1e71b9f63fc513dd896a194524a29a594524a690b28a594524a29a594524a297da16070fc926a50feb8ed42545d8332be50abb5a9d43f08aa4cfda172ac7fbfd05519f2d00e16542b8039fee54a1c2c0dca8f39d20b8e3e7754ab704c627e5ef5741f568d4be188b2044aecfa3b8767627784b610445cfad11c73b3b1b25dede3e7b2fd90f8c22beeb5073907ab7855b5f96ddaa2dc9045eb9c06e97bad537be7527904abf96f2cd3a3c63c6b235cf116f5b9f4431bfe5aa779f176de0a0d43bf87cb748ec3d04fa56ce71e5f7a555f7b8d6bc71e399afc533548df5ffb4a73228f1f78467bfa8d8457a5a7df41b0cce929ea869d63fab006fd93a7314cfd92e70cd6fa26af7ee7d5d73ceda67b1c9ea6fb9c687f83ceead577a79a6b9af4596783254d6caf7ab60f6bc7bdbcd45fb12bd86818b07a2f317c910d23a38fc85d83b4ad8c572cc159b2e34ada399228ad890d19e87b34c001b657dccb68fad40e15d87125ef649ab2769e6cb0ce6dfb367183dbf62fa1bc46aef62ef4b321cb8b7421ef1ae313db1fe3f768a4eb8cd4a0e7e0485a955e310f1cbf8434a8cf2e2b80f534f343130b2c15cdfc10b5f102e673f47ae8cf4f2b6a18d7649acc191593ec303ef324b817ce0527c0bfdd6843c2869c91911bcd98586d7683c3d3dce060695032cd4365c107f0a71e4a088c00ffe9a1aee004f8bba905eec60f15e3187fce8db459af909c63c2f59f9c11c7f86f48d8509371aec9ae6761430d15bbeede4c93d8b076dd326a4d03a806edd828995d035c7e25617239948cf2d677f72929ce0d89b414d28511866e87a8a37fbe77aca8c35f7add0e5187ff7cf926938fa086aface1eb5f1bd1a23be1ef89183069024504031b4a1b69c342d201c9a78de28f0da5cdacb3e950447136e319ee322522f24cfcfe1ae287849571b2db59fcec72fc42c9cdc0c819da22cad5feb7ad542a751539297795063ba96748d8198b6772bc566b396dfbf95c67f2317bbad7bc1ee63a1957a59f5fbbb8923ea60fed4bf5b76de3ea56b76dab5bddb4a286e998c344260d33c3848426a1424c29730a554297d025530a455237fa023a840d59e812ba33a5d01dba4395241182dd85f89082e380904295489952a89239654ea13a730a0582ea00f13cbd06078323f3298c58dd6d8c310eb941c80d32e8c8e2deadf2a1fa80aae50c6e4c2ea02236a534206309a423b62fbf5a63e078b5baa07ef9d5326a51b1a158f0649e39b0f1e39c4558a7306cfcf9cd29e794ce84672f38aacc8f7ae9f7e3093636944e728c427c36c60d424370c7185b4603901021084a1223076e78ed7812e7b12b60bd4a9ccd4c9b0ea4d10dabd16d81bbdacc2a99dd66f71a62382ebf7ec0c10f49975f4a6c685c7efd60747d78c818fa22cafdcb435e40c1c9992edda54b9f539bdad4e68c382ea7cf6cf269fd93c96c35d8360210c0102b0001680100003e3870d8b8b8b06edc10fab1612308299572d5a8c183020a42392d2d362c2c3e346800cd9811d45a5931b2f685844205b94ea7d7cc6462755d0ecff0e59e6f4d50e9f9f2dd9e2fb714c2c26aacfed0a30aa502d528958816514ae5ba74775a2d8d494965b76994dbad067ba784544a2a552919958e846cc8197148672127931571312a9147e928f5b3e386f5c759edad26b79fce6ab536f5a02ad2270d967e1aecef3e75e7fc4a4f6888a531aaccc69819915174a9c81a5cc246b44de1dc9b2f3d21dd967371b8ee885c7985edee86739b0916a96371469b0d77d42bf9dc8c4bba9d4d456a30a9757be7f66b2a7836a8f0069853856703a8f094ce574185cf0615debdf9a9e02a68af82d675ac065bfb3a9c201bd2275eb04b67bd0a39225aa557216de2ada4db340a51afc2128c9bd22b7eb900e7f69760bd0aeb4f945e851289a85721673425f2e8703a180799e6a8f4add5653d0b15cd0002000a8314002030140a068442b1482420d184790f14000e7f98447c5c18c9b228c861188610328610000800002000203333330a000fdcf898a9bdb39ec031240594027a0c17b3dec280979e012428e1cafe59e4283686da0ab9343a097d30514a5b6b88d35f94af28878f88f61713f9b68c7d421e6249c8ce42e63ad4ab1b8c97d653217509b44fde45e29db29ea06816bc90738c1c1838151f7384640e36a52a8ba0b54b6941356acc8d161aa49bbac96cd914c6b59eeaacef41855a06737eb59962e23ed7b6f5d464f0413760f5d9bdc941cdf78bf6f07d4598344422f881cd3a69cbcf6e303b30b4f8ed3ca3f4f1677c1cbb3ba312f4a847b8c49105cb5336b54ebd4a95c4a0f13b9e9e98c0cba09c5bc7bbcc797794eca2c893327650aecde501be1c24b911de624ebe04e892ca0dd8bfc8656f217a1b1ffed58bb4b82078c4fd86215dcd8726e0dd62f2aa10ee352f7a7cb84b2f13c2c98fa5481f810a7592011093e96a1af5723e123dc500a2303301cc5228c7620b37e3c14e0ee1c8fec56765dc6d44bea0ca52a4567e41b3486c96575e2d158d9064ba1d55e475b7539e53000a8064ed4f7581f589da51f00c13922a3c1137ba6134386d378250b90ef819654df3b01d5121c6680890e1c6f5fedfbadfdf8b6de3c4e6d0375cf8a782e3f18320a0b6c33041b27cee4cd7442712fa26e69d6081d95154c3935f077484c10d5c3f637415a32587955d4f69d52e087436bae1dc279292a893c738f28dfde146c5434aa1e7afed5d88bbdc45cd0194770d94226231efa825402240b12d3a15e22d3671a2fa6acf20c4a856258f96f52133a9efdf0f24f92433fe834641e8b19872194c78b45641d9b7992052a2f35225834cc0a2359069c560285a933c97bc0d0d908f027c311231c55ed1f33272ce1e67c8e792065c74a0c102bb6c5a64123d45ea0586f2f38a30da1504b9a82801267767554961e8a4e1b890ae8a5904919f13b708bd46e8bfa3c9cb0822c7d56b83b6b089bd3ea542b75b4fe0bcd98c27b1aabf97d0904e58ae4010465c8acd5b7425d2c1f34338d8a4a0890e0f47a0bb1907b40f196bbbeae5e64f28bc1fac6dffcb85f0721e60144c477421e1831c0504343a0811524ae2aa9e0da61221896b02e1b8d13da3b7afae9bd9b5908541e43930c530223a51ec38aa06e7004be0547ecace8ed60b6ac94ef6872ca5be0d15106249e4f2f920b895496b8fb12f9096059f1da12485ff6dfb28751a41e84285028b9edd1b7b2e9c845ae1ed7e23dc76c2cdb00aa5f5230cd116dec71fcb369e2d8cf1030036b8461725b6fa22550856b128ff4cdbdd0c409a811020e474740a8d8520771f673b81bb48a021d9b388ebf9315caa8eb00bc4e33735518072b63b96f0ff1d77d5c8be8d3e8c71e1709cb90693e42000a239a0c168a1561ae01145cbdb24990f75ba479fc2d4e4649f0ffe1e1f97caf62df5cfda38e7d34f863c2916604e0d28af092c37307a94ae29fb8477c2d4eea0322e3a379618623b4ce3cba44580045cfddf9f874957cfe6e0c3d414da61aa670f400326b330729f7e13ababefc293791439c8deac427284d71e44f845a8fff2c8a2eec374d5399fca95bfb0c95597d2a2ad6166642d659a35e89446dc40e052ee56f1afc03c7434f5458cf327c35169cef1b5454e8e8aec7417491d27a9e5f59e7f707b46ad3f9b1ca4e469388be2651075954c8439a6e62f0fb823a07aa8883875baa7aab791ad45b4211633b2ee0bf0633396e7ac1a13fc225775461ef2fc22c6fb8b8cd3fa750af7062220162b644ad4761b1a06eb85defe44b70c148a3d3e6c81edaf5403ae23b9bcf3ceed991a5c8be7a6b1c56d81a2c2b7ff30ce22a835c35bf654d35d04a1f44c9aa5d34be85234a2ab9708456bc842093a0c286e2062b678e7ff2ef76f4a13e0673dae2ab19e63a9e592c4df09688dae802ac14c146bcb12e9ca4e841ef20c7282c9f77ae45c7b7d7502a0c827546c84acf3bfb2b8614c584952ea3a6fad09ca6c3a45925aa2ee81c872e2c9d097a7f4cfeeedd4a6256e433fac4f35871437d7b63ca773fbd90fa1b4dbccdf38e48b96f224e32115ba551e36cba86180b73c5bdfa22cb6c27b4464b9388107f1421e621ec853140068bd28ab9730d26e75efda51ba7eebcdcc048958addf923afda4f94b6e148e59ab95f93049251fdbacb2258e4dd6b66270b33d845313eb9c22198c5a7e64ab55c2610134a70d5cd7a9774ef8b080494980a2db1a5ba52cc318faceebde7a7d6f1739899a687fd48e501de716ac3e60ae832a0d8fd1de7eff0ff582f217bd05e7171fdc57447e09b866501c81f62cc9db424e0d9dd89bd23418f75c80c29aa5d599f620b45ce5fc6311b4cc3c6263796a833f6bff195c198c88b974d1d21382a6cb1bf999b323e0cfe5213113aa2954aaee57ea6bb7080119ed2c45869c73bfe00889cf28ba23ec5f08e683fcd25fc3e174108706382f70bcd50d3c0420fc15d2bc3e8896f378fe8bdc33b3cbc988da2d3df97de3579e9885380657a482ffd54f659b6629083278a0a03bb5330086071903f0b2950543a41ee0fd0ff67f9c671275dd92fdbc5fd201147e8798501a67418914fe72abc68c7f8b167c95cb4649f34e33fe59e10287eb5624a5853ea3e5e4b1a7e81c14cf61eb9426670bd17276408abb59f9a6abf753ad579bb9f7034fc3d2a7de9f7d71bca98ff2229483beec6122fb00a074b3be01432301990002024a80aed7bc2e1944cf2fc686f9653280314187617e17bee470aae127ae8a7523fd2a82abf4788702da713102cbb963c4ec26c0c07f024bda0521dc755c1d19f9155e19b527d0fdbc1b6d7e1f74dad993f2674a8ec72cb958aad31f06e9ff5d2256b08a25794c83fc4a8dda6679c2a054bba03709015c61748dee9380befc3b6707f03cd2254e4558e751123625fbb159043b749df54324644dda133d680816e4664c4cafb178cf14c000128d1d748f6efc2e70bc6be2d340e06d422a456106222582120f8ec896a9530f2c8c2d6041d7d1c5b1aed8a707bec300289322ba3e324265cfefdca2dcad6e666d0e5242bb48f597618114259aa62e9229d21f11ab6ccec9cf49dc3a07437b8baf50c4bf4f38787114bde3c62f4d838a7c4e7d06106c639d67183324e535ee4e52e5ec7110151528fc764fdb698b6bfdd2d6c3719d1c4d5ac371345882cb69e128d199786dd6bbad84633ead9d14f383a3d88ad80679b21f194c2956caf98f639d538bcddd8251fcf4b43d8762ec1d136d8aa72d78db737af7a9b63d27548b6927096e34c49abbd9b7d2901cbda000c95c9a5076d14bfc126d2ee75763467b812b7d3d6e40723d07b802a9afa1021a99bbe5efb72a0cd3dbfb7e846d63b808f3a67dc8b49d2f63898c0c5716205af43bd72c4dcb61e2f1772eec28e398db3557fde384c24ab94a4fb939d90eb1a6e756419fc537edac14b6abed94671b0188a066cc63c811737452d6eb9cd0e9f8c70944f209202a751b19d9197189b4594fd6983e402364e29228bdb806a4b59fb4dac274e0073beaeda1ef67576e152a54457722412f9b7ab41f435472fd343292c9102d95b6ca5d1822e264bc0b018e74de9052aa0b7a07ce81684f92bcb78898f25a4c5eedd34708fa5ae20d7b0ed4a94b293df33a546dd3d2f1d53b739066612215080980fbb7e8e6231da7f3b8ecab4359016bb991ae8148fed98426524b67c8e0bebd25853c406fc8531e06b58f82db92c0ad01bd20e058a0b5b28d3ec56293a6c09b0ec05650f44d0cc87285d09b209a7d2591c6e2e155fda7e22a6be2db9946e264b9d3eb7be899e83c044210d424f48760325f8239ea17150d3341189f2f8e89edea2242c518fdc02ee2a5fbb2da03b5686ce31970297ff9fd0f19100ca3ed7cdd06f31a5d00abaf5bacc309c29f3ecbe83489b9842fa27814fab0a04bde9be5dd9baf62092cc2a9d021caece4e92ec7567bc282061774f9a3bb72d7fd3024b2e0346e055af54ce9602f9ffcc0bfc75a2f41bec00c5e4d0c0e896450071e65e84b7b135248d7bddeb6870142f13993f652e41bc3427e9fe017e26ee91f849433cab0ef62be432dfbac29cd763b95d411daf2d0756e80add8d192b2403e04e040406dc7f6fe501482260f57b9d2108b8cbb8750e7c23da6053605a422dfed947fdb05b4de33c05621837a557424db19f08458bae8ba4813e47270de6db41561998e2bd03f35a925953a8f45f48ed9e2a7b99a29d62dac8c125a4d152bcbaafaf93541cc5a9aba342fcc9a6a86066a32f0d194f79b4a5417e4d02819cd4ccdb8957f37c2ee92e8fbb809d38d13bcf2fa329b5ddd839b01b8028f7c61f93b4aba73630158e79aa5ec0ce18985b5cd23fe97118cf7f07384d520f1c947382e5abc5fedeaa5d51f1c6531818b59c44d2a8d9f613774eea82339b7be421474df0097651827210ea442f798b2cde012f4f686f6ea9ed42e1e9775cb933bcc36305249f8fb526d9eb2ac332afaee46face44294186dba18de2867603e369403046dd0363c3d85a38a487d96beec93d4dc01dc916ced0e968ab76ac5952839192cf90f2fe455b565a47a73a31b73eda16e9f6ef2be4110476371e9571ad28573eeaf8dc4e3a93dfbc1a90bc84ad2a399ca17f0d8f8e9a386d52b16c5f6984fb9ed09ee574dee5f8317b2acceedca520c0bee4c2ba6e3640c2ccdfc5852ccd5aa65e1e4bc61af690af78367971bec96efa7692e6c2119d6bb394737a7829e3e8800f6177c94ecebbde089ea07f4b1c7a8c0e963d7fcfc8bf0aeb3ed267dfaa7f4a7b7a1603254a6f53bb4106b36fa74207b337a5e790b40df73224ea695edf7e4539ff4e931989f897c3ee3ab2883d56510196a69290acc4f5eccb2bf5919364bc2729c0f8a159be6bc3d808dd8c5ec68e4a43c18c8dcba812b1230b60153ffc5041f8487f40f42eedbc451efafb02920fe94457b99136496ea3e24ff94d4063a94f7ab5981ca3670cf744144b41061453bd9bc4eb6bf5df0320eb91f3d57008f24040d157c293da260ec01d9634d1d6025a75458c2955746602ab724b4bee6b2b8bca30be83ee8ea27a328a6861441482a877276739ddbee03fa5532488ace013aaa0528888093da4b1d061feccbe3fb1e4e7084f9d3a9048e858e54a6a6488bf6b614652d53c00eba4868d5d1782c7e0a24509689eff72e85e4e53322a5d2caf540f9dc93faaa4a893c94b81e87c1a6c4baaac8fedf387d88e097c33388f654ca1bfe74218c46246416d96dd24dc25f1053827b83bcab5b0f8124d45ff3ebf1d206003c519a4a9b3d47cf2e40c6611d7563443465635a66db8d8e4f82fae21a5286c7056a38600f051b9b135abc1904c9d5881a21f2b352a31b79e4a7c6455fd48db82d7ae8dec6898e2ef9b1edd2371aa344cd1cb4b2a6f9cce4f19a628e8c2293f4b195987df88d4143009017a9cc7f486d3ddeace7fd8539c7e898d7a43cf54cf4b4953ddb31b25fbd5e33f1f9321406dfd1778f27167748bd87b22a57a9a1dafcdfe98efa3f3e03c180fd90cff880c852850843099112746d8ca7956935a4e715aa4f053ce3fb92c576e912e4d052d4c2bad2921dc12c7b467b0003d42d55c34287c87c1b420845d3a9c6c4cded609f5926c31d76ab3aa982f6ea15532737869698c7578a1cfabc541b30620b9167fbc89461e03d2d578191322024bd3a8bb9bccab6e92d0ac0926206f7ff0e612a2b402fde32f7c9f0d7be73d89ec1151fafd62f8c96a191ddcd0ae14788672df6feecf3c18bc612cce560602f1402a8b8e64e1ef9747c6579c625b8383449642fa1372b37737f5a8b5f783117ae6a1623161cc8ab284050529e0f59ce435e7bce310037e319f15874c7f3852989509b472f8dd166e94c35cc184a55b7392412ebfd027d8d75884033010ce27efe776e2f9029a3f505b7e7bb6e5af7b568c0e3fa639bfc6bb9ee8321ecae1ef07eb8ae7c7b792e37816f3273da7b41f3fbc88cd1fd807d888b796bffea8867818ef1ab835def6c256e2d118bd7ef0b63ded67c1a65cc1a85315971afe41c1befb3df952144513da6e43ff8b5fc81c3cd7151557a328007746e6f7199856cea0a5d03e76ebe08ce010a600b77bd06b58a8342a35e969d36e38e261423d6c89261898aa10e9561a8ddc82e03f19066fff46f3ace4cc2d47aee995cccc116942a4a8bd0bea781d232b3539ed91fe015e441784abc9975c6626da3c993a671aef2966a4db59e8842049f058e1913c9bf043797f2afa21dd627abdb39d046a8540f51aa61b1439a0c679256662d013463666520f5b3ca468dc30b2c5b06944fd6b140b8968650b2ca04b9e0453f930c36e3512ddc26f057f7f42bc9dd8a1033111676f4900de29671f4dc5375b24f66bd1251da2c3d2430dc03eefe91e3501854fc06770cd342085b2255d0cc7964bad82723a38314780d949a0a6a96f05be156c874766b4d46aaf1f6836476e43218a69be158d12c2edc6d84f89faf098d9af1171a9e568d0604473134723e1a064d94313999ae0561e896313cffa055ddd2a06574b22bb5cfb61fc0b01918dc298e0f30782b76c6ddf3c1a7a0f3934aa12579771958885c7d062f7c027995d77d99acd7407ff0696e9f81c94d8e3d84a6be9a4fd9c4a5031428bb2fa3391946058085c6f179911d880ead0271ce1cd5644c5b03e899875706160c8284ff2ce11eda999fb7e21250c536b9d43e53fc6dc20e12d3fb10323f9f2e3bd85a6eeec302262ff7467dc08cd78ce9db74a59e2533c356336f580a7aea5d93db941d75ade6dc7af24ad2567eb495ccf82770dbde34453b60d15b8f57fdab56f0014da7a6270ee49b4daf9962456ec2da733b445bf5e47474d4ed4cb08ce11ac5c1792b8d19d5c3ff03710870000c28cd9aaaa9e7ba3bcfb0e8bedae8c09d6d2f055980074edf3128099756a62af9f0d6c3f68e4a7fee9ab3d2bb05050cb101462b76566a9ad2d193511e20a3c710438daee6988858e445ab63161bf7edd00c6148e1071f0fc58db4620423c8eb0d9e4063f09481dc22f55ac777e4cbcd4a22f66e6ad5ed13b64cf7692bcaca245ea17880bc85853ff0014b818454759e62a7e3bca705dda1544beec8d0ffa3862a3474ebc307ad589272e90b92beecd5f98d7e816d907a8df2df4ffadc5942d316ef5c172fb339a9e025c89ff001d53bff27f2f63a026c395574633af09618073bdd97038ce597a17592ca545591fe405138662ba9792730a68c8fe1f8c0f3f05b75e280074ffbf94fc3d723024f659907335bd0e89d4ad4bc4cb154bd80f388033e3de726df575d1b140c8c20b6cde54dc639ba43e111be2a32cd29f85dd8a6cdb09f0c26cc850782389e9233b30e72279467204be54672e89565532022b1e9842219c7fe1e60d0b8222b7bc3e11b406b73dc82da923c15d2507a503d2f83f7614bce5f72d14bf96a33c1c56723dc2dc04e8443078b759e388c5658b91f9991a5aaf8d2c0dcea1145d505844ed90858a1a0a6220ddb0e4dd35c7a6f9bb92a4ce3964ae4e5f0aa67cf9c91bd81cd76773540dfaede11dfa29522365b5839b43040fbcfe30d1edb555224090eff0639822d6a93af515f2610f0aa80838269e101f767364d266025ad3953e12a4416a32fead8f895d26cc258611db5b2acf699f63aaeaba3bef176585e1ecf69ce5a2d4698f2348d8600953d9f53e8f066759333002a4d0c33d585b7ab22284f7d08fe11c3c5664b18cd2aca84594f996ab466a9b92711a75d2e0e9f86d632e2ff31da6465db428021ceebb104fb0e713696643488ff4734c775c290055278093bd3f6b50dc6153c8a83ea3abd789cdf7bfc66b0109a784fd6c9e3ff033221cef8ef1c3aa0bfd934d186fc967f120ebee771fed24c67221779cfc601833351c08ca28b9e762026a3519cf4a9d397b3c9f304780a64a1905db0187e138efff2f1f765e26bc5d9479cdcce75af7877a44aa1edcd661e60604c20e321f782634899be4fc5b25bd423ee33fe041e4a0fb18727e46311d8bec3e225e1fe1c591e244e91030d9185ca12f7050aea455ac6ae22838982fc687556a0ef35969357966e451a0383fc28d5a7124bf5ebfce3574ea06bd6eae894113c71495425151817b2097ccd784a9f7e3322f5f3be2eb6d00faa2dc1ea61715596aca9f27de26d4ce45af790ac11d2e101c4e91efb800a2cb86fc1d65b4e2212e019f15bc7977d15e2a9cefc3985cb8e18b31124a4c9ecfef1b24cda7a8008e4c3e389157096e6950dfb3ce1a1a085c0630307698b904c2da417267130bc479887368bcd7a53560e22e6e19be2f32d08888bc3e5c70e7b20bdcc46c8817601ed838aeb7b7dffa1340dfce268dfa8a41f4967be1cdb5cf09448cee49ea198e7400a66d7cd89079ae01e880f5c12d4a450a43c7420a11d3b21eaa87687c00bf14b73ac1ebe1d0035ef86a67671eea01b3f6e042d9455725ce848efdc720aad13373d0d072aa3183d04ec50ac912362daa62a30cd5bb2391b0085dbed0c5ecafde4c6084e425f301da783f83e2ca53e66b83c7d8706806810b6f7ae9d424124f98fe8ae5e30ba5e58370cf5f50fb48046da2415bc58c4e7a9526ef98d1ef12d911a0ed88e06b2e9e08b5700740d99ae7021070805529bb66a5ee66db9a6871e90390b26863e3ac2d6771927feb486c0f368b0d0fb197ad728b6ab2ce3640d734698feac04555e9b9a75889dcf8e90e9db9bfbc2f3f4e731bea01d9126873a65fedeba28dfda24b2f144042b5c386049683bcaa994b01b98ec365a97b61c35437f124fc2a6a98f0d08f2585c5a38ad5dd71d2982689438132389b7c30c92529a42a8d9bcbfbd11acc54275476014e6e0012de6e002190d960c4589133d2ea280702b2b59a8eae5feb648eb6262153d9981cde99885f06aeb118584427847b59f3c448987190db1a03a31645b8c670d8fd1e317668bc793eae124c589b478e59f47a8fab939f26df1f294eea96013fa8727a53e2ac0ad37d743dd3373c8bcdfe5e9f9f7e302d9b05aa1595462196d0b67d065eb94b359bd7926e5b11b05f835080633b00739732309cf74e388e185e498b62cbe03917f6a203c7761342c2ab4d3adb5501667b9cb1a8c8ba67670bbb06fa085c14537185d2fadad075736444100f8b8bae33f68e4a8e71fc1a95a12fec2a70e73bfce841b7e4d685b47bd610ca0d2c47bc15c6b6a132a241627ec017a0ba0d838e1b1a136f3434d688d972f43d62650b7ed6ca9833f168dd6fa95a68d14f6bf56f88bcd8a057a9dbbaa77d036141a3ef769017a725f173490f4bee458547dad184ed911bc0bd6b156d1d6bdeca575ef001987e8b41d08ca679aac9edd88cc57590797413744b1b335ea2bcc932712a019ae916b2b3a5b61be64d46e44a501b2f1a2157e6752868b9e5a150a84612c4ae3ce19fc4d6885eb57c9067096d26b90c6a5cb34f35856c6b6f1d15e4ca849e62421681d59a8b4e5125f448e5bc424aec2ebc2f3e6ae6218759757843d68af375f896d982a3c28a5f4b2966238a8684fc571a707d4ae158c722164c97b4820634168ab95beb11caa5fd4ef2289871683a52764fef0ccd7dbb5f8f9ad119259d82912ce8e201a70b1b9ab599be339f4917fa0312ceec8ad15e5fcce601fce6cfac7934035ae05a415701605c3aac0fb3339a8db34e91de284974a583d6f3be8ffd377e7205fb41e58d06992643add80e648379b78b17e58db730ccda52dda56d688c9aca1b1bbd33d7f41dea817aaf941b4bc5decbf027ce3253adba1725e519ee77dade803274308d6cb59aa434711b07b998680953acb2632c64d2610141d0622b29ab606fb7a9f9c6f0071f7ccf1aa42b8017248c6cf5ae6036e92b6f70467ceaed6f1ac95985444baa108ee3f3ad5899353426ba279fdf423805ae5c3c8f5c1e21abc116ca83dcd5106c630348fa40e4fd292f71e61fb50c1c6157d1e95f80395a8cd5a5537b6122fae61f86fcd1d3e04d026c7393ad865fd15516493db1c8857fb1ed5b595c8fb96832a980618f35cffe3a442414287b9b05fd21b188442af614c02945be387af90854e8a9273203216bef193859a0a0a98fbbdb508e76511f492d0cf4e3df2507e8a593d1838d8cbadff14655e470768a9c15fa5fdcfeb36ec75fde8cb69930a140a9274b670ea49ac9f073b706c06de5a2cc7c5ae473572652591586ad6dea5cb5b1d432784ed0a6a17b192883332bbdbb203077e4bcb40e45718a5e1446e33b981875be32c36c995c7253bf2fb764275f44a47cc9eaf7daff7ce16a102a10b509cbe31848037549307de3034912b56a935ca751fb0798164d7af50c168140aee40be60aaa613926acd97128d1dd006e0ff85b80a4c985467dd18647821cc3875b1958ceab4d363fb393e87bf20cfdcaaeb2223a559fa395749dc2b0ba93655011483a70ed071672555d0ad221c7c33428b84054bf9f2f70de709742d08d3cfa1b43be50fbca982a8e2ae2dae6f5cd6e995958878669fa10fa5d7ade513f02958b8f24a58eb86c74439ed9b136c81c49f0f20e780e5c7eaf44dac2f80bd46c4ea43a6d997223bd873da1def4091b17254c4c94bd7aa6fe717111f2bf98a121b0b2c5a3c6820d2013844af4037e3bfbd22d0a0042d2f79cbaef049cfa9983a1784040783b3d04b941e8b737e6698c4ed273640dfe8da2f0b14ec81c215e8aab6b830c507b69ff4c947f120e123aee36ada381a7779162080cfa5f1a1ed96b1666f94f86702da1f995a8595ddf5a4f89f48102fd2ad8963082c3d044f3231357fe3403fd47ed634b35ee89a0a6e5bd583f22a35b4a0cbe5bd7af287f19641892fa561216028f9261b458de25844d48220d7ec37c4c14e6a30c0e3ef1adc0acf7d72949dd52cc348b060a4cc87bdd978285d743ea51fd1c99b62c5a35ee71918ccda3f5b4cc9924921697ad02e1de69916a1a2318a78ed339d096630477c8508f802dc39ef38486bfbf5789af31020ceb86dd0e619ef1c4f3d96658cbe01bd53d2fea7cd987f527a889b65253947d5cf5e4058c4e1bf3e1ff004365dc2179763da0707610d4b613e9b2cfe7663b2701f544dfd86211e0c2a63d3e8e6077f19011dd62898e7aec33cc9da73070ec48baa59f98dfb0ec150d20790bb8c3b4460a3135d42d832a439d47d798881cd4971f1133d92c340b6b1675689ecf71524ceb309c34a104a9a65462f75b579fdf8650c8d50f7f29dc42b35a8026e1d011e1c853b2e684c921bbb632fa277b36e88323cc2fdd6218507948eb2192d4db2e0a59cd8f3fb0884c901b17c8ccedaf8a4175cc271379230a9deec97f31943e42fc91b23da8cb53402afb86571ff044c5ec2a8069fc9b60c6054d7c562e12ddd94a177f44cfea8c22bbe391c183fc76d2336e861958b045daa12ecd6c898a509dbf8d9c24af344ae3c57b467b6c401a2be870a08b7b8e0563b5ca42c247b570b7af6e1a324287dc660fb9014e947373ed6ccbb00e19ab21daff9f80f3c169d6b11c9fac355fd452cd91bea5c6ad2b3aef9c46594aaaff351848ddc37d108e6fcc8f1c90175f9eace2b12ca0d99b9fe211a7299dcb7f6b6526724a60c2007b152a7e3ff735f8a842749e2096fd29711be40084106dc1c917c615b9b8215f22d6f1950fa9cf23b27c81d4a2097880be0f49d7a84349939e50c2f5ea8e3e40af44909ae14d3447d148cc1ac7ce6c906b0fd001608a38faf8ba6f269912706cff25cd6aec76e0d7e219056f2560590255630f76029a0cd7a4271b3113f023d1eac51a65c0df475f2dae8f70ecfaefb6ab79f85c9f11bc9c3b3435b358093f09960004246799bcfd793fea2d55afe3632d29ecf7d9d4c924b555b6b576e27434583797e1ab6c4e0342afbeca7685be416c17ccf4411e7ffa8111660d71e9604724c30408c4c2340aba592b2b3c9d0ef6d88b85f6bdb84532319c72f48ef3e5b953e2f30ebc3e53a0a2119c0682a2949674584660cf34552750a1d85cb9d5a2bbc4772bdd55a77d3bf1348ef44b6b59c1e3d078d4434fbb02df21454a212e2bf50480b815ecfe6cd9d0607953726c92d4d0f6c4941006409714e94aa8d1ad9c97c24e7b25bc967b3f0310fd332d9feca8b8b36a1dc465923fb522d026d5a8a8524e94b01292e7ee024d8f8367387698c8b88e4324d594d557a2d02b2f0d3678d4482740b18c210369a9365c505ded399f5982e03afc12054103874f57f2df6768b8c7fd2399651669e6f5f1de47d97f0fb0f23d5fd321881445aa37be38352f83375a7c5c4c38480526c3077aeabaa92a6e7ec05b5803a8c5ed157811dee6434884b062cf127a91d2d615460f2c162808c0f79d1d60a6027efd3edd17e3f9952317033a70ce287024ef58f9384b6cf6042940c92d05626c208fdba47947e055ba8ec37f45cff49ffd1647966f8fa94188e1d206c43145db727034d7004608e4ee06e3ebf535a7661753b1921aa4ec69a041e78991a579a1aa72856cb8258f7dbf4d92f99b680855d0d8421bf3f02f6927362a12a145fbb796e7a649b59ef8138e11c97cc28caeab182a296f87200bc889035402d697feca682eca4c23d16c7b2e79a50efe13cee3496226b31c5677cd90b503c505f7a62eb65a0015247095a471603a3821023ce309c2a805b636ac81f36176a5fb2f3056a56343203f87a66b6c361c0c9405b4ab9a42d3117b240b2b588f9ff29969d4c853816e3c0b6897137222e6c28b37ba8d8bbcc9aa5a0d482332aede5f109ea6e996014eb2e67e073a4dd38fd5bad5fc80a9df92785bafd12d38ae7798483de397d88328a0100911c9d89d9241c5e4b56228b5a3db425fbbc72c0f4ee7f7a07ad93d0cbf47b0a81dac43273c24601f6cc3cc63f53ac079b0f2902d13fa1e383cdd55645247311ce22d40a7d1e53908df2f2f574a2812a1c82c395caef311e926e10ccbecbf68982c2670c774539c8aa1efbf36be29106d948f22004377ad6f5e1b1ea97bfb24c274978176b429656f9580668ddc8f2fbb294b4a51b74bf704f404d1075e57ba284b03e8dd65a2834010479b9d8dbc17cd6297984fd77b23a18dde4c2e026317d74e184bef88bee491411c3231ad0aaaeec108ec1981e6e2cda2892907fd506466ac3837fffe9d5a5930d6af9fe8407aecfabc77400495e597f71531a1fdc2d27fa80baaab8da12fdcfa091e4dc558bc5aebf96c66428ade1d4caa3d5eb071540fa2c541a077bf2e82c7802531ea98aab6e4fe400d7394faf3d260226c4fa8ee3c49b2729c15c560fe32d31fac54cf160dd4a8dc7eb9366a1c7fe4aff67b00b04b1764c7219618a988eca129462db43715266d7bd9d6276ebaa760df5c7603f2168b2ac9ab2d6123720e09212c0552e2f838eafa3a1a2806c19840c895a29e0edea18a6219c8ac709a0a761107cddce1b304c49a44270de458ced617ab7ec860e7636b5c16586ebb0902c21ff0aed37a204ad9e6bfb6e75e48d4423c114a31f0343d7e1c4f0667cf79b34ed7a612366e2f27fc8672e5a116eb021bd4df7e8bf608925f7d64eb724f5f6090a298337c594d07c17a38e1e6538651879e36903a6eb551eae0d9df83b614c5b12b203a924cb1262a0edd41bd7a40ac0b43085a40e6a56964ea20e79064e12dfb8d7855f4e719cd4a324f3b4badb7c324ff3ded33fa46f173336d9c411e478e288aa43c036a6482b67bcc567fce846bce67daa00e5de0c7962983bb01bc9121bceb58408980a44db24afe2e58dfc8e3a4a17e0bf87b2ac2df3e6ca17c2f2645dd2fc6acfd24954360b1367d40fbcf95069c27ab81fdf32d8c0d28975213600f6bf3c66777ff9f7b86b2060bcc50e61d201efe144dd701a880374c3000c01b2f49500b4c7fc3906d5c64d8d4381c92bf5847d3d6216f71257ef17de4d26d7c31b3291bed6653d2f30e80d052e8b89ae45f2fd158f643363d1f0e95b22a67ab32caa453886fdb00cb6b733b4ddceac7c353b82c9be6ed8e8af79ec5a23cb4c16b67558cfb4f841574f1b78c25137de7fc19043480b57f3fcc2078ec65850044d00f1302d32cb53f424f434699337f20ada8a9459f51479586b34b54371f83e4e72a74839c55ab38095481b938a34ddcd78b7f3658edcac52cafa783272bdda959823efbdd1fd2626df0c1784e5d47d8dd996b8e021421cdeae1fa7444abc0921b84523bbf881ec8df0b54fd6a00caa0bf7f9d9d543a75601618680e6c6a5caa11bc4905a59a8e2a8de5ece7aec6ef06546e6ec6a71a3e1ff637f1be276d515c7fae24a64cd7a8ed55dcf806e448ad6b14299f84d8102488d84762e5135cda19b32fe0c89c611441b6cd0cdaa84bc40b682ae61ef32b1147ed8f0ca4384336c4260481aaa8978a4761fc75c5464106f5f1cfa4609cbc9b80a758edfc5b24147b3e843bc345fe10f37a0cc18a955d279061708f0e943007131414fe7276a4a622217a7b577bd7364b0913ef278f5357b077d6e36e4d04332d267ba29be50e8919abe9c0831859e5f51e34c024a473afb6c0d417951a9b97eb2601b46598be88c8de44a39d72d90818bffd3022ae65e18a251a4f12b28ed2d43bd5b22ed2c607228d9f640f28d4547474da4948c10ea797a21784692e6a860732d812d3675dc3093d35fb30570041118265efce8b29a895bb6463e3307d23c7c0c02b81686b983227452584884eb7f52c5a695b6738762fdd30242afd6ebc808202fd6832d9b83d84942b84dbc9de6703d02620c97ef824a2cfdcc7c32f43440430520f5989357b00636aa0a15e49701eea519d6fee511c123b566faa99624e0055a23ae0a8a635872b308bbff83f386f24078709ba008438c0223b6b763284ba5ddec615546b2ca532871564712b104932d3c5b8a19392b5b15dc858d01f31bc90661355b7f7cb3eb005700bb2a5d8119071521af3a2e22ff579490a06db646fd8161f91bdabca0e3c2c0c2637bd3720030add074a3b8ec0d05c09258b0ebb5b2529bac1ec0a607e3c325d04d1b12415c761261eea2bc935f27ed23cc8b75490d1621081bf6d454ab232548eb562c4ffa553714405ca1758ad990128d4b71ce1eeed636b2f79196e3fb6803f2ee00d781cc6125aff2d562600335537e8b8575e1abea4e8108d11114c5bc66deb40a19b73cadcaa9e9ecbb81b4998bcee2873f5d6346099507bf1bf2f2933809e64a347e7479f516d8c1c8b4ea08906391e3889ba3a47f58d88798c36e9a59f4e3d88e6f46224312ac58e3484a745eee39ce1c03ec6a6aa62b638e1f3eaaab70fed5aaa160d3eccde81f65dd108ebdc303a01dd6baf5153a562b3a097d09938645420b914f0c8d9d3c4fd74655e17b5dbd689a23db0d0f9c9c639cde1f05d96d7e95f929ee44aab9a258072238a3707dc712c06ce00fd21fe01400881aa5f73a94605c17cf90cc01fd28ba799a73dacc294209f83cf244674ddda31265d71b9e661b4736d449ded80cac69cb3f7d79c2cbc125617cb1a22632d287653fb6a9555981529d60a94706bc6b9a1e63da25f6bc45d86a131762eb033f5f557c70d7047254c08b184948467a9ff94db1b8f5616800c746a65985e82419c8c0e3a6d7bd0d2398731c3184bc5fbed9dcd023b42f2a2798cc900fb28388def3b0ae50bced563d95a1ac16addd70b7917b688fa8e72234d530ee22f7335fa0343985d844f41f82a4f35530bb42b37a3ef164909b7ac63f183fea32d68b622cc99032f23bd15add23dbaba158fbafd8d5613236a55b103249c36f692291e61591c66e2910e281c842b6eb1b556722a1e8b5842269c122ad9aa0f7210d0369c3a3b8c73aa41dba9bd61c00ba80b74ef6e3f45d085f5c27e5a5a21830f3056de8baa6783fb64ed978cdfcac1bc43dd761a418c126f96a1a0ea4f6c38f99dbb0c7a35c219486a87ccf077f19148a83c53708afdaaa6eb38de2c6e1c272196163beb3c3af2d4a0da1ed015d8d995382a4b00d324b8e071742db800e5a8632cde251d3ef15b1acb3dfe49de1db5861f6d381f11a81be134f8a1307b1937828433ccc6fe2037f06f294d28ebd1d82e510f0af7473731a4c0dbe7696070c40841e57022ada9b59e37822ec9a82b1763a0a13bbd83241a9f4e69ddecff6d3e84e648546354245b59483d1310e77572693976793bd52f5510c741ab37be7d32a083cf6972f842f42dc7263dfbaec95b9db446b0eafd712d4484e6fe88dbd8a857f6aa47319db68602e2ad65e21e0a4a6bef85d1543df1260f11a95bef604dac71d38adf09c10897233dadd28d0b76f725b095b4734d49890b4fbaad6c6113857857586b586ca3908e00841971010cceabb758041216c8aad3e92815154fb72108a2b48934fd2e2ea2e2c9bd897e770f9c01fe26343e01519f86291b79e5f94821a12755b82a03e2c01b80b4b307cb20e8085069fb1d2e146403db43ca4fc649d843e0edab3223ebf40870a71ac695e093d4b9acb5fbdfdef38b1d5eaf9d74efa1f4e12d3d6d304bcd5e42a1c80a687dff639481011a5cb260d28badadbc207cd53723c768092d9728f39d206c91e57ffbb89305cc9905194cca62a84e259828ef5a3630065be690e6d0544342e431e84203c4ef0f56c7465d48c8fe439eeced0089a2688b105fa7b1405948885a69278b0374694720df2893e31774a1374c89a0a8d612753c70cf36d08a98c34d4e70591053309b405ae99847e7a81ad2738d2df87bae87a29f151ea9149c0812fb3f631976c73361fd13d18b51be6aae247e7a076ddb81ff0ad53c25eb76eaf816207ed0f45fc6d869078b4b921532d85f862f425466d13925126f1cd1586f91fa5467fd0e770b9d27bded7f253d0be9c50d24505ac03bd1957b9bdff349ac9430d582f86cfa45206d8abb2c3717ace2210cbcf599b43415465488ddbc0db2ffa296b75aa82bbe86d8142499451d9357161a8cae7f09dd69d98097794ead05422545feff417a49871b8f977bb4241048c1bc2524954d4149ba3e7a70b78ce9c6aa282130551ee4c5ca96483b7137f31ae1251abd34e13eb332685c76925654aabf05e09222c689739de704b6e984ac512e538dbeb781c7885dccb6c5f216a180c88d69d1fb75d15fd2729a180f8711cbc8873e2879800fd4af0c34d5d2555ccc6a63f2abe3bf919f87b404f231001f963af238770c1f4b069fef70fe29f96c2b636d52550fb38468a0eab1c2d497fd2a88feca8fba369aa3997b349169d856c658e1a19e6a0ff6c33d34a68c38d4731166aed9373dd7070f16a46da88a1903bae14fb84af6771be9620cad24dcda14962e55f48c280714b40141bbc61ab562d5572f4c3d97f9c1fb930cece97d4baffa3ec4dbb7d4c119e80ebc4be908ead92a9fae04e73c26af6b2e2e641d307e3c732b2adee7a4ade914aa0e9df00446eb061c8acae8cf48c04ad558fdea46a8de54d7e0616cb0db9ecff7608f764a931a95dc337f888b459dfe696bd855b743dd11b83e69d9cf4a1c2dd41371d93270fd4134088d0bf1775cd7a45510952634da4e1f59e3686bb6cde0453557997dd4256d146a8aa0e05f81ae23c32196b69eef35e9c759644e2a500ccdf3306a9892acaef57947c4e9b50a6bc8eb98e8dfe0bf5536358c2abbce855d93a0403b48ead654a4c0f3042f254557a7b681dad5458e77c352af9eb850b5c7b44761757661e3f1229be993625d51fc1d6385ecd51b23167cb878a5acf26df563159e9ae568162b17b3c2a0990417435a7aa5089fff4ae587843e845c28365b2758f0af20f48c6904237f6dc9233131fb759f500c1644ab600bd376970dbc8321b9dad68d3f4f99aa1e246411ea7809d75959634ce504ffa6de11c7dc64c2eb4ee1e21e056dc5850161b258a417db9a5a71da4e8f2863dec22c928be4dc0463485fbc9f67cc43ce1f5dcea077d9ac5c69b474f178d2b084a6ac97b4dd02ec796ad1c6678caa713e7f2373185247b655651ab0c34911d7b64feff615531e634928f9f150673f04b47e11d627b57ab18e94124d4f8be9dde459df1ba46be659f9fd5db84d2274a8c8c728dd827d33965de6e2df75ac00833235b9aa42e0570c500c7828085ca41bd9284de2af68f196ae8e18eae940ef2162dee2e631df0514b69321dad69326ed2bd902d81535457bc930a73bdaae20013e028daba897b81b731e967a0d3a1912708e61624305d89f8c34b74c5dcdb31a4eb2bf0cae89986312455cd75a64804fdb4c3236cf5936f31a54e87c9e75c700c6faa3bfaee5961a7720b5d6973efcae14e23bc457ac43036b60569a81ef2b4003dd854efc74c5785a7c4ab6bc5f9e5ace191bee308ad25d10019e50149f7c9d5693dce8b2817e35bae2ba2c6e6cb5d42f4eafc4140280e25f895ba6c4758325a6eb291fdc241e7da5222d4d5c1b134b0fc6ca38f33956abf4c00ff7e1c79c145ca75b10736d73f11097c8261348a96b64dbd129a7bc21968faa6eb8dbf3bf3b26249c7aa3927a1b9ddce78beab43bff4f2bd90fc57e94ff3167a5988253f5f579413689a06a26263d21f70e4ce06b84a24d06d6fc0739142cfdb8cf4a629e3b6f3c6c8e5e21849d137a329dc03927cf31665a5320359e40bb4e371b6af4a435e548989d3db4529b8ec439521a5f5954025b89253adafa10013bda88f3e083df1c9c4a514d22313cd818459d66d24f8863b61dc4a50ccb8861d0526ec4b11177842f16771e15f96a80cb05e564f9360076ccad6e3af401943d3a531966baa161c34e31adf27441203d05a6b2cb88ff27cf99fc5215123d89755237b08af69b8fef629bc1fa03b97bb9c52cfb88ce6c6d9a9cca5815e8eae9a9638a01c1424d34da43905dbd9e68b6d03d67bbfe98e8213500ae20398d6e903fafb3703ecda48647af3e2d33f1e24010fe90349a0806924889a7c5bfa4059aef8e2eff1af0c1260649d465e259a4b7f0cd39d513902d3d9f931b4b3e7c21609a587b55e44180d41fae6bbfe8eb5c566b4e4b702a84c295a9b1bc8c22e45a793933a6998b1ce024bda2c86539de0ad93670549f09d5456b482d62eba36b2628f1cf865eab1b1efa8bf2263aa81264812523c8f2da682dc1eb79064fddea1a20e7aff443f761e51ad82473d750f52c1b8397819f2d6aecf48977419e38abd37b5a8c243ca41ac6652f0efbeb117eb143b4f8b94dd5fce95a1542af1777fdb5d68a25b00d8527c29375310535d3270637c226aaa310c9f53ff3a8c6a1ad26f3551929ed933e1453284d7424c5ac883d70e556b0c741b6fe8e717f53f53956c663338e5e528973726c7c7325cea2a1b89e391c6f48f5a0aca1f91132e27ac6e43ecc99abcfc139d5cca704195bd2625a7a521c068cb90f63b82ed7ab04e7848e2ce478574332037e195d7e2db24f87fd9f4ff372b8dad7b4adeae58b4695174e137430cd8fe9b609e040692e8210d45191193eb4bf7aa93cbebe58ec2328e9c17ad6b145c482e558a431abdad1f22114a921a43fc4cf15c0d0aeee4d7daa00cd44b1d693e1b80711d162fc13e44aa5995809cb8bff3ec6d6fd2fdaf919d0997d243e42f7c198b075cd2082f382ea76946ba77533467c10767d93f6050c53101d00f9942acadd76abdf8c8acb47a95e107b1ac6ad2c0bb81fc2b095dbc8e576ce34d974bc67c309c2223cfce41e668ee2cbaae092c8579cdfcef68d129497f905846e1bcd471716439e7f652630b42b7be0fd0af9c9fc2e9d79202693b1c82fefb91c1aeb928075af4abfa52f13055ab0784f3113fa67659ff901cfebd0d3050b111bb119c7c2bcd040bf7d4642e3d5660e95e12434db96e1f22626299fe0e4465bb8110ae4a3ac50c06bd0ba3d1cd57cf9f523ecbd085a18f84fd4bc615a3e863765ebc65f0cd9d7dae6faa1a9a156796d1eb9219d6fac00d2e1928db978e102a2d7c96c51e9df0ed68537fe24ab6fa3956e0d8708eb6e1a78bb43c41560595c1fff1050b61c5923069300aea28789b295a3e2778220d5827123d1067c043216c315889da390fde6c1383d859172967865adaa8a0c0c9e54f90b9bb8bea00d44c6b104046edebf44e0223dab5f5e065e795c3fa076a9714af83823bfe992446c32205df62019890f62b56297ab6b7badb3c3f912d92be9f5f775bdf737026efd71f5c20ef52ba7fed4335f3e7615d00bb6d98bb6c5d6a10829478fa3b0c351772b1db3d068ccc04758eb970cd50c10628da173ab7b4760928b8575f479f6d086c3c61ba2328a06c440cbdb46d905a80ed7ea01f065f97ab50b9853f252e1cc11e96ccfe813b67b3d4c01d8e44d484e9c041db0d9240a8f37be3de9410aa4f08d699bb50beeb1527e921acbf0608ff8e60cc6f6e4c9ea3ffd2124a01c23e8e8c22dfdfbb6eff46afb2d2523592311164c95f4bc36f55094ea42fb46c3a0111bc1d170d5640f97a1375f040616f3b8abea25622b574892c34d09359b29d42fd923479a29f89f00dc85005ee0c620d6c1692b4033a9b4d8c0a02e186c451bb07b5312bc9bc2f7859d4ee2743b7b8eede95c040a0f61eecc231836c2ccd16b0d960f9b5cff52759d3f34f7896df2156a6c7fb999ee287147967d99b9c6be639469b0cc2164c2887543f87d66a0cf9ee918946d7ce05d01e28c0ff11c19a535b3402366204a016ae7b5522f405962da088a1f812a7863b338c6c0f97f94c385fda5de018b2615bac4dfb598c219fe54131888a352b3e766a085f709ee4397841c7a648175dc0a948bb199833159cc62804e7d3c62d204de6927567cf603c61474b512398d06e8a9e730d7c5d94cd51e84e6d116e54ef4e188965f9376183bdd829605727ff265b03dc802389b8ed69018d154771f0fb6537817665b44085dbf6e37950bae81c5a8aabea253074de2f14c2e060212312b35841c3265e6b10f1c9c19bf58d1e67cf955e0da7a2e0092c8771486424fc8ce7168fc43cc8369dc5993f04ac91042b11ad7425ce38372bf1b74eb971b4a004cd9a33c47a89c8a3aa6bb41cbe6d4ea7fe839c2f27083634ee661110aea33699fb3866a124dd956bdf3612d167b7454de6ac16537bed5ad3295e7b556318dc0a9ee1e2495ed51b634ce8ff39eb84c9f2d52cb2bf23abf8d49472a7a7646e188f978f01e410953d545a33e075047e460cf2fefaa4b4b1c627d919081152e752250e64bfa9571bc7e1c625a52ba35a110a3adc79d0a2e57179b6a35de2a4509630788ed70e1c634a61e57676fb880f0b052ea41d194716ec05541d781f99f07e82e5974b6661b29303a70c03b4fd6647e7f5151c8c4fdc618af6e71a2f44f9418e801597ac152f8404c41f57fdfa96f771bf943e1a48999fa49b5a0c58a25e1c2bdbf87271e5ae249103ca54cbbff030a9f7ba06b62b09f25d49d393078eaadec4c9d52233fa5678248e3fece19b50128713c8e561041e1d762902438d80e4feadab033acc43d92022ae4fc2b85dd850a2d109e6e57d543e1adaf65444e0837f86c788fd8130186abd6e1d6586e74afdbb8d80e3f0ed009e1a9f2cd88ffb03b5bb6d6869140cae4435840b560b87e546290947eaa59e7328781ae0716aa17a3cd5011ecc666b9d909372416d809f723b679ecbdab706c500acfdfc858aa31eb4124bc8363c6f370ca8c27e2a18f4d3172a920edd65d210253bb8f7613c39c2b2dd069df91623d2d04bc967189e1882d852ce53d19e4b47ca6c07f5d56f998c9eb451e14fd3355a5c655bc0075975c9fa2cdada6bd0a2fd830b3b622f15b2318991ab51513f389e0b55c204dbc7db9d2c0bb108a58c56d802814b3bcd17bef9aa588c66ad3ec6495f77dc358b181ac420cc4ef7687e3da0e97330f64575396a1c19396ae78e4856d81e1ae35b7fb61a1092bdd0527176a69c5b0bfad101725ae297330060e7028fa02994bcc2fd138e1c323ac41427781fdb4f3f5eb19e437afb9ba1cabfe157f9305361b4df90e40b2ee2ae958c487221f0f0852576d3093a775b0f4358bf802cb4883ac26fa7790be0ae171109f4565fc8cd23a902cd409e0946dda483d0aa7a840d69cd2aaeb8032aaff964a945dd2c0cdb70b2a627454e70fbd6e0ee8760707bbd63f6df20b2013e08dcc2085e1b1bdafb44d8263fd058e7e5aa220380fa1088a194618888344d99acbbae5ebec6bcd33a861ce74c5e2d7e882a8391faa0611dbbce2937a6c082c73af0752205278318f308138c3afeaa581a3217366826bb86b689a51709630c179789df9a7d35ad89d3812ebcfdae8860345c6033a88baacf41951df347b08f79c997dc8c21b1bcc616e6bf098c1f297b4c6be39799f60e39279e8ec8dbf07bc5af9ea7d4a7b10e17871130cff9540cd37a29c44ad821ed3b4bcfdc38d669760b9d54c53dee49f8362df34b982c138653cd8dd64bf315cc5084113ef13da19047c7e85a4cc5f31c4b5a44425960320d8a6a0d1a4dbc2fc8425d1cc2dda820a867beefcb78761f4ad5d3be7f798043f6816abbb84ff622545cedd8d310b69ac51c25308f403c2699de846c2ab67b3292aca4847c8a7598d19c5076523f8cb84a02d80c208cc97422226b28139fd22b4b6c15ea80428d74cd9f7839cca5a75163ceb9273e9dba755729ea849652a3fd99e1c7754539e1375109975607c0004145bb0aa9072ef7b91d0eac730d80529d188437f0725f6b0189aa849eb25a2501a1b3777fe6206337fee3873d40d60a00e36f157b17d362858c007a1cc0d11fff6f8df2b2231e16b9104b061a0d2a8d43d29aa57702cda37aa142d7790d6d78d12d78130680041dc6399df703949b7436dfc6617b0175de5a12c70541def2c2a15c2662542859a3c9d2d2cf02d46b4ef763e70f0965703b6d421e8982e21370fe95e47867bac880fd03f4fd83539a958cdf7f779954a2562359cc7b2681d1f938a494bb13d0ae9eb6742f0199f681b2614964fe8606052d9403a1f8ef2f7139d431c71c2b33807c033db15dd7d08b8e23ce4bc6a3000729ba9c151fda727450b281b0118ae7294348b1241e0c5b1450ef098db4870d2fa013e4333d2a8acba8e24e3503caeec4d57198e565cdb4fe16335bf1e68817d2a05e285f05a995eac837483ea2dfa6451d9b17261f90f873eae877a12d383ccfc31cebf953cf6fe4783bdc1bee9ca52348f2ff9bb3274a47f6edb196927c254290810e1a2868e9d140cad82a676605d3cfc1f6f2bbd6a4b8dd591232ccdd47ae448e022ae93087448eab0e245184cf5c99ef42a36853a92cbd74d3c5992adcfbbd94fcdb131e7952e4fb74f91f6039c6c9678b656a057f1cac4bbec0f7e04fd6b009ac2e0687c72e43335c63d852ba0cc6e246be3f9c772a2b9b3c7e5131c1de370dd6f48eaea5d90b84fb093731a083735e435c280cac2a7e2763f28302dc407c017cb571193e94c89068b3328a3c75c88edbbf059ad912e467ab6b8380a81f38bf56cc547e8d7e05e597bf03422f4e75614c881f6bd1b2122260db21f92a855412c57e25a8254ce6dd74f95b65c1ba73f1138450549e3c287a4b12460ec393aa655f9d1eae89976e0de8e9e3f9ead60dc5ab4359cccb042a826c561eb77afa3960ebd266e92379a6e724727e4b72082768024885d89277d9240f97aa05f8034c40a021a4c91435d4050b29a0e112f64e94577bb5c6827b513ae13a1a9ce88e6027405f2d4d6af142e88ee35cbf91abc29620b0fc8596c1c76d0f390408d983f52493755fb2c7ae04b033570e1a910f9153322db287efcd50a47535b22e5de526e995292320404f9034b041bdefc218431c81ac3d38d7ce6b21aab3157b94c465b2ea3ad495bf0064ad7aa25dd981042ed214c02520a6c385b17330318edd128cfdddd674c91666ad665dfd1960c0ff72bc1624ab05ad45effcbe4e0b35a63ad166dc9e8b85f095692b5cd3767b96153626d53d43673066fe0cb6e94ab1da185f945a675eac71225d706714c4388fda776fbbbb3e4edc4c91c35b4e179f26951d60f77d40968fcdc2c4749e5fd95c9fde5ffbff5b9b9befd239ab4b28bdb92634e3cad9ad4a7541677c45971bf124f0f9e128f52ab6d62d7ee43ca9325a594ae28af695ad571e47e95a7b24810c6e0b2fcf81471e4e925573fca9ffd71f975c9da6cc593fd57cef2ee5d4f683f4fa51b67bca516e743cae2ba4da8f3b4dce53e40414219d631d9cc57f43a8f8fccc624b261a3895e2d1f1b3e401d2434249bad9ad53c50d6ae16cc07ca5cfaf8f8f8f8f8f8c45a4034e80a9986f0cb238ab056abd56ab55a11166111168166ad56abd56ab566ad94cc8b619889e8bee050bffaf57abdfa0585fac59a3df7a32c021cb94cde8ef33721d2933fef4d6d131f264b916bb458e417a32cd3183691c410326c2289a11c4f32dd1920dbe4cb63464fae5a849ab3c8e05933c540895ca58d4ce092174cc9b10341671966fe808d27979d5ca78d27cb825ca98d279716e4ba593fc94c0c9b580209998961e289cb35c8b55a3fcd0a2d24b1c850ca0d04d6f4b4d7c4124fb234b54d8c8c0eee675da599ab2cfedbe2c9cf72d4ff4afbc115db8013bb939900872bcec1e1dad140a4310d15739df7cac161cb75b0bbcf1bcab1fb40f039e22ec1add8e29875d91eeb933f6b04c8662aee107d62fbe810c772151d32a1a36f4fd6e5a8c7f5e47295d0b541d6056fb4fc9816ddefa3b42e1a343abbb540dc5a20d02642eb82379dad0bdec4aa59ebe23a27c231333cdcd9dd31c36c5d31db635d3178a3c4fd6893727731e8c6cce1fa2fc0108b75036e2c10bc0254592122eaf1d3c89f7599bafb6c91fcf86b89a8d87d5608c9ba7e6e0af6c49d76b86f5df9b18cbb75d99ea3fcd8bea2b42a86ccfeb40d5c32448f5812eb93df0ae54f41feec507e12d0122046e4cf3ac96f81f263ef88824c6856d436f06594ff8ff2a3705d2e48904c1f48e08c1ae9c1480f46807069486847b4234048dca9e2309c59867805b6bbe5584897e49dc7e4ff7f314cedc88d61b9d35dad5637e0d498cacdb070fb6e2b3f2ec025fbafb8ecb8a3ca67118ca8aab8b3e3584f3072795a9f397e6833b1630a6d34682339ec1ee5adb89fc7dc88e28f15b9ac6dbe6bbcd196d039dc9bbd6d23f33866cf9e7295a42da41bce9d4824dbf7964cf0e2f3d2bae13e9fbdf47871bdf478517bfdefb2587b4d7482fbf92c969d68a86dfc89fc5527b921ca894cb704afe4c63e83a85641888325b178f702e472456552a5ec10f83ba1fecfa569cf29c55e61758ae5e9d12a98552d8a921dfbd4a31ab3abecacec3c6a3fd0ffb89112ac8908217e78015769d8710b271a815c8931006b5c95818872fccac2892bb2ffdc1a90c8d49ee38f2d5d602e0861c486116c16575147c7540a28386492aae10252210dcd311962bac36dfcd1d3f77f94d655e4756c2fe50bc8fe5ac9e01d43e88e0384907abfffbb430821fc2c382897aab4be6e3758e397c29ae82a0e87089713eb9013d0a39f1d9945f5422965ca8694b2d3a4bcf76a9aa6d9e024e8f655ad17d26b42a1bd1a737777b7264d28e48e388686bcab11847618631bef22be5223ed208e88ad14b7318c38268914b6e042c491a755d107580c3f72728cf8e14985254ce24f6492618ed875bbbb310a55513f40f351970b6d1331ce8427d30d0d733fae0cdd322b481c71c436e41920964349828632cc2fc4a01634dc7b5d85a1e7795a8c1a36b5d72d717bd1c39f873facc953108a61fa76c491dd77b43d282ec4ff33277de979356ad4a8b1319145853435b692db301e6960d1246ec3fcbbfbc78e31469fd29e577123f618ac890b71e7b21cf4f4e4cf8485f4811a41f9971f53269860428a650a28b4c7648267da1b229bda8ba78735978b0b9744d1d112dec02c5b6c7b331842880c937c0ad3cc09e74fede5c72837e20f0f1146fe6e0ef35f5288712af584512a05a5e698e0c217751c3b89e38a852396d244352c59dd1d579a7456bf1059514714d99c1204b7831abda67bd4349a928191b7b8802a2161136249299d543ed6a8a4536af25f2cb4cd672377942ee816422d8ea390a7a05086f263843d5a7411b2b800b824063991dd630e6290c95de81734ec277a6790527e0eae23f91f83fe93388eb1b6316a55d44168491049b2c708840bfd0892bf5814877ee8c85f74921d7ff58ecd22710ced3eecc2864dbe9d4c8e724c654650d3309c53ceeed3e6cbf94dc201610f13148bd29c539b5a0bdad4a4cd97fa524d69cf94fcddffa94eca548afbd81bc7242d4423262d33f931d25e03c9dc82eb7e773526b4d83b555671bf9b9fe87e90d8c93cce21e2109191388786711a7ba086896537811a887c9703e2896b8858c33510f12ec7ec6ad0ba080447638a610dcb0e30aee27e18e288fbc94b4ce62c8ec6e6f1f75145f147af8926e7ee76778f9aff477777f7399b4e8856d0f28b853964d49ecf0c5d35676d92ad981231156c0eb2e1391b7a5d22db8a69b11a8bf12226690b8bd75efa6b2d9796b553108e499ee169e651a36413466789c5727f37672e93e5fe38677336672f55dae67ba9925be2f7a3f85205dec0d29412acbd2e1571dc0ceee7b2976c7337ea04cc34974997d5588d49975a8dc11b588be4d6aa459d004f92bf6a246b0f524dc9fd68abc6dad3a4d4b03cc5f0ad1a9b3329724a495bae0a77c673548d463546c10131d9bb549198b750665a6542a31ab7c700cfbf8b0a693e97556e5c5fed3991aff62fbeb8dadc641b572d89a5745b5c666662c01b19938d89392a4884cd64346c0c8d48145ff1151323336382373332c475460419220020c60cdec064886b00ac66e5e247016bc8515d14721418428dd3f272209868d8ce25fa382aba5cb04846500c5290080414233342cb8c081636942f184b182358ed8b4bb309619341bc0501aa7ab55989ad5601e8159e39cd9420612cbd825ddaa3d522cd4e9d2541e789c18a0460b52325588789c0033158a420711557257856c2ea10164370089e85b8a2360d5c80c8851660310880f4421d80a539da6381007f42c1460a1168af318a84a39a3053236512a6c92ba28a34932c393ca43cd36ddd78e4d65809eb9d5e4154e34d3625b77cc11d4833d26cb6c9729366f2e55d005b00d28dcda80b03a4485748242b50b5c95870c82d61122661d2005613c2fd48b354ca4933479d2e25cd1acf246c2661302f240cd3200531a54ee8130e100f601160254cf200aa4833d24c8bdc27b8117fa4d94c0c0dd30c1931605e5c5a66665c562340e1a3f5033e8fa3e8f467390a4eff774d7613dd1d1aeeefdffffd9a5abebfb4ff3e82d81b99fefffff17f13d5eaee1e272519d12f60746f771cde5d5211d02c73a74378c27abff2c41f869cebfe0e438e3f0c39ef579ef8c390f39ec4e3e8fefec41f063a053daa254d89a6445362618cad55b9529b74e3ec8450e078408c3898dd1b38ae9d8b70467280cd94858be789020704a0caaea01476e52acab289dd2af7b6d22429880d1bd5de1659239522b1b4b8bc099e776f8b5396a36ecc9826cd24614dc985b16fe2791e30789e87070f4f0ccfc39a25f1ffe276085296a3a8b854477b2c6b795c8ad42dae94dc78124522226a7fd657cc226a75d5c58f1350747cf85154c455f71f53894ded99da467698cace74ab06b04092c51336d0c10f392e98537ebe0b333259a6e8192b18318517554cf043184200aa01096e0b716730b1cdadfb6847e1e33c6ca7c135b57cec71814d1301b1d8210c2249b47ac0010f47703bfa1b0a181b44fcbf917a4c1288ebe9b1398088232f74a8306972c408f9ffff228092c289f223072e1f448a8020520118153fe8e28bd8aaca8f0ddf41d351dccf94dd71801f8004ab88155a4861c10a86e41e9dfcffff516ee36bc2422320220642624274386901ce7785e4cf84bd1af95918228cff7f874d44acf28991224a784085106280138b90336f246e3384391b4e0e18874824d2f8bb27981c639f5e728c2799d8279938fb74739c91e334e5d88d63db1cfbe492633cc9bccc6398acf589cb316a750aac715c7b006b1cf78994e3c30a2b05b9ca62ff4aafaf34944b429ad7a2ec3e15d6365366357a1f598e27192aee57611046595487b320cba7da538551bbba75969d951dd70af3c7337c942d34dabf4af12a05e615e615e6ffffafc9f7a9534a3e8eabb8efd355587b486eccede52a050555f58afa45064276fc29a066913db383ed7d58ce985eb28f45c731e209e4248a0a30cb19e431581369d1fd6066505dc19b9f30ad7b686519ded4214a391738b52bb1cf20dd70130987a427cac5fd2eeef7576b0a2911df4b392afacb51ed4efcd5369d8bf20c72149d41d05f748b3bc3fbcb69744c7c11d12daebf72c43c23c020a74a4e11a00c9714f1c9101e65082580c404423ba229993e66103308edc86401dd2690e9ba1fcc0c62fed08ecc1ff3c7f4d140d4e94389a664fe8064fe00cbbd6d1bde5aa2ff11a816e95af9936ec821a02a4e693924b79cabd84579e28fddcd85224cbaa46bd55ee3d5d6f55db9c789b5c9ea6fea90576d3337fcab99d3360f21b0fd373bfa143687a8d3071a778feeaee1149a06cf0dc2c2385a07d3a8980263c911aebc615ca25b73b8a353a74e5d926e449b4ac19bce14e770a16d1c537c0254518a61944f019952ea44a673d2b447713cd10eb74725a51ca6183ae71cd7241530dcb60d73da161f16a9f7e87e7b2d426242acc831b24a1936113273e5ef9b0c69e588bfc910a05ec25d05e18a04815208a043dcb0069e7083da82c38db845a59af11fbb8c86610e8be250bce17962519c49f176cac106ce94325ac7c2c430e7b83854d364178436e906c429383ddd2004d57b743bc3253e50e488210b11d1eb4dfd1ae55c92947e5e92fcd01e7a7fbadbfd87be4f4bec7fb8d878e2b2a9bd39e7a494e338ae5621ab2f8111836c21430890ede1e1c113c68c39a445417ba8e5c2f442570a8dd8eccea041cc0c4215995f996638305e08132d0a118a48921df6437ba8a93d193264c8983163888bf424d2006f4a2c904bd0296753f22f2de82c91bd437448ce1024235c81358d1fd6f4f81e7e5643a6641a2144429c2c112284616424c8960ce141a445f1a6f67e00428687350f6b3826a91f233f3f31b7ca854b8af8a1192e29a227b793a6a89d3d9d4ea7ae93214482a5a1a1a121818418434a20dd28a18412482a9ca0e7916e7847f47d3e01061e1d3684c9ccb0c990245b864d8638e140ed0d3e5d52048fdf208d5e9420eed86d03908f2b3e002a72850e4e1881f1b1851139e860020827ac28f182258864ea3a08e9e8f42c53197ceed01d7eeed01deea0e16ffacf1dba434dca985a0c186ab91db1458fb8f0791cc5c58d58be703b26dd5c363a8768e55a6cb53f6f5cbb3ef37f27595962215d77f721965f99e60cd2a1913afa14c2ff1e43ed56f8b94377e8b2fde70edd21a74307a7c31dba432bddfd1dce8032b09c61595400e13febdf64352818bac3181a2d1313676448372086704666868425562b2b3a54ace850d9b1b273a4a3a313a38e8e8ecee5e1840c2f5ffe0e8e9360033aaf692f9031c638834e74b2b3b36365c72cc1bcc168878a951d2b5462b44225c61d54ace850b1a24365c7cace918e8e4e8c3a3a3a3a2ad8f161aeacecb0b263e7cace8e1d3b66723a1046187705ab1174d08e489c1aad0cc4691c8e756377c4a1d2e843edb0a32c807362c71b6a17e5a3ffb7c41f0d9449a8f44d98f5b45434020000009315000020100a88046381309225c29aeb0314800e6384466c643c9486434910c4388c8118c618620000060064904108991aab210086d505b61f4d2108fa60407eafe5da663018990f94b4b9421fb326538f6692803dc0c684679019c8841043e1f43be243fef5a382973709529d3d14b03bb2f83281c5787173780f814fd93b7cdf1d11d7788d09cd571ff6eefb2caaae4a88329a34ce765ab17125490aad051336409704aaec22b393ddcf0b8cee33c0a16fcffbabc912d2718b85699a0f5139dbde0b5b8637be2c5ea391dd43bbaf7dd6f1a1ba93962c864333ea69bcfb00fbc9966b543086a2710a4d79c5003779c83fb182a2313996e5e6d38b05b275f1d29dfa7a3499f4e54c2d22dbfc26ba66ffcbc8d1938472a859e67fafb11a7e8248368322c3d2bcdb91f4937c2e3295d21086997d4db3f6ab7b4cac52df03e7504466c8094616c5cbecb40919d07abdcc5a870c9dc2f192f9440ab3933088ac3d4c46b3b47f260a6bae29b185ba10f8d246abaf40761aa6f71e2077a527f5bc3584263dd06285bdcf7e49bf2353fd2f882a8686d70a246f1ba555f7a996787d58860e0baa7e00b7a8f336db70e07a8d53df72a8731487911a94a2e7c5f190f63be0a5a19e50a404ab30e2589f2652dfe828ffe41bcd130c26000109180102c22e418f5731fe8fd3acfd2839a92fb2a3e13f59668db8a8a3d5c7fcf9609205a712e49673e8da2273b4ab55f1f1a1bd205f6c90a27d50db829d6adfe93824b6936c4680a82395c0bce6bd388e5e7958daeee39eb18fa292eeb5ebe59afa013145ff77871b65f85b533f5df9965df0df579bccb64b39a01db5ab1a549a4050bb73cd8118074350a589ecfada536942c5d39cae89b1999d33b7ff560e59f40ad65673c04172b89b05f6ac84647dc78a53c0c2c4b116655f97a289ebbfbdccc296063e37cf78687761a16b24973d24e33a26e0f7876491c3e27276b0399242035683d90632a99945510f1a080e953e474db1b5cb8b1790a64d5a760ba04efb3f134991dda555373e1363b2bb8090e063be126f31216f4aee17277b0b08e477e333abe7e22cd291b36db0161de2d99c09729222948a2622ab6847b18d369883616f077d8b3609082baa57a3618ce22a7222981c519ced93560f1a6630a7a4d5c3241c71bf6445718a2aeea537cac70db61f1dc92728ce2546acaf0eafa36bd0b1356460a8f964583bf1fe6d15e9e008f01b62731e016b527c263718a8e7b581c6d6f504a427e1a6865d566af8cab256764a7f279d44395b3bf91520bfa6e1897f039a07861b79b9eb0b4d36ff6243d844a380a8143398983dd48fd8e181b47c33a9bfe4a672c8450f5858c9274da3b5add2db6812b97c6fe08f56622d3ed643b19d369925b1bc410b2c9b16a2ab808552e6d015dd1b480ec9e5b49c9ad798c1396f29467644046ec42b7d10a4cfaaf51d405be43351786f80f4912006b3ded98e0735ce4fe83814c502323d01d68a78465e91c47ac1d80e87a13639ba01d1d757d30cac8c5a8160c6fb983d0c8ced1304d072a4c4380778e431e5791c10398394bd5eed3424e8f90aeb40870317bb2789fefc6f3b44609ca1faa2f30a86d857d60cff9dda3754d714824574dbc4cbfa0f12cd412f0121fb9e8a638d5d031f8a97b2b92f382e7fecd079b1338089e0e69d5ad7c531b4c01c1f9a7db52b02b277406d1f57a7d444be44cd8561d6ba32345cbd39f9f2e62e8f83ac5232a245a8862821db52c087878b90f59357ec05a8c513060b266344a425fe637c9fb3d1f4b6881d062fa0fe85eb14e3388c54e643084b9fc5d69c1c8d86ac26875f653a038f845667f4826f59617b0f1545e5de2afee76d08bca1fca87683bb6bc54202f6453553da3ebf41c55769de052adc81c6696a9b66f64cc54bf0a19d5a5ade5bd53badafb796be5fb9d74df61d9502fb66e2e4bd5157ecaa23406fd35cc3359134368323cc2ebf6c1286cb8c2210f4d66ea33b6d4af89c3e416319d27fd66e3f45a5f69e67ad5e7843959af3accc0aad34d732cfda48ec5fb56ee4d993ae7534d3c6b30c912038eae359c0b492842877fe594044ca8a67bba316cc5c6233e50ff2ea75a88e7a67e915d3f30fee8bb0a12e4efd61f3b7899988894c8e9b72210c8454601a161023974b79f41bd39c5f180ac93684261a7ea7b6fab6a58c561af9df8397a9447b02030559cdaba7cfe71b0641fd23182461fd015d9a04bf64415cea71b7c204e672fb56343b19a4ffe07d4b031c4987a7ff635d844c3c7cb9875d1284c5bf124c4297fb209af84d01a9a848d4850eb5b19a2cef1140f3057e9628fae8abd98a01104df6dc5885c7d30ad36bd9144ad5886787256c7c31a0447aa6e1718e86626722da7cdc8a5a33564faa5438548dc7e5d5ef9836f560eca213ffe205611289334704caa2536419c8cf7daec407593460e7424b17669a1e879b2f6baa96218ace99f7b8fda855f596630c3e99d1d61bd1eb8587b2a7658fb6343f1be1f7b7d593a002862689854939b1e2e3fea814d0d645fbf1204a2e35fbb3e6905b1db11709fc79d0ae055a4099e38db18a11c8da5da3b561944b1e210b686d9fd4133fdf1e5f4cbe04a67b578b36eea74512795b2ca2f14e4a8b6261ad0bfe68047c05e3622e8d763546c2889b4eb9ba3c1ea73e711e9b03c2c552fdd99c61ab00381cfe5e906ac454f48c89ce3514f70a0ee2e5f8170f7d26c9bbbd582788c06630ea909501581180b729edd0c1843296632ec4a73727608c560da07529ebd707e201cea3e5b5a3e58ee32cfe5c7ff595923c22a3c9d5dca46f0f716f78bcf9184bab863ede5abe9644ff0edee7666862218bfa17ac4d7e7432fef95647fee42cb8b497d5cec9d096e29180558375c1d2a478c69bfbf60c8597b9bc8280de25526d0f67c2cd725268b3d9872019583f9754ca0b685cd9ff8c1163d74d43beb8322d0736747340509b23233583ee21ebc19a60655bfb2be25807c9af66c557a1d7a3d8a15e15d627bc00c934ea516877bf2e26abd5cd6e86488f727893afa66492859792c314764960e2f60f32bbdfa8ccdffad79bfde8b0a15d65130009c1c5ec91be037b6cf1f4d34ae05016a7aedd140c9c3df4a63c14a88d944ee2b809be9958d0f25494a20f9be614595d3a53f9a6fe06147b86906566ea31e21d4e8576f27db3da4f1529559f61e91a4d63083b04e968e08354398f50e685b64d431fe04f11fc2109d5a96f8c8c5ca1fe2efbb0f42cca1618e2d78cd1cca24cc17fea83870573fb17ee1fb6e03f4412af228bd860182aeec68e515af62f75e274dd84e1a810e1008681243bcafe869c3ca6bbcfe9cf1a0416d9713578a45006c3c91e75a81c6abeade9845c33b9d1e7610738785d3cd665aa0711550787753f81bbbfee8074dc6b6854746d2f559d1f10285e3e97064bd2ac04452f2332e751ed877d419415a5a955da2570c41bd60b58d39b30d4db2f35465fd50170797495df1a711c3cdd6c70bb91c21b606e3014f91bf23aadc2d753b8a4792eb88aa585f43debdc34155ee02d93b276a26b0fa3b11e74c0b2c1a6eec914a36edd9f7f713666cdcb1e483cacb914c001177655bb1f8bbcf9407a6c8a489d15405a455d6447ea4d86974e7a408a0d1929370a6d4550d2778031ce0cb8f3038339565a70354a40e868a09beb1d46be393494c40b0b11eb7b0101e72ad0f20df5918739c98ebbaf48b963a73492ee684cab56dd951c298f03c49d7865f03d1348305f1b0d0f7cc2a2f9ab4e03aaae83dcacd2bcb094d487ddfbbac325c71f17a5646d96c8e45a7bc18d65d80ea97726dd7d606a9b3bc351a91b0402548473c3ef6dcc551434fa66039496d469149758a1b76aee2d7466e0cdc581d5ce3caf7caeceecee812b8048d474b93acd4edd088f714b493a699b34faf374681e9eb7699bc03e4755ddd716c335c0473ada6e58d7ecfaf598f92f8d08feb09e7c3ed391eb036f93354aa226581dc4fe0e7c87f4a5c846a6df94452e2b1da5c25c80b816afb1eda6273e12d7ff2e99747da0431911e00ffd23703b534ad133a820aecb6b45feda05b3aa46f880e8077ad56be984cda38b98646deb4587e70846503f57ff444ef6b4987081ba75061c28f3b34da1bb39345f6bf83ce1f273ffb5171687658f624d636796f8c0166b8421158aadb9dbe8bfa2d67aa72ff088d1a51cedb8f2b7dd63ea1f0377c8cd81b6211fcde5343dea16026777c39b8f7787e411d22586e2ef91d0861b40a87a23fd8188467a72b0d241d565154af9fb5c335fbaefdfc5fc761b60051f4d6b5db675bab9f21949bd9b2ec17adaebfddd37e59ee4c53402515d5f2bf3d7ae985535c60f443bd0a94e4be76c1e55c424abf5fac5208b02411a1ffa03ad4434d3d7a35fcc5aea19e2672c3e4ae93ca950b40357d42692b2c43a632b4256ef638233681dfed61f861b8e703738a3bde95cb9f6e426408d871fb3e46d8f2a800335b0503d0f7d34736af3bc55cee10062216e1132c132e16812c9ca1a8607fc3a79057da8bce70aea119495761d6ab8c7b6d3423f203b64caad275da2a4f89882f7c8f9aa0bfb5b00cc0aa8dbc2b5cacd3583d4bf91d658ec09b3d170240e602dd016985e15ac93918d604de20898ff382da4b56a86f67a42497de7806705984c5009e18070888144d2826e8ddd213c447e6497767c1a06ac207399252c97ef4aaaff8ce378f335d22619d06356cb58192fa5c023d1f18a0e70fc32471e0b98d210eb376234aa3cd5c8ae2838bc4a9e8242f46013f44f47352b0b3a0487f1b34a6b0f08db90bc76d70e45dae509f9208e2c0ef52c5b047989d2b0aa50213f03722e75039024226781e6cf517a874cd97249e2199f970639d29b0f5e597cb3e1daad2e82d5387e0e9fdaf344e8bb4cfce3e71598f5d8b0553dc5ed7da11e81a08ead608da33817930780155200f5cac8032a43ffa39696748641bbb100f5a56dd6b350f2dac0591168f91fce1c664419081f4cb571a6e0b8b2c1f33530108478f6b34416a1a450727ce298a7d7145f8b217163c454d53b5e0a51c85619f97208cb5988bc06a9ab9da90e61a7f5442acb69cddb09c7d9dd56da69ef09b8b28efa3048777eb4c2b3931897f23c62551ab7968f188b059b40d10ebc9a4210746ea2a51c41540e4882154895cf2aef65275d89c86682463644390f2c10185d60040b6f0652dc05115aa1d1a5af907abdb05b9d1578c3f77b8cedd102fdd08cbacc94811af724c72350e3535ef0059ffed948ed2ed3189f88cbe707fc1c63c90e4368b2344ab013403dfda2de93fad80afb4cce547711a99efd3473b75778812ccdde3f76f02edd3c96a3b013c45d32308c0abdfd5af0e0e8a46a49c20b8f22067b71545a3619d7701d8c0d375ad31f08c3d114baaed6114e9c5ce873a3a736054d2d0bdb497a3dcb1de9b811951b2425a50e4aefd242cec304d9e8b7cabe04c636e46f8ec19b1292e2f8c812915986a51f231e03a91e0de01ffd9baccad10d49666ac406cda687adffcf7ed3e3650ed091cbb3a7001ac65b439015428080712be4405432c64cb091b8213f2ff3f0628e32aba326b13ab7ab7f1df7a0957836d7e81490b44a0d1b79aee67669c842bde28ef8a2632cbec0d85a8194d9d2e834c45221b5a4c087ab08de1e4fa84d297fc90fe60d044e9ac7ac7c673c7fe1833fe1319b1c919f60a8a60bbf55ddb158cfefa000a97bf31d3ed20bfbce55b94999757e334b593a787daf1d3fdc63d9088ed1cd8d5aac436b21e9c91e058597d86441c128a637cb420b2be3ce7862719ff1452cd4a9b04126662b376b97dfd82ffc095cc3e26a27f095510277e64b321b5db44ae4ccc329f1d6eb76222cb8a894abc45a1b445356a5a69421173d6045229cd466b156ebbe7d92a5c32d0c95842853720c06f36afa2d06115604ee3dac4653be62e136421e27924358dd89c984fa53f22022618797df0b564046dfa819db4e24a05ea4e017854d4e64f2e41a85294c4aac8317064f5b8d8ccc6de54649065bd8f62509356b327d7c065a41c1f60c8f3741783b2c82df51579142d56b9818965c5791a2edf6a3e65da0e1ac0b1a42244285218cce59cc7939d378bbd1e77bf082fc85f32ce51bac1d691f921a19d2470777f3df6af3a5ee4727874dfff0de0eba53ccc90885c2d5c4f6b09a53f02c7e5d8af118718bcc8c0d8afa4454667a5eb4f5b1c711a9f1935c239720e9ede1bb7850926e59102bb6e603d69b64a38608f070dff47e4e91c51692420fc3b93480031870cb5771791d2620e69b4b88d2197c833668c2dd026d9e10a525877224586e773997264702765f3e720cae69d2cae7f3e1de27708deaccf6ddfe8212a2243a8344769164e1c0306ecb6aa2c52eeb7cdfb23fc31d224aca90c8381aee6089f806133a954bf20491a462c5ad279206e958801031ce1ff927fa314a61d735656395377abc28947eba09fd417983ba1d9d2d2f7a16e23c724b45d5906e81700fcbd4733dd7cc242c26375c7c2b34fcdb1046dcfc05798d6e11762bfe4024bf768b751a9f7192a297ede89bfe86fb36648594ecb341024226fcfa3587329b0d24cbaa022443c32a89ef23ae0cdcb1ded5337b62dab5f120735f135aa02ad55eb5182e6e9b1f5a8b029c3460dc57c519fdd9fb867a409df0ceecd15f16106efa4d7f20db05d27e9e1ec948e2970ac49b571b07ecfd3a16be322593082f53d2720ca4a17f13ea585c6e2cb4a954cf187b95ca1a2ba551d3139d7ac11869863eba6bdacfb747917fb06bfe063eebed9c817582a74a4279e808edc860b7a11559e97304f50ed3366e69e7acc4402be209a55236263c6fc5329f15e116b6e5cb9cbff2550089039cc8e59851b0a3c19f9713b6dfc144bd4e60efe9827d572ce84fbb0b301af8e4f6fa86e7038ca8270f3d6e4047a1635543dbca199837a62883f466d354869af10adeb210bf865e7277637fc173835d8d55ceb2e5426d761d2410d20123d95684350d6d7b1d319ab2eadf97ca87a8c650d6f0081a0f66577ffc1c369aad13616c3d8f610bf243d6b23dcf95d952765ed28f0e99e0270493c5ebec00081b766bf6940de6281725fac44bf761cabd88a89c2f8c944e892b6715f08edd2a2e0f8c566a176f80a8f1c69493bac38361a8ed345b9c2ab943c5ce268e8417d31a19183c4836bc21a93e08551ce5ed2badca2f7b66ee14141bd6131b4e281309f4cce4b9917b08aa3a8fbe97b7478eb97acd5b39dcf8093cfcd1ee59395820348af31706f17430146fda13fe0144b4542cab271020ef712cbb6d0cacc6d0aac2e0431f03b816e50f2860c24824981a02010c32ca8955d3511c99423cf2acce580b70731b999c7429e6216067a01cf0e77946615cb1cfda209ead51e0aed602f129a3420de3571ade3e2b5772caafbdd88bc55729bef8e94063e75ea19c35d7346c2738b5b04d073470956e60067891a976dae43fcae1e8d6f736a3aba4fbc109cb782b111615b2273e01c863f954c22c6bc0a512bcf6483bdb2118b54990963e0e26614bfa1ea20b66d00d9cd6bd980aa09ad26cd7b4f03c3052754cd139b15a8a168d647f0f5932917c6079fd2c7a27cc2970fce297ed162e4771dc7ed4d709a173a63618cf415721827a8ca0320deb264bdf6817986d5e9a95d9ff93db9e1791f6816d8235f5c98bd190a623e3a80a8df0517895443a6d9cbbce8df1601bc74378a29ab09977776905f78701ab7e8340e3544f4cda2d4af4495d0354caf549a344e47ea9d8b9fe383f0d7517e201aaae635e8c741d3682d6a5c656f82b4128061e1f44bd1d3970191dc9c1419e3169fb9657684c79e88ac2692aed183dd804880686909f94e3b062e809aa36291722bd62f0fe930e51f1839d625c59a4ada40647e8e2d2e685b2a42cc9e6626cf647278a9f3cfe660b5c2ee4997f4bad60fab299997a401a93da0e83c0763f0ecbb4e2d421f0d0a167e8af889e4779d5e0c2179b456c19feb2ef8e9e5f4854ad17ad0edd744a86e9d592d4bd8eac210c2e74a515b24ac32f7a5911e6a71ff4abe57c2e6ccbbe02fd7f4ccdbda22987a8ca4d10bec94f695161db15f736d56b33962a74ecdc89324038999da609276640d2595202662d086ef146dbe4538d7b1c837ae9e07b34de772108fe0bf62dab3f5290d14c14cfa9388d3ea90fb845abb98a493f873cc99c0d72a089b6f587f201532523a0b66283cf896ce9808b87b760b79c6b0bc5ca65d08884d482a38be7281fa9e11b81ab7ce0a092576b613d3ea151cf00e1e8ca39a39f38a042426d5abaef899902036802f219abd6d22e66be6471630727e7103cd5175377918d9fa7ff92d0d9c7e9456493dbdf41f6655ab7c59cd774b22f5401e6a4147c6dc21be382f52de362656164dd3f43467623a348edcbd21fc05b6ead6d695f26c6d9abcaf3bcf1cdae885609667c2c0794e2da174d750020e1b42fcb37085b98a0b5fbb21a796f0f7e65fe5423db624b5f500a8a95e50a00edb2fd37a823f0e03b5c34850ad3c7d39ee46020aa6ba94b43c32416b1678585e3d8ad2f878c0781737d0f03be9e170ef49bdd891a3ebd889be7034395677d39faf9e4fc18e6896bccd5842a8e64d853aa08a752d72d3cfb52b83a63eee7b7a644944d461ab6ab12b7d05dedbe300aa97a99d90fef36e97e63b357b3ecbefcdf7760509b32f818826caa37f512969f3711ec62e2d0c5ee4bef103e52b90096020186657c2d2c65d7d8396b6acef150a30495a917d7cbd8f2df17582e398e47a216b0066520161018ffba2f4177458dc4c5298b83fefa41e1fffd8a80925f7ea20dca6d79da71d227640af060d41b5032810b2684e8f48bb820ffbd541fdb3461c2d61c638a0d063c79b6874d42148bf1e2648ccfd00bd22a078cadb72e7230b00024c320b6db375e6e919fb8f009820b54ea9a1c952b6ce06b076671a62cb90a37441425568a3f3c5e59c51807c332fc39ffcd1a0ea7e6a1c928b81caeabbfbdaf8a30538fb6db7f12dbcba49f6e6d3244e43380b4c37358687ef4edf86091fd8a546fd883ddda73c67b990c29e17fab1acd4f40ed5b73417dc0ada09eb401796a556f539e7c3d4297cc8907bea80c944cc97c7036211872db2f97bc8ea49d48e792111607a2a55e97b355a36be3bff917d7a461755307b955b8344c1ca9385997fca3dafcf724a7b34ecfdd641c4a05aec5f2c28309a5c8268096ff444cd82d0207d9c807ec65d6874d69c1c0edbcefaf37c6941292d0544a85dec27bf27804654a7b68d88435d001e6364f616219934f2c514b34eb3795853a076eb96fbbaee694bda5e4a6b45ab36cb5daeb52f18ecbdaa82e92cfc98083b6dc782222fab853b717f2daa1d3d54ace961946c6920a2ae0223f957dbab19a783e1d192189ff265ca2fc31448732e7c3c6ebdae37a42ade5de69ddb325590465163585320fdd373ba1533a5129176d05e56267ec4335a66987c2425e42efee06eb2a1724e65dc8603f6f77b1039238d1ec90e2e4ea2598757b825c71656c346cb984bccf0d7aac823c65a185f9ca95df745e01d595fcab430c4b9ae459a85c9b141a72e9bb27be4499b5273e5ee4862b30eccb2d98adde9b462308ef3559b4d9080a358c8f847b0a08610db258136cc43fcd9c138136c9ac584914509377a1efa066c9d3468aa51fdcddea501812b9e85fbb7b3d0f8abe8f3cbd4d3498eefe0be0c6f1f6e18a0985d112b9be928de993818525bdd9a15028061ca07f326b9b08a7a6dba679c2c3b5f299e4c3dbdb664f4136c790c00dfb0454f8832679321741b85c61de39ab658bd6696a684dcbb700427b900d03345e503fec98d5977abd07287939c41cc19f481f0bc5743d263a19cbfefe166842b8c2b8cfcd99daef8a0ae00a86110f5d8f29fa779cd00482bb155180fdb91d5f88b49ca12d821310b9a8466dfa1c79090b53ed5718781d5ff68e04501899604f3406ae27085a04e37c56fba3735d3a30e4aff9255d8199faf691140383c3d1914744e912d7f1ebc476ef984925376e638f6b277bb0a8439a0ee7ff82139e7e5234c2543e8d10dbe5773b289fa25584c56a7d7b841201c640e4bc9d0dd85d2475eb8341b331743361b126825b133a8f666930024029262e422e24de03a77fc40cc37ddf87d735ad8884271b2265a09f4706813a799211fb8ff361267896cc92c918c215127b4dc231ede20759b30fcacb91158a74d5b70780eb9b63dd783bf839ceebe18b7287867e7ece94154150cd030ad176ca71903c38af8f512ccf4e7e393faccfb71aa0c4000e569aa6ae4cb163869d9736fe303bbda51d78fe7e4c8a743dcc6f1d68ea617f8a5144be8ced87d6f0cb1472f9e3da016e5c056f24bdc2f87ebbf9fa3cb2b96611da8a6f8e8408338f5439e0ca4f415e9d0a862f551ec2f574db93d3200f189fb550af5d737394f14b86710d51bd28e0f8a103916981f87ae8d6d2fd9ca2f4062a31dcf1a0cc6d5e45b537cabaa472d0c081398bff622473ec218b6d11b52147ebc5f02efc59d9b6ec1fad20b68cc32234e481ae7b1a6ba2c6a908e162d43390c34a8226c2ec11e01acf6f70717fed9358502269fa9101d24713ac1604078c741d429bba5bb93a5832ae125d7b5b91a9ed50905c7a6cabd6d0ad52c01d2a8be17b9727539c387b26e16eb11242b078dbca74c71d43ea016e7e2b945644545df438b61b2802b6c9f42130c9a44ce00963f5c4cef83c3bc4022e9eaf887aeecae0484571b63f46cf4620243863889f478a7c62d09ea037aeb6803a226278fb5ec724156acb62e706d47cf5b7a09b0aefd047ba81979ce391d4f17bfad8a050171f42ba040c32191e0e9e7bbb1e5fc10df94edb1d2b5d78bbd6b2e0203037fd24abe2401c0f00abc256b7173cf9a7a54a1a91eb7b82990107eb79df238525c275842f3b75e67ccc3ef1e4025d9b8f05b61b542035a68ea7eeed1b6edff1a5b062d9133c9d8b39d78740e8acce1523ae4dc604e0e8627dc64c0118705c97fc4af731c9c1b9164a90ffcb33ca001cf30d4bb1961950038cae0ccf0b6f5a846c291fa426f00149c9163cb2f5d77957c0a0b10a7d83c0122b2fc98a5b5f5db5638240c464185c8ff8ae4b170d8e05b94214994d0ca06255621a6f5ba5a6f64d8e3f84bd6fd7a8196584cc282a2cef82009c60194dd3c9f014f767827fb4d008b1d30c40ec17197b3a8f46fea5a06db999b14c903aca178b3e9278610e0d05caf47b49aed10a165bf7505397855d820c618b3547392da1b3835d22ff279986721117cb9e271f5a23e0ad49cddeda2f3c20f984490cc13d5c6b6c89487c67ed1af22996b70c5464b46c03c9995539e19bcc8034f394ecf4184984ecfd30ef1a54116e131ceec0542bd846a5e323502152d3b98a2aacd25c6b18432982022224142ec5d47d113f66047c3e7546c9ce2aab383ead4b62df454d56e14e1993d7f18b5f651505716d6e6e691beccaccc0d34b5cab2078ac8d04d19c555075ad24c9ae4bbd884651f09d77bc90ce45298a2c1ebebc38148d5b1766f4d55f48959cf1e4d990a5bb56b7a49c64e95ae3a8e713441503338291c96f7a3e11df02314a21e7c34c4a016402d32b366440f4224efa7b805ffe21dcc1fa4d655a103434319dc8bb41397657a96b8912439c1836b27da08fb5859ed138da13af658c0be5726562b35e04352bb2e5af38f15c6eb5e566d298451c0e505ed2468242fe845ca8fc565d83f3306b17eebb47f21067b656501ce89625ebc6d74eb4c5eaf7488ab236515c622ecc104e8e87f6037dd065a2ea45afbe8f9c142f5ff3a3730f38ca0a7ec7fb932feea13cff9c12e8e2188865f06aa588e736d88d665ba4fd34339e3226d3d8780ad55fc5e077c69303d9d3875407fafb2c4d955ec21628e52d6089820c1db9c5832c2ff3d51fefeb02a75de729cd72910d65b3bf7415bffa92e77839392de351be12cef1c286ef5034292f5f9d1db2bbde117bc81caadbaed00082febdc0e419c08e204d299b5967744c042b6be0b30635c4dc7740d840e35ab21543b07a51b832d3663bef8e9994086135d7c98e355f40f5cdf8b2203725773de1fc7daaba03bc2314d7b9a2c78749775ef059b8e57285e671141d8f4f0ea9ead1f2e9626b92d07926790661de0f25be2c7830f5e2272122e771be5a2f8756c16db0f706749d22bbb1c022bc1386354b43cf2dcb7a7f5b91c547cbcee5162f40c745d0bbbcec0a9dd3e589c95e3ccee5357c2e654453672eb4f962d8f5eb3e95b89a5960257791b4b275e38e7bfa9270cd185899d53996a9e9bd609359baa4a5a5ea3c99857d4079ce8968ca2c61870cf1975928b025531cd6886098c99f324bd1e306813a69cf95593e34dc77b0d0082d3448ac8d87b2e67805d84bc0f74a32cba4bc6496460961297693cc627997b7fc348650966e753dc8254059ba41bd4ef8e5a6f35a2236b925050bb3a31194f0315b9427ba58bb36591c59ea74835a594ed51d917c7ff6ea6e86e4f6e1b4f6452e4a7537e4373616964b250442e01f20861bb9881b6af566a32b549236986248cb8df59563507cc2dd26ba34aeb47b77351472cdf7f7de517c2a5a1ee0c3647d36cb507cc673e6b274f2ddae2640c814dae47c9ae69e21645cef5e8f6004771f04449d452ad8935b6db040483c9b1b8a25c12de1d2289a20b768252b43775ef260825ce1409965dff418e1413105621c3e63a4ba163431eb335e6d74a257c02cc67077cba8a847cc5c2dc2ac1aa99b04539b4c11ae373d29e219c86ad36b86781ed63552d843e9531bc66a8b654f733c3709c44a3d753304c2d3a71267e77a60356cd250ad2a7b5ff2167c4e9d95220afa4dcc2f8eba833cbd81dc12edf2ddf28ea8fabd17c82a6a814007c3a2b8541ed03097364ce27c16c3243cc3d690152611170ee583a1f459767c4f6ad1fc91749727a61e5307c8caaaa33d3fb2f6abd0f0dc0c462aae63311a37d199aedefa29aec8a2621749641716157b0e9e16a60344d1c313601c5e595559529a42a75dde383cd6809510c671238d77236e9404c73b083d619609c1e27fa9d8e108712a96e4b903d0f2bb5001390a00de18bba91ff68ef8abc4c2795d1324c45da0c193dab2877d8b8a16c893dddb893138821a40b399b00f5e4f60fe85bfebfcc98a928ba16ef39af41f0e5031141f027dc550d2aa9cd34ebb550ec74d3c7c94a7c890f6811e4502c9320343be9eb21e8302110b21a50a66753942b010915ddf0285cf737038ad6a60dafe8d524933ea9501d5be0dda297e901eb384eef028a4aa0ed92163daf30f96e2bc79ef03484afcb65cd3025dbb8ac992c91987d419d18a3e0a4344e9e77fdc7b326ae024ef809f2b310115d87bea5300701c20a9b6f93e2f63b826793de823269945ab8027022cc4ec44738b3a714474d3b190aec423953b23d34cb3425e80a5349e68da2626a31953810fc24fa1434994c80828c93baaa5722a3bd0a21f8a81552b64f0de0cd8cc8f31284be05579d01266edca7882c9a6db9933d247e17a97b3cd46ac176d3aa8b64158cff96b74c32b7203a9c6275a62ad75995a0ace87ad98bf2e184da71cd74010aaaec428cb8372c1c9d263dee140ae99b8239b647a6732d760598582984dbbad2d9ee9244b3d3a1eff528fefa0bada5bc79a2c03ccc9c0d4576e88490993e381f32783b645785761b6235214148e53a4eaffa3f00d06440d12db2db3682a9d946f4ddba1926bba309cc62739f243057be770dc7cb72ceef3f635487a0950acc0ac5f72c75d5b875b99914eab9a16ad34c41c66a5fdd3ac9e1b80e15f13870db79118b13d2d43b772654dd1e4be86ff40128616ea4cb4027ec30687a97d9834d6e07c02adebb05756fd7570dccffc14d83ed5f0231defaa3931a12a5bb3f97e2af4889124024c987c66b3d5d9640b7b7bf836561f3bc6a1c5d894780bd68a6d7a76fe4f191c645b984ee0da920b544a119588e35a14d4622d8eb33fa2e04ec94682ca9129bcbcd387cb5c8a03288ce7e6c9a94ae74f625bd857aeb8625aa9a10de247ae126945b999bc6ed80d3202e2facc3d1af80d9fb3fe9fa012e8086646d3fecc4b2400afef21553a90ced2f408088aa2823a94dc74aa26ff9250de60006f5aaef9f1a2d76c7d22f2da7acd61cf9e902d4da22bcb0659a818ae97118e4c65a1962af2c0b1728dbed292eac214df95ade386bdda70708e4d7066eeab360d84f90b052a3762a59afab18833b4f2d0ce483fa7d63fa141cf5711395e08c57492cdbdac7d0f13b08a5a05e1fcf9d9340ea58a43f0f796cebf99cf7b33e1d481161a7225f6f032d4b4fb50df25286d973fcb23802ac538844fc5e15a10a2af895d5766bdfcdb427298a2c380ce842ab418c9dfbd72fea13944a7e0cb2b2b55249333f87df4f8a3d908d19418b44d9c791174bc81a4214c576cd69671d3814f6ac6c0a939fe7c74396b4ec086d5a03fdd21521c6c2d5033895f166b876245554aa90fe651e483a0bc22105bdcad87d6a80940d815682a4988a4e9ed4e9ad2d26556747923c8c0cd50bd2cabdfc470d4ac10eb5149749d1a5b885ad0ddb1714658e4a86a8de2e89486fd2da25cab51d45ce60fea88441677fc8f29da578a7b4011dc31280a917df64e9d9938b0fc34dd7c6d9e036ea400e9f4aef77feb1e8ee4da5220d447809a58afae0a16f34d6d2f0da2b01f70fee46adfbaece4e9c35d73c293ebd845836d5eab903120e0a670abb20fb531c83b84b7f069228612aca52915b4ac0752dc14636bcfcfa3c82360ea94f9d20cdf545896fb97a01468711af6f9b13a02406bbd342dd8e10f23e7a5b9043f4b5b5d9ac0c43c4b065e5da83100841f80d071d1cc665d16f84b337c042d0e755163e03c3a481577f64a830682ec46941161b5f1d3dccfd4dc6bf6ab1e1060a2c4384a917533bb8e6d88a0a37b1b0088b516924f849794aeac85e81d88c1ee48878989d963bf2eb6568b5a3cae41d75e25fa8e217edda41c21a8af887d9b4adf12526e24bcaf1ac1af979c0383ea5a10cb1104dc0350f1c15e0cb7129373d1f5fb2604edf20816b3cad9b865d2bb55c9970c6a5d9b6d8bccaa5bbf7313f1452b0582d1797804e7861fe5b80bc4ce019792d664d79655d90b163c4ad7870793aeada33521beaef582fae87bd9c5ab1eae6b0ce7e59511fad53a6e364d17d4ea10da83f87e87b13538179b0b0d434b716a02e30bb5b8f40243531f5095640ac4cc00032abe9cd813a8b47d6e2fd96f989b4f23b974badcad4b0c628aaddf64c18bdc2d7ad8d68a8754c0e210094c6be943e4ed9527d231339a78797b6be5536f7b03542732a7db3a31937cd88955d035a82fadbe1c56c3a9e47b50a714803fead2626e88182b15a9bb9f312cf46e1f8a5427e380b5c93c9726ca3b9b8432a90d6fc42f7e15302e9c1eff3e1a7d8156276534fe7ee1743a02c398cd871b1f04ef0f9fd95671e8d934cace951111040303e6c0780d9f342c113ec8a422926ac8f9b68f64588cad72d1c4f48a2de3ac1ae6e189f8631384f7b2336d479221e618468dcfe0929ed6e9f1c2bf26aac75940f1813828bb21865cea91fd01f318d0aca8a6acbae4e2c8be8d77ec74ddfc3dcccb48d282a98939e761ad87b7dd3fe517260721d67624f5120d1a2d9d18aa22b8a4bc1fad35a84b4d69782fba4ff999f6766864e13467abb8046113d4a80eb50d5dff0f7c0e4c330e6820aa724a077f5cd3d691cc750fbb35cd3df0466aeb28df0c5ce4d0f8cdfe1b3dac7bef2610dd4894dd30d6b846d2812f53350a8648ad9b0ebe8ef301b4847b5630724759d15bdd0767b1e2af5b11706a4b79d81ab1e150d03896d45065de3504dcc35c58e132e145335ee29fe0250cb384c4be5102e760fecbdd2b05347826ebb4c76b69e655e24c5664a88f925e5e4c6056e728dd7dbe832ede8371b825d6fd2fb79b49f736bfbc08de29587d0b4d295fb04b58647766d29fb9f06ded67152c0970f9ac7ac0593a8f4d64cc0821929b83da239681eb76aa2884bce3ef9d45e4759a0dc0dcb908a1818fec43a1aad2bc081ece0c68c725bf09beab765cad225b06db3ffcbac6db32cd05440393ec65c130cbd8f9ace9c2e4c4aa16e2b89045ab3e2321165b3f52173ac94efb6adca09093032d0c700c830161a38216c2a734d06984e023c18bddfcbb79129110c57e4cfad0649478c382d1a48973817497155459e634eddc1dd351e5f2233a2366b6ec6bab7e20d6c1c86059806886ac4b7935f91f55a928bf1afa02c1d6440e822d33ce781449c829875e291208a89c087ac5ced211cebb703a8ffdec695a7b3ec1c00a1768dd78c8d3d4c1a98f902ca7780f69074b81441af32193645d123eff00d32e30786277a4951c677c620017f947ceddad5f33fcd7417dff1532840d0929e21a29ba0caba8503735060f697071ce19fffb093e72c903a548af32d4f83c1e194e3264154c25431f939a3b6cd983fc836865b6d0515577eab656058572270cbf116ce821d99398f2205d0dd54bd5d3965485bbc7e4de5953f616b855cdf55d3b2303c21daad7141c22e6f895db4d2b6b4a90e1b1969f9a51709cd367b64477693404ed2d2afc12014f3786f15963ffbd91aa7210eda618e2991ba417391fbed1dfa63fd1382be2ef4d650a584feb08f8b6223307e5d4b1a64aeede6effbe55574a552335d16bbb296444c87c756aafe08c650c910924934b26f5ea93e17ae03614dfc429a021768f6648a12b0c3a36ab25be332e7b9aaf1661b7beb5a913f90c6d910c2a305004695a130c1d64f79198e2679c9e03a23e666ddb54d2e4960b3c15445e6ddfa209cb5230a8a242a31ae3e314a532717ea4a29c6654bc24931ee453fabb93a35fc847017ae0af9822c259810e484b3e32f2f5eee11439e535fc729103d93d1c68a70fee5040e92af8eb695cbbcc03661ef22dd11176b6f37d9a8846c2a45bfde87ac4e1b6250e5ee126fe32271543f5539ee468e1096ff4d4d42976f801d995f1816d7dfce0447b01170361e978b201ac2a98187972c4a4e65c04bca9a58a0a02fe1679313ad5c8f8dc7d65ebf2d6708807fbb715bb3fd6c860857350ab1a06adfc02f33c516d103e2a428f7c4b0a2f773e8428749373c739464e5389583f149046b8c2d328b879509ba35a5bd25b7e527fc35581c85591f8d5c87354f27d933affc7f997e9b79d4368ac3c94e2540ccab3d6b54305b60e09ee2b37fec2921c2c277baa12197110deef9dcaaf8c0ed3f9743c7c9c8c85f250b79506ab0c05e6b024b002b1b70960041dc4bc4d217748e33a645e80240c39958e9bc4f6a990919a6c28b0357ecc942787d3461964922c602de2ae2f38fb9017c2a7b2a5d1a2caa2425bd3cf8e27e12501b7a3b5118550af7e0fe469791558b0e1b733a2ee06d3e5acc703cab5fa875b4090b24a074ae66bd9b71af1651a897d1f788aa168d975c08138559a5fc798b2dcf7bd73d296279ce383d9789221ebee42d61df4936bbb678b22a69a0b19f4a6077f9164c70ed20eb962a2a34c78fb5b6e22f7de5b4a29a54c490631081b08d908b202b7e9beacd0b9eb9f0a782aa700715e5ea26055db0b962e7b32c71186d5d57a5e5fc803e2d9fa09f0f80d7cebb315ad27c6135f45b6b2c85655898ef213233fa41faae4cb1f96a66d693f2b3f5e8f860f4e9410b7fe55ed05e987a3dcd91c593facbf10e7c25d552bee346cb510e7acf6576f28cd01fcc6b13577f0ac0e8e2a0229eb8f4e0c2d21f8966ff939e4352eef355df58e3375e3bb6f3ea8911f2abfa3e94721e0f9d38febaf3f3884609c7467787474d4d539d45387fc26e537f17142c029ae054a96b83e0901d726b2872c3f86868b3ff55dcd291d64ba87a00fc6386ad7391d6d75fa53299fd475616f0e419c9acff136fe4197afd9b8edbd9a10b6d4639fd4479f7b93ac8b0c4fa606179776e9ee477a4f541197ecb372c5b2d2e8ee8af1c83979555713da13b18a9845f4429b626d3c8a479ccccb8f45584c5918968238238c706db85b604b4bb7746a7b79c33218e3f8c2edaaa6dc31a96a726e84dc2df3db57191ecebb892fab0e59d612d4905358e6b74d6693f96775367c9d9379215e35f94deae55762f80dfe1e3c9691fb59c8fdd203b97d868d8cdcdf6211d093e3a7f086e542a1321073bf0a596efc91e847ea31ce4067fccf0ec1f83927833b1b1c8b9c4be128e5b23685c6cde15e28ac631096b938f6f0da61940f6e5bd7798ba9f75a5a5232a94fe1d88373f2be54ed837f48411c5dbfe9620f7348c96fba2894abf88d8c53b29c43392e9ce237dbcb6d7bf983edc5391ddf920377d506eeae0b8e444bb0d60b971aeb78f86d877896da75ee43903aecb7fdb651cbb1caf1e3d3f8cdf6f179f4eb6fab83e3531d04bffc1b32ef667b59f3cb05f2b2e1ed3d11e2cf8ddb42d8e226b3451deec3a939e4b1b63a5166eb641eff8ef84499e65f0829f9839f7fa1eacf1c9a433f433ff1e7508c4745f1bb49143ff784b3bf984310a7c1e8a5348e785094e524ea184caf46d5030fa797a49492659da19dea084e90e5cf881f26dd5433e15eeaa5d45f146f9d2fadc5c707631f8c31c675874f0b78c78ec73a74b4748c31c27c6de2c46fe213bcc11e88b68f5bdc925a5cb8ef6242a8a9c13109a738bc14027eb0260aedf898b463c7cb1d3b76ec88423470aee071f26312c4993fbc1af9f2a350079943d3892525ace4594496af82d7437e1773c85289b7170f670ec11ae94e76d07ce74c88c2281ae3cda332687ec777730804105c5e7aa9979aa99b886cb83b8235fe9fb6c807df76c8b344b0129ceac1ad8cfc46c7cbaf8e204e08df8d90e5d7f85983fcc6677b2c3f840df6e035f241d8e08e0d16d16cd0a86548ea533db81d3c82499fc23b292992200e5c4ae1e7dce5f2f380c4ec0d633f89c2afc3c67723e42c58e052eae5f7d24bfd86fb63cb1c4acad2e5bb3994e5ccff068f9c939f63e3e9fc018637b6aef38d9fb6fecce0f6cf7c577fea4feda112f9cd8c94989a636e8e49e5180dc7d64cdde49cfc69fb477e4de1aeca9f19f9d677f5a7eb3a4311fbfdf0c76fb0975f99f84dbf7c13ec7777d5cbc86c2fdfd85e8ef9e9bec6d6a55eb61568ee522bac10b3b6c950a2d4abe97f1bf9f0e8687b5b8d447e43f1ad951376064871bd2cbb6fadfdecbeb5d745fbcf59966537b3d65a9b6536b399b5d65a6b6f66efb57fb37b517fb32cb399b5f666d67e66eda33ecb6ccb5bfb2d594b4b96d9ecdabf2eac23a6a132f8ef3dfbdae682bbcea8d76ed692692fb7b468d95fd9b5d65a6badb5f7b39bfd7571b99fbddd329b596b5f88df7bdfdeec66d9b3d65afbd4ea586bab8579e938839be11dfbd95fdcd9bfdfc5a212ec90beacfd67dfe2e7dc263fdba210a81335af61824bfe7b38df7c73c20963965c87ff1abe8c45e447f931c6f8f2bd18166e5f714ef6739712156bd00fa5c8fd3e3489e294a32c41791d4a718f717fb692a43bcf397f3f652a4b7d39b85daae352339fe10eb5befe7840aa87d6d3ef08906156dfda2afa93fedc5eb6847825ffbd43e9efb9f30da420f900a5a9e8a42b3433f229bb93937f3b4927086dec281e0e6645f64eeaa49602bfa4fa4a6c1eb2c7187f7b382ef422ecb02cbfaf5c9d14b138e7094882fe6fe12e553b29dae8586edce98c2be3f3c68e70197e2f99906588fb4accb11f84a82e09517e3a7aacae66540fcbfebeb6ddbfb47fdac3a6ac695ab6ddcf969ccb1a8bb66538752fae4986d1287b0df51a5214a5acfdcd5e7bd46b7f518c1e6508bf7b812fdfd158d8fbcda56d1fc4d59eaae0765c95fd63f2301573b5ac15695a11ac89414c707412e3c2dde1e9ec455c8c0b77e73e4f67ed3737720ebeb6799173b085db710e25caed10998f3496ac7dca394dc3ef5c7667d10392655be769c4ccfeb2b22bcb50a8cf50289a82ab7d178be210961cf4806c2f5b5f831e901b6e14720e5a1f8b8cfc467b40500fff426d9d2392f6f7b547fd75fddda68d2d417b1446b9b8fcdd6cb61fce41977951702ec3f189d58946bc1ed0c6a2d7033e1dba9d1315214539ca4fd374b4b75be7d97e7c220431e734ec8fb2dbcb47ed85787c125baeece1572eeefd589423472a75835e0d7cfa93c86f5c1efe94e237f765eb3adbbfeef6b2cb16b30bc647b87cffbadbcd578645bfd1a213196a9aa669b1e8d5c0d734ed2fd8ed104a54f677eb8c7db6b914e7e0c7c870ef67b57a2db2a06adf4526aa866b10c4a981619173f067702fded1fe7e863bedb3bfd95f1cad4e869f73b8c372b4350705ad10eb0a3d87481c79a0107360e5d4e23062f4d51d93b251638c0933068dd2d1c95352aa422577a5076466ff966578115908c363f61f238b2ac2c84a55c03072bf2f41a5070436bd1e4db0063abd9c6b6e30622f559c5372ceaf8a26c19a8e30c62308c580d0094a899b6092a55df13e5da7996f4abd5cf8e438b428bb0d9d66be29f572eb554ac1f728a79c53d248c949279a034fb7eae706df7f30a8d5bf2eb72ccb33cbc29c5a3bfe16a8835c4ffdedb4d45e2ee9bcf08ed31e248dfd34e62477f0797ce7fa24795a9446f9d84f07692c2877d0c23bf4a1fcebf27cfddc3a8c4986d94fdccd8bc2795d0d2fd93f99461f5813a9532ce33fd84f771893dcd885b5e02028e9bb7ccb7791e2aeedcbe682bbfe69c118eb6ecc285feeee17c67e68fb409c18f4be9f40273108e244214cdb6660b8ed9329ad4f9b520c885adfd87a3b8f6093d2ad3b827514a2b9bfe3a1d93ecab28f555ab38d7fadc51d0fed9f8fff707704c38030a08931c1805a841989f2d3d1a3b58d2b34e94d986275ebc3fc7bb9d5afb6be9e9530ef1b76d1f84d86fd75c1aaaaaa1dfa49b2df4a4af97056dafd29b516dcf9f47b1f5ebc039fbee38ec7710f12ffee1fff6ea7dc61cfe33bf79364efeaaf4b761336ab7bbf31cce3597a74f8471ce21df9f71d773cd023ee30bfbed9c0c004d08965e8f7637fdddfbf6d11ff893b1e67c2be56ed1deff85f0d93eff22d3ffd351bfcc203b37f0bf60dd4c4a1cceff4623ebf3e36e5cfeb053f2a7695e24e62ab3b824d0c61d7f25be223589630637847fefcc61d0ffcc69e80d93c30cb9f8d656ca00d6ea0ea61eec7deab9f325e30db7cb7aaaa6aa65ce79cd3fde8fa8b524b38c5676878d8cc59bdb5c1b7416c9bf9b9b98d1a30a9f7bf2e8b524a797cc77e923c25262df996cc37c5627c7410ecdbfe8d2231f846d779cd6904633154c6e01dfa3113770f922479feb3e920f8a150eefc797c27e693e4b97530d328dfa683c087b3e3698a773ce6e1fb80f5bbeae7c41d6c92fd6dadf06fccc0702be6f1989fdf5598c7337c0a9b3c290c9027eedc04f9313116d3fa172a0116fb6811fa65700cee626e2c631fbe10ad04f9f3e7b72d227fdac039bb1befdfc126195e4ba4633eb345b0dc59c696fb3e3ac87cef70c0ee0696799425227fa7f18db7b6089665578803773fb23f8acb2ee7df803a704abee8cc56ca297fca18eca345f0b799bec937fdb7dfb0105813ff5f7097ca8135fc017eb0e6e20a3ff8aee678cc23f3f6600d2ac7f660cdf54185d5fee5988f0ed2f50f89bb1f12773c5266fb234f8b6702e85bb00468b14c35026343fb42208e1158133f1ef990b9ff47b67e5a3f2dee5e1ab11fad8d16773c12f361595625a99452e64ab18f1661e2da3e373c3543958c65d417f12413203f242298889092b9fc90886092899892afdc3fe337d6e79c53becf3a67cf6fe9d35f4e1ec73c9ebbe29d7eece37cece7765faaeaafea5f1731ed4192a4ab10b8837d921cb70ee6ee22eda7ae02cc3bf4b122d9c5e3f116c970e719cba84a1ffbee08d661b8dbb14cfd6925a084fef8317690f893c773b444501ff14e7cec31d4cc62763946bd95610bc747555667d2ede53a73cb1c3799fb6311d9d96d0957c6baea06ea2072667e57dc75d61e66adeb5cdf6279277e7d8aabfd28437fbe7c9baf7fe408d64522fd3b18ee3adb2258eeb78118ee2edcc5dcb8c3404fae6f4dab3399e46a93336fdd06727c0ee4183fd312ae3c7103b50812c7eb740dc08628433957d65d84c08ca2239f9c2b7b4d2c6de1234451ce95f9124b473957e645a06029e7cadc89a7a49c2bf3295a1ce55c5903c16489a19cd7c50f4a5e173f28e9205eb0220808a62d88ee4c3f99400747291a1914be7192f7840b529672a2c830e52beb1c6808c349ce95c11f287c722a22279c8a4081152749fa2707207c5cb034f9c9b9b224ee850b47594fce952579492c449194f39c001d1643a91f61e19493a41b165d17eda2c6a9c94a0a54895a41b700610708f8790ddd819fd75951251daea3faa64a2d3f5b3ad517e23dd249628971934ef56b8c3a5ec74b27898556f1706210cd224bea4596348c2c5fc7ebc012cbd6b2c5209925cb6f128784a6922c3f46bfd1f10f8bd5914ef55d0ad1cf772842ce3d69c0a7a7b43afe52a25815f8a55715fe4ecbf8bb98dc5125175242b1e8904fb350abd3f2d4ead0d7b1d1e0bfde162b3ca4ffeb534bc2cb15d33887ebf38a9f2a39275fc746abfc70ad9f6f05e3271d4bc16f3a87a829356a6c322d58088adfc08f97c842a150755616a64a321f7c0a1da47af91088c0bbc13b5c4070a92eb8aa20ecc0d5dab06a56aa54c51c2e057322aad4449de813bde237968a41b1d025ca849de0375df527581c33d3a5544e4484caae8e1d3ab28e31e678797a65c96f225395f8e3164f90589cd39c9c6b72af4f7dccc3772722a2791c1094fc26e6e5bb15a3efbccad1149adb97e6442ec58b70cc60dc1dc11a6fdf51a51c5f6bc5277cd52448c90fc4d9f130f5635085693610b6f893e198992f493a9df013ef4c2c4ef85225aa44ab502b34cee198a9fe298bd7d4f8ee3db9145e379f32310e924e414e32bf6d243827ff379ece393002a892cc7754892a51258a853ef98dcccba75952b061e3dfb391ca363889e385f8079b4b711c9bcc0cfe7c29d58aa9920c76a2d4775429e63b27a2595841a15e8956a15650d85b56cac6b6424f18aa44698bd4f0c5ddcd4f02ca6eef76bd44ef5c16bf8f7af8dd74b96f9e9fdfb8c780e0d22e32f22e72c743fc69e7b148abb2af88ba15e27090e3b82caf59018853e3b17fb05f8d3fccf6b279bee8a3291b7f350fea2697f25d468d14b581e7cb3ae5b4ae36afdcf77a5c69b811e724d63f467c7bb95eb189780595c8056a0a0a15fbc76fe41ba9aa7c61d8dcda88935d14e5f6bb7ce74d3a8cd7c45dc887fc86a833fb9a7c92e5bb2571742924c01af9734321888c3c5b7086bbfe212597e4f918eeee1979fe855ff07c14be328b809eecaf399e7fa7a6e3deee29382729c53b124b0085b292614d62c86cfe6d7a4098f8cd44fd7ba8877a97e97f1805e764ccfe211129655854c5a8e9680a931c95125f4262e228fbd7c84a30a5256ac0796338214df1a92ce9e337f0db8bec1f675e8fae17e6015a1daba373188e93897cfa9810c7b6e8356e7d095675dd9be08e4a3d68c9af9b9369b3b44abb9f44eef007f946d574b7dcedc8b69aa8fb38a2e7c8ee31d96d64ff2e95e503026f9665d957e7b27f36fb67357cb30d6531ab8ac9afc7e6d96ab9219bae47d3c91c1e73c3eaac43d42941453c8a3a4814f294daa54c092a2282472ca2558510266187381c1525051149293ec5c809c4a1946b113a9f69ece26c46c02eabfaaf79dad8bc9caf2a4495e0769d44248dfc26f68b4ad0b3222ab17f7f8d1063ac8ef3e3e31322fb617c1a8ec70f1ae7fabaaced6d15732e0add7ebf68382aa594733ead54850be4497f87be9c12d22eaee737fe9688fbcb2da18450b6952f887995af88c19a2f89453b246e2e67be28362b4663be2aac5a58e5f9ba30cb0e897fd921f1ab4aa3cb11d85442970a9e7b9a9f2cfccf104cfca4e0fbe687048590ec42ce6ef9859452da0f40c14557a57c596429e551bc2a2888a07062490baea603117c81032cacd8028b242c8eae507af5b2811262201dbd90021b1b1a63e82058d8c1924b8ce79ee6c9d8e2b9a7f9af7e7610c4b484076464f9243332fc9754104ff85c587e484938c8577e48494c158ca752053fe47953f7e5de194375d4827bdd97aa89dcdd8f42d8a024acb8a8482206394822074749f4a04acc0fc98aa72b4b92beb83d8d738d8249050da8d04135e79c732ad99067d339e79c5309873ca794f2619c36cc390590e7df1df2fc940af29431622a3c5c5482c8f079d85cf92141a1745365242a466019fe5ba2549ce49a1f1295209a464df11821dfc4295460b044a5064750e981131725430bf722c1d30e18d1adf9214de18365620a227098e2091c4c01032953387971b5fc90a860c1052a68a042c509ae4882357d5f9094c04115a5f80286f3f04d70617e484743d603473ba8e0d4831b6e681264040f968ea01c600a30aea4e0ca114b749103bb38d2a1ef0bd291098eaefa9880a2892c949a60802109060f9042c50c4763dce0082670e0a203a28a1cec40075e3c5de9d901045148f07483335e20da020243f060062b320c2d41d1e29d81c30eb010c20c2eb8704116465e602286a5216a8042045652d8706025062cb8e003192078818d148e08011554c430222a820c2c6c95285c8c01c443173bb822052c611c3dfdd090040e33a8e2002564ec808485a8861c6060c5039e8832c50b34943c89c28676c10f2968a18a0e5cccd042510c553c20c7071864003202638c23947a86a801183624b1a40524b250f180be010c8096a001932fa84c71618008092daa0022861178414500305062062376b88209175250008a26559260018b085c88e248154d3885c0043dfc3001c5a3f2bc68420b25208010020c9f277a62b082051a8628e30a179e488238ef080830bea0e208a1195a90e3c4032af4149ecd08390aa9b73f450289655a7e7cb9555833e4b185900872f7767768e33720691a10e5cc9710a02f3f004e394802e09403818ea84119f9bd1a247c8cac1825e58774e5498ffc908c4890ef03d23836454e7c70820443b8004b0ecccf39886414821cffbdeb90041326403f42f0543c7c9c1b22fa4dc725e58e271e81566a9e8c70770433e20886844da6b4ba534f327d42a7ed464c4c3260c204e80788c70f8f1f1e3f3c5e889be4a184870f8f1730261810f65359a9ac545854552a2c00e05383464d969aa71a3466d044b49426c25a6bad0779907fc099f8076470f5ac15a5b4daba2479d63a8b9c4af0d12244a70f379b1621fe14023d62efa9ed31a0105268428c3d1976f0fde5ecc990c7b3ec91dd4f5c186dcceb5f0fcb90f0727d222f573c33c3adb56e1d7d8fb427cb8d07e6881b0826b9b8c4181797eae222615e8379f93e3a084cbd3418dcf56498d7b6aabd8d0f585f5a9d2a04c26c31ffac4e0cee7ab2cb0b71ed7af56daa8faa5517171fafd6ce00466cd448491729ebdb48c19f7228428142fea4b3c4f39f8dc4b089f536be5fd678f99df572e2783923f3dd4d65893bed5dbebb38b091192c836fa49e7c233085bb2745eaaa7067802caf975f314c8579f90f2b867dcbbfe00afbfa2edb0c0d57c33c32bbb4e0eaedc6e3d9e53b1b155b17bca361974afbaa06e6f1cec23c9eb5b7d8878f0e82e11ded5dbedfad092e3098c7f385bd86491f2d82a417aa2d11faafb2aea7f63122f6278e11ec82b514b63ad8f746ab75199973e9dbed104bc433f699ddb00bbd21e7c386bb3c99733ecd89654ea739c598134bdc4ccd447fd689bb66caacbf1e75e7f52cc37286bb23594dd6829fd764583643c3b5f0112c5bb88b28fb913eaa7ecc16deb1d95b0f7731cbfa282619b5a8e3ec2bbc532bcef0ec6dbee4b2acf36b95b3cecd022f59e29dfad66741c20484ea794a27a5d977f6f2330cd419ee066a2130db50ff7a80ba9968ff003135a540381748a36f7d55fdf517ee5e727dbb557fed6540cb6bef56a77ecb76abbb3dafe95e72b555e76aadf52bfc67626262026202b2b17e5970f54829149f4027dea4837ef0fc1851efabb78910c76b2c8c6d18962dabba2afa313fbc73459965c53bfecf8437adf78e77287d38f68d2fa5945252da9242ba5900cb12ef448c19313162028425456d36b00616a19b7c4929d59142e0dc6a05a294c98b517eec187150df451b8883c210c628f143a30bbffbdc8f85c037e3d6402d42fca802941175c52565951c427e4845f4c0a4c827c7e487540453be2026a58849708ae78a3b573cb1a75feb775d34a4b3ec507fdf5b7f5b1ef6d7cde5fb5bb6ce26d7eceb3f6d8bb9d3be56dd11acabfd77b3b1708735b6be2d919dfe982fde41e17e6b73611ecf8d793ca3649e15de41fd35e1520df378ce70d783c23bfd32435b44e6ae6adde4359f6e93b6eceec691e6f71a7748624f378c56a7e5fd2a5fd3eef5ecc5759bf55bca2c9256670a8177cbfef5d497ebfb17e7acdb9317c59edfd8fa2357dc1dc19a081d49448bb0595fcdfb10c7e5a1cbcfcdfed5b2b9f0d0527f6e75d639677d140a85aaa8576b4b7d5b37978d6ef4515bf5f7610d74ce6beaa59bf53ad7b9dea273d877fd8aa96c22a610481fccbca5090c33c298e4f679f19bfbef53cf09ec6cab5bfdbbbdbcb575335c57d6ed0d3d2a71dd7b063925e184253f39bdd44cc17525b1248b8da5da6feae7e988a78844bf77ff3c1df1e4a48905de47dcee520a85055935aa46edeedeeedeeeddf069835289a8d5a81ad521aad195d52552a420dd0e2e2d9171d688d18a542b56a34faa22ddaed65ac3edc7b2dcbaa42e79e9a11271eb10d76bb8424495b630aa4fd84008892061712e7f7619e11631e489bbdb127717e21cf7a50bfed3e9f7228fa6f43d8710767e5d8ffcc0d57977e76b5ab9ef1d0124c0ed00100b71ae7bbc7dc9955133eeebf710f6bfad3e2ce3f8e5c0839e96ac2875510bb5cf125c721ff7a9dbcfa95cefe1c0afeff9c3e8feb323ae39ad246fbcefa4ecb05ce1a3133a151fe1bff75ee21d1b4af7860b5f695ab9f01140c201a49027dec3b05638311627ae0e43bcbace4f425821aece59b95f6da0f34d4a677d32c880920c28e997e7be80db587c47d1028ddc477e45865664f87528c3c7b24823c3176881051700a7baa4ebad4119554beeae07be80dd63287b85fd13818e8831c61869ac28893c5c3fd9477e4866fce41710bd4028778ff40227389de36f63756413d75f5671ad7f1602d6cba45b42bdc8703a8a93522aa584f1a9452bbede0b8531437cdf867a2d01f47a538fce27c6a4d3bd494ec0b94ff5eddaaf67ac35957a48b2e3f3d92d3c5cdddd31fe8094526ce3dc9b18c634e0e34163835b04a73e93c6edb760451be2aa88db7f9d7b463ec7f7288509c8917768a513421823445111679cb44e692f0c8b91ab53c6ae48688d72cea452d825e3acd8554429a558d297b4de28a5c4ae38b1abc8cb90674c19713b998fea7aa68c91e276c2850953524049fcca513b403969ada2cd0f1e28ccd6d44753c8333e8ec6b72c5a6b7f356752290bb32e14c4efe825593fc2dbd0703c46b06927f8ffe58bbd17abe14efb9dcfd8d7dd0ddbdac9c49e83db6f0371da894d9648b188e9c84765d86d27eda49fb49307b4931751eff590ed637d485d9b322e981cac0b34402159f1430e42df15597ebd5964f9840b9464f91e8e8c6189d0c3dbc3660492129597e14951451619422ab0c8f0fd3d1cda5204d7a3f9976357efcbcca79a0553e6922b44ad6a139711f7a54ea94cd425ea12af4c2cc1c4edb0252a77293b2cbe0a1c4965f80e6b0d1851ae5567ebcd84f745aefef20ba2deaa446e5f2ffbabd660a50c16d820074912ec47d270c3655df15cca9f273ebf5229f5a1e42a9be4fad5867b05590f371b5b8dadad4e9d39303032284c24ed012d7c8821074912cc2807e693cc1ba6c889527d4fce0591bc24305a0025074992ab0639309f246291464e94caa5bc422e759432bc7c2797a486b8d5915c28c85b2cc46a0dd7460c667b39d0ea9c302d135c19c6c38941728c5cbf934fafa93621f1704e904de44a25577945ae2f4b2087c85546c955ea70c6bb72fd98e501715943ae52865c97e4faf494e52e063dc1f893eb771286faf3e166f3b3274025b8d93c376805d6d4f8549560150fc70656dca5c2b85ed4dad42cb84253a0a8a9ff6c03e6c7a78a8cdb795393dfd8ab5ad4c20bf3dc712d809afc268e65bc9afab57ec43fb9e290eb771f712946120505faf32746927ad28110577228aeb0a67ecfbc705f8e8c618950cecb7101a691464e94fa9e5e8ffa561ad7e53b2fd230ee5ac39db648cb77f15d8b4f7e6387602e1b8f4d85125af01379996be17a1187492172e148d45684dac9b9fad18973f52d1c839cabf55d897b82b6ad10f305fcc67efd13ead75bffb21b9661b697e34df2abac4fb962dc8f76d9de31fb35319b11389bfc38e993eb8bb971f7305b142b7a53fd54eade5a2dac01e7ea5fc0b9aa88db3da79a539b2c0abfd7233ebd9afa586f7163d014b97e6cf2a483f8d78736063571aea29ee4fa3504b77e7c82b5befade04eb63cad537f4af780723b2be4389eec676e6c77f416efcf931f2c83cb7296ee748c492e2b60ec59d91adffa2f9d9aa80ce15fb6f33f7d7ca231f0f95d70b9bbc18e07f3c1eef537d5df887d7f403968c404286f5d5c8afb6faa90ad01bdf11bcc2a16b71c96fd8fda2689a4e5124b9c4a328cc40054981433f58b13b43959e45c131076b60bbe4ce2ae4c8cd81a60c3b0d10e52354e96acafdd5c70786cc03bff3b326a432c4fdba1b763feaf484523fa8c207ce4d1ae74e4023e725c8c74227f79d9b58667e758ec6392d288a1f986baeaf87fc97648592a634a0fa8a3b50bfc242fc07076b2295a17446a4a01ca3f489474e39c667e52d2971a512102121051173e8944fc39de037dd0f03f84d90ee4d01237751ee66a4ffd3703ffc6314b2e272f9b17e0e871e83d75e8f6e0ccbf5be51efbd87eae053d3fdd9415e7bdfbce6e437eafb21d3f777d7686994b57d4cea6ab5c24cfdc18ddcdb6bba1d6cca4b664718723fb44118387840ec19b91f92913b8ddc65e4863cc80dc7c80d9d5028140af5d539d4a3fed9bba136b8b461159d6eb5e41b5989e2f0f5557a2495e9d7bfe873e2ca7f353f5a245a209527de891f2d90ca3b1086ebd1c49853979c00fb755e844abd82f7bc6d17f38517459533be787a010a500e33408164fa418a5c7297b0c850830d6080860d32188109821081114eb8e082d1941b7220930e6d034a3f11c3fc805ff53e7cc1cb7ad57b8f475666c8286594d4c8b9478b9c7bf18bebd174d0c9aa5ab2dfc8eefdfc9f3f8fd9628cd542e8fe1a00d961d5b1ab782df83f9af77a2eb8c1a625dfdd01a026775755c8042184b58ae9b6d7e3c125e7de772a8af8bec84114688c91e5033ae0e18beb47861ebc3e9211415cecc88e44aa4695273b98c11843463f740cae262dc821678f564cf9c905c80f698a508e3cd06f214a3f9535b8f0e9cb4dc4277ec94dc4bf9b0647d089c9921388053ac1a72021283dc02c3e4d454b4c622c59120b7482598e94886ebdcc5575d0c9ba2eebe39012bfa901713c4a89468ef374b01499045d95f5e4375d4ccafed08bde21fb2f91255f6f3dc5a8d591af6a29e77ec7f2bf34f9fe32951539990a0ff11ca2dba8f4ad7565450a15d108000001008314000030100a07c5a2d16038ccc25cdb0714800c889a42765c1b88a32488419442c618430c2084003000046084a6a601010dd3415c0b5293676f7ac941718748bd22c768ee00b3c4158cce923d47dd6b34aff8887c1063ad253eac56a3b960549646f1e2575a67ca80c0b0fbdb8617fc271f3874f54cbc606f256f13a8ec6c7c7ed651f3662468f3187d435f68673ff60845244ada426dc97f0d661afead828aaeedb3f0b8ed731a00e0e82463eab209dbfb8a4b99f1a0123b7283d1a65baa73f4aeebebe73551acb411532fa1bb4ef26a9492c737a0e6d38f78ef0370ec4f0430388897ca83514e54c5dd1b396cdc17cb899eb706ae5c9707b1b5eda39a03e56c4e2e27dd4146602a1c27b766ed7e5e8d6c832cf2766e6d42e61c088309a28eb88e67d6c7bedebd40d23d07e8f2dcb3d587e59d78c05cad1e3772dbea2ee48f316342e503d6d607fcc64cb766282d97a31f7ac1fa79e0cfa30200a02d4fb535ea3aefaab01bc375ecb2e7ca0e31867197b53604227cd826f6752ce709a615b7e163da74c81abe01c0e4e1c72aedcfa8777e6c61fbb65e10a4e64d132f103f35f6f88b1376254ea551f64d8c6808d84c9eb6d10b1780d19073348d9218ba26cce286582655439512292f18c167ebf327202d334afd14c124b3277b13f85f929601b81dcd5aa226e259b8594498397275f534fc4ae0011e85df3d9a60db0d2f8987c4efa3324e8f56ef7508ad7276d9d7dfbbe6178ba1ccf76613d38e2dd06de8bcc1eb383dc7b33b09c8d8e15f5b6cbc42efdea3730b820f07ce32703bb6e6ac9b1627147e41d5687e0b0bc29a231fb0e184e635c9f7745ab78141c4e5a1e1f6351dafb94dbb5be798b111ef13a8564b43e93060c8cf94b5863b6612cb56c2b12dba668e4ae17246df270e509df238f96b35a2186e0079ffd07c6da6b563b1ee7b64401b2601f80c07d863dcc3eee8e399c1e5ef93890ad7101adae81f452ac53f2eef8443c22b7bcb83a69931db558fd490862b69b2d3908cdeb61918282cf57d1ab4848d5c2cc224d866d7da7e374bad69499707442528f177509741bdba06789b6860a6ee4a78e9d56c8032b3e7d6be802096b78c1c227b3383956b0b9b2aa778b6b25c5d1b947e2717427dabc2d972b06a133d78fa9f4ab0c489a85fdfb3b2c11653205a297428176fc6e30c19d264f232803b731458a878d876333938b39b569c190644d83696439620bd20d70494342099122b2dffda303b46b1b0122a0a50531b96648ddd03778e841b413df2d88af0ee6f7f02a2c168cb1fe7e6f278ca91a8f6fa504cbba34cb6184ca02d1aafeb91e252db48df02ed90ccff0ac9c0bba78c07ef1b633ea338c880386a02642722190adebc174aae46c45810cc313ce791b24e0411988eaaa5283b0bf2db295746b13964c1f1a496764cd517032cb85ecf4a178f384b2580e77981993903d1688e69dd880518ee416479600b1f432512187b0fb087dc1d79e80f4518918d4f1be051388be59ef2857bcf57f01318524961a75bd53711bbc8d4483a00a9759a0cefd012a3bf9d4f6154daa4c176f4326d8b01634099a0807aaec35fa0bf5e2412bf39956384c74b4025091c11147ad48f7af17bda74d326f6eb30a4356ee9333c20580c701c9e870bd44e18887722562714e8129bf32674ca16c5468daafc7a94fece5a5631bee05161e1e1431545f683fa2d83001f87a1b2a6363676ad5f5ef0f44a506d514f81a554193f83521c2d5bfd99afd7c21091589a25b3fc0b76ddc6a72a905533dff76622a54bf63bae7bd8d13645fe1da4fc5f73e5d9535fb8a2f229692eadc38fe512705636b6569ea51a917589b37261ea32336cbcf2f0480d7a184221a8761d19921f7083f952c7919cb7253387a613f2d579c2a93f69a716bd6e9c9e8a4ca68f81539e93a9a6ee4376695945fc210560f86e0def140e47c4be675c862a92e77896f5688ffc08f301fda784925e4649665f691f164ed2a42aa1d65868cf88aeecc7faad30a978a844ec0fd1ff59900eeb385d6b122153bd7e942a6efa7347b73e601af592e80e190b2188656e88e933ea6338a565e20d285c11bde8ba837e153abb20ea492c955dcdf685ba354001d37c1102ea9092ada047a3e4e709ea5689a8b167850ce48542dd935362e6a58669bb19f8218238f712d2d21ef4c183966e6414fdcb36929a5d86b70f71a32afb04e126a7c546825fda78f348d13104996d00a7ca9c01e00062e0e461d5eae6dd5099d65ab0dcdc04f767656c33a20a1be5b64b76cd48a9f13e24e84344a068e6baa67374bdc830370091eb319013c5e04a48621046d039914e354c009e69b1e285a19e86e654279c591d488a08543189f1f1995a914440632835ce4b63cebbf157bff8ee456ff4765b872ee0674b2fcad9c3f1d3e684c8bb45f8135708e64f4332cbe08c4073804128c14e6b5e5e46849534aa4570ca6451e5c2dae0805a9338ca70c0f9e3dcae700b8bc05ef29d963a946b83382725d2ee61944bb44d7ff832049bc8a4266ceef082f783b904bcecd68b5e14ca44dbed1e8cbad909c2dcbc0a00217d0220712f020eaa228033de631d9a0f9f4fdfbe7fdfca560908da23e35dec6f44136ebae9e332ced81fd4968b55f0a93f4db723c697557a1aa3c978fdc889ebc9e26260048d0f62c7e0678451157ce4d7febdadc7b3b6f67c2f5e02c70bc9c432021bbb003736c4059b77215d80b7a86e075de85ebf211fe27eb3690ea2b27347612b6de56ba3e36963c087aead1cb6c91fed3ec0bfe40b2aca2b61f6aa46d4bbe1319016a320a7dc9590f0d848532f157d1175d3feee5ebca3af7bd30fc388f4c323a200e95c6425e9ca5e77f94a08a2751bdf2020a55bed19c8df18df9ae8f424d081713f4152b1d1b3ca029e18f84556dda74e0db14cef2db5ced1886e5d3d02de0174acbb5de1c3c3e02f5244a0ff0a6eaf25a08e1b0f2560d0937182d64e4a1035c8030b9918a12b56c247ca74057f15fc769683d002c64aa3f2ad47bfa8e06763fac768d335b771bbfb66386286b7ea25b2f772621a8278e54f8c184eff77d8dffed80c00c647c99e62580ebe53c5567077e27bbe74ca53165281f04b410d0b029b270d35b2c2ad776d78fa322d5292b14be9a05e0abb9414d22d29f87ab9628509cad4655bb07c600baa1b27d1bae6699774215d7c9281a3f9d1c9608cec3a92c355785e17a78cca377e583381de193eb5345330824a0594f6ab97cfe23dcbfc3ed068603e4f5502bb3b2371a90e436d0b69578be65ad3401b17534fd0013f8c12b76ca771df91948b3076bb13a189d04fbd1033340f9e52cfc81b07a6c46c0a2c2a23f27a3ab87395a359e777794a34e15790779c4a533915e5463570428a41a04d61ded88117707515af546d648508cfa9c0a76a3ae7e90812bc6b1286d6ff4e6a2fed613cbbf8e99d07a4b2c0ae056ee8eb7e4674722a58f6abc2e3d6300ffbaa503892f613cefd8f9ee3806e57c5e7800b5ef1dc0f02f1939879cf7362597edff00de7789fb3100861bc663516ac8b5607cb3eb09bbc232d0499f16acc919a21ada634687cec0c85dacacac00f520c8ce466636261d3014a426fe6e7eca78fe6a6553f9d29883565d4a3e286a6625e7a9ef4b27686b4cc453a27be778ac34d6f4fa5453899c8132beb3dab0c22f7d0e6f12ff85ddffc701c6e6839cf48317a33dc7967931f1838487a243c3ae2e1868d2bd8c1507a0326e3aa96563fb100544b513d6afd4087a3de755c480a0771afdf98aa5ff637596427a0545644f791f9e948ff15e936de996cc657fe250938ddb9365374f6bb945cd49799aa85fd8256a2b483fccfe44e164d2c569e0692a13b46dd43a9be5b97f266ac59305725a9e225bbb92f1cef16279b8b97c88afe875bdaab5618e1f9cd2a42b0435b790ad87a031112fed92373fe377b1dd1a8e37a2444e52c3c3e5ae3c0055b855ba728743f7356f984c89474da4fba746a21a4f9f509bccb18858da72735d1ba3d99b8078e3998424841d3622b5c33f52fb26773a7bbefc7f42976ef5c0e09d90a5c96f599076ecd0f3bdca3b1d20b27f0cfebdb7b062582fd18756864585084f3478593cb765ac3fe5d35192b49a8ae734a56e5f3733c8c079038a4f8a0d85a6f2c090024b4feaa52758cd6a140c00430c882349c6c10201e0a05b72cf1e31b5240de3b296aa3d08db336eaadd820d8eb95d814b48b10d900b57174a144b49498ab100f3363a679a6dbdac7fe2e99254afaecdc0d12976ead1dfe60cd58fc06286e19b7502a38ac7a2e2652e753f62481caa0628b1b880a3e2b9bb6599a76358c52081e8a7ef31652bb2019c8eb0e31d452f46aa66cf44b287c9f1652c64a8afd4ec32fa2c6ca0a883ca2a28b97604b06245e051b69a5a093a4cfe5cf2ae4ab92a008e6944d30ba16a7ebb396f5bed3d0f82334705e09d7d40c853bc787ecfca89c85764c878386f38bc37d1e5a350d95b6b88f7137f230bcbe3b45472e398d0ca4f18b0bf851331f7741c2c66e8aaf342cc1d93134c23d84e3d04f62e9adecdcfd2466ebefbf3f5c45e4947bc0904875f0860bc26130238d6ac1a9811bc323ae60fd3b89dbfc27b20a2e1bc1a353cdac535d356f4c35fafc5b9c6d7eb09d143db6b8c77322e42f8d8adf20695a92640f1a2ff3c6e2efccafa55d26cd413bf2f8373aaa071570be8a35fbc94de396f7eca746b714e7ebc2df5881207dda3b5fe63a66ff6668b148a5fda0d04e7b75e1de48713f872e07084ebe81e8d98a77d06dba76142a65ede7ac07bd264c67654fd100133a36882c8c803972632b761842b7add9369e50166969cd058bab58f075cc96fcb255330bd57c0e52f418757505b97965a4684a10c400cf9319aa9f7248b8f584d22c7c443708f1925ee01b244a283d78f78a530a4ae099c48fae7061bde12ee9d12a485d84e5dc73c956c9ccfa9411aaacc09ecfa4d8bf121b8eebcc31686955e50bf0b8b77e0178cf922bc16cb4a0730ee9533e89d6c61ccd9f6212225f65ddee8a2447a18b25f5be1729012719109391ede0583e4f957b70b108f2bb36342a81868db27091726bc959896e10515788809ce7905cccad17d310702912f429033ff0bd22b4257d02cc67df8343743244f58473542126a3645b4651cb6454df0076b9730d82279cac18cec35c5f06b25e3e189f68b85eafa74594937a4ed5955e1ad5e8649f7084e27fddb692a6518c9862264c6ed770a9e9883d328f8de4d7e497302ae08dd2e6b80f2a8ac7f6c42cf689a2ff8c4c072b1828357d6787923d754be43ea70d0f89473c13945a9d6b873b99612807e42278901182a4c35cbb584ec388537e81cb4f0b27178e1cf338cdc79ec966042362a64aa241bb6811b483777280e8f892bcc7b3fee53116bf0cb1cb595e1f43c08c8fb9ac1b6c2b98de6cce02a539184c3c08f20a4791024153783735350b2fe988179dc32ea819f33c60b380c4481a165d5c99adfe800b5bc58bfae9a877de25637ab618928a84a2bd726896b3b819b8c9bf6330ba47cba6ba7357511580db802862b758a281a0f09edd432af63e7a4e7c140db957bf870e265b45ce6305ccba873d9d01759082bc69ed2b50ef2eb6ecc743b8d1eb98d46a9f39ecfc053ffe234606814aaa49f01f372c04242894e0045a027ce99e280a22704035cef42373050d6bf8072cb36b50be1e3d7293a2193f8837f35612e81cff570ca730086c95fce571e24d4d2b45d96acf6dd503b05fc6892256ce1cd9bfad4e55929e0cc7859ef0c3186336998011151724d58b876c70234e0564f591d9caef1aa9abd74c36a27a15bd5e43138047c74712735f521b05ec8d5cd97cd3785099b0ab939c3c9dbafb5977eff0f2f32e21c80589e4d96424532546c90f7b682c9aa8abd8a441ceb1668655caaf90e3f642482d1cefa029b5846e31b650121a171b0fa406e9d5f314e8019cda428809342fbea647e870df80c74cb249a3b12ba1819093a9b6bbb1f9402eb9afbf958d5c269d241b717027a1cdfdd6f5c6b82e487a7a3a362de290339a4b97a4eaecf74e74687aea51e0431fc179bc9b2d26877c2050a554555f067e653a958e90a5b709627c04938a14f3f11f581cb134e31febd0bac99f2bdf9e8694e59c8ec0a76ede05c8a1ec446fe0d56ae103689b5b39ecf06859fd7d198e1e43de68f60111bb905943c874722927244b97782df9d374f012b684287ca3c664cf212328a252ad94713203498a37f7238f01c114322f2cc0194f18b43ef6c7aa82bd7c16e21fdc6807c76804d8e4867f608d3ce4a50a93864e9ae2f9d11c20d3f5b69f27b253e027439fe0d0bbd98abfb6bf443a3fa13c5e5ab12137f521c94e11790fd850a220a5c5cd52f2e2ee011fc21203925c8706e0af65e8080d72c4729746b29abb989ce6864efbe1734498a29a53c4a558794a52ae25f0aacc24f6ebf27b5382200874b5f7af48112d748d007f8e2d30512edd5718b21ec281cd177ecc34fe808b6912dd83d83751fb254e995519b2b6fbe912451ac523d5c188b73214d4071bb0c1a8c4b5e29e10323ef8331c42ffd888689cee7346364892737572f8a1d246434fb51f376341885731def3137087c186ecc166084b078faf593772b34cf76c8e33b5eec937e9b102739f9ce27f1f743a93a6544230484a45bab7a8309aa81b5a150f3d12adc2cdd38ae0e74460e37e9bcced30ee877a6454e7fa4ee23d5e269ef57bd315b4f56751f10f921fb734a148a7cf00aea7bf0e3d2268a8431c138e8c799c0a10e2b89b655ba8950bdf46e8697aab15c56437da4f132e06d8fea136c707ab29b20b2050b1a4c2b64b95f7c63d7210d0c527912494cde1fa81e3dbab98418b9c2e14d363e0b36e98a98a55ab2c2a70340287f0bb74bb6d4d3f4fb31f997fb3e40e3c7aa676ace01125486e59698dbed2c86c674e5725f8e60cfaa14225cd5ccca44770c11540febab173e1c915aafe6ea479388590f3b9076a4d31b4770fa56c48c17753315c3f8d2de811125e59fd065683153cdbb33a6f55c75cf827266b4bfbd0bfc33f41892a1a4e38a9d16de22c5502382718d98fecbc05e432967e79b700d56a050b302de40c377e3bd3683b9c8fc69d750b2b8dfd34f4aacf0c3d4803800b2d02dc8228141b20198b8c009c4c18cbb3ff1d89747796a96ee6b40a5e0963dea017f9c55b1c9f868499466f305e8228592519bd83d77ba32601bf09f4e8fae2a1162a86388b6bfd3ad3a963bfc162082bfb2ebac3bf955b370462436a69ec6e69b8e1c016e33c52cd3c92fa86e9bc6dedbc9b206d8bdca08d88037b07f095a4d1d732540cf278347124a230ab4a50051fe93f14e87fcf1c8058c9d7003431838696628488079406a06510856c69600516428f8fb44b8a80d8b0e86acfdc10af303bcd91ac73b9c07faf3097916224e37ca64962d9c0c08da655b447743a15ed90fbda8296baea7f5ffadbf270c9b1e32276776a1da318c143cb606244b4dca190a6f2f014231c2295b67ddbc92f6057de520be0749f9b4f901070d0ed51bdca799beb0e9555e86bcd7b43ad8c154a486d5249ce7f8480ca695c16f5c0a026d8ebd5388d78b4be6fa4057a0f7abadf3806b8cdc12c549fd436d56da488614460a889cefb0d92761a72ac9d0b166312a8b0768d3cae1de68e4559bf2d03575346d9458f026ccec97a31187cbdf7cca852f9b9141327199559ff5dff1ceea43b027b85c8de3b9baf062bdd7cb9484e5399187acd4f80a7fe32ab622c2424969bf34b3318940084b0abe051f630e7e522dcd41181c07dd71d1d232ce41c69a65544471168e46e7478f95e1b5234f2d1f9411eabe3808baa065a8a978b78cdb96ae6437d1a49499ca7c97d1d7277d434b786dde88dae74d7b6856c4bd121200f584394c2ae3429781062a8d2bc61fc47699d7dbb34212a1d30b8237fb2f6df357c8435f463d254e287cc98245793f15c36f780093dab4b97cae0c48fbc3a434f007d5f15310518aeb1a40d3a65335c0019be608fd3543174d3a34323c8195040b9f38bb44e2ffd9a5a27cf0e471d5fa69d80475f60fab6b88d8434086aa545ba66fb27d7aa97f2d7ccb5400d368d5563b47e44b917bb147d15152304b5d246f5a7d241628816c84be13b695b0f833cec82c2b067edca672129b8422ab4ac6484f072bd183ea5747492ca13128c979fce6335239de87eb2617514a0ece298aed94562dcf682a2b82762a17581e0a6890ec28e128de89882df2aa4d256fbbe5086286d33726f5f2ef5ad4b4c2e612fdcbdc94bfd6044fcb51f01647ef3da9554d1c01d4acca3345fb8a5c86c4606411c0c5a98f90e53fc653f404a3daab7629108bdff06aa3d4b88514207c2c23d02e390d0d7ec3d28c18583054f1c3445c7d37924de5b306048bbc348fbf232229ef31cfe824c38812a6295dc758b7eaf446c3022b40359d5254ed180b634a7369cfcd11477547694be4a7e080f94bfb6beabe85686ba877fa75ae048d38fcebbece1a80cce0d0a4b0c3215c8915e3496b3a24949abbda3bdde5ddb6d7848dd65a756deed9d60f106dfe545bf381d325676ffc2480cd2db373871d549d8fe51edc743e0750c1a95db605939657fb1ce69d04c7d91bb1db12ff804b07f4cae4669cad22c14acbfbaef921b9769534422e354eb471cd74f113e20a2848b10eb0db50855cd10d2c8a6d555ee3ab0b8ba7cfe5d17a1ca505094eed3d56d6876d5f108b45a36f57e7414b548b3345ad9d0c7c1c97a2a9f81e0982266b7e79ce3d33bbf274962d08181b0edba796a3fce3b14013b296ab1677c61775d48f8292180f431653b62790bffcdc0977fd54056122b2d10733856eec127100c3b2cfaf5e06f37330720e1b234b43c84f920c3fcdd38431853316ec0041d043790846381531cfd06b2cc01bafbf2764ce4a5d2970f1bcc0eeb91a4217735ad922035c63917066e74cd2299fbebead360893732a1a2e203901f17a29addfb63294dd67d885ba3e8d7d547c45ba4ac42c89ad19e6a88be90361d97a98e797ff44a2c43625c5a7aa1fa08a272c784689d29b9dfcd5e63bee78e0f693d96d142d386b8d5173d76402864833a65a0019e327b5ff98787e0bbde638add3277c38a4517d790c95cc61ff8a573ec6705b93d2bef4c32d404c983a515bd1531e3ca0f52793884dd265896e36e57741f6e231099b7e543c5777df1260be15f0c009ae80aeb120ab0ce1f8404e0b372d3a05b255e9c9231b21ef40a133ac9e53cefe5a035f6f8d942b91cc31b1397af7fb16abd45ad36391b568c39c593f0ee74ae049d4ba685cc604aea9033b1282684ff0fd436024238264898221348a114e465fa2c82c579bc0a191ffd8011ddd3ea07e2fca18349d3cd1ec9584afe54617c1cdc8fdd367cab64a382e61c0c89296cb4015e6f62021bde83487f94a1ffd9e2eec4f1893020ee0db46da1e6600d75407ba51a417a01eab11b465ba94e702b039a4c3e7289f52631f86da84f752600469b257ee2b168b65b5c4c998f2898ec873a6d5d155bce613b8bbc12bc29cced3946ad2f2801167de9c92720ea75cd43fd454059ef7259bda4e3e65b0f920532695cd67a647e6788e275dcb26040ed420018da7083d2e0f5285ad4c421977978bf94b550fae2dbb65a605ea567c9cd5a267e8726010520b9e9e167a0f564b71a01647b99a3698df40886a278dd7f2513aa65b912968ec7f8202d04fbce3e050ec40ca55738128717ee76ca0a1dbef8b9374ab3cc526f4226e2cb92a22cba85692e48e5ae96c060529dea21682458a0aaa9006e3d60b5c85915192dedae85c141e54c11c35f493a3fdeb1806ad93b3523f5548bfb590553737b851bfa6511fd774ed2ab03814db00abb952002d04c120e5b3e289c2cd61fb0369e828479c5077d8ef65d663976cbc0e1cba926da2d68af26990516a62e512ac601af72eb24d69bdc05edba3d1b3222d44f5a1184155592c5798c6437e047fe08a6b5d307d78e40877d2d48ea47e93002cd04b4d380293e0cefecc809820f9308dcd65e297a51cd00c1548d64af010ba445fd4667b4367b1d1d6e646824491aa6411ea8835592787a079da042fdcf4e24ca06e00fa38f65ac4c9cc62209b4c88d21dc719542ac07b9adb7e85c0e21da80b271bb9c1d73484cc8e2c88025cf90d51ecfb7caaf5a082b417aea41d090859eeea01198364046fda4a069af143ae7ea4851ba702ea3729d3e64c009007e33261640270b41ddda3101908442049e1e8f1d1122980e6bfa641d804d858d87ff65bb43211206768e0d8b2afbd3ba0d066825954bbf2e1e3ab43743c28349f13dc38f59cc13f947fdaa57a3a48320d647f42c40b41a0a05b5dcd8ca5a9f6a2857864f81f78a174d5e08622de9c5c07c6712ad9b9fc1d4e1428e515f653a3c1abac9622992fdb72fed9e5a9aee17be401e8aa8f1a5405fedf9e2cd5f15f733d159395ce413f9f515ebc91e702f1120c16fc4d96926809246a5266002e34db38a14e3b50dc4ce527a049382f2a506441daf01f3acb60727d7b95b7ec8feed460de240d1a0dab2167622297275264ec911dddd01d22ae985c88501ceb2b5725056c4339084fd8a501666e478537a6fbc5e1e94461292e40a569b306e8d8b3635b54aeac73ad7451100cabc3cfee34452728545403cc86184ec5d1ed03a7bb1c0124c569dd87261f0a1db4e577ba0c5c9fe8cb50c1660c24ed5dbd8ba36be026be0bf2bc7138558afc052421a6a860ef5eec773617490e089fecd207b0e59eacefa1a1579b1c3fe0e5bfc7a321d2931c892d2b07ccc79e43c2c2d77139793237b2d51f19407c144dffef0702067e09f4a3a7283a63569e9b6a2a973885e11f7fa39dc58eb3ab0b9071395a4a280bc9b752811328590c948964874f8aead89ef2da4a60e71d4479a5c711e3b00dcc8239f02a7ae262be94e614470f40469585ac569e867cbc0c7290a6135430689e882d445b81bc892feb80196321caead90842753fb834c3718f43d0a1e7f9f4f67778ca607f47cc9e17875ceb07f9b60f0c6ec1e314e2d5a5059ab6d769c37beafa535dc1c84e077482b946ca94486987e4bd725cbfb6e000c22dcf083a5d5bc296e18d387236faba53c5245c2855b4a8f085623de10e84f2c0044b68ca5e0394b901c1b76802d8b53fc45439f3c4c98cde641c3146f09bc72792ae287053d43b14991a053f077d83c66554fce25decd0ad89222366dda253ead9e43d7948120a520cbfc474df043a8b9a0aeb5b30826c5d738338bff2d260110542010928c4dd452cc8cdcf38a4f056608d5c39e5fb3aa951168e51493702a61b5684d910189fd8be87a80ac199a431c090f09da2ada075c2300afe16c2329b3899b6800087b8a6081bc56f7a05c2be04e10dcbd54aaae71393bcb99003e5f269c141a379d24a97e7b114041270d836d7002525b3809eb3cc758f901e6a2773ca9e33f057c9ea825dd5cfa0245a0a904026e255965bde4679f8a143e1a9c90055b2ccc3e645d572bd0ba175694bbe1ebdc002cc6b1caededa69b23d7bf7243e66112bc34437cfd26f4f141137997e818514d353da6a1cb254144b686d76de9bcb8c3d55262ec2b840d5090ae5e87a79b37a1f343db772420bf7a0466f51381239a8773cae2bb82ad5825776c6a2d31845cf1c56b2236011b5b9aa3043c3b697c935df495792c9136d44e1a9b1167bbe806cbb194f25cac24a7883b1a5994126e87f39b78d07324b85ea512e01c41d2b728124d63a4a23e5548f4ad33b27fe6d8345df10caeffcc27964a004da02d57579acf80937bcfc92badbcccc1fedf3e28286783c0d803fc005806ba0c80fe704a0d00112558a8ba0ff6e04a54b9d9ffd9866ff6c14df6bbd5b1de079acaaae15b40fcfd127fc39406b4d6e5af1c80f48bbe2275ff7a197788847581638b300ce796157803235c6efe521e5d2e17cab15f3eaf2d7b7c7ee4e55e3e6e1be67fd098d3fb5cd198f8a1b8a358155644cdf48fd70aa8f7d0a68513465c74bf3ac0b1ceb623a7f5aedc4c825b9f2b4da3dd2a8a65b201e27d2f21164f8b602eaac537ed3c509c9c12726f751817c5e0a9ac43e28380a746222087d6b0b320af83939b738dba0838cd08843ca7a0074f990714eae4b789fa14191c80950c1124453655be8edd201266ac02005f831bcb0f3d9e46fc531a5a519a56ac3933080ff3876aedec5f2d3069dd15f10f45ff74aa09c1d5428b659b332240070ede5b3a4788200f580c5c2d1cfa9b65e3891743b1f0edba9efb95462803c3be406d13a2bf615981c1c702811e806bdbb13f657c94ef7d2fc28fd6d3fa8034a7b24aea0d470a94dfae1d29a8c7b89493360fff4cba488699e8cccbfce433845657860ea8670c18591eb8aec78c07f1ffda5b99d7818197391aec1366f16598a752cc88ef7f3442de500c78a7c00d30ef813cde01be150dd45373205cc99d50157e152038847e1b09ecb59a08506a44a072d504e194e6c491a6e426f070bca06a3656474da08cff77ebd33e661f835734fee60d4316cd21be8cf8d255e0ec52927ad602cea306ba93d548921138fda3e4f0112832066539ba22a848523f82562ba6ed1e4463a9b3399864b3cfe7ada753f2b928b305a791f1c0d5ec233168dabd0f08ec9652e4d3682beb2748d09f67fd0397228dece2be766600b894cb90e642097a15b1952d70db5d89823c91a0ed70bfbe0a0baabe8613a51e901ca00dcf50804b41bbe8b9a8c2bbdbff60514e0292acce04e8b981f801f0b28ac5d69f9f2d017614138ef6bddcaf4760bcaa8c6860dba60af6487b76e0fef5fa47d6e641250a7a3261792b93105c5e269c75d6c00dc26cc1bf01af84ee481e379128815e25e8604575008ee52330fdd0e5039f47a6021ff7de63be6bbf72919c08a59bc627d15ac20737d284d0d9bba8a2272584e41ee799f7b1712faf9c7565aaee667a71f69c35202768eb9048e6b8b60fcb7239185b106f2272b65190578c9b3d70b0eb63aaaf2e70aa074738e86aac3ff23ef0a61f59b122fb9077b1c3336f863fd6882419107628b19794298fc4395dd276d0f9eb868086f37fe7e2b1530a63b9362166fb0f869302722056d0e279fb23f520ce74bef39751317ce04a2faf44f20f0281d3fb0c69b18151da6d611c4107deb97d16c6bd9e09883e144d896157bb93d26455683513324c481f02614782cba76462120a9846f1a712477d68e423a897f4df2b8845e7ac1a49d3fb7d2862fc5fadb4f2ce8251100720a835c489278ded60e5fe89b515305a2a9d3a28f392257505a6a84447f8c320208c294d8707e1dd68ddd2543df9e99526be57406b23752a6bf5a736ac0a86b7cc2764473b0ef0d1225af15b0b61244a13df2bc0368440eaebf4a3020405fb4aff9e88f556211b9283601ca520a65100b4ff9f0a3de5917bb060a947e87b829686e5405308a0f00b158b4e528d77a43ec584814b95ada38b078f14b41ec418bd2abc171ec948e9f27d879cf9c33e8a3d2b052f05215b960b24cf2773c8e6f369cdd0586877f71d1b3f99c3393f4b10f7fed1ef0a02ec1191727c24b15dec20fffd4f5befba19e48362b55a99df1f6925c9c2fbb7ff6aa5739f4345610a962a8469b45ee8e5f7edba22b748a761dfbf07af95f3bc3c8fde0c6e5aec6cfef05f712f767066599a591ae3f9e5ad798e0ffcb13b616c3203f327b895adc9b8e3c011780d3c065038f4786b1ee84f5cf3d658b092706bb4b70f6e3e8797d0b34f076ef527ac7e50af906967d0404a58266a485903cfca1334449532775ef2f77f6555b8c3f85f79310ad50db9a5d88077e3538f6c2ea946e6449bf3a0cca75d09040d34da196828e6f7f16b4073933094a1f812d641802c6abdccc83bf1851160cfaf3a3aa2f0ecd2cbc83b10b699d65b33c7c3560ca59c5a2b624f058be4429ff9f003cb7c0d43c1ec4afbb0bf5256b868ceed14b5e1469c147fccc52ef059826cdb227e75022164dcbd25980e00e7abc02d679b82d9316f3bd1eb6300d5e7a83f0bea3f7594ca7d31cd98cf8f9640a74ab249a1a099e0cebf0b3f123ed3344c4437ef2ed9c5e8e3ddd1a15a5e5d2d3b595763d14400b7bfa72dc7598ecbbeb6fe178b8fc7d6521fad79aebd379bd7f5c81e94378b6c70111720b5ba4ef18274302ea3467f3a121e2fb8e2687e7abd45593dac27962203c990fff626ea3fc80f4b538a1f8b0224145b68d9f3ceb8f07674b0cd23840bdcdeb1e29b65dc9d159ec740c60a1496acf8db0e0bf3440d77ae086cb3ebabba6d3b7f69e81d9f1858a01311d4567e2c8ded2b951e530fd435675e90d4186337d6a9e2fb9638c5ff277e9a8b1d2f13dbfd0af6ea5ffaf351495019e37e0f9b88a3fb5ed5dc9df39e64b14e807d3fcb80b3a9fab96ad71d232f1e2d5719694eef7a385b700ce68b626fb0c43a6f7fc4d790dfc7cf71c9da61e746d0fb802a2a667485659dfe0af4b37a8a5c2491d68f2bc4aad7724cd74da37535cecf51972f9e133b71325a776c611a5aa794edab8c0c654a6ac76c41093d966fed9ed68b041dd2145808e71a04f7d4ce981cee7ab9bd0899d0f4b6d799d711d9cce8df623956337489f65463a5e11615253c58d2fab929580f8ca5fa332326ed8f8a2ed5335f42055c0bbc4e045d8d928e9dee57e064fc66c439dcf4bb619e2999fa3030786b6bdb3b4f81e7815e9a464a31b0245b251b15ae7c7f885f738fad1721cb7677f5e5501679b2d585cd645e3895a26426d78e70d233b63bd8991bb0cc41dfc243ce7f831fa902fd26c302752ebeb01555489ceb1618ce155e925be6350ee6da2173e1653370d07876c748f0721b16bb7534b875fc507631007cdd893f425413641c557dd909aa3d2aa75c134959f38911c201b8b5cd82ace6c9b0dbbdab82689bf4a3fc11442ef23f6cdafef8bb2d7268acae164d66aa83be1e6bd7bdd03428342e6556492980112d5925cad1c0f44b90cbcf8385f52a6c20b9b5c84bdec8bbb7cafff48de7bdc6369f024ce3a0f9de7dd08af119ec953f14611010aa1c1d228b0584d09b1ac6d8fce37f0e82d6b714cf5840130490ad516a903793629bf743daf967bcbe34440e2a3d1b309e1bdf09b90259f7aac374980af6e9d6fd2994897018c3424be505d62006f1934354d4ead4070300f2d5a4a2a4bb7ca69be17168152e1ecf54ad8a2a1f40e9418180817faf9e43aa71fd39156169f5892fb8fef8c3333d26f9c73d1ea6b55f7a7c03490a83fc0a904039879f1ee117904fa23091c4ffa7f703a4836f47123f2c6ed4a59fd495d785f124d3ec6895118b2f62696daeb58519dad1f3079d47ced2fc9d1f4d2382b1f5fb4a2cb80009eccebfa28d1647b72a462c77f8092643ce1f02af73964a2fea17003d31fdc5a2a88b4f539621d1e827341256adf9aea42501d0b230a0c680fe33facd77aba90076e3c4f80e8b63015cf02191877c267f0309769205a03f1a5bdafcd1f0a817119ba3773fa061ca898f80f97df1d11d607fd2203a4968ba8f5d8ed41a9b16973a3af7fcddce59d7b24f8d33347561cb2e12c7ee0e7961455ec3eb9fcf8ee4aac509b0c0e680ccb687fb4dae03318ca77f154e728fcfa82fb995c0ad1f0a5bbe03ab22554fc0bab00d05f1e386080e0c0f8c20eb4b16c828148291b5bed33a36e4333229d2769e596353ae4ec917d08d41c8daef18f71aae2d2da608b3ea469df56c9a5a3d6f35b17ae856e294a754b13db79c66756145dda1506cbcbbb6c30f953df1af1fbd9d5085f7e0db94671e3847c10552f3d0f00dd682517d40cd6fc2edb02e85403ef346d09aa7eb207d6690eb490938f8adcb9f753e7a05e0ec812bdb8ec2b6da37f324e463ff475ea4d246691b4edacc6b21d8613e3e01b3d984dc64d0eb31a6dab50a1ef6be5cb2e0fad64bb4ff7f0eede313b63a8dadbca35619b41c926ee29a3035a1fbce89679d94ed1c764a11f033fe308b31732d959405a0ef3362c6b3de3ce9ecfdea7f418d172c04b4f4b7fae75c153268a0bd646355292db2098390bd4fe0b51c2ecbd5c678a02185d6135153653d0a32d09418acbb08a2dfcdfbf50e72856cc78dc0d4489aa563e2306c38a97e42fc46b50d824701d01455d6e461c066419509cdb4d89842b4cb3e8283c31392132403051747517a7bacb83c7a27a67b1e0778e276a5f502c6c5a6435aaf006f8e5c2c07ae0227ec79656f9f937b7233e33c3dcd82e40efde94fdf6536be40262ee01227df28ee324d0d6b1dd6a1de9bd547d58332dd1b4ae10dc6b7c502f00b4d06efdcd2e270ccf873f3f24d2333ed42a1ef45790818b64bd159b5744d5e316f658101766c0c07b856b28178a283c5b7698094ecd69f867b124fff3874a29b2d9eed2ce818135867668e9ce532b7990a2c0caf92685c6965b940abf8b278df92e65b6b4fc5080b439b8731533a99ddc1691629e5bd32c7aebad7a2a5085160f38f1e344b8808e308695f988abf1102ac45a4e35ea4e916c60d97e2a038a8a0dcd36f9aa2d49e04a48efaae09e489c3f6fbb350191a135e5933cf053943f36cb23c754e7d247da4e7c6a21202dfaf9ba6466aedd9f31cf0953e848b2dea2882588f66d0c2811dcafbec4d3ef7ea3584c428c877eeec6c6f21845183573ee749934cd124790c682cb1e343c917d2a81e1b2a07018ef9dcc5624ed8102fe13de2fdbb0a2db1e12f61a86c851e5b6421dc507c3b2033d0fa8b708f4a0e9d9896ea0f597e1224a85288e44aaa5fa74439446f6a8bc4800d52bd9a87f3a108330a0730a4686a074f0dbbd9e6175d1f6bbee0fe0a239aafc9a5b94255066f5186a251497817fe9b6490d481f33ed0765b611b7e88372665ef6243202c18100354a12a4abb8204badba8c740788c2e116e1891bc34a25e64eeedfb6cd59b123ec9fa393eaedcaab1ff7829ed8f613b85a5b3036bb540c72563d403a639c590106c07c3eea71da60d15177a8491a6e526188c9e97e5a221cc904f2ed11ed03a277af36b3442b9ed897978b9441fccafffdf9016daedf7e68d3fe2607bb9a901a78a8e2133c54b24aa0d94844d091f8cd9f03490e1fb9d6580c5bd24072f9f9de26cb16548529fb0952bbe99f882cfed152c845d7155bdfa3fe180923c27bc7db382e6e81410d988e2c53ab38e50156d54a43d243e7d0d56b73a596d614462cf4be5f5a5c80a7f60baffd520d69a6084111207a62585e2d2f69c57f6238a4233d61c1c087ceca784a8bd784883b8ae1a4ce55de34a0801997c4a9960f95c365888002ca3490b66582cb05a7448be26d72956ef72b712633c97fc6b2be06d04001fc5e5bc5b77f001e38809fc362781774b90b0971c1d69ee8e38127d489834e9259ce5d282dcb1e39e2112e49603807074cea9854ced5b88458bafc6af6dcd9d7014dc1310d4035c109d0512bb9a554dbcc647c91352a6810de4ddb07a192f1e6329ac6e74b8314cbe36e60444792fac72aada84687ace6a5830fd968eab257e46f3eac8c22863c0036b9521d542878c80084c9b888a57c12d01556117a2631b800f46241c407867fae8be31226c398d8dcc8c3c6c98ec8215803dc05b529222a155d79ef7ee51034813b82b1c492d402ae00ad09db9ac919501c84c704196bf1883560bec1c34c877c4efe2dda92d2dc915a300d98bbb02f6f24ba1649bd6ce72bbdadd4aedae82251999f883a7dcd48d31fb6ab8617e2d6d166795858e5d99d04fc4afb167654dc907cd5eebeb29808d746ce317eb9696453ea8bb922471de23d6a8fb750fac5956af3a90bbc475bd4bebb50a70d619efd0a7d7532b363365dbaa3b16ff3e3455690a0f9ad0758b1420d3bcc17a57c00fbacb3337874259e8f0aff51ce22e09161d80263b5c6d1758e84e0731a869d7da463224083bcd0592a99489cceacb8bb92168b2d2ea2399fb7498d0c9c493b778b5b58cb0de72ff06d2249ca544ed9329010333651970ff44ec5d3fb94a695417b1a76fb5139d4f0f8ff9a0ca5c6649ff188891dc13702ff501e2c1de5e7378d5a24b39b6a2cad6ea00a5f5602239e6f1942168cc2a032642ac708f2b34e4757bea425c1934bd5d1331a99a0358dde18567f15f27852e8e1568f67ae887b423544190d6244a4d3353b555d1051bb3ca946be667cc0299ee9597b72ceeb9e9b6f89651aa5e4e2ef8067b90c57ff2b3e04353dcc8492feb20b159db4a7546f26b46086c7f79449ad94af381c10d6d3368468b9f10e0eb845cea84614aa54de8cd441bd3b879a8ee0e280eaae6eaa0c0df8815537882e2256ead5235886f65e2c29a62505e6d051d42f2c63da86109f30145db15407a289f7e12e6d35e6ef921fcd3d622d37d3b2810381d1b42950e99e1051ff21b9241c19ef63c0457f3ca1c0c1d84826a0775b54ed516a8f5a6c8631248a1f61b9e3d4ac69a70a0a46db80768cfa5959a62a2331a8fc05aca8429ab8f68edab40e5fa8d58ad0bc3faf6a96e6d60d2af756ee1841e6fa6cc94722a46effbc34ec0a91d16b811fd11c2090657369a514cc15963907c8f8a0bc28063532869c41b4f12973b6596068d8bac0f0c15408b6edcdb5a067d040568cb2ce73b7af4e3d37b4d5975c89bbd01de1f25f12001a2333597853f99d675e041d0882dcec9de5330a82559749f04cf2c0344c078ddd32dfe9d73979496a63498544181c19eef93d69630a4e73d116aedd6f3c31f09657ff8198424cdfc9a89fd42ab58eb7f3d186b567b253fd518f7e5e0e06f9bb72e6de84a2143767c29396dd3c22464fd0e0dbd89bcccf8ad2658d2b02d636132525c49178b02470b8bd458b0efc381059b2dfd0522a9c9139389b0e675f08c0c279ae3e89ef1f2a569698cb10883997eaa9275175e280ac0ad1d9d639809aec82eb6fb1832ba77e54a6690395477457225e656aad5dc26dbe81ac7c898343bd8e13a5ec6d5ac8a09ffc078791b9700887f3bd5214f1c754add90c9179f2fc26c1747b86f2e4c3da20e329e7fffed15ecc16c34d6e6affac99bbbc66b4c89ecafca69fd845ba12dc0da4f643575fd566bfaa9f7d39ac583db9a59129eeaf4ed49e0e128d7ec1f1045e86355c9c7e9d31d5f567ef1387b70adc37661689aa5f1409d3f5fdf1c51d60fd31d0b7bbd8db8e20f0763e96efcd1b0ea9c46dec7118f0825504e9ff7499db774da5be735cd06efb1e2c35a25f3819cb480ef4b41eab50e5ca29ecd6f7f91d67abfa51271106d65ff1efc4f72c6277970d92e52f86d0757df335aace4330a588d457d383e0dd7823e9fcb809e3c38dc539ec369b201eb0d562a586e38c75d1ae43094087092ea1b5379c926a18a82abcaa6838b3cddf4d2c54cee8c3dccb60bca5b8f7678aa6d61c4ab27f4ac5e7659e9981cfa4560dad92852488e81c96c0a3f115fe539e6c12c4c394d51ba67191b63dd045cc3607a589070702353e14528fd1d6f76a7763160d397b7e825f7d401065ebdea33059ec8d1c002f881b0f41af7ca3b05ff9dd86211e51c95525c3916e0a32b14cdef032dc08a16f4846b49ed37572351d43e965f5c980ed4c3d5707df370f6598039675738ac7560882a8fbc73e7e7a36a61621e7816582d65bb7d0b9392337b7deb457b976eb1a778cb10ef32a059d464d215e7bfbba46b78f25dfc42c613723cad8a44aa341169a5519ae4863dce160c4453064c42db604a015459e158315f5d0df8f0200e28c5080c4d7fbeac0cefb1cb304ed424b40ce6da9950d57929d56ee9a3b34f28d95c9c2644c3cac2940ad8c0f356a4c292978aaee8f218c0f7360c63e98c76bff521732075d98b6821fa3fe9b319aab43afde27c3b666ab0d28a0d8bde98c49852bf7b0ebd2223ea5d8a4af9f6015d54b4eac9ec22c1bdd71a5ba8518d28a1276daa301afc55a1db9375b4fee88228b210ca9133aa9d013febdfc9f800f945c11e826203a167c76b0295dca61055ef24a045f548742037297962fb17c2dadc3c54ec54114de095991988b23139a349a801cf505b5880bd0ddade9a7e00a18909712af9b9c47006234026494b6362027c963bf292aa789684546eeb1855ad55d12042886d6e50be7615d3e05360ba6a9362cd423bc05680bcf7e95c3b15ef0442bb19f9a158eb744f42da7947f052d3e6a3d7ff8268b8b5dd31dd8800f7548b5a7cad94632373772a5efa52f1f51045a9ea03cb2f00306704a359bcf6b8dcb46914f6c5869653d151cdda067d5258289fcda4cdb685d16929ed6a4b11d9e6bf670b9dbcb645096be69b2832e93846637914209e5c72bd233d80dd3e1e51e116c5d5d1bf9dafe7ff564a8a4c3640afd9ea05f6c58abf5cbf75d81f9aef0a889d1609c3c3d88ff5c1b8278cc16ddfbd9abcb7eb0198a54288c6d43a3d0131debb441295ec7f55b7031d17b69e0659b15138785ef7f0ca7efb7d58fd038f80acd1d078a9453a146d80868909fd23a08f252877fed1dda86b04cffca3e2596b70e776b8ee6dcc549218e51d58b85fef9e63812d52a0c8dd7f6e24e911c59ba1274ae100f4776cc8381c6085e23be925295a076654a9892bb5e8de39db4426fe0dc4584a62ed56decaff86c6556c5dac18284e0dcef115187196d43cf560da77910f02adbf3ea21756a95a1d879008967538c4dab1bae6e21a0972c944d0072ad879466a316c1cfcb2e4b00554062b5e2eae17be8fec5eeca32a58a0497797189ad8b24b51ce4328e957c3e30f627df3e6bb0efb71cd4bd47df8de3e91f9893af5991f8437965355f99a71f7e62b80b40bf9c5994d7576fbf6b5270cbe2ac3a6246f116acbfe499a003d7f0da22c2f34c28ac7f9a96d3fc1c9760ca37dd08bcd7edae6a3229c912c5a899c8fcfddea3e08ed144c5cd3f4cf7fa92e5b2b5806870ce593fd137a64d75a41c40ad2d0705446e6a96f5239e77d4151d6dc5463328ec9e115e566e31264614bdb80fe9775341e0ab1c9aa037cd8be105736d471016f1ccbd353f043f316acc5c98119a0835b74f55882ddedaac2e53928b5fcc4d5c5b02879c245460ad2e9a74775bdd15702939a3f9417b436a4783de0bc45ea22701b832452780f4b52537b543eec4d57cdd37fea413d4f8b815df1a84746c71c1b5f57451fc560ddd61ee237b4c17148d507244dd60125ab1ea4c2042a08d45152d80cfb07b1bae13ee891c9593d2d81bce25f37afb20a4c7973fd37b746213f326e0d0e3f338d9293fa2073030653bd67a9d580ab4ed9a9f6ea2104324a612cefde7ad043a85af9fc6573a98f190eb1f7ebf081d62148a58cd2ddc11a769809704b7ec623ea6605c5ee9bb0e58f0dd5041639ef54e83bc331edc58297123d27fb2a0ff284a6c8278849a0a157305b7685160469d764072c1ba63f386e50c6789b17474f409d96356845c5aa05323c4e14f5aba6ba24b44dea3ea95ffa70e42b8c63b5024095f8cfef02be1252fc70065175a5cfc89bf3dcbf71061f9b6ca741d82c282fb0834c7b2a35fb208f99bd4566939616b21720edf5d72d7581ff194e341c424e797351b745399da47b1e7c73fbb2997b1cb2ae4ba7baf2f4026f1f932e3bfe47c13fa0fbff8fce766ed8303e21b7dc13dc98b8cf83a83b1b190c0591f0ec36d6f11179ba5f4f18a863883f89ceec1f4c2e8ba1cd5f253dc35067e36e948180e00fec9d0c00866af51567b66d54a5ddaedae87b0886965c9bb40a46191c439eba1cb2c79144124492df5b0fd99fa78fa1ab41c8b074a0907d4cb377ef4891d07509a056f7bde35d19464ff7a3092caeaf99374444bfd1284a5c5d9ee4f4ec6c3c5754ea4c4b921244599307e28a2c2ea5ce02bea799904c4fd12b75068dd10ee9324210903f2152c5ad3119a7f11a0fddc99de0d2a3568777720bf5c8db52ff113fd8b2a71db0f87dd99b4ba742a6738b759feefca62c26a5a4b7e9c7a0f37b1d6b9cb2060596c5447f60420a01572fb2f4d859382cf3e718be661164710d42bd90dcc771281baf425d64fde4406c048475abb278afb3282b8c4b28b454742ae03f38c8288dafc02d82cc0939c7ac2fa6472813b417bedd38dc421a121055cf96ec29f82501f94da51f3348ccc4450e091557b4f47b7aa58bba57ddb4a6b629410c92ba61a1e0ace90c487e7fcc228c7afdbb8a499bcd9782594dc7fe9bbdfe08d6e59eaf032111536c6543bc0766c37e42a8c98161000743709820220deab225a3bbd6f98bc8d678daf748cf7965631f6184a8a2b4a3b5e973ac6ffcf136d0205d4d9a2c61de7ff87e14ee573c5dc55f88399e789b26dd891aba57a679d5ab16a5e8075a6c28426842561b442088de5a889bf715d3a93ab95e242051f371f8921bbccbc1de637cd244948adbb931bc9959881811bb86a24e65b2855bbe99d004317f963d88d244597de72c76e95a4a29531a11c904f47b98182bf547c8583303fd7cd1d80738c3a5bfd23ed8f183440f89a68dbd19b1a471a8d25dbafbddc240a2e5e8a4493b8e5c9703e494da31ac0a355bdb480e75320258c5a5d07789d7e2307b8f0f4639336ec199fbd4e41da908d47ea32ec7223f583398530d6dc4ef73aa5840ae650c97782503de30aab5735999a108b41105d2b00d6dfdccb08dfe793b229fce4cb36853d3b6a331c98450f16a92c86510fc23d5a52fca9e4914f560194dd81127d3f7cb6bb4d2db312c48886c77f112306a53aeffe6eee9f01a6420b50cb091cb893acdbd704214b9e64cd536b905e6067dda1d4d9f7a735e1dc89a9ff1ae093ec6a73d2be80f18b577229f06fb87a81d861cb1312a8ce567c26ae02036d7d3ceb5c50b7584c5db5bee79a6ef2593c7479bc4b4c2a7cae004db6756d2310a29440c16ec7ae2a08fb53c911307fd5f13dfe290ed7a7030271d489cb981866441fba4a916a7da56ed7914b65b6d35b85ecde1cfa6d39ef3ee6d1dc5d80ae3c2075d95bdb200a7fd151c202c3c55c59f44ddf5e42c3206e5696fadfaf5f9e950b4d8a7f6812f2fd80e49e47d32530c67ff4511abd555811089c2683b5bdf5614f8143694287b2093fe6d8ee198b81776460bebaa51008bc67348148ec1fde4ad4998c8ae7ff3150b83162f6ac38db8a10bd91136dddc684d88254a1300c0213b9e792f6a3a44051dafa1b10b086228a560af080f9ead66e98cbd0416b185123015e2d1706fc236a27402627db0cfa265b6439814b2a720b5eca822b4ef5b85d2be340cfb8b0f7f383976f1c1eaf30e5b46311d822942b7b1b5476039749106f67c081da75be05522c3602174f5a94bdfbc500b802def93eb194549194557e8532280d571c2f4fc0c8508cb871ef060497ba0456fc7e4b9045e2921b85816bcda49f9c17591a1b5ffd89b68d377a968fcfe58917b8d43591fe3c544691e89eaceb24006f2cef5098b36c506b0e08176b805973858ab4d31ebbe1856d65578016d8aad123f173e0d9b16c355da329809524920bda2fa66adbce1a9c49c98dfac6ea132323f83deae68e67b4e032065e5568d20924e93e6013b0287e94786d8eab786a813acc9fb32cfe34becbce26de053a277cf0f176ba8546199abda0cca9592b046ffa3187822eb88d8f4b844528f42f3de7127a4f5d802128cd8008537192cae3d9c2ab12f2cba235c6257ec6213d2789d047b345dc11163a37db23f8130020f3b64a7a7bb1370b305dc287b35b62689f16d131c090fe37395aea58fb0a481f1ed0a4daaaf2f94df8b2fd1cfa4f0249b75d323696d9043771675efb66e711c647249268cdcc1cc265b29d19670497823abe3d148617764fb84cfe25bc4b86e629c3e9f9307aa0122f288b1987608110c8826c4c23716881f3fc1a0683a827034981eaadb77d3e3151d2ef5d7a6952164d1edcd512035aa06281006314cb7731933ba9be801e275d5260101354502dc4d5f39c5024add0e876a097b9d350d6347c284b60c51ea8c30aba6646b2259196b7d654a333095648f57f00238b0e799bbf2d5352abaacf6552c9244ad20cbc20a17ba5d716b9873c82c1fcfec61a6434733b477a676823a49b219ce030b95c4e7a007e69fee55d683b7a58a33d900c0c99c33e927f1c808ce51f0cebbb5183c3953b7ab2431e25f5739ce861f640ca94f984f304ccbea6386d10df8f6c8499e64e1829438c6f6e95c9d25f292c6c38e4583245f99c5e47656a10105344ac9809174042d13f71f3c5d94f337217659222c18d6253f6d7516e1d79d889fd3b6fcaac8b1d9f907565e7bfbb328d477b3de45f883a5b0d8302413ca07aee105d9284915ce0bce06f63edc9d60afa25fbb2b2d708044659984a9c42db48c160a76ceb9a35a805645594a37af80aa7c7dc58ca09dba40b0daa70f2c169b6cb3039941920a7f2a8fbd69be0726cfe1d68ed15e8bd5d9cb38aba82abc9736c3fba1728bc34188035d08de095c04dc6c9be2853052825d9e7856cf0e0fb79217658c4c88caa5c44d0d7906bfc4fc8180fbe91844ab025d5708a4bd83db51e6e9806242f00703d2d15ec9e4751860cf677bce92232fbe8d971366e1a5abf5abe71580378261efb3b5a158d88bf615c3d7d8cc15f1fb1e9bc3f2c24a833d108b15ab24de299eb8b3d3d953d5e264fe41264480f50ed67b5b24bc7340288166bc999694d346bfee7f5b50f83b09e58404ee29460ae89e21f0d3666b2104062f450405106630d3caf98f0aa0f3b89a36b9616b1666d477e3def66eab4e0294ecee7fb3978bd916f4fb9c67a18fbdab14c40eea4ef078991cb47fd6a432f2ba3647663daee1343c11b19837c89503bc45aeb71088fa32534d5a44c22550eafd8694086828b0ee4d5d3a45c007eb35cc3f23141c5aa3b40b49d989cc42b73f3a4ba832937021b4b013be0de47251f6820a4058e3043e1cd559d06cd3e2304eb6072272d5cc248efd9eec5efde0146d04a765490f7c19c2f40ac066dbd74a13831c46a8e72d9488a8867ca4997ea3ed9de80b87c22935e84bbd3df242ea2bc1fd0c91afe38c4ae4157e141ba27eb1dbdf822ee8835b5272d807cabf8d2bd0625383c428eef21d4df7497b523c61620eae6adb6e14ccacbd9e49d93a940bb062bbce0c50a83804a28d46c0a4c9faa2314de058d880ced5cd1eae3a45822615885ccf82a582a0901a12b99e9988fc9b4ed5547497372da86289df7acc43f92b920ec88d6d5f48ae481e0ce369bc0516ef1d88f78b33a5812d482f80befdec3b198a64aca8574ae63a0f2a6cf6c258c5f8d7c2b868b021e79b5df89bd1a4af07871caa12f78532285e29c983b4273f6ee9ebde6f51711af120615e5087c6c79be78954f123a88b1d18aaa112fd4aac634b183763cafa95f37e21e100d49717c454540e04dab7bd40136db1017fcd6787ca052cdad2b108078a052112acd77113bb50c0a33d5fe696514b3da1b07cf52a85e6f72b6d1f34a579449c8c7694ff9e0ce63c1083e0a91ecb7d242956a18125effb3594c32017e1c16727d1de0d51030e2e6fe1705a893eaf709fe9896c4e0cfe6cced6c50b91de4210ee65b2b36516216a7c4fa9083dc3a57beffeb8c55ef3294ce05a1f1cdfc9be4d5e41ce811513322e59c8469223361d06a28969450c6eea902a6b8d752f16b581907c2cbf9ba9d78e602acb28be6c87c8243383c567524881fc7282b724d5ae0e34694f328722f496b18a320b6ae12b0245869e962c06c7716b118cc63c576748b4e3706145b61e4841ad32e3a3c71cc0b8d87b10c2e939197bb839aae49f947b04357863e3d2d8024ff678af4d58b8646890d8a082b85838cb59786cafc38c49b4dca417b1c3cc1e962c013df8463c5cd0ab0aed922fbf6f94a2ff70fec113dc9311a00047f88a5acaa628ef68548f59e88ea86ad0136c4ac42f24b87ae55317b19b6c7a7e4c96bba88b8d378e166d79db16c8c81b2b372922ba9f563702e2e8d2004044ad520b49c604fcfafb0cf9b6094006996c26b132ffb7f2b788696ce4eb51af18cd649f23bba484ff5ef888ae929dc8a1a399407ad8b082a99b82c47662bc81717a7396703246acc53765cf927cb7027b3512012cc98257947ea986f5768dbb0ede6880648ccd83539e458ebdac395d1e62c6674062f919968843d957048101528e0242febd1b113a446999d5f43760b374441b34083bc11be544b6e5023f875adb9aaa64deb98eac4963d4edb819dd8a0c07b9888ddda59afb066e36daac552562d55cb783c7232b9b70b7921cd1f04bcbc122eda7cb57a7f0bf679ffaa24565dc9a0837e72e9d0b4f453b4e7a84e90662fa908c8cda624dc13a0b5daf84ed25bf5f11ae8b9dbf7cfbf4dd83405b6a30535d18860b6e82852d993b6f27698c0810579a688a91c62a92771b6295bad71b970e4429024780df2feac15c85bdb8acbceaf3d766d183a17101fea325e8f4f57de691376ad0a75bde031aeea960a3e6b756b88485c896b45f317ca4f04ef003de91f6c743326d1975fdc658c3f9da9e8ddcc35d1a8bd6d7dc996667f560ee854fe6193951c173639d4027fc50231e994a604baa8e6f0afff0ee23a51462ca68d318a507a2d77a168a80a4eb986d941c7ce6b7b52e4937f53f5aac21a888485c606f9a73e5ae6ad353b9147d2e4039005931fb680c58b9bd0efcd87555f067113521695d7a41c8788ac56a53af03d9daad8c98fcd9961601cd8efba1e627cd79453285cf852e3c3025b7a29811069bc7a22b392f7a9ac37a7be0b271f091ba851ac49a1c098732711b5c1267678495b0fadd7607c3b6f5839294a8df58fcff75a51d19d4ec9bc884d23f555aeef773557cd0488c17ddacc7cc0927a39070adf6351dfd2b2990a0081e0cf109fcb37df8f2f0658a4defa97b86aa07b2113401db01388932febe5ee9331283d3846da23857ab7623041ee977f6681230a249adbf8e728809f7b54047a0cfec28a5064804cf69c95a8178cafad55871a735e3764b5add681007a63e2a4a898f51421150d36bb37cb816de343f8c1eb7f001805ea3d38caa8866dc93b8b6434c8c31dfa5f536590e9a7622fa9de6dc2c8036ac86eb6cbcc07580f40048ae3131860e98e09c3ec7a6346ea87a68bdb29cbc03f4a9199a88a5fba827f4c07a2a2f8092c485a8596c5ab45733e95d7350c7c66d371828fd638fe32ffecc8b3f12bc84006b6cf00448072f990a7a5a0eea5dcf2206ff43e6ff6fd86014dce7e80844ccc6c9be8c16767292738e5aa4dc801b2043983630c4eb36e9b6856c78d2c9a2f0a9de611dc1b3c4ce19689898bef5da1fc13cb15ad4934fcdd4199c7266c4fc9d833fa214d83e5fb8906c75cfae85f1679a815d34dbe206d4ba0b8bc8fde96eb3855250d87fc0d78b40c23880cee200aeb558ac870308da170a3880b960d27d03b82ac666e9e1b57f186ae96cb4031bebd68b055e1c6aa19128a3214119c97a3e555477991845e4c4c4c0c38dec262100fd043034965d265c010dc295c1be2c450a56f2c2dd95641911ffe4157701067d83749478e46b2aaef725b9079cac774ec72c7fab978da6923a133ce771412d0c3d8651c9afa401fa6062824c95c9f5722a1aa12b80c241201c9f570c44769d82e3c3f7e5a22dd24d8f01cc55659252dd1ec08987779927514f84febebe99bc6179448ebf8952a649d512a7940a8c38d06340351b01e9d66173ec4b29eda3ab8a2bfd6ff74ec068a1196667b80fc64869c250bfeb3c427601a3ee7a25f6d5793d0698deabcc19d759803f842129ae0a0902799961c4cb3d892241001701014bb19c9dd18cb887f8d1892ffa4fb4c9f0f9c00657f573ff87f63cdcc7f1f837a8e0e7651bc5579587443c40f2357340e24a7e86a1f5e7e5199493ab2ea4084929768aa8cbf38fcbac92bc879e1e3a921ed77313fa12190b76af7254667a46e485fac25b0a5a2b4810800fe945f3276901430e9742257f2397953498aa1ab992e5a0eb1b9f42a161747491b163b452c4c87c64f77dca39c060261b80034458a703a9fb39d85fcbf754aa76a10f96b7c6f96cc287a31d5325ca884d2812a902d38d7388ae396ada0278284a80b07ca65004b7aa33770d0651eef0a2c304171cf4cbf7fb46f73db63921f81c3f30fdb6ab9080d47fc3bef8546a0eab4b8c44641f81839e1b81656e090a3b5c0eb96e867a026ac7623ef57932099980dec402e885feba239dfed4419b1ffe99cba840e3840846d3dc28736a815d6bb12e53378e19f9a21d2c89f51b5a362438047e0d5bca0a973f5e92dd115d0247f7f82aa604bf1b332619213024ff2b27277a8e4c9dba385c7b0d2cc5a358e172a76fd6cd6e9871f47e86ff411982c277e1b3331955f5f99feebc66d3a3fb5e083cd8e002d733def05f6b4d92cb23bfee013fd463f1a502c538d927e7e27c408133061126e461f65c9384cf472d38d90c883e41da473c663ed6607706ca410b9b91a44d704651e1b2571fe7088806fb7a39e5f26a6f3a48d468844f1eb8aca03c7a3af6843b752f385b17837fc2e708365480f6280f32728a3e50fd7bd302067f6a133f3945d2022be58fbf28d24bd38679de0d9e63517e69c4c18568b1e58fb4ea6614585f58e42ff39e2f0d2c8963f39d2bd0e415897f7d99e1da03e2a328c6900ca02aa6a76f72f1906fda068a07db1cece80bc96a99d1c2dd8cf83ecd00943922febe8b2964357ebcab94e2fbee743a332349db04f6b5db39405d3628f5b1636ad7045d756e01a9d96c5042111f2505a4ec74bf432bef2ed8107a6e9fcc7dc9aeb6d6fb4eca47b7f36589eafcfa134db31b510ffbd594d07643acac4c6f01cef7a39ffa6b46b2d74401f9eb380d09e82107a465682ec8c7c2294ac04681839b1f8f2e00ae17ad4da3d634e442cfa0c474f30c9c7a800e260fbb18433fab240e5bb370ca477d7059b1e3ed11dd32cb9c4aa54350fa11e1c30dfb4c855e33458404718ac48f98b37255ea669576529069b94815b53f9d778ff040bfc15832bf835cbbfbc6093f95c0bb40a0325cb08c11f810126ba3ffcef30fe236da566969615e14ad844f13ccadebfca2ce30ab35cebb64fa487a1500d3aa64d56bdc2c485dcb3158a9b515565537a2842154b481f6ad5d7726618c6eea6372dea6a8d6ef814fbc7a80b58849d0ad0ee57a6fd46963fefdafda80feab85b3c0f69811f27d961949ae3136a704592199efbea691fd80bb5b9c7011134f4f22db1d9f69d0e10d41611d9f516f2ae9a5fe54805768037edde2910c5f714bd25ef030eec551fd3aeb11bd59ab6fdf2b4c5c4177c71627bab1f9fc023b42b38043a51996f3783e49408c7e8368fbf88c3a94a3a651a70f092055350ee437217c9957d7154a2aeae1d614a6238965a2b4769725dce31469f8e9de1da0f4c1a910bfa430186fb0c11e3cd353b33fa67281e4f7dfc19af9b365ebe7d5ce6255f37ccf888f70be40f5e032225d6d1ca5cb653a3221bb5ad0c7fd477a8e7f333b23828edc8bbb7fedc54cedb817478446f4392f089686262f766d92d369b3a1417f533d226bc2703593b7ce963d202532b67a0e78f4634550dc9f5c0e6bcd018c4e20c7fb78c86b3ed6cfaffbc0f08edf3b637fb99cc317ce6d2ba9165707aacaaea2b0b96b33b25141f223626d41980f593d02e432f3cdcbe2b78d87cf3402cbb526ce7475a905e4bbde3216ba27cad60cf5b9bd9de65bea062da95432111281fd7501b965cda095bda87fa8bbea77be01b2d3d50bcc0c723e63580e802b6542f57281f72dd89c00e0cfe95548cd497570a3040cbc5ccf45a4bb0d05e127a4f8e8e6f18a3de05a6966f642f7218af6aba2345d3809c9802f3263603d7d56d6036ea8095fed4e904b9cb0644511f005020c24c4a3bf1c581192bfc6c28e963b8482d7210332a8582f62cb9b500d3657cc76f81b23526cc541e85bcd8884ed46cf02ad8bbadb678420ca4d4407ab041f429d59595f534bc46585591f56c701f53e2511c48f55cedf69624b81cfb3e00b88a5d40b8b9ea766c034f239b5d73e89c860dc3c75728ac4cc4946ef2eab5b21a426ec943aa97c30956d4a3a3aded7b0277e049317174d9ae6a8006fb854ff27c2dd5f49074d691da43942006d7df646b2c41a49570e9b8acee65b746c6b95740f694e1e2b57c905184c07807f1611ee6d0f349322d45a20620a6c4227099284da8876cb2200d464c2203257a8310eb2a537193f5fcf791038e8835c02ae04ac62a87143cb6d4e09889aa2b1492db6662c8d08584d7d3696e882887667a2a7ef7b9acacbd5223815d164165637f0dfc6797db2878451aac009672feb1d56408b12666d352344271c0e48ebbd7755ec4e8558ebe38b5b751d5e26126fb2c08ea65b187bbc1b20689b910334095be4e630e9e772f26eac3ac5a14a5711ddb6c922698e6799e1232c838b34f010c0b7eb22ba822023199f9cdbf83e652985249046def5a4fa1ef3067412cfc32fce2574d2f45c3edf44ca62900a9c0d2327b24aa8fbfdd8d0e29f8bcebf1013db07adc38c6d2c04e1a843229756fbaa5782fa7df037f6c39f602afb49e98ccf45526155694036eb3a46827a42624bf57bc648aceed05c6c7ffb2244fb589e5f240d0f5084cc02bcc08725e84c3d84d971ed471f5f003df1e66c95974517abf68f03fa0823f42ce4acbb6c8e6acee2d88c91906bb114bd249c0953e41a0e4ae4dbada8d985bb5417feb71b04ef04b14c37e390e1f9aa80586d2a6f1220ff89fead63ae5ffc4f7ea473e5732fd740e570cdb3c35114a8ab92c4ed99866ce02300d0aaa7dae5d6f0297b6b16fc73fbd7b06de22d8ed18350b796707477764807bf400662c1e7b29c8dbf38190f1f8fb9dcf8602774aae0d0fc8ec4341a7d1dd27801fdfcaac3b2548b125cd6ed48357c3dfc409c3ae9d5bddc2952ee73a59e774095ab205635e996766b28469b7135f9371888594149b6fe7e0200304acd79af63661058ae39b3879305fe2ed1d44615b72330cbaf0017864007438a484c6228ee897c266aeaafa0849fdb0fbf8aa8b2bf13f0e5b7b52efe054f3a79b14b4532d04f402391645976e3af77c474264f2284f3d29cb1699c3e17175c494264ad52dca4810ec48bb1a52f9056039c589231597aacaa238616cec6dfc0dbee3c13fa72056fa6a83fc4035c3ed3cfa23736b14c6a9c4ccadc2663fda289773abc71509ec4a07ebcf092463f75d4e8c84c00f1827a06c7c4a1d7ddf81b0e2c3427aa820b5645eb1a3c050bc85be87a3b7a5a4e202e31264a6762f58f3bcb5296c1824c2e4bcde57beacb79ce02f157323a9b18ae1f0375b33aff1ddb9ec24c509ff1b3049a2dc070a5b6dc482a7cece0e0905a0f8cec48eadab2da777f9e51ed7a80f0078bbe6d4ce539cb98e4c98ac908b7d2611305b1f24ffa02db012c21030a14ca6757309a59a5036d55f465713544339018d286da5a35a14031dc64cac4e3678fbc29cad4612670c74d68f827176c98d1c60fe134ca71d505bc22a79902db85a6d4b2e61c7a8ef05e32c5999aef1f9290bde5de724b29534a29550675066d061243a243fe7b191546c86fdb79f1fc623b92c349ed53845467f9f12d6b87adf2bd6ee6226fbbe8a28b4c722b51c11efe43bdd38c7b10d750288047515787ef5c2795e33be7f11ef791f9ae87888afc74e33b472560797a60767bb75175779781ea7290d0009e06e7006099a7ee6e50dd8e7b51a5329b26d8d3d4ad93b5515b03361cb600fd4f47eab075923260eb6829c7d6957e015bf73836056c1d4c0d7293107fe997325b27a969eb682966eb4a9fc3d6fd8dade312b0714a2260eb24c561eb680966eb4aff1c67639335b64e525a22c0d695feb9ede4a6ce893d30309c00b68e7b97adfb5200b6ae44b74ddba4a4b4540240ece9cd5155ca4dee13ff4b259494b4a3302a958aab3e97d63d54bd7e3a40639a87e3269b262aff62e59bc810eea2c278d2f73f15b07cff1b6217c052f4508b831639e0573495a75aac335a40559ef430606c32db612b0c8da568b04fd501da2e0e9d13bd50195a158d0463dbe6bac2d0766db068551ca0f32c90b8ae3ce01da0adbfbc50d9761eb0fdacaa11e9491b7580b6340f85734d1a0d054fd304c39ef4d94f98d5641886651ad7114d9571d39392d252e99f13e2a62725a52f68895ed00b8252525a2afd431c8803a5a4b454fa17823ff1d4406e8a3dfed27fca9192d252e99f038a443efd30301cf75f2a511a895052d252e99fe3a417e87ef653477a4ef7826af30baa843a8553bb7162a788eab6c31f48d4eff47af854b7618fd71889baae26bd40316cebf8e287f12dcd9fbb1b5b6de53b34ef34db9187a269d2c9997e5102b3733310f9de4cbfffe126ebdff7fb0e624d9dea21ea6b16c8a0be9fcd02fae954e59daafe0b5f403b38f4a278410fe82b7c3edbe3cfeff93c28fc405040e143e5bfc29422b086091d1f1ca22b8888ae18225a02113694055036044474c50b0287e80a22222222ec8a2088e610290aed26d0501640d910904f16239b26598c6c9a8c414a4a4a8a7d3af02d299cf1c14bc2fc5829f54635bd8a31c61819e603fbd21f04171b06981f3e85768c2325a5a5120ee3cce95395616ffc572eddf2e998673e72dfba22b1c2bf7e5e5aa93912136634f7465b2703b375ff6405d3316c038970bdc1369c77ff8cddebe2ea75c9d4197f69d93143ec4bff1319256affa0f6575bc721511bfaf8d63da396403be6b8b959876f186f3ba49fe98d56eb89b92e1d0d9ebdc1a7129215d026e1bdd8d74d2e5e7c8182e0e5a48176955025f4729e30b978392b3f6ba369d792f3535b722aa1975309adfcd0e019c35c976ec6890ad5f8d736e7d6057939961228d70b7b5c2d574b866509d50e0b4246838182a002aa30eb82768f876771ecb02acbefb02064e58de6c423d08e8527a7b2f0d49e719a03679cb820f9d44992103e33ff8c43083720fcf127cf6d174710271a92409dacf3b1e63abe673b46db5abca80d38b8e622f954ef2d50e84395f7a5d6f910fbd08e51650bee587245edb80e2d0efe09adaa8808d7b8f1e4d883f95e7c328bd10241055465a5bdaf5ec24aab191794bed74b90e03b949191524acf766dbcf8b62e48900a254039fe03f2deff3d7902e8c9134b9aa5c6577da780ca1d0e95abaaaaaacaa792a0cab79930be8618a5d75fd2faa5066dfba543523bf8cc5d2b7cad48ae3e29e3c59a4a2f633c52af7f6f7ff6890270e0569ef4d9cf1519f559f56de9bdfa95ada301a38618a52dc6b6fb4249dbee68cbb68ec2d8765fb0ad2bcdf8a50d3982a4b39aca48d73e9d43f4c33a403bc44855bb231592ca526e5ba3fac707494fa0fc106e2a7dd5e087dcdd3af956c99252fa5bb22aa1005a2fd774bd6b7c69b0242ddf9791ab4d0681a1ddc391e17b64460173b31340bb1db6bbbbefbdddddddb7bbfb767777dfee0a26c7f8348ac0cabdd4dcab016fc01c2e0e2df9d5d6edc70dfa434bdbdddddddd47853c83e68417ab574508abf736ed89e8eede15f17d5ba76176149c284abaa7ee132aa4d411946a9152ed675987545da4e154f99130139982c514502c4187e8fb4e3e9982496de97066cf1f472352a70df1edfd5e1b66b4c0b28172041a62fed5b3a53dcd7a7f656f699df5d60664b31df29fd6510babcfc2b6ee3debafea1fff4c3fa9011902447dbf3502e95f2443bcbeaf5a78f05bcf6ffddc29b1b701d95fab5fc6877193924753da591f2dadebb7fe699ddcb7e0f4edeae72058ed5fdf80ecaf4ba07f3720fdef8314a91dc46bffb6f4f852ed9671660c841004e9c4118ae0d31349ce0ebd608730205fe0e3d301391880105145448a82340529880474baa188d4858aa822aab42075218612345034506ba39f245411555ac45082062a8612d51495944aa80a6a4e9e68a0e4a90ab41a1a40903cd5a1ca3f0021e8c40e956b3350d0161eacb5f0e856487392b522cd3d608b0a2bd231469aeb223c3cf7b7d6f74f1edcc4346f2de0a3b927a4631e0f441e0f6ea2401488ce3c600759bd94cccc2ce304164075a7d475a20b51d42d40509241523dab71f6a73726c4b4b8b540ec46c7f8ef463bc6b3f713ca20a59ad5c47f91374cfe5022cf9999f96930eca66bdb6edafd6813ae0303c305edd6e72423e10f7f6918e8c38d1f43bc3e3310e6868ce49e792f7e67474a5cd01cd024b5e3c6c1c9019f5cc70a6eb92d68dc30a63ef88b734dd0ea2b1ff1b9a8519da4f6d7f897d5f830e5f58cea9822cc4ab8c648c64c9ac3aaa931166c2496eaa5758b45275365622db28a2c2bfbce8e94689ac4f81149e58249ed642a142e96d4fe1c3bf416948b9a6b2b096554cc69910f7f5949e5a2feceaa2fc2556e35fca98c47acd5c63acdb1119cd31c168c42092d39826e37cea524c6c75ff6062d6e987243d10d4431744840a49faeba48f2f186d25cd34841ed0154c12b281820b536fa699c483e2428061840152a93dafe4e7848a9e67cab827c682767d42137dc509946e54d9ae48e192403a40050792301ad8d7e121528a92787a2daa49e98938553b99f07d6f951fb7ae9a6d15f5b27a4361046d40602a7363f090ab485473f44f2a3a439232d3a80688eb5e526a8649aa9c991c63aced5258168ce878fcb4773fcde49a2aaa84aaddb2995218e0fd9b0030478a00cdf89d84d19f6f0bb07b7b79dd1efa8376ee1d1fffe6d1d92ba6f5d326db1d704ed5c747875698e69b0214954f97d14557e9475aadcf112f5e980762e2e5028fb0671704099ab857311c1bffdf3ce407dcbf19f3fa7b60313b485474b8f67a4391ef15fdcd8864fdcfd392ffbaebea174ccf51610d606049f3aa63fd3b8a77f63b9419fe6582aa6756c44eddf0d9292d252e99fe364d0fcc95327cf7356339bb79dd1f7683bc242d3c4b7961eaff2f3e0f7f7ada507732d3cbc02d9602a9233d0f05c41db470f3e74a0b5a8d130966f527c34d7ff6e403b59bba5a4b49bc3fa6a327f7fdfd2968a549551f7c915746a0b8f6ef4d923a973347af9a397d55499b663ebc4b4f7b3b3d13684bbc87a5ad9efd83a84d150e15b50eb1a3ddb2eb7bab2f5985639d3312f2cd3ba1d5b8104f96c0341f5f2615623ffca6ab21dbe636e96d679c53422bc36ac2ff2a40664be7c9cca95ab4f13a7b9b5f4a85ebe7c99d5c8979db13684bb42247562dc45dd8ee98e0451e763a73a6be6d682d5e918a6453804d208e50f7c800ecbb85a3221948232604da59551c0c6441528a10b5968d90dc0fe0cc79781f173b4fca8cd68b2932971dc649a8332143e81ca2742a7c68f9895798b7b57f839822a34cdd069e2a7c25f185421f33461059c3a46e0a2768b45851112a153e1cfe818e6d1336255b683089d2aff3defa099d12ff0657cae712b310165b0cd5ab96feb20b37c9b6b5c5bfbcadac3e62531b826999571d3cbc8b48ccb442babd9afaaea754c5724d678ca8a98eb72e3b98c22108949fae8fee29beb25bbb3662430aac3cacff48b8a0a5451791ee201ed96a88d740c57089f4fb312d2317047914d08103546ae6d0877b113d2d213618c5344582b022bd560b41b6e92465a4079083ad1dddd1106f4cdc743cb5e5813fcc91d8fa142ce6a6457978c324a50ff0ee6c626b33ba29bc63cbc84cfab6ce2217f813fd43dd403993407799a8359cd0c16d01835db78331e312ab3956a2eead0f744ded4b6d8032cf8d497a3be1b352a99f2976540dd1ceadae8321800a85b5700f071ca4db4340461a00ccc908c938aa0ddfaec00819e7982052615c26e7de06b530d0f9feab0f25d8d0a596a4739e52f30a864290da5188b1ddac90a79465d43192ac0019b103c20c84df7011b0ffcb8e9808d8e9b0cd8e8704335b00d9858b6cb9c845906d37e820525a5c5b1cdf9146633f36320ccf9a3964a5a08e664ac6b34b72bb9653cc847737bc3734c517b68cedf3799b5b17fa3b9fdf9de689bdbad85b7ce657332bc5ca2fd86765409dad59037f266c6be6d06bbc89bf7de7bbd41863f0fe8699543c855b51da9806405c44c3cca522bd2351a7de7bc7515a6c9f993b5eba7d661b55a4ffa796535a4b72ed2c57d759208cdb0c95c6986691691ec871c3955d2685e181fe055ce7454ff9c216421753cc2b3240e2a1a699431c61c55b617392adcffad4ba42e3ae07b3f7eb0bbceb404fa2110f8fed3b5f750e38a24b2cb6007ef63697da569506a2e7533090800facb74f43f6cff75b0ae4bd5f1361f5020fc7d84b92e260ccb1607bf0db409ed64ff252b95b037a752d217d0ae54e1ec0a67744c7c0861dab434fc97c339e79c8fa4b6d6c98e6b7fd4e45b3fd39786a45a5a11afd2ab929bb06d3d5b1bfceb93054f3127c93ac23ac23ac23ae208eb08668b073caaa00c9b246a5d9606493f532a533495226d25094ee7f0b29ac8fc33bebb1b108e186fb367d767d75b4c68579a3f2f0c66d797b2ebdf7bbd445e8d1895d9f5160f6827ab915c1badb1a5790e89eb443d0de95794b4899443d2a6b3af8f3a24753e6c566fa77aefcdafe64c5bbb92a45f9a6a2b3a9d43c5f55a41ad2459416d2b39b0c22e6deb94d8a5edb8ea6372a55a7274a6a64ad194e65ae508ba92bd6d05d59ca53d6cc4cd1a304b9b35d376a8bfd0185649d62903ab6aa65d9ab53622a9b45559cd4a121c54732b42ace4aca05684a89da36445a7639674cc5c116271ecab5aa5684663130098e49a693ba3a7da760edd8ace935694740efda4c792edb8ea7b1ed06ea674cca86f9ba9b5414ae9e011d7a9a292d5ac2869aeab6a7eb5a2adbcc86a548a666a25a7a7633a95a254c738139e8e71a252b482f25ec1b1766515e1bb46de3c63543d566d982104ad9e508970ad7271545f6dbbc283758c33cc69498104b7bb3f7777f757e17bfe0484f0c518e10f845b70181dfa131072852f46f803e1161c4687d7131076852f46f803e1161c4687d39fb6433af94b5f4f3ad9b4e9da18cb628c1ee17bf1c117dd428242ecaa50db990f637c2938ab39216b568df0b1266b8cf0d2301ad66285afd221824e9c2237cda253913f6f5e32583bd68ea5036b47858896da6355c17abd0ec986847a7f04259d2a924d8cd547d249250b952ca28caf92c5e2d07193f55267e6f84b431956d06ee254515bcb92b2c2a2c6d76561cfe3cefcab5ad239a43a87fe392712aa54a5d3dc696db416683771743a66e6748c928ee9829c16c7be7865d0ab6b3bf32fed593b34c3b29a9d595ddb91300ccb6ae457d39999979997d9330ab8f5a49307554bfaa52b9d2a5037f5943fdad2442d56d658c32c1dd0681d412f1e17f297ae74e08ef55756035ddb8a33714827eb4927998d82d606cec439e1543ab565d4aca8c90ab5a8551562178c95b4ae3952a1b182c7f282b2ac3c76081f84706343f81c42f8b4af969451728e4b88313290eacf0fb6fb046e628c51db40d360e2808f25080b6cf717fbd2cfb22618ff018358dc5d7ef8940013638e165744f1824d94212d28acfb244a154b44c942e9791428ac285254ff1a318a938ad57d122565053460484c8cc9c40257b2722b9468019635c10a24b6b0a206562491c28514211c4809ba8214285286809d41ca0e32202946645a54d14596aa420c555c5185501558802ef877e16a6c5605c5c640ab29198a4a2d82e88cb2845a53c8ba402b285ad017490461810413a814f483a09913f439cea38cba4fb890441557d4ee61a6c0c048e3402c143fd0994273043671054d14ea2982e6085c810e688272c00529d01c814d6a4003b7ed1cba1a35bebf5c007ef530b6c82dc2afb6f847600b6620b1a8519fe151a3168040487f692666e08324688e3c19d0c04742c3750eef8604e484348518637cf04dc1ddbd0a7232853734837c2c4931d159c6899193ecd08f1e7cd87a7a7a1cfae85a5a5887534cf8596a6735ec3385763b543be9c3ddb7faad5a7a78e5f7ca5bd752a365e6875781381428b4c78f9921fcb7bc5b27a4c2f7409e0ca834bd6acad04241841f6c7eb001922c1d763161bdb52ccb62a9b2921850fc615fa41109e368188276371039711245143e04ed4829274ea2804778f0adef3a4b63e917ffc8d5daaddae4168128bfb763bd6747309a26f1378b007f7f7d4e0433d06e7d6458b62ec2b4f0e0870ff93dacdd87b6a14a3e972a35226fc91254747ecfb5b74e622c3d6306427797c73d33d0d669ae972839a9fd4c6a3f8988762e54ea4a3a39b563d4cf9225a82724a32067250129a5945525bfaa2ab949806231c66dd140dd8dd4382957bfb6a7c097aa45594c7356db53e0a38fe1952e6bebfce90fe5cadd2f3e562565a9aac6a28c2852ff68eebd2a3a7c32db8f97a3b9ae20849121841042dfc14d4cb31109047868ae77f8d1313bb8944e6572ccc058354c841042082174777f10be3b7c2ea9e5853731eb6577e5d5b7ce7af9130a6d77aff8f2ea7a5cc5ba1952fe6b49bd2dead2438d590f1a40d4186196145130330b99db1614ac232c292c28584838e9dfddddd588ecf0bae362690e6b5e42f2acc6b97a8e4e8aa7c7e7476888a8c84f289c144f8fcf0f5011ed53a9518fc3e5c0e8f4481ffa5302fa204ea86e0e57a2124896e897b8e764d6870ae93942550b752ad21041a29ed7c327e7d3fe448b0ada511ae6a571928d07b9142251fe5651f72d2868ffdca6d4aa7f5aacf0e7cb6aae4a83546ad990d7eadab6b9cbba42ed2a7095d8675aacb61d0c3edcac8650e6ba2c9be4fbe83b05e0f0625d73946db0d3eafe0ac92d7ef7d5d67df1b75ebc191bd4c9c71df66b6283ad7468b7419117eea2f6002dabdd4502dd95510445c2286ed94dc7be65f8322ee3bbd5c3aa92d52665a88ff84de4c34d0c68a209dd64400324c25d8b1a7d74b7436f9bd07961c338d264d8d0dd766dc4e7ba839234d677b28b1b1de323a81464f580fae86132843b162603aefba6e5e4ed7beb84f2c397f139ae7bd7a044051554b04cc176df7b6fb5774518fdbdf73c4208df7b0f46187ddfdb7dd25441c86b2342685141f99f7c113e089f4708e183f041f82cf8de8bef3d7e0fc6a5fb9a23023e081f363bc3208410c25147c9b604450f0519c29761a3f78f8328431a9ecdb3b171b77936cfc6e6c517f4e8d10386156398026fe0cd0df30dbc813737553442071d74a82188aa9252884a08ee2da6c01b7873c37c036fe0d02823c58a79f6055e3f5836e03f5924e1b35015919b4ac229902b2237d512951095909b8ac84d25e4a622725309b9a988dc643096c016e6649d79f63298c5acc26466cd9c2bc349e9cc2b9bd74f1351fe99661e9802c24811db9c4e9c8451368cc2b2cc9da8f24128c8cc7e0c8d3212fb30cf3e03814d30c53cd0c90b8456c6435628b31e5edf3647309591b217990af3c022200a024115ac09e6e4d4b650168a6871bc6f0b65a172a012394516c9220b50fa2253f1416a5f1af2002651fb3d571bf3a4813e76c23c10e0d9e145a6c248b01ca6fca553cd19815e281915951596aec17137606056565860f08c52c9e5593096ac6627caa2ac862130cf26b12659545484da30055315a0982c9ad2a6b8c124280b85b292b4093281291698a2589601d5b0037feeaf17e5db49e0f77c4d371cd048c0123c1198ee18b00e100fbc80aefc3c58e0a67292364d9f1e3688c8a788da6d511549b0d0627105ed38479624eb0861ae4bb7444f3091839394b3fddf859f871eda649d6aa42a338f1215e268618ada6d149569ba1c95bda5bf0c519f01cc5766b2d22ac9e86f616fad859f2b6fb409f4ab4b13d07e560114eea6507870d7d18cb86902fbe25f05d7eabb0dff289adbca525e9f2adc24a988fac80bd4ad2150ff36491a7f951473062f4a7058d092a0211f4687b801891a9c0b3090e0409f25fa65612894df77dfeef36da1f31728bf3f1fcaefcfb16b08192f6c5a129b298837971096259fe37355599665599665591c9f2b69310e64575230f3fbfe1f6e6a1aeefae1a6f98c629c270268acb7e567de88308ef85ca6d11de9c23e4d3337ee413da9d727e108b5e2b14faa7c6e1f6464606038eeff7a52ad8f4890e0198ff5b9b698a3b9f64d46a6b2020e195c7277efd7edee6a52c260c812572a15f9c2a217698eb02cc346937451eb8554a956220b84f1766bf0dd182dc3dd5d06b6bbdb324a368cbc474aa062ca49da7ea2051ed7b8daa0c9a8d331d74a3546aca1c2a89506f7e565f58940663c648d3f2bcc35963a25e6da8a4a9d17e6da8b3a27e61aad13c35c23d5391ad539c25ccbea2461ae617552ccb559e70bccb5abce15acb2ea5c992c986b559d30668c190373edd559c25cf33a65603364b4d8307a25a8fdcb3defde5e15735db480fb3632093502eebb744c0504e42353b9fd528952aec852c11549d14a42d7db7d94619611b46b54a33a09cdb0ad6b256f2b35a1ef79522d8ae6d6f19224dbd7f591546242dfd6b5115a27e9117c27be0005ae135f588269209c52a16f6d447310c8b7c6a25b8b0a5fbac9077f810ff9044339d28f326cfb5d417cba4ef27debbeba0efc1ee202280c3fb34bcf0d559805277501759f086d51e74b42ade74c7ea31c268803fafad3a8cd67a660504c1a15371f16c7fab036bc7a8b873e869173167298944c0a26f5eeee2ed5e14a1173b9c0efc3e6ef30344d30ed04d8673162bf19c65a7c4cbb99c07602ec598b5b27273635eb31adab51fd67da5d1825e9db3a3aba0256ea9839bf65b2f010570fbf512c3cd3dc4f370eb462b6f480efffd26767f2277c8ba33beb119e58a8c44db745b9746846000020080315000020100a8784e29040201e11365d7e14800f7d9242845c1b08c330874114420819620c00000000911118a919898200fd803bc1af6462351915783b70486f39f471cdd8d64b555100b0355875db084556db1a35708678bd66e6c7de65c9d8015441ec85aa25ddb07fe594656e4b286e0bc93274f0b386958882743a2dfc211389e0c140d9961ef224174f1da7d835ffd7e9610e9f3044d1a52ce0a069ec0bd81ec15ad17b41ed33cac98166fbf6477e70f1a123fc67f9d40b4d9e792aedce3bab69cf341d2be95bfe57a005270ca956725e869c6a59c4163ffecb442462541d47314a1d9b29acafaa20fe792ab76b483d0798b877a24273f2d057b5e6f56e060073a162e7abdc8d4358047070ebd7d8d33c680612431092cdf52eb63444ff0ca8ff33b907077531fe1e4935481af1677fc920a9c29f7d2e84e4b68d72044c4451e9d786262ce7ddab4e9049f74236023860beca40b2e61824de9079e673e677ddabd9cb9baa557449141bbc01b00dc92e5f4954660293676e385962c7beda6a14ac70c02f1cd9e2819fd785a4aad1dac0db864e46c9488dcb5ef87e53dc5102e1c39bd2e66becaba76a9ae0f2fb18a7b329bd14b555b2c77822d32644e08aacd094dc8e095bb153247517397c4066c3020806f5ae8e96d546a357bc930fbd982c46e8644657ae9fc231dc8bf7284f0aad566c32680b818fdd692a05eb14d518b5435e389811ca0317eda86f0429c64c744493819d9e815702f35cb6d644987a4445f51d2bdbf73a40a325bddaec447ffc3f07dd22e003703bafb5db9e8737ec74fc4d3de1188a35b703b7c967cd8f06facb27d4de91562c3601e9fab3ae5058036a17e768ed8505688084d154ab37ce7ef3ab2c6d37b5658288d1c06c58e2ed71645268d0e8ff9e9d690fcb2d4bbad1c01f5f2f20d1711fa28d4f46c7ad349a43e99b88508b50da700c9994af10cb535351822085986b481fff34b0b07169b7f5e792e476b09fe4b0ad2b74023146ac67ea5ff8d818c634ed5541d24f777e68a8696fa73e7f818af381377e29dffd5cce1a9a4d29bb4fe63eb01300ff4499c2db6bd3cd00b134221606fd8043e21ec216dfbf1c0f0f65d8ccc37f864dbc9d389a31aa869bdf3026e423f9ef1925b37c622e98fff93d2cc05cef494f691ddae33309c9b2a987b95b22346cd95a33c740a180819e317b97f93f0f77f045047d0179e904103c288e4f07f96a2695b185ac3aab206a643177dfaa42b3d3f6613e9d9a22a67fba965cbfb169ea345be70e89863c71052089ec7ffac2cd9206909b7d34aa7025639e9cc609b7a0b6ac848c00f7f424bd1b1818c90d78042c346a8603baaa2fca50359f44dc5b823c92232ff74a79066bf757fba7ee8d0f4f3480709fd8a062fc5b172f6f23add182eb96ef43e4dd5df9121555c1cad1808d7cbf5dd6dd2502ebd223e3aab73da7f094a0a9c16cd0bfaf7414578b09597b739c24a0380d8764a6c2352829d75146932eb8f931a2ea417dcc32de281d1f733c71117b04127810c76fda531de3269ce016ac224b2cc9356f1df7102812bb9aca3fb8ca24432e16d346453512538537cc1347b5b23116be5303056396902e7483e9a21f66221393eeebf1185bba8cbcd693a73910d986acf7e8e3ead0a2864ed107f53e508ada634b31982eafc54797c5d2edd1de98df6044c0e58c9445cba3b0d0912b39eb825829e3acd01e80d8cda396bc09cc6c8e742758303f2d3c829d56398d0517faa88cfde5c364682b3f2c296b54557888f366751d1e5c5d5d63ae6d3d513079475eb0aed5a29f386d4b8163f591ffc3f88b13350bb5ec35659254e099179150118a6648973aef2f0633eaf95480fe878af35c31eadcb6c47762e0f22098f592fe30a3b325926f911f7358f944a0e106bc8d350347526bc07ba5348427fa7062a2141e2dc030ec72e30245f7f5b6c2fc103d5d603feb4d36d3cb09436db308a58815daf2e17ccc64f8c3f0d8d5f16ad6cd47e9f48f379b8f6205dcc7c847f6703ccb0d47e0ae607826dc66bd972137adeb8292e79cfe9dadd662c1d4af57795dc832265043f78d77fdfcfdc996b2ba2446378be48a4acbff34f3291813ccb65c1561e690e4f6a9b49903573b005ff243b5b0523bf73e17b46a5064f56ef97056db2c29c499cd4a94324b3035c8a3b31c8066a444e4ec1230ae69916adf0a13712905504f61ec2299680fa97c6688a2452b8633b2b59d720088f246ff691ae328e368d55a4bae15269611d362cf6e371df54e08c0fc277fa64bf270b8df14c3078c848f0e2388511a549a6a31e3dde472e9140f63164509076786fa07a5a0b4bc2ff84084da3a8c95820f451d916bbe592984775215a66d1d81f0376c0a7b635aeb3370713c8c1e5b47381833253b1c582ff6ccfc085c60d046758ab4a209cf56e9b89b6759a02dfd5ba5f4513cc1ed0ecee2993d5ec61dcab168c23c6d804521245da5e9e36a0bae5a37600f190e58d9e77ac325e6690c4d72c96cdf1262c4f239e726771582471a18e39e9b2782f182e8cdc840b00083008617ab60af1f389962d21702aec89be00d1963d2c4bbf76976d0f6629cf3e1bccaf6c1d84b18dfab13f040f6f2c260f572e0c82c9b7e08e12ef7246f65389532dedf4b2644af11c4554b85643f98bdc2d4cb21e8651f8da54a11baac5d07f8bbb095fa990dbc4cf3690a19b7654d7ab38c91f94e70c16a19c0caefee38b71ff222539838553fef31da61ea798e30eece26f5151b18f07e92b74588ee64c8d0351003635abc7023f4c8848312d952afc95f25be1599b6359e108ed8fab77fe2209972b2e8a03c1ebd95ead383bbc6e2fe953373b26fe9fb5f672a6a1eebfd53bcf97851bc9871eb3fc5dbc717f5c51eb7fe57bc7d5c515e8c813bcbdc77db55ae6871e4fbf23e5457635f5e0666634f037efca587a35b90804ce96caa1699f65d212816e83f5ab9b6f4d3c4253a34464dc9f70a87f45f160da4359702160d5614e14d37524cdd264c796e51acce74177f22b26641dbf8216bca38088477ec69c0bbe248e82edb1587790e2b8f7af09e24eafe03cce728d62cab95829f193c6cea0cd2c8a43356b42b288cc52bb6c23110e6d068632eb2a815589e8dc29020a07895d2c226739f6384142b0ec3f4fb9e495bb4a41380a42f32af9de0f6a40edded58c2cc76458e51f4058804df6fd60d471ce0addd8e4d8de8d9a608215aa57ee4ce37f32208501ac2fd5ff95bb21c89437ebb5b4b0ca8fab88496a11a8599fd68df54ecbf083d23f548030650d4e3ccadf0680bf5ea129e03697cd4024395677c9105c94fb5cc0c4c94d3c863e630412ad86da0cd00f35b82a588b185e42490fdd854efb62a52fc824de700d9bcc06c95d219426668a49c096077344045bae04586f81724cc2686967915d6b5dad89c36658be54ced5eb40e59683cd456256af7191c9dc45da20ca365e431a21cbfe97056082537f2c8125cc3d1e7a18a902672dc98f2358fd770fa1cf422255ddc0043aeedf008296f87c2a918a2e094e6c54daa83f3a3c1db0e481f44825b0acde26cee587c7bfac5b286b0f17949d49f7ed3730d8a48b281ced857cb08971b0e8566d1088531d31364319119662e6a0e683c4951b8fc4915d44f29314518c2eb55a51b850eb6525e9d5588c5317098fccae9f9819285892a6f6e800f2545c9609387c2037f3078beee3c3d3efdb022555ca38db70d4039de4f7f344b5bd26dad0650eccd43e4c3669e56742efdc5abae52fe428f536179bd04ce8b73175aaaf1eb2857a8a4def81feb338b47758ea48697dde4c7f8a392dd57bdb80afa008c6891465896a9e571ac271bcc43e67b4654e99da7178cbcd926cafe9e7919e8742badbeb0b1e4f77ca2de3bbf47e877eaed2874b3d92653f22e7b2d6d97c57fb88ddd79142ff915347a4cfcab6d64a54760402156a7343c765f76c94e2e41ca4e3f267c3a3e5d0b0152b2f3cb6566c72b524917c38fb6a7b7db1f2751d1b5d5d6e4a5f0ddad3174e8f371b7b6b185ff92a9f555c991b6d16207e17fc4d7f8f582324b888d3c2193e7141d8c5f14b49ba4936ab660ae2ae914df55330de05bd2d2aefa7e3d17d68b379eff16f145af141dc86463ed42590a6cdb96df028262e86a0a3cddc30bb086c3af90bf06c6de5a39387d2b17f03454be6566126470c01e296e930c1e4b12365e67a1817836a1eb469b9869e617cf3da7fff013904c62eb8ab84b61d82bb042e4a28fd54ed5ae8616ce4e3e5521ec2b338d1f7b342859417249724aba3515d1130f2036de9dd9d4b0d0b1736f1ab815eadd616e0bec29eedc8fb2b87b39af91071c9527be1b44a960e5e24f3bba4a53db54b7064c5c09ad015c9288bdc1925e18cb0269fe8b5e35a40af4634d0f2850addcffd85d9928392921918476bf6699f99cde3073a0dee3f7220a78a8134e9cf6601eb61554be12facef2d9979279c1d254cc63b357a5f9c01edb04528ab995fe2abbb1ffc4e364b48895b2a6b0c019a22a8fa7aa7b5732ef01675bd272ddf822d7c67386ba8a2938fd83c18a0b6cb78c6a94401189bf74538b4db0a1536441ac115d6bc0bc613d3ce0ab88e32016895e06067fe50266e890f2a52f1c5dbabd1e23fc41497af5203972560a185431d6c265d7e53c2e532c68b8223c0afef534ff2cd4dfddc72f61664db688473726a872453c942055d4927487c54cd4c8db56c2ca12da371abcdb7d28a37383beca87afe5f39d5318d69fa045009cb6283af801c949ae8d46c4fd07c07cfe5fd8c4a66b3c84ea1881a59bfe5e96c79ceb3fed5dc745dd19cfb0588b7b654783057b3849a98f34713ac6954af1a395a4a024b1e35953c8e176c26082849f37138078fbd58de65ed0e2018b5b0aeb44f722b6371ccbaa2880386091f5442ce66befcd34bd5849f9a400f97e5e52c492102b6259486a79485fc407413b41f4ec7ffa578d0c1ece26921af4f7b8a64ab2dddf5b144e2537304848435cbc9c148cfaa7b3e8a1b2bb12cb8be7efeafd3ce6f0eccd63f79778aa666600fcb60ebc4948b7ecc475c4c0840f455859cf4e924210fde4f5a22ba4a1c0fbe927cb631270a8d2f9943847610baf0e10e0cbea72130466bdd5ed3b4ca25b81ae0d4015b3c39a660753f8cee400d3c36414c031b6bfc42589891a251579f5366dda7205ba879872551f203979cf9be6729b9f9f4a5df5b2cf2bbcd75ccf14a8039a91e4f6a67e280724441d450ea642874e30856b518f130f9273ee3bac556ea4f3944ac0d72cd594c0ffba0404d53c5a78442d1919342b0004c1c762ae99d1d972f6658c00b6be3778bcd2a2c370598bb1408f9953cd72ee21568c3b7e6c17c54d4c1059388ef27070b3936a4c7e52eea3ffa7ac92e734d76a349e6dfb9b48e6fe83728d1c7af5b31e84bb3131a752de726b14f5fb8ffe190fa0d76043b169ed852a6394c35888f20a31b730e30b285721f316327e01e52b64ce02c62ca4ac42cc2dccf8c2945598b985185b80f2b0005eb5a23a7cc6f7a20db5c9324cc06dd21101d1d581a106a02df29f5463a13562e86f8f4d979e5cfff80268f06e5e6c0e79bcf73ebac58574c2a775a94411421d5598a02b94f347a200aba436c8d9338c02dbe4e8909f4a1a0614d0e2a151cb7f55e30fa0a567df97326d8549a96bbaf1fbeb3de9656a787ad5e213baae1215aa710c31052314b7faa8970792387b401740bc8a4ce544e6dffa000884e57a41ab9de3fce64b1b812f079c15d69f8d3ad2eef751b843047c7209986f67f1b97b301ab03bf9ea9ac22b4290aa464a276b22c72d05217b90f4f19d51445310104e110f0abe0f9bfb51ef0f04fbbe42a40607c8bf14236f0ec057a11934576900b0447360672a75838e234b2cbe9e80226283369e699525b848622b09284a91cc85459264d2ebf3c8af529584880377d3072e70248758fd9f28bf3986dadb0cfeae1b2304ae54a78d4ea845d09bb5ce0cd0191ed920bed1890a4384ecf5b6174a113135582329a97bfa21896f3ad6b2ccdce7f9b6c6233fb4f7c9e2cacfd45d6ef4901d21934232ac3caa21581214a9f4c03f1de978f0b6ebb598e9b22eef2bba7e686a0fbce19ac6782951fa70192d448eea3efd374fade1385acbd5d24eed3a1b9a3e08a708014049d0a645a1899a5b0b1ec5cb199936b1742c3e18087143eead0c0692d494408119498e1612293e530957c212b4675850050293a040947209542219a65b627ffe2aa8232a4a3d16820a7e46a1efa4f2d40b5895c96b01ac886f21b27836c4bbdab4e0bb331f068247a22852d7759279eee52c1f9c9d62e01c0d0a5186702b3ae051411b3e38f83584ca805f958684cfcf96e070090368e1fd3b14d0c2bfe809871e5ff192cc09e79276d828871bff73039e201c76e4622fb90d6367c326ba796491281a9b399d48adbe209fa17f99c8b3a736934b6e790810180f7830dd5f67033601fc2d3353eda0538c4b224084aefbecb6a49828b37648696fdaefad56d8bb5b6b884b4ad2833001ae3678b8cbdc411cf56332393e6932502affd23301156a107b8bc1fc2dfab1ae07ae4458e371bed95c1e0974358f6b4b2f43ab1fa3a95349a830b1b2a32abb708e93b368e32f91dea4f15d36e59b9850a819b8f971fdaa4b6787bbdbdd755e9d6ba0c0505c0331633b8068bcc2d55a31d53e2e5138a975b1c12724efe793769ad45708fb6fea319c1756459aa87c68ca3cad84a554ce4ba6455b39a356481115eae3b6db7a246633719c47091614a5cbc25077304b2ba4fb6c45239dcbace83db3d05a2ce8d79fd4508e783cef0db91753801dd465e8e38d1c751c8693863f39e150a6f1db38b4338615847dd21b79558719244bead9179bffcb9a492a9c9ca48fd215bce56157e9a948b556ea9c0774320249b376fba699e95656fc20ce75949354a0e2cc4cfa0675136346a51b5c503b95a0ef5fed2d69a864d237b598113ba847752009dab345c330b2f6c7c3d5ac2d37ccd8e74c74a722cb864775333f23a98a761697916371b26d32451b6c1c3040d94b7a7d75e8d3d0e7f9009a5297eb68665cbb0673c8c600d739bfbe0e2afcfb2ac3abe70fc1b8293543bc318856264fc72d6d1b69b5511f93f3a34a81d3eb59281f8f03d7beae1cf5435669cf60ca8d31a1bdd078cf596d0e5a20a019c22e939c0b4d4772d3203c6a6e6866024a1d55115f8cfba61ac056a5582bef3b57caf437d3b4e83ae7614b27721607bce9ba9db7269c8ea3d03d955c357245c18333c093eb42d4c473182745b3d01908ce82a0f53abfc5c38eef99ed7cb464204d28673999d3ec0897e901fdb25c13d0c214020f9327c4c81b618af19b27759e91a1fc199ed05243125a9720c190e73d8b41c3178992b7562dac61ee378f98b78c503dd48011418c53930c0b14d8a8725edb262142d004b702a1ec1d6f28cf1d9004304c9aeaa171518f88bd49b009a519b742b3fc83d6e66531b5938ff7a9c514375f3f64af9356aa4f4098562fc54bd3d6d699572f294fd84d65164da8210ee5c246bdb1e700394b30564d9af95ee5ddfeeeac59093db5682be63af535dde0c814f703b5b91f97fbe7a6fb3049a4025554d28692e7e49ddc474ae2ac649051f4289ed35f0677eb732096f846775eff093cbb2604378bb5440045d8ab8e6e767abbbd6143f4d93503d3d21d1345c0509d0aa38cd7094861b5d3a41621cccb30cd7d8eeba1e810d3af73efe16a1a2712c0d7051953fe2880665373e30b4495d9496e3ae823c77043cdcfcaca6b28fa084b8ee9631968d7ca5865d50a666b74b3f95e55a3b857600fbd164c474944046ec3baaa0a0fd684d6c5af41e1e2efb4539a029ca9cbdabf1bc679fdb7fe0de1c8b233edb5a00a99122a5a8a7ef4631d1988f709e3cc5f30938098df43e96906b69efa9e76b23b5c00e8ae7e18bda965a40e436ea205274a1db1344d2745f7c6834d27866131eafbd2a3822b3e778447d3bc390014c274fe4bf34ba39b179f841bc6666a3ca55cbe26740ad122584b9bc7629dd4fd058528daad606a249ded69c07bd7967cfaa29d5cd84be040ccfde12dfb5b515c3ea28476d2008794192df62149f363be7c9cc649c28f3f2a43506a58bcb755139fb2c17034682c1633a84b5130d424e8ff48a9069b4d14ff9af6b871ad9db1816d1fd07548d50d20c6a9d9ed3398270da6db6bebb178ef4e4ab4ffb618c21ddb74bfac091bcf0e32aec074851cb4dec726aee4d8d0c8bd46af45e59203e2839b19db73a859c21e9da8c96bd2d409dcd42120646a3819c236e101c6a1806bf653266c7a494557fde8778bf5734edf39e02c8363475c34337b054d573ba32b7395096e2883f2dcffca028d94e9b061b4c8cdd0ebe92f90e9029dbf691caf0df7a3848a1f1de0d3f1f67748ee1e70d63c785b2151817a72de0eba078545f12643a0b6ee649b4b5b2cb2259ee106ff4b3850789ff031cd3d39b6c34d7ba49870633620594d0604f5ac11ec98a6bf1a1474c061459d2d8a1c0138b0e1607274009a980687de497630d781817c76f2111d0650dafd1cd0274de01dd23236aab0980c630af32e289bce91667bb52d4529377b4ce70bf4ff503c53697abb12ead14987640b9ed83ac67a7f1d6a8135dd8232a88edddb46c754aae0fbaecbbcbb13e4e31cad501ecb23c163a0a0d329fabecfc2bc0f522aa857da472289448e5deb4d5ea5d2215d3c34eaff0b323bd5ba4508b368d7200150d297b42a17a379f7839a11bf0c2174f6b4012daa3d1c959b4c4af40a3584be4f1856560965b4308cdbf34f3652dc7da9cc49affe20162d024866245d3230482ec869c0152bf14be96590564fde444269384dd3e769742b2bfce0871e7a9078cf116e82f547c9d80e471f0cba058d1d35f10b13cabf9dc2e2da05ea410a844a8a30a2785829d79789b46b0c313b2946009de7fa401a52af9f80ca54acfbc9992c52be57574dc840742beaef01a43e28499584d60793bd0448f963ccc351301940a77875db8d70456f13b2a6c394f0bd13dfe4bf4c6f4d540bed81b16448849d97e2b349d653a146b1a39f4958d7014af3de491eae861a635e3efa2144328d8bc24b955f67f12f49e7dbd628167a30192b0e4169ef9be46fd507e7c5d54a2e07553debe8a40fe6c17920d06524b3014c9c4b9ccaebe06da7154c0f5ee4249348f1e82ae88c99de22f9f91cf180701d24440764cc0b0a6524cc92c88cf2ccfdebc0f16f84706cafdf2c8f29ac9e7106019274a7df75f0e36ec438ec937ec24ba24471323242e04198995859c0c660677880f50133c1d1fd4fef032371656058dde388921b5beea432c05acc3acc07637d8280861cc06f614e0372bf9ba02e561dee635095d618fc2188b7be396e84cdbbb7604f3d3d31e28ded1daa0ea31458092e7efa65a655f47511ab0cb11cf86b14388f9a5df2cc5a68c48d3c2aa5f008b5a4e1a0d959db094cb4a81fe17805a1048b23bf6ce387ede9595908ec8cc3da0d5e66eeb5b4a656e9e3ce6c0ae8353eaaf17fe1a4ba7cc8cd9cc70fa1bc47dc970816300b03fd9a223ee85fbd392bc61b5dfcd842405ba881a06cedbd58945170c38a2e1692ca42c58a1ca18a4baf0e5518b16e9a20ee18a2e6ba94d9cb1482c6e1cd56ae376f132ae6b06de71f7cfa6b66a6f9c418a5015490390de202a4af0b0ff4b29c0a43aef91ac71ca2864e51f3d3135ad474960d7a7da465cb90012657fec280e6c715bfebe9b6645c82602138417d43de66dd936a8ae7c75aa73d6a1505bb23fdbe608ff7a30d325f3bc1469a1b862045684b22a8c6cd8394f1d661c5175422f5f5ed4ca8dac0aeb5019bb133078182f6787b3dee16e587d855caf87354c9db86b94af6bb70589964ed0f73b17603caf9ffc85376c786038be236b4fa78eb05b4982e0c5baab8fc8fc4667cc82a6af66aa9366f6763c651a92a03f3aafdf5ab412314abad1c193d0a080d35aae84c6dc9fae1f9e81e6dee53306db966cfeda5a70051de863bc51424d326e0cec6685d380d4c145c7a4ce9e4df79bee95df5e95d93c3c186d2accb0eba2c6377b2c6f272198b876c8134a332b224f6d8dcd7f8fe7089dc588617d7a8e989aeda4f764c3e51955123b1d79092e074e3fa22585535b2117cf6b4592f52343ec5a83aec4b2285315d6f25f4a860cc072d1144111085eccb5a2c35ff81ba8dfc25db2a0f1f0e7214c39084c1c120386ea3808eb79c1eb9dad50eaeef029a8275f15a39b2e75721f436b46f19b9dfbfd309ead38e20d6433a580074239004286757f104dd273a34c7b38c3efa3b6d602cd558e7376b4d29149c41cd6ac43446462693062ac9cf0875513e1165d343d39570c00748aca1eb227d64cc2bc4fa66f2d3320f0aa1c03ad3ec04a92dac26092a93987a9c7fffa9d4b7291a1ea9074507450916027e885edbfde815907c45ff7787c41c17421a03edd92b3921b62f939940b47993d52a6609b217352dbeac4b62b3ed7f703bab5346c586551f8909cd7025ddf06f2ef1c9c0e274b70b99f1b1c435d15e9e25f639c9dd25cf8b2065d36c90228e275bbf18336b9f645840503f9ab07f33108a8384c956634bb1b7f7b55a2f27d5a2014bdcb17a2d32f92e0872fb1d65d16c73fbc1b7b0c9934ab012142a22eb3b3c5ba3fe2bdbc7289ddf6216fb3c9b2321c311bd26eb362f7a093755946f60c18e1258d5045df881ca4759257e4291aa83d91939a8f48d22cd0b2b0e833d5bb3ac104370def8233591f123aa8d78e7a19d39acfd7b1dd5c146acdde282b3f4ccfb94ad77cbd881515e49023b0ca88e96f22e0de0899cad7cb156f4fe967a4a413a93ce614a2f10eb1d994440465d6daf33b606848fa26c00b3635663c4c8406daaa2fced03f743c8a75bed5a540d03ddb59ed19c98e5db660b1db7e2c98e6dc2f766b4b0c39f9cd80c402553e97dc926b993099e8a7d9f388c34ba31ef320fb819fee0e9c59a4c17760a5e3bcf32f9fe4ba17a8d6b281d65389f638678598563733e5e3e37fbc1c6bcf6194568912eec6cc1742b86bbf65cc18ddd71f964c80afff75950133643e98edba8120b2b3ec4c3651d66449f6a8609243991ae623421f472ce602d08bf19629a2745b5d6519e3111b6eae08cf3922459e2c399e9059c59adde1b654221fbad98cb4d37fd1b4f14b41622cb0e9221b0fa1ab47a9d5bd917b541873550d6108388ddc32ae1eb29cc29054f17ea02f64944adcca08f8786f5944a0b87d481a4500ca6ce31bcc8eda93e49a58154cef0edd804e9bdc364078fdc979f6024c0d7b24bff0b4d277d42e7b3fc58eee3407645e05f03bf0d8a0c6976c2cde697da17266635a9f02e26de1195019ac46e6e842ee36dace72fa2ad6fedc742804ce31a49be27b59485774dea4545ec9952b25acfbcc0639de79870e3eaf09e466d3f27b38529a52ba50e82e2e09aa8d3739ad842b2df41130a144aeeb5f154d6f1ab045a47171a8bd4ab6c6f91a7cb8ede3dea6d78f01aebae9f183018d712bb794ae7f547da2e668925a8078158eda3c81ef0f217a3babe3a04c9b09571cb88ffd5220680f542e6e3f3318668465782b4ed6bb5e8dee7362f9ebec5617eff56354673bd8a8ced3ae8c176cb88aba2358cdebc77f9a3325db15096561503237c2af7e8685c33d45b02a770819948f1ae96ef4b9c8de97dc62934aecdb19c72731f76a0b0f8aa9f8a8724a77825333bdd3b1cfb43efc88d563b9e0a8b83deb21b20395cc864c497646b94688f1e0b0ae0aeb30c3d9759177ba4fda45e6aa70f0e3f88e2e4317ac9b5c5c5f452ca169f8e62f84365aa11365b62d23500a5deae997859846f96f4e69a589a4326f00684262de720a58560590de704ef30f94411bd3705b88b3acb498e65129ccf89716337c86e72bca42c9d94cf8f19b1a2ea48325a72642a3c6c522f8d6776e132de1565152e9e62a8e2428570b148e636771109d3b207355cc7521fc5865648b34b6385258d1cf06a85f1cb5ee1c1052e5c3920a4c5ab839dbeae3c148b33be4718e715784e71d32ea1cbd5443762fbe2a4f73bc8226743226745c1c339216fd1eaac4e1703231c28606cafccc7dde3e411b8160022dd3ea7ce17d93e0f6cae0f00b054f6ef95d818d854ef9b1f918379a0fcb433c84db05d7b8da8a7425989c277f368e6edc2f40a05a08f0651e105647343f88c0273022ff88c3d8b4a8f7505d6755054132209a4f8fc484a7df9673078b49336a4e4207bc89252ca249bdd8ccc01096fdf76dc7239e96ffbc54917caae9932dcf13a9878867c76f83845131dff88d8b9a486f374516b68a1d60fb2164425766290bf0d1e92bb64ae6ff8b0d55de6b1b4ae29754c194da9db501d6276efb24c557a351d44316089023c3137b9aa91a6a10280dd7a5cee898d4acc1e84bc9c0620e4e52bafa74e657ca5069072f6f7670242b7b1bfbb31b518f26b3755a98abc2245c2f67b0404b3021333a31577e2860e52a49ee62544fcf362178eff9e59c716f70df0cb06f920d16cc3a419401a13931080240c99fa4effadb7ed0540bca24dfbead7880d2433d3145193d200a08d3bf0f6cafb8a29069d35c0e899d554d1132f52eebfe14117cccdfb4ac0de32f9a8e4ae541c29a39f5bb01f383b116c36f6d0a8d3b82c274430266cd294907c4d67e0dc5a581141b5d613763d4bc30a4505223c772006e217d5d06cdf575169ddc9d852887bf68fbc32dd68de0f38009a7b49eac1f3714d9f7cb17bf0576b08c0f6cabae138066f228a8555859cc723474a7c035508e8113f9adbf5e72afef2a43c21673aa5add6932d70ced6a0269abadca8c126587304faab4232a076e284e9c8e5772ab4904ccc4e23cb98f569b1b99a46b88d15f646d4eaac4e83e9066f97c78028590b37a7c5f7f1b883e82abe82e647d757776eade289fa192fc9888ece25c08b0e1615a680550d2fb3d2053c4cf40c2c9735a722996a83a285232260f0c13b38ca6b204a3ea65811ea6a30a1a14f9f0ac8a063b4410a4193abcbc73b6751b7df0134b9bc2bb6df34cda8f6f400037f01ce1a95522028000185bcadc7eb9abdf24ef57621d7203e3fdf5b1ea514054f29390bc17928b02463cda81a04decd03d68385ef202c2fa302e57db1738249e4ca8982a87662764d20dd078dee15beccd3da461c044320d8326357e9d00c7125015619b92071c7fc02cd0bff26e396925226088cd3d2bb9bc532febaed0f1bb5287bcf6063f09b4c5c7670895ab8d83cfbefbfafde9ee02d1697e2af988c853b35f3f2926f002dc162d51103d70d5d4b0c21cbd1b5d55e902f9c893174c9428028dd74648bbf6aba5f106053ed88dad8bc03b5a5723b3df79377d08a7aa138178a6bf546120f63edbd530a38f5dfcc36b74a091ef1e417b2ae0055030d2ee9c298c7f29951cd47529d3a7eab89e29691479efd0408d66580e27e6ad704378720869e271dd101c291d8f5452983d3671511c33865ce2d088561de35fc211ce10c518c8d8fef44de5488f61ef810388a98fab1b500c26158e4c192bf51bab8a9037bf708707b8081e1bfb3791df9a36acda12d63b0cd82996cfd9aff8d143fa220ca8ce99e1c38380ca32b27fce3c6b2e12819245a4220ebfad808cec8c2bab2fe0d4f905c29ceecba0f568d38c2412397747d891bd36323d32d194363b45c7e242451a391283bbd6ff29e8708bfb62e8686b53a939317eea48ab070083fe41116d3da3a4f2ab85e5bcc19dd5ccfa3d481991b058c62a1efb359715360232b4722ed0a82dcb115584a0f65b33f68529b0eb84552d7bbbfd6ab0a3cb8b04e050f69614ea99f4f8081bcf0b8209c8f378be578e6aa6d12004e14840210572cc3a20b8b3eac5f2839208ee3463a078f600c4a68e0605ac629f7dc294810a15f07809393d5aa5b3611c40fa19b2083e7251be32f1540bc261c100946223921ccbedb8d8ee84d5905c35c4b0f78a72e58e76f85d512d1362863d913b92d755b070a5714ec403502db7a4e365339162fd8bea77b78bec84f87eea94b00c91c79e801bdcc2d09145fbbc872ab411fe4a05121875930ff1b133ab05cb3894babb2c862fb089c051df8040091cce5957d278ddfc2c1dd4e8abe2c1c26644841e0b725e0a508b404f30c0a08ab1c2591d2e80d2740a3d5252333ec741b3e8442bfdf5347bcf7bf04ee743bdb205855bec2a782fddefccdb873ed77a9db2f5d35d3dbd5b50274e16b40871a48b0446b1ab40f1342db26a913a7b7c1fcf1218a0e57afdb3b7203b056c6740488671768cd056f0db8ef902d8071fca1a3e0c1a165242b37f2182200876836fb51357773658cef401cb13e155f99399f854aa027090b266b8789cc96a8188434f22b75f63545168b7eaf723ac31abd228d598022160c7d7684a0fe818a04229fd694f7412c67fdc75456ab4b975a68138190182b92e0023fb975641eea3d031d0e702af9d9b73bfc54844860a96647bd5bec8647f84c5789e00d0e002233ed4b36e25bcbdfc2691ebb3c306b1156b1f450e71b252b20c1a009c4a86b86caf781f92983bf958c243dd3896118e6e82fce8d0fa0828de235f97f608927be54317504f005f1268d17c74554898f6cbfbd8c38e9e15934e20e820ee839af1a8ed5ea176b84749040ad01eba430f286cc4aa33ad5e57806bde2427d3a9c845857f755e5d6bd7e21a2cbfe21aa44d51a3a9728f3efdd04558e50f71037f717d1526a34a230a2477dd6a412d718d21dac0451744c359f8cfd108ba220c6bd254908d4844ce271d6677502e5ac3f64382b1a5e9f83322a4b75ee5e7071e8fe8359595a4adaa6d2ccbec1886156435d9cbc985de2757a74acc6245362d3ba76df268816c289559c2a9ec2bc9239b069956ca516274eee6a500c014a69dd0253717ca72c34c12d5c338a19ac027c0a623203aff5c5b6e17e4416353d9acf1667ae70e60905c74fae565a818afc488a0f7691ad7d358d51d1d32d1251c168a1d86872cedc97824ec4ac03f997afeabcfbce6d4f22e1e446e70b3a3a9181818922c5dd055547f1949f3a74498f21bdaeeda97ca5b9fc562ed10fddc7becf889e38ad634db18ffe25a78b9f501033ce5ad772a83d77511c429e2e90bb92f14e36f714922c7442a2145c5330a313bca085098a3f53cc5e0d37bd62d39cb0a90447522c958281526ef05751107c69b413b50ef2aa809acc2d5df188b9b220e332bd89bca23374bd2be2e47fd846db3a91d57e5199419542cede159c88921d19b95395e9d4e524e30ea17622326fd2c26d3180c3e11ed252c885ac180e5444c46048e3748f9cd09873c3f118a3c6f82808b91de440ce7ed329590f6ae53a7e05a94a7ac84589ca8486528843f458bbab02c55ce26df680c09017c9e636c6d998b8bc036a478fc74b15798f22d944305396d518b04f823c5fd49098460e177ec6d2364d8e12a98da1ee2274a8375cfca442208dd7bc03f498650b24115a9b93bfbf16117c4fc28a7c959d44bedaa64e81567572aab8d1d14445a721bbf89ab2f8632310ca430c019035cb88f084bb57c9956705888beda3c8e0484d272e928fc1ecc32276813ab6cbea2c9b692b54ed72e65230ac12b26c94dd98c16773c0cfe5017ca3c8617c0508286f26750a9a721f877d9c40c10104ce5b31e9c762286a8ce54b464c02cebe20284b2b6ef2f4f575b45f445dada4f3bee1bdffb6531d0e2d95795807ef83b837f0badd87f47ac3c0390ee6c2dc14b95bffeb5b598bd66ef707cde3f10740580996d70d9c7e298ab221af073bc76f068b587979cbea65698eb5bb281f4166a187f36a42e43a1c18502035d71f46dd141cef8f7fc98f0c29e6d8e1c8ef9a0c457c001dcf5870801250cbc1246868427b62184f41d943c5aa73b3a23fd85b1dd906abeed877d328530382c7a1b7a314166abdcef8fae427c49db2f7c9da3d2d618c97088d1c9b041dab91ea6a716c8839d751763f54c92ded49d9900e2256247ce64ef92f4263b4ab9171fb353d401fe70a5fb572257fafbdd2fd8457bd913c9f1b199719b7e86070a481aa36bac96bbd85e071a86409f0466a1068668ce24d7c3843311cb51f02d0f5d3316377a4504d03a3fc1d54576243e96ec5b697873c93e2ae21f3c7c24bdd56bd56497ff2300fabe5b6b306a60348b416e2e40b78796c32dec83b98d63c71e73e0e019ecd24bcca1436469b9c9a8e8a38c008f9aab2221b3e88a0d2f8759223c6383c0d08da422b93eb11f710150f74ea708f66a6abe410801bf4f9fff983e540f8900900eba28d6e39fde3b756c05d7eb850ea241e57ad0ab23aa2fa50f727fecf1bb50b690a6203425ecd877fcd2a56c53a6a941e4a2b2d5d482bafd52e5dbed206a0d5267eb848ff0ebaa701a6d68633d9cd08774794378a24fad97a0b8b09e72edc41852606492facb01da6afc3656f766ac15321f707e2078338417784ea502690be82001380157fa99367eb03258f1a83f35a49db23430333a99c0bccaa1e838b1394daba14a5b34943f715c6c76580f14b1125cf0208cb77574a089976d511821ab4dc14f1c7cb26f736d3a8ebeeb2152861bd2db9b0467662f7203d592112c88b390fce912536ed3859252532f38fd8266aedc855b98804c2ba57fbdab772370d3233f2a2b3c9b6b4c204a338cabfa84bce5eb0c574151133fe0322ca8871e0ac2694d9a6f5e88a0db4a4ef40325ab492c77afed0d1720c35edff5b1ab49ec3301531cee024e0d7058c8c68ef05e4033b80b49bee4f27ed1a3706af7de0598fd9c02edbdbd4b925e65a2527dd0a7424f2bef7fd08f77438a68461b5eb619ad0d558d23020f655f3cf2b2f50eb7d05c259880c01eab85e177255da3cbb16376f48573f451e4af5d7c22c79a5278262ac1d55235f0519ab7790064acb938bb666a8cc4a3e245cca6402c72edcb240cc426391e1919dfcac9127b82172c648088d3ac678c478c8d28e046d6dca526b95b34809213ef20004fc8e3252184d71b84852ca5b6e8acfad62de1f41938e922a9d4452078ee8bca13a0755e620d116cf7d1ecfe1cc05877b0cd7030264f258c2e9803d6d24e9cf620c5cca43823afa2b3bc9a6652fec6f392c852e9b2024a98408a8638484f95a6312a6a95e33659f819d73e2f7b5a6555765227e1b2d4c8858fc71abc494b538df814342a6bd18273c8b9f92de7c594b9be5f609e3e2e5949f09a40b20b3d4bc0cbf09ee1267cdbc421fb1b6abaa572d3ffa54d19c9cef72faa2ce7100c538482c5f36d6dbca11e6146a5a610a48b823bc0a8b3cbd5a5ed832e1a67343c9b356c19ce159c5fa73233e56407dc4920d977255b364cc28db02b8de194eb2f1ea6bba68282b6be4215947500be4df37e5ef157a2db1b4e119c80245b0f241f19b475261a6ab18ec510184c06a93dcaee125edd9eabb51c1e31a1e50f1bfe1825ddc27ac9f3ed0297948cc1b8ba31b8660f437d93aa2fad99263546e2f259535b88f4d9c03c423da6a0ce2e7d2af0bded8c89d2e183981469a573de031531a704d5066a3285dee3366a1a5810eb48ad5d5e10c5eef56508301fe79055e038351c8235f9059c0e3eea1bd42524425b77800b45f0c3e3ed3a3f277770bce8a8a0ca3ac513830b8ee6e307e091064554f8f18937d8fc665c1552a17f0eceb0803531191b2996bbbaae509bfaa46ae97d58c18bb3a1b84a7394a41a01e1ac2b9b5d0588ed4e5c606c336c467ce2bc08bd8d509bc622b4ef78c00d80860a6c606f16237ec04850fb2161ae1427692928db52ddc7262f3368e18568e7b801c521baf01f3d90a5a422bc9b18aac6529484854167c007ecda89a105ed858e19ee8e7240c8b0eee39fae23e9a1d1a1313fb95622ba9ac3619bcd0c4973e7b8157448a171049a5f878c1f9632398044a19a293cf538759db9338379dd5952c1c922363bc9bcbf3f63bc2a9fccaa342a3af70937310beab9e270b6374b947f1749102e12a105965f0ffffe400346d60413dda5dd78a7115c0b844168941ca1c0531710c6a1883c408b36ff577835a087a4122bd9cac637af98f6c32ac3109a9df1045428425c92a540109bf385dae5cf04730f9c9dd4a70c8ca06c580c435ff631c888c036cd493e18fa1b630e6c2aaf3e8046cdb5a4b1a87433dfb15be0375fbcf23acc8fa0608b8e6dff04e6989e60df0126050753503726d85b96d16d87050cbbd011b2037075f44555731e600abfec822bc282a016079da030bceca71f588e3fabdff7cdb02a0907c3136d8a79823d70a297d9752228e51a6de729123425cf746774cb4684484f0ea21033b4c596cc855d57d655abcfef8c1d9f9588f23cd48c7c0829f0dbb6bdddde3af6f3c8eacb425f27c1b1be4cd1ebff49e91007ffa41813eb327ad9456d980af72a4f5b2f2de7c79268f83b49dc6a478dc707e6b4570c075e862bec4fbd99a7626904a46e9556ccde41fe9d9721069bd21311504617b2d31b14fe7a521b961846923c2807900f2fa93c2a60ff6c41375836beac4ed6a56aac91a96e4a3c929237016636371b1862b41e220993aa1c047423f049ad73ce0dcc581101bddf9344367091270846475579174e9120020934b016b99eed7b690bb313e6676140204711476f178d57d6ea8b428f80940e610e6a9252a48f45ba1310318ce4007feab53af2489aae76bc5f027d3e53d19d95a344726e5f82a6db3f3a9b1584ccded45b36d41aad9e1b4dd57e504b11c1b55c7077a715e9a9b0b8eb321c709227da898bd7d8b207cf012fd20e7dfe452a581536e1bddd3fd21719b1aaca3ac5acdd55902d79244205517eab0e7043954993ac3164161e7e9348193724d5b9ff0f9f136bc15b80113e52aea20af1fccbbe310e9b64d207927c14e24e80a19de8abd51bb05ac64163f922b1e760667dd424e75f43c37ffb715f3fed33d771bee00ae99ac7baf7e18a281197cda00d0ab04fb91458da47b11c1e5f2a9b95341f25bfedd8fa5d838443920052ef7ef92e2fdfdb0c41d7b3d65984c25731cdc2dbfc825c882a1208b65bc54d0ae2413c3626cc294b0589b38a559ec269e9226bed24cb4924d30a583c940b3e16c34d69154e65010bd42b0bab5ee9a9bcc812f9e9470f43f260cfe73a5e59d1a5a5cad95dfac83d57abb0cb55228e1e029297659e7f5ff24bdecd812fe89402854c05caa2912da0d9204ce6f0b3133ad5eb82777576e904a41d42e0dd2ef344562239cf8e1b6f36a3ea4c6df0fdf85c979543bd5a2bfc9192e1c7a32d0e64e956dc4402d7f2ef2edfcd170bc2b54fd004aa75ab774b52653b10b946a7b5bdd006ff395d07d78cb5eb41c29e158302bd81c0a9e79119010cde9d7837745f6aff9a150dc5ccc3422897398d0d31588a255a1327e655aebebbf44c452444e89ff9e648834c36f75ad486d4068efbe0241ca7d1eb8a91a6ce89f40cee7209db3d4f792fd089b9706e751012fdeaadb22a41bc99a440028af10f7e7a44be8d41e38d610186c4a8ddee8f70cc51062ec7c7d37183336b0ed86f02d67dfc8d392b01a652bd8fc60174fb064d5e592d01009a1217d80311c5028a7a7efb474ef2afdf499239373e2ad85827634d822c3135cb9a2223f244633f4c7a9797e9bfd75f07c64c076b67ab59b3c6ff1ee601b4d3fa7bb4129f9ff1108712afc1356e403a55b0aa56e0c3c63c3346c37ac67526c69b5a10ac6e782268bd52ab7798f24d94a1e4b2648ab7d00a7ceba0dd583987b8ed52f2c3ec4dbfd225af61231b309952cefbe16eb9bb1f5fa7ce969d1c3722cd0acad2a1e286e718cd3079bf846f921eea471152a31abb08a184ae5e18b4528e77bb6980bfee32d28dc35434601ebc1b610536e8f76117200cae327ccf177948f985d3e2711840676207433128522102e98e7f9a9bc1776f0d4a5dc973cb900e090baf1219a7646ec0dd37ef2e4766b7245d4a10156e62b04dbe97e309e1c0ea813049d359924e2bc2af7bcb7fad96cd79faa33c0d1990ad4fcdb67d3188e86ea32cb475eae66b3c710744d1e516b88e11540ac8ab30169457753e4d6161adee6029f65567bc90e2ebccebd3724da36e8c4c5f4111660d2ebb103586953d78d8a21be466f7fcdf46ff3e0b2e5bddfc34bb78f3ca5a7942bf792107161eb2470c0f614047c518449816e277df33445b0b397ec6ae07ac10413fad6f9f3c1ab6be1e5439f611e532f8bf6328649a268e950b36898596d93f770a13fa65f84514539a75a970c4267f5c7518ac57a9537cf203da00dcb25d4d10bb335ea3890b1973a69bfa9ab28b5a43b300c603ee96824dd1068103a168ad1ef8dc44de5cc85ae8907b6c0a96f02edfec5b9ad4f03ad6cd58b2fe4571c454766745e72c9e1359be86e596403bd63e38863886e03c750c31f4398ae3a85930df9f2ee82e64bf024bbe842adab8387fccf9bd4be1de680f18096c69703de1b5f4b0eea54bef90fa128017534eafef89481317920df58e281fc4101f140bebceba17187a14c2bc1175c200af2418c1e05f9c2fe28c80f182f7237eac51d4823e9ad06b299413e0dc820dfcc510fe1df2680cd243c6462da1a782768cd7cd541d545b9340b69a6cf86a97a7d8288673d6b6248b6a485702c3dd01a35099723b4cdd8588887a3395f183de3cb2ea4d658cf9c3501d6faf8142b885bcb098390f610b3dfc7194b9facd97400b06b78c347d8f80ec256ca28a19a1986bcb94916e2117894c077adfb242267bc7b412101dfb4ae945cc8a0566adf5ff4319f15bd4508c9bb16c79c9e1f94defafa158bd2f855010b6cb7c3084a4babfd51d0078096f06018e7a8e8e03778a70380c99a0a1903b65d1bdfb03f987ba659810863b1d0945c5903ceff4ba11b5277bb3995dde8c8040e9951fb199c815c749ecba769df5b48a836443a5a6ad63cd1e95ac0241144385c421590945a6c14210ece5103b2349deb1ab56efa4b883a40546a0624a1580d2adf873f0bf7cc095598da0f55716e8e2fdf5fa5fa34ec6bf63e25b0afd9760d93ba6caeedc09c5c1957b2605fc3d3c9ea0737ded770b9197ac43483c21fa880040fd2bcafb9da81119dd3140bcd32b7a426e96b2ea7a451f09f1f9a6c70f754cb673aaae81d76704be625ea46bcaf219587f0be666f528ff7355b6e6e08a8c07262a63251c1121ce0760206b8bcaf895780a2fb8e93f5e6fd1a25c3a1c0a23dbd9fe84db132d991bec638dcc1fb1abd2fec0ee6afe801d80add7c600349fed88ee8283347e3d1586688ba0c2a74c65bd7ce429edb313f0f4029d56be052a992cb19a4785f73f573fbff19e12ca293b0a9990ae81f1cb16e0428a1e120a98070c492d5cc77bfa8521d6121c288f5e90a1e16e035e99732a87d5eb9fa936270691f458f13800e739226007a052539a0f2b015747dfbcd319a0d7dfaa4630551e153a09f5fd23f2a75a32c73e65fddd784be80dac2af02ee1c8f49fd26865fdf0c0c7cf9504d79ab52ab205a7efaeb91ffccd2d31854edc0753b360f3962a51f98f38e68d98881bbca7e935f0450b28f2496de588851c5631b826a1054d312802ec5caaf1c6176343c9127f9029dde67a9bf89269a6786b58f7c408dcfeeddee7bdbf8a08005c353f980b452b117ad627fa9aab25607660e304b676f1c975d63789857194bf2d49b60d4a598ff77140f23001da7fcf84ef451d1093f549a9d0a53dfb868d253af16d730334f34ed08fde5e14b83328974f221e27a4d176a1572c96842e833a7e931d3c8e61d2f1494a6e6683c0e1f1b8c40530923da24c7ba33c731a7e033cefecb3f921bccdac1359d07a69898c09313541e748ac236b75c398199ec484b6c316d8ec4a73a38606031a964fbf27c32c201c0b4f8e052a642c306cc184d2a8fe00634daf9290ab08eec6d2e10da696a5fdc1246109e8f0bbf2bd87533286c6676b8f4c154b8443e6a9082ecaa2aac6df78c308436bed7a33b06c967646616a3d2f6a16d1d4970ed92149f711d1fb7383ab1294f650903b9f5f459e7bea9769120ef1e91fd8f4d31f3f77ed0506ab67d44986e5f0dc621e1e883f1bd1391309a8e3275da33185f7737fbde361d1a61dd04c9896b361dc295d94fec348461da7109c8d4453dd02b7df558811a0dc796fbec129d35ad7c1009f570f13cd3134d082170f8611c44ce510225e16a3ed7235d48d0f3654b91d7995d143437ace8521873af573e604cae31eb43241b87bd520a7b251c92829d46d8682c367a2a0961c47e4e719b7e3d50ce46db08849ec711a208c324099e7353050ad54be9e0ac78cb2fe0d9ee0e98cf5970975101cf13984c15ab37decb55cbd349a802c3f2b295fc199cb28e6f16c4a268e71e2f3d6cca0779643f8ebc65308d1800c8a4baa35b9a1eddf455dd630ff64afa229cba83d091a1eba3b62c0dd0b52e0dd09416d70755e78b863897f1b28aea356d403ab9768b759aeb7814c3e9d17ab01be2f7976f04a3a2d87fc24b925b901b093936379da51a2846037a6e5b6fd164ed7111fda5b82960348692d856fe84091e97a8c52aa11244946b81943601f5f20048001a3c8da82c623166a9d1fc5ee56683e1f525601bb00ba2206c04a3030da206e3f59fa0058fa8d37a54a3803554f1ccc650dccc7e0501d72d107ade7f83c636a75bb8f7a7fb1a9d35bd05e276401e90a516dbfede62caac9f74c2542481ea69cbbdf1608051f657ecf312bffa16c0c0f59d49fa4633a2889dfb2169fefa574e3444ac2692c5588324683548be2eeaa37d72553ff1c6c962b34d4b470c7e08652288c6e25bf93e62149714846d690941419ad236722d91304f3bbba407ee2458bd8e032dccd652a752da33f0cd57650cb3f89d267fec639882098c9ec470309406332f360ccc220329510e7a30df3ad52e5d156b86e2f65ba1f371654d6235bfad6ffae1ca01361c119fceb75ead402548cd45934812c6c7ce81b37f12337cd4284ebe92878df96269e6a371780bfc33b196fa4c353579e8e82573c8d3f907639593cfbc0c321e5ac40c57a9447d0a5bf851663fb3b38f8bf23704fd3499ce41610c7d6957071f223d0d5b34b5726f106df340085dc2fd0b1d499318451fedbd4636cdb721275c7a9e26db6e3342f91b6ab28186040317f835782b035cead3c3afade2a6b0a9a7ade9a9760be0001a66b45d2c412aec768f84d37b2013000534ca0dfee1f4905513a9da2b395c9a22da85d68b05de232a60ead50b9ef621713783b15ea983a11ee22ea527ccc3e633e5ace831c7f480cdf5a49cf7d5c99fa94ac1a8833ed8cd07ea80a2b720aeb10b22c939a09eca1f1ea8ffb66c8bb196d58c734ec3ff5491e9ec29a2b10a1cd62da432f2e6799b3632e299ae7e5a29dedceaf291dc7dd50b7db755035232f4c740d9dfda0232133f18ec2107d28685d147d03eb4137f0dc7ec2e4006047bce9224c329f9b3d14b3cab8eae890f2df3e87a99d0702012106914303473f08f20ff3f862ade431f69059dc1d5398503071578cf67fc393e1a194cbe9d72d03de98144af32959e52ea2f34104295cd4d729c3ed5b088981e470d3383891e4fbccde1f0684bf75e7ea580ec01f74320f5300f7052814b7bbedcaa45193b9890a82503a78be82303b989d090511df17056d9106d3d9d097c2121ca4e4a3270939f88bc6b2f99f6c48d1e4631d04a54e19bd6019fb773244022448eb9c6dcc78017e1f7067230e82f87d59c26e298ea33fb92813dd9701b850eb15838ba9113f752a1c4d19b2bc8f4d460f5cddcbf8f0de2fbb84219ad18dfbd9a97353c28ca9ea8872f0d97939cee51dd562e08af191b73ff720bf969b33c25d5c03209beb8aff3a4556a3168d43dcf9234b423d24903a53a2bc2d5741d4fba084456986144a139454ee6dd252693fa080c6e8a636106e90ae75d5c81b0d89c3783359f9c7d6935a77089d2e6682199c4fcd69ba2a842173227d0c364cdca4525dee08f54e676eedd001ba160dac346f311d08d46e64295e8ec2ab4e1e19eb32517be777c46f5f9c0f80a4776fc03d22fe09527fd755603a317696bd087eb9861ccd46cf855172ff01ef66904025179cbab383e9636356441809ad9b8910a010382714a296669ec1834964282a170c00245e0ccc950519f7a5817e35b8e823c2a3b3c085a541c11db1efc4cdb1a87be4e3276eb954be534eed0513b18637a8dcac358091b44982a867d17621ee0de904707ca462050b167aa35318f16ec8aef1ecf55b1f7dd0482956be7ff5d83f3d2d1706989857851a64840801be81358a5d5bcf0750423188ef0eaf6851a379a7fc725bcec408e702541dd1bf8df6aaddee784cde5a4b2e50c528dfef48e832984ed2ded88ff8a0f47dacfddbcaa3981c976a2082d673c1e24cfb11d170dfa37e8972ccbb2e51c6f57d34e9f79ac841fe7be11fcd2e974849c11ba28f0704ca8350217bd654ed70162c7dbf6246f1f4929d306c3a8812d1e8af30001299d7e7a03cf860a018bca5bb048e2acecb21c93536ab383b4033d45912a88dd78da2e85b5615969e388e1f007233fc058532f6ac396983b439b3cebc788d08da53dfa9babd8dae6294166b54bb21a7620aa3b457cf5dea2f56ef217afd0f32fb8aedd2903268c4370ecd23ada131439d0b7271c2385ac7f10864e440956b8cb6de00bee6150fb16d2495abaa61aafab3e215c9b6055d424663d018a11a870691ec5f352305b832ef8018fd89c19bb75b386eed17d00ed0f4c0d845a36995a0876d4645422121506a5ba9513f7ba86c6e6ec5ccd0eb59133959bde1c8a963b27122780d9650775614b5a683959d332d67340472d2deabce459170c96accca27d133c6032e6a8f83ebe320119d77a31db32be0ba2793d01a5af67a6964086e729949587e506823c0c5a8cf29754b638fa921f80c0f11f07fe47e932892933e9305508be839bb1617337d1146c0acaa2e0045629afa2f41c6171fd505dd955317ef94a0cfbcf61ad00ccddbedf40f5fcb22226db737455f951f352ba49d950020368813327d6f0c7c0116f02c475cf29fe747c2ce223ca013ef06bcb8e0446cc0eac3c7d0ea6d065c2f77486968f56cf7b778d5216b430ac8d07454a82ca163256bb22ed0a4ff9d07af22eeb5a50968690c7a1652453a734b489e940763f256a42828dff22fdc1e7142df0933a1510d4a793bc69ed1b860fa9b2dee984823a2986dd872eda8cf9b2e9d91cfa5df73ae29947da43ee0fa1a0f890c4c49148c9d780a0b2bffd1dd8569c230716ebad859ca4c081502df6cd8770c10a5c759d6fad879941eada6d2a476f83158bb8ef22a5440ab6664929b9b35f1f8e45e82e4b73e3b2e7f7fb90864c7091fcc749bbb1c240349d1a084d70dd148b3503a40ba7812b1f3481bfe7f03c39fc4781c918d96fd25de21b95f84e0e070540f845d9410f9fd2441177e3639125ec1bffe226e4866895bf2a8d2e6d7d8dddadf5e849758f35588acc36d78e51e2f3e5e63760b439b35bc5b69095647c71dca72eab700b7a430ca2009f31d0b7f4bc04e165529fb9c5351adafd9e19f417aab82ab31a33615aaef5e0192005c65fb4d7a8c31d4d4510ac6da922b394697c5da025ef4cd2a3d312904ef87f63fba6d192f29888425a3d7e0789e3eb1eb8a5a79dcffdc177c3d351c37310cf41186bc2fee49e9f2b34651264a3a78eaa50c66b320f8ffcc644b51bcb00da4b895239697929cb6f954e785265ab0b66e2d7dd28c29486227891a710ea475c893dffe0cebcdb088fddc6433e95d94ae0f22b99cd0d3350f341d580cd2d6f60f6370af8baec4d6c2c3134698e06ea06610a3cacb32ff57c4cb55e964b01ebb4f5b2093f1996aac84f645a3af2c0fa59fd9444b77d599d97ee32e387c802dc53279516e5c557658615fa2f9e18075c1de7577376c818425571c101c3cdbd3ee198da84e5ec183a0792c5d640e8d0fa62692d6260316263b05fac660d0a02ebd604b7de9a60d65d12dcfa652218fbf603d47df071eec284e00c5ca696683c566a7e4e0d8f07cd6f879a36be73c73e36f777b9612b4ee4d0aa53b4b90cef05727f29402c2c42ba56cae2aa7a00a81a24d816a9af0f4b03b99571fedf9f93eb578834fe48bd378a3d123a8c2861249cb0ee757ef381abf645fa5467044dd1b30f3f0b92d95d54627615df80175b3c82a80f487616e20529943ea0907d021b0505a6c837a10f99f283f5ac133c4b6f0f40610802a216924bc36f767fd34279ae28a71bd9cd4f67ab6f44ca18459e6d3b422ffb995d75e515be19a766c9f4c8707b4211ca1501bc958d0255de82b9a5a4544727f30509bd22ce70f3578e0c1292fe8fec8894934c17bb9dc5d15f77a28d175fa7bd0d4b342c2f0ab4c98be30d4dd5708a154ca047457d15c4d48c7fd2ee103b86b1df2264c341a48681aa330ffaf4f5cff6407f32cb1f0355af1aecb3017f1004848bf2df4724bde916b462ebe2cb85014fdb2623fad747ca8d98d7784b8f6779e1424907cd1eff607e71d23b6d15f382634c66869581543c02d85a051fe1af9092e767e7e0a64590abe20cf408aae3c0886c471623f875dce8f0ac464887559512c33a875252a7fef85e19b1fb9dfd47121de033886806179066debfa323373c7fef87a2e546e00757ce0a63fe4dd2fa5822c7523e49e61113d4d4adeb05b507171a1924d19d6c5d65a69c6541bdcac7a0f31448dffc03894ffc9399ccc3a1a15785bd1070a31b6ed0fb554eaa0f2cb19fc4295c8304ee54842a0e571040ea6ad201444ee2f0c8a2d8df610d4033f0294203f706008141a70e761a89f2f4031bd8d802b94ca249f5cdff6bee28a6ea3fcbdaa9ae054e6f90a013d9cf680299b24041d68beaa5caf57f3e5a5bb3841042b69432440eff0d870d457caf7c99be447c87f80af1b5f20de20bc4b7ca77e9fbc3d7872f95ef946f0f5f1ebe52be4adf1dbe3a7ca37ca17c73f8e2f07df24dfadef0b5e1ebe49bfbd6f0a5e1fbc96519e97bf4fdac628b66f87e8ed92226dff7eb4808ce84e678cd1be933d01cbf71bec18f688e6d70567346a2396ee3ecc6b909cd311be7aa330d34c76b9c6b70ae81e6588d739a738ee6188d731a672734c7679ca9ce36d01c977136e37c03cd310dce68ce4934c7639cc9383fa13916e3bc3be340731cc67906e71c688e65703e738642730cc63906e72834c75f9ca7ce3ad01c7b7186c179079ae3179ccd9c95688ecb9c5d70964273dcc559eacc03cd3117e7169c7ba03966c199cc790acdf198f316672a34c75a9ca3ce3ed01c67715ec1f9079ae32bce589c97688eab385b71ae42732ce60c750682e638cc5905e720688e53700673b64273ece5fce52c04cd311567dd79089ae329ce28381341737c82b31467269ae328ce26385fa1392ec1f9e95c04cdf19573116723688e8938339d8fa03916e23cc419099ae320ce56ce49d01c57390371c64273fcc379e99c85e698cad987b3169ae31ece53ce24a0399672e6e1ac04cdf10e67a5f3169ae328671dce4d34c7399ca19c97a0397e72c6e1cc04cdf10de7a4b313cdb193b30d672e34c7359c73e726688e9b9c69383b41734767a473179a63f21964f8be928821d0dd2111bc08dd1d02c16f747728860f9c88ee0ec1e081175c68e141e8ee500738b00116ee83ee0ead701034a0420630f019dd1dba8005ee01dd1daac03ba0bb431498c077d0dda114ce01dd1d92400420f0d3dda1075c07dd1d7240031e447787187020ba3b84c202962840c95002de4377874eb809434910708021030c15a004020c00c95b747788848f70440401e086ea1be93baff96e009edf00d584671b846e88e736c4aad5998d15d780755e83c53aa7699dd568711aae331a2ed799ea753ee3f53a9b61732ec3c6e68ce6e64c839b9b3319e3798c713cef70ce62e0e09c6790730e2327e77c46e72c031d9d730c76ce60ecec9ca778ce5ff0f09c61d073f6a287cdf89c5fe0e3737601ec5c06063b4bfd9cbbf8f939b700c7990b1c38ce64626716c462e72d80ce638080ce5141672d8282ce2bc871ce22478e33163ace57e8d071b6e2e72afe33143d8ba1f4ac02f21c8624cf603838a780030ece5f769cbdecd871d6099da910123aa3a083f3141d747096c283f3093cf0e06c02d9390a99ecfc343b9760363b17c1e37c85078f33d30767223ef8e03c448fb3103d7a9cad0c9d83181a3a0301c2b90a08209c977c9c7ff0e1e3ec03ed4c85463b4ff971eee1c78f330f40ce528000392b0539ef1024c8590721e72842849ca10c39e73064c81987daf949ad764eb29d6fb0d9ce36109d9d10119d7344ce35102172a681ee0eb99d9bdc6e67a4223f2a52e433d0dd21219c09056b085e0d614c1562781615dfba0d75fd86be3e529be3d09be7d0f13a14e73b34e73c54e73d74e73e94e730daf31fea731c14f618fd3910c5f1201a7b0e0a741d34e8a7398ea3465e69004ea98e93f4e780d2efa0e4852807ef80eeb80754e832dac167d483f3a0b27f4067ef41797c887e7010688ffba043a75110fe83fa38104a7b10fae34228900fa1415ea3426ea3434e446b27426dbf51a217a1441e02bd5d00b45e048afb112a808f40453809f4c891d0113e004ac2094091bc043a80178012e006a025fc00b400470035c093d003dc048a809f40933c01d4842ba1275c0134015f42957c01540147812e3903e802de008ac21d4019f007d0061c02d4018f007dc0254021f01468043e012a815380a6f00ad009dc029402bf00adc031402df00cd00b5c058a816b8066e02555e12b500d9c055a7e0374857380b2f00ed00dbc05ca81bb403bf017680bf70075e130d017fe01ea81c740613808e8072e021ac38be8b8437d005018143da4cf4ff410115019eed119b543524fd0c501806e2da25c8dbae06248f7907e08b45c15a1254e0848d615a30c375afe10a12525a2e5cc46cb1f355a121942cbf52284965b45105aee1820b4dc32b514cb058346cb1dc3072d170d1068b96d0cd1929bf4a0253ff980962c85072db9ca8c967c45464bd6e2012d994b07b4e4288468c95e6a297215b514794c2d452e534bb164304e4b1e43072d198d1cb4e4368268d94d8068d94f62b46c293868d9557e68d95760b46c2d3eb46c2e3d657ba9a55876153ab4ec31656a29960d462dc5b2d1a8a558761bb514cbd9a49662399fd4522ca7943aabd4522ce795726ae112452dc5e9650190f49b278af80900bc3fee2d8457979737385bc45d789c78e9534bb1889d086ae2a50eba45dc841097971eccb688b90c39bdf4f1638bd86908132f6d44b6889900c0122f0350b7889708d3f472c5d4522ce2a62cb6bc5c2d4cd822dec285122fb70b066c112be105095eee1713d8222641185a5eae181ad822d6524696977b462dc522ceb2069697cb4608b688b1bc91c4cb5dd3648b38092748bce41b9e6c112311e58897bc83942de223a818f1927fa8b2456c841045bc6422ae6c111781c495978c45cb16f19526a697cc04972d62a6278878c92588628b9888298678c95478d9221e228c102f594c155bc4426461e5256b31668bd80a1741bce42eca6c1107e105102ff90b30b6888108a3ca4b16638c2de22a652cbde433d0d8225e5ae38797cc06b7b145fcc31b3ebce4354db6887d7042e565dff0648b984a94292f7b07295bc453a8f4f0b27fa8b245dc83103cbc6c228a980724a4bc6c2c5ab688a53429bd6c26b86c112b3db1c3cb2e41145bc43b4ca1c3cba6c2cb16b10e61a2bc6c31556c1147c902cacbd662cc1631142e7278d95d94d922cec10b1c5ef617606c11e310c693972dc6185bc44fca487ad9671471d21a37bc6c36ba8d2de21bdeb0e165af69b2456c8313272fe70d4fb6889d44c9bd9c3b48d922ce51a9e1e5fca1ca16710d42d0f0721271658b9806249abc9c58b46c11376962a49793092e5bc4484f1cbd9c2588628b8ea698e1e5a4c2cb16cd1086c9cb29a68a2d629285d1cba9c5982d327a73318297b38b325b3482173908c872bc3d06b28411f907c8f24487812c65b67b802c69b5bf40964443ee0259ae4ec85b20cb850af20e90e546013907c872a57e7c0364b953b4b34096bbf3f115c872a9407849965b35740d902523f5b80a64c9491f3c0364c94a3c8e01b2e4a5d92f4096cc24bb05c892b378f00a90253b75700a90253f097d0264c9ba1d4f812c198a834b802c398a7c04c892a5e82140963cf53f802c79a7e30e204ba6caf106902557059d0164d9484047812c3b29f60590652be1f812b2eca59f2b802c9b09762564d9597c9e00b26ca79e9f4096fdc47313c8b2753b4f42960da57304906547e5fc0064d9520620cb9e1a5f00b2ecddcd4b20cba622005976552dc50190e544aaa588842c67522d4512c8722a8d409673a996e2915214812c054096d309578a952ca7ce08594ea80090e58caa5c8b48008450e44684ee0e11d9e8ee506d88902040e8eed00fba3b44a3bb433e280848953fd4e3031eb32c952ff3e0a9f23bd055bed08ea8cae740aaf2497aaacad7912328a9f281942a3f86e307e6f354f93dbacae781aafc9da8cad7c9c1d955fe4855f9375d55f9362f576ba9f2594c95bf129de653655d657ee2e6b5eae2c383e3848ea09f263c10a25c7c0ccd9c6c437e301100001059424c182f4d5a6451c5962eb818a3c4175e942181186180a1e58c32c6c8c2c61a6860d935fbc6b691c40d4e9a20b143942747fc40458a11440851a5082c485cb9c2449316a6123cc185082aa68862083161bc08a145165558e9828b31417ce1451920c408038c2a679431c6121b6ba0f103afe137b80d1f6e70d284ca0e519e4cf9818a941e8810a20a0f5890b8228589262d4a257882cb0e544c11850e62c27889a245165540e9828b31397ce145191cc408038c2767943146121b6ba07143afe937ba0d1b6e70d2c4c90e519ee47ea022a5062284a842031624ae3461a2494b099e38a2628a282a7f063161bc543e132db2a8a2f28dbae0624ce58fe08b20e5f4624839cbd4291b8e42d0473b66d88fb86a27f8cbcca5d500a8ad656666b652bb6b734e4de6335abba30475b5b3d43035d852374c1a3375a7ea8659e38aea29ed8dc1d8213e4fe5b4313e4d5bbf218512d28d0ab6b0420909d73a24249cf89db63986cc1660702c1d9e70c4f9bcef2bcd1b6c6081846b2a2424dc246fce4761320eb214ff43c2c812e643f690a5ec63aafc1db2a4f197a5b212140e597e4923597e4a959bd0e16ec8f29bda55ce89fae10c128eef2d4df0a96b4cd3b6381bb25ca817592ab9c8f2736a91e5079504327d542cb2fca42a7f5122597ebaa5a7ca1f5265afaab29412597a53200e065bd05a3104a737655ccb9d1a72c19540350cc38b2118144cd5f04c0d411136069432a09075bd9461a5def40cedda59df44238d74b882915fcee07dced0a56dcaa3ea3403528541ecdd090dc445783a1963a9ae9730b0a83dea7ad9a1a9e2b4fdec6c5ef659655deb3ac796f5e8dace105cab188c403d9b7fc172a8183d10377766ea7a09c34c0552d78b1867aa6cb6b7ee061ccbf7ddd947b6dad52d6b594e0de3eb8659419aa8a982d6ee083faf57202806525d2f3358aa1fd4f512069a2a760d0beb737aafcff5896751fc8ebcdffa58e2f708002b28f6effdfbcaf57dc5df57c11004c1af7ab939d39ac9b4a2a2c42adc93c53e3c28d8b55aedccc3a95e072a7f7e45d70381f845f5d821eea8a5ac02892e18ec9f4d7c603826812b9e42356d30182bb12c9cdee776ed2343f19b3bd1b5f2668f2523106c7566aa944ded107f99b6d5e81d792d9719d90ea191c9643debf770b1c4a6a262e4af5a62d8023fafd56af1b071cd8ec289416ba7cd6b91650b9f78ef4e4270d7c92e59b61092bbb39561fc77271ef9817c27dec33bf93e64486954cbfd06d91fe511b9fb638ffb4ae05a8258dbe8bb3867fc914d7d8fdcd91b839b39d5b53d777777ef76a9cb74b1a86da4cd58915925f1b442628565c5c5aa8b5517ab2871b52a2335963bab2e562d5821b16ac1aa051b5f29031212528501e67a5512bceabdfcc8b2ebd6f01f02407205efd31369692401c97a6831ae9734b2d41296c6522d451890ac472c09eb5b953412eef571da5a2ed65d346703118ef52411f77a91aeb368eb46a6abb610a4eeab8415a32e8925e6dd6875b810b01e8256cdf366ffde9737b66492d63df284c57947627f66b43c1c1ebc82025b118b71bda051e5058d2aa24155fb2e34a6d41206d4481e9dffe800bc4fd657a2f87d8db06f91ac1b9932d46f258ae20a31ccbad7a9fb2ac183ba249610d43c6ff65cb3c6f3bc5db306c7f23c0f0bebfb5a1200dc546aedbfdd6dcd9d936b9e377bae5953a45fe0ba6bd6d4eddd86a14b08405d722ed1da1d2ed64132a604045f2d2546ab873fc21de18e70ebb5e74d6f8a710a2a2ace98a24207af8c1ad0ac90d0a0d1a1d9a971d19509c69efd7993e5e4650da89d87b4c6ce73aa419287eb7fde9c426226090c22c045b83e808bcc6341a67937d3e4c878515e72583079c99131a3bc38c99131c2aa8ce57891ca6ec218cb7f545442784c5ed248a1c51421d5144e5358a06b290ce9a66cd8222a77064cb872f274669c9cc01973064737c6cc541ae3860b698b1eb4b0c0a001868329306a38313dbd94c0a8e1821f72a6743674a1baa1044ebcec20eab050d3544b534ca01314af296e90a698483a1ba8a250e25b20a420259a32963415bae6553e0b519519a6632f6740e57a6ab9543338c38d5ab2156f365f84ae8dd548a7003a89475fe720e3a529647d9b9677f63d6c912b9c0e7cb31508c4902af15824ef906f045ef56226b8de3a0aaed651d80341195dd82af1bbab47b8235cbf45969c637d9cb3d677ce5640398c2e6c555ddc37c2519d37325b7471ac9ea1ce7bb4f44a08c29a9fd57b48b9e99b737a2f1b918ca1e7fc5440446ba7ad69f5aac41bf22961242424249277e6792dae6893f7791e7f9ee7a190d4e402515d018659c3cbead100c49325e756b7a1c905a20ac3fc314557835febd4efadd0c52f04ccfa6a8aa1c339a7f8d984640c5d3ff01e10ab823696ead76287a57750247765a5870023ef1b0093ef55c23755d046529d241c55efe2cb005d67f896188a3fc8f528e4990315ad90bf01784848bcb26f043134d8b35ff35e187e1b8c37c9f2dbb9038371eb71c297234823e18b197e1d01578db96976fb6b827718c4da2db4ccdb5d6fff7920f8811ff881dfb7f776c5edbaf7da585a892bf14964edec63c5208aab95b8c44a5c893788a1189ae0c4f33caf82a128d65a21fdeaac226d56cde1c018d2ae9e8713698f9eb5ec03e7d7bc9f8dc7ec8171674c8138673458892b11058d438566f4ea7a29430665a08029c30b199451f61dae31b53cadcdb4429b2f18c753f834674de3e2d8b91e7f7e21f97945b07ad63004c1e9bd59a9c330a977c8fb98702cd50e95d61686496152984446a0cedf2319f4e65cfa8a5a41eb53739b1eba3d4fdca1bd0e7187dd29848b042f35c650cd6b06a398a6f534b2c83033b6be401ad1987a418d393f54f12ae322a38c30621033cf04328f0503fab9f1d945070e3926f7f6f424836794d20ac36233467ecf399b25c5c8ef3977ce5d01d16a2af2bdde39d362e47be7a5aec120d6498a372818b7ae949177a5571704cb4001538930cf3535831cc65851066e9f0335b61095015754d9e2090e55aeb8822be7d4919637a8a001145344210316e0b8ad54fe54b3378f03b2bac2eaabf314ab43727ec582ac7a73d732724ed17966379673aa95909090a4e0f8ae325b9b514461a6f65d527b9bd5be0b8bb64ddd9cf15dba699b512ea8da3b7c68628922a42859e105d741d4be4b69da8e505046171ec030b146066fe0faaea5ae3510d3c66e3431c68a0f3090e209aeefcad2b5aee2d4c5f5d4b5be4b8aae896d6c6d5eb9a2a646b537336d9b597ad6676abf55656b138895f181b052fbacaa699b5373c69f42aa4cd3660216bb25a28401d3450b70ed346d47438c49f3060c5ef0459a3670fd43edb774d356012d2c285366091e6e2802d76f4175ad7db0853828ada5bdd15ab2a4a87d56145b9b4d5666a56d33a967fc661d51fbac345d13a9d2d43e6bd7b5a652fbaca969435285861a24a145145cc4c0f594da47507c81822d6a306306543081eb1e6a9fa59b361b31463829d3458b32669ef6f6da676d6175e9daa24953b5b71cb5bf429ab65dc1106340d15d99a2056170fd5552d79a87da5f294d9b9017496b5cc0c31450f880ebaf96bad6526a7fc5346d2b4cb1c4132b766e54c500d75f65e9dacaa96bab2e6d6be1fa2b2c5664a4f6a6a3f657bbaeed4eb931c409be48e2055dc6c0f557555deb1dea05c630c344d20d7a18020aaecf4aea5aeb50fb2c25326a9f3545949ab6deeda676bbda17a1885396f606ab7d9169da768c145b683153c61b64c8c07547a97dd169da8e8048e3b485872f6b6e9002d7179fbad6508e94a092a50836c23c9172025ce750fb6254d744325d5b4d5b47458948e196b0cbd3de7c6a3f84eada6e3f4c132e4d5b3f3185588064a4f6d653fbe0ae6b555d4beadaf6c3295df36a3331813a2610aaf6bf2f4dd7aaf6c6535aa184540c90f8a10b25707d30a96b8d43ed834ad3b62d2841171318f1c40c1528b87e52fb20d3b41d1501444e09242b3e744101ae0f66e95a27d5eeb0f63fa969eba4a4a90f4ad794bea5bded4cdb91095ab00514515c7162290caeff65e95adf50fb9fd3b4ed185ebc6022f7e508354c80eb7f4f5d6b1b6affd34ddb91135ea8218334383031e505b86e27b5ff45f53f325dc3a99a36a6a2fa90bea7bdb5aa8c0c952f298822a64c0ed79d939a9ab60fdc6045182dbc48aa1203d75d43ed7b545d6b16434175a9cd524c5d9b6ada5eb8a2c50654aa9081c6165c7f5675ad69a87d2f49e987daf7a6742da7da986992a9fdf9346dec3491a6edfbe2082a3378410ab61881eb26b53f95a66d45c515663ca15303440ed79f4b5d9b4cd3b66218e14414279400a3050a70fd99a56bbca6f6a753d7bac64ff8899ada6f349d66d67e4f4d7e6781eada469191eab799aebd6a0cd832566abf971a4af394eeaa1a112295d7062e80e20d2cc6606a7206aecf505de31b48edba46d5e734bca56d22ae9beb1203b6b6da2d5795794ad76e6a9f95f88dda600d679c41e50924c69881ebcbd0355673d434c60c338408e38b932dd806b57734201d4183252e55b2e0968c6dfc5198361c66d860268c1359949a70ed466d31ca58010aba68d2430cb6701b55046a08f1044d1562a6aec0d17e18cb19c50fe79831cbdca20517a123732a752d09063af5fb0e59dbc6efb006fa746974a993479d930b1280deebc8c732338e4e585263d9358c653f8d7306a3e791a9de77ba3656ef3b64de6140de370535489d60ccd4a04e227582f182893a8f4c58fdf875c4b389c138ee308e3a8cec65645defbe1a8cece16abb49c4280e31f21823eb04a309a6aa875497832316eb18a2b53bca8fe90dd11ba2e7da20c14c56ba564e66e22c23ebcacd6e079e27085d3653aae8621e567336cf364cdf520a544666b2e5625919e7d7a9ceef6462a5f1565c8cfc7ddff77d53e5e834826cf0d72ff00ef53b6a65c55b43491b0120a7c33579e4ed30deb820e6a549428a291c37592387a79b9172133a2da2706404c1050d43dab022096774a3011a64e06670bd61c318b8ed21e58eb79f4d7954879cc931e15a3762ad612c4537a8e8462ed2ac34965eeb897186e689748547c3cb091c345a8437db3de77ce3c6f3e62c99bf40cca409dadc0611e73ae768bd5c552e5f452f209fbdad727ef3974e0dbc06d7ba386db5149366980dd27fd1e96587f473e8e46283f46fa8a81ba5c82245f76bced166f3b2032175a35e45ad972f77f8ac0e10f6b6fadec716115f2b8ac5e622c572731c3abbd8597fa4538c88b3b1491271379f51d376f3e63538d76d10712fd67bf52262992d6a55d78c9a33293a757306456715eba3dfa2391b8edb0d12922f9a34e25a2d23eda249226e46a353cce6a8ecd3c5da6654af8e562d7e95c3caafca3795792afb540eaaaca3b250650f2a0fa96cab0c80ca01a8cccccccccccccccccccccc2c446566666666666666666666666666666666222a3333333333333333333333333333333333333333cfc033301366c2466cc423e05bd1998b9cffbdddce97ed8dc8f9b4bd11d9ce37b2b7daf948f63644c8f928ec2dc8f929ec0dc8f92aecedc7f92dec8d76be0c7bf3b13710f636743e2bedadc7de3e389f99f6c6e37cceb2b7d9f9ecb437d9f9fcb4370fce67ddde3a389fa1f626743e47ed6dc7f92cb5370ec8333d9fa9f6f6f3b96a6f3ace39ceefa4bd059d81f6163bbf99f686e3fcceb2b71fd8f9fdb4379ff35bb7b79e33cf79676f537bcb39e39cdf545db5b71ba4bd25ed4d696faef3e7d264da1b6b6fabb378fe7cda5b78fed4ed0d3c7f676f6ffc151f87ffc3a7fc19ff079f08bff207c03781cf00fe04f81ae0bbc00f019f9bf0f9099fa5f0b90a9faff0590b9fb9f0390a3e7be173157c1ec3e7327c0683cf63f0190d3eb7c1ef26fc7ec26f29fcaec2ef2bfcd6c26f2efc8e82df5ef85d05bfc7f0bb0cbfc1e0f718fc4683df6df06713fe7cc29f52f8b30a7f5ee14f2dfcc9859999a1a0b9b0f257f9bc4398726dcdfd0d0021142957aaee6ec94f1e940d55b7ec1d4ed254aa4ef3694245bda07879f344e95357475d0fea0ed5b5d50d405d2696895d629bb669b7ec9655629558122c0956cb6ad937ea66592c8b6593d824168945628fd823d68835628bd822f689ba579669999688256287d82156881562adac950d628358201688adb255766997f687fd617d581f96ca52d9294b44dd1eb687e5617958292b6595566977d81d5687d561a36c9485b2503687cd6171d833ea3ed9279bb4497bc3deb036ac0deb649d6c6e735bc3d6b0342c134d7691768ff66867d81996c932d98b7b2bfa42f13dce76f93af16de2cbe5ebf465e2bbc4b7e9bbe5abc4f71ad82226c1f72e6c116bf966f962f926f145e27bc4d7886f256c154a55c4a936df17093835e6fd7557efb8803e75def8c458ae14a7804ccbd6c593051ec9022b881dfebcea71d16a30056379e4fda4e7793934b1961865df398a468c9f1e39bf1b5abba3e562bda4504861da80b23049e19062255e0aa2ac0351d76354e738e8ce613f393ee0e27298b2a0c02d05c25e77b9c8d832699dc59272b1a4a4a4725c2c17f9009694144f8f8bf56a310005299e1e17ebd56abd7a6893ce59cfeddce5bd872e6ebf178ba5e332dab98b873625c939588a2d8415429d675a6bba68af589256ebd5025ddeeb7525adbf74de7a934a788c76ced3ba8bf2fca35fed970b257005fb95e46351146696f13026a179ee7a015c2c149220915a3db7fd8a2589b5eb4a587735a9e47557f851af86e157a2ebac2b719dd5c3fa8b347a3d245f779d490fcb751e92c9cb45c6bc1d1d0a94c29ceda8aa9092949658284839853d4ae984e2788393d331a09fd50151f1311a7e751875dd87b6de436dce435fbd522286e157a4118e51ce45311459ab2f11bf62914cc6875f31b9b92886224f2886e21c00129d501c6f70725c8879802b0f995bb138bd237c73136bf2e68675f39b1ddae4fda33b0f6f8e43c77fdff755c54c10bf7325e2776e2ebe4925e17548a3f1e1e2705eb12437a3982489d737503a23483809870f8ca767ab1829fc0f65f1d098d773b3b32ff00664855f5dcc191f86e14d184e1dd62e6dccb977f0d3c9b5cb5bc1605ca493bcebd0c5f5387ea492f0636824e2d0a6243707e956a09eb01dfa6226841fbf84f59c7fb42b984363bd1b69acc9c54da69188a47da125c9e93ce7fd8a99307e7525e357463a1f0f924a702e924639c7192f529c87543c8baec4875f223e5c9d890eb933e62d599d4532c98979b3e28c34e691b9d5c3505cb15aae97cdce91d7af13cc834c858021656519439af82310bc481ad91c341a1f863f0243da8a68dac2af4826390f2f924c9a94e43c64121e04190a26d2833028184325c1114106c236912c0048ee9769c339110a14282449684b3425281f2818140f540f940ed40e14f81f7a73185ddd878aefa1adf350d677e8eb3ad485832e8ea6b4441393442428249c9bcdb119c00e9d806487e671682eb73af89cf89b873f61712119eb1cf0e195800f5707dfa4929b9b05a34c9d5542b84827d5694278f04ac283a451d377a3915402ee2b49ee7557ebacd5c5f0e0bd50dc5155212521f1449ea3d9afdd172a505c96b83cb13c96472d30c56297efa528459d17a5e85a295e869fa7c0ba117619ada5c34159ffa13ccfa1b0f7509fbf765ae35db1ced9494107b54b612783f8e4243a7dd395028f0aacebbca573263d3be938e70e4d3267f33daf35c6950ecba300db7448231619556984a04a1c4718ec97c96834a2174017c283e43fa2696b1249174e585c2e073beb399ff33c2475def49149723e9f64da763e63bd22597f5d09ebaf8b3c3b748718b9c9da7665e85a4f9652e7933a7526112bcb38eb9405f6d69fbfc0da42b04dea7c39a70c3b34cf508cacf3bce73b0f6349747ec2e27448a326253ed7d1218d74eef37dc592bc48a3269154c273d78d6024eb5b8d7c481e91ba96b476ae7326de75ce4332d921c99847e2b4be3896c7487396a4b4c494c56971235d9cec5b759ca3b0714ed0fcd6715e42f22fc980786975a7abeba0ace7a03e3a8fe5fc87eefc74712d24737eee788949a226695cc468f39bb38618b5ac0db6b6310ae652274371d4098c7bbd85c49564f5d697b0ee2299b8ce7a8b64d2a4c47516195b268b1327b9af243f37d2ac559f006c63916c65b5850b2657d9a11d9aa3f8d778b33b5a2b14613f642eb7bacf73acf71cb62a47b6021e4617079bdc6a892e72b5f22177ce56504a583d248b3cc2f1d01d2ac39ccdebd01ba8a5260f70056973acdefc142394ae752b0992695b7d1e85696bfdf57919a6ede673aa5c2a24d3b6b828a929f284c531d39cb1d3645d9d0c55272f2541c24b60e7e866cf99e3334ac7049a4113c78c4dd85c9d0e2a3e075d3d88f61c88f21c87ebb1d76134e6fddc5c075ddc9c73ce9e73ced9fae2a678d697ac5667adc8d832615d9cde9c17a737276c257a2b5204714e8fc79c738e3e2bb1c5dad1f9961bc56addfb07fac0c85c4e7ccf73abf3bcc52e1fbab8168b05b6c4f0463d4a56463ca4471ee19a928cdfa1314f67f51c1af370686c24733956cb9be2fc8ae59a36f33714697a73c28ebe760dd1e2cf8a1124d31604e3a41c2fc7d84b58f99c97321c275a5d0e0a7b50eb31ea3a0eaaf31c8af391f2fc86ee7c5f202e882e0e882e2e461787832e2e872eae059b36cffb098bfb4822266934d8b4c5f63d87dde74b7ede4332e9f9cf7d48264d4a7afef373263e8791b1fde2605fdc0fcceb57929bb3ede7fbd2f5438ad06c839164f5be5c6392c7ac464030239fa7edf503ebf159bd10eb9fb0389f2fb949434706d7f3efa00bb17ed3098bbb2173b9d661cfb9fe039219f9bb4dacc9243e64aceff323dcd690547293868e0b5c0f09bbcf95c0ee037b934a7eee731fd2c8f59fa6fe0f8d81fff9110e46632079f0f5235c0b3422029aeabd05a3b6f5e80a50c599ea799e93156a54d7153ad472d3542f045767c599ea1da86ba3cf6157e2731869d404fe451ab1ee739054d2f31fd268f59e1be9a61ee0fadd4599ac0e7b8b326952b222637dd85b879d098b8c35193361f59f2f69c1fef3d60f751d465bf7a1acf7d0d56faef3fabe92d0c5c1e8e27ce8e27ae8e278e8e276e8e2744e585c0e99cb8dcfd93ce73aebb99be75ecfb570402df390bcbc9bad72ad8c308d87b5cc03bf8c3d475fdb88a9ae1d6b018f96b483dbfafc74b5c1cfa982e5f754596f790cae2af8afc9dac49d8107c54f4a054170764f1b2c7cef892ecea34eaf117caaf7447a4eac2cc6c5f14b6f077a51730646795373068a3151f4aabae655f09e9a3415fc97e5ebd2369ea82fd7b5fd5284990a3a4da960fd962ac85439f08b113dd4f2db52c1b18aa1e73975ad247aea1ae84d795dbab65a90a0969e1415d4523d24223e782fca8baae019bcac8cd1235f0041a29681c73282074197d34acbd7e65fac4c55d6490017c7ade99aa18b258a63462446886ad75c2b846795b0ba718561ebab70b55ab1560f59ad7d9120922d1b6a64f317357a7d9c336f8b18b7652eefb125fd8a2de18f1f492636e72fce135b240c5e65915862e2bd2a8ad032ef22b938af67de270c46242df31e92465ae6ddb551a013addd518a4ed5fb7ec54f0c4551141f521716e7476c15cd1b5b405df3def2c4f00bc390a8651ead651e0b6446efa01623ebe5ee2a0e154566fec48f3fb26c8169b84228cbb9788f2c61f0aacec5b774a88cde8951e7e52b093aa4ac651ebf8e6081e1a0468cc381e34c595868e188966519c52c2df32e922253cb3ca81187c742d7700ebb37840a2de8b8f77be72cec346d3ff7fe7abd6cde359e9d7b97795ecf752e529d1d980e2d5f4551ece9b9ce5b3a222dc7aa23529dfb5017b6a787941dd121df328f2784c1ab3bdf9701461eead51d1a2b61357eb524c77fbeaf2541a7240a3f34853903a2464027328addc89cb18a18758e73ef27634b66ecf38bd341c696f47ffe4332017a7f71254d249f6382b1dc9d0a5dcbb9f7fd724a30ea9038bf79ceb4e1b8e7b54c0c6f648ee39c79bfa125432957b5dc5d0e1a130fbb8784840ba231914c82e33f7f8d003edcf1f5bbb625b04820201aa32b1a835745728590242bebca781cf48712cd9977189d6288689ee7451159473b9de305165fae2cd59fba5fae388109a34b05aa0be64cd4746aa4ba271ce15a3bead25e6b4bf4de6a5d248d62dedfba9178d74f581ccc689c33f022f923dc697306fe08e7faea272c4e248d5c6439debca47db8c5b90ec6bc279933d0235f386171484823237306fe0877d68f7022195322be75916ce20096d7bdb748a430f691b10688675dc9ea36ff6e431a357da412f12cd2887162b9ba242f32f69d71b125acbffe229bbeb3c826efde2b4948c692848f2d693d7cf8d619375f47bcd65bde6c815f9d1947f09f4cad2f0e8c792d9249ebafd65f3667f23a8b8cf517c7fae240af2a859681b7a12acc19087a2dca2f19a218b7c692e456178f53b9ba7ef3de57925caef5d773acdb9cc6bcdffc08e7a2ae2b69b96e48231b929de60c3ceb462ff2a9822d166d51a69877d78f704631135a675d49ebac7b6791464d1ea9847517a9c4487306de6849863903196787bcaf4891dce9c4cdd2a1d5c4b85b8c375254fe8d145d9ba154cbd80cab8949a2a91d1b61d6f9f9aefc506ada18c7642a87534f930c0e696a931ceecab02adcdd48b55e789f7b88b194cd0a8e539fd8da26e717a3ebaf8717639345c6e6ce1948b23ec9147e845bcaa251b1bdcd8f7052b1fdbe451a352da9a4751b923667df8dbe16bb8e24918d50c67187f82f8cc07504ae383bc417ff798e2d69dd751729921b5bc27aeb2d72a73867bcff56dcd5d2e66c1f4e757f547c4a8c934214b99d7a7accccdec724922ba65700156a9f99058aa465b36db044791f980f5c4168038524145198b3598a3656b0b7a28d528e33fecd5d617dd418eb4ed75cbdb375472c816a4fb2c568cdd9b37b76cf9e7376cf39bbe79c5d84172e08e5fb8e9ef4d0021a8821e3460ddec065a96092b0a27efb254a10eb7d6152536175bda8a1c61883d6c79f97fa9d757585efb3ecaffbebfe7825e28c3f30fa7d49ab1f91bad7056049ef93a2b57b73b558bddb246c5d89937728043faf77fbb532cf9beb7537f76eeff6ba5aac559ad6f24c3581e5286b9b875b801a4b75bf1ce174455d2f6a64a9385b2406b1de6280d539ff312155bf7f718252033f46b0d260a5c102c3da892b561a35c6728795060b0d1618161a2c34586186cc6055b1aa5e640ce130729796d1efad11d63510bee3144b05633952edbae6cb85d614546b2a0c7daefd2a01569b1ca976086ac890db6ea4bd30413edf0a02c407101f3e5a42bac170c8105b15f81d27a20901e223884cf6e387101aedc70f221a8d8846fb5621407cf800e2c34710203421441d0ca909f1139daad3fb7e1079b4fff066551e8334900644880f5008e80304c9ad39d450b54e140211ce0f22efa9e94f9696cdcfaa784c9955cdd4f058e2c1c4230b8f2d3cbab40d47c723b7abf33c92603a18165ddb28aa2c2b174b28886ada66553fbb2037d244f740cfa33c906655446fa21b6990e80b2ab5b3b9bbe3bb3bde548a9aa1537407523524129923a1904ae414d24a0ea41cb920354155416982a87e624644a052744a884948c703c4c78708f9517b9db0ba62ec93295c31f6bcdca91c533a87951c4c39967258e9d2a565e44c071414141444a51647846441052b469f20aa69635c909a6eda5b1e480b4a1354d5b29943298712101f3e80f8f0f1ad435ac88ffe21e4c78f1a2984d2dd143dc33b5b10220f5efe7cae3374d7321698d1e62d0e79a70d9da266e8192a25b4fbd10111e11bacdb0530ddcf6ef504f4c0587700a56b3f94a67460a56b3f3a60eae0880eb6742de6913c927840e191e3813453338bb1316e2d8582a85a80414868b654301b8c25959a51d8d39cc93ef81a37d3a960bc5d7c29b49322722389fc0847840ca5c4706ab58292a4348524c356ad8456af2342423b52886ada7e70bb692372166d672d55ee224e21452b546ada848cc21b194611a1acf4c2c2497346022a1544d5a0f7b36b10ec2e2d7629e9ca70c16a9e825e0d8ce709e9ba86a3f25b2bd73856b95c66e8149562beb171cd284622bf5d0cd2cb45fb01bed5143c91a0a0a6fd07fd41d3321fe40f15f9b36bd9ee75e4074dcb26e8791e48feec7ea8847656c6b18295078f7b49b575e38aad5144bcbd1cebb415216f3838f4b3e9e9f775e4cb7871da42f8eda55863b18740a9999ecded998edf481d393ab136c6a3ba415441542e187dba692755229427e926088b2341513741503b347ff34a12f483e6876af67dfd98c0381ea4399b3d46982e27889083b414e279b67b745f4786dc4833d5964e6b4e719d5595b32adbf775a476230d83ea5a493b687bc9020c0aa6fb32d2de4cf386f4d684bc2f6e2dc8fbaead01793f8c32d23f678c6510d5e78511c53f648c259d9d4a4d1b91bf5eceaa88903f668c7d21f7e84f9aaec560672a50cb763f54414e36af5a52292042401e20e7791d1902e4202d6d077223cd82b960af2340880e1201e9f63c7285fe8fb770e0a0fdb8aad4b46cf2c80505bd8ef8a0812048eb6f8aa102aaae181428d52075c55041437ded70b1543096ab911c5f4a88fc461add4ee4ad1b5d2dcdd98d32132fe1d8c5b1294550574a3b34bf382234e4328e545d3b9a55cdb09845cda0663a21344254b1ef4b68e7d168f7281108fe007dfcf8f103fcf1c307e8c160e497423f7cb4e8f23ccffbe1c33be87944e479e468240bde3d1f1e07ae99c3d82f7f401cb9ae95b3aa9d96fdec7ed080a9f33f54493894a62df73989890206751ec7120e2b6dcbdd208931c1933a8fe388b6794a3f69bab662a2e852e77faa40af1b8a7e6246d5b5924ab590139020a2a01f411d1424e4dad7111f37d2ad8477d0032907bca4dae40ade949a33da83a868b403a19d88f61f4d7b29b4ab1e8dd20ec382051d0c4cd77c7c1e0625d27c74d31f3fde64ac0663498576620ea347613a1c2f46a369ba3663347284ae342a45cda8a93c5524d23c9944429927a7b4cd668a9e81aaf3749e06ceaaba56fe64e181d4351eb9ae6d549da55029b4ab3f5966ba6923f2f90a04ab404040403f422e171132886ada2652d5b65c2e10e7e7ad97ebe56a4af47ed1fe83964424e0a82049a5cc8cfd138cdc94e8fb3ae2d16ea48980d0845c177a1df1f15677777bdded75d30ed292054fe84502571ac5c9e124e140d9e1c231771889fc763e95fae01f7c3f7809ab384c733647212aa1aab1694d13aaea2049a84a6827b41342234425a4a603242134426984a884d4748024b4a352423b20f7416db7791db109f90d902142765ce3d4b4d1a939eea68deee66c7ec7b52f1f3eee8569f049ddb4a6d15d55d77eb47ed0ad548a884a11d1add4cc1445d335a2cf532aa21f949ea19194a2a1a2522618cb202a4fc8735e477c902c784915c8756c1407a965f3358a3384e224b52cc78504a123103aaa69d97cc108c423b4dba1f99c3adff271bd5efeec586146d96b0457e5c1e34c18356d3125447efb8d348a2db9bdc88b904c62497e7e6ebf7d7144c8308a4afd64298560ba25440ed309ed747c7c533a95844addac31f6cb9f5d10d5cd5b39200ba7ceb7565c8ca5d0aeced2b46c5e6807529c8f542acb4f96ae9533aa9f2d33aaaef1989aa5e91a8f5dcbe6accaa3b3aa96cd075175d1ed45eee3f914217f76d3b3f9ffb3c3f9f47e662d996b9cf22a0bcc585229a1dd9c511cf5478cb1a43d5efef0a05366cc7c304ee56cdb7ede6ab1aba9901442ba964da1a724d40c98f1f57d51a92667555e8c424ed356e4f3424fd376fb1c77da603a211dcea954d78ad0ede1628119c38c6411cab81b15722222f454e761ba9dbf1c77889038e44b2a95634a1055d72698b10ca20aa26ad9f48a18cb202aa90ea20a4a1354d535a4ae758ef91c493994bae6e3f339a674edc79295ae1dd1b51f59ba46fb7c8e2d39ba742dd6244543a96894eee854cbe67d507a869a89b531f6b99642bb924aed6a8f9742bbcac1cb9f5d1a1e247cb5492a25659c55cdd4943b6ae748aaf3658fdb9b481055cf5e47fa83d39036fd6d27ea031c2b1cbfc5023372abc7900fd738d53590c87f7e0ed34d1b115268d7b3f91356b81b49a55230f2f78397333aa2b143f344e8583567f32d9b1da410edc003d9ec3c3ee83104c2e785b399835db15aae970d90cd48b543f351435f29edcdfb3c7ba9f3fc0402c940f5eb21fa02f7a0a5f8012d471ef4056f464b5146cb39e5012d777675be035ae224d579215aee50d5f91db4a42fa8f31cd0725291b4cc31a5ce535a9e96a30e5ad233753e070da2e59c02a2e59c8a09d117bcfa334ed579d8cfaecefb0451d5f91e5ae658aaf33c42bb524837a97266552f78237dc1aba5d0aecedfc07475de8652a93aa3ca90aa14a7544e2a43a62eb3b7383ded4835528d69d4d4791ca6ae6d699b8fd3a8a66bfb458a9912a89623d558a554a76e871bd41267a94e251c6a8973449d3848751efcbcd5521453d7cab00ca7aad26a4ad7ba8bab962ba5d511752ad539a4ab35fbc046b8ff3ed2f33c0ffc1edef3a6c80d962cb8faf354108b801dd97bdefccacfb6fab7a2bcbb2bec7e5f8b8c18729e6b7a31e456c80d2017432e865c8d2177c46e08445f28f3484f041346212debf78be67d2001c61e32d9077e308c3b7e30f4804271eeece75a2823e2f7300a0a46b1ee971d9ebcbee8a0c68534b2ea7ed1218dd798b155f78b0e62408d3775bfe820e5bac138d6fda20394ee8b0e4b3760184c1479e77c9dff81adc4cf9b9f3b7bcee6dd1f46bec77377ea30f2dc9de0275a91b5e83155aaa95ded5410a20b52183120837406d7ed44ed375294daef5cd758154a6f549fa5a60d06e32efc548bfa81895c0cc41491d44d2451fb4ca66b215f490a2ab4d0546d6a5f0623ce752dcc40953560a831220d2745e09a4bed33d31bb54524d3d6ba39e39ef5862d4b9801050e51a4c0b5d3932c5ab50f9b36d10a9635a8d8c0082cb2a001d74cd4fef843edefe4d0543daf8beaada07a5090a81e16d5838246053ae2c9ea6e91aeac87af232cd8971c9cd4d5eae0ebc8aa858508cc4760376e8c256cbd90210523a370384115ffae9514e85df3c8d26316f989540dc37baf23e191c0d6b5ee8911f5bbd7351e3a358c654779322424241a7448549cb69e9a92411552e75924c158c2ce345335d24dd592c148248e1c864d9aed2193bcd4791e1186c3143b5d7c496222476a8e393c51c8e01c16dce0a4cee39c618313170d8ec14c7c832ac408d18066c97ca9413726278548edd38410e5aca8fd108c0851fb227c714255fb05e8daeb48b3d070cdc68baaf3af8f6a8d11b23557d4fe4e1fc6431552fbaffb054905b5aff8d2444a0d40135518cc4cd2527319bb7db6d8eaf36514a3ce7bad3437b802a8f6590de6724dec7db9c1933ac33041edd79106776f4ce9a0f6c1118ad4b7516ac0d479ef4b434d11240cb6b279e2c4081b77600d429d5f1ba4016930eeb081096adfebdaad366cec6163849131baa6b8a4985e5b8c3a75bdb8c1840b8931a8ae1737beb86030e2a8ebc58d2fdc684307a52f51a86e30c2761871ea7a29438c2bcaa87a9d6074d5f062c1d8da810d3380685199c1250b33a2786919c1ba5ecc10838bb2dba95edd2f517e606a234ddd2f4730b501c572aa1c8bcd5284c988785c1b53d1d616ea92accddbd6cd058d20f9b2a58269194391a1ae652c8135d5a3a17adf50376dabdd6aa723210552501963dfb7aec8f5da33d33329a826cb302a36bf54d3167ad919bf8aaa31951f96c1557552a89b5688abd56e8586cf5aeada116d632cab345553402b2a17aefc6ab7dabd56bbcaf7661f81244b922d287049a109159c68a16b257791a16b259fe159a97cf6ba087395cf65484548c5defa7c11b85c32ba338ba65cddaac94159a2a9966c65f5b4d285ba302969da16a714268549a153175f1588b4bae849e93ca6d163f2983c262f8bf7e4419db1b79b32c65892a7caad8b251199a94228dae4d3b4c1c6c3a8ead3b42d4e37463d85ba39634fca8971676ca275484835e67dab4761402d83dd6ed08cb1ef784cd6832684568b1185c04d9663a8ab3c594e386ed0da9dafe21327ea245bcb2fe8215fb04ca9d0352663e210236d67fd6edab63136e1275d702521c8be8bdaab45115a5d0bb4acbfb16581ccd2116d632f4acd0698dab41db32183febc49eb72cfc4c6de525b895a8650bbb70db0a4adc500d4eee3eced8511b86e188ae29ccd27de1d18d2d892302437b60414e791d7a297d672bf75c33a636c21f3ad1bee51b7a4adae1cb7c912a8ee4518181db3c0b0c0fc5b8247ae475cc14caac08b1b39279d93d4ee7a2ca7711ef9562ca79103a4f1a8544b166b83550a15a2110004002020007315003030140c874322e180304b0351af0f14800d7fa254805a1408c33086610a21448821000000000200000333b30d08953f7ea888d757a2ed439313be9dcbd7ee56d8aac8deb5920eded788402d768bece5fa5a913d73378ae49f97da4dd4ebfcdf446f9f1b4362b802a01189a529b247bd6e0df71cf053a136f7f7d607d0b58629c013088029695dd9950c9931c8464a8104d940369dcf145503d93c11110606598c0389db88fc48f196c47d90757a4c66e2f41cc22980df1dfaccac1811e1c56e5c619c7d2da8e15fe834ebdf43f1da032fd2f8348a50599622c0ebf493349ee2e6fdab445a730b073fbe3807efe9db6a4d1fc64273bc9ee698a0df6236c53c43f0a0852d9b003eb433f46ab9b5515fdd29212ff02af0dc03234f86e080f597f21c6f9b6023f1c48758ebd6205ff22169f9be15cbb62e503c68817f7edcf1a978f8a967dbadded0914e342822cd3823b57e6cd51c57ff607cdbf4f7017c7549921833238af4aec4f4e594048fb8ca7f25d1c346d01173551c35cf671e500434634f7811eb6e1a1223b1df8bb5763414055528908529f7cf52cb1d8bd04491cb286986a89e2177c2f7a8a8106f71043fecb7acc161ae725695a59e05de351b4eac7e1207ad3dd0b52e7c58d0c237d69a0dd7c83064520b5d80b9ba6a69a67390a6d1d52f30b605ca3e7acc54a6cdad5eb52bc9330b535b96be140238b9fa2db31928173ef327b23780b56513d9090ec450afee3716034c6ab49ebc7b480844000cf653de6469009b9f02e98d39482dc543a9bb2b35514015f9d9c76eb7d3f2a7a4edd1fe5745fcf2bd551fb254f716cc07b01483cb5e4f4f4669b2fcf18454e40eae212456df5d0d9d4777a30a1dcabbb9a16e0908614f059657c7caa0a0bcfcb6bc73a8823cc165cbfc3eef7e57e66ed1b90b940411ab3abc59b5701156edcbe699ebe1b13f9f912846086abd75355ef657ddbb2eb5e4244949b326ee08ad1c3275fc9f2f4d2c12f4ffd4d28f8d61d9bf56f9167aa82b46e90e8f93e2693cf15d067e350cc327a5c70ed8ba8dab827b628797adfff2d6c8c0b8be1772ac0e6949c4b9ffa5b5a1baa5e344abf0655b4ee7b4df3b4f5b9ac532889875cf08501f62bc57c87e1281a00fc053a5b07074fa117b1e8e9c30d2c9899342444aa49e6e7c426c7f0e647fd5f375dc69afc533be67871d340ce471d10d9ece52ee0f11925bdba9f007fe32410bb564b6dcd0ac1056e6b31a210fc11b19f4f249f88d214f0358f7c2dae60d34327c0d7522e9eda51e13692ca89c4d147fc312b19dc4ee5d7b9898f6d812f75e1e9b11ae87953473b0d6f90ed55a34806b60040ff0f102df480fc3d8b021157bba427492896118e38ae92c4cda8873ee660fd76f8ea15a9fdd64e44791e343d7973cd42fa5bb0af6706606abee62c7a6e71fdc861c90dcb626060c991d817995c120f4b699f1774aa953429822e70368618c4b99ac7a721535070a1cba7825b2b75a64e823d2c2fc193177cd05a3991b60ed63ee7101804f083062d39d44d8bd9bdb888dbf296694d6ec6440a7f6e0747228ca808226bc01540f036e7741db754d2c7b9b41b96a14a3a928696448029b79635398c0364ec11c8c7118bd0b4c4c44136d09e31393c79e3984e3a133235cbc72c05ac14830718d3061d61421eb5fffe4193e19605d84e9b3ec6226aa6b069bc4e2722c07500dccd61028191002877efdff3e2d27735b2114ff3d77eceab530f88371729b494301ffb019b6d3bd9062506a75d1d3fd01b61d0416692eae70cd2c97e473eee5a02e08a297e3f08dfd82f178e1b4bb56e31e30cf94ed0ffd02624bafccb68f87f936960cea41f75bcafdb5310a65f894bc8c2a6f927b4728ee2c2178f2ff1dcbc00ca80a97f95ce06fc09f87821a51ac72f2bc51b5faef0a51876b680b54028e29258d736f3f045f3097ed932ca22f70a6e04c4a0086e0e6f2dc835704cf4a9585987cbf8a0d285a082f0dc80dc3c051b28a10d0e8b9e1315e89abc23235506cfa2b971e2c40c354eb1ccc683e04743742d3cf97501b1193e8eacccee82666a2834faa8d8551dc1d2eb8ed346d9869644a6f1cfd6d26ccb312ed3547bf62ca0b900cb9730c283d3effee11191d10750d7f0aa540cb94146e002bbcf6568d8396f55c9abdeb240872cba2ed9ad08e0c4be1186d44e1f282edbebbc13d05eb9d078ac2bd5b271bf1bf59e0dd2307b4e70266588069170baaf46b910482845470970fece65cf693cc5662bc44fb6900cea705d29d5d27b0e2cbf2626704c68efebe33f59df262d22758de4b768e8409cddc13c735fab9f6f64f1c1881190a416a2ce5eefaa9d268b10e8df51b9e60443480a0d98b1beaf6c7117f31019e5e20b95279d088740e681a6f2c7fa4b906bacdc8e3227a73fe940f4e5398c8db9c1a3f71ec0e386e57f40f1146490a7cb15f5e0ad561102da4c1c5712859cc96cf5db6b74652299dfa73a17830471d724a444288949c8f52c24d954fbb7be3fb79f270ee2aee4fcca87acb7ce34227e347fd119720f8855e96ad9dde969478f02c5bf198872573bb5043efeded993164b616f05ba9d862f733b605934e0b091dd7a5efc023bd8b99da0b343543dc6a74142c7089754835e30512823ada57e28d03be7885530515848f0bfed639bb8a68dd8c42c2760fccf5983f26b1f4d927d328056f31c222408d2bfcc85f72ba289963a1f3a10309921b8482c58eef4a3e538faf6a7ab0f2caeeb2be938e8da1498f709c5e070ba1557720654f5dd3f210c8a70e0b8de8d9e488f4e9b6521a011f81c675a80a86a439ff2623e2d0c62809557e0190d225cce8b50008d5f4ca1b02de80df17ff08c21144c04062377d4e0dd13336579df8215ddc49a1b61b7a97e9643182961506592e2f3254a70f3b03c7b54f92ded0f0af5f4583efe90f7ccfadf4076db20e14d4ef94f9c8f135ba1eb06f883dd1055d43eb24a999568ace5aa184dcb89428247014026868b52e63a229237dd708c68f38024358f988c8109eea3cd8bb0aee257691c80db419a573a1c45453c8f05c9015ce41d04fce60e652393d4b23d596269989a6d4325b1574ce2342dc5359fd4e1d8e1a595b33042f2aa4cbe944488e4bbb0fcf7a03cfaa20806850b4e8b268c210ecb8bcf8c0fa8f22b82a83bc90c226a3e16833f41be0cced3adc9859ab2b10800c3f90f4dabd546c72beee5ab1a8e0160f616dd74b026176f0ffa3b0c2c82e3cf0b8ee664b098a72ada5b4c7be3041d09a9e66b4452de34b8071338608d5bc4201d0f8e4e5745dcaf0b4c1e9b7ec05877fff0bf258b86d5f2cc21ecb9c0bdbe12d1aa250f1ca985c1d90aa88e0e68271c18299468406584d067583c65f8a5480aeb7086fdb4eb9490b834f97d18238380c6523b3c464d900c19352dd34d8119f6c0d251c4a9e66d9951bf9f73dbe1e383b0c05da24d1dcef0b670799beeab7c7b2718c7a38256816d0b8ee06ddef061383d949c60421b39711cdd24b41a9ae83863e3908b0674432270cd17241879441ac228ef2ae026216a7206b7c6cdf6d7f33c88c08cd0455ab77c44c7a7595c696f5ce2e97d1472039c1d44cfdeedc318928965559b5c67087b75541399183d2a353223e62275336230e5b6cc55e5a57d252a80dbe03d0ea0909491d7f4657c0776f93afea865a9722c1713856222aaee239f5ca9b4af0c1754404704fda8c403c2359a15cb296710ea41743554a2831126a0496400657bde9366829ba1b8661929d9cc1905baa566feb424e39aec0dd08ff7136de16c78da614decd6d7780c46db146b1b1b4d651afde217693d688283e606ba75a2ea14815cf87303c2f1ca3708612ebc9932cb6e0364e4e6efdb6d74b4bd99a614567b5378ab8c2bf74cc96410a6b5d639d37e28b2805b1cb500cf68137f874b17f92fdb4e0d089fbd646fdda1e2800b5ed321d30f05ba3248e6d9002c872d707ac69ada12a7fafa2f4630fdc69c8ba4bd7dfb53b843e81ad09790a2911417662cb8bad48444f611f4593e5d86131ae0e57e80286eaabe5f0d34fd3800bfe6843820a3722c94c532578a3aed2fc5b32e5cc4a46089b66330765bd5ad57f8b5772f810a91cbae6fdd9626624d9a25715ead613ee0c6fee70fbd0554b141487b010b89ee71ab9168cc53955107a9e20403d845feadccc21c907ab14adcb3e9975bb55e0aff29be3e6c9b256cff616c4b5269a63867ed8247b91996b224fea0478bd64ac052c28076b1fe61fdce24fce954427c7e4f6f509796407b438158f20065b4668fe9f1a47a03aa8ca155ff990236be726fb717d900909f61c0be2c56878c7b0ee39d0f64cc271482ca57cf03fa944a1f46676a3221b227c901f013c7d61eee1a50e019777ea795921170022f0bbcfc27202f19ef1496338cbcbe98abc67912c11cfd6a6514ee36e41e14c79d8521e2f16ac0d7f4def7f5a156b83e713841d970b88d07459796b6877f00af103c23a56d555c042ab3a62345cb55aab9a89e03896a57723f63cd82d7c50109484ef0386f20b52c3bc8c89b76a54827a657431f190c6e89bdfd4791d614582a95dcffb1a6051dd52625615f6e4c6c4cb043a290b808988b1bb5b74f452cae7e3e7e4e27ca50682260ebada0acdf6a0a0cbfcba9b01691383084403eb92238204d1e48bc0b9953b73bd192c7ee3213ce1b91a41680bff8874716e280ecc431ef1c88d342896219010c4a81c0160a5ed6c5c5484a076a2953f38349615c22f514f8ea22858f3d659adce4c4ce0341ac9c0f1634803759ce430854874fd76165fb12dd6dd47693a955df45b1e3ace4be8890091824543ce3af2c87f6b0ef5d191f217ab526f0287dbdc26e2aa22f243a3ba190b22f943bb9476515fe8d53caea9b801fd55b1e606ca2c222a20e2c4cbe9d19c9dda19bce3ea6b9441b47506fa65c9eacf69217162d88040168f72d374263cf3d361673e1297e514e16ef974d077efdeba0d6d9fa98889e57b9c0e64694c61a451d63a7371ed329ddf709fb602dd193a6edbc67e40a20b612e0d87b43cc38b1ecc6610cd5c750b3c8ce48634e27de64177b16c63ddbc4bb88cad4bac25b6a1adf0e8da18a2b500722f94b383f119ba4f570e352e006f238d61cf4ae2c745bff2b565aa5bccd59408be6db41c032f6cf17b63c4a2ea57c3f70d51ae3ab9ba881cab0475c54f02f3cb63d8480ca968950eb97e0e0749d0cf603c1337808516982004be68502253801883a1e8532103b483a4f10ed92f5011b8d17175f98aa13dfd715bf8558e7c51038ce039d982a1a70c89405a3c3ff54488ccf1f1a22fea05fe4815dbe1da9a40422a2996ac5a69d2e3294dc8f42c6b81b0d21484b8cc5813fcf0eb8cf9aed44c96a6caf25d0990dfaeaa770ebc24f0fc6e12ac24bed1a0c9c8f756054a3841d43aa18175f59c48c0cd98ae4b568e1e38cde0e2c073b3a00ac4476c855fc0cb93b142fab186ac5812fff0bded60128b1533fc17135674010de03512276dc58abe902b76d0e00336bba2d76819299ed8c1a2e7feb6151178b852ce048b9d7dc596b9ba987b9ad27e07bd4466c9cb500cf7fb0a767ffe4a3a4fffd5b13a4daa6782c72b0da5d446696560a33fcdd482dae6f3697414b19ee2ee2ed938b75e768a3689d3e00134a9b30fd7f4b9ec8d3856da46a9748d51e91ba5d2a511a46d63ab6410a859d8729fd3d090c6cc7117daca25f0317d61a72894ed1fbc27ece16ec909b90945fd466a6dafcf9d0cb5af6eee97f2b3aab1322d9f1fc021d77967e23bc7f4d1e8f9821f7c11f7d8b33158f6041957a93be51ad20683ffac898f4d5e6016a02a706077bb5f9df58c493b4db5bcd14070b14d958b05a966b79788f6b281a1d99642bad861f8285c5a0ed9398461f88d35f9a2d448cb43baa8167dd79d75b23391f5985b19892891393133b9c4e3061cdf93deebb6ef24622fc6fcd7a42dc38b2dd69df932685f2b82461bb361275271cce2a4cc201c499cc2245b37c0e004beffd401d5a52bfef0f23da426923f315a4a563b18fef4dfc4e7486474bc3daeb235077cee47780381345807807f9edb2c6bced3aaf80f5179815c78760e362333f6f6465bf930c28952f9bcd23db034148bafa0690043ed8ed5481a62a68dbf180889cdf19fb881f458d1461ac0fdc5b3d2cb17dab9f9635564751f21e1a9cebd11ceee73d64e27e35cf3b3aa7e902dd856d3c14d0b79e8c24c2aa6a0188862f700fcf06525b62c85c4bfddcc974af56d08ae711fea351fc9f41093d9d88ea0aedea1ff031e1b5c9a43caf429c448c22bf2fcc07d69ce820b4c73d4b3a49b3d8007eb886ac9c0592986958a093d82286b2a24dedbf2b466b1a866165b6ff708d6461908a9a859df7030ca1ad469a6946816f48aeab3b5c2d64b42b54b2395a28b81277e4dd5f10b5dc73f23d49cd9c40ef8efef53d6301f69175885298f2a129b06260ca382cb7227312fcaea036502980210c000b0956d2a78364c27292e7c974bc09d1f0cd9eef3e3a7a0101fda77ed1488a8dfb8e7be540243219968fbdccdb75fc04c4e456d07c501b5449abf942773da908960a06d902cd161fed95289b4174891be0e769276c553018af6c036afa3a399144e97ea71fd6fef0666c1d48bb4fbb1ec2474651c88614e979fbaed4c4f80d5f6e7d75f86278b95c5700b787db67e08cf503495ac6ac07502adea9ad55f72898813353233677482a5da10b48611139829a3a001620d5b6ab577ad5375f70a32764d5b2aeb248684582c6c89944eb2fd94d39051408a97b157012bc519ccc0771a4b68a0cb7de7f54e863248b52e1c2a6e33041ae2b9ef368459280d00649ead9660c3f88555d3883e645b33dfb35000ce696951f9e032c8fd2fcba1b4fca340b244e40682efc0c148f09486937742c5ff37b107af3cb664195b8c227ae7c37b8c2e64f5295b40dd796b69491b297ca1636eff8711ce003aae960966bb72b62e232aa2ce675a09a1fe998f40d0d8d4f6eb9569cc6d6c3862c93e6ba48622503626ac5f59bfdb6b9c2eda64041a335de0ab66c3d6e1dc4fd9e1f9d4f5fc8ce33aea14ca076c8e752a4f8331834cfbe3d753ac8baf7b388a6424c9f561a97a88b37487b42ea6d266628336374cb63fd4c1d9482da4f630e304e4640255fc29c2bf3fe9da95115a75c44fddfc6838f2689274a42855008f6906acb3337c4ebb7d113942e0b1fc66d07f39a16753f17123fdb579db1bf94698aea83721e2ca97519090d81e5029932ee1cf13e0a598938a3c22ae33b33b9ffa5a5119db148d2a1c2050e60c8e3cf300f13d8804caf82197ecb53ddea5e199fd95722ffaf3a9267122b99c7bc98f9a20b04910e5676292533f6184671a1bb9d74f187574c80c1f50abfd5a8064fb787062252f4258c11b257cc57f4fa0f4e7995311a5466b228a6dcedf0cbd4918c9ed8847c0c81971d76be283bc3868229b929708202a93265606e5a1a01c844d6290eef002efde8fc8921c6abee972bec72258f3133be6185a96bfadf16599f7c5e7c3aa24db8af1d1bd68c99176a40f2a1d743bb9d84206e3f54f4b450ee9fb64cf238ad605b21be6d3e6ce413d022b416949c49b6c86ca95494ddf842909ef52c3846f220eb257636cf7cf6b2dd58c5ec9238be2996614e3772bee6ddab279a71d83008c9ba4d49250024a8d9ff79916a44eee3c30ca0f4928d9011678b2641908a2083fbc4821abcd7e54834fca9c18221d5b063575e402c7f22abc8461482d634816787aeb0f08dbfde781e10780c3bc2e594890245a1719e2e547d98bfde292430994c5862dcdd9f0813a8f67e356545c14de0010e67ae6a1e936a9d612c583d6631bd809a62ed0d438ec6cf78ec60a21681d78306d406129c4afacc68b32430810cec832944e3a181e5e8d329f325436be66f02b632d659fef721f0b4f96659cd14dd900a8e5f48bb206c8e3c45fea58675b9731cff305f5e8361f5ab12f55d721c42af77581587d608098c7d476a3194aa6de81147e3cdf85eda17b09226a4465569b95d15ba47fa8e68e09f967f695895a48567d40bfa86b3e9f783ff880bae2469621a6e709447d2c461536312a022834f1a4745b64bc296f81c1a81f163c9e1d661015238150d698da3895b8a8eb20e0e469d30b58c873be51492b76c5b134961fb3058d52f9a2d306653a0867010aa3e4f2ac6961ca454392e82e48cea5c50faf422a1fc03cbdf7486caf1289ab0d5bbfb7cefa026befc758d0bfb229d44e296b66f4eddade5c614a9b7484fb3a276a1e5d853d8ae16fa0785ac42ecbaea8d2118ce98e6afd74960d0fc05a6b3ab88f6fb5dc06eba46846fd4a26114eadae4c5991b58eb029d9bf023fadc4d278d5851da0c40afa47e0327050fa73e527bd8f895fa593381806b0cb1562792a94832034a858b290747387fffa3a41b062acd4c87ff783872d99f234d65efae61b93867ffa93bc074d6c8c3a8f873a2822077f9029d0b697a00cfbde8585a74c0e12d6b528a06995f692ee434da3c4969539dbbb1a83b37ba91d41531dd0e48d55ec7020c2f46170190fd291da54095bda4320b6a38f61ceea89a63a222763f86b847c0f3ebd8c227b6630d09cd7fb8db422c21766ec8b7f61193ea58f0b4aac49e7c892aefc32f28c101cae7236f19e05b48a2c28172e551c93127e45ba0d78bbeed78a7c5f587a3198ad1555e9266cf6a135fa15d5a9002372a1d43fcc881e288d5f1ad1a4645c912b2f86829d0e1c2f1a2438fa73791878b79f8612d970a17279b44fef3801b98f5a163c469a53d212df36363a29b387fe5889a1bfed327ea60c4904ef8e440d54683b8c83ca0d2dd71ba5813506b9ef0eb94cbe1afb92cf7fe0258cbcf9a00c47950c80a9be8c67401764e5749f43b02fef57d48fea1cb3150f5e38a584c09aa90d66b16a6d94ac8f50815352432dc912d9a9db222ad563cc2644458df8ed8b59feba81fa0862273cb3e49bdce29afabf0dba2ca6184fb46a3ec484ff2821a66153e706c08a01cca71310476396441ac4d4b8feb903586b7dfa8f1c02301630c20128f534d676fee307a28f016c081827044dc9a4c2d2af7d0c98ed9e5652dbcd65b6f07a886887f3f0e9b1e44820c9a9c879826b7034cdd389b62b18546a91647a3c364b402af20015cf7125407c8439bb341122cf783c8199d08a74cd2f44829167930745b270f1ba30dd8ca64d2986ad420dcf63d2a13a0ae2b02bb84a1c587c8d0dc640a1200ea0862198054208f4943505c198eb3d776dcedc3021fa0132aaa22c140cd457131e79070b14061ccb5a19ca3b0b4b0dd711534776231e9e535c7b006b4849d46afe79c5933890b3c2c2d252533f6655e15435d3d610868d7c2899671e4392f0ab5a80d50b0b5008694070ec53f952a154f62c2c042cb57fa12dab71c00b8e4d8ff56a61210ead6cfb4efb786af0e06b70963a4b4d58918c16d5e0cfb97fc9c83167c6c980cd6ea0da4032812c517b4fa1858e06e3bca3c384581ab47b4c2dc7cabb0781b01c43f95ec1639f716a214957870ef4909d028d91d1886001ad2bbd82c97460ccde777e9d77da5e614a63ff129e4405c20d98050c1f6bae0a4a25476be9a79f5e2f442706c8899cb49b58c02adce941cef87eb21fba7829d0415ba0f89205a392455fcdf484507265a433479aa017815f2d7fc6774d14f90cf61a9f0f096594b6a350d2799403048fcd1110e3728c11f6df160d0574993f09ce899f38081294e5cedf7edcca4fe15b138a3d99e3f3a3c8691050ebfddf50da80171c05a5ceb72759792a16c1660ec9b9741bc8141437a2889f049a1aca63ec024090b9e962f0cd6357738159ce45e3ff8b6c42f5470b3d2417c2fc603b859479f1b7da869e861e65b8a6b8e47f1b634ab703b81048809e951a4e36f724d34e0137be1ff02204a9262a3e47689271c0d5101318867782a511b9bf92dc53405e46909283908f5880b7300df10c23129fd0f42f2c0a66e19f358fa188c939ee9a132ae0814e2ae5bcc38f9fb5f1a06ce7ac4ddb872ffbfcfb8d52068688b5688a1dcdc40a63e92e02577f128911239e43a2b8469410c51b9fffd73a95d8165e8498b66c45f6746f0e6907feaa75887ab6b814a7071888a4a3c091ec5279e92b140d87aaa401de943b5242917c75c7d07a7f9fcb6f7e2a7e99dc1fc04346128d650c5810c735132cefc92be8c6e9a3f1e839041ffa190be8f77a84dc984383b794187198878ef81c7fe8326df6f8db18ed2c2b583b2a6d421f8748d10122fb949308056a2346430e6bf7c602af5fa1d0d4fb358bd3a976e8e28bb3d48e55f1173603c1db38e812bca4d574659e4443e37f816247e1b55c0021b9a2af5a88aaba4d4d816b901806e200d7374f0b6b6b6e6a0d1968f6c52f0593b298f7f300f213a29107a34f14993ef12471d24186ad06c3a497a05894f6ef88058bbb8572b93b29e1fc095c1cfa5742f0f7a0cab72174f6ff3ebca8839d61f5ee04a62284310c62b69459ff22621bc4732f3fb07cdb43bb9e883ad38a57397dc4b91061388314f95d8031e382085d313fe35a10217d83821e4ebe0b2a166f4b0a3a2e743f14a5a079c49684a21ffeb57a63bf3f83f31b11cef23b4efd217ae697dae7cc31ff05f8520c5dfa8409cd1292159d0e08991cefe6b528d1d21ffcaa3dda39d91d4fac222384636c3e7d6e5a63e5e309fc49d6b794a44204ed70d1ca137165262b9301bfa0f594d996daefe42d687265d669bcbca3c64c36b410f0c5477917c638d8fca8777d5aae39b4585016f72cf6da88cff9c5731ef8d0d66693c6780d2761d965e6db45e938569404f90f555f35782980ad895d90cfc5a3f28e3feaff0335ba85f0607abc6853dd059fc8019390c238861704baf43202b66a69684b4e0ecb727589d154dac49be925ab0bf863de54b4994e32c2846449be41d6cd77ae2ea49b063fbe0eb8146b12eaa68f36f9b5d540fae76e4c2224dafdffd1afbedb5cfecbdfd6469dfea34ea0eb558d69beca5ffdfdc53741b2f0c200ecdc9b6a1571abfb431406357ef8b9f316de919307351e852a8989cea7e65f8915ea65c7a408bc0b33f24ca87815907edc8a8f5ba99fa151173e62a9d08f488f61e3175eba38c01fe306cb1e44c564e8043df4c72f6ceb338fb20fa686ee3c8bc7eecd9c9e731a97ecff615802b6f0b88a49f61e75f8647986f66ba2e746feecaee8b58d3e13809199710cfd7ad02aec3ce4f19ee6eed5da0126ba4a737caa64fbe03d573f1affc82840dfd1c3e12fdc0a721f9f20b1db44f2912d01c92d25ad8cb08dcf839c988caab55463c3b6ce1ea36e3220d9f1877d067a6968a2ff864733c4846390e6fdb7b80a0a0a51029c8aa150fd4bcb918435817eadc55857206972fac189ad4f76d6087be229f49fac93ffa0f7c14fc17322da808f9c84f9e226c0090136c2e98a9f05221698ead1950ec5162c8f52ae75ea224ad9bb4e20c378be27b382f6c65d23058268cd52da743d2776e95d327b279c126214aa218b40b361140ae7d05bd51e11d76e93ad84afc427774079d3a1f6a0d8872760950d304638cb313fcc384493ebde7d919b7c825e5b7b9f29397fb7676de340f670780b125aa9c392906a1ea9de252af995e0dd984a69bb7081f93f6848d2a8606ae85f7b2860260c7077fe241e038de91b51372d85839ca8f7264d1aafa8b22153ce2410d573d72730aefb5b574a09a13a53fa597b604c10b0c5d9e876730a9fc96990200bd180461062ac05a0ff425949df5975b5ca3595a225522fff2df9bf5ae0133cf3603edfa03caa580312d5262e5cb0dfc93bb494ada58b9c7050e83d5003cf0bb9e46ee046279424ccb89994a4a9f0adbff61a6dc86fbcab3fb6c7b6987a8a868b256af7708230268cf51c6505e48c4efb3fcd73bfe8cdea2458a33805d49820646f4e6652f886228e632a268103b80cc1e3516b455122fd7d68ca82c21ede9f51e977c82e34dd074dbb788a75b14dce30afb3a7b73d054a215e1ea5c9d21014b34d9c7175fb9115af041b040e351547b5420579ca7d326dab189076ff5e7dae9397e838d9c75571b3f6e97cce4c0d8798b57c21b6a956edbbbd28942a93437c5363c444b3f45421fc153e6f481b70302e4aa9c9c61833bcbeb92c8162ddd8670e5a344194d90d2e71c8b3e6c4fc255cba31c4013d97c42a9d01f6a0e4e639f1f35d34d5bb49949dd7bd85ba29326eb113bd607e6ffc9327140934d7bffa0bb809181e52dacb8a88f96c7ebe619481acf694c1c426a1ec32126a41d0e0c4e8215f52bff3fc84a39053b212b7f058c377581db47eb73ef476fa7adefd3221d87c6da1ba9d83928d7aa128dc29e369b8d685d4873b09325b9cfc7412c0ef5e83408319ca01626f3fac447000b5355196c4ffced659966dad332c6b2d090c6fc45d2d2b7f8f0797f0d1faad807ea9148c0fa8ee5dd9c674ac4ff0c5a2d19c9523f30815f5a4f5f11b8d5c8484e4e0bf5a77a21049c926e45d935091fe21ba3c71e5c284615725325af1e3955e2b3a4e2190925eefd9f6d0aa4914e199a27cb6c334a01a6e3b90ccf8aef57d918e0df5897a908d4e68fc6625bed44b738370c64a9339016470c0e51806b06b05346cacff2591450f6f07a80d0e90068d3dda95d7a2875cd2708a7cdf31d01eea2e78514cd7fd7f53ab8db7228822b5280f0bb00ae26ac5c4c2cbfcbd65100fa1635d855c01b1d5f32760e010accf0bb30eb0ccf467b60cc10ac37595ac1a0953df757997453059a511863bc1e00e67d588dca2c52f8eb786499c1042b88e2012b967b4be608ef88e91bb384c4f0d6e30473140bd0c0fca54aa998f07c74d479e0cf94f8ec59de8c173ba7b7c6642a434dd4147025c87de9ad9264b9308c5a6014e6eef86a6a68b5b4c153f7adfe4425f622c0b0a461c43d9db8ca59420a3d2207b33994882731fdedbc6888e0ee4f9770a4e8fc91ea3b1716d4bf13713cbe80bd68020de896eea4593abd138b1fd726831c276990210b3c4be3d0e455c4fb0e383a718ed8fe23f2e06511a018ee3b00f5c686b16381916afa2abe0d0839b4205027b20b143a9f8e76bbc38fe4c9d1c6604702d5852e5d1480bde7417e2da871b327016592ca69847cb611f16a84d0c0ee10d2eb73ee9333bbcde37b9418b21616e620837c3b07af0076e87f6bb2e579d80e11b6d95496fc445e3d09844d72ca98d6684cb9a5340d8b87c82f6832513bec10bcd9b4ad68df69354874765f866b85bfbf011ac4e1833b61907a4b50b95fc2424da4f99e8c510d19a1f5290660542cd481ce4a2ced3f20809e7f907b17858d56cc77d45f0ac89b57cbf7c586bf3bfa817d8f4ece8f5ae2945fc885d762116156cb7ca3d0df25fccf941ba251b58f1a0c9f19baf93edddd7641569726152c29e1f8b5d50bd004eb51eea2957781383c2197ebeb59bf983ac3f809166f0c0f95c03898e8381eda5513c69baf5ba25a080c4d8f9063b5f7f3ae2f5b579347942526e38b7185c27047a766983f573caf72f9ceca4a90702801fc23d678a17c8cf730b0c1e13efedd394381deec1d298e0c5d0db522ee7686a2f2059efc901112e347207114107d5a3271c5a682cc899f14513486f56d777826437e6e9662368a0f8d730c83b1078cf455bea0d401df1ce7732497c3ae337a4a90e984c7c14cc3abcc26c89893bc3c34bdf47c3475864b7d3a61c4e062c5033874542c4dfb38b9b7d5559b8c5b90d9c3f0a7448f1c2b470035bab7ff118c8be762d092e1e9f1d16fef258cc438b8e0e6948b666253d14cf39f133dbe93027a7baa04281d7d9fede0411b6be5b485f424ed51818d0e551dee54a98976eca0a9701786d2cff31ad4dd093392846c5f63908e73af73631aea0d6a2e54241bf947bb06e8af658a5a2c2fa1883e96677d59f2e8a7c2c7522547b14b9788517af171c5a7d47a786b3d2f3a8334a2f42efb4c86996816fb0014885d27a7fae21e3a92278d9315b5ac1df5ae270c0ae687f1038e4ac73a8337f447fd0da88f98d30a283f237888ac46c03b15b1a5db397d166602ad9ace5f004a4d509396b5387241a7a134166d1ca051dcf3061dc3f8f0042e877e15132716d39937ecc06d1101acab241e2440aac42c87903cd8badfde687ce458b607264785ce025544cacd8bbaa25372ae149ec939c97a43d90d859df8fe59f60ffee2c8b74d477730ce947ae6eacef433531c15932799d42b4e1722250011ecd2485029e6d06a5a978b9bca503d38f772c968242deac8b8aa31b2c41d75ccfa429499b7c2af31ab164703dcd63770cbfdfc78d202ea1d4e140743167b25124c63e2d9b86f944091649acf2af07747d0374a2d8b4be648952265fddeb8a92f1ce7f8c1c5a9faee1a78c03aac2077c143e73e370ea3cf99f75de73acd37cd466201fc2b3a85124d39043a7f8b3ea23262ce6890741a89b4f739abd9f14f207abc1bb9082404a8b970a5851430d8c4fd0193971af791e6770a1413cc273191dd4d1648430ffce2a86bccf8273180af4936a2e0dd9816a552f4feba93018ada6fe485a904c78eb02bcd68c637e1b987dd96fb682425781a9a240ed26c750f0452297620a76a733b9ea316238cd62d0ef492186c8eb97edeebf5038298192c86832d10e7348f5639233786f20becd89b6bd31be71688a94126618f2a2d25ce38fea33334727bb740bddd625661835ca47af9724bc1ee5a3a0df08e18325ddef856558caac312f75e573a8a9408eb6d4980abf584bfa20ef212b6c392e058fc454ea34a3714edc14dca0415c9374fe1d28a7e0ab7af1a7542347a5695d18707d47adc73217b0d608691777f02f013e9eeef3024c0c490c15b6ff58713b9a7e39393519fbc434b6dd1d00739a197aaf4641365dd46c92c5058396e50345a6521c4a4e2f0b75dc1129358ef1267902019a07101a587ce2c91508aba504fe25e52c69c913f153ec85a356f6bf45140f68b2b492725cb3acfe3285010fc7184bc68f60d24b611325e4489e9f1fc9eb1d38de0b621c58654304183343018531750dc6986189648ceec03eb9a8364be93b555441c8a197c182b642cd78332cc5c662bca51dd89081c31daae42c542247ed0f833f33425d2e48ccd3f90c95ddf8e8139f35846360c5b0b626dec25a354a58442d2692f21f16c534edc0d4880a1e9e708690d5fc2ae47721189dda32879a3eb12bbbfefe4960f81be217ee02baecc5d4933d71b2b6465fd0742f86e342e8da25f4d0dcd639f7b550075bf3f48462f8b3ac04dd98e0e396fb82439dfc2ddb7e7525dcb7b5c5af55b45ac988ca44b794016a447c70a61ab373dc4b45854286a50c19f478265097c87f21d65d060a0a19008e271a5244544dfc1a4825f5f4c6f32955ae3831ed78d32d7192538765e04391a7fb0192dfe6fa5c7f8c6138eaf6a498ebf653de37592f15dc7c502f5ac4449d7202fd4e09caf7bce38f24bc20284a90a1c86d958f19c8d1f2587f0651f12684bc9b30307d9bcfb40610d1c3744e3cc0e0e0ac844c6228284ac24c3820c7ff94b2a75de9ff4ce60bac2432e6a1c420c59313858952ce00c26faf13bd0ac9262a52905133e1a1319457b44da2d2b1a0f0f9ec322ce3bc78af5394a003fac40aad7d16002a53e1bdb5c3fae3df6d9b7110b4a04bf58a94e044fed6bd139d2d160c1d9c1390b443d8e5ae8252350a2bd821ee74f457ade07c63f85fba3f252a615d0ee2b3517945f1364f63e58f39994f89ee38bc7503c981de71b234d97d4e380d95f03a04f9287f50f5002ee9d447a85af16fbefc484a6dca20c12ea58a1fd5ab307fccf83d5e11c5abd0655d064fc81149eebcc30969f392068d4587be3416e0d0ec97f36813ffefa6b911665f9be5c67692d3ebfe23673e22a43581a63210f3e5571e55667e6011ae7170a242c2a122f3889c288080b81be8b7756cbaa79c18fcdca606cc0ef484ca463507b8702fc6aca2fa68b018f5865b5b2e9e8999ad6d24130d61745f1cdbbe73aecc3f62a77e94aafbba5ff77d626ad8e01234c6f690af230995a3a1c9ab4bd2f99dbc85f06c6a1bca71225d46d47954a8c42b8468469eb4dbb6775068c59f18581320765fe3ca43f5e47a8a246a11d6164fb619de87f863805311716bea97171df19dcc98eb498a2ef146501e61057829009de8922d30e8ecb86db0cc980803558c1be466a30242b7ca3a93023c403d20c8c3f5d7a38bcff56a024c2123fcf04048e301484eec27394ddc071cfb4958808084269ce9d1cf925cb00da3b792d5fb2258f20715292dc4ea833d2f65c37ce1ebcea2bd0f3150b31d414da934804e0e63c0be7192265b675da23edbf9e1fd397e0fb94a06cba4ce322ed0a598a0544d163957c46b96250139b5df6090fd1f636cbab25d4b5cb0cd64856ba3a16e26c2b7e54e417e14718cc3fa4541340e986483dd626036b213db35e5d09231741970afc1d1d54081a3fb489fe6d0955f3f4ee6c833a8aec59a1039c5cf8feedc84f47b5366f5014e4d7a08869ca54c41f5e8e61b153da669b2f90723360fc95929d2ce5546cf9a2c8fff38e61975b9fdec2d3f0ee6dc9cac6e7eeabdcdcc8dc61f970f80aa28ed92ace6b59fa5f257064c75a30826f677eaa07d8735d89b834a7548f0a721aec2e03df280f4673cae7f5fd291f0debe69ac825af09628de8489144f53f3c136854f9800ebf3b3af92bf761b3c4defdfec49cc4a3f387b43c59c4d13e41cc073e88c8d96d955050261249f1bc817ad6117f1e837f072b53ff54a5e13274a5cdad84a7fc7e37ad5fbfae9efae316c71f5bd2b27e1dd389145b0c04c5a45184af52c15010e16d9157a5e03aaa556d2d2e2e49b66c9a165d7b5e7a3959f583b1cce8ca92b180ee207d5af199724521ea91e99e3d0620abed19de4ba57710e30c6ac5d9ebdc8a2c87154abd2c03f50211528458b1f2d5515948210c31a31d82f2ac5cbf98c9e64085c8aeae810680f2d962faffece28b3bb939cc2ecddeb3d00b7c62a204fad76359d3e6a527cdcf33b8d9b494d3568c4af63ac9364ff5d869ccfc88a9e6103e1e0d1fa20f5932ce61767626cb02f7fe534fa823c44b703748a78a3b5ceb5cb89e162d8e1149bdb071a51b248d9b0896f06a5ad480bd11d6fe18679430de4bda5249b42995d4eaf0d98b897887fc4067045f5c48263d855612f16ba66c82590c3f022a729cc13450bd6ae594837f36a502a6c18b7cdf52c1dd84a4fbdb55221517a57ecc1101969ffda0daa3a1cbfe9c49ea2925eae2fece85028a392381115185077af582292531065192ad020baf038add78eeafdd7db35abef20a1ed4bc1aab7ff41c6b03215ebb90c597dc37ef12c0985effe1a95652104dd5758a5f9181e2e4bfd315d1f95fe33cc30b1226e54fa8c19741a0de15e1559f84e0b1642d819d5de307bb90fa8f6c6841eb1a71bd15f7a03bcf69388ce42d5ae17953bb5eafd7085ae3d4f2c8521c9fb152a946e2f6f0b35cb011b3eef40ad5ebd3dc8f08b1071cd5e0d327671e12aecfb50aff75a326c17f88c77c91063bacfa565fb0b5905d8537cede454894a2cca0f2ae95e0b0920868ad0786b928dd720b711bb19e8968b0756ea0d55b4185a4cc6ec90e684f7989665b96f4dbf58f51b6af5d0e84312b1a5b15bd2db23ae3ded8dae87e4a57c75a2e19785f12f91a5d0bdc4bc1f32c6aa8bd21468df559bddd0753179c11eb6a2b281df707de32e325c871e9efe0e06fba5ed297c1d4e9cef29dc9f28d83e45ecef8e947b8b00b46552ddf5231c54248e598eaf6e9a07cbb87896bd869052affba1b846669fdc1f87e1f754f979d1fa00ed34f435435bf5d9d2dad85f949c0d4d61543425ed6a5d5db0225f2770206691eb2fbe5e77a95812ef0b6644e248513bb34444d26e1c7aa1b9e10d462057014c2530bb95e9159e36b0bb8445e50b777f82c6ba0fc23c50f5f1f5fb7b87822e3e86e129b396a7d247c13e2b6e6581d664ddedf64d41cd38e79bb34518dc54be963f5e7ec0d545a3f2bd34d9b3ff2c0580b109f79f0c4a2e9e18f762cee8f7d0fa030a65106231fa751072ef2fa4658a3b57b0e47cd4ea43855a0967d5e04994f4ac58a28c79f650bc84dfd93e95a812c00b5cce66dd10b27a7e0672a0ddac4ac9358377b3daedf28a1afc6dd30b67e0d5fe301806f5a2e4896e7ec7c75ebe93a86160807abdced34809be700e1f4b1a03e8120ca39ab98808e8972d3aea8752d265e2f3f382e0b047b1b375ed57d975de8790ee76ccd0a00bcef3a67aeeb92fc0426a6543678e97bdd44612b968bcef3dd6108fbff527bfa972eaaa851d6604692c14bad4848eff4dc05a9f13cbb6d1884961ddffac25c77ea388f846ecd8526afc560ed85663f2fe6a51a27d0a67886dcd223e6b0196c447a210679ef1f10bc22e6f9bc1a453207ff94b6158b93822c7f1d98dd8de8525e8d81b0c1400abafe9c79d5bd805cd14ec93ae11d76d5169e698d7a445ba61c6a9e48959500f93637f1cea23a2fb39c1879df7abd08278640d070c535c8f45cb5946324b3403805a3f0a248f90993d82567ec9c9279055e1e56256915cc324bfd6e94f15d144442b5f7176cd8a74d038b70df5260e5f36edd32341f2d00863f2ed06c5193650f0f54a560ec0161da7dab6f0029062dbf73a435cf431d7a87daae1ff67d78d8d1a8bc7638470227cdf7d8df56ceb12831ce56508f82010847e33e329770e30b403cc0099fde1053d987729c0e3fadfbcf200a82f7e765c0a717395c6ccf80c00d26777743b5c5bbd1c87cc77884383802cf0e69e79468fbe78b4cfe0b0360bf83ce2e69aae06a46376fbae8c6da68eef5ac2d90c60047bba4fea85c10f9cc39b981c10a4223150e061c254334aba2fd070ec1e3b826790c02e4d7b05b777021965a90668d8a70efa8ef88aa62160b80889e1c309cd423efb0aeb1403dd6499a01a0b3d7ede72c7c84ef2e199b87311204a483504f2df016c01672c2fbbb376335d1012faae02f4536f498231ff974d9e97571cb2a56a18e93f61b08de5269097bc433337d712db4e18ca1139e9e0e0f813d3e84e3d898fc70d01e9877412ad433921ce48dacb8267cd0cf7d7c919291b835d6557527dc453cdb5254712737edb384c90d16ea1a809e79369b7a4d21409bbcf2f385ebca8a24a2fc28aa3ed7696b0ded075dbed4868fd9dba241ededa48afd756a4b60ea54d57c7160c847e0569c8ee047173e6236542128845c958ef12222f3648378849727f8bb4aa1db3aa8106d3cf740dbc88d3b3389da7e9e7058cee800cc074700d24898907005e55e073d520dc81b604f7971cb53cb864cb15e4208020ffa9107b56f68109481319cc8f99ba360026ff9fb54bdc46507a9f996b0366aab65c74415de9b2504a9372516321de28e1519b073e077ee7fca86cd8ac381863941240e5c0f162617203d2cb8c7df76034473b158e38c152d3685c21f4cb5d25ade07b80f40b5cee24f6cb6c3d9a4198d6a0033b5589b20d18636ccef01dfa6d648a3733cfd7597a3308ba22ae685eb9ce8d6ed9374163359e12b986610e1d79935116b6ca8e4d202a5116ba3dd8aedd9a6cbc3312a0d6c5d586a85f00e967de88fd645112a206595908b09b2d07b2979e185c830d682470c462772cdee39e0f7725a808314065ecc76719da1c7a725e1d1bcfcc018f1cf73f7ef31b18751d705553127ed4f51e596e743c34c4a1644f395b4a5ca407b274fd799b9dbbf90368b57ea6da279aff4d6fc202ce99e40855fbda0b4d73f0d8b1dc958618c88bd9c4587c791d399263382a1c577cf93aba3091ead160160aa029c4c257502131aaf80f68184cc3a86ca4994d909806faf54d8f2f81f378346e2c2c2934711acf016e129a0ed562cc854511141ad792cccd1c6ae4e2878ae6ba0c0c2315679b62fc8650c652f57e6183df7b26017b016c822691a2555383fb5de63772a99b0f65e56b91ffc6f4c56a9f52aa03d10b29a77df905782c9478094f6aac6c6989ec9d0f4d36324951010dd956446b78410fa98d0a0713f62d143a0db0a25e643dad111778b6a9821fa3ba447ee92a3290ab0d62588d6cde8ef1a760568a2b820aa445d47cd0c3877e1d98c2299a0150e1160265cd0faf20535457ae720e1e2ed8da4231cef03d0ee00dd5b14ea82cf1f4c8932e1080b269bf56cd28390e792f0c006111ea842582930a36cc765b3e314c97f548af1f22e836a37c255282ea56712536c995d70f51054ec860b7acb7d6632083c062aefb4202fa9ff659fb4be8c78639309f2a774d31a1f741258222668ea2929dcc92a751d62bdd05ba49248fad1211947f94687498757f763cced2a2829cafbf7e9f152d7e63885ab99294f019c44e548c5526c8cc21da7101cf451d7ff881ffcb23e405bb0b0c84f39db3b11f24591fda1a29513ebaa92ee14054fae750a872a09135d06f6bc46a029fda0e1c7fb77b9a8da3f684ea88273b0b7a7fcf4c2b24464208a41a4d661f412643789317da000b810957d897ca9d65a567c4a968005933ab326151bc26c8c673f562c65291ad0acc51dd3fe64086f0485982f411cd9fc07e6e5b8197098e37c56cddb3f97cc2b4baaf7b1527baff0d12698ff4e5d493540a1f61c2daa18f4f9317fa0439c414d6f8b04d782041ec542ac0c51a9f80932d64196be1de036eabf8cbb580ff352ee5eb0e44da231e15193cd47c10a6e71eeba23801ddfe7554ca5c6169afeb272b6e48be028eb3592310d0ac95609ed104c23fc8055450f18a586af20c995e61048ef530b0ca904dd958516bff03510c7c20e24926f89c37e0328b6e02e867db4e1e94aa5fa9710ecdc327d0b94f5ef9085b2f1a0243aa58d6e903a4d660007a4ad357dcb8f90e1fd4a9cc386cdb2cd67fc187bae3a943e869b50653551814b5fa84bebc7e091a37a77b281c041df8ffa48c0af4d0d5d60f40adbea2ff17101190989284aa8d3a457dc1e07cc6d381fd44fa53fe0f406f7c095d04d90cfdf84eb4b0e787b1cd44f5b28cfdb3a940a5aa52c93b71d911b71b45f8da6bf10bed6c93876b18a15e1991eb129abae8edd2012e25b4540f90ded72ce47c8025a09c28d62116387e938ab2c0475c03f5740f05b65b73a394b708daf0e144744a12171d2ff67ce169e1d9f099bc749e8e90e97ebf07e249a8a5a0a00f8dce2105619e1392d8a4b94f5368e03c7e390d9410ebe39fb430c5c7cef56f35c61fa01710381cfa8e6f7b8a427bf4c957609f3c4588f7b6ea01a939e4c68d1ad08e201bee1723d64408d97c42e248397230eb9acb7d4234223fc58c96b11bbfdc7f60f9346a4e3b035c6154843d4e49a358efea409ebf1eeea3297be2b9b1a32b783f21cddcd40e20588f53e8612ca54b0b6a4a86e3816d31b5a039be749125cf411cf9fe357991c992726a51c82365d7b5b5022e99577bb13de207880d3ae28ba4e2fcf78612cb5a133954f7c249e3a9fa73abc8969d8fd6b63ef3b39b2ec3552567510665c09406bd0b58853c0d68bcec33454f35009430d6daf0690fd6772b5ffe6f8cfa0a4735abaa00c4dd3d0b99f3a8b52a068f791e113331b28d990f01b3f775328df1b126b2c2d7336d50350d111b3d143e68981d15b614adae1339d34a7e5bedcb8c9842c5f920da8bfd010561730f95e0f65721ff8dd12349032f901bb0461a2b803bb5ced5f7f92b24fc9a7af3a26128bd2e93b67c3e6d1e11dcb3eac7c19092980268a7cb49c4df376d011491fd2ad24a0c9b3d14e93c4cb47eab0b41e7e52925680d55de3129f96a381e5538cee83067bbffa7d2fe47036d0981b67a906c7905f11ae11ddffd7f62565244db725232dbaffb8aee7a5d82e04120cf0949fd0472f12a352f84e314bbfa956da818016b485f57e1a618b54c9630a4dcc44006f40b541c97b18c6a5a9df214d2f355cc752abe664a370f7c55c8c945cd36336fad21751565fad9f69d8bb4c701560bea8cc44ef9ac8bf60e5858fe48bd37d568d77db896e47cd398c9b3ab744705fad9c8ff3a0935bf3690009bb814373ee1598ffa3dd001fbc1fb984b073e69b1053e8a197c948b5202093191cfe8919ccfff7d7afe7119a50c15af51fe89f011a85d8461185337115a4c23d67bad780ae93d79872d2912ac1d41ad7de59edd466fd7cf124742b69a14ac1a8829769f65a9083c7221a23971c7b4375d271752b433fd67de285ca7662e2875afb01ce0b799df4da97d76dc65288a308f3fb6f1d243d239bd829bb93a4d836e3a4149057908929d88ee0034c20bb4ec4337cf0e9ec94458f03c359efe211a023e4e7478c97538bb5f0a3ece558461794d16cee779a7bce0d412ca9e1d1e9681bf278b1e38ff7c283e4a1fbd9ca2aabfcee38d8c260a1759b9a61ef3fd984bcf923343a092a894ca5d17e9fb02bb653abfdba3bdf910f1f59c99f76dd16270d1b78c35f3498fc09af1c543426ff24fbdea4d21c415be0784e43971667103c2511c128084009359e65dd9bbeb89e7f83fc23a7378f0d475ca156227dcf42c1302363811ab72c652bbc89fd08405602f78450f5fd9e4f8fbf18366a26250d6aaa357fb3073f94c9c11ecb25bdd30d16f4c414de378a799b75d1dbac40e2ccecc5cc7382bd13378c34ffc48735532364f1a31bda8f20cd901dedd2d9cc782f0ada5a2b5b6f06214de9842c9766fc238c7a4fb1665bb110554f6f034b24f2d4d98d72586fb05e51215dffc38dd2a4234fb3fe2472a79834920a5bf9c0138641a8941ee1872590b159f5a844259e82fea0c08374d32e67c46e6d1e542cd73ba6b7f82ddd065f0cc1f5d86081effc3b19856816c799d5f7784f8ac23cb36ddd26baf78d5fd259b97afafe8520bdaa6bf169b055e267f2eab1eac7ed65dd8c78f285843cf31f81d2df15c686c663512376294945203c2308a3d61de601e8a5c70c8d8c8e17675f5fc34c77a7e50af2a008983c8e3995d44bfc38ce14afce361831fb2cac9aec253ab103f17a2b0a568c34eeff88f7dc7e0ad34f528353be30cc600ba2f0fc1075ae1e015a5b3055538ec98c52981b5da24864aeb700a331832b79bcd5f0068418054aab32fc3f05880dbf0e8f5ffafb0b3a48493d816d12bfe9fd257b0f998bcb9fe58f5e3c940871704b69220b3d2d963660f0195b129261edc186b3671e42ddd6f6c041a25844e7678c9b7a8d8ae88da5c1c4558dfba7c3f72d6bd43141bb50517edf210120fcfcfb2d7d0c1135f245c7f5600e3e637a65339f9248ac29792563ae0f530698265aa2d6dae76ce019803f37a308d47abbb2efc1df96c6184cb191caee1eac1ca361e801c06f820eb5adb2f51881fde3546882c965f11e50806f182d540b668ecb85835508ee55fadae1cd2dea1d8d6936d6178aff2fe9d4615d2ecdce9d24181932868efd68642bd3d6711c767485a180685d6b5acba285099f289c63aedf2ac3752d90f469d06b03e4206c69ee84968d02308e5cbe6b1b6d245aa38bd195aaa81c9444dedbfe6905e2e017776871a47edd3d2d36943d3f69d4d0ad8d52bc0ff94a8b6b3b726d29a2d8ee6fa6c0c6aab92b42380ab9eae952b081ca4b2a0ec3b44802bbda45cbef4391361bdf5f3f0fb7c2d9405edfbe2bca6b0132691bdde72a8a623571ceca3cacf5cbc001cfb5ef6a2de43627560afcf0cdc4483d6bc6ea0474c63f52e1cef3b2a86b9d55bdfd5e9bfb5ae1c9b422dfb1985e992c8b93001dfd498ce6718c388d26b5fccf6f072e11164f45630dd36d0c1995dc8291647ea71ba149b5081b3c2a518e8a327be34805cd3942636829383c92c0833abf07bb3224c8882685fd7fbd584e9c2af03521f5c2c3531436c868ce8e3a12dbec41bf9a3987a73a94ead608349ca3c9022c0fc22663d056160b4827e27e3cfd36df702adb002e9e952132febdc76a1badcaf093ae24f7942c1f2237a6abd77a116f3da5484dd22686b3b9927bb90f4b34e3aee511f6097216f508936688ab20edebc0a575d2487240a0f17649260e4b3ac247f4b888f2ddfed5c8ed4c808f17addbe83c86fb8151843d31e5cab3047853f9ba0401d4e6e516b2416867cb57b79ded283e875214ebe8a8259436017eb3c9126e7e6533730d7c151d08557315fbc5ebb0f86d1828afaea1e940e9b771ef2d2df14c295caaf3e0d2dd9f8b7c4685e1c3bfa414e9ec68fb1558ccf890c8d2a6eedaaac35cf5e3130f15ac657db8234689a60deb224d21708bfdacfb50580e936076b47ef201f645b3c40576ec6f90c2f99395caa1a9ceb580b7c13b4187b09c6a59eb71e9ab1f4719ce87975a2671a41e63099ddeaea5870b690b0a7a4e41dd3ae7026c3befe550e1de50daa75398c072370927fe8c199c976824b149235b2678f43af8423c237d95532a6cc5419c7064f0822ce0b8324850094ba162d0d88f4635da1cea02e63cdddc37d61a010c11ffb10de57dda994e476936639024bf28d00c3259874373c4a9b6e726265d6ef9b9ba8ef6f9118d2a4ff246ea2e7bb0ff970995d292b14838be52ffa0b90544347533642731c40c477194e2d42870ed365a65cd9166e61f8241f24681acd65d25cf30625ce131325928351d5606c3dc1d61c2d1c01530ba495f79f3748780d44c29f14b67ed3dd1cd0a3a39031f76a72441103d61a2e06a96f7fb2eb3e58d253106e65c239d57f1489bdc5843f28f7e0fed45c28d40cf8649d85b19f5175ae183948085b867fb3aa6f63980f0bfff79f7e038e44a59e3f78a6e6e36e0d2dbac091ab5f71dc923ba1b39aba80742c3c72d55bb7f48c9e4621a74073dfbe44494c353a88e85bf9137afa15222b5acbd3e06352e38feff3fada8af6ec5e256ce4bf064b46eebc4552eeb91101c939fa476d46ad340655edce56d8e28dceec5fdd67c0dac1e475a3f61162ea282ea881524937322a68c6511748b1644a058f1b1e352be4ac3591a17599936520bfdfe07ac20c51c432aa331e260fc2d5930f74b02ab878c5906103cc82d10aee5001a1f3c49d3679b5e5608b0e56eb01009d1776fc0f1c1aa9515ef6a751cb984838c2654299181e8830601eb3fe2fdb7da83e144089e4f97c3a79149d715cb63fd1e22d440d2b0394ce400d69661833423fb5bf4cf02120ce0af2ed0496c30a430d140148b413b3ff626f46e5a0d940b102be2b191434edc61ad5b0e274bf4799b9a7ea63d9fc24454cc9191131c323f1528f2e82916eb7a0b667666d113f43472eae6d51b7b6314d6d35c7b51d536b8b21a8ade8a9adf5bfb633756ddbfab58d92d7d63aafed3dbbb614716dc5e6da9acfb53dd2d736d6af6d9db8b6526a0e6a6bccd596ea5f5b09a5b656b7da26a66b6b22d7d6daa9adea59db63626dcb8ada16d16a8bb9d77633515b19a9b6d8666d4dffda5ed36b1bd5d4b685b6b688b3dadee9b5b551d69634d4d6f054db93a0b6459ddac6f4b5d51dd6764caf2d86b0b6b2a7b616b588d756e95edb6ca6b656b4da225ab575be6afb4ea96d4a51db02626d4587da8ee76b8ba2d756dba8ade95ddb19426d8bbada56d06b8bbad6f63a575b14726ded766ddd3fb55d116a5ba4ac6d81505bb15b6dd3f9daea106b2bb76b2bfba8ed81b6b615bddac6d4b5b5ddd63699525b83acb676476dd587da9ee4b68d9faeb9390071fb801d67d6f9b60ffceb16e23abdfd49f2f0e2438dfdef87212404ad7e0e79b4faf33caeedcba30bbd167b68fdc6101ffb954ad4c25bcb6b003a3ffd02272f76562136b262c6bf157c91ff9d248f67243d84bb7e07d232e71ed73af0f7d77050a081359cd393ddce826afb72c5774f1649d7931cbf5245c101af0f5eddb34074bb83e1e05dc374d22f4f03bc7530312fbd60472dc62bc528c7adc62a8b298eac8daa8aa889af8e5e8f5c8e5f8e5d8e5f8f5d1e5f1c5d1f5de5a6c727b50c71b958b717893c98568cc9163a1905e3b590cf3efcfbcc84026f64d0d5afeac10b0b24e4eafe3440072a434d8657b6d86ee23028357a44e6b45f91c5b024fe54435e2c1619020ec86283e6e6aa2c16d0e3439905c8da4cd2592cd4c6875db4803e2ddc95771ed6c2ac167f2ab61845c5c7da16601c99c06e31d08c950197d202507471610051ee948b14dcd8ecb9600bc7a4a98b1573ac20bbd4b18e81ea5db495c4f3808fa017d021f0f2f6a29c04be4ebef4468703ee0b6379f8c25fa4b7c08f041896cddf938191767b1f5a30bce3decf208c6d0258a5c2d47680211a46b5de7bd58769ddf78e203178b70486568a696df106b918a641dec38c1126761f431cc3a2c77c2abbe7081979b3fbd823c328c7bd5e2623c37c61c9055919ada85ce79649d4e5f67a8d24de6e7d7eb71c89e1b5d35224487eadda41c90f611b5233217c443e8119f6e95300c809cd798ef0b78d87024b567d4aeaf460796bac291d5926cfb83b3beedea3e0dcdfa3ebe39828c86d115200eef73891b34a6b2bae45c284e4479af5964692af7f30a952c39cbf938b8d7828782813bcfeccd3289ab45a6b46ceb0f9b5769353f6cdc73939ff167372cad7f93b69673fba31a9177a2235f4191ddf676a1950bed840875309fd8d154a9687e87349a25d0f4669e519fd5c7eb4e90b29d4409f939f289da8bb54b983295ecca6c9c59beef63d650afd34b956d4dadfa86061a666d79c5a7a51155458d5c9f956bf86ae12cac6fab8266bdfab564a195b7f17726dfbe74a2dcfebef62af6d9fc05265059b5d456c7ba4abd6056499e2914d2e5f766bc92cabe8b3994bd016fda60514a13677e2daa7f9b5e4d2dabe8e6e3bb6f5965fe9dbd65de2ae36c6e5ab30b7b9d9dcdd72baf037d4ce3fb63ba7e4aeee2a5e7c11797317ea5ddad7cb2e8c6fea62be755f7ec1c5fa4d5d03b8ee1130b0088287b309fe4d1f0c01e4fd98a06de17b5c6fef859d6d8b27875d99af6b87d14e2306af25f1e94cc5cff6157357c4787527cbb83126f12712173cc57d60f1a8b87843304e9a8cef91c665b67115723ca01daf79ec71381139158d1cc948ae87251f539343f1c9058ef235a0720c59b989583ecf5a0e862e57e9cb0718e6683ce60e98f992d01c1ed55c66369fc29b0328ce6d38e71bae7324e0b99ef47c8c7c0e653f1720d0d768d03158e8261ffa3c283a98185d45471f30a4a3c1a43b54e94bbc74f89ce93e992e89a79750c880fa73feb14d0b4c16db876fb9f365abef54f75d9ce457a6bfa0fcf7c116e0fb6cdb76602712ec6fc1fe53835ddc44d8d1df85fd74d8d5cd871dfd95d8cf8a5d69b1a317fb89b11ba28a7ebc7afd737bed6d76ccafc773b43156e112974d430651e4af8e7c4b4a720f7abac493c345f9c5946fa972d39b84a16f84ab5958482ac0ca44f2268d7d63981aeae73b57f839132ede7cf2d6e30da2c5267f12bebc8766a898cfabcc68d8c9479aebdf30265f4c45d7b04212b678efad72dd48a660c8b8c84682fcc7b172f7da82b5320a6f329267f33fec5c76ab501ef050b2dcede158e237b82a0b3172c191e4fa178ce417abd405f690c22dd67b8b5c1b93151c02d7b24922fb718c5c76af500eb0d0b2eee6f1786236b82e0b1132c19372f557cc6416abdc05b610c22fee75cbdc1b90153c0257b24826ff38cc5c77a9501eb050b2ecee795c623701d716a5e606a9ee6ffa83d1237941f42fe8d90f96c68d06290905642e50c72e12101711a2d6d1c18a8675d2d0997db0b38248e7422d87e9c6d52e7850ee35f88f7e5ae9eecab5a6da5b52b2e52ba1d2c105ec76548753ce32c240eb70052367ec402abc5d178f04b9a0d0374baade99e876e446ddff72299cb19092e54052b29b1a256b2d0e6a3953adcb916a4d0ea6b902a381ce3d70fc5aacda1def4e7752712025b1f111b403c7dd87031ded9ae7ec76f3b036e966e62788bc793d978e23878dd9cd05741f2bd183393769fb1c2d454df488cee6ac6491c78b318585f84c525e7212dc4bb67712e3582ad390a3477533d5e9e5fa93bab27885d34f4d188e248df1cb27935b428dac5d534c74a7c81f5a2b0ffcc6792237272f35f480e7e14b62a086c94a62409dc2d7a966fc279a5e2ed9130e2c832f1d9f1aa1d9fd74738b79b83ac5ae41bdbf3cb8200bf43d75810f54afe85aadf19f478b68d1bea716ed31350b5c3b757f7b64b12dec7eca721ea54eb16b53fd1f8f2dc0725d4f5cd003d42b7a0d2bfee7d1a25aa2efa9457c48fd45d7bcde9d1e509cc8b89fb2d81f8a4d84fa9ce5a7638a29b8492293cd6abcd6b19ee7d1a259d6f984c5794ced22d776e5df1e598ea57a9eb69887ab53ec1ad4fbcb830bb240df5317f840f58aaed51abfa165b8fdfe7269a0d2a48b31106c45d6c7ae3e1f5bccc3d59c7601c5fda5e01ad9d0efa30b7ca0ca1682ae582daf588c15f9a63d9efb3c4aba01749980d0e7d12a90266b6ed7202065b980d126106579bcade50873bbd4b5917a25562a05ecb73250ea90669a3c501dd04c53049a433465c20173fc864c7d408ebba9a90a88633764528173a0a64f2a308ed484c909c481c1fa89b11f8b2264e0c9b63042ac6819c59f9b8cecc76474683066c7c66d02b16da93900b3e510a33be3ddcdde86b1cfa13302b77139b070a6bffb605c216d03cbd9e6cc39c35e7cf8a64dab2a3f3ce83b2ae3e7ad8c5aa72ca326d9c4aa4279b4d1b17a675e206b37e398c912fe80e5e43ab66cbf1c970481f31d8fdd9227ee7002e664d03e77088047a8e95cc775861bab4ec650db1ad6949a7b84765cf8159d42bda5009b4002668bd4e944abfc820fa75ee74331782e66c5bff5184f8c5eca9522f81bb266099c7406fbedade119f605837f6d89fedf11a1813170c44bfc4675e57589c95448c7d5b24be8223a6f2960bb0eb30d8864d4cc53a440e0cf35a7f198475836f5ecc8416e20913f8ca0f9271bf616cdad0fb8116028b5a45aba0e0dfe04e7ab5c76b7de0b7a8ec201e5b85172179288f52e7c29bf0aa6ca9465f3d4c5c3e65e15cbe6e0ff410fe838a4141f49fb023285bc745bb63c30b2575d29dffe4ef80509c794b0d2714b98d1275cf09368235c95489727a39b07c5b9ab77ddd3c3c33f9001bc1a5f1a6f84c912d5c27a77f1241947f5ae3af8ffd0533404a9c7c492b51043cd74e349f9453025a7971be70e1e36f3aa28f723df1f408299d60033dd537cd39b62d0b17e115d389768f3091935ae6512fbf660bd58c69502cd0aadcd91a78332fc235f61dcb0e5b701016e9cf69db0a4e5999f1c32383e5393ecfeba9be3bcb6ccdcfea0d213722e0f8bef4179b3cd8ed082dfe648e5f707309c657d2dcb7e304d2c59626ed90372901b7fa76fc958cfbdda5b2c2645783f019b51bfaa5b9e9b5876394ffb344b84ee19b9a33f1441eb42da8800fb9c507394f927731d95ce8c2d75810401ab4590f43dd4f0327e4fa396221921333607884833d0df125a52d2e6e1623eeb2792ecc3828565a25c73012d2bd3e4970b6066b61472ca1d56afa1e4abdbea5b0247a4efc83005ae0a568472bd7100346bebf9ac18e6c240b1e6940f011e35b758a3f55dddfb8fbec5f461d291a9bc8419c8844e999895a5505c59dcd34a47141409eec4f5b56f63b8df7007a20b34c0720006069bb9e82c892323b6384755bcc3467a4af7e9e4ab7035c907d742a52c630b174c45f8c5b6229a0fa57801dc6fe0b67d6e58fa9aa6d3f5cae5e6a849474ecebe126e630b62729620077a747090f7d3fa0909176889301e51dd1c3de78aa091fef42906042e3f8dc41b5a0880e58575bab32a1900ef46cc8614e49ea54e1422d39e4466a8ab420dd88b0e68c81cdb6877b69b167ce1c39d754213f5165178d3d0e84a78e4f21d0359a408d55767679c2781626ab4b1a6249d56838dc21125f9038baedd2d9345901dea2e4c795861098bfb3ab26d6ac7eda9a1490e135393080d18cc236c4426e4f16b1b23a5ec0226a336e97a439c48a08b83265d09334bb9c70a03f944e613dae7d45201f9017ede612a3a1912824311327e6aae343db03af111c2b7ad322d653b883a9f76125eb02fce5d284c64dcd4589020ca1cc358c685e8f16abce4ff60fe80981d9b5dde26cfcaf0e7fd2b12d56a399baf0144e4329095135125364cd8b15564a357f68e5a078f6fc4da44a0276f395b931bcbea52e53217701378159c0b03fee6673e0b6fc7b5dc53f82807f62039a3a80a859a11d6cee526a3963144a973a6649f531dc274b64577112b5191ea742b9a81263512a9f4e35d8c6feaee021b8132bbadcd69bde5659e5ccd24194a325b766665e70e181d3e5d89d06d4a1d7cba5f8644ec66c459acd9e0669bab8264d24e523a9e59086c658a80d651f5fd76a04a54f9a4917460bec06860ad692ba743e5baeae94ec21167413363cfc39887c9ee77d173576270ba366745279f81c79a8690e8f4a7e32bafa71dba2d3ba3fcf77d5e4779acdb157d38f19f34b71053a77d1eca7425095924dde450f3dc127db46a989e450f1f67533fcc72f980afab6e06a8b198defe1a654adf2f065f48f2e74aaf51dbba812b7074b1edcc8f48101c3cbc638bdf15309596c0ad50eaba00da08112d7f16b682ce6734313bbafdccfc98fa395704fc4e6f5d01307ba9c3025d2b2c5224c5b7b4e03cd871990bfe6a5874204f88adaec440d2aa1c2d9bddc70502d86eef939b67414e52e6752e4bb022174954591c162d7ac4a22a6a393be017482bcf894b72d54df53daa8f13251e1d1825f5119ff65c589f4936e6babe06ff7810714cd50460ba2978e1834e3a8b7e23ff535907081938f445ed63e6a779575ce7d75fe69417d445636d99feaf217f11abb8108dc392a96b7515ff35c5eac8d3ad32425bc2de227a43adc44f9dbbdf50aba1fbb95e6fceeba00d01f34122e262141e9244c842237f6df9d602e63112fcdb522616167b49037d492b4130b5c94c5d01cdb7960004f585b339abac23fecf24589d91733bd37a1b82c655cf2f2943a787c1bc8c2a7d92090070ac9626ab9e1b6d82624f55b1e81185e7a41ab27be9327909d6f6e229e3fdd6e0fc7b267cd4d18b1210f03f6d874e00e44be8b0aec738929304cae3380cc27500d1e3f6488b4690b4ed9daf2aa003a8a06e9695d7f6af773e922e948f004788c111407fa0a2c9b8a9a0a2d6b95c78a5054b7104f98e72cedbd10c8b8aa12aff702ff26e1d40cc06f24727911bab7c9b99aa75f2d637f3d70f29119b9014ce3fdc09b422216aafb748bd1675d9615aab605a610da197aa7d44e60a90eb42ec41d91d311d5aa6887b541c10680c5040e184d882ca01815c8645dd27f02c797cf0ff70ad64949fb640f3163e33b88eca8c22242d5ba57064e06e0603143d26b12ca3c6ced79f7c9be170376b3006bc024eb67e50bf2282c057febc6c9f4114304d524fb49b8397d7b708f5e8b056fb1d74955cdd79ce46f4cf51bbaa91b40aab5238f91f7d22a8cfd0fdb9215affcabebd550e21811ecd83dac68365672c5b81b35e46117e43e0d11b79e39b53c4465b5f2826cba94914c088d7f8d08c64c84ddf913e6613774b9192cf7272599c98651024ee3f91a2f0fd10362f0bf5b7b9d49a3cab85441c175a0ddffb79cba49a001a65e3cb6678046511395dc8beeeef33445437af70530045897ab5ff9ae8eb7353687c0cc3018ca2027af431665d40ccba4a07930dc9c398e051a3c041866d1fd0d491b81f53b027ea804ceac14fd9312c831032f18f0f23c41fd8a4bfedcd66dd910906cc5fefde219b40b242ec99ce79e584fd166c905bd88b4a28da27224424217bef2da59452ca24653d060406dc059c0e1b4624243f5a0ffccd78a0daf5553b54bbf6c85ff1df709bbf991df5f1f7b01f919064d9d6de98d7536d24243fbb7a25a8b6f42a90f43c19fdc82d424b16041501d102c267005cd31314578c81831327c0614a163a6647241c82d882e02084435067f19dd606a519d38f129136a00d5a2b9d51b47cfbb5d60aee48e53f01a2162dc61af7c3fad4d61a7746a768af482263fb4fabc5888361c38edede8596bf02504c0647e7427756e8bc2312d092157d7744027ae286a21a6b1231d21721bfe3115e38d9f8c8800d4b5d9228010a8208d3642e01ee20c39e8f818d007644d201ccce7644d22116c4270d49b63fa501891db3d4a0c314403bdb9fe68663bf992e294bb2ec2865c9d19e6f87a4080d6dfbe4668fefe7c7c19f7dfeeb652f677fedcbc9d12981c708375e30eeb3a71f8ef69bf63ade0ccd5eceeeffcdd01466e84cbd0d2af5e5e88f59b3b24ffb10b4edb50ba41ef53394f366e8a77933f575541ff33a2c2d8b645aab2f47ba828a5c2d191423555a6be90f659005ae0bbe7b1d16003eb2541fcaa29897b19ccf21c2c95efb1c221cf9d9e36c1ff3e548d8735f4e8ee4be9c29bfa5ec952d693294317be4b937f3d99ba9df0c08fef771242c8aa12f5f04b55a2cfd314f84a3fafc39bf7e9cfcba85933fe6cbf1d6f42057fed05bd915345bb0d86cc16200f0ecd1acb119cc635a385babf7cf21c2c9affa1c221c99cf3d1bb0625e7f394438fa575fceeaf5abbe1c221cd5eb2f67f5f92bc78b3e1f9215e32f2ef4221d967dbdb68faced9ba91f0f1ebcad903df2299a955fb2f273af7a221c4d3403c2f6dce36ccfcddf8a70b6577d3973fb6691fe82260c1659d987d315cea014be19fa85907ad4a7be1ca2191ed9572086609f62d8c2061b945a2dd6cce97116f72a6c8ffa6642c83cb4f9338ce8c85a9a35f3c3f9daf367f8d091359f08094209259a5a2d5664715f0a2a6c5f8b8b1135d1c4892bcf5fb5a021c0f3da91ca0ea76785acb5427b5ad89e7686475cda7ab6666cd6cc158f8eac8c25773863b715a343dd82211a7c7e50faa16985bd2b74a837c531fdf5fc7befc559d5dcbd629cdd7cf1b59e7f9d138a46bf9ba2e9cbcf316b5a963dedb3a77d5bfe2cdbdefe96290d1e00ea3e75621785c65aebe3d7bc1dedb72cfb42126cb4cdcbd16169d96b9aa63da5afd11434fb9ab54fe360fd6614d1a928e50b951d390f521f265b42c769012d6aa41cb68834e18cd8ae1194b123cd603218d59e2500d8f135ce9bdbcf8fbdf3a97305092df919da8c1cacaba35ddfe8c91672b0ae86f64aa868d728498076d0ae5d4c46cb6fac1777075b75b0b8bb2fddd3ae6fbd95cbc1baf28973a5346b2c9d012bd29a7495b45272ca5287d8e1aa69cb5c29cd95d2aebf4af21b19a6f932b05ddfcb3187a462bb8355bfdfc1ba26192e19405e63e6d56da9b2ebc73164b464f4c8f0d9b58bedfaf8c2fc264cc598fc46ae9a4e48b2ebffec3a130297824c2cb2ec4bd30ee6a1404ffaf3619dd3ac41bfa529a3b4eb6b335fe8b083b976fd1553572445d30f655ebbbecc13fd6642a029cca79c08f39379fa6470d00e69cb6fba1d292a68069e00543bc3a9e727c88f5c4c924c199728fdb425cd69d688ace969b059a30d71b06e3d0e569783553a596ff3f9d980fc266e2007abf6d6db3697dfc4ddb30dd9b423ad71d0aca91dac83ed6abdeec9c1199cf9f4e997d37d9a0eabaaec67e18a6907e0b5295dd141483f4cbbfe56a46576c5b4cae2372e447644d8c1e417e22d487b92c34983cd1ad1c7b79e5903b3ea6b4b5303dad5c5a4bda690569441d1beec1a2b18447bd0e1fb87e00ea19b35753ecd1adca7674dfdfa91c35b90dfc4a60ee6607dd8d0f64493b28355e9f97730bfb933f7da8af442d3ae35176d43317cd9750bda35dc8476dd5ebbd64aeb5f09bafc26ec7eea539efab467c8ae149c5f67c4be259062387aaf004f035ed9f287215b461a5e23e553f9f5903ff70ea73fe7cb1ef2570e7ae7a013e930b569fc238de47648ce831d28c85085bd7210bb27e30a2d3f66493acab924b120f93049f7efd2c50ee98ee09c3e7fd2907e3ebf1ed34ad1f5bf1ef3e7ee41e987a594fe059211a7a2980f3c1750cd3fe05a4cc0742a73a4316bdcd2fb806fea01b93da0ad568ee07c9fdc8eb9e5cba9335367a6d28104b4eb0ef19edf440626039381c9c06460323019980c4c0626039381c9c0a4b22423a32c298b9225c946d44a7dba7339fc4e13423c53ff841b7bbe8e7b33f5db11811ef367dc80a2b6ff091ab5fd5104d85ad4e274d077b59e0cb3ab17aab042a53de27b7ced18c36c8d6eeeee78c6625f21930f90556b69f9f7391adecfae0940807d3f1308b02f4a027a9b2063fb9a2061dc7494ada92de69ff77e7e2c39ee83bac18edc0e4ec706fb7e266cb0ef6b7a9b92faa4280ff8fe80dd73870543b3894ef3f734608c397f39cbb28c6da62bd3a40d3ab4791b1bafc9344dcb7274cf7227ce95ce79bf8f3a68f1c5185f4b63ec08afdb96e5a67dfe4ddbb64dcbaead328ccd3f0d18b968335bf0cfaf23eef8338bf3049afdfc5527e38b37fcb3cf83fc9e79feb07fa49952bcf85223befc3981ee551733b032a4ac5c0e99ff7e98bdf6e1d7de390fb29faf399743cb729d1f69a896d8a63fe4ab9e87a7eddbfb8cf3b5b72fe5a9de5d33c43d5a7bee4312563bf5f147d093db213de05ef585a9e7fee9a6c377f517f4e4c169ebadfad99a07a6baddf01be7416967aff5d0b353ef9fb71b38946295df98dbde7239b614f785ddc637f0e6e1af1f78fb4e4ec7f62a6ffb42b955cf71aa0ff456bda6492ef58524ec14a7c3041966ab3e461adc075a8b7b4b793db647d57db91df2ab04b2d71ee5514a29ede1affde4766c5ba745d3efe19ffad05fab7e879b07fea9df2a4fee6ddb7ee334c96d9d137adb3c7fe776f86bafe27478333bb44f7deab5d7521e6ae7507dca0b559f0462a4b17d8c34b84fa5b614ea9bd9c17df6d96fdb57b32f7bde8d31ad8816699e860192cb5f6b08eecae5bff7aef6cd59848f878312a7478771297f1d7cb947cbfa25a02079bc46648db1b9ebf1705096e0a04df66ce40f6d18f0d9a8efa03421b5ef834d3e4033a8f9563d90ab9e0dae7e51fb7b2fc68fe337f351dff685abecb3e1372838e7d9c89e4d0f3aeed086c5001b39f2e43a889bfb50f05d65cd397f28c8adc9adf12821d42e123a7b1e53040c84207beee23e13eeae380e4a11a4cd1afeecddcfbc1368c69ff3f09b7b3f14e4b65f0e2a370e5d45a7ce071d6ad78e05d041498e899191104741045182217e8c8c84387aedecb52ceb664df6f1b5e838d3aff7299d35d39cc7c14c4e6ba7a59ea5540432cbce32ff447030a3f4abfde086b71ccc3ae06096d5207c5e9325d0fed572ee7230fb3a84963f7f520f7f85f1ec0c7ff6e4156f817e92e9934b0e669f5d3a7b77cdece3b4b5037ec32387f84d6624b34c8f6067a15cb2b33176a6a46767493736abb2b3cc5db326cb6cec4cba4bcf2efbc8598cb58e33cb7ef39756124410251802bf965d46f4971859f67cfadadce6477d68498dfced15bc3de7ed708fe2b14312e21287e25e4a8ee3384e04ad4db989f1df0fc497db319fbe185b7601767c7da1644bee834a3ffc3c1cd40077a1431b1b7f35d259935452a7527eb2c941fcf8352984beff4f6b953007f1d7236d5fbecc4ff16f5e28af6cfc999763bee6c924dec2fca410fe4c44e39730afee14dbf01bbaf1e3f88d7cfc18182166c0237ba4cb6ff26771bf5077a11ff69b78b4c3c8b431f6d91803610d3686cd1a8c5f9740c326c68ea36377a5b0d89fd961e7a69e4601fb727b28c36c1946fa3bf7817df937a64ced8f3a3875a436fd4c486d9d2b65935aabac5fab3ffd9412b269d34f8cd413122a549018226204114ef80842c4d20f2c2e3099e0c8132b4236b0938397292ce850451756754245ab7ab23064a451b7b0a19174806d04ec88a4c30fdad31085f8f1e7d7e3730ad0ef8b3a50901bdfcc241a05df12986fc244c1f77ce96044c1bbf985fecef97b146dce786da5d3294542e347592ce3224bcab86451b45812179e699145c9b8645cb22c322e99165916aa9ee83de8d779b4e596483d286d4b01fbd50fa907a11d77dcaebda5c5f7b40a749ce244698a93d78e539c14ed104f719264c7294e7c76dd718a131736b7e314272b6c89c30e045a7efadda79f04e30a18abbe0e6bc3997dfa3aac59058ea73b1bb2f7d8034f30c58d0e9e709f459cd8c243c62b5bd624b476c36f620d067460038552f9f17a55b163b6e4e9cbb7316bcccf9cd09d83f28f884484d8f18b9f0932cc9e5000d122a3133a7e84d198166932ee66de0c4e96e1d04d3513c2d47e7a0a9904faa941bb7a110909d08e015c741ce9f418a3cc284ab730828168e9884969a7764c7262c8fe3b39295d24d9514aec69dbd8518a972c5b8a962c1b013b4ab1e2b5895e47fab3e1ba1f7477445bddcdc09a4e667210671db5c15be5727440e8c8619dbdfccce58f0cea7ed071d79964fbbf9e86947644ca21e62eec88c4e488a8c815a3ec8834e4b48798a4d096455d12daf1eb9cb37e19fd5367acf5cb783b32bf8a8991f9b8f272745832af3d6d7a312f23f3edc8fcf462be104799fa32d3d3affa1baee5193a3e268166dbec73ce39735e4802d7819983fbe8692f85f234f9947dd072d3cf41aea3e21a109594520a45eba8482925f676f0e77bf1c78cef63fcede0afdefd426c2df6c7d5a99cd2a54bd1ba2a9d0974cc9ca7ba8fe1a0f33818bf6b32c676e7a99e4c428b28295059347530d2840edbb5c6eae30ff6fc89d730114abde472c4f8cb931cac1bf6fce8fde769771a6a433d8acb11f3282e074a6a727b12ba9d7139b6a75bb665714f0ebfffe8affab92fc4da977d3ff8f3a348a33ee75cf624741b7fcdf0cd2e9ec1da63edf3a350afc968a8988f5acac31fa5fb914ccac394939ecc977aeca5b08375532939583fff6447d9275d0eca21bf89d7cb5e7adca73ccce9d5cc3fa593835b620ed61cf99bfc26ee268f8bf136595465d7d7de0972bb569ef4f19a3a42fcfcc88fae748111fca46b47e35879abf7f1ac55aa83fc2474fbe6a739e79cf3ea95ac3e87fbe80d08f1c654e3b8d4e7f88ddcab8f87e8be8f6711e50f258f1c4172a9fa3340072b97fa6874d01287df487924b3afef47d9a33ece1c9362d3ae2fbd117230f0ba7dae59c38f664d7dec4faa2bedea2ea0fa57562cbf4e88ce1ef5a9cf91925f8c1b257db20ce57db965153f9abaab3e7fc3c1594316a99fd5cff5b174451af595b4bf855d4084d629a1e9c718263db44b82ce9742eec6fda6a550dafdeda6ee5fd4bd77434dc06fee77e037dbdf07697ed5cd40799cd72969ff6d048cb54f793ba9d72854eae3e6fe866b2f4787957a4ddb3cd4a7525fea370ff5a5b6e7b8d4dff0d496359ce18c6f132dd26c1ac5bdeae38798c6c1fc28ef1dccaafc59cb258d2790519f73cef93bbfa99f3fbf4602a5f276541fa3b5eae34efd0d8f51a13cfd2a954af5284fa35e85fa544a95f2b457a168f2d7232e1541048b31c618e34767e84e7a5c3948e9d3d944c63675d0698bad527a8d9efcdcb568a9ad94691f05207b29ebcbda45d1a1fc51ca3f3f3f3ff547e94749934a4a474f8e349bfaf267fed8af1fd59f7cc9230769288f22d6ba9b355c0e295f47d226d2a02fade8f9a154ca5ea98adf30e1a734cba630ba6d4f48426cd2b8cdb39dd7339ef64aed87964a9d54a21e6afb512007a9fc715043a271a418169b36feae482507e97742f4cb1fa511228dee8af6a77a86a74a25ad78d650f00489670d07c49a5a97d8d5461215a4306811058513d3939c01c3bd2e39f99aa6492e87a67de671a003296e842a5a7e766ece0ee2cebe99f93de4df9fdf8c223a3fde5e7be989e061c0418ae9bbd5417ee491e5d7bc305ed9186bdd75d4060b3ad41a780d9e302cee67c0709f665709f71dd8a13f09dd74bfdc6703668f81c456071d6a506b1cf09b187b41c334d8f48626bf98791a784936aae8f9df476d646152dddc30fec8a5b868aa5f9d149d7f7e1700fa19fe99619c614a29a5f55e2fd4c118d7d770a54fe320a55694664aca9712f5848eb83707fda38ee6524af73a3d2a2513fac8b5cd6beac79f9ca4a2e94ff0299ddfe660ad35c95b901e638c5f7869a5b448fbd3f718bf907a1597be0d43fa089106ad7242b1446847a4242d9b1d91845c737e618cd43a18232b82b30608943a08ce9a48e300b2867e44da3403bc804d7f628904060ed2a79145ffa543964d5f04bf29a169d327b941a116488b349bdfacfc06f5f13554dc597f7c9447a33f502ea13a0d6e42703501bfc1df0148f3ab6e06caeb8c347510cff7fc9d149dbff834236419f7dadbd1af4aa5f447957e8e4bbdd65a7ff6521a85d2284f7bad6d0d838cc6c1cc6714d1d33fc6a51aa4451493a60ecec40ce4474a29a591ca4fa8b52591201dd3114949acc7755a7bbe4e2e241e398ed6ebde7ba90c550ea818e998ebe3de2b821e8ec460049421865e605d305690ac5cc9b2cc5f5946a1b841a6c482c37d129a35111351a50616624d5e6238d214461431bbf7de9bb37d1b6b4588141eaaa0c27128e9a13cecd4e0400312101b4b6900012646521418927049c113960b9ce4ac0571ed0084a5a7090d540c8171f404ca8fddd65a6ba36cf19af825b3a28cc192c2d3616badb57609d7b6462c70a5a0abb5d61696680b4cb4055817c500b82082c46be2d821c82a20867ac3961bbedc30060e3c380ca9b8b3d65a5be4f29af88383b45057f447e0cba648c96be20e6dbc362f30c618e3284b5688cac117578c6d625b6dadb53b55328e9d2b39ffb0d65acb33040b1b37c1cfd3f88b5a8142c95a6bad15a56c65295b61ca5660d98a53ce2a0b83b57646952db8601245cb962b2cfbc5124c9670527b7244aab2a587f6e4e8e2428bc9d3d2154fbc08c3e6de7b6f184fb326621732d016495158789ac1e90b981c968069e19e1914f04505f95e30ae7d77883888548ca51892c2488a2752244951e588018c90a8e10443b41475d185972b18638cf18f272a7c8a2d720a1fa94413307ae86c34164758bcb050aa9d8f7be9a2e8c1a7f9e781e2887b94b3756a92432e9ba056ab050376ed887484cf26e46689886989212af8824b172540a0eebd37862433ec60c40f2e3ff840eae28a2d45f1a07d1bcc83b5d61ab9928d64c9469ab2912dd9c81770025142e2d9feb0d602e00726507ea0200261fa7aefbd4741b326625c04004d98486a0245966945feebf462e435f149526579a9f23d3347a878220823b6584114d6e5b2af8fb645e0cf185e137986f8e09801e84130da910d60c1c4c2162a3e5c49e2c24b45a2c77d7448c0c353e50a25ad2aa4780a9c08915fc438f072f4458a919414347fbcaeb53d336c6b73efbd5c605e139d6296c5e5c9b2622d6b33fe2c6aadb566f80b16505f641992d4a522ca15dde995d674e95dafae0c60b4b0c2119296238240d992595860b5d62a848be210e24757b1b94f338f5c79a20920409a88b1d4650b17389e181fb6645ac5eee44ce5951c94dc15e02e4e338c2a4a4aae56ab05242369f1a4b47ff44427b9d46ab588c808e586a41ce410242d96703165063092ac60592db2c84be4071b6cb8a7b941b3d7564b39fbc3b64eaeadd65a6b915690655b4b7fb4bcf062052da890b39ab8b65a6badb5d65a6b5770655b3b81d83057a08471628b99a413c31421531cf961454a972cba1cd9400ba72426887eb05c71a72f62d470c1529016acf0d1f2c2132cac885179946490a20c8810278454d1a459895131adb596049493e1070821beb89cc0c2ba57e424aebf1c20f1a457412cd84277d45a3ae4de1e2235e07befbd41b5666c973cf834ffb5c70162f490050952a005872a28289203521743eebd4a12c892051b0760384d1caed7f6c209436178b154451640ba7853919ea4223e4e45155f340d4e460051431231b0609483162427565c78a470c16114abd7de7befbd5766878a7dc364fcc3025898c6404113409204b915493c71e003bbb65a6badb5785b6badb5d65a6b6d13ca2494f390a2dcc364c2c9af0c110b929da31b8e3c89824b15fa6717ffb1a145ad562b07f79f1da16461fad9d9f571efbd4578c9e2c1a7f9efe166f8d2254b8da089268a98e2ea22c91018603124311f1e7c9aff2cbb3b40b8a030317a1b3c74592710c2d65acb41ab9573b53bd65abb8210282bb850f038ec56dcbef7de0b4be23571081b794ddc2cd813af89f583dc7b33133d3d5469b795e13b5b041442565f3451010d41af29885041c49598e440c945ffcea127af892ddca35dddcf734014e435f1664faf1cac41eebd374a8c89fa5c25a044799285964f6cf19ab8e9135fbc26d22a7fa35ec950bd183184248b1316564c0124672985912c462c09a2c308a47812d4c5052e6b2d144598604815613226fd806d409428d517eee39bd4f3726d8811db1ed10fbb18a15831b4ef0dc71407cfb2c409ca922dbad3ab4cab8adc7b6f8c0928312d5aeba7489c03231a8b09e6433cc5d8edbaaabbd65a6b12a6591337a5d7050d18d90942c315493e6070275f929c88718bb0e16e5c74d21331ec8f7d6d823abae4359109c3b453b77104c5bc26e7b99343d2b6da5a7b6db5d65a6b7f5b6bad45621f5b7b04936d2ba5984589b44873f58c8bdaf7defbf223a7033f8d83f307085680058f0f2643c8f072288810e2850ba6446c96f012265a4bb3bb73efbd51ecfb5a867d2f68a4adcd9fbf9f35d675ef2541185418a12206253ffc09a4252c3ff6b595d21a69a85d02a7fc63f42fc96b4bfc6ab5b6bb0ca2c856ebe5581f212d960a5c0a727c6987184b051b184c00c4229af140ca4f67cf2ea830b154488017277ca05d6a68b15448800a86744d3ac4db73641640b4582acc1a362e47a608f222ff0109e88504f4c4dd7987a0b7430c7e041d0855041404b04e294168c14906547a8c33bae872a575cc40decc971fe26dde1a345e33039831a8148d7795390a11d50c004002a3150000280c0a07c40291602ccc234d760f14000c748c4672582e0d07837118864110c4300c83200c03010400400030c83289b20601ea5874e088207cbdbe16189bccb94a6cddc22a336792badd5ec5ab57528521379977aa915d61b4c4a14d155a4abcbe337d96d5d0898ac6ee2d481c6793caa3ac4dc92dccccbc0834d439e1103bbc030ef28fc2d2ac9f3c5a057bc5158af2b50cbbd39f1b55980a97daab4df4620abbaa0745bee07ebbcf697af8f4fa9bd3d4c12e3bbf450281e931bbcd59446b10c85490c5cbd51c2ec4f8e69ca26bd16f24280dbebb26d6f1bccb3acf755e700cb131ff7790957366692157a94372fa0875e5e5dfc2d249232a95a9c1237d44354e5c5f6d9afdd53157bad2999acb221cab39cfe07ad9a74500d25d3eceb67183128b2a22d2832ef3b22b361ae0621ad46730c69f6071a1f5924c68a7381db71c24b1dc87cbe2bf6eb1cd44bad8883e7f7492808816993b3db5beb57b8a91df42cdd2203655a72cbc4d4023829cf433f49c2231e1191cee6491456210175e3b671928cc83968c5eb83c54af6ce455ebf9a1047a5e1db3722589ac2c684c31b04abc94dead38e527a901bcc8bc4ae7825c05e16aa411a1a434216f27966f3583ec01be11bd230831db63399ba68362fda3eea5dbcfc43503b7cb681dbad983dd75f1b2cc86d79ad7124f616bc075922e4cb38278986e609509183073186c71de3fe8c8176c359b238dddc51e8fe71146a3eeff6f112d4d5009b071d2fd2b23f3ca7e37a60bdd2226c762d1452a60d445848987e31743022a3b56167cb83c55dbc33be91ce437a973c60501ea9e3011425558e04ae9395ed133f927d34c1870f6b4414cd165fcc930a72b88ff740dc25a7e84394a1a31a1f82c215c20cb0687a4804eeb1bc0cc05b9666f8e93f558d4048458efc79279ca3708582fd00472d71d91bdb83157ba696418462971300b70a5278ee96f2ec370200296a1e9b7a8ed2b16b7633275b66812d4b3d6b332b5e26e53682d944446202d8d067582aa6b332acc87136eea8fda4ce7f42c55f955404b79aba2f116b95981fc69b653d8594a81da026a5883e9b2583e571c2ddfa012c4bd8a21e777450c3a306dbab376f4d44742f565b879e9f846a2647d855ec63ea60b279e8e1c85f973b8583597b3729b685c251b9ca4f5fe783c2b4c5f70e0ead5fc132b8e67d5576cf61bb4f3c191bbe112a92aa4af859c2f4eca986be451ea18fc4fb9dbd04cd128de8914abcd71526708b211b37cc67fddbd694d59bcf03fb3cf9f773b78d492d940ef98dafbc977837a8efb986002ab2bee7ad0136057ee8de652f90d0a988ff011bac2196b574c8fd5ae3ee8c1a02be9aaf37cfb65ed0807bd4164f0639cb87dd3031223e82c5192462b2d531adf4a0b9bfdcc9cdd17fed8509ae078d67e0a66489fa6e2f12055598471116abd5e5d67492399683896ce8158943f711f1f8faf5fcd679172faaf079d2696e9c7b006bf16f5c4286ca1b6593ec1965a87de9f945657644140d33ec87669d90fb52bf172ff8f59af5c182742d3b068d1fa4a103bef690e673b21fb37e16103e6b0214f6aee758015f7567804f5b8a84ed1b2592939d301ed2a73c6a7362a1864dc3bbda4541276b907bb476e839aa80b5a93b8ed69acd4251256b883e07a65b6b8c2d65cb0373b565cf80ece93af416510d39a56ec17fe2cca37d0321e44d5a4042cd5a66c65d4dd2a82468f187c255f1428362cd6da3a57952ed7bc7c1db603d7f624f0c734187fbac8f841959f3871185bc83e4da47f0b2393951a167c3944e9b687c7f2d2f28075c84eec10306abbc488c3b80c0cc56d945aac30bd5c969709fcb994216ee02c78f68c25f413d8ef62805b03f752e6a509ed733ffc4db58653ecf0e1a9436e323a84a4eca03d3455c0d552024d680c015e21b30e5b53d9e64b1cb8d1e7d23739ceb2c159775bb811077449004aaf83956a284fc55158dd9beb266caad5b8c1db669498cae396a1a4885e5c5966d2984529b9bcd3588e736b7f72bafbe76096cacd4e1dba4655e4c56a04147777e47e3a4b033e214fb76ccdb776ad073326224968c3649a5493b709cb64675f555bf1b18f1acb2c1be5994d34d8453585c9030ae1832a7939f5c4c6332a03d1891369175ee1f214ddb9828dd6ce456afb2cf279ac9780a735c834b1aafa106ef217b77add1a7bc5afeeb7b0ebf454cf98e9c2c29a50a0129ccce81a51bd2c5d8006db56e0ee49a21b58158fa67f228a6b077cc50e7cc76ef36e4042634b7f02c90196b05bd68fa80561c5c70b9bd6812a502136a5c59ed31793b16da70722959b62eef642085b64440f0841fc2151ac256136b574207ebcb7ec4b4e2dd88b6b679fc18b084b5c63a8e8db6a0ed7ee7102aa4f1f956b0c991d24f1c558e74a23614fb8bd14667acc25451d1e5cff28ca57d03e4e4f6f64db720cf986d7a052ca36a5db8b19998d0d40c47cb4a197bcf477c2187dc33d179a5373647536a147f18bb8e7c065034a946fa416036c609f111e0a74a651c5ee869ef2d7117feb9bdabcd8b62375781cd81f75b72763d961eb0355232d7021e5fe5ae0a9c1546c52d167f95c9f7d3c641dd26f3360c5b78ab2c3e7c60481ca7fb0fbff0af77b4afee5f95afd95dc8797bab5a97bc78e45e2516cf4d2ea3fef831223bc61edf447a2ea7f69d3d04454723c75f5523dff3387d096f80d9a804fe635987f473b7a708c3b14b15a8ac81daa9965db26e2204cc5e498d74522f9e74f8e0cff102b3d9e9e4de11fe7a42ab4a64dbf7324292d0a53f21f2c3cf850b611c5628a482b4a2a51b975a5c0d4bc6eda9b171d772a19c730a4b051d7aebb76f5a89b8695ce6ffa2ed118e9d42e3a657623e8b0a4cc2fdd55b345af6225d73947562caea0d66a86fb3f522d9c5e2052a0cd4cdb263282c07ed15d90bfe085de0a31a82d97083b6cf2198b7c4e8936e46c6b6a69bb9bbeab44496d031bb3a244c90ddc831246f8a9dd1244615bc1e30ac260028a64088732f773f7313a25856aa11304aec1accc7ac1c36fa9bffbf0fb88a66ca154299b0b5cda0b59fe00a99ad7a4bc65d22f2f12063e4e31842fba6449ae504d173e5194ef4ddb468fc37240a90e86131c216e0e03065571a36594ade8780c546d7027403eeaeaeacb019da9898966a12e745e426706c99c932ce23032b241cae46474feb285be5250531d517aff84ec7b9fe10c68cc482b6bf969ce6214b145496c78bd377309d31f764c4eec434ea03a028f6b7b75ba903b8709b506dd0ca2acb5b58ed416740395345c7df0cdba9adb2b25dec8b48b6ad1e222c4fa0e1b4e9aef6ab45c00919b62f916aa4c33168d308db0b69d81e19fe3fb00f6c5d2afb06b272ed2560aaf159982d7f7e41b5326f18a2e162517ea0f890394558065f97a822e1ca33a7d66ffddfaabe8152350a81903b019fb6bb1d339b3a48535b81caed4e75c2f24208e35eada8cfbf87142f90761a99fa7ae70c7b429028aac56fbfbd2ce4a6536792151c7e6f4d2eb5984da8512cc5cca778d5bd53057cd58e373a780682eeef24173fd49c672e3d6aae7b3559a1822fae86dbcb19f5538afd74f23567d2dce4ba03d7c69b8ad936cc3f8b76bdec392be751339b36cd1e8606ddca7a4335ceab9d54749cfb67006604568719880f9e0ad7ff68d7b3292d1b769cf62b14c6df9c22d8e53094f0307b73d71bb5097480e28f11932a26775f9e56a416d2c33d43181eaac972fe0aaaa07b25fb0b6455bc9d8e2c810e6315415e6d13b89b59fe126b6715c30aa9339e426239614c1bc7a33833ad1ab802833bae2cdd6891b42647fe2d02e2579569d0c9e60e7f506ed0071f5272054f99848207a17d5e9c2ea1eb8f7070b1abe79f58b69d26a199f005d3b50a7f835646f561a29bfe3e61299f6355bba7db453d64fe97e668accc6d56091949220889c41d411f2c13571204bdb11f3465f870fb659f63c875e501d3c7b52addb30a9d3acc14109cb62cc39d0fe6c1547e945a544b4d66cc22f229900e275358745d56a1c87de1863de7f416e63266724980f6c69c1f3f3e5cd348785e9560bf52409750b59f5cdd9b876396a5e704beeb790a9a3b4190670904d1635693683ac18ec3436bc6c6a9c8eb94ae44c5636bd6e73a6db91d44d28099673270763d23f0159f2164d2128ccc8af9985eb7bdae356e5b49359f335c435fa3a443095fe1ad936b9a1221bcd189999f1cf81e5991970079944aba2a88304a3059b3532748b4943f69cb01fd146724b7245a8e85da9b5628589e6c2408de45661e207b26db99ba0e31dcf6d2f08bb08505031bb8075a9f8803d21ba50ba1f1b4492593d24d34265539b99c7789e572cb507596865b968d39aa531010e8293721c8ee7efd01ccd2442fceeb78af6ad22825d869d540b0a9b88c943894bc7c88174fdf9c9d43f4e899c945a32b3ed9e5978603f90a3e496d551fc44a10a340342a2fdbe2ac6f2e9a0d085404c28a6c858e1c39475f2373cf7642246d4d7ac189f547db67ef917cb50a25f9c223786d9c382d55e913d35cca87ec659961685b7dc30ec409cf950d6375dd1a10a5adf9f765a3b0bc443cbf99f1f7530ae626c47f10312aa4a19f2fe52d31b16d35dc20da5842b053fc58faea2023176b05fb4836824cfdebdc8eab4c42466092aa0a8a10298d73269f91ef56ffa2190ce5364d391d893f1318310b395ca55516e5c420b9dfc1706b03c9e0c53aa4fdb9e87821262c98ba1242cec5bb87cb11b3201babcc449e8d9e421d4f79f91513d3e0fbae2784de6b07155f2a28b43e2d11e45aa968c546df4c8255b82ea0a66889ba7182b545325156d4bd12e77d53ea2d3f8829fec987e01c316abac489742ad0c142e122a9c5226df2d3f2dd5c5868b52359e41c5963ae2b726d31651896592f78e2f72b542e8f26b211ce482955739c3dab7e728d73dd7ad32760b5f7d3f50226861b735d0f8047469a9b627dea3e56c7f410a389969cdfb9b74a568551ca10ae44f9d7381d53ab39e1ec3541f4751e868d46098c898dd61fe76a2ac38e0e1e507e8fb83829e75c77df031f2ead935fec175811016fcf09c01dcdd95cb45af48714d792414fb9b405e87514d4a1957c58b73187c5ae6e82ab51ff8a57c82cad13dd913d459afffc0126ce579b79a150f8052e049caa36796130aaadcb62b6c2554510a31f3a821bd08b84a98cfb8f863447d4f859463dba39813af3a50fd946c1247af129e3eaa2d2f1453e16a37baf9ac5bdd6ac78fb99043054e7655d602dafcdbe8a97051c07ed8973fc4f06d21480569a229d2d31ad06adf16844d900724c46cb8853d14b33e13a528a4254d0ac4dba25278a927a8b1bd7d715feff4970512d6e2ba44460f3f3a782250857e021d938902d40f2fe3df30485062d05ed48de90c61e3e72322e1e43ce14e2177fbaaba6823db782a389fe56cffc2f9ad1c0815b030d04764907a7eb443e2dc34ddf0711b09404eb1977f403c17d4486e9fa7a9de6cd32b1570f31669ec8aca3b4612d06c353af21ffc1ef7668c2a911759dfb8dd27ab626ac630dd6714d28f89acaf1a5e58162d7cfac0b2ad831a78e18de0cc1c75621f9773f1184221465617c83790a9b41c771bec2b466d7f9f8a567aff228660c1a90348601c3c3244378da40e5db4cb3c55fefa2e85dd113071e87c6d16cf93963afb46c13c3cc61a24a3ade832b8458f327b09b329252945d7e49c07d8dbb249dab2d85fc180053e2987bdcb3118cc1df6ad1e22f99efe1715fd3b9a6376145930183c847581a135e16f8c316fc6c876050b756361584f2079b8f3c0b33ecac566d3d8cd18a8770ed783142581b65efc53c1e7618d2fcbf50acdc5ebdc5242a5f5355022f61027efebbb57cce990377494e33f03caf86a2a59c34d29ff163008271ecde1184d133ace1ec7f0e2e7c588f0a47a73c3c62a680987d200b35070c84a894cee18bc821a030d8427b639edbac6396084e1a163478c77e22857fd632d9010a7f0b88c7e3921ea8ae2bda7c9d5785826c912975307c01fa870ab8c502a19918c28d37b74961672da533a824d9f6268ca04d47fbbbd0c2498491d1acf39e66e360c13bc28d2830d9fe37ad85d777383b5801888d550cce7208ed2561186263c19f7926ac91f23c490f3f1d36090a6b2139f0310afa3d89387ae382b42da7edab003868e52b93304064ec82e33c5468b2ec7f8b99023f31066b4141f5c166533dd198628c1dcc82a6d6ed848441609e652db5e32a14ab05068dbb0508e4a6c2fe64521958263a06540dde51092248eb9d0dc32207777d29ffdec1aa7dada8ba27026c66e0ffa1fb47e2b6e88a9d0284bf2ca4c9dc07084f86c13655480c8808e710a63a615ce5451e72bf418040bb603a6edb51fdef10a5e6526f7faeda448c3a78cdecfafb09b0bc7eb50f0448db6baa9515e61f5a3d908b4492f4a6d7c0db851a6d9aef108680e14b3bf805e1d2b14ae03368732b7213b062c9f3da18034928f093e1d711d43b5c98a6bac1eabebf7d6db9bf2db9fa2a6c49f5871238f69d61a38b8a432160b2153febb012d8027fa5560a2e5754da1467548b0489f02bd5bfac220e841a6188a46faecf55601cc40192dcb91a439601cbde462ffa1eeb7e7b52e5459f669f2e80250948a024b5b9b9362ca431382b480d3201ab814d48881b70e9ce8745bc2691747b1c88b0fcd96796c0d95d0aa0dda91ee632c530d91aa9a2d1e6411d75c1da671ccd5d01d1527ea69c8e9f91cb94c1f19163a9ddbdbd79fd03b33664c680a650d250afd6a939a4aa14d82441ed40d9d2b62b6289fc312d1a068b40c4076cc80054f8f5708c361ed3a6977c2068103dd6cb529f102e65ae05fb522ac7b739e9dac5e2af1c346f10d3cca8b85caa2e5a78a5a74acf1f438062fe6c9c52292eae67c0cc2552660485879639e4375e065821385e0f6c25fc2682a5ab8a855aa6e9ea6480067843456b2b8657003ab6ce5249ba0567916ef453df11a60f76991ada9cbfbf4dc8b992bc551e6235643d38aa17aa5900e2a8da8adc72d463a0b776a98ad41065811dea7c8f34896820b23a3dc2bf789ce69d0498bdce2769a20b759114006089a82108333f28541ae99dc49406add04403769a261820b4bf988a74f34d807428fe832c99d7a8c37ad0d660c093561724c5178060b23f1ad55b68cfa439772a8efdb94e2abc3c38a90a3e0dccf40fc84e18dbc26836bb7a213a9eb11aaacb7bacde8e283345bb18e9ba6262935ce78b4cd8c65dc9a2b68d386bf98e58b363407c6bdf70b4a189085b1e99a0d7b9a9fc1338d731fd615ea16e6fe218618f9fb64e9fc3100580a94a0fae9f1f23ef011a19fb4a98678b95683a82d9fc036249f74286d985bd038ce4edc968f0a9072351010b2630fd1847b15d311131e986a26fe38586f5e71e60289b37a10d00d577bf816a228638ab81f67a9f0eb3b5bdd0c2df96b7122080dff9449bb41824465f5d8c2726851498ba13e86ad4110cc6d9e6a1a8812b1c76048470e811490d727cde573fedcef23cfc567189d36beef92f6dd6c26d6fb9b5424f3ea73601def996485b86ab9288141f66d4c0a94e8b13c384499d4abef55570a05217b21ede1a39282b53282a12ed05e8834829f0044a36b9356f17d311e7e5cf5ded8ecce66233136f8a31dfb1ca02b93188c160b6c01fad591246c1e468425db8def7f412c1fa41a11b73a1fe4f6be70bb9cc1399f24aa616a32faf0e57d3a4c804ce79b66a8421e8d3f873c9702f8246e32aba3b90f66a27f7203b49e76856e3c65e239b8a48c1f393c94b9c512cfe1348a0a5ac3bdb4bd62855d261254c8c68450f79d67897d4e9bb934a0e5d40e4e2b1250e94273fa90d8223585954a68365d90536cfb68aab8bbde8365927d6d2167376ac3f765fc40380413a1fb037174fc0ccb8145a2836dba1f0b78fd3b55928da3977fc5ed1d8ca008bc7a683b02258588a8f23a2475f96714c277e3afaeae8686bc8cd96ee013ffb5df9643706f35f45a0ddf9afa0d60f67a64dada94ee24534cc7aba16b09bde32d6700fcdf8770b176bc59c1eed0532cc1e37af317f4281d4d9d6eae6e997bb07fecb007e08cc40db8306cf7131b071d84f10fa1f7c9c7cedcf5bd8f1669e3f7c7b6784a4169559bcef0b1ede76daaddf9c331a24c4d455e2be76c04682a950e4482e0ea5d45bbf51d3376043acfa2b245d77c0ded6979228a9b69eb2ba7298b5344386b5c387fadefbdbac34b9e13a63a34dcfeda308eba31609be3a7332becaf4dff1cb970d569312cbf3d12b49747a54f5e2ab291a2a3d85443177bd62164eeec2cb44bbc9c2dce904809a1eba41c28616caf2b5eaee9b6e4f57a39f7b29831d815c906ad6c88862d2c62811b9f7143c5b514ed6cc992728421283f8bc494b46f8a07bc4c090ae6786528a631cb94b8868dabf6044a9458673580c76411002bfaa6cbc4c4d1004fe056fda059b6eaf0c0a4943dbddfff90c8c1c00aee39b99698a2134cb7167c574e30466977a6f9bd85f4af859129e73e086a5102e1778eed931f56ad9b1b796324b77cb462ba2c30f559d80977ddac0d712d36b62dab2cd4851896d0308b4f1c48aaf7b9d094ee2683dea5a56898da6498652188559e2f276859ce67db1e42dd4d760147e097be847be013a8905b6fa814ec14ebf2d82854cb7c8401aa36917a56f7bb8548c2962a98aee814646b7cbffa6a3ba195dfe623e0b6963682f36c472fe3afbe754231205bb8488692c241cb8a89cbf2fbb251f9b9a7e4ccee3b7e86959084ad3505e475e6ea25313d8411e1234fb30b3249d526e175594877640f9dfbc1921bc64523a913174a8d3350290ea949ccd917b3969233c5c729b921c1614aacb86f0fee80e816a0fbd03493363f6c627509caaf0694b8c98ee6c50be511a8ce7a18ac007e8210b5a887c2d935c59a5026ded7dc9bf651e288981c319c0f707d5156249494ab9d3b9f1a261dab375296f972d82430ccc17eb5d351ec6db27839c2a9bbd8e656a533eecd34ff4d8abbe33a58f052de0226fc720d40daa515d7b88545b55140450f2997530501e720456ab472200664a96a169b910d00a692572ca3bd712c737bba4a7de9b3830e64f689105cc130af6a435663ccb3d3ec20a57650858412a55fcc3e0c69989511b924bb5413ec3ebbbbac8af7e4579fdba73e4fd7204fb9300b36e7636131632b4d976391407f44b7cd2bfa1c11283db2eda8c3613dac72de863205937a60ca126631be9bd3ee24444ae57460a1bc6ec7e2bf63d2f385914b28a3d85e9d6994cf22bca8ad8927332ed6cbb313edb3d03dca380d2d61300dc33085790d0130e554566ad7b259ad0b9f72db1c57fa15505f354e0366077f06ce9cf8180c0095a01928943092a54453c26e2bf837dc687eb288d121127a0722c43939328dd3be3f5a5dc90408feb07a5fa5021b527b240c16aeeb3c5f783a830be78342cbc37d2e0ae89d62a6425bb6c86f58ac6c139b73ff13c815e2b77ab8cef1a343b9ca54118489f5f4dc5d927511b16f704f114cce186936f0daef8f752d8a699282f05b10c2eb7999d5464a1bd1b5ef17527a36d462635a5a92b1e51bf86d850f1a2c5a3801323490239e6db490453597aab57a096c8797f74cf4be60f5bde30b003099e68cdc15a417b45a1e139a5bde5fde916747f18a39acc7853173a9b0fa6ca6d9c659cc8d9d1113bdbf882fd1b82994f8a4ffba3308fca9b33481e95248ca2567d6565db4a307893e9c29dd74ea60eb50c3d631b21bb894ea51226707773cc0f97a1ba19128969ee44548c3366157d377403c141ea873886c76aa992733bff297bf9b2b429a373f529d81f45241ce59e671132360b10fd68480da84f49d30f132c0e4dd692044adcbb046a8204e20ad4158341a0a0128624a7dd9460732539ebfee6609d21f95b257c60139e8f62f11407e71e0ae4c97740d264f20ff1ce4b1c6d32e293d4262f12be3d5df2ee94109e7f1d69e9f8bf7049386d8694d7c90c8e047ed99b4d305c1cc445315130140aa65670f498eb3864808c96638a92168722d138b2920c37375dacd66973c3ef72590a11844770d9a07d9588a35d996f5be219cdc5b8b599e291ce492d28bcd68ecd77cb605d1e543c18166ad2ac1dad6355233230c9903e9804176ae6fb4f18eccc3d29a53345d0034dc035b1b5c0f53e10c156b5113da845ca8a1162647b9ddca90653b8510b54cfa74c55fe4e8640a48c953f55d1a3bfba3536a58398dc9bc2359cc8e0aeedf2796e6f503a4e8e23cc60c26fa227457eeb035a2dfa9c4830c8350490566d8667d373b8518f1dfb1d11ea1b3fde4fdd3cfdca756bad4adc61194e621dbff968137b38e1d2d446d86fc23165b0f1d8a42ae04e9a10cf856b28350da10bce1fee5a3b449631290805b5581f54340792465c9da83590db1543566071dcf781decd0de455702949b15f186391302c316af3cb902e0dc2c5e221a2f3e39bea07370a91db149eb2e893b4ecd50c700ff961e94d0b9ec5c23bf9868066bceffe72a46fc20163ec67233ea42bd196caee1cc66ab820ca4121b40d44429b1b2bfec49322576f24033cb277d064096a5c0bf742946b4bcae0ec7bdd6c9ef23502e085af641d681e579a450a548c134aa13882c6ade45bbc8b793248d9461404adea2a26af39d270d4e2720b93f745230d6833360aca785886fb8d91645c926a23f39a44e2dae81ccff5682a6adf239ba85f3883996f62c79c0dd8de1942ca4e8fd98b20238cfdb49b4527c106adf236ac83e55ee2f4f00b9eaad862209a11e6500807c241c6a09da97d5d9a7be3df3942b388408f8937ba5754ab7c6fef9f89fc38b386ec79e252f0d7bb5e210c27ab6080621b48731255ebdd831244464e36a0a99048b7bbdd68de7927e6280beb63ce73f5cbd5a68ad864358565c2f7cb5f4cc0a261b7f5cee504098f67fcd100f7d648c948bc7c2aa75fc089903af74cfa4ccd013a4c3d74f90add47bc8fa6d32fa4b897b8b197d34d18abbc015214d7a9442a3af239c785cb682fa7bf3c7b12c9b853e20f227f26f56f27a3f2f53793ba480c0a1b19809bd565b70d558b11ece8b26657da0318fd914b9128d9feecf52dbc690339cca246a8f96573e3c1f630489c09208745115a2b34cb13e509b7f4b013a1172d6fdc275b2a7f6ed058f1d8b58b1eac4cb96e0c8fd874f91693c1dbddd5d722951e108c74e85034a3e5b8b4a2e279c3bbb6073d37ecac9f1c50a01e414d2cb83a42287c0f52c4a691cf30beeb3844bf2a178fb1f2f555660dfada50f6ce12726020a209440bd89b08a3a6ea03c7e10bdb7bcb65e42560008ff2d2fd672a002fd94408866001e7e182aea03c1541335c76578eb1ef4d17eef220816f803fba49f344aa25172ccce4769aff15b376e76d2f3520b647f140d8b8e050ec6dc47d9f50957471fd615fdecb9ec9d8db3372be7f2b788f102975cd9102061cbb0e5038109eece97e27ab253112d5aeafd6709de208fac3abeafb68563f41f2486d82721716aee7f13bb6c04f5f64be9a2302d569d86eec452a883f411cdf68ed7bac39f5747b3dba380192adf21d58666595023f38af7004ddf4050ac5f6d4741de2114397b118c1756009ba2cdf4cffc1fa16168641ae1795d4efbdd42cf4151959480ecd717d3505172963476dbc6b4c2167b8e2cf30759e36ed09b3e02fa28f518fe65f6794c041b44bbb44796e8c0af196a644690803c0bd723a691513cf1ad9568791774226fffcc1ab4ccaa8cc438ad20e81cec412d992a3d8bf704dd35d6788c38988745b3bd993a28b84e85212981cceb1eeff12744b47bbef6b97d2d16e77822fbb06733eaac1a33cf52ce63807b221b831bdfe9591171df5f1beb62dec1ca9fbc4948388edbc3ec73c3a9fdf9bee443dc2099192c36d7dc289a0a345ed36f47616df1200b8c1ebe5da61e893a3c3e08410eec9d46349aca38ee89fca83ce7ec88d07222cfee4e3814d4ae3c95fc521898c48c44b1a89bd6ca5dd998e6cabb7db828daf3a2669b9c283842c0aad263cf97b2cb1c646dda1a64856965f83b85bc85af08afb709282631cf60913b7e85de02abbbe9acfde3d758f40516209cc14f632996622404e4460541cde65c78e097ca304db8b50f88d584ccf4a69ec9cfed946dbb42b3132f6ddafbb06df39f90057784d65bffc5945404c246e2a22ce969ded284e9cd0239ac3eae63ce45f6ffcb930dc7907bebaaf0fc65e10e87004f55e6b996646e6734a12847089a6b27f721368b3b0ae9406efccc7c955327e98e8ebff9c5d2553cf6f77dc6d1210e4863b9e9cec5e732c69c9470d15a06e34593f209ac98368131f73463c1f669a4efe144cc0607f2740781af25ad021ef172047aa8d36d448bd639e5e1ada25a766568fc08d63064649e97477378817af54adc34d028c46ef8c2f1671046f9b6fb9b18ea8edaf02e8755900c3db981dca0e827526d495fff4d28048271c49779249849b89d487436654a3809c775fac11300566ae4d1cd028ba672fbd72801208e1c40bf3f24541f9908d4eb3a4f272c81ec163e73a8768cffadbeab0d236387640a998f6a58b5413f4b4c935ae150a8c4ad360ec7d1f6c7415aebdf70a4651fecd7551a2b886bf3ef561dca84d0e5d3579f60942e1ac6d533b0eeab0f939d1cc08307f04e8868d779ac5175a5bb41433d1144e1f17b31d66236a1498e485dda70eeb91b0d91dcfd2847586f1b9236637c40299e97a17e93c41bf589d45bbc592cd3b6dfbb12edf77187aee7d056b2c59459cd3b5dd5555475312396e2d4b144b12c07e53a6f8095641b15ac557d42e9f9b61253740851155017a44cce4e358a097a15dbec9163dd35cdc53041572dbd6635b8f2346ad1df047c914bf0aef5721d694e43d141dd8552e9984484bb18e84c23fd6f5db365154e2a2027f4715c788ef3bd4ed2a3f1a5bf4b8368c0b5466ba4ffbeaef6659214a80e737816fb27a858f3be5c01eb342d9861930357d28ef87a1152550bbc8a6a6659c1f690fb3ad5305635ea26dd6e2124320eedaf315a78891ebd4642e6580e0beeb4c09c41d8343debcd6096f0488bd5d88cdc7e8402607392a2b1783b44c9f78360d1ccca57752111b4bc5082d6d1141d474006f3b8a38160e02ea119eb3c93819fa40176fc1bcfa855601614dcdb098450b9f2fbb63121884998d3e7f7d3622f699c8fee8417ee79d309d3427bf31cc304e0952ad47399fd065547d12a62d139218408794b8a2464e0c235e108e6827f377c8faf5811d7362d099847c083f72377e001cf023c1f9f8d7672fa3385e64301a9ceef16b820ee1b76301fa76f0588b383375dfcf9a9f7920046ff58a9da066f1768310f04d9fc9b2bd781ae4afe43ccca935470febc5e16a6a27e5ca4dace28cc13b3741aa9294198e50a0d326ea611d57785863df16f777a775bc6ce88c9219648057786a9496bbd9e377865880be50f24bc35cae40bd3af3a58fd35c8c4389dff775db4804e848cea5631cc1d30d358648fcbb8c89c1a1f7542fc3f124c3c7e427459dcc82d24e2dd4260a44d85244ff30a2ce117b4e06ea2247032f00e66c007ffaec67829083a38a7f3ec25743ab45b99d9265d21cc14b5b384afe9e8e3f0b3c91b41936b12fdfa1cc7c1c00a9cf6483edde99fffe1d33b024729143066de0733410ad8b180e683f9596fa07afffeb148b56316aa0b72731c70ba68fd274f4bb7bbf4428b21e0b1a45f03e102dec5913375117da2a7d8bb20a713d92768cddda00e3984fcf1f5b8570d5b4835ba7d76eb5cbd43e370cebe444cc4ddcb78afcb4e4ffe509772d0bed5c5982027f8bd0c411e487c3bf375e21fc27ca0f16686c2d8c410bf21e6818c6939737c2ce07c047bfc00108551497a167d52ff92f12b4fa7a45e33c2a9680b8454a0d3525971e65528a282cc70fe36ca93ffc7c4ce681a9019fe17f71312e042d5fc365dc35ee6ffe2920f72b2be68c4f25ffe6728a07b783023f3d33e9467e75fa2f245830c25846cf7391b91401bd2ad9f19ca82c1e7064ce0b386d3f2104a123ef69fec30bb65bcd40d57e0cf047717a2894b4b1663f3c5acc1b2d6bf71e3a1dc6db70c3d17008da6356269c3b4de6e9c7f09bf48a94ed8c90628d464af5dd3e31ad8ce5ca11aaea6dc66c6a3f503555c5379fc5d15dad99b00577013fc3a8970aff33a4aa26e3d4856674558b7be1b5e647955aedfbeafd9f51768012206e0fc4bd25769569322971d68b2140392e904604456d26170a2749774fac0341f78b69267eb430cda6242cb405abb8dc944fd2d2d8895064a5ae3a04d2313ef264ad23f50d7084b2ce74f27b72bbeb3a94f8d9ca7a89ec92a93932e85007661ca05d67aa03195b43fdb64eaee9f0e7003913d41fd9e074c10808740e0808bc7d874fcac158b8c2ef97f1a214e929c27e63b0090c8b8588f2b515036fa671057a46e7f5f77a0a298d090567d8745858a33b875c4d94c099607444cfcfb87aecb4df98e0e46f163e54f66e70b80713d2f5b2634c886b1f609db3da703b00cd7ed058779a0e21bc90c96f631c76027bbe9d71176f7454d0fddea88eb28b242c478113f5e40a8843827145b9e3d62919d3e4b61910b0fa10918471fd96a0d41c1175ab039e9b507058ac0221716eca07484c538c833a3e7cbb9e2be5073cdc8a2306615eb29e17f9a682e9d71de9a041e1dc96cdbd47d769e8de4f38596a5ff5dcd9ce7b1a7af29071ea7c6b32af5fd2740cb2090c900b95134917972c2937219d24a1c71fcdacf89aa1f9bb6c534f576a0bbeaf11ac45a87db528182e894a5296bd1d75f417ff7c406388e17d220edc72a6cb3836c803f7e499b671081ddaa0237c5bb547d284a8364d4d744c836142681e88b09b1368f328220386537ba4d3a407f13072394d4b2ed4b8f9e31e954bb9d01498dc81795919c89347292f3cba3c507fb3658eac1f19c87c2c36ff88c8eb963a98b4cce5f7f4636d83d98cee438969dfb52d3725abf3e4f919079301c0857c2144d83b0abbb90dadb4c51bdeedc7a2472d8fc4523330c96cfe498abb11b522863c9b5098067384488b37e7fd00dab22fd664f6bd91bd9b30456f83b607401dce5c175c07e35c7af43c2fb1e4bc868241af13a613fd0edb2ffc29c6561f2dab27be31f71a5fc59a29bec60ea1dfade0e6a65675181c4ae958250108ddc9a6053e1b74c7ba90b54e6c4f46159e4ba1bbaf4d00d9cd6e552880f1b06582fcb60f96827e3b0829a8e16306b5a7ad5fd951e7fab4dadcf0ca0ca6299f4d0f4788a136e7ff0059bdfe597371e67834001b29bcb33f34bd7fae585986b3c68d0cb48c300f72fd85885da2fcfa81bd751b0c6878940d53add37a50dd438483fe8856a30bd521ba513aa7ba322f2134ef2d7e11883168bf4b711594bba755abadfa3f20a09bf1f43498c0637ebcef18805715cd5b199434fba512bd16894fe81bb2a3ba303bc0d8436ef57c789267a2a3ba527ece296ba0db9e96969e953afa06aa117bd17ac99932a0d84ae222b38e9cd9a5d88a94fd29a981464bf5988ba520a8cc6682d1a7645066c8c2873163ab4d0c58ac32a57abc6d14bc3d3f231acf81099ef43e01cd3d392d011370909078282d0a0b85728e2ca5afc5a136808f15afed0bf2b3cc209626cb0f16ca575c8a7cb26b2ef068397f4ad473cb71a2d9245e9da96b593f6d8116c4e1e81fe1de000d4331f14f0e8551727cb6f14820db97650f0c8473cea51e2313ba5b0864745ef01b50c458c0e6b56022fbde5c4b710578235c872b6c6a184986d96750cbefa30f587e999066e8ea15b45bf9aa7717a51854428fc5beedddeb12191efa0f1563498e096fadfd67adcfe61b81559cf4ae9a5857e0860ae55af59f5ad083c2c88956f64d8cc231f7150e4e75060206ea824d1dfc70a056d2c41d01acb32a783961f3689e12f619c89afd18c878a030822f4a0a16ebb05c3c69a9dcdc9dc5ea2dc52f435427ac66378bf701aaba393cd92e31281f4cd6828a9ea4f613df309fad4ca49229936782c20a4b4007b10438b07a6a0efd9e2a8d2614dc9deaaa9a795e449049a9a56105656b7961799bb097594bb7d87630152d47e55d038236ca8b3135c5d1f373577c3379283a5319235b1634914d52d132488a938cd50fbffb908bc3a02a1bd3812d9fcd53c11471c1ab0a3b7feb5d0f3aa79f9c696b2c8e2718a7fe56b2cd2b592fa8699e32da2b4666d72119a2734a6cd0b382f14d06a17bfb5134a7a5c0f24e1b8abca3e1d60dd0d5c1ff21920f562c6c0a9742761080eb86d99fec7206f0e42cf0a77fa8be3bcfaf497e0d07bf392d5655684a6cbb16e15068d0ebf446267350da40946f900e728bbf56c37702333fc87fd580bd26214bc15f487ebbb642439705c2befaf9e3ce649e80757064c579199b862655790beba7df5a2d0d171a9f76f9e3a0dc48fb52cdaf1e0da5ce9d1c174711a9c08ffa551d793fe3b7098513a83b31f18d3bae84abfb375eab628d56c2d43469db26f8593eaa67f36afcff85c38e22c30d3f4b3edb25bc2459011d19d5273c47d3554c8ca47fd354f3b9050b031b7258e208a855836ac870212fd00bb77d5712a747413d04e088435e772279c4508ce75a25b512cd84140301c69edb440d3c885c54bf1360d5c9f4b859e0965276feccee9fd4d906289edb8d96890ec087761d03073aa050279e68a920505ae0c150ff1423d57768a1fe2c1532dbed67d2158437e80d8a67f422868ce0f33da919c586f809925ef22c7a2d8b9b40a302cea0f6914be5c0ed44b28b2c5b94301623fbaef1fb183d9868eea0a81d47d2e1c6efae16f85e1833b54bec0d20aab22b60466033f6d4bec7679c831da5d41577d4b0f7ba9d01dcb4b2996362bfaa15b6a4481a88229cc4b1e31fc7a88c534a3857adbec6a799ff441c6aa0b4def712dcedf88641038e18cc6eac02c656614e868b5f043e33af1f608476bb89a3480a5a948576c46c89ed450fbc5b8e833b1beb784145b2fd9fc5fa7579eebd30b1b0c99750e9bace3190b81841ee2ad10bd4fca6bae7fa34a8639ee85fed9262c54b97803cbaf75bb74b3180d3605b3bdd98e1e357b3a3ffbfd0a74407e336472cd2d0d974f0280946395c5098e8d433815df22bee4ab140c52b6de4f5c7c4ddc6564e2083a79079eed550c5850f18b09e04adaf39530440af00fbdd03b72bc52fe959fa2a8bf01004b9ab488847ab4b7c978447a871cf02066d26f28d4a61cf3e2e8d24cecf1ccc207bf62461c34e4ff4356cc5cc8c5c77af73aa74b34c4a5d18b61658fb8de50a1c92c2d993cba29101bf33aafd9a8c0172ea3c636a854b6653b7f14e0919b192ef37dae0c62046792b2656f3af65ebe20bed569f06a96bd0999fa5b5983af8998e11412ef63f96d2aa2ea3a7f9c11988b483d79f04a735feee6749bc42d04059148065765a0a5e7dc268998e17687487d99d0796a46e16d8d44dac2cbb8b413d120de2299c984f44e2c2e7d6d4b07debb90e6087fdc4a362bde1f6ff17eec9878cef5a5e1e606828fbb42c0c5aac52d2aba4d7aa7c20c5b1a3672e336fbbe87451f292a03d93e868c05be493fe6f850fd0c95382541783b1f926d5b4c0c5e08fecda6e52da08f176df7a74bbc03cf628a51c86eb62da9651ac20c7f8feec4d0b3e65cb288e77385b6f3fa213b132471c73704874fc49560702a109f8c2c14eb2d09dc67baa15f80f2149bf8060c4eef9d94229d9a0a2d7b9f177bc8890c18bc93802bc22c388843a248c0667ede9bc8011951eadca2eae8cc08e365427079c209b240489d43633b8a72507f8df04018cc4870b231130c54586a0397d79851128780634a1aa93742bad6304c414bc7f7ab9e1fa95c48d13914c4dfc9adf032115650dd7e22c3ebd831e3cf71b89c57ad4f7893ef0e0ef880dfc117262ae222b54404ebb3e688d831169a73cf5202b1b461f0c11c6731c0e59023b9f0faf161acfd7c51755a06aeb1a00bef5265f93c89a86ca49ff44aa7b16f586f6ad2e1626cac4d6cc8b4387c297b85e6c3b2e5b8f70ce39d7ac9baa41d286a97373bfb8bc4ce974edcd83fce5c5b3e0ababbf037bb208269d96751a708aed57ff970c6454b9c93d2e4773037a1238eb30000c3c81239b1a95f9124ebffe7d7ab6a3d821e6846d6e7aadb818b93820ee5ac75c8c6f82a353947d0fefe6c028bc5f97a9066bdad904b4881b09263247471dffdf78e347710cac62f27c97181e67d9e9d9c071a433f82fb0dc7d901a5b45a0cbd9c131b9c03b7ebaf2306d14fe3c5cfb6e78c78b36139a43d7eaba8e14fd4565f6cf6f0d9c4963e61e84873f1d202f9bac04121ff0dac4cd6aa2fb355ca3181fee80c51a358fa82b85e0b375629041f68b0414a5540e93c9ddb0c99e6fea1ca740e54f9dcc850d1e040550dd23da1a03a425ab76618eca15f0e55011c7a3e14698905ec6183f6bdbfa951b6cf1e7def1f4c12806e30dbe0d55f6a78f24d5a96841f84d96a8e4a4ff529a3b97d8f1b23649160761bba5e271c07e2d6f8b2857f0af322d734fecf103fc7887279c0dfde7ecd901dfa3df7b6f297033388803db58b386a14b876d6a4998da2cc29291b002139f616f8549c3b0cb41b0d3d509ae9a03f3f36e877032a9eb3fcf8855a07a644b2c03381b814391412731edc118310fd6e0732b1aec2e9e52b3fe23a70e1cf8ad0d6a55207babe937567b9e5a5beb3525abb840a1d5834b1758431e407f46e420ead7534eb8d04b82bc5f12b391d90134d71281ad1d4617305ed6a77328a9b2dc54dee0e637662b8b0be03edfdf5916465112628ff8659a6b9fe86d45990b35926a89a3ad2f637e4aaf153c55fe3637961e7506c358bcb222c1b23f3ec21bb0e78c84cc2af8b60f1f8e48242d1891e4c2e9a8de8e60360cd363b9326717a5b77b34ff65080f94444e49a0b35971265d66884fa4e182f2c79a597312c762dd0927252598be18b4524e511b85545b660a698d99c80cd65f2657346952164553e019c13b0372fff94e5dd1e5407a4c9e99042d1c1a3ae7940c346a83ae83a71bce1b0dac2cddb1a456d0aa7dec7bdd2bd932c9cf7bbdf1dd15b97ba0d8e67f23cc04df1dfe62ef4bdf9d8d9eb00c80faccc11f3ca7ca3b0714c6f7e813759c01e1c2f537ed12e29374bbb4f194c533888acf241817fe1923ff0f5224402d0f7f02a2ffe5a9774903708b4676b5a434cbc0b727f7a0bd2dfc65e6b86597acd5e8085d01df3c8adf7377ab4b9a54e06c8bab7ff6e1a16332b7cc4fa30a979a85b28cd905a79b4da223947b78c5b8ac331f75a3fe43c1f491ac702a85541e7f36b940197a82cf807baacad9462046997505bdfdb50989a591cb72fd40e1669bb9e01a33a91dd4738f9b008f205867d75a62aae695aed3feaf52c6124439dd3efb8fcb45e34cf9b39a8c14e69c17053548377f0b4cb1a836a9d29273abbc3ee4adc912f0937ca5a4e63d11f90dd8a0bb7aed2d7ef40176587bc411e7d010ffdc0ec9b4133ab0c8d65b8ce420304f8333c11e2552622b23a8317330d970e206e47100accb0f0b81b3ec5403fd6f8fdfa4bcc94c571b662bfd30023dd1c6c11869dcc51d764604a7242eb281bf5db316f90f2f982dbaa4a5df7bab952808f8f8de47fda61bcaaee884775918aadf96d1637d5a1edd13c45ca3e96764feb49e1dcdcd8c55fb3eb520e0540bb6e12b2d863c8a2bdf0eb59109d542b856e28a72a71fa76c58e59c2d17b9bb275597cecccbc7c6e413e598c6810db93e4d582440c61a5019d18e589f8bc1eada61fb39dae90ef17a4b1edf35334a93b5e68cd74600036d81058d4a606d1a0159ed5b51818b4da8aec6a3635d530e642c481135cb63b71ab0e8fe258509921e7ca179f306a0047a11b89a9b580a3d870c6bb56c81103b99abee1113ea4e1c321214a0dc0ad4896860f0972baa14f3a173d938115964725df06184928940af6e3b9a8a107d4658df5b3137bcd2c6b1813ea24b4641ddee5ef2cc43f6df81e7f86ca4d1569ae2a1de393ea95c32488a8f5b573745bd55da4a7edb45bf847a6245a89077560026cffec60649997b9ec2b7e0363a51e20fbaa87c81ca14b87260d92098e147ed358cd6979e39d7d404083f66a63943388fb506caa65d139f2871cdfdfe0903dd92f984423a049bb825d058f9ec382df1a0a1db48d637330581eb2f1a85c125f5883b3d173957742b401647fd86b91fae62c32ca9ef2d97a7147640bb0a5e0e0c39ecaac171dd7503eecdfdc55e2e0713d376e00ece39adfb8dfa582187f32ee4c2aded20df491e25e08161c4e720e27d0f794fac653c079f2c4a67589ebe449fc4085bc85db2ce34803cc0b4aee160ef77b725cb8b66b5047d0f8dc2e6824e46789b5dd38db6347aaf401d5b84227dd505239525af3482803c56d86da6c006dd0e28d2deaf5485d961e943a6ec328ac1a05a527aba980523501246ae21d16f95f2fe6b9b62eb17b5080c6757b7385ce9eed37f3104a57b54891ed126837a4efd1aab1e249dbae854de64d807d5028272853b0d6776b6696c015e14ddcabd52c890bfffa34edf2c586362e8e470fb3615a703fb375045ca4ac44df31a5c3bed3e8181016b2013ec987374044c2a0d01a1b67bb41245c287a8d5815a1ab8474587344af5144e34e6919d9bc5c87c80185a86eafd172af3d18fea0b8eb6b7ee4cdfc968307b3144993d4676534355789879a07e7ac4a02f3b0cdc73118f62168c29442e62114f089189e7c29086b62bb7678982ecaa3f8435228295afd742b455b1341dd02db1fc70c46b72b818a2b5a436421a713c8cbfa67ed5e3702f5f6db2325f116c969d7ebe39faa3d3c517d90559b731d13afa24530b33fc2c47646c1ecc8886b696100b0d9ca61a99f6375a45a4589d85c096a52ab5eda2c124e4117e91ec31d620cffda42fc399b3942716234af6b1932835e822d95f5a729d6fa99f89a488407ef9f14760334e14549c6131a019ad6cf5efce74d8aed7f2dcd331d359421bad3f3fe3a89279553ba406f029a13ce906f21d18e468b806755c78b22bf87060b94c12744f9d948b29ade73e36775c1cd6f90d2fdb940631e30817d24495029d89ebee97b030813e174ca48be159dca0dfcaf94e601da51dd455f500cd24d07a2001977e7f99dc345834c7f5bd9812f003b0d905f22c0ec156da4c58009b752b30185199091c2d6151c4200b310ed61100a001c460004d8eec9a6f693682fe6efc9116591dbc2b87b317a14c4d49364efbdf7de524a29939401bc0424042104455264a08016448727764565555596659149657b56b1a1a4323fe209201e27de18da985a6989ae8fd984132be597d71a1104d9299b289f18537308f90ed79739cd27676a3c29d2f5c7ec621ed001c2cb665466566658665a665c68d0d41e97a0e6a659a62eaa48f5b93ca2eb74e49c3721456429388e13ea5a28893c269e43ca9a26dd122a32544d951a30c63826036c63dcc3130689244f0081a0879e9a42aa4c07644288f8210829404c41537b506961264ed6de7bef92979b264c2634646b2c21b2f69473ce43bcdc3487806d43c8348987106b60f4478a882b444c9220f305955120d25973041024fa429317a0bcf043e2f2a1b2b0422f332f342fb52f258fda1a6b4508638cd3bc382e8529d898e59d19ca302b85f2a862465ab313fee17a185b39552d0f741dde91ab349165b2faba34c86c12a9245449ac9260611c2b4a438abb39e78cc5756960796926b5e3314192a18c2fc6186356968d710b30c080a4071635388896d4d492d8921cca78c9f8628c314653864373864353c4a5d1e1d2ec94b40d112e5f26949555e117c6188309c38129c3813943e2c11863bc84913418634c048a9be64fac0691a0f9fa78f072ca5f8f049ef47071d1d0c48797ca43042e38515ab7796badbd40ba6c6babe02de3ec615c615e61606164a430425f92727138901d97aca5064a941dbf659c73ce59cc15831213a4492d4c1b607928dba01f37cd5850962ea8a030f9e4f570620b524fd8994a0f2ba1fce268f05092d95293061321f7a109555659962b54a13dab8c092374c689353f55a99c73fd408b822073484913223dbccc105b551da053a555d3dcb6a2697b30a9e1154433427638d2e11f186309989902a407a035538240611de52a562239612e2b2e2c2e2d2eae4723846b2479f9563b952ad0da9e54ac7499356a43b9a2a715829923470096ecc088d85c538531ce517bb4f40e0e1cea96629143093038863872864cc5410337e4e454aacc9ce374f18631c61803ed00f1001901f2016a020465fbed07eb0ca9e511b9a76888ce909d213c438cac40c3c38a97529955500ab32b5496a5133adbb38a99d6ec4b0fe37f821e147cb842defa9c7306b373c1f05c30462e189fcf39e79c3549db683d24e7bc26e652a16436c40f1f506030e2880501d1c5f806321b1ba14d48e971d91d6a93060e4316c7ccfe98d552bfebd8711ead49da464f9d73ce3907c13a368c316e02aba6b99130c6788c8a1bb3e2c6b04818638c319a154b76c096541f324a6bbc4034575b8a53c94eb6460ae5dd1ec648f6a587f1af8db0e22a10618c2d0d1d2d3a73c0ba2de59654bd8125e689361e39ec78b9a2c64709a28ce009353a4272ce39e7dc85e3b8b7e1388ee37470b969be6032218cd261e85465a0119565f963d2f6acb2e3a2ed9b73ce390721c1ce964787c34895205df45b17668d54ad5a26260d26ca2d48d699c191a3858e265d7ec1891e3449db685dbb1bb82383871e2050410b0b62645e24d312fac85f7894e1a106d7a8815565d534b7aeeb3a3545fe84d54c2d292d2a90c612b08ac485e4850486448644c8822118b5856816e9e8dc7bef4dc24ad24ae24af24a024b22cb27ac49da464f3da3b163c8661e6076ee3a6ce4ab1322374d27b3cd094d3ba9919e0c0a2ab4cd1823d63831e403402c0879099450235f73ce39e7dcc1d04282c5690b20cc255c4be8f0c052028928283b7e35f9feedbf9d56d906a74176fa8751aa00a6ef9eb1205870a2477bc682d8a99b562e369486c422878d05b163d7af513370147bc686c6ec70cfd8d0d016f7d79ec30d609a1461f1c1dab2420a056493fa346190378b3a341e9f19eb01caa61dd833c64398ede5b0524ac3bce5ad6e4abf0335f8bc2705b06bedeafe5eba7e98fcf93bda9e1e7e060e7eb5d651fd4623ee1b81b8ce0decb65eaa23f9394ee5507cd371ae008109982704ec0a63cf17df74d59ccbaa39566bd0babe71dc462b64854a18788996b7bce58c91ad50cdf152e95f0be5bf7fdf598e33b7bffbdc9c47fdfdf442d17707e1c63f0ab76fb204df3736ea06bf6ebabdea1fb7ddd8a8bb7edd752439b0c3af397fa83ffc3e9cedf04795c7f739953fc432b4f51ebd87e20b45bb5be0d01fa86bad9fc370fc2c86f941d046985584e0f7c12879a98213347ef741f12ec2e8f57b8af77717c247b1c34fe181fe507ff89e7fe1eb0f5f24471bd8c1f7e167d0c668248dd54fd8dd9324f7f1927f283a2b064d37794b97fd9bf28b42ddc007d40fdfb3f92cde5f01daa81f8e2fbc44a797f0f7b5fe97c75b31f0121521fcfc9ec10e680a43fb7bc0f7d9463812cabf6213c0cebfe98c438f1effe664fd50b4bb821d8cf6e83d2d7e3c64d993cc9e312cb3edb1f85ae8d024dda4af458eaf850e2dc28bf0c2c50debf6a8570fc912b68dc8ed9188f375e174bab0a16f50dc3209804d3a8b246591fc6093374e56ac978582fe0eb12b617e88a8a1e68c67bd20b5f76f9036beefa006f8defb6d74488e0efe1d8fc2a3933b2ba5dbb47f8364afbd3809555344101122f06ef0717777f7a7fe1efa3809ab3a8b5267a313b6183c6f6429a594d2ea042c028bf03ba13dff30768097aad7bd15bb171be3223dbd148ea4dd3836e6676b0fc3dfea934a9e58e29e44d2ba015e2a42db3a1da71be777d381def9f59e769c345bf3bcb00706fbb4dee6a6411b987e3d0ae9bf60210657508dc65ef759ecbe724fd25dbd310bcd18de3b134dba2047acedcd19c31bb72c944115da601b3f2f4d40a36a3c6ffaa42e25ecb1757bf14fb221d9bcd09bfda46cb684512afd8b7f018314f6e88f6afa9b7bd8a34912fd6dd351451299ac5671ce1c34b9e970f3bd6e25dc7833c79bec282718a07b84fa44b93dff14b79184417eb9411d49ba6f3ad0bbbe266fdc5a27b06b7de2dd11e8f933d3520f913339e77ce5554d73ebba7c6b18e3fcf55011b3e4c8179f1c4892a8686dc6a9eaacf2820fd7e3818f265ae0b1e3091244a89002131edf91bdad42054a3744193b41991eb22c546557742564b567955613ba125b3c414eea8f35370593191682d27cce394751b969aea2b034c9062f2bcb8becd018cec450d444875471b9710eeaa345c10a40a6a85c70dcd0a52e52ce394f2a2fd6ce79686b9bac49da46eb9c5d39e712b89a08b265cc95165240651f3b5fa11e08a26f8f0345babdcc79a038f7a6a3c35976793c53467e7f0f8529637b7faf079db193411bdf832349f73756228e03252c58bc7f5844939a4576d51ccfcb34dca4176e32bb44df9d28a6eab7e93491de10a73306fd94e3384eb1c22988e24d18a4e7dafe5e9d9b8efbd722b7abed75d269c2740f697744931507256d110b84acb5af63759fd119dc9e4fc1aaebb442c56787ae342f79ad39cd856bbf09400f4065d0d1ed8cf18edd47776bad7d6b33bd38941e0a91a2be647a92007b56b04904ec17c4896359b3541f05e5608a47bfee6e44455688dc6040647404f0026964966c720b22b756773368c3734631bd7463858acf9e56a614ed4d045d0495a016d44f218267dc4d2458b4eb7bd3bff066117f474b1d1d2f81bbbea7fa78be7088fbf8a53ed5ec6e783b2cd21d76dad3ba236f643a699b8e22e4e7ba2ddcead6f9d06a4ef8e3a64a86e5ae61ac46376e7b292fd1cf22a5370cdfdb44d24e4ae9b655f76e53b9f768cb5ad97b29ce59e4b8cf2c2f553a52a7d4a9d31f7923d15aeaeedb53d18e9b117d7d429003df206dc6a07f1366719c4a4398e3e4a190a87e380bcbd40fcf84b19a5351200b6c390ef9d5c0156804f4a90f36a91f8640405a57fb8a5a8028443a7340d85752f14bd14fa7db740442e3f0b53100cbc0292512e7fe993170b56940fa7863c6f6e8e9531bdb6fab1740f46fef411056431056411848036720f64193e00fd1ae0ffe74b08dfab7d50d8126b7d5eadb3e9b27419a8ba091cff95389167f08c2c84d8bab4cc1fb9c48de98348faa668cfa9be318d9d9f537d996c5734495cf995dc3d7ae7563bd7615b2a74479b2c92d6857a721cc71c84f25731c12a4852fc79953a2e8ecfae18fe3e85dcb6c328cedbac226c3a05d9faa3e1e90e638332684ceae0f9e711cea63a7bed4b63a5d503a3d65edfa05d9f5c9baaddc34e99cf1a9a605f563dbff4b51f12b5d3a3ff9953b8f4a50bc3b8aff743c07c5d7ff4a14e2c7e3a65a7e293a7eaa9bede7a7ea7104e9c5f848685aff3fd5944181d07593e0c781b429c3770542fb2641da08d4895d85d04fc7ada3eb6a4b79a9da6d67d71f2fcdbddaf5b795e3904f6c3aa630a355ec0964c4ceae942c954665e80628c2b317e78debb6e93e67ce1aaa2a7b71deb83cdde7ac51179d39cb87ecc579c3d37de27ca7fb9cd98b2dbed6de7a6bd6a7fbb43e84a65fddddeb749f2e0b9eec147bc67e50a1823d6359726cbd67cc87250830b44317623f6cd13603d833f6832bf6838e4dea978196db05aac97f0313a8c00711c8a0015eba5fbf9eecfd3b7e3511d91978154df841c36ccd902a30dc404379911a3f8e603142c3210a10ca5726946b621002b2e5081242542214c821488e196af8b28507e543724c68814a141f50f8a1468b1a54cfd6d2820df9123b2108947f041ca7f2006911f203882d1d388107e542386092e242c4870f69d4d420dbfd2ed180dd22f8697b9d6a3bf530188a6321c7aeed58b61d77d98e5fdb716cfb573a27a5e1114d2f2d3aa229a57542715d58cdb1dba63589f45f2a9d4e17f6c1f7b7b42ecc9cebbd6f79c164d857b664fbcf765b7a735f2b3307bb78d88e615b2e6bc6f0ebc2ddb265b8424bb67fabb5ddafebbef04f695335677bff9b6e24a10b2a5a02c5015b04e5c4be09a80fbcf196d5e4b713511c9a5b12dd72caa0a422da9d62dc04bbbc845b2dec721c2e9668fb942b58b63f6e82a1d019147b49bc31d8be41db7f1352e256cdb1565bd8f6eb38d68319665b0bab3977ca34f9e720eb2188ed4fda21d88cc14393b8b5dd1fb78ace6cdcc22d5aeb54364954b036fd6ebecf9b7967e857c6a37da9cf8857fb7436fd6fbafbb669fd5f2a9d4ed9a66a4ead5513fd0b2e389d4aa92791e80f75f1129da86ff4917cea7967367dfccd400ddcddef0ddf4192b4c1ef47e2e71bf867ee1d7b435ea2f97e58a41e919774d0a437746bcd963567a23a30badba46579b31983da1f2fd1b7b0d4969a32c2a7f8bdeee7c4f96680bff9e718fe200066896cb1ddbe477ab103b0f188016abd21af0bd1053d9862b68f4a46efbd36d535473f05a143e9714b55d30c9a566fe6cd54b092d0f7fcb62e14fa5787da227a9b6c7a539b5e9e4dbf3a9d15780ef7130133fc6701ea688be646edcb858a00992f1436bd2dee3b6a2fccceaa69482c81fbcefbefe79c734e7d47d03df739f73d056f7c0cc1fb6fb4b33b54c2f75df8e0d35bd69cf04be8fe7b5a02f8e1d3a710081f04e1fbee43f8c654082138aae857d0d67e346967b49ac33df59ea2ec50cd21f2bea19ad3dd7ce03d099b846e9ce3b4374c191fd855a24c1c29d3bee80c0b855a409fda249bfe0e9bbe8739f03d02cd77f31a8e9037de76685b53edd815143aa3884d9f524ac96c0a65535b731cf2ab7fd884ec210fcf4e9a811a184cd87697cd2cdbdfd2396746c1c194222fcdfd3f65d4c74b739b660e264b78fcdf23af220633c602a6c93f08e86b8e02480bc05dc70b660c7f4ad3942aa1eb5f7081ffa558cd6867b433da49019b5e6a4eefe5c53c1ecfe5fd782beca5b64d6b12e9bf543a9da614d54a7a12b9752806b478d2f371f1a467e4c65f6f24fda49bd2bb184977b518671be93940858a584039a9bfb5cfa0e96750370bccd9c6a3081604010df8711514e9feb86e52b0b3117d771b78f8cbaeeccaaeeccaaeecba5ea783d6a0fe661fe3bf3167fbbddf4672cef0c9dff35cd5e4371020b9106f20c08284169e0bd159d5e442bc09c1c5dffccde8b06af2957813428b77f12e469755937f8bd159d5e4fee2d268d24be56ac3759eca713e1b2b7e8291a47bc56823fab611e9fe44252db2abe6b4187d8a6f915d75a8139d5a401f145d61b8c314db66b63926565bc553970dda7666715f9ca80be2572166d7477e9b8a1345c5fb2c36721b6f5c2d4c768099f3baffbe0e0c9274a834cef605b5746848020000b316000028100a860342912c0b831416c6071480095c82445c46361c8d460351281c0a8481300c444100c3010c053010c3300c55d29c9804002e007bc2cb977b834d0389c0ffabb40faa0a5152511d4efcb8d7d4c3bdcc95551a58392ab241ff22a7adf51a73c4b7397b502a82aadc802095e97b01a530339c910fe8e4bed30359c36afa047e1087d454115cb222199f16e246102d6c4ba42f5f588f802993e64a5b5028884436cd5ea349b3a93d149ce6b9f704a84ac221a8e7a9ff7eea3c22e2a828a4fc15f1bb3fd04b92542cc40c59a788b12960a502529097320e4b8fa5bed3639bd34951a496e572f32a42cb927cbf4d9a86dde830bfea6bf781f4afdaf7569f31ed6e2051d3331cac19c7c5843d36188c6c55567716427c8125f047d8572ea898651a18503bf91d27d5fa3cb888d7c027a2650c801d3ebfdda2fce66d835abda03b48c4e3cb26840669ab3d3771436bff4df3943aa4276260b98a1ace4cad9f3e907d8e57b2aaeb33e3108999eb012a0190ef263f6eef390298e3186b9e2bc1675c10a7a82d64458ad167a411afe00669e3e5589575bb93cd0dc682afac1750dfc4836a29fae9e3b179e90ecd6fb7ade24cb66df57820b838f3b81f16a0f67853584791e447b9ed9387ffb7aa6f96e7583f08e293f37566299a0c40728f6e558ca2487f77a5fcf8bb27baab2e84ab038899fd2799fe37c5cf141498de8c2ea153eaf307c685ee06dd98f2e350ffd1fbf031292377bf71710bcbddbc1240a2a61009067cfbc3e487fd36dcfc159c67637402a20ffc1261c31c44236ea694bbe4ddcfd88451513f10798164a5de511db05b85d2fbb3878c1bce518953801da96b69c46935c9a3cf3c620e9f3cdb93f4ddbeac0060813e9a4e143723605b73c1d4612c43cd7008032a1cc0fb99c330b230bcde43aa012bd5a960fc8349819c382a50813aefbbfc4d011c93f7d07ec13c81abb57d151495de36ad973249274f354ec1fc36260876591dd301cf0f6e66576add1d71be65cab7f959bba5cebbf5bb4468b002cd873f34b19ecdcc5de0186433fd7a000a267a4819972c3e58ceb00bdd64c2943386135853d237ff72a3d33c90c3d96f1623d663a8b9eaf9da4ff4f836f805d9797ddb2f74dfa33861ce5c5f648e34ae93d19d47dca69110ab912adb06badec8dfd989251517922e7549cd1bb622d38265a30772e76e420245f645fb90d9eab05f6a3a61bc75344ee11d3b9a764c5f726c33ba64b369c3affacb9d9122087d5f354ae2662490c54413d8252b5dcee3b1bc14f0d4a0f63800caded49ed2dee1089f181d152abbc5673a8de6dad2551cc3e3c89469c3159dcc3930fb70b224f76c69bfeb32e4260f86c805f2d4923cb21fdd7b0a3393b1cc5ac80064f5049dccb2314a6f28bf7bb85661f4975682a6add40681375f52932b25ad02e32d5ee0507c7953d2d185f90447e2bfd82fc355d1d9d06d5cb50906c16a7933a512387ba2db388a5189a56b599b0e0e749b95c1f9c950711c556749a650677a788cc0ee48896d5bd489e204a355438883a893de390750768c124b61b25fa5861b4ace3b9595e230fcaeb3951a77b33b7f3efbebed574c618101ea50031d31a20bba14521cb7a8a3c61ae88460204cd5f51a57eb32bce7d6256937ad390359893e5c7abe404cf0f4cc9e0d2923b7280c7431dbe7e286a27fe3b899800147c96f42e58043839b1d6f7e132cde5a101336e8bbbd5677c0ccc3fbf5471c932cc16930baa1078145fa01635b4f0758ff437f9e41f61611bf9647e4e69c3ec680c020a0d58b96e644f5348741ba82a239555ff33a6d8aac96c2c10f4a1efc2b011b3e403510958acc5e70890b6b2bc72b9a6b592f20a1c7b7e7e94e9e94d46ded576641d4c7b5de17d44ee2cb803c97d4cd57756a2335d89f1a57aa16b80ed1acf5d0679618a1eae3d57a50391e525d9a1059200ab195e6b0e1aab38a4f0bb661878ae28388f1b5c6a92a01a51dab1a821868e5e571e60499fadba4cd754713659e2ad30ddbac000a11f1cd4295f069bf2f6c5f98548702e62724c92cb10974a4298400098fd11123a44fe9eb1ed77832bbf74ef342303e4bc739ba16a86362731b39ce7ff4119d03e60d7f43e2c362a185d37bfdca66a2665610b1ee55afa921fed16783f2940a17be48d2c135e14c864dc80b60761263b825fadf9db4f41e49759d7babb796e584e1bbe2a8ee0bf1b1d684b5e3d0b9dd9d5676b893b98308b01657b9e46710a0b734881a3a95a6cfd6b2746cc1f7ad101ac6eee65e359642f2ff96a7e0d3a6a98dc7c5183475307ff5f0928a4763dd857fd2c917f4fe43b7d9571625d9ea5ed5089df79e7f00dc70352e2c613d3e70a556a6807217391054ab6ee9f47d6d3574154defff01dd5a5587a7a5bd57d6358a6a23fb7e0a43c89537a26347c2872c0afae164568b64c3c938e5b88066c15c1466e6906d446efcdc717eace394cf75bc710c8cc6c884d100261c4ae5e4ba7669eac7957097d63708df715b3788db580a82d7dcec6423030698f685215fbe747473b33d3d07a12ff0e177b50620125ac54aba12b2be695d99c2a85caaee6be36a211c448aff841880a839e8d8a4632d8b07e2ad01ba0d01cbe023c87fcfa959857d0a12bc0d963521233f5118e7fd57cdb3dc4b6f5c394e3f9f8f303870c30cb04ec81e9983ad03be8476afbd47743034da4da7a47d523ee8c0620418181fc3d9ededdda6b8cf30c0c71baccc41d5e755393e0d221270ae7c79b8023847ad870c80396e7de4dafbe7d8265a05e01ab6c910249eb2911f01a03326f00746aa0a19f8d663355a09dc1fe51a2ca84f6926906672e38f0ff043748ee17f25b974c469f5d21e710128c610cec9d48c89861d9d01e345b5e59592beb5d600ea181aa7eb3a91fc20a9b5875c26e2eda788937a85b1fc16755876bb6a2a7a9b04dbaa360c65d6eb9ee18cac3ca673e186faab8eab82c0cf5f3bc6d5c9149b97ba6d6bd20763cd4ba4b551c33b820cca2e5b61698777a900017157307dc0a2547b403db2ec8e117f34cf80b4800485a241e9c9696b56d407fb5fef823f19991942050dfd7f503cd7a98b4427141472106de445a2e68c0b2684333687362fc85289447fbbb67b7278975a0a70c1f726502a15c940d944846752f9c20388e28c9f50e5b1a930b1c8b6e430097b6113f61ab67cb3164d6f45f8ab6aa2c4a22e4855b5e543bb4dee3152328804c6ff4f3d32accf20f515a15b4787daae4c6d423c9b3d3bf59f0a9dd479eb2d6d1de8dd4ea8fd2c7791a8aa54b028dfaa49706165b60af262e544c70bcbc7923d58b3770aeee62dcaa7188aec015cea12573aa6a5cde3956a930a4b642a57067c4fc00e04f199f9513390037dc19c5d8e4d1dc54306a37bfb5a1afe54192d7f32ae68069d67ed2f2bd607c83512375d61a3f382883343d64a5fbac53d14d1ff06c9c1fe57af31e450d5419bc00c596a78ec8b950e4040d6933b46a8b6497c616a5ee859519e4a60e36268a13308baf9ab1684cf26a3a51941f5f3b23f1c2058c94c72ca5afab39e853f1752dff21f5ccaf0267afd01d80c5c34d507f3ed70784c2ffa95a74cbda30e0609d960ad6ec97e8a83cec05042d0ef2ae66c38763ec3d27175b330137866aa2047d22dd08078e793498c260217245324c41074b78913a6f5a61b14aa0fed74aa986fa2174a96f3728b28939e87c12561cc8f1ca4cce17d4c7408cd6a9303aaab73f62eab489582225b286b3a686559753c930e63e596e66205dce55aa81020ae4184caf54dc7e5750bc891c58289485ba572a98a1ec2219fe7a1e3eedf5df20a4b46031b0307343f4a64278edcdbaa5a11f4ac05442b7fea26a46e7be081842e9ed7fb1dd8375cf907d7264f51540f85b82dd10df1236cd0e6bdca6620afd8fc6c1c1eec57533c4950e1368c8d881ed8570e5eeaf6b920cf3ea3f3acf21cdbc849a0b107c06f0b2eb8b45e471b3a31aed54eb72556294405b2a1233054205d870a0ad7080da87de8415b016247cd51900d1a7d5e01a30f546c289b1e98e986a6fe06e53980295db84e975c06e5124c0eee881db83e1e530a965dcb41b859af142c110a8f9754cf1657a65bd0f11099a4f85ec69b1c26ddb9f6de295634b4401c1178ac28fe498641109f7d56e41824822cd462b6e57394a6e7ad99f9c067c41116f59516cf9e0fd73c1248a82a07f829b91e3aff1c08f0ee026a715db17607ab029a6b959508b77dbefac07b387c0428497e0f6a934895ab853e8c090a71e865728f3b9776d0e369bbb3c7eeeea1d7c7306e38b04d3c4b80838a88717e17c7c75900a47b89f50163b6ca9a30b0c787409c8702e74e1db9f7394996454f892a9f76471406349a28ee628449d1d1034c26433250d09c145fdc746fc3468e31c5d034601b1c8d947d4d208e6bdbc18c4b881f59e79d6808e7afb824de94582b57f2bdfaf39812c1feea9189c2b51c3a98de934a8a1d7ec5d60e3ac93fbaa86f4a51844c61ad35e86f756065e6501a7d6645e0ee75a8029872c81d1b7445debcd2e9e6f7ebf5974a5e6900ca348fde182a03ab85196476f6c3ddfc96fa94a9c5669121da417d49073129093a11502bccc6092722920a389d198ce8e5daf5af63dcfc5158887743f7db4ef013501845368e3d739738f7db0a57a291c890b951837e8e1860b4a12ae334a30f0a153c8f12ae4a69c6c2fc3f72c5fc3f5e3f1eff37f1b1af960d2289c91de6b9c9bd6c6818a5db547baed01260d2f4bf9e8380ff50dd63c8757547effc81a61b3d7dff152a7f5416026cea05de2cfcc30298855d570187605b6c6451541a7df40b56624b25465fc85e28701fb73d00d568fb2374941334ad024ee50f853e10060102884831f2d066b15a35ed419ef3e1fa16207fdc06a9a7d2065dccce598841edc43e70f9f2f2630dd198e52814bed723174774d28289a97413b77308d4aa7918ec264b99a3e3a58491daea2e71fd35776281e8d02f4b6766f243058fb10b75770fdffbea2165f72aabc59fb571a57d80ef5bf87545394e50cefb3d952cf1a36047947f807d0eebb666e1135c6d37debec11a6d66237e873d6fd80fa5298d8e98db09d820a3054bb0a2e96efa48521202e92568bfa2ef7a87ebae2046e931c3cc2705649356a4f23b4f07ce1c264c15a0ed318554efa0cede1ba862deed791218fc6ae687ff7bb0ca86512a7d2504a5749e6e8fce2032977d0c17c1884b3eb81b76ea846b8540bb6b36663dc52ccd74f40135f52ffe649a212f80dd6855e1b1709dbdb87c1899d018393e222a6cc57e55b0d6347106bfd7d943e88240ef8b4efab46b597b8c8634b96be1ba26ad8bd22b540deab4970010df7adb4f696d87d8f727b60ff58b0f2ef2936c30e91d2b4cb63aa759a0b99d4e58784468c371dda622ea174c7d73b49aaf5d4a25a91e46db61a2b5ba3439164badd854ac09e023ce4f816bfd24e9d424e50dbd793af6966fb06945ab18716dd5d34760c0fb574b85a027a8f674e9fe86c57a902c109f9da8b6f71b3b7242dbd333ef9db2ce574db97f07d4573ac724569242d5d0f73b6416f01bc116f91adcabe47768a826a5ba71964eb431734a16c3cab48b2285ab18cae9d0c16e2b8893306d2cb47694109f3aa9f5fcef6f5d20ae0bf837774b659b74f9ee329e4d417084e6ea217b1d0e01c141ffd58197872e26ef45e218b91bd3a867561434867958a375b026ff41af3d0052b5b604bea56aee67897f8e679f674a12a7742363290a928ffe2107a2e8c7a09c40ad9ec8fad97e4a2230e08110cca72e08c88bfda641c216dce13afd066990f66b1d55f0fe05e7423b1cffd78c24b1005b6dac01864e33c8305f1ca811c089184e80b818b54e4cbbc05210b9c54142939c7a63045d312868cf373ee41dbc7fa9a89f30ba368849924ba36b0f1f3869a33b1f79a53757e415190db1fab77352d6dd34a9b48ca6131054072bf1095381685824da37bc575824ac4963ff39a0088bc41ad2c92dca77f7fa91b7f9e59d9909b9b5f4c7fca84b5905cc495a8c3b624e909e9b2bb026a56c8a93e6caa76b5ef98147e68226c5a7ef8c095377bf0531eaf893a05cc0694b2cdaf5b2471b6f25b1b47be5766189a46db605ffb371d849f5e2f7916e78a2cf9c1c91c85a1efdec06a8531fd7b102db90f2df947f691dc8383f11535589e2874ce02d13a1b08d5257c924c3c9b9cc686b68be66d7c0cb3fbbdeb2d16dcd65aa149edc607a2bce8d4697b83c1237094ac7670808190b3c3a2120ea2b645c84c4315f89fe0a2564ad306536c7b9fc4a4a04c81ebed29258a0343ae83e4927e8014b548e9f2528aa39510c5c8b2b4b56c1fb61c6094bd0a9ad9d0b741c56715dd204d2875c6081e4fb926805f0e51fcc5f03c1f99c1b110f342bab3e072d4dfe49b6dfc820668a46ad2f0286ddf9cbf21895931d5b92867d3248e9352403820c42300ca1319d5cf024eb4bfbf870c79465f9f84c8ca07bad2c6db44885f2332e13803cdcb9b31a840a0987417819cd79200ce3af6f9840cb0092d8e14e743ac14624121de7d8289d144673b833930e418677131074a626fddcd61f035e230ffa2eb273a753f59626e9263790717d4007a1d1a6d58d81a4f27e5305f53786722e2382c135134864b5fed04653f071d422a72d19ee5cdba02ff67433a2e748fd30354f6c423a2a4f29066934ea15f60422b159cb326939b62d373005a52e2ddfdaaa19f6fc923c3bcc701f1e8ea595c44a7791b68ae3a5cd986b92d9da841a802a506bd087fd9b7f73aab877fb20b5d1c77076039e39de669ce87cb506fde59afd30679e671df90d405eb0e3682aa5930c4f7e31b4f72eec2e3ff82b69a3a58b703151f6bf2f346b1c63c5fe5d68bea80bf9eedb6e30c295ba88b9832cde7e6421833e882320eba3f01be268f363d1b60a0e08a671d5d51d1a28718764356be0627dce8219c07dbcc16e4911e8e9237022533f5dc0a94f35d083db3a52ffc2fb93d88c80c91a98c632e62114d09089f7855cb59daa1b36794adc14110872e875185f6b40eae9073876d18a57315042f4e4742991eafc3298cbbd75829a883436e706158374109fda43daac23a7ff0481dfa3a3fa126e1b2616f48b084f0d7e73c25d2834f3855c93cdd8d68ce561109ba216e3566ab758009efadaa48c67066cbb6454146425aec586b504c58b97f08a362d8e2b0ce24302ec125d0da2c415923a31ee8151fb56bd149d0ba67fb49c9f03207d18ce83b309b8dc302d224d83a49005f167ea3c0e0c0043b6a9703dd9386ba63e674e950d2420b292213700d78ec04c7fb345a64f12c22fbf58b8da9e0047b466718292213ef430685f18b4794199ed98939c4c1d670835b338d63941e769905134bb2ccc7f75241d209c3ca08c903efb994e7a4d4c729c2e74ff07cd720ba68cd006e126f91269f28cc53080ed47a97b33591b01693558b21276d1a4687c5c80be9e50f4e69ece5063930c023b6d90a9d78807b364383c728e18749b8bde8c31b34d80e4a684e7e0828bd4acfd806911671b0a8172ce296814d9f62c9d3a6a426d4af6d6bcaa93610c7cfbced2e7c54edaaaadb8dade71ffecd876ad8345e06cd3de00f58f8c9844ce0df2bc0324a64da4b0d38ea22be8316a6842ca8e1495a80b945b9b6293ee66af390249a72db259e2f1fabf370ceac2630b2480a41caf8114eb3556a11a43839ee1bc3ef8d16d438edf01b20aaeaeb92abc11bdac839c88d6afd1c6b507fa34b8341bb01477743ebbd08ef94c5a4fe9d492989da830a490e8827ab93e660b954896a1f6837aa978836066d05d188f1333ce18ef3faa475a6ad85c46caf709ee522ba5c36b4f6e63a34cd11a47d76a3a6aa656744b16026961dcbc0918ac47abd3b61cc37875533a9d21f1f67c201a7d3048d0f6d761b3e9cae7384fd12a10ced933d5971057f18ebc878ee35bb3305a42879b912a8cee8eb0331f31b2dc0dac0af1ce13a913303bce416915c1ee258ff32ae7fd06c56c328d10c68e45fccbb1a21659b4b5e465a8b5caee0be3ccb63564d0588052501cde4c236c53307d2176300cf46066a1da57e4de5dd1e3274be0e093ae3fe54249108e654ad3a569b5e2a71918f0bc46d22e2ede904fedba84faa3fa856afd19edc23568ee9484520a6a3d0f4896f8e831a9353ce2d5007a93e6b20eb4bf408a36125ee1d0a94c61604088beee9b45693051a5afc688297fe6137d175feaaee9862950f8242c75a296427d04665014c7c462fed193ccc706aa960a90c959af86df8dacb088b4377f349774993e770e478049a79af0144b23934511eb1989bf31253163bd64a6eb7d70da95469862a315eab91ec7954a86d88a550db573a40abbad262fb78baebf195074d21d1a79a6a5836e1f2b0d5d650bed561ec3bb40fb4045e9b7ab5ac98b90ca10491eadb8fb8883127c17c5be6151f73addf6c5c3b1829c4ad05a3d89f347ea9451363c61a31334f74881d2719852e3e82c8e1cb130e9058b62750d6080ede71ae59dc859d34afba63ec68930e915d2d30ce36b602b1893a5958c3faa797feaef173810ea13f9faff5efff498e470dfb112cafeaebc780a9b200683f36921d94922598fdab0653e731272a4c638c94bacb7c06a32a990e8064f74332920ce458826fefde8fcece307a46db527be07628aa49f16b1f6c5c09a7fbefc2605e100685f1bf7c87847985db47328f41720d5611a634159a46875384281662be628717e841d03e10950215dd89304bc2bb2e44dee0191fb3fe4e36b6f077d6c959c468c95ebe462d9a2b4bec887b91d41af40a6844deba7fe918e82ccf37f9294e89c50d9eab8f698f48428bf6fdea484812e5ad22c23ecd7421338e523ecbea4541e89526f199b62717570ebd6f59f4b4efab57b019c8208ffabd7a8193b1956ff9088e7a74ef74944846e5a04bd9c03c38da52fba9ae88a9d29868d5cc960821b910db878b172f1f9e3d5262adccf8d5f2f788a73b7dc0f681e9bd62a237874bc4691014f5dd93ccc4b361d21b4d84f1b9da1807e32e94ee81466492e0542430c88453aed76c76813040a7c53813237d5eef617c7395d134f90493829602c95971df55b2ea554b0ac697454d09a338fd5065f15ac16af9a3cd5e0a9364f3578d5e45d2d1eb579abc5534d9e6c8dc7b306af3fb68ef7db4ce9e6890ead95670dde35e45d83678dbc6be0592bcf1abc6bcab3064f5de3e359132f93bdc73b60e778712c68ea47a93d80a8899c5892496665303d22da7edd345595119601b979cd1824cbccc855b7c58b8d3d5da9f8670dbbbd70496cdb37294df9e49b3867bbd200c23a45428d2fb6b6a98a10d91d448f36f44a717c680e087daadb023da35c2be51f78200a68c8cd121dc32cc2651c16d55e220fb326f8c61d3012eac63c570250eca8c6b9c9e4cb8fbce7a5f3c07e7634dd433bc2675d10c5fc5e1ccdc717ee028d01e3c1617680c35659c574002e408b2752300589ac4414cafe828b8e8c7414cfae4dd494556febee81cabaea515e32b1e35805a40bf07ddeacd004e11330d6c7c9a49c6c4706bfdc31e403fe5398ca32c06605fbc9695b05f8e6f67cf3d8e1be613bbcbc234bec9c4061092ae7e4d778d5827e32ffe1fe4523ca8fcd7ed55f1f134ff6e6b6f687f6aaf6d898a2b0ff7d1ff6f910fa8ae9ce6e85522bd7e7c2363fde51031b3595023189297c981212acd3eda971cca2de2fec59684afd0b71570ef9453aa61ded8f51794636670efdfbadc5cd5422e47ebfda3082d06d91c3cc9f379e8860fe7882c67a3404d6e0194cd5ed502a207117e6e78bae23c366e01d0e91286684ed6a8c28ac0fdcbddecd01f8bdffaf9fc369246006d853d2935821061bfd66ad9be68039d588bf466b721bbd1500e226c006a0469ec375e3525be193ef506040132406fb49e4d6910143e2e586e461cccc501b45c2d311bcfaeccf1b63e40f8d6a634ef51aee0f37c73935b2d3295299c8ad786a3bd6ca261c77fd5b7b421db3d7ecb6eb840376f0261c9502d2e21b9f34e61844c0e8845a3b4ae229be924e3146655de6ad1108e995244326d7ad60d2b49fa9960c87e6b8e2794f6236a5f265ec651770d5cc9706e389a579642d0b7f624da95bda06c3c255333d2ff2c761017b6d978e1a10b2339259e229a003f8fccec5b594f25b4d41de4a02e1ee4c6ce725526e923f132689633c8a64c68fff2f8c69b5e292fc45ed41930e5288fc452b0e2f62ab851514a35e5a0aaa47f8c12e4c16e3244ca7687eb93b6e86b7768e38aee05bbd221aa08f17d91999950165a5a2c8bbb2e710518cfc9782b421784f77352efa4c7cf104258f089e2e78c16985ac06b86ce360c70b5b0f580aaac9507e8fc8a532dfd884dd1c457b4a92089c423d363384c63b4a724c915897e4ec4816745ed323c321b3f9af83945ce8adc2b37e8d2e9fba4c3f67fa34996eb09c45206e4c002f4ac9fcb203d43d1d80a055ef43fce41fa3a71b94715fe04d4dd150054424d90b87e45a3b658630318a2abb21f66b9fe2b9d75065c46582fecdfbbcad57a4b579c1c1cadc012874191731e0a78cae9b7d2fafc56f0241f2968ca5580ed3f1679eba1cfd8100b234ca9dc78be7e3d198f40bb05c4debbad77a5a504a61076e4dbef1b16903829bacda66ba887cd8d407e64951cd0e70abf372b60514c2ccad433dba3841d4a9a75e166480c672ca6d82f05750b5304c92e4c6d8a52c9bec2cc7d3951490881dccce8a6e1074b0814e2cf040805d65dd0ae31b442a98596fff7401b7746a1ed43613e22848e04566c82cea3631f991e32a9fffcb63ab92cbfa2615d29423b1dc2b296840a46ca4253644ab8348b831730f35333fcdc24ae7d0373f1f2f2ead41074cc5a3d06d5b54610f911b2b8fe4aa4112c66115a1a023b5079bbfdc6060d4cc565377401e438b5e1715368d8dfd32eb32706ba6d4c1886a21674936758e62ba996924deac882f033df12aebf6ab92ce9e8006ee0787e746208dcec7dea56341cb0bc2a6f06c36c900ec2181f311097487c6e7dae19dc35a385198575559f00e90cb183a2ff2974ce8ada8244a3bab4a31d7835646f50923468b1fed3f647ac39656145c5b498a85e4f8e374b3591cf3064940ec41382e781640141b20062d9de669019d88410d709923b6d3141c0e7050f04066379c095c532bc2c170d046e396120450226992863576029367583d1e67459a22c6aeec4ad8d59c510d9568f3cb26240298b06314881b803d0257abc364f1681e5c9fcf27d8e8a93afb1773afdd1da66171bd78baab877f41009b254e56cf789de81af6361b225f4253ca8a85008616b5516a19a74d55b611f6ad316d13016a03d983d4608ff886a502a1f453a19aeac6a089e7be51efdbc4653109edbdd6c824021c1409a66a3c549c425a98a116953f12ecb1a41e1d4c9b465e770a2520e543b1be560054085f0922169020f3c391fe82017bd2b2148b18466ae9925fa1da6df21f3815c76b477202e38cf482b2fc4c946047d3c4378156cecae7ba38368f7d5510f7e5a03cc4484874d4b7d99f0d1ec56f540c0de964995b4c61538903f58bdca9414f82184620cd1056c159318682b2e824ccb8c55ce04083737af9b8d680fa964b9679a21a2b0526a01b6be15729306f735a4b80ff2f35bbaf8eec2b864ae3a2c54a31ad7950921883aa2c4ab5ba18d320f2630414a216d241fb285c21fde5a3545670287ff21f526e7a840f4bd883a88e7db253e6187cc51190e5b4f8aa702d392660d2c4ac4d87033bdab3f9857da2131a83dc27c9e261fe746fc0e56f92570dcba6561d52398359cc51595e4b0089720b7737a4e891dab2612ecbc9cc62e72506a833ce2ca4e16044a0e23066415e80e684185c16431351c9f857ccec71b4c403ad25d98383996414a2150abcaab39712b3badc74bf3920074b66ab80518aa15933913beeeb9c5f513035c80023310d7c43fcfcf94ede9d041ecc1c2d7d2a25d6ce2b941966b76f24ca30a054127c336a7dc2f3758e6e6e019162a0df7ffc62c88f80aab80db01409613abaac99a36e1854449b0c1526694fcce60b694cae9d34fad21cd1318a96793b2dcb9711600dfbd15946a5f4630d6bc16e8b44c028fe322d542c00bec2c8af05392f688fa92fbb6bfee51dde978a1e2eb33b086f99ab0c5bbaee32d03c55917158c83486129050de6d5954168ec0bef89db5506384ab49f7d637f354a4536acf9d088fc35041cecc115e7e0f505b9475c4dee3c72a35276c16548f7d0fd1b53b2758f1cf9c6e0a285e22b2519781a2575a88560728d5d9417e2c0a06ff946db51646b1e17670f09ed3d0cea03eab1ed80793beea29a53eace5f75066b9600ae34cae5887edc1092a2e853e6600010e4b117cca4ef255d90eeb50893235a361886e1de221db0093a5f3e88ed7d0371355ef7c8ad7ad3e6f1abb1db1efce4519836c01a7d004c0347fa4b139f177258a773ca90b50a25626bd60981cd5e7f008dd5252f0bb7f5208206e23dd68d22a0003fbea6962257433de3c89853eb00a4c66edd229a363b5b75a48618225291e5cb6ac6d967d9e0781c846925480aa026c56df306322a4f75e5f9c9453d031b0c3fb8027fc41ca15f2c369d035e7b9e2e4a1ccb05cab00acbcf05296043289bbc6efe3410b4e8dac529e4b04b0d472420723e683d1fb38aa8362b46c622d2fef732c651e5f683c943a0cb3958ccc6020a2a1055e240b81697a6a5bcf1b9fa55a41bcdf864b008e1eafa21f2f12d09634dc6c17640c12288ffea12545b11e7d331155e38a9e53804281da76460fde848191a47e6bc2f48e083e97c35464e557a39fda8d9964e7291f0de44dca4dba7760e4d230d5878d2790a0425ade05f4cd953fb8cc191cdd9963580c1c3085a77612bfee92184200d197fdf57cbe9ecd78d646cdc8c0ac7e4081e8d130b3926ae88c300cdbe4a55c8ce1843b7839fba32c0bf36a325a128e637ea3600a25ae428736e9c03b7079d62c10be81c8b61e5a4ed4105816f99fc7992fa9e933023974e8e39909591738d1f383ee241e81451203838a5f4e35068b05efa3066717362b254061f24af8669e900d3aaecd0052b1e1674c546a7612689190919acc00f25ca4b816f4277e408f845c8664aabae2fe07aa1322364ba481a468f45f37e1ac00fc291172e82e671acd345814f2c585512237a14a80a891c662960b947577bdb5108d51a93d69711c3b20bc41ab81eb885967b0f651691e5eb5868a6ba0945980a098ee60e034ca9a8f4499749251084587e48b191b6107ca48ac1b3b6b42ab33935608db71ad92134444acd989eb5aac00507f27cfcb255548f8376ae9a873d98409234292c8990f4f3f5c0d1119cdb90cbf1b6b3553206a8a2faa26344c2664d27430e738bde74b814ce0abb9b1dc200201c6278f42c46d2f6c862144f25d744d660e36817da81ab471469512ad8d40222c021524581031024fed0903a72758d480af3d0b4a816a38af94604f63a379a543a3911aae043aeb1aaf94520e5cfaf901d8b13fbb6ade3b4e0f4098620488de050126a3ec98d1fa99f52e51ec6d1569b99841f83006bb31c318f492a72d0a4b47a093370bb1e0d1436180b595592c55a04dfc3c37b871502bbc0736c685ff9f5161310386eb3f0255a39e09a92960fd95f1da99b8f098a488a6dab767285765f45c733658e11afa0203a426515b32716d7daa5c4b8916402222e1c3642478b31477ed6ca6093713247fc8b8497b4690db28755e6a2769dbcd6e1a3260ffa9d104f9bf2ccd4ad47edca59d450677509b020f430dc07c717840a6a14285eb7ad4608ec6235fd889289fc1419e6daefd9a457e07c74c8eb84b6827b8b0a070e760d046be0d8b8444dde77250e3ba309a4fc2b114113f6b5398a08d33109baf25cd147134b40efce466260dd2b8a692141bfaa99d9c8ca2ecadcb0a295d232d09f87922694250f144eeeba000f26cb806ffa209a37eea8c0e8c3408ed147114f429bba4cd14b7a0a00d226d0e016c9fb6696460e82cfddaabf956be2bed55400cf2c09c1f28ff60e5901e3843922d9711c2409e74b9bb2037939cad6b3005121d2bbd4965161742fe69f05bd36b789a5c071e2b56c8b953340a330da8c11705bc5e5fed2e4980a84f79a87e2428da53e97bb25693312f9b92a792b5e3610fcd4634f342104a731c4de7c3519c44e86bfd4e0c48994f7a1b9ec33c10d20c838ab114eabaa1caf8d2a551f32d82d2c3f800cecbbaa5ad50d0c6e5ffd76f6d7328f60364a72f7a33e30d92e399284a37244475ef7c1c9006260a5c9307adb5e5aba64383133b2546af5b84eece632e0435fc0bc9b15e53b695b412321b2d0c042ab1e486f7e68f2f14e3dfc58bb2f18a6bd68ad31a09e9608b9cc633dde3e80f15cb5799cf7d7e6d14cd7b175b6e282adba5906c2795bf85124ae0d0ffdd053c1c5ba3d4c6b1027a26b96072406cc30cb80a66ef1df3d13014d71cc57c75af07960659b34abb09fea8ae81d4b301293efec169b3a78efc183098c2a6c2cd319907e4fb9979fa65dda41e88fee209165d8f0f5b82d49cac5ab7737c001aa63c60f26d25fb1091d746266ac9671df533d1081453d2e996b111d5cc210b03196a55cd5321c0b48c4dfa0c28625c87f83ce1f000789e3e2c3f9785f91e087e06cea8562beb2a5ac32046b85c3696f585c2f2608253b4e90ad5025746fc4394ae56474e18ed1eb986126046086be590907c2094e4e0903768305a0b4bb0385d97df6673707673c1dd1a6823798848c8ef9ffcb04f77f52d519c713a2d8c437c376195740be83f06315a6f8e2ae9574c427940afbc84787714f2d1929f4c665a827b04e3e26ca80e3600072123537c75dda709c5320be84dc5be2599d82791baffb06656b39209201a1f8403f850b6c9a188d803349a841bc2bd2365a6b3f735f6c8b505b7c8492abc9159116f69a93310980c0c7f196f656cae57c34b056ec11d4d11ef9981f75b4caf34b8e3389a50e06b8f14b4e3224bd2cc546435aca993d917d18ba015ebb13bd04208310c025caf1ba128c249382ca0018ae421db57cce6451eaaadc1f4c0a8c823e046c2904bab90e0a2733f7b63f4907e2697801b530c3f08368f30334a9132b4af653ec37848d36102a6ec083fb10229f621c40fbdfc0002f55698dcd77cad39b54a9f4886afd81b06d5d5aef86466d1b0b2be6bbb8d18291635c8c41133ab946db0f0749b0402b62a2323626c14bb9a95377d1a93262e0563b9623dcb4d09b759a9528aea1fde4c68fcad8c66ef4e24533d4808a1c17235870e90b5a88ac791a20bc09252c631969b00751f0269bea41b077008c32cf207dddd920cea6e84cf208495c8196d89517cd4ab7d977ec1402ed00a7881642b98c00b31b0b2a82ccb49547e4133d94aa8b41decc31bcec04968905828c9c99b6a8f13743a492541d1aecf0569f0b3f464f0b4ae6620226f964bcc2e9d8e6dcab14083a2cdb8798361a33f8135137e9cecc5e33777e0982c794b8579bb116a9db6ad07ff52d681578a7f499835574a4b2a85420e451b76bdae19254499dc22f43f2a10f49b026abef1575c50d8d1a803d9da1170905b6bb2602b38617d00f40eeef6944691980c890590de613f052b24a606264c5d96bd6c019111fbb8d502802308eb6d905ebc621dc6740c8cad049fbbdfcfa3bbe39ac7db03381442c8de7b6fb9a54c32251965056705720576c66232edd56c34ea6ca1d77017360365bb7cbec23e68436961c8813e1e1c2ed45e6b90b07fbf11538c1b7ff80033621a31d58bc371a08f03a9480ff7dfc8fdb60a055b3feb36903ce99fdde7394a45c68c986eff88a9537e98c2bd36982dd520b83654a77c5808fa2ae75f6e6b1b883bddde40414c03b8f114a4e56ea8175b702ddc8e8a75dfc8e55c42ce871672a024d829049b035f5aa51dbe5c3b0b887c255f3c208107071272b91fa20c5a1851fafb399015aef0e14413429c6802e5440f5213536130d4297dc75054d80f63e236a83d27c27e1c881bc5cb813a4548732d9d223fc4f1e0443ed35efb4ae67647ca8e5625f56aa5af584e85fd3c66d45efb60294acda0c50709ad8b65b81db79f7fde6832557135aeb3c1f409c77fb9cb8ab0cc815930713f0ed429f194c50b07723cb0e66a9097bb1ce4dd401105c684bb1caee7ff3610ed98d4d07caf4e0d7de995035f4a3b2635f0e5be7c23770317a2cd5d1dd7d25e73a02dd56da8f64676b09aaabd18e4d2ff7874a31353e840c993de505c4b75bb430d282b9db290b9f1b4c5e97e59e99405cccd4abd6a4fe6f68b802cd7c28150250ef4420acb81a467dbb4ada5b747490f36d327fd9890144bd6127a4d63e04035bac84ab7ff338ac97010305131c0cb20ec0892b88cc9cc1ff6c342979b8da40703d231a3db9f81d28365e0c598c04e98e9f663a1f460a18a85a2d6e83616dec648a08b9538504b142e7720e6561c688a2e07e24023e10b35d0620adb5618b6ad389073d9669893d9581c88e3b1b5b655cbc8b4173ba66025881eff4703d37c942c79c2efa0c64a10535c04d1e3e74da7e9c4154d11b6dd45bce25504b50a958bb8c365ee46e53a2637709f6345e33a263870612dc913fead6382c3f6dc735d35c913ae2a79c298142c631886d5f6b0b7a8f678c3565647f454509e4812f04504b90a500bb6817936af79df845ce6582e3fb6e96a14f1845f8355ee85dd486eaba6b655eaf25b54a760a16d26cab08428833fffc604b6519f7f93e994eb79d3b4ee62497001f1f6d830176121e9d956bc69ae0bc130ec688fb7151253b8ec2eaec3431185ff7b5b5deec4bbaddaa6b27e81034a296566ed051a231bfb538db647bb1c38039c2b99fbb8bb4b77778fcc1f2577b83b9160396e92bd0addfcc2d2a2eeee966cd56a2ddfcf4d2d5bb2bf56ce9764abe4b1fef557fd1c2bf4bb2bc67917323fde6a6f5e1d778e5f7bb17d6f788b0596c5e57fde9a2ea4bd96427a60fd4351b6640a3b08eb2d39d35ecfde62628822738c726317cbdc35cbd644d98a28ed69c956268435a9e1baf2b1cbdd4fb65a5106eeb6ec34520ffbc9166903a2f7d348e16de962a510569b00b6b21151814454b2c58a21ba644c58b0dc01dc688ab1c2154969a006a280b8f068ad745b83b9adbddce6d81c7356c4edab91fe5ea82b25875cd9811e052b5b737ea36cc8566677f90ceca781a8dbaf8192a5811ac822a9ab089a64754abb0f298467d83fde12bbfb99b9f8dcda76c55cfebf623aa59fb9bb254bb29a455150dde426961098152a9c49c5fce00305f8e307a13b801b7f38c1ba1aa5d44931bc2164e68713a01f4e7c2237814fbc225ca16f5257ac3ca93e663067c6b2a4e1ff7574fbeb487ae8cbee05f73cee06da9da6d8713f37754a3c4dd172fbfdd429920389cd4d20aecc4e459e8cdca4003a037db1801eb0fc039e01edf5634fb05f445d6e8a2937b989ab76026c8e54415e78922e4fd4e51973799e2e376b19263d30be5ace6bb80d462752eb0b6b2d87b3f9d7781e57c351dbfb0e8bc24492b110d829916198ef20e9d93c6b9d7fd6f9631d487a369dff104ff8353a2a47846599a68e4aad403ed8efd39e10d9929961cdd11c35a8e6c89adb6103da8034436c582ab60162f383fd4636a08d0f9a21363e6c7c8801ccac0935a146e4458424526a4f083b13639433eeececae31f1c03a4783c923fb6bec1e86242b1752259fdb4fc245f48898aed625d244f48890a40810646635d9f9de4f32739ba445b26aaf86794560602b17f61321ddd642174a84243d9a50138a902e9416caeea70935610b6c4b1392ac444c214da809638862886e6bc24c088bdd4f434392953c21d9c292224a89494384484b7ae88b98444cf264d304fb91ac444cfd4cb22259b13a228b82587277777777efe81e637fc72c7e444e152c17545cfe48bce43a5e388987bc54f292979a45041c265f9263e5bb4c9e8d5a6fcf2d7cad18db2083cb36128e8c0e5f2edb341932b6189dbe5bf633cb30cca46392bd0b9f63a5a46372fd8ccfb1a245130c09e32f92662d873342e90d26ef4287c38537f9ab7343c9cfe870ccf892d75c98e142c70407171e000f001766744c7098f12ebc0b3362649b0c8ef324249c189dbe9c8c183366683f43ebbbc9e0b418222d74e22d3181d1a92fa29974e24ac42a56b5ebd27a94949454edc24a4a4a28a73f0555c4844623559097940f122aa6741a8d1ce42067f18f7f42a150e8fa508bb338a8bdd108544359d8b0642d49594b755567eaa932514d5555652aaa02b9fcb223658ae8db36d61fd1837d4cd10ac5e5af2f59d28375b554bbaf7eb596be4d8c28b5243d7387d01397abe9b287b58455613f5749562dc9d4522df586554917cb3fee1f9233d1326201895e423c6ebf47fe7c989dbb0e85fe4640333333b73347430d8165f9c73fdc6269a151157790fe74d3d6edabe5369db9fd937bb2589335e764c1b0585a1e67b2a20c4d298baa2e15448a8548afd0a20c325e2e885712f1aa0167081bc4edab078e142c750255416129e7c09e740663b16d4a118bd55efb0c47c30c1df685dceb7d353bda2df9268b4e116807f6a3255a92b55a4b4baa922a8606611bfe916170172912a9582295f4385855a00a64f5cc6c352701c935a06f6418fc1d949e69c4112225464b90442a1a6acf595a40544555fce168344f1c31fae68864821ce4db1019a11dd99155d920f685ad0fb6a4cb1675d9c65cb6a5cbb6638ca3d168341a8d46b55aeba35aeb68c41ab1242b32f63956a8ec5876d429f43256b3b63eda634b1ab5674795244fb85f93f77390b3d0cefb396877b071e5aba356491dd520eff659d1e5aff7db4697df8aac8b1d591f2fd5477b275b495d1db5477f60a31c49966cb11d5d3bb223191a25a4ec611de4ae949be45f71aa885d2c283d3e41965d05733333333333734f2e227633f7b89a22ac04473d6e8bbb8151c17e1324495694219256dc537c401fa01d5d294783dfc8310d1d732c8a224dd49ca8d6640102e3295fb910577990db3f39c63835de660eaca3fc073eb844881e0742f4214447b10d3f85dc8d7164c56d1667e696c7619f3f43bbb4e79f88e2206739f90eb79f8783e084427148412ed4d5aa2c1710be60aed4b5ba845caa2b48f76bad19c2ca557bf12f54a75cdc3d5dfe53a75ca82ba5830b5543602f9494e10bd59b0f9d420bec33c109a280b8f4e4d1a5db2fb7b9795e1fffea1c74d05933ac88e2608fdbcfce2a59bea9890217c26d41f438290531650571826cc36118867e274d18cc9e71b273114ffaeb0eb7ff07564469da2d27c17071fb5b6c7f17737a08fb643aa81f071d440171e1212ac18c5edc638c31c618638ccc551cd8f871869ef18f7ffc2391b0f47b25b6371d94425aed39e860abd626c4ef180b8b6118f606b8d83b26310c932eaf7caf86cafbcf9216420a70e3498bd36de176dc94162fdd8d272d429703713f8c84cc81b81277e27634a947b739f0b664c9d90684e8b5dd80c0a3243d938778d23f89885e7f4f1e36f7cb4a9387b0bd0ed25e6bfec5731d1c9bb7321715f11ab4f3e5f0eeab5272b2733dc75d4c96a9dae321da76dcaeb6133e7dfaf491d933622437f673d67db55e5d771ba0a197b0b4fb3230726717439fb049bfdfae8c41c162d80b8e27fcf1ef57e38ba61a376bea042a666e3c6d01e4f6c7266e3c5141baf14f54882efd8e2bb09f7799c414dbbbdeace131a13181750c5c9fe74960bb578701f91970007df9d7e512e0f78bd617faa4dfc4dfbb87d2880317e0dc4b5e574703251fa362fc8127593ae5ea6e2accd7a15374686febd4f571678073afbf3a3a1c61afff7488e994efa97dd1714c7bdee4b04ee41ac9138e862b06355f7209ec673940ecf55f6bff75c8abd17cd17dd5de4d173b1682f5ff3a8caa0e83ac3a45f3f39bd533dd921f2deb544c769b0ef50a82dd3ed203e216dac981a9daa39fc375af1cccd21e83da9bfc696fbea853e6f671fe742b29d7cff911e6ceafe1840a40f78be1ce176ce41736eb227758a7d9c0c6274e3eee67af4b9a52e0472ca26c11458e6458c3001d835c9152755940229c056986e60c996078f08e094ed23c4dd1ec507b4b8c2b9a754b7ab2ce4ba5cd8db1243d18119811266cf4c4e5770c8c28dc022fff142205b104719e20a65ccf3f436cc3655233949a218fced50a20881e67d52bc43a24d616db982d2d18b79d941aa5760471f99904b7e32d11857fba64cd16d66cb91c9aa1f6d2e5276d3970d13445481185a60813f7d636da5e369616b27d3670f3b1813c326ba46045e152b87b8c2f317af40d6a0373fb65836aaf5b6bc9bb41498fa6fa36294da5a96e47f1c2dedd9a21ac742158603fad35bf4bb3aba0cd12eca7b5409ad4344d896eeeeeeeeeee6e6e96ec37b8ed23500b4b4469799cd1287483f9a1214614fa41e20834881e37c1400623b6e131a6d1cc41ad818d1185fee773871f421d2111e1fc8c58224a3f9da1981e2e68721f6246234e088b9973ce499b4ed953a6f873cbc0facf29432bd0a2b64981200a888b8987a804337a0141954aa552a9a44aaa381d0ececbe83ec02ad447ae54546ad4902c1982606f2a9554a9a44aaaa44aaa98f31f4745450002e828e249ff77e22426a9bab6b09f2c4995a44256c136623a05fbce62b4a081303218529565946a60045b2f5e038940010fd146e4bf4b05e3494cd22355302e9354c1b0d429edc0e888bc00e95b9226b98b0341f005a0066a5a9d425d402250c003942a10942ae9d1400d045f0082600a002d08126394514af9028d11ee7290577e0e726e45884a30238e3176d75081b09f83abcf5c620b4723559097fee983848a299d54543cef9f4b382215aa00572b1fb89a506225097e599a4a44e740617fc43a97b83d2ac97490ebe309fb796bcec97aeb8039affc1ede49217dd23bb07fb7aefd3bfca023245b73d47db7903bc186b96711ec275b379e805c7199aac0854b514a29a594524a29c7184bff1c8eb555cb589ab1d8e17284192a7a15951a2ddbe1e0188ca0070f2b1fb854e14a12dc922d23225de23655e2363d02acd1a2e06c6519667d749d2e25267c50ea946f962e4ca77cb375fb2748451cef4b2de9a99d095f9d097755fea0f19772775ea241b0df544d55946196220a15d133399c5952cd92ca5bf313b32c6ceda14ddad5c03f3b1c985767223b2f39137dd22fa7b07fe9089c9e493f05e9c800ff5115951914d05e83cc802f96a4c7978827fd3f4ab7a3e8072948410a724c71a9911d1a9056d24e3bb885993597eeeeeebf4a2022f0cb4c2157fe33f4b37757499e30e82a71f7b4027333333333337373cbf95db75652a6df3d243d7e443ce157620597bdf3514461d912e29f46c07c1f8d7a3492829b99999999999b5baedc5daea4c7a1b0920a971de502fbf9c78df85c5495f82ce122140af5c476848bffc0e37eda68ca39fde4e323740a5f4ee14b679a4e58983ecd6503ae25504a315063d20ca11942c3038d4b47145731fa93ac4ac01217929992d0ed2791216195804a7890b44a586e7ff46118866118866118866118866118866118866118866118866118862e832c78178158005f0e6badaf19623f15cd10cd104c3304d30cc1344330cd102c0bcd10acb3d00cc13a0bacb3680a20a1451a9f264f3442640f913b4629e79c93ce39a7c718a38b5a5d58fe898dd418dba34b77a9434a29e59c7604c6741a3326c7b320668ceeee1e6d757f6696927264a6d15ebb6398080b9c65b7709432c61b645986b1f449af8c6633cb3ccb649675465dd336e61eb62c0b59966519566badb5d67ac929438da62ba3d9ccfcaad775d52b9359cb205934599645ce062c2c2c2c2c2c52b24c59044de396ee31d4a8610015159f54d2f87fc1f3bc5366d46dce194d29cab35d4629634fa67122a1b14a4a2953720a969f6273baac564a97324a1967aba29471ceee93524ae9d1a5ac12eb8ca58c31c6a819410a4600c20873ba14a6dbd0c39c0ec4741b7a3082116ce8c1861ee4b3704b17bb692cd5d50a3f378256a96b25e7a671b1d726535275e3675545c52f8e067fcc5337e449df1b11a50bdbc550a386951cdbc3fe7043ea05cfc3b20b867e31b5ba565d8495b6cd6de35c75e3464a6e9bcd6e1b49fb41bbbed66aaba7328375a98008d86dce8fde8cb3021c4e9c6f01a923c618e79c735e53824f7f4e3a27776c97934ef91fa593d249bbd975f732c6e6c832d3f12df56b8c36e44ff7c901bf3d3e2638f00a7d5ea11d685b31f1e76bd280cdf5dfdc1e1da0d77d086dc6cfa0e1eeeefeef52769639f7054ebaf4350d1398af6e5d7a5df4a990f6e86bccccfc95d51ead578828b4766415220cf435b97132344a9f7e672b20c913fab55acb798c74e993341dd76d5ded5efc66a4fbedd98fb0f34fbc3f55b319e7faeeeb90f4c078faf2d422ddf72dfcc789212324a3db6e8c17dd2781b4b0e93e1973a9a6fb6410189d8fa48c6c45944d906a339ae2d014a526388c3c8c87d17900c68f7c5ca175a4e3011e46be85c7d1426782030c0fb4f0303eaee018f916ba91aeca931c303a499850d9da648bd64b59c42216b148032c168bc562cdc06dd5144db672ea5f5af77957461456b6fce32017652dac254397863ac52451d2936385be4c49b9a24ee29ac408ef6a1b217e74d145094c4e1802ddf184983984c90a94f3577e2b0304dbe597272082119acbdf20264517ff1c8eb519f06e77102cf3dbef147e1a9d2272997348d60441db00bf490e1ff85cee7c64fb6f24808baeb7a86a36e3d09f2dfa5a7ea487f370d539f68565c276270903e47631aceb2f7be6ba4c07b97e752aa5dba593ba8deb6313228aff27e512220cbe8a287e84951f234aa7fc6bb596b3751fe79fe52c139bd8c42636b189431ce210872ca065340c6358a36a36e3d09f5847a2ee7dde951185fd2449ae582d0fd595244959929e1c2bfed2243dbee22f554f49b3fbde4558db4fbc5084563e0d0720cab891c6e749c003faa4ff83e1323f03240eaad7c2fdaad70e8828fd0d88303ca0633cc0ed18e3f57700064494d64103b1091bef175947d0d0a28af4f40a3f65aecb5460515858ee06cbf5d8d579a0bef4609d07b2aff5ea605decaa3ca9214fe2cf6e19841669c8971fbf3fcf89dad6e115acf392a37d66e298e6b1f7ee86caf5330bf69a8ea53ed7dd90279c1c2b265cff06ecebf3d70e4712dcdd509feb70d478794231ba625beca5752f4f78bef4919d7f75de6db4b09e0d71a57ee46e603f4353ea5dfab63dfa94473e39ecc7e9489b789923322bb2f960628721469354ca8f2ebbda24b7af70fbb9d60fc4e00440d4600813f8808315990209c4134e56cc5c9112b6eae06147885042125b9cac58e2c572379eac706209d6de78b2428a29acc88d272b9080c5bcf1740413142e6b473833aecb079bdd780a42170a38023d456185eb379eae08723ffb202d76b1638c1d63079992a8c40df7f6b8643302000000a315000030100a8804e2905838d1b49cec1d14800b66805074563c134a634110a4308aa218638c3286000300200610a3100de924000d5f235f820f1d5f828f1c1f1d570c7a7da04b00ad834e00ad833a001d847ea8f48c4a099474ca09948b4aed901e41494709418948a946e81b2925280929d5da1dc187cea7cd87d117c507668128c51400b1ab0b396a7d8863932db0c330152125f98e05d8382eac72bf83d68e22dcbe7471600d7a74cc19d3f03a3cb9f6df89e09f90cee61cd2573267ac12881efa1f4273c6229aabeaf9402899f2e9b039632e8e4b480c13d798d89fe09c31a22b78385eceb63e736633524f2710131501b466bddd5e173073cf0575bf00bd082d6f3e50c8d55d821212f0fa1082e9efa503112c991bbcda628f2c4df0ad974216f6ccc6046d5f1dadb027068603b655d12bc3f514c66eaa6ed3c4ceb80b12b97383865fc059249137e75d286cd3cf6a9809483ddb2d4aca9b0b0a7f7567a144069c3c43632c7d8580b76a0a68d79cd85dcea2c42b39a31ac73c9362a9e13c46efbf9bacdad80caceaa7ef0beb2789c99ba3e784ac434e38930e2c5ae0fd92655d9aa85ed4309c22836b1d522ea121458899ea478903f3bcd0f197c7e3f22248df354d6effa52149bbb0f0e83f57342b0347b66d456222b143ac9e056652918518ca7240601802e40104ce065be1fec35d20a1c358ef4883310478d9a36d467ddb8b5727770a970a1362df737320ffd4e65bfa4a40235fba1b615b0c009b8453d703ee0c65d745812cd5b893a4cfb26f2ca911d98ec2c567f140600efa49ddfe8e5cd999707ee4559661e5792e02de9764e70fe879759e65a0875ba0f2e93be967d43b37785569f9af6e77175011b53a2edbea691b31786304b5e89b7d514f82fa7e66e71139290b630a0c1c007460c5e36371dc34b13bda842177ba322f9ea3a0dd69f72050032186a444c5478459fda783a913cd9d828e401c487606550ad9ab5a1746642dd06ba1e3556a9a470f995b6bef062859288a0bec2f50f4a196e58ed465e904f0137e3b8e99358851929e9bfbccdf8fc83da47fbf569c41905c6df7670d09f906b874b1fa8ca2e559ed2445fd174b5cf1a188686e9e5c100c2437001838157b9091accc1c7c354166b23bde6c022d59c720f840b43f12d185ad630e7cefcf27aabae99305484785f3e0719d81ef52a3b9e89cfea47269c43c9dc527c5ca6e42cceb16373fabc68ac80aad14668dfda38fb30afc9133384694aa5dfec1d22dfbe1ecdac41fb2c441f131628d0a2a941fd6d46196d6818eaa7f791aa65ad37e3cb96220657cea8ecc1fe40f569fb9c00f55ab8e100b778157587f123f4b6d2e207d85b4f6d34c1286c55d632958cd23ac90e28bcd905343fbc43e5807584db5dc6a4a4d406684e691cb3ce575073c940ee7814d08640bf958f88c92331fddf23d7794a1fb7517cdfd5629f4df3d47e743fa609de0a99b743a44a3f4a1f0d86d753ad8eb105e6d5de24b3c2e88fa29057b7cd19551a503200143d58be8680ddbde0c3a402738b53850dd08fc34c06894409b2c63aeb0a0dba306f4ed214034a991cc9bb23e42bed73c93f5abdd4b5accd4f41d327a04373049ad2fcd4043409af4618b404b2257291399efb390f697fa26348fe88d4c3d86c2ad1b66b2411889f77248e444b18b163e06b642ed0d2d29680b87d891f89b46e7633096be9cfd122f320342052f12c45a116197402cc524b86ea689bcc3592fcf3062bcbee0adf7cb2389aab3765a118c031d651364656b6dea9428f0896dcfe1d663db94b8bcc702177334638603713a6bb4d696443632b6e66196dca9440082aa4dff5ca5c24e6e745e807d49b19c229fc36dad28f62ac51d2282468dada440c00da9558080d72eb559cc21c8c6c76ada0e3f9c92241060fed5af96240eaf96b4e281454c9d2a7b1f17527a0f2bca55592ebe72a3b9d49c435c72c93503f9dbfc9b68043f53ab047d3189f8eda27749a37e855d2345df0d8f1804911dbb43a6acfa5168a9f3ab764f808427e097def3129db0125b41a1e6978dcd38a7a220ed035a2b2d33a20f34a1684790c903c54c3027133e1b52d5122d47fd6641a6d17a21be3521965a6a62ddc4fb0e30f26e7bf1e6786110c1316df6bb1b0dfeeb0b75a0c7e5054146d66a2ee3211da04a5a1c14a2fca14af6e364efda105d3feba5f4c131fb8d99c05f2f72df026c333c40bb4f32e451720fa6ab0e93342d483c2d389e06ab88fd236636217c60e919b6f0ac9a20276a9f60e9c25fbbcd4d24436670641538113098469a50eea6780394ad5463623ee4bf2ee401b5a681ae5de119ee2e7ac1e0502eb180716304ded0de8f8935757cb2e59645de7a3a897b076a72684c07bb520874485731aa11d38ccabc8ffc0d8c1f1ebe715ec4165e654bccd8299989e08ac8eac241ded3ea3e15e17299ce9ada158a7ee2fd5d4e7ea925570099d5105ce28e975d0f5240bde9738b1e5f1c21ac4c2b7d5932bf3cd2f1373b098010ea768f321a433e13c7b5bdf71701678819033cecdc050211997bc14a7cd60b2571ae1a14aeef33e9d5bc3f1b828259cac4021c637b7946509e7eef0c210025935edd071b331575b1d5fe68bc2e6a005209a822c81e8a038d24804927ab13b03866e5b1edf0bfe806408be29f95f06564f26abb473ef023743a815120612c886e048f38e61cea1c56c697caff52ae7b9cea1860f0e610417dc13a817d0261d9801050d94a205fc1b40488286f38d51b7e8ad18061e853cc87587cb56b00af6149725036c52c56b6983dcc6d2ecbdff4567135532f3057646134e47149accf2ed93689fda0ff280ae640ca52d3462f2c39d5391db0d1ad9d384919f2f44a0e57c865cd510199aa6e4ee846451218c941575238649740f29d1c5226d64680240a0051b633b274e830484e5ce9fb928b37bcd9f662edd6743440bfa3fe71a1245f812cf5645ea5adab0f0759fe2f5614671ae7d569228d0dec02a2aeb6cfbc3d88345d4d11755befc4dfaf498e959e3d67a9461ec769443e2d927347002bf841ea7bdd0a47ed061fecaeb9c9f663cd0860fd2902a8264400b96b35b84dc14fe1ed5a9379e38e417498e9746f87df231650f480cad48fc06cf26ada974c84b65b84330718660db9bb4a07ba91807ff9b3c56bfd60cf22cab066e87d109fdc0b4a1e58460c11e4f2d0ad57409bb5b16e5dcf0001c219b2d67d4398a05596863d6049b24e4974aaa037df24ca516aa85cae63d4f3c4c2b2a0ba94c9f021867fbceacf66b72887277627a93a6b408eefe1df667847723768bdb3481c74b3c3a67fd49fcdc84618b9796ecda66f49d7419410cb607e4b8622f692326037033d4d6475db6dbf10452af8013c967493807cd2d4564d321563d497a38b30c65032b7f173d55466f1b8cb4187f015672350b8a673589df1e56ac0f88611560d28c59d1313e3c10c148dfb1428277e0eb1722787e728dcdd617aa2f696431feaeced7480bcd889df65ab781d027c9b480bb5b6b612b2bad6ccc04f085850c96c939895d66c516976f1cc5ecbcc5b0880d718996c44a7624ca439f14ede0876c4191f711691a40aab2a2ae7d4f15384908ab3946b569483b72fefccfbabcb42963aeb7189c097eb9fcc04ff50dba358a112704528d85f8da11927aaf8746b3ad80464868a5d4302a6c8f482158464d3ef78441e9d615c0de651898730ec22e5c8c71034ab1acb0cc0b3f82f247050de38d5222b39ba8dd06fc6e3c5f9b749beaf5c73d7421dd12ee94d8598e47acaee75ef1fe4ad3b2d951b5eba2e6dbb47dce6172cc30d4b9e7a09290036c33be5adf8db7151fbaff2132abf252243c1ade753b0910783d8a9271227ea46f4fd10cc20fefc3deb91f41ec43cee40840a008973e5963a587e1edb12a73af1c03283ad6a291d891b219b67955faf6880c74d244cf62eabb3d2e9e42549d75f80f5f281c87db11056391ddc381c1892e49b27f4090b96240f69cfd21342f1dfc55890e3177630e0f697cfcf0d2d19838a9e4d6e9b52c9a16138b1ccfa097beece3facbfe105ce42e19b02bfb7b44149a5c099d5c3d70a5acdc22f1d30dd94642e3ef40d57a7243eb49d1bf123c79d6f5603378505789743e203cb71079006c9a66fc2de710aaf7575de913f0ad21dda8091ca02ff0b8daaa082ef087e35d5b27d130e97ec1bddf57791ed85b30dd8b518e5cddb1bc1e26f63d18dda80e5d3eb96664c3f24e0cd179186dc6f2604e0e0668117a0ba4ba442e10a4341ae39221c5309a08bbb03c6a510a7ec0a19e0da35a0aa78a96da6fc2989eba2fa9ca1d53a6a101a54c9ed809379ebf92042194a06af02e2d5886b45e55885df47cb60748bffd0f1bf33451765469f28adcb9a5d28655ed9998eb0e9774f7e2a6690f29afaff02a642520f65a73c4bf131a70be403841938d83105941404831ea19c0bf9c74c73404b88995e5762ccbdae443a5cd3b6d23fbea4eff269ad38540bffd6ddcf3bd6b976729956ce0a8eae70cf53df7e1d6fa32c2e4afac9bee0a9db79017bacc561f535e32bbf0a1569d2c7863c0eaf574554b309ce1c5ca57140ef53c192175226f92777d9d5bbe2bfc2673be72fdaa3964aca42099af6184eceb6776cec9515d19b63099fe7d25a149ac547ae65301a897eab70bc5320a4cb5c4cf92c1ed27635bd04685f29a599a196a7ddcba6fdad1213efd0e003f53b69f8dad2e46cdf492506ba796abb0e56e2ca44a5faada16ce36ca6c2ea5409b4559438bc7dd4254948b6f834dd3da55cc40fb6b2f956a49b69d3d0ea0a2dd10ca7860c17f984008ca47398296079e9e9eff9a4ba243c42933e07685049ca172416ab8c5120a8a9cbe75b1d70fb400fbc5dd2b0805ca448b11b6c12e6008cbc45140f615c3de468c8179aab9b251608cd9c848574fa5ffad54198b97e23074e6eaf03d37188b8a3d536f24d66e50b85c856e62f5ba4474f25d9bf5d0935604a8aae3bcceffda7bc90d2b57302aa9572811717dad5dcba3e3c72cd48db453c6e97e22bbfd65fdf03f5dfc4584a06f8fe7e3a02378c0917015a4441676c1b91abc1105a1c7d2344c88ec2f8dd3f2e2fb84338c306df9f40859be216003406b53b81ed5f336f98b151194b6b5ede43cb8374008040986f955aa3e39382b0887b0f5f0efec1ef4365a2e81d3ababeb97b5f96f63fa0991422be33ab78d6124156a633b91300ef4c7eb177199168860d74c932bcb4387b16ffdb0db4290546cc6d6d56c3d97817beeed56e1c6a077ee374821bb061c8bbf37740b559fb11ff4849181b452ba79188221fb04adf7ee84f9cfaee2745f087850c5482fbdb6d3e81b75984c8910cfff69f8a9ded6d98c4952d95a2cfbcfd107378dc5d704f2989437436038a08ff5085b9db247b0a7142a864922f5bb1ab6661d0c3108ca095df69773966c04b06b8d6e4b34012378c0b325a938362cdefa8f24aadfeb29a6e965638532467f25901c53a8a4254ed48b893a7a493272ab21eb32b940816139c38f0d3275ba66f335a3341679fa38fb31fcc393889779e638211f9ac39e4ac6ffacb51bf2cb24f547931bcc559252bb72ee6ccaec317b52bc9418d1cca10923267fe8fb31d39ec16d83ecd7b220b511d60a8b8c85d3f92afe10a8d83095a8c7e5f9882ccc96cc2593c5fbc082b9954d1dbc38141096e995dfc30699e93f40ac99cabfcca2e53fb1c2f1d874c920cd8da7498b44d660418646f89fa32f2c652f91cd570d0754617d021e8dffe7894450b8aed9d884935787fd4518ff78c0d6e8de0fa248a8102d8bbd326c8a17131fb5f1232de93cad254609410968afc5c966374b1320e46ecb14cc01e59cd5ee024e3e510d83e7d9e174bcf435b8e1baab1b4d4d303f01879ecfc7591c694173d1ab0e2edff2e091f80153d325ce496b68bc0615aa798ea8e20b8d07d7bf5228d7def9b9fd11fc3a2bfc869ed4387a9747c81f9e24c11cc0ddb7afa0d1c428b9c533473d59160630fbff33a6434856784ea31ef716a2bb5d6bf3eca1e18370175405841fb5ceb7e4a6dd0273ee5a0ea2c2160137ad691c7986adf7032577098eb9cad2754f34ed29d31f786cec28a2e7407ead6fa1804e40304f21bb8e5c2076b2fc9af658148113084a1007876abf19bc97f292fd236cd8b56983a401ba5ac42f5550ada2ca250268e95203ee86989bc3bd2657706b39e886d31d7b583b8db442d3f6d978856f5e15828ac5f55657c061fef954a19a487e21cd703a29d603c6c1f8966b8afcf32c5a10d542976ae15d6f427aa5b84807d061b8b53a046007e5e62484c9d4915e4052654a609dd05ccfa2c51136b1352739e9e16ed30fce8955ded90dceb611f3a5221d93169dbdee2645b55d0475976a5af5a54313f6b5051883c10bc358440dccf3f13a34a7dec808db4b0cf426f0762003b4d9cdd671949b34e7988660b4b517390cad3059c352e7b531d99aca30962bad86c47ea8938eb0a10d89f62a5d56bad14956b3998eb4639b452ec959699c23c0b2a59269438d460ee59f017e8a9117f0b24b5fb75152820e5eff03f4ef479f7a76d66de355fd81cf59e10a4286c8c28c77e8fe88290ec76f18dfaf6f0d634a955c8b2adca80429598f68254e113aead84265d719463cc0cef4ad45afb3a1661e8177c7da137a4412ea9a0403642b41e9d6742f9a220258232fbae7a3a71d023390057093a88755e41574c76bdf522fe8299fd9af51b964f5ecf96f117832d9a078f40c45a532d3d2a46cb54bdc034e661134958ecb6c5f0454db58c016406bf39a457ae498cbef1e2d6ce4373d58b58d20fc90d6bbb818efe435f2921c2223a786a691e3af297ded06def1090c83d68d18b9335d713eaf996b91ba9119762df7ae1dbe003835fe9f185900d28f4e1eda0b865caeea913a11ce78ef74469bbd07027ae758a18e9bb56217081a83f864b24f8637b30bab2505cb04ee92e16a35803f3ea42a90525025a90e0f69d6087e7ef441187397ea29666b07ca7e5f87a307ae3bcc671c3b074e011ac887d731c978f4c04a1bac1c2853ea240a9cdd04b3c237e25c5f6eba9f0592d4ea573e5faa3938cb8b7097d0d8dd8de90e641acd739df805a43e27d7f41b347e07ba8d36886f06bc39bfdea1bd265a84f3b7a914fdede1be60083c13e003016ff1718572de267297a96aa810dff53562eddf11fd4d15850eec4dff401cd9396ad2661c727e3dc89fe5ad37c9ee268f4eeae2a6114c337aed91ef0294637bb493fa6844d7aa60a982d1155fdff13b51b2748d803b0cf0f98a3a21e9f42b7dbed5e0cc28e0cdb780153cc6d11e17770b1be2b14dd88710889824b58b6ebe2d610ffb67021e42fec4f63c3a7eb6d21150df52a5fca6dc8a9bd700f9e0709b5fe5f78548441ad3fa65d384309443c34ba5119dc25bf612d061745c0833215846530aaacefc772f9b10b2e0f9bc099f13be00c6f2aa492a47efc03ee1662ee9fb110a78f69e0df7459aff31ce5e271ed4642630fc8ab949fa77958c3c2a1d37f5ff021db2feea69b018e47765744ae0fc6c38f0ab86ddfb26dd55fe29f9987c637f68a05f0f109bc2b8ae954503af0b00288e6b7c00ba83c8fc08470eb33a26d5a14f4f693078b7563b46506744fcea12925c54d229fe2bc08d81769bcc03c43c6c5f981ed190cbc46529649e177f2577d9f1ff815bbef3bc805632af6100492952455734dce41854a9b7fd53d48e5aafc356f3a9a22559a6f874f3cf1829978038a55a1e65233b6ff1d58c8cbad1df84b8fa15d98b749e6a606892fe7e9b78eaa84a8681716e9395dcdd27cf1944b0072b7cc3b5db7ea316e3a1d678b39daf55636ae254eef639b6b4c6e3bb8dfcfe2415f36b922fb91f12842b9160905a1e31d4a7f4ea3123a0e99dec8293704baa75a5214a60ff303158a0813a5dc0b59b1c90ba659159bb97bf78a9d17a1d9c6208e8b41d8b82a0ade716c27b71b2b777180358b8c1b1032e986294151558690b5d7a5cdbf66df4a546a92887509604a1bec53404eb5a32077430523a68266afbf9f985bda3ae4f4c31c0b999a6d354fa48741d94ff126c5cfa682298c0481fee8e02a47794e0479e99f34054481aa65779f6a1d4c4a61d7939e48f61c58488d424ac4d678bbd22226f22052460d1c267a5375bc0cab94038c838839889a10674731eba8a28febbed0388af1c00566b5e164b95e25e658669f43d4c181cf1cc821a2a42f767a14b6cf1cd849d08bbe1a719141826352efc2032d88032083d134a618180cc421775b7813ca6861b7627a3ce1140382b60cf22013b3fc10fc09c2d1c34fb289b95cbbf3a7a9f649b3cf0ce4b8c848ba91700aea81bfe62c3295edc033489d5a28242e144ce5a75a09a70f4de63dd07a4b8c6f24bd3151c2108d65407e970008bead3065f6403f8c71da39261d614e3b02f01c4829e94ca0520defdc76e7feb48722d963755473212e658ce1a31650d900ee67e90390b68e6cc0acbd542395c5e0ab062208d835dd95d5b300db2dba463f5d5be11b4030e410430d196ea9a82d57a88c72b488a65c06725d1d00a18610e5fe9927910cb50ce39785b8afd6441a198b364170ffcc2499b83103db681636deb9748abc1e2046856a645d9057aed707adbd4635bb126e6401e2d95e180a139119eb173ac138b9bf349901109f54d542ca0d270aa8056c56956218279cbd0d62544d06052646b177811045c52f3c20227b4e8515399468a3be7e65abaca01fa267936e405cac66da45a54673f5e5606e751b50da7dbbce15ea298b99fc4c0ff2dc6a7e6fb010ae7a90bc0214cfad07c85d80d44b653c5a4ad1115a97e30a7db09b4cd939c94f6c9061d700efbca531930e5cf1c2bff9899f46402bb4ebe284bfeea13bb809052ddc5b74cf3158173bc03969b8f7d982277c1a19b67550c0c6c23d47a30c8f79cf3e9026166f1b9b07ee40b3848fc42d9eca51a94a76256ed8c18d108f2c064ad10f8252e84d6dc892c63dd575d19436f718e0320720a70cea023cb2efe0d6f3d7883ebac8488a40c0abc8e215c097ff5504daf5c2185097bf0f5e43a0dd6e49b8118d5f01710370d16bb5f6db75cc068fb78c37e16c0169b31cd6df9196ac18d94fabfcc0f13126c442c60e2768a983672b6d8e9cbd75c2e2ede079a4ecda0285e0bb30ddf0209ea49db857cd9067b9081ba414c792621ea9e060755821e7c1ac60a190fd563cd502c1c1aff0ff53df6c2c3e1bfb9527ead42b3d55ff7a572329811430993636909ff5f661746544040f00a3406d04d5e9bc3c98bd8dfc765a1c2b5e9e9d2f5f20e30080e07135952c9fc4e184a9021282c1025e9ebd4de714527f64a8f6701cc15160dd18edc3e0ba732f41d0e1e62702ed3d035c18498032b5639e0a8696a0bfa941c368bf87813f1f7946dbbb1ead0e4b9b9d8f77ccc358423f96d92f6b7ae1c39c7eb4a9abb8aa8db39612a329d31b5915b036b5af73bfae2be691c303590cd0bfb96c0b6f4bb37df18072f64ec1c53caf20253745b8bf37a7e3016847d7e655eef617517277ccb1277c3ea58bef9ff2b84a8e139e8fa595d478bf67428b0f68f18860a8bc6092e23acf0f61ce1488d267ea22ec1d527c9d3190996ffcbaeef4198f93b81c44d9dd250ce912d6670bc6e478d1d41f70b387eaa458444d8f607614e97026aab287c8f2b77d30a95a4e6e246cf8373358db046be3c8c5e1cefbe94e11a3745164beeee39d96affa5e8f2123b9728da74980f79efc19658e74493a5480b0ed10de786253d4c63a43b11add96d8f6a0b60597fa0c17f31568800e0d21632d8c11fae9ce4f214e57f23fc2b2f08de458af1230b38053cef78ff0927c7824776066ee3ef4acc4b5b2e3604188ca7ce6928633cba5f6585b065715d6910b9f01b4f91bab7d06d14b4046046a1b2479ddb46790aa1af61b93de5aa8994a774df13c1c3e2e398c2fe23e4dba703c26e00d9845e82a3da6ae109c5c382d55866d41c52a8496d8acd7212f9a969d5b606faa661735712864418a2b94d581088157c31a040960528c92e0b5be84a88ffe3ebfd879c3e4be9c83084813ae18eba15aef2e8c2999dee8356ad6502ed313c6963c476b830babe2559762288bf5cff938d635e4a22508ac96421b9782f30b0dbfda0272b56b7aedd99ca5398e897dc8666aad9e0a347d6ed34f9945486b9e245e341305e319971e64135adf3c4de05171e367ad6c18f8f666da71a99c9126df5c2d55af5ddc29d9edafbd0a40b4a817ffb2b5ef4824ad94e4816150d9934b40d777d226272cb7a1449fd484c16326ba70b68d144385cdac149356879f933665160b8355613501e765357cf52bd8f2673d652df77e97486ea00016294950ad22a58658addf3fb0df0f1aa7578de2a451c802bc8f060c4b69f723f5e560c5826aadb8ba8f4a5dc1a3d294c5ff3e73018704b118b5ef3a8f9ba1824a111c652619065b5eec558a70b0c60a091e86f0c06760d6ce30e9c7e9a8d566005df51ab8f6fdec2dd614b40b9a198ec8bc58ffd4f316b19865441ea819e7477b61ac65fad80bae349378121595b082b01e9d646e5446c7e4f5b75ff7338e6427e7c660089c1866e76fc660092014c1659402c90e908ce3ed19fcab5cd9adc3ab0f8cda85a6dc37e10086cec4c52e753fdd2590d5b49439387eb00aa2d6a57e54a4027c9bdf4eb51b078dd0953791a9018f3a8d28b156b981a6a1cca910257ec41a4fff796661f3eca265f5ed223489c2709aaa09657bfa92b9ace08aca097b758f3e1990bd30fa49ff09a1e76c7451ff710178d3b30b180abd47743f54d251d7cd2be7ee9fc7abd1c500a4b6909983520be8ea6e43572c4db66404944f38778240e5d8675aae607d661d8ec631920cb9f30a62a6caf9171a87b8c170e89d5bbfb42d7d01e9efd060afb61a45dc1c3339b25effafa677bb8bca50b29ee86b83e759807c89c3b81c5d0b2934a2c62e2cb0cfae2a30b0b270c9ab00494b3d923eb6c0564757e7d8be7becdff6baeac0ef5fe114b06d1e7e18d2b1d6e09469cff21a07471ce3120823cf4a5027e2d048953f526b8bcd436a2d935904252aeadbbdbe38b32e560f5d18248ad8fd2044b574d5be49053266233c87d10591dd40ccb99a5499e46f5111b44c38e833162ec737e40b5ed393377df7108da9dcd1c54e9034255ab113448c69b99aa8e98b082b5b4806f3ca82a50c260f3fd76bb2d465fc8f7278bac79354384bf06f805c563f959e9ced2f9565e871cf6d09af088b66514845aa230191e9045ecd05cd600f4044d63166409b833041932c201941ea1a89da591ea2b13a070ad6ec95e86825ed019181399c44e0433be8a0965f292c9d896db65ac495f1c566744eaac6c868e7fe5777e78581325e590f9aab32a278604839a7bae634a2cc076a09de0d4c17af72da7ff2c30eb801ed70c90fe1db2b6f91ba53f7b547b2fc7a6f55fb5eb498a0d060786449bffa99b27e3e2d383a8fc42bb0b64102823f1910a0c234853ef11e90042381d548aaf027829d569781c5ecc6153cc7fd2aace32ad71ded9ce40744923e8165acad2b7336a652a347ed9233f484636977d924861fc811e2213e4a8a8fdf28f760eb8769fe13de15fe809ac2c425fd3460bc4bc1b46508b9aa3f2b503114a87e44e5d4ddd955d87029632b575643128fac34acb0c2ff3b6869441b7785d94b8b5eeb570e7a4141e989fe31e2e5a531a284f02975b2e9556e4b4982daec94a685782d4fbd46c6f26f2da5cc5482707a179547986acc4c67519583b715679153ce1205840ce6e563192d8ce3eaa8d1d3401fa38c87587351f69305a434a1d8a391ada4972a0728d2ef78a372e8a21fb67a1d6a2267c09290e396818f04c7f6c9457eb00a61f1740a7a479ecaf3abcf3665ae46bb63c3f0018b620e4ad221e136f452ac1666a604eda708c601772e396cc860a9741b17002f14a2e083b93a427f51873bec53a2a15859256be4eefaa01615e1f24e9a92162c320ecad231ce4751fa5ca13a0132e72fadb459f8665b09edbb8e2c02faa70fa41a461532a15e10d24287d26d9596f03fa35a8432300352c158ce42221b891785b23a58bc9eb95a009ae481b2a0c6cdaef0f1b8b9f7e68f1084823dd42c13f18a73d54122d51c8e8d6dc2418d0255211d793e2530478341242a50f7ed6dd3756402f261060ead3388bd0b66bf3f6ec3985dfe43272233b40c446f283468ef48d61f319394dbc56eaf6e3c7bd315a235333cce7ca637b9017f5f8cb3e7b546051a685312f37535e21f05f1dc2b6234b8adba1f227355e7d2e76ad3097fc8557ec2fbee2457ebdf232b51dc9f6a0dc9d4490c483022374e5804f1099c8d68af5fa8cf7435ddfec54e5f3c86a96010093387a1849bf838b3989e20bf8e0870676284cda702bdc476fb12ce9825e11e825892643c93af50ba30ce89ad165193355902e6a3d3614ee38b1230776a4697dc528a86980f04f7b755341c4780f76185c246fff80475c97dae63f2cbbcfee084550e5aaf31eaa5ea2172de041bb04f29822facdd164f4dfa817e27799ceb54dc455debb0b30ca87c969f68af996a72a85d60ebaa799b34cc43ded4f312a7060a0bd6561b5094d2ffc1263596029747238a711f52f2050e87cfa37782b66c3c22b681ab2c45df54017c8bb92b9bad8eca931014e644dc6882d6566b8ad7f367849e568d38f7dd7201b598d17434f16479f79de180ad32bff269b5037eb5173135752e59d23eafe37b650b1fbd348a29fe5968dc2083708e0df361fd66eaeef97d252e600d0b9321b77b870626f77d0808ef79a1dd282ed5405156f8759b3e0259afea5e672391a03c18afdcc44f8d57c1a9f1f5349dc246ecec95c464ef1945979e3b5e2e830e69f0cca49b5abe834b7114833f21dcf85be24936df214a817cb5c54360321051a53ce2d5c3d6abf8652c44e2f65efd46bc730523526217c9c4f488b210efd294a3a0cbe5dde370fdc7de34d70bde8ca46ca2ced9758b49f041026cf6db89a06f28bb3ad2986f3aa29c444425ea22ccb60e71446c1a3ec51a20b6cacd202a395665e2c0fd693dfb72c1e6584bb225b20b7e40a682c2f0a27c1ee4a8034406eb34f036e63ec9aa8b642edb9e599214d75b7545217a276ebb5cdfa38580bc4a6c653a59ee565d4da075d7c257f8434016107debb041761aa82e152b2f46254d510fd54c4d6d066ca64f17338e7c37f218f44c17263ef5bcc67d6a5b219879c9add2a69da5d078b21c0a2e58650e98ca70106762298e3c0eeb5c577b88352679b8a7953a456ec72d9f170f530275ae2ffa74539c2176ae0352c14d113f6f96c29b2224e65bc94d2cc253185e6d671a7c81fea240c96fdf36e81a0d2c8f383e23c47ce2633310d6886cd0b11124f7c40cee8771b1191d73ec31bb5195ccc25954c6f48de3796829b77dd63e959966d32bdd39a1f6775c890f2dd7ccac2d8960286f220e9e31796f9efc4a880a5c07657efd0fc654adbdd33eb08d0594eed6c896ab0053d98faf4add69026011d6a00a439aadeaac48031daa05c092d88316a47458fbb7fe3578c42ba213bc8553cd9f3b4e8e8958513d7f804c99d6f36234f99ee29cb8f19665287fbad6fd457b5f80b553ddedde406a2547aad275f8de24e4787fb22425bebd59ee127b2279f8547e4a6b9cfdd6bb8252a3a90042c68ebfab402969c0c7375b233301cae68b57058a9c94375ecff2c7086690b893405f5c18e9440f0bb78d5b237e70721bb611808e80281f13565d62e1f86902117a58f0d4321fc24bd2b21fbeb67b82a28ec326c48bbbad3beadb798d40439416445e38a1f52d98ec0c0f288072050a9aa8e58548066051608777a925bbaef11b81611c69404e15a3b5def4a776e6017c852a75487939095626f17b78a14c941bb9540e294c4a52c8d838a690316423ba20f0168499318db7fc7770e58e7aeae272ba03a8fcace6becbec81394e736110e09c2ef15d4e5f9ce19e38c74ca73cdbe52415c35276391a5f4a79bbae8f2c3abfc4c82ae6e8da7c9b767d37133c132456227be3df2e3add3e3bc9f538cec551bc746ed82b83ef47999b6deaf633b419e15bac1d68f6833910c17092c70ce032f4d77ab775feb22dc582012f20e071070654299075bcaef1ae38e0950cb44775d9c2b58065114f8d9d62a6802a701214542f253b363b2021602f9d708e9c8123474584e43431054ab387805016b4fbd89359a024bb1c2fba25996edbd02e102f4054bec758c59d51b562d6a08b0dc9a4ece8802732af9971fc483f9f730d156f4cefaa8ace49b5d026f275c6fd2ba17105764c5f2a5cc48e4279a7fdd1a9edced2aaa2b4131849267d83e643beec0625aa7f87f50983aed625e64a12ae706f8a587531fbacc7a7391c000a28b326312ba6676f923abb15b86710c3f7ae8e5efd8faad99cc49b0a993a02992113f5cf9b81ca440259af2a08080437b98bf3a6fa255deee561a8e88d1b0c199d50aeaacc0833cc6ec533f0ab8ca5e969f30e7f8509744f8002eeba9aa8cf20cc48be8118a599c9c1522c9d85633a23f8172c0472d568d48e326ceaf6afba6ccdfba20cae1108900de508f46fb75f0c3a0d75dc396f6d428f9109ee02bf6502fd4cea411bf6381a7cf16ee2d1ac282fd186d60c11d1a404d4866020bd330bde4c58db044acdbd0e73511dff78d00243270d405e401544a25353083611ecadc7ecb58f415e0f4f6c9fa6642b4972a3aa401e783385fed004ec44a70d609967b1ca0ddf5da1064799ddb11e98aa3750381c8e4ca02598e9756c13c232a7660a000d7be6404b5f792ac0f2914c3fad430b91c6a7920daf0e07f2100043428df71a12113164465f619926ac3a6bd18c8865e9fc1b22e9b2ccd6178ac5bfeca895d9f6235f4ddccaf87532d6d5d85ad48b8aa3caca7b90fb80c7df0891309cf91e56ed22be3ba91eb0d28c77d1076abba587b76c3941ce3eacac5e331a9702a760e9c9222b5a00edbb9005d4a1eee551d5b9998ad15ee5b40ee0f231ccd80c51d704d2013bb26b70d3da1519c6af39ceffecabf5ea04b569a7e9cb0b5a1f0eaddb1cf68b293a79f582dc3952ccb993defe85377a3aa41bd69e4cff026b215049c089f06412c051a3fb64b2f0037c405e474e511beb6d8edd17b3637919c42f2379e29d6cfde254275886c8f5da3ed084f1d49e0550d010158716d8714fc6a5603c51f0c9fa82d810b5d556c6b62c6944da7e746b65855a4a5781d233561dd6b2826d14806249a68580b5900d279e9b75cc084b307824259c176088b6fa3d2b5d972d8a81bb59f07b430c6d086f5d99a0493b89462acbc0a9bca0a81ddab9801cc4aace7232ca58c7d12f1904ad61b79669bfa5c66a5f13ceadcbe8f3d31b85c868c0e5afe4808384cb62e66dc584346107f39971ec3d21dbabbeedb03b7d439e906a5f9e5ee7a72aca2eeddbe637df01f611a622dc09cd5dce0c5cdd3d87313ce3eecde0d80934c780549b2f039e3ec2340fd57ec9d1d037e11593ed7b4483a064468d526523a9e359d4ab4332e26244abe72b8a0a9a6c4ccd536fc45d1af53e08e8ff68d2f1155183bf7b7e2de3ff29505cf077d082fe874c602ece13882eedf872bbbb8025c3ba2512a4c35003c6303482a76e2d1d7fd8e394bffb4b599a79496412e04e6e6b124b697791e8880c977ad268f2596c26d071825d4576592110daecbf4b2c2c47fc26308705a0f67d57328860f025eeff6d90003281fb825e263a3aa43e0ac9bc469968ea1c5344e4d744a0465c665bdb300ba2d36bdef27b1f647ec0d3336fc0f3406ed2f24deacdbc0c36fbe4016d6b218b02927175d64e7f278e544741059846d08d4af925b13d9cdbf18bd5b79adcacc10085353b5ce1ad6707005dd946485195dffbf13acf735c5b096276fcc34b657a33e294e85d4ad33580803051b09c031f42d5aa49650cefd830e6d4d2e22e47b08e1d527504363173315e6f7774a0cdc4f4b9027c5a2c8d0563e488316e5b83022a96166eb9a31d82e952eb22321eb4a7069407d4242149cbe038c6493f7e3c31ff4ec2868e8b9bdd571b3ef8120084222640ab9b6867e9d7c753ac2db496cd805c8f84a8bd7f58f47a098d4d73b2ea43693f42a68dcdb3120ea62b946d70eb4c49540cef9a5297389078d2678b0abaf3f664c6186b5d98a31669e249d103a5fe5b00f5d9a76a2a86fb0f995134961bb389055617e09fcf8dcbc024946447f86b154d944441ca4d4dba51450dba8c59114c3b93b999cd2c9886ae96f57bde80a8b2d689ab689ea67d70aed31f3074d984d034d4b803ed8f53707ebd6b40a2d10b6d0fb69301a8f443263ef26a20da032bcd40af611698bd38367874c7965940703c829332114494b189dc34ef0e6691674b3dfd06d7888f592362cf49487b441436c850418739bdf2913b650d34ae7fd3aa3520237f268e57b1d53524a31b7173a534083021888c2ef6448f0c32dde7d477eddecb13692715e5dc208c9892db3458e10ee16623e8d4f5152e406629dd06975ff10df549b91b85ba626d97ff335b4d81d9aa45a6e8c983f2922072cf5dc31fb8f818408c260f2232b7e1b9d20e82b9d719c3833d264c9f851db57ead8a681f66282cc3d177c25a452a2e5d927cdcb52d3226aefccb63a7a81ec0ff8ad2a064c48c09d0f61d7b04fa3a12c3a36c53eb39cfa6065809de2364d29f468492f4d8d1e53fe44130e12082ba863e1f7a94fa128b9e4cfa8fb101da4998bbd7c0787e4c8fb945bda2a45648db55f8bc3dc6fd92f544ca7ea23a109338bee1b2875a5d9cfb0c870c602bf3faec860e5082230d39c3d5d89713ce1135eaebf1b4602db09acff9b788c26278581d88c74e91a4b562ff2431f454d28f060abb7f90112b305ac32dac0f161353197ed5426895e3bea5295fe52d50ec01294f1b1b9a6281e897152380a7a8e971fdab82b267e86a758c0f7e851463d7d1079cbae446bc126e4d6375df4df0bcbb78dbe041b9408b1cdc0da791fff070022fa8daf69bd9006e88604346170e1204ed864c22e501d1deab93ae24de4267b07fb77f11d6397c580a240e490249c6a687919447bf75cd9ddd19a81a43b15854071d9925adababad84f8a2d2c58fa81fdd8515349c54cca7dc9be99a06d3639b8642492fa8b859866a1d9d5143c70add3211694f23077503cd8577568966fbdd364f42f632264d85f8ec379498ddd0f933170c4ef9dedc426b8c786be2b389421da73cd629759b81909cf7c6f1f3fbb9d2e0f018780b28c48672f484ff5dc2cf50832f536f258d093538c9f10055d7b6e0277c380394f02e6bd89bb9c392ce2516befa227876ed558556d989bc6a49740335aae86da6668f27acd852104a84c992630b441aeab24f347c8b6223cda08b14acfe516eb90cfcba3b5e58813b7b994e0d2d8bfef945e47fe0852bdf38d8f108beeb93ae39093b099e363559b3919a752eb1acbeed7b8ecd2e1104ec8ff9955ad03357ef483606e98cd31c07fee8bf9f27e2e839e236b7eaa2413bd73bffe318b0107e7b20b07f10ea8ab4a66e9c31121ea015258718c8fc1ca7cf0b9061e4c3ba2c24e574d298488e81c4e1f5c84e9d1b0ca8403f53fd46bc4378186a6e02d8b8646b7abfb05d8b29ba9ffa9ffaf5234a16d42cc5aa83d05b795ae6832ec1dda9a3a1e498299a8ed3e03f091c15dd6473e39dbe965b9f0cebcabcd963ab9ade382ea440f2cc60cda2e0d275960ed10b5ddb84431423e1fd50f355f7bc29708e4a1dee65fc45945e52e6ac04425f5b0c244461743442576bef1cdd7845227df9038c4840a1b0c20f758cc415c07477a54441b12f1a39cad3003fedb6c11dedb9d4bf8677a20e9ec1fd869528f3c4c28869dc7ca832aede7da04c4160811ac8ecd9b54a563c5a6063da59ab890f04ef57a866ca80a7e96b53c2fe9a13ca1c3bffa73250f6070d2fe98dc54c317973067cde4b00903dc0817aec2012960b6cc4523a8b058397f929ddc2574b8b26219a0bb6018c8d997c1ef52574c194ca86887837f1e8de516eebd8dbb5826eeea226d12844b4c90c3838c821c28115d64b789c1ba55758eea24ef252c921e091a1a2b9dea53aa764243d3a8087f7059b8df1c7986f5eb200d8d239c462516735cc0ab5762487f7c380b2e2a21a33eeecb97f08be45c938206e55d10b5fe24a5d5f10b948f53cd7350fdc051847c60105aa962b2fd931386b760447043cc85fb78a570fe58e795855d54928e8bef656404360004d3ef181d508e5231e6717e8aad2f3a1598b63d1c4c90e0a6e28d21f7181def9df1206255541105688099b3599f45aab4996a3c82c7982cc9bacbfb1c3148956d2b8d58afd4a7e99aec89d8ff9f4cba545686e28823d7d6123fe7f73b499b9114476b4acd455052bb458f5db6d6b279d288f0ccd73b31a470cde53e23b3d126c299a57c529084b951b033c6a90df8cb2aaa9824c295972b34ddfebdc620b2a0c35515815ca2dac3eb1ed61b4b7a56028ce6c7754c47440adeeebd69dece75d12cfb29baf7821f709cd7fc286481b743cacda4f20fcaa8daf565cb22ab1ea1694111e60e79d7616ba7c4375a3e5a82fddd7b39ca54b18db07effd87db2e7a43a6e5dfe0d021ff2dd7b68a5c9afb2ad2230bd5232299fb2aa41ea4d3af8f0f981a30ce6aa43ec2ad8034857b78ee26906b96aa3aa1039c60ef28ef4a03905eb1c9ce71f59f172dbc39bcb6a51ecacfc51e0e7c0fa2a92af42962f1663a5a5ec4ad6bab0a25c2a18417787aeb3a42e40c0ee624b2af21a526c77ca9fc1858da959f8fa574b83f21391249d466555abb0ac4ee38d33026e5a4bf5091580a521bc58a66b5da6c3fd8f42bbc5e576724c827af90a5a842b49efbe362143d33dfa08345a00aa8eb096471fa053839b06899e33ab8bd92b8f1862e263745b7087191d90a0bc0af364a814fc38da416ae0c4f0a6fb393a9dab4e77ebc050d4e15fc9ed410917746bba169b3cf54501256be94b397ba12fcb4e088b966041b65dae4883c8f28ad70c8d9771be9b560d7f782318c43bc8bee349ddfd2014064fd8dfbbe823ee2c28ed99cdcbe8a18ebfc3568934e59cd97539fd5c8b756f91c25aac4f9d54d630df57a3b228e39bdee5d99d1d9a3c8ae19bb46b42ab8dde11aef14473b20f30cc1b4ebd8de11e16a6afb169548a4d0ac4034c1e10c81680d8bf6c6d724b2d7d2e801dfc0b6d3052a4efc3de6ebd08ae071294c4a8a288290c78c388dd4ff80e8016eee628e444d98d1fe808b1012af7ffe37060857a49e5c297fcb907f28e46f512e2df163f343ddf4c0dc3ed69a691c8aa865f4553c432379a36bd18d5e99479489b91f87a6c0f42cae430beba2d3221aefc679d398122e748e1463909bd93b64d13c401c7d260660a36bad3b50c250ac5adc28d36f11b258b96ea34cec92ddd216d8aeb05ba530c3542b60939fb529981763eee5aa511c4303cd57d3ce5a0fd0d22129d7f564de7aa7a097427d3cb20f0e91cffacd1f76f397a81d78badee359d916c5258eaafd87acd8666eac0200b0cfdc302ce18dd0ba19099b5a11fa2b053f6f63836e6b61ec139f8f31c35e84dfc420d6d72912c20ff960ab6f73a7c4187c94cec7eadb47da4baf5b5c61461e43ad4563a3f38477cb78404fe83be505af64132f525f33cbcd2cd5f2b8fb6b4d95e18ab73c97d933b1c9f572a2c5d9503c08bcede304f27641ed69be9bba30df6ddacff749ab3887d6f6a51d224607e74a9da6d4e578809b67836931e5a2ca8506052e7443aef2ace8d2284c4e41295b11d61e3c0b189412b30e5f207391abdb4e1191cc723765f99f857bb37d3f85b71a9e9dce19865a72e8e0ddc3533aa7c2bc99ebf8b6b2c15066f5ac3d3da16e534b021d9be69f6613308fda4b2637f1f13cc50cc0c703fb37ec340c67a76bb97b0b30dc4e3f858d2d12bb125f8ebe188ab679ed394dac3c6405c8f21eca0c4926c9fd38359d04cc8f683e36c933e392c9b33117a5e9998004cf6d1641cdc4404dfdcdd0bf02727c87a6afd854df2786850db429914afe4ce21435ce0a2d149cf8740a319cb7a0ac7423aff6758b19d0f7e67f82de56ea93949aa790491ad32e1a51aed7f2cfd4810a1820e663c8b405f46f87402192462c0511e3bd7e6679575655319c67aa1b0ddf7c8ea11a6fe8e0a200f453d8a3879015809b46127d0deddf37f737210602939374a26c75d3c9972cc379f7c7f72072ad30cd3d67e7cb04298a07e8d5dae17c066357e5d338fc3400e36abcb40e9d30cd85a4ce18ee3097b3b49a6650be3ccf931a4006389249871ff1b2ff46999b91ef1ba4e2412550aa447b53426d4bd3baf5b1156bebce12f5b02b8238f489b7d02692ee0b33f4933dd81787ed1f751ad1f8b2a320d5987373a8e02cc9a3c9deaf40750981f3fe5fa6a51418909bac8e0d7650f991084fd92fd691dcce692053ff69d38ce9c6b2e2aca299352b0d7fbaf3cb12099af2b2ec6d4be80ff96bb2b0b37473ae5fc476774d7e7d92fce4e2d1f576fb9f7791f03bd7c2d29a9ea322ee4108b2aa8ecae4e5b49189639441626260e451441751e9eeb1361b5edbcc9a1506144ba217d52cb48918d02332fbfda50d53b1785f64f146640075b7de95f0d3a5a5876ba41709b7599dd694075fdea4e5c135bd7fea9b4a36c9000e983e74983f142291fea26bfaedea0f6cb473dce299ba132ede26a889aa058104030c39d25ad083434939d4af4bd76f7d936f98728410f2a03fb7c643ec9a5ae8715e4590c2aa1a7ce1c0702a87735dcc84798f9f1211a9bbd113c40e61e47a9c6b992a2b727c60c81f560aca5472ce478aa9309b02c00ddf5146ed8ee1697e400cdbb32df36a295ce45f0d90139c8d75c2b02cccf71023a538d5d77af24d855d65bc60abe9f188316cc7b9f01ab1cf71b52f76acaab9d883afd3d742b3aaa67ecdc0220ffc2726da0bb9028f3d29ec21b66adfedbb3f3e151e365c4fcd6d7cda5bc20712169b77fa849e9632a29abd7a121c2a42919d6be6a7eebfd7813f81ae93ed6ed2e371b5da8bead859e6fcd4d5374c14f27b130e28206350c3d1140bb5a59ec47c0da85a0cc279df4a252fb9a421a6da5aca935952c87760fcb800f0e58f624ddf183b279be716a146e322565347f29380e68b41afeadf0b661405b72223838a95d1bc6839604c35226396adab827b1e1b7c8cadc3d6da62f761551dbfc04dea57b29636521eee3ef650666c335f88486654b33e4cb79ccb71c0b79e79792d22bbb13264507b3d9ee8825b786ceca014baab83f58e57eff06c3f64b896f44b104c8e68e63a86528c8a1092f42608f1104cb8c5a2d5b28aa67b04224885f362830b299fcc878b4f86b825d258a1788fa5ac84fcff6f38379e8f3e72465f90a327341f87043458b194f74d595e4e6427b1a9c9c9cf75898c9d1e1ff296feb03ef68a4176e5702e969e892b3ce14ba7d50107047ad7d423c8878aa16c37589226bffe8e2df07c0f2bf3db5184d255b58471fe262a9533f16326ab291f50dee6ec08398a8cbcace3ca24bed93a2e0207f8eed4a40d3013f6c1e868e461f8fd7b1525c9083b8d2f135e756107d5af24aac0db11df9510f7bd06f9c68bfc8e6ad39c943875223122678a2bb5919d8d46619f313b70b26342acbcba9ca1b0240561e5ecd0275cc2ae78635cfe8825c6d26028ca11b30895d73680bb7dd2fc4c7893c3d51894f509b5a6a1d6a010e5f429351fa1b1700f1a7679173459ff233010ea6bfeae19c1d5d68cd93385aa6234969cf0058743edfa390f2b984200e5b4511bc1775df02242441de7097c2c22879cd0c190ef5d30a1284fb40330f827bc82bbe9f55ab6cddef8c89cbbce870bae84f6e8c57be20f5d4cdfd275df50ababf93f841d8a61795d4968b7b3bf610421c8744dfea4bd1494af59d74e24bb402548af97d431f94e5849ac1a9fe3094e93c9763f6855f79c36371ebd6a088eeb0fce259d0351308b8125c66c50df979f53f71ca803fdbb612fd48eaa19fdddf3596c36acc41779f1b99e16deced4c567529eda88054a7752fc5a685810d0029131266808ee709c29c29c2df9f3431ed83648047046d043799808dee20d8980567e15900880de046f97c04df89f73f79f38422ff77c01f447036aa436885720da59a5032dc561f24315cf978774e2b7a39ff45a5c13efcf1e733efd65171c69971e1e56e665502d2682635fc051cb72dce8cc5f466641648a1ff72394c38f7bd741412eb1a40cf12834b27293bd37d9726f295392321f08990894081f958f4af751f9a8a83ac0c5992c430f9e1fb97cfa172ebc269bbfef27e2545cb5774f070b9f5eb888c1a72b5304c5deef27d6ccf95f50b7b4bb811590f5491096fffdb0f0c7023c25e51cf02dc16acf4d4d7b4ea6e807bba64dfa9a974306c758137164b0fc6f099616619a6537c61acac2f2292873c860faf4cad013e3a49452a5721a09059b2d9ed4c115ed0752bf5ffb24fe3576a380b2972ebfc9b49f1a983511135318528a43184a71f79e4de8cedc27cd6650e95de72af756496fd9ee3d650f54aa9919faeeee4dbf5d8abbbbbfbb7bf3e8974f98b0099b99b161430af58aa7cf8a73c82f42634296cd70974d4d2e5de2158f1e508ae73c4273c82f028729956063236569494969fa4c9f69632365ce68c5ca1362524c3232a22e3db3dd8a4d9f3e78a4a5a42d9b9092d275912932511c387cc997542a29cee44cb4622d26b377f088639d8cce69c37e4eeca7fa00f27524cc2594f1f8899fc0c56e79771fb14709012ee296ee2f41893d1dfff6e8ad499cf638c28ef5c89cd5c644f7ee692d0d6cb65cd81c99b4b0d2c120963444141f40aa30c59290ac6dc2ca2849b158e3835d62e71216b1c635959c26ba8a9c48768c2822f130994c40898860db32616d6cb04dd462dad430fac15deee334b38acd6148632a31f110439ce0fe206a17532516b94b70872a6c8e4943dcfd4a5f220379b4cfdea63ece22e27be05d61dbd09f018b026b23e4b1f1e5476f87888f4cecf3a314a650c1939ed7ebf5e38a36b051dbee06d2a482602710f3958364c386164b703f8e9fa9c1c5e08836529fff675431b3b521d8845760c2fd346c6aa6869c5625c59e3a60a59440f369daceee8e1fd2881e861a5c2186447b865c8168071ee2948c0ed1e8a73566a2943446dabfd44c51d85c6d6033eda98d946d23f9cdc4820b24a4c79c260b9b63d112eecfd1810e6951903f3e34748526d28914fe4dd42da46ee10e924141fda45bf1bbe8473ae9b087da867e073b888a953f3d248764d85268a8873a0cbb83e493a01eea16076cf6a1b641b89b38913d16d64f9ab0affeda7981e311a2ef2ea58c4e93e3cf77f0884d11acbcd51d87aac38ed9bcb02fdf3fb471059e90068ee984b5b14318d2e8a2140d2f9c4c6c56a9626c2a0686576cc2c012ee4fc2533fce64d9edd25d4a97ee59a6655aa66559a7b2db3506e48b0334b0b9f634713c1e78d77cfa6d03ac6de8af32b0b95f320a9be7ab739d3e32fcd5b098e5994c7c1ad661bf624d7f4ef792dfc8fbea57bfdc35efcc5e45aa6c6d1644b83ff533356266f6a774febb2459ff4e55b1f993dcafaa43b02566b7269bdf0692a9a3bb1b49cd18638cf11ee9b05d0a59228e3449251c84fb53441c913c312ea594524a499dbabbbb747ffa392db39be50b37111888578e5061b354924addfa577fed2453958293ae38239fd82a7da44fcded93252c8b1edc2f97d42e4632c14d3a0481edef17ced207afe4c74f425244daa109f7f310672a4699ef1eed90f5dbb1bfa882c976ae7509f777aa181a29faaa6f1bfaa715d1d5354dbfbc40b01faa62bf0bb0b002f77f679511162fbca474d3aec6de04731f8f7cf94341c9e51e3df95274ab093ed2d802136f2c3a8c9c74c8e9301a724e765d548423d6e103a36ec520e8c0098e18a5c368a85b1737a1d9c7ec6a51348f7d576cae494995a629463981a2c2278a0a4ab5b8821b0b4b70df231668cc498935ee4a53a638277b36ca93b8a458e32fab60b3164bc2cef957fa85cd9e84fde7bc5accf164c2660e09c963b1c6639c5266024ebef48fc84a1d6017bd3929cd3eb0111b9fb12ff618bf2568c4064fb093362b78511ae5479b3b1c553106ec1ede84552a8dbee9be53dd4bb85313dc9fc5a6c9ed8486309c6bd85274d83d67acabbdd55f38a7737a2a694d9d70fda07f0463ff0d56fbe6eaf66dc4a67de00e4bdab43e2775f45b4009d63ea7b589e38cd9e9b353e3e8f58d4af00ebf165082a3d723cb4ab2cc45bec3e9f7b7f772f4d7cff1221a9eb2c61afa5f13f6fbdb0e2d519696f7c0acc93c799e159c745d9437248c3ca3f8d3d353fa1a7d4df59d15a060ff4ea5fa18a7aff5e5d2108e48c0d1c80a53302703e8e5e8fe4800ba90a6931107cb205f62989971f9189ef79a12773d1e52d3406f87f7da476fc6d3c0979717199a0c50e2199af65c4d9665327ec60c564ccccb5319d9ff8ba6fda6759aa681fd2aaf077fed1a2171f731bc1cdd7fcfcdd0b58fab54d66659f62a6f0e75987dc6a4549479817e138cd7833f65caac74ab29e2449cfd8bc7c39fbecb8346489c63bccb6755603e2ba2bd52b7bccf9e4b793c2476393d7de9f5383d7d0f8cd8c5dba1c9781558e4377229d76a33af07c6cbd15846875f5e5ec6af3e93311471607cf6930611a7fbecb9aefbd5cbe81e0628318bd783ea3bd577cf75d775aacf691860c4715584c4da1b3171f7457cf8e5e5bb6b84c4da73347448d80f6f1f23099ba7ea0b36cf1facf2227e8c3852fb3ea23c4df532c088dd2b426219af8146482ca3bb39c6779fbd3cf5741491f131aeca8bec5737c770d22dd52d126306754bc6f554df793b62a86c3a19717214e95ee5450ef9458c97cd0d9b43309f15915fff3b8f87b743562ae389a2521dd2af1dbe680fe3c60e514fbf5bf4763160cac2f463cc3030f530cd1da694524a1ff5d1d3416f767aad03236e019f05b460ae4764ce5480b34781b17bba05ebd612b9e4375991cdaaece686e2814df0fcacc86f3215449af93710c2f3ebcdf60578be9615e1f9dc1d8222c51cca6460e5b7cfacf3a516ddaa1d66134706c664d76e3eb0f6d4880dce9ec699a94425412f548983a3a4944ac7f28a222a1ab582d81cf7a19ca09cb8bb12285ae01823288db81857c4b062bb2084a007ccad6acf61ae51fec4f4798476dc0cf4e35d4106f0e36b2e123b809ae711c23777ef42dd4c1fbf27840e9f43901a6a901cb84705d9de0b82f29e4748879b81827c0e42d410e46d84a8c1e67984b89b51afc3cddee7f027207acc5c24b5eea071da7a701b0f1a1789edc1c30eee22d1f0cddc6f3d7e8248340c14c409c8e511ca08c833bc0c1749a521c309664e1a33dc4ce365b8482c9019b69b5f341e0fd363e679b8486a0f9897df7a6cb3c7369f4788c7cd403d5e0620333d1e06880c33cf23f472f3f62ff361fe7491681808081808a81808088d0a6447ea6100e16e86f1a78ba4c337091e21eef43c4208b81908c8ef0082c6cd40b07701f9192e128b93e011a231c3f308a56ee63e05e3e6d3c3f81cdf41470e1d1d7270e11c1c0e70030e30fc1b60001e078ce10d0002e06d80372dd006e952c0d70063f8028000f81a4002d88034b44b013f003086af0101f0344001cc00d2247197022e8f507859431d7a002e4b8a0efd650063b84040fc0c0800202e8bc869fc8980407e08d8e38580407e07ecf141402097f5e334fe3fc01e9715e434fe175c3d08caf80763fc0c50f532e0ea59a08c8f0163fc07aa1e05aede03657c07c6780aaa9e035797d5d3322e8b49c7b82c1fd56535e9d0df053c6118309382c410ace017502302cc0935c030403f0112485be0149831e103262a6097cfe922dc027e871e5ab00809064c27f79b9c5dbd9b96a6b26dc300d67ad08ad0b4f7ff6dbb471a6bdab360dd62f5746b3e11761613ec2c1fecac26d83fb37eb0b39c60cfac20ecac27ac21ec2f236609db2f1c715ec1561f88ab2662e87f1201f6e79cc0fedd09b0bfa702ec8f6a01f6ff562fc0be82c59a8823f6217c31ec31f3aa7a00573ec01fc0a1159844ba7eb0ffe003e82e1f6074f500664dfcb8a2a7e36305b3c2fe155f919680fb19358d7f451dfaf700a3cb8bbe22ec4b88004f27d89f37af7cb0af60b70801ed8304f6ebc2fab70d58b0fe2f455e486a42f4c99ed988aa5a89539464141f483186c3060d1b1b58ce7c873247fc7e29f3cb06b9ce88cae5fbd2529251d3921117a06096a3264d381e998009b6c1f128054add910f0f16008e472590f2750c67cf5201ebe96cdb6641896b8b6a0a5bbfe6a09f5bfe48e37aba398539aee5394fa7e5b996daf25cd737d3c57df574ea472f07065eaf171258c94abc7127b07e87df47232a6c3fa73b4fc77ee7e97c6f41cebbaf3ec78352ccb5802c5f59fef374502c8f6241b1a02c8ae53f0be66a5f7a3a2b7b79505cbffe77ed5730aeea4b5cbfc5e559402097bbaa37d561f6d1e5d92458db7da0c4d67ef47458c022506f9ffb5858c0fa9f8ec6a80936b680c4730a361fc119f53643a52a8bcddd125c51ffa9f087fa6a6f9618f5f5338fc709a3ead388fa0eb544b7a45ba8af3f3d9d6ac1983d0beace0e43f9e40636cb58911c92b19311921c925248a26ed9cf4e9d84f54d746d1fbb25e40d89b72ff23d77921db70473df815909ee58ee6a8788595e47c42c77d5f24558be3e4bfd963fbd12bc81b9c3dba394bcf0d7c202e66a41efa38752823f100318051ae930f71b98e31d183b8cd2dba2c7dd9811d8fada6f9bb6c98e796d9de0bc465f8a3811c7f8a0166b66cf299b684c465b5882fd939c69c2946ae06d21e653b627752b57257f7f9fc202ac459c7e281c28caef785f13887eb9e47dcdbbda91aef9d2356f12a11fa2eb880dc42aaefb8a555c3b3ee4168e4a108463e0785482228c822b5210c3f1c8043c2720c1510aa8c02c14905f847f71051b69bf14f01efa85e5a580df150f89fd25f69b75445cc448ac822f0562152c3f56c171a6998634240d4943d29034a4d7905cc9955cc9955cc9959ca691b42267f2e682b4240d4943527a252fb8cea1634e1d4f67c260b4a848471b1afaec1336fbcf0fb64fc4a6a6a222099330fb84dd2aeae6909ea4d312fbb70ebfad3501652ec591e05520c1f25781db9560a46024e0fc1fc38eef55c456cc22769f2f9b8f35fdae2d51b1b058f36561f3846d4b5a934fd1a4c4b09da66716965342011767327d617f6e09728ab6c27530614085e291a6434e0e136c963d75b381cdb207cfa6d7bc02eb79c1fce64f91be3c1918c1a3145f45a9eae8044b5e86e291cf955a03777e1b3f3e4f605491165880c32e48801bc431adf2414565db81516532e2c2898d1e27cc22232ebe20e5cb59d07538bb91bd70d4426c83e347bcb5b6de9afbadd6caddba6d1fb3125ca9a7b3f520bf629c41ed6787ddea5efb186377719ceee96c13476f47cdde47759a88b3d76ef603db4c3ce02ab0e2115ffbc68e638541bca93fc46f6ab556a5fa0f434d4ac139691afa43c827d556957d55f83129cc3638ab6ca830a53452ea3f56125d39d461f6034ba5d46cf149810a2aa83842cbf4ed24418a37241bda867e229cb520dcdacf9c3f68f2f414cc324da3e006723c2790e36af57480388d93941a993e1ea54027a51c4fd3f812e6b6ad398e4e2aa2d7afe33ced722f1694a7b9742e9e8e3f8b2761c0f074ea73744e23d3e70a29b45c91d5ec8a8813351fcdc7699a1ea196b4264df351b1997bc518359f54b7657882a797ee93829d722e25b992f60e026dff793ada12a660c46e05eef529d9ecb1c8bd62cd77052ac6bd5e1167c6e76034a72a2d8646352da3599daa6f427f341f1d8f693e1ea3284a3d6a3b0de54d16169b4ab9c0e8703c9ad6c4c1b85787da6a89cda825eeb5a4058a0965a55b3e1127a5dab816a58732a38dcba0fe33ccee331db68753104114b0807dbafaa3b52955cc66533077f798ac199d465696640c381a5901023ee168b4c594a2ae8a27a67423e08ededa942a860a474e14e1c8891d1c391174e444088e9c5022d54515aa9002eb49e1c060c511984cd191e088c9133afd88490bb2232628c08ee3111313e06c318cb3f286c4387800a6e4c2e1d554e452e2e262774b29dde386a2a1093f78b936d072025ff020290966e90b1e2425252525c914e1ecbd263b9f8b19b83df574b070a621019f9ecbb2fbfdc49ad3293b7d9fae96d4adede60a489cbf1f2dc6c294de17a658335f98f09429f20e70dc47450a2902b60e55faf21b8aed9f3e606da27d965f7d24285f1d36fd744bfed42a41ad0bb1e6664a6a50179e742b6b4d75a85bb9f2f8c81b59e27e4983fcbe99a4a1bfc276f4cbaf3db7f6e45a7b2a4cc866fedaeb98df1dc1fdd21be43210a8be067e5dd2b549d3380527aeb0da436ff5e9d06b5025aa419f146caeb159ad983556ad88d2d4e195faead02b4fb7fa4ec755ec7c7fad0b11277a52e8d58a0ebd7645aa4835a806d5a06e1b6baa87c4d12c9b71c61833adca8e295ab992f98c82003b7b039362436c1793b10e933a945364940efb7b50945599136b70f0d8f899060e29582b8d4e690fb44816b3d962997da5b16162567e5b252e766b7aa5adc437205b5a21c6186f8e31c61b3bb4b15114ca489d3ead94e2e9d3095a1176d747c54ae9d26972a60e97965c7aae043141c6cb6589f58f381a7d6109532e7f2f4447f01728dc136d68d3c2e697a0d74b90df44977f2f2b2d495b7041e92a69dad0cbd086386d481b7a097a8122de6cefff121471e4ecedbe401169fcc5074d9146defc3205f6bff985062f434a60f7a0581385cd2d492f414320f7136bfce94b10f697a097272f492f555ea4f85e2f462f432f482fb197292f44d89f4ef91a82752b733f1fcfb784fb8938fd325e9b265f7a3e4897f69c46a4116953c418315858368d6836e9d0ef64929d0948bbbe945d4929e27c4a4a557a9af44d8c97165e68447e65e9056332656b44ddca9f064533d294b2e0e24cbe45d8817c8f8fef46a69114e6de480a28014f6345b8d73e8b7dcaf674b3112398fbe8cd22dbc7ede736bd39c19c2aa2bdc4415b18b4c0da6bb48bde8eb0c320e0ce0f01853c37c1f01f0c67604fa7db2fe4a5f783fc9d9741fe07cbbeacc427d473d2e351bf7b20601220ffe37b80497a7c90e7220e1b8dbe80822366791d3804777fe2a2d75dae4ae783edbeeb5e7a2f230d3309ee7638feeebb0232bd01dcfdf3e8ae8ca1f7b4fb77af8789658c682cf35cf48e8e9a31e316e158e6c658e3bdd25f6ef6d1fdd373fe32465f5881bb97a9d22d4ea9c3ee72555660f30a96e18893e1d3f51b213e88f7e85af574e82b261d8c13d4161626e8c26443b0427c86f939fd7dff958ccc3bcc8fdf24912e21eecafbe812e23d21401b04ab019e9179ef673c473d9d19d6dba1c77ff7393da37b99bbe2d115f9cb55f9885964564e646456437ec3e33dad6804862bd87f055bf5742b46d08a6805e5262631c5a3d712ecbff2917121ea5686f97181d2ad9e02e6c763607ebc21443e8897dece0f1fc49d414e0383e74f87fe035c01f9f14a5c41c01590201fc4077193cc20afc4e56391b047047920fe881f4fe4f30a76faaf08fc1f44c0d5cecece471710e06a4788908fae4c09db3d37bb1fdd0701a38b931ea5a38af02addea6eb7c0f797590282abee25ee7e08b8eaee57e4fa8c9060573277d53bb0f7f479059bb1a69b18f59cec8280d1f5038c2ed6cd1d461561518445117e82b5ffbe68824fefde4e7f121f2fe42619f23fdebd1df9497af89d9b24c8bf7cf82382bcfc1fe0cb873f62c8f7fbf05cd6edf0a17fc8ef80f285801fa4eb582cd6b33ccff3be76e87df458dfb1bcf7ae4b50872e0352ac29f21be94a792f3d1f36ff220f4c6d582c49ecd2715fd1571471a490677d8c373bef7d8c373fbefb186f883c0c2237461a182f8475b34ab57363a4f16eb618c6ffb831d2c0f85cf147c5761f3de6a78fdf4817e70592cb7c79f18498175f50c5bc20fa86ba9557b08fa85bb986e093e283327da68f15981f989f2d5c885c88b8a064e3116905731a2e6c6fa987f98a628dff8cc266989f0cf30dc51aff15cbfb6f4ab7f2f4e9c054872bd6cdd198d5fd57f4197d48dd7a51fa96fc3fa6cf8aff77a56fe8cf6745b7a2d19529d8ff8bb1bc6efa742bbb10617fcfdf50936ec523b84b51c421723182797d43350411a78da4f0d783f6df7778ba21101fbfdae91ed403d2c3af76e4fff81ff708202f3fba727c82110701a36b08185d30609e2cc09ee44938af6055860fac80dc56309b0125e039ad030246570f30bada0be7bb802c58873e89d07e7ecb91c639b4677916cce5fda7cbafa4186265478a1f569e74e84f88acb410f2a45b598b6ecdcb7242643564b5d4ad0c2464b513d4ad0c1464a85b19e8c7cf2520bf5dd64f0c53b732508f9f971504bb61c9017a706092e3739b803fef64c6fbaf88ba95c3c7f1fe2b28ddca01f81b45ddca38cf2232ea5636c0b3a0ac907678ff95153ade7f15cbf1feab283aefbf4a9279ffd514d6fbaf9462de7f5565d5d4ad7cf336de7f75a55bd9866fbd6af01400a6c3921c7a5c4cb00faa89f7d339a144ddca04f81aa0742bd3f036ef1f533480f78f31aa79ff18a46ee5d4fbc758d1ad0ce3fd6362ddca2fef1f13a55b19e6fd6392ba955731534eef1fa3d4ad1c23a64ab7b22aa6a95b59004fe3fd63ae742bd3fc0cefcf7a752bc7f032bc3f8ba75b19003ff3feac21bf49325d0a787f16ac5b2ef7c1eb808f016586f80e442de03790039168413cd88021e01b6088cce318f2370c39c0101478f30dff43700c31404c0386fc0c07804464fe06111c1c1c6efe077366e0102182f33c427ff30ded86c7b9482a8e9b71ea101c37fe87fcdf7c7fc6909ff13c4237dc0c34e47110c119f20620826380e711ba71f33f0ef7e6199ff36003643e860891984b042472c1e71192b91988c8c73480480370dcb87f03f807781603760a90596fe322a93b3c423bece8d841c9ecb06edee163760aa003c5809dff866009b93c42d9c6b72e929a515fa346ccb374bed6d7b848ac15f23c423137dbf8ef22d162be1c5fe322a93bdc5ca3eee8d8f8989d98989b65fedb89f99e4728c7cd403baf23a4c6ce17e022b1350a10f339646efe5ee7590c68dd6ce37508417d77915421ad4e46084b880ceb79846cdc0c24e45b0c4009f98e01365a32bf03eb75bc076e3f2e8f50de916bbe868ba4fea801c5e570f3e67535fca8b919018fba48ec8f9a1c3c21ba1f4f17e005b93c4259876c536b705d241da635dc5cc30fc0e67984ba9bb1b6e30770915404dc3c80fac385bffbd1dd8c7afaa30b13d3d8b56511fa52d2a7ef58ca2d7cfe71865b32e79cb3e7ec25dd9a50b0a68aa981cd36b169e22f216fc8065536163dd14c64959884c91b59151ca77f944b689fc92564956682b3efba3923850d1b8653ce25f1c6364dfce96037c5683e47df8609f68f55ab1a0eaca570df7c8462ffed66bf35481ae2534f477d4dc61ae40d269af56b6d87c30636c758ad397e339b267e8d296bfc94787e7b3ad341db212dfaa4f081e1a3f229d9262c0c6c13f6051606f6052e5b4ae904927fc7297d9a073b2c5ec12e9bb4606aaaa2142549c90a242845eefdf18372bcb2a753653373f7c13eaf947ebb7bb22876064b383255c17909b6130821064f60558794a5eb30c3510831a8018c8b31c61cf72bdb6b175d74c1c273da68a54bb418b34e4527a594524ab318638c714e4ae79cf3e39cd3a547ae6abd553a299da739e7e6e9c4a794d249e93ccdcf69b75f343971b426416b123589ce4bc2a35c12944b824b02f56919931c3972749102a58fb315a912551dc89b19ab44734aced9a507d19deb9cc3f3562214b8f712b86e1231379e8dc743f1a0a60f3088219d37c46729dd5131ddeef6d9169749fd8b25509f12e06161716f99d497407d4a80a745cb34971a860c84b9b8a452297718933a0478a84f09f0c0f074a8bbbbbf4cea10e0a13e25c0c3b578818b33b19de3baedc471d2939528e6b712d913d02344c4269ed78b33128125203e62410c497ac0104a5c253a6d2809e33e8e856b21a2934a18512c168bc9198bd26127c57888ed602dcbac44a793ac154ad354a297b5e1346dd3d2e2d233ff34c2d0c5252553312ad57c87d1ea2a5125d2b9809db142e9b0898c5422dccf9db88d4371dd4f4b1439dc6a078e37aa563525aa0e989060c2833d1c8f48d0052218c1e34312335ea7b2457071a66b6cc40738eb1e9f8296be5f8bfdc345fcde9f113b0c462001152e8e465d10054d5411541d7bbd5e4e2c49c2fe4c68220aecdfd994aa8929b07fcc2fc1fe33ddba013b08aac0fe346c9a60ff1a36b4f8b01f85e00bd89f876e3181fd81740b00d87f4810434481fd1f10811e20607f23fe4428810980fd314084fd93746b4a9e6e89000af6283d3d720456f0231250811d853d08c78843e70d4cd072012ef874000b28184ac213fe01104c9b830f9cf8e087075030a1410b58ac682207d3e51ea357c14261a1f8a8582775b332b031b03965a1b0411f151b64836c133516c5b7b181d215fd460848ffceb7ea63561f09d7c77505f355d64d4e535f89aba69e38e18a2e2179fad069ea0b01d9be81f49f6e1295d3d4ef1b9d6653357d8df180ed2bb4f5b6f56fdfabecdae8b0e6384ded9a2dde408755b1b99bc0e8a23fb2e90d6c1376729f7d92d36fafc4a5d18fcf813e3a4bb2650f64fbecbb2f90ec4f3749e6eece126bbc5eedf667b1c66fe20ff366e9ed46e054b36a4ea3cd2cfbaabdd3c838fdd62c0327a599539fd35f94529a6d5258f953935946650e6d34e12f2b7fe62ca359466558b719705f3157a5964d4ae7742dc63863f4ee6eeb3475566db3c257046edb90d4ba21a9da86a466344eef28a9a4799b48366f47dda2f744b2f99f09694cc18403db12058f0bfb1da10a96a50757d8ed069d147bc2f1880919e0fc53b013c7232680b01702267e7498f0395a22c83e13a212663dc5604dc0fe9ba7e3425d0337ac063109571acc58ab138e603850620af68c8a0772e083230f3419e1488920bce0feac29092d1ce17e9a6531844e421229d802891ee0fe7e0e3861398005ee4f1d75800a26e0fe7702e378c42305f7d3e8ef8e35e10e0217b66f6c54c216044dd31a06f6c3f1e8c5a4bbe2e5020f0b36c3f1e8750328eca02b81ed703c7a0961899fa30f0015415b62411c8db658eab860637034cac2075cf0821658181c8db200658a2c28a1038255e16894852525985e545818381a3131f172c00485ce929836713c5ac20111a8a2e020f86831836587415f828b33b97b4d2dc8d624ea70fb3cb980b39f49903711f09ebe7006c359cfcc820ace3ecae9049cfdcc7e22c14646c06f265296dd5c330eecee293a0d6a5e1b4e93bd771c285dfee29a48d944b2e930fbf979122145d724f21b1fd90487709aecabac55b3c20a8c980dd25c9a57aa265b392ad5e8563c02ce6260138d764c2224ce725cfaec7df8cd679f6121e3b689b46df5275213e5e99b6884a1ec67946e45a32f98e06c56c1d9c72c8b91c9ec6396fd56b5ec331bc98433cf5ed6bf7bcd3e3521b39156955282cd1f56a9a415b21efdc8115caaed36b175d5db7cdb7c11477ecc9f3818bbb0d33b7d069eb22c8738cbb2ce7eb4f6bb138d9dde5a9507a63c6055331cb0a7cf3ecb2598c6a507c31d58eebb0818e996f7d407677f3ad98f1da69eb3d97f50acfd94cd3ea753609ef87473cbdb1ef6b3abeaa17ef69c7dd9883b6c638dcbb7b7437391e2e9784f9960f3e3b8c9e8a82cbbab2ccb69540dea737c3b9dde469c98c2a7b71daaa2b0271a67c4f93eab3cb222d99f9ecb40fba954cb3592c2f6e6ec8d90d83ecbe7b4fd0c8c9805b41d525587149498dbbaf6bce74edfe956b7abece9531fef348d635ca2d98d11bf99ae087448735cc2d406d3c73d272450c0040300471f9cc00966f99cd66a15b6887cdf216f91ed6f916d72371b3982b76c6eb8887cfa526e3ba2a4211f81e5474943d6009659099679c3da732fc1683f6bbd9c1898070953b282fbc31afdd6fba6bc215fde88d8519ee779de47efb381f5bc1b7978ff7d4ea340a0969fe00af5f35137078e9deff8660fdf9da8467d7b3a311dfe557518733a3382dd3eaba6a703d482fa0e5c7d2ff1f731abcf9160bfa14cafc7175d87d1a5a36a874d05bbdd58b799491afc6bacc938507bb095b0f56ae06afebc32cbb2150f09047b17cb5dcd899d0a15f6b6f0297d4a1f183ea517a64990375a2c5bca824acc09d893c0b2bbc33005d780a35118823027bbd983fb8f54f0f381c1e6eab45bd2e1d32abaa7c3251dfacb2749029beca804cc368641ce3285660680000000c314002028140e8a44029138209267aaaafc14000e878c4a7c549848b324865110c52083882104000000008400200a4951551000c3866261ebc9c5af229b17fb43f8e5b8277279203f152179ae4d74792e6d9ef682c14ba6fb6142b5425bd33ec5b2ad17804e27068b431026a39633a417aa8e1d026555b3b699d387ed11152134658ac7eceb37b045ad9679550f9dbe76bb146e5ee99fabce944c75cbedd2b4544848d13faa440dcdf98c7309e1b38fc24d6679cb78e2e14c38bc6f5a32e971d8b3946d4e94ce0c0ae66d15e303f1f672861f5406fb5a7a048f7f687ac993929ce04eb2a9dbf4952e097208dadfbc72c266d1d0f7bde90d6a00a8cef7118a8a6b09850bba7ce3d4342f768b5123eb271dfc0b9325056d06d9746bd9657d955eccede159883705b2ba01eef8174cd657986980992ee5b9997b5e941356bc5ec8ab73674a5b91f0b0f9766a98198d55ee64d4fe01a069fa670c6c28915d16ae7d9df931c4d90bd88afa1037c191fff3e10a92a91e60465336bdb822df3ef28837935cc05aa995c6de072eb799ed31751f06c6f2565a73b2b77548a206521681f98aca20ef768e4906fe76d10269ae10276e527b7ba275514b4f0cb1f733eba3d22dc940a2d9eb49938ae2f3f97d950dda2c29c0a31472d63e617219683a55729ed08b8455a20646f54fa121abea1a139a3ab158c589a60bf850ebec905fd515c96baa7f0876cd672d8e42a659f3595391a5357f7646d0ffe0d8ade8c27ab21c2e73486cd3c9d12e3db61115d7d1b90449130553023b1b6fe6b492665161e93fd36701683f21e84a31bab91843da7eb41c84bf3c27685f7b23b9df447518a99b32b1db39566d48031c518e41ea96803d5085f600097f19971e4bf4ee554669a6750a3dcbbf4ecb14f5c7057cfe479198129ac29f978be2d2a2294e67701d3df41dd5c2b6945dda5828705c1b9555181b06da5345989b823506ccde18d4fdc7e0ec5e6612c4105bb387f15e6415fbe5d4c3873d6e84843d8d1457a368762bc1d8ff18be017b1686b6b4411a2ddef94a50e6ac1d8a283b2393c21d662f404d73eacbf899b635d86f81d22d67ff58c01fb36a38f5f394881ba24c4d5b674566fd5e82c6d54fea6e006013e8f1be84cb1f54a497c8883b479006956638f03da7788835f41b512c9835f9f1d4ea3fc730bbce13656b0d87534f84ef3fdf61df52cbf8a0faab906b9bd2c5543bc7a6778a2b0a977238828ddb0c77af5a5fa4d115c324ca4151c9766c9e3e285e1755d44915e7eea8e8328457d334fedce8b533b844a306ddb6324986d78c6648aa3c6811f9f6003b16e65c4c4ca05f2ab7a15fe5a96eecac2021fb65c741b16343f7a6169867f871fdc867ea64aef2665c0d48e8b9577c35eb490fc24a603b3a7a610ee6a746e88a7134a9df0d52b2e23cc4d841178b15021e01ca81243613980e98d1161c9bf3a3c4b6e6194a4a8aaa1242af2d76075d6fa22e727a354d5e19a0c4de392211af52ac677d5cd8ede0d01019976313c21327897db658591cbb0c8458db1921a56777cc01437a3202c571dbe449678998e48748c16448fc9016603e226396095ac68a8fc9abf194225278dff880500a81bf533cfcc7b82f5989d51f4d766b611bc91ed9c1cf392f61ac1909ee7d8bf73ee7acc887fc8214ec8343536c46888861320ef5de840bfdbe77371fcfe83152dd0af7042bc208091251814b259276ab463ef30a9bccd277a46723eae6a60bcf98282bee6214b65ce7bc9c275744e353d7333721b2f566e6b669be8409f09789319ff138291a92f136c3ae92a1721b7e6d8b7cfcdffbe8af03a737197c9433c2ab4fdaaa02c85771cbd7a2eb0a7fa2a8fe1fc0db02a23f4ff3a7c0c77083e669eddc54c88404a61061aa7214de1422a0eac34cc26557e425d5121aa60eacf0b684de3a707f6cd2ccb2ac42634c6d8d9ccd02aadefed0e0b6d5881bc26a767ecacb7bbaae33f4c2865ebf745c7810bada3af36ce96e8f17036fc564ddd8d8fbe85ed186b33b92510463d54d06a2ea23b1cf2ae0473e14507c5364b6f27887caecf0c7c61753b718ce32eb21cffb62f9056059e86e7a7fb97d81f3a0d2824b2c0dce8121d9ab120d69cba927460435235c26ef753dcb432ae30e6f344d30832181dd4a5cd48ce41d9090f3a05c6239a2a884beba07847cba4bba66a5c41cf0678e021978499c9a4179c3abdfb31266f59fc7689f1802918c54543b0897b70899e64eca591774e8a1c893c987078430109c8b825659a9584ad2b9093b04f1769478dc7798cb26ce9b95b3adc2025054325b48f528ccf564f2d06dbf062704f9966a27f69efdb000748440955dcdc8f9a62f9f73918511a2ff8d2b987523e3bb7c28066621bbb5314eee08fa894cbe66ce6540a48015503c6a93045dbaafd8e3a0d69044859348d78c77420cc3c968a45dbfdd4c8608658c61e8481f226164cf92407656c03790b542e2006955c560787062b3a537e9e3b16ae44d4258eedaf5ceb91dfef159a71f95b0c54a853054fc0c42218bf7f1ce24e95b26943edd145a1df0609a344654f9f79da4a759c877d432598fa6beda0a696a21f7793261aa26b0460b81ff7f8cd464359ec4a155805ea493adb14eb136b184201149890541047aa4fa82b843bd2953f5f21ae2a8a57822c2638f9e473a7998e2a09029e708437477dcefeeebaa99932b303437d5f558a2e489a5403019ca29e7334fffe4785f4777e818d4dbaec9911010ef9d9e780b3dd30bc9b890f5995d8aa40605c5e3b00fe501175ca2a431765e3ee81c3979824fbee7cd12d31c2dd936544dac8d899804ea03fd3cef03cc05623dba237bb987db9affbc8763d21b73a01822e79adfd1d36ae5e2657c57ee22abe0e9922f827ff0330f838b94878b8f62113c62a865982f821e30267e5edcc84518a256185de0f0778dc1220903b984699e99583c5430e11a10f2e2d6c138e42f7bc48847456f71b788500a6a6f1a052f5b2a3893f1402a146913b1efdfa041163a5cc091502a84b1b3879b88a713254f26ab4ddf6e670a10f9c3d5db16d6282da0671506bd2a10607f9a0fb81a87624c9843d268a3c08e23e042accd3db244cc7f03149b8f03dfd8a62a379209009fe055ccd2abff248d7789acb14b4a7101bb1327272c40a733e1639402e849c13c47e79abc2eae812135e23a9b00e39cbc62a971a9dcdc8eb3811671142c92a20aff4c6e9cad98b348d2fd7c9ee9d13a9852dbef5953a37fe907efff803361925e55d7b4d0086e36c025b2e490021c7f38919e690551948f68807012f68429c7328d4e33bf7aaf45fcf6abe1b40f7ef8187e4aad5ed045615f118b9d046a76a32d982799ef12d7e8bb5bacfae8950d494740c84e83deba1d5c07a4994ecd264a3015484151eee54994b356abe52f459271c886260a6bb28e90fd41f0daf8a8c90c8cdd371daf0266ce247f62bd49c07300a28f8de509042591881a04f511c4441fecb3dd83659a1a9a09a341a5df64f717e929b31278444ec06648b74423c9511a27fb3ecbe40c3d36e5aa073311eb9e90cf6688c21fbc7a4dcb9570a8b099ce598a8a7301c513a3286c3e583ed1d42f3e1b6e8087281312212c09203af878da03926877b7039e502400040dadca80002f9f1c4ed51c0a93a1504eccac92773ec2d61a43b9f2a305bbbc10c6dd7dc206cc017353030d768481148f3eef31bd05dfa2c709372cc7591f070bffeaf23f39a4c89d146d3e3336ee24acabbcc09e3bd9801e986deb4341ba433cd8b10f94b107986d7fe1216eb1c9b4ef8ecaa72296707c351c94046e693701f7793a711b4a410c68ee48b76b2b1ce2948d5a039a51f03f1ed0ecf905c2cb04f420cdb3157d1f1cd2d7136a61bd816640f3d0858f5449b321387903e206c5e4eb49c9d6c9c6ba3f5249ab7ca92e3c05884d4480d8b74b9fcd28324b6d67bbb59b2261a2f850099e171ead9e9760a0cdd42ec2cdeaa4bbc83b9fd55c937ae4fcc3e12baf019d8dd7ef907a4d756a9384210bbc0acd62dfb2ece006b135dd7d1e7ac93460bd59bdca4fc2a54be189027cf8278bc3c60e6fe604ca862189b70f2205139b4592b45235d0b36898bb0ed5a28b9ee42daa83606998e25e61afcc55d1e80415f6c874d137349188d1cb52a2e5c2f9a4e77a6f55c4bf82c0195f42a35bfd13ee36b94bccc5a96c5026f33a0e45f6930d364d3daa14605016b0351a3bc3a1222c205a99a355e930eff9d6ce40aa6408cc4e2cea31a28d00b8c16ca010d405e23ee187f7284d790fe0442930efb09c540593b35f25394f7122bb21c5cfd1fa4ac43b23f0063ba203c2c9111d9175ec494c1bad466b85881c7e0e398ead1f53d67edaf5e74a406e74138e61e31cb4638a10d3b8aee4934333bbd57ee9161aefa8e92fecc0584cf8a6da81e73cc3551d7152dc60c42d6257091d56eeadb45a47831204672e966cc0637b535e2800574182382ba7de55620838831920f488e0d651985954304d810f08a0058d003d6a4402c518022bacb6c0e8d0afc8e0a97b55ff810173dfe929cd4f81e480233dbda05a9fb231032d19b49aae133f047d1379d104a1b4942e357a62e673d4f53aed22d73e61aa09e001781370c19f9b1a26de722eab7dad540908f0b98b416956a3636b2ab5fe3e81efc11a129b4d4d8db3ec16066be10731658881d8ee10245723b68d7e5f723d8e4fcc98308c79a13114216b58f68e0b4fcd056d18e915f90533fdb8924fbe3c016c90ca33e1fd0457ce4e97d47f419b1e3564ef111fe9789afcffa07bb30f4e28807004818b8fd9a5eca11a8e595245b4035a7662d52fa57b4de50669784c0208a6822ab638d5a800501b987f93820402a2d16172bbeeceea5a8a29fbb54a8e536231de11b06190e5b09beb9f6da074ee092b0aa6d8ca51ce5536ba8e550f347a8cff8e8f2984267bd3b071b7b8916cd694a882b44d9580e545de298b8e6f825eb1695b444bf39158544e633488967bc92cc73688f9f26c469144b61dbca962509b35f8d923a99595f936886e81eb002de52ca67f7f1c1a5d24d49ade5285e9a79b26575c8c32604999b62d58b1e88f19d7502b510addfd1666cb5dd3504c1387027b7d74224f8020fb08e0b9000f80924188a28af536de10674ba0f498c786fa2d7a2cb287468c08d04d2c658bb3e6422331a31871bce69c2e01ee1344909ce871f49f144194584440c048bb3f4a6d41f02f6aeea923eddb299239d36eb60c779f49b251dbe0d38b29e19be7f157e0eca69a770a504b86f9b5ba621d304b283bde239bcd3fc743414280267cbc7380ce9b3b3a722a38cbf1080781365b1cad144d920236abf3ea473c40386f17d9b1535dd63a6b6e5d8066067e1f6c72c2bababc986c7dceca3998c0e7d90ddfb47711a7df1fdac9abf7dddb2559ae9e06aacf6883e57149d8b93863323305eda527f022dd5ac695d2525266508b370d63612d07c4f2c6290be74cfc32ee2473d969f53f5bdf31fd8022cb03aff3b616c268f840a187a9f03b376d285598fb3461cb4451cc36f2c162cfcc374d4c5f2cf6b01b83de7ad3517bfbe62a06fe8fbc1229e70224a4608494ae2d06a7cd1589e996ba05d14ffe682def2e0f6784b5c38c2abcb95280bfc635d17667e573fa7805ead93aac1c550bd2bf825c15f6c308c48a18f471e8f7f8e74e075ff0c8a669b453e62fa0e6bf35ac9f4901bd27500377648185400df8122c5bbe4200107d267c63b5c1b6af588bf49ceebfca79342403db54b6f23729478662218d13e7a25b086138ee007475b325f9c24a6295070e661dfa88b02bdcebc59a902b385e336fa025b39eeeef60df7e07f082af90021e38eb4c19c974f22fe01ae34e48248b843c68c051461d988e445b95d7ac9c8a012fbe56194c3e27aa63ba323c50d0c68ee16d31218b2acbc86bfddc09e8be439463232331a15defa96bf0be9491ddc5a8039e3b1d16dd34b5481a895c4a2521fa32b22416d285f263e7f59b985187f322f0a52ea8640e625d998dd6d508d7555bb4f3cafa290b13e2ce4e08d5562cb989e7b1a97861112b5b50a682c9452119568990a64c3a486ed91c8e1cdc1cd86b248fafe4554a8d64fcceb9708c5c70013a165025cec7c89f3bc3166aa666592a5a369942825ad80566ecea32e0a7b9e9e1022e3112e8a79dd77f7f098e8e2d89dff0e2dce3514ad724d9564b450af260aa9e01454d7f1f61a6c3e14027b3e7092db51ca6292df176125a3a46972aea435d08c25d164c701cd14198a0535682a094c7c25211bbd5a25b65b049f4289560e717eb73c0177755ff7e56faac5edbfacfc6444326acbd41aa08b45e619e123810bee6e344e07724c39efe511f996ced833d9952008a967d64d0e92130cb63bcbfb421e692e7a6e70000e0e481fed0327a393565570ea120d315e1e28af8499224687b76063d874aac2885754dcc8605d0e1984ef2aa13a0c673a3d2adc0bf141fee344c9a84258e70d7518255e1415d68267b09a479970e0b7688910a9563e4555582e43a20c1bd1a66580bdc7f1f1fe12cfc54654484090df28ace5ad8744af279531c688052d1ad9635ff14452253ded2b98150c9066be06c3f9d4ad42c86c77b686920158d582599f7c9c5662665d93d41a8b221abd9f18feba07f6c48e7bf66fc505ef3a633876491925c34d7d7a88744c884722af38639fa98e882bb2d2a703ec3344e30540774b8329a1815b6dce63f4090669262c1357d925edf4e615583dbb9413e85157abb6f60f9f3929b69532a7bea11a6faf420b333c20488feee3a335fa693498fcac4e6a135ec4120ec7680b03fb8954502a9dd1382ac8403678f746a35be4e12d31ba22d0ecda05ac35b1a93d8ed216f6950b701090d1672385d06724544834466e7e333f96fc3415fd70bf17dca6b6f91da8c2fc3dc0e499825be654c2325781a29f279bdac851b78d815dc471d4747140132f7c766cdf8e72a9031e5f0b9d02073ad3a32d4c3c0b3c61d5e9faa0750e75a084ad18d8788c0b1ac2f553bf0cc3e59bf8b385a7df6aab6d26ad8c8d18656a502f5788cee27c74f8fd0475986578ab547a43daa863d89270a8968271015ef84795b87c94c32f39b24720826a3760c692a8c67e13dcf2e73d4c0940f5f3b199754fec2b684f683704824c193770469c1df09488a083ce8accd6d23917935cb939ae590d048bb93e4a3b5190b351dbc254f6b2d5ad0d46e21a70e2269e8018b96b42a339892ee3fa2b76e31657e4e4a5916383f3cba56880302ef82a37577d09848fe1667826938f8123810488be6184b677edc09c780c078d09d977021675cef068d2d9d131a2bee80654d2ff2b7517659dc5e32548fea3d3785b834ec9219283961a13f128a48c0735b83c073ba2d15a98b39a73c12fb124967fbcb77a14b114ade6148d33cb0a72ed8667509e12af65663a010b8d6f47f5d41c606afac4251bf97eba6143e633dff4564c2bf1a4589b6f70fa7e7fe16844c1157e54a988f4e575ca48880c1a8f10414194dcb88c0fafee18f5a701bc08413770e3bf16c737e43fbf2d626e5418c0a79e368eaa42a4914e21b924ac70bd2bcbda501d920a4b677b109084f9cfbffaa92cd22f03819c5b6f48083bd8cd8538b19b4aad0bd8cf0870a7acb8eb26f2a7a9249df81a94b16a44a70c432b6ad3637244d1ac687feefc1b9f3803348e9ab72c29f9f2ff07e63a662ac14a498a2628f7d48f99513bc18a0ab5d548b5b1613b73e2fef86a01f7072dc601d5e6ccfbea0091a7cf0f747996eb4bf7a184b178c6923e0bef91894fbdf98c6da77c7084d0a1750618c0a126292d300ad136ebe06c396c97cf9c5d6fcc9020bf8293c24b19478f2a91b552fde3b9c8673986ef75111cfda7fde880a989111f56b6081dd21513033831d066ed328df5529424e1b698a24f58e51726cd71e5821c0131ea9494a06b1fdcb4c8c9f92211e2929aa73e4f1879a57a53105320dd770cb0c46ae7f69060cc4cb7fd841f758c7bf184a2fea51c38780fd331992fef2f79e1d61ef0a03726faee91d91ecb01fc605721ef2305a31d079900d418e9ad00f6a2a763e3aa1f39a4c7cf42ec0dcd25f56aad5a063a60fef01215fc142fb312fce2825ccca8a78d28ec7bf006bd6c7af80bb1b680c4b2ef358770377a60dbed16f384f422df86ddc72775b12ffcdbb8b3f3deef85f6bda0b6cae5506b96a20e3066419c133fbaf18f940a0e3fee9f6479152345b7c229619c0e25cdff749a757eb42cd52be3d900d3861a770c58a31ab0f753a675a0675adb96e9344e63608959b96bc6a5b0bde8c9a8f3d374ca025a1fbc2f1b7b4a7b3aba0caeb1d3a6870d69b173c5b03b4a59f9ec51b9017409438fe3d9c00e7dc59a50eedd8d190634723fe1073f48a7b4803dafc8246c304dfa72f9beeeaabb0cd5d571d9ab580b81bbcdf306509eb4a877ded81f5c0bae68d3f54f1c89163f3b47834741510083521e1c7e6465ecd2c45606b17622230e84f38e14828ff08c24d4cc3cff674761b5912764b0817bbc8e5ea6b51f8fc866f478823124b507b4ca5f4dbf8bdb7f84948fa6aef3dfcc020c8e7588224be884f6a6755d45bc5b0924a54a9806ee9bb6c12986630cc2ac0d78b9c34d32c31f8bcb223847299c1bd74bbf426c4338afa97a735d1b90130f372ae34b8f42cd13104e4b653d835a26ff070b6832f26ec9ac83788f2a5c7b32358a96b6c1dfd7fbf73091ea30f75808cdf372911f49411f1862a96292e9d4d31257d5ed6df34f525f3b8841d919441a5447327c80109ab077ac2f5436de99ee06a28af4c363f67d5e66fd6a27daed9d92d01dc562ff5aab5e1582ab3c896308112aa1639c00612913a5812c56fa62816fdb6191a884868831e287cd8405c3cac6e5bdbb9872f40ec42dacc46a227ddc5242bc6c7b286011bd1d3c42af0ffb564aa779bafe6e120a4b18e455bab7f2ba13e563020a80ba03229566905e99d669ad9d2b89a9f673643ff4f5ae52d0d233eaad69328db1b04bcfa3536d3bf6964ad1029c64eb89eaa8eb05b1571ed10c4cd6f33a1f1e2877f5d5761af80ccd8df8f900991ac3f419cb6390929dc8a7caec39d5f456ee1fba9de03fe90b15e87f908ee4e26ef9c578fc398526fce2b98daf7bb775b956409d983d07d5339274b0ee05a229a59d1254a4b94f8967918a6f1ce9f30f6b90c3d393848baf0d9800c1d4c9298f2757307df1f11ffaaf64e090862c569d7d72a0df360228ffc1690a349b500dc5348ade3b88bf119de9b77b5fa1ef8917e033971aaaa98dc0d11efb57119c85bba2fcc710a9845786ee22ef0cb061218982add4de1a5c98508eb89b68414ab5f464b6f5405ec34292242f356aa0ec4447aca8c7e6663bcf44fa531b6d639ec48c2708fbeb6815b39b4e05d96eb6845a138f7c8f6ed2c180e4c75f7220396f4c4bd54ab2a57985dada29f5d707624dac9945744fb3b5db0640db5c16be6283c57f14e6392acf3a3ca2f67b27fe0f5adf0400ef2d3362a12483ddd437a98e43bc044dd89acb7bc9a15822789af08505bdf185f7e935b55ad1698301b78771d816fe7605b7eeb6d99cdff58d58dd56d48b98f4baa01f4ef35008f236c39c12bc37c01b6657704ff4c17cd693a865d3b373ea8e79cb2cd0c28907ab5234e891c3a5480f77ceca88ce917ee50e2d034fe3b57c7a4e81e9e6713c53e03ee9498c4ca84d6645f8b1d95d028d7b4078759568e8dfd17dd2183ae7cb97217caa5a5bcc6bde6a310414d4b1afd4851165cc8536990a7de33f65c2ad8e351234cd18590b6066cf25782d0996fd743c28830920bf55414ffe3883120fcefcfe11bd298a32e4d77f59a2d8f34994c998df0e74164b87f794e5001f70f1bd78030814b1c321904524ca09abb4e6a30698a7b7d98c82dfc4173ed2e81cc611e8c4b6af9d1edf2e22efef1f9e403453495e3af4f0641742bbbb8443f5c6d8c3d11063a1f8bbea21f0fab1ed2204a53d42d523a34541a79726847e9b7ee1532f9372c48c77ecc3c17f94bcd9d06bd82fef8c350758c20a830c5ec95f19ce2d5d35c26ef654ec289693b0a520b26acae54e3021c178db1821e8ce03eae33edafc40caea38c9a3d2e0431b3f9292098ea8a53658ab3fe59814cb6298c01e8af0d47762172954001d6d7f93df6dffedd9c195d4f9494e5a77a88c74e89a7f9b844b5ace5433ed227046777eeea56378e0fa28f7b0bae1f5a81e4ce77f084a51a14e163b3fd5f30095338802c648bb00f134ea922722be8a49afcd313be3e31c950b44e86f6be4ebddf8facebcb3159f0a782a20018a302ed14135490fd236c3691b8f1f497dbc962722037a182e4849abf4dac57c5fbebed731271c90e6e467f16dea1f1edb3ee6fe32699cfadfb6d273993bab29109610af4ef05d59056ee772edd25937d663f62ee4987d78007130ee0cb172849187c2ddc7ee384f2db80dad4fb196b988e0e64047f17eb31895c3ad8e118a9df0bc9dca699ed534fc96993cd0894acef4e4816de19da25e14c03af3a03b8a23bbe43b9b21bb740baff1cc0fa3be334160bc8d7a913671c9a98e9fc400e918c33ae49d53fef534723a91618dc70a22ceb24f3fda6b707ade37c548e4d236fd6b86759c9403a903b7bce95a0f59db647f82a3c9ae5b7fe8da3694010077359bc72208c6813cebb3288eed3ce2b4d1a9def39a691cbb93ad2802a57df8b2a60ecfca3140218f31b2115bfce2c6e3aec489903ab5e41d07fa00c71ec88f2a24cb532444b05fbf2fb2d66383167d5c9e951b4edf91ac2205d71ba16cc0b5231dfb8cb0c4f256b87a8ebae4f62805d02680cc14f925327522d9f17ab52754945aa8614b895b8454afd60fe730361d6ad166c578a09aef3fd6d90ccb21f42192aaed80fa3496da898ec06967620446803ae57bc53014484dcf42caf0cd3f58fe410a6e8bc5319066df505653772051e5327d6c7558dff1cc5869b637fed71d461b089423a83926528a57ddea51c4fae51e05c7b1a19cefb41a473d9516ae862e1646143ce919d40b635ca2c7836df325e14698099e4b24883364483c9282b5a6439a21ec4681f9ad7e20c4e63adbc11513385a8ca6e563893b0c21313b0db3551b058ee5a7e800b5de917a48fc2100af50c2bbd7f414f6b30bbe77a2b603ad41394980436906a561044f3bbfdff31b0008ce2ebd1afb7d4308658836780305f272a69012111fc4beab95356c4fe34b0b919c24648280c0a3f1e933165ea40806678fa690f3d46d73953eeed9682e47f1853795c5b820952f395f2624948e63cc6a0c5347f2f3661507253510f5e8e798fba0fe29d447d10b2d250a20e7c05ef33f9e11a7d01c45484a93578738113e33fef608f248f6e40522f5da07123a77aa1dcb137524a453b78cd0f5dd21de5970481d063476a4ab4afa6883cab238a24be3b57511c1c72dba283583d105564e909c58f30d5d5fbcb3b4db2317b3e5e36df5574bf4d2b3cfed806cdc61fede507491937fc717ad4a5df3193fb9a5ba0379d1085bb8d8fd34c1ce511ee5396144f89950689f8f456d4a4c8d522c811a0c7e0abe7143f73968df539875843eca3c2cf729a75d5231f3f27529354f5b542bc7622f27e1a3d6919a165a0d50ae8fdb2c99e5fc07bd423f41bc94c5a5e92112a532c6777cdabd2b25d96760e5635c64d032ff7a547eaa22352b714485d742deab5468224017d41395230a3f7eb41632d70e6ca83c1e451656cbb0fd2e920fc26c67640812e683bd8194acfb3a17cae16f48b7762bccd68be6e19817e366e302830acab2533dab61c111a742605ddc624d017d27cf24233aad3e24ba561ef6b336e1b311b7254b81aa91cd61bda166f3b18e665433388b851ec81a538a1bab1b72944feda7665040b78282d0fc4bd6a48abe9b1a15bbf8d70d8ec71ac6263f525471e8598b18a3fd130617f4dbb8dadb5898a151fad008c879da63de19766c1d529d330be061ad255efb4916512ce2b9db046352b0e91b6a2428a35556c683786fb7ac430175c44d5601cf76d569e7fc8db9462307c0b92132c1c1a66c1b6b664a295b204c339db526692efdc4a306bc05dc19d9fc5fbadcdfe9b3a10454667f3ea96498be10520ec222d177cd9976da720dbacda36504b34c8e1c9ef436705f84f9448938c68849e0d36ede2f81a2ad04cdba13fc339aecd03816cd1523eae14911565fb150699d7cec60b5f2dd16552318c0c716c4d43886e95e3d68be66f85432b41313d98e0913c1c0eade7b04206e945fad886f5cb5099dcfa54a9ef901ed49172570af07ea5a0f923e876eae882dd501c0d32e84a4d3acb0c9eb5a970c6f88d46f8dfe085e7d1afb4974228022b6fa6395641032e34d2559dd2ec6c842146450b29fa9444af572b2624e191a1b0f0b2b26794615d6aa99d8171cba590c28fc8be8176b39f2a25f951230637d69aba4eb2b0291398f54b2615d274e30ee86d588ce9ec7c6aeda8b4059d592a8b416799c1a3aea3cfd115345d405dcff8c7965ef01fb99f6803a742efe0c3e9d4b17d252fb092e14044b43224bf3deeb9c790ce6c2ca22903a3e10954c8784c938b214796a9b9528f5625548ca5206b800266692e47af88db147a88983edde6bb13a47c56bde515bcebf68cfdbc693814f027f428ae2c1368cbf6f21867fc9e33faeba1183681474a2230519242e6fde654ed3c67eb09959a4d930849a79046a015de72efdf298c530e2013c1628c5a4f3804f836272fae25df8cb11a632c25f58eca3b73d8a9d3c7bd03ecb0de53c43be7bf66f3357a910fc8fc8f6c5bbac44e5a81a05e81bc24ef56c42079731357db0fc56bff14c379d56d3448f85230fff9ddc9ffcab4f59819e52366671b1bee5b838d6f5a88585a0e538c4897aee51a80d5bfe4067a364d9c7140b206a20f6f8ed720e6e3c26f5f22089863d83407ae2b1944a2f7e98a5e79659f63f42ecae57fbe94c9b2f283d55cf0d4ea2bff6ada4d8f9121738cda48cb4806e254d31bdbde9898d30c3fc166ec9310a0124e70f3f6ee791425d27128a6d563894ea020394524c795c0ab963b2537a525e315454812025c5a8158557ac5d27f5751c05a8f5d2c69b829d0273d5798f5101cd21acbf2da190f5d8026fa2fa641be6ea528c4ce41e9f84b9bd2dede3c91abdd2f238457fb69ea302842acd0754da16e4d9b9441547a1708e2351d1db952f93d8c1ee6d52fbab9e2b14d7c8d11402c608778f5127db5e82a7960723915201cfab9d0263e9ee2f8bd3703034ad3d029beb8863776104c321e0003137f6290124a6d9907a7e732ec73486997ad80b2a023e83bb6e2acb3fee4b129901d91f6b84616440213d4816a53967edc77a21650a14a302cd24505f5ea743164d648766a7a12d679079ab507c6e598d5bad5b064a8cbff5e00222c7a27bd434d3f8c622e5241592b0171bc9f11c39718fcd1bd463102c6ca15fffcda5202145d11a28dcbe8b217b0a1bf683eb3439c8742007cb0993b3260f1753de6a50036fe08c869e271070165a071179ccec381978f5a5247fbee5f04340fdf4d89b61e14900ecea1c2df11aee4b01821dccd280055ee25efcba0e970376f723426128f50f5306d4a08fd502e93546e56a325eee301285e4e633ca436e5b097210af4185e7b46352e64d4bebe24b9a9dc23989f4790342652deec209cb890c8dac72c72cbbc55c5e4febda551441800f520645b5636bbf46bbede274ebaaf48c87967441dafda251d6f2dedd004a7b383ffccf34b804c42c07e4a54eb7e0b93a264495c5e3451cf6b8b98e7c0e558220a84cfea13b77794476235cf62e2e3f57e9b15409d5d0a749bcad0919fc038ad08387d04bf6a818d5425eed6fa72c4fba3572d06917dc2ae496720648ded9577a96aefd72521860a56cbe8fa01100c030ac2a23a9e0cf67898cc12bef261264c02925143c02f590e42d5f4fb6f3bb0f0b0ce049803a74b2b106a8b46204c8c7dd7e56d404cd9b4455fe6dc0a6dc3698ac45fdd3d46781ad1e6c3dc04855742f5f9538c62e400098cadd64a97738316510a460b01179af7c616aa39060a47a8b16e794c4728c819841196dfa199afc999c859c4b25dbbf0601f3cc597c39dfacc94d271758a1fb4a9485a2ae6c16b0b8c254eab29b6a1d9f60af238daa8daaefb8696c961d0cd00cd457d66dc4e2d1a1d7914c8728a83291fa770041d10802ca79e0d3a038ac34feeed9812852c277aa6adebdf660fea53bb0c9bfc0ef5e0aabad2ace34fd528bc7607a5b64e92671d235ae905f1fb91d0904c6febaefebecc9ed74d3df4ef7aeba375d2449a725c4d20f309efe0b42ca788bddc6d12112ae76d983b8dd8149ac6bc75847e43b0d05b4715674a80bd03c12f6ef53ccb0b2e0b03d11eb86e27a0b042d118c5ff3c242277e9db085c5740c9e09d2dbecc20ca21411372f67e925a95309eaf2cb609c30da4f3dcc9c5475f545dbe9f16be1f0bf77e07d9fb97d7fb28c683e781332134574847558960ef24aea19cefe44025ae5556ffbb1a6287c79112b9c493c891902bb2ee7d91d547fcddff104a02f351722062de727b64378b3654043c9459c0a05fe799dca993bc8bf633d5f0b5f322180b2e073e85a24beaab124556f4d37334a3467fc3b2ba71cdafc5a86e397421b889e5fcfc03a74c2909ae48c7d5925d0036da0d3e190dc4da2c5393dacd950442437825bf8e2ddf72d392ec5944a467afb61d8c59b0ea937161d91efaf5187f6349c0353dae5cab376574558fde73e1d4cabb3a67cf61adb548c8f1971f312c5f558e4c9668409141c92ab5c52f5daf8802faf08668c1cbacbeef7048052a2e61f9029858b15556fc148114da0112b1fdc65f899852d48468e39d4d4fd1f85acb8ba8e3a70384b860c09707e7151c63d357bb5d058b4a6e9984c045b67ef12e65b88ab4b4247d644e69ad515ca8c95e59a254ae2da89c44c1f31403cd0813e3bb1fc5e02d5e488378d114a39fdc118f66f603dd52abb4661147fceb8166d5dfe508725d2c80aaf037ad7601b261f7a8059e2acffcc415b773013ca2e76861b6bb1f166ae101205bbaff63e6fa8d991286d7e82b9384cdbe80390824ddb260e06d8c5975caf6e0b46765b7197e3f248ef87bb926b4c8d0bff9dc3c715677aa5d6051ffac7ebf76510df845600f232c7a6eed5975d030adcfb2d1ea07221f3d3d176e92dcc0991f4d4cf64ba224ec935b928ddb2321af0c0b6636f8a731a138f3261b50c479915a138e94aa22f517224740d0799d4a40f14f2408aa438e48b3552b567ca9e1d656001ae93788f437a9c5f6d45cac5084517c91b38469e9998ff5cbef164feedbaf1ad40db3993981a9f760f22c87bedf5bbd7b3eb3839a53901610b76ce8b8dbaa2bedce2d3a72e8c78de217f66732058617d3b943e0dd7bf38d0e090f4863917a12cd96d4a7cb723c994619f55627789d420ab6ec3f3f0f978ca4d1c03d46ea6b53084678d073d7d52f0f662394f8fe3e69375d5983a8f683888f7aea003c468e047eed8caaa1c183a60d1e805ac1bf2cc607de6ac380f96a67b4450a83163fd14d1f4870e37fe08455084604b9e272f520d29ca6a6443cb8a8fc7d508b4fa3bbc3bf26022899f09edf4ed99a0495654eabda48a9901f3ee9d1723cb3decc34310278fbb6591c26f8b58659b9e6c8f0ede55ebb142ccdc60d311423e006211f87adf1dbf4779e6dc18fb5fdce447454df293c84a2942c745c274bc067052447c5db9213395af231aa110d250e1882058b2c74c94b7929321f98e4280ee970b72ca50480b645a88acd0279a72f329bad3be77653162644ebe45182966fe16c9905f7e126672784010132fd93649d41a6d98211d01575b172085d45a31ea0f98c23a7272001c052c2011a37878d91aed108a6934a06bcdc5f35acfc3cada5a2942f5b28a5a01d33ce0d1b2bc7d6d3514724fee004b53ee288f6dacd49a68fd9b280cb194254e5f61203115a9ca8b4f182d7dd9b94c10281ea426d5b2846bfe9303653e99cb5a50aba8ecf1184632c2fcd0e977a20ed052cb64e383986a5538e2458f55e75c5dbd0bab49c718a8fccdc2b3a150b8946412d68fb0c9ad7561fd3dd529cb5b12c563ba868ad0f4a33abed9d390342e234f8da124d8bcb7de419da47f5b9803902e2463d48013d55ba5449fd5dd0755b2a2c294de6414f3fd205d6e745e86090f250f0faf1e06129474c00f3c65ebeebb5845e94b8570fd8d9ec75c5a9f0784153199e7c5c5e9ff3ba1db82cdc6ce903c8f593f7b4203162ae848041471a278292b878315e06d29729fe5e94231cd64951541ae211425042a1c8d2aad13a9c3e0ae93b44e05d140cc01f9d1f0c1e40fa4b2ca7eb634ccf422b88df5d96029f89405555355950ccf7495476ab461039f20a05806f9de95bb67db6fe12bf5a8d98b36a05370e9c71e404f0334c549fda7163b0b41b3fb145025b208890ce15a276067191fa0ecbf244e332434109210c611b4efe345bf373f868fa315fd51a176b9b795d4b1043893a0fad45f23d6949c582640dd66dc85725045f64705d4eb568de0f6efca633b71a00d894e35a7656ac49ea607294ad92979eafa8b2dad67f422c9c8ee1f12b0d49f1c92ca0876567170a817a8ec644d955cac1fc8753b5317b7990a2127ae3052b6567eff4e88c39931e06676477c66092d9a69e754cdceab85055ea864ef04e312751a6d54a7781f032ea655f43995874b259c0945467226107e6251088c7e901e3f841a12622e63881f67af725f89805ea8ae0dd9e03d498c07a359c246f3da8c6518e69e6097ce36ca803cf2d43dfc95851cb9f892af322785d4b51412f46b1579cd9cda88eb1af5914a060c2797c4e57521532dbc74ac9921ef0bca3a727d0ddd0790e7d002e4878999768328ebd6cd95f0a931778910b9a8ba742dc77f08cc407ddb227851bf47e7ada4758277202ff921762f46fde711df1e12570ef32c1694258722d8110e5051db0ba1c3912cb410be90b54985aa492ec644aca380018171851cebab6a0c17ece389fe000134c7bcb53d12a83ab2fe1190c7351e2882a0c2a3c019173a5b08bf0eaee086d6f47fcc18dc6a06cf48f89e421c0314ab9651e305575348f5a0e2dd7ce7c9feaae193ecd251727b5c273755cd3d4ade4f69f652ab4cb54d295ce922803ea261e13a6061364eff6e09812d8054881b182e3f292cc50357494b1719859302b1c0ff962b346ab17827625107e186260a68a4182d76b2dc3fc14d8e962b2e446193736a760ebcc6f92b3ddd9ae972a65dcd46b64ee4972f8165601c3656bf7f3b92710e1c9c157c136032b4c748a0cb817de8b8fd4a277e6c7caae09c9e9deab80ea917abe0dd8910ac6146ba50b4bdff4901aa9bf4786f5ca0430298a9f433a18e96e181b69c485c74318a9792974d0cf1c109c750186505f41ac648f244070829631675215b91f995745b6b15d579fb2308df96904017a61dee72f02073e6e9c0934cc8200d630b64bcc35307d1fae5e465c333f99956380400e9ac43363d081fa44079cc6499da6b7ceec41da6a0e152cd35668b5edb02870d9eda78f17bdc48e3c362639498bb07651f64f8b38c075164164165051337a005888788a6c6f6029fa1aec05cdf38f8ad00953ac6b6b5bbf13b8142fd48ba988eff5d575c5962e217784acaf1a291389f53c783108371876fe3e94a505c02dc4ca482c8046d74bc9bea25aa139157b0c8baa9f2daba69df937ea2ab6032aaa56279a9ba31ded4cd7cf9d5df2ad985ae70d334b540a11b616d11542e83db803f33d3133bdd12ea5b8d1b8287746fe1bbea3a8369fd40e6d491e01c97206d5d94defaa13a5deddd165bb5abe90951b1fa9600f2d26b7c508e92b70c227c27404a60abaaaa067f39d47050bbc1a1d44dfb7e9b5da94a7529fa83acd8282fdab4583971408c2ef699bfaddb4d78f651881857e64ed8d2d67365db6af9f363213c23a4b705936950890b65e3a35a41df396687dd02fbdf8d17b40e924519ea71f35d1636ad92f9bd27cc6107e4ee0bd77e7ff0cb62e5df5e2a82b4b2839f9a0349d864cc34e4a8cf738778f73a3277044ae1c4f4ed31a3cf6853ae73da936df48a1efca02fbae65daf25f7c4158a8a9eca3f3b18bc22dd2608bb6aa7687a2e7ea3710a19ad3362a99a8569440f48ab6af5dc51bc7526b0873d228b18553cd08204a3f8f074e34dca4c45416ddd499a7ab39021e4c473f3a4a32ec4992e5d9d88426dd6b68ca259f74bf62da8e08405353844bccd0ca0e11ba111f6902bb90737c1680b311473629f7057a34819c73a81e9f9e31d62df572f768376c38f77c99a807c2b98127f56b1462261073fe0a0a92b7da9d596d09b3dad05c44a5977b82e46cd4a9b645b9c1796ac7cb283b50002ce3106d8913320abaf759ea4b22d22aea9e16d089d1b12e42fa6e363a3ebca3d3185c354f8debd44eca9ecbf761fd29add2be8ddd57dba158c747d6d842c26edf4dfd7100312dba212f30adc2f2a709dfbcf1bf545972302b51007c26f42d15419e1c6a14386f26f7a3d707f3c2bfa612f9e4d90bab8940ed31d4b35934c3698d7caa290fac3b9de81b5fd5c7969af2836c9f4814a44a40e6be852092802ae9a3dcce47f32d7543be20df6ab5bdee394ef780c01d55bac903531490257873a98e17ad3ec90e3356bd329dcf678a4870f26806775e4b054ea2851bf27b2af5f04b8c7856fcbf4dec96c627a4a195cf55b94f5e27fafba075f94cab9cc5ce2491202e2f092d1dd31a75efab65967969c5c69a5deab47ce094c9a815f4057e6d6e72bc6203816b2c45160312777e276dd5162ef2ec0d9bb8cd4b01078b520d2cdb39ca2b11893634272f22017e6c560644e2be5289cdfa731197d32e24e7ef292d31551270861ea25fe1c24a401da01d47256232e0de0191c9a4174a70852b8b819f6535464abe6c723557abbfb89f52fbc704e2555b2004ddfbdcfae82df72d8dc0ab7dd888f77fe7e2c72b310c4eeebe8821d88721e775bc07c54347ebcbf20ec3b0ef9bbd4bfb2ac57527d607c9d529988c16066bc74df7a989f53e12fb504bee3b6d70551548bb435b44478b338489c49a89e0184d402d42bbe03ef92058e1dfc600f93f8e020adcb7e1966b7aa077712197502246db435ed771ee49ae7775016cbfb893f0aae95ba5dba4603cd11fdeee6e8af64759a50f0fd72d21c72309abe541b35323060b3626593aa086f03ab4b381b5ce4746993dfbe276a6f981a513d0cd3c899a59c9327d5af7e8ea003feb8099166ddadbd34c4a1da5c8f8093749032fef149d64a3ca8fb8979735ed15ab61ed5ea9487ebae90ec1de20931cfd5152db77db84871650512d9f4aa50adea8216daa4760fb989be13280d7f6a284e8cd3baa181d6dba974e6931d7d05bf31ae88636b6bf3c05b196611dca3a4a36ddd2ef74c04aaf55ff9054950912875ef25014b676e0039557fd3126df994a54df42a6e73f544d830656e1b809a9c9a4aee84f2a86fbd1b3deadb9bd11caca7fd53ef4228a2a9504dec238c12275db68d3ee2019817796422c38b6035b74d563cfbcb80af34de553f610046cc0fad2c1fbe46e4117b907664b7edba055c368a2c2768a10f7b81e4b40cc7824cc5df0a7dfb3fcecc4cfeaf50ed81dc2a4ae0a44c3e4fedfe96df8e1502892a0e78c9430ee06470673da4cfac0161a53e8431626b9ecd03ec6835d3674cb54cd0efbee60da71c90bb0a334250722d691b50e67b9ed935ddb8a4dcdd7aaa7fe11788af3e9abee0dddb6667e84818cb05ab2ecb2a109943a1cb5b941ffb3e1f8ad6c52a9a442ce48b6dc58bdf8560c506887f1e0c2f8b03ca43f86c487b91f6953640a8f37892d0511e3a61a47dfa46febc302d6b80b52b30e44044ed7c307fcdf9979042bc4d9f0e199f69c21f714882c57c6dcbda101910df076b86983903c521d2cfb978b195e7f0f59d4ec01163cb3e65a7345ec3381da12397c079ab7fc6d9884f651a0effb1d960b2fa0f5da56b12e40703550a942147d6e098a1077c6f7dbfb03237e6a7f529764dc682926ea2459b3c722775c30322aa5085f36595e8addf09322312e0c923a010527cc8ead2fad15ac47fa23a992479edd2d263f94de66b6fcd02f2a43f9eed8cca0b4397161f8be3fffc092188b834a2fc5cfc0a6c8e6e267ef2011d339bf5357821477791e73583c146361fe96ea0cad979f164c96dc3d2bd2c65e10b78fd04f652cbe416c7568c236720022a2ffeb369ec944414b0f83d42fe643e861f33309d70409232d1a04da24ca8320d6b28bb16258ff474df19af48ea39e6b41a9089ae014f2a7ab4eeb2dc29e51f65edc49c82d94a5cd2266e665263af9ed9230cf1807b050e2b32f8fe9968c5e22c094f1f2c8e86e17fd3f7b16d733ffa69863abb287f662c54348c9c61db5b89c2fc54ba05db5e5e77df3337e76f2e39d183572d3634522131d34efc7157c81934a6006e9b229f1ea29c43220a6412d73ed33d48ed9306c832ecdc4cc311ed645ea969046064345aae8c4383b51f9a17a0f4df11fafc9e33b69fa95516e1e846a85e9a9dc3192aeb09cc715e97d81247f67c999ca62d8cb8efa9e6828ba9ed64b40e459fa4fea8d15ab4d44fd65b00c413f93fd1dd34a51216d218ee5f4ae7c0d2d18f9fc9d1336afbdd9672cac22c799aa97b6544a227fde723eb0a83f71b3446e8b2903f67d79845bcd9cd23ae6403a4cbf1dc269d53381fe1cd32fe80988c6d04f451f364251eabef0637ea14d83b605f7740474c96666fb53f450bccbbd5b2c722cdf7242f88650a5d994b21789ed87d40dfa6b95c76983984c86468424e7c876a3b3ba48175056e5cecaa3728fbff6384f42243abb2b8ee098507233b2d09aa36d3e23bd128a19997898603522a7eebbf853f4f41837fc39a1fcb4c68fa8d086e26c8b5d910cad7d5bcb48cc375c57c025486a801409487fbc0c2edc57f610f828cd8620878ffd73568170e5ba84edb7498753081827db9a9dc494485bedd250ce9695a6c2368a2baf4040a7f9bcec8ec499c0d1e78dd002159ad90bb83712370f4ad13f7dad0a3f3e0b4ebfedb6b39b7644fdfde4a930c686511195104b2d2404ec169d600952717061e74db0ca848b9c723e05de9020e37c9691ac77f7c5de1d1ecc2d75e04ee9cc42f2debe11a861a2b193d22884b6ed809b55bc98e69e81ad75b5b8e594a08a5642945e19965d4384ea2fdcca762e6ebf12425c80edba9ee2badb67fb11da1e90ebde242fe58c3dce66303cbb153c9031cbb1c0a98752242980ec85f11576c02b708fce03212f2f7394a95c2ae4e76d149ab21bed295c0a1deb589eab004e026254587104ba4bbc059628c1f3d12ccb85542de6e94e09169ddc9ee5b5a0c2f19cbb64fc8f1b65004cc83811009c0b5a9bbaec1fb9bcf7e99d756ab0a4c38284cf2d9970526042fdaa6a295b13566711da3c32793dec747da5e276148958a948b87ceb211b7b630c0ae751da83fa54a05666b44c6ce95ae00fc74913ff6ac97eb8d45a3e88f41740971235cc3af17a432815d2d3d72f058442f34287f4eca20c165f0ed3596983d8e269e5f4b96765bb287f093e01f789cee84917b9d43dfe3571f9d2fccf439057c6d9e1ce2b2727721ab4ad56d8dfe6628cee664aa69b50316fabb316d7ed33708ad90b8a308cdb9c3dc689b32f55d11de29e5729395696b092441969c3b8b5129cb1e55374e006001e84ec1e3cd10c3ce53c92e1353b02132b8de514470f6d959e2627392c913c5dee6b0bef1a4312f245f2a728057546be528cbe0989044ed5696a9f9d117b7374e862b8dd0d13a857c64c8874cff213d832cb396909975180ea1324b43a54e79109860b49ec1339b6f38e5354631aa3bbc056cfa8e851b566c871d6fbb1dc09e41e7a0d1433be262140e279ca83c8953ac2d42b4265b4906292ccee6754b91d275ce5347639f2dc0ca2a7a41b603640121de79a9881ac8e89b3a01857ed5c27ad9e8bb1989031ee55a2f0b8620f3b8f07cb7515bac2fdb180670d0b78839cb14c14afee8224051a75428d9db9f3fed74c6754c87473996978c0064df8c5038edb93b3de54942f63da218c98f01094bb1a0a51cbb6ef4c65f1e0c65a044c6ae33edea1294b662a59ca77e191976714a3c26633ac6705aaec4f77ed4d2a924c6b4beb6e1c152ebc1514564f277eec838d26619c6b3ad96b1450cfb7595011a8f08981862272cfe5d055636483ae504be4943ba57887d6c9535c8fed7cb29b9875f28a1a0cd851f5944f7b7d0c8f500e1531864d34300323c85dfe090eb5e34938096204ca3820012d5702b2367788bd90b81133870c9d512a2c8ad35bf9bb1155103f84c10e4e6d74374fa3464be2f5ecd4a103d8ca50705cfbd735a7a5981b8e6f1eababec9d141f156f905fe10d323842d6837aef9cd26af98952ab0787d758558c77389906c4f7295ee79c90ac35d37b787fa45ac12546eb492d6e8d4109ee6646bd7d74133506622a654ae0254b7b0b6ca7650d621eb7b6c93c65dc1bfe6ad565cb0ace154f90942b9b0769e023914ac4f435fb53a7feecb7a1856d257a0ee134988e00023c3f51e53634fcde9186ecaf717c324c63f51fd0537bd1cdeb1efea453ad21a6d694607ce57e07183c166a2100c56eb471a92896531bd15515ac1ca8d3f8c0b71a40445c58561bcf1786f5990672ca5e6523944d9b479db7d3929ebcb50f37c8d07cab3cbdbbeebe38090011c162b0cd8b8572e2d320e1292e70c6f69259843f12c5b39a9d7f9e00fe18f72933ebedc6bde8075ecd89cbf94c6959617d13ab850526dc30cc5055a20d3b3406722bc8a5720388f684974eca5b49b02451c433b70331d74dcbd0780cbb94abf595b6c49b636dedea9abad87d9ef62cfcf66be7a4d2e0289800346ea6728af21b38540bfd0dd541cde232b0c8551552c79b55a624da6447fcd4cffd98cc58afc0b5883882b5bae2fa0147c98f93b5b49c864cb1554c646e35f51918a5c1f52159d5eeced29808bc639b6bb872d5c5e0f08cd39a28a51ec813cb1c88f133696e1f94e5fdc07ef25df9b0eed31c6a2b95c314481e3c9dac9d98bc5b29267eeecbbb2607488bb8f540858b3a5860d506b1924ae6f6432b4fb24619199043a00c1dbd547560bedef6cc4023833057897a2fab7d128f549450205885565132916a15981f5116e8ee7e3a0581b78e3b55d526ee1506cfab43a434628bc14e9579ee599ec20dd84bac09c296a6234ad8760d0412a0e09627c1e18631cda185ac4c1f84d960451c9b576c45bac26b180f3ed9d19cb6ca53d580b185e99c21b6612312a32bc6f0904b176368b7cf0764e778c313baf12b7a1850e21c90d8ea7c889d06b8b885b88b4c437e562c3e0faa45c1ca7fa2b3b9c18aa4461e5c0e5628c8088c5edaf0e4f4fb7b298ca2e76549a122101a7eb19f01db8a5418426627f15eb20a7620e8231bce7e99aaaf4245e31b11703bd901c357a1c16057bbb508e94e0d9e5014bb836392f9b3fe521436865f88384f676956e6dc2c7e4003dca5dad2152b4531b1adb5ede0ac25aa9bd73377bf65af7e95926e68d7afd5147eb1ef1ab63d22dc70e12811d872557269c63c509048c22e56a71a6e5e1c925bd200becac887bcf452134e620e1d24c925057291f1bca7b613b38bbad02608881d89f66a0c2ae00fa0f5347d4dd37458c086eb598fcd3a4a79dcf6128455d5b324e95c6c6c0f9f495004bc314156c0b3e60da7887e6b02eae310388beba2e3317e2d10672f1cca6a4a53768600b69f40a1bb0597df96cc744ef198a4ad366ea7d43c40aa31bbc78cd269e2badbf8c54eac037355cd6fd275fc93fa31623fb684926c566ad8bbee8eaac60081695a8e911c8a4183c8330310ddb5b0375d1b961b4d11d1564c19618a87287af33843d1a8588ea263e7bdb302ea7369a0b60a4086b525d9e594d1d120210117f358390187b2ec0a05447f7b924fc21dd2119ead42c7554879d842bc4af491b6d4cd75750b4d3fd5a3ac2afa19a82a0dbcaa9c437ccd9fcc1389a8f26182150ab5fcc40b729b85427d2d77dc321ec835c6c16143a230c67940f9d25dc57c000c77b9ff06b8ab28d2cd8cb74192eb87ad9df4e51b469f5506b162a598fc39fa72aa4cb1fefe14c481377c5012e99de5478d1094711b67a8590f386335b7aba78c26a7c0a57a243e93a89e774ba8eb5e5da442430b933c177419b34068198be786d478d9cebdfe5bb0a2f65b27b79730f780c4f9ded4fb2a4a298a4c4c67323c0df30f4eee65aad57598ef739296037d278828dacd0a5792e028baf8fdcee8d2dc2bb88dce7758c012e768825dff1a303312ecd3520710a8f613851981d66b1c23a6649d13247726c259c2da6979721584a56650034e02ed44c66b3ecb057d32278eb9054a7a8d83eae12402856d9e01b67b3e3b7ad1ce7a5b5320c69d7e26b8ad026a1cb77f62dbd88571a1c1f9178dc29cb0c6158fe24c0ec5d20a551595709025f891139799f086c81ab3e547fbdc4c5c499986538b9b17803dd5a0d0e78a52c87c532bbc4c5e9c57dbe0484eed01a02b08be6eab0b28dcd04507e8ae7280b71053d57b1bd1789015465cf1098abee12fa38515c2a532c3aac709ffba1f91ac84a69a3a5229c8f0d78231773fee2854f02018a232da2e7d4762682587ef80a2f33f296416b2e04ee0ea8da02a5da76e7f3b7e4cd8036ad223563c2627d23bd0665fddee12aa8f8622e6938112d02d27379fc30849e726500a9efc48e96ac0f83096ae7c66ed49bc3b218a54a3ecb32d8656a4f768c8a698d97e57357d6496ef0831d624f20832e6f2de2f459dfc775cec33d9237164f2aeb30a533540440df79694888ff1e690a466a1884fdb12257458bf84af4814e506706e3892514e6cfb252ab3e1f474b0a7b31238fbe567189b6cb8c0504b81bdd47edea56b1fa998516123ba3ba89e276e7d90419afe8e3f52df0a4d4b5fd1e70ded3ef0dcc746680d1078f8c43066676e93dc014c3586357cfc58ab3920ac258223f84ee3aca08b917b09d07d5530916d33b544055450c67b8ad5762df39531c16f4110e01b8c945facfe958062bee7189866aaa8a4cc1a5e50edc01a6ed2f07a6a71066316c883a1f96c6a54ccc2cfc8d21b1e4a5a87cc1c6bdb3adba06fcf2b24c79de87a372f204d270b00b5ab427b5e5d3e76c6f038c395b10d6c334995b95f37d4f9dbde51bf75cb8b4c2458c67fc5b454d97de14d51246410ae66d4af9ed30cbe986d176104bd09c8ae2d27b51b7a129800ff53022e07d63e8c378e830322582eef5b1aa79bd791cb1bb5c4e78225bf9a7eaf34777f6d571b52e9d54cd42ad6dec1b1da03614409082f0146357a3f4ea180a71bf50edf86ad5ce4c36c92692aa50b6233ef74399e6ddc1cae3c3ae48a73da8f74f9189af760364945714248717bcfdf95144f012dbfff9ce3514399eab7e2ec60503769b56ace45a5de5642f41ed1232684ea9090d9473b4dcfb823abc9e5b826fdcaa63522161b85fc7a7d760601b44b03aa66727a5a30d03a4a074bb421014a09cb43e3794079fd9ede5c20955a5e46dfbee4f5ed93b1fae472a025ab878f877ba2a546c7882a8412a2129f9d0a10b87acdb00ee90b03a0e186cb4a52f66d5f348d2396506c235b922da594322599028a074707bb078f89b2cdbb63c0fbac9fe8babb5f7fb66658ff769e1bcf955bc4799cd09291d125c09d50d47e6883e28b703bbe4a34c03986c0ee14fe22eee2df3373923b828107483e921ba0f7ac0b5fc87d4afa051fc6059023696f60bba7848b0b9f88dfba4e111093f1a4082845248931320292ff8c2010334479818717001dc1c003f41ec90dd0110c0d341f490280decb0d49028088aea4f09e080813d1951fa22b29c87f1cd173ec3a90715002184ca9411555b48002888160d10d5f5ea0830e5d9c562006102c853732027aafa47b4458c2393a58910dea46c87d80c96c716127e77744eee43e20a4088b991bb90fb013ce754417fef30d3a41c395dc141abf2372bbf71e5f48d1932b3f808023a51bbf835ce7c2f50fb0134b6efc4e0417cac801a1c265843048c01ea8dc9ccbb11e92dc2944fc448a9e00654635b0c062440646f0df14a30f64e88109d290109084f06234b40293b9538c46088384510b08385272c1889d5802c4df89e0c667e658942e77e8dd292f3019a08c39227e221fd061072a8a9c313202a29cd1919111107f477423d771a7223042982e6922a0d2020b1fd018499306884d605d6fe982ea30fe9b34c6f7a79b8d51c2edf50d7187db92118aa9ecde82bdbf5cbe7f269f4af93edfdd6d700e99c36d350e0e84223f4e79619ba9fcec829173bc5b42bf6294135c9877d47e61df7d501fffe53ef5e3e7740f7c1c9ce39987dad6a13ab475e8c78f367818c386f4cbb1284b264b95f6fe97633c88b939fda2f47126cee48438160587cbb12837dc56bf28bc19330ff375222adb261b9f211da1b295e29d9fffd597e221519041f2216ff23dd500f92dfff177a8ba054d1ef3f96703e633bd2e1cbd50c4e80e413d0b4557a80bc10ece48735960262a4c4c70ebb350742bffc8b81ea82ba58c314208ddbdbbdfbb31c5e3f1405dd44471fc31c5037599793ad486f3e3a70b5c107d21a2dbb90fdac97ffd92a34abb1c8ba2e4c28ffdb106f061385e25c46f91f169a0a8e3c6f8ef8b54e6c7fc345059b2fe09fcd9b3e5e3a013878ef941ba87633c28ddf9152802c79dcf29de66d3b3a275c59dfef35993cd785265cb057cb590bc5c7fcd3df0f8cb6d1f956938b14fee5340bfb3751354d59eb135ea777757fdc8819ac522e2f66b0f28d21286062d37b8c10b323100318b0adbbd6c6c872db77fc787b8fcb8d80e56ae92cab60bdb2f80ca160bdbafd55c8e21952006e50c2721850c2e5c9ab2609102c4a9ca9fdaf19e61fb80fda22c55b05ffcadeee99e5967967d3635cbaab35fdabf540fcf72a1f6a89f43defcbcc66ef4957399eba43353962a0853aeff7e093de92e47bdd8c43a592a6c47e318ddb24e2d54b64e7c61c26a14dea86c99da87317c20f3c4142d53a880b1a8980f4b311f9874136058f8efbd4a1292d3adac42e23f7c310148901fb238162c1eab20512d880a4610e86101e2c9bb54e89e16fc13aa8c71e197d03e118805b7e3a615b0172c3bddd3e1f88046467e39e5c31aa57cf092109b3132ba43ab1bdf870c6937ae707b8890026e33cffb21e9ea1e38847f48feb8801008420ab88f0145b739e69d97e2d1f9a778bcf7ce5f8ee0c627220109884c22b4e8c6232ef30ee5bafea0c975feec3e9cc3f9d191e072ff3f9779a7ebe7fe1ffde37d7f0e14a61b37e6d80f31dcb8c56bdf1968d0bc34bcc31f195074c46d23dee1362a725f9644651b03aea995b522bfc131284a31285a623a78b1c1f9f1deff75123ae420e6f20a01f13574aea8dfd3c2df2b7a6f0704dc5d7b5b7c87cf1b1a61a05676ce4688c80de237a0374721a43c381a9453024e88c8ed239be80f46f98ec3a3dfdfb9f841fe505ef9d3af4b65bb84ad364d2714551bcb458808bf0c546e77e8d01dfa6b5b7def5b08b7be7b039ec0f2af5e3e53e4e2c617dabcf6289baf9a66f336a1f95d8a7bdfaa57ed00623923f6ab4cf1107a696ebfd04b73e3737d9baff9fad566abe91aee996e90d003b19cfd234540963b72f32aeee9ff74083f5cb772df2fbf597db675454997724253565c12fbf627f7d7c84b037405beb55b10d7f1c87d01d2c4f5cf9eecfb07711f95b5af3a625b47f88fd8f757c17d546eab514de2ef0f99046f66123afe72df3b973dd9feee1fba3fe4d6797fc4e16bce72add66be7b2e3ca792806e2160997bbedb20796d502726790907f071b6e42fe9de43aeaa91dda6b5f5fe33e4ad4c34d680a8a4b423fa3f4b3fe2394234241d9610827371c110324a03f72c4bacefb23946b118945b1e30edf3773d594c04a8fa73e4fed50a56ad7efeaf7e651cc2ffadec5a9dff747df9baf371ba71e50a482a42262a040892b526401c4ac73f37463719d76e9df6c1dbca8ff71a2bbe2589b10ede2d8bc8ab3d6614bd9d786b335d46c945ff5b9fe7b48ffbdea7bca07acaf5ed47325ba2f0999456f9e6462f74912ff888cf25d87be2c7fcb7d92d03f329f4e2e09053a22d9752217aff447eed97579e3a7d25cf53d96acf458b2d263c94abff8c2a6ca2e1d337667f46d4d297df5eb31c570fd1f5327b90f07dcdbcbf5273e6a71fddba9b8feaf7b32b8fe9064476c7f2744bbb45f6e996212180c53d098e007295a18f962028f4265844d3459bafe3b59cde558132665fa5d5d00f77e47a13fc85fafeee72a62df8fe059da77524a4e8846bf6d18f5e80bf09e79fb611e1d47f6e5a201f0a721d41eb0c492ebba1c5382caad3672c2a0d8452efee35caac2e025ba78b1405421b0ce566eced4a7b22ccbb823daa73a2037725aad5c92ec8fa05059f6a80c95a1b2f8831248b1332a2c2a34aa2455920a8d0a8d0a8b2a29a68492950cd50319acbfeb8aed4a78edb40ef80d889fd2ba1cdbea97bf175e1aa3b729aa4f6dbed51e7f2d6c80e5341abfc6999ce9a98c8f61a4a48994a42d5e9ac47cd13d1d8f54dbd195947be91eface5ded612cc6b118939b7a2df5c397b88ec5b9977ef94c5930b673a5ec616ac7901e3cbfc7bbf46db6be33b5a386631ea1d3fe3d09aef65e3ec5f952f76247b71fe5c3de27f4509b7b49554ee8ddf8a8cdbdf0e317630d25c1a51ce7ded42f8faa26ac52f72c758f97b8846e5165e119bcd139aa7cb0f1fdc23ba5e45ae80bdf8968b57680c1ba7d07a8da41870e2a208c9123a203e80a7401665bffaed70e95f4b97f3d4b69a094d21a9c7129d74d8ebef724e5e27f7bcd8942cd4963a09452fa96e9d26f557129d70981bde45a2cfbaf772181040aaaca49163bc2ca555d8e7151ba9c4ac1fc3739cbead7abd9123b8209c909815d150a544e624854b9a8cb312490926a97a4abb4a47a623986c4925817252431a52fd9738d3e22120a94b96f53b2b83d6486b0077a5f4f93a60fc03132a4f499636448695cc22e26c625a96138c060aa26ad160ca6baa1b94879efbdf7ded3b830e122c3b536b01c2be2728c4b92db51fe8e713172cb70627180bf5b70fb6d6bb99de6a45a271b2fc78ad0c2354c0284f045b85d0c4a51ece0775903788b1b79a31f37b8452c66802867c44e2ce9b22bc2ad8f53146027960089703b0aa79d2af46e03d1a47dfcfe0e7a9ff590c73c429c467b14aa722068dda1966b5bb669d9d71ab58c99a728fb015f7b4ef9c85eab9f6dda7bea07fdf7afb9c73c2f4d0bf40a391aa3a1275f97a9dc3e36df51547dd7eb155dd4967aba15dd5aabb6e1d0cf3ef5d5a6c8edb4e6af81e14855f955d65af4b26c1322ba427e2b100dc2f9313ffeacffd3b366fe9835937ecd501c0ffad9674c177ed0bb71d332140ac505c5efe0b3508442904401fee43af91a97f1cd344e6e369b370ccc243ca0239b87819904f90fe8c7b54d88e8427f9b8d81a0d0f623e382520f3f55834dbdcbd4570ea73efc148753b91ff4e5d347fd0ca274fea093665c27b74e7b9c4c6e3819c7237ea51284fa2a5fdbb4c8a37eadef9f71ef28a05e8bfceebba8d6a85041e25344d1fc6e5f855a6f2c55f045b8bef99d7332734236efe9ceed8895221930b9833bb7a39f1b9f71e77c90e3e4860fd6c8f8effd8fd7b8ddba4375c4f2ff34bfc318a7eac8f247faaae10d7639db2f11ae73a9aa186c0b71391644d36da4cb312b59eeeb720c08323e868c98b95dd1960e04352c71f99f2a06eb445c8eb10087fb942ec7b084b903b81cc362e4a57aa09a10738554b8fc3d506674b842446a6e3734068b1694db0d518152c7dc6e28863104b06288dbb140c510978d8c2e739acb7c8d20b93189eb4534b97f638c8832ee0bbd2d7e7d0fb92ea64509fe38dc707ec4246effdb82de772dd0f04fa1f03f8a5aa0b174fd3b2671fb4707b5bfa778bc8f911baab708a53bd4d7b9aebf85f7d7b7bf43f5f217c5d7613cff6ac3b56ff49b3afdde1eedaf4fff7d8f89faba75a80fcabed66f4dd3fea7bbce9a6f1c1fa84b39219b9a28b37eec31930c9f8435fd3f2e9f3e3ce33ecdb691156cde880d5111900ddd86c0aed0bb2d0c75ed1dbc6b7463322e0c6a4654a0214d9a3469806cbe522a6b845e1a9be707bd26b5f153aa474dfc8e3e3faccfa91eef2b7db466abd9188c5b5babd9f806b7ba56b3f118b746ad66d3be37bf36db1133b1306f0b7d373064a65447acf69c521d598d9faef695a3bf07fbbd19801aed37d8ada8adb5d4bb5fd46ba97747fd90ecfaa25edb86f80fc91f17b82d04028a5327a0fea7df734b8ebb906b1179455aa3a8a452a9544afbfaa9542a957a76a5ced45a6bfd1bd64cadb5d667572523cbb22cfb1bd64c966559f6eccac09873ce293ffe9c737ac1dddddc1d9927c277ceb1a39f728e1e7c5d959999d9c67d631e1b8d796cfe86b581adf9d46b5fdfdac0a2e65b1b58f93636af718ef7369fe21c7c6dfe6d2e1b2ec8ba8d0ff952ceef7ff47d3e7d76673a5b7857d2a7dcdfc905d18f93739f52bebbbbbb10d1f7b735c3f6db6c38fe1b8e7f6f73f6744a57f0a1c275e79877e8ff34a51fe44ffd870c6957480177485e7f5fa155b894ee38f77cdbdecf8756bef982da15f2e0a514ea23f2664a749f9017c18e684ea199264d9a33f7f97d5cf7baad726a07fd16ec15028d8adcae5f689e2992e6b64083e0fb4bad9beb17a2472f14b9435a989785a2fbe4dc3a7ef9cc0df5457142efcc85cfe1f878a91ddd7bf9beb5d017f24ebf94cf80a223eee31d06fca3bd75d0bb7be367a148c8a5905f1804af3f17c4df1cd328fdca009a6abfb05dc3b11eb4dc0ede7e0c7ca1e5a0c2ee91dafb77455f1fb5758f07eabd3e66f7cdf95d6d7be681411ff4f9e9b772fac59fd9bc5b39b583a5cafed6825b87828ec3c36ff619f7ccc3282e887e9612a2577ec62dbb03ebdf6f0b199d1fe594304619611777973fe79c51a5e305a14fd83d90a77c1865740823f4214c78ef41789b5542fa65fbd5fdb03ff2505f08add6f585ffb8e7fc9e7b6c87ceacea1e0ba0a0024593d6d3165904a5a4aa57bf6cbf607f4f11ed177c2914e467436d37b8bdb77239d67474ede558145f6e654b03cbb1289e5c8e4531c6ed5ab1289ea815f57d4349515a8d851266f554465603f305982cee7b4bdf7bed3594440d4208a3b4c103d5e69c9366355a5035140a85aa1a0a4c2a954ad5d8482a549ab5d6aa56ab2c58dacdcdcd0d8b464d1836b41a356ad4b0d1624a7343f3c0030f3cb881a3329293daf15ecee7e47c90aa00d07c7bac189833b1279880a0bd4dcba1f2f74d18594861d4c4448ccd142ff4402d0f5e54414a810cc2b822072898c4cc393d30813f21c5152994e841abc186144ba478d24316af025c8e81a9726b5c8e8161523987bcfc912dab95f3aee71c7ef9675b8b5ffe7463f1cb7fca4d637eb97bdfd7e3735aacc70911bd6ebacfbb7f16606d564ff59e4d64a457847950b748e600e6e987b74a4d84370009b0ec1582089c63b2b531c1841baad54fad262cc084d58d79e34623f11ed550df1a1f36a156a2ab7a1c38fad5366034be7b7dcbbfa3adef347fc83972de3f720e9c1b3aae3fac8377f5d5371c52ace3c8d9de11f3f4e36cefc8f6607823f47bd0dfda1e101b5cf7aac1d1e0589cdce2e6c6889318f65140113c30096106962e4400f5bf32ec83002331a2b07225055ac200f5ff2ca07b1ed2ea7f7cb5a53e6eaa6da86fa5aea38a62f976cd3362626202c232b29e82c64c2a32b6bdf48be931bdf7b624e9228b145c18a560067c06cb16288c809881490b8781022b44d040850c1839b0172b4f189d01028cd111af1fb74612b9724378c02b4474ebfb80b7725390bc51100e48d323f398de7befb1d24ff744186e900327665470a60b194527b0210645bc3062424a4a810632bed081872ca29891001ac28841c5891562740142ead77b4b966d18758f898190dceee1707bdeca3fed1ff8d3edf108fe7373e6719e9883038deba9eb461f709c42bf9e17ee29f5abff068d4da13b1890a7db4830e8ec53b4040c1a82f8618905606c01d4ff90b08f560323726003273a90220650ff5bc23e45398c99411725535e80a609a0fed7847d34a0431429965802c413470021f5129cc6c90172ebc06f2875e2fb0f16b69cb03101517bdd612abb2ae7e8cb1a7bf4b87920276ddd0d52c83a10049e0be12b7620dcf81a100ec531bd6e04e21146c87534fe7641177e85fcbaa63916f3bcb73ce5ebb12eb41a85b73921a20b617c20fd8aef66a4092a77fde109219e18823b009b0283b5a8b45a2160095302343bc8420c2b9cc9dba119101e1e110426b1807d3a4beb442328007c5cae8d88ebab0a8d756d57ba933aebeeac3b897bf99dd44ded0493601698c4a3e8beec5fd683857d2c8c5d1a0637beb9715bdb2d377ed38dbf71ddebcbfd1b97b49a449fa85f10c975e2bfec6bd2d436ced159a6526ddf7940a69bba76bab19f6e5432533bb89fa91df3b3adb76dd3d249aa278b2a63834b98d0e0686c389c0b5c0697c16570195c0697019f7cd943fd7bbfd349ef81f07073d508a1460dd6795fe3b7cdf935c27b0ac27d1f828dfbdeb5c1f736fa8f07cb977e26297dc87af8b566d192929260cffba0bba9957a89cb9225c124cab920e45836beb7740f545a6ab9d10c4a51412488a46ab2f573fe03980493ba27001f43f8f8f0838f0f21ccf90e4218000821bc594108e1cd0a5208e1e37cd749ac8710d2c89c4cf7701fdfcbb88feb5b0fbb876e0108e16645034a814810a9b5dcacb8f8aecdcfb44eec2ffdf2d24b9d0529fed6480000c0cb5427a982b0ef41f8ae936e7cd7499dd44dedd43d207cfc7e0aa2b23637ff1bd196e43e415c27be13079340e05cc8f9ae933ef88ecbe81668e9a4ced25a6a7e1c001bdf0fb69c8db54d71fd8d8dfbb50d79746eddb7b6ae3564de8e9d86de657127f42bfecd86b3e26e7571d00c08fd3a8a39b1a4aa4245452c0663c4624026c644193126c8a8d034d174b9892f973fa77b9c89180ccca050b9eb2be34fde04cdbc0917c3c494b3f35733d8a7fb5e997ea982b0d396f1320e39fa9e99fef7c52bf3cabc2f9e196824bd54559818134db41feab32ccbb2eeb49b24b9a5c3e10e2abbbaa774fb7df3c7548a436fafe15f0148bf20131a2cfd0abcf7eeefce3388730f8129f4ab8100494185157a95c4a66652f7d02c5bbae75d46a910c475fae1fbcc858baa99f6ae734417c5a9d0af06a2ca62bbb7a4e325ee0373afb0254bde8da91d38fc9fc3ee8efa3935d8f7d9e380d1cbba2a26db51f97c21eb4a58099761b0a46281e5e75bbb2e51d9d53cf9467fbf3c65c2bb3da77623c7067b53999c3b10beef87f2082a9c9adc6ad3c1db09d1aef69e9444aedf17e1bf0dc91be1bdc38730c8e2a5894325fd7ab05fb3d73c0797a8be74e5a60184af32633b9b0b1f4277b7e11cfe33cea91ac3767fe7fcdfe99ef9ba33fe9cf3638c314ad819af8c08c1c408990c6b592d77f77785189605638c483c293bb5436503dbb5ae6c754f47735cdd23e56bf279cbb161cef7e6935350091feaa50c9a3f391c1fb3b94829a594524a699665b0236acc89af9281edfe5d0c736cb0ddfd64e005c91dc0130ebedc9dcbb125902e0fd7c10c2c0815720d220086750b5476c18e66d8cede18bf655991045575e60601a83df8720fd517f63d935059d7fdd977d0d1095476714a95031bcd75fdef9d8b5347a76e7777f7e6ee6e0ee2b1333fa646e69c73ce3979b253c74ef479eb74dca6bc62c2a2be632fb4e976d0041e1086caae0ea6fddce6967ad6138bfa4ca3a9ede53a3d67cdb953fb7e8dd32ea5b03662d584955b0fc975bc828118fe71ca293d321508ec6d4260f703b0cb5cd07c3a37fa75eb5cb77ec7ba35e7d66f758fea6bad5f9feae6595bf797f53fceda54ff8488ee4ac8efea39b563c5e9e85709db3685460da76dae7e3573f70cbbcccdfff16afbc57cd35007ef75bb4318e30e6dae92b0cc75acfb564858e6e42a06963fd67434d59a57888a19478eb9a6b473e1f24391017bada6984f7a106fe70edd2191c3875b4ebf5ce6cc0ab894e453e1bbb498877f05ebc41074879452bad12a8646a54fe8d76331f711ad30f4ba270881ddeea6b7e4df0dd909078b6131b7b9a0c7799605ac96ec7b66bab4a3847d9ff3f005574bd8f72e84972ee45660ecfbd514f0692f552d073671ecd0de6c5036df42443e16a0f4f2c1d1296d633db1aaf76fd5aa7aac27d6c28030cffb6853ed50642c1d97ff877304619ef7fcc2b1d3da47d4a3b8276c672db7001b13baa7510ff3d48efa4d3921aea69a97cab8aab19ed854c6d1e93eacd6f1b96ab2ddebfa6ba77bb4771ddd433f7bd4672dadbe6b9c101d175551dc7b2f7df86cc74bab7d4c709dc8e26227d10b2c0b8bed5e93d7a471faf94ef16f6dac2736be09415651d88ec5c4cf008be99e467d77425ef79dd03d53e33a6eda31b921f8b2304f4435613db1dd6bd26405855d6128768f94eee98434e91ef89074e0f889f409e1a5fbeedce065758edd894a73c9ff300feb803042187154c075e1af62ae1b637cb972565fecfbf88fa58c52c6a90407bd3dbeecf862b73fc9f055115d4af6c8ccdf9292fb15592e257bf9fe6f4a0aa52c61674e39a784afafab29e47c73328fece07d4eb5cbcf3df8e29853ce296d0588987784b82e7309acc7753a7660cf4f888ecbadf61936562b52bad98ffcbe84cb382e7752722ca480071b32f3348e4b5f6ce278ce3923437e679614760afb1eaea4b0ef5f17553e861d3b4618237ce66115565dec8b1d5bca28655c85b10f6ea9ecbab1e2623b5813217a40f189aef813996580e0bfa7fc54efe9fd6957ceabff6d5abf2acac4c85c8971e114e3824a19295e3459bd4029e6059258174cb12e90625c9411eb22c969d062062d6a208343eb995acb6ae5b8fb844cbcc08119d3b6fc7574c69091a141153a65849cc5c828a9ad31ee6a4c96bfdd0fa3a4b4774ad0e1629df7d49ba32f4869e43807b20e34e2995acb6ae5cc396592314d55886859d6164fdccebe94d510373f14dde0f46402272a90e1cc5317639a8c0182aa54506484114963aa487af201072eb4f8428b33aaa86ec0d142092dc25499363850325a206921446c0b2b97c6e5d81638c086ab2bd6ddbd8b96154a5b2d206afa8417c224e184c30c52b6900018679cd144122ec04109286360b6f5ef7aedbc76fea519e9d2c475aea39c10d87577779fa2c4b44515314c6262a0cc16cbba5e3b36b6b821db020568ae8dcbb1315e28b567614411131fc2c82283334986c8a2c5ed2c11628eb270b222225b0de1ee938526468e780063c50559b89855951511730c178f95c0c10633a05481060c14cf2236a68bd8982b8a54ee9ecee1757777f7d7d3cd0780ddeffa0fe61c0a701e7ef8010673ffe1060d288d9f8269ce39a7fd2b9498a64d9a73ce59c383ca4876c50c5740b1a9014a0aea8a234a69a538b8a248ea68f5f4748339e79c329440881c928cb132440eb660e1943d81a91186e660b583ad024409ae60e2454c105796fc8aa71b9e7aa094521a9520a9c1911c921879b2e4e5e9e9e829899c569461059a550aa2d070921ae2512bca54b183150fd275bbc909715d8a859524403e10e8cdd9512caabc60556099aea2d8168d6151c3d52ec7b038725b4f286db55c2b1d2074b960ab1c6030368388a72d846042081e746045f70456513a0b63059a277600a2092e69aa70e2040673274e9c3c485737549144c5d20a055388eb528e5738587b3956050d2837277771a7115cdd10abe2cb959763552871bb8731bd950d304819ab42695503102e2610ba5cadd5095a2d97cb5d76b7775c2d51a2448994981392550c2a215631a856b092a10458e35b90ee93dbd10ba917b775eefbf79c985ac13eb075fa7b0bfad4af76ea573f314eb75915847d3cfec21aa32f2b252b25427e790671f3156af066eb9e20edebd601791ae5565f81dc9b340fc8cda40cf4f9c29509e00b3b6aa8dcab2357906261965c8e4d212536850daa2b5647de7bef69f057472c3217c7851f61cff05c7b3b544fd876f62d10f213f6fb5be060b8c0ca0d2f78018b247a007232a272738b9b47e5767715e0a434f244193d096bed9c54b395fe964bdfcba532db38964392173b1fc27e41db2f9863ad34c3aa80f4cb66199def071a8f323a84d199acd06ab5b846f5d32f1b9fd2183b4ed930c20683fa87cab24cebec49335035d4dddefcb4c0996533b3519dd02feb107aca474a4e19cf70774a5922a852e8d7e50c85ca340a1f84ee31cc1863cc2095199c524e49bbbe682207236c772859e0eed3a50c7243caeeb8598f323a8411ba749293811e9c653426a34ba8aa40bf2a0ae6d860a194d9cf39e77c140a6667607f741507fa559fb6583246eb1f1dfa908fe2206dfabc36840e23bc92094238a16a01fdf21823e578a8ef7cf39f261f8452c6ad280b9e1fa8140e16553d0a15110900004110004315002020140a87440291482c188a829c7d14800d83943e6e50174843510ec3300882188841d010038061801042c8d4d4500d0080195ed4afe4da4a03f092092bf769ae1ff50afdd46eef9e7d4c2b31335082c819550e9161f34460f310519efc4f1fd5515bce842cc9d2637c910ad10d06528b9c89ae77ac714a60db14808b50d2d00f7c4c05a698441e92352114363391e71f175f06e8aced441c58c90ad231fcb30248e17c6dca3ba70b64c325a5845a4711260859a33477e1b57ae04bb04b8c0eae36bf8082fb0f266d17c26832c079034546cf5b872ee796c61dd5be801ebfc626da9b2a895d6ca822ea63c02a6d7d8e74622978d604be5fda5b615ad46d707de6c4cfa19d574cfd69508f3f09fa04e0d5cf19b94ae39eb710ae82190190af2aaf34f8941cfae73db8b82698fda9e8133c79f6b9dcae8bdaa0c5b6e93c19ddb9b44cfefedd42afb6c9006e550701aea56770687ac22df1cac7f0cd1b21d85bcfce0791245ff9788ca70e12881a8f226e3c7db9accc3aac4a8d8db7a3c4df0b3d564c0e207142f543eccbe2534c4fbb9d2d4c40301f29572ace32347998a1c4afba1612e07d83b37a3188a770cab200acb261059f0e8c6731f3803d1356c2d2d51e88798d23d4755c1a905b7621b8dba7e3b0ee34346fb8770c4c74377cf9171c1529ef5fa2631b31b3a1a2ad9ca336239f585a555427b4efbd760fb7c33c6c7959b436e212093ca351ff176be7352b9b7230df77346950a5fa794d744b4160841447f2b704def344e9e2557d786bbd16122d870482c8c3ccfbe3392b9879bc8146489d1d7aec675966cef82549516976b5d9fa395122af503ede906027e1052b67e0244bf8c5c879431eee3fc911d1071821cb13376228b4975e7cdf5d6f3ded32536b07ea1e11e416609ffda5f2ce11a9e7db32a7aa1a583cc3e8bd15cc51ea3a426866150d4ec3e19304d4b83e11a6546ed238de960a4aca2b40f3e2997d319f2f72c462a476c75a3567cee328d1c050368992dae15ad6262b7e83dde5d3f84b8d471bf30a96b240e4f4e50592ac8838940ddf30371d99014730fa2003560a65809682ccf05220332ca5f818499471b6af9fab97e950f6ec923ce11ec4ae98d3fbd2be5e40a931682cd133ef5459e113b6b3489c5fc1272c66c1351a374ec6ece96f5e2c2cce4ed4e776836b552c88a73cc72a3f9494d88be1a72008a94c901a7281869f231ee054ec619021674cdbe8287e3609491a19fb38c3227b9b983447f652be1c532c7280ace4a40c17c6826f55503a6426614bd4975403ea50b041164ccc823968c0311f307f5301683b520f24da64dabe2c3bf6df3ce91a07dd62423e80ad0d195cd2ee19ed0e2813c6f7c6020fe240cd08fe217a231d22827d234f4aefc1581a17d69cf56650a8490843453cb2e26698e6104820a1be2c9c2acbe1b21fee3b161e89e18e2614bdf393280650f5084f9ea0df88efdd45e0e0870b6e1a6f510bdce9d776724acb0d57d64281a22d61bde369b48bdd337315056e79c225c20ab80aa04007fc222d156316dce86c80b4267f60e92a0f12c3208dd017c3ec282bd81e73b940ef30b3eb6320fd8eb8bf5df70e59dcf2c207054aa1329e2422b4de2bb46cf991fba006cdf223aba1403f27f751de81011bd9ee33d62ee04bf8450c0d6729b7433a99606ffe53af02a477a74fade1169ce17501a3305fca1afeaf2d024cfafb821433ac8c27d920199ce0b25081521a173b02716ef05411006111d3c8d9a9846069b538e0ce67c16bcff75ce7e239fedecc21361c023498e75760c209d850ac3c7df9895d3c957b523c6c99419307a6d9d59aeece7777b4d6c9551bd72632bda81176b1cb0a320bd05c5ac48ca46d7a5097726cdba065f00f66bb986dee8d2d0a1164005eba04a09d10e7555b2a29b40f51d6e3436e55f5e78cb870618e5b5a688e77915d41c8d344f769fb764044d0a20f03647b1713fe5015ea44d67ead31de76d47e8ffb5e31163839a7931b062db3e8bb55b365bcd373738f5ed855d4686c386e29dc495df44de33569ead0f92644941b6ffd7a662dd7f2648fd66a73cadf2ea138e75574ce2478af3d8ebf7ae3be8b345f3fb2b59aa2cfd1be98f4ea54994184f06773e9ca554efcad878993a14375a97c304ceed15ae3c785ed6242041bdbf1f285973930941ea976fe6665f296aac2de81b092a37125fb8d7f74cc18e3bcce50663376367d12d601969c3b858d8911319731ad174b9fe9eeb0058dd885eda3cf966408f60e7800c046450b9b5f4b9e6f30bc4e95565281adddf4423d6bedab2d929fedb0f0a239c21c416d8bb9e9fd5ce20e5ff4e839c7afec53d7761963d29ec4bcaa29f163811f288fabf0d6b5f04fe4ec45938a77e2e024e367485464a3fd6ff986f41c913b666e32fc0ee087faf8fa8ffa9aac648bf9229088f5b7e4c3815f26de9621947f887d65e5de0b5a5f30e037e0ceb261aacfffa95f055b9a0953e2a13267373b55d6403093a69139b55e241db8c7caf69283d9e5c6b4bae920af3587e467b7431407c7001af2b63b7bae838938cb455ae6f877dfe3e508f7b8468fa1410d11ad9b5a08255501d9aa483d77754ac2d829ce2d4e889df5d749d02aae65eee9cbbb96385523a9d85c74ef30d3a3c1a6e75d26845797a32b39281a6e65ed0cb4006e14383da0e8929b0e2da76423061468b0c45a38cfc21707754a632ae082204ef61f4da1a1c800c4cd4fab255b549423cb4ce2e7dc1b05e3f08da45aaf85eddd6cf64c7acc4cec0de33ba3a3d703d6625f2a99bba402eeedb03dffbb70c89e2261eda72aaa49fd58637f457b897284ad35b9249ddd955966422e8bd6d42e9f39c2e543c3a1644e5df0223bf14673474c9a424c6f440fd32ad19452a3b40dd5576a57873e639b6e37573184f5487fb32a1f417155b6d4b07325524cea164757b08e4370ac8de18a90da921105b9bca3e5543ae0f8f17668553a0f6778739a3790df73aa6ece29984ba17757306a9f64a090b300253c15850ac2ba8513176a2af404609be34d1acc7ecd1e3a76c23d0d50e55935c3363eeb73469375acb61e027881af13b91e57163578bf8a92fe5cd6418f8c9aa5a0983c376b6ed17cf947423068cd596a24b2de56948d3ab3694c5c92c3f680e73f882358888c93ef10c2fa14e2e295c1ac89130494a3322a34cef010c808d1f8d387f9d50039260bed10fc0b9d8e243424bdb5b18c1e0fce31c82f4c731e35cf6954f4964a12a55a0c48327fa2241dfa03eea9721797f5f0362c16c65cc0b53d149a1e27ef570927e92dc06abe704cafbd610c1d892481b831b8a6391fe76c24120561ec82531a02ec1856515d46f7c51f3f7b4ee84cc67398a6bc35e580216243d8b6908ba993df2632939c782a5964b51e51b9c0c01fc3120e125042232254a62d2c1cd9793361eb2f3fc38cb8061c6232e2119603fa2f62e38305674fbc7b25bb7fd180d4c1e20cb84a349705f976d7abea836a8b7292f75ddaa60785331b216a9ba7e95f9097a1ebbf182d374447634e262986f75c55265642af6417e58c0ca9aa4105fe0ac9f5815a402b0074aa94ac018e88a3234ffd100fff70f99e0e87e32a294f27a5f6c3e1896f198349241aa2178a4dc2dc6f95a3edefb43fed89027c8c46c79b38c93a13cb4a1446f82a68a32eee97132118ff81e7cd13a34e4216aecc6979c1052974499860c7b9df242946660a83a40bf4a6d94b4b318f9c050b5e688340ca5ae2507cbd9ee95599d9c558715516c67c858f1d124fdf8dfa0fd3987bed62f6764f080d27b1488439e7913e7873bc856271cbc6f18ab89fcb905b980031908285875e77ef97043707f110f15c581642583c04d53f2fc870104e6e0f458dc87f8a436f80c294647a9acc1995086d61fe34641d744f6270a9747f51c9f5ad81e4e0a9655102f488a310eb13dc6fe93379459e8b33b9c75f993a658e7f8dc91a429a5a0c38f119efefebb49cbdf8601a57ab385ecfa0e68863979172d19ce8010073202b141825051db3a93dde545f0c8b49aefbf13e410c7c45329883268b8719e3337dbc4f646984454b22985910255ec55a1bc446f0b352c48194d6d57260f84080151ca834ed8e256deb8da97ef721299521766ac6e636a6e2d6a2b13401f34c70df4d2acbf5099e25cd1036d12150f4e5b2b9cc01a9f8a2a7652c126e57b598e3f08c1893574d587b8602dcec4e110c657c50b1530384ac91560e68b5b54cb276795a83737b00a70cf4aa30a2b49eb390eb1e187e44113f6de245383b9a6971f913f89ed909b31973c34aee6115d973848372579e5cce6e6f60685d7ab95bcaeea4aeb25b6d8c64746146b4bc94bfd1e397c6d6afc34cb4d986a0ba0e441f79ba7ddab19d7ab02b0e7f542cc410077c06bedcf4a851ad21763b4b934683bde7db65d78dd00096cb19cc4eb505c0ec8add4142397a55f1987988bfb3217793ccb2b9c0fa72447e87a2ab2ca6dc71ae6f678401873b91926cd66507559daee5f81c7fca9ca31db25444175928844b32554f450ff1fd5382ba6bd97613a7ab8c51fa6dd73310c0e4277bdd054154b3f5986cef1c17916eff97aaf101daa30f498ae98622f327b6d168d15cb6ad0aa558ab2e293717871f07ed0d0632d6d7b40036bdb7a9f5770849e35c73bc0d2f3d6242984ccefdd8fb00705b817b39438f1915f5de8308a1fd72142891f2f24fc02a52917c1353083c8344087b872fe14c4728620a6abc089cb883ecb803e8a62fbaf49ce48226d613c9d91354e17cbd1daa40cf7aa6f9f5e4dd50895f8138bc88a35f311c6ae368abcca48fb339eeaf66e108d0f1aaf523845ee1e9e42435250454acbc7ff73c4d8ada0a5483f4716e99229f9bcaf4d0e9711980aa0ac5ef5deaf433793a31a807f39d24d67ac0c986699a22506c2a8791941be3bbc49be1a5c25546c5396a8f71dcd24e2542e37dde32ac30606009cffede0ecb80d5e066ed34c376c238669697b2c3ad70e31b9b64e9e7db3d9e77c2daaf71488dca408352e16a95c2e001b0cb2e39ef6717a0eee1e931dee92b502a17408f0a1c10a42ead7a680c579869889dea1b6d4cf31586f81f322cf15b1b60e2e14276e5abae4b3f0492bcff1125337402d3d06e4604ead68e4dc365f480cbf595dd2e976ee133d7038df6dffe402335905db9f3b558c8e97b3610427921b091e831295ae947776f334c895b9be4520b898c37903293e569ad7eee3509619709a07d76bcc77c9f7cdf77d1a98a5b5c4fc78d5ae16372c90880b168b0a2254108c984aa919ec48ee308b7a22f0beeefb2d2769495d7c3c71dacc6bdcfeff5d9805be51744ddba4854a23acdb0339fc3ef5698a844aedf2113eb7107c858dabd385f31dcef811ad5eebe230c054917e20b99cf899fcb509c280ddb8c66385c21de9c41457eef83f31eee10c5b36d2589c39beb814c716a339d767499af372880ab5499190333143226f97dfd3fbb33f8be8f2ea21f3f2e2105dbdea14668256092e301893f045ccfb8c81251ad3b418418920a087fb72fb01824d50d469ca8c7a0490f5a6fbee77342dac74585910dcddd17da4741ff44f81db7a329b818dd112b72a8f3116291aae8629890f63988be654ab15881830157a903031ab2172b96ba66c1fe61c6bd8f0025b4f84eb801ff0be3116460decfc343176a61d4d9a572ac1e7a5c4b03b1eb7477e39abf3cd62b1744eccbd9ba817c6d9754ba7d788081251f2b7025b5afc4f53e38d4bd8025aa28e8f0a41aa43c06b8249c487139f503b2971ba499e9ab4e7694c6291189850a52f103e35af58b086840c9eeff494022e2870907a9ab1a8f0f0ef900421f3a459f645a40a6dc574e11e631032b4ce38d06255c6d81a7e1aee92f03fa2b435a59097bc80a1668f24300660f615449675377490f76645a366092136fc0d28fce62f8b03a06821f7b467c5ce0e48d5b19d48cbf12167bbf8d23937a4a4ac94f1d16d2b6188ba9453b5d391fd81a81b461bc78e320cb83795f52c9b2f3e7e786310f46cead5e5d122f2050e06027dabc11345e5ff653e36d92518dc61bbc20b480efadfa7defe9e43ab15a11a6364ff87f46b18aed59a3e7408776ff9fe89c74d028029de855821f14b0996ab5c08f45f903ad778784b1670d155d387a716bc6ebb173d8e9831af576116c7df5c615de3cb4e2a6186f4216cc0c4d19266bf83d31c16eafcec7240b901507351ebfeacd3268dd728758376126d536069dd1851783ca0735dbd70629f86ca7ed5fcf41c2859fd265003407beac89a614bb932bbb8d278c006a29d3330697c70e5d15c692e1d04fb3e20acb8599b4c1c2d26b5ac4b00c672fa53fb1724f7ed0eb3b9033409c4460f4cbca99b53eb97f4a1419eeadd1dd80400c290933e153b2d507b2c41761eee5d4600bb0578d034a41ead726375f017a67a7b97017f861dc24510241eb7ce34bb10c347373c4c60eff59c6431e22b1aeca01c4f603672e452982060e8fcb58293095c8414cd55bb0a7d76ca9319f9688dbb206c83e9f0057518f4dc1e18f3e8affb998fe153cf5128c1d518f8e8b6455b0078dcbdb81b1bc41087465ce892ea447c1a1c30accfabc4e8a4db2d61503d63eeba97854127dde08ac0f8a82d07cbd52f4b0375a5c62f4946320d2ebf0942a875e9b7747b09a6226205672770723ce7e876d0fd5f6a19d86192a73afa13b283e3b8034aca04f64636436d0dfbff4d4f04ec7529fecfdcb6fe731b3bd4832a33690e8c7a4d5a941ec60a587ac5b4213f87e4826f317c4cda49b4be82032ed343b4672ed7896091e108b0651005451d08b8150006261d08a28a8af00f4a2b056f75b4886729db37a75508a412c02bd00904541150649318805a01700bd2088e204e22f0662915bdbfd055ce18a807e611599c4497796c3eeca0dc1af29ec18c9b5f30c1378402c0ca2081005412f02a51888851bc45b009aa2b0b6fb055df38a453b58a3b1e89cfde88af712798bcdd9d7cc14eef211322240304f1e254c2c58a7702b45e3bd5d40ad378c08713a9bc2b554503fb8b8741b5d9076732a70f499e50a57348a4a0ae74a329bc21d4e3c3b4d5708e7768334e7001d9f6ebc9d7453e377ebd57d331135852b34c2d914ce4dd1727c49df0b5585f66e3a85fb884310a3e4e3dbe267c6b7804622fa7ee6f816ddc529436e4de610f2cc2c018900a131b2ebd951645b331ac3131915fe08332b4a16691e01c6915450ba56e6a02babb6703153e8867d912ebc9c5a056e0025e0944cd433e02a42ce1ff3dc4ef0749804982e0285dc819c08432d8170b425b8b159728e955fbe7cb786b21605b50426957912f1affe21ab75d729b622a6f627283a66140f93e3ea3effefc005450ffcde2deec22a8036a668087d9640634ea4838084bc58ffcc02c6230d1bcff231c8b2b0b0fef854bbc179e6fdd0db7cb545889ab276325a5dc8363a5726fdba36817dab7993c17d76b8fd8e43606c4ea7e58ac7fe38a391501eec578d772ca7461c06954157de748d9bd46373c559d562fc1da884c2c109cdc5e38ab343b760d5e43a139430fd27c6adf73ee29045893dec1b93f4f805157abf95542fd436312f786088a257d8b79ee9d7c6db51c42b58abf01911adf3b9f7405587365abeab384b77ea44f3e4c5adb1eaa47039ec29e2b2a098cd2ab0b82f547669799c6578f642ca2586062b4e46bd1f67f4bb707efe5fd9b6789dbc1de4d93f0f32e053ded3e7934b9433cf13df18807b28393171df08fd3eb140232470790a6ff8193e85bcb535a2ba91a1173cd11258102395af697fa2702b8302dce64837ce45e6e7f0b40c2fa0dd2d73788173987ab5929d3f01ea172a37b9548a7ef4cdffc06e31a7f62510e44149e851199e21d7dd6d1cdaa9960f10057a4eddd00748bd4eb133e4cb0cbafc09aaf19607e4e647018618b9fde285388ad00387cefd755bfedb59069da6a02f22566c07146fa5159be7d803c50aac0ed969740278c1e16a641af796b35c20f3696d59aae6456245afc5e5d46de8fc7749007889ed7120fbcc501e877ad1c206c1a31d1ea9dca09201d91f6b150fad6dc0e823b6fcaa8beb58a0cad85be4a11364016354366f06485f4c612871e01129f4be22d69457c3980a425a2f4b4b669b7a45bf34a39dee6d9d373a7a32920e31d01f227eba41b2ef11cab972ecd7e0c80cc3f1a1d44adc5571b426ff10f91b60880451513dc24b9cd4ad59aeba396e95f6ad6424fe4fc95e308f15c8f2db02bb8f48f5da883c86a891a98f8a5f4f6b7662d48e499e7f4c08480d1f54f1b341009a74259dfb3c29063f705411cc491c04ea345d550dffba34fc2957f4d4033a119ca58a83a105555631814972e29cdfd6692b59ecf2c1a02d8869b5b552466f92e5fb79933eb12519be18de5e53c06ff307e7690bc51be4af78c8c196f03e11a4b87752bcdcd9eea4f8b93ad60c97560afae286373d53c247aec6ac66ed618a795498241c05aaf3aef75850b356a15a287586b3f748588ce7f2bdf364e194ef451e8cc8808adc217407acee44a789bb3a3bd02848a05c0154296276903b004e118efdcb4a6c7b9f499a84f70b7d07087f90d3b47cec701d70c0c269d4e99585dace639fe78418c3e16cb891a08b801fa599e31227342a76d9779a2921c835b79d492e8da4c6a06528ecc05c2375fba700317919461b99101815a1df9004b3367c87d9b6055b286d8904098816fbb86184424de9ea6bb2649d30bac5d35e657c7b9c578d7cc0b14456a758595812678aa5e28bfcd1e1c3ef124a7612f4f7d577cc3060e63ff229ac4d16da7515f6aa0a261308fc605030f919e1f205c68ab232b8020ec3cc68a3b03abf22c71fc8d458d748e0404e356e97c64d0ccac43b4361e3234778fc88c75704ad7fe449cb2ccfe41ebfeb7cb4a7737dcaef76510028696001c5541d5a70bbc77eff502e79216b96416379e868cc611575218da9ccde44b4a04a8a0693e4d86f4a5906aa4b05e015a75c56147fed8859ea988053894a48d5b142b68b30ed164cc06c0d6f4471529a562e5477895349259517d8910e197560cf2498ca22ede31726017c6f1fdda9446f5b06fd7d2e4f9703e2590b39415f1c19ecac7eb1c2af8e8cdf29a9268c1122ff548ff0b0ce29d98963c14e208764012a2362bacfe581f28f9499abf31f741823ec6cc8715142d618f92402cbb1a0fad8de7016b5177dc22f7bfd437a4513d2d41d3a0c35e64a2016730c8c7eb8619f9d95701f98a6567395af1584071b1095210012d851b7def47beec77186343f07e706f4c812fecc31583a3ad2b54cd8371a7108cccb5e7c7c99088685770851835a8090a0cd55c1dc9b909b390d2e81870a1d9ef1bcf3c29f41a3f7aea7975cd17305335c50324bf6daac80021d98c95243658548b0cb112842123e6c23c8df29129c9d8457dc2a9192c5e31c06a41005e1deecd23ba2b2cf70bd99b60665c456de1640f5081410fb912b541203bc5c3afa360a1d3d0757909d2d45f505446a048a05ff9909b3ba4dcca33dc0527531a035afbbb29a0a464d7ac89d6848129e8932cb61665a240763b0da762d509084bb703775e0f3f33b03fe1ab9e3379173aa47c0cb4ee98a8b8ffc722fe42c7924f290c7a4839d77b162fee55f014c5ea85699db60500a3a2e5778789214dbed286dff9a77d765c24760e4efe1199c8ec48855e690b5bb67c465f17dcad3cd6a6d17f5c8456f563a41325c1ed5871215b7a4215b258ae22d4ac0bc0275235d85d48e343250cd3b65ffc00aca651e64d43d17f8c03b7349c6db4b9ada7c932da2316ae30020d85b2f1a0a5fcd9bed3bb37ec454ab173b7ef993abc9167d6a58834d8a7d14e3f6ed92a5569b23ba70a5782d72a115c2cbe34f9dcacd513512bff54148f5edc5d220b27a21f89b4693aec375acceabd375b64ed579aabb1dc16d22045241d00e6978e1646d9117405d3eac91b18bb1a651c710ff66652d30c2f5df13c5739bee3cea074e84e579a61288b41992b99bae38b9d1aaf4bcc5c566aaeeb714d58db9a8df94c2eda65ea5f12cb6dd530cbaf5dc6e8aaa1b7ff1b269a5db6d8d4ae75d4c9baee0bc57a8ee198be326158e6f88aaecc06c2727f3a66b720510b99d61b2602bee028fd996c6daa61fcb14328e2bad1379e4c68688b52745ba7ea3f5918e6dd054e7c159b04b84093b912c6f6c1d7ce38032a79b815e054ac0fc106dc59db088e0e55096711a3a48bb78eb9e95e5387870cf2ee07a0bd8fe4dae95081388c942a97dcc60315d7283d282fbaf5024de8e188a590fbe4b4a312d9bc5e16dfd8a706fcd96260069ce79faab46611c08bf82c9cd88eca52b23ba5614797c03f8abdf78c9910508c88183cb393d593308e176a1671075e8759d71e83b746e02e37235d083114a207e5a39a4b853f25bca3caa69946535751c05a338c249195d91a5f93a6ff2dc972a6519f863bd655bdd19f3a31645f80e5b088d68358a9e15633a7c2501a2366c2735232dae0d9e1633d0b6b14f22d8d2ec938c2bea6620129dbb8405c86ee900e75097640061260a72bee6c16bc85afec11959b988ab91f92e4dfeb56b4341aac03d952e38c93f9903e896f9ae0fd454679afb358c3bfa7fd9b654511c633873fdfe9393e6144709d87870afeccad4324ae64c10c77ccb3c42c42b1954532cbc1377cd0947b270b31ce14c4930aff95e7897e9a89e94a38a457f7780ffe4093b5d4c64cfc6ae7eacc1ba52cf3fe2b84e41186bc3939a33833e74e61409614c98a6a16f1df91e5eec5e1f73cffe45d3dd70058ef8705a20802dc6a7bd02631845c1059f5ce80531c8f1ba76394e4738274c9017285eff7b87a7b5e16c284ae9fd33586d9cf1462aa20a14eb077001df92aeb799c9902dda7e4b53ac128b33bcb88137f28643c124bf27e79ed890212a7339a49eff7366fd2e52373d51540f8abe1fe80e09f19f00c94a5edc5b21a448bc3e8280e9f4fa4817b6d07a6db8bbdc65daf82808b101e0aea8c7f340a59dcf8057cb7542997d3b458e8da113d96a34c3d469e5500418507df23ece9a6a2103e2769b31f7401ee94efc7eb9f91f3314722da423b41809d1691ddb4861cf1dd1c2be3bb2a5dfa79666c09060678367bdc20651f0689843ea2395ef4607dc948584a06182b34d1279e3f6d640e174d0885c0a04de1c30786e021890b94bc04eaced3002b0b8c15a039d3203a6e4feefbbe15624244450040d578a9d65595694d00fd559d15484f24aaeb7c886b576dd0fe98615f50aeb4f82f8392912e25f819f9c5a76390da20f6955db9bb1f4622c054eda3403a4144dde1e656bd62a65299e0bc56c82c7a0c131243a6a7a49ba93c0ea8bbada3c4bc252e309d14f9706124a4b2e4b054efea5e29e93524c8592b00dc1efbb324afd4d94fa9551ea32766e98a7548b3c5686288edb920f8356b4fe9df7c8ecd7aa42f96b8531aa8bc4d3092c0fb5ce7ea105a40521e7f82ebbb1676ea5d7d6ad909a403afbb03a6f00677e37e8fe7d4ea74c6bcbf16e10498bd3704a7ecb8f0be3fabdb428a60ae2e6ad8f7b42b8a108550bf7e8e47cc8d91c228160e2fdbfc9ff7762bd91a46aa618beca505b2decf124c912a0d64ee8a7362709977ed09b525a9ce54b1be7cf370d6f8bdc120a03853a6e9096faca98b26a371f4c26ec97d4cb200beb68a04f870e72c5a13522f91092d97b3160c9ae7f7aaedea06b54c97935da97e85aa351e267111b62baa045b5ddfc83f391fa51bc60ad0faf484c95d924b22ef63c7e3541fda059caf7cb1b3288e069fe0b44d2b5ab94005bbc05213f914f4349999669250b35e5a89f1ce53ff98c94d81acaed0de18c13f6393016b75c2a914c151d17c180cecaddeb89d9e71b0e0d7b00c251c17edfa2752a7534f540a7762812a30c46fbc2e68dc9efd73a4538fb032c9734a8d525e2011744ab9601921c6f440324ad1983286d3c6f7a3e1ac7fcf2dc075f71184fc1b3acaed041310c4ba595097f61c3b2e05f5426dbd17d4765041602db3c825c9158d59770ed604c5fb0984e2f4edca975af6dbd3216807e0ca58c9305aeb395f2e1137a7ff92090a35c11a7d1bbe4eb4865098674f9ae6a5e25838f6274978462850f41488edca61f6234e7135e6381a588bca0fae2de1d7fa8e0d7690c9fea8f70c9395b12ea7c81c6f0f6f74c9ddc1fd1bbde925e4b50b7f2b2785aaa6d1197e9a61b7909c96cf2650b710fe2b8317bbb3f9108f86015f2593d2297e7a8f980385e65d8fd10b0340aaccd82c2c0685020aa4867d11592db82de4c71b0a52cc3be962b33890781928e3ceeaed9a39878e7b4f12187a4b20376430e41748834cf668e6507ff57fc87aaf47ebf4c6eb3b13752b809d9ac6510882761d9724fefb5125aacb24a65a67b4ddca985d0bab5e5e4d627dc74962d42df2a8fc72822b791ee914f29e2a63ffbd88792cea77885dd64c6c6b15a096ea3cde000c9fc198a15f8074cd73a0c4d296a40ad1b1aaa6f089313b2020ffea2f0ee5052e3c0d8f45e07c705070127f94b11260beb81e5638e565b94a3ddd145a25e03a48c3361a3078bb415d9ac1c3e90ba9ed32216c5f07f1851b6ab508b24cf0e41d8a9f0d7bc02a379bc650501d7e0e39940ce9fa6fa16ed66f07801c0b0605b9a6c00319c6db2ac8eb0a727519b03671ee9bb0341bd51fd96b3162dda652470d543540189cfc0bc1f217a1134d5fb68009c22b2b3397bd650bc17b36cab78d52613a29530ac7a0352bf3af6a5fde52a1bb84709a1203845da5cb5e3c959b6098e7b53437d5d5ecccb142396dc203cef5dc3598a1469734e0b99da7e54fe68735f98e6786a8dd40e2f38aff2c2a3032e73b4592c200cc8daa1ee2346e6897f0d5c1c3fa7cd469bf7a50662155a2eee75983ac79fd5ef414bbdd6558fcf48fc38051c991eec3b7ea3cd94af4715497fe8154166fb6453211dafd4d373ac27a5d336daac9801d222000967273885582dd02cb565d72ffc5a9f086eb4b93d070f03a8123efb88cf51f83f6096f254d252cb1524116710849cf1faada0fe4010ce0e1fd14c98a95ccddf68734e235cd02e40519a9a6841567990d0bb57270cad9070851dc9b307e454161e7d342c0c5d2bf3c6364c939c63a025da4c5c906a77a945f66b9a29d5ac0ca258e1974c829e16ae34df932e957a87e48c7cf5f1a84c6365b4195e4cc81eac287a68eb13e18e0bbf1249f3f233d7a1760fe3fb5454b2e2a3398d107bc17a7e520a5e377acb5a869179d0d5dcf6d036fee743635604031a92d16688ca584963b82b39e2d39d0a1b925c986c8e4c4b49b2db0b0bfdd9050052532803b2f339ad1943496c66cb68b3a2eccfd52679dfe0d1d79711218dae194ad1d446b499e15d201359928f64beb0262c20e429dd6710fff9343d31d36161c58e56967f5e561f560d450f6256735183576386eb5f9b2944380bb6cf43ce0f4ef3e83c11773ff2ed081c236641548e3bde34def16d34339139bf10c4d40790401db0cdb9e1ee9ab8989658ecc086557ba9cf5292f5b7b02830f9cd4017a18804bc3ab994201c8dde3a5df9cc3ace04eb96b411549b2d0f13747cd4d6e632c99de14e2f4016ae0a5d0c4a5a276a8d8c54974629fec50d7e00915e8ae14672b2884d6c62a56b6d5621dd9c543f0acc130ab7c137dc1a9dcd97140565178fbaf4b582b00fa86cc0465c755a51b22243e3aed3c14611c86b996ee42f12560b4e79479ad51bf9ac05cdb01df90b2768827f67de2fbaaf0972ce890706048588dc5f8f3a6b3818d8262aafba8ef49f43c0a568418a12e0b2ccf1aea6150a72d0bf89dd611618b0ae20c8f7bd6d74776be610de6c9ad6e0ef25a193dc8462016159d72c013c71a973dc1908236ff8283844c1f8fa76ed86d1f2e81d6ae8189f89dea3b6a6f73cc7bd3728d779a1b6cb5cb6c7dadefeb3cee4375e601b2a90e6422773ddd606e573dc181127f5f547582876dc6e33df2728178ca7011d37455363dd48fdc243b552264fc73d52473028946ec57742ee62502d1b63f0b943360e24c041ef94d7eaef43dc89665da6b289a9b1b085e75336e486325629a94bc14684de357925181af033d1114d20978859f1a4c9015f7ed930508b0650c865187ea19445fa00ce992839b2ff816770de7722d7249b9d4fd060e299fd9ffc4c9e86c7a9da2d1f82644db77e4a3531dfde5aeea8351c3ccd9f0f8613e819c792378c28d2a73a609f6e1cfc8e50ec574ff093ee3ada1e68594a513c8dae009fc985d91cbc4cc3a8f7ab87f87dacd34c46bb4b831d1985705d73ae0d1c4540d8e74a59649645a13ebac05c9aa5a0ea25ec92d07c406817708fa852875c5f1a4b7b839a58558d0aac06cd46166eacc6ad98b137af6ed6e284f970ee49474e485d10253affec343c93e0040a6c6755b6488caeaba65768505494cf62f56bfcd6408d00654588ad0accd4af00878e12be1cdb7e81b83e3880b1e3fb72e285d5880518080f5d0970c9c1c83a4c795c0aea616033cb57bba9f2af538baaff443da9630da9ccf8582cf2166e495988d52e28e012e86b827d78581cf9fee5d76cc4ede1b1ffb6ae6e6ea5dcef1e6c2ea9786ecce96ef32bc4a961bb958b6c556dd95f39ba1946478021fa905180256c2c9db0e3235c3b1e978d3a23e57c0c8565a00ba084e2322ff1693bc51be178140cf14475cc21e8bb6590cec03222e557c76ee55b8e4769684c64fc0927546b3459671e157408428d8cb3e16882cadb26227ba0a42aac0e41805e15daf7ce1e377975785277cae504dcc4b534550cf44e981fbcda126b08b9f6186042e5ac99a3ccb423c977984b0f792bc69befd4c69b7dac3b66d66a6ea83a4a7821dcc759272fe554e329b1c3faba6313ed7f319b5940d7ab070ed0385f690b0220108019fb1bc52fa1afa708db7693860aedb7439191fa46aabf4e354562135a78f07d9fc8eb38d96f377d4ca57b08677e9c02c3ad771a86dc574dec9bf31a839e72d97da888f9db9e7342b4f2682c5572fa999e61527c4acc4b8b5ac0afbc1d0843246a464c54b9a05de14b310484bbaaddf8f30b513d409b8afdf0c19e0c112222623589ebe53ea35b2f2a5d78877876a16f94dc9471c0c4a4d06af64228d31d9a81bf195a085c690190a51f06ecc3dfe80c16303dc85870b2f0a3d36e8fcb4609949ff8105b1e9ae5c75fbbe708182bd82584acbf3bf2952d96774820db4a092c13f94639b2fe777971d167cb6b562401d4aa5699e257791c42df09d48f06baf6092476cc6da33164fdd79cda958529621a890b2d9c0e12914bc32bbec82dc3c6392b3242807534c34401d20b27f49243e4e24559b301ec0f70b0cc4b224beacc74b68cae8a7ece55f0138dcce414af09fb37152730a3449d8e07aaa0bf8b4e4d7c0dc4a9f89ff6a9e90f500742242c8e08daf75cd665aaed553706f059fcad187a828aef7bfec5025df63cd37e5cb69fa3e95f4df87289200f3c83f5940b27533e8c921ee15d1a301cd9db461d6a48fdf9d0f01d162afdfbfbb4c59fd350654612ba35b5801def32cc9536a6e877c7f1234bdae30a21092998222db3658b1db4c85ba3ccf21a0acf826ec5f7a36e9df6c2729d284e0663d91105eed769a53c96102f8062aeda67268de1296fa00496b4c8f45867d4a454966cdf70f66f788e0c1081a386775637b891c230b28448370487703bf740256c7e6252610feadd237a45f975a5193e043b0984734c709f7e78dce6611911777150bca08691d144863191bdf2a169d151f9337619077635e355b95615155dbd8b598151cf99410fd7f4b749031a00b0f04c3cf6e0f49c9559de86e8d58687c010662aeb646edf77a02780fd25744c33e5adbb0d42559e58314224f36fca051f51b14502f55000850a68ff16fdd13d2b6af73392c9fd03c97096fd806056c18eaae12fcf14f3d1e896f40b408251d3249960316badf5619585974b8c0341cf4a2dd23cd074b8f7d9768d6ef6684fa5bbfce5a72cd321c925e2cc9e554b946e30daba3a1dc97e1d27e4d286f42f0d82106b6a79ac5b17da06aae6b3a1b71f20dd5f89b7dc7ae77d5be19143d1cc8785804924af9a63ad9edc26a9634e7e2c85795b41c1480995e7b88d6f7ddacb24a169f9452b5b75d4e4ae44b0dff6e537a10b625e02d16220027381c23f8dec0f045a870e82bbe86d42735eef5663dbd0c29168bdc4b9495b36b4045eb5219429aff2d80663e40feeded762375d5dd59b8c6e553e896df0a41c9d8d290d670c85c891f9e1cb56c6ae03b2943eeca60d2f3c97129074e8198e8d035116bbc798bb21b397a8fbe915105b8b9e7bd2486dc7688e5d6636c10f6a11e80b802c08a278508a412c02bd0804f116805214d6ec7e0fc952ae11d6d905df738fb4d3ec19c969f71926f8402c1e44015005415f00421188053788b7009422b0a6fb05bae215890e881b7ec409f3e34f7cda58f03197fbf9ae94e9b44a464672f8dea6f0665542b02c941d3e6ca0784310443993e8f38d62c0bdbbd4ce8f75ed3d760e408664e4ab29dedc7edeb085d5468ea89a95a2066bc26f0c51bbb1f7c0f088bbe0bbcd42bb356133d38ae607e93294b81cd8984cecfa2bd4dada001f2ce7ea3fe2a3282088c203c5c6cd12cd0ecf91b836afbd81100882020ad6105eca51b9b0db3e73d823a8e19850b7cfd2b59813f6089503638c3484ce831cc131e41cf5e54c0fa332d49bdfbbe5746df5e98cb30a26c692a5050df1a5174ee4d090f1d96d20d278fcad207bed8b30b9e4b01be0e81b7afcf00f9d28d2547849f9f8efc6705ef7a9cda7378d23392e48d5f72ac5a063c4735497ccb9b6e460b040a037f30ceebf6afd590337ea239a51cf2fe4b407fe849ff36b68d30bfd954cf8e92fe26be7a16419fab44cfd8aedff5e9bd1927ea07ad018bf90b64f9001677cfb7f3451145c5e243433f2e16594beaf0a3e15097dfc143218222a4c545ee8789b22f8ac4b9f5ec06d3fb33282a78f21b1663b706f78128f61caacc34f18e0e58c24cce2bcec39c984b9ee9d86aa4c3882190f11e4739e11d1562fb9b09b83b0cca33ee5ad2ee0b31c04e20ddecb1ea96390888b13966bcc08a63160a3a5e260ecfe56f89a8e41774256ac041f710768290524a58ff9d5c9fc7adad0ba6ff0716699c846ee1e6e91a92a71b05754903dc452363ec0dbbab072074e5f1807ad38fccfbd4efab573dbaa48d044a509b11c2c2dc063029c663681f627b785f394c4e49544036c05aecf4a3db474e69bd010ca6e69b6a76dce58cdb0d1ae2b271e92fd0321955920f96d6c2a19e12bed7508a97ec5019143cc8a4fb3c9601d9e892126df2b7cac0f3d97f6305b2bf857ca627d440b14931fb4e5cb08574b2dc91bd264e6953983b4cab24a96c316b34c59d78de3a95bda8470dfeefce08d682466089e534883f408c1346fb2dd5eb49d12e0f2f5ecca96087beed7ef9c70f0e3223a8a3eb3fde952bb52a9496cb6a0072dcd1d32fa67b363e990dfd5d4415c4616a9c43fe0df50d6f787041c65c485105d66e96509f7454dec9039538a3e37bbca37543618653835fa0b9a089f14ca7a04708d5129565d54083979a620d8ff3b10fc284ea1d612fd9003f896f0b988c50f04e2a7b6936b38b817632103b056928978590d192b075eadeb9a88ac956b38907cea98c3196adcdcdad4aada4ef7087d2b8d9a678dc4d6ce2bd7a844c89684b45452abbfc68cb864acf55db04ffd90a35ca39393a0cb791b1cc8270e1a8f0f9282ebe41af9fb5643b414363537e5629ec0cef4748336eb0b5031b747aa3f4f087ed3289a0a44a27513110f7a0326873f54c513ad4af21081b3a832b41780b807863efa46b482f641ae08f0ee6c1c0a9fe09c8e1594d6f8c25fac8012848c7097e328ae890978eb78e8fc23af830ab2dbde7a43e1a8cf090ff3830033eeb50d625c0695f6f65b3c4a600a1483265a911288ceeecd424ee9c976a5d381b5b9893421174119a29ccf0d6348c11aa006c60d551e02a2601219d6acf0b291b7953e20b6974266648370078d82609a0b1f160c499178490edf50e5e45eb0373ae11f0b4817cfe3e46eaaf00c59f2244586f415b307ddede07e60913aae3132db529cf4b409942041ee7889ab6f72c4436f0704484196a5e623aab6a26c29be5f3dc029e598e1f3931783d451b30378ea6bc6130c465b4d46557d653285e406af9aefc5cb82bf70eb6c4fc2df642c5e0e609176b75f6009d45d69808e8c4c48f4382cef9a39543a9838e7a035ea8efc5b2fb164f75d52a6245bc0b282174ea1eb6e1225d70c746684d7df2c483ae71d507f9373c23e8bdb645a2a2d7b7f26e00025b92ce20827e40818d0438fbd164a7d513c0fefed8d3bb851922e08127bcf0b578634ec5239bb60f7ab123632c406e0cd698ee66ab79b31d5e52b7209b941aa942386b8f26c08e5bc2ecfe12d81406486bc3d44960f18c934fb2c867c8aa1cbf8e0100636b8dbe6040414aab116b23cc657544591d76f6d87c0abc4112bf3bdcc8e5e2aafc3c859dfd8d98f19891bf5e03cb37a94873627daf98dbf71e23d230d54a444787764f9153b80c4a8b0caa50b620a8adf4bdd9b6231c820fb5ba64a0e19cb8baf8ce36320e2f63ff9a43e464c5c9f019121c2c86a1aa29977fc4e180ccfb4407393504e7a0e00f94222be51a35ac811f5536c245aa32e50e179ee0fa039381c4b0bbb1ad8ac2b13f6746f9a5fd0196dc21842e232dd26c7d6a1da23ee9921b03c0bda6eebfc7a07cdd9e07c1ccf8f3d2986b760ad26d31b8ec34b40466a10f6eb73f31f38ffa2b49199d0f8ebce85809f766a3eccfad89aac6369b6d8c8a3d280d068869b33db2d346757f24fe6ba2cacdcc06bbcd849a48de6aeadb28196f8224649c778dbb03535996a03bc33e9def0d364249859ffd5300f294d4071cd2bc6ed985f3ecd293a17a729bc2f41b4bd6f850cb94d13a7a39b10fd5eb30aab198eaad01080ad97ee312bd9d70a3f4d7ffcb9f738453f1e3063cba70af24cc4d58c89f208f115a52a1c94a22899ffb062cabaf42c968ceb13ad060ddefa7d82daace063bf39bf28b82ddfd34e35b43a7ea86dfcd70d2f2fd200a0b516e1362b92cf36d92550c868b122b6d938b968306c6de0a07c3ffec26817345e8508ca4eee5dd21574bb7eb7d12838d7c5ad59e841a0b4e5cb795c0fc59db8953ba8dedaa7e752a9405166f0cfa77ff13a833c0760fe18cfeb50ba3ba0eaa7af8e0d5576fbdd2446f9c207ff311088c03dd9a4e12a13fea0217432d8430cce1c047670ecf0ed4e4d7d99b8393b2d2c6ed23ed837aff320c70b64151c724585e21a24a0647f2cecee54c71d06058ff1e3db22c76a2e5c826f0bea4b51ebb59574d8d3e0e22dbe5091568dec25edc226f7946919a7d9675a7f1fee7d51c9ecb4827a8266897eec4d5c12eb40924c1d2eda7482a86e871e727b833197220f68cbac23e0234e3378e5e3c78c2460112a3baca85568c1cbba36e9e74c97bdad69a5ac2fa04f6909f58b1fb94026571e65e2912b4da755f5f39a2b529a62b586f89e941efee5a7aa485aff051390b060bf3186588ceddf500ea2b4c7d6912eb948e9a2e83eb056eb4764085f6e699f291e31594bf1edef2ffe54048ad88c6743c825c2ed56616205fa7b9e7321f09c940df0ff3d3cd8372ef9e29c2bac1bfc1289cfe35f0c1030e1b74fb4bc7990a79a574b47e6f4b2a03cdae04bade579c393f11c3d768b627cb0daba52b5c8f3f97fdff6220666223d7844fd5ee7ba77abe84b55beddeaff7c5ec5da01701607f5bf4fa21002dc87f2c1a725438a1d49f2613fdc6b0a8afc94163e50fec03bab9df3e66e0b4d02d2a788ab2e17928e4fac079c68098cc361cf746a83f88818cb67bea0e7fc47e31128157cd13b4ab1cb113ddb053db2b513fc1414687c01378858d14c3cc8078f06e21306e2f423a7393767b431789a916b0282013f07d1607347773eb7146baf7f7f216870f043d000b0b16f9935b039f30c881f53b68390422c6774d35d906703a3c86b43dcb4bcb0acd906252ec64ea0ca106e8f374a1a01d593ac9ff1875d0964e429ef9d19c6eaf76139999cf7d1dca58a65a3cf2dcdd15363d19670fa94225aebc16eb90b37df6b56f7f630dfa5f599813762153f5e8230e9fbf82aabc73b303a0c41ccdebbd26d227e274654661ed964d5643b236efe435e1c603511a0533f1087a8a05155f6b6091ad825f9164b9def082d1aaad6257648aa228b47b2896c4c702129a46c575667e689c11f43b94525c5c942ff992f5d7a87b38d2957dd3185ca7cd4795be938f07ae0896d3bc48b9fb4519ed92a2cabdda11598323556dc25bbc57a593a420e54bc04b86a56147bc4c214858e08ec6d895c5a7bf7eb4a8caa9f7fd358455691292d713eba235a2b018c6b6af1cb244f8cfe79c9023064b43fdc4a0c91d9023464716bec80dbf60f352db3f0831c81883a9a39e1c3538f6c0192cb0ef8d25facbe7672fb8766bcd528a5423ef5b9f4b2cfb23082de9db6950d90b4b7c88c750abd9438c7ec01a8406eaf5c008acffc5f7a40e91b370772534e2ed236b79186119ba06d58caaaaaad107874f70fa41b098ff9f9a74752013c2950cd2cda1c16361729e270edae9b84b967a24d665137a1f742af0ab640bc6b8e2825d9b107c02e512b5757452f73b2b2621ab101e650083d836a0f10f9b67a3853c4294d216409ebecfc4c6b889acf858e5203e727f9bafe65ac31485c6f193d5ebdf714c726d62adc3ffbd349704039b18a614211452fe91d70a7b71ec1adc45cfc0991c8dca82f7a0b7a3b24d161592a9f97aa2dec04b47d9d162c89ed64241c17628cd081746167b4235a8af7b1b01f989889c45000324f75cc21bc604fd0bfab72aa11b5b2cad839dc77631836981802be5242908ab1c83d22dfb4e40d87065404cf1f7ccedbb9b3dab3314620e244666574c928f5aa2025079128474d18d91ddc81bfcb229b97e970f008b24b8d6d01289aedc1d976b49a37ead56ccbde6c834a0d23862941568f2780c8871bb89023c208dbf42128f9fb3905c17226c2c890bf4ea609b3bb839ac23938f5130cf60845885c7a3ee24f5abe9776bfffc8f6662a6c69009296c0bc5895ef447576cd96c093c824b50e9c1cafd02b4d3783796c48641e648d645d4cadc4659761782482ea7bafb8433a6b6ff47a6f7ae336cd768dddeea88102c9c7a2533568c448b6d372d63cd2b752fee5c7cfb614a5510b3b31e94f5c6e5a46b08f5160d81c04ce3728d671afe23c8256cd974a92417c190c00ff5789e69d800b3844b75f6b405c550ee3f446719c4989ddcd6c34cc5b21078b99cd1998a4d544891d943a619dfad16d3b91912917d53e57d3fe0cd362c730f0b0d6f060bc6920b338a7db8e95a962b3784bf2d90ec3c37d4967c013d6456513295b227a2ba1a407eae7ec87ecdc0632f82e263f5f46b4f9fb9a085d701784392d3ffcb8877b7610483b3444c518573a5d3d83d5cc9d4852f1109b35e04ba8b8cbae0235c1badedb34151ff5c3ed5553fc080eca6d35d038c503486b1f2ac71dd2538eeb6432444ce114d04f5d31b2af6586423bbf8833d5b5f7bd0d0557a4e2b82a06083e14455e19a7d05879000bf7c2528f64d8eed831d84cc1a22a6cc9d03da7eadd199a09e801f27f81951791691697c6f687b3eda0b3c852ee68090c32e2eeff0c7f61220122c11a37c2dc7229e89645c6b09f89e8dcf8c1e1aa70dad3ce0572bacefd0e7825571bc9b2620e21ec111aa707dd6c5c9e5e0aa535f4429f0596fe415694ee6bcead24eb8f4a967167545922dc45cc99706f703707d52dcac565dde25e58b962b23259505b8886376d3cf15c2480c28dbc5a703a0ba4c181f5f74aaefb4b54d1d5cf9707d9305402eff681814ccb8751ddd5c5fd409892f4b1539b397aff3576865d360bedc5f0c1aa8dccef64428102b8ac3062c008e4b2f96785672e81346d8386b09ef65d43d2838c89ed6e782a2fc997430b16540d89ed0a6bc1c2adce169db9658340fbf85c43f2b2dff3c4d7953d61b99bea678279f476d06dc10dca552ac4eb6ef4758e4e8ce3b8b56f936871cde50f62bc3b20edd33de9191921a5f89271124e73596e185d70a194c8c5681d34d4127af3ca97dde2b7015eebf7a84b0a4892054bd88c6916c004f206a699762ae71ae8410ba2a622688e0ebd5de9a1a12e35dc7a498881f583fc239364029a2df28ad88933ba63bb85c174412e9a1c71ea0f7c4e9617b57532a31556f646a0cf24d446efd641f05682f0eed90a27ca5c2f9a9368e1b5a6ed1d512673b1ccf3e30f533d3c8395d9fff96746077bb6de55a0018ba853afc17bc11077676de8083009f677d846eae130bac6b15f05ad473e3a5b010215780ccf587f40e0e1742472b843911ba5f374f0563e18cb72409d707063113e39e2a703c9af8dd11b896393b27431764a756cfe5bec793adc244129f922ed5103c1053b71247bb6852336df8a46e749280e365b7c606a7c827b1c1fa17a8f816577408b5aea5d211d94926abffa02eef1dff08ada5fc980240f4967a14c9fea56fa588e948ed8d5f8803ce79a56f2f9b912462295ea8a0f10babe1e3d003f8f3d630d864694343546bc62efe61e933ec6a1cd5e104e69278c0974f78bef9559ad152ec999c529a186740a0d32c396a9731e0417be23be67f20084921ffb8e1cc2b432ac20ec653d6fa9d8402a8619c13b12df24bdd9699deb7b978d33191d7acae7596a84c811620cf4efb29448f3ba2bc25e6e47d7a53276af9f7ed2e3b7638cd61c5d5585071f0800be39628de17c88cee9e3d3b104a6dc9c37a131961ace0c793b5ebc6ba9a7b05d5e921df3501e27f6f19e6f62590ea51985c281c3d7ed6f92b9790ce445f1054623adabbf2eef4efa2e02f489f2de61480cb79805a7b24fb4b9bd1e52f6ab255be4b5ac95966e3109421eb9e319c256380b145bfe41f8a7084b3dde05b0506d2766ef2f95a9395caf1b58de2497a277df72ae087acdb5205e62d97cc5bac5adc9ebb8eeb18db3485cd0d6368be1fac6a81b79e819a9a9b02ca53e48a43c20c8451e73817e6679b2809eb2c12cb5bfe76aef44a0e2e947213036ae6fa303c56b7c4ea6a56f2ee68774ef84473b560484c9986b29420b9d02963340db06b6dc958bbe405d79008ba12d73fd1e642465327943db0ddbc375843fdfa3e74e8d8cc8347c9365f131427326cabc0af1f0a84f6525bfbc2dd43d9c0f8c19ca5d127b836580ec83f2221ed00ee33fc957be57514d2367bb07334d0de5ffeb843913e857b74294631271cb1b4b09c79983da6b834bd72c8862136990151fb875b28a7162a987fc1ea2470dbbf12b457f87ede4326294eef61bffe55a90c3375862ed9bab46902ea4ef9b8db8f18c525bbcc2550b355e7eea5994928dbcff88ab8a35265c5ae07bc2d7ac074fd840c3257768abc702e4fe2ad0998f218d20bf471b152ed95ae1b7d7df8723f9dd8dbc2f5092b94286e2e040607e0ddbc980d6e39886fbab42d799078716e109407ad2e2174ac52afd788e334c177982047360cdb7693f19106c1f608528cc13fae4e93c65f58414cc7d9a00752e1182b4d0c988dfaf44b7321745af0eabac74afb6ce977207c2e7e5408bbd90b821f8fb24481e6f191511c236f9240fadec12c3141c147772683cf4025e50f06b479873425635c4d89f2b3b67ee012f8978140f4cac961ea5db842ef0542945148f5c5da49dae87de75edb547dcab1b0dcd759eeb9d43d6a47e09f87c43dee12301e2fa92b684949d9da40c3a90c2b61380752a77c5d1db3548a7d211323df0a319121c12010b8918a63ad98b390a3fd39a0876afabb3c02266e717cf5c177b9d9140e70d0a06b9d9c094f71f1b06136e012a9de784dbf9639aeab4a2b8388ba9aa7f97d2d600708731f05da39003195ca688e211161f3066fd4a031c50d0dd400b5761a99d0a81d4f6200fcd6ca6a949d02ad574a5ccdceb7047a7c73ede2673ce260395a44d064a45341775c19a316bff61962c87c8980274f911b14f6748d8f70004f46773f9744268cf3825793522ca622190039d968de6fb39b6f5ccd839d4df2e8b7df4e3d47879e30bdfe77452f05a3d126d87fb5e560d9f108872266377e2b09288dca5a1f16dfa41a5e9be9ccb9942c8004e26a970f887a4f8ed902dc39112f565b78614a692dc8c6657bbc2e5f2810a15aeee4861bb3f02ffadc5cde0d14085076b9772b37a653adf14c6b2c7dd28fe1e511807a7fc35805edb17477ce9c10815136954fa2adb7d97cf8fa0418c67719fe1075cba069b449fe408eb2bb7daf0a1a142950056e94530819415c56ac50a593120f85f09907546320debe1f81928d1b60282868353e5e9fb61954ed476265b5cc51d42cef7bec378fc6ef31cea0982aad22d42e64f82e856f9f4c0546d2bf25ab6228597f422adb677395bb5d9fef2424ed501df7b909250c250b0f3beb10ef6e7cfd4e8fddf3e254e07427bbe93040e83f7e0cc3b5190d4beae8a72cafcd990a46602f86ef8120c42bd70d1ee3c4b6e9f0db5f98a756d017ecf2e2bd6c2acce6a126976a3d0c6efab0c4fdbb481ca3d4971ecc5d5765b80f1bbc441b9d086eaa0c904453c612309c52bb13e306eb9b40f58af45d3ff2ab610134371f41216514d0b3b6f1fd8f380620d8e996e79e4c9daf506b0bbe0d2052596ae74685a55d1138ba546abc679f1b04e260efe66f4ad1879cd92c9fe029291d2023714eaeab89905e2251f15e0e8488cd0e182b901e78c4606dcb6933e5a7cdad3850f74e04a2ac636026c43f4af187bb04dce1f87e1abaacf13a6632635a3702dc70532dc06424ccdfa62fd4f1cc9577df88dbc14893894bea032858431a06c8034805b18c3ebedee74c7c965588fb81a2a0459d6272b6336b6221ec81801ac3e5f649996366263a0a42c219804467ce2d03f63e91cfb5fa1a0d3de86c0f82f7b8445cc5e81dd19e4b0bb81156bb42e3e278a86b64b714a9aace8a5ea1771a59cb59db11aa3ebd05d14e70af96170eea58e1e8acc34f9cc1d4c890b10974b8c9140f66b00c0c821df023a24fdf8170cc7cad4d06294a69fe82d429d0b44d8adf0224353ce35a60d9627f23539413b6ff2c501e9fe4fa79e587a3dbf9e4fb70a60b84f79cca2c5d80f5e87863563d8ead40dd5583acf2e6e22bded7cd6a79328344ffff570c8a908f112477e7dc330c8e48e8c8a39de9a11b236308394b344f6b2fcfb814431485ffafcb0d470a0124934b620e727d4a4fe8eef90b196e9729b016e0ae7889cba4198f5f162280a86937e4406c804483ddabb03e1476511266e3c76008f7afcbeb65bc5c537802d8648eb63124f610f188af45e0426f8b5f0d7e046531c9b3bd26198f03e51bfba2e240b207463edf539e57cf5752f902772e59d01e2ce6b17df9af3a9fa04d5c40b1901caa07d7582da3db12ae832229cbb091d075100ac8faf37323ea4e008d709e4bdca5a07383fa8f2fe725d0da4f1f000b1dfd4591e26564e2b72857030125f173c4016182006e8ce00ea6bdac7686f582f8bdea2f9dbd8d5af0638cf2fb2ce042420019318ccca7e4faa8b0cf070b158844298e4618948e5e5e8798c1c53711baecb420394894b27d72512255cae4b05e7947ff440b7550de73d93a9b2bab3d78221fbdb7c0c657e32a42d98a61682eb96eb28d0ad622ca25549ce21a46c638802d5ae58e60b485bc362b8c295d58abf136d864cc67a6f8dafe0c9f2ef12fa9613229d72d8e4928f08f1c7df9f095c3148f1ae8e4c06573e49e97583f4ad862c24deabed7e7047ca9cbdb0110a04cd0634f985d19eb4344ebf7afbdb3a1872697557e7cfebb82eb8bcbcf0e93c2c4dba0558147b956cb82a7b42f5bcc70adf0a9673f074e1ae88fc825f0834574d970ca43bd373d36d47f0e81646b9e6eefd4ce794d22a2477729c54eae0b949c1613352bc70ebd1990133003ab9a17c8d22121ca519dd6c338fea6c4566659562abb0320880c79d3b2f7b5405ac653bb8c28823b207dc4039f43d7754693b84e796184523a1c5d7484b71b58a99b4c3916881edd699e36635fc1de786afb62a473a155bc53db67e032f85bc96f5302e35516c8ab69a55ce7d5a7e168ab84ef1e1be3eaddaae3178f78f78b8307fa8a12490e7e170b226548a522ebadc3819b695287cf757f791bf43a01d1daa90fceb870107cd117e648df6fee77f06bdb228c2157917948c70afbf0f1f2311ae0360b1f32e78a2647bff3ab8b776ecaff39826547116fcd5db9aff2e8386f65d2a182f8d57682617af8e13f815707770f72eb85538b978f562da81ed8ad08e16d6279647b5694446113d83c3ac09c4ca89aafc79d9bab1f43bd957a12b4b9b0d07fa773858fc194801e88109b873d184d30691c8352fe1d0e0f064b0dc83b8634da197a18e9e7c89d7c7e97ef81f495cdfcf131710fa547e670790d4d846271a0ad2a41e876ffd30d6f89e502d1c40b1c9caaac701b76e41720c839592363b876f958c4e18c9995691038eb6c5d7f0b2f2e8971b8a939ef72fbc9a5bf901738505b17c2b747303b2eea32fea752914ae03b7c1a9bcc3a318d23903137e0d8b2d31fe02a1c1ff80f7d0da8aa43d9e4daf5d27c8325450c24a4f8a8836dae6f44a9633f207de22d89587f6056f804eb352082b6e0c6d5bcaf09239cdc0c4ea88a39728d09391dfb7603c21ccf7c4b6793886f53344f6691dc1a3d4282a18dda149ce63bdfd3f3253401702266ed3ebda6b70fb1848e14ab970166515f9ecfd38f8b47e28aab4ce760fe18666c80119380967a1753b439c99cd738da45921ef5a2a2c30c9216a14ffe368a3ef59eedb1324c7654302952447c069411fcd0e6fcca93e580f748320a30ad9f4950abd984dcd8b3c2eb73f01f4b5021ae455625c308ec24a07fa7aed25ce245a88bed652463782fa0086a2ef2e841e2c588dfe5a71f4e8ffe5d1342aceb7b03789080c07058002208cd474dd258b3e57cf4589982d8f57845eba411771f230048deb6fdbff9290bdf7de524a99a494325a0612069f0574fe0646666b7230e6fd9f4ef95bba70b93273985666d27432994c233568ba8401b3258b937442bd1a9148338c0e8f5d74c4273927a5ee15638c1fd41a000060b1022000178000e89402c036375de77938383900c029fa7252ea5eabbd5eadbd17632cf32ca35366d9c51896659ab67199b66d1c974a652ea552e56c6373d379d7d129bb2edbdcdc749de7e1e4784e0e9d322707274747e7fb5ab4d859f96a45a75cadbc8d82399c0db97574360a7e9c0db915305bb40567436e9eb8e33b3b74ca9d1d2cf5c517f33f9ca2df0991e36cd18829edb22730e545e40b0a727c1531dae11785b5cfd85a0c44c240f833f048480c20fc481848ab9afe19340331d0c15084ed35c6eaf83f80f98fd3a96b8c3d24fe0f3186613b6bd40b29eaa8fb21c71791a71711a317912d2f24233a505a3b1d5ce26befb536642a040d79eef81a02440a5e43b66cfa2e5cf835c4871dbe8b42f10a41d42b044170b8c14ade767c0dd1a163ca590d5432b7e36b080c55f2b7e36b8890ae29a7767c0941d3d590f38e2f2161760d215f70780561c12b881729be29187f1f4b8a3b8b559d689a205b82a8601e197984628904b2055b6b6d1027b427626badb5d6febdf79a10a6d630212a5720462f20416cbd40eebd189a9709587433d02e4a8da3272850a04c284e9c50279f0c187f1f2b067716ab6bf232dab286890e8657088098f0e465740591ee49d7e465f465e31d5f465db0505233c5d50275dab180317661cdd30eff5b6bb6d09eb8abd3165a393b6ac922882cb4ecf05d42b20ad9be7c26b3276e2c0b28b327ee1067234c5ab22041b742996f09e3ef5b32953a14d42ca561ea52484305489a2847696200d221e950d09246c9be3b6a49638495c49dc5ea926877e40a353b22b1a3962ba0ccd5bcde9430f0d7771103f3842cd7ae0ad835cf9e79ed9384dad1b538b3a097d27b6326fb8e5ad00cd98f351a20649cd2cf684cd8f4bdef5956cd0edf255988d81acc9359e080939a1aae60a18a295156f080828d756875fef0951b568231c632d8d88c0b1b9b91b2f1b551f9cc0b7698df5f80b3b0d7da2e48a694325a7b66886dadb53732c8a91db59c31c1762d677038d384450ba538d53f9ae23709f1e0117fea0d6cf93f66919c35343c7fa694724a39a50c02d35c9cb004122b8e7849830511206a668a3558184a29a55a155136045815585441858b334cf28c0a3befa8e54c9028be2a30febe3254acc19e10b140a94c0c8e68c972858a325065ce44615150c99ab062066bf01151180be2decb21895470d9418c131b7460819aa83255ca60894a9571a10c95a8d6b3a420428b1558aae842c514376be855e1de5bb443932938c880080b32600274c9ecfb19481921519d91b7a3162b92d8da8e5aac10c29ff2170ac38689da12c83e59edc31a75b168be20c9a42948ae0f6338f8b4c73e5570b5c3077efffa443ff40ffb0e1235e1f727fa61ff3ed63fec5f7fcf5f07d4684e992dc9b4e54f59ed58edf0b7ef6f35a82f144d4649ef6f41a9c8e958cdc7a8cd531f977ea771af519d03e76d2e6713467e17456d3a7f1cff9ccbbda661d388bb5d269a2d3f3591a693993497340af6a8cf69d8e63177ffe66fb48fee2ff6da4720ef6f6c82babf796e6965dffb2220ad823de6ef20d27610719f3ffb1128b0a2aaa7c08a7eea2350f69ae4826c1ebfe482babf9fe3086f8fffea957f8e961d1aa395eb1cf271b4150f5c59e95441b9331509728f30428f084420fcf37b442002753f7f84a0d58eec55afd23eb4cf3e02ad8082563b543eb8577d045a4d9de3e63b9bbfaf496e8716c4fdfd19b30323edb9019d56533bca5eb5430be25ef51eb47df6910bca3aea15fdd4d38314d35df0d43922edf9918beac4586871c6cea89201829959da64ec47ade0724d87aa2d267bcea9254a69cf39e7d412c534b5905932e7dbea5094e707a9458c1a8945c617464803c8041c4126091299138e001066734d80c147910931604860858a1c5c60844e21460562925802d723349c00650435e60447440084c788c122c68725ae15636563313b6c7ced12b63a6d41eb59504530c15c90ed8bc8cc9f67a17a3881091d846050535668811827617270011492094c401501c2440ba050803aa234059a314c637288d5dddddddd3d4affaa85fc290945db3fc49f598defb5b65677baed0dfb9916b21fd627a168dbaf12bb6922cf4cc831e668608eddc02f75883128641f03fddf2597178c5d2ed613ee2c9613538af122664c155a9c2c967f9fcbd5251958b5169f8195037130b0daf9429c698bd7b4edde7b412195b66d3a2fafb63994f4807b793fdc7438b7ea351dce7d43d7b6d15a6bed6b00f270aaee431e3e210f1fdb69a1fbaab7dfc922a21fb4863eb6fdaae9bb9a1bfad2cdec50ee1bc27d3a546f7eee9baf60e8517b2671e59e10dcf55b441825d44f5af1affa26e4e113562d64ffe6eb8743b34e34add6cd87321cd2a19720ad509cb52d05824a470fcdeeebcf279d5fed7c39fac66fd0b76fed98ea511eb5abfd9b57d98a5f477b3aa57354fa49fea43a1fbaf68ef6be85fd146783ca4f3d472db6af69fce93056be8e0e5d38a0477548429143458e46edeceeac95f6e5be993e461ac03e36834a9d192d0a433e6d1fea64152bcac03bfe07f3e76dc0b0c290567c8b4e320cedf197fa896ae7d160030ebe04da53350f9f6f71f01b8091f6680046da83afa4db53950d186e2f31cef9fb6ad5e1a6431e3e9b4bb56ddaa1a401e4df12eef7b55a25d01ea73a3a5787396b2b0ec5c3676f1ff2f0d9aa4f7de8da3e749bc12fbe908f391bdb0ba974282f17c2b6b72f81c268117ba8f49e3cb1cfbe9fd29c43490f36878a72a869a47f30c13bc1e515c1d8e58a51bee021b987a405262c58f18e1cb5c0e411f190bc96bc6cdff1c50293b4f1ce82913d9fe5c2813ce57c6988a52d31ba28a59456205bdfd2fcf3bd14e44929f50f9dce3964e98ad3f6f7260c09e4ff5be6c7a89948289ad301455bbe1f7929c8f4671309f5c3aa3bc0c176eab2c872fbb0a27c9ab73c5b346f8ab31402e0c0c4088a0e539ca9224a21850f2fc8b004054a4d50248450e208a326171051a4f4f4c496147610010f2b287201861964c1458809546090409122988c3cd1040f5720a145966b87ce92b315b2766bfbe645181105668c2c61450c9e94a002683e4f84f15f4e40626488234574004a224d874507f55a224393344b60d8f4bd0f5bb2b4c377e115a02c41da61c4b2e7372047963db9c433398c5f3040ebcf3062330d982d2b72f84f277da7d386ecacc8734ec7c2aac29dc572c9c0e52ad36161ad5521866dad8d4a73b3e34b85a41de65fc2d808c6189ba04402251fa4c49952154c6986acb4424a096953a2a6dbf1a584451625cd2b85a3170a2b746a3e3018638c57272831819225b412262c345787053843dc9c1deebd375038204b5e29287554a4792911a10426c5a4d597586738c319ce7086b31913839f615a087f944f42d1c6d3a3b3ce774a2709455bc81f93d9bdd6d6ea4ee99cd77d847bc35a31795bd02618027d493f8d82429e39fa135cdda8a1d442f3e917eda22d391ad4c195fca24dc110a6107d50c8ffa9fbccc2e57213902143663a99da45512185843ed8bfc89282bd8c1c0e0e7eae13ed5a33f70905ee6290e715dd2b69c89024514b9a7825e9b2d435e14952a0646a91214691c39cbd8f074b52938404ccbdd70ef110bc5030d231d145b1c18eaf24529234a93eb3456b747dc971525bdd5dd26e8a1cbfd65a6998ef098cbfcfd57971b9589d13ee2cd6ecc6c829854f8f4bee72754b28f13a92e675242a478d5afad67ed1d6ea56c1b8391036ae33224fe98176eb365b4664df35cac05feddfa7384070b91bbe85ecd7afd4254dd5aa47a01beb7bc33e0df39518e98c61487d3ff265fb53cd7dfe789d5f759cd1a501e217513959d8b091310ab04fd7bc8c1cadd9e64f84917fa4a5d96704e26ad0b759c8adf6d971a15780d8e2ee34bebbbbd7b8f90e29754abd2b81bb3b757777ea4eab6793bdce29f50ecbec82c852b2ba1e220683afbb82f1f7b13a12b8b358b3da8b311c67b517df38abbd36da1ac3ccead1098db43269189dd078ec5490e54777ea4e8bb0c4c6743d743d743d743d7426a822bb111c799df0d4ede057b2647915c9411291c37f56cbc5094eaf225c867865bce3ab480d2928328508fc2a92b48bc410a53ded78c85a88fefc89fbca962c4edd6bb5f662c7984e893156adbd1763ec628c619986b12cd3b46de3529e4ad12953294cdb368e4ba5541b974aa95439dba841d3654b963060b664b1584a95afd8d86cd9f36fb2dcd0297b7e47a178ee79744a8f3a891a33c3a8c99bcdcd4dd7795ee779383839393ade869393a3a3f37d2d72369def6bd1626767c5e33c3c744a1eda626767b5e2e1d16003df60033ae5063bdb8a87f268a0c11639643cab7b8db4861c661efad56d1a2bf183f9e39e3329a5b42e6411a058914189abd180d9528a2f36c7dc873895d2119483cb41617cdfd396fa039c3f4c87df6ab9acb5318a768c2f3c18b28726ab907bf80ebffdd1a7ee51d5e91763fe60fc7d56b02d8e2d11c514532c85ead35dc3216a41a81fa91ee26c58a1aab18eb3278d08e0902de1be082ce4f861d196be2988ad08434ec3e7e7d990c3ff9e9ec4c870b46b080ad1f719b3e5ba1165c82dfdef8b06cc968c32a49c766e5b9421250d39868f02b6288304b9ed4ba77f31fe8b31c659f69808d8fd21bbb11e197eec7ee41c707548332ab91af4eb57df7c627c11a6368d1bf145ae46a432c61c9681b17fd51eb3702ac5711cb7811f5f784c191831df92ab61dfe9db3a553f55fa07cb2992eab10dbbdec6309e8de91053a952291d67cbc3d76565c02c4ac99945866197327b96cb6658b35f75e8da6ea5d724df9f98fe0e5d996b4b99655cc5c00db8acd0bc14883dcffcc1ace6cd1fcc65d35fe1c0fe558fc110fb10bfd67d8c2f6e6ec00e0cb1b709b1c76636fd2e0630bb6e3c1c0dfb18c8bdb73d7e19763f3f04fa9dd652dbe468d89bec6fc095fdd4c79d1f03553f3f832b1cf5555f5fa557f65738529f7deab3cfb09fef451ea14de7d9924299f67458b42b37a9135f0bdf17e3949308cd064896369265e99c73da6aadb59ac57af23e567d8ab1c6aab1cb9fac1db5d07cf938fe042a427b3d01b3ef8eaf274ebc9e0cf1c4ccfe6692275868904d9f306dfa3cdb9cb56acf4a0ebfa699933851b3e3abc9101b013bbe9a406d0c6480b2289ede0f39ce160dc1b5eb5073d05b92fdab5725e7d0317fa40772d7b729d264ccf6b7d225524d82dc0e4ea969dc6b2d40ff0ff4ef400ae230d9f75738e8dfa73ac47ef597c6ce3b18370543fa3931bec04fc190d2cf58f66dc2b4b7cd7234769e823aefa02ac61721605487450edec7790cc4f91b5068fb9bcfdf75ef81ab9d8ffbc374b5f32d3e6e6dfbd56fbfd2ab1d5da3687bbfc2d1e26dbec5dbe400228190623c00cfd7a02d40ef3fd07b1d304c3df639a0d0cdc7add1cd410c4787db631ed86916a63df56f4021ec6d74cec018a0504a6f9bae711fd30eae6a64ef4fb50cd4b4cfa236f64376673db42f9b6a8d7e867de41c40ffd5c4cbbef6b5c939a0e804d85f8a6b60ed3fb9547ce12a329f5575e6f5a2c5a961ea1bb681e1ef0dd3b2ec2f8fd5df6c794cb2a43a1765721e612e168caec6ab598e06e674cf77894ded9aadd695767b94517394e1db3a9e3cb3e54d183cb3877af3c7ad6cf298720fdff4b9df400c0c45d8586adb736a1994dbc662da4ff0fe667d6bef9c0dedd778b345e7f4216a033f9e168c1789ef8bb1d7c0c67fa7efb97119a58f53d6da59ff6290c7b7ed9478b6f20a34fa6e43b2369e31aff7fdd578b6300679b030b7bd76e5955262f8ebef2ac1faf7bea66535f0be31382fae0803c37418b7583086dcf19cf20714e39cbfef3f633f5f32993f53e6d203b87c90c2b7697db713c9c321c7ff60cb92f7429e44b367bed4dfa5a143dfa0b578b624de74c891724b62c490f4fb28a5b352f74a5d096f054a25161f2c511ee5501eb5ab131fe350322929e90503d3ab851c92b6740a8ae2067e7f1bee5041b893fca48db3373f03550e624d7b0c946fb5cfe66baaf7b430ef22a21f41fe944956e4f531fb98679ad9ed6bea3d9c73d7ac37faf76bd559d6972e431f92c90eb5ed7fec0a867407c9771d43a9b469e1d5a14c8a540fcd4d87e6be7a886a9a563f82205cbbba2f5fbbe1f583e68ffc5a53af4ad9fa9aa7743834354f0a391ca25e34ed39ce462837f7fa29f9419a74aaeed537cdeb570df49f416d0cd25e7272b3d26edadbab552fbdf9135dd770a86a5ac8dfca7943d3abfbdbd7af5f37cd93421ea25b6a5f1ffb0cac2fa4e9ec9d0b61db12fb206cadb54c98d9dbb64fff052cbb831d5f2f1ced17132e2f264c2f2660b6b6b7a83d595146fee814b3843cb103ec71007c5210fb46dc10a3a058726289c8114bac2540acb94be45224427a893f2cc125c61269424423c35294a56e0990252196ae5822c0922c4b1e304083254afc9228856c22765972e9a020a593a5c51ac0f7094087867100b20f0b00f9a8c9b5149de9ff9012488b2cc78fa32483f9fe5153b5cfc25f6bad9567b6ea7b58e4f0fb789ed572ca417611d16ac8bdc1eade7bebbdf7de7b2fc65a837a6ff8394d12683c385370a6cca20db69058556da92b57a368fbd3f93326081c8e0b6cbdc12de43f67085467bd82b6cad177a46e918f9abed901e8a9c9f3b71f3c88d2002d1f172d9c1972d86ab970f9c4f868d06ac8ad93e3d56ac89d93298e263f5a31b3e3eb862edb67c75795a71db91b768f8093e30ccdcb2f1ca66c175a7793a1d03bbe7000b2a3065a8cd8c6461626b3156f50b3e5c659ca315cf3478a604b9f2d3d20a9969143bcb104e3a6ef4935ee38a4f4ea53a33e61d0e27cdd90e5a8c9a98c3f3e5bee72d76d44b3d6cb02ec61add552a49582f463ea519c1d509f136f1c2a9452cd63c3a2d9e41c3f5a2db27cba83e1f614e3fc7d5a95e747dab3b2fa7152c8934c8adb72742dcb474df3d3e2fca152e64f8de51f72cad0708eae451c25f9e6fa474dd43fc40ff0368c855de3dadc5b93c36f5356ab5aafd9a546ab21b7679aa3df90c38eaf1bb6ec02ecf8bae168575967ab5e914397cbc77bc82ddfe3eb86305bbe6e303373a43da1ef7065f5b7b7ad94c33cab6832a7341a311f35452de481e2ece0a829ca8f0a98b87bca2024cdf97548452ada9aeadacf3840b0eb4f30ac2e67cc6c6fd828b2528ad1a2cd108a54b4671a1c2959ce9f947f767fc25d7b1c2a3962f920d8d2ebc695fb2086f5a5ca1c0e3a6bad422e65105a64b90d9ead2539c458488bd32b638398bc265731b2533bbe6c48b3e536e79cd45f5598dcecf8aac234e7182dce571527696390a9bd4f6c8f62852469b46c0c89284851881462f024081049668092244d66c29299b69d61880a2f1c8184c949141aae201963c30b521c69020385181b906c6dc7970d40585fdc592c570b5c2e16b893183140c43471610a2305d29228741802480a529028c28d349581424cca888d4111853ae1048b25dd892698a6d4d003134098ae28d104d309987af896f8be2e49249104171abe5091c111494a40c248112e98e1a1c81527d010f5c4e55583d2b63bbe6a40f219f17dae15b85c451451846b08974b0897ebfb3c20e69c544e185d5c6df91e1133a099c1880a8ea42005410415a78dedf8a2328607edfa871f8581f9d87c34e9d8749c2051938e6cdbe66f8fb50ed5534d245fc52344ea4c7beefb639a6adacc791cee739e7ba2261d9e7c771d3a4f35117d1d9d03e7a52672e17c8ec6d14433343735d1d39efb9ebea0ea53e00a02d86faf03fb4d1335e127da7468afbaaf6d9a48049a657a6a2269a493a48e226ad2217f6a22a2261dd94b4d8401da733f7ba2fba9cf2e9b8f40f1cbfc501a751f81ee4d2893521d08b43df736a08fcc47938e4c4b27b4e73ef63e36c92324dbaf9b965668cfbdcf43246b1f444d118840f5ed47204cfba81f814269655f296a768b1d5f5392b616679c2929f567cc6c95c37e042290fd1d12a8fe8c79b590745215cd7967b0511265cc2bca0bf08eaf284fbca2a8919a3f38427cf952f7b891f5f811e48f5d4fb077c2a226db5f42b15d471a747a4fa278d9f2e3e60e70e14fc1b0e82918dea84fb57fd421d18abec7d88a4aa4539097241c149484c1c7b487e5da9bade8f1b450c8f2a3cb45678e5e2c10e434840993fd3bbe5a80c2c876edf87281891d6508284e3bfa186b3d4a524a25a6e5e56c8c81f2280a463ba3ce2ee28b1c49590318e71c26e84babcb3f6d890123ce29b49616a5f5eb7d3ff19c5256afd3dd7da83a8b874e4a65ac30c413e418b325953c0a8820279e1299e41b07525b866d100b480f2a950a6c3a9bd96fde52ce3edc76b6e3f990b7b980f9d472af717ab5637eea23303ff5457b0343bcb7cfc0b0849d3d4e81dadcb46c2bda1938443786c13076b14f8f2ceb37b5f9fa35a5ab4d4a87ae02c3dfaa9f4155a04db76d9b57430e5b3ea9cfbe7e2bcb40ecb395bd0de8cd56f619fcf8227b55f62930cb5e661a03b1de66cb4925e90f19eb30fb7cec69943e681146565dfc9fb4d313410e5dfb0e6dbbeaa1b9dde902f027f163cdca0db0b690fc398347bd9976a8c4cdd754b174866800000000c315002020140a0704e27048244e336dee3d14000b78823e7e543211c662410ea21888821886611084620030801840106306225403129f166f51b1de5a447d255574773b07494ca71e5a74fa46a2d01a8733a958e7c042dcac208c9b041dcd0356b869853756b89640730f2dcead0aa8dca4e86c1db262de5874b891283467e39954631a870729c776371c2428a6438f836463381b9ea41fd3389e496aacabdd99744c73b0c2dd56707491a277eea0026a7712b4360eacf0f75247a2d7d2dee299c431b6791071da196251bb360b7e906d7f92759e7082c0697879d8687a637a8761b05c70beb611377cb9a303afb56e246632f6e62a66ebb3fd205fec9cee33c3c56ffd2f39101ae46e34cc8de7dd69525c843f3d785da4dd0cac8dd1fb693d17967e6c77cae0dcc76bdce4d01b731d8a4a24447e494ddd826233c8295137bcc302f598a7cd26913c6dcc66b073dc33effbcc5d6f0678bc260fd4b27c57b9da6c2afb37389bc8b87d5d15e277edb6b79b28b58047a048287c679703f92d0322a61c5c6876747b33b025c6d3464ab8d0d5a43a4937b606d62f858e902980d0fe23bbc002be6d9adfe0bb28bebe973d61303c3f072baf7b4c829033261e49d598a9cd7439dc2ccc678fa33f1b8c0e7215f3ef779cb0ebee31859727f0aea7362d24eb5b687a63902d6cda2b6f19b82080eb49537220f8ca0787c4d37ab11992d6eab2a2abae6fdbe0c1d5449f896e56c13f21112a800451af998825e166a32fdd2ac21a214805b3fffd5f5ee91e1079eb9ff0ec4c1f1c94b0a881c98475511b052517a4069491688e6a5e51321f0abb31a9e87e30d7b107029f366603f5651076fcb16b4eec06cc7af0dfbec48dcc496035ef992d66cbc4c9961d76db776f75206feb73fedc73bec0e1784c5f3b81c0291d5c8990d78ffd71b6ae4449ab399e2ae24a933f7a0b3f28a88c11bbc8820cf177bd687fe1506e3112346f81e9ff01b93e46356fc154b1c47679b55014dab6fa120b161120d54936a1350df3a171ae302d020b45d8c6f4f7f283942888a0ad5cbd33dfd1cb4ba04fc30c4d5d03c50df098abf7cf5bef0d07020fc93c77541816ba54e3ee7061756cb803b0ab727160cba5d350b46d1770d37d8ce35e9b1b5a179ebdbe63896efb359ccf979d4c32e6467be09be0cbee7a9e74a7f705a38b693d10aafd38c1980c7e96e592d7b96411690b7336dd4775893faf0c08157521c0eaccc74038eaa20f99bd82110a36c725e2b1c788aebc90db69820d6281fbc42d9523866932999e5d864000310a54a77d5223a1c7a15850f10f91e37813bb4619b2a14d2e63699c24407a92bcd569df5fbd5238aec11bba3ebdcf25832972e55ae0b163d504099c4df567bfa796c7af2c870c4e66fd1ca2140d40fa126de598dd9f0afd39903c5b643dcd7dba18b68268e5abcb27ae0a58d22bc0a1e994cee78a19a008b8462cb7b8896ba15d406f6b9caf94c6e40e03be6a0f5bb31a5281a7aade6f6b3f56bafd2115478529339e6dfbaf22db0b8aa0d04ae900fcfabc6c0cc5cece6ba2c2ad95f5912014c4cf71e3776c68f2635c52d3d9c7b3f20d8d7846bd930f390db11dfc129c1fc5d73b2e9d471ee58bc467ae064ab2e682208e8fd7ea1933ca553c24bc453cf86eebd912c9a45da6955f7a60eeb5dc68b6f8e4fe3a045c4b6c498b41a16a8b2f99d82896c1465a55008b0584a0a6b90c55d592c4001f9b07d6e4b97c808d927d6c561b1f0298d497c47b56cdd0c7021f1b8a5b4c909de45dfd0ab480212f96ab7364a38d64ab517bd807be85dd8c3a65d04ce80dc609777b15625c8a78e2ba076f72a5d28ad6dbef2542321146f1d37761cd896d5f138ab9c8a061c9d1173d2d2ff2f6b8503ddc3c51bbb56d6ce560f58ad70287e7ed28e30e4c5c6232ad6156bd74332d6cbb2a7c0be5da16996152b2d567af5c3af3bd8e27fe1554c89b8a9615bca580d04ed0e86b65a8ebbab955899184460ad5e59e0edc96839c051659440762cb481aa337aab17d6844198d79a8a3d6ba4b802c4f26cdbdf7680eff2e879cd34989607bfe075a7755f15eeaafcb7d94e743a5b95f8c26900c86fc3724f9f374e7710e2708ddb3b4f5126f6b6cf9cf47786443279d6a81aebffe6b9bbe10da8c58b8d78eb72ed2ca3020fa78644328298fc6d0bf537677f41792381fcfe6ea09bc3c5faeecf918669cc05ff8d6d42d27f7e240ad22022031f741fd257be29f11190d3cb1b59cbf13edcd428a00dfd946b438e16f8c7697141bf8d745a671c8380c7939d5aa352a1e58d7da7ebe43b99385c5e67d4af31ee115d4125beb2cec53cd8dbf74634acfa89b9c382560e99c4c65027e01bd9610363d635148e2059bba7fa367e7e1869a2a5160940570734f0051a8bd318703fdb7e4ce0a2a33fac855f45e5451a16d6a05544b72b1b42fd0f5b3d5cee25713989aa617d99bae1f4089e93dde0e7070df83857aa6a3168200e8afd69f74445c228065da0760f7baed4c1e6c2394e6f82c4f4107b2ba29081c7e9adc39c30016ae19005abbf914d49cd9d2b168e41209c234daecd1f82a0f9c241ddcaf21fbbedc5a553d663c9e0e220e7a44aa6700dc417d5ddacf8bf7cda5e129dab0c8d6ad122c94725440eaa8961968d11d3235949fcab97b098644323976cacac62905695009c1b86e47dd7a42725f36ade7a6b066d3c4f5485a45831b88b67f39ad2279787eb77018e3636c77c58da66bbf1188254b55db0194ab8d2396744bb60f80c8118328af38f6d630f39f87999dc8b60354ec3130765870fde15e36560f681a1d8694c876dd217ab6be951fb88b85e98733049002b80948588a617ad589cb53082560422ced16b99c0b77995fce2d1f76338650779312b1558804751f794c5dbbb9211aee851eaa7129541d953df0d3576df14bcdee7a7d58dc4a75c8af39c75e9e34c17631d0fe815d8e0d8b002e0d86814c99bfa638b139f9e598796ba85d70d2ec61a77980cd13de150aaefb268d2874a6d8969528b77bebd865603eb02d297fe5e716d555d2e5e665222943cea132ac324460517708853626667be0aeacd6653b740651bb492886151362f68385886ba8e9468bfb12a2e08fd2f6f8c125e640e79c2a07844dd566740111d232f97ad1304aa03c3765e004a8584073458ad755e6153154f4ca9269fb0459781052fbd9fd4db7cf7205e41ed10157cb06a802854d4e374464b715cbe2ca779d316980adbb42532e3407960c1607f21fe0ac6384871200dc60c56b09a5b51318ad598b9ed97cd2afebddbe89b331afe2f349a9df9ae5c057555e12f60af394437c22779722bace5530f409d97762e50ec7c6e7d9cb6abb5997a2239866b68aa1396b80c501c177e02c4b3e594bb4bc202964e8edc201423d3b7e486afccde29933c7f88695e6ce5698b42b0b66f7e3d36eeba8bd9b789f94faf6b994520cf9ef48c0c0d292b301027184c136cda5ae8d71aabeaf211eeaadad4c25468876aa50836cfe33c6aa8510fd89df275b8b8e33977b163f31dc0235455112aee41c0dd9d5f3636c812baf6e58c5e908889a885896233745cf9c9b1f7e1bd933aef3670917be0db7811af86c3b84f4498dd37af5298ac1230c859386df90d6f6a156db3e9ce8691551cb50fa34d28d1a5dbf8bde6b550b4309eec8d22f5aaac80135cb6fa8a9374eff9407db3ff1d781f4f149391778cea0108215989c462c671a25de8548a320f6585b1ce899137e1eef83d442f513f80b8737236e2215f495977ef1e005e7096a354ae54826c7b87e18e4c07ef67c7be103dc026edb3ef163c46d10925f5d063acc9818c4bc59c666ee79e23f031d1b20ec2a5551ee127215144c528e5caf73ac295ef3cc6a925c2df72ebd735df085c40d9b1986f2e60dd967ea2e97304e052c33c997f04378e4d21cd8091e17fec6647908edca3a330d5e0112f91c96d092f56aa4dc1c56340f69d843e5a548832dab180421f61cfeda8801cc4225ba74823f769be5448196b3b6a7e6a89502671ca302c5b5d3a5333240c27821069c3570a2e8b7e054a65789990a97da59f04a3b7d9784616406a10e2b72a2acf8050ba53420058b07d3274f8d8dbd0f888e912bfcca060a4b0c5d8f4dcbabfd3ccfd63a03a02d6b9cf1792e67c4f9a032418d9b6179f0b3eeb85aaebbb8f266702874bfc318a5f8c9f677bba121d10c8e3566e21446f412e94afa91ae84eb542d435a52b590381fa4d25f4ff753af998974e31b923533d83ee0e11e44876897c9f3d7e0d4bf9ec7fe8e44f5f4945fd965fa3c93bc49ad347b91008307fe216a38a32203b6393bdb1a41c058c3f962d62c4713d8cb04c15ad3e4171b874f2ecc2f42b8be806e368425a0645bb8b86490a840d57eee74fd812e9bc82fc695663810a6cc42b5b95cbccc90eda8a4bed1d95077c6542d9e4b4a0dd89963234f1fb9a185f30c80a9d7952845b754aae2cc8f5dc17b9545db20c75a2f0dc0ec44e8512c77ab0b224014bca1bab85aa501f72cae5231e571c66aee11052360e614cdb6ebe8d317ed0f054fc923760e0e6441dcf92cc1753a20f9a9c100b977e022e9cb4cc2afb4ca47454e7fd6b53c91979511cb1efe85bd37f690c99925ab0119ca83c9bf727722ab9da8c7bb15748aa614534a3021d88590ae00aab09ec85605b089c585ca9c1c8a92d1fd142207939f53c52eb240c92e6a3ced966e2d14eee7f54640ba60c45095b694958dc48cac06b34730a3fdee5f3831e7e138c1e316fe141647fa6bd7accd5ac0f7cec8881d58e90475c1b207528bbe38502e91bbd4132ffb11857d35e1ffa6c473c7dc2217fd8b43814f59d3820d0649e5288d3ab844ba9c0d34f8774cb119d0fbcfd3df1b8af344ec84f00578c52ba1e7fd59e0447c9160b2e72f093b9d6e5557d8597a413e7aff464f51208c20471479dadc6154b49ee86cbe4db1a500ce5931f8d386666e12a5ec887c4afb0e45cecf7d12f4c0f88778fc295be9cff4cc5888698155b387143877c165d53abbaf18a059fdbf6a743a46de30b50550dbd6d14c06fdc929274979d1ceab2c90c28d0d371c8b450ba147c8e4bd69071af50a3de4d364cac7cf26d071f1826e47f19503e502e8db313d4809b003d9d6f8cb6cfb6e1dcdf23ff0a2479792fa0670c6e8784955eada53170d901058847f7a00fab681186e1415ad79d35f51d456b5411204a9c4964c70d8652b720c9937911e75695383c8267b17613039a9ea570a88efb5f4ca3683dc125076df9459aeda817dc4b7ebc3b78b7f9922c85b8026a1bfb150a11dbfffadb4c1d306b8a04ae2e0ee134256af6d6b6b1fbb8d13c1e5452043ce4cca11c5fe671caca1d7a98550906cc3e1fbd6edfd3b69feeae8a2b34c9ce8c560cf2d8dc620bbf1c3ae3e10946b0434cfe0f4f40f330fbcfa27f7e3f0e62e0523b9251cb985d7e71b16211869c1f6203bb7e53333c7930eb1d518f0f615aab669cfdb2c275b51fa9b27918e1209b78749ea060289101248a9ba680a410f8d66bbd99f83fecaede6a5087cfcf0a395f19bbfe23e3ca09dc947a43825202a0e0642e61c8ec120e6f5623316e05184058482e3c92ad1b6f6e594532ff77f581071e2afed9995cf42957b4e1c2a66e909de40cc129d3633ce3c1c3e838934198314273fd779d4d33bcea010b298ec776ab699b9b3857fcb0dfce0663db5e4f72ce01e952439b8d92893121992940e68dbe8ca5454db4b270205dc9b350edf0685cd163cb342e217c3b997440c8df514d6214d40fff0852cdaafef22f82f319e03f5c5ce0da6fc5ffdabc6eef1b7faa5af89402a027146d5334b829d3dd0a8fd1f26c97a904e68e445e61336342c25046dea151666555939baaf221cc0f3b6796ba09d0d8fb332ebd1604352d9d02c760625eb3c46da04658635e36189e7d179c38bcd740c4dade6826cedd06129fa405f2feac8eab0e485e627f63f65bc08aab7a00b8b9bb0c2c8896eef1b7ac3f26c756c2509e83607945a78f11189bd8ea15326d5efa02439e885db00e29df0028001fca6e4c5d2cbc5bc3b8fc14b464301ad4f37a492b447932c64fb50ced6e95d5332d5209694456c3e0d13398b1afad063c24ad6576fb170b1f8278e872b61f490d350902a74b5a20d7eddd9582bdf810e864fe03173ad4acf60242297b4910ba81339d57f89e464f6d02b54b342db3718a989d826809e232b906bd882864565e696de8bb734c8a2b6b89d00457a169211ec0e606e8c186b4044a1996b8d221b617c0aaf38f92c7bfaf6a19fe864f83e4ad40c9920c2fef22c4f53ebb9e6313673d6a17cebc5bc71bfa1cb783ba1400bb4e34a7c2787974a9a8a25e9d793c3a60907049892e539553712e5d3e905644a6f16594f24e45f98c9e4f1f9bc54642019d3db6eccaaabc2b38d15bba2c6a4b988ad85644056db4190bd0ff4aa9921ee9a2e5c3ecd7091f4f9bb66b211479240c9b2f8201338ea53649d0766754b2b8d5de82dc7e82de752c83ae264af7c8654169447657675b0c24859797bb28ddceae286139b6ae1ef32fa3717d4961f4ce09469edc4a5b5e81ccaa5c956e81cf79d5b761c980eeb17172ff23ee0c266000414b3812a796f412dadeb1d4b24c9305ccfb0c62360ae771155b0d6e2acb813c3038be6cc696cc6c168d6cd141ea568c5abe2aab6c29490dfe52d40596ef7ba36f5dbd797fb035b412be8e173ac86e0818ae6d8729f9da96020262c16b42d05d7e9b7f4c792b2613480baff3b836fdba3c0a7538328592b34f811f296eaf215101493c2f235d2a72244dc3c191be8864d6f43a7482ba81989ee5767403897d9320efae26ec88c0015966b116c8158ed28760836670177f63426e03777b657f62eeb60b49dc85fb014f084daeb44dad08f541095438a264a41c29656689f645acf76a078d6658c44d2acf7e1002b573bc46ad98a13d9d720b1a7d59159c1677694450d512bf3cfc62bf783980b3d229f6ecb0dd4765c14a0294102a2b7a8ce3be66331c5f34aae7b8228a9b44aa833a10df90b5d16c4e10246661b938f99bb4e0672dda74409b3a4fec1f8cbcd8d8420380b67748f27ea61565b4dd8e4fda029678120be77f0e2949a5b936e0ef942c754d8df953c9a9cbbdbb5c2203ee567bdb8e5c3fc0952ca5d00bda4bf60c777a3ded35c27a35e4b3644b42af8ee7c446f4b526782f1daa7b39a5c7eea5e61537182930f3e0c395b05e072ba1c076a3db00d19426d798d3f06501c840f73102245808cced580d0694ba1764af90fee0eaf20dc7df6d10ac295c12ae5f0523eaa516445d12406a8ed188409719ee27f5c433519b81b4e0c3888b188fb63862ba44b0e3504d9e641a301c2e32d61c5b302bfbbde30e792947ef37492cb95cc6b6e9049a7907f32f52fffc69fbf38e740004836e2a5022d6b9866c5b4aafe461e966ad37b984f91f23515d31f3b231e583be9ddddcff4f0d352944f237fb7648b1ab32cc40936f3edf23e984ec95ae5167244c28378ca1ebebb3edf72e94c5b3f59d7071eaaadcaf2f5fca1409ab6fd3bafa6e0eec2c0611292ab77aac929ccc5d3314ef178ca8a0dc184e00dc8ce05477e72791e19adf865b1e4b5955376615b622e9b71d4404d98c95c4f6dda0ccaa7544451e5e1cfa5a14252dcdadd2b833e90b4fae383d9b186ceb8531f1b4eac2ea0134148e0919a96cc93525ef083e570221ee87f4837190399b3ea1fe2566b615746fe6b5028d77b7182566f010472761b29520ea1f8dffb7a59beca1b7423749df89529b30d217c27f3be083e169a1cecc3ff538080a2719b20caa4103dec0761c590c1a8a4250d8f981b7c7077208eb9bddbe79492c8c34e50b8fd9307ff044e1ada08c0ced9443b7a4370b90de404d869aa61c873db4a58791977a00222279009ac476fa63b27761b76b11b7718bbb95cba438171deb7606582d19266d5b710ebd235888880e92f0a5f00f08b4c615d180de63acefafe98e4d024990136790a856a928708560f18e8a7474e346178f3a680d5549518e40bb9db4d13969da5c5ac0bba7f1468ba3b27b814a53ace409eacf88a4a886ec2a8294912f1d005d326ffbd72664b1698882eb12daae71d1a40f2f773084d98b9966ee7cf1708db36b012a895606afd2a29f9c2388739460acefe2097ca63563153e2443e79e16edc6ec5109e65122d92e887c2b4b2f8f63bd49c40c91eb64040c265b743635a4210b3897a4c6bc7fe1bebd8b4a784bc753189cd64cf0b3db222f54080ef5921510d8ca6dc0de649ea2ce9380cf79b5136cc757487d56441819bac4f51f656c21d9588dbd1d1ac970c5d84b8d6075475333c0431147a752078a6b7e2e85917c8a13303cb2bad98d35657d3dfb70d815687800c4955adccc7d3488884a72ec0c12cd770db1f3e4a2bda25d7f734431e7d7ec5b2c76c6bbc2ff8173d1eb37e741fd360e124dd7878a535047cb7ddfa07073ad2b1d4a0870ecc84b3077403bab3a0603669c5c56bd2968e7c969f126af2f6b6675c083052464cfbaabf07de7b7e31bdc431d1b2a1fafb703212ee1a4d0206b41a11590c424b44a994865593c8a4d7e5703316917aadf65480c92487585247ccbdcb3328d9747dfe2570398d3326aef51c071c20e4d9d4f08510ea00117f83d9d64c0980d2ec1b534e4f7cf8e20cf21c7d2033580d3bb5da3661d3e5087c9a4ed950f6a9d1796a5c5303fa0e0c0ddd3b7275c2aea080e2118f1a34c35ef12c0fb4e5e4b33fa1deb10e1b4be88c64c19502e4f9afdc3366694a18c13fe9486a98f86e68dd9f0cd6293301ab3dd1d7f6f406d83549cc54aebda7445848e57cf453b2c5ac1561c3895f1757fe2517f60b9b32b3a8e5b51683bc5be96f81e41826e34c77f1f2591271d8d534267c5f8c319c32363010a205651abaaba20aaa5fcf576d68383158848c025cd65fcc97c30ae0aa56bbf79f84361f7673f2b06c0310882d24a1ddce770f11b559d4ca417737821779fac53d4d65219daf698744ca3860d1698e0d1043de8fafd43f0d64066c05a5c44f59ec25221adb3cb9c86fcf917858ef3c2b65c237472cd7ab1980afaa8d9cdc230befa8d23fcf3217802bea63b94b2319e1454fbb039973f49256adba559266e30cb6bc373a3f0e28c1fd2eb03c8f101ec9770c70c2126496c880cf53dfcb8d2928a2f9d1da83869800e080e2f41152355a420d5068baef914f8fb7b9486dac064b0b52ea77d25cc3addc481dcb365b20b734807e21529b99e295b2b4e0bb1ed1a588e85e575afd5117b85066b73521075f52f2185df8c7ed3d270756a9052a7f3c8f947fd54f7006cad7561dc862fa16d767a7ec69f8c056b93a083011438f27619d7644627bb1501c769830e3d8c9f93559ce5768ca9bcbf8f35257c78fafbbbf36c7dca9d3094935402f0e6c46bee6a8af4112d3c78a6e40ac14b122d16e1f49a42eebb4f0ff78edf5bbe0491c846ac55bd6cf4e5d44f1287b6312dbf03218d198767d36e152aed9e21ceeb9597196f22fafd9f3ae53acc07b0a99757b7b2b8b6e399b4dee823c2e42d2c62099d7d15c87a61e54f9779e7263ef5e3479bdbe1879d9ecc279151281099fdf65375673864d814eb97f4e0b4d744596ada97f1e5dc2452d9fd5465598eb9eb8d914f46f8a500891b45a0522a4b95093e4e3bd764026341dba3be02203b62c71e9aea93bcc3c0192e3d4d2d1a1bed039cd5077243537ca16436207e4b96f244957c8beeea6bfb46e27903ccc143bcaebea198963b79cfd5d77303227324947764dfa16cc35df08c43f642086307879c917fb26a4d269786aa3cd300f4a2eda738a9b19964828fffb1c8f85815db29bf4c002fdb8616589def372793591e89ca6c0c34825129960212214b64d2b99da1986cac1163010b3bc14097c096880b6dae7e5c799df3710bf5026a2899cc7d91021f146556f2bfc17b5a46d30f3b13bd03723cdc659e09c00cb5c64d8a944dd007d68480d5f016d4adcccad2e1951fe96bc2c150bec5ae4f5644523485b46a2bf3d390c28e08cbc669da3bcd5a962bd2a6d4e888936961535f2eba46bfe1135ca53b009a2067ce04c7c3c99ea1383e91f24355c0c36a642bb59942d1c127be62d3e654135935fdf524d282f9dc25bfc4deaf63c1f919a5ed83b15c4f8d8186ddee3aa84c405a19d44107edac4499d61db346aa2190d183a76ca5cd4e94d46db89f01ea1d46c43de23e46ed40659c5e04f854ff269aaa02b09afcbc9ca5c87cb604f71212452d53c6e10ea1c15026b4fc714d759922d5e9efc8e8309ed121ba2d9b89891f0b7af5a6bfecf5ec09da21ae7b46cc9fd957c3505ebfd4feff6933227618f04ae0b15dcddcf5eb58ad5ee326411c6ab82880f351e4cf80107b7f6e47cad1daf79526f49a761034e81324e1146ddb4cc98c647923aeadf6d8185dacbcbaf1b25d60202d1f2a3167834b89eea68537812d1ce4ce567b1427dc6964347658193966a78ac4ac05aba2c386a217a4ee3ad83f8b5ca7ce0a5e9516b28e0d4d3603afb2d583dc975390334925100eafd5b9275787f9196338827f0a8caecf9ac2d67e049f81bf7e22c6710e2fe19cb0ddd178ce69b603cdf569705f6d2d60ccf79c47b05dc888f9ac2858adb855220f41a71b00bbd85a62e51a532c6ec6bcbff07fd2566f5c1794f1db142eb2a9cdcbe77df8a79e08bd86622105aa0121eaff3130e0ea9151b5080cbfe2c8e5861a193e986ec9f010ef4cf07d800f7e964c7f96029b260a1c35be05982db5a7250b281e48f3596a6e420c6c05511f3e20c91ab9921d4412483bfc70d4db1a7d38c189ac961eef03ff7e41aa52076968b344c844536ec8040399e6fcc1683d8d6d349bb3d5e72b48a58dfe65d4c9d8d4f4bd8ab8691c906e536524f92092d445f6e690e30d97b99132c27177b7aa07fecd312165c4d09cb6ddd7d678bc432128406f7164838a96cda8bcfff9f911cdb6beafd1fad246f389d2b622bc8a289452f33a3209327e1dcefa814003f573b56962ace2abfc3d658660944a45a1d2b0bf35a45c8ab338a4dac19b24f4b43491d6970e119e9daaee929670d1bb54174cbf988960a31210166741dc9df3a0f9e5ae13310e7df1313776b50ebfe4128415643e36c28487ea626d94859f199c5bfa5683f5d3430d4c07c002c223b780deb34a6eaee4864c49de74626d31e76d47de94efcbccfb2733af9702ee1e2102bdc8400a666942f7d5c1370c25a9e8bab9d119b18cd6aabc708d72f32f5639d6d4656a211288d7bd3b1e5db15aa4b285ef180f4c96935c07ccd6c3c1290a2ade2d5d55f2fc19ddb4b3072f948a34d6a1fc494d5b81d5588f118f2a507a71822f893aa91d19d64bfa6060d93c9051aa9c70b41728ad4f1b95d4dc236fa0326facd24ac01e62f2bf7682b2af525bc1acb0a9ab27da30de93638ceb5e539d4708295bbf8e58ee2297f2c2b4455e4067117a812da47b704cd8b914d1219e079cbc61a99b739ff5a744db2830ec66a2a6b051d16f79256c1650f626b2ed3268fc66a29194f5b69444640bd52f5d170217b2fe1050b940b18cd195f0716264e288a42ac5b55d48a0c79f9db51d870199d5997b135a70462503d107f5eda6c5378bf848ebdcfe10c8ee8f2732fe48b9ceb49c8f7f0d3706fe884aaf9f01334ac4781b100c009a000230c7fe9b79ecbe97c879642bd84e7a319301494c6148b2681508690427c5159b810ef3c0c08693c83075633888109371eeb3a03e81bd4d7f37918f176df5e49a59e489f1b4750d13942f31c904a040972043efae9b267b7084ca0ef59c7ae64393934ecfd9b33a935d39638acb9842e161d8d9fcee0eeab984cbe896d024cf8fd537c7b085b101a264210ac17730994eaf166d13648c4173b12786dc49e2ff5bafce72249971e34cf52b4152ef0a9125b2b84b1592607a6bfa08dcf1f209974040ca3a825559e43e37b231b105641b783ef7b05c2c0807e87923e0c0b33a2b3f80afb95d297b4621857a131c0722775ba54c5d10463458d1bf37baf87242eb76b049984971542f350940e603b16f627d3d286ecd9a4a112953c493a3e5dfd552d7aba425411ffba43c9f579613d6f311d22449a46b7be911ae0226a69423cbbbdc52ca75d32ee567fd3113f6a446aee3889114c350c29a20069c9fd7795096b16249acf27583b6de60ad0d1b177bf39ab79b7eacffab6aa94ec2c763fb43b162c216aad259deb762f80bf29d7ad64a9a342b487b1e102975f772156af9f3774b0573aaae37f341f2dd6f16c8aa615f3d7a4ab0425fa40cca72ca24225eaf6ecc6bb9ec1e237257e6e28aace60e4d5deb536344ad0cb547f0a4b8dab05fd29df35ac3ff0c5e28a538e04a582088ee1df59663e7be69367cebfee364a2c20f9dcacad0b1aa9002fa2ffe9c69c2de157216284ab9353f02baa2aea470dceeb06b78750ef163417d47fe33be0ffbd5ae04813258621cca3dbda7cbd9b645e1c048260e9bea03888a42941d3acf927605e816b5bd4c1b1134cf3af23e65581a6e739b0432edacc70b9c3ef3b99c82e25e67ac9ad54c1fd2950330a51a39d3511df7bbbee1d631c27372a5745b42958ddf7bce3bb5412e35190a119a8b7709440d855f805a5d968b816519dad3abc90b2553bbbe74629db7d058c443260816237d341bb5748c21c334181ff4ff9d89562920e58c641826d85ce73582203ae44918695fe2878cb746cb982090f8c33777009d0d58e8d6016741be3c667708db1d0861f623c2bbd5854c04c303672f0b9956ad4ed007b4a42853f6b3dfafd86255708e5df844cc04629e6162290cc9b923751b54ae213bbb1984084c5569a90db4bb7a9b1c9b51d7a123a542fa1d9aae28315e867903c0938f3d30b2a2ad076985ab017ad780a288a045e8452fb6095e590f28c0db828ad1875f70d07b4602c24d094834d2b17b4c6d3798f69ebd2c3b5723fc173c2d1ec087da70748586f159e0d4fb35f872b1ab10d3b826e33ddea230091078152dacdaa810c422f39a5f34164fbd324442ce00551dc2f99573f44c950b69ea57c908935334ffd65cbb47014aba9fd0daf1e3689d1ebdca0f8469ffb6d91eb71e1c8481392c97eeb69144946962c2526a17c6edbb6cdecf3154e81ca072d0ad77961c2edcda588cef4ca6084bf07188b29002e6f9f29933d83a18dfd610b2a0500659b83955e288a09e05649e2cc4b28104e56bb813e00183fcdac92f24462cd6909bcf7ac8f999a5495c3424d944c2d30eac3677ca134724c4da383e02cc011fc9a62aa4a27cdba3138fc9b96c7c361b4d19c4361e473e758f06cacdb3eb880803b69761645f67e2f2b47729f3eba0e3dcf543b0b849f54e54510bd0d30bac584dd3e5d6f7988bbfc66b9bc8057275e7a336a8b0484be50c510c3658038d8e2acce0f9b871ec3d9f0e46b6c4eec27e45d28906f766ebb64821c2166d64ff66504c6c08dc334f7cfed35c98e4c91f7b215d5a3d840305011e1158992aca9ed0ce72a3759c4d8a8459c132d0baff9bfedd6d138d5799150aa2d9a90f048768e0e987372bd94e9e083f739a41015d04c68dc5084c4683b44f5bbb565879a6216de9d624352375cf81da7f68deb407e9702807546108e618f28c7025c343a14f6938d2c33522b317e4c5db04f1a43a999563b61c317b353f8fbb2a20c95f2681b5e9148c58ad6af2ad911c204cbd2e1c69790317dcfb40f42c7a9c35de56a0e6c91ac5eb78b1565e14fbc589f3613a4cfeb5eaceb74950523d123a5adb9996db71e475bb1530ff50ad9ddeeca7b06ed98bee1f62d6fd2ad2e88fb2bb91a3f2943bb0cd8370fce765de031cb95d332dbc64692ba2bb03b2053c53a2b97da6127042457ec84b28436af75fee617fbb319cc84750de385cf19a6a13e3e34bc2c8d80359e7d713006a55d94247f1cd3c622fec16f888f2af7a84d5e1e3c8297e992379b11544f4db165a7aeda90af856ea2fdc326fca477d04272b09a3adc46487742000a95ead9f7457501b61c6218182b64bbdb6236f08e692b4dbd2a19fd046d9b765f72762121ae540c6a8cd63e92e5fa6361313acb238818e562a61427604550298a210115497dfab3101122da55feb4a14c54352a1b362c505794b33ee65ac77cb1ae95e16f6014bcbc882dd6621c1d6778129405c310909e1403602ee74a2cea527286c2e2b0f27ba6e81b327405542c7084105bda587b11b194557edf210b54304c16390658c7ed9f3d5c43b7ab5b01ed0c343966ab8c91b33ab048a5436af848b3292a516c7513d5f48cd331097baeca1076204e5a0fc929c55d004e9bb07055f4bafb9ea0cedf274ea9d08b4cdf0e3145045d34f338c41cbae5c0c61b53efd8bfbc6a16121224d762d1689b27d34267292eb24de9aa004483b4bf5f4e2dc0661d7db015a00e96fe2b70c4c1fd16fd43e9d21f6ffa24b44cd4f7b2347482add8a7d2ca2f882ab126c1151ecbae296af981b80f90c7863199c443befd8f293c6898581e7927d96b7b301d9591e0d227ab71b1a4615f9311417ed2bf1d701c3c081a81e6f0819287656620fb1baa38250c90a4cf22c277fb187bc9f35699d1244f65995fd09e3a9bae0352c2e7c85a92f64be21615e7e15e460aebd837803d5f141a283382091db045eb59c55149f10d76c184047d55a52e5d26c3199eaeb04ded3aba29b17f0730041d008cc183a031e64e0b0e3008458e175da8b5cc629dade8299332ab6102670bf02fbe4feabae4bbadfa2a7e1b0c48cd9b22361ad56834155315694b3b1090e7d37f21abdf8e6daf50f39f1dea6eb335122c2400798ab3307386150c1619e6f15691187e7441c5ccb971668bb67d313cc541c0e756de9c1b59824ef18a1ac1e605faeb5c39bcb868a2d4170493d77449da0c7213ae74df6e483a85bcaaa96ba61cce531af36f6049e6592e39045517a5e126087ec7f5fba901fbeccef93a5c4b15dc498c1c962679b961282cef7781e8f4c92000fa0c12926695fbffdeed4bca1c7fee7358f659798e0eb27cc34d00e3740b15c27ff295e635fa7a326c27c633cd22e36ef13bf97e97d924a6160efd21c058f142471310fb8501775a956f624522ab1c326339c942c0379092ef7d978466adc4efcc9cd0c00d4803400ef54569cf9e1c54e5017014725af1e888410f3a2d718b2ddbf0901e86611767ce3e05343610bf01af66d47e6c0a58b63cf0b41de3ad0bc1655bf5a14bec1d3a7c20436e6622252523b1bd48b6988d917f0f8fe5e60163423597eb010c83e35f4fc374cc2e482898705f8d7664d022da90800ccf6d4f46eb38bdd9ba7983022ae7f7ebc9677d1f880a3e203d62987d1f5ff924a6a1f2ac90b3a6a4b62fe443d44de5ef4489e186ea78a29e064545485dcb732551539cb9fb9435e4c3924af517572740d87dc4588a46a7670e1d4868e1f6afbbeae499df1b7e9da0582dff08270081cc079d812078f0d1402c71711a7d2fb0832eafd6741dd4510959d7cfda9dc4ec6d7ae63300c38cf99b6fcd67c4529db4d3c515ab5005510502e0edff1ac8a2b7d863a8dcd672280af758cc5be5e0f83ae63c5089406c4b417c939f09a6af0450c5badf397f05f07660feebad748dea874828399f8d3a24001086d6392242729ad83edb2271c826e50ac70ce2b5325f0a920fd9b024d50a4be3b508cd623956146ecc3092eb3a51e032d6e8fae6d7e391a4cd6779c8fc866d71e6b55194913cbbd1b57d3352de5f513390015079a322ad062708f0139dea92661e7c69db9b40a5662c34433c806758ae4dc91b4bd93c492902e4e209f8d08b027b28b7be06e2d96092b48dd2e488c09e5e6ead1a7f743b15d1b5b3f57a5caab4d1814d90e362a511395f7ad29580ed0c125280939bf05018ba3b7404dd1b5864111dbfa4c6e835142d1148e3b92b4fe4c86d8ea46e4b0b852a77ae254bc252d31222df1136ec37e2b4f6a564b983c8b02401838350e84f894cd5fe3708c4011da858d97a0d28a250b7b39d648512db4358935ce6c5dcaba1b82b1debbef60985f4d83b26d5687ab7018634bf1c4143d74b8a6e5f83b37887f1c0352447ce2dec363ecf235a0f57d6fdac7ba421943a8671c751c91c5b4515f03c99615097591242721548d510d353ee63057c6f31c42e4f2a9eb52683093fadd029d0344cf5239e70395821f590bb37023747eaa7ce2abd603941922020ab753b3de600b62fdd18068e9e2cdbc3c748a2679591f274118e57c3715315bd44ed2318d44dde48afcf3daf05b393b2d2ae1b441331c0970e73b30940221daec7c3bace740c2ec086d2c21dd7e3ad4ae2472e9da8c6e4fa923d8f4ad29697645588748b4a032aa2db79f2b9a937eaaa36348d04f19e608bfe148bf6ac1dcfbfca93a526f7127f353ecc5329cd1aa996007db9c7e446cd1e7b46c2d1938a44f48a931a30e61d3d259da53a7a68c9c82156f4e10b7d5319122576780396110328d91c2ba5bd8d69fb19d0d15e5e6b2c293402231c7842d458a866dabe772c257360e2a8d6802e0b28d32a676a50ea2b641b78b7911d12f2fe529af229e9f9699767a0d0a88a6db37880f39ca3b6f00baf117ffa141a2526c770d2ff31fd0d9cf10696ea2d07d84c2e99088a0b0206ec43460e6314e231944c271d25709c1cdf3086c1d8475245d22571755bc8724779764614d5fb626ec5e5a813c064fd6b0fa83d6edaae00cb51891bdb73aeb3a128b8a5d6c39958b318ec4e342b89d0fbbf0e3b4f1358a5b959c4f76b5729ea17446749028064a938635d2e0c30923b950d7947fa52871015555ec27a7356aba07b99e2e58064466171036fbf7a057ee791540145adbb741fb07bd9045d4c46002eb70a1914dce5750bef65ad2f42fa4558d73eb955fd5c7bd1c05f2267ffddd6202b17900cb91e16f7f02accf9d123c9dce336b0623fc966183448e65d6ad9dabdcf0eb65cd6694d02aef02d10ae540ef832f59f5a3a18fcd56097c8ad4f54a14314764f63189266d6ad1855f34bf81910fd24afd68fbe677669eea9f1cbd69242f49b242d3aac589537c2f3bf011f349121fd71a1c0ac54cf75682db0434f8cad15c115113d90da957534c97ca3ffa45a64627ea85f7b18e3c201b4f89585bffecf338539f3a97ddf07413df0c9dcb02afe51b2b505d4fb030bf17b4e85e1368deefd8161db96ce6930f5c3edba89b3e9b915e748825f2fd808552b822220c03310bfb305019e715dbbe7422c62e058b361d3cac647eae4fb241810fd13d8e82e7994104ad17d03ae8408a7a04aececcfcd74fd40b732a17ac9f3d23a63152b415eef8d9c3370baa57cb58676e9bb41403dab9be0ddc9a7aabede4c92c45ee9eca97f5dec6884186a47b4658cd9f09310d9e0e02080a8c3cd0eef2134e92f32b436be0ba309124c0db6f07c99269c7871e8d912374d7d3d0a9b3ab39a9e717264648d202151d7dda070bcc742fa420940298f0baf62ca5743311be7566c0e86b61fad1de4280142a3428c327d31bc3a4c9245e51d43fe55bfa7c69104a3e87d05581c7bb6d283e621731afb691a5b72b825ba6de4e2c7c6d803a0948bb7c4b37e36e101214e658e16ee3bc8a2811919432ff44758d630abfd3d8277f4a0fadf1f1ad233d89ac805690cedd86d313a63e69a36c0c17d1ca07cb0d764b5dd944ce405d10c8f6b84596d3263c6ad5867a3cb2756c760faded75b952ce36d597d663804159a6e632f7fa69a1445f7b1de1b22c64b6fffe49c853319790f810fa96f24a89908d3307eca03d86c719c8d10ed0ac334ad10734122bd1692175eac5af165dc0bf234368f907cfaf444b863512a33b551518b5b8c7690194a3d1899af92cfd1046765dd0bc6fb5dddb57bf562537f739ec3e1cff540f5714ba736146d9abbf1afa23dcadd7e5c092d810ca16fe9e1c2ef037294ac9a8a05698e6fd827fe6b2f889586d05914d142a72abf6539b4218b753c544cb14ea39053feb1dfebb5e29b9093f381ff063aaf741ff9fa903e88718a6b4f23e22ccb6e3857b22858ab68d38487fea61c1e4909bde08e6b6f88d8b6990aeaa6cff48a96285d3d7ff989dcbb79d7e782f1d8e3b2ed3e518901217121a781b7ba7d1e40c68bdbd517c44bc06565986be20fb52a76c7ba98b3a88c37e47009e221a132137f0732dd8be47d48531501585391dea7710f9040b7b10ea91769054b6bdcd7b833a9989f2b6fc33109ab7b8c2bec98a87854c4e8d7ba4ab3cdaa2e11018c4b7966efd6554f453eb4740b06c94ced6558b5cf46c242115b7d5556e9f2d1a040cc12df425abd1c0bfb518a9ef6214d091dd8ec35fe4bc13c09469250b216cb104b885d9e02df672499e32f1ff7e94f30bdfd34065202a245fa1e54dbbf382b8692874beda516c1c66928bcd728254e12bfc4c8fba4c46aa295a2f3563529de8a7a0fcbe4154c41e514ea2748bb057003777931aade5af56ca2bc1e8b8173ed24969183ca9c83db714794853b0f07562ad0d3aeafecedd551a03f3a5e8090012ad2b2d276598dc1e8a8681b3addeeba768f8ba0ebbbee1e6fd6433e16cb29181e9d4209b2bba92e58c4c044ab1d8b6d0a00f292aa61a1f2f694182e4193957bf861aeddcf8d42899e53018e2d5abc13df20c408e003b9af559faf17fcff21da512bfb838b8e5edd138949aef57238bf3301a4f6e10495f007bd7b59db6303c721e2f2512d025d1bdd0c2de51c5f72c5031ff12067e5f7f0bd6f07e39d154b8a52d12de32809befd8898306b278bd07043097f2317fc5452e37bf83e10289fdb1d978fb832759cd14d1e624ab23522ca872971ef5ed2cae10d66bbc28d7bc49a8922ead76c98e88878210a2a69f242342c1916970da22a494ee8c4628a2ce81ba78b2c3c62b98dc6a1d8908d5f9117406a03d175ba6c1f69de68c5f53ad616ed7d2b43db7f1c8102cb12c75b04b85a96e7e6c7513191be6c06e2ab758d2b6aae60ebd0a5050a2858c7c8f434190fdb1faa25f1e4d6ed5a029acd84f7d2e2bc46b3945b76f5f959cf5e12dd4f8a4177ab6e66f085362e964bc720aaa36b500a4b200b8b2c5ad1930a2176c96333a39933fd18c0b903fb1a855cdc6f2180964d703a16ade09dd2f302fe2b5e4bb9955bf0511b13de1a80d20f8a4e56b2ae5cd7f3b9e361872d687f9a5bfa55e61ab87bb3dc1548e09b66d8f7855522eaaa25632b65205c29fb4e90fc1009cb1217cd18518c981d0f835a43a38cfbc09f7d881760024a7aae71aa52300561fba26c17cdb546aca9e436dfb01faedfad515f09d799e9178e961b5adcea1499100d04036c6a7323422cb20ac5eccafd68a1cd8a9e5363bf60185293911e2f16d84ae8b8a896166eb456d70d4737a5d2a008c6960208acb8e7c19937a4c79f73584977457be1231d4adf295b904d01199e530c70dd6f79b0588d6ac94b55190802951b509f52e8a83315654f26432f596ecef9ae4802df340cbcb9318a888c1907e91383265e87490cb3f7f1f10dc5a8ce6017e651b84d4a3ac7ee3eb69af80d31d9433a960c8b04a82ff041c70e480a533faf274456259adbd3996942f8a41daebeebb4be5bccd8cdbbd2c48725159ca54930c705997a9613aaaed64de53c4513586d954d001fd046c67ca324657cb7363ac8ed6aba4bdccadbe9c84ce1e5d249bb757d606d51afd7ab258d741368a6beea96cfd140bac0e72c29a3f143c8814cdea0f088d1c41556d0b007da7fe3181996a74418aea8926881ae67adca23e67934dcdc9910817e91c8a603bf11f879fb32068f1f16d1837f6669036880276d0d7a4da04c9595933883d7352becad129a05b0dc41ed1d61888239e6fb406bc2481b78db14505f7193533032dd13f369af67b19bf96a4266052606ad023e88b4f51c5084986ba36e8384e0608aac3a9278a43f47b0fc200dea23b32efbded1a031e6067746201f732c2d1128c951e23e604a2cf415e3058a861d9844d8e3268b6ca53e46c9f53b44bd5ec933347e4e95be43f58d7505cbbceb3c48744145bcf60db94e40ee1f602b2c61aadd735d5b8c4c7a7fba3d340fe9d4abd64cc15440efec726d42518a688d0deb73cfb42d5edd5b6f8f2e66cadbe6519eca9d6a7db00d6481fb6b82c5b671c5ed2a0df22e95adff513328e480eb2de352eddf1b989825c6413c07336834a5b520c576edbaeea0f86549780a6d294c3091cc4b71d240555ec870652c02184838b9ec3769aa3c1fb4ec538758285162c1babd64fe8dce17c470541bff5aa129970800b2ad628585015c0a462f50d6846bb1b167651879e1b7faab2549d94206bffe7afc9a4cd0d409857ca5d40cd2ddd8fe4774a55bfc762840a77c8f90a0264144228b901a145f8fff52d47ebf8b5099bab63b83ad68ddc629c6a5d8d637f09d91a9e66c5abf56b007731161dea5b6ee9a555f9fa84a976f1f053def905ac21c82ec6bb6893e0fb8ab8699323f1dbda3213c9953c85114e0c77d979133ebd51f39e502e6cb6abd88615e9b2682b42853a8ef27629791f77e9cce0d7be72c22e4ec41720b773fe1b0ba929ca5437bb688a9d7606ae7d099c25cd509722c6fa7647b7e5096e2e4595441f1daa2a0adf512dedc71b680f3dde536843cb043c899ecc554a11ed499f8343ae708f4def971c91a85ffb57c10469ca5ae0bd9e1f17a54c4c9be6206d9ac51ec1939a89d5a8cc1da58bba0dffa6a93bb549081fb279d71474a3fd5e06075148259aa971c4512582bde1f27a52c82b57bc905c40f6a881438c2a5764b426764eafeb53708c61bd3e7281e49e96d498d8e78f16193199ca5bb33a2b99af360b13d8df4d45dee5e10dd51fa2adc36a0b1f31fbc9ae4c0f2226df6c94580b65b1957b436fa24614c075a7f1c758e2d2decc2fc5b8eda89cbbc711c8f1757e4dd37a1da1970cc31fd5a9891c35a23692bc610ba5ad9ac2d06dc60880cad25e7578c26748eb60c5b5a96d5d07501ed3278a3e3e6e7f476e71ecf3248fcf7d001a8a619d1e6751bbcdef7608c822704a455f3b3f5ad13328781d7ff9e9012ed12d4b026a45069f23e2e8a9ebfe6b8d2b2e3fe0b8fa330f465d97151834456bf030ba3aa2019204d82787946f576aac9d9382c0fbb88d3b10684fb7d90446663fe4429397dbcb394bfcc4bcbc6b59865e0fde9afd6ad83691767b61beca66e12b0a451fa225e438a05fd32d7ff69664b70d961488e604cf3eef57b2860f258b2dcc34119c06cd7c521784a74edc9a0f867619c83fee8c33dec25333954a668080b719975a5d25994c73bf94c75d4cb44277dbb8a13de16fb138925b026e38d7903d29d059f0a2af5e40f1a052ec35eca4b4ec27e5ea78de4f82803aa422aeda0e7b4e7d8006751076cf830e974dd4e637a7cf4c9d28b0f1680b83b30bd5e7c787ffac639a15b4255a05c390734270ff4fa3264c69ab81291a565d538329adeb37db890ec9a518bc83e46f578c9e412052df137966e5448d91d9bd508e4c7e24a66e795b2020ef2a15f3794fe1a76c9a4b66063be1058cc6ecbeb5332a451a67456d9a0c6d1f978be8d77875043125639b68dc70dce9b9502577902bdcabdebe92dabd11eb0a0073dc5cd2b0005eb2cfa111c040234b08c6c52571111a733fedbbc271a720482af32762e2b1a81802e19dce5529ced24d6a57471ab9a9d337803a58dedea95e64f741881621d6872f133a8e9d1ffea6ca849c8136180b1d62194bc0f4a46a751674134062c441d0004bc9601a8218c698285a9648f76cc8c36ea56c1e60967c2f8c7817352b48213e59b9c4c2eb8cbac7e71838936ddc52e8b0c608d78c3ba6fd5b79709a73e82fea1989f77d49c9cded3c5a54c0580120d39703901ce5b5be0082c62ae3d7d5803c66f1a9e2cf5958152988e6d0abbee3d57972b89714a23181f41aa274b244e025a147cae495691cdf38570d3b8183b43143017eae0268341673c085eb11fe24e8de0cc501fa769559c601c1cdb7fcf804916a5b2894d02cfabd7ff2b4c5ba8c02f4f7041e61684406eec88c86d967d7c0fac01c49c010c9933cb82a34e267af1a71924f84023821ba38093aca3acfba43855478ca328ee5859d33ae98d5aee4b8c742b6e70019ccf77411e3948a6377a1d3ffe9380db3445358ff42f65d290f021165d8197a50a8cc4e17c169e68a2ebb5eb5cb4da16bcf0dc0f8636b1d583fba83f683fbe4c4f6d32ab051eb347da06feedf8c0d84d18c60311402105e6b208d9bbd9d5306ed562f7598798f40c5405b59e488aa9ad5680debf28f39598bc50b11c57f9469cecd08e4d868580fa0f087187cbe6707cecdf6d05f444ac4db2bfcb179b205a3dc44054aa915fe4d8af4fb3d96772358454c75c0ea0e31dc48991b436cec5a6418e990a8d7250c741fdebd57e52ecf86c5f2f83da7d2fe16fed55f6bba90d373c01bcdc01fa413d445f608a69690e647edaa3f8cbfcc9d2c45fc7858f4dbf756c0daffde362a65579c3d0a0f5f4d61b66ab55c47bca99acb18e8fd60c12c3a733139fce5982bf8ba2a4796eb14af4f2ba74873984a4a864232083b4647dfcb23591bdb2bb7b4b2965b6045304c60323744982652443c586132e4e2e8a884548617c8c4644e30b39c42234a07ec8a218a293212cc41986a4184da81aa574418285ec808a88e4649c7222818a885890a47c903f442ce4187fd018837e8cc420592cb108b39402489568a5cb142c31a888419c901f388d2c8a884490c8157c8c3b8842c8718506ed474c8cb1268485e8829014a48f2a52852e5eb01051118d9c8c711a991419b520d9f041fe202259c8213ed110c1fc8c49315aa8b1107dd4528c5faa46225dc417b09038a88c409c88554e6294224c48357c1c212261398ad010957e84c4186328b1e0402905d942d507ba88396019a950199beccf898bfd39911e30912928250122e2e00295a119501069489ad1cd10a3939f6e3ec923c9a79b21e8fd606b49b05708cb6906e03902123b627a1d3d79c0eab47604c5684b6754a5823b4201db8e5ac0ee5108b0a3135e473a56809dd68e766018b4172c324d464f48b3e1012896d9a2942d66d93cb2ce48c682fb79b1edd2dce528661b257960640466c4a403dd690dc89410ca771f487be19241b371efbd1bf743abd0759df749d5684c60c6186330a46da159d99b67265797cce887c562b1f6ded109b57052751919e9a5c5696912ad9626a1412dd301208a9ac4e54653464c680e41fce97049961541bac090b62065c829720a47e3fbbe8fe8cb0ea7fd711b7c2b222d445ec8a43da612ed6061899442d2f607ddfc1128467e60af20a770fe06c898beeab406444b373f048a90da5a9027dd7b4aeae6f7a3d35a10a15a90138288d02bc594af8030d58e9e826409d2854640a904c2708b51158a16b5a3a3138e744c09c92a64ad914b37646ddb6e6e4a72485966b02344146626830ca32c5736a86ddb9450ca71db867beb8063cb6a7e1649b7bfbfaa1456b2c8d77a70c0834cad878f0d726a830e84af81d74f6f6c702805ded3df2568c7a111d8afdf773f7c37187c1b10bc016daecd9b14b2bff730f8b8e52d7a938424956d4928dbde6cdd5a4b33506be1d52f4db2eb6f2fd4a298663c85d49665cead16471a715646012526514933bcf0cc2082d485c49c1f489d03988170519554d98e0e2b3160a87081a30524434ae843ac599233760a40c46c861301b3142a0ccb6933bba2e534e124c08cca49ce8010a9220ca15558a82bc8d01a0c62708071a2c0c701b3fa258693d230ab71562171468d3a98d184d41798a816158e6ca853359cf4c95980d965d1a5cc0ea52d3cb8e050b454d5757cc005bac4079713829997734b911e4595069c8a43ada1665142ab36ea450a0ee7917328cf2a92239408970d84ce86b30f332aa4926005e80b15d549a15039a3ced1e82c5b33a6194e9a04c470f21907e7ec8c3a17308be16146a16852d7755dd7755dd7a9505b68d2a5cab972e51c60a6a4a4a31a09aa637ed0303d51904638a9931c374e1652909c15c616a70d680c0953c4c8899015ba8eda740385c1ca89f4e264c08c47b5516b378c396766595a705b8d080ae3174add234afa254c680e506785d18019b501c58e1305195ee79ef194f073aa38310c0aa6a2684f37e4604307495fbad0d239e55440073da39d01e8ea8c296704b329dae4494690b3cc79bd1e2ac409130fec869f285e9054741d4b12cc9a4e08cc88ce8a25842edc6af680d9e76264e1458426b21f436e44603bda21eb42329cb35a45a686d9023a662dafbbac1dee4c0bebb8d6ca75ac82c09a7bf81eccf65bd12dc216d6bdb2f4701086f5ee3fcd758ceb98e7791dc418631ddb686a879f190e7c55a91eb2362aa6c326756373581980aefa9e0b5f9a72e327fc84a36a6ab869bd508796f3f013a6c24ff8098e32b154bfad37bfcefaee47db147addbddeedbc2d031cd5e2e647c3cd3dc3f11396c25258ead2a8ade162cdcce7ba4dbc7bf17e8b5f1abfb4198ea3c0178ec24f2b203377934a711c0593c1155197bcbfe1b14dfd8ab840a5c781ea92cb66c5a654ddf3a238cd3d8e7a4f039517685fa0ad5ac9e07ed8bee97ed8be7e1ea5a254607d1d5d5b5d3f2b034ab5fd6dba51b5828aa3b0148eaa20ba6d87c6dae068eab9b3de5a9a93b3c9546f32d4e4d584d6c30ebe955dddd55ab95a39ceabe09bdbc64d2bebf6de7b3bd8ace03af6bddf2af77d5eddffbd75b12c08daa71606722ba39b276c76e9787605825bb69fad0fb8e23a79e6bbbc6d56762907f37bf9b737b7eeb307d0821be20bec6ff661b582ed3b6e65dfc7f2ecb3ea0c37f7def69b5b09fba0c620d3cdcdcd729385691d045db4676bb3b5d665611544fd8f736d5f5ddcaf5c319c5d9625088a7fbf2d72b3d22ba2c577de361365d7d91eb4b12ec41561c1fd80b9b2836f9a28410f7c0b6ee6b15a016863b5562beb5fd7759d8d55101cdfb6a56912521b7673776517c5232a85a1bab920000e62ba2841895901648381e809d15454d012a5b5d25a6badb4d64a9378d96ab590983aad45f9f4b06a1294de5abf1295e2d09b7389dbeffd12b4d3129ab572fa59ee6ef76badb5726f7eaeae69eff26ef7de5b83aaeaf7de7befbd3e36f745b6372e230c338c4f7694be711e3aad412541f54821c4049c041338a06cb9424850839ad16fa735a812ba19a20610ba19020a548b510714076408553070118f66109f4ccd96d4708484a144c28f1b88c6221c514c40717a797241063da9a061ccb8c5cb98058b18c314120526e450930c212a8028b530ba20342aa1419e208238c6e9c50ca7174f9911852fa408342ca1128f38e1a164e431848946bee082f8238511c909630b19a20d314050d28345090a72079812b44c89a10a14159ec62145c62e47e40c1ea2d39048e606b9828411840f56480213694952fce4b0810da3112baf28a29628928611524592900f302c7041e104b261964353acaaa983b18798f1d545862b240952c4265223151232454dc70b433b5ae43861067986b002892c05242bc61a64c6d90db52c648c8a28a489f825097963092ac8061f1897e8b85143dcf233a280419a70c403b1ca111eb10987f1a886114a1512c813d2c72908911166348a50e4820a640f1b4423bcf021858cb0186918d9004718316a4b07328c00030f14d9c334222189493dc4212b8c1e048d294a1095802083a9850f13076490aa2b5cc6d80c39a6c4a525311c79521a3ff8618548a4c231e260c2d8738a4c8ab8e0a0888a3263645e461858c81c53c41e4cc6a5a6314a883805847cd10259c2c642a3d3c6349a7e6e8831ca408485d885480a51aa2a1fed3c5b073fd7cd5a14d6a29b64733a269bd36473429e657f97eed265f2429e5fb6ab15d83aae42411667680b2be6ea1049067398737347835ba64cc9c1fe9e06953cbb76b3ec367fb3993821faed66ed6696599cee6b4c926a505db239660d2a7ff4fb36385159fafd2a64735cfd7e6502d4efd71fb508f3fcaa2034b865ca94453033dba22ba20615f5fb7907e4e609afee1a74455cce3f8b739bb209329afcca270d0d474343f3f945934f1a9a2ca3a1a1c9b0fada34f5b5f3f6334f6d8ef9f5196e6e9a9f793a93734feec93db9270718c4f4faa2d31a142b5b687ede9befed7d8d4bc7ecfe7b0ff49abb9cbd5abff77607769ca73337b7ed3277dfe940cdae799dbf86ff88bb5da696b19ff6ec32efcc87793f8b6b9f1aaec19dc9bf5afdae613dabe39e65b278cdb37e6686b3369aa796dacd4d1aaf66b59f8666ff36b3edfa2ceefdcaa563d9e2841de466f7f83dd8ff3ccef5f69500b4b78eedbd5fc3b696b1b786699fbdb79659d8fe92a575d6ac6dd3f5b3fe63adb86d95bbeb988ee9988e7952a214f502745a8b02eb6077efbd3a1ee8d8d39af599a5bfef6003c3fb0bd40efe089b7b720fdef859f8599af5f9859fa5f3a9c3a71deb1d9c5fb502fd39cbba59ff8465710d6e67991ee83a1a83f0f58fb0f973f5583aaf325fad586f6e7a4568fcd5957b2a88cab78f9b5ec7fbaa7a3f806019965ff9ccaf2ccbb09c35507d699d6bded35a6b1a57aec9b6be724fb967ece7058a1494252840506a4f9edc7bef35f7779f769cbe96d1efc38dd2fa94d25e294869addb56b906b7d70b6cf4bbc7187ff8f1c77a56f838ef67cd7cd525742c07b3e5e64c5ee99c73b6d6da99991773b7ab99196e6ece5a599d437ec2eba02d373602cab0fccab00c03323f0c24fb3c597dad80641fff7ebba8c5d979af70cef59573eec93db927f7006ddb7d79c2f4a4c6139f4e804e6b4eb23ce90be8b4e624c8bbdf99956f9bbffadf67ea68d001aa2fb8f5f6aff213d6d432125f8bf5a0f7fa57f5f430e7f1ec7eebd1bc8731375b1d7fde7f2f7233cf7ccb45edf7f9695cd47e98314d947d631b189bc54f78dd7b13839a9b28bb177eaeba84b9a31372b36e0fbe0962eeefc775ead7f77805c2ce0d6deb21e5fc638884ca9aa6653d64d500b3bfbbcfb9c0ed123d97fdea02adecce7c1ca761d8a5a33916c761eeb187ab876ba843ccd55de2b25aab6156cbe8e6b5a1b5f639edd3cd5bf17bd5622d0baaf63b7ebb7a6dbd5dfdbecaa3639d6cc565d9ca344ccbf47d10b4f606d5d070a0ee2f57bf65391a5bb30daaddb7ee6f45359c9b26ca9db98e596b35ad8718637c5fc3c07a06dda0ba1501e10f97015c370a2728af26f1ddbc7d98839f5d9804c6fc35e80a1f739d6a0cba9e7939e2629707b4712628aff85ce1e9a1cda58d7d2a295c69eef4044a12ba12d8cbfd8bc0d7951878aedcfd4769f7dbe2d88eb770ec8f4b48ad8872687b4f3dcfdafbdee7ddf2bcffbe6dbbb5df782784f446069e18b674eec118a6be90cb9ac4bef6bfec6d8bd301fcaf04c775409defc1e7f8fede2cbf040057da722bb9e7a60ef8dfdbaf55a1aaf2145eef0290eb1fa639f86dce062ce628e5aa8e7d70ab5bfd6a051ba8bd5f5d01cae912e07fdcc30515dbb0d3177cb687df046a073fc480d23a7eae6fbdea0b2a1d6131df9c760e0845b75befbdf5524e6d49637f16c7da10a58d6d9f6fce45efbd76e3e1aeb5af63cb1a9b524a6928857669c22e5f60a97b29a594526b29a5f4d27be9fd4bafb596725ec6c8b0cfe6d84e71deb4c143ac2d6515b695258ccddbecceb7557a57f46d0efd117723f2a1aa2d99d5a49e6a5235a8964a123a26b4b3de083dd7eb2310fec98120d7320e82af3564d87a8655a87c6d1302082805f48371b40f9880e9ae4e6b4c9e421dde78bddd34cf304de2a311dcafca60b9aaec7e80599c57b9629bac7e71c9a214d07e3d8cb1059a7b58bd8e7eee35e77ef59d79a2872b1d9ac81de4f6e3d56e209446f5aded50d2b6f971967e5982103dadaa377ec384f426dc1dca20dbc4d93eefd67f1b5518d6fc7d96f53adcaf38f72ceb32f3899e1fa4da153ed539bb4ce41e7e6f47dc4f96eb75519630acac5b9a9559d90d5985cd98ca17174b6d2c00197a21bf70546d0a502d2a0bcd3c747db47f1d6773b6afb7aaabb7bdfd3857ab73ed32b6ef6fa0ab955bfc8dcdc18fd3b74fca9094a06a010ad0cebd8757df8fb0dcb576f54d514d3de9dbe7d2fbae8467ab5d81cfb7ddda3c18e1b5d72471a277b8e397863067f3805fe77bee3f4ef177663e815dd4dbe99db538f62f94d638aa827f776efdd065963d7c7d5d2baa31b06dbffa1537c35fad56abef56dffd8aeff410fc1137ef74ec3251f68fdbd8bd3b61b5573e8efb388cb98712b463ee017c1dfcdb63fef7773ae732f389ee753fe2ee74cf6522f7ce3ee732b74e3beb0674725aa6659ec763611c7e9c3d6eb67a186a988eede0a78aaa632a68238475e336ce01eb596b39aec366d6eb3df7f1ee37d7ab82d86a50bf42fddeafe777f6cbb99dbe5dced5e50eb6fd0b44bfa11553a70c9ebf31b4a425a6a627a98d6eb02f8db6699bb6c932345ad21253d39394f6b9524f344cc752ecdd2a6d6e1e871c83399c629365766d9536378fa363da87b69b76eb69499ba6631ab66967372d6ddfa7d12c2d0c6925c871b9756c4a29a437e66df2e995d35a796b6f924cfeb0666eeef4b0f2ecfa50d492b4a8840cd9535a57a4090023170000280c0805c4223992c420148eea0314800b6c9e3a5c442820cb02711404410cc4300c03310cc3000c023008400c7206198ebd0011e3f2fbf082e744f375ab1e2ace8e0608543744b8cc64ef6ced1f77cda025d48224b510540da40b806cc4fd3746d030ab2272a36ccf0e8265a69b5cfc9f0f747372fcbdff773594a578f6110ca1449fd5dcec143c0bdf49d2ef0255c8ac116798824812c0bdd2d1c6313b8c33fa032f989eb2efc433a74f97e93506c0bf9392d8faae3b9b9b69fc03923df692f7369ed564523af72cbd5981abe8770e3d41b815bcf364bfbd17897867ba09b635f9ed93b879018af5d841a2362b44448e925a4f6d82a5738be25962bfbc07ac1ced743cdd825a943215c69ed8e16c85116f05204f26dd6678b0bdf36cdb33ffe56c45299213d5705bb4c3d1ca88820095140fe210512f018c29c468264c1e4af6bf1d559cfc3165a48cdbc7ad4bf6621cdb6932ddec4e8a15aeed3b2d804447802d275ec65d6e8165d8931ca89583bf88b1a285ba8bf07cdfb859a03a813b9f6cb061cd6834371000b524cf5593d43a3091c449197f04d21696895ab6fc4eabc4f004c1b277c109f4065a59d575d51df9281a31f04a97232a0aa8f67b6ab7e7101b6d44eb35a1481a8f80d09043f32e89b94cfefea95fe27c53e7b2f6b7f9cce81d9695568c5aa0fae8a061e6c81ce164509fceb0f8bee50504d7d63bacb5303d2a71d44a5733d3ec4089aa228dd938777506e6dc7898ff332b16a70f9870b4a67ab8865f4d89ead08303731442173377179ec6f46b4c1fddfdcbd2ff826c8a6644f3a984d3c05c927bb88afdca27bbbbd0752510c248c36d8341d3333180a073df6724645dbd2b3ee768d7362cf48a81d9a2fdc5ac60f23dc9e44671a811a5a141e9c6fe9057b7e976e690de62c01036a995ecbc552b905420a2841686455d5e8133d00e5beb3c5b236e0d1dfd843cc9e5a5a1e6ec02d3bf2f48075ea03a18639a1bcb56c10af364b3fa398c3d6bae17b008f78c355d8b3ea01e158b711cb0cace4201ee85b186b3a68fa9fc15573032d7f7e2d85e9999c9aa8ce18f68b016c19d3ff754d5dbbf14a4258eab4ab09f5c6d758ddb65e31df8eb2538047d8673be8be9d913ed94b50458077dad8ddbeb11781a03ff3cb202a5a0b9577b7b8287cfcab194d47020fddd9a34e14e502789e75ceccd7d225bc06cd3b5a395c805590f74b6e76313fc6c709613dc25bbad12b8888f91a23098d2342904618b6fa836d99103151bbeb2a90415b577742cc9a592c0350adf53020bfd88f64c8a9036e2a74582d153b9869737547df30409a224e9d96f7738ece148d71e81d9f2a1e04ee8fd30c2401f4dd09c22c0e723967b74694f19c102530885185c7717aa9bb465b0dc5ddd71107390eb18996c60b24a1d7fc9a68e7c9b43a6196b869f5c725743af04d166a043f8ecc7572d56668763e8995b5122b463a3b494150fa9bcb54e09df323b90bce21101c45d98cdaf8398e89aa24ea83a49b566e67a19136aa191276dd57da09bb98cf06fe8362ec0e1703e6b048f2b31d1d3168e458fc9e0564fd8745f721fbb15b5923bd2b95a7c26fe2c239be3788d39b540c00976b560ea6813f9a76dc13c9ba619487a35092dce44c2703e4eca7bd8ed977ac0c698cd2b3f79aea67b66d5dfb8851b62faa7d7fe11c25b67ae4569c094e32d299059bf448fd69d1c5a768434f22f3260ef327cc328a4b9f092f7553da4afd422f058dea42f6a24f49a256b14dda8853587ee199dfce60509093895053ab69d1c14af90c60d0c852e2f551ddb18bff2291ed304dec4a84618022b33e0ed3fcec75a0d3e6777bfc37bc18eafaa68aa475cdc41827be0c671b79fefff4455a8b52d43b9b31f69b6827aa5a89a401360b6d70f1f0a5c7bce8a93a36f33f581c843acb3dc90108761e7dc6dbc530a959c128c271d7ea80ba1f46f10fdab5045d1055fe74d623279fd43618b7f041b0d47d11035e89e7e9a0191e2d36603e32c3e0022ee456ee1332dbb2404a48d01d2db83e70063b6a77dc16c4f9d8ed3b0d6eed16d4dce48d86a80fb89d04f66688352bfb2620042a022c1df5409d4e198cc9c1886d653a21a5e70482c0ecca38d6851d39fc098269c9c4c741b1d1834f5a86795f830d83dea895fa4111161dce33ada67289832e623815ab55e1feea504475bc1bc65f831eec6687a7bed0083f839065998bcd978afc543620e7bfcdb009d6f16c6d127bcb10859a957702828f10621b4361cf3e3875dc05e8505dbcaaab8f6dc454b97b3f812c61957229275df3a7d91a21358e6b0ad2e64531b841c0e5dc93ddfe450c6db45734b5b868a850246e2bf4ca84d30b7f5b7685b4d202ebf8751772b231a3f6ac2292f716e58e9fca6f5c598e06c85aa981405a349000403124790e08d14ca0d6bda9b1b36ff0fc11bb2473ea5d0e17805547c97284583a890bebd73c8406d38cb4594be8fb20eafd4c8ddac547e5e41769c7c969a2b47832ff484a2680b786304f26b6541c9deec6a62b13b0a11a59e1661a6a4c9a30ce8f5fc3a3df6163590d16675512dd79507a53fe88fd1d09a8e019b80d038ac8a88108d0741f50e81b293b362b644a0cc103e4bce6a433547dfa8d90e974952a4cb3af60d90fa03d844fb10e9fd6f4979b41b615a9c4d1b61061bb58579f821bbd702f0d211ea980007af71d346ac701244ded145acc40861fa3ec1b66f5aceae2e92b20b0fd660cfd25a9f81cbe7272da8d063ef548bae23c230d87e0b272fefbe66543ed13110f0d9d701a7c401eecc69708cfe9c427f18be4cac8e05fc71d95ac45a089ae484a91dae9eda1ea7b49ae0262cafcaf650e720c8bc0189338f98c0f57a6468a26188c976fb2daa69ef5c48ff9250e82faacd9919c79ec5f9615097312643e715503fac6026d5e579b0bce07c7e94cce2bdaa91605da42cf83ac8660520172cda853cebbb3d7d291cdae41aa67c3cc7b081e2505a5f05fc9d36b44ea31c08c5d830f67c92847463f1a7efc2145cad83c0c729b7f88f71e11bb9842ab6bc8e8f0866239c8dfd66c25f0e7a8a67f0096c37dbc10626b1dccc151e1b5a83363288141b982c70aa0537942eda9276e98bbf4573d5bce0eb854a4625784156415e6082c52a318f6d29e1c53451a23ea899902cc7974da179e2a22e15f31e6ac31b10f4974552bedf2eeb453a01354d067ef75200c092019488310079a3a8bef1c8bd52d38049d2744796602e9b6bf2154f156d269c98d22d86655ea1e38cc8fcf34fec43fc8df5ce40b53e6b9c138f6704b3f540042654bbd804ddba08dea2d272509a5be71ad619dbe2067b98b3e25ed99c4534414f24fc5a32d67825e43444d7817f1f928ed106979e65af5cfde3551c9cd2a8b5fd38b7efcf268a9e9211741e808c64c80dcf33ff1391b6f4a54c5c481e3645089362234a7b487e38fee30042d356a88c2685e42dbe1275e267d06669a7846be7ea1777c43a61f5b6df42c0ecbe60dc21757464bc4c36caf45aa8002d781ff58c8ad1b73866e8cde85bc0d2a61004a7cf45c2541776a522c70396acd66c487bc1278ace3d057bc5fb0dc86742e2ce2b2e75e978b538de86e19d95fadef881515896034611c80c05599319abc0d95ba4b67a2af0a4c1dbe10e496b4cb86f040bfcbd093d9f328ab59d3e9ae09c73aa62fcd21c5289e840aa6909986e4370905fdedde5c09655860efc8292722537ce744ad506dcfb8231d81b30cf9466cd01ef18a9dd657dda2a2f6ff3f0af1b6f3febf40ff2a566f27e6c0401abf8975d56415a8bfba87baeaf96f742e72c16334b5d4163b366d2e024314e02cd6820137c527455c0256b8015c6a5c3f809a659423fdafea5b56724ac545d003edf2de1b1e01ebab468d080dd55c5eb562f9347e1d2822c219a160bf07c27364004d224272aa44bdbbe06eacd8b5e6c63f90f5498838a0f01e7c5fd027260a4b59c6dfd94440c4b780b18acd08d51807f45c70cebed4ca6da40d1bab45145ffc5d6a08b8d900ecb9a49b0f35546f220c10f98cafca7261449f08aeef0e2be8c15c8602d62be6b9256a877d082422f2283a3ff6845478d467cce7b86dedeaa1a1f1aa861dfb973fa289fe54932eb6b23711b65b1eb17dc2dfca155542af4d06d3e14d2ca9a4c40e56b91280415e7c8f8257a784dfd77f58a9ac863ef3cb3511db35f894425ac9f1f82447abd0d31f5de9f939be42cf9f4f184fbaa99bca33dab5a50402c12ab62a1e5f24662d29fc53038300f035dd680807d1e79f9a64b7c2ab8ef31c69482ebac6d38dbad7166c170dc38641aec83bb8dafbde5c620464621fba855b0d60732b0f0a532e18f073439c1bd87949fb160e8cbb59a125161b29df07590639c4ba53892d7db8c5af3720cd8f4df7e169415e0730002008a17191e68b27f7e941bacf02b56cafab1247337497b492e15f3a44150c7eae9098f68119a0250486c7979b4e7894309201f54b9f907a879dc8155af29b410a8f4e0ad9e290b1cb7e7c291205d304e2a8c5b406221f50bb731fea1c42ad2b82d5d3ff65112c506a09f9ca834e437cb58bdfa2e6c5fa968ae24d06eb1722b00be55940439e068cda2863d084c9a186778330bb0a231f4b096a4ca1daf916981f0e4234d43fa79246b0a40e18ccd20d0f0562e7b33b8ab97c1ddc073605738c8954d41883769b47e23d529da194c9ea29504fe52961da1968592e345ed180991f322c2bdd4f4ef520c711786aba18f48fe956cf5cdcd8e2eaced3890c5b2161c9b26c56026e0745e0c25e833a326aff3c85649cd0c6d9afc3a35b329d4198f4301998a6928d02679d3bfe9dafabf840c8b0dc92f4ad5fdba9e26452696d9e9b1327baa0620c56a4439a58d4a3dc1479067b79436fc27c7e0057316238c107e4d76a9b30200b3369dfd9a848bdbec18e6602db63569f2b091415987991138ca6f26f2c45da32019e751673573e78b8a26f9e5f66d9f67d37d9d98083f0ed40a9dcdef5652f40b7a280d0453500baddd453cfd5737f4eb681bcc4393428b0cf2206c81b9769c3a628e4d3479bb31d7d5e720ca179534106140018dbe67d28cff37854774381cba596fedab3740a03b6aa26476b3e3b083e48a58d90d0a83cca0d27305792ee21edfd48d254622ef5cc8ce3a0f11a2bb4d2fced46b090b83fff766d42c32c22a2fc7f0802df7a2592c307d22e5622272be4a6480c30a66b650697de4a5a9c917720c9889f920b12313f4c91bbaa7d0d351922b1d83cb9e937e6a38fc3f04adac1ffd5e4d436ef5e9440146ef607eee54d94bcf921ef5bef155c6d2eb72d9b05e9462fdd28ce4581b85379752c2022090caf78d9c6071db55d0dfb60eb49627f4fba5447461fa73fe4022c0237f915d9b464ea804a73343c4ba20ff2fd617f128cd601a5994f4ae8b28172d188938b8af53d3ee4ad4f25ca7f5f065e5a350a2aaca716bf47cbc632b46eb022a407c6c5225beb2a27cd494da0324c5584da9354a390dd506c8b623b68ab654ae20c3b5c524714f97f4596ce3fc9e63289b9322e586aabc130e986b703cd318cd364ae7aa411ec8ca8c0dd093c72edd3e927556ff084ba808b44c07300fe2491f464b1c45f3c60435add20a011fcfdb6fa9bdb720f15000b9c563705a8b104f83952af0aa9a8dce9025a2ad9626830aebe128256e0c4ff5fbbf020e914325f0b977204de8af47b6d21e25fad2cf9e19f804ed35522194cff47bb8642e09a567d5225bc4072871d205bd4a001bfecd0d2ddb9a338e8819d6716cb3c9ee3bdb64a35b303fd8cc5da167df256e32dff13af156ea127872c4e4132dba6632cfe6f6e39576efaf44200c9f5c0f74291e0ecc9ee5e14b72617ccb78625c6a8492dc2f33c8fbd96195dece0a953ffb4574b2cc98ba09f69effc7348af68d8b52b4545379428b88536e79f7ad3a3b2cf0eaec072e52d9f03c699ab41f63fad818cd7bb1cbc523299ca0fbe5872ee2bdea9a68807abaa3ef0fef43a6eaef8a5201005020e2b0f797355f470c6c54e2fd9794587fbfbfd6012f39279b8eb2231443381aade54719c1820e873552cd72bb41eff20b22f6931b0f253a0a759869ca33acc47ef57b2503c362f8da203073e60e34eb8744f1310ac9d965cb92f1f074b2862f162ed1a1095b642b246f8fe3d8e610de066fc490aae0e72e4a13cd57ce54f0cb8a3078cba789a5594a9bac4070e91073f9da21dd63446566bd0af9ab4971917e756814bcc2cd177d1f01ef19ff3b91048760e368f3aa1d11b128ea59fd8c790f66691ee72f89f3d9c9c25cfccf215566ce52c43194bf29612882df8430b157630666de6a88d5b8f8c4fc0362bb184644c7aec9cd51e1e0d2656c17ee0bb0a392180ff9544b0b3f8d2046e4331821f1360ab5a21552a212bdc69698a2b8e951682e67928acae80260e39e19a4b61b1ae3b23cf981a51c12134f2bd518e15edff931085440b7f0e05815d35ef282a2577f39338a55a11651db331d6b98a3185ae98c5f6de926e08501d2a185202cff25fe00515eb31f40da201b44561000b0acd925ed4f8212c39214789c40363371627ce68f106ed0f0834081d59783d8e6eefc38e071a0ff679a352e1a135b6d89eca517b1e50727bd78bd0c67a16a4a9ebe893c5f066f378d22351c34702ef6d12e119be300dd404252f7a3ab11c2cd712e4712f86059890bc862574a04cea8d756e6fe56674b05a1ce195e94417c636d34faf3e36a5920d15cbb780fdfe7cd3058ee9126c797631a12e0f058697d9d6c1e0b992dc28cf7df79fc0dd92cd57f07e43f79fed6376c06cc603de48bb4b4d20a3407f22258d2e0e2624c53be25b6dd4d49bb81df183e62902433b2dfc63017542d8843fbc0510e8881121ff432fab2a3d3691cfe97216102fae49c85143869a2accf9b0fdc14dd01f1e0b79e90110c31df53617c1049cc511e06dc4d2cabeeef69c326ef12cad1078e262de2de093144936cb0bf3325dab86806b736802d65dca812097cff0bac63ddbd3f4673fde1dab0cd58643ca7132b04a98cfdad301f625f95a119f5e74824c1e9fb8290a474654c9d05d9506af1130da6a9626d964a69de2eb915ccfd3d3a7d86af3a5c3beca0018f188c3c1cf2c9d3453b88685eac02b5cb1513746cbacd8ba07212d1a055501491dcb0b2919b5992e1b06c7171284d0b56a57110fd27b8b2c967e62bbf00ddf0f730dfd65363cb9d2acce7897e411a626c79ea797f4b77cfb19e11ad75ea0c16d8d305dc7c8874f6335f6986cc1a68cbdda235b728f5c5174a31be5bbe96fa889f660e7b4c61dd5bbb3b03642984eb9c5588ef9433852d7ff331dd5b24009b4c1d9f268ccd80fa495425648000eb68e80df9d63bd004b00ae4b4d69ec2022880910965456e58aa22808a4bd59d461e5e6acd3ca22a273b49424ed9d5dca60cbb9e565916d1155084de857fe3ed283c209a974830169fa914a787b63761dcf4cce64609dd39b933111b45ad8c8b00cac5849acb9e9da220210c8e9de9564da3acecffc8a0688ed274487cac62882e639738b3d01cffed28ec5c8ab068e50068d1cd04f03a5b1cd31007dadf9e67390f2770e397d12e70b90d2191a5ee08caa36db5342ca61ed010b6d1fe61f25e0126f82f12ddcbfb32cd4ba3569eb94bf10aeb6c27c56c5302cf84516fcf691997b34a29eb3038f94fc2abeecc68db887288bc4fe4422ab0d99993630f387da932e2e29ec2804e516dc2e1923c61044648a580f97cb63d086a4ba1be71d54afd4c755d44e0b5a1dd447280003dfb78f02df999c22c2b81009a69406cac1393825f916c10278bde5cd14f2d7a78bf36bc923a901b417268a9ce4bedc2b53c1c019a1d62da01c5463283de3b6fe85ae312f86a63a7047656cd8d406d69f8904a0b8f5d5f34a2960c4b5ceefe80946e90106a038db49242c99ad3aa3a58b2aebf913c97e16c2aa52cec4ab280ae288c90c36a78564145a28182f3ec9f357a885c143372867c5261d6c257d6ac4104253bcf5856e7d6ec19e5c3e107910500a08563bf31fca6f230b9b480d84f9a0d8da9a4e188ac026588aff5aeb1cb0ab972338da98cd619fcf1eea0549845d4ac9d38fd0d0da97259cb9b83ae376f343314ddfe328b327b19c1aaa411f6d5e1283d66a8f7a599482fc9deda8e59822e5c378772a95287009aa195045dcc7d97137e42ecd07d4c1cb942e4cdc2a5ca8b96614802818fd11a7f40f92585642de8da5eb7d2ee1d200c5faca557fee998b7732f9e3876b0649a284f3656e035fd3272053eee2a8f96c0d2f9054060cb53d7c34390ae05214888aa9d548f850f0ac9f0bced8935c11dac2bcdf6158daf6b305a6eb28237bc86b6e3fc60548f82221287f58955cb4a5a2425d770dcfc6a291356ca2d7d5634db4a0145fdac2a4be8797e9d79d179b8112fdf9a5f2d548d40227f3ce428ad326a096c60534ecd04ee1a107cdf060f66bce78f1db7b1241d59bf5a5e28578493d8c4796e1688e1442ebe9e177cfb6122bc1ff6e3d0d572ece08141c4abdf3bc86e5aa9d931b311f97cf26db8b615494ac108ba5a96086faadf72c61b9e0ff26d2bd064e55f8b3cccae23d906bc966575196d4ae8ce09fcaf55606ac08240015cf9a72fdcd429ad163a597d91b3ba2e88b44a1826e1daa7b25aba4f123e2b36226891c477b060002a5e4f61b5acd7b11a8d481bf1e5da6e755de2a516683cdc65a835980d02e1c6e2073c3464666919a301c635301f8f7bdd2f26794f472df4802d6242c141984155831cd25794b0a3230377ffacbae001a25186246eb9072a0a4e414c3cdda95a9a922204351d3429ef24fafba92fb6b5986d9b5de14e48c2d39f8043f4c97458516be4cdc3480a87998b4f9b17b1e1d52c87030531156a77d3fd83ae0bfede010bb3be78a5b22fb29e05b1a3e9850ca8f31ac86c5d70d836ef24eb792be8a54d6abcc4b55994c6e5894e0528d342bffa903435824742cb01f462c2791f404a10589c34b02c1b8335b0d40c1e4c3f1ceca2e77b430388c61e6dc806320cf2cb2b6c3ddf58d77eeae21b6611c1639626b3d95c60a11e1b7142ca985f4d93671ae20542c1127828410d5cf71eb48c236cee5f5c25610f5802be28835214eac402e87e95a837a26731394b184b8f20bad1f2433707e214bf385d13db855f3ee11bc04cc3ec01167d7a2b795ba00081d8f9a8fe00964217cc314a49d4a7592fbd9ae33ea136ae15af658083754a00dbc44b2fab3515afd3fecd7d250058ca009b64a7a394c959e8464f5f34aa73a08415c83df0cbf326f5087a80bdf9573abfb2b2b83581efb8847b4173dbcca11d220d9ceed1bb21a281dec79c6c3580a15167ce3e15276b9c78868516c014b3bf12698c1b80406e8813aceaf213a2c5c5305fe47d6a77b362e02fb050b74b7b0530d5c84ad42ac7da5f7eb2d838fefa155efdc980b83a22e2a961fe8a235f2a18876e6cc103a64b20afb6ade91e18e6d6fc2bd82a2881efc41481482ac848de0499270efb9542550931116503ed4dc6bc670f2d619d81267b76e359c06e00eacff875333c9111dc9229c8497a6627d9fdb7b829bf1207a46a59fb7fe2b02b08f3e1a958c012e5577a65a6adf40fc97a44c9afc44636beb2e4772c870e523574aea8242e785f9c24fe059152b373981efd10ddd301b71ef41ee51a9d59dbe1f14170c197e668c969b5ffe17771f29a3c5bab6f3bd969a9f40a5e62bfc332631cd86a0aafd474fa58c2f1dccff5954a390800eecb1d44882bdf17b4e2a1466a392344061e86dbd9576a0c21bf13e23cc142897f9e407de5aee82461f7e10ed672e55e3f482a5f59d84547967fa9013acdb95deb56e4c81322e86d0b6356acefbc60b007ea5d71193ed20d4dec6ee1374f001e9fbd69efbf2f6c68bb3f59536e75cdf0b622aba5c2c2a92f0a49fe30c55860e520dfbc6a531a3b650553ba6d2d15020207e40f8aec8145e7f1da1595aa16e529827c0bdbee505ab3680830dc0d92ba7fb03681b8e3041e66537a0c36805339cfbcfc01af46634e90553c07698612128ac82d2b554c6351a189b1bfa8ef388030efa8c3ef045345956d0e60b44d804824b3aceef9b302ecbff5b8c00a50e9171967662ca249aadea98590d688adf08db47110e12eb4f728ba662287e9f5b65d3381f26e2effca9bbbfe0f04dcbe4a8bdbb3faaefb8c8da8c3ba86d3f324720fe9bd66e2d564c733b72f6526f2ed32a2800befbc42611ca5579720a85b509b57684f5ed4877c419795e8ee2979027d33884c3bfc7ae23c126acd9f0b993817f2913a3d7f045ce071f88273402a62cbc41b590c9bce03c5da71bf0b9be6e88799e39e4120506c120718db303e308ff80a89f6d0b4c3ec963385664693d0472a1462854960b22f798b6f0588955a08f3218c7b9d24ca5b7f7605ee0fa8b9ebfda6348edd03eb8db7e3f6c78fda08c57d0285a1b8f718415681bbe591841bb69fca6a9402a2a5868e9e9a284c072e9695d890a90c76092bbc7684e2fdd72295575c693183d4a2dfa972d6891c9e453b7004e020d02bb173638b87bc25f0917742c1436f8a8cbb03d46fc6f95f5ba0bd264c24fbe47313ce518bf396926ce93689cfb4145029ba1e1bd3d8e6502b77782038a766e95383b6882b093d1993f7fc6063ae3381eab4adc1de0042912864b2aa9af856be50ff445711a82247d412e6b4c472dd53c6014b42568fe7f9ec94a4650de10b1b4f917f79bf42d784834a9c752e8b11e5af789df2a1779d249fdbccf89bf301a60c6a419788b41d8508f22fb3a8eec6b1f1d7cbd74334e6bc18d472e7d3a154b2130ea2849354e4a37e30b257bed5c5842d34cb32119a9f2d0b216c4d1c1c3fa7b75f045d7f0b27682457c2f4fb778b630ac9787bb9405f56b7008de2ad3aabe40f2cbed20f76e0b54ce3d17766b4d0f98bc1c90de08217fe135b2ca5f6928cac88185a35cbd0d9782c8d17832964dce212506118f361e674e7a9b30018e2f4d5486cecf910a27fccfdee4dff2bf5970f932b5c4e436ce79ca7f39f97496a9ddefc596adf816af1e0af8e4ef6f762824175c5d4622230b887a99621ac3395323a12c41aeb7622b1f1c4746714ab8af42e26f58d48d65c41ba21e94184846943f14dda9183c6a91f0c1ff1ee9eaeea81dc55594a4cf4286e6af065e0664456e964aff7d6da6bf989be30dc453345615ec82f86c0a57858df1b75d964f07b7e382803714eb1a0f5a4849bf3e290543209b8be20d32607d8a0419f1ea160893d99230fc6104a2ed61a55d05eaf1d74f086d3b93f5bcace3a8994a138a80a2c862102a0659e351dd8c34867298e57a9e16eddd498956419ea248d6102536bcbbf9593d46f09c70d6ecd84fc9506a36cc54e39980a9e37470831915d47e5af29e0b132f2fb5dcfdf2ef569ef11403696d3fe65590bc7d258008b810e3464d14509c667db99fb87d5b5727a24ea8dcecde2e0f65018d91d648d9e88b40e9e837bc5221b3fd8c37d9c4c8ca98ea2e620e8548f27cbaf3041664d936edefc1e6e3d7802358a10d9c3b4635d8349f3958d95415b3d3c09a0229d67abcf4604eed93c1dc4d107d6b13f6935c7ec124ea080084c349373da28fe861acbf053a2da1e0cc81340fb295100d9d03ba3069c699321f61e0649173c5ba343c662729568ab0faa939cc57ae1d3353ab3efcd3a78f29689cc9c92f016c8c82d63df8a27868dde18c8f466ec1b053125e0f1914d117cf822904f6e06f4c81973a2a42d5a6218f5089b31e5a62d6646069f89ca3cfe9188a69b58177e81ff592ccf8e1986e39913e80469517895ee8e014caec57283359221b984f036a4208d1e022dc5ed471faa5efc194a9506a866a3708485d00fb272606777e1004f065af9d27526f9b3f32c21c88206339cb0a070608e16f8c7fca7d9ba8355330cd3c208c23fbe5ceae1ae53180c65e929a4d63ba0ec2f8ac45eedc69269000404a8a08b8cd80b010409d9f2145b602e3881308d2063bc48ec3395fcdb9060076a3f523b39a5e5caab7517296f65e29194e630f40a100336a932d724519ee005c601665c614788ed92a7f03329ffc92776552862151faecaecc1372396edfacb781367a98e81a92d3387c794acfeb33b367d4d5b178828323a5219a2c4b4c6ca62babea705e7413b985f8e0cda0481b56a77a1eece50f861e9f96a64948597d5e3c621ee9cfed43677344779d9e1a9e7c23a5166aaf70fd86f275392d884521aaed95d8b2e1cae97146024c1f3f7b283c298f92d914c8b037eaa7badb599fdf85de2c1bff9cc42bebbd2037fbfdd7f36b6a7b86b4ca78efe1bd4f9edcbb3fa8eada3a63049f1d210565d63130d13942adda9197b98b2471cb8b33fa6fa5e4ea3972011caf3804d0928e3e30a40700388ebf0c05122f8b986b9012f8c2fc23d0c0e86db6520a08b83c7dbad37273602220e0752188c3fcc7b2c516d3f87637adf124a14b4bd8ac55a01fa527f93a6c5101578cf0532fe05324868fd9536e5d5c5118ec5adcd65aa50a820ed826c819a8b9c260fa0e2b2e7689faa0592b7b91bbf2b40fb98b55ec6a2531edb6faa2e048503d77613b105433f01c8e069dfac71987730a6ff499305ce12c2408846904480285f0cca9414c80751a0ff51a28082f635f76ce19a89e273efcb034c28f12dde25a0512e0614184ac58e14e882701f810ce4eff5746f34758f7667557f6ca9939d8fc071ecce04e1f36c1d48aefddc557f830438b2c78dc2c479b24573f170e14fae8f3373db7f6c829c87bacbdcc3bd0485ec905e8ea622c810845bab411d592f068e2c059510abc8ae4103a2afb4f5c4a11ac6f8dc318e38f5b0996cc61f5a555075b859698b19906346b4cf50a5cf104b5a7b89b6659be92cc8a04d9088248cac336844930658a486467cce9f2b6dc226b88c42ab2a8994e230b8fd119018e5d453c8b527e0b2c42625ed46991b85eea5ea90aa833f73fc86cd2ce5c70d7307f2e653d8a61ab2d2ac85f63d22c814d412c2c7cdfd4079efff0a75edbed93d3b01b6264973dad09bbe02dce6ed3db2054f45ccddc6d5043d12e70aa10e7017fbc8958a385ebc2f5f43242517beb05cad60ed9f77e3a704c7d52176250c659afadf760946c693d77e82fd98c6262ade9c7f43629a6813d546e32d6f26fcd6c3255ac2d16353b501e2111072bb5d41056f9cbc40dd38ea603fd593c6e6ce2260e534beaee9e5b38871caba6113d3ba1c46bb20f195f069735f3bd40866e64f2b51f9a07082805244ea41f33c386977386e862b89036c813d8bc71ce78726fb9211822549805c267a023859546b48a030461c0c2784bc2cd50a576b00450e6c8c0a37b665b618c86dc07f2469700f1ba1e165b756c83a924e1398b92bb189a38706485a25d5f9caa710b8fae397d2efc28c4cf11b01dd1438a215509fa06d05a0aa256790e0cc526622e8cf0ede64123f1bc296ec6651b83444b8c5d11083753bc1fe2c8332b2f02e3fc79bf98333b66328e7679733a6e2189c007b994547f72a81f0f0c147ead939a2481e54ecc861841c073a111eac31380deda8a87a6f5c270077d03b2e04bf1ef5d862a09cdc1e39a832b608ab19694340239414e6f16c3b1515a698bcb4825809247b32ee4552540f445b1bb2526ac289e9a39f86c8cc2135b112665c15303ed12456452362abfda29d0b9ca5187d157ec876ad84c5b196f734fa7dbe1357c7a03f8022e68565d1a371ad3cbc361c1954f269e7ee5b412a027e10f31afd548d6fe83c17dc9150243d1c56e6d94bf5d257568a0353055488a2f4b1f794ebcb82cb8ee973bd428ad4934d18d02fb7407fbda9fed3a453bd52cc5b293225c88e5a3748a4a7c21fb51ba2741723c8343914b0652533040353851c8b897b654d51e622f2c6d7b1341187989be05d8069ffba5e61adeb73275248cb07c5eec40fe33516ee9534cead05857e119bc192aa88736c34e8cc6d18837476e0ca228d2f924dadc64bd2449bb080ae705b74ab60f4331c12680a113c69c46da2990d6b1c5c92daba8e40246bdcd3f2a4fd56d8151ce9a473ba345249f1cd645a3c91394883ae49c5e558e0749784a08d6347aaecbe6bd1919d644a67a34bdab68d0398f45aa7067952f01a078604c2d5592caa405910ae886ae1baa263715705caa2d802cac265c1591a74982bb816d555d8889ef4b855caa20397e4ac357ac986c4bbcaf134486ce23a5e48c9db4f2b6c4023216f128b38da624de34a3abb578b6f2bb82c7454a02c8a16d02cde57bc8e45871e29546b3ab050304ed8b52575a48ad601410238f12618671749a4ce9913598c57e1b7606c1653569220a471e89380c215c645bab9c016ff166c0b2515a90ae215d1577c51c16db153815a41ac02dae25f2c3ce59052d04165269d9dbc56d870279d6a5e2ddc5654a7a40e835ca3a2b965f674ddb8c28c9551523f2d51151c3948f16c50d1a4f81af38a1d167a0bb40581c547594475914cb4736df10c6e524ccec66bd2642b898533a092106da2e2429738987488052295b4725db3b0bd0e69dd6a4a3cad301636d093e4d138a44800cf758c01a1ca8e3977e86090f4e4d2704d5a64e3e8e9b0dd71a4ea3e68c5667fd2bd164c85fd4b9c691fc200068700a594ee19f2d46b3d3b795c005ebb9ef569380b7253ec2fd7d3c63af5bd103e0d1146eb58b02d4cc9e219e9a48e2d5581ab308b0a8e19d2c6955890b5f05dd1b65058816e41bc629485db82d3027716b9a3911eb5348b9cc55bc2b0c37b4c4ed4c2c72c00f9936e1bd0748bce5174fa38ce525e464bc3b0485b51448b1b50244407520ba8d124456c1ca5482a57ab826ec5472ddd4038945a741d959489c6219da472691645afa452d7cd9b28688e9b94fe8a10c340b5dc242bc3b6b6f815118af12c070f2f432be6c5d475ccf64e767036a394ddabd0d41f40aaa7ae5322d7bcb09366fc4a9606033242581d5015efb3e8682755dcbe53618345a2bc715b44db22aa8214dad959e092851a69a477360e7412bc6b5a74b74547efa05e12956bb82519d2906d3779814a7f72d3f8ff843a73e63a8c9040ed68af45eab54c85a55670109154c5a5414bca6fd925d0a6bbc2141650d393c0d138d024f82e938a8e85ce02532d3a8848a0ee96a721f55aac8a74e47fa7c9d0d563c510aa393971c58d85b73327a8ce3f809242db38ca938eef3ab2a490da9e05a505aaa28a3583108af2a8e89523ce4d498364dedaf528d732085900ea6c089a82e2d0d427d529a2e170172c41a4854e0c1c387974a414368e05fb0a6500f42f1501e4b5027ac9555c5e30903a4e07aaf1fcc3705ba0e818d575f45c51158c3f1ad48660891f5585242ca1049d73c432f040345df3aca1dc6ccff30b5da40a186e6518664db9c262638189a008baf95498b8c363247d1f9e7fb440a64d5adb7bef2da594522629036705c205e70514535cebacfa335951d226ba5821f97f4600b1e57f3fe8d9c48beaccc5e9c5c589e70ae6e29cc2c5fc9f0fda5539e8d18b647325732c7c36b51fe74aac39b928deaf037a5a19fbade857849e9bc64a90bb0c34a94ca0e9428918bfc6388cc1f57ef431585f03edbe1d0d673e273abf78320163fcf7fabdf3eec03f87d417e7e7dc3fe5d873944173c53d855d9156b694a68993c8f693a2ef636badb5d667eea45cfa9980bb7edd24c6b87beedebd97524a31eeb6a71ba7b9cfec71aee8bcf89e46b3baf24784c6a7faa5404fce247a5feb4cd7bde7795aebf7915b8732302f447f7e9d1fe6b737b23138762391ad3d09069498048e5e7a1a0934b2b551f7181c2bb7cd74f22b95f1d9caa0323e212d7fccf7067777796f588dec4a3d69abadd6da6add9168bda59097d6b66e8d784adaccafc20a958f08dd7d42faa9fd9c2dff7492e1df18f30dd65a6bdd3b77d72fad06a5dfe8c2314bef66e75dd779672d12bdbdddeefd1dc7183fe9333857d72e1165872842b21db614cac2da358b6a73d74a8b5f86dad32eba3079b28763f6e9443012bda3a9154e3a8d2f74d00f41314fe22aac633e57e24a3c892b7155905863ea8af40e3925d1f739d9635c89832619a3817595d4ae502ae70cb528aa947b4a1806a5fc32bfcfc589f2428fb3e53e533e5354b545ae20b1c84f093dfefc16249d72b24044eacc9fa94741dacc9726ff82d0e37c4d31539c9c52cec8190bea525d929899fadc755d0d5d0d5d9226ab6f872f7a4e978b0544ebd3332567aaaba14b123313a46426d3a206fb27468d9deeb1512f89ab2c06a50567cd7481a1c71923da53f2cc9f443467a23dedcf20397a92184fe238526ed1639605eed4cae0fba6db0fc8a995816e420b2a2f7b1ae2e7be8fef5bb97be9f63b140064bb1cf7dc76ef6673b6a7db76a9a63893a7d6add6b7368c71d19eaa0954ca2638fcd2f4aa628a0dcce1f5f8fb3806c7edf1bbdf078242037ce4de9ebbee6197bf036df5edddebc960e722c7dd9ccd43fb35d11af7bd694eeede39675cb44fadfd0dd4660ec731ea7b3dac727a4c870fec508096b3b68206a670056685c8a31224c5d501d1da618593a8644071445a5821852013e0418f922836fa1ddf36e994bee61addac66434a6dad754e3be74475444156b11d3ddb7bbfe3f4b5eeb9a9656df4b3cb23ea4da6d605a133f7e40f32475cd835f15506476f32e9d4418f32363f488e693da4677e929c31de2bb8e89f4210173d5677e08c7048a4d0431a0659c5629dcbc881b32f4d332da2ec09c596425bae6cce3f56a5dc54c00e17a500b9e81f65b6f40eac265305f3f46548b9d0425e8185090441a10123fdab801d2b7c7b27013be8f124d3238cd9f1396bf598aa67034d70d1fb1f7d49681a4a17367d28324022beeb9519f528a59eb5d6ce5187d24592f4ce451bd24a7d546bc3ef89b6bf43714ea7213df67beae8d5306b9af57ab839e7acf5498f896c8bdade9cd45aeda98422e3ab169e1c077e1961029cc67fc7039452aa6b385afad40710ae823ceea628481930fc0df193dfc777feeadb02737f4f349616636cff4381b652c378b396dbbacd480ff72412e97de4268532fa85901e3f29c4af5f7b23db0347a0064920e7ddc833b2bd6efb0ceed06abd2dac334c74c638e39335429ba09c538bd1f25f0d9c9aa64d0dcf39b9accda96170fe9559bb534e39e76b52863dec9e12fc74d044f628dfe2dff12ba5fca868134c5e03c4456bed6b3ba4ee2f89d67688accdd1c2aa7d0e47f9da76380eed66ed6dd634edaa6cb0052584454c4807573647faa668e9f3f5658c5379a59457e2b8f77e1766307f25f077f0be068e39dfdbe3ef17c4610f8bb59de1fbbeeffbc007a4d7df79d64e7fad2b70de7d2c3de6af9b79a72b8cc14917d232db52484b4a48364515211d00d1755dd78d01574e229c4e88414e0839fb891d10827838b1638668012f20322f07c0a001356011784190524c852652f8643f5658a031bb800b5af8e00526501ea090b42015935a42a49aa1ca61682563e583100b8615040b5aba45441517c93565054023a0255410e405b56009a28ec889a017f7924209d8069b54a460c6b4199b5a5020cb322ed2c6a9ccf06c7a91c42cba2f2081b228245376aa2e9136aea2aa13481dcf61e5ab23a48efbc092366e02a9e341481b7f6f958ee8d1631ec3e238e6cb209f491dfa2e25db3ab7cae51a3aa252a284e4caaeef2929bbbea780d8f56daa8aed263837e7c37f0eb15fe407efee394be407ef2c6de653cf87fd22201d33a7398f2ae78751dcf9a517347de942ec9766d0f5a58ef6f52b77c1ed35f087b485e394f907fe2b6fcd758a4104b4e7dfd611d40e61cb211a627b2432adf65c9e777ecf9c534a9beeb3945976520347edebcb36fdaf9b3ea4bf8fc1edf3e51e8f9e34ceafafe9984fb7d148dd33b473e61fefe3af3d130b9923b51e8ff91e8ff9f7d297ef0362cfc7fdfbd3d34164d6fc90f61ccdac02d9be6f534531c088b6dc32062019561ca9c6718c35dd739ee6fe72a0f7246b3d2f94a06977e068b9cb5d3cb722339bc8b7bd2752b7febc992c6dbccfe0e83950c38c3e8fc6b937cf070e37cfc7fd30879d8b1ad4361b437e58b84ffa22755ffb5de7f9b8f649f6da273d673ff7586bb911e83d97b7e740f916f47e049ab6573d1fdccc725b1bf5b724381864a41ffde5ec99359dfc6985f87ccec11a0af131dfc31a17a76f01dbe196433048d953c6be943a3f73b6abf69c36b76927d6ee363f87a63d6b1c870da5cd38670d8d61080620b6ce96432fc8f6100daf0db3e5100d4ad4d4489d21f3a5b4b97fc3d1c81ef15fc7e3f51212e7a469d7481bf9ee4ef84f191ef5f1fbd43bb70c6578cc97ef3343aabdacde0fff1916993fec95f58642a86bd339706f5737ce9bbed5e971325ed775db7b1dd7e3fee653730547fffb42d7cf2fc0367eae6edc77739b3e6b07621d32dd17a923f773cb39bff6337d706191b9e5e3afde8ffa392c32b7fdebd15087fc3bbd1e267965dddca453f8537feadadc94d4c38df03aa9e353ead3fa5408b53fa4edf5a9113be7101cbd2f9b6cfa5586edaf79d9f4eb18583852fe893d1f999fb9b52f52b797ff43da32e4fe7a3fece3fb321cef0fe1a1b705fcb5c7da3bbe4f6486323da810ed7d037b8212ac5e7551fbecfd90b605a40dfd41c3d76a911ccaf4a0fe44e6be6128a43e91b96da8e367ee1ad624385a1f57a99fc7b8b2f35f2e7739eb931c4fe2699e7ed8d83334a1466989fe39fd8830d0094ddb94bea43f9eb06927b5c4316798dc2cf1571eda8f9aadeef1f0b0c8dc56f2b091dfc1cae3e270f4b76f85d83b85938ee36796527a1ceb1845e6a661868025a20a21c6119bb4a59018419f97efdbe2fbb870994270f1712124464a288c27df0e3610649d63d081182b31585f978f0b0fb6140a8386305056c8b468b142460118ae78428754173bc8a2e5cbd0972a52c8c000e20ba04f8bf785872f23c833bed4801fd72342a8a098e0200c20172ce1c9b231bec4b04597052686186079d3e3c74cd80086143050f059f19f4c7cd31724f6684ba12f51f6f8276f86f1f32cdb5f23f10018dc3023c110155a2891833dea4fd6c229cbe9f47d39f8bed309cbf76171bf57884ff09b81761c68f9313dbf4a9dfcf53da983bffe6cc03787e7be8f802d83effb6750065f3906fd167c37a094625aadb8b6cefd552c5eb836fd984fc88bd60cbe1908717145888b594be88bd527c5f7c172fe3e2c9f0dbaf0d20592ef06780915558238a2871e42f0421545321429f9a2b0c1a763bc84b1b91401c5e904c50785fcfb3eff3e8d7ddf7190b5481ab947128e0e2f339034178c81a6b1e5e6a1c29ed4ebb1ee9f471a7b3ef1bdbc28e1787f50bc00b9b47dc7613fc6d60a24458943879724a428f7484f2b2f5bfe7415499d59e425b5a51097d4964b6c29b445158a82d44141dad0b0d66a2da594565a2ba594525613a9339bd418489139953aa5019f8d511affac3d0847fd7dffa28c701461c2f1b46114e79e4e22291cc51f85e37f77e5b0ed4f55dde7acf5f7fd773f8a5d38deec1b20e6a144abccd2adcfb5e753221ab4e70df0f25454ada88aaaa88aaa28ef6e8096a702590b64812c9005b240967637c0ca53671447d25b67b7ce6e9ddd3abbb37d03a43cb685b16d61dbc2b6856d0bdbd6f6bf013a8f8d511cf9a79328fe7f9fd634dbd8be014e9ebba2396b9aa6dd55d646f4416d73609e73ce393a6ccf1ba0e4b9af02f8004cc049d3d8a9366d1265cb211c5401d8720807d6ae48244e56d594d4c9af04101011ae205a3ee42d3d1f6de710c354f4e64614ffbf4feb05481eed779c1295acd0f335b096b4e89183a960947ece5a7fdfbf28be460e16945514479b6356652936fdaa432bc9f498fdf31ea16861a7b231ceb9e85297b9e936e25387357de0a473f4390a7ad345f17432f9cc0564f9ae634a9b0ac4c7fee8a86f5fc7d4c14da7b24a3be313b375843ac2b9a5a723d32b45943dd6ed9fb71c7202c4d65a6839e4a4c990131b869ca0e4735ee79c2a4889e594b3b3034803ac5c9982aa627497ab9c73bae7607fa79c9d1d40aa58b9028bd15daeb5aa5083583b8114886450ce2904af3dfe04540892822c676787a9c68497434eae382b46775983e18bd1816ce68bd95ef8b098ae990f8441cd6451146446827a8cd9e6388e46dacc9f13ecbc1e1a9ac4212757f6284d342f0e39e9020e39f1b267329c70a51bf8a5f75e0bc3922a516e98816008fa0595255c97cbcd224b141b6a0a05268e6c996245104374c0beb0c40574cb168cf1162f6616594ef64d2fbee9bf0827a1c4bee006463c51450e1c58f15c141318e696279b17b1c5b460f89327b4e8c537fd17bdf8a62faa5c609bc5945bf4a74c4575308a90b2831f82f07bef1d63df25281022638c8bfec489c0de28f74f398b04a214dd50a425e88a23c4f080eb4fc768fd04a67561e21a226fd9b2e54f5c09ee9d426f78e2058b11615cd18104612c99c112991fd9a28b275f4a108417487af812832ef97259827242632e745eb75f5059822a61d222012e2a2a426d614d07a30829b37e616d1653bc092784141e98f560e5082dbc607204a571efbd5196e4800913f6de7bbb38618284dfc0640ccf62df3ba516bdf8a6ffa217dff4201342a45058a4604951f4a7bb837df2ff271c84e70c4b8068585244146e79d09f8ed11a63dc4507265dea4805032de6122634982c116ab0c5941dc2088aa24aede2862e95628cb95055510d61243898a10919623650f9e10375073f04e1410caa25a2e49a3a00143fe0b0644a952642e0454503d50d9c861c2421e2210a2c25d8a2082866dc1633862e4cac0cf75e2e2a2784c0a1ce9860318466830996e06284163cc8d07a428b253428d19f8ed1dae22318639dc5902a0b174dbee9f5a792bc308b0289193ce085091e5cb76c8c9f1ca981c5d0922e6a5ce1a51bf4988de439dde77b8bab44c2a04d7fba58f4f36bd3223f78cf481bd77abc1e1d534aa2c7dffb1dc737b3dd460c37efe3396a0a8ef9b3e723ff5322b57a3ee6b665dd1e3f0e7d783ee67b3d59896acb2cef63b0ba282d38f3633efd3a9f7e8ce3908f393064036bcba124558692acb6e6dceba9f5c7853dd21f1af0af3ddcfb9b4c467a5d81694d6ebf793de6dbedef76ef773a7cbbd783669cf3dbfc74cb2a5b124d2b5b56cb651e3b5e65f2ef9ebce9e7fc37ff3d421fa78a36fe8c3fd3b7f62f8c0c18183d23c6d3318336ce38302804c6eb3173d63994d93ebfd4e11b3fe77b876250779fe99463070a4156684106d50e521c8707ee751c80755afea0938e43c8edf4bb90ac793de65092d4a68ff16f3cb2ee6c48bd4e49ed2868f445d09e1fabe1b5e78ff2ef7bfeadfdd6c2d11f3fb5457ef0d6fc8678037bca9fef43046db9259257e6b8fc17ecf4a4a0e536fa55c3744875913e0d47fa9c05291d9f3ac1491307ab7999886682ecffe0e7a80371ee92e2404e85d28ed2dab9d793dda5fdf5f2fbd0b73de8572017a9b8a899aa6ffa452a301a915b56d0b4adcbc77e0d9d8a8b210f1bdb86ee72d15f0387d83d4b478a288ec73c668281e9117449065ff881513cf83450882f96102c168bc5629dd0e974252c9ecfc8ebb8edaea44e7dff9b83c4d16484230c4ca9a4c315295cd551186e214ed190de1087b11c86d65a6badbdf7de7b2fc618638c73ce39e7ac699aa6691a354057aa428f9468ccd9da0c70cbd2079ac4a1f1f26984d70949e3ff81963d802985e37dc12e2c87233db27d86f755e3881e71ea050404040404048442a150281425e2743a14509db56c6c55aa42e314a594e2144ee17d5ff7755ff7755ff7b5b2d65a6b6decc66cacce72d6fafbfe45b1026ddbb66ddb46abdd712de7486d54a38a9e41306e697004e75fa242d7b7b2c445d31f50eeef5007e7a620941bce908364916bca580e1bc16340e6e14c3e7d345ec0c6b5958e460c0080dbb45c4763064880d1a4916747a30be21d8d1aa0791142006146a6061e8d1b08008d4802006c984608332780f95e6b2875e11907a2e726aeb179447398a58dac4485a64024a52971d142a06cd9b4fd04650b25a571246272c47c0c8fd502349e19374669265859f626b9ae4d698ce73377924d6352d2c60abdc5806c302c34e94571744a06cc36f25e52076fba758ac27410c5993103943c1394a3185d8d6294358ad1d628465da318d02816348a05ed31933c465ab98cb4f21969e545a4154591563445a22ad2ab95c317e9f59b86a3b843d22b456966a82d1cbf942ad4a9934ca414af280d2aa7b4ea5b3d4b6cc162fe5424ce5ea683601b4c3c891b4c07cdf41c47b14c55b0d5a67385614e7aa536a53a65654516af68d1a88336fd98d24c6fb071836dfa31797e0563b4cbb8b2cd362d59a147ccc2ac92167abe56d2811ef1985914a77e38e2960c31ab94859ebfcda6ab3a6cb666791669d4977ad54926c61ef6bd6293283683805039a555df6ad53a1589b3977d310dcb2f1e9b79a40531abe5020aba3c2cb85029d5caf2cc9605ab2c0a42a5542b566be53cfea2fecaa31a42b1394f18e0c7acf3a33ee1c72f07e74711c73b4cea6c377ecc267ce2e99d2565d6df8b01f829933a9de9c71bf137feb49421fc7823cafff40872baa48ef7f35b903aa3ff7ebc91255943cac8190982a4f1e38df85b6ba97f47ea9072fcfc2c7564a8620ca073420e0e8e70bcb96142010850c2cdcd006c6a047043239200001b372384e08b7003c28c4c8dd2cdcd071ed0193031e08ca72a1818158c0a4605a38251c1e400310f0c38d2257b3e25aa95a81255a24a54eb8ced61c0fa39a495565a69a59d01720f03dacf71efbdf7de1f6f6680ddc380f773488c31c6f8c79b19a0f73020fe1c596699659659e6fce3cd0c7094c3ff6a3fde484d6a52939ad466689f436badb5d63fde80da9e01ca0861404d0a726db025bc20428b0f52e4d0f19b2cb312b61c6a42c539705e41dddedc88e23ff73b5e370e0b2e6ff6be4a57481d191e93c85da6477dfb3694db3d1dda9edad3ae4671d1c7566ba94fbb8d6a5853db97aed0fe43ea0662d3cfa06bac2125ea61e5de714e8612499bb9f3094a56684c29a594524a29a594524a29959d5c62eb59df4aa75628a2fcd2b02ff6323125e6fce913698aa6eecb9cb5febe7fe92fe7c1ff82c564b3a28a52ad562c56abe572016d2929516ccba222d49654c56ab55c5b4a29a5c364338992524af9524a29a5e4c9896599f6d947670e4d8d399887058a435bd9a581bea0279abd66bbcad9e599ad299b15a1522dbab2344671e803e5199bb1f9b1d8ae3cbea238a89cd2aa6ff52cb185a9bf5274769289b1877dfed2f9d3ff897f12f3c88650300ff512ee6b9ba077fd762da18abb4a9a6d7ed4353f7e021037cd152f091700d7c635dd116ef863067fd4ffe327c28f1fc278da78e6c72cf3a3def92b8d220d184d8636438bd13cd03ed058e3696fdb7f7bdb6094c66fd0ac6998aff4205542e6acf54780b0847ccafb26dc154569fcf300c2316b9b70d45f4d387e2f80707c3100e128d284e369b790c570cc9a8470d4dff76f0a477184703ced3a0b5da0eb5dd515820b0419c5b12d4ae39f67c2316b9970d45f8d70fcbe148e1f9b6ba8c44dd9243954340380024316000028140a864322a1481a864922ab3d14000e748e4c68603c9147c31c46511cc410431400840000000000106294527236090435610d19301fc342bc15e6da64a1db8dcab3c79abb271ce55a70e73565f249e46a31711d53212c539f81a7141d9e7bcbb54d8ba39ed43d09da0cfd0f6a021238721a9aadb719433849a318b01f27507a3f09e4a1040165f39396091444d321636b40791745283074cf44b5fb03f30ce6d1a1a6b9a3a204a671a1609740498c7b795074e9e9a86ce37b8b9dbfcfbc9ec6f2874b4f9d145dddcc0fdb28212b10fcbe9941522c03ac8c2a4b39a50d7d088673bb7c8a0c564e46efc236b5a7920a9d5a1869a8edd44f7db2a8f624d2505b624785af5de529645923c16fa9ee74513745046db26d17ee6ef941e35667ea609795b3ae67882cb373f44f2887e236c867e89121c12b0d6abccccb8166913e239b793ce1b934f5db30c2b884d105f177c1016eaee8bfcd27da05e0932a0b337b5af8360bb2247a9adedf5342b46c407537e3a877751f220c757d38e119a637b882b4923503d2c55bc48f99379f35843f39498e77a61261bc10efb08662561bb0880300a90d4dfc98def195458aec613ab2491781b0e983556080ef3cda6c254b68680c20a146d087291facf3d8641bd9cb5bfd4f01af16f5d3124e35d8a67a42c23ee05b06433cc7d1c426ae0c98e726e8648d77acaeaca4786e41035c14067a5bd74919080705f698ddd98ac5da7a3fc7306902802f9ee0748f59f3809d02a81a0cdb99a03d10a7316bb638ff351f1c4a97fc3c753b7e25adac0a4ba5fc0cb7f37e93116d8c249386d252cde7fcebb3f71568b190970e9461a3188872add2702f537c43133f6f04270cdf4dfc5847bc18fcd9d34fb894095b768ff8d6831f65ed4d8cf31eac58a4a500acdf42e17ddafe94753d27a416ea278681c354fe118bb79dede81a8284ba7e50099e6b9ac617821550f6372dbbf70d271cf95afab170f4abee2ea5685e0ec326ec3bbe9fc67744f783d61a8fe169cc19c62bcf5b8214af56fb1d8fcf061da555b1c97b075bf1192b4260749b8e2767c1c97db7fcca97fc4b4affd26367016a89e7db069f7ce9c1e8fddf44da4ffd34229d3beb099e611a70f0464e3764bc91476fe6592f7afa7a3f1ac8d6d53e7ba2ffbdde990cc22f30c8506ff4954aa02860f6013683e8b94c1f6ef45e753998affbabaacfef7102be7f9d1464996c3786579778cacd544824626a9c3dee168e53961d5c42d58a57bb0468b905035ec21eba545fb6e01b8530611bb9ecddf955704e8e044ee7e86d660e1f4c6d03da124c39f985ff00055bf37e58191ffe011ce4a5815063e320152e42f6935df76054aafa4503dba412288402eec9b01149b9b15f86ba7c2826c903ec09b52125343f539a3f92af97c243df631fb85972ea65a104eadc2dba91f68d3cd5b669a0c252c04a9565b984f428c2106fd81b659262efa176f355be02764e37f8f4db31e25b7ecfd674c49598f0dc033522aa20653a16a8dbc69227a3d677b386fb808530657cf92aa65f762d3f1a35300fe955b328fffd9545b3c956a6730f9ab8fa26e51f48d8a5fbbe0fd2a3baf7d048d66889932bf8c441204619682b3a0121d5e6e6b3b11d64642cbecefbd92f953459bc6833c963a96b39309ff88b54ca13932a20ab62f17a128dfcd39d5c7f25b19bff945576f8ec83afe651ba45aebc50bc12cfa02a85313cb70624120d32a46e13eb85afecaf27abc86f348c530da1cd88ede618cc186873e1139f5d694bd1540b3e463bc117bd157cecc90c8136c1c70d29f31b4f093e46208e56f54c7d02ed9b6e3dffab4a799d29e23a363e0b4aebcd4af62c42ccf60672e759e5d8d63fa0ea4aaea272e2b35a5abf9be78e2b103ea39fcf3a35b9c78492b53be65191ff84a2b6e1b8db9211c12073fdcc486480342030b90e2d7ed5fb559d497970d087d919b730ab3793ead91efe0128a6c09ae46d90e3e9cf6229f0970f0b1bc37f5de1860050b4e9cdd499c424ce6fd1f724183c35754155ef940fb4f48033930048bd91684c74a9719c35435ac6792ff04d50436c7705243019dac82b5ff6f95f548548ad5adf83b09e0c650d5dd981f1e0a382ebe1ae80ad3294ad16bc35e2186009d777e7831f0df99303e23ab8fb20eb34bdcc3e19ce53419de3ac70f7e142f77f437fe39c2dc4d3c81f2d97481f209b2801806e40e228eaad1ddf16af5b67c7087a09762a9669de75364146f756d792424f1fd9ac5cf78c8af0f94d16980bf26500b2d94537f61a68921301ce03b1601e4607804d842e1acc3fdb917d02de76ff0bca12df0d3073e3a8917a31a02938aecc484c0eedb978e0774f552c9675ff265a728fe5cf6f3dd6dd3754aa30fb17baa20dc08bd4dfd9cdec1725524b435844cc65c10b5ce76122468ad2206b0e6ea2b0742c830a741cfb3247d80cecb8fdde717c94c716ba0cebd5e187b5803c8875fce63db01cc9c78d937ad3bd0a620e5fbc9392c5467ee3a1a7de982059da1396a11aaddfb7adccc1032d9289f5db9e1bc1fe09e77c88dbdcd67390cf0c667251eebdb8e5f40ee2f90a977bc622616eceaf344ae4fc42aa5e34499b2b02d5d4fc5d5468b7f388eb451837586a213ff89c35077e35ce2958eb9d22b3802af9b93c590395da984a902b02ff7375f7fac4f0b469e72d241edfc2c58e594d53b3cd432c8b587621319eba9a1defa1bed338cb33bed12711de416d58d20198600d5d47429dbcaa91706b1669ba4551416e6daca2365628c4a308f6f804c9f47482a49a4de82320136a5f5c423a83434f20b9a244063f46a5e1d643c20eb0f451359e37133bc404c65548c0fa7d9c53a5b661c20162e2181a3e15c953ab9a53d1ee806f764160032004f455cb9892a5954a665b86e71dca165844fb5bd15a0e944604aaf40124a24a912655daf259526e554ac90f3ee5394807d3889ac6696aa6735f2e65e1fe660d6b85b40fe48451c63d1d20b974c8b69e0c8fa7a9c03cf951c14b5b2b53ff28a4528cdddd36660388845c2ac8f79c7774cb00169603790156089f82d811cd4ee6242b74d0910ffbc17d878038f261ab8614d0308887f1e97829ac507f4e75fa445334db036d0771a083da4c53916392bd5fbb7edd6b6c5505230ac5177aafb9f2dad9d82b35a509c537f95eb9feda4b2dabab65098d2ff95e77edda23582b8b84128a6ff25e77ed15a7d9a92bad843aa1eb1aa4de19b4ee15a59c86288ce0736a825f693ee54a9da95ea627b958b3d39c34848b78133e09ec8a766ca7513ded2b1735378da212c297dafbc1a85083a155555627a96f98f2d156c4db2959ca8c3fa3ff62c24a2b148a36e936d5f3387554edf47f8292f8d84b62b0c5eab1b10af0007a619a7e5da6ecac140eba6355ea372d24000c56f46f9699601130bb4d3cf265cacaacaa1945ecc9275c96813d6636426f0be4631487c3b41ffb37b9ef525d5303267b194c4f09e238bd370eec1a1020096d9917b0027697e6973d8a5e738d979c3230367117dfc8eb39f51033909da55fd849af4beea4a0bb797960fb0cfd57895fc59d8278b964bf3189ba66a8f4437657d2cb5df43b47f0e60cd84825cd3096977d6d3981b7d171f834632d210da5315ec31e05c20ccc83dfc4319e908adafaf830484507ba4269cac48a37e1986a4c095280b4145f97d9d12955a85b04d2efcfc8fe313e50596f49eca3ef92529fa61259f0c38b6216a0f79a3bef2e85d9c9ffc97a1a07ed65544bebf741f3e2054e0582d881e80e38604e3d94f3dcf3b0b1389ed02ec240a3b55c32052dde23a34905d30d59f1ba213dd71125aabc08ef0d30e2424fe61090028dc092202000bb72953f786948ae03d613c417e4ce46f028de695650599528396618a15804ac4c19ff988b3bb4da728230d9f1aae12c265d00105f0011e5976cc2ee4f39def05f1b8fbb750c3ae0a061735bd49f4a166a2b58cb2f110edd596689e0b3cda68dc9d5648e0a0caee7e5c8ae1ae6ac40ead23913d36d0cad93d4162e666acbc6c76ac9dbd7972c5a4a22dd2fb8fb106edcc1a091f8fadb812d0fdfd7490a7b9e2a2a34d17a215dc0cd08701624ed1c58f0937227dc7545974a276cbc3d64207587de36e417fefdd35b25a4b379a3b0a20bf14ce2369c358022b4e67da86cfad840510629d652c41bdbd1bf43e0c130e34a464489626d5bb741070c5a43f863a3536e3265cd1244e5717cbdb46b8b5e333d4e9b784a35a2063ad91d64ababca2402e9d6a5cd506808574047bbbd9cdad3bd8d8374abb73b35602519ad4a8c6b79c3f3026b8be9478e28ddae7be14b07d7bcd1dbc271ad13eb454b899a7615b3cbdde9cc54f57081a852a64b65a8841a8d6dc9a040ad694e67cded2835e443054a0fb09d1012fc6340a2ca309513189a4f04cb97b8f5d955810273e903e5c990202ccb40a1abdec25d148e9ebb15e09efcaeb3da701f010bd0c2a6bb32a9d1c2095d31c0b4f0a84c8c30b570daef4fb0b663ff2e0bbab5e1200fcdeb8622737f81bb6beadbbf3fde6a550c10e86dabda76fbde53343b221f630e5242e92abab5b9301e99dd13a010d787374d5c83aad0bb194dfce3db7ffa41fce513832a77b120868b8affaab34098e0634782371ce0ec6f6376bddb066bf906b0b0945002e27c4228b5caa867be3619cffd30544db750d5e89bd2704bf3f22554b5d7465c1133d36d7ee0d256a9d8722a21870c55cc26d3e08308cf39a601db50d12b18c9768d3ab8e3e84e180cbd81d5b0d1ac6b0bd549c42cf931550bb05dc2711746c1e3564839a5c65f2eb6c0b285acc8989a178b9771f42ab25aef37186a1439378fc82aff480ebda7ab7235c93f081e18884222a6fdf567567006a444b98757ba503b3174c33f2dbcc530d2500766e83c5a0a3e2d6d06bda38af7107e3988bcc5f22f0d34f721829985c262b179768a54ac9c94906186820993b44689ebd2e569c0948b350022fa764b9030e28ebf19c738d44a340348d34c3a03f29bfb177548fa12ddbe449446987687a86c9e4d28ca451fee0ac2d6315cf0097d0858a5201f93dd631c7214fbb924f36efbfed0b1d2df86fb1f30dc7477b0f7984964b301a47e9625f3848f3123dc9a9b058d0d96fd8722c484b1400ecc85b090408ef4196bed95f6052f104822988be8ca28dfbb190010b0296bedc4f5078f2f7a02f2ab1570866f063b2163cfec97e2aab9ba9eeea9f99a29ee6c4d7795c910633a672072a93ac1740a43ba7d18c06d75ee4754e64cd45027588be5c9706738598a6587828b83b06e9c206d1e465e26baa25f8f8459bc416bed1146ecc7244add72af2976917b16ffcae9ff98b71098ffc7c482cc9c32e4f9642f528a3d2f9647dbbffffbf1638d72821eee13db31a00d8a7acb35bd35c69f4cc1502780f0b1f7ecbbdc0639cb28756026d22b554d75808c8796c00e90a1857ea18822cc28a1ae84f74cb3a5010a0f7718f6931039d65cea27a9ecac1bc9c7c1aab993cf4c490ea4b675bdc749ab0c218df589ab6c1b7d535aa64429f5c3f0924c0e302e4d18b75b9b1ae30366c2efb09d40070b463346c838d64c61f340a6dbabe9929df0b0a92def4f5d17691fa86b285eb67d5630466b573bf831e7e55d33829328ade990c72bce8f0645d4b2e95e7cc780882672beab16cd555e23921c385937261e138cb3093a669693814c591922fecca2f440279da8c3f83a282146aaaaa0dc996546ae36e57554c0d3c672dda9a873f4b60be038d001b2ed950d14bf9d433fb711bfe05a3a6bd7e68bdd5b7a5c1c535a41b15f1c1b651aaf5abb29a0b49816373aa9e12623a502c05660e196fdb9ec5b30aec066ecdb22518bd4fe08a348f1eabe064685996070e35a77b27c0800aa2f5a7ea6adf214db95012af227bb02b30b62e7ceed34e740b9440220762e94334ffcf0452a2877db249e970932b38cbb7bfa111b743b6a032ed7914259a479b8b539492fae34151820f07f94b1d60d80b86954653e604e25348a3e7cc04cdb665431d3e2782de2c73ac988338cc2e8a1cb83192da1262b54bb0108ad59525f7d0bf04337e7aa46b7ba72d7fddf36e46ecae8f36d80a1e9521b218ab52b0c572a3a6a8153de1b08b3eebc18f6eaa62a20de97759dd42ca30e4879b25ed4db65fc06d7307319cbbea1838b70da69e3b87f123488bd7290c1735a12afc724394366cc45ccd06063ebe768f6652bdfe233b94238ebb801d820a72aadaf2b00700ba48af4a04e2152e9cc414bf572d8b4637c93321220288080691d91a8df1af1f184240b4d4c6367d7313d0ab2bc53c2eb41dd2adf81ecee9e737779f2051eb029c4c5c2387fa402e698f7cd264547ed5004585f2e9a899363d49f314b2da9b765d676e9dac5b28f89769be54348c74b601740432331b582850395c6fc6f96f77055302b026eba5110d8ef01f296dc61bfa4f60910df23f6d5622aceb8241f5e480ab072692ee003fc5dafb4dca46440b621bf2889c86669ce677779e665b06e03578bc4afacf3c745bb9ab884a8beba9bb4d5f1c113484df140602ced06beeff2f132f643b5bb0d478005297c2185a267f4cfcda92448cea1ff1e3a238b6202e7ee01109425fdccbdd16cc8d8b35afcc240eb725654832ccf5a3a1804a4aa520cfb8f339b5b94a9507dae7be1879509768f05464401cc029d983193fccaf638001113dae3bf77143044f558f7ea86eb0a3ef29631fb00030ce8c9c3c0d6cdc2b0baf8f7a896e6996339951526fd391c9640688c53183b2418e745cca98c05630ca92fe0bd70abd09f4df3383f533bf50567bd8375f064a532d14bf73a9ac78c3168ba814131d574976845a86c13cc696a8004692c087ecf244134e72e5b90fe2a2dbee0067400a70fdd18502fe4185a00814c46eda31528e317440f2ef0ddcbbfcc46a4173c464710504ddd66efcd0c1095edd20b056cfe802333319dc8550e6f3c32f805d5810dc31cf5118a592749d79621f47604e575405c8e020791a23d043236882c34eb0f9f9aaec3454da2d4c08a612856797b463608bd07f39c75df503de78d6d2803165bfbc06628fdcecd17a3a4a900a0c06d44c81ef7d9c24289680d600acb834727070e9c58c13dd6d18c942532d089981feaafe0198c519f2d0c15752465a4f9de06451dc2597605e4d43f44ea0b83e82bb4a9fcba5a63fb2e5e524a8685a398ddde83740e3e6addd0425bab6fedae5236d519551b73ba2799ee50723709c2ce11ad8d7ec351731e460deb3c7a46d6d607f480a90509a01856f0c8d1d1b54c585aa5411f68e939c715599ca1b787efd0ad8ec86ce55b450dc554e0797d1d646c94ec5a1564a2e95bdbdab8ef8692f36c5fe3a3a1caa65a7663dfb560755463f21e595139d0a82b97ac4d85dc7ee47d634d1ce084569c6823132bd623f0a133fb06eb6f1920f5b1fba9df2b2d3bd0eb521fd6811b6b48ffc9e673f8df9636bf5a6f0f3e59e403b6398879b0b8cf027b4db0ed673db49c089a012d681d7f793d0687dc9b7f1a0d1f02b7082b8ac43802fc096adc8e9fd626d37ea83f15a34e14cb87a7bbaa29d3ee4b92fe8ebd6e52f8a61b500c1bee9c3f8dae65b5de7ba174b4e52a04e9991134a18106790fa87026ed03570281ac54795b9fb2edfa1484298abfaf182d984a5bcd2a3cc253f45b8def61c5f64993246f980ca0cd73f6d6df6889bdbdd9ce41f42d326d7c28a6974fd39b57511618f98085c1d273f594dc70a91a4ea51edbe24290fb9bedc4ab04fc2f368c65d44688316fe590fb8ead95ecb313e42c2896eef6fde75e271efabdade510740ff4945fd0899b907ddebd47116cf9e5202bcdf894ba192e8274e0dd17b3d6167782eae6aeebedb8f568e7dd80b84f7ac8f84327c9862f456cbb91987c141fa5bc2f8aa3d600b73a0a31c3186afcb3c006028805c1dfc34137b1088d66f6a312aa7eace9d3da8781252baab1da7b14c46f259807e8c47b7b56ba88e20320fdd88894b85e464dc747e867bb02d9281f585fd72ab2c13f40727138274e5699beac0732511adcb5f19506560210a462d7a685322b87344c3a537c5d78fe4b472da7c6c14a7e6a296f4f70f8084dc6d79ecc46a9e8c6f97a39208f92c643f037aae8d26cdb62afbab4e4fdbe0d4a03fe1b6f6da9927ba60d65c3cb2b7884ce478b4b4460cab4b620b88e06569bff5cb2f13e10a554608666fdcc5a9bdc5590412c0424ddc4d0cadea3de3c7db11f99e545b02ccb4c8899e7bb9065fbc4aa3a8a3ea0666a379237f37be24174986c7dbc71af3cc3e364c9c92d6f749e10d71f936d1a3c1cb1f2fb86f72bf595b2ed277a204cc854e92313db1f07a7d7c687c4f41342c5a9a41dfe110407c7ca45b7ea6ab8cc5ee3b995a3ef0d903760b0ad90a09d69a610adcdbd6fd1baa3ece8b55b6978b389376e4c69592c8c4ae288de7d3e339f72bfe03fd771ef30aa2d70366aad909d0f8d708b02b270c7e5ddbf623f50d18d202f5af45c79b3d925d9a68fb01455c6c4162e7c3db420de5280ee9fcc8798cd2dc5491b3da16e884b60cc89ed75da7b8eb390c877a2948509336cd14a405743bf7ebc35678ded7c9dc75b089c1d94e71902d28fe62601448a28cd7fcfd764892002b3a051bb8e0d1bc88c300351ff88773c2c430f42df37ec8aa950a7fec2fd6de9121bf248a9ef19a68e1b30cab0927b44a4111896614888379af45fe809ef091e95630dcfcfe3953848b1326808cdd77193a26cf3931c180ea51868a31e2b929a9573cab00044f24171b6fb89a491a9b39253648d266b1b5b93021661e5063cdd47b0421d5c33929a365e649bf9d0dd8b8df9fad10aee32c386eaca5e89a86e89e13f2272bcef3533d7b02af5dcd9c593505850ad3579087ab6220d1f56f764cab6bff48e1189be84d1dd611c16be0e2baf9ba24193c0fa5eb4b16e450f687a33b1bc2f5834b640814f3d524b692f0ea26ca4378702cdd8ca3cb7daeb6d5db59f65e318ad8a3b0c896ab7192334927802f0180f7d90abb4de127ad205acd7a8e2fcc296973243b803c69eb3f71551d25b8ede2212cc5d7829a43bb0d10965c4244d688633161e9a19366ed0b6e910094cf9897194e6e6a2ee03e07c50b4ebc36db85e2579e53c14c20495506765dccaed22f62c8ca79beba40ebdb0cebda831efc424f422cbeb49e8a1bab5dce0557eb54ee0835dd56cfd57b876b868e88a456a5fe7b63a0b411586c82983d99afd1803d61c16843ddd8adde4c00248d08cc78800494e8edb397785c495b4cba2c5e5bdfa0d14467aa0d1b33a8ff8a5ab21d5df0d287408457b3effe622c3c86d82c70f7309680175384e46dcb1720a3bd7c7e36844129c700b74f3276444fc33ae397ba211ea6fbc27d05452ea823e3fc3ff8300b3660b7d5e55e9ec6ae87140b2421ca2d09521e01d5c6c9659cd246baafea50010c1084edbbd551b69270b0c07a8f3867de89eff4fa89a43e05d2ac5ef80b218c967a1a138f9c664d86ef739c2b18ed549dfd23a3b598340a162bb7148edab5c84c6449e78ada98d66c9e5e04ba6ab46db936c3364155db709ccb48e49729383a3a38b3b40740a8d560a6ba40fdaedbad1d706bceb3c35cd44ead1d0e5cf360a38659f8e9a5afa87ff1b608bdbef6dde8e3bb45ff1f6ade86a6f915ab102485ccb4fbb4181dc318f6b9756479f9f5535cb347fd880a7f0f6e5ab4c44574e121833c96cd4bc2dd37340dc641f872b04d2f05a1baecb8e4b65fe0c9de299597900b04c73d90542650ba726b851c3feff37743e4446e1f982cc04538f7b4013c9d6f2aa649e0a2c27123974428b60f8febe4c32ae0507c03c6581a49d3f5f2df3ba22fee6d9858fc831807a3876be9513fe68e385d97501b9c4a76345dd2ecbeee93807f0b795d4dbdc68dcdafd3ce97a85fe93ee3c7da15c1fffed051104f8e76b5476a46f0b686d69c75da327b8927ca583096dd9d0cf05a85f99aff1fea8fca78e9e0e943c5221365460bc66dcc7d2f9c696e8c8a8467b9e97e00095dc6abc7839b5aceae79ba777212ff1444c54431bbe015a888d4e8e3d42bff659c800730b477c6954add5591f39bb2529e8763b0543cf58ceb912d3d9de1cdeb9c49f420f7ac3e83d43657b86d1c46f0e5b02900305568b17d9285175250347a1afb1107380ba7b75a5b1889459e69d6890326d78069c2f8d8062011173520b238703289efbab1b68814333f3461e472ae58ab16ce99284e0a12142d5599e609a89bfe3f88d3485afe3a98fb30a8ae8eec2d84caf5dd1553e0f9dadd11db238f4ff276fafc5cc772ed5e2182c7a402fcdaf2f5618f4f6ecbf35b101272572f78b13855c85ec1ccdb00c8511c6e219de14dbeba5a8fa9a9416402924cf487358019829a5499d38854cb40acc66906fb210f89c22a1e50a1715d6cfdb549abc0589ffe38825757e07b378f894a62cb0eed23a3b7386e9f703a0742affb1be6ffb842d9a1d4f35be38eaf2452b8e93bd32d79d26d35d83b36df6aab14b05b28d8c012be3ff56d386500a7834769a89b39f7c5056d00d355abf59a0cd8b4ca12cc39fe85ad066d29a6699fd0420a9bbc36ff12d7a861f8be3aa782581c9fa886d702436f3cd9e9ef435a3ae5608662546e71a353de38059455ac2037d7203d81405393ee778ef72100a626716146c50bea482a62978a0f49ec08e48bd55b10adb84fa9310b0af0dcb05b605534688f954f0d273623c6abd59ce40a86a108dad8b76135fd36086940a8ed0d3002c28e8511d6ecc5380e41c2496e779fad9eec6846c939ecd2fe85768db49aeed488b0ce372307989b41e51820b08babeec6eb926f792d5284c8a6dcce5252980891c341655a22e0c4a84964b55d02430b4fa0b864efc666887d31bcac4575cd614b9398019763281d40cf815e467ae345b9c56107b2a6f23c792965305c2dfd3f60f21787000d7d86b4f39d454237b3a398cbac81fa05134dca3acef4782248ded2df233940e805a7273fdb9f63e4a28f3e8eea819400d790f441c8e32e6a243dd696d727e5df1ac33573aee1d6375fcccad16bd6a7e56a679295309bad515b1689f7cbe296adbe69fb9c11f7d388ca4f47ba31ae1779e85e2058766566512eb8ebeddda4d620f6d7e6bfbdfa6f379c1a3d6b59bbdca24d61cddbab5cb6aa46fa3ded3b65f776b8faca169682fefdd4e7cb3eacba02eeee8c5af947aedc4b2baa538ec9bf988b59488439eceb5729521bf1b7b6f9b6d76299082e18af08af3e7b344e030c0c62f8b6f22b5b5a9274bbbf791a1450b425b081ba209a9466b9e810c5537aedcfbd66a6098cc7840e0ee074dc77f9f2ca8bf5ba0c86bd1fefc6fb00f3566a20636cee0687ec1521266aa6ba0fef825347c135f14eb30e2cbbad3df5aeb4550feaf1c4ca2da372de303d36b7c5160cf5abe64786c586634251597acab7d960bd27474964e693687c14ba690ebff7c01c7d8d7de006132c84b450274c8ab2f7a6a83ba2775d738ce495b2a6036befc0329e3ad36c3be6c73540474cebc09bb848466777136c732a7730cb1e20f4e1b7fbb1f5caae5d3e1325be535c009b610baf65e5e46c1c09d1b15d92fe6d107cc32d7675b619a59fcfab9696755f6a8ad58c09791ed5526621a2c6b7bb841001c4a5f80abc4e6705e64aaf6adf5e4965c6a943bbb237fc11425919867347f35eef65513a7956c7ef1833178814a63efcdd08cf0f255619eea8bc4b14c7bf64d484a4db4597cea1882dc92eec5114b78e5c483975bb7ab21572471c46822911a067dee67488d733ef7149e3613e2d590b12dbfd0e9cd921a6150a0d24f31039381b4e8d33b54fa932692686057b7ee31028481e91aee68e02a3d19e12fc7752cb87516394bbd7b5cde004b7acc7539a6c776d9dd421239e4733b29358d12c79b62a0e16e0a5dba70c0cca710def800c3ba0a5356f85bada004911ac0d718a47be10475b948650e2def99627a67c8de37715d549ec1d5b6946bbd6a698ef645da96111bdffdfa7468228ac245eca7a5330ddc5ac8b0729dbfaee014b0398b166ebf3a0717aa0322d7f9b48485c05e82b156249ebe5a31524e221ae849f5b1b20ecadb0915e66e5e5bf3ea57f471ced2b0a8f2cbc664bf84c6c41a60504731b432645b978d9290618dbea7ff18d0d2486a926f958546c8d8552507a844576bdda4dc3a727d1310afc34a7b9f483c1ae11869090f794cefc5245330c4c406f7a1c6b14cd3c73cac07463f02e758ba1f8ea83fafad3a05d5f7ff15e1b4c5302980d8468ef6ab3f4c391f8252ee098b1ba75b7eaca103c591bde5199ed018670abe244ac9159700848aeb2f9bc50f63edb4973dd547e46cdd97cc15ac191d4d4d6270bda5933fafa0095eb50160aa401f0ff2049df81ff6ff553ba3cdf9a2842ea14229b8651672a54b9d71c8d2777996e0c9b0f1684f69fcb3725a3087dfe0c2bc46d9e26e0955365663e2111c4947f056f7bf1a2e04b284082518940ad4ed8f1796a080364a0f87e984e8ae72f318da68c1d0cab35e5070d9cebdaa27c686f7145898da3911c174edc09039c8ae912871433204f4cf3e8e3dbb98abc677b2561e26d406b256cd4075039d9cccd7455d2e47390203f87e5c8f0a5282c6d14cd05600ed7072c2bfe0a4431e603268ffc086c3da1906b91b3bd6fc6521e0adcf85a28688cfdd8a471b12b8f1aec0c188e8ed4af87e00df01b3fcf8e82c3a6d79c5364257f257660cab664a5aac642eb1b9265149361ccd2b1ae1cf4458b07e19d8e38ea4ed96e283cd447fa01255a0f0fe11d1aa083006759c41ae2d8a83c80d9cd86cbcc2c68adf7ab238123eaa2828232c4605b2090dd68d77bc41042fdf619c79d86bacdbb075c77dc0c74775259c2075ed31ba22b388ea9d9c435ce9a6351191134f5d1956933ee0d36d1a58926f9f8e68d4720b72ab80cb21a1ecfd9bcdba1538d4aaa7584438f79a4b4bb93044e3da9e211ac2c64c65afe5aad0b829882e2cb7f3dee6fdd2105bec3b550146c8c2a5fcb745ebecd4e63399a01dff73c6ede1cecc90176d7a94b4105dfcf228882a091e41f92a3950bb5c246c44734802aade4b839a07851b431be1993de81d3fd78b92d5457283cb2a265850a9b1902468248745fd822becac531d58fba868e8b0738953b1bcd578b1cf9ce8d7744528f7e53002c054d06d523cab7e5af761efa232e12fde4b0b1fa68aa20bcb7503da710bb549f0b3b8ceb1146cb2d2830b2180e649c0d19f566ed9040286bf7141908049a4a54dd12c2005fcff3cbf7a197bf2a255baf8ab3785cb7f23da362e05648f87142d3f9544b399722fdb63b2f15843cafd96bc8863a65111f329f87c33ff899a33b2bce167cb942dba0b17804b74e0f22c02a66ea2252da5b544ee3f563a6a3c0e99b9ebf1d4e65394db2359d76d47ae61012d928c82f4517c9bef2a10f940ee5dcf2a0eb3b88213d7851b137146ab2c6e45eb5b5df0e22d31290806f12a3fde96b8ff00ef19834bc4d05fd51914f03094694279f3c5102d045d427d75a5bd35f444a72dd0a8c0b66136cb6b41874b445cf3ef6733e84d131681f48981cb670387483cde39a8076274a205a15cb7cf31596c576f423a67bc8c3788141f4b8608f69164fd3c6abe0bd0d62f3b692e8962a9d13703a02a28728608f56e06439a2dd2bd0673c0890ef3d8628c6d94896fefccf968c6ba2d8ba5055b471906e30704436bac2b1f3a6dbee16c23f474c92435f3cd29a4292a8d3f9f46d93d917d23975cf684c2ef2363548413fc8259a11a1a96cdfe73c1472ee73707ee4afca07d26fa381e64a30183490a0b8b5d3f29a7706043838dcc9ebb76b48275e5523e50bad3a7844039bfb5ed056eaab6e2b3a46ac02c5c33f67b2dfe62f286198c0ee69c8930bd700d87b058fa3d6f9da42df6324be960a7e87c67db641674f928518d1e4cc60fb228fc8bd8cb3c2f8adee62d59a3fea699f928f322e49c3653dd382067fc68dcfbbfab345fef4e3f68f8b30a19045e36bb86f0451174df7a7b37500be55e02eb3b431018dcf3f9ec259b9eed1d287d4582b1457646f20f52446c605dbbda8bbfc883caa4c985e3841aafb35b0b66320b882a98e45d23c1a730818cf4b2b9ce2ea80eaa1210c19864c32255000bb00150a6f7f6b8da48a7a934d6fca918c3462155c2774c5e373ec745ceff481f92b3769a8308993e2aac9e6d2103249f4975b69690022ba0dc403320107fcae77d31facd325788c1f83c2f70ffe9a325d51510ed1281ae82d1aa99afc540a5676c218d9e4ab3cdad54b091dcacaa0d176d098a48d39622b451182697d55f04932c34345370e704bc4d4167043217a5676944aaab03dcb17a36daf773f6b6222f08e9148a030bcb735dfc03693a5aac15dd66bdbb4bdf2bea7cded36dff87e63c062349b6390229039c68a37286a64c7582d1d991fe5cc5c91d7f58855d19f7fd5d46c43ece796fdea06b8036555983954e5380466c80a33e0c7d43a15677d5b43bc6e6af41422159af16e4a074ae0fd860879c8a2c21eb2cc90986850b370413370b940ca5053a5d402eb808dcfd59c1ab61a5860768e45e7330ed99f0359a8b42c2ff659e4c69ba9070bc0111410a9c283ed669ee179c745570d77907c263c4d75d76691e83148e3e32dd9ce8e9f95f07f744517ed6c6ec850d815cd0b18de11a506104b2a274b3e3ae09b14ea918b1769d792db630fddc7875c9b4a219593f55e448bc6baa533a417da1a4d377ef13c2470587a22f0f17b723e46a50d5f4f556e2b853a32f0f33edad837c30c101acf2ef199013fa1be46fc437efffb53257a22af75f9b80f45a3a2ec76a46baa00d4bcefaaa390c9bf1640b82273297c0c1c7c332f416f2b02e214937b418471669784e4e2d150ad02d44262e238b19d4f5ac59f4950711130f4b8f2f83cca79931f1215ac4b0589735adf2eca83b6525b67470b17784c71d4f5333b3b61f456b3981600684895796cb9a7bc10977005a0669cb4f9a91326350f66a9d46f828c30a5e0d55237671b1002f6850b1e17125c285c5350190913778535ffec2aa9d6a4562145daf1b8f2483ed05894f4deeda76ca132fb41d0a1d016382102aa3c4b2d06f8a18e81dba9606009bfbb1948bf9066db698527b925f9734a950ce2a8e0d346042a5d616b5bcf3003962e1e785192dd8f099e54f4fd4e62a6c50ccdd7e81a8992e9c7e8ed9b225922b8362b920b8e86cb3868b15fe1f12dbf0373095fd84b8b137562643e9ba80fe31a817918061f30541ecf461786c98f8690c0da059d1453c212b9693754bd087f1ffbe2634634853a9d148f0c7ff54b8b820ed6380051a82181d35047efffd64f8d6bfa51e23e5556f28827dbe941e1d6e008879bb72f819c1a0bf02413c1faeeb707bd6c49c86b8119c0cf80452c0529775367de13b979e0c7e5226b1b2bc178daae00d1eb43d1f0d3a3c52b84243abc46c0443f8957a09ebbc8b2e84fe148595e886bf84a5042ce0bd51cb1f1aeeb1c7c1153727fe0f6184baa92f730ae88ff45e6ff5aa0cd0c347ddc79da0dd3cecbc6cd3e2536b61a0b24e3682d1943ef6c69dce1fe806d20a8613684ac418b58738ca1f4eb09b5aa625d8688a9313fc99a2ede007b2b2d7f57622a7107e2defd45ec3151b5dfd25d105dbade43664a1c65ab051ad2825dab99fab3a130322287a74160b76a245ad063cd47223daadb1ea38b709922bc4c821cfe5ab9140e464b8d2ba81617adb1340953768c938f208da60b705d00dc57e3d5468a8137d612806449f2abc8ddda0ad6bc27feef86824c7edc2fec759510d133019a2fb4d7e305a56251d051bff83765709d0a04e1f880ba84e91c8e404253797e741ec2de2c984868ec38fbbab042885facef0ec87f35b5bea0d7bb280ac6b5e913723e602e8e8765e9d726835fabf7927edd5d21a8fcd7622ed1f247596157e96857c55c3b8dc0020e6da62228d503d643a0f6e562210e8e40e4761c800ce0f000b05896f12d2735318b92c757d519b969962a64aec5ce51dbd8115cce1db5009c20a935a66a661f663f9ce8c43799f31b29b4d91eb99911d8a0ea64305dbc2749054e7448adc7efe24f630449d693bb6e996c2c339e932c51163b6410013a2b808d828161fea6cf90cb0e28bc3b623454cb18729c1f345b6e87b7b150782e3ccfca596505134a09712531552b317e0e3a5f8a9fce15800c3c1366f1eee074c7f02c88d41930e414b0e8b95422658c221ca68fce11a17eb425e58830ad9f0b3737762e311ee6880bbec4717ded5275d45754c39d3044fb1e9b7c532e636b77690d84a91a0dbe1b052efc1a56e7f0c80aa1394ab0a3ac1408dc46a127093ac9abb92bff2d8e0e56c7916f68cdb9006eabe634ea659d92a261d54c4c2fd0ac9ef87b5fa4c85ef653b26d4eda2a2019917361c84774e050ceb2977ead46705b29eb14b56fec05c5a6d029bd818e12a274c2970b4a20675347d319da9e228eac6732201dad515ac2cd3b1a8e236fe25bc552e4a91bcd19034c9f67fef220e42c3aad7f8d404146e0361a36de50f7c5c097c84bd0db0a5cd4b5632cdd20b866b471c114ee04f8df3ed3556add1149011d204a89d51d64650f338d5dd66cdfb68b911889ff997bf6e13722746ac7c6699a853b7ed36dfd0a40d1bc8182cf27e0f5f84986d734ba738bfe1dd75ba3a0ca8c3b5b2bc34ff7b93fb3522cfc03397b040930f3cd75398370b6c9bb0e3e859bef39505506a2c86b2d0acac294c2fa60e80e080e2bb64bf904f14df56e330051f540009e1010ba060c0c0a78c2b44c4a6063608685ca34eff4d8e37e06d39063dfb78dea5ce1e7e1473eb0ede1d2d1b65409c34d10fe0b560d85511bc881bdf50ccab718c4811825fb109172d0b387bd90beb7216b42d36c9e8538f38c3aa636050be0681f6c68e49c97e982a73c61df80748cf0b43d579316039e6d072ad616c5e422792eb6210d3b7ae5bee205cb5050d2fada983454b1f1daa2d2f98e771e7150d77329457966a0df2b29328f8940bc5f141b248dea9a6690e53af024ddee013563fb402f4957ecdf57a4e44da13ad27a34f3846ba99bf86da916430c8516624166c26d3a7301bada3e54d1f938dd690e283189b08ece3645be67c1eb1eff55ee11e4d98b7495c47545d1bff705e0dff5ab5ecb2230520c50a1724336bc3673124fefc6662dd8e802f6124aac2cce30403f82e4b152065f51e924194e566e2f9fac2800d82e3d8587a24fb5671623000afaa2a02e9eb9142d7da2a9f02fb797d7c995e6a4c277ba1692ec73705bb95464f33e7fb4548edf07579b46f98eb39eac684e5fd1ee65162062cbef301078b5702f5c4bf8fe31121daebc1101c54aca70df008582c46eca5f12f8b96f12677b4e07f44941fd7ba82ae5991c5a74a6ffb6364d48b978874101fb47afb2a6b7ca6cb3bb68ef85c179f225e6e7cb1a9816c4d8781257bf76f4456f4d26da1d5803e776ae54f5753ea269cee5333d4dbfde6c56571ff220dc62700ac6d9c791c551eea152ebd82f6082f1c0886e27264e9218af608e645acaba668b57c1e6fdcfe1873ba89686e8936a9e2a88bbc706b665938507bd9a8aaf3e1e153c1a4361b76a053f8d2e2d59f3f05d5bf5523c27897b59c65eaa2fc39f3fc1a1b994c9dde7b64b4624c4fa95a60ac21a263b0a36f32a8d6abaeed48f3e4acfaae7242e06dc8c844273942fefa436accd8f0a063a9717fb9aea6aa6a3c5f69d7d6a31a84dcfaf377ba33505ef0177210662c22bc182454becc81bf5ee49bfd329f716eebb3aa618c2a3079153ccc74568ac7eccfa28e323ec4a12fe397fb167c5fa9f34de56b872de4e64be533bd430c1c6dc8419f0f344fe126c2396051473bd8cba6a38c2ee85654e0ebb2a24f0b83f6c1178187b808035713b43b19477c3b84782d1d739c36a600531aa3668c8a15889f9d8ee98344437a52c2f31bac9d8df602682ec28ba1d02c4c3b559ec4968ba3a6ff6d6541745840b6362bd05188b55e0c01efc8256da46450ac355ea48963ee9a5a1e4706704953d55bce83a155d42509f215d91ba9e3a67478a965d7a81c2f130c6b47efd5f50b8fb93938c66210a823366bdc0b43c00791c7b772c7957b2ed40138019249f5e90808347d1c3478f0744c224413e7e796620b9a8ea3b433d1d69e88002892a059e2c7d251e2948e0596435d3b2d5438ab900328973a996b1ef85ef132c9ef19df2ddbcd3204326b541639cd034f3a169a18c08dda525166a9e11497e1389a5e3c1ac21435ecdbff044ac7d4e094610c7c3e8bbe41d63f4878702a86dda9a5542104ee933054d42c676b0b532bbb031b03fd6ac16e1938cbbb87bac4ce65b1b07ff0d4d06b5622369480c0ee49b2f4208ef5dfa8b95c7a6196f66fd48c2aa157f4f54657e32aadf29f277baac573993af60711e9a8aaa515c03369068a5bdca57d754ebfb178989913f51958e7bb1d01d14fa4e93b29042c5e505d2707e485318f7c3415ba8fb0f2914e04b76cf6f1b624a540acecde2159b18a10422b177b322801d2ecc89661b5d5d3b1d6862b6a4172a8f0be1c95a1562ea6f29a460116e331ddb21a4812bb6c89d472cd1e126a17597ad1faac12d91125b30148c96a2ded2852a33e6cc5e408bb44cf8d0d03b4b73fa90089d6e9fc17f0c7a400a827292a13ab92ea3f09e4ac7b6109fdc00c21a517bb2737cbe8f37ba9f5718106f3396e06edcd02eca8dde49fe375977c3e9e1db2a646fb444d3b8d838a1f1f67b02e1b2ac0e885da487e723ffb70c504bf948d5b02cccca1b013e9c089f2806141f41b1d5a2277c008b986c54ea48cb517c88e1e9f8b463341c27946c5368d5cd862d0734861219f02cd5d43497ef3f514a2f81c93028be8b91c739a22924243ab66b23f164d6bcd625a6a6a11ebc1b518737699b19141145ac38b334b99c9996dfe84425d9145189dca6853689ac19b53f41ba0ac0540ba20fc6f4a0947a04d495901685bc4b6f513cc75fc07c9b40010a43514c5a04b47973e72a96b6de52af8ee242101044ba65656e537383059dc2776719874b3e528e0764aaa091d2b16a4a6bea6a1a58e09017cf93bded9c95aa8b04e65a62d25151c75f6591c1732470e5d04625a2fb2813e9f8b75825fe9231932810a17a33f5710e58bb00b4ec6f3732407a870e73ea718f2d7387720679dbb72c9797ac334d70e0761f35abe44042fbcfe196942494c4c943a1f3aa3e857a31531efc0021c254202b8977670ef8d85071ce4dcdce7078e134d134de309239eb0b21a3b9c0dc81733b351bbd02075ea0770fb9b274dcff4aa4257aa427e1a53bec4ec25c99a917663317f608269c0fd19332fdce31e78036640f5af03f44c9b73c2aecd7ad6c12208b69023f4f2443856ed50894635ba2347e7f213822f953fd398b1e42243e8b455aae8c0983133d9b3754b78535da58ed17e4adcdca67e4ced4ba7648c23d47ab9d5c9bfd217219e7bf123c835b36102a74bd23306ee977b93a91f7a8bb98c77ba28faf22ec01b47ce18b52adaf08f37f79a72b4c2148f922706fb9fabf08008c3604bcd0c962f65156f16f65b1f7cf23a2833cbc3b60e552ddfec02a932826964d72b8138e523b9c69f61ff475fa1d676fa2f21c5babe102945327e0033107e7f500d568cedc61ea08e3223e1c7f8a3e8b870ab69657c2f0a3e7710d7428a2a393f8ec62b7d1b40ed690b35db922c6ea4d405a9159b4b2fe0dc0bd7371b5c0f13beba7957e0959aea8e0047efe460564593b7bbd0cdc9451ba602cceaea6f0544006e1b4289c927f690c48742f44aac540f9894ff656a5136be19f1cf48b5be0316bdb524fe15a832d51f8e8cf8508b26e17c5b98fd4790ecd6d39061dabf5cf851ecf0b4c248766f54a893875c6f8d8240134ea30ab7478846f6713098042019c37379040e91039e321364ec56f86158f7d6045e0ebf36498a2048eacfe849845ad53564d9c9f693e479c778a8ac353f16d49f321cfd51b0a01fc7570399ae2e80421a272bf9e7e685d1fa15580683834c75a3eb68c1fde59ff1549bace954ed182dcf5b2f6b51549d0e838238e8c2e0346a500af76ae81ff9562244a7b856a214fcca894bf907ddeb6c910a302f7ae922d57c7b736f547379f75e79b1afc268ec088a059c9be6846cced56eee1f7d0b9e95d1a48417548d4853f494380a0b25bd1dd1d78dc6ffe41c50643aa1cd4a428cf85f5b5b68ed9424b00a4049c951cb204ab45631f38484603bb4b901c710c23605b38806d83da00b05141dd990817d73a712682ced3495cea192bdba6784b784dc9baee72525afe1e918793dc64153244204899033239bae1c7a54e2cd5e70045f1a499f265545a354c19f2214c038cd4bac20e90e10de9ea087535b14ad1c6fb06f33686f9bde08278194f20509cea808c956151aa65868ff0bbe0e6f426492bd880ff1c03861881327707f30a737e0f2485683a4aa8ce0ddb9d6b48a30724af2ac0e6c599b105ea9d02a5de72047f61e0dc3c193aaa595c3aa352550eb5d71e4812d6526a9daeaa4490a0e245d54f2a152ce1e6a1dc88d03e6ddf846dbcf7b82ab6157c9b6b3c7c4b4be5456138ce981fba26477d9a3057c1b83cfd0770bff813571d88071620ead058e48f8a6dc68eed7256a170da95cd2409ae67b1c0a84c100a67ec43604a8044598c46d0368460860dd470197905335bceacebffc8a4f1546ac2c1607920c8042246ddbaa2bb7e8f054bba7bc87ba477020b1efe2e7a3a89a319f2805276bc91b0459e5d1cb80d364cd295d4089a9a546c2e3015050bdc7b3e7673bb6186e052efb5c27a3c1dacbdba46e07828790c8d8ba1554033c9b34005dd2dfd8911e4caf3c1b1fd4e2e32ae0222eb4f29f5206b972f509ac2449e4bdc8d1d01094b6b14552f0550d93440db4a6e4b22559e9c609fd34f092e4e615da67611e9fd166c12e6de08ec8047d6309417f4dd5b8b3453e37d45d265fada81d3da5f3046329bd50ab2407d70d8b04190e3344c462045a098a8f1dcbef0252babf3d89790dc922c1f8b80a3a143657ea9322c4e93a69431066fa4829665f95ac0a6901e564b5ae27424cb19260077b5c55ab9a7f28d9325aaf09542a84746c0e0af23561a24bed99f80d9d75cc1e019512bcda61b62d792d35a6affe4c8834d3eaa36ec59de0645ecdc5e3ad7efd3e60a0197175a16c562d6b165c13486530d3447d0fe10f2510bf18b62770b88aba2f53f55ee4cf2ce7d82609b4a1b4e9735eec53c157e06ddbbaff5cfd5f41236fea05a0ee0c52921468dc3b01e89b9603a4cb894ee975a6923370f7d1440e8da0c416ab7674562ccd302c2adf1d6f5d7272741163a1113be8bc7fd59ed5c9f91c7abc94ff8a39ac536121f557e9cc4371219612d39c505df9f75acb94a1fe842b3bf0054eb051aa3a9a7b93e04229cb6fb2bc602ee116eca5349708cd870af1641b27f7acff63170785c1fa3ccd84f7342b87087e59643797605c8d052355502f1058e8fea5ed22a2909aebd99b7d1e9dcab56fd2ea12aabc338ca7658e5b1f781ae5c429550c5b925f18aec6071b4b8e96d4de19f905ae40be63e6ab6fa986d5daf504195a3cac5b1f08f3a78e3f3b06f99eb78bdddb4836554d9a1b951f44505e4a4a1dd91f2b278c9b8f67bc310dc2adb1053a8a4b718a7acf0589c55107124e1d07fb21438cad48257cd2d58f60e7986105bb85e32133c7fdd4f1729642895c20e57382e8810a6a59162703403bd715dd399543066bbbd3a7d86bac0ae376a49c47c57d2d5e21982a79ea4ef1c964901b2e90231399657be35435a0996f1cb26199b3d0e89844c429c31613df97d37acdbace40479e5726e93057747d6e9a9153463ce56f35d54b93b5ed74039d3372bf2ccab9ac9cfb24eb7793b83a143b255bf283566b7496a7de7b6f1fd00182dfb6d7e964627646f9db36732abcd074ed32667a51459d7aea75a48b554cd5ec5466126f89847e36ff12da65ab5378b7437ebcf34a6d4a349b92c84d85a7d6a2e372f12476e55c5616c7bd80814904f5a14c18ed3bd9d16379bd32c6c1fcb0977b4ea92da1515a190ff666ead5cb09abd9d399b80d3654a2e42e71422e7cee07ec53434120f3e93b653b6d8ac448685742b13136127b60c750901b27302fe4a8d331fe2c246b22115dbc9d2f3c9f560323bb9b7d05273a935a9b882504793b8fbcf59d132368f8a04f8d722ec84e098508ed3bed3e583c661a085e45b56216f42364fd978417d34651a18560d582a4298dadee82a2dee1bb701350475b011886be40e477e5c31972a4caa6cf9f16872155f09742a2b5452864fbaddbd1f40da5b5b2b25de2db94db7775b39b000535860079f7c2566eba818a40e7db76fce66652b39b0d641b714c9c8fdbf0c4d11b9ed6ce5b395635dfea0e66ce34aba5e842aec1f247ec1388d06793090bd284c0cdb92df5efce4fb537bb54b6c2517f2177539835379cc19d9cebbce12b4fd08b64d907a1044b57a18bd9cc5e22d262da0bdb318ab177e29112a4d226cebaa355e2a1bd2e6a220b5feab47c86f198bdf7399d7bea8234faf4083847bac5d4a542e70df1b900840ea80536a70f2976345318bd4072e7242f88ea12824c5790ca396b174fa49bb751c47eda284024a571aa6d35aab06e2e2b8cb343190f582abdc66f72565e844bcfd125c73cb1c8406e77d465af75b77fda1c623b890e7b965f04d36a19a507b43e05b385fcc9f9d2210e00adecca645b28feb1b27a1624b8c46e05e4d5b0837d55512f11008e3c51af71573ae62b1ccdc1e38742d65883a2c23d952171310e16334190d7ae091f4899caa64b13701bde22a0f290e4e3c5d19763f2157a7728c1526e8475d7f71dca0931d7064f5c7e59d7dc207cbe90d43feab76931ce4e8d97891c22037cee017a11ed355e805415a70378a238621c824526ea393c3711327ed102c54730648feaf9c7f3725e1ad689dd1cf8a571a2685d2ef214dfdff98cb9637639b7fb1c86e93e77660ad4ce3a2306246be3f1941b670de0bff8077eda646fb9b74c52ca94a494011a0321036f03f9ca594e5a7fce39e79c94524a29fdffffff5a6b875cb88582a57dbab9515be1564e9ce86ed40280434122010881c251a0e80851a0a8d8cf160f638c31c62d68a9540a007c6aad8aceda16e6ee3df9d05a15e5dae5fcafd6aa2a8ddf2ee7436aadaa5608738e9c339673fe909cb47ad6c1dae5a4f5fb24a59452ca39e79c73524a29a5f4ffffff6badf5c4e5e22d149682e00ab64b9da371b48dbea163eed39a032ea8e7b2d4a7d362ce0a56d12db97472dc2e6f86ba867eb8511b7948ad557504b00ff44c6e1460517dc2d9bb8d834f398ea35cff871e5aaba211b6cbf93f44673bababbadad1cfc9796b55f5651f595a09fd09929793d620fa94f5a9d3a7aa4fdda793cb496bd5ddddddeeeeee2ea59452ca39e79c7376ceffffffff63d682d60054f4e995baa5592062882884d803078fe521458d7ecb489fac95564edbb66ddbb6e59c73ce19638c31c65f85feff595a6afdcdc6b66d9b084ca552a9541502492452ce9173cef9415eb4cb495f73fc58541630c618e3da2e27fdeeeeee7677777729a59452464a29a59462211b127daa508b52a9542a950a60ff00d12688b8829803878dfbb478c3636911671c7539b825baa0b66ddbb66df32ee79c73ce2d5ea9864a4ddf116ed43a18638c31feaa55158542a1509b8d6ddbb62c8e4623f81d18b17639f363f13972ce39e7ff6f9793ce39e79c336585aad00b4b050bef8a1b4882a9388a31220b443c0d0ae1b1bc6899227dce4a9f9366b3826a4e6ede75dd8ba730042bb04e980933613411e804c418638c71c580d3e9b4d9d8b66dfb2ba2b0cb3b1fc23befbcf3cebb8e524adbe5c418638ca594524a59853e442291482412c4c17d9006f7c1205690e33e0de2782c90e40e4939734a6edbb66ddb3652e3e05e3324fa58dad31edca8ad6809abcb5a2a56b037f5569f659f4943a21518820cc056d5be3d16d3c6b66ddbb6cdd0b49973ce76e9eeeeeef843a3d168341a8d606a05bb25c0c611dce00d30e63ec881fb62dc0759b84fabc07bff59f6f9682a60aaab90e87b6442107d86b8519393881bb5fa72e34d7693fd67d9e7d30243de55dc63d1437292939ce42427a59452b6777777f7cf90f6a1209eac33ad4a769dbbbbbbfbf0e1c3c7088931c6584a29a59439e79c739e29564a29a594d3dddddda507c45e2ee048e47201b55a63edea55c492907c4c4e523eb831c618e31d220a46146c97979db48278b2ced777131f7d8abd04fa97b5e69c73ced9755dce584a2cb1c4124b2cf1a44dad55e59c73ce9e73ced98330e79c734e4a29a594765dd775dd9c73ce39e5ffffffd75a6bad554a29a594240f5eef63bf5b1f6b82923282848aaba874842a2aefbdf8faf9cb31e79c739e14c38a31c698fa0e72db1ec4933ded6097a515c4937d07bb2cfd199233b6cb496ba5ed72feffffff9c73ce394d7cf8f0d1de514a29a5b4d65a6badffffff6fa9584a29a5947aadb5d65affffff9fda9394112434efa0773511b6cb49ebd76ddbb66d43b171dbb66dabb5d65aebffffff731c97626bad4d29a59452148ba2592346d8e0dca8a9a4b41da01f37347794f012253ac212252af63418db3d44ea1253c768cea050b10923398e9301c66e772927fdfff82448a85815b93db9bdd00c350dd590bc81c989ad9f3b949c62df754cc26a16641f862c7c131685144ed8ee09a1c7947e1f4b1ccd3761403c596764a9b01e0a52e346cd00212294446f8c50172a23aef88a151de18a15159b007cc20d4188d622d2966609097d0c3061e6689a1ec442c9c9226ed40c2073440e209a2d376a2a4c181084809b1576e46a80b5aaae5907bb58240b8b776461a998e45e8a576bf6d12a88020e2a29957c3e3696897da0931b7253c1d6e9f93dc7711cc7719eb30761c2c0ab015f69d6c128acdd65ad49e1652dfa5dd7755d5742ad03d8af7d7aa7d3e9743a2de146cda45dce87d45a55ad2a206045bb9cff34eb6057fd0f598bd6cf3ad835ad35e7acb5d65a6b873c24432efea5f89a627f847d10091b122a2af6419af3d0ec83445eba5103b98e9087421d61285431cf70c58ca3aeebbaaeebe228cee0464dab95beeeb91e1cc7711cf7b66a9743745dd7759db452ca9973ce39d7aa79c885ac200accdca895802961c284ad20916f376a00a871a36601c056100a0e23054f21858e3085142ac6622b85a4472b00e47c68ad8aaa805c5f0de07a701cc7715c3744d775ddd575d6aa3ae7c8390731b0ae284a792af2b66362c4c8c7d35a16ad8a91eb9d8899890bb5083df741f86aa5c913582fbe1742c3148323c6d80d4121f763e79c93d2cbf6c03e7125a609322fc8c4c8e020b303c97d2699930c0f484c324928e9b45062494848484a4a64f2c87d261b6830b96c9c747a40a92e483991c1084f8a8485261b88f8dc4f5c819fb80241a6191f4eb00b05d6490b1a84ef5f4c2f2ef7055fd1cff821721d825e6ac418bb5fb2e9450729e59c2f2fa7ffaf95e9e5c7cbcd75c304b359181f687345d60403034cc7a7d3d9bb46446066380106e68a1ec6e58a3291c7e269511b31c170f69fc5300ceb74608ad03a2eb04e32e079c2cb5e8a9b2b4a99b1e3ade7b180f07ef676c4d0e88009c4e1c247870c24c7c0a00324d4c486ccef33c5eca0870c91982284c434c105e485183c3132321c36d0d92106769a71c9f0a0062b938419ac1664a868a8a1da80e17b9081ba20c694818cb421c501b78188989e01260718667c68c171d30c1057de679af9e18a32ed44878e3f50a181ee6e9cae8169860d4c33483708d1515a2cd0a9db9a834412f096eced3f8af24226fad0cf63f1ee0b6043378dae36c3a53e16ff589866b07061b0de0ba1442d02507b5a0cdd0b40b80014164c7464263400810529100ca104383b8c6052ca449a894df60386d7fb4c35e4380f0b05032619789862e85032f0f4ff3fc6ffbf115e66a8f9eca9cbfd1322a060e09389986ad0713522289cf3e5bc4bac7004671c620bbc7829e2831fb50a15ad97ba51b3efe66af15244ad5638a294524a29adac890faa5d2e28a96a75ce39e79cd3da2c832918376a201187449728c33b1c987a100a014f100577c00c7980a497226aa987d7eb53adb5be4cab4549140a8542552fe08b9c9c9c9c9cf974ba5575ce9173ce39bb747777f7ffff7f12894422914896890f15522491482412c9a55f4edf3f954a752a954aa5b0cc0342adbbbbbb630b57b831c6dddddd9d79463e1a8d46a3519c41884f777777f74e76280f88acbaeeeeee56997d3a9d4eb81b376edcb87163777777a758cee5025ed08a9546dad44591e31151566641503f6ed444ba9122b8c8e353b1887a10422822124724b9e41381885bac015dfcff43933ef9a430056b7b5f72d20ae2c93a555629a59452feffff8f46a3d168341ac5d168341a8d62ad2cfa97c516ae7063c7d8dddddd23aa512854bb70b54b2aa594524a39673bc618638c2d4be50ccfe5a46fd29ff4542beb5596bdb067ed85611b84afeb649e778aa3ae4b9d322a4312cee9138cb1db5dc2d8ed2ee5743927a5ffb5a25f2bebaa2c6baf0bc33a9d4c4516e2292324259a8afbbca4623f8019a06652534201acf1e16d848078b20e7659abaa4fa77422401da8901891827262f2292119110901f1641decb25655e9cb0f1decb256559f4ee9a68d060fb80b9a6662054577afa006059776778d0fb7bbfdd3353ddcd6443ed554439211d13eeb4fdf748a7b297aa6796852975a478f7aa66152375cbb4b3927957352fa5f21fdafb5aaac5a559665ed65597b5d18d6b1375711f769580ed6b9efe6bec8bd144f8b378028d9081149f146dc7e4419b125e74784a121e747a763874d4907c7a3a42343187006c2c0ad066c8130207e3710e887739f039ec863b7bb94d3e59c94fe57fab5569565d9cab2f6ba30ac73619d4e96793c2099070424244444646484a4a4e4f331313919b17085a4a4c442906885fb1eaa4f3c4d060bc6931c324977b8403d60def7529ce490897e4affb7301b5a6b54b354cedd3db4723ba8db1dee762775bbd3dd6eab6bfb272f590d9da0325127e7b6d6c9b9ad75726814797b88da5e4048d7c30f345470351aa6186f620587acb241e500081a40b8a24c9ba1f1e38ab42c0735d85413034c4d4c8d073450b35d91a682473d6539fb4026828c068e16dc048d1e64d0e8d042638217684a31688288414d72c85230e67d261a1c9a03470348a094529aecd1b86400c769666e0772b0ea1571b796da8e7f3e9ad61f6b625251a070fa7f2f0061ff60e23412628cdd342ef713579e122c488304e891115db8309ee608346ed0c0e17e68e0a03eb04e62781da465825982209a20dc5d4a144d0d28a5f49f0633014493c2e40dd6898cdf415663c60629c87640ef33cdfc00c64f3a2795c944da9c73ce395b90bd641ec8469059183d6424c85490bd290686fbf799625a30826575207c1a4a8cec4980da78d7681db94f0d446f353a9c54bb4b3927957352fa5fe97fad5565d5aab22c6baf67597b5d18d6b9605ca86118eb64323c3817461e84b830a2e28e987988a4222e84711467222e2207081ea8d4cd098812ac712124dd802e50066c793b622ab6ffb8d006c6d8ed2e61ec769772ba9c93d2ff4abfd6aab22c5b59d65e1786752eacd3c9328f070424444464648484a4e48144290f2452e1422d444588c87bd146d8af2516438f00019aa5a894107a3b2201802008531900000221108571408db31049680714000b285a4a486e342a2e4896c863811021483120ca18600830041863c0ccccd098072287bc9d40bbe8227a12012e4435548bd8adec1339a97b76ae25b982b373600eeac56b045f1f8f70271d25c3c147f5fc21b56413380c17c2a58fee0a485c7d9c2327a48abea3daee3178f600337757fcd2a1ca992d67f9f9fbcedca3a43e79f1538f996e9817164eef3eba3c9147d74ba891548af59cbdc1bcf0dc11a8fc35487827ea646228775711bf67dddbdc3e57a7f24e8ddedacdc22122551597f9c99f257079f508fe60934c9d0231ac26a50959dae0d4c8912c6d434ef7f54680570997bce4c650c204c06ac2293c53b65bc235eba9b4650a9c4b884a2515dd4b2da89e1b15afa640cdf324eaf844a9eec9f1f1954c506ed09dd6228173276815335147fba4ab509820eaf69436ffb95f3d4f9111bcb6417c3541966b2417cdae62374b13bbf2b5d996d2217ad16a18b6c1d450d14784ec38e28e8ee3a049f809f3dc9916b9cc02951165d88d93e66be7ce2395d7f4108ef2973469f469c7470b607ef3f5f3cf2fec19791c589a208866bebeae47459d5c1b62adb428c2f0634242e2153d6ffbb308bd3cce1ea2cf0e67182e5ac3e313c8ea86bf14703754815a0c72d540147a19d06b86931fc9940c38a1ce6d79e627ae8f05377e44a68c99137f8a5a9a9dc14bcffc39b102a491518369a41c461b615450d49d712126f186c1222ce5e1c138fa6d64210a3d38ce70ce8d5f697088dfe7beb0201c755ebb66af2d2f3f79149dccb4fe712a5698420c810fc6ade299b96868b5cddcd000233602d1b7c1ccd08de174c7b7c24e275761f346aa8eed25896a622bd8e77813d8e47233d8a7a629d69c8726efc8d4b17b93a9c3f6d218e9ce9b440dd60b29556caf242a8f658499c444636e1312f14474f519257033112236f2a424e0be75acbfe7e22bd397a1f3cd78ad422f27305fdc1e76825c15cb6bb22a76dfde1fb060bcac625a509a0cf55fe7589746636d406189582ecc9782926e8b41ba01be3fdfd8d4f231efb8752ff872084f1be21c63c85d5777aab4590c84d2090a03c92b613a5f9e1b13d7e2fa7c362afd68f15f06167e88d17b0e88093f28db40e9806b0400ae009600a06e0e97b7acb7f1a2d8d55c437b84aa2b1e58c15f2bc3665d279bd3cc1a21c0b5770a2b62cbd096de71bfbbd453d5f2d47d16a5fd3a9672e5a3148eccfbdeb5e5789d39de6718119d40659b74ed553f0ae8048b6093df3d709c847980228d549adc10a5bc9068bd777d732ed59012077736b32f0554a382d32f4fcf62da6eb605748f39cf3388c0d9247032101220579ce36c9845661ee4f00b9e81c4d5f66e058ce314e65a74684458b30f661eeacef6ba4e73ddc7e96ad8a4feacaec3543f5a0b62363ab145c4cde9a5368a54c7058bca4d5c19890f6c33a7c69d0bf9d5b75ef6e5e912b3f840aa207a7836ff918c4c22e3f9783d11768d84cf187b4c80a8a5cf495845d71bcf3c0617b99f1c643ad6e83f44bef8695d1a2fdbb8f23652a679f5838d0417c7052163717a3f9d51389493f9bcb96dbe3821874cd63c5d15aeb942645eaeb1fe38e4e3760aaded093f1e041dde6b08f5f458a0a6145c30e7a7ef0e74dd5ef33ca8f09ec0a9a78f03b5256195293f7d77a4d7e6bac74287f5055e3d7d1ca85eaa411973767ace48d7ed351eefcea21870b868352829cf3baeb4a88fddfa4f50767f38747b2cca77678ebcdf9f27e4bf1b4e3fa88abe067e7f7f5e8c94454845cd2eaadc9d4ba754a692f7f4e68f66cd7e5c722fc5e650d76f598c2225a379281cd79ed4c11e9909e1cd7935e972b145ca21611615725634bfc006178491c74afdedc3d5160cbbe806a5d3580e0d86c823ad2e0c49f17b5de04bf5743b12ef293c8fb63ede213eb940330da8a69ab531af6d359cd45dc2e5412239c915f31c82a893f46b9ec379c21f8646a1ed9e0428cf73080d85e8cd8dc499dc6b24eed8e9e6b5faf923033c9dcc9ce07e5c01752c49116fdf4f6f38895671e8bc42f1113319ef468a3eb7e8907b0e32fc14dd07e7d10b2ac14880e5ccd14078385e93438bf244cf6b85d3759320b853179ddaf2ad3566c4ff1e061f49cc219d2ccfa263d12a04600913f77e6dca57370d0d4056c7602477657a912bd4cd94f46d10e27edb75c87833834be8ea6ee3498fb09271c6cec7545e43c304c9a6529040c800e1114dadb522c8153df56971f036c33691bb6ddd128c00b0b3abf3d3199e050c11e20d786821f54f3db871102050fcb6573e8112cb96181e28e61c3b41cfa36c95c3539dcd9ca7ea828775a0a1a2f44dcd971d23f77eaa369eb2eaa1db6792ee003a60228992d1f4d293191da4a876d420dfe4a146f8464c0936376f72191c0544b6d09d86b67e2ee708fd57e0eb0f045743784d905a4208d3b920680b30a8fa5a90026024a81c44e1046916ace7d2456ed2147d12a4605f5f71e71f00c453b6faf2168060aef89a3cfc3e453941fed21482a9f0ac1fd0903cadd64e3084d38bac43e8105aa7aff56dbcac001010cf8a48bb6c3fc14029fb7775c509e11e187182c1421662bb25010300f2c23e2bdc2b61fff3e92a8c6690f78f28567847a1520de36db9bf2cba51300c5be6947063f3519ebb52c43336e2ac04ef4c48e8d098ed6f6e9c25e6f9cea681af053509a5c303d7317c434e319a71b25d01fce89baaabc82bc313444e42cea273e7951861a82ce7b96ee2d43e8ac6298ed012bd50d97114ade67548f176c2764dfc3de3738979d5bbb602f5a2e3c5b461b3d0ed25dc41e4e9137290ef7d1061abe87079f5893fe550c0ae062c530ac52802d664cd5945046ca0432058843dcb34eae940d8e30eb3c4194a42f247826ca21251c104b8ceadfcb618e6b60046c5546f4ff86601112b0f8c5e5b8d7d6c88ce7b3e18044b1333a3853d1444200a4650308844fb3b3c1b557668e0aeb771f7c18040216e4fb70f14e2350f8ce911a08707f678fc35447ce448f56ced9489402a02113313d05825e6d297f501b9703656047fc03d1e9961b8747108cdeb5668199954a78c9c5089e428a773f1e8b2fe952de09778329fd09495a9f625b2600cbd5e225f5f82cf3049045ce444a31806b8e494e67af57219faf2592ced2861c887d7f70e0856138226ce80fa596f6b6f9fa99b1056c7a73d179c6b813d8d2c27470157bdeaad67e080af51c262b5f8756aeaf6faaaf3e390be0ad43f65e65076366c2a9f2be0390ecd22e07dda487c95a2fccb692ec7450148a2673950379c228225ca5ae92ea06ef35ad6549fefaa37b0fbb9a7ff0150aa43825986ba7f88616265a3ff29a3d3f821af5490ce0f64bc1b7de9dbd4bcf0f82757b56b35f48b183acaa3c6e04a6b3b3f3c54cbaaf958eba1ee51eb08cc478a0a3780d25a54681654ff0719683680ef7c220be47c1daf595528086cd17c3ff4299b2d6c00bad9317c597191f5a9cb2b629543c87b690239d7b8562e24d8777831561bdf8e04d354524db5965977d8d8bfac6e5be62318dc13710ff8d70434075d342781e332cf61b3241a979f7a5c8ba346301e2515a819edeab3a3698900429acbb9147b15aec329d8f8afad82c1a1e60164c0b1da2b5cf73436d02bff80a1cf23276359533408be97fc894a6ef81aa82751d40d33a9ef19b1253b308c33f22c7cb6fe38cc50d65349f8618d0c74dfde95e92644b9c2b1a4e866ead395a12a043bf70112d3651f1366caa6ab3d670c0f0ff89d985c8260db1a1968bedd6b63cc7e7d8d88454a49d58dd80af86977d49514d62a1f6809d75f1dbed2b0b6aee2f31a2211ce257cb0986f785c7fe06219409c6b1d1367811fcf1a977fcda880b86fa4e29d70247b4bee782b945bc6e7e1f6dabce36a3babf44350918c5c5a08a74a3bdbaeda8f033772f7efb93ed4bfad5d1d8599d5895e4b239100906ed9173debbbcd0d8ba7437006baea2d556ed6d84a65c7d78ef57f6b842d5b060ea15e2cecaf419b0ad9fa5a936272acb790540cf6108cbc43af646de84cd6024fe4a1a2cac26396b76f95d6d5897b47e350d88bd26ac2d12fe1f80f9e844e4dea3d4397682b6b64f1020a9a0a6c0ee1cbc3e538909b753e5950b849e0218ad040b14062a94c9763b663083d479eebafccb8c3d5ea063893fbc38d1c26ab417e7815a91d9e728f7eb245a9e5d86ba9782b9f91d3331cb66673ccf09cefd48049d92855e756dc8d990d0872373956fefc0d0fb98437147b638ee87fd4194aed669c6c73287f741851f35ff77b76d712f00049150180e04d918e114ca0a185e500c8c3fe08db5e0b6a49f72f9c296e4e2cd8d445cdcb14de99304458bcc92946e2987bc5266f642c01c09863d7088f070c22355e078543e294d239184e811b5e730d348528fbaf00fbba0244ecb71e1617b4093a204fb1a0012aa6ca80073eb78236db2c5ae7ab06f64d8133f87aa241e89b2dd42d844976a2bfe0a44893cf574476b9fdc6e0e07acdce12665a414a183c547c770be303bfaca28db99152beb301174af277d748f92a96c888e610fed8afb50d3e2292c179b1a457e326d321456873617309c48e7d433f52525f100be829842c71ed96cb107eef363e9ea68b7a0f283cc254d10e76448bc0c879a156fc13a422fc9eb77d8525dd95f79f7d058988fa78e7e6082fa7b4d80531ad697c20d7987c61c0ba4516ee98b07c710c110c6ab99143f94af1135b014b850c3688cea09153f4f5bffd9508ebd8e0d69550ed0da2e322244212c0069a0f656263428404b1db070922e859f793266c930056112a385d618eeb1438f57b61628dc05d1742ee9bd6b8503f52294653269aafafb0b8ecd042cb7c7c8cfb1b6e87c947892464110b2bad993cb94d2cc57be3d476162794dc7034ed41a09f799b112ce9a0716fdb2adaca8e101ae526ce3027d11205f29c145770c486b898e65c3f0f86129b61c42fecc6ed1dc4d67cf64624e5a143e7540ba1b3a50ffa4e117cd90baccb77866d649d81a284755a1618b35628b6b8825d7df9f88e41298c396365e6642948085866e064febf01dcb6b230848930cf079ca37cdf405db6cdda1466047816716afc6f606e1b599a424690e523a728ff674073205e0eb39c80c506380863aae7c184023d222bdb21f6db9e90f1667d5a25a3aac8e6a1806464241e3afe526721adcb4261e27b714d38c26cf461fc1bb77078897c0c1147dab28af1bdf8417908a29c6c400a66bd70cb96113fa9f7f89cb4b2ae0ea11a4ac4414a24f24826edf39319dcbecd44eae12c904ee3ad354ad194702796e87f0f38f475e01ba162891552f18f5005795e1df5137195381a8b64db1026276e2024390fc4b40d30090dc8c8c88db1b8c4295f6f55e3338a76a4dfbce66c962f26d3a59ae3b8d03e6997bcbc7c24fe702a510bb55b51d38ee07dd59eb9b12f882b6de601fbbe46d04afe22596507c533fc3c68e88ddb4d5ccb393ee47e7061b7bc6b846c4e296f03d9b24d20e542b37b119a8c72badaff1a25e5246e954d9c86b1cb2d628b0fbbeb60654702f77b91201116f1910c6802a0e52beb226e51b2df162ac689232ce6802ea8548d978c053b39c6e2085ea70e480b8b23aa1a9f9fb10fec261cd6df5c4501d724c20006810a183d8d808a9aea5ec306581244b4e40801949c86e2f6949cdb147c29086a4cfeb9ae9d107057b6655d8ddb68c6e43c6203d20bc6b1010bfbf7ccb4169da93060e0be2358fe3a6d955e115352b9a735b8430e3e9bcb81714abf91ab1d359aa8a11d044777b60687a3b8ee17bcb702006bfe11ff39b8a0720464330f1b619cf50f10e45b913813b79d72464627f705e2f6fbe6bec0f86107d6888ab9b866b865289efcefe9cac9ea5c0ead60305e05fd22c78ebc06498400a43da4f425c2772feef5a5c7a27abc8f5f647fc2739c8799b362a97c9e56e60b149a272d205649eca9dc043f0e378994892cb172aa37a417b763e597c6e0027a9c1de53b558def81f73a787c34e666adb0274b0d0e40eb8c5929d3a6facaba4ae113b581c0d8d22050e2abb552f9b08a4195629d61d24ef2a916b8721f883b2e06168ab45e86a07d5041394c5b56274603c1145ac5162c288a5d6d808a8249053afe04d213288a6f8778e38ceac4354b90bad342de7c6f2cc9759e45b342785105bef76a4439720f6436cbfd328adc07ee58e0c2953942b44b59e7dafc641d2286a1ac82010da993ab9e0ed17873e09250308ba8bd48852cdda244618920c1b6ba50bcd072753a3627d33c68004105bd6795b91f3dc16f224f206e360b391358814f24918f61c03381546e3bbcd21e992ea202df5880ec1e2c409b62c01d4664079cf0ff014e2ea8d102e8a208d94f39f68224d33b21480df9f8fa9aafd9964699f51ed9c67d05bad51ea255f6065ab658f572ba35d685053503fc0cb1c5e95d9e186f3b20435780a6fba4e193261646f01d8e615b0e41c34be306f5f36fdde1c00c3464996052bdd92b0c8301fced35903b583a77a7c5ab8b59e25288cdf49af2b4758ef6e7752566f5ec45a997c9bb5974876c7fbdc2f552ed12d69c156ad897245cd0832aa96b2b72c181d3f13fc0d7f1a9a9b4fd58bcaae083afcca77ceda7d22f5fe5d6b595679357d6c729299e4b049ef60f612c056d0794cb7344ae8aa178a0e147b7f080000770cb22d4366a55150aa0644a092eb4eb9b8eccabe67087fa57f969d775ec29c69c293396f0c6a66de0e86112bd45d5413deb247d38735942fd6e4dde17e2db829a984b7904c1ea47682bd6f4c3240058a2250f034fdae413a966bff26aad05df6e1ee15d659f9266f5799964947f33bc77a68ec06c7ec2b8603fc6817156439b1fbc045f7c8966fc80e7f8b4345246e79e965e54e7a4fddde3fcb99f94f1e8d3444abd4f73dada1b28f40f155309b59e1061c60ac095c9a42740c3c3e15eb8fc1f86c84e25fd385edb0a2d4733ee71abfba2b087f16ae6128824548a91f27218b66acea32510ee4d46ae1fc17707042d5fe6cc99f3a7f4d0d48b272f0ec532d2ca2df634a9a6c5b2965d2a52ef24150cd58b06b32812634678b45c20e7c536345eb47c683aed3f16eff2d562de0d8ba28565f3079053cf1b3c51bd3520455ee2b16df63c990abe91417a7270bef96b3d699e4250889b86605773b644d58694649c6e711a79fc75394deee63c9d552b43af218b37ef4c2e6f988e38b0b9ee29df5832f19ec03f806b381d3669952c3a20a22975032b3ee26d3677b1ead3c5cdaf1b322d40528c40c84a5ef70ce82f0291a130751bd41f6caff0194ac7eefd74c46f981dd189c62376a3e59869ccd11048dec52591e7ab5f377e681a3496cb5d94069d14f851cd6f6876bf9eeb014b64549da268df557ff9bc0fff83cacea7dd3a2c5e9efa9d540312003ad80bd0d0df7c5260cedbf688c5ea0fe98d1acfe28e60c7295c551f6b6a3d58a3e32b8b0bb97ae83d41a1c3e0a44781d988ab3de839fee4ef84d608c37ee0ad9c6271e42e42462be168300fa1e102c566af15aed924934bddde6a313436288bea61e7da25add2e6a7989b6d4c8f3a0bb38428688d18e6f5f10c31f54ecef66f214bf9b4984599e65a0e66e087d53cb9742aa41b13627d25f4c678330125c1dc75c1b3b12d542b95ade571e063d62c222b6a65e2959240bb1d2eb58859ffc9262c3f3537182d8b910c11f114e0583945fb7639974f958318f5f5786d4c2cc7a4fb49a086c5ca52e8ea2679e8386896c9867b943ae62cc90df13564a06b2e6ce20eacf7bd45a02f2dc025cb703c27c11a27a83a5c5507c8195a2b823b02fb7f0a4906bfb8a22a37b870182294bb32b374e14249ba272a7a3afd8f25387b998c9e18d202e90bd95ee372cf168d750fca6ad8ec82510b2918ae9b48068f2bdb79142c7a3e7585f687844bd70f86be2a36704f8005d2b4c1b18e1d8cd9164c91ef1fff21db8cc9953dbe9ef9a5d5d375f5f0f039718b00f253061429f59c769a5eefb249472d0b42dc628a16e43c58ca2b85c3b5a149070ac0a07e15001a5006b0bb86d1265349d1e3530964d1ed1eef21a8a1bf118d53ce63feb8f1f29c64686809dfb2ad7d22e7fe4712b8484293393d6a9178727f62b0e45b0c5ff9a4170c20b59c5aeddf212e46a32d99c6fc653c79b6c554de8c6bc300e2da7dfdf857d5baf34a0cdef745f0c73a0e3ce4424260c69621ee1580a904f486942a5541b888c3b034a73d8f06d89335816c998ddcf255c6671c10ec4e958156d7f1a06f11bd63a6af4358563676dba161e3bec9713013e0d3ee7bcbebd54f5ba86d54157a982ff617129db55291ef1a7504d1656e0b1e2f2954c4ca58ade3dcf681831025988f445fedf2ea7b7ff00f36746b95ee3e0ab6af3cc1832f662444b2732b41e138a7daddf19e80dc2c08087647334835294c8e930a258fc29d691d89be2b410648ba7c16ef735631dd012c807daf3f6518fe07918ff09fc6d334dc3adff818aaa1b892c7e4b307b44953e11011baaef1a17317b80853ee1bd2208d52e5bba716d9fdcc4bebd16ebfbec8d9d987a71e4b60866882fc982a3283bbae646fd9cdf070edef7b362860214b9ae1ce5d596f30aa068d011122188280b836159df9abe196ca495b67792919f3361b34d5afdead1fced6233f2c0e515f6e6acc0373055030ebeb25960e5886941b99589984521d733e4a8ff5dae3b595fdd013924914e1614621e8c1b9f82625f454848802889dcd06e1fe6d9c27faf3d074a54620b9a92ce64908bb5e224358ee456f1175f4325a1006ac9dcc382c37438a9b60e761e1c474fcbd72e11713078614b818c454c9b0aa2ad2274d95882851257084a7f226a1a9bcb52c985c08c9cbb150385b7d42591b4b5e3b543eff51b9844a5793b7efaafb133ca6321b3c6b5f451192ebf15edf5efbfa180742a159df456c4e9366baabb6f39a0270b2c5b4b28170813d5c3c0b9e7fb9ef1996c430d2351e0c41078a5d00b4a4b00cf95a8408059c811773618b2c90706c5d4bc7c26d55dc5b0be1deb0d7c49826be76d5355fcf5e8059ef80700fdec8e0b866003287613c8ddc0abdf0168c2c7397f884afeeaad7ffc21f4c82fff00b1bb20b148fced8ed69613c501033e994312700cfa7031675572d3dfe70d0138e4367e15d9722b830013122bb93a57aa10a57fc0d5e05b04ad45678f28515ec853f187186fed00346e4e80f7e21c01601ecf413701f65b21003037acc06e8e9b035aac466ce65bb146c8762111eb3086b9d0f163a96ea691f4041ec51125f4d36de263793c3e45134488815b20115c37fbbb96a9b07dcfebac4f8803f35fd3ef77aae154e3227f54ac2b5b1556d8b75df43756d3a3cca7a3cbec41bc30defa2664358cf56e8a195dcb210b63269327b7173f747d30deab3b699af29a94204ec82d742d298064ce8cf0c1c623250f0cdcecf032b8dd4d81b7f336c84dc80acd136ccf9f45cc9806c8c646cf92106c9783e83282bfedcdc8ba5b32a884c1e7ea74e59b2fe6b08a8dfe86b3c9e7ff966f701f57a6380e3aa73c61213e6c74b49fc2f413f9354cf051158977356c72457739f6179a6b1864f81228bffcd17af63ddda36bcdd886e9d27e71437573619bd8c5241a3285a8162131753ec1191727bf478b747e85d8a8f766feec7fe7aa0059db4612c725decc01000e7304ef2b9a869640968f8b64ac8e2b4801efe0c1f61aa560266501ef405aa843f2c8fb136aed3c633ebe662be0ce62d4d77db15c3f8b412a26e098b1b814d6a59c9f717ed25a9e43dccdec85ab4fdf8a093bb41075272d02b15e896a381a2c6481c6f72b0603eaad9581b372802f0de6784fcf356698765cc97b6f56f4e2eb6676165c63cc90296f05ac0a3c00567ff5de063eb09f605e8ae7832dd6849d2a098e67c2f1a502818d511c307c92d7bd7d7298a40afc828e1beb67cc4a6b39f1b8512337665cd6956807b0e80a9e90f2d4bad79255ae8488e41be6d742f570309db4e88570778e6fae09e1058f39578b52eab3eef077fe019ff437f5810e295e2931bc6154e48880e002cdae081287bee40b596bade75d20967236b135238084afe1f5e83814a169e68d5e11a7ec31fa8b121b580c5007ef2a5c750c898242bfa96512af445903abf9f85ccd32c81bec24eb41818ddcedd4beb4e7110acf62b53c1797a125bed68c82617159f0a17319784df14ef55827f5848db853a650ff15805b1181f3bf3937dca0fdc1a5ce6421943a684dc0239545012c8b03a106338b711aa898dd1cdef58d9d8d13fd39605ccdd0620665bb6223bf33a4d30758ca5dab00b0c0d146b34d94294d47ec2efd0c78268152f91b3eab612303be10411e57136cef78d7aa89395c711d8fda759f184460b5f245969d8ddd442ee14d8167ca0816eefdd169118eb37f2842fb5692db1b0e56a69c313712d4758c7ffd94eab426550dc2202a30e897a3beb1be89bc4ab91665089507aa9680d354ffbff193e2d0a1e566823452ff981fd0823e1c569c452581daff4eaf5327d48091e61245c2032bc999a4a0a75a58a2001f30d28aff4c454d91a9f1d41324df8679a03649c27302a49500b7667f2e561e441b005339e3ac216c50045111551801815e79a8d11e51699c5e9daa041aca601f24ac5cccd7cda039c3ec62c365575d0a2b53607888da1952ac50917623af0ce50f1e983c6b20ac030b15f057b78ad6144673ef07413da5b381df019dcaac693a2465171310e09c73c07f1c1956797fd7cd82d7d065f7016730538dcac87246ef586ccc4e695dbc698355cd22b3334f715fc235479fb8583e2284341f4ea494c89bf8b04fe3325f262a1f59e31679d8cad6219ecc56759b68ad363e5330a6a5ad3843eec4d2402a5d22c6958c83910607ab058e383d8e98740711045ef080dae1af743960ab149448ebdceb89c4acebeb35a9b81208b498a86dbf6c981d0cb06392a211557426eb8c459ef08968f70a45d61c29c2cdfb0bb27bf1db08396e131623ecffed6cff0085825dd146cde763c382982b7866dcc9631042cf7e4851ffead3842ccb3c7ee6ca8d0b2b3ab289ea032d8f79b21f6e8d83805286898eac9d9af0c70c9eeb2bcbd6e8751c788520a8c180d7053b0c886bfc006f335f6535bc9adb630db65511530140e42b9689ec1e26b599b743f1d3734bb7f896bcd2f060b5301fa28057729c8e9b1e4f60aa0fb0b8d88af5e103e36b129806418fcc512efb17cd9355b1c71c818cb184d3dae890517f580445c0f45e7d923755318de1e511ba5c21e763c8dd71763f483c5d137d7ddefc14446951aaf5648eef9e1e5b8a38488fe6770f1ac9db2b5a3d0977f5d5c347a44f1aad7202d58f947300d2c42b4678358d449001bd5401bc7b21c5f4ce03f1a922f3ff7daf8b487328a77fd0f7288de83fc631228d11ca4c41a919d2733539ba32442eab15e18c5c41e0affca071de03b1b03b02e1041b4ef8de5dda83be148fb02442633e5ebb2af51205c74d56319e55cdbdca92ecbae65baca393b77f079d45bb9f5018bc30bce2b3d4d3b48db718ef7d20442ef7c71d38a072c4cd38f16f0729e0d86ed73e4eaca149c88fb471707999200ce73381776a02b0e623ab9caabf9735fcadc7f4db2baa51db637e9b0aefaa8ba0882f64c2dd0783e7a630f684ff46ffc68390e2d7ead05b73331dec5f9a7f376c408520a793b39f228e3793b196f94a0b793978c525c65ec41a9c27aabd20da6e037620a3c25ccbc0cd4dcbcb10621fb536431388693d7a14b7b77a9cd55c549c97c17036cdd11fb6bdddbc1356fe63ad1d5f04c5312a4961e664fa75569b5b16adaba26562cf4b315f6d21a6bd5736bc94726d9ea40e229176a3c7f4b53991b6d1ffb645dac51defbfba5fbef89817af157e0918b0bacf28e81a39c34f04de1389db4deed6a506f5e40bb5d76e576ed75db56436d8d98559a50e1bc5d3b3fa2d89d330bfae69b504aa14c985e5257134ae46329ddf7c72bde248f947bf5d80ac3c74b06fbf82df9237adf568adf6407d7937ef21ca728110311e56ee67ee9649a036b382c37df0abea4d17e3bea89616e6d1b8eeefed04523eea8da9af38a2dfbc99dfe0da05473cae820396c4cfd9900c8accc72a653ddcafe83d2f6a265ab1c0df675fb99cc947be34ea5f8c1974fe70c5d91e750bfb5de420521ff69084fc0e8d3df946095c4bc63ee30cc9f52696ea61c0aee51087697914ee8de694496dacf8c215b3f6ab13a33f1d4275b00104d31d1ec68931814531af1925fd10bee7df9645ed8090878ba3fb6cfcaaf4ee50c9d37dce5a7231a0f706d92045b1258e3173ac38d9a30a721925955308c24c0cbf73219f2dce24bd3a1ebf9f2765cca7c3b5a1aa8e8daec2e475f0361dff8583ab748ddcde531c921357ba79ae8e4b9e9a3860fcb6b1d7ec5a390f98fb2320f00dbbe26b80b18bd97aa0651a80e1b75eaa80853cf8e947af0e8d1ff75e78a0a22832792c99d07766c1a54d5d3541c923510db7e89808ae497e6e04f96def1f7d0fd77f03055f8c890ea10794da20cbe6c9be66c717b1c9e1524039634d22a4c54a8023a5f2a1620a142bac429ba7b115cb0f7f34ca318d454cdf04d54053652de8689c52f4f9be5ad9aea71715c5a3cd32f9622a3dde5648c40561309c2bf5693a548aed7a03a7847941ab88bdf175d9dcfaa2ecec16439692f2e4bcec8fcec91e3ea3795737aff7b7de9ae78fa09efdd6ca77de7ed594c11d0633d687081e46134918604d1858f6441f00f015fa578839eb08a63f01cf83ac1d994465984cd833ab4f40cab59f8f15cb0016cd44ac64df9e1406423a30274be1f503bb5801d7f265aa489f7d80653cf7c063b4d1f000ea46915bca5653736fa82e75e3e06a2c40790cd3a00406803583765a085ef02c67457d9d52c92ae6980468a337a02fa422f55c5c23092b8dc2162d1070df6b4439e477d25a24a9c08f3d545e9c202aba659ec94b44935342f4cbc0a4634de7fe24d90c4abc77359c7566c7fd30944f10d6a4d19dda29ae080b6698321b8d2577eddb8829faa3f31d4468452589723cf017ae9f9a2663b03f92b0c4c51e535db259f709d9f189e69862019e0d31d478b4aab8b85ea5f30ea4300541be64345130aa22623fffbd23e7f53eccf17f29d5592d849c330aacf6ef246cf4d92b1b84d22b0b5c9f77cb1cb6c8284d4b88864366a102405434ae9e711fd9b051092eb12db15cf15f9c65ac94abe0f9897a492b78e20f933f72f53652096605f4406682836f885ad90248b30dcd458bea0be372668442f4685a65f0f5c9fe5bff10aeefb94d16fbae410dd225592dfe556b3146789869a84060b7f9a7c2609d04ab5b7c5c5107accbb153d65b857fbbee4c84f0cb7bf24df24a4ae8c3ffc023e7ab8d4f5cc6d5861697738e0e08aad3134e5cd13f7bb203c8ac55fcf3a972483f3b2a935c26631c3b94618e9906f69c00dde17db33dc883d38d3f3d9b2830f7c313fefe6e8a3315e667833ae95b58101fb45f75a992e76c243d88a492e4af1496c45db98a8225be9cbee8c0a990c27e4c07abae692e7fabdc5eb35d5482637f3b990f9af979f7711b844b324f63ca1998ecd59f31b859a0ab2de5e07be402473e616d10b2e043ef54198352127959acae410d206fb0659c45e918d683847fad1d184ac8cc843558b89bfe655e58163246ec8eab67f8fc89e8806ab415f1d37d027f5b69d3e733f972ce9fff135a0b34898c1ddbeeb74d0d03221c0ebe5fee1ebc1f06cc350b21cb9f498e838fcbb79a55298af62318bd2fc9f598bb56b7b09580c224c1908ae1d6089dfa184fb0bb3a6f6d9e43a9fa51cafb6cd16d65c58ab9ac03881a8ad659ce7d790975b719a76e070c9e200a3f2b669c8adcdd1ed42a6207fd0808344e2db65e047be4c8a6b871be234ae612430d210987dd91060c85012a432466bba10fff079820cfd7105f4eb49b253f97b71c3f3be97e015baa57183496282ba5604a44ca169f7cd35f8273471941bd5ad9384928937fdc7bc132941e843141d89d0a52962a2964774680e56fe883e022d821ad2ef237d37290829e6cfce4aad6a7af4cf025d4bfad90db346d9c0cbcc9eabcade44582e408a2846b82a2738a7358f230137dfa287cb619be12325dce8a144c28b93088c33893d0b07f4b94d986bf2966d973a691fb357992a7623e62eabb23d6317fa29d5a3f4427c6f9c80d96dab331e0cc05f9dee61c8f145a08a4187b31e19e8a14ccb411f037cf2ab9f3ba9d4547c3c69a13a7bbafec96fab6c034aa5b2e243282db902079277fb7c01416e7cacc41eb8f5698089a3b71a40c9f00f885f52f5268aeea5bb7bc0c09b80958ff6004340ff043895b026493f189b02da9480972c9c9f0872e4806539d78972626188ac0dbe901e25d880264aec5f2d633efe35b159b44f15ac4d24c462937f7bd08709190e8021dbc9b14636bd91ec74996ca35b94c4f6525d651bc50ef92374ff7c06b0eb426a5c3e5b998141008d3d0a79b8b23b0f0f69649527183d81ec0e447b4f927bd1b2e1c2b9b5e8d93dc8dc219a461b348bdccaf6c7f3f7373795842ec37d9ce344ced0ca56497cda31ec7eca0b56b9165280fa848cb00bd1dc0a9335d7c5c885df6d7b03891f326cc9f9906b27fbc1ecc03ed61d4cea43f6e8d6ee3caebb9f8e72722643b4df5d011a9613a349d1ea7e36a8d502953449b30f6c8681e6f9e2567b42275f7695911b107d80f899b102bd0ce95295d14b9f8c31e7ac73ed21a5485bec2ed2a57dccb44b8db08ef852d87c24c6de455c7de7f0630ff84dee908df337fe236b06f0e996eca6941d37c7cf16b80af7ca1f04705ca36a30c00095ecb756cb8357e67cbf2a8da98fbe69dc6a43f11db29fc1401da67b7b338fc35c9536729bcebac2590c8cadd2f4f4cca0b1f3cfec547b9291c5cb1f7617abe1ac2a84cce0bbaed9391f955dc8358b2a2ac2ca57050f46a80247493ab1ab8be984fd9db0d51cb745a7f962bc1fde482d3beab55d2aae9e68ae44b3a13f55b0eda17ff5b289a1afcc2e97ce69dc375b7051af51cf03204969ee3abd4053f21f74f2143c9dfd81a813d11112857d2f4d3972a5f89d833130872f5efe37ede9a41f1347f87e8bc374f2a5a1c540da0b296e98c7b91f8bd7b5764a0fcfabd6238d4f273f2dec3cc41d1fc703124c59382821a03c752b21ae621f4282df2cec79a6fdc2453eccb8b8f2f54536b038a8dc4a8d79a6419d6b6c84372d1a56b4dc66c50466b6e72edac2d66a012169fb6e95867a8bd9aca8ebb28a72b835c59f718652d3215e7a282d2d9343b053069ef9c5407b76716b6fb953fc5a85f5ecb951cf93b5d2f3b10b3d739ece3384ff8058068f37d77974d6dd47d15612fb2b70694a0b4cb3d7658acaa469c9558eb46950e83b8853924adf0778bace07e2a7d32a08cda00e0b7f4e64e074b4f28692da4068344d43300801c8142f849eb8b66b8b7a827c93e23ef69aba3fda5a5d8a74c9a0eebd29cc4770575be1ccd211533d17978b706c9a951fa6b5ba707c3a15f4e3888a259c43f4419c595eefe3f7f2bf588964e629ac40a5caf82507b608b65f5c15feb8b7e845b8ae5d2d795252536ebf0d4350c848d57c773392f005f370a8f3ecc086fcd5af9ed1e5cc94041b65cbb41e8741515462a2303c21f41580dbdc6cfca02d4aec001db3f339d0317328d9a426d36b441b1f488866002dea48b94558ca96fa472c73e8b4b5e471d62d642b40b243a26c505b1662fe241fbd5f4b3dc30a2bec39db259737d866408470c1a0059790598a40551abe9f557b3e8ad6aeac344dc4265435f9ab4d2cd8c92d30c07ea42c24628ce470293602ad0a1a23945ec0547f9934d825a270689560c363951c278c203e748e191ee52f79653d7e2ea293d6ff9fc3b13caf0b3f96d1a8c3f4c48e81e381c51cb0768a2a133178b6c081a6a2ea48c5d48b9232253146e64aa45221ccf85b77b96c4a25be20c01ca85b2f9f4e97e029274da707152a15848aaa0d8f651d88e502d9c864d98df08b70344b21477f9ee8a8d96c4784691940136de275fb1022caeca1f73b696ddd4c84842727193296d3e62a753f787543c4734c4ff74a083128b94ce236a02b9e8b1013b6c7c3c23646ce5a7f48b457d27f8ba3bbc3df86ebcf03326b671de05800720bc382d53e280a228123278fb137cadd662a8bd83295d9a072988664607a36fade6b395377bc0881ddfe96d1429eb9d22456a0b014b952dda189beb36745eeebd8c303eb4fb16f6ef3220e26e148768bf9525a59afed12220ae6fca755e487e23097529baa580ce3d22c5760b1608ca3df2be3387b91227ce2acc0b7fcd643b06a339b42e9f82a3ce9f66301f6a9de35b0b76316e3ea2c00da34f42001aa5f1c1251d865ef6b00989ace44207785d5dac6054e13d71ec782890c6d172fe4a30df9169857dea8f98d42c15ff01dcff441bfdec3ddd87c12a6d42955b6a2246ec40fa5b67273fbb74751a71f03ff75c1efbfe8043016d3fbb91149a260d75e131f56bac00fa9c053c65a13ee20b1354afab79c52df884bc39e12be4c90a752209031e521e58b8704d409dc7c6bd5a357471ad950b4e7161bb77f2a414eee74bd1a3551ea0ce4e51facb182aea26573bd5dd219ea5342a50ee0ec46b4ce83ee36c30eb9f09ed64ee8e50d9d3b48e97d5e8d15a112b6bdb324dd3d63b0d740c7b93a397d7791f9983147817fe4a63ab0132d63c6a9d57d07b0472807a48442caca52f5fc2cf3c4ff00251b1a6e6c3358cc2d9d5c18e4bea0bea720984108729a9974a6546815257d60faa27006041f81eb2990914915ac22e07cbafc1e6b3af9fb0bb82126e735e212e03734ddbb40941437fd495941256f57431663b1ee4a90c1ea269fe1d7d4fee14e707a56fad4c87152ca3d786f7812742fee7a6dfc8c5553d4b309c1b07260e036e03b04e671ca9d8d60cdb3da8479e8b4ce4381ce3a906f3024d50ea46241dfefce8903ea63e58e05ae2c351a2a9db16d5a4c31990993f38e3b68f9feb51ba518855cb90d39fcb372044eeeb8c64179e128385db0614a94c88c836fdd42cc9db0cdc944b7a4a61c36f7e44c868e3af7e0a5db69aef7d4806c2e9cff3ad3292ceff322d790c2b901d7ac496af640c71d1a281913247d467257111e525f64ba0d457dde552bd22a97615d11354b6e607d232c27b4ec6ecf5e83b5538ffbefede9298a643243d9b82ae4a94b3d4a4db2667b04035c5369d20a294056df3c5b7fd471e7b8dab5f11ad4368527a7c29204428cfc51f2f88c6cfd214aa5f701b56c84aa7090cc5919f1ed483b3792f584d4cea41b046b5a3b34ee8ae9729121fd8bf6fa57695e9643c3cacb16228296222472dc9f6cb7015a02f53461809011710e29d123323dd2f448c7ee8d0b5368ba0087060fd475857e3b59a1c14dd590ca1540d33b6b2d09de1dde7c1744710ba61a5be69ba3d82ee728547ca616c6b7d89fcf369ec80ec9f801d19b31cd6cb185e0b7220df2bb57aedc528adc012403330337035424873963255c7616e1517624e79c33e864493a9f3f7f27d407b09a3852975d1f747a10ea579e50bdfe57824e23d7ae3545c40c341d7b8901d547db828ebdc860ea9d8a8e36a6f358ef7c67350a1144d0450c6d8c1da10f86608f9ca6e25ed807fce97343601f804f9f23820e00e4e97334f584e7e977264b8232e38312f22b722944d5131f2d74a97ac27bfa9c69494444dfefecaff8f4b31852fe9593f05e5b0e4e4725d16edb743942cbd5cf9f750aae57d1c66025e88320a81e7af3ddddd4b0fb2edbd4b086db771ccee6d1bbbce1e1d6bf5014cef8ff8423429d27ac3d14e64afae71f0afde7ff50adb552ac6a1e1e71c343ad8b54fe1e4f7dad7aea8687b8f330eb6048b11223c20e543c789130f3f076d13ee59207ff850bc0b012263cc0d4bfef3c0851c45ff125519cc19fbfe73be8401b00eb1d84b47f3ee25749f57968bb289c414224449901ea4010053689e70f029120418276ee113d369f50457c30a4e16325ea8b8459248e10c5cf8ed0008c350c5166f03f41dbb1634729fc8e871fddf0709b4c3ccc2693e9c37b8ef7e171cc5e0fced9f090764f88699b8b217f102c0f69dfdccba6c6ea1a2b3952d394634038530a8a60631deb545f750b974d9fd67bb3acd62a001938e7dce31dce3d4f1f74d95e67875ea7d3e9743a9d0ee79c73ce3d2fe4bec339e79c732fecbec339e79c732fdc7c8773ce39e75ea8bfc339e79c732ff4f80ee79c73ce39dfe19c73ceb947ec845c1c37aebfc42081182e7845640cc810b2a24ac9b6632faa1a74908ebda85c2e58ad56abd56ab55aad56abd56ab55aad56abd56ab55aad56abd56ab55aad562bcb62612574004bb004cb6a6f86730bc016b0056c015bc016b0056c015bc016b0056c79bd58ced3056cc9b804698034401a2e00a879dbebdf5e3febf5310ad00afbd6120dd4c0fe32d529345db26179f3184f7a0cb64a51580d67fc03bdc8ed4440dfcdec66e76db3262e0aabaf48314ed5655f3f458adb373983407c5fad7f3bbaa1556b1f16d6aa9cbe84bf16a06a385fac84ce01a7cf8a5d6f58823d51d46e224b0158c3ce7f7118432d4b5553e00dcbca20cbc6fe6a13ac546ba5d683a3b5ba60fbb0b6769825cb940e55cbe8189b69977e6953d3e8164f712d702b2352c368187d8396e91aa69ee05edfa071d0309aa569748c86e118638c47a4c7559aa567b44b9b9a46c768183d22c18d0956d22c4b22729134cb6acdd22ccdd22ccdd2accab1e04c363339924371299353712eb89366611b582633b79aad662b8263d1b79a7a82fbad88cd065b0de782336d35a6f9b19d5c0b1c8a53712e38d356b39ddb699aa6699a2668a363b036c14a2372446e27693b2d264d8cb7733bb7733bb7733bb7b396655996b80666b19909b7b00bc630b8dc4e518d480b9989c42b7805c7c0353ac631b00cbc8261300b5e1995209cc9344dd3344d6cc305c76018cc82573089c92c725992cc64ea60a36913ac84432dd3344dd3344dd3344d934462d262129398c424262b8b25d2217ad94c04253a454c2227914b64627264632473511dd18c68462484484717cdd413dc8b8410a940342382227a895ca219d06563d2344dd334cded2ccbb22cbdd707ca87e903f5c1c2333d1aefa5592630914b243aadc8490445f412cd885c3c95f3dedf37224736462ea39811cc8865b4327a59125a0ab5423a42e6876a7a1d43ae904c25d550eb2b2d092de5bcf7f7fdffe6b336c14a98dc4ecddc9cd909b7733b459c5dcdc2e5fe3eefa5599a95996866792af35e9624cb7b7fdf3f8964f25e3c654778ea2bb79bbdd715b92cc965edeffb2791bc97c8e5bd40a78d029dc4f151a013e8f49576445a928bca7b7fdf3f89f49576045c618f22976b8b5c2297c8d53b1f6a59122b8a5414432dd0c98ed0ad6bb88f58a8a536bb9d1f47356cf7503b8e7e1cb9f43a628da318efc711cc881c95f47eee22d7085b01de6be1660ce950f9b03ac56b21f71d86338c2bb5387b64d0c992d052a5bf80ab4508b54240844cf021997ae23e8b6ec2b2ec4828f45ca8d509b546e468eb5ac73dbba72f81fc38aad1b35a80da4731b00f365f7f24e3c308f08dbe1f473023965e4764af21eda3957a82fbdc37e1167221214828325359b5c9cf2c4d97d2955fdbfcde4432919965979fcbb348a6caeaf52faab66aab97b20d0f86b76aedbd59866f86b1a6e5bc6979db38aeeb365cb7d968ede1c1d11e1ccede9c7736ef743c1ecffbf8001931e2fb4242c01ce67004f5fc2372389ae8012116c459e940136c1c6c7b527afa70ef401cdb5a1cddedae87c53ab8c3a66f758adc4dd8f4bb798c7bfbca3bc4680bc3362833ec16a2acf8d20ced675cd7b83bd19e7664067bd458d6c658994ef78b966e48bbed48ea6e5d6aafc7c8800ea555add5ddc7401eb67d1e76eb6a2a186c22b6bd19feabb22337e405bbbebd9cf90114776fd636612c56599a4cdb2c4b92a4a6595d2e92dca06b8f3695025ddd65bfc2d05df12b89242242427eed4d3e9b7305adb0bd3ed24bbfafa48af48ad47eceb2a8a9c0226631cbf99460dd5efb600a4ca03b42ce4d4becd7e7740836efe8559754fb09c17efd122b9e745bf1063abac334efc92da9b9ea12bbad2eb95b49863176d2335d82b1922c8ed6d5713e9f11ecd72721fbfb2658094585a5af221345ec4f54ee6351c5b642db2ab1e2273f02b4c79fb5dfd45ab2d696eebdb7543fcbb22c2b558c31c6b854434dd3344dd34a38047bd8a34db95c95aca4699625355113c6027bd8e336c9a5fa1da75245aa31fe124d3ce998d6b0f829c122d64b26586947bf56b42d3b42ff247bc0ad1b15e0c08103475531e9a0010c55661162aba4a8c0405568b074305880c142690a8d18d62bc5654a39532f505a6b0f8f172c2fc8fdc2c5870ecc01c60c0c178c18183a7c58a534a51c82d2105aeb8b9a17314081550100416c800515322fd0f8a194330cf4bc421059a339e79c737e79e143e73af60243042ce8b61b353466c8c10d261c2910504941c92165054cca89032911c09aa6a5b0e89aa6bda45c20057547ae5edf9636e56a9db4566befcdecbd5986b19661ac69396b396f1bc775d80b63659af3c6715db7d9e86eb3d17ab3d11e26115eb22a695694f96295ad92b25013556599e69cedcdb2c8d9f9b11c8e9fdabad671cfee07d343db77eddf0afba0037400f6eb7fe5577e65f9c9f4cfa5f3955f8d7a42bb56fbf03c1deed980505e8d67da4c7fa43e4c1f27fd81fa60e19d5fc96980503cc561b866792f8fc6a3f186f06aba47534f70ef0de111e1d17cb0f04c8fa6f3b96816c8c66a13ace4bdbc97f7da4ebec25536c39cc5597889b90bafc149efa567740d26b90bee82b7e02b9dbba827b8e72df80bdc05afc155dc05c69ecf332f4f618c31b698244992e4299ee2299ee2299ee2a91f143e287c506800f6285809f7946d98006160c204280311d0bc5744c4c3da7a036b690e6b6dd83952a02188ad65d720e36461d3c082f2030d34faf826ce0eabf9041b77ec45c60d5d46096436192e9c20a3450a326440c9c8c00a9afb6d4f0b818cb28ffbb10b5705bd3deb5ddd68586731969554570eae5ebffb8fdb745955d9beeb18b65176a692e867db7759b8f5cf5a6bb9eeb23121275ad68d3d6a288db5f0b6b82db4d4755fd0c2a5043c54805cc16aef8ebd9035c06185075cb06c908ebdc4a8818c71a3efdc9a80dd3158a0427d12dd31627002fd183a482ff2220302314e2d8891001d23c9a56b6f080952481a445ec81569c3f7d9d39ed75a9ad50b0e516bb527d841e5060c2a32bb632f2a3ab60e6c151a27a87020c36041050a83e5b4f38b0aaa8ffb5ff8bca0c18d22646c90d1a2a4c1d0b5195262d840ecaecc3c6c1f360c163f6c1db6c6ea61cbec116cd57ee192c28b1b68a0007fc7a19c6a3f21645fbf24fbfa27dddea75f729f7a18c03ef6279dba8060f63570873d6a2c169583d244cea9d3b221ed1a4c25552d64554bb12cd3348ff1a46bac4aaadfef8f368673320125b1396c4c25e18005a3c56839ae0551e1d0cd748c71ce4ac899e21230c7ce8fbfd36e0b1de367d1f16f704771572beeacb5b8bbf75edc7d966559863b8c31c61877df699b2dd45436f57261964a9ea64b19d3317e4d8ba00cc69d4a2762add5f16b58fb84b0bdf625db3d6575abdd4a87898ca08addefeee6b3cf423e33916559863f15d809b8a78e80ecb36fbbaa7bb2245ec7e3a9466a4390886d37e288d0e39d2c491db7ed9c54591662a54ff8b1fff99312187eec83fea41b5153499fa9926a48484b981e717a6ce741a89e19cfab92382df09e2c49ad22a0a8c0ec887e151e4e47977884c048a4fa1d6de211021ba9cf01021bb176a3ed8ee6fcfe8e06adb03def999129f1d0889c8ea723725ada849640dd533de20c3f23843ce849087910f8216f451240a093f3093d2e3b5241b80fdbfed89da00f79106acb9280be3e3ded48f5784e8c2509f9fa9c9625f97cd523c431f70f441cedab8f5d77665fb3ff10cfec3be2a9ea152466cfc3d1f3ea75ec4e8fabd7068cddd89d1ef3ec293efc159b3ac6ff09f183216647726847a8a510fc5a78eaf83f16d8590f794c079365a884920fa790d508040000090317000020140c8a44a2344d71200be4dc0114800a587c46686c3a164b2461418a032186a58c210418400c208400420c333366880066007e784c7517611974ba0c064e8745b0699d76e2c2b0c2ea0803e9e6deeefda1a58f0d765cb8903cc447173c08dd01220eaf3d0c5cc6c291f6b7a21bd7f8c7f793de9fe0aae1577e59f92a5229d76039567105a4f7eea692ce3dcd7fa4f12e6118363967693a6c4a104cf2a48a748c509e2a24f5a763277b8b6498f254413636b6dbd4595d9b2d47297f66756148c1403f66a11e18c72527e24dc43a8f030344b8ff339ebdea20d9266d1a0642008052be7594676899802833716cfe872a99182eb06ace18f829fbf89d812ea492c3f632f56f6b63ee5bfc2bf7da62f7391f3f687a371c21730da127fad2ff0d82dea74ceb320602817bd79fbe4af14dd098a83f406d47e1079f4b073fb074c490e0277c33d98a1d31c110a10af79dd3bac2d241b2101777c79e50328174f6bd08dd4d80d46abfa3df9e1340fe10781877aa0f3c49bb624eff3d43239e3ee0a44e569608c655167f2b2b9a0e5cc82c0a092c0342042c8f6e14329c12503076a831479d63b3a7bfb1b881fc14452d1480a2b663115661e9978f45d787c55085412e03fb8cd3b9870011234813741593fdfd8c98211d0c47204fc054353e40efef49de2afebbca41ae865e573f9907a4fd3c56b232c8befffb4a454a137378cee77a5c951d048271f26127039ad48323ef11109a7ca3e8be9b53e944fdd3978dd7bcb0368a459a39cbe905fc7e37d94a1adca4d89335dff697eea2ea6d1f8e456b3be3b1231819f60637458d3b893fee81beb9672fdc46b2eb2874b7c34fbfcfa2bf0cfd8b9e830618ba1cffc3c4135b6d6024b3c0a078cf2a5e16528aab0db240c46d5984db4fca7e4c70443302ef0fca7e59a28c11eab3f48ef826d9c17a0f9083b91881865675b05a61f95f2d9a00546e7aeb590775d730e5ccbdea7ccea9aff53f8e1671c42afac87e2e5f50e152266f4f60511714a573103704cd29aa2ab693e6119e67a0a2f7bf75e313b45171936d9af940ceb81c0b942f98e3a7b15c45433653701a89491205179f5c7f882231f1398091b7fc78ce3d234160a2ce4db6c950b65c0dd89ee99a192200cd0263032220c71fc0b077e11f6f7d510ce3be949e8a7d6069abe067d30bc2ee4c6f5780534e6f580fbd5fc70abce02346fe7c4a6c083a17994e434ca0cae53256e372bdeed4cd7d6dbbdeaf6355414099deb10669d24437f493b2a6918f03e36f03941449b6613bb153603d365e43807a8fc58290c5b541b0b3839409d0dbd2a429e9f305308de5fe8c0ffbd486f9ff75738012c27464a4375b053ad3396256fb0d13701ce0ca2bd008e743bd0517d01b8051e74f83a6e2ae968dc163b19761d529442ed5933b56e5c390fc58967e70ab3c6e4ffdb1e47ef477c3c48fd5be538377d93af0768c8f02b1a5bea9ee76269e14650b2c835a1770e617b33ae64220ebc3521b75de02721168dc7e08bc313543dd55b549f543cae63c3e873d8611a6bb74103e93f3645d9e1abc554fd6930360653e1169d0657db418b460fd4dee8dd7faaf2e5c4206ac9afbd1558847573eeea7d54dd5f3be92bf564588b013d060a8fa2527bc2bac8c17e837ee9dc097c2918172ff76404726a0942397cc53f3651856f04835a0a99a47aa905d44d34f799e6ffc4ba0377f7dbe751b72dcb9a108528f6541a08fda1cb35d912720d22d982728d2f2c980a8fe52a084535b2e71b73232b742aa1a191f7c9e07dbd6671c7a20ad3a0fc8d814b4f9c198ebc294230f429d0a9f44ab265794aeb5184bb453d4819b2d2810bbfb88021e0de71fafa320c917dbfc0b819e04399e0405f23af188266322f43ed0f22b6d1d923cbd74eb71fb48ba7d6118a4ff71c847586a10f48ef6f7dd9a9c0e9af3967c4ccd305fe0c0223f1699537d52a24ce6cd18f0aa8422f2ea3743a17ec515dab3ae9de757bab92a8b496b33fae0651616a60ae912f2ff1e6df0b6c99db3ef4b5841946f2dd612e8f9c8d8f6849b39a8ce9443f1a55903a095e2f28dee8b5c3606885ecee1f6b42cddb1aa00579c24908cd6c667d697d1fd4a4007a7bd2fa778af1cbf4ab493ecb1f8c254426f47f4043722fa8c16dd3dadfb009b9e9688ad6b8ea972e7d5b8ac5a60d15e9e009aca3a1903c05731516d919575e8abd84d0d9463e590ce924bbca6368558b93fd20e1192824c857eaf925e3b349d725b124c9d4cade25100029b9b438a1bb8d43c4afc2454b3c7fcf3a89f38c7596a4817496b7bf4d99033daf7f4452e8a2bb53a25adbe59fd55fe47d870af403416cab3d8a3f06e15aa93f678fceba63ed0b724a5fa70fff5a80be8eb498a869d549f4c1ea979e44f6a1810651feb7f5990321bcbc446e21aa586029d8d57117d474d9c83585d0470351964f1d0d91abeb817a2d0c97e92b404d73626cc77761ea8634f181f9b20e32fde107bc6d7b33f1b9cc8ed02e7394702173fe5916a75632a3c14c160a21707c003e98196897ec71167111567aa9999137840d401d09c80f0e0872550465a4b548c689f18772175e4363795207c7371f86ba23d342f1ce4d681c948a92a62034cf92699189d9151b2a6067bc5475d8d938bfd0ce07f170db5127dcda20d730c645d3861fcc067c8c513135cdc821f99c5bdf812ccd21364a6a7422fcc981f8ee96d3be5e02101d3b437e965fd66d63870d4b71b6e85c8e44c92d2016661fe54d6e32ab1c9ef72311b1904e49b45c779f2d37aba242bb79f589f9f6011f22e891bdf7f886a2b90e07349b8b115b03c64ddd13bf3a6766a717d48b688935ad664919b1a948b567b58bbdc161cae50ec9248e5f5c793580e60fbfc70329fa34db4d49c21b66558c3ac5e281350ed56043e49b93888cdf0d2b312bc01d5a01bfd6d1a7336ef9044ded1738842cf3405b44a6efff49520f2d2fecb6849435a755bd061bcf976879b5d6f556429a5650280d9d762289ec6286f43fc0d24742305bf2ac854790790e8870bee3d2808435988962b43c7fe54c083823df9d2ea077a2d021afee0db8e4e6dc7bc325c5fedc19d48452ba3792418c6fd2a9062d4cd174005d84f293d9c853be7b7cadef9d527428b93a5b1f1fedc128f8a93ced5687a78548de2a885e38a6abe516720aa7cbb7452364de0292ab789876667f8ae0fecb1d696e52991bb42fba12b9e3be5b54f1be5e5f844329c31c206f7a0c633067fb8783367b113a833f2f1e9e94349aada59421d23348b563e8791d998ec19bceb951a855b6e88f75830eb71f94cfeaecec423a2467dc21a1d767a7ea5a59698f5a42f8ae5cab2daf935b6a4bbc760690519eb5bce8a2ec36dea388cd425a09714cd808d3a4708e1a1a6c626cf6902e62c15dae0177550564ff2786dde4621c1e343c966a7889536766d617f081fa397f67a184a3a52cc8427167e9e3d074145b10bbe0874b069b115ac2c074389201140ac706c2bbefcb66867177c1a3587cb55ea86a084c7279388f002f2e8dd698980bec00d4106dadb44b3d0d0611635d88e6b11353b9a9953509a654d012847358d51854237fd9725cd76b78fda0344b4d9225e0ec40bab7fcdab967a2431b88b51df646d2966800f21a0c104d607335152650c9083249d3f5dc3ad0a5fbc0d51882f609a274ead3593e04331da394c611be0e750c5504ba21710787f62969e8a0260f2bd50c45c16d132dd1142181423037916e5400c06686ecf770f61cb2be779a9505db69f2bb275376e35ccb91dd61a01b8731b61e0234ea86289e6aafaf237e41aa576cbea7f7df68a74b5b224d3a7a8187b8eeddb294e8a079f6f8a7bccf7a1efb6d2bc6af1177e1bbe60050651a236f49aed685d3bf53272cd32266653777ff1026e48931bfe37c3ca1422936f995aa9b3a5cf0ca3190efbd5738d9d360abd6b5a5fe53e8f1b7a5a71b708bc0f37364d814c114c374feb60dc3795516309dcc2252cfa16ff2635b52416b0e4e286ffba51baf0cc7a6ffba642d53fe1f67cb809ae5abe97de3b059e56336498ec40540328ebb65932c6089cde3cb3075305e4e7f405cf232b911d2efbc1aa3d3f52fede1d5e49e3f923caecde153596fff93a8dd666f9d3fbb7a6e6bd359466d7ff267953ed4af8048f4032d120244866b337d341a14d817d2e44f63bd01409d988344e94d101c2199d1cf950ede2c1ea4ff5603f0d84d2d4c0dab18ed2a0dbbc1ffd4a2f82ce258dd6c6454e2a2354f9884500ac6aff962d6a2591aee8ed29790225af68443b4ccc7fff9e384b20f671e8b699f542150c7b6680e2100283461c580fb45315d6a057d195ea7c479eb9483a7db8bcf2079f4c1c9889e9a5c71050537b58b71c1c9ba7d327a7f534b51e612ffc67a146b4f1a8f88aac7ddec41944ba5ccbf978951c472a967c7f0749c4a6dd6957c5dbad9934d5de4ffeb20a87dd0ad74fad619aed8819d0bf68faa9c87720bd86aa89e5a882642e435f9064f0cae61486ae438b7dea7703aa764f4283c70dd86dbeaa7584607acc91c9311e1e30147b931c8099e60b6797d309bc018af10410228cfd7487807af51a6b33a0ddf3c2f50a7d5fd4f09e8026ba13d147baa7b2c5d8ceac4233df0704000156718d3526d9300fa83a8b1ebe298f2ea8dcbe636079a9423c2faf09f8137b9a4648b3a8a904516945840ff05fb52f84585a2ac1f6d7f2978c6333e20d5a13ae184204fef2740a500ca209a105236f362804f7c00a725c617b2a1a8b02f436c56db60d5623de98d30c01375fc47beb6cc2e6e40c757413d74673335656b01e3af3b4317fadcd21b2d96ae9c3d970af339c9871e4d4aaaebfeba0553c04f654ee6130472f12f44d3628edc693e1686ed2be8c403fff052ee2486e3f1fcdf77453aa6d039487f62d51173f4ece69fd1cdd99b9373687afb9be748dc290b887eddc54e6ad6a538485626e5ae8488cca3ffa0eab91a0e460971948146df6ffb6193c9ab16b7b74a1ce65f69e988bb0127bf84ff640c6bd6969cdc13ad0bb847a6854c4ef95a7aafde4771d856c99cec2e56b62d8ff1277985ca855729efcf9806b373937955fc4d1c067915ab6a95894e65327991cd5160f27110fd348b6ec9117e1b4a9854836ae1b68568ecf37a50f3d964dfc28a4ff2625b5803fc256ede106a6d277a0bc02394d6bba50003475efd1d0f9719e85a8c794a6ef9b7fb8f2ab20fc82a2c4a315a611cdec9d9445829417df117548a1a0d7ce53c4167373f95f1071dddfb1144265a19cdaa558d9f453c144957e050b81b2ac1c0dd7438c94324c49ea0e084446a4a338e0e6b23069276adbee6ee4169f2a2fcaa53b557160956ff4dfa51b87575428b0d26630813e40114743771b551230feb9ee8efa2d33f92a7523cb6f97e110662c9f7fb5dd324a7a43201557bb88ccb8eb50cbb6228a0bb1633d55bb46c7847d028bf57a2044fe4c009c3bd92e8667d81f8e8a87276b5d387aae601eb801136d874031618fbe1d80d05e62846cbfd1d721aa0b9d09fba64462842887917915b9455a7d16dd3a04b846a538b04129099c4cba969b0b3aad283e3366338a710e7b29011ae1b453db6492f8cff5120fc0bb565941529c6b3e9025d73c0f09e73c426c09dc8cea5b540c409ad1d8e14e0faf0985333c4e37977fae3c8c16c3d28772c5b8e8cc9b1523b0ec6f816d6402d7aa0114591d2e0d15016677c8f92dbdc4bca277a3ea5a4d8df9b53d5cc86561c58943a035b8c0f048add10b8d0493204d44e147905203e8d44e1a05e205d795c7862a0f51413b0ef0214db83c2a0ebca44e089e3ade0500e6d73739e4e14062099bf7ab38452735ba1739344501c9739b3fd58d25cec5b93a54d904be303f4b4b5ce282dca203a8225d468d38aaf89b2e6aebcca2270949b35ecf07a12d8d95b0f6ed5ca877db5b311ad46b92d43e187efdd0157faada38dc9e360f70f6060b793a0dee2d81e6b6cd6bec2278daa62f9a535b7cfc39a7dafdfe46dab0becc67f0fe0ef1f889bc7b17a5e2e684dfc95a31a281ff229f861052d0e9e0325bac72004ac8ed286e951b0749042b07db8a6defc38b84337192843af37d2d1bcddc3d367e6525ed387a311ff5e5e151292f84f631c1ecc4e49bd6cca8e05390684e19164d67a789ca7b4e3bb9ee33517b7ff9e42b24872525fe13bdc79a01a497d4eeeb9a6ee337e74418ed960c897834352bc4875399818baf66d90ca5a122d151686af6ea931f35ac7620485025deb7d151b3a739f04a9b1b25101d79fe8a1e828cd65b69930b4cbbfca73e89f36cd5a12a0dd106e0ba8084454aa1ffee3fb3ae3a31583beded2b5b82b6b7ff489a972b119acf1da27a66d1f9df1c22123a1eed3ed44bc8fdc534d26b8a3aaa8a9f5a053d21006d4c6ea8d1601ce32a633809e1b5cda4734e0842c82d3aacc5fd0fd0d124f048d3cef3a3d72d478936b92be78e9988068e4f2315e832053d077831048eff359fab889c527985e514faf6c79ed42a71a3be6e22b79ac79525ab88e85a290cf427821364aa9447718a90d8eefc67012a98f5623a39f6b31b3ad3442afa386017393b3511998ea1f95623e24871872d676526dfccb6ba56bfcfeda354feb26415f48913e9fa7c388c6f8e799250cf8962c78319ed8066b8d907f6d59f1dda4acce8979f633233b76fbe7f4a5d42a78c085a2ae079cd3b5a42160011a0e9f8b190691e2612101c074f0502f81b8a40eac124a00b0ddf11a4295094c3b0236c5d4a107f49944f3b4a6db816a202b563150b2b1d6a573bfe44880443b9b1a32483bb7c326495aa7f6055c32818afe03ea3a21daf5ccc935e4034d1fa78a955f076047a63f6860cb5c812898c31b323a0584dba3cf14856be23c072ec6f000793d04caea3d28f30358e933e6e62c7da4e5d2a629da62e61059f767c845e54380651ddf6d3cece02bdc3e49819bb30532bbc713dbd418b13117a0314768047b6a02827bb377a87fb0a5dd5c66ed089f3df6da871f05881c703abe5d42a1ee520166463a935dad2ecaf0dd924cf2f2b2bb39cbccfbaa2b6970ca5d8cfb8c25948c4f30cc86b7d6d7128d6a382b21f14d0fe44a9eb3e48b0b670734b83a6c4a75467dd8ce6323742440b6c85569c53d0aef4c006f55a116e942adca2651823e450d40b7124c10e31e35ba8976e9639762c8e2e4e5cadf8225e3500688632876daeec15c7665c65f01c3e09d9395b05498553511f150650c0a8f04d68a2c26cff801e46c086b30d69dc36642f85313b08cd90f3c3d749f75fd7c202da1f12a22cdd4f58f7e866b4ffa42a6a00f5d05e4aa96bfd7329dacf96fcc1a49c95372da01f5db47fb6144d925f4d21e6cfc65edab3bec425d56b519208b9785953d2bed646df8d6790a4b3a218a94bfbf7e24cc6e6ac852dad15c120f6cd208f22d54d76e0946ec15611daec42d3031685b778ecd140f1d4807f7b8e2f81334da96c649c69efb05a05dba113372d5f78378ac0565f4e34af36616379d223df8958088a67d46c8c22623480967e92edd940d14a89b91ababcee412c22caec5c0d9a2097fbcd3596ed1f7838ac5ae65ab57d0fe248f5d2a0f0a7c3957b481c85e46016354597c306025fcaad52aaed53205abcfbfc5389141fc76a0808d10a114d1c1de08960388c1129cff6c58dbc6c1a94c743e0a13b79cdcff51bd6012506a592336d4716cee31b8caefd571adc151acdb80d3c5a75c5560c89a2332cd56af8cab921149ec3d4ac2c6d038c9f6840e00137596898eccca9600f0072895c32a696f2ca9b655f5dcc19ccf101b74ca5a5d06451a14b6205970d1620212da47cb9f0480c8d06351141da3f868d229dd4c2c07aed94404fe4d305ea770fedb8501a84e63252d58b6b0330c2fe1e46ec41c39420ad03ea51ec45e661d2b0d76087c1b1ea11318ae2b19961d97230bae12f9c7a18af21c8686cfdc5cc752450ffa6ba2d99758d8e287efbf6db887cd48771807072206752404216a30462dfbca50f93cf953508c4a8878adff66102738ecb1af73dcc2e9a495543c187c154a3460080c05ae55ad3d8d0c3c097fc09f0a91181f0b363cbc334bdc443aa9de84d34f2f255d31fc6a68d8e1be52093b44e3092ff30f9ff66323a331578a9ad1c6678f7833a1a143bd9641ebc797655841c2943edfceb67021a78d2d64b33f8f9308f2360e7ae5b47dc39e7a15d0c83919a196066b90aceb141d06847bca0557351860225a26d339d957bc49c8006935a15d64e64db9be1889770517d341146663677e48881f461b02e32ef54c4783a0ec95f0d10478a5db4ed99fb91c5721d6c8fd71847a9fda44d55e8132366d6fa5bfe06409e5b6796843d7b4a00b4a784a13d5969206c9eb3d1f8d31056f054582a6f0d9be70021145ae5d08be90e1e78e20041c8f039778d5b3ae5c6521dcfe1665bc9995c8c2e77655e2ab38a765b66313b265b4a10bd800a8a4bb154a9bfdbcf7e75a1818e8f26095c1a11e9343b1941da0e9c3e6882c0394c6481fc17020a2880e021c8f11cae94c0c069a408a713421c93d6384820e42479ca71a40b280efc4b8a1d41b99acf55fdd4c8d226b67941fd66a721738bbd574e8bb2f71fd17a4cf37c31b2e79bb6c170ebe4289ceef7fbec9342e58885f41b0b6e242669c9707e7b7e424d9cac11453cbb4bd6735deb989cd5008e8e8d45e6f643f4ee8266333fc0df6fe9d3e892008e83ea2373f995262bcbbc27e1bb95eb91f0d7ab80ef875f80dedd4543241090bae8ba56d10597ac92173a1128ee43f1e6056ef25d49cedddd5697b2dd9378cd2ee17f07a7dd1226bcfda86cc9425f8c945e5d74d0976c5428804ba66873cb0d858af242ac8c0eba6462953849f70c18c5945a157350d960b9d2803f510d16695e4c15cf92b5680907244b0eb77c9336d0956e07bc41c590c027ad522a91cd4bf6701d76e30abba2a8f96305a98566abc5435dca5a16aadc489b3a3759a0532a350215440ec5cc1b744d16043246ca17f510abd4eefc14a086592fa44b282fb6a1fc3599e51d2b8c9d536b322ee95d81c6d074db8872a4b947dbfd137f199a51e6eef5f4ed90ba5532b95a7bc42633b510b8b901d957255819b6e483034c3c17cca4c7009bb0cffd70c62da1aba244b6e996aeb5feae0884c23833d3bce96c804f00430470352499c7098c4c300cbf019c9658f00ca23adad68d47dd7b2f6bc9abd1012b6532b58aaa23bea12b9f8a8aea983f37f7c71f7eff1d0b19bf61a6e022e7e7c34bca56e6f70aab26d7838788a733fdd438d21d155e9774d9ae21eabb864cbc6a1b1c37b8f4f45a0908dbcc440faa1561135fa6849de62ece2a8d24e357c9595f2665c79c243241c9638eb6d18bf5a1b0ce0bc37b250e736f210604965892473147f21ee4e00f800a1d24a816132edd6a8fda11eb1f1b4dbc7f95f330a15874e328cb7629f85e154cd808efdf4c3c8c5d563a4edba0571399ee3783e9835ef164faae986fed582036d85d96accdcb23b6eb8f5ad4a31e3570ce5401fe8b574cf134980ba19467fdcbe2087ae682bd42c6fd4e6b4fe325ff3221df3d77426d4797d03b87af249739165f1b7e9bd1e8c7320ec512e26117be6006ddaf5397e9364e185662a0ffdbb865c6099338338a4ac95636d1c793cd4b0e95b94c1ba7646066b10dbafa0ac28bf36edea55cbcafa552de83cbb49c45838d12ced73adb7a9916c1c253c3e6e26542bd15502d250a85f6a9f9fd9fddec7641e1fe9d057149b7c742488dcb0cbc1829bd68d148eb6451ab005ea6129bab1b2835956f2931facd654a27719232f3653cd3b601c6367206f7bf820de54a7ac26778fd005f66e0b0e0ddd9f65e870e1d992ab5b4f5f2823f5de64307306ef75c05af9d7f4167db904f69ed6499794882af5a1975841cde4402cd8e92aa98998120f3a4bca71773a4eed06fa195dbe10e1d95f78d0dbd72665ae911e101393595995c1823f695c682a7460eeae6c47c2ba85c2c9fd9695b32fa561384b42333c955f178d3c00f50ffaf39366b6f582d008e4781c2e99900d93e0398cc9e26ba01e5b87f3cb4c015a0a018068bdc7433cb6101be10956f17336166e6ff02d459530e1465d8ff13061852782cc9fe966e0313a5831ff191d48639047176273fdafac37b259873211bdbee6c56b2d408109ab066cd57d18b2eea0b1c3331c409a3c522e8874cc14ca69abe444b142508282001a8cb7959f8d9d8694541b25e2bd9092c6d7fe4a1bfa4d424679b536c4332619e4bdfb048d005d0c525e134be85bcf9a5a83c96bfce69ac0d67c44e90fc8c89a5447bcc08a69b78128c4347542a12a659289fbe5c18ed8c7731f4139e5012e8909760477cda9cd27a43b6512e7d0a76667c53176892062bb78b41c7cb0f353274de6c838319e81dd3b96bb02124bbc528702112a9f6c30e117eca70b33604c9ff1080c7fc0dc3086c902368f9cc26f1983f99351916e0d849bdc147db16770a36d43f12a71bc01a7910f6af0a1defaab565327476bbeda4da6d0d510522563d7daff289ad2fd479bfee1d9527a8b45df13734ee5766ea3f7948cd8b8bd29ac04640b6ea3a8849ed55db558dce01c28cf1d9995a4451063c6b8ad740556a62f1a572182ced5b6810bd1f78f52492f5fc547baa3815daf61267ac401c17e60c9a2c4e6347baeeb7b46adf633787cd72e9243ba7915d1e0a5698c03de52f04095a640f894579ba82f57b64e125880698e3065d947a06c98c810f5055a6b6818368d4f6e31c79fc20a74bdfa9404cb34b81009ff3ec061bcd39350af7b31d6ad31ceacb3f596959701e8da996ba8441a1cae893d88902a45ca6e32d59b4a8f92b7c5a5ec75efa2c37884bca705692b7dce05d3912e7e8ffaac479ab20055297cdcc7850c7344846d48d8bf602eca01dbbe584b7a1320c05cee29fe2031fafc1078b03b741dea78404baf229b16b50ec5666d73f9c1037ec7740d55fb78cb9d5a5a8bc3266fdf25609bd9427db0a74d51db3cdcbaec723c0746dadd25d78776f0b1b78d8fc4e10c5bb797344344a8894ee0398b2be0de20872e8ea82897b2f4dd27aa32ac2dd7ebd58c5b75c338fe48b61476d4152fa98093e7a72b5a3f310c93144ee91af439bcf391519c69b23b1c9a7621e9f0bc7f3a64d7fe768b8313c68deec25865e23e9c243f5949e49e3ad070d2b740a2d1b553ccb60245c4b2730f5ed232e2349a353f0701315d1b7c0d04f01f718c16ea8287c11e7818eb3b4958409cd261ff5a6e035a00dcb21c74974f0efee772a930b308bd0b715f65d708d6744711b6e4d33b6ff2e4ac4eed260f0fab11c58d4fef72b3eb7a90c2fd806b813136a3ae545020d67980271d98028b33a8021d2c19aa02441063fdb329bff03e4c1540f7cd805f5a739fbb5436eded1a7d4d5164b2c7950fb85f26ac95f3f02df06672bed334dfecd8a3dab7aaf8a86b3d924c4fca336236b1daf65cef58822f59a1e2239f7dad7935941329d00db854d408387e479cdbd91c8a1611416b9b7c4e4ebc3b586f6265a4577b937cfb149a2138df4b16c33ece82bcc56afa85097c99231b34c1b86e7010262b6f1ed3cfd122bf0e1d73ec481036ed60787be1bd34c54f841bb533caabb320bb3757948ec75242bb7d3889fc6bc31bc408bfae9d4db63640e5e6d6314160e70623420c12b78ceee0f12947964983f6f2c84582d9a416192f9d246d6e4922b5136cbfcb20f8277e2921d16185c20243ade0748ba2515c759ecf96431b5da927d2a480820d46b49489058c3d104c7b12c79de8e06ba3df6d51f05c306cde7dd19f2e54892cb4dcdaf44954eb1e385f874215833f7a07b90d8c8dde991ebefe609f6c4ce7787886ba30f3760805f49a0298dcaecac8325b670e0771aa04c675bc9bb0a4e20ccdd0d45c392b3d88b4fe703ef6ea6091f693f29f626d6df2a39afe771a2c7ad9fe41f421d683fc8bca17c5c9f59f06d1df3c16c1d9bc17b2c0fa764295525453895b8d0f803993b71b289474231007ffca825041b21a8a131b697b19e1f650a7be264138f8462007e72764b8b36425043636c2f637d3fca14f6c4c9261e09c500fcd0fd96166d848086ded85ec2bab71f180b45a78a6c449111581f0454230a438c78908453fb532d36de7fca802050475143386a3fbb7a8e2b2a54fcb2d9cfe0e7bf9e93d10c32fc9a8a6bcb13666227bf53a22b013248010fe43a2d1e9ad8930434aa6d1e01c87f4702ec3e8a0aad33fa7f1b0c17ee77a845db4773cfda7538ff825a82094ceb8325b4b6163670cd34a81990ebe6dc609f09ec6ff0a71d70f21983970292c8d7dbcbb8d447fa47d02895eb26103bea161a9063620113dd5085f6ae10cb0de67021f5bdb528215283da429f4f79bd7a7e37af30f998b4a0c989900a6f2b91342a06cd2f8c0cf312df37ad8171e8334ee1d3c2c3b00c90dba4dd1077c798fa9870fd548da46cbe119e0b70bd06301ff1b930fd4b8161978e5bcafd696cf4aba1aa7d6029bcf95e1e05e26de86f38ea332cea8e2beb4e5eae79836c5da18e89bdcd45db1ac20994e19ef5e661b40f0aa10b5d9c205d41f0f2870bb126a6c5c17a91a1e3f7ae1ea9aca1651620244eb44061f9ae98976979d414ae1014d880713b9d776e8844af7a1965eab7cba8323e24db32fb00205a7af1c271e15adfde3ef9034bbeefba7f506da9819a6aa0aad9c5aa4cc58ea12f2559ff025de09d0ac0089d0bb2a06c53bc1d718e5f334e3abf188077ad5eaf25f77eba8f583c1a1b9ce00f8f8a13971d917d49ad8155fdde9dbcc9517dd07c9f20c6cc17ce692f97029be8656740689f692d7d3a35b0788b90885217250a4d1785d0ed2095a12f7e3d74015cc65758006e07a90ad4572b936ae059c4017aa47f9905da9cb0eab044db500db41e3e3ea8db6290293c8ca7735cd92f59e860a68c64ef67c947bf71abdd8bf9a1e1b48b85ba704d5717ca64d785fad885501d853c58af13fbcb42dc063e600b42b91c5cc31116a702015b87850a2c878e55e90276aab1309013bcf65200fd4822ece05351e982e48a81be04fac5b02737fcb3509db9a7de645fabaa09ca29d68648f1073287b8ca5b1dc138706f117ff08d924331fc1764b319470ce5bf32b3a6399733f54b4bc38cc15c421b423ef86c08f74bee89b402107b757766b99c01bdd4581fe3731e80a25ba2fb4672fc56ea5e81778626b8613c5e5bc694883d036e1f9ce8b6514c2a499fed0da00dd828c67527298371dc1b400b30a318eb4e528632bb06c6c45857a2db8cd470a306bad23df12da3c996372d17457cc6183ef93de3c764109b3aee410a0a5bfbaec4811082900c6243dc8cb81e6886c7d7a3a61add8d22e5390339ea1bff0272ae8e2278088398826310fedf43b3d18e0551f80b20e72212acc32e8a8b5f4010211c5d4c4ae1a25e446c17411cb688d4663ecb7f298290335a4e4510871713d99e7bd65b0c28a89f2e71c2fe86f3791ac2be9568d553a46704e4d19b9559c1e20c11401b159340d074ffba0a80c6fe638c02311a8f17f83d52b18a624217bf073cc6e44e817a40d0b72b065a32e1ada7c0b59b0e04fea31d02889b04c16d285e95c0f4703c7570589d34f538d4dee7c86727028b15a3a8dde4ead84cbd444ba419f5ecfb4758f234bad01649daec680885dcd2bd040f85fb7e0b3a60dd07563fbdc864f9121c135dce0fb1f4e91a7e93cca4f15238ad4124298b1982c6921b51caada960bb7f13125ade7b7b42d7cca608fb9d9c61debfdb27225be634d5cca608fb9ddc013bce44862b48d86e6e8c59ef4c813a3e2a52a8b139372262ca7ddee3c5a1de5a2d2531713a91e8c8cd5b5906baf6fba4b71cef43a0e88f6d942783923a4d1e174fe200ea998d6f331e37ab3cab680a77cae3bc6435e771e56ba4c7cd14588f5b05ee596c1c25fcbcd890bbff69d0cbd32cc876af6cb2670c8ea6e6a37bdd21374141eeb9f9ebdd0bb21b89cb0af13fc690432ee0fb41f662854823c4cd7321b7011271525256d45af5140336d2c10c26a06095ee41fe41039b682d55c4e08c392d3b817ef82421a29c926672d5ed01633a50b19d28e746826cbdf5292780f18a98aeb5de8afc5589b61abdcedb7d67b8e5f6aef78dd3e6fe6940f166dd4e6c65b7e70693e29680a2cbf52fe6a1f2527ca244ff7731ac90d9468975936f48a737a730a10b4dc3246d6fbc7805cf5c11194a51a2e918625c10950aa34e27bb7f4e642b10896780e149f4094782a9831b56e22022b2fbf9993d0e060d9e69483409a369043b255ff37ee071b3b5a2c63f1731c8a0bf7a85f598121f7e2015a0b5b4053b9519e935a95125f3a1ebd5d14250a8e77a9d5918232c16a06bf29bfd6572009ce8f506c9a4837f888fcaf67a9b20a4625c2864e07a19a0a8f6e5fc103b5416412bd64f746e83c250f47e17318d45e7d74623dce52dc480fc0d9f61fee07d329efe359ff7f1c126d43660b902aef97da999482950be234e08e23b55326118e2212e72d6a65aab887a1a05518e9b8a2ff76b08ce2e5c1d8d2b8b1976e01db14e6ae67226a90e681681bed913ab40af26fc989106b2e0b9016317c465ae5c22652936ccbcbf80c93525e8b40ed202341354169512588e2ec7223aef162761185cc1ce7633149bc6a9846a0b402966ab01ca8568cd1b58ebb11d9faebd95257cf337a5520e7ac0efa7a7c12da7de5cf45e3eb06febd9d864a307ec361fd663bc2d8802c7200fb2d80b94fcde51f8121ce1114167964c45a0739640935c51eebbf0beb3bd71b535ba7389a4dee25df8c56e59b2528447251374aff21c54e193256a3016ae506b94830f2acec757d60f54873cf0e0c996a7b53b86c3652190f38ae89e7135880372dc349a0cf98a23ea66e028e2e6dee7d76ebca8e699403e4e2fc8b063765c70cc13718463e28cae287c9428cfec3181607492a391ad6b05badfb126d8a9702f2f267ced89405d4028230902e173eb8cd46c4d02aa9c8d4f5b805451491ba096e9b8e4e3aa35e2fc6f2ce9a40206d81324f04e651a8a5b8c1ed84af98a8aa12901a68ef258f5cda6bf2379c4524cf59f3a0bc07b7fc212a81f35f413bc2672548ee324550673c3d1b66e92486477f7d2965cb903e304d904ea04eead8d2fa78a4fdca34c3a7374b29faf148ab1c4afe063a36702b1986ddf8b90928fadc81b1f6389d141083536ba5c67bb2cb90eb623243ae414ba51207c6c77602c0e86e95328dd36621aaecebe291463c1589c0bf1e96323889130962a27d3c0b6d65a6b3a744a38383a6e6666c4acb87021adbcf8405a193518e524e9a4b6b56a71cd6dadb5d65af3b47fa51d393370d4ccccb8c9313323c61dc2d8da3f7708637bee10c638c1384d52ce49e5a4b4566b6fb5f7624c5115a6aa2a678fe7f36921adb13012122222c24213a1c13b81bf5677233aa37faba75745c115a5dafd4a51c2dbdb0e4f1a40b4d8fe1f2056b6bf754f776cfa203ab6bf8581c35a791d96c16dff975d60a7f846b1efd9c7cf193eefd47bbceb0cf473068b421f3ffd9bdf7596c2e989bbc2addaffd26fef00eaab07500d3def79fc396bab7a7f6a555f1f7fb62a1dc3575a3f36c06deaf17b34090f996a14ea2b8d02f2d4af0c5320df1e62191c0a10dd3e748aefcf370d413ac5b77dfc0fcf60ffa3fdca566c7feb308afa97c328eaa515d8d5578c02ce90ddaf4f357ca12ce3c0f6c7bbeaabf1a738c57abb9eeff5ddfd09d9dd43a23fbf084c43ddd84762b8ef700c59672a1e9d555fc21b3e61b13db6c4f3545575f54631359d81eeeaef9ec288b1e9fbc558045ff7f1531fbfba30e076de55a3b80c28fce9064adbf31e9da580a47a5d9cebe7ab7a7c55949e68461f07958dbf5e597dbfea358223bbdf2b5bb1abce56d8b73a539938e064c0c40f21211870db7dc0171faf5282f5d2b65a6477b75ae418dddddf6ae1ee5278a908f65be62206cc0b1733335eb870d9ee1fcebb71186fe22427e942aba5d5d6d88b4f2a5855fe5c35a98b4955ce55f6cc783ef8e4038269cebdc72b797cb8070979300f4611333536de4b69c76b79a41d39333370d4ccb8c9312386e4569c0be7d26adcfbcdc33144e76a88388cd32427add55e8ba98aaa72e5f9803cb01008c7f0011202122212c2c2080bd7220140004201104002aeab5d00c02721121c8347bb04f0f0bafcb96b520298d43f02cc28bddf5d859cc19197f60d0bac115823b046e001c2187f7c5b39f7b2d002667c26e435efca0d02fd7b4f8301f4ef73c3c7bf1bfe7a3c8ce7f2f8cf35ed0f8fc79fff669b63c601f3b9e0f6f09bebb1f95cbe6f6b2d7c7cbc7d5b6b012404207c2eb73faeb63d6e3cfa87107df5e76abbeeec2f80fc7b9190ebd1ed36d7713c931b6c7057d81e2e84c6000ce45d3d0cd53fc7c9ffbce6027dbea6ed017df51e7f411e18e401d2f98a1e0f8f50be20c8d59a01b2bf1f11ff78b6c7d55a0bd5057221f3e4b641210f72ad18ed8ffe216492d4fd9bdbbed86bfc8557b1bcd7b45df6fc2ce438971f31437d4604399b3831cb5b5df8ef0537fefb1485df831bd036a6f09c97ba3a73fe6e668e83237f007989415c7a3c0f28d44a29b542608580be1502ea4fafe906a3fda68f3fe2923338aa6eb4fb59df4b23528013e96e5addecd9f22d3bca77f8e46ea7ef880aaf2a499bf8ee087a8ca6905fdc9b04144002f36fcd3359802be1ae0814b2db90e4855e75380233555348da7ecd995b230bd908f90b21f742fe12aee1b817bb84bf006766e04cc38124c816f0d246717fed7d38e32fdc172e7aff326162442e9cd96fcee05c7d4990b3503667f6fbd0b5d9ef5fcbf408cec137a13b0e04b2b543cefc8614e134e1f55296fede73ff9cb5439ece3977c19188b503c9225920788bf4029e2b24e685e07f5c212f2e82ef7185c06c1c2fa09a1be40cba806a7266b96c08236406a806468c1945d868d9d9747111ed784e69446261bdb84d88410c104ed8365e150e96701b1ce213152351f7eeb15175aebe2be1f4f2d4faa6afaea9da15cb63a467523d0abbddcaeb749622a7ce09e93449ce866f63360bbbd190818b6dddb57ac828ee63dc1fa367e2517a264eff07e9994c1946f2d8f14c269d8f956702e7ff6c7921c862c36f93b4e15b2ed9c2170b09997a0b09399b301bbab7f14222352f04456ab416e05b3ac8eef30e9d0df39778b7e491f34cdce3cff28e0d3f5f22392f04ef67b7e491f342f02d1ce4094726b2e306087fe27830c78653c786dfde3c62c31d1bbef5e14585968feb8424cf908543979dc11724395788ec8110622d3c104a0fd60223f4783cf73df0f3106223acc5e3f912ef033d95cc2f3d3a739fab8bb1602c180bc602756810514323c68c5cb9af2af755ae2a99e5a7bc3dabf8f9eacaf2565171ab1795443a392b69a93cf053fda764a5fa4cf13fa0f7783e3257daf39fcfc7236d72f555a5b314ee453ba21dd14ef41be904ecee7e63a4e2530f63791445d1a75e4551ff1e367a588b0d5e3dea6124ea987297622c180bc6329a6c2083965db21b0d226e9ebb7b15637c7c453ba21d15155854c22fd2c1252dd5a5a8a874bf2a59c1f8e24a4ef12bcaf354a5a9afde13aae1fbfe15ed8876443b37404c7fd7df4daeb9d6dabbf60e1b612bed1dd6a23987adb4b85a3152bc0d5f121df2ac3a856eaa33953d5944f2548a0123868b21760ca1631f60371a43c0dc39958ca4942a2a4425914e490b55d9a29248a764654e9f958ce6cf9fae4a39cdff7466affd6ced7dcfb596d2d45a9d559d0237d52219bfd942c26c5a329a3e4b46b564f44235efd46d2cf5f3ab2b54533dfdacb310fd11121d52b80dcea8761b8afe08dcb2fe9d9e5a5d2b7c4a1dbe3bd18e6847b40373df5482215eecd06e3484280981b307b01b0d21668480d908d88d46103adb560f23b9fceef417dfc3481423bdd7a426e1018ee4eb9042f7fc0952121eb2d42974cbcf52a853c75830169fa3297ca6129812aa66c7b77ec4f61cdf212f7c39fcd455bdbddc4ffc1e97ffc7057f84be75fbacb536e53d3951d3fcf7229d69a99f1f1a3c3a9b94e7df343d1ae5fd7df953eaa9a262c596a2924847be2b69d919fe94e7f9155b3ed1e44a567686a7f5bcc3564a9df2f624610a944fa34cef79f9590ab7c94a461b876ab6d4d823b1e79d9c94ba2e85b6eebbc754be7c5169be48c7c1207f968ca49459cacb4a46db7dcdf8e4e3f9ea43a97c9c02b3500dec20f91ffc143e991ee5f3789af4ab39c9ff38986ddfd5a67da7494e2fa7ebc12fd2712ec89ff0357d099fa2d20bc97f39fe4c81d974f3e29f5467a21d0783cc59672910a6681db04699ec4b6975e664a8c6760f0576ef3616fdea65265f769c2f53e0767f3f0bd5d895761bf9f63f2e8fabd2573afeaceaecf8d495c26d443b0e86fbf645a5099fb025a35de3344d139d5ab4e35c9093aaf1d8c13612d6877d77f531476c05ec462388183b8815981c3b8816db6e8791b6ad178e565ae443675b7e3a62f19d9c7392f24d27ede443f750528d02310dd9632ccf3d8d029f9214a5b2b52a2a5640fad80ac55a6c940aef63236cc5c100ff612df46a94f715637130503fbd171f46da93fd0ca650ea7d7d32d4495bf561236c052361248ce4aa8f1ac55601f9c280db9e7f18c593c17dfdaac2657ffea32f4c79ec7baefcd485ff6d7c65959635a3de5afbf0ca54b85833c83006eaf1977078d55f61cd205b9dadd8f5db67291c67df4fa9b19b066054b83c1111bdc271465604e6c7af41fe34a3d4d38d836f7a7ef7991bb11b7ceeef4fa0761bb7b14eda7eda728ff25ef40861bc628c719aa6294a29a59c3264c89021235a32a80c2a83caa032a80c2a83caa0f16d7df1bde76e494490df9fe013ef84fb0908e18918633c314dd3349db0624e5831373739393131564cb6139f786858dcc7d77d4ab1862a46db7586bfd2eb8ebfd114daa08c95edef89d9e1fec6e8d8f73f6270c414b1fd3dd3e39be75dcf0fd0e7dbbc8fff7ef58b83abd4bfdeafae8c7e7b900b72ebc37b51948a51a58fad4a5b44e47b3f3fbd3215253c5e104a93f0902fc85f8d02f29546f9f84bf74da11b44c38ffbe1e179fc17f4f1d84b6ffd4befd7dbe6b49490fde18c111323e74a672a14fe129ee5d1a61e5ff92bea844544c63a4ba1293485c6f870f36894558c6ead5746e914ea57a662641131aa29b45a44e4149a32d2c048c568b76f3385be0dfee1282b5842583ba8019f4916aab1b314b853c01931d8888825d098c10b0d2066b0156cb404f7662bf724f0dc1d4208638c314ed3344d933401df56d610d3b535c43401dfd2b6dd0ff05928defb9f3c7fafb2df9b3cb4177a14bbcfe0c83ecb3e4afd39bfcef71cf86472fe0fe613e8714ef8c4f7841bd0767523e4e5f9fc39544fbdc456043c9fbf861a2aed372ef29f6fa9fdcb4271dffe89d56ed35a701b2c1879ea4cfe8b6d4bbaa3c68cd8fe2ba04a7d5086ac711c071dca92d134c109c2f8f4aa89fa4525914e11fbd5b824bd248cbbe825bff71c7e236be28b35d0c107b5c448729a9c76d63e6c6572ff3016e7c25b21ed391a593fc091f5438671b28825b07e04f5eec6854541ce3c47da481bcf91369e630269236d640e7923753c93491e21739e892d9574443aa2926847549236640d59236b481bb2e699c87734ca1acb058d54d314784e8d9511c904d9ed1cdfe125d7591991443b252bd27324ce33c9a4e78ca48d6772c91c9e236d443b229d292ae58876a6ce5c73aaa7ce70c89cf31cd1cee8f6601b0938724e24e71eecb45e647f7f7971992f2ed609320a7d992fcfa4ce19e3994c73c633997926b6460d1b135bc146188b9e2e5ec81fbe707926f05f3c13f9aec6f9c2eac17d8db55a2a80d33a41762ee00be82fdb615a360d18973d5d66cc33693460584020ae67d268c460c7f69f30a0cb7cc158aac6569c0b93c6462e2ec34165ba1f7152cfcfa08bb641786bf59051e4c73d498db13c93d718e97a44384d964b9e5a6b61e5e137f8cd8624870c515ade394863748e8da4f4a8121f1bc918e5c7489d94d24df81163c148f27293c5869383113e842c2c1fe4e9f5545dd8669b754eca7855a48c719a7416a50d8557dc353937e1eb5ee99c8b252327a5cf6cb75c6494f91145dcf35d672aef269239b56cbe3d5b0b2e2439e498c2712ce0387bd228d17544335f16c645fed5651d9636f75a3672c3560f321cc9a0f3c9e6994c121df2cb1c674fd7f1f9befda78db9016edd64bceccc0de2234b462090a824d21195443b25a3cf475412ede429bfa824dac9a29268a7f90b210ec4e92c05d6af6ee21095ac172e4035a21dd00dc80684533202e100e500e900d588765c9290849c4d92e772384035950e0e4fc88bbff0f1b0de17504dc865b170117c10fc59a5b3e1073838efb9532782a54354b27890b3146e1383929197ac83d7f4efc1375dd8c8dd79909fb66080911c6c816d0bc8d04af9131bad505febd52ff189842c5ec85ddac7f73de11337c62956f9e389558e3146fbb93cd5e7ea3d5567a38f8d5cadae5278848c9120c6e2eac74a83dd35d66bdabee399541eeefb11cfe47ec5276e556f8d6dc2dda6236cf7d2b733a15e6f3b13dcf61c7fc1712c2364f75986efe935e5e546602c313bfb02039c975d80dd68c0a054831cb72eb35f4dd3cc574a3cb10c754bf9f5adc427dc8e17f2f752fb38b53dc12b2bb9f6ca2fe43e453b25a37a4da7ef4d2e19bd908a6867ea6c9a1f1aac65842cdf4327da79130e2ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb2ac6a655a45c8094218a14387eed0e183eed00b0061c8f59423a8fcddeadc912dbd7826ee458b1a23a1a0b5f0fee77ce1829c4114a0a031a06d480222bbf6a2e0b8faf6d699b086902bcac66cafd5da28489b17e4cca3b0fd6d64f4283c67c2d6e744b0113bfcf7d47c7c5943c82646483c90e1bb8491339e89933164cc8e7f77b4f55e168c6c3f731b152ffbcd377dbd54f6bb528876423136e2e3cb6dae2867bc07b6fd08c907f268b63c93f62bb0a5c5cc268b0d47a32773489bd6c210f2640144cee0e841e87ebe70427bd77c986dbe926d24dc9d75051986dc644ddf260f27ffc96f3bfe73ced1cb417dd3017be33a1c6708f9664affb98dfc13f9d33f9396b98eddda0c72606cec6b371a302f5b974cd60b64b41eedfdab61e4fb36bbd68ff455769510ca9c37856a93b8485ee8592cc819096f814342e49d88f0ba32c859c8ba42ce42a13973161109853674be834fd771d66c58037a0c44a592119ca143c6e65930f078c57f2630fa0823c115db9e1dc9e107eee57821bf79a1676323bfb78e73f01b8b4f5a0bc1778b25e036bf7dcf91e385b45b6bf5c09b8624fb3542126c71b7f49d862d1a925ec8b91137408750786fdf8d1b379ec7c440086fc418e3cd8d75e3c68d1b376e5837ac1b376edcb871a379737f93084674e480446b6d45fa5c7926e0a8befc1ca81581faf26ba8191cd54033f8dc83cfa73bcc133e81306670e4469cc43dbd8d175e270d981e253efce9fd9cde5218ff647a505b33b9c483a39117849c41185610b2942e822af1c91cd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0bc36e733b16c90dd99d0b16fc8b19f8947cde4cc733ce7859e25840ca7e7e4b8085b6cf7961072e6393f4c3f8167627a676770b0b0e386939393e71cb6a6e21c056840037f5b59333cdc9cefde93c9443cf198261224a288489480cc7982f0e4edd0c9893b796fa9a4d3eb818c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c0c0948bdb5301bc954b86ca8b3fa387fbd2c956bd52a9b7a98a5701c8ac207c1bfb57e08fc0b1f043f3bf594ce40400f1f7e3cd499c7473cc3ad4f7d7dec79a8b314d4d793fad86a88ebb77740f5f94bbc07548d3fc2afd7e7f3d47b3cdaca0fbf5af9ed53efb9acac63a86fdf7e7dcfdb6a7faad47f34090f99d234545f354af559a38450d5631df2eda16314211a44a7f8063df555674dc3fbd47d08ba0f2fb46f2bac19e2b75f2f7ccae2ac330a56ca615642869e5fc8eb53fa948fe0773886d75916a9d99fcff75b89f7c93963ab51e857aa5b8967e1370c6b7d4851d4e5389baa7efa96bca8640e5576b5653533010005d315002030140e878342612049f23c8d761f14800f848c4a68481c49435a10a5280621490831001002646000606430da1000d17001ed439d17837db30ee2819583fe07cb7f626f1f207e866b2bb8ae9dfa2dd8fc7f4f9996ef0e27fa0899af6cf7fdf29d23f62a2d4e13860068982ceb5df90f5c9005be805ac2950dd61a5bcff50707bdee3e1867d49c010ef3192d230e758bae3f7a17c1e86fd0ebc70fe4ba82667ebfd5423303e846934fbffd28082e21321ee607dd3e0e4a97cd63c400cbd2cf6a4c703b747fbf2b1f7be00ad7df9cefef079e690e38ad1ecf5d58e2d785856e0f49424cd2d35fe81944c9910d506d4c004c102ba1593001f3e3b88ec1167ba555ec56011c7afd4c280118983b29f1687cccde69f6dcb3316e3c3b11b0de6fbc191b036880f9b45a9f38355e28217013f2b351bd9dbac0e006b7bf62046593a27aa42512ed78b7e011145b3cf2631f1d9b58758ba7adce4f9786259c751efc451505af31688ce1112226b446870e1e2976b7ffd8a5429cb308ea7f56c623ca7e49f205a6ab63f1a03c4109db3bf8a29d7fec5c3fa439823963fa69cf0f4aa79e12bf7d97b7d04a374058862f1dca243f13fdcf81709486afae3f7c2408849e075c7eea0c844ca36e73dbf3958394c722016acb25b4bc61724eea790abaf8322116ca62fdb243b68954108a70c8e1d0609e8e80c929f335898811d1b6a72e3c48fac28753de9a4997011f6b18c36d5cea65c6dfd70ac3ed901e3dc14c7cde036d0c95d22f1aed86d38a56a7e91ec8455f961c8bfaa3e040ef328ee991e8e5a023c1f8bf69d47acb4ea5249722839bec61b0e18c227a09ed5393ee63cef5345a0d7515bb0220f82c36fdb0f6a02b1e516d08ff57965efcf34fd6f50b74c7ed1242bce9418956626e68fd288d62ead94f0b663152916ac1200f3da466e65969a63847e019534be8c22d1c17b0575127b8a9fa06b7a7d4239d1f80210a20e4fa03826d7c7ab319c1ff225856c087d9e91ca3478fa10f8e29448089c62d7a55fbd63fc9712d4e7e6ff86acff03a1850ba6b776746fe0c8511836478d60e0dc00c9c6321c090fd96adbce8cd90c8290df048aa717a933274310e1bb0f98ccd8aac29e0d121c13ac738acd61016d91e06605a0afbc67220382c06e3fd332dfcbde40d6655ddc3e2f806a74931f190053613053dc280f369964f021ee6ea827c27ae22269be7ed7f734f6d18502380a8ebf77cc2b339916a07b1d9fe2b26ddb3a4fe241a96aeb2a07f17f556f732287ed584c5f2f86ee92adb2cbace27d6a0febbc201066b35ed25e273b090d81ef46d3cb40beb5b17580962cc43335677077e3527a889fd57f89795127c8513a82c3878a6d618d655a5d491e217101b031b89b268f08c024f8d82a2e778a6dedb4242aee934ea78dff485fb0d11467c2cb03cb2c99028b09a9ac9b4657eeb49c3b8e40d313a9b7404f7246c097b2f7407331ae52a28a7d4eed9f6f858359e66fdd34d4338ed8560f91200c762a7cc9b2e83f6d364ed9f71550fa21b26a3a65267a60fb106e5cb66f01c370c541c9ee3db481982aae2a5685812d9bdbd18cc61fd5fef42aaaf081bc48a2de57b683f9c5bceb583be9d7f64abb673ae4cbce05d396b2b95e4b82b61b12d388fda937f49cae89017b2c405ddeaed1efba2617ae846eb926a4bb1474de6780407dfae4edb82da3539dc98a11c4abe5842c4422dfe4d9a18b1af7ffe48c0fdd53ff51ede1cab83e02f3afcd9a9eafd46871d1c68a97f6981de2f9897124766d07ebd3032aea83e3551b99aac86c86914b298624f1e985b56cbb010d3e184140fb1b880f2c2f24db61bc6103eb9829f443993430e996c0d6b8f3b08b79ac2c8ca913ac866e808b23abf0c01e8c01faa30a00c4d268dfbe8a8636ff4818dab99a0a9e85ab5b79a302d6f91a471dc17835c8273ae255433a857305dbfa5e1b2eb19a0b6a7f26dc854a49fa9f2310721d1eedf7d7db811f0ec85bcc3c54812a843df7cde87955c56bb2bc3e604667048871073d96f3300fb15870274f7dfd4383df7ca210fecec0729539811ec2ce1968cca89a1610c3f2ca18f8e3de648bde98bac2ff64814d41477f3f2ba79ff404fed6ac55cd06491e8e73c996a7fe1faf116dbc268296ee0e46b1324127c3e8573863e41fc9a055bb69e8f44fc54a7e783da432be880cbbfc3baa2eee9a2155e76df8c2282e1fba8a8d1310241aa4b656798079b48154db765aba2e4b05a1aef3cd742375f32b03ac09f2e206363245184e23c9bfbc42818158ec91b42bb2fa2d6a7475df4ce1f37269cd3ad102183db802f587db1ad043293188727e2ee53073ef1ccc9ca585d071289bc01996f8e8f5f191a4bf7220105ade26ae85c0c1942bc4b7eff793dcea8c47c39bfc2967c49bdf956278352f433cefd620b40525f9e3d2c6c04f53489a01714045f33b6cbc6e8214e5dce58023f6e835c41c3148c3ba232907d0687f5120df0f401eff790585fcf99baa22b95c9d84d1eafcb7a07ad02fee61c08cc3adac08059c7ce70ea224810f1319a8a366799aee756bed6856ea6270cb228e31cd2e64fcc10e610a22dc51b10e91888fea8a73c6956eed28640404b4d0462028d83e7b574158c7e39268e30433f6fd7024c7ff81efa0967246eada81706c200a632487f9c29c2d6543e45c093134587cf8093b1dcd7329b7a7940d02079881f5447284654234981c3af7752075b7ed590a854ac6041ba986bf3ae8c4e46f95b705317b51b57d0a273eea013c590b910784426c67e6e7bc693858d2326ae242bcf0991930a0ab5f35519ba2660b5c067e192dd398bf2e1a1f4b92e12c87260a132f10307e884118547167e28b008ae2a62497097b0b5499bf34d2adc7081655179a12c6a75af8ee7aa150e4f067c0a9080babadbb404438229347176b7e22d5b25af63cf472e079373b3ce0a78cc82b8ef7003c660d372fd9b3e210b53e638c3fcfda62dc2541796636e761df1b9359936c28b9b526009e64c4a28e8a483587b92feb5fd870588e3d8cd38006075ff98941635087926a65a30ebcf85039140c33bf98ef7c32c186fb066acc3bbf26f9831e5d6de3f7f590ea0c1e81bbe40ae5cba5dd8015daa1a1df88b8c1d22523df5e30a724289ed37db5fe56f1c8acf711ddd3dd4cfe6dd34b7c9afdad7b3ff7a493afa6d3ce65d1dee1898890450a9ef6c2fb32a3c148cca53bee7647283c030940e7e0d1240897a764ba8c4cb04d6d29681e8612654c8bd2940e83722668235940bd667041a2a6c0218305ff2a9f07d20371555ef26a97b8266974b32c9324b53ecc8d9496d2488aa831592850d8e64362b2eed2a83ca0a38599d89222459135580e839280bf06faba35db075364564e046efe2a11405b8554b92899cef641e7f15c836b98ee81076e36499e3204907759c0105a96cbcff7f64ede15ae8eb137d2f5a890cf9bfe4b5d8ffc2a2e76ca7a68ca5b60ee8c5031114c075e518712ce678f6317589664cca96b7761752ab8344378f2a8981167420db65578dce7d6900fa2138cd613851dbc2970cce1d8743276a0f243940cabe7781e69086efbdd212d562d8104251fb340269567f0ad8abcc8bda406edc20b7024a728321f15b8e109d99df800ec1ba684ce2e025371969893dda939e3d155cd89c10081d0a818ab544e9cf63080f520a9b6d6134e76122402d46aa59a3917f4cdb14f4cf60f16ceacd86822c4ec4c1d9fcdccd0610ce066db421c5a6738982001a4aa6f2d0febe6f48cbba1f403180e8e7dc5419fd4416c0b1a3517b0d5e5cec08029d813cd97114e10960e07d6fbcea2fcab239830c80f1d7ebd39e1c1958b9dc40eed0521d7216585a87a38c6a163068af6abcce179e181c6387fd0161a0f1e1fb4f11938fe3b2a0814a169700b2c41cbb086b2d3cb99b3ef230112d28d5d6f098aa18ae513dbbe98a862215cd450caf4103854306e85e23ff078130b2f7c4493523a979dd9ec55a523b27f2d52027addc5548701da91fed2afda4cbab1b88fa1076f800146a5e036bb61ab488dd2894fbaad3f45fd9b9a33166df7518286a6a11242186e4d90534bb015ce8452ffa5985308053d4e6e665c7b6b79384d93c157c07b6a5f722658514b3bce8ed3d28b3b2cdf2b2376fdfbd0b257bd62cd96271e1db1b2f5f5f7f2735366c59b0c0ca32589b22cf7ac42a0b310e6e09644b33f65a4024a88525bd425b15e60644fe0be9f8b48f9a8d21bc57b1df93bc4e2ce58b45b1a780f3cd2ee92310afb3233aab260a824faa54f5577d66f70fac21141a05d283a2815e7dda946e3ffece5e2f98267d391ee2b64a3bbb783e5ebe8b4be8459ba43d20d7afe7d8f36eb542229f4539147e8a079301e2b2bde8d9f29c5763849207161dc54a93fd701f41e85cae4968e7779d83de2b18f0b135cb2d12466caa331cbac755de49c23a9d45c28cd190bdfcfa18ef4383f4b69f48b8fde052387e88da684abf9653db3b803545e0fd064bb20e754228e06c5a4910c3e83e143c1b719149a383aba45a3395de9facb6c4252d94305e8806b1ac58a58de7f5de8dda3d8082936a4b8dd56b9d1cc6cc3df71064f77651d4d6ea609cebf97c9248856c6c3f4c2ef30c2b03c0a50998fd54964176861d66bc3756dcf162d4374ca298307b71f7f513ff008cbb54a8a550838270a537a8518f23f04d6d25a9a5d77eb1a41ce74bcbcb2f48975017155d9458b9f4f27d54b2b1c0fae2fbefafbd83221b16ac59b27cfdddbb57dfde783f35dbec2cb160c9c2599f728f3b7790abe02b58e1b1d485970ac3e7e2f10bf262795711249bfbcbab17295096e3495c04e6711980f380afe1358e53b45cca192db861d171d2cbebc1547f60f5760fde015c3e6c5b56a9e178be043edc836944482fd78391197905010619a0878a0e0bbd5b0e8d8add01dde87d2c7ac88abea474097025414adf8c2c17a1b3d994bf662a279acc4a86deff8869f7213831ddeaa5ae0af641ac7165722e2a84b8d3838128b8b9cd4fc60fc0ce3416e8f7b7103520e20ca64a87bc0a22da60c2efcf8e0b833c93d6f05d2f5df5085effde29814c045a7bdffa95397823e86e397e7a80ff5d2c7758c1be1d98b37b30865ac5df5eb18ae79154f2e78803bcecc1108056f62ed872708c5d6d03d4b6f61e4ce576d4a6bbbcd44da25046fd88fa81f9c51cf2b2213972d2572c4b0321b66793dc030e582bb7d5f6603cb7c4fac6df4ca84d78279970d2f235ff6b35a80f00558b103d18eb1d95ee128755fd5f6bafa295514e558cd2bd2e46f077532e8c86fd37b8083d18f163e8f55da6691ab64526a567f41e0ce443a61c57098b417f0fc69f79c9bc8a2fa0d0b81802f477b0e483e9de70f3f94fe7489e7a7178e10f214f6c633538cf2688415b4ee2f967844aecf1a24acfdb1fa731b600073bdf349af57ee9a6b34579ed98ae74e9d976964c2ab4f8ffc162e6d9f6e44c1d42ad29689a39b84f229c80ac1cc6d20dc74d7e07655f800f15ef6a36622e871bc4ab61845c4b57250b26bb22c16b309d3d1839fe81e79b4de3154e238b19724d09ae91da83997c98e4baed36e80434b74e5636e9ed6ae91cd9667241a639780faffaa2b9e261e850b62478787fde31d31edf44d9020a8b665ef444b5a399109ce8dbf062ba3b78c4cc7b8c992edd1ebb85394455881204f89de1bbf743d17d7e608ab66a8d5cc1bc618a72a06e1a3e0ee1b1b768b3fc778868d2a55ecf371d255845344f11f1b096e46228eb229af8562a0993c9fd128f9a88e6ad413c527460670dfc315f4434512e6a8f54983ae9eedad75944d328d984391b36ecb225fb59279a8f25a2d9c7f8523c61472b0eb567d18f917fa3424b2590c6ec0a7d41eca1596c18a28dadd0c6d9d3bd739c1bcba26d5469d67f96094161529299dee8cf2a5860059494be39b889d5d26223c3da3e6c6ee7d9128094c858a5bc491f99544d722b530a31d49c58ec8a0783c63200c24bdcaa048f53fb8c284c33de1ab745d934da98ae3e579baa8972dfdc19696fcdf643e630d811847117df1ec63d69d1a05b86161e57ac68746326671b7d9042b60121fd3c07c7ce0a69882f8cacfce2d03edc44316e5553b437f2e0eb6875420c6bf3ccc334ab88616bd33b11e4844cb8d8a9db8043d23e1aa2179c87bf4e80089e7c49ad547847988e47242ebe22bf7b23e0aec2474b2614033b85c078637dbc18ff7623555c9e7af0f6595b12f14a3bd5434b1d7c78492af04dbcc589b312a6a7009ca99a58eb83fff4c8f6a03fa9280aa33acc518712d91e76c3ff85257670382f47c7641e0e031d4523eadb43d0297338b365e6fc1e9cfe8b9a0429f08170db3f9513b0406027040d80e43c7d68cb4183a92c935a7e612efb56842a5c048ab3850f806596cdeaf709dbca7ffa51f9c8141f94ac5ca98a082c3e586afc6ecd07f25e823af247e2e559fb1bb935501fce086517b1b74f22b90f8557f761ddbc2180138539182dd2c4a8f70187c5560f3ccf8e519cf704ef43d5291753733030c40fc7b76bb6f4c350a07e489ea66a3c1a8fd279c040fcc1dc83fc6176b00f66ff50f4944bc2111c82ff006f4c9a3780feca47ff503371d15b37f7dc50e89ad691d2746a85132b2204ff375e87df87c6f67a7f466554ecdc83f2a1b42110422acc73596c45a31633188e0bb092fff0d1d9e45ec54c89c8a2934e852ad0d221154fe8d4a60cb0a099025ef40dfae95d0fff0ccd3eb728f5561cab0a5b69b59c98fbf946a537403ea6188f5ae1bf5dd4f935a3e29fd86c9af5aea32edaccfa95b2f2574d621b5521b140abac0452779cf7a23053399e197e43affe7248c969817bbdc156eee78ffe5f371968789a17a43ef56c6274da6221486e4df694bba58e67efe6d9d4fdebeee5a89f9d59afe91f6a5d71cc7774efea24f987c648c8b897ef2fbfd5f4fb2bf288d8826d9e146d09e6403ab606c0e88749a5a8fdfda2b663979682264d91667aaf5f4dba15c4b4faebae806c0953846c195cd0d37ea0c9188ab22a6400a46081a97f3def38bab5e31570993c0d1d298a1f4373bab2bb23545a2f3f7359009693a3169e6f4c7c1277b7e4e7ce987bc636712d23fe61acc81044512661902a518914c277545f416d6895795334ce7650ce836cfd7da3ad5650a56426f9a957c07b3d43eeb4d28198719d64a017e0a272216f11d5410fc04584bd7f8aa1417017da667a7b37cc9fda0f8e17087db6a5a8cc18a1180ff5118a0f52a556684108bff0b8514f72c420cfc2d0c0e2e3eacaaf0cf775c846e75f2f2d70de41af5580ffb498b146e72467e071bce394b4898a560b946e6b7b0bbf622a0d320d8946b7365c6af2af5920a974ad989994372afb7895aaccab5f5157d4384a4add2c281b7b0741e92ca9b059e06a7decd418189c0a55f191355751107b97511a983134d1561331a980df2091e866b0e3526c42e4759a9e2c6092d62a4a06372eb85950064540c723882acbaff025f3557b623f0eab55d4732c8f36eccb64e516f47c1f391dd0607e266abcb8ebc2e8c6d35229fd61526bb884b8d0d31a1ff89db89c5c37d287b4122ef4c7e5fa46bd1a91b01e928e9edc4e189b0ad5d02a8872519274b420795b21164588289897cad63f5a53ef6b6426109edf7ff436dbfa550dec4b5012519dc8e05d228075692a3c6a8f4e2230be05ce693192349b9fbac24c22f467ee45e127649f78d77aa91f78250e68c825f8383c7a3ea421f83bbb78a0dfb9f5e34af4eaa96c3ddbedf5fca9646c178dc9f7edd1514a7b38a7d53dd72d9d82c1c720f80411b35f1cc64ee1191a1be7123106acd3b76b749151c90b8f5ffe6f8e8ae226d3a54d12446514b819b569f09584aa343dc8ab6d0d6ecbbdd51a94e1c952a9b9384ca0368b798303ae472c89aa0fc00bd94c342404090ccfd3cee9e6f4d0986a0d7250e557fe75cfdbc95d7f18295a3f55bde50c1a9adcf32848124c6eb941f1bf650cec0f2afdc49c3528257e33d3e76c339081440ec2d820450e0d9f514a98b288eee868a001ee0913aaeaf6b2066956820cede8999db6febcb07dde34583f2fb979477b2517988b87540b8adf0777f41df1cf56d43012439b930878264f1044cd494c615ad8639eec866313eaf6b56bb3cd7991674e1f06d340ddd2c1ebc18124f9d1f23d6b060731aa7e70f393fbe2a82a8df0bf8f661b6d411e3250d1012bc568298bcdc267b7f7b853896307cc2383ae68634788ae7d34e80e2a887b264e059ad9a0cdb68b36db9acb5936eb0c818d3528a9aa9208650165a06ab3c40a408a3806e9a3994a3a15c01e7db405d8c3a14d2cb36136bab054efb655d12f9dc287b797be7561ee0a555d945d10779364cfb9a80894b8b50bda60cebe9a8d6247baf904b07a924351458a33882131259fdfe7c79b9b4766dd2f0692ff3efcf67899def358de641b7118d67a34db3fb3bc714c30f85bdcb7527182914d571cade2ac35fb111866034bbc142ed29acdf66bead100e5ed09d4a37dae810fddb3a2f14357d01daff1268fce740c177e60a62a952c473fa2b0a4f0b64f1294b50ad62638679dc7b3b827a1d69e1279195118123c0c587f95e7d8979d7d23f0475006bf913587e89549f0550f631859b5bc7feca270b69278aca929f492d10efb32c7b945d646dc88b32f9ce90954e385007bff6bc369e1538a87f95841972a8ad6b6b42d1069140c276e07948b81b0b8834becb3cb722fd93a72c54be43fdcffd45248d0892c1597e06129010703ff6128a81c238506aa3beb2f1ca92d91bc879a03216a4135d18f755d536aed7f64a36542aa4c034d2fc0a9412dfa9b028fd247e3f0da04edb97cf62e2147334d093040f25756c3cde0c769d2149bcd8c60158120f303e9db4389775d9cb3ecfb40d52ec41108058fd2067c4f1610934360ea26d6aee843de7b6b3ec787dcd34a21183ec5dfe46a5ec9f9b24d6e5bedb21e7a1a4dc795432ad93609d22fd6a6021130a1eae3615ad09da63920d8dfa20c826907ca4cd9fa6a0d752a1e1db3fd187d19e0d99192c24db00866b9a5f6da7d89fbbc3eeebfc1a5e1b3339bbeecdf828c8b17e13abc685364ede5f76de5cf406b78e455ba22ec2423c4cbba0e880b9ac91718e17ecf19183d290e1abb33277bdc4ee953a5751ead280f42099d1a7b46e601b1bb2974f49a0b05e4f647d72383bcba5c6653d861623639ae131a6ae75399232c760399c90a9ca22a1dd7319b46fe1595996747626e48fb9ce633f553112f29007b88b564143f7f540dcd963aeeea4a213f8fa74b46553e04fbe8c601820ea98009a61c1502c28a7225bc18b071fd3723e88249256204817b84e7b75761b060ba8ac45e38fd129672e0e73f106b273641e2523636ada0ee725058f0b19db893a47180c30a62ccb00c1b4fe6682b14094a87ffa5bce7a0955050e88aa363d53b0f254e546065af5515c1e6f8e5c8135da5cb725a2fedba0df61b7da2086a2bc819a0e0cde4dfa872a51121132e8b52e361adf4968abc0bc2dfd84540b98c2b2b19122511b0f8b83f4dda2a3176645ff812202e447b44d315ac15010241edd55ede554853044d3db68cbb2d2cd5156764a6fad41478765dbe784d2f60326f5ecdf5cb4cfa4ad0f30bcc637496da8b617d654169a20b5fb5bbcc921f2ee9fe6161f1e5a9f0898f267a0476b3cc03d8a4e29b269921d42408140a17a63e381633d052c620b08424dddde49b833c6e0037510425cbc89ff8c56f70268626983123a88104539231f56d90ccc8aa1c47784c8cd2a88861d36336db8b1750bab339a40df101cd3333885f8103c2d9afe4750563641a2ebfcc412200504667ff3fd1322dcc47e65622285ac2dafdc7a8f8364336dfb2f6fb4f430bcbd24f9948c9ec60947127f630002a0493457c282b42731a6451f82fbbfe92ea8c5072fbfef2ec31545d26721054ee112e70a34c7a78305479441c00f88bc0160a33536cbe7e7608af4559108910aad8c345cd31cf6c4f3f112d29f6beb89229c0a76647173e18aab27be17bf3bb68e4bd5665f64e6341f16646f2d068ab339a860a09e7a57a5d81113d5915234ede0c16b2775305bce43aaf623f59baa842416e0e9ffc4a4ee00159b05999b0ce907b04527948e209e13df2f0a0d461a2fd500ec66ae29021550131b1f67753d91d9ad5876a355ece8b9e50ad4e66d82a0fdd71ed162a507b45631feda1eea1431f24fbc7f46ebd7ef479451557497e49ccc0fb9655b3d1442fea797a21a2c51c7e010b0fca1af992d59c7b6234590d51c8171804785d9afef5c6adcd6323cb24b9a6180ef656b8057129a0ca79b061011793b10df542b58ad5b70f77b7d331d6e2f5374479f066d7c6269b9dfea2bc17f26fdcf163a467af7f8cf8243f562e0c5dcddfd837e549b511e22e215db76c803e3bfe6d8092b7a9ac2651f8d8132d864709868410864fb8927acceb556e367537328ce2c1ad28204fb9fa3eefc7d218f3094ba153f5963e442d9c3c02fad6d7d7ef254ca7f703378a9cea68cb3ef72a04da9c79210fa652be64e325db389aa4ad6847bb11cfca22182f9ab08053b8369419f3ad372221c9bed2a61386d15d5016a5e6450c7debed992660a178012dc35b83fc861937bd7ef7c5df94fe0ca4711bf9b3ecbf5dd774edbb4e349926ab1736d5c3922d154d17e71cfe90a4215fb92a1988e3dad0ae4d2ede2061d09657d34b6e585acd673db59afb1901c6146a12dc18612d5e3951740b8e7c916d35b1cbac46bc7d8dbcefc0fbe48a86747c2aa6a139a70137445ae0dbcb96a0e91807e6d408dc50b0a66c270b836668b6184ee2517452f611111fafa219b51f3f45b3caefff2ce3ca4ef315a7e805ef6d0e8a8b116d44ee63417889f72e166687fafa85b9b4c7effc2fcca45696d2954cb9b8ffc0c3d80fd542c4c47fd7cedbe981f9d436c587cb2bf55b6c1766514549413690def1467b62f3c2c9836b31d18579d022582bd9f9dffc913ee1cb84cd686603f0e88d1629f30f785b985f2185ae34537d17c7149a31ad7a7d19530b73f8569acb2558002a606591ed868c0a0fc644352928425f63b2c3573d38396d776e4a16f3378f73054f49c58f1d8c315304435ad369038a66c039908ea961966ff0e0c4c90b70a83753287f96929ae5a5f432c229fac70790c3713884bffa2548237d406454035b81cf444dc7d0b106105511c7783dffb0618477767e03cb9c580503b640129b35ccc0fca34af96665e47a86dec2d8f789649ab1edadda8377a00a8ae57968970756a10633cd448b7b8540d13ec0523e24ce31d36ceb1aa8421020123e701977f0fe44fbcaf07fa3f4e6adcb091881bf57a7a4445b1a8c5c00d1878d2447601c8cb1bed696397c9e2d7114a0e648b46632a0aa12895a206ce033493a48c64c4c601b950a5278d16ce6190642a481af4232f8fa1019b32f5be50d3143048037ad52f35fe497ddbfe780284b1c232a1b2750d9d21833b8a297c12c4ae3e126d1785d625346f238f9f1d64ff25f598c31272a4c2ea13f2df110f72379be4d69665e6113f866ed65c793618ddd4d125750447ce3193873bcf10055bff783fb402e46c172bf325cf869c1dff935f1b26919f3e0181f7bc08cfec395c63c13676e6b486f39fb4c9291d3029d20090d0962363ce8ab11ab5cbb6133b3b71dc199b18a60df1da761b3e6e4652707ebc32b6defe9f0bd3a39ac5e550329b2b079fbb67a88409e9dd24d901b32b34eaee1cad6451f5d5fd5f7f97c6190d207a1cad3c2e665420c4696bdbe5a9a8d2d24f555b1bdeaa7d3abce0e05e9ce0a51f9b34f1025a37e8e90c96830a9e872fc5c6c75232ec77f25d77fb59010953d8328bd2f184f3346c819b04fa709dd772c2fe40113f89241b5b2e2f2a823a02297edc2aa435368c4ea2a2ee3abc25517ef2af3a43a7b565b4e17dc24c458ad92ad68da5c3571995638d4cdbd0915c79929b3dee7b70bac1d6998324fe9fc363e925411328cb1fd08444aeba70aaca2fc6a5ccacc8503a42bc32206a4737e4a02ec64b52972c11e897308da3bdba13dee2104a7aa6c8afd6feda3aa4999c15e2833d13a479ae23aeeadaf0a75812d1aa9958d266cdd9e3560a1088aad15927610ad70cb0a7b000433a1073f07437531b0c5d9bbb7e8f2d287e51518fb2adc61a25f564c13547c5b6feaefbd8e659fdd90a7455c6644eb2c0fe0b8d205f000208798921d4c183a4c86a55b3e850ae88bcd7f43741a2730b1d12bd72527ed1bdf777905c56d37a62ca1e941d113db051434f5348bda32ed228a23f2c1f40fad7892598f71a4f8e0a588952175748daf445347bdf1caba46b2eefd7669193c82cd2782a32741928536f38f495e7659a46f47a619492a2222efba2ec0506b6016db79f0561a98e16d93269e756624787c8dd3b420b1dbcfc8af0d6382b81646ff96b49cf258b35af08524ef39333feaccfdc5a1e327856c7a17d6a0aa4051cbcdd6d49e627555cb2e730df7a5721658090d05db4d334b20c7e1bfc4b7e8f0bd5122d472b689d90cabc34e12282c270308a99c348e185eb551a228c821cb802c921a368aed8c547733d06b9ef72d7facf7129526a023bbc0ee53288d2bcd29e032d4a6828299356a02aa9c15700d27925ec940e35886fcada250de709979f440e848c6e27707dd5b87b038c566556fe12c492d8ee1faf674faca6b91cceea4374613fa8bf78a17918a0584874031fb5a33888a8f6fe1b06fe4217cb4bf912ab37c0f9820013231baadd57d12dcc054a1b476f743261817c30b9c3161cf7c14db14e7dd1adf312614987ab95d6a8a03da2083905f0ed67e169c38c562f2b6b5c4e9b562e82b2957b62f3439aa0f3b45e522a33889b37e9ec07e52d9a3b5c081c5fd34bf28bff51d4881826676c931c6cfbb7c304d780ad422d599512c7f16cadfe67b08cc431fc503392ac26d30477fea26cd96b59b4354e4096356e81375be28a038d7f588277e99184162a0c1907a75b7f55eedb16c9b9c9542b38150614c9116185faa418d1552e5fae0a2806caa6546208c3394bbb53aa2cbeccc0c2218a3c838259f0effad7073fb0621b800964fbc430c39122cc4e6a776c6a47087d6e2bc533f25ad31d7ec5bf5a83480f01c756cb13e0b87c00233edd5ff971ed48e4d4b781343ab262fb063a382c4817a4a2fcb2258794c502209a4a73c644dcb6de9c32ffac251c3335a0cddd23cc5d892a6fff605450df2406c979e912a419da0c4adacec213d770f45e2c3722cc7b00cf7c789c00a313429786cf53ec6ac71ac90c6298c939a5c7e78285de319cb89183ad964df56ca6c16c59333674bb19ca616024b1d441ff72650525f41893e5dbc63c2bb14d510f3eac6e0bbfa4e83ef92e26fa7849b8ea883e8d8f87ee03a68e986f2ccc0413cfed4a4418ed689c139a5aee384becea33951abdf8a84b7e3802df978d0686d680ffdaf00ed162ae5b41003a258b8ef626347a78c44b12bae99bb4e93641caa98aa7251937f800fd289474f740d2417fc150fc2b1a68d5f8d4fed8bb152cd0ac62f81546409e59bbf8ffcd918127437a0be5e2f7bf5ebd3a2f79603ada0dacb89899fb3befd8835afa5afb0b2075ba3f0ba1824a17b10888f914e9fed8dcceb188640445664b1f290e9da56e2fe410206d802eacdabf176639c48662e59cc7178fbacbf3f16d20719771354b4953934619c478d1f67edeffba4d5673dd64f4eb554f5801e361663dff8d70292b95962325b23c24001a0bb8abffc6d18b21f977e1decd3b3f6337a1fc68c3055798a58338025c2240b4275c95e6a05174741e315c746c140375ee4b49ec2470474e5ce0d44751db34ed94a5c0743a260ac390a101a31e5eabf718982294b20a7f1e09b6810331100dd297f71ba168c200a662fa3759f1ee3be2826bfa609600d4b5e3cc9ff5557418b6ff3db8b6252ef1e4b98ce66517b21c887a3df189431e4b980e3e5dc453a70fdac60a05976d6ccebd48304a0d0a082eb22f73aeadb233caf60e45ade70ed0aa69b6813c2f807b99e09c1884a3bece796c1d4eefe21775ff4b2c6fa9e93d2b99a2b07319f6676ffa18f0271ca24cae2d93332583c0807ba4745148cc4ae757b7205e36870ccb1b84756b3e003c70732c20af611de500d677fe049f42b98d4dd28229b941287b80014368754acb9b5c64daea02254206f86fd2167cab72ba487caf8e29d98933e037aa6bdc41d635aa7837ee1b1baf372434dc88c1e75864df51404922d852b825280fedf9db09215d1dbb5350d605251d2266e2cef53753c985ab6842ef064775d4cbfca60b46c59bf749e5d8606d7abf264a40ac4e86fa74e184c895694fb470883c1d5dcefcea60818e6d55730c29a991b6ae12f0dd718c4840a19254032a2a269b5d523970f733bb384ee474b066947cde960dc2aa4aed9ff6c226d04609c8ebe81ed821201c1d88a46526842580ae5b6c5768d016516e2d5566d7ad62a52d6fce76c127622830340b14839eafe0289b8a3a4df457e39b45c25aecbfcdf34991a62389a445d9699610ae9a91e2dc28764c2fc2f4657046847209a868e70185077ca88a8d52139950a126e652abbdb310c05cc407c14cb4d607209b67792760fb67f81578815d13bdf567c4d7edff1d8e6dd2fcc78c0c1fe3920f4216599a311f6b34e67ad44c62601bb7fcf876e2bf68926c2f0d26c14946f4f2dc3e2f1339451cd6162626dee43535c88edb46a21f9b0925401ed40c1b662fa9e5579effddf220cee1817e1b672aecff467b5c2538f1a602fcf1f3bdbf6acb4b09f6fb825db06e3d37bb33d229fa13db57a307591aee3ed70e65c55bcb6c188c04182c1019f648d5d5186c5c1bfde91462f1bb0ccd801bf01499c43f2df353f385cae1297a328130c97f7960de62b14e367de8a775d58400f755dbf5a06b844917adc5361b9dd861354f0e94db92f3ccf1922fd591cb8cd768d1cb4adf4a0d0a11d856324f8078033eea20ab47fd68c21e26f6839db2d5aa1f62cfa31b2bc176ee71e44354cdfa53120991f013c7712aeb37a438d0039ff86fbdd9046b60d371ce620dba211eeceee2eea5b15aa28041adbb64f184f01c2a603347fb8b15af0629b690ffe2fa8ed661a4379668a5e13de10b746e7385da0f072d876f651b595ec149b9b25a84d6ba220a30d1ed00ebc8c113e6c6e7e80df22ab2a42e8f0d9f3fe17331d06b9665f8c259e54818149cbc7b78783bb39c6a0e128a9de5449066f209bbf1d8df21589f9d133783c7849f4475b7495b3dc402d2eaa1ba1f7a5afa856ba930d457c6055bd3a79040c1fe7c42258525779f7bddd8ea8066f34632a5076aeced4ba3848807bbfab79ab67d318e9ebcaf39521257537bca98ba53178d824483eb052517572b2acd4092387f910a9a7a142151fc0ede3a42a19dfeb271196328013832710d6767a5ce062806fafa6d0a1133dcedeca1921ee7880d60c7855e6aed645c67a3977e0a43e58de1b7ca5651b577781bf65476036534176830df99844571ce3e976309c6affddabc9901c2aaaebeb1e04c6f89b3e03b5345dbbe2175be341993ee0ae42bb049f04379c03d49fcb2cd8ce04ba834ee17775e4086deb34c1028671831fa6351212a5ede3e61808b8e1f60548a0b9f82903ec7c1045abc9ef5af98d1fd3d03c4f5255beaf68eb3cd4471d1af01acc38d313ef33764463d3a620df9f622924ae1df1c517f23fca4292963e5733d92023f8ed1f15586f7c5b937ad01188d414f3bbc429666adba1f385a28d1f6d18736b93ef6a81a5b8be2b079ba71a6ff4f0b634f84042fd5e0f784baf4e35459d72b9a713d95eb7151435883b6a49f9838ee5910fdb69e38c578165adbbdcdee214fd08462210f232b1743c494ec42da2e52ce69f5f1daea1be4ee15065388f490876f81f3da548a3284ed9aa9ef18db98062a6d357971eb3306d2f3adafa276b732c8349a8917ca7ac5f03a51ae4a1ec344c6f9ef80ba19bd6487ea3fffbe8d8972219c303ab0c6c52ea0c26e0ae0ec9c7ddc03f08b62dd4bc70d7eef76aca6e95504ae1104da618d99f0eceec85f6f471dc8697ddb9e37f45359e71c99a2dd658a5954cfbe2260987580eb295756834a714847f9b817d0d4dc8100b9c0319afc1759561d917a244ea418fe8f973ec1f14d3aae3a0531a856e4b588097f1ad8778321c9152ef51afa7016f7d6d8a3dd34e50f46a567256f8fb2fc8af82bbcb146941c2cfbcef6a6500e9c0ff8e4e525d0f83ca520d62d1007bbd4c931d5aa0550f170095f55d1454a7ca2b557dcb46a4e3cd68898254abe428cf2f5959c452aef9c28e013c7e93543341a47e306ff347d5e4e82e62d9034db9f5d8f8055e9f0428154c0410488e444dbd49eafbc20c3f5ee4e67cc61bf52672e31c5215da706d53d981e88e159758c2d5447fa7fa2ed0d43f10e6e9a58a28280ace0ee0b1ff99fe7e3493f6816abd025803a0dbbd485ddadaed7f5509bb144788ccf1984d3597cb50d67f3cc65fcb8db007a92e0a9f71cf49aa4b716d147595f4f76c442cad0c43a0244a1b0a923eab9a382ea9e326c38e991332ca816874aee99bcab6debe22b1b68c484aa672e1c295ba004f6e795caeadf8132ffa0eb1c280f7b2cba3a0678013e3f9e28fba8c6b235e05b11579ac39c47a8bfabb831be30b7fd5eacba12e7ea5e01b6fec185fc5502c2eea3a063629e8a42e3b8ef0aeb7e12e74814df198f4133d3ddf9d201193d64835407cc4da89c2a6912cd72b006c2967feba56cad3d00d31a233401fdc51ab641d1ea1da36f7196ea8b9ae787d5839f75192529d8299dee3a008e99df25e70df816072991c1a475969bc9105991e45d8f6f97bbc4042851ca90dc5aeaa4dd01bf4ef9f36c6b8b97c55b20ef2957d919d27651bbe971bae7201c10eaa4abebbdb749530731bfd75c8c36e717eed6ab99275ef49fcb24c58deb3c848f5a62b4539abcb4cf79e00baba8c3436afa2e32ec44f9269df7d5e396ad55a54e9eeafc0d5603f49d9de4023de54f48cca8689b81e83a7df07c626dc5e7b324c51b38b2a62440731cb662d44d60f1b9624a06311255633c4a2882041e76de335be8da915c617d9e9525e5d46afdc996f8084c5015419820df81f34a76ed95bca358d0b8949fd3d3384aee96f7d23ef9063e8c670bb9fcb76bb9aea377befd86de0ccd011470f975d8569749bde88bf61a01c1a1576d5b0ed6cbb3196e3d08fb31bf52dc8bfa4c390cec330f2f6da58941e6448005e04310e37596d7db218c64f596d2a7ee8d9bbd949cdd3055f1354c291fd40edd460f3b136f72edf2febe9e1ba43d817641d53c044c97d638abcb57d526db271987dfa5ab54cf9cb0d0abbeea81880bfd75f532f77508423f7cd0f058ae79a29a77f5d1e6de8eb16622b81e158067732e0063af5e595525e4076a6fd9b423a8f42e7cc0aef5ee5be0e8fcbb43e13635da19047209e8ab175363bd25d52e7ec04e1dd8e357863713f4aa8d1742eac9ffe63d22b59acc702d6848f1350075eec68fe3e12372b8b50bb2c5a63082e6c6065f31db533d554cd9061440282c7823113b0d3ee4610e08bf8954edfacf914bbb5db851822402f84a1f6b9f7754ab68857d26895103bdc31f4704f6274ad90a57c552a97c1b731ca22e51df44037617c1bd4b9d2b3f6317c1d7e71776bd304161228f7ddf47098e1123bf3d7d5ed69db9c0c8b64bed08257d08bab9ef148b8047414ddee862d5bde44359370a021146ff72e3d609ce2638187efb2237a29cef0d41df47a3f59ba02187c73ca6186d9631d96f3f0cf8e8804dc5d3672f6bd27f0686c97cf713b6975c193cc77a4ad25a4a3e9d3291936c87ddac4dce3b1ee2390ef599f0d65a4de9036c01e57c4c89b3b046910c4f7d3b573c45606dc2fcb108dea6ba140e7da3de768fe04f8d7f5555ed2e91b103fa2285cb388220a59caaa3d279a418fadfe37355ba8fae4476904e179c7a0e3f9f6733ec849819efe1b47d6fb5bc22256ae44b64b84906c215681da801f04fa8a7f25c86959111f0b404c099bc5989371b5caa9f1bd84ccac2df563b50d2622cf6378ad23050a46dba31dfc37705b1af830cc06e4e1c35b0689c2330b11cdb4a7f314671e127b4eeb213084c4cf2d080207284face814bcb3342b4c7f737c783d99b4d1de0dae423fbbb902a83aa228a6044fe1eda70f8cbd729dde55bd0c27f63111305e58d06336efba00c73f9acc6501fd8170a5ebc28da836b8b7900f46976b1006e85e179615195ac9e76ebc680773973bf8d7ab838cdb2903b4a2fc6747eaac188c9f4643357d13ef3af587843e87696f653093fbd75be7074d44484456fc34dd0424298887df3904e69716123fe0a1b6754c44c5cf898805f075c158ae4d9d9f304e347b59f18b46f02ba6a9badaed753950a1423f46e3fbe88cf53f1989c90f8a3047d04c6611fc1606109e6e2a7c030dbfe9f958faa5d6422f32c14f84d069c6bfb24ca00083210484281f30e118d8796f689dfff28b6b1aa4702dc997fd450a720b4285a97def7ac547d25f95b6cf955e73eedfc0bb00d4de9204f9f75c99b7aa19a014728f18bc27cc313721b7891f86aecac0c57666451f503f7a1f0710ea9d97d4a63f8e2f54c9013081f38dcca45bffaee323c05e110f8cb75de270f885667e8ae4ff596ef1bd0d38d1552e056f860b0514f44e598fb49dd77d29e018d5a433c852b646614e9982535018f20f15b78bff9197999921200085ea71932168b70c1d3f105295f8ac634bd941870838143fd1a5f701dd1aa8d9b3db9dbf9b3660790f5b49c0365fcd197eb302dc6ef96df4ea074109303bb743dfa3a04a675c89e885c3fc2bc3cbe1f00864cf81819522c8d4ac39c0253a2eba54dab4ce19a79becde33dc3b384858775b2806b5427677487a7122b8bbe526cedfb8623b649aedbb5f1894c28ff7e3b5f7199b7d5a896feff03415c490bd72fee5ae8b18381e17805a3abc9653b48e8bc42424a11eb2a938c91de413e43d78fa44b8be5584512290179766afb46352c2ca218207d9ea37411872a7d1da5d2e38ce73c1ce5490bced281a4b75f83f452057aab1f6e83fe4b7ea9f9012b36f2131d7398666dbab0459ffb3414dfd1cd5f1455d8a1d7871556bc14ec40618b007321d280e2daeebf4b84be02137b5e302c215d9241819e8ab309ee1acc3ec157469f69d2d1920516293f165999da603fe30711aaf70a2fa4ee4d0364f036083b919217bd62d8649df902d5041de840e7d6d21b9b79317edb2684c2b120628b828216b50bad15e8dd8f0baf9bc829dd0a6c546bd1b084e1f44ffa26704b7778abed2bca142aaa00f22eb80f5a6d9fad90102dcd404ce78c4a10e56106867351d08bc262d891d27eea00374c107b35729701616018c0f551c18bcb13bd77202895b4ab22de5f65fba91b4bbc96d146ae990892179a7f38e49991c90a9dcfed6cc0969a82e122b36cc985f385c8775139202880f740d770eb51257a21f1227cdf59f898a32f23f8717cbf06f20d22bb1559a316d1212ce1fc24872751ab136a90aa81eec74271376f7748a2d89b2818c8e77c3f3368f1ac584182e443a415aa3b7ccb3da28920e5d8c14ded3e8cd13d779939874314fb2b5172985a48bf931d4dd30dd291cba7bd61d8c0efa99284f773044747be1e72996a07803f31c3de372743c7ea69ef1db68481bcba2ee06407730ef5d7baf90ee26ea0ee645b707525ce9cd4def758ae204fd695e2798278969e8f749cf75d23b99fcab755ce9ccd50a2589e2140a3fb460fd1afc0b899ecc25e53e870f53cffd52ee977c7acdfafd8ab313f7d5a7e3cf5669587f56ede7f5ef7c11749cdfe699c8bd1b78e763cfdd5929cd6d95e21253afcf446d3efdfe2dff0de761a535af13f4c7799eb7ec167bf8f95aec99fc254c1d7c262cd226a6a1d7ace307695889dcc338bed2f17efed06df6f071e94f7351a4b8c77fcbfec295da9ee67f5b929bbefadf32cefd92971f7bf8e5974e6c75de40c7f3e661a5b7a7dd6cf4717eade3a799e6fa2175908eb65af0dd56694ebc1fd692fa9737c93d21f730d3ff2dc96bd6dea34a14125dab24fc3c29683196d9a2dce7107e9e2015c97208e73e075b946b694150668b5c6674fbccf67677e374b7abbb7174370ddd3d80ee5aa8742d53ccd0dd32b0bafba6bb6174b70372340f1f7f365aab56e8737f5c4ef069ee7fcb5eb39eef241d533f9acd66b814cbb1045b62747700ba5b6dd1ddb2ee5627e8ee97ee564df4f779b514df67f2b7cd6b33be25e898c9bfcf61d5c83d9ccf25f84def39f2cd46c71c7e03e90de772ecf8ef14c10fdd1f0085149230c28a9967389be5c76f9b18ff380befc491e52cac8f67362cf187f3dac872167e0ff4da5b2ee72c83b37e77e3d09d2a42c583eef09db88f9967e8b9fefd5ba56e73a51e7e065fa952c7b98913a7ff9d8ec7792709d632a4e264f2d1a16387e21c1e3fe31c86553a6fe0bc93ccc13978961f3f1315e78cfc5f12c539bb5fc375defc4cf7f1df5ace1ebcb6168bcdf28be224f3b5245962582cf623cdb5bc2a01f8b5b56ba3a3dbea0940c20afc609de2a4e1ebd1a8582dc5f871ce8ff3d6727aece0a9eda081393b3c53c74707b823d4a163c78fcefbc03ecf9b31adc43938977609fc1b9893a92dc7daee0473ee87222d69393fda5b4e77e7e82ec5e3b10f2de82fd2e60d9c7f6be9e1dfcff53d26ce7a3f579a1fe3dc2fcdde764bf2050733ba433d75a62289fdcbf3a3d11dead5dd31ba43a1a05b9c4c76fcdbdd2fba5b6828a10e15d4dd35ba43e1eea6e90e35eb06d2f461a5f771a5f87aa11d73c067c2714c5d5e5ff41ffe340fc5d2deb0e374b777a7c2eeb6d11d4ad5f87a79ac5d7bef7b9d1e7ebd65feebd5d23c73fdf14572a49ee9bcd96d95e63cc76b6b3e532edd7da3bb76eaee5677ad4477e3ac58bbcf643d972938c909e2eb81cf34c3cd9b035e9c035a519c39b93b2f8d8addedd2dda84e75778b6ad5dd291ba408210529b801a6c6942670567083274748784152ad073bb2981185b86c9af04345068ee565a1082d8ac4052801f37383a3811d2a32606080a722f1d00c36283925a0032c20bcc44009999e12258aac552f5304c14677a3013788586af115102a540e32bd6ab9515ab5b0a41cc000a894a7564154aad54a95029976140ab584f295ab6c5030abd54a48ca61fc85b57a8159a95e5e605030ac9b25d56ab55aa954abd4132594c338ea0953ca5bb2ca5bdce546e9498baae509ab85e5a9173800217b71d552cb52cbcdd28ba7dcc5a5c583a894528e5a7a59ad54364a289051a55c95b2919169186f94cdcd2b77b9614ab98bb7ac6c9cd890a19c3c91c178cac6890d99cb0d4b2583b9515a39eac6c913d9cb4d4bab644bed0d43960282854ac920e594725a49710a82a5f24979502a081b294e4e38b141b614c4eac6092736c884f41499ea07146a89cc8d07b06e38f90f999e41c963dc864ce53363937219142a6806ca0f297fb9899272948c8cb3582ef302b37298d4ca46caca651c650385e5a8146bc68188c2b209c2862095c3d848714205a93c081b6a8eac7cc6935432313633330e13e34ea8201829322c29323ee3281b28308e62dd40712209c6510e25c653329d4d8d8bdb205b52f912b994bfccd874508c8d941877f220187fb19132e34178108ca3666ea2a81ce5a81b29507e5039cc4d1495c338cc8d14270f9a71d50b1d666ca0fca0f2989b282a7f714495a4f2148c8d132a08c659364e281b8260dc09151483b29139b2f219d7412585b50488a018473914188712e3280fa20a82b109c2092736c85c1c15744388ce497741e672b3b4442ee54be456be7255cd9195a73c697594f297a3957b2ae58202991b0e60a97c9e3cf921e52aff01e52b7fe2c413294e1ed49204e32dfe03cb63bc6f9e04e1412d374f7e70f1981b270f5239cccd0fac9b167fb9f9c105e52d372a6fffc1055553373ed029ddf024949031012353398aa66565b34241a7f21b513a77777f220505182a997ee997d5cbea15e515c4cb693544cad5ab2150455ca043352a0a6ae5c444dbdc8840b76a992a65b31a82f58402623081294e2f39a2c83a8552358c8bcb0d0e1760badb454877e182451423ba94a35a55456945c48ae5a242e583f27625171559dfdc8840d782aaa2c64a8d153557d45c5103842e4a87a57bca0f0b46a7091d4af6f2e23b52aedea251322c585c6e941a0b16abeb6cd870d7d9d15bc852a828b2d50d96dec28a2e95ba61617942874596da4286650b2c3733587e80a507c5c2124512356ac8948b7873428792b1582ea2502847a1ba22502825504920d115d125d11245a9b96862b1bace868d9ba8aa92f289f197175413b2d48b164da45a6e48c95a7c4aca95ea9890a58e40e3441325d533338509979b30e54a5de9be942be53ca852539a5051543e303e338555c58635e5ae642d517ea2c852fef3f3f3937a49c14801065cc0c00930646d031854f9e9a4d8e2055160f878cd11ba18bcc6957e54353631a866a6746c0231316466b8cafbc55710681f305c85624d41d5605151e1a854336c62788b8d8b2c2686b7380d1a323168c468e9665151f9a8b0344eca552c2a2bd90c9b6e991837aaa776a5acf44eaa4515d3ed5ad180710459aa08316466c4906a49ddd878a27be13349a8669848f534a17aa1d56abd30a344caa59a618285ea9929a91ed5116a3071572d9f4962e689544faae52a9f5122d59372154d6b060a148a060dd48b1a2b883049f5b478aaa56ad9bc7e8830a959423743d34f5dcabbbda5512997192d37bcc6936e784d8ddfb849dd2401c06ff88d9b27371c00374004c1f01a21d4f80d57fa912939111348f5bc701858547e523d305ce53f7440c5a6e52dd50b962bcd24f1f3e3c5cd0c2997ca6b521e000780d7d8d4f80d5702000f80dff09a00b838006c6ed4d8b09248b954ac221aa65a4df99111a1f2b9e12a18981b36ac1a9b29415efc88a0537549cca091e12a672151c386ab9c55848a86cf38eb02ed8386ab669288f9916133c3c60c4f798d1a33fcc58c1a335c522e352e1ec34c122e2e3349c8a099e1e231b8c430c34665c5c5c56dd470a9e1e2345c5c96a8719a1a9751e3e231b8b8b8b8d2cf8b17425e8811e3c609aa0b316c6a9ae85adca5d5b500214b75caf58275844c85c58aca0aeb653533a3aa918ac108999a2cba94cba45433def9cccd8cc370971b282ffc859a23330ec375987118373abcf017b0aa8b551415170d5329790d123a2e542e53ddf8aaa5a54546e6a6a6892ec653ce62bd78bf60012163b9a0687961a39ab149b52440a66750b2f1d4728b898989f18e89116396627cc65336318e7a3184860311a44addd41ca9e1343ca986d3b879e244ca9fd0f01a2a1b35800882a1e135a448f5b4b4c4f096192f9c565556344f32336c5e1ce54152ab2a3160b8cdaacaaa8ad5538c1b31e53a9242c36bb84c4d159d0d8fc16ddc407122a986db7028346e6a544ec36170181c4a8d9b1ad54dcd11189c862b81e106c669d4701b6ee3a65538a9191a29522e9a29345034aca57b92b19e80e9baae0a0d142924743450a87c6a788b930aa7c55bad1b9aa7174e2a2c5d0c193264b058ac97171aef1729954d0c7fb1014296a289e1303162c0d8f01a36366e5455543832deea6caa28cdc85e8899b94139dda0a2a45c59b09e5c62fc29d575366ca45e38c138bd708271a261b9128c93ec8593520ceb89f5c4c28285250aebe989f5f49245a744f34465089d12cdd393154f7253cad5b2b2c245cbaa4aaa27256b5955595591ea51f9d34a0b590b965bcad522a65c2dfe72934a71a17b71d50bca29e56a414549b95a544f50a8705a9ac64d0d171d2ae543c35535ba99140e8d1a2b3a2518a7971b17168bd57529185f5549f5bcf8138cab822053ea9e56ac276664a81f744a304e43c01401c3c48bb36090807192b5a05e6c686c6aae90394247c36bb4283d49b95a6c584fa8705a5850c85aaaa45c2d4a344f55642d4ed3e23458a4664451b1689e642dfe927225d50d2bd5e262caa783b8b0f1d44a01400b2a97172b2a1c94bf60b162050b965e11411343cd91181c064f8ae106869b24954c8bac268b6e55c48b151122e8504a2b2284bc487122b364326238ca5555d0f0cc92d570d40c9f715511dac70c47ada2dcc4b0a1f1948d8bac860d130be53468ac6868d1d2d2ade2a2715a5cb58a225bc962d8a8b468970c1b26968ce64665a55d2d6ec3468a0a4befb438027e8812644365a5860d134b46e3468545bb5a52321a362a2c1ad6e2335a5cb584ce69a1b15902069761b384132b08068f61a3b2a2c269711b36aaa786b5784d14ba96172fbcf042ca46a96553d34497f296ee85af3a182f58a917426054479899918291814c8d1537a47433326f979a2bbace6b82d02975b295ebec509af9110373d3374a3fbdca5263847e6142e593ba51523da13cc681085aa150fe24c6656e92665cc6656e80086a79a1228b711914a47a5aa6099927562d3a10e22b1b189b9a26ba952ba15e54a897169756bd54f142e52508aa172aaa272aaa1a2b949a0aa5a662b54a1149f51451ad5435553aa59922c8a06e3c29d5d3472997135417a4ccc4b812eb9552b5a86648b9521e2448ca85e2021459cd169d8bab7c6a5a7cc6810892916979b969b991b90122684585cec5553136342aaf294107734344e5e22e2f2e3639a2a45c2e4e5e5e5a5c88a46edc6a4ae02a77c911c505081726b71491544f9154cf8bb35a27e52c5f394c6a060459b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c95283a5064b0d961a2c35586ab0d460a9c15283a5064b0d9629d448e1ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57aea464ba83a46ab2e8da1b488d27994a0a9929323559743546800185cc130c992718324f30649e60c0f0179997979797972799ca5336329ebc06142a1fd5d393152b4a2c2596928ca7158c27194f2a7f92f1b492f1f42453b5dcc87852e1a86e5a49c6934ce5aa1a4f2e15e8dd5958e9427381886c6b920e39331e696e32d3f120051e8820c799f18f34a762ba75ba534578e81a45d3f116290e04c8eb8bb35c7b71168ab6890aac94b8fc20e3d0810071f0622114b0e330207ef3de167eaa071d8cba09904424243b9209f90f6f0a692b032f742b0338ba9581026400886e61c0896e612008ddc240147c66e0700224d5e0091d93b073757ead46439fb96bc71fbf0ca7152d98a379b69506dd3d05cd98f30c1f531bb844062970419025435d2e592ba28c344a879bb05af02fe9a1bde51f3d47435920a5421141c9d731980203519c60c6769ce5397bc193b93ceb81e2d9ac698eb93e2529f8f77e581f5f9bbbdb059dbb9382b4f6f569dd2d45d31c9f89da8044d182ee3ec2ffb5ee1ef2917f09a4b9bb59801fcf9ae6d8dd50847496bb5f3ae9ee15a820054947dd38ae24641329cb8f745f0ceb24f248b814c95b2221b9f65e2148ea83f887ee7cd18a42997c10947de9e491d4278d84705f04cef0cb9b7125e2618ac544b1d4797abf3c82c979933048499b74c39348f819cf2233cfa1dce7909bbe08bf6d1eddaf38a3dce7d01da9e2b15cda2328e8ee23123822c411d1667f796cb4b77664a8bb7147604760f098bde1fc85af97c919ce590e8cc546b0e9681e1599375ca5b3599de01268679e43444653f44f77460868727ee83ddd15e9a0fbfe58e26ac132fceb953ace8ab52420b5d922fd041551904237127cbabb8aaea8cbe96ea26e224688e80f78808812322a28620391367339f228d951a2a364049b469049f83014b931a3cbe109492b8726bafb06e63986f33bd0dd1ce8ee0d7477121940a2bb8fb840771751810974b704ba3b02dd0d81ee26c201dddd002116d0dd4e4174770210d0dd07e86e03747794ee06a2ebee1f3a1ca8800395fe3ebf4f6b16e870d040f8d856692c368494efeb262280ee88a068cf56690627395aa116221aa26f7876ff08e7df5ee81eea8ec8157ae619e2ebe5e09a64089124370821e94790c9d72652ee3e930531b5c20d48ddbd841c6f6e8a7fff08bf8c474792b7cda3fb5424ff87e4a62fca5644c24fb315ca8f84739f43fd2258146543220e43a22327e350c6b3080ee713019d1899456e7812793c6f47b547f222496f924d0a71560c6afab0122509e9d0cc73289c4f04e38c67910fadd051f8617d1297485f7e7904891c4126b99656881c2f1171669bf4609d25c644cf4433382b117e11ac49f2238574a85d2d43b74d77cfee845edd8daf3841db5d8aa03f10b4811c9c5f14837cf02472bb1fce2792aad3e503385c725c9678b66a2fce737d9cff6891dcc3b412dfc03a6f900b11942c41d07a6d163e2e03a08a41051c572e93e3cf30f572bf34b3556a4380ee6682d42f463857a7e7d286d42df6d78736e312876e25484df4e8ce86a7eefed0d670e2bea835608312e1572a86b67a0b6c28e27d5f8a53492c167ec5197d688b3e1e1a25ebee1bdd4dba0392a2bb5fa4d168057242eaee1bdd3c7407a40b7cbd5c8eb450867ea1bb1d48c6335ba537e74b271fcec0674205a06de86e2c74b70eddfde0829c236a859211420f4e76743706ba8aeeae75e7638b1f6217b502ba7b49773e3eba430bce3eb495022df051e2eb7d9e36ca346bceffcdb41c2c5af0fb6a8b3eff705ce4bcb85ac6621f8eabbee8d5c4c70ee48787748c61e9b096b5bfb11fc44690eb8fb949de6c74962b69b118cef5ab25472b64ab14279975b1b18b813122a2bf3cf6f298177dfe0b562bd463073d9c7477cf661e1645eb3f5de86e519cb412e74831b4e3bcb94988284e218cff86a16c56c66220bd5fdf3623b190f06b127cbd9cd90836c562d58ea30567185f1a8fee7cbae8ee4ae74d08897777d26c049b7c2280c35ada205bab44f87a1fdaaae3ede0f17460b410f6f4e61cf062d8083629c9819c46fe6f52502e5391e6b2e746773f13cd9389de0f67788ae29ce139bb8179d266b74c715d68b0bb77e88ec7b8c3dbf1766062b59732d5cfd1c1f3037e0f5ad8a3074f0f08fe0e2c77c979711d8f1923424c9c9c17e7364f2243847477f8387bafa5d9fb3d788ee61f52263a1ba585ee36d2dd0e267dcbf4ce1c4cda6b41db9d8e24740fe1ebc1789862b1588cec8ee70acdc3e43697a1d11272049988d7d6ee93654854ab444c767c246128ab36280716e11ef7451d4fd8fe6eb3a38a204eeb3853afd376a7187e584b9b71dc27ad93739cd5bc2570d2aee7c4cf93863f8ed4737fcbfe7d8ec121ee65f0ef6d9a4662b11dbce217fd6939519c1fd29a1d720fcf22ee611c7fe5b22bfc265af317c5b81f626d52123ade3f12cab60813858f24dba22e07095d0e0aba65f03c1df795363ec673064de0c004384419dde5d0d0dd7966b2bcd70ae1ebdd6a9913d4dd3abac3d173a7e3791332ce62311c8bcd66f845dabc5fc592a9d2cfe15f8a3f9ce5c761b5b4590e9ce139bb9f31b5fdcdf573a5b3679a2fe6321567bed6c812f837a1f0473a452191ce21464221929c37a9fed24c7a7c3f1cf2a1057f28df6732cad528cd85f331929a24d7470a3f93e3e72c7b09a9618aee9e859fe948c51916cb59fb7036824d339c1fe339cb617d9c230323d824d35d8edadd2edde5b8bd3c96f1873d9b7db6d525eb6e8f85b5744c8d0831493224ac8f24d2212fd2664df2228de6fb4c95682897c951c8b537b0ce47926dad5308576aa3d76806d922e10cb245e1d3e80531ad4492bdf818d6ddb65629b6b54a673850dd60136c049b7240dae4c10386393fcf337fc7f3087d786a3f3a7476c06820000d3e0690850150a1f1f5404cc79c1c10d33116c3b1585377336881736ee0e75ca6779239a3053d5a79cbd4e6f9fae3f922e93ec2bf6fb3d19bbdfed3fe96229d357f268aebd73ef4298394eef6d1d55221b932c85669285a22b9fbe5917c2df9e2277d266a12921f6319696d91284ea1fbe1b5b1d80e532c36824df7c36b84efd3f091705291126ca39866b134824126445d011946d0c930018fb91132dcba3ba6bb1fd0dd36cd804e86546e7ad8bce5b411e7639f484a99d7996d15fad1227db54549462c275e5451024a11303ca4acb40800bba930cb0a4d30d1dd46ba6f60ea6e5b7737acc6d7a337773641c0f573d3bbad7e6d0d1ce7df8c7b25c48a013174afa4c0d0bd32808dee55945ee17a453b1b1bdd54c4393c3c1edce9b163d27c787678683e3ce0cff7983a66cfe401be0eadc623dcf109431e3c660e98717973ba54a85222bfedceec4080f82d41d5e3b896ec0c530f07fb139c99bfb08b8627feba1fd6c7aedc2fcd72b4d9ccc318ffb555ea313c55381c31d1071f09fea1f0c33b414c876443bc6a69a5fed78e4dbe70fe6d961fc7628fe4de37fbcf6b163f0d74997b5fedfd21ff5ba6f73e93156252a73faed25a5867cd3a584b5b6b79deca890beb63cf9ff36c2be9a24833f6bf934ce27f717ebc74e7783f4f9c1f194142c4bde99eadd2d182953aa6f74ed071a5e1334dec619de187d38a21cdfa33cd9b3fcec33b711567c3f02b9d99661d4f1ce819db1b9e36fbf551fc6b6f989c1553fcf56db4e9168b33e3397a36effd65ab94e6afbfb6f637244b7f1aa6a493feb9363d3fa637cf382a7e1b7aa68eebfc519cf7c7bf91a3bd354be2bfd782d7de4b471f3f53ea4fcb33a4619da0870f96a1bd6416c27dd1b7c3f7a345fa5e38bc165789dcc31786c34a49eb55e65ec6539c36788d665bdd564bef2f71efe9cdf799be3ac691a987753e58ade7c44a36bd63ea5f8a9309d326dfb7837f991f7b2e9c7fc569dd56afd11b38df6bd6bfef818a93665a2985e5c45cbf74f2b85af0da3c45d1826eb3d7721c2d48f3e379f3582c1623b1c7dcfbb014c16a410f871fb497f42c96f86f1321434642b118cefdd2ace26c5d9a89e2e37668f27d68c1d8b743a617779fc93ece5fe2ac368a3d9c7f9b306b2b1d3f13b5796e8a7fa7576bb163997be153912467b534149fd65e1ee24ae4496c9592e414ef33191de582c2cf94466ff61ed96890b54933cf21252fd2a64827932cdba232634b24ccb64866abf4966d51589300e94e060bba6d6cf83c3392add25c27d38b8fc46dfd709967c633f16b9d377096dff6b9ad52519c6048f4d78246c8f112096b6969b9342a22c2c3148bcdb20de79268c999e750b514537cffa8a77490ee64ac6c96402bd23c779fe91fff25fd696eb3e3f0bf76b7d7ddb0995777d79044774d37ea4677e7ba8b8184aff7607d8c7f16d65f02276df6f4e64a6fe01c619f67c639f89968a623bd64f8373c4524dcbce12dd325374ff2918449c2fc48f76b19db22199743e1e36c588574f7adbb560260606062c2cf998eef3bf8df9260606062727d2621dd3d76d77ae9ee86818189f1606060627072300ce7fa4c8f411bc22a9d638ea59e87411be6e4c43099f3cdd504efe0a3cdb81482818189216a9a466a91a669c41b69c6efb55cd2fc15d6f79ce8d916b957ad674c9bbe36cdb13e699dfc5fbab474f2d7732ded387d2c475ae9e87f4bf2f0c759e4deffad7958a7db2a7d3dc6f8699e13ab451a2df66a1d2f815674d17355e61ef97882983aa6b7248f0949322a722f27568bbfcfa7e3c7a5bf3e9b3d77e7cdd5823ef30c438a6dd58ad3bfcff15f9b317ee15acd7e386ff65ba638c73f5ad031bd65cf65907b1fd2f7168bb3b404f0effb1c8a3b10d08f99e790bf42a2fb2165b2f7c85f403f62b19af8483f467a4322a71107e27f6d46f22773d9dddd0747e2fe2225470bdafa7d9f1097c1bde9757acdfead66fd45729c4d8f2713cde0fcd067c6b9b45eb35e8931759c692d5d9cd9664c6fc68f249769484b27b44850ae4f415a0b4c54cc7d0e37b0628b6e3025f74b3748c223e90ddfe086a9db222a4e404513154636b8820d7e60831f6c80a3063fa84112fdc24fe62a759c1b9e19bb8be2bc28da9c28ce12972e5ba53e44e4167cda23e11accd0400b1a4c41830574340069208029a0304514dd14790a1fdd1d0b3fd3bb8436e4b0eff3d757330a895e5f0c87f391d0861ce6e1b8704867b95fca21164bfa3c630bcadcfb7076841ce68934d7d233f8b5da5f3b9f96a9cdde8773bff4e138ce8f24cea4902809dff0bcd95a259a4112ddb2194421e75fc71327fb7a063fddddd5680636646045d6c94008191c75b7f75d2bf451212f83ae693178e2c31830b1ddf292f67e0fb38b41d71e08abb63a9eb79082b4449aa2c514263cf0493c4ea0dc2fe53e871d3d2550ee73f801be920f2d3825487ea429acee4cc7ef6ea0ee60200539ffe61887e764b45f0203ef054778010f5e00a5bb8b74f7829d17d8f072f799709e89e2ea987a2c66e98cc42eff70905c469fc72638ab13fcbcd6f4217d485e83bbe0032e60e2029aeef66e0982385a896d766b91e496788e1c397278b95fc2e2948205528452e820050e52e048e112c594766fd2bf7989536fc7611e8e6bc7619fd0e77f7184bcef43dc2345318116459a4314330a02446114050fa01f2ec387b3e332fa1c06f4c365f07e691a1192eb333d50d20ff095603cf30c1facb6627ce715128b25e1592ec91b9e44807eca1fe02b69a2c3d3844787fbf82977088962c00229e8f07860b656299e9ee7510f0f1e2246b1d8083209897e4a201608008a2e40c144db8ae937fba5993fbf653a7338a12800142c2f27e279eb567081157c2be854004537e1c1cb0c4e7f65b1cc6f0b4b9ae7c49ce75f9b63aa022515d0a4604a7b1f8ebf4222d78799e6ad0c7d7ca238853e9f29205310830d508043c109a8b4177ef8d6da68d4eb7d266b33e25e4ea4518c2d2eed7d5b9d612e2dbd6438ffbabc9c780227f0044aba13b89af0f0da81078f9c377b9d482770e94c1084b9011330e96ec2c3abca4c50a32b81164af081121c35e1c1435a5a0f73f796aff557e893da2a9df36d580219dd135dbc727dd9134378a2896ec2432e27ee09274f0cddd2bacdfe844b47822190c0e945737da6fbb9ac7304699ea3cde5ac4424c831822034e1c187885e3bf060ad874f92f6868e272e9c37d9087e18013882179c80a2bb090faf1d78f0aa25cb69f3eb7527ce5d5b694e8460278e747792ee9ae8a2bb9bf0e0af57487d071ebcbf653abd89294ddcbaefd76a250d9ce41238459f989cb7fb47ee55ea3836749bbdf7a8cbf1c4754de8b417d6d2d61eec4460a569f87d2e0222ba1bf6b713c1ad13810d0f27fc5bbe64d3d7097aa6aefab7a4105869af0b41115ef8f92ff92585008810b8badb56692e6d6ee2dc569f2f3c71e15f1054e912537fb0520c8227ee040199ab73746b9340f0d3384010c3c3983a10502c068473488ea727fd00faf1a3c9060101e1b87e8c2013208c3f1c4126f966a3bf84474709f4a3c9062d815b02870f6cd1dd9ecdb4dc1c3f87793833d707ed98e7cdf5b5897d7a7e240f5cc10331f080093cf0b587fd7398177e8869cdde5b16459b9b8478a0a5bb8dba5342054a7ca0bb9174a744527b38cc8946849878aecefbb66a45b7354f245d07a2e8eea5ee3a70d48199f672d388e7c0e7800438d003075edded619cb54832751bd6e997fe2ddf69fbebb85cc21b78b28119dafba5994571bec2a77e6ded487749c8ba24621a7082068aa081260dccba9bd65d06b6908125ba0c0c61200b18c88201243030d4218105891c20d1346fe02d49ffcfd589837db6e35f9887ff6b0ef3fe6bf563308f4747f8799dee4fab599779ecfb1ce6b976987c7eadbf3cacffe1e0789ecb5f2e1e269f38414ae6b28b225de25ed37beccbf8c3cf61b65aa7d72c3941231efb3e87794b985ecf53a4b376cb75de30fd7293b495b6bedbec64e9af6ffc4c67ffb5efc31fa6fe3fc43322c4645e5bb3d1bfcf647177c4138e78c0113d7447cc60c40d8c804167846884d819f1d3dd5e8e1f2dce9113f1c4e572645b7338a6625993791fced1d657f8bf34f3df32917bd371a6df678bbc9c284e9aef24af7d911c699f0d8f9fdfaacc0bff25ce3afd67686804d01d4d0dddd1fce88e86487734df1d0d10ddd124a03b9a0b74370d1931dd5dce16dde9c474a763d39dce8eee748874a793d49d4ed89d4eed4ea7ec4e2701dd0dc3a51584a65b4164e856101edd0ae2a35b416ea099e95a3008740b76816ec19ce8168c05dd82d1a05bb01f740b664577bf9061b560d492d05d0d0addd5b2d09ded4577b69aee6c347467f3bab3f5746723eace5680ee6c6477360374678b4077b60d74378c1a3166c84ce94ea607ddc918a13b992974279385ee6666ba9b114077333b5c6ab81475e7b2a43b9726ddb92875e76280ee9e91d131745068ba83e2dd41c9e90e4a50775066dd41c9bd10f3a25b62c8e028a23b1c20e80ec70abac32183ee70e8a03b1c45e80e4713bac3b1457738b0d09dabd59d4b86ee5c3574e7eae9ee00bc8eb80145835a32033504454357012c3e3b9e0e2c5b7b5d30250a143059daf4bf4b48d0a925bcc75604bd29e32f739d77dadc496b45ff5b5e0213e3fd9d7866ec5e2d9e4360623c9ce9385a70e2ee1c6f607d5aadb93829f824f699434d1c5437ea08d50325e309449840107cbddcf4360be946bd504c80c227497a338e8d78e27ea09474a39274a392ba5148dd2824dda823dd49207712b8a18eba514644243083046c1041029f69163ef84ac26721210249ddcde33942d19213441575a38c2ca148777f20071c504444ba1bc785afc7c394035eccc374034ac8102a8850372aa81b65032a4837ca866e14901388a8820a8eee540fba9b76e7430ddd33948a88203c3a2262ba43a42a24fc8ccb796b12f2801f07b8c0c3feb623643ad222f7998ca0f8c0ea4a33fe3c4525f6c8e650b48fb31487fd71f9efa43e1d3fd37d243f4237040ae6105fb7c7dc26fca0218e3c36c4cc10309d1055b4e7400e6423c4043c66f3e4280428049210443a0655504de8ee0274c7805b7763808bee4ee1588053771ff5f08369474a0d44828cbc8dee9c66e0240327269c92e8d96df6caf158f83978f672fac1897accf3f4f02b9d8d6013d8a4801b2840050a804037cecce51ef39b57eae1237951a439e0be28fcd00ae107c112490100e820aa80140412dd473f3c9090a6e7a5397ef896361d67eb52b5783e12f7c02773f93e692fe9373f3c30be01a748fef51f1e48481efe871e8e1b9c36e4fd9265aa14cf3cc39abde14924e34bcb4b7ac61f8ad6854737e2453c1cc3980677ef46feedfb6b6b19c7e58fc539c4bd8f4747f97df54972de70e3ace093f8f3f732b6a23fcdbd3ab660c5798d7e38b15892ebf32773f8efe7ff5acd8e98d679037f9c37e3b7d55b7ea617a908c2f2cd4645c720cd988aa2ec47cd3e934f9c1b9e4462b1a4bf2e072969b34f23ee654c45ff80927e7cb74c716338ff56fba3c5b854aa59582ead5b9b675b9b6c907bb04a5d893d1231c581d5662f6f49d8bdfbaf5b26f221b947739c996768b3631c989ca3cbddc35fb34e4e232f9bcd9e4b529c3895ba1c27b9374474a75882748a6259fb7116814f2211d9241cfe834f22813629533c546d91bdaf43b545a2388552aa9627b82c8c13e332b4453c3c19d2e389cf9319ba27359e74dd93171fb2f880c507297493d67106e0f21cc71980e7aecd33ac73f4d7003c465a7f0dc0c5395e5b5deeb15bb6d517fd85bdc90e9d0f2ff041091cd78cc1720f53f4f0811ebe8702746efad9bce5b4b30729d37dfcb63b6f423d502cced2c9fbd37aa0740ab99fee6600020ad0f444dbfb3dbc18ce176f367a1d674af31abde125dd1d768733d2a4444747017872e39d8e4b4b99fe1ee14a00ee783c9e0e18ecc50962187edb246724c6b9b41fdafcb889d6fe923351a44bb3a53bc7bf21b54aee8be214cab3e69f144492a111642234824cc81164929b84cc5bcae62d65484224bde1231cdd281a06d08d9aa11b25032a0037dd281b9477372a3f11d1dda8ac031a0562a77085049ed0dd292638008223195150e1d3dd281b22b08311110bc08014dd8d12020a02c0b92d3f44d0dda922426c6082103884b84277ab663c804a142c5084143fe86e172328c0052a08312e04e96e14165580c0932e2c70854f77af8ef85e2e70cb819212ba1b15041a0f0d786880132474f78c56de6638f7392051792aba4ca3bbc789cb2518adbcc1de16d24bcbc11ecebf52809c9ce00cf715c5630876e9ec783b30f09944718e182500d6bd423eafa8008cf60e097f076c029b60e4187ef9a593193986e414dd29199ddd427fd9da3bfbc2cf4fab96e2b7859fb33a3c3c3a70134948d4f4619db216124dba85c4936e21e1822102a0a1bb468f96114974cb881574cb882d74eb889f6e1db1a45b4718a05b472cd1ad236ad0ad2390d02d2456dd4202480b95ee2eeaae12e17ea6b15928d21b18ebee2b74b715beeeae42776f41852c524c010a2c5248a161a270450b283c218b8c6791230f7bb52fd24a1b66eaaf794b995f3bc4fb91669146717dec13d36b71f7ebdb7089ebd7c7f606fa2d2d01dcc3b8ccf34e929c3972607a27ee83dcc3ffb8fc340f2dbd4fe6b7391d72ef04ddd29406674b52ba1fcfbf60a548e18b42b82f5212825212da85284ea1a669c4c359519c8eafcde01c02fb4bfa749b7974847e9fc433c8e3d191fb25fc3947f30f07e7e572d56c0dbee3eb8162ff12db1b4e9ce1f43a43f16f9fa738aff59ffe17f49ac593e6b52423e17ff85f648b6a46b934c24fafcd4448d916655b64abf62ec1d922d626354d23b9524bfe4893b038654dd3c8f5ae1dc1a6197e263ae6184f32a4e1db3c5671b6e6f0d516855f6d14295b8b043791603c45a1fb471d0002173271243ed317216d5206c26bc147626b35f4ee904eb226019f7ab47708c659519419006ca2bb030fd08d5f243daca51de2e5e62de72d27ad05b422bac15adeecaf8ca9e8301a01be4fc4f67e0f9832d1d0e7fdb0d239fe457501b03087d0f4750e81f3cafd92ab554674f77737677c4dbacfe81bfa6ae8f618387b792cd3f0ef2fcda47b852c1909494232b351fcd846f1ce2c14ed0dffbde5d933d94b929366b11c6778cec407eb04e72de7bce52cc0131d3e7277de79037d7643b1495168253d21a98a6e07f2c35d407ef852129974441211dd9d73b4269ee7ed4044c4258624aff7739e64cecd484840a2028707242390a474583f4fc74e8494e44d1ffe0ea4191a5f2f074916244f7e6ded76a356d002d4946e140c5a8062c21125babbc78e03f9bd2598a3478f9f1e3e3d7a7af0e8b1a3878e1e3c3d767ae8f4e8f1f3f3e3f3d3f3c3e367c78f8e1f9e9f9d1f9d9f1e3e3f3e3e3e3d3e3c7c76f8e8f0e1f1d9f1d1f1e9d1f3d3e3d3d3d3c3a367478f8e1e9e9e9d1e9d9e1e3c7e78f8f0e8e1c183c70e1e3a78f0f0d8e1a1c3a3c78e9f1d3e3b7a76f0d8b163878e1d3c3b7676e8ece8a1e347878f8e1e1d3c74ecd0a143078f8e1d1d3a3a7af0fcf0f8f0f4f0f0e0d9c1a383878767874787a7c7cecf8ecf4ecf0e8f9d1d3b3a767876767674767ae8fce8f8e8f4e8f0d0d9a1a343874767474747a749075f6f2c6b4e1e6b4d768879b9625c501c8afbe0fe8a79c5f8e0eeeedda81774a35cd08d92a205473e8f1df9f11da17124868b23257c9fc7625edfe7b15c7bd13de6c371cfb5175d1f1020406cf0d83a620114fec28163a91b15450b8e10103be27134a31dd31763b834126484a5dbf38c886044a5654405c77ffcf01d9787c08888d104962abd37ec3627dd56111374783bb06b69b31bf544378a04dda81174a39ce84635d18d1241372a042826ba514b74a33ed08df240a75e6815752f4445a89049f2c3d7c3b3fb2448f38fb74cefc414d33c719df68273741f5fd31c67f01f8ed334c719729cb844faa0e7b893af082d22a43dfcd79fb420f64a9196e62f59ca41097cbddccdf573c839e280324289160e557466f3e87f88876d262915c9717e9f936349b3bd2c927bd8074e0deec373780dfe5f9bb91c889334cff28b3e70489a5da038c11910f7fc624e8effb5d5465f1997f7fb3ef772347fe19034bb1c9613ef14e958cb0bcbd5deda27cef1564b6d24cd3ef1749bfdfb3ebfd4da1b92661767992f65baf1cfe534fa3215cb51e6435c727da45c1f690689740e690981b5869a682fdb6a448809a6def4155b2ccadcfbeef7f9a44c1e7e8e9ce3cc38c99be608d271d65c8871a61337b3b5342f97296cfaf86a3d4ff7300f1d3c78f4d8ea387b6d8ebfefd6891fb4381bd69acd0989ee934fcbd3f6d7662372a4116412ce201baae84ea14065554354426c7862448809ecc8881093a34e3549c9c07382aa2b7eb4d0dd4052747bb64a458addab34764311511112d91227406277db84b99b04f4536452254840ab46ea6e1a00f101c80e4088e0eb01b9917f58691e1d3fa4c032193f9a3c4c5a3aef5009a25041075a3ea0c0d7cb8f6162aa0d69b539af327cbd6a299eb5620888d1f65858e992bfee93251296253dd8e302b3a5f9b89cd6cf067e10f013f4e3a35a3aeb7eb0fb013d5574e38903670d56ad55d2bd8271e9965540b72c11ddb24fba650dd0c343f7ac2748776391cefce1ecbfd6ea7975db5aeda1e96e2e7854e96e9cfba5297d7fe95adcac56b33c9418a2310fb2310f26dd3c82748b870e0f1b3cba776069eda8a263b0c36907d9dde12c5b11b776ecb02388db1ccea0ee08c02a9d37fbb04e1bcb0be2929cd95ce92c646ae9e0c1085678b0687c33c0f20006268f38824d7374203fbcd2f188222a4549a05a8afa21876eedbc5a666fc0b6c807b7365446e9d0d249d2d201a27b0896a3856d3aaee5751f490ee44d7384b5728478de87b3f5fb76bc06c7f7cb30ec2d71ecf9f1cd4689589b1486a251f88f4bd22dc6aff0f17dd2272a047dcb14f738b2f4b0be671c250a042d1c1944886e7812193f13e56eae425e046b928e022a868ba6424b778bddaae188c6d7fb41ab8619bab13829d08f1c8d4a8e27398e109bcd8a8c8890900851321372830c895112d26c1623e7df62f7eff730abb636e5a46e4aba6109fc9b50cb3545a32ca0441425f03152c71317dad107bdd966cfb3e91dd0f87362bd93e8435b1434f4f4265db0d2588c369657c8002d1ab680af776d9ef733cd8f479009067afdb87688284e21710ac5623121b54a62b1586c36ab1f86f436a3e49c911803c56240201569e51149ca6c522cf6795e7006c7d3e72d653fe62d2710bd96e267a2b64cfb6a67599cb7af81af64049b840c8595e600f4037c25403f9a6c502c167e93a5c5623b3c4c40a238854690492ca6c3143a19c3b1acb3d90c00dd9eac75838aee6eda84dd700a6fb8926aac78ad9a245a3506a8d1698ac39466451a49c5189e5a31301143932d6ac5e0dde5a522499618062add4dda2a7d91de70de8281886e2fcc89d46d110c3aba1b674cdef0bccd3c876c68c0c692960d195a3650354ad0aa0101ef470b96af5036711e49738d26ad1a2fde676f383ac9d77f8da4f97b7dffb5d9e7ff3559582dad698e348aa041a43d9186437385cf346f38d34563a6bb5dde9a21446bc6ab4563a5dbcb4ddccd53e6fd2d6db4e698dae80d9717d31a9187139622e8f20f698b06081a970c26b46410d1ede1ef739b3f5ca991cfe9e755ebcf54fff30fc9b8757b3e0baba5857426a3fb568ca7ee568c293192e8c6319ababb637cdddd8a11a4a7675b63d868aff33e4ed2b2d2f9734344deb241e324dcd716936e0fc7abdba2d525a1d535757f339b3d146dee64b46060a1056302dda4bde1fd5bbe658db4378491d37a618bd60b447c17fbfd5cfb71b473ccf36d936cbd60c28b09b45e0099c9c20c0d5a334ab4f7394c1c4126e41cfdfb62df0cfa1c664488096ecd1c69cda45a3241e816c2e2d75cda9c4abda3b1c48fa425c3d49299a1499bb1b76254d08a31d282e9a2bbbd2f37c10f673311ef78cdcaec25fd7ec6b3761f674597793770922d98215a30b60523a3c5ba81f7cd9ae6e8cd3c87bed887fb6a2d929c98294845b2e93dcccdd17a3f96b939e6ea247a5cce59ae0f74c3f3c622e251ecb3c57235abf35a2f5696ac1b1162f242052e5b2fa4e775ebe5a7db2bbdca5a2e5c74b727ceb2d2960b159727badb730f6750cba588f65a2e479f8f5a2e3ebc996718cea0902816039f29160b339e91387c5cce6c958644b4d5e2e4b55a7eba3d3c5b2b2bad5594ee6b5746dd52b5e0042d556da9845aaa1fad54155aa9285a29215a295b771b79ecf3e6587aecfb1c16f37e69e66ae917ce2752349b315972d634c7263fa82a3c23424c5a2824da6ba1722d14916ea16c7477abb178ada6a269ab9368f50d479dd1adbf25b55ac7039ae1be76214b39817eb44662b1249cad5d104017607061055c58e2420f1768d8c210b6b0812d14d9828fe77df9f1cc717e69e658ecf39a75f9ce88f3e1ecd0befc4846dfb4452e27fabe1ccd9fe6fd4869f3f678de4890d6498660164b5ba5373c8988e214ea824a77914417647769eb42a75ba6052ced69e1093c714d5a08a20556e3bee6d6e62c54690fe3fcb5a3cb737566c1a99be61947f5e159f8dabbd679b260c3561916a8f05162a1086fe6898520dddd5c60692f3771397fb92de2a202dddd8e694e34020a898080ac505a6188156aa8c21555e841158aa882d01657b658628b6f8b1ddd8d615e7d11d69475d0a11a89e2f41a1cc965f47ddf8b626ae4deb7f33df5e9f8bebe9ae43e156eb26091858a2c4b645940169e2ca82934d1ddfef23c8455ebaf29c0d04d8185250b2c1dc0526241c222430a5348816c519c428e4bf1c8615f6d9127e4619d3a780dae83cbc8cb62f9e264a2a5933c497a5f1427f8a2ad52ec134614059c2b5a90c2951d5c51c0951d575c5a3c418b14681184163ca0d08413402104506802851c4fa8c21336f0841c9ea093c553164264f143163956b0b0f2012b479aece0af5838dd6341430e83c1609ea3069abf4645c799fa7c8d9f690cf67967c7634639440ef370906c5674197d2ecff76b96067f715a12f4fc43ba654bf357be8f2b7d613cc9d22facda240ef33e1ca4cf6651a4619d2e7f659a6dc534f6657bc3398ecb611ee8985e4be4de776d06e710fce15224fd95bf23ef9b7d3b0e9b353a1de847fd1bee5a207ffdc0e264fabfb5d1de9acd4e70eaf63a2704f170aea54cf3f6344c4727c068c294eef630b6622eed2b97b4263475dbdc84236bafac094c9002c7e54cc04c703297b3382b1de2e18c2f753c71484cc0624ab78783ff6b58101184c551db985c86858d2baa748bf30a267039dd15df153addf476458ce7d6667bc3cd705f456b69b158d2ffadcd705f81927ed48c8a58215a018315309620457b6389f1748779e02d2d9e4d429640c35395a70f3c1d29610b4a5842094028c148093624210a49b040126c4042164860a26570f732be14e3b88fafe37c79b3cb9f898af34bdb7cd1f3c4792cce9aeb85e7cd45717ea2386775be682d0cc9f3c0fcfec26f9bf7992c8dfc4b9636f70a7f5eda0be7fb927e2ec74cf77fa9ce3c6f79f6226dba7769ae8f848c0422ed2519192111f21ea4f97d5c7a15b12a60388215421c61c711504658811142232031c25011b82802108ae043117a8a1053a5065d95045439eaf6c6a021b7d52daed48d1ce6fefaf0f4dcc4e1a56b71fe7d612dc5997139544332c37d9d551b8b5523c7363bccddfb667582b3cf61ee31245ee94d35274e98f7485e9295de272dcdf482b9a48da5edce218779d77edf0bc7fd3c225c410425ba5b487744981141c61074300426dafb1c539cefc1eaf2d7e3acf834c7d7faffadbd971349c7f93eafd2ff3be49b431032841a4360092105ddedc9208ef9e6791e2b6d6e003d7a787f5bf26ceb37f9be1d7e9c48182f81b60888e958bf077b6bb3ff5af87f6b54083edd3d3b65d3874038164bfad16483f06cb241a23841f09504010620d400084e8030801f50f984bc46e4fffac227ba8179067d7fcbb34e7f25b997f1588297822e8a73c9e8f31f90dd9d43773f18800fb6e8f6727fcb2f1f34f1c1101f783ec041c50a54a6f0705c78ce62b124afe15be2300f2768c8bf1a39ccc3451ce6e1ecb88c1ce6cdb2b548a8740f72d083263a93e5cd38aac5e1ef97a85893783de87800041ea080071f0f583b58c10e9c76a0a3d34117edcd66feb48f56e259f813c7b393e3289c9ff1f7f9e31207c3ea144912574b739d380fbdb4b95c93bde4e7192c6d2efc6babbd4d1aacc4a5cd798dc8ebf4c2ffeb8db96ac3f231e9e1eba0880e5a399022073507357000051c740007374f0847c865f43d9e41b1d82473348ae92dc9e51e7827a635a2997ff4e9f2eff358aef33ddbfa39cccbe4834d9fabd3488d8293268af6be686fb8d1e6e9617d241cd8e8f646ea1847a4e2a8d4cf4a17aa20069d42432232020000431100303824188cc74352d1883c2b15f10114800373c466944a9c09a3288929658c31c40000000000320030100d03083041da68374a093e03ff96a46b81d7bd73fe99cd6ffb092af5c3851221a5a3aea38ddc2ffb7b62e9adfa0b677dfe192b72fe10bf7cdf646a31cb1d540d1397be6574ca8685d297bbc3f09f33c3d3fd07c51d79dbd51be6125ef466c2706315a42344c758a11e6f8f6da49b8e0114106d764b53544211e2549e7e7932751dcdb15d9c593ef4c44e02109652e941cb09937c8c45dbc6bafd1710eaf26db9626d01930060034f9e4e7bbf87660f38f482a3afb9ea247ad456ef40282f805f30339b7543f68cbac9966349e09962c6f8795bda15e62291fb62ec8b42436ba725c592be1cb9472c654fa80e9e727611e693e9a317fa60999ee0fbe2870884dbf36eb6e4925dbc12adb99d50c2d6505f71acbde361b2e053eabc18c0de63a39dc70d7ab9067f4edb3ee2d2c5c89b5738ff441ee1668528ab59d31c75ce0430ef849e9f9ed4758efb573c7eda2ecb79b76a19f340c2b8a1270887aaf66f0845f10209cc625059525efc0d2bd3b9971eb2b21bb2e35fd6bc89490189cf5cf9accf929b89c1e2131336d3bba93a297684bc20b002154f093fcbbc5b02961c3f5669a79a86b31c6fb0abbf60e1425ec9b0b19b1a375adcca405672c61685dc629bc14b39f1716520164b3e95dbc7ab76d645f8cee2e04802824dc67f93fe56831614d86fe8910c762facc19d65e8940362d4832561941d6bb9c95f822fa58be2fbd3a4c53a6b3f21358bff8a60d6301613ff2718e2aec415be75efd49f235884a077e0feeb487097483c8cbcbe9a99849b2327a48526ca225b5e2fd6a90fe91d6f74f74ab7522ba55c5c191f119704ba8e3f8cc8286003f5039582819df56b321afcc32d3840e2d320adeba20b31fbd6f02ccb36d8fbdec91b5bc1b26f07d686844a4d8366a121426acb60886cab5cb0b72c7891a85a7473272694571b2d7f5609ef2d6523fd6b561b5ca21705a14b49a2a052d81824b69268fdd20c7b7344a4fe2e4a42e80a2dfc2a0a03cf4b50d0d07844b55859b53e0e6d4cf056ba9607554d101f9d04f5508ea6bc119c91fe41939e828de3ac0db9a167bf361e412f4dce219b1c0058143b7f4ab077d449f90cab332bb7b4eb1555ad42d4da13700f0a96e647ea6455f0aa32de61a29a51b91319323293a80778f026670baa2f95cee53c3e5bb55c01a62c927af7e50d882fd49b3ceaf4b790b3a459809326ff500af0c4283530fdeca370b10bcb9cf38316f7ec777649e39c38642825d1c889c4489204905d6d76ee82fb6f1b2db1904658a1bdff84c80e016065776aaaed91f1c67b726872e87fa0274a8301d0d5eae5953d77b0afe4b3470eac0f2146b3041102ba1bccf4a92d6f19a955475a8b4821eb0dd3488a24a94d476abc36ef62b78584a71f21baa1e40d521736249e29986e3e8a6902641168a8beaaeada4900bc9095160e41500ad8c61bf61632d33a111e676f4afe12de33547ad3624c6306cb96da0a031158baf378afe10107fe4ec4b755d409dfac744a7fd964823ee1e32422c5401d30b3a7630868c23e7c49197b024d55e8ff9f1417a62ab43485c308438e6c8f5a24dee612bb17f9fd29f66c5da2f9776fa4b42a2b261597877c6985997adc7e3120f94e24e7df1497ce25ce53e39b99d8411b3b61519fb76533edc82dbd209b122dcf539683027118d20882ffa4aced917ab1c4bff8529edd841381a13cbc80bfeea734b26a880217d81cf8b17974060944930b46a5cde31f98b502c58923b95d98e3cf33b027fd767d9cb9de920ca17d205b29e3dde36d7217175a79befa79a6e0760672da142556af74b53496ae0265f6f6d8f585503625f40c75ffaf0766cc84eeda17c8e49d545d886e8815dca61e12e85c67fb24c21e50525c29634fa055f0f3eea0d711e9d77fd69f5ae4054146d97eabbb3f8cb30a7d8047a7d89b78cf46e21c2174dfbecbacdb3b719df24da44207d0a19d0637e2ca3816c72371720cc6112bbc0d88bf26d06fa65354707a6efe1af916a92605c3bef4fc81a024506aecbbbf3f0298c4d0d2ff97ff924846d467ea8d0a7c730574a2b3cb8fa8000350acac4f823d00f1940110313ffd499d311c3ac186b0673ef238b210d8fd60e4398b97914ec1fb5edd968ee8c0bec72681c131bc5ae79724dcbc94cb17c9645f474e03ded3de10df64e167a2180658092058079336b921809ec705963584ab62ac8179798f8f65439193986e63cf6abda02beb32bab93ce2dd14be662ee606074d257b6ca27d368e51e60f6ec89a921305514259c6e72ffc08695d37d83bd87451fdcfe07824e5e7371bbedf2183ca6c4a5970d988c6b586e9b0278131cebff8f1c90517e621de45b58b060df4f33fd05c94f8ba964b541105e91e3a93bdd756542d669335c03c128bbc3dbed8ab88d81a3c6a21d3391ab0cb5cf8b0eaae20f24365b3d233408129dc8230efce8979847f32c18ba746eb61cfc40d63c0e6ee26975ed3b6219ff30388ec5007cc68c32b26c4f13e0161b07aa3bd1c0ef1890b0de2a95096085043f670d7593cd809c9a5d8c0ad9efb614ddf2bcdb3a22465245ef46d9a0278f4c7ad796377cc31a3f417750f31e072a04ffc13e1e7d75a768c6f9e6bbd3297fac847fbfbd318ebf387d79ea58dab3dcfbb98b1f51d73a83100dd00cd2df46375bd836841908252e3b9c0ab655cc7820b1c91ff3f5e6395316bca7d13c702af6b3e5d5431b6849fdd231fcf23eddead79140e0d68abbbaf8a9050c20d2c57a0705eb3db1baa43f36c97e71813f64f334b779462ec34c87c149cf736b8e0716257b0f6d61069b9fc69a42dace34f416398efe081002e9f490cfe7bfe1f6b5675467459ece9378122c90d452fc4b9c7ed45905e5209079697c962a539b0df89eefea640b4274af9fb03001b7cf596954e2cfbcff08d3334eb2bcaf0272508b9baa7f2a4ba40ea8bcf388e20f8e98e0fb2d634df5f6b5a040002dee244c97b70e4c3684cde3b9d9df6c80ad2169198f61ba7ea0dab66bce1fc34505fae8fd014605f08249b8fc04d44891f7636623a076027397be25d7ab621d92afe69813e2b3f0fe41881509dbcbcd5b213f6eadcaab7574e59b94ad073c9239cffbb74178eb9674a556371c4cce1a839842bc3f79c1e3f1ce3f49f3700d5e07f31d278385edcdb22c08b425c0096f9a93fcacd6394d109bc2eb65f441ef9efe08d569feb453ef186bdb85b9c42acbbb45c262d126b8595e3b761f0791b99dca8d4d75cc6c82f3da213b174cef009f0fc7df7d6342a574b403671db5c30fee75d8d495d42ec7dc1a19b4a3c8d70af33aaf51af9250c62fb44a9365317c1a0f337a2fe68c2893b968de7b74932476f73b01e77918806eb1f72c4c26d063507d7d2020e0bee03905ec4b43f8bd8dc92d6a6d6f3e82cd41cecc367b95d479614eeed81e744bce44c9e3a2c63c1189249843e0a3a77f976c2609a8422801794a4dc5261c896b58748c80107466c7c41f4f3334677dc5ad943f48efb1cb94dfa1cd9f8e2fcc862246521cbb0ed273378501e4d6e1e802029e715fc0b0abd0f8a6817e26d4e743049051e962bb822deaff617d715f029e26b065ccc2516f203444c8decfa06c43bd5cd7579885cbd09aec25ac8d1485b649380afac80ca4394d7bbc8a145f735bb001aa2cb543d85cf86ae4979d3868c6ad327c61e3bae595ab39e7f46eaceefaa573c28247b558009fa429c900fe952620feb2ccdcc5d974ef71b2e95aa172f5878653a2f95290bcd3712ae5b7fb3390ea2d87675514e30803bd021df3068f8e3340191945bbbe12308b055cb222a674b9091cca4aa167653325f96542f777e47963d99612703d98e8a8517709d123dd500b8ab3484d953536004f31ad0641e1e996bef815fd9f92d2cbe8952fb0b061c247755b08fb5603cf9f2ad9e705e06fbb648f59a48fe3d8bea00320b8859c59a0c5287d5574825059163d48dfc60523b33d67cb59c6a3371f744cb32497c21340dd7c0f7f88524b7c5b87f3ca1d9ff50283c0791baccd4d2ba118cff84e0c12a9e9f7839eaba44fdf7b3952fee47be735f7f07461ce08b9b02a90a830211db9518c2801ca814aebc81bb1b09cdf37b44f3e94ef684f20887c8bd48dc5dd94c003434b8725501a4583c6636028757b587632a8eddbb9588201db38963b42c2cc78ffc04eca524ca4605c27f83c9197e267070a5a8b905aae4b1274608aa5f1c2b75ba5724c44ed87136ee6313f5eafa74b5301c202117c001d9608736de73a3da2f6dc7f4a265265fd4c3e622a31b2e7564e4211f2eb454bde3bd31c7d9e305c385a2fb9ab5e22f01bc5e0ba58685038a2ec57e45b7b53cefbea6b2f25d2d69f759721c36da1c9ea61795556b3e28b087fa911212a4ef8f54f3d7710e0089290e4bfec355d157aabaa7ec0e422726c0e94513fcb508f320e2379ea43fb34af7d143df96fcc12bdc322f12ecac32e657f40e3fb074c7a67fc20a04cd50bfe7a9b917b4b430590fcc81dae47f39910ebb3bf87c1e1baf4a4b565de3505d3a48c4344ca7c9ffa36d639a178c660a1c008ae1847d974e1091655bce49e43cd92572ac9f4a049b083682161e7895c83c56ff5c77cfa0eeec4d89228701dc09db5789ca865f5817891bf97ab2951f71911bda71e26009ad8b6edda1de12ba03b34ec15a1e64864f2ffabd63837edb71223a21ba61e5a7aa102b058ce893df931357af916fa996fd0e7c0fd2fc5400e9c5c84ceac1531a3d6e7cfb470c0ebe49afe3247114dd38c9b0464c2df172cbbbb41ea0ab0ae13ebb6a704e562459d792d8d4b8cc73ffe33dcda87c48d7c10f3631b8e3b3b8de1c7cce25b9671b8e9c7e24b331ed78c5472a2ca1967660a49a9b9eeef8718a0a61352e8aaa4c072396ce6c65df16d62b598e1fc623d6e6f467b26522ebbc9d791a18146c06a110ff2b3a69d16860b960ee1a80a87a548be0486d162c4bab9ccc8d3f5e794d63c9c0542624c263c8ddfd21468251a933b0c67e937f1553b5c97c7c90348f22a4dd68b8f01e9cc763dc87755c78308108f1ea9c38fbd541e007e1e8fa15be9dde64c7b78e84f2c7fd7db79a692a36e971e97793439ad3002e2f2e20eb7f241e41cc89419c7aed5c767d39886b192379fffbe1366159bc8ef1294dc19e8dd220863ad0f4be5554e3da65d5976e4cad5227388eb7c02b23778fcfe8a57beff1065def9521e6204daf1f18ff6fe7f5fb4e61f5da35d9968140a0d8b6ce291c41fe57722960658fb042d087ba8ab0dd6f591df433c5f0fb664aed2993dcb6c5a917184cb167900f406825406da9913417b050bb24d25d577f67ad377a1f11b0495c14391a13b0fc386414de0832556e63e3b7f483ee4fa2ef1153c24636b9247fdb7b28da963463d0faf29c89f54b72ffccd2156d5a1f9acb27991dfabba298e779e7ac7ed7192e1f58b497cf8f7c38471aee857142a9c633e5b2fc4939a58f62f7dd3701c4d0298906318c9d7ad704ca7fd286f3f85c70a8e065756a822af506a50e4eb73248d1e0586c971b6f5bfde74ce61eb2ab7076fd26b444946b91624df73f0e63c588bc44c03753038a6c971a69203b2365649fc4e8083f31ecb1ff5583e8f7c3cd1067620f4df8f1ec95d3311a6679791769f25c633785cc5a41549cfb53c3150899ff436cc6cad837fd0b194fe9089c684528d332bc92e89f26ed60ddce529cd9b28560a2b2ccbf1f17f9347f8dcb3391605150575b469b89542e82ce428f44a807317959e2365fcea50db38b0fc161d9c477280e97f09f430f12dffe43bbe8c0fcd02c463c12ced91db119910cb7b5e79ea71e77f25ed1fbd02e7463be0080136c72b79d726e746d8e277b4ceefa1f60dbeaffcd3da8f179978548e2c09c79870cc1d8914be4cc0c1cb432ee7a78117ddb345b59ac9923be0e55036499a852d4922f9491b5f1454174d665a2f52bbe1006e156412f1b327961e3b1ea19f786b8dc31db6affc4c68fd0e570b6a6bdf4925ec0be4243568cb050f3f74e2ee67a2ad9ea942497699681506e79b4488d529ccc5135f9509958aec8113248707acd1dee54b3a70badb609bf41749386df16dfc2b0065be4dd9207e99256bb719611a26aded45c4e5a5df0866cada7cba31a7d08b214ea5ed804012239c0f801fdc5b66be981cdbe2b308e55995dbc808d9d621c6cbeae9a563341eb28027596e5783af5d7dd59a103999871411c32f84a25da1c88c75dd7fd3ade3b4428ae42fe6688af02c8e5d79dcfdcb7a50537c8f7d259dfdbeb78e2b789cf815743870736f92a026baa655754429361c6438c3d2362cd9d4773d8e85f8c5d4bece5be680b2c3a9e0892e9952b5c838f3c6bbf60e975997c8afce5c3587b8bff618215b7a08da46e1c1fe1bed45b54b44a3f869aee61610f4f77d9f353b484244e5f4ef133d0dd8aafc49bf4274c3cb97cdd169bcc4055f414989ee93796c36a4efd9d03690ab075d2f31668c9a1c9d53fec51693d6e578dccb23b2289c61aec9f31da51acd3b7213bcb03c954f51b778d2dbb4376eb00fa56d59e2c96a88fe88d53048106f69a3400bafcac5c5521ce78b2d884a0367047692a37feb31d10178ef9262754b0ea570fa094187bc6c294a1a10bdc6bf1db6384b261853b9b6bd1169a1d2666073b20c8e40594651523a76c371cb39d3707fd28661aa81464b47093d1ba86751ff7b296b58bc4e09bfc67662250c1af30109f0de1a9357b7e1cfeabdd8078f7e4eea13ac1b28f8e1d9c7844655f1d1d84cc08b6c89a0bbe165b2f08fd4b27475ce135d4cfbbd0e700f8fe5fe401f18650087030e11c3484d931220bf78dc386aab05dc1a123b60e8f7ce6a9c00549be68b08afc5a440a824863c43cccf1f0ec83eb664cf6b1409f7d480328968ae1bd9a8bcf4e706229efeb6185c072e0e6860aa8a13a4d6481e5dc8723bd5d7e1f0884248039850651953cc28aae4b649dc8459529c3e363f4ed4b88a3ef0740e81802348699b10f58ed774460ed6bff8306553d1187a409fef26b9c650be5cea6f754e44bf384fb941a73ad1db168a13bd0dc8be76d2ea37aa85f3e68b3c4e634be6efc400284be3b2c018279865bf7ff9e61989966f75773c251a24d5d331e92cdd00b10b491cdba57e3220f95d5ebabdf8f5146ec6a53d874aa965648889bb958b95d6564b57c92ff2ab50a0b256aab975581440ddfe80708bee8f785da569d7fced44d83e117056273bbc9e6f0134b6a11249d670c59142843c64e50115da477e29381854b39c392f525ee4a348e551b9b4fa53c73bb96cace336afbb610de27af89d952c0f1819c3cab0f56caac8f3af65210b3ab2125ee0f26aecdcd7a289658d7e110cbc0a359e57e113ca734a29db201581ce3b80c1c9a171b72c7b3cd9b247e77348e4bddf6faf59ec0b960f46f607d398759478e2cb8fe2aa60bb21a09f76ac6ed4ddd9f1a07ca159591fd7cbe33c1dcd3e5ca84c728bcf68c801a70af1b55ecdec3e69dc9428fec99231d1ae5e5cefbca173621c046eacb49047b58dc09768ae2bbed592708fc0e8051c4ff9f66dd07bcbacebaec3144d69904389c02cecc54dbaafd08022996359d09023a7fa4d1c38ef59171dfd45259ca3692e5330a739b92f444ff95621ee1c0df80a4ae5252425c7216f5cbc28beac9df21adae09311c4e8d6f63684fc40815a47d7445480d896eac1082e5640ca0ef11f489a60910925a637a5a2bbf1b9943922ad95304b4af322c854c4f95c11884cb61a4b86f74ccd203899ad14aae83b388fa7d8fdeb391c754f90a1b9eadff186ef235dd4b74ec9c4677543f2560e39de21ab2cecf8062c7942b815dc08f6e3f3c51f94c4eb3839552e1bf0ce4d1f21870d120387681d96d83f86ddf3d2cce6d7646a59ffc962a243e87e52ae6d664982db1ab300e138a8e3a217720e87f963e318895b362359944c6c31e8348d318c67e18bdd2f7b56b8771a33d32fe08fbfc5635fc0eee5c27f091667ab5fc44873799ff681e8b63e97247c23cdc2a5938125534582bd9ea727186229ef2d7118637859969553b617fb08d7af9143b963e10d6b24b054cb8584585671df2669ee9f1ce9384036121589ce0f1791103aad4b5c1c4eb4cbd40ae9abc667720790a5d963dc02d215a788f2ec4d1e4a4cec789d18f19fc6b6397036c5e7e7ff26df79e2872a61b949157dc9fa0efb4f638d05d1211470fc4474f26e278954d789135cebbdb18d4fe5d324b6f19deee4b2b8cb9d5afc94095570de11069d9c1c11add0d8529e53ebd5b98a5103079c9d006e4fd83be1309ba2b81b98c492acfa6366798187d9c852f5a91b62b551b35014c439eed8e2af9efcea0d94a28d43556960829b803959f3eb24f0bb2ae84d5d519f174667de45953b036fd78f398786b8d27ced588a3817939d5ce89f698999937c1d2d1fec8fb286106696cb30efecf0364b37e4db865bb7f6fdd6d4695a6f6d4a7d17b5594b1729a92cb314f5fd2d18a51fc3cf75801bc6a3121a0105373c4bc521b1dfc8741ae98a912aaa29d10da2c00d798a62fcb70e750046d336d25c4d8fefe3258c28236a720490d7653f57e915f7b57824e91d68e704164bbf145d094c1d50e5f3d87740614d7c2dfce1945f2309a07362b322c786296a8e771b480e8f63b4db4c28a26ed80a2c5e6fd65583e0dce024dca01b1f0f2f69f10ed79344d1b38c157f14f4f0b46a58a28f641a0f9c90d85f6e2cf31ebbcf6a69c46b440c0123a6bc6e986036dfcdfb80917f114ff4117a0ea4566a8fc6536706d00b58ee7f1bfd67c7cab0e38707e31075b215b444ea5ef06a030ccd94ca7749957252d6333d0e57f8208504c6699d4dca7020515251306958613422b0a79b92bb21ba0464948ed61258078f47fecd8d53ee752c0dc32c5f2fdd82583b808566dc868021533926476b9eb586b8c92463ab89c0bb6d29abb7e62f17b4449f81e7d4e0d0d986e34097eda9c061d9a2085c401c99098974cf3186908949faa86eed875c50a21154909574f070005ab189afa63a133e3acf76ff6df33024c955e2bd0cf57bf6917522055acd63ff9341f496b3a08f2439fbb630e48d4551ff3c6997acb1fa03f97a591841dfdf9175c9afbe7bb6d45d056847e7ad2152dd9d33681e63a30cb2a5c11b4547d2716bfe0686774c98e16c68300f5efa0ea9c21f87ad5c962eab9af33051fa34f5637d3ec0b0fda6980a6f588714caba9b9d823424b616310e8980876a893b080dd51094b949f77834e7b1bff857bc1eefa810da6010dee320771567d10ed4a0dc2524ff86ff29abd0502eb9c5009355e9cc7fb8aceffd61af6f375a5ed23228d1c89b45539b03600f6300f6e6be7e8d3f9826816865e7defaee34117eae2bf83efba4ceeb30c8c97e5e110e3cf59470301b9605930125c29bd7ec4748e47dfd2a8eeffd9072a89e8fd179b7f2b529090745d0cb8f63c08d07000e226693a4f9c0e007046e3120d2ce907fbaa17b12a5fb8dff918e08733873cff228023903b2586ab918091ea14f0a0314b7110f40193dfb76523a83c0465680f2958e83f82b074f12988420855db32b33f453234a1e84181976040db9d0f5891c91e0093e6b89b0de63716e33dd44dd3e5d7ec50af3d4921d03b18cc8a57615580ada50e247d6d3af8c8c448d755f965053c668e9260e9fc05353a6170cd379f20744c830641df996a44ffedeb291320fba18cdbed303c839f0ee972bc286afe6f027cc5483804f0e280277c7774cc808365df81e35d13159dca9c8e8c6ce9eb2563cb28c6db1c52cd57cbc6393f00d83fdbaafcb2ae81ceae03979d944d19b6950ef3dabc15122160011881786d4d5696b84aab87de03d3a077a700c0ab3d6bfe88e70f11517311c3335b36c98f42213c0f6f405359da5deda851c5f9887ede45bb8067a0e2add937bce11bb71e90e7ff7eba7c6f2db318fe9dc357c5f957d41e8983842067a868c608dcb392e609d9a92e7015a5f78e6e10cdd5c5bac10c59631ec3bfcb9e48d71a816bac6b4f807ed2c09c9bf905e60e7c8d88d9a31b028b59c380b43c7856a049cf67c8f57661abc14e2ee0ac9e45d79154bcd71f6c6c00577cf47cd0e3ef92cd38a7ada3c5a9e7d6b431a648756df6d4301a2a3e32a11b84af59ca6e1039b1ece6e132c16264c62164003b39d087948e22ae9f06caf66a6985bfe2268a54777fcacf3bf5e2aadf2fa26ed481cba424904d50ca2201ac593dfb46310cde0913bffedd08f84edf72c07d8ad7c938a8805e5c28d377f77355b816a0d9cfa6c6c696adc79222a222a126ac78a3f540ed7bd9a89438ec11232b63493166ef7537a8fbf5f5d46ad005482ec095e6fa624c7c592d83ed2e71207a0698c33ebb720dbfa11e99d6f666f980c315b4acdbe1c3087e643c9c7b032597ec742e03bcae87d18646baaa32337666f52728da52e9931e2699cbacd0e2a92beb7d2687e4789c58f1d891223ef9bb60e64c72a33fcc8322e8417255c19ec342760513953c3e9c72eddcda53fd8afca5448e9f231b8a64fe7be3c953bb9c3c4e1b8049bd9bafdb028bed9cff031b7f2c897448dbdf83d0b9a041ece3b26ee19413921e8ca1863f1f421bb4c30c68232f3513f367315b28a79be69d41316c004728efaaae16820795cfb7005061dfd41ccca2eea97cd96712d2627e0a8432c307b8fb5c0ceb7f64292fb819a7fd040b2d91b578508d91d49bf37f5fd4975f8b2764afeaa28c90d27ccc941176e728dfb7f9cf7fbad51e9aed73fd776a47287c5358939f817be036220ad66704dc60a45bb7ee160757bb1520ca593df36c489a6095bc1f6064f78530d1003696967dc6638e38a294188a28705dab032c179399f228ce1b61614b0a61ce9dd2ad29b9492e38517ff1c473e997e4efdf2288d8f565046a6451b3e55deb7fe7ef67233ac7ce094c74719beba8adfe25a53506b1252678e67a1fde5f87740a48f8c0c6098f8c73057e40b8b49751adc5ae81fb196d8aa6dccb97af4d612b9c7dfba3d68ecae610241d661ad592b35fbacdd31ee3fbdc0ea4f48899074d9af98444f5af67e9e5b897da57303d9e4ab94578ab3e7acf7cc42000c036b66c0b153f08bb279c7c42316e1f35d5cddcbd6f4eaddab800f9e734784997f357aff817522d821a65c7b71a443f50fbbc4e0057d66c10bed2acec1fb81b7350f4121d71a4ccfec8ad3e829ac27c07632b1f36ca0b21a4b76637cc708cbc67c279fd33c4688a199bf4cfa1f23a983771bf250e35c8d62aa97d5157af20d1f0497d746cbaa160302497a39e0641d29330d573df7dcd48c25621dc06fd9586d56080dba442b9a26811a7438a36ad904b6efe010b3540b1ca52ec20cc1cb06cf665759e159e9001a0f48062941023ab81267eb79fd6944ebd34f9a585b106ed70973d908cd37dcd748233dbe258d86ed3719adf0682a68609307b1595b8c53f1c6697c4f8371627c1e5c16dfcb84ddb4bbc97ea77c9c62a7b88600534688bc12183a6315b38709bff3fc03fda32a422b51e496fe866dae58a24e6956d2a0a25d53b4bba4d122854fc55ad8c390bcda3ece1cac4069ebf1c70f27789eae3af062d0c118c87937230067acf8008d1225871c1dd676682aaed64cdf9584aa74e067ca513a90283e926087d7c088cf9c2819d2212c9dd65d1f1cfa7004782d0d4859313a26c540b1251e5a00cbc4140e820c3a0433dd0250f25c54ba2f4bb3c9c91fd229d27ad74e0c04815a6d2533cffb7795e4d652c8455dc243d7e5515a8b036bf560be518fd7f44780ae0b1f87e2704ff04a0e963ec6f3ebfb216cfa5d4172c70f3918799583b13c1d5fe301109cfe8e5f9ea2a5d851d3eb655fff8573e719e0f851c9b22d89e7c4088704b0ff429ccd8e4ac1dc7fd5e903d5cf0a6807b9e56de79d18ca38c3898ffbbae5c45b6683e78928f574bd6136451678b498913637587de1af73c58124b147a92786ea5835d3c55f7f70ee2ea38c34ecb6bedce0553338af01705c2a1484e0d790149c65e0070cfd1464ff1e871ac398479e6cb48fb7ccf129ddbe1fe0d899cedf1c93686403785737d6baaf0bf401205c2634f6d02428331977eed5eda4f87fdc84c9b94a97f12dce7ee0c28137eab9e134f2fe22e5935e20147e041e035290ac59eef6b6c364f9635f7b64d197c2a427c0084375373c509990c9baba33876616fec01b93fcd10621f05b517ddda7ea8b9919d7e2110934e38b5122c90d57aaa2ac74cf2f9c63a47d09f672d4c7f939feb8680554d67dab8b678a41af3ee021bb154fa97eaff135ea11b2aba05f351d56f0b695c6a5d124b72e085f304d11c203394a9bbfb5c6c0ca8ef23412b1a22b658d7c855cd07cc6ce8882a2d8e09df806f5b9a22af38260ad9f787b9151353b4dc611260fb018f29268b53932e709b85032c37a4532f18c30174a32c0bd9a658b8d29ec6752052cb453e610df084ba7ce54c4a0b891ee93537a09d9d32233b7f156647d929be942a105b2635133c424cdcc910eedbdcf5fbf28504bc645e0c23be4ebbd4a8358a95578778e2beb4a4176bff452d002d3a079035e4808b7943071b7e24e6f734ccca7571d6c9b932d48ea795a917f423332de95bf37f308150865edf16c88b558033117dad43ff696405937e187ca2ed60d4f3491b4b63ce0e930a9c46152f838d9f5c35fc58900d656ac7c5e044ab1ebba2552203bcdfde3e89f1a364b4593883f736108cee74854446c721e11e8777c2ea5efa2b326abba0405b060e23cff3763b3c5e178fb02dbeb23fce9d6e1b4c5fe4971aead524780905ec1ac06e2a771a7b4c8494178ad9bd88b8a7a32c78142b5165e7701d5c855566404f5fe4c9ede238d735319aa5ee83610c47e459ce0773f8bdeeb34b733419ec182b9f8164315af4f5e67ba6c34737ff714d6fdbc2b142f908c475d218ed546bc8ca0265de0e7c752bebea247f69a2e7a6a5563ce92c27db05d0e86ec0642a3531d733b3f80ef2582e8249eccf44aa768d0aad618ec993333245422c61445283da01c81413991d0e58ce707ff4b46678703a3a624380d1df040111c4b2d9e05cf617976dd2ba8fd9ea32587689680d282310ee0a866cc90dcc8ecdb95a1bd4125b3509c026c268617b4f3ce67eb53eb90e8c1435330c9eee78eb98ad5734fa3afc5574fd7498270b33a0b0a05358f714000181617a8e37673f3e91cd5f1172b8c2535085286470f02fa7a1630e6203c92626bc6893d93130e75d1df643029d65cd7202fedb86f1c9f9db0d7b75c6c4cf7d8ad7d94a3b5999e1c7c72b5db60f39708c48db56e32b526dfdebef9a177ace24a33b826aab389cb82dff4c951b4cf60f092cf1e9fac6b28577ef258c0e96f3de85272977eb758a06cb32433c1c964ee0771bf1eaeb303a86369819a2c040df9ae29c5502d336601f5ec07d8d4f1c9324dd1479c75e7220997d60c0ef19fdc65c2c239caffe17ebab13033490d94a231c2a2248b6134417e78a1d4ee3e05fa461ecc6f488263f5e4d72b34e3b063e3e7c3d5de31c2f6b372db84b3a62ee11eccf096d4fa8ddd111fe31e861360ca4436614731131dbaada358ba27c298411439334044db2f19c6e6fddfa3716ba79967aae473003e6856463bbdba275d1dea5eb8d825e5bf91341e33c709edaca770812fac4db4667ac045d39d0cf6933cc61ab4414dde51ab84f8dc97a6bdf78c3be0b8d7d5c21d357990bc10bcca9ed53258fc14fef3bf1c1f423bc53697cd5397f9a2dd6e8de661716b0f42590ddbee78e6bd532e4ba80c09b2a3fdaf2948c16fa71e07af5b90410e0162b92f0f24fc33b695b9aca49a4fc5a076849f33989167ccc8d397c76a72460a3bc0fa4b289d586160dd9f59866ca2cae58f04408bb1124484aec25692eba2681f4cac9c743b54e62e8203f0464526c682f7580b0214e7e3ab9a281d52a2fe14f77f1a2262ff0d12e3ac354fae4eabea6f44617efca6c7e6dcf8fd9421feca2379fc5b7479b46e8f447f1f91895930b6bde8a065ddc4f65d05f15cc821cb33cd7d1e9af1864fc197f3be5fc80e4d1d15fc44aba7a8b8300b9ba0b79c9aa208318d590b2710d4af6d71a292f8b6175e50f95c7351de015214fb1dbfcdc8237bf5a9e0618319b83c11e63556ca9132142c51549f4830f622f0c199d9483d2b9ff8641a877c931ff327a3d957fc4f85c4362c53c8a8fe42834534daac256952a3c6e431339075e37a0169599208ddafd65abe587b43a914f236d5c12c1bed82651a2a56dc35f06e8a97722810aeba26ad05fe32f3e42e9cfd0bfc28e28c6078a7a6dab0b5d6fbc6e1b924e231e6ca7407fa1969ea19b2520e6d65d0ae915ca01c131dbc252b3bb9f9ff89a3f7518786d7104650203208b1f04eacaf3777b843a8dd5cce3740b68f462f5f06478ae11f7662d4120e592404f601898490d7c15ac8a0bc27e1784ef6e24b8f9d01a58d3e4a0d470d53b37284868ab0790f4948e34c98f3ee0a466fa52e6b79fec00f0e42a3937541d086370f18c31fa21d7a9da3101026c5c57cf211f8665217c5649f2e2578434643c7230195a725d1a69f819cd76f11e6b871603efe15dcebea524b229a4c50eabea8478fa31c939f6b75b2bac0e408298427db3b0949350276018d27f32ee8d73f411386fdbb0f9da87ba7d0944bbdde6203161e789599d7b5ff63d7e582bc3415e8463c2435913d73896e6119696761212168c090e9f84dee69c9487ce3e47c3322be04169626ea481716d682f3c185ceec7049910c9c68923015e02c3055206a20c579de308eb6ced489869d32f60690d968c56c4f46da2cefa38ccc409385b55ade8424f506a3ea17841d40ae023c68f37dd028c83be7fb63625a1ff987b4c33889fa189bd6dc71a886f79fa03a8e6015d78f7988b0713f297dc4e8cde4e5eca0875aefd35427f84d129906ac43a072974e2633219109c49aa94bc1d9b1a7f4d07f4273558b473ba75fbcff9f2f283b36a22e979628896f4c8bfa1dac2d0ab03efa9d73a3629f224166d28e680483401673e3834523d205441d84bcb6302c5e14d3c87c631455a4f465fe7f70b0d8fdb4f20de9cb16005b252176e6be1ba953ba189d69bd8524473827ec685b266873336da91983140440331555b1f22fda638d4aef0186a337ff99111c68bb2fa940856fe2204ced75184b465f76b756479cb657ba1230ff908dc21a03297d6911fdf47e0bae07a834cc7f349f507227d2b7064e8403764c7552274d876161151ea7dc99d37e50da29608c64625b3a386ae41a99a13a582da8d57be8f307ca2e0b754fe42dce0795800d1c7fdadff3196710584a310702dc9631e07777461b34f0b8d713a2b9d0c0586e9784fee16e087866a3f6a0a00d78f600e81825c2f562ae5d8cf70cadae5df08fe95ee73e08a9369f47806bb7d1224b516a57f90230588a648812635604b7bdfb49733a9bee79439982380031ea493e24656be70f53cb1a88535f598316ae3eec7f155710d04db6cf34433eeb9c8f86334f525082d4216a8d22c20b78bdb7259c9225fdc07dc93b5587d6c7954e603b2b0eb48037bde1208dd582d75db12e618404a50967265dc3f400629cfce1d89d2f4c6a8658e6fbf21aa2fc0bb520c0d963de05581c9a1425f29017c8ccd70654e91fd8f2c4a6f66ce0d0632c09b2edfe9f185c2cd93a36743b95538991ae66bb5336d065515c24490604363fb22800f408563ffead4c721c21117810709976aee1dab02e7a38734193afe632c4054a4474446714f5ec8021063ed8f6cd019dd1f60155ac4c8638bc9d9ea86982222f83b45e5db49a748fbaef97a3284b647b9018eef20606e21668df5c3cdc5cd5ffde0c77761f79296b85d3db4d4d609d79020bf82884abdcb53391a065189aee3caefe17516ccc679315bc632de47426c9bd51c6649bd82b230cf9bc1dc595081171a3526ffde5c0c702a9c870a85b414a841e93d855ce9f0e29acb063b51c3bfc19e4115afc6b59d34aa0f5061c22c4511b5668363f058419a80115a03f7a6eb248b3c0062d58426a0c2aa6410177fa114252e1d01b6e18662399f9f99fd408761ef4ced9e77b39fd99b6b211af2a10665f23d437dc067039f8cb94d3e5e6c39bdd8ed43e3ca7ed6f9f49525e962a3f920cfb5be764a566f3092c3db5ec6f0c36cb5f387666602bdeaa3e39e645e1e2ae11766cc1abd310ae7586276b0bfe54e96fdfca0b9f30dd202f53f85d5f845249584d5b61e68241ea03869c125308f6efef5d38a59a41bb2ff3d2ed00ee9e3e3cb76ab186e91b90bb3e1d3033a64ceb0be1e66aec19fab46e7e83f203a787615fdb4234574530477127b042054e28b41b3581d00ed36c0e3a6eacba511ad09c1ec04fd4048b117db90667bdce40634322cb2a23cad03a880d89f0348293b3ac5a68ea83603c29731c381eb091a7abb157b1e4e99affb373464640db7639f26d2cc1fa3c1017b75c199858e62445c3d61ced192a254587d0d56e0cd962042a754d8106f60f3a0178a9a1f7e5c0440c3d56e01b561f9a0df8085bd4ecf9e40fd24ee2c3b0373d5f884d3ff343ea493fe0090f191986f68523f2f5c6d67cf2f07af7ee3e15557bd9bfa5d42d4dd77e2b2718a42441fd9dc29b3372199574f5ce3cc3b4e1dcc0ff72700560cf6c2b04f9c8ec36573aa391900bdde4d6fc9e556ea56b528181d003d1fc1f9e97fe4798431c1457360ac1299bbfd7e620867e878732683a8611e640fbd0e46da357ac5f48a26dfb0d6e75bcc1a06859dd8f07fbf0cfa0568256be80a0f77a7f2cf17d3b86137c5b6e7d69182eb4685e2e29949a4c8fa7536571df2872afa6c76162e8e1a006340dd01ce068473efcef402ed68d04a0f300ad1ff1f95e65e08714452628e43b3ee81c15e49cf60a018e46aa488fdd12c3034caf19a2d56f62046dfe53afe130508631bb88a063050cec1aa1d072edf9b2a5ffadc4a1846a85b8551c1460dd977e93557265cf06ce34ff8ab6e787af38760139b7f0bb0e1f617a1e0752e32dbd9e67dc0afca151c1cc9977f66aa4999dbdea936bb567b59aaf7dfb101b913a8a1fbbb119f5f6ba218b61ab1b39f79c56b896fc2e58495208dbdee6029b21efab3b328c828cba7fed6fca4b23b18fda8e7b23d39255a926efcb38b15ef41f32928e5c901690bcf5aa5d582a6f981100891001782659ee23f60914bfb6b0e6c13e9478afbdd526ecad1ccd4fd15806e630d98869af16cc4eaf8b3303ed76782b2b147828822a820740f3bbeaa9dcb401492ca53c262636396f66fd48e868bd3012a22716ebb4abd39fb395d2c7e4861f14bcad170a59094ec4efffdc211514003543f7a53294162c5fdaed5edaf7725a1422e704f21f9929907155fd4640f2547398a3980a3d3e58f7e3a528c227217ea78e84244b39bd8b8166097ea28540a9e18ca94b15e5ebe8ae677cb4258b9ed40ee2940ec48bfca6399f17981fb44c5207be2f88dd42c8cf0ffd0391114a0c285b14b57cca2f4c1c270bf52eca32650fcda89dc7f9a0be787b8ce37a34fb04ec9e54e4ba700bc28e389dd12d8a4755aa3663e3de7577f80a29984fbac19bcef9f2cf9f27a732481ca5a2ef9c8c2b0075039bd8f49df55636122803dad5a6fe2d1db4d59cabb1e858865acabfd6cc7023f312bd68844213bd16eeeb017e8d6f9f6e5a9277e0e74406afffee33f7d6455aa992c43430eaba8ffdd94032679b7d78b987c44ac4a9c1265c06b0f7d7afd2d58693dba62a340ff348afed4cabd456ea98879723c0044a80de991f4e15a1454d90244f375eb177a62a6cc39f83d9ff3f75d58796a6cb1f8ac1cd1044cbf2d2e05f87058a3e1fde48930edaf0b917c414dadfc328717768bae5f93fc7d8fcbde292e8778423dc77f736f847600e6e218369a5b2257c6aae20ce1ca78837a39d4260a87bc5e6fa2aa40b0227ceb134ae55a198b4a850032f08ab56684162b92f959022444b4dc672498c5dcae34d13fa8985e0c4609009452cf79071871ae5287b3e9bf35f5021879f24b3b91a48190507ab90b816f6412dc66b06409901cb9d4dc3229b92e03b8a4e0cd670eecac765f2220788673f1367614eb8cc741d163e3c9539a5af14c39ba7e141a44c1062eec8fd35f1bf9a316b9e9efd1b8a97855d5cb997e81a8461dcc6c53dd1608a1355642f49805ef8b2c3492ada6914c508632262f2b15d5e3ecb2c1fdb6ae6a35398d3c694e656c64fe4412ba251b58bafa6388946eb12344d3841e1beb2588001f9e498e140f1e91c7619e46735369f0b370cc039332191345caa3c649df8801aa406aa270a93f322c3376317c8af9fdb19c4f7c6169675b6bc4714542a1e1d9510a1a0a57441bb2b489c7f588f3c11632ad99975abc22dfee04af09b3dac8b35a6a3737fa742bbd2a50265d1fefad91ba835655e5202db32f07c472b6436e100fa61da35999c4d05da64af569d6af054731102e1688582cd8f4363ce8afd159cf6c65a31d64d2e9b6ee709672ddb851d36bd2a6dd4b4a987cf522833f474c20697ca2941ffa1910f87d2cd3c22ce238530ed6282d8f35de4a7965957ae75028e7a5b48d4ec4b02f28fe891173e92fe38c308153fa3e095529dcb200c8c501b82e81686e6589584cc6f77efadb70b698022dbacce60097173f611fe21bdd45198cdcf0a015ddc60dacff7dc3eb0d445711f37d624950672179f9f69c18e212b2a38824d15028608411fdc8f234d5f236988be92649a227d05b73f59269b492428908c4ef763ec598ff6f4194a40df260d4bc4440ea931beeba771e38cd9899587213c085006069b2448710f3b2be7c4afb1fbedf4830f7032b6a2334da825a713b4fd396f2088ed4ca3fe5f964bef65f57164557ccda7fc291f72f68f86047726c33b2e3c8deb8a698e2fd4d9713127644b8da762ede9ac084e34f69a604c4aaf614609fcdbd1074f5fcb38a859650f5b878e6a91898dd057a955f1a362ed6e105fe5d0b6b24efd3b503a47296b9944cd990f89388f4737774bccb80dbf6fa61579ddc64014bfcc5efec6d5e27035bdf40fd0ccc16d53a96e45bd16996d5585d1604a073c1c660a616f92be25cfb18c476fed3a4cf4e8bb259a976e8f53bcdd6656d27686566dc06688bed5104f7941cea53249dcb6d4bf8fb136b381e7ddcc49a152cc8aab3c6680055017b4e0fc0b38a3ff9e4ed64ad1d71cd4013bdc293fb3013c1c32d5e9123ba54fe9640bcd2a5cdc8dc1270b873eadc9b04acf9d5fd5fa88f729e37cb3c8f73b5b0df05fdadd7d82fe86142b4c8ab2ce06580b3b33fd2075cb8ab28c8e1d7e505088084101dc9c8a0053f837c2ca1255f8297e6f3d51a9d1cd8714cd5e06605ae165443c29733f0b0bf9df271845b82285edc5e1f526931971ef56e687e2565274cda45ef77337d838744fb2bb4c7be3cd8ea68054ac9f278c71a072be44c537c7892ab38d9c05147087c3282288e4749adefa36a5d422609e4845a9994ca5fbb8d52281bcfbd415ba5c29b703937ce2fb7aff3b2dc5e90827e47275d5d534b9703d43ecfffad92512f6ffa4046241958619ff950544cc9f6ac8ccbad834afbb54131dd91dc8bb07a2d1d2153a98744c4aa76490b03e8ae2d5db1cb7cb0f81f9b5474dd2daa0d273ca9a36882867b10626a6ed7405dd64cd3cd21242cf41673a8e9907d0c680601109d3cb82332c905f9255b977fa388efdf1380232b81c0722a1f1f061d31ab5e0178565dfd04adf89d032eddc129f1e94d26fb8b35b86e45c9291d04a8310593aca9008f7e6e90534a582017757045f1fc7ee2253983c492e0424169cc4bdc8499ee7a4cf91b64fc2d9e3dd0cdb906637023ec3489800c18e9c81e6329062ce704f140606c24b8a0b0cfdb834dfad539ba37a674fda333f96fdf505629071584290e69099c7b977fc285ee336f45202573f06e0d4e657db77a297b50b3daba56b6ac2bdaf2cd19d591c567825a3c6425233c24be48f58b25d363aacfa58c041b89bfbf666ccade64d7902c8f4aa714966de4db62ca49bd08178c86647e13c1647b045e1514308aba8fbd5cb26ee154e9fa6438ae93133a13bde89bfdece19ede0fa11692b015583fae52ee3cbba45120542afb7cb5807c44afd8a88585a1b09471b5000af9ff7fa35099119343853b8f76962d189fdfa22374e5be571f2b37e7e5831fdb7dfc3e93b928da20e38f91faf206b2f855fa09a8b9ade454c7d6d2b4dc617ac6dabdf6fc8683bd25c63e64b1bad7807cc3211cb2750705f8b0df6dbd499a5bdebed6f94ef22641de66324ead409769a7db924526449b4bca01fc1037bbd3b45108ec00ce8d93eb88f0033caed0fe02d80ebb21235737596c5aa589d048e8dd338456f2aad027f48bf9938a85c51338415724356b4eae2116f940b9dcc6413d053e8398df6dbcc73712fc99e2806cc82d6a1eaf42236d0f8ff5c7e1c7c7a02b12e8f1b4193b49b4c4698198a9530e90df2f705dae902a606ff37f4ec119d01570cea543765105e3d511acd1715ce4484ce0ffd61c872da639205be36683de5c36389bb3ae277058859824b03ff124f630b12ddfa1c25aa44c3f3b7c4bf060357546b2aac30d7b38c007eb8e85c7b0da545e0003fe6f0e3c0be8790dcfe1812215f4e5d599f3f0493f7df4808d210e0b13fbbf74b1e3eed8aad36d9c3913fb3f371675c8e0bccf69035b889cd954dba527f81828b37f8073357fe9aaab04e4cda72ae06e68b51e855d305b4259f996022624707524053f5b553339058b7c4600c123d3788278a3654d32128c8d4ce7011d5ce66352f742b3209b639cbb7967fff48737fa8744bc0bcb506078a0f9e744b8fe78a9a6889e9f6527689b6b91fc0c30999fa3b5e02610eba40d67165163677a74398a3f4f9b639e0c7789d32524572e06d806bfd38c8189f3805986209c9e9366aa29a73056e8cdc4f88d38196f518a56fa8dd2a755ed655748422f7cb9e1cda6bfe858ee5414140a342ce3eff57d17142936c74383cb370ec7fcdeed74d6db785855ff466f2b10faa0f0bea2a6dbcd9da1730d6ff970cb839651edc489d1df1d2ffb1531e66b5364d60cd07288c4ae9889cf4d5adaa0110af74b41b2f9bb15cc1c52e5e6407edae12594d33b8ade11713230beff17738d84d7e4d29416a4ec60d7990c93de6f718946a187203040173f64610c965bd3fd990eae30efc6c9867d3d40072b82ddd2a9ef0134bdd20beeb801036b8d61d96495ab1069ff848270052b495cc422d235c8bbebb842102105ff861ebf459c98dc9df917219edcdd9fd1cc1caf33a31def957fedc3cad5d366ac2b3079857afeedcf6be00b3daea26af5617f5411dac34fbed15674b9eba46e28f62f18508d325e62343c569acf753062291e2b43ef0b98826f652c444ccab850eb1ed4d7be0a61303fb90c9df0b4ff2148fac3fd071d81049e0042c7850f43048286ebb4e9b89c150a63b9f15f1d4c477e12bdc5e58f747d4840209d29df5a6a3250369a2dbbd97d6913f85f391f35c870b0385bf95bed0b28266c9bc0bbe75a39bf8fcbefe3419df490ec3b4db5103b59e30ec243d404785e7285bb429a478c91eed0f008fddf50e4df89ce6bc821b9aed5db0d306a32beaedbf7dacf13dc85d7a317c83c4b886183c04b5c71b19e05706df40839a39a4359fdddaa32001bb27b5a154e91644c70ec49be4df903220e4fe7e75d79fb67a3197be3e13bbd7f267e1fa70df4856b6fc03d30e96f597fa55c0f85e39a415809a158f8126df273a4c63b3a87fc66c169a9a74724a945937687d0137bb13b7f9d99996f6242aea96c9ccb66b90103c04dc9feede53c40774e715eb58a7df3d226194941770738b88e709d167fa46530ee877cf774943e290f98603e94b30a31449eb36a21131bf1c9c1316a5aef4f453cc86e77a7d912120042afb9fbe5489bb6903a72b860e86d9eb78769180e0f0a2404d3bf49f791f8e00fcb298db2679cbf84cf518784ef164bd3fb38d5ca223f8755365c46abbf29044e386b5da499a7a8d7ad76c1d2758774b25a90a2e1d1e82cccabc68017c41ecfb8b5f70a1a3949af53999855290bc84eff3400784a5721fe672e685d9ed143c46e6ccd065c4e66d0612977c0c5fdda41a7321311740a0e52485c935e41408d9ed9be029ed5dd19c5b945a81af1d8721b90c37756de26151b34c1bbe5d93dcf3c447e9a3330859094f3ca8d6967788a40d3e800d90e626126230904cce606a2b5458e94300b68a42335f14d1b52445a1484a5b6501d3ab910982405acdf79a96fd8f4d68146392e01897fda5e04ca40f7e9474e702024a7aae31c87a94651cf75a1e33198beec06653715fd84cac4ece83287681f96baacdd2aa20d2ebf7bd0685c5af1756673f974434dcac10bde6d18a8498771ffcd4fae2cfa00b6c8a1e19a67a49301dbac6e37d5c7aef8cb8bf0b74c0ad7f21233ab05c4e8a7b036b28f2f27d24476fe01c69bffb5de358f6dcf6bfa777665292b059aa06eb3607840a6ca3f8b7621de6fa1e75c028e638bd20efcb76b15081a12979f4b8481edcd548dda2e4c7dcf6b5dd38f689d73f35ab19be9100a594f4f3cb0f399730bbbc4ec1fc33e2b0a1265790b139f670d3fb25568a416efbc9babd5bd36a0e58ab6bdfdf398a1627f8bbbbf183bbabfd42f49063279df666300426cc55e30f487b26fe6cf515c0b564c8f158ffdc1732a9755078dbd15340cad3e5cb13431922172c371b27e96b6e1089b1596f9a84b6a52005591d6155fe5ee90efb9008c7ac14e57ec8ef8f6eb16e3b55dd19c27f0f26f28731c4c117a8a4826fc2abc1007291d648758293cffc4de42b1f491d52cbecfc0f2000cb8675064c6cb8e2c7d1d3d7c35711a37fde7e17f7215fe9f0f007fe30aec46002bf681276b9e10a62d38552183d7e735a8a97806d1da06152d364d0094a7b3e96a4f552487ed5038bf86ac1dd036d6c4e11dd4a1f8006fab855a768aba1b8bd8817a8aa9223414e8be40e2d8d8a57687699278649489e918df75c6d5cc1ad201ac91b3153adb48ad3b610edad20309296a67fa799f03904d332ef897c989e3a2475f1f350554967e29479d03d5fe3aa66bce28245f880e67f18036b7febe239e313025066066b64df19bbbcd4949a166d323bef37eff8b83d68c0bab9829a129a8f8b7437468a435560715de37f3bf01c61486332170aee3b528de8ee521e57827b0e1ff90412fdf9c9c9d05c863ffed8f8b92d1b0b323bb03616860ec203d6e24ea1fa8758820b1422f9122c2f0769c6cf031ec8e1de7149b0ebba5d3a141432f2a6c6a09902096af08a1deb82bb295ed295bd76857a34d0f45a8312639b04d93b9fee7cb5c915f7be24688488652d273531878fd33c3e5dc0b134c8d3c09944f6b937a0deb2477cca175a444345545ad04067a82269ea4d12fcd1fb6d938eeefbf43945308e2a43cf5ff264244a58349d7f749a35ea8db1773c7b6f608b08d80406d11f382b5054dd152a24b0356a9e04cc20665d40038c60c0d501aa2ce5c6b032bdd42dcd5a32225e180e99840a0c5ef01b15d8b3102b98ada6bc7b410587b85dff96f033a07a16cab175e8f4089118805a3892c21980353af93379db6d3aacc4c4b67f7438ba0ca4ed29d1ac08b9cbca7e496db77954bc577e5e1c9033bca9ee7767cbc03f7b39c404df340b3d08e495ede62bcb08d7b6d2047ef23364d517a0402c7611fb9d91292991f0c453bf1534bf9053d389e0dfeb41e4f33e9d7dfa881a1f157212cedf794a9cc75d00a53bc4e412caab6baa55ce2a017d400cf560971202a0744c2c90cf10a1d840844d7945022589df58380691fa784ef412c237673b411a37068ccedc6e73c43e2c38268d23587d57b3b606dbb84237e5905e0448c142b63224058b913456ba89dd9195b87adac4acd9c7c8e0735082fe9a7af53fc210ba846b29b0c043aa60c9a8311a4db1036e1c7e7666981cb1c621c37a3535037e5cd96cb7dfbe6921534d765973f83fdf742f53a2997979ed0e0967b47ea3ac3550d06b60a6238386287c3369371cb7772565d7cbe58180da901d9f10c31e3b4717c9138c7ed063470ac0d4cb922f0bf649e8f3e2e1f6dc430ea72d2181d2a030f64c07c8f9bb2874383f409c8303d83d85250e45f94421673afcc02f8888b9b24164225eb589702271c7f1ec521b9b08f16fe4967d0545dfd8c0661cdfa57ef43bffebe23a153993321eb1f931681493bc882bb5640435bcb5ba528691878d6b28842acbd75c3d365e0821b28b844d3461b85a75b402acd819c5680b200c9b388f7993e204077c165e6cb25f598b89ceb8b5ea47f7670d5cd05b1fb00a9fa123b593dc343f594d84a933376e02fc18f5578f3a3852cc16bade36250408985d7c74215e40f63b0c5c24c28edfed1b91ee48a93eb4112f1f56ad6b85f76e3b69c9ba335928807bbe5e1661f003abc3517eba6022c0413b5c56de6d2dd9bfca239cbf460ec01016849798c53b9ed47262b166a9ff3114349ee556ccd130ed563eeb8951ac5a3e4a1e8367802b04de7f50b5b472722c04d0f7e69d0ddb612ed66afc3bba5202f5121ebbce1f0ce3f99f73b52575c58f10d16ff74fb4ae82e114182b0fc5900e7597f3817a9efe12fa3b92fe18d0de36f61ab97b108fada2e675ae2f0650a62409227115316ed0044e7c6180b0962cacd219c88df34220aafe0b436e5d8b8016665740e9362dcefb842e8d77dc491024d8403fccc8d074bbf5ddbb9bff66e12158a7debea555134e62c8aa0a6bab7eb3f69cc773ac376c3c31eeab11a14b56be1050030696aa1d2bf04fccd6ec2d4fa4d84c596492335748b2c850a35020885079456210debd1676c2e78266b336897817c7b920ae5c03432735414c4b92a3137ac4be696ffe7e620bae320b15c174da55e9a6667e966124dab9b584011deac4944575cb53e856d0a812751d85b7c81cc46d683499ad039a1906108e8bba78b5b6e2ae4eb1604f0db42ef68d434ed09fb709c9214698ccfa3cb91001b5c2ec5e37f988f879cca203933c96d459a420faada3bd4224f06b486543bccc81e3ee222075781c6a1a1a638f0c05116c2ee95ac9e5042d42ab22d022744328e09760c5064784c0e5200419420aa6a2dab448bd2f0404ac1a83333b40e7e43571281b0648be52cc9479f3d43595c5e0ec91013de4b41d3fb595f56e8ab3bc54988c30fa6d13aebd8126779a159b983aee958278f9970ab2b23b7fe2f6170a4febc299b5b52e5b740ba2007bb8065cea320a3e8a62688edad78a5760fd7268246734e0f073da0c36eec71fa2952dae4ea2763533ca88be1ad8317594a0f5500dfe13c1b55b910028702366f60f4a1cb78141eac343a047a21676e284f2054a492d284a87e9010f399fffe58ef3a97612f8973fa0eccc0d3799fecce47dd427b2e8d37d01ca0617bb66fa5325dbc33eb15699066ea87fe583c2f984f8dd1f93ae7aba56e01eaa58674d9fb40030d4c5b82e0694e3d0bdde6f54180f6eb09f2d9ed9b48fee06a9f723ac0db3127dc8e5e67ce9567a5d757e93a38acb753875fff3fe0e6f22cffa12a3eba43f61fc8fd273164fea5f2453b9a7de5055aaed81ad91e131f3ab5d9698391a7861bda33416f683e3c31113352856a2d68b1e2aba71b57ebe45e02819fe73af54585beeb9a71ae39ff8a0fe43cd2f4861aaf23e5c29e00ec8a93ae703bf353ca0eb069796536368aebd9d9e9b57cd2dca69a6ce0d1c6dce87c0254543b3782a276d92a688cf700b405575d39c0858acd84f59dd1fddfee518410bdb16f2e60e526b66fd139748cf9a7b5cdea72092988538d50a3c0cc7292df80b88024b9b5843ed825800dc0947bc46553e5be93902ea1d4cacdb30b1446d18f03c66e404cc888cd0148731f7bec7825595281e12c4a25f066e1d862ce327cd0ccdb63d68daf9cf3b00accc6ed1b6eeadba5582b90f8938798cfd539fa1d6e16841f5189f78536009048521faacbe1b426a80f036645a87d23e97541ee5644fb07d89b32dc3030a485f627f39fb39b37c63bc1bbf1966321a22062e7a439d1f6065c40ac26ba43f428a77f21fdcc49c0d6e83e24afe8f7e017c81ff8fe6fac83ba8550e7335270ebbf0398c3969f20184820efd797cbd01a701de34126d93d414975db08d429a4b176edf88d0261ff646d21267ce2603dcca1460490e41f6d6299ad25b8ce7d8c3251bef301427ce82a9e282fcf5e68d3a783c07ac1da9b32c8152723468b39127bfac2fe91ac632798aa4c87ad7c0de68f168a9172fa0b04d68722ec6a20c94b70d8e57a9bda43da61a4e62b0d7bc54746e9e86f9ff68c21874afc9459fab21d5d37c62c9c744b1f4027cfe8c6c3d6d1dddbe65c2f91ed3322ea196f41d9612acfbfe12bdadbcdf16f5d17f2f71613f40142c3318a0106480f31d2dcb25a0777271bfac7d78a0fef196d30c091897f407f207103a8df7e7b8fd3150e7baf5637b816054c348d53d27cc758333cfd58c0c8558c49e69feff989d16ad33fe2f4232d0a82e30bb39940b0e2c02671c603d1f2b1ec5911bea9bf96115bf99ae9594f9eb9a54796bed4a6920e34c6aafb393d0f22d33fbe577e659311e7ff8db73af4cf63bf07e1173b96ef1122e328ab7963dea8272e077bd876d67841ed0114d5b130a9728b2354d90c90e014e747d244c0efd6d56b353029418c9acc40d9246528647daabf1ba98f348488dee79ae0f1edae8d765e0722f0214447a2abbff4c07303ece5100a1e5efb8311eead9f5ab42d4fcde36d5de0eb9e2774ebe407f1f6ece8c532c646c3fb48620eb8eca309227027bb82d184462b80bafad9836202ab609cb8fb9033c47b272eca2dc5a6e6632f52c3b60523115bc84f0ee89105b3b3b0c0ba95a629b06a4212a97338a8c970468ed4a111617c1dd34150b39e77520cd6d8befe80e639ee164ede169ab6b0846e367431ac581eee40e98a964d62cb6d9545b8d703a2678785ab5da208f1a28a7f6dee486ad837db15b19939e93e9f6edb41e709cf4880c5382910c329ee194512763389e29a9fe8ab806785ab304d05e5e5548ab1d0acae7e7be3301028b0702dd30f70e01c3544de1ce4ec064d399c7f86bd110a6f9ab6506b5f3267564a80a2504eea736ea3d35be60ad114b493f200117c966f0f74031485668bded2ac68baab94f0d06967e1bcea613b5060041b098c8f953d1680e5adc1861a101ed2346a03d7011cb7a6ec26572e2196da2c580920655a8fd1a46eacb437335e833567f484e8c300e102e381da58daeb298dff70c9b26c266366ac61f7a69a5b9798e66bd44814603972be91e7c04794d4bad8847fa5af2cef6b4d803a05d9dd34452abe96a60884bd9a3ed7d31a7f7e9a4086d6e790fafbbe05ff7ec8e1a4abc60daf82ac6a92e2ae2c8e2f9272ab7111c0583d0362dedbec012ed713c5cc4d63451f6aee9aae8187967873783a93fba9a1519e55a0d1ff4f6f9fa0bacc85a3cd2472871a14fdc28ae60a6c966fa9d4d091a14acdf1428f65bbff7663bb5d6ce5c6822881228e2321fd3b2a60c5814d6600a71d7b401ceab89fa74430bb647bf8b41092e1c666fd11974e2135c08f83dd8aa6e23cbab79fc306deeeb2da852d453f5b39791ba21ac1102772d95bed83c6ba5cdcbcae713efc145b516fd317e8167dcb9999f5f35535e7a094152bc35cca8ab945b1b6e5aad69c2cd59faa622ccb3e91b1559ee19d3aff4844970dc944bb9d53e77222309b1917fa569724a577b1060b98c99dd205013cb75841331128ec6042246a94e6c36509fe8c56ce77a98d2413e1ee3881c3a0609d51eba6e681fea882210c022b0ca352744d8a288dfee220aacb685c2a6d95dff6eafc53a48da16471e17effcc42c96090ae8d5b913dcedcb7d10f1d9cffb494e9c19005bb8aefc3134a3edc74a7bb158bfb2e36c4e92a76534f23159ee0fd34b90222bc3074c65a83c36b70a354ef9aee867d20e7908e9e52f9c6dcb0482a1edca998e80ececde9f8526fab23dd53133ad34679b4389994e1679549d9c3b8f496c9dd5b05a21d536c2622634aa027d05f50e25a5b93ff641531d051b0e723e0fd12b1a9f34eff2a47d863c18bcc90a81cce44bb2906a309702a43559ec4f45f17febb7a364fff816379711e93daf0d3e8b8bab084fad6b9bb8bc15d870cffd28082cf4e61d6bf0746c2a1502dd694ed1ada6bc511be3cc13d950a349411ca4d9d587620658ee8e5619422e1abea698972cb359a7868ea6f147fa175e951311ac06b27b005a3651fd813f5fe3d85a525c4a597c79893b115c592236c41f42130c6f2a23120193741fcc810376960ae6b627cc0c02209feb1eabd52c38c83f330e5a49820d33ace60c68d7afccf8d3cd59402034afc22806a2081ddf0274dd05d18cae59f8091f84e4940a4cd90072836d17c4e0cf6800b6cd628ac0bef65826b32774f657d60aa393f3a96ec339458ceb331bef25e5189c9a105303f5150f72561eab0e8164036b94d0c297c011f37501901693025554f0638130f09126e9beb3b7b33dd12643310e96cce234845f67b861f06c6db6c494f0b9bb9137adede32c70d5988c192be4c48c3ab1fdbee40aae817d413435f9207f725861a269a915fdefd125b7656c4efd37904ea200764ca32c6e8975fbc0993121cb7ea7771791c1f7410faa06ade0747513f6823bc275bf25fa74546da32cd3162001c3ded2f3aafebcb54c380ccd68d6c90c48ddc6e438469af454d1f6c527ecdc144fdb0f8a98a8402a9909bcfa493690a4979d6ed4aaa1c9fa490e9f20051eb6dc68605d250cbf9cfc99ac6c1039b9f6782691ebe9a912b7b6b45ca10ad9c2cf16a87a1120c59a774ea287130a9de767b4439fd5c931c4cc1915a2e16178550a51509e4f069be9738a9bf4778589347b5ef971a023770265a3b1cfadc16ac8b2dcc0fa5b83ac695c56268672d86560786b9f05a5bebd32bc90d5a9dcf2ff09808501e68afb425aa0908d97ad321f5d0d87b265152dc7c80b09e5637c6328ee3870b9bf6b02796b93032164e40a329c65c0f9573be4b3bd6bc03fae2e5e0bcf15a14f8f42681b15f12188e3dd32b8c8a5eb0020af69daa45e92eedc847305d3dfa363be55c030c2f8b72311a7ca0f33c02a304e30abba0d98831c005d0cd22b512bbe218132ebc8f77871e5fd3e9d66283d68abcd36d8e968f3aedf97ff17e736e7de4daee0daa462e2c9e404cdc6d3879fc1d79d94f857aec693605f56f1801ae56e2b3d3589cde1c9c4904e7844e8bd7b794d885ac082d35642c30af095ac4f77b144f34d60773a380ff8e6cb81d71b2abac3d405cd2ce4cc755c2c500a49de7b9aba7ab186956f164e58dcdba3a403dca57339424f9c1f8684890e7780997fb9e1b4110ae0accb0055e045154bbbd6542d59b1b931352564780b2e8f324f8d3493378780d90576d8542307da92285a3b19c0e6898076999f3105f9f41444bcc5600807a3465b83fb1c648dc2e4db12ec6cecf8b8af72a76f181e676fde1d1e1aa13dd297f0c333285865190609510c65104b000d2d627a2f77cfd9d0fa59ef6f03d6833f7b9e63ab2a6105c0332944c13e834f8e503b232bcbd82b63c830397ac7934ce382478a83a60641ee11d8092349e42600ac96ad2891b66adc349a77a469b8c4720120c0b06566101a899077ab9a4b43afc9672dcaa786f5b540ed05dbfc140b281c714f08ec591e5e7158f6f9fe13ffe332cf26cc71088e160583e98aaf57ec0c33db11302f162d1aba68064936d35697a2be709ebfaaef2188d2f76e29fa35cb0e1885a04f3dac354e80687a7fdd1fc1b7501d9c378f92b97f2eea16eb54192c20adde855219123dcba160dbf2cb4d039005ed8c3c9ab3d69189c6fe29c8687d59193114dae66e0ae74498b7f47b64808d6dc5ab5e6ee2d6124dc7770150a0df3e7bb5b4ad2279f8b955d32785d7f8aa619724705c488306eabcd6b619bfd8905d32ee7e1a0da700f007acf9244a614fcd186d3cc3de2eefa82767dab977fb9ea4e8791fb25987af1f9b5f5a5e65175cd32c44066b0721f36108b425d0717530d3393fad8e99770de828498c27e0c4f292dffc835779cbaea02177a63002d92bc640d30828621fb6f9163ca8cf81cdbc26a8749eb3741861685c4d1aeeeac76be0de5239b5caafaded98bd34dcbbbbde3924bf64b306e650401482a64d01f0bac9fd038e34cd42bc0c245eb702398be6106733afc4c35cb08b9e4cb52fa7020019259378b0642b17e6695ac37c2e36881211906ad7e78f3fcaf8034230412bd4205b2e0d3e645e084beac5d29d4acf13323dae965822830f29c81740aa6d1e48c30323450d23d3528b39fe9f4edbdf6589b7d171dd9c7ab7b562b2ca3bd4f77330af9dceb117949d9c64be7c531f00e8261aac1f89fa5f72daed10a55f6b6a547039a81e38dfa63d07da0b1d598433c04eaacd9a096a5bab1d814ea9d52a2f852576ee0c02a9a5c6c056f6c7b3fb4574885560996b2c61aaccea4a24b534468779ea7abbbcdc716449f83a188954d98a1c93ed8e40ae117aba3a8ead6af9387b2858b6a6b1b5c1211ac0fe5e24c7297d744ee9a59381b97d22c571cbfba8c08c79355a69520810f9e8632a3af5a51e67f88aee96204226ea0b49398b35c21fe7c1e10b1f160a48e4064a024d2bc55e904f61b50a44df81ebf26c399385d1c075713e0cb90a7d29578dfc7b315eee5964949e49aebb51e4101041b3ddda0fc1073566d21532f64e155d1329d3b6abcce7e51ec60cca5147604f8af1eae7981703717d5a15e8b47a03d3751c3ca60c15c89929f44bf08965d50706bd63698a40925481d03adefcc145383c99638a0ca4872a986f545e0865e7923bcbde59df878def6d8043419bcf3594e06bd918006f1380ad2a93000e24690ea72925f9c273ffc370390aa53d5af3c9ba2d8c4ef2cc81e181680c345860353e3ff8ae22c8556e06dc9b12ae3124e6117556231959369185fc0775a6038fbfc2a51a99487d8d0ce004710d10de0fafe6946cb39197ae5892c97782123b7f7ff014f0a35c286e08387eeb6ecc5ba4629d64604f03b1e286c1d92eb5866496046950927125348c066612d8cdddee64a3266d736d791ec326730981a4ba7922dcf6159dee3f677c116ade8b823070c8c97f799b6f2ed049267d8c52830450a0cbdbdb13080e8d6ad738d6726e8f2b3f82e1008a345628baaedc343d27d6e7cdc530032cab6798d359bd5002f39c730945c5a5df935f0ea4091fb89790179b16fbc6eba333a18634bd6cab482ea535d68752122d592fe9ebbd118c026ed1381b904b60017043342731633cd96a79ab450f87ce93d94aed12a8317f4f8fce087220ae901a63a7d705b77bc4abfb1df9f0cedc418b8a5d7d6658fbe0c731170eb6f6d5f81e02b859422b8dc40ab23fb6f431fe8791436dcb1e9af274f377f57f453fd7780b42cb93a29d1bfc42da6f6f8c5908ec110504e8e2d66134925642d1584a9cd257de35805e6f96b4aa71391e08b8d5eb7c1415584aea98cc264a3d612c64b84ce1945de5f2f7e37cbab18185165740f178a4404a39f58053b579955424ca378fa30535dd904558161ebd34d64af042c5ac09a93fbffce5651958ea88f212dec20c10dc94434d93b6b89c8de85d9920c8094c46c6bb91222b2e7ca33ad61bc015d45508f2b228c5946e379f44a5cea85664344ba0e7cb15f005b5f62eb0aaf0a799dda7cfa168db841e021045076bf9fd103578437005d24521d8eacc2539048f6ad9a732daa095bfd27c8efc1b92911304ba31a0f9eca2d08e26e7fc04b2c53fb2996f635b4bd26966491771783fcb7d797ad4c0b54ab824d4550f1fedfea0278bde724129fa549edb6182542c930ddf40c9030248d30a00ff1a258c0a2968b64e9a0aa221fde601b181cc4ce19f540208145eb614159ae59ea008ff36707087520ea5c9c3a5d3a5b1bebb180ef76fe238431f6c1203a8af0d865a2618d10f4d893cae54ea554db123447e120ae94d3a91c042b449c1747dcaa5d2eb748efef21b84b8e52aacb0548a56446be9a36892f70b74a3fdcbe08aeea375c55d6c9561982b13997d5995f4dc44c7eb6128daf27ccc4c2f0b77f03e8f91fa34de7e5353612504b4401bb7305444b72fa550d46c36d44deb6f8e321fb6be060330fdacbdc442c271d66ffa0a32d2e05353c0d3cecf0b298ff5949b6864ef47b720bdcde7c12ad67bb74da3f6607aa3056c4e33ce1e03e28489b31a9e8382d1a57aabbbc14d5a24caa9dddb3446048a428a4d09e455d8e71b9076ed08eeb4a0df3414ace7ed98947383c388f8c3e0d9f8acd0738dc844b583d350ba8364513d5e4e937825d26a65ffc2c547c32b200bbb609c3848ededb6e16b0619761d4326a219af28a1464a58b057e4a451aa156f6f887635f7d2c27531f87e1eafb46cb9feb2e7d82dd2b2ec62b9187f942a052828d5715baa592b208c875863c4e252b767da9c9b54b27c075d2b0edfa21ccfdb06b47bf69f8ad8b2012ac82bf828ea2eae4b581e196873f1e20220a009110f6094388c0875211f56c3955e0344f1c35bfb24858d14577edbcfcfe935abbd0a0a1e61180da155038ad5b3f26cd46f974547dff45df1f46cd7cd4c40e9447da0affc07344a90d90dc23ab337553bbb74437a5bf3b7b5bb001e25402eb6c00dd7c9466a08368202f885a4372c2449c3398c664a6242030e26b3689466d99cbcb48c476c3555750bfdbd2416c037806e8ea2074044ab251bfa5dc12a46612c93ab108da89810527685c7f3f28a3888285a706880a7c7b5b3b158013839e5b1c884f627da983e7c29734b8c83a6fbf58ab343f240413cfc4f063345c486d12889fa1c991e5e5a0158b16592785218aadb149baae838f95937d50bc7320005350d8b64916bf4d04a6caeeae1da9d288e6dc144858e9c538025db5ad30e8c73efa926e7822393aeb91d29f1869b9f381514a0388d03c22b2f53e4a043ea6e8fda8cc9e5a651a543774e617c0b0bedac2a01e2fc574da5d805668ae9860f7576fb01a5c4bbac932df473b8e9bef7d9fc63030d41dbd837c6fa13a4edf44cc068309e2e20dad192991b12384f403c4d214278c20d3e08e79a55aa1351ecd2c13f85b83a3ea0bd11e8907b7c34aa9a9f91211071d3149d8753e938b58dfc2f3d2d68312bce5583896a040dc7417186a1adfe32f97dc740c1f38c22e72db455d708c1127228b47ad073de5fa5ee7195c3072f9f421b84969509c11e41ece90ce049d907a3a82414175066d11b1907d71b98985b6f2ede0630244c74780b2df03e63e9fd39ffd3fe0b78341ad4a2359bd1aa2eab4e07fddb446084b775c7cec263d80cb62ff25e6b32bb0846b89ff5b61ee2854e2fc3e83ec615ae34b215b93634bb196863efd200e3b6f1a01c04cd0516f51f344548983c98a996c5a48bbb0efe28597acf12bdf556e0914e1d14733f87323fe8e2cce74641b6cddddf3d241e2cb266f78c017626d81c4c44ac8f3a7e8bac6cfe05ba484ec672cd31ecdad2f8665c64896d686da65e15f3dab948bd45f214326d856cb0af5cd53e093aae79f84d61b8dbad1ae72bb75c03aed8544dd850bd1793d39c37e000b4363626630ee5e1f03e1cd5795afa1912251f9109fd11670e4fa66d1da456562df4f195aee29c0f9ad3cc8057e3a415ad212cc73761af24743177e3ba9301085435e0e215c16ad14dee9081ffb1ab8a85e548f4505f93bf716869453432d9ab5e49f8c7290caa27a69da5d461964c5f7d8ccc6fcf8e021c33e47f0b904b07c718200471cb204d5a6e037c371f8b2578e22e50cb4538be50812bc6065f8cc82430fd9a8e350cbad1d699cc8cdf99f6829ccc6ffebe8b75f4f1c6d1b5110bfabb6f6f8ac90c345b67945d5d4a63abbad30adbf3efd731b61a105d0ee136009c732f05aaafb4a6df734a7db3f1d5341c935c96a5cf4e7e586f967d030da37b146336152daa10be88d520c7d8336d0202539b480de40c3d03725026d82a6430be80cf4ac14835ea027e8387480ce40c74a30e8045a828e430fe80cf418fad25b95f157d5251f2c857511d304e26959fc676bdab8b53507d6b07144b05b0c6269edc6e4604d9b50fafbc06f26f3530d097d3bed0e017a82a5b523a8ea1295914c55252db29183f0258d3f0dbff7cb5f64f8403fc217c798a3c49726ed55bed9987bc58aaafd2c72471dcf18d9a584487b233c070e87dcc4241ca9fb1c9075ca309935c43b49d4c340fd5386c9d6a5eec8e1eddd1000f54b5ff037c4d6e40ce17d4a6d57211eefea3eb8dea61fab9901fe76f1ce76b54a39d26de5c5065c020b7e137166b922e86f3b3a6b4c82921a25309b4627e84523098ec92e35c5f99afa766bd6c23b907c73262d93c844c11c6deb0f6380d03a7add98bd9c5b8cb2b79093491783a8fcb1b2401f9c3c0bcf5478caffaee1d35692f09438065c71c1b40b43814fea31c3cf5cf4a49976f554d10fdda675fe35bbcbbfcbcce63d5e75d81f5d152d33c1b9bd6cb5cb2fb2e35f44d9157e5404e407279cd66cb2329ae8bdc3c7219c217bd374ad3cd5ebb7942e3032692fcd2924a103be1c05890f4d10608b366d288aa2288aa22806b1ffbdffebeb1f90a7101c4ac14171501cc25e4206bb06ec460ad64372e5c5eb2bd8d146e0ac31a5e74bd7bdb9b27b5b868a12084cb80f84a99bc0c76f961012dd13300ef00d537a848f21013ac208041441c410421c20888f010a0084cc0f3ef4c0c30e3ae470e17011e0061baa180afc51c554e08348278c23d5115c65c5135455957363049954458548157502a14c505515cc558222b45147113ad5f5c745023f4223f0038921e4318436aa245584f0834f8c109a203206446680c891aa9a8939e409f8ddc04f22e1d054d5b54785eae33aa3d9dc2aae2faaea124108f6f8d4a834ca20c0a41115a40f6428249292aabaf4b8f228e1e4aabaf0c0a3aaba3cf024130d7652555707525709fed2283f66e38ec7814ada11fb8daab99c7aaa830e6b22354122e1d0585230848e0a7f04462553aa96eafd2b2619d4a364688e781bd263215333e95157a04e2076450e0d54440c817a2cb41043aa8a4dd1535c19c040d51cfe3b324df1509c96a450f59fa49444295551cd9f4c506027a33328a9de514974bf86841a55f927a43aba238cb3009653525255d71a71544f949c9c52a5292412ce1292ad29130d26999abc044652b0542850d489aabae030dde0984ea52936a34a9a79d4ff929489869a4c3537f554539a32430504ae379ac36ebc7881ab0dd672fe89eb8b285575b15155d71a39ff048909268d443339a41294aabad4489dea4d555d69e0d1098714a5aa2e34aaea3ac30c2935557595718d718951fde99b7415ad0a57c5ab025611abf02a641555758551554992f4950b8caababef0a2460a0d1427353334531610aa420914d6870635a890e82b3828988b8baa4231a1c4fd29fa4a9224ec0a1344289124c9e96f70502814268da84061d2888a519512ce92124ec60e882d17e0e4ef2875aa5172b0a989d4a9de602739d8d4846c8d237172deca8b3823ec84c6cac98445ea4b36a6d2631b53a9391c2698684e89e6a6a45025d38c8c111247091968718026aaca0261cc50651143481f9e2c84d4545529077591ac50c1aa8215042b90150c72f34302c088c1118ac0381113037c81e19101062d804155bde0092fc0525515cd06e6d08006ca00030c31baa82a2fbc3831919a615441d1c4e94ba5914c124d260899d29398cc1240c8949e04635a90bab28525bac047089a88230d34a254532480055070fd93207b5c092509dda004a9220803046942844c12236492e43f0d51838569062571ee4f811add28418d6e6ac954a544bab119adc04915881f3515132602f9a1624289d44bf9d1290508066200f19840056c54d54d0845e5283d195fa0fe64e5c4a0008eaafa14ca0a2af532b8e60914c0fc0d14138df5396f45e664caa851ea64449122458a1829d526644056647252a7918c1213a43147090c89f9038eab66a92850f940823eaaaaa650d7151fa8c6168298c00844a1183fa650871f56aa4f1f2da8b0f491aa2a131f33e823884aa63492c1824ba81308068b2fb54ca940c90a238c588289256488c0824743a4f23f4922c5094a2aff131919199992151390c18247a1af823fa40518bca085045c2ca10402644a4f0a41c16498f0ec608f3cf64855312038415585aa089b098b9ab752494d902a4e0448f5a5fc294a3d7d3d5108218410bef7de7befbde79c73ce39e75c6badb5d65a6bddddddddddacb1c61a6bacb1c61a6bacb136e79c73ce39a794524a29a594eeeeeeeeee31c618638c31420821841042f8de7befbdf79e73ce39e79c73adb5d65a6bad7577777733c618638c31d673ce39e79c734a29a594524ae9eeeeeeee1e638c31c61823841042082184efbdf7de7bef39e79c73ce39d75a6badb5d65a77777777b39ed2237cae3514364eaaaa320202554c1da4d323714748dc136a8ae9f454729a30d1fcc8094cc23151818589f44dccbc044ca725557545717a512a652a95706da2aa2e074861a241595155d5d580aabaa8944ca3992952e4d4270ca8aaab8aaabaa898a2aa2a0a5f4a676c644e33a893890695bac179294a4a4e38f79a4a4a4657464ed41f615b51385606854b384b528f42e12f61516f5029d4e84f9f534932a42a8702aaeaaaa9aa4b4a8c1c3844f99289a6aaae28a254d5db98a47c4aa6844304eadfd692933fe1a47032fe54c5279c949511a54e232b53654a28507d5b4920fc49a046174d555d5054d5f5e40907502a4ea4849ca04e4099a1a12129a04821050dd127539c800245a80a25502449a2a4f4564c354fc2c126282413369f7252c544c24ebe34aa52a2337130a04a69943a99ac1219d0cb9ce0d8c2d52a0f1031845555153e5979c0e1419d4039368442d59b54a9964636a3d3458db08c0d4ee9655036a88a858ca949555d03104055a1aaea0ac0058098aaaa9cc04faaa9ba048f4c53e0ff9329759373ba0e78303e37722a0adf47a54c2454ca4492f222ce0daa2a747353932409dda06643d84ea80bb8c8d65360e468c388aa4a922474836a238eaabaa962d828037502a54656b60ea14e7f437a916c8dc3460f159499aaba8c14219d4ef49a4824250638ad61450d16546a742a292328aaea82b95cba48a38caaaaaa9c864cbd412227859242c6a6caa3644429254992541e1eae97cba5aa2a205ae06829038d2767dcc08c2caaaa0c1754321d9950194dca68525558d81764cc20551a996e423164e041c61b230663e8515551da9524499810a16a1325aaa0722ae971090b1326994c3774129dfe26648353c2a6e670f0a8aacae184f143555552ac89d444aa963e556fc934839d24490246012ad40934baa9a119cb8e982f2810c41702f0a20c5e10a1aa649650424626c91557c8a450f5e60aae5e7c192a8b0c63a86c6e156370d145185d20e122072825f86d3ee5c4e6534ea82835a2620b2f54315be4515520fc4ab6a8620b982a92a94ab430a4aa2a102a468b35aa4a063787a3c5142daa0a74329d4e4f223d16a82a63c4e79048385906f54d6471a34d5152d253bc145948a1aab0789a982cae10a28ab140162c70c757a982839231025545341698155841a5e4a24650fc2f71911430a4aaaacf3257a04a38a12b56ae287d4d95de66743a22e7ad549537e881d811554ca43054950586aab2be50c550200f2f50a180120ed41ac48e2861613a5911aa8a62288003058e54a65c7222811169490ee9e646c9a3aa284a0dcafa4302a46a94c415a19329748508352a8db24c13a81308951ad968a1aa2a2b0b554aa3534a4a9224cde13081425552e8f43758aa8d1258aacda3aa65a2391c25b0541b2c65409d4022541589505584e54955a54e26114ac6644a2579d4e9affc098bf57f5a527a2ba6141439350aea1960a2f1982b77a04e205c251173e5559f427d2974fad42864f3372824ee5f89b98203a9e2fc5081402021524f4291fe4a12d25f79522849555952b0a0f084aa42e5d428ff3984caa937285425dd14ad5030a8624e50d0346957922499e20911aa36618209254835553231114a92e447a754e80615fa2a289b9aaa98a6391cd30748249c25261a27ac40a1a2399c4a0a914c261b423d113246d89451e55412e91092953eaa1063e5357926885022630476a2c4fd2988680e47c688e67086b811b00945c006432088aa49555577f820662463442aa8aaea95a04650a44c265c5f0a52c524292f81919492931b9b53932af4c6e6d4a4aaac43ac1ef0a0aa42212954e8400086704802ec800213689007109468c0005cb280298191981214a2860c2012b84a5a30010f5e28010541d4e0c5933880486386760139fef8e3882ce0e0060e3938440f272cb0839a319628824b5e424c86b17260e1a0aaac1bd820067f21060f52c5e0996a0c5e30954c3407b84f40a947d1cade6191e45443aaaa62a9aa0a08948c4583aab266200342aa9aaa4ed4547522e68a19c45cf1e40a2455f5a8d37f951a25261445555983c4a0b26050aa3222d597c00895c231e5d427d515b25c51bdd8bc549e25aceaa56a89b15eaa1aac961b2c1a2c98e6f1aad386c787970b06a6c5d3b1ac8a0017a8ba2a2b0a4f02acea258996eaaa2ccbea5c4d2cebc5ba2cabe32281cbbaac97eb06292ccbc57aa92e6b0650e7727119c2888ce5b92e4f1a96c7b22e2316172eab48d56279aece5b16042ecbba60a65c3b5cd6e5e2b92c295c96e57259515804b0acce05038396ce0b0dd60d966559d7bc0600d3b1e8b05c2ecbba3a21ebf21829f22e2416133056cba7b384f5725d9eee18b92e8b881aa235014f1f89e3aa3cd5d501cbd319c2d372599daae5025612aceaaa6cb0c186caaa2c8f755955b060ae222ceb6ab9ae8e65390b090bc642725dd7e5326309715d9ecb621dd0911c600e60cd00001dae37ac962b07cb6375acea8a72c918b13cd53572a964aeb0cce85440c0c0aa1440c8d5b15c2ccf8b3583d581e3ba6092742cd9b1aecb237321293284d562592fccd33f30eb32e20273599665bd585612ebba84d071b18a5c9ece15ab00178e65758eb08a1cb92c9817eb52c0e5c3e5c3d543a7ea54560d96cb755933786ce878ae1caeebb25c2c4fb68a7cac232d97d562d1e0966559d60ed7025c8e14b92c0b83e4e5b2a2b0602cab73591eab89d5c3352f1eae23d7cbd56275accbbaac24560fd791ebc563755a3a96e556c71ac22a6221b12c2b09cb87cb48e7c582f158976525b12c971b2e01589ecb6af158f33a62752e1fac4ee7ba3c97c79ad765e97019b18a58309ecbb2ac24560f9791978ee581f15896e532160e45c028d141408bd5b18a581e1cac2245921c69c00e3e5806f058d7e572bdbc65c300d8912696755997655947542fd54d454522d615a82855325320e109864c5147124430a522814941c2112a2980084215451d3af8286a2155943a0291230a102628509000812b3c01c2072d3041020f6cd6810312b3d2000247c20c1f07c28815916091215e91c81c51a60c15e80a31f870c415795c461cc103262364581108a0c3082bfc70850c921f640800808a8e0038a0baa2458d4ac6c34565bda0aaa4a0e289980640e1d28591206c90a5c80b0c8c8b11232e2d473a3d1479e9b4740680a4460b9a02c00ce16204467a90d4607990bc300049aa3343c786961f7081812c2e345c2f453c46ccd083144116235320c11e2368d0e27a3bb44cf1582e4abc20cb124f9c88e1e2f218f13c21c20b598ed085d59224e6070568717974e81c714816042021cb0f51ba18400d4d78d161a20518597228420512016020cb9201dcc0a08c74218b12a9224cae58c38697229d195aac78c428430b184f4ce708a78513ec2852840fba80f9c21b345c475a1410f3323d4f7c03fad822002d43185962e4002e56788a78995ba4a00e265be8000d24ba98e13e192306598ee0e40c703143abc13a41961ca216465ea68b11181a3aee8449a707234b5eb47032831498263bd025468a344122052b91822c04f018118db82409c00c2e468ed0023cc003598cc034f1c19291a5a563438be512858b9196245c8a509280233845848069e262e42587199c28f2f1d0142180007838800e37140133048d1407d0c2080ce8c5cde0dc499417249e171d5a92746211241e216414f052e4c588078996273c520156cb0e1d205a6e6045606e67d224708031724311d76286e6c88319c2f3f17c5c3e90a5081a3c4eb420a0c587221f0f0f3574a7872db28090b03ab97384a7d33281023c800d53890f1118d2823ef8f8c01d636451012c282bf9ef150fb0824a15534c9112e5c9029a24916e8803046100190f2183246285293821014c0451001d7278a1030737c0c30351d00424e96100488eb8c420101584200f3ceee0401d74c8316508219000650003898c610b968a15aac08290690d34469989248cbce4a1461a5e04083fd0238f2433124000478cc0bcf0b0c3094c60c56328340b70b284ce7186186000e00870057c88e00359503185471c04e0d181215a98828925629117173fbe50c108ec70830d3226b08139e640030a0d13490881c412c31586eb0b9e2bc854e17a82c70917125a8e6005e142e4f241914390f4e0d2c155c81548878fcb8a0702d607a687161e66c8e122c035004b0031016801c01563d9e0a1e13ad262e42a020373bdbcb45c1eab63592ed50c357476e80892c5634616cf13972264ac172e68618307b2b4b42079394010b4f0d4d11e0220b903042e6364f13c297283111e70e0224b110678a8747c3892724102b30446ba18e924818391161b64814141160158a14511efc891052446c8d292489616243af8200b92540104c95204071aae97245a906869238c011cc9e18d2d3c6564a901881a80e81c1183040c0e31896cd1820018f9a244a7868e12307764e940d148b81871d9234be7888b0e1e238e74c7f220f1186164490b025e18e0a2838b111708201100120114c1a1c80d2f0ce890610b171d3a7d6cd132832c4140c06323130aa2074f122435b8c478acce119d194f94196e70b95ea878d9e185a6650034582e473a2d1e249d4ee7eabc74603a458cf0e0e9bc4c7901400d518cc4bcb8bc589d17cff320e1b16072e8eca045911f5a409085863db48871f1ec00e3c4161e236c5180904c9548199c00841fe8c0101acc00a78a1435d2a04d2460093795ac50052484b0a10698970650814293480e7ab0831fd06070bca1000c1801914264c08213f0810712a003b88193420375e20216ae3084437a304809b2b0c003aca05205141a264b7ef0810037040248167c88c0021508f5c083a9f4030d462842046cb22452062f74c18a0610e08618446440880b58700213f881c61962841ec0002aa0d03829240784e0600570341142100ac9810c066181201eb8830c2fb8c0c21510398405820432822eb23c76426366b802139660041a0c02880afed0430d331e871e604503a8704293484244cc0c85e480067264408d2e1e3f60014e96d02492d03083a762c2120ac9410d080144057ff8a1c71a6774e180053859228924fe9a0800c478aa4498b08422d48006840c02880afcd0630d35ce30a38b24841c60450290008d410c4f9ea8810622f090461964544105b3c30c3272b084a048229d325c646811c315061810783e70e971e161b5ab3bcc021d39a283808ecc0d3f5c3c583bbce8d0c9c1c2c14300eb8622010000003a36786a9881061b66d001490e4778301253e405c6e5e572716969e95855a543cc943d2a92ada9d2e87483c463d31d9570b298529a9263a628e00a9921644a23999f1a26ff8408559bcc7c20749d0d5860a0f6bb31af8c4938edfbd85fa0cfcece8f277e1cdbc316798340ccbd401db28ff66795afc60babc8dbe65681c5d40408841f8bc9b2ee026dae35f37ce163ee98ecf6b8401daecfe593defcd93aadc81b6e81b6f73567d7dc94cefeadc83b340a39a7052af1f4db98633edd7abc5e8795055a2fcb35e757bd5d950f8bbc9b062c2cd0970fdb0b5b860c33d7b5db15a8ad51c6875b8ceda1b5ee56a0d63efb6c5e18f364b9e139885505ea20ce96bd8dafdf94ffa8405d3ec96465fda04399eb1428ab2f27bbb11b420cb1b70b2c29d0e6574e79bdca5c1b64320a74e23ce74b6ce77dd59d590b0ad4e26ef9b6b5b33218ad8d4fa0dd1c644ff6bbbbcc62084f60398146f75ca7cff7f6c1969bc87bb6e381d504faae3ec70ff37c2c3b144eaaa65012071613687f8ef1795bf8b26458aa4da875bb1a584ba0d63eb373ba87ebad13db4fcd930f08e42d104b09b455efe7da7506717c805849a052fee71a61ad2e3af62e6c28b090405b6d0fe2c85c66b8d9d834ad45601d81caca1ee7f8cff6f56bdf08f4336e2f1dc7069fb12841a0760504621dea76a5a1261e56112894f07d3bf83ae7d9e41381bafba27dd8dd7a4796dd102874d931ec26932ebe978540a1757c23fb8eb55dfc5a1068edfbfe49981dcbf97f36c10202756d4267533679fb5dfb033a61ab6eabd79f36573c45deed32091622f46774fb12777e1fd0fb6cbdf8bfc597ad6c671d42f3cdb3a17c7d5b73385570ec3b61835372299b6c85d5036a6d8cd53d77edab8c4528f26e7e88c5031a236c3bdd7b6ecdd50745de4eb276f0aebd796366b33e27f2fe60c7f9fc09076522dd8f759c4f48b6d3974ab3fbb074402d7e0e66e70fc7792f7c22ef902935732c43e86cce65cbaeb266f2d92f84c207f185f235db6cbb9739a0d82b7399b197f3c4525691c441bdb362c9aeb3af336636a6530ee5bc95526c561cd60da8950cd7db38c7e9acac4ee4ed50960de8f5763bfb6ffe773bc776b26ae0ac5df7aa64d7ce57ed137947d89a80402050fb16160d5abe63f0e599fd9fb426d3893574ac4531ac195016eb95173acfadbe7c121e854a267f127612e30c2c1950f9a6c7d8d9620971bc4e08f5165f9ef539f93096cf7d103af1c4f96f94ec75cd97c580766533be6a1b673c3d6318d08791b9fc9c63533299db0b287b154797ccbe73d94a473517d09f2dbb16636c57e374794e61b580da6ba7b38cbdf9b2a5e399018b057446f6f03376ee6164d1ce10062c41e883cf5fbb89197bf5a550383894734ac9f685b502eaf7ad740f4a67d3390745de2f62b102a10ee689a56dee0dbd6226f29e645880d0ebd519bceeb23eac9089bca500bd6e62582aa0ef7ddbcdd759199d752df24e017d9755c6dbac9c1537f622efd367696dc142018d2e31ce915597a7acddb6b04e406db776f5ba8bcdba7b28f29e5716cb04f4efcbcf1eb608237bae89bc4976e4a9fb37a8921310287709ec9d2ddb73fdee5de6a4c849a40a024d784addb83f6873eed833be10b7ebda89bc592301f5b7d335f6fadac3be50e43d02cae63767bb32175b76f28abc9f1fb43d8bd1ff5ed65c7fcb22ef9c4a725da534b232a1d5c77b8c4dc824be36cbc8a2c8db8ac92422e1516b31b0f8a0d21bb3584a97def0e127f286775822a012defcedf56d5f258c21a0f061ff87184a26ed7d2ef27633a2d4888acfcce733f34961f954c934f399f97c663e369f42e53cd6700ffa96493c63735966c7d3aac00201f5fbeeee9b1377bcaf7d7e29663e33b4891f9d6a1a96c0fa00b5ee60db2bddb91aafb5226f532ad4acedb0f4a08dd57773e627d9bb124661e541bd5ee7ecb6266b7ed3fdc9743ad179010b0fead24adbe43738dfbf5ca50c75f400657f99937d9fb129a1bfc83b64c22e02560768adffaecb5a9f4777a18bbc4326dcedf0350d9590c9ba83b6e66674dff96f672c5be48d7a562c0e5027fdbd8f0feb7dcfb216f9941294d6ae6d4633baa6a11282806507addebc39c41347183b3a917795d228f6a7860908f4a961f2c9b933201008d46643325875d08b596eaebefd3c9f671779a7706c428f04161df467b490cdd8af5f95b38abc2d0ea12a6b9412e7c3da00c5d1e2e6ef72c6ac7d7d226f39c7c7872d4b38dd657f5fb3d2b0e4a0d75ae60f33ccdefbec57e46df3ae015a2164cf5ad7aeadee5e29f20c50d8d035577194d97ac37dc5c20075f57dba64d3b507df75228f4366f8b1c987fb4af61cac91655870d0c93293f8faadb9f6cb5fc57d6a988850b5890855454d3e331f299f9a271f0a821db0dea0d15566a347fcd3b3bc56e428100804ea2b2090cdc5f26015961bd4b2e6acc592b12a2776e6feb02e402786d89b7ccd2b83b2649250402094159349a487d5069dd3637c91c5f8d57ece22efdb2654c934030281429faa120704ba7f0504facc7c963cf199f934e104142090c521d63660b141a36c19df1a25b4ce239b320f6b0d0a3b7775d3461873869f45de210802b91a14db98dd7c5f59c311e609e9b0d2a0cf4136e76cf2b267f17d22ef50a83592ada5291cb0d06871be19e374d94fca8eee2e37c698c566a7cbde5a8bbce367e6f3a979f2018140ad430defc875609d41e785115ffc503a686f4f9177080402f51c9619747edfd617e3f739a18522ef3fddb49ef2b1e302ac32a89d2e32e6a09453c2fb960cfadaed38abb517c36fd3c7a0b1599ff5c29711be3c2386381f1aeb703e351f0b719c5bc012834e97ac737bade1e996b930a857f66273153e081d7606067deed9063f370bdd5af7bea0b53de3cabaca2aa7b3368a149f263e331f259f284f3e2fa2483736238863794159d7e760eed8648d4ce6bfc949cd4f0d93cfa786c9073bf9d43cf980402753bec9a9018142a41b9b51641dead768a884ac0f585dd0e68d6f7539ffbccd5a2cf20ea5be8a9b72c9c93301814020272010c8b1a6a112b2dab0b8a00f4f26fdc67ceb6db6cd2de86d6b23841637c9dc6dae0575cf2cc37266266dcff9ac2cd4426fc7b9e1eb6e75b23f354c3e201008540584345442a12c6874d0cd171bcccc5dcf28f28e09b0006de7ecbb18fabd5f619e15a08eddb7d7b59eaf7a5726f2761d9950805ac8a4f7eb89a5752de309d077aed93c276b2ee29b2540e36cb359dca2c3f939f77268b45e5bc5ee8eebbdeeb0d0af5f5b629b3dbbfb6f2a85b0a09731082163afd9fc7ef3151aeb6b9c23acd34e6f9b712893b5627f67f0d6ae32a728c4f319ac5fbb61d6624651d913ba679f73d5df6df944dd627ff7e13798319c1f015a1b96f37d43eb0ec68c6fa8bdccb1576c1b42f62e36515ced7d075bbfebd2fd9668eb37ed8d56ce78ef84d786fe7d1c71768eb96d785a126d1b735bf6d3e2aeb8ad159abf3597e7b4d96ddb5b214031c4f81bbbf7e7557a1dd18e36bf3c618536e2ecaa88661cddb5ae73cfebce6a15dad66618fb6d8dce6f9e9966d8fe5e289dd996f5e7d3fa6ab53e7f3a6e167f62da7af64f0b5fbefedacf4badbb6d616bf6e463b7d3d2d62ebf6899bbd0c93c67a516378925acb03af738ce2ba86ceebad86c6cee666719a28f41e6e6b319feb5f7ca0750f69e6def9fadd65aad7400ad0fda985fceb7d9322bada032ffb3bf10be37bba56c007d15d76c219ed8f1652da9d0765dac163fd77f5fbf3380e2299be16ed6fd83f57a15145e18bdcdaf315b16a753417d5e88dfba64d1c2077d0afadac9f9beb9bded91f9143af1840d4fdbe6b3cc6eaca1b0c176b1e66f96a19b510a85b14d083d37d920b3194a415d7e79a3f5ce51503763ec98ff4567f0de2854ded62264d8b1674c3a28144237ffcd089d6d8b69a8bd36d6fb7f2786d21b42411bdec82cbb13b6eaee7d425bcd354f3ce33306ad7c825a972ecec7d3ff366c6f01d4da5c6db3b5c5d61acece09cdf2ca6ef0c6f7dee0b54da893edf6da796b7bb739136a199eb5b6ec77f03ae696d07bb17c3ead7d8ec1f78dd2e7a05759bd21fb3bb313b4e2ea6694373be95ac2199a6fcc30c7c693356ed64dd0dc984d3927930d7fcc4a6885ad36f61aebcc6eab0aa0ec7375b6a16d5f31f304d0d9587b0cfb47d9a06b26f22e3d2974ff4a68360c8564d350092d6182ce18dbfd7a2db691c1cb723685e69325e864d2abbf9d1133091f5482bedbccee9dcfbd8bdf2df20eb98eb1ef5f719204cd39b21c3d432ca78dcc89bc43ad63ca26bb98c4c6640a5539854230937a6bb7ba26677e93b13745de2197924e5763beefa2739135d644deeeb43de758c40dcac9e6e32bf2c6c274aad22dd20767b77dfe8fdf6dbd22ef530a0569e7f7647691b98631ab56e49db2c973caa3eecd19ffb16df1f66729f20ee1520d9970376780a3ac5a581b4bf61a4fe7aac85b84c2b9099d4c3914957c663e359f9a279ffb536051a598ed4f1a9d2f3739af64b936bf8d89bc4f5574430c044ad96410e84fa64b450ac726c4200d9510154ddb3b9bedc79a31762cb1c825ce6789149f4fcd934fa834f2764add2cc168850ebde7bcec5dd6c722efd449cabe2612490148dcb7d56b76f76f998c55e4fdb7649a7f4b504a4ba244dd985c0dc8a78c0e6173fea0bfd98ec906d95c21914094e51c65aeedc95b636d55e44daa573e9442954cd7bb3462fd27d37d345442538ea0ef5ede8ba16dd0ce7728f246e5bc95f9a99aea6e0d69a8849a3082de86d5def7a6cdf8d99722efd3971040dd4e2959756efb55385de48dc2ffa850eaabc0fed43041d50f6b381f29528040211b132ed513a87e6a9e7c426fd250095961141142e19c42211d88e8177b18028b098b940f4244d8640ed0ba8a64827021f611c20043146008208c9011e287227c603d10c183103b3403e8100a22876663baa13f85426d25c276731fe538848620402864801bb0549b1f06d021132954a534aa52c544ca410032012800006c7c8839995295071b4211b6507b2b95648ba8a10034c89cc2e961860ebd28c40312218ea07230d24ca6930e458a80c1f54f3abcf8e092fa2a39b4348a07cfc8c6c63444a715e03ad527dd1dac0e61791e2a1edac8410d1d586f534b9e1cd60003c9914a890212c0c4124a249124493c5f50fca07338e5ac6f61cdcce305cded62895fccb6beced58240cd21e0e9a28126cac345f36cd1ad454f4f968aabb777372623084422bdbf445a97a141ac43068aa5b50f437cdb6c8fd5b844090e14a52520100884ba31b9189d3150b70f1966b93ec6f85d140365f1b6796dcbec4cce9a9f934e18a86c304efbd84a086166100c144e1be584f56173d732f705fafec9e86a3ff764b6b875bc401fcc195b5663c5b8cdf8ba409bb5ce323cfbe59c193b2e5026996b1743eb5c4ffc760bb42dbb72bebe30cf2c594b2dd0581d6cb81f6e3cab7c2e0bf4e176534e26a1cdfdbee11b1d2cd0e6248c335acff3be07db1c9d2b3c881dda6cf1b4b942f7ac403fb38c3dcec9ee8cd6c52a54db9fdfccafb267df83a04305eafeda67abb3b8ba973164dd99028d17f7952dde7f9949eced4ab3995074a4403ffb7b6edbbeac8edb3b059d28d0cca46c7da36516051d28d0066b85dedf6caecfa32c41e709344e5b999d973d9f19df7602bd8dedcb7eccca5b3b5f2b3a4da04d5aebfff73993d73dc87a8f0e13287ed8cde90d7664b1d5d75942831ed051026dd0f957f9fde0cbd9a3c81b8b2f55a9a50a4534a493048ab37b17b7da60e7da70eba08304ea66fb76f2bd79edcb18c6ce11a87d5bef4fdc5ae7d6f067d73e354c4a50a640a979f2510202411b748c407d42092bbed1598e18bb129d22d0799dfdeb1a9e9708f4e63c9bdbbed1615fd61902b5d0e7b7c7cfba3ec62f042a67752f7facb8c19ce30781fe75d5bae3e82d5f5c2f10286cb1df19abb24a9ff2fe80361cbdbee9ea93b5d97811a1d6c157e7637663db7ed60734b79536bf63f3bbfbd94368cc7f2584aec1866d67ed01adcd36773fa3cbafbaac3ca08c5977eee493afbdc37207d4df73d5baf96e6cd65cea80dabf2fd70c1b9ef1de280da1b23dfbfaee337c2e5b16f2b07db5ee3526734073c337e2eaf89f9439e3804ec757e666bf4ae81af41bd007dd63d8337be6b2cc36a06ddf5d7495b98c7f3fd680f6fbb76db2eafab97f1ad08731ac53c6be2fbeab7006d4a1cdb97ebdfe5a9d2e03cada43bfb84d9b9b6491101ab39badc6286d8bcdfa0d42237c18fb5559257c19037a6bc73ba3c417bbf7240c689bf2b2665b647edfc3f6029ae3cbb1badc5e8cd705d45fccd042c7aec3aeae0534de19ffd6cab285973516d058319bedbdbbdd0d760b426d8cb5b5fcd0ddc76a632ba08d490ba56bfeb07ce97d6a9880a6f8cc7c9e90728383df89d00d0e7e9c4727109af38b2f637bcde2886d144107105a5b632fb29c197c77b10dd1d6f0e8a88046182fcc574afcb149d8697452406dc77b674f88e36b9b330ae8abf661e86fda27f1ac1004028126bb40e704f45928e1acf1fe63365a07028140a1ce498d60b36e6d02ead8c3d83eefe9dc32c99a20a453025aefabccbd96adc6fc194a0c74fea06f1f74ffaee5c4f37e8da34302da58cbff6a597e18368847d03a7eb44e1fadc307f56aabb4d9662c59cc2edd8d8e08e87de8fdf3babecce733364340ef7cae1fd76b6b84bd07fd7777fdd11f6cffa4131d10d0eace1e7fb3afd9f82a8c8d8ace07e895b159289be36775c25cc279533a7ad01865635f99cbdd32942f0ffa72c38f2f6cee5f669689bc73f228652a9d5a93d2c183be2c5f371b6f6317d6e6e0141d0f50d9de93d72bf3cfb06b751a2aa1ef7480d6c6306cf816768dcf842594ce1df4b5e892c5aed7ba85d0a1191d0e509f6ee2791be6b7d045294376505b5f9dd133f61be1c479b2de40a70eda70c2ec24cc2d1f76d6d241b3ecd9be66db98b3662a753799f930faa41b9c9a4f94271f343a1ba0f3e39c4ffabdb7be8bf11cd4e58e77f6e376abb41d45def353c3c4c6745a020281402050470e7aa3740ecbeab5da96738bbcdb191d0d50e993c9265b67765f628b7393011a1fbbcfd86d79def66216799f4ca1d45779cda48301ca6e9b76c2db704787bbb54e1c54be6e5e596511dbee0aab9446928d0e1c74e65959c6ef1be21923f06d89149f26e68dcdedbc41ad639fe19c76dae9ec9d22ef36f37971e623713e519e7c5abca2e346e702d1b374eec9c6d5f32b458092ea28756393a5d346bf53878d06853a6bd0f74d4aeb5fdbabd1ed8bbce6c9478aab1d35e8ad59e60adfbfc711c69806c5cf3dceceddcc13de3845de5d32a1e16093ce5d63b3cdd7ed9e832d73bd8ec1962cbee94ce40d4b26d20c08f42513e946f7a273067dbfcdcde92e83d0766432898e19b471b3ee2184d8bee65e157937aa5306adf0caffd9ee6f36c6950c1a6dcbacd68ab1932f5f8e412d66ce9ecb2d4691f7a786c9e7c67472020402a1947cca89295572028aa98e18d4be1a276e8eb1bdcd33ee8441a78d2f67bcdd707ab3564f1404aaa7ef8041bdc20b9de777f90b6a71b4935d6fd7b61d7c2f6837b72ccf795dc56eda2e68e7671367dc8f45f9ef72416795ae61c9dc94783257b7a013b23aad659f1d7cfe5ad077fcefdabd70ba58ab77b25036718ccd9e9db6ff7e2214b20a27acb76118676bb00c74e2376bb550b6e7cebd4b068a5f6b90bdf4beb1f5b563a08d3976b2995f2cfd45e7a4182894d7a7df581f42d90c8681ba965994b6f95767d71f0cb462096386ac7a9556d6fb05fa3e46ebddaa8b0e5ff602ad2fe59b373767cee26abb40dbe6ce6d3b3609e56bc905dadec57e3f7f93ac31f62d50d8e26bacc56c3b335cb5405faeeed964b0b3932f6316e8fbbf86f932bf0de2c7027df9b958dbfb28bb65c8aec0707c8c1b14b99c725c5688de7562e9b57a96b3795701b78bed84d03ac6166791b78c595c5468d0141ad497141ae43657141a048506a3add345d81f73ec9beb09ed04f64857131ad4a88b09635c4b68d01a9712e83fecf6621673c52cce97c69504cae45b0c639e1823817673315ff79c6386efbc2d8f40bd216b38656cccfd3b69042a6bc6d146e8306bee569681ab08145ff88dc59ca76b0eef13814aebf7e539abec37ddc543a0b759fc66c5b5b587d0af10a8cb9659e66267f6eec353eae60a02cddedcd7d7ffb263de1e6b382e20d09be7cd2e5bc7d1bae8cf81eb07f43577d9edb6d5ecef1f11fa9895ff5876cc4dc61c08c4e43ba56ea4b87c4065646ebd4d9673cb7836d6a17ecde8b80ea12fcaf76e7dac357c52f6804e189bb9c7d8ae9bb55653d50910a875c809b978409fbdad595aaf3e1f86bf03dce4ece70edf6b75409dcd75b67f6d7b5e6beb83020402815aa3a112baceb80ca190d58a219c2ec3fa19e642a8736be38556deea4de680ca9b9dcb7ff83a429f1607b4e2d9f5e67e3799bcb6af1bc48e35fe37f7627bd90694d5dbbe76865e676b666b409ffc3671b3d5c677582b0d68c4f3d999db3d99e5432cf29e01f52ce5bb87dff328ad5b19d099db6cf7e0b5dd1c669310fa1cd7576d7bb235cc2e1cc4551b61751846d9a2631e038ae3736ea5b5f3366cf3c180fe6bec3e870cc68ef5ba175039ef4b689de5d9f67efbe372018d30cac720aecc35fbdc4a4dbd115c2d6830c3285bbef1d6fbacb280da39af74d31d6eecc9e8c725c8c3feee7a65bb39768b2b98764eecdf2cf7b4977920b7d995cf7cba7c5dc40e48fef9a4bdf7659b8e61ab027abfa77bcfbd627c5ffb14f864b7dffdcc6e43769b940b05f42f94ffd1315c1ad5136e8da542f199f994a07c663eb8347a22e7f438517c663e8f43aaad73fef422546df299f97c6a9e7c584340ae13bc7bebcdcdf6c5d3a309e03bdc2a9393d5ef6753e49df35642b2c52ec1c5cfe67c9eb16d3fafc8bb994cf199f9b4273e339f7ee253f3e47353a148390181e64db5617d32a5eab40ab9fea00ee34737e3b3f91e6e2ff29632041709464027f36ce19b71c666b7569177fdcc7c6a9e7c4020e9faf2835eeb1736e96e7e9fb1e33e68cead59bb8f5964cd622cf2d4a350d55171f1c12e1150281db6796b6b2b7f66c8da035708e23ff8dee267d7d75de4ed3075ed2121734e7ab318fbb1183b4a1050977376dc6c6eb0b66657e46d633ae54f0d934fbb62633a2dc939d58040d70768cf06e5ff67c7e273353f088f4b0fca58bdb0ef8d72b2171dce8356e758b7bf51caf78e170f5a6dab7fe57b77dc8d4d0fd09f92758bb9b6ffd7d6017a2fecfa0de2d60e5b26efa0ef39ebb27b36dad916371088492f2e0ed058efb5195a565dcdaebd1d14677baf74d64ec9be555c07ed87b9d9f9f08ccf61bd74d0ebb0661b6f9c1ba0913de6ee3d4a076b767350e60e1f3b6b18bb71b372d01c1f633fedebfb7fbb6a8062db8fcd37fdd6d8f1ce0cd07f6da7dbc7b865dbac6380ba56218cfe30b4d0abb73828ab15c728f3c311c2161b0eeaf2c42fbaf3c67932b7ee5b5c6f50d81136072bf6f66d4ae6066d73c67c677baf350c2ffed43cf9804033d4b0af349b8bc58ceb02b4a165b0d50c6fb50f563881ab0d6a5fc43263e69ae3ff18e7c5069d1e337b50da7735720dfaa283f659e7f06d0927c4c234030261613a9d5aaa41dd6bc3afb54b7cff459c2b0dca2a7bcedcfe7c1256dbfa53c32465329d6cea9f5252d0a0f5cde82eb62fbfcafaf80c9a1f46d898b13c1d3bd844de24520d79fbd430f98444a99bc7345442582e33a8bcf562d6d865d04d875da4a112c2571974def7cfeaf3ffafcd6132a8bc0f470b59bf17fdda31a8fcf8b5ba68df4a5cdf1583e65765abb83f36ebecab6150e6cc7e851066dbd73508066d09f39496bd96dfdfbf2fe8336b9d47899d7d565327132af4554e6fc31a89cb0bfa20f4cc2ace193af73952b9baa0ff10da7ed65a19656bf5e282e628ab63f79c93f3b6eb06a35c5b50662b9ed161d68db9d8fcd282fa3b7bdb189c1035bab2d02cdd3f77ec76cb7036e812a153d69f2f3fd75abf752ef27eb20c947db5ac4edc5ace3933dc64a0ccdd37fed7ea3fe9ba8140d001d618a8eb1c1b73f8be61ecf213f927ca93cf93628921c3ca1a6ef6d6e8acb419ffad375272fe897e1d225861a8d23537e38df3fdcb53e42fba75e647a71a52bda62720d04c7034c8e58dd6e6756e5f6d66f3edd8ed878b1b7d8136de1a2e6c50882784f959ebee5dc972172e6bd0fbe4cc5f9f74f8d86237b770518376ec26b16bccb28d95e5990695f2458cb18decbac7189e68d0c9aa95f82f7689637b3c83da792f84ef323ef78899cce2620675fd50dee89acbb86677b37029835a67a7bbd5350bb1832f4a0ab89041aff4e6667c9effb1e9f21854467fef32b61ee1eb29cf7011837e7e9fd15597f3b6c71c069dcedab9bf8ead6338633068ecd622c4ac36f758c3f90575f76e6d194b79b17447868b17944536db9df34d2bf2d7af452e5dd00adf7459be29db65f0b53c5cb8a0b9bdc6dade6b72de596b025cb6a0b76b9c7e7374cfd8662da874ebbed5b6194ae857ba64a157b2f62a66ddda57cfac25117afd6b8cf739872e43f9b08da0a50c54e666fbd9f7af7d9b8419682103c5b0cd6fef3df6acf46676b48c81da8cafbbb786dd4206b11868ae2d376b52ced8f0b70982963050076fb38c35cfecbacf9f528e1630d08ef0df6c10e79cdfb6ff02b5113319e7abf2a33bc45ea037e7fa97658b33837d6517a86c6d65848ed53a9fab920b34bbdb9ec48f1b76d356df02bd2e3a891bb30e7aab1db5405d6d0fe173526681c2db73428fd95f7cfe2016e85be86c8e503a77eeff0ab47533db2dc36615576905ea9d99bf695bbb3eb1ab0275ec3abf9da33f7f9935445aa840a595d05bbccc277cf3db0d5aa64059378bdd6331c6e8aaad91028deeb2e96e9d84f556e651a01136bc787a63f8c16c1b0a147a8e1fd9c4cdb9d7fa04cab07d36d6f7a6958dc569811627d06ef2be78a7b4d66b65b809f4e6173b6278a194f3e365029defd6e7ea6ced397fb54ba0cddadbed9ef9dae8d52a81c27e891bbf096d1268fedc0ee62aeb3be8b62281caeaf939e9aeab8dd6cd23d0f72f197b3df3acf1b96904ca9a5d3b9f652beb8bd58b40b18312469665cb8f2f8b44a0d3b5abcd6d7e9eb16c38043a25731bfddacf0d4ec72d42a0ef7db68b8fd5ebf2dd20d07c59fbea17be1c679e0e08d4d9f61ebadc5c95d6c2f6032afba5adaed5966de78608859deb7ccd9afd3671331fd006f39c2ffaabf5102c5a7ad0a06cdeb1e59c8cf98b8db5f080ca7ff3d91619ae2ef10ea895107f65ffde9bd9c6ac03ead9e3b4efd63a66237e86d09fb5c1596fc37ea193b5107a33eb68af9595593babcc01adf85fec87ae2bec8a714027c31eeb947f6f6eb15926c567e6c3a2f84479f221ddd88c424fbac1498562cb0de85768b1abd361c3b71fb4019dd6cdfb72cb7c99d7cc6a40fbd6fa3e6b677b6d838e06d4e1c818c49fdd7dd6626369990175d2ad6cd1626ff8644719d02a9d83cfd57a6b6d2ba1c89b10caf275d839573184595a06a1af326fd8da0c9f57ec3506d4796cb341776585ecb208032aaff3f9deb16b2e1bba17d01bafcbebfcb67616c316798b52232cde353df19eae5d40a374b5f68cde8cd5eb2c052d2da0f14dfb9c7dd26216d01a599bb0d6970fcb275b33418b20b43e1865fe7f0f65c69f5b56402bc391c50c6f74d7fae24fcd131028d4718f9640a8bffa565a089d63f5ef8f4e35354cae1420d03dcdcc7cee4ff1246b473420508a84e3de6801e4ddbb94ac4596f34f78d1a2022a21bc19b7c8b26b0fe29c02eab2c40ebfec0cdf96db45016db6e38c166756e7fb8c27a052b6c9a6cfda2fdb33fbd1a9e6a55a4c40677bf2552bdfafcd7e6d0968759873b3169d9c13d6a6a1122ab5fc41bdfa3b7c0e4b46028ae3fc8b9f319bab8f80b6336b3fdb36db7f73f75bfca0b9d6e67e66f8dc73b1c13e28aeef1bc336ba57a1b4ce07c536c77effa66b1cad7c91778ee994423df62602ea57de96d866d6586c0eb18c720868fe66efb5eb79de3671de83b2e795d96ed2616c1bb1c81bceb48080da07a58b99b9279bc73c3f4019cc8f41f82a6befbd88f5a0addf3bcc3fade769f1c32453c83b4a4b1e74d6991bebebcd9c745c271e543a732c32e81c8cd7b629f23e9952f76f50a551084a8b07dc63f8f5bcefafbf7cef809df5caec585fe7f01db4e585d83d8b9f9bf04d510b0764bd535e2833b3104b6cc7cf0a6175f5cd36e36b9177df963aa8ecdc10d6cc9ccb791dd3411b67763fcfc9d8f5fb9ec85b3aa0650374e266fe9131d72a86d7ce415d7319bb7d57bf510e8aefac5e9f37c659ca971aa0d95b73861fbecd36fc0c5067e36dfe2ec69edf638701dacf6199f3c59dfb59d8ad1f939638a88552767f37d82e5b8783f6bdee18731c9d6451be412bbeaf3e8f6fd6dbad1b6b342d6ed00b9d943167e7724b8759e40d9db45c803a2be5eb18b35f092b6b83be76b1d99ef2c9f6f06736a863085d7ed2e118ef84710d9aefacccedfc76336b5bd5a02c339871ab164a3ba19569d086b6c1ec2283f2edfc875bd0a0ad35699df5f6f2c914fad288541abd262d6750585d6c9261ebdcc2fa6e633ae5d66e498b1914e7d9d2bbc9361f93ce9f9441fbb5ceefc2381b4ac75f936821a3650c2a638b98bd88678b12ce0a02814082b48841ff5adcadbe742ccb3bbbd56809835ee736e3cb62953f996b6c0a500b18d4e5ebe67d16df93b146fc057d8e3db731da2759735dbda075be95b8b686b20bca6485353a76cf7fe164ac4a0b17f45908b3b3cc2e7c17ca683312a15257d8a3d2b245ecead3fd3df60fedf3162ddadffc5ba785b64556734b967ff341363f32779fabdfdadac293c8640f4277e8704e29dd9c537afd7619d76e8da185313e913dcb4061f6971b94f8b56a196e28528032e021030d9e31d0fafad9dbf6b27df9ed8b8146dbda64f7ba177386778681e2caa0b3d1f69db765fbc040db7c36ff5b8eb16518e7176847986b96f1566c2d76e7051ae19b11fb85d17b56d8ba402bf49a1f3256e5cbd8e4191e2ee456ad9d35ceeb308ef96ee161cf9f3762c75ce3a0426e6a81c60a9b84d7d61931fcbeb93e6956c09305ea4c5a77573fd6f7df321628738ce765adb27c050a6f8dd84e37a13bf7b756a0ad3f631b21fc98df4158053a1f9636becc1ebbb7e1d00cc34305da22eb76b5d536b37c971f179e2950d970c573c6c9a0b437b72c1e29d0763046866bce6e3bbf8b02b5f062d78ed91767f3f9a040ff3993ed6c6e5856eba4c85d3f36d13ce979027591b516676631d71bbdbf848529644ac166fdd8547a4e4325a4c4e384cb6c7eef64b517bb2745dea54abac1a6992634883181bebcfd72cbbe6e9bbbd5b304daa06ccf62e337dd7dd7b0dd541bf77f4a59d8ad049aaddb5ce56d8b638db09340ffdeda8c5d79ad336c1d09d4da6fdd629633b7f6e42b8dde944fcd938f29557212c573047af1c3f6af56f95cce2e1b81cafc99759eac59ab1fca39a5ba51f2f4a9d1734f111c119c6708ce230417045a2b9eb9fe74c6327eac81d0fa07cd8348633ea0efd3a37bd1c25cdb7cee3984beeb67734fefe7b0d68ffdd844030259cc5c77c0d303d73c68a01d388f0e1ad4d66308f51b1b93b2da371993ce5308f557b1633dfb5d736dfe149e1c50e66fc25a65b51233cc2e0e28f48c63cb58736c26ff06f4bed6e0d73b21966d56b701c5b16bad8ed967af3f096b4067bd19bab671da66cdfb9738898d06b4d5077dce6fdddc7b907966402fb336e35a3b46fce2638f0c6875ecaeecbff8e5ac528abc5d211e42687cb71f9cf8ca6a6b9d3f08bdd2c2dbac7b6f62586f8b8143eb62b79eb865f7fb228e0706d4737e9b6363d3b6eabe89bc597f6a989c6a663e339fff25a69af802fa6fcaf9d239cfd11f211e17d0f7fc1a769f4eded7f0f5b4804ac76476f5ca5aaddfea22efc802fa564ad6d97165b7c66805a1f0bdafaec9d8f2e2363dc2157802a138ced9de0db3adb2be2cf2ee06ea1b7800a10c33fb9cb519366793c1383c2aa0b2737c3da1b316df08992705543ac3edba9433cbf72da3c07302ca6e93b15ef7d8bd76f89a80d619d937f7fac29b7b4e4f0968b6b09fdf761b7eb558b6e1f983b6ecfae6e7f13af3bf924e0181dcf39080c2185dc4b83d3726b3bd226fd7271c5489b696518a670414db06bf62d92fe296f84679f271edf18356dcdeedf76beb708d2ce79442fd2d292999462910c8d30795b35b67696bb3efe655e4fda480b030e594de89534de9453539a577020402814a261b1bd30d390f1fd4e179ddc9f6c79d5dcaedf088a041d713029a5febdb0defbbaccefca750eaf4576640ada5670fdadae1f95cb76cf6b29c22ef99d3879a0704ac7395b6d95827660ec567860a5cc23135e15c6c09783ed013bfc6b1edbbd69e09f7043c7ae0c75cbf19716e35da6743260c9bb52c3c79d0089bc326d9bbfed3f3e341e395b3276b794eebd7af07688515de5b1f3f86b164b303b4b9d9b13d6bb8a76350de41e7ab2da39b99e5dcbe7280fecbb7318c7375d91d3e3ba8633536d998b36e98b3ab833a9f6eb60bdfbec33e596c0f1d0d4ad6dcbb3973b1dd640f7a3640ed641e31839e3d73d067598bf1abfb3c5badaf3bd46d051e39686e6ddb6ffeecdeb919e7f068807e73b5c539675bd9e474343c19a0cfec7b0d321c9f4396270628c4b5e1db6be3abb2e58d83c2facf5f8b6ddab7304a3868937f21eefcdebf41f3930fdeecf8c1becea31bb4c6b76ee22c6b8515fed4c27301faceb1b377be6693f93f10e8a6dab0323c6dd0865d6dd03dd8113b976cc6c306b5ed5a97ed1d86f36229d7a06f4ad9f5db56fc98b3ec4fef89470deaf01b630d3b56edac2c8bbc43adbb61514f6ed250092dc093068d1f61cbade696d0d9746378d0a08ee5e79aec2cf1edc7f90c3af1cbebfc2f668fe3fb2b1e33e86cf279df161ddeafde6ab0a852804058d4130844432564e32983e68cdbbb5d7deb647553e4dd6eea890a1a2a2193870c0a6795edfa61ecb259773d06b5ecbbebd76678c6dba2185436682d7b8cdd27afbcce3c61d0f7662e7a76cee616a5570f1814b68f6ec2d95cdaf8b0309150f7a4a4f52de5a05e94bfa8e42f4a658128475110832008009088cf0808000063130020381c18908683c188601ab75d0014000442625ca03c2a2493c8638140200e06511004611002300c03010c435124a531c85c07b11924c55b3a4b80262fedde329a8ff84d57fa59a1489ab133c5b78f1c747a96b29e439264cf8233a731f818dbe7487ce556729495121c0fb570b50ad0993ffec9cf0d190b58df27ba98a81805a7871465a544108a88a439f526d866588b207ac11622c7ef078270009298815348241aff16efe0639429a41561e29b76b7ec9ee0c832ced39082554560beeca44b9319a9e46b61f42d13438e30998af40a3cab04a1adcfc515348bd2dba0994d6bc9597753973fdfff536a7108d9f90007248e229af060be07c7d83c4a68e75785f2b947626010ea80259c22616fbe7694c94e4c1e6d8772d468a32148f9e1385e6bfc35372e9dd1a5b94e2025617c0fababec836845f34fe7b1451089fae6c7fc7b4010b67a889d6affd121864cad8f2a0b8a05dd94a4e03fd03f8a341b75a467c64d155a95328e7be0e165f61b696b74558031906223ec2fecbc9f11aeaea5c5e353acaf13e286be01206291b177c6c68af1bb19718991be182bcd4625b2614c8b6e1dd5eb4662cc2337f3582e3b7aa377d4206f6a5335d38caad5d163f010058f0e38271254b30c6a44b89847ed535337c56e5e6fa6cf42fd42af729e844ed95fdf3b241bbeda2f25a69a0a442adc132038f14a86bf42ff620de7625acd089367b3f5db46b8c37a323c48500dab952e214a2ab7442072eac3e277c15c240e4bf6b3b4ff67a9cf123f4bf259ea928f31775e676a96a52d3fa1652a600b984b2906022aa56efb6d82fb528f8f32fe68edfb485ee5ed461899f32537af0ebe29dd9c4e5d5aa265cfa3295f79d5437c86a8600215b5da4cc692bcf18da70362388cd68f3c5c0104d5abd69a7d98375810de7da0ea9de0992b892ec697468ce308807ca834b6cfeca13c83767c49be83451100242c7138e211088e8c63378a62236f6dede1dd7ff1be9a9183311ef18b071b0604f3143607c686a81d9418d8df63b48289c42b46a0795b6894389377a965a83c924802edd5a8b582b154ea81cbf6cc390ab344f1b21d19c6aeb2897bfb9ee4d6665119110dbb275562f5249c35ff11acfad50840ea0eb08b1df24b88fbe7e5a5d613c1dda635e280f69f959d38e7590885072c9925864cc8468acaa91fcb9cdba27d1977239562b97d059a7cb360bd971ad38687e4440f8103e5157bb4377221283665f433144af1ea3fa36a9f6f00613d616f1a1482ed6c76ea850b9484ed499dc336f400b9668c0432e462ca2f16ce07767828ea5eb554d401157a9646c64538a530843cf9848e32bfa592bca1ea6f82f28232ca3fcc9098f6ba81e60c370398540af6a14ffaf1732f2c98daa6bda0f32bada93fafc063b3669ea69329857a49c835c8bf8c2f6f1b119f3f53b3377771914492b2994942131b7f5c7840210fc626e1d088ba1a01ad5890cafd3255466cdda605d420320e5f283edac95b55ce8644150ea79d023d23ad66555527792f771c9ee89ff9c04ecc8a3157d2ce4ca6bed77d5f66f357765279b5d5a1909dd5d8429455d0c91d6393fcd80cce309ef4769b52eacf52fbbcabb611ec0d560c409e32b7595c4fd386b9006dfdf93f8d8c5ee9c2b2701500f5a2307e65a1891f4b3f4c52681525978cb218644ad8c1d5162cbb591235d48714d9a514ff385656c59fa38c81d1c485b1801e44082a0b27e70226f90ab7e31a04ddbb7a2cbe9d7a62e535186cf6b593c6bcdba1033e61ba2d8a398dc0543914f6797f784deb8132d119eee42f81d6d855b974cb175a1e361062a0ba03e93dd983392462f8c11a61a68fa3f2701966bc0deacab4e69ab580977d216c437d04b2bfbee3755193f68e10bfd3e8c1a1401a2cbcc26e12eb47f8e6af944649eab3caa172999c43aae1e520fd39a036bd7ad664bd8770a61f935d713ce406e221b39f01ef6e26dd6f641c50eef166d5cb448c1709e50f8602251851185173cdc274f24c9256c01381e2e6c97cfb0b5d66954d219312604bae24165554a04c9650d60dc09f85017b919c2ea7c03dc1a4125550961f7d977e81ad4f770c3a2190ccc94446751ad4016388cc1932384c0a7546993e4b047c7918cd40030cc50667d2f6647dcb5f6f6bbd0f56babbde18a852b4c549ccfa16dd06a1d43516d385002d0236f23536d4cf194aec0b71a97b5a501d0db4743be6f66fdd473e43b6a2319dace40087708dc21b22a42bc00f100d7e2d56a959de339c21776241e7860d05f0391d281a491312ba265fb5986bb8b779a33572f8a71ab06ab7d88919ce4ea74a0d0a3f1522131e04bb6e0b612f71a9c900e688224a04c0f818189d66e12f17c394b82a1579738b0b4077c7422741ac4230eb6d93d972e6df382db16a9ddd310c5450809df543432a7605745b6f0166376723ab5ef347808a7d3d8198191207752e115fd6b9c5e57ebf6a49631b58496a2789f8a91728c93a9ef70a710d327e83475610635fc7872c6f040bbbde843fef7d9505403efa18095eb2d6cfdbedd929f08e9f6e38d7723f796fd251122dabfcb27b5ebda8ced6eaceab86f430e47ed44ade9889b1a2c2d739336eea44205d4df56558752e2dcc496334b79152f657b7dfcfd99647c0e6d3813837c8b14915b5013d749b73951103c183eb84e877aa174cb7b9570dbc93c12f91d61e0369b6095e2800ed197e94e352a8c7c3a1750e9ea3b8a5db8a2acad9264d31fb6359cd008188f983b22c1f2a281176d93543e93ce244679aa0d6916fe7e12cee65e59fca20ed138e60ad6c8b2821cab852eb9db459724b9a225aba01e5deed722a1dc6b1850d8e9e6508098386b2cff4bf46ce003baac44e0625022e4bca8d6605449e5060500c73bd631187cef50b552780af4a524d840466760c0d1b7d4f741c86ada1e0f170ea6cb20f8b56b5e9a05b90fbeaf2fc0df6cb543a1b343ff89532c08a9d533529ec9d18e6010405609308c719d61a14aa7260db69053f3a531f2c188134a4cd806c49b65ad0f33e7c540858f2c5d9af7939a52c120c2dfe9b1c517e17ec48f3775aad8d94f4c9ad8d2e8722e0257d2f408b49ef4e0ed1a9c622d327b6364b3e6677d1891f1f0e52e968f011851554c6a5c88b95867b7cc08f556c14a205a1c695215609f9e070e11ec9706b1a3636693381efbf02b645d87c30219de2689d480507734e6afa80aacb81c30de7b521f4dae7d4f52c21770fe918efa0e62056e16d97dabecb165dd4c8e610a12a236c7945bfa5e900aea802f880a49cf3e4f1d181c310ea42ed700369d6f26aab02f4a44a35c175a03d83bf10b0c9444cc072e4c912285ebfdc70b8a21dec955afd1f9448ad79b4970a78768dae7ca9880301a6dc0ca203e84906d0be09ce3278fd62b7e9ff89bdb3efd2f2c595e80702b98251b5a13344a4b325d22cc8e50164781f5440dac08f7d442373e38be5ee623c1d9437e0e097e3f4ad454747e4e090281f13422956e53330bd4a4ea5cf80064cf72f45fd0b39baa7c4a44054c8f05fe7301eaf4a61a91510e83a01bd1394f60a58cd00fd0838e6041abd45a8ae8a0aae6211412abea24be3c96bf4a67504befe510d8ff4ba4079215879dc8c9757ff96a78c1bbccd6a07ae3a251776fee52265071d9db29aba4fb4180173f52b73dea8b2f6ec9e619bdfa48ba85573027bc5ed6ddf46522e8493a58302f14cdbab2630e5d8093d2d6612b3cadc187db93f515e7d8ac14c89ba31ae9454573174ea4d1206daa3cb3b11b50e97cb367d2a3e4b6a364a35aaf622069d3be2444804716df3c59d24bb7ea170fe66f04d0695861842308face29a9df266dac30801293a01f3ba81e7dd81804e8ca23a8c9840face46f8728149169bedf93c75208ad649dc8d92d377c498312bc469a3298d53b97fe2a913e169eaeed771fbe1c452b68035c49ebeb9ccdcfcac79aa66f61fa704449a695c40faf748bdceeaddadea53aee7cd2bf44f7ef84891e29e82a6e6521d1ee70e8661661b8b23a7e9bc831f705e1b5c286ab3612c88c952f19db5cdc99648ac131546682d1c3e7d20c498ea9f4d509810c9170b8cec64a4d1e56778540ce20221c168cc5b702fcf522cecaddcdc40a29f1892863b20ff574bf9c75100d3fe45b8d0b01260e3cb7eb704932eb9bdb6aa2038ccfca40e68f12b106807da2b8b07fc0e6c8ac80d599f94329c053f0de04114bfaf01f7b27c469886f2725df964f51b8056a6481bdb9cecfecfa2492bfa9ee5c42b2943d371c330fd1ad814e5d98831efea37a32c800e9bf2804ec8c36f87907a4ae675ee458561fd497aabee44eddf7270e22509a833e18bac166b082077145176839adb2f55c9b6986eb3cffc3b759350e7a768266bab7c458f0a62f979660db367e09df5758f432e0afd8b028669e75363deaa6bd5a6018aad4cba62714bf7af07a687fdb8a8c3b3b46950106ac52341af4f7a85a7c2d43c813cc065dd48fc901d92413b092586845392706545002e6111d225f86145297b5a3e57aa2ccab7a93d86ecc0715afb1a838be4e9a4f501db47cdaa114a68a66faa92d122c75e953601cf8137386ef8b5e550588d80f4bd698d6ceee36ca7608d2294f19af8941fbc3d33a830f0368166d0005bd6187cf94fb0ed82118578398650c6a18d14e973f120078bd2dce6ce517ab5693c8bfaaa0905c581540f91d749023f2e8ec462f14743f8c1be024731f0f3f447d0dcf626431d3e80e00cc5ca80b2806dc2ba40067193807e339976cb5416fac524e686311b554ba12511a5d4520a298594aa94424a21a59052955228a510ae4ac5bc16fa349618ec309635d8612c31d8616cadb1c46085b11d6359835518fde019c53056e314b0e1453ab7bf7738b3ab811b4341704a441fa7801c887f4e25fc61039947faeb66c97d1719b04279ea646dc0e59a231b7c3982e58a83cdebff746f540e642525a6c8136fca8b8bb93651e85a1ab881a3ae6eb6cfb0a96b01017870af0a5f2468791f0f6f1ae4cb01aad52237a6a143786d41d1fd7b865585c0f97bc2dbfabfc58391e2b2dc105eca4570e3709b6f14edd7e1e2f8b331c7d400f951dc517035993182d5676d22b9e9d570682899903b0fa003774be3d28a9a501a22d984b07cf94364495163742d4fb708ca5d66781b4003b77ad146321a158d22046e1618a22cb302d071852e5291848f7da4a5aefc8e3c064507471722649d1058317d5164a9d8bca18beb9c7583b6775b220c622628755bd4d4b74e09e56545b591b3a03f7329aef524f75a3964866c9c26e66b77e8f2f5dcb751fb15e3cd315015ed723b8d8039a09e9d11f0e605c69f730b89c13b3c388572148b4643a6328a9394aa81a354e46c9e2376ad8c2ba3564829d9e71ea166dbba00f8e5e47969e19d5b2944e90eb136ccb15831fcd8246d25a616a404f93b50162138c922b621fcf4604fdc0bca30ee8a95d207c687f3899fd3a5eaec65dd38c49bb6e9cd8a82c98e4d9a3a52cf2eb1cb103accbb4406fe7e613c723e5dfc855ae76de93e74eca8cca48814839d984b990441bbcd5e8c26b69a14e201c2bac093de18029bf20fa65cf097fc7f71c522f575d66253410b045537e303a0b4e4b831ebf3123db74e5f82e51457d28b514bb90b2347d492c1afa8d65b9bb608caa02fcb087f11036c56f0606de031117c903662cd6ab5e1af9a2376ffbf359471b636ac84909110a24e2ee2d8ed69a00adfa3f7810c23863532c5c4f0617631e666900f3719c13b948e5c5e83a2a77a088c86411a8380d4d8b64fd1891f1658d401e2b9332692cfa4bd2ba5c3d88229a3f7cc0783b0076ce878e4dd7272c00c6f444ab17bf1128ce694926d7ab014caddbc2e0f6befe08ca54bc95955d33238e0942890dddf821a0b80040fdb0f5a70a3118450d039b41006065069bfbc08df4f0b4e2d5a0181b9c444c210a427e00144c881f647139537f7cc783c1937ad9b49ecb2834c18c87927a16c96a8dffd2e8c4cbc37118a2cf4255e82f04dbd1d29f50c33b36c5d339a04fdf16cf5d1b37d3984595109192ac7d6b98b69b7d1422c46a00d6c8b2ea7f54669167116c98a15864686c884c30abf8dfa49e1f9f9dc1541ee69a72a0b87b39017577e2bb1e7b0921f302edf1281c09e86188b0dea94841039861e23905272e3c3c2333535b35d74c5604d31b6aad62ed26280ccc5cc629d3b1256734c2dcc129962fecf823c87045e881a5e4290ba83b0a043e94aab614eade856c0401099b53ce11131c3672cbbbc6b5e6edf4c693367023ef97a13be2f1f992979f2fc3a73a8e652a993d1f236e2c6083fb483935db4f34a245fe5180afa257cc8ce156766a55805a9bac4fec4b44e566c0c2b7fc9a0acd13cfe2d624c12e37be95c18755c9a7b31a44034511ad3c15e707143e79d4f4e208bf754d7cd441858b23721caac9fad2941ddace08438c5ca204b07e5c5354c528b86b1a46cda81ae091d85485d713d5944dfda21d1cb3bc86a0e1fd45b073fe2ed388a657dbe57af6ae604bd1fa7327f6171ebe0f3d1a4bb82df93a03b2dd55ff655e8bb6f3725c4ecf4acffc13fe3354df4701c80aca9e82195177bb686fdf1d79458b70f09a38a434e0977d4e00567ab96ade935108d6a911ca27b167c2275c93c3ef96300bc83da8eba85e3364685a5e3d0f6f0609aa6b43bc6a07e457a94a30008fa15e9f71f90d27eb84688e5f65bd5172205220ec39c1312d42f320ca7e4793fedcf055832d00310d4b50f65a6037c5d7ad1c39b2aea05b86ebc1657f924103e4ce89219ed628530cd053573134a9c76a2f9be8de64693d1ac8d08a437593243ee8833cad58d76d738c317f9bfe64ea5f745df1aeda5db032639922ab3c1783878269e7ba81a46c91954ef83e289248da7110dca0ccea4c2809e8e89d04e39010ec9c3e3c1c0141dfae93d552046bac11843bad0c71d444924a9d6441d72f95f44aef4173dde8c3cdd71ab64ff511958cabcc5698b6fc030961fa8b46e0d728d32c2480cfb706c9098a0ad000c2bfb45662890eac0f603031fa3822ef246621def6195746f9470478f34c27a60834b9654ea74ac4c6511427756a542e3149e601bd59e1748a64440ab035dc0762c3d1d2f04b81e26a1e449f0a60bb197e18e30523d490f72b9b822f912b288b8f83aea397f0a4edc1d30683fe294aa00d22d83c45d0541b90bc9463cce6d7223a35a053b8a2d62fc90bdf866cc9a61f85cb469d525fbd15b19ae989b6d245356b28831f0ee6a20d9ac4aba294ce45a6fd01a1b18a520a25949c3c424797ef255c8ebbee22896b35878cfd2486df68f7f2951537e825043284895328f63e054128d72c58b5df7132c7434e410fab924f413a8306e0768b9a3702f859bcafc508672740f292583cd2ac2ecb88edc5699e9e20d146a114e62e32cce802871132e2ee742c65584af582ee25c457888cc454c285e03ca8883f79e19d23085c365d5188902c229ff37b6a3f39f0dbea1fa049dec445ba7c2305e50e63f64d63e9b3533b6e7ace71b6b79af3fe47ca09b6b7f4d61f7a0e3258f4ee817779f19f0ea331d831689370c8be0f2556e66bc21f30d3fcff24788aa8cf44fa7b1e26d6e6418fcf786939c08aed2bb5428f0168d23f42d662c4468ef84661aab832a915e66d6794c580f41f1fae5bb368c1cfc4511a1d46bfc208cd4a2c7c482f4821cf9532073e48308c4cdbca45161035ae4bb75896c091ddc2cb5e68b4331f0b3e05d88d2293344a3b931cdaddaad2001bc2cb2832a893175abc5894964e7c89e4ff585eca56261f4209795cd25ad84f2dba3a43a5b6377f0b187aec0f6a62fa9b3aab8e0f57d67159570691a1b6536181065402fe1612b4315948f8d59e8fb8c5ffadbe3f7a51a9ce78aa8ffc991e1477288c77502e6f3d0e475ecd547e64a0f34a555e214df381f0d2f11e287bc17e5b1fd2ff1bdfbfb1cbd32598e35fdc9f036c07c43d97f1d2178c71a2c6c223befe02f5d02de978b2f6136cb00b4e5dd521757dbcd2b698052957b7ec450aed2bcc843e6e94f55cecdd8db1a37c4ed7dc27b37465d3b5b93abf80a3496ff759c8d504e50dca1363b724da70e4ef4b5d1d67ce214ac92a1bf08ad918df7c8fa56ca210a4f5ca6c4cfdb5e0dfddf7255f737d6a137d74b35ae4b6a41e856ec69de1921293fa6225524f4c3fa84cc1a3908139668eb8a719db58baf0486292995a09866ce4cbab5297f1f838bcd11ce241d14e53a609a8d96aad112491e4fd54483c2822df5980d3802d04bb50adc1a179773a03430e47bebce09d58c14e1a523e4b8ce22140fbf364b8353fe478224b11ca4299f6a9186d4af1fbeffe866cdeeeb5d9ad6d65b1ad7f29d4e4f52bde140ec6ace4dd009c24f5a95485e1d4772a7ed5615c58f4b52148917a9d04fcf7f25062345a36effb1bf6c29ca4d39b9075473161cfabfbd29694199aaa9e7ac24f579cbec301bf8c7389416be52785610583bf057d7acece172e60601d51447e5b2ffa6001810171d27f8250191e707182dac3839a0c668d67821dd8d1437bc674b38fe85a4eed3c837fc8c61e0d35d62b3b17a8bcdc179fd754ee2b29abc236d6acfc971be2a61d773a859e20091366e52fb60b1403f07ada7ade8513418de56901bcad3bdd12d8891cc1a729b5d918dd391ce9e61293260b87d7a774ae8fc0e97c9e7a2f92c5a8dd30ed0862a2481e959f737064e44849aa6d0ae6460512668a63145204d12b2f3f3861a33265e741050650a4e8d323d69c54dfeeb64c36dd704bd499b6e7c6640f1d2d6369ee2c1aaa39cead01b9d65c3305018f1d4c4543c37ba19bf14035f65dff76f60711a393911ed94ead81835ffd8995e8c86bfbf50a21b011ad0ba982f93380d8ecbbe4875e0e3c82be418274eb6c0f830916d91d3b8e1e93fa13bc722cd3daf3418d435967f583708a44e40a1fa8ec0d502b8fc8b3b17c6f391d947cf2eba556a2800a494bfa8215aee7e940722de576d6ff5e97fc5c14474be21ca5f2004625a3ae30a14645e6a05bd345add01b648f5083b35025f9e635ce6a5b74c029fadb65158ee1484ec9840551b7bbe217a7b6874bf71f6d94fa0f04b58b7171234da3d5ef8c0eee2240c66aaf2d02cf689c8598257dd7ece8fa8b59ae05aa8e4bda09c8539506558f95f512411031be75f9b01dc35e16f9780984540d3ffb6f13e4f9934a4abf8e4c9c84051f42f4aa564a711a69e6474b29b094431bef2ff6d8c301746974334c73060b312052cae215a0af4430ce4d0b0fafbd473bb2c332da7c079be44a60f0a74b0fbec0a12e8a9ae1372bc0843683711d8cd7abf7aa031fe1c49cc4b959aa4de8cb3773ac2c9d397decbfc8c6d3566a6e7c10656880bf78795d63860d518e757faf7ac1b4feccf2fde5b6d3ca162a9646b60dc60f42bd5eca13820c577b5b6d3f391a96c32f14bc83776fcde9fc888e6223f1e57fb6c6ff12cd7336220a97d75abbc3926f22c83425461e2cc94e7d4ff872bb4c6cb864c44277e0053382e234307e56004ff2deb70038b8f4ed554835dd2ce0a42b367d1141008445f09171e6e8d9fded83019ad6959b857b32208d75eec9981a72d690f5526c1db35152284366ff94fa7a432dcded3f501c232f1c61e78ff75e920a8c8bf952229878e1a9ea1b30835b11cb45019c44bd3f5d9349130186593e9298e5be2e47eeeae9b63630eebf2ac6aecfe24357ffc28f43fe6fa8d5880c299c5af675612c218e1d6d4543955d709600af62630a8f3e658a56b4e14e97141875f598c31d0e3a5fab40ddfe1e83741872ce4090f295dfc184d6e7d599ef74bcbf8f285b7f21623d7798509a4ca29131c10fbc9b15873ef7226515fde7be61c2350cdb73cc8eb049a4b52870dd7d769a41a7f245bfaf598953b1c680eeb871c719e8a33f1891005adb55dcfd0c9403d8a3513f029c0401c28bff27821429fa738c87d030fdc4bb89148474d3d8022a3a2c416a9955b0e0324b65315eeeccea0a79c0cab0de02af8bf464edfa32fcec0fee1ed806e6a58c840e517e7ae082d2a74c6efd714a1df7f849ebaba06e8d1ad98a960cf2420810accda0ef829bee0808ba5a392c0a86bfbd4a52955bf03574a9e449b56ac080714847ecf2e3bbe4d6203338ff0f698b61aefb265d92925f1e28764c67245f0db612dba7fad7cc141aeeae96f5aa38865942c5e954be09beaf461180da3bdc5b63f674e4f66e483c6e2ba13714224f5ba2ae76c400b7a3820813b1ae845d3d264ac8b39cb1c10ed9a8e7006c79baea6818855818e1c7a133bc78f32cf7314052e92f198451048d70d1e8547b0b394861244bf00f6b3f4fcb80eb4087784302b14e93cdd5a0af9af7a72d5da03e9e794f69e636b95877bbf83f616fa4b7f7f24f45ff407d05a58b965b2e7d3013523e16a6adde2ac1b868935e9a60d8bc4601e4660056797634614c17223233f43d40d8e1be173b05b12480969011d20d9608c0f7efadee14feaf5fee6de8138648edd94735be4c8df60c986886bdb96897c98fc80ff1db55785222bd02dcf6d98dc36499e02073d53fe2e125a5442e7c98dd7a74b4b5750e7924de2f644ed882c613f9694d16d11cb0f17a1bbb4fae96bc930f0351b41051bd9dfaa89fffb750a7eaa21ff022160222d80130d0d921701aa9b32261b275b39db301b858d9cad8d0d818dc686c0d6c686c0466343606b634360a3b121b0b5b121b0d1d810d8dad810d8686c086c6d6c086c343604b6363604361a1b025b1b1b0a7c5b5df30326c444d8b2b621c26a1b7b085bd21611d8dac61096a30922a8b5ed8720254d1041bd362911a4c4268d0b4a6b50e80d4febb68a2e3d8f30c1d927e828df28f68063ca3e8cfdf8968e26cb722531cab3cc0051321e5b79d91c4f98ecbd07cda43c631687d300ec440e7eed82531b1a7fba40d29b34362dad2ef27229a307354c11dc9bc4825a372bd9c808eb429e77f991542be3187c9103bc296f7ef7ecfb6a003933ccf9a17a637031337b6ef49b083ecdb0dc15059ff0b231a4409cde58f06a234be4cff46cd49d716e0a7922ce4aa81cd0e4fb439325501f8d467e63967dcef008bd7f3f5ec57598a571cc6ffa5394e168b9d7eaeb353165f6a82f90bbe3b61427aaf015f1c5af49d8ed4daf28c0f04fafa1a82ebaf8ae4474a60437f03b482e1dc7c180ebd30aa703d1366f194bd593693f0947939e65df8a2099f19666ac7009a86e25b184a771dcb27b0991c6dc96750da11c54b7c473f9cfa444cee3d7d9af8b0925398685495cadf9550d641b9b6f6addfd2b61b9eccd23332b3de994d4c0f37e5eb5e089cbeddc0c095da43a8b1a4723f7aedc00595c218e6cd4b4f07005f89175074e2b27f2ded393fef3fe24298862b14472ae28d3c618cbfeb3500a293528e81a20cede03b10155ee354bcd103a107e828708bc12f800f8da70a65a4a28f1ff5c7cc501d3e5508f39797461aa666f532426a6ea816a4125b5a462a0685bf49a91e9a856051a957df41161f3c52748cc777654d8d144645fc343be1041cef86530b886bb26c20dfac099d3da681793779d9cc6f2041d498b1334126dc85148b423a320d94e8a8eb405190a89566414e4dac9d090b5264527df0223db0b6643f2cd0d677ba89f7bdf60ff2a1d5b0c2207ed0591714178ad9f8113dec8c6a6f70b953db894e0cf4167b41c711bab4e1a0ade59310a65cdce539d64b784b858a3bad734c59a644a438b299cfa9a274eb0de0ccf5b65101f94a58979c4ec36f3bec9b4376aaef271f3e92ed4b11bff6afdfc443cbef07bef6a5dea3a3a8a9913ea8a8daae039bc0122052250b57ac5d332f112a58de1a7ff6644293a34e1f1dfc4c5fb4389df62eae0d7fab2b9f5902a1e6ff1c2a1a91e4073cef7984de806b97014e8a7c2ce5f398cdc6f979c93f24ca329e26c41eb7ba44dc19ac4ee35233c1a4b9dc563fb988409b1b738f573d3941941140158617672d4105e6157cbae794cfaaba12c297327ae02e5cd5f05816368c658aefd802a1086eb718c86d39ca62d43b8bc378c12799d56e54535e00c99eb3d64f80a2e1a8f943b46939d8e9f49562e69b7f083073710c342a80e96f16dc97b12b5fae4da2d205bd534851139ba4f27363be41221df64324ac4d7357609b93206dbd0a1fd67e8679afbba2ef2d856388ca520cd88129eb8da838e433707370fb2f0342a1e7c2e07295c2a869dda0957a6bd9018f15068bc2a16be400588c7e7b1b040af16afbde4492ca645d488dff38881ccfa9bc737564c8580638f5159793c647217c547706fe7b01d1a4cbd0b589937979839104bc27aebfcc716750fb174ee13f68a5e61db1bbf73115bacc35441c6a6a9d227e35bced26ae9bbfca2887976ba3d8f63dca51248b999a21a6351b6e58a84dadce75ded94ad5a9e63aacd79a59afc9441ccce58111bdd33fa7697571918c3c936b38c45eff8d1213a294bc7ced6a94e45bde3df36f03d091cff2d18d357f569e1fa9075efb52457be40149aa9d99c205140651d309244bc267783c83189c253397f81a73b961fb501c436e71ea030b92bc7c3f4b9e6e484b6711ad3579382fc2af2d9000b69772082502c12a41df71b1ddb334910b0963878b78d52e825ecd898d7daec2b2fc43d7d51eca8add8ac982a26c757f15096a9ea30cfc23f0477467dd37467db79b9879b11a17aee200afff0694847ab5d4a6d54eb04cda0c9ab890e9a7101fe7f20836ba3a90a6ac7646e55c6310eb33c7e5a73cb84498369c6befbae1cbb9dce0f342354f8e950de2c9b753bf313f343784b4e980d790d6af7bc70c8a65a984e60217d84eaccde2092605101adbc105463f5337c42e152d34346cedd4ce0782803f18c2582a57b5bee8bbdf90f1e2a8f752ebe752739772630b482f9e1d2c9c163aabcc7ee1ab789c28c9e38ff79a1fa85afda8956344bbb0bb2883f3507271db8cfd68f9ef35b8786d7125189177fe0d6e88bf078357b06142577ab4a142c3d3a80b79254ff0601874b7cc892602602940b502da0c7011ba69d174898b96305e3a8068d7e8714ac0a6ba2df3fb5f9ce3e47da2cf980ab4272e7f622ebe0f50484827d074c52d46736c535a56b865645bd1e0eebf53c12aa009cfc50a88373d269fc3f36b69021f3a964c4522ebc59bb88784dc7a6d411739d13b2850e43958c90170282ce89a7d637fff0a736c754b0fc3962e04c31d14737d834734b8d1b88e6d12bdd4ca8c2777063866cd43bfbea6e3c14ec6f51faefc84be7f90661fb87ce1ffc6acbdf7ea2c1cc8ce65300b0df4729261dc59fda289d0aedfa1b441f3fe99787edf6fcb1dc1f21009921f5c53898861963e759c4f062e24e45e3ce5fc13545608dba2370ff592e70cd10dc7d8a6225b1da064ea31899572e25899ee6d251ea97ee55dbb8f96cf7fd24a37c40d93bebf883c5a1c705f58f1f9a89bf32fc845fc459f4fc78481bc7d7b38cd73dfc2978db9f4acc09a12e50b0409fa5548ec75aceadc6263f50f6e748465fe2538da34787ca8f7d132aa779409ec2d9135c0a1a28771add07a3df03b6e0f6a8c7c87fb4e7ba1f9bdb7f8c4efce8ff9121b0c4e6588bd3825f752df4ff87d7fc99cc0c25dd3fd88ce706f240c6f27cca64efb8d1f7389c196fc3f1fc3928927607e54873c45d972d02b698c84792289fbdb62acff3a567370c81a293c19279a0130adc9c53f3a2cbd94c7a6162699bf48731a7d559aa2c04bb69e0a074850ea5fbf8e7e8e3e7d26e789d4e21ba6b56baf985fcd66088b0bd36a275f3f6b0c1254e08fc346d43c0acf9eb62e53f0f87e593a3fa886dedd3093f6e90ed1b3cdeaca690ecca9a8cc7a6e65a17a7f65935991366a05520747e7b672de39679a6590eb439bb000ef428255a0e995924f0cc156b8e201ed448318388c44a7496b6b681007b135f9868304c1513a8a9dd85b3de4fa8ffbb9189754057115b25f1ff12b923c83b5313049489d3742ed1715cbab0574142f4dc5a0840bef439e149f4361f1081ff7ce573c8bdaaf3af8984d5b81667dbcd43a2c5211be583a54a53a5c946b5acde4482a43881dec741c68931a4f8404ab8a1d13500b692225124011be7bd611d31e4a1ecd2cbdbb813b368c2a30cddfe2302376849cf0035b81cb2f5082b7813808ce2570adb431b03d05c7feabb97050f0d8aeb1c21f6cfa2e1f572fd62801c633c4641b10d9705ab6ed7d8be669c9b3f613b2a58fc84886cf56cd45d9498791991f6f356e172d1741fdd391114a1189d838e6edbd0d709b7a2339cfdfcdea0e7846acdf21b3a5a73b2b3c2b985616100fab920741f817f50517eb0c5dc9663b1d988769823950fdebf0bd847d210197fa5ced0ae4c85cf3e76f279344477ad42cdec4fa3a1db7035c40d2ee8788a82efefab7f59125b0147e449f774b50f274cd8af2339a8e5f5f3ddaef5e63a99e634a29921701fd471aae352ec7bcb3c05595ec5b031f3d3dd5594ff886477d44a64cfd1895b6c55f3bddf52810e851df8ae504022b82175dac2c72067f0947cd69168b6ffaadeef3a3e0573a16687a0e4ca1c5fe729a4aba4cc0912c2c11a10e11520b4f8b30cb3c043dd54e58df877f1a5dadfbbc8fa6fb3b6ad76aedaee4b41de9456bf0a4fde5eeff7d790940abb20e57099208f5334d9151b85cc0def73097321167a0c3b7b36fea35ca827a970dcad659012c040909c97ada39f55aa59ca466e8743bea672f63006d943fa3489bd8137a7b528bce01dff83db894ac1397a4af2e834a227185570627d4e5a9bbacea17444c641d8cba1a12d20e246894aa419d2187064afb4d56cf03220b72a45d9b625b9898d8a68832140d561e0e87d2834ea2e363ca30b0384d642c1639560b2b18a9114341d0628ae031e18d16e71208bdf11cae829554d2160b691e088152c1840291a00ac1e84426bcd62c377b03040da2814bc2e0826bb161849d1866180ea31e0815b6868ec4e703e431d0085ae85c106eb60c403b55129381d102c560d309aa60dc70cd567c700d5745c7169a2e564dc90dae65ddb06d902c376ee1a01ac45ac763d3576fb581d187b3f7163f6c0c2c1d0138b035b6f162eac9e99b8d97b607160e98dc181ad170347764f6c9c0cbd303830f562e0c6ee85858bb9273677865e0c5cd87a307063f5c0c8cdd41b93034b0f064eac1ed8b8d932f945922bf23324a7c76f47ee8d1f18b9163f18546db383a035c082c688e80bd3b9c5083ad7388ec28241d31d6932a385e7d7b46143f8f45097bcaa47913d53725eb2b156816376cf9825beaf6bf447d9c2ddffadc59e2ce118a407d659f263e7085f98cf4f69e648a102161e9d7979664c2e290bfbca1c90776bb8cca72f338a1f25da5376b6381384c0cb0081430163d216bf5a82c2984523c2dba6282fbd55960db3ab4639bb0a2bb79246d1c2c0a2320fe2f6149c5b42174db53b6cc36e3ba6f811eb537fa8c213c370ffc0a366da0c01ff49e63b2ce724b4de005921e3307f2faa09482683da1004165b100b33ecd66a3329869a849f58e79c46fea303de95b6096d6c18aee27866ad0f1da6ab8c52b564d881b39a3a46c8b72dd482c2fca0830557112b67104ecc6210340328975a52f2d904d12f634873b4f38212f001f0f743cf0367dbd2e7409db98f1e501de0a3042b569d904badb2107f4a9fa693c8303d7fe27a872589b87f5d9b42a5eb8f8fecb959f9501956035c17853287d05cf0c69fa8d5894bf188f9a250d0c4bcbd2b28685eef3b1c1e1429292ef26bb2747565fab36d1a0e23cb249798aa51258e067b5f43a6a3f550fd24b5907461208953df0320fe91e1738eb0800e49f6978ae4491f9ee7ffb3b11d79a0c86d708b16e672b0b71692d61be557f21729d7ee19b0f8fd4d78b269f5738f175ae82dac8bd85733807e2c4ce6fe0a2c009a30187432cb2d713df61dcc90111eaa693c6205c57d09d95f071bcb26c008b6584aa89bda399f6df656aa3231cf676d076ac12432d04c84c6fec89654189886ad87c51d5f35cc51aecd146787a1d86ea4714c93e20fb0ff1bbf981471123a6b79301a24d2a5517e9b1d45021af9693b64ed81ca276e9807fa185fe0748a2758b00f145ddd8c3c3fc338f648c84a58c821140bca2c1453c1b4ede3254aee5dc92fcccd7c309ed644ea4791b91e9693a6ea500e956176e0fa2cb24e6dd644c02d8a64ca26e850e3880998f818dacfe47e4dfdea3eee6651efca49b0adbbb1ab68ca280e5fae9df3522094840d61a53438de066f8745a90d456ba40ad75e8bb2f58f2662e7a98d55c6787ddc29e4fcf1c2bb22ad0ed81950eeb74938d6638c33bc068f44e6d8001f545c8be2ee30243cbea7fbdb80fd4ba791a2a466dba48edb2271014b64f1c4eb8fab1e0a7f29c18f3efcb56bda1ea89ed088fe56913114ab651c4b08835341ee9aa375f5f4e03fb789a1b1be8bd22c393b677f237e48d51f4a833b2e35cfc147d84f9bfbd4fdf0e7032bb5b7964563051b5393810cc8c0fc0f22810f7b299271a59b4fa3a160db24cb7dec9d6adc65ed736bafa6ebcdcf7c571335260653be36a9db1dc80e96b4c1bd16c5af30aa257e054dd90bf2962dacb149db45953038829bcd8ba566a5afabf1e03323bed2a77a9418ad5afa64f355e495d8985b15a0bd9e5c6c3577e36c91a09431438a939720618e6bb30f15c91b47b1e03929805d00b687f2c5fb1853e96b3da41190ba5509060e1b9f0777077d543326493512cd36dedd96ec883c39f904a010613bbd07538ab081a934211916f503ddf4dafc8efcc2a5841683204915728ddc694210fad434980821f9292cb4a0d52e68e016226e615cd1bc9b101e60f18929952e109d5240a069e1064cabd4d3cc355755c8efc21b260ab8321368458f3b23917c8c238b36d234be2bb9b8e35a2cd48ade396686693971d1978bb90e151cf115a5bf8f17caf194540339807d7d0e04b39c2a4773098e2955d792dcb181e37433a3e1a8d92d6384dc2a7f7fef82acf765f4a19289cd9878a4b5647805661e14faad13065d32f7b8b59d271cc4ff8fefa3a4d3ffaae3eb62b8e0ceb34d29780abb30f10953883bd087e652dcf7f1f43f731ea93e0ee06bafbd4e626d2409b753fb677870b2e2018d341d997f1139ced7edb07cbd047c3dc5913eee55ecfcd7f26e7e5ee5e1439934c38d5af8b53f2e2bb1e37caa52da748fb7c8dbb4e8e79367c7eda6e0e6d20257409f7e189ff31fdeac05d66e858ac9410c48fa5b5582b423b40207bcc65d55a04ac79ec4254b7d39476696ade2321d86e9e94bcb7f203e5f925b084b4eb6fda732cbe3e5cc30f2c0d47a4adba0aebc137299d78d0e8d0c84434c9e1929a190b69a90330e48b5eadc890efbb2024fa53c6cdf8b40e4999b5cb451d3ed0a56809a0dafb055b63a39b4fae0ae37721c2b7f9eb826b88972ccbaf06deac65865b0245837846d47346ba728143dfd1be261f632948561db76bae12752a7019fbf1fb5694f8e888c92d1a7c300b02e697ad73f71df0b0fe67ffbf911abf3154d199473319d8e337eee7ff830601a096dfdb81402f9b4fbbda8707408187650f749459608c5768ce0ca809ef9b33cd6e0d87dc91aa5eda6c14b93a249bd2ce92a063afefbf7a31ffdfa5cf4e00a18de1f2976b99dabcba87476e41681ef40fb555b146e9c3eedf7fc189ea3175446494db2b7b80e1cf058cbfd2119b773f62a8514c81f41b3172747c58c4971d81ab3d9ba78c0e58bc596dd9444522167bb7d5e745e1e8cb8d2ae50e67ffce3656c1129a3bd28a74beffc55339843c57c65662033afcd55db0b273e3cb6cc2d876f2ac4a94da3888fa59ad6b98b0356c48bfa93f68d736380d917df906437100e4c860c60db46ba7d6841f5a2d3d11b89ab11a9ae38befd51906f0e20c51c1751ea791ff970f12980a702f8b2671ed7c8691ea86aa0b8238f28ea3f999b27ab9ea6f11e9cbdba225efcbc3e0a715430e03b08544f1fcf1bd05d5d392f0ebc91b83da0fa59d0a10df8f38a446ce317ef14501dc7e8ea512698e70208890a3792add1a0615fe16e56c0ea5e84fafe1b6115ef4d9109374af53526a8453e1258479c3a2dd29b539b45f03c19431f568721c74dcf75fd89f6c893e2740499114173e1833b3617932d2a525345df46d7731a1a78ef1730e8d3300118a838fd3f9471056905b0bce8e49896228d02aaaac45912758748871bfcb1e11f6cea098224567d6cfe09dd5dd1474bc1b32b877ab796316dbbb02ad42065294d87eb37023db472d4130ba34e47c561a5eab106f6910c3f2f415e7b9b54be9a5534b38e564008711856ea2010a6b67a3fc4fe3dbd239b58891152713911becdcb70eb413e907e5088c046dbdaf9822d49913e50e4128489ae344cc83a6c9603240196e66b15a2adcea2d58ee95f9dbf7b713fda803a7823a3e89e9b248d0c782b28976dbba89defb31d0ac150992a4b6bed0a14cfcb5caecd6cf145d04449442438846fbfd21329051ebb20cb468c14de644b6863ac60f76d6690fc582249d7a3aabdc35203d5f097f1bcb06b6f9ab5ce18a91b08f133510cc0fffa22c91e7fc8e2698ffba2a3f954fc8f39e99043e99aa276f209cb38f19774d7a40a812e8a57891d7b1bcc4e9ca294e8a3e87e4d9ee56fa8ca319f50d45cd805b5aec51c8c5cb752214f7578ef74c44df76c0d16670f797e307199092835c675f9613248a899be97cef5948dc31d41d1b9b3328453c1fe258740feaf86b79fd29d6902618adc8e72fdb92211ff7821996198c832d4dbc258f3887525869665004ef5c011482fa1c0a93b3efd4a85a236a42939f32ae9db31fc075ccb8cf441d566678a270c889dd2e9d61767e37d8866628eb9d660a8bfb4fcbaa16b9247b74e1b84687ee66cd66d43b973c5a2cca51847c083389aa3587f0d9e388dd29fb61647bc3f7d94e1014efc37cb6fa68bceedbafd9f44f6179b63445b9b44410b4c81d6754c714a3de6a23f1b2bc6d2a8120b52cf0d86c8bfb294a7c3aa11ee0c6c29b94d52a64f880f3f1f1502a22dbd86b5c57536cbc3230dea77498f8e226fd830e1656656a21cbe303544e6ef2b658157a4a5462f18b5c91d14ef06b1958dc7b0ef7f4425f044d8e3e6ddf55d6678b322805e9ba28927e43462cf3e0d913060448b1155508c656564b0c6dd4033c53fd0e4259006576ab13b6a81a85381dfe59e8f7a250c224a5b183bdb404b2c6c2b8dab5aa6e0ccec5e5572df0a01cb0ec74ab72c95954ce31eb3eb12e709f524bff5ee5f2576fda59a34c06e5f7a2193dfc168c98f92a281a1d0604baac079a068a2caedfe9e2467fdbd2a34df48364e730dde2960ad9fc3ee415acc7d418d5adde7844e2e98a38d59eda2b217ea0f4f78fe3738f84d5c9d5aa71966c3336bea9d922423f66703abc5c5af06448c02ce7d44780b3750f26439c33f3f3f3f3f3f3f3fcb3908acb6022541a62495b0b4cb48c5402ea524534a29123dab000400000000000000b043db9b90305cc90b7d0b730b755d998c4ba5c2420d2798d226d9f6850e35796982f1b2894c1455cbbcd3aa508309c6d93b5d1b292f88dc8ba0c6128c1174085b228b514309359260c87141e32a964e6a291835906050fabe6523f4790ea2a50c6a1cc1a474b01cbbd0bbe1152c1c95871a46a8510483500b3535bb17221ebc3dd42082312d9a4d343f7bd37f95a1c6100c2975bc24db101243bf420d219893d83efbb04f8d2098f3fbb49b083fa347c1066edc08430d2018adf3f579aaa8733dc9a1558a0c32709011c6196afcc06421579a1b721d63e03004d4f08129564e4d763b79da1f08357a60ea1773f550174b46d6850d63c30b0ad8b871c3093578608a26a3923c613e22c31a3b305686d0dba172cabfe9006be4c0a0acb4f56dc90e512763885156030726c95d61264ed211fab3408d1b986c55d5523c21f2d67331be48adc3c5f8c201376eb40e1574d5b081d9c3aa2521dc4a95bcd4a881298e6fe98e6176a76512d4a081397cc955d21e5b3f4434e0c5561268ccc2e0aa2ee2f5238d8eee0236bca0808d1d638ca10127d09085797489b2ea6ce943d258a0110b737a10a253987ab6f1bab0c1011b5dd888c08e06c301376e88f13b763418e9c60d58105582a5a54d3cbb8c1d5f8831c61766628cf105b147d07805173f22c8a70e0e345cf18993bd6a5247860a89038d569426e5bcfd396bcc7cac386fdb4711d10fb2ef32d05885d7e9f77942030d55209f43aa5c9ed25b2f1847a5e238cfbac9336fd98f81062a144fc2a3c8d36ba36425f8828c2b1c85081aa7d054b88ca43fb9b6840c344c91858d09312663a30b1b5e58814629ce90dc17b6eee46413292c9b532adedde8fc4741f8d0d6298bf29fe88b82d3ef11e779fafc502c41dc45d88bd77150104f47c8294d14b934fa44bad4a5a84f5e1311792221a48aea396d21954e27ec3ff7d4d14644f90f27ae204185f89c4d1ca3b54ac79bd3a51e4de09f2faa9fbbf4c93b13779296b3245541de9830c74598e8f02536b1253b6db68466da562ca40c6531ae0497258bb4b36849ad94f04da953652a9378e249fe0e4b024d1f3d399abe515a46c24f417ac855cf27a290c042c88a58692c8f682389894fb0e8133c479ccb54bca8a62a45be11a451fa7236a1c3c41881981be9a92ecb85d8220efa3149ba7fa656a5884af9b60715a56bfa445ce2e5eebd3acae9082230f5ef2fe2ba9222e410cc6856c6a40af62536044a7e07116eb464bda46c028d4268162b450bb1ca65b6dddb62fdc7f479ed1422041a843066a9244a843b4997828330c504b522fca3e7180edc414310a66d358d6cfa746c850261f00b2e298baca0133c8030974e59d52a56789efe60f6dfdafb10413cae7e30a71cf4524e8bedb3953e98c7ad4fe4a4224708423e98aeb5ff9418bda0c4851546181138048d3d18d458d00d252ea7eea407937ce5881f6c23b7f6793025eb2fe1d1e74fd47830f5db864aa1a2e594457730bc491d8f24db46e3b683e9cb45b46988e9e4711dcc154dd35cbe66b4890ea6af10c74d2ce9dcfecec19c744747fc2c9153a4c8c15c9f4c75e414d25a827130d678fc89eb9856619243ab04627c5146038a05801234e0604ad3a5c47d481674d66f30d857e7a7896e4aa77154612582861b4c65b6dad9d3a90de6be139df488af54d3b3c1f4793b7fa7245f7fa13598b488cfbebe10d63d27004305078c1643c70500a00a1a6a30a9243a43b4a7fb5e3e0de6906821cf8eb890361a4c661fd93d577e95d4cf60acd20e79151617ea2643870ad0ebf812b849fd14d8a1820adcb8a1e34fa0a3c320650180020d3398848d7adcc80a632d7a60c73f8046190c2a6479e990ec42db050d3218ef3acae7111f8249ca8ec1143b8869d9cf75a35262307852f2de4a29a52a6fde6380512a40230ca60e77495e4eaadb72b1a20106d368dafac6dcbf279d2f98745dfa5152f29fd6688c1d387290a10214a0076878c1204ee5aecb1f84d0be971734ba60324f2594d6926779ae2e74ec10c39c00f58e0de8684019010d2e98cee45e85bd09d1798203ad0c8d2d182b265748e179665ecea1aa0593d01ff235316b1a59301a583068999ff8613b67e9fd0234ae5037685821695421695021694c216948c16844e16840016f10e4008d271c0d27248d2698f3a54e419476f11b35134c69574e95892046b48903052ac0718231c600432d0336bae015d05882392cadb6ef895e105a25185784ce295e6c2fd88446120c56a77384a02ac4070c301aa1180eb0a28104e38632cb9d4452edd43002348e60be2ee5232c59ce134d4630cfa7e89d9368ecde5f047399cb886aef944c732298e62e44b62853494f43304bcc1e97605b15264808a6384205b536755aed20184fc7ce923b2979903110cce923a80f93a03b56fa03936411a6d27f5a9093e203738987cea1b4e2afdf03935e3821412c448f8cd0e0812965be6ec85e5f98a41d98c7a4be6953ddca80860eccafa7f131fb2999cac98139a89cd38a7c9fb4f3d2c081797bcd7d5d2f4f12271a3730fe9905f16ea65aeab181419ec4f30b3f57b165a45103b3484f73b91ed1a081d13a29558f70417a2467618e215f5f23c63f08932c8c6b21e7521613aa5d140bb37c4a6d42ccd5447b6051376cc62b4c6e7721ff6775d773d01575234930a315c634afcb96217efad33c98c10af3dbe534e1b6de83c08c55984cc4099246e5f2e4cf053354615051ec44c46b875ec8a5c2dca22bbb96368f21275498d208ab581df7bf61cf3885d9cee4a964932a27bd29cce57d1edd3fe924aa748a5b14134b2a8814750304334661aed2956387dca7342c426688c22cca925092fcc2ac94c2402db82dcc0885295dcbc7c822adde4ea030e552e9835a975d53499f30c9ce47d2d6d852d57bc29c2e2f9f2ecd2df974274cefb7a7730e1e848e9b13a6b07f314f6b84897b3761ee3d25bed4447588ab264c93f3e90f9b75fe69cd84414e34520c118b242a260ce6b7172c897417db7209e389aae0d759b184f1b36453fa53a7d44f254c9b63aa520c55592ba4843982a71139adbe09c91551cc9884f14dde26e71411143324613cd5d5326ae9b3d69443ef13332261cefdd92bf54c3499ddb861a30b1b637451011b5d786206248cf1a57436cfcf4197be3198f108d39d3469fa3a5746be1c6148211f21c8b0be9873234c1e235ef8cedab1bc5a610623cc3526f462e687464a29c28c45983fd7db769eff3839a80893ca6afdf03974495d13618a93238d4690d5b624220c6b39ae87147287205f7f4a5e4262a918c214c467c995c4a410ed9fce5ab9fd2a4d0845fb25691ee297dc6f1097a810622129c74b27083ccfaf2a79669781304fd029a4f89721cbb7198020a9d2397d6f92cd7fe02b5bb6beec5693f383d1946a79f46471133484197dd0f45990f525fa42c2076384b2e421585e8ee21e189139d266d383a77f7325d7891159f3600ae92e9fd0daeb155429ccc0035ffa3c3c4d168fef704a3369b275ecc5eacb48a1a0c3b83266d8c160292ca43fe931ffb9327e0236bab0518b820ee39630a30e26cd0bdd0f112c9c5467d061c61c4cdae969e9a427f97d961666c8c1946d763f69970c5d7a1ccca7c7dcaab4c58b239c0107738d4cd77789b67f9312cc788339959216c1a42487d6158a60861bb00de6b3a07eddac3f75850db886535ec3bccbcbb26bab573a66a8c15c3ae5b6e7906a2f726c05950643303f2de77adaee271acc39e5149d79f5a452a30012669cc190d3abc93ced39557a6d7841815f818e2f1cd585196630091d3f462cfd7a1ea33298e4e5d7b41416b79f371dcc2083e9741ebda39392a2d248c88c31a04a7698859c7e7e825fe8f06286188c16627634f948a29fe09f0c1c627c8e1d38ac84c1b46e3e3a5af58cca1d16bc1856c5ca0c30186e929ad11a26ff2d0e1d63e06041eb281298f105938e27ffd5f7b2cbafca2a0d98e10553123ac40f41dcff4287174880195d3088b411a6e34ea91ced1d5f82b5e1c503fe0b1d5e70c194bb5a25eaf7ee639fb1059312375bea496625ad8cb1438c085cb1400870a4195a304911ad7bab3172d76ec18b81835817361e05657821466b20f553206f77ccc882b9422d440ad992fd8533b060f0746fa5f3e85cc1a46efa3cc9fa10baaa154cd12f05dd5d1bb2cc9243ab0c1d3bd68b9b51852badc509ea2bb42b4f9841059c3105bc2105bc7161cc8802ce8042e198f1849be184e3c08c267cbf82cf217c48c164962ad6fe635be99a438b8c3150702a858f2898b3e45762ae78ec0c5555e1030a26599161f223e50c11fb7882d126874bdeba3e6b75f0e104635f04612a23e24c742fccf0d10493faaa55afb470b2823ff86082e1b554d609ab16913e3ef85882394d8cedba10a9df7e25986d443ca5e5ba54084149304dca4955fe9330126c2418458e0e5237dcbf5e4dc2c711cc9ba293ccfc5f85d16b0b1f4630775cca23aa63672c9b41f8288229594c1f75dfb71d3a114c9ff74f4f1a7178dd153e8660ee3c539d6afab2fd058e320e0ed331c68e0de04001190cd8d10273e3c68e163c133e8460c8656f33cacd4b792408061fd54ea723285df2c7c1e40308c6492a99ec36cdef1c2954c2c70f4cdd1f82eb484b6182ed03e3080b274487f58871ad6c071f3d30976d47b14b3a7ca9200fcc49b4c5cb51b67a52b203530eddfa1b3a9ef8bd3a306704f73e69a34be42e078609233a46a867d987dcb8b103350ac2d0c1070eccae17d783d09318a95346bcf07103f3c8c9a8e8e93ccea54b071800067a47011908860f1b182b8a5750e22676f2332c7cd4c01054e4e468e157ec549cf04103c304a54a579d4eb3f19985218e450e21e6435997050f59986c338492259f58983d2be8149d3f2778c0c21cc45d4a5927ef8abcb8e0f10a731455d1f76b39c7f97368690e3c5c61b4db3521264c4e22d94c82472bcc93c33a927aadb56cc9a1b5da85072b8c6d51bf4cee5ef09479acc27c597c23950cd350b11ccaaa30adcaec69eafbca8aa930cbdac7ec3baf30f7a0c2209f2161725e75994f61ea9cd31f75d77b2b690a53e7f0f1cad9b1e5b152984ec911edf15b97fe2285a983f6a43aad554a1a8541a4ef1c7243f7db1a468b8136bc7880280ca262a14f8487f4b90f85413ebdc37b8f9eac0d8ad4725acf097a63b505030cb544787cc218214faa3295729acd3d61d0bb2fb516af6a5c04061865e8d8919d304b98b9f1bbe06b41597870c2702afa25b56c5a113c36519ed4dfa3bf3a449a305b842c29953a736891ca8441e7972ca146840ed9c761c30b0ad8f0c084e1b4d9a7b02e42c50ab98439fcb68898291756324ab5c0dcb8e16109c35878e6989fcc3a951c5a6424066e7471e346175dd8f0327474a002762ad0e20a1e9530a41c115a77fcb2fd420943ca6a42c52758bf79e70b30c0e824c617a4001e93400f49982c6e8d92ffa583a930163c22610e13e926629f04b123248cd73b1f9f4599675be8f108534ed926a5e0ad113ee8e108f56844f160847a2c425be0a1088f446421e294f64b3bc7d2830146bbf78d1b5fb40e2fb22e00abf038445a54fd8e903827cea1376e84513a76a060141e86c81b5508f520c43f9f4475fa0791b02d9d1d796f4f108ad4ed0b77a2dd2281c8e54b8c0c395d41f9020f4098777dcebd3eac4c337e24c605fe6048393ad354268a501d3f183c5690adc831299eaa0f26a54c629ade98d011e2c107bf3fdd945896186966c0630f8c7e0e3a1777ef2a7a30fea8cfb2a32abf4879f36052dae2485371d9f354f0609ea47c3c04f927f3447ee0710793699e782a5dc93e497630e9f3b8a02c2f5bce5d07935e8b977348bfa172e860d4cd7c1d355e31ece581c71c8c576ddb6ddb312ce92107d3cf49b418298a83d9739c3c2f5984fa16ab5ce001074358b318a1ecb28a6c17f0788369ddc27492694b925f0e2d1c63ecc081e6e10643885b275456342f4ec410a305ef618ca1c301ead10653e5575a7cc5da09150f369884da7c5ca9770b1e6b30861297be2b6b9a8dae06d3e9a4d457279da6b2c300153cd260fc946743bf538edd88ada0071e6830cca59ce4560a92948c1e67307fee9cf64c95c70cd1c30ca670ef9284c8dff70873282a7b8f3298b4b5d29d0ee15d2f4c4629ad117890c128233e7e89ef301a72adb540087028c0630ca620eef723e80822854a0ead1246ebd0b1800580014687b1811b37ce430c46ddd1cf7ccfefbeb10a50c064908102328c4718ea86043cc020028f2f98bb5312a526fd564c645e40428647174c1f5e59d4a8b10a3b71e11887c716d2430ba74a48a2a1f131a35a95147864c19c4f5aa6e68bab8a96940716cc61654988f0c9efded383c715ccd62d7282e7965910ad6048bae2a9b44a9469ebeee051056396ac4d1351fbbf7c0bdec55880158e22838cd7e1de561e54304e8e3de341a4589fd814cc29bcc547436d09fdab3ca460f6f3fe947e59d4e937cd230aa62e1129173f8487e00105934e6772abaeda6b929e605223bb748a641d9fbf130ce947c45aecbe0986e039889c3c3f4a4b9c0946bb50196dba72ce464b30a72dbf3f0d39425a90128c213bd3b6262809a6bab754fd2952b5a99160bc4d0fb22e2312c47c04738ca87b49977812e235823945cdd7a9f9eb78b708e67e19b548d5e7e95c2218466269e4145642daca10cc9de39cb091d966e21482b9d773c54574df423208a60b510f3df359391f08063d15f3b9eb1f98373547cec5922732f48141d407ad13a7b2d3df0383b6a033c6a35afc5becc103c307191a4107152e5ee5ba038f1d9854d7430813ce5d769d81870e4ce221eddd6c4e7ceb7268d5013c72601e25cddf52d8b99d706050725287d95d2af9d20dcc6341461cf5882daa640353746fcb7f3a5f0373d095e58296ee3ab57bd0c07c41aeee877f0bca45b330874fd1375b21598c2c0bc384689f6d42b81297c6c2ac7773792f291d151658984c3b425a3d3141e7ee15e64ff14d3c25b9f12757982cfa9f4e69c425cead30d94c50ea5a192bcc97254ee8a07222de641586eb38d14665892acce9114d5e478ecab2a7c29862caf42ef68a5b1615e65222e9150fa5272a770ad30749aa6355a8078f780d5398eae365c8a8b95ca3540aa355e59b92959f657b5298eaca929acefb288c91e2eb7e999feafb88c2a415edc3a5dc1e77e95018f74fcc54f5add5433d354071353e61f6339d453e9a0e1523353c61d0aba4c258881a62419d306788ef9e84942e5b9c30e558b2b409a174a8bc09936be71cb3a1ba19499a30793ccbe1eec2250d4f260c39665cec889ae7c8983085b90e72439ea82eed25ccb332772a784553794b18a48adbab24d3a52bac84e14f58f077cffd5f1f254c3a854a0f5325dde5da811e0c3526619e7ca584a4530e2d31bee81dafa3d4908421756e8f9f3a464dbcaa46248c77b94c4b2a1d489882790a8b63a9d32acc21a8f108e36be80ada9f15bfe38e30bb581221f77c700b320fd46884298ff8a5323de1c67a4698d296acbb944256faa04518d7f4c587491e82f228c2a4e625bd5af4489013611042e9db383db2e2d5351061d0d18d5ce2b4ba2b5ce310e64f3a5d9efa6ef708d7308439f4534ab9ec92441d3f90386a14c27c93dc92b2c8a972d9350861f090d24558b98c177710e6887a6a94526acb4b158459f65ac289100f25c14098b5e496c5beab1ab90061f020df29c8fb0793344fefa5ea7cfd42fc60c8716e9dce534508d21c8a43c70e1490fa52a30f89a464b1439ab152f1a1f1d44fe35b9d837ef70835f66035f4506e301935f2506ae0c194dbd67d7d2997bb647b8752c30e56a30eb9a3061d9618e2295eaacd0c49cda1e45032cb41e95ae7f34b8d38c0e10d35dc60c8c1a329b517133e477268951a6d308a0a9153f66c67a3424af9a1061b0877fdb983aa4e9feec2011ab061c5861a6b2835d448839d19775d22770e5a34941a673087a092a88537957e3e6630a832a1df6a3c0417498d32989258a5725d512177b66a90c1209fb79329296b5be9320e33a0c6184c962a17b27eb5421583215964fb90440e234a0f832923fec8fcc8c9e3976030995413f2329fd792be6036256221c4ae64fa725e3095e7535af4c456899104d4e882792376dfa7ed082f3f17cc294aa94dddb128a22d186d3ee354c5498bd5b56092f3eb19123b8ee89d0553c5cfef66b609a5e21a5830c9ca57cef94d4feed5b882f9ecb5472f2e744b94420d2b987462478be7137eafad82e95489fc5137c6bed627d4a082399b521fff0c5579255330e508faaa4b9bdc708914cc5beaed34e5ad27fb6c881a5130c972ef34e2d3dca4ae40c11cba84160f2164fc8d97851a4f30a5940de65a3031d953158cdfa2bdfda48c127a2a186ef29b4e16e47dca4fc1fcbda2a9aa1242eea56010b23ea468b3eadfa360f4e06e93663334475030253593ad2b9e8f799e60b4caaaea61dde26e2798a3d9ee95769b60aad53821ad3e07b532c154f2ba3627f98ba94b3088a98a4a2b2a65a8a80443aef0f0083964480b26c1185759fb67b2445910090695211749298f6012251efa3bfe3d786804d3a735f195ebb4c72298a49c4d925ca63f494430873ca76ee45be2e8433004699b163e470886536f73411c0483dbbcb85d4a5a3d0c04d3ae4e922221bce97f6092f922df7d6fc2ef03a399acecf5ea55677b60b89092497c0f6ebae581e14c5dd01e4af489650746111397a39ed6e6d4814179102342acb96e990353ad5cf61121d94f38309b8e7c89c8bf5fc21b984ca7fd855fa4aed106863b0b225f24affbdc006a6050916b155b594d6403a08141a794b5099ef2df9a85f94a9acead59177b72b2308886a44f99a42f25170b835fcee1fbddd67e82852928f5de7ee9720ea75798df52a8c9ea6e51f2ae30495321fd2f4798ebad30779b30255becca73569847c99d17cf3e428b56e189b3b895f6518541865013d74da93079a6a864ba3a94b85161dcb0dd10d14376b9ed14265d36de67e725c536539883b69b09b695b4c7560a93b4243d6ce5d65b6ca4306986e8cdc893e2a6360a83dc0eda6a219f1aa589c254f154ba09f5dee15928ccdf21c7fd7039478b19284cee41242d7921cba7ec13c64a491e9e52cfda324f9862592869bab24e185dc42eca950a9e943861f8b3937b7a96ad4d9b3079bc9ccc52f8772f69c29c42ccc8ee398def9f09f38bbbfc89f8dacf63c2107744a79689faaad725cce2c154dc557c0fa3b284f12559a8a462a8495055a264316ad2cb8712a694f6a1174a9b9f6712a64f2d498e792461ba20d38478ad98e444c2b417ed5b2f05130b43c214ad4432f72ce14c7e8461258b1c9d1d6152ef3793a32b5d781b610ebd596a322a4d5e4698e5e64c84761761f2d60959bbe3a4945584c9824a2e369377d79208a39b277ddbbf66722c441846b99ae713eb10a610512a33312c43184ead7c58e844d3b12a8439ce8776c812b13f5684305ddd96490f7ee62135085308917216248c6ba4046198f0ed9d4e84ad452a1046350fd1f361a9650284495fddffe4ff0f26a53e474e9dbcb1fbc1fcfed172f0fc569e3e9884befa8f544a08a9f3c1a0be751f3ffa45dc8329a48810b2280b2a82f4603c194b425f48bb521e0cf235cbe782182174f060f60f7a64dbfb7ad0dec1687a2b4f05bb1896dac11cb1847ab31b97531dccab9926d7d1b62b4907c3a5ae389d35f77e0ec64f22ec541c192d3939183c87784936be2a1e07c3cc8e0a9ddf720e1c4c522cff5d10f9c4fc0683274f35498abc5fdd60ccf7d6f50e5e7e5a1b0c6f31da62a7fd8fc50693a98b5d5297aff50ab4035a0dd0620da6b8369f6a3e77889f2fc4f8a2ea91181728d58231ce3e6a1d0806188f703c12630c0b68a106d3da2429492b3db5d49206434ebee3274a87701119636020c78e2f3c906830ecbdc4bb94a4447afa0c66dbd05ea15bce3e8b376e98c124b36452d48bb9193187d60bb4288341a95a917f11055fb000c950ba71b12e095a8cc124420c51e7f145deb939b4d6085a88c1e8d98476bb896bcb4b0ead42042dc260505e975427eca4112139b4c0608c14dd36d2bce97a3487d6174ca1438aa269ee1242f27788d136042dbc603871baddf5bf6288db05432eb7a03f1b4954680d085a70c19c3e34cd6cae554ef4646cc190937ab0fdd9329d4488f9400b2d9852bedcacf55829b4877ba045168ca22d1b93a45eeca494430b0ba611f74f5b912a5410b982314c8b8cd02d21925273280cb4b082d93d66de5de6a96cb90a260f2f3a55fc6c22a8e0f2400b2a98de3c46929299ff51cca1350573a9a4d2d362cc8ba839b474a085144c423e7838f9133943290a26d12d2967534a563415e2400b2898b2e4634b46b08b1f22e30906d392bfa408cb6f4232be00e3777c91830538767c099c60788dc9f36a22480e598b26184c249576499e98608c3f1d4f5d9dcea7db128c727672d13cbcae6436d04209e6ee341639abc4f57c39b4080db4488239e88cfc6126c8c96d3312cc92b53a5cf676b39c600db43882419ba70e23e1432c39d70221c011032d8c60f488339373c5cbba96a145110cf2567476b7a70eab12c1144158e44d490dc170625623a96669deca022d84602a135a41684f104ca2d29b34952c6ceba605100c4af256b6182afdc5dc8b1f18728a55d59ecb195b0b1f983dae9b1059630634800c2d7a60d6bbe42972cbe520610b84008701b4e08151440951714cbda51196b1030561fc0e4cbac43556a4e724641d9836f77d3bdcaa3de93930c4ae4aeda633ab9e8303a3ecba5c36adda8e90b2a2c50d4cbd13ad7b2b6803e3dd7b7e9178e5d0c2d13bc0784fa2450d8c9e23e97ef5d0125e177c41068ef731c4a8fa2f74ec602d68605ecbb5fbe5f919083e6661da4ff149a42bd1294cb230d6b7c71ef56f2ccca73fafa948e5a7820a2ccc2971523635fbc123f60a2b5718f968457eb0c22fb52d4aa7be5433aa2005df00f41d28e35598544e27b61da65246ebd0d1a90ab3254b62da5482f5376edcb871e346710c3e52b11fa8d08f53ec8729f6a314a54881a3283798031fa2c8a2f885b2ffec5d0ead120a497c80420054f8f844294f24f9e8c47e70c2343bf223885c0f99e5c7260ce925c73591224d1825ea977925ed3e32618a3ef271ba5458484a78840f4c98e349b952d91f74e464a9aaaae2d59278841401f8e0e31266af57d93f5dc994ecb7101f963058673711cd8a641556c214565295f6d35df3154a98c6e3f677927cf25927614ecae2a78efcb15629b6860f4998a35aec8fd029c26cad868f48989312e167d7494e9243c2e02b4aeb484a23d3c2fc0853484a922ef1af5ff372e1c31126d7dfb514793ea4a53780034755f9ab7e34c2a435aebb3e6ef12239b340087084e0831106392bfab7a1c74c9b6edcb871e30336bab051011b5d6cc0461736bcd841860a4ce00bf877803fb1527c2cc2e423b15f4bddcda88daa08c3ea07110b7141899c1435c44722cc1d4a9aa98f93453dc515f8408441a85790d4ef761eb239b474021f8730689d1c7ac7d73f4d7a8630c912e33d4207319dbd1c5a37f82884e973a7c8597452ad5557e68310e60aa22dcacecbcc773e06611272e6478e49b69d7c7e08c22cc1c428cb57e7d0aa127c91c418031de22310a6119f5c949ecbcaf00108d344cb14e5c1f25ecaf03118902e50c68e2f748c6182ae001911b871430e1f7f30e7f83b753b3bd5c9f483e9c56c73e4927a7f3f868f3e9844defcbfd8eda7a3c5757c307fd984747bea3d94f1a187fbc8c3071e4ef071870f3b98bab3c79bddbf114a99434bc3401f4883c0471d4cc9537e76d0952475300a1f74307c476fcd0a5e9d4e3d0773acf45b49de45c8ae7cc8c19c239ec59b10f4d6f97130987ef91a2bafd61a4de1030ec6d49e305ff1fcc0c71b4c4245c51391eb59547d810f379853bea47ff445aba74e8bf0d106b36c7fc7fc10e1830de6d8ae3f16c6b3044fe7d0da127cacc194a38e5d8587726891812df85083dd488321a4ebb7911ed53c943ed060522ac4137b11c9c27f39b4cc56f07106a34aae8bd748eead5d0e2d523ecc60b8bca117b2a5e8d3ca709611cf419bc841962a0f1f64308b929ceea2f4942c39879681f131067392102e27219496dcfe210663968892f3b1164ba6a44cf01106b3e8ecd82147aff996c060bcd7ce31ef39cbe2ff05d4c7ead91ea1f78221daf797b8ff127d7b170c397448f418f5a34605401a3eb860481353d2e965b914a12d9854dad53a9531f3f368c1381662363553f4083b0be62c216a6ddac7a4ab74e18fc35fc7183bc8b00090e1030be6f32cffd9cc662ee86707d1d1858f2b98ae2628f5cad6bd11cda155868e1d4c820f2b1865ef43754e57beaa0a5e0529c031868be0a30aa6bd345bf193914ddb1c5a0db871e3c68dd2c207158c7d3a2d9276af1cc99942a9d5249b79578a9d31b12a45b6e5ccb61ce514237030299f91ae633904e5f21b4c9384de272f49e7f6bac13c7a5fd4d36e83e9520ee993ecbb1ecbb2c19c449caffe71c927b26b3097b2c8eee9938945560de6f70ef2428d8ae1a13498d3d2e51115644754140dcfe5f568217c67309f0e1e6b45c65e546a0673ba203e44db74e5b70c86afb4eea04b326c4a07710c0655f91f23b622622606c3588630b3097e15296130ca08d9ab5727180c263f5608f3f98241afef930e72b2aaa770e105839bd2a75e4dec824944db63c5885fa121174c22c92677bca878096ec160979fb44794344a490b065de17ff4f49ce83d0b8905635c9e1142dea8eee80a86b3b4353a479d1ce559c124776fd2636d881aaf0ae658d6767d65b2e7a682f1d5439a5842fecbb42920175230e9eeff9deb2d0a26a53de759c996ad7228986e5cbc2798b32d4c8ed1a25fbb13ea46185c34c1543a45ed22775b9c09a6531dafd929649120c9a1a5e3cb68307014187d19e06209c62b9de0a5ba7343ff71e042095c24c1589dbb3b7c091dff215ae00209a69fdfeff41caf3b133218471d14b83882e1949945499d9629820b23982f9bef4f1e0f95d46705c145110ce6d6dbfad17350e5173e70410473d292373629cbe5b447072e86601e9db7153c7e808d2e6c38c046170db0d1c506810b21184582e4121145a77bd8858d2eb60c2e82605c1fcbcaba2176470b04532789a15ea935f1bd1f18cca4c55e79644df190810b1f9853c8557522268b9fca450f4c7baf272d87ff5316626470c103d36a24115447773db379c0c50e0c627cb32e76c0850e0c29eeacf2e9cd450e3a797376ab6effa92465e0020786b495761ac954acb46f60964f2a89c91739276e0393c872498930b935b5d6c01474c70895a95e12547ac0050dba9b24232ba2e634ac599c83adcad6b59da4ac11b690c50db688850eb68085f9ba2b4893943cba9eafb8938a676f8798cdbb852b4cc23d6bbbd3d7832d5a81c9cb8c76b95b0af261a9e35c9da57c593f45cab0052bcc22797564464a255cb40a7307afdc4e39d9c863a42d54614e79e76fd515f2368e4009de02376e90b1452a4c15413b7df874d926541864ddff68593bd3ff29cc663927eae84d61d2389d43089582e5be14e688e35eef41fea89e14a698a6d25c5cee18a351984bff57ae3849440589c29ca38733b7cd4841140a935db66c4a10280c2228d94adae779743e6136b3ceb5355599174f984c4a501dc253c65b3a61c849d4d4793271c2a0e13b3657164b846913e6d8f94474c89bce9834612cc9ff5f17a64c9857ac6274a8113985244c9843aef787e78e9222e912861166691b7611f4b784c934f43e88e4f61faf84c93e7e57c442dccd2961d02ced10569f84b174ac0f3a6478278f248c1f3b884d4891827922619e5461acc44bfe5343c2fc31717e3c8f30bcd66737f1f94dd88e30a57ad68c8f5c177623cca1941435edb27b624618d394bc8f7c2a4adc45984ec4d6e9ca5339a88a30b6094f59d9761a6a220c26c2f7e5583e22cc7521c4ef201f2a967f0843ce53a2847d6f0893b687f578f57ee2429883cc1a1dd74b432511c2ac3a62f205916f310863bb76ecbfb80e0ff91682309f8a65e792238418fb1681308893a839e2195a5adf0210e636df5691276446eb5bfcc1b0af16c95b5fc2567c0b3f9882c7db9517b116527c8b3e98459f7a9f74214e8abe051f4cd75945948abc1443df620fa6b3cfb2a65c2ff4e75bd8174b3ccf8361467799b430d197381e0ce67ae931b4a4d1d31dcc96e24ef72b685149763008d1af5b6d1fddff3a183dda588eed7430e414f5ed4d55bd85e660baa046fea5bbe55b0ea6d9f794a026feb738182f2bd43d75e0605271f1f0a47e8339a5bceb0bad52253798e34e1e21c279909c369853e48f0f55bd50321bccd59da327e556e1e2351867d3845259fcc4bb6a3077aaf594928cdd3ad360f64ae92dbe7d5096448329d48a6e24213a8361e457df64ad24214466306d978bdcafca6012b2562fe907dd1732183b47de4efcfa121234069332cd0b6b9fcb845e0c06f5da2517642ede1e0653f0997cf36e1f75301844b2f760eae677a22f18438ca5527f15e6e40583a5c9eb419f5d3082bcd456551f2e983bea576ed12f13e9b3059352bdec22e6aefd1e2d98b259d85f6fb3609caf5575f7327d27164c17e249d3bf5faab62b18ac6edecc3c248dea58c12c5792424afab72d75aa6092399563d57b4f52870aa6f1bc11715f4d89c99982e9b3e3e4775e6df7a560d0fccf213b488adc47c124b4f34eea4eb524878249826a27fb4b1e6ff4049399f03991171155e404a3e93c53bf222b554e134ce9a5bb32b622489709469b7cd9a936b4057709c6f77c49217cbc8d5409a60f23e242cc49307f270f22e5c86fa748306557588caac81a9623182c9df008293d093d8d6090bb586f962c82d9bbef674545634b229862a7bc3b62db637843307de978f1f6c8233221186fa425153d160453c5f2b812daaa7601c154229efeacd23f307956c890798f2b91f68121a924e31d44ba07a6506aebe926e25de281c9f6d243aaf2f7fd7760502522a775905417d781f9375efb2ee4b4a6e7c0701276e2acb5fce8383077ad6cc5741dd9a31b1864c57955dc0606f51cb7b2a57a54a706e6499d6f64c549a1eb2d68606cfd30cfc2f0933fc8139327f2c2b230f996a88f34636110a34a7da59b6c238485d152ab67750bf9828e5f613cbd26cac6544892b12bccb25d137eb74e8818b7c2545d4105694a75569f158620742a7527fa53f65598739eb8cdc8b5664815c6127fd1c4051791745261ec48b2737b0e2acc73136e7e445bdd730a43c85ed95f3e58f0b429cc1a415512c12e8529b946ecd433e2634c0a7384f38bbd1cdffe1d8521fe9bcab92a2461ae280c22cb3faaa7d97d341486ff944c6c43a9840b288ca222c8351d2384b37cc21c62ee9707717154653d61f0d3f9729fb690796e27cca7e299e9b5fd4a6e39611c9d7049fc269ad8761306f5924e789296f6add5842129f53c15399795da4c1843fcacff4f887f92c58449d5e5d74a7e09b3fb4cea0ca54ea7c712c6d3a9535d48b926e454c2bc365ac6342d2da829611293b9394a5a87a727610a959d51315ef5b6240c96dec1f298db2871240cb953d4bb2843c2943ef39e4f7e16d3238cab13fe43ce4ebb144798ad533821674ddba511a67422443679a594c90853c861524ad339a91c2ec2e8494ce57adf5baf0863e55688fa9d26c210ee7285fb0d1126a16562debda713891ec2fc1ad725c43facc91086ff112682382fbda5421843fe7d9c539d5813c2e8b1a1bd2372f0941f84d12dbc5a92ec283217844136526565c9ae190a845952bc78adbb97e40d089388fc96d3cb7f305ea7f3368b1fccc183eeb59c132fd807f3f79cc80a13592be68371478a4a16477fc5f760d2e55e6efa7b375a3d985fbe2c893c0fe658263cdc8b07e397976c89bcddb97207f3890b95dca61dccaf61490569d6c114621aca7ad4eb7f7430e7f710b573fe8c797330e7a8cadbede460109174bac3cdd8290e268dd1d93b9c9ed11a1cccf9913a255522baf306830875d56b153798f3e4450a6252da608ccb3935415de58e143618548e27d16623474f6b309fe8492a484f73755283d1e2a53209a3e2b29406f3c78b8c460a7ad6a3c1584abf2fdf728aba9fc1a4d732526d6e06b3584e91c3b9fe8c5019cc55a56d821a9d9307716dea7941c9680ce6f5145641fb9f9d480c06612e9ed49de5dd270c06e9c982c7f224180c2373977cbb53909cfc824174b490e9a283053bbd604ae726b2b729d321ce2e983c9698f0cf2541cac905a3eda5b7683ee21ae7168c6ae13e24fda616ccbe26b73d55e9f497cc8239c6c9778cf928ae25168c712ba34223fe25555ec114c92cdd64a88ca8d20a463f3b8ceda8946fe622611c0a0743815018080805d54d1b631408002028200cc562c170a86cf500140004372c263c3630202e1c1218161a161a08c2c150201c10854181202810060542c1602022d0c2ea0030763aacef3f044b870e0b54e00cf581fd7a02aef87f1719afee099cf49f71848b6ac740392efc3f37f0c8453a7d7403de00ab28bfbcafb2307eee171de7bce471a0feba18d1f3ba7a1a789cf4f97f405e9f502b87b0b7882c59839e402a50385fa3fe2a2a708c7ac3ea2e18c305ee11aec77cd036b820b910d271d132f9fe2ba882a3f2a19d16d06b8ecbf131c900fe481686fb17c02a5315f2380c06501775fbd181979fad95463f34a7a0167197f7bbea2a0a229d676be10028897eade2bf30198c925d2889d5da6bc02abfc3ed32372d800ff696c628ac6e34a86ac27b75fdb9075e486cc9e72e1544e57b6dc6d4581d09132af8475e7a95c973abd9ec8a0365f490a31e4cc404f4c383db9a08e2d929097c636198ad54bd40a05ec6efced63a225ee3fd2c3758ab017562d8bb973670e0b77b6e4c9fe05d59a932fbd736dd152a767c29a980362a424459892da5b8e1f4ff5e39e37206789f3d107dbb09271310840e6265abb1f788f1b2677d0a5c7224d80d2fac2de1c7c572d248add8d9b94ae14a34b5ee90237396f0549fb38f8fba7c67651731f5fb537c65948a215cae5b7b415799ad757e700daae3d039aa9a7f23db55ac4158149e50f0a41576c33a7c85fe377e561f30ed2c5719fa95e200e26835f57258d588cd8eed62f5ccefa1311699256048f1efb3e5b611373044861944e84259cd4c171b3cec6ebe9139c0ff977a998ab4b1106f0d57c5423c53b49be309b169f64e1a3e9c78557c0c1a9ee8872008a5552c941265d8f9410701c2670e0811bebb02fcd323a56069a882c139af3e6c29b00aeaf40a5fe01dcba9532b938ae6e741f44ac161ae155a1b6e48bc9e4b7ec7323bca98e01e3af01fe0281888a30e525bb9cc515244fcfdf09d024d3dcca2bd649b23a1749d89fde3a29e5e4969ec8f2f2081755ec434c15de4b566954061a2eee8a49de4b59dd8b60f2f50510af08b9dd595f1b0515ede0b28cd138eaab5fc41b09394f0a9b1ae8fe61d2ef6814e4e73795387edb269f4f528625f90d64fc2e1ddadf3781dc22296d7ca882d4111c2feb8d327e9643bf3f153daacfd072f631c9af939d90336644360a643980b1c38e8b202863ad9a9afe3ba8be03e1ec1ca21f7be0c17068254305034a1e2723b7070ad4edcea3056623ccae37f9da36f8b048a241fe4095f433b62ece0413009d458022fd3fc33c40eb6a92c6c2d44edb0c568014b3be9d0d7ab39f8f8a117d9d19ddbf2d120151181227184377f2477f6ca1fd1c13ae47c1fb5dd24e16774d02e48edc3fbeb5481afd4c9bb4658c4ab68a78a3a8eca22e6cd3d3d12a722fae69d6cc2554007ead81dd35d1d2d386cec1b1e7399f084b4946acd72ebbd5d039b54661214311cbd7df4f681a4745867affc111da47658171c2c9ce355a82b6f98e0d4f681b9e03774822efc99ac89dea93571898ae829d82f7a9bc6fad8ab765617e7d8afeacea9d1638a0e8d304e99c186d0549630894a0563aa78014325284ea13782cdd2ae14675ad9eb202ee80ecc290bdbd722ab993d12d41a67a32731dbb8cc10538a656e8832c008fff62ae66a9912929a6978d6613590962dec913818da0788bd85e26c827968272f2acbc16c03ba11fd3a8ad06324dc057e59f7e9c21f430f5b2c014bea4ff08d335cee3544bdef272cd79a1ba9b858e24f9904442084f8c9f3e0c2a75a25513223123a5ee6afe8a4aedc1d5da98371806aaddb24648abca28b66606223f4586655e2211733396290bda3ad4ed1dbda2e3dad798ef6e663dc11b42394ca737774a58ec44119585e1ede5d533fc234202250134778e7afe4c81ef930d588f5eaae0aaa6fb1bd611347821444000a456fd4460cc49af0ae204ebd4a134c15d2a13abc63ba2ba3a439ca128399ccda5305efc3e8cfdd309fd5bdbbab0c2b94150e9de5dbc5fcfb708311c3e5e73b5bcbb56b47723a5d92c08530f1d311452728b111d68aca7bccaf90f848d90aa5e54eab4b6e86957c2efc806c508637a66465eccc8b72e3c5ac3a4633c52d5ac5fae5bf5e8210f3030aaae834fd54a08ef9e91dab0198d38e7c2044b03d3f98e472ab284f03602ea7a67d150a72692135c8152717bf8d0bb6bc89869bd4b115fe338f9fbb72f092a70bf0639c39a07a9ca5ad81088047a6f0c39a7ff592c98a2fab5254cce82515a1ca7108144619d0a520fb4fec3ad7ae654836429f2a22d2bcc10f362a33e8cc08430c89344ce28253d02227e6a00b91629f08b6347b46f822f5586d20ff97e25bead968ccf32d4760ce8bad9525644e00c687644875d6262c71982094d50d228b74eaad1d2ff376f72acd2e9855624203d91ace3aa4b4b898036fe62f60dffd41a83c52748de5d27c7e904759783431ffc1112b325ed6d99178d8bd2ead221adf361c467232cb4fadc1626a10017cd4b4d1210ede70fd7f836b03f1c7829ce7201d9c2f1aa100fb2424fd42a86ea8332c8d9458ace43dd900fe9c4bfaff4b46a1288c54b6639e50d07ef7dc998651c43a782733a53bae5b2a41b63ade885a505a9198ceaa72cf5f8c3fa47f38ff9161d4926f34dd47da0c8e64972658d977e12629c24b0d5681c0134801604e5c43424ec097c856b7aec6c865ebdc9e33ac111ab44d19b3276150b875d94b39cfc4356bbc7cb57a1026974c2996896ef38dfaa2f8712132b5ee65526f7b908031d7b9162f75e4bd100cb15f3be58c2daf08c2ea1e285f1d7d3285eb416d317af8d1574adc9d95bd29e6a2749c6a7aded8b4efe6629dd82a75e0a62aaf875b379ef080bf14a5aa8ad1a7ee6dd3f8483272be51e114ce0fa53cc25a3ac78dd737b8dcbd44b51f6f06b742ee0915f45ad9e2d5cf9a55fce006eafeab40508bc3206235cd22c695ee17ef41f1ebc0522a67ddec7377424e808bae436cc6c6fb9f267c62b3256d66c595cddbf58f0ee59aa15a14532004b7cd79e226f71af871873c8878f3bbdb7dd368372f2beee6842357e82a217862075132498144615122a23ee13a664b9118b13639db470db94eb654bdd85937c34c0ab8ca279b2fc36b1d6a053b9ec409bfd4e161f36913a1b9ca41ec51f8a8ebaf9f2e0730de8548add5fb0c1267ea8d187656f76660a3182c5b322c841ac690d46c5824ac82bf6cc076bac2257199a1880ece13b64bf372f6dff55cd3fa3995daca55b6bece351ed7ed6cf6e54d8be5f45f010e7f1bbfcc9031b6043c0fb92e280f979dad768028ee931a1e1fc4e434a3e21b4e2bcac621e80c83729f90a20a91a1100becc93712353c605aa476117c105a6926111f8dab645d45fa782d8880e977c34bedeaafea9eb88558295a8d5a572789c1a44b29ba2321e9c354b1b2389b9523501a27ae392f0fb6604d04fbcd4919e64460b1a535aa0850a48e19c4ccd1015cdab2a80e4c7d0ddcad650a53342f70e29eccca81a65a705fbff9464033ec5eb4bbd8c5069c8b0531878b1e640fe10b85968a42efc3f28d17f2b772dbd4efd3c53ed47b942e0ce450f1814214af9035d5495f5d347767265f64ee57dc7017a4d7c0925d0b84d5ad4749a899e3894ba0cfb3c6707ba8c1c674784d95ca95b07906fdc4bf2da1cc51af9ab194518c2efaa8b7dba659d720424bd4d9bd13864f03e6dbcac62c223ab04a13cecf8a2530a548b9442397c8df8bf225abc49fc808afc48130c6d7b0c687f87fec1133f4be8ae901540d0d5283417a2b5908c06c9fbda990c1e9d3b026ad671398aea3edeccf4222fef8fa3f137ebd3a36bab1de42d1d90b3a19019a9f2849d3f54b9c03c47cc143696c202bc7e6bae0605e1d9749d840686e2230208108f2328ccec5d8cf1431b3d071b357152927b24f8570146dc175661927142ec972bc9a36b0d1a681a2a2fe70b1a80726d14a0ddca771d80ed6aed24a4896a8419f491e921c9ee364112f880ba4fd5ef183dd523273de6e583bf2abaca78bc44a08ae18bdc08dbe7688fe0900b350b4808f9c33a0a46882df5dbbc52a296edd72edb510e1ec8cefa489a36852e7d76a04dfd8254a0e6ce438da4e08c42facea6c0b42096a5653848dbce0360eb04d65d8d3974feab8fce68c43ebb21e51436f88e0bdc999b53648d0eedd5140ef19f4a5e35e724bb05c53a3c1282fd5e5b15b05567a25095baa23e744c731e00ada758dd522cceff0bfd10e791a03e8dd383855f9fb68fb7f48b79149cd414380ac957470296a1e30af17b11a2158d9f5276b15eb43b2f3800abc1dff4d500e55a7e7e6339b084a67ec40a819b81221b15ec9f27ad4908e43d7205ad2dd36aadd9bcdba1e5f618f7cc5656102ddf5cda4513c177a91bedcd7685381a645461a1e399b75880b928a94e733d0dad7b8add1b6e3f23d6a6107114d95d81417ef4440c8b96311e7d03209c09ed92da55a5dee6cbca5352dc6a3d1fffcfde11219211450aa8de77cf2e309d6d00fc6629c94c6388b117fbb93f9c5dbca38e823b8deb464808b79c814f01cc2fbe37c7e7f67e3f9e0e726b53ba3d2efe4851673ab50e5d5c5321de1d8b18a3e5f5b61dccf52ae78559aed0b1b9e8dbae60475c427766591d0bb34800eb449eb23f5f2b1e66d97c2ce531f9b5e1f58a0e6f109c6b0f3eebe9f9ae8dc3464350e30c691058e53710b383345858d83e965c5e8c603e6e3dbf910b7fab8c9bdd0a3563a75c451921802eced19d74ae5d5f7de5c2a808784f410793becfc3bc64519f345bc13084afe74756848ededa3220c79684d395e2411e7d3454c09ba2fecbe2e718dcf4d270cbb3262d32fb41953f338820ac53a0ce4e670104a980dc9912194deb788de50a75f96e100b93d0314294cd2c49fed8725b036b54c14100b294c3eb21ae94ec8dab09ec3598a53ef9e2035f7e091393a4924682c16c90f731aa253ce6fe9b7beff59a4ded8abd73250534eab431d15930be916ea24c8567833401ba44de39eb48dc17a9d67502be8f40d483509f4dfd1588b6e484030e30261713bd0cc0d7b3964087e52c1a55d7604fe635c17f78d79b3112b121640c7c6359456e6baa4eef5243130a9bcd820120cafe3d89173e823a91e818b7c24036470169a356df6551d0aef678676469a906eb524dab89d5c243582f11052040267d6b64052b793a2550f00d40fefd27cb70c0550f35b852078433955b55456b5c0d9877594508725fc09099640a399e817ea630f91fb212203f3210db3c2339688f5260ac7770be8360a9b20adfa0454a5960c2d4515aa2a3f33ab6c04e0133b5ecc642773b2e92c3f203f1b5c8a2648cc2c33df83afba5fa42cc6f084ed8fc4aeae5c54475e52562b6d3e51c37b5f4aded48c0d8ac6afa4bf4afc4dbc36da5365c4d3e5d968ce259b1520adb4ba1d8a30018b71c149dbb654c4ebe8d9e2137bd7acbf6cb175c4f116c33b1fac7a555d54a7386422d454a0aa8d81d22cbff57d29378d68fbba766c6b5f2f2ff55241c81a53176917616f6aa03d22a4eeb3da7ea11b95652166999062adb1a815a2b2608cd9241a83d211fe71b8b6aeb886e8f01b44a5911c9def7e089618223d508c9e8130a8c82ece2df4298927464381a38d3132263c5b989e1f1a085830a373e4a3f929e9506a5358c625dfdca11ff9765ad297af83684e098847b2ac9b64c0e837ae5f565f6849a2b1c7735d510ee8d390c21e3214f1892c6702666e1c068025465d7bf4d587a717a345acb97e567661e092376f40013ca9e02991942b8dfc0919be586d797eea14d9bdfcfbbbf36c134af050fb19ae7454989080c2b148c2698cdea3e6ee9c53aec29f83a26ec0249c9a74aa886e349731799a37735d8497f15906e95a9b720164c86e131c2e1b58d70be1a9f508ad41588b7c7a0cfa4f8096edc800fa3be5440c4792dd41ad4ac195fe84bd55bea045a0588cc9e67271873af72ac4d8c7d1f6aa71918697600e2fc402d42a6bdcea53da0e838d995370f8c56061891319f0982eca2675000a1974ef972b7810d15e36cd34646b9baf51aed67e04ffdba35f5a8eca7b1df53bf563143aa1e02cccc5fdfc20471462370a264e5db3d4091dca8936d8e0e026775a4c30c41137d08fc14ed47ff7ddf1175c6320067d95bde75a60b752e9e1d7d015576c937253b837410990fa37012cb192319e10b0a89485fd2a2c0521a783a40dc3ee640b7e7724124669779af1ff53088056ace862ad4db08d0d90521924fd22720c84f8b9e74e055c9d31bc3ac16693433ffa8349239c1b772bedc8546be175adbf63c01dde47bfd0c9f6ba38084d6a7864ea99b5a444a9952e014487cea91a145a259dd9ce6d2a2fa02ed4952a05002fe9854eec363bf51856ad11951954dafe87238878526a429e9e5f950a697fca7cac2564b1e864356e01ee789cf1dd09f1392f291e576b87302868ad17bc7d15a923587e01aa0d390361f224c3eff31cb5bd7796abdecd2550780967eda1b7c3732bdae8fdb001371b81d8f26c4964180101fab05de0825e997bdddc25319a7549d444bf96f92afbcefbc7b31a800e9e8d879d4ded0bc6e4db11311f74474891bcd2dc45d03dcf630703e8dcb2f87b0982ed272d214f675434f4b8e3b3a9c692e2b7999ec582f02bde5e415e9a0c97da6f98cb73f6716ae1ee22373a61db682292b0b9d14694371444cc15f0a87725106f4061472ed49e4c0bb6efe7b78dbeb71b730d1ee42d4c500da89dbdde112354e62db40d083cef8c0fbb2416c6c36e78906bf0d2bb907d7e4aab636ae79b0011db40e94a21b756ed0c01470148dfbeff5b897cc33eff01c01a007e01e4b2019765b0a515e1fdd86ba61e1f826cba8524c8de0909fc665fec3f39b3dd0f86e33e5041d49680ca6358599da8ae2aad6067dbe3b88ae5208472ec80de41a2283b391d74299fadc8fd0ff8dfba8462e407bc33cac8d10bc4aeba5aec0c67e7b9f1e18e62e2a2848e5b271ff8a0e5cd4357f4d23682870e86fcfaf57a2bc73e5a6d16a11784367cd4fba407d84eaf1990397599048592359d3ecbab17c9a7357cd7e3e652272ab51625ff31035a426d615c22102d3075841bf10560f8b1fa9a2087c7ea4b419010accbbd0051bc27bdcc95ee1f65a95cf7be006ed7f5c9425aa40b01a200520ec40c25fb82e75da903b6850e7edb2fe3a00cc61bfa2204e5d6da05e75abdc908ab41975b862e42518314f3621b0f32ac5390f7a9c01a8f1aeced9dbfd31ce1d5744f10eabe410fa26ba7b17eb5aa3dc18ac3cc79e2c3a09ff0172bddba5477d463bda9b06b3da72530d65de733923c4e426ca1186b10362ee073703e1cbb7a31b4c77575b445b7b10808a9db3503ceea27a417a3a2d10971c3848470def99528ea05369753622c2048a423e011a608f90f8148cabec7cfde1d2001369444e881e101af9626addb20fc31d5bdb36d620f8f90810a1b710ff7fbac2f874e7c145324a94d58fa0cd44f7ae951033c1c1b915a429dd01c135291adc09ad23d71015652d2818b5622e3425f556c7869bb25ef48185d84028e45f8a7ac5975a57cb9720337e220194b5c90029d5c04bd086474d11e6dc38b93258636f290ac1f68d073d14b0a4fa67cf69c09774d5614f4670f409c01d842c5c2b5d18df5de966e495912ae4ee7b8c48ca7efeb4b69b3d9c6eaf89a761f55881d465026d1bd5fdfaa9a42d01dccb34f17b608083f654322a44cd6ef0ec6917570597408b6d190efc4290a6441e7884b1da8211a3d11288571e450dbd0cfe8210aed0ae7aa5145a3eaa19b50dbd1afe834b42b14721450147b433d1b9031109ccaf894ef2aa3c8ac1bd423db01de1a5f0379452665dfcf7e12c07f2f7eeab4f2cc7c414a6f53097401d85b278e27a0c910a9317f945a3ac5f97bea646e7076d06ce1c5007c5e0f023e81b7cb354b110c64e91ea84b121aaa04cf03a5d20129db314316895a21b8799acb66b2f52a00c6e63507861bde2e361f8e67666bd77cbe69a54ea9513b4cbfe8fb423b4b813b552c34f9c9d5023983e660a624c5709117c31d4827e90e9666ca076ccb182190ff26582851cb5b9490fc65c05e2765c085814c3faa6402240069c08402d47cbe37d0f90db9bf6d12c27e408316dc94654fc72ecba4aabe799e261c50d9989d0d626d5e7923b73895b4115736b37fd4830c7a53d84004b7855deac6f1ee57bed07a7c739e4883662d61f874768d44790267fa268274db7b270de69d1114f72e826ed41a06e70d12b208819d094362772c53dd0741fb4ff563dc92d861d5a9692e078548afb36d08f7b3cfcbe76564336a1909e2124482887e742866c8802bdb407f924d64f024eb77c9ba600b60c22e3f5c838d585599d7aee999ff0f3402745561bb851debca70e5d29b01a5565376fd278265352b054237080d8cc0b068377619146bfd47306e56b1b9babf990747d3c5a5b889b6da576a7d0b8e6dee2d5a6af527ff84d9c89cbcd04ddc617dcb78147e933a9fd32e142a604e6d6cf8fa9dd50df519dd353eed10c1f4b94ad874f22f91411dd806958c7d25dfad7173724bdc25e3344db195bf7327be5fb25d4c2f39bffa30723fd6dcf8f935254c4825356a6913917719a659b29eca44244763a0f512527202777b69ca9407be72c46e86dffa86642b03f0661a139a46a2126b9d2f871ec0f838458b52f16bcdda25a291b8632e685908bce41902d6e6a83556113e9d9ed859fb0a6119e626731f43aec6a7b4c1787694a4a2afeaed44c4d3ed5ddaa2000b7a22e33f45a7c43b25b17ea642112d8c29ea7825f1aee64e9bae843d195f1e0727562c4f001a84252844ba247fdaaf0b20681899cf246a7956608655cdff836879de7c0c6ad2908460d959f998e088067bbfb223f660194cbb4bab235d1c4a6e8b1bc5e8b35ec99d71442b1b87c87a2c2e0697f334c320416ae4543d08ca953e5d64c4e3b3152d7a681b1597e26ca3f8631ec364a62f388646c87595218d181b3c8a173eca0c5b0256a8987fa614d81116123a39df6283a387926d024643f4b1db46d904745e1c8bfa2bb0547392a307f8c812cfba98ec389039c18b86192f2da4dbef509ecc2338fa9f37c04daf6516fe7e58287053539e21137186cb966608077c3d803bb0cfd3e4b5108037514aaa8e14cf1709361fb4191af580de71ebdc4056822dd78a79565492e68aeabedf9e284584ab83f0e1aa9a960ec66aac24515daa42da6c3aa81299f497523650a7c547d49d1a02cd53cfa4ffb5f3bf593b709012d34bc38273571a6b4afcf5d0c31a2e422970120b5000389595aca2112da475a1a262433d7fb5572874df82f62646a203920b885c1327e8c1e76aba0f8667613e9cf5022618f5e1c00d51e7f384611fd284dba2d6866b321da1c5cd351d121602454da75a93aae55e4959f9f0e811099b70e6e220788718d2ec2f2323734e0316eceaa179392afb9fbfabb61411fc5923d639baa830e147c35742652329f5a01991a60950a2515e595dda05a63bab37ffa04dd2d99e9a17b162de1ff475a5d341085a509bf55722110502a2a4315ddcb4e78ff77463ef53131139abaacc1d97e442e1cd500001e010e619d4b9176c07c0d85c77f25225b800d4f6b0ca26a4e056d3c233ddd9512ca1b0b2fd139c98034e1cf9ef0433be0d1a104c2d738d360d550810a0a1bbe7553113a01160cf20700d7437362b9bf98c1456786cf0da3d7fd99894226f36c89a3a7999b7e7c965f7ccda23bcacbeb969c2ad8167cec14e3902fcd61cc1e29284c9016abbbf8bbc31b7cd7ca90243ec5aef851cb6231ee5c86ad5f388c597b218c2450099e56417c153c7f857f2dbecdc9a2efe621b2024cd672331680e48186173e7499676adb033e35f68776f1ea69ba8d04394bbdae03c5d2c1b4a5a1cffa07c0f4d781772e8366022da45a899e778ce748139f65a9f6ad2d6e738b0507284f66bfe8a8048496c26924e53a1503c507058fffbbc6234ccffb3cc8f7f62d5fb1fdd5474ca2f207ba009f2bb22ea1d13af23028af21efcc36adc46cd997c46c33ee7f2ce8e9d2c6d176298c073d982f28da2092ab655983881653375b39f4d8ba8658e545297b456e644970ae2eb418497795aa2a1c76864409a81f0a0a2a04e8e693cae07d34383f8bcc403e44dbd521eab9feb8c412c1ac3a71b06bdcd89e9718531eca9c53c66693b03d96ec0fb4b8c7d32ba4c94a65cd6259e6c32e9510d6658c4ff1fd5771da7140d84e5a54ebe1e8fd26031409d62ec6d6ae3402ec80b959f8246c601e6452d4e8155440bf55e1adec40d70983a24bceb4b0e86a04d1aeceff9b5b27e6906be1119200674a07381fb336ffdc15bf1465795bf91093790f26153479eccdbce9977f7b95c580e55b25715119184cc3e62eaf0f2e716a3634040edd563c8baa290de0ab72d09d973217a76684f86e885d0e901212dec2df40c00d0e799131bad923dd1e34f7b03456f9eeecd533df8440fa0e8c5133df7143dfe74e6b636dc247892243ce3034001d41a5e29b1f155ceb5194ab26c2729b716acaea5c392b594c885ebfcf44b70fa703c6178427d5191046bfd81f286b5a0f74bcd8a375f0b38a056de8d327e58ee3b8254bd72e42cd4706fa2d95d44186be09a446267171ba50f0d33f5f910752f48270cb0470b23e8bac5478e6d45457133b8075327165fae2b760984a794a065090a6b0a92cabe37ec268f8529ce22d08839d7e76572b0781e49ff472a135d4a614cc55b51e9be7df7f456be7ebb16bd4cce350c7455e53d8efa44f767a8092b202448c7142ce9a8f0df78d469193f9fc17b47b49c8897076f5c6c8f56c8392816d6949da046cb06156c0beb545a3396b9d204ec5e0a26a1bb495f1a1091f65a99d9287c31512245523460cbb2bd4327985ed062ea01c0940494e8c216be97b64e27326e3098abc5f1ad792e679cb164c031acb98c59ada111c7d4e60541cc05d6d5a07407d9bc36f039e4219ae83ca2b2ac85865eb06c10e4c72cf2e186913b294fd6129b490a501c54dc253131d691018e8cc35b6d6066d001884c29d520f40a03e3329405ad5d2feb3cbf84937e2294b390a0c39cc3ec6d7af127ec23f737f8aaf790dcf7dfb9e50c995031577bd717bcf6ca8660d9bc58c5522051bf5a74523944a8e2ddc9d9029d4e2551680be6f3c5e00bdaab980bb1dc5c98b9a65319c17fb702aedc8cd6a5690e48455621cddc6d5760ab641003838dfb7e01c1aa0306b803f1948e6bb2a17fde5fee3e64aa3347184458b25b08573dd1d6bf1d0f251187002432ca05d39a00407977e8f470c8c29585a900b9ce2fa836bc45dd77f043ca59bc41831886d52dab99159e7dbc0f1b8701add0c2ef1f987302fb284d37586dbfb92a1a77eac9bec7783f30483d80410440a77d6deb0a098412acf9ab5ce4750127934b1141ea0040e2753d49217a74eb25bdbc2fd0a2b97788643d44ad1d3e2704fca02dfb61ff7569881832c7f51e22903f2efd43036503a1c85101fb96603a368fcf3284535538b3fefdb62d9077c6fa68ff2836355b49363e9aa1123e3348dd63eb2e52d70addb9d3bdac6eee74f9d225765d145bdd6cb3424552985db3f0ba18dd7a5e9dc9d707e196933ef829c3a802c0926bbc0605aa2d666cee190901cadc300a54d26e8ee03bea9901477d9c358ccb19860ce7020e4d4e73f94d5ada165131871ec122106746d9adf3152e6c2d8c1ef40b74dde52568fe0675ea9641f69598ef0f7bc0c89e3a68496cf130924b09d78b94452ab3114e0bd498cd18a241eb0f11ed745012f66c812abe945f64c3d1a0f4742ce71a939e7b0614cbd580f9582c8760df2013033ee9422cba249681a0d130fae5f0407070d139070d6c99c4d0bdea1d302af72529f03804422c07321fcee94388360229e10ae47b504851e4001d5909c517756536bcb6cf738d6df11c36e45d148c32ee563228df7b6112e65ea50a9180c1ad8b24cbaa12ba8dac426a9adecb5eafeeb8e90bccf5b552b84d7f8f3c87a0ff9deccc9bbf65aa7abe29a6ff36019b3b647263f92def687006c45ac6ae78320a0e76ffe4e48a968caff33718a055cefd105abbd753d1f1e72f0099495cbfb8f5bcc306098d4aa8da30c1ed26c57b9592cb29e25acce445b0cafc99b849a6275590fc2928accb3d554784008d2dd0cd687408012c8a23106d6b4bd1b099cc243cab862a2e0ffca5c8f62bb0a203eb5bca69fa95c22a2ec9ec92900ca8be8802ccacc0acc4ad6cb329f3f4f204b4f1e9bcb3285aacecfef1eb85f78628bb8e40a7e018b036c01cd7a889760dabdade0525009c3a463efcda0b76fe2c329007134ea5a735eeea0b58cd175107d1f4ede346a27f2d46504af9e5673bea39d1b0316ac53d76a0f689badf67471862fe859ad6cc38a40dde94c418db6c40c84ff5bb2f9c370cf0657eefb1da50e4b7fca368723400bc85fa7dcd66fe09d8411a0e8b250c01d369627a1e9926e02a92d365f87283ac2734dcb6acfbf63ee6b41259617ec346a202748e6adb9a2ee8955f94f551fae6f5b39c1676dde3e1b098ec8bdc93e18812d43401162db7fa702eb6c2cb8c4b881744f566b06f948bbc7287504128e1c909116b51292b82ed6d9addc2ed711739fbc95517e721aaf4a38220e07f3ec7579d66777046ea07cfd0ca1781afe676abfb0ab40deb359d32a19fa18f8847a2f4eec1f020598e357bc1dbe0831c275fb0290812f51cc22e7268e3818a821bd52f1ed4c295e8e3fa236c9556988cf66e8d1b3c462509292b3003fc6b4be1147b0b00e98aac0f03de96c55d0e3540b0a6d0013c0c3c0c3c0c3c0cbcc6f05bbb6f76e6d6fe96524ac1003a08a594524a2925cffd8fff5fdee2ad256a7d44ff8c03e102e10e3a0e420e099d337c1c1921030d93d0de2f4a925789c82f213ab87f06eab0e18ba2094ac97b61a3d604d9f5a2bca52566ab9d0b0dc88fdf71467ca034fd110408f2a26462fe3d7efe0919a75d14548d67d1bf65a5f7d545c944b31ecd1fdd4de96de4e2647d3ad6370671519c51275aa2fea798681033925b14e3f97dc9bdb0ffbcfe2003fd19673f5290206fc60f1f1cf0b6618b736dde12f7191a2341cc48ba166a9ca4cb33978bc64802f2e3cf481b810d5ae8232a4be4cfb264631645774fc2695fed2a2553b228480f63f2a7dfdbd7d00e360d72d0f811240564a061d206cc3a8819c9046cc4a2f8e2e94a0e3b93fcae1d6c0b8bb29aa930a1e4ec5dbb011baf286e079327ffe42c69458ede043a7400f991c8b0e18a629f770e5d9bf97aa43dd0400b52061a40d28f5694640d72f39baa04ad27064800831117d860c5a33aeee6242635b0b18a92ea2c5b2332892a0af36d5a33db993ae11a01d2a928cc760665de254f4545419e787a4c9dec77c977b00531233945d97ed47f583f77b0e9036c98a2a0b6e4c867b5dfacbb14e5eaa0591e477e12d4ad6798c1034951de5f93fb640cfa674ca3286be638dfae2509ed221ba22849ba313dbb6c1a99c7c3a3c79b804351709137f1f3fd9f1c53a028e946d7f418aad4ca7fd2193b4868fb89c25ce7cf27496b3d510c71aa7abb393b9e4702188cbcc04627ca291be57490b7cd79730f0ce8d091468fe74441a9d2253295f48b3588190932c0c62650870d4d144f99f8666270cd1a353b401fd0a143870e2067f83026010c46908d4c143d497a62274f4ac932c14449e826f724ff6d9a8eb944e124cffd20aa94a037b7447994ebe7ea4c6bcd3909d8a8c4a57663e7aaae72db6e275be724293132a5011d3a50e271868fc301148c714589e2697ccc1fa24ad0ad272e3626511236177a9fd5c33a248972cea7ff4c17fee5a56ac046248addd9449bd6f318aa03898292f604dd7773b5187ba432464e1f512e936943e7f5b5cebb23ca3187d9342a324615ed48193c3e4987471940dc7e040182361a51329d7de7ed544614e6d6d2e48d2b934a2260631125419c2494b8d993a0d44e467c0419411b8a28c9937abd93242af305d8484469aed3987ac7f2f1161125d91717971932779c0e510e76a5b2933c524c6c28fdf81d86504d096a4a0c423edc5060a3107b09e57f7fab2622e4831075b853428d6e90ee2f423e06d185cb26a9941e357a5d0a6c088215e5dff3f7deadc04620ca3944f6876af099ff75e0a38c327e0710b6b5018854cf642d35decc74f0d7f6bf6ff57c98e1e3c719762ab0f18752b7a9e71d4f4aae9eac6cf8a19cbcf624a95de26c92d9c176520e467c04c1b3d18762b4517b9d5a3767d3238747900f02e44c49008311b3c187c29e29e9648da7d81af38224201cb0b187623a41cec679d72489cd0dde0c3fe3cd80800d3d14b6b2dfa4cfa8b48e6bdf196fc6076ce4a17c15736d8214b355770790f7800e1d7828e86692eedafb1936ee5012f7649ad6bffd51118fa1820e8cb103c87b80db0ea5b2fd594d36deed888f2026384303818d3a14dbc24d0821d7e5830d3a14338b4cd56ad65fbecea16c3a98f451a34c4caf8df44846cc00f23a1819f11104310336e4803a2a0ea5571f1d74eead7a9ce0509cb30c4a75a7476cbc0165c2e9df870c93a3203dfe3c0bfad2f811a447d233de0cdc810d3794d96883ebb0c18632ec61630d653ad2861a2a715d77b39a4f305310206370000563f4d948431b1ab86c9ca1cc8619ca21c48338dfda4619d06c90a13c1b5fe665cb73a6720c255df727aa713f7c92188ab9a4500b6d2d1f9a85a1a0593f8e4e6975820c0243d1e470a28d9a1eed1c6f828d2f94c472bf3c8e121dcce385f27f0c76c24a3e84de74a124669d1f6ad5c4ee3c174a5e7ab2c899b1ed99ab6c6ca13832de6ebbc466c9b6160a5ff3317e8dd69c35ad1ca08d2c144f5853ea0419830cad66c106164a4acc478ce89d6ceae40ae535bb319127ebc6bcb14229478ef6a69e2779548582d20b933bd99f32dc3a74a49971768064b04185e209ff9283cea2fd791f6c4ca1ec492c4da7fec2c186148aed1ecc2449923e95a424b11185929bdcd96e4e7810ef6760030a369ed0cf26ed93a3dbc1a683ff918e9ac186138a3d9e3b6c6cbf836d9160a309853d69fe7c344779770f369850924f92df93fa8c4f9f440f369650d249e6f4bd7fa7c47e9550cc24bb9f9876a36ae11d6c24a1248fdf9a9ce395bd8d4828fdd9298da542b87d890c6c1ca160ef9a4685c9e924a9bac186114a1b65ff55ef948edab0c14611cadbe9bd9f643d19f7da2042b9f4fefbff653bd86c0ca1244bc70cf7f33c33103b820d21944ec9ef69399993a03a48d4084669ffe2d3d79c9c6b4c3bd8ee74e850440d6074fda2f8594f97861abe2886bcd93ba1e4a0a368c46af4a224c93b15a6f455d8782c508317c551926c624cba539aba3576516adb24c95136e7ed6e0d5d94e4605a655663c7ae4e5ba2462e0a3f2a63e5e4ef94c926450d5c946ec376d69363d0235b4dbcf6448d5b94edd3c4367bbd778e75a2862d4a82ead4a1f4c7b66d0c1574c009356a51f2a0da27f975345513ae440d5a94649f3ce11b32f8aa8134be8c94356651ee54dad525d7e50959b1004f16c5d8195c733c6144290d0d5899dfa1462c4a325d5d98cc6d51a68da1820ee8705d440d58144c92737bdc0ddddd5f51ceabf1eaa4d1faf14a3bd8caf81e3e780479b4203dd2f9914cc06568ae285f7e67657687f1d4b4e2f4b97ed3c9f16ed6604539fe8f9ac7385f72ea6baca2a4b64eccf2fd614f5ee1504315a52a516e637e858a29a5a2a42cf7b54ad850b27dc3420d5414c34c3cf1293a9814522e438d5394fc33798a924b53a7ee0a354c51dcd1a25447d73839ecb452f87557ae1eef559d567992a275588d516cf9480d5114e48a126e2a3e49a50495156a84a21cde538cbc9c8ed7c3070f20ee821aa028c94e22e3fa69a5e869c48c0f353ef1c6c847930455d5f0443156dfbfd536e8d768558d4e147fe49c08ff35f164722ed4e044b13fcc468a7f8a36d3260a4ae8244eac4466747e61a8a1895209722e6485ce24099e4c1433438432a91957b3061365f7d96dd18ce631da3bf80f352e51d05227cbcd697749fd09352c514c424992e7270fcda9d383c7d6a8445975ce4c2a97cd303f053a7420a10625ca9f25d666983a5da53489d29de7a4428fc8e0269244c944cd53ede132ffc744a23cef256da5ccfb7a0612658d7f92bcd2b6a784fd8892a61231e1614794127644d94f94b2d45c4ad68e36a2341a43adcd768a57ca88c28e4e929259d7b3aa5c444126e1a624edd6fc1615511879553a8bbaebfa30116579cb92d4e81051d2ea72277ea7e6e4ed10259d4737ec95668892691244dd749b586521caa1fef4f976d0b964558310e5cb52aa3fb2337949328882fa9c38bfd1bd934e2288d29b8ce61c7479186d12886266db1863d8f03eef0144e1e47c2641d59d3cf7fca118f4b78fe85496b2bf1f0a1e4acad4217f1fca5174c9e81e3b43f7e643417712de49da9c5888f7501026876ec6f4256e87f55012d65a42c920e7a198040f13523b9c6767f150ae8c77c2eac3494266ef50f8e49bd1b53c6728513b14e637c99ad6f563ee5a87b2a65e291132c7304de950f60f175264fe3c87730e055de5a7dc3ff4ed470e2569252839e9fc1c4b380e251d1eebffbd436612e1a0c6bf3d25e8f10d2539f6add2edc3724337944433281dcf39e5956d2865f693c49f786c2869104aee5ca26b28e6ea52a742a6869249d2f8c626e9262a4b43493eb9355f83cc79d255030da5fb6cda3272ba2ad32329c8db19f8aa733315b17dd1b81022a6dda60a410d33f8487a7ca0870f1e1a70408d3234a0061946789c91801a63e0710606d2e9e1e30035c480801a6150400d30f03803033fd20d7ef86841091450e30b6490f12a70400d2f74210135b850801a5b1831400d2d8c84d4c8821835b02052e30a02a861851b35aa30c2e30c0cfc0f343020460d2a94de42760e27d667fff0b800f54829b81a53287e14bd398e6d70f9f08aa08614cac94d692b5f07a907d6884229db24edbd12753ab635a0f0952ad10d2632696f90121033be2ea3c613b68613caa3274cd7270d26d88614d56882d76042d75882d75082d74802d640c2d53882d73042693dd4c8243ebb989c221493de568fd93e87bc8c08e553aaef62f3211483be911daf4188aa554308c5a8bee5aeaa6132570b2318aa9db21b185897f809362efa454989671dfd4ffeec31f6457935e99feb986218bd28c8334ffdf02274457353088317e5cd9f634ea393ab787e17251377b27ec74edaa4954218ba288c92459af4a04caf24e5a2d4d9e47a8ff2fc191917e57393eb4439e1d7a2738bf2db8587f6d8649ec43fde041e862d8afa1ffd53f9c69431accac185518bb2c93973dc4e327abada4218b428ad69fb6af1d31837cda260baeb3f83ff8932b65961210c5914b4a6ebecf2751db6d7a1236dc4ea5211462c8aabc1848ecd122c0a2756c9f0a89b34bea40c61bca278a24a103f7ee2c827390118c27045d1db574f0ced68608c2ac1181a18a348308606c6a8118ca181314a046368608cfa4318ad2886127334f4e92c3bf38e3058512ac94f7568901b63ab28e6b859dc9e9021e76a5184a18ad2c5c5c6886bea9224d9c1228c54144ce356cc667bcf9dd9c168a0a2f0f9e4f4261a4b563dac08e314c5dca09b3fab86ca5aa808c314c5bcffb9ee3e29111a64a708a314e510a2438a0af5b42d91a2781ede9e242f615dc7eb4218a3285d6e4e3a74850e19e3c6853044512a317dc7a7c6e8a9e21d43051d581f6184a25c5ab25fde64a6893040512cd10e267e56af8a910ac2f844b1cb5428f1b2cb242679a238629269c5f966fe341a098b208c4e94fd44b76694cb659d1b06270a1ef2e3e9a09a6312e107c2d8444987faac3759d6473b19600e4313c53a39a67cfb9c4e1e6e44189928ea7c7f8edf3f329e3051d0cc314691493ce87c899277d0a5dae27122b444f904d5b4555d52892d4a70189328963c39937c30d9a4509244513f653ae9a453248a76e97a3626c96a7a48146f4b3c49992e29ba448f2886ead6ee90a94c4e21471445c98e08ad50234aa2d6757ffa49ee9911a58d5922f79f44eabb889224d49456aa8892abc972362af49464228af2376a69cac6373c88288687fa09113287289dd2314a7e0c512a496e4c1aabc2335f88925c327f9c5199f49584284999467d0607c126080e23102591e9e435d137aa6a0f88d29a7892b9e9fd0fa55af9126e1ed6e5771f01a713fb2c542ddcf842f9bc2f46699dd30937bc509021cc744caac4fb946f74a1684a26e9e4ee3f39f6e44251cf74ba3c25933c3ab785f2cc763cf1635c589a68a1243ffe299ddfef3ccb42294ccf8f85d2f8b7888ca2be8272d7b99a25fb1e9b9dbec17d6492338fbacfad500ce126e9f8eb39882b19b121dca842317d6e90324a59d90651a16862f3a9569867e9e014caa76a4c8868f9f93a49a1e4b143990acd8d2814348858b5b679030addb7d9a677e7cc7ab8f5de675cc6676f3ca1b0256fc7e89e111e67fc483a636484043018d171c309c593ec6ef35e45a38c444170a309c538ed58b2ffed2e9f1d6c64f828033d708309454f77724ca73bf9cfa90cf33d12193e444002188c88e0c61232afdcadec2cf530d53abf52da419d85dcfa890c327c88e00c1f24d0a1830c1f6528de504231af09ea5ba269b7ec8e70230925258ae92fa57962fc38136e20a1e025e977b6a81290df61021eb1346e1ca154d2efc78cf428d232d03003c75041074880c60874e8d0a103080ff3239940878e26010c467edc3042e1a4f4a0dfadef60db16dc2842e163c9122bbfcdf54c4428e7b4af99bad2d3c35a861b4328a6a8c6ccdb0cb13dba2184723691e1d364ffa5e7835196d9b95c35d164d2c9c0286c7813a2e755915f9453c8b8d02d490cdb7b5341c4172561622661920e32d3677688f4a2e0a34910baa4cee1768382082f8a9af46d52a10413bd4a76f8eda2e4fbffbb5675527a76b6a70bbc42bd42ef63e743d4533da3be6aaad7c3070f915c944266be46eb955d99457051502b49f6b3cc276d92dea22c7fa2c8353741a379b628e9b81e9d73fa5a144eea26f14fc66951123c93ecfc8ed67eaa59946366993139644b923d591473fa9eacfef0f0bdc5a2924db5b3aaf70ef9258969f7eeed6151ccdbe15f7252f4694de4157e9bd77985ab9dcc6d99a0aef1c143d6a94f0d445c516edb8f93d48ba67cdc8a920a559304935956944d29c9e49c319707b70f101e66e42a0a27ef5a9a189eb34949aba220b7a3f3c78979d6182c88a462cd9f19d37bea37c1c813445051cc3d5d9ba9aff42795c8298af996f65defb9bdc414257162434b7dcde69da5287dc6d7ffe7f0d9df91a2b3dbdbb5fc725991b96cdb647be273cbc78d454651eef45dbd4195e0404414a5be52faf7eb94f2edd62a20128ae2485793c4581adb62048a928c25fcf22b63fafb3f515042e6d277db26d5683d5192234556a7ea9c741276a224953a41bb32b3d469443851d20c55e2e9bf6e92f526f44a79abf634130f95eb2ab946e99ae899c4a489d2779f122b9468264ae27e6d6777de092298288c9a583a479ce5c7510e442e5118f599f386eeab0c93250af39a4e6f7e9c1cfb57a21cda64ad5e8722942898bc75273ce8182243914914ece3bd4f6549d23a950c005110914439470df5daed1444225152267558df7c7e0e6132e37fbc09d21969a8001225a92ff37e2a91b1a482883ca23ca2e55293d838a21844e3ff9fae140f1dc720d288463f67b8be12538208238a2745a86879ea9c53b883ed0c0bf2c3870974e8105944b14d6ae8909f93c682d6808822cedaf94cf89344942e53751c0f99e1d32e828872a6c9d174f3203dde047b8862b5efe751b17b37c2b41ce8d09196034c133144b9d377b3a4eaf6f55ea410e5ce572568dd8b901324428872699df966dc9cd74ba88cc483033a74005932880ca2741edf74d69f6a12571d3a74e84823880e1d690439348808a2983a497ba6e24e9c7c90472375754702188cbc48204aaad3e8cd88978fa12402889289c8f966d08afca1e4a74fce25cdd87810f143419c8dd65a19e920d2876207e1217c537b5396f850d62b53a27eeab9dc5d7a10d94361830c72e7da3fea887e10d14331739a9997669a1695481e8a3a2a3dcc2d84c915c243293b5e559c0e3ac624e60ea5bb18eddf6c6287d2e86477fd763742f63a943e57a99079573a14eb32e7d2601e747658640ec5f07b9175219443f16d4f4e15d98ac4a1f0ff39be3a7b22702866ab86a767a76c132241e40dc53711379127acdae9dd50fc2477c63631ec3dc436146327a1340966ddea193664a76b6b2f9fed1a63e2b1aea1c7c40ded396b28270d99793b069983b85f105143e19324870ce2d2640a3f0d2521dac7d3e4121fb3e565104143319f3849f6203798a0e45d1039433964665cbb69c917930b226628a886fbf9155d166b2a43795ff64c85168990a1186a429ab8b13d9b3045c6506a1d3b414f86ed6d911044c450d8f0324196a03496890943e946a4ed8eab891f4ac0504e9224c6532eab419ffa8562abeec95632f342f1f3467f0b3b75a178279baeed7866912d17b6111959f53cf92aefd898ab6410bd55e299ec164a269a2c5e5283bf6aa6af20a285927cd22e466a902786259285628961843eeb1ba1d923828592d45682d86d958f252e7285624cb19e7418d9dcb78b58a1301e27232ddda4bef602912a14d39abea898d823f5a5424143ec7f9374894c81b5bc70d576d9ef589dc9573b9bf48948a19cf477d039097392f25c240ac570ad41c611d9277c4e040a05193ef67fd2b3c813449c5032d5fdecd49dcd3b25d2848266b7b2ee9874899f08130a9ad56c45789ad151892ca1541deac194dc3177c6224a484e1f37da88449250b6df50a3e5fb4464520409cedd9ec77ecbe7c7d86a224728461feb34f21b474348c40805259d8cd5a83629b22b43a408c5f64c8bcb8d458850cc1d654ff668da94c57a079121945309193dcacde6f841224228e898b435dc886d6e644580810c9440041d58168404a31863beed2c510b0146a94abcd131d97af81ccf2441c82f0aba2b3fdb4b902f0a5a7a1aee4abd282921c2f53a6dd071235e14a4c9d57d920e3289ded945c94a8e31689d58d9dee8a2a4d2cff429b9b19c3f1765f378e275c74fda0417854f25de666f12224e7e8b52bf26cf51624a4f63dba21c447e0ca14666b6538ba2f7de77ae6adf20c3b4287d27939dd3b6c97b328b828a3d41dfa5d9c75316851322325efe67539dc6a2f8259a7b4acf38b14f58944c6729d1d6d739fff78a72987cc2bc8893d1f4ae28a95332d4849f20bfb35694f624e9a44fa5d4968715254177c9bf59a399e72b6415e50d4a9bdaef4f9d170821aa2808538da24fa9378d53878e11fb44482a0adef6a1c473511a63dec13682fe1015c5ca1a996234e2575784905394d48d74dfd5185fe2c7142559343b69c556a528462db9e4f1ca5cb1931d6c21a42887c949e4533398dcd6284abae48637315b7c4e1f5114c4baf767123d1fa60d45e93abf9dea46590821a028c59f98042165478327433e5118e1576a2784c9d48478a2f8bf2942e43685fe5048274ae79dc4e81d4fe38eb8836d04219c28aefac94933a4f9ab1fb289722ed9f9a36f6e079b0e1d411219233a742c77214413a5d22a2a5ed3c4aa0c8764a2fc417df89eab90d6d9104c944bbb3795fb6697682197289c949b34b89dce861d628982599fe825c59b54ff56a220feebdf269f0cd71c568450a23452ae4bb83a539e931ef0ac43c824ca264e30c1df5dcdd408248d14826e4288244a2323c306b99f4d258d44a9357ac76f1543205192f57e7487d649557dc8238a31c67c2cc14c52f53bc411a53aeb24c4d5889ff01b51d0ee574a9e29a93bcd783808614449ac2f318b891ae42ac61f842ca220cb64ced9b75df77c4514d33688f2d26a629e9688b22751b3da9ca85e928c8862993ad941a726c93c098f1b380e21e410c551a3ebee33bded961c0f420c51eeac66b2ef6d8014a2bca3669d2b4cc7d22144d9841c7751fb18bad9200a1f4c8d4e5a63ca7d91a51122886236b13adde56d8ad3620f420251dc13ca7e5ebf04a184858028dffa9db898ece8d8f908f943314e3c99a9e304dbce0fe52073a3bb9f96f0c9d50312d2077baf54e688f7f850da36bd26b53b69db6584eca1b46692e64a13ca4c26dd8c103d144e6367fb33954d79939187e2d6291d4a3e40d6062178289ae82da73e84ea16888f1d7c83903b145e5483fca06bb2ca166287b2668a91399b4e72b229a40ee56fcf9b5b4f340bedd0e1eb993fb73c8d264884903930277a77bbb3e6daad7342c78f294d8b968e102287a26556bb92dbf4496996101287d2cc9e7c72f20ccf4e7a191cb69242a72f5b2f39db1d84bc017d720c4ac56d8b380c216e28e6e5292d2f254afe15d2064cdf5454b3b5cb0411a33d9af4fc216c28fe9a24e97c9a394486d7508a17b1617bc567aea386529f69aa4d92a8493a7d1a8a6725f4badd6828c898744c4c5e4d4d3b43d945d5bfe62027c9a6cc50f6a067bb369d8ea326652895cecdfb4c13f3e69c103220ba66b5699e5bd5e96a42dbeabb27b9c428f6184a6ead66265f22f4b885103194de4cac12e3a439d9752c8484a1a8d1bc94ae8b685493103014e3b9668b5f590d230af942d1830c93ff949b53931d6c18e205bf36efd3ba5675d3c2b4ab5a63e8fbb051463bd85c10d28592d0a3a33ce59e0e232e147e3659a6681c75ab42b65034352ab49cbd2619422d943d499dab4e2bb241f782902c1477f3de888fc94eb20f0b66a79cebe659de6e7d6bbcc74c82da43ae5092492fef4a0e5aa1f4e1d1447c9d6c723acd20a40a5e9e5462501993e6f9544844f98a4e4acdb60a9942492eed2489abfc532b511022857249a24ab46ecff0650a8942d94f752a61b2e71884dafa2150e0c6b54e5fbfe55c3ec30c1ef8819027943d27f9724a3576924f1ef000b2021d3a7cfc483ce8e1a3870e1d66a0d1c3439c500cedf1eeb4e4793c37439a50bc8fffb1f53235fbfc23ed383f3ea5e047901498f538837f0401821ec284926670d9f0b6cf6eb21d6c40789831d22395c13692c6193ecea590251453dcc851ee9a472db383ed2e10a284b208993942896a269b1908494231669af8a8b9fef81d87043018e14008120a271f4aa98dee1e53b3834780f038f390239446984c3a4207119d9b4523ff830cb5330e314239080d22b5d7e4cee320408a50d096cbf4a6c4bcf1734a8462926d1b43637793b83984d2a7893da6a413431226c57f7b5c065d308a9bd5f11fcf323d6014932489330529935388e2e9062b13939e849e10e54d269af28f9ff4f24194acad573336cc9408a2b8559b736ef32c9a0e44694f49b1fd9fa53703a2a4730eda9b422899ed1f0a2b7a932693a3b7f543713ba97f2a518c3e94eb3d9f5651627ba1187c28a5af67e5eceb4912630f252f7513d15f92ac8aa187f24923b3c709e72526461ecaa9e579479528e7e6321e8a9a3ff77cc5e68606fb0ee53afb8d7dea9ff2ead9a158aa523f6636da655c87d25965149df4b6838d0ec5d2ab12e227ad6f9881cca1a43586e7e78f5b6f470ea54f62d2499b60b9ea4971287b67f4331b935d94180e0525f3bf8813d97f62de502a39b747ffe437f3d90da5dabece76f7557aa681186d28d8596cccd3e9f7ffb56381186c28f89ca85cfd69a97c62aca1a49f76b399fcf88cf61d410c359433358beb955292ca98186928bb08f18c17d281186828a99929e936a6b7aecf50cea66e9214fff7f12533144c50bd5146b35e5c4381186528a6302592a19c36f5ac5f68d1b4e90e361f4339786f8678d34c208618ca5b9e71b5dd77547976b0b918612828c143d4893987134264f4e04106193eca0043c1c47c234b740e27786704627ca1e8fd66aa24b7d2bc508e31746743d4f76b294617ccf0e12300627001f5e0a1831e688488b105bce32aafabdde2e244348fbdccc6e40ec680185a285c6aeccc1c937d442da30c1e21d0a1438c2c1c72f6c2a35a28dd76b0f9898105ceedcdddeb74bbdd2e3424c6150a4a507e7af6bee133658592dc33324d4bd2d1499233ccf8401a190002e44da0021d3a7480418c2a949358de9fa563ba2b691e4932824619cf820f7080033a74f4894185c2e74f72a2aba7dcccd829943fa7d0eb26ef89a7d38f245d0a2541e67c1f54bcc4e347908c42294443cbcb9928144acab43b7a8f8aae9e502caff9b4799d3c7dbc83cd9d50927247988650724407b1a9408c2614f4e4784a8dc6d1d0498030a1fc49ed9b248a5d8ab684f2784c1db1e935a8d1a96b81184a285bc90e1f32b3e6b8382046128ad6632ef755dea9330d0231909090d71191557911e30825e134b429595b7437c7080521566d4c34e9d2feee15885184e2e67c92ad07914d399e95400c2294cb3aa88cbaa642474f3b20c6104a9d74739e136e83c8931d233d7e9c0f1e2367005112c060c4036208a154825e5849728e41077d30ca49fe53567e1d4b381d304a926a8fec604ad2ca14c72fca7a4a925f64494aeee616c0e18b9298d3497e6850efa283a31725f17b4ab892b66ec4c97861bd6b6c7adea969acd6e66ac6baf03a7969b500c72e8abe1ef35b09795ebdd145613b98dc5f32e82445998b822a6d7662b30f6471e0a2542b7ac4e64dd28d06075030068e5b9446485fffd1265b1456c493fb9eb528e597aaec2eb54d958ee0a045e9fa74099e5a6390f1e1e183052366068e5994e430ad9ed93aa7aa481645f3a4831d8bb2c87cf2eea5a87c3111020e5894936e30d124ad780e32fc8a82eaa4f24c7d6cc47c0439238d1f678b80c31525d1744789789356946f3b27b598132bca49c96b5cfecf7ad45761a9a65988a7912a4a3726d39faa1152549f8a4369c91f4687868a7266f993c486ba0d7d9da224a35e52fea89c126f1ca62809b63542e6529373d5a143878ef48347ec81a0933408384a519e8d757ac3a789ce92a25c2374fe2ccaa46d6c14e52cf2feabd699a194a228498274cda949f36a9ba128f7e529bb2e3150a4f11e1ee655d6f99eb2b1537388cf0f97b9f944c93d7a92737e39888f3252a04347101f65006923e0f0444909f9d929638ccbba13654ffa24ad3e39719a8d596fa29c9ba3aaaf3732ecab89d2079344ef739ffc9e9389ac4a64e6da2a4fcee4d53cc920eeb99b429d60a25c6b6a4cb43b47746dc61c071c9728984ad9f39125a7d23196288e90679ff3a74dd557a2e0c99414d57afa944e8972d6b0aa4cba9d44b9ece7f2f22acf549404e755e7d95521d765e19d5bfd73f2106b672490f9d349a226c18644e92bb3c88eb239b3c34794f399b0fbafb5ba8f7144a966375ac79c3be4868d28c6b4142d6f4acea74a8c684ff5ecec2e463dd63cd478d88fe7a0f9a47411c7c87cdd752e01c0167028a2dc57a71b4f7c31c11cf040b801ef33cf4494ffd42ab7736d8e55820311a5f3bc97e359e37f648728a9f849611fcfcf939c066880c310653ffdfdf3d13a522b44b9bb4a9f7f929d8480f0680352068f206810a224b4d6c70b3b4f9a9e4194ec777334bdf1e67bc4218882d6123e75a893203c7af000f2bb8264d2f811d405e1d183470f34469249e3cd38332399812310e5d099e3e456cf121b015134f904f77ed38680e30fa5fa3add98939a9421f43370f8a17862bc9f893215a3b93e94ade39b64727363e2091f4a65ab29ee33df433963fa37f5fd9cb3c8e40d70e8a1a0b79edda12bda00471e0a3a890b19bd3bd7cda90c1f3e4c1938f050ae93328ef8121fffe11f3e46d87ea426018e3b1493c949cacdfce1b043a9048d9bbbd51e4cec70d4a1f4a9a3c4e492b48174461a2ac8010e3a946793243eeee818b63973287b97789dac441f8fbd1c8af9a41e93b36538e2c08dec6b67998a895ea6a6d97e98f46b6579101e659c91821f41805001071c4a4296dded88d61374f38682f57a1284124c3638dc50b44e3a98f89ab4e91b471b4c725de610a7a734be053e74a082c4c18692d299479ffbc692adaea1f8195aae4a434e9e8c430d2559357d771855429685230de5d22173b2666fefa538d05050db329ee93736fcb3836da4870f1fc92106c6d0809d9f94034438ce50523352533dab69966e479037810e1d3b82e03043c13a4fc56d76fcea111a65a41f6770e3284341cbbc97eba7b95c3b82bc097247903f23d3087289830c2571f3aa474f275b8e4682fce0f12348ff080204c75052bae7516334316a85430ca537b9e7b21e538e27f90047188ad9b4d448f9ac0938c050d0595af3a6908e9cf166b007707ca19841493525639e14a733d2088296c68f6e1c5e288932b53be671ac3ddd8562fe9384c90f621c5c287d502d269d0eea5d3c1c5b28faba9c99feba3c79e3d042f1542655a2c94b06cd6601bdbad00b55addc2bb76c13936c26afa53e62a1d8e7de1f4cba502da14ae0b842f9a4f33f952d1b4de7562888dc53728969faae4d1c552829492ab19e23ea4f3ee1a04231a91691563ae5a4e5532826eb0d91496e38a450fc98417497a05fa36438a250b492cac7fa9340a1ec7a258bc8320d8f1bc7134a92e678ff6c130e2794849c949f2b211c4d28e668172506a999af64389850f23d1de11b75a46818c71254fd0ed1fb4a17d3a925389450504afecc953ff28801c191844e334b2bbfdbd63e34477e891b638e9f3e470ffc483af02182830309853df9849d921666a1e408e598b5e924f32a7d131fc90bd283870f13acd9080e23945534d566af9f4e9250077014a160a2243ffd269badd63f56063888500c32e913ed46cb966cf269c78ff82063045f806308454d3dc9939844c8ea3a8d9c61c68f1d7a1a031c4228f79eb893d22475e6d96094f24f844815e5116e00a3f42789f217ede5495e7f5192b5dd17f2355f947cd49feaf4c194aed58b720ce24e9da4497689657a176ef0a2682a7e37984e259f65752fdcd845c1467ad239dfc6f33cd145614bd67ace8d16d57a2e4ad63dd75bfa1e3c768c241ef000e21f40b828c6fd3b99942cb144f75b94e47472aa3229333ad3b62889f564a2ba68ff4f6d2d0aef379f413edd4795b4286899fc112f274c88d22c0a1ef467b351fa5bcd238b3cde632cddba33343e4649dff1bf2f514f2a16ac49dd24f31958143c7f35457be315e5a4c694e8246e5c518e1f99947613a1edb25694326ab45bddacb33fd6e1062bca2b9ef24ca6df926262c38d5514b3c798a95f3c7695ec862a0e324ab840ca6ea4a21c4b30f51ae6e4ec094245c9e74c3a61ff44b535394549c9796d3e68111deb6f98a2f0d9a52ba34972f8336f94a2d81b4d4cf2a3a97690dd2085a3eae2295bf2d5d5b164d3d33198e9e3c628cad9c498c442891335635194eaeceec36bee46288aa3aff1449a7823a40714e513badf6f4d522649dd27ca1b4ebcb0f5dc1b5179a260829be8f8cba436fb4e14c35a97204a4647afe484aeb2a2e2bada29b39e253547091b57b289929d70a31e7769620fb7ecb23ccd0dbdabcd3f16677bfa4f938982aea7c91fca45894fddc044b135eae712ec3fa7c98d4b144bcfc8c986c61225a14a4b8ccfd91b9528bbeb67cfa4a4b2ac9a12e53cb99397344dde244a929fba9b6f5066f3a171468f0ff800f2030d0d004941d2c8804be238b9789d99abce1d915e721c575372372251127e377583ba0c7b3a66902857b6dcab854ca5eef38892a853cd1d648e25f73b02f1d7f1d53d4563b8d188f2c93e3b2383ec06230a1ea4cbdda6b8a5706311e5b712e3b86e921b8a287acadf499993fce644943264cbbf6687871e1181f8a06d9e76a5431444d7738cd0136a3b370c5136713ec98e332944faf94be877d96f104271fb5635b3537d993dd19d632649333746dd370651507957efccec3c4a4e10c5289ee48cbe9f39c98ae046208aa1bbd625f487841b8028993096df732afeae27dcf84331543cfd9ffe761dd50f05cf1837e79294dce843e9fdab763fa7dfd4263e14d466e6bea3c74713da43f173529f623def3a787a288cb4f78e31d5e8a04af250bab212c4afbc69d90b0f5ca8eaa75ae8a6c7ac8bb89bf938aa27457728ccc967793a9bf835c125dcb04331ade74925d7d6a11cb4c809f124448782acf3eb513ae7d8fd7328cd65c939fc4ad97ee450d034f983facd9e602771288612a54e7e456398131ccae963740ddb3a673af4867290a269840cfb3ffddd50cc71b3a142e34e3e711b52da9b37e88c5136144ba7cc9254846b287f7c875aa949baafa486d275ce6a223bde5a6b1acaab413ede667afb9c464339c92478d40eadaaadcee058a78ee77b6975ec5d768679d37156bf2666288769cd284a3e65289fb81d22546a34951b194a82c926e7314cb5bac918b4f53479db5d7d5119934f255d08d51274520c05d9313a42c6138662a9dc13fe4ccaf7fbc15092f649c90304c042494af7de3e21cf3249ba42793797d05d222ee35990962080158abd61267c38d126775285d27dd051ec6c35938ba850d8ea505e2708d55d9929142ced3a9b8e1b01a45056aff4249de9b94faa1d6c4046121963a8a003be2040144a5a3a543ecf4433393de30c34a050b8b20c63724b6c06a5911f49073eca18413d7824776368c00d047842492ad3eb19ff3a49989c5018d94ec29887cca7bf0945dfb01b57bf6453f232a1b4f3e1f536e3fb0493004b28c893b9a9fda4d3257c2514cd3dae94ccada5b6dbc196831bf4768200492829a1bec3e82641c911096535f56c1ee7e00623692c08c13d82004728f89887c9ea7fa3356984a2d70965f92bef5f220325f541802214373e9958a565c2db4b8492e60b6defa3744647ec6e4080211434afc7cc5e360184501a1da3284f6d272783ec2083c78f4d7204a318ee7d7ac37a94e61d18a593b74d639cc92f6fef602be35310206a64f4e0e1bf28e853eaef6432a51f37be28a57b9ada133e2de3de8ba2c6cda493109bbddbe545f94db6cea5e44d9f42bb28dda63e99339e397461e87899ce6ed77a6c9939725118194b104289f69a9ec9818bb29b4c56d299b090e316c534f9c4fab8917766ee602be3d1c0417a347050ca168a6dfe92153fa2c06b512e6dfe96493629e38e2a072d4ac25aa68d7aebe231e591631625b94b52bd71a27673892c4aeea9a309eb23f220472c8a9ee23536c8e6789dfb410e58944fcf27b93ecfefe14402188cc420c72b0afbe6166e6319cf3444c8e18a529c8ef1478b347b90a315c50dc246671a993c28252bca259d6676b10fa173090572aca224a97ad22644eb7b7a5451b6cd615d4b2a39af3c15253195dc6964fe13a3041505cfbba7abd1838c1993e314e5cd20c37d5491d1c36c8a62f9871711b596a21cf2bc3e5e8b98f824521483baee8a512d39ba1b4549b49f0e1ab6dac1e66fc8218a527bdf6f967832675387a2bc1e270825ac3940519246f4847c8d61e9a71c9f288f6bd89ca2fdae647278a292a3ac9da313c5d3f95428f5529f522f327270c274ad31379d95cb2d95519673325b468e4d14647cf4a48baeb5abf303393451da9461b286fa26114a3251b410e7f13a55cc450813e593ca24335dd263aa3ec7258a9f33d4fd8fec8a5c7358a2a87772e1d1b70461e21c9528497ea1deb9c4eca26b0e4a144dc7ded9999e1c4d26f5e061d62651ee123f25fba6123e9c76b0ad9300062341c82189e22639f752b27f876d5340460f1e3f820041234724f02dc955ff20402081970a533b26bdee91e311dfe74d420699f94ccec8e188b2e9f36426b6c68c1c8d68d736b6c4cddd44f486924328a5564236c8c188d26b95e8209388cbe71751b4134758e6532ba2bc4147cd63a3ca43291185f7536a951a7d410e4494a45326da8ef2b68f2787286b36316e58fb0d51902749b2efc912febae72844c184ae095f9acb4108636fd7db75eeb6cee454e811c27350d2ab6e20c831084cd8baac2d114449fd961c4574e8cc934094444fb2c224f1d23640143c95a692937e54ff50da9e31651d5a9485fc503c2587bc99e80a531f4ad2c9125b2dd3c7ddf0a1fc275ab59992ece3bf87b288495ab3723d14e3a753627e3a0f859364dbfc4d1f25db782868d29dc454a149467c8772cdb789f3ad1d4a8295c93453aacad63a14dd5347b79f74289699ee09277328f7ba678ea153d4470e85d74e4aee637c6c310ee5d4bc6fd9dedb263814459f6462436ff044bd2fc9e18692248d5ebb8f6bca97e46843a9c4e7d38aeee81c4b72b0c17ca2d1ef7f5b43e135673991a9b304a9a1145b625c89bab8320d05996963632568288c7dc99fe4e40c657b33bd22d6a264133314933aede9e7294349abe6b4c16312ff3c19ca712776b831d53afe180a9fe39b365444a62e86b25aa94ed2ee3094cb33c612257cfad96028c8ccb4d174bf9ce47ea114d726948c1df36beb85b2bc69eec8c8ce1eed423176d4b0b26d62d797b850923309f1d2133a9e96b650124ad34d6fa4cf5d490ba5bd4fe941c68b532b65a124442b83124eb050d412d64413536593d0154a25091d9a7412338790150ae244cd67edbbd0f92a60f12bee39f95428db6d6613d553b4be5328d79a94e3366a2eaf14ca99f2275d4d5027280ae5282636c959846e8d50289b68cd7c85e809e5d6934f6c53236b45e484f2e998e329eb533a89a809059d564a98bb66b30d31a1a0a374fef70a2da124e69c74fcace9379d28a198b489ef9f95c994a02414edfbefbed34cf9070925499aaace3174506b1fa1185fa2e74e7752be11ca49d63c84ce5762e3229483107a72c7386bfa12a1a062de31e634c7104eb2c9d026c8f3e41042d97654f86c66493a9e60943c453d7e148151ce0df39dbb4d88e67e51bc0f9d27a94fbbad1d5f9442be843d13f474b84e2f8a77257c7a9f67f1102f4aee629e641242dc767651b0ee24899e374617e59c4c0c0f0d2583f04d2e8aefa6f36c6e838bd2959c4e3e314a880f9b5b14ff7eabe4112163ce1a5b1465bd93fc7bcf8dada945e9e624b951359366d0d0a220b29fe4bd360d15fa59946c3bd7be48fb0d9d9745613f99604a5022347f3e16251dfae34a9860a79e874549c5497258088d179e7f4541e71d6126cf295162de15e58d41b4a4320dad9a6f454127fd5ee2969f9cf3cf8a5258dfe7dee7d4cdff2a4a99d3eedd664da5f457452944cd2a479c8ae2697d6c5feff8e1a2a29ca254797dd09a3b7a8ab22933794d66be935153146496aa3fc94693a896a270e24436cc498a926eaa9a98d4cdf48da2247b68889d8d161b1345597449fb7163091f0a45490cea64ddb31e14c5b8bfa3e1f3897232bbcfef279ed04e08a183064f270a57d53144c8d6091a4e947264529a83cac9d1df44c9da739017a72dd66ba29cc4b7fa139f3db967a27ce2758ac9d3ffa863a2545f999faf2f26af97289afa89094d6f63ab25ca39bbb35ff78f47b1122593e2b38dcbea97478952e7d81a4c2651bc3fdf9c3e37d85d2e89e28be779cc2351d298ca3aaba4215152a2e44da2f388d29d14ae7db1e1724714ed578497aeee084d238ac1f488ff125ce4e4195112e3793be3ed84cb17511cf5581fcc83b6bf1551d052c2293d93f3e64494ba24e9ffaf6bd6444461942827ee47c3747988b27ddc18d4c83949fc0c519253fb4b1c3daba74294b2c543c9ebd7ae12a298df329d9ce8d5678328ccd89f902234778e200afe7aa24f327945571d88d2ac8e68d00c33220244492c194fac4fb7ffe70f454f4a8ccf96127368fc5078d376a7fa3bfaa70f05fffba001f0a16052a3097fa393da9807b087525cf96fb04ef225cb03d0839baf730ed3511e401e4a27d49a9226886852790078289d76caa43b79fe3479007728a87555c93908a119f200ec503031d32f4fde39f9f100ea501e11f2c73be949eef100e8500ed58fa72b469c24c60398434997faaa8d769be3e201c8a16cb5b2e3bbfa694f3b803894437e0ee219934e6bda01c0a1e0757ed2c4742ad6b4037843416309fe3d32bf66d10ec00d852d0fee41c9e6a13a3b80369474106fe2d24d299dd901b0c1d82927eac7cc1a8a1bf2fec7a42741e9d5503a793d881c21d7cc4f43d95c3c93dc391a8a31a75ac294fc41c36728e6b28f5e4233978e9aa15c654a92fcce321493a4cd35750913fe244379ac849259176a7fdc319477b3c36639f19ddf8aa1f81e5f3b89c3502e1dc2d56450d24c03433193d2bcf2ab1c5ded174aa2c7585d3b42959578a1d8eba3356fcae59aba509071d66e67c4858218a533cb77b6500e99f7c3069779df68a1d41e74ceebfb24eb260be5f07971214e6492f358286b9e3949544f3278ae50fe11a2edd9af94b8154a9fc7cf63384149ea56a17ca7ec4437a526774b8592a8f36da5b497f53a85d2091ac7cd3c955caa144a4a893fb9c43bc7a48c42d1f53d986c909e4950a150ae4cd9a24ca54f28b66990a93542673d714271d5355597a909054b916da2db9e848909a512328c0ea54a67f52ca15ca69ad13a6bec7694503c254c3f084f276a9250ec1242962c62d4cb060965554d229b84995c9a23942f33c79cb4c931d66f84c286fa5977fd1ef18b50d07f35a2456b5487088513c784b5184b0ffb008650eed039edda3a75d8072084625687f7de1d8cf249275e9ace098ca285becd0e19e3c9d9fc4541d98f6971aff1cca62f4abf321f1ae4dbbccd5e14935c62ec960993514d5e9445cb8449597b4a9eb90bbe5486cf6266eaa26ca3d397d251cc4549d29e647f92d56453828b724cb5fa75ea4c32935b149409fb9d32ca0413648be2865d11e92143694e2d4a27cd7edc9132aa3bb42827295cce5463d9c7cca29864271953cec8cdbf2c0aee51b39f8a63514ea125fa886e7a7a61519224911dfc93c7a6fb8ac288c855ad49771e5714475354e75342caafad28a790a9438eca8ac2c82437b828add5e12a4aaf51ef7c34544539f46e9a0c25a928885177d209ff616e848ad2d6c7a43f45413f9e787295249898a264594ac7d52437d5538ad25e2699e4d0fa4165485112b369aec3e6a49e1f4539c663682f513d26a22898aef5f624762839146539b1840ef71f5f6350944d0956b2592a6adc4f14f36e66e8ac93d7564f947c2d3d98a815996127ca5fab617ece46f7769cb84c74c79f2cd94482d2a357939834519ad12fa9e9397710ca445146a8174b935146081325fd3a25a658c949165da2642657c9edb61a21b2443985b727a5714e664e258a2566116d15bfef1f4a946c44694d1b9a4451cb44c9209498de3492289f94f257c22479fa8f44b9c32a3d34c9f6d121519e3b37111e4b091a3fa22093ca87a73b1d3de988b2f69a6795fce11e36a224084dcd26f87b8f18511ced9e33959871ef4514f36438c947ef2d355344e12a3326259324a228d757254544415a5b499bcc3b06934314eb63d83fdd36ad27431475ade48d25ea018df9a8e46dc522e25820120904c260201406226f5701b313080018401e8a046391684058363f1480035a322040342a221e1e1418160e4402613018060342a1201808088582a13020200ebaa72a8d0f59dc8e3311435b91c7d702b9c2ca9974472508f2da1e16aea488cf13b778423dfd7476651f072e88e61494b3ae8cdb71768c7515af4d9153cdb1186a8bf08beccc4a6790eeb735854f11bf72c15b5e9bc32cfe37d08d205a20117a20696508827ebf479927da46619557b1b9936513442c10513c22d7ee875634999995c4e885ae6a2ab557b83e0add27c14d1bdd9dbd98697d94eb92f5d243352a5502993d565cfafaa073c87bec36844ea9c733cf5b0995d84f150d841ed430d3d53363a6f2f53abbae2f415cadf935341e07df6364cc5f05518e072cd48d89afeb7bf3764e92ed494ea8052688c39a7a873a59dd2a3f96cf2aa3883b76286f653a718240eaf348585cbc1734ad99d82441a45deb55923599120bf66401bdb9006e00c388e7040693f70a34a8dcd5dfeaa3fb626757aaf2626fa6d8d264454d27138dcc08ad8519ddd260b622e87ba8d6a47adfa830060af408a808a4e064524061b23ea8f824244456f8940c0b19c4349ba0ac24d8c33fe813bb29d8adc4e026cbd4939af30eb3a0ec34f2db077eca35d96a8b687e1f208f8ba313870bef48a3eb27bc245a32605a4804c20cf8559a9309188060d175d4081ac91a76f7dc75d35100e72e500b941403db279496190c7d89e0392233a59391877cb701132aa422e83c76091e3126c361bcec7d0558597f59330016308ddea9221a30e8456de1f140f34ecc922e966184db04e902a34ab612da36e8323e89ac7ff189b4bdf7f6bd37058f6d7467944e779108910c66328f45292150cfafc5a2d54c68cf5f24a30aefaa70e22b8736fcd33cbdebb250f787f52c47ee96f08e2a42f8a771227a2c28da5bb8635140179cd9d7f881ab01e93b5cc9b9ca56be581966908f96d8a415d44e9d8d3b44289c9d6f7c5b47afee9cd0b7122a550819215eb4cb4a60142a63717f74773ac607fbfb5b82db9b44a043565ec234d6826d5fe3e21c79c6da34e0ded2a6f680c3568cda6066fae9b800f955e469fa5b7c31190daf3c40a727bde2cd133d1b0b3be7bbb80d89644186e55e29027b16aabc81334c53d9cd75468141fd2431fe5e8b1fdf8f6de06c8b88b6db4cbe462540da8a59cf9a7d441907b240e8ec2769894e5ad284949ac281b6cf9afd9f985b7e3134c9956c5e0242999866614d0617f05166205e4362dd6a22ac3847674ebf6013c8516b01e5caf3122e8d74346f771d770c96f01e4afc386ef00607d0120a443b1f49275611e07324a11746ee3df8d41fe462b42d4fe4c65413264ef7722c9f25ec87f1c7de6a99e4dba1f453fc88ddf19061490b15b49dbdc3e98b94fa05f2ccd16c53f09f9ade73f74184ccbb77e495dd0dbba7c2f36d622f54d4418858000642ced0994c6458980c43f61a6136958ae436801fab48411fbc1bcfbfdfc73d5718257d23efe7ddce13642b28a3e47cf48efd4377084648588445880b7d108be8d0701b1e8c03cacc3cba6811b59f07c7c01024046c1f782025ad500a7d51fad40e35cb026e4789398c0fd2213642c9fbe0d594e4e55323436ce9e361b1658790aa564e9ea9ac765a7695c2aab343e8450c7fb4ce8168463d0690291236aa44a7c44b3cc24bacc44a08044eba8806b11013a14de0b4982ecff8013bf087eddc8719d30e369eefdbcb7e0e153936aec51d96e2d4f92fa24b54f6a8085dca96cc03f677f05d0517e1081c800370181c84437032c0229f37266c1b4b1d2915eeab45988ad6f3d44ffd422a3ed9d93308c5e7b94be16638084600012480e36014208454c00010506171300e8561222a7b57388d381998e337f7e4ff9b317c4fdd64394b8334a4833bb8813bb0433a02067c301d0805db7bcff7a1d761fb5c83c7da69bc57917d34d169c31fb56541a34066da1122dc74608c0ac521c229b82d457773ef2a572609377f4a6fc99dd956dc9bf35cc877e8001fa0a11d8a1496c0c854ecf02096e95f96c9037edd8e7e6397ec0fdd71381d8c82842008a508e134a1f1dce8c789398a8fa4d03bbdd0128d51fa1497af49edb0350bba5d32eec48db811178b9b71a830b34458cf73d3393bf6862e11cf22bda19185ec4af994de28476abb229123796139d1deaee6aef4e52a98f68d7fe88e8071400e89c369700c0ec1009452a733cc543efa3b39b15d3ab28fd8013b6087d901da96cc2a10e0eda4be67f7ec965d60f7cd684366c4415228b78b3c160de249a0fe7e2af5dd04b7e016dc018b21371c0c07c1303015825e26bc109575fef81d8e41f6dda73099e25bec8e9bf84e381b8312aa242d24964306d6df589577d4f8081e46d5634e08c8a474dac50c0752e4dd1d0e3cf21dc0ba93d700846052ffa042b03b5951f1f0cd5d68b68a8a4340b781ea2c818f587d46c66646094d04ffbba0f9ca94d1194c85f346f20190295e724564a457c0d5587cb548ad1d40f1a56c68144774523a99f095cbfda01950b66e3539aef7b2c10ba889f76fa5a0f56a3120c3bb961ad315d65987f961a322d68f0bc5983b23b5309079e7a42de47fa84e9a7fea8d3fedb34d0173ae6f0d2ca03a1ab45d927fb0b9a76129753abb358e24200136d5636dc131e7191275e8908c73d943d63b9aa5f6e9c4cb7272088d871cc0dd5ea897635b853d5573e25588d5467e931da2eebdb449e248186e16b721719e90e1c1baab1d9e689441639c953806e070861c4c9f912d32349650cdcf0b94381451d10eb40be2ead712090bd0e9df82fbd11667458b477103a99ec8a65cf6b31cd3526ccd65f0482d2001e459bf1a00211ec58c8f54caf40a04120b4bd07f04ba3c37e87ff698f3e77832b12771168ed96ea50ea29a1b837efac3e43ff62cc5f2f693fef863ca64226973c5a5fb389fc59fc064adf17882789320bd3d42e5bcce429de41d30f7d1928efb4a01914804e508dc1fd1854e77dd9df1644011e5dca6b4ed8a7b814d819053db46fd22cb83416903d8ec55fb40ad25c751bdb46aa7ca6902690fc911c755b3c20347891b50f86cba6b490e151fa126dbcda74f130d28408a3d95b10334950c84a8f38d29e3ecf24601b67c28b841d4e99cbed5fcbe2504c30b40b7175779f70cf3dacc86d1fda454a3ce0f3347eb5380f070ecb75e0f1e7e0f8d9699028c412e745021bf1a3bffa1f108c200916b5dde2bdad1b24381a47ef6b5a704eeb047e7592725e89e121c796a61b9e11e052f9ef119350722dae5c476cd8ea02a91856f6d1c63f5ce7ccce7865fdd180a528c2ced962cfafb68c2f606afe4aff52b39da4217c3777027d5dd5a05c5a1cc85e9463a2e3dda04042f8915f070b4bc1a33853af102e72a9a6983c0f1c60ab16e306d4e0fe5717c173a12a5cb1165680412a7d91c730a375dc984cdacabf976cdbaa774b81f26f5c0b0181400422b80af8a0d88b150be82f43b04622db86040937eea8f8aa6fc1486db2825a1a1b08446d7c4c0df4fa828195a21a2e450f1777206a4b4e11c9a10357b46f5c0a11567ce918a092d9b36d6ca3042708241a6f861843ac68c5125419f1b870794925e65668a70cdd699d5b51b9860b37cabe3d44541671db64ef7f28d7a76a8d6754d94965dabe6c64c26e55dddaa8154742039ea4ec5dfb86b8736731bc91271a7571c1f137faf25a4da79e51040bc20554053a2dccad2bfcf69309b8a3b4175cdd5de50e5c0a24f57167db75a400eed70b393209fe3d708d584e5725eeaf5b60ea029616d43856dc19221b0e999d4a070686d2d0ee0d7e0befeef3a07a5342698474a638e016da6c3df839912312a0276ed38006a1d2f0fe040af5dd59520b5c2a1be1cbbba35e95da4869c0daa89b8bfa9333c56e559048c748f790a77b0a7e2bc4898e6ba697e63cb8232d65527abf6f285e464f4d6bc870c58ef81d5760ae56bce0881b3190c67f78037fa85585daa6d5c87a7cc0957abc7f1ee328a4eb7ad61f9f9c0b3362780ab0d447054c4cd347ca0af3b5355e3691eefece7c84fac0819d0f5c1163a595629e0140aea6365fbaeba40a24993808a13d6c3586c5932c29181835fbe05a7d049620fc8f162a1612777f6b19ce1d920f7db7a2b02f1f8973010946ed6e37a5010c829a4fb19170bb7dfa3c7a018f8fe0ff4e4ca4dc4cb6243199fc5664f51baa025c59f034c9c512f8c8d3a93112381b0d09b42cae83da6129b9fb9858574d5ca7fd76de42d8346a782967ad0759d0efecfc694e7d0d8c271a97895018a1c2dfeda6a400043f7c6bc4d9e229e0dc5339aef7e04df0169a603c23a424042c539b76b4e6b36c32515c18f24a2df7e546318056471b7b8e47b2e2f3ef4ecc036df94d99de20025d75ad96e12170c24f6331795250fe63a5cfbe721e4db632389e6f7eb85e89b59e81c6c8585d8fba3b2905a9e9864a73d0aa109cb224fbe6486adec7199926484539496b9d7e0faa20ebde1919f64cf2cbb8e9e78db42c5b93174ea9e81c1c2031943cefa2872952fd7d347ad0847cf293d19811cf248c0d44b078c0f6e3017b4157bd30606ccdd7790a246c2b5badab983a70d8340ab243b9ec359b02de050e4a4f8845fb61ca09d4c7b3abbdb3aadf0ec3bdc3647d09d85914f5056dd6515f8c178f58a4cc45b2925ac200eadd76413b3cc592395b7ff107db6b90e9bf9588dad736dda18a3dd13025175f75b13978a0ad1927298320cd74388e01aa1daa32995155b0c06ff2e9a9c38d01b1d103fb045499bcccc29b1d5a660634c06eec96fa1f48221f8c157ba56ead2915cb659b0ef2a81e851bde9d6a6397e0dd4b483858d4538030ca5e0c3beb8e720614fa5e267fa127c4b4f70210e000c1dd4614d6306d3bc3bbde7a45b60dc1ce3d5ea6239db58b480cc495cd9321825298f8e7405663e2a330787a64177da8982436be871d0b59c90c66178547d8a1e81951d194d690f12fc13142d13a59f2a10f2e84c8a5f48f58d447a5d3d703c9c5138309162c379497e5ce666371b6ee8d520d57976b28a3760cee2abe93ea2ba26912aab1cb0362db25278f503358e9427a7746c0652579f8224f72c0b4e108792a38fe0669a932637ef641473c275c1cef947bdd31b7d0de338c573181cdd69f2a8faf0075141a5121f5938cb8bafafce65e2a389c188b9bec6d7dd729da0d522c25f0c9237929910d4a0198d6185cd15b56b18c287744409c14ddc4e729a78e14f76ba6079ebd1962007e6b5a697fbf361ada7f0b0fb06287c356a3f58ff6cf73c5febb3d68c7b20f58e4eda7f84047e15a8a81d87d6fa9bac6e50c4ddf7931de7461c7b04dee8866c203c4d449e65f14e8faa38864d69113a5db6c307dc00ee9de20e1ec252382d571e7fb46c1c1232d13d41b0ef29a371bf4e3b9d33205f26a27c836659553e1c5c7c0501edf08636f24296f0fbb6c2c8b4d42c21c4e86805581b5c8255beead40cafdad4bd947425802fbee7890e896d5ab6f16b524156f3ba56b73228ad7b0fec948763d51a35cfe32f13250b3ea3d82c6b648dc843702096bd0ebbb5275db72ed8562ec980e406d0036a467042b295eb0f7d79c142a1bbeb33eef49253979912834343d4396cbb7c0bf271514f20018ec69e998b51f75dfee9778f2c5db7fcb968fb217b0bcf3f8a24666c295bd592520f4d02ba5fc1d774eefb60305391ed733cde317bb9db60283cbfef60ebaa6c6d45b8aad16df47c83b17ca39725f9db1d31327414661507f8c0b9c5a1174c5a2d35c94a3d42cdaf86cc5f0aae1682e4a8bcb82a27886d48d11d462d570d99f03046ee00d4483168a11682986a0bcdf2f5987f69f44488643970f0d957be2b367a141c33e885dee061f609ef820b6eaa6fd6904e04dda71927a0da26a999a307bd9ff531690a20ab434d45cd0d5045bd5988f3681111edbec4cd0a7f637d71ebbe502fd6fd4cd2af25072f0e8706b3cc39efda02888768913682514aa53f946a1b52841b80129ba6335bf7a501c744fd24a50d59b4aaa5f8a1f110a8b2685b5168b7c823c9dc97281c4de9680d4059a443687bd2e85d0387048202558f1c238b433b9c704ee4cf8773846eb060ff542976b3bb140255cfea5e6658e21b077957765a70b88cde5a42d904b5a57a7ab5637fb800eec1a111ce38ddecfd7d3a3294e9af34bd82a7d6c265722c48a34d644f6ef756e26785850a9d6b9bd5ef47e252d5cb91a230e7c46838344383333371f53ed40695ef6569eb04601369221d59c7cb318ec3bb1603fae1acfccd20cb01742311d696baeb2c62643e9389c71779ce242d495e89a0b7beebb0aaf67a16a94362f035bfedd91e000fd81451c457979a2733d74238a30e3476a43012540c7a917fe938ed45aa9bf69a28015c809e2d742b54bfded9d2a6571a788099ac561e1c68ab303dc068be84dc73cd25bb3759dda503f019a6b49cffaa42b42bee6a3345329c5f35312122c024aabaa5eb469723dc52d3c9749cf214a17e0ae20f34de242d1c9affbdd7c4a9ad3d8c9801d835823206be629ab504b9fafd7199253c9e1d5f6a9601b36d322e084e464d1a69e2e10f80963df0b15396275f22ff11889712a883cd18cd0a392d14f57ad5f9ba77754ea930396dea9fbee17e0faf6085c9514c94199ce1913d70f9fc1f0fd5a691a75bbc2030ee9eabdb949b31a42b0e285b38e8eb01cb661fcb20c13f0ca51c0c2c074d8adbe9d0455f635ad0f876b6aeb711def59e4348fc2369d4a1b888c4ae7b4f9cee507ac1e90a27c9538fb30ebdc6b05d6be345b31465e9c28c122d3157d6b70dd3689f417e6dd1332b1458401731322291ef593138d90fe0c9c6f21830c39e3fb453c32cb529dc9d40bf65bac7a8559c02aca2aa23da361692dcca9d0632edc42746d5c9cc8d6078f4c5fa37938c6461e1daee97a2060f313f2ee0a163eb7168d97e8eae19014d6613d15bd14107b29280dc0db51448438aeb11ea45c25441983fc1f54d763e30eccacab0489150231850e0aa053f8589630ab783df51be730cd20c27ea2c517820a4a30344c25542c12b177a9ec6fee3da7cacbe403b5d870924b37b80d52a24e2f14c43102513ee6a4c346c4613ec54032db6a128ed45190131b46ad0b3719d7405afdb7c1235f7a96402824aff71241c53048e54ddce2bb2a6423959e9901033368cf7bd9327ebf2d579f2e49bfd27f8ff9dbdd3087b62250b22c2686ba08bfea1231cc287db4a5f3bb829a20155be3c892b03097615228805c1f72cf00f11af44f0a97ad8a072c6dab0b160dde3a1350a58567167a8fc8102f571a390952f3db38f3a3cffae35de6f5e8dfc71caa4692ef09f717ff43adc91d1a43585bb071fdf25ee869960f4c4140f9cf519004832afdd99524ebe597fd469fb7708a50f14351e9d44fe5f8fa3b3526fbd112d39046ead80da3516505efb8064a3e50f40452e82b3f7713d472f90fc93ee64374f6db4d5bdd7c5f854bab6bcb45a9fd56412cc602aa2266219c2912e9b67f7b77632be30ea56ca8c56d0583412198a3e0d971cb4229b32db6a4769f75af4507560a1a78a27f3ca584d21a565a076c7130712a38293aa624eb32a6002598d85743f4d40f9d4d4f544c9e650c00d232b29a4d3b49ee5da866af249db575045c42f0c54d7e9a084c3c317ebf609985cbd18ef588e9def7be38b9c3ceef8bb9919578e8f6b01a7c9bafdbb9e75979627887be05e062f7f286986a7fdb08f1e61cd72afb1d5923709a43b5bb036dbb0130cde1dd745c4a09a843cf71acf14e402241c9ad98df318cadd58e5882772f91d7ee7a62b232f3d86e0c83d301a500e203c73b99c55b61f211e74321a87d498356ea2a638d3d282e13332ed1eb62423e8e9ca773f5aa0e9ef0270a33c5defd0a4e66c3ecc0104a28fb499b1bd5b84ac6fa34658567dce5adbb69b9428533ebb65d193eb22a89a6618b43cf6e6af0b4585c99a66a26db1425c565be6411ecb415bb1ec00b4d621052d6118d59775683d15b2b0c840e6c0a1e5cc1f23dc88ea06701fac86f5fb065bc51bb85de2967aefbb026e0e0a9caef13340d45e4e7a43b3f2e890be94c067ac147cd56655c696a9de0c07ad39746468ce40dc84fe26fc6d8acfad8121e7439278241bd2244401d6d02affb766483545f760b4a74ef25b700386bbe88f6eed1052df2f4a1a85d6768ecd44d463d195f4778612c37497e861efd01af15638927a5f037151ca96e3a3ebad6a22f25e8636ac586deb1ab0a083604e9e428479f3c86dec76508fb23bfaf07f198a03e7650cc85d4724b89d421b0a394db29f4532478ff1e5e96f8438791fafca142ac3830124928c937ee2df92023c5bb653b5e000392933e783e9ec605cc6740c0fc3056806d6029d7f53f4b04ec0400cb0b13b8c16dd9d879a38ae9c3c40d3fc478addf9e81c8b594d6eb2bcdcd7fea086f8adbba094b6d108386b31859fe89de7d56ed42f8a702c5ae38b17a03427aca0d47e47a048fda55f8d27a97d080c97000dcf3fe33b6680eeb3b10866135e679f3fc60d6214a3ce90904a01a2ba062d25df67c238d1e8801e525d2df2b41c343e1cdaff9d730c42545777b6596e96d2ad2c617780e3c684834183aa5d9846f02f4c8d97301c1d0c06483a03a3bce517f6a45799286afb40c5a0f56b6830e5f4b3b6d74fb78c9a434cbcd4421ae8bdc7a5c7e92885dde269799355ce0a32cc76ed0acd9b0ac9168870eaa9c9dccba7c77c6fb487f1029f691df45113c00c0e0285a69f1f48a0952dce1e02dc8398ccd7a7406924464229d4e38f875473ae44d1bef728e9ce661439c2550630466a9bdb7a70d82356b10e1e899b402af69218b21718e1f5c5ba0f6216afdd57a7fb9c5f829c83839cf07bfee380f585a968e73b06a6f394363e37cbbb9ecced735dac36b2273bbfea5cbe082e746c84c83f6da60a87aad13aa9e1f415b710770aa4b7e70e2f06c179b8c45e7e4202e8eb69ef1b2a04d6617946e1df3ea283980583bb3f251687f3a171935d0133626ddb8e17601c559df4e25431474bc1aca22a3ef75451cc99ef408f807bfee72f0bd5ab8a49666e3a20aa281e398f3b4c922748c0d1b51c7aea28c4bf76584754fa8fe11fc4eef6546ee1cfc4268a6a20ab9f31e6f95c92c124319e94fe09333bcc112fb9692419a1124174a3426abb00fa0e48335b060286673fb47550905a2ca702331fea2e1c0ba8c01937895f30419e9e1adc9b9d0978e9a5242b2f846ad3f3885a2cdd09fbc79fbd4fa8514622731ed566c77380713c62d691916a04aafebc880ce9275b1906107830d6771744fbee3e0a97a8380e20c4172f0146a4c97d359145022afba660f3aeec8cf2e51340074d6db64da3d7ddcce0b88e42993fa0b508290a247ffc8b906fd4fde2d7ce1db9aff3e66a344a6ed3e334152415793ed69731665cb56943129cd45b90af789821422c5390f91a0ca9954ef13588aad92f4310f0d569da08b781e545e6199156715800b8c43f529e72aa870c51d8ed69efafb14cb1f78c48dd8520bde3196514ed7f83c34ba79165078864d4a19de3a607dfdfee53549cfbfa42b77a851a8f1a466fa4bbb84ab4303aba751a527b7531b93c4d358e39c6ded1f4862f9b79d46937416bb169201ee9841b507e300f3c0428b931557a4d38620ac9d4fd4937975b5640580d2dc01faa99a596d135d35788e21544a44c111db859753db690af45db09161ad8d30db8353a8ae4cd368597b7d063babc8aaa5a16fa333ceace8051f79dd1dec60f7c77ba194217f5d0ad72ddd30e4200993f6f7aad3e027884a049f21217f308abadac611e4880ecfa02f1881fae34e025988fc690eab09f1552891f0bf9a54f930b6f225ba6de1739f5e1cf2c87f08246540b758ef5cf2aa918a2d59d8f8f3f81a03a9b407857c2b4bf5ca6d8b6964c85e2c140803c018e80d159badf640ae9b54e0adbc50a5c28c6970b93b060e91b2751b51c4b8555b230d61adfac7dbad1e948842851efa59715759268f8fd4d455e6d611e97e45c0db01e9bbee6268346a4caa1b1e3841c4a19f205bd83b4a9cd3dad410e51ee67138c3424a0ec7724291da14ff6f185e3c89fc483adbd2579493ee0da934e8f029c1f9d786c868171bb060bf78cdd549e8ab506b233a9f4e0b984cbf0cbf7c70ff576586293cb0888cfab259dff072bcdbb15dbd31eff406ee5ccef95e0d3ce92b81f7aeb4761be56884347ffa21021cd70ca653b2e37171d4c44ac13b43b664ec57a094d44727e755c28e5499804c410c46412ef050b35f892fa5196264e60eaf2407c9f7848d8638e70d740a0445d46e6456cf176aa207dcbeefc7cdfb32e4890f499b79d8a68a0505a8e71a7d0ad7ada8e27ec6f20b9ad51398c39b057c0de85c08f2d151a468fc2449c1682d7f333a2462b8793b596be81f255b9e9d0d3a5f3879576d7414e54c762bee02d25e7c83d3d0fedf460a87df8958877e60c30cb4fcc7d6f31195b384a8cd1db62c8d73a67c38b72edc718d9b7d5d3a678ab368336630c8aa1d2c1b556921dc3f4600eee230cdacef8ef723c888ae84cfcf4ab95316135bb05a40d4806587775001d5c617903deac92128d5a56dfc1236d417fff8a823f30eac8c5ea832471e361d7a9a4a7d753c16247ca1b3c76bd26e088667c34bcacf2a97b8c10f378f1206f38af56b86fc79e89c7d4e8b26d5cfbf5d4c24626bc4b1424ee8bbb0d4a6dcb1584c63b00060168500877731d5a376c00838ae7c7aac4436920bcab62e0adbba18e7230437e74940b3719b134960a7077cec20cc3096b7da80a0fd43b68c4f0c1012015e9eddd7dce36ae53950f2e187b506c08be30ce0d1af792be7edb15f6d12353ffb58783902e587405668e35bdb0ef200c46855fae39527ca08f44bad98b4e7aebf8c93eb81139b549c1aaca348d9a64f3047d62a2fda4da787348ed77350b095075023f1f74a2421e69108d939750351b9c3866c94d40acb0f30fe273b38198978924ff77580d82758366220e9dea3002ce6075af12107e55cf8dfcb02d8d971e2469073486271f23c340db5282e3b8778d42b1cf1cb4920aba248e5911de81f81f476e82449d13041687061586627f122eb63b84f093e8a6da3194d9039dd291129b83bc23e3f5e68a672681ef3c4815c3cd0c27590285d863cadeb61b09130f006aa2d3efea875cb4b42ab25048aff74be91985ceb430201320368645d42f8e51a2046d386048a203be24ac07155f7e434291b4cacbfd75d9e832bb10b7fea5425966f0370f47c64f90ef0ee7040b4ee79fb19c3a6e50aff566345f49e57f2027b109ab7896d320df7019e35290ad54a7ac47d3feb4915da70b503370532654e67194f99b08d5c613330de3a6137aaf009077374e2d4b468cee5a2d4779d937264ef089b5221d7cbbaa33e697fb075c44f26dcf56e3720483c6b865fd36a42ec4109e1ca200e864643575b56849648453fca36ce9dc004413c27ca225e757ee0c1bcae03a2ab44b3017ebdc873217b7c1cc283c07a30433f8b07f719aa707a0a2849349ed7a85abf61b81be5373e6e869d4846a573298b41639f3482a224921da50d13d3b7386d460e3a6977b5b9dcc6e0deea941be1b92aeb18e8f891e9d42b21d45bf2ab4f0998ad48352aec29fea88f36cefb3f0f64b695798e613596bc95f5dd0eb98556647f5d04c3839300328e2b8ae2d3f39e646fa58c192f53e272fadc0453386a336298bc0a93b094605f311ab11d0caf0d7db614302eb204f3d1033c925ca9e4afe51be81c064f4b1ddd23ca70cccdd5d3df7ef9db9a34926e097a16d02e940c6f1d9c99aa0e99078e75bf6d27e0c555c4a8cd99fa996f90f150740c069d025bc4e89b2995236197428016470d0cbc0d91ce593145f1f9b1810c4a020443a98247108d7b4998305be464686ed0121493c583f21a8e2ff8fefcb7ad0cd17cca8b6957b8336c2c87841d4a287a82e14ac96f241fb5c931cd7d9cb3149b66145d425c9c733d7aed0f6c9c93b0ec8879bc1c98e78b4b01894a8bd49d23c03139cee3a0f21ffc9e984692127bc2ff7b80f5eec06e185c20a096ae6166a75ecccc3af9a18bc1ebbed66205c960015cce289e8c7e9a60060398f7bff5ea3551ead1bfb5a3d1244205185b9d2a29bc328ea22134f1d8f63b69e9b1945eab27748bcc27f2e49ceb865343da10639f2a88fa8ab983df79212201319c4c3e30b6913fee2fe03babb1e97bf958bdcccd0e3831b7c510bc8622a580241edcb0270c26cdd3cf6ab42cb08dfc2a55e64a1fd01b2c249de4eb5ef84ff089ee532f24c23cc3c3532d1b00d0db42de76f24cb0a0a0f9440b4fa649e48ea18b3223f4935c49c2079c5003ec61658690a820ad6b463ace3f7a9c134caa7cd5fc8ec57840d660070ad74a7d8eeaf653fec284a0fc971a3ee8eabb256b8c78dfcc563cd4c2b8f9d9d3e5f93b36cd02e2f28af59ad08651b522f9ae7b41ac63293c4b4d16408028addfdb8d865f5a698ecf88d499a4416a08b233b57c804199a153486f7e4d9deba0c92eb08f0e0fc15dbde453d28ac22223b7ff8407785f9f954b1da68478b63546431a9d7157a0224ac9ee84b79e8bb4a68ca55bcb7766cdc20bafa401447a1f30ca61217e416aafb632f4942ef3d01f10f1aa50d621024ee96cccd585fe392380a35c550b7b0cad17a30720a78a42b5b20889ade8f3e0b8bc7a1172173e5a8f10603b973d647ba9c99a2aa06e4724a66d22ff576bbe1eefdd320e17d59c27762d0747bb6517fc7ea73b540ecb0e4ea68895680ea08b487321049f4537213c0a9c560d5e4ccf3714060dd7a0b95042eb108d2c8badb84894019fac50248f844dc8f39387265b481d7017aaf93b0c862b0f839884ce7dc4a7ce331a7e51608a7401278d540fadf40ad3e14c659fbde9f7bd864238258e0a0e6ead05b998b4f9e8b0689152228c8cdcb911c63183ec439b7bbe2633154b6c26c9bf251d3e9ffc563b6565ab5f09e95b8862ce268ab6e86e60a23b0dc1d079463c151710039a9399a8e4f87a2c3e66ed7ef4d2871ebcccab75355a62a693f43801f079b8ce77bc95d3a957ea26be993a67e48b8814c5582909210025e196ff38eaf2dc830fa94aea4c969790af8daf083d5609fe08c384a553873447d7226c9636505842551f2019660b3106f92ff57d956936452eecab5be717f83c94527c8c1b7df788964e501235f5b6141ca4397ef8f524a037e596b9f3c0870f2a0a109b9c3a0c41bf3130727840b145925eefaff24744b635cd4f04970794f4815ab81d3a6823e71b1c6e1aeeab46227a19a9c87b2eb44b8a7a0133c33e1607c400c113640a8b0fa777993e8fa8992b1fe09c04fc33728f98e964c149d38d2af470bd3c3556126c4a05288a14f2b8ab8de2a36e721a3889f60c54d1f05278675cec6b6da464f02056612ae3882f8ccc87761a332095d4feb873cd29360f92ab6f84c1af529c1f566bd1ce1da39ac3e9617b620014a590c6c72a42eaeeb34e4bb4d25c13de9d687d3d3da5e72bfd4e2b6239b20345d64a4bfaa5281eebb7a90c0e84de247fb9402c55ed618660ec9026393e6cfbdf68b608664615b472b5dc17705f4951d69ec344adedf5300e39e34d151d51746dbeb561b8fb740bf847011e99778a168237ec6b98e71632c49c4c4d91f5d8c0fcb2c2154a21b4842845097f494d9081a4243046de60d92d12075a0a704db53ddb18f94c7fae65bbd876a7ec0799598911d7c11f5dd6917bd72c32a1602de4458eb846dc5db7172692773110d596a4583b64513e4ce299700e70c06639186a17538e5c8e35e5b1d5229b35eb9c0fe089586a5c8b0d0d7a9ba7c81efbf76c0ce5c5745d02761993554bfea895e55e8985ba20a50185c01e90043574a2ff71167a979bbda94e7590f119cea2cc900c7cee9daee93d7c3292a270504bd5530615840519b384919f0599c43ebda9c4c5b740f12a431de7b2a4d5216a48d0de8613e6df0838722f64e50dc8cf4cf8a16b76088e086b0fd5b4197295c004ea6e7bace9712f3b9435b2563177d3ed4906098642c448b87aa45e8752aaeb1cf8378ae8ba9288e78d12445ec0db62ffa253a755e300e574eb02bae1c689f62dc16085c0ce8b5239148308cd91e9b386991bbb628134c0851c336a5800f8646db2f1ac3d4e298a429006e7727fd00fbdc0eb272f85dfdd1cdd86e3f06851094378799b7b9a207e208b8dc7bcc5991c014e3217ce4ea0501f2463e4b4ab94f9cbf5cb73d7cb0a541af076f0118061366d9d59d5be613ae30bf1357969239c3d4d0c18abb921733fa1512a521e43814d9f32fa2bdee574c4a27c2c9ceb3d152b085cb7432ec2c0a12d966bb64364839c1736fe23bf58afb4289358944ee9eef3a56bc3f0fbd1cb5b800ed105ec155b18c49e57d68b68b4e6adfb62fa7c8bc4c6cd31d0a90a84f1d07b101d37f2f58d8ef31ff6b66d1118f4fac61a604ff3752ac973ad483ffcbaf9bbf54f0f8ffc4c7247134218021d585cb9d31722da0e020a89e1b15504b635bf10b00e7dffc534293713aadd7c8920c740d054a01ba31ce5a3450b024e9f3ffffffffffffffff63affbb7acb2df0615abb69489c4bbf44be1c937a594524a29316c4108c88d9f90558138ce7e78900579058305dd6aeeeed018645c71031d400104d424f1a184628ed6a7713b42576d3e925036a9ea614d0e17759f0f24943c8e6837257b337ca3033764c8d0a1e3081f4728b78c984d0bdd30336c9803c287118a3945b59a78f16af3c64711ca969dd4a60d19b3a6fa4184625c5a7cc9256ffc4c3a8c8d1a7c0ca1989ee4982135b89ad4e3c0f3218492e81ac42997d13bfd230866cb788da7e308e311e52881103e80501ca1c39c52933d85c9d260bb41ba4f2cf0f845416563a3c83775f8a2681fddbfa3e899f03e6978f4a2d4f94bec55159de9325e14436a8d87b34d6b78eca29c1d3aee4d9898c34317e5cf1e6e2b64509b9da1b6c32317a5d22b0f75559250fa448caf61230569966c9c53e386072e4ae1de9f94767578dca22474cfe5492bd9a27cd5a9934a9344dd18d5a2184f8a3fe16a428bc2aa260db9b2cda27882ccb51d46c7d450cb827371abb536b51aeda924b966a3fd279958947cce732e51322939f91eb028c80dd2f35f634bf0784539e95fd19be175aa645c51fecad85b51d03d267d671a8f66b9072bca27f77b6e51f1233ee3b18a82c9d93a49ee932a4aca8310eb12635edd3a150525e34dd0b1a2b6b74445b9426b6ae99b90e29f53144f8aebdd71b113db3445514eeaf1f33e391a844ad18a6badc7d77daa075d9ecf4d4851506f72232789493670788ca2182795a02493dda61a8aa214ba9312a5ecf4fe9c5af00845490825427e040f5014538dfaaabf92cff77fa2dc39c6d751f6698387274a92a7d0e1f5bfdb04cba31325c19498a10499339ce8e9f0e04439bec6fd9da025af949b28094a70595132c79323d24469747938e15369d8dd64a2d8bfeba536094dfb1b268a291f848adcf7b6c9b94439c89af02fa95ae258afb03ccf4cd9f2983d45c7ec9cdfaf4449c62b41e7e0a619756224373e806cd4a0b1012f4a944eb95e7fd40f26c49b4466a679f9f19ab19b6a96e2e93bb4c9a484fd9228a7cd4990266b14b93d4742ad77db4f99ddf93561e3281db246f6c60312e534dfa56b46e64f3767e0f18872093263f2134bb8ee93238a269feab09f4d439f23edb8911a51be123eabc6b4b4eace88d2a7cda96f7212f25844e10413749aa7080fca5244b964091b53fd597b6f12513c953954a7077d216c449483a7d2fba77d163a868dc7218a1d223a6b7bac2d39a919a214d2478cf7c9c953270b5112de4178f0938f8107210a623e6693f73d873e08acbc464fd5333db75d6bdb836cd07808a2ec273d5da6e6cdde63203ab5ab7f95af0051ae8d9de47b907afca12ce23e9c9cbacb21461e0f3f94e34bd89920d73e94425d3b53ad557632f0e04349091fc374123bcac5e9028f3d94cb4eec328609a593891e8ad9a79b41c5f6c8435194587152f4c724c6ca030fe593ba633c69b7c71dca3f32e7e912ca245175193264c89021a388e0618782967442972083a7cdd7a1a0757272f339128d1c98edc1830e27a1f9f6ae39281ece6f36bec9350db6a4430c1bcfd6040f399446be64f31c1487f29b8e55a7e45b93071c4aafaf9397739393b7f34609d5071e6f28c587136de2fbd6fce38682acd5d79aef3a49966d28091aa64d0a9de363ce86d286b410a2fef93f774f81c71a4a72da8ee8bc1ff45af35043b936957834c14db2bc3cd2907c88ed9998ea98678588b6fc4dad77bb29e38186728e99b3b6d5dd405ebfc719ca1f6e7ce437969534d360dbc10d93438c1986682ff0304339aba9b76bcfe9a4b91940dba183841bf0284339365cd58934c9044d7a90a154828e899a6c2fe03186626856f7b8a54497907a88a1a46557e362af95391f86d28d123b73dcec018672d4543a851226997a3dbe707dd5e9ae6bb995e5bbdcbc55f97c060f2f946dcf7492c293a4b4765d28493ae7bd30bbb8504a2d4d9250b2fc73b45b2879da350d4f623025945a28deae8e36e936f3adf2c842d94bacd251b25327138485e207252b1f34c753627c85c2c77cd22466c812cccc11aebb496a4337520a7e00414269ddfd7b3d79da6a9d099023ec76a2963227f2163aa2ad375a4e0ca554066284d29ea792b9994c9694428a501425fda4d2722242f146091e3ff2a45bc921432809a2e307297b0aa1f031e7689d217b5278902094be3fa6df98c35d677e102014e7e4eec92408f3ec491fbf28c67ce20942dc9ef8b67df8a2206f94a44788f0a317e52d732f5945989cf9e045e12f4e5d096a74ee27a1c1763976e0c08f5ddc872ecaf321de739f4c2e4afaf46ac925e8338c060a508e12243692064cf1818be2ff67c9271b774efc3e6e51ee9cfbc574902364334ff8b045319de06132a6745f7753f8a84569e6c3abf77d1a7cd0a258bb9bfaf67a624bf9318b725af98b1191d260934549ca7fc6c634ba5d37170bfe8045f164f6f63b41563bb781238c1a3a5e51ea70b2b5627228cd9e1aae786e55a4672ae5e8f2d18ae27a1a61ee694aa87c3b6e88912361634541998a4b4ddfd8f00c7caca298ba3b6a9e24078e03c1872a4a1af6e4ec699ba5a2a0a9f2e563a4b843478e1ac98c6403b3a336f0818af2e5aa98a8b752aa3c681ff8384541a611239314cdd3b6860d1c3ad474b8073e4cc177493abcbf6f68b0e5f82845a9ef7d76476ef8db67a428758cf15bfeda6afa1845b1ab9975a7e69e175b26883cd9717ecae41fa2286916d379b9ebf234fa0845496c6998187426edac41511e11276589327d7ca2e44952ea5d44fbf0443966ccc8c851d28962f84fa6a9ba1d2626e144414b091762936ca2541bd765e6cb429d68a2986da5793a6de6479928756c52b5397f67444c944d693759922e5da2e86b92eaa04ba8ba2f59a22cdb61b1a6a74a94dcfaf3b56a26a17c4489827e7f9bdcd6493041348982876d68b75b519d214994ba53cfac966c5ae21f8972dd28d36f3799ae3f240a2aea32277d25f6cdff887295647a1d3d5c57f98e2828a94d7364bc37c8be11c50c4a6ab813bda5eac388c2ff8c9244789c7df42ca2e87f1fcecdf4e993378a2889cbce194ff7892806d18fdd3c9631668388b2e8a04e563149b4a8e610a50a1525fab9c718940c51b8d0a6aaf9d66da74294f5c4850e4d69a34b8428e6f9cd7525cd4c1c0da218b322269b6cdad4ef82287afa471344be8923e38128e70fa7c164ac89517540f09d7f23f64e7f28a9cf9ba4cd781fadf74331660f6ae12f7f25d387d3fa499de46f9b0f2555af27356cca6bd77b289abdc71cb3d34329dcaa4f90d5dd1beb3c14e7444d71562789ae351eca5be2865ceae6b05adfa1344a525927f607d1931d4af2a38fdbc9a8e37d1d4a25c8ddc6d149e6ea4c8772d0e03d7ad43c8752c814fae7f7bf39cc72285989a6b5533f9d8bce369384170e05d5317512fd2596bbfb8682b576a63629265eae1bca9d4648bdcbb60d657db9f174fa938e6ad95036eb9272e22737f144d75092623cdb24f17aeba46a28864ee9693a78f4d7350d051ddf47971a71eb494543b9fc644de27e7a86a2d606f1ae314d3b9e662889197eeb7492fbc7ce3214c3a48893b43ddb29930c250d563efb2e7b1ecc3194473bb46df0520c052bdd34b2d12419250c43e9e4f0493e4925d79e100c655142b593125a9412835f285f678bae756813445e288736b3afb8cf5d9aeb427963a488754d6e1d1e17caf74966d7cc399f6cdd164a63da294bb04f99acd342c184faefda3d793b59164a259a30bbe7293ae80c0b25ed3fc95e435728e812c7acac36c6f3562827f164b62d393dc860158a17169ffec7740ea242e94cf80b8d5e7d4ca17c23d64bf22b8d49896d60520b3ea450ec11dd4a19ed486ad0d0e13a708831a33ea25074f55b0f26d69307258dfb8042395deb24ad55da4b861f4fd06dab36536bbece622e4f0c0df24fce39dfeac309e5aadf74331bc7a490d3b8616c9820213148d0f8d184829a6998d217e220a140860c1ca41c4c288512229e6489cd7c3f9650328739bd234c286eee36b126843037a9c8128a399b0c6a3ee66bb361105102aa29464813333bc868b0f18e48122c6f1041020e224748ad6b36eeecc511314239ac9df831c9e1fa83a8080539fac3674f9c74728408c54c4aa812b3079942e79121143fa89055caac24f9931121947d4d644e77759246876d8804a1a449f4d3a6dd21461d0142e124fbfb24e65b4fdbf945496fe3ec9bc891e955882fcada724257e69cb10e482f0a6626858e71ddf1420dbbf3ceda53d3d349e97117c520fa5fede4125d4d52a58bf2e8f22c959924d975e6a21c1f166a731204c145497a120d325b591620b728a7783f93d1575be453b62896924f1c757296592d4a5af5348ae97f517274060e082dd2f53a6d7d19f9ccd1711685b78dd79fce974549a82b63512ea553f8e96efeee1c162599cb5ebe4d777cb55f51b8fdd3a72393891eba00e28a7265d0646ae3e67c42a615a52a9336752631b4785851fe1825d6c7b63531dbab280932be67ce1cdba34421aa48af2c63aebe2a6b76aee6c5d3baf7e8bad1435251d0f53949df3c69082a4a1bcca489b6bb9053143bf3526555fbd264b820a628659aa8d3b641a528998923273c9c2832931052147d637594cdfd3726c25e026414c5d3e16bca4fa74c621f01228ae2b59ac8c7283ab529ab099050a881a2944992c3348a10e22efe849627ca9a54b642456c88bf209d28c76c2e25568d6be8ca06104e94a4e71c27492709f23c4f830d25d4a7c35600d944a96eee94c9d589ce9ca141345132a9b3e90f426a1e256c032413455dfb3f3977ee9c3633a33051328f265b697b8989191a7fa33400b944b14bdcd52625a6523289ad254af29aeba3ca6b9528e960926accd0e52801841298083da72fd34e46da9049980c49600b2091b8a469f1d23a80020840a21c4d7e74653a49ce32790432fa9c988413af50b723cc283e6f258979e24694fc2cfbf4468df93ccc88b2897e9332a409b288f2699c12b38bc731195644694bca654c8f5342a589f04ec4bde3743ccc7564bb3ae44e081bf91911e5d2304287a81565196c25400e5192ac6dc50493d67646431464cdf7471d8d7f93a42085284871b351d227b19418d9305fe3861837cc9f8500428892b89dfdc4750f03904194faf34ddafe247f57021144f1633cd1673569150840144d3649064d4abb99faee02903f9808207e288d3ab9d3798aefae3506a40f85d377d2494a481393523eecc1560f697968081eb4ba35716f2bbfe43b541b4fee0c62879212479507e9259aea155287c2a90932ef6353103a641fc81c8aa2e412d3f82611de9f4b103994a3cd6f7b38796b7aa301240e70e842efe46eedeef24b56c81b0a1b6e2b4bf61cdfc6e486f2c62b951f13a34e79da50d2aed9acf11b3c6f05614349f6fd1244cb354b944c8002138800b286b2bc3b55c7439403881aca4166932f55ae54299334944ff89117fd58ae39090d05d5f964350deba1a4e80cc5990d13fbeebe3f44662848f36dbb369d329462347d92ccdd3e282143490c3a8a7637bdb7228fa1a89e43cb99882c497cc550d82043060f2f234f0986a19ce274d57c6eb84c0d0c0569279fb0ea77db25f585b26c50df91fe555ef242497a9afa133b5ae9d877a1dca2574bd470a1d42563dae86c463dd12d94aec64c93ee9204102d1493507b529f4c5274d02059485fadc235e6b0b96a2c54667669b9a3b117569e19e3888a8931c8154ab6f9499d52ef5b724c02c40a65537b26ff7e6cfb6aab502eb95d76a289fd964d8592876597bc9fcc32bbb682009942f135cf7e281fb70c9717112052285b774952b5e7865032240ac5a0de77b5c931661c42400522804007500001b31c3b706801028592de3325f364e3c7f509658d6aa542f39658f2292714ed5a4bcaa097b9798434a1a0ee4c76af96c7181a8409c5fca9f294186b4c06d9120a33ae5994f0262514f4cb77126e7e3fbd360448128ae7f227d70112709b80d704eeea1e108107948c5c19e680dfa1638c1c0508c00ece045e8c1c381400801d3ac640010102906860c6a0c10d63030102d09123fd18488c1c3812300200040000000040004c1846c7183698000716d0011d3570180504a00800d0a1e3c8208000cc0e836414200066874162e4907100000ca00109c8916cf066878e19331600800030e00058630712238c29ec0087147084f15128f5888e1cf713148a1bfc33c698f584e269ed31efa4a53b4a34d878c170425935f66fd39e349d3c34d87680e3c348616c18290c05a3095863470e1a3a6ccc9891003098803576d8a0a1c3cc9891003096b023e908238561003094803576e0a0061a63c68c04809184c267f130257dc967f4d0e03e1be32c8c9463060e6aa019c86dc78d1aa8e3468d1d394e000612120ec408238c14c601c03802ce988100308c6067688b5e5a886014a19cdd3ca4c6d9134b18c12042c97bc5ad3c963a49be8650d84fc2576e0c18422827951e7ce4fb6dba3208452bb74dae319dd8270706100a325dec94981c54c658e4178ab7bdb5adc9e7115f944e4b6a98a8aa1edb89f4a278626dc9595b5e94bca39a77c9f4bea387811cd94559737510d592ee3b670c1d3350c2404417e8b9129bdc474c6e69b09de5a2707a57f4d6ccb5c85e8d03115c944d0962336a4ee2796a1688dca2a4ab6374b6bcc48b4b838daf02115b9433fdbae7843c2d1fcf183ad274ec6e20528bf376586a10619d4668318b9345c1f6427a926a359bd58ac4620d165baf3019aeb056945d5c344b7528b74e6b8e1d3822ac38297b55cb2c59310db66403a3828baca2a4b3a5f56e3c4988a8e2b24aad2e17b134adbc5351f6d46c3a94247c29e98fa0a2e4c1f2cee5739c894de41425b5ed1fb77354d7b91153944f301ddf171ba2b3454a915999c99a66eed685faba8dce75213ba4115294c4fc7092a0f37dfac551942459f3e64c2e7b1022a260b3bfec0769285ceda0153f32890d149f283314f14451afbacda396704aa813452df94ed3b7af91132591117f92aa364990fe264a3ae47d1e314296a8494d144764fc943947af30934c94ef44133469ac39410669443051f2abf953bf9a84cbea12c5cb0ccf5955abfde79925f8cc1cddb111bb9837b91205e9d64199d8d7699f8d50a2f027b7f49b124f17429328fe6a86d02945f8fc18918431b2e4d2714d9f502412695a76b8ab9e6eec9e6c97d929e963ccba61041227c31e718e28c88b6b2e29ee4afa341a228d6004dfe99ab5f39a3a27a3d95be7414972d839755a046be279e179f7ae592aa2249fd59489f12f2f5b224ad7bbf1548f0e22cad9a45bc84d9f35298f1ca22073b84faf7bd77b6fc410ac959da7659b5597ec1b2944b974d2f8e9f7ff4ff41142a00d026594204a9dd963da33dd924549204c0602a220d6631e7ee733735a07e986d220471a015e8eb4a3c60b227f3019e6b982881f8a59a2d6647e45a5eb7d3019c587b33d9c8cd283c9082392079371a3f110b943294ccc26a6a2539c1cb44349691343dc83bb2387183ab20e05a976526f36a9dbdda383c9b039988c1844e4501a5735b945475d5b53240e253fbfd6d03a6e3a9d227028bdd9aa9d9ff81bca1d4e8baec86b65c91137943667ed109e22da6dd486f36cc6bde5643fc6dae3a85dd7cb86c47f666927d1c81a8aa3aa3498c5ae86f2493fbfd72046d2505a93754cb6a8ec378286a255ed98ec30c9c41c46ce5092495895d472c40cc553a2c9b7a679925d688b48198abba1d3e7b417faf626434196a017b2e4ad4f668eb4a3c6192132869226bd926eff3fed298988a120bf59434d5499ad31128672cee41b6cfcf27d35113094c4602567a3f4fb663df28592349a4912f5f688170aa32fddec36633ab7225d288bde13facdd4e99374225c287e7db6f8cf7d7f2cb205fdce7b6d4faf8572ddc97c3e31ddb7f648160a26fe78be4db18e4147832d8285827653e6fb73e2b4760a44ae801065c27e35c71951aaed41c40a6b9bdd757ba76dc689df269dd34e7910a9c245a860326a0a25f9e9fbdcead2c4a58e8848c146240ac53299e97b6a66444ea0e032f6234f2866d9b19027662afd4fc40945138da349dc249dc628d28482d8200a864da86387592c874110056110c43008e465496b131348201038200c4683f1903c1366f9011300818b42f1702c128b43a16040128418048320044210848110048118c4209649751e851650261e6a64589db613d16ded23f87631d261b4449164da43dbff931721b03b854feb34321963c25ec1cb76cb3911fec7ff0db63da8cea92cd5a03abd17c3633452d996eb0e84f7ed8ac9ac8f63af2be38cf71bd167cb818208c02393187bd142f4e98ac476a465c55562b368971fd8254ccdcc9f4094a3507e3216fd660061a86c3ed80256f5d8e928ffa3d130b92a3203841126fd4ab1fd241dc9bcdad475c93a8343ec57610bdf03e7ec43163bdc23fe59a7192dc147458646d2aa53354cb5add908a526b72c295cdc25b25b1dab674ed135e6cc274a40c236e1ddee1ee7521f2c02217792dd7ae8a73ee6f79544bef4d42f94dc0cf5e5edf0d818d3eea4fe4fb67078f9a3e17299bfacf3be25626aa4f97e6e111a647d7285c5e24626455836688e096d26b35cca65a86d53e41ed6f34c8ad6379f6b4b4654874e97936e59deb053d332c1aae48b0f89231172211086f26db68f88431623f0fb0a59393bb25b9cd0866dd0600f1dd3b859a53a92346b7fcf546505fcbac1986db07f166046e0f16d6e93b6ed36db9a5000c35cd327f1a9a55e000a11067bb21e7b670be83664a2f375bd7de24d78ccfc7f7f152a89eab3d0b8c9ee6245990704e183a59b242d64b5886433b0b05904e76465567f712c7fab39c500c6bf21e3948fd584753f999715f6c4959e8327510d3fe6a57e0ceba8159dad4c226af0fb7bfecd9011b8d6af7ca920024b1a628b1a8a98fe02028d1d08a4f656ec313a430c44d044fe42901c6951e91c103cd61a3e240eb563f44e4684178716324076f001472c40b943a0c7f5aa6f4cc81c7804a0ace9e618fc8ceb141d6948baae47b57c23400a2ec33a3aa8434fcb87c72d4e6acdd11bb6e5ad8dbf0071b3a64d432a1f5383c8110810564f1e63e02742a547cbf11ce5318771cb5fdb14039ec8b5e73914cba4d0585c9b3bbd7fec9c36fd2464ed15dc219461cf0e81138ec64c3f5b099998dbf9fb66c9c01c2b996562879dd025e9c426f771c881bd53c7e8191ecdca6016640e2bc9611a83dff68c395837a6050ad15315c073c261661a9ee0cd0cefdcb30863e389fc7e2ba42dfc52c77a7c8a1e0ab5d00d13ca1d73a81b3e8c84b27a1df46dcb04f754c35c7f435959ed7dd2f5b3893023950b6e44b2b8d0dd0c5d1a64e266d1374d5adfd359ebd68917863a13a7d6a92e0027db71914195c29168072660be4231a58427e728477548d6ea86f835b37a90a902a1246609cc9dd768123aec619db633881b3dc9cbe64ac62d040551a6bcc9b031b8f5062066b09a32566cbb221c18bb38d17b5a292236102071e6dabb1210f6a2655928d95022a118f7688ba1ad3f2447ed8fd689597ff668647c6d52b1d6c248ea3e296ccd58e7c45ed194cbde1ac1d5e1cec2eb7d39da0902b2c771932e0688a7eeef6b9c34c2f3e32367c69cb7a7c54545c2b28d39d6e36c440df9f093baecb2e1b14ba5b04f9ce2410a88f40d17e424b297c3d1ba63fad0defc27438fb133740b53d9e271e2dd802a6e619b495a42517c7066e3e1d14d314b2b1b3dcd0958f62129e3dfbf145bc665f2d4a98accab28e60361397b6cf36b68f910d79ecec4fc78e5fc929b5fdcc583fbddfa746ebde0e6c81f9c8a2570f962f7ade0df0a19ae4f6826290743dcdf53588fc6775096f4f7e2cefd5be1a3500d4acb3a11ffee0f2d1f1360f02d1143db106b3bb4833775bc8148febb1d77533875153e45ef1d9cdbdc3f4c4059a640bfb75df955285795267b1d87c595c94bee7519cd46bbf287cfece0aa6c327ee05747473c5dd83019c3b83b4b24d436301d34efe8d83c080f35fba07bd1a34e43676515b1e44fc4edbcfbfdf807e8f443e25f641d080046833a2a2744a0b567fda5458dd5f7d5b98249a5af747a699f96fc5c00a23cf44a278f4dae861d10190be154bc4896e9a4b197c2cbd5933b63029a23dadfc3452919875c87b90d966b7f08df4596c611187dd90ad11dbbee6cfabeda8ae06eec32fd8529d3842429f39033637ef146262eec541e7b45cdd78b0d9c982422a6107ce581c1c17603819e3d568ca4a059ed64316e0eb6e725022ec6c0d343e9508ae9314af05e24ee375787f6a7c78adb3d87327d19290e75291786a7ebc40e8e8302231a3d1f0139cea710037edaa9a1676390e1c4fb1ad7f5e112bd88b4e5adbc676def4c1d9f80fc21d5c176df8cb3f2660344718da237f28f9191dd0929615eb5c1f8100c8a38e7aed9091207f808fbfa774ecb6e7af971629feb881a82c754edc6ed2fb0e4de9b322a2c5317f9f465349a1b16d9d1a4041155b0a06c27e616ade83db42bac26ee757ba304b63a20eca0a703036f987e41c13729cf30ffa3381272485e73c5843c3468270847959f99dd10523d81ccbd72bacbc8bd566ed708da2fc310f158accdf18a231b0a8c4488f1536bcc6e597323c30cd8623b784e09fd52921a67242c434258b89b4301db8444387bbe514c41456cda8ff305f5d8d6cba0ec10e284d13bb877161b6037f37513a0e3e1538c70a489e1acba1484f153af6fddf890e17dbe73a1601df7b7024168829ec55a12c8b5c7a5ac6354bf165ba44b3540bf7230d8970b5a5d49973d7ff59282e2a6fbb9e5daa20b404062f145d0285a27c72702ba5d5a4621968d4342bd948bf7653a1bf2e87224582b4586a5b2f13a30859605295e08e7b897b165a62a3276088607574cd76d374bfd056d0c5484a0cd103145bd1bbc1a399124406152bf29d245efb04c0df1e3ca032172527b825c53038508d77cc4f848058eabee4c508f4fdf60860912a4289e8d63da40024c16bb478f30ac5aadceb773441b65e1358f397770b7e45be065b6c20cb039632755743597058241fe3b81210caa51142879ce61dc6eb09a45c59dfb29e9ddac956c1872b3d64557c0ac4dc428ec2ceaa2361ef15ab06b26e5cefe622cf9f31a2c647452ce77bd17522df5087b763d3f657f55077806b2eb89f9f13f19feddcf4169ccbfaf448b08096df3ee40c65662b007b2c99c970cd0e5cfd008be333425eb950054ea26f74e7be3a315d8748e6684898ac039ba078f43af6cfa57bd336a441b69f11c76ba59ffe0b0d2a2aa64cdbb262d3b5b02333aa82550d4ab882582aaa129bd44c30360833707aac3299bba1efa7bc34fc948e116e1347d4fd1a96eda68188b8d1d3e6858d930b89ff1802c23d8b0be1b21519995a7f48a9e600522b870ef7431f50b8c60c29c0e5e778cda4d503c067dce0d06eebd7865258585d7a31ff484faacfe44c983007f4ab5f28bd56a6c51d7191a23ca74ddfd2321330b9239c1d93b2155a364d9673c2789e86826a9d7ec2635912276071222a8ad4a3d999d6334c316872315037286a9d42268d1933e71b6098928cfb648c9fdc85ac1d10a309c060d26483af7537ae7824ce79dcb1dcfdafc7ce056f3f5ef499438efd396cdf42ba7b263cea1b4c59efff5661d1891da92041b4aef5825a8a32942ba90aeb1f2d7e48c9a79ca58984485791b6e28c8b6be1833f084b861849445d4fa71f572348513d47b1014fae97672869ca8941572f45d0e5b48a3de9fba40dad830ba50c7471a8a1db29da709417e6e5451361863504ec237546105889cc030fc505953a8610c34c364f82c03cc5b264e4af46fbcb47cc332f7fbcec181d78e9fff5a217cc0a22da02a587cc8ae4e3031a71ec00e933f1636a3a22ea6366d9c9e864593427195e7f05335ecbf5114c8d2895ea85a33cb4f7f0005e5640e422d9f97602a854cad6158e2dfd0059b7140106fb9955c56bb6b70c9b3aa971bde59713d39765771afd5a6df6ce727ee2b1eabaac12aa5f500673539ef92449e84749bd3ca61f34ac20b3a86f94c9a8535fb2571131131443d8a3eb0310fcd1197486934688698d8865bd935daa1ca95145cb0523872d53a30ecc9b17db1b6061df4b6acf543f2e9364d2c951b4fc596c9346506f7515270a1eabda19d6d1e259ee2c96e03b0f99dfb22853e8fb49c31fcc6c8a18c16f4868483bd6754c49931bd184650c04fc5fcb95445a0b0c8b49621d7f4d861f17532d6102e82bd207d171d4efa70508abfbd75e058f3a18c0857ac5adcb67e2e9b97794c08a7ce27cb04296570d9f370ad5e2b44f4d419c1f6a5232b13e6094ff934075cc98a4654f47bf51bb9aec695f4ac3dd28bca364f72511c16755e58c5ad20cfe69c20c052853c8483262c91cc76accf40202d5057e452e1700c0936f25cf437c0564877e0c2309ecbcf6cd01687e51603842ea1faa78a19a882dc4f09da947516c0198f2b34d3839f57eb8717c182f9b52eed77e86085d9afb579c5a12710421f50c98110cd4ba8cee1b33e16012bfad42949c547572d8c335425063a9f389333bd4da8c9990e2666924de76c4af691b9a302b1935cd64f1dc3679fbbd2584928dd4a58a0d46499a05fa92e008b7c2fffff3b6872103dcfc557f1568d689295560b17dc6e4858200fa9392889bf0c18762628f2b7a43c08291e32d5d49ac7f34c60c832d126d5f499086c32e357c79e7b891c7d2480a4a304516949f301984c113072a3ce370ee442ef101a72a103893efc83368bdc1e79ce917640a5d25b2581ef19601564a56cd919b181ed03682ea8b1c1510642344669c3761b25c152f70794b29593b2c00273039edb6068c57b2ffe256cd5fbc41e8d096038bdabe01dcb83d4fc043b044e9c976e977a293f80047b7fc65215cc9bd0bce0097bc11c75f4ccc0d7025a8780c759023943d79aca90b6b33d90ebb0469badbeaf741821c448126041d6641db5fa6cbf25b383a35fe2822db8fba515fb5602cffe91359670f73860291a2ae7273a1c408bb1d9008cb3423fed53b557e839616bfd8e209d9e3563cc06aced594ba99536c24416124b9fa4262987e01753adfcca879026c993d4ab58adeb922b7c2a1020b60ee6443dee2c6b461ae71e8b6749c51d4ddfa142fced6ad9b4e1e9f642fe968e80bc1c35b25e655f24b21c75c04d6751c84bda981d7f2b798743833508dfd9b6760e2c2aac7e7920dd581db2c32b67349f30141518239a93c3bfcdf9b1ffc34ec572679902229f64586beb5c1f1cdc77eb1829c0d1cd6508d987eb462fee0c2b0d42c3ddc4f24453ca01d30c503af4e733090536228c634944c3e825f037c19e7889d625a28f97d0451d85a6f2f19cd2b812a4486c5b520e470a5f2010f33b781d197de325702e347d16fb195819f954a1b20f31590bdc329d2a51004f16b010911c6d15b0f8bce060778e43c36e39a921c8222983dc7dbdac73a3d41c32c5bfb9ba1a2c5553c235ea1e63aeee850563fc81614cc778b66268c6b8e73de344aa08c9cadf34949787e1339d43185cdc4db624ce9f5c06e7a7f1802216584370707c432759106b81f94cb445e2a555000b6ec56e566f92e52348cc68b18c40922e0be04b4274a315c09165f51578267438344c13e7052edd2a1d5552b3f0a32ee6941e15b81a6c6c7735602730d52693d44d022ae32824a0c7b184bf55e46c1252f34b6e612e2326eeb55919ea871a47acc32ec19ac6ff65f9bf6d774f99fd60d5f036da575e0a49350c432a625823e7db97ba3d356072681fd81efdf1ca5e9181c4effe0b12c963617d9261767795aa80422c466679d675686e077d7cf4e0d4b18db624c7999343ef7b911b35eeab1ac7a36b2ce9efdb9dd52318815eb3a5546c089440b45ebfc13b964548283845c2faac217d0cc48b3d02d2c7bc463199f93f37cc91de69dd402e126fd47017e07a490fc205148f1ea63bdd6b3216b6b3e6af6b4c0687f6d2d89154bc09aaaf36c1361ba5d4cd9733e5afae129fc4d37e7a267534b550c67256642aa52f7599b1f8de62fa6a105618d54e08c0018720104117307b322738941ad98b603f80b11ef04c88e70757767b7beadf21a12ddee344bd73fbe5810df148da82c30c3e88e470050c2397f401248196a6b795d640cfed0903f475d97803c5e00d74198d75356692597c12678deff6c967fd51a44ca748f6d1a0ee8e8cc9fbf99e5d6d01c88c0eb74653878d1ad67c1eaec2e31406b2cf584911f6dc0158b32ef8b9ec83d7d29992f2a5f05b9735dd1779ff23ce1967e6e827ddd5c7d3d747278950cd360cb1360fe9ef7f273ea66b3d88707ed34ae8db1f58e68a8d2118bd63a6b2326c1e384f49553a97700a50fed7a0601459b76f43cf20f63521d4ca1b09c294ab4f4e05a735d4e8cd3086e03b53f3570823043fb3b2f3644e5bef0b8eb9536614000c732e703cc5945402d1de7346ba39242c5d48ebc91889efd7b45e1a6cc2cf0379852612328397aeef039ec266d29baa7a1c8d1473769b57df0d4b6d4472459c97bda1750365b503d22ac907192d813225e7a0e8f36bd0ff6dfd36a7d35c83a249d8d3d4029d55d89676b92176c136323c4497491a861a40f46fa636953176234c938047cca3a741446df86ccaf23614613a7f709541c07fb58327486ba17b91b1a383811afcaca3378a8a989ce3c8d75f228bca40a8af8de3ab4e58c77526cc616202db1f6688c4d206033a0488ebc679cd820d047241a0f9221c371a09", "0x3a65787472696e7369635f696e646578": "0x00000000", "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x105a595f76d16ed474bf669465f7760d8ac3a6ac23bf8e47ab0bf91ee815cba83f284a26b85f39ee4edfd315d9d679638655fa1b271f033dfa0be167dc93335844d40a5a134e831c2311b939b811bb7aee0ca571f92d52784d35c43c9fb2fde36c6233ef754398ae4ee816f8209de3791fe26eaff064c6c002bc52936bd117c425", diff --git a/parachains/chain-specs/bridge-hub-polkadot.json b/parachains/chain-specs/bridge-hub-polkadot.json new file mode 100644 index 00000000000..b317aab8df5 --- /dev/null +++ b/parachains/chain-specs/bridge-hub-polkadot.json @@ -0,0 +1,80 @@ +{ + "name": "Polkadot BridgeHub", + "id": "bridge-hub-polkadot", + "chainType": "Live", + "bootNodes": [ + "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/30334/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", + "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/30334/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", + "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/30334/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", + "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/30334/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J", + "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/443/wss/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", + "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", + "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/443/wss/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", + "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/443/wss/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "ss58Format": 0, + "tokenDecimals": 10, + "tokenSymbol": "DOT" + }, + "relay_chain": "polkadot", + "para_id": 1002, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xea030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x0000000042db356800", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95d8c4e0034bc36208a740f371f8bb3b1d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96bec8fda58278126c5774c03718a23c75ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9a445791c00e77ce0bb8202f63e548da4ccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9ed0583dc7b08b990b14d4f0d7acf521928d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x69924c6272696467652d6875622d706f6c6b61646f74", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058a4ff04ee24062c13521068789374086c8a09b146729cc19a3a00f0b70c566b8fd8314d221ba56002f06409b933ae037c2e03f3526190dee8ccce245707d3bb3735cce81f7778285a9bbf7ef6d0faff1b698d1042c8267bef2db70c761401123213308b39e7a42ce79c52e0484bf106560e34410eea7067a8a35d9e429d0c4a4e165a773ec9671df3496217cdb1528a8d7f1c949c1b582c010b1a2507a855b4a11538c6baa3c4efbd6b6333d9dd98c1c7cc5104c5c6cab7653db3ba4badceeaa0667599e4d7308a987df4b5895d4349a9f5cbf1f5d8460be6d16888b4b39ad807fcf4c17b6d63e37b3382c314634cc1467ed184296e54d9c0103664e3a50cb8786c081ba202fb418e951503a33901038381c186380a6040810ddda88282691d522b392b99e5e8d764a5e837c74a39adf5f9ccea689bb870965573d3a85e538ea8de1c7b39205bbd40b86bf552d2339ad255ef91409d9a4a532a912a18ae5e4ae9f5cb597ae6ebb764290f59c9a7ebf4aaf7b15e2636dec6ef40dadddbcb60ec9456c776ced1993367e6b4b10245d5d6128d07ff608d575e95ed17888ddaaf0d369e6cec6ca4d70d973888f59d1d5ca07125a8c3bc037584802746319bee0c567eab77062d63ac5e0a4f9786b1f09487da5a150afb80cfa0c0bd5f0e13638c58a01ab70349c84b153bd857c5320daaecc52c8c0903d5ca848183bf241bcf1c647291c1d4628795750e4d610e4d79f6cea1c9050b182d938b56a6d3882c46083b1fbb6bb2f13e3646ce5228261be1a3b3e3b897ac5f4e077b3469c13a206d822f411deebe4a4d4b6d952c3cdc7864dda14df05a10b8f70b84da0b647ea767bdcf46d3cd1853c081c9c636318ba12f5e4172367df9d7c927df7b37f66bd9958b5ca97471a5cb599bd2d54979fa276ffdc9d3cacfa4253fa5ecad88ac5a6ff40adcfbec984df22c2bff58f9f7de8a442b399bd2eb9e2d55c043b2de22ac7cec6ec946cd725176504a564aebd7c646faabd9181f3bd60ba564e323165c8cf2f04ceba59c95b766354d817bbfa629d15e5389004bc06209b1c443f04c3c4722f17dd9b54da9bb7b2ba58cddf589b6df26d95dee8827bb58b93b829b1b352fe569eb5897f5ca2b3829676775257882b769133c4502f77e39de789a469f68e5df66440167ce9ce191f27d599388d11e9621aea8f6ea0512b2ef520aeebe2bf799b1319e379eb6cc3ee2794bd22986a7cb646cacfdbaee68ac1ce5b85b8a2f02ea588ff56179666c3ce55ac0c55f6a35ee0959f95b6232f6b6d0c39204a6acda65e0095e9ec1bddf16ba5cc6de16a21af7ccc42a5f083d33b6876bd37b5c59a601e8a962c7151d718f8b71b130b60976a08cedc7ee6632055c3c6f447858661f3772b1f13bbd03bb8322abd886bf240b7fa30d6c7ce4c241e463bd710b17a30e1d62708c869dbf242ef64a2c652c7c6f43006065bdc0b00f78da857bbf12cbec6eb481bd124bcb28e7ac5064151bff36232f085470c2c68e5ade62c529d2b14691556c6cd3c3b858a641151f14231bf163eb0071abd5aa89d4963e9fe57bfaeff0b193f13a7484c1f5d9c6c37e6f0e506dfd22fd57639ba00abec703f82c7e76d18a1a5faac3f044ff9e71c65a7c1b4fd7abb27d3b0fb3df12f6cb313c5dbfd45a67d6e1e009deaa37d66c7617166e12999572f3253b9fd55be2ec3c56219f2eb5f357bdd4f2acdc2679f9d8a8cbc4cecbefc04c6afc34b915b99d35b649be379e3e6f46689bdeadef74a3e2e13cb4ea7d96be67bdf144eb6fe381ad557da49d7f9b9119ce9c396367c529d29fefcf9a84b4b14db23e7b3dc846501533232eb8fea516c2437808e1170b2184b007d4801357bc51fdbea95137daeef768d4b3ed04151d98ea1adade1db6cf7d2939232f381efa001596879a60c35e93ede36079a88921cb1b0fb7d31ca7358adff2969fc98e2dec9ecd1807eed90935d9cdbf8d07cef3e600959dd9db8ac8cf7ae5e5b3de8a70569eb7d8a6f82c6ab07b3683daece4dfc66dba36f63dcb789bf5aaec3cec2e9587b0bbd1ceef7406bbcb000b9ff166d5bb84b50ebbcb43165e7697dbb4849422980861e12fb7e922b1f057f260e177a0ecd85add11f0cc993366ac3cecee0e363e7b1aece265c796b7239685b33bc2b2b2de67613de29d3973e68cbd2a0b1f3b6ed3abb14def39966950cd179dc8f834e282e3a126b858da281e6a428be56badf352fc52a3786865c6f277583ef7e09d8c75b8b28c1bc5cfbef3b311378a63a3fafcec6551e346b1bdd4329388a471a54d6c613c7c1f6e3c5df99188a481a54d6cdf61c7b1be8d87b6099e371ed8be8da7bfd38f0819dbeebfeebad3aaf71c90bdbf6e44036e6825c6de68fbf49d52863adca7cbd9f7cbd9f81e11f0c17ef03bfd208410be43f8ba4f6d571c23fdf87e45debbde3eecf7c064dce3def633ce81cb18078e0fcf1b0fff6d439658ad564d58aedca64b6d3f6b8d1bf5de286e537fa76117dbd4bf81bb9ced7e566a145bae517d9b46c1f74b8d7a3c307649cc60915051fb4eedab3846dee3df63f5791656de785ebdcfbeeff44e738fae3db74c830abe67848c2df7b89ced67b45157870e31b8f7abd9fe85e736fde0dee1f9bc1d79efe136dd68f93b9dbd0eda4d8c4d4213654f7b5db41a0799f2cad8232c9b048d7def6f1c64ca5bd923146093d0ec7b5fc441a6bc953d4201368969dffb230e32e5adec110ab0ef7dde8ac4d5cabeef74d61a7390f70bcf6de2d346dd67e1f919ec689bf806e0e0f9bc11896de2c34adbc4dfe9acb5d7b5d538c89437649398f6bdbf7190296f658f50807defbfed08b7b2ef5aa3d8f6792bf256f67da7777aa7779a3b6e139f7b74ede12cd3a0ead76964dcd93b37eaf25fe536f1f9aaf76e643cb4c262d9cab88608dc3b9f311d573c2b380803d311021d3bd0a145c7133aa8e810d211850e11dc6471e38452144a612861b901a3a482521ba533375a94ccdcac4a6428ada0e4829b266e667073a5948392144a502801a154849214a51f94be28bda034460906a516947050d2a264831215251d94845062418908375f94aab80142690ca52194a628597163831b2ea52ba52b6eb028f9a0d483120f6ecab889c1cd1525316ea070d3821b1adcfca08446e909374fb831e386073756dcf4a0a4e5468a9ba11b2f4a61dcf8e0668a9b1594bedceca014849b2e72f0200717395e90438a1c2cc831458e2b39aae410410e2a38b080a308388880430c1c2ac0e1021c2cc071021c2dc0f1011c2b1c2fc091054709709000c7087050c1e1c48d3338a2c0d1040e28703c81030438826ab2d408e188010e18d4c8a02606385280c30438aaa859a3e60a354ba821a3268c1a2f3553a8095353460d18355fd400a166a8e607355ed4f8a0a68b9a1ed4f0a06607355d6a7450c3454d0e6ad4a8195323859a346aa25023a6068d1a28d43ca1e68c1a27d4985103a6e6083546a82942cd18354aa849420d126ab2a8c1a2664b0d0d6a6650a3a5a6053554d4bca0c6053557d4ac68ca40a306cd1668d2a0294353041a23d0784193058d0868a8d040411203e909a433484e209981438834041218d2114844202d8124041219a42e483f20ed80c4039217241d907c40828214054988440212159208482020a18064853bc3b5c19581e6061c19b82b382b381b7020e062c04d814b83430227032e099c161c1a1c182e07dc16dc0e381c705c7059381870419c135c16345f8cbc30eac2e80aa3354644180d612484d1975110463f186531d232526384c5a88cd10c465d8c7230c2c1e806a32c23334653185931aa620483511646564658462f18b960d482110b46538cae8ca418a96084021c6be0b8028e2388c488a6205243faa0b34824c823cc362e3266182498c702915096846703894624c2d382de001bc24684cd0bdb17747429d5601b336fa045a1594112e1468c1b186851c8b1821c56908c404202290ca90cb9031c34104931aac2768211998d04a2283c33b431af8ccb890c0c99992c0c1a1a120c9a14ac2ab62c58566c5bc8dad0d4905f906c685390429062889a10adb23188d0905ec8c830323302030d970c0a121a5a17b632db1a518dcd0aa31088ba200a83c8cc48484486519551094624184531a2321ac14804223188ce88be300a12c560f401111b23274620108d61f484a80d9116910c4459445788c0202a83c80ba3d5080a9113a220d1073032d24bdc8206085c19394e8099c9c47058b817702ee05ac051c1b1805b0137057785938253019702ce0a8702ee049c09b82a5c0938127023e0a87022e0a29043d886b2236854c801830d0bdb1568ae9855e09041cd0a465b6a6a70055d57240f2418db131e0a6410de0ba80e2e31640fe417b4049b162c32ac2c2c24585c2c30d60c2c2dac1a583bb0b6585bbc135c41d884f04c603d61396159d9bab071a1c48524038d151a991a2b6f0a1c584420c0d8b8c2d0702075a0dd807e80367179913920ad484dd095b6856e42c6408342010830aa8196469c822606a3c2c646acc284415c63e4031c56d0048186058f8a672516e181e195e0128204c255048d0b1c1bd78a860ca51d5c5f6e6430cd94b028758181a1e485080a9aa00d0824205c4428a5006b83060c4c0c2f05375594cca0f9520a53ca525a83d4031c5794bc4c2fd4b0a04403cd079711ae21605f209940f3e22608372fa019832c82c6c636846b0c2c0c3754e4c0721d4176b939a34d7093e54608328cd2961218ae264a5626186ed0e8291a8a0eea271a04ad8216ea1474085a049c191d45c7401a01f3021302f683f805a98d08463626b342a6c66bc19342669158482d4f05cf056f05740bc90ab406d109110af18c7705ab01a6034c0b8a03cc0cec0cac8c0d05db0a362bcf0913cb134373e661e1adb189b185f1ce7865de169e161e175e161e1baf0b9b0eb62e5b0e361e6c38d8bad87af09e406386a4851a10d08081460ca40fc82ea4175b15a8094a43f4049a164843f20be60539147330bf20c7a82981fc41cd14920b9a30d0b4413a018d0d5e959115727cd850c3680b4984ec597e99145743274834b9c012294d9c14b16449f62011519c2c59828d4e209a5318628911188852040a142316e033841328508c584001a61a45f864208a132863d889130c2c31c267894f111978e24489d394022301e549131f27442c71e20403039869b0111888f2640907a638d9c0114b9e48b13e519c6880034d907c46819d0c11c588284b9a2c7922c53a19228a1110f089b201238618c2f29862883062082744cc30d1602438e0a46709124870c0899128463c410209273e74130aacc41329768a939e29460471a49b4f60273e4d887802a549124b9c6cc0c906922821c2490632d0444901e6198c44cf104e8a18c2098c844f1427539c1411e5c9a719519e60006796c1433c4122ca93293e4b3859c2012852a4345932c50911509e6c20d533841150523b6618d6c092263e4d8868e2e3e401a4d9840e3c81d2e489cf93284f6e4c2670cf104640b9c012273e1b18c2c9124e68e612788a110bd026198c8493273e4fa6185184cf069ad44c257014239ef83499b2012296f818010589254fa4d8265336606ff07302e5024d7ca26c00034b7c867032e50911519e2c5972539253b082908618cbaa8c87562bfb54f066ca31e4184fcab3a249eed8b143ee30bd2230c2ee8670c21cb31bce39678430079c0d59ce9edd3d99e7e4399b19ce397bce9e3c67cf286aeec931c2b8bd37e57bf4bdc7a2191bd2c873cad19c9452d81d23e46608638434526eeec9909be59c7cd16ed9d08a6d61104e8b36e489031fc3ee19bb63532cd2502adaa22582f01271431e6ee684b41bc248244e9e1a6c8673c2d8dd52ce9edd947273c38e0d3b32e59e3c39c638a4616466e6c8b121336d9e9125b38c94f2e408657c30c2399f7c70ce08e3a458d3607177eb98cd0db91b3277a47113d188d150cbb220a4dd13462cf2e428e3e4813032f7a4dcb02303e69c81be271790b233ccb02347734e39e700149000284751d2393738e70dd9168c316211c608796618737c8f6933a5a2b8e98031d28e5076531869209c7342c698638fb01e80860052001ac21d6e6e649437982184338790daac71cb8d528ad118196a91d42d636cc8734e66ca0c21c60cadd96c4186f0eac9dd3d7b4e9e934711366d6c72cf09a1462977649e54eb86021080c6ddefbdf728a5cc936adcaf39088c1c0f0044d381ccb0a1c5dc1cb9c8dc28e6c71a37b786a3e11580c910728c3de89c73c2c93cdf7bdd1d63b7d6ddcd5c4fe6ae1ba71f0eecf728edd910f2eb86b02373472999658c18c64c29a514d218b72d6e5b8c8d61dd10521a23a510520823a558d34067f786619b8e39fb3ad06e0921e41b489b3684dd8d8d646719ed39e77cf375430dc2d1ec863ce3d6cd5b0eb0453c98b979e210218492524a23c422061bc238bb617733ed9eadddd0b099fbbdc7dddccc1036cfee39999961f394cd10764308e19bb0bb658434cad8a552a9444303bb21cf391936d7ced1b0b9236c1c8c43638deb20e50821c44636e47073c70821843146d8af1bc2d7ddb161c3eeb63aca097bf27bade30a1d328034dc1c986284069c68603a49c20994254b34d1c00c3832600494251988f22403193002cacd0f229c4c7142c4142396a074b8c1c993293e0418c0cd0d1d3d4334b90014284610c0003a00000000dcd4583e433441224a93293e4b7c9e68400346986c2a0e298a1329529a3cb641030060274ea66060c914237c9a0c610414284d00c03668e0894f940d4ca91c067c36c0c349114b7ca23c992265c910483cd1c08e1c503c963042091f00a074b8e1356c03901b6c587283939e26502eb02403519e14814493224e3ab7841322a23c5912e549932286c000068ca8384081f2a427c7071203a8816ff031c2085301d886264ea6d838e959e2b384932835d8f838c9c000ce3620e183c493259c1080007cc3124f30e0648a941cd294264ea00cb1c449069a4c31c207892544407952c4104b7ca06ca009069c1071b27ca634f141620037d070621b9cf83499e2248a930c4c41220019df40841324907032458a068c1862c914274918318493294b9a2041c4104e96d8d083d2e1062943384142e72a62089f2617585204124fa23cc1802989284e200fb6614914239e2031c549124b38808127539c24b1e40036e8a0c30d44385962848f140e4c196289cf124e6848228a134880ed8b563d2056010101c18d89eaa99e6a040414a104a2aa0904c41148a59a2a20958a32513d0c0848a5b298a86033017a2a2020a0080499a81e1010902a32513d954a0504a49240404f95316120205601351315d00352412020555f4c18085349c804e8a91e13a00704d44c540fe8a9281306026a260cf498a89eeaa92c260c04a452452640ac9a4c548f5592093313d553a9221356a9549009ab54cd44f5548f09ab1e930644331e333f0d20d184034d48a3d3e038cb43283843060ab00006b7591e4281989c130055610b24e802cc1364d046cd91183421042a98410cc4a841c363065244e184952d508982f4c51621a0528ac1ca962c0f457106d7046ad9947634eaf6b0d7aa507a58939712c4150c4d259c004e2146aa014573259bd21466225fe13debafd21584810cdfa766ad92b5a60083b51ea9a4acdb9c83700fcb6de2aae0d85e2ec582153cb1951ced6c6ef56585479826a8b145680b4f400277802a60f1654b09ae10c39651507b9145155010a65a1e2a410b4e40c6dee758e15432c7956050ea0462381b1d9687a260c34acb4326c082bd5c63414b3940d8cbb3fcf8da0cae47a3e4df4d3534ea42e961699b5e1c81089460dfbb0bb7c3f29008d8a082cb5165065c8e2c4d7037bc4802575282139c8de5212a578045e06e581ea272c642311c8de5a11158b1f731f56ed2d9b1c20c3cb1a5f63d3acb4324e062a3e5212bb4d8fb9c1845895bad564d685f7c1163a5d01a20b0b15caab13cb445c86e9687b210434721e391161c0341e88b25590602089c609f7cd66f0d96cf6c4d8deac3cfaedb7854565431d3c5184d08d2a28c94c8ca7340088112acfc8ed6e1a1d56a05454abe8709ea702a567a65c1b1a5a9f778c8ca0eec35d9329cc00b2284e0036840a1456ab34326e08285b7d9e93ebdd34881bbe5212b5358ccf2909512d877eef16a0f07a1d0ec35e5ac562b2790b0420d2b76d0440fb458e5e4dc202ba2055bacd448838cd5180c480959004212ce18d30426d85b0a12edfb6ab5fa40ca085120610b131c61044268428a5a212508d2810c6a2085316c21f57ecbdb7b5364dc3a6fb55aad56a99b63397581f097206d190c62084317a6c0620a62c090e2738db22cdfb4d33a31c5e71e32863ab0cfe79e10d829601505a15402ceb4404c2a6bad3b1c25f507014143295839787a57a5326e08f9125d95e51f4df86295ea8e5340fd9680562ccb32124f4f249e569585b493f05365a14f5b596f783f5a25df2ba3bbfeebdefb4eb7469ff136e4595a7178604b4f842dad3a88c0517b1f154b0fafb256f7acf58e9770a72d95959d0fb4b1bf0355f2bd3063a2181385485e544522a128c688a2182314c59828b6df6827094681cd39cdccc9c69c65e65c634e3273d63746f4fbc64c51e5be6134bfd947dce47a3b6df546dbf56a76abf3db693ae6d33661c77c8ae74e87181c5635fec8075a2cd68fb0da7355ec2c3a7f24faa8de4765ab3da26398b55d547be836e7d3ce1b4f463f2fbb292f29fda4dab5b173c2ebb48b62637be6af6750c3baeb96c56559e53a9a6f9df52cdc773a6e3dd49c44693aad4ff33b70eb2c9a8ebb3e491df7899eb3b0633616d32c761dc3b873a4da8e36bd7350e77d7a367d1a33664c0e07c6ecd8cecf3a5275e162924ee5398e548f90e9428654afca924e3b3a27fd9c64462775a3c705a5afcba35b4c2e5e9746cd47c6d229252ac7d29bc3e362be299f651df6ab63cb356a5a5dcde1a71c237e815e7a887661e716b4be2e6d9a5decdd6e9ddeee42f3576f76d2f9d8b9431d9ac3775a2f109d9abf7a732c1d9d7217777aeed37558afeb65158a6649b1de1c6b5d74ec6ed5a7b1f76849b527234dadfe76c5ea8d8f8b278474ebbd1921d5c7c5fb618dea5565b5e7bdfab8b0ba587a2a376c3efa289596acb13b8287cc63cfa046d3d57c76a267d967979da6ab79169aeff4a473ce476f3d6b5a59849ea2f94ec38d08bde870e3b92aade9689fe6b3ee7256373baea63b3c61a28ea6e33e7da733da65bfbad8a6ecb3bb9ca536fbdb8660cfb2bf8e7697e3e1b40cbbba529bde0f7576f4e9d9b4e99d9ed62e5c8c9a864ba692124ba4025e692bcfc65a45a83e2a6d92f331fe768df59dd27ae9af9b233ae4631775dc27ac6a1df335cd6235fe521d6270b442d12c7d76598ff53ecba7bfa495bd19a113a3efda6359343ecee2a4d53d8e9a35245e46d16c4fac54fb79aaf7e47bf3d625ea72e009ce7a2407eacc6a7542d68be251699475fad9d17a55f659d6ab6c9d9f10b38d7f5464c7d1c6ac754497f139504754ffba67657d16020efea7eec019c5fb111f2f77e01150ca98b5a809dc4fac616f7928088bcd386b8db79a9a77535353f39d7e1b4f0de9394fc88d93ce8d22fdc6e56f78426ed42337ea55d91b2775949e44a294747ab8f1d09bdfe86eea55d91a12e96fe32165dca89a7a9f259dcf94cadf7068a551f492d4d19aee3e5bf31bde0f4b63a6f4ee7073b0b45e199f0347a986471eeaece4c05192ddbc173b00cb4320a0a28cbdb13c0402326c0635a9255e01b13415cfca7ac5ce9c2784adacd04a9be673fc5dde68715cfe6297721bf2787cc72fc5f9e574d44b7acdb951377eb96fdf813a3c2a137882df51712ac353a6a3323cf56f894b7ce6ebcc3a67225faaef7a4b5cb3abde1dacac94fe46c76dba372e7f4a730d52ed34b7a9b77475dae96b3a1d6270a4ea236d0d4dbd396c9d0e3138aefab4adf9cd4189f4d0475b537b48b5e6d749bf70549fbe58dda4d56a0fe935af7937b4936a0fbdb4703b222dad37bc1f9abce1fd90d2ca46e78d47f49d7e7f1b11ebef5af72c5f5836b76b44b64f1d263590c4a3318117cc6e0f3bcf04eac43ecd6bd4c6ce1dbd0dd93e3538ea445ddc3aad4def5ac7753650a7d4a7f71cfb4cb7efc7cecbae5a37bc1ff2f2b3bbaad9a6585739ba4605345a171a9588e5be15e53e3aff5979571a85fdda61af6ebbd54df825a04eafe0099ee6192465d925655f939ac559f775599a6665ef3a7d22ad8a2e8d8ab5a49495f6af9455caae3dd7e9e52f148d33a861aa1f4b93b7b42b58d7d30d2debef61d7849e90774cab62c9d6a868513c21d8e7b35b56bd1a153b4fadc746896eddba9665bd5745134d6b094b62960e28cfadb3043c416afd55d95d1684ef15d4814236a7e99585525e4aeb9a90d5ad51b91a158b711b119afe880683b0e63650deb0115995e69b052dabde8057ac43cba6a6421a6de3c1b42e6c76d1ebba5a6a42d6da81a26e74ade39e75d8b7ee8a5f02ea402133a54651d12849a4ed281e0a411d78e555211bff4eea1eedaeafdbaf66b3d6b428decac2cbeb6359f692c7fe6abf0bfbf5ec3decda36f9cdaa9afcd6d1639fb7abd87878054678c5b2ec76d1ef13b218767acb8cbdd46ebf508b8de73a6ed3f65117dbb4d5eb6359eba2ca9af5ac6a5160d8e7c6836954ec655996a545f17ecc88c5320d2a9a972388f4daca7b63b21d6fd4756eeadce8edafdb324829855d8f85510ae1a41846b94bba7552bd6de11ba393d3f03e6b5d280d6fbd698f4689ba5eefee2e73753df440b6e19c37dabeaefac834a47fdcef1b03c7748cf073c2dad31746cd4ed9a7af9b3007ea7076acffb60758dd5d1ff851f7bbe977201d33c65edf3ad14684f4ae3d7dfa8da4750d8d467a166b68fa246ce3b9acd80c766cbb21ec3a5ad875d3b95d76cd75d76dba1b5b37b796368f95833a36f5db5fd728ea1b2d7dd4aa3dfded34eb1e11be6bbd50b4ae37da404b6b4f7ffe3a7df666531d9bd3bfadc8f6dea7ddf581b65fa4db3568dfaf0fb4dbb3b9c9ed71d3e26ff8404b9fc531dddddd6dd3319f9a87b8ae09f320f492412b76d5d7e6eeb83d22ad21a751d6b57e5d1f76fdecbaaeeb3deb7a46f4bab20ce7efa2f4f03b7d937d242f6fdbd1b17adb66df69d95d6885c94757be5fb527fbe8f2f77a16b51c1a75e32c2b67e154fdc83f78ceb1108bbdf33edd731dc84aa892d27ace13026fc12bf25d87bff91dfdbd7aa1153bdff455a883569fb6d9fb1d559fb6b034c6652f7707fbce7c73b04ffeb23ad8bdee76650275b8742dc7311ca7e746e978c03bacf7d9ecb2bb38f5aa37da577146b73e2f3ae93545e0e5e5df76045ebee73c21f2afeec09d9617e7f3175ab1d65bb4117997b547fefaf6ba1bde0fcb86e60c3909df79c05f9cba43db88c0f73c9c67db11cdc233795ac5eae578d0ba03cae3605e6c96c969471ddb4ccaac939d1c5df586f743e6d8f7b91181ef77f33abaed379df51d085f770c750e4ff1a57a29e939eae56a8ea31eeaec8c7eddb0a9b754536f89a6926eb92a8a17cdb067574647cf30faacb51b9e90fb7268947c0e3b58c979b13c8695753ed3a123084f878e20d4ecd97b80f56b667f5b9151bde1fdb82e9f75d7a7adbc2a0ebdf5f91da8c3049ee24b258e8bbfe109b93ea5b4a38b7e73b0d67564a36b9f1b91ec3da37a9fbd8e5d6e47349b9dc9e8948e7e393bba2eaa37073b7f4b76ebae6bf5862724bb8edd8256ecbb3a392dedd84a29e5d5454bad7ac3fb31e55b59a641a5e3e5c08117ab59d1bb000115ab83e52128c8b0198f74c0f11014575893e5a127c66087a0d8c266f6fd51b13b1ab59daf75ee39e794efaea7b539a59cda6ddbd15e1ddb47455e97b3de47c5cafbb48d74d239cf9b91f8bebafb66b4b264a14da3acf329cfcefaebacb308da1b2b55fd00bdbe4cd8f8aeefbe2b769e763dda816cec2e2c026df6e83bad0c63775f15fa7904b4f7d9acf6d06b47467fdfe917c513d29fe746653eedd3d7a72df751bd6db573f5f6a362a7a85e6aa1d5e8b5c71bd1e65fdde9382b8e9603753e3af680f7586f91f778e43d7efe093d21f1b3bf036d773ac4e07cdac6ebd3f751b1d7ad6edb88881e6b4f7c5f1375f7d977611fc5513645c7661dd51be345571736a3725aad634ba33d226dd4ba677b2b92d98e1dbf1ff709d9695d76f1b393cfbaeb3bf0cd67518b3bae6725dbb745780eea90ea766e94f6d8a77ecc74e808020745b33df1f4d6af66ad78846e8f76ab38d6afcb6bf5f4f242d1acf6ec37daeb7423f2dea31dbbb51dd1ec7b8ea6d167f545f184bc7a9150597aecd7afcf8de7a26267c7b1634b3b39add5b18ddde5808dcff8758bae07ce5b116963b45691cccefaa2783f641535d7858c7ffbf502de7bcf5e87c3678b33e4597ebfedb31cbfbf21b07256059f125007eacca766c77c52825ac829d9bd146f47e8036a15ec1745c6a32744f86c04994d17befb1eb0f0f1d91e5839213620847cfeab971f21e4cb4386104208639bf8350cb7d9086706f6c15759b6bc0180c70e1c1d37a51c386ed8d4d090b89168d332eca2d69411f6631f7cde8e78676c16f89da6946f490756e6d33bdf3ea0a7eaee3119332a46a8d2a1d482273ed07b44326621fdcbb7dcd154c1b5e5bff366e4d91eaef4fde0abde23c29144448c9936b18d1c638c31c6c7c7183f1da08a36d61e8e4cf755361bf11f07e98ed9c7ed1b81ef27eb90eed8aae24b82ebe55ebdf35766f25dbe65a56dea5906ae7f350baf35ea556694fc7da7345570d1be43dbd3f075b44dfd777e50c8a0bcc20be69cb3a5946fb29c7342f9031347fabac560cd796959b846cd2b4f4f3723d6e7ad78f98cdeda78e8a4dd232715e80ada38030c4d464a8a9a59289ba66627ed984f932e41a1685c97f94235ced44506667cc1e6edb0cf14a78ded78245ac9334bf7f0046db438d4c999f5529bb536bb529b72da042f04a79daff0648c7f1eb0dec663b1659bf57b328b2df2bd2927a453c2a90449352e8e996678640d669536784a389f10e918d97cece67cf34fbef7e69373723cd675d14ff9792bce5bcf2ced48bcfc4e67b28b6d9ab71e371e0bc6ad48ac5a6cd3ac3cab10379ebee46c4a5d784146d806fc9c8f1f718d9a7fbff17133023f0fb722f1b3de9652f644188407468585c5d878290517cf626c374f165303f94b9a554a97a00c97e148590cb6042c96c0621e182178f125fe9c8dfc7becdebb5034fb2ea566e593dd1d01dfe34a2549b9528c345ad3d2216394314ecea6d4f11d35d9518d24401b403ae11326d5381c4829a794528a216f20e52307993ed04a39034e6e467a4eab6336cd09ed3c63cd24a07cbd8559866af5422eb63f21151b61156b159996d9c78542436e34181bd9ce0e0ae462e3dfa31c776d9a0c1bdf601a05b9dc40e3ceb06930f6c2211c56d659a54df022326093612fa41a075b8b2d4e00b9d8196990f1e809f1f723343816c30a2a56deba64473fbbcbc44ecbcaa4263729ad5f1d63d9b47ae5b1679cb51989a7f5dec8122bdfdf81587751ebb22c4a2f6abd6fd524a49db547d61a21173800667229c3e4b2058bbb2e4f39c8bcfcc541a866ad2c4150e4a428e3201f741d8aa7300c08eb26e320a995406d6995ec434e2b553ccfce1ad98794aaab63d621fe44cdca25448d9b0dbdd04619327e46d94d190f3f3b1d6170f16ce533a8bded08bceca29572e3816dac7233f28cc0ead3b67f04ecc7f7ce78116e3c196796c61b91f7dee7c613df7b2fce586d2818b8f1f433f980f77690bdb5d84528e59c734e28bf8009a1075819eb576ab151c2c04639858dd204365e8680753829548170b1c1552acd3083bd9c9542f6ca210b7f81587656ec0b1b72081302172f80e00517acccca9292ce6bce296f3d931d6d1316eca2d39a9694334c6bd69c3c5992ab523e74384a7cf8043e81fae3c355a9ac0b0febc3025087029fc0182f728d1e70924ac12df99564b003e0d7b7255dc625360a47bbca6a3bce56fb8e8eb66606b5f101b5c2dd8c8b853a1638bc2403757e5eca0215473ba72c70cd02180ab81112b66bdff10cdb7876d46c0e50d9edbc3da0dbd13d4b3723d7b78a63e4faf6adf674350bba118b0ab6479be09374384a92dc02b740fd497255ea32833b3ce9c2d9b48ccbd5d9b40967ab43da6ed733315027085691820a0f4941e5d99b301999357438ccd06ab56a22059f7969140f4dd18585cfbe409d9782dfb42be3d2a82bc9d82d1a7563e15b92813ad9157882a75492d98410e213386f4004710afc6d4038e013f8db8078c02950332cf0043f812ed3f2e07b8fa5e852c06657da04ffbc704cf87021ce44920701af589809e1fc6d43da66424ac8842cbcd6d1fbd0712a090e103ffc704e09d1e100010410e754766541d7c5c35dbfd9cac2ebfadbae3a45b3f18f7fc49f1dcf9e765defc73e1ac85edff10c6abd1981577d6c8acf56d703702b12ed8ec3ed08d4ae2e89b61a43d1f69ddeea11d06a7547acd9aa4dd9a5652bf82c28c3b4deae679ae6c3f5241da7b2d7f1418dba2a7cb66a148fc377c1a3c3b9feecf508743857956452728d3ec15f62e0b2a19a756913bc150507808afd665d22fbb8aaf64cd3ac4ed39208d1ff397220ea4f104ff21f3a1fce1b10ef3f48ee43fdf1e1ab0a9c091ffe9274ab0a9c8920de975b124e55c0cade96a41fc47fe8de81e8eec38f40e2d9eb231ef546bb63479b7890b84ddc261ef56a76c7699b769c371ee746f1a83bbea36266ae9a44a6249930b89b752153c5ce709c675da04e922791a92415c9d5b1ddcce0ba0b07c92c26aa506c6cf6ade6b4091e8915c84e1fb92a0fdb11ccca4dc991e300d14adee794dc9420390e10ef499ea432d1c3df39b5037de8381544c7a9193a9ceed27797b315e87e5e0a02cf72da34b51e3a4e29e938f5361eda046f9debac7a9fe52c29f2d649a7bf488fdb1079ee5b179ac35b34cfc604714592313d5cf1c31942683e9cd1a84b45a32e196184c8c40471c58724611a75b32811d3a89ba5875f69d4cd02c469ddc06c581a75b3fc70ab6e61ba10397cd6c590c367433c0c387cd61d3efbe1b3190e9f01e0f0199946dd015cc8e1b3351a7505f020651a750ff08d0c1b8dba40bead919959c0e1b331a45636684708a37255a1562c2d8dbaa8eb64d1a89bc375e082c31637745140170938bc368480c36b5e7638bcf6653bbc368676780d8c46069946dd9cdb70786d8d465d03fcc7e1b5323e0eafb151c3e135338dba3587d7c6d0a86b73f86dd5a87be3f05b50a32e8ec36f428dba3acee3f01b9546dd9bef38fc56a551b7749cc36f561a75735c4ba32e015e80c36f5934ea9a7e3afcc6a551b7c70370f86d8b46dd7a1a7e624a0287dfbad0746c33de68ea55599acfd0754d4e3b6cc9b36eabc0713a1e9d12d604feee41fc40821012c40c448218522f0d627bbd433e4310428e5395e0820082b331c98238009a5c881ab4e5f27890aa04bddb0f70009e7a67f8190080035425b8076d99a1de20d6907a19f0035425a8907a0f40831012e4330431c30cf5760740103300e0415b18506f96202e448803047120421c00c883b604a97786f374f502e00cf89908b151217032ec9d10f4af4a684274cf22c471986c423c632224c883b660f5762742ebfd87fceaae24375c9ceb54256892ed415b16902455ef759a04a33c922ce05b921b52db310b5cf562a7496e2db97cd0b90e3ef0380e38d81dcbd2e1385425381f1eb485d6ab73ab2a6151cb1e87aa045d40bd38d0243b3aa74928ad37bb95845a0fda62ebcd92e43b3ee090e4375425381c6ea0b7d6777e5920d3a15e9da77ce0417dd061f301ab37fbe503763d688b4ebd597cb80e16e0e1c3712ca0a3c383b62c20abf77aea5aa7f55083b65c1e6e0db7a12a417be0f1a02d0a4840bdda96d9d0430df516398f1e6a48008f6f14d0eadd9ef5f058014d490dda7215707f501b10506f766d87186da8d786fbf8f1a02d59bd3b583cdc47558216a9d707ed01013b3ceb21cb620f597cd0161eeacdd2c311a0c4470faf41898f1a1eb465877ab323207e876b1450c013a0c406aa24014ab67a71ae29d9b4076d5140bd59943c0114b041c97f50c0861f0fdac2a3deed0aa8577b02be23023fd05095a0948702ecc0f981074e030a5095e07e30c2038faa8465ebe5719c1f2eea94b06c9609ec00a2066db945eee901a84ad0020460070e91a800a77a0bf000542538204e38f5deb01a701c3fd070235509fa038e1bc7f9010747f4038ee8415b1a506f961f1e002068f8e1388008000d0fda72a35e9cdf101dc77754252c9b25023645a8cd02440128103cd4dc06081ef5da7c475542b3f589a02d3c763c684b917ab300711e2250807ab3083d05c44f5509ce3e11b4a500a7076da9a997c76b6ceadd719bef4022437818b08094dd51400210b083906e000fd209e007e87a1c4857afd3a174e8727829091c87aec76fe8ea6de8727e7406e89404eea3ebf11abafa0274043875a61f9892400dda3280ba8969133c144f6d1140ddc6b4093e005d8f9a2502a7a1ab11a81b197882ef3a1d7f77f319bad201d0e5388f4ec7777437c7e94a177539be753aae7537cfbad26397e358a7a36e437d53372f5daadb972e47ddc6e87c78105d9203d1f9f01fba2457d2f9503730f004df4397a46e61308ba39b6534310436ec8dce2282901937b0361d9ca2892f59b035dd140110caa861792bc24396a66e5d20a9db6993e561d41d118f45ac23d2367bb5bafb179b42cda2bf36d6a2bf96a5bf3bac657d07d22396b0ec55d1232c9b7547c48de7d779f3695ba457abd58a07b6b4fab49567b62e8dda861a651d7ef3b27d69d475f86d8c466187dfc0342a3bfc4646a3b4c36f611ab51d7e3ba351a2c36f62a00ea7e046c6ae2cdb9b75e9b21db0099e76990f3803029be0b12e0b834df0599709814df05a9715814df05b9721814df0a22e5b029b601711776cb18eedc5677260af3453c395642cbcdc78ac6a7a01774d599936c123e9b22ef0047fa4cb86e0091e025df6059ee01fd06561e009de0199180b7f95e16ed6e5220317bb8b0dee665d2c1459f6b2b2c2deec8b8559171d622cd300844355a479b690710f0abb1bc4eb90439b1e576ee6e6e608238c3042781b0be1fbd9c74cbab1fc9fd64ba9352b6f3c4d77de7bf55a3c44eb11ae0cdca5b1099cac40daf472ae2d7037e7ba48a41b7b6f1eeb5c7c7a67f67189e13e2d7b69828b1dea3203dbcfb29231d461eeed201111c385ae80dba1513846faf0b0e2c447d8f59aec2b5114701c95ac7bbc2a70a536f55fe5dad4a72be0f8943b0a4ffd0c075e6561bd6c235f6670b73dd4850d7b4f51c05d4aa10ebf3fe405aadfb3ee92e82271b59ae2c3d98c7dc05ffc031e01cf8ca148af629d12ef43edc53e60c753c476bdd8049fc9b7c967538b1d0fdbee9268abb70740d90f8afabc0d813656ca3ee0e3799ee461c64844c488b1d25e6a35cb3d6027411ec3300c83d8b93b02fe75fcec6591524acf2c648a761f6ab5f33513076921f17f4262455239c8ab3db00f791c22e08e04ea882e2f04d451a5624abe08288dda2e2fc567090ef2ac7c1146d19c1c1a755d1ec80e8dc250d9e519d02878791e388875f94b54c626f96c76cf8a3a1e93da1eb7326814ace42ad897844ff2ef73e37972e3d934db1b12f6217f31811363df23c7f8a2e8aa980cfbd86e5d14759cea8d08b5cc3e26ec7cda241fbb22da249f7552da248f7550da247f7544b4499e764cda84049e780c569e036c925f827d886ac0c53318fb443678abab29978cdfeb87060761941242880677354bdf8f86536b835e5cf6e0a50c38782184527236ddbdb74d2e1c8402f7a0c05dcd7276418d07d618e346e4d92c4a39bb5b0391b626f6412d4aafee52229db114cd6969310b77a985efb667a0faf08f0ccbbf3bec0b63f93cb489790c08a94f8c94fbc20cc662e1ee0e54a354bb22fb60cba21a84107684b093d0e6d2e6160ed6ab61589669daa66da267517af5c0b48705774b96b94ccb726c3f28ba2a4bd907b375cd4b4678f5c3708a64f0d0c27a3960bb32fbe0e7dcf822e31e9762b1f1d97ba71c979873b0bc2aca82bb3c745f98db5d9a0cd4113dbecb401deef64e02c03c2c582857dae1209b8def2e50470a3cc553ca71a5d2ffc2409da7059ee2395a7a61ecc3024fb1abe06e7709d3527097872c7390f752191c1284d03d4b5750e762ec7d616cbc14a8f3d0e0533c15a816b832b14170c5c6534ed6cbd967ad3d2cb8ec098167ccf2a53c21b076974fe120b4360fd8477c7cf68424412dfdbd2cf32907a1e7c36dc8b5040e6e44a845c23ede455da768956470308bda43831f159e166c7c60b0f19db1b1414057f0144fbb0c3cc58fda8c4e7781a7f8d1b57a4d59bd27fdaa97a3b4d2701ca954e25e6654afc95e2e93a453a2da64e0295e44038ec1acb074b1f10f0ba51c774bf7b49ae2e9caa2ab49577465b77a787a148b651a80a6eaea11171cb3a73dfb9ee114998f9f8fa79736b8c2f2900dacd802581ee242c652cd06666c10c66631839bd4a4cc2c08b0cd2404d84efa66fac841a636b5b711998f46e63b7677f2f4c91e16a748db7e1219b82adbd691f9d6e6e3ec02d0f5b024c86c3064832d6cc659d46410fa1b3f393ef6717dc64e6b13bf87951d7f76d86317006b615707e9b3d8c95825fb788fdb90fe11f938f9b19bb7ba2b8df4b0dce3f4fcb4703ddc5c59f80c09932488795ebc764103d9093204b98091306211250fe47c0110208d8ad3ea52fac5c1f26db0fcc78e7b42ba92f807ac5cf385ac0c2153229b65f6c10577594c46354ae7a109ea98984008219cb5539915eeb21833720c8dba625b1e1e09d499871702ea30e424536bca08fbadba495b8c11032a62c0058c2c6bd81d96c1c81202c8c5ceb6384834558abfa37b983858c2897ff69fedf43d70aa34bf5d957a0e3cddced373ef8153149ee6b97a5a2f37facd91294e893e5f87138f049ee6941e38c543fdd981a7794d957a06c6ceade228d14eafd5d576edb46e8992c2e98a2301faec4a2eaefe6ce9aa843eab3f2f452f0ff1c88a23ff2c4e9178f98864ab3848ace328d16e5dbbf597824938a53d8b5df6981f14919ac0f5d06a655b0d305aacacd6bd2bf0349f9009b8cb66e2777ad43181a77951372f05ea609f5f02ea689fbf0007498263f28474cdc27d7e08d60982c294da2e544a719f6f9500a1d215ec3cf30e424052db2f6bc1ce6758f7525af7aac027d4a6799d9e64dfbf4f0849509076d183b28fce7538f1dc55a9addbb6c76f5cfd19d537f41f51fd62e7b5ab5259d6691d179cf8edaa54179c58719268cf1e6355927dab585e15789affd162e7b577c54eed09c1d3c45ee5d8473c897d44788ab7aa7c8f597b2017cb340061aad71714d99423de19cbf7a17704a6ebbf2e096a8fb0ce946165fb031c12a8236fe2203a2ca6737d523156c2cc64e52f7fb1f29db15de31038ed38b0e24038eb6532f0a2fac3049e9abbb659d6e1f0456070f8a2ab5261ace4ec4ab067e767f5670b5725d945f527079ee47fbec8cc044ff29d08db2925f6d127b18f63cf0e372deb189ee0e9651d8e12edd9eb631d8e928cc2d33b567b78a9ee02b1fcd95d1ee2f8c42fd15b96b7642fda71d756cd812796b5674455dd724bc63daeac62a98ce7670c75b628813adbf9def24d5027c37e732c77154befebf2b8a1e88877c66e1dc3d379c8d26b1dc3538733af4a611dceac48829a0c3cd1abe06a8e004b8a535bdee96ba0e038b595d9c2041ef4a0ca6a95c27e78a2dfa2a47f29b98ed51faeeb6d320c4f54c710c7a99c2d4aaefe55b7dc2cd7817859c8c11056292680ae5f15284a018b29524c00d5153ce30a5656a97e571c25d7fbd7fbd815eeeada0c3cd1f709b8db642ca5b54756896564d6b3db9de2f313d22b5bb27c93e573d72f0f597e0ed4a1e7f381401decfc8c762f8575176d93752c0b8e2d0e92a0fe3bc93e8b23ffa31d3b3dad3fd9afab521b0f92a020ec5a1db241d7b3ba034fd6af0eeb7270e4b3ab52407064c54982fdba12ecaa3f5b6455723dabe7e0c9fa8f75ac323ca952aa54f634ace3d4d5718a371e24149e2c4e3d2b388e7dc893d8878427f979ee610149d56b48052ed653fcccea7e180d2d8256a91fa02d7debd0bec36863198c32f8c0c27a73ecaba14d396d7a6fd37bedd3a6772957191c938135e4409db85aad565852ef401a55b2ef3b7010b633c6d81d5be6facb59793ebd43cc32186324c1765b1d8361056aac526d6f8b78425a32195944a39ee5a12b5616b3efefcabba275342c3e8de2a1147cb12f759fd0d01551d8fbaa6058aea881bd8f8a97ba6ce6be201e22699cb1f5d0a9c3d3fb4e6354707ff60878e68ccdbc5066289571936cda84d367314800c6429cae43dacab3182518b2115a1e0ac11816877d474281d6b9b8ac56ab26523c44822a96c9d8f7bb034cdddbfba058e5f297a06b680b0f910009f63219a527a489a411a62382c6181d1134c0b4896d118dba544aa32e8e251a754b501a95c3bee37842e0d9c0612f8fe14a83bbbdbf6179c8042eb05d218988187b6fdb1249e38c36b1dde92e4cb81e976c060cc6b6fca5ef97839cc3a73e95f552eed5cbd986f5966ccf60736ce31899c1bedfb2657b5fc529720b7f0b7f73dea63eec4cf03ddad4a646c17aa33531a3a6144290842ee8c4545b06039bd06206638880860a5e50842f3776bee0e2021f60414119d6b0e19eb0a202e885154164b891e5a12abcd003eeb23c54c51a6d050eb33c54451a65e0a2e5a12aa0d03ce02ccb43550455e86eda60b0200b0b1f4f447458373270f3d9ebb3e3ae8a0d7916fbec4667accefac6a01a839127754e904e032f127ba13018d29986f43949a4c3ceaaa48eaf0756365aa4932c49e5a49432a04dd46241175284c0beed88f558e9796813a55a70daad297034dbe977c68bdda2f9b80d8176fe69e12059340aabef8cec91e1b4bf54b2acdb569e8530f73624da595f18f6416f5981c33e4f4fdb846597dd94c73d2d5aa63c3beaee1bc3d28be0b3ad7b54b4895eeb6e8ea57f62e06e0b597a581f9636d167f55d6913fd0c0247ffc2401aad9c46454bef8046bdd32b69549f5e080ef22cfdcfaa51d7a320ebe5aa70790b96522d86ec653096be204b5f152b3b589a83a561e089d25f26e028f6c2404a9b363d6fb1ab5c3d8a42c63d6e63b1f091f9c5c85d3feefa75b2259411d6af4e960f70190896ff564f0c990344c186324e2cdfea55d9c1bbf280c042b8efbd823a4c20f715310f067c1263030bdf15cec0c2bf6a55e6d37d3bb0f0ada67df561d146c0757cac3950e7a5805858e53201d75866968cf9c44bcc78f927ace360c355d9cbac03eb707fe2df7bc69b11ce76bd526c9f9fa08f7fc2927f225639697d82f909e6d395622fbf6f5592accc36f07b23f252d2c8b3b67fe443504a3d113f6b0868ea09200ea3850c4f9031660965d8927a42d62dfd58f9dc1548aaba651a5d6aa0c516c0f2d01616747763163b8d0ad5a8b429ee40cbc203595d949aacfc7ec8c34ec8c2b8f13c2d76308af7035e5e9e08912e7e8348106158db7ab007553878860c2f90459e21bbc99a8c1e63dfa19826230c1992490e2fca69d14829ec47dfb4e835b5f7e885655ad434d84fa3da7b58a66d5e44512482fd444398f69ef6b637ca41e66822d116f67dc4c5be67a32bec3bc769afbbadc5be93fa0a9a484303fbd1349636bd9b61a3837ac5861936ca7cf14206182f5fbc0cbd2b1e9667e55d79559a0dfb0ecbc031720c931cfab217fb0e79c8e60024e7754318a39c714ed86fbe86304629a7152d0bf6b3a29cd3b228bdb08861b01f66d1ebc2b02cd3b60df6dbb04cd3b64d241a7191e3603f6ed35aa4f568a435c7694d22694d53136b6a60bf9af7ba4bdf8d1bdac381437b394ab15482fd4aa48ca6a646ebce6623f22c67a375776323f26c77383622cfc61c31470ed82f0715e114b96cffd9aef7c7c27a838a708a5c246c8369d37bfd4125e3ce72c87ab200e5a4b6c05b9d13d6a9143b7b9280364b07acb3953faa94ca3612ab5a9fdd646265653c6f3d70ca82b73a2754ab212c5584823ed0c42af5842ac5f0547bd8fa9e22e3f3c8091c8791032cf6ad74ba91185c0f3cdbfb5696c3c80117fbecfbdb8ebc262cd7fb56f1dc25118d8c2c1f765715e4c6e314c16cac478c2c9f9b6073ece533f6c23777dc8da8c0b50efcb71d71cec2ca648a90c54776c272e5c83efa196f90bb11181c7f91053036721049d29ee53072f0015b6ad37bc7f57d1163fb1997b1cf8e80eb3ec741ba29cf4e79f67252ba04dc7d606cff8169d4a58f0c4d8c1832f05ca1091578ae20a40a4dd37c269c10ae0adca1681ca4350ec2f0b09e7b935321e7f513d262812a5491069657455ad6a59452525a92d37a5520ad3a94e34a26139b6e8ea5409ffa63e00cc250a04d2dc403b8c8547855a00e05c6d87e15215e60823a4c844ca6bf54e2848882f5e60d2216ee321807b40eb783cee10e03786814fd5b27079efa3b6e0f2e7b55f27b4f5ed775ee8ee02803da15d111b15d41709149731f09d421a24ffde6356cf3308930e07ab0893ea75fcae83302ad752670abb7a475d63d2ca58095cc267ade8adc5a4510d1a6e6e1b45f16a33dab8c8c368a992b71ac130f2b37b23d3076777777f7bb1ba855dd3d052d36f2553bb841155cca30d3852e6491a2c1be7348b0ef363d741acc6ab54a41eabdb423530202ecedc14ab0b7869bc30e237bd90b672f8f41c31937ece531bc8685365c1e033c3cdf67c5c230f63e2a44f6be2b627086858ff0540637b0f05c49063eb0f0cf52c5c29bb214c1c2e768c162e181ec682963e179d072c6c2232981851782c90d2c7c11330882859722020bbf441716fead84b018aa62c5c2bf2b8de2211a5cc1c23f2c8de2a12cc0b0f0adc5f68b61e02e05cde322908417b49183277c81c61a1506a557650c2a7c30832cc0f083125851a673a20d52ebc414b57dca0c9590718f8705f75e11f084d3b7ae4a59f527fbfc0f764b96ad0ec9d5e1f4b1ab52383dafe49ac760e959c1c94a4a718a569abaa573108e7dc0f3b9221a065cacf75db1eff0b02118734e089fd499d48227ee112f3b42a859d137ca8bb8e0def9992c739a15dc3b5b229c2296857f16d62b047522a3cf6a6e46192f84104a8d368a3b682f8410cea68d62aef49666172884b2a3f0c4e760532e71c6986916a56b586b689bc8a2740d6b0dd1c8a2740d6b8d113747228e24451b8986372dd2d4d8dcb028fd82d5319faefcd43623f0f1d9664489cbc66f5b116a7b6e68d9c62387c8b662302d2b0b330bd3b2b230b3302d2b0b330b734e4b3e36c9b3847f715a1618f8f494b0f0ef491f64fdac2f243cf0172642449a6332ed00893c3b8e3e4b099eb0c0bd6772ce69498b6ab151cca6773e3fcbaf51d036aa35f97933b393024f5d846686e3135de2da8a509b65d855b9ca313cce9ee658265caa2964d046195480851f78e1837b5959218210c278d1c613194c1520b0fd8d0aa5ce704119585ab0650d16cc8084512a5edb7862a33a7b35336c9f4e0106546c3fdb789ab3104208218410428875ff328266841d2fa00210b068c1f2050b4fcf71ec05325ce14a0d8270041550010065c8681823c0927aef0d61088d2aabd43b12f82e44a3de5bad52d7f4822a6c8761fbd6c6d354086d982cfcb4a6700111ec0f0b2fc5ac562b28babbdb7e800a6a5c61861457b4a49a87eda6b1dddddd71e36932ecd56c98e0c5de1e167e616f0d1666a1092c08838a292ca4420b3cd482302c1c7241082c3cb4a4e0deef392d168a61216d148440a0ce2153a863841a52d872a5042c600307a91d163ea751f039348a642184f0adc0091b80f8381870b1f3db07b8b703d619f1b0f0f3ef0ad4117dfe61813adbe79f96c705ea649f7f5d38083df6fb90207f9f1074e2ef03829d37419d518d945eae522edb3a7951873db3ba5773da94d23a4e61a5ac629d56ad6ec78b9d1775f35b67b2b4f44c16eb72467c9aa75d0ef631ff3a93959dd605bd1414341504c5534150702911db30af3d1ce669eb30ff84a04e099ee64d6d9a5b1438f9f8f922a0ceab97d27a39324250a075300e9259d4fbec323ecd6f5d0d9fe6b50ea7a3c15a1d012ceca63c8bb18f79fa7ecc675d10144f31db700760e769601db0ae863ecdbf59439ba665bd5b1d146c28a74da63615c13ee6777abe807b572e94c905bbf504609fd6adcf17c141d8ce430b9ee0651de7bae89f50a3a29d7f551a7563e75f172fadc34658cd3f2b8de2a12b57d869b2f3f75d61e7f951e18b5aa646cdd7d0289c0740ea05077f29c7253636940dbdf99aeb4a3632e0eec8f6f91943d89538d86782e78c5c84b534e2203dba7190c9c7eedd803bcd779a74ec57875dd764af67d745c23e228daeeedad811363a09c37830925837eab8cea60c5ca94d32b3b1eff2401cf6eb97d7b82ce6ea6e6a93bc1505273a76268dd22e4f44a6c55ea779f63412a95e1f6847cf46dd35036e746ed348b3a4ef344d77a325d55bf32317cd77fa6d4726181c5b8cb3366fedd9bcb722d6af6a736b0a9eec5895370abb1e43d175559cebda692df3a15d1da59674d263a338085b52bd506c2ce91ca92b69c191a43ca996fa7ae420dbafeba48fba9eeba467571747cf9e46ea684615c7c8e8d8898c2ab7c9a6de9a0ac5c6d2d47b3d896747e78e5d65777ad471a35a6a93cca8f6b6ecd9c5ef41d156997d5cbfcf5e35eb902869d3cb70171938e61e55c212b6b0345806830c2fcdd3831c29aa02d7232febed817f7fb5c7bae8974a9ff9ec892a146dc8f52cab97d5bdf783df8f1ba730fbb8979567f671e9ccf8ba1e06ee32996b5e66d7f69108675487b41dd93e0f3d1ad537ed401d4ef59128e953a0759e50997e0d41b69fb3437fa4898ac427e45d7e3e21f3f294e9a9d5ae594dbba69ddb745dc169d72ab7896a177da7b72e0bf7d9e16c9f67fb3a9cad0e798f3c8b88e6ac6f93a86ebdd5b78929155c7c9b1111f7ed588723fab3224c54b9944d9ffa971838537d9bda82827bcfe2f680f789dda64d7dad2b317c50c4614ce032acbbd887fcebe2fb213fbbf97e48796d483cb7895e76d76116b5ab63fbc2c0413acf9b9c36bee3e38395622baeccc646c63daee462615b86961b95c5bad636ad4353fc1d9dbcd2492b6d82afca2a5b705762a962e125962b5a871ec63ef56387f32eed630d4c6c1ddb904ce214a1369eda588f7867ecedb1516b1d4b0a75e120b109f6461bd8776aafb057b34378442e1c8447e4c23ede2597d83006586c9f63a3ba67398c2ea061398c2e946171e42f3bedd52cb37dfc7b6d1fe0de13acc3f1a906db7f411ce45dbf3c96e0203c6c9f60bd8ff59a5a60fbccf5be11d87e0e6dea0d0c614332c08680d88ef1ef5d96817b5026971cdad43bd8cee1c1016d12a24d146813ed81994763d9cb076e6061c7847ea77f38c0bd555da24d7d28cc14d141913a7edf8b68533f7b9d94cb0b4efebd226953bfe71d4a9b9a8736f5a548b952dad42fc272bf08a8f3527d298d62db9f4f48263b22eca31fbbb75926805f22083f5fdeaa5197c9b0fd3612df8ff758e7fbf186a458c3de6079488a2e568836359346bdcae409e158af7c66755716cefae5304428d0a6bed55d1f7bb5fb863cd9090145b35665d2a63eb6e22e8731f28ec42ab9356fe4f5bcdf47e49d91e78a53049e9e083c85b28395f5be27f15456febd20ab7b54dad49fddabd2a6beec9e9536f55bb5a9c1f4a917eee6d8ee13e1206c73a04ed32fb83e3787456b83cbcc391b524ad9e0342770f73a281b8fb231297d421e6543ca97023097981a78884b0acab097bf5449c118ec65327276a02ee02e93d9b80ce5416c66cae7c028830fac8de503610012666614db1863012cb4c2030be110387ebb2063297bfaf152878b6f1f69fbda015f9649af088fe142a46d82ccf11cdfc391d25ff948e9af756a04da7825e3bff817df7bbf9aedda31c618e107ae805cecee662e7244f52194afb364d132a3e0bbcf6deaacfbbd26b49496fc8c9b11231eb0f2dd5d196d8f3c7c776ddb169187f7d948a4ad6abe9746267a028c30c218638cf1c6f3cd8931be11a59472890feb2dfceb8187f0dc5dfa2cfcab94fb311465c151d2a97ea7bafe30916278e2067a1d8b90f1880b8ec5f0024ca3580c2fb2b0f0734ccf328d62317c408585930dab4a12ebd771e2e931ecf4184eac4058bf6efd3a3f53c563ef59fdf9512df1458822340ec3c388c97c21c36122e9d86355f2337a7615d6e1c4abc3891527c975ec40bc679589eceff59d893bcdd814e94034ec3f5b946c27d59f123c4125dab7fa63d28094e8c8444d165ea5778e4060cf2a135b948c9e9d09d2b1039131317a764e5d2012d0bee1445287132b73c73ad169ae4af5eb522364537f9e962b5db408bd2b349ca8fbf75db9a105c74b57a5729c53a2dfd7c5c2d74041f367069ee0ffb3454976d27fb660ff62a192d169eacf5342faa8fe3c5265787af5a7febc2f2f0cf6050b93bd67c6c28bbaabc391b7709258efe3c80a84f5c60182fe9d5e8c13b260e30b5856ab94e834dfa284fbf5ebbae84aae8b2e2d16d2d49f168227f8abb6962bd76f0b5d7d450b14226346884c9b297539ba89a3bb81916933d93995fd42219bf77fb6fc6c5152f3eb3ff0420a48d15c547fb62811dda6fed85ca484bba8fed8d4e6c2fc744d85e2a568fa0be99c22fd761752c59157a5a699d13935aa38b2220962788af5523bc5c013bc2a35cb74180b718078a9eb2f759d74ee5b94883efaa8fe6cc149323ae94a4627d59f2d7114ab92d1b9fa0347157681b383643a329cc27ee115ac32b18553176a6122ab384abe1dab384068dfaed59f2d3848b0f7c029ac0231cda8e00a2d68c197d52a057f843aa51d28fb861d76b1f03a84c0710a86815f2c845d8820074630c298d52ac529ad320194d5d5f5eb1786b1f034617008081ab24c047b21190b8f75934b0ab80b078c85e72c83b1370a591885a0998e460c8e5358ead90bcd58788b4615dba60b0fb3fc76b0f18b8d349e6bd466e3731a159f43a3a68d07d228f8780634aa1f8f8483b08df542e13036461c7031426863a36e6c9fc9b0bdd39d45c63dae0e3116f6a0e4fcccc48036412896763d506c6c4679c0f564d78e912c8341862b39b4095e28506c76ebd8b3a7f146ebb58e7da7a1d8f036443b3dd655ed56776db4de78ac9db6d852ad02f16226c8b2172c7b4103cb752a85d4782b92f9d0fdf0203a209e591d0f3cecb489071a701703d6e8ad873e10efad87f71fde5b0f9c0af2e149f881c13d8bb18feb3d743f3d3cc995743f4aee4376201c0f5d39c3b2e5315aa38dd27e69f5aaec8eefa8dca6abdec8a35df58abed59c1c1e1138dbab665db2d6aeeed90b888bbfae74c986da74ec728debdbaf8cc15edfc280a28bbdb11c0614606c17363e7bc6a31d703c74258b8c6ab48bcf568dd282e876e4b2da6347afd12da57ba8444ad6e98381a0848e3135232341081a03150030381c160b47e4114994851f14000f97b45660220ab428c9510c21648821c600110010000118cc060d0ff62933bf68d2ff401b160a2dcf5435a72c62ef8375a5b29701ebf2affae0792edcd89e22d6eac7b3a7a46daec8097005c14f543031ce44c1c0c1c719de22355b8fb8c9906fd452fc935a40472dc90045a5f7777220147c562739d0cad23215c1b49ab1044b61cb92106d0c550132db4a8bacaf187e80ed926dc6ccfab123abb408011235777f43054632d45e2a1aff69a624a105d76e923bce0963417ad494e03d6e8b7691bf90964058ea2c30d15e86e888333a89223fa912615f6bc4e53790195c7e036e564e8df2f589f91f4ac8a941434b1945da3da7f8bad53230ac41cce1dac146a67f498213e6dbe3b945295a29600e2ebe4e6957b82513c744e5aaf2108b07e0acb797d346a49c64bc317b742030083fac5331563d57c3e0f35cc846b369d5482834510786e729d9e8757d7d612e1d7909b574700b020605b196e176b4a774d6bfafbb0a26b453bf5bb0fad18ea02ceb31944dd88777d861d54098b99a99540bfd4488089a5917f4b63732dd3405a3ce6390c4711c389670515ca230eaf79b655257745c0662bbe43c631b91443e74518dd10efdb1ec8befb13474e65a2432b553d0f2eb9dd9d61ee18fffa6978f63f54e90024012c0101fe8d322df69d0d79a8dff9cf8d25981adf94255146d9953952740fdc32e731349db81e8d390282f7718f8897eaf3fe208904e9c84c816fd4c6686af603d7dd740ec4a522c7e8d848b68e9f9fbf85214dcd1ad1e4b7f382153f880bca63c01b0f1aa31dc51b6175765d6c1b8ab84313582fc6cb66376498bdb7cabf6eb2d97cb866181199814387282caf343dd7fbd6cd51bf8e4b5093e1654c1e2fd78c423db7159ede5911fab01a196c8b30760518c917c41f3af0b5635d967ab4d5e124b048b8aeba7849c261366331489248bdd2b959557cd9d89808305c95838e99259315c22c16230b6e0ba6f80ed6235a0ea729f9bb7b3c9e3642e2c02fdbbed404a411aa56243e9402f08e6223bd1b0958e5db4535d0ff52f6e8bb4f0de71cf8230d1e968e642b452b542d6c24f20139c267f1f426cacd2cc462304357329219188aca881c9665695a223dc8690181ee0cab0b8bc9cd60fb9353424be6b5cb2d4ffc20d1d4722e81e06f965270cb8434b89ada1806545cc6c174db2a9122d25b38d668b47344e98edf21a13f011770d46bcc57bbf78c86ec7cf0707eb41b4fdd0b6cf1dbc6cc7500da720cae072f6ba6f735c85124bb98b85a96c48ba9fe46fae874de82dd1707c0b33b7b57b5b54d0106105c2964e71cb0516e7afb9cb204bbedde04034a02f39138f59f4e8590f9356a2c05dbf650485724994ce31e2c49e5e8f94c311277a1054956b05950e10a287dc8e20b93f16e8d6044b90d2accd070ff26ae3695d9b7c4c6221ef61b9ba0cd46650c4427246824b98c76dc2b49b7570ec34cd12438bbe2349675962fa1280c5b8531dd192b09ca0ae23baff9860002a799734598e2299c44063c12c1669556e0aa5391c856b0a5b2d4ea64ac4a5b84d52424b7937ccfd6026b8a6666550022a17060cb8a6876fef1784ab7c62743e702f57f56e9ecb2e51250bb6bd9f38d4779f3bd9fe3be27bf302c9e7e961c857a49d3a44188026f82f3cc50f6f3208999798e8f7d3a5b3a9407d3c9341d499ea322f137b2da6bda537325609383c675eae6386d8ece255192ae8ce88eaafa30a8eb5f2a175f2345cb96bfd6608cba3e107828ca3c7f53b332023274b1e4df23c096176b6a52ee1d11e45eba7680a53076f950386629f741f56e3b803b948270bba726d79147e8206f1afea586af813224860c69719d09712488a6aa2835a874ea31f1026bf2f3d385bef09cfe61d879a5a398c7a1a5e351f8e5a46739a18e886061d7ba90cdd3161a40d5a348d7bd8f774da756a4e8e76f4f5a59bda0fd6b57b849f7fd997859c0b41a12c3384d17c31e022daaf118080132a6f48e2cb6edf0f232ef0cc00fe66593c18acd22a0b47d286977a54779156465c5f672faed85f0239274cb59f0d7766cf73c27838d9162505c6defaec1c9df12050c934071ea283de36db6a0a1ec1149f1b3b3c1902f2017dd41a941fce49a6d88e19f4115d32759708af5bf8e83c2f3ac10743aec3d0ca2bd31ff969e0ce4490e73004e80ba5a621bf8b0545a566ddd23ede09c3d28858b12dfad7c73564fe95cae43ccbedf74068b29d29f0cd7b5c89b36358cadb45c10fe41697a457828bb095bed2a47ab3177ccecfa336639c7f5ee193aea4d8672492e095fbcf4708e25dd5f521268436767684b0b4066a089964b0a560856846e6d1d34dd1c9fa12ae8123f9bd0da92d11511e8f3c44089d2076ba8c5cd6a4f8a8650691e3ea70cc4511ed66c115c0c575a95e69a20473e168d5eba86e372b6b460abb2d46a56beef0c3104d661ada0b347d8d106f03093e3343ca2acacea7c0a4d2d717b5ce30adc7c92154f0bfd2b530e5663808ab5bbab18309a983b2ef95de8018dafe54aa6f4fb9a480cc07e79c2e0fdb48f9bcf61b6d7bb61be1ab22f4065ae2e6f1d4cd3219c32a0114a86abf2eec390c532ccf35c6d365741e1046a49045badf1dc95d0bb9c0a981f49d39fbed4390bd4aabdcdc3c9f6b3930e27c8f4869b084cbf4296140f5bab383d77f5218b6729e28721ea43600f8c8994b465b710502a7c91deef74555e9730e10e26c046a7659360b140b7b445adcfa37478f02b158480f18dd0081308757ea5455e80eabb3d30b24e1c8b179159b87bef84e8d5c32bc42321699f8b3d08ac5854eed7c823ffb54cac22b267db846d4b5e9744433a3d4d22c4f6431ba9f59da5ae6dd931735f76e60b202972507ec77dac41255a9f247eeb9638a66b65fe035d600e2939ff405167657b3b6b814dbf5563a0db1ce51935712a20bf4c70eed1252dacddc6c94a08c45912e0e07d2ea62f85d86794f431068eb85ee98be21200a08579fb642aeac89f9bc4e70f378e81e04a204522489f0b55eeeaef83cc9591a98993d75e4a37d11be382d10659965cdfa1742622417356d984e6bb619604319ceef293a0f30c957ee44d3fd3e06014be51722472b1315caa77c419c917374daa92aa18b995d04a1cad1b66f2ee0d4c78d9fad1132fad20f2a5b173ddc4cfaa4bb23719e5a58c3cbf00a5dcbe94915aac97d0f40a154b1a3f4f0db35195bb49c9bf1b446106c0db3403171eaf86e103799730e18529d4d92bea45cd0bd173a379998dfef059e5b828e4aed3131cd281c447f88620032b016a06380df4ac41498367ba20aa6429588840e9d080e6d1fb4c020d7cbcdf2ee791bde31d82cbec4d3da612e1447d5e3621ec99b2d7ff48642f906574e95ab6e90dfc550c924bac085e356740abea8e7721dd6540de2d24228bb52cda031ed0019afc47af0d901e84ec1f458a11d1634e5e208562bcb580b9c2e9cf32ea2ef6457d4e52709f9f4eaa802639b9e921cebaabb69bf2c206fcb53e3672d3c4dd34d46a27c798cb88bd00fa94f31f7b9f8f4c997e3abae7e155e658d2b5231c2a541d4e68c08ada35e0b09b4b5f44504ad343aabe417bb91e51d7e8977f1e427d6d5b2720bcb6b48b30cf4ace423844a2a3c07a72a8147c13f892c0e44f5b8de97d9d0ba11b2dd32e9c9460aaae74e82e13bef999cab1596a34eb4471131c7f13b3230f1f26257109d58c8690708c04f8c4e1b77ccef3186521f788a90a5650e53e6c4291b0aff75c7c05c2039fa66fc33204c4692e1930bd2444df76a8e11b1e66b698c64cb712e11e860522aa5ef99d1830aaf2f43888796209f8c8d09806e429effa9ae00ca66251c28c7b024b869730bc019f93b97497d1009c054ec10612d5de1e682572663ed98b0503bfae9998b1bf6e1c0bf46c0b0b514e33f089ace9952fe1ec0baf74f33e4d538a49a0e5d24c5c96e7411d361bbe2d1c4188a2b95dc7db3d2fffdf66d0d1f440c2e75880dc48f4d4aa86166d68a5804fc759be57857ce3d705f403cf3f2698647bbf1a0b69004f4bcb51371f06fdf47c4b7dffcf4091c0a081a0c5a31b8063574456d87a65ecbad5529a8d46569b897494e39296d42182d6af58d0cf604c4a4c2513d2fe0ef6294c84cb486c7fc60a58f3c24141cdf3782a645d6e737270712924f287ffac049d56b76acc02462aeb1476f4d91b1b97b464a708efa5630e2b0c2aef950899032a5ea544d5c29cf204bd528785159c784c6ddc43f41ee38078426469deab44d3336d23611f1151e1d942d98748d7d1e3756615ac9a5b0c2cdaa690d57162d21ec5d2f96c09c1e39598ee4c35b085d06ac62c9a96bc6454e6e77ca9f70f32d542c1963f2d5836dc3d76d6c7769802c2ff1f87661799814e974b11c39b672da52e1d369c811114460a74158342b507e26a4c60c3ee720922b0d0afc9685c43957906957586655dd73e19addbd2b2370edabfc4f729e7275ff79104500ef4ef4270735907ead21a58735fde16353a55b0a6f916a2bc4be889bbb80c16b74c7c053e9cf38f10508b28c64e7b96a896ccd302a19218c394fdae8f30c4b06b9fc71d906c209521f98de4ac7e2d5a9914b56d5148016b8e4c163c33784c2f90fb74dcadf642c87ac823ac4817c294628d0ea41a2be2ebd60fcb1edac4e8eb987f77b30bc4b55aae1f3fe5f2849269b912ad7c9b5b1576ef788e3f9ab7d1227fb3a263d8303dedcc72cdf788715e5741094856345421209178ffb3f711bb6965cb9fd27640b4fa0f6d0b650f09ebca7565a4ca9e489190bf76c1dc9a2e5280fdaf35da0603f80a4620b6ccb57499ec930f187959808368deee4d8b4bb826d10e545128479e6262d43fd7858bff5098f0d0e48545a8a97c94b14d555d8d24e97665a361faafbd3db6e9b35093acfaea4ece393d2ff41c245f31a609dff54017517f4685bd86a18bfc09140423ec49c62f48efa6184664252fae7509dfcd871e426d9084d84770013be82861f7db051da6a363f9c0538ec7c8d8d286113f5773203a27b8244e8550e049ab006ecbae22b3046638a568fc226e5446df05d4fbcc88364697033b04d65bed5f717cab4b93a4fa751f20e7ec870f36bbe2bfc3b826890afc8d7ef2b4f235bfd35a4d0d2e0a3d54308f94a09bb51a19494beef3494857afabed5cb6e444d65f532eede37fb660f51bb21e4e4e82d901f22f68c12b19812b4082388de39851a0436c83823a059c5b85418f1334794cd8feab6909bd62a0093794219ef05bcd3fea0cfe6dd3df46a5a7d4f6ea9c236ff526c47b8e6f19dcce1eeffb5098926c5dd68e2097e2b06269840d92ff92fd93b0901236582fb9a0c559d788733fcee7401be8c0188a31e41528b84b589a841be2b2de27b7a58cba11c6a03af912241e036bfc77384fc610631cbd9b08b1bf334bc11db8d10ba55513dad177f1bbabef78188bb229580eedea500ee510a538de2f6684f4d50ca7afd425c56161b94ee1078964c656a11db8cbfbd65a978ba873ca6cb5aefde5d3b71e3d07be9426edd1d41036e37cce56365187e9a8fa7e511d3d6d6899bf0eb90418a923e3712f39c73ddb5581b95790202cf1c7429f7dc6c388be7e4dd40d45d2a23eba2dda1f91bdfc875cb7ccde3c2c65700974bce2d34b796c531d5515942a91e7fa8fc32506fc37b283e9b03964308d7d6866e95212c05386cd89f6f280a83d800804ff99f000f44a1bc814691854d3912b1442198ffeca8240d6052e74f745e512767d6c31254313721820fd113cb5830b30211c4743213da813ae7813a29bc452b811e62e303adc121e866a6cfd06c5e854c1c53834933af84a19ea2036a346b4a7765575e647c02c0fd20c40e5438846e78bb305a0e4f573700468e06f6ddd5a3d665a351f64aba1852bffed9170708250577c4923e4f986b2c6d936f9d7eb85b5efce107d30e210ed2c99dbe657fe93b74b8ac4d197953659f526b782b4db60e2259afc0dd95ad52f17e0193e88559b0af0686c2bc80cac953b2f937f695fcd9ddf8dc3ff92f11b0af69fdc25eea926ccdf1c5706b80974fc497173fdc1683f04a1d1b84e0d667ad3a725ea86d1aa1f54c192652998ed41a2cb1c2618107ca2a255fbafe6a4d6638e64197430ccf458539c046955028c28a48b3633f59c314fc22cefd9f0676d6cd90eeec1c5aa369f09c87f74243578047b0e04f8a376682d97a1a19878da20878bc53ec9530550c34643a21feee1bc8c60713a84b8de2c893cae65aa2851af2a105eb7183f91ddb8296247eafb5103c78306f05f213bf35f54a800cca558f492b37275572a4a40678c2fdaeae39e9cbcbf2618a6974e7232a380f8a689a549809ca109cf18dcb7dcab787f023cd9e27aa6d417529188f8c5fa2c500cbd285763729fe1f0677b12dce0d5e3f28fc1defb75a827d343100ecdbca7de5c05725444932fe4185ea039cb6035e6dbfbe75b8e9b6fe1914056dfd157ab36321543c410168e8a5b9dced53be4db3af4b7206dd07816675c1440ea5995a587c84cf03e5d06efd20d994c582c38def2e20a74f46492fad22c78eb2461c3566052d534d9409bb037f4274d0b474998c218e233661e267712c4ba94f5c58e33c794dc28c648834d7002cb490a29e4018f5767d9bb7585ac9eca7f8381721f0727a83101d7d508ee39ad49acc256957598115416a8330908657a13b6d68839f6261df9870bc21d442f8eca09eb106da7cbd350301b175859159656a4b5e4a743daec640478020f1793b9458aabd801efd43bd6ba728f4547f9391d97f4a81aa1d1762949d930d0ec106262741d1b786b081cb4b0aab3be402d16883468eb0e4773263accb1697789f01c4e8eaa06a35bcbc636a0532317838192653f74eb718fbe99cb77d17d065a96136736a116989b3c6ef4a22b79c8e5329eadd6c96162631ab79fc5b8a96ebffd3aa7b6ec7a55dc6bca07da4f09692ace4b3a52d4be211f4c0b10766d4dbf9b13f2e53f3403a9c053e1bb31911763120ff137ac5eb8fd13dd95e80d7aead681ff3f472ede3b77f5c5a37089ba16e2dd2c6f55cb6c18f4cc486b7ba693e02740d57eac130c4f15eb6c2b97b68ae6a14c5f38829a82ef8d2cd8a4ac1bb85c0986bd1b5f92e29d4d028939a8dfab71d92ec2db5890861318a13de0dfac5d20497dc52a6442dc01380158fd9b027b3992132cc2ce004fb2c82b2ba63c64dcf7c76226a0baf5d28739c25af1b8e378e1a46c504b08df7ba0e7862895a7c5fc0356aea5181745cde5e638723e2befe9fed7b1d8e725302cfb30c1c2f505eaabbe84996d33b779a1366ff2a2b2294e99803ab7d13691ce38af7067dba96b07a5b46f06d1af427b0bd01db04d1c3e3fcbd2309b26f79bb1aac9b875de2d205009d5797c70f1cff89852c0c46c1e0f68c1ccaac2ecfe42360269058cb470eaeab14d3d3b5249c425e2cca8bf6d307759ba578a5cb757f8077cb1b37a0d2264980899cbc70ca2fed2685ab2e4626d0608a9a7dac0cfdbb7e6ac96abe913278c1bc3258e5468d65eb3bf40f6afe00004a98fd4c509a472bda83fe932a1686bdec4f984fa903e253c59dfdd71b37a5165728aecc8c44ccff0370e23b554242c3961f2708b51454d4b61686355787812a7b1df9d15c3c3b435c0fec1158e94118e880635dd826f17f870323e867810cd95c3e30d48156df0a86062e2c942c3cd0f63a6fe52443d0450b4054112cca2318037a5102e92307ef600e6f284155a56b063a190b8333fe3eb7c7761b8a064715d5895d360dd6be3d18826e65048d652741822e3ed33b8082d638688c55df625cb5068af745d8ab5d9f65eea728acd310188dcc3e476aca75dbb0e44b69f14d04a382cc32a69caa1dd332b0f03c64210f23426c30a8824f00a44e4c41da16d3724014c0f6f805ee01a57cae2c030cd67b0eb95ccff706a9bb0e4043d4e5312a7108684964b35305af1c2630b2dcf82166d2f676cf6587651facc2e943bccc4a12d13236bd446e746229396172a067bcf59915085d99a11a7fb24018efeefd157a0908dad0d2468ffb95a98d45bbbff3a4f681d405738756dd2f707e67e07c7fa6d4a8a6362deae6419e37e6d0828b5d5343343779f8d63b44a34c1007830116a3e20d1683868b3556a1addb1856c74c360fdf973d353dc62fc1a3286bbeb2fe3b3ca380fa14b0a7e6e614060c30965aa2a69386a34bb032695b5a338cf7971057eaacba7705ba7fb17cf24b83396ebc5ba4cc5a96441250c1deb6907744b7b4f54d7cab583dec91fd090e45de1e34825403d0cb00b4fa2ca2b9f68c744776f1211558d5ded46a44029e4065d3adb9a249f65b013d7721fc9618fe25f26f753df26b8307c4a49c5565019fc45603dab771fd89ae1b50bd182a247ddcb4c2c6c0b3e1afaf36d75c4ecf5e244ddb06fa4903bc5c39a374dc6cd56012e2d42a83797eb4b50938aecfe800eba7c120b8b3e373b147553c18962344a122149adb0019ad9bff7f563b26e02a5c817c86ae40604c62eb6177b8820d731e8d80ae5fdc52797e9bddf60282d9d404f4f3a4417a85dc46135127620d2f1ec1b0d036a4576f1f0ea660ab93b14fe9c9387cb9d67694f2f693df43e61c643cc8260abf5cb0ec49652d95e3b520c76d903940f14a6fc513e1aa08f3247d9c6b7d40c49fc83b661e41ada9b6aeabcd53afb60743fe0d869be1b1eb1b5d6a5b3c66ae4c6c94ff65e6c648133527b38e4ea511f0116488318c9eb3cdcc3abb9873d96adbd83f5b2a9a3f52dd3e56d12902f4c71e9c51c0227f347e5f7c840311157382d9ea09153023d4e1b35f5c90839b285cb347b40c464ec595f1287f097dc660c9a10a6a41d2a868d1574b65d4c12da501c07b016786a390040addc6a27b3e1ae51861fbc6a5b0b3b44f23a63f11d68e2aa629c2c93bab219c73a2f0d15256196c7ba26cd7631f352c8507b6e8b8e89bd67df70166dae38358e344a3d83c7de9c0acefb2e93fbda3442815493fed210fd056dd219456a3adc1eb3f3fa75a564737e1ed4a9801cc22f6cf7683bbd6547538011b7cc3420a7722e236b85ed4ab208e106b370c961cdfde8437c6643245cba5b1a783df288f48e3b29da7c6b1cb6c3f703baf77c714db39c76d2e60ac525dd0490a7264d8b90224e56e2aff89c8ab1f59bd62e371301a87a3d3174a200775fb4ddca919fd30be14cee9d29cc142e4ebba9804a91f6a8e9c34ef9d9ca4233c0f632e3a2d031ba656fd4e3e38eeed5c97d1fbd7658f0e05014d88799d401b2e7bb33e7e3bb7eb2d24556b9954a758fa7e70ebe20d52490ee4b94cf2bc34d801d9691a7202691720f5141cf060a423e5d0aa0113f5eb7e4907057d2e2afb8fbd16abc6c308a7b3c15e6ad44552cf87f2d74f2a4c2b3339f752220d6bbfed397247ddd4d53a96f600dbfe905dcb17648b122513162cf6e6c6f032a571c455f41a158910cf462954d9ada18adea34fbbd2620f80a77a1efcc4b1cba45d0cd50bc4026155e841754c3c0ca6e0b7ba6e0d553d98364ac9491cebf34d4e642895beacbe167c4de2ea3c2c85f8658b4b78a2c1c792ff8bb5c122c6d653ab71468ba5eb6389436c1484023af502d16541eeed9bb86db5b1858dd71bf56705389040694e6209fe9343912021ddfda4af51460f940ed43884bf211fe544bc6e7f8f4a324c9c7124b65b0050d77e635c32d4ecee1e8018811d419a160aa0f3523bf69b705894a9d4a1bab282c10163db68a0a416fd7c6479a0e1b16e06cfadda3e139f316d9a5131f5a2899c76c4e97457eed15f4060fcbd220d87f03c2e51fe6b767b06cb3c27e442ae939fd0c229bea63cbae39b260dd3a3a916967adf503d0238dd3bf36a7ce6159beed78352aee79ead57464ba9b35305da5d343fe8878782377ece598800a5aceb0c337bd173df8ac33d57022e7d417da90d0da634a7740327931e462cc4f53b575098094c8801611110cb17d19df75da24a5d2cd691612703709560da4b832f81d092c1d655d519734354be921b2a6506e1dfa3f6cc5939419b32657e19891e2c877bc99b12a3aea444fe49485132afd436b10f70ed579dd798ee2ada2630f5b464689b99f361648cfeb0adccdf05f2716071dcb092a44e0cac23d4e2d2f3422252273817d13a769e06698884f6ac5a60550a13ac2c804b80cdc597de574c0d68b42ae9780d47eefbefe2aea74e2cd44b794e196aa65e208965fea4a69a598de29877b94a5c007beb5000e9bfa7105c650dbc81cd1dd53aa18a0e532765827ac10f2d1b81877daed56376b24bf3b1de2a08563f101facbfd61708130797240104eb03f60270bff4d65ba8815753e9c4aab81271285dcd53175a9293160ee89f84959704675a844945de8786b25e69238d1b9696d055f6272256a2f1e11cf05aaaac437fb3ec7d8be591b246eb7be8f11803dc3ab1170398d0d6e062a0998c111987b1a86379964f3e88ed67ec6eb9f5bca7cf43e08860a50126d99bd98b4c5ee9ee3633919202573854c4f10411b3e8fc8c45031b26927e76940bf8b178014a56b8b27ff0f2cb4002c5e50ca1f12eaaad0dccffa2a6767abe723dc774d4a6d7f038962d080e1bc91d4b896ba179414321156281084cd8f337010d983142f7f92b804935f14aeec222b38eb6e714a2948d13dc0fc0a96200df19cd1dee45a4bc5bc33026d4295989f2f9d54327f87efb7d0b3669b179943889af3307c8c36a3c37e30de182fc1b45220e5bad4a33d24e66dc4b22d2a4d8289d85b65d26c6da007d66cc098a93a6b8e5d68914d6ccc8b46c6651ec4486a1e82e9014b5070aca9305dddb14e508e2a6f62b57f450596591044e1169c45a80907337e28e9b0f2d74f38e09ca33ffdf90235241e36ebade30b08808c6ef56984e0cd6d95cb24198dd00e67b0c20bc1c208755422df2e33ffaf7ea12185fd9bf51e96443e9a6a51eddfeb0b97b5fe10eabf03bd227ba30dcefba18c312a803c63d3214ca53265022b00fc95b232ebd04338f970a90c36cdc0c034d0253cfdc1b49e4b2b545ac8c0cffb82d15f0a136ec279659c2d3b63cf30c4a9a6400a7aa8658e1d4dbcc6a536c6c349a3ec50a7f844b5bb090b446d60c459cb929fa22da5ce2deb52d48bfa3b25303fa7a2cdf0af2ce41cd3c450a98661e6b1feecf240bcc941830a1cb6fe3d1344bc568019e3830e1e1ffa66ddbc25eab1834b76cb4ccbbf054c26d3b66510c8e7a3b447e6c5a12b6a5ccc4a4e7a765acc1966e94dbd59e8d3359ae243daba204802806daf4369e437c197e6765e69cf734f7e3770c90734ed9268c627fcf6d4b405d2de7dfdbff045e38695598eb1bc7b6ec7ea992c87495a5846d38e96077bfe8d79c28a2287184a7cec4d5baf4c0b0bdc0b494f2cce8a76ef236c12bd190c6b3a06e9fdfc67cf3edbed386ddd8309fe66e87fc843b2c9bac5cd4a80915738acc9eb66d9a210e138429a1155f0672b9acf651d4dc668b4ff63e5b0e0941a57570971c7e225335c9944a380eb62d6bbbaa525063c146077741a294f4a271fb8d47138b2008e81c043b285e390c75e8876839e8999c853b816fd5c16e58c28bd29502081145d22cc1d30a07d1b044eb5f85874b6748b689320821cbf4cd55b9ed6621bcc34dab18f906d3fbfedfa37e0eb7da1fbbd88177a53bdb936ce8f7656eaf78545ae3042bc051a93a288fcfed0130ac723e497b2cafb49a4e988a0b8e35126d9b861da81aead555b5aff47abf95e0730c7c82e3893a46391151e29f02e27c8f25d2be6fa2482a409f51224316722ffa295cf69c4da9a28c5e8087b044896bd9bdde971f363f1cc2071d3df6e52c4bc2d8386e9434f476bd0e809ac13290b517c4929187c2f2b9d6a091a5caaaf130d3e96288b007ba9f631d6447f007957e9d9b25e538c14e954843da225692563af976b17ae896c7297df5f0212a3857a4e01d9f5c972c4df5516e75e50eb8781393f2648d78fd85d713e6741e16749722baf70f8e7209370909345f30e5b466bdff50cebe96d7566c50b858f704bae09286544d353b59ef7fbd0d5341ef70357c6f629906cc23dbda86ede01c7a6b5fa709bb1084034b6ce530b4936d6f81877ed5cd88f26158f4933c380ed0d13e57b49917cd3f97ca5b1b977a7139d00d939c21b029ace4ec23c28390c14442612cc7bab90176a52ce752d9d2ff3946f888bf3c17301da54c84cb081f7b02a6c7ca84ee516bf5d3620091bc90b442b03595314878d917bbc06dc61e9a2dcf3a1abb0dc98785d1688d7f79c17a5ec4422b7d0d4c378e0f4b3488aed767f32502ac7a2033e4331e37eeeb56aa313a6fc92bd27b9d8909365a7c2a6b8525cdbbd047cabdd46088b9cdbadedf5ec04f564147186d048a8d0f0490b92e10c2f620e43b1233fbe0c8a414f0d2890f9c5e1ac0058bbb5e2271750af42d5d3a8af839a6b7a942284040f151a6081e31ad5b926028e716f8c0b30411a13ddaea50361a7ec6e585c56f3b9410a103ef894df4637f1763528a2dd5eb1299b7bcfb533ced6d6046afb7402668ccfb9348bf8b4426b4e3e2f9f04189cf9a4e51816147ab18a29c0e736fb2c77614e08fc966f45d291a7125946b5939828f97eb0740371f6ae586b4d4567196cc600c5b6160f616424f826f6122b0e4f862ac014c0bd2e9c37dd1527aba708875185f310e689c495017674a5d7365a03971fc7012d7df7385dd16c6e34ba4110457d75cc22c9d5104494fbc0a2672b302089a4777868b2fdc521dfd464128edc21aad7ec40a4a82bdec552d2f470f86d1d3125a02a0d1a411b760f414c94a0c95ae6dac8ab0a28669d86f6666ff7a2b8b4cfdfe0739ff79a82f2f0948388d17de83c31b0b3888d3d6e5ede45a91dfdc1662d4ef4f5f5a0f11a2aa9a68edc6b68535936afd9e5ce0d03720ae7f18b340833a5338dc5b0120859ad751619a0f5b7bb3acc09025edafc76b1ea9d7030f9bd0541941b69b47ec2a498641339ce883b81a24508ea58a0535cb3aee8f7a13af7ea9be7fb4e15f476ecb110eac50329f3ad4bd811bba1d10ab6a50c6ce072d5f64e3f0d656894e374f56dd9309c131a63b8107bd84b99da6d0c3890a44b76f95237c0abb15a42dfb98d04de9afe4717e4b55c329d0802b57ff6ff6063a41a4364bc4fdb54b32fd99f8f8492c5a494e7741dc4573d79bf6ac5ef7912f9a2ae4a63ff30fe872e8723f084927b79706e109216193fd87d01da002d2e45529736b3d4e103fc63f74061fefe41ab54b8cd532063d700a1d360a72c6d99431bc31322e78130fd8b3202d99e988bf1eeb8bcca50cbfac1c0063c97c91174403e33b07dc85030966e181d2fbb6f679525a2c334af93b2aaae12755464331b801422ef8d330d42cffdad6fd4a8fa67c2f838a9188a7f9e7494246c4c6e63cf23ccea27e831b8f544bdcdb294ce3a2b27b56ded89883b482d3bd134507642f6ddb29ba1a1bdb2f4a21427ac271019c36525c590b012d547e00c8bd479865644352eae340eb44f5036ff92ce3cee87fb19bccaa74d1c9a9366beac031966c95d5cfc2b02a33c83a47ef5c2146167c16ca4b52fc6fdac158af8006275bd007aa2ba74ee6d31b2c3ba0c3dbc90b6fdb8b8b54921e520694fb3169455ee25c3cc54eb75530a9bef86c2554aaa6690e46a70e8698cc8ea72e0d54908770eda862bc4d133da4869d2cc7a121aa522d8c9616a057edcadf089ae5b152c82f2956dc9c98ec616e23a11e0c95df30d0afd809c9d1b6746ba8774382022b35d3dc8805956db461c2e4f34bd79a184f3d063d7e5e48cdcb72cb8e07752e4a25d2705860501bf6f63a00dfd1aee078d49aa02715287617481c65e567f87bc1ba956c553dbe31173f4c105704dd1316f804c9352161645b48d70ad591e4af78f7718ed31fac5d0df47dc2c6bf5f2c1ac8ab79298e33ea608985d8c1c244314bc4717537820e52702d6748541d1ca97ace47adeeeab312b058df14182e067827710b9af16405b43ba1378ca6d02d26e4d134011f3b088330e63fa69f77f75e0f17022a49deef0663d2ea717e7300f7a5c70dc6acc0f681b86c231d468df190c697b85ffb01898a9a11ea4c6399be277b182ea541df9ba241f4d7fa409d3367544a2bf5ba302c1b5c784805d18b3dd9f26e5302ff5e9691873e5cbb0a0456e66920f0e93f510b1142738dc52a66cd9c12ddaca77bb077e99ec7b618d3526b7e73baabf5e90fd5e0f6a57ed00b9cf49645d086d79635f955c84ab32b2caf84cec53960b6785b025235c83be745ec87b8c8f72bee22285fb2a07d939daa1bfdd5787a0ac48fe2d55a2b04e3d17a67e65f30f524eb64883101ae386f5dfe539d39bb44f681fc4447aec1617d3e8afb1915745d55316351158af038421e92904fb0fd7c28a4122529030bce623c4fbf4044e7b3edda1e50b9c8c08a9b1df0856b043b9d3cedf7157d0c534339f0b6fd246e0e1a53d30b05de9dae08672b032aa49f58552e82fa05c2eaeba41a291c72fb013afa6a82552c24519c092195a505de2bc7f3d49709227701a6ef5ab3df172b7be5d76b8a61d1748692bdd514b1fc3f4dea0f57c1a9081a27fd874742a094631929d4ff5f98d62c7f136426031197255f8cfa8106efb00fa1e39391c3845c5096c33f07d9fd0069f0c6fd5897f359e48ea00672e395193cec916f357c5f5dde720ab4d0c9c857afd4c0b74e66e980e0d1fb276890ae81a6b04309fe049d171b1060f195a35d50f02eca43bd6a85619c05db91d07f771045f634029d3800975b7373b0d79efbca7123290461152b09f7007c45dc900d5c5746f9683591363ed5f84cd0cb72fb07047addb83fec23c1f5b26a72c9a9f47dda9b099487b0d7925b26b2e154cce9e84b8f5d063cb98de30281026d170f6415a69bd4799a41d27153c5b7b431867a9c204b065858ac90b8dd330e480e87ad86cb83019b51f5aba4f166436764e51f09e7e78eb5570f7391af042e87124366bcc456155ce16092c8ce52f7d250c378bc490090f8d35838e7e5fd3fd8b2cc5c063c7f0b8fac1fb3378065ffddc2b0db9d081c245896f0d042b0d638eb63e286e51c0c8810f45453502eec507e38fb58c9063565bdc1d9cfbd33619f34b7d84b64d50e544bbe6ea0429709a919f366e4a386a6961862a499d011c37a1f64fb9a615f9c0a928f75c0aa78251761829db48c9ca676811e4582f6cd334bafb2664e51d37ddcded9b21a80c0e10b5e8b2799551fd76a4ed2e1b430bccbfad19d02981b0fb34608ab1a5db792e38971bf145b5d4f7f80143eaecd7b706ef95c39e74042ec947771a36197541e6c6a838415444ba0c0a9f2845280bc25ad44e9a883979ae5d0e8730a6a20156be83f1736f625b3d7d3a26644f7cc14c764c43465112553ba7245df30c59bc4eef75652205c6a8c19d3efc8f3e5fbd5ece265ae62851c31ef189f5bac0efcf0453edd7c828993292013ac7aef611e559764258b6d6493af9f4906aff54040d12ff505e0807a9aac087f4b840bfc631fa543c286c2ffc13ad5bbe373dadf4821a9468cecd465db2c961f7d0ea5daade21f1224cba6df8db328ed48c93fac0a69282083ce9da89fccd182326471b90a41828547d212d60b7d44275e1f1a8465ce4f4f9314eca7c464fd2d98eb75e1a292ad9e6d393dd17df3b4fa570c806fa0ce5e9097232008bc525b594a8d05b4e3523ae7d02155189ca3b3f3e7fc92008c7e9345a3e4963e638055b7b29a13db78ab51ec165561ceabc1ab9e46dc2a90776078e15716aadc9ed66be96d98832c676e5542ba8a52c17987dbbb7dc659a8f2ef2aaf493c1371150ea5fe192bd87c219912fcdc86d2e1029017652a40ddffb0e700ba7a6d6d818681bde29c2b938edc00f848efcdc323e1c843bde809e2cd374d841ec3dc8c5bad01084e49caa6537d4fb40ae9e38c73c64db230fb53145e82b781dce7d2cd8b12441d8fc4badfc10ba76efbf9e5f9bfc098081c8e023c18daa2113073f8ba38495bbc829f0154ef8f40e9abf53cbe7d3a312922501675cd6385330d0dedc991ffa7161e7ab2d587ab881975ff99e5ea54fd143138fa209542317e86a3881069cde4e64a066f03c90bf29b78984b05e1b62201555ea84e0609b92c55f0229713b303115d65361b01e696e7ab3f017bd37a97d21061f362f590f6d6c4d70d35d89b30e84f9747edcc2dac6d4c531351eebe0efb69a371807c72faedca94ee47e45b20ef43f53bd4334e1d59e03f599baf72841338afd163046700228946317f6de0d529060e7d4b8f05ad0081eba88e57b3d35b15a9481694f53c9786d1ddcdabb35224a066f9c989b4cc78f7f9afa9f4f130952302e5f53888ba384f00755602880cd122fad93154ead9c5df4d0bae2164a90c825b595c439dc9df3e8c2860153268777ffe76c5e3cd6272dd32c8902e1a66ce25a211664935f49a90ae310b02cca1de46b66ffbba093d1ee5557f1cd54513d8b55fa05640ed666e03e608aa8881146eb35c259b3f5b066525569f36652698d155183bfb9d0c2a3ce3a4a96cb5db7c9de591cb0336990b6805b082dbc5e3d0daf9081b2e9e10d001f5596ac7cb96a8808aa49f5b9848876fa18aa13b67f1adce483994da9cb8168c771743c6b8974f78475755aa34507fd15b7a050ac62ecbbd514dcd741267e82447f51b7ad3f2c37bfb56927ce5608fc482ef9a70ba03e95ae2342d92a617afaab7e82176cd2e8169fa68453bf607612309af367c4c99ba83269afe7c26f04c7e7c0d25bfa921d265bf01add3be155d4f1c5e6268b9e56e70636ca95c217b115d252d034567c74f0507e002aeccbd8498b624955f93406c6c131c0cfc6c40531a6e81e336d12fd0b16c5f33989ef72db57a0c8b41923f5a0558c18c1b7ce34311109b248cca0b05814ec48cbed15c83e36cba424494ac11a6172d321782a4f34b23e43676742d8a3c95a591bf6c99490ef676dc6402e7cd4d877664869d99bcd51762154fa83aae7a39651f7e49a1331b050cbbe0a1b9e04112c08eaa0476360fe83ff735e495dc4730935258d58ed5c5a78f6be885310640016d557fd86aa875d88b46711490fa72788ab906939065633246cd893fbe8c4c13f670c36c2c83d984eacb2e67b9c958401ca5020806a100cf208e93ec336ae97cea6bfd27048977041a7f7cd2fa71991d4d1c78e267072b8ddd0021585d54e694326012063e688edc8bbd88e641ba3b8cc594678673a2f3e25bc4f51adf521eb2f3e9abd7611f403ff151e18d9d64ba613aac02c7d1042aa09ddb53a453da39f481f530ced1156538711b8cafc224f8b16d5da81e881595dd73458e28fd1dd433618a4d2d8314cb9f535266bf1101f34bfd19d95546211d334801eb7d11d4f24f22f62bd6228a5d3c1b72317d5a74b87b6564b8990b510b40894f0ca243a80564615872cad7ef3a336e0aa27c5060254dc014c3d1e2372a4b7ea759aca058b0fae479bc30c2beb004e6203453797de253123a6c4960b6e19f861ff5a247e6edb98e11d492f85f33b006cfc3bb31f27c77e607b4839fed44d266641b5d5b4ed51fe4b765787e24a7df592de530f182ef6c672fc821114c775fe020b4c411b817d149209142c9dd4e662a9180a333335db48e9739b8d8764e9207b1908c8443654591ab417d65d2404bed2af31160c24d2faf07308dc49d496032ad6f360d27803c024570df5673f0fdc8480655793cc2f0e268d380ee0a1ab44cf45c3f69bfc202ff46f8e8cbfadcbc71215464b6fdff745ed5deb894e6f97e286ec4eafa491df454d7d0083ae74740e670ca91ae3b0c5a195c8ae7abb95b14a65c18dc6ae84521cc1e86ad24ad9ee1e095e042f3447c38f0e5a8f28436332907b48552a4be42961f6a91c233a45acc1d53e0261bdc41038f15456da862e286a83a791c3a9c993266f95595abc934d7650a903553d825f362f806615b13e97d54059641064601bc9f7f73152886c852d28bdcaa80f9f09fd8715aa2919ef8c55580214b34e8619e5e3c5f7b90388376f2ad4f590cf5428dc189f299538ec9a8ea89130fa12fef1ed57a74872bd4a4882504038352c2e126b22609563326c5cfc41573b51afbfa53619bed4cec5f4dd220a8f2c4b1f3cf734053d19a74ca89685ec0797d40ac126ea2ce3a546f9e259afb5c2c748ec09cc3c9452922f7ba099cf90e0edbc64959777cb9289af8ed8138a9f540e52f3589b5bd55165fea93748397c905e0b1b61f07cdf6e2f27290ca8960044002ad33232e35920466f39504c4633228d3d0b73276280f695654c730736f7b74e3bd8409daad4230ef96b82b4c4eb70913e1560e1fa2c2548176df3c0473766416e2beda052d47473415cc9754e957cdb8209a7f6c8f9e1f2670b5241c66da1d835baf8b30cbe888e05201589c41475c8f78e3471933dfc07a45996fde0e78bc10ae8958c9faf53103ba3e3a1106cc4b58a9948d51934d0df9629aa4ad5a67fb38b531867835930f778075a07a1d59dc0105bdb1a3e8890c62ae755816326036967732a6a595e913c036ba70a18c03dfe9d8a7acdaed6a22a858e0d8dae45e6d949b0c0de984ab5fd371b96bf762fd64752cfc6b50381ae3e6a54a14075de16c57a2929a692b5d23085f592d59e47ff5881cb50ed6d856d09a3b9f418d5548855f7402c724ba012a1c66c33e17617afd8dcac570a04381149adc62ad993cb7cd436579913284f676c465a867e4cfa98174c99ce0e0349b5ee9f24fc9c60e9ccc35cf6c36037fefc84f6ea50a30568ef70c7875b954a3049ac66fb403221c42c96066c91b3271f7d7dc0b521b78268f3bc55042e104c6e143cc69328e6671777af8d0759d097c1ea8cc559a554cb379f462b081c5b238ca7d654f9f2b0ef02d570c1d9c71611f2a1a7c02aa63f78d5732bc329689c546f120530123ad6cb8cc7d29e44bc9f8ddd6c8a949a1ac305caeed9ef39dc6a486715d99080ab4e208cba173143628f197972da1e66a296e1e064555b0e283253f1db37c196e5f7c3a4b91edd77cf2fee3735e156ab651f66913dd8f21001240067feac4b90bc25f16d45a6105d45c94b13e936a4db821fde040a01596e9ec212260719b2ce5d9c3b3a0c5eafcaf5bcfa4b87c564340f52a4ed65e89cbc535fd20b4ee0bed1e9ce2bff0cc2b7404df3239c45048330ce27710f28c149be9262186d3d973ac44a7bcdf9a56042532ce1ce60f9170f97a7ce5fa2e2f23a67ad4b26cc9ea7af9045590d2c4d634c60d8db029cc05e36fafe62ee8ab32182141ebb12187497c40a752c19fd101384ae726a5f6531084f8a4266086b1702158e3ee9ad300dc0bb76fb59a907b5ea06b2e09cbda1d72207cae05c51738ca40b2946eed4cb487464ebf22cb96affa8957b4b31705a65f0c4bfa8aedb1c43ff9e26ddffb608327b75c8f1c3123d676de2880f12719a81fc0c5b1074a0665d5acf1d2b128992b137643fe960a58955d8d8281b838170961b043f68beab9cdbb64f6fd771ae1ada62806ed917b78a81a07607cc1d42c784aad82ba0338a90b9a646c61f6f505bb219d96e9fe3e6ab7c3133c0ef77cae804ca7e7707a04df4bc5c4a725e8c6f69e2bda63061588edb50b54f05b055f7e0caeec69b919577a6e957b18176848974b440c9182873ac8a5803553646530ad1b402bcc975d86bd5b9e92e09069548f584d08cbc5ab1bea6ab692bb70b3457ad681771fbc284f5fd8e0fca61845623ea10c6b7950184e8109de2bfdc3416a6377e2b054e7c2fbcbcf5b5aeb849168a6af361870c6540fa0d860b3c3bb3e725fbb6df2ab576ca83093b859b01bd7ab492a472828d80f18a1be5186344e7fca5f6667942dc5fadfcad548c651a69dfc933286f931930f372792f00fc0357104829999cffce1867cdd3e2ee3a524dcd95444a5c338128b00427594388ea041cb513b7d08da34ca79d36f95fb2982e6c8d0dcfe72f428d3f493ac9338fca7e590025a0683dc9d1e0a83f47a55161e9966a654ed9073bee1d56a2a72afb6503f61142e203acea4f06bd17ff28222c2205e1af0b28c04d6f7ad60778848f917786ddc01628c7f2ca0f67896f0f05faceac42a28293fb031046cc7f27626c02341eb7056ad9d08a1012448987aa8422cbd94a4ba5fc6406cb5c3cc1060336e74b0388d70db1e375a0587ce42c062e6a21345b90b228dd41c038ae3254ba2c7175d33eb51a906afa7bc55029ae5907d627fff35c9ef529a137b4bbb5216726d076bb5451c65d41a0309d7be4b8ee4c16ca5e6064b9850e2d44217f8e288e92d8e65af6a20db9afea5e7a4f2759593fdb0b2dbba52854dc7a411e02aed504481c7170322823d9adf8a88e9f137d71988e6600ad9ea7054d613ae3f970ce1bfeacd98f4a8763a8345acf9dd2bad273ada3e7c046eed852b2514cce313ae94afc95bb107b1c42836c38a4725de8cad2bf96e44e0b43628827aad1ee59a7bac01b6f351918ca28ddcbf94b15d05b471a29a156e16bd671a6395860469ac94a0259e51c7500fd529fd15aa01fc18cb7c05bddc8aee091683b50219ada20ec6099893f3e41048d7f2284d49f494f92b02088722dafd397ff67e2a3b65d3c95a9583ec86470dde66a288437d9236572a080a5088e177e3cb1d03e69601488da06c62ef61655796cabd9fd1dea9ad27834c4b38f187a7026c190ee3f4c244bc3e51d0939b52bf1e0795d4a447488db34a924f0d4cb02ef12de3c323ced9e117dda29eee7fbfd5b33fdd4b017846ce3ff64ecdf8649273801d110d89e2d4fb4e3025789d9b8f6ef20604151556650b59228e928440b05d01950493bd42d62224139d8e0b3ca18ae837871374936fff0f7ea41773408ba1f194cefa79ab293d95e5d8707ab4f5d4b975eb387615e04baf0a01fa15f854a4d09b190b9dd2a88f0f0860c19b51fcc9ddd249c9bf6de6a3a215998b603633ad13bdce04cefeb165c8b8b9efc7a0248b4942704be8f739f3af5c6e11a4c3592a73dc9c025246b91faf2788930042b1b0abb92fde66721f2d773d2b3e8961afb393053e8009f60c69cbb519d1afc7a34c3839ef581dcffaa0467f17b8a959ad6d48374bf65c7b597206007ed156b2e0869577924f1c73ba738d1deb0cb89f899b2d901a1bf01974e840a176bc5e8c3a161d024b06822ad2300278e7539b3c588aba1e7bb8493d1d3af567d49990171f87c9e6920ba321304bb58c096ce7441de4c8ae80063fc8a874867eba75e85482d8debcd00491e408c94de53948a03973f5bd32601438b0504f4b844f337a567b563fa5952bf532fa9ed5911ab3ff033a2eacb6b1ef55597fa5a3d1cc570c9bfe8a4a795c87d87767db86258cd547b6c8272bc1c7a65b656e046d670b3787d6eee2729404141f64a07f394c9e0e20a92d1307510608209df1c90a1634d53fc8635f2f2f88876c6f9663509b3706e00041c249c5d1e74dbc89283d3cd7a1adb6b7ff09b082000e18e44d7d372bbda81fffa7a3e2f682f79fae5947a6aab4a23ca840e9cb5c69f74caeaa309fa8042c5d78ba433d482c449b539e22d7e525a1e070869adfcbe9871599fdb23a5e30073f8ff8ea1149568ad774dd699aebf11948d6a3f1be867c3d05ea22e53d453936109ebd99daf20dfd6cc7a54a1c228929dfc9a250c3077a7ff843af41e87f4c51a93ac8b4e165d3b100cbb71beefa55c7eb2bbe3048a6191f00da362251181ad188b4ed1d55e81aa97318546618eacf32b0c860abb296eb13606d21249d9023667d98cd5888ac17a20dda107935be2caa5c5dfcc718e67d3ea8a71f18ca4761089edf75e7d8d028ba5bb9a77cc2c7b8d36c4a8837837a60668210bd14162d17ba78a4bbbce32b7c7057e45ec1bc20461cf4bbfa7d60b74aa03b46bbd2c9db5f350683194228c9360baff5629a4243167f392b2a3d857ce77183f2cbb3ff8cfa5eeb7ef603c2f7530f413697ea20515c04abdeca0802a326e2e3b74f6271a1506dd6499aa05ca31df8eea79a84b2d618e0b3ce10561f355384ffa0d844453ce772659b77a1c6848ac4220160c453d12d9560644f4dedbe2140a39a8a2f684e698403d12d7011d5320523544593e5402c002baabdb6e9f7c9728131557b1bc19ea1fc561c4fb80b4364de96a2f6d7ed0f0e2aeed7b66473aa74881aba9996d01a16559bbb273ff2f7ce1f2e27b5cefa489e3e262b880f8fc476cccc9d63287c900a691f385abca5595e41ff4cfa8d1ea6ccb64a676dc9aac5f1a1c3d3a4201e92c79466ec45c50b4ebf1958fe35e5e6196a748db3506503d10ba133c177445059ec8303ca45bc621739c3822360a354a102017dc54a1d2c3fb59f493f6270925d48ee0226cb9de91bf0ac76d33632c41e0b956e990016384c33f8679f6240e606795e8e10f28f0303ef482b64929d92a8e749698e034209f45643230a211cdf4f8146dacd3271b5ddca438988e9d880d606e13aeada1de9cef47918fc01fd935a1c8a451af670962d4f26a8287de4d025b910a46a97d93b2a6e4c77fd56aeea06e6a5b2aef9768544042a89afb6b307bc5982b92fe10f17ca1591cac21754cd7e9829843807491d21bd4d8e1f3300d14c66b9462407f3e605a6d00d11e51d0f868a664e92587a88fea5587f2d80a86919a7de7ed1ed54df8005868a2475e61bd4d5ad4ecac46955476bb42af50a1c3cd20a0e42e9adade2702a2df14443200c051a4f1c7c22d18755a7411487217270c8851da839d96b86df925279a1d429a15f25be2055a8cb6904fd7fc36450c327bcae02f71ae08d9ddba4d7b357c76c411558534462031758d7f9c963bdc28aaae22a28a1834895c20ce38b0cc10c654f398b9cc13908d110b3c3c54ac33137c619446ae35f7c50fdf4d81820947b750f01828088c65cc50fbdcba217dc5667d6ca8a87fab85e19b04a58ca0b6fdc498dce7eb3e69b80266e099ca319f6f476e33763344d1776d3290efd2e40094e9e49232aadd917ba749c5c1c65bb7748c9175b5829fe8420aa4dcc2e716178007a9f7aec6dbdb8e4872ee5f340975fe3b69194cbf8f87a80eba858e1b343dd37d57c7d94b30005e0ee6747a93b84b11af60dd39f4878b85e2d391437f63fe57d207e21c2c5f352622b614ad8f9d39b4a3860c077f748a715f98666f406f13f4142248604b71bb4123f79dce39f38220b41541da036ecafa39df7006f077e100f82f48f0aaa26422de2fd0923164f1cfceedaff7321b0068b76d63f467d74b4dd3b58dcd5cae777e0fc274ff0bf256218f72947010ff3356851df66b2fdacfd6cc4eb095c9fc143fbdab05d77a23f847aa98fc37eeb9bcf815d8b67b56d742143c4ab8656d20e493d92ee49a7773368b9e7f6eed6717c40caa40d17133839f4ee719b91d76fceea69cfdbdfa9015bcbad0bf5e426e4f7339d26419cc75132be9954cbad310bdeca01641e57d56a153b3ed6801b10926c09e58263e04500b6d757c59af136eb9887258211ffe0b4954738746d0a1e960361dd4ada4a27e4407b90d44620a17a0442c0ef0f528b4cd68a169e172bd1ed5ff03f74715f17d53a72eb9d1e62ef4e86cd9aa7de94a785fd34d8ec3c1678f2e4c00d8ce649c9dbc45f8fe711c97f517dc0433e4a57e239f0ed7f614a525b6cc0855d2c09313817c23c29d983c579ee551bd59ace3c0865d44329a8a1aa85bd743e523eeb12c993a6992a6dd7658c1822dbd23aa5bd2e3c9419466264f7728c71830442db7a8f10e3fd4dfdc74b8f8de1a61ec6726f46f83448cb4ae9cccd0235ef5d0545e9123c7391c1d9f95ab19097bbc69314cceccec4d89e59fdf80cb58ab7586a8d6ce85960ab3497d1f32fa7b43c89d96c16bdb77f8af5c665f72dcdb0a0aeebc59d98d98da9807583cd83efd8c348473ba4e51e348e94e0ce86ff6aeca28a1284c3a3c4da9dc1d532e0111a6debe399dd834ca87ef669d02ae843d3675c380a74f4fc72ae7d590444a159a76469ac807e63f58713bfad6142d583579f92975762039b3c8391ffb1d7f56980baaabe7d626e42b0249d233a9d1e03b9a1f2a89f7874898f1c7d47a6e453e37444c5f9e5b8a15c36627a3c2121b5f2e3c0d9786a44bfab89f08264f4a0829c9e6da3181f075593afc67e857b89d78730a6617017d0db0e038bc96bd092bd56a57aceb568074a71259c5903217968970dc0da8019fccadf10151f8359be10402db1986a00c77693ca9b4c236ea08dabb9099def80b8bf6ab604e9c9ad77bfd46981d4ee1beb36b19c6bc607ec1ee31aa5327bb372a27e91dd399671f0c0bae331790179649229759a004a6576cf20ec8b1e3663dd01fbf59a8b475e5862fe18b224ce140365bdde62791981f73834c31d7e9c6885d02dfec358a5a577440192e66730955479460cd2b19b32df8b759ee646c5bc09954b5f5a4343127cc4f90772f670777cd47b4aa913b480455aac869559cd399da1b184258d2256f458c46aa34e64636ad24881d4305a270e2e162bfca76cd479999be9e1ad62de640d6788ed28c77b9b4d2bba6503cae9f7d1206d247eddda13df250f982d6559c8a1d6ecebfdadc848229754d2531b416ea61b6ef87cb035837f2e96cc00223d8a3528b184d7354b8a9df944248f2f821c5a6c99986063adcdd2f5aa577a86397cf8eaafcc8d841be53e2fee56eb73cec0fc2038243a42fa1cb922fb50d2eb00d519f41e1fcc964d4e56073dd528749e069c40a562007d9b6f8e3db04f2beaa90ac60794456ea4f5ac9b1f36c8521a9b186337bda594b160655a542f2edadd150053b6eaa75db4f60965752ccdd2e900122d71bc7802e9bee1e4701a88d970ba08e12819fe29fd036720e6d6c9703d7db715b28b6f6e84537e8887ca3c6cb19e7959794ee6b647180b5889b5cc2e499e670c15674402a72c4df2ed10742466d4c29116df236dfbbd6e2d1135342858f8bb767e35e7da85303b5363209564b2b9f1ad2561cd50a094c926892c69fa471fb2316767591f32dd454103e891001a8f61661432e5b93aad5a2eadf296e1402ee18bba004644979f5c97acf2612db24230013612f6151ab6d0ffa8d0a5e044b30cb531d3d44594a04c4504567e2dd8c871da4a12967d3cf0e6d070d49793a414ed3759f531a34c80bf646d4c126e4057a7cdbef53830e6772a5948d0874388d11786d20f3ea1bf4e12a949087fb0d7d5bec27939b9143a0d35ce179f5992d0dfbc01cf96a6354f869e3254fe5f0867fc71c6ccdd4af6f1e9ab83453283f6dfa19559650d998f56a173b99b455624a58da5b6fca8be9ec98041e702a7e4959a5a9917a4e7013975894ce3d048f475d101d3ec1015a5d44755b5fd53674c3890aafe93bc64e93902c7d055c182f37b10153c6ff8f08ade22df21657052c5623856cfc7ace43494fcd88654d11abbc1d885f40d0aa1e7720f1b94062e4a6fecbd4ab477e4e8c09265fbd2e0762039ba3970f9afe27a458b1b09a61c0f322b078a622d96580184c0e3e5f971c4e81c099475ae5d945794494c006f002659bddbcc276308c8a40bc9934abaec69880427cb8a89eed09cc04929aa428684f1cf725ee2d99a796e8fc8450899ce43cc274d8e579f9ce238b6fe10bf26428142685442e109f1a0de4c84f57c9072d3f42dd9844c62002173ba1662995892b702bc38ddf190432c9c0f8c3d980a2403105d93fd102e66784d0b5492be2d6ae95c857ad69b54bf7fc5594f206452fd645c8ac3eb5406872235416ed256a4f17aa1a3324c6dc2ef3f19a7f60f6f8d7388003a40d9768da606c1356ce0ff1aa09930a2b4fccc952104de97f15ed3ffe00b92f94168e5d10846d6ce1ac10cf94feee3072b04332328929d87286c4edda3a55c7fb4a5ac145c782108f0806299668a022de82a9478688533ba4d109a5ce7508606e523d5b0d54043315c762dc8a3111d9a185405a42ff7bd2e88133d06089c497922caf759fe092247efbb867a377daa6fa3a3e168d19d65d428c5aa5e0aed56ac19ab4433aad2d59474b8d9c06b150b492335e34fb4131d93f40a0ba14c2ce3927c4dd9de16ad89d0f8a41b22fd604e32e6d804251889153c5269935c50bcdb23a6a0917306eeafd28ac40b909b0b40c391cd3905d46e65a64d5c7b0723c0384600f23cef147eb0d9d7d78afc5e2cdfbfcdce7c20c26f7329c05dac68bff3bf019ef54b2b3c425360bb0ce20590a7b33af1d7e00bb6917462cdf27536bef60b7c7d69cdb1ad96336b18523b5c365be44f75fe12be42555e54ce533b00e7ab6c71c476a7534ec6b952f311221cc3b14bcb0720c7bae14b88a8bfc2a1e03bc8940f3d04b8ac3587c32b8dd7262f5a01cf59eaa856565a897f97ec56a8e2ae216c95bfd73383b08cb07faeb778168575eb495208526c711205c027e74ab6bbc68090c1cd709843585d64e34867e2e7e0d9383da2db2b457eebdfdb669bd040393513ccaa3028b7bce678737597e4d37c41bed65c71fe3b848dbf566e11d8508a68eb9302ee56f7ea7d8e0063e6119f59212115b675e6e58ec38d32682d6694b932d2ea20af41956e3552545ab167836dac6c4417ac28561bb045a7ecfa6e6f90c185c9ec38af7e98ce0f7bc4d90b696491ff8371a70d5d0c1718740c87f420b9ba294b1f637c0fefb2ead455e2bc83b3246ee201725d7d13bb0ead5726e049e6c6cb9d327df294b001f360792d14538098ffb9bf11c778e4f369a7fb81cd58fffaa417ea59af7c265298fff532d765eae530d5fd22720566085ac7a19429656ff16415c3b8295f5e0d1e82079fd9615504ce117e13fb192c655f9ef9499ece9b1908e085cc0b2819ad0ad2b401040c07eea633bd46e6bac0e1cc8d3b6d01d1888e9430a56ace6387e32a1a34dd273120a1e50bd51911819b620b8304f4659f46a6151d555c55f6a8698e9a8c13e0eb0cf8e3905e5fa858b72944bc76c73c7b19418220b8bc3ac0c187892347a9be4ba7e1d8ab10e6aeef9e4575805be98e0fc5976796a914599286de881490973554e2356e861d948eff01d37dbdda82e41b4cbf78d5fce2c4b1b07d9711350a7d818557e0103e72ca7bd915d6ec4538c46f0b0871f665045b09827070c45532c73ce7792f6e3bcd87c23cc3032934e3150c8072ab6838f0e6322cc8768ef4fe7afe7b90a1a9c6cfb2be7806b9611bfa080f9bf9251b364708e91f69db7ff04868b24e70f5a84cfcd268f9b40349534ad5ea65ebc0b19f264314ef6a421a00d63847a2b4351522db2864c3b17ab4f121985f4ef885c6b09666b4ce4db9e488454d9f258cabf22457669ab8e9342b6e8a7d3446ad8e34c970a3ab090397ba21a3c53f5d6f39ab75cf421c28f104556a4215b4a295ae290ad1446bcf88d04fbade997cb08835cf4cf74182ac77b99f0d2465046287a4a4f558731b3897237e569c5614203e4ab6250eb9112829466c96822ef9f6df87e1dbf7d8be60f693898864b0933902e024e961e83a257692733db0a318564e3e6a886f0a7503f4f0db4cbb84f782f758e1b12821e31823b5e0e940b2e60070387d39226034060ada04226afd80e8bf447f3c20e45ca2dfe7e38720b87885bef84ce41e3c81e12f4119949683ced26f953bf01dda6c31b98634ee64767b070e82a0ac7773fb8fdf151de38c0e1680116d0015a8c7cec602e0d4222802805c0990aa1fed451bfdf2c09e0855345449f92ff55a5371299e2bd5462d760c963909ef21af4055f53782c17534697ee24f53599e1aade97ddf5711bc7f9cdea8ebea421910421750a0d204d2ec42679ac4b080421fc981ce34687a47525bc8d3c7b66e009463c74e4505e6d3dfa0d5257259e03612a70192d35a00338c2b0a49e5d220c0e97dbafe85e48a84a392eb74ba1cd2cdf4493997fd2b4783465e71191aff802c5a08192db268d55e0d48478ebd7385868a66f580928298739144d83572309b47728d462f267d89e85a2be7eb83aabd2de858a1eb23c46d41b70dbb8a8503bd092c821cea39cbea7a1260542fe2f517aa3bee87a3e2275ac86cc47dd0f69210bf3c6017fcacc9ccff99149229189f7c0331f64d73d8bf7e9040be194632717b7acb08272ff7163e9a819040600ec0d9569b99ec9ee18b97dda38ebacd4b7a8aec51f018bd282a6d9912cbe9bd90e26782fcc3c4b382e45334f9dfad10ffdfa2904a427d4ea63e6d5c4dda978f0ae23c3df94f3d198a7e391084ea58c698e82f1cb47553a00baf9c528e370c2e8d905fe97c6f0b42454f4c0ff0a6685017b8329a5357406615bc13db2ad42652ed0827c118bda89cfec1205f817ce086bdf741282a01e3b96f140bac98107338e4431bc847c8cadee0f4d72afa4da560dfc2bc3526a703bd21ae1f8821465968998cdc3581aca639f1e3629313bdf5ce4c78ee337cbeb6e9563989c0e921b5457130fee2c3a98d8a099befecc5b1c6298468214a2ac25e3070a12a61a478a5c198b29d5ffeaa90cd58578b715351fb6eb24e95730e0aa710eca74b2dab7773f67b03a82d2ff9d9791cc40bf77f6c577f938c754397445d26ef55c44429195606ef4084840876a0ab1be41472f01e4db8358ebe9a2b40e77fa55b27aeece0d4ebaad7317fb8a6a82b8a17cd3551a7c336f488139a44148fbe46cf02ad7126b9c5d8987d2e05105a500ad7b5607150a097303fb68fcf499f27b34200865e98d7abc8074aefc1d3e7c3d9734cdb941345a89b4e44b9cb832cfc38e9d4b640d0ca214f272323380aa12fd4ed22bee466f40ddef50fdab3456b54faea9cd7f87b7435e0c9988c37aa29446e5e6b22c48bcc1398ff3bec52b73143fae89762b5e352285ca5680424441ce0d87d069ac20a46b29477fdfde209ba9a906f5afd35c74816a644fc7402c038008e8a8b4afb4752c57e9f51e65d60f54f597f4ece78296544706e23002d2077a1b3712719a0511b6bbbc83898b3f006cbb2fd4909cd4f99301dca9b12ef4c6a17a4163e6b44d494f35c7bd25a87a2b350820b3f053b30abe63d6a0514aafc58828c37c788fc64c8f98e3e0683a1a96665f74cff21db7b44fcfd77e8a02122cf2bf305215fbf68714ad636109b17cd866d6a00185287a013955dcc94e9696bfbd49939b31c769d70f8f3e31ceacbb0ae1366da69585bb0ebba2d1b2c705a5c570c314a69de95de95f2181fdaaf58fd0980a6be71a5f79b563557a52e2afb5b728a8b43de07d7b97e9f349deaff5676eb9f079508ad4b94f9041267c854820a557f23ec30eb85a116246847e5d9c3e951ba80bb9be316d94720180433b0bf3809d160b2c748a6d0a2483e33084b135dd736d7faf62096944b92a0dbaa5199f83836eba34cecd0f57af2044fffadbbcf6111f4ec84cc098fe552e9679cb36cba9199383a1b46092b33da341cf39bf86cde768419cbf3ef4134140488f5f2c2381bcafaeb3f841295fdc8f159a075fd37c3137947fb23cd841af80addd07dc9e5a73a903947c59a64bb06e8f2b7ac20f91f2544bd117febd24bf99dedc8d13fc9f63d5e9a2cfbdfbf8a9ae789dc5f121c0cc52451f7acbac569d8df1bcc72d85393641abf90abc190924ce1d4be7e68e43a847763c3eb958b86999139fdead0edc2c05a6d53763b0ab521e17b95b1ba34b959161db630cba5935cc324e38331f955d59c98d76f9add1d0c4589adabbe86670419f4a118d532cccc0a81341c7d9627525250e9fc54ff8f3ef02a678592b220e28fe071074718e1b35e003291612a127a7c78060e0964cee5bff5ba2360b6da59b4bfd64e588f05d3fbdb467db64159d7eb27a621a124ae179a47856417110f1821d9c5cc3395866f91342033483915fc0b2379ae12756ed64a782c01fd0c46e2eee292901ab48d628773586a8a2666aefa0d2ecf22674d54454a55f9780a5b2c15adf2d8e22e097e2ba332e2eb337fd27e5f60e6e4550cd8b21ecef1690f9996605737136bb07340b3b136e309d1547cec1d01076888593ca458717dd42404193322e0dc10d575718305b6fe3a94e537d32b98edc2261c9aec15040303aac8ca915c3010c29236fa23c22b7950ffee24cb3d44a586cbf5fe30359b80b7cd2fb71cc765160bff0ca7c470d1dd48af96e9005d05a2f8e09856209630802a40fae738d4802a318803f406a6c58825adc9ab3fb6d69a484288484288447677ef26084d086a09a3d5fab3b50f7616b7a068ff1bbbf8f2e7b4afdfdacf47d70b2f053af0edd88148d0a2f8f6b3387e0f7ee2088adf43c32de9ab8baf8930c36af3db1747205668f3beb1ac3014c50f57e0f7820b4590f3f2fc7c3aeebd3872af1a3b10576d5ff8f643d0bb07ddd15e1a4208de51f57accaf2b8febebd5f38bf1bd94f7729cf6f9701d10eb8a2f3f71fcf1befbae7bf143f0b56a94f4a5f55fd7af76075fbeea5d63f8128803b1be7105937b5fc5ef3af1bb11888b23184a314b8f7e3ee2ab5e7edfeb31fc3bae7607e2f7c5518e30c2d73e9e37760fc3dbe07722e57713ff83a1fffe2b0cc1dd69f0eee55f2016cf5cde1c374e0900dd2494f8f881259350e2030b9f2dca32f2acb1cbe02c9555856198ff47bf2a1c59da5afd2ad62839e8d9d8acf06ec477b56cee87f986e1df78f9ed17feddfd049aaf0087a720887f7f5f8f5d73adbf8dc3fa1fd57fcfdadfabb44a7cd6d7f0d37af5e1abc62e83ab7e7e24e8b71b87f538acffbe6f5c95370e6b8b20f3b3f2b33e6fd6f7df8f5d86ed2ab1df5f5df1bffd233e6bffdca8c22bea9bf06685f7f74357cbc6b3b1096d42556813aa42d5ab7ea33c2cee08e2abf48aaec417370b2bfac307c16731de0904711cf07fecab1edcf6556fb7ddf759f786e178c72e03e72feb7146497558bb6f3c0c9f45f83d5565f377ec2d116ebabfa3ea459b5f85aabfaffafbddfefe66fc616d10fc705cbdcd288a23e5abb1b754ff651cd683cffa6f5cfd1dc357b1c6f0ef6acb07c79f70eb57bda812c74e83679cf07feeeb0f370b2b1ac7e7befef0f50e37f83774f54292f739ebb7e2dbfe8228507ba1ddfd5ef1ea7bb7e781deb75add7c2cd5dbb456faefebf73e6bd6f756bcaf63809eb87dc09dedebb7ef7d4fd5a3fe50f5e057bd3d2ffc4b82f776e3806f5fff1d71c0cf7f5fc401b74ffe7c5fdb17bfa78a5af53d34dc7affa81edc3f2cadf258ac9bcfa6b5fa562b6fe56530bfb7f232e8c5e8b8f777ecae8cba50fdfd4b445dacfeeef07318863fbf10f4fd7064514583aad00867e9f1eba1ac31dc7a355e22fa526ddd2171bd3bd035f2eebddebd7aec20f87a045f6b6fffdcebbd07be06ba46def5bc117c3df61744811ed035f2367865fc7bf9ed3c76af0227153cbd20caa7aef0838ccf97760593cf157e18baada98bf2f779ec32780eadbd7a7719dcee7e5ffca72ffd77cc3fdf4fabf58756bfd62fbf18a0a62fbdc56fec41f47e4085db6f2de1f6599f5f74dcfe5665f01995ffb0de92d07abbfa9bb7bbdb7c31ec66fd80ff191c7111aedf5372c4edb75ef5367cfbf78ba11f8c91ff7bf0aff8e2c609b74fdedf966fff7eaf1a7b1e61f5e2573db2a8a2c1bf7f47fbaad7f323e1bedd38e25b1cf1f3eb0fbf6f38e2f691f4953fef0fecf93511265f7d0fd563d7afda967f6f63acfedb3fab17f78ff7da8e1ddc332c5fedeb6de9da332a6ffd7dbdfbcdb6367b46e5acbfacefa1acb1d3e0167cfd598fe0383f9fea6910f05c2d09fdb3f4d56754ceda3d06dcbef7bde8de8e94cb2f46e59604705bfad2ffedbcfbfd1995ebeb43bfb7d6d2a0ad1593bf7b2536b84fc7bfd763277efd5e749fbbc7556f298fea559f5563d7dc866fb706c1efa94f5ff6c151fc3b7adfaff8aa5ad95f315aaaa36758defde4dffee93e7f97fb0c2b49e0f8f73d54bffcf42cc92c8914cfafef088e5d06075f521e16af7a4979563c087ef82c464975c2dd37f0efaf187baa38ae6072d58363ef5efbf68fa6c07ccd7a705c3d6bf4590571fdf2c10fc5b1cbe07a7f7f47f15563188e948b63eff637eab1e74f4110bf2fc407c7eff5d86570fde2e8f36d495ffac1bf639ffc7ed8f519361c3b0d1f705bfeed4e83e79fbccbbb87766305ba095d0697303ccacfde395f9e40069f315b7cda500d443ec1e42b903f8370b9b770f24c3f18b4d3e0dba5f5d6296bad967ee5747717f051f2203a672cc3907c441286bbe66763dc455ff6e7092c275bd8f1b356ca167223e1a2a4508a96b32432cb4910249720c8b2cc796db494db385cbdfbd2f2fa5d0a6c8f378d046dcd9a356a38a65f0c6dcd9a35546c2f5ddc3ee783f9fdbc79da0b3cced06d1aae2f04fa1bddb8b16ffcd2a7f8723b267c3977e4cb55de9174fe1cedf782fb9c97cec8755dc76d35ba9c83b62f7fa7eed03a7639e78e939472d1621b0b8e8796d182ca2363abf555250bbacb59fd9e7af774b9f80b0770b92d7dbdd5fefea66ddba66d1bcb929f5eefc341c37f7b7e2f3ff75ef63c2f6f6ed3f09d6876248b83ff9c974e67bb9d28e8d371f23cabfc96e8fe28b0bcbe66ddaff6eb0b2937f7dd66514573f4f3e19e7eee3a4a27e7f6b6f4654e4d820723a51a5aca63a98efd6f89ee9a5b14589edf3e8bbaf8151284fb76deefc5646145ffdcf47b28f7daf7eef3de7cbaaff525cf2304f1c9bbcded0d8f777c4a44fd2c433141dcda9ae98701edf1a681938109c33f6178cb3c98f6320bb381ffc666316061dabe2114c2f053580fd5f8a3c017c2d829aff4c30ae02d25027abd6ffba431208104993233de7deebaeefb0a3e650fa5f6b1b5f4f37cba6d3a827baaa1af4e8f42fa456bf54b51ebaddf8e77f70dbffef9baebeaae007d7533e8abb358d217deddb780be3a13e8ab03017d752325a2af8ebefde92441a0dffd04435d709b124dfbdbe38b2fbef8d679eb4fbaa94cb6e85e5342734f7fdb1b7dd91febf782e6704481bd63dfbaaf230aa61adebd36f619ff8df3cad8e513ef7ea6e9deeed9445fdde73d99e8ab7bbc8366e2dd535987657f13a80bcbbb3f81bae8befb6983bae826ef7e1ee97e2a5117db77f4bb6d870fdef5f902efa414ef3a25a36e2ee19d13decd19efa82cc1bb97f408debd943c54868377cfedd07d8777769c544665544665f8ebb669ad79d775ddcb9c6effd09976820412643e9abddece4be747b0069c3e9d8177ff7a5d1b2e7ed78a8fdb2e227c56c1affcfdbdefae4fbad85efe2679389e6fcfa43c1be9115487fe4ca2ef72d1a706680ee813a73f3f178d55978bc6fac8b107b87d7e41295b602ea90b7cf796edd326696c098d715be5e19ee3f2b9afa3312967429cca169d98ecd2224763f2e990e499495587fe4657a03d38e56652127d05d1f3fb4cea3297372de39b6dae7416804669544c215315a80a54055a6ba5447bbb9a12695a7433244b29a594926ea14e5ba4a6a4a2e8b5176b58db38b9715d965df63ee97d6028a79453ca29e99492ca39a594524a29a5a4524a2a5f6a4a2a8a0a13952d4d5498a8cce691fc3b8de494724a39259dd20439a59c524e49a7dca12ff994652f95b4566befc517634ddb366ee3b8aecbd9cb9ef77d2018ce30f4a616456faac66e592d1b1b4fde5039e594724a39259d524e2af994f20f3095a59c73778fb7204b3ae79c93e6c8f4b3941e0a6054be4d0fe6c3985864d1d736e79c617269373e67bccae653fa7acaea2841114611466493ad40954d2f5858d19f34f22ea75a50792c2075ea7b8915517fe45d364d5540b628a2eff0f95d365dc93395935650ca1693c6f8dd1b7d05a1ab7c3089ae4f6bf06cb0fa722644c7830ed30b6a4cd2410f014062638b68695e7743c77badb54a49b7ee697e4364c76d5ad6c2c46cb5b68ed6460e425db4a6a6f6a03729ba84ce62ec0fcd71a9525aa372458b5cce96945816f40a4c98a009c344096a46632e674c8eb8385cce6e8881672e674d94d8b9026695152d8b87a13701f0a7acaa2bae08dfeece02bdb103b1c0cdd39bfef4a6c3af25b272063fbf38764f0c33d087238ef8de872a95b8f37bef79de6b7995f3fed12fee9fcf1b8158fa0bbf300cbd9cbd70d3dadbb4d76d5c521e57d56185acdb5daa07c7cf557956882f2b4b73bd5a6d2f877a354afa02552aad0af9eac151f440d5287a2c2f0cdf0b41a0fb61f85ed881581e0b2b7ae31d88d5815812d0009716a69241093c7f969483d57796d6368783dba64b0045a0affba0bdf6da6befeae600e500e5782d4fc5aab67eafff1bb1ea867fbf18e2e7ffde8e3d875bd08216b4a005c59df7dfb7e0afc6feb13e7f05df3e5e9560ff6e9cf0efe7d7230ef87d7771f0fbfe1cfc247d892fee5e02d79f3f90b562e5fda302cae1a0de40399ca502552ef0c6a6d56ae9073f832d0d82593fd8d260064be0a0757356df73b87d6b800538805b17768b228863f8a0b6f4da166be7ac764e0e504e093ce739f8fc72c02f071c5c3dcbb51a5dfcb656cf1ac3115cad565cd56bbf6a3d38b2be35fab05625ac541b28a704a01ca09ca0a3a0a5123e70c208a69c0f9c3082073edf86b6b6b7e964d771dfb9bebbf9aef51dab5bc1ad68b558fb67abefb2e93aeea6c571375fffa6d5da3dc866ec9752d70dfe5e6c370070b19e039c9bd58b7935decf3467ebe5115cc158b138584170e3843b84d5e707b5d65da7573c0cee5b9e57bd15db87fbd673ad5ced082c11c40a7eadaefb9100b65e1c71ea772faa541ba7ee105aafda1d88ab3ccfd3568f5ec509c0c360f12b562bdb7d6dfd2a00db87c5af7816ad5fd1a5c08a5f4fe0f561b47607e2f9bbdd81b8f841fc136172ac17c76e9fdb2caae8fa3906ebebfe617db87f6cbebe6a6401b12a005c6fbf72b02dce9e51f9cde437df436ff2e77c13e69a6bde37dff762fb5ac1bc755c8c8e774f5ddf57bcf5a26c80373da0df6abda52e6ebef51b75b1e25bef511736df7a2d41607dcbdbadf1fbbeef9aef0ec4bfcf34e78d931fc747fcf061881f06e50f1f46fe301c65b7f563f1375f4790c5d79d378ecf09e61acefabab56c91bf7abff27caa371b609fb6bebe56aedd29ef1ea7adef9aafde8ea2f460f5756cedcee2ab5f7dbe192d7dadde66f4462d5bacde5afbf961d82d658b2d658b20fe7d0f03dcdf0ee275ec5baf2fbe1d7bfd1bd5cb2feca137e3eac571f5a16afbd87c7d9bd5d795dd383eacaf9f829ac357cfda5a7f7d18ba6e167dade6f6f9f4d4bc7933887b8e77b91b338ceef5d7aff5f21345b1b57dbad7dfe9ef0bb7ed81df5339eeb72c7e0fdaf03be8e0c10e7aaaf6b976fb677b8edb9e0b218f1d08e77b1c9fd58b0f63256e295be80ffa5e7c18df8be2a757f4ebfe1be71a2e3f954a7cabeab64f16bfef53f06d2d5b88dbcbfcd90fe2dbf63e1cf3b746f1ed086616e75e841b277c18aa2d650bd5af3e88871bc727fcef6184ff7d10b7631ebf311c57a36aecd6ab9ffefc1f8ede3edfdbbd53106e2d5be4b75bcb16df0771f9851b06f8795be6dde507f16d94db364e200dd8aa0140472eabb1cfe02b517fade283bb7b1c0c779fc1ebeee0abbaeec3f0c577d157f8e0b8fac2d761f73fe0833b0cb7b71a25578d1dc8f32ea5f66bfd5cbfc555dafafa96e6afd4e6abfe9bafbbb35e7e31ea6e859fed7841f06dea672f06f8d67bfbe1d83d1e8aa1e86d9cd5ff88effd6a7b2f7a35f4be1bbba87ff5d5dbe1df70ac33c2af1b67f538abf71e7cb1db38ab2d82e438dfff74bffaaffbd5777b7bcf1bfb8c2a3ef6ecab368b2adaf3f68ffed5feb1f93a76bb813cae776803dad4fcf6c1dd6fb665d9fab9d5aaadb08662f51efcb055df725fabb8bbada1a5767334e8fab68ee1c83d58576fa98bd6af569f5763f7f86af5a24befeeb144fbe2768de0abc6fcabd76fbf35aafea7bef8aa5d5ffc2a7a9cebbea782e14b1a862fbff07b68088edde333b8dd7d5b8160ebedd8598f9f869d0da75baf02c5b72fbe7d6e7b6f33fe88abf0e57f0f8eaa6f8d5a8f94abc6ceda5a178ebd13df1357fffdeabd51f576045f1cfb0c1efe6a04df3ee8fd37fe842188e1d8813c3d761abc0bc3b72090577b0923e833b8dcaa9d3508510397ba81bc5983103508c1e7d31bba52f2c60ec4bdefc00e9459fc6a201e03a4fa8e5e07560f88d53d2759daf7826365f1c32c8ef8b31eaff8f58b11bef83a5bb66266d36c52329bb44d52f09b4d7a06215b744468b36936cd2e92478618edfb24c3699496415f40740886520ca12d97b326494ce94e890a04a9c9d316de7fe74917a3f2755fc0eb4fac6d7c659353f97649366d139685770e090d01007c6e4e49b6a0ff91d1b2c5ad31a0754a0a5aa4d1e8ca6eccde7b639bdf9f1de0f527b67bca1694df9fb38b612cd77e2104717abf7ade3671a0baeadc23524bdd5f5acb1653f4fceda340fdfb5a52cd144ff9aaf3eb4f10578fbebc33d0937295566ce7aca0b66db6955e6be7788dbae4c944cfaf5fbd1be8f9f65fca16b2d65a3f2a3818a830fa93cf40f70934aa8c5ed15c065a53f3a4372922dd2901a6077dc24390a51e49b0507f784c4fb963d2b1b6073d9f4a296598cb8c37fc55a2e777307d0800a5944a6ac7b4e60f1987ae2b62861f929e4f69f63c8dd3dd49b035a9b56a5cce9a44995176bca7263e93d0a1c5873330f9220c5a8ae1413670e971068b902f5d78c0ba554ae24a950746105676f8a194a4a808ea4286e1f3ed150982e52578f19ffaf4bb6b465dd467e17fd5c763bf1be8c5efdba5baad127d2d51d235a916a946a80b914f8bc3b3383c1dde3d6be4756f8b4df266bc7b4c9cbe17ab3c4148a0bc3885e1c282922f44f0ee1d0173844b8fd81a23c2c0ba0786776fa462290c0d4267cae000ebde10bc7b469496784b9e1327d038a1a6e72538cd512fdef3d4540633958fe0f47352e5916b5228620d12971b4da4e9d975c41217b4d05045890db09ebdf09e7f2c9181861b6a8e489581f53ce334671e0dd6735522572572ce23efd92a75d96659e541010b434ed434a991821318ed98c6781962e3470a402c01eb5d13a79d5302c63c5143d40e33454c60bd7b1282f70eaa8beaa4b4743968e99c7447ba25cf7bb7e44475e6f72e08a7bd2b02053544ea499a28aad4b801d6b9284eb9a90f481143ac86a2288ca2c07a17e3b49329c17b67d4c17a779403e725070e0c7785dbc229e7c4e98c3ae1b47254387d2e5679645394a93242d8e84187140c08de39d90c4c489952458a2b5770c03aa78577ee06590a32cc40f6c4992658e79238e58c704a3c19d6b925d5079aea43cd12529c6e53356973aa49db534ddaa038fd2da9f204e15003151b425e9e50819285f7cd8893d49a28747c110305ac6f4a9c6e4b456288a2030a2b599a9882f50d0bef1bd3d6b46d41b3f940b305d988b62317ef1b528d4dc56a4cc6e404c5e9772d4a93f2a2e5e04573a21dd196dcf0ae2d3d69484f5a9266046a4a9359e15d33e2543ba239602f34070c065fc15b6c78c74eb3aa33a33856794200020a8a1d580822cd10ec0aef5836011dba3451d3c419239ac03a36b2c23b460a7af2c44c9021457670820bace3241f78c746a8f08e9534def112ea030df5a16609294eef54d2754a7a4a4aaa3c412818515162c214058a1a580fbc5f234143cac43065c6c4cad20cd6af1213ef77090d90188c922461831b3258bf331e78bf4c9c7ebf4d22ef770b9aeb03cd0d7289ee118bf78b446353b11beb57c6e404c569b7519c5aa91e6c0e3d38e1b4dba5267ba4c92e79b2484f36e9c948852a00d392a531b3a72f3c60bd4655a1dd1aa978b7473eaa171f6038759a49f54adda2549766538989d3afb1ca23a768d1e10488a42d368002465ff62a0b810d889862831614b45881f56ac469456241d298269204a106470bb05e9338e5bd1a5981f7aac4695dc25140c35150439790e294caaace13949125cad4b465a906e59d82b100f521b504e15403449c1e71d908a63802e46b7e9f39700438e1f4e7acf2883558618a0a4e50e18309189d4c4ef4fb8ce2744a710aebf308a74b389d4bfc8369e483aa33e96f40ba98f2359f563a8fa65114dea74c024f6e20d224c817251eb03e63bccb2933513fd820f38411300cc1ba8ce211e026549e201852484283111c8ac880048c3e75b9342041903c02429a8a78848912a4051804387d5d79829424f1218b0ad342163230fa2eeae20121ecd00413125daa009103e6004e7f87d2ef66ba5ba3ea549d6c129faf21e95e9df8fc5ea7f8fc3a455da89922050f03e0f56f7daa4e9d1135acf8fd9c57bd2fefbb38b846c47801aa742185a881db9c849e3be85e93f8fccb84ee35c6e75f27dde9139fbfd540773ae3f32d11bad3243e7f2ad19dc6f8fc8945f77945f7f9c4e7774874a7a4fb54e2d32ad9ed6efc0af17bff837b257d59abd4ad123f82d7aab4dd307f5ba2bb21f4e7c2c7e389dba69c218cba6c96090a3b6410f2b699c3a7012a94301bfdbed311404d980db05b941e8ce1f569e65cc032eaa2cbca791c127aceed4da1a3f856b935a273d3319f5a6b3ffa41dc3ef84363de9fc6a0bb8492b56f765f23d982debb4fa001a394bea0f4440a381808c2331574e5c1b15231606182cd1a36865852a2fbc6358f9ba2a7152986cca87c808d59e5d1a0605a8230a59d5fb598ef78824c628a223d6034c0a8136896a629188d9d214272c06cc0991fc4e7eeb346ed2083d1f0400a1776386142e11083d1d8412166c47555baddf10429650821180dfb032629033a8bcf4d6e600fe24d10018104b3a384d57172a5abc3921291c911980bb794854b345cd65a6bad94d65aa7984ec89c1e2671fa793ead2f274cd20bc35febd36c3f1262e08f04495f3326cfda94b4829d06f7e8ab722b5bacb8942d5c6674ef90387d7b65219204814982d0ba8084e1b7a38cd3bfb2ca83ff02132614ae59b3660d4c7bf96580c2b47d020d18deb2ea84494e4c4a299d4bf89c72f22b9c521c327d40a661e55248109e650eaf51ad73d659674c6c70faf47b41e735aa734291654ec7336a4456d1b185cb2a396c3c7159258714b746128409255bcc9f1449c4a2bb35c24b958752e1040598feabb45479c02a40f86034ab3c741663ba4d95a76ad9020495186cfe75aa3cb2291633c13ad9a7cad3495121c515a8ca33a36231d8fc8dcb6f2fa6dd1a3971bdfb7d82e2f34da83c362adc517c7ed3db79ee7e93fa34aad7089faf31f16e8df87cab64979ee65f28a3caa36aea71440c36df2245559e29c34b36e946d959e591b00660493283e1ddaf6c7eb74617a9ee7e6374773b856777cbc4520e6139e8d6be4ec22db752b0e0c02d1298b576f7ba8176b84bbb341e59372065c932c7ce406b6004225017944f1146a840976078f53c249a03c973f78b85e8827600bd41c6e56c898c2780cb99922d5c040942e5f57d2aa71f1d0103d4457f69a0f2ec2c21d180072037002105ab6f003ab9fc38f03d74867bc201a260340e1005931203771f200a464748413f973b1ce184d3ef9289474d5ac36499d3e9ec22360d35753bccaaa7079607e9923c39e4afff0f76388cbfdaaf52b6089f354d9b4991c435ad088a5a852ca97be2180bf5307223bc217df0b881a3c6aa8edc643ebace4847e4c3b843bb344beb21fd550811c92ac562b11828129751d05041ea6ec80a60450cce7105aa05ed469a1c9786180d321a8c6840a221e946a103cd10c715719c1185dab94db158cc8649a1b894126ba250bc876e5e84ba27d27965be3411830c3159114c4bb2a1426843c80bda17d1cc8e6c2305ae3d3942a88997f452858726bb1bc61a6b44d5c7d2072406a2973c9834cbd32ecdd2faaea080bb7517c618632947a88e5cb239d1545c577ecb0b0cd5d1b894233e9033de43392f44bc6ddbb6cd49cd96a31e116d1ad6344dd3a6d4501d6983a807cd91eb651072248a1c373063260a2230c8d20cd5b852a464aa82f88189920b35740c99462d1c8f694085eac82b5b603400c3e11b35051d2f4f474d5618b23485901e2c3c804c90180c8065426ef0410521596cecf063069942c8bdf75ea725a799139353939393d3d33dba12dba172c6a5488c0bf9c8402c1420b869078b51f364e3736c3832f4e385293b866c0132064a35668a1b18638c73fceb73fe8d8851a22846d4b0d8cba5418ad3a0c606d111af2188b6836f64207666e90a952764c6fcb04eaa20a2dffe8031c6b119c4a4804298353c7cf098b31f846a9031c6b88a91aa23372624deb281470733a0841962070f6498242161199274613b18b1c0246563f26147d721a5c937f45ba18e638c31862a4275e411ae076a896ba8cccb2d59d4c0e001161678e8f07a78e29a2654c4715f86d04c188491c2a1091a6411d363f6d8a1e18b31c698c8a8eac80d1f11111262c7f6ac998ac562b298d1fd0d638c311e4242959888783a4448f9f2e5cc6bce7befbd44982c91264bc4c91279b244a0ac95a24651a108d3124318636c0311d59147418ac06c3882ab100b1abe18638c9f3c511d0915c5f53c99e27a7488715c006cac31d244123d986670e107d1490c0b2d6c6194be22edd22cad8d0280796c18632c8423c0248d0d514786c8f0c2e431857de107c7693ee8b0e19a10c7417161052451d8f0030e2560da1151b6d223c78ea6699a56464675a4514f1924570b43488eba202645d840032849a84892030b378cb051e45e28472e9425178a13d711919d5a84d2e71cd9fef5396fc4e620aa4c648eae7d62aa3a72d341867310a1b09142218eab4116b2c2240fcd8638ee89982bf43b5a131d4566128ea18429a281005766d872745119693a76e8d488e25eb97173dc0d6b2840511d19c551988ac9b66ddbb6cd4b8d3443bf7367211541a82842c5112a960ced18dac18587ed304587a7324568396274c58a0a1d4820a438ed88c2400c998121c814c618afb03385ae086d1102b3090d755d91a66945bf7365b063918c3e07cd0d1ede4032238547d30a5d87e4d449411a8303862c63ca0d3041a6301242c85cc187323c868888d608cd4ef85434241b578ed061a5983fa2aa8edc4410e5c91a2a5ba20c8144851c1f901edaa5595a9ba981c98b12189c68f9318b80dc00460132a5e8354dd38e9c501d093bda340b4f608142c599a3a921269194a3a1aed3344d46c50170d1c8a5698891568d29a19890cce62856c83467cafc582303152090a68e22421d482d59c6fca837302162c66465568316660e2d53a868dce5388ee39ee3388ee3a01c4175e41250a4341435ae998d9f11511d897730c618480c5a0f5bbc231abb563796501de964e337a86897a6693a8a8a5e5fa478616289a9432be28cd0608c316e018a6b210aab91598c95ace11813d520803158641882c5860d25609838ac20b183831d9e0d66efbd37872254471e59e2848a85e570c5da1b2e2a451ca7611d986b9aa669464d54473a3d7123a8fbdd9126a4b1157ca445c886ace18b31c61863294c698e5ed091609a862072a5824815913a22b544cac90d796f6c35fef539ff02f052a3eb866e3031c72c8c593a528589264f6a7a4c99152e385e984cd528168bf9984c5c4609426932618d8f6efce3fb55e174ab78ba5540dd2aa2eefd2220dc19293e661c9410c7fd98c2421c77a609271485ec6a58a346b1586c87a6699ac6714dd3344dce8270e29a3665fc7374c82fa0108e918f232a49789802c39019ec848f1c190a90aec352e6c70d219a406a326f5828409cd8344de49aa6691a991926c384c93461324e98cc13d5c12f1c644853f4236aca86312914f1b8f7deeedea20ed20c153d859a0f6396b022f3c1e889ca282d2c79c24740868660328ac56238a494a2c314130b19f410260b133c6451326de0d0c14a8132e3a1abe0e26406863245baa4994243b38613ad88e3246084d310484e5c9c003151309ad2f0c51b8731c64d94aa8edc306eb2c489b8e81d4dd33427472eccc9125da512c590ba410b0a6654402365c69c38e996e0200a527fe722b1b122254b111e493b9448e973a20803431235a4b0658624d61459c15a5430410f323e1001a5498f1caa50539444366523fad7e7fc2bf145c99a27bee0a0426889932214c547d77d528a6cc0fda882e8773433bf5d7cefbdf7de7bef354275a4d2d28ca92788266d477312929d8ce4e8ba24b208d142181e57609052e3c4639b3939c102964dd3342937bb01317237bd8d2c2d8a13a91b2310a1820cd0645961062d6984387952841cb1428dace18b01b0652acd0f489a2832c6c8142fbc52d08c501da9b434e36033607a75d12226880e597a10e2070ca3e158490dc7332f45378ec2bb711ae5c2447564d3e6a49f5c50cfb944511dc9fb8b6b1a2722b95e6ce4d8b6ad87fef69b3dfad7e77c07c2951670c4f082111596988ae26506519ca08e7ee79ed1f0c518638c71d8c231e698be4419b204859920523c11729fc040044cc618632ca97002d2c3860f6788a81105c74335741491514fb1584c0558774919c56514190491515c93a105ae5dae0d759a025ac6d4702293210b19987603ae45918168e8868b26b32252a640622222258198d203491468b4241183820bc658c318e3b71b8bbae01e5f8e31c6786f3c3c0754d5919ce336fb3222a6cc1127453323a6c0f0131cbfce81e36745397ac231c6f86efa2b4d5f164b0dba5c692224430d489c28e229e9d02ecdd25207e11033732465cb99242451556c0f39b4d65fbbd8d776df2eadaf3d8f8581daf8630e7d4961e4e9280c932322524df430a54619aa61288b8f1b3678e28c102758986862a3dcb8522455439a5ef8b18388cc923355745042ff787ce1efcf73e8cb3efe1efa95877bcbedffe2e48a952a52506a4204d396e05a17335c7b167581b926c5071fb8a67d8eb63bd0ced3977d987db983936448594b29a55b7e0f9d5332e86b4e6d2a29a592ca6bb1c516dbce9276db13d41968d78bbad8a4a7a90bf9fde9ce0da26cdb5685ebbaf1f54cfc073b7d87762b90f327c76d4adbc603d7654fdbbcdc719bf6c28cb5d4524b35bb4917f6376dbc956f23953af7b98eab4ac03f1fcd31fd7c2cd760db486d501dfaf77b61378d8da059f7d36670bd74cacb93e86d935f988df6d8b4fe84602a2a995dc4a62e4ddd94aab59e1e582ad54a16489ee914f22ea3866653d5c964765e3a3f826bb62daba62f925ff1353199a6e4912175e8f7788db215732a0592676ea13a13480b4be8984708a5a13a6a5eb389be36252d9c13a814ab996b7bda29c5484400008000f3160020280c08888482711ec891f40114800f6a945a6048970da38120465114033114c32008628c210410438051ca599404003e0000e9406d6bd40a645a472e82956c9b68dcacd53c5e7f353ae06eb738b4ff2b555292ecdd3af108553343c8d010ae71a30c4dbc61d6d5146bf67fb202308c78fa04b7ec0da90ab4859ca8cd58d7887ba5ce1ed05a4383181260833d895c8a44d04e3fe8971a8f89d63aa9724ea3b33451321bc53da7f559616e812964dccd4554deea46ffba6b50c0b1d5e75186e8b25ddc01d8a45920a2653d859b32337d2bfb594886a0b3412636029df84f2376037c9126e04705682b1fb4bf09e7c89091d75acaba05223e8511d15803daf90dbaaca190a65e7367440f908971ad9fe1b885485a7bb84e8f00df5e8e28d77046376fa59c5cae44fdb9794bfec55b031fda8ef7f41efc949e1b829b37c55b3d07751fb893f8c6e7f6bc2e5ab12d6e2972898191b7bf6bc4a1a50e32c3d8d0e726695421d8c4749ed135a00b2d9ea94a118d9c80897f664d6399b612a7ac41babd3ea4b5cca816dd9b243d68558f9a117acfeb1220ba506345ff2ce2340613dd820c9b868823cf411dd411205906b0a3a134b5ea1483f6e168b62f2142508a6b9e95c802696c8ed81a841d2cc4c05e09f3f696400536137e39b6f6796e207c6d028bf6cc35705c844daed05e2be65e05b4d8df2bc9c930de45f18f7270593137cdcfe5fcb8d12926c76762dff57a3218f34c7643d02637ba41cbc5faf1b4ab242ac3f50930bad312fc6700d19ff27cc25d9d78c29348116bb72141c766b61de835146f2648b7193b02de2761e50c9c819b3fb3100f977a00bb404d93fee4df11a882fcd48b27dc602c47fc6b00dab01aa754c83165cc9bd3746d445d80851bffcbb39984ffe60ae15e26a1d16ae45ebfe77f8296dc7a9900510ff1b729a0b8c332fed7e759e86c75bfd548aaae2440586547c8afc8dbac69bbca0dc55b4693f683ebfc15355b962a737c59305dce43b741ffeb8e465ac5a174ab5e80d218ce3a100560c13a43f13e88bd6b393627bb0dc98a97931876211cb016997f1dfbc8eaa68a9406a2c85d27f0f2dbcc9a92bd9af4115d02d7eaed42213c8112fb2ddd8fb15b238cf1bbf0609819104b0289691c0b1e01cbb60d1109fb749404b4bfefa6c28864f774eb13e418298ac8dfcc034ccd6815f65bc26f2b5428d5576dcd53a11a34364036354d0b2b94400afc08dfccd31b9643037ea54ba91d6e5c88c4c9d03c56b7c30752dcc80fdd0db6952e854e505ca9eb0612ced928880861a481cf22e9c0f6013d14e19ffd10648920a1fe56535260da0516552b77e23f1e0eb7903945a6373e9f1bb3c9883e1b75ffc228a007d542912c2bbd5369851586c4e2f4fefc426c8b557f221788fbe085ec5b5cd5c9e5f8d17798c31cecfe83fff2092b06f24fc4d04e28290b4a8890dbdb0385e570858541bd05b0a9bf9b2f189c0b5c2dcaa2e42da9d21c261a6d1922353d46fec41ba54087a9b3e2a30b639509a920bb70e8b07ee4b8922a3a2c53d991593910b75673fa92177ee293e45846b7d6083f49bfe41591b06388c668990ca2e281c526f5d5cba2c285e217231cf7247ce6f2671a0dd504f2bb06b0fe0cbeb815a6c9e581a650574cbf8118b8a628d120bf4d7b152a5a4a54aebdc94fcc38a87d71b868d696a10780fc93e62adc140725fbd0347b913c361b96ec6cd3e3b17aad5792932168c6388607d78f78b2caaebd36352cfdfcd0e319de5e4750762cbb15beff5c60072b1151738939c8a63c0c5264974db405901c74dee756d18e58c3d0b914bc7a051c5d396473ff1433f6a8983b39103476a7b81ac1cd4fc53c496849a423f3b2464513ec3ca8d3040a345a1b3139e68f6c80f507e5bd1b3b03de3ea0f3676958ab1ceeed91fb4caf2b062219a385851e414bcfc73e7ded1198431ae7f04e2dc6d7f576304d03b60dbe617ced44e4b711b7fbda20026b253922636986365e2b5a89bc568079758dfa8e836e41502c7ab1f08f5a607669ac0485c6848f4c43eee2770f0dd0822b2f0377e21a1dd3cbb4f3140935210c84a1e13abdf0a0f904cc37d00d42f857cccd10cb805e11fb61cf04ba30bba3c789e887d84a0fe015c43c6540ff93db24aed08c89350086d8a4977a52daa926e835473bbdfe64a37d27a1f3ef76d11814b165a7b028ec43110e3b4752b6624a735c58a79bb1c36279a36a9ceeb2fe90f77ceaf8ba01719d386cfea17c6228f1dde8fe613d89ce2a0314ee957e400b67f5678f9082c212be92c62aac676da1cca189aefbc3edfa099b00fc2815e67db5894fbea58c9e999031e294aac4e6662565f3dea0578ceb8c02765b2a13f1a943c9490491ca3bee7cee187d476f5a23e3c4cb6bcb44b0ec094526ab1dce474c4f57859e84a351fdba75738ec2d9d28c12862cb1edde65b59821e5a7f9916932dc62592c0ee2e3297509e0acedd8eeeb994ee5311909617ae80a78b43a434afc59d76dd11168846789ac99a0407fc0bdc063f8d0ee1c849693899138d97cf3d1d68320cdd142f47f1330546e3042c43161d3427cc5653548632dd23dbf1fe5db4f1ba016480892c18264855bffe6c03708767961cd7019d1cda69e6220d2aa7250c57b74ac47fe40f339505d028aba050f8b02279a97cbde1f0b97e242424b3a2eb6f1695762c4f416bc19382e4523d6d63f44136d1db1131aa3ffed1faf13b12e24d60fdd73311c5116b98d3496b07be8e6c70e153f34f8f02a303af31c8d139b6024c07a017daa1c8a5faf028fc9942dc7e5c885a56012fb0f31ecdca9246d66f834392e4feb125d95bbac3bab621c0af859a9008161642981ab8b16c021c632a052e84edf09c955e07f6251fb74c92a47eb432070c7d85f4e0438365f9739d70ff68d07396cbe1ac615b36de440dcc70911516c1a090d24f45d2b39f46386ca01794ad2724341caa8c0f966933809dbc6768641ebef2902de76dc356dcd849f0386eba449d3b01a0bd972fa9a6cfa1d2d78eaee4b6a1107f4ea849b88e9847fd4cc67e640b664412ad7e55e3195b22728ea8d3b6462009d208a0e25325d048f93f968cfd40fca4d03ba3d9690066da02d944b3408306683a60f0dbd7207d0b7f1819e46d0684bdaaa3bc4cc50a40496eec496a1e4162a3a9c749b322fe922943864880e5128435eb26f70f5229b9465be7acfd44548fb520ff8f7567daa0fe151aa5700dcffc4e8f79f1bae8fa5dc425f8068cf1f2e5cc3c622217b1765e827bff6898b19252f5a9ee499b32eb469e48241992572621ab42c49fb70897f91d0d1dfec9761d66122070b4a14638939f82ae114e94dd826e692b629bd714c74a2d226f38fa91f9a0f2c1b1e5846e057a508f6a7da8a16f32bb0e9276e7a1ba33dc114082b9b99b3d4709aeed88f2cee9a60502d5ac20df0deade74c27f6168b6dd57bafe3d9ca3039d95ce92aee2bad666cee8f90dab17a8dc90c183981992614a5812c241d0fba8166f630adf9dbb5a35d603f10b389ae13582bc42785c25b5a917656d839fc2ba4fa5be01a8eedaf2c7e0362e071e3a3c21728544bfb4eb5416f919fb545861ff2eeb9ecff0a6342cf04ff84a6a25858410fe63eeb8fcd22afdb1874373da0df52e596c7142280f4ed513f6c7e144c1af9feef730dc3a4a9966b0fc35aaf10c1ef30543ce17ce57c468d09a5a7d088d7d56106b2dd62c1592133e7b9b46180d7a01051d2b23abc08ef798cc6d5be2b6ad45b9d256fa258f3a0f7628fb1f8651130505f0d8365237c275aea25254ab10811831b8e792180765e46b00d2a88114db6c42530d1dc96714710ba6a78642dd03c96da4594e94b0f241c396d5d961fd86b17df023bfae476ac70ed8a28d58e673585bee4c181403d09af14797859e735044baec4426293ab1ea7a749fa9688c7662227a97d3129956993061aa126c7e8fa11154867a38c1ea7b8f9ba7231c7502df898f95d5bcc0a645839b832324cc0de68c206e48b9433031ac84f3b58fd8fc2468f02c1a8dec6a186f79faa11609f314ae4ccb9c33c61b3a3851c50a1c3498b4434db510d05d79a5c356037a5d869c9105798cc89468c211b3a7ea3703c8af9efb8089865adbe6080e6cf8d14a083544ae472aa7409fe9eb8545261b8c8905f547d5e9406459ad9e9dd3abd20681e33c840495395cc3026515e597cadccc7e6d375c6e779a878d155ec23d482a91d3317a37d58515eb626ca811fdc2224ef7136035815ec64825331d04dfbff563667d1208896036a456777ee82a54eaa1287492e59c42a1c68330ca93e9421a187c34a74cfa652f01ad1474c1094d840042b4313cbadaa4328f23bc9c6c5a48636baea3a661253cb41621d14562e0cdb8d4736eb5e12e8bd0ce86cdc6676d8c65b88a8ef4f5164d38f3a4c1b60076e89405752980c37d0149377853b314814c35213a8dac74f8e9376d73be2d261c338ceb72c684d9e43ff63429e8839c7759c76003cc7a1a4c277a52edb51d3a84206523bf83b672fd533853beec631264432d5ffe5989e071240d8aedf887f7a8125665aacafe4c11b3d68e3f416e7305ff10e68b7ce6921af63420ab378efeb3c68824ee0d71c89ecc64537d6f0ec21f317ed2833958da5ee400478e966d68453eaa114f182482fb9414cc7c3a0d10fb7e2619b1cec5bfb74250a0a06aefda85e3e1eb4325593ef277e946e916a8435e17fc9840a6bdce2456b13ee43985e927a3f029b11296b3628fcfefd030a00ba8037c4063da86fc88df2fda14b507103c9e506ba6b3c35d2b7988f04688aaaa83b826d0f403fffc3c8018e4985a534bb67350399ca61b24d539e4205e2b1186dd5b7c2c809b4fd8123ad660efb40a5c69f183c66c8f158894250459e42c4a0a10b97a71d93621a6f91669237238445e8abf76728d78b0f580ed03b3de7724b5fa2eb9788b0456561787f96ea45bcc67c03417e4b8731bcc120048cdb7350f61f9da620c7cc8f882161c14343e93f36e3258d938fd1a8da6d30cc03438bdca712ed1caf25f824af5a3fd2dfa8297191b7e4d75a3ccecbb58aa218a065a4e32aff40b89f448abf2a7d6bb4e1d201390f17ff070565ee7d5edf6657bad0be0aaf989cdc10eb74f230c215250676e74c81ba2875cfe165a3340c996dc23c3b38dc092f98bb0f84a3c66e1435d2a873b5ce9b4d241873510f1a7587a699029791c38310c91011ffe0d00c0206ea6c80cec871a3970f4107d6c95856df2835aeed2c1c3233ce34063d99c65fb7bd03adcef0304634dfcd72127101de4e10f84a8ad893b84a979913e299b67dfeaafe892ef5636d675f179aedca4ebfc9a1251744fa63781f22f366b6b803144bc5d8abe2fea3f8ec31586010b32250b3011ca15921f89e990a9a043d2674fcbfc7080f7b0badf91cb1a006136493234ea0c9c1cd00525d3149d9c9292f49e93079bdc5dcea208cbded72441bca1ff94f195f9989d2f2b487b0eccb2cb14da161451d1f7bdaf790b781c2ec02b8ea887e0962fe8312cd7c07b1befdd02f6242c8ac80c32c616815ca98156ed3d5d84e8d482631ade825a16c9e049046adf6ba12075957dced854190a353334ef8bc5fdf52cede80652d640a6d059e19145a9bf84b880a3b7c7050005731c43c08fce79d68dccf47d0b9cb8d30352468320d7d00d7a2e99998141f33d19ab1b2efa874148144fca63286a50b618d434388406794034c38bcede814bb54c7304aefb77cab1fe7cb59e4f922303ea119e83b7f7e713d518d702c74dc19385eaaff00e2190c033c94a2e400a1c7de92d5f831438a1cc868ad7cdc5de032c04a5f0ca1e34c229609f17a2cad4b2263c884a747bff9243832700ba1be52aea4d7b0d3fef5c725ab772e487d751c7011411dee14de3286b99bdd227916eb1a54e71ed2a58d86d88464a151831b653369c83e565892eb1983b203b72092f4224829174560d90c29378e8ea50f0edd7aa5deb68766a3262a299a7b9bd2a49dd8bea76829b358835aaaac2d02cece6ddbc1fc8b39f05ebea2f0aeef54abaece03f2827ca5a00b4e27b7153162ade1acf818217790c4821432efd3c728d0b6eac9098d97602e0bf678c5e5781f5473829d0c9f1d07d1c7b27c447dbcb5d2caeba8e2df580d362efea6de1a048aca08a7620ad44d7c40b7c050a272c41d0ac1936b941088b2f0b39107cbfe2c9a790b88e236390e9b09a78e63166b01007159b17bd57cdecd47bc10b4e8ab7a6f3929f8b9258823d518e637b361aee047739af5ce44c8a28c222520c91d0f8aec06e6b46134ad99b9fa0b5e1ceefe64c8241c7b113aba5795123108a7512afb6b16d205b7d2bcc02d987f0b5e2a322d523b8ec138640bab107b010c3b76f92c1cebd67ac156c3bc60ff5e8bdb5941bbdeee925640df2d2e58ff2f0c2032c4aa9144d7c0ed92aaa812e69d9908b4a9a27c15c6147c8667a277d2f2f66faac8f7a19770d40f9e6c3144d8a10fbecf3e93f1ce11b1aa80b301ac9b139e533768667c1dc1f468e98b2e5e3135ea79c414114301c6b3d9852a5d5a917077d246d407976a776bd64a70062a9949a5ec82a3c30b7f8f6669be45f7a6487a67e702d7251bac149a29b0ce4c09e26fc5d9a3cb44ad69bf42afa7b640b4defc69dc0c952f1aa629ba7c45f2880915a67d3570b6e52066034e9b9d3530e1acea86c00b227d7831be08fd73ea3215583cbf70f8f01dfd1377110664bd5adc5e490a82d9ee5619e9171b3c46a7759a609d88bad96097701c03a6f159bedcce3e69005c838c42e8b75045486045e3a25826829e91bf07d8bb2a67eed98cad3b3ddad8ae09d1a4f74b22a6dba046f6009c2ab56d19ed5ad8034c817d5e50be7933c2dc8f3ab624553bae9a2e27e3cbd4506e902c520431f17efe3b154bd3bcf984f03f6f8cf36777e30b56e0f69e444a7c496f6b5a73ef7401818a02c02bc1774b84a3a0bb3a9e860f170c326a7e48d4acff9da05f9635f504d7818ee23fa2d52a58c513940ef8dcb42152cb5807f02725152cbcea2bdf439fa02ae5d8989fd018a2214a28adfe892801d2513f145f000a52683fbb2808e4517cb84b3d34ee207959860b482d160c82ca7e46c1391f148cb7c3064bed8834cc75505e12dca0ef9abdca0d8427dcb0c91bb7eff68d92f9d318c3a82ae4fddf1c789495abc6075b79657d8d67e5db2a6b5c7f58729455951f98560d6fbbb4b99230b24295738fd513fa33eafeda1a4228e6137be0b95d30c04697403c56ed7d48c38683f613e859213a4723e11c1eae8f479c6e594c08d3623289301a7adf458e28fb72337aedc6632fa10b78e1f223c1a9bc14192c253425144b2163f79e40c389c9c6e5862b42b4651b6aca6ec305c147675dbdd92ede01b026332211543af79e5c88781e41f02c68341cfa91c8ccbd7e0c6c938a5c0dca8a19f1a4249a74ce499c8ee7d45f6a0fd98c86c82528bc15dab23ef290016339842ca88a2c134144d3aab6201db890443befa35ac03f01685e80f5b1e8430d2b4240abce412cfd4a5bf46e11b50a60be5dcf26d3bf8948d678dc42e8d33794cbb1d363f6aba5d146c1264f1561ffe943487d2a79d312aa9aa6d3254ed9a580e22b0c4db37628c09f258d0a6557cf39e4c35db4f9f0667c271f0b7e1ddc12a0027cd771e1be09a2bbb2d298427241355aca2b8bd04a72ac15f0b8ac23937f1b4fac15b18564ec0ddf56b16b3ae468a81e00bc601c6cea56d2969edca94d5eb9e86501c98b72992006a0db9d04568ed183b85383564c92c1edb6857713668db8ae4899fd8c43071182e20061962d16f28e57e5cb1c61d7184459856545e020bd4046ca1673da63a92c3a7648fa6b881d8885a18b4e293391d276dc9990c3f6b42651e4d351c4a46c20649c685df9244aa26738adfafd9d49398ebb06635ab1c06bec80caf996224625fb7b99d3d0d3402897349f88e7c30488276daa762d56409fc86bca7970e05c2ee3ea888ad4a4bbcee25f86452f4a59ae48731dda77e319e3ef8846b4e62e463c89e758fc4f7ca2253e9d07769fa197f8c8d9f70773bceef6d6668cfb021937360b83cf59c56744b0f13fe4719ac1b2d360baf780e8e2bd18cc61b88db3b622de2cd6b3e6619dde1752ee1d1d348e894bb4b305b6aa3c4ae61349d0a5762dd32aa3cf22cd445b0b394fe46b46c8cdb0aac35f41275ec21dee6a316c64d178c05950294ca6249f56411fa55d654a7047d80163f7b4905ceafc8daebb097b013eb348d0e1656b9c70c532dd8c381d4e22aa9b78020a34e37469fdf29345b0272c505af0f762af9e24e3d90c177ed16ab2e3cc505b8cdf6dd0ac648cc55a67837c810ebf7e8f4cdf7ebe7c1e103fc37dc84deb595b8220971ff89b997bcb788c548eab25cc2af7de946af9bbc8da3385badf88a82faf36598fdad7312c466744ab44920a531babc2496ed2764dd1df6765359226fb8d75ef78213048c6599dc7b8c034e258ec57b4aff64853c56cc69473f83356ecfd7e60a7e4b332647a8039a2ca914075ee326f50f960c327f7da618a70ae1deea410bcce8a77eba5c466aeb42ee33a35fedbf09d6271fb6cb2ddaab653fdace0f097911235d353f0fab0397f30e71d9fbf13371df695897745884295a861973f590218f26e21011a04fd41cf1fb10191c83e1c01badf0fb133fde90cbf7cefb476362ff199fd95d5baffe086156481def56344a89b46c11a5d4695020d49589782c70ca6afc6867292f409ec43aab372ee4a06d31b6a329993ed98eeba52c905cf43c61c0bc9e2ae9ee061f7c82c866b8d1b5f66215e4ce4368b78a5e146e2b78ed22e76141c182d323d4604f7bed180339e2b81ac97eada3d3c22846e9992cef8b31ad366d11ac1eb081b65cf6c10fce00d5b3f8db3a72a719cb3efa3a003c720223a7264813ca9c68dd134a6ca561920f204547570ca594b652bec00604e192a24b5fa69d0d94e7dd9d0c8b8049137e8f30234703af652f2ce33c651646d4f20b9020d1b43d2e2ea79172ccf8f12639e19eb435af80763aeb2999356c949f328b5319414525572bf1c550761a92988714a72bcc416daa9ee1062ed9aba0ff12965d92e17822f117d30c3800a241a46f41e52645142253d2c069aea48f135873c5387e25063a23233ef83e0164d59c509482d7922082fb5373b376f536868535993f4d8edf0f20d27135c66aca67a15b038aab95d536e5fada11aded62c4e93acd3a3fc3a7ee9547034709732fc4a35dc43cc2ddea884ea6c2df3321454fb2397f6fa4aac9dc1e0708a7035310cd75e324f4fd42503b418400fb6be384963dda37d1dccf9162a2377dc78128b83a3104426361df54be51e560912a008c6dc7fbdf05a0a8c9069fd1c4c9ac1525d51a087c1eaad78d59a9b7018a8b406b1bd7830759a7cb915908cd7c70463030228794fe7c3b2b2c5acdcecfd27968061f7d0027452d33d40112f6703aa5287c90e19ae42540218f90ff2e870993884d4aac9431b5d9b96b54ba1d5351648f4d5fdb14f25220c630199e9c0493e45b3b6f607cf39038a6579935ef09a87754ab979b31147dec5b47bbfc2d9d8df46875c6f26cd4929dd492cee2b249dee888d9907abc5ccc46a941c0a85a0f4c6d6d7a24fb7b3867e2d4a06d316d48c6361a648f8b2f53c50eff1d89f800b56c30a079dcd76607a33d70934b120ae82a19ef829f2e033108f114187c2c8d78be8ef480a114b963abf2340fbf58bd25da774860022a7ace2c1c521b20fb7b0da58c7d777565fcae4d5dddc865b53101882d80288ee00689fc5a82101f825e79bbc62d0ef5a30ca87c6831e9d63e0a729ff6fca27ef770fcb458023374504c56347999e0da354a4d30bebcaa844703be95d42241fd2faafffbc312b8ad25c548074608a3e5a357e6299492826b28c55135207296cf630dd7cc99d701df663da2e2c6a1f45d16b4b6179b01c6c11c23606889ec13bda89038569502f8030027bcc8b1df9d844e111d3a5e869aa49f1bf70326ebb8bdd4f1bfb7867fc103a25caf2c53feed5844875357a5ec273bd4a96c4266f2b1508fa99721ff6e5587ffee2ca882c2ebe95059cab987c3f05006080fe75209aa9e584dab655deb8aaa83ba79d04939f01f0efe7704cf178279705e570c6ba7a0aec554ddad811b2c400c78e0b74e946553def4ec342578856ca270c054f91aa4a49f8f8806e2a8f3ef73dde5bf62195aef17217496640f065b18836004a4fe067e2c6fbbc96b155522c881a24ad78004f04b2ef49ee64959dfb0d28ddb4a7966452fd3929acff3e054b013bfce8a2adffbf392ff6c39f8c7c0f5712e0f9443c2d4cf2cf71854a5d2bece6a9a050f63c2f193d500454c7bdd2060a93a0620baa65afb90a11c1d72d3909b3316659446f3c1fa0f7cc7fbc6a12235f82144c719d941a2a33fb50a5d42a3b3253cd0df9b01e026fd6b3530bdaaea758c7b5bc220f1083ca7ea5bbc455e08aaf5bfe8593d9afd129ab722c8ca793276ed7b199685a66cf322c84d3886120145e0ae964aa821760a4d1c4cf261a1d0a81d2d4db7dbe94d5a99b0a2c462004815745a0b8cff13b328e19d4983857e379c09e29bd12556794adc4e460f632858ef33c5abe6df5f924d44928699f4a8b3dcf963a232d1092523b482e58465f3424a3e5a51b4372717c04b53f5291899c47157638b8b153f353c2e83107aa8e6320a00233bdea056c5d541cdc58568c50cfee325f382457b4a027b7ea52ca544260f29e1ee8efff0d0affdb015b418f58345fb5f0e5e8be4dba5773f5b068c4a0ab589f050aab04837c37d42faf3d193ce26e54f29539e9007f3c37979317e89b42a8d002b4fe9032c81f7f85134a793d7b2a720f4cd94eb5000e3b6c732989dac2bf1c9c457de212a429f100cb5f172e139b5c1db3f5b1008bd3b27e01cf06c5e09c18b3c188d5747087290d702b905ce689cfc56728cb4bb9e33739f05e29be472cc37a9e908d3299f7a2e16054186fd471ad19576378e44611a0c9843c03617f1f05a6f1245a5efe383071ac13c6958426f463bae93972344541441c487f1615deb5d28fa768873ab6747bd21c90a233cc1327a176a8b1230e86ccf4e8a7ba04348ecc593f72dd36a89fb464c7830b480190212587394e7325affa8b4a940239780fc759983236917860eb7920c4096abbec224ac0de074e991bb65c5074898b4cd467231f681ed2c66cb011fbbc8c373c7a69d384164b3bc57bd9c6da32d249252ce443bd2a456b07ce7ad05c67c73d62958b55294671774d49679504dfe66c1a7976330cb6e0e6b46d27c71238e948ec33c5d6167b227a369e883e9ae5d13512518fff3ef8284d124497e4f5638ec6976b5f254ca5ba5a4730ff01834fd0b8a64b959bbd14ba6bc4d4bdda8ae89b7e7c8aad2349f3dd7f9a37d8939f1d85bcec5c679c450e259a7d78c1391e154cff019b4dc0e38d89071012ffd7050af6f1abe9f0f58c44846ab9c8d5c4b994532486a321b83b8991b85f7b698ce8b61d84f686fdb60beb4367f8025064d2bccac9069a7cb01b61225d4bf852b6e30226bb807591735ccfb7aa5e1b7321bd615513a1914035211c061ca03bd8dc27951d373b88fa0fe5a830681730e64be715714f8a8676ddd28e722b004d1dca55f81099a46095e8750b3943a98ceaa47360cc7e71574e01e09557532896f45901431976d3d5d183f2e0ffa3c12a09ae712867017880bc69cde6a1e14c0b6d5e3be5012c58c48a2838aabde05936227e1d6f77fd53af8bba540eaa9d01b6952acf4ca5a437a00a00c9218a22eaee388089fecd2e799107021d584a158eb3f40b463b651e09ef64cb0ce4f30be706f51f4d9de4c583862d5f1de24ed691ff2cfee893eb115e3d8fe6ece0c4e2da67e52c5816f03affae788c89cbfd5d29a80e4b03e47204b09c2609cc41df91e3c4ce0d3ea6a5d3bbe9a5bb6e67581c70f677f28e0d61d894b742023ecda0ecf890a3939e63da27b04cab9bd4daddbdf7c721a074bc2a0b2e4bbe58658945039b3011d85e1a4f2b7d6b8f2f4b2c885100ab710a66f86ff68fc751115f405d46025c196722a7f10f543a0b8219158239e5c52ac62a3ac6ca31cc5021b05e96c0b918000e44c7ed11d70abf45d9d3376ed9d8f7a6171428626b2eaf3200f6b78a62e46273df89e30009e04221bbf81a06b5f76ec9c7576f6c077ad6e09c343aa39176b47cad696a9a9d5cb7898bda1a01a1f9bc10481de52f94476b08deacbafc70b93c1ed275f0b57bffe5eb977c6e688cccb8ab1a71f322d925ac196aa84079a0728f69c92aa1e2270e194f4447657ddc259feed9db269422edb1447a252d613ad3daa20e29959baf0bc4676d8d802ef25c053c08810c105fd4ba845110e797492ece6cf19100a6bd950b3a99342231b0dc4158c12c8914f80d5088bce46330e7f873801764f7393aafe08d799f392247b458a170488559ffaa5824173302d94173f94e3301ef0f7ce5a7b9ba5664cd7a606fc0d2e94402318c2675b05266a97032499330cb41c0d5e8f47908a191a891f470a456a2f2f17cb9b1828743273fdc3798add1d3b096b3f53e608b45d9a0adaa673a78fdf32f3e2ac20c376f8b7b21d5637ba37e33884ec4b46097ec353bcce4b8255f96d7489351d23d6ff966ab843d404bbe196b405890fb2b1b03f970a502646c0f8b49b2265005b14766a1ce376c464b7b7e4bcba2528878db36091a4f3a9eb2e48b3f7b718a6f0c563906b2e566900411fb696dda2d4fa6d9037440ac6bb16a0f57337c6d88287d7567d39d97059b7a0b3110643943853ac9ec2acc97f225e2a50c4985e13fa09c22891e139ae58279d689347a697fd8d02dbffbf8e9a978210e15ecee50903bba4693bbbb1bfd68c527a003351a970dcf83f6288be20a958f2ea25801c9c24a9b7ab4922b3b75b09228211be5f42a5203c0ced9503fcc8733e34c4148dbb2a9962f669eb7da240c0c211d085014f50a191b68524ab1eb516228fa32d10d2aa9a05a9688276d36f0e81432bc496b37b0a401051d4f56ff21df7ce1dbd6736698359437091de0b5d586574c8fb94483ca464f624ddc005eca4ddc55d20395edf0ca1030da729c270fae8dafa172b96f3c17ec3348680a59dcdb33de606c60100a1aa1573ed2fd138f06c1c75faca38124a1904d3f4d608ecba0159b3c7eb4d2b195f65a52f80fe27b543a6b447b54786ef339c95721c07aaa98d022340f944d4e631cd19cab90e6899006d77dd599df94ca493f2a7de7c5ae00c72c15e157c9275d8c61ccbb8058f04f99b1b1711e32275dde54b008dd38fbd28d79d6c215d8c80e695951947d2d4040e9039eb370491cf6e17b2b9217c387a8fe3497f04b8158a9f7d1dd00b31a0f8856fa0b076ae3a30e04044eb9e35e1505bf36fce31a5457d51f69582f73496162402727c5b81296bce37fe06fcea2e8e55313da48eb41edbf62517fbbf9aeac11b7afb14a4f004ef91fc0b0af4a6f4aa09b589bc27a56def15804ba4f32718e595a348c4578a28dd161e7928549e6312b26018b0e7b4e914f4cb200253373e4fead0c35d2ab4944822c9930aa73e2d282252ace741862c120ce896cd87765e339bd0dd10c88f3a592c360caa63e70cec7db2170ea6007320118f9ee880eb1ccb77a62b5d6240832331e4c4270dd4026f6caaad061e016275e010070c8841d317d1b748a3bb2cc4dd42b42d3f1dc48181c37139aaa9d18e1f46ff97d6cea70c3a2411c6df812c42831b0c5f24c820e31aeb86c2b75233db0a7a953c0333e6f8550a6a2c09825365ddf6437b81b2383c7b46d9a01baaecafac97f87328cad0f061d4a778b14d69352e26f9d1c506164247904ea12451dd35a156a2368910468078bbe4c6e831c8ab549ca0bff0e464b9981123e2870c0b0de86d68ac8183b95765eb23645542a29ffc2a69e859b5ebe87221e149fcb321d87e55d8a68021ff271ee5e15113601da41a8a498a84d439aeaf322047b7d6ca7854276c6dc476565dc86dbf1fab14030397a9c7d4db1a22d2bdfb6cfabe079f69a1e3472a7d40e1e08f63eeb834606368e2d7c931342a70323d8c679a30ff073cb5c05ac70961e6a7142e1d7b64ebf7827e7dcc05c00e30a318770ff2809464d4b47eb370336ba3b9f9f77bf77a6fc02be5ab02d6645c9b962ef0eb4fca785dc5deef905903ee75858ac3f9097d2a0c59257794795b27fcc5e58a67f01aa728dd33f4b96df97fec766ded69b0b2e732b38f73f268288cde78ba514188005bd31c4ec05885f212a1aadb4ff1cf01298b3a1d69dd36abbdfae4ae059e266793871f9ff9922b0903bbdfd7cc330d78cff726897474aa8a75cf06bf86923190ba3e67511a322126d095846a6a491bba5af430909d6c3a85e43fd7f7672b3e9c8cd43bd3f6550a7fc376205712cac8d31a74640e75ce22cf6c5e2fb85634e64f07535f7a0be759d06949dfd48400aff407346099659a9c1f83662be8d0daaddde961f5b3702adc035b42a17140a3a4b712da0a0c82869493452b27e2c2e35dd798ff4a05bce65fd017dab9e49015992b03dd19c5b0613632fe8edc4619656dc078bda1d129a8d8d6da6fbf191e0c775ca1a4e8bf2b9549a8d230ad37777593d92d401346ac44741d9c05ebf1676efc65cbbbccf5115adb5fc2c6561d6d62ef6fa30b3787c119a1540d68d25c39025f138467def5b72ec5753fefcf32c54ecc135e43e111e812c606000dfcf4937f46ef06671705902266386300ae8f76ead168dc7880f625a64a8406cacc7104e9696fd8c97caa068fd04d03fb669377ca6dee3f50031c8e86ef489185214230ee1708d28702d29a4803c5a6836ecd651ccae62275ead75ef02503d728116cf0970f7580d4686f3985fa23de5eac3f56dea9486f341276a0cb404f3dbc86cc44ee7e3d6043d8cf6ebcffc04b9515f46120618319f9a5e522112629e4d0dcbc29a992a681964dd7e57a8ca81795f9d07d591c8c5b55e90c824e095fd921fc7417d10d37534d81664c90c144359c450d125dac4398eaf9e44334f103e5b5d20889c614dc7877edbf194c098ceaae183610649e079043463389089acb74ba4d80de2f660c263f68105cb443b4c69ae26ee5d03673134a8e3a8d527bd168eb88eb67c627201e941d23252f628e0408654b1ab25486f46439a70b9d277a1b892f3378b1bf7853b79fa495e9efa578c9a82101ef667e9ffc70c39da0b99a49151893bf27c39bfbd441f85d7aaa0236ed2a82fca72b3084f7e6b3b4729d9d5bda2824175106e48121ef328e23a50d1d28de1c1116dca679ee05952a2a7a4dcebc4fa309874d7fde8db1db81d459e677dddf2d2dbe14342433b4c14b15667a8fdc8551cf4f37b0250687f715ecb3757ce13f43432c4f8b1958e45d50cdf4746be7bc9d8281d457aade8958776104e8b41c9b6d022b1e7d13dd3bee71dd68a60515c4501c4780f083d3d3b61241c6f2a408c441607b00c5ad1bee5bda184cf843e18b9394acbe5d048fe494961284b875a78291d010c6722c090ed1a7cdb84c85ef3e3d8cd49c925912d3a8db721a1eeda164edd129a1aea123ad4cb730a658a71056e5bdfd553a4f33baa977313725184c701ca54828a83a45042b9882e53ba73c0ec8281c2e5ae8c2f5a0fe04d466285088937167d6de5770137918043564c44bd24884081ba4dd2bd99883e0fc0c8005d94f6f9ce01b70f912b6c2fba3b77144633b39905576d9fcf04612b599af422adbf1e9e639d8057f37522beb59c1b5d87d293bf42e42eab17f28c5f2296bdfeabeee8a027b6dd8599bf7190689bd2bff14d9b0770d4af2d630104c5753c686243b94182b151a1dd3dd5ad693777505f30650a95db348f2d07ddf3faf2f6f50e01a79cf4c1cec5b08d16718a19d3548ed9e7429939b08fc4cb57ad4ae004dbe480ce74a8e193ef39a097046d471f4312a801d34393aba238cdb9740916906d90712163f9017941d81c9ae867fc28e3bc069fca6206eb5e4a9573c6c6a72e9f2963c44ca531f1f982a682c7540c5b0a7d9fa655e54cc5e530ee325da6f196bcda9cfcf77b9695f2c2357bcf743c41b65eda87cec5281baaf97b08754b8bbcb3d85559952d8855f1ecc9b15bda9ecc12650440871434a540c078ce407bbac0125344fde5b60ce5fd6bede8f2796ac5855a13c507ca045dc0b61dc2beac0a7cc06ff9cbb4cf401617d8d4cab5e8cda63921879c5fdceb9bf585465ca2275a7831e29324e236b9fa922fd5a3276e290e79a04fadfa3fe71925b0d12048b2da59137c56324cd841d58f9d207e27f3a22737d6a9b40e654c360846581d2f55c782ea69e07de92f0e8d54210c9441a2cb03ba238b8dabb2bd20a078dcece9b705d56722d0003295370ae24546b10dd11b0579619807737093c2ff20c92076bfbeb93810ceaf3c6c407bc1963fd7ed6c317da2d64981d62ebf326bd4abb7f04dee8f2c4546a1249edb4422e02260af24967861b13287563e977055d70a45c43e18c506b8382ffaadf441e85722cc9fc6edd9ad9fcb6d28097ca06c46bc12314f66aa3f8bf6eca11618d780d87757e730ee34f3bc60e206c47b9d37271dde5733e85c0871c2e10df5c105b79e8efe9a65d64d6c278c8750d182eaace3fe42d9f0334c04d8a988d99b37a0b05ca006a7abb8d336e9f5e995349ee264f399220e0480a58b00cb61d416132a36be04e5de4212ae64faa342a50241774830abfb2310158a75a611e1296a1a443fb55ac4174fa2bcdbd61c8677aa2c96888fbdd103591b1ee1cdf44eb126a999db5db966ba43d71d39864b19910032961078df5b6a71980153bd1bc4b73d5e15895b7645d37b5beb3c11869809f08b940edb214367becd4824b912c48541e0ab5bd15305a927d43285c921d5fe778cf60dfb1439029a6d1d0a6a3bb3495f430630780d2114c0cd0030c85fa826e29376907d7af5087512a04e7d67101ed347752f15cd7d111b49a752751a9a09db5c404ef75b54c4655f3a9404d3cd36293000f50ae8bd8773462eb403ce10ec42952ad3565235266140d3542936ce8983a57db9ec38ca0cb625ba8b7aa90d8b330aed29568e7f116c476de6ad781c4e0acf570f032410763f0ade2497d3ee4303b7372b0265500e5626c7e67fd5357c6e3529114ee0dda0cc1ac5bc02555350dd84f0d72fb7dd0e730d47be8c1ee9031ea0c9affa195b7a5730113fe8ad91f71428591b9b8d56bd710f287231ab4266da7527b8bb882ac5ea47750d0ef99181f32cc0534204245f7d99c0a40f69706a5169193982eda949b1719a366a3dee73748fe946c2b5c6d901bf972b38a8f9c5092a9d1b14a31bf579e52618b92822ac1cd267d1eeb4993e3cb1ddf6ac86874b323398a70380e5c003aa8cab7a9713aeb65a98ec1b6f9c71338fd8d31ebb2437fb90a2ac40bd331bb7e748facd4816c59592e6642925d4783c70d5e5c7a6e3d857b6f295bdbf3774643499a4ac863d37baafd3ffbd71cf92f269acc97e655482b0748c27a3a14af66f50db28fe44d6603e0e82d9b7481a0335d8a83ccb409b8a9da841cdc392fc8ceb461eeb6e5c3e862ddbd89e6a8ba67532b5cebd6be30f302c97af1480fd81d8e4eab06870078fff6ab7332e1c64e3895929ec2e539a2b0634312802f9a2bf83c140d70584c738534c7f87fb2a28b9b6910f15e3e02304b5fc675fc4f744029850b800c4286b2a8d0b0ea4505df68118e556f5d21569f29263b4a0e9932630b463d291d8a2b2ae61c072796b3d8ddcd815c415e2582397bda72f21b666a306b575c1cf67d8b92b49164f1771aab36547782b17c49dedd0e12b9447f08fa235068fa0b04807bcdaba1105dd04c3924c9d395cf0318ee0e0787513beb23d6ab379c40c8f00cb015a670b290da87a1259fe6f4780678c9058f61e9860991793582870fa67458416a5678855fee77c5548ced5f1954c501ee2914e6dc815b21cc8333b28a37ce3f8e081ba12d7de9130a32b637b4d3008831030b2a14da46d4de9619eca20b62e0d5ba9fe7eac7d6ded1a9398ed54b86ce0037a6e5ffc51211c611f1fe1189b2d852d2baee9330be1fc710b110eb6f86d49289cecf68ce1633944d7dae8197c89c0b4111cfb6a63e23d402d257a9c6660bc170df0650c299266a09e08507631787f8f19f10b6d0658cc9ad18b401f37a1d9e0e8c533020420651902fd3dbec4527e5e8687fa81315e5274034c0de62531a89fe4a350eccda28c807d36c28296452251ed89ecbe38ef8f043cd84801e1158cb6b1c88c06d2cc5d053d1f32cb055be0365621ba032401962e7d1a0c48b8e8827608043b9d68f0d1c463ae77ada45e8ba8b50ee244103fd574e0826e73f01d1950fad8e1063f236293223736e060d8b785ae6f2d9c5757b341a76816c75b7d83b803e8130839c69f35db7267e5036c075403f2df8378e213c6a9ecfcb685bce2418cfd421188f621db29a9d99ac4b96398386008009100ce9904220217e925fd2674114fbb0f847deeeeade8d65f692333d93342e02ab05d2fa6c27136d33bea5822c90ad4ae4c8b68c412fdadbb05dbbffd15462d48000591342482b725072dd0800ccf539ff21e46851b430eb5fff16278bf05ba30540b6088256ccc6fe1f13226e8b14c0a9e964a7d95bb69409c878507ae409415a2e855f8c9353c1f4797c63b533321d4779ec3b782c1cbde36c7da7fa29477be5ab7bd7472f59a654cc970215529021c9ed12e6c0db2584528a2a378bca7540a618fd84b6e239764d7e75907783aea4f3ee38aefe584c2a940cd4125f2f51f824452c5179147dd93d3ae7739a8b620d61ae62768059199a12672b7e75f15df3c99f70f44982a91abe15be42a0299ef4be6ea90ca76fc77640801cbc19d52905791480b91f187906a168a589156baec000599443236e29310d8a084ba14157f92a37e6460594720f18b862328792f7551b134dfe7cd9b89ee243bc75e2698d9c549b16e0a18a6cef9211fcb55945415816af78f39235929725c1372ecc5c5a8e8249838d3f078d8a0c2c5f178aeb11c73ac20ace35e5f1ec6707a1fac2393bbe24f3f602de8be01dd5186aa465546ab54e2b80d64c4cb45dafe03cdfa872f603723d98c778be0a2d493988a5a70a4073c91eccbc4fad0cb6a6d51470628113fbe12b48fa7aa5106e8239c18548df926ebb36e040a33403343ae000437eb8d35c4bf2149efda542543525138c54905fb94fb5734ee1f3835700b9997c6bc1ad28d6c0f7364fcf1c24d2feebc9fd81d464c233ad1886c43a3953457dc689b40193179eb338108e017bfd266c7bf4303b2af7120c576eb3de281a42ca43a0cf62fabb1fdeb145e20634fefe05bda18443feff5c0cf20bbefec3d3accf0a4e10caad901db6e4ca7bbe67feae9c7157e71f7bf26a35fc1ef3cd21fc11c8eb325cf87d5183130cbe472a03f779ed53503ed4e04da0d8c82d7b2d2f113918ddd310b8ade7c857942394a53859fb373065b020a1e70107d7fb5338af9276c84d0832a0a3af9da8320e4119cc4b4081cc193d343cc8ba743a4feb73dde0aa2926a34654941610259c969080c3e2953e34ca8e416e02fb31ef55e8684886e048435760e24ed1aca734d86868890bea2f736012ca30109a19460c65aa6d858d873d35d034d6b09254582b2027224f01dd2cae2341126050c07ca739853d950ea4427824bb804f465a9f4ff7c326f7d2553dd00af4574230a9536f19a83124343c867d22c8171cb0a8e5480941f990f84c17a5d2c331f88c235c33627331fc8d0abaef0787e27901e42e4579d7f344292d8fc662daad486b54e8a83f53ee8c861a49ad6c80f7f74408c0059ac65afe92e643cc197b8c0a49e702dca7304553f690efbe903d8e906bbd24dbefe850408a443213597f69edc9c664941065698a9f0401c535e27e2419da156c30302aad884d1529ba33cc8413a38231de1e92208345867bc067a281ed5a2558c169b083f4c063b70dade86a75a171ec5f4b72585c4ae5b784465f32f2146eb46627e485e35f14859404c511f63a75bd6dc1651efed8c7a210fad7d6455c223c993f3089ecbcb38f7e095cf72e19f25caeb72094bd7f69a7f25aa708e17b40b0840c22440e98b07cb609388d965e937166ce82e9c1c6d7f8da94efbed7833400da33e4b8b2c9999f82b250f3ffcfa77aed6d7ce92a766a38cfb80ce40c123675feed69b728fc85456071c964593dd37464b771dcc8a90e96be86102fab31db9f2e74a33b0777ded467b6a37d055871299bf9815239abd9bc419d1b9bf08e67d863b200cf5fa9d07d377038c802d009996709a75e9c7e4d813a8e71c6125fc62bd01088878e046f43c71f4dad2224803e78f9abe346e28261648ea27f7a88151fad700d1f086ac27d5374812250cbaf37fd6b4651ecb7b9c9d09b1f4db360035136e63851601de6ce9d8511402b4a2c6f9cdcfc03817ae75bb573974cb13b41a80858d9bc58739eb1026820ba61f70ed406c6758de7c0e4601d3476a23011c1256bf14d9e186328b1558331b4363579289f50b1dd01d498afd0852aa9739ccd42109f6afb419943550a241fd6d86ce06673e04d1b9a84ef595171c80b1d9cb0f672a2a90d87856eaec19881e4608ff1844be581afc98e0d8fcc7da48955b3354daa0d9d00c1434636eb3efd4f4416252b04daf80da462cf3054d2a02ae47a9a0610bf00a7679664cc63f723dc40500396ba7554606553a74f4bad9dac3ce629b114066ea4a29f3895f0f2d1a29088e633bd768de0f4a65480048cf39fa9dfe579e8212e086ae96dfbbd26de288fc693abd0792d6539fe6b02fbb9d5e0719ef768c8ed9236d1a8c400862477bd862ff9f3e917f40566d062062dfb9eae41915e80568fa61f062cf7fb0eef07f58f59052ec2a3a6bc137c89623d94283a18c164420bf0cc6e55a086123fe493e9d0208b26162981ad907041e5e8883559fef6d10fdf4f55ffc3601bd945a10a80e5e4290c03656eeab4ee237d762ad26d1303f2cd4bb80f17e1cc0f22e45bbba06d837a54b00e9f75c5cc1e62eaa03d09f1118880e1cd38adf7400072c0300f8c1763163072c9f475e20e1fa35e34fef0013cb9d4a12bf55bff006b13eee8ad665910eb0200692d0013b44ec60c2bf155e4f3dff20c95bb49598cbb948497a6b32fde8f40d1cda22cc5ce54d03e62f84ad0aeb0b026d6d718a1076cf293fa4980c08dbf4e47ed8ce20f03d021b3caf05dc963f1837b1d822143484e25ac0a9137163dde9479ed595bf9e6d14e5e5d0f65b9e808df3e0c590948ad8534cfbec30ab5cbb1888f87a885567033c895f83f0ae954d1fe6dd05f0ae1cc98afeb5956a0f23bb945923ff016e18c3f3f50b94523c796c1686655f9146163136ef7fcab1f77fe721a9b30f12a0c1635a14c6fb2333295f760550ef5f8e41076c384cdcb5c2da71076ca6d8091efc67cba805d133d0fbf07ef5e61103dec64652c24c2e3255d5204ff67ce7cf883d0ade3c54dc9574f8ea17595adf0527b969783418810e2f63c0f950df17619554f1caa57eb70182241693486e76abe397f737bf1fa1370b34a015ecce02fa2d4e6e5c40d0324a07150171283a1ac1750a5728dd21d47048627d0612e2f246e1cc8865c54774db76136b044ca2c7a173d0fdc1e780d833f48cc5e21f61f8b97deb232ac5bfd44c301538265bf6ead2137bcd12b2bbedbdc996524a99524a016807c106a8061e1425c334828a681f9a5e8007e560fbf64b5fe921ba9a93324a8924633bd7f219a976509cb2634b8934a79c72ce2991a69c718628a3f4c848edb98cddf2086908183f1b1a80c8cc80d43d2958a2aa01950827845b218c114628617c28258c90053621e028b99ae3eaed31e3e9ccfd6acc678c1173775e8781f1679c99cf542a27559dbea494e9ce6ded8cdfb9e8d1dd5dda54ef3e20d815331eef6ea612679cb119eb29a7300e7f395d72587b55267b0b45984a7b3e6374ee20e46811ca54880a6418653ba1dae84019f8ad95dadadee8670e049a9f61fb40e08fdf8f2342a7188429ac23663c1e39193336d436c526824d08385bb2f880c4a11adda7fbd421d4ed9f8ea0ca0f7500e9c88139c8c5a22e582a02ea16ad86ead518bc611d42cee91082deeb30dbde7ea71e2eb181175e55fe520edbb7493e3c060a7c0062879f8154d89c6624f679f6e91427b577b4c3f6b1cf51fb18d9529b290f9b0a3cc4b6d58777e61f91a1014f7f777c786766bb9909b8962d37e46067fe04e4d38e48113ee6cb6e665ffeee4c603e7dda75a0033d0471e9d999ddcc7627d09f9f4d65209363c99542b0752ab4c74f81b6cfc6c66f5458f64e05bf619fad619f6dbb0fb5cffeb0fbe1decdf0f8baff75ff639f13dae3a73320819111507c80055aa876befd13da4361df070a9ddaee831585255a7c51f7f97df052caabba0470c18bc4a64438d1fc63a5ffc51823a5d4a2947e2ed49d1f25cb6e1907a5dc469e01b6c03f3bebbe4ecbc975250ebc2196d457044208218450c228e3c308ab8047ce45055b96fb8ad4e5dd0a2151929f8a80ba443e3df59b93bf1cf3ccf4f34fe52a55a7afed2ce35929bba57c9d9e922b9c81716c116ea1f63327f79983ccda957f392e32390e916a9debc9a6e3371bd56450cc6d6511b8103a65d35e92ed1381883f9e20824d7be468d2d8e0f353b17d4b94fa349d1176748a7fdb97c8e2088c4da4c861552d6c4208b14e6d8ef5702f0bf30e85f6668cceef17cd7824d7cbe282ac909970653c22e45290a2890f553e204aee82706581ab777cc4ff9a7da53d1b476c489dfae897bebf933ad5df479b737d7f73b139920ba2c92f3de52e13e45b52e8d053ad97f27d2c8e7f5c722c70a5dd29c93bfb57f48e33b0caaeb330b16d7b28744a7ebf0536c70f7080ed151285c4faad516def60698c129798b410bca2a0820542402954581811c00a5ed003181d4c011424002a940842ee48e123a5944ae69c3306475eb354ceb0a136996df39f973ba8bc66e91871554f7a7a7a66f07562882cabe201c6092e5860e061890d3feccc229870c26202053820292d1459b27c018952f0c4979e3398d0218888283188881ade97e0b2849725d030c111089378b58425cba0810e6519d2328434c465c8cbd6f0c4a754fab13e0aa9e8b52979cec2a86671b4c9b93d043212e42acb08242f301aeae9e9a1c19728055e8caa0c3390a245942561fc90866a8879c35012c8d3c5861e21bea868504508249f271ec319385825194240b1f0017ad2d3d3c38402d5255255015a2d92642003366b60d2c4c84f121b268af469a40cef3dcdbf0daa4fa934e79c4a6093273f3275ce39e7ca49d7ac0f3a2b225625a5943f4690ecca0b0f1b6a93d9b6256f33031908a521c404110e41b02088264f50524a19c64fd76c904e184e640d82b6740004216d19082184d189275f2a84441d60b1a2045c5a9ec0054886781b49c651d76cd24a878c2f57194365502983e8089d72ce39271a4474cd4a41a3ca868615141a58deab41882473cea924871f8c40e28b1827c8328319653c714310ab15202de10303013465944b03105db34354882a0d5790dce03d72f16359a59fa6010a7422a4640a412191b8a064850a24781823490fd697538c110b080c88a50624503a3092c402e3678b7e5061322809b2ba41932641404ad8204a5003aa10c3cb0d0c80e4bda7792530c0e10c2aaa48638723a024f1028b4005304c152449326594524a59b4048d2a2513349c490eb248428c6c49110f9d98e2cbdb7004062171242a9be84f7a7a7a9acc39e754d575624b529d5355759afa943c60195901eb4024a594495a0a0ed70fc3c0444a29ad38d235fb13a4638513eb3fe050ac40c102250b142d509076478a0a66891574ca69c539e7a4e2354b7f9873ce241e96256698a839e7a4486c60b2c3ea4a9313eccc1fea9c464ae0003f0003548c3146f9e99a8d1244a338d9504653b8c08932bc6444013a383172440b7c60f0c18729c6f04192a4eae9e9a98193ea3a51e527898768847bc10b5fec971e25fca52e911441fba5c6152ace0802ca7b1023836521e96122043402c986da64b64dfec04063a831d48003920562c8078b53972c5db47441eac285062c35ece0d9442ab11b54e99ab582258bce0db44c1a28a594d2196a28baa68c524a292502aa94524a9982a22335a63803084a746204020f5025a51dd098203002346511086e90e10a0dac691952c2080ebc68d103f760f4f3c43f70a4e4dd8ba8e3c5bf20879e24678451444608b0f0d9509bccb6b1500ff5f4f4dcb02c54d7092952586887a49432496f510b6800467619012a40059c243983891624698203142aa825a5945390ba66b9583b53bc589609aab891313e4e392707df82dfb090d7c4bfba6fcbba0f153fcbb2c1ff9a688deafcf84d64e54aa7b68fdf2aeda3e9e3f7d1c6c9c732ae6bc62df65897fd74bffebadcb1cf858afd725b7d62d95f977fd6ad95a5cec7b08f198f4fcb0ac6313f7b9dc6baaf858acd391fc330ac5e19372113d5f8d6e4e0b7e72be0c4b5620697f8d692cd4d0c93430d8ed0c04bd5ea16cde04bdd53d1eaa75a6ff973111729758bb8f8a0aa5bb4a58a8a82df60f3b3a0e0371dd8a4266524edb8b02830220a27768af8315f7e7f0aee6373ba36eccbe2704a9c8d129bbf3524d619a40139c8410eea7ce6a2600fb928194ec6f9fc0ef67fa33dfc8fc2741f7fe9356e77338e9fbecc782eeb7948ac56e9fb6189731edfd3d353adf7cead2d896076516787d35e3fc6d9784dbf04c1f6ad910a403ac5efcfefa353303e3394cafcb746db0e9d11b86c8cf10ca3d029affd29748aabfdecd3809e0b746a8b66d0fd714f6a8bb608fa888af8f82742b7e9d40702ce0caa7e10c250fd44a8cd1dcd370fdbf7b51b844e3d29b5550221dd53d2e127a3fc46fe97feead292ed8845ff883f11ff39bfc84ea99b59fa3eacce87773310904f7f663b1ff2e98c8ff8f3e3cf223ba5bf28b73b93db9dcbb1d2922d8b00d78bbdd96166f687709dc1de87bff5d973a5dccc3e9122ae2762bd3f9122b2ce077cfa44fcad9fdccc7633580701ebfd7d58efddccfeced5f9a00f9f08ec66b643b557fadfa15f12629bb966aef913b07e3e7d22f0ad9f00fdf9b323e2a528f375baf4b4b4b914174c12def7cf224c12e8bdbb3049babbbbb73d86696c0dc3b6ee0e9b6153201c7a7fedcd38962f896db6db306cfcbb2f85e82fe4170e6394d9249cb07b043153e862427757e2edd44aa10bcb12c3dda19c130c0986b711304a0c6c913e9d1a21331e97434c8a812dd4ad3642c58b035a250c6c29d12de016b8056e815e402fa017d00b084504aa1342b1c197dca33e948d17a5558a321beb58d6012bc5fa4b190f04aab38b2aaf692130c75847eb80d91e55ced883a8ea225475717cf165c9ca7a10f1de9be59a2f5a51fbf926aab86663157cb3c36b52f18a1d1b9cd2ca78948e2c134c97524a5914032f5546547b4df4346a0632454842596494320649d153aa80376c57dd222cb29061b3ea16619184822dab5b84451725b658b7080b1cec2001ad0c9ca8eeb383ba455aa65458b748064cd4ef6da8b860af75b4aa46f509265a9eb001885ac4454f2540dda22d4820f3c4cf939aa3ee133f43950b2c2a228c3af53150e5ff5a95a553cc4595de61471a017fd1d1517555a7b6e8e8a7f27b163fead41665a1a53252e587516c9f7fad5271cfb7f10c89751ffed7af874c58181bb626a253db4591cfaaf6384b7b0c4311fbf2dda81465fb5cb5353ce84a1aa6f0828bbaeb7ddc7ba36592f8999f7bb8faf1139f2980582054190695ffc9de10da84c0279bb3358afcc845f1f91bf9dc59ba8619c86f78a755d697ed7395eaaa6be5852ff5f3a3a7bdc3d6e3374ee43790c86bf85d55f74bfd5a8546ddff5c55f92994264cc4d635f84d127ca2535f3caafef1088771204ec4c1f1c7e9deb94cb07d382ac78911bbc18575f74f0335506da2060aa37f5032a82dfbc980321b32a00ca86644195006f46591802c92f641a7dacab296916585656419d5928f656419757179807db4b11f0cfba95895eef686de32e982188e0d944285ca142a54beb8a28fdfd0efee3c8862f3b18e2a7c7a633404c2a1cd11408e9f1c3e39806a0ea21c3e3980a41817ed1bfa6d0b6b3e885d9a73f29b83edd2b3867e49e9483246e62adcee1e21ec869c7f376ce736e3811036f4eef686605c4bf3c555f5bf5000a0332afe819fb90755a316003a7486c8e9de7892e477226c1da0ca53d9a83c153d62fb56059f71f0ab54aa136855792a9b139caa3c15ed2e72d49effa564fb964867845ec938f857a71ea2cfe648e8d2ff6392bdf18f3e9d07526cf17f2037a18e20a803880419936c8dff92ea1ea8ee503e027180e8b337bcfb80c42118e79c7042ca33c2e9ce5598d91dc6e87e75e460d42154755ca93a0d391d401e23a743a8bd0825f4ca0fbdfbf6f8e90c324ac952ce266c40023b66e62db2943209addc03c695998171026b9329da22a866758bc040027ab1791a658cb2c80b3664612286166049410976a21135c608e96b418bb4a08272a48dd62dd262a87e1b11d7fa4d7f0ba61cc9b0c34475451a3ba92b868c763a9063055a78b1e34206c40ba06095e14698af482a0a2692765c6016c252980aac1f10ac81fa67db86066a202657e4309fc566c07ea6f4776354bf21b0ca07127daa7c08298431c2d83980a2c36f2ec74fed8f397c72d8c0385a72a49c03c8a3333f0958881fb96566eeb3a954a84c9132858a0ca20755b7b21f65c6d31da10741b8000f8a012578d96256757362389a4dd964fe14bd742a66734cef7f9938aed18ccd09c2ab98aff1fe26986a703538afdb1a5759c623e64d7fd5307120b4e7a61a9c3471510bc702575357427b276e6b34da98182e76d91babbd31c656e485a86e8df90bc30060aa31ff5935266627e639e389798dfbba6a1f8da2964eb507bf378db3f130e6753a1a55e994ccfb47a278c5fa56e52ba9c376fab8da9cae3e8001a050dbb6d0cea389d4a9d3bb8d13b7b50607ab8de7ac868d0e8857b77a9930d8a998a71be3d598d55fcedcee11668607ac351ecafc89e38ababe03ae398b892bbf69a1dda1a6ee4371f7fda9fbbc59653a4762623bbdccfbaa53357e1efdb607d963489d9ad5bf85fc661e798dc75aa38bab79e437dba67954fd6197edd4fd888979d39fde015c776f98624edd8755df0ac30981595c7d32f5f3161202ebe7ab2f62a9feb485847095ff3425f8a3e6cac614ecf0dba109fcb2ebf14129a2505ef75c0de116d7cb2f2ae34994f36188ea6733dffa0da3247c8dff1fa4b19b894fbdf63aca4210adf26322ecf0910290168e003901420a1116a34e21750a86eb1297bebbafabf2b3ce4ca0694fa6f3362fb6efabc71742c256fa2470855d77717cf2b947f72052af1ea5bfbaafabfc1ea58ee66381ebc755960154fbe7fc9f3c16a780bde1b30bc25e7bfeeded1c61e04b2e84f68854d8d9ec0dff21b6ef9fa653bdbcb2a45c11834adda230866adda2309ec05982d71901d5984d855e851f54f85789838994962ccbb29e862bb2edcd19d96d55f5c4059fab071287ad6fb2efc752a58f923d642cceeb7a12b65edd0cf63fe45fdd3ef6fe452a731f568754ab961ee32efa9b5945aac56d563deb2a28a533222121f5c71ebcc77a2eb6b5328551b5fe2dab542a21b5d7bca86da44e3a3263fb7ad5ab4ec18fec43bfb7b7b74b19095f2debe9c3bf2e3691108327a58c02457630cba3606f619b2aed5e0f3be3a15fb22cebb2fe82b134cbb22ccba252aebc7c597531f29ac6d2352b2f5f565d4ede53ea4c86029c506d2a3333046253f95b0540d59919ce40c8afc20a9e03e4455c8eaa03e994b343ee142ed0292681097c82dfd0f72fa153f3fd7b6c0ebf3f8fd521df7fc7e6f4fb151cbfa1dd0a5ec33a649781c5e13ff6c6b7563218b6207bb3abc2e6cc54ff15360756777ea1fa9a51fdbb53616f6cd9f8db8134b7029719d9fd9899bfb50478c576c28e4d52c13f54854de95542a13e0a147b2eb9b4ba51108551511fd8a078db288858d5fe0f3ac55114e1c39cfab0ca617ce45a9a49976e7ee3d9d8e0e834110fdc2d931ba1bd1136ac63f45f2f6eb4000af5feac7ae15a9a8f4768af5f84f6fa7d0bc7960b3b89220442f5dbd5c74e6ab3cf0efee928a00cd5fe21cd4792b841c9c7d910aea09c66fde70eafd9eae65d125b37d1f6767c162c331efef2877f9c5978eff01b147623d61e4e3fc5d170e01ff0233be914ecb6774ea6bdd3936d1a7d6566eed89dbd8d31c6c810eedef881bb5c77f7e9dec418e3945ca59d8a0d2ba4cc198faf3f1d12dd5d4ed1be2bf806634799d3858c7dc6b534123a776ed1ac87064c5be982df8303115e1726811a504c463a935a1002f76283a95b0446900bc03872c42653b7e88bd515db56b7e88ba32f8cb8246df59330f5349151b9a912b00586222fb2d4fe886262727777282380fecd06b561509b4ab1f1cb50a95c2d62644a0c4da098c0491058201144a9a88b24b597088a30a4f082892b513c21c30e1f1143f6415da64125406dab09a4d8522b3958abab0657e84093302ad5a0cb0df38827d691200944857e62123ed3072024545266400288269020910405d0114445492e58b29304105b8f8c52c6566d58dd222d9680405b8dba455a447182ed54b7480b2ca468f1050b3653dda22d8cd82c71d14eedbeb7a1e8def4c3ee8390bd8bb00bdd4dc3b57b03bdbbbb1787bb62dbff2877aa77f9059595d8f61bc2666666761bb900861ec4ccccccfe1b218cd03ba36b69beada30b29fd767f6f302f6f113d850ae3167777ffc3aabb94db098115764362ed34e4c36e8bcdff83d5b22c0b8808d57a6841082d68b97b07e1bb654dab931dce3e84b18948b1ed255309a17e43a25b56a988b56bd538bb651cd64b9b2a7f3999f12c20462b46696d8d3f392a2544619b03a1a9b08b37c485dbbbddb7bb1b61b75eddef5ed9f943d8452443257c08a2f9fc498d4054a8d84fee9a405015fba3df6c051f1054958fd444fd946e1baa899cc48c877693f3cf3898c7b8aed029c94db9550c139aafc2b48448220148b7427b4da73299ff5035fedb30acfb62baa1f6e2c698bfba8f5eb3859719cf6c2a9d1af21bde89cf42f1a3c470b07d2c6423866dfed74f6afc9a88a9ec8d189aa6699aa66951b01070e25f1b87b597bd89dbdacb607b198c46ad9a755bc6261ccc67fe52ecbed26f7bb307918b6984c887efdc10aefe90f3bffabb6dfa759c5208d3303030df913e080ef04a3bba37e24f20b6f95c359be654c8c0e6ccfe6851cb7a9b107030ac3dec4fdcd61e8665cf2dbfdf39ae5ab7b5672d9110ae19f75915eb240957c73ee7ffe8f91f733f73f7938391d761e433b394ad546a6eee17b81dbacee678f5694d482d3a7f508b5a94bef593fb41bf1f524b8775708d3f029d14ce5e96dd49098410420821a49fe781804343318f12b920a594324608a394524a29a5944be47c29e54b29a594524a29a59c52165d10429bbabb0c3b6c6536a77d7d1dc2860db9c398c86c4e8dbd91c0d6c011ba063e1441040630e0c68d0214a0c20004a0c2d8f9d81b50c7868d1f36712dcd175555fe05fbe64811becf49bbab2f72bd2a17fbb5a9920c2b96bb474333fff395af3687abfcf9de25a8534bdd0cf84295bf0b935409c204a1f2370d4d67d3e8081ef1a3ee3e2a61cfcad7bf9b990fdff3b1bc748d7ce96854f925acf39510aeb0cb46df7a6b6fda47f6932affe3aaecbe16929dc4fc8bd5037daaaf7c62106b4fbefcf6f11b5f798d7c146adb563e15e55547558714cb7828cbb7fef3950d7c69f9cac5d81c7ff93ec6a64a2fdf6d20351b03a8f4bf01c8d7b8b9be1ec5411fc646a59f6995be73957295be659550a4bae5cd653c1eb3121cf0d5f22eaa666740171952506dc2daa3ffed00000ad654b8445691192ab9adbd0580a932f366d084b58772b94e8551920936842d7e31c61f719d39c638e38cf19b4747c8ddf1ff07656ec66c6ff0c7e6667af4c78fdd0ff9fd5be7f7c79399f7467ff267bf64391b2362db9cae504619fb174e22ae3d994c9a767a4dd3344d7bd3a986a69d4c9aa6699a4933993493b671328f327135994c26ed61d5344dd334eda4994ca793763a994ca6d3c9643a99349366d238faa6983769da6f9bf6db763a6ddbe9b49d62b49366d234edaf0ceb8c4783980cf775ddfca351a77cb597e16ac4d838d530c998b6ca74f09cc97460facb74d234eda469264d93795865ba8f08571b35b816aa51c3a499344d339db493c9a4699aa6fdcc7834ed64ea18d3c7c89c64bab86acfff64ea7e689ff6a78c87f6a6bf34ce015c2fc634d3673c272e9ab8ed546bbff1c8b40d34fca15cb95242e9368ed8babf9fd7a709ee1f21e458e00a3b8ad9286263a32bf276c708b3ffc3b5216c59c07c24aaf13355fd2a7f737afe765ff6db03e663f691fbba667f4d8e055a83380ad5fae684f410ae73fe257f3df0208a530836f9032e91e4aa7cd74cebf1a59494d24e3efd205e69b75c35ae8178daf530ef01f61f0c4c13dbf530bfff03e682e1240eae86e9e6fcf9db9e942dcbb26e9b39ca87de2f6cdb5c6d0434758bbcacea51ddbab58c2114d6c802bb37588b0d2036b7c1a6d3a999ded1a9affef127fdc8f5b5d785d19ffff57713abd3f34b9903609e3ecc5ea73122b6fdef5907d7d2c2642514a92c702dfd3597360cc6f55fdc578d2bfd1086f9f992fb01f3f42f8b0ba2d5f9309462305ca40bb3b0c0b5d4d1f6c8586dee456424557f9abee11d9f52fd75b254ff115aa67e4ba43367d71fb91ff287f0673dfd617d7cff07e1c6e6ccf7bfa6351f725c3d33617e8c3f2d1ef3e34fda1e8dcc13aff5a6bc116686478d9dc3b00c0ada87bad588514c6affe7379ce435fdbc3a1a8871f477ac05b647bd8158072f8e7eda7da86d6f74bbb314b5dd7de3bd6122e727f606768a534042f7cb34b68f8988d8ca15aeb273366a8fe16355c20ef56d5fd7ab033a188971f85fddb7811aff6ba146af719e181941753e84cf447ee3cf48ac631747e9b5ee436d9e7544d54b8f3152ed546c1dbcaff1667722d0d6f80dfbf507aa5f1d27ed8d34b606924017c76d98af4815c216274d7ec90fc4eba155d8b111ff0579dd613e17fc61f5ee23c2df1a5b2758af9e3e863b39961ae3aa1af3f9518d79d65263624ecf5a62b88f57311c775b903dfd663ca70ee5452ced4555f5cfe288e9745222c8f431ef45552946e317ec93913ed53f1a88c570d10b1c633321b577e5f48e02c0665a6a79f5f4114bf680982e66e9e2151b23d87e0ce1ea5edab33182edc7e987708d791b46f817f7d29e1b81c98c841803658b89e950ed91b17dbf6a7687310f6b4cf711a9b14a7b4e3307ccca58da8be93e20bcaa31bfb517d3a1a66c318927d24cda9cd389e33abb30c1643a9de651a74cef0f73994e27d3e9d4059a7ba8b4acd844390d15a219012000a000c315000028100a06440291683c9083bc1f14000c759e4a5c46960ca38120476110c3301003300003200c6080420428a514464a4100cbc37fba7ca2ca6f84e4c63c99037932843c70fe9087c0ab3808e1272d3e65ebdc459305d20078086e6e041f44d09ff21b3df62c7a31038e2263cfd8050e855c828a66b62c926de820b512154467b33ebc2307ea59eb509032c5bd3789ed3b5c22067a5d21c4bb065cad1f16b29a487a0be1585a3671ac99b311a505935f1c8dd2a10224aaa8418399f6c532c264755368815062d2e780adbd8161336a5930063a03eeb4abd052ca52233be04319c44f20012e515f29ca11fa8a6c0fa1cf243e19c7b969ae206c7f213e6fd7d454012fb6c2035b39406fe536f7134fb50ef11a9da9cd7c2b86b2534771550c1afa40ba47afe28d59d45cb496eb033cdeb0282cbbd55da617d610e40d0d15525e9578194b422ea2c41ea7b2cf404b69a5a49c0eb204490e3ffeebd75808b3b1a7b56d7fa1477b9ef7289a78b9e20aa773f6b88709a861b257c1d0f5c11c9fb2f293eaab05506dc5a6e4d64f21e1051774b96666dea7742c0641957eba83e97f844c7495313964f2a86cae71e728bc59c60bb5f3d6105008c2b5d80dc3314a1c336ff036909e8d089af518bd20d31a60ac44931c51bc7ea920a1db90d772b6ac6fddfc5414f647a6c43778d0be5b7761cbb48679c061ec467767e2b3cad5aa4608768ca6cc60cc19328634daf09dad47daf93b94a4e268e3c9cc7f7579baa2cd91626cccdf872e924838c73060e33a1aa10d5cccc15abf6a03be0b3a93352a069641498f74ea1ca611c6fe2b318d03e99117b600114f07c53e9716ba310d3f2fa88c939b827b4fcbf05de9651c1e2c3b81a00e44fa6b90e19ef46fe85a45f2479abd378cd29b93725294d9e7b99ba46c5360a294bdb22876d74377ea0474383efdad0ee3e28fa0488ea41dca8ba8ed1667708da7db734cc265851b4c757a5287ca9a1ed10543f26aa9e4b53a5598091569d3d802977d56a80dee4b1626f427f1e8471effcf38be970cc9b2c13329251fb7b3c23df7045c195398c28c1b0e44ba6505ab6e2198fffbfcef931576947510610d34c86a904db670e05e22db6ff9a8dcb8f4634c33c131890c15035be6e3ce09212b7b5158e0a6ec212e440eeea6178cfc77297eb47006e1927efc47b0a4df64711fc8cfc35676a9d34cb95082108ff854452842859864c0c53a0d7fabb4ddaec011c1b0943aafd6a23398c825b6184d119607696255f05bc08fcfa9ef7cc1bc21e8ea5af8c6134bcde9ac6e76435765b6f9726bc0adfc28505c36b5387c6de134e704ad17c7bf99511505506a99af811c31a3aeb711a7ec362187c0690b688ff18ca7ea47a93a00bc267d86bb44e6d9a07d0d33bcfca321d7a48863b17825710d2dc774fe289cc5dd105d5632f1c9c4621b0a028e4ee134dd2f9f385f8a381203f10a29d9b6a41a1738ee37001846aef544bac0cdbe1b33ae2a50d641dfcd55c5c1ffe2016b88cb30c1aa76dec68a089b7e17909fcde5674b5fd21114805fcb49c26dcfa00e960e94f1be4dbfb4d03efaa43377f23a80e825356d85091416c012d5d38d4bf5a544e75504c07d376b9a983e13f21e585ab86650d24d01f1dd667cdfd6f94ab1a891914321dc86bf3f3feaae2214c868531597e254d3d3f31faac3f3372995c07cf1177edb53a029e5a79238fa7fafad2d42099563f529e535c232475adfac70abfe862d450989836d699670dd415e18761d38b92cfd5c25b6582928812d3a5fdc3c165481bc449db362782ecbc7ac9a2b14b6dfebc01772243eb1909ffb2b52ec92f47c0c9d7dcca239a4ea42d5841a52995c7612568e5e5f2c70b394c757026b566b2f180dccdf5ae9f44972d63e2ce71f0b46c352171e652b9569909ae4574be2e9be33111f47747df2ae0fdaa7a8cb8fa3763d429cf35eedafb7bf5aa167cbaa3e0e1214b225cff29951efd831f6ae62116dfb31b7315428500a0a201d250d5471010539278201f3b769276197efab18d2e6225c413199a5354a9403c92da594a31485da6e9cba170abdc22ba2c74541700a53dc0c63875d5f643eb5080fc1fda1963acaf731e839d79fae02577f7555e47d853b8d0230744ad955aa044b592b9d37e933516a4dc0fc7083022190e1180a630e80e26b237a7eba254da0fd34aa648185ba06a55058b4f060f8162bb48e1e38007b99e84bffac302726c3f95e1389d5d638be820500df6b8899dac675badf1a8f5e4c0f2a03f6e45230f63ae28816c53d20601731ec50639d8d9ac49a3e0b8dc3a689f11c4fafa636bb7a8319dfd16ddfd9c8247e5ec703373f39caf031275b6d82c5ac2a556e1d4e7c50766052eefa51fb303497c9265e26473bd7facbc2404874836c7a37d974cb26f0f612c7a2923e0250e2ac149f3c685f36809d7f64d0c30c54c23780068780fedb2e8a1bdec694f1f61931179489fa272a64bfd875d14a28b7064b0b676bf9c8ff26f9dd7157e20a6da50d14200436b30a2e8b6eeb44a3c35ddd06c7a7ce66f0eff2f26fb8fa4e4c54a008ff3faee4713a310958af7a7420d01fd532886862ea24d5bf17043a13d05a417586117dec5659f61b6655f610622a6a477ae0f1bc7fcffa990fb75c08a77deff51b4e51146f283e02ee19f3896e45a8c5274968bb50ba2d85ae78bd11c5c79d42aaa5556cffbe6182aed2ab2838001303e257dd4ed8ffb85948ff96ef6a75396fff0e9b924c4aa4b733f0bd70848ba5e8f789b6108d5744fe7d10cded4fe862ba24a53cacffe1fb501c593d948395c000480b8d8cb69a96076c56d328eab521c04ce07f0433a76884adc801cac13abbd78d673ab51e9382a272c56751daa3db0daa74a11244eb7544cfe75a28742300f73e8f9e9ed0de022991f91a450e32f7ae12a698ef1f1fabac44dcca59cbdf102541b66c9ff81ea760e00d0c2b80d2f98f60d8a35db714ef69eafdeee541841b6ab7bf834ab9008d631084c0d93f6a628ae8348d9dc5983d2bd53f6638d30b4fa7969030949da0c02abc6fac7aa0ab73ead45c2f055ec741840b0435a10ee299e3681b9e476d8bb08b7f85e16100ab7848218e29c0d0681ecb7d9802d531cb4e5cde241751153007f1bb6bb38ae1cd363ebfbc524dad1b8100dca74f1ae332f7f5f48807cb26d05c2609de9fc52c5b3bb6497a39865ced493fd2d75db6108d8fd427598cf85e1c7767f652bea04040bdb10aab687e10058d33cf3e3edd0a4bb28fb7f00c0b4b3b63881c0fe360513868de976d22ddd18ed9f48ff1ef995e3e023ad201d0e7e8b6bbff1a75b874f36c6cb5fe228ae37d0dcecb2ce181e0cd297734c09ae80f0b681cdf0f01c1fc91a6a34d2877e883390ba7f5cdcc966dac7bf13ce9e781e668ce40d03e4154029339720b1da130cb061db2535e0330d49d2467c11715337471a7a44c75b415e9b98407c1255037fba51958c8c7ade5fb5a71166360f5f74cbb5c5a4369349445812d724c90046d7dd9e5db089288301bb306588938a9685682b1d191c91a2128854841139dfe04bd42942d24324dd998fa8685f0956f5d4b5bc50c83b57555838c8331e3fad17c39778a41dd034afc366c8664871e8671abf23a7602dbc7ba2ae178399f41cbad6079e271f2cef60ad81d4913319b002190c744836628d3f4f6b8aa9439a31c9fc52b020003244f91b2b283a50608f7232f6aef498c26f094cf9ce503f2dfbd23d48fd43534e9b964e315e32f3e09730c680079bd5f0b07a1fb58556f7b0fb817f41236570df48498509e1eb5b371dbc58665427ae9b1c17fa0a266cada38df2f334d541b646d588e003e5797302a79428d9beed8b4cb331861f9c5937f01a1cfccd264993fbf5b8c4511827ef2570a389a7c0a713f5e7b4ff1d65a9e6ee9f7717a248fe9fad98251e4d78ea380998b3f60457dcb251771ac41b62cdb6d8179dcc603768541dd5c60679fce3e4ae58739ceee1d0d0ff82ddde747b57afdf2dccebbea9a16327be450a0d23b03909511d7b9ff8a7a152e588236aef6fbe989d1a0a37dcdc071e166a8fc505a604627ea94155bf2bf80bcf0f33c6ddf08ef73b1fc60e7f47ca2a00add07815b0dda8c11a90db3242cf8fac4b4e4191b087321a91bf98bb3cf1bfac299e3c7aa42841c2f5cc6697711b67e4022936e182846d127d09c808f47f879619f14c052fac4a207b05cff61d226e37e0b4b3fb46a4e7812476c03748e0a575929ffd6e807326efce450b097b7bc9370dd8adc4e31028bbdcc651647de8d80047cbc441a01a93a808e65a8d31028c2e9de4087b89335dc55aeb7f73249ee61eb400f77ef7e29b1f2692e61cdff7fb566268be88afe891fea828fbc487d31298dc069fd61c688cf8b3350b90ad009bd397435ae809d48cd607a340169a6386178073e75e353315b818e3f572f0408f3b462d2d9fa6794982d3fb374330868afe69180836f8171097589921cdf3271b3db48f96ae409ea7dc97fa2fe556f0d4ec47a8789faad2b1eb3aa8b79453f95c9aade23581e41a7ec75f3d5e5af041a11a8ef41370aac765e137a3b0ae61a4108a3d518afbb8038b76848edb09de6f4a80e37b772800703e4ff7fc623addf7d972d07f6f78167663695593922f5b8172694ad23486d59a8b207b792b1c7a5ad84bc2b7cd8f6a5a1afb40de5989de72b4b5fa39702830283823fde8dd5710d947398677f73035da2d91f5a98b2e4f17fc6c411a6abd2909e9e75f465b4c059a20b4396505f68452102adf554acd04b7501224ed0c2ff53de1c5834cd50b038118f4004fb8ba37da45c99b305aedeac586f18e6b101d3a8175f5b71999494e679696fd13189cb85520f5d05d859faa3557155165c014c032a4dd3a2dc0548ab0aff0cebb6b93f12de164167d932f3f0c20fed67c5a6f9324f45ba3ea0874dfc53f748c61993e4f0a429c6f6a4bc346120913d68d8ef899652bc0aaabea1a319d2d2a2753a893bd7f5d555594a3d8d979b279a3d0090bcbe507d9b1a413f1b3d6619d166ee3ae17f7f4dd5e5df62e6907d7540feaf3cae22b030e908e898bf4f3dfc39801503a49e89171c1d38c13519e55111abde6278f4d51c1410adf281bf6e2c121e7f31d0ca0bab1e6c9085dfb7c0a06b075a71aff227d06350ec7090bf8265f0bf119ce2d95bb1bd0e543a79abb22d2bb2ab9b01680d5930f5c62e81b5663fc55bdd73acece910683d732796c210873c9c14a9079c517cec5f808166df1b0d769e49ffa21426d8604b125591eed2af2c2ef79324dc0523e33c813af0ae1ff8dbc4f272dddd1d1f3fc9dfa13d17c4e2f855ba6ff8ca0ca7324ac6b4d800b856826d84a3b9bfb0e56da89a7d616a3a8f9317119c3c750d2280f0d2f0831771b26ad8458ed3b0b2c2b279bebcdc356f9e282f34fcd4a2955c41882e2592a7831b0ccbdcea9339883dcda760221fe6d228e2826535e2bd70f947fa32063eae507b8ee60cc11deecd0eed64ee140886ebd23ce0f2b6b38ee3fa64d766cbe9ced249ae5302c2a6020b7be0b79f87eaadb313341bfcb17451490fe7d04a76a00e964dd03a1d165eded0258bce082326466e92e9e82dd974a98f1b863977726affa0103146cf06b8c054e22ae31397ea87e1db669fdbbc0d5ca6c78eb83102dd4aa5b6e32bf68004207b881eece5ce562907e68d61df7f169658df84c85b77ccb3ed41c4f3616549e14d9f112d251762bdb89a2e9822b7e34cd3aa4b86d4a51b37a25cbb24b8f2d2e3531a17794f7aed290e7a56359fd3e7dc2134ed3087436070b32913291420d7809ae0aac1ad2c01d75ab75bd3ad681abcdb04227bda0364db164e2d940d86a560b05916fc166ff512ae0d11eb00c9ce341e2c1e59c3894acc71b24ddb6be813aab7be882910d96c0316ec66700bb21aa4dccc903edc988945e992c2b2618923792a90718023671448666831e46ed6d8304677ddc75459fdbba43d191416a9ce2870e2c2bf11ec58c9a87c8ba6063ed378beba80073591f0a7f24f48374f1e3d6b29208a451960b1344cd55cf521556ad73fdd63be1b264cc51491c028cfb48a3a002738a030e1c52dd14537262dceada0b9bc2c3a0bf4316597e722c1f5cbe79ed012c34449d02b026f7ab091b4c36df468b7bedd9ffd05563b55e47b51bd50583b8b495d9633fbe58cf297ce76a1b4a83f2ab27f318364c68b5569e2eb0309c48b3f6c30a7a6cbc9caf5dcb5e628cf0cfc32e1fa55c4c674181331e16796c3b1fb100a8697c49c81e1797d60c6d139a6bf0e8897ce261dc936f8ca2d1828f299aade4d7ed714600ad4a040a5ad744f36add73ee3735ac07f5e18d2a361cf4082b8153146798daec82ab487367ace6f4bd01bb0fd126b56615ddc5ba30ee68e66f191ad71e310cbb8dd03ae3878f9bd8c5a0dfcb9c542b9359024c3d714c9524b3674f0323794c0ffe255568731d6538a5758870b85343b8b165acec49913d6e70414ae7a5fc735d33541d9e1458c9c64e74128ddacc2b39dce349dec64bece0266e5f02fa841c753218b83197e347939a588d5bf2e28ccd63d6607f5b0c160b5ccc29f0b68e949ba82b1a6e2eae6420e7cdd0f01c77a305ce32a9d48341e667b5ba38177b89eb68020fe4b562a3fac28032a43bc08eb15a759d6598c308e6a8a024e90663a792324c25e9e07fe44c8e37ba495227c694f2f6be8980f197f75f926b3e031efccaf7979ada67e391abc91c8f9584adb9fcd7c65ff1105a5c32a66f831fc459ea5cc3bc312b08afc88f4e30ac171a5e935e01c558d5d7f7d62b2a46af0789074f095a3a3794623420828c519c39470324bb54d5d56a630a9e5c030e85c343cd79460808a9a6b45a3d9ad3343e8fdd77c95e58088b36250b391fb7e4215cabb1b8924cc35776d378aeb7f26ee98ce5676513e50fb1bb0054622fe61a80c05b0e2b95f69de2270e40f870d6e2fc131150458ad704a6f37ba0924d34e5058cbe9a80a1057929dd88800a3cc4936c00444d97f442f68a0357f941d8450b61ef8fb318593a302948d3c2769a32de54d9fec30d6ecb595b610473e541e819787da1a77cee793c2d721c7769881b8c3c450a29b6819d64ef201b990014fda0f52dc9dc58311902ce8b6b437f3acf40161f3344290198a73125b8c1228f9ebe8f2406165e10ba6440c7724fd86c519466dc789ba938e81a1139685361c5dcca8dba219b19868687bc10ef33a3ccab0568523d76ffb1b5de0aee0741f87baede2a07d0badadba92ab1289528c8f3dd3be1fb97beb6c58f7dcc506e79b9dce99595a26a2874b45f3017bd007671443098ed3006dc1921bb91e412f5a89e33ae88c530ee2bfbf134a73ca5b9a3ef01bd0bc2ba267d833e96716e1ee7384955e57ccaf55751d1e67d56fc6ac1d1d9eb40c61d5a9cb4f3c8228b783e3b1d3e688eecba4c97bc674f703867df35134aba15b102556aed087d13583c287280287c1075f41a5d5c837a9c30c4d1b8d035ec5446a4f1c462b35ac96ecd7a5e8aecc4747946d5142b4bac99b3a77fd1e0c5aaf54bb13cf4688d670ab11ea105e2c9f57b5510599ff816c21f9184eb062749bbcd64503083ad851de0a2752dc996dd50e38ae8a110e1917d9c5df7eaac6c8f604bc88a7645a72ce716d8edb5375afbb857b81007c928af67e90c193d77464112e1cf702b54f839d6275a8cbf70c6c6b9da761b4dd26b7b12b4866707f676c7ce41c19ee6613dbe89ae06262c4f7ec4460bc2895882a839b47c3863b3f46e501e8f46b5b465dc613522692ffb552263863a6db789a40f64c40bc5777c09e34fe04a184ed9edacc088dc123de2490a1a1496c77e8f7884f106cfd6660a65c21a7237059e4e757439948d864224a3821d89bcd00eb40d3cfad6c66b7a949f85f0afb6d9f2ef4a75741768f3a969e534ef60af242d97a6d0fe809c88733b10883181095881e7c6a248a0ab7b1c99e664b56ac31ad8788d4068ccd2b1c2b87d3d50b8aecf968b253811c2b5c6c4c0c601fa04e26f2c286921bfd0e8b3d21ad51c212458ed961f4c5feaa7f2baa31a96e4bd573360a440ee4d902ee7e83edeaff67d81b95ffd3fef1d3290e0a51651353222cc93f3e2da42b7cff8d35cee0f7bac3d7ccca015ccc50a7222b6dae3f12066f4fb28c76bcfe53fa3e9830c524679e6a346db1d30a58b4666a6f36c5fd8df792f42212e7632edcccea0e19a32d040295f2a43e244f404bf1d46bd3b7bd2bc7ec5c7500dad1eed408febb20950f9cffb048879ed7c1d9fde0a5cdfa172f8f1216788432b29e0a1fc2ae3ffb3f57e24eaf1a6baffc7e17e5824b6c3352ac949d03f2422cfbf99de109124807aee8f4390c760d107d802be880966c91d34284eb811de80d2ec087cf732cfaafe9c8c1cf32532368055f980e7ce83769e667407351f4a7910615cd030d9f42f77f1294c3a6729ad143b91b7f364ccb1db55081ed572132364450e04e263151f54122b212803d70cc41600934de21a8e23800e5f29919b50aee5641a6883d07182eb891428e3af5146f7b555b5789212e1ec061eb5b42addb1de1b57bb8438631f33db60d3f218d19880b37c1ab859599151f972dab7dbd1cfda754582b0ab6c71c470a7bc62625bb50d369046c842acc8bc84cb1c50e6e1fe45d1e445c7728674dae29ea8da686cf54cc0ec4ea717b8fcfff6716e951f9ee31f276adc312375b8a223230f0835715abea884bc8f8be9104ba0b9752c8724304e18f9fab0668e252c5b44fa933854e95e86b22bb3c52d4dbecf2f3775ab4e5c3c733debf9babba3cc85dc6f61aba44d01729dc9a40f2ae8689acda3f024ad6b97bd7691d61c724dc012e7234f17e23c3a07bd03ac690e1168de1d64634ebec018c332d5aa513df7f5b63110b7383e16044ef258d04ce8f4f7750c834126bd170d0d141b55fec5b9b2c176606d3f50f6b123aec6bc17b9c5e504584f28dfe41d8748d839a5c3279daa15843ebf52ce3c8f3f07a5888f4f06ffea6bf69aef83cc74b2dc152c2d869845301d44f1bfc46f7705cf161a52a97e03106ad503e49d945171669c5ee655f6a344fc9e2cb0c87473e59e5c22964ff718777d53b134e7a0d2a13c37e6a1f00dc3385f81ea9dd2c3cd16f24edb4e3c5647e7f3e2a3077bcf92d79b70078e9a404aa0ee583f632353819c8503789d1850ab51ce01ba76b4842497a5ce5ee4f56bec81f1ebd3cfe3db70719f205cafc32eb3a215fccda04c38fb65b7d81e8545782abb94b61d65ad96026ebec47371f3ecc0ec62905f9d28d80eaf587beb23682cd245d7bac432d39e3baf7975ced5b1ee689515bc066377331cc1030077f349331829ee9017b5af39e2ea9503409b15cccd8dcaab5c2b3f3216d3a40bf32cf1e304b42b693b06d6743954ba65e6afa8a35451b3f3c47bf50f839427d049f1d2d314985e796a8e539bb7ea12f5dd47c6d6db1f44d124b1856bbb72ee928d71cdddb163aceff2d1b9332bf6b8ed5a9de20574a5515a83ac839865260e5b5c578ec3cb8658c3076d9bdcdc424064c8b2aa807b8b6d4bcbb2d0813e79e1c562e9ba4d5344c525ae2ecb8de84676dd61e80e9f5c9675fee277d96e52a68592d3beab520b0cc426065b5ec19922dbc1c6a43870a091560c6b580354764e2335d4ba6775051d7d96521eada5615c48f91f485b59570ab8bcbc8d64a2f54ac1eff48d7bf2b2496bdc6a30e4b4e389633ab8928254efc38c9fc08d7e8971156eada43c1218b66fba80258566e0ac873a3f4fe0022ff85e9299ef8074456e6638aef45975b8b2b49d212c7654f2c5c3158a1d00cb514e42f93d984912c00f5c65243605e57220064fa785342c6cbe7a2eaee59b870dc2cc0fb0c019621f940e3d3844af5b06d14b531c27be062a36fa46d703734f951dd8b1905af21eb8a42442825d29e6e2356b621000f46e76984fce8dbd7853121061068f1f3b524faa3300fd358b8a874af0170af3d592eb6f65ab710e3c3a45d888edfb36e6ee4cd5a4c85275662678ba55b1874446787eee977e0a8ade4887bd73193c15e8a2527cc04554c92afa922cf45925463f82c17c232ffc50a9f61b4bd01d6c34694693b7408d9cd48a2d202b60827f541f9fffd88b9d742977a0ecaed91bfc690262fb895591769658c919d2c4cbb3799bb99d5f658a9aa13b4d8d85921355084e0d2c78ec554c85117ff73bdf471a7a040d5e92362214005e4445df805901020a45f2806b15e9621de1a09af57cda51d83537a9a9988a2fe923e3e9d0c8e6fe402025a0158cdb67118e2b2ac921c862c33d83f4d7d6c3a64541fd6ffaffa5ae4d4eeee7ea1201c42ed552b51aa7fe7ddf42c8ee9cbac4fce0c449f0a330c5230501006c4ad4a209fea5b569637af0f5c522e094c546dbc436d104457c640beaf63e03f8d0dcb81a60d2a9c367103b8a5a9925ca67b1f98738aa69663c0457f1548c598f20e1c689385737c2c6179b2f8db7896c34ae5283817eb09e2b541fba55b1e6f291718c93188c50c90ac9279b9f0dd2ca6b47de5c4c29cb2f9f12bff598eb604ca45056e2a6b2e17b7cdf7a9a5f3d5c37a83d61b8d1cf5f27a0c65d3481c74507110926778e087041d1b93f294ede901658bf1c29abe11f73491299b50346bb667178e1d3affbdaa5a278f8f02b1d3f06c982a0bb007e92b865b6c68aa27ddb9b3703f13e1e8d0f718b345cb70a084365c4019df4f81ab04ed9a483ad411c4945131da08bb25e33a2a495d915bda9c8c059a28404c25cf0fa5c41ce43f62da4c22a36285c4f7d48592f7506de7387890d678c4c2dd81472ba967b39a3e564ecfd245b08d759ca23f83054e4377bdb60fc332c014ee1470a5b74514361d34e44aa6137d9e800f2d721ee060d6a45cd96fddc4456a727e4e8e1f95b6c761040fdbe3e5e306ffb4aafa68845105381a412f1784875781b9b9919f03fb7ab4d24133bac64f8f562cc28166f97ea3a998126f4a31c0da36feaa00d9df8c730c9b1015dd0835a318dcb33e5e4216c9925c19c68117c1ba46fecf7ab1b426b465318653c0ba4a17ea692281f190d40d376c3bc9fd6b03710d99961e7f81bba53e031c7ca06189e51ef22283424919a84b3e45b3e2333e96b4cea06d2e6e1b0fc932a45be200860275bf9ceceb4e96f56f57eccf99dd56875237a210c449846300d583d99f7cc446485be9c3c50490d9d832525849e80b53c9deb0c0a74c7774bfb06486d8f1f9628ae707c2e10e6d7324dfd2392c718d2e5a24354e481152c14ebb5e560d0fa4ca3e10c6811e9f9f48dc2de70effbfc934b56afabab80909be525a52760326231faa48da80fbcd02729a7147d14d59eb2a14b24f52e34af27d81e60b164f88eb091f3f05bb584e0a8a8e654b7c2c78ab1af9a7c6ea225fec2a63283405a488eeac5863983c70f90624b836eba9fe59b109440a293602a5d51148378e4fc4b0a580002b8b16ddad8f1109e8f6242b696023beb28e6647ea32c1c65d23875ee0518a7ad3bfa0b2d14a29897f45c6557f0fd53d8047a4c87935a94c5521b4336208ba10b8df17955cc3070d614f25f6ced2587040203818eb245246f16908f098c1580abd5e0b31408f3bfc5f0c626ea589f414891a0d33273816f19a5834604011c06fd27a90e0a74beb362a182ca3bd38065e2b50100e400e191d88b4539e7c6f9ddb9d9db55c5466a4bacc3028354c34a1ba40b8d1fddd53b100e84e0b0a3286d8b95018961dbf3497c7a773050a929f93f8dbd03c0a48dc3cb3ebcbae33f61acf66b3532518080e6c254f417cb2f1eaeb81ef483417301ed0d3df47df3fc00823c0f40af973a414f5eaa16f7902c08f9e29a08b42d399114ce0f7cc5806a6b744f395d77c80a884977de7f23e514eda0e971c1ff54e9f9ae80f660135e2f5b93bd1f9b68d6a1979d97ec9f39fae5916e0ae163345031b5824ced552b22ab2cbe2969a22a51c224d0d5e74a8e2bbdd0b30d62782d249270acae5db66e250cae0758f72ee6e4a656aac3c8e7e95236e6f21cd1e2a632c6e750c6b5b90cb5a61e4002668875810e64009dcaacd543cbc85bad554ecc3fb6e3ad65fe1ff664fdd30ab0aec0863b5fd98785423d830edc19406d099090645f02682ec88491e843c189c571f1bcde9f9bf05f0fc67284f14c1aced138033726f490605e6dd88bf4ba47fa51dac0b7152d7c401df8b6588837810ff0058ef79508fe6d363eca568aa1f672b1832ac9239c8b44c42d738af11409852e2752f7e8966b91a9fc840b19df8e90f1ad3023f46de47b8c85ca2f7a676720d543b6882216c2a7e31402f26aa3c3b813cf5183dc9d522e32c704bbcd45199dc24f81a2420263d79ca32987d3f9c98515ff205f4ee48e6eadf09bb11750f7695acac45d8b5e839b2ae193f3e69186d6fb8fa4fa28693c6a7e4578684872ec21711193a27cac3201853dc193323b59e8e688eb7b47d5938bdaac0e653dc6cd2d0becf54031d003be1448ce113a2a017d5734f224d07e6862be509c16e524fe3f7043c5caedd8a41a5460de4ef760813d2c31621fcb76968bce28915adfc676de69a1c1cbaf6a701744353dfd63415bb7c0ecb7262f38be848f80259d12c5754f36d8217f275eaa60afa733871b4ecdc2b4c2d51f6974961b027c477a5aa04a902f94e0b013a9fa314ba67859014c1738d0ee8caa719bc94b13469624b17b43dc2da6c9e9e644b053efd8c210aeb6a4f2f85687db37cca096743070d229e015ff94557fba2db8716556f970ea3d6d8311385d255e2abf2fe18fc067ee2ea213c48bfcbe83b452b7ca257a6e8ceea4d9e5531d2d7300653047eb2197c1418268f79fd33b6cc1bf9bdd37c47b810cc5bdf952ae8a95e7cd517a337b2d0c20b1455d27f505761907bfd6d74d4c57730616eac030c5747b52ef8f7319b86d2b262ae1c1f48310f30093cfc3b5681af616fec93493948005d8ac483931bd61a459f4a05b6f6574a10a490c9968890621a0c36bed6b0be129ffde375c0b7f28b06ab6f73041048b924d965542040607dbe60814db60718bb3b531d3d5079ca68f3f4254ad890f05e30677b702d8962787da2031827f6b80c84433f7c305c30c51439129c2d8777d52e41ca8703ca567e348b7bb3507e43cd96a2c686820e457ab2ba9a6ebec88a4bc3661b5322549764334bfbb91cdf1b200105d1d394063fea6f967a215dd65289cdc8a683dcec9e1e112295c4105c7b94c66eb1c8fcefd49e581b08a2768d94b789920761a3034fd7c831e6c928b72a535410e922679d7f9870103a10475c082c688492a2351c93dcdd7237fba930ce55737b9048aa9bb9a8384cab83359e1e77f77ca8423ea248ca89d687fc88646c1870274b5bd2b1f9ba8265280e04c36a92643a2b7da9584a5918a6149d4b677051b2df4152e8a22cbe7228aa65bed62d359a730ba57d4d04c76370e09c03db78ee07e60b1901ba2b2c30e7f0ebe2ec9bc3f10fbd54f97e0c06909e0aec379cc4314a0ef70fd571d7cb554b55663a24a4c16ea98b55adb95d17f6bf802858f050c94fcc3d88030e9b3a70e11ee6c6076d242ebd4056fc9c15346e22e55fe41f97f4642f517a6402509f802e76ae1f7b8a9c80bdbc451da42c5e008b4fd013bcbf9302225908e0c34790de81379ae0e6b1e61f3fd68a829ed24b8493e8ef09d400f5414cf47d831d529536c7bf7528effded70c2b9a919225104d110cea09e184d20c2c28dfbab816989a53461a6a6473fde4d20abfe93ca7c3f212d4b3dca3fdb11676254d53e218c1cbe08c10e07d9af5f63fde2ee0ef7cba05e6389a4251be895e2bdc99371e20f1cb8d4bb382352cfe615dd2b477e041d52b416ef1492230e8e5d3ccefa45db1fea9f7d7e80a8c5dd2e73f7b87931850cc73e39e6fc4b0f15ba66026ef397dbca5346c87fb0c8412ff8631229d6022e7aded37e38a73d23b5dea417dca08bd7c7f660bcd88c66f72b045a476d1169288bc81ecea31e9394b2ba4d87353bb9b264d93689981091839e5fc4262e6e6f783f59a1c7925aa35ea0e157fa8c00086ce9a89e2adc749c01236449a5dc643892f8f3b495df89b094990ac45c84c83dc519ccdc9cd7e61a70b811bb91e622eff6a944d841998998f7fa5f8f99d9fe5607346d8caa4a9ddba3b38458636e1f0bb1f4f1fe7d6cbc0f8df57765bb03a34a07b82f1a75193d15b9b87787fc65a8fea0db185268674532735d47d7f8a57485b8b962219295757f907a22738b588d599aed117c980ad1cd8403ad422746b3c8e6fcfabec8a73bd590b9b37de0b465d5b427f4bb993050109520e158adbc292ca7a9c24b42314ac5d689bcefd3be7ab4f613d38c11a847fe152805316d8ac8c9c362ab972d0b22218bcbbcc106b37f1af8dd370b72017fac4718fa00f4eea5cea67e27db247028f79553e886a1874694e87161750660048ff0c2abb5183a09cc20313b4b678479b8a79d9d0682e81f8094b7bd22b4c84ba4fa1144a5ac2e95e02967c140ad6be9a344dc16e3adda52a5f95c0a2253655c02705a1e10f666ead9d3d4949e2b13764808e4d0431a0b8a7a81221a8a85350869c23991ebe7d517bc6b23d777789e1b20d733aa79cdd2ab0a901c0053bd2c7c4b771568ee8bd7e235e9944ce3bb2cd7ba18d5cf39800886828e41158e824475f9a6d050106329081eea615c97ff9c5f0bd7cf748a8072bef8e3781ba2ca3bc34e1f56ec0b4405bfcfdbb84f8db44c6abda9d3e98ae19eaf02114330d9d8873298e2af115a73ab3874fab2065d44242afbbee65a0cafab1d2249b7c8f21191ea6c9e7a0a0254e703e4822d848a8197ad58e242c450c4c92694a59fb16615b5d06b5182ce679206b295554dac6851a6edfb98df895cd779c21a87f4e6088d3c984af46f0f846dd6b0f3b3249599b5c1b3f56fd31cec3f31d8893fb62c6fc3bdb6a914e4917f4cf925c67290fd4e74f747450f4c73fc1154db0d758a11728b8bae35c1a760ef6fdc030190247fbdc5087048ad7b17fa17059214175e821955b2a7698c1162f7cb421057c1aaef636689d9ab45c48a8e9dc430138473365da929104ad42487ff0171b86b7f37fa072c623fdc376167ae6e80896132e4072d995e895ca155ac36e4f19011fdbcaa685e4510f721f7884643e71a7b072dede0005b1b953219d49e5c85c2dbecf6e5295768ef5690b6cc95edcf83db81a08d0ac4b7c7b40359e7cae426b8f5c84d640975821ff44729100007db1289d66f9bcc022435f75650c1024694fee664d66fa2949d32edc3cc8c981ed3277824820b7246d4837c2c8e08244fef2d707d31ece4d69b05f8ce60568069ed67e1668a11b09b2f15549418be3450eadac83405190af4a5d150503cadf9cfed4db1496dcf129c36c1c4eca87fb9a7d76a82d45fcd8f8bbe3e0feaa1483f1c9300677f9d81e6a915833840c1fdb6c6f110540d7fae437729c1dbd0eb544c190d864623381c03c5865505d2febcbeef54f7634df0e7ea9205434d72f4968690466ca3e5a292032b2c7af4f5f6ff2817562c53e428837b0848d6c06bd228648e1d9a42e420561f4762ffd2026695c87e4e62b6be77989624c262907cd6afd9a6091f809afaa4c630833c38627b97fa9a67d79cce0114ac053a6ee67aa10559cf63e7c7d281e2ffdcfb3f650a358bf5a614c4d80609255b08e23083a1ef4e1fa44288692213ba33ce2d5de0669b6dc32382b1431ad4973dfde8d0892648fcacd4e4aed08e85e79981007dd84f2b443eff4a29ccd633a5c342d016d901996c9f3485a05c08bd3bcc7f7f4458b9a00fb1515725423d21ccb0530eb5138cbfa95e08c25c81887517089e9cd7be5200dcc5a781c1d8481cd519c1e60a32e1fd78f3c2ea629c19ad08581d680c4c249eb7f4af23f9c94f42f2bfd990f1d76b98b19c7c6c0c6fc34266091c9960fe0831ec6daf6c229547d15561b23b262ceaf613d9b415fadde6feb07336e677a0d74e720250630146fe63f7ecaaefe01728ce941ccd0440f814f0d1d7ee8d4cfe5f00640093005001254038a099aac545270009ffc8b948be584736008ba09b7ef7641e80522d02c9786be47f0e9b86b5881f3e512535378222e024f4d9b227102c41433ce8ed8093341f5a4cd4d5ee982781adda9259a6c440cbd0d536c311d161dcf39881c8e433b4683ecd552630edf7110189de66abd17cc6e0bc5a2c4d6c6752fb8108b3ca629cf3af0e251dc413fff5d130a4c5a97b6f4403286d63ac4b16b0711019e22cde54ffef068b7d8268549ea89ddf4abd4f1581a7d2c8f9d007bc3fed7d03a00a2d4e5819ca1b5408a3f8245dc8d532ce5794ce40bad84462658fa3e60a041c0643899c1a9a8e5565b88c8f5e788307682e0f763846f8fb4563f6980f3026e5bdbd28543fe3b6dcfc34ce002d410c5f3eb02956bc0e06e4e7ee144fb1e7260b6836257a32a1a78d4002153567208aef59ed3c8ca172e809e447e22a510aab8a5bde5d2101c03c27952a2530e8b18addee1e3e99130a38d4bc8662f02a0001e1ac70fdc5fae32696b14b27d8830c9a70ca3bde17eaf50465a3208a3ba1c80852eaef1a275a7e31c393223511dab3b18f7542613e320d23658ad2f251c4c04543d513fc947606289993424176598c13f64b4a52e56960f278f0fe82b7bd50ed1d419a374316f03cbe3a18d069e5ae9102f7e23ad7d3d1fd2d5750f5ef8f9638e82d28a3924a33f4a163e1498a1e28889ddfd0e88238990657181459d3d0213a76c0501bfcd03064285f0681e3b4939a60a8adf17112a7b24368d00cbe245a1bb8153e98b42a4c9e95c304e7b7c6d5ea1d2636c36584cc21334b2074cc58df317d0e245d3eefc49104056493f4af0ec2cf462dd080a2b934c1619246703125161f94b0f9b3070c45df6ea6af7bc33a3481016c434cb6acc7f32402a10bd6d914a67496ae3a29ec960dbf193efa4e892c93cf284d408d2f9e48c8d52561c9bca27d86e6c1aea2d632da34010852e508f18a2bf639e01054255f3f492aa2322339566abe1fb7378447047a243d002958c7dca4d400dbc4542af2244d9a6dc60dafd34659bf441a93e8fe3ad152106854b41fd4ea1af84f02bdc2be68d6c8f48cb4a688a6ae4ecf57f85629b1479be84d176197a3f91896d89b5d51492af581694da3bd4a5edf5e1b760b8cbf9103cabbaec38060efec29d9b6b71854ab10b02db2088b05ffc37e60bafcd3d5a3aeba272fc83f49cfbdd3d5d2b2e2fb7556864f3c54ab4c6b01ad6fc630dc375cb04061c44d1d38cac3558235a5fdc575cc87aedc7ff38276a71f2f9dabe21adb0f33e6117ecb8dba4339c25a29118d1aacb9c36afef15df53678fcca8a6d8f2d2cfd039c4faa727830a0690b121dece67905a7e67380ecf1aedbe914cce388760033780f40ee880a143b1830a0e2593ed4b439f48003a5dfef9ddd2f02dc1f1bc79233fc71e5a9ceaf89ca1bc58127ea1b2a835f4dd9f30d76eb075cb0b54490f7e964cebb77920a9372694a7f7187def5e7d10fe60d83f2b1b69912a0287baeb53b621932da68fa4b70b08b5b0ddf828af861bbb84141c14ed8d37297241ad5ff52d2d2d1ee7700c5fc4b65865fea76bb0b95c972443101e3410e1044c5eb0f8a9ec2adfc0ac98a631e166e7a954f277ec0a9b133cd82c4c13a3030fefe0d1fc31119d781fb64a70026c921c411097fcb1bf94a571bd784e3996c7f0d95ae76ce78d56965f2eea89721e281564b335d88ce3cdb1ba786a3b6e647f1866937c3e68d5dcbf706362ea83aaf951a6c5ab2ec7611ac637577d7a09ca40a4c29db00a170b1aa511d49ce922af2c54b21ab5a5e4059638533f1ceaa4093e11e4438d537a771fdbcb52de6b4202be0de7b2c86a03e64908209f4dfb7ca1062c27d473134310f801b265604be0db876e4de65a3733cd5ea2d80b60f6cdb604d0383cacabd5d0a9a70b98c9c98428f3e809fd83816557b5670862f0785ae1d4d88803782e102619dc82aed453a81facbee289e0b62115c526903505621da3f0fdfae4581d7ac689667bab2c22028e36035b8398b2a66728e8592aee291766e1511044a864f019f01573be8188b3a9f4b7576cbd67f3e10e7cc251d041bf4eb66349a520c3a1309e5c5e7c90efda7083a8c684333b39bc5f6b669ca84914dfc146093af77c89ed8d9bd52f0ac527041f411fcb9ea29eaee1955d477ceb16c541081c468095d5db9cb4609f301a26a4477a35d8672a2eb865406c3a89500843d3af1d469fac0b918ed5fae6c94e043d0e74651f5ea0818b34e7aeb175037cfd10fe96cee937cf40a6830ab1ec947cb3ffead05f67bedbd2b0018e40693f87741b87a6bee3c73374aa732431bfcc3f12b8f48b6c40d84ea0472577c5154f74ffc3890065cc0c44cb66deb10de7bc8728f91a1c3fd77ae968127a19b007169003ccd599e3009deadf143ccd6a3de6fb2062811333c61da5437e914c5d36deb998225f348b53d5efd11d2fe2a374fceb23d7196d4a6c70bdba41954f1876b1be8c4cfd5bb3e7f05acfa1b32f3936e5a577d68c2ebfef8b1ec8dcf7bfcfa65d43d0a4646b442b3dc7ca76fd14428e599f8c838cc6abdc706b63baf4c4301489c3ab09627aeedb78f7852556838f3fc52e49742573e944974bc1bd044029dde8d23acb0c1f4e0b963821725efb501b59353eaf850f70ab3745b2296b87d03341f278f029fbe3cbc8f3d91a5fff2f4f96efdcf3c29e51bb7278bc0f6f78b9b27362ad421336ee88cd5f2e8221c2d2420c7fc2c50a64fc7abc77068b3ed81eb5ce64313e2656cc097163692107717bea07e2b1d2b41a7a191e2c3b360a0ce304f9a4e179bcbf892eed986caef5c14ab8fc85a2d2626c6314c578b21d74793f963aaf3bbc75792e05bb783b2e44ff1ceccaef8e75d1876ace4530aa79fb2ead3af6ec7f1fdb92cbc05f3311898eb6cd65c20725b016466f9b5b128e9daea251399273dcaa346ffe87140db7dad381b32c8d2cc1105d8b8adb8ca78c4798935a75efcd67ac6cfcb347b956998503a5a711e06f721264be62f5e03aea91838a933b2567e409d4bbc7d2dd1de4ffa982a6acefc70dd76c189571070cf76fab5d4628269fd51f389b4249d64c8c74a633e80a3be44620e348d569a733003f288760307e5b0f199d7adf3a11e82ebe4b0311c14c5d504522c7f5b69420d8958d6d738010aec6c2ab3a2d261075255e13395993156308c941ab184468d6ccb2d89d5403e59451d5050d4b382cc8480da0d3dd8080a20509082142325263685e806bc8f4cdef71f7f7eec3c11bb940a314ecd16c810a15ec28d666d4cbc1e05398224ebd40a94ddc82b50e305054d4c5921b1b546cd0c5b46fb913970fb4fb730f05b717e01407e3d57877d8af4a3d7ad6a591a4f503000c23652c559a314a24b619cb32a75ac7c06c2e9a8ee250e07974899e27d9679621066cf77e0f834a8194f888ce16627a3ff5c3dc2adec24a3027bf6b30995797e6e8aa02d2465376b3a51b00f6b936943f8549caba77412375381f60fe50b48ec1b5f025e8b184eb01a945f5c835c1064fc812fc865b47f956fe684468a97c1f942037f03a5a7de74318d48c4aa640c4e5290e377d0f3df719b142398b43bc3b49501776f2c9435c955c9e49a38e2ee216f0726f5a8790e2e3b44b573e1fbb3f413c0b00b0f6f24f30f4bf04da1252c20f8bc2e2c11871508d7cee96842ffd933e1efbd5d21959691591134345144c23d99a76570d1a0569021693d4a4e9eb8bebf72920bd7129913b68b399d3170ed96fe7e0fc66e4a9f0a3a0c1c37f1415d9b492cc080e89794cfdae5d5e1e2fa0828e0e03062fa2c4396cc0d3aa80f33e6427d91299f38c44718e264480ce7e5e517d7283de3d2be6adbb31985595cd34088a62a79675b66874530620e4c65b45c2fb4cd0119b2f627baa0924b09073a1e4280079bdf3eef06690a0ae6ed7e3a2bf4e8dc4ade24ab82ad89be1e66d470ad60d0757133d54d30872e0d1beaab797efff8185f318ef08db6aa3ac09e16a7da7286550bdef631a5e05467c48d1440647a829370c4eceffa074ebbe215ef709ec9a71c4e83947a7038264aeaeb3149a48c736f699d9664e0123261c6b660b57fc16fe46b5e92f5c1f0fa5a45f75ad7d2e6e0ddd82bca53a1241038712130c04fd90496345324f5a317170c427aac046fba57c3add2f0c455f79820db709734f31ef7520a9652e01b62db251d6a1a1b4c568452d182cedfc56015c5150149904593954373456fa91c42689a559f2604eeebdd775fa88d8af296a435db397fab44195268fbcae9b706e1ed6347a1e82cb3982b6c5fa9e42abc745f767ccb23044bf3268cb8937f6d52b1345dd554a568808a1a533ffe3ebd4568b750efe2c747d2d9062334daa1cf93ae2a90be5aa9a589608b20b930935f0f9bc0f7b7efa0b63e7521aaf63a4e7affd0057b3e7db0fd0bb5570327c931e4ac7fe18e24776ca1599613c4b8ffcb67a7141f508a4cd4ddaccddc8b79bfb338e4b14842c7e565d7898c6ee3c705fd911ec2ca254548b6442ec46959fe649e4e7a826b20e2f68c82462dfc1403b21a1717a5c170800c003a8bbb2b31301d25e86d6240ca1d80491685025b71b4d1848f47caa83ab0e288d31adcf836c522c436fbd39e9c3b1c007b6d0950234ee5b75ec3e513824925c7115a0cad607e569b30c1f3b5e7bd8e818b9ccefa105d82af18571405e8279e07b9e2e6268ab02d2d6bfa633b1f9d008002c208206b9c0fd4bbc4b979e8e7dccfe8da9018e90f7e7996737e8df2bbf84de034dab3c4da88cbf5e3a5daf888f419d022ffc48ac53de0b88b0d5e12df0896c3b138502607d7c15ebc8d5edd673c7bd494ecc63270fd08bf73bac988978d367985d574984c455d8c7ae709d8c1c4334edd890754976b009c0111379665e600fedf7d04fb3cb53ad4befb99f16343a9393f76473e3e9a482ceeb396794f8fa9632ebec6b19e8a1ff2b23862272ee14c8001c44cfaef5be0e663dacda75074853ee8b1206909100d8599a67363f9538806d70f2d8c40ff2124e51a8d540f97b6a3fbed45d775fabbc3a65e352d1349d12e3418858ac2ea1ff1023cee56d7c0d054d702fb3e165b22c2aafc410127736b429eae68f32085ab58ec3ab7ee0d0c8072a15e0178f0708b05455458f0ce450addeab60cfb262134d60abcfa86adf06df120283f72041d9c6e8cb2b2df1cad1c327e7ad1cb6592fc628528a00598de058ded34e9c01706d65a5826c8fdb9b8a0ad020260fa6c549a50cd3a5cd0cf2d761383db82cade6d4aa30c170dad4694ae18196847230827164da38880eeb21ee124a200c803f2ba9b9658d9c1c65bb02ee0769ba8c46a6cf93fcebb93223fdf326d4b643a29aac45c5349326285dfdf55475c2396a6ac5a60437a45bef9497ce3e94d391824ec50cbb10f75069278002802e679088492f3fe3986e112a760c197a156be025ffa9909797091960174cb575879480f42a95e45a6f4e01c775585bc6829db597cecc9e6a44dc387bdacae6bc1a93f4e2f9e0787eedb05ef173ecb05afe972446c84b1810320a076935a3b5455f963cf83188bbdbc01e82866dcdf341f734f06dd22bfa85f8535ae4eee5680d4735a35f50f00f09c0eedddae4cba43a77c4223d0c97a92b71737d93d1d7d310da354f6ca8c54d443aa7110c8d893d3300386c34e391041eb3cc601621951b9f7c0be2c15547d9f143cd7e0eb72d18b21fe41806ba2878936436c8adc724ad855022334d348031a749c758bd07a1a189fb51ab34002f0e9a7833af2e9eeec13f67ae59de7d3ef9a6b4820811279ff183e6654fe95f674b6f28ec95f86794868f512d45980e1c767560ed76902de86d647c8c982325f0e9b9cc648a7a38a8fb96126de1a862c33fbe78675c541188a5fbe7f0c939e5a3190244c908cf756ae9b18e7d0cd949bc2fd910d739f073a1222cb2516b3151d047ffad38cdb8a2e0d1aab5b277db2840bc2c93b32fd1dc8764d035276e2f2fa345cf6b5d2b6791335259a285472c486258b4a29c2a86bbf0375dacfe62aee06648c7399a053565de8a9f4f472f7d119cb425b8e3df9955d7b4fd41fb2eacc499ae161383595a5c0a2b536f2ba33819f47df59c04e68139e01e5e35a62595af10fdea3c520515bd28d72c626c03718d6c491d3ee63edaa5b2db64b8c91f99b25d94101b5a8ce077e9c5eea25bf55d0a3c92056980df2c94da3765ec8a0b93ae93dcc94a0b1996ad87ed0b4d2891d7a616cff4a65c0232a475fd8aff88618b941c5a21c379d06c567145aaee68e64444cf1c2d476bfa829281c777be02a3d69518930ff2b32637f3e78fa58c2b715e712043e3db3480e5f3fd2f535c430e151d8939e5c4b4cf00603e3c86e24c60487d209c2e49c5911f75cc370d9ff98c7f8f407497f05f3371edf567d847603b8021cee03ba55bbab5620562a5207a9c758778fde96d3281d9707870e7e4f64ed67cf90fb456f5c72effeba7157c06028cde519968e9ff1d8211faca8c81e2cddef4a82e8dca5dc0f8192f1046d099ef8073fc08f104bf6de4de4de52a62465780af10af40a5f5972a725c595afd2ca9dd1cfb72dabecb5e012be9edade03bfd111971b1d71b72c5d2df804e429ee4b413a9c669ee27e04c51d4fad96132a64943c3b33f29cdf5991b91f534af28f299f3cc71c66803fe608caf3739991670c4c849979eae5856c92672cc6893cbf462677c05c33cbf3c71a28799e82f2fc594c6cf2c4c8f28c61e519d352f931c695678b923cbf93c99d2ecf6f59c91d963c7f6cf1c9f34484ccbd144f3399e2e69f8420459ada898cccd9d43cb067c2b0ca3033174fb353ac5534b593175245e3c6169e662e965e34b55695624de3865495bc90288e25845962536bd57cee4f509efb154c13e429aef4729146c853b156d1144196bc28bd724d02668461663440495c9a9adc2965ee6b565f33933b5ee6be068acd4beebc64ee534072e73ef7aaa584f2890a26ad541132f7632a2873636de5134dadd54a4e54d4e7ea8f35abccd557b93594b92ff3c4a13e69844552ee87898cbe88cd9fc895395a268530408de260a0c81cee3f4ca4c8cd30449039dcc38c2163e0dec19e19c2cc6060949c665cd76a15890aa922b540a2b8eface8d6c8e3e7cadc7b1efe1ec4de93fcb927b9fb1c1d713b5054bbd9852ff2f7beb24432b9e384547dae8e2577bee75e4ad5d7829aa4b2463f62597247f463098ccc5556e6de13e1ae1e915f0b6492dccff591dc3fd2d4c612181daa8dccfd48aa652e071032f7234d2d732fc2396632e75402e3349339dcb717a24c56b86f64d113993033b9339ff3428a7d2573fa45a2cc7136c4519339dcf3e08ea759e67e849965eec7d36c86ae697e3a59260de5ed25cd0766cf3f0e8fb26c15f73d872f75da934aca8d6ca3b627656f7e6017786c76e27b838bedbffd0f2ed2df1e0810c9bd41eeace4ed13a0838b3a502326dc9147de78d8b0bde4feeac8dcebb8e8cf3d0f1787e40e8ecc75b2cc616efb4d05086d16ded0a86d9433d29037019525b7baf37d879f96cf531dd15b0bcb637db9582413d5e8c1b72816a9028044f5175617aa95e4f9fd006092e7aba5a7405cbdb0fac81c4b7f13fd047f5011f6b7b83efd59c47390c903307a30a9cbf69a4ee1b5ccb94959b78abf46d1129dd985ca1f6d785dd77dae4eef9128b4ad7bef0cab944cb9210e8bd228caa351365827dcc9639c630d7d348a3e0f1e3c5c9c3cf4e97b3307923ecc0d6efd910716dd77210f1e2633ae0d1b0472b394394468ae4e6e7f0dbd158d6c881fdb14cdb2ffe546dbb3474378ae22a0c9456872e5b0cc9e6b0444b1e4b8bbba46a8c068e7eabfab6b44cef68d43a8e9d6347505f6740966a2c91c98194c4c7e071393e10848e6b8fc49e5d3c468742055a417490612e53fd27c917108c91dee676272c7be8ae82da64f7ab513241934a160b813221ca42db2cfe860351393390e138365e7421c4232c7df64850bcbce85b2ecacdab9b2f7a8ce4c67ae14e68b46398c0c26d628bb82188d4cc405cf23b1b2fc29cbd26619cbde4fe92c42829921a8d34cfe995a6725cd344a52fa3ee79c73ce70a4df3ec46133a746cde4693dd5a33aa90b3c6ffe4044297f435079ceef5e97f33bcf70744056436e488edc0dc976644372b723950677fcecb7ad6e9dc1bdf88be2fa7b28027b821862aa52ac70e1d1196b5dfc3a35bf51d21480ecd3fd6776af6bcdc9f2b727eef8651d5f8b762cc190e5572777fcb26d558a7ad729370fe92b0056f01a48f7007177b928905a4120dbc6626d20102efb7ba42d8b4b61345a96ce7256cb5a363494c59d2f83585b37ce67fe310ac91ec264ce0e58be5ea5e97c535cd17bd2e56c3aea66a9bd249bd249bda6737650ca9850aa8f1e3ba06cbf8cbc7ddd416994ddb6b9d5914c902dd3ef4cc3d101b99b35cafac592b3a2d6a5df5866beca6f7fb1cc0cb1786f5bc1a7a013cd538d25cfc592c7abad5befdbbf71b9a8f2f66f5e2ed6b77f0373717b9aeddf28913bdf12b923fa8a4f414d83fd155ab627211e9aa78627202bee78e3339e80b21d6b62a5a14ec11d6f7c6a62a00fdbabbc047da87fc31b1f4fd91b5615772c0d592c6ed3867a68be2e2ecd8b062677beb74fb385dc11bd7d9a988b9dac9b654bf3bab30cd4dedbbf9954e6297be3f3bd714124b7e5624dcc53f63ddbbf61b9d86feac2f106168e37af6cbf26369a2a0aaef7b5c99d3f69aaa0b982f424ec2434248a2485e40488468749349963439026736c1477ec682c9963df4bc20c6664fb3304c5f052c191fbfa10589bdcba9239fefea52948d509a8242477bab72fa5ea448644d91f4b6964fb34415364fba596dca15f1a5a9942b6bf222477488f4727a0d6c1898cee8b6cdfbe680a5607a32e96d241b63fd2046594926c7f2c0da17c644e93fe6d2cdb9883d9fe0d93568d9ed6c4be26d6aa893925d7f378e3530380235b2b6eff8dcfecd147c61b56b63f41921037c2e0b2606d72e78f302e20342e9963291ad9fe88a308d93e0e20b9437a4b833cfa165564fb332eb9e30f02a1c922a16cdffb60c8f64500183b5ab6dfc9acbdb7937d3880e40e7dfb342e4bb7c8238c2bdb77f0078e4cc3544ce6d83759e1d6c480e0c8a490e6b06c9fe251c736ca3e98caf63dd10722b930b45cec6f228f35b16c9fc8cc373e72a7b3ade941f712fcc2217eccdc85289963ff878eec8558dc777aafcdf68649e7ba37ac46d9efc21b9f46a1b27dbb82db3fdef864fbf26443213b60b671b8e1c9d3d8529398b3695f1d62526bdd515ab555da8f358d4c690d6292471e6d48b1fa409a214593a782e48e976b1999d2713b92e91a99d629648ac64c8ad6cb63f541a6a3bde28e35883e35652f8a924f0b777ea5b56a0b2b2da851b406d595cca9341eada20fb3c4521ae3c51d6b50a61d85d6f6e9d7345ac53dfd3ad42afb744aabb61593566d6191997b58ad123dfdadc9e6a455321d5e1126b285b66575044f9ec6cd95fdbd1b8008026dea6076c36c183831f9c66ab58a3eca6795db9ff01fcea04acca73ec2a851dca01fbcba794fee2869536a76a3d168400041a3d180a0d168564ca137e8e0a9c959195851155b9256b58afafce1863366ddeb8e9256739126bbd1e66a818167bdef05d7df7b8e5386b651eede2d4f9e4639144312c2584dd69323b6c85ecb34aa559ee7eb9092e7ebfc90811655683b5a25c3a83d79826a57ad0bd3a3b5c1248f324a9e95fac4c9f3e7e3cc1e33cfff4eb387bb4c148f3c51797a5398b8378b43c2a4d6eeb66d4335f8d4e053038bc9f4d9b68fc9c764259bcadfa4941d8e434c503612b46f5572ee9b0ff95ca601c47bd00d6e437629dba1d3797bd48ca9513f66de3cefd9f21636933c16e1b66da399ab20cbaba237dc83d5a3559b6baed65aabacdd75dbb6ee29b72e3c79aa49f4f43bcefcf44eb4bd7c153c4d555cda8970e5da60a20926aa4082568e8b1900598eb3631ce18b15508108b5c3325d48040190c084c5230a8df074159736ea45dec4e378b7f007fdf93e9cebc289293c44745f443731042ff068e16f84c7136109f6705f44deb04c0fa20e77a18c1712f146788cf0f8f0ed0b79f274434c793e8787987986e304394993b3abb81bf57088e9eb6ca6d8e63904eb244ad6c9527644167972e18beef340dbaa21df5c327bd4efc01cbc0c769d8fee46596549902f1c67fe46fbf7693752f991e82df8742eb1200e5d06c3b90404023ef7de68c4813da35168924f9a0ffe683467373388bbf7e1acf1cbcdc47273725836ca69923b99f84fb0d2f9db199e4cbfbc5f7fac2bbae0053234309cf942e9a971fa78a1f41410909989f88072f940833cd51f93a12f4ff58f42daf254fb207dd0610462eb29e9a24c0fe07f6028657a203d6884e77bf0c19008f049a1057b20fd1712f13d29949ea2b191be72b7b2f712dc61f28c4294a724f6e129f920a69fe779d89378dc5aae2aab330fd391ce3cd572d1adbdd764fa1f5179a4addc51dcd185727f3f415d2648fdf9359431924567dc47c2441eefcc8fb46e9c11aec12d785324bd4c729b06ee91781ed934d8ef943d7d3fc1d10894d862a7b4525aa928fc48d8768afb8925be8db2dcfb68eeadb5a18ce86576b04714f2006917777ecb46a11a352dc77de638111e871022776f45ef494e148e42703f6c184a1ad256715447d6399d1a6cfb041d9fbebf10e9f2bae3cda5567da6d9a65695dac31de8a0e56b050e2b7b525c4a61c8f2c7091ce451963f4a2899487882d241461e798c918d904709f40412f22883b2cbda136264ff92c95fc745024cc1074fb8c0064aa002143cfe37b858a489377c9ab821e58c1f1e4765f9f3c40af24a963f4f30b9433a745e7ae47a963f4a20d184db59fe289164891f258c702ce896e5cf122f78f70f483b8c7c20c60f8ef084da12a05084096cc1441557004d99820b201e3880021d2ca103d816d09801114a3b9861031750018c26d0f081154320e28916ba5083284628e309637c3b4cc1460aba60e267052880412181138ec0cac2a7096450210435ca50421a3518c38d266c0481013cbc087251f1022b204101107858d9810152980c7581c4166e2034e3e1892fb2f045cb096fb4b1051bfc6087151396c0411b515e5848430c232f68420b2a6a57f00212301f6406cc275dcbe6fb5a5b4f1a0e26fc2c093289965c99209eeb7baea2ecb7df1163e451277b97023cd3287fafd9fff4ca37598a330c971bae3cdae05e5fad1a67b2f099564d5a42714a3ecff7ad07edd2b3c5bb449dc5722bad2b9f15773ead52b6c6cee5ae62379feb6ea1808311e89900c8cb4285bd75daa8d6f7893a8f65f9f3da0e8f3c4e59cabbd95651af03459f159644b9bba9a0e81d3fcbbad23267ca1cfb79e1d6535efaa4143d8b2bcb53b4bac88f0cf92d1bed5a79acad2ce574f9464b9052ba4b4b896545e59246e08ba86168893e28eece6d9febce77f9b2519486d4a935c3dd694b955377c29dff4d7b8685c29d4f1be55264b9ad76ddd1c093a7d1a394ba3bc9051cdd982e0137cc2e0cc92457248b2c4396d103f5fa438bb5566b52a8d66a4038800f215a6462642c47e7533967ac0d3c1af539c1f1d956d5aae2bfb9cb2bdc49f3551adc9a34b83484e83aeba1a323c8cc602fdd8b03d37c7506f7b66a36f5893fd0ae6a6acc3ef4da506dd6bd9e40290d699db9cdccc53a05c8c35a0b1a9addda506dd6bd648e7d422df77b4f6f25f303abb5d65ab95aab0e6f745544dd377ae96ca9ce2aacc22aacd2ca458bf7495e7d91fb7dae8430579b8e2a7279b12f5f37744d30d4043031b5862b9d95a7d3ff89685dc417a3237385fb261dbaeac01ef792f0628aa1f198afcee0e2a8b461dd1a77d6cec331e95ccd9ab972b17201cb3e3024c0baa12b612b54b8f7f4d9c6ed50f6acb57bdbbabb3b1ceb7b9db391684a299dc1f556583a0f7ce94097af653c9d729f5a24d6599df5ebecd03c75160489dab66dc534eb045f4c96cb0ef638cc1793e5d3ca4d9f319fcc67fda5d3d1485d11a17a32132482a826a5ccbeb4d274fdab833d5e2d25c39a60683c8646e6ab33b8337db797dbdc4239ebac70278e4fb6aafae406e9ac93e6ab995bff272748676bacb3aeb3327048028585fe24b0c77d729dc966b3f58326d350549339fd56caac933207e87d306785c29ddce65fbfd639e7276714eefc9eedb3576d58d98525ac262cf199724d4341d7e58c309488f1e48eb2fc5112b3819216f415942c71ddd216fa07f7a50960dc9620ac71c11d2ce10343c3678a273e4ad4e002162e4b963f49486921dc9be54f12657812d766f9930414efe28259fe24d183a1bb92e54f125af4142ecdf227091870e18ab2fc49c295440b89576581274f6369829b94db53b0a752f74aa95359bd9f39a15cfcf0fc707539f823860f8ceae3a97e2ea42d0f2b4b09a3eecf6787899ca7fb24b5c61110ea93d69822f77f69b4a8e272b04555664d644c626012d894dc2aaf8f0d1520af7d354b23f6529935a438b28acbc52ea3a3a8b414954e43a5d950e9292a346ca0963d4412e593fb19c5ad4f412038b2bf376732a73e888313296273cb9ced457e828ca7ccd9b62244b37b64432973b66d76ad1f3559f4d5d51ab9d6a730b9e35f558072addf65b448f295dca1a4d914191bb1346052481d25d7aee58974b0466eab04c8fae0191bb19787a2188723935c2e72513ad52fe595068c8d586e6e8a2c779259eeead3b55af216724145a074c769cf69a4e46271c35e6bab0bd8d34a8e605902ab85891529b4520a96a8a01163b9028afb8495afd82339604252824be5c8cf92111382ee91319880660891cc70e2f3f104a0111598f07c2c6106fe1ca929d13561d604a0ef1ab144040598b7c412364aac4bc1129c8f282c11164c6c42f60647541f67b0b82e5ad48794d6668427dc071356558a4ffb50024d8316c5074dcafd41a284abfa70c20b0997fd39020b1c4f7853a36afbe0081635e2d6acd167dc2f829371696ce0ab0b9382f6e2aa64f99344094de27259fe24418282fb92e58f1155985d52963f4644c9f387708332358011403f4620b19269963f4620c9e3fd30a634516b6bdd368eb35634f158b3e881d15c5f9de77d967e2038b2f493f9ca9c510f090442b3255d7b55e69cd25359017b56c0eeeeee9b251e82ca3d33f1b7b8b84c97d2ec796979797929b1acbcbca8dc979717d2cb087c79f9bc4e64b9971cde141e8c18f7f3e469ac5965fadb4bd797650dee480a2205b56a46a1b9e83d7d9210290dd210890d10c9ed9648147d2abb2532a5b49f648614492d990a923b2d99925840851449b316e4a0288d727247d22c88048504d42a92ac51148787492e4fd1ef30290b4c8291b820c5485f348a3ee9d528fa2d4c72d228fab34651288da24f0222cdc02dee489a9166a459a6db7c992d94623411448a3225d327d1aecf6dd2e2a4c1107d929456c99f551a99925a99fe4862a396e974638c3cde55a69749a624a14c7fab93d46ad5486a92a9ab552369366b5593568d754572d2aaf913461e495728c0c7ce894cbfe9a4a4a04cdffbc11dd2c9beb83123a909b5c99561b811d41847a6ab5cb312c1a073cdd90e02f1bcee1389baaf9bd96b6fa7b7cd721cd843a4fbd111d7b3b41da6224ecaea238ac99cf9262bdc194aeeab4fe6befa74aead8939e79c4e1ad5d5d5a8aead46f593b2d75ff7cfb006ade0fa8f35a84b51682ed62f6a6c56835ab3564d28724726cf7ee7b2122d2b87c293a71186965b466b168daab046f5d3e42f83d9ab5da7acb472a3fa6a543f295b719920d279ec62b3c7ac33c8fdb4f653dcc53a1988e47631b9c392fbbb2f5a45bf42e954ffac515d5bb96bab554e5abcd2637cb48fb6f5e5a28c0edb6f211193a786326f84c7a1b8df593e39028c4cc3b19be5e672f745a3c22e76e48e77ec6230b428229075b2dc5fbb70877432e9004f9ec6198632f7de17c5c5913d0781e0c8f6dff3306d9494bfc9f7e4d7b2ca30acb257bfd111b713edb4a86774c4b53e9e4dad5136531ac5fde8884bf369760282146166a71a6a8dcc4d21737f4223732af95484cc3d0c116c126e134c5278353217c27021730f3ae1aafccaabfccac75a32c5bdf5c2d1de091373f1e4738a650e55933bf649b52f7665a3e6c907c5fd8a0a9e3e3ead62d21c8b966bad36dd936e367640b9aa541b11d8534ba552a9b4b24232a3bea4587a798afb59f2a2499e5f9d902cdff2a59fdf751d2928cf3a2edf2e3fda5ccb2d1f539b79cdc06a663333335f43bf6d4e14192c0002917ca42cc228d0a289d58e9a970e8fd51d5b5a3a99e6c3f049abbcefa71fd3923be0770b242ac615f38299c91dffd19b5a72c7fecccb2bfd1853ab41332d312d90312ed237cb8f315665e5c7985aeeb7f8e62573da756a4c64dcf1b240ccc20a4b3299d3dfd13aa16ea8abe1ae06753ea421d2908b246bef250191d2903b6fdcee47125027e67e173cd6cc727f0b2ee1d159481f263257544678f4235b1cc1a3ed3cf39ac9026ce3ce70d128116021e41a6f50c1e5a34124770c45b52cc6bc3ad531afdc1f66d12acf430801820f78608890b103417060031ac800062e6001202a4081094820021078c00f0ef0a1013d3080871d74c861010a48000e08087203901f3d0730008f4df65100020cc0861e3b35f0105534ec98410032e8c410809cf0b10e00c0d072bd60b11c3217897c7f8e59ab48df1fbee48e938672bf943d484332867efb1e0e3efd0dae7914c6f91cf8e661c0a84fe11caf03c3f000c0a9c71800ff58c73b1e652238c98fde7b4cc3e3cdeff1c7e3f5f718e4b9ad11be4df088e7b21e9378bc268b1a5858f3aa7909819384e08d1062b55aad7844f043e0220f023cc47b0083e03f80857821d8033f047fe03b8085fc88873c0770073e083cbe0630077e033888c700d6c067006fe02d8031f017c019f80a600b3c10f8023f015c81a70006e2238027f012c014f807e0083c04b004de01f801ff0386c037003be07dc03f3c037003be07ecc3ef8019f034f8f43ce01e3e07bcc3eb80797805e01c7e015887c7012be0138017f041300e8f009c80078283fc0d1801df8381fc0f7cc31b00f73c115cf307c03fde061be079f001de07b6f98c799e00d8c71700e7b70113e007800bf03bd886ef8107f03cf0ced7807bbc0af37811d7f03bb0ea69c0e20b00eff819300daf8305f032e0193e0058e763c0327c8803f0393886c738fcc739eff8cb31531ad56318be5a35d6bc72cbac626aac3b86af31a6e622cdf7d7c05cc4df5f13ab9115c117e6a9fe10e01b6b1a2eace655f3aac9227cb938c4f787301785f8fe30e62208be3f94b9f881ef0f672e7ae0fb432017877c7f18e4a290ef0f692e8edf1f0ab9d881ef0f875c0ce2fbc39a8b1cf87e9b958b1bf87e1b1f1735f0fd362c1733f0fd362d1731f0fd362e172ff0fd362f172df0fd36301781f87e9b988b15f87e1b998b14f87e9b998b13f87e1b201725f0fd36412e46e0fb6d683642364336b5d3eae473629d5a27d7e975829d6227d96976023a059d6827a1d3d0a976b372f1c70deba675e3b209931831dfe0d1027c242c8fcdf7dfc06e6237b29bd90dd0cd0ded46e866e8a686b3c2f1c161e1e0b8705e38309c188e0c6786038413e4621826d1823e129627fc7e1c9a8b3abe1f47c845007c3fce908b307c3f4ecdc5d4f7e758b988fafe1c3e2ee6f8fe1c2c1771be3f47cbc59befcfe172f1f4fd395e2ed67c3bcdbb3b7eff772ce34ff346785a5a8e7b88799a9008f9830615433c319efd3d106341e487c0e12b8485b15016ce42a03028a48542e15058b359d9f8d8b06c5a362e9b970dcc266623b399d90045c0866623643364535bf9b05aae172c269b0105d184866a37ab1b9f1bd64debc6e5a91bd84dec467633bb01ba09baa1dd08dd0cddd47056383e382c9c168e0be78503c389e1c87066384038341c219c219c5a8e550e9f1cac1cad1cae50f452ced03d8e199286fe1a9c24026f44112b9e9ab7c13e96874878f3aa4142e47c7f15723100df5f875c8ce15be75b86efdf7c5c14c0f76f2c1767f8feade5e28eefdf5c2ed2f0fddbcb45d5f76f3017c56f1edfbfc95cace1fbb7998b3bdfbf01b9d8e3fbb720176df8fe8de6e200be7f13729100dfbf0db95880efdf6a2efaf87e6ee562fe7ecec7459eefe7582e1ae0fbb9968b07f87ecee562cff7732f177f7c3f077311c8f77331176ff87e4ee66290efe7662e22e0fb39201771f87e2ec8c5047c3f47735101dfcf09b9b880ef1cbe9fabb9a8c3f7db958b3b7cbff5719187efb72c1719f0fdb6e5620fdf80efb72f177df87e0b73d101df6f632efef0fd56e6e203bedfce5c84c0f75b20176f6e5a37ac1b9f9bd5a9761a3a099d68a7a013d06976929d6227d8e975729d5a27d6c9e7b4b2a9d90cd908d9d06c823c65036433b391d9d8c06c5e362e9b960dcbc6c766158643a150480b8342a07016cac210169ac8880036b5a40c43e01621700b0870cb07708b0770cb10dc2204b78cb8a503b82508dcc201dcb201dca201dc9201ec8201ec7201ec6201ec020476a90076a10076990076910076890076810076790076f901bb3800bbf8805d1a805d7ac02f0cc02f3ce0971df08b0ef82507fcf25a007e812900bfc412805f6438e0971902f00b5010fc1274037ea101c12f423ff0cb500f7ea91d009b5606c0261f1e6c6281d8d49239fd199b5c3eb0e955006c8211009b6203c026990dd834eb814d3bd8540336f1c026119b54d8440386d9816166c03002c0303260181d0c1303868179aa3f00182607c3e8c03000c0303060189aa7fa5318068561863cd59f03c3d43cd58f83636e70cc09c7b03cd55f83636cbc977286ef4d53481afa439c0339c3486f906180206968181a5c31ae324ff53fae334ff53bae2d2d930a46130b32bd411ec317cd810d5f630e28630ed112ee38f39ae16226e6228eeff7b86854c7b637aee771e625792658f19c9ea8e515f3fda6537e8c451c920d89480a359ea831b934343807cc539522b992f615af4639fed13a0d7e56be77e62bc29656a35a9c4040e66342991e629ee6694222260a9018e3c513f346783cae89eb99664ac2f53cd6f0950316d343c7338313247344516e4bcbc5ff9a1f2d4d4baba595fb2fcbc50fc31a6b69c2f01526b9328fe16bd4e1c03158f2cc6019bcea78c298a73a7ce5ce1e83250f0c963c222cdc966102465eda013ff0e469b42e347bd0b0c6660cfefe4e05b933c3da8537ed2acfd54cc7daeb0304cbe206824693349ac974af1b71c739f4ea2117edbb10cb7fec9abffd186e68ab0db9c83d37b4d5d82c13a179e4865ed9a5b835367b706bc818ba903b5c16648e3f37a4c51db91ab7d5b6ad56c3f151190b7227bb21c54fa686b2202717a48afe50c988ec5238cff63e3a8c3c9e5eb8792c4d149bb53a523a29fdc2954fe7386582d0d5aa669a251864ae5679be07f95a356b70fb474adcf922326eff4c923d8859e3e95a7627b39ddb449c83405c54ab10da28696d1322bb71de7522327cabf89b02d79bcb727bb541d0e40be1e295ce23f744c16c3263e8e7beeed03cdd7b5c95e26e2f830315724321b9697247f4fd44e69c597b6feb366df6984f660cfdfd24f737c1cde3755f102e3a8fcc357b01c13a68c6cac8cde10934a1346af664f698409031f4b710644eff38c5c8fd1e6dda232cbc97a00f93c70b892882a70b1be62923cc1060248bc0948b98721d42bee132ce4747e706d6eaf8e30f9cb210ffaf3f26468c71c8c9b3d87671b997b96d0e2398798634fcc0296fa110fa35fc41436f25bc6f756576ee7b1cd2c9f21797e3b6504815d2e164324d42a0d3070155a8428b35c8a8a2e585231cb182d7f646092e72ff0d6a2266f2d1842c0561ac960042ad8c2335efa70915c8e4168344bf622cb6a748b498bffdc4e2fa9473fa7079722778feb3c796e5a3668f6f9565269e49411f401f52b3bed37f130eb5d29709b27d7f8732a61f4db7d2d932b7c2eb2c4f5ed7e4ce1db8df5e823c88ded6b72e9e807b1196e9c1bee8ed8b420ecbf4b0bde8b717d9506ea1f5d49c3d95a83569030a916f95b7efc97a30ca1de90cc9933c6574ca7e3a73f1ad7593e97fbe87e3cd74962d0baea8bb74f643a77ab4e38bdedb70d4f13d178ea73cca32be86e34c1e65194d5b52286fe49997c1f10e73d1659e6a180e3cf33178cb303162dc9967799af744600fcdccdb199a99b0c2d030717fe5184c330edc92f13c83a5cc81a10965a364b0cc9d6930132562185d090c963906cf8c2394c14314b1ca33211661e871dc08e66530ccc76099b91c62e9298c5b39c3f8bce0d2bbe096d2b3bcc954faad642ab1b47d92456fc22ef3278dea2f619fb9e08d75c565f9ee5d70296f575cef5d304bdeaeb8dfbbe015599e0fbe0b56c9db1577f42ef8ca77c1a4bc5d71ef6f575c173ccadb1577be158d6482d85c7a9b4be118825c7a170ce6162c654e29940db4813d2b2bd85faaa12369ac71cac639d4ae06caa3cb3e3bc467d3800b28dcdf37594dab5451bf19f9253aeb8886251197bb336d557f4377b42d45f2bdfe7cceea93ca9c52294f6aafa5db675d34cde44d3453e2e69cd3abe7813dded50dfc31337dda54349209926b381261abb0adb2fb7b52e67410b4d62a2a873c445129ba49b3644e77ad279803cd3d6b79a4ac1d9ca78674c853bd843bf66ad5aa24ab154faf867eae4003e2d55805e143d2460e3e246de460ca32d02a8e522b32d19929ada220648e14ee38595288cc1d196815e771dbb66ddb36753a2053fd47641b720d9d20a47059d6de6b32fdb33c8fdb82274fa30e58177a5e380ee964a22feeccddf74b15ff7a72726649452a4754bc37ee073658ed02c99d0d0644863ced8f2a47ea06d3c9339491c91c2eee882323cb38abdc1d4c46165a1db09a85d590c984d2b1632679cead8bdcf3cf411f79912dd737e9c8eeccb5513cc011e585e38bc2d1d497d36995cfc809779c404976cc24adda50a69924dded3a54ee7478acf29c4a64aa1f0c1e3afd5c771553e49e4eccb63f474eb8720299803e2c48efa349a1ecd490e80730321cb4dcefd1f9dbf785de772f777067f6be5f7a78e6ede54aeeef3a18591e57f29ca21f37307277b2f01b92396edc91c53594595c7267cef01b6271e57e2efc70d0b2b431e2cd8a04cfe6ed5bdd0f74b22ca43ef56a0d472e468cdbc9f21777ec443f746a68df87bf4886e7155cbd0335e724226fef6df8bdb833d36e1b8ab8f73a9cac46f98bda863ad9f1389b1c4047a7ffd4e2e5c2d1f41bdd5cf9061783f054bfb5174f2636882c725f915b683ae9993e8ddac29d69d4947156909c070f1d1d14ca526bc1701c32245730873bb72984be3f7d2756ac5a6f94470d3a328ca911e7c9711c37b912e48d0479a3a395f50b9e3cd971b6bc8bf8329a5ab009bf60172cdb1be9cf935479dfb1cc8ec5c3a709f67024189a4d574d028d28dfb622f21c8dd8cd6e5c178e4548a05ce54c8251830cb9fe98423dcb931e7c8f0526d71f55727d299abe7e291c6b32f72ce158d3e2f22be1785f4ce14b2865ea86a470b42ea194a91118b68452a6be901ba2886c8798795a4e470f416591171268a5bb24a40049f1eb9bd7e93ea7140eff8cf5143d7d48dc6ed956f66422c5db29f9d4f137a7e47e16692679a352466b9db4d639e7cff0709f37347da72477e4c1c3c33997cc1eb3b1a951f225103d83be675f67f610bdb5a337a1792c62826243aee1b823d7702c5205307b88dc4301705f757c0ac02de6b1c36d68d4115787d952eec8f4ad84b24300b3c7ccd4b7f87ea6b8220320cb9f562bfbcbd3d8b45cb9af459a49961f85be1c699e1f176e200e5da6db734dffa3df928f49abe873d3c97439d8d3248f367f3faf48e28e73169bb319f3397fbe60924adafed3a745c9e3d999dc46999ae6a4bf491685ca9c8f33d9c753768ffbfa203e8df08ce71f16d1af9be08f4a61a044818bee22a691af3d0a1e021d329d55f4351ca58e94b213bdb5960b6bfd2d1c6fd6691b48b9494b374c379f42ed736edbb66d45ac9c59f08298a1376adbbebe8ff6e7c22d1c6d0d8798a617e656df5bce3995d45adefc5dce979609777b3bebf424744e296b9d620c194bd75f9632f5add6ad96320da960a594544a2929a5524a2946e528ad42a8bb57afefd57ee13a75f72234d3300b548eb5d61a3e27b7975fdd9da343be5c4321784e6fc9ffcb2829cbd388cfd9831f2b28a5403efbd3972fae3f9d2f232e499342d2e49c73ced944f0a47cd9547afb6814d22b6fcea651d48d524a69534a292545713f4a29a5df97aa58da2c5978b23d29d9c84050b278511f9a440a4df6853bf1568d8d328060593493f61192f244365dd3c9945a96413b74e6cf903ec952d628f9739276e8c81cd00b9776873a8d0a72037ae1caaf20901952ead4bdb9496f8ee6198e45643ad4281521cfa32eea644a2da80c2e60ce72266908cd9e5cd1ae5e4d891214e36236c99335344442b9a14eb9232a9fbc29974e397d347f861c0c481e49bea01b45ebe6de0577b75d10893acf3fd0dddd49a311a936c574dddd9dc432e79c73ce9eb3594aa59696d9c25222b5b8b4b8b8b89458565c5c54ae8b8b0bc96504bab8b87c47f0ee9cddd3c69de1489b64f9ee2e3f284bfbc61dbd1545ad1bdd2cfd5c97ab6f5c6bed675f266f65f9f58d3bda2ac59dff813dde0541b067db866cb0bcfddcbe46714933a49f2410c84cbe574565e55bd9b6af1cb73da593658545e5b2b0b0b0b0c08cc60d9665d83f6483852c32f0e877d8d475fbcbfe3dc19eece15797b87bcb0068a6060b468c4bea6443d30854ce76295c235e8c18b7fe00a170a7fb943468997586f23dfa838232b2fc91228b2c43963f51fce4eb9239fea0d0ed231dd0dc7eec8e9080648eff588f905632a73349b9f64b3edc5e57a65b908ae03bdb8fbf0abb86744aa016eaa273ce39e7ac5bf56aad75fa4b91945fe79c7386f5b99778c8ac514a8528428256d9974fc45cb5d8bdbc1d2ed2a91682c89008172141a37a00f7122104098a34aa7fc4b25dab80f22613f238936dc8e3098ad70d1463e49f2630c83f51249151507852ee4c2907c0bd10ba23cf6f2aa544356a4a29a5fc5c70e58b985cf9dfbbe45e7252ca71c837c5208d96b872ca9f949256ac9074e69d56d551ee50ca9ca986675b2559e64aabf8a5a43ada40eeb39ea8eb449efd38701b5512bdaed22b7386a5d16824d72e5cbabb7344a0dee7c5b451ae7fa5945e77774aa54bf72abced67ad3450b094d6215b4bf5fbeab3d279044f929620123dc7555a5b25fa592b88c3f6a2b7a3dbb7608fa596dbb8af6010fa5c387a11e656eb9c9392a063e094fa4b7feb9c735c7507837848e97beda994564ac38f56a1b340daea7cf9763eb5cfcdf932cfc9cd193e27a43e8d11e3d6e7c01c68adb48653f01c48afe2067b2cc77150b47ea0f0c9f2078a95a9c11e10c8cc52fee0a7052b1e11156e7f97c415bd0421207a1117ee7b1d963cdff635acb6566bdfb3d556a74e9d7a89fa5b91cd5c68a5b43fea73361c2b57caf4d7b89c0c40b93d0952faee2e3a7245df236f82384829790b857c2fb317e3df178e337f3f5055dc317ce578c940a2fa49352f7b59384172076c69dde878987bc7ded7bcfa489641fb2a7b571f04df47afb283a187237dd1fb70cf361ceb91da9960280fa92c21fe336301f3343dc6a8816c76c1615ef41e0caeb606754cee93239ce4318cd16af81269befdab94dcafd3291d3cbefb0e63cf53ee6aa851cd86fb659564de5f68f104568de9af578393d4bcbc57535363c235b0175c93454dcdab069378746802a24ba874ccf4c6494b32a566000000000000031500202814108ac58291501468c2dc0714000c7fa24c70501acab22487611cc418638c3186106008220411a099a1198100752098bf643ba9124520dc75e9cac6fe2622fcaf8e802a75d8fb8cc30149612b175614ab84742da7af034bee5ebfee10f6b6c32d8cb5314b0e761357c4188fdda93721b79b6507110e695a6ee194d670030153bcb3d4b5d48a25c85c792dca82535a4df304621d7dc64a8bbe00322a54f3cb67e4b9dd37b6dfffbdba4cb60c92ecf0031b5ad82bcce40e6eec2ef43e4bb5742918584a4ae1be50bb3f072b0ccc0e09905ab38cc8c57d27e01d2226d6120e4710a1fa7a8ac72c8f8703158f01e66fe426a8635563eab8e9882392cf7a42b9ce2a7608dff22f6be16518c5ce0767820b0a3d628c7d6599bc01174a441966160038f65c0bbd006113b95b834f30d234a11e4d30349d9fde716521034fdb3e5a85f4c63c342047ce8ab7fd306ecc6f343aa84cfc2f0fc9d4668e2513def3dddc82ccd97fa72dc8f97516b52e8dc7d2a2fd284af3bb2c5a4a4f53ea9c148fa60af93727eb16de43d5eb9d96800ae645c9e99930c7526ee7639bf1b20225b1cfe6a942980211e6150f15646b418830aa16e977fc5fb9883b5e82ab810630570bdac2664a95f875b4c7866f7d26746dbc480a5422a74b149ca662b1d1d8ab7ad7f74025902d27bb2b97be044b71cb064934096c49b34dc4d2c0b7408489d1745e0eba8d9e25a290adea43e32b6446f78c0cb5ea616e0cdfc3d77222c8302d48a7071f59c0cdbf11e6e7629c085273cbaeb0daf60188861cbfe5a3fef056878a7a08b0018a1a1b904ff29ff242279a6f89bfe070c41f791cf3d885ed5d71b3527f07d72e4d04ae25cfa0b88814666d20d2f7c8a5ecb7722ebdda4abf370551319ff6c2a59a9450ff69d8b196e55d240dee5d6bda248167408cd208e49cd1eba254a0c6afb3d53d94eb3b276dde501f5f697626994a5aad59979d757b4e77e0d8cb36d71cfd983484d82b767742a7356da2717eac7e3462036e83836410317706e358add4265553b744360256cbe524406b08f43d9ec23334de74175f0173a65c1a61a8a204d2c76df8e37d92cf178c3b407b25d11741d2fe6754d126830ddb15200b3070723f453fb3895769df7f910d688ba1db821e2731ade5aa9a2daceebe7dcf2e9f99ec0376379a551956533ae8b8152937f0c9f43d57e61e5e49a12bb938625d795880b8edc540e4a7abfef76791a29bc5d3dc3dfbad575d8df487952c0483379d2b47611eef00f9afb3b964f6030074faf4af454f39fefd56f21319e98f990e072bba381e2a1aa18da8bea9c5761a5922dc403b2f457bb5b27a52f8bca6018f8f8931922e7e75aa83446075275fe4e8eaacdc44c6802e3e7db8da837d148abe5c02196fa4f1572667eea061ab1d652a2dffcf0d3ec6bde467aba9b6be8eafc281337627c1e09f7bf9d100efdd0b7cf919db0dd0e249e29396a55dd8524560ff6b9dc51cecd3e11bb7f2c8361100dd39e0cb38070a2f4890c35db2f7a879847c69bed47a6109f3112e38d5e65066520777fbdf403d3d3fa0ab130ba9d4ac2f108f940017db467c0bd95b6dfbad7dc92c1d27962c48285ca23bafe0a97a293a732267ab10fe0c7bf4e4a2433f99ff7f391edca79de005bbdb33ac187189c72766bbdc2721ead217bfb262cff5a4034909d4f371a89250087f7194a97df2518246bc0b146678ba8a16859b1f77b36414ff809f2782254ff9339cf1ade469788adc7b94b256900740be88184e04a48b1b70c46a42ddd63a6a143773c3795eeb2c349b9c772e00059c05ed5f98cb2c34c1b4fcf84de07ac0d8f695712a5a7cb358ae80d938fca413031fccda43847a57c4458146f66c5e6920bcb0895c2f1a8842cf928131d0511c2ecac61ce1da80ff936744bfa3749165a46a3fe9b70c47ca9c455600892fa7cbdcb875644ff4e1e9c2e3b485b3ef0af68834c7f4aeed8632b2b8629994d4c4bdc3d2a6c0a1e69116eca65a64872ce91f85390a1f35216314b5951624c85e44e5ad826a2e6f52f241cd7d709b8391e4086f831ba4d9cc986a10f2724225d721ab9374620812e7647283f9f71218f23babc19aadaa06981009bb0ce2be31846c728a88a7feaca6e2283090345c0bd4f60cc7b344b8d8705cca9436715f2d5be24751a409d9d8d9b8d32f0042dcf2b3cde5822c8ccb422dc2014404255b77092d57dd177a2033f9643f29840994e26036591d826ecbe4ffbf38495f6b9fe0d1343504fcf2aa1c26d03450fadb9b72c91edbbffaeaf73a4d45d023dda721d6697559b2434b1b587f93c13ee4862975d89c8d81b17ba63fdcd0aaba2a4b7996f9f6fb844749a21cff94d40d680501eaf5b4ac1569e06dc00d6304c546fecd2eea1595cb0e7468656a52d68ecc8617f2835ebc551a80cacbd29eff8e81a947c8a0533763c407fa87889fecf415bd17f45f39d01e372f8e07ca1a8905f56c9b6a3cbc13936462270fc00f751944c1ed3d34e9c4ad744e3d0f575e985e2898b2eb286192e339f120cdf62428a8f4e5ab73f50372c2ac80ef1b32111e0f7020c552e5cb44ed28f1b428063d99a37228c4519edf353cf6f7146ae6226453a67a7b1a26e7e0043dc49770a5c88b0b97c689e43b94c443c2cb7533cedc0163c053ff1f3b596ae35bc22f89556169c4a252e6aacbdbd9f64d34fbc91917e92017aa72fa31f372596c0ade893623fd102149269379ec5b9cde0b825ae9bb48e850f3089aba3cf07865900526e705c688e7815f568fa35ad7b93ac2dbe31d7888c5eaebb23c00c93dcc830d678cbba8a75b95f27d547a2c86452a5540aa84027bb689a1ae01efdb17b31f5295c9cadc7e6b13bb39d01db09847d890355c36fdda701e10a2f779aa068d783afbaf632f4846d8916af6bbca5582e25c694f5549ba76a10c7baa50e4459db7a2da05982fa4993c998c00afaacd43a925adf0094f9370e36df7b828643dc83d10bca44beace96ca478a6a4e883a2b9f0544b4a9175831b6079da93ce2dd5ad8f08d32c62501686250d2cd154c7ba84cf464423f741c822e2715ba1c17201db4be57e86e184be88cd51011230a364cada20eda1075031c93286e223100ccfa8c66fc80fc2461a8a58bae553568e46f28b808d8a00ab344bbed5a098154af8c9c575ae82eb836768691fcf962cafd8b3e68d230d69a405f7623f39dd53e1825925bbf7fa3b92b60be05b1fcc1f462039d6b73552ff5d3fa636fa5d333d5aa829eb49f350e26618e34b454d52b0dde18e7c01b51b5647f9bfd464e61f215af5cdd26c5db6bce2a11a06118f01a5657992a5d40a153b8ba5130563c9ec8a4172722f5f43ff244b28248f674b9b5d2ad2241dbd20286bbb66cae1469c8cbe9b78835fb68983a1fb6200a51f38de56d26bb9260b8e57b10c80f22ce51fcf43c523233986eeadb8a960330522e2416f9a2e8f12f4be8865fba79be392194d76ee47841e35c33af0e65468f64f9ce4e7e61bd2f22138cbef9222686010943c8c0f5188f5199d2eae66ab323333878cc6203487ae2e88f11bc6272d1cb2a30b2e4be6ee425d694d35cc6fedd2a438431da43254064775a3a513e734a7f0756692a75f94249d8d3632965c6c52add464ff0ac139626d5696de608c59352c2691511b4a8362566d65b3df6856fc2a972af71a4045d1dd565707faa0c730f363286418041c6390fb8421a93d5f6796d5a11b9b0420054cc66e9226189a2d261e2aeed0887949d5d49da75fe1ca56243d3e396af5710dd4ba6b54f2e7f5f1dc3c46adfec1b5b90909a94017a7014a389265766ccef24172bca8cd54eb4b156f0f90d091f6e81d92fa195cc845b687f1f4375382b7ca8a9f43149aa77e5e37c631aa3affa6328c1f66b678dbdb947a4ca2edb97f6d09977dc86806a5559da8305e5452c3889c4d912eee5258df8665c7070bfab60a8350d74a9d1044a8bd559a4da28a1f391734bc2d88ed420a2ca97b5875304d57098bd05ba9494321662607a7817b8acf48c7dcbbd293167a7344a62d19da3c5edbe92c0f2055c3868d9bb34723a663ce8abda3aacc91842218651ab20b9dc7c31bc6dda796ce9647d04cda1de1dd731b48f96517c5f07975042ca7c524587e784a2f7b0bd5e63ebfd30c87b8168ca7bbb98086408f99caaf9b975cce052ddd6472026907ca56c068a4c8d2c26d6078ae2bde2993edac6978b2b663c82d7f6f6320608729bac12c4149962fa7279417b85fc2b0120d88bda32e1812b531b30bbda47ef06f78e662d3cc101fc88f1b406da8d05b0df0ea125d88125e96069092a53b6503869a1b9f34421862c669e3c217b15d6907c2a2fa8c2c3ef4100701cd913c29e105715c8ad23b6923928750e6645577d7c9a964a82048f64da2ad15fa7a766e6827a59af58d3ef00f1aee4aa480c3f3a0b3c4a30943235e9b5a17d3bbdddbd4c7edb85b923b1dbc4d6d81a3005d82a85e47809a3b4faf4f2f488ac1f0c9049209fafd70bca7d896ece3d59bc6e926d8ef17cc8b55daee3d9a4a407187f4147954adfe00dc1307ddf8d3061f7e673e7fd0904b2bfc7aff004c600f246b1db1f47a86d26ac25fd4f5452a3be3525aa9165aef7ddb4f8fe67266cbae00aba70e580c34f4c01d9cf4e95d1cdc32a1bd2517225bade8a019b2aba4dcf26a1f5a725d6d77b3d4022071450cd266b6bdee272effeaba32b78a204c172a380eb941c4c63d043c769bb84c5bbcc8221bc895afd99b74624148a4546027d3f683db5e96195ed59eb3ca053f27d9bc7026edd52c48390e916aa55f7742485f5927ab9ed0786d305419c5c983c7690b31417411c48113cf01a5804f414aee54f674fb806b5285a67a1ef2ee2c3b5ee51f6483cdeee22a31578847a028cc0950a99eed45e85267d31f531814dc25e880244b2c988d05357c921ff238b33b43a959f461cdbf3c88af8fd90ad933315878d77f44a183fd16681e2aa49dc807c1621372c09fe400643ac8ad8c456174b9ae085644db510cc84bf487a2676d115855877d1ca0389cb8d586728f782b213020fd7a546e33b3b67b6ecc0c2a938de511d1cc70b170b1ae343b41398c051788eba905954f335edd39c1bf53417a5417834bd30caa2d6a1882457e83fbce1f980dcd4c31107f798773cb1cdd63af91b8cff9469409868edc6431320a487c79fbc4e43e78a4b0a18f3db4c25953027155396d6745640fe8ac7314548e0a12b0366805f924b834a6c01097a3001b041d4067c0f27d280ab502802d425212fcd55bb2460dd43d18dc6b581ccb26bc403b448282d1eae3f9660ae0572d5262c6cfc02fa7aa7e8aaf788929a91676db1b743fb75c09351184b06276204e29ed350c253de22d23e2ea18203e29cea710c2c770004c8aa99d3a4cdd38304d78c2e9386177d7e489e469ca1e037acbd63f49e7f0817fe47c28ee45a7c9033ac411df91ebd39276c0d037843a2ba64c98c791b4f1b77a705075f9eb28f7cf001429c829b8f2128c1f222c42da6a95720078d30cd4397f29681098b67b14d0755182cdfd73a8057e69454b03bb6b7c85a378671cc5f1f37569b6544308186f38ba0567884e3c4ef6f88f60cc0233d1202e82469779b33a5ceffc51d96c876d6cec9087db1da108956255c74271c47a38e2fb35a2e611704532b9a8b88c765bfce1764d481a5232264a33456cc91cc3a031e479d642207880b8c21fb351bf65381d7e24590046216a0afe5143f1f8b8e88d17077ce7741355ed04660bf5398a54dfabc7be0acfdf95847fb350c0aaf5d7c891145047f36414839f6f37181ff6cb9c2d5e9d2aeda32e69a10e604d131c6d26cf2cd31ccab5c993c9e01d56f725d16e27bce4a4538a182da6a0028628c275d78e7f7a7cbf0f93691fa67396a95d86ac7aa814c3eccc21c07f39be5ab9bbc66180f0ce77c94c1426789913fe9c589f2ad152bd21bf968869d65e6ba067eb076313762b2043e73d69a788337c46ca571846561a995702ece6937cef9d0fae442edc52d95d746edc6b8dee0e46ce5dc34468a63e9291dd4ad0506b97f212b4329dea58e45aef15dcacdad82b241bedb98ea5fff1a250c9a8fa103ab91d2fdffe47891c0207fac2bcb47a95e7d5293d5347fac1bed9026c011cf4e01457c029528f972839868c38208f40987922420da52867525365e34295cd18536d037822fe416f7cf1ba2ec458853cbae9b89c4a9c44655555b4c1c49a66a31a21b60c5dae09354603a9f13d84d1c758042c049afb4deca7275f43cf4ed06fd991098c1d64fe2a0383f8335761bc6138fac2816a0523c8395a610fbf45470895e598b0f236932d0726c8c5b21a779def839d9aa40457d530432c4780cf1745c00de77bd475c48eeb01a45413a66e4dd8d090c4f7628fc7f33b0647a418c77fc9d99fe0f7a64462403d333480b5361284a3d0aaf85158d429a8a8215348a358d471a8b8a353488350d6195c69416a288158d6195c69336a268ac0ad4081ee718f9a83439f2b256e4e5845180d6d9031e4e01f5190c09c3fba5230b80e9174cc920b8870cfefd04d00a5063b4c05ac43be8f2799a2a8fd2e652eb03ade93f3df93aef30a019a3674fec9319e24a47fe2cebd904928a9d5b39b807a92885e91a0bdf9dd00c9fd55d60d64d60eb2a00b12e1fac9340d65120d521ffcadcefd655e0d59d09947fd6959db57569be7a9983cc45259c17f95338ad80b94f290fbd0936abcf6e9bc1ee1d31738b93a05f260cbe8471fc4e9757cb063751c2ff14f8c72e3db68be88aef8d2fd543e2ad4fed2b97d9b7dfb79edeae4676d51f719760c8684bff966b50653c9b8179cd885ea6039e6a13e2a8eefbe44159dbf1f2b3ec11082e05e263e41da128405b2612e37325414b35877daa98ad27a5daf09e875c67a8ac93baccb2dc59e0afbb20ef179183908a9693645d78172ad77ec2527cb28d87b083917bc343656956fcfc1095387d6c4a4adc1bef584a40538eb60848950ebf058c884880d70317f74e60fc9e71a17c7de03205b79c3374064d23e25f372d37b64110cd8acf688484f2eb391e7196b6fdbec723a5cc38dc23f695ccc6003cc51302b33a4435e0d1997f460faba33a521561011b097a62db9838cd0b679c10f7932b4cca7e2a3f404b1969b27ed6812e7ef0240c82a408cd61a58dcbf98b7d253370e742560ebebb4670c8f1e3b55122946f6d19abf053cb8deaa11b49e7088ab62a709e1ccf24694e93a3b9a83ded86bfb86b570e33641cc4e5e1c4f5a04e1cb87b10582923bd5e6dd53155d5854161c419488cfb044a2c29efa31c300e28f346477eed45eb8eca886d1a68e0959d22c896c27694cd75748cb926bc7a3e892ecfc7add2b48bb4adee70d63c830679c068d6d5c8dc2b2f8ce331036a20c1704d0f15a53f677dcd76d5e2b8b55212b9f7a5f65d056b3c7835fd14c6ffa4ff2ac5aec035f8531a172a5ed2a25649955561d8b24b39f894b7c5f99e6d4cf89a5b1974db7b4ef413b1cb7c71be6e7c17f20b1b10fee77faf9b0afbf9b2f87884f2aedb72a864c25702b8f982528ff6a30c05a4904560581f53cf20a16ab84b487da4dca58ae41c774e4f3df8cc9dd66a278e6f1577856819c938f6955d689cafbcea4783bc9bd6bc08da16af31073f78a9a9306e87d5ed1fc25bf1cb1f5d20d93f4a051cfab7560cfa7750ae08ad9094cfa38429a7e77e3d7a378c845454e12bd9de93889e8e96c3a5f7e5ba72e3d0dc6678d7e35ee6616c8fe03275c985af895143308184375ebc4a0c47559327b4c5ff02a543efaad653a8d53cec9e8d7b85871bb71cf77d6c5de87e9bcd9d12bc29c052b6d2c2341a0c899d1e78287b420e4a6674a073626b9270cd30c7e969b338283f196111f4a22b98b36c184b8403219b696136bf31958466acb6b2087c2e76467ac5e2b696e6eb1a6048c533b445c151aad75cedab938fcf7fd995983ebbbcf488ce0ca08cc914fdeac875a2133b9ed608b84193907551dd6365de0f0ca49cf5686f93ae155c7004cbbd34eaaf11acd64283e1ff2a0763d733a289497d49f3dcada885be41414a62534027c2b4371fbee95ac1b34510661ea82118417d0dcf328dbb4007c7bdd93683328d2620d0430142a7a820e14a91e98bec8494556aeb9964d7dab481c046625d9242ae8850265d885d6c039933d04b9a0994649e2e209a7088d78cafe311e50a93451a999583ab52e86a8ffda89334198a8410ad8d7003902c62c576344b1bdff312ae4ff9a060ce38ffcf11ff2df0b457faa7482f8cc5d3c26bda6e76dc776d4189c96574900f22c5a2e281b9abbe8aa430a8804c5b8a63801e9ed62cca6256295085921841a132120b448d8f8741b7c0bec4ef0b3899e837f09b456a0bf046215306d143b2706f81f77106a9784c6c1bec7b09cef410d943642161149d9b76dd59469cd3268b2d46debb4c6a365b6c049b04aeef0ed4d1ae49048e882ce005ac4823f0067900a60e2f1283cc55d82b5bb987740e7eb334be780cdf51b0dd866ae1a8582b58022838ef0d169ca08d5ac423b251a97d3d703f9c806b89a8ccc06546ec9f9305f5f9fe50bb9647247f55f108a2bf6a7884f607359e20f9538927a8fe54e12184bf14f184e0ef0a9e40f557058f50f47fb83ec6d0f903292413e1602de8345be0d82456406b48e620fbb5db38fa9b8541bf5fc5f0f823fe74549b578d4bf8e8cec896604e6b8a68a2cdd78960fef044a1a445091cf185198c94a3d051f3ef114aa86b7ea134060ecebb301feabbc36e9af09ccdd302b0c17cddc0eb8166a7462792cca62f7ec79c7ca3256f85518bb126c593bdda055ae36d91c6336eba8ca4f931628de781e8aa3b412684148f9a07931d867e6f608600954dad473c2a993a0947ed3e11d9137abe96fad3099cfc3419be1eac3fe23e850e162cfe5cbe738d0fd33ced39aa86428a30877eada8662f527652541fdbc44fb5226b5e9fafb4c638fd41ebd8c7fe4ae777f281abfce4bb3a4f8ed5f9425a365a4b37083000d214f8a5015c7eb7a73f09474cc107ad6e0daad5832332f50b109f7e763c725907d09f30e8571c3c2bc309f312835056fe29f9ab6e9820d7cae4b45a0cf265dc2adf01efd69e74c3dc56ac151e86e88543001b38ad0a4d51a24bedc87cd9060b1e465f6f349413088cc9aea2cafe6129c1b7e7084cf5aca04a56c300ba033e4f9754f15200962d137d2acf16cea61a33e8bc7d3418f86ec60eaa695b1eaa40d9c026ceeb859a4875717e051ef7305b9d93878bd30c51ee8210c06c70d7bb270dc328deee3cdb3ab04db66620ad2956a166be79889e7ac4acbe060e784a09ed66f1a66ab03440c6644e50d8ea2b23a4a0d508696b664f9e08e17f157f0c5f6e21f2de167c555112d4d5c565dc78d3dcb422a145569fd1dda398e32595c1c692f9e7a306ff6d9fb2db4f208ad2b5c7fb72b05b4163e181f68a74ab22505de9f779b2235c9ef1d434fce289cc7d9c0262aa7200570cfd00108702024859d480c49b9f49a10592bc466e535f7408e2dfc727ec08e9d5c1bfe898f39534d1b08c8a8dab83f65cd99e3a638ab294178d6c340bf06b3a51f060935820b93aba4c372d6e49196d250009132417c9aa99925de905c632bf69191eb0f749f6923365f76b72bf6fb8d6c1e22a7daf91418c2acec4faf995d9d388f896df4041a6c8389fbdf61b049b0c769965e84d7188404c597f7cf51768bb8fb9e34482542160ebd51f98c951e2c68900ece4fe536fbb3c4465d8da1f02ff75c6be0187b393ca804202a09f31e50ef48ba2841f696aeb760ab5638ab0c0117e4ffa4262a3c2bfa95616e68c74b3dea9ed21449a7683ce512fcf9f88b0076ab5977f05f388f56393d6f683bcf53e12568a47bc664b0c30b4305028a5325fbf321da66e4fed30d8b26edc0aa19783ba6412b32809dc5cd058ffafd1a3e5088a5e06b4bc6db158bab896a008d76ad5a78570a33acc437f62772f529a45ba2654270cf704af7ba8053ecafc2240720b8bfbc4b9cc6dd4e9fd6a034237eec06f9ef4565bdd2d8a51fa50f5ffaaaef50dd3598e1fcc3800d1d6be466048f060a7043dd13a21690754e488553540346f074c51d798a83adddf868def6c08f0c065c0daf1deb4de6863a60fe4fd2724176cfc6cbd9236b34bcb11bf73fa559a33256c5b8215060d4e93af375bb764c1bddeb0b437f1ba855e9f691a4854212ccbc1f9a79dfe8324ec906f12359a6992c46b7df2ce2b3708a99c3553cac6261f6e797d0989123792ab1943407e1636975749fc8a858d52b4faa52e7e673426230c082e1912016a4caa47408ddb7d783f2a7f09a72e74671587ec08e8b720123c2308df435c88c10f9b3516ea595787a102ac0df1693a231a75b37826725b57380cf2e0ceb49b5398aa5474a274410ae02f2cd68380a6506f672fdb2a363263432f42575153827fb7c481bc77a87a65661d305f6f0e4fc75e8861ec7e65f1032ddcd2213716d24a84643c44907e2e14d1bdde5c69b9ea580662b72f722a47876b992a585f55b03e0ffe66f90ab08c45742780afc27817d109ef8ab8c26bc195b089b191d7bf85b29772e60345ea06eef1b4604de2c219bc46e85b9549bc3a7e2969b811bce71fd5fb28a0d3c789882bc30b20422d7331a23ba5a52e411f22006fa04aa7e61a87ae45411d2f5876fe4b972dc5a9b1f9292fe54ffe5884c448cf9641e8835028bbd759a16f09ee532848eba1530117f42142efea5da34502c81858d51834e3756dae7516d35b26222d5f1db9c93c11943a1d72482f69e52c1d07349f2cc3317db3421d3cfebdeca637dcb9c7d11b41aff1edcdcf1d052afb453666e6213765bce3f443a352ecc03b23d79d3247bd866c712919cbb36488f6d116bd2418ea7e25a641f44230e441f0eee9f31f9e21da32ad522606729b4e3e06c56d6e86320355ef73357ca0f7dd7c940b6fcdfbd4cafd83aa59d57fdc4ab7bad347fc3f484fae7dc357b4fd2abd333de14abcf8cff05a5baced2259707d302aaae2175ae06c87bc81b38fb7c06a5afd1986170760ee5e23b5a6539c8b6f79298a64b2f1609c3fbd8fcb04585747ba4482cd17480b173633d944f0276f0c24869e434b9b0db173021d8c790cbc95227ba62c5ef819e48c3582dc878d451f35287c8cc5028f1d86f8d54985de8afcd61299217df182394afc1c29923098631085bdcba34ee2078a5a7b55aa904ae95c686ad5c9a44cb054397d910faa51b7124d51a1f002e95a5f2a97c7a43ab014377d6d0f2a4db7ca4c5161e24e0a42cb4a71553c2b0aa8a665292b839f423408a0c7c0a33538e6a091393034872539a03007092000990cc79b83a10f85090121100cb40221591030000090e067079e8f0684ce0cb7acff764cbc2614683c021825f10a8e4e0beb8a8b60f6a7795589c89bf390471b021907ff3d56d1934c9b2a86438fc423c473896338f4483c42e3afeb4d57216317c725bc44f54785f7b67b5e6a6e9fe56b2a7b74949c1a4fbefb76977aead57dc572b772a5a35ddcd3ac77ea16fadbc53dcd7a9ebe4be75664cee323b9adf93df915e945cb0b1c4e86aa63369d71a4f6c6c853a626959d3fe38ea4155f3e55d28f0b3af89f7a3db6b6dc546c976b36fb4abb45fd76b966b3afb45bd44f7b1345d6c037afeaa8a13496d1c7652d86d21effd858aa58daf8ab21a674e39b1a8e5e0ce6296f24d38e653267857b9a66833bbe1c047bc6b18c7dce598e6dee5cb62ddf748e76a09a31254d9cab4a6b4befcf193fd15e9fce495024f9038ae4a02633e0c4bee2cf66d9f04ee5c0ee2733396283d545d38157fabc163da6b683e8f523c5fa9755a7b018bd3a73a23bf400d4b135cf55ea4a2da1c2a115dda3c5bd35f78755586edb80393a15fe506b0ce3f031b7627b9b4c876ab123119147d762d36a2a7ae65666936ae04f5d7f814969761410be3babeeac9f919fb5c305e57530ae5cde948dbad944292d1445f3c4926cca2de16d924375c2d95e0846d5ff03899a47267a5c0ec65d77917a0ff28b9a7bba4822598c0a11984a73acbcebcd5cd49bcb446a264229ec3d648539e48eb40f2c2c1dd29ddcf586979942e44ce2446e7b88c6ddca9d00b090aa09173f2cc5f6e1264b282c23256fd4e1b90bd2f702dc546a894e9112f616e2e9610c1e6d9a204f1a5a167a4b90f7bfb3e92e1bb5c0cb2e15547de1deb71bc863df6a70388d003c0cc0534522b0bf7851ae94d20bdd2174e5242b1a68d72d28da836cdbef2ad404dfd9e69770d268e6fff5ec00a9636bdaa399aaad66bcf82f6e69a3e2a45df853ef97179f8a4f8e2c87543c9e58096a90066fe7c2fa06fb4d419976d625f884c90d4eb57b472b884f8f89345ef306e91d599515910d83ce726fa8edb493d03c13895b89a983f999e9dc74379b0b64022a4c5b60426b0543b381327be11a2697c4d100a84618d936a2106c091b08e8f72deb98d22bd810bbba610777084ef0da7ca29b93977ae68e495fe76fe50ce3b873cb116740f5a433e4c77d3db90e2ecffead743cdee44691bf5873a3887b0a2cdeec8d78db74a303ab8b508bf9cca56fad27a367d695c7d3874e66d04901c0de40cf729500071d2978018b5f1871d613c02d063b275dbe948f2acd0a6dde5293fa45186d54558f133b0e8f5413367f91d3a3eca67231d1126e48938595b07a3fcb470955e26c527408e81d09111c38afcd99d8c59738ee550031a86f332abd0965ca841fdd2f796afc7c8ad2514da5a2bc11d0eaa6dd5e18aca4167dd50182fccccc4ea6f91d03bdadf6925cd7ba481c800be37c9e4b218001ea267eb0e152132ddfd5f9e9ec8db2aa90eb6ca0fd615b0f7af81f95795ba4008c8ceb901e8403087edfa9dc9be27d9ecb0cf03de90d9c38b2961ebcbcea9b9ddcfb3209a2f486d9b3842c75412e74af50361cf0a7dcb7b62daaf514970fcfce51fe3d5e21e789324f141a5ce14f6a75dfbe98d0204d51253f8a484991abc19c670ee2ac0518ab0380e24d5132377afb9ba57190b5e887f18cbd0a28d76798a4aa4461f76ff3f6eedffaab5277d6d16eb2a4763be229ee2737307beaf18d3b6e6dd8e890805078710b60666ffc7ef06af131db86945a03dd82b06e4039f967d8a59fced39a987a210f9f0d4bbfdbfdcb0b3f99062129bd67be44b121699a03adf7cd6f3c152cd0933cf76a5d11ccc7a2798c747d6fb8122f815b1bb33f577e0e012cbd9e68108038ef2e059b0640eebc554e7b8235b23aad4a86f88ae832b7965bc6be3cfca1905f78c46fb6194d77d592553aab1d654bb2ab44ce2791b48234f43b1691bf5bd5435e2878f68591032588e2c6ec0d1ea12f7d13342d0bd61ebe378f8c40e768d72b05ea148f1a329d0d6ca909d4e90845d08272f45ecf1432abd58dd8aba8757ba2e9aaa0c02a538bd87e927c23d602789eb7cf3d213feb2fbfc6aa080a0b765ab2ce27cfc441cf06d1555600f1dd1feeb61fb41574c92879f6ee0a25b3ca5243d0e3799af9cd50791e31aed4a0eea8316adf4b63f296576fd1315bb4e6654db2f176c535b4556dc669eb9db0fed291c086b5f980d077f338ac6f62db71a79afc7f0892315f87c119414f0f550b12a036d10fb7e2ecfd7c55bea35552f827e81a51138f6aba94b501a46c77a1c5dd7829c44c8bd462ea21b5f737d43b5528739ed04437fbeeb4f1d8947d29105accbec8363234cb6a642b19f0d548e8d55488be77507fa701c4c21316cfb3de1ab88ba3af9172ecb6463cbbc9d1b422697445ec27efffb315e106536b4513af613a5ba9c307e61d5f06d2879c5945f8051e1bb3ed227880b7a8a815a25cb9242e9ce231ab3723c6ac27734560fc32061e248495529adc4adeb1808e0157aeb7f1adc9e6d00ad8734e282ed91274d17b7afaa57b2479917aa57d14dfac17d0cbd64d760b85fa7373291a41c18c717d30f15c0914748184b7f97dd72ea060e42f3135033b28f8eec6327c9bc418f20fa2e48391e6c227427fa6eb9695c95e3984af0df15e2795b25d6647183e3826deaec816059e85f03409468f8ada9caf9c765488926e2b08410db20019fd6ac6835f77d77673237b45726791daf682d77839d652373c42dbd137e5ed370097aef8217a5e558294be1337cbc190df0db5539c3ba7fee1f360a458c40a30eee38fcec2701ea573e3c2147cee59e7b7296ec459fb4aec456ea773b87ff6c55bcf2a5cfade6d286e9b115f152833005f93823acbbd9fa26d1ec47736f7981d0620256975217f928d42619494983eb4736fddb6d8360a7d8e24e8d858a8b78995efcebeabf72dd3bc292455170d7ba73a8535d63ca0216d45370980b993af1343b1c419879cce2e8c5ed28c187e40758993b28c2995af8fbb80126448d080c520e6abacc9efd2a6c383bffa45b5316bcec3c6b72b52a5c030cf29784949ad02b69dbd170674bcd7cf7bdcd8efbd1e8191e33a19569050073c13f8c5128fbd5be0a2e5437be0dfb277927ce6925cd9c6b22c306f58753dbb60be5ea3ca4231ba87a180c048700808636c5c6e198389fd09a3449aaa14d93e61e013a089d879f28d673ed2c94907a68b5d074680d02cba55733398b5156368a579b7921e34cb1cd1b7be359e7389bb418768e1dfcc96357293294a50a8cd0d2dfc826b408b91f9e04e9bde17d038b5e1bff50975e8882b56fbe993aefc82c6afaf896b8641d180117d7d51200446e6768139aacad947c63ae86e2822b3321127895ad1e3a86354522e31604604570303832a536706cc1a1765c3c6b05f77d379c630766e5f7d1569e8e7aa18428919adecb6f893daa8aa16a51161a034aa2095733e58c7b6431ec79982e947b8527cffa7cb9ab439be9e449716303e105f84073ac7560cc2d3b6bcbe17976ed339571474180a5e8800bf8f3d19be711a364ef585ffe34267b93e5a393d7538c4eaf2b6aed39590aa265f72a2b4b58d65c26a5a907ed202cca1bab098fedc4a2eae24582fa5b42b2751194af329c4854f6839b5ce518a8400819b201e44fc162bfe43c83eac5bc0fda3099b0d17c6d2a81511e9eea452c5c6b64a791ecc127b2f8d7955b62e386732eb18c855360eb2c41a1a70be2b4586c70d94fe9b3385a5f67dc31b49ab0c479a273abdcb5f753240075c241fb106e70f0ac410d30166d57fa8fef63e63dcbdcef175e6d985c94da88c25ed4272cd9f9e0cb08bfdd53b5c3497d1511f7d33fc3b356fe90be227c43cb451555c773468279e460884f75482e7c78880fd5817daea93a7caf99b63f1d41d2967a9f244f8b27ab5c62f7500454cb00f0c86f0606f0986f4bd1c4d789e17fba75937f7b1760bfc6b22c2361305eac7c0f54d46d7439376e12c971b9834199462415601b59724c340d25e827a629b38aeb1592601d58524b90c88f019e4bc2ea82a2489b54ec36e42e11bef9422eb7da648fd8c1efccbc799089727855dfb32f8892c60e13594d86e53661c1f014d4c777e0bfd2fee83ec0a9238c21d1281a6b799c029daf93a71912bdc9e602f22d1c5232002ba632537d243388137ae0695b69ee3f47c64b9309290ab4e782cf12616bdf75f070390bbb5e8ba5cfd8e2286e60a846aa39a06b3eecf961b319c68582651d622a2bd6bf0c8f35a65dec558cc3da6166c677631745f63a92a65739f85946ab957c838466ceea90e0f6e4661d0d8cacfcf7690178ba6de9a003f011e377a3ada1e6874593690b7afcbc23ec18f0d7daaaa8f3b20f11c9638b1b42878ef49aa6485c62742ae7c72b212516f1aa7a60ed616d899b7e829e5c14d5bb992cae82119ca09adcfa7031ca2fd5b4b56ae8a760e2116e0d73aade8c9c5120aef7385d51785a6824a8143fc09c1b20c086d307ca71ceccff7e9c8fef0d33dd1eb1e6e8a1ce78c901a4f18ec1ef2110e162cff2751b7a45adb39c0bd66b0b9716d60a9e4384b4e27d09e5221951525e281c8092723c532ce8679c3afc224e8991913d49575d6092d0f56ac7efb6a0bafbb9dc1cd2592b6ca8da4c7b591962fc45c91e9d51f511dc8a0bc9220d7d6a1c6f864ae3dd82b5e1c453d3854ab9a534f0b4331ab3f3e0cb50bdcbfb702f69010e7108352b7632d0d527a2d6033654ca29f7b2d15947f80b3fd18a319dd505b220d7789116bc65a6a97a576b884a1655a45222f04284f6011e9472b56c0b0c97997007a60a1745241bdda63dc7618aa94234e3f1812da97d560eae370e563579919773e3695d983cb769fa1f88a4e0fc49088935d98b7855ea7b65fc584acf21189cccdee2f1a37c63475904dc2a560b84169b6e8d95a9fb346f4fd4083a00cad4499c8aa36184f5bf5d0826cdfda58881a7235a5194f9f1030cb01d2c7ed86e6fd5435edd1e0027f1200219d2826040df02f42a585fd597841bfcf5a93f15560349f319c468825428f6d9aba9542619af97ffe19d1c0c2d927d7617bcd6c5bea71022153d0a7db478ef8869418b6ccb3f8588e67e290b4f64da2a3649a6fcae7c17c1547a335a5a4b9bb7845754dc5404c4690d6002b528e241e61fb042b146c3dccfbee80a2b2b52d8d3f4b728723ef68737591b087afe51b697c9686bfeddc84ba6f9e1cd1b06b3e246b3b2de5bb8c1c03601db0c983fe37a7d30cdddad71a93591bc6995dceb85e4d2b146586bb2811713649d30aec94c987dc0ab13e2bc67e75e2fa9e28c3901045f2341da7ab29413bf2e63e62b260dc2f6abaa8f3a9c4549b0d5399e049289ca0dd80ce4100771964d1b51a51ecf2e0d4bb379cdb2320b23e51aac00000012efc34e3bf2eac34d6e1d11fee8b0c491c46942628c806766fcd16b9a8aaca206fd61f0a93523caa85987cd8bfa82bfc0fae55d3d3957bbf7159a363f048926ffb6697f0ecdf49de984a4f39f2cb0ebd5885293074f89f6f0f307855489d5831aae731b244dcf8df9cb9cb2441333e388f19fb971e4f80add5db9c18f4624a4709013532312b6f138cf4de2d48d437ef4425cbd58fea54e428cf9391a4e9103fb969574713db618ecec0859fce31fa312e8e94464dcbcd61a1a470dfa0446babf93384c616688db3b2a70389b9c193fdd6117aa5a76bf709a133773f84386ddcc31b229f22c632ef3606d1946f9315136104e206668a2254414988ce90c044a68a4d4db57a52b530270a65743744e9fc9cb97e0c6a112382a8186a6678104b146443e16d90a5aa29b82ce730d5a12156964c4f944a21639e2901e7cd9d033a21b68edd838d79a5965bf32d4838bcbbc1328b8c8f84db09553a9dc664e821894692c3cf741ce172d7ca70d2466e8d859ec5c75dbefa8d074bff7750fc6ddf7c5936116bac44de46d96dfd62eb2fabdeb1619a84e77fbeee4b41964e91b8f3a22a2885efcd1511556c7347b535725c50069df269d79299ab1c24bb2cf479d8b7bce4e90982742f498f75a6224f149df400a6d505afa9d141abff488db2a6b0bfee16ed59a884c6711fb617d63b3d268980a5940d712ba85fb3a05e34eaf7da5e138904c953e4e1ddb7b824ec231aeb5f78c69e505925c8a8cd20fb3f27e9d3e0f701449cc210321d1bde8844e9d408be9f40399dc20ebb35e88cd28c0a000c168fd7dd79aa934209708e5bfc3cb3da9d716dbade55a6fc212aa6da952ca91f744e1ee8162283652a43c213aa96dadfada270a26126258299dacc0cdbb19fa0855633811c7eb865a9833604b6e3a61e05945068b274faf2b76818bae713f7c112101d9242136a9895caa666ff78768b2864ffd490318c9a544be127530f7a344612e56543601c683699dc26b918fd788123926713427f47b5ee22d6c2b8f4f0e94654a2ce535807e373a087b71f7727aa5e8f02591a5596d1aff2a0e074abfe05a80a0c9a2e9d52ea92b7a42352d917d210671ada41531cbee281da7bf0ec6860d47736a4cfe3a24f6412cfd6f9f6d2530040b8e815d281ab203a41ec59fc2ac9b73c77e73bef9436d773a83b6997bf2a14fff80840ee720ad88af4be1e6d33e7f2417a8a3de6f453f9f0df735ef0f366598103cf01406759d334e6c53690164457a7dae3e9447433719e0b1b2f7b76a6a6e1761d15d2ad8d2417c8eaf924a6372aca0de401fa6a8d7854da5a02cbca67f3a6508adee43546854ad6fa598facb20f6c4a93ac1298d34b0296bac12f1cdb848c818d249635f09a9ff6b247c8a71b001b04802622f40034d83ab0dae1525653a1e7f46227b7a201722cb98e37d1528b593985915674369153f0d56b4eae78fa1963dee53c4a0c05c3b23e6507ec4320aca7a76d3e53993db2333ae624d777c2538483542e3f153d923b862c174d790ae1d1fb233316e2e90c75b92540499301ddfc85bc7f38057194a349289833ac8500d6a021715b5a9f5f07391a143ec7e235dab00a503c0ce09f1617da85d85b6bbd45e4ce11f6494fe89ee472355697b258a22a6944d2fffcf6d4b28ddb0eac6f50c0c6b5df748f5c175cd42aa247fed2e432373c8e2e26c61f8efd24927428e5b6aa4af6995ab37c4d541c46cdcc443967f7f91475b74e3857b78524a03d19bc12fbad9b1c8305b0b7b2d1e650428be46b698b71ba0e05701608c359814ecfeba50ec63966569ea7c3da46a27fbcc11cfdeeaf3adee4104103482256dd2ddc0876742690a1ec45fe986689666e865fc987f95d3c3a21b7579ec8f68c979e8c3a7235e545a591cf1e86ca5bfb158562019ee47630359e62f55b48ac54984836fc045625b6f38be0ffd27b9b9a3384ebc5e199d26ca630b7dde6c4a21a443b52fe089f54679cf01f584b65b084c60d389064a31b9f38c7bf6f12c8a988983c4a71a24c04c2c96782633cd384b0562fb68df474b96949b4e97e21138f04131b4275d2f12bc6850529a1834c74bbf33fce1a8abcdeefaafd88c4eb4d48c4e73175308dec1349cbe7359b0bd8b0ecacb70d14ab5a8847c918162a8e94787ff36c0346759476a79e93902e165b243472687dbd61096e1516a59ec6c18bdd127dd9d91e9bb292419b3200c8142826bbd6dba56a5ef766663e71b613e37d19f1569ee6035b2042510aff57706741be43891b982dfd9e0114ba37bff094f45a3b5d6ba88959f5f07231f69ddba82139dc64e57cccef2403f580e2af8d1700e58bbbca6cd3f7ac0c7c9be42848e0144363f33aabf278c7acb0524cd893bf63cdcca88081114d6fca16773d188dd07bf771f3ef8c704ee52876eefa00cca3470eb596e75839b674904ff64dabcbfc2e7b3cf4475e794899d12945066c764950f4177efee031de156b706e059930ffdc4a5f72f7063004f733bc9c1e5537fd81cb164037fd0edf74aebbd37382f9be554e21c1c2d064cb2b216850bb7a2bbd519a6f1bad53d2b96eca8e565b6efcc58ae10ae93348ba12091121b87caf7bd979c73c023b7d6af756f9941b3e2b5cedf80a2ffa126974a90acf23ae56488b70cccab458c41afaa253f1c65693a2f894ba1c7fcb3f5533ed1cb12a59412599a05f36df6fc1b097c542cde0be312d5433750cee410d43e552af518bbf7975d40fdc1e4a55c911543f25ab17f5095966f476d4792dc6ab375f632cbd489d867b74f24374e633a42780467afec769f10fbb0352a9724a5966db5265894e4a55e8d05c7de4af2c0d1efc239de2d0826a02bd91d0681dfebfbdaca925dc2003600bb30d7ed040dec08d18f4a68a379f15cb8d4e68a30ab61c4badd1b0dc6b8122667fea8c9b0840fd655fae195796e5104dee4d803b83b48b7d3ded0aca60ff791105cb61a2bfd3ced82a55a471051d8fdf9d42abc6334706f30d2cc1da05afcc83f3ab448f24a86a29cc674f6154ef6d1bb9945d1f3cef1a5f66afbf07c9ebda294afc6350ae6ac459586d4ef614e6d6c869c5f87ac80ed2de211298ae15544e83e964a53ba9146f3debc6cfa444e8b497e4468f1a50d4ad8fbc4ab6a2b373aa6657f390140cd7df6d6708f1f60700903b92af6091e93d3db9d677f7b53fe83786f001923710df74a150e7533a498edaa56ff145269a04d70fa1ff4e477e27f03e7ecdfc1871039e36e9fb85474f64291afac07e5afe344767b3cf37c9c91e150060392695a9d12675e5fc85c92c40ca73b6ae74b11755c074c5308702406aac327faf724afa11c81d26060611bd25c171094e29d3950bf6252038c89fdd7306e411f876c22afec2d4b954c005acb19d155bffb81f40d92733598e3507a1ec23f9465859703a9beff5bd823098fde476d3e3f09a7abf14e436f3a6c7e750fc95357761ba818fe0e755f75e91c66404b840ab4b297d7a816e27a6dafc7141a7b637bbb59e7c1adf55efa20b9812adc97862a23dc5bdbf28917c3688d6cba1a9643b163be024016a8a9907dc8a93c57eb5762e15cc24827d039c34eae502b928a37b292554dbc116940e0065aeb53da592fc934294a9c81c5caf02c1730b5e45dc999d084957aa44542d87d842e7ff03aa25f01060f4ba3fb84e0dc806a34c7066fe481afae0b3e06be46c4e82ca83d0cf724cffc582f135bc4d78f20e948c6e9dda81531218095a06385923152f9552208a53488eaac189870aa9274b78a7a1eac7aaa91b255de68193b2b0085676704fbfab1d22ed2058cde878d3c6fb050b1776bc528d2646b41a5273938bac0ec73950173972cd2b383aec57f204d76c2dc24c94527e76c5bed3cd139421296296f326c69d63c8859bab416c1f8e6c35264e2db1ba084fd87f2708f5254c6f7fcaac3a76dd615f775277a9fc20a7edecbebc7783e1138fcd0b89c86768700074b075c3afdc0303eeeff13e93c580abe1ecc384934fae620305edd1903378acc3443ae82344632a409b47682a2c1789b21d7df6c557638a951cc9a98af09ffa8475dd2d7440a9e6adec4d39a614ac259b5c23d88985795d49ba1599793d4652580868e366012076a71a5e824aecbb9704d80fefba15f030a8e878f9c0d7cde6545869c2b5dc40ea5cc3c57bf860ad0a965b6234b9f899811fc2c1590168a285272bb6b170a4eee01046216b54a9c4657c4578406833864e91f1963f2786a6b71ada7358ac1059a6083241214de5cc6bb6423b0134bb30721a5906ab0009f431e26f1202057bf88738adad092aae2e12542c81ddededeecfe7a386f1a33c038f62efcff4391dae934ac1461c16f159d6f7439ab2fd251b66a040dd9269ce600769810a1363142c70917a0aee1152b413ff0741b03cd64fe94bfeaa0b2ab7fc6c465bc391f3599472ac7b9309ae5c28822cd908297517cc5fd5f4a13b0ed6db1a8e9c996f0d860b54beb1507de974065da4e1bc0fbd329558b7e6c5dbf85f275393067f0f32a35b9a2a57ed48288e102519d0c98efc259d93573454a2cc8a5a9b7548d5980b1824a79fc2cb88a21ffb7b906ca77265cf182ac7926f91023980265b7aea05ef46139a638734692b9334f12c06fbb664931c5d31508d94a7fdade00705df1c260e7e05cf510d60ff034a9e82ef35de9e7f246ed083fb703d7000a55255d5eed0110f83ea6fef3cdc64e73872fb9fab8eb78dc77a590ac443370f59f3fa819964780bd4d9e000413f304ca8aeee5b05d73c9f89ac2b459c128865e9159674dd68823545f1e7736988f2940b4509c9bf07fdd3ce3b4f29e359d4ba81b4c6ba1ca9e1b16edbb7d0ccc77f422d73abf05c6c3f407cfb2c23405d1ef781b19078005ff85a56cf156e9810303371aea0893f5ac9864dcc694fb9e004249e10bb38af544959d74140510ca91c878d154b030097f576b698e81a6860a47df267f29d4981a714d953624704a8061a868a22e8a7830f1b1304250b6565c5772f275f82a4679911084b5dad8a85a009f562caae58ed4104c299db9e5853dc442df7219ecb7f96849d01dd24ccd4b82519837308eb74ee3b3b5405de9b7d5074ef6727700ef1da39716f9e6faa305375cd49879859bb2d421d7aa7254aa4b333e18041a3afecb79cff360cf2731f949d2895704d0b1b47ec19e69f59347b4ca7ef44521ae905b501589c9ac1a96d41e01a427431ac346e733aee3ae40dd4df1980ca246e1b07ddb0ec5da0c22894cf98a25809fbffdb31f8454c1c6bc46e21fa6c4f38254c070ceb86697cf77ef578fea2fbf35ad9a9b0c50e8748600612619d943b1303b7de8c9c8166cfea24e822718b0eba5c0e16ce76ff5d7fefa20244cd4b747ba41b7fb2b081c4cc541d71b3166a96d1a02ade1ff84fb25153e8c08cae18bb0fc952eddc99e13978c0eff5fa2869387de1201f2bb4ad05200648d044ee07594f98ca1a414e7e912a44739cfcc164336e2d63e4e258b8f28235712dac793e9ed58b663d986ff406746a704312641f677109ddd5c31b2498a51611875ec76dfe7a4dd94f527c582e8f14328da6d864bbf75af5c468bc1f54857ec312226f72e0bd7c8091df3489f47ebfdea5e8e3ff473205510019054035dd8094e4e6a8a9b9bbe956d39a9e274fdc0bde732c126d85f9e3635e5dbe4c7e8b795d222176ce6372bbd2c6ae5adf9be2cc8798e8857ee061744a2863eed1d3d141c0bb0c6fd00cf3187d41de7ba0ece78ff29d8607755b131882a1f05d4dba3b853278ae15cf4f82d6f33d5ad1990d801f848b2af3f34b2836410b33548ff97bb49444e291b629041df947fe304c80f81c7e1ce491cc57b312f3a553d36c3300c9d82a13fdcada6a2145668d83c4b046ac62376a3d5a2facea1a1adfdae99140246bb837fcf399ea9f032dfce7b8104241702607b9a14684c7621addd03bda53250aa94e930cd4c7e05739fa7d973631ff142c9c4ff290553fb81d1b1714574878456ae22b5be1f12c5cb64e350d1350e2d4066834350c3166d1456c47dff7018c5928074f605190bf3cbdc6dd0740b03c2e95fde41422da9e3887b42e752f5c72f8299244ea7a23ade16fc3c1452514ca07213f577cc0551f9dc6ef4e6e7c5f1458046a795d9a824f5e1fe4083eea8a5d4877f9f42fb81de5ca9f9d11cd56091c945d4635834b1deaaca245bcc70569ae793ea876122c8c9b8fea15048ce210b28fc4773aa0134d676b2a242186e06a1242f97e53a3e8fc9bcb7fc42f2f1cf3cbbced552447e87b52a4bda88af38e13ea2b4fc3537e02dee95eefcc6c54543c7b17376ecdf772222b7b3d7da358edc4378425545eb0a036a7f75b967714b78dafed67b0fe1085624e1874f33724432ca20bb82b27bc2d14b82c77ee0b39f406f326be02c0f75c23762c015480e8e045b92d14131ff2d213979c34e8a408590c756f90db9e8f9a80f19d4fcc30e24b71333458febbf055966f784525e059a19665a2887c14fe03c306fa8831c9785683ca64e4f6cb54e0203bee472672a190f8acf4cccf9d905c79f498d5ac7587b2a7ad48aa0d4907e1cf87a6a50f1fe35e5a742f509cd88a48fc46f3c7726f9487cb898a9250725a47b78294e9d71bbfa8fa5e7ca2edd81193cb5109a2f90166ad7dd2bda9f161c746958d8538abdc3bbb155d2e21cde1b4f57f3b3154e5d0a7375b7804c512d8fc10d9f6c9027f9d7a9f000e11e82e331c50ac4db1bad91c915324ebf5d1a84125270fa9f49d740b2c2b50a72fffaf425c1d70850bc88919796a671882abb224c812e3857e0de577ef73fad7efb1a29fa0f27127ddd5d11193cfa7e4c309a26e225614dbc83ed2d6c53a2d7f03794c2de9807a8bfaf1cfded1538445a14af87126f4b0e93e6eba74faf23e06cdc3fa615d3fd368653a3611e81a601af1bb51e950922056631542f254481bf28f7a5c781fddf6e86e02abbf6a001276c6143ac060b0fbce97b322b968ab06d16835d988ef318c8b802a0cc28a8229d72d06612b691476da5eb5f8a5b016a77a7d4758164886fcb14d1962c71b7bc4f1df60cc0fc361f83d6d011fa644dd50b044c2a27d6817c62c6a4a1c9c0549203120809f387772e4b816cd5f2d956066a13762e90cc35d5b517d23975031804df5768e6eb54cd4e0ac9228132d2fd38dd2595ddfc2e57ce258c731a425d19145988201eb6cc0db6f96320a12859dff292294a0d9fb54125e1bae44165886f7ae1da6a25eb35f432cee6cc94bc5cf48a5f3daa69ddb4539281a08fa935eeda1d574052c35d166b742789288442ba884a6aac56b427315ac024b9e78057862c675f25e04cd4e8ec3902b3ee12542c107be03076d58dea0f5908842b087564738a6e9f02406b6c05f81260efeadcb0037ddf80b8b57063b261a5a04f3d009b9a96ab2fb911423efb19d538974aa2247103a0a748db3c437bc8fb3498c74707ba7f6cd99c370db7122190414dd44ea570a5ac1f5cd140cbabc53016d06b9974830b96be651e12a5035c3094a4056146d0d46bebf6f68bfeb9c3e3ea5a56fe209eab8c0464de015021badd069030399960c982634e33f4005bcd66617e7b79b363201c6de67063bd0ed070c15fc2dd12170ce7e57ae0b94725edcd8c6d3e4864a1c3ae40e345576915f47b8451fac010adc001d29c1c4ac2a26b17073410b9f5bc557cb85c8525582128e9338c65184e88f8d17491da8cc01764ec1f7c905c0ca42a3085e113a1ba5c9045f960f0acf9704d07321bc7ae3c733ce9f843d55fb9430cd70f4c5b2c8a9e9985f941c2fa2336e70e687788a871d1dac23950b3c6d538fd5c7b2966ebac866d6d586f2c2b2964ced672ff04f64f35f6f51ef97b1c23950d33564c84604dd553747a9e9f2d90037af987143ccdfa20822eefc72bed314e942948a1cc3042941dd599c92ceb743dc40fa1fa5621b6cda6f4f82f9033a94f3b3ce5fdd3633695d78eb1357cf89816a06608081581e620f7eed8e1b08297c47b224a037d5c2e5c63c60d8f59e423b3af33e7558718b1f06064e4544c68a06fe56a309cf1741844b63901275067aaeb246d1a30fae96fb2c5f101c9b91c265d695a5d03e2bc52b3e1634f58d337c905e38b89c39750e3c92a15365a7b00b0cf3f1e48fefef5d9da03ffcbb3cf10e480d5b7b72fdde285d2698c5a0d27dd2a080e6eb48fe70ce31d6b97a935bc0d3e509b0b61657b163d572e86bd21c0556070577403208215cac7cd6e10a5f24f1194d1e9f6de22cecf09ba8e5a1c35720ac6ce3d083464a2b8ec00a2fa409130c0f7a48c7b0cce9a1d237d1068356ac1d343c0afb17a779d289b036afd1fcfe427ff71110e0bab36a6a7c422a6b47a222e780ea8238d08b5180ce77274de1e69c9d1ba7affdb9db898022faf42e272aaef21ee7731a01ed8a2fa0b103ae17008bfa43f5558485273c97c11351f960b98a74025c50fd551579ba3381b0651cbe9c20c79d923d6482caa76a8126227eba03a189b840d3fa540631a8535af62baa5a0d4de468c81c178597272ce8ed4155d2834ca82d73e83f2845126df61cf127e8fbc991849b7ea9c5a7bb959ceefbb77942fee544aa1b1c461146c178559e9cf75bd5fdacf71d8e27c596225b0c649a7601f2be1016e5dc4b8d244d9e2bd358d21729f828b95e7028e98429182dc09509a9e3f02e376a61fb109683d1d0c84c125f3b803335c337eb136dfe4cb8f77c491ecaeb4f1ac4694e69c5154841832b04fa3fcb2c88acc0b8894a44da2083328ca24f4f3fd18e6886e5832a4ec4f1386bf9123d5a8895b49e3fdddd859b7937e49e9c3f63373cef913c1e622b6bb8938a153de04deeb8fc3a96e3f9e062cef1102ff3256cbdb213a7c8c03b272e9c45ff3e4d45183f123ea026c12844e86c2c5a5bb4780da3009fde1a05404de9c2b615da476e0019cdce14b3713eb5c6cfbb0c2791ede221971601f60632008256d4fdd45b676c7f85317e29a4cc48d769378530407889e97ab9b91ce9b915cd583cec5b5eb70a0136b1d56f4718df0f7effd80f7d752a70aab947a5f86ad50738653962d228eaad2625b266124c41ea338838181faaf04add9969a4ed54b519c833a171fc4a5562c828fb88b30c621c95fba06fce950c38131df6349921516bfef48661a5970ede7913cbaeb45a1e64e6778e9c9e69c5ea32511e783abd4bb71e074b90a893ccdeacf21ff5d52e79d1e8feb6360eb45647c37baa7b442f16cc5b91d91a80e247364d1fe80bb44eee96a955ae6c02e86cd350ca2c41d83464c008d0ec82ef3017a986e9752ece0b282665508c1f62c51a0af723b878064f44f340aed822fbaf5ce62996c54093a1560c2014459af40df6372eb041cffbbb6004da8272074e5cdd2215f935da9d26211e2fcf1a3ba228f861f1b740127564eb7cd6fb59d7ed067c4576221f99a0b7f68a7297f092ba964b8346bbecde046971925704faa46360a03370a2bbc505398485f0e01d82784de4a69c0b909e25c15b9c4f57940cc741a6a8f3fc87e98e30c20be8464a33822f615b63fd18bfb20e888b01477cf9b1b5f75d938011e3ba2f5e94baeddb43038e6e79c85b8df1e574af54fa8c5da0348e98829bd8580e0b3625c6581640fa88400f696acb542b603989a35b4a4dcccab0a38a5be83b1ba52d4b8f907e8deac1bd403783601c97590519cb2003230647d5fa0ca49b37e9648a81249fda16613feec9c07afa6dfa1e45336286beb4494834317faf8dea8ed32d467b277401fdba7e2f24836762e398a502dd755bfdf3034f8b5db8246943ed4218f6303fabc2b99f3203612468a44d85adc300f41f0fad6c210f78e4211f66662968ab6825a52b911f5d9ddb20a098f5d2d37864066203e76ac5082f64c4ec1e21765390deb7d045c252b1174871ae4f9281d4ed710300d270c2e2724c478222ee1560cfeef7abf823102b27913a7436bfe33978ed6794c74150341194cb1bb1b4bb06b02bf2fa888f9f249254cb321e982c5395e2b77fb6914f6f762d23d1afef9cd0e37a611400efa813ee9589313c00a9c5d1dd7eba2ee8b4a84fb7312399f37c48ca83b9cb47da332cdcb1f37ad82e6eeb3dec960dd65b6b17d4ab8103bb83156b6ce1964b3fd775cee91b45a145c3ca6645ce69c2120a2f38ebd5b44811905354cc3771adc67f208e8e38b20954a0ec76d3d81007f19eb34a1bdaf3c444b74eae2e9c7b9dab83aabf213bfb157e8b095c2cd583fd62fe9e8bfca5eb17433bd52072ab0f09c71f4f81149e14e5e07d116a89beedb36121cebbb42139e0d876551aa78b3b2a251a15036667df500eb8db4ac9330f0bdd1977074d8508206e4d28434550f0f0f60b383b556d5cbcf56f5ad20fe485b9b8839987f20aefce0914bd13ef2372c1dd82a0b404f50c987818495da5c950ed692228a1147582080c5030760bb19c14f701c63234b62373b46a4d8cde2bf4c900a49ffd161eda956d80da8204d1853e5c2dd41645af969e5486e300378a083593689ba701667c070755b926de7c245d868d2840ddd2348c6d69c581f6d4a54110d50a95a1e67b5f44534b9f19723a916c66b8f9dfd976206f3c5c1bb34057e5fc3dfb64ec0c2638d2f584ca28b0b9adc1b599b50149817fbc480ab071198a41c90c0b3df9bc988320733c8b01831e783402fba45b44aec41eef6af71596a25084c7c9100e0347f4edb38d02a12f39bfe30dfcdb20cf14d0aa346ad47fb71b6f3a13174c297ea0a781133c6be8e4bd93de6982879491660a5618af77b12cf3f7f0cded4129a1d402034ae6c2cc7c1a28018596c25ae4395fa2c5920fbc83225c67501a8dd8c57545572c3baba0c3dd54c876517de2dafeac88f31784ed14ca155ca79010528598889c914920748d3fd5d90fd5b2c3c8feed4bda44f3b7f5da26e269b044c0e543581cbef1bd86cea11bc5ee0c6272b1a7faa004893127e78e8ab3d87a5d430df5097d4e9e03e58d0b844889253c596e9df5ac031d9a62d31e146a3335a39bd17eb76f30bf85c2548964a46af01ac45779b9dee3aa1a749fe465e46e10cd174ad330a62e7cc79a55450f8c625a4b3822adfc94584d11cbb27b4eb3441118d72f51b7a973faed90ec24795967f25d94ed82a40a21af3c170be76ac2eea573c4fc530ef49946eeb5a9553c2b5766236b6a8278bf0f0f96f61b5c18e1dbf67ba43c965bfa58c49a3703aa85a4586fbb6295d4d43f2868772ab2dacbe7a6c11715191aa7cd3ca8ed2486a048d5e5ec302471b9e51aba28465053c864482211c98da82b9da1a8fd6ddb02f58e66d5adeb4a4fb344183a28dd83036eddd83229898b1071310f3cf6a6c33fd042acf4afe0bcf081860907b7fb67a28bc651c11e51a42ac01f3a01b676545f3771545608ae7153ca05b9545f0e5612e1c0ae1f85cc2229b510e1f0f7c45652ecc48c1602a57100a73996eafa82981e0a310f7a3ca0b9607c45230245aa94138b2e004142e226a8165f5891f5185e388408dcf6919094ce684a170d641479a29022637d50da92eb71ee1798980ba54c49206050a2db4017143cf857e438613c2935809e8c1bc53e41400f96a9f55dc938c95609d96025a1037308c32b39cd73f6299cfdecceb452586ce21b9888dd436ae7a3bd072a6de0513c161a0dc6d3290ce840ef04af0ed84f430db5342ea0403066991ff087bf6129af0ccda6dfcb668e0627a2172b30ceb5e98b1c2040ac5429718b91830af7d40d99745cb072ebc20982342ec622a6893bc1ad07e84ae0642e364304c1f4ce439a224af16e95418e2370429f955c8a7dea613e91780a0488a92188e78a3a86d4313ee1474e3582d58e90c2587f13f044650e99b74238cd4015cf8cbc4124125de5bb92581eef2272047a2ce588abe99096cd76f429563274205025cc42a93a9a406f9ef98e8b2196d373839fcfc222cecc337500e71aababd5c5462ee05f1019ba60a6458ccc11aeb2f24399b32897be0b2afb3e8aa948edc815279e750150d187f8b10202d80ec76c54b452cca49cee209226503ad7c27c9af8c01bc69f6134a0a013060ca0fb000103584c486e53bb632ab7ee0a98c42913780981c6ef23c9aa0e44a5f2a25b239901dc51b0baae262dedfb48529c58ce1792b288135283897029285e742616cc493c02ed6b934e50064be45362c6a2951a71529642e4a76d29247c46a96dc583f52a4ea6011f84b8f81d4ffb499216028c149671193c9f031ca7ca1b8178b3aa0df275456959de2c02a4863006a399eb65ca44c04c1dccab5b0f037e6f753fb1720a46f6e80cf40cfd46ef9be74a5814a9c152065a5d7b9044863319741767d2c5d7fa7e7b1bb0ff242ab3d6fd786fa9ee1f2aedc56fb92ffea7f336d5f45b07cb667d6f228aa177572661fa1c3414e914d7064d0b770a63fd0f74d7a510681e3ced74c8a57c04862f2ebdc0b7bbb8c792823e74319c11ca38a367f6f10496251740b98f6d7bd2270be3b74d1aede6004513c895768f0bdebe6b0315ae35029cf10e12d8f17a3aebd46de913b019c30aa72d4b26c9389e93a3ea1e91fdf02189a0a39fa4f61027dfa0f40c54b436688198cc4030ae58505b403c175d8e68fb704a526553b2fc810b6a9f8ad74a836449299283a48d17a2d53c15d0c32657fa4e2781cd06f2644c3ad72416cbe2da9a4e52d29a08f4ea9c9bdb746299de22530b9cac07ca78d1f15dfd380928f98efad228fb358c5a094c2cf7941f88bc49387f7a1a76d6ac4a01445406d69e1d6e4d2ba9b3d788b792d240f6626449c121f853a6e658cbce46ed00a20c06925fa0e649e2481d7aea5692a476c2ae5f97c3c9665c91d747d50f25a96147023f56d3398c4234c0d14967a74c9eb9ceba8cec9cb80cf6101ebdd9a712a48e5c79934c1c7102a713d74a83a939f37951656185125da0114a2d66e851f914d94e1f6b074b714c882d4e804d8bf13409152621896d049c4ef82e356315be915d0b0aab4b8fa70062a94681a967bd5085453b6c897dde629cdb34a32c8178166043b4771b923c39874f273c5559d3836bb360f2ff2fc5decf02f82df392ed8c18047a0c9b9657401c59a5034d6aa86b838ae808eb46c3cbcb4a8a1baf2660e6781f5041d792e00cf247d4e12027b1c02ff18fc5e3442976d4347a20f2f7ed00b6b0724b28287080bf02627b89be18ab35852e3fd95bee2df79632a59402570956095e0941a8f6f83d477bccc2384158a73d7e16de619ef6bc1b4daabbd1fc8a9b1b38243becd81d8b8dda1d4b3f90daa92595fbbf3d4e55961716992160d501a484a3bbd7ddbd1f63c7ed74c4e662c70fbb1722942b9c01a23d5662b584559a16160695413637d5c7f7e37a6c08d4471348b0aa1ba56e1350abeac3f307518acc16d752798570b89494966c7cb8c15ec31efb89410c4ac833dadbf678fbe00751aad646c3dcb5a4e8ff3ff38582b930684c8c0ae8b740324340388c7f0c7c2015761fd71cedc5c06020864a758166c4c090895d84eea9807eb2cef84207a91fa38c403fd92d5bb6e439838c0c1b26c4c0c93221064d6a3f47e99c362d138a50d2aee34522684c6b39bc1f8ae3f35ce4c82e0c3af41c7ef2e1306d6ddaa5f9cc2e1f4556a962dcb74f3e9995f964aafc2a9f371a1f40158eb042e5ef0154e1882ac06faf89a01b1729a11fe7e0c4203a3b6d8aecd3a6223fe558156d3e1b1769afebd5310fc742786708517bddd31e12daddad9395607f621ca961fc2bd6516c0df409847f3d6f97acc21155e841b5de2fefe7b782e4340c0994453e902a6770a4aaa89b04064475b62639961af2b7dfba6f7b2904fcf819801fa3e4263b33cbdf7efa46e3fedbd649c9d1d8ba3ddc6aba6e9d748bfb686cd511047c9901f8d1371a67f9d66b1c8f1e307e50e5ca4a9cf0c31d4b0d18a3b63edac14f68dcf5b34ddd75fa0764665c57ad4d9f0846d0a859b19fdcfc6c07d7f0d71aaf2ef7053fc6619c6695e80952dbc64708b900688baa0f6f8baa8f367dde0f2ffef05b72858684a6106d0c68414e769f7741644035769d6aafbbc86894d2d604ffcb94644b2a674c2a7fa4d59eb2df328e9652a846371a122dc5d49742e4a978845252eca9fc11076bfac8b331e0c329547ea8da18fe8e838de1382d710831b530fdfd31087b5a150de380cca0d0228a8d261e69af632afeb4c712d482a099ac4b299ac1382033a316d014275cf44f214a8172a4f6a714b569d67ecad3a6227dc252a2b4699910a448ed20a924d48feed4d6789810840af5a33db529aaf6432f52fbd90ab5bd489b6878a1c991fe986a137fb758274f5aa23273a6a43269958286da29440bd382ca249dca5bb4c4caaa72fb9461776e34bcd590368d995d9b19d73b2b2043ceccbc41cbb856820c2750cd4c00681957803210613533536818c772237becb1ee07087666b24e5a6f61d0fa941dc1bf361afe8c033233e7460387ca10fef3f7b7e06f8fffdb2248c2c18a13452b44fba286279542e4a898624e214a11798e4c959470d4be60981a6d3490b94925110f218528a52842879c96714066b4cdeadac7a789f639a510a510b56907147eb47840e1c714a26da361390d39826a450a068e3b8c56692dca97f3e0c11f32c228e3c26e310c0bbe8d52a84a2965b42a74d3780556200c509b8e428b9b0d7febb30c7bd8c1d8d1309048985c87d1da6d2995b699444dbea797761a8e2070cc1d3a94353c6e8cc516328682196756c402f6545a1b164c6a7c8e362c7b927198f82d6afc99056ae32799e1d009b5f824140b78f65b27137b6ca38144529cc5dd7a9b36758defc3508d7fd3a6adc6f781d3271c786eb46993102154e36f8c43352621c20c35a5061a54b74a6dfa6464da6411c163e21a3d2fad371b8c6dfd52ab2182a7f633a0df6bbcfb780514e857eb593e734b8348cecfa4742cfc3bd3d230f1fb594a4574856aac0bf403853ae1e89993c1d598465df69ffc4afd32ed45ceb0fd8d0fb936f79539584bde7d250ae5c79711b3ee9312eb829a46d6e0975922060b3572fc65ae70a3d9bfaeab8755fbd9d2593961862218e1e51bad5883406d22824a5ab54488c9aa49756ca8b67758909fa4a4b4e4a224a57ff4aea6e37f95019326d0c049857ffdb4b41a395428d49e7358940b2bc2822e28f4c3824a5851ec1a2b1a029439c929a29a507690682b1c9f251b8368246463745c03fd4ab5e58f24c52945214031a70605050505711dfdf8e867f433fa19fd348150e013089dd0f82ae427f94d1da6234b8c5d4dd7756e2b50fd4a1fc6d8928d01050bbad840b1a2367da31f27436dfab0a0daa64f6bd226abfb78095c059564e4c0f159c244427eba09aa27c89fe8c0231ba36bccc6f0df8701ab9494964aff5894f65ab5867dd1327dca5005581eb034ac0e5dd3d6cf0585609388d3a6ad2b92a090a87e50280af9097b9f120fddd1a95891105624841509614542589150ed9f2d7dda8529c1f84ad6f72990d0d8b996c208651902d6eb77a4d4abeb86e0ea2c365887afecc115624551b29e362d2472385a0120b5b5459dbdca522565e9ab37a442214180a2547e08a54ffe0389dae44f8654fff1d3a6a461fa6194fa49d50f8e0705a99f54b9aa4621f5932a177a5279c0fa49d50acaeadd06245544a0ec2b77d2275eb9af34d2ca4f9249af9834a9ed9d54b5e70495aadacc2c35dad3d23e4575afd7c235f97acbce31ff4624bfc084142a10862098801c21d114826a1b86044c1a5b7797f9889f60a359de76c0ca2af605ef33c993c84049fd34920a5ada189ed09cfc9d6a2fe5087377bb7569d2f3164208bd97f6766be1be967fa1d134d63238e784737a4f9e0b002a9bbb178ebe1f55bb2a771f067a343684c9bc0be1ee2e1f3119a7ee4fd6da856f8d1c6abb0c8cdc2318fb62c28d868cca355d93ca3d72997dc1cf705413ebfe072b3b43134ce6dfdddd7d1e730231b9951a98fd33a586bb8606fc80689d5703636220f38ccc9ec3f07b0ed35b03fc1d766e3d8dac7a036464a275913e996d5e1a6f0da0c15a6f0df07577f79855f8341ba091d5d8d1c82aec640ddfe098c004328566b71aae15db6abc9fd9728fe0be803f533ecc01eb30b00134b6ddb66ddbb8e508bedc17fcb093fb627966a3f8355617596a645c61f771a07a072432b6056b81662c908c4c4ccc27298cf1e1439aef61b15583a2502867abdd070b04b94f4685058041f1a9a8cc1b6b9592ea93ba47d1a974322ad7a74f9f761f7cb9b5b4ed4d8ee1a72208192a394a8c800e81521a3ac14a79002bc24a318f8a076ea5d8dd1948b30e6cdbf82355dfb2ff38fbcfe573f76d5eb71f8db0d1c68df148d1b29fd9b6a56853725cb36dc4f1d07e87085075b4fd7cec33f9d9dc362ee35a25c7dde70fbfca8de6f28beb7712b30164b0240cb51f921ac888ad1f6440fe1613343efbf72e910405ec406d6821a5b4ff7ffe9fe7540f52bb47f18be23f5f416595ff1ca706b15eb7fcd7515cfe6b282cfff5131cfe6b272cfeeb26b499d41bbef40c2b7fd2530ee3df7d52b2e83e4971e83ecad25597aea553c1f1d8c14f549757f11d876384c70e0e39b8488d2f69e9bd158a9129452fa646201c590e28ff481dcaf1f725462bc09297a000ea26e98952b5ba497a9ef044293681536364d9b3862b87ba497aac50b3ba497a80ea47df7188648bb258c4e8945a3c174ca4ea57eae1a99f2cb5782e586eacdf7aa35133d8533f5d7f713972c67ac9e19c4066c6fa1c3983619d7c8bbb84304018ea764458e0ff58a0190f58ef810b9aa0f73f7cc8b2ddcdf5b073c0ce5c1dec8884113c3b9b3da19ba4278911d5882223786adf68d4ccf5cb3972e672225767fd0cb77c54b83a7a7485dd105ef751d4dd6c08a06e47c403d004bdfd89279a87dd7de28919eb67f42e11eb77834002662cd8643eacccbcdb3cbaf200fff3e6aefb6d639f78a2eeb7ff7202eaba9018b8691ba669cd3cfc4b0e1a6764885e800bccc5bfe4b0c11d366e67608aa67170ebac59832e40a62c4052c8b13460f4dbe3186d1ac5d97e1d66ce8c36ba332a2a9a06d999b93789f1c298ac2f171861ee8b1149b9d6d68cecd4b0aaa2011a356e67247703f2ee1025c7d280edb5c7b17538f6572481eed8a21daa406680cc348cdd45391cedd761b2154be88e2daa3bb35b00eb5fe376e62bd58e9f082ab461807a5dfe71832fdd728fee0e37292f2b4277ac2390ce5c3f19b96ec01d206cc73a5e1808fb19e38c400819422831ffeec3c10ad0c18d0690daf01301b481a25a0cf02a35df8c0cd197bbcb3892dd101de10be6be1881f306dc010437188542cdeee17780e3562055ca3935de6cf8134fc036c1eb391c394676c8541d3dbc62ef55203333fb1dfc44bdba8fe54f0e67fe098cec90a93d0af04519a7a6fdac19f7411b28ea650463e62c8eb06e888634aa925004505bb2afb6e00f1879ab1102589b5044aafa03a9bed10072bd37b7555e3fe525ff5a40e415cc6d1364ee8757d70e7958df43561d623fd4e010adf95f7f753bbc5a9c77ac04d609eb3eb709c61afeb0fbfafd757847b7e60a37c6d67dd13098b10b40ea8c0be02758877ed81af3302f8dbf72a759431472edb831e47335200a8542799f05ad8f97f53e44f34787eca3f8d1b2de2b854198d7cb68af5d78edb53cb3ec01a1a4bb25217c3ca11fcdbe40799c6842e061ff8650a88b66f8d4fe1e96348a397272ae81b2dce872388c8d9f586e581fdfea56467bd06ae293b9212303d5ed635005e5e0097273c3c92aa877c002e523282f510579ca080a85b0b02f1aaa82b8fb7c055705d45ecac687950e4cb54fefd00faf40a140f9637c62627c66dc2006861207f88ceb388c11f4f33c1730c5861c42386ed0a4f6ff20b516270bc4a8ea9c0d0de8b74238a4ecbeb2b7c0728173bdf594f41332fce5766c0ce54ef0332516d08f961c87d2dea1df29a9e3116b0fe8797ea2eeb487ae9494963cef064a6abf0b4a7a2162bd153b87abe4a5cadcc0c77321c348fcbeae9494eec7ceeb625c7c5efddaa797997ef85297d755e27f5e75a6b104cf8a15ee34eb5a0a285c72839c35800c24b2b1818c8c5dd2d2f242499cd338d356b550efd03f474470102ae4b58a4914e8078988fcd4290a89a01316a67f0ab51f422cd4feed145ca2d4aaa07de13fa331d02fa63f0686ce11cce3a9940d98d47e12f370cf9196f6f9096a1ff6f1e998a791d49e1dc64099e3d8c8bee06ebb4eb54f917dd1df3e9e6a1f504f31ed213d3ab47d8aa0804a2d42993846a0e5befbf19d0b828bd68be91dfaad15d0fe98527bdd92a25fa9768b57656c80c4732103f680cad8786df2aa8b986f81482e607847d08fb65092ea0ca8920f9edaff83717e46febe7cbcde39bbb3b35bd6655dd6657d24f6c12324f493130af493ac533471e2177110d53bf44726e8d7a81944295cf9093eef34aa73604e9b36890d70bcc8a3c0203b38392838e427f8b917a16007fb29498b443089a5a4170d3e2cf50efdce5123e8b741362a3ef4a3dd433fda4ff0b1ee70e3c68dcbdbf5f8d104fa2d51853e7e445ed5554dd1b2113a840e1dc2e8cf6cb1c51633e4d8fd10c2478fd16ae5a44faf1d3179665fbe4e82f28eacbd931354fb3988d45a361ed25e0eed6f54fd78679f0a1b2423538354ed97d1dcd606baa46196896c429d949e3c9486d91948446998ad5f4cb743e19391b2063cb55f2bb5b82019f13fc1cfc4df1722f067f4f70efdd00a9448cecfc08ec57f67b486e9e7aed44fd400a7f6574a3224480a1a3ca9fd90af50bf171c46f96f6135d3a44d49789ed41e5d370031151a5e48b5377b89aa6ea5d105559b3609d5111a5e106a138b3f57ef687841a836f790f95242886dcfdd273ffb091bfea6bdbf3f16358c06cbb0cbb25efa46935dd7635987310d6661dad5ad18e20a64df4829e5753dbc2e79b3cb06f99765f9d8eeb386905d6d4198d9c81e7ec3ccba2c0b01ebf166c3b20182bda017205ce5d06f819c33c618082d26470c0cd7bae681339343d2bd2a391eb0e70839b164458bd4e2dff2e38493961f27be90433f599ba7bdee69987e24a5235da4f68f8ea09faf8278783ece09ea39420e5cc92f9464dafb78957886c3b48cf6188657bade2fae93d19e8c1a28a93d1995f74ca84dedca9440d900b486d41e775df282f2fb699dd9f7936086bdf512ebf6a7647975b03dcbea2474c2dc976f1255fef8cd3c290e82d7d87d18a82d44ed15df0756b5bbcf6d92403f1ed29e0f961fed71cc981ffb2c20e9eccc13b11fede1c081a33dfe6faa3255946f3a61ae2aff0a1b1f78f88d48c19a98a7bd9ca8e327ed3bee7447f8dbdb1c4b8dee1aff0a6790aaf24714d0fe9616d0cf547142959f8d984b2a3f3f0e3fcdd5e439e4dd0cb2805ebe97ca1e84bad48c8808b4e3ef4994994025e9d7a3420c426d463f18e85729ff7aa95d97aa665cc961fac140ad8ec22ca0dc3b3648742c35e25bb1639cce870fbcc347daf4d3a6edfb19499b2eedfb398897fcc0ba1f8cfafe8de31f8d6325ed45ac931de3b4d747da4302d41ea94eee6321b57985a494524aa1fac5f82765b2ce3af3ccd999a5863fac3a60072386bb9413da16002208217ab87011e339bcfbc10240e040c20ab5f7799facaacc06d843771fd5b2acee83944919bc4a15a324d8a6d39cdc4bc3f43563bd0c1af672ba7bf7612f7f4ae87ef9c5995f9957a16c21493a3babfba15acfde668345e5eda011d7c377cee6c2ded280b819f05b21dac3be078d1edabb64b46a7c643d6edae41627e5075192553e94d19256b43ab837edf5c3969a71df42a994aaa88a52d5f660a32dbcae5d19961add978152d5016580d4de6820c3a7cef9063b18ed451384511b467b0dfde35bceb9bba444e6cf8e52da149515816f1c867f7f084fcf4e8e657110c6f97685a34ddd317498f8374878db199873d92f3059eb5de6e932bbbbbbbbbbccbbbbde04235c128b3c29168afb44e0d1a9d8c318a42af62cfeb0461e87699aeb2d2350ef49f9913e451d4fb509fb8e3ca4d813797a624f2c827591c77ffe8b3c7e84f238d6c1c8e35fe4b1fef3940f0f2a03b0879127f6f86c8cb5813d7c0e72436c7b92db0b0bf3f201c5dcfdadd2336c314c5aba360500a9f0e16e0aae1ed0fed9ed0d617770fd07b30774e38fbafb823b12a45075975037890f90d479f5807e9e1292300a8c828313a43b3f827e2cd4264f499ef688403fa94a653c7eb25e731f87e925b5f31ea912aafd92499fb294c3749ba05465293ff9114f65a9da427ef2230dd3df8e04769e4a654032a80215aa4085f93dbfe75b9ed5dd1eb7c756c75f2568f6d3b266c67167cdd794d8c3f7cfde45ccc6e00254ebb97f4ede6af4e43987e03a3b179c0f9d020834be15bb90bd67ef9915e8e55dcd9bc2075409fa7958f7494969a996dc57aabcb4273f3e7cec5dc46c8cecaf9ff3bf02d4ebe3b680d86959b7f57ab8d5d0b82fd6979a759bb9f02105105eae888407456af65f336c7e96d16418f69f4ac59e3196f1edd7d7b39f32321ba32bf63f007100ec310cc3300c7b52310cc366e7b587c5ffbc8abd0cb675d8cbf9d8cc3a8c3b1a5fb3f94fc3bef900a466d9cfe89f19d6e958a228cc12104a485cd718bca442623011c03a90cdcdd63031b96b95e1dadddd5db8bb574b7982efeed8ba5f6df076771863f4eb7a6786cdee1ea165c1be76973f9afd700d6b8262959b884dd02b3641adca4dd058b9090a2b37415d7e807a13ecb109da954b40f96313942b3741b7326c79b9bbe56e41a11c77df21899250c8c018a14fdfddddddf59581b07b165f4c953c94d9bb9a55fed13ceca6ed42871ca829ac908ad913f625d2d6314aeb5028253413abdaeb8cf3b11111620c2a2a60b80140a07a2f4c7cdf6c08592d4c894b6561e2771378081b420861c76d590ea1c584c58457783171310125134c780c1331ce44ef0e1fb82ccbb2220520562a119578e4ee032237b8b808521024795930c65446310ab58c823db12aebd807b5c77059307acafdc42a0ee21f943babfa252dfda35435b3b67603caff352a25e586f8a9ba2d4410815c7d830a26b7c328377ac7cfb2b9d9421d703b8cee7366358856cca05bb05a9c0572ac820062c8abc5ddb8f901475b5c0f33381f6c64c8c86442ec0e57dc1928b1e5772ccbe6e43c2703bd813706f3d43c28068653410a8284c9cb8adae6598499bcac08b7914308633c8941c6e465655e8399552c45f3941b9ec46097dcec5aefec7238843e2d7d07304933151b14e03e8b2f985917566e40e1638b8ab6688b48751fc872f73191da3728c5801651fb774f9251e079bcba68c028f6e19e30ff01470eafcef96073e386ed66555d9d932123d30300b61930b698180b03fba21fc5b6832b10fba2dfc7d0094a33467a6c4260376c2b4328acdf16f900c0763682dd8a0a8a1b52682a546c5080abd04f18c639c11b03c5ca0aa0189820198c85b4d9d04122a1585981bd5451396ca9bcba558a4295ac6e5b0d90ae61d92bd456712515352615e3d3cd06053ae5279692d252292580fab1002af4c0c2f48f6028054445cc93f55f34a06c653565345b70d0e6c6b8a1eecf6c62d968d34a425041149e2c894218d260e4085e4802a97b200425962401832814e92c0164053a8042113de069030988e0151298eff2004d50bb3b06f56663f0c2efa14fcbd44f408a58a20b481ca1851f8001670676a1c27fad4288a24208215401cf2c0f19096ac5418a7f0688c4dfe14f44a941ac934a647f0839b25f6bde7048a05133dba1e0ef43809f98891d0a76f07906864004eb6406b54e661802bc4e2a9f0109213b60b203a28a044edd2442c0a9498ef4549b366d1224a054f83eb449257ee488a0fc45500222febed1b0dcacc36cbd413b09fb1db033ddadc340c0bb92c3582f3b961beb591cb03356f7c3c80deba57c1608f08c7c9e91dd0f230ed8199c1018b921bf3f0421909de730f0fbad7720ab5b114477664686a501fefc10e81b1cf7264c084105014806fbfeb8e3a7ecfb234fb79dd75efc11bb73d19edc885863a09fe7c5a19f2588c16a01116a7c0fd2a70be86763f4d091951711f21e950f01722144324e2c4109560b80369df6e20f15110a022222fa622a500c0c203f6d42b621415b8f6a2b2274648564088868d3f9622a500c8c181919364be2bb00f2be56be37babb717fff1b387657b5efbdbbdbe1b8b9c112facd0d1c3134c76fdc7b658961d27ecacdcd3a739fdf03f4e23a2deecbdeb2ba122565bfff61df6f751f166b765f5858d6edbed83a79e77c4aead3ec5e1ac6df03ed2ee0beb2ecbaa66565d3b22636e7fc6d53f6329b989c33c3e465b9bb630cc9009578f117ded69003c74d0efd7695c39d096bdcef7f1141bf5275254cb893cc517e8d77779f7fa5dcc8b31a754c3247a108d49eea2bc50854fd8b4b98b4c9bfb8242e69d3469ec8b3fae9c9b3930ee354f670e3faebb9cbb9be5f473fe374cecc396de28ef9732c8763547b38ed39e69864549bb8b65f1d0e9b1937edf9b70554380d440ea296ca28c6e120abd5e7f06f6953bf8e0505254a94f4d0261446502556d64b84012184b0839e7906177e0633b85f77326cc5d09cee06c2f1038410420c098b8977660495edf9e7f8539792d215ac5e6048b932dec7b4a7ba49826793a8611efafd5590f8ea314137627e68d397b341364910429b7a3db873840b4ae8d4f89308fa4917ff893971891434e9d3a59373fd384eeaf2b9782e9d91125c50630b96d874f6457ce67ea2f8ec58dd08685fc4dfc270e1502f1d3f694e1a26fe931d2835c62835c60d2755e316e4a7c6ef02aab1d356a329d0f85fa6a3b22f78a5f2c70cd4fe68d17dc1af814aeb54e1c226812354b936a93196e0c8a6e8584468d9027f777741e5829999b999a5942c999999633c25d07e777718140d52d5440fdf7f3dc6ad65611deccfba95d23febbe8cdbfecd9a6babb39199d19edf40a247e774386eda5b2901fd341524a8102b1f3d7eb4e9f31b771a87b849dd6fd9185b2164e8d7f7755d3652ca85e9bf66e46c66f48004fa75b71a392a779b187a4878321f8c1e200f0c1d7ca17ea5d5dc36c13abbbbbbbd5130e18a2428acf9ca3fadd66aef3ab38d5f491db26402d434e6c1423d56b1df3565fff56318d658cfc7a494137bc6b0cfb80f888c1b0d267f46c38a71d76b7fb5d65ddcd685d8b55b0df91660b9b969cffaad590e2810ed596fbdd4a1fddfae96480693078b8dfdebbb7a9dbca3212c0fe9938cf179a74d1fe3f05349d2d2afd0c547da8bcf3c7ee29e2ef9293228c8498d3f3316b91da9f1487b3e4a2edaf928a9f127b602c6cda7bdd855e6f47c8ecc913957d753e31c4d1d151dbb6f1b720d491ce6210b621de2974a1476d7509517b70da1dc3cf2e35910f3307fb03ac48f5355e3e7ccd40c42c72f6d355d53baeb0814fa69d37198f843b52b26d4a618bd499b38aab309e9d3013efe3664e3d97adae4699ee330f1dd7ddc73726abace999a47e64f8e9fe6921a67ce545263ceec7a1d816ad95036943dc9f827fe64bfe934025cc268eea3e3a7997298f85447c7c77ddcc753385faf7fc45dcb83ab0efd33e5a7b930fd711e0145ed99a2f175d34142e5f7c74da74ddb013e7e8a23f4237280c71e7bee78c0dd766a248016ad4d07b66f3a0480de4c8038d23a961ab06a0fabd64dae63701da561b2eee7001c236998f817c74a388897f0b6e9f8897f7e6489379dce71fcfbe3cf237d721f8749693355e3bbcf86c33f40355adda6534744309a739470f9891149229fd2134916a296169c085ab4e08cb4fc762b3ee91b0db7fc8c668e2b3677621a9cb38b442222213bed2365fb7491f6912fdba78b4427f62484b77042f8a9531b61fca1db1ec441bd2525dd185b4fbc302ddbf25f8cd2f21fa95bfeb38244abfbe8c47f6c9e36f5cb98063a821a3f2b05b5c7daa92dff5943ac8da6fb16aee59739f81847839fa566b9f2731fd716d9bdb4d7f2337a5ecb57cb6b2d5c51248a50da8b7f1581666fc5554bb7b1977dd47dd737341b8d4612cb885a7070f91be6c1faf80e78c09aae16a417922491feb2e44b8b960ca3b444d43e50da745522f92ddcd70271349803511065e5583ad64e8c6205b18458280bc7c66663715957d7365c9fa45015ae054789a48444443aacee6d6891f6e2a76a6c1f9fab87b27815bfe235b8c3d3a6151f1ffac0206dda86d4087b462f4405b290f2671049293b9b1eac2e3a89abdad326ee638b8f4f04a5e8dffa17ce670a8b05b2e9a18bb48f9f7a67194229aaf159740f6bd77d21a8d7739c0fb5f7a46152fcb744487e24d7477ac74fedf3bd73750ea57d64ccac0cc5af7cc4220ecfc222bb4884c3b3f8482464a74d380c29954abf5b7ac8b5b417bb92cbaa887050f12bd2b041291a8d88dab441291a69dfd2c26d95edc557c195381edc3eda0d9188c78582a8c65fc96e62ca0cc82d176786494fe5d25e14eb2754f994873eb7717e28ffd067ae37f7aec69f3eeda033775d17125e624fd4612c16033bc169a8d6ef053f855b0eb6171373d57971b03d2150bc46fae99ffd0dfea4bd3846b22b2a3ea55f992a3b0ec473652a3159d683987abd3b10734ed6f1a73faf2b8bd049d012c80436719212a4046834624a59c77aeb81a0cf6fb99c535be118497bd6c7f889811cc6fa2f95a8e49f1faafdd7395da44db4b350bcf52da487b4a9a74dfe29bfceab36d1b79e2d9d6abd7fbd53ade6d13ad89ef528b89b1fdae3d5ec3eb9753b299d4af795ea5c6fe5a7ddeb7186aefff87aea4e9ffeca45af1415f71c2bddc74f3b17ed5daf833b20daeb2cd09ef5dbf523cd499be45bd6e87a958f57ab8d81d3a66bdbb6dfdddebdfba13deb67744a6fd21ac1e79f26488094e804b5e96321d57a4b0849d74d29241e6c55eb85f0b7dc7358d052756a6b9726cc9f3b59a374cacdfedb209b8dd1757e103edae43fbfc6fcf9bb53a873ce39a3d429e75ce68e5852f749dd243c58d5c99bdcf6a0d4ebf9618c059badb5e4c32abb4f04f5ea20d1d4a40a29090f96d44fa6ceff3648a64d1f95d1a6f933dee6bfe427b830fc9aa4b29b6c98df6cd3de7c5afaefacee6dae9f3f7f5fa68564ee468303af58979fbef42b86d60a5ed3ca7fcdf29f55775477a52e0056f0f4e5223f05e0bff4eba71c9ef4eb283e001c2f0c7f0e1c6f6ca09f85aa316e34a41516978fdcc7220b65e1cce69f298c403f2eba2e2ee228ed45c890e322e6ae862103a94c223d17719436959ea10a6d8fc5cb467ae15e7e96b8959fcbe2b2aa7619190bb44a366897acca61c4603de021e8b597653c3454af5ff9a96931b2b8708f62059d5c7209544126500836812be844062901da36785d2b2bdd10ded5bdf0d0507bf1e3d51511aa2bcff2d6e534178b0bf728e04b1452214724877fe1727e26879f1b1be80ce60b82614d2ceff25f1403f75f6ca2c6ffa2196a24954ca42f7dfc1516178ecba9fccfa1e076bd1cb85d98aba3a4277d892baaa40e4a651a4834ea205e2acb0eae2e3f04ac2bbf23a5aeac3c4b37045797ee837f752edaf356ba97f6a2a6a53882f20b816e92224175931401aa73d31842d8d1b816ac909fe33eae1cbcf67ff76147a54acb6f92224516e5225ff1d04d9b5cbaaa67f88ce6b8ad2d1ca93d16ff1c0fae436ddaca53e397ba4f92ba2214dd43545df17ad7b370703d7e174eaec7cf71da7afccfd1f5f85170a4f5f85fb8d2c2f04fe6b5aeaf2cdebf37aad0f684d4f8445e1e151ba2282d95fe59304396874ffb14572e3f276bcf1b0d0effcc83cbc76fb126eea3ac37d01837fcee0dcf71bebb3ac0bfb81cb8170eba702b9260e1200de8ae749fa4a52257d2a6ab4216ee63799767ee1f49edfeeb1cc515179572a02a551154419d1cf85fa3e0bbc312ac17210a200adea075600c3a0716d12848825e624f10e530f173c4a05323dc4943b584d468e57c5690ff20ea2ab5e973f9527b51470fae10c705a220ca85e3fa6405854ae5e2a2727171717151712a2ab870dcbbfca368064084505c3847d25e7c8e73a0f6207c174e07f73cb8b2f85292239a54145c0effa978098009a2fc1480ce575d29870ef5d2ad78f026ac43fcafabafd7e25a98162d3e16a5204aa92d6a0b6f52bf76ce6b582ffe13db8479e022d6217e8c41511144350ed5a8867d11ff732ed4087bdab46d1ac1a25290d3821a5b47063576ffc122ddb7f88f8b5cbeab0be9068882288803736ad4ba5e0c61ebb8ba527bf149ed71ddb6c73d8bae075767d2a5d80115d2a6fff8f229ae87ae62f15cf7c9f82f9c236998f82d380fea385fb202b71aeb53ec807e74a5a3d41ec99df8ca4f3cf4d14974c83dac5cf785a0babcffb04f2dfdb7401da473b8c6692f72118baee6aa2e9d2b692f42549baef795c3c45f71213d8af795bb74ab1a5b7e05f7715d71c5ff969fffc5555c6d8cd8f251d2ffa88adf5501713898d35e7c6b5bf9e91d267e5cc515ec5a3a886a2ffee83f881203ffaa4d19bff32a3a89431b8387e067f919be5505c7834bdc578a9f82fb3400702b1e57fd9e072471ab4a5a81a812d32ed28d92da83dd272bbc58340d2466d3eccb8bb72f98617bd3990a735390589fa0da0f6d66a659a8740dd665410d15cd00000020087314002028100c874443d1683ca02aabfc14000d849e4a74589b89d328c7510a19648c414040040040000064244d40008d48744b785f85b502eb30fd78f304c9a55dbf852c07fc45c0d222c615aca0e1b66ce25620148e67f42a5c112f837fe075a087df79e319a1237e3de14f71f00b6c4f750b69a054ced477aff88e3e5fa03654279f64f5c815194c2066cb53ad7bfff369d258de32284b4e3a2103aff3345993ad293c76d09934de6e31ff67302ab39bffc450f796f0ee6609779da859932023894aaa621806b61262789d008f826691eda0b3ed0f23b2e24f8b00498d7d078954068c0e41a1f0ec5aac7e3d64a89bc2d6e8963ae14d0b89cb7620ee0b231c62d05464375a62e5661c9ee2a6fb15df2f6186b1094f31aa425978ded5380140296239b6c29d2339aca7c274a415bd48a968065600e99560102296a23d9b35d938e6191a7cd0ea30daf7b54e4f37b303d259e2e8bd70b6010f7b3bc32512652156e179eff2b8587ce00d1edc10970a616595193c188cdd1d337d874edddab6e4943c7262f3880815386f7c8a9cedbccebad0c5f666cf1363fd6801c4b1be07659b281492ef955491878cf8a38f174e8f190d765d53c0311b734bb3eb7d999dc9bf7cfd25058e3337e35fb20bf85673a657f13937fc3f99a0eb0015dc67e55a183564bceb049b7d0773d77e131d37c712dc2af255e628c2e19a38d8256704cd0f0600985431dbbaba2483fae48ff1292a8a5643be0ffb9ead944ba22a4e370e87cab210bcc2c0bb0a854f6f301de64ffb53bd2f7360bf5f0191af41268a9b0337860b4f80cb6dd385b2a1bbcf7b9fa8af56534de476a758bca93aa5c9f9a3dbe82c88f1ab537707690ea9452d73a605fb3277514564a7aab8b1fe3fc28d6a401551d7f5a9caf675fd96b2d8110549562e0f31e750d441aaadd84f45e8f5eebddda89279e939b46dae45704459d8a73a85595000a7d70d6e1964e5236676012544fec14f6d70e829a194cfedfc472581d313b1d94631dbf596a2ccd12e14905fff41e6475b31400c252b953c364a6201b3e465604eb5ecea4836595157ca23799526091a986279f09ab115230f9106533986e6f2cde969d490928e8db02840dfd2c9e85a63552451c3230dea2a9c80d343c374d6fe6a1a9d161c46e31d1c9be21a21c051c140cf0f4329459cdd8a1e15cac125baf3c65c28c570649b5a100a79e2d775336390334daf468b776086e88c9be59138ef97e2e2258702c4b847c0ef984b329d589c72c610a7fb6cb4cb25a5aec37977b238bd478ccba0b9689b6630400d44f643e73a0028a3115291c890198ba8ac25a3298fb031a68b36c40b906f4afb706925b6fed18659d3ea448dc2b451170dbaca543a6c2bf4be73655e94dc7cf3a842f2adab8d289f4825a2db7d81d9e2bede558e5f3cb6186e3606e4d769193b9d5ff0fee2095aa3ce8c44b16952e092e756e3551caf483d1be57c392122a76f1824e86e93c1d0fe02c0b7d4f7a1f04cc1118d17257d8ed28335536db7e0e76d68bf32b4a969d09372294414e10f386cb006bd054a31a4bf6b2cc735d59f63ded01a8d6c2fbdcc1ceee837c66ab069702e8238f265568e0031292e505603b2a19da06021cc4eb797992d0eac9ab0f1fca1288202b4a026e224597e9ca6cc60d181d69f4636bafa3b19e1d8e56486080b4ad6fd6ce9f018a186c8d3522e6125494e3ce67a9b1352624cd417128e4ff3f883d8bee72431935821a970dc07c3df1c1fbc2d5a28dc89206ba6696be1b5de104e2fd07a3d7786b0060831a65b1e36c02734e84072d3a69882cd0b980154e598e88b612cd3337c7e18890de24163d880b9655d7186724fc190a021eeee02aa3b18ee763eaeced968e5fa1709bacc846befd4d735f2c978b7455718c34c4dec8ca770e7c0c8a3354f0547a9f447b54d9b89048f48993835ea24be9a0b5e008928ba085db0d1528198f6165cb8b5234e639411e943b58af76ce2a6820c4db95b2783ed516c887ef0923101d85e7354191fdce4b4e42f3be0b5c9dfd886bd429fb977b67c973423cbf81bacc25f30fc4672e7363857d3e6c1f049e326fe2c544593bcdec1b2546fff6a4df36cc2cb1a0c5311cf7e29fb501c9adf172a62a4d6e04f1ac968123d5a4941a64ec1f1c7464368278de21c7d6700dcf7281700736ffabe6f11da2fc280e5b298601e215769f560e4db0d01b9b3c1fe05f05b53db28c14c4708563f87b07698a1f48a609ec1d2358fe666c1fc18383b0ad1d61238d1608135487cf357849b819d3427a870075eb78e05aa6f61223c5d348c9b29748df99edddd1d43e51fc14e297996c692f8a7c2d44b280907e0d38bb3c2317df43275e205e2bc302a40f942acf8f290336e1fd025c5cab1771818134feb6573289f1abd9a5cf5f0d82a88ed72cacbd183b8fe995c0d6a09961f90145240f40c31ce3f9216ba04d42c11602c6bc759464081d5b5d6edf217cc29dfd0769f7a3fb9e2fa664889de5d7b28d271f6bddc4dc57bd20429ce88d7810f72eaca906a0a5519055592dfcb07497ed4eafe33d4487eba3b09e1b38c4289719e9e05080b91a580ab9d98eb740fc38ea802ff4e66bec00598a8ec3506ec667ac92022e645d595f2a8b5de7cf82be4e408351590c3ff5a0f28554ec103f89207b215c22d0fba9fcd38920938d4b914423fb0564c7ad4ff2c9cf1bb5879eb828dd608f36f449a1e4f63b71b1b6e5da5c8b3ede513a47f796937794a1ec7dc07812bee414ccdef248e19cda643000fa345b9de9cc620828f963f4f96ea617ca0811dfdab5f1520dd7b2d2980bd7a238484f785c0810e80f4de9eb6b59a6f0e332bfb9d1f7a456b5fa75b8cc1f9878b655fb0b7d09c8545af52a8afe57de25bb0b6c58d0510863d20cabf36f5c4cd9590d1a1c074b2ae3fb7403ba6df3c3d173871797c8dd60afd874049c5ba96379f926381b41756558c347b1b233445fa98552c9a1e55a72be68883c20cd7264f798ea0d12ae03d6e6b989443c0b8684fc8fae55ccfff490e6cc2375b70580e8a92c013310d6a6ad9c3688244b5585a111e6d100fa620122e11042b0482a6817ebd27d9aecda07399047855b0ea8fedb5c020c773e1c21a6cd6de1bf8e81e6c4f3cb17a0cc8902acc0561b371e0ae7cc89bd9e9ca0e38ffde9140c284159d38c1ace624b07c212b799298b146ae56482092ee1630749501aa3be409727576c494fb0e508a9c2185fd0dc796dc33488f47a1ad9295212138d358bdacf3461ea7062af3306a56dfbf963e014d6a6b40c158198eb3da7134aab6b3ae1319b0d2e59452bc6af47dad0c424524a3eb1b310a2387e72a8fa2494600175d11b73366f5823eb6b841545d66f20df0658e312b6de1961169505dd5cba9f572986fb21729e894e37534a03b162c2ce31ec7efc7b5dcfe11e4e5671228ca40def8d11f387911281f2a0929b18a2172152404502a24ccdc4a0078902e1a19d4b4a77a3c4f3042655a58d87a1128435264b8a304d818600bab175072b825f407127b15b1c9d08c8c2622a59c1491ff51817fd7b8b91488d450a2ff1ebdeee1618098f31c8c8f4efb9106dd016772fd7dac0d4b55a5c8c93ed2c72c24b4d948e94848c8051074dcf658bb45458924618a54ad9cfac6fa53bbe16de15d4be173d48390cd8f34ae32801cb3cfd1a021c5e81776a7cffc1b58c240798455a62fdb0c2ad3a3bed82758cf48207e74d87567b14fd8555dd27094dec235de80bec0275929ea1bdff721ba03e81ff58297500a764f3602050ac62461163e115fe4197af4f7b6851571653f83d9dc02b4e7548ca2928076eb788982da1607c9891e7c8514454814b5445c585975b38b38801d1b3dc4a0fa12770c15ce08f21766e6eba91eced832811f15824829d3262be04e4524047dbe9d752779835333538dc00d46f8abb77d30f1c787b59d4bf4be5dd635856d12a7ac4fe36aa0b69852ae470348dd1dfe98266f9b7a763e6579c10d3e9f3cc217090d2757455dd9845e7a95d8c00abcb1dad899196c0bae7a81430b7aba315811c99e7a5470bc71152832afc24a6712fdeb28c21f1110f2158d9a713c99b370bc442fd4842b310b48e5b456168a9d4630fd7c4a853a3f12989c43f6ed501f22d9bf819cca14d1b0718a16c3c57e3475e4f7b2d791a9b2cb1f9f248fa95c5a6f7fef18e761529db479e43b52ab32cec291cea1f6cf5815d82bfc54cc6d20818782423a843ff077a646057a235221e789a3b7daaada08ee21a0d94dc202db7bb06586e44fc42075e55cacb68348252b3868c11ff51ffdf4ff5b9c69d5e6f733b2ab68b4b6f9c3682c1787a762abcc68e2ed435b85150811e4cd95d6558307980c9f84ba44cf740dd1466f96d1ea51a6331faa2f42821701409844cf7867e3ca84348e55197fd499b1f74f3ef529c3437447d5a2bf05915216618f5fe0391188f13af7d5057db550e68fdeaa97fc0750a8a601ae4a3136a6a793c0495e9d1c95324ae382cc240c841feda58b1c10f23c632246aea2e6f80562b7d10ccf94bdf9a05c76eb1971dc3bb1df6bd9e756fa0296d12e9bc50d36926daeada8086d22913301226f1c0b6bbf85f251df7c3a790a7e21f571543cbb6d56b23b3ce5e066312537ddf448070e9b736d005c641ae44fec51daa6d20d6b54b480faf7cd21f89efdd75587ed6b2b1c5b4b8906dc2fea5a8509dbd3bd4713559fea3f08ac495d21ff048c5ea652c620ce0e9402d30ebca5f7f9e255311dd03e5ec2878fb89afd0699c6109e1c09923a649b09b90c43436fdfda08b40b59f6c87a93ec9c97cb0400e6c9f681aec8bb0c16493d7e49083015d8706d8807c05070492824995efa3ee1c1e224b6227a171b8641862df053892d2260b9b52ff615995838a21c815c8e32c1b2e7488df1685c8e7ea94c1c641406dea40bafbaf8b281dacd2df56ba868c765a07fa97a0f507f853f1dbf670f2dbad0e109c71b0bda40c1f0bf8458b2550bce56e212151075a8a8f26ab0960fc5f072ceecabc43c3c042bd253652428e54e00424573236a4a92068a1b0e6b014305f2238b603a32b318264cbdee561ea7cac3ec86867b9539a8c981d795c5f3c8946bcce42e7a82d8062644cf8157b6a621ca9c00e855ea0039edc9dcafa4525a0ff21feec667276ffb66e4a2cb70acbcde443c5c1c3450e045372a8bf984fc6940ac23b8398684ff60995876c8496991f6c24d2045dd35f73566ba8f30de47fe1906081db523fd5933c02294872611d71eb39c4a7912d185601d327c3bd429ef14e065bcaa4f0d5205980a88d13b096902ecfc6378496514dd027a8011d0144b5a822e29eb95401f275faf321da38262fa834bde78ba0b9d8a3024a58e834073660f1974bb1df03dd32c05da40eda434c92eb0a0223043e099da2d4fa64a35f452dd615b5dea601425aa5b98db891c773c48dd0181a0ce6100587a7ee820405f1042c50d4d0bc99229fae5db742c507473a717d244a28761188de9b90408cc8f0c189ea7a7149e5d993a03fa896ef8d07fb4cecf26f8bd90c099e981247678ac9cb6ca5e4b5ebd443b811b9922c12b28898334e8d5d29f208565640cee10a1cfb99714b6631cbe993d83c51735dbd2ed42261b0e8c23497f313da3de4bec63a68e023ab9d5114fef52b18d2bc98e09347013747b85db46abc7294b1af56e12d0e1c0c1affd240faac04847bbd85a4e86f2606387848b148188d023ee6ca08cd526804ef671a0446aa14a84adb87ca8ca44dad20efd2e4188c6dcf505eb9c3f9739f7c2f91804be633a7627be737797a7e1fed0504504dd75d4a00ae03fedf5f588d00ba7dcf88d59dac8b06cf9e520686184f4c1fd64456b066cdf7218adbd5795030f2ac1690f25f8e728b8150158caa51dd37ad073738c9d9bcf117a17e7aa7daf2557e62a9a1d934d9096245b45c4294470637b865bca8a3064e079fe1c96098bf8c4e219574e2b8bd4ee62bb8f96a18275b0e1b154140b0105836f44f048c4bba449d4f2b3294b098770317b43886bf0a30963dd7d1ef98f7d820c9ca3654dc9b3a58dd782c698dd7b38911fb64b759c8c4cddd25f6b289fb0bfe521bab3d17bf3be37d860023233835ebc5f45c1c6abdccad4e067eef718500b5f59e43a12626fa09da58329422e7676a4b682c8d62a0fa53a116ff35c8928171b4aa1272fc2d6b9f8b23fc5a0d650e82639805ed15b086d346aa8e32f12178ccdec7aa5a8da61087f0bb674f2b41c11187081bcc35d102c8f17fc27fa9b4e984d3949b8506440a0db0e94382f27d67c280e20f111d766e144c8ee930d1c3d75e50f665531e758b1f893e0eb54535b36023a0835ac41fa4f3954804bc7b01aec54118e45d3dea920180b2a324167076323d356a730059670d965bc34f2bf8691aab7500e477287df6a699a99df17fa4bbfe109c812c7c572ef6874698b98dd9a66d78bafb006a84a78cb438d015bc729cdeb09903a4b9a62e5bde9075adee350256bd3035e106bc48d95fba8df97fa010afd69e463a0146420d73c0383ad23d18fef4e7bb9c67e9a887d7f02d4fc326762e184d4e6f847cfa685beeebd8e7b2895504f6c3f574bd198cbfcd38f1c8941f4fc31d100068105477657de2e8a1d647fa55f28e52c0ab3186b5b871b0aa9d89ef4c2f645f3ba14e4f11351cd76b5800b923d5c3fb7a8b28dab9ca17960bc02cc473af18f6a5611071494f6cbaf56852081a0a1cdba324bc2f24ae45e86f8c4247e87492ac40a2723194972d98e32f210c4a65594902dc298f38e0006d0123121bbdbf6068af5f76edb0e369cd5d4519b69c50d20c5e4f39cc898d95d05692453cb0080c95d016a5a7b5981892bcc5c4cd18abd977eadaf4a5a64d9a7a2bc2d13c6080260785ae79b58f00c80a1fe51f3e12de818006cb02360557e08811b366ea021b9847aae9a5c56530002d3856fecd73f7cbce0a66b3073b93cb6fc446d79bfc3d4e75597348605ee4ba4540a566e943be4c0e617fc06aeb41ff5463da11750e5a986a8ec75c8a35b7b8813151c8253daa027333d513537adce1d5891fa24f70b8878903d3add88028001ad22e062740c8e944f5235cdcc1d7990d481834c74f5357684d86be080d75981f0723fdea989e74a4347eb533c39532e298c0fcaa123fcc750cf156f899cccb043d9a3d346d07d09fd66f0463c823c5b0acc058a1259d0732c4c6fb5270232f21fa631caa75019f942daf8ec010631903cdf4f87ca6779e0dd76ab8cad4640e716887fc84a736e59d4d41e8e48e72cb43e640f04278dc7404d78f5cb0b6d35710e8f076470005b3cf435b11600d156cdbc9746e6d5a0afe98940f0ae084cd22702057b1b22d2f01c47f63992e2974f3fb13d27fd524faa58de879d393312df9052080a2eb5867c4e189f1446aaab994c815f8da054fad00df2116a575055d27ceda333fcdf50ae554ed80f331a130d8dfe222f4e56c536fc5dd7819a71c69fcdea3bb9ce61534bf0b0216f1e3450a5ba11b4143b53d4e64741104a17058886518b8b7c0d6f26ecc347303daa64d8181ba62446db6869ee0a8f82df1deb2d226db7a89a87de33a7cac86c2a14d8901c52beb44e3e26e19251dab3a6d017edcec466bb2c6bd0d307c4757005f214667e426ed6605ccb23b6f4a3875db55216ec60afc33ea602b8c4693fa40c51b9185c427aed788fd8116c1bf68db8e1468aa6d7287a9c81368271218b409fdd322141f47a3ec69167f0e50e36cde5ae3f644997efd0334c4c1c99147a7ddaa83bf444bef9e74a67abbdbc5c9ae8f598603c227a9ce3f2be3568891ac43579aa24914a8ca1743315bd801e44f51537caea95f1d7d766e41c1c8ba65e629b55ee03e714ea2bae9d412980db1c0760bf44f126464667f91ab26346a81d00346319ab9dfe8b8ac1b6a9700065bd8828d1c1a96cf6c2a958c526b83dfca1f38f013b4d02f7f03b7723dc05f81cb644774d0519544fb38ac67acd9ab13f9d2fe5d4adecd3fcf37dd268aabd2396814e99c39b61e3a68994d8c1e119385a1b1d1f685a4e2a0e83e30e6bbbea1eb4dc9584b392982e498777b00f6617868f3359de6fa9b10a08b704d1a7851f41a67ac102d259dc1e1094f5a61ed8db86782b783b3ddc02d65c96985de9ce194d48d9982c9c5c927564c3fa848890053b14a6ac017ac0574cd9193e0074a0ecd24e617e07c370a8983855f0ce3c81333968a8da2de3e7c92b50a80263da83a44a8562b9c2aad4c52fda6593318215699e8b2f47588b4812813582483facd501d74296d5a8e580d9a1c2ee78bdcae3fb6f38a9c8f9a53fdf4c09f187d490cc6ad7bdfa5e637a54b981e633f6b3021ad013fb36986a97b138d85599fea84199acfff80ee8f57b183a4f364bc8158e8b8102f46a55d7cf861f5e4509b5766ed9b905aff69538d52c82d6074413be2270deae4562524376b473314a670f47e8e7c0a48fe80279e8515f71adeef7b6ec9e284bb7ec621e317eb9650b8677e3e79f85dd2b0cd5ad5fb570928aa344b7187f608c7de609042908025dc8af706a375f3db8b9074d3dc8efc59e65cd0f10ee9c512a79d179a36a113d55b3e7b65db0c6547522735aebf488b64e1df1fc45874d59680684cf3fbd92753a87605d672f75067052e8c0ad806ce7bb43aad39aa987052dcd333ede7e6544906f0800f598a25f70cd5ca26c68607676aec725a74d04ce40a98dff328fb1e3a2a7c3396d6c73d141dfa0bd9507f60e1481030e7228c2f65a396703adfc124a473c4f50cf9e8fd3597b5c587169e85d47c654f55cc127341e84b8f0f2c167156d80cfd4b0f4119e47ca6f1c1d308df9ebd4a8f61911c62dd0b2fc5850d233476ef6a4c746e6ce22f6d2c4cbeb5d18c09c76e7969b7f1663bf8bb588edf595c92df0664ab8cf866ddc28943433dbfb5c52349cd7a0bf512fe6e88281cbd1b1486279c89feb4fc93406dac18959ca94947d137d97da764411d9e3b3bec8d9b9f88fdc44d6a5e1f10dc0d45fb773d6ebc00482af686473bd55c011d3d9f9797d66b89f13674306b3903f8b35bccceafceb623594fc15362fca91f6849d1966c56aeb9480b907484c43e10dc2eb0c004bacf85f6d9e2290b3c51afedf8f3a87584be5d652347be1e62757fbc7887db97e4082abc350e8b7ad52fb59e1360586f6a5900f2714edf33b06263a51b37c1b6506bfacbf15f08d0d8f83ab1997af16a26dbc6fa690c67aca94478c53e759c551b978c613c71ae0c090d2d17f40f01a2a25043e765ae15ec9695dc27247ffe25f28a01f15595ef008cc3ecdebbcf404b32775185b1552c131ea7aaac4c5f19aa43c45711d019f0467780d75fb63103c926ebc23c1143b806107bf4b91ba8f7f668f22a34b02a28506d18e690ba9601010ed9721c3683f1c0a2b40551207608cd9e5d016bdc3f6f280858c230040897c62187f9d17f8e8163ad6c00a07481db9fcdd679ee4f915c478dbfdda535c99cd39c87c8f5dcdfdaeb140578fb79f366baf949cb5ab05c0de5c3855c5b29e59a6ec5dd39e71fa49052678eaea4afa2c46e732113db80b34179bfa09a038b13a22760d3207509ed4b9adfbfce71f353140a4e11beb9cf570abdeaadbcf42fdbf187423a52a9bbfc5e8810663f87432c6358ae822d1bbd32747dce04770c640b88f2d522610bbac2cf17a4f4e49bc52060694dacf0691b8e0c73f4e94e17d49e1d0840be5161166cbcd58af685eb0c3fe748804d6d659bd769509c371ba562e8faf74df2984ba0fc25f767a6d45ef3de764362e07be37e05d1baae905e239940341d5b94ba3923d50ca5653dec0e24be6d6dd56fc464a718d070fa0a1ed15a1f9327d80f30d7474995b477a61bea6178b948916fd3be5a37269d11407d995665c1dbc4a89a0ed552fa11bd1af27aa4a88116fa0a4388bd3fca4bb9f6cb8a45dd645b8cead14c96f3fcdb649009000d4fd58c293f2806310ff539ec62a972c2e9921ad97981c4a30c139e8b12a0ba946b988c92792c081ca48e02d912d017ef1da074e2c46c27a1fe51446aa165b29511d216f25c57e33e10d71502a5f5dcb35a0c3139d66a5783fd20bbf062b74e1d737858cc40f86408ec2507518b9b570d57811c73f942477977c2128084e53c5584c1844a6d7b8300139782ea573ab30b58999b17ec256ca44aaab4f4681db8a4f5ab3e2caaef123774603d6fb674895a1c782905545bcc96c52167c682ec5ec4afcb6347791fc1bc5028d5eb812c4e79f381c385a33a57868ee299c4cac38512b78a2c4ee6324e1a439de44d86912303cd2e9302aa109603f87a8aba68220c310704570aeb9624745422299c78b4a4d050a0503d0d3778e6c5fb148dc4d4f1b91800c0ee7475ae105a3d46cf4d5c61738023ef145be521a31c827607951621821342a51bb4188eec8512920c12ae0b302a8defa6eca44e601636c27836502f870627584d162d6fd55b3b689f8bb95868ac49215a9a9bf2387a29c13216a8e0a0cc11e20baeec31d3e1dffd12343a68983ffcf1ab3782e25e089812c7c465e056ce39dc14732fe00c39b6ef060f7a3993592c7348146cd69d1e657b1f76e1e7c3687722056c251f39551fffce184016c6146fa5f3bb6ac88108d3551539b547657d98acbb8140b279d9ebdf845ab6266c3152ad8e71eced3bd758c90da09de7770a9e6159f4da7b47fe6db772e480db483e137aeba7395b0fb93dc979c733224ba701141ed12b0e6f0beca64c8476af84b5fa5760239c4390ecba733c37908f8c50883c4b5891ce38f207a5115c803b55b3bf2b198415b4cb78c35ff83ef7a58d56ea7a95d60b86329c17670b14374fbfbeac5dff64b01c4fc864541247338f39947ab9164958b8e5af7d6d81806f241984398ef1a2c8e433e3ceb1f9f106b90b8154162a071fa501a352df0c14566ac3b012b6b62a0b4ede1eedd59e0113653d4d791f8ffccb5d2c4d6e6c4c008b445e6212b425533dd88555c01ccaaca475c8b3188104e23a58fd9f246d6db0c475506eca499d7f9ebbe382a9b69ab4d242bf3e2f9c55a002e845487aec5461939f7ed4376b94e093b648fd72eed0f14864e08cbc59a378faaf67d772fa28f63d1a710ed1d24aa945d8db5c69f5c047e56a966e11d573da165ae37b31b811fed94853f3ec2670e1608bdf2260b0aae40b2245ec4487ef8181e149ad128a6bac82cced0b1b1a67a185fe8d88655308af6317129422dd9477435bdbc8c5d68a4b2fca33595c47c1403686bcb411f6234934b06dd42d93cb510d2c7ded7e0d44f283b485076372e32a6cbe1566331c68e41ac4e93fbd2bdb4a6ed2db89682e7b917d2fa0f15cb2b03e9f4f21cc899bf6b3382b9770649d08885f7bdddd3cbce664f938c9339107477f423f8400e0f161b0d4a0f556c0c841ebf7bad8d671032b8689ba6efcfa300a5b8b763c092961a67b7373f068069b00ecd19b6650d4f62333df1de606c4012eb43e53046d8a07e713957cbf030c69a1a98d3eb8a80842366d53b62def2d670092d03fd3872aa1ca1ec0cd37669df79b8ff54462a5ea88979b75b6e6c5f31aa9bc82eb103b1dec6abdfe7cf20338a17ca080e609a984a6af3e9d3a929e7bc34626c9db3e05ada9201457b270786b8cbfc6d300472a5c386d1a0f65a3aeead37ee1e9681326226c28fa4fcf2ee7a90f785d8e97ad35e22a34472a016df8f010e8d8195a4efb8041c00be67e826aa5c36b3010659b6b4d48f320f6b8460b1338ee404ec973d2f084d2fea2b9cf2b09e62fbb2abb88507fd62b7faf92fec069ea2f289268f2eef85ba680e2107fa11cd4cdfd02f4821de2d30a9fdaec9ec44f5df3e63cbc61c900632369aec92a24ca0fa6db3b11e15e04da034cd0d099e2ac99e9f270a6c73da7d2449245147eea1e025273d4466a31dff2a64192417b8710698c2932a1c9c7878b20747b3963d3b2a852ad65af5f5594c386683ecd7bc87494964b8e72d50dec03c4e82d3502ea234a554f5a4ba3e3719ac9c57f3eba2e85d06dc40da5de55225d175a2d8056724b4426896aa3fc1dc28778f2ec1602e4cc70ea7f560c75a6c17ad28611dd144b8fd86028721ba5f4d83dd62a4f1cffa29f878d638c8f0695658a1bafe6f695ea5b70e6565f79b7d677901eddbb3389259ac710b95524199b914509d02ad6fa3d4da6f5c572a4b1e7f4a77ab56e010ee9a845fb9f2c88a99db7d9b0e103cf9f5062019c391af0450a4157bab505203b5ad7d1ca82f7db1192408e657c8988ffb77efd47eb80855d04f71c38d9b29724f668e4740c0d170fce67adc83e7f8fc0c8ab69ee837715f618cbf06fe832c8b422aa0246e2904c20fd58c19b1dc6b26e4e95e3a05387468813c901bfa4a0efeb6da4dee90bcf1e3fcf86508fc54625475edafa4da1d8b927f6c3436bfd1455b95ff03e60e82a12acf9f67853a7a281e65f9caf9e6ac22c73580d7a2d3dbedac65981a30eeaa78b3736533b8f16ade00cf8a91a90f21ab44c6f626fe97b22b6d7ea5e2d4ae96dc32c3f56cbd07368027492c31e620668efc091e606122efe1b887210de013e5f022ca1281b9329b25373299296c3ac2783cfdbccb5cce4cb8fd46010e2a1e7668daad2cd403a3883a2bbf2afc02c0e0b164a17119a28f2c79082ba1738eba9967909a2e9c145b249efd001a72fe23adcf21b70b6dbfab42589d26ea346ad13f2855b2287b48716dbc8675657494a2a1194f5d1dc6ca95e4faa29a08487ab00d2e968f49edbecd1ec1dc1f3ba5ebfc39a8343470be30cee4d92bbecdc05ce0666662c3d2fd22fb3a8ee7c378e78bcd97a17a40bcc938eb4d7ea023b8f759e570fc57f87e69c0855e7189c23735256b2bacfab514e0f8475cc65731cf315c80ed6eddab0dfdca53286b7ce59f570446e9fdbbc0a221e34319f0d616a9671be3eb3ab0ecc80641ca88676f499244dd6f9dbe318c43f54f12d8e47765327e15fd4f3228f20af5e679143ff7ed1bdf5d649a6e2d37bbac311fb9600abb43c97823df0af918db34d7b22c841a7291233c1039935be4e683b3d2f57b5a353e23c3a5eb20e47e74e14f13b82b9f39e8da0775f33bb8bff26c0e1f09806d67d8e1892ec089024ad03f64ea2467e9bf1921f73ce9482a8c6b0b631a186853df74dd6e3b781950d4fdf05593726cd89a596b297c883a1d797e0622195730067e1551d78c3d18e50f311ffa9feabda8eb9d0123772a9bba4d2441f1bb12b4666a8c13ad38fa020dbcf9351b91d8bb08ab79fc3757976f6a6b743a6db9e6e004a1bfa165672923d87687ff6d3ed25feb71247ae08ecc527500699d5ff64ace1ab8f98b250ee049ba2dc158da5e26fd6687ebfc01c80b63afeddd157a4b08e4b6e2355f38cb68de5d3f00d334d0c098b5a32dc6f59ac575ab1192d6c3550a49807ea7d0b92cfdd8abc3882619f62ac36a75f8628b1cbb573aecd54901590f6213981c6557ed6dd2a3892b631bf8a87d3de76fd9c199a4b455e6ec41b7f5dcde21e8ae213eed7d0c8bb2a0010817c4c0021936e5e09e4bf35e93ef97a58c0deefa1b7b73f9c6d503f4672a551bc79108476e83b066cf60f4b761d9ab3763df6130da3d1903f73fbff2ce922400c3212126babd22bcfb32a468e0ba5ab83050d35666fbccc1fa7a1999fa897081ebd45c2c6f1d06f3b7104f8f708081bb139034392a5bc0dbe70631dca8a1ff0962a2db6d51405a35e7238f03a829ce6a96729cc6f28400726cfe058608fd0cf1459bdc9da7dd366c5e1d313d6fb7e10b17f0f0b9d28e11cc818b6b70dc8423ba4bbe7a5807926f7e899a8e48e275ee6e63b77a18e89b7961940c4e16551af82e4dc4d168e182e7003cede80455801f6cefda45cf73b9342e2aec50faa07856503eb9d51975ac85a694a2a3980672c437a070a67dc06fdf24cb01d3425715d7dbdfaf8af03b3910f75743093c8d5d26822a1bc8f74fc2063234824d65e2e89e4b42820337fe9d782714abfc20c6ecdfd6337cbbec16a23cde2b0e174a581ad62c054fbc1010d521ab70a594696f7804dcc53974eefebca820d279281f19f73b041088e7d00d057f0caded88a6c708735c2ba1a74468da19470f085e3e424be9930bc22b3bb688fb736275461800ec7aaeac6498434797fb2fa74cb03bb853738ad0449929732a664b9dd15754335b1d6febbb7c8e329e9409eb1b91acdd111747d7a035320b4c259ad78679a37a6c5ca55cff07733663456a5f2c427071786236926c93d8bccace9fad77e733d80d6455e2a52630d579dfd513833c2c7fc9630d410f9a81e161c42f2b34fd5329b74bccbdb6494d493a92e160c6f309e26ad778911798427360609dc0c15d33ab39ca9dff15196efd3fd6c6ada8ca6e798d281c4a6f0b15131091d58d7d02c852005d5db21f3bd8dc2b2b032673b96f9bb69d94f6e16be8f0f3d185fb47c0c9a79e110f56d554650f612c155f776913efcecdf51e87dbfaa5ea4ca2b4e6ba410ae7c0ffa2a316e694481e4680c0c58625d9c8b9d19cfcd198bab412013ab54a0b7243de6e2fb10d738d83342c735060d9f08d37785ede584573f0096693d615abe163b7370e177c2544660a570ceee2012e5bf6154895caa0de70902b25809d8b2fb4580af2032779ebeba07c96180f23d8a48c3fc80d08d60c8de9297d11450a7857c58a3ec3c08336d60e9c454158b8fa306be4ad6e69e7cb498b24b9f52319b07fc619cd7247966ad9a333a61caaf357101b755adf9fc9bd4e48741aaee2394c844d0095fb696d056476fbf48f1afc1481b272a75e1013ddc485dbcc3431eedf21bd42e034e193b0d3a485cd107ace94d86a370c40c9a6bc46a734c19d6c7ebe97af264db65073879332277d8b6f761633991cd8975f10e8cce512e4d69d080cb893e28bbb2648176466116d5b9db424945bbf7b02cd8d6a56056460902e3fa915ad99c3d6d05806612eaeb255dd312ea82d15206177058639063e40a9139d0ced9432f6689aa0ce7dae404da1b0e43705929f362f07743a048b0a3be837788c57ced0d8146856c1991e7ab77e64338f26f95b1a1fcce6deef4fe91301db957fbd83439d3d226b3f4e5cef82af6e1c9d8fe4e003f15d7164e203c18f4f5a249eca9009449e22afcc19119c726b5c23ef001ddc1319be9715c6bccbff4e92077a2e397efdf5ca42aa651931aa6faa861c0b8315c33405f73a5156dba512e1f738c9d6024d7366b47c9c10c4dab62daf85bd14c282c8e9d1ccc3b7d881be3144b9436ca103c712e8b00b35410dd75b2c2fa79560a40b5064e4e50e4dc5349d02b38a1bc17c6883c27617630edf8f4984c2d5b8504e48e65277778dc5b76942da55b18c85583ed8b40b60341e75266d312b42076bba8b2e44b2ef08412ce26ca5269f81e3b2738632c96257d216e76a8c0c6b46199b694e8a0c0a98f0209573ef6a1bf38439871e325313da8be4c36bf3bfa7537db1326a132228901eb473484c71b4349ea5d240a067b261a4fb95390e0f8b5e180638d678df489dfd1f011b8b7ed5139d5eb7c57a58e46ca95e949fbe7fed1c2358054b6a6502944bc2cde0ac8d08e7ef9521f302ff4774051d4300f303eed3a5750901812c62a8cdc30de4fd4d1a445577e402fa0eb9f041f57f81dfce80b59c77c8b6b4bc754ae489243a3bded49e39849939a31b2d1a23ed2adc89ebd8b8ef74c27bb954896f09f3d51db2db7bb976c626130e10e495dea5d9aca18d8b6908aae9d5eb41f3f51e2302e6c6396d9ed7c4acdf4a02502921ccbeff256349b9e31ab17d54f63aa24157ed3ba76e4af88a80f185840b600f494ef5ffb358836db1a3869e8ddd74f4b7c157f79e71208e4b9632b21f2114ceaa36364ebaf1bbcde5c073f32d6d42cf1b8d571800ef921d649193ceb6fd99128bbfa2489dd554f989de98557835eb6ec484f9327827af28728fa0f9e8205be0726650af968806cf9af325f1eb3ba13ff90f940bccac26beb11e4f44958c84075a8cb826bfec807edc1d3867f579e50ffe808c21dc2b35dcf0f0fbc66ac05caa47b8f4fdf604fd8e44dd5768f9f45802c3c9426416fab2dbbd0de9db9d79e021f2e0ddbd45ceae4fb0fef6cc63c934a22e27a216aa806feb5b267ea5de7c0a49331fcdec25a6dfb76a43fdd97d5e98ff60fe98c3b3e60b78164139bfbe1e0e62bc81f1b774ab668107138264d3a6e12ea3cddd4ad0036e17ea9d4889d28debd618ce4b2ffc0e667c5ff601da1a23741a6641b5583e6b015bffba258c4334406b88d5873ddb920e2f981ed1f800dbdd405c0bb81be8680f274e3ec2d0ccb02d7193d9eda4122e713aa93d04f6e6f77bf3c23646fb7d953d636ee06e482f3aec6f35a5a988dded12e2b1ddca35e47a04c4ca74de0466ca3a5b80ab619844d187bef82bfe7894da200fb218995a566dee3b86ce8eea0612db79098fe9280c0a33954fd74c6e5f60cd2f9eb06b1fa772bcc6ebd2c7a1c526ecb2c63903c35a13c08d59740e7851f658496bca1185a160c4e93639c1126068adf3a8e851a92dc1d0c26634d308139b12d1e3399a5ed27bd15597708f9fab7b2894b548bea26679a8ac087613ca2db09ea76ded8bb910ce279af1cb016fcca8cdb8fa1c50dfa4753c0ee314209da956c4554b5e74fb1734e115b9a8c714f0e9a0b1d6c65edeb98e23ce9e656046233fda70d04332d654182d0a8b14561620b6e60077aef3b76beba0b263224f151731df98d4cb643a444d8d981b184db237d1b0fc547ffb53c7055b2b93a0f9c51cf4beed16855d5dcb89b143e2120841e5e6cb55693c2f4f96d0b4c1c3ec86d35953c84232d18d0e51244fa25ae2cc6995204ff07be428b4593b49137315ae6500cef1fdcfca777e2a9e12263501f352af1c408788b3371e3681803a0761855da89f21cdc1e66a6d7ff982dad8db887dcf7f6ba36f227e4fbbe89d2e72269b7910b0fe4d2f02f7afb778f9e4d590cb5d8b848b7b50874362d3e66f0328ae05ceacb3c706eccd667ea1913abdad3c5a1f7e3dfb4f39f024af614b171e472a5d036a1f4aea50e629c0b925f0d5393c74891d356e087cd10c0009ae7139027f53aab0469076a6ecbbea71f66b9a905dc02be52fee6cf98fbbfc6689b26b04eb73aacef09b5552aa848e13c546759b272124c3d5dc6957877f855e4c75349409ebc5ebae2f6c2fd17bffbb9040f349d118c7d8b26ed116c70c3ea0f272378b1f2a6dbe49bd8bdda5bf7066d368cdaaae1d5eb6c8c1fcadec16345b24338c253002e494855bf7dc4e42449f795b11bb134d59e99a1c0251b0c81ea2389c43d8fa6983e152465f208ad3c7e840f0ca25f2f1bd8fab6969c1307c603906185ce7d3699fa65b1e5cee30b41801b9de8e501fe895b4986a7b0f98c9494aa32743e26419e53c76f82ea900f050f3de4d48ddb87ed26a433a9259a46cd4934ad293cd7069b09123be3fef425c063ea32b763f6eac9c448e9c08066ba2806d7a5b0ca967014590e7eb4c4210f10ee92c023ea1840b8e21f624695fd7c002d4b9d2bdcad214841a674bc7e9bc9d9758b8d942a318c8b72296a53fc439eb2b79f857b6a22e4979caa87b092a4f5d77c8f88de639aca7d8dc9618dc7dc81f6e0f7732c5cf7f62d8f6aae814f30362758cb6e2a640e317d5d2fc09293a01229c070c784ca68b406b59ff52a0ad5a79b3c3430868d6eb2f6a3d4c137ab605d1d09ef4fb3afa5494eb054a80274bb6802ee65785466b505ef774df3c800a9b5e6b00dabfccb3a7c65a2622cbeae3b02ee11c394461e45df21903a1399b9e509f6ad682711400629f575b4ac6dc44413859cb21dcec7b59c8b1a8cddbb2d5d4ec4b66b50081dadc645b687a161a17134e6a38bc3ccd3903a0bf588c723777bc95fd2af6a43aa694e4e61729a7100b3065545eec918249eee36ac7abc9b525d3174cb7ed359298ef80b9d203b4af19823006f2ab4430aef2bfcd38f69b59a0d236824d3b82f5c285f9fa15b785bd313a3fd65ebbecab58f0b74b77033c669b9b66f77ad953b1cbd5daba3255cc4458549613b320e58a4ecd291ece19e216f3e128b9befb5d18fc6839e6ad17d1fd69eac87e90dcb753b8392cbfc1cda697442af7a23b1959423d8a19e3d0eef191e9b19fb61a4f353758c0190466a4c11f6aa7f2b36f3e1dfab1131792adbbac5c12d9fb5a9ed42ac59a2ec0c05ae440dbf8bb4331d1ac666dbf43e354ff2d58a2844e146994228b320a9b790e27a1edd8980cd88b8b8be606e51a4f9d413209317da1e824b321856c9cb0c8f07e9e3eac1d62d25797120e00e2e2f47055aec5c0833b19c73bee24551bff7524a44b870e8b55aec72c0686fccb160c6b300ac9789c65e2d37f6fc4460b3d6c763d7134352e024c8d2b69390147835c75ef9786d11d0f297d52b429f2f14792e40ff610d9d8fa7713d0a94f48e7330c43696c80a2a30dc2b0035b6ea1d6d408acb322c0bbefe5a8e53a54b8bcdb9ef19734b02b5b82b90733e0893074d488024320a4ddfe7ee2d31348d62fb3865666c7c6bd73c4596f5ac8c8d706f590d0aa3c75683a6046ae9026bb87b85a75759eadd5d44275a74aad31d79db69983edc5c6b43b04ca44bfe500aa008917cb8942ff33df078e820a94088d907c210f5ba6d3281905f4210c783df49aa382d62e7ad1d344ffc1226c07e6193534a7e3957ad545264ccceb1e496a45a70571d841978805a35471ce6a6019c5ee1e5668e2af1322ef615a1e80d7c3f3b09d9ccd32609549418de458052e170053516effb9a006e80a7a80e2c4732d9a65a879352e52a94f5995b327fd657e85fc51fbe27c8d055748966b519953e13446ae3b7bcc96263d793a7a68ff991a22f7358a67aaf90c3e07601a5bb305d5f7e55073e213dd3fdf36fddc63754251d1a8f911159756aade194a97dc022639c145b66e4ddc43655bba6a7015bd6a5650d1c8f52c5df6f1f1bfb28015a3868156be70a7c1832be1786167ebc3ddc5277d860859e917d62e08eae2bc616be78e20bc4db17ee5fb3b36a97507cdc31866d7c1f97dbee58225deb3f454b2703495e57c77c4bc3900e126ed2b8e00cd4b3843bf61edb4309ff3c91a451be3a8296914e0287e215b1792ad9fdcf85b12028ca4749a46de5073c64d243f780fe150dae249dd90d6cb1a24e1817bc449b966d0e65a1449b0183374e92d093493752e31e1d13da29962bf498f74810207642300ca20c351713c1be538d0b51d2acd17a0b5f372e818ae540299fac35eef9361237d2603be1f87a11037322848868aac079d9d6e3e6fdccacf10c1d8ab5a4237ec712c7e8dde9b14a38cbc2007536e4654476a4c2f1e34729b56273247474aca6109b441b858b6583ef4e51358b95b6ff8852f6b2a5d3728c3e1601cfb860bcf05fe16abd952fc21a9971f0bb751783cafc2498cbf3cbdff266d5672f64f56215ca583d398f4cdd3a3c1916906e37f865eac1d0976b9ab2997fce39b87926da871ebf8cb8c24824959693c64b87717c8e2d41d7b0914d62051087b968379a2b8dd685f333d9ffe7affef8b414e7944c21cf84c775fe9b9117655db369604914db3661e9318e0147217ea84e64d2aecf81163069c1aa47ec7cc59273528aef9749d8790792cca986b34045a63019480b2c778e1a03a48812e243ec3fd8944b086b37cdbac8c2f54d8f1b7439c0a8477789805c40e4536cc4aebdc17355601cebf12f4c758fcb6fa7843be55f7a19e3edc436c77648c66c631a028287296ad2d6867a062b79502ea8eabfeb89d260d74cefe349c2a67168cff4b2ba07a015f2c3efd048d6eff8cba7335ef2fa2ef2785fa872c37ba00e3a79e5618277e2ebb66dca48ee03eadcaa8227aa582c9b9ff9fd350a8e7b85a6959e434b9c26cb3511e6990191cf187cd9b57519c06e6e3ba5b80b2693da81aa4d7be12dce6784d2d8a99363f9cbbcfb54fb26a089181255a8ea08128211c69908ce62e4bad7c63dbd828ced13ede6e5fe9e4651fdcc2527c6120bc9db1d1276ef78787d18874e331b05dca58498dd7621e1f2c372c0570c67952dd46a1148480010b4bda990ec722474efb19a15015f523919ee65c5141b80e93ae68c4c8d716b3052d7681b7ac3dd21008c3de452407676e294f7830148f7a554135032b7129ad73c349a6dced4ac3114a6c354e19b96d285e59911eb33c373fa6f92631d10a49262d71a7636d2611336fc3b02f6e2378bb2042544dded21413a092031e33fc59a453c6280a580fbb3b062ca682525323b001670e98804ea19f83b1f951cfe4c0c48cd9a80d3f4e6afcc2afbc04cde1b340ea38dd78b68f58c5bbc61639a04907a553f77bd84aba9088311c53c4e9a06c9ec2d5a0eacb0756d26657861832abe96a0017b915342095586151de233c87cd898955cd9b6c64d3eccbb9e535c4475d8c0559c53b6933104a700fcae7fc8569a6eed37dc8237be3040193598461303f5d0e95c3428682bd3dbcf1823e111853955a6c0281fab6553af09cf0268862ad99ab7ddf9d99fe2383d3766826a534175a73aa82b611b22b970949c41fe56221e3b5f6820a56ad85d5ed76edba024930c176ca30bd0f9d15a4f27009f37fe9ac95431108e35d4434f34d540dd2ef03e83f92a38133092ef7cc3d88ea3e6fbd07fe6a54099188c202914666bc32501fa4ee9644de62450d45a148e8f9778aa13432c88238f4fc8b785d598cd6c381d3c80f8a413d18cffb53b86f667fb5c5d05343f5b6c324712b27740a8e844e7f4ed97e29ed6c206009145d452e1dd5fdb29ca1779c93e0dc23cf16059d4239a7c2857698f5f9cecbb55e9431a92ad9b89d39fb0b4cff7f6dd07bb6aa1da605fd346cf45d2d466ffc76526675f6add32001052a68f6b44f1342a3e04efd932102dc57ccb2d5d066cfbd2281a4a4b01e0c41b4b9022dc6949cac48ec52b496a74276715a916829feb902e981e140296dc592cfd8c60873d97dfcfc86b13c4310fca6400945334bfdc19d331e7c11aa23ce4b23cbcffc30dd073a12a7a14bc505cc4cd7361097326a66c5b0f7b6f8b77d23f34272caa33b9b3f09ba78b77681be0f1483ada50b0027d09121a49ee4497ad96c1790204ec09e4be158d8bfff28f3bc9e15d62d22db26ba14a7bdb9129fa435ea179ca95950bf9f5b26086d92e5d5d3a42eae1c6d4c1bf4d8865b13e25344b802b13f399e2b1c3a6ee53975c745f434ac2b81af9ceb0b26b935daf44edf3b444bb6bf27368463910d17828efcf12e309b9e179c9e106078597e86f0756383e7c2f85bcf22fdec933bfa42745e0c32b542a0d67c81410b0faf10a2524e10f282310ed6416465787d38297b06d491ee11e4d4a4f39158e1a38ef8e71a83f08d23e542a02d21f95f16ed4695315bc0a35d338acba60ff98c6c00388cd03f7483808c29c0aa488476333b4918a7750734bbe7491f9edc5b8a5410de59d2970bf6727b6ff5bcbaa3519b0fd03746e29662b53d153285445cf72200a2b09e14b5799620544506aaafe825b42c59726c99d24950ceb301974c9c037ce03b66ac53113c8e91bdb1d5971994ef31dca7188c34a6bdacb59298bfd62e7e28aed07b13434a66b26221c1a5abbcae637c630a49f1c0949816ecb065b0f4db3620fed460e9b23294038d6531bc7abf39f2fddd0799b48068de2a58cbcc07d0b6266bd3e4f0ea4c65e19d1e6f649d950dbf1147070db61d58111cf66fedd2abd90966812fd62995db945e5f9ad2cd1e328e1d7aad0f7ff3286ae9c5c4995d81bf14b429be432e6ef11b20d43d747e78c67b695526c8211f5c64aac6a1814fc0276abc13bd891f9c662510c29c7e3bc2da42dedc23481cbaa5334890661586810972f5bf413f475ac1d32450ca988052db64941e21a19063365d7801640998502232c90ba9d8435d03a501a9f490eeef08c8ecb019b4ff5c1dd34674328ea5ef169b4b3bb2c6b4bf71b5cea27a5ec98aafa2effebd4da690b5ba2c378d08068eb5b355b680bd0d51e9d6ca2a027902ca89ade68d2e39198bf0a2fc160327ce48a37b06cf72af3b7ec5088eec65e5b123d04f140c181a4a6f056f5471504ba01055990452d6bc05d87c067d7a4f9cda6591eddf2ae7c271ad3ab5de349f221db7321a88cf44d9266dc9e9e31eb9d988d87e0c16f8b1bf52faf9155698112533f2ddca325e2a3489af94f9584e8783890cc37e6fdcdde17247defc0baf88469c0efe6bbd7df0970b49aa5f74091546a7d07a21812e49631387142741bfc263a3f5c7910aafef48f50b03234bf51943fc3d2d6e11cbdb0742b090af3e1f7c939d6d6ad68106fe1829e6454036ce8e2b83bc39c3e425e87ea791ea7e231f80b0fe0c0339d2840c968f7b39a0567955321eb6db73b4fb59a9d1bbbaab1a15ca4afd774800504d159c14f7c4a3d4656a345fd813c33fe5e81e1ff1dbf1fb5862a948782151ab40e2987ac5f39b18ca9218dd056f7ae8a2538dd28db62dde23faad65f49687d9d771e3099978d4434879675d921c01bfd87140722338627c74f297e7d974c3085eefc2c743b932b701d03c513533c0c94a801b733c73e8cfcae7e583633fca220b24758b371344ca303f91584ea970da1e088974b0cc37c7ebad779d08ef08bc476d30c5ae8d7e9f736766a02034fb5b7ccc4bfedbb679c2946d25cd02ee60f9bd5c62b71827e9fc265d1b59c0fdf7a6a092a1f34cc9113aea630ceca7c9442f446a41a5f42df23704cec0cb26511a7fca3a6b0a120825508b8ce6e207b616d3c184a7bdccc0d91613b7507a8f0b79c9a3a19e841db014971721133a8d2d292d912d682790d7a2ba22bc3cbe9742870d8fad3951a39205124c1086cd5d7f390237dcf83904700c47ec67878325e3233dc56cbc75147eae99fe837386257d8b5a5d3e5143cfc5bfcbb121246980f0bd1ed2be26adcb347792613b1ec275ad1f9b17e9621d407645fcdd59f906138bd91cd8238bd6d4d8901d4e6bf511c878473d148447b4115336a9c0e397bb464d2ba310ddc6719a2dfa8004ca96a450ca35478e053eb50c7ab45a556995b31c514f857771f4cd0d107b44abcf4413025346d2398ff457fbfb50c1bda7c0823f61523e7564a97cc2d6f531381edbf83f96b5c529a22ae1a1632a348010677b47b879c62dd131b565b3fe1e29afb01c414b22a18849193dab948ca98ec4f1978b6dd536aa2c3fa769b3772d57ad6249ac227edf90251c56da5e139c29424555dca0b9054de89512c013a45bf432d5724545c310286d3c73ea0c10f46d663bd3929cc531d3708e4e862f59c04d26f677339994b101b0d573a1fde510d50879152e3ebde2a873ccc34fc889edfed54b50ff25b7b0d636f43dbfafec22eb5e40b6f98ad59a37c6cdb99809c791e616fbd278bf8b632c824e15f53a1f81a52158b019922108adb55e0718451b99407e8ff37c65471cf61357fe88ad58c98405177324c1c3922dd99b2e88e225986f358fd5fdd29311d5d0a6cfb71a543cdf9fe9307b295f565f40d8441717da5c450d6ec4e49b7f3eca7330fa882d0aae583a43a418e67f6fd81ae20cddb9e5a8b97b4a8418ca229e8a28a47ff2e7e306bce55c73e25342bcae69ca27088a2ba449932a1eaab97eaa45a1eac586faf6a991ebf33b9a3654e3d5445de531261706cef1c671097cb88231bcc778abe4b5549a718b726db7b092e99f9bc4e731fab2ade99ca6a61cb76fedeaccb6fd467808303f53b29b4aa8310052d2eaa8a2e73bc69665643535df186658f7cc570c7a5542bcd16f10c4394dfdd47953bd351620f016e9a1de28789eb2496bf8be0b197f2b205a6fc4e90df25f4394253c79965fe0514301d8b6b3551ebc45b39990bfd4af3eb3e335aa02703dbd727f253400eb0978a86afa4a1b05fc9f75e95c9bfd831c7eb30105032e9014bf84fec58baf043973aa3a607feda51dd09d51e37a1b7f16b2d94c0dea2697214da640d94eba2301fed428b6cf83aa461e7707af53a83fa9f7bb7ffec024ba8cc6cd17b11a1ecd811a40cbbc8752bab269492e72c123be347d2fc9f69f6b08e6bad548a140d828ac4ec92376e3d6410e2f9691c7be386908debd9ce1541e3a6b0f4a1a7182711a355af38bcc9671144f8858b29afda12c919a80eb5c02a233f46bd3d2c99b5680f51fdeaaac06632d5eb721264d70eea711b50474aa17afdbbfe6304b6282bc1de837715034fa1f47f63107a0b6db149542a2cd9569dc3bbf15c452b0706532f86d0439e8de11fedd7497d9767f81f0134a9543c20307d0fb6cfda890f8196e91a26cd717459bc0b27c339ff513504b118f86b4468729458a13ade00413d9546ee50428489c074e01576813ce66f082f20586cf41b5c1b40045252faeaae7931fead07e2feede07edd6ba58c87261cdcfaaf1fb03c9d309a4b66366c61497178ed5c5d1abc17355c9a4760485623842842693841dc4f313f6ac3455fcc3e5125882488a7076fe2003de7169626ab5938e04ccc56fa3e4ed1fb4427ebfbe1219ea3c2b7a5835cd8d5960915d040b233c86bca835eb7818531fe017861628fd2a1d76bf966d8e2da05faa4f1faf10bb3d27b7a652d59bbf79bf8e8a2b0fa11a109096c1d5d783c6fc9fee02107d0ba64cc67c5f87de9b4fe465204fb36ccd299affefba8429e98da83ec5e9e7447a41778d8e8fd31e4e384e61661f22a0fa7a522f52df79e5f77edf7bcf6d6627071fad63b438ca3190bbe8824c8894c3a0dc926c43e7b041cdb4d93e9ea4ec7115b3a33ba1ef1f1819960012b0b2b176313137126cd9cf5457384085d2d1a22cb85852d1fcc74f1192ba21ed85d5df1a5c48155113781086afca346f34cbd4e7b671e73047a605bfe05f1eccbd510daf4f2055594699c9c2c15db4bb6674b40dd303e62baebd2c60a9d544399c938c2aa27ea9444996262ae410178d74e939d22119340b13854582fc58075c99e0345e47f2aa6920537cf2e635944b1776a9ebf4cac480c78ff5df20087342fdbbd156fa20367ac5deb8dfafb8869f66befc1c99b1506466e99f1b54d8cfe5c785dd9868521c536b28eea7f1848b0dfa7ba514c31c970a392cea89cbd5bdafe5e4f2fdb59a5be96de89631608675d95202287c50639b9bf5aa506d7b246c0d9d60b5472e2e2d8222e50e1a59abde00392ed1ebbd17bc32d040fa2700274a92571664a5240a800895b82d2774024a15d01ef462c1fe72abc54dce63baafe92688de9cfab118843b2c961c2946dfea0a1f58252ec660c72547808f45c807c8010eed012269cc437402ea173077270454969f610adad8159fd9cfaf9f9e8d68a75707bd89a2668261a06145f3a6a19fe5cabc4b3b3f5a8c8ceca7ba8de2f19cb053220a00381cadc247756075d36e97c5bb3494a40b81443428aed3ec6ff231960cf2cc2b6425f6b5b7cd1c8df5df8b4186157b56d267c2ad599aaec93713f041f8d7b81892b538d7e763e43519aac9eb754ba0bceb249282e9aa677a2284db0f35b04f4efa50962506792281e0523f6974bfff66207afe07f5b428f433e72cf9446fcf3384b17ec0f49c8b3765cdb277e8290e5302496a1a3675e1922cde489a0f16297efba49b10d89b521ec8dc2408ab6a1804f4510ded08003c6054a2ef1bc429548a5389863c4da2f528369e1ba7edd50eaba1f5649b0788d92fdde4a416989096b01535089e24d342e800668f6f9006469c569bc5c944007f6e972bb58b22c307a160ae72da06398f7dec564adcceeef281e9c285a19befe9db110103e66b95413a596a2031cf6dce6b6f55c11289b8c97a350145acbe3cc72a065d1611b74a3392a0bee12d4c9c95900d3c4767065a41d4828bd0a0299e8cbfc9ec70214a09e1ce58b320bae3f13801740d8f4a376289df0789dd0fa6eced05a67934f7627f16701165dc0bd67c775be155082f532485307bc8f5c3edee5e8cd44c2b21bb9185dce06bfdd1638409d6881f0768b2a806af781f3bc4b4c6b74849c38240732758bdd29809eaaa65a6ca939624d5e43b4f5ab4e1fd6041d27e3dfa76c652814d4338b62f8d1961d647df9f26889284a0d2581c2928b79fa475432b8bf30368798f7d06d48a6e587d5ede3a2c90cc126f8ebe7820159ab9451fa72339d65a0323d8d7efb3e42581dd854ee9a8e141fa39157799c4214a434f73599c03dea3d56208a4619c174b55e13625543abe59d2dc463b1fe0cb2275c5972425747500298e885948fa5f80888268b63680a69f44145e55d937fbc85404a6eb7f22379c63680011b7be1597442d10f32823cc73f94713f16211a1978b62161c9fd401ef765b85fc0f5c8505e7ae4261b8d02f389df13fed05844f3d65a9837e1fc2c99c33e3851df50a9f5ccf965d71dbf65b554215fa55eab3d5e8594c756f0a98e9d4d0e13843100aa4477da334ea16a5def73736740d88d6d10eb16db6efaeaa151f325119224b0b80be0574bfc8a3a5f6f4bf65c8ff907bc767004ca28959adcef24da05a91a18f1260e4d89d6838bbac06a794fa53009812b10093285878c30ad8f307799620e814ea120eef4ba4c68364153892622d1a28788f0bacfb5140c08a39df72e6c87722ac7f757c87b52eee7709f8f9a1b3c6e5f0296f3a04ac5044804e42321d69ac8432b9a8d8534d52ea99075a59d23ca4134c38f725b5bc33cfa43116af552174c081f6ff658d84cab174ab60292de629de8bd833207ccc2bae4df1223b6cab8f56a32f2635f3523fd39045c1b377466b490599ce384678be8803c5642a74a6523be41d02887512f8a41a7945a87627abdc3f876393a71fa6d16d73c874663f6093223096be7ee20b4f6946c25e1080592224af0d88fade9d1130e320008e3a0a638abe03aa45d57d2d0e09283489f200684ab4a71b34b5a29dfa83a79b592e9db7360c5b3e84ffe99524dc398e2977683045d32dd219b1218136bfb43ef5a913c169eb32e7cdaf75136554f94517e2bffe94c3986b82d113580240751cc3fe377a16f1b5864f612fc3eccd1b23a0f5e3086a4225026920e3e9396273ca26459cb6d7ffd155a89f4b5a3ff11fbe4de331bf164a0c315be86c6bd5837d121e7212f0b850cebba179b1ce7f44b4694b5a7192bc55f77ed565e4b86657d7f9b78ec9aa8a95ddda3b26a23f6e982781364c05dc0eb2e79f321cf06115f0cc85ff51b921db8dd168940b20bf34921eda611cc5d7741d671a0062bb1cb385ae2d152967a3e3578aa451f1d369e71965f9ecde2e3363b755bc294226df9a3f5dd94d81aab60cfcabdd1d73de6c6d07782bb51f61df8c1a7658b78158277875803077999894a980432269d0119496c7cbfa233abc2b783b362db66b1189eff146ac3f35537802bafa34ab58c7395d830991d8d5e6d8a6abc1f82152fc384c7d825a04a13a8f55dd6f6ddb58cdf732b8f846dd21e64bc64528d417f81a56364b3de00bfd7772bd66323a0811515c509ba4aeb8942d8a774aa3cfd22bb7fd7904a4604ac046895ebf52b1047cea436e63296c4cb43939048219119e1a75bff8c548c77dba80348e7708339c5eb32b1d28eb8eef6b67594411bee0b795e4ae3f6951f22060a449ed86006fefb42f4af187af1905a9956d17d8380437edb18f0071588c929a11d87a8ad304ccf62c02e02bb05467dc799b41e7833f3276ed9f12bdd803204ed5ccd6f9c982e2dc142831b6c15ee63e582118e2111f24548482d98a9f90a026ccfe341bee9d2115519749d05209986dde8ee896a1b432f18cf56b112b9465f352b60f23a730d491a376c3de496ca068784a33297d6324fdd7ad3c1123537f63cea3c963be8abfb07ad3bcdfd54abe7011702d51dbfcf0fd7650e2793dc4f4de36d29a939eafeb9d87b91714f265aaf25ec8fe5b877fecefefa717f3920db2aa0457377d57f897c5d03b2e0f86c5101c74988ebfd4d6fe785da7f825aa8faaeff6d8941827d0fc632bea6df864d3a2f47060e6e05e2c35932aaa9caac9fec3365166a2f8cfe4fe3f473edcd44829c9f9c1047e94d7294f428447652d1c402cee44ba72b2a5e552e71589c851e2370877f5d555db9e4b247bd8cb96cea57ee918d8e1db0a57486ae5d08db5f37db6dab3e89b19ac6cf53d5930852940a96adb276c648c95ffeae056b029750f9fad9cdf5eb6a057f68386b5501f10335b6f06aec7ff40bd50e94b65e3756ce695d43fc51eed4c0f8db77192361e1776c734cad7fd3da56cb3c1541252defba23346aa62c57b6a8f5c0a7a19aa0fc9976a9b7056b81193de2bfb6a7e800545a584092ed886b3e9763fb850cc614e72200c36a61172692756aae157a6fc767c8616c9317957e01d46d428358fe470249bd83b54cec561c416fac769d477229f93869c8e1a302636c26467390c8f491aee5003469e7d1081d25a1b2c8907bd64d596260990ddb01920112a92c5f38e878d62bb74e9e5ef40027a4dbd04e00f2cfe1341fdc786c44aaa76416aaba484b0d9ebe4ea170f0887f7b1c0c6206c90b7f886b7d926e5d6fe2138924dc8dfc7492f63dc6494a316b60706a6d73e3a5c9492c9619aedd0e550c27cd5300a0a89ff10d134976810a16f039ba2717da7dced63ef1c9cd3740dac5a59c8622f0e074d4a3291f2ec45b9567c5ec1058824f15a04202de5ca30f5024c43a7336b8ce2854a3dbd5a198dcb85a10aee6d5d428267c3b9ea74b713a6e1fabd952638fd5ef85518c6a518d0adf64c9478ff5e8e6db397e1dc1906218afd4601073ec83591f3e572f594611340f07ae70dd47181dbcdd4b7e65b316248e07d3fdb0ae65e12d130d4e7b2bed80103e7e6b4e004a0b643528a085a7f8b3155b67bd23fad4bb5ed3f7cb793dcac21fe126f2e3babbf2b27ce062ffd6bec278a7199400a1f4c11c901ea496198fca62ce95f2d940134f85d25dc24474b229db30da7be57b4f079ce30d40bccfa6f4dbab1e17b389bc29c812baf99636c2182702c9e3edf127baa641ced3d27763ecc984f8acb75c67a870bcb6684af2da38515260816e2aecd404b49d67e07714d3f30466f9c68d7a6741da52b7839161a9f9f25ef4095b31e739292f3e062d120c1fc6fa66827634365be7533ac58020b2b9c8c6cadc74a760d2817571be5bcebef3fc12350426b82c75f88170799adb151feea83b569e340d96fc5c93bdb8c8b573433bf80ae3e10d31ff1ee79ec59ceb9ef9ee5035e25771ebf39842c33a46ea85cd20cad73c06afa73cc113b1b0ad37dc2226b0e7e788698cd1dd97e7ecf5754851cb9dd17d26c809b2600c51f50097037e14d310c6ccb9b34eb762da62395a638373b2e1327a81e6f97adff0cfc663a1da68a59627020d6f60d6d0c43f4b6d3f31773c17d60f68d6a9530a821c3df7ba2130ccb9a90d682b490f9cca72bc1f0e9bed698f739c87501a84c9e59c2987c08c97417bfd45155f4050452061c83ddfb251b909247b6fba5935e74f697b23ea8a39b167432dd419ed8ee7e61a6ea0444b53d0aa512bcee97607fc0e4895d9d155b9036f70be7632581ca8af4d63f2d0647a42ac72ffe7949af254083850eba30035194aa19cc951362212bdebd59557cfa615d8b88f46dffdd22af9ee9e6dcb89ac90ad03661e8843b1a2b0176552dd94567c63b9764b2024f420657b22597a43f3e061449eebf1f8822616df65076728c1d2f235fbb24ea99a17507829323f850d3d20c20c0f4381bdc889b669c1bc8ba8c2f72fa80872695ffe93d0420eed916f59ab37a2d03c0ffda55de979b76400a8aa79cfea2751a71b05f18f9b7c3511204daaf3fb56dc486229dad02abfa33adf75e6db9b71d3ff3da7334aa0064a7ae64e4a08795db0e4aed52d7b77ae8ca62346854d6412abd927fce240b014a7a8ff4592b28ab6c4be3f89d9674a5f339edb6a16531ed8c925eb05089a21f8e439f86ae7ed4811c424b4bc052ed87ef8220b19a2b9cbf4226a2e66a1ae9ff8e3edad6ff92999f6b685ed011bdc7652e012637d02747cd262962602bcfb917e26c018e25e651d02eaba29c7d485cd9b918faaa5757ff5741bbe697d721033146fffc3a4b3f5909a4cdea07a5fd2205d2d270d03f67f7139d925145df61e0fff1dbb7201518f3e95f83e424c32651f0e387b13a582af96a5e5a80d5db4c0b8e5ec15dcd26b4c267792dd2fcbcfd40bf55ce23493ef3d0fd971d4bea09d45361a57bc37a99d7eeed639ff1df1175e24ba339f0a5d47d77c1e86287f82d050af175b032f771b0ab3a85ccb411048858451c48ccbdb82a02f2216aaf5127ff447cb200a8004043bc0739081fa9e9c40c033267b132a2c79665dbb22c366420d82f9962eaace186a941acc66a909ad358039bf2829f3fafa3196666d96f76bebd952965aaebc786d028745e97d452b8188a66707fa3890d13282dc51732357e4ed0f23b0b14ff115120d3faa779a2a284e90351f27b80b7d83a851dd785ac701c1524dcb0a3f1cfb6e5601493c88d071523c311f8453a6d2c70f311ce785234f9e4c46d06da73b334cd27d10bbf69997bd7c87ad07514144cc832a8973e6e0b8ebc757e1edaf66b20d99e72fd4af806ba2637ac713b8a508a38483ba248b11b8f21acb22595783f26a46247c7cc3c7d31dace98622632c69526850ed120cc543d8343df8f8e199068420d2ff808a6d48b2277a063e89c74967ed9f379c8cf758d38ff6140a214bdbbe0b7727f38ae2ea3a22c56e5e64080f170b110fdbdf5fc3cf01947df4c882a1b69985929d081c4f0ffd426e8f43922056c0719ef84b3c6eadcf14c761204ce6db0fca2d2bfede07a1df6386df39386bc64ad4bd8f65df4118d67e244a9114a3c7f712c757e359ccc75ee05e9692834f0578c0ebde80ea00e91aa89335a44926d43e868a9066c37254227da515b0ffec4da79d8146ba1eebed5ec96a4c69641f129d34979ea4a21a02677fe0471faae36760b040696dcd5a357e1cca24ebd9a766bafe8d5f4b22948793c7696828f9ef285bbed335b62de545accdba331504ff2799fed426160ca26ba90c020753af37236943e0288e316aa8c4609919f715a020d6b3e89a7add7e23380dd5c854b6d1ba69d41b76beaac6b17f114a76a54626c043d3a1e943ec71665d67351c3f3c7fa865e7492c1e0218e20ad4e7473989424c10842625628dcc608723f10c9f95fe65cd7d1b9ada9cc78a287e6d0a47a456781fadcc8c8bbbc4d57b88a1a2d00c0c63f10d8ff81973386f3f440a643417c4e469cedf76e75b32d7acc15e5e3ca8c02acec016c3e084fc29d5112cfa140c0fd75fb41de6fd0f8807057bdc503cb331beac2423ec0348e6379b0df1e231a2caca509583e7ed3921c5c405e7ea45cba78cc1db32a930fcd4bf2892a68e2e478da3e52301ac2aadcd728c78563a9f0498401238d9ae8ba202ca1bea17dd6b12f0d2af0707d5951df35b7cfa9974463173754d6add4b919b9749346093ded6296600536c66f5f4a5335c7ce7b7117a2d729a5a389bad8b98634e64cb1bc6732e7a3a576146a3fbc4802543928acda3a20ee9d25ede146e61d9e8fcae20de995dd690440503ed5d2464ab9b63bf1c762b978309647a0bdf0ce9d372e4d596356b4cf36f566678a57ab43ffa4ce42e8c14bd47cc018aa964748ff041a11d8f9f3b8a5660f656153550820ace6eb91bfd016547cd4ce204bcf173cc6d4af522dac018aa91842e6532945574ad0574fd0018206e04e5ad954ab6446a0b6cc0db34e28c8ea157c67afa5f5ff038261ae8b733e79316bce1c2b345f9bdc07d2e615606dfc2ee972bdce447eb01997785ee3a4e20045da03d67d3a8b993454d88d7de2320f70d7fafb83397404e9d8e769c20e612138ee1d6b040a1b01a48d57831401203657f4e6709cbe11c0006808f0784a85417294340ad42448225d6919d1323b7bb340e8ec7b588ebd2b3aef43e1fb9ce1abb41ab03585b47570ddbcc4033531211ec0c39f7416f7d9c00b020a5d8262dd2e0108465a752f1d98a63283e35b2073fec4f476d65dc8e8485872cc441d47906bc0ac23591378726f00004e33259ef66c2767286320c214ccfe9140362119fced515b8ff7ae9370f5d95427a7654946e803d5aab24cc8833d210d60075b24b07d9bd2bda9df3b72f4eea9eb6a43ae9a782cb4e238b14a1d979b7cba8b7f122b336f2c5de5054a9dd6f3ae01856a8631bd7b227b12cee94f5cc2e4cb6c544806552635fbab0f6cb8cab9fbf30643e39e4fc68e634ed39e506b7f1301bb56edee56a3968a049b9b4e6237525edb1ad17b55fa20b037d17db785c905c3de223dcf73077bfbfeb471bbc538c4da821092590f831e1d45c418360ef712514bf25273ee06a4ef9ed2089c7862cc3a830868dc8e17c4f00839bb1e68d588a0a8c88bd20551d5b3ccc45396c44005d53a508802acc86a51a10d22d798897de82c2cd7bcfea07a88c00d0e029e47cc4c876685fb63a06e5608796b9bd6a44804027e8b12827a50982070694c950f16928cb06e8a291744e9016e1cec47a4c6b31b6bcc263151af9228396a8a3c68f5045a5e6c47f58551009601f4d24bed82a7ce2f487a93ec095f12cc4ebcb5174499f945da15af168b37e85dc8c7181edfeadb9cb315950b5cfc9d92892d4cc82a1ddc1f18bc4741cf20b9405b7a178b8b1110024dcd12f30694151d8226e2370ed9b8e0d5f7ec09111d4c59655b8f9ce099f73da6015fe5ccc281462cc05f5ab9bc8ace1869e43a786244083ba2f53faa823e92fd00a1d3417255242fe81351416ac8e18102ccc188e58120b75e3185618b8974256694f169a1cc595558a5714a7a1eaef5e919b224943f17c78d0ea666de2ae59d187dd5e6ecbc76d50fea02cfbac8d1e4dd09918aa121564f292d08c89f3deae43ecd0d027084b22d8103807411e78b2908896c8c915b69df0be2d6ef265742ddd1d22cb9f751396a7394005ac061168d92921a00c79067274773ab229e9cc35cd748183a4a2c1cb27163b5dd638c07b331b1b183294aaf2a5dcc81a5f6292b2f2622ca023a90023bbe8caa8a1f791bbe30aa6419cd74b1bc6cbefe7214b823fb93c3db7d0aa51d64fd6912df5c144b9c75faf13ed9fdc5ae46097ef4186bfef969d58444494dffd042f50d59bd60f7822496f5704968eab142d59a59aa6d8f0a18d349996ac3a97ca78c67e0905e1936e2ac02e30b44444d7a76778537c204714e17064f9c2a50c07930d1a4879215448c7336d3beba12fc7858549018230f287ea891193c94da7f36819790cc38c3d768b8d62715b2b4bc9b8bb8e0cc074b4df303200b2efdc7086df5f8c224bac84448332a7a14de513cc3a586ac42a3ec586366c45be7e809e180e639942a90a6a6d5522e908a47dbb963c60db15fa0efff5d03c6ec6b59f5ef8b927ca70ca738a823a3de37122897ef23c38eb41245cec58562469b0fc2910ab3443a2215d66b6995fe0c70372f1b7780c2df045341f819010541f5a941eee665c9982735b53fb6c2cbfb63d0138f51b257eea9deb3d7c62fcfee571a04cc6efe9b34851312164d107ca33623499b6b8b19d8f36a50ca25fc4ce4346cfdbd1bc4dc38c96b3ce1098f856f1730567304da9e047985cc319570294003b1a005d9153afe226d731ea3cdc421048bc9e6f2f2910b6189f496a7c40ca74fd2edf735f9431386d196b34f3e30afa5d9e647fad98ebc0a4a5846b1da0472c1b3d267b623d6e4ccf207a4c202aa5b9a755d605655493af9e7fab8b5e70a448c7432f5dfeed11705a2ed7fa691d2785f148901e2dcda9fa9e72e8d80b20fb40d7f6970e80ebaf9b5fd4b9685b968f4ba3f44a06d416494f713e6429a2ca7f2aa9e8fbf95c4b609216493bdf7967b07870736071e07970d8e87c1e595588570e072bd81cb9b0d5c2e09e1780470792556d501b85c0dc0e50d73f135707925d69b0270b91280cbdb0066ea0d8e7fc1e5156b4886cb3586cb1b0da9211c0fc3e595f8f68927cbe7c4e56ae2f23643fbf8e078175c5e89efa178b2523270b90a80cb5b0c3df4d243383edec49335d382cb35005cde5c6eac191ccf82cb2bf151154ff427b608c51300b85c61e0f2d6c2e5d20f8eef54f5052ed7cd052e6f2b58b8bc82292ab6ecc478155c5e29715c2e6d97cb5b4cc1e50d85dc51e1f20a963ad72a9e664d6c894fe1f24ae904974b9b092e6f255951b85cb7125cde4eb85cca482fbcb4491e9247c9b5a3841f9f4b353454721b93b6cbe6b2c19573a5ae1b22449e0b14ba4470a1ae99a19c9cd16dbca99c00f4e31375441dcf05d69b1de8e4a456abe70245b771a60d5513d49a8aaa333c3ccfc5470a2ba09fbee99be702b5db38c3523d3b3a39478e3c1768cd582cb06cac1a0bf5f3731b633f56105a01f9f0f15c7280a0dad18135cfa531a5283a04bda136b426091ccf05026d614868f554309e0b6c4c7588e0a3dac92c98e5b9c06bf55ce2135e4b3c868a01a681d415709c028eb78e682c6f9fae556c89cf2f2acf2382774e55db4c58c85c3bb0457c9e01bfbb78315996dd5daf55cb905c6f3c5b7f05efb582c1f0f1d74e8e01c3676c06c786f1ed08e1280386cf579017141b6c5373f162fa7800f8bd23f07b48e419b246b1c1069f25b600486309407684081122448810214284081102040810204082040912244890204182040912040810204080f0284207de703f8b879758c2d183d835efbdaa690f06fc0eb690f159af9b9773ce0e4b1f3418be36572b5785d8e0230b0ca1115bca0d13bf8c4306e47264007777156716589ecac94194f5030a4921196ddf133cb0a1dbde701c6f63d7ec78d2054c9b4864fe5ea34ddb6b5475db4aa577a758f3a24da2c78e7252ab5e58a65911c936923b382b31392981523271224505458a95dffae34c856679c45881ed8eee66c6a241162da66add36ca812d431df8a3331734990b7f62cbfc762110fc017774747238b0e50c856a938e3ec9e86439590ea594ba704a61a02da79452da9d5218fa534a295d39a527ca9d524ae93da526aa724a29a529a774069ae294524a519c5217b4744a29a528a754067ae294524a4d9c52015093534a292d39a531d012a794527a724a5f28e994524a0f296d41e129a53b024029a594ba502a4f47a7db29a594b2a09452aa439bb2d3d37700a09452164a45a7d49e527a136b0355b1e2059893690617320820869716017061010017585c6081e1a4a57bc185152c2a4abe721277575fadac462a5a8a2a48a5a24a516d2950f0a8a49094502e3a6162555aa1acac492d5105a9542aad847592e23129c9483bc0b8ebc2e00eb6b9ba85c99d1da90a5251955461dce8dab64dd2ac364ea5dc761b67d51259b22d6d2c12f188e6a9e561591b991b51b165e6bc982871fa14a3ec11a58f1fd8b2dc5eaae0c9489a9667c9026c2f79bc98eef672a64f1285922894ac41499b236d7ae10a4f46e2989e2316865ecc4a913ec9542a289544cac84f9b520ce1c9489e199e231188bc98abd327a952eda854aae883eda38f36fdf6d1882723835c3cc71960fb98f362526e1f77f449ae78e0d8c79a369db87d0cc1939934323c471160fba8e3c5a010ead344a186507106155149b449e5094f66e208e0b9a1b07a312843fa34532922a922a920559b4a1cf164264f0ccfddc3f3624ca4fa3455aa1c958e2dddbe5bf06466d0cb73bb00dbf7cd8b29b97dd3f469da55efe081ad95852743695a3cc32d1c793127407da228d40a25841a2ad22693223c198a13806778046ce9ede18f3ed1540af2a486a488601b6f0f69f064280f6c315d9ea10db03df4f16248b787367da22a15bc51a5ec218b6748026c0f47f06468d00f7da2f5080d06c0f39302b69fc093b168a07d05da84dd1ec78ba928207b1efa64a162cb84e1f9fd00dbc77832160e6c31ff78b617d8feb50b6ccfa24f564a87365db787f162e4edbb3689eec2f30bd89e7b8ed87ec593b178585e4cdfbef6c952c596796b0f9f8c15747b17ac0d76074b543c418952815a81c28132590f134e2a9e32944ca5523c50264bcdc0a38a276cb552ad542b159e97415026a3712183f0bc5cc513a652c9954aae5472450365b020196850f184a552a8142a85c28132188f0070f0c450a8542ac50365309c1878f0bc562bd54ab55241198ce66506e1f9b99a2bd55cd140992ba8050d2a9eae540a9542a5503850e6e209000e9e170a954aa578a0cc85e3c283675dad542bd54a85e7691094b968e0c58206e159552aba52d1958aae68a04c0d02000d9e359542a55029140e94a93c30e0e05a2b2a65f140998a035de0c1f3962a9eacd54a65ad54962af31104652a0d6c21392e37ce56107e5c3daee2aa85cb3d1f3b9217a04e0f17b8151c8b0a8ed3c97ae0f9152ba214a8d4b3149e67b9f6ab8c66659562b5ca68f0bc8a14ed842a28457542a50ac2f31c8a4c054bf1a460a913580a4b5d14ac0486c270503054090c6531148683e76fe22aad301a945589d50aa3c1f32b25d5520595a8acca5205e1f9142796c995e229b952f64a595c8a07cfa3a0345e17ce85ba50170a07cfab90e6a8ae2e9acc67b5aaab8b06cfa7e8609338c79faa0ab254397d8d83359613d918d9ebb3ec429b0b775835b06ef5cc8b691a94f6a24f35628bc52334842d38832d93f51d18141c3be390e7623ddea8fad9e81ba897f04ef0d66fc244cc3858b0ee9a65649c96fb9b8d81bd9bbb9171d0a6727047c31a580377409bac76ad90488d7882e996fe4ef501fa7940405735e206db18f6cd01016fa817bd6dbf5ed1fd0162cbf5606fb4ebe2b9f4b37bf30cb85fd81b7b332402e766981b98a3a2c3b2d33328176c0ef57d6a73401c7356eb56fad5403d5c1b17d3ae55832d0e6993bcf5a8b25e2d0e3736edd5e2d0dc8d8cb3d19df51f20c6b81ebab35e3994176c35da84dd7a0f36da047d32ecd60c8b802d4804dec4938b6ee9bfa83cdb90129117b9c1d6a14f5fabad5262390bdcb79e99346c3e5e79d22d42be2f10f5259e3aa85bac5b9665fd08b64e832dcbea5bf741769065613646e4b6eeac5bd59239340359ffa03344033ef0c10b7cc092650d96a787f4b00f0fdfdf81a365c49619b9de112c69b0c4d12df2cfde3071bdeadf6c9cee300b89ad1f7ff409da142911d986449d36d9e0c5ac20d2e0c9340fd842561f3d544bf80217b0de87d8730fc5cb67d6ee60455ccc69530c784a278e94832cba8b907bef14735e8bbcceb5836554c113278ed86ef4fb86ebd46b6ece6c39dee8c49b36e1f449d4a62c77303dfdc3bdd33a3fda845d6647bc182d0789e534ceee000f8fd918f07d28d449f4500f5911480836ec080494852df71006fa49f428ba31a85b624e0eb8053c8428279e44dceb968edb164bf1ef9ed4c276a381ba9345bab386c8fd2369da94fb074b897a316f2709959123581e25b5e5fee9d54f9bba489b1e50bf7ead53ebb6b54e6948e4893f7e74b702471fddc118d49dcc9206cbb7a4e94e46a0e7226f85ed46fc0f3dd43af1146fe24c9b6e740ff59136d1bc18ebf2b1032f067b760c3bbd39c338abdf2b1ba33b8916fac1963b074bf91b2cdf2ba11f7127c71b60d95cf41183e821100482401af6d132e658e42c2595ad71e4fbc686b65ea17ce7f86893bc3c958f17eee84e761775624ef4f15c64fcd1cd03ca441abc16f232163991d2908d074b6983e7229f7b05583e433162cb1108b729c703bd9825bc98be11577d6a77e843f8eede016fbe604d4b58d39d7c9136b18839515e762f6df2112806bd98d70d5b66a2ee6e0c2d9c91384c5cbb9306681adc2f3bb429077d0dddc17764b36ee488b4fb9735df42c6c9ee3eb0cdcfadfea5bf783b38a01c8cab038cee68cae46eb82103f3ca08a34def265ebd98b6bc18fa3dfbb827a5944fca4b29a5949252213935f8f430e83c7d29d6ba6df4dd146b43f9b1c95b3e5ac0c10da2d05db79149a96aefbd2775a4906281363e7b355e1c1a5bdacbf09332466b12070c8e1480c137b06bcf220c93e7f7f37e7dc68ba127c18fe0377812d16b81b737a952d31e2f76d2cd2f3c974437576c7f34aea402831ff797ee45617b3141bc185833a10f3cf34b7c97f871190318fab85288a64d0ee86e762f95e0105b7e8787872ffb8556a0c82718c61618eabc16f3d96586c5f04f56edc5340c862fddbb40e510eac40b7f3ca8131f39f9a44e84b56e9b8cf576d78759b9aebb898aa713d46c143d7dc12f7d04d347fa86607a696da09abda131a5cf206cad698c3152fa3829d41d7d57ebb675d7c9e7220d304d84c46007ce1d7edd8c9f7753fa0fc399ee3a6e3d1a328494524a39a7b49173ce29a79497524a293fa5bcf5824d4a29a594734a1b216090839f1018a4f0ecf7da74fc6240839f10181cc16d21862109c31318be740c862ff174bd96f9399b7baaf9375db0c0bc38e0358c223a230a78d0d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3d3c383acc61384af050a51217bf2b00823f8092922099cb5562a4264c81544a66aab550d0df8dd05cc8bc1c2165e3739f05a4e2608308c5607234342dd0dc126265c96292c69f01089a47202d08fcf0fbc6d5c8e36d888f591c20ae847244af5ece8e4f4c09ac6e546e11f2b08ad808230067730e4812da02d0c09ad6ad521828f6a873e2278dabce0176c6663c1f0bb8994a9b045bcf2070f08af835208af254aa02ae078042a65c4cfca1d15bc134c039ea5100c7896452ce059d2808726bd1faff04e35643c4b0d28e05906b1c3b31c810e5d32847782a81c9e231212f01c9b10e3394601466f46bc13ccc1e139dee086e708c486e7d803047cf47e0cc13bc19f033cc71218e039aa003f47216a68d113dea9670af0dc5320c0735f6100cf51032f4e72c43b754ae6b9918879ee21d0f0dc488069edfd6ec13bb5cfe9b989303db711333cf70d5cb4cdc23bf5900ccfdd01013c77086278ee12bc34f63e2cc23bc59bd812dfe2192e2100cff0092e2c3aeb9e2191966788040ccff008003cc31ce03ea4c13b45556c892ccf30071281610b5e381cc13b45a1fabe54c00edce797855705dc9fc08b2acf6f85e21561a51fe39de40e8e94e7c7330013cf33e076c19d6f6274e1fe8a7792abd812e5fbf04d6b43c3c4da002e5706700be060ae1d195cae0ae0f2b603a70397572e9b1cb85c13c0e52d062a35ab3123dec67c3a4c4e39232631f913b16843c49edd2e9e76543e939b51650d1a113b42cdb2cbd65a8d50af5a6b663392760c236958166fecae5aaf63955eb5ebbaaeebaeab3696323b42adb5beac56aecaacfed80b672c80dd19346a40e00159b7c5530f3eaa9daefbd97e36d455a3a3676254c59868a3ea34605e0c7d3c0d2fa69d1796519b7140c09376c56337e28ea55a3b214a8913931238e7acd126c8e334605e0c76f81725d0049ec0121005960e217c09a5c48949099c179c734ed17cf6ac3db34f13659f9307b401f2c00d50847c41655c9d9cc478d4ca012171f61c24387bb4f4c22886611806836118866198bd306a310cbb628c31c618638c31c6186386c238a843ab99f1f3f3f3f343330c855118adebbaae83379a489465a28c3483e4e7e7e747478d28e3c073d1c06b81ba892da9eeacee5bcd3e27075124dab367da853550c7cf8ce762f5cc8bc1b0f5d6c08b79388d7a337e56331575040cc332ecaf5e1727b1ac56a971b006eac074d4601836e3e7e7e7a7629a8661d8ada17134347b5d540dab1a7655ecca5fd4e6703cabc42e8e06f73383468d9a6135c3aabc51255fd2333d83f57a7f803887e3793b9f6e07a683564a8c8be7b5b64091ecb1647803b7f3105bb2b0354b77f049ca3df9ecf9f08032f132de0a5bf0f0542598ed850707bc985763e9b934ee9c013c27944632eb596d5355f95b79ad2bf5585db1d12728149f106a06c3c3949fb80953e9282f71f8b7e9e4d0a4e4a4c3bfb469b41d1ec61e1e013074e0c1018fb0ad0c586bad42f1a402c20ac4930a0ed670f5722fb658299e92e229f23d0323b8849f901914c199d450dc95c75bff7b2fef10bf2ed56e767bb58baeddb693eee8259774935bf2936bf212f7e428b7c44b17e5266ee927ae89f73df194db57b90fafbc868635f10473503c97f0bdd048b7582b8739f1b7e25170b9a402735252eeca213e719160ab47f11c71523c4721b08af51eca505c8853a45ce5d2ca48f194c7144f79d61a8a1c523ce535348a0301318a77915e1949790dbd924dad2f3492d23fd0279e6ca8dc1417c5addda1b813ab5c1bea532e3462fd847513b767bab35eb28e721b65fde4f6ed92db36cde3f6769be476aa7bdcce691fadd33f6eef344f77aadf1ed24d040a3deac8aa49d997d73394f755ece26ebcc0f0f2aa734e9b854dc217d39b4911eb306ba02560eb5d64462b63befba78b3410148ad18a3b26faa426b39ec1b0de038d3e91fedab28028007e5103029e69be0ce0c974f788b1227bf668e760ec16bb865d84849a1c7b92ad1fa1bd88de40be65bd0f7cdd5e17e1e0faf878edf4063735f5fd9e120061173a991b2837506ea0991887c8d47f7254c51a8b054b0301691cc7558e65450365353496175aa4cc44cfd76c479f782a712b0ec52edf246f25b88bcbdd09f7bac5721a579f2b9659fb161ddb300c136127c1441856c230ec30188661980ac3306c8595816918869160d734ab711c76162b03b35caebfcfcae8572d5ef9eccef8721d7610762d7849a09e4105716f737061a1d11b793aa6628e0ebd5105af85f579234ebce98ec773b17edd68d341bd6201b692d8a1c308508c3e2f26e22b5e5115f1f5ebf0c944156c61fdba44cf418245ef67da655fe09769c0d692d86f9684e4fdf83c95fd8b3665b732d89e86670ff362b4772fef4ab7b7f6d6929cb3322c89b576bb406db2489eb79390dc151b63c3241ab63509d7dddddddddddd2844b746779611351806fc84e404e1cce5ba0f6771f6847996b8ad8cd8ddf301d59ee9a017ed458336c4f9cad558b131200704c493b3f156cd8425645a298b4193a6a0eeac062282a4e9ec5689c7b643eac0d663169ef578e4c5683f419f2db4a92da124ac223912a915c5c79645afd621918dcbb5468abebde1860cf7414222d0080e10bf3f23dd59ef71d047060dde88b1fba08fcf7565bfb02b43f18b4866d2e08d75db4a5775f82b2b568c29ac0cf98e286c0e92934011fa401fe8d333db067da0cf73b166b80c46fb31015259411643d87a76815ff589f2eaebba6ac57e61f5dd4be6422b82adbbb031566048a43bcb9ac196b9d0e885a40b676e8de7625d4e1f7ed8b0049e8bf508bc16962cc5138e6eb1fe931ba881544a871cac41b13122076de08eee070365de4b7790625086469be41ba8d42ba06eb11e2b561b28e35e07ad4ad8183487079f348c9e749f01e28d58564dbb6070a621c6e81355bdc1bc9867928fa4e79712931394c7d3f06464703cca8daa6eb15ee2be6e39b9af4deeeb92fb9a745fb76c97092be37ad11d54915c8fcfa2e7a8b2aed9c712368688030262122e8baefd7ac9cab86e3920206ea0eeacdc403e284254eeba1eb55f9c3d1012d7e720c1f5548bd82f21b68843d08b9488bcb01ebb9777a55b33d64e8cda4fac8cc86518fca24d395e5c1618386a7cfcc023373cbdd291438407c9da406f626554cedadcc01b78139fe9e30c4db43eb231a808468bb1fb4ba56d535945d8680653da33240293ac8cfabe813830351245bb6d9d8d16552a55bdf61c4548e0e472c86f324a294b18fa18b1f53358457f4a007a114a417840687827981811670cf090dafb7bb37bf07c7e99c10fdc023f213248a2561d9286e4d9df5f94fc99fc9df84bf963f953f933a5e81b1904b4e1fa2652abd23b923aa8c5a34d97c49129d9a34dd8678feeac246c10e7d26c13898f36272c72623ec320ccf20c57d0e69ab857137774eee6266264d10a835e4c89cfc326bc9893cb19a01f1f6b926cfc6fd52b1c1b3953391b94975e7a863657c569c5e7db47cfeba2ad87b4097b98f41b2d6592a3a2c382c45d4a15f9925479426fe8ddcbabb8bc499bb8cb97da64e2f22a679167d1a6edf22f2e605ed4808036955c1e469b4c2eaf439b4e5c9e0707b489e5f233da84e2f234fab4e2f23db4e997596249faebaef4696590a49457f98adb37b185e5aa3ce5b2fcc44db9c93df1926b72ed963cbbda49486e2ff66dfb7545b7ee65e2d273d7c4555ceea3aba2debbe2364eb7d8882df3a48951a468d3cae76b68ee0eb1e226ee1036ea2aa3370e5957714d5c742f7bb763d79ee462cf2e49bda4975cedc435f9bdf529f7c4596eca57dc28145b72695bb9ffe89a788abb721437c5ef1d5de5a238cb55b98a1b57dc68a45b2609269e6c748b54c1c9735cdee42f974bf2a47b7be84e7ee5d6681addc9a3b833ba9357b90ee84e3ee5f27075e84edee4c240400df74577f22417e6ba7861d1b1bc55a489ab09c5d3d62d528e543c234992925429894425a9e294504ac49c7c1ea200b200a6e09946d0063006f370244952922a2591a82455ab745348a7271de5a6902e5f631c428a3bf591e7c5903e1f8f78a7de6953ed1d04e92021270ea15348e079d149a29348af383c7c3db3913392467640e24815c81284a0662737470570fdb43bf8306d0ca8511b837411c48156467ddd55d1c5e580b802c1d3ddbce8c56c31a41c2458f4eb6ef524d26b3de935f4761f0602e28b6ba19bfb0a24ae8da014b10121710e28842f1423b62c671ea612f5ac0c58b9932e673064063d46a7a34b19cc6016fc84c8a00667552b41fab1031ae81481e78578313ee420c1d733e9dbb3ad925e6d209138adbb49b2dfaa7ddd2cc782e1101be9f4252ec43f487c3df2902e49249214aaff01e616c2f3928b33462c2b49a31b6ffaa4033cdf42738637df11a491b4e48c9cb9c1d026725b2471d0e6f606cd4ac2f6706e21a189c43bc10787bc98d1a14d1278c2264024e079f90c8780a70df4d138a3bfd17dcf457219c7e50cc419dabc980b878849b4be897dd337d77545d7b5d7d5ae9b5d17bbee75dd7a5debbaf4baf3ba705c24d1df7b43c0ef0f094a2dcb9a61646fc84ab49292ec0169262a2c338dd3dd7f764e71c7c51b9df499916e0f3c49b989905ce3dce86c39e69682145eccf609b1dcd1a752a9c7943353eaa891413c1917b0c53cc9a7fdd44c20682121a1ad54fa8564500477f80991810f9cbd7e0f4a110936394422d13bf12467666ee6cf8e9c215d5ebe17f3e2091ee996f9a6b9691d3b2e1cb2037974425f9532b4c9d006a7f6d87c947ee079211e3c4b94b8908deee608f2b83b4484e691cec89328056d4576545df79784261e71d04609dbc8f6e8b611246cb96f84f07cdfb409a7532f46f4f926e2c56c407ee09de20d079e6906cac41fb0c5bc0e0b724c80e7532218bd74b703fd888eacd1c8ba4a2cab64645d29a35ba467d9e8cefb3049a2d104dee985cfdbc0f162469f6741814f707e2b8bf35b411ecf659e745fe0a00a5ecbbc0b2735367259dae0c9822397250b9e49173dabc2667298dae0f461bb26175d88036d26ced0c6848336dd4d165c72730cb18d6cde8b79d86534ba0f471ca3d1e87234ba944fe61b24ff01e2941c58b0bd3d56e30ff95992ff81e7e9f6fa13d161e86bddb65289e617b2cb3b3ae966f91a84475c66c1f23858b0c4db25c150f2782ef52478bba22111deae2562f176b51c0d6f378b3a32bc5d6c752f9e0b6fb7f64dc5dbb58e5878bbf487e2ed4e1f136f57c21a89b71b71c08878e3589e4bbd8438839c6c98e7d2b7190db85f72912deecf52b791e07681a7cc4c3c2a7dde1100f283a7fb2e64c04ea2db48cb92901140f80949e9c019a2840c71045bf3756523d6ba6d3d47f582413c2c339032278e0a48c8832dbfe02050b0071c0196f00458c216c8181f1f3c0ada902395eea63c44497a75b87454ea8e06c399ebc7084640c2b66db6c447b5d37515ebae98454d66d9b5ecf6a218a376121226b559b3793be735ecd1625996657093588d59d7755dd719a1d65a6bd5ec95619abd32ecc2306e8695588d59d7759dedb4ce0828152b31392981a1d412279a892dc17e699acdb22ccbb22ccbb2ac66d95f961d26cbb22ccbb22cb399cdb2cc5a4dbbe56664194743ab81412ca18451e5633debbaaeebba4b4209ed8c533ece789b837c7cbd91fd070864d1a811a7b457e3ece62884adc71ec4246cc906b11ab3cea7ebbace08b5d65a6bb5af98bdaa56b5aa55edd2322dd3344dd3344dd3b493b41fedafb5d7d0da5fb4e9ba2683b5d3f0347b4dd3344dd3344d23699aa691368d3483b46935ab359a45a8844b592a93a0544423000000146316000030100c064422a1440bd354540f140011748e4a6a549aca83611244290c23c8304208000000000000808088d50034b8510572719f8be8b5db50a7552784556f27ea84e95867887d69683ccf8046168b068104f73fdccc581cf635fda6581211a8e16de0e23a52c7e7f60e1b325b3c809c23f67ad9a5f8fddcc5b122b003841980ae794a711fde668a4ed34fa32c909417319b2bed1f5ed9a57859409437722fd7dfbb92d094bb31e33154a8d8c231bafd3729569a993d9607f872c5136793968d1954c4cc05a0709374094f431163392a40165b517e3d8c3e3aecd9993c94cdeee3e359a926a69ecd40c4dda3f000db2bc5affb8097b060426136edd9dd5f00c162f2e975c1e606806fb8dbed7eeb2096e432e132118f821ae28847a48656e221adc15d01af7701de2c869279439a14b33458ae1fb89f502578fb3ea2327871bbb9b823645446361f03cf8d1bfeb713c40478d71cf4ef2b2d2f80c8f772ea3a05cbffc272e6da00f61becbf4ca2aa3f39964cf8f88790e2bab73884b2f315f4bc8f57d03daf38ef9ad6f7b342ad0b66695828e796be2e0484a572da08887abc3eb4ae08f12c11e88e206be909559a7d2f6fa2e26b20123fc0937d21e1cd00ea68a29cb7af010e3deff9a436059481e316c3c37d12aacd13fd78bef2667aad60e5353b0e62a250c90964931086056a6d9181567cbbf6364c177560944b512baf5eb293d3b9750ca0d664dbf52d6accf645b7b77067f5268e030e1fb2da81cfcdf162d2ab0bf1943b992a8632252ec74d9323560caeb0206748d2ceed1a768af24d982f802da8f699b7a96c3e1ba85e4f44e8f633fbcabaeb2fac2dc5e849860ce4d34fdcefdb3ebd699429b380cea731d6c90250cda68c134af3a7b9e119731e248357b598b286a2aee2c98ed5bd384b98233e898174a95a281b2f87e258a2fd774b52a5097ac49a3c02681e04899d5888818d72a96c1581f273830f00674f3db5d89e0f1f922c6323e5ea8d1a0d8a80b0f411ad9a4281bb464637d0e959d5d0e1b85562419ea547d64f860d25776c9a22d90ca68cf5bf8c0385222dd380bda685ffdb18dcf313d30032909db5ec424ca6fbf9166d7ec0aa21f0348dd19a6611c37d9fe9e2e9cfed8d7196b8949eca340a6105bb43806edd868ca043663aca8f710668d1878edac3adc34c50f2909b7e7b5bce7adff27444a3ec724f0ec07e010c53e266800f8a94e7cbe99d13fcd49e4787bf2ab1c8c7eefff1acacdb6dbab52502543013401c5248b8d054cf7015983e28419521a0aaebfc404735dd076bdf06afb00f12c7d65d8c96ef963f9909e62b46979e29ad7d9778b49a21fb675c524ba2ad7a7d1305ffcf9fe2ed61e2a4d5a3934927af5b01be6c45199e771a83bdee2cad5f29dd7fb47a1ff96229e9e30e670d7703a00b05df9f33236ac1d0bf1b1871971fc0344fe3cc06c809064647d433b9eea3c73bcf9b707dfd186bd750de724043d69465980a607d2e67806ce11914dcf4353030352969597437e1227e2a0b23bc291a61d648c54e4d75b8b56c1e13840dc6d600f19f99e4e1c83bc80f4e71901417b7e723f217cc4b01d06408c41973b1d8cbef89cded19a1cc8c8bdbd46f2fc0811ce9dd1264493437881ad00c81650b14ef93ab3c0e7cceb7f6b241e28b58612ba75b890354df975f8590c3bc578f04dfa8972269ca1170dc6a04cb0f3b68d9900ba0d50a8cbf29da8a9e91c1bbf19a83d642007daee233d10607f1ff745241b019dddda275defeb85e2c7f730965040c16f514fa0b7c74cdefc1e9ac9d363aeb7da8181445866b4152cef436c54b70348b22bd49f89c70240890053a7a29a643b006bd217caef8dee2166d3267b9b97d9328cebacbedcd2044ac009d671297c6e6d7252ca5375a667263540127d1265712cd602e181116a441a89b0bb6a6d8943f5b4142aba1533d2a14a7ae37072cd78a0bc89c77a476c7f94806d515e1e8808183bed319ea7bc76a0d141156d90dc55bc3cdf6cc2d60b0b315b946496a3dc5e8f76e8d8249da5ed3e5e749a81dfbbae715c313122992d8864388f3d758c4ce1d5ff117b14b885eb8bc5fc89f9e47a8387932b54a917fdd831119a2fcb121fa34d2538aa50c5eb666092927b9a96174e410e0c832d9eac297782d1f311dff72c34f1aba07b190098faf15328e65a2e2d033649b06b6a16e03df900243822018eb1532d4e14916ca62e0e4f0c950b00d40a471d051368ed4d790432d82ac339ccb5559bb61bf511311c7e19a298890aa66803deb6d843b0316ee0caae87794df2b83d7e8665f84a337f584d3ad92f17beddb6bebb83c043547f55a31b3d57b59e0241f4f3ca3b6321a4f617ead7eb7eb778ede30536d59913cb82225438ecec06cbaa515b3e9ae1f9c94fe07d24a09dbfe6cad696c50291c03e7c372d256f2d3ccbad8a08ee76eda7619d13b75d86765db1bd96c135cf67f160972b023e73e52919c0ee48cf66da83428c38ad38a831750afd86a8630e0d9032407a1f7096c4056d77e5d481185182f2d2a4a15b772bea284dcbfee636cdd0a77de18a88723b229b15ed44cb368320ef4d5d194154a38fc86c0fb17e43cb25ae3ef2a5ef3628890f0dbd65a25b626b584c04cdcd8681458058c77d587c7be96daaabf580db0ff696ac166f317e5eb2383a343b85e5380a714157a5566f0acab62a4951d5beab6a406f99610a3b703c101386051530f62910d6229fa63a899b088a52108d0da20e08b1121be715c2166fc9b2190bddb214e3e1c226e3f5222ae3c9c22983f90455c3b3246acb38e783462240347c01704f8d5070209bf45c289ec4dbd16eaab942fd3f8b66ea54d74a5dd9cf7f48cc1f2c5e3a41d369c821b41a3f9d99e1ac64d11c101552be4fac7fff02ee057720998eb7e4dd6c530d861806933303fb12eeb422efa436c58b25c2c900d75cfd204ac29602f865b192e2d85666fffeb6d7ebb8ddf4011850d1b8b6e1beb7b487f6f09486b345e50589beb08e2eb62c0b6c2bdbb26a698125bd7815e46578f738dd2ff6c7dc77a863bbb69de6b8e3a26449eebd704180ccf7e5111871342eccaf06bee8a7cd43c357cb7db88348bf5009299206e3955f406ea0325ee688fe8c1f03e9f8fdf33a45c22bc75fad42a77a3c44262d0ed2a45496479b6d64842402faa8f992d2187aada1316bb740f7b91959502cc31a908a877c5d4636a1b3fee7897bfa96865aba12ec9f361083a7c929ca1afdf027cdfadc7be16b5d75bb2ee17cbe8dfbc41c1a67d347797dbb2fab9826db75442d98473c3e2d00eb788d1b0317d5089bf88a9be44f0ab7ad1822581b26c3eba292b3205942969c2ed2508963220676cc443c74f44779bc7690690416d8f5dc5c59328259479b0cbee100186d14e90d7d8dd27e8bc8dc7bfd23a9a25ff431015f76aab1b1a828b19b2c399b03aeaab8f9f45301567dfe6368f7875d90492dc756b735bb240d7fececae4376b295f90d84a6389944d3822e725ac96f33e2ee35f31107eabad83075bae0015ab20d6e707c8d3dbc2d810bf553e735a75976fd6722464d8e3c56e63ac593ca21e384fdc80f313eab2898b5b9e3797e8b707521d9d9a7a9b68cfc6c8d5c62523315b6a6015a82a2531c5bd906978e68fb8ce248d77c20090ae7a57179259f81bdeb3b48c68d76a81fc8d2aa89197dca0c58bfd4c0b9c2bde0ec74314e3d600af10c4c8c79f4d747fe11081ccbce9bdf4e54f44d18ecca1ce0d68f3d669e706680ec267e6180f955b231eb080d69d1a455352500b28c0a952a277fcf03b44bff42955e56b48583b77be81b4c919341a11cb8d1d96546974b5e8554c7a43c968dc3fe44161a6aac46d6543ca3169a74d7b2e3b2adcb243850e89f10bd7d8a800321aced25930473cf9c4f273025aea15aea04887533a8d24ca7894a86489e680a0c4395e3987e4ee10f719d97b3c1dc1d7d72f9d4d79573b10ad6e6e686f851e9022674035e48957020699f66a98adce4803d4776c293bd5d4fa7a47d4375c65efb77e7f87d35fbae3197ade6fa1c7348408cb945d6cf64acf8a14626a7c9d381cb07fc913cbb494c82c481de911ce298296a5b2877c160d4e107aecb7f234a718a0e94cbe266fbf7632cba958590dd70c7bd98b0efc6d515bdf216b276ebdcecc321f4e6f6390724f2ba84c8cbc86c2064689ae6c294e6b371c8f13ea763a18c4ae2547840dc2c52745da7358a506acef6d7232c04403797cedade60af77c665488d3a8f5649bf856780bc8685a9d4ec469ad211eaa7d467d10273b1adc06ad9b39dd82d882a754fe3c397a8415414d0e552257c69538d00b8926d90bc624c9e4660c2c0e5efc82934cc3387474368d40dc5e33d1ed6b03f2a1458f6b81e876b2fae9e09cafeb84c5fb74a3742ffb8d1b3ffd7aebd9deb0baf1561309bf47c0210a47d63fdab89ce3964dd1b84291f738552f1b51bb60bee9332c9b6a66d33dd0d4736ca1e77e6b65a328ff25a93e2d62cdb93ddf49a949a66b09a17da569fe32e08a004f63aafcc584fb19a6c4d491cab19a2e6366e45f2e85e3147a3686e8a916da49248609d719084391546bda1a836cb16627782d86e9689ed197690b9ba5d70131c0f7fb1a7fab24e98f8b78a90a6c3b62741712c91c9247570f32b443262a4064c5d9d0accf8428c54f9b2f2f880116e85a90f6bcc3130f2277f97e28fe41551ce1391b8fae395ed9611855083c17fdaa1dd3f24dbc459da6e5b2733cb4b9afba285f7aa9b71f28f6d91c08f7596ac559976bc6a5cc3fd4bce713c388e20d94451e90cd3c6bb240eb96d8a2414023f783aae0d118e3cfc890979ae9957977c6e3702ee139b2b7186c98e8900285813afd6c4710d290af9eb744967cd1ed7c86e09b48ce834a40baaaa250c11756ef1b7a7dd4f76acd5824da924610448c0fa8b022206d5a12e18778fd919248639592d63ff25eb316e012ee6009e27c17286b651170054a24d35b3ced1d8c6d7f314f0c70c9a354c8527f9634aa20e81c5c32f1f1bd023a172ef90400f9b0659b8eacb29e02ea0a97f04756bc0dcc3cf13ea32abcb66942b49f1107f4755927534d8be92f3bd568eada52a382890d69e4974635aa71e62c35e022fa37497b600e1d17265298ffb150663e9c61deca22436d64765f00c30708cab0d821124f441b380a913a51fcf17ac225fc42c0bdfd8183545df783154784d1cb732772eb282a45e7e2f91ddb734d29209e4be26e0c3bb12b6928af1a27edb0d5b70ee6913f7075390ed1284801e87d1a879cb15736eb896e5f81b24fc49635c8c4bb0d2aef6beaa468298c9f4bfedbba865e7becc53624ca03d85f4b82499a9e8d2c65754029fc6b1721e0ef9ffff8a3de231fa6f76adc1669c4b7126ed0198ac7054ff0ca51422c715dc80dd7255c7212052f564c1b819184da1cf03c0120b1330b20d217dcf5bf046bdc2494b1f7a977234dc044245efd2febea044df06f15bc1c232497720f8d4530aa5345200f441a82cad029554738e08004f88842cd550bf83479967060840ae11593aca074128bb8544c284cd40e9589427cc03b3c8392832828fb37b51615820a15c211f7a05ce6ede6d0e3bff7810ea87099a4332e40b7b49236aad7796146a58073743a4202f47a8dc02582a1a08527379ea927b50aa627b1708292135130d88e22c1a6d23115124fc2ae165321b9a062b974f739fa19767fa084a28861af422c273620066ebe1da1b50cfd4c8aa78c19289a3702ab90a09506afc9025096132e51a109a2dee17bc1644af39a2553471df9c75335b0429cae66ef352776a19ec8e288baf26859213f5d0d1b556c8f778780580422c9f26793478a2c80b2897a0d58216b11033ad16078219a5edfac156221981ced9e2fd990a6eb103331a4231ddbc2c7ce440340194848f3247f297f1c10cedfebb294890a60090490d2cba805dfe2fe619538067f0e1406daf28e100bfd81970b13883793bbc2a0b24cd403e871a56b45ef2b34beb54e0440d3746b3edc02116d7cc4055bb73b005e1e809a1b4ca78c2183c6733798831b1c39c6f1c178e413a6764f901bf7b4bba61a26fdf0783e6c59bba4f32d503d8e3d111da738e70296fad8f183c85b8d80ce5185b75fa29384eff1159cb3c8531e3c9649ea411dcb43f1d8f12b985629c5922a4b9e3b124420f4909e55aadc1d28a33b0a7d1a59bf0a21d0a0df2e25ed28766653171e2d1df27eaa82405dbe80223881eb8805127683853e106ee02cc3f1b503086cd81132fa5910547273c456ef5035e91155a8d0193bee8b72e5a5920a140473b2746597e3fc001f24685f494620c54f2eb0ecaaea8f30c8d4033713d3270d1cc8622cca32bb5b48580eae6657aa924fa2fa49a8b2491fc1314f48339c103586de829f4f1c821c5ae01eacaa2996df939b0fd508ff98ac4bc36c4a5618c338dc1a1ef0185fe02fb26138000dfdd58915568ba1f51fd39cc6b4f6c61a2be917773791c368283b8b285856548e0ee6fc016a460b4d2d8ae6f844c5f40934a4f143329b186093272050ead9671ffbd9e735b6e65439b1377e2cd46dfb633d1620ab6f448a1003e82131389fd6847e509268f8bd76d064ceca4ff58901de9d8d3b6ef009d70cae67217863c01d88cb97c6b852573c2b2e28e6f6cca09430156bcd56d57e2ec3fe799a19d82db280f1a15d64831f2ca2db0c01ad68df2c72b04050dd37142a2c51d222e6891b91e9edd09d374ccce294507a90c76460b5ddf7932ca81ac81a348e4fc3c0ea7cbfbfa238d778b83e501743b43550ee4a23aec898ad348aaf14f28d7fb23c21c6a7e2ed0e0cad31669a39d243f3ccd7929af5ebba98c60ff2965b2be772da34104246606016413ae57af733bd0af97caf4d83eb3a1087770be58a62701d3353d25a3b6a5c3cc04103fb765ec03a89ec82cd845a74b1e56b7f958bc2525002b1bbb91d912504b82c33be62416d7aedd332e4037cc1dfc8aa8a0f851d271b67624252930aaca952dc594774e5ecbece476a31d360a0c823983282b928a1c30de5f44be6c33dd6d2664c28b296cb504587cb18302a9606c433fd100a0f56b14918afa9ed64739f7fab5f8c9089c610be92224f4499786534abb9614df64191d675f31eb0984cbfc1e53606d20108e696006c159ac4df63bcabee24c53a01be5000e47cb6237d1b80a703ce14caf7c5d1ec266db83e4206a9a83517aa43fc4a146677b80f7ecff4edc451b920c4e8242749c4a4ab0a661cf69a2b2067f96339f7bbabb0db122b0804e6dc35637d78300e86b3b2ad3af85642824320c12e8c3e20e910e38600cd78811410a6176fcfa529651348cdd3ae7ebb0ae03870808e0de85e9cc0e4f3ea91708fd92a599732d3d27290e8231d929b6dec53827abc54ec5bb0429df4d2a97e51749c6f1102a28c731b35e3c6772074bf87111616d98fcb3ca5c4f24e2f4cd755a4045eb159a88e9cbc398cb9a428917f438985097ed23d295b1c9b065659126b84e96d23f8a7f96c3aa99a47574c97b4c037379623a75ad5b49ab9f1bf284138cd7cadef650d81e9b60c00250c7723d01302b20c7fbed239f4a37dd6550cb39e84830ad6d395b4a442b6f042455a4663e96e4234d66d4646ba7425903a6a3d243839232d754db6a5afa79a46143b8ec80fd5c571fc6338a3632975dedc12f953ebb48d4bab5dd3eef59b2e216580fdb36f8d300f13ce8f90c89a9462894dd72f324e64998cd48dfd314d681f1b432f4396c2d540ffe7d41f56966915f95f398257d0a2dd3a29f19f73deaaa2a5b8293398862f422733fed01d63a1a1e4bbc3b224e6fa7874e539392839c935daeac3c5e3e8905e8acda475205d12d31124af24b3b872d8647f2640a812d117907080f3617d50e023c53b446305bdbf55531ae23acbf8a272cf003ced6a8a4a462cfedb8be1eb17297a28230149b719627410cb358730814a5d61f242e465a0781364e687cb6979fe0dff4c01232d65aa5944683d6bcdb42ce2ae48ccc5c5f74d452653c204da877fa1c7e486af4b1156af84c084b2006e811e012387ed17564174086721e5b18f9bc67235343faf4f1f27e43374b4f168af75bf605628ecd327d3d6f7b99ce3582cbe69f98b07f6e318b68d384e673f6f33c4a5e3be784c8528b229021f771f809d19c97c82c346149cbc3f5b5431aa70d1e919f29dfd838cc2ed42c59e4ba07c1b436488800a668aaf4b006cb554c49b5e1e42b814882e786a5e6edff64b5300972c376b39852f266d454936e574e54bb614f28ddeeec84d851eeda176ee7093dbe965d3cce06899419997bc7f61bc631888c70bbd0b8bb4eccb5c7d336e85577f03819be899b54357c5ea864e04ec12d3759ae8e91978febfa8717039dab144312875d34576c60f28b8d7a293a13dec6ea0ec58f5b8e3e4b97e48e4898888f011b4c10c604b8e5eb837f1e14df8f84d3e68ea808789136e2445dcfc2bf8228dbf618e0d0362285bc4427e6e09dc628d5e59c8237bf9322cab7fe28d520a2b468ab1ec6afb96ab719850dcd8fc3a4857493682cead722758dfca45b98fb33578bed6556d00ae4f09d9f6cec16b548a37da46e4c7860eed5867030c9561d70ecc96d4b9b69f7522d2c1570347cd647ce1644c5b98efc6c3dee89a6feddd82ee29699f06752e0ff0ee68b8104bf20a4204790aeea0e72c2bdd11eb71cc78c1ea1b0fcdfd3e6e3acf6ad4c2fc1cf35cc3ecdec0a1e7a37bab508e40ec66f53b529ff0194c519bccc3aa58a738c6a60d55b57a3da7afaa87f26c7b86613e763c76a9c0217b76b04a428a1c982e312347afc049c403523ac0cb9e74386c2152f5b1faad8e181b1d9631c831c18ca686aa9d1a16038d79424999f4cba57c03d2c3121f0b6e163f804c3631e81198b14b7d75975a69bd67f0b4e503771eb59fa096518ab5b6d21ba97d1d8c34ff2a7908561fdfd542e43d5416d7407e082797ad2ab1c100467d286b4c7172c70a8198077bab2aa8ec6c5c8a2e25e5953e5708eac8e965170239a617942dff628b137a1f13325b91853342da830dc2bc08b00d08d69044a7bfda0fea088e806e5cce9351521607419bf8ed0e186940c737ef73b054839f3a4d1bf64933749c984ca67e6f65d25118a07f78d7c5166b55c471c3954daa9c3a0c01f97228670f2456a24a9ad51838e9e5c18159fff4d85bb9e09f2c2b21b6ced8bb57c93d5f783ef6df2402bb8d80b228ebd7198161c67ede11182eedd71a5850af832644654282c3293f62a7253a7f708ec03170b3cdb0520a5cc37938056294c0741aec322340706a248922992f7920a5e12bd01fa2b2706a281b4051033d2393648a86e35d488dc18ac110514f8db2c4e385109be41891dc5fad247ef85cb8537271393485ad77a0ed3c13b2dc114c31e3556565816291cae49478db077ee294b86455f249199964e02f4290f94ba8e272f18df8bc7f85e51d6d754aba7d803cb89d427a8e478cff83140d724b925c90766b0f9d1a79ba77ece8124529e0a68f13dab2968c4040a532c9a10c088af91d0ec1c052bfe8fb774ae978c91c6e1f13eeb1e43b889190133e8844af31a0bbeb4a5b68e23552f7573ae27515724ea1cd688ddab63ee86f683045b7223e330e8bc4a1fcd2019957ea7ae09ee90d66b7b5661b7dc0129275c54009e6469a99480e689fad4e5a9bb86d18e17966d78322754521d7860f90643dbe6acb465a3a006494f05c696970b7fa434f3c8164237c1889c2a16b72b965365857183a2eb750bca56e5dabeabcd2e1fe30e105754bde9dbcb1c74bb426c077d91b50abbe480f46a1531d826368f9a355c06857836bdea2bec28b1c81d6d40476c7ed7da5b5a1b831a0372b04d836de00178d58154157112c2d3b706d822f70312cd3a1a9d1728203d5163fad201f7dae47fc7a1c0cfc40953fb1e02ccbe486f5f8d565d92adfaaf727c8a15b279fd007256924bcfd3affaa0987824f83668cdc79341567be0c5a329b72475d06c38569dfd488e9ab868e7299d08247cf44e52dc66bcd8d196eb4f8d9c85984b49de6a1744016b6e25d595102d1bfb5bab5b68280a4a4965b6285c30dfdf4bcefe927771aacafbf98281dfc9176195d42790f86d7371661ad33f5b30e110c401d35203476e23d504e2237316d4a4c61fa45ce5d59008674a6f2dcdada671ad1c48590c93ecd7743a9b122d9544ea58ca64f06edb0cdd5dac7083a758577260c5624514e2dfe6aaaa0c406baa8186e688b953acb9887b9e9aa85e67113c21ba34ee946403926ff038ec5e1c7ad8103a0e160b9c97de5a2c93c7d0fcd55820330a728ba4a10ed5eb9a44d08cd44d17cfd235f67e8353db829a346f7400ea5747adb0463d10b4203af40fee4821113fe18d829bace241a75d0d7226641218bf59c1524ca950dab871819d8c54212b629b8151d18219f8da3c7f1aa92f56437fa95d4136c15091b2c7d480f5ab1876eec26a130f339e84480bdde1b94d6636b804d131b00f93ff44271641b46caa82fd48b8e9dd4ebe1653e1240b45ded8ae84929787c94c187ec7f50cc90554f2f405d65240aeac19de5036c1fe1eb333ca9f557ca138a6dd5245fe6d10eb894710057ee020aac88a08fe121abe58dbd85ab897cbe99fe1d3aad48d0548cfb4ec4490725c5aeb0061bff29067140edca95325923d4d3ca6706d5a03a07414322b0146a330a0b0c080a787a66c5f10837cd285171382e28d6150e5fce9f643c94585787d64bd40074428379e97721f51b18b103395c6ffd489b1243d5cfe4f418fcbfa2a2ef15ed6880112c8921656de2509a7cddd010c0c86f931eccb3504a5bb8f03f08a5d30d9a30042c6a2ddf3f7eeee64266801b5ec3ebbdb090905a0ef83981af0186ce41718d37a36f2225800d9abf46649fe4b45670d2c95f65b87732f8aeb75389ec602dd1fa8ce35eff08cdfe7fd0adceaff57bb66d8c9572848000540220a45450161b5068deedbc707373a3333237ceb71eb91feaad25782e31f87e0dda7a36d5c503d17e4043bb58a9777dcbf22ad7078ec13864b3cd127d469038733cfee8d8e8fc07ce7d70c94db3893b41a0e5121f9b751ee64c17f80a2cc239fbe6e19e7f231e5025c23eb44c8251ab485ec7c2a1e79501cbe48f2bb9b3332d3ff32cb21b5eec26c0ea733b514a434703a2cd6aedc33cbabb24891135f617fed60a6e840715c2dc405bae488c6b0496fc45e92016c73942d124e230f40fada22c202deaa126b7812b1e49b8cde2829ad45c4291fe7703e320c67d66048070de67bb282faa3ba7ec608950fac24d70b23e2690108cb7cd4d4038b6f397bbee518b2353a973476cf9b8edaf5d62d88d28df0f704c9100e376039750ff65029c7668d5201a3c4753ebd4da1d44594e32dff625a376f21c016d99bb5d935f7d817cc790890360e4fc9d34979097a261a461f5bf3ccca934932de01c6c4718d62892817dd2316cfdda66bb18a8aec3528a4de4bee9289faa27075960b07d5cc7f3776467ab2e64825a99225c82f18a3903a5b0a109a114bede3ed2e7869e7ef7d1d7d12688e023d647d76a7a75544a8dd776aa765eedb9e435f528166ab1bc292152109cbaa65448291c4a0d4e616a0b43efb4749f6b41ed68e1bcd8ed3e78c2bdafa558a09d993d48de27b4a2726a263830cd82042b41d24cf25b31209a87fc211b10108b1790fea28cc22f910cf0e3f72ada7f4703eff563ef5e4173af481177e362de8196de5b7008957d61975e52ee09fcd9d179a56a09610eddd91e5ef04754e4fc60e1253f7d36ece4fc9653e19451780bbc6cfd4d83cd958c0e124706fa367c43dab83ba4b284cc5815feaf0878cdb59f276f8c50eb5c85b288110cfe46ce1d71987b46d6353fcd0a4d85f7a7d015256f137d96ae098adede59cdd1a5bcd63fe1913c99e93b0b2d7ada902cab04920a7af8812bb96c0b5ee0a829d783ff2477645c223ea709362945808755f0903aa7bc220ce06440d3022a14a32b43e322a7cb7138d376c21159889bd1938f956324609a7cd4176ed587c6c8e0c720dc5fdb8048bf288644123621f66185cccb80a8e7a0339e5d88c32b06efe8409c96de2e1209777f59a12bcca91eddc7cdc724e81b58c2159bcd6b3019556ee5460db2f76bd5c1b5e897b18a5df9da7d2c10a6a7cd97511214c606c33075274a7f854681a650e9fa490343bfd09160c00cb8ac1ba1e220a42571a747af46150e2149fbc714f4387390a0d246696a521f49c43866956203ba22d03849080f354467423104611de2f85f68683f6e0f57d11bd99daa78ba3692799b70cda72e9d9fa0107d2d42a734e0ab701acd72c1b9305c884c252099878877e4e1fbc494f006ec4e5473a310ad841d3b439694928d8cbe8baf26d406781ab04bfcdfa94add75707620ecae2332315f1692b09a052784fe3194467215ebc9b37994afd0d6ff889b853446bf7372a43edc638a4ce318b6e8f53ecae9af588f63787a2657cd56db70101868741a42462f3d8b07412f217d42e8f586f1ad931142c8802359a3989ba5a8e430575e5598f084464e6b092f5bd285aa967f6709ac166f9991437a2428e1d6b17150146878e9d20fb9b44748ddb1959fe358608f34428c5ee33d8242edea5a4caca2d614fb676c9becca3b4fc7cd11444bb54e305186a88172e9d127ee408e4a19aea96bd366823f5115730d28080f5805a71954b52fc16b4779c4d3c388edc64484997a19fcafa981833291e3f0101f680ddb0467a7ef702deaeb6d2b316260d0b8f1153f8db4c8e1b396cfa7b492340cc56d0a64dee24386a720110cd73916271e916630d0912c1fa7748f890f4aab3e80a0518907f67bd26ec4f2419c34b37f1193666c2febca427fa5421e8ea2790a3e91e494280054c91973bfa9424344429911c5f31131c949e8ac5c056424d403dd4e1bfe19c5415241d85d721ec3275763548f228ce23228c841f08a31f8c9ed457e88f3dd0879c485691d3e8ae3fc2d09855a6831c31a0b3c230c333380d2156e613168049444513ac4a7dc709a8da250e87f3d5d5a758f910ec3ba35e3fd16c6415dca4392c67e7a801f60c6165ab2990e42b024da591a084de035875b35b5976011e31ab2cacdb425b8f7c3cdb5a6c5e8e80db3dc02ca9cb09a0f5d41d2a3055b497eda870cd410213da6450045cd0538a0c31d6e813c4b574335a7f8f67cc3d8a45caa217667995a74f38a2cf6f093c2931cde8d9a66cc1001221928951812835dafc22293a01339075e0df44901705c4910096130f03c89f89a549be77fdd771f660c42da9037bde8ca9aef0a3a4fe3543cf6c0661af738670af8d842621713ae19030b0a24f858ea5c280b62d3116a66bbe341c10871fac6ce2314145724a08d0454ddaded04cd5d2fbbdd16699c8f20b4494f890021896cbe0f36a5ced3efcb3099cb43209e0ae34d889c83745a7f6fe4366f6e71406720d9418c93d0f5e323bc09874ea25c7e585344abd5c1287294ee9ccc00302d5135cc3632c91048388f0c78b534f04f5b145e0fe1e076da56bc514dc616b6931434d748721f91057aeff9059f70af07e2985b803ba630a9e683b78aa4639c72a758285e3315d448a35f04fe7691acc585e10f4c45bf569fb8b012c285033fad62bd21328022eaa969e0280240068949e01a39a3f265896b4f5c8e41ee951843cda64dd2ac4ce8d7bda285394e2e46725ae3d702a2e9e325748ca8086047bc6fee3879c2f204749d445c7f538c5064dbb69772fa57beb01024b8a2a9fe140929ce6575a92a7f1cf2533b521cf2bab80a7ccb72da8834222fee985cd7bbb248376696c5a2aa327542812667e11571f53e66c62d10b50d129ce97515db509f89529959b169390051e55b8246c8cc9c536760d008daf16bdf32f8ab51bdb73252e28a44998f89953c999eb0bc06dba3cca6f2fde1e53badd88061880538686871661b637f076c5f36680b9c5a3e55cdfc646491e58b5c03dd112955a144f205baf75385574bebaa738931bb8eb1913aaa14578d13401ffd575e4e468e0f85782e5528498255130241f8dc788f23adc6f5e539454f3c3a637586414df09a36973e24c4a1efdbb57834f56e9a937ad9223d4c98602011c88af2c085e510dc04fddf40c65c7646f316e05e5289905dd0f7d40b8a4b65285d1ec16d03f8652160d654230b76c25b9e45a216ad4f2d226d273e7cb19377cb53c86221901082cca3ceb0d5090fc158c185c168a768aed7b0506c5032808e4ca906fa613173a713c5415282f5f219f3644673a657bae23c57d824f5b73e7cb360fe599fc4c25d582c989ea8e388bc40cace6c80b98f0a9f1338b4bae29d893a86727b685c8f82c26031962bf5b5119796690228d332462a1d8bf888c1e5948f02695f789584ce80d9db1aea7dc2039d7b67c3f29191f4974e3fdf78e1722b8c48ba2efeee2cd47d348e81cc9c72050325ed0e404d63b72b1ef64e839b1519b0bd94ec3d7a1f2f966a899831aafe4b6a0a5d4fefde5dc3e2e7754939d5bd28f736f987b670568d0dacbdd1a9bd336d3db019c0703af3ade47c66fcaf09b85734264e0da80699da411e9f9e80875477a8bb566d8b556010d2b58b0ff230993d3fdd668a3c61c468cdf21c434f77bd790ce2f0ae67459df184045158432a116f8805f5eb1bc212e601c16fb4e6843a2fa2008b009a67ef0399a4aab1114689b88a1cbcba509ba001417074131ef5659a612842f66f28ca937c285a18072056690468cec80ee6326f3b741c5cc259784df4b2d928e9d7ea949218258104a55bac88aa8a140ead77eec9c1a50ab2400c0baf9da5c86d1b82449f4ede05af31885c63b25841d0c5d7503b4e5f4e4118ec0b6329b2f3fc7043826f2b802dc2a0862e67fbe091636aa120b9c9711c807445a88a2c35770a2f01a760a2af480871923e6ba049a014774bfebed6afcf3266b8f4523a032ff2df3f803dc12440fbd288b025615b26cc55b0006a515931a4356b42820b84b625c5fa007374d9442de409f45c4954570b2c0933d52e3793678a486bf0fbe89df3d1a11a137fcaf685477d4ebc68025091642faec961622b04ce662efb466d7d4af1b38d3f455e7f47212354789d97168acfee4356eb639e1bd95f3b97750d18c8d2f085461056134114405b97e7e4bbef99743bbec8906e661f928076733f1fc06352c0f9c4a00cc0102b92b6e1b4e067f3d13f4a3a719c12261067c7145d4b1186328d6cd49c50077b3b85d64dff76e5c10d846182e100eaba334eeda5087c8660fbfa6e1c6edc65e4f29356dacd0a46f554b8c8e119caa856c4038c290ea5efa0398f00da2d55508047b0bb62a0aa013767c956ac5589c318c063783328594b7fa85a075cadcf4b2af85d5abbb2251535c2862b43d3a06f81acbdbd9f0c2f6ade67c3b1da0fc06a70a29f203c6061816b11c717f342f5c58d2c46d8beb800c2ba1d82b29ea51173a37106bd1bcb3863f0a3788b33ff4b993e90afcd5dd251757ab5ce18e2d70767da2b46e3b5fa7db62582f88cb1066976bbdb743066be06645f5a3f12943164ea3b53c78527afaaa7c232a1ae2a5b844f05255f2de0121f64b205116f40cbf963a53412333804c0c12c04f7d0cfe8cd5d190b9220c65f60ef52504bad4f1c43195d50c84a0970a8161221549a02c4621f3202068ce09f34955505216d3dcc18bca6645dabab4086b4dbbd85f056a98f86b20d8886fde35140916496a665917fe4e471298b9b71cd2b3b8765b15b61667d10a61fd1d4ade44d099bc5469b5b2ba9c7d56499faa6a6eea2aba9718610b85dd5b9719742f94892a2ca2d392b8cdf2aa0817bcdf5b7d80a007aec13c00d23064007fb0470878901d0633e00dc31310074b10f59ebfdb2ea2bbdbe1f3157e9f7b988fd4aafcf47cc55fa7d2de2bd92eae33bef1551fbd5dee255c6f74f5bd65a1da5f89a51f35899959ea32633157d05a91182ee68be3c0de5e3dfdc328207ad551f414650e6a5e1fd53835761f1fb2aaf7501f1b50fb1fcf61f9e9ea3ffee04331ffd9074d7b54ca0f82a754f3b4f2f224e14dc7dd053dc0585185f5550abe8dc9dca53dc3289a80550869bb4fa95568304a99a9c4b218dd5a5dc9242e155b5c12571c55511ce0914c8ada202025921e2f15a012a67979cea143f23cc9b2ef59cc2c0434bd236181358a70c3111d92d8b4ec8075542255328d5a9b5d9adab78101547e24b81eff1df7fd7a572804f030b345aca95b27f4f9c2c55d644ce81b312dcb8af14844d62de6d7cdafffb6f552a05f832b040464ab952fe1ea28e3255fe8aa907264f55e87352524e4e60542e9ffcf3bf35a999e2c380012ea94bfe233815cfa77ef86f490a45d82165003f9cc218296a65fc75a1c3b140499d7fc5eac36b8a4c7d1f35c3e900b67aa45f15aefe4db604b42c396ac6aee662f358320a4b4247a21405a6ab6fd3a29609d42a2bdd6daa534cff37f04938d3d48c3c9bcaddf8b9884dc6f5a5b432439be48b30266f0069838d73ee98e81ffc79974ef64fc643631f6c91df0a6d69f5327c24c8d27f0b8585da92b3d51410f09405550cae152499dc0705341702835a4bd71401fbf79b8df88e0e5af11896573c5cd1c1acfedce92bc63916197575909d26e1818e2cd88b16a0e32f6d72dfdf4773f00723d76d715cea45f5ed6957b7c85d2ee2ef32305ac722cf3514782ff0220078d534b3f89fbbe3c54053fae2b8a98f7ab4470f7ef19360ccff656168edc5a72583914bda6174d07f9b720e100a3f06b3528821948c61541fd89beef1409d8ba8fd3a17383e24af2d2a2ce79476e85fe33ab565df24c633a331d2c6559df1fe4de54a4204c63e72257aa01c6c505390fcd822272b761c2daf8409e903279005316de23920b8e2de62cb4ada0510a64834aa2f20938d0dcfd446a037bc1961aa2c806f9e58f7f59ff81a23e823bb0db5d132e93b48356e7ebd6441be177f027c697319e678ef37eebdf0ea60bfe86c90de4a680b27771d3bed00e41406deb712f6966dd7c1ba217e5cb34394948ac5caf9cb8f9b0054c0db9e4b18bd41c8603e9f53f48383bed35deccbad9ef6da07afbb7d65284f8aa29019fb844f72ddafb77aea4d848fc2c17bd2f0f54e02f889c341289866640e661b7bd341f900376c09cf51e7515c5ba9a537d69e321ffbcb91f5864a1925408c3502b981b960e95bdfecd6c60acf37af9b2e43a341ed5d1ac3eea6d62ac8ae7bab490e406763ee515a6118c0201b5b53bbd5f7539f8b43892b6b1fb7c8b8901122f781be9ac4cc5e20397d29c41b7f605b2c766d9d3170e5745e0e4e8bdb0260e292477b2533732f377cf625464cfdfc59160e069a121c9bdae8df30533a063700d4dcdcb293b0e650f2b763501844d34dded7e6826a0e3d5e116e0089a7a6b839c8f117086741d208f7e659c5922fb36477f3af2077776a1d23a57ee2eeaa9a6f8c3d762001c04e1f28cc2c22539718d562c12e30e745957f3080ba95d5e6e9b85e4166fdddae6e9085558ab279cf0b1ddf81f0951cbe861ff6381336827436083869fb18f2e1486598b87ba27cc53bcf3c44427c5ad760f70d82da143a78fe95d57969e0de7eabaf41979977cfd87abb3a3f0c5cab1f136adb16bcf734bc39e9f0271c4ea62024e66dc657c3aff0134fd9a17462a20e6991e1882f2eabc97c6b12b49ffbf73905f53e0fc5c3851f408260766352f47194c1c3cd313ddfae33071ad4bed461818aebf44088fafd40a13cb469ab6ec7ac3ab8c0cc83a760939b8d1fa4c270edd549ef3562c2ad2ecf1c3167a942e75e281690365941eb67479574010c2162776e4d36ee00e1fd5db3ae9165132c948685c80b1a2570d0c3cb9a62b1f3d1947336fe1053094eb5cf455f56f4e3da3a0e51401e51d381be89fe905fab01ac829b302a8b44fc9fc3f55865afd3421644a7d09690af42242051715f681956a4fc83c4a0631a7fc5be12db6b2f8094f6a447d5003b487c21e82bee297c390a5487494cdcf57016d3fc4d48d7d2b7c8dc11a065ddf4d20ea6697932feef858df7b37b0ab28ae40ea9a64498de845a923e06d0d16a3dd1804aa8ba8d1eca1157a8c53d9f382f5b891030e76307420aae2614b1cc18b2aa6b061b62eab4d0299b0148a49ed785378ef682ebf8002c77973185b1916314c446c6148a19115b101b21d644ec017af5d06391de407a18d1ebf1bd77c47c565cd07f9f17ee3fb10bfacfc78bfb2776819e9c9b45bdf0e8dd522f1f40fcac142aa1c6e6c7e9f60a0b44803b4667f88e6b7867ae22c65b3ab7628575ecf39ae1f5326af2afc6b0f8c6fdb3d0407478cd1faaffe10ec332dd52d2ba24c50f3350684d09cf0a77c67f920494bf44c2d5ded51e55466c6df8b972f06ed734162530c324e0ed57a5abe37fc8c352d59b53f7a0aa831c769ce29f25ea096f632536efa0ea405fe5da42c2379838394422940b927f6e8d157aa127744e271af8620733e5b65d4fc1d6e78d4d9d3795c9d34c328b533663452510f1272dbb669b949a1509dd245b0543724aed593f9fabe3a85ab01ebf5935949b9b738111bbf427b04339ec82907f9807a1d29e81a3b4160cdd7921b62c90a707a1f97f0407d782ff3d12999df1e0491adec1896cce1824b7db171395d9f91a777d8187c3998f76e71f8811362c508d364311d1ac22ef2116da305667c075f94dc7887443a08170b44c16250e35b881cf1947faa8678444a7a4ab64f6284b444088b3dcfaf0d651712cdc4c89027db4639bc1e3eb4877e7b4e682afab438d780775f472eb0dc280bd0403640b51f7de96d15775547840594e14e273ef4e8d4bb6e244c4ebb64e2f9aa153b72a377d3e9c84cd0460907415e06d5eedeb981db0bcc12c818d362c96fc1368898f552ee464bdeb31900e37f4c8109d0e565ffa5940e646442cb722db9123eb828ac5679e46fba9c5b6fb4858f500612a6a1e2276403692c9dec36d0eeadfbe9f19eb09c98bf9683634eb8ceacb4c56292fc43bcea4b512529f4af92af549a9afd27d94fba5847d6a5149f62580bc40cc2725fe4afb52ea5b691f257dbd123fbeb25292355ecbed5928e85e7a30e905201446de46ff4d0379a2af40e2c355d081ab42ab3c708bc2192ccbf0c8a602a0020077e1247c672fe4d021c5e5d6ab78d8277ae2a576899f74e01f4d1456a7cbbf4127b723c7b438e7523c1b16e87e3919290fc2bab59e7fb9d301cecc796740797a8dee709fbbe8c15a68d25d69bdcd1d404e57a55e49a286a62e700c8731983061a2214c4860760512c699932840c2072a0188b144268ed8b1fd614e53469820fe0a12c633d32982c20e2c015063d40c8c70b0fcc344539390a27c2a528c31115302941d4402501c0f547ec230c601cf76acfecf14958d27a329e02edb8f67c39568b02ee7fc2b586f4a43eb6c1649546acb8486964350938c738240e5b5c942541eddbc732c0eb6cd397a920ef3e4a287a8d266ecabc224eead555689e56b89b74a2c5f4bac5562f95862ad12cbc712cbe2e66c5059341b589840389ba58e0f65c7414e770d65972d22f62d339ee1acb11da72ceb0d3a61583c34885376e93f9813888b0ac4a184eaecf111a24f0dd9141c0f38e1a16cda0829c1f5a8812f31853d1d04697c887580715fe98a604f13ca307ff06cea1aa75cee8e92ba7eb9dee594595a88c305a512c27e436e6323e43f9e0f115eca42a2769199c650366d1489e0e2d8a01a31827e0d8a4985c43b1fa0090ca0fc1e2eccf11679863e8af63231847b4ca33c64141ee4294b7a37f1314f4107e87d3241153eccee8e50869f1eccebead06d72cfa06c478360274dee1ddd77e464f703216a4005620fbf033d0106872837e518ca1ddd8a16b73eb6c3180d41cec45d38c0d2d0b1353273232d94c03f37b739ad6c740b498f8d2d5aae830444a3f008311e08f289514cda80a70be4cc641841626996edfdbd0e35604b3264111f65fe8a3514214ea67b139b8829840f90fe1b058d84b9e967ac802e3ec6b8b17e4389283bbf06b7102536fed8ed177bd857f9156243377a265d4e9696a29b2f8340287494bd5d64a01316d403bf76be64217320c6ba4ed0eb0543aeee1789377afff74ad35c27d1c6561a30b8691daba62033b7c8e7b84f5fae9f8e43a29f71f89ed80d7171df2385f4f633bf018d3d0ef991fb1d15b05e7bf03b7728e30192cf7cb1218e9160e778e1edc67b10d88ad31df2b3f46e7345ce4be1255c75b315f12fec4288c566affc22462d1613d16eaa6e5b7e730fe41620a4e059c75b7e941f20fbf8652526640138b3780b9250ff580881506e5a5ff8054b802685fbc449b776a77a37db438d7f7e4981ca85b04a0fa8894553f9c17c033fa7ce742851302e4db8939602d1d0181f4051329afd6ee5bba774d18db9a2db7607f3d2d0bd84b7646df894cdcd05679d39428d66b2db4fb4175ade400257c0386c92fb5b38e2faff13ba5f5bdd4a0400a4c047738afb5de7e22d6858d51aea15b61c5be03b7934e1117c1f9e18a4c828a8e5d95d71ee1193cb63fe3760d6303e2781c7817d7c17bc84208580bb3b7471ad5ff33888a65229586a8001b1c014d28b817a0b6598f68d1a93c301b02f3c00d5ab08950fa881bd60b75d38670711ee4e3fdd4f1fdce840c8b8f60433f70dbbbb6ae3ace1f02d8bd3cd1f0f71824bc2c619b8170ff095508442a2069ba43fa767d6214661bed3703102fb5119032375862c7368857dcb715901e78ab326a6b03e77052f177027ca02fc6c120bd3f3d300bc6ec20ee90fbec8ca25744a712d99eadcb74630f7d00406bc0c158aef0bf1bc0f6d433fada520423f45cdf83b16b96a02b123399507e2d65f5d7fbc156881465e3bc2569f132b6019b06a86aa21a9144c4fd53e6e49f076e4e9da40d80120c47ed0378e4185eb7d47db04f54ff9267efe48e2409f65ae872a403af3f7be6180fa205dd284cbb80ea7730f52b4b95d98061147d552869d411a86dc5880b27a964d2b68790d8b80d20808061a2a27c9c01206efcae9c482d1b62b63e8651988113b6e3d4cbd37b8a2343c364b42dc60001e0d02177014e087180c30f254f071a165b445c565662b80538845d9a68c857b42225b5ff1921c673f5d20d14094f571e23e75306336b54a4db01cce4eec212be41dd20e900fbea21981064c186112709c9e79b3d76cad9ec949813f8fdfa908a776604c016cda022af75d635b401852a503cae436943b928f0c909b0ad4cd4bf71265547610b92d2a12f309ce01b2d32bb3f8791899b5a369b7abc2ead6b357f038d038d84747ffb89eab1ad55703283224c1576ded256e18e2737bf2252144eebde59652a6245307062f062406ecc575e6e2ba0d3c03afe6d4a6baa8041ad1936568c42fd63a09a452dc7dd69e3af85a2781f6b4975dbbba0e6acf63188248bff08d61089eceb58d3147923dd81e796a198c28fe6c4778a622e19992e94ba6ee8371a7f28d3b7c8a2c1eeeefc9c36018a8bdd621694836f59e23dd9723b92af6f460496c4fcbb45ca5d24198034fec893b484946475d74e1afecd8b8137922ab888a9256a974efe243ce040a2969cf47849ed45e1c82c430f0157b5ae69483f6de321c8b78667bf8b10b9ea9bc951ea0bd7fda7b8fc6ed00ff629c0f284f1c96d41ef41f9fbf3efa7e8e14864301aae2cb5f20510f5f0ce2c267a8e258820b6d9ce017f850bc927cd1e8c22ab652ec7981f5e70b5fdeb4cce73d17c6a12112076a5a8ffb4c1772577bd0abb8d0952435f61a928684f45557d27ef42ea916e8421de45fafdc08f4814220fcf15eef4ac187dfab26c247d84f4df339e74bd7b48757eb72f0d73a0d1ac1a31ed2327c31978e39741c9bf6a2b3c6aeb1c698945a6703c3f0b3c8406f7f0feceee0f7df8585afc98dfedb090bedd5f787462da33d7c780491e00d17600df8f037eda471d857ae0607b4c703b8d85f0ce5695d4138e3e133c31b2729ddf72b8fd27da9d46bdd67b5195c00f845fb14a7fdca02aef632382457fb135e72b52ff5aa42fbedc997a1d52083936fea5c1846f341e5790042a3f292a3da97ba8f42adfb80b0549eafd7a0d2a9bcc6cd4e85737f1cae7153e53f48030f3ec6f99057859b3ef8b9fe917b963929cd020ab42882165a14410b2db428c2d090107eaefc8d8baee408dbc4cd83612a1c12b94dfc389a3b8f0cdbf479e032cba09eff0656a1fce0caff5c80617605945815432bcf9cf8f36f250ef2ddbc520ede13ae4b9cdf18a3bb9fde4fefa7930f39131814ffe43f58c5d54a349c3eb65ae6e483788667387dcc618bdf486823f00deb37ad4279d92c59e2da86b6174d251a3614ca8472d242e2198e392d63fae6f89676a0d7f44fc438049ed9c15e7ff92e04bee196674cf6f4db9f6c278f31614d958b98fbf52b0c2f4c150340ae690957155fb3be667dcd52f197bbfcd9531b0797705591040a27822ef6fe5b8a72f036eb36cbaf9b4ca7120da6f7194c2693dfca411e270e8738ddd4da4af64fba19f351138579abe527272ddb7d1009577ebb4f77a781d5934339de645477f696b73ce6f43c2bb5b37135dbfb472805c324e11a4d9cfef45bac281c24fab9277f8a174a91846b28e9a1548bcf95dff21b4603fb41c69036a413926dd64a12f6f3d60bba5cad568b61e4d3a8958317c5f98f7bf421fd229f088f1137826bc83771aec330de434429b85cfc00882b1d0461b4a91483bca5ae5f7c3fd87af185add832f18c5f97ae78238b1acb82489efe6b2eeea943956838bdbfe210cf70eae29fa8cbe5dd07755845a99b8d83b7e2d05e3ca131f2610e0442be7c09751846faddb0a66dfa3e70b7ae8718e6b545cbf72cf83bc9eee72e9e31fd8cfbb9ebc3de6907f9e5f4a8eef4a50e69eb90ba882b5f9a4e6f3a994e272ede58a2e1a48bfe54869394a7ce4fbe9dfc746a23ad15ddb1ac54cfb74e2c96f625aeef896b96118691ad6ea2d56a3593c662490ac995ff440c39f80f789d49e7ae96d97c9cbc9fb676e2d4b511d8822dd882ad666d5d07d91857b910f885658d40bbb0605ce95188373f7039138629fd0a1256e628751b072f4c8248a7ce5dedb1bf6cef9c8f53a9e45b74cea4bd13f7c3ded3374b3e8b45440aae7c3782615cf22b3d7225f10b49c8952aed9055a469477bf26b5f788467b42e86acfb01a577f1c7d432b03676f9fcbae7380f37bb8875ccb9528514bc8585c68cd48a0c951414d4893d994a75d332dadd3d55e05678ca75c615f9d7b4168ee59d6bf91438af10c771da3bc755fff25ba75423755afd37f7e8ee35056e851d09c1802d9802a7c305b6120d297c7c2d858f33858ff3218fcf5da123112d4369709c026d136c37613f650a1ce471ae858346600f077de0cf8a0c150e06b5273f8583421c74b5c76488a8487ee5e0114482496df35cdff48b10b84304eb4f3ba791fac86b1cfadbebae7eb929462936330ccb2836218e10b8c3924bdc9d96d96919863c90c5333c03ed22ed1c499b62946233c3b08c62d36d585a069217939707ae15911d99c5a73c736d2aa8a042b5f672dc9c1209cb8fc3b987f673bbeadcc9dd6a920dafd5bb5fe6ca324a94b932177dd19df67858467ae48b6e417de44bbe24923492afceba15225f93fd9772c4f95ca541ec275f395235c88dc4565653a35d0fd9eeeb21535774eabaaa7575874a9c9bfb49237247f22411836fe508f6171a01a8cea1cce0948800d3d0a0990fec65369de9e8e8acac70dca911da437de8cf4b95716947593aaea247321d1bbb4c67e248a469238938f9ca88b2178eab64515323576546fe62d3325916990f2c9331e1236a6439784b0230bd10a01280c5420b957275458487abacf6da6d52f78d8882542e963281cc5ca997ccb1176af39e38c83050a8b716aa732c77ab519da37135ae08ca4bae080d1a1d0d6a06d819577245503e76b400d5b995bb61d8d46a0d6a487bbd81a06f8e61e7e370d44a66ae1420b54ca65517aa7329f73574aa337a50ca416fd6653394d80fa5a3e3aa9313246a637152a81c94cef59bfb65ae1b1952d80fa583d261ddd97d54f6a0a850502a321250e98dfd64905469762b2bf9998b67ea8ca395d54a2906953bbb1946f525875a8532331d7fe95f31d9196215f51cfdb4e85016448b64d1eddf321d232b1f7b84a5e4f6eb08fddc66d2aa4359503694b9daa351772896316129d5605de6c2289555cbb603541307e98d6d29cd0ea5536fb0cc95316915ca4ee569d5ca6a6565c4faa4bcfbea91aaa475fbb7eeab42b757822a9315571dca8656ae4a29ea97fe94a39d94247bd323e4f6ca8a889596ca90a0ab42e4f67f2baedb282228154a31acdcd9a510cdc04209335bb9281c6a48bff4af50aac93a94cecb663f7fbebc5b67658625a03a67ba922bc2f291e5a550ab647c3f0bb7b2a22f7f59fd1cd9f862e44bbe52467856f7fb199c44e124925717575ffed2f2255f44358861fa295775ea905ae22a11315886b96b15ecf51f7d51ca26e53b990a97a570d9976248ddaaa17c0d5289ae568faa125050b9e01b990eacd1bf42a45528dfbfb242e13200946a6497b92a1795a865e8f7d7a26ad432b26522cf186955e5e9977e264c86868a8abecc75933ef9ea5fa11483ca8dab4ec39e727155df7255d369940b5fa77aa51afa5e2947bcd90ba09443e56e5ddd69af3f6502db52c72bc9d037fbc961997ccde6a2746e7f26396c65d5db852b37aa739902aa73745b40750ebbb732cfb4d8930945a3851a2f78c393980218e0002e20a0c5c40c037f7519001fc8809c340662a0c266208c5f01fbd1105d621110b6103f6c1b84b1695489a7219824bafc34889534089692f2b29456bad3d24294da3888edfa4d83d8987a1ac4d64c9685dda994a3c59e34fc16192dd5cdec9490cf5158296527a57448041cfec3466552b26cc6281fab4f535f7eecb6adc6fa292d33df63e90131377ba61185cdb4520d56abe4a0ac5d9a21e6c6c7b2a7512363ec56b800f1374e061720fee452608d98ca5eeb6a7bdcd9e811099e1bf43401fb02fb623ec5b626ccad9443fef69173b9f3292dfdd73732df7081353670e73cf90dfbc2727b281f0cb9b661bb09f510d569e0624fdf73813760f04c47fa7e2ed5734fb9736cd3f781ab83dfd8e9b8816d8feb8d3ee09db53dfe1e2e2c33d88bbdbd5857ca21bb68e124c11446461352613f76c91871b846ff07736100be142e7c359d13c39efbe3dbf0977e8fdc9c3c19326428a594524a291db26c394d2c324c8e65a58cfb03de22389426fb8fd6a03d8e76a1656cf0fe53a91bb822db6f1cd971de07d88426eb342162cb2cc15257dd28e103f237631d330cf6cc51cce6ca9fc15e7feefb80cdfdc17d3d5cae7f7c1ceedf8eeb4c04f39c723e1665d8d190869f32909224bc367661f83a5cc5c21d0b04e4cf9f807fec3c10df7f761e504202f17dbe07fc65c7c24cc385fdbe74f9c88d117fe147ce39d8dd4214a1bb6358dae6e12f11420af9253edc81174cae8f78230bddf85202edc58803c3c41d5bd82fe6023d72886f01bed1026b74f42e8667fcc67f178f5ba21b45156e7c99338708c2f411535cb8f3a16598e93d4f1c1866ee70d9cfded9395cc055f37b58806fdc006b4cfaf36d6acedf280771bc6e8037b2b87006ce205cf81f6b712766c3941fdff28cdff970058225b1c94e6b67e7c65ff3d75e7bc7308f91d89f30e938342dba3e7dbaecb0df4a34388639e6ef983f1331449ad086075cb590ca7f01188832f3cfb846fd21e5cc326d8799651dcd32c05e0cf4c6ab030f37ae3676d96a6cfc8f3ec09b3491ec65198832c46863835d7fc935fc69951793f47fd02b19c67f7e1cb8d8efd097b29bb22c328ccbda811bbd1443bc31ca4e0a7299d37fce87184387113af4181d0e707777ec32d09211dccfbe6073c7a68c1ea3cdc19cc2e832d092a3dbbfc265a0254297bdbb9bb9d6f638c605caf9403ffb18bbaf470c7dbe1c0f406828ede847ceb9e63e0fd8dc7eca4d976f6fc6e6645c3b9007b284a878dd0feeecb854906602d940e74e9f18ecb43779da9b7f64febcc18ca8b061b5cc0b773e9c0f5d2dc3aa9bd20f034d7173552a2f6864c89d34ded3329fafdca7652013eef495ab1c67ae3c27f6cc9751cbc4a1a396e99fdf9325762d74dbd5deb4b1e19d4054d8dc17ae776c269d63e763b3834a2c1676a79fa0e412e0f20e8c583c1dabbcb1f25d682fd674e497f82d37b2900d596766667777af91b919eef84b73f716a3bb74767608af73db27604ecafde939750e11edb9af88340bc642b5caf22cf29966eb95abaad6b1c4ce59eda52e1ff14105cd45b759a20996563ae3f2111b2637ba11ce594996d50315376662d83f6223c58d1e7fecd72b938ffd604e522a2553ed4199225326171be6c09c5ec5eb3fdb099000717319c90f49487ee0e207470748abeb52c6da32402a8ee58fd6f66c0cec4ca1915b06487c2e69adf6fa9570d45c5a90bff8c7f711c2a3a273fd831148fc21a116046387ed6441b2205990a64168102a444c6a08420873f0f5871d5966883776fdb263a9e6475f6f6f6ec89019f6d39a7299871bbf25906e76663ea10cb5f8d9f9d1f1110285cbb39dd8c51988f4aee4e2002e971ea05dd931c34420d73f966a7d81a5f8fde84a035f28945c0612327253978184865c5892016bd2644b716e0289a91a0a844f9806ac4993264d6492f6820cbbbd4629e7c4307728b87b96659ba6b9bb7bad25777737994cdba952212c33b4d6dddd4f4e5028282929100e8069102517d81feda73de8b9a4bc5c07c2320f88d073bf7f5524f087062c65c2b44113e0ddd03ce8f3036d24807a5fcbae3dcfdb6b229532d4b20842386d9e883c444c2392f4c05f0a5d62c5921b2c2982c49dd0458b61e3720bc618894ac0e250b8c225842b844460b5cb4057f4e0f24f102bf78868c4154de8c09e9090dd15460c91c2c4154314e10a10b411acf5a2b1b02b4068a0252c2b6ee035b0f532901532f020ec7619c80a1798c08a13c468851037aa228d66535daabd282c2a8c248b7284cec2ce58126d2c45b253c5125a1091a28a22b8b0322e0355018227828aba89a021c42d0807d865a0a02577bb0c14249431c1320116283f9aa01b12117537ec6e47c1c62e2c13e001268145335ffe0f9046090a602f1fd270c7d282110d0f2d18d16826b0ef978ff81084fbbd0dc2b89fbdfcc2a71938f1e304eb3290132b98cb403d46d79ef00c18146219a887e8c6677f81fd821e9f18d62931e79c514639a594724a8feece10c2ee10d81823f69bb432c56e73524ab34cd3b46d83b0a6fe562bfc0abf9e7e2b956a4abf994cf319d6d8df4e359e6cd54af4b7934a7fb0ec9151726234d350ccccbcc192e9644f66983278b7ad72f06e92ef26eb8983d756fa8385bf9d9474d874f06a727ff0c3cba5197e26118e21e285a4e68d4d9247975f16b58ad2787e49c4443bae6aa21e57cd787eff7115ca73ea79e55b0cf6fa49c0328d24c46f926cf8bba8556ee3cedfae66d2af1e6a22dfe1f8b5a87ccacb207fe993ad268e65a864b5542baaa6540e75255784a564e5108f7ca1625a9a8dbf645946e462ad3ac733eacc9c83190767adce356a084a27a351310e5ee75c1342ad7067ac885c65fd057eca08a912a5703152ce7aaacec58b615996b9ba9d9337c5d52097bfd0f8564e7b44e8d421350991f695ebf0e0589597bf0cb5d6c91746378d9eba6e6fd7d65116b5ab0b9f66285b9ddbae894b294a313a424acaa1a81f948ebff4b05644503c947229af94a194a214a394a37ee927c275502cd40e4a073504a5532fa710a1a4b2ada56a1cbcf0a254e74a9415e379ffa99494dd478dc44c9b89235f92c828f562985a6bddc287c96d8f0692d16ba828488ed4a518952b47dcce36adbd7626ed4da59afaa68d0681351bfdc96da8c91a63b2b46f2982f25bab946a309e6971ee7403ab127bad51c9e7ee6e4db3e4ee1e774c3b29539d3a974d4a2c7ce97eaaf36713a0bbadbe3133a3b2f9454af5f90556e37feeee9c9473650393024d192977776698e8ee6e9ae2996d8cee9e62c2ccd2db68cc68161a2d3c04999638ebf2b3b87b0b0b8d19a9951613005ac0d009763875601bfe1cc376bf77145b7743ef5396b68dee768163da4bda68cbf0ec98518609923fa88f8dcf3dea8531c6ea83197b8ec0c6199699ffc118e34b2c62736233e5f66ba32dc32c71c090d0348585cfdf360cc31e7b88c5332a4008fba88b2e84f05ba855588e7cf81dd4558e6bad12a7c74180c333323ed69384b18eba0fdb29c25643dd87e974776f51cae949dad131fd308c8cdedddddddddd1d1bf6074e391815ecc295a32e4c1f6ba3bdfe98e799167fc833f2b71fe0a6a30607c4a0f5c2101ba3bde0020c2ff04c0ebed8f76fdc0e1b6ec8c6b0367c5462bf66bf4108ab03f6395ac3b17fb34e6b1b68e3420a326a11fdbc6c7e705a3aae9f6f790e19320ed7381d5668d2a4c9cd7ec8796797b250b09f3db236b48cbcfd37207110101446ad1d2d637780737b82e89ff2abb0090f882c1c1b082e9d0e5ec08463a375a9064f798513946a8a97a48beb575cefc18f14455c976209b705239aee21a80dc2c8de068c0c3a4c929fdbdf71051f82e031d2387549322406c1fa6520279070d04412fe8bcf9739726d276c467262f563e1e2c0ba1db6528e314e198d9040ea45688f6018383242115c704194051334fec5f5ff520f4ea67ee681086e7f89ba4dbd8301a424894aaea51a197f1b401448a8e9ee564012382e60828916467c68da0ba02808757777c794eb2dd7efe78224e73a12d675244dae473185f73894d4a007c80b253c8187c68dc6786136ee578f0041c511d7ed9fef831625ffeaed29805e404025b8fdd136a93531b68c0a3b38bafd4da909a8890e34c76285db96052700e222f162c10f3f2f1802870645dc2246403b48727772fc85afb4a9a0d64e464404c30648467a7a68406b05c403a11bc8e0c6cb403c08badf8f415d60610d3ada6b46f2fa6fbff7c22a1ded4ac0ed21dcfe6a5a818d3d36c030fd3a5cc501f8d2df90044308e2f6c31e3619bb0bf0688f26613f7afb3356414ea5f8e4c473b0b1cbd741a5aea6155879f9bdde60ea022279ab955c7f0cb26c4e5776dbdc3ed2ad560201a699dd0e1ba02a7b7e17a8ca3a98d42f2e033b21d79fa18a766e5a81f58b746d60187f6620a48dc892f325a50d6d6c6c6e7f773ee0b581614a94b29a5c48a43d67318cff12fce29f24058575c23f7b59b80357ed5118d80fb258ddd9abfd6912d6df863b3b3bfb90c1def9b186e81089eb23fefed11dbe3f6415ec20d91b9218838585df83fbd9181f6812762486194228828eb475f0066cf41a76d6ba4afe74c1acf77d7bfd5e04e769e84bae08fda6d633316cec28773cc432fc23360cc0cf3aa4813d3229ae66967ab03cc3337ebbbb3ff6e2b6f4c12d0efaf4c0d6651efed25d0e1136c8426f77fcc4c62e6ceac2f6f37fd0e7c2873e3b782ee578070ef079b4cce9c287395087d5c3e7e642222e64e63c05798e5cbe5f8a69b4236c77963bca39f0c77d00bb6dbb942e3dbc0b5dae57c3028c5e7b2de59c2e5dda6bb9d05f5a232289acb6d3692bb0dc3a2c3198e1534aa503daeb4f3e773b24c743f2688f5f9ac78e1d38f068dec1a3061d2d2401f63c4aad4da5d8288aade95323ec676f373c4232a147ab6d082c6018850e2374c8312b1b404a5cf0d3c3c4fda8110823f37f0c0b2ce0c4987c84b64b0389e5a0c669d8419bc9cd39e7843836ddb354339da61fe2340f9b96f1225e94ca29e30ddd7e849f3ff187cf3f97bdc62d94bee4049ec4c6e2cf299ceaac11ffff0391d8f800d623c6d8a454c69f54d2965376de7fc7b80a7eb7d00bde28c11b3cb3c233f17a92eb9ec5750845edc2c68734fe38f068191fe2630bbb54e3433ef6db9c33fe609434234b9f9661201f21d74fd71f12c1a356c12072809ef0b9eeba813f29b81f7c5d0ff229723f58d4bafeec1fa12cd578c336cd239776df5f1c9a478ff63cfb94675cca5ffcb5236cecac7dfd20db2208061d2e3a70e8f8d1012594ac03070c3f3860d0814387f75f0c0cab18d8c4df9905c8ded5c02fa5ec209450be0d104aff7615a4f9cb5e0d6c0d2d03df054612509ab1570a9aa7a8448ed535412911cd000000009314000028100a07c482c16824cc1359f40314000d83964270529b0bc32cca5114850c31c618000000c00018909199c170008d97b0441567ef1c7b43755b95a29de6a172e6a2f831c643b74721c1986b11353e2be00f0c69528083a85713b6904cc0d7ed5171f7f0b48672f0ce37d68a0c25d8ed6ddf3fff2c0d0a2150107cb711c1da04c86fcfb253b65f8acfc80341026921112113423ce02e9c1510054837c02894495413dcc0fe02b1a2cfe0dbf995e523ea0544b9f1935e0b9aa031ff7903f9808e1f666f5a1784899b9e9cb74f96a7194d2985714cd85668ed21c2c5e2278a2f60cbdd428d4a52029f5641181df81f231fd75985e891202548e70b6a73b1447049bcc9ee2efb635e6eae891bf0a31b8647be9d4c053bc50b1026730f3df8b01e4d7c772c2b2e40ca87aa6d6c75cd21bedccc4b2aa3d6491a2535ac84dac961b23bee31033063a5230e0674260eb1cfb98649e15a9e10606bcb12076108985081cb7934cc38220985130be5b8449e59359155ceaf257342550b860707cc25630888727f0ac8a8f7de907bf03a67658fcc98c1e12519b669de7b530284ad2ef3314d0409a23af84866877e8bbfc783a5abb643e329868ac49d36126235365d10837e91dd19bd359b1c9d6e36da98f4cf7719aacc41eb5f0c4a01c906d4b7e72b4be2e66c04acd21f1afb5217152c35fbbd1e08e8053fb1cc9ccfc2bd876ff25a60395ee7df332414325a793552d44e626b8cd607b625dc3241fc0ace7ed8c353d8d1abf508bf952821d5c035f79f3276bcb5708feaab32b28db196300825941b7ae122937dd3f236bee696d2a6b90d2b01bb05a7ce5cfe87881c230e4157517833fb4bab7592ae9c08405eee2adc468f7cfda227fd159840f35ed37147636c8863ed6047bd16faea5d9ff37f7918875d9fe69c918442f7e89fe7f06db9ffe6ec8681d0b24c94ab56dfdd98f77acb0fc8616ccdb292e237fec6ccb4384c69773cfadf5085fc7cc919b4c7da4e651d6467cca4e3f84bb5ee2af393b1a3b7a53ccd2dd9b1866840cb51a976e5e7d997ec1e455715b78502538d30f1d6a95df1decc67880261d18f941a60ff73cb80a536d7bb066610e82fb88fc4ea3e499a59f40d5040cfd90c58aaf8460a2f33a49c2bdd192c04730caae4bcbcfdc0b22278c58ffeaea745d96fac4ebac160f15d6c9f0120727a0ba745278c18dd696efd6c5e74f91b112774523ff42769132bc9734625f1371c4d3e55e262663effe6f77667cadc469b49fe69c867ff394594a8cc4108296e6bf4eb58b68c44045c9747b36c3aa42e7f6169a09c67e5c8d285d5f399eaf341c18c1592342e90052a71e29b3c7cf197316958d8cea83634846f2889d02c05df2827f125c2c69229cdab22e21b4e4df4e2086de672fbfd2393330a72b1f3d6850dd97745b1eeef88d47942009a776f50d23bec637264a1bc3988aa3b340e083cf71b79c8c3a55ce7860fecea02c2f2100361fd7602660d7073d18e14420f38367012cd7f3b2088de8220ece91df0ee4dc72727ba6a0fc2f214650f014880d24f06c33816045a4a79a926389b162b7865a85805169a6b0e5ee682a42246d9ad2a88c0c36bae3dae294b46c98ea251a21c22991a247854544568e9a9646bd0381a44282a990e183173d9d8428dd381d56441d1c4a813ce54bf81c3c4286fcd6314936d8bed154e107746f43ca55ef4211131cc78dc8e744f4c30f47182fc84c505717c41c64d3abc033d14e5eb33a35d4a07189233a602a311b0f388626acc0c1765f93483ffe8c5db10aea0f7f408d4f8a3b95be5c8349ec6845e9814ab8441d7bf585cbd904ffd93ea3168055ac75b73c59e027b26ec7795b1b40faaa1622a7e96d0d8f54e0205858e0c79d364ebb9315edd2d49438c950a16f1f981568c7767e3ee229cb6b7a8087b0f42849e0af5d3e8e193fb03557a1d5666f47ac80c8a423d8dd3ac1f0fe5c6ee88f006906879b732110b5ec6b96ff13087528d7a79cfcf010ee353088b048887fb0506926f9642b8f115a96a8efd87ab81206daca777bd94e860702c5669d1409f301ac89ee2ac05b48c595d82dbc5b69ab8b08bf2409d930dbcea26c1ee3047679f15342e53bf27682dfc9e38a09b8dfb9ef096e246889410030bb605149ec0d7abff07dcc5f13a8d6182e2be4a00538047e9c31332c7abb5b4c62f2a8616005b8c494f56e22a9f2362ac68c2140e2fc71c8e16779ed0b1d93e1095cfb11e2ec6800134bb275b2003ad447cb846466efe0fc606127344bea6b9738e27ac9d0f205c485c78be8a5f3f7272af7dab0ac2b6ee2173e708ddab43672eeb034afdff9da8fa5a8daad3b653ebbdfc66d61e274d099b20914fdb22fb9d611f632a0ab8f20e03ebf5e5b58ba5e4b8060a0855e45fc67b99fef285b14aa79374fce07abf352c7d937dd63a29520364f8c591a3f216b454094796757268ea079351729097a0e883008b54da05aca8e083f458d23ec2e344cb4dac32c06c2d2808fd063d252c37ee012f64d3b13ad43f6aff054544f78f251ebcbf54b4d40d65ae0f85c5bcca97cec57cbfbf85c98b1a6ca50d51287428ac7e34b1995f36577adc4ba2cd96b0885ec33992d0931d021869c46d45aeaf961e0fbd7229c68aa80e1f21b9cbd99d2524b08f7581fbfa5cfd0b786dd7939e09e18a0a006eee177692a64a8f4f8c49209096deab1818ddd784959feff62e0d83353bc6a026b8600979a43b6d569dd4e84109e8f04ca053cbceb794f84085e003222d95a2ad7005752c23039eac82897a030eb10d62a8a6d328e8f5433780d6df949d81a7cb317bfd88d7fc49d86102e41efb43fe2e90169a48f486c52a7bd43b3d407dbff576eef76b6d88fc62f30cbb01ba27c5003bec04f736fefc4857f96cd0fb4ec411ff41449c100b2c966bac1ccd3f3a319da397b2a2136c830718ee0f1a487c850cc151a95221c502426e22fe8db8f9cd15d71096934ae6cd9cd3c89ea7cbac520e88a2d78bc3be9ab750708d3ca2d081b8d28fa234e46f0c57b63cd521769402c895429ed4378605b50b2f696e51c080e8f900731955f1487b60e07935aaa7dc724bd65184843d709e680dac428da26a13e524fa22fd8d2018b551283a3756c3d5c2de11cb3563cd1668868742f6d22c25fdf9d99798bbda63e14d068b44a9fb41ca89bd2aecb5eaa0abf0d280112544a1f5f8f4f09f086bdc5a91024d5b8d254e55cbce75a0e71a347d5a8a826248ab47341c6b24e631722fd4f0885e3da0aab2004c4ae5ce38661a9977c56ad3e4880534c4eaa48c09f90839bf7615831e4a3182d761fe68df2701ead18527f7b1bd6a537aabd074eeff715a6ea7c4170ee55516ccc44d95f442a3fc938599b887125f90e483a92d5d23669ed50c2c26b9848f9f806c2890b0d0582b016bd6c0ec0651acdf8bc7db3d238326a26ca12ac17baf895646dffa0643258f07c8fc3b81fe4056681ad41d58bc1e521facb8344fb8af879d7ca97ad2912c02d147eb14753e35ca5744678c20db0031a8c1386cbb1467e03de039d2f1fb6f9f0be050141956d64fe92353595f7432742e516aa0dcd7638eb75ce6b6e5a7391045dc14ebfc9b965bcb03605d3c3076e41c90b2be71f377cc08b714ab18d1f13d7b917069132e0e9673a719c189426765fc0163cf08ab90bf968d567d136c4e6502808a4e29ae3c08ac4ebea393ffdd0c28fba656e7cee464be8781e72c7acdb169aeca621decbfb8c5450e1cebffc488718897c4909da3a2806b7b9e03cbb23b6a5468c2e2fe569de91f2ee948a2a5ae7b2155d796c6268c8f262a5839f7e2fe2dd96b5d1871b575f704bb00ae293a3a223507780ae241c09e09fd50d2daf0f4910578ef11c0ce7b3db92e4e1b70012c20c4ad1fbfb7b326e07e8c1a4a93e8872344d92b4455e8c2badb0fac5dbe63fdcf8cb3a5ce48359f6b8714c3668c94c43ccfef4931c0b60603272d085538be4e26c174a030b6b545eb3eb19b6dab520d0fc6ab653a7160ed1cbd32d4e63cc4714d6a825c20fcbc12274b87b0f3d4a40af9db2abf70b626ca0f28cbe072f3087c374d98b71d5d8cee91a870871f0c34bb8ad022e809aeb320a4e7aadf80a0ca0d3afd21740b2c3b5640ed01404917f029cf7c636c84500aaf4adb8084fc938fcd6d195a2515a6f5723ce742096314db8e3a0196e91b19ae4ade9cb0a859ce3786f8fad030c374b4c58286194c1f64a4bacd4709eb822d8fa5fb8dfeb6839eb6c50b71928d4c4494fc69b8d36b7085d2586d6d681597862ca34ad540ce94a4e436ba7f9d735bbf185b04f8d075fc04995222b0f560c186a4228a7da97117aa47199919765fa2c402f5fd177e486811b2530d46a838da6990e0e97e42b195aab10209690939239374126f8b93c7c23040e2d9c02bdd8c0c46d82a1a188271191ffbaaf89c3a097f4d801571c9732ff59218c40fbc1438cb10e94423760c42eab778037593e5f9d71380f4b9638a6e3bb4f59c797ea148ddef3c9233e3bb213969bbb38676d651f553e77bf586688b5ad6a35aedcda17d34e5d3dfdb64d692a0150476f5ae859a8447cfb44940e6d805396610815043ae41b1ad124f5a53028f4cfccc538d04a9e2a7a1ac2b075c708c42b7f948ef059cebf20b883383a6883284be513fc9d60083a3ffeec9ff4bcea1bc3e2ef1c892aa660c1d14211187c7f0409c3cf0a0c8da771003d83ef74da4f05886a497e4813000e99031a6ad294046622a327d6a11813621c995aca5f4c1be1f10bc9784e153a83e716869a01efa885ba0e38fa90f4e9538487d4c02d0c835c1cc714defa17b389a08bc14b23ee8a7bdc8ccb6dd5fcc800de203a22bfb2327e3cb91b8f68cac9f876784bfa0fa51966bac46e57c58a35af08bff7c5064738a05de65b3126fb2b571e5cd37df149cd30be1a06f8e977fd4dacab56aaa34e45a4b91442fb98a45544c4bd004d00027ca810d8f2cc553e384a3b5a04435809aec2505ded89cf4260ff1987cb6fb6bc7a74041ca9a8b483a3f19a1dcfc728c3ba2a402715db5c82f999120b27190da4fb8ff0e9289aadc729c47074aa3776613405c3a77f35a8c4def20ad04b99d1d8a0043b5cae2048ab70325ac1d089d201a7bc17a6587acd0cb379381a8f436d516be11df71b636e59f1b9cb3bf740353bd74e8b674f99bcae6cce28d8ecbc4fd22f102bda363ca42e6cecaac66336cce6cc93ad97f30f84634f42c02b0c382b7b27e311a4d867c7b2ad893c4373a64584c506ab3b66739252ac9e2461499e628da210c5d1418e8cdb83330346ee339695b420c058028e869094cb88bf881e132b07fc651d79b652ea0bd93f85c594689f8abeabdfb26c96da33a0d3c3fca6b4f84cc9a07bdfacc6a79fd5e738d63128aa766351c7192a4e6753b65c4e72169f0a26715bf4cb31e6c39103ab5d31888dcd3840e4f43c2cdc8b7dae09eb8ebdc2b65fd33e595a681e032c6de90b484aca33ca2a4f26b0bac576506e3b4440636ad2c18feb6da73d87634bf3172d206043b288fa1c8abdfdf720d70e65b06a76beb46385cca3575010a028e531ef66b7a212d2f2837940735bde685ad6d881aa1d4666e0dd9bc2f01a7a64755e9d11d0212831ea00b25bd5d03ebafbb1fa8a79e353e3396ecaab6810414c6a384abe1bb01607e4686b33217c46c19fcc84980e2b0d248ecc23be550302b575a4446362b2d6d94ead252ec686efa3618c29a3cd6b953ad032facca1c239ca44b7e89555135be39761b449292b887d72f59246ab5ad5813f43e9fa3aa0fe48a1c7703ba12a1a57710d9ae6c106199e215f0a291bd2c768f585a983b3ff4c9900187a19c5d854cc0d29edce21874629250080a4c63b817142d8e7e7f550c44c5eedf476513a381891511fb5702008044a8399b1733637091374fbdd14653061a7274c96178c4705c521acc90d1e8f49d4468d7bd0e95f6b92a81225ab84fa942dd733c0189a5d14fefd4c7a8d2004bd8d7b5662b6d57b7379425156bd10c38d9aef741ee5cf9971ab444bb86acde7660dd4accc4c2640a5ce26cf288c248ad4280f9c28444c46bf1790264c8f0cc24f35ed56d2e0c0506e90d1d33329625fc9c2d6178d8f4a48944384e1b3b2a347e65cc0f4b85d4f8e43283c4fa5f40420c99cf22a7057c982dfa80606710e0757152c53df13f423b54d72af59b84ed75da8d0c55631475d30d38b1d5031cb089fba2636bda96f2bba85aa2635fd11566b6084e14014545d2279473645b7c7c4e015a7990ce44f43d8e358648849b2fae09d1e61c8dd4f7863f68f03f7794f9117b7ca37e455a5d5d8a23d643c9af47505e46e0494194d811285f4be94daf555166474d85507a8ab4eca05ac2e8ea3671116c9f06862f84f93067f9fbf68dc3b97b368232021e9fc4725959b4dbdf930b9d0fcfc5fa8aa32bcf3ce49ae2df16f467c0600d2555624687c25e05ca4d28c3f70f6d939b8080307c2625963983c221933b53b1cd6467f09ba943e3256f3a29f33eba49945b830be279e5a9b5af35575cf36b8d936cdfd741a96bca195446b6d7ca68caf6addbfdf09236d6e05a64f5d776337c2754f3c4d8ab090d45f326cd78334cbb1dea4bec01f16d61baf61e46aba470b7ce39fac8cf43f70c1288df1b8c8f144ec417ef7cb53d65db74e401d886d503decc37001bcd26667217ac1ce2abf7096550a83f524b8f30213f29f2fd19f96ac8aeec7729bbcdf9aa5b88a1ac5c6037c35364a1e8451a2701b17bd7fde7b0cb055abae3689133d660230b158b80bc52d1506bc07e144c0072701d3015ba2b07711a48b3a1d0371e0086cc24a52a121c10b7ef4c31d4fcf936300e2bf6fe4c87209ea7f843025978f4cf91b9b0071c24b3153ab66851238564c44e00147a5c6244926af4f8d40aa82019be6d3b81f02f1f894ad395499882a9d8776edb939f31674c34eb4d09879cfb173f797b6b7c7bacd656034cd1ba36f88754416a7000200cf002d123991c9d740430c5de91d923b58bd2cb98db89ddad14a72f1fa79bf7b762860d6da4c0c4172b41c685c90ac04b386700168a347472c4ceca3dbce0c9fdf94d3a6f753da4a857cb20de2aa85db82ccec11623a840aa97fcc3d275b2dcc164f044b9e49b7665fba63e9ceaba70f8201c1ba7635f6c8c32727e0d3b40e686da6eecf854b8cb880a4ce664a1f46f165ae817e87b43a976ed60afb204a8feef303d36740bb15f676d7559d5ceb95d74920eb6734407a9aa34d095155c47acdc75bfdf0b2c3186fa88318fb50d0c506d005aba4e72e4dbcb7a57231df80e8da71825e5896b70cb77c9d3f63b7f0a3462775a0e22032893e2145520067e1e84b1c4af5f0a20cc10f0b13a22c0b5ea314559dd19e9509f2502107a9910fc77d09b62b8c0bf80d63e732a62d55211b20518fa1ec1aa529470ce6863c8424867828bd7846b388481749204cca9650815beefcc49c2e13040c6fa583597f5a65d4f7280989557a665ffc6905ddd7693603a35f96e8a458113dcfdb3c71718ad7f3b4d1c0f266683730abbe07992aa15d685ac58278a908704e2c52111b58d496961cca83ef42f00ec9a92b25d0c69dac9eee0454efd293008b0743899bfe39df63de36f74bc1f16bca3cf43941220bc7113b8519fc5e8597c54f0f69d1c54bdde103c4108687877c570575e1dab9b4650d44fba5b199698c2a572bd29630671a1624f9f0fc70b84411eba3a309949c85ed37d0dc653eeeb4232c9b913f34024afb16098cf8afd9717e142d023279059f00fe8698540bbf430bcc48a6f20d3d7fe8d6d9d5acc86b716b16381704ebba24915f896eb653f50622c065b8c3fb28c6c1775e55034ed64a88dbb596119d81bbf3bbc65c3042289e7b3d2be950a32e836c9a16b3d5dcf484c60b23ebd5d24748bb7d3fc6238688e877b3be5e0b72bcb8de85b3ef1346d915d22d82f4da72818b68a7941e5ccdbe1e34646eb665cfd4eb7e8083eceb4de6914edeb7447b4fd313ff2e1274e492bb7b6e188e02fb4e81ee5289a26965459cc6217562e11c134922adbc39b82bfde652aa8c079080e653a31b9ac3a578810cb5616bf6c9fc9f5b41e36ed5da08a88283a5013327df99dd66eb72c14176daf40e3201587548e9fdde21fdcd4abd61454665db8ade3113e852044dc5ac9b2e79cf2abb551a6142ac24a34ca54e17d64a13ff71cfcb854508e6c4322594aa9575106e1b8a1ef13d2941eab6d3204671849d6442e81a6bc26d917cb4440ead4bf3b3ce682e9f98f63f8ecfdac1bb48ff8b4e26e77fb48b5d31b78e8e91e3e19bfa97030eefe89a6776696c5c769799352d207b38760e2520a9397a33d24b43eaee3ba0398b73274ca5c7036139e1865df29c9e7b227521fd70f5e90556e62028771780bcad5305efe8ac9bbb29027a0390db89db58bdbb08b7baf17a4bd3381ddfe6ce8daf5bd772980662dfced47a4918bb373b2b082b740074b93aa1d5f44d0eeab235db1c86f35d537a12c82a70a29d65036a38bd011d2332cd4d10550dfc643347680cfcca52c0633ca92e565cad16644abbbe3f6572da62145751796846b64633838c83bf9c8a659de67aa202c04e54a39e5ffb47c72962aac91c8b432af7420d9fd57ad2dfbe328afb25ead1e4d4dfbdf56d1722cc7b226c3694cfda7ad4320c3a28b64d28a933f5d31b1448d007e1b047a7bf85321f542471e47b152c09ae3687846267d9d5b0e3d9a573491f0e2d6923618635dffcf7563a7ae7fe90a3e88e5acbc9c450400c3c84548752d4073104886091556101ff633c4ec6313906e2aaa8fc11600ef156b12e064133422d415d942e964cf4c0525e496d7dd65b02e32f9e1663cd316c0900bbc943898c0beaff75bd6cc8d3abf338b0597d8ca8429c4d79aec463077c65d996f508f2008bfe613a4faeb84ea0381091298d051fa516901e01ba1c4c1761b8214ab95e445905726cf4d8c15ff1eca11845bc1903b1674a7762000008e15f773c7c34e8427aef9f53a33d29e46820e92a835fd09b0f66b83c5ac0c890b2178f1900bceeb883a10f0da7194483be15903ef90d7a82d6ab93ee8156d12d458e3096056378ec70b03a75af4addc7d1c10c611280ded7a690016d10f073343a73d0d12e82e0c8a98312a1f5edac705db749b8b1150ce2b39e2d4811942eb753df390db9c49039e62381a36a71817a57d400c28a7d07a9d2993ef9935ba0eb0152801a69f1b4ccc32714c610720fccac4a2ac25c9dcd9cb4264a087ddd33ab992b9f9321f12e9baa7c00c29328ddf531ec928e3dc2e4a37fb5e21d23ebcc19a3aad2353a523dc1832534c38ff674013350dc6ff7f8bd03b31caea671437837ecd4004303dbe56e4efddc605770188333281683d4c4f56936cfcd2cb80c58a759dacb3510d5960fa837a0e0d11dc0939a1c5da005e5c1c8c4ef0f72ab1898d20d25d7d0b60711ccc8e8c348cc8fbd5b9706feccf1223603637a85f8ed9f20201c1e738b551c7f55c225a4de6a2825a34c88003d0c2c70294f6cce8e18e14da9b7ec466a0e193f8d09314e94500fbd401fb599d5c90844aa6b6250331dc9b0c8524d0dbabaab865e504c8562e206df315e2b7a38887bd814036230833723e337955574f11eaddddde2419442793175ec2564cd3ae92243f97837cc7ad2cc938480f4eef0646816151eb3b61cd65222b503b268c20c1d00f1eeb3fc5079c9361dcb8f2a7173d51732db971aaeea6fd84a4f7356d002fe016fa78c7f079af838bce590335165152a44f6c0e88f885b9cbbdd2c244c22c3a4676c6f913405dfd5b9b9d958741f5b3791ffb1987ab414317a1109114d46e52b6575046742ce660620d3808dc21e2c5f97c99afa4a485e9b23c918ad93f079299651ac9a08753b0793748d548f8bdf50e51d1986fe30c6993fc7c70cbb3f5419cea5a2799285351993de9879574ea92f616764219405487e8c374fc3bb2481254e27ac7aca9de08adb6a665b2b81ebad14b8fa5e926894b547a43ad6774f777d4a473f259902b4d7559808ee37e51a032db6c8b555e19b8cd204267a44e308de1b9fac8aeb9215e8fa7e2b4d2b4754bfe39cfa52168c8bc75a0776cef948edcd62d1cc1dd27102e4f9685cda74126fa4d599914f2a7968fa497a277dd63f0a606ad742f6709c0237bf3e2c20750aa6c7639e8c8163250e2db9a3d3e63dc491f6f5dbfd5f2efdcccbef62a1e409125c8e5a96e8b7fdd583dad833c35aa80a4831e64cbd383055230fe9090e6e7087d1206c5e24ca6f5b3006abf962cfafadc467a5e59f868397acda42025ac69bb7d65f8dbbd76a6c58cd9c77ae0ca75e720650fafb93fb78f949ef3648bceb233d1bf46925d28e808706f276302a78731157dceed6ebd7275c6495f28ae10238149f17217f60ba90e3bc25c993f83236296b02be867bb117a93c7180c7c69dfbcc9be28ef020e4f5ece0121ab3dca1fa170c89e428546aa1dbe82b97f820fa4c14fe0b28140e6d1bd97b9e4d9d04020b1df269c846417c0817c9294740d5e65a4a5830c7fae7ad65791d40d02c89084882409892ed8f698d0243e6fd0294aa001b37e0d33d0905d293055f2aadf8b61d4e1645678b309d4197e0f7ef950b2e3df400f73b12056f8f9a67ae28532111849e6f9d6c50277c53bc861186f833e9504072a56cd0d519858cc5ae862217f0c288c353a91e75c60ccf9a0e9ab3675a885f8709cdf16dd003e65cba030b7d1b110e82ca7e716a3472f1917c62e4e020fbb6eb72303bd7027c4accbef5e8773dfc4a51b2f314b7278e0a8ec71b473777554eef78c10645899fdd6ac6eee948a6704729210a5d6a3b48c3c80996f43facf9f65892ac75c7fb8b7e05e3993be44b0dca227cf5877c8ad1af02edad0fe129e1340e045b6c54eed8849e58f7bbbaa380e659aac951b0fbd023b735dc3ac9e039d9ce40d1ce9648820269cd1944afba41fd18c05613dc1ab15f06e19c50b1e40dd5ad06b7fb8a3f8eb9cc41ccda03fef452a01cf599534275e811fba48cb99156b2d31bf03f15d6eb4a5117a6f9d653d9f6bfab641716f3c678f307f2cb0cf780536d93d27693bb68d1fa0ad4f69798f3ab130e6c195a1772486379493ececae6c0f5acfdb25232e0e9e890c5b140eea5f10c96e46d15d57d222f5d338b7b009cdcdb71eacc2e55a7218022d60b1a41729c649c6f26c229e27cb1797b0d47b14fb99d75a9886cc707151480fcaaf3e7c600bc4b6ab45b05eb958c9e501ebcd06d7d95b87a0545f617e3dacbdcf6dbdf11481b38046f4ea378411d8f29e420103cc65ed35e3b5082e2055f10eaad188e8eb4cde1e5e20f3fa58244d1355ee0ea3632ca714e4a6c5989685120543dd9a1e02e8440ac1a667f940c6a9753b2ac11b7b21a85fe1c2137c21b1a539b54462bbc846411c27dc840b6a2b6ab7c34289786cfcd443565fca4f4bdf3ec27a0639c92d7ef12463ea2884049d14203a04e84237bcf458d96e1709859d6338c8a00c1d25ce083a44a59ee82049d09ea9c541d81a13b9ecf3627b5a701199dc2b627c26de19eacb6c0837fc8b5b392991eff97ea23858670dcf64546bae66c74cbbadad9a5b1b4038f8a01f8143ee689933fb7d2cbc0faa634bf8cb84707b28d1b205f2da39abad5321c53511643b8e299473a0ba7c91bcd5646a0d40f7855860481b72a4ca7af487ade4da5c2767f652b7e2b0b3ca6c4b86937d582e12d1ec3a9e87c3a571813559297360f356b26599c01ff7a3d66890377ad8db401807422d751dd3e76c070259ce91e458731c2fdd9ebbf29d024bc18edd730abbf6a4cdda01b49290d62bcebae5edbfad8df708690277ba138fb722d57f4ac862c91a66c0caa27586102c36e66a3bfb03793605b932c9eeec24f9d4e3a196f388a30cc6d9819e34ce778f3c204112d6bac1aad1d9b56f99d861abac60abc8b46cacd4e47b63ba3edb5ac1c82608624db01852dc5a92a843bdb6c44bcb586bad3d778a3607d18ed7384d2ef18e17f8aa0d4e55949bb7b3ba0ca8bacba51a085191b3fa6e534dc5a7c1662f05a56899db19833f2ed892315fa256dc312116ffd162c8031ca9d2e9641c6f8298f37ae429dd0606e84d3831dc6637a1154cb059337abd40e804ae6844a5ca77730f1864e71c0720adf0e752cb8a076ed187889b7359db43ebac8d94396eff9a084f15b086cf08f5ff9d4a0544b81d07660a6ffde7bad410ca84487b9b201d54ac86343d510f2a80bfa51183699b11f3e824c75e9f7a402bd49a5f635ccf71106578acec351b41108464cf299f618728e50c485e19568fe3c578fed4057151985ed058e7c44e5c9017065294fbe47528bee0a0cc2ce4a93a278d93bc4fb29a77f08d1e7a8550ff4509758dd25eb9d69348bf7f1e4a62afa31d114d91771e8a9fc56cc87805c3b6aadf0f543b21075162da02a047d622e19e5f4b45df251ce4a9cce4dacd3ae80a3f8e505706e833c35d59cd3a0c4af9a45e8e8c591961945332931fac003c8b8653a712c82c034478d65cc114169041b42f8783b815e019dc6c4439c11390805481af2d150deda84a52882ce2711d7fca5079930e07a6dad3b6a692c549712d8ae304c3484c97cfe97fe40038d63ae7883fe433afa421170302d3e3f05d43231981049d17d22d4128829392b482a4d066ec78072c07448e443237c8e180cc30d93f30c22079ec748264422a2d33d1ae5147b054ac1004d645970a111c09bb596bd01ce04c4bd35a185e15aba52afc96f10a713b65b29238b86e3f9e8277756b64c8c4838fc02c368e8e392fe7debb184a067fe992fff5aef487a64be32da0ddf334bfcdfd4049da03272fb35585b077a750c1976e1df1f90bafb29acd7a40de40a91cc71654628086b3a05ae22b4c2cd2d35733ff08b8c3bcadf589fa3fcce38caaec2dd1ec910877e9b894d452bb8054d3d246ba99829ff5b0099c2757c23ed5564c72df02f2824c9d3e60b551c5dccb07bd9b4f94d3ae451a33292e3bba8bd4852de107cd6ba01daaf8f45c928a777445b92a5dd5aaaa8d721192fc53645685060ada14282a9a236224c27c8036cd4491fe4a641a62593ba91b4001ed8d705726049edcb2c50c0ec6664bd67deffb98549f27636811c17fa65951345da13ab46bf37608d4cada603edad23373a28e89b1406c051057918e9816d9b42f88817eb7504797dab8b42b910b48f2225438f48acf2b21c6c415cad861d4b9ce6c9ccb579101ee14b5568245326ec43226808ed9d6c05ed13ac87c774770e7d59d44c2dcc2392db1c1920050d084638230fc948a8f33cc927766921b4cab1b98518e079929996a72b582887e19c06a669beb26b5374c8841d10ff40d0b947504c17b406f112241cd68d7e3053bf8a4ae4b1fe2fdc1ba293daf012a96f8d40c7deaa8f356390f076fa774dccac6354d1e7e5ab0a3c770899f486dd0133ce08f511d9a1bbabc5b6d1a8b41dd31bb8f1360d2842336496baa93e894470ca98371640ca4683252e09bdeb5bd74a979dd59b0d2857923a6693522d86560d13d345cd80f9de7c09ae239371766b9651c5047c9507b4ba86476c574ca5ccc6d9d187bd17942ec3c4530450c3bef3143beafec57af245d5822d483ecd1cb0b45f33598dcb8e990f47098e98a676e704cf0c0fbfd7f231b5a3ce032322f8463cee52de0830e373b1aec2c8f11282df1355ae9979278ae7b08b0744a9a61f32af9cf07e9f5a6b84af49330f625f656a545e1dff30934165ef890eb3d5bf8ea092db0519880378d7231d20534b9052f76d14abb22cda6f0960f79d659cccd7fc666730f1c512cea0366a1d41bdd15b3e77257c6ace1526e78098aed1b1f3c85049585af14640e452b26911b897fec80b457dcb54f1d0157299674de10b8cd6feea2dbc91c61c18e1edffb3047fd876d7b6af6f07bee46b4ae837758ff08eae1f01f1842c68e2ef82f44887e0897c0604bb58adf1f40491ee275b552f7ef0a831ed07dd10a3fd3f1e55549606f934744432762a8ff1405e9547e425723d3c954187180ec9b4006be837556ee891a8ea02bf2ad582e5bab5455c0507631e7af44e9873c4c83be72d4b6bfcd0f029bb11b348a6965360c83a585115c17d1bfe23918352fa24da6a6543af93dd0bc38a18466e62ba252e468528d30cc69234c064722146507eb8d6491d387469adeac059275bb650c319a8a21ef0b2a1a4b7bb3c794a599d1f2e54d0f2abd71737f94a28388a1c9d742af432542a3f9cfa09ed7e2137896020f76beef476f49e65ea9ca8cf5d454d2e5c6019218219ca5c44d9094599584078781f684c8b4073b1ce14550952878f536d481502904c9331417446c3eed355d6a851b5465180ecf0d1d27b4221816238612bbac818d788aa2d03ed9a5b5c27835fa74695e0ec19cbc538a1590d9ee370d33894cea07a4ff2641a7449b71960c8fb3b0431e322483dddfb616ee1c6312cd91da9249c012b63ee90265d23864abaf2bd477103807c7f7a76d790204f6a7b7fa11af0078a79d4649d212f7d5dbac95f39e5ba2711bcfdbb800f9a8f81a099d5090402fbe430ce8f88506dab03a8c44271b907e2894df53e9ad97c7a93ebfc50191f8844389a1147098bf880aac377c3864a2340e446a4159d6536f1a9815fcc8601ba2accde23e12577f72c9648f3a330d90c672ae0eb91863f5730340b60d7b7baee53c5d4c99c4e91a14b3e707756e5228ff51bd7f0d250fe29bc6c05deab535c5bd59cc774c7f933f377a1d620b64f2903a0750c11bca9de244701b81e84a51ab8e277a87fec4ca964772347f18c21425b4282d81bb9bc94cace95b5f3595ce213e3a63c32b600e028d05225e36f0d7906c43083092eef31643125d04e7326c0a57b31f907d8fb85f0f673e447536ab56b2ac47649e0376d661081d9f6407ca3548625ba899d25c90e46a818206be7b17203d0c07bcbbe3d64f6f8c6ec1b2198a0403abe78fcd83c9719675a702d8922d85736d74a73361369227352d90dd08049c7e6be5c3e4be57c46e2fe2078e8038f507493a35b6d129a3f9d915bda35487554302b101df412863b2f1baadc4a6609dcc7c90a0cb4c2afa6ece0a5191f3c748d0bbb93841a2b2e545f0a87cb815c631929a87865d1745fcfb23ca0e699ada445fc8d641687c6823e1dcfec7fd0a1c15c001896a2e19a740955f2c39810e414776d11583d03cf9511fd4ba07450a0b2ad91492a08ab8aa59666b1f63c4459ea8da6e335302d64c7618b696607fafb0ccd8f45498d9ff73f10ab2827e61171ca8759ef8875c6e794dcc2692a113de3e4fb9f000a41e4698d4c0d3a6011198388bd8a393268b201864f96a2a8bfddfea81d6db602300b1c72dcc031bd8ce9bf099346ccc2c2cd9856fd2b6b46a6f02d85773ea624f01334dfbf41b5d95444af4b5b7cd3f60a286e86632fa1c634dd11c8762d5e4360d0a7ffcfa160abfd02a114711fab3fb59aed52958cbb91c461662006ce0e81f449ea9c6e40a891e6f962427877b7879856a7a989589deb14babf8a1549d74f1f681aa8f9a795736b856ed2bf8993a54dda8be26621a4714630e1a7230288a84d24054cea497fa40762be6a81267d55618ea4de72788fed6055559d77dae71e76a34e7f857c8296207eb2f61a5bf13e54843a7356a5f62d668b26f0f47edfb286fa6b906703422cafc3064f436d32abc09da3da58a904f0465420f9df7a5aadc8aad9b967c9e9d7429bb9c308bad4ede25121159865dc88961878d4174f2a22044e95c1c6a7546f3b246b29eb349a5c4940c7ea4c5ecf8ecf337e0dc4fc2393902e58ef33748a2648bc002e039f848091427a428b7c7dd5ae1d85d4f30afe8cbd6a6a295103cbf4e5007fbd4a2434f5710fa8e7cea747a9da946027010ca1fed4a3dc9744225370ba0550516d43fbf655599022a22143067887469160113aa8782ddb7a6357cbf0fe4494a940e64f67dc38444cdb088b9dcfff9a705ddb164db7760ad873fbd4484889113c88d90095e6220030594a0fc29434c820366981b4737bc284b6a6becedd622e42ae9426d4a934a6ae7bc135df162f48d8c1603ab4bb28a44c875eb2db057c505dc4089047c4d83a4f0a80cc6425edd8b78765b9e1096a3f81dbb9e143d2c5fafc2e23710c4f514b3fc06e1de21e3e71b8c7b8152725c280d17948acb4ae126a5e0a2d271a334dca144dc560a9794822b958e0ba5e182127177280dc21d878ef43bbf0a7102b55f62f9401c1f22aecf88f301f17c94583e11c367c4f529e27c0289f93e25968f9f7eddfd546e3888bf2bb050de7189813406935ff09cb0698457ad492c8cff8942035ff6e80363db0a39c0e83d72be32d0e3c506eff3c1b276bab928f87412ef069df634d39eab2da654170cebfc4dda0090c7e1b7303c499787a19ab3db6173a24f68ff3f974d19140d1c43134c766e32ba02b7142249f20f3555f03a3485c60a6f5698aa21b515f45629d4edd178c2b5b3f29d9dd1009df6a0a077fb38594a17fec3c094beadfe80886bf4aa9ec7eb359e8e1b91e7f0aa84485b9015f714552035e4c829657928deced3b2ef740665a41927a0643f03d1806d2574a00903f250829a34059d87724746878395d00e9d2ab1544e71e47f462fb0b119913eee2c36d00a898ef937b9d006cfa60e7da0f756ecd144a3251fa37316061690a5619dd8c387301b5c07f2669ca2629fd92742d2a44e6c96d0a7cdb6718df23a9d4d51383f5e2a7c6cd9e56295dfcaaf9d0e916b312b7623a89d165def80ac03726d6016baa6a76313775a848ea0aca60ed870a7f7618388a3fe1eedcd8ac405b8d32158a4339c7cd00b201e8aa562bac307ff5e36a050cf9744c7bfc9ccfd0150cb3bfded30f1ad7fdf2edd69a41072718e9ce55917119d4235cbd0460a2ab43fd9131e5ce9d7346c85bd0acd0a4b1302451bb8139def840c1236c8b6bca2b77f10bf0266949a6ca70b77db791f03b68dc8e13bc086501c0c7a2d2429ca8f89969553ddbb0150f79f7ef0cbb68cd3d8ac92b8de7fd22e1c2aa61b8501a0f3f1297a30ddd1de9f945f9361521207cf214d34c5d1b88a6f18b06adc7735df2c10f6c97e9b9158139e165c1da23cfbea9577361d2c677b7c3aee9ac53e418733aa3a4e54f540c6a49236aad34009eda6507051691ad8ea4dd15ec495435af0497d2e5619e818c91300af06cd3c335e4afa06d7ea99f82b6854a0534d2ab4b29f36bfac81823089d27b3bf71b4e14b82737629a267e5ce63cb26f2437994f74fa997037355ded6fab490870d35e4325142dd84680b712c01a6fe48f17ec1df5c819c59cf606388bf49b207b2624af00d7aaee87bf957b6530722264f46e90fa4e38378fa90e28cdaf224260b0fe2ff2d308a6a840434d151ca8338c121c05f81e5f05b85bb66ec83a0a701d02fcb9d26ca54ff85b88a1a76456cad8ac9bbbbab0218603e89c9469c880f9d2992c80f293876cd189d60bfcbdbfa33a124f2d14dccdc12e0b982650a764b3cde95c2fbbab123af054298384ebe22a0f67bc77833c38b72909a90993e83b0df2d7111067d37b47623a9ab98fed93ebe3b2d08c687c135ac6bdab90f2ef954efe784f9047810908d1b7f9cfdf50675fb55ebcdf38f2fda76070860a78f427c734ea6cd3bb86f798ffa23403dd14088af08d63183f7f16907783fc0150d9f62b4817f62f4eedf113752affe48023b7b898b89145c4e67b947dcc469b88984d8da3fc13e221f36391152190dd78b54c228305e31c7276b60cbf96155482d6f5f4c33c151bb331111435d23cb38060fa75a6e893f616ac7ed94c0f528f8f2a5f0f7739fd77667492537153133c74964d81f6dee544317b9c65dd9e271879542047817c343987cfa2cb54a12df051e45c59fe3cd83943d2eb9a153a018c00dd9fd1baa01a7c2f6e865efc3a9312778c7cc7261d4c042219eabe129ab238a3ce07c1e17359ccc47f088dcc1095ef62b4deef52c7337c460bf0777de58f5b3d670736201847e6021709ce4e1f938e12f70857c384c5ca6504d252be10577d41f87bf05a8783ea6f6015bcc485dc0583cc6429087ce227a6a848eea48d9735578f936bf672bb5362d642a9bc982b85b00a1cbde93a1c50005f7c7a908859b179e345d510819654f753d6700a18529e2a5515c7f9ec8a8439d6ceef90787ff35a89ec1e86908a29ce2511a8a0dedc276ade7e22858b41476efd41058f1a18746b624257fd85589f3c7ad1d363e98d7ea3fed4f8306cbc4b1b458a20dcf982ce02ce169dcb97e0f175dd6cf5688b50f7a827ce3227a59e532c69916925483969e944f9caad7e2da923bf3c0f01c9188b2194d0df0f2fc26667b5335c4392ffe3c39003f25497366de1ce15b3b37eed44906046b00ec26ed6061c580fdd47d830ee5099e0f3b2ade0a3f9a15a039b2aa5d79ffd9960639328f24986c933574efce2655e65af9cbf36c15b46f99bd58ccf9b4cfd5966588311712275059aaff82ad96a2bae147d1e119e1708a531a6b76c0cf4a3d3208eb672c38b1260a57e78a49427607f16b7893dcf9ab01596aa9d662c171cfaf5c9a20f1665bdd6e83a08c8fc987acbb3e019e1a341ba8e41f4a439ea1633e899447a58d19fe36871c121debde6168f29aebf7e61774d4b07b7480647cf5ce10e07530b4e177be12f9ada0a7f18e732779044fd3f02a5b7ea5b42124897feb7e8d2bcf083507705b7495479406ad33ae39920b4f6dd5b48842b49e6af03bdeb24b7b3c583d611bf815491064be61cc0df52703b56aeda8ebc22080a500fa83d8c6d18649b0a639b8f9153cf9068377731e7a3c76a46a78e0605c38d89dd8301a53e02377350a6ae20b7794252c1f956692b8b02c0a2026eb9afd1830312501870e903fee2f077fbe00b7f4745120e8df395815c07adc36c32a9a1943f8b1e5ae4c3093afbf76315e5decb1bf5e608478d62825f4cca1e96f8e9cdd1978b58f9314ba92de28474debc5b6f2a5b00e2a6c5160ee3f68496f492a1bc9f0dda09d0d6508a6578ed386ef45cf02b03cb78735e78bea21cabd509da2ea7f429a90249d1b92cf31053f982bae9ea908c693d2b03c670932ff156d6685965309d0e2ef979f3ceb2dc75eb6cccfe5e0cf3f99a3f24ba0633b2e4393c28203b7f290a6588abef13cf5f5a78b4fc0408c2f5aee40594ec5bf30731db8e71b5b572c0137075638481e1db0119e8aca6f083660ae0ba36c93f7aa0a23d1a3605fcf3ca2222823039d23f0f6f804e7b371daa756a62658def2c202d2629637fa4d292c66e42f9626d5481c5e0c39320bfb2ebcc01797014170c8086c753ed75696fab7871cfd3888fd8dd8b62ed5edad0c82a83275499276b0205c4ab10dd98add5970b31f8f6afc5ad2edb070ca0d03a88a2420e91b306786878cfa9dc6d7c0a756078b18066a49aaa991534f734727c99f4941a4a2e793ad516653358078134eb15ae26c72c2ca6cb229381c9bd9bf78bb7065a7572471d9fdb3a3cb8292911305b7a3760d6f26734f75109129d6af8433d149e7888dd2ada2c5a739616c6dd83db2d5ae3459e259a2d456697ef9b56e5924da31d281ce676c22edfe75cc06bdd7e3631fc3c6380adb27586cacd719a7698f7a52c1434d10e9ed6495a5aa3647a469175ecb4a12198112df7c4100dfd79d4ac74c93525fcfa1bc210d7180e6caa25411bad98f7fb1129608cea2ff801605a630b9001c4cf892601626f2c3301b9de73a448b694d6888bf59f17869e13105ac80157a78b7fba98d5e2ff8b8ce80d10f3df615b33489323b912f47df35d324619c0bf1a8af4461d813ffcf98b38b64708c12bc95f997ff1dfae94ebcf7f9702dc5070d2e394d2f2f50b2865c7fa968c3f5b90cf49f4708acb6eae0afcc5e632bdd2f92c2e5e2c240784ef457de550c30fe16b76450ae92615f9db519289e760b6820cd35aefc71047ab0208ca12aa3d7500c14de2726c43c946449bd87ae17f89361a1bf7c7b7ccddf95f3f4526293cca6b09c2894797c2ce7c2271498c54da1f63c4c4f5e60fff914d8350b7efb56f886b16a7470aa455dcaebb8ae14a3336b93b73b61224409b86379597514c6b81baa1adf19210dec8fd64f2419af7177be5e84ffdbc82600804e95cbcc010432bceb43747612c5d84dcf6caf87998d4a00050b91a32bc575aafd05fd6ee2dfbffae58e4fae18e6a882e4ba375a47f3063bea38e8a8ca88535231f8117cddf374c2a91626b95b2a01d11291faf2dc405977a73950768ed1bcdf88c050619fe9c9ff84acee5eca766521508dfb294413937c9cbf31353c621ab8002d475032269c2ef6f54c9aaa645aa89c34fc8741403de3bff8e9004f15aee9a209f60346ab4c451546c95f75a1e01b6504c40c7a27afcca14263b856c46faad587a7ce89512f5abb19ed2f5aeacfe70453f58d4d7d0fa7efc7938f4646b7a31f99f95580bd767c89a4c1da2954a83fbd406cc47fd9f984c6260ce5b6deb08006b6cacc0baa51325783051a649ff65cae08b0c363cd80c74cdf4f2f47842633e46572e80a442162ee65619b0fbb5755ccbe71c7069dc85dff97e93bb1ff65ea0c4adc9ac0b3327369e32a918bd10272ab61fb041c5c4e588bb43653c409e84ef630a45b697ecbe036bed8634c4743721cf899b3b2a2647d0c4a130a87e8fbc4fd04d54afd557ade36856798cc62cab68d48ce40faa0a767c66ba4c444dba595ac3abaf93299eca776a8761ec70ce1e2ec44d72291a1fdd8c8e8b913387220b418ef78782e7f1e4b7e939713723023740b9b07b9f34ca9866db20f89ff1898d94a574a2b08d323203060e66f35b993fa68b6813100e5c3feed29b1542b3e579634ad2f986947ef4883f08fb26ea74918aa66edf999a776feb62b597a36ea2577fc2ebfdddfa8078417e546eeda6297fa4d27bd18c40e23ef8da0d209131f92dd9f50244ff241439203c9f8ef1e63502af1608a4583840723e58c262802409a95b52d2a5716e75f2a9c370762807b0417f0c963a862384e37814d8b2d144c3348feb03121e55486a6ec82ce305948e8a20bc2086d028c9f21b6210c67314423b76acdd44b7c0d85ac6c95a442652cda2457623b71707c2be00d84bf8a4dda1c555d0b4cf074ead9676d301308f5dd3e4a40f7315be8ad558dec59277e7c7786758b19524175d1e9420207dbf84a8b677ea326334138fc16f0ffdd47d15085b40c40b101957e096c39ca8510484e526b42435cf1f1de70b4529f0cbff5f0865da56592b17a702167a31ee8c734061a6ef76ad858de4954c7b705ca4efe2044434c4dd65a6427f550375e662db8ed00ad0530dadf4b0d154cb49d5a693467f427aad7db670831c4ad3f685586a13915e6b7fe79bd6b9e8b765188fcedd45caaf5995b533204fcbb135b83a5abb474e7118520f968cd905027e7ab70b9b96923e3230d674ff2c030d8b380d7f1707fdd83dfcf0c41d1e588c3d469ac25e8690d3d9b87ee8f222489101914bc278d6deb31d6c6037110e2454e23e3a906de937fc1f546f4f1416b2e8d9dd7125120b9e20123cb6aca0988a7d948c58b82fae9caa91f6a5d25d01a389516f1d3c68f678898aa9e50be4529fa62fa7dd476f0ca7e20186d282e2daae1229cc6442569aeb3d2c75c1ab02be42901d43c5b01198f1f6c8b5c907efc9095ee4d922e19da90d3da2690aee4c6bf8c80d385a26520f5254f0515be5d0288ac6d1281d905b44834eb64dd0200fc12f8b8cef7831e84a6e2ad0d920d568519ba3ef9dbc0b0fe2e5121078c76f0c5ac351c17b989deed7f88299f8ae2538ef526e401cdbeb67666b84bb17f6174354dc5c3443f0d663ce74a04ca84b4ffaaf88e1d3764b4e809028bf2d3e46878f4076091c99f4e76cc568ed35a26d1f45ef41c4ab267864b12766ff0929538c0b7d31e0a7c9435132be1298ae780c3104b708c84d16e32b0ab836482981e8367a5a3dcf605f92899d43facfd793ab2f201dd6541c52e747ae925c5c4d6a03f4bbb11bd88d387cf9e47e1aca39371dc4e27b0c6efa1df1c8cd86e10c7717137d23b8a8f753ba928431a3ff2b8e66dbef99f82d13b75ba5c14801090590a7145f7897c96610689fb542d1bd4f7a3367ae2022cee7c25b1c3dc28736499f0fb0a4fbf808099abe9c4d401886f32f41a9f664a5ec064078a32f764ff9cbf7c912905f2447781dd208874330d25dbeea0c949217e99e5a3ff82c1e6d2b158e6bcf15b837814f4988425355eecb77f9f1b927d858e16639a73b60ebd50d680b220d039eb37f78d4b9720ddeff13d50892f43d03c39f4b07f8ab0bfc894be3e54f8067febf4f96bc8f8eac692d9468120309b6202910c5074dd6d1e0207497bfdedb7d75e409b7b46148ccdf32598d37de8e34efb688fb43253016b3e9886660a484a87e4f1839b61045a5fd4fa126cda8f1373143e67865fd54a980e168d281c719d9a3dbd4b3c1cf54f9e4352182e9a11ccbb64d16b74433bdee8bdaa0039751ce722ce12789f37f7c73d002935a8526060b2eec5bc7da63269cb4a29bf8487da203723dfe1b644b9e06e6a84141dc0f111e29e8f8af4404937ed4ac24c3fc7349e847d1378c413ca717e6fe09f675048734ddeb4cbd6249e7fb76bf1b29e1306fa20cc0c5c4d10529377c08038005f97f08e816265091f6233ac172b2196c7eab58042cae08285fec08325a1be05bf543b27c524b56c2e5abfb69533d982c857c326aeee73a72035220a6609fa2c7326ba2870c92542c6cc07bd2b7ed2089c2f2b5507ee752f4e8982c322b614ece88836181ad945b65f75102635513682abb23398917cfad45eae65009d5f429b896f973dcfeac151fa20a776a902cadaaec1023a74963d358afa2f4d77cfd21ce396427093ea3d224d71eaef65e10ff9a835081998458cee39f403421380ea5e871277a2ccc3d7e5876d2176152202cb362986408d3bdc303475ccb5c4a320e0c1329a4cf3ca364a2df047dda312969b68d2e66b792e5620af916fab1338480ccee0e0221833524b902921489d7ede3f140aa46581ddada5ba94e099d3dafc97429e9c81879af46866776c8d418b5f26dd93b01536426cff101e13e82fedb24702cb6b239725c90f94e8128ffc3c5d20bdd327bdb352c7575a864bf507a07bff2cf31bdd4e396cc5639763d3b2c9d6ba5c991c76ac502143963a2281d6b2f2c50fbcf0aa6bec309567c8d06efddb2997c008dc30538aad62bb7f4c562099fec83d6c583ab345a8162d38c1c19511bc8598d7c3a461ce81a9b3ab0fb7160b83690bc087c099c5bf58493c18e4229548cb3358ffdf2792b218a7b4b0363a30e35db32b0ba3e353c65dd6d42bc403c75b3c085fe9b61f3164855a4d904a0171c083cda170d709034f2e08ff8925ee538b8714f0162549796928cae60f61d92add157bfdb65295a3b6afac87a37df34c0cddaa34cd6aa7565e6c66fa679d756a13f4f99b615dd00c2c764443d1cf19eca22bd55085bde740b3f0e9ba3b887a3e9305778fae0ee6c946e3409d9de7867ebad0e341f8b033fa3d64f87e6903a7380959823eda7929ea71200a0e91ae3a2276c0b9f86f228fc04e1ba1ee3810fcd043f640bfc907a47e2cf7e3ba6da9ee1e00fd841056fb41c3db219a92db43eea7498cffdfe0b7890f6a2c261f407f1f92a7ee60d1a85d67df5eb3ff7044b6bd873d8f6869060d2a27bbc10998e81815767b9bde04c3f8aae67a1821b934dff00fee82f4c5a4f83c94f1e9848c87bfcb90410e500c64a60acb04a364bd30a9f1e1650288273fa8b6a78cf1459a112421be48d65e3645dba2d1c725bac8a6fd8ae74fae056c96b9c8304d4c93c1193d93f5251ad016ed6294c04b06c4019bb0e07db39b37bc2c561eca114b6c6801afb30b8856f4022e477d2d864dbf204bf9eff7a5cfb0fe42bd78a88e4d4cb357dd176fecb3cbfaece679c131cf2021a0f8a6a5920d8594d0772159363ad32123d3344f9c0a813478668c67e064ab53f8b20c5777eb4d5d1a120fa3d11c2e499d77d658fc7faf8e5ab76b3c30b550095af2084be0b3a3cc25eedda4b4724d8050e33b525bbdb965b4a99529201000761068906ae347b2091249244924812492221d1b9d527481cbc5ae96870c771fc3f07e4fca64139276b31a7c736aeadc518e5ec628c917a8c55e8da49b9c54871b05d2a1989eb689785669d6e4042132335299591656691513367969a1a9b1ba7e254b0b9999165068d2c346afca4744e81e689948c6f529a250a0d953993a5c6a605f72c5466a2dcccc071cf4265264a0b38ee54988952e33d0078162aae3413c5fb00e0545c69268a0d004c4ab3cc5099325900003601aaa4db50923694dc86d20b37dc956e485729499592ab947274a6f314286ad0d47825410d521ebcf7514da35ca49ca8b1c1a19a86a5285585c6c07233c305662d556214d1a86183594b9518452ed8605e8a51e47d2da8a4962a122946510b382a594522c528025554d3b0c4a84269b0a85e98bd70c32588e42092049172749891745cde40f21b48f20652006090b48a27852041b8c6a605181c4b3f4e2bb0da69b194a3936464e45270ab93c98ca450e96456863fda03fb9a01d52816cbed7235f370b11396b788b3077c202561668e00923b71339392514335cd060bc562734329969b9b19346415b93483460d2d355ecb7b1fd534ca45ca891a1b1caa69588a5255680c2c37335c60d6522546118d1a3698b5548951e4820de6a51845ded7824a6aa922916214b580a3925524528c225045350d4b8c2a94068bea85d90b375c82480e2249102947c7470fd24cc7f986df903752dea2334486219c44b7834c416c04b3e98633a843e204b5c15223b708000c31c8a0a5cad26a15830cb28a5c8a4106aab9d4b0b8bca902b5c12283009604806309c70096065083461042269d746661239c4d0f79e3897932a0c446b8bb6b4009a841240df6047ad5d9eb3569121f1d6de1a5a5c946339ed5d4d8dca466d0cca0315397ea4cf6839858d1fc583605d9cbec89d76bd2179190502a8a9358965894a012bc265010952841af0a459dd52762ab5f758ad72b4ad02be855674a80fa45e5a5244829e86516e5f50aa2129404a6040b7a694951825ef3e5030f7169e695e51554673068e2b5d990366c541f0df6dc909a8a474986830d4a453328e88915989282e53a0b2ac1abce941889ad09047482d7eb95e535bbfd32eb009c76d4290d769d95e06524b6eaec04415a12953af31a4485d7a4b2d619245f412f212c963f9c41325631740c32b000260c665054f53c22b6bad76b06dd8b0a2f54ec6301171d28c69e35d801f9d3c57167135deda252b0b1fb25bae20f3108101cd7dd5c9ec2c596b5cb0d36a9b699b8eef482b2303736295bd34432760cb59093584d573ba86135353637a9460204641363064dfff46b068d9969c565990b6f8951b0e10673272efb414c8c975cd5f4e3a4aa9414a399d2a5bafaf3c198f169888b8a609d2c85049aa3d3101b718d4d0b30371d0cb5845a322282a285aefe589ccd051b2caa7a5b416cf5ec88db3d33aa428d9e25b9e13472225851852293a1605e7782c29d3881a590c0d9e8ea110b804e7bcb421c34c3b1d310133100c012dc701a71af2a5ed1091bffbc5e48806c9c18c6b0176e74b20e69d087f852871f472a21aa130f395d5c8271a7114391434fea74835fff52395d3d62753a24379c460d45c7df60566e7f3f115b2d6bd914b76549963fec642858cb1a0a6a0bd45207a5939d0270da31449fc660e8ba2474b2a8eaee49ec9670fb89a0b0dca25f4fe9d906db605b12a7810786ae22d9b093c58f0f763257f5831fbeb7a691512733b2b7e654438d3b8f76649c8656ab550c7d934ac52003cb582b8300bab82569556fb04e266b16946e4d2bd3c801d328c61c37336e64b7c0055504f78a59f8cbddddddb909cb47903ae829ddddddfdcdac46652ce6a06103f6c8cc9c002466e608207de1eeae002577770d28b513cc482cb0d282ed770bc7ca012b2d9a09dd850c5aa5a814a28809b66f7c3263e282383327b325fd44646657c2f2c7f696e9d8a6c7f52fbc802b81c68ddc5e6bb0b9b6c116d81a373746194fd870d5ea5af539c04a9b1bbfc6f466c95c3cf10408eeeededfeeb69bd8e0c3c7c5438b205a7c8162660012330f48ee9d830d6480f902b6bb2523c47a873f48231cb7cbfa17bcf1c3d5ce8d9db77295ab7ac01eb00beb52f0d350aa46b063704e1fae47f7d9be83f92ea9a4140047702510e642f2fc387b2021e78a175d1cb1050fac68d24517b3daa155ac3c33e80113445784187a8115701e0a3b574590128513ffabe0095bc76ae7e792b181604db589115c0cf1a3a465092eac4c10d84bbfb0ddcf5609b1c695ff4d70c2946a908a4c10b82ef1628294c38077dc77c0e204533451c20ab440c225b790d2a40e619b712059feb0959f7af960b34c526600c392496408ec949123478e1c39728c31728c314a8c31c618636cc1932729183cf16405e3031bfeed07fdf9e3627e3fe7e819ceab2c21b0929f06365686cbd40ddddd638c917ea4d122a5ee2e73c318636497b9131943b54c4d0b0ccd0b2d25aa9c09a6e33a39653ef2438d8646bef6309ebe369fd2cc87313f9ffa0dd1d0781107a61ff511c60b83f87fa0c84585a6d73efae2f5f093174a1fcf67c8f5377940fc8bdcedab498295afd1d07cb17e3de453d7b4e7e91fb8088cd6a2e07ef650a70c05eb1ff6dc9e72cad9fdd1ed977255fcd8b97d0a2e0a8046caaa4182adcf5d6ea8fdd643f3d142fa0d7d3f3091cfa46d7a5c79e79cb3870c84452e07b42bc4e389877c1ff61870f2656d1610fbf216060c183060c030996c970bf31c5b09f39cbc9b7b7e6bed2b4f5fc83de705e9d9bc9edba71ab8cbdd38d3fb4cc9499ff91f00b2bd7d209b699ae6d7376d2f63b6376d9f0fd7759fea7e26f5138667dff49d673f5e7e5dfbc937991ee5853d9d8949f7a63f9d764c7965bc906b905556596ba57ffa40912b7f7b1fee431faefc7a907179939f0ff761ddb8f7785cf2372444cdd77c4c4ccd47f33132e4c7f823a93f32433fde974f3d47ff445331bc2334332f5ed8734f5f9fb88fdf79d5eb64bc94abda8bf34d9cece8576f0df9895f7471c5bc1120cd55bfb0be69fbefd38eedeb415f9e14407b68574ab97df5aeaa36e917f2fdbe1681695b834e75cf8d39d7df677ee8c3e5af0719977e185fbad4344dd3b4cf87fefca4b7c0bab30f47c9f1f391f3bdb086b1f2e743bfa1faf3df5bb1bb56c5ef88e31309b702e203a47ebc61911b0efdc084c9f6f5fd994041931b5a29ec1a2276bb081b6797b17043f6d30ef66a903fff034edf47f3af071997fb909f52ed433f3dd5de9fba9ffcf3e1be21214e7f7aed2902620cfca78fa71e54ca558dfa628c218c52180a36ecb92fa7eff42f27fb2f8f3abdf83c7dbf4d790bf5bd7cd655de3ad9106f8c39456eabfbb8795626e5c9d0efa64117589b1be8f3d37ae34c7e7fbdc26dbfd5d40f8bc46e1824ce6ece8ddafb6c1ffa703f9fd8e50ecd3c08bebcbcbcbcbc7c355b121b3f7cd0477eaed270c809f993925fde98eff331fdf69aef905ed8757ffa9679991b70aefd981f52c415239f8b3a13e65f1ef5f1c403c6c33cf7e2c1f05ee67df1402f07c6b35fa4ffe2857fe5c7d905e2b37d78fa988fb77e3cf5c47c317fa4882be63b42f332a7cf677bf92e3dd3775daedc3c9a990f48862be61322e6636257fb5cf08c70171713f9313d3f29973fe68bae8a4cb8fc0c05dbef9f4c4ccccb44fe2331317544e68fc4c87c2998ee8eb8e82dbec1c9b13231861bad4cea46193dab0bc4c7f461fd1efc0ec98f7733e23fa488cb5f7a22f090fbeafb69470f09d8a5bde64686fcd0a508554ca18b2c78d1c5e57fa488cbbf23f4b5eff3317dfded79dce4e10ccda7de0fec3212bbb88064b8e62784bf747f79c4bf212618c4a00745b0a0084b1072c93fe27fe44bcd1f664f24aefc2353ce775505ad1442fb2354fb28937ef9853837320cc3742de594feb8a4e4f647e661c59406e39545bce515ee8dd0d762a41f2ffd6e4a3f7af28b9152d95fc76c05ee62b76dd8d6a4e4a45182ce481977e22d7722bb0ef3201722326a222e9d22c8a8594e4404a7882c4f12c1a64436f424971f368b28220631b84a2871fb6511453811d28920e2b20779ab85a8f6b29984e8c76d69d6cceda744d6a95326a244aee2af4272d2192d92398911512321a29813192da2336a747d52a794cee9f47320130c910d821d5921148c0641b0a36a8966ca9bf2cfaa792e3435396590d4a6fc38b511c13aa29883fd999f5ed12d6a4483620eede56b4049b417922df467894b123da246dee2b8fcd0a30e094d4a429794d02d4968af25400ea344967eb811715b1aec0d0573e6469a4b6960698c5b3b0f72159b2a0c8c980625373843539e3aed983178323579298fa6b3ddda882655c286f68562380cb611a1c086d665cc04ba8a7f237255fbf6d41be2dee419e1e1f5da88bce5302298374e0d8d4b3d4b031bde105dceb9a3cfef3bbff002577e269bbb795546d7b0ec96c3822ea5817558177b410b6e1bc2863d938981016351ab971b7f1bc2f6ac59a74d4e09410f56878b3892fea95f3677238143bf00b4b6aabbae4167cb9e468f704fdd342be660af6b294db21a986493e9173416bbdf2715114c4ecb8c3c64e6b1a75f442070e0a72cd5f23bd371789e1b91923d7fc9510789d4cde3bcc691a75083c68c1b9b1a19a9183433323130602ceae5d471a6ad6a2de09af3d8c603bb048ade98042448893a0c34c302ae88220b2e7ea0e8e20a46520f5802952a30418425495170cd2d4a480112358acfe99d94b19d0492bd658c51566719639c32059c2bb9922bb9922bb992073d5c93ac6af5f52ac11552eb17a38e875a426dd160e55ab57a74059699aaf1cc0c8b51b342d4d2d14c52b342149799293333f551589ac5c30a2bac2d9a6532714159411d352b7ee1d3475dd1acf901e19ff30895d4acfe706890c7dbf1560dd2e9e1a8f5f217f22ce60012bfde391f051475682ac98633a928c4d38e9412b7cb49b56e7ae134bad4041475e85f9351cc2173e99b8e620ea29883bbf4b92528a09823c6a53fbded0a6b028a39682e9589451dfa73c9cecc2ee7c26d9b1e370c629281f4a480c9452fa7c19edd7106c625a9e3cc59ed4429392b1c3b3cde92a76984b5a961c65dbab57ebcd555f57778b8c9a8416ab2d2e02784246b22a7ef88989efbd33763e42afadd77f2617a6e1a79333357d1df5e97becdb6d5b72ffb23bbf42d50cc2ed1adb96491342b3e994228bcb9a17d095ddab3299870434b7469279bc28a1bda2697861676e96f55f378543163853b26a31fcd0a6766973e9d463e9ac54f8edc305af9b961bce2522337bcb9f24d9eff8ec9c86465663663348d407ffa94be9569567fcdcc9371feb2a90da5b3bbbbbbbbbbe9dce98e1fceefe0af3ce0a885ddd98922c6a2b9dc82813d8128356567e9c9138a6e188f9e5861e286110b8b67908ee372c8ba1ce3f2e3e019fc716ece66857d19112fb8bd73d9360b7504a574d219ed90a661c144144aae8c1b9988e275395434bd9a9b9bfbab75f1c753e5edc8eeac1afc70652b0bac7f43363e505dba74e9e29a1e9120e6d31fa23dfd6c1c40bf7efd88689f7526d1c5a79e195db549613fe555e84cd6435926a3b22e8216a17d6e51849883a30e1fc179106b81ade2254950253d92ce1ad830ce90c0bc355fe31d701667741261c3380ba92ca95bc20192796bbe3f2df2e9cd648e40615566259604455674b4b40517293327cd0a2950acc9124437ac4ea20e8e6cd5550beee8a04126258322d355994c8aacb35da5b08a026e294ea170c26651129368cae6ac5953a695b9643305352b9c49b79334ab95c0684c2150c6fa2b1c3abacd34bda3adee9b424b344d5659a3c645562b63ffeb16b5ab5bfce3fce7fc0d382ea7417f305e4eb3d1341e1a9a159f64f173fd7918d22d976181e5fa47776b43b3ecf523f94ae2a758164dae46e56a0747b33a88eb1f431dd7b9bd1841c669d07fa8fedfccf865e2b637719ca9ad209484f37858b1793caa903263bd1a88fb848aa3cb69dd69c7b41526f5f581989efbd0f4dd733798bec8357d365cbcb19bc2ccb7d93e329102d9353d0e36db5743dfeda771244173fb7b7ee8d0ad9feeca96db1fa45b718bd8ebf502c2d5afa359f1491557dc7e9ecd345b767eba893afc3a9ee3bea1eeb4c3d4a6eeabaed2fa8780ded5fd6cd377385ad5dfa637d595cce54d085c5c8a5330c01890c2edcf406cc925dc307a0182a88a3a7d25e946266e7c7245e8f2d0840db9a888a5348b8706fb4ad0959c844ca33f281061f077edeb8182e9fac73d5167053664a0da44c65353bfe2d8084d665bac80d32acee9816790da5386e1f1d66a47c6e37d0c033ff55a498c3aa142cda249749325dafbe7e02dfafe3e78cb6e79afbd9b5aada5da03456bdd418e0ad125cd92ef94284a2a7bb901a7dd50be40b1f5b6606eb4a1fa6fb1056e3da28e83de3a00abe8171a408a6ba313e1aa4b1237b471e99ae051dd174686d7a71dcda72a36766f31830f9c209262064d381105774162e40a23a86e7c724590143ba8f59389514a29d9dd9d39c6984ad55aa710cccc412ebff32767bbcfa0f4328a04322333db7dab1440e239a9698b338a192790ebb3dd617ab5e22ab93969cc2195ac48a0c40d7f077613ea2ca440e286bf849d373e9122e886d6b1b07de313295a70c1a11bbe1426b8f58914405cf74fada2508ae20a13b89414950a194968205246bda45ef92272298210164b9a0c01450b177ff11264e3478d8b93111c141abcae10bfd146752abad955412d9dce4e7077777e776e777777e73e727777776e2a70dcdd9ddf9de71429777777e7ae42c6ddd99bddddddb9fbddb98968c439210841d1c8273f153356678c5a1a858c94b1128f4cf1888a09e32420fd4c1815d557dd9d4a0971217e059ca0958e4a7785c62653f1a31d7181fdc8344b888c3279650746124a58c10e0ece9294322062890a21937bfcebf51232a358cdd880ca0d563aa40e2bbc45c28e20046fa16233a2274fe14e5e845907eebfa686098fcfa7af36e856a01edd1ef5268f72dc695e18c6bc946f250d510fe3397f9897f1097db8a8a7afa15ea37ea95fadaf3633f3cdf9f2659edae7f197973bbc0b8cf791b4bef6305ec60b63be20fe30e47f00084761d02f3e8614f131a4082ba1566b53a97f10ac111492f47afdc49640a2e4052444d4645604f47abd5e1f035fa723581f8634abbf200d7a4bfb7248d261e523ca56332c702758906a6d6a158f24117ff9d538bfe8fae6e696e294d24967d5fe06b6f1bfb1735285306b9c33bc300cfca1e9c6f8cd21eb2f3c83fdd91f1ba435c4209de965f99bfb0a5cc48995db0b6d8d3a3c9586c8ca7c34abe3f6d12c0f7cd5566b1423339b5060c3da813939150736bcd9b6f04d1cc75c57db64922693b7894d91e685ff8f781c1111c1c6d8831ba26637a264377e354c5894ec46a1c3ca2d121694c46a07273a605980a63df1628a4c0af7394798d0ddee1b7051001cca43fecbe07d1cf9c48b2c6e6857b4e7a494524dd368fc3c20effc640fa1c6679ec09413acab9d2f8c73ce8fbf7e321442e9953e84c7f9cbf48b1ef89aa669524a7f49a7d49ab8fcb1b3904bf0ffcb1fcff97d83208ec77f0f6cf0793a7668b9284a21cbbfc2b1b39a810d573b2b1c1d6347284020c902375960e3c718c8ff9745b07427ecc6af40b0139673df5bece20739f69206eca07350f472c5fe7ab4df5ebe5eaea8c3ebf5135b02899217901051131e643e1409e1ca43964ac18631698720cdea4f020d7aab7e36f868909f861adc70f5334904c6418302e4bb6b4f8f04dcdddddddddddddddddd1bf4df61bb1dff86b4f7d7d1acfe721cc7ca085d816b88d5a86a1cfac4a35e1f1fae7ff45ec974403142851ae06810890472e81f5650fbe80a58f9e14ef7ce0e7f39600a4746e80a1cfdfee872293d46da1f0d1c81c8229780456ce2e0971e51fa4307989220b3c86507667e3a7320f261a53982fe5c8465f4971ed29e67b59239e77c91035e41ff48aab456ad6af487b77890ddb65d915ab8f811c7eb38253333333333f34f1979887ef12b4c073b4009e205a828704f3a67cfa6be8365bfdc1c9a154ac0e3cbc9979ef21bd25c3b71551c217bd8ae41a6d2a4566b53a97f10e4f87ab942f00e21e4faf8abd8a33dff34c8408cc409144e4214a3535623d9d99ab29f025a315075c2863cbb3cd39e9fa70cf97670956f11a2033ff1e28b1b6553c4568d7523001078d201b4e3aa1fa26e015aba4bafb3ae92dfd0f69c9ffc296defee5a6bbf0c692b0d6c8fc755f2d9c3b101c8e2e0cc1868a9548ae2a0dfeac8f4f5e9a65e466c5120aafa3b95baf141ffc70bd00d5f80aee7d0b36a198f8ee477145361eada5aad4da5fe79899df3060de9cea7f4fb1175a6607d5eae7ae18a7a61cfa59ef6d50eb2baf3b35e8588f473ef1e11263efab98f887f7415c73903712f4a2c37699d0ca39e8de0dc9ea7679d73d65a67736ec4fefcd4d7fec7d4c3c91c5c25dfe4fdd83c1e6a927c930cec7fa906a5abbd6713b5ca671e842c19c23e30075dd6e8fce144079642fa00f6062de9caaf63fe86eaf34b80bf7ef62f5bede37982fdab4387ecbd50e286f1a855bf94abba8231c7e9f6e74c1a6cf8781aecd996c5d6df9eb5fe9a9a24d8f9e14a6bf074c12796f6dc15fb873d37c8eaca546a26d1de0eaa850d772ef798b77fdefe3afe5594bdab7ad1b579d1c5aecdab9e6b37ef4f488f2e8ebb172520882d99a8e2ffe11359f3e5cba7406c6d2f6fbcb8326498679f3b056129f023e688577e0e31878c2bdfe4c598929bf7ae92fd32b43d4f6fdf9022ae94abe4ca5552ca77cf065749793a6243ce41460232fe38d28bb8d85fdf01fcda47647b261253ef2aff4efd0fff1dfaf97df0378449fc7cf0d76fc8f65c7f087f7f36b188ab6e4a567e36f185f8a87f795a3e91fefa4498d0cf87f6fc44aa4dfc6ce6b780fefa3efaebe7835f7b22dab7da926cff4ab6a4828bdef296ce64074fa0a8c3ae22fc833707c1459c501392f1708c8d78bcc54e3cd6ddb1c811b6bdc9412cc446b0502361438e15358b47d61375fc5968013c4fc8e0fae73c4d6cc8315ad4cd62b1548cc562312636e49896a45b8c4403e2244aae03512edd12d22ae7f2e3ddcc6fe8110e4dca59c2b14513ea8cc08d4383919b3673ea10a3078931ee1063fcd9cc443ee20ef9d13044bf95abe249c747b0599fd3acbf310823956354e0b48f3861cdacb32930c6c87cb99eddd18a580c5db2022665563c7911b202a9e3b4723493fa5443cdf529c08d5107b5341f85a56777742106852d1de7cccccc8c2708988eaaab60b8f1432d35c8c363b4af577b451d7e1496195838f102e8cee72357d1675795da0902a6a3a25beb4f8e23bf50bdf08597ac21ab21f39957d4d1c299d7d5d8f412069cf5a8f46c5a4952ead48c040040001316000018100a864342a15816c6a11cfc14000d708e4468583815c6023992e4300aa2208a210619030c018618834c110d9500a4f521d19d574a986d0054dbacdfca10dad604ffb644cecb907f04c87a0df533898974be16030523efe95f439eb1a000413829fc4ac4036c9b86151cc8d60edc4e5a9b9d8ded5b73f147237e7583d3082a608434b2a5cf49fa315f69cd16304c5c6d74bdce2a799c9ec68c913667d91e3ab21d097c3b85976d5fd5865de98f42249ff4046cc36339ad90fdc18ce59dd16230e59fd91444f501c347307bf3dc410d34c001d537d828cef9c402373c0c0dca981285fbee996b5f52e6a9e1a12980c52e2a4266c143efffd278a89dd096a1e1541af47d88cfc47a1f30e378d9ee99bf69c4cfef4ead4299d1237e62886e1b6d99acad2b80cf614614855c98441bae482462485ba51cc161d5442be1efa015908894e4982358c689fe26488cda1ca72e0473c41b7cb04cdad332cce53c7030e432c54419dacf7d64ae22e3a68dca98a5f264c73ccf9ac6fa5452321751b5915963924d2914901e85189cdba91878d8006dc7a89267cace6f84aa183ef9f3fa982b149e13cfcd2e60c6078584ad9c938e6d8ea95126af7c521ea89f58d238e36af1bc05af37c90d32a4cf35080dd381eb9aabb5c7de02f0bda03474389e30b6c020cc3c2ce3ca259667c29425969543dd62c887a7fb8d87dd4f44f60a8dfc740e919c1102a8e753240e48d647f55be15072e9edce82126fb04d778b0857079faad92ed9ac27b68742efaaaa0d3d0244c469efb2160409106f51136a3e7a783cb7918c6485a2781be6b1bed8e4ae020c0f213d554728a7b050a12d5f241b160c657c8a98963012a0f8328c4c5d7fffd53a1dd0b22251bf90bc6f30277b162ecc3b2684edbb952dba5b0d72aeef4ee956a2ddb089910e3f6b660dc3bb9ca2263fc50479f5a2dd91be20e25fc779ae25100f22c05df75f387c22de7617a157269fd386e2c9b2608bb7092c0c5efa79a38369e833c48ad72d0e650f06267483dff590c2d37193a84694a2396f99ce3e3a9f5bf1558a8c3616784ce298e507c9e441636d5d2a19941bbae497601a382fabf82074ca0c190261c963775ac54f07242ea27f2b442d6006417415035625025dc8a4f10e940138ae1dbda3e9bb51c325e6066bd1133902d48f84aac634e4ba8f1f582b3bd8f495c76dfbf3df95aff9c1c7397f7d68b9def28bfd5a90afc986bc0844a50de2433ec3bf0d36da2e5525ebd43bf7381acf1ecfd6561625efc0460ee846ada578c3192e3d22ca0715ea9e8e4091211349a8b69a203ee72e45136c2ab813657326dcf44c24934905c235c41270a603aca9c25a735852907c13296f479f1a9f84a34c33b697a6bf253b71f7c39ea8c3a8ad95499dd9cb97d9c183e51fc80d89b70fb358eaddd9366c55a6f03e0f3bb2a4f0f8e0c49e8c51e59661cd24aaa92421b3ff36873640e5180ff5c78c10599036a6060ff9fd1691c0aac8f9c6036e2416e22f0e86529300c435c0fb9a9336278d833b94d0cf032c2de1fb597278d52e0d838edb0d701e38066c8775cc44f91c2e1357369dbaf648ae117567565040fd22a5585b48a2a717b6dc4531ab654b11b27d1d76d0e28f96f6c28ecbcd850bed31cda584673b45840ae8a3e9575b9aab45d3eca960380dd857349ca7ef75400dfadf742477222d39e67a97bc631600eb1efc26821fe519d5fbdf3137e419213d45d573bf5bb51709605627d38b32df13ac01d2aa91d4b6c83285e25892d277fa058b3415fb1fabea47183c70773f68b9e1f4dce1b42d5a6db264dc03e4b61327d71a95df354f2742eec6cd48fa04aa2b94c4a92c18aa88ca81956a103f4e71430dae5d049d407e4704b4e72973d1a2f3c7d892ed46e8bea35dee3983e2da8ce5d15c2bdc50bc108d3b3a5e5c328343f42fbcb0918962cf9d5de702accb6f1756ab30ccc29bc800825a75469ff14a163815aa4e999f5f9eeddc6dd7b6b05b8265e0e4e662f76c63eddc26f66a7e0295ee14bd90b04357210078212c4ad21a69b7891b5ac25a0905077112607a91471fc5cc3506b6feb7e6c9bcf202804d5b99c8d30f27e1934de7f3ad9922cc91cd4b59614c53f1232ea23308816b8a2d2dd38f177a1a675d43131d70d86df04b14cec2abc2e673f683402e7a56a21deda09257813458cb35169798355ac5365e9ac03a8c7e167730da80b646b728cba9d2bc57a1b1b18146a28eac5a1ffcbca3a06dd26f429b7b4f841ae056269ce8264b476d30a5ff6a48349747b990a1a5178588d8195031240ded2e89e22915c67f49fdf0a95161f3819c92cae2bd0b59c4a246c715439cb9e9080b4f3cc354356977ac8abaa79e0ae99ebc0bc038d91cc8e4c2bd1556527a8b1367fa6d9e7759a9c92cb8827d54caf427092aa267c5664a12f8958400ca72852ec5a876f37b32855f27340fbd593bc984555ae9cddc9d75363b37f4592eef9728079ad8452f73b048ccc1acfcbeae59984b0a27636c2ed4568cf30e3401df40e232e1c59d859029e67cbdf3d73d03c59cb1c1a8f4e8a1084d815a899e57b621047490abc2dc989d14e34154f6c94f84b5e63dd1e314045ff94928985b04c6164a0179800923d4a8a2db3368d80d3f41ba49fa102c473752950f4cfb5279588e17c0c4ff5e813f976496bd9ff5eb5cf81c7179fb7e3a9f8ff98acecc888817d0abb28514c2f741271b275e1d307e6f47068371121b189b8334f06d52dde010e08ea37c67a7429b27559e836c1c6bd2731f302870f50b52c8368b4c4b3917fc69c4a72decb32b670582e6e73fb75efd0175953fbb0c4d9ee6ee50d862e3aab7ba8f5a92bfa2a44fe5ab5ea9d8e1b477e54a8b9771ff740e1458d581da6b8a09d731a24f100074a58ba91e7d2c38eb9695bab70ca7340c4687124d5bae8e4a82e8eb6a0423bedb4890be1da210755f0094b000cc85dd4e7e1ae0aa336cb4839ff95f176f4c67549641f481f8d8a40701d524d3da168ec2cf429d8514d33662932b8c59b7811ca4d9073724a6b5af68d77b78996d8e5a5018dfc1b9fa35f726b8ed62e361384bef83f8a3255b7ebfa2b10e13b9718432f00380129646b0a94beac416fb979de0c65eb4776befc3b57c533f9611ed26014fa8c7bc1708c3b71f41b8c3e2c2d3e687c2b25ccffb8b50f3a54efbb0334091764cff6f881dabf8c4415a00ccd76e37ae878cc75b66f55f27da5f1bd04561ed8d02e16104f3a723803e43a27a76b8580b6782f92da96b051682a16eb0c9884639963682fea262bf77ddfda64e6e4c87c5e9269e9c504f25e0975e4ac86b44f35f0cf6157182a079be104a1db6a2a3b8816099970439578fa5824fbf9646829264221bac1cd40c4493628a1b0f2dc863c7456f0534b1ca54675e83b16660035fadf8f9507e4b14575bb1e345b857a70f13addfa253ac1b4d47117969ba4052b245a4d9d1535b344766dac1d33b6c432b49ed26db88834e6865ce62e2c29610daebe45c9466c9158851a271033760255c7ffa9c6c2258feb40c7bdd243611fde03a78eb73d1a24f03d1bb8eb44503398f7dfbf741e9e5192268e76ca1071da5cb9052d3c372d2a75cac02bfbbc23d342db082cdc3b927157e7b1e2fe05210a0a66b92fa235f9af3bbdd554446bd379a2179650421398536cd0cc8de5d9bc2c2b63ada485e9a64802f1f35a7112686b46267a7a616eb1e1354add93f5cd4e311033da665c43d452471e9d70e975c16be330529f7c0c60e99176ce2d3f55ac3138932a0971fe84b8eb82348a40ca40a62d25b560234da595d66dbaad08e05eb23d3d9dbc8d03d8833c12a55ef8c29ecb6f85ef7c7f83be49ff5d922658790c05bd12ff8c62adfabbb281833d8e5f0b0fd5c0fcb7b3b26c8a09768fafb20200b1a0df1159c9740746762484873fd0554019b9185e42a237bdd27d6a3e44343ffb79a03026ccf04b38d631c4590b686824fbb321f1c6c92446c5a52aacd597b19d8d42155a7aaba08383eba01fd7eb3431fd1759f65f1e8fdd96bc96d02fd61d9d1c8c6a094c5ea9f527228712673b65c0585c590c7049534bba132c1cab91754f86b5ad0b5ac0cbe73b2922828ad279762418a94029897fb68ed05b202b968097a954a9cb06291625849de81b7f9a070d81ec31174c697f41dd878538c0c8267340a6457bca39e0a8e48ff2bcdba2f8f209499c3b5e82bbcd3ccd5d2b02ef27f8228eac0eab3386a12ffb0b80a276b9201a061e78874d941d1c8d62ff1a02a2df616a861f59da12b4c58af0480c2cb35b8cf7c1a2e53a6788a758bd4213092301941d9308f5f623cfc6033cb3b17a8bb6f7460f762d23f72c5c5f7bcba7a35101ba106024dd64aebc91e2c32c512bd2f0aaeb67d9546e31e93477c429ae44d48c9a44e90f59c7f25ad8cf0ad2eda71104f1e0276f7c1b4cbdb5c84ae6fdd4e734958b45632dbb388581ad2df35472b3ae0eb3ea89d50fb7e77e117370980fc3990902b49cc6e814eae9f47262d23ea920f95a66f38f59b69744db3b4682ef6ba1630fe03dcfc9121f053cbdebe74d6ac428d786549c5c8e4ea6732b9a977fa959a336d480bbe956c637112790bb0c3e3aac3f0ab97862c7c51c04e5f80a5e61fa78c8cdf68985fade4dc28acb879caf84e75c3db19decc5a1cf9e799cbe4f33862381d40253d68e7fb6230eddd4df6feb49ffb9633c5c1281967d65305d78e8b7547eb41f05d9f36a635ed2b1dd69d98d70b10e8196cc62e276bbf5203c742a38c15161670bd65482f45990d915db5bc9d02473283487fce236c07efa931035e5f079b3938b06386982d708f2b85a0d94f8255323c12f76c1a53ca85589833043fb77e00c87648ef5f15a8e0193d4ab9b1425bfc3fecbd591648542107623f3aaf7706797ca203d1f2ce020066bed84672f3d9a65825f20062759709909edba28b911b28c5f7b12987ac0e77718d4dd059fa75daedb8fedec68359799be4237524238569fdaca697d11250a8e07752770b16deef88bff35a5c1d346df3917c696485fa2085f4391395aa18f251957a3881114f5dd960d45cf11959074dc2ba96ab3ae0acac12488b7d36c110ced67a9cbb6391c4d218ffa5b62c400032a37138818dfd4236b6bafdfafde4a3e867a66ba673015163037a1bfd3140c05e7a508017d34f916b81e100d320402161f71f02e1b9639560d26dbbb9395a6d64e0c076f051c22f20ab98e5011bb65a6fb08ca7e1c4d6e9749e831f35bb43c486a78eb9050046998747498e32710f432eb0bb2c338a2082334000dca9a548cd86c4b5260b3f665363fd6487d097234b02ac0796728f35f3d21216f9deb62ae2b5b46cceaa2f88d04ea55cbc09d0fe93b7f3d488eee501bff791e9977ecc17b3ce9eb037c9b2c30b272623b4624886b77b0db334cd39d2a3d01f3c06380813fbe916ec9bb91647a6293e902c94254f01d439ad3b50ebdbdc1b025ecff3583d963b9cc54b5a2747e73e37df3fbc2121b75cbb022bce7bfc6976bfeb5a2f77d8604e76100e1e02b4debf052f13e2e775c2f213c1a4a9189a53ce71c3f823e87bf602db727201439e421df2c18ee98875a4632810dadaaaae8dd1a26d0c2178e84c98017d6d0b1c3a583a98a8cf9ed275cdc345371235fade8bd641072dbb019e022406241416f1baaef18b5c8e8ac4118a1ce928e861fc9a605a203e3235981a4bb41195d880272ef5a45b6d13cf05de5a26cb714c274d647648248a604b9fad521b376f8e10a78b47dabde3e3d94d886e193f42579de4324f4083f810e32dc37f0fe2deb0cb0ae103192e02e0e421b886396cd3b187867d57c4f1b34983ece8029a5012226df3422a3796dc8898ff442cfd6eb6e0a4433fe534b986c3bef8489e1f5eee49c128b275b09fd9c540ad1ce6af58a700e681a2a0d6f3d493d994d23fca234cbee14cbd5465f2dac15194da084e17e880f4f4ca084fc5d3730db733649ec6968df0b32e203dcad5a310fe33b5d2bd9dbee02350f9457c8d9ba6e5bf03246ae193c691c74a3bb6bfbf3ab759c7fe762c6a9c9484e70fb8f769f19ccf7d22c48cabb379b03a3558e8ac1dc560e6007435e0e18ec7c830c233906a592118b718172acc82bfcfb8617cbad21ba717701653b03a73f84898afb12e4f5ba8e1b7e85edf0029fab1726e21a734bbe9d34f9c86b7f40fb6375b08c63f8be6891e94574d88c5cb0cb02087908dfbcd0858cf1b8ccb013ae92cdbf979a55cbc014bfd2e59d63a4a2129fd45e6de78f987cb2510fb9ee69a32b0323dc7c361a3e9714ffda74f1e47ccc71db018ce1a40e3c9878e32da8159ee7576a2cc34e3823d70ec8421ba7585636887c966049a7a0964e8951f4dd540e692e8723c7498e376838c86c17f63e47f4bdf6961cc36cb0b232a22c8d3ba0a148a374b7e5987c38522437a73c58214a3d842c749c3e8d5bdf7fdf9ac8349114cd4177ce058a9857b356e361a9a91d1b256adf59da3bfa1168ef4ea2b0267cffcbcb4dd3f122218211812ba546f2a7b69bb9d163861884fb799258e3d6259b04795c73a33e6b780849ff0722beea81cc2b25ca3e8da558a1033b19bd65483fd8c0acb7fb2d38527258f09167b8dae9e841fa1f0ebd0d0e2338b9a31ca74a01f2791a8e61508f3b24d7e5d192e7ecc4253d41a3a994a0344efbab53aea3fbfeb2473985d86d5664b01d52116c9b6a36d4caf796974deb65e321e1b8e4527737858ddd277af69ac5222e9c51b4a03add055b012822bcf866232b71196329b3b69370ed9b043199b7f2742967a3541389ce50a177b274169fcc98d746370e031da9557fa7ac6e122d4d7ff04b95a92988ab820e270d99ac89256766dadc3b7000fb7d5a47f43ba8a2a34c44bb9916bd914c80e8856407c4a73c07356d0afa732b150f6c52dfad00c70751fb5951fd69a4cd53711c5727e64e7f6b8feefd504b56a5495f489dd5ee61aecc48a39da72bc26732cecd794079344e9f4bc7f79f95a51dbaee144f03d90786dbc905328059d0df092fa0ef2d4dcec57397aa3bc491406ea42962c81cb01b8780b29b0d2bacc0002b0bd5aad0c0333caf2230e0dc7c75bed38e46f46446606dd0f76ada5388415dc99b9e55db565b01d40585ffcb979e26a91012dcbb2d8438663d7d3e056923b41293e20e658bcab87a316c466852b263fabcb46376b715a47c6357596481e6ad89d748007c257a24437a8574561ba5b8b59b1ff75bdc2430f8660254dbf2b290a7706859dc2d18599b1023139bf067f45609db464eb98670ad4233c1fb3572c38f14b3e47415b3d3bcf22a6f4a48ae4ce6334b71eeb27f65bccfd23d15ddae75af5619a79963bda545fe5632dc4fd412eaab9a8375ddc1f393af65e74aa7bab0345e003ba69c304c62e578d7f3561c360a3a95950b07df4eddb5da817bf1db1eacf2e288d1fdebec2f4d9f3c05a4fa72b690f02cf57293a60d0fe3972c586ff96c018ab585aecf14e9419599a8f4c589f7bee747629863639f4578c070e7277e00b6e4e0dbda6bafa8cb5cc0d942ebbdaf9484d76cd53932ebe7bcbdd17b5b2f116a134fa9a2b9ff3817f0c6462e5512a987bc0ecca46a915bb1184af2b9852acc9567971862fa6d2344a49a8854c65cfb70f8907aa58353638f7d249720e999cc0239cb729d0c0e52c8a9cdbc5b3489ac690441d5f82dbfc15f43585a57a464cf074a059192b11dcb13ee6082eeb6f8e52ac7ced71916f016fa50f28a2dd594e0cb681c0d70ab54f2e4cb387d26ac3d5c99062febdb17c9c7e6a94603d7af49f9c8ed3e118ecb03af68590c0004e1e461ca09ea2ffc4411a2f9bc56c60b00afa4f1adb9bba35b84032f3596f5639a3468709041835ca03702ed5e7f64f9ca6c22cb34c28f23340616c6964693a8b84da451838c12a3175805800ceb679389c1fe718acbc7c562b848eab0bca3e5d05eaf6dcf047f4248ccc9a13f70c13f70249002ea3b5736945bf105f64752172af0d70cb58a67fc848c4ca7cce4de321d1d4d4f228d8fca476d44b4d4ac265a86f8c53791c03e5f34c6a8d23a6c31b88493cdb654dbdcee6601baf36538e661597ad921c611a01f5d6edfe8539cac277e4086d21338acc2b096045cd1dafb437ad6e01d14c4b6f0875253d5afe78fdc94b62bf4af35c99080c25641a48a93c63f0e30b96ee4078eed5b2eb7627b2a38129a9288d4318bfd55700269ebea10d19c272a2377c6aa25271d8abe5159a1abe4bd6c4718c30626706a917271af345c478aae64c4c98c518f14e6e212cd94f9d4db96d462e40ceaf5a7c1a8fc4a9d542c07d62407988e2eff4ea986e78857b22cd41cfca7ea50980ba063ffe916ffe324b6662040bb59b0614710419c070815563a11931688c8763b0714b41fea3dadbe2d88979fb43209803b70937fce72af0333380cb831a66b713c5f26cbf7ac6c7a76237af32bed3e3d9172737bfa13894f24c13e3f0b9e95b26509fe0fbd36dd4a303b2d24b100c12c4860e40cc24d09e0901a6e915a66d3cdd464bbb4a689b8805cd70a33cfc222945f4a659a19ac58553bb8ae9449800195fcff87881a367ba16288384dcdb2228cc2872ffed253522f6acec2118071ae01e10edaf5581eb34c9fbc65973dfc4529842c11eb97dc4ef121bd78b0f0894d5e39bae0780812c02fabc4e864c5c07f051cce74862423555f56ad3e1d8f4489860630aa2a63a89f238ec4528ef97cf12142877e593c453a768a99ba0c69c9413d356dc24e13051c70103134c30ecb877f81bfb963094c54de9026047915f7a9787a02dc7e62a83b20d002c2350214790856464b16c28a88eeca7d0c25083e5e7896c28e820b0c09f32733edeb7dfda9337c83c7ccacd91568015b400203818bc9185d73b46b3f786431e3826ead34e45c83ca0a1ff57e5c9701f60e47c574b0f0b235114a8cde9d449d93caf20af972c904f3edb0254ddd484d082ef9f9bdc545aa45c651825689c7dd2e87834cd755cbd664bfc1a48d76ecbd3c041a004cd19202b0dbb2bde13504d1c3d5f89cddb5e0770c51d9ce0e81ff48e943d324f33a2a60916e348b4ed3b14507313d45c74613175fc78aec7eb67b869b9612ab713393afbe2022bf9f1988dbbb952230b7aa08539642a9968462310925d911ac9a7282b13690c264e0a953be040b0eec310d93d45b1733836b689830df54e9d3687e1cd903d66897750efad33853c691f0e1d2e226c49c999051d4c47cd2e7245494e03f0e6e883f689f070d126dab198d40bccd8bfc1888c92e5ca024db083e7c2524d7904f8657db3ea2019c4dc08c8a1b94359427dd867caa5cc33e1d650fe62359cc8c19dd1002c522e0f452db4a0592b1fa57670cb88b1ecd6c4924e4fb349b093d1fdc0d25616363094a4b2b38eb87bb4289db9ac24686f71e8dc76519888a6648a69cc548479dac66b2e9c565a51d3e78259fcb0c0204c1738012b30122f4f38f59948a8340a538b4b436dc7435e868f3b3338d3f52d87fe39064738e0a29520da84d181ec5f2876d251b57c3e69373425aea784f1e6c9d8eeff3678048b2b9f138dcdca23ae7de550d83242f58b9aeb5fc43c8d7417d9bb58462d2ca832103e1e5fca51d3e908802773e6460db9b84d15f126caa06a1246920fbc326731efe0d828c07d54832592a1daa5ce1d3d84f8ee010dd131141a6aefba87374d79a7870d2e7579daf93910e1479c58c26bb0e226ba3a17994209c2023230a1e791ecb29fe64b5c616c71102e819a9510cd7789cc14708352b3157eb307dea7d72ad86354991e8f825340f9c9ac051a20b80cad231bfb6801feb3b846b7ca08e0208a69b4f041dd985e511447d56d617a26893fea74040872ef7d19405b01f357b752fe56c37c11a820886f2f2131db939894035084c710f7a82665752f867d39bebf50e57f63eecfef00101a025a7bab5e64026b5d6a4f0c81240197074ecc126597752ddc7987efe0a19b07840612a109f8c36c02d1a9368f098cddf0dd0e35208636606fe360ded006c41c1c364f6ecd85f5d85be361c51a297c64d4cccef84833e8c8f0222916f0643e2206cd02d20140c4b3b50899caf9581d73b900977bd66879a31c711bd2c6ce6e3c3abf541bf6a701ad6dfd00b23a6374e57b5f9e9f2cb16a1002b69827842ecb502909e1cb10fdb44e6c7d29f9e97b3ff319318e78a87980c4528c5d2a0852906f8357a8fdc378394d13832dce7167be032043791cfb86c446edc2f9382dc08ca68f59c5d304da6ddafca8bc2cae5d4b10fea13c640877a9f8a06b98543432c416b0f3888fc84e172e52f0db6c5404810016d341576809700021aff4944857ca947160dd986bb7f6972a2a12dc1b7055a8049e1671cf23a68107dbe9b70043d25b3dfef00e4a24f7fa736b33c86550d87269094948c32a78f12c32655feaff8508a0e0035712d348a838bd9fa42949c5b78c7ed5d19e78178df9a2a473c3a1fa9eb8344354321751393a1328c6f4a7c5763a4cf24aadf305009ba2d833f9ce21ae5cad2469afdf8679ae2b93e0ab01db1164048903db5b424bd69ce0ffef175d93e32c70fe132d74cafc31687d72ccc74c31d5f7373a3c1bb68ef340c540b092539d99fbf98d1b607199e8f71006f6e628293d39c9d9dd11dabb63e160bb6696ab83225aa587c05268aa9a4c3ee8d3cca0dde02bb8417c99c5af078b9829d0e9877c3b79de44698f9de689f204942a877d14c12f5b017be7ca96a1e1e654bcbd4e7dfbf817967b370a17906f73085302c4b3380093a052a75f5d3ed93d91509189e56239cf3b674071b276a2f6ea4c25c8fb1116e5b190e0251d998071a5c50efb464af3fea3b40f0d58790dd1a7ffa2b6692f75991629e2a40b8f0419073c97b7e1af38974e7f13685df5675b21a91b87ccc236fd91a23556430f1f197864af5a3ef04d90fd5a0dc1a3243073b0c310c8d9d53e883dcdfcc0b4d8afdbb6b10b314a76422bfa7d6013ddfba9d3cb3f3e5016d822abec6b33bd7bb0072ae85fcd575b1a5f203a04f30af0cdd495af0937dfc0eb8f9340a8bd41e61691bb733eec2d1e1b034bc666496cf2f3cc24023bdfd713f4bb36fde33767b93705ad94f52e76fde731d18495ec2b04f8cbd0f5ffea3e52f78dbd4c3befcbf1ffd6bf5b0e703b7a2cdf330d2cd9f08460431bcfc3a0bcd790f9c825882c64dafc1cb7ecf4a2f9ab90d46c24a1eee48e72be7da9e7d47e0f81e1fe493057dee7fc51d8e608b28bc3babaa3e735659ad3827257488d4fd6a977904b3fa1e5413ccc58b5429e2ed784985f5152ea45c0bdc398fd69b399ad65a95ffeb3cbbaab66a4e1204701e103fa5675f21f17958d9d772bfa2a38723ec3d01e865d12561800072e8cada6e8f0adc1ad348827af90ef445c58cb9408e85a0850775f793ed625495c70a0d745031267e0b4eb9723be7b173eda2ff51eaeffa8f58ab958adeb3336dcb0b988492559a7f79d79c3985308463beb672d25fc37d58659029816a4b5eab279c7eadeba3c9a091ed39efb2b0cd26982384aced52107af84bab6045985004b9ff85ac664d3e1413e39f778c3fe5d5c53b43c350ecbcab36ecc9dbf9ce7c2f03ccd0b84c38af91d22dc2cd70761738126d6644bcd10e132f92011f6d636e5764c7544736ec7a9d5b72d53b52f9f24ebd21765a2bb4b1745a5c11bf786bee120c4ac68f085bee68453b9c45fd184e9ebe6d8d37fbd466c05bad3b552c5e7c00532dc5ab7fa0fb577059a58bf41d1dc44cfce6ab9ed6cd00b0c98f639d194ad68b384c3cc19b108ea6a45c56b7941a7c2d919b60551bfde6b2d873645d75aa8ba058bef1a61b0b340aff5021e7b16b378d0203af52a99045eb1a69a76e99a78862cedd3a37e9a40bb01f223b46ed987062a3a514b9b6ef29b94dce86d985977da4ca779dfb2d109b41b88da635ad84b88b870f8b9625a99b5a99549bdc7473a548f384cbc1e65ef204d3bef58059c4bba7176de9139d8e092d4dcf27c0105f811bf8d1794c3aef31660d70f43a95e44cf62b13412e5728eb89453148032c90561c3ece7ee907f4c4fcf2d552aef238c5da713d47e0c371ca8221d98b1cb05deeda50dbf57d578fa680e48d30585d32aa9f2c08b10e2ba98b1e8279597a5e4ec67a4e24b7adf9f6e68591799da8e3862d294f61622b8ccf0905e67bf8d8ad1acb92dd75ffdefae9bb82a1d37adaad050dca7981447f3062917a1eba9d0360a6917820a54bc9c317749b82e927ee66ce3162c0ba1a5e3926501426eb80d0fa6fd49867dd42f7126526b86b0f4719b13aec83a9e7674238be899c5195a16bf70e8567ad764f93c1dc64031be4a827c5aca97b5134a66fa91afa1bf733610feeca9ba6bcc5fcae45f849651ce90a4e70a65704c13141d618eb26bf23ad5b463821104817d92218876f4ccac06c4ac50c736d1be08e48e4210bd2c171f2a99862a023f177a4d732eb8872288b99b23af94be90d8ce61eae56609f51bd972b0ff3002d6a021a6622a2e1ef42c1360738cb91fdb9820f228dc0a6223f94da3b89dc50ab6046012647d26daa7d88913dccbdcfddb6c8904f065dbe89af4d484b93dfbf9c383acdc856074993b815edb29c6045cf81282291d3e78af92818c76aa0a9597ed5beb72501bc0c57af34f89bff3a48fe8e0c02453a389d590a0c4c70c6226919a130c9011359d86002b7e9854a82227cbe8395bc35156097ec8b8b2d019d74c38290258331449c00399f63a29c0bb4f4b7194f9296004a5558afe14988097ac7a8e8364f1fde80355b6029abf3d0e72d9e8510ccf961a058d0c36238e03708ba408816f802dc30ed08660b390f7fcc72d622f2b0c3e9053ed5b55b2f3a5e2d0999e659c329b3db81f24a1ef5a1b629a5d098002bee5b1fc142cd7abb516ca9418cedebbd7e670a2d3941da27afc29912bdf42964581263bb9a6e92ed1d525f4c5630c6e407760c0504e521ec50d1c7ab6311e931a0dbf50b6480a3fc0e973e019f75f37d283b9298a63d7814853724572136d760e941e0f69f84c76e287e9a99b2a05a29e85b6e05598691c84b2d62b29bffcd57b729eaf8fad8544154d110170469b115a31119098b497e5f068ce86ec99b6d0899b607c4142dd010e441e7081330ff978b0e06fb3ea99f7d882b5d4454dd037ce04c7a1f74718745325364bb7877f91355cd2211dba0996361a2b13c732fef5d3c57b22614f2547c533b9c94d1a7db80b78ec1290cc885bc4aa32f91c2984636600a932c75e267a492a0ba5cf18d4c91a4c1adfd998a2a11a89931097b03d1679bc88d30a7a4d7a1397b9ddd04260ddbe0eeeb980e588b9062f332f3296bea235d89237e69152a7ae4ef8ecd3b10d1d365d01f0fa92db3919b5878eda41fc118efd5032b9555c81d21cfc823af40b58b49cbbbb789051321136a3434f2ca464ba86b844f781016f5d58e51d803a2aa3828ad10cd037dba81a28c8164b68ae273776f62de6893e74a9ac25487c269fc800e9a6f542b30596e30a6e1d9bf5224394a4a444e12780954c4d7188cbeb311980abbb0ad169a715d9eac580f1575ac535c9c2a8fd81a1fa529f558e7b4e11c4c3a8f1720a3e3b73aae9bc7700aa4dcbfa4e242e99c50468d779135112211d014ca63c63cae9d1fc1021bd9840f2d6fa6ee9b80d85d7a40c115015dd22dbd4c794afe036b9955ad62c6c138d4fead1662886bedb1dcc8c4104866f5ab0413e3f89fb27b8b18e11764ae40fcc7e6822ef38907bf1c2124cc00b380a17b086e8692e83eb8c310ac27ab7435646a686e8dcd66889353c550f4726dc77e4c5a68e8fd9da05f6c84d6fffc03d52059b6bff29d0f8ed3db9b36b2f2f105d8ca4e99cfb504401ba9b66b1852cf69216565f60c3847e856b80a5f17fef489d2205b3401089b731891f132051188e98a68854806fc424892b319f811f4fc8f0b9e7c7e77944546d8632fbbd55a55040d5c9ecfd147bef2c8b40349a48e3b26f8d1a3dde06688830bc9ef94a94a45649099a326665d14e7fb773f01e06bb31d7c26880354a9b4564d54b0cd2ce5797979d26fbe1641bc8bd03a67415827424253db35bf87d637514e43eb085a4ed6fe63d1d61c3346b3174e083b9500ac4270fc0111e7b40498dae43f78056769e25b05b5447c3c524ed82534a8d125341c8a2d4588b94ec3dd3f8b063b8c2c0678181c5138a03a0a32c3ad7d7c8fc8b19c46adefcc4d711bfcd2497ffc2ecab8ca3798dbc485f58859fe1acb172990f4a0d7b17b2c779a546068248d08344d0d7c42d7eea687a320edd7f8f348faadca5d85436e174f60e13573857c0c83f73893c543357c78b00aa67c86d0896db39b81961188b7e0395c38d29fcab1b106e897af257e7c620c281a7023991e4f4e628ce5877b07d290499e3aa8281ed2de51b97b4b1b5a9c458b7658686d9983b1c25c40fa74c429f464bbb9d8f9ce25579703064848e390f8ec0f3b6d612ee6e1a33b3cd7f4ab16e033d022d290c3104944dc09257c7fa27e5514de9a8bc2fb2a9238039b3d8f5643ba24ec22b915a73f4d51a33d938c850782b601712ebec49a177e8925e5eb421e6c58938cdf11ec56c894c97e7421bee8bce2858c77a12bd485d5e70672efdede28f771016070eecf5bc196c570268409e2952ba15720cf66e1cbac737047bc294ebfa2dea2e103283989212f66e802310203bb4377c5b0643258fa52a6a10a9ce4ca55d2ba01b28f1f70d7a2fc4e18fa0dd35604b95e3d40a28e4885f3ff8063ba38ec6af1099a0375ee232930784d399a4c0d97002e99ce43674ec6c68b5e7905bbe70abf7fb18ed313200dc044402ec8bfbc94e126005a83ee5e044090e3c27b7a48111b379aa2fb3810929fce0a60691f09cacd79f0603fec989e1178492b9b5c87f4ac8e60b2794b2e1c5ff93d3f21ed1e317c7750257c6d0e8e1526620757bf6b81664a6fc3a577cf9bfc66dcb405d2757cd9adf218eb87350f6a32872d31c271128afcb6362c22f7b11d4a6871a34d9f0306b36043a82347cc9fbe4e1cd91dbe6dfe74a2f82cd25e858e1fdbc042a42dd745f01e3354d51dd22d0cd3ab985a1fe01ca3bbac87ca106d0eba7694c761a1121df0539fff0616d7397adc0509809c7a3166a82a58960f3a189cf19bbe39cac02671bd420b3b8145a6583a1a30d1a381caae9721fb1a67404e0d6365673fce6cacb330ae2ed07065afbf5c3fd6275d9ba1076ccb2aefd72ddcdf033bca519d77e4535652bdc02446f5287a32b3f98a83d1c158ef10ac4437585a608e6cd62d2830f007085130709812dce4ced012502b5999e2fab74a1114adb88218a298b5f8f0bc25372d6e6f414f6649e91916b107027270b3f95d1053652a8c60d97bcba881b26e7361c5009a181f507a7f14a28cb71a6197ffd616fa56157ba1c3e6ffe925f438d3ee95b6bf78198e6317b906bb30db46828fe5c7e3fba4b8f322fb6ea3855ee6838c0a12f691942595afaae6a1f1c8d19742468c5eb31177751ccbd2cb23afaf4ecaea7f0cf6837315b45e28413e506b1d690666aeca03aa6a286dd433c134d193921782fb801a043000028bc1714a5fa191dcddd7d141af3ee4e640727e147a1c7f719e7e47e18e89e68fde36dd0038ea895e9893ed5bf410f9264145a565a2aa7a0eb3470e8bfed234040e4f8320cfed135da76840808e2bbcbf0b13c2a2f2ff9b92d589174b987ad37e56f1cca0a32100204c3a11f3bb70e29cdc8249417774353a26d2c5f54158ce82b81b55a698a7be814f008c3faaac2f285dfb5d0fa3c970fca9e25b3b7edc3a01002d304306df0628340411cdb3a84b941e6193f3ad95367eae3790c6e18dbb4a41afd2fbc2182cda94a024639791820580756457c121fca544a931bd1635d604bac579e0876e25f0a269ffd2c723910855166f2deaeb94d745344266e6c93776f48075e925831ccde7f5db7335a8ead86cb01b3da1800b0719e0bfe4160939b8d67632c3a44de3ec1e7ad6da881a558331f3238c7d14ee8d8992f75045b4484c712efecba721655be4d98aaebe0c00d4474a10e0e66790f9dc9eed9770435178e53eb4ac8cda196e07079ae1420ad9114c2c3658fadcb851358f89da0b95fccf5279ba68f15272a2b52df5e7f50292d04f3748e35040065120cc7c1b9776bdd996c9774e290ea27eb08ed676e2b14cc02c71693e10bd20dcd4604697a843d5b08fb8ece89888c50cd7eb847064cee49252399228f62a12d1128a51f2ee95243e19ed16319d60f9a76f108882c44515d888c93ed6ed94a4b2aa56c99071a18929011652e6c856fc03910b389982eea56ef20499be99a3df783a3d5c8a4254a37b0a51a9ad68750cc861a0d5b5d694d3980f5988a0091aae9ae8738ea2698c72227dbc6b068878d8bf2b65787d60b41ead2f18de714180521ca22b38888d8756f76730818e67f7d45545e34f92dc8e30ef49f6cab0105dd5b42cb67d2f39a1c93471637770ab7892993636f0ac8148026fd279d83cc553bd822b28d4bec70555d8c1e8d244f92e5a103f50b716095f4acc934e4386b5fd38cc13487d36c0176b68b3f1d0cd71f7b2c952c4003bd37b9ac541a61a8bf7e6f812c4bf05d383e178c42967b2c7ec15462aa6ab066a7c3ff8f10041f7b479ada6d54dd380e88febc13524e01f7b3006979c991d042bd91c40842bb21e6d7c3fc4a348496ab15679f83f78f5533d05bac8f2c5d0fe9295370ad46b1b778a987c89c1b9035918b9832bff3f6028d5f7a7125ba7511624b12805f18c6c82ff361825f05f32594e5b2f3c4f0ae8ddc8ec8292c652cd83d8ec41935ed00d860ca9dbafd03bf5b029b0fbe8d313a83facaacb3a0ee4e8fa7010c428fcd0d15b410d0e2a295108bf34ea8732a0744110fbf7fc9f74d6746b43e13d86cd25538c0da29d2e89c4d9b25e184206e99b5e8af8013ccad5a2839edcd8c445d9c3e5b0e76ee417b681dd3f0c0637596bbe3ab13d06d7967dfe7a0830cae82063929b08add295cefca2448bab0a38702297fc7e5fd387108f948c0501550760e52e5f5272d0faa4b089ac441544468025db3fb366350ed2cc69d478a63ea2b02d320201c89766f474364be456ba8af6e4862f1c152bd7c5853f3d75d77b19b1a608a39538fd85187bbbffb321e721bb3783113f33562f39da5017d05b8428ffe2e7ab5dc02186782af209df9f2c6bb7941201047353fdee1c4c54822ef463f8567df112a224cd175d8d26f0b5aa72325c8a254d393cb6a868c70352180935e07eecb0cc7ca210530a12619cac45a892bc620e951fa1434c797b2c5a4fbf3e6172b173a25cf825e20a3b04b1d5eb81c47ef82031f7cb8c1850317dc70c1850f3ef8f0c1096f3353bef8d5aaa73e6aae37c44b3b5cbd63dc6c9d14b750002a1b528db82f56322e4cd5e93f70631b40b744ec1439c41aa3115a413d86d5bcae9108af99560a0e51aa40db12d1e53d074525db5924db1108f2b9bebebcceb83e3c70cde7ca16bafe84023ecbfe11c5a02a869b6da183e46222f042f74728214ca5373844d80637a126198a2445cff34d714249b01a7ac5e3d9f4d2d4b0607db7173c5ff557e1ba62776420d7a0b77f7540254a06c69ad4bd21bfaa4581bdecf8be434887933b653480fc15f0fc80882a88564e0a6d01194d00a61f7a8e4b291ce6c4dc5472139e711d02d0fca186c79431726acdb52751e4416da30619b03b5cffc73f7195c12794620288f828c2327a2452add02da80ab5869133f693e7dad5296e5414adc6f8603481bea5015880fcf43001a070beef3ab107fce1232d1716c571c6eea059b1d613f640b707697821d56015c026dd84a1d70e67a69c69690a4f2c3431ee99dada45578e6facd8501d745b200ca4f548bb56d3141d6617037a6c19f15a33e0e86e106aedd4399dbd1314e1b85d689a544c02546eae2a9ee6492a3a15d1615283f474cc478fbf3adb912755e19d45de1fac2001605ed8a12af1aba026111248e0caa12f0490ed3b25f34fbfc96922805ae4afbe1efc1004f14ffe7957b7b76dd4c37982c262d43c1b6cd5076c42588cf74d5cda25e9d7654d33f483638350e145de08acbd6a53da11c1f103558d8c988d34e22e4485e739076b66b9d7f202ebbed8555d30107c4c7ea9146f23841921458c4f908d47bfab99733ff9353051fd1bf379dd6dca4e33a0e5106a6228e5a1557c98123babb461bb47d9e46e2332f118b5b1c2de7f5f68fff44359f835f27a3457cf21cd6e7c934b3f9a3a8931284562c9125d62929971ad4f0cab57afaf063493f1aa570cac29b79493b8cd28b6e53cd92b478e9bb9fb58a94d21ad3599f47e0d46d92de7d10e60365d140648549ef7e6b67ad2e0116f17e534658b581964bb8f5728c6e7e235da715caf809a9522af4e56e206d289440c8cf1678bc3d0c853b241cfe385c73dd02155cc13588cc1f4ab8b20083ee8c6e59ce091666c150af76a88c4ce7852277b98e2aa1bdc15a7103327eb9072a7a3b8d4e648656d43346e239abd04257a9503e71e772796ea194a354d4ea5bfc188cc255ca4c398a710c2302ac1f2be597b472230c41db51c1a2d19570a71e7e20d0b325474da1b12ebdbd4caca46801bc7d418c11aca831af5d0b73fa162a392f59b21bf86f13f180dee82da010a28fc58f6400a1254d05d673737150742fe1e0d5117c4d8aefd0290bdabff3c25f872b218e05d4cfaae9fe092307554aff705cc6900d723154796ca7674347c0490a7998c1217bc40a3b7e7272376a166a8e78206e584399d9aa2e047a7fdbe05c2d76a428d85b2b70dd4d6964e421947a9611cf719eb55046a56a9f4282acab0bb794915e935c8a16f0ab287dd35f78bdd2597cf31f8abb7806d9eee572db040c3ad2aadf2a5edc39cf11e56f7702a8865048b76a70f969bc87d8282b02814a4a56809c014ad1c5aaa3fd9c2305a7032ef341ab94b44fc9fe8af545a16908ce40b9a586e82e8340dea627430cd1cb9dfd15895cbe26e4df78ae961ffeec108383dae0369726395a98eddfb9fd0deff0b6db86be8e76ba6364594bd78264feb68eb89c3309ac01a17b58869066355af185c57b5be8d54e6c6539f18a8be7c9425e21b212dcb7199571d19f7f1f7615d4dc23aeb64a8fa0e0a6d2dc7a539cc6c3a3106a4685cef8d5dba48c362ce56e7f2b40e4c7d9a3d291ab0f1c1d82007b8161287374a6534b6d4221a748c4ecb89d2bf85140d8ac81a73556516342aeb1617f9837446c56c8d900a80a6a820b50231c27c6c01218f2c76c37651fb51892cf18ed1e66a5e0d2e0f417fac140a9fa0a1873d50261f4735968f76751e21411034563f8d3430af96f79ed0bdf70bed1ffb861f65e5e00036d4d159a668ee8d7aad4579f7e63e132fa284b136052e1a7d0d6082d510be4704c415fdc5b351538a646f0ab9568feecd604b3f153e92c6947565e9feb86cdcb9d9d915a4d4856b3f6e214cdaf7d6ce534081d9e14da2147fec61b45a2659b3156998e7c63bd8ca3a680bd49c754d800169be889ceda1befed2e63a467c37a5cb813a178badc9eeb2a30568133ad339353db7068626d45dddb503fb1219a74fa77e7c803536d4b1dec2041c93c3a232a6415508a8c05d13dfdca19a46041c374e693886ecc1f1711d24d2da6602ec4c3b0d37cbe26a2bcf8f21616d2557be163725d792a6ea7958654849582806c2bac258aa5a8b51c6c39ab845811501ae0b4a2ce3df7b8a1b21a94cc2c22c5b9af1c4fb7123a5e45afc610aea8d1b2b2f1a912947c976bc36d1173da46a8ec041d90c79e38d9b09db98cd3be326247e06d31ac9f3e4ab836f7b0e10be3aca8899cc7fb7f3b184cae26fc02cf7215a91c42ab3933834d826190a61f2784aad17d6aa9eb1a9713371c736d69abd89d05618c654c6f6bae09522a275f9b6b4295747ec251ed99f253e5a488873e328c98fa28689ed8161ec24cb1ebdcc9bdef2ce586acb2168a994b8406a91209d7f5a42b6f5d92302f7ca399b4140b0a0bbe288dec8e6d9db8b3d339d8a389e80c7e3a4da21b9af49aac101b640e5553052f9bb2bc881b5e9a84fbe610748229553b35a3d8eb425f49757fa7dc831f28c6e65a38f44e6d4d5ce3f3d5bf04cbf2518f76e4a7100e4c94e4cd017b4cf9dc08abaf629f53d1b131f58eb4cd7e23fb55a176646b10c0bc64d9cd8cfeda64bee22e95764a3e73f0d3163e4b4798cdff358407f74ea807f1d5abce915aa556508e38012e6aaaa265ff4a210f8d906947d6be8bfbaf0f19cc063a2da5ff1be71faa2d60d59e0f4ff77a9aec848555c9ab017f1dfec15ae457e5dd0ca47d7409da72b09cfe9153d5f715dd14d988486b191e4f415a44ee056c9ba2ffe4c5b07c5b9585e327361a8f44964b371604709b98a27a47a8a8c014dbf803a1afbbd2d11b5e505960678baff8fd0caf66eeec03a08bcf759bcc5aa9464821ef9a355225747fcde4b499bdb803635515706b747e7f53ab6a3eaff908688b0e6510df7131af25e5c961fe2bcb6b8856b285d8cc3a06a86f50f5dc57678f93950e96c389d98e9738cb33c84bcc2dc3394d7502a1eaabd9d42578918b6fd3a21f33d174ab8d55453417afd95d5195b0aee703eb7789a7e4e3313d518e7b7306b3df3b1f593a6ed916aaec918fff023d233cc01ff175568afdf410f13768a0cc7abeb10bf1024e0fb7223fc47a0e9a9826e6c674412a76c3599d207e9661db0243e174b774bf4ee687315c88c976286a0dee8da8c1b82da8225061b7c8f9b82b412992b3177bbd79c887c256805e4164b9277c107fc03a20b8a13983decefd1ef9c835fb0ac67223752691e6a2e7807bf7fdcf79e2655274783e6a4137103244e2f2874d41cd8f4839c8850530fa4ea8ab382f97c488bcbacb7fa6e1b1a90cd50fa8848793dbd3dfbbab76cca6e5825bb42c92fd452fb42244427698fcede54f34284954f62e6e0882df130416d317699ea881ae95b2301b997f0e254cbd4e9c8c6587fa14ceb680066346888d0fd7eb551c1a6b06c13912ad26d41adee9d04d30287b6c94745a649239fbe6d01f5e281943e6dd04dc5f462113e120916a3c0d4ca03b046b840f000df47efc1fdb688239051e16aba174db9874016c7027067ce7b052d0716598b5298b71f061be3e6822805e42d9be55a54c44c7f3b134e2911656e2a3150960f62da67776ed8ac534b5a6453dcc6c77080be6dbab6e2988a1393824f721c6dbd8d382083cb7a3020ea803a317634f36f913bec87bb47355b4ff1b29d0171a13389d335aa460a86dbbd584307283589bd1c3c7a7378aa106e39086ff4080af9aaaa897189021a7ae5f7193c20a57259f543c8d8d9283f6fc80497e53e8baa1db59cf5e27e8b99668a0ac13556fea89042605897720082765488479532d338a785cc2163c083cf83a775a2c668fbde5eb93b1d06e3b4fd77aab7dfe6e5a2354d9f7b1769ffff3f47b65adc3130778bdbe111138a439973fe1a3e64f312b1f55fdec7c3954fe51e9d03b7acec1f281d7af823ae740b989004c325f73284d9af021ea04b0ae2fde47dfc13fe2817af09c4e52cbee7e48a693966f437c826106dd806558fb008eedaf00e9cf5409972150f0158560161183e0212007953c72326724f8c0ddb8c71abdd74f64533d1f64a0dc962e357faad000da61b98b825d99b700b7b42380e466da4c91583875ccec5b6da74991626c12abcfd2a54650881b40165767391876f27c726d877ad0ddc249c336e3e7713dd6b34c5067b134fbb94ed2a842cb89a42dae4ab5304a191f1110bdffbaf5fae90498736592a36f98557def28bddf1d8e5f99e5fde98835cf4abc0918b638332075d139b26fb3414d58d2a67db35355e1e021a0428287fd0e0d86ce21335e01d83006b38349b2cd75ffcc0529139aa97dd599635f527e49a61214c1d839a8678d35d41f706c48b637dbb1dcb9e7d2e9bd06a15bea28a496015ef2b299f5706ebad58ce72e53f951e564fd05342906d2682686eacbcde5642dbaa7dbf0e619b2acc20756869a9bc3d3cc20b2b7d85008f90f5c8d5818e5ae1c1041d46d53912e4b30f29646050d99c9e95ae35a8c7620741336afe1a5801fb1e82a4e0b87520ad72fffa2977bc7bf50c3904deb2c7e6b6b064663341c37e0291c4a044fb4b12e2dd1befd863645b58725733e10b10d5383c2765211e993c1f67be2f78fcbf80ff7ffd4f13e87e0ed81d74c1211f7b41b5edee82f5e6e10deccd4c8da3135ce0b576de4fc10358d29be241479885d4f4ab98faf492331c028572622081c2e98b44e2f433ae8335b4373b9a001445aedc8a2ae03851ee4b090b31cd8181f06dcbd7427143e64a7f0be8dd1e3c25c24a191f88b09b231e5e6d06ccde262fb870f93c2b24c01ecc3a558e6978718eb105d21484546fb6f77c963836c28bb01904a112a2c5cc0084149ff0715271f21756fc52da05c1448f52d34be459b5f2258b9dc7453a3e685abf59b27e154b0e307444412970708c88bfbc3560de13b668a734ba3cef2e694f728038cceff86a280b6761c1e0fe06aa452435afa14037bf480bec31c153beb3ab6f0b91a7d8ca2113d342b3d2d2ba51d28d36dfcb88977e22278902ba9fd5ee9b3fe4e2fc1a93532298861ee4803a49cede178d02937da8a465ec395bdee13f376bbfa529c2daefa3919200cdf4a49151256e20faa024994de4c981a805bb5267c3ccb48b096dbf4bb884a6ba04b11e26329039cabc370ecfa0eefcb1a5a6dc98f25dd40e806f3ddf36050c6d6c552989107cf812b3c09fd0cd013ff87d8901d978b1ae9d172ba4a24f15ffbccdc15c1c625e189f1039965849ea0fd01c2f84e5fe13bd8ec9f0e3c0622e271dfd2eaf48e977f6af0185c418f1a7db5dfd0d70ec2035c04081bf0590b9300af0b9192a11647f0f062c6dd799b5adc02414a396ba0dc66ad92579a794e240083752e5a2867dbe3fc8c206fdb06cb26c187354304068df01a71dc40d8149cb29433804847f054cf9e971fe844d6891c1c1cf0ffc21a411e69490d232572a495543ae351194450c368d5c7b853628a9666fe3e21c93ebf466fa1de984880545d99a484fb207e5d9073403e195665e1be31fc5ce7b09c53854fbe020011f02f5859375a8eaaa81ec4a59f78f2ac2af0c78762c9fc7ed7d32a9073f988b5a3d32e1fc005b3f027351c3e5ab8703288991ef3876e4799c9216b713f29db360c02e688d10255e68e44db0b84b052b1801e051d0eb7d87caceff2a12299827dbf0ea7875220981189af23ccb0ed5e4498d16f33a48290fe0ccbd5e6adcd00e82fdd6409aacfad077a646f064c5993bfe98be18738d1785e885ce0b410b8f32eddf0c5fdcba1dc6fb89e047af806ebcec67583db6fa2bd65cde3c7818f36fc3932a08f7269d6ef1df68b8fe56bc8e8b80efa7b47d27b573ad0e39b815aaf0b2d148dc681edf78cf60a4bdfb3ddbc05173f20cfccacba0f8a2527ab0aa27c16f83a8ca2166ea744dee323fb39c0a582ca04982221c0d188751f5f0b14120bead013871401c0368a8cb0e6818498fff586db2130898e668bafc848ba0af0119ced190de52574906f36d0def19d98286324e48a66ee97556681c6151c96f997554562f0a0de638d9ab238c802426a034b75ebe69de182b34cae2445b9cb6dd74f16b732dfa417ae9c3d8686fcc19d1121c520352e31e959833273c7c664dab2c3bf8718890f65efc8155c9ffa5a5e4326738bf35ae26bc2e0e1639fca7cdecbcac15b09665821bb27623506141178872cd71d11031235bfbc598f2628da1c5e2cab13e55c2fa0c1df26135d78a2feb9f95628dd0278a909e2e0a7112101e546e75cbcc19e4b9d1e9dda0a2a120391cbbd446e909d7dcd92014b69d66b0f839ced2a7a8c2982478924a3bf32dd39ff6732442f441b0d8ce2250bdf787b741900a3456d7aabb9230f8513fe49542d24f50c3297f820964c36a67fcb6045316b56b20e86499bbf54a47004c7240df396de9d1db23adf8f88125475a09085ab06010b72115336b78a45e71e27b3859d1e31669a4da737a04d91ff3f8927c8c237b9a63c49b64072dc0449583a232fb17b0a07143fbc29314e0cfea5bd1b608fc8e5ded9213d9d206e35919fca0f032b6808225e7a4f6e1a5408ea8d34b6b9ca5d3123b01b0820f824a43291c311f90d6c20c09c1710d4e1ffd459c23595540abd3171e8707f94971fb1783e7f9bb9031e60d85f971873cec50aa21b1deaf04b9da938fafe66b89cebe843797cd3f47389211d514352ab481d41377b261998f015711f30c0c8bbb6e869cf1ec728a6e63f37e0f8067f63d04211a54cbcfdd821f95c3a66d921b470c344162e6d4769d8fefedaba7b4837884fa03ea096f9a5b3054b24a078e941c1ca59f546b3b09c4afe6b21ba0716dca46f2657a0464ec29a9da957033de88507a9c8f9eb13e9805cc9145060c20b2f9821e8cd491bd05d7e0a424d45cda696faf8c9521aecfa32f09d97bef2db794522699027109e10996099a179a13cd895665ce2e082d42776a7faa1ffced3b30b849e8d72fa4de01253fbd6f47bdde522f08efe0b314eff0773e7ae3d9e9342fe91c611dd6914a9004124364465290805b42289515f0134f039b8af0760ee1ad7f911a015f1f38079e5edafaecd2acf835490e8179f0932696cb5b32debaf6c4bd27cdd278341f0d170d4f3524c5a34aa15dd5699c86a73e9ed87314650c170f0cb7896d8b2c5c543257e2daa68b87ada082831d5c3c309c825c544c0e835d01142e2a9953213b97a4cf49694bb360b8c743fa4a05dd702259c79cf44fc768b2ab5c6ce33ef4e72a37eca4ee43f7d8353b1d212ae9d5693e692457d6314f259dc6278fe4caba44922b3b91e88fb4d4e829100d7a4b270fb885f9f7d62796665db7306e7d6ae19c76ea636b7e7ef116fb26d2cc17dad3a3bef0f4a1f46412eb90597865dd2ef9e0ad176f9d4a22affb36e28613c97aff7043492405b76e2411e744992f4c6d91c5dbef8ab79e947d71fba70a0f98cf24b9b2ce9d0ad567d849b1ca95f1b0856417d4e90b6f0ad3aadc70223de0e4618ce768d07a7b2ab041ebfc404e1f1289446a4edc1e7aeb2d040a35687b89b745dc13ccb773bf0ef2b6df26e79cd3ce6ea7d2db2dbcac931ff6f150198279f5faf1604f80c1c4cb22452a825e2e76cd20bf7c7151b1274ffbd87183f3e8e7ad5283d6e7ab41eba74f7669d05ac77a6eacdf538cd742fc234930f69e6c2751cf94def6d25bce3947739b5fd22beb610ee9a557b60cde6189c03aac8700301571e9873e3f745311377edbd0bc89c43a6417b9b29e4a5d6bade973a141eb471a6c196ec84b6f5d389284d46943b79ddb3af7492f0d5adfbc2e3b9d75ad891bca2e6f7d22496bef8d486fbd93ec0358cb67b6c17e2412f532f58d281bdbd81ba3b738569f3e69d6c42ce246e713ece7ef61cf9d03e2d7e70e0525ef4ea9d72454ca26a1c4d39c0ef6633ebd233853a97b31f70641cc6db07ac69df767c02b7eac32600837e015d3e89b1b2d56be5c5b24a35cec09e9c38d31c1f4a1881e03880fbdcbd574f8f0fa088650c3877e03972f53062e5db82c717955d9b6acbb2df6aca3d2c9dd12e323d9dd2da594922953f6426fced9eddcdd92d5ddddadd15c112f75d6c1524a295b82b2f9684e1a411c2ed90c38073bbbe5acd362956a61a79dd36a61a79d58a5604c8b55aa45a5989d956260d05a29a6c5b4956a61a79d608031ad1676da89550ac6b458a55ac8cc20953c8661961914f2ec8b5d03826820bc40ee17a9330b9b4d6d9b9546c73c0e82b98db4ce2ca46b73e326955a66b1aa6561486ab13ab3d0aa6b76eb4c934a2dc3aad5b2302a86559b85a4589d5970934a2de3366eeb4c3ad24d330c2d0b43d29945a723bd9ba6d3a452cb2c56b52c0c492d56671658a39e6c6c63bbe5ac996b1e67473e03723f7b499a43636459178a2919bee303fae33727a5b46213e875840847bb9dfeea5208522b0201f58032801c372be611a1c41dedd55f3f2bf4d2a440508080da637dfdd0ef353bbe7eb0de248e771ec879964971cf078e0ea7b9750fb167bf9479c457dce15dbb7463248a45bdeac8233661c509d6d13ebfb05f7e71283b1aa235c9760c9779a7bd61e71b6f708e6c34b2c28292108458f231f67c18488f51616beb43ee69029e8601c4532c945580032c4979e9ddea8bc5c94524fa7b4fd61a9db1fa89c58d1eaff89003a30602fc0463053f6fc846dd29f9015a42841de8408907545c4c62a0c363dfdddd5b0d2ebb2c91918ca89f363922930f4be8f1b3c88a0b3ee42b587e7ac85a2673c931e784f23346f919a7fc8c4b1ccd17fcf4e9f6a61cfc01163f1dc7c70f2140c0f2d35760a1c94f277244043fdd851f1cf1da52440f0d7c8080f4530323a02d5004f1f0d3a350b3988a2fbef8190416fcf449140316775e2fe26b0910ddb457004a5d7cb3902dd2300cf341920e1896a1cc0760e050b740b23e30831a61acb403173d4a41f07003a5293d6049528ac2072c2fa52b4eb8e89212833e5321c6ebc3eb5d1465204921b7b8dcd10f57060b0b90c02802a908465bf43040085d8450821c1817443f9fa91002125b3653e721c79e61ae79d4b60ddb26c7cd6e7257ae24f7f12871f9fc31bdd21a58586102537aa9dc86d9acb2808459d36badb5d6596be5bcd615b4aa69b57af45038f2875cd52e86ead5ab4fa07a8d21526bad2e13c33933f69cb2b14d08e3f3d5b7299d4dbef50edc8a3e2727f1b58bf8da407c8c65349195abca79e72e57d53baf5e2bd799a0dc935fef64a081636016f57a7dd60a64721f5d8fa4aed7ead78b272f857699be282457d58b434264dd96b44f49495acb5109fb849864b86170ce4f9551a9baac27efa97efa7894b8e24bae6afc91abead4e369b07ae74520b9aadd921b46a5afded5e39666d51047e4d2ac90a312cf74e91607e750189fcc49940ae8cd997b6b37cf326db398ac4cbae70d1bdb98806e77aa14aa4b5781bacadb53a5207d93bea95468dfbc3d4e75427c1592d8cfaf72498f5d9ca7726dd2623e6ee40af3e8099198c5308c9750d07daa1430c7dcf4bd406548f7a95c98bfa08a9f4a88c921c02e93776efa5ee0a1a242f7bd80b9c94d9f2a7ae64a5c2f0c3179e7d1bb8f874afc86749e7d3c9b77cec3b9c995b8d8c52eebecda62a7d3029220f1a743805d99b7a0535d48e6aae8276797f554d13167d710550a26c75c059363df0b548660def90baae89a5b37b90a9d9fbe1730ebaaf8a9a0b955a99039e69963de399d5bb765de8d5c4976718659b99244e6c7829d3d9d88208828b0164f4ea71d6becae0274a280921032a1bbbbbbbbbbbbbbb16ea31f28f4c0014b00592e24cd486118865d94e69cd9704b886742af240a383fbe5d62de83c8fce6b536554f90baa00f6916c7607b3baf64cb07af7a52cb603b777884fbf9d399e7e3e47c7e6027e5aa37ad0b737e760a1b0773ac70811234a3a21ba91935eba859a186a45991da95973f7c0bf1419ac40d358d482baa4959899a5a52d29cd279f668973d7f90534aaf724e593f3aa79453c6a51898885f800f3e71430bdea4da9bbca29e793528e67845a9c70e48eac3242794807d4796401e49c6f4e67ce04c1470e6270573eadbfc6c70a409369e8b6670e28b686bdd821a9ca2093518bd560cd38234a166319671f4871aa13e9f51b9ed6d45952e0f3e5be18497df24a7396157f2fc8531a43df46784cf8c8064d700dec1cff06ed4277525763aa91a5c1fd6111df3b9d1cceedcf8ec9b44ac233ae6ed49d15cf3a84de955f42d5eab0535d8e4865a50a43f27a127e49cbe79a1929f61922fc26e847bcc31e7b8239cd48d70cc3960a7977e8b6630e3637e70a2c415fd0775e9435c4a9f1fcf741ee94a6ee8f1063318c0873948f0c18b086cf043097c80c1cdd2ebf5aa41f2f082970c637021030aa2b8641145e8412a7237632415961ca90f4bc0410f36f490a5a8072f4f907c5041110f53bedde2fcbddddd5f70a8c156f0e0a5d7eeeea6f2d2a7952ca48348a0650545a8a0c90d505c0df4dddddddd7d05065d115fc24bb73478b903d0a7a290170c60626a434a8db0c587351b3b69b7447c77910e4f7c17f988e0ef8ddc1533f6c6949054cdd28728207c58631303962d6a32e5bb280728dfee454e6af8ee6b49c87235228c0aa0ccca0e55c9e280624537783182e9221aaa4c8290ae298228109396e2c82505525f249e14bd8a7068410f454729315242483ad82246d21231927c902289ca83424865313aea31faf6d964fe4c28df6e54f35cc4248aa21ab63c53310499e7a21a90de053f4bb8e0678a0b6e88f2feec021b9e644911e8238d9119f5d4a59c72ca2965888a5064fb1c9ad371c86fcacf25821aec2635355d3c51a9b0d8b0b1a5468da254ca0a0d8d171a34aacccc7041a1b4c8c864b9121353040393b42549a959f76659723a613199a6745d158ee3b26d4b689a952cbb62ad972ebf93a4e57792929e39871b5a244622222a32b21225a8c1a636371f8da49ebaa4f2c3a2208998969a446da84915a9a75ea9568e72a8460d56a25ab4c5fafaf6c219e1a8976fcca859f1b1a14897be1d1bc2aa6044cd8a4e95302bdfbd05dbf2ed23f80dc7e1cd80c33d461c8ec36bc581c3a3273f1c1e531c371cc78d1b5a7e840f436ab06f7c18162737b456e8e0ca5ba2a3a2667590d151b3428b7405a959210dea496a56880dbd96c883bf1dc3d2ac1fce61a12122a32321ce6128df40dfd890956fc7aa748b5ded58946e4d175634a51685744b1dfaaef2ed3b5df434ab8978fe1a6fa78b9e264dbaf069560ff1fc2a6fa70b9f2e9e74f104a9593d82e7b7e1ed6441c28245a9590de5f96b783b5994b66c216a560bf1fc296f270b51519151b33a88e7a7f176b21859b1d2a5590dc4f3d3f076b274f1e265a859fdf3fc33de4e96a12a55969ad53f3c3fcadbc9b2c4854b52b35a04cf2fe3ed6449d2a225cb51b3da87e78ff176b21c65b992e50a51b3fac9f3c3783b49444545494acdea1e9eff7a3b494a495b92b6647935ab7978fe93b793e5956549962548cdea1d9edfe4ed242161c112d4acf679fecedb490a9a3265a859adc3f373de4ed250952a4bcd6a27cfbf793b494b5cb80835ab73f824a12596306a5637f924232b568e9ad5383cbff576928eae5ce9d2acbee193ba78f1b29394d4acb6e1f9a7b793a48573e22769611dfc3e5ac92ecd2edf419ea494d2ca18463dac1b4aff34d856b4dcf985d1e8da70c3d9337bacedf9f9900671518fcfd3a12a5f7483d0eb782ebae1f59476e94e881f6d84c08f08f4f287b6931bc69feea15f0779f7c8160e6fe7afe55f8dd2b38b6ce1f8ea8f5cf592e77b69fc31f96043d479c27083dc109d4f9af450306e3869cf4fe4ec462fc004f294c4ec8a2dcbabc8a399d42f4c71f1ed389c93fada39f20b7c248c751c10db490a6261d42998e3a6db461597ca181a60e5714e497487a99af38790166319f2f32d97a8143101f23231399b5504736bb901b341ccc3f8d8e7757a45a4679d3fd54ef4f9f578fb85d23b1095fc74cfa6c1ab1dddd04e15582e15e3771b6c7bafe579e996bb96bbdf9798df4e61bf87d22777b4893b6a3e4e5ed1cfdeef6e6e236227a70de76cce4ee4880bb2c5dd53c84601c8a17d2dc4eb9d3c8e26e73e18542a4417e7d1c57d3d9ccbe43dd3b5847326d6159904577743a6cbf43199e1e4e2bc5ddcacaae964dcc74c02e69a14aff914503c0684a5884098e887c4c1b9b90141f754eadeea5148bb555b23e858175b8c91120189c49e296c18f5458f5f0bf1e5b383b21583301b0f92ad483414bf380404164c3724f568b071e41830f088410a885c54a4d31cb25143744a4c39811006172f979c5582f879b9b83ba1332eb7e5e4a26b6cb68861d813222b50a6f8fc080d6195da1b51d1277ab41263fcd172c3d8336d9206a3d378a6e20b18cf4449d48c6abb1adeb26dd3362dbb284e31285df36a18949e79ce9c6719944e4323dd1f121e2926538e2f39f8306585e80d5d87807b2aa2a1c99fbc8b9678f9f072f178d2b19ad3ee6edaf9a4becdfbf40b8f4c4b74fd2b821a82b657efbceebaebba7aaaa8ae8647be487b3d7d1e1ef9da9dc72f6c9f1d765f92f9279f9e9adf45497155405ad5397f77de33154550c153304eef6ad7755ebd1584d070fdb1d06f02ad2554ea49ca9d5d77dd3d3ba75c373d1b55dcce4323dcb79b7c7af54e4e976cb6d3e97ef0771f769a45da4fd79be1fa8651af73eebab36d69ad355cff214236d9053979272952bdf3f6c2f8f563cebd30fec9a96784fb934faff35441e8e6d4f9394f0564769f2a48f5cebbaf08e73aa7fba93a67d7905e453779aacee777978f6210a2c6463bbad5732f627163d041df32bebf53c3fc385727662421a4a4430a64d033c30aaa12352d9d8fac100f3350a20652c040010e5cb28697727b29a59472d28ab96d0bdee03c13f9e0524abf2b90524a894d4b6db5d8fc586e41819726aa24a18317209a7871b24929773aeec15d23bbbbe51529a56cd93dbba5941125a56cb73695ea696d2a3557cfd93392f8e55540667f7f610b6f616010638cd1c33cac4ebf196b7579d3580e9b9b4f4a59c5a88972a35bc963b60c373a0bfe3295b2d6717c91ea35099d52ce6ecb494a2975b8ec41ec73a595ce39e70da7553a3517322dd378b059934a65daacd46e5d172cd32686f9bc959bb3335d394fa64aedc69d4c5db42a6efc4ed37c725aa665da172ab15eeca135673ac340ab573a27d63a549ae385290a2a5262da45d1ccd098367b98e8937d5aec89afce48f6a06a505d2a150323532355c3c68de9ec3e7e700db60173dc9480f38a8172fdc3e8e2bed06e1ff6a164625031ddbda6ee6403c35435234cccd4c9ac5a5337865674a3f5e2929711167b4c9d4e955d043a1fbcf014486f355ccd8d29332a32be26cfd3121b7be4384616d8434e8a343467352c6b1cb8c26430f36d9b9ce59827cf56934a7d91876c9d9cfd876c999c616cba73ccd94bc03999fc0b5372f3b869d967dc866d1d86c2ba7b2ba755b9b563139f4ca8d4c93309892f32b4296ef44da30c66ce9907be3a83196721b0dac7ac23cb94607509e56ce41d6fea74a89f224bde4e27c6579fe0b5c48b3d2f14e2a99570dd5591ba3766e8b07152f49b1711863a2f2f13115cc083b550d4539fd42df56b06186604c1dc9a6ee595362f73bcacc14bb75da678e95776d9c1cb328e78590618646cb9c19e008309ba833b042e397436009d62d081a301c9e4d3c3c604a83bc289d6b3c48da1040ed9cf3646951ecba48b364651cfcf18567a70f5fc8ca1031f5c358cc18507970d486430d9c185c311193fece0bac1888c201d5c4b96c860818f8b869f94183350a4a40d6c20454eb1011348d8a00a59860d64804a6d510512f33e17dd20898fde9107cd0bcd8b53c8d643c6e78c31c668313b8534383df6dce8d3e0b4445c19173265361b63b4d6312c625eb18d63bced070e0f2df5f98549e6cff80feaf98872677666be1f0dcec81ded64f078a26b046c04a0a0aeeb3a8f544688387cf6708effacaee9f9fc7cba4f8f339532994ceea3593434c099f219a7de0c9da194a6525e63662635e3353c249c72ee7452df8f191d1a1a6ebb200bf8f2e5cbd370ee1a1043e3cda7e1a9826445623cf31680604aafc30d4e1b0e005741e5eeaa2137dcc66d6ecc53ec892fb99aee9e0b7275c3e3b9e12bf0d4380b723585c4e77c7bdd1997f1ef53a9206b5c3abbbc4fa542bbbb7f2fdcf07619c73a1d29387cc78d6c8de0a3c1ec91c42fcff95c1433c3e87067707cb657d465fcca7c13731f32268c535a98276f0efdbc0dd61dac63fa08decde6a34df831c3785b711a9cdee386676bbcdb81f9f62b827daf7db9e18e9f1edefc5479291b9e7fb965dcf0e6a7efe01c7ea14d098d8e09224211a4251595a0e70545265454821cb0228ff8435cecd2b7fbb6f1c791992373a594d658a9df970462f4a92f1daac8213449441c028ab9444a1be20f51f40bb808189d945eb9f3b928091c2aada1155fd4515f68c4e68d983224c1a4288917516d287ed8413a79293d25514a70e182f10d6a0e6f90025110d1608b123ba8a106ad850db01cd0cfc8cdd75a6b85a2a7b28b526b3f97abe8b16504082cd081972f39107185ab6601850f0dc5154e1c93452920e2f45ca4c4971428f1838d73e4d112d1d26f1997a3599c639d7d88fddb730aa5aeb82cc583ee429f1009dc9a4927e7669dbe307e4c9a72660680754cd96a1fd03de52374f2ead5dba759bc552fe59da69d945229a56a3abf7c9ed67d349bbadbdddb5d538df1faad17c620a69f404e3f51fde10bfd2a20f243181ef5f1373965f4847c68e4e6e7a771ad300029b7b65bedd3ab76fb765a22ae756a23a685f2e9a8b9f45a966541491f47f05c2405e837d9edcc9f0dced83ca749054482e04f6e7d262d2dc1f8a9f3d3d29ffc36f1c4fac441e7f6e8ad9f8e2842e2c9dfbfbec9c0a066604e26934d8e19eee4d9a7a172f931df3ad3f4909c3a3f79262ffea96bc09cfc276f3a9f4e9f5bafb3ce75404e56368d1237ecf07a8cb7f74fb38a5c87f1f6f6e91d38e7e421395d192f7ed735e0e4303fbc1ec64f2718f7d13237c60baf9b1cc62b72fde45b17a4f3936b1d90fb9dbe2dc595f19b9fbc86e2758cd73e66dcf8e14c02faf6eb53cb54e21ceb3dbd38797b03527ef26a7c49cd3a01999eaaf9dcdaaf4783313ccda0661539b9f5ceba20d18a2392beebdc76404e6e9dbb793d21d9b23e63ad07e0adcb16bbec6d8e86cabd8e39cd092e960a8d707f3d4cd227cf3eed829cfea5f83c03e1b9088928bfa9381a14dc307e0d4773828b797893c42f828d404dd89bc2171ee6433538fd7a15a3a8113af208d3341bb45edfe475e18d0fdb27bc1fb64f18913e4485423e9cf918d36ee586562979d80a112710810b063b8420b8befaa8560441c6112e18b0339eb8a8d78f87919a8c81c505434684858b7edc0750e2da9a73b952813ae6b4aa54b08eb9fd2a75ecabdc9d29d6d15ebd3b845ac9c34551683002170c74898bba12d701ba881b89a083537f6c9f429cc5c7c6da766bbdc53efa5e867ec916f692abe836b43785bd3e3af685e087fd8a4ac8f0b18b218beee5056df9e989261f5489bd648bbbd2abe8587ab4f87c8c1128c6283fce94c5659f2ce7e9b564e32b999965161eb4d7c796f1633b0b7d485ffd651d0f2e7b487b4eede5c4a744f52a7afc6ed2650f6f0ab870d1a2e5e4445814a5e869dbc6c0f63ca9b3db8c73e9715227cb5c9a32e73a1d53175075f2e9349c4e2a37e42b342e4459e257cf45517a7eabe1f10b7b7c0467561f9d86848fd105bacdd0a4666852311d2b0c4c94335e68534b0885467a7c7b547956aea8dbf0ee1457255d7e425c902beaf12557f47ea111d49b3cf34c8b42f381296ff07aca332fe5303e370441188661188671181d6ee6343c158dd3f0193f792a1a3f79fc8df3a4579fdc10044b78948cf31726a15f4283d46f1aa42045c998c01c6e06f618b9c0b384abde930f9570de8c4baf88f45adddace3bdf7ca7fb3657f29c17cee75c7a210b2f3b8f1be46a38773b463e942e95bcf48cd4f80a107754e7a251ca0b519f398dd782cec983d0f099cf874479a195f1c2d49f3cfe180fc608eaa56745477479bef25c744494df9a3bb1a7ac08c525bac52eaaf9b7b90ac33a07a9e7a0bec2054aa0ce94524a2975acd3c1116d561891ac501a8d642b8791f68173caa5dc27c586538f45cd925f5cc2c61725a5531aa421778950c2ebe57a83d46b1528b0407da31ce71bd76dddf6a9826caef9ced6715efbe66972a6e086e0d32cc74d0f1f3f9a653f15f64d1b3ad33472d8f8e4c4e5a2239e7c688ba25c79d9e2188d006dd4a747279d7346ead5996bf5e82161ca833b9d7647648b7e91eb3497fe01bac3cb185e3a5ba6b4b23de3aaa86fce47af974b453f219c6b2eb3b8a245d1ebc5831d6916b52edd8566d1cf7ad3ae4044aea4742d8aac5f27c3e59c99624d97533adf2b6575b9a9b2cc4a20a4d8c40529a56716bb3f139047240a0d4ad1fc876c691f8ebca15f20ee4ae69b0d786ff5f9d555d5d9a595d0ba91ab9b664953951b7dcb6060c053da74e64566625c3ae577337f36b6092f9b8aae74fa5b732c10e19c0f5ce9d37b3b955cefbe4083cf9d0e0b212f7df3db6a2d66b10ade6edae9c413e2bf4e67ee43b6b2ef26c7fc24fbe28eb8d1253373741c52ca9b1094524a39e59c734a29e59472cacacc98c932e173cec9cc129b75d239e79c739ee046cf70b8d1e71137fa0e6e743927ddb2f188dc2c250f2fb248c1a6c352ea00010b23b6383966ac72cd4c8a5bd1c8a711f70d3e9cf98e48d1c8281a590ce8cbc428867d3c454004275d087153cf4546bca0e7c23461c41042b8dac1d06d40171849e9736b3c1719418317f1c58f1bf9d8dcd41c52f6de6b5333e53738e0bc61c10f58b1bbbbbbbbbbbbab00c2c1cb22a4bc742fd51d05869d00402878e9386c0c4cd418a106446cf1d26f5c2e6306276c704e4d2480744b840986b8f2d25557059e8dd963881144f1d26b743af2760c42cc88918a2c0419b0e8ae4d646b1a0d802615535074e182c90c5dca60d285ab9118a2bbdb5671f9270f2844ac6828d1cd804290f1d2519d8e4cbdb0e84c1e1fa20af0520a51e5a5b31037bcf4984e47a68418600a1c9c88220a2c7aac9060861ceea472915aec0a62480b184fc5547686c9affd1cabf4a62487aa01e286ef2220ac0802a85d46a08ba5247a98d2022c708892831bfc10bdc034030f7cd0c413483488e28a23be804183bb9847d5d80c608b9f137cfb4d3978f3030dbe9dc3e12f3d8461430f7ad083124c8c88a1c98906d55a4be448fc89519218893ddd6e59ebb6d65a5b535383c176bee248fb7c6c8048e4418128c21a60d6a45188c0f2d9b68be086ac64bd340b5322927967d4078b5080aad497edc176c676c676c6d664f3a1616bc4dcacb65d9ab5a45bd9eb8a5db24ad68b45aad11ac568edbda00c2292b1ac80190fad16948716cbb7cb206bef4da568b8a33e9faf7d64623a6e3e37ba0f596b0638e98b444fd20e02ed9a711a28477d3c281a281a349c86060da77194a71a927294a75034348c9832485a7b6f2ae50e823726226af51faa27db72d817b20cd68873bc6fb7569a2539d5101994cbb812578ca71a12e3333ef3f1cc6c282f76f1fa25579e6a080d47398d2f76515947390d9ff15443687cc669be7e7d2aeb34be060a92ab56d92f8576cdf8ccd73e5fffc8551f71436b64b9ec3473bd3deb7460be93c73fe34dd7f5b819949fbc0ed8cf360f6590c7353813141414d44292eb19ef886e83364fdd1b947d3333a846c04ff4424e9298e78af1d865f2bafa4365bcd008277d1784695002930f17cb346f8b691986695a86999edcd01a3d92446a21897dcc5b06a33e0d4e97f5ac4c8c635e07ec5b19af5d3248b6acb5d71a055923d960cac81e7ddbcfca787c29321f0f0cae98cfc81acd48731b4711aa5a53fe63880d8e15b0724ca56274cea9bcfaf0866bacb5d6da3518d4bab853c62fc53a6eb8f593627da6deeba73495a23ef4c90f140a2457181236a886d4ac7ea269e9edf5ed1a16adcbd64453d2b8303316df1eb72811d860f7c7015022d9d278d5365ea86944aa6fd79234a5505b7aff5043a24632bc1f9d4ec1839fe7213c4f91050bd03d6184efc2cdd951eda8414ad43f77a343cda2557cf02480377c050240b96a0de97b0b6e316b489c53b9352f422dcbb73704a82b46d7b48f070657e61a9286d4acec23563d1baf6700703988714a1d1432811c3644dd544ae96d5b134a29a59147f63b5db7323f11c956f659fbd9b86d4daef4b6345cd509d847cfbeb327a2226ee8b40866d1a18e4e9d688fe2db6757275d5dabd2a013ccd2a260b0bda98862e3c1c9b7144f3ce6d58bae5569d7a2682a78c0b60fed6741c5871b0f128875849c14cf3a8e4e445fbe7a0bb1fd4434853c8e261fe874f7668595c69f18a28dc9c636210dc0b7af9095d039180bcef78cdc724ee6cf32bb471ed973946d629bc455f13ba13f3acb1693e8a2b2d31f3f3601716995d860539fe844666012ebce060c2e75bb43fda252ddd2bed92be937b5c54e3a866a304ac99c7a527adc957db357f48476ea43fae81a9ddb41dbb4d35571aa22e643aa631e1dc33e55b4ce535dd53157e29a3c534a211bfde01c0c00e1561843d2162c84e93738a00f2522468efc44e9564a280914a3253d3eb463c84528b062245ab21c95467d8cedc97c54c5f654b1bdfb91e6e3c76e8fcd7d6c2fe663f45454451df5b53ded63f4a89f6c28712b905c4d67b1d0b295f9ac3f3fa787d4cb246201661561706e993d42a46d283267661ba702fd74af40b2a58a6e9d5d53153f550a996fae82e6f67be1d33e55bfa079f6a9dad99539bb7a665edcb8e442fcb613973d27611dd3318f03ac637a7bdd47ea1d6970ba36c57ae68373903cb75a88abe9d3869f73b219571c611db3c71268670fe6912433dfb2e1c3d32c2e6241d1cf39e79c4e3bce1e264c9c2ab4116d3584487a4aed7d9317876ac030ad6ab54621ee166a16e7ed45d1287a88cae212ad552c7e3d97bae4bc300aa13e8c42420dd670a9b7839ee3c64345f92d7243bf35173d1917fc26b9f654d5b98a2c9c3c577184f4d153d56fc7b37e9b5cf42e145ed04051c623918fa5a2f0f98d7211a82806441fbf24fd48b0dfc07c2c06e9378c8b1ef783df2c17bd986f8fab98c118bf655c7b2ae95cc5959e978e7aeb690fe5b78d6b4f5ece6d2871c32874245bd147ae9a18e21c22d93239ad484f8f60907a58ab3c0d6af0086645133048dd04d4bbfaf5fb4cb81cd8aceca91531d8e2c31c4f6f4cdd99909cbe3ae6492f2e31d460155790f8d89dd07dfda290d7bd66821bbf7393877c04c9d2d2120a4ab00eead453e0564c415c51a742a9fa851126aee217c6163cf530eba20cf747839dd7835b3db442cda24f8b98307a3af3d463528d4fd1d092252b472a789e72442356adf40c281534ba093f6ad2e98be78fde714e741b550437d43cb3cfdcb29a77ed6b370b6f8c3ffda66adc06dca8092ed8fd5fe3cdd27c736fb12bd39239dd68a7b36ddbb67998d23c2fd49c7a187fe62979eb25918ff9903525a7d3f6ae631d9189c2b8e11cb60e66cc4e63e08f5f4863f8c83e198b496cc44424749dc943d9999c314de34212429c8f270fefc3609e218075b4b3635e02188491e2dbdb4b883cb22f27eee8fb31afbe2bba07eb680f59df1e81ee04b6d7b82f9523571d99074edce1d6ad6cc7892db36cc339faea45a5203c4ee46102133ef00e7e1398f88175f08739dfde53cbdc7e66bf7893d5df4e31341fbf90841ceacc198e9fbe135f4a0efcfcf88675c498653580ecc6ee3552d7f62ab6d8c5833f14c008ae90c6b787fd99c0c41306f9e36702133fbc83bfdb8996be584715afce12e4568d2b493d1400eba641e9710ecb020c4aafc12cbb5980592a06a5a71afc893b4a78e932002faf742b7b45d1721446a29755d0b0e5e590e95505931d3e8c5682c2b8c44bb75805d25f31186ef046c5ac200cca1fedb225c4149a5e1e297d8c21be5887f42dca483ffbd3cb3e4ae1a4b85d3db6228928c88d6c4519e2ea030c1251c04b299914ce7d340bb2d52ee99bd72e229a2bc9a40cd75f5a97f418247482bbb9e609893f72f5ba5f04922ba945280d4a8f1a11377e3741dcedc5392e8c20a8598cc1c49f66c5339e7e304357e6b98a255cde47531ffaa4c14854bbbb018d1e7b809cba0bb29539b54e876818312ff3e859df38324b939476458f5d99778363f3370dd2fec06e07b71d89084ba594c47ce6e815051ba4396ec00629751f5d894882196905604e9dc81149998fc8960c9d08e7784c3533eeac2e3d231a51090dd21c393a9d9b326e0bf34310ccd12d231c9106e90c6ec848d4a94fa05b725e9fac061bdb847c04e39bdd1ac66357d53a9b65fe999d9917decdede64e3b1d2931d967ca5ccb92ccf7f9cd6d5113afdf744cf8e103e77b34ab88f52dc8e64c6e166a4edd84cd4fbe39f785479e73188f07c6afc773fdca158d19bf38950a7dbddd655ce67b01c6a3b38b7e617c934feb27cd4f9e2a88f699675f11d3a77de785dc9764fee6daa6ca7c7e66428ca7ca3e764d12dc1f9f8f0689b8955df701d8c7d1adeb0f847edea871b64e23662d8a9a866ea3caa8f48cf7843d0b19a2110c000000d314002028100a06c54281402822d2644d3f14000c7ea44478509a4ab32c876114a40c328618620c20004044606686660402877307ed8b8334560ccea41610ce8160d270b2b2cbd330485183a400072eba1382b1e4760861205b0baa36aa81fd256c69620dc6e364bd52f1eeb92050d0efbd5204d6be66306bb36a36c86e16a7d0c937240bbcc9a703efedfed5f08899dedafc41f3330ada51af9210b5587f5d4e00481ba81954daf3910d40b604ad11a2bba808179845f821afc464b3de626a25705be2b8030949c67172f1959d035303dfa0e1636f3b3176f6ebe2061f64ae05eb59f5f8bc0824a049acb41fc35f1e68d5d275a0f8a3cf4077eecf412861b62fe7a0c460b1038ccae309f398aa8dee0e771adfcfd16e3a9d051ee4020a16bc3f3017a67989c97f30b035e672298acacf9ae9c7de042e61420de782ece6633f162bcfca9ab88c96bec6b966a4a56b2cbd7f4361c4f496406249d9389bb5fc95ceaf171014b9b90974dc808938ee5523fa18f842b8d271af78f240eb4370092a92e025b0dfa4960c0e11994ab53bcd8ae4d211970f72953540df4f904391f057fe9f3ed13a3e945d3f0ed85082ede7346f316230fe54f607c5edbf19c32215dc697397c130e3fd82b5030a7b50c3473d19b84ae5b6553048b281b7cfe980e8f9510f85e7de36e60233d9fe386797aecd0510fede4654be41e948d1e3e15049171fcee857733fb29500b5548d61bb132bb841c09186db0f3e5c416aa33811b13398615e4488b50a4710971d84c5903d30c08f9f55edb1b082f629ff7405fab1ad9a75049844c59eb36ae6c2d55a11ca8be5611bf56c5641a44a807ed5b148c36c9aa871e907ad0b3a4f8ab4e868b069857ca01b178e59cfcde6c5373cd13453d0f0fc8a9aea05b361fbc0e790f4906fd6857550c21bf1b6a060da0f24657577d13e3c8ca25251a515dc54d07cabde3b60408efda2f50dcdb704e55ac8d722d34460c41849cb3f763f333f49e4e6f1d7c0884e4e45e77663ec270f3c7b6904c2698e49d120ea277cfbb5aa8872cb81dc9048f55dfa0d3ae59ba86390ecf546a2da1f8c397f79867cb672f7ffa8cd9c234909854638c825a6a201a028d62049058fb3c8cbfbc3b52350d0bf388b5256013eb6067cfdc7416bcc503cf0bf0ef23d9d86a331f0c5c93e8f45e26cc272cf550f738bce274506e37a257905cb89513844074c543dcdef91431a48402155a8410370960305e9c943370eca6c9384789f0ed80ae5496a12a4e91a3bf98ff451f118c5be947530d4da0348af8e4b7c5e11a8f59ee738d0fa1f61180e86735deb84facc77a1b69c83f8f9900ea80b97af83860ad1dfb186c09d42fa10abaf1723d6c44e11186488c5a4b783a4776b8805aad91745686782be1e2344b7690b0c772156ba07a57de3de86a486f2c4dddd46160e28d24027c0ea99e01c85f047bc0c8cb5cfc8bacaf9494daf1fc4363ce33c3d437f2239d76767a0f072bcaa5468134b5ea6594208856cabe09367b62b290eb7f58943357028d400e806ba3b3a1a879f5b52f940a8dee0e23f1f7ae68305e18c10f0263f6dbeae6fa2a9be78151dfafaaf32967560715aee362cdcb7c56eb1386a4df4a06f0af2419abea55b71277008c5c937f40b591061b254569fd2f635b4eecc865e184804084fa51ad36e1f0bcbae722f849d08060031ba8d57b1fe7f0b93dc38e066e8ca166a92939a21f1733be8554f9430c77ee82a42c90d94b0ec11ff7501341e589f279c66d9c00d709900c62e1a1617cb1960ee43b7bc6a2cac59afa94800548ede08f7bf1422a258c9d569fe5f8ac47d8dbf0ef527625d1304d5f42f8269f4204dd002286ce30c162d298a69f0ec024334b54130d1373c2e790febce4b28a2cc2c4c5d2dcc5973c5596c6c0394de3576e9f91ee8fc8db331b2e8a26e5e5447b766dac7b1083f89d773039e4fdfb6d778715523f04c574dc86e75abfb967b8c21356af50e92db74e11fdf01ccfe718feaad885fdf47bf6056a65924e5c6d52c446de0240242ff358bfabfed0e00fa71153fbc7ed497001ead78ea33145ae4c19e35fe288582238b33215c94a16627cb96c11e6a09b598e8091df2f39096cfd400ddf4dfb17d42403184437b69de20edceecdc9ad421bfe870200888141a4639b85d4092961c1dc694e530db8ca9e24077ff26c51a1a6901b7d7d848737fae61c3d4283a5891fe5e60689ac1a70ef0001ac6d130bc423ce62ab59b43c301e7742edb3cebcabb86909296a444b7d94c7dc0a52ac56f674dcb79fe581e97c22fffc27f787ab24d7e33fe2d31b8218b83aaf7ff5d190158fb3d8c54c69c08062a0cce0390383a72fc69e0bdb20891d6a183492d530bec184a91ca5ce31cedc3ef60f2def1318d6c03a20d04614eb006bca7e5217cc19e144ab964278b52f89e514670f45342095e3ed3c78c93e9602c10b71187d08cc7c6f14c24bce2f52054bfa3ceafcfe302054598ed84e4f8d29c30840120ae161a2209c80e056d0dc562314c8666550b468976f6c87a613363b6cb23d049cea435614afa9d815b5009d6bd47898a308549c08591680158197f5ddedc391d0bde11a8fc317a5bc8e6fbfd0646d0d5f25afb5d115a4d409eb5549179fbaf8d5bf7b87b6e2a8616f004abec32b0aa7537710a71e1f97866b375fac7e2f58cfc18e8d58f139140e9207a9306a0c0befa1a82e4ae2b458e74feabbad289323fee22822418652e2a3eeb0aca3aa18c2226b44154ac780050c4faaaea5e94926a6eba412e718ddc1297ac4230b676f749f545b2bc2a6bf0488ab5d2c8328b16f5dbc5c812712eafa08057653d31d72023b169f850e6dd1d0efa29cb0c404d2e3ea1ffada35b288216d4237a8a965233334aa19989cde89df6d61d80d0b64877273534aed08b286f2579879ed3631bc2759da65f402b1517fbe9a413511830f67645d406bf34a7b348b0a681043550e3e4f8c38925faabe62773630df374780ce3c3316942463b688e5f6898f18f52e02c0bb455bf1f6bbcf063811adb896c7e45f26f7cea92e8a767397450c773c4380048b889d223dbc278a09602b16826b9bff52dbd7a26116e8c66daa56b608c99fefa6cc79218ff14de8abfd244973702444f7597e8804b7324ca624d4a656c629d837a37b3bacf8108def439e3153a10ae03d18124781451bf554d87b86d7e100762d368409a7e770ed03eb44f74aa9a945b2f0b05ce8e9bdedad79d5ac1dd3576657b4ff3834d2861c60930ccb75d29dfa7b8061cf6d06b3a3e5c617ecec2a999fcdcf8f9d516393e19073267d224e214d06610735e63d6eeb4a49fe0e333a0b771c1bd87fe9ab98fb29d0b4a8e9487e04616693608e5e292afc8d46044459e4e993c8fb45d4e950714bcdc9054fdf4c4567e1771628aff91d9e2c8a17384c64c6be29e4a3c2c4dfc0590f03b9365d03fb900b39f847f782251c50b56f028c941f121539f26eb85eb60f47c203b9c8d05a3e86a2c35ec02ebc3d72a7e5c2e941a7bacdd5813d12e43752c711a8b13d33ca5d6167e548008a43148698146e8465ec19731db9d218b967293d78e13a4a0cba475e6d143464f48ed9c1888ba968b0bcf14d7a1bed7e360b65d055fc095b3aa68e81da4974e54f42905d113e69e33d3ed2c35c3f121628a9043b47ac036c5933a517ab294b195fae568818c18933c8cf50c3175acc08c7b0d587e6adca90e2f094901d8ab0095b008213b816df0b99c38a8a758930c4bd15ab18d1b9517f1fdab6da0db5c690e26f76bcc0814197c822909f80917d9fa23d5b1e10c64e34dd4ac21359efc2f13df89e6004a54705a0538f8311ae0ef0aca1c9ff51d934053c1651916cc38db41dd46f6ff2ffde8570654560ce9041c0c97406c126e30b3b8ccdaa715d400e0656a44932b348fa97257878287e600b1aa1633c210a52ef91ef44f769e7d16577cbdb5117be782b45de7586d99cf4118a72fb92b9703849c1a8203b7607906ea1900e597dc7dd08f069073c1217da952f1785089aeb826d7239e31ca0cf33cafc36922149709710df6f159c59b67c7399b3242e3926ce2ba023093f50b90a8038af07aec7f8c6fb777df804e6a6f4f1d89024dd27c4e30c2392f230068190739ae3d1b97db90ba1ec178aa8c70044afaec518e531dfd0ee21456b24ebfb047e24fed10a1dcfb40ab1aa54f8060655a3cd41f030da2f6c28b0640b881692bf9f5a9970f0a14f2a4d5e40ac75fcf93f30681f49b508ae0aa3d94aefac90725144cd7ea5edeade5f4cdb7ae0506335bc79a8f53ecf569e17aac0b108539cae5d79e772f8b8d485af1c4d993b1b8e94a167cd7188f2a0ea54678159a89e4d3c9f86ae27bbacc89899eeef309554a214ff37e2d663fe79a5ea98745401ff3c5a1e8563fb6158c2eb008da8a7bc7668346e8e4fdf4911e9c82153ab972078faf7d70dd93494c8003747b88b4ed4db4cd5b66aa5c07ef475a9722297d8580955fdb101465dbee5ea93e6ef801fa5034cb548756f3ece33621cf79c8b681e3dd18691a0102de7fef6e75c516fdfd2f7825cd093cb45066c995c1c9a47b832f0d8141ff2c3849c3455a3aebd6d0e828d9b8100d942c67d07e6ca6765cddbc63bf404f81b2e2fa7da39586aa2315e864664e6ee2a1abda62a99128b6c18ea5f4a9ad007e6a2cca632f62beac96596c99c72abdf2e4b1a340580fda6459848b0bc3849e77fab9c03a2a872b5d8a72a364d0dfdc4dadb1697add77994444fb7ae4b1cb40bd16622d141d5e089112001d1389177c1f96ef8afd2e047f8fae29e44c8a6d012628546c71eccd004729d4250b51b032c81176df1f94099c645e711fea77d0af9b62222bcd1c7b3c4b0c8ea9d35156ce2e369e542b2b8e0c74fac0f891a7804f1dd01ac0f1f1d2e98a8580cf01c6d0cc72d67230c3c7f2a80bf5f3583eedfacd06dc28606bb16842aa2ff90b183dee4c76d69fdc98f48b550b35f65f3d3da1936d6d3392a7b0e515845d9ef065104ab468adfae0e83c8f38a0ae257fac6fac93b87f46e243038d1966fac3df052af4f738c427982976f73105b6225c079d3d25e667ffa29fa90e5e2928472f11f7490133f531da345f9312c07754b143b0a43b721770f8a2b3033cb90ee67477414260116df7df8b4fe150710b463a91887d1faa2ef5a5277ba035181823e3a32caec45abc2b89cf70246517ada31e24cb4204b0a6f7344eb655845f8fcd4608f735fe1b29d36a7c15eca5f05976e14af5840825c93fb888d3f7d48f5d19ec02a92bb47ba7505f9ee4cbee65970ad406768928de229104115cfcffa3e43a0b1163a357a6286f06e5efa88b7266c8724651845ff0c13571a28554f79a88f6c45caaca74b8ddb13570387f4c8e73a46c66bf8a9881ed1cc9cda2fd98ca0a1e2a268e14a4fce4d2df87d2204962ed23f9e820cf8344ad6a9c1d9c4054ba537b02e6c369693870472fdec3548ada467b7a01983a4bd76a28379c0db54301a4316c6fdfbb9f645af1e97d3d6faca4507341c874bae13affb7581b20850ef9981172c5b268ad2fdf017069e947805cd43a44eebb15c172ab66ede934f280a3bc389cf1bcc2d3195f7e1e01e9e4a345a8f5089cf4e44d76e0bfb82011e8504c881be19d87ee4b23771eaaa8ce35c9b5a10d90be1dab7a93b1f06612681af984e172b70e4f133a2e5bf0bef1bfe6847acd2d864258de21a0d2140752aad4ac120738f31f8d75182b319131f87b2edcfe305c95c9e39540db8f26f24cada85a21029054c777d19e62c4703dc2e70f30a341a6a19a5eb22ef2827e2344d542146bfe3c2782b66d056fd7e5d1311318bbd99881d86afca32bfe49c59e30b255b9f53cafae7e67299f1f8f0c7253080e694462868a46be3c4690bad11ede78f840210249ec29e604519c2a0710d98a0d3c96eccc1adde30a5f2e668227b0b30e72136735c71db9da18918d885b4160eada49869c510dd6968b5621e06ade3eda12724e4fbcc3ce1f5c72f9ee051b1be545cef1355696cef9c44ad0b0e3438834c9ec2ebb568a479cc9bb2ae0ed80837d054c6ac04be3c9985bbf366a366421a53c907a3744cc9a9b2ff6476b7146d1990498dd14b8dc4449619022f3623a349ca356224b156cfeec06dbe59a08620f44200a57943a971c740b68464c4856c58aed27ff6ffcb93f24455e7fb27016290aab036c547ec09022aa0cc1057a60b1872fc912af5d1e3459f78b1a04f6c202084a0fdbe13c67cb32ccfaae11db8e16d57c78a3ab3438004e4367efc9edb20358a2360339be5f43f14410846c6857cad9377d51d0bbc35870c878ef7b333d1a859543466634015feb31080a7e3f45049c2c2674462bf675fdd21c20df12a022d5346d75936f32feb06936a566a0ebc6c8aacb81d6a202ba78fa9d136c3a7434ad7485624ce4541973c5e8f232ba7d783a2e5482ff9bdb98ecafd930e8df0a0fd608492b8775646cf9c94c1ec5b80844f9798bf2bd629410fa67a88f200f82cc448a9264e0fe33a3bd7e60d9c4e1e47c5498c0102bd14056d055011021a4b606ec36b124ec9c4481bcd4166cb1ecca3b3e06a610ebf44c2c9c6708b0130864eff8d5ba0f83ec36a502318438624ff3982ca5f6185608e5fb811a66def4bd532ccbe0f92c370d8d876225c4379e3669cfade531d01dcb95d25be59b26f72a7de710b25cbaaebdb6c13b51b000bf480fa58bfb83cdfdbcca06e61bdace5d9f08022fa83e03dc26fcf6dd2f701e3ec10edbb22e4dc9e5501a6af5dfbc8d620531467f40f766c0ea9034971f95ffcef391a1e3a997ddccaafda1da96f440ec1511fc3802e565bab8959c9127367e16261904491837595ecc6f0d8d5f98ca8c2d2d350652f3fb193bcc7816240bb2b2b21123e6b5400c062df3cbe4bd2ebdbbf82cf40115986ff5caa0bed3c42e2a6a04ba96ffe9808554afa1c1989a154ef464f39b99a3f9611a4db0b8ec07f6b50f8a127ec4887d82402931cdc4f41be946dd277b960adf73b8f6b3b27d7e265069709f5ce8607e73d7f64f8b2e8733ebd6d56ca36bd649cca96b6ae1a5c247602da871a6509e0e201edb7e4050d36cb77969e695801129f28ab0cd3dcd5803e8d4469d46d1d298ccc41cffba4b1430817403107fe13bf7f690e575f75bf39a062f87af7d146ad8d8198d58b6c0f461ea30bfd23c018ddd4226f82bb4b2aa43c025f3a4afd157baf7f0297314dfa641a94fb3f289fb47b555d7f78168199d9528e7b9046e4e42dd4128c4aa3c81b3c16d4f2f033e12a2c15b0522369a992a84e1397b6aab12ab1cad4e039a748d739ce2a884d6eb65673370f030832753d7f69df5cc568bf940f01e3fd6a9aad0a9de5bc641d55249ec624fcd01dcbcc1fc81fcdc81749fd2e8f11aef22ac25e87d0cfeba10e977f8ba3b2d52fccb19262c3487573b79bdd92d90d12e08be2f38938eff2e7840d763f279dcd8fb1bae8ba442473476c86f8e843af5b8fb1ddf550ae32900028ddfc4dec54d14c28193f0f21e150cd50a2949c1fd406f1af8ee3967e4ecd5f71be094126b06d7ff785ceb7f757b74157dca0d6d69d8e91b30032a5d02cfb2d806f4bddc53b0c5dba8ec8427662d6c452eebf40fc3326c703a37120b8c4a36c9a8d0ad2e5e89fda06006658ca3b4d59c4e079f0014cbb09fdef1f5c253345be9e91a98813697045a83206acca9bb92a2549dbfca3d413819113299243abf92c0bb8193c84aa5850463bcdd262639a252e1a84e8f539a205be1a2f84143d70efd98888940b032b4b913cd27bdc90847b7f8221481df5a8c6742ebf660dae7a713a4216bc6af3e6f907a473de904826a029fd042ccaacd672dadde13633b71fe262517852b53906796862adf8c79d4ad82ceb095d206ad9cce7b68363d447fd669ec596f2aba543b60287d4f4b9e8570c039d04cc597b407021e982614be9a4a34903c9faa51e08b44218f8137a66ea6a79fccc47598c2b29946dc58c6b7f4bdf308483306c2c69f85a8769a1ab72d4e531df6564331fe33e2a167c93e81836a9474a4a426c484a82e7383638b791d9da9e834e79b670b68ed8b51bbfd19443976666aad89bf089244a53feec7a4f3979734f99c464a0f573e1c46c16e064b8aa52b116202407c699cc789032d076938d5f6d0d683a0eee68b916247757e971f4f7bda393d9ea28384a18421ea1570b567a505751d67511de1d37847ccd09fe4b7f7933a490888b7f128c9b22caf5766e9b4f241c243c53da0bb2f01c42b4e75b69f796f5f3ede6ce63fdf3b4b0482983db52c880e62f14f4af58a4c25f5cd028d5a9dc79a099f81fa0c4c6c24102c38e3462fb328b6a2d9449840abe64073d9cd813c23e760b1366f56c455ab8967f81948a0d49f688664f100a78b1fc680302b6d2d95e7011cc869c27ab88d7236a4e13e8cc6f2274122555ab5f193338bcd7f3a35c36662d9d93b906acbda0de3e0ece800a4bbe003c0a83d16b2a9a5228717aa3e875c9e295311c512f19635b7d6ba4c5ab5b43142001571f2cbb5e86d6ee030dccceda2d236738e22d5b8c340f78fe3993cfde37f7c36f0629580b077b3ec6fdae0cc05259471c82c2e5d9f0d02c98811232cb411f534f82b6a0184206098e7cf876c25e10cf6832be1d3af86dee7f065e81b45448734d81236d0ebd48b2c3c2fd206aaa547a1e2c0b9c9fb815ee173e5c1d038024de3343294797dde67793a8a12a915f2d103a866f9c268fc26fbb57e5414e99482bea1049737455e8c48d7b9faca52e47026e35dcdb44fd7002daede1fbcd324a4c15f9303d7d719d61bfc69c5c7b6c510d76d875e81cf9d4cd5c1d6a743fccb12b9f8c3d9d007e7b6b3bd1c519ec429b9384b630eaf20e9e05ef0b8e8a4b46e3cbbe948c19ccebcb8bb2124c993787c4aeb6c88254ef17301a9343a54ea7dd0369863032ae7380c307b58ad7cdd509b3a58d326c1bf625de1023cc701c1e5787d7a9de617d39157ff4f9b4ac2ce9588b1ddf4e559eac5110b873ab175b4cd2b01ab1667ba4345421a3efc53670ac262ca4f8fec96a70761efbee9b5dff95cd6737dbb1bf5c48af19f43d1f99ac6a44608b273a727455b51d3e112273bf921239f1a160bccf47e770d43bc81cf1ce20229a0dbe633b78406d48426b4995c0b89cda1a29aba7bcc01eeefea8508ac76894804ce493197dcc02ef4c5b35ca864b840461f004b015c845c0f5fd9c724590c16c8cf786602f6249c63887aee6b2615541959abbb1791889003f19d6105768578a9aa1d3c2dd09921ae9b16582c863b6500fc0e33f6775d9782c5490a1792d91a7286d07300c62c0f0b9f974d63b3c42d092ed29e064e51423e62c0d69ec113dc4092adf8afb0323ae56bc4fdeb4747f6fbc2c0664e92211d0d3e4dadd9fed80340a08dd94bd821fb881e91d213b8bb56413230548899e0b96bab993e4c4f095b9fe894c89dbf12fa43894634e6f74e0aa7967de992bcb6c35bfddf76866835324ba0edd9e3e9c8750d9355dbcd8583f34448e0be337e2bf0714a5d494e80952824266c23efec1c50a91c6993056c133c775badae7bc5d5d7d5b516b72254b53c9f7981faf164009fdd5d57f67ac13bc4611eec86f5fc8572879c21d0419d0a3d1d048d45fcdcd0eb9177ee0b1ba0eb977991c29e0811b1f5851826b9505eab6216b5c3c7eac4af4757e52b616cf58d3bf1cab1b1a89acd9449d8dbfc10cc6f409a32790e26beb293011e6440589751d0e2398d91ab4c5eda3102cf5d078748d6587f674aabbafa45e4ab6ebf79c92d21f89065d8796378e34e4c1267bd24f4235961c6849abde56b9f66eb4be931638f4982f1817eaa021a10a17adffa6baeb639fc562f0b0da967c155c63f7e66fd2f4cc2bf6f319b38e9d25ee8f21a8867246089786b028b04f57b195bb059331c11c56195c1c18bb181f4ff0c093f22c5aa0d422ddd79c0453058e78d61219fb18313b36daa277faf02d74b092b18bc381edf380fcc21dd0eb9526bd1f3232aeb6cd33187a88dc3ea1eaac4ad5e271877a5e257dce727427edfa6637abce8c064123a04ca7e6a59c2b9b0c5625bc27c6671da20e6ec7975b8bfc2e1e01f88489d2f40fdfdfbba688945ba380c147e89eedbad0b88d8310b005e1b9058a17e11e7f67bfc8f1980115e11c44c082aa535597509612f7927dc7319b91a20dac92a06d01f5a31bdda9c2150c5c2ed01fd1779985a76e2002933d829ae0abb541b06b431e13689d4adc6c4bd8c93e020d41cce78ccc43267c6d07dd1f499bdca8bcfbb50d0f1a53c62f794fcdf7d22ce6ec5935a7e0438bab54e82635d524c256ab22e909ad8d6c152a1fd076099d0c68c7de5488f9043ae341d3844eaa88edcf7d3c9829b7ca060364b1acb12649c41a0cd7cee4c04bf271baaab1d049f9e0c87de92393722382370340e2c038c634fbbf6c07304be9db30e632c6be3830490ccb41c97dbedea17dbffe03a555827bdb17eb57da6226bad6e390b52b6216d69ea68821cbde4230437dcdfc5ff94dbd172cded0bc5340fccb68fea6c9f8ddb1b935b86dca712d299cfb7007811531a0fa7bb3db377ba5e138d25502c26f0d968a3a0ceaf3c1e02927e0a2075a670b9cfed13a05378c6cc051cb045a33bbb3b9af437534b984f96db550da3eb8d66375a3451faa80ca1dd0590346d12b2ee924847a9511600bbcb81dd01556171c7ae4d3d7641a3aabd56b5f80ea8c5f31c6027e49efa00ee29183d55a25413df243c18e3563e8e27e05e8f8ab1dd7fbddc81b784a777c18b362d8d4ad8a7f555c1652e8216f6ad00a33b9f0b8380ce50d964da43b6468ddad9534617fbcb7790f3b0b47a744200324f472ff222e65ea77419bd5a4261f22a625bac2a283e57e50c6a8c38fdf4312ed64d7145ebae0ce059d87b0d95bb216cb6356c0eb9441f5d4eadfeccc29acf2c1b773307e2df84d3da6b2ef0f34b8b265adf6326b30a9ace8943252b5ccbc44d81bee23d65c28c5901e1d9f290b9c0cd30b49d2a6706016d17a101189eff6288ddf18270f3bd0cec28d3934bbd0308b5769bd0ad044bd5685d523ef521f0655b1e057945758df0cd36edc0a665a543976d0619e71ca8c91fb80d1f3beee0808840b9c67de075dc6deb414a560b89e93815e6eb79b358b45dc8ed473bc5d4dcb6acb07db926afb34bcc9c50b9a986c488584f39ee7937e51414401746e03d2753003882f2a6d703fe6070cdf2d8e5389dee68be769b95202bd15336513a772b7bb84038d79c163e6d4963b6ad22bbce3637871a5b770cb3c3d0e14401fa9c69d15303cc122c3456a48f17aa365728ac08e9358066947df6ee621f9a460b797774aa2e360ef8b0ae237a00fdc6d9bac140ede54ae7d9e2ef1440a1567d86c8bd5cc5fe88d9b93bd600f8fff669e76dab4a4982e5830fb92c5d2c0a844ead3bb2e14173da9f798e8ddb06309289fca1ebb4b367864343518efd960b1ab0303c4890c8fff5315ebedb4e3242b96c44b5d995afc1bd0c50efa4c35f4ffb9c2a1e382af112540462324aa0dbff24ed3b6f2a12eeb4f34af54031bb78e8499a86c861dd05ceec07e022a20461e53d8d0b36a9d3b52940243dd0dfa74a8d1416f08e72806e88db59bfed915d9219a2ca19b9c7386aeb61120b8e5da0ea022b91d8d39b303fcb1c9a13a4fc5ef02b5cc0e0a93fdbe293540b5dc08ae53e8878572cc62787fd227aa12b7d54cd0177a4cbb344a594e0c75e4bf95c22e1616e0f68b39a48fecc3aeba3b7f6fceb48cc996d8ac67d7777e4ace38356f42248f3d0b4c1b241f590d1823c1e103db0c0db628b6f632a010c2bd3a7b9490e3078ace3819d9eff61f261318e82e5cd4ae6af691fd1e3b69f630f6c2c672db83848900352c5985075da0fa14f28ef462834ec59eb12a4aec8d3c745dcaca07efd88a93f6fdd035b91c9bc6b55f6101eca0b852bedfb8ad0d755296014c3d5655575a01590a37a05c6040534d5dc4c1b1553bf882b349497cffa9b7313831f725b1347f1057f1875a1833ee04196586829a582a58d68fd264eb81e34e468fbcfa68743b65019c721a47a41d62d778fb7f5b32fd11bf70d3f545371fb487ee1628503d11798ffbe11a35994a3ec9f0d2317241d24e9e721da66a9d48980f164e8e5eed3e82fc2db2654f5ef866a1f2045c3130a3082d38a1d15ce7b8eb6012206940f480eb6a6104ed7c011dea6e2f9a791b951517a232f4db2b773784b292bb85835e32361eca92ffa710965b55dc00b509a164263228ce5c49eba4bb4887a7966aa8f4adb2aac25dc207ca0ac5deabd67094fdd19c9555fdaeb32d7a51747335b6e1d4dd80b37706b541fc0c0dc6e55afc26b4ecaa22f3b3524ab8d1be211b387ff74a05769dde1b588c1bd51a791dc0a678f8c055c983c2f26380bb0b59bfd32258fcd43d0150d92c74edbf26852947ef4347984b5a8e608b3fb908beb1a680c690de02a8d37c4a7018410ff4f77eadc793c53a7f6e3d8b54a64b4357a3441d92bb045c72ea24d8183123177b178a36778f5c04d07ed74ea087cffbda23fd97325ad316ac8ef1f4a3eabaf78166e0ef4d54a10c51a8da0f17c43f01b60cc22ac0dd8233b0b4c0c3902d389e42045370d16a8f5ac6c76417aa40465f4a0f60d7d7ff9361fd42a2c6c6785625942ba7286ca0c2b8a9654c971d34712f9aa08e81750b63c611b9efc8961de53308a153559a834247c41fc782791cf2a859352a92338e920f836fc0a5eefe64734513277c5f19cf92ae53a15f7cb78ac79912afc56418828be9c33b36956057dec091b759f1aad77d873452f5886afbea7a2030818e04f81802a4aac1d41ada6e40e619c2a69bf8ced869099d185970bf99a2136b7a3716342488f96237d4f07825b0bc291576a810ef408cc90845ca1662af045c5a65f9f4ec001b869d5fffdd8a4a1889729b276fee7fe546208b9f45db8dc654b4097b5ed5100ade55efdd9ee3a2de24f33810202aae033ffea58cb54471154c83f703777491d6562ea9b8e983964bee8afcd3f6c023f494246a9f02b84f78b960c23215a5228cd28d5c5488998e4f1ed214fe9f371ecae6ddc8e019d1644d55c16a5c4005876f3e172660158f6af327b34a2c1f4a8852d7cb9e0a1850e5d732048ce83c1965d8fe4d5d4edcdcaccadf5a4eb1c64b621f6564fa37d90fda4447f7d149b3fae1e463b37a34b70f3ed9af4e14f7717a4790ff73be8a601221b2cb1e9821fa08dad81512a0a6c13fbe64c917025aed98fa978774785ccced4efd24edd58108b23b74b064c18c9a554e02494b1f4805bf00a1a55dbc028db1b376ae20b49acaf2bef9c0de17194211a2f5a538709011a0d77dac2aeef1ecb20e6e5060423675fc9765b596218b1a198ea1c5fb7064439344cab816172e18e35d9a96879b911b31e8823dea53858c79f094aca942f4d0c2f859e9dc966722f12d436d3c2c15fe4172d9b8c9288f70802ce92064163dc4e450e31ecd7871360e5c4248a8e22392f2b465ea2a1ddcea53cbccceb3ce2610450c3b4b9b0a8f890d50ded49d2613a334409a0752deed6bfbd70a70e335d783615b4c81f5f06a57082829513ccc12b86d2998361fe2bb17815571cb80f0eebe8828ac859c59d62fb4709cfc40bf4c4eaa99389513126f33a302bc1c73d758bb24543b33cdb301ace674c4439bd048136c1c46238918b90978e07326392145780cbf988e0df81d7d433583ffe89720dd3da5da344ea7f97149b383017c67b3e703c929e2c6c8b8a05c13a9360e097fe5df2dba29bceee1c1e1b5c84e8281013787f283c906f7eabbeef010b9e3d12f8019239d371bc4eeb8f4dcade6c14bc8cf89da048dd6dd9adb4d101ff4d5acd04683ef5a2c55ba65bb8e35f7eb0d097d48cdb6106d8c4a249de52ef6a210a6224cc546cf92aa32fa5f142bd18a885703e0d5ff6266d917a7c3856ef9e7f08e99960e9277c7ea395cfb1ee8699d0329b29850a362672c16000010beb926f186261c85f2bb718a1f262be2784cec9bae2e4fdc3c8e21a5933bd778271f21856d969d015b0e2667db3e3b309fa13a5b6cbaa5b93b7351db8d3d98a36d79a4dd87f7d84091544257e7cb129cd49c46e71eb54ba5db02e72f2b7c7a7748ca96cfc849e12b6ad8f6d0755b7fd107a9e7319036adc303e32372ae139a8dd930363b46a40c49a7dc0d08a0afafde5a597ba120ce99b11395e492717c26db9a7419dfdb69be36372706e0b6da0f4e87a50212872fc115a1991881fd2c6063a47ffc934c0373fefdf193ee8a4fa2179998278c9607c23ccd3bcec4ef3f4a179accb05e2cd0d39ccb001f11201494898e60cc1fc54dd8ddceca5133e0c97a2961b091a9d6b4cd405854e66e0d1bfc9d721a65040d30ec96aeaf7aca4e69db87ee1f10d49bb1259c6c801f87aec86881afc7af89c375f4ae791cb13405138953c35677e5e6bb7350373ccf22ed135ef7007c90a9928a3fa8b0f8d3612911da2d7bdea030c9ee1872f0481ec5bf23114f2b51c8992bfa9d99772b8f630494c51cb6bf330fb1aee54c3a9c14942c4667c531306d2efbe81ca5403dec224095dc4fc32ad437bf884852866eb946770e36576cc1979ddcb344dfa2e3ecd4308de486ddc5492140afdea6fcc9f2b2a58c64c3c78a68d03c5eaf57b4c1f2326f94f97f383451ce757a92a129ec0f18af3f476015da437a3a3b1950890cc4632da73ff5ca4742f19a4b004851dadae5d589cad902e29040809fcbf4686779397d09863bee98c50ec38229699c96232a9e780959c2ce8333f7ca0d03a8741afb755d402ac36ec345752edf38a228a793e0a46ef35be3d8c22fe2f284eb6d330a53bd1d36979586f46110f0710619f68d1f175a0d4ac16476e0b8f209df13ac9a347528d2e99ed247d78f72b5e6d52287a5c3923ac757f47dc3a855e5460c013e0d7ef8dbea19a77c16f4a6f8b1b60b2ebd71bae51494b973795d98a3656baf31bf75f3bc54706dc77f911cc611f738f79ae6989aefb35de57ff4b6ce750c004eb5e98555015a06b984447520099b8b0e9b7515af7466a5d171e578d278c8667cf2b319aa8658259c5935e40057569ddd9a47126423666bb906afaf09cfd3368b83661597b1e556c189f2e70ccaaec8cd20201999a93a5409dbbda78e9f2d8016a9b8d8e9d7c0509720257a920e93473a845aa419f7c7db2b29c5029afa5daf859604d06ab5ef891afdb94f46929d444542e00303ae18e31aa7add91292d35c4b0ff5227aa968d0080a028d738eee14e6fa1420bf6caa50788d0abaeef7ae06fb126703bcdf4d0b00ef49b7264a6db50ead75f296a6b254c1efecf9c89ded3727204593255e58706c7e34bb45deb3dd8a958886eba189e8288b53e6d19cd61251eb18cb7500ba1562a3778f2ddfe44afa9e029582a5d5ca5154b89a8d07358c0902366d0b5cd8990a019b9e41c70a62dee4ad91f8f20188b51277879a2188694e2e79fc1fc2ec84a6ceb1ad8f1116c272a3de85da59ee5385200f399239dfc3f82bd48d48c62ec6029e42d4e0cbecff58f431fee94555e2320ed15cdd10863499b7eef98627d96788c24449c7785e4b0455ad98dc74299ecd1e60d052a8c5a32cbf206e7f47cbff5625afc7f818c15e8615bf3c5815ccf729eefab2b2df456f6483eaee77dcc47f952f478ec8952f857133c22ca1bd8621e4ae76db3595d516ae1c20b3e9f5f9a78d5f860e391289ce9f66ce12b5d3194995d0ca5c1ea415b61fee5aeb1f2a0978061ede139317f4faecbcb04c5e03d790b2b53505d9f13d95fee470211bf3196723e5d36eef62a6cca4ca5ef125f601d6f948c24da7c3b59e5093a75b639969119c5dc422cf77f0731571d1970898d7f1727287da8ab15400ad304b48afb568ef9752c79e210827e8d09a49f0b9a842676edd641b42e4704c310a557d96f9a2a6f9e662ac19f7e03945c5b012624fc8de6d77cc0bf99c80c694b34a2ee34a73d95a7d24ff6a4530270caa0ec591cf19d0831d519ee64c59f1d20435a375f6e90d0669802a9fa23b2aea443e07410b8c17f42f7d86473534560136126cbf9f0a28cdb0d1ab8476f75202c5f4506e4d610fb91e575de9dd2d08c518d5568d191ed69deb9bd626bbae48dd17d13f893aa1199b604744760bbd7d6b0c8340361fbbde4779ee6c137242c85a3876988fbbd59a6e4551e54c3275e7b5bcbd48e05d349a897efdeafe64869cdc00c03cd62f84f1d105b50c5aa6ab46973295a84b63eed7191db210586db42c152c507d76f77a11ff6428e0fbfa6df8b176b29a375aa8a77e444250c8d5991610f5708348a7128690b05b3930e4afcac1a24d8fda38e288fb62a014ccec760be7c70de6693302c79bda1de11cecbbf164dd3f9e942b75700c8187fa19530611366a91b8ce5d8c59bb29c39f86a9a81fbd7506e2b0cce5a92ade1b6091614471564d8c64ac26089aca6655dca6d46a31498cb8718ba39950c98c274833445078762c674e93063a6363500a1b53fd6d684ddb32013daed806cdece488401bb3d4739eb016ab01957df00177a8fbb56fb0326dcb97cc06f50e8e87855e3bef91d70610098f365279a622e1488beaa933074f0265711de0e07b1d1098486ff54eeb002883f5a90e041c66f9aa05f203444d5bc2e5b71b440ae09aa27a116335c2abe08f3279e7dda2069624c4e8f9eb06d0c83ccc88a2dcf824a311ee39853359d28213072f8851c05e37ca054e04095e8846e33c53ebdcd8e427aee44a6a00c9bf6c040d63986ab508096034e40d49d1bc5168b5a65be1751739fa821024ea2f85abf65993274f2a99e09a5e67b90f6b2b3b971c062751195e276ba7a103d82e3020a8b3253ff76218b9b44f5ce632875ab4e53c29aad59fa367fc57e9f17b066b30c1a11dc80b8f98f31d03b2fe0b5d7e3ee4935968a95609768bef3efe8168066968a9d8747a8862f4570250123029a99aea0ba70452c4f3058cb584d06adfe4581a23afe4b7aee285779aaff00b8cf57e83c95d90bfcbeddd15b782631bf7f2f00e169797f93f3ef9847e7b6dde3db8a97417fcadd8c0fbd014cfb129b1761f3a360b2e4effbd71b36e9b5562ff2f7e0f8e1ad2e07fd832d5b72a80fc3a12cfc87a7531fb2bc7cb876da43f97b0fa52075085dfb0d4e05d9a1f3d15d3075ea44305f2c875af41c5e437108131a3fd444629aa161e133ba96d134542f9d28605457961ee14128091729b3ff451636c15617e0bad229d183d16cf02714163a35ce4ab67026c08324957a55b2d059a3d3f1e45288423d9c28c37a60ba7b9640928f13d4bbc7fee141ffdb155360485b1a0c8123d6ea7615584e965f72d094e5926e4dd55680b2e8bcb1057be0a0ade75fb8349a15400f0631320f4097891299ca2d240fc738af4c4a94ca08db5576ba6e7a847c0fdae254ef5b1db7db1c576e70dce333264e1a33591797ac60825c6df09c7df6e6a1b84c25d095836fd65f57fa7eb6b3876c22bcee26f80f782d781480409714649b753c3f7294007ce42e4b23de74f416eb93ae8a8eebb30d83d2e994ca3f1b911db7f10b55a51054017f6715ff7d5609fddb23a4c4cd88836174d26e0c5b60e4f2d30d78bc2e299a3276aaa203cae32c5fbe66c77ac7d91e68e6f8c8ed81361e2aa82efc36cf4fbd7f8e2eb818456ea08859430b2e0e6032daab7b5c02581e1051572f51665483491aa804d2602e97ee5b67e069702f788574227050be8425245833eb4b606520698309b8b527dc83f118f42289d48358b8e2060829fd856d0071a2f626ef0562719bdb3e7f2ccc59e41a558c4688d686ace305814ac02102ad3de562c59a316e1fb4d07137d5feb4f16a57a0f1137680e9a9961904e32b75c02bf88dc98f1de5e38d96a8ef13ad0e258ebe702e4eb897f28ea16d44c95711bd35d6f4018e7bf015b90e46f7e56f7d39490b9f7805523542724a8d6023091384aea8584659dd95e739a7e5aef15e1332be204a48dfc84977a73a805c757afdab29e3116157b98a76fa95cf1072cfe2bf31a4bb4cc7d05f19bf6afbc675612b6a66023c99f84a4c7508537d7c7752a4c87af6734e09bd05c7d96ec068b9b0b171cd89a2ab4cc474341725773c80156bc2c65171f4c4e7e502242411bfb9c98402ecd179bebd41f43182909e392ae09e36973fa74e3fd5e2df46d85eb550f2f35b6a80dc165f326b04b9dd99d33b1fecc0c09cc2db70445b3dd8b069bcc3c80370a1eda2b801211d6cf35626d56fc0c1faa6b1a665c02d2e2d1ec1ac6ce70cd8737c0d96b0ca8b0da27b4d861dfbc259c7486cb6c3afae3560a924f7a4a3d53c63cc32c6a0e94727b37af39cb51e2a13f864921415c350572f1c16da9a27580401375b0937f13138d7a8ce945d0b241d70cf9746af755ad69d0ce5bf84ec7a8383d207a86ace5cf235d9acbd79cf66dcc147228dedb1aa9eaa8b11aea98b495520742220276cd3e295cd7f3fe5ef9d0d98f3b614dfa5d2c0246574f8f32126f28ab78357bba5986ee8d1c721774f7abd5d718db24de7064c176893a10eaf31220a5e3046e02907839e4cf8949e237029271d8dcb6d0707738549a8b18bc31247c17c3297329cbdcaa6a99b953ba9c613cd15906f6c8d45ac02ef90844e0943b00231ef0fd6e4659fbc4180201aae3abcd5035843b4bf20115f424803be1bc5bdab439d2db101db8ed8fbf16aafc4041286e80b4f4c321c933f6c2d1fdb9de87173c1bc04caf789148ed31d1265681aea07175fb5fde75b6d87bbf4a543d2962418c75891b928f8ad67e10100c3cdc2d8aea014c5baea9a0242988173873376eb8fe2f4213f82f7c3f0a48329d69f7ff34cbc2944846bff15d8e7b64360b21f26c8be3b7c980faac29a63d4d68f1aa02bf570a547d6cfb61ea7d4c94242e3c97c1139785571175f9f85a6bd5ae654b4b9253fc9f6c61bfb21ae29800dd4771ae7456f785b1e29c422d3c0a9846ccbd7cfc69dcc0cbe946c276bd16cedad93e6b03a96e84a16a13f7b0a47ae2b445c81aa851f9f344e36e48d29cf86e282b288d78d94b8cbed22b834162ca7dda9700aab5f68641b967517b5b85dc3fe29d59254e57d01919268816b46273eb6cda14adccbcffd19ee3f8092ea4d54a868bd994bf06efa1dc9de762f1413cbbac2266865c67efe65cba1db0420fbf2104ceb3d5b18c474e038556a7bf1a5a6785fec6bc834a809e969aabb6273d0da7c1bc32faed286c4f20f026299ca66db9e0b0fc451434c8d7ad275a078a9643e6e9792efd2631d9249985fd42c3a675052dc97aa3392a3b074992df364951ed5319369155725c4dd23b0a8edf566cc0c104902d52d99b8afef08ce5188163327029b9dafcc3a3711d66e179b8198f57233594e775c582875ee14938d54697ccaf659619509f0684965e23b6d885ec42ec8cf2cbd6721a70d93d9115ad2a296b312be7b1157db6d1460a2de1a4516e0aecab8493a8d305a3d39a6beba53bf5e97e583d6106ef9a3fbc1f58710bd7f9284b31042479ff0328350b46501a9d3285bbe35d7f941634e897f2e20aac8e48def82fe7d786687a03e7e6334640b4bceba84301896410a0a3a91b593102848c479e4afea1143d3b424bda408d231b1b52afa90a37ccf7d55eba0afe121cc8b4b12dba8849a5bd86c1459cdf4a037400007928c7072c72cc55342d45da5c34a045da723d969caddfbd334f0e1fc78caab011b3eab6a4726f24ed53368881d18e824f9f775434c43a5f47f3388a621e3a3cad68413d0f41617245895c6e3c897835d9e83406b20cd6b88c6ad3a07399dae2dcd106c574d47663d299798de6d0466fa835792d2912619ff548040b477493229498382c438525821537502e24e39c59f188c0dc360199ba79c836f8312564d5f11b2d0b55437505ee21d05e94490cbcc744be596ccd036b64e540eadf9bd93ac610fc6f96be2a76bf648a193826b54ed8e1759031d2fdee871f2aef07800ceb9064b2bac5ba51cf77cb6d6adff3570d8968d7c2c9a8b2a997388ce15fa46ec24af38a222c46dccc3bef6ab1ce82d8bb94059c2db178c8209618411e0bf741934ff62b4a085b017e0a53d2ff608c2d282988a8f6f121b4be0b5ca8df4f48162d3872c09624ef87bca7857745aa11e3d8536e33011c35601420ab6364dccc728f821cee296ad02c273548f75c166ade2dd67b9b05f45afae306df65f511948e3b9632cc0239b0596267831c5345937f87480dd64a8fca2db58f7d1bcea9cf8d0cdf2093d93e60a73b9e930072024fd2222fb752e86665540bfcdfdaeaffc9ed1aec840bab64272e39da84f1a68d56793665506835b271a25704054dc039d0c062f95d7d594c76eeb514d2a03cf83aff106a7436fd9c8767f099d9463e7be2802832740df55eaffa0fddc504659ecf653706f6d44560551e2ff8b0ed0b695a914166d7bb62884ac36dfd1859ee417838227a5de0c421b65f7aa1619103f8ef2ead8f5a43563430abca9e485472394b2a6c020cda5324b110cc7e8b2c9e7400c55640225fdee676b9f3d4afc104260cd6a224f1dda87b5300900063e526effbfbd5f0410f2531ee8e370d124a3fd26d446c94cee7fe68e991484337c24b693d6dc53dad31ebbbf31449e1c8a2b200fa91620265feccf346b45afa849882fc0660eb36336b1503a160a23fe998e97de31b38473e33cdb86adf32e96fe064123d43fc71e79fedc4744345f17b3ace6be4e2c02f75eecf902fc00e6bb3ad496f6ed4e4a1bd15f30b2a6619f60a03e412a2ad2a12843a007263b54e636134eb6bd0a3fce6c63dbfb098a9923cd26002ad038c68a409cecd83c4675b7fe56e541eb13c78cd732036b150973b3ed3f5537deed16ae80400956973623ff6cf55d86f2dcb7623e3d8d5cf0aed9389bbbf23ba40c0b73573e7b9dc86b6ef9b3ba9057fab509024fce5038bc58a39d1fb31d3358a3dc1d10ef3de703e340ac944c951c0ad1f9164e4ef16220c819d00773491ccd0d15d9c06b8a548bf1c791c7dcb993be3714e2b5501feddc2d1187283ef15c6354a261430993efec00f8773c0c218d056529a0e4ded97d1fde67bba3989c173f222a1c36eb3c498c4e2e9a793d1f2f2d00cb9cac0b80e41bafa5e2674776fe69727f743c4adb51bceb5f38a90f6436057011f414c450133b8dc3b3ae394366baa64401234f095ba140f405e5ee60e82eba53803bf7d6a3d67831f78f8a484db448f4e2cf26c069162449fd2501618d5bc31839472ef2df7e20a50e2a9ff938cccd689b27a4d20174adf46b50782f1464693361e5d3064b7f86218cb893119f16e193df3393f603111194f192ac076eac93b0716f3d6b105773516ff185addef254e3b253b5895e8a237fc902bc0fa17c33d08a7120697f9a0a06110cc10cd9bd507b295086b9c2b7a64ae7eb38c9a017e585b8867d4ceb39692ad4e2597066e3bcf5e38519957bd40f0455de9b0fb62e17d331a3a84e953cff8c460199eea3120767e158b591e724059d87253c34367d14db62c23e3c9d36cc04f523c380d23bc0abed6b7d988408ca1f3b05785ae64a4e647b4300a4fa07cbe841d5ca2cf85d8a7ffe83ec8b9b3dc0d2fe91592a61ac6023f04354ec448a46f015e759b43c9b0b175a83a712311177a5c2c89f456c276e801e561302a0ea8728b06453474ef866454d61f86420635c39acdae6407b008682aef8f5790b6d215cef668ffbd57f6ddb6cd90d3b3e95fe3b87bdf625c33fcb083cb05e22345c041acb8a22ee4b0b348c612358f1bbeeba27396cfdf46b91216d50f2d3a2237114afb2b7b64f1009fc80ac024212d51bca19f13a904e21d825051b58b531dc8d7a4dd6320ed4264468bf0ef07ca4a661be1eed608602855f7fc310dae38eac520a8ed48a264f0bd07c3bccab556018406286cfe96f063a7eb807419a32eae40b14ecbdd3adc1145ea8c5ed42dee62ae19ee614dc6249ae599666b2b5b3facdfd9fd731ce1a553ba0ae5e875a1462e0be0819254fb8537b2e92a744b9c5393c99364ec37460ebf1655a2e362034e8c6d77f37d308c70357714c4ecd33b10c623c3f08394da2e5ea9f72a90eb72da45ce7914c187aabf521d84acb25a0cfe34e9e892350a83f716e0cb2c92d8ce76950cbcc191b38b2eff7134ff8269d7d63033c704b60eb20caba34f5b4436a198d0962a59bad2e1f3f2e196a075f9c4f725b050bff41932651509831f4f4a27af99220ffce536d871e1ce21a976f06d10d6010dbe7ecec831f5f1bd084f68176a16e47de12b52f98b7e7471681c6ca326fed8875f4aa451061594790a0f3cee6cccf9c00891940ea0f6cca93796df0b8c42a8c171b060938ba08ae74b6d1c119a3a300257beab164c7095ccac717a01265f4ede61918afe3a341121b8c5caa8fee6fb8921d21dab1148c4779b4990b108aa50638987cc28cfce69d8d700a0ecc34ffb85214ee156fb789b496d1f985c364c794f98dcd80db862cdca0ce8623ce3ca139b557f3c63bf244da6147688b1162926de50a0a49cb9459afc4399e62d88762d7751219d43e6f25b2b271cee857315d84e438d0bb8dd0d657f0c9b8888e016cefcfc87f12d3027c663d05fc9210e0d501c5e3517483438e64daa391c35937cd6fc139b32f74a72cc5028d563b4a8b668e517fcf9fb75a1a056dfdb93139f4451f9dcf0bc8d10c31943366c2c5c2d334b9f9adfffbff429dccef919467f8888d8a8cb6b4a28181ec24ade1b333fc701c0f7c38c74f095568f278bd999fbe17cc1e55117eacc35e689c9095b69e81118bc3c63cf7f43645de90afcb050cefcfd82ac0f3f61b11c1734a7f9cfdbeceb9d2cdf5116e02de0e85d282a9eab7692788672eb5b1364d8b2c5d67bf25599fc5b6fad95818bd7b96cc297926b3ebbbdcb1247288d704433032fa70bc78e33d0b50f66176555a0cc1c24220382bcea624e8b92bb79da9d772ee331723bd516ec1b3b5eaa5f058d863d2dc9cecb8b245cb2dc0266004f42d97c9a54d7f5b27f1f29deb36545a0996c43aff0fa4b5b103e1380883980a9bcfba56400757b6f1412b74a22275868e1a61316e9426848b1b350543e441a344f6270dbfafc34c97adb0b21832c61cf253eb4376d8408289d34669337f57acceac69134609dffa809bcd4f3c42aaa8e8994809e692722ac64e0752eef91781b5d8f1a2067f70b40c4bf5a13876b799d100b799ae842a9f66341532c5007b8de602a77199215bf6b8f1ade9898710883571e3b3e1c053feb75ad707e5205c81e1b7559ce36476fa0f49ba5ee22657b9d1e9c58a09c0c4b1bac4f5a0d6cc7c5a7277b5466e43441a01a1c8d670df60605b5798b8bd2233a8b743135b291488a1b9ee122c576fb5ea4d36a4e26db974ad14f0882c5aee7e23dd658e09038937e7b20f9d8a1b4ee8dc5400fda7747ce807350eff801e24827346fa5d08c19d109d6a2f51f48b01fa2e64fba65e4aaaebc52af60bf224d4d591ec3755c1ee301358e68d8c0bb086ae18445f916ad31c209e9f94710e94730bdcdbf3b8197b6f1f7153f4d8aec30dc1bfdd19f784ce767f6e8f5ddb41b9b920d8d058a6f20efc5a461d1f74529c57e29a7b4efe55206eefef230ba3cfe4b49dbcef72f4075496893ac97fa09a3570869f017ec653637d1fdeecf41e80a66cbcde8543c8d0e3a9ceb17ae01aafaa74f5e964f16028e178a98533d5e5c5ce0335fcfb21097a719fa38b6f3cfa8cd2ef7513007a3edd5bdb0c79d3e2166a1f0c43cf0ff7488064248cfe937d1b6e48507c1330ab04d2fdc88c55ed50788270abe3628d61d7f5e82d2b80bcf1387e337e88afd85f690410c13cfba9a3c2e11aa3a31d9f17a19d3e8623f76c49a77e41cafac1378c7ee02396659a9bb42e2348454865523bcc056b947cafc7bec6f303d7889411db8da175705fc489e25a928ede435515bbade1471c7a61c4cdef14e38655828a3f999011dbbcfd90140654f2de8df682769e140840b996dd8a4298ef2d6a098a6c08a406347a4643a04259f03d48e562fe95b8fa529d0cea7a8694675c9d132a5c0f93899f33026808b52119cd48437f818f04858c015f971dea93b0d2923a2f77c7cffe3803daab77fcec9da39d920f1b4e78214509a4a904247ea72afaa2c8374be975679bd1e094b895054db1f8f44bc306636c9edcc4a276ca009220920f675a434ac61dc157e100494570a86c240653fbabf8e1f06b59f56078cc36b8bb8994a1e35e9dd3f42a2eb70e302ff058f289810305497f7286d632e96710a9d2c0cbcbfdb3394885d6f64391bb817c0fcbdac085cb6f0d866712e89e20c57d909a4478760f6ddedca11180593ea096f76de9e7b1dae709eb857395a5b1b07c7f82a248095f03f96c9cb1397c41711b24f253f2408b965449f29fffdb311a419ac42500523b32771d1556b008cb4fe9af2052a2fcee2f16c4588c815dfc6e744af754bfcf21baa1425f18695fbeb59b10a6506e90c7ddd9719b3de0e1d179ff1cf036a26bbe4d24568c122a2d0983e4ecd2f0c65595ef2296a41905923a36d27f9a51409fd9a9f76117c0d33c0180da7c8c030a1c3b2da3570ff2aebe8c90c9d68318b6c141205f39393d4e42f3e07b1674750c833e1cb1e7a4a4ca53b5abb6e7eef1ba83a96a0c1b9ae97331eeda10c4db8b60086e0238fdf26aca3142f748ed3a55b04f2497a3f7a7e09a1f393ac15e746eefa917222dee820a99af6a66e29f8a5940a98ce5d7fbac856d8cd1f39685b241b3a35541422ffe1ac784794e595cb1440ac4e25a33d118dd7cdff4494e91b9e32b6acd83ae63067587d69632ef01d0a0c3df52a1947b8d222fec0ae514a81d79bec893b91f0a86e91faf9427b01399906815591eada5cc320efd7b085bf00420973d8469037a7139affa77ab5ee5921d03d0d23d8c93e83f385a81bb75e9f3829713e05b486f4e61bf8ae0341ddb259dc0dfe2057db65795857d9350f26d60ff6573317372bb9c9768cc14f6d3051b64394c63625d1b316499694a87576aa14c913e5337c3e63ac6f1de0cba459d0291b897555b5a0818f532239dcc8a2a572c85a814e89fdad71b484a517cefe06e1d3a5c591af3a0af96111b8923674ccb4fa1edfdcb95d89c0000d8d728da01f6a6b9efc4152926001b621221cd484ced33a56194b69343941a6d046a65d14029a5b68f69b32bd440d55193c66c1561392f67944c34841c640476d24afa12cab25ca781b184b8077e2ee17155ea1aa06c117d171051dc5b217a1677d90f09055cbbbb306d860f8a830c796f5a10cc7e65ce0f76f509d193e700eee1d96ff1856192394f9aad584fd90087b42bc14c2a63ba318b2d6cf48011f17ad844f2d66e17b307820f445f956c5067860b1a984de23a26664464aec6797640537cf1e67e36f9e9be845fb11f209a40428897971f73e93d2876935ea8054f2c27f530383c2fecbf96533f26a444b03d94cfca2c469be928ace6cc7446494c008e5392a7bece2722ee70c24fa79ffc3e129f5c07536e0cf50a8ea08cafeea52f1177f934417824d06d1a521284bab53beb8b2e5b38897e71f79beedddf461c931c28fcdce4065ddb80179d8629cbebc6af1fd8f11884a008eb3e9924366059f32030c620b882332fd690dcb5b9b8cdd36d53a5cfac8cea2f8e15475975cb43ccfdd53cbb0341b331421dd441d66654088ce4fbb97ee40bb0f5dd58880001fb70be859a25922acc43e7ef1466f3810cb49d92e34c92268a26d65fa388a7db545a909c449ae1bdc608c965f0284260cb556582c9f74f3fd8031df784333348fb5da25bcf0ed34ad76eae4cf5975aaf14339e081cc16d7f7b43243749b51b6041947bac6e86a892c8a80b589f7f23f4fdefcdcf46312d75236a012a562146566f6a499d0bb64bad2ce2194a8ab7406fe98fe71e13c43ad46a5ba7dd7bdce8b8a010eb4721c3b20b84100683f5c466da5f09e57613ea09a2704c22fde50d400be4640a2f7d95e0ca6e5661f1de8f1e800b0f8a39a13e56215d1900bfdf64ab6fb1e8d63c997422c33042c413a07fd0dbb1636e8f842a29c50aa9a611715a7b29ce3c0e29f0b08a172b815bfa6ed3211e8223bb89255d1c31dfbaf4d3456810353d5a31f1990820f937ac4b48ed1632f5e3b42c4070af000cb7aea152d260d8fd000ccbf809de59bfb563470cd8c8ee2257c6e4eb3cc3dd75ced314ab7c9d594792119f73df134d2ef1e420e4327ebf6f1b88699b274390303da7b2e5dfaad9600856fb7c0e9dae0ee79a5a337b8e81627518f570e3afe1cb3af1b125bc5383cc311b690c4a1aedbe9b47015575e664a70afa4e69cf8ca0fbb6671505c2a64bcef7457b8792295d51bd11ce66c1fb64527123c3ed48ef244605746831b748e4ba9d79844da38e33b092db35d191de6d4fde0890490739e6a6e9850dae2dedd7514e8a8e664780e2b80ce820f03f4e3a78339a406b6c818386f5d9b957fb084b600df719b199de4f0455da8f1a8bdd79739ba007a4714b12aef8fdfbe256d3c00e0d45d7a4b3d224d39170040fa7ba16f9e7197c8ff8067248fe33edc9c660e22c7d24ebe727b21031f4fad21cbd3e104051bae85013f8b9a77b70a906b0e9c6a230cdb9e23b34c3a430dff747d37c3d659f93c07fc5777eec49b44c66c5ad87cabf28ade173dd5ef3ee879a0505f04b85609be5bd1d59cf6e0a702234709d74e3b235300b6f0564160718c7cf4abf8536fad3b25d41004d60a22a644797bb0d22af8b0384746735b6196901071fddba3faa0188b6dd46742d94f850d6cdef2201b928f3979991e24e8e4bef5eae323b830c1d37ee5a69c6936a32e45df7af86432deefceb137928ff3d70b2fe2a495e46a4ca61603b533e14286a088bfbc23ecf73069badd2cebfc15bf026bc8b2882713d008d2590e7bf335c0a245fdd5d97f0255ddae8be431714ae3519a5d05161a546eda83b68f29afeda455eee73a5bd00bd581327e797a05f57ee1282d490a38a08410c28fa5cc0d9098ba8ce6099c414359c755c49196e9ff4407ced3cf1fd0b6c44958303ccf39f38992c44e57dee388f184ae121a8ede1842c2f0d0a29c94f29e898d7fecea205419bbd9d5f8802a2dbeef2a12a9c2888f405a71fd59d29f6ef66b9ea26055dcd953ddd59dc9d3624745d56a6ea3b5e22dce9514a1f9941458550612dd073c8e4e9f341cfac168ad2c81ba4c33e4764714ff23930700c024b15cb9e85253d457e373d4b7b7d200aedca37c6e90e9c05f4e2c541d167fb63fb72459b36809bd6f3a74bce6ee66a80773171aeed2649e0725ef790df568934c4ab6c344680374f92bc31a0494d532a397baa1ac6ef41b98f4ebc1e629a2cc9715126fcd19982faf2d035be287cc33ef250ce9f4cf4ab9928137a9f2ec745271984b5cad7a45c228840877fead42d96dfe8d0ea92bba713adf44ffae7389004c65a870d569d9c7b95a86a35e31db87c775ba4599f331782a10423a34f60838830bc7f595c224398faff2fc09d418679d841e6ff0354dadad70b5628f16aed15fd089cc5c060d3db13d907488e556dfa91c798525ce3f54b005979d2d501ca8506bcc7715de36dc37300963b6450efc0f6d059c49fdfcac181c47da7fea1a7f2c5132ae25f37987212d21bff164c1cafec6652159e1cd1bee1a43e0781f66b4b2cac0afe2e43f9993e23b85f3336e44af7764139c140849ead0ab678dc2047ea1a4e4836c0426a18a857a7197f38848651a76fd008be4acd303e242a8aafa7769d964dbc35abe57dfa88f6ded05505afd605c74d2dd76c5aa04a6bd8866b4294ac55dd2faca9f38e5f937ac699b995e42e0a1ffa05181fe41702e8b1127782f446561ab409bfa8ce8ce438380b0dd012088a063bbf453207c9fbedb1049a434b0f7feb642602d0dd641f4fbadd1ed81de6256f6479825b77a89fae95248ac6bca31c4d31a2f78561f19e7dc092d1743e8da4b859f0436e0b04103521e5cf572a3054d13ced24b7a4d257b510caae6ea240325ce8b2994c5f9150c2486fd26264edfdc146412285fdd48bdac975181a1bbb654a0d7381b734e0765e83f80ed1676855f8c4621b3c9ffb0f8a8516633ab1dc28565ab2596acf9930c39429c05cfe1263bd1e1c1603ceb54e626935e9daac6af4c555e700beab2e77a2d5966a730da88b534cc30dd4f35aec26d89ef2991a75f323133f3519f8d445dff80f04a8992dc4d6e075071cd2358d3f7ed5c4f7cf77cf567411ec0e025ff7d38c7e75ae747b9e3ceb7f7543d697340f49cfa3f1a49311637b9e267b16b9b3ab25df9346b3bc9f957f68e1c72d668ae17caea023eb39eaee279b261d87429e5b6cb15f94243c9b9e50965bee054653478446ceb1742418e56b6926a6241417976fec132d69c18409b13f10358c765b3e0e2c27a9e0dc3e2d4d24d24e689fdaca72601a09038ee9a2cd84e660d2cddc9a0f370096f28d9439e7487622067baf86a2583ee6c42e5889bc3e2c3b6d3758bae0bcbd9dcb85d2a6c499d6cdc06ec9f803e0c016bf8fcdccb20c8f0796b838d72122fef7c6777c2e59ac420df43ab2103f1da8e054d032b89416848cf14a7f9d978327dec49d99e003ea7a8955a317d06f53c59b99ba349963d93fdbe83c33ff5030b6d2df3def438ef1a5593cc5fe8b83c2d8b80f1a605c10ac801a87f363d5796be7536c0938c07d6f34b1d9983d5fac116306daef94c3bde83d9d027a04d60cb490d8efcd27f5652b95860af5a58f07b830ae970dedf0f674a493def4db9aa44597a71489148b4f2b5d63b75c3d2ff448b60b84902fb041d1cda03c91e2556e01338d8c32d8562ff926ec2d3a710c330386da68b50f7a1e7511f8c1b285492459f446168d734390524808ed149ec488495d84e537888ae657b771f43c1309c18724591bd6440ad4207cdd970b8e0e7d172de626593ec42b6d583c329c43e018d4388ec3fcf346c67e3c1b6cdc1888f209b2d5f778d9b89b242fda9f4abad24590b10f0fd20d1bfbf67996da8e899a900410a73efe08cf64b1c27b19a17b114a87a93c4fc56c084cd33e218469e319b0960415cd006fc4cd1c9acaabae10578fda6026aa29d699c469809fd65426eb578da4ab6597fb32114b7bf291b61bf80b094763b7707ea6c5864f55a9bbfd4846a239d3cae84aa1f6b2b14cadf8262b15e83920e28b7e77dd122a8f71bc71dabcbe83004a713174b48a3e242513acf47b140909d81a7f14c00f67b000a0602a7f1ef7aa6b82e9d71d15c4dc29cf0efaa6e4b79b2e9aea96f6f4471dbf9b1cb1d0933c691704e49816f5d1cf942ca37a5ca2bbf475ffb704e34aa8d3fec9e3de2a6fe289b2d9209cd0796d97063f44959e4b6c249493f63e30c8c8bafe69037e0f936b9873a900d08539d8ae21394363f1c99211350303c59329ff0667bda80b82ac43bddf7fb48c2e233d9fedd56d4cbb53c8c4a40115767ea5c3a873997cbc998a6f38b366aaa4c4d43d335dddec2435d4ac8974c65ecd1eccea1d78d27320c22b5592df1f616c26da48c6d5480bb827a157a667092e3cbfd2ae268b7576e5adcd54b812294555b17170138e555ffe2ffc1ba436015fa3dd9c83a620244da5275229fac5816d14ce1fa9e0ebb3b76fa517767c18422a7e602618968f0acc6bc25bf5d79fb314b79cf793e82106bbc04c6b9c6a9038700c968f1ae0d3504095ccd7e400a1419d84acaecbdbd26ef50c54b5b6e70f2c9c298184e6c7a8f4ff8a0ee8d1cc16e94cba37104b663ca544aebf132243b1937951242b6a55e3a022a4a635d2cb08b084da7d02b2975aab8da39148b94a90b3e12ed2cdf4989714c1aa3ae7f4c004b683133054be7d89d27316ad9f0112efb72d54a94024107242a5e85c90a2c0a8092427d76cee6bcfe86abadc14db5bbe2e83b5cfc0f3b602deb1750964eafacb7975463912eeb705212221b14dc427f2cb2c0118e6eba24088b62e39db1f65b12ef37fb76d08b2503c0048b2280885e493be4450fc4c799205c685e2c8a25c19912584eda520c8b073800f1662346c4736ac05c76536ffeb590fe14cc0ed0ae51c861f50b784d746dd2f9289892702cbd9505333d3b2542360d51a0b38be0d767af3406b5df8f7c8b9b0192472d915ca7bff78764010fa417ec1e6cdd9836eabfc443524ec927675983ff754416b3117832b945c5fb47dbc58457d4432314c352aff0e4d09d86de57f31dcdca1f1942a60aa836307cb32e39952d1663d80970d2556cdccb4ca0c2018862a9ca7faec2d172458ebe56f3bb8911a642c81cffbb793399273a39ffdcf2f07af69967a4d85340171b6f9fcf9d449716ac140c54d85d4baaf5d8c04760011360bee69391bb8d3823edf6c117e287327a017a36c98bb0ba8de9db40b863a980733e3695fb80d480444a0adf9a6aff7b96490fcb143fb24b585b2130c53ea207d7b1d7d4de6897afca6522a1993c6ceb25f7ec2edf4b32b28555d009f7d338b043e1d834de95de0ac37ae56b1aa58e3cf0973e88eb90014a7de78774f7ea1eaefef926a929f970af466addc84c5f2df96d8c3726084da17346a964d37311f90c7eee647fa895451c168b184119289023ddd7d77d4588310470a50f89ed5aecbe3b78a6f87483cfe9474b4fc116e4083bcd2c622cc6b9810fbe0768e5c42e037fd780c977efffec952270e26956d10d7e1189a1e6e938fa6b2d4e45a7181ce79c43a73de5d7b285c3a225b8adb2ea5d4a564f248670d6e995d4f7ea59a47fdb433b35d066107311f25fdb73c2cc5f45acd571ba5e5c68c2c8b13a06abcc9193f55f6b84c05bf218443a6d76c2f20e5a7e321d34f457ae26306a269f5386f0d96d97afbaf1e459ae88f69a2a957fa316c625599676f9e000d262fe8073699c6121812ec87a412c0e82eb71a5e0ee4e0a3c488b65ff0de8522a79e2239b998f90a76e4aace5fa2d81528517a46fc513f5691c86b806f2796f5ca49487559bf278384fc907c55e6614229f25095a02a48f0da36c8c064ca73eda97623ee897297a79282e2b0fab6d03195a704c5217e8e6b3496824948d42b3ad694930458b6fcfeef15917b3d9d9fdeb94ae6c4b44213ff139c723c0e55b780d2bc7a72d77362d817fa1f242a9c981a825cf8025bd8c721996f1891d7ae375d85b79850c7adc7e880038e9e6dfb825179bbe6c64f93ce6c8d69e20047e0b6b8404465af6c11b2517a5a53b0b0300dfa9cbafd84587f00a2fc9b5c6fc38cadf1aad30015b52acbb1106c8e25a2055eb99893a34916871fc1a38781490ea89894ce2c467f9b98ebda2ed6119e85b94ecc67d647e3a669862c01a38431b151e206a1cb7cb3e9becf2dc4c8f536e534a9e6231b0cbe842760cbcdfda7a36dcc14a312cf467326e459aec3771f2dac4e7ae33b3d08b3a2581d1e68148173339b457bc9ad554b88690bd531ff301e568750d23c75b26588f80540ff472cb14d5d0552aaf1e90f06d72ad90413a49f5e0140a0298aca81071d08e12d94619ecc4d66bc93f2cb0b5fa1d36644413ecedf147c0d9b048f2034cb195584afaf005f83731d367f9326ab2a1b3184ff64283d655255eb76a60341773e669af4e541540e36bb102a72b84256257f47261480c31bb9425a4f0edecea83d4c5c1c4ba8559436f1874aaa9f72a432cb11b4faae1413e8a9f3fa54f7e11cdf9ebccc70ee6237823a8a426003d2c61a2394130b30074a6840316c6b524025250a90ece2daabeb59f23d0357409c0351d4c1d14053470d8c4373504f26831d9828ec05aa78557be07e4fdcf65dceb66e4785426f26971fab9b47d274e6aa7cf934e8f1ae70dc5b2a45c1c0f56ef5fb02004bbbf2790962c04f8c0ad84ea2e7d5c06ce9283ebd5b8c2071f2cc276586d21831b2dd81662a033ac2c52662d8fc1ba15b3682c2260e6e7fc7bbc823349abd919c587044f728a99b5e72f2670143dd8829a949417fc127581bb3e3719913bf2fa64c416dc01147e8fde8919e0d2cc7032aa02e8459301816a703f929a183a86840d81ba4f20f093ab742084337dd62345be923fe86f505a1aec06b35ebc23c989a139b7c28e7071550c0073704e9cb2d4cf9bd3f9862eb7ccf9986d94b582cb07c2bfe97ddf6de7bcb2da59429a5580848082908d305e7fabbe0b8e060a4d6ca16d169a89f842ccb32d7f638dcc43de7d0917d08806dfb120998148404a1010cd09520ce441388e52ed75b3be4f081ec730fc43ef7fd1cf720b04608d07bcfa57c8d105408c17df7d6be9053d72fa359966599f720ce7b503f10eebb07027a691007eebb9f00f71d3801d07be00e41bc17727215150fac1122e5ed772b5f2304154278dfbd0af8923d9f545ec869e424ff15954675a3b0f9b4ebe1b70c2b041540eca7bc10dd7bef42d84ff997ec8178df3d9094b7dfdd4b06e2e07df713f0c009a4806dc11c568da2c286ecba3eec104da71c74f8f8c47d3a4493f7fe394453f772430d1540b8077d8d0702a9e9408e6666016c62d6c1255a9a1918b56aac7504610f42222b5594365346541cb364c7e6686ec39873f2e45e21d952363ec7b8fbaa552a6ed5942a958a529af3537b6a85014586db387979111794eb5fb9a707073f753dddd33dddd33d291be7365bce18fdf6bc4c351de5fa10871141a34182ce021a5ea47bda279ab8f7edfdfba75f4c933d7522a2f631d7f118d8178493bca7fbfcd43ed1d4fdcf89fbb6efc09a1a061448a082be905307eee03e1f377c3940e149d8cba6dfc1343d530406027fd1e3c449fe3e25e8e1be436abea7a77bba87fa889247417a5c5e7ae225aca787fe809a8838a11038841be1032d449d2b2343fa30eec41ca794621cc5300ad62c0a4a2d058140206f0e615a6f5d0dda6f9e57abb5a31189d4d5a0b17c2f40585ef4229617720a7d2f40422f7a115823fa90a8e547d8b7fce845df0b109717bd8b087cc17e84895ed40205a6224a5911a9580a02814054d4f22aa04ff938177df29442a948d4427744968f4fa150037da10dedf0dad309d86288e56acd22290ba52c214a290ba594524a290b4b88364bb350ca12a294b2504a29a594b2b084683755f13f43db89a91867ca4b0ec364326fa68e91993379e62ace546aa6383553a994e6b1d9e7d4628c71e620c176f84c45139fc299f30da162b6a6c4615c5332a7fc99e324af82637ca67242ad0a395fab826958ce2cac0ec76461c399d2565e9a2f53a9d476849bb972edff6e592b73fd59419ef329ed5aa713369c3ad7bfe9fba96259b63a823d615951f7120c54091d425754459350143542bb9b7e4ebb12584a049beafb4753d71d9c2f0cf43c14c734111545c10eb4bb1e850de7cb97b03d5f45bc34e7eb355f18c6b26252ad1d4d3094c198b076b4a3013642323c39accde6cf7c327f7ce708253ba9296e774dd8271307c7fe93268e9d993858f663a35d1db1d61a514911638c5d096ccae8bac3dcefdbbdbb8e48504a7f4077301486a574788ce4344e2f6915c6dd8d611886f5b6a5acfc8dd445c04fd9d78a035b234ca372563427acf78897e623d13a061da209840186f1ef9e5039d01f0d1d503e2a2f61374e438642a16a9d471ca61fcbe84c92b383b99604ff300f8939be6c992f07c7c4308cff0c32d48631c04c0449a397a48c08364e2a0329a56c661e31d75aa3a9566b47a3ff1d39e8c0345ea3c94f32359c051748a189d3109b144f9ce83fc1a62011c65faecbd115768a2b83ff36e704e9c0fae476e4f03834212fe1ba123c465786554dd54dafdceb0b6cd82a19e734b2b520455f9406b1c15132a44695044583d4eadeddcd0218451819e7d75134e15084f711400dcc31945f230802835b0409847029be649c1a8e658ea120925046865f459c86ec9df22b485f9a71cc112775bd8137e7e4c9580a96d2c367c7495ca30bdbdfdcc347c749ddddd4d54c639472b97e32d5112859ea4986ca6e5ed91097abd56ab55adef25634f9a905ac6979d110de04147e10ba0f49f4a1bbbca7ba5c4fba9f52fa3b6237fded9b7acb5bdef216a5f249f5bb1ae4b3cf4dd9b02307d8e7561b4d428cbec604424e2edff22eef2f337aa6f9d8e456f08c578debaec7f6aefaa3af46883190b0e234723d69a9f135c01a976f89809f6afc0e17d9781b608d8d17bd90d3e6f2b9cdf7bd007979977f01dde6457b977f791b36fe06e8281be08bf62fa0e3e468200e7eaaf1355c408fa27b795f7f6a506fd560b140accaaa2c1787c286d585b92ce6e325edbd47e583a877c59d7829c4c2c2b7c6274f21951a2ebff281a05e15ee55befa714eaaf1f9a9baa209738556523017c7612e0e7371984ba5460d97cc86b7e815d368bc85060a59893e3eb57c7c4af9c2ed032ed0a20a27bbf29debab8b3df7a4ace5e393e8e3d31762208390b050a4c8e572fd88442daeeee5add78f2b9a44505a246a117d7ef25634d5da72b55c2d97cbf52312b5b85ca3541512f2979d960ccb78c961b83dcc80006e31193b4c6464b288a2032d8ae8208b21779b732a59a244c90a5437945941aabb5d046c18093ea7fad915ec0e6fafdf20272b909a02fc9cb08f35687243191e1a3ce1914192ebefa308e3d605f671d07f9b2adc1ca41b1b9264ee8e97e64b1919194a672bdbc2362f0c9701a11946b3bbaba5c0baf777570308091bd69b5a2b9d324e176d15a52b56932337eeee4f9b996364766d3e53dd677c66ceecf00ef4424ed80c9d0141ef376e01ae7bdfbdec9b76ad0596bb1aaa111b4d2b7943ee619e1d0fd26d158fad1106082cfbfa61b3c98708e31f0226f96bbf7d21e092bf0fd13419c67fe6062e6cbc21f75caf9462c1bd87dc80dda86e1a8e645f33c1314a700c2a8eb959694fd89a84e508233f87991bdca74aa5c230bb034a599f1d1794e659d2e35c5f7874b799ce56819eb02aa6f11aaab78a69bad6a92a5fc9b45a8769c0ebdf3c4c93124ddabf462e1d1758f9a18c839eb0f5aa2aa004ebc0a199601a09708cbff7f084c53e6c5557430d3018ca8ddbbd8169b07e1d8ee92657b0ce0c332000013972e0d0699d160a62add6b28ee58ec1c11b38c6afb061ebb44eac55c7b15eb99cefdd0fbfdc313468a3090786f12fc2688c275cbf8163fc99380dda7bd5c9b269c4616e564e3a8293c4fa805e1c1461a9152836c6b1adba08ccd35ce9acaa8e012ccce772fdc60da54ed5b942d380705dfb628bebcfd86fdd5d2b5833c40903b3ebb5e44d684735552b5693233b5367329938fe4cddfb55a815d374373746ae4f234ec4de504be2a539e7c430d54d6827051a19d24b9a0b87bb957566e6dab5ce0fc627c583858b070b174f16446eb869a136bbfbe1dd390073819a60956ac56a7264e74687098e12956ad336191912e97f34da69d08755dc3ed4a7d5c44b18ddbcf7dae5e47860c630feaf1a529e3facd70375b656cf5a10b873773ca361d3b46c3b824333e75690c3cc95eb280a765463a4c40bbfc02549bb4b0970fd73292b76b302839927cf1c387af8e46c42e80ff14a0ab2ff10a58c327ad2936a9d5326078e5187644f5929a564585177a594b246d3065cbd4312cb3b333bcc497356da4b7bd9e02819b2bafe5a946ddb36f6f1f1f1f1f1993eae5aad1d8dfe79ba7872e7cf9ec149323224d26864ede65d095e6c98668897e4cfec3b82404b29ed7874f6cdefa64ef229771461378d46ed15a7cff4c13a6e9bfdf5ed9785376e3f75e91a8eae8dd0858b813ea1943420b00a601d140481ff9c18136e834840bfc337aaa9304a29d651fae3f39a3ecc7ad189838f1bf8093c46117cbc3434587b6d475cdf885cdf88c03c4a29a5d67ada4b7b65952388739529c4f84b38c1deec3939483333b30fda4cddfde4836998668edc258559f1e38f3f7a66cd1ef92c1f5814de0f37b36c7903876cd75c1c8f94524a19b13a310cc32686615bfdadbbb30cac19e2541ffbc2ec36e5af724cca88f7a319616629e526ada8c6af2c8ad16f04fbeb6e9581ddc1e50ae78debcab8c39c4630227228a5340c1bce555d1dc1a1f467ad15c372747eb66de3edb7cd7ddbb66ddb389b456018ff39c67475770367cfeb8004782c6ebf3f0058005c92cffa1825cbbe13073ae00c0ca712b7b5e012b6e96c2b379c3a7d3d82b2dfe1395eda947849fb7f8edbb4ec6609c7ecf0f838e927fbd9da08ff7eed320f154b6eecefaebda3743661e3cdcbd9b66ddbb66ddbb66de3ed3b17a641fb1b3227edc317e86f2a87f1d586e4634a29a514443f6ac3574b636ae1fa4f345806ff8d092e313bc1264a8960923f4d21b9dea7fe90805efb50f5047acd4fdcf702647beeb9ed859cb6ed9bacc97ae9df9e7bd007eac0977e0ef4d76ded3570fa6ce0746da5f935fbf8e1646118866116c749db916df56d2aaa52824d13a799aa70a88a36b1e1b6a9bcc45c28818cebbf2d691d376eea3ee4b6249b928e4176e01c8361fca70f6afa8073a2a68fc5f112a5aa6de52520fafd3755341df112f6d973cb53d534f7135545d3a6a22a55acd56eaa0a6edf17c9ff3084cdad1918da4db5a9b20c9b42aa5b2cead7afccfcbd8d51c872554e154f09c648c1b0563007534a2965d98217a27b2f3bc46be2fd782e2f8ad7e39171fd675c799ecf3ab039c0651e2e98dc269e9394bdf1eb27280e5582435f0dcb8f7ee5ab697911b73ae2a40ea74b82ad7c45ac7c28b4f252aeac7c7f7325aeac7cf3e362890c9779b81872e9bdb9fedec9ee08053b9593fc9db0402d5093d1c7a2af36c172499cc4b9e2cf0fd41a59323caec77b98b90a0fe5f1a04da05584f1dfdedffb8269b40f1f0a23255823dc205c7fcf89d77292d76408f65df871e1e7fa7b2a9e67bdeeb3f7c2d00d41ac1b7a31b029cf812b1f881561401e2a82e1ccd56660312f85dc0ac40253402cd003b13cd63f0904862419198f35734310cbb344b0a0553479a89a8156d7573c269fd7038ef141c3f8bb2785268c9270fd319447848e5fb39c04850d412c10cb4bed34a0feb4e2b5aebf37e831f1584ebab944ac478463b680025ee6d9a2c5a32709f7d222cae55edc6b8b9d2d7490acbcd744febccc134591bbad7c5e118759013d540d12f45a5ecf8e93cb3c3b372f5ce6d959723d5634792894f48e20f9def1881e118ee1ae87b261d8d063794f3cd40b154d1ec8425d1e2d9ef0689162e2263e396972438ff5bafe1e1337f589777004239e93eb5fbda1af4fb1721289f57a5c1e8b1aa145e8108aa2367367f2c418e3e7316971463c271ea7baeedd2d3b72a8950db728d79fe524df985c9f436c7c1ab95734714ab8d78b0ccbbdae7fffcb7bac975c12277146fca6279a3854e47ab6284ef221dc2a9ab656edb13e23e756db0febfa4b7a2c8f65c4861eebfed01c8fe5b162fcb9fd422ac503f083941c29a5a3bce43a3c6ec4df8b38ce1257398bc562917cf8a8d5dad1e85fe5cd041c2534d9a676c35ef988263fd9308b6431b0a6690085132d9c86e062e073c29e695e9826fa144f28214377d6753bcf06f4911c1ba2f8d14f4cd087146ce828d7f152d828ec23188e48f62bf8d2df6075140eecbf018ef2b137f87054f7b098a67bbaa75e2fe224f914e4d13fe3e7282779ca1df0129faffc1c24520b6ee82a044c1999991992a0ecddf18361fc7d380a5379e9c64bd1518e9ad3484a8e8a1251c8cccc4451a7ca61fa5715a7e628d159529720b5a20b8e4b8e4b8f0b192e4a5c5ad7df25890bcbc5898b8e0bcff58fb205a705a705a7c5650bce6c2945c728e356642b626fdcad05072794c449dedd38a11c2799c0bef4f77de1416f832d49ae4a6dc101c01600d801000f78c6f5077fbe2daeffb7e3c216758769e6b6e4fa8d275cff1b2ea6e977b9e2fabbe84cc1a6996218ffbe9ec475174c265a7038e6880d432f2a850d43382e4cc125efc65dc0f19c7021c9f5a2b8d1c334d9146c4cc134daa73c71fd99663671fd7798a65f8bc2f5104e2809d34c23212ab834916092cf542a0a2e382e385868e539c1a55014211c2f8ad0cb9b420bce13f5432bf9fea128244ee815b6c8ec862d38d7bf7aa30838d7c6142f1b381ce32e2d382e381978c3733846fefc6a5fa9d244c86344414b718c1bd18ed8e2fa872a555c207aa638c6b39d4e0b1bbae0b8a0e32e2cf1520760924d02e8878dda014387a57dd4888d26a1134d5387e5258a02834b54053a3a53279a342798a1c39e67add6022df097a232150ed85b51d1e40c33df3510d44b515e7226cd773a02792b35824d1a4de2fa6bd84fc5c006e356e98d3f722620e7bb71292a8e46d67e17b85112413d1b4db6ea0ec41082629a0635166b422872f9e72a9ab49d49844b9a190ce35fb52b683d11466b7949733949130297b432b49e9d9e689a3fa009c3c39e355bad5957344d9d0893559797a68e93a6ced47133d884bd7685eb8f6d677052461e18d75d0d370ca960fde83dc3d666d7c95c1cb39d61fb371bea8499594e6ecbcccc7212b9ecb5629108935846a7507aa6383694c8cccccd5521664688cdcc52cae6aa60fba394cce38b2ca564301c41ebf24605db2f274bd6747a6423336334fa6067cad85fff77c83ac1e6907ee818ff5875725c67e84cd93948396dd296e83c40c709dece1194523abfdb79a69465b419b28c18a319136c8e9943c8eeee0c94d183e66e2ec6e84ba089a36df69ced10f0dbdddf35403d51b0de1c254882d2646364d292388c3f0e04e6136a5a8a2920b139d5f7f06b4e172918488bbafd3b1ae0266cc5c36373fb8e7afaa8361e9e2e5aba8d307e85259860730ab9e7e6d03afaf663d249dd54eea0082bdca653c64c099fa88c316c4ed5092ac022e52eabb2851ceb99d1b2568c4884253dd0b1dd659e253b4b7472c0f2819c36c6d823acca97527e1d4929254b29658cfc02849eb0f78b04036b8438693eb0b5628c858f1889ad327af7c96b6d2cae68e272c18857e8e0c6972d82132471848929a460822d10e1469e22ceb831bb31c6184158d4e0faad3646267e5660051244e82209629ce210864871e32320c6183d2b340cab2a5836a77ed215abebd77b9e217f88bc2047070d149c5ee063473998977970c01a028555b9cc3385110cc0c10e4f0cb2e0b9220a2fa39473ce09f66c4c5219a594ddddb1bbbbdba5c71f6c5162386e884dd69da9f3cffa9344ebc4bed10459c713e20ca82786f61856da3e23e5781c2c3b1b48c05ac43e6b128580f6f36767c3052ef61a86fdc84948c0e6d3ce06123805ad63c00932722563c3ed84e12a8236c1250d22e69c7352248aac7081841344e830238d2b72b004183bb04113216c5c1849024ad331a305529009e38a2ef3e8ec6411e728babbd338a38c2c973fc68e3164399f3da5d8424ce3ec258a558dfb1b2cecec32d870e373608859eee4e17e9649a11eb28f93d687fa55264dee4e8c878f5468f1b9c14fd604fbddf83394586efc1d8270d34a8b013937926e8c314aeef83984f05674e3781ba390e5dcdda383ee2ec47bb6733333f7199188ed2e43fe774b4967ed22360ea4f48fbfc530bbdd83ad7aa95b66e64918c65e746abb85c821dc9d0c19bb9959d29f5fec98f913ccdd1d3b7273fcc9cccc1c475903944729a59c517616e41326f63660464a19fbc2bfc034cc3fdd839fdb839b5c156186b0694784995f8b58233f1a59cbad38798614c4a90e3477cdfdf9663cdc986c89c99f2ff2e90fecb66467e3baa7fbf92d2cbb7d7fbda47738282f8e03c33eb2649bafb506662d5ed890bb12f3a28826ec45114ce63b8e97d80b1b9f3b93dc29c1e66929c19077fcc64d7cda1143f6d909d96727649f1d1d22ccfc5aad1d8dfe49241f57b5221aad33587146574557bd54493024cd1b0cb93a2ef32861725d4e9a59cafa7727bf7d624f4fabc5ba33333a231d1de4a703c7e068591c387e4047b619f218b5fb75609a8ed8735f11dc77dddc73c73d8671dcf747b96da3dcf665cfd59bc5dfa18212942d3be73f6747dbcfb7f1242fb99ef4cffc8ee236add2befe0ddbe1973b4fcd29b250a2cd273d8ea7596c73ce3993541cc902144871c3bfd8115bf512b3e79f94636c9275cc9dd631c1f6e9185a09293b7fd3a16273590636ae38464e30641f2bb3975ddd26c2c8475d399360fd534e32e224896118c52a56b18a61d8c4c048a3aa2362c398ba3e577e4c45933cc98faa17195357be94f3c3989a619d291c9671cec920c7fa847d100b2812cbbf7d615ff8ca2b70d7196189907147dc85eaf6c9868d71746258fecd0cffc8345e234c12eccb04a210f365022e84fc9f014711cc41ca441820272127076fd09068f72266048370db23ab634801d334d83ce018ff78d9daf88b068763e61433a2e05a71fdfb762bb0a1bf5ed1247f228ccb9f97fcf154ebe08269fa5b080cb3d33a22d8ad8ec1df354d468600040000005e5e6e38512b2b146cd6143f39371cbde44fcf68e32fec89f56f5484a1ef2312a959ce62b1a20d27ab59af566a630458272f28d23d7a8c9e69da6f9aa66952823299cfe040ba13b6df5dda0b6ce8ae1d13d73df7424ede06be00d91ef420b006f4db0be97797fd7cec8830bd63bbcec776446c28c37da38f934244c521a02bac4d377fb1c48e0db258b9fdfeb107df1a60d895fb127fc706595cee7aacdc2f96b8fec47f1c8abb9cd455b09d0aec363373bd59c77c770b863d8466d0b0fea10c02c01927f557ede97cea58df38a34c9cd13c83b2318e30a6b8508d93dae6b6bbbbbbbb8c35d658638c353fc42155f854d193739363a4b915d629c68f18af2ec0587227f8ca6992c30475437ed9dcfe9ade78e3411010146c16d0e018faa1609967063e37f41714bf54bc62915ac5ea86fe629e2a5411158b307bb7b53d98497e6357030c2bbf878cf2e34b903966b6c4c04630f49a87c2713f5eaadd1136e41767293dc6487d61b1ef8cb0b4c6283e3782e17caf1ce8d70d87407d3804ea461ea0eb2f8ee9df583673e1104f19287f47fcb9213be68393f8e917448e93d88a26d75f95c70a26b7bfc64d7dead710a80fe320357dfb621ffd84dc19f6cd8da0dbcb1ec5491d4d22e8ee0e126d407f39a92b123614f2622f6c0cdc3e375be4294c1b3925a54bb6196b10bf4523163f973bbaa21f759bd8472510d7eb9d31c618638c3162d9ad178b31c618c1c931f24770bd59064982ebdf355e6412309573d26d900d483030317e140c7bb995939fcb1d5dd1cdbe91ec90d896cb72b3af76489808dbef5fe8ae5c952fe56e19273f7b378d939f77370e74378e935f77b76e0371f2dbeee671f2d3f824bfec6e299cfceadd5438f961775be1e447ef16da5838f9c9bbb570f28b77138db89791a8460d10fdfa147bf985f4ca8f1836658d9797cb4e6cd2147298ee80e5ea0e9bbf3363580f3297df4b1e923227acff0d17fb9e73ce884d6787c1dca347ac1b944ee2a9b3f9cfcb1c65f6cd09b0d8c7df26f68f7df5dd3dfbc21b2e7733cf7cf06d9007d983ccc55ecaeb01211793f57beeda07df08f62063038b578fa007845c7fac73007d211e445f1e62f813047ef635e30103af6ce752f6e5a736c61152dfb89bdd134d8eaa292a33447fa39ef72cdeb3b43c4b88498b28fe8c3fe774e1052c22d1bbb4b4bc28cbbe79e0e432102ef37ce1ba9b00bee301fa20481c9370b480dfb7f22e2c2cefbdd0d9d09ee742f783e53d76d2fc160270cd34b7453f127d4b8dd18b6a7c7d5f68697996df0ac0f10efffe5db871a3869df3b539e7fc5c461d8f01703e1a594be98fe8534a772e7dd1873255849e510781f893f68856565c7ee5298f97428fb276bcd4d9d048f8f92c1fdf50f7c3fbf9dcb5b088ba27acab68e253b5f46dbc94d2f1f0db12dab8610fdc1d7dcbe8c3f9359e87f922a67979faf208a66179fa1b0bcbd7f8c9f22f5fdf94ce012c2f123d0b0bcb8b7e87bfcc098efe07ef8e2ecb8fbe6fa6e9165161bdabbdc80a1bca9408890da5cd65f94d4624850d0f96dcf8a3f7ee47fcd177c7c33e773d7898a259030c5d44200f2e2f7afa9ee841dd0f17110bcb7bf783e55bbec6c737763ff4153dcb0782be221018ba3ce8b2fcec7af020fa20fab6bc0bfdb05f978a4030140df1520bc883e85b9e3ea8e5bbee87a8e5005c330d0f1e401f447f22296cd82f1e9d8628890dfb2555d2889778e8cf9e7ed7d9503f7baefbd1a0c7e66d82d8492d607d99cfb70bc170eb8d5b59ba5b3fe4eeecaa8d9f2b1f5f50ca17d6ee0bb9207ab6b4797594eea13f6d38a2e07c71cc448361e41f71e583c07044c45222aefc8c0353f26d7cd288c3c80d943732e524e9a81efa8e928ebab23aa9a7ca6729e5366ddcb61a18da1baecc9d5996f52073a9cfc8c1265e6ca01f63fdacbfb0c34ee3d63476788500fdfa7917ac3dbc2bc11fbcdb42b06e1cd8dccdf367cb6f4333441cd171b8f4959bb4ec492e736778e732abfd25f8838137383aca5df96b9e819ec4573b2f777c27478997e6bbcf687377f80e97adb9c4f49edd0e3ecccccc24e077f8f752030cfbd76b94d3fb047029fe54f9b09a9806fbe1e882be573f57de2b87e995b482fb108497a27f5c8f1e9c343f823bccefb6893636da639356d00c10fd0531bd2e0d1b76ab67f7dcf9edb2b29b48ca852184c9753393f1d2d436508be4a4b9b2b4478e6ec50a7e8df3b7759c84cdccab634ebadd8a30f3bb55c1d8ad791b27678a6e7cee7e886e2739e22420e48dab2858f961af2e47848d31c6188bb0a2cb3c5facb60f67b852862b63ae84e1ca1b57f62ab4512e019761b214fe3ac90486993fbbc90c5ec810d33a305430ec56834d468b05369cb9b332e099e78b22777e0e31e423234d2b3fbf3a0d2a1fe248f93034134d2b55e54729a3d972d2fc29d8f99e627941777337e7b8ce9ec5c638a6cc820739df5dbe4b904689011144957ee5b3ec0fa281e87f6127c91df1e56f61b97e3ffd1c4c537f18e2fad3ed297d18a6d19e7e0cd3644f7fc64b3fb4101b2d58512e7dcb2a72e9e390a16fc34b7d834bbde8b9f425a5200bbafea0ebffc2dd22b77d2fd9f3e5a1be64a00d345c7f2076dc0abefca0e1fad370fd855ceeb09de9842250c46ed3fcb04a241387c3e8b0a1ad4fb0a16d191ac95c216a997b333333a86dcdceccced84bd9b2654b2931f98e613e78496b3965b79ad04f871d34d03e6478c9f5e3416adaa68768520636e49fabf96bdf292f6d7c7df092bb7f7c83f052f7da07f112d7691833f7d77d0dc549f1f30cfb9e357b777777f74c6a52939a942eb31f27c59731b021fbfcd438297ef6f9e0a4e84346bb82705214ab811ddc4633829bb36bc5187c911f7f56ee296c8c23dc562d2f8d62119938c4a33ce1f726ee3ca7934a867d328212e5fa87243aa4c8f5224e1ad20dce167501d31cc13a9a63e8293f324d635f1ce230fe6e13f6305346bc24bd3429b8ad86b0b1641947e09202eb33e7721773ee05bab9f803c52ae188e8ae86f8855552ac6e9adcba4e72f1b3d64be1e2a722e594c2c6d7e40a97d2ad7473b29348386cc48f85858b5ff835b08b442d9aa0971f94022cdc4a0b1712712cdd8865341a85565446a3143b1a8dbc11a81b8db84dcb2a361280b6a3ed68606cb1db9d76c718a3945b115ba32aaeb022764e2a69955c95a1901df9d85a2b47716cd818bd6bb415e9dfb622b6fee65cd5b62236ac97eb8e31c6de8a74778c31c61863c7de8a74778c31c61863c7ee8e31c61863ecd8dd1d638c31c6d8b1bb638c31c6183b76778c31c618677cd9b11be4905fb0c2e6124df2c11a2a422452be0487a02fc410f3e5632053908af87c9aa08d0439c26048583ec1a012a399e8228a0cb6eec13c5edca860e4241218838e99435ef0a4b6cb5ef00cb1c2e6d244fd98c5186bd68a9ed68a5187d8ddd607540de25d2b6646f5acca9e188661e105aefc389b40279d603603afe598b6c910a39ca8a44db74531956a06020008001315000020100a06042281483822d664c57714000e7c8a48784e194ce45110c3280c19648821c8100306c888c080cc600400334e42b9370e3489faad6892c27c50a267266458c2ba0afb09585d427711d1d1b5585e52ea97cbb1090590862b0f18ca016ebbc27a05a54ea2a9febad55c5c8885259415bd56381658dbf82d0321f639892e4e056a214007b9780830ff504e09d5100e1795a01cd510f822088e78c2ebdfe344ff5dca0b636ce1cef81b06c0dbafb052acdd5a4899232384148a1631a1c73e47f66e2565a5633ee239f09603116bcabe50937d155a5aee641b9c65075a5a561952d85cb825f32ce4ea05e1f077b80162553a96fbdfd8fab936053b87e6a1a5dd92ccdb0a7a3e47642c8efffb89616293ebd5975d0120070e3573317d0d118b8d0b82afd8dd25510bdb08e80d0bbf4691232bb5b47514568c03f9b9e852a679b9e534cd9d956acb975e4422a59cc271ab1f8e5b119a0ad67253fc6f9fab8af979d5878ed51b5bd559404bcd8978b5fc6b7a392896df6d079c041d5128e1e4b9708d5d41309617be48cf8894f14010a1b03905339a631795c11bb92264b32ff09038b82eb2917ee827da91944839b57850ae91aa0c995f3dbd003850e8df72e648fb145b2052e5922fb0482c06b67ca2a81d9b84d4ebbcbd23e5f268dfaff9ded4238d9a4cf1ee2cc19afa326a762c68d6c3db8c836964d772854624a89d9de61ae38e07772acb11aaf0e09b59f78dc3254b5318da63849cf0fd120e92f88e2cb2a7a6f0e015154e835d9c8d15d69a2a0348199b76a69fca0a4adaf0efbf96a373e6a32e5f23b6303ff390c3148332c21dcf3ed65b4fda47d28240aca16a476e60954c5df66c22a39671f0e920bb08e5bfaa9dc9af2cb1f3621a061d7a7b4d7824aa671affa4d45f6b5ca8332e4810bef93e2940bcd6a2be77545c123d08078fd19e3c77e8fda7af1f6e6186316dad35212f56f404fcd6cd794970e36464956fb8a5f046c293de3ce17abcf79e6e2fb89d4d9c7ebe02f84f6507adeebb7835c04e0e806da1cdd96c2f1e05469ed171cb7a6a5554363c6330a8bcf96febf942584be7121a6d6cc49db893da11bfcc6974ece53fd5492b4178105d5bdaca706fbf17cf847fb95134bf68a2b50d665c9d3e70d7f52af1cfab3ada57a9d4910a44ce0f58cef082258eb00bb69737156439b8a3349bdf8e0ee88d51b888ed5684e01ede37a006b5e5560af6fbb50555c3e5d23638646e605407d481bcf3ab94d3d0d0051c028758a610561fd4f662cfdd287a8a9a37589fab7883c8c491da9e64a1cc215ec0d0b2a6786ae8661f8a9a19939ece284a3a629712a79d7c5f79c0f59abb82d05d801df6cbf71414646b2ac0dcf31ad2a80bf2c0472b318fdd2b3d4e0df35303c41914df1d4ca3cbf8dd720687c9549e8c97249349246a27b89c08e8c100d6c8513beb287fc4b20bb66080142b609b5b7c24c4fa15f30ccf56a37ccc1fdcbf711f1dcebdc96181bbbd684be7cb0da2c8c81c8cba924b53a8c79db1132234cfa8b362f84766dedc50d31f66efabc36884660dba8a1d9c75c2ba3fcd1b008d66a7dd5b34e32f905ddc654141162890aa717b64be15e3ce7207fe5cd01c1a9a7d16afb723ded582c6f46da705ffcd7316f1b292c83a82c54a7f85174fbfa7415effad6f02d356e53c2067a8af0ac95b1d2fc48f52cedc461ff9961c8e983c37b0b9f49fe50f581c0a6db64a219f908f348bec1d86a7d268f6c9920968a3517cc391b3797f92cda4c91945254f52386ca007fdab45453ebd1bfdd1c0997f748002a7b3128f1f02473fe5c33549b6a21263cd39056a84d8b4406c53b999b6552cc70767648b4202ee21011f130a490dc982ce9ffc4efddb7423fb7fb677f5cf863af33a84ff70df7f28de787097a93a7c81f06259295fdf6db5ac1a27e8b34ccc53c6bb67002dad2554a0897f5ea2f371a4ab653b0da9174ca6fc0340131a436255a267590559fa0de1d2aa12a0ca1f5c3f46c5ae25432d80d76a7b5b3e5d0678785b79ec29bb2bec8f1ddbbc52fbc55edb744aef0de8c79e7e9c4a742663cea51bf41f733b60cc04c1cf69f790720bfafd5c26d0ec646603daf9b00fc72acc0cc7981086edb07acb34cd97f24b803e67270a66ae1cb96a6323d6e7f1b625bd79b4fc764884264c7a9d500adb5bfe61fb13e7b01727d32d0968953c4e56b09b980f62787a10184591dfe008983ab849c1a45155f26841afb498877400a0d7e22e07529f7d5132247d8390251ba661be8e5ffb0a2e4036f660abaa56883d7548124f523a957fc08c96c7348f82b0d910bcaf56d70d6435202df4ed4bed13c1c598d9d8d0d353fdcd672d007da06250097a46baac851214588340cf17df027d9cf3094054b4326d285e1005f2686f12648028e30fe20f8108414d31499b69425714fac27c7d9b0c7962683d2eda915c68fbc2835963d268a61f1fedf2c858436303146a1eb912e3e8ff7ababd3975c8d294df80163dee7789c2dcc6e7770797f44e6c0a64b72ce9be6ea67a78e006980fb028e3a0784b32df48b107c4cd6f8f66deb7aaf17004f63f31b711ccd14344b4303019b34004ea246646bc4048d33fe80e74119854b60c79b04e2513a6b4916c008c15011b773e3fae08ed452e06c8d2616afb41596d2ac2c4f15c9432ceac436e2eaf85daf43e605c2263f09d3630158a714aebec24ae5fd09f7336a0c1d569d51f6dfc3443395a8747d8ff1e4349efd86d943c155f342a74f7d8d5a6e8a0b9be07655a206f8d00f61eb928b077775d2b10cd0bf13be14af6772d6ee0ea91daef4e89affc45cc00e40d06ad127e2ea992509e73476bc1183ec0ef2eb0eb2b5bdfd2bfa00f30f20f092316b9e2b32bec4c635ec91a881fd46683dd092b8946081e2ba061154d41901c0d6b1bb7f4a9cd09c632b74f9261eb1368b7b937a304275f8967b085ac1e6d1926243602ab8651968f2ab07a6894999875094797d5da6c7b0706b2f98fbf5376c2fcc54f2552a4fd298625658df5724472278cde14872733e0a13e03c01c1a0600200d50e6fae6f6665a38265da2edfe7b7203aa94babc9fcb00216702a1e8609943b04075f4a55127a832e7e2b87ba857bb42b62e2ca491d41c7b0f6ee01b9f4b416dc7c0452804d45aa65b3650b84f81877bed08e839f22da9bead5bfef0a0f2981c2c654d255b11e50c235f430cc663ef63bc6039b8fb3d694db7efac2336aaf49398d9c086a0c9406b48bbf5670deeb6a2b9a34dad8dfbd3f9889dc1cee7e16a5790443f693e0e31e5f2281294f480cd8736eca5379e27822638a26d8c427cf10f88f847c2c77e106a6ac8077b635f8a87f885220fecd26f8338e0234794dfb8dcce15dbf4485906eeeedf78ce87ba4f9603e5c1a2bca8ebd985c2824af461810402d7bd52ee7862e8e927b668acdc262aff9afdd6f43ede4dfe6398968e05b36ea02b6ea29eeb827200c8fa0065f1e8a0140aa2a09eef88d1042e720d04539a0899c7f501eba36f0de5d8b23be4227707d4740269de6a057c7bd402f72ca0859e163cb88016f6ef646480c60286dd0aba8a093644ac87ad582894f1c3701728df66dee380ccffbf27799cdc062f80c0ab8ad5376829ad5142c236a5957e4961b7b2d6318d37f58f69e23e767f094d645a63dfc3aa4ed197b4860381a0a97e5e0fb71aaa8c40cacc232712e22d49141b3f45744ff1c7daeadcfd30bbfaa495ff50fd04808684c93ab3412c9e135d8b41d0d54d47db677f759c50648be385da2f780361331280952a70a338aae03b8710f039c928500dbf6b0c8b711a5189d303e8105b70dfba6981d42095aae15ee1f46c7c8db901e437e9f44dfdd2ef5ffefc20cd625d689eddfd75248fb3922135b654101fe3c8cfcd0c09633140e94482a4a725ad39cd26311a1e696d06cccd24520f8225eefc77b543de83820b697c5597f4d608114eb3cb88cb08e88684c610fafbb24798f1b1104e261a311773c5c7058660c80fbeb68c14b2d81eb65be812e0121fb7294839290d247d26d6afa03cc8db060118cf22af05f13c47a179fc85881f92d70ce6144e476411f2cf06994665e727ac285e737c98b8c1ebd6613493f4d329f71f90d4d41f1acae47c63cb0d3784037c065d4caf6f901ca7576ce0922643b21c1f8dd61a29ff65abd5b46e56875f9675b17e4d7c05fce848b71af1e2857518f168a6d5436d2fad0b0e9ee7488fcb52ebc3492572d254494359b842fdcae9873629429fb7392d7c0448c087bff758a7b258396ed02800d9352e390b496825f1eb7e493217738a5cae61bcb58c6b171f487aef811639be1011cf28ee4a1a94d47382cf2e3a41a75f30094bdb3506c38e52a8349c86b9e7b1a085a0fae79e6cfde37e52ec2a7d655c844d5788c8cb8c3bb98cef21809caf84e8fb70c1492321b4fd8f82436067b19813ea7b63c8fbd0d7ce5b18cd06dced160713f189dfc2bca58dca6c3647149dac93d93199ffd70c9b9e7767096ad5f5c8ef15240a6ba2059508529e31e8448e35341856c1dd31f042c6c8f0ff8aacf95b2f7df302f591f9a81f64153c6c824a002e9b2b0de59fb810213e33195b5ad97e92af3cbd2548d9eab4ee5a68a6056bc9a945c8e23c3306fc2863bc0afdb6529c2f7d46681f7947c953c5d6f0e7da5b548d5a96a27a66cb164516edf387dc81ead7773c9c4389a04f3870dbd081b66983e4fa570fdb4c8a62501925473ce358f0195b2ef6c8a120b62bab87cc286537018fb1d116c776a58cdb37a1d33ef011ec30a25a22ca47d09d588da706ea311db7a208bfab06e89e398abb7200eff78a428293080da05bdc7fafd7a42b0bcaad56b6b90ba48ed2477d7aa2d3393c0d684dcb63c8f72be70cb748c125cefa89cd33ba6f57b89357d755d4185ce41aa575e3525d0cfea471f80778be4fd2483be18d36b55c5f6d045d18504889b916a15e826a4fac843529290ae0c16c996424e2c36fe4cbb47a80c3b47a320df4b06721f2fa2d67bf82d1134ff99fd0c369cff0613afbd697bf7f181acde01e048cedec2711fa72bf067cbd54be2a91330c130917db0f2845fd4df96dec0899c03ced84fd46665ac3810f905ab0bd5e2e8398fd268c8a7ab1106d55728e1b892545f21bfa37cdb054b5d36fdcfda696cc626a5de72736d73c0becf3d62d19391c72f53305838623e8a00eae9258e3460254f24311e1768ee1807ff6cc47d22ad644a088e152a0e30c9823cecb7c0d26f2314943391d2372a11661498f17299d92cab5dba427b1abfba9208200fbe4b4fa8dad9f2eb217aea37ce8c54df0699fd40a9c189cdf86ed65bb537b2ec73769f3cf00c18369fb32dd552118a1aa74e8367e43d6a878c0a2021d84b6a5378ea7e3a07794b037ad48dfe1fce574c418547e272376ebae2253fd22b7309ed99f074d00fe1f511830463282d3ae5608fd2a348ed57c9c0c726798dbe2a6c1b23b1a52aca1b73541edc9395725962c6ba5aa06496fff8cc3d06134acd87102630d9b571a58d6ab4bc5952848ad224cd6ee2dd883a425e5960a241a504613b91a7fe3f1baa8eaa01f5642cecee9563fccbee49a6635289f35f0f302670b1de6217e0bf7a187570b7e2b5e671eab6337f3bbfd53ab16c1fc5f5053de6b351367dde41b2fef4064db2c46b21e04cb042d62087e4dbd392df4555c11d5f6b61bb6793c20a76f4b548c217d24ed910acb6dd7ae8032224b9e4f7152a2f7d481844ea3e3bab0a4dac925b7028df7b1b21199ca4b728efc7905b8c795148dbc4c8a9ccb36af67e0af7daa089ec7202385e9fb84e76cb75691e3198d216409cd2fd47aa197d7730b6de358f7e680345aadf43f3cde28ef7733ca2193d590683691b29bfdc1bbfe916de498b9adb4d28d8347c36fb7dea4be37bda074e3fc6237d0ec442094e303bf6ed4e36af02f0f10523ac945a1421468625ceed6717a0e0cc2930b0c53f77fcae8e45cd120449507500dd375cc6d962f2b4441ab0ad2eb1fc603089998f9e14eb7f3fa512d946db86a80e488052d99c4b837774e836d3d47c14c5c83bb793aaea7448234e97033b2b8fa34067fa293bb3e4a6f76b5573207458e373118dcc26e6304b4eb300e6c6ee9d1ae50df022609e79d0ea450e2fed220ba9d1da9c18c0b83cfaf8fcb743a355222a2fe3413db2ff00b643a9c414b1e545019094eb4a72fc67e595fc2125c481fdeaaf207060de28534574fbe14ffb8435729f69fca53b9c7fef4509c17ca4c0c7117659268c2bc2d745f3d58c52e282441dc7ec5fef433e866e1947756245870566376b825b427ff7aacdc8b4a7346292d486aadebec401b9d263b10213c1ef6fc15495b79e173260036a73b3a448aeac205b869312ec16c85057d813138329cf4582b45c5203408a1210aa3e638556bcd581efd17924d30098cd2e6f179f72f3c5791b40f085e6495c121bae5d2e7758b14f7626d42c087a102c0e8b2bd1698c92b0570c976ccf86bdefe4368c2ebcb11db03b50fc546d16e070750b002844d74110a1a6b640a83c7919a5581e953f9906869c008f001f8021576db42090a2537a82bdcf25b43139fd43f632e881e276ead35a6159955cf98417998db3bc0e59add9098481cdb1f651b5869814fb5f8263db8663e950f5c6e969da000b5e9c05e90a051acdc6d8b5699adaddbd753eaa9eb26aabc95ffcb6d8a0cd4e744e196cc0e18144184751356b8973fcb1a20936b886f7db26e304aaaca724671e305d5388f89cc7190782bf212be57f6fc60eb44c9760f64c77a49c00ba6a99e1526fc5ac99521ee463ddd65c7e0037b80beff63221f0db03eca80675c0e0f7bf36710497284c5dd39fda0f9b799a894c951a49cfcf27afd0051806a1835cd15ddbca5f497d730aeb368d8607cda577203cb70366f803ca2ef663ccd0b82992558ab2f707ea23633228d15cd509e5ec0aec12159c7f2149ac925d6b32343e251ffe1606d04f2ac2812c33a44c6bc22865e71bed39e6deaa5dfb0ab39dc80e3f40cb590128ed3b48df2056adffc093fb96627da46bfc70a9fa3fe74b2e721da2f2f62a614f217bb0c918be957eb3a22ca7bc6776668df1c3040f522224c78c19bed681737bb9b95e40e5fd4a3077dfd54017c744a23c79e44894c2a1f49dbf0113df40e02e0901bea2c6334e6d05819f2f4ec167fa3e3537773310311dca746ddcda237c3cd6acdf129e2e96e4e1466de31ea2a96b0a6d63ac706d7f29fa0aabbe426c27bf6baeb80e09b8d4f4a58ecedd1ed59a09b2f60341c2afe639fbda1d7941c6ed030d9a711cf17b0b8e67b25a59128af2433c4ad4c1261f520997276f9c9c9120269141616887299268a4e64619f2f7bf8a929c769ee7c3458cf2d3b4829c7b05afda19a65c1e80eea3311b56d2acafea70d8809774270c2ca23ec42a181de2571cd2146ce64c014b6f7f946f48f9e54c721c1ef83a10890474f68cdb85227bacc86a8da06dcfe84a1e6bba9a6b030036055b7332b51b3f39ba212edfe101ca1f882d87f9caa2ee20379ea3af50d5b976880293159f2ac0362194fb5898d32766d264edc570d6b78b9615d3ff621148ae8ce2b1d36562962e808b411f583243a388393a63cdd5a6ad211199610e4213dbc79a492904e9772c566123ff112f21563cf288c1b369d9d90b15f0ef0c3ba1c1b6a09e1158dda215a4a1c8a435ce6de15a050551355791ec98bee66825b8de05694b9810013fd433ebbe6671a0187c1aca6a73cb892224818a217c08c1b85809c618ae529ebeb6021e37a7f4880e32de22bc07d2d87f70e6aeee3673b4788dd1559caf51f125d7b5c797e8f166cccb9aa0a4af2c5d0a335ccf64077d103423068c3a5510f8fd139eed0de945ccec948167df64af6aec6382a239bca11f77a2b091f2e298ca8a854b8c10152ee071c55bdb4fbc1729bbbfbfb64fe0d6862902760d5acf1cb3caa1e6c286c51e43d043d9c6da2104d8bf198fff2d3fe4a3f44a62fdd5deb0f29514fcf1ac87a023a74d8cf3595c2d1a4a0c4c46ed12411c032c2be5ee3a71b4959e0ea18a3c31bd56b73ca5326e0fcd6376c86b1ae5c4af540ba5e3db23cab445fc0f09ab054646a216cc868fd8e79f5a33b7e24722865ce20b544bd0fae8c8cc278811186cd35312474df72d85e96d9fe58b7ae009e997357303df02606100863ab953d820bce8ad6b5a6e8c1380dbd0146aea4c46d70677ffe704da98a39e94fc6dc8cf3a4df009ac65ba6a20ec78106bba4b4b0dca71244a2411989e006dd7520738615b2ff516bf934cf3e67e2268874db376a48fbe811e9e9d9ea9042224d619583c42c958f98c78a20841206f6edc6d4cc466920624d65a9a4a8d69a0914738064aeca2404990a5b352b8d9fa89102dadc981bd35624ae15ce5185edd06927cd8398b73104df610aeaa3e39d0e846c217072534f1af304527a273b1e4ec3480e21f9720b0c96b793b363a935c0b21461d3bb44ecbae5c92ed537105d184813632792232501b335f48120681d15545ac288668fc8194b8018f5b6c5422036f1cd8d203c58f5c67d62233e86f5069377e516dd07c951373e192d6068fbc3ea56072859c1862862f0b8a32b8ef0d35bf01ee30e6ca4899d4bfa4fe3d9abe4005179c856901020b83fd98ac7b2f071049a24fb63799536e6cb5170401ad5d2a820b1a17176a31468823c012771461dd908861346faa13dddd351cfa238db52a15a5a1be775aec5d4a9a5640671ff6d97e907122b9031db7cea861b77faa021d73110474a292999a51f63e7646b8b0736256bdd2652403cb480397ddb3ea59d46a3c90fd3df39ee01c0241a22931db2281ecde0d8d5c2545b35c7f9e5e447174273bda0abba7e4897f1c23fd789aaf18bf249e45818244f8e076ddd6ef3eea73dde507c3083fc949fe7be1b2b384d44ef670ec5d2cf943d25ec9d71375408d81b502b2e490ed934d0a1d2e199bb462151d1443293a634aad1764bf5cdc606a267f8017325733e247c48cae46a0f6b6a36e8ee16dd0f5b9e7a58dabfccb1ccc756514c2be36b36326810fa0d6c57a5b22c8808f4208520225e6226bbeaa8a8b30ebecd747616c41422557f056f72f037ca9f3b9e614cd8e07853e257df1f0736045b7416d4a5619c999ee908dd21a54bc9bab0be5500592ca430d532204e2fbc8d40147f6462273c602f86b262ead5ee89786c5cd6d24f8b870f8dea72580c6362a9f29893ed8c5999582a569369895537fedd0e12aaa80e4ea853916a8206727b82ea63843f2d63f6af0038a2670e02a4caefdc374a43c3419a1406fb8d6ed78641842eea63533b11c4e343ccf3560ee91ebf2ea270d9442b36f710949f22409c2a3d680d909de54b98235a67cda026a498ff1269f0399d13fb8ca4e70b685e1d0db1df0203a1045ea5bf8557baeb5b1bc92aabb93b54f72b4c71a032ad8e0916888bd50baca49d08ca8b3cb234e1f9d0668773c73e8d3be3f058257ab2ff0ee73ec4e6d19f58b183d7dbbdabc8478af5ad8060a7f6d72720266b51a5b3b51575d33e97e5812d536ad99096e11a28c1ab2e828ae55307373623ad2631ba8d1b116e9288940a568b48498b3a3f93977d1f45ed5ebcbfe180f4b87870c9b9de29ac8e8a1f40ebfd115f5f73a4aff71301e70dca527b47d5c6eb48e737db106cd7f533ec82ebc9dad7e67ea93c1b7dfee2e28c4769ce9bf11643fdd3e68895909309b2f529d14a353bd63253200d1e7bfe0dabc02b192ccea09aa0edf76a17232711cda4286cea744d0b4dfc6dee8aac5614dc5778df0e839e92d10e14ef475afc3b6df9a2cfad33d00d2b163859cbf6e0b6d1211bf7bf9495d12dae444ba8111c5e6d2f03162ef6adcac1019a17212a60b6e4bf62ecaf06fb2ebe9443b172ffe014f9ede7b65915c653a0a65930975eace145f02281a680fb1deb225c33f68bcfa263117ad63a85b22aca799e3543c56cac32a43377d9d7802ee60c914404db7b0ccdb08354c70c303e569322f5d84e982363f9a6f3f83e2d6d9e2ef68442fde08022e5a25f2bc80786063559a0bc547b1681474a12fd7e413b214ae628d6ec8fe3e89a8137656357b8fe1052763e973c961a9cb80805c59616314019162049ff6132c079588bc50a3d75e9358c32c819625d1338198d1eb4e0f78e311d54f000318793c6037d89ac324d66d931789130ccff50f29536157e79701f655517c1270354a179192c2666e6cc8871d7c4902896fcc58fa614b57160f0a10d8c17b0cb7a36ecee894742ad99b3684c3181a3b4d23a6ee0a01ec8a9998143de5d62379e9489a713a4544233ef1c978cc54f1ffaaa44fe70eae8dd710b23bc93639a8253ebd9ca48b1c958be458f905827ef61708c45878a55a55f146e3f6af3e82e2125e2c6bf6620b9ee3a6c6109f90c6082badce461006e81601c97b02946718dd4df74725f0cd3956dcd4ffa339dd6db74b367404148c5eaf57e52d796ad2f6319bd6f85aecb36ddb5306cf373c62ce9d40b499e3fd2c59ab01b7d6362970a797c6621caa2493802fe8a5ec2cfad9e14e21d3bccb193ec7b3de7c64a34f4265a831210e4cdd068759c6184ae4820d5a3d39206dfbc861b68cdc5c40fee4cd0d7d7448c7510c48fbc45f4f14d1febdaea1ef6112159ab5cc8cb48c10846f4f48851e0082a43d85a09b1a33b86c9f90891cd0cbb27a983d3aaf917e391dd62b5aaf2a34e8ca18e538752e57de7ac6dc04b63905cf49d83dadaf9e5e7691549d5d71d3e0cc27989b78b90c82366c3e41edc2d4a8acfe551308fd03c745e4fed82c717772cbf4ad814af0128c6c5c7475728d7b49614e430ca032862304cc796d8853964944249bca7735f2db271036d2ec51305a87f2c50142fb0ff2f4606214f090e99d3e1296d9c1f215656466945a63e3541587089a0c884c66b8386556bc3f6f6aed5145d4e372f4d21278b163ad9c268a9c8f6018b948d996687cd47d1b77e288c828cc6dbf57430ad02fd20149ef33b237b24fe6af83f7d23c0b0dd571f9a84c70f006b76b963b6097def00b91830bb9c6f1970b0b73cde30970cbe55ec3ee5b7b2638562084d8107a08c7b160c3c206b236a8847fc9e18ea174cb6c943c637f615f3dada236bcda052e019e23f4c872fc521c544699212b42226a27e401dae4130e967c7be13d00c2abbc099b25d78b12a0d0a068a0ae52ed2b6f87dc1d30709cf9b76e1a14a4a1452d51be31748339057a18da44a25eaf08439eea34c7c585de7191ce3ea1b005f559769e85d25c56121c8544d956968d9eda18b9fc6c042fe3560412f14fa63ea5949372fffc94124cc10e0f1652b2f36ccba7cb94c64c563d4192a31c70d11bfc19365274f92bb085613ff48d8418628af7a7e91a441928a6cf4c790614ded5466ba52cfab680da542847f156f14e94ff1d5c764f693e22b965afb6a0b175d4619c2d73453d7164012b4d7debb8617353ecd057cd7baa0a9cd4d3123cd6a0d6bfa9b67e5accfb02a6e062d69b8f04656e5e2a2ba81889d7a7f1592c3e33e8c9a8679544262c7836ca6c05af9c6ea1107925ca71e616192249e052fc4df0cec7e36f07ad0204ed525a177cf3e7cd73f8f8820318e61e7015fe9ba68fa0e7f0f508cb0cbf40662ff684a4c1eb80ea65fc27447240429508f89695bbcc80859ee7ca027276ca92f9cba82f927d4392ed922875b58a09e75046d1c1fd3c53000d1f974785506f5ddf6e30c302ddf67e26035140b3782dbb21be946764310379814a110e10b7845bcd75abc4b15d3363c2024d14dcf7b964fcca63515c95e4ba9b78642bc632ee5f771a597bb580807b496be348ddd617d6750b78886ba9e4d0617f64903802e0bea11f6c2786e05c06d6ddc4f07cc9d4bbf808331a505f08a05d94efe05514a4b325b4cf0a0d9462831553e31a6077af0f730a9157cb026cf1bd0fe002a00431c92f470712f1fe789cc961905a9eb33187d6eaa4f31ad3e19e976142a700318d36d6771324ac04e70944c2d02ad4a117728b4d73bbc26fa0bb4da9a751821585b70568c4e0f6c977fdfbce98b8f11dc343e1a0c42090638279c98851b0e6fbdf3684c9cc0b86a0a58e1a55633511023d8d35c0b2b2377944e38fae15a8e3546d63f5900a2ca4db6b8976b1fc5a0cb1e8a3a247bfa4a27725e9f24f6db637590c18819693f624492c4df0fcadee005a78ad05b80fe8150fcb4c8abd60b1759ddaae7da2463ee1b79cd88d7cc6877da54d46c8e2215f8cc34c471098d575dfe8218b03aa790ea1253ef45d18fdba3897b6dad30124601617b4994bf583af7f19f7a058816661f8756c0866f8e6e9b92de8d99a214cbbc486d3dc78f20ab34f085f4964e429015a7a4ca3cf01e30c5b150bd8d425a80e5384915f58cb7b2e0a286cc759a3e6649ddfd7630237f22aefb1f8978bb567f2408238caafcc64166f1f7f5e2c384655969c0916046c221d5ec1d204285baa341cf1dc29c461494df880a902810ad03aab7824062487146ccdfdd9647dc5b42b1f6797bf61f14eb2b77ffc33a1a5cb3860ac432ab20f544a4fb90ba33af525b73746bc9ceab992b0b7519489652bbd43d1cc5637b2a82db750769e50421f7559a8fa38d8e72924b80ba5aafd60eee296d96890080358ab64f8f85fa51c210228acaab930f76071f1be5dabf7f902ce8a2a94c8ce5734b698a4822af3069dbd4ab9b2ab8423b432f5a933a4bb318822e4d89016d1e116bf8a62b00660b972ca6906cdebd6f475764eb4f7f624b3f0a6a26284624f2f7231b49693101836fccf476f894450cfda4e8e6b243e77676d5e3abe504ecb0e9ce940d88591f35d2f9d866a4e476e3440500130968931c22dd2ecbe499133db4a00ac3e315a87df285b1c8b9a64b3369a62a0078e5b8bace02fd00384005b306821cbffa59262901b40ee97d75fb24772ad690f68cbe0f0b69e471fb1a9a016f41354fcfa5ed3d782260c5b242b37ee96aa9f6cc7f38986ada8513a10030d3475a2a84cfe16a6042c5f898d5cac33d89f438006fa738955156bb7ff99de19d2699bc489865d32d59221022028bd766b8ded9d1a60d4fbec5e3a06bb036794c296eef0d659f52e8c3eecb093295a6472b1b2a49f56b61602c39e9083fd5ab02c0deff58eb3377b2f4a9eb893654a72e2b72bb23bfa768e8e882c380a32aa2ce906b617403c7c8c35287d3581f6f68e81ed432116f4c63281b786a4ce567e012d87dfd6a85926f6f15e86a98e012a9d0b7d56b1d4fcae3a7b1905480140a100287496493611203c6ec1e2e74700256e86b9cf79ece0127318f5afa398e4d4495b0c90afd325233cf22382f1e7eb6673fe1a578a5bc468401c7aeab9313b0344ac890453dfdbfd2b14e76c2b6136d58d63e60bd78a1ad579fc350c893d79c1a0e293946021cc0a0d0ae7346dde2afb7c05dbc12cf8befcef9c3510a41b6a7d125cdafa5214a1d9983b9aa19c890c31366b8889e89da73bcb5f1a0d977107166c5c39b470321c88a0bebac488ef95e9ca1c3f3191d59fbb022670ad9df061f4ec887e3d46fab851a0c104fc6431da9f1c23bde06839b7738b09e6d30ad8e5b4bf54cce45bf9cdc0852846e42a4bb94d57b85706803712542d1fdd8881041128908a31829887de25d9f180b71a171fb9e982e08c32d4f6e5c68e01e34cd8e21b7057552efc3f333118ea080cad7e0879c2b31f1480fb23ba2e44f75e853bed2d3d0170d2acd237d3e92c613f8c723fd8ffa22fc78672b47fcb509c983b92b0f35d9d452cf8b74c402830c30eaaa89b51dd7b4b2c79c2f7ce5901d03579fb59113998c3e39aa5b2df33b9aca4d472f60110d0d1bb89e503a544e3b19152fe642eec7047e8a57b860cfbd0ed633b07cc261c95d5bf8a8e54eecfe408ef00a83cf874d0c706a9ea620992cdcb334f1a16b8ae8f8426fe363b2354db5b996f4d8d99fea5ab7fd734568c329ee6443afc5ada014b0ae86af1a5718b2e3f33291e7d1cfda557df8ac870abdb021b874f82cc67ba36f85c6b305ddbc06fb1992580d2b77729f4952fddcd7d73bc4c9707a0e2275da22f42da8037516d4902be45a6be20020e20f4b9d586daccf1b5aa2d4e9dbf1c5208b608b34ba5bb0416d2ed11fa5457bcde55f57663e280e41ae31c0a4f8e63cbd2c5602b6bf0edc04c386515703b0fd74be28d8b0bd0f67431201cf888142a392cb2c460b44b8610455cf645fc0cfe36be9ba7681edd9737d86a601331b20d869466134634c0745b9ede38d3473b52c19762a41f932ca2d1f6496112e2637fe716056193803fd88f7a8928fcca57b2e5f6ed7478fafe76e2bf4b171374ad2bd17c24d20a290620d2c73254ac08798275f8a2991af88bbc6cb2a8c87bff47fc67d75f0b560c798064302d4ba310d440775ce5e962c2478f19698a71b3bcfe2ecd99b894e539832362260ed46c089bcd2056093bd35c42e4c84c10ce04555778adbacdf5ba5f9d67d967c4d8a8e3b2cd31eb18e94cbe082e6da240b971711d3f336dacfa300ff6ce48a1d436a4e0d5547c9d323bbd625a085f9183838944e6b505eb847100e622d12e89f7895f1a090a5f152e3c3eaf64d3ada56300a10daca55aef708f07285f6222a6a1a42887fd17a205311994e78015751de112b337472c269b051bb4879a7cc74a755d23e7614a1529d969225ca2ff92901bc034d75907f28706f61431970d04cd3a9bd964d85c33ab6cb1b7e6c7f36ef6c9ae23ec415c1a8d9d3f74494c4e0a9ece70cc8b36f5d90a505013a6d6145c61148072b44b57c13311f37279ab00d92861fe3da4635744d3c88631a11fc595bb3fc319723bc7026f800d28d4b36adf73ef09858e60b33ec32da635b3cf9e0c6ff86ce0e8d605aa64c628c139fa6846e97fc16a47026cdab023f70a8cd08f6a35ae32f38376873f3d3c157e7fee99c62d136b9b8ae044025eab2edadd23b03a89617db3616402ae6d4b5c1d28cfe85cf44b1ab2de31240aeb7b2c68160b902d80aafb51b6af42e4d866f7c64f25418defc4420d3400954d511b4686457e09f6fa263d619cf500884c5ae167ae542260ba4dff3a11b810c56c0c5eff795675ad620a447e4f91bcaec90ed70d8f4f84c04fabd942d1ee5afd3d80cd073980bd2becc45e21a8faa847a6341d99fe13204ed2765b8a3d03a61574f530d069ea3607270c101799b701634d5ec098c052de838326c74af43602c02aa63353a18b0a9ebffa8dc48c94615400466f242ef11f62165f0b6f8ee7ec9e7434846017c60c2f17de42e0220a2d4f85458e340722f240cc82d53166c5000e384e5a6b25700b75a5ee5e56a30eb47f114f8efd373af78f2b2403f2acf8087b33477adb32b9062c38b2435fd84865300e5650fef1f06b404920c9bc91c434ecf0c408fb65272ddd323b91b9ceefa60c1461827e3ff87b1d0551dadb6a5255b7396ea2a5a458b6a50135962a4eb5136f5ce473fb4027e028062bcb7ce36e52a6cfca2e0abc20decb4f82f2fc9446f5136fa80cd6fdfca828234ef347500da04f6ff2b19f315e01e9e8bd55ee1f44d31a01a24da9b64ff8f05dd833f687a5238851a438cd34c1d34a330d0deb204236c6b0f708d8a1c47ff3270918bc8bde559e3ba26202445c02410f1cac67d0248cd2d370230c13292ba46d2f1f6856ccb24f40a08d7951e9b5e0a45dd6f0dff07bce57d6070e6d37ce19b1e452b3a2661afbfe2fcd8140b72b669511c69abf2db3a9c8cf2d22cd0657e7618391323bc0f0028743dba7f67b38b6aca1c610c7d3fa1f3c7b02be48b65fb836ddf99f00657b69b1bde18122f073fe83d19bd4f9c5dd8b282507094270019145934254dc4e05f7c886463a231a075c4158b9fe248c5d4ac755800e5771f29a8227c471eeb1c2b94d690726e1d86dd9d3c2d4503ada23beb5f80eeb9411c953ad8c400d510e7beeace974698a4680a12b64d193ab0a689f4bca39fd4f8ca196a7289ea09ef05a090b5afcda1fa41b2a9ae1a5730d8e00563429eaed2fc94d8ae03f414ae52a229889457097f35659bd16c8c6403153680418205c68b688e6540afd1673eab01de47980b3bf879d6469142a30501a5a2761af19009964d9e46e3522d0447f22e4bcf9b875137d46883ac7b4ea1034146be2f4309be31db2926ec008f00c148f5466c230c692b10c8f84270ce1d48ffdb982b92ad7f47a9c261282e079bb665c1a5352715318cd3eae27e77b1cfe7e50f25145917e0c337901c40809b27a61adbc60bb4781d5417affdbd524458f1ae624360930e2d150b5f634b5b9e70aa7eeea84fb608c023cb6f7e584637e013118a324a11e060df4115763f6d1c49e123ead84209fa5144cbbac9dba17043fb45b4d8529a23ec6e5e6c8e3ed65557ae8779a623a449fefc3f5552441283879d88a3799814ba2a071d485293fd65411d74ef067874e81de6ea75c1f5dcdf1a8a25453dac63a011e77dc1fdc4c8aed5f0b33a5a51b25b65330d6fd9db6bb4a0520b40d862987e77fb5354b7fbe21f42d705431ebcf995ce318ed4452cc339a3bba5a12224f988b180dc0be7a43b148a11a71094e2de09797b693122cf0d1c83ddb953bca0a9a0c75b975268c4c6ff949a86aebb525e2e3adc0a03456ad79d9fe0d9be53d1b8be9ff69b2703b1e538e08dccdd96171950180cfb8a21b75419583e3c804733c4ecbbcb237c87db542f93559df1a7e5bb8a842193948887db25a846590f4659854b464f641712e26e214fd0e313fb813610376fc885e3d7c0f86bebe1bc80f101b9f2189496df7eab553db576a1bcf865d4890c6294e1bccbc7602652b25b9aa8da9ec398b9203601c7e18be86586042792d919ae3a7744231b6efedc23e396a27dcb48cffd4b877120967f4ed82e30a5a9dea5b545bd7d03bed8ff306ee7b9daccfbd04862275504d18cef5768f1829c679331282399e4326e93449ee6835678dd0349ad2491c7667136d85da5df68f381e4b0c2ac5366cc549ed461c68c453a85e680c6ede34ff85a3a1a9bc49d3c63f365b6908dc25dfba63dad591a7c013536d30e12e8b106d93119e8b3a9b29b56b963eec533a2a859de26c438608eb8c58d00f509a6b3f2aef1f18fdf7d4298ab3682837179e1e6d58a0262977264faf249beaff0ec1ea6d0de6f1cceee46c556ef367b370abb58a86697be1ae883c6d7512900b749401479150bef2123ed1602bc53176b32843aad9d76ccbd304580541318e33b20d615eb6234358e9f63c5e195c3d5decc1c4378d51a470dd6e458b4b9c8e9a458202c628015342205c78c55b7474f9eda5a3d5c7a0bf276c7a15937f515932a9b6fa0473de2b1a164b21ddc8d3a456c494c6ec1674151449eba583a5529ca81a90cc8d1660584e6680bb3b2c1226c4233510c790cc0127d40dd2c20f6360aa03ff52552694b3417e2d92a277a0e2281d74e945deab890c07fd98f3b7ce24bcc996a6ac0d9e8febe4d3879f4bf53fb1130b9f024400384a39725622acfe84f7b49c4580d8af75ff48fa4dddbc060e3bfe6691c311c1513cf9738153fdf1a3d977252c0806547130f96e79ebe8cde90943058b78bf3cf18927d33f8f992508e78e81d3a632c08e86899a152ae47d8d1b7a3a5452b2aa41fb7eeff1b152bf5a19b1f209983c5afbe398eff60f3a7c9670bc14624309a4f905703120fc4c53d49741127764bcd901d5ed57c86e676e474a88b8898408d9f580dd1049a7fb4fca257ebd5f8862d080754ab0906930e11723636f32e00718f65ce14fba49dec0cbf65c397d857bb34ead442c1b6e2e58b9a6136c6bccc44358843b5f539fca17faced355e67a367db4962631abec902c220788e3fc0880eb25825c79f2fd807f8474e536687519d9104d7ed74e387e35805bcead4275d888e1fe19f737bd024d8dcfec888faed762cfd19083d053dfc75b3164a9a7d344c4de586ebf4a2b2bac2a42a9ebe8a5aa441c6e7eeeae3bb3de1ae81a271e79dc36440a1fe5f1fcc2f284107959d0a058e68a28c68f5e51b14543288bb4154aa6019498d101acdae40a0535ce85dfe0ef2607f6524423673135cd00b34582ea8b1b0ea81c56f3bfb71f6c375c6d5bfcae1fff7ce989efa375b91d0cd80a75d01b0648ef5935d770ba0f6cf18b7922261e67c814df6a56015b7cc4acf52618f0debe1860a5c91c0d56310093f51334d4084c71115865e6fcd4fa6cf39840369123033ee7e53390478ba324f06f9dcb43d540d6c45b0a7981d84a418a2705dfe7523d9b4f93c72a12d0c30c02748962d381c7d07c8920e58f1774c53cdcccad61b663305ede2292e298197107243bc2c992ae656dd73d89c4457a5c644bc311f0fc58417cd84e2e60c98512d716805ad800424cc35bd000e6978b1ed018141b7e24d423ee24bba9aa9e0516c8722a0e22f111bed1d1bf5d37d16fe9bdb4c9ae3b7f2a8029a600bbc0e043fcda811e2d0454d28fdb4c84cb3911c6f60925a1a16296896a1f10818ac07d4341ade5718dd43838e275e92c44c584f17a4a934389eb348139e1dab026aa16f1b339ac1de50561bde2bc66972e2ace3e568d3f90ad2f65a74217750aa93ddf6b891b1ee7fd71a9211a2c2900dad7fda4712a935809baa7058455fc8177fab5d169c91e02618ce323cad815e450e122ab1de5e62c7872cf4d31c0b810a632108a14614049d06ff89c6bf1bcff6ffb6d980c05d53a16eb1d6e5d3afe8e82d395396a3c2a1cf27afb1fdf2deab93d3ac18ca6267ee204bc395911cd015cf4ca9bbbbceee04995b02177f4373838e9e0f3f497103a9d0cf5a5f9c9dd7e6661584ed8e9fed0c7bf560d736bf77dced50046d8f0a0d35e1d8dba91b350fbbf8d19ab824fe3f74cceea123d4bb7d077d0140192ff47ae6ed46484fb3e9577c681bf7320f6aae294ea8a5ecc45fd63c0bc940f00e37f5d2a2d8779e902c6791ba0a64ab17521f27f18fa3770bb93ce2aa494de471439b1b6b708cc952e469b06dea064a97de074956bfa172b5d58f1eb63c1477adea3cd4ef0a690939db5c2d5e0fd89339f8d06e904c6fe7a7e7cb35f37d1266584a18b221e8242a531d0aeea53c624690fd0da49828a016ab08883e7bd36b45874b6fde211423453aaedeaed60d5c3da49014e63d8332827199632b80caddf22ea9a082b1455218fe9dc1dedfd85d8e5d16de287aac9891e3bff78164d325e8aebcb4abdd10199d3b5ea0770982663278fce9de8b33f0fede9344779ff9ea5e3284242b77b1078abf77d8276dd6108ee887e521e152aebe936554588fe18e7b8bf24fab8495ac8a9f9d756a16dd27f7c30ef5f1bc6353aa1159819b9c80fa2f74d97590032ec70f8558696a06ed269562d54b220de86ac74c371c45cf991c5f1bf4b2cf5d3f7a10b1d8087c373da087edd2b4ff470a9000a04c9d5845fb598ecc7c7225e13cef031326bc2b00f488cd07677a48d31e5d7a23c2892d0f3f97c264cb1b839f712ade772292b25609bd5aa9ceb069265f31024c2707c16a503eed498ef77958686a10f4303372df9ddf6b6ce11d623c868ed744c52aeb70f74cd94a369e782826bf3660b3915ed2e7fa857f88594ac32f8e065007cc10d8897167a8a48baefe22dbd4980cfbe537165d20c2a9f73ae00b6b681e85354db51665933b45a0541b370dd8abf05f55b8113b53c5b3488c74e968f051cdeea551d145c4b58165a6fbb70ccaa1dad10f49e1354e7063055b30af650449527385bd665373082c26a9508c606f0ccbc8c7ca58af886815cf45546a1941f42131dc5b1af416a1670d517a79eb7e0d5c69dad960b11dab8e192b3b8bd17be988b4a680886a885c681157f5a509904feb95d6df9b053e40c879eb155f914ea8786a030bf613c3412e0d2b00e1e5f0ac68c948289c18a1181f93f8744237b5112a394b0ee8c536072880ba43808a87232b1f872af3016c6f3e5805336423bb9dc37cfdd00fb2a2e32895a00fa34d19846e57629e93d0c7622a029075be95d6839e1243cb9fcb40eb054a59d052ef092eaf40791638e24a4fd032612f921591f0dd22b8c9146a7185010ced658307006e0da5563980572dc7ab9b1ab5dc41d7bf47863a28efaea0122a34bf74a41ca068b4cb01d31635a03b061a12a6ad68c9e6758bd87bbfc00954308f287ae0f2eb251ed92dbda4ec493c5f50a5d1ab8fcad98542d0f7e9f50a8dae3b4d2d900af4405cd93ae3ba83329a4e4ae5f6bfbd8b5ec54bcccd2c7c2bf62511fc3c6aed7489b5d6d8d843406ce133c5c88cad20a3c65aeb450f6562410031f1af57db08504d81953649cc90ae859401d0a0b44443c79c2a3236ae01648ead052323afbf39102efbf0056d42a01c3054795e13ec4cb6ddaf09b19392353251b50cbc6f9fca6696541ba1fcec9ea8c68a8221328e8f2d8b282b7fbcbdc50a8cbfaf517e4785921d17005eb2b84e4c887734133894af3266773930bc7f9154f3b1e6967f273bd7511edb82e572c06834d9967b71808b0cd88657c57c392a3b6e03be4e3a37d65cd8591fac40d0a31f6aeb4079f643744f6d692678d6a4d64bb62292e284490fac07c3fa919806961b8a34f5cae03cc6e0a6e836d65176c3eba1f86f1c94f4eb5fc1e17c39302f8cf7e07f40a47947c03692e621617d7a93b61031f44234a020d378707b94b2cebec36dee621ab71b0bb74500c65ea63cb2c6f106995204d0b552ff8bcea1fbe8ffe1464b39822ebcdd74623e748e098f94069dfe67cd987ab8ed805d5cbd0cc9ca43596ccdefb8e4e970db4f434bc8a6e0653d6303cdc26c808748b4199101044b7de846c447648b8461bd6c1e154a7d139b5bff3b255190d8f4e2befb72cb39230e3bf29262a6c14ac1569a76ccdef0dcedef3c27a93ffba0132dd40afde38078494ba885b8db468d57125956115d597ec1da6005511a2fd9a368aa1046f21df190e5ee13699bb44e5418fc50c0d3083feae7b961676d73aa01e5a1509d40013106a8402b5920a00ea8e6ba23890fafea8d988c2c6b1a82003f926f674f75060091b37400dd24f051c43c59648f401a798d6608cf255da7874f6c6bd5630f80f04421752f2d450993e4b91b0cf94aead6234ad0dbd6d7894682913da9b5326721ec941c7f7a5bde1e5b9eea0b14ce2ec7c812a4b54588a13480b86fc19d540b1e020c2bdbe9421fcefda92c616e2e39fb2d2e3cd32f5f7da248e078e7dd198d549365585ab69f547877c4afd3c0a658bc158428cc73b412677033244600033b566041c9c87ffabc75934de84e03e8a1d77e01e937c29be4bfe4dde19e91ba418d40314a78bb2b02352a2727c6b7c103fddf65e6ef34e5dfd1ba086751cf107c99f445703e8ea253e7f33c44ad63827a85c13222b268cd2b80607d11ba5372cd99f58ebec862abde6b6c67747cc7c278a69c098b08d77e26fcd0992c07dd684031d0dcf45358f5b6599f86a6bd2d3efd59cc20831239467b1bebc8ff6337e27a2b64f70827bfe41e57c1732dca8601cac0ba609d8faede5ff6de5f45d459261084137b6c0a28f3210e6742fc7d2966af1a0d770d4d5b96b0f68ae5839770039873d0e1799780d82d29ab82fbfa3c34d0dfd3c5203960bf919256d65c54317e880d204b4085d04a14cac71e2a8c3f357a56d3f4c542985101f84134abfaf0a55ff83aff3bf5921afca1c4e9f8a93d9509d0a3da1fa1a03fd666036ac21efe825684667f6998a2ff606c322711fba13cb94259c1fb364dab5e9cd6c3221ccced68935f44749f7c9508e0d200478691d52531c3aaf1e793506715a875caa006407e3e5f7b0e2ae3830a04edae021ac8ca15bfd02f869c945ee04ea66bf5402953ceebd6d7b0243473487aa2890217fc8745fd24f3cfb0c292ec575b120748479b73c6bd410c7b734533432611fb186de95c772e18b3d0a5dcc75d8cbd991be10e8af633e9b6b7cff73902ca3e981f584f57ab58e0a7ae5df544c7999c61e665d601b87469518d24881e5f9b0ff237a6f536c2543004c49ca8ac8554730a2d679d2479f5cdce0f23a321623179ff0810d42278f935b2f7367423f07ffe18dd9477cac2d923d8d86ac1c5149b703c4da92a19b5acd8368d6e2957f5d47e07fd53fdc109eaea1ae2f59b9e47a39ddb187049adc6dc0888c65653db48ea7351ca6d08d92f2e3438816cfd711254277540c5b95dc763c25083a9daaa84bb989c3e1686deafacac05c90d811cb223edefb993d33b5e0ae5ce1c7b27570a7ef5f45fd65b80808cfa40f8f77f6b1512bcbf1344e7534c0cd84325e234d52ca9c523071e15440bdcda62b5f5da2044122df6c404f923a7cb7cadfc1549d6ddc0f75465f5816f4cf6651515ec833c65045921b42074412101997476ba69171a7a34c6241ca5d8a485ced9b6d55c0883112e1890598e5e8e03fa7bb5b8f4405b8d016ca227ba2da507b5ee14ff3885249d1c8e834133087602b86f0eb889b27dfdc400a9d8264ee7064b08379017b9576fe70a47ce7bae61d62f5c64bb1a6ef8f5a7c1ed0ea695e951237fcafe75c8521600d73d31637f0c8a930c9922ff0ce05e9d6b07078f48c8f3c855564572b0b42b467dae31263b5dd5e9bf3cd481b9f6e54a692ed4051440f1f3a8dc84a53e7978a2c0e09679bc62500a56f39b9e4fe98c9f21a225af6b1d32d12c97b6606a1c98bb5096499604ca60ff8d32f4d471ead35f2c3bc402b6a8fb8e35c2499ac086f48007d2b9b40b11b3611e0e82ce1b88eea3c7bb2232cb54251bf36e54ef5393abd4e101deafaf578e1ed971eaa126cd865dd0d368666c66d2dc1d550d95d280b203d27ccb3ced5489d3de36864d6314ee6e9ea06a8a585ade24f6d12cd1bbb2c359051e9cfaa9a06e6a6328484299647ddc1ba27c7fc4dce0739bbd217f043a725736641f49d25a1732be45d56feb3358792f012a4d17afe28ab6df2369bbf124fa5150f3d0907953b9854c633c067acf1034af73bceb9f3c3e014174e28ecf106cc3164d4a256f1eff0ee24a42cb5202d84d725a79f2259e152250498ce0ec5f348625ba2d7053f10eb95f2a4f516ff9a36d90be73f907cebf554d8e09ba1a35e7610fb6949e8cb3fd94156718cbe9fa6376183f1a478a78237814a2d8c1cf14024565b8efbe4fc632765a9de1fc792f3f223ae46005c731e098893bcc90897fa010a902d411fbf252f9ead93903964de82569f5764a6953b95cf2e0c1ac306e94ea26bcd2e4701b05a68dd6018952b71294ff8cf9e964aad1feacca58bcb343f20aa9837055d58bb8bbebf3f375bf0db57f53b0ea4e4b4804777ccfa4c00bc601a54b3e474c6d036c91274955e6db407ce8addd01a30283c7d2e04502b5dfee0daf9146270985bca3e7534606de2855b93319a4c26003a1fb2abaa1a3394a37033d52d815618831474f4260c62ce6930b699e8d0b76968093a4943810418cd962516ccef3c4cb3d9cb5d7752ccacdf1a42a6dc33a64a5d6b86534e6be627e93f7a3a689713913bea03acdef32e1d86b0c136df973a5e08ebb181817b64958c942e9e43eb17dd305944bb22d47d547b56f475b6ae5dde310b75ce19c4c8b9946dca5182ba9e3ddf4c4b894be4228a4a9db68726eee9d1b09e4fb4db57089768235f831af6ad3fd140d688a0338ff9644f5df29f7660238d828400d9cf7bafbf56afdab8a103d2d9122d22f417838d12dc80501c6ce5bd15b4ae3e5f7ddf0edbd752e95fda6bc70e831348df9644f9a2cc3575fb68e81180d6424c93ae8aeb5549b9e6ec9fa9c07fb8789c70b49be157fa8a0242d7f5ba1c37ff9b6bb46f1eb6f31771dd1e37813f03b75d245b55c9456ecbc18e4e4212187ffe692ca23248bf4616f5f2e5af49a7f601cbd8e12626232fa6858661e507085eb817d159d26a1e8e1a05d68e2873501ba081c7d666956d7debf6952ccd9525f5d4dac4d163f0297b346c311c4e63f9ba88dd4d232ba5c888b8c4e6513557b7c068b43697f3310f2509b9f85f70c3d7ab5889f9b5358c1083f9d604742435d6ceec2b927701cfa8103bf7975e813e32f8480e18e732f6eba260642c02a1e9ef206b77d8455582f7b8235001527e9fbf0d65f27a60339bf01bdb3fe9e165586106af9a289e84681c9b103e88003f0e682a5769d590401e7b014408dea9c4259029d84183e85d485f3a4dacf939e0e9e7f4b21f5c19175fe0fec846b4961a75f781a83611bfe5c051212bae167ecc81e939ca2946dc76346415be0b56aaaac6348f0e636b3445c031e6e4dd04c09c7881691d3bd53dc0eb02441f04af9f0a1570df5a1da81db31df9cc91274c055f192d6e2a789d52ed32a73143bb84a8da4c87e567cecf5a9cf921457526cae48dc28b96fc88790b77ddb85b5044d21a6df8b3ae33529245c33a2b8cfc508241fb448ea2f8c5bdb59c45067c42873559990d4ebfedf13f639f3db38bf37f853410862339c3e4b38f5e5458020e5598637e55b2e78a01dc97d26d9b70d0e140dfd4598a7ddb5dcda1325c674f228621b6e2ca9f8602f0720038f829dfea6e237d0cd8f23e0bf4b43b8109899887262cb4d2b6eeaf8982ca1558da2801d7fc402fde3581b9e593300fe64b8fae3472741ed2ecb405a059590ec6961fbfe6a48ad547ce8da6b8955d29999b49878918076291b49a1fb26f1523ddf61aa6d411a956c07bf168c09f23f1b38a737485ca8f120dbc3fb7f4162cb6795d0d9d82bf7f271ccfcfb3239cbb882513432c3e4eb3354e1685a030e7023e62a936afa704e1fe553a4b637a2c064e3a1204235f821bc6178cd1c6aa4ffe733cb59e69f737e4708eb983ed81c7a9cc150767a2605c92fedbce7661b55c55df7d5fd9e7d4b206922916b5456d61bbf1d93ae1179d485c1d6467e2ec20ed141e631a0fe8038702d08865814838314ca24adc8198fc6892a45b8a54021865e9cc0b718a51188b58332c76654f98add7358ca432678d8ad42b48df0c62997090915f1c6474e5e02c90828068fa43cce96cb4fac08a81ee12ca9593f1aac27c75279fc68c14c81f5683911ee33c7c7d48fec6b49a34a2b4098135954afa27cbf28d2f9dccf837c8314fdedb1d823763288752b5c59fe1669fdd6782b9eb1038541dd17932c1519c91fa4be9c94a2135a9c40234ca5fe1875e4707d814c6f3b0e0cb3c8539c1adbe390785aec115959275b8e5f2ef18007a844cb1feb075922427e95648475dc22f2a2a1bff8cb79096cfb5ae81602ebf8a1fe4a3709e284050a727db602eb875adbc41d6be3a9ea0791e29fa460bc7a96761b9030b6a95bb8af998e4859d6895b7e246ff440cf1b86ec9cd79267a5471f88231bf1f10a8c4e9050b402cc67e2bd612800d5a18b01614571a732b11094c14f8babfbfbc92ca4e9af3cc1311166daeb3064018e60029991dc6fadd7acc0f25ac5e5c4d710b03ce6066f8857afa21255c8924613baeab123c12a4348c968bfcbfae7391b145f57f2a519cfce05379a4e025484514336d359b721423ff6317347db9a30940490da816c1412b2be8151e324922518329954a9956503c2541c221d649a368ba11e1342ad54abd966a2425a7b0bf65427858e816b293b795e08ed92fae84067d09e115007d6ab7a20d5e33edeeb455f60df9ca8df1c5478030eec31e8448567fd9c440102bff19f9ffe8e73c576e22947fc68ad95748ffc8668b10169f091d24dd3d24b24f1bda08ffcdb81519ee7fdadb666e08fb97d96d9bb1057471a75904ab21cc4daa17ffce191c3a8e667f7c6415d409f75567bdd93f077db8c55e8f37cef1b3df95746a0b1fed3daf547758b6e2879eac0db094f8a9479de4e5ca768e0905e1710b84d348054ef9efe45187a862d84f68cdb1d1eb77c7331bbbdbd0c20b0e4f9d65341b9c9c36db28f6f823e0f7addf07087fc8657551b74c2073bc5e34c826e06731c98c901792ca280fbe4380463c7a3c73ee4af03daafa9a022d7c35526dba3615016b85e636e9d16cb929b58e574d74d016c172f089a3e7cdc6dd366d45c747549b5fa6c7bd92bb56f0890479c77f696dc2eb8e945938b3de5e9fbe76c6314e35b27ae91d689ad6058654bef204930bcdbae60c3f0d65d977d17dea8763b37e25ca9c7560cf47c34aedb6de24ed4ea56cb29ea62acede6b00e83d4f74c65cd29474f7ed30180993ccfca15aefdc66b43eaab114c5a1f7725a0e3eff778e556f36ff7cd4af2a0edfba1fb7db6b9031879daa3f0fbf01ea75c3bd2dffa35c262526beb95613cbc0a3489ca60bc79f3461341b7633978023b6f7b177e11dde1ecb5b62c0f626d00aa02bf76eca5685f337878193f0ff89e35c490189b9c677a311510090dcdf4ab78b2e9a770f17cf4dccbc4a41d795b1b146c66f6610e2437fb5cc642320020fc2d7ed7231b18007df730f70534687c0c804b5d75f87d82c1f00b8b26d7544376e2008820ff23466dbfa1fbef31e2efa8ed079d1caabf89fadc677954e3632f3505e6523b32c4b3b610d3cc5c8190550e43e302e4ad556736dd97cf7a55d015fe2822f2a90e57524da6d75925e75f0e654c54304862b268322cec588426bf6801ab878907043790d0a5435c620e255860c3a8b88130f87c5a3b5724eb83d50af902350466da5fac8f1a5e334d44f12481423bd281b36055f588786bc2af8bfdbf1293e84d16f1cddec897e7847c1d65bdf537b6c8516fcfe876ad1eea534e5c897e2a744054f4f975b63077efc9ac52fbf9a4c432f501a444c15e70b3d60d33308dc5e1407f3809138042175ea0dec764af7bc02899874b0dbc41aae268d769a46cf356098ca0c8a562421bd74a24bfd32fa890a068c58a8144572f5ade85290311ec96d7a4da1a088039102cfa8eab5ab603288461c1050176b1bf46f62f5148ab6f305ba8ed9f6775208a717d7702f91f7421c0f0ec08f9626891882f45b78e95e4356720d9aa5018e324a0148a4d09a28c033514af8941da9905e6d0ce07bca2839593a2069de70f1a1f0324d3e75653f3ae426801a5a003a7e3384b6ac6018028a1f5a3e6b78ebcbb1c0c82542b87b25d3bb61d84e6522e5779cc8c5b9dbbf5201507c5447c7dc1023c0c1aa0a43acc30ded5382f2e0d6366bdbe666b22990926c7c2385e85c0c76c65d0c81c73eb58fa51743eee878972f01a79b688dcbc2bb7a8953f3d37d35f41d76ff0cd310e055b9adf2e13f3d9f1dc2dc5c50f44299aca3d4a55385476b449e260902aea2486da9ea9be33e9296873e86b80de512d92baa31d31c852059a24632c6ab9323c4dde9a98a950e533ada75259a693ba76f8b5674d7fe9c036cc8a011f4ba958b453ba3060c374721a1c0c43791346005c21c5a1558792eae23cb49ddf40da5dcd7bcdfa641099ddabddd6da7e8eda5f778805258fd291eb55ef1bd1f890d1026e4160e1462e7b24b9e22a57527b6b0d677095348c9117592cb0fa76a8cc6b9a5835937755e36f3a5e49b728f65890aa1c02bc1c2255890195cb58022ed251f16fe05b26647e0faba85d2402969f66351ead90d00e7ca3cbde6ce843dc1c5256dd1287c505128ed6f76401ce47156317ebde108476e3887e5dab835997fe547e251825625188d1605549ed81311610aef2fbef5b40061b031508fb7da702fdfaff3263e5dfb2e98df7b0b5f02d98d7572134800573a0cfcea0f9d009242abd99f077fc1aac60801f60dfe59c564c8bb214b89f2abe0a196bb63c1461c15c1608a9cd8250997537e1b35f5e3b899ac5bd2b360195f57d136571a89cc2cc64f61c7434fc780cdeb2dc72f94857b0892300e2a42bd67f4119f5c8c5b8f2d5e8fcac5b64015b3ea71d32f20c28d824541410077d8585c43a414bffeadceb19c749c0f8bcfbe2ad9fe48fb634fe7ac3c021a32d3d6d664421863db0103a36a02dbeb98bf7f6f940bb9429ff45acecb853d4cfb9a3992052e72f81fa6fbfcf56d14ca1df7c4ce9ba6e4207fba3bf58f261623c109ed949146c1cfad4418d1ea2420a624ee59301c75b4a6bca78dddf3a65480e7e7a396305da80a7a615c0551c499cfebb07b81385a48f0b6599f801772f03154577e4c3e76b755bd75fd65abc83392d275b7c6c0e9aee2ddfd1326123d9c20116f359cca47e87a744aff545f00bed676b688e4f9d5f5f9e5e3b0b56dd2d68c324536104271d7626f3b798a450c9d24f5fbf67ca16ebe966199ee5db3f2a95c1d2d9542890b99d42be21097f205a1514dd4cd0a04e3e421367c40075fe2566d28c977da0b83d2bb94f9cd7ac3a8b416fc0b0a807ff17776a389d12ab3f3edf3e0600779712dabf5d028542f3d66445279c03e3295114446acd1188a89688501393155f9e6219f0af35cf30a713ab52a6cd1b425030a41143dd8378e318045bb58cd5348cc0014a930000dcc38c7e64d34f52d3945cb72abb68114be9d3c7f2f2e233b7eb7f61fea4fd13c86192ba242c58e4128b8cd15b0975fc11b63f483a6af3d7685d9120d835631784ba4c3f625936339dc45ee3358e97c6c3c4d0a389d44313fa18f88eef7cf9d218ec944b9d856c34bc68d5d3dc2b54fe59c7ff7bcb440fb91f70276ae38c26703cb3ddad5dd53ec7a0a6fbeeac3728d44368a6dae0cd753e38870d3db137a4967c4a36e3c795ba57bed15e7dae40c5273af9d0fabb4971a76b62f349fcb23f74c38431b6bce511087dae87b0dd11da8156f525d3abce9e507982f6c217daf7da0ef8965881ab410f95e2e549ff873cdfba77a090db6cd267182c32e634266bfef02c35c46b6f58858d0c76ddc5521b12390d55c2367006445488a151793f02fd7205a3cc21b69ef071c92e72bf7083ad9a48edd05a281e4a8c658d066bc0e7d5b053c31db99a58ccb700b66a14a650a986a321106ec1bab4eaa2e35db10618fb385d6b3aa24f60ae21dfc96a2a13c4ae9063accce95e4b47e47f040923de0504b06af9b9050eda3293273a9b88428052cd26cdb1c9a2b9202238bd9547c76a53fdb66c1b3948568f14a2b9c4b928f46c66ea0d3d8c1c2b6f028b90fc0293489e52181bc15123f5bdf8161c40b022b2423b53b874f8112c9d4003ea4c77bb643a2c9b4d818106e2f07715611109178d74fd1719aef39a23953b78b497b1a3c4658add6b95a93b600d38959f81a3ce9416a1b14a97bf1d19cdbc04db0e5141debead6419a8eb019c9145c77c842a3ef8cde5c532e0c495a277e85e2506edc684da23dc2ad2eb4a366057963066b2a0bd9a1a0e1b8793d7cc740a090662fb39e586b06fb768eaa334f1cbe932c6f822b741d8edd29abe47d8837642d8ef93a78a0cac6891cf4dc8ad9b52fda5b669c95df6b9b9313773176a8b16147e30527dcc0ee13e9435abb6a7ecbb2aabc71c26e66ee59037f3162a7ea16791e04ccf773eeefdfc389af59313d14b2cf49ee771ef6507ebfd7c9cef4d4e339b332994ac7d1f6d352d4cdf812b025f2f856b9b0060c6cb41c5c3f0b87c29fdcfd0e76464eb0607a892fd4d5bb86eef14baab47ef568bc300410ccd288ff172e6129942b9923dfd121249fc69d91e593b6816b891e0c7ff7aee6601d824c69d9f202d90e8e3eaa814cf6501b05dd8bf0497a7dc9510ffce0d5bc46a511b384fa1dc8289cd600082f2104e3d0e1f84c10625bc74c33e2f2a82aac1caf905bd82ee59696be897c9a63234b40c313cc2b988bcb78de36f010a0e96936598f9c58e7efe6d3f0558b8c0acf7de1a7e78447c14967d00d30bf64371be404e5ff58259afb79cc3284655a763e878936a2687df3dec4cdcc9e30efc2db5e9f96ba3b74dbf5bc7b91efbfeb0c21e3c3fd633420fec1b9f6274bef5749e6cf7d4ccea042f4f078a94e5e8db394c96ca313bfc7f1e505178e1dbcd8e51ec23faf6793b1830b355f7f3ff181e284f240bfa0e3a7bdb7bcbef12cd7153ab8166a198a7a0ce17005fa61805c531d5e7c1866dc68a0681275cf8c08be173c50167f8a3b80c027f5b8d4d3abcc1dd2972bbf9cc7b613cd935f4f1c30c45926e1fe0540eafa6ca28ca201838e58a221a0a074f36cf417a62f7491bd7ca49c4895ad0b538732b57170bd8faa00505c05ce615597801a2bc74e66633549678a7126610921cb3c5a4823ba3ee7e3b180d6a58a7812567fdf248f084a3fc342d43146c978fb8efc38960a7889b3711572474d5db5ff1ec4b9e0aad083aa2025d787094de973cd5207bc36f5f1c7550074d36e49d48e9aa1aa8bf6d43c8a238ba08855a61ed09699809eb2e28a4379c62a43d3e041be4e4f1740e4dc00c554a6b0dd82ee26505b3818406d9ab55f9eb482e43c7258871213185215aef6a7c2cead5f2c8a060521a344690c46a08ec5a529c5b07473f262c32fba9478f636982db75639d764d43654b47b9dc2de7814ccc711fdc2652cef018d160f3c09e27534c009137b01c068317347467ceac6e5c3b0b57acdb15649a358626425cea6eb7b0b05b37156acaa79c90794fc6fe86b40c961e911216a02bd2f593ed633487a839e1def2b10cf39a35d224aa4a5538224701dc968a88b85fb22c1e18c805631aef090e148ebee13ce8c1995dcd8773e9f371703d2538c1da05bcb19a861a95f5c70bb8768fc713bab630660f5601ca7102714a8e1f26cf8b734ab53b201a891127268d3895835c7aa2605dbf389385f0808188a918db6d16a6717a7ae70db9b1b85c8364f508c5b6315506a1239f45378bbcb8abf75a3dc449da5ec485d39cbc7a66ec2b50cbf2645c9f132dc8dfd2303001f118252899aee39ec46bc578f38696fc53b3c607aa2c23cd0abfb806cd70031a5292105bffd53d6fb8a6524ee89fae3cc2e13111cdea86975d8b5792909445d86f880c1367b15f1ac666036c2eccfcc99567d8eff5e2104c1e828a695ab55a5d29f6fffacc0d9ee04814831952d9eff5279d4e35272a4c10d571dee79f94a3254bcb2f75439898ed870b4adaae98f0eeda50b8072884600cb08b9f24c5aeacc16ff36c887315c8f2f6b5528def1bf7d78fbfa76cd08545bcb3939a6452f471d9b306b69d6ecbffa23c688b10bf820ff4f316e8733e0c69938ef4faacd115934f8c53848016a515e4ea0c00baaa7beb801ef54c4e62bedf3261044f7828e9869dda208bacdbccd3241c238d081d2384502afdc9057ce91dcfb3788281a583064b21e00e57a0464139d0b815cb5e38a1f55bad97484e45c50f5bf2e1492c1ed8c1346c27c12df9a9255163a2a742bc3a867f9a9ed3f6576062ead37035e53f77a7b1c92f1b7744c55458693fb6e3f1aabb3777842dae7849380d5618c57653a77a9fd192b695e23ca2182bf86585bef840556ab2e701676b9e212cebec0de2845f66dd42052f3ced3b23ede8a21bbcaebbe4c7a79c1a2ec7f03e8ba6fbd16eaf4850736a7e39e2a93a000202090df44cd47d541da6f85caeec4c8e648d0a46be6ca25a63377e3b1fa8867f95216914b53f5994fd965f405f3fea39835302bc6dad11f86f09d1adc8b9f5430a699fb20e32e8641d81ddaeee7610f03163639c7c7b665574c567948d565539150626f9e945adbad77e57f117d95c9736b49db005e029b0d141742d52878af51c74605685d0144b8f77b13d5e55301763016dbd965dee2bc3dc749870420b9159a2b488e93f0d6d99f79be02ecaaa4e1f92e2b932dc00428112ca2d2d41200fce0108ed339cfbaeeaf85cfcd4d62c7d90a03f7be859549a4efaf015f54114e1482cd8267f94ea6fd0080bb41702ea7ed15260409099750395728621ac9e8e130f628e127dd81178943e02bdb581358c3b1c0d77325657cb51083138d93c006944f8ff1f896c7a1f8c67d05d61df416bdfb0ec7514b4c6e1a7e407560b8f0cfb28804d717122a81a690ba1647bf2774a29a5140505f904000537a5cfa53188e1675a7ae3c6521938949403edefc6649ff274ad05c4951101fc42579669ad203796620afa4dabbf93f2864879c194f74373a82ec772ac5a2c2c0e6bb12c33ce1d73379e25c9c6f031d9eef8d8a7c072bcf0b14fc176541df8d9bb54ddd332ec5dd4b2a646a562454d0d0b16a64d7b8c6f66315cfe096bb13da8672921d916b5b3972635d4b294ceb4716baa1a264ed7543ca9610776e06a984aa5523c52ba1a16349aee258d66da7a504fdbb312a6d20973ba66e24cf4976929a4dc8b5c5a4a7863435deb432dd3e91ac96a99aac6ad7523539769aa5c366bb834158e1bcb29b01d14ada27cd5f0e71d72759e29dd8a9ae6d45487bb31d9a3a8ad261502123853c214868f9469a90b37d687bad6727265294f2f2295f1f3f0673f426d015b6c8b6475adf5c39519fd7ef6ad205786a3e5fbaa5ca6b580b448a3e0d902826dfa3b288be2406fdc99ec47158d4145752d15e5b1a8680f5db52c7b1a0ccdd5385d33b277dd68c0a067d078a2672cd949794968fcdcb293f27ef6292fd38032ad97691c55d39a691b6129cf26b5316d29508ea53f292ffdd9a7bd7df6e98fb8fa234cc5c46533a7557285ba738c2c69fd7683a155f17715df18ecd1ddc3e361ac7852ed5981dd2cf3fec54ffb3c71518565c2983b18d366ee78316d29cfdca5bc94178b994081e2848c8c6953e5c8b1ec634c9bb9cbe1dc4173ba9f3dbacbb41d73f7732e065487e6c8b41d06685ef6e6eede5caeaa2e258af42aecc503996b1da1424a964008340d8450da7beb168ab000040e86861d88b9718efffa8690d6b394818ed3fc0dcf113d1019e2f177fcb9347483463244830e431f102ae20598a15345c8e4ec463710293955565d43071d08d9d04368044227f9af4f08045c68850fa4ba054cbe9f10444ed4bfbe9f0dce1874609583fc7e32fc80f87e407bef9d7138fb6e881f0e9f5f0b793d574b929ce691ee21ca3b38fbbf3e222c0b67f9af8f480af211119e8f48097cccc3c47c445ef011b91d9de01c8db40c4e15212ea880852138084ff45fdf101cb9e85cf9d737440379890f4e62dbe7c30d7c3ed4e097fffa7c5042c995256eda4148fef5f980fbb07f7d41497fa63def7a00dcfb1ba37d39e31c790aebcf3e52e8a5c0f31990dbbf612ab905e3e0350b515e989dcc2375bce76a59114be386ed90329cf75fa1a59ffd49f481271e730812200cc0d165a13113c06cc53294597b157ee8947b08e87ced55f829bfff04ad5ddef5b377e5ecfbfa9c739e7fd62a2e42c6cfb79f6df9ea11dc5f147011f784ebf55dff85ed227eb97bce7914412afa2d629c2c03d52fc6c1ddec3576c6ed51f97cc578fd1186c2eb8f08e1fc28e06108fea380db3f7a53e7112247e900e01ee5b54a7a944aa2fc686e3faa397f277f1d23e78f301472fe8877d67b4404f29f80f84718ac84539c4179b198b3de9b8f248903140a5596a2288aa2b9478c220aca79363d1145511455a2e8b5d65a6bad354fe95c85afaca0284661d96707a0d67f42866115446cb6a0e44a4e16d60ab5005772aea8a4a85227ca08b39728723c897ceb8cb992f3b28cd83ee7d6df77dc380a705f508ed841bdf7073fe618c65889d639cb505effc791c5d2f9e67b6fa681efe873be31f9d2a0bc17e79c8ff87b59bb86f2d79fb824d551f7dc9c3ab19c64aa88124771dc27f2ca448f22151b59c47de2b0fcc514701671f97553b937101682c25ac6ee896e492e09976f3f1cfe2863bca9a75d528e276f18c9bb7d978fe4e78c3b2df9f909879d7e421a03aed70b755bc1283e1cb06b6f8673076557608f0dfa11f5baab547b5a2def5fde85f6501ed656654385eb485db8b63f2e4d0aee8aec5daad9e3b2c89e45355793fd9937b327747b351298940449d04f48908b93e2b1f7a6b3280f411fed655a1ae4c6521cd6b5c79ae2d25bab6ba90b57664346cb49173e49776d4a439bb6ab5bd3b0f5cb3122a096a12dca36f5d85e070e81c0140a7ef62d698d8a6d59205edbb66ddbfa68db244849da368911db028dd8a01f915107f6de94b66c075e1a154ecb52ab96f5dc9aeae7ca744db54359a5cc35c553cd903ab2ae688f6d59205edbb66ddbfa68db244849da368911db028dd8a01f91510776986a655756d74c9daecd34154f0d2e4dd5820aa76be62db5ea1a0954fddc5a8a876aa76b291e2fd354bd1c2e4dc583a9c2a970abf35cffdad3b58e84f6d8f4b7a63b550b2910f3a66ba90d3db3060ee62de5691a02752de5408a477a4bf174ade5848725bd4c6b0d91ea84486f005317804dab901b13e4ce0c91b42ce8a7652850cbd0966d59205edbb66ddbfa68db244849da368911db028dd8a01f91916ed7cbdecb31dffe56ef47d55b9e005535e9da6aa76579c5bba1eccf9e5c7d2dbb025b36e847d4f67a3e5ab6076cd9a01f51bbaebe1ebb027b6cd08fa8b7fa7aec0aecb1413fa2deeaebb12bb0c706fd887ac37f5f52e82aa4e40a18751d5cab89336130713f7b9c4916d5f3bd1e95a262f8d7a36e5c1a2bc774a8dcbd49f9ab0a9d4006fdebc92097b600f27a92bd372a7feff0babc8bbfde6f6ec3aded9d83dd9463b906bf3919e2d6f86dc55ffff2d7f3ddbd49f1d7739e3dbc3728fefe209d40fc20746b3c57e33faeecfa0de4d6784f888f7ffdee71699cddbfbdde1bd3f3a69544891bf5d77b5d5bf9eb63b3d3095de93a9ca338eefd49b5274d73300ce672ac2c6d3da9a9d2ade82ecd8e8cef08d5c4992f7460373275660d48c221199465be2c7b57716a98d2a96aa878b44a54215597cfd223aacef0c15e031e069a23b3c83936f3310cd5e55809543a5dd39fc7a2c656260a8a69eb71b57acbb4f5b8784acaefacceb49759643fc6f628f268d9ad853443462b7865ba1e2fc8dae3ca803e0e37d6feec533ffcec4f9850efe79c6ec71b91f2ccdd4b3d5daa2ac7895bca959595d1a5b37a5cae1a3cf7e352e96e69e9ea5d070d81526525b400764573a80edda13c1b501b7b97af4aa92ede8dd169994afb634fd84e2be8931d161461ba4461186aeece5eeed55fa60d25fa542c61a488d2e60bdd08a52104924d7924ebe25d9a1535cd993568581faa603b2d9fb981149a23bb2e4766e1c2b9a3d2adf0326d7bdd88eae7ce7bdfd255d5b461af6a35a5aa9e95a6742a9e1ccbaa1652c31411f757a403fbd0b461e24c9d59c38d656feed41296f2728cdc00caeb54909fbdaa051ebdf6d01caa23e2446980f5bec3f9527d52ed7979d48b645125ffa52935e5b931b99446ca8154e782bfd302f2b33f556aab7763b23fc1c7cfad1e3796fdea55d44545792ef4c695c1fc14189ac3a53c9408c3aff394aea8e34b4aa2bbba0ea76a963073f7d2cb52abe92f73475b23ac6705c6f249b56705368a22df2814696ed54ea5eba20c22dea715bdc430144ebff4e54cf7299f547b5a5afc8a3a63c5c3bceabd173b30ef1c5c5a8fc18df15bcad3b25ceb445c594e0d738c0bb9b41413bfdd56399e83a9e6cfa5c95e554d9fbb227baf9a365c16d9a7aaf952cd14d55c85b8a609e4cab23fc1588199bb4b933dcb0aa80f1408ddf14f14c7bdc91ebd7171543c78e606331834edef0c151cb1c533d9979f0331108eb7a3c538d8863ba303b623d2e0e35d39fc307aba4ed789607cd037f06f3f37d306b80f40206b8e74b68e6d16428a1c8b85d03ff820fb0f6288d059bad6cb8eeb1fc0b8e38054ccd3b25993991062f4127a8bd8fe9c73b88efb75dcb90ed161e8b98e1b6104d3a667246c9a76e143f066bb1b4620a1df7b3333a1347d8e15c33b0ccc61deae49c7e91adeed70e78cb78299b20413b20900c00008c0cfcfbb2bcb58c7ad75dcc5e5f033ee8600f419cd6c858ad4ea8112254a82c881b978d2fb7495c4abc4afd2dd472ae89c6740f1f848a3fd984ff98c7912085e6e799a489122d7b3881a102c8008470a08c64041b83957da4a3e735154c295f81ec493988445eeb1d2d1d111028e107074140c06718238c1a078cadac3ec5385d59269289faf691b51bbc6a6e5b26a6c608431cd4209b3745b585b5c3a71d6818023041c697d127d7681cf01473b058a3cedd3d661cdb14f8e01384291a2076c429b50eb10f480f101843bc51645208c314e8090af50e2dc479df369dbf75f8d6346467f9d15671d73ffa972de14ffc674b4cc842ccb22e470ded83ff16fcd6c06429609e0148363a6cdb43c072b87df0a98408002263f49336041670518e410c492140ce9c83210424308f4bf3e1fda19ef65786230c629eecde52744d92976796489db6c66638322f183e92fba96ef55f00853759ec5d2372e1e554a5759e928cb8ac5c35ab16411a082326d87012bca9769236e6ddf6fe7e845d47a6fc671a3d61387c1d27eef8dcaba6a7c792abedbb952aff3f4b852e5c1c138eea5eb4a9888dd2b0acb197079827b7e96dee6af332d23754c9659b9a90cb3d6da8ff76a16d65a6b7d3b0b62ff7abcafd6baf79cd867be4ddbf55705df510479e461ac8923ce9dbc31f81c47181af57d4a129cddc98967bcd6f7ca681df353fc1dadb5d6284e88b253bff75edd638af5c6d1c488224fba137b5e62cf40a284b9b7bf882d5b0566638c613b2637fbdc5b73557461dc39e6ff8ed65af79e9776a5a8b4d65a456b6dbbfeee68adb54a4f37d75a6bbed1ce846f166b756f0fb4472bbdf7f6eee4c4d7bb30a57051e4e1bb972be55fe75e4281a9ba111cd6392af7af2f974eec37cffdabcbe5adb5d67d6b0dd33b937b2f893e66da0ebeb70469a28b4b63ec744f7c634414bdc889ce84a3e89d09df7cef14bd93c0a6f370622f7a91e9a4f72d6562b4d67a466b2da3b5d6e5accf98b6ebafd65acf66646252a038218b99284102e605a6fa97cba5256dcd708ac6db7b9cb69c451847ad3d0c753974c0de81bdb75a52178b4bb913fb2bb29f4ea5aff4f54ab587858573dec4e6586769eab16b6fbd343e4a5fe92b7d2f5367d6a0daa974a03df4478a478a4722c9b2b2932a56e152abea47b52b8958f6b7b2ebfa5bf596de82da599d48b13d06ad5ad6d3325e0e08871b57866a21b52d27493e1037a64aa1482dcb36b56ccf453d7b2daacab7b2b2d2b4b2ab4ba9f6b4f05a70587bb4906cd3caae2c6dd9554a602a23bd39691a22fd80ed0f4d3db6edb537e6a7652a4dc227bf04ae6ebaa3d81ecbf6dadedbde3b8c1451ad21d01fa81009645bd5d55e1ad6bc9936d892fc11651628cbaeec6fed6da9f6bc5e3b1d2bcac36e6bd091cc9bd963ea7839dc58f637b397e2a549d216a5fbaac3b7cbb4148893213a446ad99fca068b0ab52ea5dae3e24202354a4cd71eebe337c4102929880e915a2d03b241d8bb73416aeab13d9676ed30b357963d1f2ddb03b66cd08fa85d57608f0dfa11f502bf6c31a21b714a11282828282eae51e87ab95e4519806189f02a468023cb57967f7923488c246d564a4a4a8a57755b655d595959516145bc5287d56ab582bd2019bb0d2c2c2c2c2f30699aa63024481060a1154a982861a208693c994cf4d7ebf53211038e5b88982c26133fb06d20eb18f55939f6f2f2f2720245f92361da4890208122c505366d1420d8048a91899129b21601ea11f172a3cc8ccc0cafc885d1c431339b99ed1d228d19cd8ce6c4a371aefef5115942a382460551eec88fcdc3e671aa58a162c5dea13b8956d4ac58712406568ecdccccccd4d418e18d29a0a1a1a161c182e849096a36b51ad97621d50b362d6c6cc87f7d47dadfe2a6458beea49fc1d1080b0396a31b9c1b13055c0456afbf26bfeabe313ff0ec1d584f803a200ec8c2c77f34c2f10007c708ce088dbdc3ab08f1c085071e24fd9d7e7d475ab08afffa8ed0d82c0c84039cff6501500e3ecb850bd3c66fcc8d2982e4f4af0fa874d7a227a82433201130a88502e4bcbe22e01ffff515fd2ebf3797f5a2e3e0e0e0bc7881e270e1c2858b9c9c1cd3969393a3a353b46ef28ee5150091b203618293d4b9552447c64d30c64c4d989a3035616aa2f5501032c450c4b7b8c5605004da403cb8372fda1c68b571c3c7a7498992bd39d3e63e4488bca0495211df434c9b27f13dc4b4799228f22dfa6c9ec4f710d3e6497cf32d326d2e261505b1833b18d43ab8833b182cb2f910d3e63e7b73a6cd7d6e34fd50e2e3e3e3c4071f748e8e16f95ee2e2d64a393a4674fed187c1f50b217f21d42f841f80200481eb2fe45fa8bfd016823e8263848b5ce4221739c7c1852c89bdc418b6c46489c912932526180f39a261044644bef9160a370fce4314722e1ae1228f1e4680e3e787082525cec5252efe0c192284899211910f59e2a292c8872c7151696f91ef1f2e2a897cc8121795442ef2bdc4c5ad64e4880bb95088b1900bb95068840832035c1cb2c4c51fcec5252efee0200288d2cfcf8f0c7a6fbdf5d65bb7e87d636bd50b5a5c5c4cae570ad3dfae76758602638c5518d3aa09ec8569d5e4058669d5048604d3aa0989125a0fad82406528612206133159914ceff1740a064f407b64316d1a88153c71c2b46d147a176d9669d3402852ac29626cc4c8dc9099f19999f9cc685434b994a858a164c50ad3b66bf466dadaa786056d88561baad9b478c14b931637492f452a5678e062eb21a6ad936a58b878b1f510d3d649349a693bd55ee49cc89dc791b7638b34d049362d7274b61e62da3ae9c50bd3b6fd0b9da3a337d3d649393a453a3f880f63eb17c1fd22a85f043f0041eb20085bffe0fe41fd83b61034914c538c5602c126c2087a0f316d5cf78961dab6087a336ded134304126ee8262df32346c90824f89050824f0926f89800444868c4aa8f77453848c6d40a3c773a0e67bdf7e69c8ba2a8fdc98c3192a8b29b2350ce942a65366bb9b8581dd76ddc9ad8f69e9ffb0c7a47800c2388ebe56bc8f078956bbcc33cdcc3eb0b8afb02730286848c44895809133c4cf078584cc44ac0d05eb1f5acd8b5f97887fb388a2ddeb53b2cb6a87fc21193dd23bf95930864302750f4bce88850a0f8d622c9801c1bbd4d0239f6007297633b9cd20b50a029458a1855d7127788e17192bee372cc27c362d991f8e7d63aae84b15e7f07efce1f3c7a2ec7403033abe1e2e171e566342e37d0a868b941c58a9a5edeebcd1e035ce0a86be5004460c182c6e2aa69db2b1bf467d362e5d7e20687470a8fed382deb4178a79fca2dc1f1a047a5ebb88ebb31431d891a162f7252b45a8ece696363da46df4267f651304d1c4fbee3441aa4882dc61938b11f4f3ac4f606a7e3300768dc1ace6118c4966b9eeb5317076be0c4bb1dde610df00c75747e9684a824ab1fca94b1190100500023180000180c0603491485391cc6a96614800f4c72505e583c180984a14820845118054110c4600c8420c420c30c530a39740500d234156b099006d7abfbeb0cea6225089375b11e35795157227e0d638dc45f271cd606d07dc9d00bc1b02bb527a560afa2a22dc1d2b8074aaa0a5a303ade617599dd52b0550ec05d27791ff21e7c0ed41f714df5cc8cc4e959ed8ad85247b544f53da6e64416aa746aa367a56a446af2a2af8a54ed0452fcf600357b90d712a3a3ff1b17aca2bdafcb4c1e44bfd2d77b09e590666e867785013525b06de7697dc0f380366a90b0b06ebc66ca02be6dac7bf8221933f7c0eacb845cf84945be8cd2090c0d21a62664b6eaa20f3e2b06e0c2786fbc5b38275b1889d47d7c3c02107525df8964959f8db37dbefa73603737fca86bcab8ee43800f7c1a5c779933566211c215ca24e8ef49cedc09c7208a4e2a209f7087df747b305575c09dde44f5422fa429dcdf35fa24728672581d80fd7dcf8cc2549606b636c60013b03137d475c204bab11e3ef6c228340b18a7e98f19b06365e0bd70384270a904e49bfa3830c69e8ea113a121a9da6051382afcca72ee2824530849ffc818610d16bc31e81e27c1f78b418ec9e3cf91b803dfc119bd3c91ef0e34489a616da431fb6c1dd1e25573f64c410c83cfbd4d846c6490c4556ae6a61f4df2556f2ce9ad11abfe8542484d89e41946c20bde4e039209ae4ce3cae3711eecdd3854eb49801d176b5707de0a9bc84f760b54f3863ae6046fdc3fb2f12e27050f3180e62cec3b66cc0e5a19f8540bb2db0b60264dbc5bc0578c738fdea69e5d7542af65179b9d65c2b2a114570e28fa12a03e9c3ccdfd2a1c4778609a7fc65475a05835cf2f67dc6677533c577130b24fc2cd77386926632086f5c48f40a0ff09492790441606838f3aba989255417d22345a26ed39c69fa1a4cc3d3fdf76ece88a54b4858da4a24d7d4ad66acd4b6c94302c127a3dea91da27a481bc6ddfeb67c45140fcbee66879a3c00d8e71f1f56be2a61f4dda3bb364f74a7844593161acceef37d1012f445009a25da636dc1f655dfa39b31aea0c3d858cdbebfde4ec7a4147ff1a6a360aeece1d10920dd4d83e95541c9df815a9a52185b4e13ff0b48a2845c3660f8e26617f423e2a6590a7ba132e8afe5ba7a321ee02b745a3c69e7fdb337722b43138e4216402533c307dc66146d8dd3311eab320e00e1128d901aeaa88263ce943546cb9032baadb391297a31e353d2e8394442b1b74676e6b65b71d7969520f8c1dca43ecfa117564ba3fb7b1d96d475b1e620ff42f80621533fec291f11216b4b80ccafdfc2c6882dcba0ab2ffabc3ccedf62b8b3ee9864235bbcfd032cecf8226c8adab78725b155f792d4e03cbc032107b050a5f6d0a8adb02a8bf8a99710b7dbb6f6d3c1a1e1d80c3bfc4525d5b17efc0caef3b32f428a262af3fce401b7419e96f54ea1d23ba955e0fe71fb7d4016bf75e40e6710cc6577e83c3f87d51b36d51f3657143247907efe6850db99ba9218cdd0590ae87aa0936d69b9ad1a0fc49fafb0bae2a6c4760e324d9f87379fbbca925b45ac437a1ab8cd7f930d402df89f1a7cf5ca33ba552882d952ffab300e80a012ccd09ac5ec0131ef4202eb6bc03abaa5b3932d7a31c313d3e834aa6160dbab7b735f2fbceac24b90fc40ee53156f9806a65beb3b6b4b3db8ea63cc41eea5d00c42b66bc0523e3121ebcb80cc2ddfc2e6886d83a8aba770bc30bc81f08046cf0e03094bbf95dd000b1f5350fd7d5f195c7e038a01c2883b1af40e0ab4f4371da00f457b1b2267b4f492ff49c9268133c2effdedcd2caef3a32f42c2262ac7fee883e50698a1c94d913cecf4e048abf8e416f19b99b111565d26e6f1afc5ba15574aabbcdef2493537229fb7632e7c860cf34c674a4b4f5f6bf36583d1ca6f8154d7ba33a214954c239babb9fcea7af17c8a9c97bf929bbbd5e54245702cb43f1054239d5a3ea73412e9a5c08c1fdb0664fbe99af8983fc6a17f4d4d3cfd711f06db6cbd25cad2453ef715b31b7a140c7dbd95efd5e2c05b59ce44bed136a8274534f90a273c5f0026a6d0f3bb3c7f46f1357211ede8ac48e4ad2f4336ff553d7b553d7f5634935793ba9b653405c5c9b950cdb98d452458b0366343d9ccdcc9d49ad30823ef9f4d93a067fc59699ca8a70285bb111de7c65fc5235367890b9d818ef8e8ed0d35351734f0dfdaa699751d5157a8c7b0b06345b44f38f39494cc3a5c0e0556b52b3ec3972a8d36ace6f98dbad0e587d875c92fe4b3a585339055d78205ba1315f3c3d26075da97db3d201b1fcb9bbdad4ddfdd0c19617f85eac326177acef9cd0f6c74a61421c395390a105779f3dd703c3ecc9df081a372b96cea3428b3c25476c29b01251a346c92c1331af43073aab77f3c677d756137bd80e3218232babe9dd1c4a9d86c7bc22a8219d9f6f0fba0649e1f37ad338ff9052ab46da0b7fe28f3b09fe8353b643c80c20c9d232aef8c5f337179be2ef2294546ed278e8bb84187f742193234767426c3994846b9402b3a282db2aa0b46ae1491a9f69799753e231c1fa48a36270e5e037b639b41f5d693567115759123d07ad014d4eb31a5e5c2fd3c1edb4f098f3ecee78dcec47b048134eb181c85c31ae98d833c1890cdac17615db8a9706d808e73ff25a0dbb9ac3b2c033916d03c427705c9bcd4491e2dc862a2735124d509592702f6922e5a50df604d832a1cf08b15ffa5e4e77d2cbe0c0dc134fcb4ee24dc5e47e4ee7eb1e82264a6d90c66570597adf4759bdfb10b23e332512f5fdc9ea87c713e9278e117ba909e9edab0941d4bebf9ca48dc9a0328d39e14a413943988a3be9b623c3f11bd1c48e41f4614f0cc62dce5978a29c5ddd067955d1656386c1f6d21bb35de5040229aa011bebccae3cd8d35ab24d88b15a40e0c0ac185979dc7095d1b823c414915db12b4fecdf5178febb355c0ca2e5c768a772833762346c457a28d1cb8b8d01038b06acabfdf8932657beaa5c51297e8429fd11bf05d085f1fcb246de9549973802bfd222a9391b1ce4cde55f41a68b0da97214ad34c940eaf9f47b4df51c1eb0fa7c5c38b985a24414ea9a30abccb20019467d01ba2a7c8aa55f9216953e9ded9c9c2db4c614c4cbce485403afaabd51f75f52f458f31b2b369b37fc1663005e86b3c4add2f2a412522f5c14b1c3a833b9b2b031c8bf34f04381b05aa687afe369e878a319cba2c970b13a34d0ee920769fcc9d15a7395182815ea49e8deb7e4348ebb974d6dcde0227c5a0f2d6d9869444e35db1e10fafea225aaa1cda0a427adf781f75d844564652aa7a7aaf640d236b82e522a6604fc976068b52d4a10fc4975b5e5001568f1f3d66e1fd64489268bea0964eeddc2dd75c467698c005bea1049091d898f8f8908c8b2c9e5449e96a5a51ad152e4d2cb67712dac678f9db1b284883d347a84363c758b970ec33bbf4a58080e6031891f4d4a28bac1bd178203409b72c78a754f65e2c9686e4449833eb745095bf838ddc1ce3f90aeb4e7e91c4621ff611aaadcdfb32f57829c964f79da67c7e12b88696e6be903da314226264b586802182f20e659c5503f4c97dade1ca8cc3b78167abb63fd8c9b841d7662a9f4b92d4184d2e94ae9246b8a0a91a9c850569319e03836f2cc1d1ce5d570097b63d474bfb4902f492af6367bbe626b11aa7c87be97aa145993132e690ffa31bdbfb30b54e5fd7d903bae82a4216d6bab6fcfa8f9badf274ded5e5ded5eb7b17992e005f5d67e45e32cef6e634f9ca92605993617a4767826fddec8fa07fa25f62e662052af1a9009f3f780797a75fb115ebfedde072c23f873a70d249fd5d9aab36bb002c2bc0ea1cabd78c546358ef585400f05c1297827699d8174d00e6d62014f6739591e38daf53a0c8bed1a97ab822045400ece77d65c8322eabf14edea4222034e9e8b50bbd8788dd6dd3e67ef88ffbb0596edb8d65a6b54ce901f7b15036465ccf254afa031f68ae1352cd46772107297a4048cbda2b0d1f91cec39a049391511414310e1b9e9f5ea62a9bfe3f805ecd03b77d38165076cc2c8a962861acf4db0e8fc7918d2b65cc339143f518c0996d24876148a51ca0ba3a7aa0673a9e98e4f20f70862917537420a138384de410b5762d6629376b08d323bded5c31f170da7548ebb61f642c2cb6225a280e610202a120703f29f6e1519801c9cd2f1e770548681b8a493c9544a41c802294c5ea26fc389ff987b91733e0dcb5530cfc5cbbccf7c12241efa1ff19c6d966e778c6882578e951a309c192c67ae2679861dbdc660a540394d2c95d99920a1cd200476ca760350e7efd41cf44e0e34a3100898eacb9dce3d2bf7683b0c689084b0e36906fa2cf67d05bcde54bd185e80ea2233f832ac1c4d619eda8804ca49b3370c4664fa2d9bbf164422c8822ef8574497a23ceb33ac7311ed42d7cd90c09f52ee7e7e30831448576557eb524a1f8cea461a006ac07306fd374cbb1bb699a4b32a15261722f92c81a045c1317ad3c30f3120065ad4058d1eeea808ce53dbc10da90a73340732981620ddff1d01a0fd987a3e3de01613c0efbd6efb667a41b17c67c654339d15ac3b3fb20b95a16723ff0d1e7a6159ebfda10c46d5398c0fb17ad1881b82f9e47de15629cf1c250a82bc1066a921c121fa9b7594c2fd89b52ec55c1554dc86e9ed2050382c7471240ff36e4949ff8d424484be3b9d2bb260608ee5281b69a49ee409dfa1393264df35c7dfd2635e6aaab55eb4d1b2b44a6d341d3aeb068b3c3accc97f55dd589c752b112dc7181d43da616592db510adc8e5e5a673b757d881da9d3f6da22fbe96b42ee68d5158fa1234e351610a82c4c87d896fa01f93dfa25aaa621b1d5c9d7015a0d3c436b1129dbb5b34236928babe0307c44ce762d1659bba117f95fc33ddaf205339a08073017b8a9ba53bb85049e9cf2ccea8843c50990b0f86d7ed3b9ac4bb9029242ad7061c5def746f784e4637f4f240f4a85b5fbf16ab0e183537df2a7906934b94693aaa16df513751afdf4a9059d9a6526158fcf6d4a2fd52f9cb2698004cebdf090e7826311d29104612ce83353a0d329f8c0a112afb8d7c090ab9b94cd6b0e0ab31f08ac3ba20f6cf9eae9f07b6947403d4110c37a122cbcdf7dc356c174af23f175c123877b7e4df7df3de5064a6ab3681e8561c62dfe13580d9fd902fd4d09742fe4b98ffbfe01b1acd80507a0a4e8068e724b271d0e2bd8f5d0735107c5e1e370d319f7d06933cc6f7c4eb1e720fde796a3e182ef1b5ecf96dd8646e7018a711608696ace03446420c2a220258e0826351b27945b82292b62d70ad284e5e0fada4ff4db02591b34216868a3e3323701d004824fd80c8372187d016d8bc8ccc334aaff0a848ad67bf7367ae647c379fd43a1b7bfe0543fe2956664d7741f90ba3cd9b7f17f128d630d2401e277388b13fb72f1a07ee6a519800aed8ba92983ad72d036013492fbea9be83d0a417dae04655dbce0f06a9d2032c3782314dd1d6611110c6fc4b9a36b74ec4f0fc372b979f6aebcb748001b4c5b1375d17a520fe78dc169f0d626bf5fa9426f401427140225b28f2ab846533cc78bc73985bbf9b87b034a724b2ab99167b3d9735ea232a4f9f794cde4f6737a4ffb961474e3c234fa1fa454d46cc552c9a0c89f54940388e39d50627a0902706f5a1450c5a13494a9e26f407da6ed91b85a3b8c2847b93b9b8b41fc75c9ea80b480042f9ce21800fa431ef1deea7d8156f5b612c923ad85e7ba3c695f982b43fc02a9a821f044deeaf16ce4962dc577e6c46c6a71876a68b0544a8c9063369d9adebb054e16eeea5efa50213a036526d84db6d465a16ea0609fdae392fcdc5db85a3c9bb051bc2be36e25bd0c411f59339120ee7905266a60a44df6a38514d5a605b52c91574f0e31f91d726a8c1ba35c0238218d01e5f0f09be930fb6725ad805840a5c438051f0fd095baaa30b759a5d22925a32432456b8df85b5b5b6547a8ba83a833746db40392597df068970da6791c54c20b865097279e976b4b036c0c96c83f58fba54c24b53eb3e64970cb52314afa216af7440ae0c4296b48fa4855da42a955563b45cd89348df99d653b5287bcd4ea90fa838b027bd15797b40e794acebc59cf047a99c0a9ac46eba58372afa4b0ae9a200b91ccd1e21265ae2a3302453c5610037f675e6b544ef8e872b7d8e46182edceeefe9bad1df40d8eddfbdd385c0a9c20e8cfd701d9d973da333c20d3dd0e4ac7cdb1116fd49f35a297f2a5301eb49d2778b180ec03cd400e1b27ab3c473715b83f1f5ad34c5457c8de3d1fe0f20f8c3e8e135c6ea1324185ecb437e7a83e4ffbdc12bc618ecc0fb1c9af00851ed36c09faa942b690ee77e75010db2a4383e7e242bc2728acd8f4cd437140755b9da3f43e9f360ee3b3b9acf6ac2251bfa4a83a2ace3ca8f7a3b54eace62249a2ccea550e3160a6cf5b8068f4f466187e85b7de122314ca84df8fff06042d925e94eeefff1c05ae1434a7794659ffd8c582edcb15e160d41a861f06ac09c6e22be19aeeb28f4b85a874a162809ea763cac00733b3ed5d7d8eb3c410ed1f4d48a7ba4a7cc6ad90641be222ad6143004ed2a50250621e1016443b224a2dbed04734402c1188503d1a980284a02ec61c4833b46f899dfaec8710cc7b8b81d3491b7de7333a024736de7015517867497324589d8021f4bbf418e51d76ba3ac6192752e4dad02ed7e5753d331a0d651971d4390ec29b9d999f38b1f62e2ab7aefb031be4b09d541fa0cabe6ff5ff145611aaddc2b8fe7d357225cf7f522abc8365a13d4785b0c26064a76b5e3a7efa65847111072217a8703f911e2031288d335b22a226b3a70f46f3ece023d6445c11e2951015eb8811c95f4a866fae248f9608d20b27fe736110a97957ba8ae114c28f6d1081db01dee85c6ce86a306875e5fc26bd2b08eb72c86ca321e291ac1da2b6290f6d50306bcec57b3d63e95f4ca84cd471df3758554321c49830622e0aa3ce96cd099b28975521e489e83de4f295dd3c74afb022e056e9e69a5a75e9d1f3339660c0604aa60083fa3164e901803370d3451534b7276492c9cbf28faf04062eb490f69deee5e6ea42f8e379e4646612f99e60c99fb4a59596a70f8465a57b531312a08cf51a192f617a997a7d02b1ebc9dae3385512951ff76221321bde3a18ffcc279984bf338ff5ce715a847ad5ff9dd5cc350884550115fcff37b3bf26810e726694a94fe8426dcb4ffe2fbc01870f9ead950234d6e1c812b39d1868cba351b6384879f604961b05377395e47e712d15e6d2aec8f5441097818e925051290ea7c13572c585aee3d2d2611c7e1dafcd614609cd56eb061ef260710433c13ea3df08a11cf0b57f957e6e0d61ca0d8259cd56f52154fa7f68600bcbecb521e1c51b06db88adce00f89d969975477e9bb96c6eeb4ca6ca32f3bd8c04c3350f987950b82058e0a7fb41d0f62a727f32f19f567e3a894a63370b67ffec550078bd868bd612b543fe87442dd76062f46c8b85bfc5f90c081dbbd9f13d782414b79d32495b08cc82a06e388bb45d54754d6172a13397a8c5b8681ab7f0ebfea654b0f2082dc13226c2085c714a01cece2a1d0ab6629b39a28043b9099c6efe4c5de7261e5d7ace527536fb942dd5729f1d11da6b20c6c5085157dc55804987f874b95912a056639ae563d36adfba69917aa4c7e42599513c885917f8a7400f4269b248297db3b58f9f2c3d5347d6da1d86a7e7701cf9ceb329afed40252332b37f697378da99c65f379b6a896c8fe006be59c5e6a3b598e21d67f6a711b69e92f7460ba9083ddc0140430ea38f1e99f397f31fe7dbb58add80d96c5d644b641d7e5812cd227adaf0489acd6bd86f15e6a800ca001963c75a236bb466999cb5bdde0e58063b602a23cec21307c26b27faf7015b28acdc73e779dd0d9674d52d7a6a4432cd117c88bae984f3a49772ee66d55c7b58d6ac7cda6e1f70a53f4c2220f142dd365404c08dc9c4916dd04d1053ade005e2f8167c81e2de9281a9a4aa0a14cce6fc88489ed0a647ec358a2978e3019a446389da8a8dacaafa512a19db1354fe04360388959b424a1c6ad345a853ba9e0e1d9d332523946da1e967472b18e5a6e656a7b71cb333a1f00ad6f79b7dfd1dc778e3ebf3025d9ddaaf9f20a7c85bd0ffac4fa037101a75be95e9d45f1ca03ad38edac4bf66aa4ba7f3c5f09e5f48ef9970ebb4bbd7529391daaaaa51d6b4bfb2edc1a04a3a91ab1c5b557bd76e6e940194aa83a8da079f71f2ff3f19e94b32c38746206e47da53f2070a3c76980a5bfff1bd0d5351ef70b9cafd5e15e39b290d80d2e305e9d908e53bad192967c4ffe01808c354a3ff3e14ceb5ac900375aa13f27c8bf6ff5101f83cfc099893fe40634eaa96fea85a7d55bf5392255e2c1c2639fa6f556b387b07f8a0c5292d6da63c20a34282664423e95bbadf1ba4ba8a99660097158b40c7b9a670391cd1c8bf399ec03873b620d7f92144ae4c7451d4fe9c032e897953dbacc9517add29e190e4211366c03e8243999ea19ab000c8a03997cd5f41a332a5b190141a89f6c9d91b282c8c1362652a953f0e5af4159d87a05a51a68091b9d4a3bb23dd22938f1b4da5dd4ad9ae2b2222b039de76bfdc33a16f10f2d2d6ea5e7f570da605f141a7603a7718b295398d5f0fd2e082e7a53d161c866a84211255e7aece5f3fa932b35c87678c9bcf1597dea0a6bee92658966c26c55adac2de01c361abb9f50b9675e74fe5732fa94d68ee067f9688f4fc864baa7875e125c4f3789805f8bb5904f7394e043e355a3a0c5fa35e9d9036063f48fa0720001a52c1651695f5932bd1155d7a18d75964ba0c67fe7c971a77147cbe70185eb4d6b5d63a6a86b27738834506fe39392edac4b765545a7aa7768be13a2bf9ac67f38551e1ab2d856be8d34451d159f568f288a3c273a8142f68aec531a37a515407342eba489c1a9c0632b142654a8ea2648589910f9c7e89a2980037cc0d36307d3a549f7dc9eee979304651cc757c1bb002d8df621d57b2a7db281bc919d4aa05c3b0c7337aa11f8812bd7f3bd85b75b8acf017d557d654106e515c8d751222478467b27280a8c9039ac64e556c1b084455c17a35b0009650b7e263e5269dcd6a42d9c695dd6fa7b10488ca5a2463a54ff774f617105537575de377d78f71e62bf06120aa3f0c58b2c9b2e1ec1ad2d3efd877a4e65979b1ff1c248d204fbe288b9527a6fccf42e1f9dd88f2b7f96e48c11f817af8916a912b5365900e39dbe271e57c027a67642d2928d540bcbb1a2e8b06123cf922a5c6eb41e3d9d734fcbe3244b1a09555c5fa56fd099a2a6f20bf6730fb470d7d50c528f9b723ef2f157a6782bfef83e4d31b33005762ac02d89abb98e45322bbc11ba9b54a4093b375cd2b20f9a40fcf92e298dc72cc4a0d28179ce904475130544725b41ce7829d5c6c7d473e99fe54876e89ae1ac343c77c3665ba17774d3e99f5eed8f4096e3729f6e48284da77e323145e0a018253448e27e39d56418ad0e439762b37f61d70e0e3a9a3e20eba32e90066026ec6543bd1c49ac29b28137bd2771a610dd3059dbda61779c67236938a2beca8bf830174fd0ad8f4bf24bbb0a92a6d481c861719da5cef18972d29649dec932bdee7ff22c9ff99afb40a48565c95e549915d6f27ff401e30f6953b3cc5aba58535a37dabc48b23520f50b628c175b4f33f65d1b6d24e49127dc7e9520f0177dfaa131c5d4d3548318927f97ae6e999f80003b453da43dc9e090ae36ddb33622c9dc60e6f616e037012f0e38d539795ccd9acaca73553a2693d6af5441a27c02462c898bbc621ed3709b6b02891453ed838b1dbe1f66e66d052488f2d52f7a07dc98e4cbc71329ef180227692ac69dd940deafd8c1101e6b335b58aa05d003e93a5a5971858b2161c155b61abacd795417ad0acd94a28cf9b6a9585fb00ae837a2b8e0a928a26c24b808f58a870c06d9ee511df64a9614b69dfeab5221ab1b0a0104da6ee2a2e4df877ba9f909d9b9f1cd30628e811411e6c101cf4e16f387dc843eb637e775e4304d8119c9c6c149e912470a627c0353441ca351337471c4663aae9e734433482a9828cfbb7370c76579ccf4f9aba8e3b922bba348c87b49bfebc009966d4abb9ad9c3b780d5064c3ddf448938b20c6478097489878a22daec523bec8568396d39e95b32632b72912cef93e4cb9e6023d7d3889127417adab682913d0e9b569d6e8ef0f933f0e67e2a5217ff19c5911646db1e75b2f497e8f9a171c8ede0dc7fe4e1aaedb558612150341eb323c3e1cdbd974a91ea2b67005f86b0668737cdc0af06e3ad9dace3051ca6390b6d641f676268f50b9a54b636faf45ae33bdcf78c909ae6c29572e7ddf64aaa72f843136ad7c9b294904317e223c84c2851b6f712d5df941b61e949cf6ad3c8e96a72f39db3c4b6ce971b5c4c8f68114cd028a40c21b06ca567f0f19c7e170e617fa74a83e2d2342dcf99424591f4ec29db961a7ed8511afc3c6d1bf5fa512745a460e0fb56a324cf597605a75b4fb3a37e01cf2e8b6f9d13ad32391d5b5c0b7c3a5d762359e8c929bdf862f9dceab57b6237e75efa8ad66d7308088453cb0c7d2442c579f4721787fb92a487dc2bf2a0f3d661a04c2251b70c11332e773f7fc7032e02bf806c7950bd35b6a9b011295dd571d2830ab5dd6681122499d1cf82f9424c1c453081b6e72905b6a0f9af9b4245dcdd21e4fcea6df1a8c079a2fdddf3642d39620466bac7841388659facef6fd999dbda70ea699e3dc6589cd140d4e337b13ae0f7f107a2e6aae92b779b6a0393f0a1f817c03dc9ac3c5ed958b6e97191660c9e8d75f3b4f98c5404b332211904745da4ba6d37b3b179f6f249d28a926d109c1288f0231ed8a3865746e08df682dc7f88dffe5e1917f0fa28dec46c320b709b1b5c650f83dfd456a023e8eca61ea7b84a481f700b87a46a9210dc6fc956f2928f7c24ea672a08e163ce984aea82939034f3a8cc71df29bded9f0a616331c2c692fcd22e605be0e0642b58547118025009567ace6a64be7193d2deb5d785cd6e49720065ccd69d31db32764cf8ec6b1fb8d6dc48bcdad3ea76593b0c4ee289c8b24d716d9fa3ffceb1bdc5295622a7ab32a655f311f00dba29d425ff2f7f7c9e88d32e3130ac0b63fa55b702cd1bf5f3a3dbb34f9a2fea39430cabcecbf23b3ddea8e636df9edbb39fabc4c1282d585fca9e7e5c59df38a7ad31dc8064633c5fcac603f32e90455c21586dfd509acb920c205051196c460456c94218c435fb3ed7a9832e223373ccedef1457d4c755292248cf428c820fa4ac2408b1d6f765722ec90fb2dbf4bc52d8055a541b1c88c6c9edac3e216c8b151894860ab2ca21e3dfec44facce276c5d4059fabdc26d2c712ec01965992a6fdccea82a7e7cf23f2ba5cafd9240dd55ae887711acaaf2568a27e409884551ff6c54be1f9b0a35b08b97ec726f34541759a9faf22ef0c411c498c213965cba835f6d5d80bbaf7a93802acffbff9549e841745963e325ee2b2d41f6335e1a7fef1bfa4e9a2bc19a975dde0d6df16afce0fb0a802d922f0648de255318ca365356882842bba622df6ff99ffd34add6de38ebfefa6f7c65abca3d01656464059b4812415c9c817ca26081c3426f50041e0bcc5b9416625d091a48331b89fb742b911f203f1f494c6374e48685654686604e82777010a0581843087992a823599a387aaf53c9309192de82661c4f3db4412f8ed8ce5c49d23a43a09a41a9cd54b645b1304b54fd1782430655af802a240bc7ac32ea73b7a1e6b7b27feb2face356ec45806bd7e6a9148254bfce5951c407867a7151fa20c8c1414e1c2e1f43df7543ecfdaf5d3139f573c436b7f50569ad065b43a470bcb2258f465bcebc3033075766c0e89a89e1b26f42f18daadc1f4cf26ba26a50e2650c70925cee23651c0ca010d77eb64bc0daae778688c426b7e1b530e204b8b37d987b2565dd5b2b26e53e4cbda28cf80acfdd096f3796e562044db5446c72a165494c1248b82efd9cf1fd8739bff0cb1ca95a7dfbf7868f46047fe0ce70198e878fbbdaca6f6ce07da5487bdfe0ad8786ebaef7ee270f072348bc79395ba634fcf80f495a89493b2c7ad3f45735705470ad1b9cfbc962dd65801d7fad1218993824d6459dcf201050342bd465fbcb993f259a4122aa694adb619aa33c41b0330b0f118ecd21b2790359699b231f25fdb6078ceda373247bbe1c4b7a3c765776e0bb279db436661604a8b6024876bc5c3c6f107913b716feb4cbab53e1ee0c4d92383c9efaa9d86bdf148706d56793c4e96e5bfbae80133a8a40ba6ece6d6886b809158a78a4e0373aa59026a5478a8069b4e5266a3fbd6621352345874266901bcc0a0ad9cbd11d76434f015bd8f370fea1ccd030466a839bc478c02cf8963ef7d5cddf92464aa4280ef8a7c34ec7e25846526a93184db47c33211a340f06d23e18b223761e9be4f17569f06c01e37a538074a9a29bed001e186988dec3e6f009458010cd02d3742c613cc123d51f33d470fca446922d193ca2697a1a27df579d39cc5271ced1f25f1845d45be3e805bea4507ea43bb3740231e5a9209684e6f62a939c6937cc605cce27147052fe51cd26d4fb0106809fa71db960ef758e578ad02a14b7f8f3833329c917f62eece478428e85405d4740c3373ddd761439de1c6bbba61b1e5cf73a2ff60acb06d8a515246e2af7548e044494fbfba4c94aa34094588b54e9c9051ad428ff38bc179dae521e94217ee99dd81952a30c75975a4fce7e637c5fe5e1961303a128deb4310f20848a603437ae3191775b838d4310dfc36717657abdb6760ec62d3a6e7ca70109b0aa46a8958d5efc1a27949a22491a895cc69f895b4954b7b46d2b4671bebbae4b5aa7ef20dd6dd9510b40c2b907264fb0fec1c9895c4af0f4b5ba124efde38e9bb983df88d370af3d9492034b9e199c9906123b59162744d5aca859c0a245bef4a79d06a67c086fca97431ab2292b08257e81381cdfa6f8e66ba8b4e4d9c0939b934d5c0a0688f0ac0c012a0abd235948b52023c6da21b45c245066e040e50c8a55b94a2cc40bd06783eb58a8d26101f6332b631e1fcb190ac3274694eea01399ab4a458fdc14e25fc05f2b9079d280de0e98c569a3168cdc6e46b85533d5f41ead8bf4ff7a93ba815f9ac3176510bc86426a4ad91d23b76348b64986776adf1d30674968271f76446b4aedae7258928b696a06c76622a38064bb26afe6d85131133044412444779763599a227d12fd12f960d169db73f38acfda615cfcb299dc06fcb605f20214d3fd335579f9b8b55c4a21120b889f6024e5a6e698128657ed7952765ee953ee587edabeb7e34c9f5ab51acb5fca9a9bfbd34b2c7a4978c42945fe42637a7b50d7acf27abb2088a5d05e97e80100f424c53d49fcea1d4b722b7bfc1460148706a305004a664fd4d789c3d02c8b5372dd72a19dbe9517d82fa8b69f907aac0c8df3f4fcf07fa012b68ddf95489f2487aede96c6f2cfc93624531528e08c62d879ab98fa0d5bc9f49be222ba8ec22d9ea222f21bc74bb71964e2ca064105f520b31fae9b2506adbb81fdbbf3d0da8e293a4d3b702d4ae8257b71d561cad70c470ad293e36f0ffe7e7d0dc221464629c66b14c3a4dce8709a3f5c9fd3b353c704c3a00cfd487095465b7db059c76fd7dadc80fe4c56fdb7d47bec23969e6d2a949e092ed65e4d63628de2be66f4039aa349fbd567e96f02c670777117ad6be9bfed67a050b81bf30d884e64e1d6a87b997283c4fc557caa5c718a8696f2d5f725d650f64b4b0afcf1f39a6abadd25908c64dc39cd2e0a13d8a8f3714666290a6ada789f6b9daf3b12426cc23a1bfd89c66c3e7e0833730e7d2837e9fbd8a1e4d76e971418b4906aca22532959a76e5fb988150a5f8d5a941266ba01950328fbe49285b8d1dc2212382343b7ed584fa6a61ea9072674e87183f33c57fec38c1bef52ad1129ecab04be10e836276092b5c63ee05a58bf7ce7408ffdafc59de43842050483f5a36840708edc07ba441152202ed37e936c74ae30cad15742a377e5860d2242527158af9e23e068fd8cf891e7e9a895e662a3d89354c6b3c4b0a99a9e508bcd765c5f878bedb815a73e7659a65789eb72cc3bf06c97a6b9b611792133033fc8fdb9e53d447496dbf873156ab837f3d0c84d1711bcfbe12611d415bf7a50d03d7dc40395c5d7ee540aaefbf273efbc29ab7c6fbe7f3fbaf24f00ff50e59996ad49b552e3be87673844eff1e763cc6ee9e163a357f16cf1ae13669bc43c3e3793eac4e7c67f83cfa569425bbecf87573adfe8caee55e86f90dd37ace99ab08348e08cac4842c24b6435483d57597e941d0d5ca1be510d73ba0c0d41779bca82b834dbce29bf8bf30af467aa07f9703a73b66ec2974d082a2a26e3d1d9500b421c3fcbc615198c6cfc5a25305f0707c578a4fdbdb0b6d599417c566cfe5f43d9cce35e6938f9c28a800a3b44632c83bbdd4ec638800ebc9ad0cc1c3dfb778398bb1efc461ce28717dcd0795e38e52645e0a330f29685ac7f6eb298cfa8bba264a309dbee4270ae332d50ba2040313fbd5fb3afc65d843ef0c6e575baba6a5cb627e0d8c9897f56a9b06d022430afba52b3c849db3a457a2ff40c1260a4d8a9d50ec03facce6621200d374f875b7f2eb8146056be8234c0720e1bdbcec0252bbde4e614aa2bac076e67944518f7c0da8286d5a0b8aa1e31d4ff0e8b80d4548a27d6f462ac19bd421e4cfd2855f9569df2ade0ac2905b545c9a7c336576e452c0540c65657d849ebfb4c4e3211701361c034e365d00d67558b5b2a9e4632a646dafd8f185a5fc394be01bceb9f1f95bfb111ca93982a13231bb627d8996e3475566239eefc7ec8a5bb7d938882f2cad046fc02c5289756c41221c1dd38d3db50ef54dd6257fbdbdabce1389a8ff2c25cbb2e2524d7b07f44229bc936920960661db0ff946bbba76aab0405133ca7362657aa87a244368ea6d7858d126cb0509a15206927a7a19ea10217c296df8c755e1f7694a4fdde16911b046c53f798fce332527acd130c712809a154dbc4cc839dd3720acd96b3c395f62caaecce93835780ab163aedf8bdbd0b4633abaeb6962d60230a3798b27c60925cc4637671afff70a572af2e5522cec0331eb2df079b9ed13ccaebae20a767da8a4268bd46b1eb6803bf745308660ced5b98bb10bd4891ffd410ef11d587f85069866a960e9c041611eb5feb72c2cadd85ac0938d8379826614d54360ca196c755f673dfab92308f590a320feb1b1c373c3afef4de5c92085e234a3535d8d5a3fc1e4698a32718b3aee58c0bed4e6bdd4e8b9f99edcbf063596cc46a1ddf08a2abdaada80419c26137e661adb167ad0fe1a332fe8cf480746fbd1d42aba4c6111a19f7694556131047b228ad7c87ecb342a2fa905a62aa0b2ddfde4066cdc196e970d8533b15ac06d4c762849583efb4d254601dd7bfffcf84c04af631097fa0ab3969d5462e52c868ac30c00edbb3835f0e7ae494f4a6f3d185ad0e856b30a034a880cf46e8d34a7fc06f27c652f58cf5dc49dcfadd29be369068a5f608b45418acf8ceb0f3aaa887922292c3ae08048907d4ea4063dac9bf4e4ab9ce8686e5c8f568ce5629d90d25ad635fa3405167bfee850c24f6680e8067f927024e021da08a1a47fbfe0927816ccb312dce635a20e7a22bbd944545e9c81d49773e6ad8cf51a123c85b55e4e9863640fb5c1002d1361bba187317f302288edd3860bffc2d9bd69b20824928a6494169efdac15b52682e69ac84a7bb35b473b4598f6f82a2e8db1ec171879148119078956e69b01b47981a2a6007dcb0493a06485ce3fa9a6a23f8e53c89e98147c3c5412aaa039d24f3de8432a333d010653d35bc0fbd13e39fafc62b5a061b36f69cb9262632b8079a995212135caaefb7ae4ac974d19b57ca6f82bee0618c4fcbc470f08cef1077ebaff7719e0fdc9c7cd76f3817a7a1ca8c4fe8d414cd0200481772f4771844aa35922f1a0e666b19f5930ed69d2db3019745d9321cd04e4742f8b8f830338b271a016bd2bf001b80b27a80ff1298c62c44864886d4d3d5ee02b233e5f841bf930692837d370de24651ff436408f1836eb74ac32a727c51a5e346b51ba5a27858bcbc41a825b95191d0e129ad1f837513febcbb3039e29b7ed2f0f924fdc2c5838b6e60962e8e59e227b06858ebc86eeb6f532ca5850725face13471294aaccde7350d39d4828b8c18795195e843ebea72daa64f55155de772a51262a4a330e1286a232633b3e7077de6626a41a5198300ec1420b3f003a4958389fc923e199f570cf8c3e475a7c23820d8fa13e3dbcd98035181a5fd34190dcf99521cdb7a830d62e5003f5f7ff1ec84db9ec8c332fdddd48e0a7585624df790609a529a6d87edad1df73e46b43b53de8533949b86769ae44ca507b29f9065903e08d0d1fe121904c19573c31aea2ba531e04b367a26db354ecc5fcb8b2b742d463f54f72a003b977bc1b2a32a2e89fda75f2ccf7544448df63ced020893b8e5bcd117c00047af436995a20562a520772a5eb1d80de334c97fdeaf45d187bc6d704b07de69149b7a20a6bfad3207988e4de34e6a4180ee9100f4d7fc0c4c2f03617c8e1de4fb84023370e5dea7848699caff76982f6e09756f442c8de726fb9a594324919a40982095d09189c3a3b62adeaa22db28419358d66423181369e4174c5f2b434ce98b766edd63914ce98cb88710b0ae49e05ecfe049650b1d807ae242b68d3590a674f87ae264f8de59ab1099b3f33a600ce13fde89520bf902afba32731419463d3c3a1ab94f4c21f9ef75d98923fb2a4ced170d4b1d3dbb8153336633308d38a199b31c9e508f88a86c650f9a8991dde83ae46df79a46b3a853939dc7f9fd37de9fd86faf74da064d1501a68680a8738394c552f4c551e5c7d1f5fd8f928853dc21d3486ce1f9a55c0c9b2a0962b25e9365838dcdbb81652d6d466189bbe94ab2e266b40299b6c3a5db3e7f5b5f438e712578d1368c698b8aa3e75d68efc943e9533fd1a9cac1d74255941b259cdf58f5ef49ff739a77bee233083e68ce6ad299b43353a63383b5ca434a669d74b5bd4ede7146243d62ab6d0789f024fef92b22d60caaa8029cb026a2e4f175da580c6d477d52d14c3274d9efc2b2f83f7a4f007f7deaf843f8ef0e0e40f9207ea306c386a95ad0052a61a60c6d4024899baa9904c1273bf42b2a7d27b9644dac290443a793e4a367ec43f7b60ea663075c3bf4058b9be0e237bdb757582b9e01304287b944057f050eb76818c10d9f5e78eab58762a06d2e7e741fa1cfa3872bf0b7d989e14a62cf75ee863e539077154fe04fe38f2c314a6fc49efbdf725f0c74a988a81f4dea73ce4414ad995cf9fe2b1f2f93d65775cac343b7ad0e0d5d90c8da9a1cb04c4faa7458f102d5da05d86ecf9290c71958f96b838ff1332818290b1653882b92af502f53d276b8e80f60cda73f4dad2731043418f78cfd168684f590a3df488251cd800673275ce14b2e96b21a8a76fa347148b94adcc74b9052c3d0af49e0534bd0a78fa151298aa5d965fcada780b2859289595ce46c66c6233d43abaa55bd3f668ba6fa863e8fa791b438f8fa231f46ddc67a8534a6f48d98efbfaf3b3c1ff06ff8a72950d1590ac9c1cd3973ee7f4de7b98b2214ef772f3a09b0b534e71549efe4ce9f3f328e507c21ac54df5a694e60ba239407f0659a34329a6b401b2c69ffe8d5c5d40c6d0f1db432f7cdb3b2574e9bdef9ef4f8f42bef837bd3af843e56fe9433cb5717ddc7911bf2f0bcf007e957de87a914fe38721f83384cd51bf22085a14a9893e37d9793b9cae56fd47922cd61a955805c17fd204b988ca2ab2377da7091dadf3159369ef66caa5d3ef552d6f2f405cc6f03fc3e0596de05343dcbe85bf4a3549e04aefc0b2b054a160b0a94ac3c4357b3e7b5e98f343374255994daf051a8df33a2972cfa34a2f087e8bff7c2ef937d99ca70506f7fe4b65c71e95656189831f2025286dab0071e42cf47d1d5910a48164a9f7e7e37a45cf429ff0a48162accc9297dfe1cd37f49e8f9f367ca431c2fb4e1111cd2e7e9498d42cd165c6753d1458ab23fa2be148ef715902c2fccd59b39973ebf87a6ffecae9f0d1098fb7efd70bcd7d183c61079b94863c399992d65b86fcf4819faa21eed7b9c8921bff7327c7f7af9e1889cf698adae061a6747f7a38ce1e4dc144ecadf7b202cb97978988a41f4def310bd17fa38e2ef4352d17bc88345d3186cc1ba315d89581eff07fe38fdf719fc7164fb1fdee7ef40eca56240a1bc478536e42112853594347bbf853c4ea1a4313794617e1ba7db04a6ea4bd6f7253055c39c9c95cfd19f237aef73543e67f439dfe7972cd1671d1f380255c0e912d1150a4ad60894ac1e2420d84743c8331ec8752165075a5b47769fee2ec2305c7d174e083d4e1a6d4af1d5e8e9cf29aefa9efe84514a3b4957303aa2df4d7d6ff4df733ff34b5f8d4ab0bb1fc104e4eec2e9e282d0e384cdd08523e6e81c8130ee813988de071096e82b38035d49c7d9a217897e8258e4fe2211ae9fe7c3e40042d3d05b1c0e2d847133865391436b3bb9241541685b479020361539f0b047b9a4526c0424b6b36c078037b4e131fe368e427991254ceec1e471f739a7ad4e1305a57121db50076b40d1b8487d50bd16b12f58c2ce629b47279d52dc415798be8cc91668d942838c002630a1094d90ac3a591dc8d5de0d7398eba1398cba66d5a7dabbe10df7d01c465db36aef76b71e9ac3a8abda6b6f0fcd61d556db43abb4f6f866849eefee524a3cc563eaa57d81aee3190941d7f952a52773bfbdf53a1e3ef0df07c202c202c2929ad6a40a1a1749682207dce2419e4de164c914acd3d023ee6981141ce4c30bc440fd0f7a44893347e851b494e64312aec7872db298a226b4d1a638a3a5e333c519328880ab76c8c090006d3d9ccf144e78ea145eec30a1528392e0b9603da0a14407e303eb0168065f0fec872862b0d2c4a7a5d5e445eb02462b42ec07ec349f3901947d9ce8e227c8c7336a01c109176d01e1891d782d20f480c70c6ecf2f74f6d9c35575cfd7c090d3962bd4ac03ae92405dec6c297b3a6c893dce56501755ec710aa1ceb24368cf9eea29223890c55840581404c2cade3304182bd33a832056b64ba8b1f28505a1b13c88942056c61e052713319f162b735c7cc1c3ca5d0d76e061e5cc458d953d257a00fbd610c24ce451b0004b28e287359370832e5aacac3d0a4e1acc5e2c3985114562ac79844f0f6b22d1c4c59a44d2e0614d1b04b958b30650d05873073b3be0616594f4220739d28b1ce4cc244028e169118204175ac0582c984c2841c2c7658a248ae0a187c582599305e16563cfd40b291e4f4316c82a8e48d2c392cec258a2e05ce206422ed6d4e2498c956f78149c4620f961e5143c0ada1fd462acfcde839d347c401dcec022488fd144c6ca383c0ab260ce8830c402592081623f0862491c383a0e6f17070e1c2a8092c5029f360cd79d1d881dc646be04d022488b0fc25c17002fe61357b0f6e75afbe375335bd2b8b670ec7ab63f0d471106c7d3d5d3184fdf6b41972af47dd277636fbda32f0240f6dc1b58e9eade154d69c5f846134db0bca06cb4b8a46ca05e6e9c5230d507b9cea783c1ce9614bb6030df7db8aec77b695f56096bc4fa582356893ded8ff5a99dabdbb1466a685f1e88430546ab30ebb601c0e3d12a2554f54da5f4a892caa3700987a3ed59e1d3b67351df97727b6e7f63bcce0a8e56f45caedc0a800072c80c4000df8d0d03f04500c89e28edabae73a17e65b5cfd40274ae285bd2b6c434dbbabc8fe2c2b40dce6417f6016c974f7d43b521b36f1039f605b58b01d87688b62e0bec1ac66c0ec406f003cc5af724000b5dec90a1c6f591c18ef48c32a2c483a32cb4548264480912275b2a41b2648f580912a02d952049b2c7ba1d89125b654b254878f674599d50052e191415c524c320f7745aeddd30d765ef13a9aca8ac3809c2281757be39e70a698a7c0609e562e9abb5964c53f090e9643a3111928f706239b15cd817c4826241d92a4453a05a502df70adce2d2e2c2440b1ffbc2a8944bca45854c6142633263d244a33ccff35233282b56d069e9e14207282b36a52be84819aa04ed3fbe046dfa6328dbf45f825e64377a6e10095bb2868513d224d8a6ffb2579839fd9616e811ef251acf171b10818a5d7a7870eb1683dae508df43682ac4e52abbc36389b8ea657dde5a2158d69436cdaafa946553981a74b374524a69bd34b4d65af954524b8305032569add4d2ea78534aadb5d4ab556618dc8c4169fd49c34a6fc6d0c0180c18e3668c9b3166bd19e39691bd05ab7578b51d08c35e088471b716c2d8700b61606e86723ee5ba16c2e8b61648980b34aeebe39796de1d2efafc24707ffb6e03bd01a18e99195aef0d3a8728566b17a061feedad365060a036ca015779594a2e66c301cc79dc76b197710ff8de4b45195fa45106138a84eeb6042a2308dbbd6544b1af0fac7befbd579495e18346193d2f96c103436342962a5226acb56a2983a19052cad0dda953a79452ea94d2eaee1eba53e92ea594a21ef47c3a47141152baa5c9b6943f3e72b6666548edbdf46c02f696cc3f4ea1a1598b32b4476f6d7721beb37d269930ba72a11111f34922092023d6d8e38cd170d8e30c72d7d9a3a489dc5d021942c4ce931d8e30997da1c61e270f19b23d4e2241302140a2e707426082060f8ab0d2d8234d135e7b94b0fcfb04562461051a6bb4c808c2d24ed8ee42904b6cd07476a52d11a51565c9ae8f318aae7c36db39fffd6eb20bb3ce9a190129b3630717f6a419ca3fd6f7d94c0d7de6e2c45ec3a10f0915a147981d3d8a1f8c141787f2833ee4b33dfacc6b4e73719e7650281faae29e93664f543881c8186273dcdbef867b578df5515fdfc6bbeaf3136830d6f872378189bd6d5fbfb5ef85a9b103a052043dfa8cb6125bad561058abc59a5f414c574e731a137eb0e95757e9f86240b36744a7cdf6a4abc942f56c4ac202eb298368ea9da18928424eec200a480882460e44d22564c290eddf827b4031a1055098b8715c6b7d35c430cdd31663ccb6bf49a68c18c21550624328418455cfd8b5aeec5a6bad59e7267a0c1fb6fb971aa0837000922240818c1614914614ccc8c94efa6e5c856a438b3dc220608f3974b8b0455d42132bc0a801184a8664300465d79fa14962d7306a1b488c2b767d95ef262808199d1ec01270b0fd4758ccdf6349c71e6dec5a732c608f3a9ea8b16b7dac6db0eba38498b0ebbf11a0d8f5c523940065d7177d3795a6d65a3130c41665a4b1e3f3e384d788704faeefbba9f5c9142e6c7fef8a2736b0817318e34e5557a7e0301640491062d7af157f41060076fd2dc80bf495415f18b1fd6db74497661aaa70d72ec707919c65b1fd7d56eb0cb5d6cf033028630856541104cf0c58350abbd6d7516bad4fec9910aa9a3a6dfc80d21a858d08b144b8b69f1f2a4fd05502032a048fed62063ee4319216839ac7c83d6a141012a250c410b219901740fcb085a8ed215aa82127c4f6a8bf536306b5f9bd170cadb22550131e2128e14b682f49054267589026574cd1240954a7891850f4dd12a849cd0951a0d0c512519cb0c79f81c2944a82a06dcaf2cf81b2e1f96b28ecb1b4832061c896404810323fc796404798655fe197dcfe255f57c22496e999bf68cc5c61198e5c59988cae76b888da1b87b6b11317f12cc4321737b0c6de82ecedfda58cae72eb734b0643125a53687f7943ec8d78888b02a6b6972fbac24d64ccfc2f76187b7e943d7f7418cb67cf09c3b21fb5f530756f6eb92a678ef6fcece32a287c355fae2cc4492de6b1c6cfaf3d75b0463dff6e6e04c7a74792199aa0c189f9c48c4265b2e7cfd1feb0e7cf7183b2e7cf111729226bfcbd0c267b4e293128528a8e3dca588e909d27ec2e08cb700cbff6fc0d8aab681b6dcfb73fdc210bb33d9589ab64350ab2661b42a7a48bf8e7ab26c41c6727841e27ec0959e3bea5eecbbdbdd0be200ae584acb1a008e4932d024a04160e6bb5b687a9ede5dec087f92664cd1541a5b2f9d8c9a480b7360d45704570c3d4dc379442fbfef637148114dadb6f4f43a16d4129b42b984374514ccde8f014cda451a56c1ae0e2c4322cdb93e6a0d2944cc399459692fefe1c1f7c4e234c2c444e0cd1e0aa19a6b08b3e021a640d8bf6d9f3b57d469aa1718871b1e90c0c0790cfc596596c6f610301a4b60628a3ed3f275090119c6c9f19270cc80868d84afd5d0a7919db9d2043b9927201db95dc973530c87d034acad457a1abd446e7f6dc7374facff671ceb68f338899e281533c4a4037fd94a43158bbb00f329deeb4dad117053d62cf45eebb99f3dddddd7dba534a479d09dce7bc41249e5a4f207b6e2c72e60cbd0a51119ace39a5acf9be9beeafa8083d3f08482b8ad8de7b6afe256dfbdcfbef2d672afa5ecce1638b9e6e5198e39380ef2fcbaf024064e083431943547184085eb044a00e47e058b7e83f702cc1fede7e379f8f9deabe0b75ccccc0408b39b8a75d0a244077fe1c3e36f7f445d1c31c2e52710b676ec4999992286efa2e521ba168de2274825ad6fa8f6badb55ea11e88f05ae484fe5d434a6d0f154563705ee9381d4360363b502e940e4c3683d164ad85559e0524bde9a44bcea1e86aeab81ef536138642718f3117fee0388c611d86c170f486c158dba6eac72b9d674e85f45dce96cb59a523ad642a533160bc323f1cceb9159006878d3339dcaf7c07fe58f9eeb17fa918f2ab3c8ffc2a3eb8cf7f431e2a4f0a7dacbc8acacbef06732b2ad9c68e1e34a4206846b3a930eb9e11e8a5f4e529a537688adaa02dd485b2dc00f1bf80dcdb004f9f024ddf02a6aa0b8b68e43740c9a294527a29a594522a03fe2efc919ffbee478735a5b452ca72293500bd94e53149c6dea6cb9625ccc9c17ffa1cee4d5d97c39477efe3c8f63e4e780b7970a6b01ec1d15fc22b60aaaa803acca914a4d9d18306fa1f38a29852ca02c47a3e9225cca87dd3e1dbbd8f431fa2bf3ef46f9bdfcd631c7e19567e7b1c6edbdfebf8ba8a578f4665b4226a7161419d482517f07e0b38c27feabe047e4f02bdb771d27407b8ab803939dcdfcfc13ffa540d71b66d5b0953cefd1dfdf65be803ff4805942cd1b6e9982d6c7f9fc7f657873cee8f421fa250e2e47cefe5e71e6f7fffe2cedbb8fc5dea9f10768ea48ca66cfaa3292e3cae51ce4c3f8ab19c02f1bb80dbb780dd7b6f02f39340d19fc0cfc64d2717cf0e1a4347b5116d44db74621774780cfd5df70d758f33dc03d99e07deb6e7421f231fa5c740a6dc7018ebf0732fc3f65df843e5b7e7c26dfb1ffa319eb129657580940f90a135dc2165283d615d5ad954462498bb768fb5be6198f250eb4ebf0e7d7015c4217dc6e0e937d0f425507f41740cf47164cdb6e9a780ae549ebe1c65c57f7a1ef84ffaf17bc8637b53e843e537c9ca223c595f0a47bfcacb2fa77b9cc3fdb63202256b037102b7feb8420e9e7d7f05d70a3c2bcc56101200ec62900bd047d6e0bfadeaf3b225cc0d4150809eef899c2d0f7a84b142b4943159c28c2ac036e5f0f779eede0307af1cd7c31cfe1e4fdb0307af4ddcf0e773a94cfb7c62fe4c5b3fb9bde6135a36b5acde25f7755ff7755fd5a576976cfad3de1f57d50b85ab60377697b80a073171951357e13bbb42a9595d2e5eeef3b19fec6770d5f6ce41a1ebbb0d6be8603d34205b5af02ecf628b73f7d9ce7ed6765a965d7a72ce420ecad21eb5ec087f9f777d92ff7928ba4f3bd14e4c43b2c67d6b195d85585faefa7cdf4fd0eea0bbb73ee81e7e4333d2ec1c9b3fa3dec2177c6f76cae66c4299527c65ea99405bd53f3ac7b44ee22adf22c7b2ec0a1de3e122c5d27350cb8ea0e7d7cdda7baf126d7548a0a4a10e8f8a36fd1e74a55f9ff771da887e65999bc6d8f4eb6784ceb5dafcc9408f6dc66df56a6bbdd7d3f184b8483fc76be5da07c3b6ab4b467bae10b2634e93d0d8439c1ce86ff4f6986b7a8a57af6111532d52ba7edd735ccc53e6877b441726f40b222474e9493f762f529892e1f4c364f2a1ab140f52294cc950fac122e5f9f5207de9e5278329cca730f3d09809f6f8d8fb03f35ccb52b2943ce50776cfb82f00947e7e0ea22b92699673bcd69e5ecbc5a9639a619e6c32994ae0f3bc8bc600a185b6756b6b92ccd18c44d143859021d8aa65ae9a45a8e37dd50d9bb6ec7898eeeef7873c117beb1c4d522af82e9edfe971d1f4855cdd97dcf6c50113ddbbbe9bdfb6cb6927d1e3bb9ee7e4b9ccaa93008697eda1e7cd2f06d24b1a33eddf9c635fba5801fa5580f4d2d269adb56e4334a280145e5c73715a12c0206e18c45d3f93908372aab8c8ffe4f99cfeb95ca1ebc33002d945485f434f88694657a4909a8644a22ca3f4e75dd4f5e3227d95ef2643e1a2a85f281dc54f6cb4e9ebd8123ae3a246a149184ad4ef4f2333cd1f18295c3584817d3d7ae62a994d3f0bf9ca24648202c54ba4f736e9e6e81ca331babaaffb8a91bef4b214ce1f0f7f8c58f0be5cc4efba44f858036ad777710b95e80f1e8db896896a297d37b883c0ca8f6010bd8afeeeefcf0f069ddfcb5fddd393002ba79b8f6544edef05198efeb506d476d3ccc5cf477ba58771dfc084fd48302419b9d672d500367d2fc757a619f6846cfad9a9e79a51156f88ac994ff2381da834b1678b147b4ea9c4349d58be1cb8b8502da8961697ec42292d616c03bb0c1da1eb8f0f1a72c8a6a30a44a8d0b355786534fce9cf1f2a450f7f6c986bec113b4fca4b81a36d7f6ef13bef7255aa9381916bfef367d5e3797ef642303059c3c209699e3da2be1e38bc2d6de3c543a25d06bdf80d3b033ddfdd1d4cd51b96067a3ea9be3ca2aba631a8a03d6d0a7fffbbd113078eef465b6fe24fca8e080984acdf0b5b38d20c8e298ca87d710f7b34816396d5607d6e3cbc3ef7055e232eca40dfebf39e6bc763a887ffd5409b6674650a4d421e437f34cd42d34ce6fe3bbe3285a621ff216eaa11d9d434ab811eefabf4a7a72c2ce0bb68cc29fcd045da8196f7e5e5705f3e1e03c1d0888bf4c350e7c06be59aee81e762a925a1bb00ec2c1ba54ccb96e86aab4df929c7559b8e10d5c6731a7222e2aa54adf8a78707a06baf0572f01ea1472dd343baa665b5d65c2527142ec25c74e981ac27fc8c681cdf4dae4919998bd4c9a646b40adecb45fa2a7c37da88f7130480287e37dec77c6fe3390001f86ebecf0318c07723fa5caba7e408b42d953889ed036ca9e4084f6c1f1dafe3bb11bddd4c3513cd34943bade23cd86bed66376bf3d6e59cb79cbbcd5e693deec39cf5b80f8fdee33e3c66d95883f5d9be1b1f895860e1bba92cf959a5fa6eeaaf36fb7d1679f383a17b0f471726f45320cfa038d153051e59e33d4dc1ce9fef7b61db5e68757ea8fb73fed87ff3b7f739f0e7470522f2b87de73f7f541c4f7115e541ecd43ae9eca8d078f083fdbe5c7593d85d73d5a8655b14851eb5acd68dfbfbde77c37df7d50b56173f1c681a0b033dbff4a64fbdf0b2eb26bdfd77d195c4ef0a51dbc525655255c266ee8bae50f885694ce9ff4563e8f73c0f8d51f1fcfafd9ef7f99e77bdeb779ee789fceb777ec8f33c917fcdef5ddd6f600da3efa6befe5c776026d5cc28a6922c3615b5ecbb81ce356a9be8d134dbd904a57befe96b008c4dbbed3fe5ca349331f4fd4d4fe4689a39f7b5bce0256b4a279f531297ac61e184745e41d0dedef270b2eed7ef0dedd4721536d15ca4a6d9679a9984864c524cb50f340999a0b8484d432629a69a69a683ae5f83f5d12fede322ad1a4c55fdf21aef53428f9987ae52329c7ea4fcf492450a33cf4cc940fa91f2b008ea496f7ad24b562904c2f270cc3da08986024d3367c173793c7bbefd77a5eacfd6aea103260edbc3e7d9738b7ad0ffaed7186b8d427d154d2cdef7d22bd7552fb30d4f88aba46b4f6f670b41817ae62cd06701258d3181b44ddfca8a68171729aeb22bfda2a6195d99be4e314999959e149aea2703e94fa16976841ea58cb6470dc58506bae8175d6999762d7b69590c96650a4d331b68fbe3bb5e353d83abeafb3f118fa1ab77790c7d273e4c5e4b7a8078a048b2e97fcf7e1e13940a9a865ca47f01a9327da101a9320999665286fe94e931d7eecb3fe5b9364b2dbc6c71cbb7343dc1540d7776c19372657ab9865c99423da331f44b9a874d43ef072d9332f4bf24f47dc99aaea7abd198f92dacb3277525c0fb8878130a8fb1a1cbd0bbd0e8aa54a331340352d5e3ba76097419ca361f91075dc00cd47ad4a79e6b9bba0cf1406f3f9a6653b4cc5554881eb54ccb5ca42eae26f4a8659b8ed67547d36cd4535cc21853ad4d5fcb5c659dcc5c350445d36aafa7b80ab7725484b80aabb854765486b82a55c3ef79222e823fe47778def5c1b06d1578a40c7d971de8b947d3ccb5299ee9dcd7a69f1530b70072c80c8000330530c00174b0a05ad1c0e0404058d3820b09005f010bb0d9d55ecc75d9fbfc4db34d3f75af69661262b2e99b865c85daf44f2e570df1558d098aab241014966cea9a726a89b1c7938e0724050a7b3ced98689bfeb5d5b5e32adadab4aa00d33e95886509c3835bebee61516e4cb5ab6cb8b82ca1472cdbf37109e6ce341b86d845287b3a199bd5b13eb2a6745b37879bc91a96bd9216084b843d624bfbd281c30e2665a814af158e20c2fa0df6a7850aeda59e526d44b39f612d4a84b14bb5dcf29232f4514ad0a5daa63fa28d6a1aa6814a3db286851b9232f47d5c5a48b2841957b8b1795bd8b9fc86d86efad58736d1b9443e68628fa31dd7a6af03910f58684648b09d4ddf82a4162ab4dbd8396c01d201580728490081041f4481049ac3163bc81e4c2de68c684b2a82e4ec51ff1231b034b75e9daf3da25c12c0b92d036d7f6e796d85915cb0276ec05e68b2e61434254b98f1ba84e86c29c5a63fb3a130e4ca2a913143b2667a7171e0c28c4d29ad6e82f9f2861b5ab7e10d938767484faca545648d9ea1243fb025af211a14293b3238c1d4803284ac2e568ad236bc54ab0b91eb4b9871d264add65677d771800a7bb65c4c01cecc9e52d63053021f2ed29981ec13cd9e9ca0c7390be27eceb68cbf9bed6ef94486f69fbf657cb14b15dada5313f4b7d5fb28b0f37191067a94b4a9835ccd50d18f5eca2f7325c89975ea2063e897c063e88fc2711ad9f445e128b9f8c27126b1e97b610ec739834d635c384e21367d1c4e17d870e654700453b474f12b1a7ad650fb4b2023409172c9c25f12e537731a524a29a5cc5f11b40452038ac78171d5f6dbd36cbfd5df5ed2ed6e39f6a6636f33c86dfb6d9bfba5ccf6df123d5fd2276084f1b2e666dac728972bf4cb6a341c31a59452ea23898bb6a6031963bf899614dbbe15ae2131b47d394ed97dafd56a356c37fb7714e7cb553a77ead4b6dd6ca8f5904e84ee1de1a0c13df788b91fb284c9e1a22dc0b608b0d28a6d63442963bffe0c34d4d081d9b252360e8f2011639448571c08438c226ee10c3397912c61f267eb909e977e60ce11fa3b3c4b3a0bf7737d61eed9a2c1fc1daeda41dfc6c5fb16dc9144d37b7738b8c345ee071ac8967b9477fbfb0dd8be9bed8b0090716e8f853d3b15f67cd9d324573634a6c6e74f1bba9a42e478e128c160619433192953810bb71d29737fb65cbcbab5922cd4cc85d9f77e86624ff07ebd2f3ffa132664dafc6131a73b8c8bb616e9eefbe76b3f0b006175df0d61de45fb38aee2c164db1f8115dab6b6ad8dabe685b9bc1f838cb1df64db2f5e75431c29639768ffd94263f6184bafc1451fbafa808ca91fe567c694b0045de5385d3e186b8d42bdcf16679031f3a74bd65c1dd0b1eb7340e8fad6ced96684a49b56155d2bae344ddf7f9c19ebcfa8f1daf571aa4cce7c8a0f8bd1175a02a9c1e358789452bab2a961119d67511d33355ddfa601ae92301fd8a62cc9c4be8b944507ed3f3ead2eb139548dd257df27434f9ae083115c2aa101850a0439a3820c2562f82056051076d0c11323dc931d2071efbdf73e91713a65f4609f7cb1f190c69320ea93218618ffc9f689b147e9040d599e41c38a8db70442430a3cc47f24472cc5f183c02442963031d0a37d4917de0e9332d4c1517dd56a8d58d946b3495c16c8c66c907562a7d3911d62898c7c5224e4a440f8aa7aeeaf93a7bbbbbb4bea945277973244f06f5199b64a2ada42ea7403b9d385907465518f9ba0b5f84f3333b383c6b84d0f9c59c3f3da6aad194aac2db9b8861952ecf9da0c1f686e8f2533929881831ba0b8e07098657b83ae1432284268044f4acd4099b1b3f5964066e43421bbb06b6a9a60916d5a6b6dd699dd160df3b6b6c3c07d91bb31e6425bc3f86a3d038daeb699d5a13294d9b5cdc02231c3d102b155160929da1e990568da2f9a55f086176e3859a8e777448f9ccc45b2edbf8b745f84e39af807c3dcfec1c0c9421be61ab30bb920ea31d01566738ed8dfe1599ded0142aa44432ad11852f49762fb7341fe5c105d91485c10890b227141433e4616f3475194ed1cedb4adb5d6feb0c7118c1445c6f8ffc328290a254529b5e408b6b970853d92a26c2fb9b6eb6c771629884a5290fc6cb829929f0765e51f1d16660db920b0d4f315c19a2fc31ff2a7fc19a6eaaca2fde7c0d0f3112063fca518b282e6d347cf66a0ab943f0d7495aa189420cd764ab3e7cb3f4202d5806495f4e7dc214b982c3921f4dc367455b7fba3e8f76ddcdef76f0273cb1be270f56dea566fbd3fe3a2947f2b1d234b98af095d1f63b0d6d6b575c2a8f45705c24b5c9031f36513bfc345659fae2cd6f6f3cd8c8b4fb36bad6f6159c258cba23ebdfa7c80dcb986997d4310d8307ff43f01dd453a0ecc817b1f4058dc77e00ab8cf1e8e987adc73af03101617ea90df0b431be6fb0471f61672610fdc771cf7ddd4817b1db8d741863a70218ac6d44bdd85fdf7274b982cebcbaae59744d777156409936507b34107b3b6be95528698031dcf28b4e731f3dd55be7766b22968779e9e173bfba4d2aba8c54a2aca18da14e4f6fc6e505ce895f47ac57c3d6d20a5bfa49bed5eaafc71c62e8654f460da3fd34df77ddf1c88b10d3ad8fc2c0fc697da21d6e522b53d1448571ebab22fdbe362123d5a1feb93dfdf4eabf33fb2a6be5d6522dbbeec0c568f995fc16d0a140a358a7962092d4e7982c80894829f10325ff462746704c19affa5e045a6a990036bb5e67b378ac0719151596c4ec0e6772c57542776309f3b016d4e14c12626549c78c19eaf8960cddf4a4a746900c19a7f730c569eccb7dd0f98c9fc4abf2ae6533783e3c17c9f628c6260046bfeac0125fec8bb67133eac246cce5545f5e0889e2f5b5286c2f0b26908844e1e1f920fc987e443f221f9907c483e241f920fc987e4ab7db5aff645e18bc267c4524a29a5d405172da59132167b0fd381363cc63e076a31c7bdf75e4bef0d5116c8454b690d1dccc25cb4166661d6daa00a849c3f235aca992ca594f281cc4902af010cb47f6bc78dd8741524482a70686dbb471c33578d37623fae1a31ad2589ab68105749a03596ec95b3461c525aa08040113886367d1c339ab137deb8e1a55793518f2be9788ce09ae17823e893697f51cea8abe36962e390d19897282f342903bbdfc41e6fc4268803eff146ec8237623486e298e1f842aeb8a78f63266b260e337044d91447189b72210e8c425d1c33d7ab675311888e07c7acf4125d5226073ddec031db747e8b8f9489dd88dd58e22a097446cfa67f23c855a74dff462d851c5fd99e1b4c709082637643e8c6d0ec0c1eecf1062de80c267bbc31e5866ce298b96a6c81e11872d5d8e28343c85534c8a638ec110794161f59e34f455a869225cc58809e2d67aeb5d65aabac95564a2ba514d7acba1c763c34e6bee670adb5e6e8d9f7472fc790c9712a2a5be62042c6dc1c3cdf127a7c69bdb45e72fe4587aebabfffe27ad9f155fefb2f435cf532047ce9c0179d971e1789b878bf2ddad2552f3a2ecafa363ef2f0c5e5e2fdd64b8e8b379cb9180ab97829a5600d1d2c1c0a679f0e74380b855670d56a5369dfbe55530fb43a34c655af14fb5ad7be37f6b66206278528b62f0f5d91823ce6fed5929282f6fd11dfcfdbb862c6be2826a420fc234b1afbfe06823e52e6beb498ecfb1cf8d272f17e0b15ba0a002665eeb700e997d60a2eee6762b2c69f0bc7aa831ef61dc3d9be33312913a3d0a8548d956645ed18d1000080009314000028140c080462e168389485c13c7714800a7f9e467c5a9b8ac3208761945206194308210411010000189999510a00f47ed792c26d6b419839715df8d19f6215a843eade5c69a02fe400785cd66005a78c4dcdbe0e85af23168717e19726d560d983e7bc56f800118805e06ceb807072d06035c3879e0f7857412461c3af0ff29693ef15bc59fa4a47e4f0124ae788a0df9181bcb516e4c4c82586ef54ee243380e982ce641eeada0760f45fdab1464ff3d8b7cace78f01604850d57b8aff1366b1669670d09166c126b87ca72b86da1a928527c9e37c7c042ea5dd276c7d7604bfd0275225653e927ad0f8606f413b5c99d4630ad453910d7761aa384cda40e3b0f83aec6273d59796f98e12dcebff03be00e806a1642873c86ebfa5fff5e7bada0de0a3ee190e7f48f35197f85569ab4f17248042be705b53969231610119bd2c11bd04fe578a03d8b2ad9bc51c920846bda1e779d4bcb3fb7534a2ee5e131b5ed06e83459ab3a010b3cf6c815962452915bbb31b72883c0948f53626597ba715596295f19f49a27fb99e5b410b194d354fb9e42865e86be9e7f5363ab1a4a1280342eef72a573892ba6e892d08d2cf5bd10661945160d016554df462f922b0a7b795616976058d34cf01e6316c60981ef787e49c7227010bb77cee4f2866ae5d913a541da88021685271dfe593cff3d85b31feb7bef258c2c1f96495480d2542d5efb22ff847f0012f55f2541292baf73562e079c249c9dc48f6edd320e007d7ba902ed7ed38fdc763caf1377d05734a5e3c3efbb1afe72c31b15a9cf68dabbc987bc12856dadd393e5690fa9bed1c5ddfc11ffb5b527bad4c15a48b54fb74b066a439c971686ca200e88aeb8530238f06ba360fe2e41d32c61d8ecce0e410038c638d2459c224b510e4e53b36588518c0accaeb60c8633660c4c327ba7aa367860a88601824abf74138c7b9420d4dc7aee61d37b4b994a959c1c3b2215b8739030c8f9e94a70d8b852df89223ea21f0e73d2111e53fa4f06d9936c9c2bba223f86e1eebfd08ad5824b294592e000f913e1b40f096e6a60b6446229d5f6f39accd67f5e40e155615c85b9ebea63466cf6fe0c55fff789be9054e9bae9fcf8661f36a519d26f44ac29aaebc0b512f9c87a06d048b6be70c0921d19f183c1085978e0bc8e8d36630d6e4905ecd88f4463afca1a13c96aee584d4dce37eb3dbac5fe93d7a1ea3ee15b902c2c51a0263051d16602ecd591e126f38752c48314ee6df7a988ddff73e847f98db7d2193516e12b771ea435f8e8c14b6d1bbe133ee39803504c906eaf601022242047c0ae5ea75e250bc75ab5cf342d3332cdd347002eb13c02ce2a9918d42d72bcb3140d1c4fcef60a10bad132a137b64b341e005fded82ff3c68b02902f85c70fff9b3e5b9d02ff310d88c22cd00a4ea481844499d0bbe6345d19431e9e6386af5bd4ed3570f5e6a6a4f54ddebf9ca9eba17c8014470914237302d702f6ed33644bc5fad0b0b37aa644d890bef748b9adb1baa3ffa274958d23053d5b37d30fdd3f66fc718166472534fdd6efdff33d8b7e9059c1295313026f0d46e3378cd7320289eabdf57dc0c58c5182db6b5e9bf7c268516f08836cc6424e2c05f71a81ba2e68d12f645ffb11b27b7a601ba1b447e306a55ddd1d5d39df49602de884f927953e76c423ba0756d8ee811017b2d181f7c07eb7e9769b9a02d07b778efabf71eccc3b8dec17875d0b0d87cc72004ed496230a61f23613a7b130914f01a40b6e64cab4efb4d4d6e042916ed29cbd44e6bd62b7f7b7fd52799de1fffd24d210eee65820687cb68285e1b92358b57366e81da3bac507586ae3d4746b17c94a5d4adfe952849249e8b42254910d0af5abab668e28133c2b6a37448b5d95f9d4a1090a7885b84a9bad6a53fcd08dae468b9c8ec54dd2b70ec34a1080082607350b1b5ee30eacf212fd2182951887b9136fd7999a59743e059714768eb63c15650adcbfd10130c3cf73513610d48606e8510ef3539684676e24d129e41d1ca42447a95c2be8deceaa59e2f38c8308c472fa20b383774ab83853dab8864bb3a676a5684fa14d2c80e52c26a5585df11b4d32b0b1fac955c1d01de6d45dfcc41b045b8b716182484d809944f3c040ae2c4d4da87e8075127483a77df6076dd1cb15d8fba25c0e9b471bf77fab627c1373b9352bf0750884731bc9795e2b09a4288c092111dc6a382a176ffc8378da373d58e76a09eb3fd9cba73deb98dece83b06cbde8aa1c09e66cafcacfb1e48ef47ab30019a593f651f8bc29067876638c03b65643b92fb18e5224e2a77c568e03c774b09782d40f4bb6c6ebdf2525bd76f8c0905301ca9dfa50d1936da6a326782a903d2abdc76161a9771789130472cc758cedf58ca7024e6d5cd8d8146b802c33ce63436e57115c499e0a64adfa698a120546059e3df861147a2013e51804e73587159b604f35daf4cb6e5e971b799efdcde3a742ae5ea0c458fc2c9ba7a036e6f6005689fc743547cc2b2e2bcced6b7ea7e35498986068d610df39612b228f7b7e901023006fe2e3f9fe7d75cd1d75c3b4d22316f57e2a7bdf77ba5f9486903a3aef515b33b2db10805f2e1436a1ac407a8b85c3b3756992b449a13e170e007dc93ad8e9212c9ad986f6765a0e1b9ef32b80ff208b98a31cd09fe403903f0010d2d06cb57680fa814c8b456667256e220113299dc203466b4b0230505a855edeee87040e8b22258aa3780ac3e010786a512adee0d990c6f06bf59a05110327be3054fb89013deec55cd1e90157e97ece3e2a2e88d5d7a8457ed3cccea16000c1c36454e5b2392c8d301db9444b3ea043d8c05b91d35aaab064491f335311dc0b06177ecf22c2a38b3961154709144de3430174cae51b0d713e3d8822fc5453d3533a586d2fdff6da03bcb35ca7a4257bf16b892f80084b7f5d3fda0d675f0190ea55a199b12e0e3d5bf19c94790aa7a3c19624b20a820897163524d639746e472ec7d99ab76b0b5938fa22e67104094e3ff30af3347dd87902fc1b3a6d6fc70e90969bea651c0e7dd1308edb3de6ce51e7e61673608a4359531b69255e66ebd66dd7ed37683e6a586dc98f9ad8079e57e4f3ac7dfcd20c9963a10dd02342c84e46f71389971a2fb596385a7cd15dbb081b02c7e96e1c9677fac128f7c3787f75fda7f13ce5dc21f7cc228f0c9f0e455b79fa0aa79843066417dcf89c05377bf9c043259157019c7066971a6d4c78193b8d32a012450b284d0307087b16b0471c1eb0c6ed900dbe2a35e43e8bc455a59e89f068ca9632ba8fb9911c5fb5ce9a787b0a5045332095abb1134277bf2064276bf3bfbfe2314ee4eb92b5896256bd28d460e0786bf64d5ed76bc0df12bd91ac994c217c3e0fabc098e4369eac636b3a80af439e4c419b7a7cd4691913c2036c4d416a2a6d5daa9b41fd373a18cb10e272ea594a43d070042faa4caca9b75f39171a64aa39a59cdb11e09a8f8785929ac0158492160ac9293d51195cea68cfce548e52b9c64334c4280bfac59d984d74468ac736a152ca66257881f327a50e114d8846dccadfaa82b49e6ab83bae2ad063e88ff9271237d9ac82337abfd24ef661b2c25581ae2b010f246b72400df2508ed338a49ce4e941582bce9d80bb1e7ede6f5e959be2cc1a60c58e603d60018be230c608c1e0bb9364bf972b7a39a3f512c345f786db2b03011533a0e588866c9af3e9d2c93c26bfef9f3ec9bc6f387f4434906205214801dc4e11e3ef6842efb850963a63c968036b617d9bee9e00d3254f1ba0c2211e4e63e2b01d4d9852cd24a468c6af90ccf08cbc063d2abcaf5534dca1d6b8de93d04d5666df889ad50c4a033ab0ba1a4b90f72b21e729061ca668131af754eb2803b27c6f9a1b7a1cf4661592e89307113228c5fc818fef9c53e61dd39b45dc8814c8a5b8242e62452c12df8e07dfc632688f57a6cb5f61172ffcfc3220cce5013167f508a75b86355f683a26ccb377c654adeb66a5d378d0c648c947239e22876f7321d2f436d24d6e56bc6faf31eeab49a355f1cd4c4bded12d480dfc1277d43c80fd2db4e102c6a946c74b31c6f37c1590044ce9b48424681e2d054811c165a55776610ff2f0fccf4b339f8378571350741d494fa5102ce524870b13a2482ebb2d10b03963f42fec4f84eab1b66f07a59ef0421760e4e1a0e9b34b58f0eee72411afbc5c993945bbcc0163ab4c96e9e24798b4c4f1e4e5e81d78c3ffc3c9ba125ed76573bbd74051587eefaa770c9d14aff5fe5883ef160d252605f80d1a94a43f5c0c4ad8b8e61a9b3b3e9340cfb33e79d38c281165ade6914efe46f9879a082f58e67549585c9513baaa1d8668674c6fe858186a3fe9fe3cf9c64eab1c889c505080026622d6ea1e4b26c1d43036bb3ea4d85ff81e4e72937fd65288833335aee8a6380d4dea2a10ee091fabde5052711a79de94012339362f26ff901afd491d7abdd542e178ab2e0b660d570bf90829207790eea213760964639bdb6e8764d8892b72a789497de139a7a4287d5a8e399cc20b1e16cb533218b7e5552e1bad59a963d8ff5dc00618db8963070d72d45174b0ab6b4372bb061bf6aa5b6ad7e1820059e512fee12545636464ad864dcd2e66ed9101e8f97304c81f16a8999025652158987064a00f21c21571d13c374fc9db52163c159f56c7f81df3a8a797400bfff7c647cfa2a77df75abf4d49a4018b69abeee1fe2831478002465b6daf03fa908794ecce55f92ba20603c44364df8c9242d6d11f0c99504bdfdf369dc01d884c1242d209607d5e0812d422914ef8fbaded303981e751a4bfdd41a3ad313a81194621ac5c8c391049647768c028e74269509fc518dc7ddb232b4780627a4e7bf323e4a8d8a6d2d4bba24e12f000dc3dfc9417da0e3477063c132f3427d921670268d0386d022e434329430a664d921c65e178606f29e59a5da0451c1afafe4cb0089e70cd223529a19cadbf6747a14c23cd79177e9d5d4a216ec96427ca89450c6bb11a9f97d0c39767793a87da13cc14e10f6a86313a43e71b16a644f02f3e907ca7d2516d32dac7ec13d03f87daa2051daa92b6d48d3e06f2575d9291b104ef5e8d799e9885a3f4e38b4d2bdafbf665709a9ae9c0bb68556e2a3241da2ae7cde0dcc382233c3b93a7f911eba262fcf87cbbcbfc8ce6be02da16ba5190527a2df4be24687aa4bbf91f7ef26df60b8f4c3f32eb14d54e3c082e277ea9a38dde6a9a6ca3a7b52e20873d4a11b77870a0337cb8d5c0ed74a2b05f5bcb9dbaa53bb8a2d1951e9440235bf65f67b576cf4a4ddda11883a327cd3d6a228b523780b17ad9b1e82d5c92b1d3854f945c5ec3e5513d8fc4eb031990eb7dd57c50256083fa160a64e5a8ae30ce3906b5c9d60be72ee7cc9dd453cd21052b268d74d62607467c1be1b1e4abf7bba60345ee3614efc059673e0ebc69e9d00b2c6937faeb87bdb21df12b37f89aeccfcaf491eb5b64d4e2847572082ace96fbda061242e2134bc4890ecfc23a80a7358bb2c80d4df4ab466e0e84a7f00d26efec59409b719842f25e71602f31ab14e62c413eaffd9d5afb5d17c5d5fd39425a9e787bd65a870d1af49af51b4c16f06130f876269afe973af75c8990433980710c6d61cb0d7879131e24a9f0c824ab02fef23b254f9c5e55518fcb9f53b74cc2d8ea76488a563a96c1e036ebfc3ecd3dff2bdf60efe564e1c12118e862e04a933bb4843962ff18f1caaa68ecb350b1f399f8316e0181f68b894d85b6f1a5c259104a64fe5fbe8e0cb9c212d3d20e1b9e0d57892cdae0218b88c393af83b66e2db3a689d59d3cc7bdd6eeb689272a63300ca56e19c63b75bef995961d0c6c6db0479cb25e06e02093a59329cb24180682c84a930ea8f4a6e37af91809c630b2ac72f4a033a58d7b6fb0a87eae1e2e722a5c36087c828ca5eb510cda820f35e3e409610738d773c5de338b059036549fbf25e7747814cd4ff7cd5d004c1c0854f5f2a11875b7c3d6acc8e288509dff5cbc8dfc61b886a742b6c8354c1217bda4075a9a299f5f764d3fc873d83795348d93f9ae3b28f92de725ecbcca8a2bb17af5ecb9bbc5c031edf0cbadca59e787f1af12a5f6e3a063ce305eaabeea43457a44131128b85174951003e14d981a8aa551e357ff305fe6c6a8e2e41813ed1b51763513a2048c5dbde0c0a9577c857edf9fe4cd0d8b360ef63db7391fad6913281c6d31d430a3dd9a17c26b03d0af0e83a114f3cc5aee28d9901269fdcf46444d1dfeb62d7a64a9b9c21b3bfdb8caf993a603f30ab18fbd155b1cda3265bd95b5785ae6d0d895305777551667713f2540c6aac9140c45e5892122ebfbfe0a37d4aa0132f659fa559032b09a20138ffa41bba44bc76a27744f6aa1098be13d01816afa37a7183392e1985fddb12b5045669b03b1540405aa6a053133f8da6b4a22b5be814b06d753124b902095876fc0a1f62a1ad599c8b132577e4214b536215bf2862ceb27bbb8a95806abaa4768d664db6737db386d5adeb53d5d2fdf18aedb6e990bb92bd38d7b566a7b3ebf217470e55f31777c4066687ff0f61bcffe5acf10afaae2e6d702306d96b5b8cb94cd76283d1acb889fb35d5e9707eae03591524148b6f3e26c204bb88bb88cad0dc581b495764168d838046fb586f97168885dd74b98561f303eda227ce3fccc60623ff6684d569b02901bce6063f9a3ac850bbe71d80331ba440b93b47eaa8b4543d43a3ecccfe6ba2d806093b7d8efbf56e1adc15e2ed39af65f356051badd27036531998864538ab9144df47752efedf99cb63f377a11ae76a2df79e41154e597f08fd990c38984c7c0417c8be3c8d641c5343e4658de7bf25dc35b5a0028185b094e5d2aea3e0e244c2edbf3cfc1185d0678c61a1d396a080594eb3d17d5e05b3ec3c5f4a2b6c2e3cdcce86944ce6a1ad225bdcbfee61c19bd3b353f825ec1c849e6c8badae93e2fe9e12f83948483707f90c1b9a7336f78f445a3bbe314779c483620b0579a45e28ba279b73553ae33f63f66272e0c4639326375eba00921559f9ba783854814fc2e93be2324341c056245295a83d78966d5e89efc14f823f1d5bbd57cea81cc6f95b0c85621ce7eba6249ada2a9fe8e216c2a6bb0b0b03010ccb53aaf8467befe48e2b12043841d224abc5b9885b61ed03fe9bbb5c2e99006e2abb2f308291a29ecb023b44e462868c90c2a381e40f85dd53c7213f3dc3c8c74a0c13eb03d7a200c037d60f1d03e75ee1a97dd487510eb1d38bd47fcb97ea80ba919191b3b34938de7cb38b440ef47b74f735c3c50153b97fdc872e2db9fad097c9fde49e60c6c006c43fbd7fe355d658ac84ea08ee4f09efda28ef470de9f704441d98d5407d12b82d96f53ed1d591c3ed6c64bb16a174e6ca3439a3cba57ac37058eda8d6efde15851cf0b4cd42fb14f4389dd09028280f0b1bb0f61eceb6c123769ea7d0fd4d26bc27e843331ca3a410c061c3f8ee315f129187fe68da947bd538f94342dcc8cacf84ca1bf161a816872d5a4daf5347553f8b6cb4f224178f922094c4262a9a3614b42ab164ad0525b72b219d8ba961bf5c0136e4739b1373d800185a475745eb0548864a4a2d0451255c25919040ae15855b875445f4e745e05bc8f436dc8369dae440ef0d5a161b3d6ee8983d532c822628522ef75bb7813dccca77714ab6fe500aae7a38dba6d55c359c027fb8841f4bef66d07204b13ddd38e76786440935e00d5a794fe6be1ead48e9727686f556cabc57d572f379885a63c5d820f605dcc308f049c4cd8d176c82c96c0509e60870a8b308ebeeb2f7d46607af017a58051c0b3cc2dbb4602a7031d399cc6ac84800b8576679a15281fcc259852adc73c25424eb5ecfeb05f014033258c4a3326b34971cd6f686ad0d917191439e2c2c7b479b01b8af12eb79ad33922d2b33990b524e689d84eb8a026255aab93b6a933731041e79cce89a93b7836335a4e213d2faec38a6bfc326f87f44b8f96e1555121842502977805f1ca92a142a64b43d9fef74f5c97aad88082313a433351255a90b5838486bde6cf029e5c5128613da4e0c5cc018d5e8c8d9e5893fa85bc364fb0149dd72ffc97abd8c35212a83e5442c8679596991e185aa536ad3a643b45b0079ed53e7b3599c2e7370e5de361623087e7de2a7734810b1d56b14d6a89a157e62ed82e373f62e340a2961754f9bea113c08ff8df14557443df340ae8c85e2c44c01c4cac31fc31cbc9a2608f01334148c0900d8ba59ebb8c065be09d56041e010e846b5507eb15446b7b4087baefdf79b493cb8dd3bdccd69de5690b49f949945b3b96a615682d582290c6581483667999c4b3bcccb1c9cfbfd95547130250b6a155a2f159b5b91784c611122898d503eff28595a8be7b6f4c7fb2fa528cf35652b2d0d7f4510295a0dafd069608804c286b67cb9a60422b9d03f112b5082a71b96c9e30d7f2b8de58dd8ad172efbd37ae2905520ebaa57e296dbbcd6815ab9d4c4e3eaf629e6bf8d8cec1b50769546285aa33cd8c3dadf0cf22ad07d9af156b9d84db277b2febcdbc150e57c5b5386f87dd69233e12d9eb0bb30c9bd761b0241de940272eaf90566dff2e064f3ed15852e76d150044bbcc0e1e302705004fbd200e91041f8fe7fa4aaebe868c7da6183a55645e291294573009c999cf29a9a5692fe7b84e43747ab364cbb269828f88618f3c3d9e6c9b588e9d9cf4391398ab10e40ddd8ed473a008c5c94145af8eec5b6b83b0821d8d43ce8bea532649878956e0b4b68bedf9cccf2f4f40f0e5e1e0aefff93779c2859d131cdbfca7b327dc5e56e0f713bc1e095b1820c734bc7ac2699f705e6eb4a524fba0dcd3c0a4b89c433cd28eb4a1187fab4c6faac151f6fcea569d777c516d34c3386e7a0d45f9179ca1690f0d568c359cbaa46337fbe06914d73944689b8286fca939f9b7a3e5e644a39cd9e9d4a19e8b3083bdb5b36844c3c7e10ea5f4364288ba99f57c41d4d6af9c7c265c078ea44c784f60a98116ad82b0c35e323ecce006c0f180912a8ed3243bc9a1dc48c9c823526e5134a17f1626a6593ef44ed198e3471eb6f1fee9127ced18bc4962f075432620a520aec25128bb2da98717e99a6bddf1debe66b91b9b9ac7785a14962ba04a897763a33a3ea10ad08e3be623de41f5c86d945232314f91a2d65f2ffd8c890f5396175b74b68f2bf9d7f191f93d33544c9f2f6309c962784b27d410dd47590b0299d5fb7e1fda5ce3847336e9d963678a54e7b52ed16ae4fd30fbf1008b1d52020cefa6594da76921680bbbb9768362681968225339ee78dc310d78cc9188750b7ca279597433bf7c7f0af19743b99d3133ab52214880f85fa589d5de7bb8a143c8ed800fc1aed37bd4d424bc2178eeb43e1bf10a119b5810d974b8bf43a45e1ec887445e6110b87d237a69a0e7f9e80668ec20e5a2edcdbecace30748a9cac4eb9ad433f571d8250fe6ade299748ac458929e3dacd686e56b8a5322ab7b672348623c092636201372f52409d7838d9c2560d038e136696b3336f5e869334cd612b4b5cb3b421a5f7cac52f651e298630b1d631b0e4a392d564c430474abdd4d36bb8f89122b162825a8800c93269d902edd69ac8de7fea31f047cac082617cf6c6a95adc15b5a8f9d398df215712591a6806990e3732752695e0ae23bdf3d620309e544b09c0023da378244a8fe056e3a951b29955d8e81c995791209a2bed8a386c9ab8593ed195d2d2bcba65a39f8d0a954f8198cd73e8fd7ddec2cdcfb5a779ae54cf8146067e1377bcc7ffd2ac1c0ede4839a4b262b0e981170ed63ed426341a5370b8a6552be07d8ebc2bd1cc2b26b1fb315cc246ebcf468f71e8a60d39306e8c4632677271a3c2b2b8475e0d8bf4a9ea832f4e54a09056f8b75a8e947f15210d456840fbd2f843fce42a2e8bcdbff362e2d04edc307e27ec156643a1a00e78f6b036430185343b12d939299ed2cb45ff92fb4672d97bbe5cf528a5ea189cee495288ec9368584907a6762a74333806a502b8dc621a7dd7ecc53b7a1da20b837b15212b5e234a0271853cfcbbb79a4948ab80bbe753612622aed5d81060b32e530cc3f106bc01b9a219eac10c868060cea48696b7575ee18a948f04f35fa3ca54fccbb1b057fb70dcf3ae078f662359ee0473ac3a645699807709f1eabba0b0da2e8a25987a28a2da1f561c0977ea5755a3ab28bd2e6a010bb929dc9602e74cca5cf3767fdcfaba2432b0ac5f0376169acc47b7d6ce0afce87967dc874b080ee24f9a1cf6760562a0616d901040460bdeebc9603c4dac15d6baec8ff1d63344e2a24d3501aa6007c6cbc9b368908c9ac7a234c27f2786eea6e8c72e1e52aa19b9297fc2002ca6b6699ff9e89f36edd2a84250d74da14600ed0af648268304429516a4d0e33b20493996867349218ab94c1afb1cecee162750e3b41cc0e6469de6a4213b6d602c5b7963449278825ad0cbd2e28569d13938badf8f692e817c9668519c3afb62da63ec7e2651a83a8a09aa48b4a4074ad2f0a58167a515f4b21d01e6e2b8f5263f980196a11d579140a12bb4230b3c531eb16322fd7fdee3ad9980fd924338308ff64c245a2c597ec6db2cdda0c515378455dc9bc8edcca87440f2df0894bed5a5fd78db29c3c360f8982caf96ef93c32841cd1823a412cb3a7f7a4c6f26940c7745894c5c486f6014ec3822200d8d8d80ff5ded4f0bb57494dcfcc2247e75100f5bee55cac2995dde0bfd88a4607fb8095b9f80579f7b9820811a4efcb6bf679066150aae7c572186b5e8d2166523b2b171432b55ca7eb3e7dcd4ffd521c3929739cadb0bce0046a13da42997b62337139d140f7c29f6011275c1ad47163bcd05b39627e4bb18333c523ebec9fec67969fc1c444582664bad624d8ea0b1027298aff253e4d7c4b659492060c255cef42d2fe36169f0d8b0594d051c5c82da367f4dc0280c2132779a676f8e1063d7e02c4152b96e69002f51d72d2944ee4d8c9d31d27c7d3fc69c13bfe617d3335e5f06a72ab2a0ac7876feebc7b494bbec6b9b55f205a0ae674165e638e410112335d7ed8c112f7d446ee6c1f6437a27adc6d810d66f4b236bfed994ff6f19a0a0ba1e01ef33ef8db224d095f436b1092deaf9d08b9abec18332acdc0fda4fc6071124ddf2f8b72809e7635b200454ddfc4829494eeb381974141fcd163e2f1f2de233ad39e30b6a059d7b438f0fe1e966304c555ccda85dd16de7f077e464f2b5b9c9538d6ae146ec44f6c8cff97fd677404d87d073c82b23803dbc994ff4f80cdd987f47abbbae64a1bc2ca30a0d927257fa9b28349833e1de664845507973a3206815453af799c02a418cefe88d0c1d857cd50ed010d4a3f7c4f1c1b7f69adf01f83e3fca196e8ed2c4cc376b3b3238b4c043a7059026865e64ca27cc9a9c5551f0c68b31b1aa8be7ed0ed6d1cefe999d72200706a1191c21d7a119a63ce15871c223d6b7eda09ac30e7b6f5594a7b1f02f7ea5940c2baa2101c10dfcd254529ac1f0dc15584348820df150545ec0e67bf94df4d8277d546cd7e536e0cec889bc5b2eec4c8d03d8d9659adcdea1b85db3c988fc015e570ba0a2615c8230a8c0e41bc51a67cad71fe085edb33e3e39f8b0405cab8f5143406128b7f58ce349a414fa0e4bb3ed9f7481759ca64c4eb1da9f1db98a20a1e3908d5e1474892dbd3a16ce2f099038e610063f8e2bc068b94429b3c7ef5da1a3cbbcb157bba3de0d31ebc12ece8950590108bb7775a9f1b3fc8607b29e43004c62574df235a577878683bdaaadea2d7c24e7bcb1a271394a218ef4f3901e34f9bfde3e91434d7e461966f1aa250698e108a724b9ec6ffa96bc616f5db373b6aaa68344ebe3d780507684f4733ad2e57dffdeadb5f9430348e6109b85b14988a1016f0e63d63fc6a4f92483237a6f2c4e068124ab3f9aba22021f4e44c06f8b39565de17188ef943e7a5c129588c853f2144fc5b6cc8b1d922e9b730b4762504e6bdbc546c9ea50591b83fe7911771eba0c7a46486fc378558d7e6ef0b9cbf3840405014b9efd4a172722bcc4c00edc816a7bf4ce083b398b8f7243acdc54a5144193aa70ea9eeccdd2171cad4b33c1e9e0593721236debd4cc2a82d8858a2954d20b46811d70a6343bfa534cdc9e600af83da14c74e93dd06d34d8e58bf2f79ac784d286ecc01d2971c52e43daa26a413efd46ed186158320022fc10a1d9353ff404360e9d94c263e21ca272ca280f918d8e0b4b30bf5dd8fcfbf3b64bd4903b0fe4caeda4f742ff758af5b0bb59149f12c285a48529705b16c8cd3aefde8b9bd8d6d60d49ce64c000ce5c2ed066d90227a58533130b6f582b1f287cf6a75d07221c8054e50078ddef891c9418e0b4257febaf6156ceb1f1192cb4189aa1204e1014c53f5ef1e1d570bb40623b3689298ec723d0d6d72e4600a81f7a90e9e0ce15e1c4a26565b34d3c466037a6d0d7a3c872e531e457f0798db422f3bde5361cf449300f0d60e1af4f5030eee1d462d241c7081397b42943e93347477756e076a9b2924e2040641906241c8ac43e0a383610c597adb90aa76e1ea7b31ad493a00189982623d562f6494c30c189be20b43f3c699968868f94f290453d84c02a48b787946ee3a030bb95f8e899a3aa6e0f4d52480abebc899da458e63c89f606a2deb10e7a5981460c14e712aa9c94adf79f15a262ceb6f3c5979aa623e921345984604dbdf92509bd06bb224d09ddcadeeb75c40aabbb8f9f94f3eeac09b9e75ea86df10ca66990bf1c41c63d215b54433126bfda5a1259a117c1481368d560ed15a9c219b115ab79cc48c9f5d059684c5c87a0eca53c04d7b550388ff6f03fdb06602ddda9969e770269217ee68fabaffbcad5437a591a3dd916595b9870f6985576c31368c2894e16b75392369c70fc227963cd5e44ed2ce67ee3bc0d01b27dd2afc53e89b18c5be05e224f4729091a4237662d5a6e902a409e7e9fdbe38bfdb6df688e27f58e5ffeed63495971d0f7f9b27e4dedcc49c0e90660563da0f63e44bdafe936c83e95e1d21ff9947b59630409529711bd374cfeb537ff32d92e42bba856d3b31881007f1b0b4438200420e4303c2391d698d9de7cdd3acfe9a5499914a5044d392617932069c52d6894eacf984011862529e39e5433bb53aba8b31925543c729f3be62538fc2d1a28c6d011db098d683ba10306486cf811805159749c88836c4d1ca25c3e040e21421435c248ef04cd6a7bfed55691e660b9d29efccceaca718cd435ac5cf7f4d9d3f6e7598ebb42768ae19a7a3fec4d8a4d216a39a4d1dc25478954e8fd1c0765dc33d9660f076919ebbdc1584b0e7cf40313733a46057c5261e6a221accfcb6ce4396741193b5bb9a634f996b6a2fca84c96d666176c84fa36bf4149b06735410e645d7e7d38e7d47add5ac11e1db7ed30bf98a18ea0ec59582636f9aceede0569abd71b7264bcb7bd4ff12d3130e323d4aa5b5cc25d9779f68596087a4e05da542017be9e1a5d48d6db447a2399166f2094f875d8072f24ee266889ba3a4d9721cc875c58638a2402cf6cf5902ecb71a79928d133f03d63964a42b921504a871c2474e140c5455602347038cd9265180cbcc59dd6d104cd23dd430c8d5d92cb10482e8d858a5aff0ea932f8090c166264f5fe04c604766cbc383e367eb6e6f5776162c6787c25cca3dd287636161ba4c4bc616e9a238c4385a54b0f95b726a383581289458a4737aa04b05643cd35066c13ed7e5804020ff6e4af3d4bf015b95216a0d401eb7bbbb95affd8b181f1e08dc71ca1e3e78713e7258d06884c03358036e3599dcd28b13e8470fef4485967155abbfaf99c00d1ad5b22237fe01fcfcddd5442300d026e541744d592fe92df7ce2c86418c64d5816f188ca623c785ce2b22787154b4ed76c2cf67860a8279291250deadbba5a70c027ca4a8912ea20db38035150950cff6bb631166170f9f02ff40d14a06996a193ce2ee068e9e23da7c29eb3e0523d10ed4e5b79e10e7b1d0e62a018117a1c495e8e7a918cb2ca4d3a4b05d60dbadc247001555292811c487e2d9df8930ce510d88de88f9622875ada9dacc66f758fda64bae9c43ab1ab85963e7e49559c97af6494becfb3a27d922043cd6745711d7b1ef335f23d6670e482149156fa6b51ac67c909c100b08c48b8b706bef606c68413b04353fb28ad2bc84d72dc49975a2b01ebdb41b998d5d0e270e86139a1580f872e4119a93653428c5150312992cf8edc1e1e4ba697a2dd60135c4bcaa7fd15aa6c90023f01242cba19e0f024d5bb20182befbaca88f1d989d8134209d9dc81151a5e0c177f553d49354992289cc4333740af97079008fcb0abe1501759566dfa63786c985c89373c65246481dbf0598b31fff062ec50e2b25e182c49de298192e35efe54fe37f1a7090d6f070d2f84c1294b8862c52cffc7f6a6cb1bd8d46af587e000527d3b487ab405d022badc463fbfdba09f1f078492fc72475bb6cfb51df6d8da523b7692403bb32cf14e65e18d7c51d3cebb652e531fdc267d4ee2ae6edc291fdd6aab852da538d2da652565c6d102287f591d08d59331057f813f6d03fc6f7856fd5025571b0f1b295623e399cffc1153adca4a6086d1e930058bcff59a9af8b1df333a75b342a8b5712caa0e052c568a6af94ff4a936cec067b515c0ea7dd0f6c170fb584cb34eb40a7d9abd9d81a58669d3d65914a5c54ff7bb37b7278f6a8cd989efe5a84416cfa4f96e7002ceec89321e1194d2b244a2e2c0c193305b4051e0e6bd903d8aeff83c8226edd2a86d952fee23e3397bf627bed009774a13236d95896a0d399e2814c10887bc54fbc1a55e46dd570743b1f9548681def11c2cf1ab1a0a66e9b03304f055c8bebea84c47758b0ddd1a4e9164f63ad9438a1bb409d270076a21e4353834836c2d35ff15a703b4ad06a13a65c863b5307aec05c128e51cec44c73e4da678ebe8f74259c3d1eb0bb6ec8511b0439a9d309bbc5f336061b9a4b110f713c595d9caf98fedb9456c3afee8aac66efbbabb8333035633f1070593c2ace8093b24dda84f53b46fd7b8b5a5e2a841a26f7aca85f8147ca6a7a9dcf6b74033dc18e7975ab15759edf483d74e85acb853eb49ffb0cdc020514c486b71ec2799feef989a7c32ea0ef85ad9d202b591bf381a4565e74be4ca732710660041db66621df01ed7e84558edea7bfc8eab695fa308d82bf66b95d7bafef17b6136658fa410798c6777084be8b716e1fb603f6b1772a07d803673cc86a8c44d902d09cd5fbf1fe04530286fa56e63f80ecff1152ee169d098fdae30e6c9bc39b69342323cace03c0c2836038d8cee379f26a3e69b8a29e8402807115c004650c4acec330d482231611c8a512a9f200138d32207da77f07fe3e71bbdaeb70fbdceb2f3d80cf16b8557b439e14b983d505601dd0d47d5013827d4aac4905e7ac1bccfb914fcae7037ce91f5f2dc13210490b430eff72061f75d92a9b77a2d3016b66c527b1379895e3c3b4bccbb8201569352e57f7858447fdd0d162fb4b0d3ac781ec81a3ced7b7be41d56d7bc1e4aba60c77762c6f3b286be40471d7df88174165dde2a166adbed22e13e8b515eab67e6b20594bc9e0a75c2d44567df13b312cde5c8a1b26626d3aac3dba8273460adf5a5952532a72145659196b0276969840e52d84d46f0dc64bce608fd76ba5fe2949c6c5a52220078a6e8b464e43c89181e342ba67fc918c4ded418084ab7ac225b008cd39ef21f09a9cba9766e528ccb067af8f99d2fcaeeba918204ddfa4258ab158ce38f56e131d305ba527faf949f3c7e691a36ae8f7f1f96156c301038c3f3bd37829f7c7cbe616a8e668ed5724a8b0e776dde33e59133af548adaceaed7c6fe4d6490d620ca764344242449694181ace8dc5eacbd03aa7d4a1942e9da4abd6857d6807b282a03f3b109bb7d28953f73b491a30b10ec4795d204f8a3d3e2c2ce34af3bea100a7e2962cb571a23aee1580d6a0d8d62e3579c0e365e1fd386487eef9e4eb8a83777060efd59c727745f62115607526ae924f12226458b06e4a6363cacf3a9886d7d4e23630a4cdf29e0d5ce533a1289d3200e2bbc07a4cf0f2d9ffb76beb399e3b0d460c38816d7f1f2cabf5f8c273535d227e3eebf7cab79ad173c8ba04b311a66cfc9e75b4a6df28a6bb1e7878fc2774f58ef42f0fbd1bc146bf49fade74f3db039e6380978ba2cd5c49b642e5d031c9b73f96355c758eac4ef92e00c487f2753c4365cbb2587450870111b9c4716dbc3436fa18b6be22810a58fbe7b13ff1d34d6f9488834ba46b9ca4d48a5e5a76dc15865cbe2dd2d22bacfb1dc9cb9be49e4db10bececb2cbc344a339b6e93997551dbc5d22d72c5c843333cd7038bba8a08815e028c9e7accc8f10547296d508b2cb7a7619d549358df06e50bc3c056176225ad6bf920ef3b41f1a2734b5636fd953db7ff5692bde1660e2eea18216ce2ecdd616b07cce0a133b5898a04e7a04ce69aa863d7f881919348177447d2782cc6376747648477df0c4bd60f5329ea76e8464a7817a5c292b2ae0f3e9ab0165896c41aabb1c46a88f28468074e4171dde6e289a9f28b57c6ae6074735196b42c121ff7e052e11e21cf264abf897d73025df7e431b70a33d4d4529b7b6a9ba71ff05567bec15a680a9b9864a1c6662d19104f7da84e0d677eb83d66260a64502b62ae8773264c196c97ac7aad32e48a0a8e5379887cf6ba42a0593b60d84889fc70eae010eaad42ea72603e26ae852e0b10ebb1d67f870345637a5486b871b28adc501899756907943384d8bba119c7fc78ddf88f4b6fc59af33d871e6fa76bd24403426bf85a94e6b4f8d8794581d6b6b80dfdae930acaa019b94b4c021b42ec26ab4dda6591553d96f4c2c4a66aac77f0f55b9eec0065391ba4e94c8214394658729a8ea138f5fbeee3f4dd8fbe682bdb40ecbf47d2f99af6073e0fabf882cfdc1355c345cd9e618462fe02ffdc986f2b6de66177ff5b4f17bc771c3eb53b8fa33172dd07a51af2f64a067d24030c5695db2bb77937639a94ee9b10dcbf22bf549e13127034f726e20d0dbb9cb710c4cf04ea40bfc8ce382cd88c02c3248a7179794c33c5c8913f41a0e56335ff62dfb9360cc63e01c6a4926704526db7191801be77b21ca49511678c2585af673c3400bc5e297060d20cd341d810df224da3d0d218c725c13688346fe6649fb6ff73986f8a94880e32dfed65d73b16a1b24ba4a55a104158be81cc14ed4662f3fe4956415a2b42c1fbf212e78b75141cf6356321f35aaf732434174cfc3ba3c6dd032036f3c3a6a09c367cc43621dedf581c34d5c302512c819417b7e6e141c493e9e00e0e95afc288309ee4ca16c01715cfc11537fa04cb32a7a183d0fb2843d017a259c5bfabb2b4dc40962d0dd6218cd009b7c327248824f54cfda4f42740209934d7c7261a0a5b3c9c0bc30fd0e894b209462daede4970be7f577d427a7d915d04b262d6583bbd6aed3c6cda20301d2d3d565742b725006f70d60283173b6284a657badc857d0c2bf4e3acd38758231f2cab7d194f3153e6a188272598e67fe6f35ec6e5c3cf4114da9219d7782ceb59ff7f7784ce7ca7d24dd1f129a2510ed702880a8bca251d21bcedda7906c539504f522ed3ba113032fdad8ba61607e466b4188c218031793c33285e73621f5d047902bf1e8438d15f1b0230d1ffae117fc42d16839f51c1ab600b2494b9375f77391a1d6e9335366f72423feada2f94ac41887eefbf9c4580411771c1b940dae86757fc7b4a81270306b7a8ba37e46d196ce1d1f8fd2290493c62771eb177e726863fd97ac003bc0c8a335c33d1f0730049d441efdaa4a66528ed00f856747f431bd0c79701e20a572149f989ec056c746040222aad3ff6032370f271ea40b71a5ca2a9a30175651342cbb1f2985ccf0f550a90fa99197f5412f1943e53aefd93277db9015d1ea95eeacd801b01ea219dff0653705cd50eea8da2bcf192a4e24620db3bc4e736e0215e0ca430da30dc51e03a7cac42d551b06c8666c00b5ac2efe5beb97095ad43fa711bf30d2b60e9ddfa9fccfec0d9150801006a3ff0bbc22b901f2e4a7b8386170f7877dc33ede61a70512d3a7791a1a7efb177353a469ece17b5b4563334d97710c749b7cf4a36537e2f91442766fa07ac38c8806aa1f4642427ee121a0c64240723ac126c11438a84f2f1986e175c8e16589a1d7c0ba28122eb19508d5c23e541bd54fcae83e7494ee057def8179cd37af131f02ce405fbf4aef4e660ef3b02b1e8a333e3b850466d4bc9c8e30b942c91119d9c0c6df0840f8c66cdb5d585f44fbeab9306d13bb9998d9ba13d6b5b0ea748c9ffcc0c4f0a928063f3fa854bbf52747d0e060c4c862628cd3b61a575462d7581f44111e6b811f25ca9609a7cd4095b14a923ea06ca81a212e7527558e30ac982ae600c49fbc3227a339e15a43644f4e12f071aee698997c1938c497fc2a29d10fe75356d44eff3d983b7dbeb2bf101ae4dc5d5b66a485376fce72e4beec7392b424feb96c2e2f15929f6d3b8591f3bb1536da32cb2764e231b512f417706adea62ae7300db29e5406a728bee78b93ab8bea287c906f3d0d2bae79dc46b79df4e79ef12818ed1c08cd895b43182f1972a0bd31b53991eb75dff5dc7d2dc687695eb7ca3a0e9e0956d440e6df7923d99a6c8573917d19756eefae132d910e04b416279e1e30bdd8e90a1c8d3ef7690677b3b35b07c730c1515a17a6f1a3f0f55a8e927460f5890ce277b2f5b0dee4c186fc7962e9f26ea3d5c3ea0e4e935aa642f52587cb562110e22b4933389a09d62ddd4ac812dbb02438b940f7c1e53edd961f856da30eeac72706dc9e9a6983c4daf50db5442761c2a30a46d65d27f19ccb4b87c034b3d4d772b868e5f0365a3563295696bff3fa31bab3b61f1cf25da95e5f4aa1eb5cc7509bccf1d0935c9eea86e33968fd50d7c278ba737668a7af6992c55b5fe109fac5ff4e0af876320a90481ab66f05d04ae4bd960b846cde9db1df088b1388468e12a505c1c94493f7dd147e8cd6a46bf7c8b928556be3b7e9dc00662ff4aa804ccee89bba6ff3621abc03b7f625a4e889d6e4307de4f69cbb5cb6a2d025a8e0b416001b3a64ddca23d9440b104e5635f25b8e486440f1c078d643b80dc92a786bb86e892e128f6ba25a3700b76e896ac8aa38c12dd8f4975e7b0d9bc1160f29d19091a3d67d535056537ca0adb0543a9b8462ab2c500a3f4e70456621ab1deb98b07db5c60634afb1014c7c3345d49c04a87d5ee5a491cd89b94a256294cdf05d44168ff285ac3601f6266930f912634688e2e7f4544ac8574caebfa71425b4869c1596ac61c97a2a5303124c62e3a90015458d8b836be2577ae5ef9f43a5336afee842c75c0528ad1ff3c7ffbda3ed0761f5244fd83d8b246165daab3e8ac884ab68daaae48a4e7f36ccd50796ef0226380792ea8e76f0ecd31bea46a19150a7cb1f057bfc0d0f28bb1c1da5adfd3d2e92e3b8ae90ce06ff80d8d8df75fd69af62974ec98feb6aeb685ee14105fd70abc8fa77d063b0aab6e3cf8110314a9033a31206daefa4a8b722d23fd464abc2bc8e2a04ea4ac5f1310fe4af1c27139eba37ca50d821dbd945f55494c9be90b45fd818262c221100a676b31a4de9844ebd316234021fa09b1000e434225e39808ecb91e62891f1049d59d95fa746cbf8ca38a4f38647eb08accca0d92aa40a7a56f6104cbec355bc8fe748bdccc623282cd69c1ac4a211e39f2bd91ec9fdc3f752f46d492e8df14fb291bb8cc791b2e8bde2cbf5eea3313d7b7e5d0d4de1d62096fbff817ee68cb18d18f7dae6fe70cfc5c8dca6d73505051b576534e244951e5e1f27f49d1b5d3808fbf24542b2e9ba138921595a8afdf01827824097f35a1c0352c8ed710f07b1cd12c89359e34de47a350d6de4d9117b719b9279a747a5bcec0a9596e07b1e5f414c5696c12b1432933aa0c1400ba021c74efa9aceda89043fc0346959d8dd4e7c2a91c0f351a15bf5cbe4671591e70cbf63d058af0f26efb5a7ca5d0d73aa85a9db4d52bba4ec5de997f7bd6a5450e6f211073a7e8a69e66b02fc614786a13f46e8940b058e961293ffcc124c419693ca0a24465bb943ced427f2b4a894ab36ce6993dced64de0c3034c2dd6c61162d7c4b0c86dc633d5d66069c3684a8f7cb04ac61dd2f3061700b044f6fbc90f82f1f920c7f392ee72835521ca2bc8c615bbb7e4e08f251f9cb65f0091eb975743affaf9c2544b1aebebef547e46b6587d79c254a2991fcdfab9edc8dbb590e1d2fcb59b45821aef73c12d7d6e5ec634c4592dde9c44f1682fa9d2adac8a04f63682c10287d2a5cddb6685e040acad6ebdf99e84e22f76f71bd1263772bf72b57e0a8c23df36029277be26c6ebc9379ca257f0f870f87c058a5affbfe8dada52633f2b2f6fb19cbbbfa223cb02963fa7abd57208597483129b5890c9604181e8f7f6280bfd6cc6d18a88564d8b503441e980247ce4d3e890d89a1e820087cc340f6b1f96a837f09cc9ccbe0fe5c08dfa442de04ce3c6ba6ba54c8b15a94007d0946626d59db1ce92b88e92e76ea20d5ce76b4efad1382c2476563c7b4e3a3bf17433c41dba0c8e73da8e88be47b4e02b75132b6f2973948fe8b4e046ed0d71defc0f517d82d3750befb9b4ab2ac6c70d8d78230f2d6126af9fdedbebc0a0718c24e04d6b3dc8ea0796c17300d16bd5839dfe7d4bd15c2d867e69b8a4dc3da7cea866cc91b19dfe7aecc6da340a9ef8043995590b1f93c45a08333bd9659562651087873502756dbe3d9ff588c4548ee42cbca5743ea5ea14f767a7817358786d87fc00398658ca4a40995f262ffdd4d9745a64d84722ef381e9d086e07717616fc38f83ba3e18d390a7518358c4b3abaafaa66b538fe356b53258b7968c34c9ce6bff14f3f7cd67584535255b355c5780d73b69d523863099b0bbb0088d302aeb33e897b7f2fb397d0902d6a089643bc2cf2569cbf377ed22c4110dbf41eadf2a2b0c03f2d74b9d8aed0c4aef1f265bac547d1f0f50d09e75f9229d295591cca69d17c178e30e907fa84575125ac7bd34a1887478936f64f8579422496bb0ebe633bd9db46f16a1bada8e54c6bdd3bdb23e539d21e6ff70e774065c6598e5555c9cb2ac53c41e5d2d5042a35a475c50cf2938808c8d6757d5e6ae74478ec512bb3516fe0d2cfc3be64b13a3bff5433c3535af9dc8daeba6e45666076eb116c4e86f7221026e9999fb00e7a97ec1ca616ccda37fb01d33262f2b9b4bc946a97ff34e36c78170356467e336c109f12b6bbd850e79e1ac5e0eb1fe5108216b970379a88cafe3d056cde8e0a58bbef87a78065f48e815599b052c0a6ff8beb627aec2ee9610837cc01b05f25a2dd25063153331bddfed05089075b3e6c7e962006f4331e620d8ee69a9433d725c8961742cc0c5276d8b04f9324875e9cc5d35aa81462a15ac44ad50d64009e79f5ea3a1acb63a87c737d3b1b2a8cdf5475ea43dc13c3e6087c2f34e43ef3156c38098646de5a4c7a15eb2c9667f74f8c0daef966c2d73ed8182ba27d2fb39d162002e243621e28aa337bdfc99ef2668670251b19b09f4c61901105f2c1c94db448f05ef299beba40712a97a7653a07da6336a31fd61d0146fe97cd24f99ede5af7092c239df5d3e08a599825090750ae5c55ef26648511b1cd75e73d20bdbd6b83eafa66061d33056e3ff034de0e4d626d48537f9033657b09d2458939eda834b1b775247de9f6c39f5cf80b59fed4809039a21cab2cb8b881a4be856cb809c75499ea42505bea3d9ffab46abae16180a288f5762f39b22d009fa041474698c512e9cd18d8397f32e01f7d2a31a128f30378d7c656603a27ca084b1655d5fb14770e3f19669c5aff0565e0009e5c01a2ccb643c19abc05a736a896db86835b5bef4b009106fa31073ebb197b23f042d4a6e705b00a750703cbad7a6f29c825a8fba69254341fe92746b5b62da95df6bb431aa7462608c0626d0b95821c2088ca2c8d007dfb8b67bef7f924a15f53e731648e1d32d612e815a900e1485ca219d4ed9b44e8acea00609f22333c4bbeac268c61eb54d0fdc5162a0ff35c931f005ea1e8d1a0560567cf71267338ac600c4819874e3bbc0747c552ada4f819adf7df2c25feb48dc4fedea3ed477037df9b92e056fc843eabb84f358c6bfadaefddc0e98e79f80c5d7c38994719d274554fd38507599d188d5a773d69334002fa2d29f874474c21c8b91c1435a9ae566b760359a84a5740de51a6add2a55de96736859024e593f8313da9eef1a79859da67aaae2ed041b5e7c2d53b8c532c0e71e003be470440da7854c852b47c064db53706398f65b9ca245e4d03b450f1b0a1af9a4d4d60010c80c883e8ad873366fb3302ed4a6e221dd1c5cbf4c1048536cbafb127bd1f6d6db55b3584266cdc605aecf7a20b4dba3fd15d43e257842c5b4de8f74cb2575fe239afd48c5ed6bc687c4f73913fc1bac2bc90654fbb527c2a59d628ae82ae31ccc4694709b3e90427a571be20c023fc3b8ff4bcd3d7f4f516fd75eddd0eafbdd673699376df203bd5ee10f25cc7747c59f9f0b401bf431a496933670466ace863f16f733f051eb79ea2fcc24d8348cef549a49e36344918be041d690bc61ea54eb4e532bb2dd85b0720ac05f9bb2f2d472610cfe57bc90a7c59a49482111a7d7dd3f600bb1630059b06aab385b5309d3f7753340bb84f0e0a8110ff7cea2e1054edf05913970acec97c25bc844bb88e7b3fca675adf429d4718b7385b1ecc1944ca3106251376727a8a9a1b831988cebf7639037006f2c784e5b9443e4b1ce46f04602aa0d497bf1315b01ad53011c147c91fa1fe8c9809082d5a13beab1621c7a82549b42fc43a7b857d3335610c6dcca5ef4ebb58a4c128e1925aa3763128be3b6846b09216762e589cca6bfe68c7b000d1dddcd8746ede309af5402b0ee39e1e39c099f3f31cbb5a4cc52d6764a0ae0cf02ab56f5af65d96b623ab5b444ceb7ba4d299e481a69ea2d8ce842c11c61e1fa122f5f5e0068266759a07a680190ad4615ba3f85466e02a3f76cd5d46b3418571c74ed6c5c950eb4f4f20330d802bc30185d9ef838a2cc94dbb3b655ff1864390cc36b9e951e0c4ee6877234f866500613061551c6faf725f46547a9c9e331e790a197638cc8599ab0d2751e9fa65b12f43e4cac843e4696bd12ec8adf06c76261624af5d0fcf6b2ee6ac44b2e8440ebe7530fd022a5e1458cbf29d90abefd3f2116435e2ff492592ba76d8fd19b9db010bf4e65a3c6fb0dfc8b556253305893ffbd74b388b1819a1a683a72ec8b76e1b7f95bfc6928a4fdb79731de5bdda06a1ad66fb1d6a574249ebd6135983fae348b05d434c0e136107fa28ee35772f65b9f90e7c5f224ba2db631a457f62b38aefe43a4b848d300def8a60d901a8db48eb0966e1386fbc56debd417fc0d61e8547dcc53a1b061f5e6379ac831e1299e56b77f855901247a3372f84644c61b132470771a42956fee1dda48391d77d1714c86aa8ea094c5dc15446891b349504e23c8c4a4cffabc2b261c57bb64813b2f3ee9520548de688af93e0b483b9199fad36bb112b7f55d4101ac33b9a633194258370b833866067a7bafde8f6001ced90e2a50e13cdd0a49eea3652e36133d37d294a5fda81a4df4172698bbc3204769c10677eff9635eec72b30c4e6e61a738e357a082d62ec8a21e39faa07d0c6e0566f8cf2019fd086bf787cdc3a03624475651ac5b8dd4753270bf8e213a1572ac4e3dc1bff3271f13f49499d3e0ec0a2d6c507b7aae5918127084c7db8df32e13d4a27f4528beee359975cd54e6a2efa36c8096eaef03de2d3833ed995943f27e00fb7ea1f1aa6ee23f3a4f338bf5540c2b1ef50edb875f171d2bb8289d78fb2911356e91df91c39b472e3530bb27be975d0c1f46eb01f02b3af7878ce8bff37cc76a3dd25a7bb0794f59a3db3872f17b2784494cfb510a668ce9664af02606da4d4b114f289c509642fd8ec2e66b74d74299b7529852f51bdf149371f9798f1618084cf0c38105dcf937b5b7600659a3fdc53564ea2789881a20fe8c300a94a734af58932ee506b0d119f128bfad93eb4a0c59d51989a575ca11a41885be50bd492e2a379aee73e0bd6fe959e618e8586f412cc0c413653f1cfbb6e5856173ba0251c865224fca1c2babb1f6ae03e63e25e2b7b8ee5a1872310c07cc827ba60ebff50032ea09cedeffdbcb0c0c3154d3c2db05b004e13bfb91e1638604c911dbc070bb0cf19a31cd4a871c319ef586eb8bf3d01882f3a0f7e7cc3642a058c6bcb9b07fa7ca957273960c7c577a4b450bc041c970c44e0b27c402057844304b9fc72451ac04359f0949c21b262af813ebe2a06e16e0db8547ce30ce5fcb7f79e374656fa6dfe38da2c209dbffc9ffe70f6573caacdb859dc35d335c2d2b62b9ab712c59d283142fa8cd3872d686a9001d8b0df46bc057e5f63a1d8167c73f813cbb17c924711587dc49116d808c91442f17097b43baba6e7b041a3a692329051c3707c1a09585117eedfee508a6a7cc213c5682dd7abf1d045d26d0094bfc655dd954360ee64fc5b4b64076b212ccc8d50179117d0bbc8e4f30a4269b52fa32f59c8069491a82e880527121ab5dcab08bfc303ec8751827246b67d5c0d548538d3f9d316d65f8a07286169abbd12e256569d37f9a1259d29108379577b18dd0563a02106c66689d2a93e21e8f4f5099ed771a24797a4f605a1e8b4e943029a5a2b67e829669e47f4a3a9c3da2f7b5ddfdddd87c3f6245d38a194aa67cb42695c0ee91c069993f273556d5afbc9ab4f1777fa8ca1c3be37fcf0103f758e12ede5b56f78ab399501413a81b4c3874aaad53c4f47f1c6f8f83613c7e8e517a409fef70a19bf77ddaded3c023631c7312ba1a22834eff2b0b1380b094eab6d0106fab3860c39ea2b692cd61652e41fc4cfb271fbe1bd192ceb4729650af6be84000b3580d00e990185eb6b160a1589d62d808bc9e812d240c0d1068e7e14b29416049dfa027d787907220e12892d06139dd70bdb9ee0131ef0636a04e0139ee9b3ff5540cd41c7aacd5e9a02240a814a10de991291f73b2b3cdb38d0dc068330beedf2c5794e0dce440ec1820228a1650e200f5c0ef2e46c11c1b28c143d068d85899bea10fb438cfafc91a668c3b3b1678b163244c67a36c4cbb343168c2b45ad603fb60b1494d9ec1a9f7471ed1d521e2bdafcf890dc29902cdf256e911d50caa60fceff4aed65031a1981d2ab3e5e05663d16e3820bcaab4439c2e58d0f48e5942e78b1ef8ad4d90eb9e15f9fd51b2d8c8d08f2382a0caf0e36c342785126534e23282fdc5dcb96c2e2863a67463ecc3d14b24926e0f048a524a960ff5e6281f75db5a75951638678e2a269f48753fef552e83106a95160b12be06f2600d16e486ab335aa4056157ae99cc04d1108515b8b4ba6a77d199b8f6f41859721c7d8348881ba322c2ad01c2e8127715914b97067272149c789d5f0bb2929f4a8ddd85160f73aa055e56bcd215840a7b49a0f3dd5d1fb83c0ef61c4c97a5b4492bfd61175becd58b4667da3a55e19a127d640f1ed3e07b3329249b64f9f18a4b1a5f3a7c2417503640131d7373687ad1f8360f6145fb8312c01415874c1f573d709316dc017f2f783b45ae5c84dbee75d5929d0476bede9de9ccef5d1aea9a69c8ac9d378d55ba8bc720f18bce0e642bdfcb144f2c0e3e6f8ebe0bbf45605b4ddb60cb7922c66060f679f8ca6e9eb75b7c2d9c1aae39ede45042080efd60d67953b8dc3f840a5430caab8dc2ed3730e0f11d0e44730cabb2e03c21e687a14e8b0a3f65c2d46651d9873d365957c95f4ea2d9d2ea3a757f171d0a06d043ef94e2711c426fdfa40c4dc8f410622ac20a59709e89454f43a62002f1de9962ad16b390a76e046db7b46342bdbabe5b5c6b602a9f313edc5cdbb597b9e7e626ebd085363db4958ef04bd6b0bc3d08bb5b2d6582cfa62ecb0477e44dead3d3b668e408702460469c983969c50333658c02036d9a9dd15d778068e2c52c401352f9216766b222df04b2c0a61b028d7404c0821f9f0eadf19d433f670a5f9ad8618c80092c3cb6a33c211f5ce3d1392907aa7af34a08506aaf1184f3836a90ba3e15410780ee192ad95a48d80e4392a023ab4015bc3198aa828469badf40368e8f95079c0e01a786ef5f097985c686925a9d20da8f4268e9a38affb9ad4366681d9aa28c6665f244708f4f8dcff2b4417c4fa17fb297f82436f0608c044661c488746dc4333ea3091db3f563d90557225c4240890293316ee78879e6c77ac075ac7ff88a3107803608c66070312e2a6df11ad6bc6c2155a99edbd55f0f1bb27ac73b942aba5c290b7f2ca27dd418e8f92805ed72d611ad6489fcf19855cf4f5cf168e7a23a8eb8e40739691a7b4d74c858a0db91caa5e4314df07e8e484162c14f5687e6c90f85cd6795f2598a327db1ad5d32424ca604cdcdb89e11a3884dc172d1253cf699604306ca57d8ed6adefe5683aa8d7bc8b464d283ff21bae40d2add910079386fe3e60b561e7f02f29bc5b410077cdc31ffd22325a5d6f1e005c8add5cf5ae2b8e630759df9a02104b2722b3364e16b2812a6a1c63beb2558b86247d568a2d7d538b389336cdf5b45a53ddbdcd270cdd6a0260d5be2737a2dcaa24702da929550a47cf68624c0609d34f70ce41bcde1b159f3c7eea29d3072fb4f151dc326aa7066720f17e6e954fadeb7802b9de34fd028a96021b64f86d657a5436485f3f2a3dadcaf6064efd70c91dfee66b8af15b10e8368fd281baba979510ade8f93f84ec866a538b26d84c8f5b649cd05fa7d09eeeddbf5414a83f20870a0e3ea41e46d6aaf9e6cfa3cf9e7cc03b199708e169b91f5021facd219233b3fa68caa0f047220bc3a26bc0c2542db2a3c16c76aa378d4ac8832311bc3f79c1f80a0fe64160c7b08acef0adbf3631288a39eeed611063b8fa64cb0da8cfed65ebf13d700e70d1f9df03dd26f50ad201538867c84557d7fde1326c2aeccd8f42c5f2fa01ffc066f4be6f13c377ae8c894bd1f9bf248cefd2d8076f25ea0322f7dc13a2589fb21beaa3a897ca2cf2b5d2edaa6ffecad1e6d424ed5f336478f6bd053b0dcbdd1f8fae8df6da48f407d99cd119cdf0a0ace0c42d12736e21cf0b1941ed834a98d86d9614bf6dee1ccd1f039f3c825dde5acfeba1a12d4a97d297335fa2187203ab79ed0f0ebde2d6a1cf27c0a45c5e67675c0d97f53000135229fd2a6428c2787879c8cf832a39a1eb7465f8e718322b3eccc5099d2d4667505d04cb754291a9a8310d9828ef4d0d9efac2de61433746220859ac8f2bc9346b694634004ec807a40be2454927d06e97e84ed70b8569ca3c6b2fc44e95354e5f739661cf39ce9b8a983c512233e1e54bf4c7724b0d2c38491a7f23e7452d6d7aed81b0de5ab974a2ae74806f859ddbef6d24cb5106c43accc03b4db037d2aed5908fd7c6bea50a1d8c60d263284714f258c635d2e19347a85a1b85fcc7e4b3f07e54d000cf7246b885c3b9f0068db82a9cf81b60578474cf066463a7de1ba8b19b8f604a200fac6608bb3e951e5668e219d67f833deb40467e18ef77e7ec71d285a43298739021ad318dceaafd38592826a25e9a0844d2d3b6f35e40f115875b28811ef819c0d457ef1c47ff249f05afc34ab3f519e82ecf17d8ca5007041e0fe87bf133149ec4e2a19a3850021edb257cdc3b95534a6d0f3466d517dffbc8c59a72b21baeba2e9041b1ac9fe9bb05d186fcb26f03d834f1c422cc13ac7aa7327de024646643d4e556640ca8df5406a15400f8aaf28926d8e3e152974d165b5dbade5fa25dd52cb5149f848bd95b4d28ef5d865691d5b177b4c5f911daeec8c359b3cff42c282d5bc14ec96a0d98cf7ae30e2d766b0977e4455e78987a135cafa50ed3fcee501f8d0bd20d02e9768d269a7966ff2a95c30bd738140885983a27b0d0e26d1cdda9b95c13a6a69e84a9699d28f85a6208fa5c74ea5ff635b62fd90afe4a8bba1361a54e641a3134188af0be73b65669758762922a8ad6a5f7a651dccb7de4b09d1920db2240d3a312f0517346aa700dbcfabb10b59bed9297c8ae6fc036f41d9079a0e8db4f73d910c8eb71a25488d755b6e069cb82a260bed7f0fb634a76ed647544c69d9bd85c143ca0a5cfebebde02e4d33d1a35b01159b895ee134b3f019053d9a8b89b4f24c7ce61204c778df83aad946886ac9b16fcc37eb4616b6a37c92c8a70a978b721bab81621e20a08e6772b1fdb5f76ecf3912e67c5d01a866f6201d4b700c4e89fd7aad63d56dfad0655024915d22288c7f55fcf6d11afbcfc74d50b5d35ac648db886d935185ac3f552c5a222db2d5b8c44fc549a3bdf16bd58a643f4ea6590f53a1744260056b5c7d3cce8dffbaa1f6c69f5eb6c3fd817b5356d9d2b24a6974d93c92811510297adb483f6950f8c7b208aa98143b5a94f8c903f27e7261126e8fcaba469c0bc341dfb7f4535272a02714f4215d56be2d2515acfaa705ca99318cdfc0cb7af3c5081a4d478dbc0467b4b6c4b89eda4662f643f90e9a30f185681b5cab363081918d2f85b303868cd0035fe2391c36f0fed615643c6ff1973c0a131f9a6a78b0787d0cb76fb2a1573d7cc8ab5a14e8ff2dc74fd61ed7f8510d363942368172ca551d62580b773daabaddac91362c840e6e84aaa239846a7abfebe46e2a10945c438df979c636f9a5b0ed6cf9a4284cbdd94a7dd558f730fa07082cc40c40987142898197c3d45187d5cdd463e346f7e7c70c833c4692dd0e9a16d1ed7277c8dd5d32524889c9db5aeb2b8494b7f070b06a1c30d0b238953673691f7a41602c3c49da52f3f941e74c063d9869908d068e6059a544a7080806132014b897a4290df9a7fd20bb8b352c6397ac18b161729cbda41cca2bfd66cbfa897edf3b3b15357bcc156e85614d702bd8d1bcd7787ccdad2ca5453cc0e8cc0b4c485211422ab754c5129e83f1ce8c54ed9da10518ff1237a039ac26215bfaad6a39b7824b8869f3544d3fc9134a76595b39b16e27a391ea0263e26caf34991fd1d1a19c7aea91f9f4d3b22b8b3b8df5843469f0d271453b0e0fabba5e65d0074876152b9c563a61ffa5d247c4089a9d573e58d407aff3301048f29b02a5638805403b94832d3cee2754c6315a38ffe8e9a282b0882453b84d274cb62ba182afbe3423640007369d36e5d45fc7648ed9f9ec935cbafbc813a7757eebef3b32c40f9012f308af88bf5ae6cff9952e3b2efd683b861cc9741233aecfe659e51adb73377742f80ff002be7152c2af49238480eadc92ffeeb505c50aae9c49b93f56aa808d808e2eaf10b812b8ec9e15c5b319ecb1e5904a760eda388402fbc9220a42b19969d685fc70cbc1118cda5ff8fdfe7267e71035affbe8fccd5c0782ee151c85851f2f58f07944c0a64c3205380eb4447e51d4da7d4bf2303b64d0f9d0e2e967053ca6d07a7a59f72d215ab0d92019d78e846f7ff34ccc73d8537058d83ddf7b0c4dbbd4a75b93739bc258016918dbc756fb2551212f12d33799760e7c6a2f02240c543415f68cd475bc11e957f28984a82ab07d2e2fcc6ce9b7007e2a8b8046d80d24517671fe9e144a64a5d18cac510378cdbfdba4997fec53aab0c6a79365f4d03ca7a18d23c7bca00d570a66298c6d2914a8a4a2c5dc031a55bbb48071084c57720dd478c36f491abf6eda297cac045dd8510e457ca922e8644fbdad929cb2b7b3d93c353af59df562658b628eda00ab42851bbcb5fac2a80dd1bc4633cafeb7517e4af96c7b4db9a09de190fe06999b981608ba20fd8826dbf16d22e97897fe1b5b88c5e0b1200c8cfebc0f45f588469e8f3ecc39e18968be355abea531c8dc2ddef56906cb22c872515c3f80e9bd307ce178ebf3826929bd501046e0138ef100e00173c6073d257c21e709ce041d0fef50ca31d3981ef971dfb25feb9ecd36a6cf85506d4ef45fb62825c8708b1498b49b5660bfb5f060be8711817b7eac58242f04844f7db9888297f4cfda23983441c2c57c38f7a5a4457f311fa0f7f240fc872159060711ca6326ebf8a64beec48a74d92447da9838570689959c212a184c7ef84139b10e00fd2bedf7010a6c797e14001d54f0a0c2d05ec9e5b7012004ad0c7a0443dc2b08387b6abda41a2c9565f616f961e74d81fa7c231596f7169c4601d5a53160401c775a24062732b34f8cc1fbc92a4540836daec76ec4e34e01fdac05c51337e27a01e86419f65e246d0a41686e870965417f3dd69f3183456cf2f74354b2a9d0fc1979bc83e0ce7d11b29c3a5e55b56082aaececbaf7270bc874d890278d96e57c009c918cc33280008fe1c1cdda9690f1b810b607036d304ca10c746c5bedf2731d0018e8c3a81aa057af747d73e12a8853b2a7a8d6067bac0c2127419edcca4d142b0540c89332bbdbd61af3f1ea198a373aa64224ae4a5c22ece7f4d37a54e470fe8d7ab168245504b3dd909a35a0b456b47ea7f1cfe3b99bf00bb1f34511c997abe9bd3286244fe69a9bd01ad734d07acfe82353e09b6ed5ac6c208bdafc003966f93168664225b06ea0e9c4c4d76eb4ba395210209455420fe40c5d631329b25ec8d11a3d7d237a32aa3e3b16afab6c6960ddf847ca0bac85e418d431002544afa422441ce08ba64b3efc4a5222746c5b40f8ef0ac41bf92f3465aa20df9f11c598247c8f1bde6e1430a2e5e28dc49dbeaad275a106d59855f5d4d56474e962046c418697f79c41a856eb63181714905b4bc38aaee78aa25776a8f598a54201f66aea02a02fa594b0df1359bea859dca4ec3c6e32cd9f0654894c6028baad9b4ca8a0d8a58920f7bec8ac267d9f10a6c8c59a2a33eaa9d349415e6152981c40e665064606adaa88c999d8f228dcab0c29d247304b8b88e5acd70edb07e2baaa25687424fd67b68270ff59eb75eddc68c9a15d242675cd8eafa7408bc9800934a00f24018a9e100f2fea844bd9601a81086aa8397b4b0db596891fae8cfc5a5904285acdcf0a3e7f32cf4d20a145f010fb4971e043e1e2021c7e29cce431bc9f35707390b49d41c8ceb06c7c10b2e61d552f26d4959bef7af0296cfa88f22a3106a0d05e4a531fc7fbb76531bfaecdfdefa035eac77704f575e505cda35e7b3bfbb9526a63ce01a01c21b9d090b27a9e0aea6aca0c07f334a152c82708dab98a6729e1a236fd24412bbfa2a227ca8a36be6e7a21443aa513426ba864508550de4c556ecb96512d5a8cecdd53fd64c1df0a7267699fa18bfa33442873652739cce98a0e0152cc10c0ead94fa10818832c0f8eca480b21be0a1b760b96f6c852a35e5173298540d7ccde21f27db0a5601b8d4b922eeb97f16d384affb184a7141c3e330f1ac2743eab1f15d7412e2161a154a88197aaee30e9c00388ba0b439f3dffa3a55b68665ecc1d24dcec3a9ee76fe5cfcb50dbf494afdab5cf7e304e013b37f470711704bae154ed4c254028be2abcfd832810ed9bd016f1ffacb0f63087f0872a8bce2d49b78fa1b16ced77c6721c8d2d64f9c07f80addc5daf7bf867471e9079161caae38ec0037a4151137a2ada173944aa77ef046124e2931c5acc28e3ab875e682d2f55bf30267c2e316bfb53d8af5f110a7052550c2a93dd781ee633dd15d92bf83fcd8e3b640d7b04e0e05c13fefb2b3024df06fa99e30e3a4de0750b7183bae00a033a4921f1bf08bfc68006b127364dfd9599103f5d487e42b336b53d71531c41e130e233a37a859c4a2b24f13c806ef031d098048052371c7cc4d2543f5df9831fdcf43f55ff2e6ae3fc31ab1e3d21caa159bd7418147f03e9f4acf34bdf2ec80e1171e7fff8d0c967d603ead937cd0d957810b10eaf395bf4465edb023f58db8403990d8811c8c38813c3cb1c03a40892908ed7d2e9c697b55c27ddd33c49d7d44ec66a7f65a1fd512d5b1a1b22dbfa92b19e6ab70b83f9bd7cdf59893d513066c9d4710f54b3abc7fe63adb8eca6d92fbd04c90b2fcdc7067e0919230241b42c81c2ec3de3521bf134725efce8b548841236e2798bf6b25cc6d40d1227949de0cfc20ec887e24c255865888b9c9daab4752b0642a26629b53bb7a9ea474eeac2581cb6e19c0036e826a9a81e1b39a7066848aed46ff1140f455d0ba27b6e92224fb196850edeea7edcdfd1101a55e4ef213f654e52238f95e722b28beed7808ad5e97035e313497124e328a31c902dcf6026a24ea6c59309c15a70369f22a9d43ea934e0ddc5ca31562d4393d89aca447c8e5dce3d7ef2861d3c9c047415a82205181d65701008034051b015a96534a1440d36ee3f187c341527623bd17bda2cf7e023de9256defbdb7dc52ca94640af306b306a5067f92d2bd689d70fdbdee0392bc173519708cfe117802e2e018f245a0b4e118f243a08c710cf91fd823c7900ffa800ee31852942253214a195c0906b1a1a812458b9d480e0a3535353535353535353535353535353535353535353535353535353535353535353535358e22d33e69cdacb6719df7017d21d1c9088594526aa1625a71c132b154582d5825560a8bc44261b96079c122b1505823d6094bc40ab15e3c2bc4fa5820d687e5b11e6479ac8ec5b1361618b23696c6b2ac1006cbb232168c1656c66aa98155830d1a4a10d93e69cdacb6719df7017d21d1c9088594526aa1626279d1c16c54b3e562c5a4d2a2445f3cb862435db0520a0965740286261b5f9d88421f2884a1225735d623e8e375305a5aacb231d665e3eddf5a6a28a984abdbdfdbaa061b522eec6a2d980d94abb590f8e48b9a0da4ab82848ff90694ab6d5ae7edd0284538d0145f5fc601c273e5f387ce774a2965de6ca8a494564a29a594524a29a5953e2d427fa394fe1c9906caa574738d81e3165186ebdae79885e72ab92c49faf4da79c15c2c4be813926b4d70a44ff69fb8e3b528172a762d8b913e315f1412d48ba5854a72ad6529e252744386265c372d06320c6921ba6917ae3e5917af6b3f467b8e82a61c7482a61cf3a3467ca2e8f537d77ecacc143efb7cf9c8185e975ef1c54a14bd6c50ae7ee920d73eeaa6756166eac56ae68aa81d944b64695d2074ac08b1f29c9aa04987c9458fa3ec9b9e53de10be0c34f5d307f223553f0381fc48cd7fb17218533fcb0b1a8731756872c07c17dfef8225f441bf86a6ee064be08316e5b259ceb54f5d8c2a3cf844144beb5a11e5eaa187bc2c3946ae6539726d0b0dc7b0ff99c1e7a275edb3a86668d2515319cb8c0f17ef221422a5230b59548eb25f431731475947895eec28d1abb3b9629df9a186cbafe262227a4d51c4232387c6c6042570993af33ff4b0cf856ea84d16866cfe478a82a11c47d9098646910a0c35e99315c97883a219d190559f4e4eb86fd04532a12622954866342a5dd0eb65edfd1a14b96c469bd08d28c751f66718bab1c16d9acacad8e4894d6b22aeb5c127b2f45c2b72f50bf7f645379ef79cecae018a8727eac5d1eeb543bd1814925ab3cc5a4ddb36337003681243001537809eaef3bccf078404e4c5a05e48765049503c0ce31876a74ff63f2f06f50a755e135fe8435e0c8a0700397d02c012fa64455e0c2a499fac07445a834fe3b18d28589fec16a278f864d489b6ed354dd33494121ea7abfd89878aa53c37ea485e0c8a09487a92178352d2279b922253b4efab8522042e8aa74f1685444ae95048bc18948b63d817e538cc0c4539a2718a4647d9ff91a2a10ffa59382347f633f4313f0b5d1c65bf53f289285749a5c58b989454544a3c120036b0162519e3cd917e6971ed8b60221e47e1107d54f08932501444712ea573e82386e06ea909724ac64dbffcb8f6779071e33032568eb2bfc9b891b1927163e37465ac867c3256d7be0b1a1736fd22cab8b9f62dca25e3a65f4419a30c2bbae953f72817d3d8debe98e9170fed16be506de3d5c2f617323d2c4dfa657bfb2f4437fd72baf639ee1027454c387084454ed773a21a52030c8b9b6b5fc4e33033655ffa6a33c2312c0a49bf389057bfa0ecc0fae59304c5d32fa3b78f52d22f2dc3801ffa64eda780224ac9b54f024554ecda4701c590cdb53f02c5d078ed9f8062c875ed772010d203453740cc1b42b940a01892d1422ed18c8b9418434d1ac6a6ec732da6c1d77ec8c66138f55ae55c2b92695db1ce7c4231d4bad6e68aa1996b53600e5323d4d32f22229fe5f962d7f67cb18f47f4ea24b16b45eef579c167fa95efef6af40f411c61e25239d284e5a2579d59c5607588b595d579af6966d0ba574c2d3ff44bf7f67bf48bf7f683e8977efb3e60a086b5a30efaa6674fc7fc9550c6890d442141bdfa64356d7b6d09d3db807281755589d05c0ba25c200a499fec9b40d4ab0d609f3d1c75c65175e6da17bdec736d37d1ebda376d9bf6a2977dd18e7d11ccfec98cfd1322f64549ec8b15936b453dd79ea8ae3d1972ad88e7dadfb417ab7e11a5ea0511aba15cd7a25c1a88725994cb75d2348ab0c2c7294ed19f2f6e36fc5b8b796b6d3675b3b995c63aaada5b9fb262b7d670ac3832af5bb7d6ad95d2dcfaddea35a6aadc0a074811f56d26b7d6d82ff5eb6ff53797b9e2f6c476e456a72ba63156de5c738823cc4095d2421fd95399051123a9ff916afb3334e598f527adc2277bfcd0a77ecee926804fad50b23e50e2fb4135a3c34645b71b9162889442e64af9039a2be5068461a44cc99f11be0b1f2141ebf2c6c4e7ff1cba7c289a4ffc2e4b0e35269fdca6f8d8d5938ad39463cbc15947cd2e64b2c1383239261dce75a110dbf773aa47dbae4f5f7a36bc2132dd085dfaa14b77684fed573034dda06f9fbe0d3fd077477dc691c909dd0a328e8ccca5e00fa1af8fe0f201b38a92c8a55a0525c8a9faa5af4aa65fb497afbd4ac5439fe85b9af3816289aaf8e013a58aa7ae68abaaea0cd3a897864ee4d8fcb76eef6f0cd076944a2533d32f5ceb89865181310e91560e4b16b9d4561ee8e36091915c6a1da6658988bd9858a16e7256a0ba99b9b9d918c706aedb017b3900baf2db6f8c58c951e954adc0e4f24bcf6b7d59ab3fed7047d7f9d25f863bfaa594f2bb0c2ab0813121a928eccec9931d65e40281b6a8b891e2ca67ee1729a2ae7c8d61982528c5d09595999929111a7eb0d5e246a43614168176e188806417172070db738bc82eed0a1f7d6e33719cedea7f3314d030d666f4c4add545c5155d6eb529e20b5744c0ad9cb6c5f0c018b3c9dfb6b777b3dbe83c994e2969b7996e5cce75b7adbb8f2882afd13253d539a680c9f7f5cb9cadbb44cef540e98a41a854aadba3742567fed29bcf9f65e10effbe7cb34b7f7e0d290d77f8fbdd317d5a223c35449672a203aa51a5521199192285036e213b9e9d94b552afa28716786107054988010eb270180461021135c81568109e2cac988234427293192448769085235849a49c958223640a84d417542288308d2084fee95bbe16c1cd3431439f06e981160489194a29a54192a0419600d244a440c56d595cff51a9bb8c8382252848b223256b2139ddfd441d405335cb42cb3156eece040e881c18881cfaeae854bf940ea029596bed97ca32641f81773f512d584ff669bb7ffdb2c39f933080935c9f724ea79c16fb78bafcdaafc039a7be2de4ecb7b053f2d9dfc02c07f736f47172949763fb2cf4f1ed3d8053d3d6a7df2c53dc94cd2eb37b0a8efbec6b60a67d16fa286912d8de863e366bc4d7cf631b65bfec9029f67aa0532e99b2aba655400b930174070b5c1ffde95b6b5df3f6ae39dcec496589e783f1e3e0d1658675e11e8d921df87074bbb8b8b87c3e2785e27fc5e3d2773b6acbc4e7a32b5f301e1c6dbb7bdad145d6307cfde2c7f4f35a06cef64b77b777ad5d6e766e2f47bbc931f869bd5cd6557a39db655a67b74ee3ba8deb3aceb3d13fb98fe418fc97ebee17c72df36467d3d962eb8b592667f55932c2503014178adb3bf038dd5d26407a378fd7daef2b95a4749931634c00f785e2ca1f4430024321b3ca23bf88aade0ebec38f2230147752397bb84e72ccbd314f8dda2b76774fe95977adcc19b59379f3f8c4ffddbdb58bf63277dca6791f6d88c98e83822b9426012ee3a0a0c8155dc619a2ba69b0a0ae5f3e30ef8e9fa91f1c25bfc7071e1caf1aa0c8e374c08f248c5042e7260936602549cdd0c5512e7079c1154b485cf1e4822bce68c115f975c41599e74a165c0f9c404706415ed0c40f50e044ae0660af300ce11192849c145391841494f4408a2df4a088078ae0d242121ffca0092c52f26b388c054c40c4084e112b2862488a033438830e9870c40a603085940356108418188ae042196e52f27f701804e4e08a3118a1043a70214949d5add1730c31404248ec328e10d555c2659c1314b9df729a43ae7c9c1aec5c19f6e80bb29ecb3b4351fe7cff70877cbf7ce97d0fbfd20ef9f3ee903f92322cf5a9b9f04581e362488df3d2f0498ef38a7cfdfd72013eae587770805f94dab30587b0efe34708ac9885a2bd99b5f681fc48d910c8f65cc82f9f2f3f8e5bc3cd8641ec03d1346b5f632096ed03d1c2cf51fc406c5872943b027c2e71e20d20dfdd5d06c798de11f1c9175beeaf78589addfdbaee17e795d3c3d23799a9131c779bd906ce0ccd0dc0651c1370e17ebf88fdfddea36f9defe18efafe1d863be6f7f790b7e7d339c39e487ce2776fb44aa5525dff6ed950e8b7ce9c4def41ddc15aebd750a49ff90b4b69e85e43cbcccc7d7ad1e79c4aba39ad9d5daa4667d1dcd2a5a400e70ec3eca138dfc10fcc3b4366678ec105a8e20a551456f45c8ec20a9e2bdadb56ec5c8ec28a255c71466105cef52e4761859113082ee3fca009688a8f5ec631a2baf20403c34c6b7d9e39be54a574864bd4af5c7b163810143ef91ce24a5688620533b8a51518181012be1df327c8ef5e0f9204f7c7e518537d96d1b267501c418e56a5ec6b2011335299e986b4b9347caee28ee0d61047f67c737c29fb627dd38dedd69003a04bc325ec7315d7e57a31fc355c942aa9ba16cc40389f7c791d358920c76fd9fd044e23428b5dffbcfccb4c03e58469885ebe8c318dd0cbef9169782fdf574ce37b097a496bcdedcfa4176ebfd584dcfecdaf5061e276d8d3d128b809f5085953b19015e9278610c29d80a3178127cf712150f41ce75d0814bd07869ea328e088d6cc6a1bd765dd079cd25fd65cff7ee2fabb90ebef575cffc9c47594ea0faedc28aebfc9be588fb8fea1ff802ada8b150bd7ff03b610b322d75feb3e60897bd10e713da78ee2137d4561b2d2f88a742d0f123ed2ed5cc2d4140534aa5b3ca1574ea4612a8b66561ad66caa60b16c00bb814abec0880d5436b8416122860412267298d8617141cf1123b1cbcf36b49b5df088cf92cf92cf92cf92cf92cf92cf92cf92cf92cf92cf12f92dbe1c3f776e6f1c17ac6eabdc6e908b16a1e969efa63bd3599c4cc3c534506e7fd7a3db2bb779506d286acfa0a6696cab740af6a00c32d235700635711974d3276902ae8b6232b3656666666666666666ee3a72dc141ff3305d01dd35fa248bf87a4e9ffef4fd7750f78f840489c8c75f6d6767b8293e7f1e7450408d3e3115dc0dd20666b62d306858c1eced0b8d6573c1ad74264fe5d30254fa529843244addfd64343a41119142295f09d4e2a3e299ba15cec5c6a2bdb09f8135a430668bd7d036c81b3a66bee1f4419982ffb8b466563bfd2c91a1b4719df7017d21d1c9088594523af196b02aa615172c2f1e0c61b4d460c30d277a391400022080930d314e1f9bbd7cb7f1c3ab08e674c966ac36b709b6dccd6a588c2c38c40f9451f4d20ea0f8e56ce8cbdd7083b7e4d3e933c3c931e8f3f4f762aa0e6064b2e72fb5bc16e414e79dbde1726ec3e5660db7e56a608571b92cbc9c052fa7fde5b61797e3582ed7b9b89cb772b90f88fb5a5c2e54ba9c28e57227231b32a36c102828a3cb91524a2dbecba9802e67fa5c6ec5bb9c0b8e85bbdc8b0743182df47235dcd0599053a8d3e9e321738cf9cc31b4ba98c8bfcc38cc9640f49877099549874cd197291ace7429fa267f794d3740d71f749708010dada3d8dd5d0c1cb78853b6910e42cb1c8943871e93044802d390a18781762c45ff7df7f679d2700c1ad4b7f6fb4a25233c4632cf390945e127f4422f147ea1e7780e17f31ccfb9f53da351f8e8cf9ee9999ee9999ef19169743ffafa0e05bf4c17f0a97efd36e230a3d063ffa20d450178214d8ab5a4ef4329956a174e9a26cd63bfd237cfadaf6bd281327a94e71487020a51029427bd0f12e949a110241f284f0a3d1c2828e00f274cb6eb537d8fc5dc69e4cdcd8dbc09a2a7a7a7a7a74707ce61b4ac64bfd29faee834b73e49c8273a8dc77aa66acecc95d3e0303a09f189cd436353df6fea7babbe1bf171da7cfaa406f7743950adb5566bad65c178821d7b84901670577eb5f2bf25941829cd153b9856fe278d502209dd95ef4804f95cf9cdd67e9f0541368295ff95842471adb5d666a10dd9089fbc34e4198a9f871d8a2fb2567ea4e0567e45ca2f79775e03ee9bbee99bd6cb7ffbf96e05bfcc207c9a71982d7498a332ab09400057f496676df77d5ca93473670ebeacfa8cc4210bdd4fc0346ae81ece99287cfe6eedf7954aff3daf3b7b72727272727272248da491349246d260c06a9f2d655fe90cab7db694d519f6b3a1f895be86e29384c078623d533567bcf52335df478799a9f99ee3309c9aef2e8779310d793b3048799238787823dc010052209162045c19bdd2d28537786aa1a5c2274ff3e4c2235f9163aa690407440fcbe9e0305d6b48a1f0dd1a9dbd0fdb738ad62d14627bad6ab55a6d0b1fcdecd7681b33944a30143e79efe64b386ee170f880bd19372fbb7ca8832440fdfa2a4c43860be018f55d3a6e038140cfdaeefbb85269fbaf550b837054122794fc49917c34ac59943c07704aabff750cac10f575e89796ab141c110371fc326c7f96efd24190922b198604c71176216086005c5a984169e5d75d9fbac51fb77f82d26563c16665450c5c51ab1fd1b307c4f79a06b21644aac207fab741bf475f5008fa1a6d43d05390057dfd62bf0bc5d0732150f8d586b34f64f8e4d7358ce8ed7f16f43c4af77bfb20b00536979b5cc62112bbd2038140ed2d486f08fcac7deaf550af7d4e04ca889e884f894227ecab7cff79cef3623edde7f3f93edff328d5e45cc68101ebba5cc66175e1725af7817ca9f785de8d0a7a0b7e40937d69b26197b25e151ff7e9bb0e04cafb7d1ff801ad36977ca2bde2e779749c8cf91ee47de6071cd16bc3ae4f5c57f089b6b375545ae917d073ddf7dc179a74e0fb7d0e7cbfd014fa1da18a123ed38defed7f21f7e97bfba1dffec70585c0cf7bf63e20f0c7fd803cbaeb71af819cfd4c5a6bc3da750785f7b49d651ce5b8063b8f52afd3b86ccb349b754b274861f8fe9b1e3884f79faef33e9ee77dd7bdd7759e3765e68c99fd8323c5e6047da0549b53d326b8cdb965df6d0268b9167467c8519ca00b97bd1ba0eb5bf8d0e013bfebef0e81d6a8aa6a0f63aa5ffd75d8f750082772f4fb0ba1854ee4a03a5c08fb9a7d0f3f213a34e5706b439b92a62cab73ceb9b29a4478ee9c73ce99553a9a33a0a6699afe39faddbf7df46fe1c7720b6dc743a3b8906e9c63e70cdd7f178a3cc4fe4ddbde7e0ddf6ef49596bb50ec3a50ecef7e82e2d603ff73a0f9ef6e2fd77dada0c8a3c7651edd6ddb281b8afc3df473b8a345fb79198a3f2ed74defe77b60f732ecd177beb6837bbe1c7b3970bf75dded40cffd323f20f7c9e3f740fbf3d6f00ddc713550b4218f1eb7ff07079c87b7c75dd30c6ff4f3b317c336dc11eec3f3e1f9f07ca2f868a17bc77c3ae712aebcf2e228b1732b03184789272e5fbe9c6ceecf8a3d430b54dc223633334f99190e658f92584f121892176c09394f8c459a9f43b9aad1a36e763c4a5c675dd148950fb9bdaa54fc01bc170b806a11badac7699871f8fe9a0d899f9499e99333f1b9b7bb74da730738ac9dd2c8b263f0e3184f5c710587d5c4154b2b25a621e54522631e8261b49047c844c8953206a33d7f38a3677ccbdbef766106b80c5f556160079f38838786b1ee34467b62da962ce80305fae45cc8c316ce709433126d860e34e636b5888f0f9af9e3033ae7a4a53967578186cf0ccc9e71f539e9e73e7de43eab18d2d0d6d9b9c4cc6990df9cccd6dfc7d55220bb33a759504a29a594725de89a789356299bd42c96310df9767377db7d231ea31148cb365abb963d8298ac7377e60884bc1ae268e292dece755276a1a391ed73d26cfa0b87e5b80cd4eecd6ebddcec32905e8e7619382f57bb0c74b0eff4b2fa016d9fec33a735b3aee1c0710697d5b46d034fdabf269f378e52db7d231e238eebb43a3d2b7db6f38088f1a71ea5d4edcb5a7344e00c2eaf86dedcc2c7c5b54fda2f6f87a28f2b434ea27ebaeb30b609e5c1c676a72d03a85f3811bfcbe85243e4305dc7794c83472d23db7da4136f871da3912884e2011133df5aa73ef92a00d421c64fbcee43227940c46c9fa59cfeb35badf541de0e16109fa3a0dff64f01a00e7db2618d2c3e495bf29c1f7a3fdeec17afe3d82be23f7c4e9903474169c2275f253335abd91f6459966535cb6aad21c8ac8d71d750b3318a842138ba699b5684412037e246dc7944b76ee0bb59336afbc06d3ed5efe71bf3669ab68486d22905b3bb695209d94cbf747195cf300d19bad41caf4f70b771983a7a107ea9ae258cc5edafa3bbfaa5f2f4e909fc52fb352ee1225c46098161b2ec08d9ca075fbf1cc69bc05ec5edd775d0fc9cebae16eb57791cc6ab3b4fbf78e64ebbba8461b28a85b744a9a465555ad07a4b3018a64b3752a5f8e467363acccccccccc3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a3a0cc08299999999b905ad76eb3e1f184e7ff97cf97cf97cf97cf97cf97cf97c99bccf271a9142182f9f2f9f2f9f2f9f2f9f2f9faf9311a9a412c298fef2f9f2f9f2f9f2f9f2f92ab530b90861bc7cbe7cbe7cbe7cbe565cbc08614c7ff97cf97cf97cbdf8f0e5f3e5737b81e1f497cfed15c278c1d0bc1d1ab08494a31f4172fba78b1ec9669679cb6c74a75389db5fa74d3627116d6a9ab7d4e6aa56984da2c59274b3ebbc6507dbb65657e4c8edf7c60fa8489fba050a35911c64bb2a073973fb47328c325150bc258a87ae6a396c355af18933464af1596ddbf44db7da488f9d131b735c2f98b754ed52a9542a55bf603cb156abd56a49573d739f68348af5b4aa6756638eeb051bc7711cc7d56ab55aad1cd66a9b56abd56add74ab8d541a8bc562b1711cc771b55aad56ad56abd56a8546a4d2c92873a44bbe603ce3388ee36ab55aad560e8bc160b09e56f54cafe8388ee338ae56abd56ae530879152447765696c6e64cb87711cc7715c8dabd56ab592392ef9824d1fc7711cc7d56ab55aad541e0cf9c03c9a54b9c44647ad4ea7ff52e9fb248db49137b2d5721cc77174f1b9d819df58caa1a7d37fa9f47dd65a9e2f567ad5170b67acce189db139633e632fba8f159f8d8b78eae668536af394da9cbc4b5d577cf23fcedee70a8d014db8cfce67c7e5324caec658dbb86c26ba880c93ab31d636b4663583ade418fbec7c765c182657e3a4936172c5ddedd2a2cb67a7bbf907734ec94ee4b20fa972ce2927656b3fd00c72d92d8c076194cddc83f0897f7a572673ce29fa8afd6bb45b251ce833d4a97fa698734e677a7df887099e43caa561bba6a44970386cc1dddddd65134873dea024dddddddd9dfa0a369540bad4b3ccdd33b085fa55b88016a62baba44a29f5f93ba7242e4a66783652ae8734c644891cd6a9c9bb8d2b91d9c4421ca3bf20fa698f145f7590f4a36dd0cc663970d8b86c946898dac4cd04beee466b3941727d964472aaea9d9d2449be66c2a44993af61245fb980e3165193334c0349c37c3ba524afe43423e5ce90c2fad4492a911975884b9367525a39910e9d41a8144d190541c9d08c00000000005316002020140c884402711c46324dcdd50e14000a6f9042644a4e9586225914a5380ec218830c4086100000010a3043435305026c01195919559961e84709ae71f207404989004de3f761cfe64843cec11aad3e2add46b09e13cc1b6177fae3c7d5fa8cea620fed500ffff8d7c974be2b6ad83c6746809aa7d70a3c6264ff140154ba663a44a6c7b5d5dfa3b870400a548f8533aa90260a5faab8639208f12754242f3eadc6fcf6547e7c11fb390e33617ecb6cb6999ec97745aeb920b890f85736623b4ae7a9181b8b59c6e879a7431d5057132076906d4b3036182cdd8ec505ab885f389f744d4b43f62f2147cff92ed5c05c053268f1196c4fc37fc48d765b31b0a2da2308b79270d369247c0d68cf97ff37ad36203ddb74a7791dec1a8eae15c4cccbd86f6a1b77f22da643936806e1f18febbbecafb1797a8da5fed9f8d8968b3ab5f25141ff22b9223c0a6106444931120e1ed7a3d5f3dc12bbf19592de97d1a1ff93facc217d16f0ef8dbad1f54a202b93c5273bc8df5cdf29013f64a737901fc3ab31475ba73ec09dd0151426b74a05e0e8551cc03cffbf2570ada71fee9f012c1259fd8385f5ff57221f4b3d4bfe724a28be0b3b248d04ae23c453221154490edf4581f46afecb8b35b05a5d522e2860b1857938f37a11e28fb36f07adb548a0998da104b4865dce8c719dc1b0cc241a2a1d41596202c9a65a3c191810dd979f9a0bd34f215500c9ee763a419735d62a010aafa96ea1ce49b54f976aa11b4f125eaa946bb60fc676181b9b0ebe4168605d60d4b4194b53fed1948802e14d50002514f7295e14331a3b36a552e01ccb128a90507f99aac4468500cecbaca1855dd9fa365391620ac22e221260d958227279969162cdd7f828cfb58f667a5e5141e76e6e44bd6b92affc224f38f4a36d3b5bd3d6c3745300e02e46d16aded3fb1ff08133b85676088d0f9844e46e5f409ab3c92dfa05df49684f6b5989c6c894c2a0814f07311db2489c6ea13507d3d9471fee964e512cb3c7e9bc827f62e3d2b86d16a12fe2786220d905016c306aa4940d328ade316cc05fc37e370a3d7c102b8232afb6d200bfbcc8478125b170f02484354f9af875097272abf2679d604bc161f6afa537a154d806b6e4821a111451132a8b9933b1ba0d29c1da8086618ff201d71479a7e30fb55cd15b00dea0baaf878f2ea98dd1a8a6f3d40cffb0704a50fa078b9105909f426b6e0a9a382a1799c22de112de3fb442c7320fa2ffc166b59632f3e813cda97d649d1c7750935bada07ab9d8cbdcf598529631b555af6029753cb353d80ba288c70be4166f93f2f9aa906603accd263b702c3e0873ad07f7d7a56a85486475ea11ebf24fcf7e904c9d3aa5e5c7045bc0fe99d0f2a8790c2e47a524212af8f00e7e73a8d3bd8c10f865537d521ac3be5bcc1183d2b1561e0b18ba7b84ba7725be669893d5196d0d108bac3e18ba2b0e5028e50d22c017c9e3087ac2186265a6f981efc2425fb41862275f71eaae00f258507ea9bf8827f86812fc74d9592816c2144e9d422cfc5942619127803c67523374c894a6216d048edab0cfe56e00bcafc2b91bcfe1f2a5cb6742c640951e2184e92ca03c6d2dd88ced9c7526a1d9a32a1cf437e585ac9f39e81231d3e31a2958db157eaadcd3477f7ad0ac24a32912bb689c1a10392ca5bef34d85811bb86f75e88e3a41814014b14953fa5f3986c0ef6a8ea4968e67f6bd861d9d8c1b729f0b3663c0e04daa2ba153800cb569da86424bb057c7a76739a153b868aac1989346ecf63aa0abacea75b6ecda71d63c4427b0e1413ed81538a2df69fb6e92cf96d399ba87240ea14fa34358ef66dbe2103c383ca26595a7f7e11d4a7458d2b416cbd6d06a2a2ac1a05f924ad1c8cbf88ce1034d939386c6e4707a8d94d465bc5b33394a0f34504e8c0c7439b6310371c31bf452032b23608f60840e89b84eebd49c82c1589de69f72ced1883f1337370da771826dca3111e39583d56b940e424470fa54cea4d32924c9a10b0aeb52976e27bc59f6c40b2952665eb225ce0c107b2d99fac2184e2da28c9662692e717b390ed08194350357af18ad6d78dfb6246ed8ae977b87c7ab6ebebe5a6f5bb7b72fa3ec6c8d9e0a7f68f361c4e8c9134896fd88bd5a1555ca4d9b11babaf85d3ca6c1134cd02ecb37ec21901e21af03a8734e84051228128b0e91acf25f11c98efe536b062a46cd80243ce18cc209ff6cfe0e2cf0cafb0e15a09153b78358783872b92d0db6d5d20da692a36d4fec52dca4339fda28c6913a3548a8d49fb0d4d4feff1092057109d821d72731116be3719261c6346ea7d86c80e720455f38a5e0acc2a37a5e3394a61b8bc8892bb5a4e09d83c828f8fe1970780064e5d228d2153d456013c17d889d106514427968fb18385761de9b4848baeee496691118d9e2306f820751955bc9587caab796b90d1f4e6721dbca446b845c916fb0bb8a28f90252a679e87bc0e08d06eba0784f38195667c2db8aeaf48e2a370f813a292248194e30d0dcfd018d2cc7ce0c5d179c5706c95cdda04d40dc5ba5391d7e0547cf8511c0165ce2498e1dd8941bd93d2588bfac322765d513a901c9873f8cc5007a12f915faacf20f399fc4d880163a748d9038e362abc338e9e88e2be2ab06606110dc5b0920ad719330eedfc4ae9420b77d4a00e8ba318d3731e104f2d99f6858f870852889a69a22336294554ce447873d98edf374e3fc3029912b690670c1ac006626dc03bb97d7a8955a3bda8792435eb603a067454bcd27e1ef306a6c9ef57a8c19299060fe556c919da83441005026d5abb8f4383846bb31b6eca406fa8c6d56260d3e7dd47c52bffbfeb389258426582b4050034186561a0164f09e26812d999a1d2b958b32bdd7e7e8ea522cee4985c48f16d9c94dca0129800a9df5166a46c19f09c89d64c6e01449a56bd99828ec866356af519fd09d1929685cb4968a13b0b11d02a0c742339c2583d221ca27a691a2d27a0602da4a090559835060f0b44e1cae2057d214a14e0d044193ad175f62aa63e1105ad03c52718a7109f75d600c6586b3d40a0824c91a51fe19484dcb069a8c1d9b37837041e19e127fed40112f543fa7355e6e7e184c28e1645593823aa916a08e014c4e893464d668d00fe2a0b92040e3917d325ed3bbabd7c2e9c81b1db47a2826cbc90b8375b6a6939a70cb822cfd519d541c2a236760ac721479071459085b4d5229ea5a5a0008947bc37182a30f85e5c746d72583057683d3b7d0f0c5bc2870b771005bfa56102284ca08198aa5bc407661c3d58926fc36103f2b26aff3153aa0d66bc387f95d8e39348335af97cd7c91e3134f846dcc6ed3ca3b494aed220351601da5538b195cc0dca379cddcc22ce8e8d66302bb48ea06e623190f8739d0ec82d056707cc5531d766210a80c3ffe797eb92314a62725ac5ffd8a2d8ae4572d80c5a409c8ddb71c886109e0514e3224e49560f0fd2cc7e4788ef6870a6f9942051c241823c784c4311ccaceb269627262bee08c4dfecbec329412009d609fa40ef046c2136d9da0cf6bd9138a32fcff0b9788f5a9d922b0402edc3fcd07373caefe86dfa1e40755e88d2f3664c346237e6bf0f1430e66ba020b8ee49f2ad9a42e1deec5d5964c23d85e297063ed96eb475a54a714a31b715d96e32be97af52fe524fb5b631ef4ebbcf64d090deba3712837184f1c29378ebb0ff18fee91a080b7a0c85842d1aeabfd370a75ec78ef617276c468e6556b980e489855fea488cb64fe9a1486ee9dc1aa69ba3593dca1f6fa28b885d08a8ec9fa5765ccc1b844a0d07d94df4e616c0c1adc3f9e93cac7c6e44887cd7f6216e76d988ec47e3b2af03cc4f62d49be9d68bd138de02c5c7bbe06fe6088f883474b744dc6b03fcf32f1639e882632eef553fc39f390dd7b2dd82355cd344be197c9185ec91f72266f7c851b5c424798a0689046ca3efc0c08924ab232c5280a1f04e52e03b0b4dd66a6981155422109eed0bfed05016d69f03d04b07e19c1a8cf75cee1e2905cc52f839e896bd1203889a81654809ba990e10bbba15c6288f9153297f9b7c90b1d97c7a697cad120b03466e4acdb3836487a5bc18e034a37be4226a0182837fa5e933b1fe3e8c6102dad59c54c0be2d992d1b015786505c4f3d75972951b195808a71780623b230a222723d48ef3d42c00a136108fa7309d0f08789205ec12dc6290cac28c8028635b69b347302b9758a0571c66b89903cb37f710f4461ef886f7aa7ad3d8a0fa730c48fd732cac5eb0c53fa383ea4d6383eacf312ef5fe2dbeaade3436a8fe1cc352efa5e2cf6820f5cfb1aa7a7d9b5f557f8e41a977cdf9371a48fdd7f4aa3d03df5fe2c8eb3653c9fa6ee44072ee8ef86b4d03c0c1c41a739343026ef690e1e638b4bc99c3206e140e88e5c4bc3634a1c2f7808da6fa49f9004ddfc237c51e28de4188dd5fb8f6af5f72a6bb021db7b3e26d65ba2bd0713b2bde56a6bb02487dd34e51956bbd6a231afffaf597dce85660c7d74c7c5b8d6e05767ccdc4b7d5e85690ab8fda37dd564fe0526588ef0062f72f9cfdeb2f99e9aec08eedacf8b698ee0a62f9547bb3db4ab4c46ffffa2567ba2bd0713b2bde56a6bb02a995964ab7956ea960e63b80d8fd0b67fffa4b66ba2bc8b4ab9525b8f9ed5f3f97992b2d04fd9eeab22fd56d2844aaf9ad9ab85af71f88a326be29490bee531bda707d2874fdb43c903b5d25ce04d8aff7190c3861c6e4d64f10ac284cd8bd7840438d873f8ef9a71bd292eb6cc25118a932df2f531e21dd0bf3cbd8e6a42623528d9db16782082ea248c264f338429a25aa4d83f9d951d935b2f3d4b284ca1a6f2ec874cecf149ad1e44cd4092976f841292650206985130e962b8a9e8dde628be801855a3f0ec535490c692db3ae536eafc5fa9a05ce8b3ea255e729c5e67e5cc806b65292857f1d3caf014a5da0f9b86cd97180f77957a313f12d89b69ea6012b41939665d163dc971338ccb747ec9535dd27205364b723c6973d7f347792bb33f18effce7236a8376cc88ad3f99ecabb341f89ea77326336806ef4864ff48769425063a0262b05d9f6c90666f0351517a0803d9b5578913d0b4c81493963891202b38480a347fc3fd77efe9f01a087a4d5f12ef5655bcfe6dd3420fb73fa5085500c7752ce20ee00d841f01b386876bb8e60186fd07ad453b17cd785a9387900cc298c6b6f915168a5ae3c1349404da70c402eeac71e59ce1236edd5f7c2775c29dd01be3a4bc925229afd8729ff3ad09d72f131c804b61e96e176fdc5202154badd846d5ac28a529eed6478c43cf1eacfa217560fb3e261ee73dbbdae769ad28254d9dbbe971ee8d0741f06b8a7404c635fb6b9bbf4e8772d33bdd7cd69fc5fbc4052f0082eb07516b3777570cbe520fe2e2690c24001d97ef2ac8ac8916bd80e8d39ba131129be6d3f773990ff8b09bc3811c02e8a43fe55c952e4496ac301fc2d07cbb749c8f3c350d56175c63009ead850c12befda9b221497d4078df3225ff991c1cb555fe84b7ecc54d784ace619490237aa95ca36e9583362f44585bb3299aaa5f548ca076521b5dbd3147ce67fb340a5f16097edcf450428ba40cbcdbfabc35f7e02daffe844f558ddf19b83579023eac50ab2abef8e42a090a96fd7ba42b2b0a0c385b306433d960d577844a73faac0710f2966261d67a6871b37017d28a80e75e2e8e506756f6a08f182153bdaae5e720f9b259177aa4b7b2293449fdcba43a7ce1dfc811613eadd0a6c47d3e7c0af9c08a951a70bcc842fe224f36feac0eced5a9c7276a03f8b16b0c80be65e71b0b7097b308659972161e4af00575668b62ae9be5aa8f2a6f0cad2611e14497596e4a3c5f1f7ca4542a12e170daeeed9ab31cf3aad7aaf36435079efac384f9bcfe1a102a8f657fd078ed7d868ad17aa32d4228f007aa4509e199045314e3d882da4da7f568a82d4b17754152b5a7df48e7d99d8238f4e9d76a9ba3f8b10588a90a516537b4bd56490fe01006617b4e8f173be1604b5d7cb9e8847b9731daa91dfba1dc77af36679a9a2862e40b859be95103a9b10259c2ad14a45f1bf1feb5ba77192abbdf1d99ce21f6bb1b24d5287e9fea8f1b155caf0f7e2d2dba505fb3cc4273c183f2360a619938775349847b8fc165919495263398fb07935e2838c26af087512d3334c69530ce2c824998aba9f7099718d3e6750035f8514ea9c06092a0c3b59a64c66d69adfadbd32b6fc5ebfaebb71b93a4cf133c000b9fecb366d5d8e7b7fca4d191df483e6d90124d9818ab6d1162db745bed96e8ee8cfe6ee3387b147b6708a394b4500ac970904ec6df7954cdbb9e465db56874685358aab3ae36875d66ff2dd408e665c56379c51a14242aa770de6850ed09ad638c2dc24ea28d83917702339d2b83999e5cdeeded40f994235806c4415406af19752d424b0bfe3d426a3e4fb166ab81b37daa4ad78bc0dac0c77a40743a1370970513906bbb5092a82169c9df57c8b10fd3c91e5a2a15d1efc0d98f2c3fe16c98143eb864567924451ed511e0109cc85c10907e50101f48e05bc8c5b7099ba01c774dd5fdad8242c7c6a1ba476fafc096d9033bd33530a403811d72d982e90e4d7a0679e63b84b0bd491969aaa099c1ee0cd0feda7d3c63589370b9157bc7188dd215b7f382a09d2e49c2f2ab8606d726a9381fe0beebcb80e5bf00081b9e0e3b68d93d0b67beefff6d0d435e15c352e31690b53e1175e381a0553e73f2f28a70a3af50ea85df0bca49dc6b5dd22ad1558590435841a8a305ef12b0e68b1636eebbca677d243cd2bc09682a5007773086b2b72fbd24b314c3b7aa92ef7f00f3ad1980fee3c0c1c02f037f59f4d8e80117d97fc4cc9b8311d1b672f00e59be83fcd89238d0a1d0911d51a49d5aa650564e3c7302749288751724ca7c6109c27fd8f24663682938dd9121791b9303eafd015f955c60da402ed5b6dff9bde19e5f5a715e67aa23781d0a8e8ad0637b856bedcd6d0624e60bc750d87666ab61256298db201fca98bfbabf1887c29814b53d89dc6b74c08dae1f5734fc9167d3e6cecf9b6c1182ed0b176b8ed10f2cd2b5fd8788de4fcb5e8bac6ad60976e99b4629f972a18045c07002e8cb17a16d80152b781c0921f304ab842a2c64c50678052db7ca679d22f4e6690b3068db08fea16a1218895f817a6227c2a65dbf5f8e512e450208b101181ec1979c6e3d9a687f411815347885e4c48c8daf95b1368eb9b254d44b1059c9f1f11a80ee4b8cc65377aa0509350921adc1f35600486a02bc5489a184054f56841db09724bea215ffca7b3f3905b51f923f296c31d7840f077e3fa5a6eb9cb34eb57f3f051f14fe272e003a82d340419a88e0a6d905249c08b42ebe7d5a004eb325f9fa137c315e73b6ec7e4ea16710dd802fc11692d9df93d5e255fd827ec2705f86a5e729a9764b80eefb579f07304c05f8cc89f07e92d8161e67300ec106ace2b7454c905c901b94fdde9c49a248a811df89ccbb9dc6b6f5c0e41c875b184a25dc1e6ac5fac3b5d29c54904b66b379f355dfcd4a7ab0256800110c02534a0f1292f63e9ddfe8ba3190332c06117281034b606dc903f319ecb2144663b0e586a7b0004dad335adc797f9723c0db899d71ffeb57f0824fe1200eec1d91ce269784c89215dc8e2661cc0a329ef78d7700be3366302549fca2dee876e8c522d3192ca0103446668912cf99b2f8dd6aeff394cd3e4349b7c423d6dc6fe879736dec84e86dfc6ed0f3d27b6b0d5684fcfd866c09af81d4324c9b9bc4850095765ba8bc06b3b5170558185ad910281fd16a305f4ff8ef2a9f374b146e3cf8159aee2eb225640294fe126ae56928c00393132254193eb99a0a5a2c3ea714c285a4d9c062d1bb79047d28741d8fb9a59843675c5331377ce0aa656c97e433f54585d4797d42c219c2ce8dba03a91ad3a578f0f2494a7d5e37664b2e160bb562f1a014badfe37308dbd17068a4d28b720921fed3302c3b5b026462fcc1b1c2cb030bacf0a52710453d71f3745ed8f851eec765c2ec0f922242227b27c65390528f8cea3e9752b40cbf81a11f1ea7aadd77a60cd107de8e79d29b1f339ce347557508be52500d9096d0bd9741f8d960a3342ad29d4691f312c92a3cdcbcb74968def623c990001dc292e48bc88ed07624704ba524bd0ccb6281414d20782f205c259e020c2db317b53408a869b1b9070f993baa7173915f43d1152ed3cf1f2920e32f47ce809d3881dc3c0a9f2ca413d99898d8dbb44d47651c4580fa6b13e41b05e209363e09e9c63797850ca0f70ff04e1d4384a47f50bb7186750c9d99d1b475b8a2502067615ed2b31c1ba5431d9044352e15c4afc59cdb0a4e335e044889970425196aa142b76c4b5bed45be3881cbbe5ba2476dc362089ca4dfed172489724e69c4f13ca197f3b155c02158f15b02d828c30287f81d350fff730b0ab27e037395764645262b32864f4d3c9b39a402dad0ac432ddfb5c81776c4f9feac2be1d3026863f9aaf67ae1cd0ff829f18c304dab54c004226fb4bb67ce5870592271fef597def67ea353242eda886ba8a81feef5d27f2b53c739b24024b2e35711940c451f886aa44daa870d3c2d985d831cf22e34af8cc389f568492c960b11d9cc7c27cfe8d3168c83d36edb9e052e43867036cd71195b44eb604d169d1ab088c5e0bb76eef7343fe259817c7b6819df5404f6146af4c29e081cb0a47e2e56cd9e84cdc2195643764a97329028ddac4445670929ddb6790f66b62ea74778b5a6a288a6fcc53203c862efe733020eb35a0d1cfd2041a951aeb61640b9ca93605c9d470f9e754fd31e064ea818ccadf5e7bcf9d613966b0912af048ab3c59be5cc586ad04dcec168e18a1673b793edf06379e31fe405f26c0458ffed5a6b23301aa9250760ef18a1c169c51f495769569338abb50400a770cd3e23f05d6e3ae5078c405ffda59ca079d3a82683244aaaee0c043e7ea3971919640b50b3be3aee0ec1845d9492d05382c03c8be21a86a5b1fb8b1f0290c87c1188217ed920e70a531453df9a87bdbc1995fafb6d1b37ab6f6835116871dc1c0a397b419b53ca5d9f358211e529e0fbc99a5939b6a09ca0a0b364d0794cdc6039e9deb4d2f303d27b9b86cd33a02c1603b5bb678cb7a8f48bccb6547a47dcab25b543c65bd4724dee5b223d23e65d90dd17be6842d2444c5d1c1adedb8702d6ed1fc1ab8f1776906e16bee3a4ef0fa4a6dce067e656d4e037e6d2d27037fb5266703bfb236a701bfb6969381bf5a93b3815f599bd3805f5bcbc9c05fadf99c24083ebc9f3f787d3262fcc0e62113c0aed1dafe4f1d8c5bbab35d5dfa6586792e42c07f225e6dfcadfa0156e9a5aec8532be36d27837c60a9327e5ab38384b997bc49bdb2da4c24706afb73ea69abfa0ed4e6acb3d2992189f9493e6ba1baf2511257b914ed345637773b739808d4ea27f1be1752e85999b8158f2009fd61ef5a5b8fa803f30dd0c9dd050f23ec5481c58c126103d846cf86f254ea55365a92ccea1dae37e22ba10bb501d023eb119b0ff68319c47d1c1a5e0f40d3bd39b0db3b07f30118bd6a14c23d969bce7fd7b5a7d66bf4ebdf246fc0a25ff00216259220cdef5a9f594abe06d4b3a09cb28f8b7431a5e596fb4e76b34e398b02c651247d72599ba593c5b73da0371148a399bdaa45bb732fa81225747290136ac0bdf16ebbbea92f801d10d81f8a75a02494df4954dd044cf98cf8643509857fd4036931d60df9db0362009eeaaeffc340cf9010982286ef68624fe7af2810d3834561462ed3abfaae561fd2e941f0a0d23aeefc8ab91037890ebd31b1f9232fa3c9abf8774e14b2024f25cc42ff11c9821dd69142c0044172e8ddd2219a9411b1e44f11bbded6961f1d27fae4ee41b8128299a3415176a22872360502aaba97e84f98b6d079fb93772b688abee248ea5d008fd85dd7160428113d0d70600fb7e04b1b220a784f921862f90c53bdf632376b1d97afdf21701ab8c7874d5a037aeff774a347c186d90ffe04109ff855ead33fd16446e2a81dc0841563ad6e38dd7feb970a2ed8668162104dc531246df1a231b30d2033dbb44b15b6d2f080b3d06b44e86bfe0ec7ecb6fcb412578ad023cc7935e7cc3997eef1ba675de64aef9c1f7cd663a3626eaa40ed91ec925e3664fae5c81451fc16d46553c2401ef597d3df8de82525bfadd8a701b852433dd6e739ff50767d08c93d842c0fa13bf499fb9f9ea86787083b2cbcc280061b45e90987e1423b50a7cd425fde23fb46ac3dc3d455400877fe9ead3c442ec85dd453147f6f9a61d3c0e280cd30178f05ea118b2504babf0a9d5e0ef9a8ae35bbe20d4244d01935a0cd4af4adf4e5f33bfb5a54a5c27335eb2a764d67c8262b05c2a0feacec78fd058374f8405723aaae37418f602060a2e3c96b5e694bd6c5694c6478b18221bfd40fc6d6f3747b5c074ea370966bbf82e0faf23e44dfb0f67f72a38e1cf1df4fd4808f5d7815a823f8e794eeb89713f90655f0ee0391f89d85ae20d235ecafccaf37ee14dc41a5d88433d8264cfa79c0c379844e78a690919490314db61c61bf602d64d8d6dcd5593d9bdbf950f338dc425b4a370617e682c5e65c69c8a62a64b6e0a71e950b418f79371f1d3e6e9f08811db52036757f6ded44909c2b18d91676595127fc4a2504b00b30981fe52690127301c67e6180697b5dbb018c74ff320a62038d50de8f019c1fb0b80c2229e0538c6df69211341cf2f68ea2d1b50a2a696500ee6967161382c6015db75e92f64c4c1d1bb0a6eeba6937dd7a0b962ea78f282fa19bc2125e024d5320a9bc52c23fcef74a4fba2262438925275c7a0fc894071c136d0670d6fffbb58e39ec688c89ea784b12382272c4f686451c2faf70e09a689285b253c78117279c7b3d2186afe77c4b70deaa51b3b67860bf1a4fabcd2b040fcdd84580030b056a365f5656f6099f8f7b141db2e8584f28d034b33f7a8b8a90a1010c46f89d764f8bcd07fe6916fbddf424a7206e617d9e2f1d8434040e0810f6543de2d62c861be8143999aad396b98bdda82249943bc44f6ef2fb17d1d070035168b2167cd273aa93659e4fee66e5eb456f12d4727333347523c3c2030aed53993e90a5f01be837cd66bdccf145b4caeecb9d43f06c14cbdbbb6666cfc78c2edb81f745619e1141d79fd75d4e9d6f5d3b463815f9d537a3411fe0bd2a55b75ea64b68075d1687772889a129ba6e7317435eabaf515dce035037920a40beec0b0096b0833f70a319285f4a7db4735920d6f6bbff97510eea0d3f19582ac163484d6434ee8e750f9430f04ab4b728ab9f9b13b4f8df3658219409141f0401d130045d6c4d35528f0068d6cb592f81a3302683ab709e6e7954e35a59990b7cb66f07162d1cd08a3d9e58e0f00f2a0f88ae0ff7e137a4549535da60d293aaef99173e3e4aab16c5c60cf2d38494a48aa3e50250e7792ee13218e8649f92c61cb37047460ce42c8511e1a5601f3136f725546bee6795fa0a792aebe24aad0b508ea5307285e646e6d6b7a3c19cb73dfd0857195108fc0a920685b78af9c81e7b0a14c4d360740afa578274c956aeec89bb758d9fdfe8c0e1f98caa664dca689cf9de60a055b1ae36e8334f73203a36fcfe5104f7598da2c7de99e9f1716877886eb8bdafcc40f9fc0b411ae15693c0b5cf8f1f2639f43868e1946385622edf73db7016275c90feeb4a6e4dc1440cf5addfcde6411b3a6e3a0119533962837e6548bebb9aa1c74efee1b5182b6972d990dd6331c1fc2ba9da97a5607209919c4acde36b1a28e993e01555ee58eb8dc0de8666d1473c7cf6cdf2efad194bfc78bc762208164ff625563cca94653ab65fa839116059565618a0627a3ad2751c44f44973296543b4f8cc2418bfbcc7017ad67c02e5e657e6c3d3900a73841432cacf0a19ad29e40b166c1bf8ab733eb6940cda6605a40880be3d84000e4336d886162474f365a2df21418f6aea1c9fbb4f162a19b9fdf3edf2e0d9d3b56e55a68379a5dd2dd3fcfee993d1f78b571c80135c906f320cb1ab198a410d69611423f64efcf86aa01149d05c1e60e91543d2278a852e2345cfb60d0b66b3f91dc0ea8a21ab6a1ac631230db9bad26800e52254234326b03df695d9149380c5311364d1e57b3faa70c0698e240e2c3252725578774fa13aa58ae54a3bbef83e68a58e20977a022eb112c17a5fe7286059708effe21368cd82e324901487cc393f3d008509dcdabf22a41ac171867c06b603bb03fd190919d993845f6991af73e3a8b3106aaec29a055d0c4505d2c27eb91d25b51be82534da7ddc47e88f06fc8933a562a505ca318c72d55e4149f48c8f848280a9d4385518d69fb3c5d9fdccde64dea1ee350cd2f95499448e09adc490698fa839218b669783942f2684201a141e9839ff2c1711b24a1a5b2de6599981005cc8a98372ab12b588b19d8e8e8cfe0abf0bc65f56a19127b104dd64c76050bd37a43ed11cc82d2547af15c0c9c9036155f760e56992c741e64ffd70dc3c17c7784261d49091e8a85dcaf7df1d9008997edbb1093db845bf3f99b7d16afe3a76f09933b21d80c89db4c6938d18f923d4d40bef892e7680f5d1de31cd0be42f1887283646d9b469527513f56a02010ec3ba6a66149367819e73cb31448829cc8d074a2812083c249d9674a09e68ed337e8e8b5c6ea413c7a4b0286b20205f7548aa6324dc1ece92a7eeb1142a28ed491b505e567c94b537e1412f5a8f599eb2100d0f071cd13360269bf523099ef7cbfd66c03ee91c3149126b23b9ef35a5cb263175b0f59ab57ac7d822d543d3195d7ded9028eec0a0898a70f21086c7ff840945470a222f0d34719b96a43e2f90ce58c10f853048bb55e45756ab42223bdf0f8c04ee999bf37cc842bb841f57875a409e141efe9199f0e3780063c920812b8645ecb9c2a747de5e27e5efcb50ad4b08f5d636dac62d812989800ea2dc5591ba3ea5474e51f224b995435dc5c72f0942ee8690bee289c52835f1f37b96afe75e91b631e256e3147eb55a63c9b481dce04d0b65f55264f7e4356e94ce9444c3c6852211b43e2e87431490ca8c93fb6621357cd3f2536305268a98b0fc72a218f578e800d780316e09c72dca6f9ff5b0b8ffcff82b27abccdd671bd78afacc1d084dd3d22e10ebd24475dee47c4e5f0662ebf0a05846a380568db85c71956724a6fb6b32bd451215aaa99e6c3b85b5f191a759074e80eaad35a0f44de0056fde685008427bcd7bbf1aecc82d96445cd3dfc9e9880cf49f2bb3d74d6143c6bd0ad20f16e6b6cca0cbc586de7a0f515bff76e0b1801f1322db63bef45623b14fbe7989d785163e0204dda990803273b91bb79d71dfe7d28a4624888aef89d92b4e66ba74c1264b978cfedea91470704306389eedea42993cc17a33e15828bc1398b36a3017b8dcd5dc41c0721c6f018e68736ffe7cc231768879abf0af0422819fd131f407e229eabfc40d746a8c1f8e807cbf51ed112ae9d91be6387e2dcaace980c859eb034b503eadd15593f75061d96e4067d05a23e7a771c3b6421f4df3c23c40dd0b4f44ca2c83fae0f7a6c4f0946115e495f6496a2f100f5a80efc340ee745652ae21cb8e6a3698eff33dfc1e50585c646de4bfaf1dbc9f0f72116bac2fbc54c817fa972755d151d72dbb4ca3e09c999799504c22754a582b990c2a215382992313c58532de3a05df30c95c8d790e3bb40f4681dee7d4da11dfb9a1b2c15de08ec3bec41633ccbdfca4e96366af7b86c52f14d2f35e4312670b65ccf43a0ab965c777ce179fe882fab944750826067d3ac0301a3edcf24963e2b1a9b201a8d658529c91bdf851c0279dc6be62ebba9d490d1f7a332bfb24466cadf315471b9bcf5f2c25afa784da911ca8dc166382c4d691caaac67df401b1bf40e81b1cda03868a01578db045346da264bd75580a5f80a6541fd1958b6ed0e6938ca5a4d92c01ddb1b8b0df18a709b5a6a45eca3c348f228f880e16e63cac90d6c94002fc62d509093fdca8523e543240bbf0e5e9ba39f3ece72db8ca16f9329bd49886c518c485efb11689007100bbe040832ab16844953c0f860146ebc015fa50e2de4c35a2c52fd27229cf617cde79c563c96361ba966ab0d956de16c05763e6199fc9f0bf587ba690695a1a178c8108aca146267010263033b427e499ff3e9717d7f2c347f140fc74eaad9c4d975cedf6bd89f977ca06d86dffbf5de2ad9cef4d83b7e568eba76794cc2b7007b12fca3b7ee30c6b11122ff910c225f77262a1a4e20d90c265fe0a3dc5566846dae60cd931d419928f384b5848add7d039e174c6b3ee2b2f85f19718e121a7d556702fae9b0557aabfc4337c2a0a78e428cea813669213f4e771338225f1d0aa920f757ce5d073644ea331545e0034e80a8ac6053ba0f8121f393126131b3be189c7132d4b58f4f585dead605c866b54e47f051f5ab5263f4d1c4a9a3e9cfaa9062900329ed432d39c3f4b7ffe289918a4bfd27e5a42cdf270d2d0e5ec8e5509e38a076fd25eda8395e3dbfb4d633908ef003493c444535861c04931f4dc0cda9b93a39428a167cc7426c813e608d41f7ac21b0f09d2682a486ec639e7d2a37f2d0148b7da8f96567602406ad239f0c0c58bc4832b5a53438903940f1e80ee69acc9c98fcfc4119cfc981f2a08d2c7f511875c60bcddd11e8348050b49e0fa73dbced64dc4d069853af0b04b53eb93a2540d33509d6b37f3da800a756602ad7278d8c2eafd059c8fdeb5d8bae4b3e2c4590a05c5d766cc1bba5ac4d4293f50a2105ea344ae0dfefcc606fbbd64b57c4585376680009a637ecdc13d902889041cf6c6c58c0707c4eb6ba886eb23d58068ed8266622b0ba43e0fdff969582b0668ce4af471ff1bcaf5528470a73bdb1a50d892ded893faeca780b08654927a31e3f745170bda17f941e4846e9449c25144a4fbfdde460ca9f3065941e728b75cc695c7dfdafe01045e8d4868f0d63f0abf44d74d706e4f6308089ae4b321d2422212a18dd7818e907193b1aa31442a1f2c3b9b73ab8a84c79b94d1d3b7244d173b8c72aa31d6d50c3726ecc5310b12a42a7063600f3282d1838c9e3b2f89fee8b92d7528ff81fb70528f84e738d21480eaf8ff2f752e04dde2176df22512e5ef8d8d5efa1cf846f7eb6b7d2e016a0cd84e17782614eae4db1fc331681e6207854f65991f590473cdfe7bbc20046141af07ed438c7dfb5c506c89a4cd4bdb0d05c6bcdb16c353a8127f05e705dd530353d2ca776d781352b01a2e66693ee41e02c70b3f6545af86bc8b4a5f3218ca65e2ae1d6d1c4d37d12d0c791ac957a4a346aeca72429d39ac238582a41c520c79b78011854e5d4c681d2cef3c52fb7a29fa222553f9ffa96166ce0ab100881541791540210493a55f410b9b894ea2b500d6a384e046a8ba76843db48a1aff2e4b2b395a3d5c97526b433de4ffe6304b8104d84ada531a92d29411b1d83d8f7d07f22a32a4089acb9704045ae8723664a2f649acf26dfe52d0ecb9912b00615b7d7f83b313a6e5e0389759b57f63a88a66ea7e0dbdccb93c2ebef93062f5475c710ddd520d1ec375534696a266d425b2a483580f472461a1360c37e49a04e3b22bc7b8623eebff0412951b81103d236a62c6e8a57dfe1924c9eab934c5c7255a582f4baa293b92d2b14238a2cbf8ae7a42cf9ef8dc8b857a9d8a41a14d72eaf2ca5fd073824fc73136d6c79633bda08d957b2e1a73b196c41882ff1bd32c3c80a5b922571eb0555c680f898b729d79df1506178099daff04a0e21afb81eb3f62a912c33b83998da82dc6cfbf318a935db4325e1267e41f420e6f6fb2d7c37a6f6cdc62248f4549304d9a4de9da40dc0866225f95cc2b2e2188f9c559ab1c8e1307a12ea52f0fb3f202de141564c0e4384134c91510bf995ad0e7d6ed5d735de66c689c944d70c2caa5fc71832822529e2c6cf5c509f31093b7b68bdc0f0eb7483f786bddaf93a6e12331f3a782d4bf9b43ab9ed5063e62783063b59a02064d6446bb16db7866a8ff82e2fa8c142843bab3ce37f30aa5105cdf635ff551961d3d98370b487f3379a824be791d2354fb9a324d46a316d27102cceb966a4d30579e9bab91600e0a1709a13b2b93c3c0663d030820d0ee420d01d204ed221066a794ae82b6005162424ceff24483704a0e31146cca5c86340f10e4d7b2ed6219b8832b964ba4e61f2f20d90f068f0a3c8bb5c0eb390a0d46b2fe52439da116dd806e4228a7a23cc6204f263a3dc9931dc95b0af506250e70f44b4f970232c101af2c3a8a5a96575480dc9e2af49558e057a2904af23d281285f95a7c096b1341ca0edeb10ded2bae1c7e91716d44cbd1da31adce1983f71f9274b02990d93744487fb7753618f700b0a6227ba51d9b89632045caaae71ceb5c0f2b5d9979bfe9f9c70d0ceee6860cf14064bc60b05989e51a1ca9ac498d6dd7f614dc94805dd1dc0b09859271f9e1d14deb93e2f85fa05d1ff0789af7a8fdb669051437fd040a60f74183b0283735422d2813341112fc1e341758366a55cb821d62c63aaeaeab0fcc6af69ec72f9c49497941b4c754456d3545c70b071671d8efe80a05e74e583e7240206c2765349f1e3fbefd05fc78ee841b6fe96c99d763bd1d8be8bec6b79732e825fb4314bceff94a2368135fad6cafe7ecc5eb449a638bcd1959472ba2d3ac7a2134d59fbf41df8c390c0c5809188acf1e9a69ee6869e64fc34965d9aae215bb73ee806c616a64615567cd3448125d1a49869995d37e89d2b30aa83db42d22aac58e40125531ceefe2f0570cfc261d6794f7eaeabd4937ddce7610f1b87f10ffebda3a42e4144e2ccc0205926e23f17b0c9c1ce6ba00cc77e16d12762f62231d6f6977d788133c10c7d94261f5ee6a441600c1e9a9c2f8294b9e09f6c4ff938aef0bd4089eb780ebde6dac6b5ab1ea052d3774caa41244b17a8db5c4c112e6c81e5bfa237a427e7559cafa87f67b3dfb2029fc94f2ddeb6e0bb3fd4d3989f01c790771593b2df2b2bc51e780a1f91b4f4f1d335ec588eddecc0cfcf5fdecc600c13c8f9054f10f8b0e2e4de8aadb6c8154f076d0f0a3b73b8739e0d3e090539e5eba14e6e9afc6161d20f11b1b8f4202aac3d2a3bc69fbfeff99b0a649795e37064984e246fc333fd6a80dd84c0504d6a1a9770a25167c78a7c278f3c8845180bd2f8bb3e2ade6d72dbc30b4d7aabc580bfd0cf450404932c1ba26d535b16eed5a429885f9a758f6638cc7554394685e1aff538a6445d3ac17f9f9cc205d6bc3cf6029a56ee16d470253d9d17481ccaf3f9f4e55a11aaf5d62c15a07a72cfaef5be53592c8a05602334e6cf081b89a8318ead25076c3fc8a52b0cd9ad3abd579e73391570d6a5e93590ba9abf897b57e6e8023357ab24031b7cecaee9cc96656df2f7ae6999bf6a687417cf7844b0bdde1b301d71bb32ce6b942c04fc023db7cc7c826988979ecf25eab2f14640f218d0f96fa29dc7c71c8bcd4395b8283f1255270051a1968e4458ae04d0acd2789aa8d2002fdbde57f609f7aaa7087c401df80c58cde09a7ae8a615ca87c3bec10c96e1b950e0b44e4b56bac859146f00dfac3f4c81e12fae41014579e82a83feddc267f8d773accf00a8e09019d29de1f3cf0cd8a59ddadfb7fca97c37ddd7190ff27468d06e860aba1e11e6bde4131ae98f8304be9c4325119af9ffa69d8ff4e9bc2b476694a41eb2d4c98281025b6af59f8c2bf325a4b5c8f2080edccfcd1e6a2ad740ec7dc38816a2bc7d9978ea43462803f3092461f08eed08618f9fa051196e490b7ed20ec6d7b32dd4e92831368e22c54d988e6cd220c01a478f4714888e4590e1d43243ea3bc870c985331baabd189cbf1009b8cbebc371a64cc71d90cd323f6b6e342051a9eebb63ab49b589a6cae91217122efd128ad7dfbdc911c34ef583378190ca4c5e80e22f8e07e58d49bfacde71e1322069ef7b8b92f1740fa9c244f3721ea5063f81576484726ac0e69c5a17c80c3c0beb631727252b0ffa1d52d8836a2fc8be88146d3c277aab21a66664c5c0ca70a34df488746bf22d1dd27a27895f6bd41f4afd87d3a10e5989d5e8f79cda8b28a132a6cf68b47a1a34186856707327b3272decca0efe8e8cbf3489ed77389a37f568612d3349ca4c4b2b9bda480474a6ff9262fd499fe29785d5b94781a736cfcdbf4320ebb0ff16ca8adc9bee49450d0e9ab88f50da6ed5580bfbd5ae53e657fa510a69766090216372a6ebaa296860e9731b60da52416c27d4167e1e3504aa9879bb340fae2a55ea558e32a2e5cc8ece2ab320bb22a7e2d8587db50ccdf3e018da476c1dfe2a198a77f79e9c6bb2b15c48b6b97f220638e35952644a41cb1a9f07b41e61ee9ead523569a2c8e20a93149e3a7b9053fa362bbcaac07dccb39e77c0466f189c1ba9e327aa4d9e45101f8f2d21df8af90becdd36d84ea2656aaecec3e092018ff1637ca766ba93040f9ee1392cf3ecc3b9137215b5f4722bd03812434c4abb560ab49417f6e97d31ee022d2bf8810690322adc3a9b6e2cf936255fb38312ac09f577e7a5d9418413668132a9c1a5a403c8a1393282181da44f3f322230a65cefe8a6eea532c97e04f7f85fe3ce4509a604c6cc29378d0690630df6c8c9f3252f917a7f2897fe2da0f93cbbba92486c5d07d8bf904814cb6f69337c8f87654898caa396d71921e52e8762ee8155c26783bbfc5551f48f5f00e477ea30ea4b5833c1c1a3102e56c5a1e7732f5a8ca006e5a5917ab64899240dd884fb5c3f2b40f96c1f7ac0904dc8dc622622d18fc3c97f3f18920be150d55364976a52288b15431a20af10d57dc10181d1350920abd66d736a263c2d18b47cb363eb49de13203d3eea550ed0c34b307d43c1836e44c9cfb871c3aec673671e67c1c7c70ad54bf5042530f0fed6f9edde5bd31bce86cdc6b6b3a2556b5bca6726732ed7ef77d448ca8b1632ae5209d88c46c32174fd368b3ba991eca18a245486c0d7980ab590f80aebce76f1972746a4aa01f457059aceae19d50a8259b61f51ed0cac10709e3c45873941200aabb2020637cccf0722bc5242c8aa5e8ee7992b2e3be26a3e2fea60b34222855c76626a2eb00ce65a9f14dd62283fd462b405b2cdc4761c4c8c6581f6de9716208f5b05328505917ca06ec8e6dc8303bd9bea6d7867655c19f9a209e2b36fe9634f3466e26688cf5e891541f14d246b8e202e1237ddf411aeb7158fe436a1ad648b4d28d071debd9221d301560966d0cb245e8c02897c2b6723f96bda4e61a66cd0b200fac10718b15e8091c3d3cd4892c168c64c729ee8c01565f0734b70a1cc3cf876f46c7c2ba58c63324e72f3105fc86b35e625a1cb0b6ce5a36339684ace25a60ab6c754a81715c97fee6ee17e0971afa8c45eb816bbfc1d2f5fc9ae9e16353970bd1ef0f1c3dc90a5528066338a0f6965bf1cfc17bbf19c8310326f9b9d4365d283bb791f7d760dbeeae2a0fb5df461f30e4b5830383d489e54aacdeca13e7d40bafb82e280706a50af7a1b9a207ce911f6a39a0dd00dd96d943c2403d2e93e66c76077c416459766343d2bf413175afc9278d113bfecac86c2c2b2c5d43067dacd05e4b8a6527e0c356a09ed254c9e00b6564cd8951b7ff7e2960216b504d43f0c4503fc50459d85db13463fffd52997e13694c2e7d05e25098c390d870f7ce216d587bf2338da03f7f955541650ce08e2f420287926f19231a789182f53e3e8b15407fa2a40b1e54652baf3ef199a6b09203e5aa5041bc78a263f980c35c6815155617d7256e9ee68f69de02c7f3d4d896d0cb9ffa7f134a63430cfe2d6d57f79f4999f0885589a8271cb495208ca2f6844af4c68881b57a42b13007591e1f2b94b6f32c7afd2f50b2b32b444e8e64bf5f7652fa1e0ed3d6201fa99d36a488f38c40af301f8363144001b11a1f548a3ed02d47282a5e538c0c3bdad8f6c05eb464a8bcbcb789a033b01394f7147e03911ad0f3d66d00b449de9d92c060bc8305a3a19f3d48bc25a9f45e0e44cee4af912c79d9469139428bbd14b78f35c62a1905992631b9a20e0dc0a2b32f53b341d79252cab7e9b412a33bc8280f1420cfa2a28fe6fc3f98e5cf8f1e6569b188cbf74327f059649719d55c67d52739bd09a9df853c80828e001b12f40b4ced67d53029d25f1ab7d6be59b1b0f945b9e86b30bc5277d34b71a30d59003617da7e84199c005e2b5a550a66b4a9d141dbc3f5a351ce2377ef14fbf7f57bb071180be902c567cd1fc7472bfe5038e32c0f02db6547989992e1c9790210b29d9659ece97cf542c80cabfa437abd595255a8d22fa5628b37e93b028d80b1a61068e36478728b4b1903304a36828522ed850909694ebda21a79797acffb6f7acbdb6f7befa17ffad2937efad293fe493fd9a49fbef4a433d24f36e9a72f3d13fbfbdef36ea2ef3defa3f8d2866a94a81665a1089db990891596669e789bb4947d7594f16884649e97edd73f77afbff95efbf3ddfae7ee35fc41992fabd2f7e6fe8ebb9bfbefeeefbabfbbf7eeff62754efadedddf757f77efddfd5df777df1f31f1b6f1cf77dddfdd7b777fd7ff115bddc73f7b777fd7fdddf7471cdd1bff7cd7fdddf747084b7b777fd7ff119ed6e3bf5ff358998baa9a62c0b12d6fbed3736fc420cbd5abdfc2856194f885aabd8795f96fbed7fe7cb7feb97bfdcd77586df60dfe603496076e8ec4326fc093f11003c0beea8d40bdd05f4dfb00bdf5fe37c9fbf1f55bbaa43d62ac31e3e68174baf9bfb58a96bb2d6440bc9eeb22f88fdb7b99d2a27439a77d063d5d1c346153251a28850000736545b9fa676f747b9749d2049bd6e0677c534832737dd3bf565fe8b301b447a25fe0ff96c4f71d1f97138172c4d9be28001ff257104aed1dfa5cb4966f382d980323fc57ba62122d75a64500334a51e5ccae2faabd6ade7fbb73c08415285ad2262d705638a9ccd096cbe655e2c2501e37c5361fb79eb30008877c08d4f825d71ac74fafce8269c3b48f16a7df4e4e803bb946ff66ed8f41f6a56374dc1505db52a0cf86632e3ba119081001ac8ab8ce3cbcf911ad60919dcbf8239b821f6016feac7471a7996469cc497cda050784167e53e30f4041fb2f3459f02a6863a9bbea1fb25b4f43924931f9a9c3c9b3f08b20d4dfcba3a8b98e4ed0afee2ebcb71a9dc49f7152db81ae96367fe3b7e0de180382d3052faacdcb1763641e4950b0ae1c2a8282a4cab936f69e6a2c483c8e810d256cfb545fc205eb225ca23f4ba1f88aad5008a4d74c218612630ccd0c3be004b94b37e2d33028abce10b932deaec78a5b352c98b1d70839210285b546204b328a746090c7519418b8cbda8f545228e55e69f708de328101876af1e58b01fc2d37a3d42228478f6b901eb714d9b8745730dd40d6bcb7ec1b149e134f30b2c4f63d0c6b98dcfa24ad9bc9581f000ad697b2e57f197db83c5992078c8604a3faa4f47068e4731db68855f06e1dd6c857412b029c2a4e61d63dfd38865ff60a593290c634b78e0351f8204b6cad7fc93219f928c38b820679654a4c700982a4b254f8965090e2412e0f760181ff8791acb8e910b10c3aa593aae850d69e6af63eaecf39505d6322b06edc4efcc90ac87b153a1c9532ea209d3bd5c7d872c8bd1a1a877231bb3471dfbfe72ab7d0b7a51edfd73ecdfb82b5cfe8d7b39e77602f578da89af62a85475c10efe691505b35aeb20bc7f39909f1860cd455ecacf33cd534bc1569281c548fae827da2e4364b68d925e26dbb5bede38fe67ace68704849087ca6cd2e1d9fc7fbfaec6fceb210ecd0913052d6edb8998109e5528fda846e586b759eb1b2b0316fc18510b7ec3206f58420c035f4933362e4b490d3fb3070fa787f606418c9f72fb3d86c967f40423216ae17c93b6183318b22edfd4100512b4ef5a19e403bb6956e129122af8405cb2aa07236593280f001a203602e150e013374dd6060da4216ff6916de2319037c111545401c7431fb6dfe0536c561c2119643d881263b9053a76965b976d9237f7e54f37b43b12ebdd516404e48aafef4abf4c4498e5aad43488b315c3674e069466f5a3b42c5ea528de3610159b1d909b21288fdff01cc178601f10f4e76d6db48d75b489b25d6db24ae36c57ec509cb3dcbe2efa9517b4d2120521619ee78436cb3a370a281cb0fb5700cc940d3590adc175f742845d9381a63aba8fa7de60a284bf6a48ea238d98e3c69a34a8629aa6d1c61e1d80476ceb5df4ffa397cd1d9a9229babe1a10232fe42cf20c4805076de05098e3ccd62a5b252a36a91fd1b8c5e8a1854a6dbcf21cc8fac4951424731becb46e0bba7b3d99dd92c97bbe44bd1d86d5c0b63519c847926d1bbe4c9b13eabb3cbd40d662b19e88ea042c2d26dfabfa7b32acdead37f03c5d20793852af0f001932f12a46d65e3197cf4cabb441163f0294dea4cdc00e40889967cf125f857659f2db4c65a9c62ae72f334dd2fb40ce9211b9b25a104ab08322fc206812f90ff3dd00dd7bb1e86268be153fd508e0f6cd2e6948f91ed85ef1cfc6f37b1ebe4a0910dc7961430ff15f1aea03c2c01c1d1af2b3036127ddcbf3b156828938d98866b2f2ab0e49a4ae1424f757a052fe7e110391e98592df2639dde9a65191fc204d72a2968a600ce6f17c07732d8da3e220b737cb331fa928e9bfd7f0b44c6683895e3f8d9c99f8c64b9169ac64feceb13e89d91d6a13b2fff7eed03ba8ea43fa77b906d6d1f53dfecd46a16992cef560b4fe53c899adacfec4158df1488f6c0f4e32aff95c7682e5bbd79dc0468d6bc14d3575f4c6665ae5331d1388d4a9d4872f09251b32c1f204f543b176f262074767c2d7b0ccc18794d90b566b5bc0c4a87e30f6baf921c7b32cb299b61711e279fce0c99d4f95bf616c924b52c19a9cba183fdb061872d1a34bc03a0a49e0b6f6850ad6133ec53fcd39f93c086a4fc5389bab232c605993e6326c4a404988eb3dcf1d708a107c3ea5e619a2ade30d1c565a8c13cdd3f941dbb8d0f3c6b14826b82801d0fbe5222fc1151a473c306ac79d340508583f4511ff591f42c7eb3d79f04889b890978f23ea06cde90ce4960824e4a15290764cc8683d82cbc599015249402089b12de0623ad78816c5d512a08cb4d3130e6c016453e590258ce58a182b15764e5538ee7d2570785a2db2abaf7061ae44c656087f64d7634a93006b81865836bfb5e5d34027e878ed4ebaf5b893208c8a078084b0f24d5ee901896bd66114698871035928904547418074d5c1d9ab8559445f336bb361a12058592baf1841a2f3010ff80b528e46b6fe4c9207739e4a35255f962c39a5a035f9935f0d4a44cee1d880c17b1aa36648a23db2321820f38a985e069140165b4d22b527d7b729c9dfbb7b5b97cddfbc8163178abbbf5539229ffdbf21c820af1d96f1442240998fe6d4f384df7b0e825047d3a2dfcdb66ec87a684e258432309bfd18f50423545966d924449bac371d386cfe76037202082f6153a0cb67ac2bd4f04fabf99bb9955176a1e6bade866d24b4a66f23e65ced0620e9ccf5aae20a8e20d44197b33f143b68b00603807cf57eba867ac755c8f90bf30e2eb972de76f46fd2651434a8cf844ae7d176aaaa5216c9352280d7868d5389abf2870d64e2597633fc2d7dbb10096af88230ffcd8edb1deae88eeaf83d13d5d50ec92c8965bc012b835db054fc044b5ba50ad0309386d6a00f7ea37819ba2ef9d9b3eeece0e4f0e422f83514086cd6e4a9495a4686b7563c7a054b9026d86fb79d32525b7691647993b43f115c93209865819adc82872231cf642b40c10e35944f86917904ac087be508d4fb9a2ddffc49ac9d680d4519ba85c1ce1ede9951a6b30736026582d81ab3d4ca202c0357c6c06714bfc26990a5956c15f2f7cb43dda006e8d2256c9944dd812f40d86381b5e88c97c428c4f7b136e82bf0e4203c7291a0c43280668d0a3511a775d17d9975e5a17416d5e86e3b6c19304791a5f8569640be301d0052bef00985d11631a4cb61d1a0c82aceb81bd29f098e2769d24b2c292f4c41ef6395fce36ca6c1062efcea620ab35d244300de413d8b9f440a196eb67213672daa615bc5dc4e3417f26cfb27ac93ce95eb76de59a7103ab38bf84179362680cdaccad809afad0a5e4b70da395b63dce92902a37f5e1e36109410807cccf4519eedc9cadb619ec0a6f09925da12f31e7b4ba66fa55a7f897108c2d9bc3a56e6cbb7d6f04c34ae0528d64639dc53abb84c040aceab9e4c8038adaea92592090c24a0779fababe6e74357a341e0581fe5c410d7a74acf0faf575f43009f8c2b2cc5b726c0a0e7403319a43a41e96ee6614b3bd02b1a81c8fdb16bcdbf82e8c2124c903ddf85efb101bc7d61249c8de726fb9b79432c914a308b808d9084fbedd0697f8c4e4a3623c34799f1e239d608fe8b2a311311e969e3ec776787ab66112275843706564af01493f6711941441034c9464b71183472c3c7bd81ea3951d983cc7a29c79023cc7a24cbdcc38ab4da597f164a08ef899bbcf8cc1b69adc16470fa5771231f20e39c2a459bb749f469c0d75ebc9b5ad1d9e3c3b7fab05472ca060b9a59c724a39257f3616c5c93f89e2239f5c5943c6e99a5de4189425ed5a3cca38998001ec39d6048b009e634fc6bc6d650ea44c77459ab35e201c63e4ee0e3b3ea15f914b881186a41110dd86871b46a928d5e5861106f6a4e23efdfc82448e45a9223f8e415912a9322636fb12dde54bef725690228de53c2594b779819a8faef90bc67ce75eec4913bb75ecede0a86fb9657d2eef966ec83e24854e80e1528f1fb2df38673699779e8fe82eb75e8f1b778121cb6f9cbda21bcd0437e4281cb72e7dc8b2bef822648cc5bf7efef559f7592d16cbab57c4aa376058775e1bd2bc22ad3b1609d4b70edcd1b9b7e3fe8d6b5fa879ab75e3990b0c81bcebc673cd23c1c6f321d90a59ceeefa8c58e0f5115df39b8fe543f27e407078345047e79ef37395b32f6cb78ef319b57b2e3d1f9d7b6ebd4e47c9cddca8fdc6c3761b97ce2ccfdce6e31eed37aecfbf95652d975e518bf5f9bbcb33e7b72c17ab7610cbf9ab25b82c677ded383efa797a78ee72ef3aeb0be3b33c7a4537eefac21b5007f34fcb997f58eef221c9faacdb7cd75d1f3f8ba747cb3b6779c702b50efc389ce8592b762db0628a0d555048acd9f2047846e206506f4399f66e68e05209a41e4993e7248e387d18a13e3a8ee7248c90f9e815e55871f927508e981b738eb899f7acf095b3dc91f61567a74696ac0bb4711ee3c68191a95f4e72c45cd6e8f7246a7ab181ea39664314c79e6335a4f91ac4d4d0e53956c3d487f104cf311aa0deb25794e3c56d7fca4973bbce39efb66dd76faedbdc6d7af3ba9c5e29f95ef9d980371fb3cdcd4d585d3ed4d66e3d3bdd0543f6ca407c38e9db27b74dca9d6d86403c2b3de70fc84e0aaecf6d007d37fa15ddfb4ef8500002820f698521fd8ad147cb8defc9cf5e8220c74eb269ce88d8cd39a71036c78bdb3146aed6cdf9354ab7cdeb9781dba7659ba47146d9b1763fd91c34395d5ce65a49c94135fd529ae272c368bc6279367167bfa6963bfbc53e6157791d3bb9dcfbba4a47f58b3af7b5d4d750fda2b5ab3413cb3d90e51ccb762e4d0612d3e545e7b80a3614ff50f73c6fe940a426b5aa4d0fe4a99c57ce379f369df74def3e5795f7720b35d49406d6296e8b765b9c6aa6ebdbbd0db541a9e0bd919b55ddd62f7e14d3af3145114abf86daaa83f8ad3c1f92ddfd9684114bfcf0b55911ecabe3ab5fd4d34035376c2811fa45a78d8db33357596d863af38a36cfb60d6c42e2443620778deaec391846a5a7d6a75f9406a6dad3af2127ec580f77fe04fbea17d5409fe2c618a15e9387a4fc82cc29ea220cb1d1d437d06a5ffcb8843ad4922ab4a79ec625d1c3868a4fe5ecb8a45f39455c2690f9bd2f3259129768c9bca1987490e61106ea1cf52de2f0d46b5cc23fd43370f6abab70a6b0395fd8d08064ce26aef439a547692d96b7baeb759ab7b4abb9e6699ad6f234d734d734d734d7787450cb357ff9388ee63d1d34bf1c2e6e7b6babb55ae7ba16102056d7b53e0f0cebb7fc7e2c960fc9d6e75dceafc775d5566eabda13cb3e5d78dde5ececccfa7cfab5b9ebf37e6d5ea5900df8923536dfbc276e88e337afaef9f41d10b6a0f0254207f1e820976ffef2f9cd713aa87df39dcd5b5fce993b5d365f111bbf71b96c6e6c6c6cdce5721b97cbc686ca894aa9f5bc2aa5b5cb280f70a8fb44e897f4160cb73dbe06e200ea57b6c41dd24128a400a491b4293509bea6df7ec9ec3b6a7d363d9c22647e26351964bdba741e3fb6ba7120cf06ced7ab5f2f1da4fbbcaca6b58fb8664d360252fce9d4f32139a5dc204d0391e2176922741075cda96bcea3d57ecd2b17b641f102d89c7372b9534a297bdac04e31d957c47ac70c5ae7b74ea9b5ce5f471bade68c50948ad248cbdc304e353f13131313659a62629a8aaa02658138473f8d608c8a50316af3793730464141554d465923464149a10c0472628af3292c549a576d3e9dfbe667bdae5994518bb5cea28e53f65e303ae9d76cd2afd982ddda5b06ce90bb7c0884ada6c7a97e4dcf29e25267ea57b78e91ac4ceb893494cad973ce9694524a299d94524a29a55e13773a9df4c555f305cb530677f66bda245aa87a56f3429d0c24eee6d135af488b9d18cedaea156dda666df48a380752c479e52427ad6f1f0a2900f1b45c8f73e9db2637c9f278f073208ff4e8d54de8d7ac7cbd2209f28f0ee21f5bf52159ebbd38343431850f3507b253a4699aa67520bf5e361a8c5de616bd08c6296e78ab4581738cb8218ee82f7d0e811f0853cb950e860cc2b82c3607cbbd9db55e3b8885c350e798b99c4bebd537bb45bb5990b999556bb95aedb78161e5b68efb32ef329f9fd307a86f073f7bbc59ee8e2839e9771493668c4d5c27dab5f43caa3b3dce18bbe834478b3b3dae99917b4eaadb3e7b4e333b7f02ff4c49c5d46a29a5ac31da2031013c250efe99ee65b9d2a78d7ee5647165f8fa99a4e2b43e7e6eb9cb79fb5e9f0d29e40281c05ab76ddbb64dfe05c321bf79c87e420a1dd49eb90d3540b09efa5afaca67be561fdabc6e5b4df35b75201baf9e0ef2e9209a73c5edbcafe798b917e46a398ef3bc63b9eb2be2721bb720280243204097f5b940976f5f0b747df7b69c3d083091eb7e9dbbbed617d6ef40cefbc575a0cf73ad6f1931b8b2a5c7251a0b2ccf2c97c7090938d1812b9ca88015ec13d6a7976e23d31cea998214da7c7a4cc339be60a1269204869f0d6e51d449d668277447cbe4b4e28654aa5f72ea9d640d12fce753bf629ad79c7cb9e17c02e7d39cd241501d14eb5313220cddeed255255e51c7810f12ca721a284a4e9e633a60f946daf9d8d193620ce2d152128074527a3dd81b34626f8fbe7d61e61be52309c4b39d479f1cfa27718174df39871d08c4889d3f761ebd8bce6dd9048d62373b1c071a510fe7d6b951e6d349981dd881d917cecfbcf5c93ec26c8048a4d4f223cc06c83c120dc9a3213fa5b73e26aa9f8f0d34f27cbae7b9cc3cb7208f75cda98fe91ec863411fd533af9e71ae19d5aaf9a85addc03073db39cf967d3c1ba883ba75cb4330fd34e2dc8261fc30f3aef3ece3ef9ceab06e41e69fd0baf40d3c8a6bc090f3cc6d163f3eeda0f6f006080a6822cfce02c2c175a702219e645515142964104b5e32576c65b9cccccccccc2cc4e69999f9ea6829b6fde3a1ce913a671f0ff5f89a67aee91ebc74cdfba31e3bebac33f6ce2ae8e5b9c5e5b647ce628b76d96e69bbe54c7bb11ae8a3072fb5586e51d1b2bacdc373ec8a09be69788e1131e65fcf31229af4402a52e6390c010c48b45a56571af11c8b41f151ea39268582b7f11c3b4288e7e8ede098a8faa313b83233fc110bac0f91a6906287860f919c68b0537c88648229e8872a44418504020841f5a10a5054cf1506f378cdf3b3b70aec51fc4929978f0e60fe0939b684979f1ebd797c502e3f9d72f95085a49f7ec46bd6ac69b75e3e524df9efbfb7ddf547e3e947b97cf476b890183e5d7eb62905797a4497be23ba0491ec2bd1e591fa85c4979ef4bdfcbe6f24fb7d03a607e3dbd81e5d1631a3d6e5720c0ac9d71d99731e726eb47975ea5ae796f5f1b09c5ffbc26ef0a8f542bad6c7c3f2f8d7c37eebf3e5db1eb1dbdbc15230d875ed63797fb26b7d93bbf8d627d906dffafaedecc8549b19ab73ede330bec534f664792edfebdccb775ffbfd5af46d2b3e1b695e3d1c21a988eaecd17bd8661db147744deba179e5e921bf73f91d1826556971b9d6599f7522d6adcce2eddc82cfbc0ada0be9e74090f8d6a757d482e25ab7d3d3c15ee8ec182b0058d6590ad6c2b33ea0b7dcd7d6f320472158cfbb96bf79b73952f65d07e9bcf66ef3a3b886bd11d8c6c6ce31734d107c09eef48b1535319ed7759ed7b975cff33cf6f1c2b096e3ace57c736badf562db6addb66ddbb6cdd967d382bbbbb5eece34cd08ce5154398718cb2d216e2b9332932c65a679f675fca3b9fcbed695cb3120c63cf519562d736d32fb680d03cbcccc3fad8e7f5ade5febca75ebad2b97f3d6959b79abe52df738077fcbbb05c6b67a6872cbbcab4bcfa4acd92624befc84c4af554a97a07f058daa036accc0708894b2fa903c1ae2b58f64abc51f8ff4e8d2e5c763e8996d849a779ae6436d6b10a40e047fc257afda17563792120c72c46560b047b279cea544ea9e7310fc16e428846ffe918e947d07a98e94f9c8c06f4ee328848ffc3302db90609854a3c7a961b14c5d966a7188c6cccedad1908f47f2a3d71af993b2b5356bd6a8f97a2433af880ab90f64c2887c78a4a921a2a921b2e685d4706330bc5dd80d1e0511a2bd0a491fc1a246eae73ce3c0a3a8e667d44bf621a9c94f48670e8647433e6a43babb8f86b04715343692f3a54bf068c8162b0afa85c20d6cab88db2c8e01e1a4815b44f7512f24f358dffcaecc1f692fc4c6eb5842b28f1e24c2fe28848fdeb00bfb18618fc646b72d7606facd88fbcff9a747fd2a67391d9bc722ce5cb75f9c6f6eb76f724262dca6ec28252b8247f27974c88f1e41e71ff6f8f5db40a3ead6a777543f73eb1ebd1613573ab881f1bfb0462e7ee1941dd946f4b00149453cb38de89b0fc9a321ed1b09f28f640bcb95defe139f86942782475230d813e075b0d25b1e7c489736c03982007d137b1257e1d199c10c543af2439439921ba2e813e7a7cb9011bb2190070af343296b49dd302e85f9e943d8afacd14513206800e2a90a0623ca3c12c50f367538c10b5ab0c10a91d2911fa2e8486e88d8958e3491e6481840143dfb90308068489412a20ff931244a09da742d8243d88b1228d144660639806982888938490558accc30c3952e3d7041c444ec2150090e8311c5a50ef260490d96394708e4dc1f493aa78754fc0469a64dd7c00f646098391029a5cc5330f3707a94dfcca2e433b0a95aea210b1f4697d4812435f9ec030b508afa006759f2d4c311fcccc00fb0d55390ca89880fb81831412098bee739f603184d43d85968ad59b3a609d106cb91424a912b6030a2d8049bf1c20d4c9c040980131ea660482060ab6f827dc0c5089890052845ad00e32c4b88d8c3113c75668e51e9e191e237b5c056441b08632b220687b0b3f081196a8882881a985238e42918d68f7d7ed2db93c0075caeac2162674f022e3052c0e00645d6ac21621f6ad9445839a9c7a8554a9dd2ac635488fc4ebf6846bfbf58f629a503f94b662e7dcbbc66d2e58e0eed303873651e33e7991ebf9f67aed132fee12663d9d98773d01bfda2ce850c6bab885b5d0a714efd2585ac53efa94e1d07e770fea94edd7eb76b54e7beda35aadf0eea1ddef2e18da7ae535d96e1ccd5b9f4a8efe957e5d15c7e3f8f06726c0a9ae7d8942e7e9bfcc351d207cb53bab5d31b6aaafa3c5a41a90522b03f0a45608330d67ce62a247d06aa409d7e40aa520b4466b8c24b1fd9c7d343fa74e93394df4758cd3d67cea123e9c3ce2bcba83a3fc7a68c79da5e9dbf762fbeb5dbe6dcc7d13730dcdabbee8b1f3bdbf9d7af15753bd068db7cb46fee1dc53543cd71fda68c6102e1a0d46f50df91fa26a2203cbd9412b1cc91596ec072e6eafa35fbc538ee839a90b7fc74d7324dc3a1b9091dc4b1294e5e730b68dc85a55e0be2b9a783b42971881d2baf6965a4586e0d71390684970f6b1853a27902b1dcfa614a973e95ea9ba8c703d1594241e961b9f5c30de22b6f94b85d938f21300bcce9d04aefc14aca9750dfd5db277a409cb1c1872e5e5049010c57441cc305b674b8e1eb1b870f4b20743f04498e60ac07353fc19d7e4598e516d46def0460b9f574db3b9692580f4a2aeca0b4850640a4a9f244c49d9ccd996bf60b493ee73b56db3630dc9cf34d938e63a3b7435279ce3524f99be368fcdc77fb95c489b86b84f37b3e8261e632c6106a671e672eef8fa2bc77e7254cfa8b73c8f7794a836ce550a957296abebddb9102e5db7b682b871bbd55b0dcd672972465b08d4fa64861aa326576f24e7d7b8f537dbbcfb75be9c3770dfe042fcf4f67284cca52c673d2d80060b1e7e0d9d2e1faef38c59e02f76659d534d7b4aad57ac3cd1c90f914baf36a324c194672bf283395f30b8df38a33606ca866cd68985654cbb21f994d1a2719b943e9fce929a5a472467945ab96d19b654ca346a5674b4a595171ce29ebcead3b3b33f60c628c2ac4971d5ddd2da38c605a4a2ab36c47c6c5c9b44cfb684627edf9374ea1492912536e1d1c448cf1898bfbc592999963472e926a1a8e0cd7f449e9a4b3769563e6c426f46be3acdd6aa711c978ba2cd09a776e35afa8a33146dac9c85db6d5a95196dc366a2ecc3967ad382e7eda75909769952bf7cc769052525a5dda9cde73d2d8b5944f6494535a3da159d694528e59167bc61969118ee6349bb522f567d94e53704e2a664ef1348593d60e7eeaa1fcb6e94aa15f9c6fde5d4748e23e292588d44fbb593ba9f629cf312aaca8d842c593e798d5d2873746c51929e794d3e5ccbef0f44ca7e92485fa69424921139eba74994e5da6938c7e9ae1ee6eafd30dfbc9bf2833fa69c68c1933fa2968c6eca79e73ce2d6886536f29f323e833be09450acda9a7ae39dd7939cd907e515fa15f54ba0942916bcca832c3439c9e119fb28e86b7940e9c760de25e79da8187adc453eabcd1b0bdd098316346073366cc807aead714212ee7486650d7edd7d2531a4534c05eea20b902a7e1349c86d344e7224f8f9b4001ce319d7a05388873ea1e56a1cfc39bc3c6998534ae11ddc6b94f72fdbecfbf38e39381446dd960cb74b8ad5df476548f1b14eec9c9a99fbabb7495c6d25ba8d4fff861751841c99ca69353fc271eab45c369b03a769528a97eeaa0f68bf3ec33a2e141e2cff01f1d34420d987c6d35e91775767be964a6dbc3f5e917e5c0a53b097d4e7d464d7510074e7d52759075ea497938b1b06895ac359da6d384329f24c77314a7eb78d84f24549fa090e93ffa4547e817a50172bf389fb184445a75100da72ec54821f71b9f1389146a271c48fdfb26ccf3c9f931c26c3299a4503b713299583da5a17c72389fcf8121093e734d2a56e9d793ac413b98013a91f185f16578e6e9d03e03a51a1c6e741eeffa15c3c37eeaa7dec2e3d4db0b0e8eb770bce71b423d7b925576e9a709f2802bf48bfa8e87fdc481879ca68380eaa79ed2502fe3e3e7e0bb3a5f937bce17e3c3f982c49b2fec3eec279b2f886642972ece430a393875efbdf7de59e5c1953be5c6c03cb99ec717881babc1142bb11a28c5a4608a49a1749db22a60983c83597a96c1f39725cf4c824fecc231ba7c9251523e51f09565970ce3702b873b9c554530b14b97c9397c6c3e65557683bd547c4e10a8af887d3913c3c22a4eadb9809223a8b8c00a2b2e6421e22c0f811b2562b1723bc874bbb15c8220a414a593eec3df7ab5cefae27360d823bd1d697d4c2bd9d5a696735f1312276af9d43cea2b7539b5c39ff339399087730a76de81728a036b1572d4faea9ea4f222469e812d313d79aa32b5a56acc4cd3af14a59bd3f391f90443f02deb8bdf3450face37cf87940a71c0cdbb39b4d7a383ece0e79cf5f56f5e9107327f105a1fed83046f5d4e7550e7a37d64a094b2f58b3338f3edd17340eba39c925af8478247514ef54b72a49435a7679fdcd22ff9543bdc50464549a90e9aea20a64b2a0f48bc000a9076836cc72fea135a20ebf113ba6fa7078597383b29dc4ee3156c9454e412350250845162862430a62d3acbc571f7abc40d5b3f9d73006999d6d7881bfa6bdaad3eaf8c664060e840024b53ca45dc8bb333e79c5f92d89994d22262bfb2a21b75c39dcf767adce7553be60854b53a39d732d73c730d34d2bc3dd4409e1eb4d65aabd75aabcfda419f0c24ba817e684ae925e286fe94d2d8dd548cf90144c5208aa728949e63475c1a93b148a00a062cfbcc256e789f52dfb938940477ea86ad6f2900d81dfc31820690520613b0ecc3debd7267470217a9f7798e413125eb312968442938af95db1eaf0eb55f57cce55897291fd670feec02c58acb312e69249732f78acbb12e67fe635dc6fc8462ca4fefe92006a3772c65074527312ca462574065f3a393ea0083db1cc23d728f5cab180d98f817dfce8eb94a46bd6dae9a1d84cddcba8d5c8c9163711c0b0850e73bcef9c68363f7853fdeb638c76ccdeb36765dd7ba1cd73f63e4b8e99ced78e33a8eeb3cb6baaeeb3897cbe56a79e7ae96f37b2d707ad7b9f7853fbeeb3cacdc69757eb3522f739c4f298a91e438304cfa28d2b74f46ec721ed77cb8b9edc1814d372ebd26244e7403b2004414657a7777833c3eaa4faf5382362db0b51a55e79f6ea479cd6a5625adb5c64cc66de14ae77aa45550032b7844a987f56b8d19d8149d82b3851922752b0c7e655af411d7ac59b346e3e9d11414d23fc1d957be006182f005524f8ad45fbef0225188f5f4e84d06e15d48a46cf8e84527a09d4b25a5a0fbd08872ad28d1a476439dda9cd4eb5df2b48916980008904bd07dbce7d8132e7ce8403406cb3e19b39631ef7a8e69813d7b5bcc39e58c6951c38a35e1c211d92a93ed3cc7b66cf1dc736c8b980faf969813679c506a9db91cdbd225b605496c0b55cc89a5e9258c5195f95a69072c371050cb4cad404f411d20b7095a5a0049d1d2020849025159c518638c31b6f34f536da1caf2ad2bb77d3ec7a896f81895d4ef7c615b39c4aaee14d8dbca5779a015d0e7981254b2c69c1e7c48936838c190859fce94bfeaf49b1f9552ca10557088879b076f635729e0c1b38f648e32e460c31ec56f2296be73eafda91079f06fa051f4ad8344fea18e54adb7a7a3738e73f678f05b30043b2073e1c75fa6776abef3cdada5dbe663fae69d0ff50ecdfaf6752e3d1fd563d860e49fe89bdbda1e3d298b9dc57402bce556172b529fb9f6c38421ca4822c993b9fbbc4e48c10a8c120d2104b5f16266ae2e7998704207853b4323005581f2d46fd009f414870410bce6cd8e94f974100dd28e94f9c8407b0d48b2c1a0a763f346482a22e332cdfbab499f1985590f0de4f1d1ae79fcf6fe64777bbbeff4d821a63efb280e910fabb3c5c9bc7a4882353d9ac857b7dcb0d73227f2b1653d635bee71b63a273df7795ebfa4b7d65a9eeadb17313fddab41e65688343f3d1b02c94fb7d3ad4d8add7634e448bef59675231e1f9a53d7ac0fb5c6d27c682c8d73fe8d037554df7c8372fa69447debbc7ef1372e3655a41636c81b946437f36289e6050b4c005ecbc5d254a1a5c992c68cd49c68c424b9386974f8f07a12ae24543e2c61810d6640f382551668a0dca0290207aaa38b2b2670c109acc8a204920c1a181a185c30e7a4367831039717572a18e3c594961747b020cd11346690984b64cf5a6bad977d3ebaacb5bbbb6383d34acf704ee97a61ce2a8cc8e274458b5598581765cee4103b8343ec0c0a625cd820049625b822880a0d2eb400b3e265cc55ac0ba6d8191d803457129ad19bbdb003122d6048a93982c553bf3b2ea52bc0e0e20b0aa0c1028d1a22b278624c8c0b33128acb48520d534401f3430e5e802142cc016678a2e90452569a9cb0c255c455e4081947e80e318e4ca65b30dd2d9c8e6c81a40807060b4d11ae0a971934455ab1cd052f5c114a29a5368b8da2889bb1e299594269ce39a707926869e2294c0ab84c518599a717cc346d5cf000c6063aa4a0881998b4004393a930646e1839504a29a52e485264054988c4c089145895f142cb8059aa65a8b232501cb968623cc7b868c10c5cbc40b94c94164ea899724e502949fcea9473ce18172dfc9cf37ac1c1736c8bd8165f62542439a951c2862a4e68601aa2055fdc344c032c5c8874d122aa6909114ff111f0e90208a80b1ab54092450c5b4c39a7bc5cdcfb1cd3e208eadd3513f173fafc9dee23e339a6c593cf9e635accf0a103a5b159d735de3237f358b32ca605d3d5c2898fcf3533a7cfcdc2c7e7660164b384aa4b959832555452c89dcaa99ccaa97c1c841b36dcef8d91415255c529f5eb6271a50437aa2b853b072b4365c5928175032b0a8b0aabcab7b39a785fb088b092b06060794f785fbc301e19efccb77b5b3c295e10de154f098feadbbd27ef054f059e0cde0dde52774567a6fbc223e221f9f64e4c17eb98e89ee8be74525d0d1d0e9d942e88ce49182ce45252ea8c28752f28752ae89aa88982855c4d4d609aae683293a60b1516722db1849525624b3061b758186c0cb6068b835dc291e1bae0c2b046ecd21825382d5c141c18315337b047712a569c93fa76ee094704c639dac94e0c1786e7925c2c6ee85551515151511b155515551555155515555594149a55555155515551555156556ace8ca9aadad989fad0a9a8b6a8a1ea57d3e0861b150cd641212b6a4cb8859d15968fde3ec5741077105b6121d618d698186b0c13ac314fb0c678a9326360a1961225b30625382891a284a90b166af510c634325fe8613239a385855a4f4401e68a27ca504561a1561a2a5662ad3458a0c8242c745d20619031d4e002246158e81241041922ba20220c22acaeb0d00573c12871c168b960a2b860aaa25a0616722929dda01445898ad277135753531369ea244d0d43539a2758c8b5c4125f9608b3049925ce6c91c2422e322e3241b8c85c719151c24526bec042ac28565454012b2acac08aba811505e5dbe352075868a332f34524b2a550c4425c65a2fd8b081f0bcd2aaed1fde1acda49c035c0778daaaaaaaaaa2a4e892b828423c2c1ee180e565565b554e555528883f9933bb91367e260551cac8a835571b02a0e56e5e320b80dd7a97229c8c13818a70445b26c9614c08936792654c96aca2869357764a5aa541da9c8dc3056c9a85b6267d42ba3f17075757575757575757575757575757575757575757575757575757575757575757575afee156b383c79c2e48ac995121667b6b4386699cf59bfb894652c849a6b367e90f9fc2892e891105d881f4c2d36d493981826cf312b98c4ac68e10e11a9e411f322b9f11229a3b19874def17a3b12e768b98e7bd57f48a11cb041ae3a5f7d82a14e07c5932798de52ea15755db5f2e307c49732048197814080dee8687a28739ccb14d1f12149443a9ef38d40c75d366ee33a3a3a6e248948073472e336e074e9faf8e7e75f938eb7743c507e4d387e830326c97123363639396e6324c7c68de4388e1bb9d1712338370e0229a403ded46a736f5bad6379eede272306b773ea3a32b0f37e71977561ee268522d10ad9d29cb55feda14f8823086d2abdbdc73b4826d17123393a3936aee34970dcc80dcecd8deb7892186e0427060e8eeb24d971233176743c468eeb804976888ce4b84e8cd8154f7c0514d7f972be1a03e7b3f92875319d312b9e50d8cf09ee98624bbff8a5131793e5b63ced928b683e248948f3fa8d400b29d89ca6691a6864738ebda964cd370d4ca279d534af5ad5aa66e34f6079caa631fbd85e8317cc9d8e85635aba5faed3f572bd5ca7eb74bf5c2fb12bee98e83db3ca75ac2b458a18bf5613b70b13a6e9a3df1863cb9c2d73ce49b358182c344dab5b0e11db711cc7d98e6301abf33ccf63b5b21a5cddbdf7ba6c6c9a70ba9b9b9b1b9c18ac2072727272747666121c70c0010732785c3198d1f57845b1c77b7abc1d7186d701c7c2707077625578e9c2586eeb58373618e3e46aca7dcac285960d1abd2103952aba14e1441120b874b9626c98734a28c850e1804c1617d450149061eac83c81410d029e63565b7cce73ccca4b16a3d90efe2ce210a08726b02754c8a0d982b1c0e28a0c2f60c1114c68a03467f7944747bfa49f8e7e49234fa4ec957035b077480ae244302abc218e1b433c6edcb87159483e11032e4ec0a250c1845012132a29a650f0830f423441d4ee2c94e48219beb8c196232de0300351fb8b8522e0820ca02c49410321c030624804d675c51ee71c55019ab303c0877350eff9fb8300100270e33c78b87a867888c0c3d53da0b33afe4ed6688171f95bdeb97c931d37bda2db38ac682d5beea8a7c30586f35d6ee33870f48b030f7118e0658d97df4be7908397ce51013d1e662f3decbe030fef4fce81e3120c8180f0d281fa85e30657eeb88143cee8f946103f68e7f9222c2a758de91c80218d0775c01c3006189756e09ff6bb05c7a5e37cf1c9ca0d01081ba8780043ca951f1600e3c20928515a00c585c8e5ddcdf7c2b7db0075902cda5cd3e3363dd2ed790aff740975fabcad6d3be2cc52145e5c517131e3552638c11296175ca022c1f8e4c40d634fa2f9a35f404055925431e58930b01660c16aa4546902a6c309a8a0d8cc0aa0fca0c4c92a0b19780a8a16981a1d64003352c2e61ff3e40d0ca263fed190df1c6459a3a3fa65c28f344396604f7109473d0d1dd9024d0c655ca0e64a17492940410c885801a372f25482922ec6cc60430d5e0006039470e1c229061a707185a85dc629ed3af7a36294e434312a883f4ee997e5a1961d78d5bec81f48cf3ecac59b2aa183f6daa6ca8d1640a1833a567d0775140b252dc942c90e3848f990051544ed718a853a3243a0d122862f9e7041d41ea95828498629b0b8b2d464e5064c10b5c72e2cb481195ef044124b74d0520451bbece91e2e6ca4dd92d2fe18d4ba21c01acfcc273a893dc1823f818558821cbf0343b9aaa9a042d8f0060dc07338e35906691b171530e79cce7d975f33f2073306d7987e83c6cfcfe089f3eaa8a594c653b75c3ff39714fa213bd04e5a2b05c3182f1dc4e19fbb552dd381f373a84bc86eb01c67d788d9a7545de31c92a537653ed4d400d4b5ef4825ba79ea7aea1e2380fa85ddd92f5ac45787cb0024de60d72f23b1bb0bcb6dcd5481e677aa08833b60b96fa1f4a8940d9675392a19a21101000400041315002020140a074402a158341aa7bada7d14800b8b9c44704a950883510ee3300c32c618a40000041803882133425413071d3a0c97c4dcd7fb7e18a0db6be5de7aa9f947e4840a603a9a692c0c9b368d90a2dace210b6e6fdfdc555e2ff097daef8147a85407c2950458e7d9d1e1ef41b525e74ae535f3c21b0bc333d44acb64c4a14c02858674b87d02792b4fcfa4be89f832b8f72f6d2f040ed8aa4a0074572eb4175b802d7265c47bc1ab04197efefce85540a83841383b461d62c3fe12e21fd622f840d1c407be59c4ee5ba2c7c3fcfa9db6ab029ca4d35be4939b716149592c16318998fa87cf9bcc580cf915e656af559ce036d75958b0a92b74e82bd80568dfc56d247356efe0a031d244cbd45937b6ea08b5474b69a5d5adff66f7f9a70d8c2fe1c4a2b87c9729eabe177f8bb14f74f7f0241d42e44cad2e0876f3105172bb4a90d6695f784761fd9fc7303ab1dcdd42e476d20145efcd1a3b7ffd1662feda0bfa26e6317ae237c7545f34560619848f1d8892ef725da7422f59ce952e7f9068f144ed13cb9b384b890230ec0ec7a0e3454053b8e50cd5f17c2f333331b336506a99564473a34768ecd6ec2a5eefc4d99e8ec6e0632694f6dcec783f59b1b5ae81d24391bca203011454fdea6e0779d0f69294d625c9229b21d995fd540a4ead0b87b3b13b63303f15988e116e0d0545cd11ae1e5eea5f23452761d3fb8801c5ffc29f84f5cb7e03fed45e9614f026a5b12b9731915e441aaef692c5436dfe3876cb9d4f65bfa94189709ba8a08ea77edc5c8decba9dae1876c7bc836eada23684efea4a0646cd62af0217835d9369a1fc802edf0a3b091f6650920c0359e2374b6fbb75883530c0614e6ab99fbcfe435b429f00aac5ae7bca8837518fa09f81b6a5d3f3dd564df8ebdde42632e1d1212e51b09744a5f107deba6c27bcfb86aa889bed33fe0a2e05fd99c7ab5281f8233bf40528738f2ef4443afcc2354a237890fb61be0a1d6d1f986ae0bf6836418b1c6f6b91ab8ee0a2cc73032811226080193d552392c3f2e79184f1c93ae37eaef3a830c3ba2a10f52af1dbf8b5e77721715debb9b4960c316093e07f9d88c267559d24e8ebb4006bd4e9382a0852eeee2f88ba0894528d0f3366bc5971ffb3fd07091154394b975ee245b2ab5ea33470593698e04a05758836e2e5e916e68d77bfdceda47dda119e4606085454da3b453d86626354b61b4829b53f1a67ebf9f8dfb545a95faaf7dfaa01a3a8d6b36672324c1373ee0e8db65e01a67df43b3b48dcf17652b790df2c57e38c082d0ceb7d340eb6e2613f42acc1334e13c725111782c3a314033f82064d286f7f3f3115b2740a3df86b1f3b68062a7d66608d99b1bbc0ec864bd11774ded2a47ee95d763b30f0555240502ff3135d6e7b6351c470dc7dcd07fa8c7f62c403a9fc6ed80407b812622a367f90439ce90a09255607689032ddad2ad577b4d2c4eb52b6691c5feb040439413821c876304e7f129bd83eaea23482a3dfcd0b93b86d49da511ea52108e9ee3d92f7759cd5a6dd58fa553219cac59a770af244f1b8975474bd2f7c9165ce0fc191e1b81804ad447034e758b51b562003f5090613e11cb403b847eceaf9dceecb8cc1f4dbf2f518921313eb9dc560cb2812bf0d9712859739d4077d7fb00d694a550d686c4cdff15af174e22c3df3e5c93ddb6dd8cc5a318ff955835119447470f524daaa79a30a40ef75c17b1c7df0ee43eea8bd65e29254edfabef6fcc18a1375ce6a6cfccbeeced1433e60f11c8bc35e2fb902f77ea0a8fdb4c6ddf121fadd9d73ffd03a3de6dfd8319bc83293e3d2f27f1b1d1e448b27e21b8fd4f7f8d6dd3957650e9dbb9487c239cd30a3899b41e2f5a5218dded4a4bff949690430270dba19d2b93dcd6bf28620b3fc6848233725c99f111bf90977bbf052a1acdd17da89b70e79b2bfd46d4d8e2636a4c8e1f1bfa1b84ab944e6b5db9ebf4e7502574236caf0bab133eb3d81d10dcbba530adfce83bae2279aee46360819500a0f5278f8018f9b1745a34870f28c125de95587080f9c98335c91980ef25242c11326ba4a13e9af3a1fe0aa75b1502b8b8bebd9cbb91adfe9c97c78dce0c85a06efc312390c8a10d172aef87068da018b7c94704038b47e75f1cbd15d0af07a2848222ffca1c78e07ffe3e7d1c7359637e41c77ed9c6f5ca354c8d69a553ed7c48f5afc72f4748dedbc80aa92752f8fa2163f78a7a04744fc723e251740ff1718232c81213e59b16126c78292855474778caa109a0531454ad9c168e304bc01a32fbd3eb8a51b1276e64d4eac02507aa5a1b48415c13e6a9ca7e6d549e3df92a18660da37cdf4acfcda3a6ee2940883a1563cd7bf7e0d995bdc761283dc64bc9c2990a0f08851d5084f6da83fdca84caab76ba002203e4a34fc316b80ab8c4a49790acf76e11d6342ad15c952076616e7939df9b67ff4b61df35bd3ce532755130bd392803712f5bf48e118f27a3770b8eef66a6c7052ed4e4dde1a3553a2c00e0398f3015845da15eff85280042873ac41027a28c59000e71aa714bdb21ac42e5d10702452f321709e19cb89db5784dfc3c793305f516f2ce4a97d7b9899d2893948306560d2d9c51c785a6241edcfcba2aa325f5992941ed778e83721e1519302f4da90a338b66af70aca604e57914f3decc18d83d12d0c4efa818ef4cb993c674c11282769754b5ad9c5ffed933d2c3d692ba89e9f418f9cb359938b7dbfdc506b46a7f20861b2d67e6c35dbfae8ac3c729c008dfeee08421bf297b7dc48a08cfe7edb3b4cb5cd5000e1fbf31c0c1921093a7256fc1c4e31e47c201a274a48e008f5f58b2d207ca7d2eb6de86f88a8ba924326b92cf8acd8959c0e918a12d52ab181598abbd8e3ee1f454ef9dca5fc428e5e1749bf66d56a5e9ce297c6b18368869dad9a0b9466b877e6fff2c8b94907909c1c6ea55aa6366e160fe49091e8b068bb915e462e1ef5d78d5acce9af6d87dbc1981ebf949c7b1b0f71dd9db82d67cb1c680be64f5f373b25972bab039234541f6a22b592136a6b9d505b8b09c55a4d2856e54469552668ab7a82e2edafe4343ee8afc141bb0d2e34d7f0a1ff8d0fcd6f30d05863838610eb3321378cb9e5005c9156e3d269304d0da4ade1f41a4e8b06696990468da6d370fa351ce9bec6d3ace118eb29dfa1c9dfa879809a14c003aa6167fd92e4b8753eaf0d5a4fe4a1e8049b3a889b44aa21506f80e1eaca6bc6805c096105bc17e902d2ae0df113727bb27cb223db14394cd0950bb1fdc9905162082c9cf6ecac7f7cb5115ac3d0b9cda320bc4a81df1997cbf5fa7a943b7c81f0467fa744d8167f281d7a0c13bae56ea79b388956bfb81c246a2a9503c3202c4e1e9a1b1cfd3a55fc1b381b9cd058bb6faa28964418c84290ff52490d627cff8f9b5321a588f0975ef9b2ff97610fb3fb7b4795e361f6b762b2e66e1e138eb28adc3593a5b8c009d299811333f010edb49c78b2178b708f9abc3c586eb6d040a40a21692e2a7a414222a174b768760e9a448f31082878cfe67a40fa481f89420fca36513a4bb2ec4d06079486de066194ec05bb14f2ddb386055429b624f241319246f9cf5b6e204de873fafdf2b3416c5460a699d686ca079d974f2c7f34e757f72a39b9b9131b48e43abf585f668310d6c4e15e2b32561cfeaf08b125e77c82da615b1231a2dbd6cc5fd79c4b6015b697c6763c1ccf5bceca8a96cb56a74aa5d3d2e4b08736d12b8acd65ec9b009fa19668ac408c0207ab17a28a82aef6bbbb04dd14ed0b4d40b7e0b56b09846dcb7be8b9512fc590056006ee065a0d499e4e46b22ceda3fc551cc57ed681b22b635e461f6278bd7d0e23a1c4f24980613d9710284322f8706e0e23fff7bbe97bca568fc311b73ce36a8dbd012f80ac8d3337df039d9f7f5b639a334e8d1f54f782a736dfb851b992d0a5e98507efbc8e0714960a46d209af8fa20ac172458b28e5ce6fbb00ad2ac3293b839555aedb590040949d7954cb0b8d8357522f868f45d35dad1f24c9edb03fdd5b75412f591f7093b28b34175f63253d55026554b247492e705f415906cf2139e7f7a5dc7624cb7ad0549cf592621417d0752a94abec2593c1d7f0117b79884718bada07258234bd18eb834641317c99a5f48b70316808cf19f478ec64c272c826d5f5aa122964b472c870081a0504dbb4a0a78df4cc52167a0d8f06892e5eca75cae8fde5b691d2421c32b39482076e6e3520d52c38232a12d9a07fb8918bae869bedebc2c48acefd510c1ba249d8f4adf525b5fae71d808f1e43088058727f8fdf6373cf5851c49d478f554ac66a30d8dc7f24fdfa151968755e8b501fda7fe171c822468f047ce77f123daac0fda1c63b005aeb1eeda061f66356e1cb30a13820f34f91419f20a1b7e3bb6aab361065cef6d243404fb2e2a694825fb3bfc5237114f7069a815e6fbf0daeff4b2d98f429fae1496aac4fc3b19ee1987a05eccad4ba32e04ae5a659425ca4605d94295e7bfd458078fb050b64d5c915a797785fd55bf7eb96925a02431d37beaaead5db345253af9659aed7d8db2ba4670fb05ac61d5aff72d4b54cf596b3becba97bb9eb2eeb3a9651d732d4bb9c759677ddcbad7f19485de0b20671a40a3cdc3ae0f77e184b696a347d0dd3af81741a4b4383696a94b686a7d5701a1a484f239de66b7cda1a8ff19ec21d3abee64256016583cb124c8e1d43fd3f2816ecd5a28cd614ba76bb449ffb109ff9541ff5291f7f8fa3f98f2c79018bec3ec7891b52707cb46f79960f74b79dd30aadf4e9db1d2498ea6bd8890bfffd7bb1ee8e44b18e9e4f8af43948a21b2e17e03f95c222c8ec08afe81af4eb4ec74af0426d7ad4f307ec65d7fecdb0f96de880b1d6d53d33f8bf9d9fc114b9b84786f477e3c3f87517cec390fa65f410abecd2ff198f9db7cb4b5ad924e39b9e3f108f395e127c7682b974e13f88410aff8188f8ce37ec0e4997a854bedfd7a89ab7eeca0548d59843e872fed82b558fced4557f1cb0415ce3d7200e30f23ae420beb99f87b7515d2f17ac41efc9024ccc8c4b4fd9107cbfb1d4834359f933cf3817490c1a021d049360011666a021b0982ad6a9aeb6e647730d6b66750d818157eae097a0681c2034f8cb14fea74d1846fa5942c45901d9cecbf0a550ac749944c21c24f8ddafedee5f841ebe52a83a8af7130b8e0ed02abeb40aecf8cddda14e21ed1627cd00e71c5bff52050256b3f84965ae63c358e47a3b661faaf1bc49392471287009eb2ff2958a92d484b162b46986c6000943b266fa290868453e455b50a4970e5456b4c6be3d432e00bf76b60c9f9205ff09a6f5bceae198a24021968f72dcc1da4902ca259ceec266c92ba268dff110b7f820ca6aff363d79e4214ad7eeb62b886c693f59a4aebbb917bb7c49aa82395f2e1c1cb4d4144590659cf5b99d87bde4a208d3eed19e8a0bfea0b6df2be5b32d26cfe770bedaef83f5acba6328d1bd4256c4c46887213b92e33677426ece3e850d804fd98fb0efdf0a13284314e499f1cf66e90a0afd1b0802453558121dc0a2965ba518a4d23faa229d90273b46e2f0cf087d3a86512c37dca9f2638859667c777a9e2efdbce2ba631584d33e9273091ec6f32369713e6287ab170ade06548fe16bec94d356ae37a9a35d0e4105abd478ebbe4521ae424e315a6d2f42840f7b3ab2d615b80180bbf7364c21afcaa91719fc57c8f064f0a5e80f7d796c58ed31f4f247672a841c30d237d2881d4467084004db798a2f11e6ae8486a2a6882b41a3218e6a180dd1b8ddb690e30d7fc9080ba14a0b1fb3216fe5c6b34bae4870fa8cde6e01b425d90726f204df73286b5eab4c694ecf278fc86631b1e32e459baf0c57640d3a88214eb72de0b15cfa401a1a8fcd286242a1921437690d369baf2cc19acce34c3b5cef49aecce173bebd3c1e3548b20d82bf72dac415c7ac8808f1cdeff99fe3e04adae305af0bf50cd282d2ae0629141e225d3504c5cea9abc73e16e51d0c8953637c2ea4da5c5b928d2c9305de02f96986f65ded1950cc15ff1340f4cea9fe22bb50573b6fed49845591e5cee5b26545a15f42a50e664f0cdc39b1b2a0398de7bfaa25f3c50e6296d79219e0d1b56b03e9eeeea86136786590721c46491e90a30e70b6f71a02cd198a20b7eecc88c3437cdb7b377cc6ef5872fee12d197cd37d1265256e8a3785866e082bf7830c672723cc0403e17302d920c371513bd3f8828aa11911acc76c8e8725630b38984121050befd28017ba9e4d64a85da23003e08ddc7014b8bbfe1847898938f1c7286089ba2b1e62c886af9f740e7cebe52fee384db83a05114ea18efe218f91bcbb6d8270d30471e5264867b9a0a08847d6f956f078ab030833e753ff4c8cb70dba643c2bdc0bdc212a0f005461a686b4ce3314069607e2cb8cb0166ba80f34a103fa70a1a41ca9f43a0ca11f6c31eafa0345d48490c3dacb67ffec89097f0af7ce6dd4ea36446e53b928696bae165558540d453206832c45fe9523cd8d3e5c73582bdf31ea68f15c4553f058dc86c2078f593f1edf9ff93606748d36c7af31ad62ccd001dad3684168b75a35221c087192e43573832467b9156258a91467a9807a5c907c4bc75c6a50c6e90a42cd19e1c5f26c2de9fb9f905c96127f92be85ea95344670b71bb5825710120e1dc66fd69769268be36adc1ff3f6eeded9797446d36ed987c39922585cd4e8d0e3854864e5982b6ecca30d49f76c0e23c59484e22a25b5e525715ed0e44119a04a51d149bc1664f2961380a88894e7ef5d3c86fe7c1c2298748d2e8918622c0d49ee66c68d03d527088b215e800fb7be3adc000aacd3ebb81c328b347c641eeb2a2f68f05595ed8e090b82c6ea12a1c90ee14e50b25bc147429063c256595d048877c9a2e87550809f0c4dfcf1c8c968bb44ae87b0c9c24fa0d8eac02b69848157b60433188c584c526a38032cb2732ef3a6c37a359f364da8e1500962d2ff3e040a2eaf637af4fdf9bfbf3cd0ba4ade0a33c101716eb8c6add0a0a80168a733373229bba2ddfbae1fb2d917378c25a1490829d9bbe403b890c56b2786f6546de40c3567b7f436d1fdc395725ce157e0406a314445202c0bfe3b828a71e882241b949829792ee6b54ce841441b458f3308c516aeb1f4e09c61b3f49f043975b2f2ddfae226aa6af1609233623751c5e3bdfcaa23c8d1dccc6800bf025e13d413539c3330f371aefe0d708544b2f542b6bd46ffb7d9a7d5a01e89ac42f956815e8bd8dae58af00a4f4cc3de9f08f9ba0440dbb110658c4cad5a4efc5165df678187bb811444e073ec87a27508151e1bd3edd42e440112e5a240073117451851f8bd7fd13c4b1cb15f7606bb5f60eed8e1e233a4de1deb56fbf74c93ba4d058eda403fe8f73a4ab8dd102354a2bb8d3e1afecca40869176bbc58bd473526161e16de6bbf8b2972bfcd5c52a255445b17efe0450fe5354f1022d69361b4f96114389f44bd2d1672da8399e553baf03533256e120c60d19b0b034e3cf81d5af1a14ee66951260104471d1bf13cc08bd81a68644621b54663e48a7bdc4daa9dc30650eded56da4e80e188da2e98ed438b562f16dda2b2b2a220d20bd9823988247e437d470483b83eec2b57190c6cd71f7d8d05e44ab5a793550cf283b97ebd45dabf1a4d003ba7a599f87e6de3ce608ef057a6c161bcec3352ca0a21d41d67e1ee1771a16d95d06f62ec4e421ea78ce82ce7898b64b37907262e2306df81dc82d9a386ebaeee6d56c742fb88ee697a971ca6524083e8c380add80f2c4da07a07352ce21493df81bc0674bdb4bd4ed93a1f5bf014aaf5cf044105278a99820e791ec4e0e152d59e41e83790cf509aa240bfbe89964f787d45d25a62bfbd6ffa237f7a4a7c1a6fc523591e863bb45f013df3fc29c8fb1144ee3c54125fe4dc9a32b280c2d9c1530fbd7c113786ac0939263612a8c955ff5a18bab10f2d5c787f6487f6d5d91212b256f9e83371ac2f26b1e6084840e6edc173c24d63d1f9064278c1dd070317606317cf4d886eb291ce7795273827044f4512440e2c09d47772d4bfeb0533f3f23d3c7662417cee382ace8dc10965293599da6071492f4d7ab4f46ea8293251f0508ae687ef76f76898cf167b9f0fb8e43aa3f2bfed850ddad28e667b745d6626be16faa04fdef6334b6a55a20bfb511ac38044e17bf73197d5e1178bd8d44b794821c6a94daa6494e351600555005cac5071f6638f77f6f2b90a495eb8863592a112daa0760019cdd55feb59892d9309d6a78725b3af783a50b1120af38e7f22f74a144087522cae9d6885598674d669e16bcda4c2d4a582cc34d71aa752fe792d7c79d4da0c9d454ff636d373643edbdfa7806072a8d01718e46745fc7381f16cbd772bfa5d2c77799058f89950af1c6f8aafa2df8e8ac65dbb7fbe326198d2c9a461ea8cbeb0947d7f95fe6a3581e76834042613f90f5b744495045a8db2a32c088122dd16abf6c914066aafb4caaba86bc2611081942be52201baa9c305eb8228110ce92f9937806d4b70c23303d7f0a012fbb63ea0009170c10eb75d2d4fdde37a8d66144eaccf3c2831bfceec342d3248c100abf048738d5a3fa54270edc98e77d03b38e4c155fc7724c24cc3679161c182d6d64b39bca4704238351bb6a9878bf6a8782b3dd701705e91c42a5e643475c97b9f4b4ea3b626307e3421cba5b110d89ac63a499ca598b6dd835ac5748e92f09242ab531f510251ea8ee50d01be691837f86c727fc026855b53c7a70b6e17112016bb1a41d26ae7cc4bd5d4cffdeb1845f2297648c706c64b6163c7656065f8424ef8819300c3b18234a6aa4a1ddbc9ef82f95aeaf12d7691cabe2b60ddd53b180ff4c6b803e838ae09972c30d1691982a250293f3aac919b36621d849ea82ec61b9011fda2d68a1c4352115789437312235dd44d30f5facd70c4cee88817f303a01e1a82475868c1bb8f30c661c68c720753b43d8a85012618818010cd600df8927eb7e50c0c52220e4610fd497d0a1d83118f61362eb85d3781150144ce26ee6c714cbc651c1fc4666877ef7fe55e01c039d043daf3ecb1d38e57f812feb962168d7e5fd5f9461f9174d378d26e5a4960d5f556cb9757d3956f16561f95fa9406427237c35430b5d316412c8068bfe8eea312713b98b1af11ea282e31f09b8ead49bcf9c4d6bea314cd2ed1cd2775ce3fda85f877ffa1c747a613f368376941b81e41ac7c517f32fd69db0ec22b7a3f4e31a74a0848eb83ccedabc524d168ec13070b12920169d13c7decfdc9e5baf26702dd4efd7cfe05ef6bc932afe894709e651840305a958bf973ba774605759aab421c9afdbdde10faccc9df94b728beec96d13cc4b9e9da6b4246db74b3011e475fb5cfa27ed5cd36c7e54e33e888d6f8b390b01e584d076546b3f95287444d24e6e7cc3970dc669ec90eadbec7162258491d0e65b51e3a95fa96244a2313fd42206246855583366428bf608646618243dc2d900aa05f4983085990449b1b652c4149a8b265609ea456eee0e8d47710813bc199f42ac5b1c71215cef7082d99bc7db15c82ffcbb84ffefdc462671c27223eedff49e96c1e056a922c4d88f077809a88183aec6ead7b55648c8037ab122c6daac31a6b6be1a53e1795de6332f701ec60447ac20feab567a7f6ccd01a12f4a9d555c90fe5dfb8fcd6052efb5d4ac48775b2cb166d970144f0f58e83543ead16744a121f46b7ad06ba0aa250ad1db93334dd973156c8b38f6541b5dd935802885f175217b32abda6159d9570e9949ac2196a3746a8db941d42b7259537fbca2d53d3bc303552d6b7e4487b77338a689d8090f09b3ea7d03c7b362edc11bec61a2fa88888565eca8f85fd8104809331bccaf36e2265e3c046caaab775f296f6d24eb7f3c8d029254993b78338a894fc1da4aa11f4a6df6012b17c523aeb8dd77b296a7e38fa732c4c5c09c7b3832dd8e07c447e7644135ff96f33086d26023f651edcff3a43ab443d3c4068b54b6c5c1196ba1f312f4bf766af294106ccfaa2b8dfe43dfe72e9cf7afb03ed819d510058ac047eec2392512ddf2818b6416840d0833985a755c20df39230a8be864b853d09caaba51facaf88748d9e98f8ad4821f52d54323aad12d4f928ff03c655aa52f92c176bd43d570d7bbda23865c60282869d285c3661a7a283982ef5c50dc2a1dc83d370b7a2f1039e1c389807df65fc1c22c002615d2517f5d7b48088e7589e47ff99e131ad122af301a7faa92f1fb96e17cd7a0e2418cfc3e742ac1113b73dbb7569dfd32a41135229697076796d7ac623f5708b5bf39d2c7c30a1f55d8f376ba6217f4c5c8584f1b2328e835354b61194de687ce313411a8d1e54ddc0fab44a28ce7cb04383afa286dc6275c6cb934712a65888d6aa1b5c8df53a6412553eeec26620bd989b4e90c7413815e14eab44f8b71b55a18f76a4f8e4932e8139f216710c608ad90bc28fd371a1436f96231574dd89e8bf503c57b192103b31d95b90fa46dde432f240a159751a7322bb839fdb6648297ed99853eef43e9ff0525e1e3081a152051b9a01c45fcd3e2d3e397f6715f5fc561d8c7802c8145295bbb2087655dfa8959b296dbb4dd8b2fea9ff6cc8fcca1257188c91619231aaf99577798a20ca82eaec2d00b577012ee05c38ad1e2822a8763289231b25763c7dd081d55dcaa1339bdd6f3389be565af829855cad47b92f9dc8a566b12b350929ab9b14868cca09c29bc40e6a3f54a140673eb5216b49b43bcf7f330ecfdb085b748fa5018d81d2d938c8b33f7c0d20b47b04e0d6a745c9157e7a44e9602f47ad67cb858980bb2c197a4e2bb7763dd0e1069750a896233a0afca0626edb7143ff8ff087e2b17a2401f835ce8e41fc58285651c6283163b81e314e0451befdfc2fc8cb6cda71a3d54abf2f338db098da8f5d3309b85bf9d128234157108bb8c251e8f9c577119582d14dfe8ec48a07015db2432213761e990d95127c54ee98eaeaf78f3bbb4adc855ae83e4b675dd66bf296386db0b7c3718d3bca0eb6792a7d699bd4059e77826e7a41cde06068bb5d0f31cd775c0eda3748f0af14999485d8080088d495bcc36b253c067c0d8c86044df0124275d026112aa96b643aac6f435de57f067c5dcac1ddf7fbf76b8f574c2fa5cf66329352b57108eadf344fab386ec4ea008b9feba2510690275b757434605b89a38d8431479a41061bdcd5b355c3cc9e86269aa342ff1c4393525df809aedbde208982f4d8b812dde685362770ef2f445aa9261c5aafdef5e886594f2ba9f48fcbeb2143fe2a36524b9f97b8b1d6e24a9c7e38be77bad1872089a0bfffcd367b993d959b56885bd0047dac72252efab2f56445ad70b0086b2c7584948d109e6e8e5e1b1c0b2b98070426382fc33d9cff57644bf35937cc551173acb9c93a6d852319d42462465612c81755292406af6f237397bceb7f3de077157e03fd3194f5892327b67886845c2bb09312e163ce8d77e7a5c79b3e7af90564c36d110f2fa20755bd34652809bed254a1958501d67a046c132d87b491350156053934c45dc4b9e7641af6c5b2d026336148afc13411d2e2689a8482c3f446cc48127243605520906a445e5657c2bcb02abc4d8820de5e6155e8a5f0d12cb39de70c4462119982a053de2b5b19d643fca98dc3aae81c5164842595338a16d0fe7f40cc1d9814d873d690c997ab042683a2bc3e59f652f99c254a16e8bf291a3ba8af2b23fdb222d20b949b5af3a0820b304bef6b0cd64dc070b40a04e2ee6e8e9bd60e0fe7636303ef8d7826a575fa727b0eef660c8f49a45766170b82f63c72d69789dec4c00621f8402a193baec852699039a81d59ed609d69b48a6a24ef4be3703e1917478726a7f0be352f51af7892a11320ef5b875034b9feff6b460aec2d4291386720e522f1c0f40a9cf18f42156e7c8ca27a0263cb4d97f2dca0a82ddb828292b88d1b40288a004ba51c5ddf3313cb3f9c2d1236d0d98645d23ad610683b4f6923c214ef3da80c9e33546724eae6c0252358c756509c548e680608384a4beca7e50ecfeb05fc0590c3af1c048794c14bac173c8d4118f3a57a6d855c63edd53179c5efcd5b3491a0c6c2939a0883cbe3ddaa9cbca63733d2d6018f51ba565c692832fafac08f7b86ecb04d5cab43ac3fdf849d4be8e148744a83539e1e0f15333b2213d97b76fbd54ebd8e310937082df239dc3dd2944dc0488abd61f2c60f56595e79934b1410d5be0d070461a9dc6784144eeaf63ee7b38703b1f49db2dc6e29eb6864037150988f6fee0145e9c08d728fe0532deb478a6157be59a52e527a61f460e504ca0d7d56537631a94ee54342dfadc8354ce9dd9c4544a360c510bf4403ee9e47cc5bc927f1b802a08890a471fe007ecd9fe166c96b120390d46b48c42e5afff0853d0cafc3db7bbe890606db4f1f37dd379949bf1fd0e359864f5e74cc4fe0b17e052c23930edb45c61e5539f1c5d8d7bb6bb315a5586ebf4d1851953cb12d7bf98d9343f3d88ba778971579abacbdf04c040d81d1ce6cc290ff11980ebc6efa9d859bc4bc3e2a8c77114b95e11d158c250b4db4dc7b57f1cad7c0b9637c758dd697bbc6d66cdecf62d42c64a508f9c3173bd71ca57038dfc0ba12753a9d7615b16ae69134dadf5569f7b290e96c99913bcaeb4ec630303c1cc9e58fab77ee160fd6638ef8ad0e2b077bf4849511bb68bdd5f742b76a2ba3ec69260618a324e989efb561fcb9fcbf0ef14320f835699440825256a2dd09e1515d4322cf2ed071a39b0b13fc446dc7062c5fa4118e0d466a6687464619679754682589f18de60dbbf4b96a95a8cdca15a375213fe0906afbd06d049cd836c66e3f27f0bf3c540d13aae7599defc5962135487c5c0d8bf61d59a59d3eff8ec82bc7901da1b66e162041040a84dfb9c85adc47df9b8dfa27486ec88f60566f56a905eef4d4faab6def2d4ff6b4e3a3315114bb76edb8a0f9c9e040c8bb1e56412e3034c5b0922b74caec503dc26aa7fa262c087c6e4cbee672f4a086c931aac3f84e443947c8ca6a43db38a6c274c41dbc7b98197095493e79cb50b7f36f1d14af1d854aa6ad5ee5cb98b8d832514ac67857eeac2c7476a98cf29f1fd023536ee886758040b4272264d690607b513d999a7d7d206412b4c265f65c0c01eaa5967a553a3ad01b70cd349815258aafcd5c50797c8aa816d1cb4d40727d18bdbe83f4988f23d1f9ac08ef64bbb99500cc390018ba74c9db4f3c473aefb458e21c34e17d348822d0c1f39af10fcd1f49e35558ca7df0100a670e9fdacac6cafcf624111ce4abb9c80f2c48e350e474753dccd5521639b421b34c69b00d01a02d0d5dadf2b120db447b38750bf8ec1a50c6549c6500c04f79c2686ea100e8fb5adc2687912b4781c80eed3a177b7a8c55e11784a6e0a2c359fccd7060533a9f0d7ec705c07cb57a9c446c9ed42865435a7eeab32801ac79b903ae9187f3263441707fea2f113ddcf67a3be0a8ed0519348e7856a6bbe2a5b3dfc2b1d3419d006d1ed0ab6e00ab2106f7fd3e9a536150a9d77d41c08c86318a0345d8ef02d94d7894714830b595328ccd440a8f0de0626ff3d7bcceed9f49385e29460f1bcf44787f9d0c4849b5627878eb60f4f42859eb5e078248f62f636fab538b6410d6dfb40188acad1c82df1288cf389c532f5e0cbbcdfbbb1ecbf93a55859723b81c20f37523f63df24d808f45b09550d6f549c9ad3df1bc2fc949fea980844fb61d7e36da04de91a2c96282e28162fad6e0cfc5e3e9b84a3a810c9dc070a8f5d4e76dfd88811c2b0e540391af67697a9d27c78fe413d72475a0d80fa083a50a53694d5ac3fd16e2013455e6825dc7010f543b39e81835a40f72b48b93143d900515cce91504d8c7b1b5dca84ec07200525e3bfd712ad3b597a30c14fb78e8a1d6bfebeb29830279475ed6108a54b388479e261c6c6388981345a1e172de5cee069c0adeba74cc8c4bb6b33ab2b9147745bedf2e687bcc7db771851a0283b86bfdbdd1f5d99f6fb8e3e3e60bdcb214772721c529543a62b7073749e43f458daca3f8b2147798f0e292d794f07c86040ed0338abbd22a4007b3621e755c34c4cda1267cfa33d834a02b96e2aeb66f71779c0f2b401a88716d807b77a53112d21ab2b09d81cec5bf92a27c5602f6ee3247ed879635f1caf5c85f59d2931e306f7a3d4769dc743b88b7230ae276172b6f74d961c66d543bbba48a6dcfbfa4537e4753631712d40a57643749ba3f25d3ed73c9ec14cb8966eda707beee5a5711d06c688747da2af1b3297cdd611e3bfabcb115c16067aa460996d571161be73208b00cb75e83e05764e330a6b0db1569383e76b30813ff75c746c74a9dccb03b3ca100f60935b5af589b0af4c014e680debb102e538476c81f8c94a6ca0b8450f0a1c23da76abb327c18461f4a5abf0503d69d9d873b23eb49b4fb1b860c2a44de389760d53eb633de2c43772579cf82410f64491cadaddad7f38b114bcb2e5066c31bb6b72ab955a5c794854b314c1001ab34ea1c254adf2c7562250479e559ba9605dc8d8d5e2b22e1e6d926144347e8360e6ea252ea08630670c74a70674f919748287b08ca972f76f3b198397a68f6899f7372a95860ad391ff89b6c95dd1d008c83f1432acbe04d3cedea3ca0e8842e5192d5e8ba4a50b0490ed4df41d1e96a2e30bb4fb65f213f059a539a1245568a085be283f04cf0fc98038b4c1db74320b4f8326871b361b080e6399792b44a9791d4c2ae761ee88ac21ad954a46efb3fa11e39ac9a6d7f7fea674c0b8feb44233d216e49b58029ca595fba52846daaa79426499652dc5d210753d5f31ba8f5802c43f9f57f2705599ee58ccb81a9a3de3339da0fe8349d1418251643fe6732ca91f58044251e084b884e05e178520621e5eadaa0c2987f6f108ab65c35e5d84daf8234eeadb642cf06ff08316c396f2b5c8318689c9321c82a836ccb077d55537057ab96fd6db67c5d1f1a893bfc5a93c2fead97aec2e3cff77be1affd83b5063e8ab764e1536ef9a611b0098064e3499c93167981131ef931a63585485d0d1c6e70c888ff45aea1711dad3c918bb4b5ac5478a1b94cdb4ab09e70d55d2685c11e06f620c7747a34eb87bd71414c4fe49ed9602b19dc381d3a3d7863949fc36e27e1bfb5a263237721daa3d9504e36dc144d56d4a1f1dfe6e3002ee2cafd69333572475638ad2b0b4e1eb7f2e02bdf7536ae252bdc66aa2359ae6e4a19e261184ef9a58ebcb4a5874bc7808ed8f2fa7582cabe2174ef91a7f83ec9effbf2d0b59ff211392e2cb66f5ff54aa68c9ebe57b544a02f41ea82234a0d8c201d9b5af4d92afbbcb7ff40cc842ffe354647edf3d630c4e8f016d3f640a5b59c176d7e863e6f09c6cea09f3200cbf702089ac1994bb3753a08b748d22e5fe7104f01e114c42be6145687c44281d6ab2e7a4538a9e1d97e89135f92af191875000ad85e84a4ebc08655a753fae32700b3ec62602fe912eb0d542219d09a288d3d5d9019e3af174d7c3a0ee3fbed84905b53cc6150f212b965ea20f4d2ab44e6534505095b23ecf71ef42110e703e46c4fab0de4118db2f6546200a0517438258aef7db5dd834f39a8aec6085ac533143be2a0efe9359387642bffaaa45fc4add1f59889bcd123d646a3148e232ac22ff4aeeb4a2925bad2811d425c003a6f6d9a36d83a26a8fa603019f24ba97120a53734f13dd817c7db470f119ce006866143aab6c42c47df0ff6be354aad13823c2bd96f64a19eb88a12466e08a6aca2b1a51745cc92b6de0e700f153f85d62da49d3b1f6d98ec245bed3102e58927304d1613a6673f6dfb8cdda78f18868d9dc7f2cd11b5d4824320dc44e5177f4f2509554ae1ddf794091d3265d9810817803a20d1179133945341b75fcf2d6488f5bd565bc2379449c6c02f54a1db329b2111c931df48075428d0a23f30201b8b6d039604af8d60f2b96a6584663a289f85a59f8587da38f2cbd42ef82bfbf2020f54fd19c5511e16183a93164fc26c12316902119317c924523651def5635bfc4361ea3e8b24393c3040cabde22ad21fb748dc4566058de967acea23b0e80a99e5694bd7821b9cc5d1fcf778fc35a1cdbb4ba062b11c1c7f8b3955d61692e09d9a90f3979f44a39331b9a44e5db79a0ba8681135bcd1f73bc804c7a6c1ca51f2c9b97be4ca192333a65be5a3014617cd69a279a902c209fc97c4b9d6c303c592fc4136fd8821c4591ecac9f5722bccb89de9d13ab12ba013d892e2c07ed7d6dc7c47e508f55f59a279c11f6c664c2a2f7f3faf24929a10fe5c8a57139ade35818a6ced9a9fa3c517be7de6cdff877a581bae46b3a913ffe61171cd22eed4fca68a034b6e9a13f80f4861066c4c737ef6493a361047088ab77a5e613c0cc1ebb8fb0d1480cf7d9cf2dfeaffbe7f7045c4b811ea51a9795300f4b4fc6c9411832d00ae7bd997cf71eb093d76c85decee676d1a758bdcfab32c4c38baf78b67c13e5cbf97753add66c1abe0b06957e13fcf73e58663fcf09e38d471d773afac7deb601dde815ea29a678809884b9a876a4069aa9c9ba2a4ff6da286c192d72534fc293feb124a218e9eddf0e21b95ac78c5d43803b47121e099d3de5b7480aea7dba70d7a4f300771d64d9876eded81471a02ead03c5a42dfff664b5b8639f579c1d39bf4fa1eef0ade480ca00ef02f1942fab69830d18a5ea45ede1f3b299c34a214dbdbc08f9c1730663269813187e1081ecb42a09ea2930464f5d67cf21f4d7af2455ddfca1ea824341fc25ccfc1a82458d189e10d7f21f01b5307f6ecd2ddc16f707e1109bc9d11506b6b4b8a4d95eead75534fa53918177c5438e638062b05129233c43e2da55d817bdbe4db4d46860ef5abaf43f00b193c76e45c66912c69abed7a963838cad88118c86fbd32a8cbc7cbad2af24e9d45b3b1d70570e0e98a0e08f0ff43de291d4ff2889def1935b0d3acb864d22293e3d0a2cea2dd902335ec2ecb2675a026f521cf2402d53e3941d8bc37c4c08386ad6dd095daf2b69f41ec982b8e1fd971c27db65f3a163387a9df3f701c26d5494604a9739b9c6ee7d134ba1153106744d4bc15a85863d2272f3ff81b3ea8dfecdd42804f0a52d5553d7a2eef42202ee22b3e9b385339ef0321cce925c344b4c12918cf14ae432c12bddaddc438af5c5fcefd44cedf1a41c01fd066235c057bfe1650c1a156fd1d1ae957cad874abd562a7b5bbd50d347ad3b401a4b94e2a7348058f10caa2f152a456c5c9a71762c680a62a08a1b63108a2703bf4962d40a441b2e1d211226bea371c484214b7881e851b85fcf6061390c9013835ca55c6473cb4e99a6328e67e955d92f4884011a14d7b908b78b84668eb0e19064b1de225b4f62632557152c512cf4bd89afbfa211c3f10a4002a294b5a962c722f0112c51d4474d5a8bad7b51ffcb88889d86b252a53d31773c8a4f71c1b4ff4efff54a154dacced351b6b97a5e1db9758df5b85858f48563011b70148292cb58e4b15f05bb5e38e7db212dc69b5854961d28b102b3156a10aeec3aecd728ca209af83a1478b5c55684966ac8c42482c3d49507a1ad81f87dd159c4d2dbc9f453ac60037cabfbbf8b1c703d40944048a6ebe6aa6d249632b64703ffe9886828ada33a6886206d053fe2f70fde533d0d08a151226662247bcc8fb8fbb67ff6dadbcb29098b98414544f69d16f5036dac8a5dc2709490dd8052935bb385f8f7c0e0f0531c4d610925acae483d7d700eab39dedc308f8ab0e3b7675285293c990d9d9c3c32974158abce7d72be051fab7030cb67eb40c037cd2a950d089b1c8383ba2b6e2acff6d4bb620be993492f8ffb683131fa25071470b64101b39a3f33725e91924a59515ae69ad5c2812bd9b3df5342a1201e5fa31e1edb430b1526be9c0a7a8f1d494859941ed0c4f21f1fcdf2d3b163a8858075844120c805bf52efd231a8ad34e5166a3bd2f25519ac5b4380aa2697da77eaca7aadc7913f125c8406796535342d65733011c4718241c79069691d651d503c96ba9fe2eaebd547ec4017213add76e2074bf1de5d808881269a1a5259011ff431f610ec7de7ff9ee1e74b5b112bffafc3620804a5cae30dd9e76cbb621a2bf4a7959a00bd36763289586be04cfd96496101eac33949cbcbb1dbb5b25a74e72b669e2b181f477f0a7e8692984ab04f3a8b96d49896c8af8301ca68614045d14c120c0f18bd0a9ceade2f35bf9e2df6eee242f01eed14a7d1104013ffe1ad3e2a0a4ed46f118f85ab90fe883b02cfbbefc1a500c93014fd934ca5784e975ca98845c8cbaa5c4f1476700c53ca014b8a289fcb398d3082825e8594811dbce8a4d701c6f7b795fb8c46b62d17fea0585dec32910ce33800a00cb7c41dae301d039cf3d132a0470b9b4a3ee3f41822921aeb876c5df369bfbc49d21ea8a0963eb934812ffdcbdc387f9ccfc679d1d5ec950f784a7b2c739237d6f42ed3157992ed644a1718a5e434433a49b51d900038d96f8cb2074659b6fc9bd3d04ed499b4f78c53da693e18002c386a3f18316d8343204a399d7de22153d4c1daa30ea38e8440bdfcc2650982f2f13813505480af79c2ea876ddcf1bf7edb0362282ecb675acf80a31c968a938f0013e90a8b803eacdb79d37b35c584877058090b83e17eee7a1aee211e0e21bbc60d8a6e7c48012be4408a4a58688ec0f17f29d828aed5b3b6709850b4c25323c8daa03d819683ba2ce351f1619f70f40841a3025996f99fc6b1134e7b81a3853d8d270109a8eccf1158a3a045c5baa4313233827320acb8838c98eee84d7b7c32ac814f5981b6179032c2c06fc1f97e2ff2da69b596e10c95188eaae932e64483717e81fa123b4276d75e42a1595e51d143fff2fa7ef8b088585820feeb27ed49ba9d220de332c5cbfcacbe9524b04fd7480594f97a8973a973595a8feb599504e572a4f868c0e9d695709663bd55a75fdeeb35fe8f8a4580010dc284af8d6f5110eb6e62ebf1143fd3b4a172d97ced098408300bba24c7c5bce27798817bdc4a54bbc57c52b3f2d9fd6b501ff64ad9f198633d140ce886109c3d709bfa268b2a7805a6edf0250b8f5c3bcb4ea4d9706f26a71dd1359be3b843f11c8584b09b01915ddfe16f666c21d334309592d40180a86f8fb5b356e42a7332c27573ef7fe9dc61f16de2574c8ef8571677d838fe130c6ae8306f2546b4b7803fa7b6439a26bb2a391726681574781227b2f7ca86c3384eac253242e964bdd2eed3df8624798385a5f4896172df8ceecaa6c335fd01b3371e2f2051be9094d93083219edc76fd7747f84da30c4e5ef4e744db094acbfe86347d00fd3784601ff181c6d508c68925bfa3951c34fce3f25dc9dc6eccd2350a509f13b80309d8b7a5ee447e919dc53c7d016ee65c3059742b70cb9c9440cec401af1464984498a17644e21bd755f08682ed713888299b6a2d7be448e92a3fe531b35d7bc48e4e23e1fd0c480260090e4ac6d8dd16b42c7bdd21c40972cd80a1c402170700e6fb27cfec3b9836e725ac1d56054a83896e3f3a3c0ebdf9305191ffc5b09b3f5cdf5ec0bc7118e3147d0d28d72ca3cdd28431308c32c97e6f5d395f4f16b559a04f80c0e19d77ff168b78d78b0d24aa001f3ac57560e15e539e5707966494eef91bf7cbb93b2b7154fed9c83c4730d487f96cee3463caa768300e5a40357dc5e83a9e5b00771192befffc601eac6eaa2d3327e01a4e57fa302d2294b9cb20402a0c0b2e84b85f71112c476a4357adef5a7cea0c7bccee7588e6442435d39fdbf8548b92b65f17abd7f807f9d6686d2aa9a2e7ea8655d8b02d482fa83b7ced2fef5107785ffc60683eafc56c67707d6bfccca744b925e621c5cf00ae0e9adbbaba0304cf3349d17ea77a84de20cdd10c1d0ea78fddffb628e88e10ffce9285a551e16ed0d94b5ce9443cc199e5e0588302382775719d134ed034aad019a2de161422c8de77d2b11ab881072c861e0a41aad1e9c624b46cbad5ced595b99e793c9161e42cb235d9e7520927b4da461362a5e9562d76dc2dac7e4d4423ab9c7fe93b26870e31fd7b891dd16d38a7632e0ed19509f067f933c6e8481467c8d9e0dff3ff682d6deda492a1c7c6354386637abebcfa80e1d259d2bd2f89ea5712ee20b756396266b4d7c3496005b5856d82c755b5c563d562a34911d954f4b330d468b13412e0a2eff40896b5ba8062cfeb6d91eb82c5e38d60afa4cefd8cf6057780f80835753168ac145b23b2ddd54f4bff224877410bfff4ad6e04262039db438a5edfc840708977b29017b89dc427e1daa591b1b4474c293953e639138132cab450e36f8e59e48820cdb3fb5960b2ba001e983a60705e9278cab10519438de41437aea08f315ac67e57a247637cd094fde1dc3f585f5967820acbacf7760919817e3b5b175a26f828aef9fb08d6efd7ec19d007a2bc545aed647cb9f280719bad4263f19f7fe961f7da8c564ac7252edba80550b93a3416e81bf5cc23e89d380a430dceef2cc1aa851538c2a0cde2f8a825a529594c3f844bc41b4e284d110bd022d78a913cf2bd55cb3eab92f997c49f55be1716dffb9fc39843eae632eb138935e47d9c4c67b43d7f0254ed51a6089539d7c20c47d79a5e7ea968a28f8301e635ae3a5da51939bda3cab6ea08a23ba9d3f69b7fbd981b483e784052d335c5d8071e1c06e944685d31cc5c5a081388707cd4dead15916a4c01d88b75751457582fff39493af14b95ec02a185294ddebc0edb5223f12173d3e04f50a9b801c9afd9bef3e90b15401b45b403b18c27f4c491ac8fd5e84a3cca2d41610d986b4ce46bc8654d15c6464b3df3565eb641ce5c7afe3743f322b3cd7b016ed152b57965f3dc2aaef475d90e3a6cb9103a823f593a7b88a1c30464f3fc77fcb3a19a59362bb5a6fc250172a433d20f4c8bc615304629b7cc7b8eb230ae60b37cbf8998e59bb30e0c729f3682bff8a625b183d54daffbcacf421ce5689441b87103eb054714a39aea0d5ce5a7a1f01f9d23032fd9768e9b6929852819401ff87d847b6ff270a89dcb63b16b4d86caac42750905f706d5f5c997569ee908aabb10e616f7c21ab93bb9ed39e10dc6b531f06a9714057c4a9df76c9b9ba818d276b3f7f234120449e59486a8d0a040b07cc6d56a10304b0b24d0f1ad4fb410c711386000dad726330c6dd8ed4c2334ad4e7b25633a2df4a903aec6a2644c1c2960d96c6dd4b1fc5fa5f5bb81912631b5a585b4bed091ed7711f1b6a01cfdbd04a0cde55c8d11a16235840fa9f16e98a68f2ce4c7b91dfae67a8ddf9e8430546567f8d3a216a4d3919cd64401dc0e27b139cbff9b4fe4e666124767a3b854ffceead061903975af805869b629b924abf5e157b3b30ea13fc16c7338b83b822492865f6875f4096a59850604daf7905e017af0eb16f319c4f567be73088a73f4c279477264a8bd6011b9192538c9959730f722af85a2d7ac2f55e526ce01290067b9cce4e2c285c557d61721318df1d1e5f85e233f85aa36d68a84e9989ee2cd284a99923416b53303cc27534c61698f3c64adaf7ab0306ae35d57d952f4cf74774302e7c521a4d2e6f1fa0a6f1fda2a163af4b457a37f4012e89bc383db5e680c03c422c4dc391c3d6c1b783f886324a656caa0638f48f614865154e61eabb558d30842d9e23ee85e8e6f81aee61c0842c4a39c732e75afdb8b1ad34ff0d0c0db77dab249bf5323b5bd80370e76fd6da75e7d5963b534cd5ffa1c5ad7b1f7b3be911620f3ef7bca04c29cd019dc0dd003b4e774deb38f5bdb0f1d3911e8ba654a487ca8002827d38a09b1cf874ad49e76439dfac78f99aa66b4e6bec13f1c62c3e8b7db2ea81820d7942b67ec5f87dfec837c9b6b0af382dcfde25cb10ac4672482e93636040741e8797bfb39c0a62e8c3effc4bc665a81894813e850c28b7e2fc5a6bd2f79067aeb0d564409761124a3eeb34f3cf825462ef38753923294361f11084774d49f358027951ee6d7f792d7a6b671c369b17cb0c12961ec52028a80861ffd5f03f711f36004fe5ce3a17c4fd5580070222e7c7fa60f977edc30a12e3ebf8e1c2d8dfbed98b5ace424f0e3b30641dd8aa6a4528e744c9bba4e15a43d627c05334b8134d54ac6eacda4137100e912d3357ca24389c3faa85f52889ef435d2860aa38e5e1fde4a57566996c70b1869f6e3de1533420a32aebab24d4f133e102136300649a6624f2e879f8e5a7844c3c43721c68146cccda8b4b94056565652033fba58ac900ccfce1617d0024e5cd9189a31c551a88a641966e96867d42a12f8a9ef8461ee33d337cc287e0232985e29a22c4055f606a9d4eaa59b53b58d4dfbc4a3a568d36aa0cccec1a90a23d4dd09cfad22bad7f324d09eddf1216760834179e755ce839d56697d0deb5563aa29482611645f4de03aaff5e90b2a94c2030613225c240003b1ff421b1938b7c69821cdd8c3464ecb765a4bd38cd95a3fee800f73223607a8e2833ffa96071a1e384880a9d6f01502d62e1155cfd71538a02e90a8674c3b1320a9240c43a488fc02d26c580514b9dc4f000898f2c195a3412e92ccb8c826f7947edbb97bfdfd7bb11f665c88c4761fb6be281a14c6ca79df38261a1083feeae5be1d06658bdd7a172bb12d24d594ccab9387a8f2507933984d2380b09bd20fa925b03132c2b501fe04d1f4956d7fc0acd60243003b12ce91bab347570941b6057c564f0d33a7fa4ba3ce8e943103c7631c3258d2907bed0dad3e12b87a3065618afffed853a492ed4abd333c76e4935bd0d0fa86d5e9198ad45fb48ed3183ba62608ca39a9c0217439e9c1d091a17f489c3d8253b51bfb7ab8ed1e6531bcb68e046d48f6518db07c2093400bfe8defcede8c9de31a194e596efb9505373a147c8d5d7e373424ab3ccab5f203b4a8243e531026f6bdb9a40c1e8c52f1efd680462b312955b0334ad32ef8ef53e66927df2764d71950a7db89030469b6552e7ab637ca50ed0b3784060845b410eb0e76074c5c67bc39ee7d0648b7e8130719315a71af62c878aee908f3988b3026c8125a6a3dc9c4dfc3d2633ac9a30ca35152d40bc94e4aeb1853081dc79bf363292604785c517a9fd5b0739426ed7012b612771fe620fcae243a32008598ae6894ce8c8d346915386c0e98d5432be64aa97b56d983267f28449e8151e4bce602b47f0f3ec8b42446487f7ee4fc80e805ee1be05110ac2bc3ec2fe049d0e33417c0024e6b4dfd0d803c740fe42c1b787565f7ef6e83e3e780fb1322cec89fe39d354e8da83c47043c300fec7e6e163f74cdabe4147d6f48cd25682a955d622a9003ec0c40c484a2c4b8616331c5de56494568a4681e0c645d9de23a136d8fb095c2775112210bfc3ebd89f972d6dccadbfbe4441af85026ca1f738f4d57b58a082d92aa972d0a4b888d2be5fa4f35315ce298f9d2153f1b6274dfbc9182316e286a0fb47724fff60bdfcbe18655eb4e436f9329755b42d4cc7839304c030ef9b483661ac9b063855ff5645a1ca47d15b017a0face48340fcff4eeeb457384d903b9e60fb343b77d4034a1fc4ebcf7dc0538a67ec39e12261fe3e45784f669bc051c25d8b1fe03870beacc22ad2d619fea9a7be7f097103f95fa0160655c16229afda386d75862a6e577838435b64162387324f53d7841d8f8dea791795d57f104c5fb445a701ba66e65a636f2400a008c924b21f92ca974f92f06f1278ac3e1db1bf7338c8eae96efc7f07b551983386d1262bc90f92f9897465554eacbc16d21cf229e8fd5baa2a4afc85068905edb6fc96ba3036c7b65dce1b8cf959a0beecfdae0d28bab69493455f8f3f0b2e836de21100078ae0f4e744bd2323d992bef4e9fa2a1690df72ef70456fe1cf1d8c0eb53463a2e8edde2dcec818423c71ce7a02f34a4c289bdf5272352a097d2afd1e1ee1d8722a6ced3287380ea20edd9ea8f54376e79397c2a542de4acea4300ef8e4c6e6c0804fd7f268ee2923467494c5ac0143e9856a76d7c9141eb20435b4c1b2b7495223624343c34f831a3aae13b007133b1fd76a68d7a5f6c897dd0276744db74697eab1c571bb018e41e2174779412a8afb84b1234f9e09f432d8fec489c0d1e8992f3d7e044ca0072cf1d096c443297e0958d8f99698795b81801b204fbdf5681d0c3bb4aa73324758e40e5c6f75f5cecfdf19b5e73c5e6c8a1759f0922fcb8db16bde2d315abfc45cf3021edea75d60ae6d02b01c99eb52a8f610816f73d7b69d9472de3270a3727219c674ebf4562b6f9694269051b38caa2e59785c0c748bcafd37bf6f885a00684b0d88f2a146bfd3735d926b09af81255d340efceeb7a5273194715cd8dab27dc2415365c5287517a53ae2cd3dea9c234cc8a23db37724ea430b760bd78966b31d506ba99954c38504606f58185a88c36031500ba8eec66ba1ee0624a6888f4c8bc0a4761996aaa96093b38b46e71ffe6e687851baeb8ffcc54b542ceba51655db7d013112c1fd5c315298d399325dd936214eea9f80388b3e3fe0d4d3b0a1e767d8b5739eb4ffdfeca0fb05295a12a99b914f9c2e876dfa600e2f248e09536e9a5b366d892e02330fd243785276431c17b04d9d716cc25accaa909916e55d1fb3b0376c7cc69448148a644950fa860724e910a0379b2be9c3eed9ca5c3729195043e67c7d40fdf7e2d643260d86bcaba3bd1154c6ac2012fb7c145452a7dac9886a3a5aff4ae00634e6bda15663223d974c1259c90fe268d60eb8d9f7aa528807e7c83a898473a8856f0772ce32982809b8b44cca81af352405f7d93005818770eb762b67666a358ca2e2a0202aa15896f7b2faaf60408c17937e541b47239c22b9c4ef59868d765d7cba7a7458ee82a1dbabd029c361ae9e6541c1af7fc614a5585e5a04f0dc8a98c297821d0067ab928b3c80bf0890cc826c4f6add9ac897089ec6f5bdc24a4e6402d03daa46cafeefd1ed28f98c104ef264a07c6ff8ca58fcf8e18458de79f7ca9b95d07c3ae39a0c8712ce88a77c99f15d34219c71fda8edb5ab6d610401307a4ff04cf187eae7027108578031ad70a6357c4bb1841ccb8c30b929b288e7a908cd3fbb11524f43e31642470f4910ff15ed2064284a67dc5acdc1f13230c771960a817ca0ba9fe3ca309fe86bc1e3451d5e73067d3204b062da2cbebb34047e773ab0f9ef432b30da746a3fb2d48605506bb8a2e514e8d8a07c0e7efd6c09d04465c9a633ca314a719621dd250a298599638b7fb8fc8eb4c030be9ef2709b06783a66708a4a8ecfc6d9bab4ef3612cc6e2f0ccb2433d5072f6b15a23ba7f2b644065750128545a50265b9c8cd38b66fb950cd618e5aa49b8368b54f4e0d5eb60e1986615a3d4d4ce91205f2481fdee4a50edf94421abb6ef31a0405def6790c699014d0e7484bcd593d1acfcc852e0fb92536caed07c97603405514ad975704b57cbd205b1e4af0f7ca7b3c9d4772426b75fc96f5a53e52579c76d5f249264e702401e86a9a4860d0fa1b2825a64869d73548a39126a5a09493f0e10e7db2f116e8c2db17ea367ae817c83d83009dc990c097358198bde237d4a8ae0f26e75185456f2003492bc50f8314422737f231ee53909b56a74ba6b5969817bd32645f04f0287edf3f14e1728cc98455544327d93859b0afd6446704a86bd74c5aaa080d68d028498f07e596077ec6947db8bccd2cb7e5e9bfa18e6941c1934c35d61d649e458195a0c5bb1a3ed40607a73230e380de1df2882b75a18165396ee4c155f6da4935580f9d45fbfaf7ef00a7ac618dda0e45bf688fee12134d0581a7c081659d0301b6839ef34365e0825c16088d1ff88f3fd7e122a35c662a6451a7b34da58bc98a57915cc05516bdf2c47d1c7c9f9fdc9454a5bf6c59ce44ba6d673c111c621e8c89deb000cd18a306a31593a9105c83f6c17962c7b6197a87240e3d5e5bf279fd8afcba5a1b17dca8269283d80729ecaaaddff4e7b30cc4c06d1a5f89aecf2954bcd638fa1a624b4f802c28857af62b4bcb248114cc1ba8a324db7e7a28795d0b9244e9e149a254243eed9e57928257620b55d20b0f637ba1d18e80ba2829b8db9df4c3dca047b773a5be5f27871552c0121954fd436dd10ebb14f4e0c7d218bca1c3664db2187838c25172a8ac4f636c910dfc1f86faf900ceb6513e0e8321ef023ae4c0cb2dedec591393a25338b72c098b753a762f80eaab14f365ddf35663dd0126da6a062ec403c147c35dca77f8b7e00c01b08895d613d0bfa9fc032a2bcce3f6528820eab2cb9036939395408101c7896a839cd00e3d096571d84f6a6cfb05c3ea9647c1e3eed23995b29281ea89f477dfbf7324387586af53089f0fbaed7a9a6147ddebe7137b173aa88da2a6e38d5b044a0bf1a37c720ad3d6e977a750b46f49a14077aee2aa9126fbc0d41783bb2a7726baaf88b3d99a26c1077dee0bacfe0366df97c4ffe4c7856ad3627a7b4a55c0299026799dcd518d5d1431a712d4818633185f3611df2b8ba51b2b320184bc113ed2bc89b5bb47b347517d92663cd426326d6573102f515e2ad86ea1b05fcadfc972b3ae836e115fde2bf0a469d2dbe1a9f7c0b43365ca9072f23e290b819fc0b650e68a5003ddd38b583fa27729d9597ccd058ed7bc06d5c75e2be420cc0aa89a3e547479925d702b39b18532541412c70beb5ade2265b92f429afa072df44a289268083c8f236efc10a259768ad38b56c1329d0422f11b2b05aedff8b088df01c47a21d7dae21aadc84a2e9f665d10a22887ddedd505fad5b385a8aa3b02872f1be9f1d16c2a737ce0d75d864725829904d8d74c01f9e0129014ee007e56251ac02be0655ae6531782cf47171e9a3b427c19548a59fe3dfa8cd2733449e766c038e1dd734c1bc0c4d8167a6ad59e3d0dfefd53c47313a09efd85c981e7033be03ade99650fbf8c76390383988ffedc3b020ff9e5ce802fe1f56d069c7a75138dfaf1103380a3f96e851815729b71dc576e7729d59dca4ec7ad195e4f3bb170ede43a527e6e68268ce566bee0c9ae4b02a4aca0068b82f51f8b0bcfb931068d5bc40620d5b0f577f57a1a0065f4d0d5a61bcc66eeca7a8f3baad2803c09dbe029d476fa0237fd42f454ce199fc61d8825e89d3649b8f7b46adab64bb2881e0198fac42bd554ea24902972e1b97e9ddcf12984571b1f55635e4c3e8ac195111afc1641179784c0698a8b547244868a163a87f473a6ebaf5460847065948fd00348085d88981c1cf0424fbf90d65f686577ce6c9f8c827d678179b03e9bf41a7cbaef27c9eefe967721b5e1a93fc6b273b46e2c5e2409224f58edd86796a00616a2cef9248be53a49c9d6f0c6e23aaa21accd14fc7df70ef399f79b92842605899c56035c9a1a3639549e9154c664ebaf244d5cb938b2e8a3e9592b1184510e337a713dc1caa1e1508c84f357b88cf19d9cd9a709ac9ddc168eaab30d3f057ea4e5dd765b6c02f23177bb1b3031dbcb66084a57ad2d4a2579615d24a88ecfef4cdbb2944ba82ca1d31a661eabf19264194b3098c8dd9a8620b74af417adb3bbeb3e794240d24b41aa6a9c389b8f5d5bca0ab1397e5bf523661695473f2e4371888ec92846457a8e825b26ca64768e19ae11a45b297de4075c2b1df8119251cabfcbd3a0541d5e4ab0a0d94aad2fd5c0b887de48e5f70624c8e8731c2f55df906254d2f90eaf7a334934876f4011f25a80f818551a1142b25d061801cff634eccf01c873d92d3f314b125dfa3e36fa0588f9a3af985b86a8545b7a4a063130b2238eab9f333060b30640b94107c0026927a1b5ebf26b808349347d1ba4e43b23da78095098a18c30b3baad119c83054db6bc71d3fc0569ca05b80b9b0ed66d939c8e9b74f9ececbe7e611ae7a4b2d83267411856f1421cd86cde75adc59ca2745abd6c6532075191376a7ad75ca564a45e19e6ea8badc4ad8fc0ada105ae4edd83a88fcf67098dbdf1ea58abc0575d1f9dadc82881da42945934e5349331071f5e21e74d12105ed4666a99978874c8c61dde1dcb98d8147a3927cd06e0e2394c097a115e0fd8f0d509a388f13e4f44f56c034a98d37821caf8d6c494295ca7a38db04ee6c03a7a32604c9f651db0c08cd982ad15d890108b48e45ae161d9f28409d2fced8fa534fd9d88168c89ab62ec669b15d45eabb85a893a9e60cca7d910c22bc36d9cc7b1f52d7c4c673d2f853c652808ce2b42acb4e9887ed5c21a13e82ed5d30a57aefb5903231a64e4fd9850691511a405bb6fc19088c12f80b589771387b6f2cb1cbf64d3820a8050f52047402a9b77e4c7a6eb3978c6c268a7595f35259b721801855c917dd9d37a7d7ec1324ec00fb0861594f8500fbefd834a69992f3d52895a1286f5794a54eb8f1f1df7242e7f430fea2f54964d89a9ca253c3a80774ba4ba485af2c9f77afe7895e292c67767bf9bc30dc470b89c3346ae28da69c48d0940896f6e4112dca2d58bc2e76281ea3037d592cd65500c22397fddc3d88c54f588b8d7d6618c9bcbb52eb7b970300861b327ee649d44874db3dab730271e4efd13afb76367a6c307b641e2da45587032a4da920de7fa49798299eaa722596ef6accbb83e3651fe90747c44646b4d6b468ebe543ea33378357eceef276f51f8709c1ead32f4192c2a6997c726c57ddcc5d9fdd15398fba13125464e252cf5398c6e14f0744ce609b27782563465719451bd628ab5d01aa3ba5269e351dade1b82cebb8ff1eb51347742934d433b10d734a56ba3117a692225ddf506b4b29b456b8004e8a82dd9abf6e2327188bac390e1200cca51e5c63a2db966ee0092d0c342e2c90e44d8bb41a742192b4e1d352ffaa815d4d7d3f01befceb0eaa8367da774700329ce5a41d0351020d3ba7921c97d34b4f83a28f5f472dc522b6492c4e616ae3fc3be3f6d29a50487ea7822f7f8cba5370aafad09a9821fa6019cdc88d85c16abbe72427f21ef80cc713151129cef9efec722d15558da60a83ebb5412829c95a04dd49219b605086454cc16f2ce8db210b9c1082bd1851bf107b4377e4abec65aa5bdb9fa7938688b60e9bd1b02397e90956884f4638348cb4327b10a8695084a547a941c65584638a011da57bae95b93f520a11922071555789af5776e2112da400a698c1b43870728b4afc2a0af7e26db1da26e34048c072831637ca63cb09d3e880486210531756661a8649d0db4c4359bf3a64ebb1c23f22e0c9ac86d7424e2097e681bf989acb1de38f37c8a229d2b367fcd5bb92a6fb9ac485350c940762b558cf312e0f25851e65086985a78ace08bca9fc9a40fc4945860d1f07ae9e0b22f02baf1520bb98b59c4f0440c002ed16926e71e7b821c2e8e4ca5d01a80a1e64f8f613c247d78c7f37ac093ef131e668f21ca4bf9ae86276026540c3414851e0ffcdd4f9bf1967cec466842a5111dfc50875d3ef1cfedc05e323c6c082ebd258244f35584df4be011e7ce79e88d5e6f5451f749e045207ca5b06ce4cf37d028ff21737f3ef2e8b7f36cba3386a99c89228aefe7431d8c34775ffaf717460e0b3c71f6a2c4da84557b3ae02226cd821ffd189e268479d92586dd24c0ec44d76c4d8f128159484677c6f59312e512b4228150077075dec9715c7c1bb25d06d5fb085a5f0a5cb725b3f436b374f10e8854af2e652e5efd27b7ad8372abf52ea756bc8c7718ecde0b74ec06590f1688a393e9c89d7d59407aff4577f114d1f0ad56c82c97f6ce72ad8ed000b229ebb1f8a47e6dbd5387ec1e0b5d85fb590f62b27a830762e8d96916212dfe415be0884be5cb77a849895b7ab3c6f206f2d244c4edd6f1dad9655ce4ad1a1375ef5ff37a1badf530a497031fea30d0fe8fbc2bd59dca9fbed26c4b00da5b25145fff370ba18e074c96ed3d01c88273d480f4b680a0ad27792f5308b835d1d567156a351be5ceb86f9ca4dc472346853431f65aae8df0862f902a3f928fe8f967f9d1f0f81b2a6830ac32d3b3c352b669bf11047c21f8b627580696007e088eba1c909b3ef109001968393e9eb9260e48d7996b665393820f3bdb52bffa3798c00ea0e0ae0f5bb88cc1a4e51fbfea49d49352a343df74619639e452b4380d6b6225ce09bb98b10c34ba42fa17c8f484bd8d01bdc14e9687a2097e58c6857ad841cf7d218aed4195eef1c116d5915ed909121d9c48bfe71e22961ecc4a7bbeb64f1029b78f89eccd4ab83c5c28d96302cfe8f9b94fc8c00d40748ba609f6ae0e8166cb01d67227ee8d5a0ef005866b2e6dc0f69b7a12d6d239722afc0cc75f8dc150dc37bafc35baba23e9113666c94c0e5cef02da00fe665c3050c24a07b686eff9fe7be36964856de2adf5fc33efcdbbed69642a142597d22674705fea3ccdcdfefd15080883c1bfede2b8cef33e067fbd9737697091dfa3f4816e0ed28a4135c172e5468d4283904d24217befbda5945226296584068e06f005cf9aefeeaee292513b864758b0eb8ee11126a4d8402814293e528f8f4ffca93db0e5e3d8f0c499534a29a594f29347e06afd4ad197254f4cb264a162c7cfc05a2a2588b220425b905aeb916d891809f2323ce2253c6282f008520c5cae254a5da1121ba8a1490cae90020597276c506485acc80b36d45a6bbd419665052cb4233628410576614b75414629b51264062ec0e8a0040abe9821c2a523e2c5852d44804011c9b2c296d48ee111222e46c2a8940812220a91972486e8a20591d760060f89d4c044b52534c2c5de760c8d6041bb64701eed2327af61c5c8272b9bfc068815fa62cd38119945281c1181798dfbf3c11c3026c91dfabddfd8a71f0940f0d39db86301b973bfd2bf3a05fbb402219120c9543942e8e903a560ff3ebef5e7b73a70213347e094b2e51fd5905043c28f20773eda34e7a5614bc99011e679b4a5a71ef53f78b4cf7e7ab1e301c29f47e87efb4d03f17cdb51bdeb1bd4c3bffaad924f9db6fcfbe42f9ed23c555def3bfc5bf75bb7e99af999166af21bf9de979a291fa5674c7efd51bfdbf07bef6920aac71f773aefbef77167fba96f4cd6af54cffad8f1dc5f45bf99f2bba21afb413bacdfeaf7633e4feab3f7ffc1a33deafd7d9000b43df7a92701a8fbdcf1a878ee7bcf6308bfc73d7e4fd7d0a73942c16fe4ab3e21fa424f617df2575f8db522bfe6afe537f204b97df8f831c208efe3074f0d09daa73ea5816cafcdffc15343420a48e7fdd437ead357fdfd4df5b1e3e93cd557333f6807ff4653246c3cdda79ef270af7dec78b28ebac61fd5f47eb3695f8d6b1e717690e92ff88b3e83e4a79083eac44b6c71862c3c852c04512da1620a8b74b18512d5c215162993642d9155296961912943545b48a0458b169716d890284486e43034801dc3214384d0c043215f422162b0d8e25cea42c85d2a403660055b745589c0102e8ea458614c15499439022b31546bad35e8890d5a98e188172260a0816361a59a00c9142a2514f2836a0ab7631884043658cf2d8fa1c8ccadcccad483b86024089115ba1d43a12db284429c844178505171424828f4c410550fa150984d770c859c5e494b5d1c352d75f1e44f3e8f4c2e9e6ef0e40652364c29a594524a29a5d4c7dd55f7d0f7138236b537dab836dab035daa81e6df88c36a68c36acd43458adcda2ea87ac7ddca14d4d8b4fe3cea4773af04b0d62d963bfd22f020603026398ca07180f2e1e7870c518e92ba33a0f8afc1d467daf799fbb2fef6ff7359eafabc18ca70e5b74a968c8d96a30aa6ec8f8c1d89a11cccbcb776945a55d6bd09837f52fc639b75aff1ab6644f969e37498e64efbdf7031aafcff540fcb27beee37b519c8ded5d9be6e3471a5fb03e7eebf57f505efc8a95697ececfadf9deeaa3f97ebee6cbfbe256fd7b8d17aafff0cc1f8cc67cdd477d1398affbdd97e3138147e42067dedc9fda5ccd9a83ad1a84edeeb9d760f7f27d60db03b0ddc3bd46414e83b0cdfd8d5feb571f7c34e6cd747572769fbd86f7f35b9ee6fe82bfbb2eeff8813c76cfcd38b0e6f2a4334839a73ba5f553cd90a3ca498e1ac4164441f524c7afa888bbc9f946b59ac518638ea07ff408a2b0a96b59c0aeb4312a107d4a5dd564dadc125c315889553264f936f315ddbd1539884f73f8a19bb2387cefa53fdb122ece16543664f91163016718651bfa0a2242554354da94aaa064f9aa26395ab6cf585327dae8500fbe7266f873b74efc58870ce6ccc2bb05f3e90a21044c446122b67d605e44982f54d6e23eb9bb9c1c9dd487592c55940cbeb42dee2124fc2bfc4e2a7b4e83369b067f6bee9313029011444fa66c9ff825d3a9a824736293150227edfacae13735c76fbc32997a59643056914159248be635ba1aca949aa9b3e7270f8a5c3f078f4a4ad600073a2064c2049a38e0c41a8c5ebcbb61f50fa51239a83f3b28f2a0c8d55b5bb54306e393093f471307ccfef5e5938903fa7c90a383b54f54da120725c4386d9fe8b425ddb683b883776ade33925e88ee7e23ecb5a99a3c58abbba551b3d83855933c416ba7473a9b3cc6f8443a9183f8414e09ae11f8b868bc5c4d24f8369b0a07e9d15a214568929f94f2b545f0814da5f865cb1ca69ce81444a50f91b3e7d7eac260a49113593fd55a1de94727a53256d4ccc1b236b1c1a2d29e5f82cbb563a491f3f2c9d971c6199582ac74241ea9475735512165d78462db6a8cb17e4f047f7cd7a7512543cdb5d6aa2a3af22eba70779f71c6a8e37c2dd14269ff8e4b366081ca921642966e20b4b445191593133859da22ccd2165296b438b3a48597a52d8ee4b9fa9285199ac599253ba997d182a169b48efa4ec7480ffca5cedc41196f1fa44ffb3ecda7ba1ddcae5f6ffe183aa53b1de361b474cce5b764e8547d540782fc9e4c77dfc95a730ceddf82a15352831dd7ddb8d5686fdc1735cbb9bbd380744c75d5b3befb15f552fbfc81306c4e4c3e086353ea8a36f0fe1c2e2727268f621284ed2c9359d63df5b9cf1ea4948cf4c0d3200ccf0973a2b1c990c145c61fae02f7338ed3944cf6813f53ea1afcf7ed9b40613ce5ec34f3a1b1b9077d68ecfca907615cfeee41baefabbe56e4403eee40e0be276b50de6e07b7b918b4899bfc6d1f1a3bfb94fe9974dba764a4075cf69ba664eebdf4696b599665948c5480ad2df952e6cbe82f8084113023603c5841ead2a5051e98881c21c50c12d3d4a0a421d25191d912134a094355a09452fab13a057c28af56c84e29ad7f42955748f1b2c1bc0398edcf9a615c514b3921688340003bb652a07ef1c6ff04f9f3572b64306f8f3b483df44fa01a0402d8f2e5fb64618b1307e3d734fc1ef16b52eb4c0d8c7f42d08eda6775f79f1e71f6f2a376adad9552f7196dc8adfd0531a53eeeeea1f5cba4dd52bd12387577f71dae6cf72ade8ee10e471bccbfe56bd0050c9ee032c51151762a912849e0282b38726b142e5a9422b2283ce42846a8284bb8d58ee10e4c3215bc2b675a466aadb5aaa046072b8ce84045eb1073d90006a534cc0b8a029a773d7d4a8437e4a887ee48ca102f882830d831760ca39ce1c4107941f8b7c35f7a6bf3af8766fab5d3515fea9ef9ae757cd00edab2bbe13fbd46c77ce9df0ef7efa13fdf236b7271e4044a0f5e09bc24283b4081e2557128394031f288c8e06f075bef7a98e3e0cce5edd873900225a6a3b4e74f60f2e8b2a7174f2983d189beeb804f3d21b2c592c1fff9fed1a5dcaef99a1e963c7fd21f5cae212875c16056308651712a302a5460545c1e0f4f6e60e1c9912650c21bca147950e80d2fa03d0c99512c8538844fa27848948510872316bc1c02b06378c3961b4ab0c1fc61a5315f8e5361517274d720b765a47f657de9ed90e353d7645c2e1d2875c160de11c6b018231055784064eaf27080b93c1c60154a788313cf86549c3ea77c7963ca1778347834601df61d040722e2d41871688cd38319e38c714e2d260c5b4c3d91278e7dfb3a3268c3e574e9eeeebe02954e44448964a42f78312fe6c5bc9817f3625ecc8bd16a2fce7013adf6e29bf4348d68b5d7263dd16a6b12ad54c6a8c3c0e8347f4e4f05f91337c18cbe6cb0b5cb782ce4181a99098dc4d420c21184a9a18c4724c7d088291c8119a3a41ace784a92c418e97456a6590ac9d9964232f684e4eb09c9d61392ebf68464baa590ec5b127942f2dcde0bd91392a52724473add5b52ada7c44b8293c848dd3d2207c14ec9608b53024f6e208584354c41c2850db408af498c71460f06397f98425e933cab9063229e84344c2f06afc863e22df19478327832784406f83800046c097eb0630d463450d9b10b429d52f79064bc63484311cf051a567857e884ccb63b8634086df061f387cd2b922318273063c480710273c64c97a62e60be7469eac224e774a7b4ca39dd29ad1d704a2bf8c1c514639f1253ae5a7b2fc6d9c538cb346dc35ca669dbc6711d93c66d1cd77528548ae3502822b2943de79933f3c82472660a9d31d3d405cc972e4d5d98a49423e944164d3733664c07c00f66171a73e49cee945639dd29add5d26aedbd18671ad5349f52bb38cb346ddbb88e769d4fd9691bc7751d0a95ea50a954ce2a95e7ad58ac172f686860b468abe553b67cf356a04dcbe9a4dbbfccd77caf850ce26d25ee9802b8d81ed0c5993367cec0602d1a64a7a24c9e5380ef44cc065fdb9d4801b34ea2681283e1c9a536c822733b864e9850d5c00912f98b40e2b99559ada7ff9c43d1fcd7bb5e3118cdf71a5fab93a25dabb4428c999c770c9d1079391172bf330491e18cc5028bbff7de2222f326e2288ae17cefbd48ecbd45fbde221af67d79a4b47e8c261519d5221c9010e16a71c8e0946576880c62ac0c645cb8a2092b24942b963c3dc19e5c302c6102850a263808a98289932255844c846cbc63b8448b31ae316488a624516ac92c668aaced182e79c2b1448cdfd850490c9444b1c1874dc9d6c2205b6b65dec48d4349d2bc895b09d3b6a112268ea86210468a3061c2b8c0c9c995844a8ce905b1a52151c4b20c45112b62481461ac877d770c634761ac684726760c5f489a35f3d61af8ebcf88d826bb766d31e579336d9324b3c5391f47fa81a4333b6811c315474f5c28913911836b1f5866e57c0320382c4af4964cb36388c4850de677337509a7ee1489900bb9e565b67b91837a43870c624d3c846e9c4629fda1318946609373297fea769be6ad6de31abc5f3ff59efafcb14b659aa2344531e7999c74cea094f4160c11434d56a53f35aa519f8c30a39e035d14455139e2466954d59103f91ca6bb7637b2ebefe3da2eed67fd43b0b162c50b50d2a5c018638c2ffe8b31fe8c3ade3efbfb6537bb599665f8add578be6217b5deedbb1a7dfcf5f3806bf7dcb7cf59ed448ef355756ea1d55201c6ad1c5629da200d85400a8570220495dd9a31218c6c0f8338b3dd6bfd49abc6f3e591c9606b0849fa9230882e3b8655c06c06ec185689b2a50b4faf05593eae1afcf1ba44a63f26f3e8518f36fd2934f5787bfcd9e3b7d90f02e0f7f6da336034766b8379d78b51349572f7d7b671dfb53babbb8bb1ddbe8cbb7decf0663fc319ddf88b74dfcf86fbfc7bee9b9bfba4980cda7099d59a228336dbfd3d1964fa9acd7e7cc769b9dcec3b30e77cccd9f797ee16cf9765cd97a6f37cd50c7f3ead6de7bdfa87da5983da1a5dbecd794492f7440623530eaf91fddaa72f8b8c9ec8a389b375a82df5f1552a954aa5ca397339e7acf17ca99e53a93ed4a73ed0c7b555afda72563d4aa2502815eaa5ac299cf7f7aa2f6bd0e6633da7c1fc9c2a7f208d9d7f9b1cf7c5f9ea3e306877efdd8dee39b97fe6467171be366ecbf16690e383b22887ccb9a599a4539e40f366fe90097e332307dc1539fa8dcc7233b2d5b0cad07dbbc5a94f90db07fd2b41d03f74683c76fd1f3e2414bbbecfed0f4a2c3a64048d60d7c711a1d855e30bca3f2108877ceccffd06e3ab4ff3f9b7b2b2efd784e07f3fc6df1badaf5f7c56fd1839a0f403fdb31df8cbbe21104c7b7bbfd17aff5e7cfd50317290fdc4dbbb0683b60e84fbabc7dfea555fcff6aa4f7de0f6a9f7be9ad6c74df3343ffd6a5a0fe3e3d65e67c678edab0961fb18bf7d0c5dd3d23882b6f73521c0f8fc303e7ffed8f118227788c4b800b0be7d198f617cded37cdebff8c0eef1b3be1ed5c72dbb1d417ba5c1edf1ebb80cef73f5e0cf1ac46f3ffb72be9e4e737a7638ee635d43ebfb7782674f19fe1fbbb3ff91fd8fdd9ad376ed23023beacccbc98e02415866e0bf5d05e8dfaff321370efaf7bb4803e6822a3f236883aea983401b47fcad33678caf48754f7cffd6d4b8d41f239d52aa4116d5a0d4f2fa471a377dc29f08397ccf881cd48f47fc720a720730ceb9d5fa7fc1268fd7a0202c7ed9f3a93b7164ff8e210f4d3d9cd9b01dc31e90d854ca0021664b5c1f83114c0d41db1ebf7620dcaf92276e8fb1883fd7576a335ff3c56acaf261600e18c19440e5a6feb1e2165b74dd07374fa966fe5cdfe3b4c7820cc69c5d7fea663dcdd7e7e9e1c1f8cabdf7f575724c1ced6b7d1399fbb87770ffe275666be2d0686c33715e686ebe268e12396e4e73ffde17e70bc6176707aa8ffbfc719fe21ef59bc31fe634b8bdd59c9337a90a526ada6f52dbde3f1f71d3dae701d80679ec1e4dd3206c6b7fa5ac916ba85eaa2f7ff1f3a0c8333f17b739b58e77dba63509a33ce4bceffc4c93510ae152babbbbbb7428e84f6d1d8089282a682591e33d3142490ef627bc245cfa4fb5326943d9ece8dc77b74d6a8bc11478e463ed53d8f2037ddbdfe8bb7d97196fba6773fab6677bad03e7d6e497357d8c374b5f7b6bad75b2c1fa3f734ba7d75a9e895397f8eea1dd0e70ca987c307b6b35286376d33f735ffd33c14c5b0b5ab7f4ad0625d5353c9288f480bed54e41d5a37a2ca62a8d2de52cd6ba1b19a5db4729752d5b900ab0f7abf75dfdd46779b6973f134bace99ecb02237d6f5abeac73a335f7bbaf2f5b901ee0af5aa76584f9c7b77cf0c7f7f6f5b3f73ebb61c913a394524ab10c42cd7c254c35f241caee60c7704a991d4e510aa73809a778d9dbe69ea42bda50cdfb1decf87e4351da377f3e4f8d8c56f66de3b22ccb7ab488b38ce362f470af61e9e0b603eb4d837373af335dbabb7ba7411f1a19e8aefdc1cc37e83aef6a838052a8160452edffcc1e9a4f61fb07faf69d8dd1b48c67bac77f47f6f7ed6fe0cfff4c7f9a4df3b4ad6cc229af20463032496d37cdf57ae567f934af33e595495ee3f396fae8355615d0b47f600c9d69edef5b1eaf2163351a8411486020923eb8fce21403d12771820895448a988454820149a252912588a6107549b420a24940922824134411062fccd8175ac897b263181e6d1a3b864b56ecd8e9b0fa95a3ce66801c3239d93326a5545eeb33840c6cfafe815ac7b77be8cf2a7fbed5597b92959895182ae704b9eaad5601326ef94a05998a8d0039d2cd955b53caa90790a503369d23b5d4ae9ac85fae223c8d3f640198d970c81d0000e4486d6ab62124f9c11667c874644e6a335f1c954cadb555fe9463b6e8aa311467072e65adb5bafb277f3585bdb2c568e5f8d1babbbb7f6bbe7c0584cdbb5e30324c6eb1d1bcc83eb05cabd96a793d3655a6b1c5d5114152727ac77029053b02608b11ab4070c1d17cc525a62df78a2983bfe58a4b069f834d1cf91f4c1c7ac39692c6966f649b8e9341bc299d383e6b9276dc74cf12b294f76b9571fa8c61cba98caaf66bf5eaf2fd5d439958a3f210d2fdec71765f461cfa370f21c979adaef19965ebf21012adafb7382140bf86a49acb9e829412d870c45c1379cbf78790aa7d106bd1e5b299afba0262beacf2fb2137a5ee7466193655d870c88d6be4bef4e334ee21e35d7d7e3fe4aeb56a28daeb4c4a77f59b8790b28f4d11c77e96b56f08c9ebfe9982cde621a4398414636bab39521a23c69e8790aa5ee1775ab30367f990e7632d5b7445a98090cb991d432e6312b05f67ce982fffd77cf9af64906bacdf0f3935949029b6e717432e44ecd8593d730e1b0eb9658e77c32177ccfe2fdcf76a4a5e498192353f098a36089b11c19420028c06103b5add7231c95edf3ff7cc98385467a32ce39ceeb6a2404e91a37c116c69eb965f98e7e31ea531bb355ff24b2591978e6c90db53898b2d3feb39a7d370c949b824e567a80466535a45c85213f1632ba8090caa7419420485891430d9b2056a4b125194ae442488a8b04105235ec8e1c912a5214a36e41d43a5244a4628a5746514634402062bc218e67235a1d4452f90c527065cda90e5bbdf309b5221b39080090d4bb820c508872856949461418b135bc06899c18a04445bc6ac60d0d2454b16264c5cd4c524d412665929118096a321ab245a7ad0b2c312512cf630725c455c63939ab0bc60e5020f4c3cb1058a31589008932439bdb03a1266194ae2220a180c09c63023465cae214a5d30d84a05d8aa052c472e6009820896228aac86743b86585480854b09c45c39b32a22854a60666825a4082a3bdb312cc2e93edde46f31f5f30342eac16ddbfced33dd03f5ae81e4e72c8389bea67d9b309ee6c5c3f8170f84d48325e5d3ef219fd2979fe91ead96e6a181907ad0bcd44030bfb94ff330348d06d2912f60f7595afbb6eee3341052f640dc6b9fe91ea947692019f39bfba9972f35a7814cf09b07429a1a480af9cdfd4dc7e64b0d14fd666a2021a98134e037f7b907fa0c537ddc894eab8f3bd7fbb823efebb8b6fa80907a6cef6920b9b37dea551f10eeb5cf1f10a41e9c96460fc4484652b6d16fb49ce237f7be0c264e0301421a21eed4b71f77340da47edc01e594cd11f1b463ec189a40686f71c6898252c3c33e0972a7eec85490cf1b05b60ab20a92aa22bc02668334bce205ef185ee9125e1943916c716e7827ea40711ab62a7c503dd8a8cbafbbbbc6f2eb477dd24929f5f992fa88c09c32cac053656ccba4ad33371e1476b5b15a2b8d511aabb14a69174cf46957238f06993e25f9e18b0f44d00dfe803e34c6ece9944c7885887008fa449fe495b4cab358f325e506b9ecf3bce4ec416ecbf0c0646e4260be6b5f7fab9cdc5cf723ccef74d0ceb4df3e50665fb3c7415bfbe2979d7d91f57306314e393dba2f712f8e0431d5df9276ae805e0d72dbc68440f6af5b79ab59f661bff1a4c8e0ef97d76f928e7f8e093ccdde7fc66c3591e547d7d8a5eea0e90addb7f56bececb572f7508d3916a62471338726a59492be0e1399fb9ccdc5a6d66c6a4d2007c639d3604b83ffaf176ca3e037f36bcdf19e184124974491595864b0d56ab56c1354ce8982bf095fb2dc3fdcb61feb856ae449e9c4ba355f1e1519fca62f43186dfaa9795f47b421b7b47fe50474a20d196d48f0f65c1caa43e5d7b7bfad3edc793613c72ed9f56b42c06f9ff5d57bfb81f841fba88b3ffae241fcd60a955dff5a79b2b7c7dee32fbfcdc4b15a3aae3b8238970a77deaf30eb5f7ca07d67e91aef6b425875dfbdeabd0f47d056e9fcf5a474dcd997335f5273dadae7a28d13e4de24f7dbc5f86fc5f8621336be58031be3eb8f83befd2deb72e870019b81a8442e166539e910cd0800000120004315000020100a8744e2905828ca6379903d14800a8190427252960b43510ea33008622086410c0104116388310618a310347625008071888b7a3cb869337ff8160ff440143d21f2e4ee39749ac58f07d2733efd7824fd66e1eb998eeb330f7b1f63d820d7838a7a3cbb6d328780b71017f67a70ac533197c7a0358b9c1e08bd8b02d703dab6b81e2cd6e3e17264c603bcf90b625e0e8d3243ab23e1c90c0a522bcb94624341ef6ee9755195442c8a2fe502db7da8c6cf031b88c606c5d42e7d2af271076d0f47bf244e34f6736512452350727498b6cd37461f5c2a7badc36b5f58d55d0b11c7e44406772d33e60149c4aaf7691f844b3ebb0f0ad7efa03c7aef7a350aaa4d9a55ba4ffe35b21a006ad0b4009f16ddef75307a801362f958364c3678565b9b87fd2b100e10254a16bcad490dda887501efb26f13b26324c3c4a57a2b74dadf908a4234600f7bfe4296c113cdd509ed7a73bec3272bfcbd0bc3f7fe9ca8721bad77e624fcba213676c741a8003d2fd5c8082b808f21987bc50aa8b0d69ab7c6005523b97a5958c413b52ac39fc615c1eb1ad25e8b209d5553dc305eca36044144c56eeea53075bdadd231369c9079522228a4f4fbc929ef199fdbc1f8edeac121b3240e4f2cd0076aa59bea6d78211f884cda2ee776b8ddf2785d1f3a3c79f273f797bed99094aece437f2c87feb11a83230e67d7208d302f31e7cf74fe3c5bd6d111e48511aaee0c2b21724400726394a955623593a722d4776b80c8d207da89237bed1a73df29a244c36ec251f56d5b16fb213d88c19f8ac25a79c36e896a5d56dc7b168db1cda35b03e8c594632d2f7f0215b7ba4ee413d125596d2db6cf5a449a5664ba8a7ad0bd72069b0023e5f49d1aa53482e2bac0b36521561d17ee39647a2a5fb050631db5ba9e3aef5a65b022b66a61e52bb6edf37ba7c927efe2e2c37d5711fda754635a12377972ac1064a4ff55e4bc01a74704340251639122e12f3a1135873b055db2ef008a9478b8d3a373a757166ecb626c752932fbb7c32e0ffb91a08e86e367901c8656958a7c69406bdf18c0f56b096a887ecb8d5e5c5bcd17ab8fe78a0dac50b65822a8e322d7c3a9e48ceb3bdad780d37893af67540f1faa05f236c176dd02a34ecbcb191686a89069bf9ffd8f00045bf695b134b3fec1fa78fb966912a05877f59e627903cb0835990cea53fe981f29fb36567f176003c26210839e18038e4ca514c868fec8bbde3eb033f870a5c5f37a124af303857fb29aaa25569e38e5f718aee33b0edd112fedcb599d7ded75ca71db82323b0cd3085e30e82d149326ba6119abeb6c18d3e0a9f467d3fa6feb403d3f6596743bfdc93f9aa51f92b1e27d1afbe1073517401c9a70a60fe3895e4243fc305de0d822dcc645e9e54318f9e2d4cec6df9849709c6f07b996c886774150afefde0979b90a9af9cccfdb6c1e865c5288ab0b50576b62b0d8c709567e36508c79284949b1097bc91b637480c4176431b5ad0d9c9b115298e465132de052cee26b394e0299fbe6a57fe78350660d6a4a797b86eac183991eebdc258cf733c7df202da0b70adbfa94d72b745b18b8b7bd8f4082ea6d6a88d644b07b1fdbd6b63b6a9d382616386d1cb203fdc69ee6ec337bdd00bed0087e780c1a503088a48feae7768b316462aa167c466afc4300b6c590ef02912e9f9889e427442a9ad479118440a37316a222d160a65e7f4e7ece044f08d0974d2f9939726c86889923a2d683bada9b23c522493d475af2149f4ac4eb89c4b4a3fc74b0a840062476784e1a825538dbfe32d6beea3813ead81b17afaaa45695b6d989e2785625bb1365c533ac4f2edd5bb43d6d3059bf90861e221cdaee85370bf322bda8bc387d01138912229542736ff4cc64ea05340922ac2c907e8f836caf24d405b27c2b703a456b991a78bd89c4310085cd6532fb734ea2b6a59e5ac5ff4e4418d339433f0bfa292692160b57340a18fdde2ebf703731471cf96898ce444e63de90b900c757628e6a03c467de70c132e151bf780d61d40705fc83b777d238e53adc4f0725bc6102e5a4e5d9eecfeb49e45ca5267578e0636841625caf0ad6b11e0128fc3a883b4ab8e7ea8badfa25da2cfcdf7b491b106aa70fdd0fb940635914f02f72cb24894ab4f1031705c784e4e666283a011a2362a398a8af71ab982d4c9dac72bdabd216f8177207481f9a9f4d4863d07f5a80cfa2dbe12dbf6abc35981c7b2c9ebfe005a3e52f4a3d86208a579efff05fcf9f710fec66587c515962e278476074cc551ab3d3f4370e51e0b49a552a4d8e7b326d92339c1ad8b1a82c0c502c369a8026baa08299b4dc99255e0918e8a8cca2d7a3d64793956d9533d3664f837f0d16b9feb1097bda8cebfc902dfec3d873826a015d3fd911f5b936e17a57be347c32eef82341ce0c4ad6656baccea0a8c2c4dfbfdba9711e8c646b93387d0dc4cd3f3a59d5e9f869f7991354e61e199f3ad0c89ec364c034e47af6b312725eefeb457ed0161468886dc5e81d480b28c9bcd3aa4da59b430a3400633a1644990b75bf711cfc0c75d099b15c4eb71d06b03dbeb4bf4c2991e8eb0f017965b5cfa591b3700bc1b7f525b49bc4f9f9631a8ee0ee092cf622d5f911db05e1c4dbf8551d14fee7eaf1027edfc2f261aa47f79a248bed07208f245b41de34e6d18aae6c1184639a9bb6465b6f46c6849bcddc26e0285632ca2599714d2385ff8428952b13b9634c7f80c287c9c079e9693d445431598b27facd25e8cc22baf91549336f2226feb7856d83e94b2e6d9452883a5cc1285860cfd63ff6ddcc3e003c39c5a170046bb2f0bd4be0239c2acd947b4f4dd3e5d341d6e182d6436862cc9bcf065c0fafadaf15c6c4d07bb53f1351b7aea962f0b14fda0279d28cca80abb304e0f38c1dbec01a4ef110c28379153fb8fbb27d9c5ced700d9903e06def6e43c41493c19f3b4d82bb7a59e9a51c6de90d3a6f4df88362c4651f4af0595d8a05a1b10a4970bb0d493e951713e3e634a64b9cf8758bbb214fecc086dc9833fc008fed620bfa86af4694184ced271180995adab2cff947721073ec4f09778a1598d26b39fc6dd05b5b069548b58b784f7be83cc66d1172d0e04ca7bba00947f2811bf7de80a00227f44f8da0530ae6498e0fd07adb5a1e30ec85d8062f8683ad37dedcb76fa14069fcec072237bd4d5b02333a8ae1027788e9467a07c63a032cfe1a6769c08d117a7d4cc2be05057eecac9aa28fd5679f416c8a300784692804e8d2e3bd0416b9088fa8753e17cc0f301600ed2bd521a8adc25fbd6313c5277d8ad5143fb24d610a1b4efd0a4e02234d33d48982f928108bed63e9d909a714509eb91d8fa0e70c06080b543c5a0af216a5c868c4595eec90730ade496552d721e5c9428d45d607f48691b375d6f231e1d11940b99efe05b4071641b6d52459d2e8f47563a1024855592bee32117a09d3a21006cc98adcec3f248c2bdf80927a0f957e4b877b6d881258f7c24d784fc59d8052b6b4a17f2933c1f448af2e39f11e79bc0968c6be7c9e8239612f51ef1882fc81e47b761cf47092814139b3d5be336d9db5e0d2661a3eccc9b2db4cbeea3ba94c605d4de50f4b488376593e0d7db53fb66bde341f15eedbe6e2dda77a106347a7c19c224d02f72115ebc333cf0bd84257377acacd70d094871eaf771595be545707dd826b3127b8234cb39f3edd6d8e0be7497c4da217f1041f43d3b3c93d1a2f3c38463fd0283c8c1e8323c1bdc24b5dc40d16ba22eca98bbde0128321f89fe3dd9750a3eff38fee30ba18ca20afa0a6a373a4afac35ad65b3f97b998eda2a24c2ec44695947df0f0d1a431907df86bb15914df3673e62033d858e36cf8c059643f9daf12783f6a15c4568555241630633035885dd98546d789c92cd52f54cb3bf3bc61f99fdbc0bf97f7c06177a677a1f203b2d43e3ed9e919d3f0d15964a8601071bfa5e6046e56e68ae5204357ba92f729cd4bf0840ebb6cc80616878b8e7ead6d2b524ead0bd5acf9645d3da1308f89bc59fb712caa3b37bf8b76e1236f68f2f89d0e039bc69272cb037cb90074af9e351878a31836d2c618b6d0d2cb9ec58ab1598040ee601b2a457681c22be69144a9a8a54479b0ddb26d17ac82960f11f8efcc7d5b8381e159072eee3e8c2a42f652e854080c8b21a70219e4a9840ec1cae965868f8f7e16ca7688ff11ec0c043923aa81aee78cfc17a8e8701eaf225019afc362082680d9942ca8a0fdffb74314062a2e88911169af8c05473e0b9e32c3f08d9335d7c6ac6e47e2d7043b1349c43a9349e27fd874a31024ba3be833ae7762b4ff9845740234236750d058e85932e36de3c8a64fefe73cb02366c9289985bd127bf338adc8a26d3bccc45c3a2b13052c177348fb290cad84f3bdcd303a312c94b90618b498712c60cdf280e7530dfbc52c4addba8a2d6e7a43571f0c60ea977bdd27de8f7faf169a60851b4207dbc79fdd3fdb8db29849d2bf64326068fcdfca05687914960b7a13a54bc90bd79ad43adc5d578c9a77ebdda4f11c5c0d6d8a60a9ca52ac97fb3d49c043353e57c122fc841476364b40ceaf85b892136c5a7a63fd1654932d2669b1f26433d11f28f9998b9e6a9c67490b00ed6f470b5e0de93cec22365a8dee6f6a26b5f0bb055ac0ce26384180af958153961363bedaa0dc642363a44b2ac8c116f61d8a74cb99294a592dbc69f2686df9f4ac8e8f536f713d04774a62b3db65403b976de6c76f919d3e5c1eb9bbd529b08fbf9ff956697644c54531c65baf720bdcb69bb505e38d723753406b9404a45db8a5ae5f5346dccdbee17f9b9843d3a82e6d2214a7f7e1558b9fffbdfe8389452b83686ce76057e0494c5cddc7031360d82d47ba966633fd181d46b936e9e1bc2f9880f7b55356974c82ac8cbec4c322c2c0b9c7d28912d0a8b5165e625f5ba30ec994c2d4c748033d6fee648b2cacb1bf425cb4e471ff463c849dedd39c7d571aea727e0a21baf38d818bb2d059c4d87e71cfba85b4491fdd90798894ff0d599fa18f4bee0081e0d9b09302459084a164f022b00a7e42d0886b5b8a8904ac220ee7de0157a7dfd14e6d6d35c80dc48b2393c3b16d87ba5d46ee1fc72c7c39282f22d6aa051d1929008f74d421180adfbd628c4d489825f2739ceb1355920f3de91b88df8794211901ea2a37daede2cea657c4c9a786556d10220aecfcf87d42e4a827393f1d0ab781406bfd8da14528195a1ec43011e56b4d1a5859c1efc1751f344365be4ad23af985f9941173d1a3c1fce849260e082fe9231382137f9b6c190d497b928e8f50405f14eef6682f71ac920637cc7f0f9e36426179eb62d0682785f355a045541d19b33a14f4b54b02eb50c2273b6b726ec0b0991c06c58ab0c1292f6dbc5d514ae0571c692eea5d82816c801719fc2e6bdc2d649daa70078c4620eac57c13e8b4245d55b17092c61897d9b8db851b82a18a2084976c3e14fb82c23eb13db5e81492bbb9a4a2d9a4465a0f524762c899d6343973fcf512241a43904988f3f04d7f1240991076b5b4f49acd88433a155a15692841f4b015e28bcee35d6fdd7c94cdfc302a6165c6f758d9d7685100e31c68e5f27765840d5bf5ec6b18d2bf0deb8f2cf509d21ca12418140a18f4912279eb33d3443e46b868d332de4f6ff7b05c00b15bc0d9370637760177fb4781f4554fa0f580a8625faa7303b766426f0286e63cb75f8996ba54ac655436825b516e651ef9d0a497a02deefcad71aecdc08232f1bc3c0b961ff30713520a1216e55798acef2a2ad67015e056e68406316db9a2c44ae59d2a45bedb72d68a64486eae7c2d4ca9836cba3288fb09e9902ecbc809a817e994d5855c31908d3b612da68cd8923621c2c4775555f79bedc0e66aeacfd9f47409576e51cbadff20842014f32cbbb4b2789c6de229b8ea41eddb8fbb266aa9f3b1b6a8507aacd6bbedd916ea711a9bbcbce8f21d83c2b180953c1c067e7360157f0a77d6fa7ba953d7e5db012eff5d0c7b28d5c03274ec5c72e8534a10005b8ee7d726851fa3eba2d8ab7c2d3998eefd8213602904d05ea31aaa6f97960e0192d54214a90b95339fb667cff71d5a922131b989cff4f85f4c2f2f450517f7e51eb016790df158be793f225163750c426e1cf756f2797be2b39ed662406546114a9691510503ad79edb13c83169694badb464a55538a2baa2c80c211673ecd411cb3cbbbd1df8bbf7e44157490e7f1fb9cb23e66d8410f6800e1d94482988a86811d1f65bc9bafe84a9428f2920753412e2b5783db3cd7330f74103715fe0aa9aaf3a1ba882afb846039ec769b94590a6e0c43481fb0c8ce0fc87a9932c7eb2eee3147c0f4431be17d7ee1d907bcd7249ef522d09642462a91728926afca33888d87333ceac1f76d6a3535d1a61e56df3c241043c0beb6c9eb0376b89aeec5fb0f4f157e3517547e976b92f032cb9c9f26e028581e97adc473b3a8a89bc340bfad0c3317983e84130ccc849e6d4be0c12e9581bfd858aba7fa96c9ba757c35674c9cc5cb899b7ad094f0c7eaf55a4769f1d086f2dddfb9748b6baa040f3713636e278ead41aa5cc309e3206053cc631a883d85afdfb567777e059982f44a9fb907193a9fb3ca0b1e2a0443c774789295e22dcdd94d819c8ca07ef90d41845336f16aa7841eb68839fda2dc58ae8e6dba77ac4d915054db31c27128003e435241aa18ea5968541e1e20326ed13b3686d5f7e549da56d1c5aa37aa50fb4eb1c022033229ddaa65165cb3394accf5735e3597c66de2eb260628cb21ad0d43a8712605ab4ddb02333e82c182ff6d47f4ca607710ccc91bfb0f2d6325cec252978a7a9d0c1ce326c61b253c1da998f7cd9b124266059d1b369e17486014c90df3ac625008e5cf7c3b229009f7e6179fc0f097f53374514f43a912b5a5673bf00c89c192c6d4c53ce5eb717ccd9b75783a19eaa240c68c7db7fcd787a6055e4d7e57d723ad14e63d6942348a40b375c09345142c1e3e3f7934584fcaf2bdc43e16817d3cc970d414b547f8798d3c0738e9813109dc885975330dae244272403b79f3fb4d55de02334a6c05c851d77b36e47b78d48a1412178f5b69947d9f98fd58041378629b7b4b99391184ff926c10dc25415b0d5c227a201035448aaac0a428927ec5e8a15e884cde16127e784a9d14a022e8ebf8376062955c2b508f44f9c0c8874c37b60a3d2d319ffcaadd0cbfe61154228e397dbbf8452f69bb0e7383c0fdeae62e30ddc485e8f54f1378ad3b9d2d175808ac3ad1f367ffa69f2a88cd822702eb2cf78001a54d7ecc1417590b33ec288839fb5f6eeb9b1a9d4e48dd5efeb2a5102cf1cde6716692c685c852e09378e13af62af9f29dfcf52a1fb62c607b31520aa83070c7ef4ab93c76b7358e92eb592c1e56990c3e1785a568dd92cb3b7e7fc8d047007d138d99324ccf8fec9713e1b2ca063fd5142567d6c6d0ee602eadd8a59da2c51d3747f351ee1b9162330769b96d513a5474296f6120e40bf302f392e8ac84f8ac65020b14475cb44e08ef863ca47ea091a7aa728c6b293004253affbbe18498f76764beba41baa5a1f85da5d6fbb0c4d10121eb0865e5a8f524c08a623f7db2a67efe5b962f788fe840a5bf04997d5aa55ae4b7d080cd10db76e7f7949bb34a8896f4e59382db796f03e062f496dcabc63a527c50eed4dc3b05b4867cb353e891cba38971be20efd9e7aca86058eabce65c19461074b9aff2c96420310994dc5c211151822992c813b4d1485c4b6495287893982bc42263031417bfac20dc71dc42c9a40526770e54fee1819a41c30661947a484111c9fd5c6f3b9e3a15147fdb60750128380baa047832a47e3c56a04111ecdc3e3494645a24a9df77cd5d1ca52c4923d1a759baf27b2a0b7bb58b94374bd210407593fa05c252a0d71846030c1fa56abbb854c4eed16f81ad0a4ac09827fb15ee0b5d30f1f1ef4807900af40f8aec2859ab8840aa2455bd3ba92a29537613151aaf35b4141ca54357c1a13948921e50d3d0ec89f6cc51bf2932b9f7e7aff68fabbf547fb3ca82b47ba84be8a8b197bff2434fb78fd4affa217d21a541aa66b276f9d833121b10228226ac5fc1f4d3c29f08cfe3a7d50e42877d3862410d5f81da41dfd47e2457d9e14d2ac6c8444b252019a55a5008274f34ee0f867032cb4cc7072a8b599a65350a7c37c59245658556ad28842635d7de5fb5a2620527233c12a797119e2dc68d11bd779c0e0d8d7acc51fca8c6df350192b2599d15ec802054702175b6ba1fc2f76a4343063b76202f2d0f91794ebac40330914c49de4b12e1aa076b3a502b54ddd6bdce0d7b4d63134d7610a9531d23b5f48458f4cea92a1c5f15b66e05ac7ce163842c5c7916c1e73f7d2d13e250ef2e217689450c8fb492813c922d148249cf4da1120d825852756ec8c4714bdcfd3c00f0c5dc6a5721dc275f1277383127e0631fe077539d242301f7195272f9088c009426b71452c819adbb006d76a8db2ff3a8a8b24c42add5c2ebc425d7d5f0bdc44f94a4c33ffe3c5401351c212fca0c1a89646770b8ecb108def7201cf0a4a0994cf2069485866c4a3ce38411d3a65caf8bd260fc80da00afc9b9bb9f0dbf43848036c04a002838a2ebc5c5fae1addfd8bba2403ce6006d96e7b6a808a401442b8929b557f2e1482165fe3003bc30b6a5ac9396fd0c3bdf14cdc49dc97ce4c7f2513b436d18073f60ff890c1e1fb77509c1dc7e49e76955207c1734354d54d20cf0a1b9cf74936a36b0cebc089f3571fa3831d9167ff0306ecdd840621caf616329363b73b751ca639a409576e8ab6c9d7e2364fe20722f8f3b524902c9c96e64b6ee668da141a65caad510b81334b36d9843026cac95a67347ab3c5885e62ad780aa6a11a965705fec878ea5b5b849048040af18e61cb52f59415d544f545505dd2fb2a0a24009965c819787108fc43c05bb99514c4cdea95180e3f98ee0df5b18b41f22f1788741749defef33d3d31d856c5354b20730e13df69dfe92a747842a3d7824ab1fa83af442559df6ae3b49ded48886c87dfecd89d1dcdba7309f1623b51f0fbbd1e70d39a1844e1e4943523452a24f0b7e6f923403c729f9dbf0b52dbe608122850fba268875481244d6b0dd22bcad3db63962eb2070012761c641565c93322ae78e5d853eb2b680de6773425e7f1ccc2eede1229deba41ad57733c3a5a7182af86526813e64ccb47723bded866c31b8ebcf783ae42551409e8d61e9c4a1b3587abb61c8cd6fd463931c618d6d49e5b2f09c9a8899c4c549530f8c9e9330f406ec78b7c0ee150d9845c350e314f0020f39f05846a8133e0364b12f00c5c7e4956acc9c958735edfbbd6df71e30f4e18bd427dd9a6a061ff7049db46691a61708e269618b1077a4b3842dc60eb6981ac08859c61282c0d605036c7efd83e82ee39da13988704908e5096405351e0eaeb0c69fdabd3e804c0526ba750e91f4a33bdf0697cccb247abb035c30a39edd1303efa119bdd059bcccdf23535833e1ec8f4a0c41754089866c752fe1a196a3d005cc602187133e7b439e17067a7b8f0e29af526fa817e78f0d891575afa5add24a7429532b41a1bb269e988aa1fef70c588eca16e934f74e79ed46aad59fdacee75f3c66849814de40644e7180573eb0c66a40bfb28cd3619c28760ee8d6b550d75e13d3d0a414af25b6061334a6d20f1f6d7bf0510b1038e8820daa9753a3814e953401887831924b739cb353f1fd5b33bffc22456f8eedbe2811aacca02add967bf18466560ff1385ce35eae6681f9f20ffc285ec073721cb3835ef3a2986af68a1c2b972d1217e923756da129f0e31190b816de4861b8282db9f0db98518064288d078e22c7c872bcf57893ae70f4c872c40e856553162d3f12b406bade7b661d7d5652821753b116b1f542f476f24c60f190dbed229c61612e3da3331b86de640e377125d71eaf53f02b433444572a82763f1b24a9986f4ec5755a541a6a554214c08ac08b0a16d159716f57a7b0c7464f5aa8448be990418ba42d3bbf50731a8fcbd8c4f416b380a833c814feec684a231a058d914eb1ab7f355e3a626d8a3445f4afb1e5871a8e31ec5e051fc7710f927f19f816f9c50480bcad97d9b12e5cf12904b7ed201cec186beda8046712629de986e09daf339963304beb5d67694bbdbaa579113f75fdc12ddf00d75e4a68bf951b29c9d4f6c8d708626b625c9f97ac91de05796ccbaad02aea03a58d3fa5ec4ea31be72334377e7b0e735c261380f2ce041dd25873e3fc5470a2a6f1981dfaeaa84fad9de2ebe7b296dbe7b681ebdab6d8b334554c128ae6138a5f36caae7f16e6156677a363ab84cf5a912959939e2493cb91c56bba1283be82032d36130929c51a1d721ae097cbe531ee97c7901f56fa5d38cb32cd6fab8012393e72adc66b9e6c432cda72ab9e677220dfce129f1a6e86201ddbdf0446e95c9db154b92b07b99397dc83fef7bf34851bdb730a0b365281a8a2984fa1a14bd49fe2b583dcc0778779c09a5bd352d084f721ad263610621ae40d84daf9bc53d8c5126faa775c3fa2ad49f5baf462aa14dce2bd6d83b98bea030aecd49a163f288ae0f48260d5147569b6a2044370efd1f6b3936f84d2dde4733d510b5bc9dd8a9a4b04ece9835648b62a5a29225216d5e445e9a2854c23f1ef4eef7c102a1ad8c3374a5dd3c2bf7aaf93e60078cc6737eaf7ef25653ca5ee22e4b942853205336da3a8b424cbfcccf3ceed691a0f298243dab5a803d3190aa140c45e1afd502d60ce99c26ace5db60ef0affc1a277a30df4f7f1c5e86bb1f47380f3e6efe8f7b4fa44f4658c08e05a444b5d6d7f711e6bfd6c5612309bd8a2fb8ebe6ca8a49192677474731103cbef3bb2ec87ec309992687005c8f4ed69306a0ef9108027930ad0b05cf731e4cf0213a92b7932027912fb616ba32432ddc5ed7a904468e96fc24f599e56c1e407fd174ff7c70c1a50481b429199e4af367f6a51ee60a38bf447629016fc47eed49494e4c90132bb32d3f2672d43a8eaf60ec536884e2dcd8c687c3c933763246ebaf5cbabee1ed1414d405fc44407abf7f05335fd05736b39a56763161182eb09a7d980f296219d8edfaac02c40561a62e6cf99dd1c5febce19378977b8fe633b8892ddba938ccac4d628fc84ce3e8a94d224d71e7291bf7013979d1ffd7b089f3bc21a55524d0cb2141a567323c18a210d89af78ca456bc84a58ec81d9b685e3847a7675beed43ddd5d09fb4bc01c94d79cd1112de4a591f1fd4bbbf3091c13aa63163135c0801235cf8045e2840d58f219c7c0a697e1024a2a12d179c8a49355e4a1b31860fcb145613f7de596a139f8fa7491a7836bc93840b4c59cac213dd7121779568221ff26bc6685c112a20e0b705b537d146b723ca54a0b86918c9ade80faeda96e025e4fb3542cde072b1283525428b7bacdaf468857428f1e88886c95f40ad10c4e414b20e48c948d1eb6f8302cb0f94f7e10754f1893586bc187854762443ba3c1efe2b146cc7b82da3ddbe41042b6165a431e4f55e03b8fa7b4c04dc9e32dde1e4ec1efd7dd63b7caffc80360757e27704e4f40bad3e3ff79f8991f5e83b5498cd67d2cfccea451c937e1ec09c6c4730204212d8028b41133695f31052017391c8183aeecc80f3b383cd02f41989c6f8c8421a3821378b93901c8162318c35e70ecef6171535d6e47f92254257ee11638f0da5c88c3bff7d5276445d67276d15b195c33fed8b77df0ecc891c738578f1dea1d7320cb0e01fecb3eb3244bbe0b2a21eabe9be829b3e0d40a7ac007c41f50c85d2bbdd5adf8e60a3c24ba24ad305fcb1b7f7d4c1c2b245a2daf854b98a8b6ba5a1c54fcbeffa73cb5713aee380335665c25daa07253ef9fa0385b5672ae6d4073ef27bedee99727f093201abf7de2ddb721c07b93500828ed280114622810413744a0c719d0a3019c126700caf418af22025a3c8eff7791e93f3c0c2f92e99542c3914daeec8db88f9c7e82bc6de61ef78c6db29e70c660aa88855182b7afa0612ab22fb9fbe91fce65a95b861cd747fa30f7bea508bf66b059de124c82a64f5c7b17eb33639b0f54147224445877349f91ee3df31c479fc6eee21efb71c09046465e8cfae162668d9bfbdee543e5e877fa3059e2ac600eaa13034d41586c5280c86bc79ecd7643eef8b2385b78f4046dbd0153cff4cdc7742597d1c8904881313a0387799499a32c54e48e5502576decfa7547b3dfa9523def77a4a54fd01147e468cfc4fac857c5eac4c28e5267ba71c561a6aaa151dcbe169e5a0a402c4b961247c41243fc77bd3abc3a6ba9b6fcc522e22b1c9f00c309d943283735c5e6db2bc548ca53dbea76f6ee843146ba6d1585e5df3ff0974ebac69af32b1500a797de015dc3fd01e2381eea79f5ed755c8eed012dcbe7e8a34cb4af46c310e757cdf3782929f7b70838ca555d4d805d4736bc495bc25620ff705ee49978a4773afe723297446a98784c0960731f3e21dbf6e9efa8cb672a55150a7e2571f96078ac2fa02ad2976dcc116cd59c1102daa43185dbd312a27495143441611550ede11b2ff2c4d514f5b9523161e8b09808ebdc324e1b910b69a369ee566757b63b1eed285e0eb3f423963cc36e473986773d5ce72038c48663dd01289453c32cf4f6b73ef0885333fb82cc962fa043d1f799f81e78e9db0e838befc38372f4182c59d68a89d78e535f865e6fc936bf68e6894925a6c2ccdc80daaeb654c8f34a81a51295ca8ba10236462ccac4bd99582e03f2b286e54c3dde8486c81392b519f58e046d4a0aa8ec4fa19645cfc0b8763ff0238772dd4312760201e61d0c5664f3d6a38315e5e3031ef15146d61b1a579ae06d411bd485ba346c06cf236d60f74541cb5d98f99bbeb01f36b6504a56301a2098e41f6987c2c231c86aa8e4e223a16ef77c54071a07c74ac076d1aa640828fa06caf3ac568ff9fc55f8a961d4d1ebd14099ed43eeef9b60048c378a75a9630864398662d686b6b7ac90a4ca9cf47a193c03e7adfaef97456e546096bfd497cd980d8ad61953e24d5f4c78b0c120abf3836361a45ea61b36ff5852841386461df9c18a081644ac7ece371e1d77f11688076d823495c5309c60df220470a60017be39e1004a898b1121af28913d2b0c3304fc327e86ab3764149df4d8a35b0aacf7318438d39f08ee077fc1f9addafebae6333a10c4821e87113eb308e01cca079b217f226310dec66ee25f48b7749b404f197e09c3bd572728950dc0754cff0b78140c998739293a0f90187b0d6ff305ed74ce51b9211495c17056729e8d7030bca6749aa7f168f81c0c8d08245822e2d55f3605c8ba3b55a58254bafc8a17dbc9b0763c0ae86131d6ca8a05047316b3c014b9614e333f5d9322ddeeadc1a729b64d26891349d9ad0bd72d5728dd9446683fe6b83c8a0c2890b2395fcdda94c9e8c235698a14228374b3ac01cb8984844b356cbca195e665bf7217317ece205068e4069f1ec9ccd934d240ea0f5183b9ac472367853a83762ce275134c833a2a52408b39c8767356786337403fa553f1a8a3be9020cd5ef6750127b109c08b882c517f87281a0ac57f52687d07984ef40b7b89b47cace0c625159852035af4e229f5b090e9e750af851299f453aa64955b2895d77b54faa0e2d48815f24096e5c1ec24d812043fab5690f2e27c4c1957cd3da403c5345f2751d150e1934eb4c2bdc32c525c8cbc4b970e7e48964458b09bf8aa34375d1e762bb4facc29972746dc648e5f6c2e8313abd8fc9e101b86634af44dbc7469603aceb20ebd7e08a3c0cd3aa56c504604780c925b4a2e25304dce03b69ca960a3236743aaa511ef4666138538213fd86e24d4fbf6309a9959ad7b5a505982e068ccac6897cbcefb0754a8a3c2ab1b63fcd84b7342a09a648354ea4292a01ae8bc7c5a10ab11144b10a9172390ece4d9445f2961a725da4fa7cc3c9efb912be1bede0d4222199c9995ba2b8df5a14c847cba1ca0c3752e3eefe82ca9e170fae23bdf05f1d6fff884779e6b0499afb9c581ef1356e15d46bae212eb52a8cb4d55727c835b76bb9b94156333ab25000d62e6a57a7e7350f9a940f0b0c5b6a85b9264c0ea219191f8b6e857704f5134c6ac95605249163e90ecc6c5e1cb12c2429fed5cdce34407af62cdea030496ccd4ecd24f0b69084cc2ccc3ffa556d04aee961fc047eaf03e3848d878d25b6019476b00e11c42da4ed902372acad084bba84bf90898d171ec3d3f0673f4493051c8fc3652da828ecbe301aecba3ffa5e24e2023e35b53e901e16ec7b1c40c7e39259887e25ae30f558fe164e2a648068dd1faa102ecf6c4fa800dfdd530ba223e20f658c71f79db9dd44575e7c5b832bc1f255c2e6307db04639a945c659ef77f9f767737f8e492c1f6a75e7ac832059e523fb03087605202fb6da60063215c9b125b274b638f9c3dc20ec5488c5ec8c5f1bee2672c8387017b19a7dcd9e7903a2ba41faf801d27366dd30afc6b3d9d37d22e588c07e4ee2f2c7f4bce4ca42ef757a9075bf96ee0c1b6b025ec038f2eef2647fb566e50fe39897a8a8713d4814a9879c55339a7195ef84d4ee47066d588def4545c5b6a52cd8d5dcd208b752166305bf8b3f5109b4cb3ed1b8108c600b3e7dac8ba6516821b568268ec0763c6b4cea97d4dff9aaa5165d7007ef0c200276a02f88df1d9dffad5ab70fcf7531e884a0541c3fc35e2e3b5b78da2509b9335782972ee9b72f987bb523855b116b5eed68680a3f3e157d392e9e7b11d28e274a36ccd8100a0bd9267a496d585798d134635587416406fcf087d51e1ba51d158471d924e828a6a988c9b5e7d0f88d58cf61e0aa9333ac4bc1a5d3c00f46f081406274b3c9e342598da6d2269d84bf1201c90b02832d7aa779c7c4fcd97780b216529aa1bff0021d39dd31a2be15a8d38a9ae38ef635ccd56fbb2bd7cc55514fa2405fa1aaeac0e99065c0802396a105f788eb7af8f92f0e2a8b5f40e817ff3c60cc939934259ff5e0c2478122cdd2e0ee4d6b16dcae892cd62507efea0ca3a2f65529f95418846bb3adf1da06e5e5d6a734b224299b9435d771942e82db2ebfcf24e718709c2a17c83dc90122cd69bfe23ba2964cf0cdf1067a3b064fb8397b0e846fb01ba6d2196b55384e52033e6fbee0ea340e745aa2436428129fc5119bb02a4d2b06cfef3e88751b9c75d44347ab469c50e28cbcbec8dbd4fc674c9ca1ef00d8b2e035f6a011d7859b60628e891270ba32ff85fac4b3344fcc3ee878c1f746b337e59a160adec68a6bcfa9c1d4223b893ae601c320468ebbf3de21d86508e73f496507fbd389f07b76e6604a7818940c37865582faf81a72277b2729432c6cd6db10adc99665e44bb6e29ee26cf1c0df001c157fd7da0d5eb7c8f0b355309ef162e4b87433ee0aa030dc9ca9e3a4815e43458496b4d39e74dbd70b469d5852f828d8ac2ab7396c490e476976f261b6dbf46016a4ebf77b341e17ae7ecb3da7bdfd398a8a6cd3be0a6e7ec2977ef4bb5fcde4409379f33b2ef06a1cf292c59ecbe6756fbb20722ea0d5e51619518e88cf538308fa7c00b740a48c61afd2dd7718d1b3a4b9cfdfa590c15a8a4792aaf330ac4361a909e978734a490ae9b96d91502b3b07990938a02848e6bdebea7756aa1ab7d22f165ec95bce641ba8b60e6eb1ff66252cbd6065014804b150fb3abc06386d47e5f6421b793fecc7b24f4d8e9b2468df7dac1871df539a9ee0e15009c00e3ce84779e76d4e415d21af12c04acb9e1d92fdd900fd4c18c8ac2a4508d16bffd1512a64d4af3f37c2cd1d389283d44d9d00f6571c9d6ebf896a6728e53a8844ba9aff39264fa08b40ac4aa70ba781c01e68d83711a06f7c396721aa983f0c46e156646074e9f762349e9bfe366cf5622bfa946bfdec1877c926cef1025ea388e787cd3a07458921048e230acff880a07474c7bdf31168aa08a33db465d5bf8e5d5def483f104048ebd899255130dbd4cae60e527f4f7fd01f2757f20832a34ed3c6ac534e416962ae1fe2a9a108ba1900afb00caa9835103074b97495d758754abaea27b7b96eb5823c02407d842ce18640ae9dc5ece2b4cf6b05e9d7f23dfee2b0973613b08bd902c8566e70ea9f34b9f8f22fa9201a66cad73bf8377ae55f05fe2daa57ab5a129d3322611bcb9e89e54b95cce7fcc6d46bc68f6a91183212d8f72f369a672b8fa2dddd7ed3c88f7cd0104ac24566045d1d4b505fec980aaafb9302c1252587250dcb49988b2ef30837ef6adf5f0f210848855b803a840d549ff2e5e5087229ec4579108d514656122c9a4d6b2f3876ed4c670bd4bc7f0ceb6f62892f4f73897fd4371bbdc4e3128b7a4ed8b247b2d811488f40684bac2c04cd8f02d34c0862241407e2dcae51d0cc133f3f73beaf7bee028763da5175e66b82ddc7851e62da48a0f8e38ecab0e5ae314c95120bc44fe8fb7f63f88d5c094d2be4c5fc0b1ff8cba83c140570370d2371e826103824ff32e2bd820e0f543c1310401fa059dfc7aa22420871ce351dcd48c79d957adcb19d007df7208ca5555cfa71c01844fa4b1e55686c23109a0458df14b09d42bec872b6138c4f9a6567d3a38f893e0abf746f71dbdd1754949d9f902ee2ba57dd9be5d77d8180e3b77feceea883b4ed9194d9814faf325c37f8bb53409fd2cb50fe620025d96d12a2ff815bcda80f7d7615b118ae0f408bc39964dbc961a42f72d57168654b18fb2bf6ea25c264cb622bb40e796d6fbec65e7be3629b6d48e22f8acc9a60b92f38efd319bd0574d5040e4ce7bf6470d2caa790307333415392436b365ca3f92c51704aca20c2a054075773d012888a11d3cd686413ebd8db04e42e2648ffafcd500008b32a5908605f75c1763718e14ee244f36750bcf3d7c71dc299daf0ce5990423f14081408470279a8b57ef503fe9355fdb73497f984b280a1a394614a7bbb2d904ee2e77fa793d139b687b0710d56f133ba78e40722bee6ec023d9310305c43b72ef063ac86a332828df103bb7e081f61ebc73aa85073bf2c60e341f1a70a350802b24ddccfa3bc068d6c34c454f9c8183c54077f0bff51121a9920265a71002239cce3ab05c55d07dc9f988825354a555aa4564856f3173beaab456680d621cf19edbf27c1fdfc9538c99bf92489594fd9e999b399055a136ef763b7aced22e52aa7f6b276ac1d8d08435cc973654fbc670153009cde5090ecffbde51f4f1fcb89696b8ea689d1f044694ec819c7834d6e6925df9ef0707249cfe13de3aa0f4aa0090fb600e8019418db6d40df49f1d4e5bacad38fdfe0af0db4238c90b8d6021f09e3eb8cc0d1949d2dde24f10761e21da4015af1670436cf1d1462f968ed7e879bcbe43b6f4be3ebe29c34c06e2dcb4ce5fafb1895a2828d66395df877284c1439d5e7a542da38c9b99505004ea124616c54150d93ec3c9c0b02f0b40f9426604e0e4eee6c556489a6c20b3b02cae095c110750c51eeff5d54d95c6794e419c434ffcae390327490d917f61acc43dc0bfc3fb84e212b2395957a515ce860350b946102b006bd9100c141fa6b233b027147fa7383ecb9d795b688368f1558efef3a58987dd32b7ba78194a5cbec914c883a6f4bbd307080c2808afee1230303ba8a4f90093af02301918e776e1041c012e724752375d4a819aa52587c7b93a45c2aab0190e78115489daa11474ba028606f19768bcd59870794747ff7f72acdc7a167966e789d4b74c536a6efa2e74caf8daced4bd06dad79aeb9516bb3a6c0a684efa3aae3860df0d2a41c75d7ec9c4301f09e316ceb7ee9ef216aff7baef760b631edd01d3909886859dc9c8fda15cde9bd2c02474c3043a87da6b142a61370d2b210040f67b021579001c66a1c32b2c3623ea4df7030875aca89093e7647fc67aa2d02d4b3eef93bc827fad5ce261c0f62944168b52f1cdfb99fd02b113d883d3f2bf1cbe17b87187f2d8874a0d6f5c80baf9ef63413f0626ef80691f59d740eeb76c4eb24f866a0f06b81d2964f48fdca225740ad0b83f0c344e0f13315c75ccf1bb5c87265e8721d16b78901b7cdb079e04e8db707a78f670842f0013bc75f7bed896eaa688f67b88e2487778a73df4da38dcf47b8546ed91c39d2898c17f048591be7010589a9c9a8b63408422115e88631478f18be226a18bd416b112e77d1581aec7ac617d8b7c3f76c595b4d63bd144ddaf20f37031918d61a91bac9536a969e250d95033d343ac5ca7dd573edf31b4c6c600a966f0f32546a60c32c99c0fb803e0c6bc54efb170066ce78f9bc9dcca03ead270645134a64ec4ea2a8c1aaccab2857d868f57217ac47b764ebb1dfc34759d32dae48ac7500af58c9dff6c554137f4c26ff6b2e717401454354979df19d06d3c54f086588fa7e79c26b89996a8b3b1350d6862c5759cd7eb67d3bb7b910fec391ae63d1bb3607b9de359df22985c599629b5b846a37b4588184d9465f22522cff025d9dab83bb40e850df76711152d41deb652f782970d79ac02bb13f5e6dae11b95ecebe67223dbbcb914e9560df102fd52df5ceffe6d3fe99e43b2147d9ab43b8bf4375a832074b0775dd7f9e78227824519bd93fc4e394432752c4e85c98601d1323e010679ea52d367355723236efab3d24b145b6478884aa15452e130794c218c94cd57f8af149b2ea9bb45a0d652b097e7f3488bbdf7e3d51ac2598b5b1cb0ec8d38035e84575a0fd18c81744e5fa90f346a555d922be985c3d065b4e417a067360bc0bcdc3da8c289b907ce606a313dce924f7537a4040925d3c22a6413330099dc012451c62b4ff1e810ef7e716b278ae33be4d74a11ff975e4040814311d886dd0e7f53384c2b9251d45cd562576620f2268a58403a41145a64742ddf72944a19d404fc02691641876c6f3d6f33b30e193a6bfb17a10719b0acaa9d571894cf9262c1368f91c869312a2307529badc2a606f96bcf5319482c8e3e37c2cbd1993f059bd48598f6e6437931eced6a40f1369e643647cfc71e718e92d12dd4d61b1e49e1c153d62a511fc0d08265d65d564c0cf5cd5d4226dbf3673c3e722638e4ded9e296e43a984fd8811668f4ca83d324b37420d7aa204bfc1c37ced5ebc2d7525c69cceb092a0d1f51286462572f0b6bf10bf6088cc3421494e361695147bf0ad18104ac2166d473bdd03ffaf0ec1bae29ad8836903b753269d9d393702c825f7121a276838f0593551b2fdcefce9d121ff2a03e7973060c9c64d5bfdc680266bed913951bc5b6de8612d3484f735ef8110bd350c289b489913f09880838b0056ed2ffcd8bed7c1741234ce616b941f3acd122e03157733e81c779f90529573bb49ba571aa175656bea6af5f0ea442148683aa4b9a41c62311573e7d70bc47b9d35b5a229c4d43ec7f0da7cee827e3b1addba4cef12b411e1587d45c9800d9224ae63f297cd1f394a8d9533c08a10d22beb496f07533b2c81840be3fdb2800507da4f33e41022e24fa7f2266ef6fc637fc4d86151c3a9563e6992c7c30af88804188730eed074ed6de15047527e1c333622a2ea0c50fa26bf38416d2a7bcc5cd17bac60e1d1de0a254bc6621e8d92ab98358733fae58e5d146e72cdb730b0583eec231030b03a200d765bc4040524ac39b14f01b9ea881229e9e4f5ca6001c5f8199ad26ecf42bb38db50e83b12ac65847de4c0b47034eec9a64be454f808c1ce5580e465b52c0c4e5c591956f38544eb934c942e13e1dc91a1a2b333f94d0bb9f0aff3b38d932596c3c644327d77fe70e6a2bb0a103afe3f7f21862a3230441e69ee78b0bfc4e6c9ce3a3bc58c3dc5e13776c12e3bd54e985622e0eb108ccc72e65738dc7458d4fd2c7a89b8e730b97aedce1abdcf53c761985b5625c49ca894d917658416e5e6e6b5370436662d555a79e1da1270eef8501c14bbe9dd3e9c90c57bfb352e7fe59c5b72b37b0727e12a03907c4f5f82f776b884c684edb60dc43712d8a194ea42b9b21d6757748e411fb02109f55cf7acf7de0975c454b39e8b810e8b5635a56b7a8b089518dd44275eda8a491a9a5526e10e87419013a0a8c2c7d789381e8964cacd7d3a72a98a88f8d0f436b52a9b349a51f6301d1235049323387c4e7c5aa79b2d9cd1b6148ec556690186943eb8ea28987522e875af4c1daf027f759c07633e0cd95a2152019e9a5e04c13a04540a3432881acd08afbbeb4f6531a59f338e07188a7d72da4963b6ec42ab553ca3a5d7cf935bad77a1cde44615e0580691323ba0b8eda63900d71dab83aa110c851718beca68e19d3140719854ff654f5cb6eba00c92321c9691261169213dd32576fa8ed823eeddec778082235623234d5ef8645b4b6782fdbe900ef80d7fe26964d628bb7648484a4a37ef5ea2c4c3190a67ac90d4ad82c4ca7a897b83f45bc04fc0d5a2e47edb0b47a26876aa7bc1f0bbb5f5ddb52b543ae2db59457eb3d7c8313193ec0e09ea79be362af4a90cb3dcc2d865ab19283e5a6fbcc9681283d78ba4690ec409f3564eacfc8fff79cbedf8da72276da862f106d5936621ab81a0eb61e82c9974bef6059e1f363e02bf12e9b028f70a9ecad43899f882856d748022d66610d2ec943222d118041e71fc8037c72aca02a22b9352317ea053a03fea2f82a1e863222f773648f4667103ec55faeca601c41f547f7966e5e9c876d18b1f5acb5d0a1b1dc6581d01ba0f965c09d4140170d2ef73cf8623e89e8b6b3bcd11e1db046f3c80a3eb595534ad8052c68b78ff2a8f23462e5a2fdb3adf7b52b54479e79188befad9d60b093a5e8e57c260a2afa06995d806c9630315e963a954c3781197b1263f7abfe49d5196b5157d99f49dc1ea7033b97475a025742e1bd0322db4ddc740c8d9b48fa2d4c31f5b24667f40ffa43c393cfbe386598f7be7f794814ff21dc4ebbf9c38b7d92a196f1f3d33a75272f6e6983a608a163ec710f7b2a5bb62c2ddeb32016a1f01e2e1e6f02c1d32af5c16dd1ce04fc7438354e68ae65a2b627a0914591b155f95b69c6bb62df38fcc5b61146c069b2a2484c946975664188664617481149fed58937e42a78143909b2331ce62a0c2fa71e5e9aaa4ad7b530613fc83a79c22c8bfccdf46925783d508ed1b53da44dc50318c1e976e3dff330042244622e12c4c66d62901e10c25cea5118456efd3e211743f71e368401a31f6cf63c5f3232e445be55cf116b693b516f5035733bb591a365a9196cd7e54d8097c928e10ef43082e155c48a84206e5ba5942f355395fa8d7bdab0efc16a0943d13def00bd7da0c79859c3ae6537fb76db7c5ff22852ca6c08f2ba95cf538c2046d92d0814e1394bef1ca26edecda1d14d16cc28a14edf78eb1abe385b08693b8a5dd80b620ec3c303d60aaccd8bb909827dadc0620bef3ba5375f37c66b2e1cbcd75753a88fa77b5838951a7cc7f385b1100cc8cb819646524f6745d76fa51f6703e50182ef8cdece842e18abe1bc3a7d805f31e7b396dc04b20985b021b1c776eafac23b7680257b0607276f1158b527152fc92d18659820c91104d21cd7937b22e745c1999eea08a826dae65dadce6aa99724604052c08784bab199871b3055a3b662bba573273c3ac70551fbacd6ed39512050f29758a52a4125ed85351cc80081ab5de8374f0824e5be668d5de7b77ff7a304a975f76996c5d0b68929b004180767c235183729423f4201fe111461f9f8383518b62a2e552d3d7206c8832575e7a45c4ab15f0f3509acd8790905cc68b1ea7a3cfb50d4c07dc5d2d878b7dcd1737eef52b5423a5904b857c0d54fe2ffc3dc5ce32472a6549133fb3133387c384e1df89a41a51675d25c79a25fd07edf14ddff07fae8b7c5924c7f266a2082241a014c3fadc43cee07ef07f971bd14e3ff64cc2ad10aabb0632ecd5b675a803d12ba7dd0c8ccb01e6e5dd62a30e5a146669bfa43d87551c634b69a0a8b890ab8fc851e8d66b239c749dcc5487a8e045d097e242a9173da7614b4c97e008232b144ae2fcbf212a0feb713ca38a1703f26a0ec4beb8ca45a73c6d9ff0ba493b3455f56b1c18af90278478aa513de530fa5b79605062c91eed499ab1915fa515f49b27374910a8f5fef415b244edceaae104d7a31a83a33a1c3a660137989514a74aaaebe9e6067421e8136d8f0166a82823b08ebc2a7bdfdf27b02bac425694f02350f9e80104c32ce96ddc3c01911354a44fcd8204fb5903b559b768e7383b11ff3c69627224ef45116ad351963b5497954a1fbc0567b9bbcd0b158c34c92fefaa5c12834780f95c4b3779e6df76fa8631c6697d73e10f1b3bade0c0ca452df82740e2931f0e5ed375e9a2d91a361bbec431c969b86e623d90cc56c7532d19bcc162bfc5a8d78bf71d03f12ec9a976c6bb136be1b373de1ee013d3f3ac5bca8184e85ec3bbc5d71979cab53375a8e352c666b3c6f8bc92f869dff71bf5cac658e4388f58b3d3153448363088d4f15e074fb61b2fccee9323b48e5c1668654536a4c76fec77f92613e9c3ab42d5e156e81a16396067228f33b069160cdbb7ec0e237e468a870344451fca5e2f55167bbc11fe540a94f2fd40fd302d07b02d3ec4e04e4a906e6f2bc2d386edf8cbafbc4ffaf98d56793527c8f08081d4e257f8858229d47c4f5445c18ae894434da3c557037aea240ba9e1d2abe868b84a6d07ab3cceb13421c9051832f8d87e2288072863bc85c2050a63a51015010b4e7ab88845a0d6804f0b8294a8116987568e90bddbd5b4ece4374de97293fa667318a3906ea453d887587b744deacd7d236b879f237c6cc5a672006ff4a5982394ee918e8485fa22993addd9b81c227111714e1903a05e57b442ed9b76768d504a83351655b1a58c0e820ffeb82e5d8617c6cd0f35cff268cd39c03923ab0f47c8141afeaa7832039dccc4a0ace6a411f704d2e93b4ea626d9a192ea004548193410303d0a0813e06687ee18dad9938b22341c063d25ff7a3a7c2b7911758d85af37fdd560350e070c3c7a33c08326f1b0bb5c918605e0c6b85dad7978b750f881f4141e1b31438707671e0427defbb81c478b6a88200bd73f737923cddf683438fdc9f253da573578b379fb0909e35c4afa4fe6c0049c87888187ec0a341852a4a7a3aa7d38bcb10bdbea33cbbcf9a01667bf97eb36166feaa5d0d9e98d9e5d0021a94342d1cfff24a3f2273e9fbf3205b95300daad59fee913467f91395f6185ee79b2573f01558dd7737ed980535999f10a60de0ead31099d5a500057a54187b7f371b9f4718bee7a836150d1057a0380e0ed6b6fa45d6f0dad3db5b36c220ec2b631fe32ac58ee89f02c421672bc6c7de6091e3c3b234bf9eee2b1ee0265d17fe288315edb1cc17bb31d8eeda3ce47708c9814db4b5683c803547902fa00bfe649a7d6fed74213569c5488ffda5d5471509fb9399ae01b21e0f0b42912ff0f01a4ddc8fe91c94c4e01451bbe511342033dfba4f0b7de7d107c4738aa011ad6abbf6284908a7691ea1a8572f41fa5306d297106e428da9798a05dec434f8cf11781ac8f75d721f5783e5d36d3a3532dc58d05a722a6f49aa2007f100e46e2fed9bf630023f6d8c807e594cda60811ad31d35563892c68266f8b00e938be1713f5a41b4f207cac2cb663ee263b330c5ca161dc81d52f8d10e25837cd5386de2406c3fb3fc5e6a0ec36a38512fad6f4c207ba5632b4898d513d2aaee7ccc76b4707fff45328851a0660ade0d00ad4c3ebc531f3476e96dc4925a7f6eb0c1da34d237dbf956fbe0f1107be7b864c02f8cc5f30fae77beac12e5afa7ce0926f3a831c7d39f6863e03ab5df7fdb32642b8cebe96c037ee51e9c92f9caf78fdcbf478b210fa3d3c1a4f8fcffa77c361821c70817d6e89fe43d815cc8b3de8e879e3cfb2cd9e87d8ccc4d1aa288324b613e83fed7dd09c333de878b80a461e7b261afd31eb673b376be0c2f5884dcc5a53b8013570cd0ab4104582fb7f585ca909152f997143910b8b4579ea6c31ee8bce4facb94abe3af0ad0f50c66391ffb9df7c74fed0298b9f033bb147e115c804fceeb4f59cf2147b2f3caf48d97f0b4e9f49760be0d2b86fcfafc4dc74eefc86e4973e78b53877cf2ea556d459bdabb9cfd7640e9a38ffd68bda63b36043503c81e61a7ca56f313a8b1e0eecd77395188e8c553d8b5fd752183e593266b1970d6686bb24f09e84e2972c8ad57b56b11dd03d21aa6a5a2d5b49b071b3a27ac083428922adb1433e965abbcce161323c035f358b351d22220f1862f6b8412337a3448646175a604b11314eceb8d376ec58d1680540b1ae17ab8d1b833b000bd6b69ee3e22ede09e8ee18dbec987d8250557f4a25a6b32f772b2850b98154583f3367c7a76e7140319474bf5c1a0433357ed39b1ee2b1feea2f7edd1ca6db767a84c8ba65a5330c492e96e07a04347bdb215f1174785e907ac5f02b6810543ace142122d22af90ddd2d5a9c01bad59adf283261a451e818e4d080633eced017a5139475f60cad14a07f166929b900500408204b67524cf19b6a07868a08ce4e8ed3dc54133312a72cb361cc5c0eeeea9ec34b2043dd5980c7f91363a9d99f80a61d09617f230e043c3f061b5d269ad6c729d6f7b92bd49902444cabda5947b6f29a50cfe046504fb033580017fb21045099da240284640204961911bc22345200a36c4b4301543051f24522e9848a9882106344215fa4c21b304dc697261e199483803cf462f7a28e15842238550b8038cd80bf00c13176498ac705591016f74919a0a8d9ea090248c9110871218c40834a14718c3e11a4303744188058c3087172a96b800c72c5911ba20134ee9529ba27a522309c8831118945c608cc02f3dc21b3858a0712454c2005dbc4841898b1e94ac0842263cea129a30054a799224090c23a00fa5908751f8410f57181ce0121aa091500b305c542f4229512e422a512bc014c88021746132c5f32454214958c30838a4043619852bf4089fe0008368b8cc08854a30c0192f9292b8c892640578039970459710680a9cf2c44c12d71623534a2f1881567ad070842d68844242200e18ae322f5c5d90b878816405d8c33119b009c75d421b57c22f51c0a225e00a4f21084b58905404096be8d1c11e477274f2e6a6da2335bafdad5a7b73534712f703543dd1ba272510b8a71d62db939298ad12f3b253d5c2ebb306c502ff686ae242375de1f99abe84e0813c3c5ce2a1087c49d68d4e522e38a7a9d9c6c530043eb9279f109e62c49e5ef8a063c2b1d361afa9491729ace94ad3176badddb858ade94cd775170f79409ece3967ef73a2391571a7252729a729168bc5e29c85531930fb50588c2e561b709b001f04c36d7c227a7ae18b7a3c6d938f164d46b1305b930e2f1338242b5cd210210ee90987444545380617117323420069e8c8c7eb84d00b9702fe6002eec004c53115e9ab3e6b4c74abb5a61a33faac35f9741237c5faac3195a9317d619aca1d37f96832fa689dd20e5a49eda9ca9397a72a27df0be825abd5d4546d5b8d288665c4d04c79a32a09ea060d54144c25ad148c946a20f9800c01d151036283062a7fc0a6a657b1b6b444f14375201fbdbf470ebed7fb7fd6f40f1567769b29419d12d05de3dd0f3535357fb7cfb0d9c52a82d4e4091d92d9c69c6edcec0edfacdf0b054e5f3e03f8660d25b17d3062a3a02585534bdef47e815a5299d9678d0a1abe595fe9c7a7a634f4ac263ec7d78b9b1a310473032ee0042253c0104c0dae497e001962d2e3051b1e2ced90c980c0ec0519ca2265acaafcb0cd86ca2ce5910725026649a504b31ee8ce48ab80994740cc66134a837a31615ed9b2628b97f206cea7dca19c4cf0066c2822b392e32788141d92588c104441e052ce224cca086632c29413cc521cf9525e29271489193d53b666744812520ba1a01f31caca80991033627cd0b2294839a1e4c844c81440cb1290fee05086b8a16c51f2d90ca9a43a0c10012b6500662266f3c945c9533e600665a352ce27139851aa16ca29a6dc515e9d183d847a7634c120825091313c327828954a9bd994ea8187313ad49652e0910392161732b09434dc6c01b3f9c06ce64075904d250098d127f4832822538b530ed388862717680c4cf3480886726654862e1b6e94a2036653660f419c783da6ca04cc58002a47cc6a98414352da286b6638ca5965d63280c3860a3346b3a424222f846a5471a12f547022801965316934ca44a2525a296f664c10cce8ec92426943f6a566a48528a615945890d180d96c868171c7d029da538685843a7d59a11ce1efe56e77efbdf7de7befdd9290905ae47c912652d12cc890d24c8943544980d95209a49c640650eb6816d86c62995129f30c2d9a543409cc34a2a48226d1b3590605252509e537932a97941298650a6ca4d0c1828f274382b6a3242b65d00166530a8fa50f19d81194b6d9258e4a55a22a1211d1e7308a497aa5d771637db5ce4e5ce69efbfb147bba739fb1be6376aa44a2b8b46550a5c03ba174fafb57fb52b0ef272b15af36fb33c0134abfbf1aab5495eadb67a7ece4795e86eaf9de7bb39385204a6b6f59ff5841f76d5270d6061eb75fb643f37d5ece39e32fe7fd61bd7baa57b7ac538ee33c4c72dcc8715c1e73bcc7cf7123b9751cb7b90d54f377d0b96a39ae6e1fceeeddb365bd7b8ce2d2ead3d10d72ad61383b6e0e96476bbfeed811f6c735b676bae5ea733b4649704f77f7e4966d9cd673acd6b5360c1fb45ca5ff0257addff8658936fbbba569fdf3b8ae638ee3388ec379dc3ddc8ed5df25ec8aff07bbd493fd6c354335c8fe6ccf49fe93eb48f7def9b9eede5a6badd4db9bb3208fbb8786a0334c27ed5110e7b9c6fa15c59b8f6aac77fb49dcf5eea124e8eed9b2ddb3b968008468d9e9bab3be569a96252d3f3d0b952cb42c61fad7bdafb2ae7fffc494529a8329e52a856dbd83cd2ee3bae7485c657d1b7330a614d313e2d6b99a6e1f4ffd15a67fb2ded3e1a0831adb2a593d58cefd0efa5657ff7dd5fb1aa324ea7bd5c77bba1a73bcbf34b58792c04fb7d6d3b446b256191fb7b17af78478c1a59d566047dc5810f6cb16d4df30a8318a71ed5ec3f6c661fd366a5647c3b74a9f7f1ba77e0e1d49ea6d0c74af5f0117b7ca32d1555affbceb791eaeaf298cfb15acfb12b6d61e4a82b3a1e409f1824d87e38d05617fffb423c071137bcef6dedfedf1fe6deb7b84e0ded811968bdd7bf284d879d9fb0aac16fbd643497823994d7455d6e9edc6da434370522d25b2173c4256f8324254d4160569a96f484c234c1dcd8d524a29a594523a371a1c2654d566f691a41adc6e9fea6bf1ad19e371daccab2dccf63e6b5339fae76d1379e3d86efff326ad765bd9b1ebf21ae21bc594d4501f1de9c495b3dbd349d2911b3205e3046badb561aa04a6a99284a910c018f8990ed6ac40b18204856fd66cf4f5c3c99b7ee300064040bc6140cd4a906efbac5901d26fd0d1c99b1d31803acc0073c088a17471b112820e2b2990c034c9824394302a2a8c6204a42581456e782a0a673668b400ca8811eef884555c803aaaa8102226744285c394284bc0184d43888425188155353899c1a56508144185904809210c5444905161f10219d087cb5395b026e5c113d843911970c8e203dc82c3e505069718193cfc80204c1921f4600a085baac0f410ca300596e0043ce1888ca5d0ca102036804234842ed4088b84c02b283c91320b9ba4ec409d015bf80256c112fa8012d290448a072448600b1a086347d82343100b5e8042a2174c5178402a513c5811c6d5831627292117252017a625252541c02c3c88aeb8d025855046821228b1235056805ac68036b6844954c21f4c40224e36e410f61012d503e471039cbde03a13140e99102679d203b278f2c108658c74c9c14a8e2658a0c2143ac8500369f8017e90838a4678c20a3f27b8be38914171d2229c6126d4c10b58e60ad213282420093b84558ec2214040201d346208b5cc2861802c943b9a84108ed02445dd67a12c948d2ae21c143f7c8dcd6b86cc6d5911e7a0f8e16b6c70700a8a1fbec666f76c1f1a5fe2e0d38470daeee1b49f4e561aa7d12aedfb68a227f2dd23d523467d3a1d331d41ce6fe8ffa8bea37ed180b1d85f39784e7eeea3453e288d0aa9223a2274a98af8eedbb747f6c812b95fa2d2105bcff44bd88ed6a836431f1daa226a50a2d78dccd1ee5f3b38fed9493107a79d14fb07ae93b4939a47cb7af758ca749216d1a32a82a443bd876eff83cd52b7afa3db59c3e2a3e8270d41ea1d0e038ec66a91a643b61671d7f34612c525391db223ec883b985dd22604b93690cbb57d38972be6da402ed78eb95cae2dabb177d5d88b2d1a3e922dd787cebff5b845b3f1ddb37b76cf8663e4e874d6678d4bd0f67b6cf1fd9cefe73f3964f7bbe37cdf9d7fdf47513be65df63aeeeafd9bb75abcd5e25fc2f2fdb09c15a769b59e73167fd66eb5be44a5593d6fb1589bc5baad1f494a43c3da1b979fffac3423c96f6b243ba04343c37fe3fb599bf7f7577bdca6bee0ebde48769f21a88fefd871618238df3d9cf3df31cef98e71ceb7acc6f88bacd5e61f306b358222efbb67f7ec9edd13748f74a1ea07e8b3d64548ff58355b6b6d0e797ffb0e3ae5f6c871acd7ac8dc9add3cee3d9cd626d16ab84ddded3cd1af7d6fbb5c71a35b09d4576d0732806dfef2f51598fa276edb17ed4ab518ff7572bd648f26e47ec71c47ad4f63f98e6a121bc71ab367824ef28da51767304e91dbda37ff48e96e998d6f57710ddd95bbb7eb7b6766d5de98ee611394dc554f6b33657fb75dbaf3647030e743afe6fa39fe9e74c3fe7703f3baddede464bb7dc6d39ea0ae8b3b6c5878b2c7349b1052a67149f9f3c21b2727dcd9f45f3dbc6c9a923493dbd1a69f4d65aefd7b5d64a434353697e454333927c64adead6df88e276af8a3cff08d231bda3633a1644e21c24c3746715249361ae619aaf56596bbaa3b5e6d13c9a47f304f1da8d21daa6fd8e6e55e31dcbd18003ee31b9bb9fe4d6515492daa7f2e90be8b3a6456a0b0baaa8fed98da9887403f459a39aa141d6e3fdabffd1b756fef5b6feba3e3f08f6fcf8438d9fe641d8ac205cb059471034e309b1f39144713bf64614b7dfefb3b7c71362bf1f0ea9b3bde7593c76dd78c1d7396b8978bd433cadbd3b747fc5a3793ccfd3b19eefbd57f304b5280058ac28f571c393bd1b4d7972ce34d63bcad3c5dbc95076030eaa08ef5fccfb770622b739e76c75ced6deacc71cbbca4e9444fe8b1ffcd548d6ca5d8ee32e776dce5068bdf729f53e335112f4bd1c756b7defbb7b01ee73cd50bdbbf7e7f53cf27a97de4b4fe8a5efcbc082a8742473ade14862d7d8aa99e966a89ba1bad7ca4e34844714d2488d24e65ef7c94ac5a5ee2b1ca7a6d9c9f33c6fa77fd65a9b9d3253bfd4fb6f2e91baef491534d649593b6db5b06abbae5a6b3b6cabacdad8aed6f9d7832ae20a112c4053586257a268af241d12da0f75e1fb0eb6f3147cffc379deb8655c0445b54605613fcfa83640f4a7072723d035026c0337d262441dd6672d4becdb1b567bdd7bd4b16ab34d09ec530af4c1686cc7072759226b4ef0f773ce7befc7997defe7f673bfc7d57728fab7dafad3e91face271ab41db8b075e6778ada06875d7759ee73dcef739dc7b283af6aed5e9187642f76b3b4e6fdb564154a7075e66388963b05f6b156b6c10b091b97bf4378c1469673d857118ceecfcebaec0dae7a37dbeea7ed53def4ad4eff54aecdf587b6888fc1456c27a79bc1d076f2c12fec0ab8a93367d83c2812294f17bd8ea3f132eac9e05ebea3681b5d68f33bb1e21d89fa3ffbe1e757a859128ba47ebe79dd0d5859da760b55510f5ad0c91575995497db5c662b158a73e36a0b1251642f48e8ee9c84c196ac747e79c73ce39a7884ae7a4242a9dacd9e99c744e4aabbeaaa02a59ad2a45bfef95a1ba8f3f4e9bf838fff49d93f41ee3dc3167ccc116787fefa81f775c17033045e4b717b675b18a17cc2ee2d7f7fe47bb91ccf11eb39af0593333d4f17b667e3eeb3d89e9c6c1ef795cc77382b9755c4570a0ceef784e30abcd9cb3f3beb50206dbac935212b976bb2f981c0416d05cfb67c184d1eec16aff300568f7fec3e0f330dd16d014293c0beae371f37e7cb3d2b7d65a6be7dce61c611ad833df2b89e379d36fec8857115e9f1b2b0c84b5d6d26cd537eb98a13e6b6272f43e6b62807eab9f53e96b89d79f2b445114c5a8283ba71d5f4a28c6fceb8949eb946fd65a98a23e6b61866a60cad4c4c46a61ae68adb57662b7096cb558c2e20c3391f3785fe7d75ef7288975cfb0ab84db3840ac61c21cf5af6a917e1d9262c96a8f02af249d4ef798022c62703fff7761dd636f7e86755df7dd08e2c0e9a8abcdc4506a607c6a5f9e767a66ca4e46dfacf938383d8a67cf39bf681c8fd0f5bd8d76fc2f1ac7db575c39ae6fe0f6ef6fdd6f18e6e9178dffe3dfa84859a002dbb6c0ecdce3efe8ac2bced6babaef05a87bf1e9db6b11ff772bad2b7b7f8e1bbe71f2596bdf72db04255174dc7d095ba25e92cbe1468be59bf5a6a060cb9f33f377a446912fd5e91d6cc31a669b325476f256ffad6038b3af5effdc1818b76fb55aadbe5b7df7abf175fae7e9f40c3b21763cee0a83e97cb48aa9304c73ce8f337b1e21d8f26f9f379dcec148ddb97e75fa859dd0bdd3e92815431493f9c42ca7639c25b2bf6df6c2b426f1a77734cfd08c6a637f5e3c38d65cf3681e1e445d8cef876edb0677cbaacdbddbc65dce8218c96dfbb923098a24fd49c1ed4943d40a2377ac6fdf6d76f7d0105bcdd1b9afe368491dcbc1b87b6c0735f0fa1384375ac743ea0768d431034dc811912526a8970e4e69344ee3348ec3fbfb34937ea8548cd9535247b5011403170000280c0806c462490cc520986ee60314800b73a63e6442105045711c05510c03310883300cc2200c0300020030042144b8f6020b8abc50151a2d81e117782c33678ce177ac405fa1dd4f44863046ba4a4214223cb60dbea442dddcc68e56e3426e7459ad0e3a7c56d7125705f2089c53b7aceb185518a9100e40a9179efebd876754969999f36abea163949c46e1a70ce5dca9d92afa38efb0ca63cb42656dd9a6837c0a9bdb1997a44f209df2dea5d155d8e67b9b31b6e6b26e9242bfe90af69c3a9ebd3ea2b7e85a95c102669b6d46169c031a960f1b6bd10dae2f7c3e0ca5a66d2ad8e2b01c92b074eba4dc49f9fcc524d5bbd60a03bb903dbbd4eb17dd73596bfb055c9b472301fa4ae28fdc47e1935ab749376236fcc2a083907cde65a51104ca2a92102a153860193a74cc91005bd412463d1f5a9c21d9170de72ffd6c484be55dc1c2030c509746bbd30563084aea13c3be47842f62fe22932fd06fab41928f22e162da6f454e4c43528411c70a7ed136d7c3a55a4c1fe781539cd807e1497121051811e9027ea13c9c034911afba77d9d8613626519d6055096fcb8904b9ab695c24b485d589604673bd5f95365155e435ef573b65d82b2bcc3f9bc103e6fc3394258669fa24187192d50543b1f750a4f967f4a6514dbcc797f4fc424c63517664b3fa28f0aea90a022e74125630cbe4f876ddedd393c024f043bf49012d0694112db30e0c15dd963ec54e7292f95205171597517003966d935de30bc6e0b6220f7971e7b48a2b8850834fe99768a6b1e9eb8facea425e734143d92d158d35aa0f3e69ff409ec348be365b59166b1f70a2aa30d23f144978278a7f5719feb19f5d9ecddd7dc72f5ff1d8beb4a413e3f31f7269cd5069b154fb281bfa5796da62aa8c50b0786347433caa22ae8371ef1dc228a4a4cb328ab56914a26122db514180397be68f6e5c8d7e0c1168cf31321fca56c9ca72b22326ac91b75e1eac1dbb43a9b03bc7ef880004372fc224ae813700678d5ba9d9b37815bc2c23dd314d90cb8140c4530bf2b2326db5e5cc68e3bbd979e260bd6d4db943d7d615b32a58cade5dd5d9d0e8db014bc10cd57c87f1cc31a300203573558d84231b2a09a339a8a530a460e7c0cfd64e096945f5299fccdc9a8349eaf49ded73d8b20a75967539b967a802ae189e119aef1e7a5eda655d778df0921044bafe999a2c1c2b5368a4ee775eab123130d0d384f6d8835c12da512b4b3fe356a9f12b4e91069e177ba51fd8269a4129344379b77d26f3282006374da336f903dac1ba7809a79f1264206df0783b48a335595af0e320eba4ecbeb74d70dbd27bdaa4bebb05138f25b3b07203b7f631e0fef884d3810858bfafe1b825ef2175cb12e51c107cb1c8c58a98a902adfe73bb2559b262158c344b1ab7daf59821d6b1f3ff083202f5445d2240de2fadb257fe3be80132abbce6d670ab76a31d521b6720e70ff9dff198812f463db60e5a32d7b47d73fc41a31694aef044c58a66f120d12408e2a3daaff79bac4bda907fafc74c7c437970511b98ad9bfd955ff5b9fe20cbae45726addc2f200ade52bca05967ae6c433c8ebe61f5f5d4bb8763bec85dee3a22461c0b39538b466b357e7750e7458a611a5f775091584ae2ab1af04ac4925631dbe7c60b88588c0cf88e573da8e52b8bc3ad7efd58d7d34cdfde87d00c301a81922508c8935c734edad8e71d5f16a0d944f9a5729c909bb6c33433d557832eb125b9b6da52e593c8918242ddef2c5659826596a658dbc0458b95e26803dc55bda6490cb099fea80b7103d18b90b95518749e4fc8e4cd727aa5e1e80363a0bd5aec2a8c45b88cc611510ba063a119262425afa4bd361c50289519fba39f10d187096a6299cc348cf986ba3af0118dd88b74255213e781184243869d082b6b0f5604016989370a7cbb0c1c9802b82c983c0c524de61da98edf503dd4b38e3a8e9d6c9305171f956668a56949dbc0c9269ef8ab96d27c3da93bb6a91aa1de74e7266d3a4969edf07dd03b771ba71426633fe7710204761eb5a9070b9a9dabe2640e6a280836179b94952b6ae94d1daa28ba534d4b98db33fbaaab222341c4a312c88aca6d024786ec6f616e3a51b510e269b47371e2fe86f2c55db221d3d5af5ece8e47ae1128bfa0166059c641f5b842d58bfb99238d9ec2a22eb44ad07965e97dc56f9e39d0a87d52cdb010b2d370c57825fc792d99fc980b6710a25503d23f35dbca12f9f252b348af9c1617e9d522958c9c1e748ce5906749595a4011b2c04c9754913d3ae70a0be9f9e6f95fbcbb1a3587eee0015b4db8d5047c04f69027fede9babe8843f3c452cd547a0a37a2fb3510f66082f2ccf152c52200ce1e2df031121a050455f4dd9def67f1dcedd7b0b607c881672ff095d1c3e5875cfacc605ecbebbea419e0d5d6244798a304c14ca037c17f363fdb704f589dc1fff9ebc62c886b7a69ffb8f997a63142933fc47f3fb3d456ba5793c8809751a912e51fd3225b482bfe758b6ccb8ff100996666b7863aa5a7299226fedb2e38833872dab86a482e46e025bbab61892b754c4cc732ce7d6af42beb0240f7685d17d816b763247f792273ff506e7fd8a44825821b22f234aca2060e17330e39ba9b2f16fce1bec66867e5dc6981c7795b28445001dc4e951620b8d18ae2c7431725ec41f50e0112e2ba1edcf7fd6d2bd80abea1a6f67ba2296f134e293eb52a476d20bc4e95300606244126e118bea9349fb23aee8aede54e00eb454640f8c7e413cfb35dd5c8e35e461aa2727cee5b195353c49722c0a503021dce68b983e56558af9db0852843d16c770936ab5b63e9d8c87d75f30475f7a1d8a3643cb8061dfac5df6f88cf6c814bddfd770201a001bf98292a6961b04fdbd5b49a13026235b4d48325ea5796129b7161899e06e6c5645ae1009a586d5c525af3c7154bbb7cb9e566a5f4d4241c47affbf1c6dd66d9d7f35cfe6cb3b8c82f600d8e33d9ff4a90f521b6ad99d3c35c2641e9841ad2107f23154219cbcb6fed2219bf30ed7c972d0699aa7b5ae8f867bc0f589831f938465b6c207375ba626ec56ea7a39e121bdb4d10a1692d8eb545833ca6341a135c2783e2352c1175bdcc0547a1cd3674d489fa4ab21251870620cd0526ff1468462cc4f8f870160bff3af519618c09a30226413a7df0c8c57d5891a2f86dfe658fc9194fccfb43c6838414bab546b7f677051da6b5a64d6894cf7f32093f165721a4f0a0f77b6b322b9936fbd97166ac9d2ff7550d2215dc1dc4bb4ccf14ff9bee7e14fa49321c62925d160c89e4b45aaf8d934ba163b641ffa29c8f1b8ddcbeb429304f714760290203195f619818a9807a0ffc4afa225a665054f0d0861a1f3745103f0b1f7d4a9b52d962f01127076209caff14540396a27ceb1ebf701da75657f03026fcfe30829f3a088f9ec2de9a173822fe4e64511a285b22e4f47eb9d8c2dde9382b77656f498e98b32fa9e570b416ead398eea26686040f989a09c9f7a5a03b70e0038ec153ffc632fefa17c6ca79208b8efcc2b01e8295c6c4eca842b88ca7dc2e91ba8c9a4ae6711a7d0e166927775653e3d671a7492f2b6c3d80819e99322bca8385de6f029b227b6a6ca9b007205d30c22cff501bb8d8437e475de03a1a0804a22e1c68649c742cfa6110c93d2c020951b03e15d3e5059eb1c4dac19034c4847f88601cb86efa46fb2d2c65aba9b70dde067329994063ec49efe5f3b72739c6ba720005b8fe825b3f4a2ed96d1a18b48d1fbd176823f57c931b2fc681432dd304bb3279698ab6a3b21c6540594632bfd5d1293217e3374d61596cc4d9066fc38861852d308254a8101dfa786c5444fb028dedd13fe88fe8bf84b7f349aae33caa36c6f6e4575e33768e93598edc8202ae5808b8a53e495a339b503fdb155edbec2e04e2d05cbe1e3869a338d7dda3cb11bffcabd5cf3332eca338683f3b1544143747023b6a2150d8e91cf8650b7401539b6fed1b4b3a71f7a910da1a8f7f42b774d34ee107df0b5d2a9e59ebe0b6f0cdb5f5e58e8bedafd353a5098de5607051ee2e88b7752ec1587f9095d7ee17067f2f8d6d6f75bfc75be3d9d18652253b32f04d5b2ff0829dcaacb82a1d486a295af17416da35ff5f9c6351cb3880359605175cf97085f2ef94944c86ec99dadc036a1432bfd164975218dfae5620448a42fbffd39d7c23f8db4aa4102764f8a55d291a42e77df276050e22c163a7681c8305d1c91436f3e17426bce07d99d03168e92e35afa7b748b1680d22697331900becf28b264f4f9392cb970073d9e4622f7560eb70e1860aa76032a240b2d642de466bbd1f36b4391db0475787888d93d5a690005215e56543c9bb2ed74d0d97748a4c299e2ad3515b00aefb5a74190a9b0c2cc1644fc6fe1305d06f40aeb6f2edb89183e7f13bfef67121294d8bff4690a97cf5140141ea0284480a745a672aae86f3bbaffa8f9f821d2979738417e08961785bccda7641a845a82252f7ed4972ea84c2865cc30c97582a8a58f0d6fc99eb56598760950f6eba95979e110799a31305426c96b3159845f9727c88744ac49793509336a2e459f6ecc92edc705bf0c59a2d52f2ebc8699f1c60cc1ab8c25969355c450a9f59417b65428fb415f15468b2e2f64f41fb842cb5aa506ccda17051a11c5a536062d28bae8e1ebdea4cc9ae6beebc76ee27f503350910834b354b2be3ad8e990152389b25e5a321db28199257869f5aee0309a9709b61c719e25430b72402f97507981f4c271c26a074066eb9306e1239e7b01c470115b559f7568a8cdc250621b0ae7321eb600d35a8e01840a64636219f3f353d907f5d65b544e2d725139bc300354fcc3f4bf229fa0b748c01a9e0a51889bd8b630ee3c0777dd726b1f2f2a908261d5250ae2d60a779c802a54dd986ebc356a7843b6d237ff54e4772ea449859864ee7cdbb70aa508292084a595cd5f48e6d09cd21c7d93379675d3ec9c13b1b02cb1eeea75f9b64d790a2b6e1036ce5d1cb6a763ca709b05be0b4444b494b6fdb47a2e0b08abfa757ee90726499b63415bef3430a2ef62778d20c1a13ed7194219f7d9cc6f0170bbb64d20d3fe3b1c82da3f031d4583690f1a4fcc8277caeab3feb64e530674e545fd2602b9d71b1b286e9c763faaeca0604f3f23845ee8981b8183beb9dff44efdd35e20cedd48e4246a60979e99628386062214a7e16ce2168ed3e38e340cf4ae784aeb50dcf0c738dd6800fcbf86463c1d995ec812785688ecfe589b087815ea733038e2077f0e820aff279bb470e636d76a44e4e9e195f6a0def0855023b56b6e5b50b7cbd8586665cb6d166dd23128ea2e0693433b8a9d00bd590829fa219ae1bb188ca30c36b6d9ceb91243a91da5508d80e6d42527c40e1c1ac0958761256100182c233fa50332601b4780619bf8e05bdbddc257404f40881788e297b1dc1781ae3842128eb12c84bd9f4e665c7b1fcaf29d297ac8ede65def6abeb5c01c0cb41190b9476824cb8871757215c44b99372e8d7a89ff45bf8062626d1b2cc650aca745f1c13e405415c5d23553c289eec4e188cc98a97a7fb901db592945a5a04d80a0239e0a015e8a60d807341bcf26698e73a6c1d602f82e998c50055802f9fb10beeb11465e9a54feed52e0984fa2e526db9076194cf3f96b1743ffe526069d5de25cca9be24f2fc519262a9111cc8864f7eafd06c5179abee7decc32c54fded320e042728ed5814aca5013f7ce93ec80db8634fb678378059bd01cbaf5e397e320017b8937f524fe6a7629bdd2d8047bedfc06d6a25febda842bb8bf8abef866cd902164399f4e97f2b9d12532bf66e6d4428e3ac44d5cd10203118347d7c745f8c2d34dd86573bff823d2f5530c4951e57abf80c007af367b27b5885f3542faafd45047b1a46d433f63f60c72b6f7c414537141879fcf4590bc3ac98470cf79be41da1a6dd6bd12686e8e611ccdd2bb1ffa07b64102377584e467174c7801eb84f816a11a5cc443d968ee9581e8c5cf398d0ef94183a8bdb30cb0b1f50827de3832005a347ba29c1833d92d4aa8ca8c3ce840a3887a6ad737a5dadad5eb91f7e1d9e39aa24d5a389a39c2e0c7e92331109bfde0b80c9ed7e1bcef27a36e304636bc04ef8196946f1afc3cfa810268558625ecfa08dc754fbfe9166a05f7f522399d362e6288bc38752990d729b512547a6cac1d79bcfb6b8a067756acdb20468ce037f7d62dd7f4583bcb4cab629e7cc1239d4b44945d9cabc10e3befb07b4f4f589abd66c6d23b8c043365cfae3f41ef8deafe01520e4def7b4fdefd94f389db0238be84da70de1928e133a9a5a313b8e63f8fcaaedae4c740536c330e5c3ff7b3f396e244923f258eacb05d9d96aef92840d40bd91415c24bc57485c58a1b06a05e465c06db1125de2158fc161f45d221ce2377835179fef4a67c89b14795a20135e6eb480a992856c4bfbea4d628a23f882f44e0e7b9f00cbdd75ee76013c26de6e76deb786fc0ce0e41d3563c3774c5b467ee28ad177900dad5b51c28eee6b95b4e59c82c4e277e9d583d95ada014acb457d583b9774ad14467bfc815507dce8d9f962c70bc886b8dc19ad37e65595dc41d2163438561a23dafea11defed0eb5a175bb6a802d9c3594378a27b31d12432caa935e6b63a3860ad5d3233aaf358c315875b2f1a91a69986cc0e9fca4d70e6004b9414e125eecf17c0dac62ae11177a6a7241a8729303d8fe5c82a237a4b0896161f556d71ab3cb47bc80c256c7541a00446eb5dfc47ffecb8a3165025c48b45c7e90d47c3ba45f72a1ac1cb3d3766bcc04ac664804358a3985da7b31a94013c8bcefa1ea9e84162bc97e255474f590d53b6e124a636bcf9ce1dd854838cfe814bb85ba274076f5e689f7dc3a0c28d00c5790daf38f8bb7f573d3975badffc96fb337aee1226a2e647d6146989cddfd38c5497a6194c7e08d47c47a4afac09df21d360cae826a51fff7f9603dcee8b9c4c762d472894559213c17f9ae9562b4944cf4bbd63e389b6a4db812fd19ea99faa242c09cab5cc9ca8e53c4eec08a08bb417994041a61945f8adf7f898e4dd660b49946197db34286900bfa5afdfb420f92980193e02f0f0556d17e74cd8ac7273f8d4381870b9eacd5d78f555601492e382604b6d69d3293ad3342866f6ba5ce9d08265a0c5aa4d1431e1d5e35dc4617a99ebee098b246694a45e578cd92b057a579d3f4a7eda8914e6ed06473c42bd2125a3ca12374790fb8cf85778e2a8ced986f10e8eb2e2329ef5cfee0b272e45d12a385d6e0522e0036906d229d47980fdcacf5574374394b53e8d0d9aac3369fd1b5016aa1faad965cd215fb0a21dd22ecdd4bb792e37b8fb66aa4534497d0d7860f0b507cfbbb0e8d03698047b828ef8c2b9aa20234563e1fb964ebcdea17617a207e662566dd10eeef3bc3f85dd9a57be14f7d7304317fa77f16fb5fce7f65da309c014e69352ea8e8411a73a2357bd38c2e0ec0ea0861055292a1a7c029eb691411c2f308413cbd952bc0813c51fb539a88951b758cf3cb35b4ce5097989a9e449c2713f0b7de2ea4378964b71fa12dd4411f2a7080382ab79918268a6440adc62080a596d7580364445fc07a23208241418e27e938298d05e1fa52a14bc095bc000da92400066461ba28e8bc35149c5502f82ac78851f2128752f51571631796a3c52ce22080e47795e8f0621c84bd2b1ef9de9bcd8a5a72c75cc9ab57ce2bb97cac98863f5f827c310b5bad3a6cf73673f474aa2290f19ebfe047b49ad4e6e41857a68536a28ac0bad45c40465bf9cb636df2454f5c7bae31111c7db524db07716e6091289476e5251be3a96de35390e56866c59f84f28085c157301e51797d61bf3dc9ec6d213b8e4819ff6446917c1791db3d6de500d4f49f2ba16dd18159ed0a18a544352cdb71c9571375ad72cba8a97e6e7e7002dbfb786cde9ce53da08e0a257ec3c8576845c1bbbce280ce1e82c426ae93799b7a5e9fdf396c5b03a748dff8ae18be182470f196cd7a0d76c3fa325a068ad34a0effdbb3a96757487c8c0cbd2d1904e20f34d0bc124abbca5e849441ebb55ae5acf4f4e0333270ddc890f5c7aba475d01fa18fdaf1ec40c80525af1227045f5496466257d655578dbffd40f0a1e26a70a6b122df5183d5d4fb44ca00d2ba46b1deb8708e155a3de982b5537e7753c3eeb5d60426ae0e8667452c8322448fbf8b22eba443f40e10b93bce0d47107f728eb8f11084d75fd80f4252bafdabda6fe8f8014493b2bc430d0e235d42feb5c3bfd29895a3a09717ecb635be4be5350601f6a23a56ca12a0b6393c0ef2dc7002ac91abce37908678dfba715c8e66cf015bc7e403f6077d33b0c02b239a21d08511722a3fceb4e7116e3b0dbef5df3d06ad3762c3ca356f48e1fa08c7555f3fc97ff7edc9ee9258a61681a8aeb5a1ccbd53ef56aec255d5babdafc3419ad0af96eceef5d12230f55504b142d516d80b0b2b9d44774e600aa79d57592ed31bce05f84e501d655ef58bfcedaa84f43595ecd3104c0b4fba7c1caa9b5cb6086aaeb4c6608d8b5a94f48bad80421972552da4a363594a25ebaa318babab2d615951f9d3a124eb147dfbc122226bce7e1f0d2232f016d70970998a974b505663100b8a4666ffc95e3f27d96853d447e2c36088be6b8e3eb24af5e606cc5203e02df03a4175c9c5a727e0536f291cb08deb81d3a5339a53b89f10357b4450ea9a958a8e263c4d3a55a6745b678981c7f8e94153b43973c788daea292b343df51e624a376e461a5b2ff1cba684ce3ccd05e843f0afd7d65a8cd00c04b5dae43e0666f7641496ae7ba4ea7ce4762cfcb53363a358c46fdff1730f98a5062c29769002aa90f6a6c18a2113fb526b059c6f0948485606ef9c55f10ba843113ace5f738fbea188d62a40b694a357353117559b2d93b5ca62c26bae59e9a939c83bcfe9cd82a391f285312ea8aa696705a9f5688e8809effc833c033098e90153a81220583fab7d98349dccc109306111edc14fa71535a03c5116a0a646453772c6014afa1d6ddc1ca7de7b57295689c05370096c2b0359b7483d02bbc5b3657f63e8f1190a469102028309ac1ca1d4f1390ad3881bd418daf620071b4f4a21193c1fa938cf095566960f42e8031b27c061f1023332a1d2a10545212598db06c36a26ed454b627ce97e4818ab70631cc8ac58aa63d43b999938e6216d6527440e7d1b8f8e04ee71f4a8f4dab94e5986df67955c0980dfcca38d749a3afd91c156fd3ad03cabeb58dfb7f81c63472048a98f6ffb99ccddc9d5c4171c89d19543546966a71ddd85265a19754a909a823d3b07cf12b0bc43738fce8706bdbc106d91510a30e6177182d8888bd94e003c43ff9a7e15cdc106c9dc6e867378b1acdae8187a576a64870c62b73086abedd86f960319adc33703d90729425e837e6cdaff7eb72c7605200f30275676882083bba677f71d90037045db2c00aad29d137addccdc09c9c8509c11a7dcb9498f73f822a9aa4de489e1dfd7977d1b4da43cf13db32e8099f7216afba4bf273d5cde6d4933fd140360aa71c0842b2442b82dc5e14227acd294275e21d7294f2c472265e55d515b50ae6954692c379e6850948010a81f5f834e0e2c425984d595e677a296207ebad7f345ce1826aab2a914c16fee4f1a981cef8dc66a44e5ba75d4015eb948161e829032f1b64421c653d859526535e34f4870a86495d5f43e5657a7734ebc2a001268354750c64f7e896e81e3875ba374633ca15d0cbe2c7a1215970531705e713e4f5a446e812b085d460974d2113b2a175bc6e328cc3e0c3cd4b520e382ea55202dbbcc55060239ba7d8d4a251e084289982510ee6a61e82ce3892722487155ae1c12d29a8858edd9d32696700098430c03da2b19bb0218eda2401a5e8b1e902cc5925776c5fb130e7c9452646353b785a17500b8d466aa10ad05c0d35acb9868dff702142d19d1c63113c7246422a088d3bea7c110cb373a34442bbe2f5795380b4ae1fe010736226506f0bdf3d55b86c5343dea9e109a40eb8642d8de0ad7d06161344ad3572dc04e69f8beb2b2ff3e54e79894d430cdc1ff1be6742a658bbe89946aa079379a3e6b6bd54e3fcaa0f99a13a7a3e611cbc557a78f0deefc17ee347d297e5ea26334ec19ce66acafd4b9b006af91f2c305a82e1a678ba18c8074f0a4a88090d4487ce787f133f748413e4653031588ef1c11470426024c62565078161bfb9cee5bde5f788ad060894ca7deb5146ad19a37870a3ad96bc61951659dc65dccc68265d6783a21fef14c5f4886afaecbd77767983d27a3ea2902e34ee2a682daa95420273172568612f454d42715822fd750e99828a6906d229a78a63088100dba9168253903ca417beb2362a4adeaaf3b22be8bf70eeb3085100e37f28c80a4068fd0b4d55b7e643edc059e287d9d70c2301c089ebc1a419fd8b83f6d5766eed709fb67ae2ef9e371c4f98ce7edc37b2a0b73c22a9c3a04c8be849a4745d63e4b5d57789b167274b136e3829137a87a5bf0dcedcf5db38557ed7382823aa9469807d9bdc901151d5df93a7c4ae81dc40723bf8f4f2715642ae986a29fd8efcb1f5caeb34cec4652a3909ea323299457a754743054d1a0d372b3d053795cb771e9130e48b084248086fcb9e3071c8869b40e8ce4c1b18f1f58aba0104f4d5b63eaa941631172f317ad47bd073f205af975bd07c55140d4e007070a5757d422370240536b46ffe1cf5d747939a95b1f6c2e54f19321a37321e7dfaba12ef31a3d1f4ca5d2c398068aeb58b2857498f0056ccd05882ba92318698c43443953d405ad2536683c2a226e07a440bfae4c829bc165a4a9eb708b4ab8086a461082da97bea694e690e771ae27597aa34efb92ec5371be862f985829c4863be069f5f276b9c5ffbb70582c5eb751561620b51c712e89f000a0838cce228f8980c7b33827b477c782e5fd54a7f19f85311122ccf0a5d9f5cc69f841fe914d16cb260244bd89d0d0c183783d378ca515a73ec0e98f396dcda49ae6e146286050ec50b10679234cf5f7394976d66488a8dc11297660a28e1d98dce2a147679220af0c40043c5495d6035475c7cd6f0e5a756c05155e4295c08856343acd3ad3e5904414e94f5da957c813a8d3ea603ec8e161c4a64537dab78cbd638a2905647ecb196809467a645048db0893c09bf6bd362e30ec6a2f86076f7475ca484154e6bb5c7778434a7b6b5158d05ac2b2aa2e2d001b95781089f336754f410fbcba881626faec771003371c3404cfe83e03854107190bdecf95190283aef0b20db31d851aef224b9443ed743c5dbc7b47bc1d92f64242aa4bde2412639898399e2e7e97236b07f90e720e4326a1375bea80065eda8021c706bd2ac8f9251556a2c99dbc6612b72f48fbeee5af8ba8c74905d0c5131ae78ef5b1ece3476384487b122ea311316b1a5a913dfe1bbad4962afbe0faa214b264f916c9b3d93fe3cb9915a40809ebde7308c419ebaa6c6324d60df919eebeba2781c20f6238393dc325acab59fdc0acf548977dc12f0dee889238405704cc6e60ecce513a4b1c62ce545b1e3d6a74ece6d1718be03018dff0af16a45e9e74abd7949210ca4e9f97c8b1544f67084d0ce121b2397a83e7d8fd89d14c57cad810c3265fca894a4dc1d067fad1b3bbfc7b9cff2dbf2234674642735671e7e81d6d61f9a281c297e18d8d8862f20d9c4cc36017d74257768f1a8c03499b50b0bce7ce60059decb182655d122140e84c36a41fe4062ca0cc663188c278aa48488596fb8e9c4368ee5180414216e95b25b8497d0c0e756b28ea30b9c5069325cc53977839aaf0506d1076ff93dbe6df3461763a38c196c31b350f061bb1832e6ee17a2c0e405b850b4559157ce0d3251a12d0badd1f292a3df5d3a567cd211311dbc3fe76e1d1255006374f2c16431ba3a5da208eee8b60db36a67b5da2136721d2b550b394d60094d6a6147d5bf03d942f6a79d739338a90179aa08e347e13bc30106c0cf70efd6f81a3ca85ed52135fcf2c0c9a34c8c54b7d5de2578d0bd9b5127fd669e07003a393ca0736c323416542dd66fc4fc812d64bf6299a5e24a8a3269ba0e7227f4f9b74edd313d555fecd7d25685667c36bf9f57a8b93abf8f7bdba70945d1b0b91eb706c3670481391589c22dd135e47709a083d189f1c681dd0b3b879537d95e41c756c50b52c717291d3c9d7ccc9182f6d7a4c986b5cfee10fdbb17797dab1b0307a9269e07006e39bc40d0953cc874d406798e7c37294e38ae6b8031f5f94060c1bdbc416b8dbf906c825fcb90b9fad51729bc8ea6f4f3b1ffd36199c79fd1ca8bbe45f7b01396c43cabedd7886f88ae999d3cb59f395d2ca78afade628aacc5077e56701ee176b5be390749f21df4a7a00a45aa1eef1a8964cd06a05ab3646d3db2480c3629c9fdc9862b5fc6d820b8fd66f1b79da92248a75f28393cde152e5e1e461da5bf1cc60ca5873c6b988391a2b2e6d5b1a73eee641c5ca2c5394bf265047551ba22fa76c5511f86026b696e21ce1af1f5658b023bbf5564e0e0ab62e6cc63dd7c928a92e3cf11f847aaf1519b7f37d429d49e6601b7f7491786be267c02fa19d62fe955cb7a6f57065a04defe4e773665c603096a9bbdb682db2a1422cfac9b190aca896db90e8b9cdcac64a5701c92c3ba6dc43e08dc9b6265c6b8308e21bd587848e054d40704ca20bf4a60b68fd45687d45f92140b4995823cd9f840c63bbaa4afd543206b4380d3719b17e6bff0248077f1bdc68e6ccc7237400682ced8d2d6ed5e51d14b0d2a78578140da9545ffca1bc2d208301b56bb6f78680314305f982a1d0e81d872cd43ffb94b6b80fef11d0530588ebaaaf7feb44dc8ff202e9b951c72b9fb621a19d1bcb1f18907dba2638ee510d2410b64907ac7d2021ededfffb29442d6c568b1705f65399d0430e363e8d0bbfcbb76fba947e3c558dea0a8490eb8592046c2f9ef6bd0f4bad515581a9318620e41a1f9d5a503d09b909c35b10395d5cbf20e9a4732189246be7e49fd25afa147ff31663acf4a6ecca2f822fc5130a09e8e9f0a72f95ae5692ef89244f286ddbebd4e992418f949ed5490df1ea94e9c35a190f8192cca1a0b43e3194edc10c71310d3948c53cdd956a3c1f2052e3d44494ecf34c05c94d22335bb22d4c1e29a24b1e34290ed074bea474067fdb75d680bfe73400ade1a960310d31ff6111fdac3970d2288817d95f70561558ca5fe97da14cbebb775aa9c45aa97b70187cb9c98d5b483c079a80a538852f508dc181a4e86e7611ecfbd819014b2d55a0f45ad46fd5fa48f9e4355a59acd2df58d079d9dbfc4acac0181af38a2636af34e562bfaa74ecda484504594b5f8341149858b851a5ada1a7475113d0370cf66d3a948acb0dbe63762c972e215fcef4a86b69dc91a2f436663d9b7620aefa8ed98d76f8a208f28bc2d5e6057991cb3067526cd99ed318c4f17600e4566948405d4b3dfd8ef769527fa434d3c5cd0b43ae0a2c6955b056a6139ca8881313454da3125203c72ae2dbe11947fa10e0dad655c0b287707d4cec96cb764c330b0fe6b8010bdb25e8a2629565010a03c40a4294d65eabe86a2e761669336f2fd7ac1556fbcafb9e80f249a4ae479e558b3c4799c5ec83917a9e52f033d2eff1ace00e762785e96a616e27cc21214acfe48ab985006454443435a2544b726849a0a8f8509d8b4fd8990b047df05c1adb29d43657caf0884e041e828f5fabfbee1e390115868f516f8c2d54a8eb042ab62e8de89087f21a8776ce955cd547fd5f4603378585adb443a8ede1b01db5182131fcb9400c8f1baa35912e1765e8cb2fcde639e1f1b507962256cb3cbdfd528af11bfbd1d222bb4267cee4a3dbb346a391bd7582e9984778de907a1cadd63e6e1db22e7ca81873b4eb68eb2f30bba864478297737578ad38be32d52d523ac7d016c2b01af16d083afcff04adeaf4963d8ba6d2a41e7e28b3c9571cdfa28b7aad722bd1371472f4bc8de9f09c30936fcb6127c074d40d9a208bbebf5e5553e4411b5e7f253919a2c6c92576c359fcffd053f3743a94ca79ea103e4a8582503e7aeb404434d2f0a16300b71f8f2255f677351e8cbf128292651946da504aee5fdfa637e10ae2a01ec71159126dc39e4765eb6fdb5b96d30a27debb53b3a4f6d73249f0e9b57bc083ac5069d76201558771625e21578cb55c56432b11654234409dd669682ff98fe67046495edd51304e1a892ef38f039f555b938e7782e72b6284a53b9688311158c018942b325e22c9d5fd637a00e84a5a7d2b3e06eeccf33803b9608d6f7d928f3081b1dfe09aebdc02f6eb8b30b36a919be69535738d1ed698d678f8dc98b5afe5dde2d79e68f5e87cb3387a8672a587b8507a46902babe9b13b0c0611c5df836c38f56011ed99adfb59cbb34f2745da43c92d17a2acb687cf9ac5ab67b6ae715a9e7a360b690f25d7e5a1f5a0e4010591f003a23c48e1f6b4d5827bf8f5d08250f4300511e29f9f3d070b9174880b893c792ee3e15250ad84127561703d4927a50c31e900721abc1e72bc49917437671878231cda6fb883b8587a0edeca08e1b3e361a566f1ddb371578390a2be4779cd02e319ec3420b40371a1ef1901e793e1b1df30e8830a9f0759c3e9d1693940c9da536f8fe6866b26946c484fcb179c5698ceadb84530622d8fec4e1f224a88c6a73da0dbeb1e2c961ec14e03a20ba10f81e2a10081d01017dd3c765b10c4ef811d420921f5400c110df17ae0fe30ba103e539ed026fb109fb8f46cc0f5dce0117bb3d041fe94c8246b776e5a5be3b1477791f250de741f5a1ea084e829e541d0cd42ef195353e1daa3ad611de2a2ce333dae07309e116c164c9e9b0b7e187e50fb70b3ddc5c5338e56c607155d0f522d5f102bbe7b6cb5078fd78f0938e330f5f6d4b41a93990f42181f0618a83c77e1e011a8d37cdf43cdcde2d593b4dd97246b94201ac70bb2bdeb193f0cc9dce2be79360d6b0f16753cd46b2ab29ec12d9a103ebb9e72ed9b872f9f9b03f2e17c0f3ed93da7cdc58717085d885d0f28882208e81edc103910fa10691e0a10d03f7c41840b62c5ce43d0a509220a8e27b97dfb6c5b0d026a20de09e5a96d46ff6041e7e9bb6c0f53218a10500fef10d68580e7ce53839b85a6c7e61e1cc22cbfa7259ac5744fdf6520d0215211e222ca93da4e05ad271ecd22dd43950e74ee0cbc47ca68bfed7c38c5072a07624161619aa667497767f83e2b27903b2f08f7cfdd01ffe087c80281e58359284fd0dbee87c50fa91fa008e24294471a17452d0f75348b94a782bbce834fb6c7bcb906916e888b5c0f4a5d8ef77dfb2d5b5e8beca4bfdb72636f4e549966f1e549ad2baba6e7414341e41fc4dac72c874bf120cfc30542e603fa3f8e44b8090f5121d40db132d783dc798d34d6110f14bd6a67b142f1cf531edf48b9167066b03ec62d5c84bc9108745362911b53096aa05a0541b9a48d50c80be5da0d932e38d2bab3636f0ff48749d9a990102b14c5bdbb78f5a4d64951dbf3709e82f089e389b866d1f0d08d5b11e419952bebc003b2e93c2c20a21f083d1cca838a6ecfad86411f65f59acb33d0a307c466ffc3f207540f451ea020dc3fe484d041a43e2136d87950b1f40cd69a10830be262ef4901a782c113b76611e4a175371ca3a742dc17fa9e3a370b73adc3c02ec2cecd1a58de4a80779d9ec5e322fd96cdc9f9d2378e30307b53a1ef39d35c205e103ac03203400484bc02aac0e15c5f400cca9a0eb6ff0385712166015e7cbe76c3514c399ec51f2d60caed36f76ccc27f333d6fe7e1f64a626be7ee7b8bbd9830f0c2ccd8d3d2073cc007ba6c318ca0b109a3f61a60d7137d5b026622fb950d1112c32696defbdb794524a29a50c5705730503063a8fa1065ea7f3bb287a3b2fdd171bf24c2b82409960f4e7044e52a65ac13badf84a62ee560938f9686cad73d679011c4f3a1d4c16f4a7b8801aa30f6b3d7192425130f69b748ee0b438215a3690cee88cbf2ace088fa72e803e4ba22add3ed68fe74fd1fdc95960cf2349c574fae4bd79def028a4515aebe4d6b13de1943ecd4229b5ff7756562dcaa9b1f9f607caf5d3674964eb330cc73f3bf9f859b856db8ccd2e8348ca8c89321ad14f9fe52cd759e8b39c35d5298a85dacc4c1774f2d71dc10ea60bdac16461c11ab3f6da6bad9d13a952a43e2dedab6fa40538f90bfbd7de46e0f4adead3ff68d8fa41a9cf6fe9c0e9109a6a06e76a8c4ed518d534094cc9f7b772e0342f5c0c59cdd43135d712c3294d8ac9ba580773ab0bc7c13f7b4b0ca756c9bc140bb5426d1be45a8fac9bed6bf1fe1671c760ce7971e1b1163a320c5ee4495fcf6b03fcdedea8693fe37e04165b22e0f9f5b616638cb1fdbc6eef6e83467cb605c4ce39b372bc0f3fac39e75f596b43ad3b2ff6b35db76da559e72b23e29bb0960f1c7ffee75676b5d842c359af2929ecf1075739170cc3508b5da7b5ea67d8815d05be0643f1c3e08bd7529bb799b08b69a8b5561d9df69cf3c5b7da7bafbdb5aac0799f2551addb6ae9accc9454cb07fe2d327c56fc2dfa94cdf11f571f18638c6b056b05813fc871c09fbd8215ace053b0822058418c5500df7b3c5f54954aa5d2af52bdfed56ff03d71a50ac150d4d1c12fd673d2d43c4bd453140c483cf509c3992cfd9eb1d2330641ffb42b28e53546298c3df188637f7ad0b19de15481bfa0bccb372bc7a1dcb125d3d092e29fce60830568adf5fe4fec70fe9b730bdb7518771883dc02fbac172c96efeccbcf591bd49848765f630234ec64cceefdd75150ff77439eee6dad5db777b7c7dda281e36e24bfe3170d7c83ba437e6fa123ab3875fed48771905940af8dd7061938596962e2466a48b49aa0190818d87f8109d4e8c0011b64f0220120e0a4ccaa966cfe45bdd65e950abf0a84ae02af4af5200882aa7a9bb89aca1475b340b5c2aa7bed1d490ffa5db2b1816deeb577f5c262fc82d715167ca95423b93b781f5b7cedfdc2edbfb8c1639f07ff8bfa59bcbb0e534ae988b3fa1efaf7571a47c73f1d5c853f431c7624b864f3577c1bf274b2baa32fb019135057d4fd22ea66d3c2877fc27660e9b4863e4b20a99fda02c3c96daded5e363ad1831a8baab1faa5c6eadb2d59402c3727dba7c464244917d558a5d120fb5ead9f6dd8784d20041ce3fde110b4f1d251f74882f6b1b5f8de4b29a6147723a9575b07355637e001b7f7ad1ef8eea1a307a0b814761b2f1cb5ef1f1bdacfdaaf865d51f7ded66e5b63e47505056d7874d3a0d6be0d795a36705ac35e90010f7d9ebd298943771b3556df831a3556a70d5fa51aeb1e497ee3f61b57d7a88193dbe2d89164cd90c602be2bbec40e6c4d9a9614bfffdf163fa0bdf585eb8957bff5d5fa5b4870fcdfdc13e460ddc1fff2bcffea6ab57a19b3af461cfe3dabd7bf1af5f3ef5e47c7a17a2eae4295a8a387e2febc1330ecbd6520bd655694cea774cef978d2aea3dd66ed4de7dc1dfd99431e4ac78ba7deb37b4a77f09dfb6dbcfaac75efb1d6ad77ad7b76f4a7d8b28193bb93f337d5dfe473b6ce700c6aec458d610bc08ac958f7e4dfb8bdb502ef360ebbee3dfdda6b21b3603fed3e3040b4d56cedc0f32471bc8d57cf758ab3eeb0eacee476858dd7065b5a38edb36611771d72907bcef969a6393f157334a4f93f0df2313fceb4160e47c5f5d5c2e1d07de9de2c4bb54a4e52a46ebf9503cf63cedd972274f2d05ae79c3c57633d5f6f0d167510cb9cb3ce3a6b06f666812c96f3aab118b4d7b7b5d62ee4a11b2cd29ae60cea39a7ced3feec7ab0798e367f6fa72dedf6ed48e6c74fb148767de26dc76b492b830ed4153b4b29d5fba92883f57c3359d4dff485017b418d6c278bfaa44b8afd16bd6220c3b21aab319d59ff02d385fde962767cf1a5ad90e9dde591599fa5915a5964aaefba5396501e1983419cc57b15303b06f793d84506f1cdf877ddb8e3cca8bd7e8e0a903afa8bca41ce3fa37e4ffefb2a607dc2ec3dda4fdecff35addc13a16e715351863ba206fbd9f5fdf9d7ff6a460a321f9e9f731925a9f7dd2a857bc81c347f73d59d0b79fc3477770b2c038a4813f8768a9a53be4e07e9d717fb2a06f5dd09f57f4afeb09b7df83df8502effe7e59f4becbef8d249d9b467e6ac77da999a4a86edf3e3929f5d97580e929fa2c8f60e93828cd9452aa45f0f7d6dddf0f1fc7ed60ce5fc89373fec9227c2d7a19d6f5f759dc3bfc1dc6a06f451277f7474ce97e32d3c89f33693feb1e4ae28fe66c9f87d230868eeb09f759753a59fc2632d5bf2775f44eaacffe15092212f5d46727e2d4bdef8a20f54fa7ee90aaff38c8fa3c11fcf00bc109eb2a91fcdefb44b2ebc89d55cf713bf8386ec72f30e785f14a470747b2fbf03bd587e2de210defbfb1af4412e71b3e17e83e7fafa234bf2a531ae1f7e137ceef55df57bf395980ff79a27e95b85f158637a4d17de3ec321ea74e8dcdf78aa63afd5a0e915ae5faad3e9d3b43459d3df5e9ebdb437ea0a3d789c71e1af4eba83382cf7e541ffb2c87d87a8edb7d56fdfad08e629af777dfed71c2ba4eddc917a4d60a0da975177d964952479a8e24751d1d1737e84ffd3acfe902c7edf449d7144efbb49f2f38e7d5992ce6572e24e03afe09d5eb5319fa2f15699a9e6b9d319fbe8c397a4f47aba3df90039cdf8e392cce1e67e89e8c835611721602d5efcfaed61be2a83c4f556da8417e5086ce18525be6b36fc5183868d7ef5ac26b5254d7effdaddfbf9d061ebd3170c2cf71bddfef43737dbecfaacff1f3a134bc3107ad2107f7e79883767024a91d63d0bd3d91c41ac03aaa5363744efb437dbba2b45bda67dd60385d6029f72d093ffdbe0b4cf363d167d57ba561bf5e3107a614ca67713dbfbe02d5f1d31b6addfea57dabfd1f497528a3f31ec787f6f9396ea7efb3ea74fc3e871ce4d7768e93c47f6306ef1fd4ef5e775fe9643159d0aef1e3a0dddbb1e7f6741ae85324bb9f64f7f5bf2b923bf459f50fe66461430eec783b7c7350da7166e8b7afc79e3cde9eea43fbf6e875f2ddd742722b1ceeef117efafe7c416bad4c86b1acabe874b4e0846b05ee437da8057507f6c5e26e310ba401bafdabd32ded96ee9c8021bfc5f372d09dc0b78e9752159d8e3df9f75791cc3f7138438f64cd41f30cdfac3b3ed4e5c4c9bd23a00573fcc2459aa1affa2c91be9429a144aa9541a2b84ce080078439268364db25921520d711137d96418e7aeeb30c3293b5e87332c08891117248141061043410991951c40f39201fb07d9640b62451fe682a6937d7084ac228226020404adc7b93ca78c00707b2a4a18109061e02c8d005d263088921c01b6ac6d06084a52b7fbc60e442fa8795405ae8aa3e4b204e9d7cd937c3a6420c81c0077ce49c943b0cd10118330821ae2032571097118d24a47e50716a82a4c39826af3ca2f2a3341ad2c13e4b2323a8f2c8486904e5e532ba23b8ae99fd5d1a15f557691494e62373ceb9a7bec5443ff8fcfbd375c4e95f1f0df4babbe962fffd70bad0af731e7166a4e8f553f4fa08e838fa67efc95ff34c53c44554f6c852f6c04d95455232998bc7de322084b8c85c42f4c7fa813b1fd3fb6305b37b982b6627575d068fa8b962f6ec0ae2ae3e2dd0e9cfbb5d9d3a7101b942e0247fbdea4e8e09fa073aba0db91586eb7f5c3baeb5de1d6d4161c5ea0d41adb5e8de2cac7e713dc2b816dd5a8f2aadee5c2dc2ea08a314166be2e4bcd17f415f7567528ac32478b3da45d9692315a91ac9d59deea95e4069b42db4281a189a146d3ebdd11b3542959a6e4e372c7dfe04eaef317c0acdcc15d5a83bf9c17cd46b0b9f4f18f4a9535f39b5d69aec820a8569b5b48bad383dddac3869bdbb9bf7cd90e70341100443d58ad7dc9a1a5b69cdfc90946ae44d42e2bcc6a644d245c25fd7752279b33cbd809428c18a826ab936ddf5e28bb1ad147f26be1689837a7dd7cf0bace435d3ebdfdca913f7c4095be98956cb05ba2a54fd527195beaa53af7f63ab311ccaa01d2be5e09c1c5b69ce56e1cce873d529a594d25ac6ddd6f95a9c5a2ec77b2e97bf5c6e2a97cbe5722f207befbdf7be6dfef272b773b9a95c2e97cbdd6e4fb7dbed76dbdd17daf4aeebbaae03b3a57aa5e910b4b9a95c2ee7e572ddedf674bbdd6e180c5735254411b46289ee799ee77935c00ddadc540eccd95c2e777bba81377bbbddc40f8793c2e170385c0df80262c36abd4e5020c350ac8ea6dbb95c2e97bb3ddd6eb75ba65d1a8d7669389c140e87c3e16c36279bcd66b3b9c01790d7899c143faa006532994c866b352a2e87a3d16834da8d76bbdd6eb71ccdd1f1c6edb95aab814fc63a596bb1d8ad5050bdd695b6d786956a708de3da0ad754b8167ab86e2a97cbe572bd3eee2ced769f56f7a6bab7f0deecbde9e8ec7abbb48b746939b0277534cde1ea4e960a7116e7e13a9c4ecfa08dd66c75e773f29e043b9bcdf691f6c706556f244190959303fbd1d119f10c9ccc503905ce3a45a70a3b14058a8468e107d544ecd041080111e11ef9630ffb3f01269484fea00d2d498383807eb8849068265e7a0e0272b263f440c20b112a416c00893603c10b096a70026408121e7c083591f2a1449110b1238904848890a0048917a61ff0d19451164aaad1214c694d981c7de52cfee22cce672eec7986c98b162d4d8e840061a3a515ee520bb3b94310518ebc50c20d3b84c0454b5684f0cc8699ddb0956821530313241a10dc03a9b66f98e930012a85211d822042041e475308231c54cbb8a14f8616b8c4e001a5334d303253078e68fed8c3fe5fb699c2cc1e1f615f4c861c21a978861b1a024a32abfcc5599ccf58b8459c6942848f243903351152420aa2458a609a2a72d40509164aaad5ca183133918190dc0ad4001ec62859b17139e20546de4163184a82801194a67c381282192438c8070638042102040823647001030df19039fa696206ca072c5884a521bbc4e3c79ecd8c0833ebe10725344079267b189319a0a9c44708432fbb66689e31d9e2f1176771ae99dcc0a520a0a8d952095828bb081942822e38043d86c80b9e7dec61af6915ff2cc5307466f6b187fdaf6099fc6020fee22cced19400e8aae0a5ccb243181c1051699a1849024484da4e119a939a114172584a62caa8868209093c8090c814f128c11252d0069a74f99124ca0c1233a03084120f4c679c7ad48b66090f40b58a04931d484c410825b91dc43014c495304ca08c70cf2c7d99d54860822104a91b6c40227404d3cc3229f171c469044d3b8a84a890c54c08439cf3b736e8f9b1873dff1fca7009a1f64402d08f6bc4cbba1764f66135363ff6b0e7ff00234448a8d085888810189a26e99a29ccecff65f74b47972c19439484de3245d42546cc2e28b295b9201e18a304862ea25c1246974c72f8616bb8534b5c866aafdc2c533239f57891b9362534a84e7f2ad1600e1fdd73268b29ce1a9b74baae70f2fbd71d92d52b9db46b7c49ae1fa4a17ff239b2f44fd1e2b88fbb7e1f7f39a431de69431e9172fcf4e6bcc29003fbacba33df3e79de779ef75d2e479f42d1a83eff0409ee4e24bb19b87bef75a8819dd18d17a77b3046edb9d75083195b6f1df66bfad4b5ee5a3fc557ffd6e31e71348fae1d0a0a8783c2bf7138d8d73f5dffd641ffde4089dce58e55a22b61435e4eb7d41ddb672b8c416f5def9dcea666f7ecc75f136a30638f178fdb1b63d4aeffabfd85d524075f301906197450c3060682684698a8930b8720d8ed1738ebf7ecd70fd22da106b454a2799b83ac579f91c73bda7ae9b458755b256d31267ce9b34c82260954bf3e20e83469d24cf55aa7cc5aebf5491dfd9b61d5603e7d1fddebe3f0d19d067db2ebfa2da69fbf6a1d753ea5676a7df69aed7e3b835efd1ef31a9bb06e45efb1d89136b9da15f00e4e4bc1484c0a24e83ecb1490347d39df3bceaac54575fbf74bb78fa3faad4c4eb6aaa4b5d65a6badb5d6f6bb38670d5e71e7bc43191bbc5de779e0edbc241960685fb5baab95ad74057ee18af32cdd7ecdeae335a18c9aa06edfc666aa047859364cddfec70a65d83771ab52b7ffb9c21855e9a6dedc5c4b6fcc4c4dd5a09fa9a95c96a728a8a7a71b4da24a358a4491286d8a99eaf66fee4a49e51631b215712883e6a73d8f738b9de77dde17aa542b15c8bd558d8d4d091b90e59530d16ab95ae0ebc6bbb9b195dedc80ae9b1327704e8039283c14286ca5285080382852a4982005f8a2278ab65271c354a8a8a002f08a0088dd58cc561a1bc10f635c91825006ed7f45d84701a82294413b492bf82aa8c0565ac1be4ffb7d155b8533a3e791fca0e7cf6385ea7724e9cfa736ac8d004fbe59a74a27a9d967e9d4432532e79420215398acb5f74e7902a74485537e504d999286773d6a3c249b5c4209951295282515155a25fa2ca9707151917a51c9dd5049c204c862b158264c20e1804a392a1b0abe0215abcc3041153054ac2206050a142852a4a84282b1554481091360365554685101c2603058284354a122e4b127aaa0b1f20500af1aa3a295332b3aa200980022007049e7460a0b90befa2caf6cb9225543c2f7ba4d09fa01802942825430856948c5ab680a943ea38250f0c3d138a5081ee2943445df836802241e294a1042a1749413a5078e0a4827b804b9912a7a51c91db9a824715bfdde7baf14bf7d96558e948a58b6122bd06c6638aa0153c4ab88e1b1aa42022255d108a10942c02a403e2d3ebc2f423a2b41185939e3e3de7baf1daf1011e52b4084e02b4b45f78a9421f6ca96a47a45ca885e2133bb9244c77d96578e00404944f6c2dc5aeb7281bf863897d244a48fe0de9432fc033c07fee2c15be03770ec7443931e3817ce03275f045c861dffb04d43275f669daebd37c8ac2b72b4990c69db2c5be9815d20ba16852df7de7baf2b068ee35182827237f7594699f160afb5178a981e1d14227aecd78cd7f212dc34c45fdc6229429697b62bb3eab28187e1357d962888d08f10fab69d596ee0d8fdbe957ddd5e7109fc4e5c9abd60801f8aac1a03c5390bb0ffc3422f184ff67fb786316e17e9bc56857f86ee64063a86f17560b704fe1e3d10afba27dec92254f5c953e7a4f5aab6d73f915557d0de853c61ce33bc2afd2fea1eb9386174a2d7ed064371c298b6567b55f941915bf1eb57ccb13b1eaf5ee9a75ddb74ded5bce59b35ca982821d89d14235292ba945927771434db2ba534596beff5a6d09cb3d65b3ad0759de7d952ca18292a27255b2ba5a05939b5a0726ac16d29658793d38c65c2a994edd56ac5b9130d352a7c2f2ad4e688d630d569eddc40af6f6bfb8ab52c6489c2427f459141fbf0bd9caa180b85884bb7109424706d89ad498aed8a1da909160bb62ea58d662b59266c2cecbad3755de77d369c2da763f85e5128dd41b0aa48d64cf4b6edcf4ae742b745ef6dc1e01a3ccffbc089c2140a63a204f5578dbd6c25942f50a0fa2ca1dc7a9f2514a73e4b284a9dbcbd4239022508138e2c3c0dd1ebebb384323b41cc09663e5a9e9086890915218c31c6434b9b09948b9b543122b391bc7eb80b8a7fb61c7769e11ee0271405ed3ecb1368593efa75ee27b5273490525a2b96cf76efc5b829496fd15aebbda5565d3ccff3be0f4df9640aa462794251e7c301a400b1030f434284b0829b18f9e0ac21f82b04de046628779b7a284afa02d007d0a91635fe2fe3fff2acb5b6547405d589751aca38015e7a69bd7567459f4f816e6db54bdfac2a2d94d25acb26a6b2c90630fd55e99cf70814cf9ddc4ec4d0df95c4e0f54fb1b9650330e7c57c1653277372604d499db46047099b1a32d788ee30410a143938276e5eae960956099b1abe5285e0e775fa48a9a57cf253369129337fbacc807013202026490011f1ddbf98c9104318634ca66c6aa17b7d964d566e9eb87050e27a61e965c4a493cf6b70d249fe649e74f2391a289de49f06854ebeeb0baf7d964ea4944ea604fdc3ba3e4b27573af941e5922da512dccd09780853d4660243c42443c7f845663bf1e144840c152535660a4d9f4abba93a6179926de9f36bad069a1a548b029ba2a8642e18252954430400043316000020100c070462d15894864924ab0714000b718244664c301c4623812889711004511485180308410620428c310a419436b6ad51d025b063513221cee4b40336a8609362dcc6c5722a0cead13f1ac816290f7c939aac778e0389bca87ce8595b7ff813940a91ce052a78227c1955084b0d04ba2c46f020d010c6aa2c18a2c6bd6e58a15bc40f0448a7ea6e758cb77bac20a9aca1f571067189fb83ff8200bd183a95f83fb027f40f6eff2e1d20371d893b5206bc414ac0379112e046a272a5b6c349c3d9d72984de1b9320fbb3719eee36021c29c85591141ff83b2ee4593798ce444cd3485233ac6b6dc4dd59e71a420542435129b763bc442ddaf1d409ad3d60a90ca642c2d95ea62c000437c24ded06fa0046b71b02ee82e9612056f452778380e1d1b633daa06062bef8d062e64421ac34372b2ebbfa005cc7f69bb1a73643b066b6e5890a00e6d06b6b652dbbfbb9ea521828ea39ea78da44c75eb71fc0318f2d1e6ce0057b5ce0e821cd2ea6a141328b9953604e76f5e7e064b76036a58e036f01f6a180306e0fb81ba3a4e8e375abb034ba13814a4d599357fbcf7cfe161dca9f0e74e013a8fe6825009a022bb7ab184f2b819b9bc7ce3bfd4823c53576df97352ffcf5d951d87f581e3128be4c4918d418e915174bf1924ec2041ee7d2a3a818508de4e9d557b9879b89a61e3694694c1a1fe7d1acd36b6db39a3f5d6b3ad813227ebe15d9fde45d301ef4d1c60a866567c1310094eb6a8ebc4bd1dd7c1c81b62325fb911e7dfd71f8f36a4ea98db651223f5f1bcd10262fa8bff9a503eea7f090812c38dedc9f063f7ff4024f2800257eac934059941ffff448da621df7d8da45090a784af7a821322412cf87bfaf0f80e2d3838f14899f3dad45d537688c38d2149ea75281068e9185621a79e0620b7483fa4e6e841b9da1342c34a41925f235389f945040ef4db057e4ce35e7048f45d407b4cb5b0180054683d9724db279de648f42f3bc2faf5e9c8518fbb318040201f77bb3acd62f43bfb55f1c355383d740611c44bd6208056e1a001b8f44e22ce5a7bff589460df747bba8fc373998b4e1a235752827d81a718ef09b95a6b0a63dffe0fa9bee9aabb5dfa4fd09f537a6ff63a98dde448f2a65c384403cb10ca23e6fdc51e42025c27a16633948928e98a582043007df9768529a5d5df92f850802bf4c4ca285c3ab2055c57c8d5abb8cbb1a0de1400481a0863a96732c2f0f15324daf40ab5e2b6705bda4410061b38989b7390543d7e416ff5eb7bae5a0e39be0a860372fcb4cd33cd54b8714469349b4d8cf09f5545d31aa88920656b5a5fed8eb3f65232a8351a38188cca07554cc289a2e9bb4908217d3bd3ca9be4ac389ab2483886873e8d6e01d08d6131034747c3479774414694e108b92141388819676a6af305fa711814057317df1d51c451aed23ea28ae91bdd5f60934ddb01d4809752cd27efaaba64a2ce150761803ad1f4ddeaa46b35b6ca4cda5a9838197903ee19054a10590c0610d410d9a01c0a0f0c6a941234006c134a4469a80190cde20356804cc20b8c6d44c1ba00d8b0fc922c0001968ba29e3222237c025864b61a05fbf3739418d8d64dd712b3e4b4db6fc647b18e09a060006da9399877ac6a1f08ce6481b203614cec8724a0380c3c31898232d401c0ecb688e3401725838325e80c04d397a2abc808f964a0b0ee8260b2b25940b94ee7892b73ef2cda28e4ad25b17e55e5947454900858f6a6968124a2ed3dca570318566d9c3eb72f9b2e46c3739651ce1f01e7b7a0a5ad208abbc5b98fe8f6a325cdf76875fe298344c2e9ca6cf8f938442e824ab2a43940e9707c2c34417db30f97135efed9254339a461302f7dc1bd69bb0e4c45e153356879f4a47b39bf5954d8a0b0fff52473f7a65725198de87a37e152a8ccf0ecc673ccf4378bbf48f5ce3482260cf51f2dc91a53d2ddb2d619f67bd4d258753c60661db92f3bfe313798e7cd101f785e515c07e0eb0445a65418051460954fd011dacaba137d0b07a24ecb579b0662800135727294bdbf783eefcc81eab7f1729e7078d3177955c16bf0ad930d37b0fc6707a49507699a94565d2ebdab4042a9392181ff410d42ae5b53a20938deb785b84483466a46c6abfad73ef34cd27040c2ddd6a7489340ab94461f45a377609a4a6d83ae41f867f20475f649d2b3dd987e51b837403ec272afa664aac8fd6d5476addb2c903d352cb8308ca461f8ccb0090b86370fc1ad439c229c8c59a9fefc718beb4a57592ae9b251fde19eef753385948c669e91da9f65021198eb0c45afdc16c3a4e5dfd9189adba8b22ec82892af4b27a02c8d51fc4779c1c9b0d104ddd4000c1c5dc3c7f0f82f23d73314385c76ce57083988c4ab9e11c7f4535b4ecb7420c25c2f4d9425d1fe539526323d6cb98f951aec8f222e50b437875fdfac4bb308860681a8cfdeb4202c2b3ed5cb49482a2030b9f5477e14a4b48088a5c6d96678667df8b7f7394caa398814ab09781ca27bb2d33f1a653c6de127fb4fd494403552022d3fc047bbd4a98ac8744c6065693d6c4c424a88d90fd73091a6d9d67661f680f35dc3ffc9421be3cbd7b2032488c02e75884073ccca9186f2fec7a9e69356c081beb74a487df85112d635e78067a1acbc37a0ef2526433a976e91896899db1fa2fe407f7451a11c8c0be012c05e9d8777f143e1eea20f384fa25d8fc135acf467a043fb9cb55a6b566a08de1eb863aa09d30cff121797f24e674b61ab4889e5e83ed7a2366a945e0312e150e151c612798adf9cc3f214df8ca1a1378608b26e45345a6628661bdc9d8d26e3a0fe90801f4a12d2cd711e9677bc13039f24af4a80d86b62ed5486339f3160a505b7cf9ba54628129cd61c734639d9e23600207f30784b5089039e737d6dedefdb5eb7c7151841e35b73b22469b174bc393308ba85272df3bdeafbfd3b7420387c881be1f4f7896bcbb52509204c4512a184323f555e58d4cbde924027e46b8839f062ad2f7c8dcd3e2c53e7b080081aeb708a9aec033be89a9ce8fd9ada26581e3290fe00cb85045294ccf7c1f639cc5bba60b4beaef2dca15ee20ea2aa03e2e9db85534c980f63dc5da87d5c1fd5708f8743659bd1b4ab86f8f6cd82abcc518093fa9a87972d84fe2f851f4ea76202331de4bcadcfdf2c07d4f2c2d5eb081929482113f621fc213efa8e629118f98ee779c3c7c25463edd59ebc637db7f895c8a29b121f6956216873bd90d5056a1b230e758c88d1ed3423445063f8d559df4e31c0ae6e75c6e4491dc201f37eba84a74d84d968f8acb0cee5b1070f8786cf6ea8a2e4b082ba276fb1e0a8e89b2f6273d6a8d3ce8fd09640258aaa3e253c96712bc23a5619a00044fac221558d61441bd5c7e02497c40be28026b733c9dda332b8eb8fef4dd8c8f180f93e7e449c3423e30c71e04b9bc528d1e9001556b270249a65a7e103739d3833cf833fc6521e58256423d9eb43b7bc18ce7d020da91212f544da2eb8099df431c45b76b98d23d4d0e9f32196cd54bba83f808ed866b01f8c748cd02b554968e13a672f21847aaee8a5b0a95f2075ee2b4e186d0f892181faf939b35904fc8349b9e164bec270de8d22d715f52f133629dc5e604c72c0ecdd957d76675f75f0a2256f52f3fa8f335970204c0baaac5ef0c44ce9e4a7668b9f328a75baa5ae76db9ffc1a722bd602057a7ab524bab21d1326b034c1ce5ee84e4b4ac93cb2bd0546106b313502d00d09fc16e92d405757ece6d02ea8502fd3dddea4b134a76ac5b71020f3648206ddbaeb5d4baab449ccc3156ca86c96626ae16fa58c6e1d5b6c4e762add90d1c397c104d161267bb9606ce892fcaac85f1b57e10f33044444cfc8d14b537575a355dcd36934ba17465bf533336ac9d8b2f2f2932f126afa3cef6e2d28ae735a5b6bb3c7f794a82a98e75a17d611d88eeda87daa83bc292f9f2a8f09303bde8bcebcc27a3afa4205203f6dcada1f31955537fa26e427241672dbab8381e6cb12eedddc47578922fce6abe27ab83e64d9e04fbe2a0282afcd5dba04b1f3e4166bb90df07db0f65528ae23dd57cf3057af1df386f6126d115be1c4548c478bb278e359f16d0d9c3c22167ebfedd784bf6b3146dbe42a9aff17d863ebec19cdca6b7f3d989a8993f5098c2d30a156e7488bdf8427fd71f4a6820fde8c162276086cc7519f83de5f88ce4568962b138d841244154c2807f21911c113dc3695f34c5688e84f3cbfc6cf7f5a1d8bb3cf2949dd8d86fb031fec039c25df94131dafb0ab88f286264d455c5f53fb3f94da64c272a55da56ee32b8b4a47a26e24dcc4c3d858700b31daacd0e667d451697c4ed45c0b231b86520598d177969c8188c6ceaa175acab4ee680452eac51654c8a51ba385c29eca3790c3bfda5e7721ebc513b835464000d7286240d5ab0bb6909b4b752e0f1922e76bdf6e8cfc5ecaf19a84d8baea2196ba251a38c3266a4514618359231e3463362bc716a32e5204d9470420950225f9824295cd52a0e572828d5af74ad1d9872886af03523801bc51c1a75ec87f7a00df22645104932633aa838b8b582729f873a92e402e3e74ac84b72d55a01af8f063387580cc7228ccd5b2a62563a258d8bb458cf87d0c61709cb04d8bb06a0b415323fd8a0a7b5d78dd4719416111fd908210f40b90919cbf0164be0cdc715dfea002e4ab718c20119216a4f1008212ba75cc0e4cc384035de5e94df4a473c95cfe353291234f52e304fe18efdc76463878de238c50578124e99c1afdd840057f10847037095ceaf5a269e20b8c7a0289d16c6edd68d483e4b9fca8adc485564810869ab23a01ec91be56438d8fe22895ea68a9634631571ff1cc5a9990f7150dbd357e28d324754b6ddcab0683a5d3a057fcca3f811492f2c37fb567657c244399cda27de28145ba919fc2408630d0183bc1f294dcb1b256ca801df580becf1a56d89e092ea636d7137ad41aea8abfa7396be3c06272133a899338969f77300dafdb62422da2dae95efaf0582e3f313d94cc81cc9d43944985bd5273e9ee4e858307aeffee53d5a9cbf83fb61de33fe9ffc68872f901c70a80e0c48b2ae1773f1c39ef23e9b0a083fa9d2b25924bf09a2a2ff75feab39a35f128aac1bc8f214454b5910494ff39008a6e218405825176c6542a71e58f92c8a2d15a3ee980427197d9add7ed06422e534ec83e34adb93dc388d7468ba953711987a832611dbf18afe6fc03f9d0e4c605e3b1a18d9b2212aa700b01ba24153a75901686605cbab809df4968d9e5d060982362dd98ad27c49feceff87bbcccdd26ef4bfb4d5d4c22c37b9d7e4305fae8a361fb3113762e01ed59a275a0a74838951fff64ebcf9cc94aac516658afee005d73cfdf3801f9141ff3d816e63ef5d69f49fed7de4fca971cfcb4372c45e84e41b6d15d5640b72befed58c688230d5b31e88dabf23931c9b8cd1dbbf2a901ba70377150c02a011be6abc277e28639ffa6a378eb0e9585f85a919dd79598ab2a169afc140a69dd1f888f26f3e463009734685fe53fabe7641e3f067493dc0887a2172fc02cba3014369763c314238c500b82050f38d873a150f8acdf568ac5e533a770b280413dddfac66367be2903530082e71ec14bb99b912fa513b97be058cd648a1dad676f4f3440e0952442a3277450e5e1b0e2c87bbecdf7d1ed5b01498eb66ec356343c61c8a16aa5256bf1c5bdbe6ea3fb2804d83cfed3b113e975fe86ad4a2e64a2dd797f08fb82173d39bd97aed4fd171f3471cbeca9898db377c3b0306ae54eefda383998c001722376c33a22a449046aaf4248550464eae6508520690ece0681b341fa3d444a94516a647e5f414e7ae3b33f522026e79a61beeb239aa6ce7f4cc13c62ed4738bc863e5a49110c25d41dea4bd3b045966932a2569947ef122cb866138a0525fb37fdfeafb465f3cf580f5caf2f24f65256ce4022226c8d3479fdc73721e783142da1753304c0635a42be50b4b9d21ddeaa7071ed3a0eb8d7d836317db5e9893a45ea2aa5f8c4c1ef86584115ad12094cc66489796344a203b527049269263d337f6d12c4cf616b646d5f83734319de5082d0e0253476d3a8dcb1d702252c8dddf24a455d137bdb79a15df345fab8925f1a36f563b07273af77b2224818aa8235639b45945e242da16cb849666f06081afb205fb27712899002e238a426aaa44b4f973c6103412ea36bc330b2924547214eb4512cf75c6d8916b9a124acbbb2889137ece04cdbdd9dfccb83479ecf4a33d91f63aceff279fcc283f777e36f7b697fccf70eabce9246ffee970a877e458f1afe89825bb54815e5fa8ed322061bc4253ed9ab73b274817692a092a01d3a4cccfd27e8815c98121bed9249591313c63d9eacb9a01af7c56787334e947a8bdd17548b267295d3a692199ff450ed48fb272fa39becccb5dfc0cea4af8cf093ecd86dc7f8610abffe39ee54056a243d62428e3e0c370b9089449e18a88a444d2c0102753cd46031137495cf7b0c23fa94b6408125c678a42e4a91626dd8d6172830ddfbf7a46edcbd87dfce8c70f0044c1fd252471881291dd3a70cd14ecfedbb409612ff116f63c67e45d4693097c196994f6680c25a319524b258d520dd1c8e0439efee73ec0e5f7f3f1d3626ff7abf6e4648d196ecbefad7670f0e2294db25741ea7c248db46aa9c7c33690b996ec1b163f9c2d5361a4a3f96177f06919603ff5f869c799676ca78e37454e5e0fda8e44007d9ce452eb98c341937d2bec8f9a63a5bbda3b411894bb60e25096936ac24ea57fc919e387504d8e58f632e523f12526194bf1912f9ac15aa7e0abd6fe2510ad4d3bad180593aeeeb4e40056d5fcd6c67f8c54bc13ac375b162bc81107b0321e13e41946803b9b01d3231cab3393caefb23ad3bcbc2edc1d361ded0118424e1910e2fffee183774ebd5097fee8a6475d25e8104c1ecd3d7e5b37228186f518cfc6ad0ac971a0d562cef64fe887de7d30d814c876224505d73d693a3d34459b3f09c6ede904037ce49e3dc32b0a9b39c5fb189f1b656d24251339b0f79276119794ebe1ff6edcb8cf8b5c4b7518669977c5a3c3d4c7e936b24372b74b546b990c8c064b72a9ff4a07a14c3d9eaa68b71dd7c72078265ee92e4869e031a62a6e45e4df125a2cd4d7649c456ddc8d4e55220f7603f57c82b3d9282d6ee97edb22241932fb4eca3400a7cf0140e6114d69fdf6df23c1b6485fc427e96435ffa59eb3e1327ddca1d22f3c1e09377d7197dce12167c6ad79b27fbfb797780bc9b44d31753f0dda6bb41902adcc05dac296180c35f00da5c9f2639b6bcf61aa6b9d77ec60080c78b1b29ec30fadfa38646dc238aae2fbaa06846e1dcd9d9382af0dca0c83f3b511ab0ac3f88b9cb1d2bb3ffb9da1f89b3608154c4b5941f6ef20e056212ac52dc5bedf361c07d640a06fab9f086c2f5bb73df1874205e201df4ca99ef4c80676dda285907d241148df79a3e0b49cc196b91e19aac11126b6ca153055ec3f7731e3293ef435f6f1619327b54212f51adc359abcaf0229d160643d0ddb4178645b092e28409f632a3e64e523af30c3420d07fc99d63d5528915872d5ef5bc7b2e135faf57a1638ef983c7782be016e7fa370c68992bed6a7655a9569abf849d8d82184617654e9edfad59a2bd256e7571b29e8c39ca0ad76f8bab9d51b2b40aa4f30c70cb3dcc73d098431dd413b07ad7f7880e8d1622afd05eb78a4c5ba514db155f7bd72ebdf6cc329469d6ac927b2352b3951edb1a559dc606ca41798088a5e2fdeeadeb351b2237dba227a7f3bfa7439498d1ec451e97924488d6209dc954423fce58e4107683f32634cef5908140ff85bfa74e8faa6166719bf393497aba21a7c060731f1b7fcf6f9a9f950a5ab0bec02fcc6addfc230ab67e09ea61f5c278bbff318aba6fbd94f8ce06bce7a3133bef40b10b577c5269734f3c7d7218706a8a434bd81487a80145e3adb0ed8d7502c11331525adc3394a33712d7a9a5886bc567a3c7b5834901d0ab499f198080e76c55e45b7339769e2063c3127aede0d8d4238d7997c739bab0755eeb7cd7d8378746f3c50248908c7d0f8cfab1bc6728a166832e38bb44096e667c2de4ad1c5d2f4bdf50f8da5077ceb1f704f6f1ef22d7e68788d762628c3d2ccc318e466d008ae8a722b278d00f343497e671824a9b2bad7b0446b5195aef59f53f568e0e0e4a731dc1efac245095fa31fc10ab61e9a121f25ee16050fa9b4feee70a7f5f287994c6c86fbd218f11a3ee6a7e653fe7f80c700410c96e64b8d69eb375a5ab713fb925a8fb44dea3804ef1332f4d2634805ccd17fb93214c35b18bbdc16273e880679a3001d33adcd757f2a8ab4b771d5b00f57eec1a4822cebda8faecf85a490603814b3099fef73704996d088fbd550e3bbc671530687f7a8a7b830ff34ccf1d2b575756336fcba5050b20e16f27f8d97507e627a5a30a9379c57b0f619e11ed0dc761f776487955a2d13d7043c0a23d3c22dfb11f5d98a23bf4f3de8ab018902cbddcaf0b6e1e1e98139a01c5f9132b9cf5b792a101cfefea113197ade841482828654838babf6f318f27f82a786fd0aa350cb48e270b67e04df771c93087623eb13ec6c3afe85cad6db39305b3c92bfbf92d4a4ff20f160de56bdbb8ed537b2be77cf6485b7d25e30881c33997a3bcc7aa38c462d755384333a846ea8c9afcc0923054612c3a037e8b1d809b47076f4deaf6997b15531b19d2a306594f314372f36b9f762f59b359f02cce4806889a099c6dfbc3a06e989377d5e8cf654f5286f5ffa9a3e8e886542bfd7a16244c1ca5bb467fb1a50c301b687284cea20c0be205ceaf66de6b358e43e7a8dec0cf89f23ba096bc401ab37c648736bc0393a257cd6495a8931a25014135c940b9098887824faf77451984b626b2f8179f993c23c04aecfaea14d0e8a0eb58f6d7d0010485ea704850b4e3be0aec9150737d4d01af39c5a2790b473b87cb0c1cb38a2cd9413dae2e15b71b9e2077d1e49dfd38d6c2b87773481a8bb2c78419b38d73849f91f228859ffc636ae9100234df982a2500055146c46d31f5726992807ce6f1f654f06ffa63049bab58281349bc6f0821ca2ef0f8a309a2d2a5aee07315234b22e07ac4a7915cc130aac012bd301d226596e271e2be88afb928bd2b5e692ff3be6872d1d5e7b314f6b96fabea8a74f03e170aa2357a24282606ae8e3fd68d3fe1c8be1379c58e27771f8468c4e9be94532ea80383d3128a5ad2124ca42ada76be390911f5092072761bbe1be8497113e920eb03be697fb9021bc7b3b713e963433eecd4da8c52070ddacba99f885ce1ce92c53ea485937b460f17318bbe09f77c1241c715c5cc72747f3de426c0041fe19afc12734d0afc728d1c6ecb1fae4e7c9580f563f86a9c07dd6de8e08794d72a8a7a64446935a7cff093526eeebdd13242fdb9751509715d81cd981524143c27592deeb0bbab226d24dcf6b9d1a5215a89139c7e70e916ae6954cc338cdfd835a1e3a1da02e7415e30184d32dcc5710355f3a153e56d04e915440aacfc9e3193f27f689782f4c19c8b860dc5c8b37bb1e6715dfd51ada4a693217dee6d1d39aa72618c115df8fba303ba99c6682405c0cad63d3098ba72e4e6e12dc12a04c8f3c695500051b5909cbc088271e39310131e330a635da59b0e40162c572dbf216d3534e391ea930c954a1b6fe8225a36f07e73617c1c19b3e2da1762ba5504378d13e7711fba69e3461bb1b2a13dc728bae99d91d854cfd3d51848710d2ec62d8539f15142a72a9164e76ee42eb6c1a65db080734de3a906e3246418431d36d05125e593283f1464f2e59d0f9525a035dd3105dd73329cef5fe046545d828625499a2d5c3eb134348264585dcbdb39e1c11975c6ec501b2be4d26f7589db53e60cbebf4210aebe7e6c0f38f7ba246d141d4630e77eac052b0f7436df966beee80489038d60a0660342479cbaf3fa410eb92245aec80bf3d986cef97dbbdc4149a9d2840262fe4baf20379dfcacca254ffa997a47895e615ea38efb3e94cbebba3284a512a7141d2068844639402991c43a54cbb0991b7a1aaadf3521c5bd4cface1b6f2830cf10159676c185ddf3a878861adce148665369b833565ddd8b3943a9c164bbebd54b3d554ba760a0ba2a1612f64e7beef751df7538ffcf263854999cf394475860d208a9f8df90f35eac9d1834abe2d4ac19db8736f3a1099d0d3692dbddfdb0e7fef1be0116a03177cbc910d2d9cc3a9b5957f4937ff6f50c1bbdc90bdc3b4418c3070baa5e165f6f9d0d1e3ab1ea8e933100423cdcf5f4b5cdb1c30cb476039d6bfce8c6cdbce67665f21a756f2b79179ea751d6b80cd17300d004e0d8a8fca33578b079ecc46a2d11f71f3a2378e0a453267f00226fb1b3c9dcc378eaa5e9a7ea85bb4dd7483b8da4cd820e6a8f7b28e2302b9f16743e2be54fbc1a7e506a2f02755bc449db582141e61a726548f93cb0ad8543fe1c9581c0f9d9ddaa519284803afc610a59a4f6fe008e2712e659119d650e72d0768296da245e6a5cb7e85853e0ac8020733923a02db95fdb159c825e950d625a8255a20c20ec6d4d8cd033d3e7b2e81b08146dbc47e9253ff7063db43d0c11a08e01a68addfd0a81d0aa6ef48cce6408a9ef6df612144dda7e120a1054a43bd70f2f9502556aa73754f1455d64ee9ce985d119142db0466dc2b5f76e6e86b96c90e042c967b109abbaca83cdf2cd5cc4d6969d38726079c0a01dc765cb6692defb609f98a3b5c669af7d12d2c0fde363e6e914149fe15724b58f02822f674669ef4e84d06100dca8aac8e0ef54f2f2f4fb67953c76d4434ec0c8d16eb0b8d0e29740d09d4fcded02161bf9c1c89d41a9001c9d09c79150209a523443756de4b7f276ee61f510639600622509724edc2c50ee49443df901c43dc73cc636277b2a3584112e4090a0e386803ffaaf1ec6d632089c710a76320844448f5caee18809b94fe4540e3041e681db88959a8ba503196a61dd75031d6034766c56115d8ced6329aac6a4f416de4b1d3156e771c0a809da9d2da602e0455cf5e820b3118169cf3606f27611d955dbbf8368c5f8e8f922995f136094b7e050a63146c7c35d7f1122d490e3d30e9eb10a42f73b4aa1ba13610bde6338ad2b65833f526347474fb42d64d0ec24dd0204faaebf6361957bfe98eacd2e0b4670460f7241d30701d5a521d8d3245deb2c48c549cafe3b1e33fab0e593f4830b169c8b6af2a5a2c7a30bd151b629c100900520483325ca889185df5654be33cb0a69744a00e93e7e0c6f4ff3f6bc2c276d65ea4d2b769bd147e79950dfe34fe7604e4bcdf503a37d8312702aebba5cc5b9dd2f394e85b6bc6858236d3dd42f473383e5f11e614dc298d4a4cd5153398a669a3572e061d4fd6fcadb8ae059c5509b6de00b5d3da7838be10783835d7700b9e598dc3b8728dabb9fa78839916c37da849d4677a80884489a638409a112f92bfafe451665ecf8ba21595d06974bd7eb6df88cd512dda30805925ec749c3525d04bba403df8c7b99143a1992cfb432b9813412aa54183ab2ed2f7d54e3ca9b5806d947b30c58e52bf163505371e023b961d82e8e146c18aeed25057eb8c88abf309ec2b6d7b2cc00e0626a7c4b9cd51f871a35d51c492faa006793461b69a13f322e964fa575528638245340fc828073fd820af2db37ac27feb36cfecfe9f7879d2a0bf03eb9863dc35cbe9288b7e782f2d3f0dc556203489b6fb543c6f4122680f52119a981dfdde60b8c6285f37e12c97ab7a4c5ba34ab0402aa3c783b07504e286424dcba9836ced3e31ad907be1df4b08b9183694d2e0a5bb2153c0e6ce60a521a561690d1af9f0aea7709fe1beebe7594e790cddb5637a1d8998cb4a4101cb44165593bcd31d24b1e218ffc9456a19f8b8937994873421af33499e25b59a9e1fe0c1b195e3c2c3ae58b97b969b8856e7df164ab3cc03bbbe10709ebe5cdce875dc04795975f474d39a282ba2a720028c61cab2f40381150abcc17f91bda7112640e66045611d02bb357946f9d0d1ba421c987c1fd3549e37180a184da41572e470aa65f1a2b5b5fcfb2af33e0aa753559dca6df5e1ac63fe7a63d1a6314d4d16650d5701e552aed064a21a979fdd003987f2105ea6793ceedb2c390b841f4e275d421f37b14385eda0d324e80a45552b703fb04fec19f01a6d5475f89dc56aa2959b9cf12ca0b8bcd7505275e36ab8d3bd4f8fdcf5b8e9b6080d00226697c0ba9ebc5ccd239992bf114a725d98319d65605fa93c527b56a97b4f078c8709157d3944490819060cce34b9a676e19bd8d58143c06df807328a89b14088e21cc85bb1bb4e6f7db32d4902ab259e225c2200c577e2f42ad7492c3c8db5b312dc4670991ee7238b8ce6649d63892cde94b15b91cc831e40a3ab924c5122654504e9069b85ed03eac3a11c7e810202acaabf584831b5ae481027264de469ea36eeec4062f747080d6dec9ed170d06f343cf94ed59dc17fdc76b91978b6f87eb4a512a339f2fb8dfd5a8df587707802237412d2126b497ff31f242f7fa9a4bb187b7db5ab5e724c298fd869404f317f87786759286012eac6a0e6d2640f29d8e4a8494148a5907ee56b60b63fee1f5470e20ed2c635a67f8875dea72fd4e38804c3a087048b87582f3c43f711d5223c2d9a5817eafc25b6e96500a6b6eddf3fb904494f44eb0c9c50e299b76979af52cd0e75511e760c8014332b7685f783cbe0be9b8e0e16084e222b969c27e621e2d770a8da56902499a18a0e9562937f94a6637da9d8f8d492136dc0378bf61040e67b034659f33281e3191fa96068f358e540fa83383e8bee84c48d8866eac904996aa7cacd5d1540806c8a0fb84bd61ace1fb3af58527752dd8f9374808a4548264d02fe624521e49122f96ab8b6396dd45364948d3e13c46c6b8bca6538accb5afc1da306c801724a3973925d6d3ed56c9311793f40f90c80963411a59ebf0e230736e7aa8632b8b41326dc952a6dc667d95d160ecf18fe9d704a2aa3c62a90c2de353c29588b5f7e6cc69bdf0029875c79764e74c7f112864d59d713828c2ba14203e3215069d052ff3bd204ca44d59799e6403a5944ecc4ea6831248c3aff6f4fabf00f4755cba078bbacb745e913d9b19a8863b60669db0e2aca198b04a7652277bfa7fd2b64e2e8fa800786ba5bd2b78af6e18d397f8d34c75737e7b91a169ea5cbc156f78808890b4f1774b1729e3071fea4f58a4788bb983ea81605dab84998764ba5c3c1e12f618a77fc66fd8fff4ce93738f0a54bd8348e5f431888546f7c9d32dd01f1af325450ee8cf8f3a52c7f72e47188ae92048a5835377848fc05e71f8651790d4d894dc24aac7d4a0946d36d76683a96f3731eea2654f4c38210dd2fa6ff86054ff6befee895e630f0e393d06088170a1f0fce036158330f8223e021e33ec7a40de8e6b92c5d8cfe42c68f546ef1fbcd966433f6b9d78b003995e3157ed196814cb1a7c16995bc458f5e513fd430b5ffcc295ff704388cadaf0fee2dd0ef69f8879ff024c7a5f9d8ae294cc0bc63d1068081ed99fdf253eab414545ba10d096564b86b05a518ac44e2f37e1fecb3a80e359e93d1b8115386254ed0e0e3cb802251a650913f7620dba781f492a0fb69e2050c5351a7495616dd1b9fdd4ddf3ca1468905f28b1b6e6c26fc0ad62f4c6b676662fba5ea240f9067bc704a44035549dc2d5756f91249d9769df444031ddf1511982884b4bf93cbd2e478e7423128dc76885341266bdadb3aea865af00669cd18d526d744562e286ddd9674d5b3ee3d1fb0e9c892dedf0b9e73b3e5555943231bf8bcc2525fd8846761f01babc63e62ee6f5024a27762328be4407386b09ad643f7c86cdb72c832ce3403139e012e2533ced5184c6a69721f638fe8609eb21e5a967204e99a74604e98c857c48b022d70ea6b3dc8750beda1eeccf99b1e236c53a168f670567e19b4d355eced5a6691723ec8d05798d2d0a5e804ce546dcbd1981dad1a0b0d59584f1c44020cc9ddcad9ac2d64ea4556dd8b5872fe31279c8700883458de1dc55b2ed70bf067a93f6be8c5f6200c49d94192fb86d8716742205f1c8252da02f34eead8922f969f94fd4fad8f11a5747fc00056b902f5b3461ea31fd58726550b11de9141248d55b544427a2911348e48e946791cda31258374ec101f6f20521d4f8ff75ba2283c8663c930deae0758e6411435f35d52a734fd25ed17e307699183c8f4f1c7a2497e288a024335399630b623b89477696f651c210cbc24149106008486fe123047fb4149d0f622027d295ce0802e1d91b1cdae9345bc26d487d77918f90a87d1bab9a472abface7936c5ca2f78ae1a52dec163213a2ace2e8fe6c38667df069c180875a068ad1c0241fe2c5c580065272e59a69ffff1ddad746a17c40c004d75ad5f01a6fff86ec692c04f62be0f9330c7dd5184cb7a16195c42a60af38796b5bac47900ebf5850e776504b8d9b512993c70e1bc8f2e1355e05041f8c29134e0fca31203c73eba854cd562fbbd9092267c7410a5a0d7e96b5a7a128b38182faf24adc9426472d76ef42dd1a85336d90c1015a5745bb5bde524e6750e75a964bc15856cc2bb93feceaa004ad3b52bd81de54fae0a0ce3a773812575532ac3389a4bf6e4626341154acc01f7f06a94d753d0627418c313e656d2c03842fe11bec3ff88787862b96f8dd6f46549841ee120a9e32bdf5d12b45e47780a0ff8021a3e48593d1415ade4c126e839a09e1639da9b7236dec7fe0249df78f5273676add6d9b7b8bc2fb8f8a19c3703c57837dda4e4c7bd711155e744c283516b5f71a3ea1927a1e296572b5d632136757528a19ea5eeb015728f94f322117ca6e308511f69693d3d8fe05710c401d51680f89e092cf49a551978b71917e274d60e35e26fab0abacc93e629bc0d59ed281a99771de9df23a5fc9184abb33987fbbb9f1b82d469cad82786e30f2d590519986e3440c72e21680c7889fc6487cdd0ea2a352087ef1cfa9e29ca81ef536f81713a77d41cdabd8c0875d401bd3dee87f472d7fe200acf31d75e646bd8b14a02481f308f4080508bb4f6616073df1ae7c294375499225b5e1df024082b7fe4fcdd367a1cede83cb613fd5f1d6bf420076bfd1e2684ffcb0fa350692df0e2076edc0c095e637a30a92a4f26cfca29504cd29469809ce3573826a22137cfe392bed12d0df48eebddd5458edd18153395e1105158714a01826077f4d1b5cdaa642ad1cadea32faa66af3b47a36f6d98cd911c8476baf3ed289fc2001b5afd78a5c3f7262d4aab831398c4897d2e547ebb9064b712d1d02412b332db413b9a31ff63a8f887bde8a2f51bdf60509d39b3880a0c27474cdafba7e718ed7dfe7ebd15537b3291f13be5f6aa8fd002d178ef5f42310c693442fc180216e4aed09d2c312547e296d0e204eada88a6016862cd0f23ce8c604fdd9ea8b68e57ce2aac772058fd4c44a7fd283c1703aa6a82351afc58567e9ebb36e0e3fd7a2e658332e4b33f12caf25db11ec7cde9626696502fefd86d01d335b0dc46ddd5541c0807735d576f7e1cf462d00bf4f2cb1fd72fca2d6e276e5e2aeb05d262a47537c4997b1ca21ef4ce03b02c6c878a4f2bf3a9bc6d3a0c6fa833660256f555c73525c4f93f3399252f5e713b5407b4a3db80bc31030c58936a63fd9071d0b5b1229d23925f2a8c3fcef63688cc509d1dab7dda206644504fa60e4eafa87fb3d39237af408093bdc083153eccf71f1bf50d81e3f09dfee6380689cf37c330207670dae35f2ce3eaaf84a9a1473650a48ffea36e930fbf4eed38b2ea7399e213dc9e702fa00ab151c5a418759311416620b5c8e2043c035b0c7164983cb1a00a23bf3454259ca2fedd0847898d6172fd1c319d010f90475b70c4ed062c9ff05b979fa22a0307fb508e9112e4668c6b825721c0320b457103cb9e3256a7e44d5d3934ec514c2181ab8ce1a2cc729d620937544337bc1825ea4c2fe180dd16336542373fb33a939efa84e53982aa9a842944371b60c2bb5f7e4cd8bdebb44d48f1ceca8f8b4cea39f9ac436822d149463bc3b3263b89ade3c36fe0b54be593be154427447dedea77dc74bcedf877ca72fbe6cb16d90771cebbf1c711eaa5488713b21465e8bda53123f34ea1b633064168f08c73f9a5ca7ec12c413a6fd75181bfc2e217726c02aad7913b39b87cbd80bdedc97ab94065aeb1d2ae6df41359a70a8a259570eff7bbef305b86dd5e57fc0ab2643c07be5d84efb4e6e3fd8dc2e9517d60f21a98a99be38286347c9ac8ab6c018aab993acb4e00932311657279532e091dc5d3ffd97e63614321af9697e965f749b5862e3d9b29eae84736cc756ca523b927700b92ff6cd8271658ecd17d7802ff8bef3cd493b04c8f05978b25651f5156e5b86dab823c3d790d24beded347b7bbb0aede3edb76d7d841ca0e7b22b11e8baaeb7733b42c579e5ed3d37dcdd2554bd4d90b9280fc9458c380bf7a799036c6277cb5577d85ecafb86158a4d373cbe1c32b51485cd218079c49d7a919a0ba8e178ae9c589db221c92da12630825c9eab6d497d934d4e037367a432f1003d4ba9a6271718a8fc117d574da6b904b6e8418aabd9ad360df736e084ca546f2b97f31308500a07a76647a623e77104410481862820f8634ecf2a25fd6747b5544abb7c961d88e504acdd61a636d988f4d07ae5274d4f0babfa3ec2b178f30b163d6db928faae715de612218e62b3819b7b6ac06e0155edac76165267a51a07c1d9fc21670e2e69ea8686b671c1837544c12b99dff6dbc8146512a067219ec57b091fc5d8a53c5235c1dbb19f2f636f6c3e31118171c0fa4bda172a7884962d54fb9737bd7b7cfafd7d20ec14b7942c4439aec67b5de5fc85c729a8d26bfb33c3eda85e128ee74eab1313adf5331a518a87e7861e1749372ec41a89139f319c5a29f1f3f9fb83e2908054bb0fbd327d3aa18b54aa00f05eded7cf43b47c1aab63f072eb56b1cb50bacae09cb62c4766b07374681863ab02609df5c235eee0b18259ce22a16ef1f1831cbfa449af10285526c535556b6a765145302ba6f68af2c72bb1867f732283f168eb065aa405b1310156db1834aa67b602e815ef330cd902f6a3d2490c8c85ce8b98834f80331d81a4c1d64ec215b83b31338973ed074ff23536ac5b73d83279e9114e0acce538224ed0c3a1b280172d201a4911debc2a160a5aa3082c361290f3f599507dd2fb951e649d5f925aa52550e51e335dc0f91ccdc99cd3c5eff6176ed61d914968362667f872cff22884552c267b4c8f0ec85ff9b0f23516803d36d20f4e4fc7fa8a0c349a00f4583a8e4b721fe5ae85a3958690f09965a4205d7aaa65efc64c066403be8ee4a59ae493f73abac5a47851259f1e6e3246c0e6372c2a5944cb646da78a3e14a07a0513e05885192522bbfb5834aa9ffe1190152579ca5c3ba470610bf069934c905d84db413fb2b1b594a4997d2bb35818cacca6d24a0e91e6dc4ccef7b5117e30ac956beb897a58122f8ce076a34286749cb8ee64fddff09a27a2071937f9e78a21dd59fcd9d20ea39de6c3791b5281bab7062469c4c35888261bd0ee22d0d97afece00c4e5b484f1a225a369adf6e7587621204dfa75c871c7687003029c12b5472de8076b89f03a316ec52805b5642bc2c592bc0818ea10ab7f0a549428976d89eac7228d7b69fafb911f951bbaa22330665bca470eace85b910a1ae2095949bd16e05dc1cd27049a55c87f1965f62b2809de7cc458d4cee60ebc285756585b647cb8bdd3dd0309b824c4969a15082ee50f5c632a3ca57427feab0d87ccf0951e8cd57bcd88f4e266eb4e71e41236dfa2062f14019761aa4eb6287c14d406a08df039e6b6a036af968f075e67ca2e233b1be29d68349bef5c8e3c63e9a1e5e36127d9c6488481524956ece963ce24181b44303eea928a0e2d5da5bd4a3e2f3cfaa6f3cc506b74c1c57266340c5df20a3584d54ed6025b97bf460fb5c939362fab9c8688b7b44e4f66714c77f8254a026d876c7f4637e091aa087ebee456848848bc8141b6e293a491c3ecd0c8f396175071923fbea4eed654def3b7af314b82758fed87b085ede1b4e48809c8f18486877905df415a3238f049803c21c2bcada082cca26eae7d0a0bcbc944e31880e0a345103c627c1edcf314c9d78aa43cf33fad238eb88e2fadab33850f1b353e4c2a194c13d116539d14d2636924f5cde81e37bcf723bd24ae7e6d3ba33352af8e5496ee2c3d6cb3abd4788c813261661090f3c85a3fcdceaf0f816938422d3b40d93e7151e94d78aac18e4057717dc1b447dedd3d42eb89b19407282793d625bdb1aaad4862dd31d0602883c183aa2f02cfe4da3b2ce088a1279bbf3edbe758c498a6c5393646cabca3a02ee96e74fdea630159e60be3ffe114429c21ce6a311b8e1f2614e1deef074880012080b40130b41138da0d1ba1fb23e6efb839a9d6b3731aa62a414ae3f867770df88b772b772980d07176c2912436a64f996582041b52766431da518afee859ad03bc6ef5c4a748d4f893ddcd380d6a561110bcb21f8ecd68d86b8e714618a24fb289b57ba4fef114e75db2e789350a482d609fbd1948df74fcee2e44f8b79d1c10f99c3c74491ccbc54427410e897bc2014f63e9e16f5fb26aaa4188ad91a372663edc02a8d3b6cf3ad2072c853873a6f51a8e4dbc4a07ed6d111be1746876e9eb041fd1ec9f314aae299247cee8b46a9e2c0f18f2e5de8c24b29fc4527dc8c86d5aa828b19928753452a64267cffd2d804c2e60234abba66b0caa6ce427022696b17c34b4d9b450946ab861aadd5b2ba1100e76008af97a175460fe1186b3aa8db52a9ae5ca8cab82c60db8ecbd35cd9a3ecf6ca0f25d8a7fbea16965ac23db5b33d793b1632959832fc31fc436c7cb8bb110f5dc1dd5569b87973923fc63977ef1f6b1b692026d7b8c913df4a434a6f4caad83cc06fb45067ac53d0d17e1f0b0866ee700eff35950b4fb562665ff4424fa5bf6da5754d378cc91de8d7f0ba338b2df9ba4e1ab8e5f70fba80850f96d91caf291a574f21f1693a3b35b7323e99a13fd8103a14c44aa4ff2c71ba4aabffb41ed3d096619d50673a132f2488573f73f5529424f6b368007572eb0bcf218cfeb9371266bf15d3047623a878ca4e30f62532e015831bdb88e1f92fda20480378709649c9c1c5a3386614b95749ea09318a0165b0d465a09e93b8ebc143615a5671832a64ed36a57be0c910b88744f43c94f9a75652bb0364dfbf20dfd32dad19da345f905a3a7bd123476523b34cf409fcae9c08daf822395fd1d8e8081a73a2b7c9a0c228b96125552aa1c158e23f704504da96ca65ae09ff16902c57e360136d53f74dd4b24233c72769a152e1a0dcad87b09aaa16ecf8cc8515bf741da9c2d50a016c13dad15ae86d44b5144cca34608eed800a9543c8fb0e8709d95a3cfdb6a9b0237fa3355e2aba010e8a4988cac89c51bef9aa5fe5c86f56180b785531d7c9bc976026588380cd5a812d9eeaeb643782a8b0d2393e76c063106304d1e758292291a2d0f8af002a6787390450e70a4094bfa7198a3d4b8d586fea8604bbac4f12849d8096e43ec9a7551cfea64eba19e415cd2c02ed63e27d6876819b73f98024cacb25ba98ce8559edcbd7388a6623859e07e3c2d1bfab8555ba6295dd66a4149b0d1c6888a9252b02b72681efa39c2404f9982d6eb4908676775848a3f262e70098f275a50987cd6c65587628e9b195e078f3a7c9dd5b8ae88c45fc07747f8e1acac6dfb5a16346c63e71a14e7d16180e3dc890c51dcc34baa9525e9496616dbc8815a59110ed274e4f269367e46673d486b35a8416664850c4332483dbd39f77d5f8849fb1b9628f34d02c7b92eb872de6ee9787340456785c036a7f7d2430698900714a2749a8766600aa217d7e10fd8802dedc39aeb910f4e779da9553f29b96521b466e7809129422f7aec9888bc8545657dd5e93e64a5c107de45017ee6b32d38459ec5d56e09b9459132af03484ff615abf175e0b4a50ef4ea737f005e9315b86c844276817cc7612d1d1de40ca8965ce4ac43ecfd794f46377a8526b5b84250f16aeeee99ad9487bf5b1b39e6d7ebe361099b0f4a4131fe46a92763486bbf2ecdc6d2b608e9148b70ead89ca27377dd0300bec56729857e78bbed9286b6d5af596dd9b38adc40cc053c46a66e3b60c9dee092d76b28b9edab3416d5e2e82ff535005aeca7a87db3dac90906901f079338a8a5c3ec83499121fd5b37d8893304a8adf1a580b9a6d5e99e9a414ccbfaf53a10fe9d14e2a425cbeec27e83505c7c3ba1223064d103e59e7171b9e12ea862f4878ded48f7e03081627195ba41c023661aca5005b8f041e61b3eb9c159a0d84803871fddc77a8b94bf3adae8f6c4e21f6e04b78f831a294600af897ce24bac77c0c8aabaa8aa414703cc3fd95ba097aac1677bec95e22a5e3cd5d1448172dbc1d013942091f06b96477873cb4cf4a0ca92817ca5904d90b6655ac6a0598fb7ad1f61ed610d746b4eccd16e7153d0fdd3b63c666a008986345c65fbe80fa3882b3537d17d65c71c0eaea90c79d153ae915ad8e0ad94e9d5fd70707d1050d0cec205ccd92bf1d50faecbbbd69e4ee74751c0fe59fcd4c947ff9f6c9088d544b9d1ddcf224c0551db3c9a52c3349cf5097a200fb7da373141cceefa25eff940d9867b3d1186cb516dd4e2d47c9a4674b69fd28f032c436ee97c03520bd8ab777d785af8ef3898b3d89fe0dba29470d021dc554d9517849ce2ed16d9182c6fd037ebff14b708c9697d762ba1c4232ee0b60ac092e0888ea9ea63778b57f86688fd14c29486707147ae6cfae2bff8e68614eb2e940a54b5b67dd7a7609d9c9072eb2ae8264033e6d868cb79e7f4300b7d41b9430d438f2bcac567a9edeab08968388aa77ab97f253df6fabaf40ebda1b101c5c0af10cb537937ce9e2ca8b60bc656d18c52791dcb2898e85169cfa7520b63c9fdf7b6e61b30493bd48b90eb350d4b0b2e9ff70a32e1abcb9aa86a03129fe236cda4caba66901429ecda21dbac4a7fb64d2c88a31d60db4c92f06ab97dc05a6e08c0c69a9596afe41ceabbe2e7cf4f948db5b707013f524241841f78b132f9c90e3a8cf76c7772b107210009c2ae65a455320342e5620de42dad83e8180403f957b34c6e0c64fd0d8154e09f0c10cf4426fa5e3c1f48f0addb6065b74dc6a69394ed0a20e8178657cb7fb63936d4c2e9a6854f4b4dd97b3eb4eacf9dc8d557a25a3f8a36e4c83f76091350b9012e0859275269e745b568bfaa6211b653db511cf0cb676826714a0a50fbfea8725c827593ce0d81c892dc959bf1ee905d8e1cf81088295c9b3036946317654e1020a132c4f51cbc65b02f3e4071cb7329ed53cd6403e8c1e29d70c2222c9325fcaa8f498722963e8f3be3707b94b97457c2ebb091418f2bb7919b960f2ad639535018bfb3fa638ebf2118a14c3e941b8d207150280cb382f97a57ea69f29b9420c91b494d8d13634a458f010991810de5bc021f0ca0d9cb055360b24c22934309cc92b0e5a2a7ac2f9a82d6d18532eb4753673dcddbcc974bee701cade844020732f8342ced812a81fe4500a13e9672704404346b81598d771e766389eb9b7a5fa08db993d746f118b4fab48240bf29ce13b0ae9cfedee7a4dbc55fb099f15b42e652cb5fb61a349d159281e0b16f0fc3cff260e7fc7e2f5de1a2d1556f757be69963d3356c780bcca9eaa1ba99afda4df2b1f447592949aa12712d84905aba54b44f122af713f4c88085ee4a062f370d6f3f25f14325dceb8a9600d4d00442158e1670fa5f27dac5d65d469a79dda85a79f5686526a7999373335f6dd909f02c68a253e6aec71298ac7cefd1a9343e52bd1ba3111cbcbb5e7bdc54c87a09b793227ef9c26a82dd89af3880f57e5805dfd6b8dff79f8682dc892fc4c8701c32d7710535528bb3c12d31a7139da8fe7351bc33b17602234400bff23d1722327c315a21cf652a7d9995d27d13717b4d5fdac50f416fcbfd5d9af190094f1e608dc2674bb7807ff89bfeb72cfd3814c7c9aa0aec6a481a1745f131e12be2e1a755150c4ed605781329ec4a8440ff0089efeb20c24464365af4979d28a6736aea7713482db60bf4f86e8c7d71113026ef0f47320e3db61ccb89e327ef5aabe5d08e1cf1c712263ecda5bc7b2284ee55110c4716b216e293531ba9b06e2a445fed0b28713f3f29933751c568bf9e8482f4d1f5f5472681a6164bdbc92d9a697f0009297b49770cc84946dc56c28bf9dbe5c209314faf9917c0035cecd239af5c73a5280c4014ff21efe7f8de987b2852be199a7796faa61ce3c8f6c4e6c2680b5207dc9064738a7086c00d5f8ec506189efd7254f5195287bd8169b3faaca5c8f74a2a8c0572fea3dc33bb0029952a2b7fb0a6fb4ad7310940e80701ee1953fe435475d7240be7df8c150ce5c4dc021add3c6d0546caa7bfceff53782e8ea5faedbe48f6f8e9bd6f15b89082c51b3ac5e088ec8211182e738e46a4c4fa83b0c21c5a27f4ab7825d09ba552d73b1d5658b011add15264c3c13e6a43fe8378a2d3c370c9a17dc9b90f63887dab51e5cc9d61af752685b65752f5734e07f5a3238062c7cc9a99f542713b76a45dd7141dfe4b3e4e559971b2cb40bfb57e4978c8e2107779a950050090cd1e32e6013ec60c4615667e9fd1a7c743997e6bc0c8f92dfa0a7fac4c9fc531b0b1865ce534eca83d8fc8a85b95758d64f38b8fb7f404bd6406d3885a5b2bc84fca0ad63ce69b6e7ed567ff3ccaa183fea6408b98ccec5e84f0cd2cc70414e8178310a3e9df6b8e42b12042030faf4e59baaefe798161da4187219e89a0f43d9ef81b88cef554bfcd1bf3356f340a3b749bd40a3828baa4d5616d19a400e4c0517704b8b591194c0800833d6528b9d26223ddbc59a24c3415575a8a1d1fd8eecd84d9cc2ae940719025b41a9d1bbb896aadd321f23fe82e4e0699defc7cbda9884f2aadcd1024bdd55d6a143211848542a0827c7a7d159866bc1f0652eb6b4569960a2124458d67f5085faad6616acd6020ae7b5605e50d219a70daa5e9ba8674cb820920a034c378afafe363266563b9fb13b5ac273c98c57b836521f06818a9cbf7d8bad2db0b4bc260608400042084035807e97432bdad6d835d5d3ff1c63b931924c059cf6b715ff134288a4d0caeecd953b3006d105f305f1a270b52854bc95d696c770ae3d8e64b5478a97eac6187ddad56ab55a59986dbbd841682d8e315ebbb22bbbb22bbb6ab9f5e9d567c52ed5de9662af3753af74e66bbdd2cc62b1582c11965330072c1ef017a3b85472a7f5634b5f62cb55dcd95fb0d8c59d3b98bbb8e3d6373b89b6cf39a7d378ac185b612ba781ee115b456cb5f2248ade7b6fe6d8d578c3dfb4f26a196635be6abd58fd5bb5cd6e6b4b5ab1ab3d88daf263f6aa6fae5953fd42dc1e76b3da97c66e88705ec65231e6544ee5544e99b6454d8b9a16352d6a5ad4caa25a4e23513aad548b484bd5ea69c529f786c3217dff394decb9ab24eac7aa5f13f5db327e3187a5c34ab188b022e031f19bb8b0c5c129a4546abff098f830ae8aeb21adfe6634ba34d1bed9c0cd14dc112740028af481141441c80e2785db0197a487243448921a82d7a7309ce0ae9a348413dc549386c0399cf0085ca1624baa3ecf592f33447ba6bc9962a101132a9dae7932b4c8f8ba53f336f054f366e8482e2351a8a56a1e07b4d5bc1b00d0d9457c1c31ce1e98f82257786992bcd0cdf65a5af102c3c284fb9187edcf45b18265da767930a1739609dd7c165d888b0266b3e8e6c374a2959d97ddcd7fe9462c3f566c9625b6ff4b37df85658992f6a45fd102c4dedb9732cae5daabad469be43212853aff5cb4f2b3c32b28e32cef457c0365484d705e46b5d88c6a61a12bfc64fb73dda63db16512cfe19294ae326a5bc11837a3322a0413b3137ac38210c56a8d3685156a91ff60c7971dccfeddadd8a54dda2bfa596a7973b568ddc0182f3336cd9ebefe6c052cc7a62bfa39b41494c137ab93686f372426382f145ac118d9fbe7aca32b5a2c7b456b050acaf88b501b88f356b450db5ba0600cfaa2d08d68631ddc79c32b5a2b7678216e2fb4c237de0442b46136758bd6273fc3787c61b95ce15ef24972ea234f8b369ca9baca50b6608412d0e1058c13526080037c7ea2cc5488c3ee8c314a7902d30b1827a4c0801d9f1f5688c3e6a4c0a4540213e8812a182f6620657b2f010a446002a8fb02c60929b8184001de67fb17e2b07bfd904229902a185208234112d28221e5236078882898edc927b94167c7ff08c8c839264feda23325b961bb88795312174440cec0243d5cb0c5f2239396c020a414c258128288cbd1694d5f290f5178c0f8469800809120bcd892c788ca48101c8f0ceb35220423537460ce49ea7124c7911f3f8ef070c40547861cd939f2736489234e1c99822407121120e901c911244e902c81e40848aa50758004aa1d725005a12a420504554b45856a4a2906f4070d04218220253a9ed041084620df86861b478c28108147e80434b64794315e3a424a086b85109682e020d49e949307ea53248aed71a41c8a4c5144097bb4218f111c96cf5edb3dc79991354093bfe739e08cbc91267f2a3a412829517edb258ec7f84acf8ec5a63fe847592c9614edfaf407fd24655116c5910e6728fd284bd60067ac0f68f2776b3f8ff1bf97e37070b6ab328e9ca1d447fce839a0295ab79f673fcfda24dbb31c56563b8ce503ce40882367b21ca0fd9c063305bd14121087ed875d6b2423702b2bdbb66d9b9ea94b594eb312e5027152486fda1e65799b556d7fb9c2fac179dbb71d082034158c61df1d07677b38073803a10948d240997d30067d7fcce77b1990ed543e8824850392b7a3375026bed5b58332f2c7f31c9b640417bf9ab061748de5e36c2041214121412141214121412141a9df77b224289c3753330585f3cf3f28726a2762c61afd4a3506f6c5833c9f7051c6f751954a06e909e949aba552919edc1b4d90492bd26afec493cd3d491db2fc2c3b9bbcd577163c148281e138699a73eed864ccec443a82f342d9b59931b3817b4e782f8dbecd94428a728be0343a783c0a3ed8f7e1fe0b2ec42a90841f62bf6df34676f85a8135ca0edb58a723e6ce0769b54400ce4521ffbdd92374d7a0d52ec4ac67cd1693ddb5b1ee7acced5890f5ddb58b57c515c2a8abddb683214db7f39daf7cc17b69de8d7da14cdd5807c36364e73b678849cdbb21bb79c2fe429a0a004376737bd5135e0d037beabc6f4c1c56561d329449b880c80b7a5c903d84433401841cc20718b87b15434cd94572906a28624311204550241a8ac000872243e0a0484f11248a00158912040a57b9fc600792920f241f3c4300417da0d387e861938086e021bae401aebecc9f71f6d79f32ecefc6f25f38f60cecaf3f611a4299eb05fbec5faec7b1330d03a66d58ec4bdbb0d8daa3a97925162f25a5205c7c2f0529057147a1beaf14a414a414447a7c1b38b50d8b2db5fd2143179e28b565bc52d3cf695c3ed21e70e651a61863cc32ac36fe94c748953449baa487a62034d54abd168ec0cd9f9de8eb72c4a84acefcd3253da0c9249f86a8078c91bfe900c6d4dfea6f990c06e8d831fa1da2ef338dd22714fd0952f4d0a57bf1273d0e1446dd8beb171646eff23546eff2fe2e7a061f5cd77079929ea1f42e3f03a9d489be2e66324a3e38fa22ed42ac22c289df129f65a5cbe6cbdf584ee3f212030034c9e71ec299c7d114c7435d4be7b5d8f5593a8fb4ebaf74a21ebe37ed6d3ad8f2b5cedb3cbcda5a22d4968f3b4f86d56e81a6686adb77147cfbf20160ffd238dbbe4b473f18637fd441686d4987f3b71a4a93fbc316686afb912447648852219997b0d89f9fe1952da9ce864f5190467bf8f406483fda03d6c4d72fc4c0511f1bfef6398da629cb63e4f6bde042ac42739ed8858ecaf9210ad77d0cdb503b0ef679ce8e04f0bc878f1dbd952d593146c7c18131ec86b663b1298c917f2ffee6ff9e396ca9a9b66f0548d2c81fb9c2a2126504da64c476dcbe0fc8962367e6eb89e392b7086acfd46672a9a0ccfcd20e17fd274babc1cce98132d3c3397b7e1b2afa20be903ea7c9e4b4c675dd4ffe2ef1767ceda96536afcbfdc50b9fd9c9ee4921a594d228af365fcea03ab44b40380f4b61e3d83093215fcea053bed4534f28d322e569e5fa4bb38bf5a5d989d351472853b3d3762f99a580730d5b351ad7dfbf598d4bc37018573661263f660b807b5ef9c58b2d331a5ddc0fb834f4939d73ce79b3d3fc15260c27bce79f70ac221fde0b65b2eda42f6c2bbe106bf4259da1abec1f329c97839af6e891a9e6e1f86cc6a40151d0b1237bec77642f2c648f7d8d4c631a7a4c8dfc6df8a7bae79f649551ca7ddd7ddf3927a594d27dbfd65aabcd4e75d3ce5a6badb5fb7e89078bd56ae9128f2b5321b4ed677c6bd5f6afce5bdc77c6a5e90db46101830d8b6ddf86c5a69a45d533253b7f5a654f8a5377a6426fa48e5bcad9b1d80c701a7a0363e4dfcb912213ce86bf7f747d4dc037d46f7086437e2e925cfac535f1051b69b69cd390aeeb6de7c28d1b8b3fd75aade682dd8ebb0a09102fd791619602dcfe27b85dbb369962768adb4b8dfbf669e070e8eeee515eed34317ea15fffc55f9ff03e612a32943046172c212288540ff2acfe5344122949807424a1a283122018e39c95f49029d9a9d71132a98a6f478711446c6c439e1dd48ecf95e0cecece0ff42af06126825d28eef4b03dccbb3b3dd80102b521939600dd330c2e09dade5cd2da4b96f08004abe41384b014e31425462845299508b104a76a67d149e9ac3a0cd18316a08068304283c0711f3ee88c9452da81276ecb863c4a76b004097fe1eeeef1dda364919c7031250f5e488f51484ef4c0c50d8e0e20df0d8e0e484408ba43553445895021684ae6fce5001182fa72807c3d3b55555bfe94d24a2daa838e39ccc10f36c43c6cff608cfb516c095faae44e7c02c6a8fe63870d3fa296781223bf9cd5d21665c126289034511b204250f5cba9403e38736da17484089142e90841611886611886612bacaaee4efdd9f2afbaaa3d75479a645559abc3ded4569d52836aeb6689a17484089142e908416139e79c33cdf96780fb5e141622c4969f53281d21d284ba321b0c0863612b2c09ec075b65386706e79c79667d5110db159659966693b03fd264614409b942dc144a47080a833a6ee0d417cbb795e9d8f2b59bed4eb941b77512edeb33bc2e795d7e5d2a78f55c3bd2242f0c9bbe441ce56a4358845f98dbc31ff4700e068243f88b98855998855998855998853ffcd14bc571a48d3ffc79dc4ffc45ec5d49ee906aab15e9a5ba5497ea525daa4b85d5bc8a5f4e0bd5d269a55a445aabd56ab5f26e0506bb92bda8afb7755b4e63572b8e23915aba52ecd2ec6e638cf1a22eeaa2e0f6eea51545fb5a7badc5d35ed445390db65a71a4795101344af73929ad93d66aedbd97bdd78571ce18ce1896659ab665dab671dcca0a0b4b4b2824128d462eb1258644ef516a386424000d628cf1ce11f0d4c0a734a434a434a434a434a434a434a434a434648390db9ee3b6d792c0c5bdbd7737b6b96c5ddc5e6d6157fc4bf39d8972999d5ca2ecfbb585dab1f484f3306ad381104208e963fa174645dd82b4afad05d78e75b9d9f2fd29690957014f9588701e558954bbfefde4cc68cb2cb5ede22e7ce5ebbab4cf3e67415cdc1a6d656ec3fad2717b0ad211d07834879b89549bc3f495b3e56df9dfcb71de62c7f75a68a82bc7d32d3a251cce6b59a1b6fc96d5fda4497a6ad36f69c1966f31ed72034594623262725306356cda4d281323159a7af1228a7b5fb8704182624e17f0882522002209523c61e2060a1a1e54d0008a8e1b20a1841aa131e4a6084094fc180105040ab0d500d596ff39bbb7427b33dbc0db9cef533f8e9f218cd6f667616d7fedb30a71fbdf0bec187cdbd05ef450012cef33a377ec43efda6bf96b03ff7cdc511ec4c7bfdaf8473daaedcff233b877edb5e04f4fb14a96b567f81380fdf68e75f659e72aacfc7caef3645829207bd72fdbfbe39fddcbf6f9e7cba66df0e7cf8f9ffb8c3d7f4d21ae68ac6d60bf691ba3f7ce9b5a8f1efe4843918ec137cb87f46cd131f8d656889d77637bfedcc56c866309eced6b36632ac0cb3ebf17836f4d7b1cd8337c679de9f931f8c6536e8fc1b73b1238f7546a7bb602be7efa8acc71369cf670ec6edb7ed3db9fe0dcca6fddfcacc34e902bdc6759f65c763ddc59dbb81ecfb834be76f6f8b807b5f13b363b2ff3b82efbf93303dad7ac6df8e3c7f86558ed955fd1ddd679f96797c99d759ea62dc60f43e7e5f7ce936155dad16517fe1b597b37367ef8d877715f97055a1840a1e053524143153b7a06e29654d040c58ea28d4314371c38c133044f121e1b541e102c8167042a1e1d18e808a209124d82d024094daae0d9c16343131a9ad8d024a7090a9ab0a049104d8a34d9695283264e980081873319028e6482c91349a8818914dbe31e0a93540dce24069209115f64e2c323c424cac61bf2303922c98e38e743082184dc7608bda32119188cd6bae6dd6831e3bd552ca1ca8e617edc9c8c11d5ea756af46b6623806daf09f56f6623803d576cd39e7ebd7aad4ef57dd922a041dc0c4282e336e461828a7167ca4e508c514a261f131c086594a83ae06cc035e176805043dd6102654412447670e2478a1c31d00952a73002172508eb63041f4b70705a33b46dc8b3a4044ce80d38271c5df2e550c1b9f07016280957a9fc7042e0a6929df9ef428993383779efcb494e7ff9e5f9798373e62d4629e529ce885a5fa9e54b2152ced3cb8c39fd469e73d2971a954ef927975149b5933a76f9432bcbca18a5749f93d208b89d975e15e799b3cb98e955b1cd17b3f9625786b52bc35ade302e6f1897ad682cd84a7c96083b2fcaa0294153825a3b3d3b3fab9d9e1d55041273a20c6a4120af00d20b708a3046d72f60942e7d523a69bd98bd974dce38639896699bcd0acb0a0b8bcbc832ca4e2d2ea4ec24c24a23166c25b3815d4b0e612d994ddca2f93e128d462ee38892fcbd79298dae7936b66bb9eae69c9ef5c59ec9f0399d7a66e3b2e52a9371b1fdcb5a6bb1b5d35a6bed75edbc927a2df80ad3bf191c6c094d724b9804476da4971434c76a7ac762e31ea7d1a6788cdc70b496d6d25adeb2c32585d6f218d9826a6df9a31d3952c9993a922247407214458e7eb6fcd9f1bd914f0b95969ca14172664e91335e69f51bc7b93aec2363a4c63d3dd2847db456cf96bfddc89956d0148dca0ac68072356a1919a9e81cb23db883fde56fc68ec5c69f7f9a76dfd354b5bea7a9ea1349b6d4542cad16950664f4c9196f51b5a85a542daa16558b6acb6f69d969e99133d567e7a7d1f691aa479eef32c487d15debc9815bffe85f4aabc1861b4ae290e9e76d9e328d98c1802135b9fdb55a5f8fe168765a298580f3b0fa83f3660b08b8100d9cbca2bce0c59a7caa4f38f6947306396f527b34b5a94ddd44b64771aaec1d59661fb39732ebdc3d9b73ceec33c5b08e524a69566badb566250f70f8edf5b1aecabf9645b55611e5558b0521d48600b8217168524425fbf9344585a0f32911137e0f1bdbf56b4fd036c0863c4f887872c3366dc8b3027aa2c3ce3b7f4dcecef8d64a6164ad354064fe48afdc305fa90e69073a825a2b0cccd50a980ff327c858f3d9b75f3b9a1a85583899d9d094d4ded5a2f6487bd214b771cc20a5c7811a2179c27c0d9058133fd7e82061606a82c41af9f505e6457b72e79a9c5db9c9324373349ff678f9a91d571570d52f19d39e54aaf96a8054296b726a7232cce3eb226a29fd4a95a7fa2b60bb3ef7951e3a49c3e655d3b373c639c3d400d9f5e94b97fd8a2e7fb4ddfd5247eab4aee693268a591ee3efa2bd3bd2de15e990f6b8ed24d28a6eb11da3385455138456fadbcbec543766390de791302be36c99a6b68da9e70a71d32ff6f3d3cf694c1ee3cf7ddb392238f96dd415b09ddfe434b407843c1c91ed5f1324d6e4faf8afafb96a72f6adb5d69a209100548b56441728a6383182c449122735f081131638e9c1c90f3e41f06939c98145e8684539420e24d8816489130fe8e072109cb4f2941c3750820f0e680f6a143e346c1f1e3e1ef001e243021f94cf0afe5df8c0204a8c3146771a0c84a5e0204c25ebc83700d9127f9ea3438f3f42fd90dd270dacf5f518190a711c75b7a7a9e7ac71dfe2ebdaeb25be0d9ff49338d51aabec53a5ee4a70de9cae71d43affe45a77207799d6bfd6e66cadb5567bb5de92119c77f7c809a77dd6329426edb3d66dd1a5dcdc7dfb39e7dc9e524ae9566badb56e9f2da675a51f0efb8ba25a2d956acf8f65df6abaf4c3ddb7d9679c7ffbfca74dbfccb85bfbbb35edc1b0b3cfda8361e3c7b167689fffa4e9547e9869fa45fbed5ff2e3d89b8641d336a29d556d23da72959a7f82576f86d56ec1fdcb4134842ebcac8a7345136eaa009aa6e7489afa79cc4449d394f5070861cc87923355a7aa00ced41740d39c9f298ae605707ed5997f80aae3348ee331f375e48ce3fc5075f6a4ef036acf71f47cc701def7362a57348a8c991f250a109014294173cea95dd3244a45705ed5c1d9b2eae4120efc8bf1575eb2c1fba494aa54f4fb6aad55a5b2d65aef64dc7beff5aeb482de2dada07777ab155551e5c5cf7bb1571c9c71cdf793dfe06430d88864127266fe2a4af4eebdf7ded19e5aae30952c6964c9713514f2591dca4099bbebef7861213ffe1a195fbb7ede484a7078d7520e9438659fd8ae1f23c7494d52e2ce78a1b59a1ee1eeeeeeeeeefee21e1f4677776badb536eacbb752bacf3929a5b4d65aabb5d65abb5a499444b55a2a15eb0698db88a0b56eb11c3274ee5fdee36648317c051823bf763052c830606c9a824c41ceac006902006324eca971b3b5da80ac26b8e503d8f2efcf4e343319d586ffefecda9331df69eb092440111445129430458a299640858a2a68959b1c34d4a063078f0ee0f4b0c1c70d1e80325246d4f5035046be8c58718032f229853b3246becffd2101499103684953909ca2a9ea87a4add85202025484c8a1870f40e083204ae88cf489eb53c4490df7868534825e3a299d1758c2238a0e537c504c8043115236a9090edfc018f96736b39ad130790cb4198d2ca3d909fb0ccbfe043933184e7867303c667eaed6de4a5714c18532ecc68c86d41e7bad6afa42194c5f2863b353b4d763ae6c6218e753489ae063d9c914259e9834cdc734969de65368820f319c9de68432f9ca301af3f1b3003d067ece4e1662188661515e0dfb0b65e6631846acfda6219499afbdccc07163dac3c0ceb4260d81b3815fd84a3d1cdbf52a2743173c45a436e4b1c10d3c36d061e3d5f6048599e0728850f2435c96b6db5650c629cd22545c516547b955906f5fc3bdddd96d1888f3387cc1eb76de04c2df6a8fe6d812ca9bedd57f51c1fefdab6ddcb72adced59b8a916b56a15194ae80e8b28e2676f4964114e8a506d12bdd9f186460bcc027767e8218c51cb1fe873525aaba5b55a7bef65efbd2e8c338c1046082394114a08238411c208658450c278619c338665127ec6b06c93f03d29448311fec6c9087f054af810c2168450056104123f18218c104628238412c2086184304219e10b18a5749f339c98a8f4aef416316434230008405000f315000028181089c442711c07233d51cb0714000b74843c665e38160a645912e4288c72c618030831040018002033525204024a0fb26ff31005c52a52c7c6129641a4167a760829f59b097c1aa303e9c32e4eb8b70d0c1f652190fad9bc65158f793218028d3524abd44b89aa71851961c7f72a48fc32793b24e27f71aa49c6a7412eeb6b67b195cbd9aa95d7131096ee4c58f690b46a6555470f2f7b574d22147e606f9a49b682848b01ac5651112fdab225e2dcd080b04a74cbf14b23341acac8238489de505abf07dc8594a0c4100c28c988a302205fd66a6bc4a2080ca341e77e2e381021bdb26a299d5eb5aac7ce33a665649969c091aa18f31072f18b28e475aff9f8ee6df002fb41ad13d470d26b8b4ad01a01589b717736e79ecc16a3155fc361aea986e4fa607677a9fa290aa4e4108c0a5f33c793b9a9a670bde4dd3dac93ee7e0af4b9efdbe47b7ce7fd91bc844659c449940925e1ad02014f8ce1615551955ef6f5bc996043a3435a8fcd9dc318732c8dc72036bf24990c2a262857169759a097f1388923cfb0412b14f868d83b98b24f0b2bc4c31cee0af6d33f5501b62cec77b10983496ed92b2b04794f9dd7df3a9f5b10ccd425874335b34a3d44a4c6ba28598584923572e07bd9382800547c905b6d26f82659cd5aa30c19a0d934f1557975affad16e048e926295fd3d708bf95794c4d0180f899faa1ab7453d9de2050ff8ad9af0b2ab8b3300f9f63a563e8bb7414397ef1ecefde805bb7f12a182828d5a791a5e7ba8282aaa1dab74e4e53b92bb98d4a324491a9618b53fcbf455e871baf103e213081beb4739bfa328f3be2be3625effce213ba3ae9ec8a5a9b46e46ca3a390a6d243952f9567e418dd3f8c2970ee9c429a73f09885c865a2d07709308d311ad1c9156c1dc5343298709b3eca2055014ab8dd3e6a802c5c5a8629b945da2656a8ff73fc066b942494b640de573eded4c3e8db031600fc290782461242e5ed64221f596c229e4572d5e07fa6a6398568cc9d1ccfda61993281f40890aa90a04b873874b120dc647200255154aaaf43912b31e9465542655a2c5292f60201e30482625f90d4ec6cd3bcdb5e138ae242db698e57f4533a3d1d01b9b0d089e82692d57844caa82fe6d4cfbac0182471fa8e2d0acdf26a539896721e9c647004c7b9f437b287bd6e797a8e70e7ebd9ee527c3682859ff3be401c46f7892c317061048b25ff5b30dad1271176cded37669453544792017a755ac63105fcf2bc7e01b5a53ef930e31dee34797a3c424e0deb6d172bdaad6720dcdd4406d90468f3d1b0c40abe5a40ea418436af7344d28a3c12316063c7c35b04ab93a5da4a4e4c849d6529a9bd9588f77461c4a4bfc3a59afdbe8217d319311873c32ac2901e9080f37a8c58b226b0c25e1dee63f3736ef53fafc0ec2aea89e020b86c69066f4478386fe234860a604abe9fafb28c9eb5e9692fcb2cfd2e4cc32be58c62db8d10185978240ad81b4916a3b46e78e9ff247a7c66aaae074a705c6432379847b096a8aedbf84b2ee8291ca6567c8551c2ce223ed2f39838e5a05a9bb9fb330e46dcbfe6b2ec0598cad15f44f1c2f310f75c6f4d3080744b1d7d890beba1bc8aaf30631e45a9c589cda01b6400a44efc939461287020000d0ff8d6b242fb49a95be45dcea14f292bac3fe9e32186a3461e4f44e1a6ec53c4fdeba0c9114b743cd9a73c5a533aee61f2aacfd25fc53c428f77734ea63964f0da375fdd005fa6dafe674d085fbf861081d15a1502acf857a15a2579b0cedc7664b2b36e704e6b627f41fcd8f4b81a6a711d153ca0864c9dfb656bf801f64d2377b3924c49aab7609e528ce86e6351ad0ecf9e09b1ffec40d3d2442dddf53aa70dccf534694d043b86510d3eba07f050ca51aa1aad225df9fb226ab68f7d8fc8cdc71928bf2cb70e0f0328e1998889cf5e08d503a0abb78d882de15235dd0a9d8689a8855f376c772aa08eb7b76590f3433757586f2ff45338c49aa9958a7afe85ec5ddfaee6e08ebc9017eca7b7dc1b0a095c7a26b59a352f5293401122349168dda1595c6103ab60c4484dcb368bd7ba8b0552a3a47cb9ff049438bc611bcdcea1335e6b4e4caff5ccd17b568aefb0869e59e8b494711e52cdfff0a58e23a3440dae17fc682e6902f04720c8771c0367e2324706153d2ff039b4a19991abf8f660d3725402694ef35897e3dd150a5f3d4b14cdd5105f93870ad6aecdcfb302ad8818bb8d88fd68febab65c4655ff44d1db9d1768773164a8af32e10291e21a037a7742eda5391d57c529dc501696a05d0254a26565854bb10a1b12027a77cbf2cae87254c06b1e234ef2a53e18a07e59a2c44bc36a8bbb60d687a332ce1768ae2b3c798e143c4742fb44343c4cbb69aee6f110d567e25188a01b2b3989d5d757f809a1711f768344ebd76931abaa0282def5ce4978ea42283c88d72e49e82e0d390264cb337cd7cf50de7c49696adb3d1dcb941bde2bba1fa6a34b51bef4a6fc8636f68b0106baeaefa731845da77792da53bfa8b0939247290c97172a11dc78952780f8a0e6115d69fb6b76de0a72faa2681e66bba4c322930cdc4224d8e441fa729d18b9f639b5c1a2d0faa86911cf3787aa6c8ed935f1e332e720be1b11df6d06704726055a220a8c78b81bf0bc13a6f2db9c4050c4623e57fffce2a1c4a6d2c6fa80a911d5345eb80e45b740e4085977b44da459e759d82a8bcd0cc89d097ba951bbf772cd7e55f150643462c1af4a00145820b9cd1b526e091aebab53dd5c5e3c9bc3f7c5baf8d02c0b53ab09caa9049324f95dd69d1533a1b569deaca32dd5f6ad07b3e15135f0dcece52460ac0eb6c9dd791b2ab1d762efbb14346d0d26aa35e98646ca860bcd1bd226df5c72536b9bb05b2309926b37938d7ea7cb21f08a45841e772d83219e2c917444ba8b1b56bb72c521def17a0c03ac88a2c8739a0139db7e041ebcb843470b66f522824c5c81d3b4f80aede637a6e566fd1dcc73d21f49ada3db18e557452cf587f306c54ea9366de59d6e68802d771892eb626eb2d3086216d06ddfa32e254cb6db736deddda60f0d636facc4bd103c96d83ab9c6ac6b93c1583b533b654ee6cab3a4d1a0b4807da3252479ab4089ee41b26e1822a0ed20d34000688a8e0b46f7491096ba9f5349ee3c37dda3fac366e27ab78e349df32b96a4b2d6cf086694fffb90708dd138695f6a62de21be8f63540a8451b7adb0ff91fcba93e677838a4ddedb961a4d28a2d35b13d7561903249a80199d5d57626627da3da0636934eee2d7d26f9a6c24e256fae51b4a6c232e4c420a1acf3c13d84c86155f478aed8053608fb8efd1c8b3b5a10dd5e3f571ef4bc51b5f3e898447ae7d1f44a0a1e082b9accac17481a7834f4337881173dfa264070e726dc87ee3e1a5c907b91e0f4fb7985cc817d6488280b9f32a4553a3bed7e4263338975c0279e18c31f7d8c636e833bd980b7aa8c7e8a048b4ec6ada42c42f13a8a2048f2ffdb98e176f83aa98e60be9556e998e22c40e13429ea6a189e0594a3011ff03902ff80f0225729caf662a2100ddf1295513b5e9a5b97a4062ebb5b674a8280f6ea08724bb25575adbf898aa8afcc9263070c760317665b3c67071eacb2781c2782fff2bf74c4cd2d0896846705d37ed84ed44897584941fa86091e16acf12c2b369333a376b8659e19f8132a354ec10fdb4dd62dfc7d3d0a30b3c769fe2cd7552bf4dcd0832a989e534268438520a9e7bd167896f9e8e204658c78d3d8e464fef470025e04f96ccbc6c657e5fd521e5c7112fafed3247722ecbd17703654044e68e0d55f9cd0e544ab7b2a71757bc28214a110042704a0bfa0cc47f837a17c2b87a4d2b88d6dbffaae1dad17e5760173477807c0b752da75ed02f580cf10edd9f943e7c767dc627803b658ab4cc2cad0bf32fe22da5355d8e1f687fd96392a025ca95861c406c36d5bc5a9e79b61a2b2e0e582248c9f515b04e508f072b91604c9d51526dcb9781db9ce1520467a02f7adec128fcf71a519eb4f76c368c63a26dc333eb3de89a3726714f3fa09de19c1b47ef2b78d7026aef644c908944100cd7fd63337406f932ae0b2f4d6c0b5094d60ac77747a229a9ec5b5e4af31bf5bb2cf829aa7d7c2eac1161635b6ec1a5baaffd3ed5fb974085b6ce511b63ae8af4fad000069bffafd2080516ca2354f77442ba5609b080a418a8fdfd607bbe2d19f374437718f2403dbd963eb73545e80cb6f64ded27e98dd312fe7687064f2ae03843a9a9d6c7bf32944b565702eedbf56bce24bc3a6aaacbcf4fd48a1a94a8a75a8583c938f6bd5489d50ba89559b6867a308d09eb8334046e6692030718c9a38365857eacc31e934b6674c28950013b172a538e746e891e757189e2b100c4082ed4ac6e23fa71d7bd5d6e70f3a668081bd5163fb3054bda7cb4835205271f6ed74fe68d81156a4973e47612be9549c00be4f77df5da1e5799fd3a0d2a100a8a54d75e37332241000b2382c0f57a169af457212c0126810c6aa38fd5ff49b117b320d9eac9e7f50ae5adfef2d59109a7a06a2aad504388a9b89a6dcca95a2e29751ed70920fd699c197f6990a2dd9e69bb9f5fb10b3d487f1adeb32c09e3112f08d044c6dc295620d244a0891f9cb6ffa73da4d2304663d1da6de73f44c8695572f5bdbdeafc9f65a81813aafb12b2bb0ba059fe64c9302b2a73b62df1b66ac8590a24b7c780eac59e6fb8a3be0a0821090b7f894d137cf9444cf683ec9d0d936be9b36466fb7d3e075aaa5505206ff27de0cb7e93399b1ad73d00b959eb84a0fe6d4d784002c2a021d5e00dfab6a16d227b54984fb31358e85f82db0ba04c9bb1566e1581891f649387aaf729f2444a092aa266f4eb7744523cc188490ac2f60cd77a60a701d8ad69e48d02a8c3f2dd85190140260953161361d9261e8b278e2205fa1822ccbd604767473846dede918ba1c8581e3e6180a66a8e762c4dd39b9e551f4abbb1191830d99a14661bf96ded06fcbec815a2ea44b8c69749a69833ad38e0e60e78a5d2058183616dc7b38b037396d307206639a913d4c02a63182fe4d30cf8d61c5d8c388431ae958e81ee286b25376d92c16f3efab7ea615620bc86f912c857945bfa79552c1c7a85ef051f8237ab9d62c840da0a0955b5383a187d5fc649077e58a7db0c2f809e1a50e5d4644482714e35720a35742d4932421aa48c459e96fd07550ac462e88fa2fbdf967d0ec06cc6c8001d2000333d00c9854a1fee98d74f4745eee8f8a1b9a76b9da1211a391111f357f6cc83b0b23cce55d8a10dff585da7700e864a2250f782de28fa1a9a06b2a3c7ff846e50b2b55e133c797f85748a63220572d59a937b2d11febc82d83be41bf7df4eed36362d028f3c0396099693af663c9a9631836f8385118c107e117d89979dc7bf2586eec4d9b5d9a8e62c84140cf6102e6c1f2983b792cce044d45011ce723b30b2c03941e2480392ab83779e154bd051d0e6cc76c4d762b58eeab5ed2abd3f4dafcebf5f7c336a16da800d018f98b7a77fd11b3b278940ac77d31fafef9abd0091243e452b493a90f3b3ebff57379fc3ab90c639601c82de6ecaedd0018f280e472eaee2184055f91862b60288a83f01b9d5c62de5a5a39df7becf65ef22d8c7eae8283207cf2ea44daf48ef9d4280c25b6826037b5d8eb372f4310a327842e56a4a528038427a866cb40cfd8d8379f23f2b82c58721c84f727d0e60665d005604078ba2d2959fcb5a52e088f51681b99d448dc76f19793905620861745efdec4c6921f4b937620845572f71c4982f01b74cd4da5b9f7f4cdb886c2b06e64e6182c9957152487df34051700d5dc6b4a66b682db38ec104ccca4a43c6b3b15d806e1274170e8efd37759c50068c900e1b26a8cb560f234a1d9b02426201a919432b433530fa1ebee691e90968729ba0672660d8ddb20206d8f69ccdaa3dddabab3292e5e1922fc8a05bb357637035cbc3b05782b17b9b5ece66648781f4e116be06db3103e1a774deac45458ae2d3afc14cc8ef36d7b0d4b73dcd6b2c12489a462d60aecafb3739bf7b4e74891ce12d1615804eb173c23675ba1dcb7052729569b911210854db4c18ef98bee94006df19910cd827db853129de3d9011984a3e48d118ab53f8d9210cc2cc8448c12aaca6cb724d482ebca52a66af850f52abbd8ea9935587d4c6040972647c0458114f9c1266b9eeb454be9aa45a4efd904f1bf3c7fa5787b60a811b77d00d7d12f38f1532495dd4ae492d0852530cb3dff9391110309e41d634fb704653da024d943890143d5bf38745d0a0f2c17740affc7ddd6685e7609230c94dec449df0314eb946c3b25ced9bbbc13613725a1d15892c72430d9429c072c2d41e1d9752ff51e6b52d14e6c92ced94534ef2a6afce340f895a756bb26fe0e7fdb975488a5de45800acc5df04cb638e22f83ad5a8266533d8f23ad3d4483f78d0702f5c8aa822ab36d60bf3d5c263b8c28c4487c12f08f12a05ea002f74410b566965f78b2d2eb656167508eac36973ff4376f3443141f6af5e2af036857dcc777c237178ae6b4bd79fa6b8164c1fab30863a86706e2863be0441b97defc1fa0332ad65cdc73714e053d6b517cbea1b67a010d84cd5c826f96da4b4e0ab7b9f544dbf15f0148bbb23e1ee5cc579bf565b6501896a7555048d4be4c631ad9cd4b08998c111d8ae06a5465c93a02686d47ec12410befa1a606b2a7ca7b5d02cc53c070f1270c4df9e0b8630c000087275013ff921f25da43e548dbba9f18b6598eac959ce8f09b0ecfdf5aa2bedcfaabc8a57f82b3789be9a13b3406dd3dbc6784f4723ee79ee90730d40c0fca0251b1dd1c940138bf40864bfc80c88ef9853dbed7c1f782fdd47b5dea362f357b48f4e9419e1145a2fece1dd1c46bd4f6e0eecd0d1598e4c834f6e75cc9188ef73350b4514267573987f826624b6620587fd01d4cd464b76e7851a955c39ba04d66657678b032cc163f376ae032c067c09b0224d9b75913dd25387770b27d02b01dc050a817cf0260a5ae1b56d03beb878eee27d543c3ca0b11033fb93cdb0081faf47a10108e9fd81fd695184c8da8c74f44a54083f8b44a4347f76e5366c46cf99b88df242ac3eafebc28963fc0c7215a3d56978f72289094fbcf08ad5522ecd24f1fd4ad10bb9c61f929284bdde2aeee2b3611c4b94ebbaa1e1109dcc828050c063bb703465f60d21bca09dd602eb2bc949cce91597e08954146af5a7493d28fd609a182c44105a241723e6e294d0ffd9e21de85de6e2f69d98133689226993fbe95f092caf7260791c9c9c5abdb7d8cb27f272e8b2ff979404d2074b933717a5dbdaf92a5d3004defd1764e185a4751716163a2d28f97540326736bfe75f42996baf022d2f97f2821c74ed606f7e1e8f7490dac3c97b4af0005531dc2d6962b101107edd002f569b18b1f5ffd6d5231604aac5537c6b2ea95c8ed225bac9856ed4b322532865eda24cbc54c8da3d5fbfb22ef55f4f0b91972a36a254f35824afa71bde8fcaa31204d5ca1c042145ea80f94f672ef0cd03a0d2519120d478eec0bece3e0be70fb9827165434df52d30caff62c09270f20c5cab62014400fcd452ba4a25e1cd4a70a906896829363fe94180f4a85db6db5fe8ab70eecb293211ba4a2f71481f3bbd1b1c29b3e8c1ebe8cf234a7a5abb9ec50abe5959ea61c26858c7660fffd3c44b20160e9618f7b2d223d0210ba00cc1597cfb5d30ba7a9ae306eba9c49568b804b94c51b5b122eebe096df12a40b804caf6fddc0854e491a9a55922848217f64ab69bd17344194efdc28e721a0e489538ffe10bfdf56b6f225bcdc232aad28ec8cecc6c65bcea4a3cb65a7bdb032e308e68acb7e843eefb5e4c8317d57fefc74d9cb14fcabd28f87755c437b5307f2a90040253cdcbfb0624b0c32d4dead087e6fa1f3f435166921c27d009791567453d1523915eb00e848b6aff2f95f0b792e86e13f25557809f95ee967b4509d05a32c3b05eb8c6b93edee1d31c225cb61d20200944693700affd2488c8c0236d93753bf065f554f6653580ce98f14f7ccd2c1290718fcaeb7b437c92dab3732ab8efdc3ea1cb36a1bc0f9b80d30ad8f195e21ce392d64bd6d6d6b283d66dea53fac9ebd7cae1df4de4e66b0c5aa7a9a23b873de2a9ef454a877811bc9dc233f864ae5f803aa1ef3aa7820b558d61f9624b9020ddca42cb64e4a78fc86d5d2b5e29c591770bfd5e666e5dedffddadd7ff76ab798175e458b7fc65a6a97cedcfbeb2b372f6fdc0fa78b7593623a69b928443a7d192879fa4249ca2716af3821506ccc7f0d30f1f04e8d750758782eb8fe089f9c755a76bb4163ac004efd1f7931c266fcd955cc69b803c94704f2a5718993c30b8c256ac0d888aed4ad1ff65b20393021868d29893eebdb64c0fcc5fcad103cfae82cc67201d87ded7bb22f342cf46a32ad3240722a22998b7cf554d82d0bc46028f24d50c8c07455ab83cefe6323e72191c8189f071e49dff1384f9c1711b9eaf100f855640fd20d89cb7a749f5800c6d9d054bde08949bea986fcecb0718dcb5137c26c4afd9f53f931b4ee926df6d07b8c1285a528298065985542ab58fc61d7d6090fbd85aa4bd4f91b0a22f4301e7198f2519b93eebeb1e5f78fec487500f1a119e8bd528ff4fae43b74312053d08ca89393421bdc69e128ea3489de02e925eec72ba99ae1c2a8152c9d0b6473020d0433aed9858b3c9744b3a4673b588ce581e60420bbe01506ccc0bab957e9972efcc971a7770c097c3d94315dd1620d1f4fc90664a825fbafbea5a41ae01039b19f7caf8c209e361062b065c616e712c1784871ab89ad0573604b9904022f5407e2b7d95bba7cc618b16ec7c88c1923371f7a79aae5a97549e450d294e2cf884a8a64ad66f7ec14ea1a26bc5d80fcc956aee7da79fd98410271676ec73e286e807d38ed751a85775620b91005ae24e1c2f972e518f6b06a9335d34e609888ce5110512b3c947d998587fbbe26a09d790f5a14c8346cd18ca84214d9e9d344ccece551c2715b32a74a9913736af301546e4bcc3623e335e1a7ff4700784eb4ebb8116c3bafc0aae7d8d2ef65653e3458d7c28363505c83750d4854942938b4b975506561dfa14a22ec78eeae7ed29f29d3e090758e72654193ba3134eb8efe28e8362880a8a5b19a9f2fa940c6e12bc60d1599f1920f68e3ba593cae35f8af04ae8bd6144eb96e379f77f28f3c9944bd14f5a1dc455d7233b078acd08834b7bb43fe9d04d996aaa9990f8f1abfe02ff8c084682d4e9be9b98862ae012f5fb57f1be18e2b3642dd209210c982fd766392433d2261dd97efa322b16c87488799635a588b68ea8d18d628d1bae7330d036dd752a4dc2a32c3ad952f7347493a86b6adb2fa50f8604dcaf3bc1170c9834797434646a4490a2bfd45cb0d2e07e01e27e7121b1a2c34a8368f3f0b4b1107c2b1f7daf47da6bbe1cece8700f41998202c44d0d7d6b2c4b1812a6f6cd668858a0a0388f312b36c3ba3389e956cf6b11bcea56102d66bacf005eaf1d38ef70d07c4410fe02b465f1770359ad87180e35c1336f2583156cb4d6e57eab6b6b7eaf2c4dffb686a894138c6bee98f13afc01f91678e585a9e6c66e367ab0cfc7d0f9604a806fd398e3dc82734589e39204214e1100c6bd086b3f76b0cd29faafb9a470b411ba3fc9adbd7dc739279fb8cefba04eb21dc21ad4d077ed82f4ad15f7086790804e8b5f12d0124f2fb2a8a899c94ffd93c70b23390ded32cd4af671a640ed4c7d4471ea05d3a7d29904b3b3f02d0ec1a3e368fcd9035bd680b0bd4af07129031127e2c98f07102fe079c36f01a22b8448ad14a6832dbbac712626b9e87c94051cfe1b40babf86dda69e1511be9c9f77eec9a8655cc8056d795bbac52cab2b69911d617da5d349125eac5caf47b6cb9b7005c2a48d354b8cff822d9432fdd265f47988f6b3c6fa02af7d60785fff4485677d197bc20e0f0d82c09c054581cb05a46f25221fc72d2737eb9ffb46340ab57ed34496cba1292debbae033fe4d7cb8627ce9bbd1b03cf9b960d18c653357914aa0d39c18203016e6854b5e693ddbad2e8c737804702bf2d1f8c98f172285bdf0fa89833381933849b2263c89cf176adf0ec71d4938cb405bb0ceddd957f7d6f6270467557f85770710fa6897240ac57a6547212dabc428b98d5c5a2b0d51ffbe73bd85ef21d0b2aa08be794a6e5fea92f2fc1a65d1439fe6ba9df9cfb7b940c321ebce5f133e0e49ebfea38642ddf7ffffa158477ab77b9b559a00b8ddc95335f029905fbfd46496c328d8b4167ea7a342e56d59292d920fa59d2b3bbf23003fdb3772a5ec876e18f50750608337bf76ba6ca4b3343acbef9d9f5c5142778e238d313f10a3226590bad79117e87362c2e3a2148e759a0a7e7bf69bd8b94ca6ba99a4c1cabf71d4e0c5f746e28985a73684e8841b88e63127f2526cde6aa48833698c32d93caa81b8a0b48c984e661bc0fad49e0dbe8259cbaefe9d21088b68e3dec4d0e7504248ad4fb644e982d28536dbc893251f9df51269538ab823364ce94d926541b8c7f4f37f9322d32ffb48bb85c736d3dbde61552bef78ae184dc58d93c3ca05a60dbfabc867a52edc5536a0973f0236fa4615cc1aae4e99f21bc290b7753e41a8e9b5bad2082a8bca5a0030b39b884489826bc86dd1f0fcda645144fef8e34f96074304ab79fc3e5e30cca633b1364ab228caa9eccc939101a5dae09825e46ee7cdeb2bf4132d51ee7b0a6c1a92a49098e0ec0003fd1b2cbaf0415304a5b71b68998dfa6ca71606269c57069e712e3b83a303e74d258d68aca3e5f412cad7a77125a1abeec67ac8ddcf1fcc3274bf348535cd071c0e26069be7269e1588f0302b72f4686d1ffc6bbcc397f96811a66d501f8cccb9d2d997ae77da1c3647fe6380422446a5c6d6003860e77df59e5de2a2a7a5fe4ee8c9ee13781d2a72971ca401ec7c57868376734f79933aec69da879669255d1f1920a0861a953c189c694cc1dc0a73a272d5e011524353469464343623433bb5c983af3baaf903ddfa3614cf6e425e5875de7eb0a364ff2319bed24671cec426435599067eaeb988672d42f643110204aa5a560d9214a382c31774ebbcd5b29efe4b4d9c2042495b030262f9f102cfb7ecef5604309af2c8c0daac9e964b1a0c54aded50b45e8633a58140607d7e4160e608cda8121583042405d341c0a24d74f9880ab568007c86e8bdc051c894cd9246a2e53623eb24020472148f7c5459c958ed31fbd2f2cd606a9151f8d939f6ba7d44c97e493b5ba11ab376c28d76d8c9f2c5c4cb4c95627558f7cb1c28c201ee85bf8f3817f92eadb31e88b0c0adba73cea3bb297e88bd08e06c4620a519c9380faa36fe0165289c6f91750fbd1d7898c31de732f7325d5a8c67d2989be04017bb1412ec0b383246de0a4ccdc7a08056a7005a6c54ef81a1a7e0bb81223a95e286ebe800e8baafb7db238041b242bae7cb224627c2a7dffadecb1687c8a3d23caffcab9955bba215ba885edafe6e52711da7dbf277dd3e9e1df17c8dc6bd6a3c8bb53a73413841778418e46a2483dad34fb82431ef82fae5e53f3e24be16462f1d6951f11d748f956aa314be919804ca901fc7488b81c5bcf824fbaef8b800af471d18e8843118880eedfcba05d802522ce963cb014b028823757445c4b78c96190fd6b8577892adf26b04df765299f88b8189b1c654b775b415af957943770a51d45d8e7f86880768d88c38e3fd62aad231e3668c01c9a9fd385d9105e5bb0873167367e5eba83d38818b2782c019646b01de663c6e6a30d7500389cfa24c799e03bc41adcbda9e23e49392021bb0da1527a81842af6c13e7c5e66a8fc197cf6f163b3359ee9b3b57bc6ac3cd62a11d47e9e29fd4e8a382313de6ce919ed219471347fbfdadb1a00fed5645bc06db12dc00b8c5b33d8127be55810b534944fdb8dd0f3fa41bedd0c6dabc28ff264e2322be798c9095901fbd56357c91359538d60bb1d6066f3dca8d4b99e1d9abb46b26e4e701a15c9c102ffe6702731a1c97999b42d90ba21c4dc62db8e8629acfe92acae31688cba2401057fb5204a5b63b0ec5d95f0297a00bbd46443bbc7349f53418d67422c93b38e0682e8488a1d138ff3cb8486a1d033b9e5fa91f256658801cd3b50e041291bbf86c9742f1d4b0d2edb5b3d09ec8bfe7dc9b0e498a753c61e59810bb46447d8c6fb93ffbbddef30e6a78a6b619fa4233eda2327653346d774f20034f393c48b5e4061b5398b38e9aeb68913e9028773300708fef6be0d99085aca88114cff058b95e832ae692aa866747e364a2aaf4a1249159a92c43c6a89332b078e127e91caab39036f9a1ea1d0aafa4d2b948509fdd4c730a7828f2e5e08e32cc939bd9ac701299b63986cfb9709edd8ae8705cfa86b56b323180b4716d8776abb466fc335c4fa68d3cde51c6ac4d362383d3322f460e27a1d1d69ccb9834a818ba0c6c100157f0cfb7e5755974020140439fde125b24faf32806672e62c6b62e0ad27b7548e8f665f3808748aac43d7a0dfa61ce038a9c251b8b05baa91605e7341a7226d439943d064dc126b19624d6ce9a1656ea105d977da578b7bb044a0c42067034eca3b15beead9b3e46ea5bd764ac1274be17cd37f49b321c9482026f56d0f317aa372fe2f4c13d4530a6dfe20bcca2ace8280d014a9a00a336eb5380985274bb670ff9b26a166cac38b8a5db56cf4ffe40b04ed1e606b7fbb12a2f8dc295e1880de7ed194448a47bbadca81ba6f89651cb1dd0c18f579cde89d409f058ebe13921b54ec01964361832aa05892726ab6e222c393741ad44ea277f5a16c835f4ff9fd81b3cd663034c140d21641cd4477fd7670094a33b213673525f3e5e1b2a396d6d7025955d9d7cf7a1c46cf932f95650d9ddab61a753404374184f509fd3d21d76af4796a843e08fea7efe338627bb7589f54489f073d809a04c11b96f3c3bd0a2539523181e441d5c5bcdb5e9be880d619027b348181a7f2ea136aceace3f42d1d5262066fcd84ec7102af33b154dd8ea0552a544919d06548800614303722e0ed6908404d988f918581f8a9f5aacdd5a7db420be0a07e76aa4d04e3b29be1bd4abad30a24fb6711c5c58a125863371a1bda9b10420ed438c6ae2b10679d390835da6d1f5ccc26cc65517957a826a9a412e149e8a6d82a59b0eb2b58b9331cb53717188d82f4f0b6136004a8dde0674a681596369a166b7071b1833cdd5630e1f10071f1b0ab553d2a9ca1072dfa78b78a53fccbf8723d27c40a8b9c12de5cf61235cf1402aad6d593789919808aa976135438bc5ee20ea969a5e2fb00402259c4ab4e4291281330e12742d3eccbecd8d173e93cfed6065e18748bf6518c3b62710518fe337d2e0d5dba32650b4283ccbad3d2126f0f771f9c80dbd196c4cc7d34e418d9f4ad843c7839a7f244a16851ec141f57beb9941b3d49270cb9a0a796b53c3597ce14e67fb8b484b7cc8e4f11241ce89f343ec72184a22a061007ae7f0f8011872d294d7ec4c387d189b478852b75e5497338bc70683d368f8aceabfcd960189ae423b3ca499f4e8f17a295d2ea60c24b41c5c56c2eb360881b9798bb0a6c0a8c874ee23b67b04a0b0bcc8243dfb00661d1deddf77b630f9804d142ff28f0865629409f8b7961efd53bd951cf8b49281532897eedfb7bf1579b6dea3d88c273039bbf68427bd9140da1939c592ceced814c5606e7869e3d058616728932d133ccffafdc35dc178a7ee7d8659068450747375a97ee6f24d113ad29592dfeddf86b39ca8bc067b23cb9f170072ccbfdc215472700b229da5b971f97561ebdd34b70f5205d837c213cf81594a3e830eb4ddb44258a9efb08630b42cd70076456638df1aef13e2b3b9576b5d23ea9ed577f4403940f6ed78489d460d494bff7d805351302fec5b2c93feb71b5385105c620a8a877106a1a34a401cab23eec0f73c6b9c9674982d831475d75fb7185137ca56db570e91a23fe63021f752c8ea91ea05af5865be634e48bdba621b0ded3e95d0171f4a4156fc44ab7a8da9b6a74d538c0a42cd3f8b4be5e71b5abe71bc763772af68f0d89e3fb06917b3d381b56ffe6b8b59725ec13db750736446a673dd7b5b816add283e683d2d5aaf72b529752af5d180005af528460fbe5996886b429b96a1706c37c23f8e7e4e4cfc8ca6863cd8f90d599ec3a842b2d788ecae09105d51d8eb19e35644e5333dd0febe6b7798c4c8e83a4bede8985b82ae506e074ae2a99364e255b32a8b76f69bdbe8be45870f4609cbf44b01a3309ca5a0ed806df80919997fec8cc7e10ec24b8573a799a5f8e11e64709ebea588f168286e775d180da985a90b80adcf96314508ce2baaa3fadb0a3b4380be4903840b34f86c34074b9ee93ea6481e21b48baf4bae9f06cd880c5a4ea19b894fad881ccc9c77360d7d7f41495e258f5bdb8b47b4ca7be49f1108f9495451a6f6e4333c74824303546029aad0cac06259ceb515ff4c337e4735b23dc49495cd72b07a720bc9ee1ed9a30e72b863b31fde5b3f07802014f77420d57e0c94f35cec598bd50840a4fdb3ae9d6dcf7f20b734ebebcbe8cf4a178b852a4ba13cf2317b2e78314c5df5228adfb58d1f8c77d611fea88f435d2053d3890257ca2c7d2fbba8208ff357a3f7e9af7bbec0404dff2aea525c4353f274b8ea6c9aab55ad38e520dd9f211691d75a3d4ed4199af95dcdad71b5237ccb193648989059f18914e33f0a0be8eba90c4f2757fa312de0e23ba4c4d763f170379399a56c91826cb8ede09a0d8b8432ff4c729d02054cdf7fe43ba1491f0e69c14721139fba1748b9306441cb0a460e19124a7c5b0facb4f51997e07ead4f910528a48f0f12a6126300aa399aa55acc0e3809406e07d49bbe1bd843723b832d858e2c4bd1c1ac8fdb019175beb2f3258ea4ab2c81dfb3772b2a2fe900b598d2b7155d990d0c75799aad07955e99498fa1d418583fc96ff835d0fc6929fa26a34dd7cfeb8cd1ab5b335d11eef2b3769f71910d192e5f68a98795499113e8f7889086ca7cbcb11c1a3265f17c398ceb875329578cbf9945f1dc097add07ddb5b4911a440ff964644eb121c0e3cd52ba61fd0d3ecb4b0a932c0b409ed763f8a059ba84a2864bf0b4147e0d129dfa43c020b39a75a284b91b9964ec29671f2c52ee362e022ca72d5c59bef1c061030ee9467da8bc502df12a8693347991eb858a30c4af8b81e0165bcd3c68b6f1148b1a0d3236cbdd6b94d006eb374cbf6e79c5153e26b7439b9cdcb745f2612134bf071773ea5dff1e924d001bdcda529b0c2c1acf3029c5458e99f9c3ec8749352356096116b9ffd40f849932da85db9e2fd7658094cc5e6243ddb8b23870c33a3a5fcb0cc1a38d87f4bedfd589138e75386d0c606d24b31719c24efca71f8706561d25ee2a9816fa9e3bf5f840089f28d0f4b9d5ffec21ffb2398b05096752bc668008c1bee773ed7802a728cd005b079975bc6c880779b2d9e5b07866c230fa5456479e759e7824dd3b3a800ae7660dd22bc8e1f382586084def18b1793525b25e1d5a1c135bba8d261fdc2b7dd64b889dbd98535027f2ce3b38e0f63a0da5d648e942f307cee69c6e47097ffc55a0f5c881b882dbb30bccf5fb4ecc23a2abc6357363058dea57daf5a2fa55c8136272eebf65dbb01230149b93f464aff75ec87782a8111d9bee29968241cbe372b8659e1869e7daa138da5febdfedbc1d671a2d453b33bb6741dca61efedce4ec03a8084afb8f173b44cd9ae039d3d63e50f425b57f638b5fb9d97250aa27e191f7df72120487ff03b2077101af818df6cb7b31854e1b202d27092d9d6eb20e887e7e7a7eb48836108e24e3e63a3908b079cccb5ff740ef7277a7eb987522c34f664f1c4e11ff3bc4d81533d818374ab1b44c57dd6ad8c275f91b11444bdb3c132fae189d9c330f578635f0cb495e4998e027c087cde784b1274523b96e399e93f88c171036c256602ee8c6006f4c7d15e30dad2411e5445331cec35e7cba5b407a250402b33712832971e68e858b2f6e034fd556b265ae91393676aa29d907774789f99d12bb4d2bdc2011ab94d37d2512c995663f33f5efd35b6dc0a2a0cedc5d18e1da84d2a40e97785b441b1731ea0c46708c135452384ef971f10670c8c4168cebc1614a7e298f62148de8d0783c10830dcffddb648885d827ba78a8e4efc7cee28beb417675f5041a49ec4904813e413b1589ae109e37faff011eee6bc62fbad10364d540284266a2d93ea0078c9f239e25db03d6e0049a933ab2e4078aacf7398613aa1c94318a5ec703b8f46aeae379def72680587401e27835074f19bb98448456ad1ab06475ac6ed8001ca050179b8af243880b7b1fb3b3ebe3bc7854a64106b6fe12856f3c51694c62d876636cefa4468bf7404cbca7fe7a85cf4d84e789572874f0e76fba17e67847ed34872c08a5a80043f50800f101e0f245777a17844f149a0fbed9b9cc23c3db748271874e914641c56d638b581d0940b263dc7ed0b437a72957f18672f068defceffd7b6242ebcd88da519f6ef95f92478617ab8f8ce9bacfd7676bd162635081363bbeb77c3f1ce9960286d3646e0deffe6e25bb8bfd1a9284aedbfa50a46f685609e6e764941cc392fbeb211486ed7799f710c7f24a6861c4ecc81569ef333157754592552fc046d058639043c79ee8f0f16296255cb44b4a1f70af4cd807486cba7ab0840c9fc49cee22a6c8ef131b2a94f10394217ed47f7db7111c9c3747d036833489396843e3e63cd339310c68648e9831426cce349b36441e4bfb6a7073c37f34db2185c6bba62ef080114f440c53ea0cc281b61f004e88814ac9a17ec49fc55ab6d3d4cbdad2f9966b64c8ee161a8544b1b33c8449416201dc198982e0e5be95c8929c2ce99c58d6ebcd3c799721c448d3151d6f27a6f95ee3079deda31d4ebd9c4e1585ec0f83e8af7bc79a9d97ae768b002fae086961c9163f6f30ff5c2142b39c8b5ae32d5acea8880382cb64912fa018bb0ebf4c0096a58238fa6476c43bc2c31f9c4a770e2dd200f6bc024d1a073913d1f9bf8c236faa7443da4a612cda98818b03a35d17b8a01a6d7d11068e1a50dd3421867a74b8d64326d1e2bdbf11b8d6db0ceeea09d29051eff29d58a9d429d2f45415326faf2bb6e02fe8c2e19c1c3e9b478b0e2d7f2e2ba1d81012aea977604dd6036934e82f811219feb18d6ae27c25c2fc34cd1c7e71baca0d24f46a874255ecbb3db50cbef4cdb7b7fc530843bc57d1345ac90251bdaac2ea77568fcc47e68303b874252ec1c990900cde3bc720850379ad5535cb9285cec92b9207645c845138937fe7a358d1f3e8a8696b4d28a07cbafbc0089cdd7045142826d9dc188f986e15ae5bd7c5ca07d59a6772ee2ea26e2c682e0e071c32cd9ef3bd3dc0bf9a9f1e1fb161d7550f71ec215db333686074a4e44aabd1171ae2c3d64eb378a64a0480166f1c80134e0b2569887bac2f987b3e6d35e3db24c956c897a16948faa0804b3aefcebeecbea28264d628349d7e64c2ac5d52573140503288b33922385168595b6aa75ddccbbfd87444094b0df58b01f4bf19daaeac031333f029e6a117bf2d1938eafe830e412c25c3089f66be537d75d59caf940d48f3e37be478b7ee216f5041d3df7fe24be49944200e844b80a4d51e56eba536a085490d03ddff4d11c89a150d31c996b88207d7c92bceeccaaa4a33036c219655a5856fc00febb7fd0e248381397e8fa5d0b987608f9b4d85b5304402454eaa9f6764ec92d5ea60bef23249fdfbc5c547ef27d4d938947133f72841c78e446679489b85d8cbc1e8adf3ca97f81c13db337381d28b19f7b0dce3d4ba82c6d38aba5966436516157fa062ff4262e9b289901c107cfc6a24a9720bf273b1e066ecfacd141687233e7129de74f791776642ca35d5a8ea0cd5f5ab12dab65ae274266d8a12bbd306f58f41a6fd051af647c5b948306cd91b16938e455bf213f192843131e918cb24c8db842b282d4c5049082558102909be88850421c11c4161e8c5d84f9328323c7e760709bed8cdc2c0398509fb2f7459e8e1eeab349b803fbcf4f1c0717c9bbc72217aec4cd9bd76e0ccfe191813360d608f0e881423e9a31e55992b8b698853ebc9393e15f0294df3201cb679bdc4e53e7ac3aa7f08567c3ac91f3ac4afc2f92f8b05f2473813487505286556570566be918c8b3e510f302af8768a7ade3a90416533bec1b6ef0aea7e4e793faca480cd2b1c2d48df1e9950b40b541a906a76e6e8c650af9f6442a8357efaddf250987bfd79369f9bbe4bddac2872d1ba890d35b491788c6e6387807db1340969a2a63e6dc9761f899ea7c6a4895807cc0cf776818218fd1699372823795c2c62cffa00bf7cb9bd3e960ee3c8a506db9168c61be5fbbc5734d723aa370b87a4cd9aa70dea64c1224e21411352dc2da6311b241f4e2126eb09f0fb08831c95c7344fdbea0d92e2b10ffb4ca224859c23fab2cae73f8d06e51c719a256d41f7cbc5f54eae1743a4162328201f165441542a8167b50413bb5524ed7369651bf1632a14e42c43d820c4ce60d6af4766e79182334e137793d884f631cc9b7bd7464772380a64b2bfb2229f0327112f7069d4b2efa367e46ce918415bfb6499392e16470705997e6d3c78018cb202e7e553fb3655f27c4c88f108b73a7ca5712f91e9a7512d9c355a63280275bcdb23b612e75f23f3c108df1cc550b90af17de7e0a11931bee7a1259ecb0feec63f363886059fa125036818d3d87330afce1bc130ec037688943f6ef1d7fe8bbd775286093c363f1e7b883c3431487032a47087c9a24189c05305e2bd82ed2822d4b3aaed0749ddacee72f6543cde5d6eb114719bc7ad34bf1e660ee049df67823c0e727813798e945fe72634ec125d05d488006a581076f29e7054dfc2c9e3e7ee7ef417df6a2c44c028ba2dd86e043f6b351ea6a7fe1d9be9bdddf3653df4c1061a6ccaf0fa9117bdf90df13dea2a7dec10faac5557260e79bada4b4f4ce8d97eecefd4e17cb3ed93f1f5dfb73ac05c3aba8e1e7958e94b626d1857cc30f97d9df3b08e92317fd9b677499ee71fa260d8a75da37a3b2e6f97f28022b8183de8157e70a87dde49566a87e5730451b79807c0929f7ec4be26b67a0661cafff442b0736e61598027d903cebec94c35673c4cca6a7fb3cadfd8301be19ff6b3f58f64401c861e5c39b85992d5b2f73f60acfdabc4a9d9ea0c6e35150eb07705bb2c1fd45c2214ad9026e3a545585b2dcf05b36c18ff854f1c71398f1cdde247516a46692c9aaeaec44511caf4288508a5a7bf5013e57a34a1d6270dbd93966c110eea344dd4983e46bc366fadc566596cd8a0688c1213ed083da3ac4a9a25e11622e3600ecb4034441905722a3ba844fbed92c742258d1a25ae381b6c739e9f0e88c2692763bd48b359e705a81c20d395a5ba93efe23dac0dc89c5dedc215acb7c0102a0bfcad2624c08c97543d81706f0107fae1cdae3d275af27efce9f0517bc45ef23205d844db8ae2ae47ac2e4c5ccfd316ef7b54351e5810e3079ff30f71fc69aecfc4e2806c3f4d13853c75f63f34d4cb85120e168061c302d1733ba4e0adf4d391939d237f3b96cd5e3922c60495c23b55ddf76cf0d81ca6d3de49fe00a51299aeae1e3d159fdda0b2e429fd08ed6cbc97cc0a3748905e1c0a5ff0d729c490c92fe5f455579331a62a7bfcc229036d94e36234d4471079089be21eba48fbe4a929cb9647467c7b160d059a9d482d8a0bea7cf3dca9500e1222a480824f0a13cf1e545dd32b3112d1446a9095b614d125c83ffae8dcca04014ec76050c359410fac8645b6dc1851f6758d35e117dd331bcd79d360900d90e655142b7cfd985c3222cb141284e01a09f86d73342683a409bda0ba9269e144540a610d0596f16c0dc6095230c4d9a1061e72c5a780ad66cb4872a3d16eb3225bf3d5b0e6945f0ba387db650b4c1005f525fdbd70b75e412333392caf0462e4c3282bc669602139e5382765d3bd1a5ebad33db640d5f909b80189304ab5cbf5669e5debe6a4e8c8361dcb3dd03da5d0045a718de9db8aae2b3f1582125cb16cbbdc460bac4b86f2478d501532b46b7819cddd21e28d7bb4f7479173cb64776aa9c3c95e089bab0fe91e0504f16dda0510d5a611b24f708858db36209c5184d645330435ef0c46e857431c7426517ec7bb26f92bf5bd3f4366161a94066a10988642722943be8b64badcaa8a5b0de3989dcdf95ddcbf5af31079e21fbaa55b4bdae18bfdc87b952970dc78566acd5a9ab2f31e9a9ad2dfc02eb963aa9a504efbf15c692bd8ecb57d445ed82621afe4a9847f81e97a7307a9fc7449b11535225f9fb52174c762a3f988dab50c21abe161603cdca77e210afcc18840c58e6af57560afe56fa5ff82239ee6f5ad8ff917165b9f6767c316da8aee2de7289083191e27a5637c9ae634f89009c00974c2a9337b234932b850b4ddeaddc2596845db459f2b1d2e97e1e6ba67fb5136a1dc5dbcd100b5c88423c39183413a82a33e28e67ced040c67353206176c69a2391eaf548f742d486470ee641c5965917a90c7ffdd623940a2984f7f28617f01392b3495e96dfe86b0405a6e7fb7708e5901d2e80b9346250568e0aeeab8b798b2b3712d7f4247581c5b1ecc3c9da5e6ba81115d64e59073fb0617005136f891cf102a0fca13030834054c72da860785678671bb73f8606efd075276d3f11326178d91f452a28eb4174a149a535357882741efa7d505909616e33f4f321a377d5036907a002786e7ced04517e9f197705741089c49c94af0f563660365d4f9c13984a918374369f8da3152acba4c34b5ef212b6c9dc5b12f41182984f1dbd3d476fd892e22f2804e409a3ce2a85d221970fb6fef568836fae7d94d8b9cfecc6291630e86236e73b59091e0c60c8524f648e84d47cb71709aea3a3e7eb6f864bc1a4dc66263b967a0f19d2a7f4b611c09a4f27e0e11749c6f015118957e97751fcc02670da51685e77a4b6dd323bdf1936c74ac00498e75b4dbc1000dc1fe307b36c6b15ba78ae3e82b44119810ef7319107ab4b1b349bbb77c3aef97609d2281c8b9523fce8977f0b5a58185987211d7c194db899f90f06906b5b9e48e61c9ede82b42f8f275b8d82c13ff952fbdff1427dd42b4eae443e8f46999d7c2d7760d819af6942527305989c0d73697c237e1a448d0073f9953a8c9cbaa93e5cfd40452cee147b30bceb5ef32a04e916d853293cbd9803f95abc5378e88a82261912760d0ec1827b33c24604bc641c1e78184215fd421e0b37fbc5f63d89f4e86cac5c19f3eae10ca7c7c247c52b9fde76ee5cee746ddddbf7b55b73e772ab7fdddabddfabb53bbede35ee54c601ef55592de8f9e8a8ec07adb62a7ca9c790fa0b79c62cd7e255b3e8cbf7a44b1a53afa0015b26ae18a72078fe92aa2a662e4f114f12f72bd83e636605ee838ef1995596f2511e9b2c1209f3ca9b1575bd229f9d122fb30e771c8d2962edd312a824f3e675acb36fd61bc5148cc6520d951567964f56a411d9975cd047646caddeea013c331217b03603c7de462df48db56474a5aa7780ae4d87aec86c4acb6a6ad569de1407ef6d53d0830e9e2dca9e7e07064f64a221c7826470afcadaed0ab7f9338277099e4ac0f0c3b5e33996b149cf7084a3548cae07989fa2a88eb42967b40e855626394fc44a9d8108cc9092aede8f1d3050e29f08ba948d78d2d30374c8cc2d14d93b3df864211cf6956732869f0ac90eae07ffbde507668507e90f0cd5fc11d99f4049595d5baf08ebde40721460ec0f3504d54a78ca1b9be34c87de15615dd672cd98c331a29b96212bf40ace35475153ab4c0f30a387eaa3dbfeca90905b11e1ed2ce378ea064f66d2e07b388e50a89663937357d8e7102dbfffed4d4288a5aa3b8f30faa5959aadade8f9a6346cfa1739149191e16734fe8c218feae9bd2b0661d8f26cb61cfd4ed2fc2c7502e1e8c132b82cca63d4a1c1ab53f004b63926423a07ae0a53d1ac93cf084ea7224339787e40c0d4fc6a28ac57e62f2228927258d7a1c04af2421ed6cf6c2f5ad080efb7d1f4e638a9d80b55d6e67803bf09381417951c2a828769456c2cb1a75412203861f2ef6dbd8dfa7a8943b1f388083465e7fd4a64188ac3ba09b226ad1462502f4697631eaa57731075a4e4b52b2782aba85bb20886499380717a138f1fa05b88a889af1c405cc1bc747ad6dbddfadd49a5abed4a9451607c4862f80b3648568c198a09f756bf511949d5248c1fae18933029e10bc931836282b1b705a5b8c162b463b591e57cd8261ee6407db05f367d3b481e8dee7001abf4b2017c9c1c9ac4fd8c75afc9ccff1ae7f8da0fc9f9ab034e37a801df561906f5e55578e49c277b96d1707744c0f7a4086c8047d8e5025fb24d716d913a7a59159dbb6e8be2f7f23aa03890047a6fe99642c4a608e63164711c53ef28b3a25c5a39d265c3a773a01a4a007cc042632dc0508efc35d983d18b792d145f08acf6efc77170360e75346ef89ba078a1fc8374e296d7f7e85b142e6dff48e61b88ef64a6a3bf738b51242e4c3e020ea58c8d1c83f9aa8f1fb25d06b136f8f686dc44838273807ebe0e578a3bf17f4eed460babb1770504ba0aa641dc55c7bbeb216138b942c309aa3c99a6e32bb866a3e3620d8e098ac1f0973942ee32cd1cbbd25ad43ff15d497ae8cfaeb7452edd0ee950a85819774d438ad946fccce8f5a1d45a61328a86d4ac581b5ad7bc75636c2b3d51edced7c85ccabbd92ce3c554752787d501aa79282007569dec6e28392522883137f783088ab26bad1d7232633a1bfefb9907ac848d6aa548dcf7ea3e9243d6853a3f605ad37a770eed6829e5212e29380d8f42226d938a3b13f0d91863ce9194ca0a1783388b4b102502c01834fe8dd20d85e85420ef650d42db3e5ec20b50ebad3556388435a749f87866b00f8b12641e12448a4cb8693401ad73db433bd79a8aebbec67c46836ebc95e8ca45449a68508cff2d6341230302fd5c50e58ca614a82b2045b4089ea87434f27e4bd8f49a89498ab521af26eab698e02f55b36cf4c89608e0208747837ab67db7d24f6722da811988604f3531192a0a3ce7c0c99a684cd8aff3dbd18bd53d2f9c445fb0d53bc6686e9d6049cdb21cb63caaf6fac0760617ea1bd4f4c9194f53dce55b57d761ef480f20576f860f1353be015789497eea029ff216d138c80c008687b4bf8ed111625b82e0beaf94f3c35c92092c8134a27d56380d210c7435875104d812b89239a10c39bda5189f4df9b9a618ec46c8641921bb9aefa6c6a644679d4070c155714766b83a833609c0d0a1a509c25ff7c32ff2c204154ed608ad9152c31a2fc818217d071a21ed07e4040100d0ffcdd52e59124296ebbd049183e41a1eb9ecc516ca1e7fba3e2b44553c0cab712cf9f8648e81e367cc9ff85a19eb8aa63c16a93c77bbaeb2a421b7797d84e9566c6e550bc623fd9d4ccd4eaa25706d9b5dd13eba96ea19416ec10e91bd9711c902aa237824b3af34e9a5166d1be81611cb573e7b2b7371103c3f44606f10559bcefb3dc66258dea7ebfbbe9cc2e404f648252df6df1f2ae5a94a3a0a2269afce148aa4587eb9adc148328c7abaa38c73114b8aa64aa93a62f658486c3f2114801106b9a9a607f3f7976b5ffa801890b5de93d704a9f3665b257f6b9bb8efe04e819c3ee8f7a95e5cd00e9ef7ad34f077cdcf136041f770a7cccfbffcead9b4ef15e60b69d784b0cb87dd321c6ee474210b7f4f04e00594710648b2e28622b33e03df568841bb7aac18382db08328ebfec07cf25c63590de7bfa8384cf090b235243b7acdc17738291ccf315fc62de34dd1362b13851ec482d2aec1e32c20c20dce2047e3b44350e56105867c53963627ea4bdd0f70f9f3b58af1131738180df7774ce40e2f5e1edc031e1c1c98be54fc7162d6ba1128d1d2fbb2b774b5af354fc224f11c59bd3a3fd735ee2d6cdae621da965d1ef42acfadd6f3f2d2dd929e20e530e460de6f77d31a2b8eb5319995ff73d71d7f761d0d7644564763f8eab150550a6f72723559393d1c9e86474322a7930e0bb4ce95e4868686855e4ad44d18264820b5113972998607632c82666e742e4aeee24438ad9d94e46a62377b5be15118882a35506866230822a0c1dad3220044f248561188634432ea6e049c941522a6734bb8ed5a572c0f0a35932961e755a29a259924aa5c2265a7830a1130cbc8df41ef4de444add94baae7b100324cd10aa0b9d60ba819422d306d3b7c0c1112f98904695aa540abb9c50c5f21ecc01c579f0c612ca5338299be9575025f24f2a55cbb6d512595285291faa27fd18a66eba9028a4c283f93e64e21e0cc812b26c39a02821a56e4c2c12552a752dd405c89750971269a0f2218652bc4533d479efe114485b0d9457c361ee4285503493b0921aaff0711a47d0c85ddfab48e6f7a4efbcaea6c9c7847bcd6ab582d3911392539037f3446762e230ef6d0e059c027e111e0991d4f897c3f34ea7962d0794516499fec41adf4bb56c260f9898b82b2432512d5b181422f160c227b17c14c129e338be0d9c623b792f9ebc13cb88e981534e4226efe3c238b2803c61e139fc3b3a21e114e5f4849391f779a71998debb9f5c007e4854349258272b9ca4742cd1b4c2e90bd3934205d216169da47c394e58b843a991031a3370c114d3fb90a848031daa6b028d10cd1250095d17d339810461bc4e7ccf0753e9bda71182afa01b5329f48430fa0c4fba3059a66ff1a4c81c3bd42b486c892a262e5248e1284368e486e4520512650b834e2523a6d83a3df1ae0003146a1865d1448ba12d9059844fbe232acd10cd9049e38446a8c9180679add08b0ffcbc2fe53d580297303f51143df10ba5f8c2ef0341b07b6fe67b90f5bde781dec77a058d20e8b15e42ac8f08c9f4de033bff56be07bd99a7c2175978b61c504cdb06cdd713af202f08560041a8fbee5140e6f7125a090d79460e0bbb4f0612e9f35649485b382483c989bb3c19bea1219216434a485b4844fa628ab05841b1826205c5ca83c2c587228a28a610bbee43a19ab1438dde81de8af8a56c61d1cee88160387a61c9c7f799e327922492582a954c602b5c25214f46eeea80c90b0990b6d0c8ecdee4d574242f4cc248a38937ba54c0cb6107e1d10c0c1ecc13488f647a1f3ef1e2260459a016c8efbb550a48dbbff7ef7d788484ce5c35d1ad9af0be8f880804c1300c4351144571d50469d5c4aa092952564ddc9420f0419030816202f5a1d01733a67ab8c37ca920dc634854b8926a79a9151212d57ae921be7fdff7858f5a79140a85428def2ba80f59625864a24cd448431c5b28d6f8e1c9bf12292cfac6f7c63f8d6f721f9ff4b630d5433453236aec01fed80a8d3c98eec716912e0c72188915865998dd7f2c910b425ca852a54a952a55aa54a952a54a952a55aa54a952a54a952a55aa54a952a54a952a55aa54a952a54a95f151a81eb6952d892826d8b285bfe283fcb06724c3307cb0d5b28d28969b2b43e309fc18e0ab66540fbead649bf1a51f31fec1075b9e1c3ffc91258ee3bf007e0c9607c9d147d785157065fcd493ff8dbff22208e3c36761d99288f263e5c1d60bf9e08f1fb25ec8477df842b67a8c8f7ad48fcff228962d091e3e16960df5a431f5305a39a91f5b3da9275b3d2f7ceb575a2fbcbfd7a5705e68f98cd6fecc181ffed8b2b5b44019adfd99aa0f3f468b655bc20451a8111c4970e5513faac00ff7ef6f0c490f06d400f97de39f500fb24e1f9e7e5cd9c2219385e5bb540ff05948f2c91649a328fc15560a068be5577eb5f22c2d5b3864aeb44ea856cfe9c753cbd6a14ee018b26c3442d6ca10c9f2e94c9627a15a3de08fe098441413c6c36881246b25447dc85a79161649b23c73856553b54ae3f8da4812515cbe204170e534da9630bf2051e390994a9d7046a6b74f9288427e1f0392a004b31bfa1890842484453ff87ec0e407433f0882324535ea6e6cb96441e592859506a24089a2528160aa954ab1540f92372e5920415005058a4b166eb2e0928523ab235d58256085801e2f8ffa9df14fcf44077a5ee923c1ae0b451f602b0c125b6150d779543e2a1f15900a4805a4125209a98454422a2215918a4845a42252215121512151215121512151295129512951295129512951295109592e5448ef3f2a27f07d945a464c2f15b65e704a1fbe8f92912e15b65e4a6ffa97f08d98a6962eb57ac4607e3f769f077e533e1304c129a009866138253441511445b144229148a4293e4826e83285f4fe3b3a9222650af9825332c32fb56c3da6f860cb470ca6188309dac022520857f0c113cc0198be450f9e98a3ca698668845030822a172c7c20188661288aa24822914824172c1c1d4991d21175442e5820bbf70ff43e7cd0fb3e6c89adf0c8077a5f0b2c2249194754aa6844b1587ee599205f8260f995df6139fdcaef90a757fdd881a017963e91f4e1260ab5227ef8289c54ab0ae4a96533bdf7dfe979f83c23dfe784f9fd12a09193f719414a51077a20cd50515151118d121a219a25488872e4c184522892425151098ca238150d75a0079e3e7c09915e4224f04d204822812ddb06c15618f47abd825e272a989827a293d069c80c5da21006bd5eafd7ebf57abd5eaf571482c2a0f0096f262c158553188b8a4a605464847109a42d7432964a4ec62027491867844625de8c28c548e4cd8c239391c968058d10cd121aa12fa68c47a67c311e89e2648a132e9e7401c58ba3f1883763eb5c8c600a6986a23899e2848b275d40f1e228094e9c70f1a40b285e1cd12ca191620c9ae2641c9ae2840b285f8c41e3134ec6209a254e8a8a8a9cd02c198bc626a11466d7ad7c97ea5a247984d3e9742ab9288134fa62be2f954e21910b12c81ed387e31b9db23835114f5c7833e27f2314285e9c5e41af24ad93151e0c130fe654c4e454e4cd90ba5391cb11ba37bd5e2e4c2049ef27264820bb12f83346af242f255b3c213a31f1666c21d1c98937633b3131bff72d9e0c51e1e5e86abe3f9db6c0c117e6f7a790e864f40affd4b275ab964ddbba5792d311aa0124120ae5a5502814ea5fa495b04496be0f552af1c8f7a107cc95d69744e85b61a550241209f50afa5e4221e90351a823d3e508644f572a85a552382485297ed87a05bd58582aa32fa62bfdca91bb6e5648c8ee6da7221f78c0ec8aba4f3503b36b2d413583ce533e422a5a21d1ca91c34aab2d485f82d9bd892c2aeac13a89456f23894a2f52e1c1885f6a85443e6a98a517bf24aa9abce954f4156989a2e8328e521e2a0be28f2e46207b481f9a6268925e6cd10ca16478088e451e8c1896c0143b93918ec8472344faff5a3946c270c950f8b14c1d8944ea4a4f23142ea11922b142d63876a014137cdb498a297660d82a9d9cb84b01a4f84dcceebf2fd2021ffc300c411651890ba4f8126261e9bef44af212229fc4225b3623af24afa0d7132fa157922f470c186249f5a5d66a0b122c025f49460fbc82669072845593d5939593159497d04a8b1517ab2e564d5e49a62051bf9a027c5791226009ea6ca307cc19424766385ae9ded682c50c414226f831583560b0fc8b498d6f23452083147781ab264126f8ab079033d86a3cb18d484cf0c72635a0cce004922794484145164d9abc845e498688981419cd2005d5051c3431dff42d6c6005d3eb8c74375e89f4259a2115c90283d4ca81c142aac0ae5b32e4cd94569ec45a2995be4bdd9468846894b8293ecd5089e5df4842953cd2ca8b94aef522e5cb3196c6a31729b61a37a2f89d009e98dfc474317d8b1e50618e1dcac508644fe943138623deccbf4c310243903723b63cf05face0cd885fc080c4c88b146f4544a27e4544dac621137c6711ea4a1e89c508c68f475f8e194d68d4306de3910d156482305a0260e22ef04da66769d96a902d1b0d72654613db8c283fc55de0b3083d383ea965abe1b56c345a36d2bb969009beb01899e0af1c408e593c1513fcd38b14137c13cb26000f98e08f5978252d462e4c10f4c204bb00bd1af0c7b148cb49344b3a3702c3262608821df802208140aa52af52a954a957a952af22552a12f952a2ea421824f90a22fff5040983d5b3a26251a960a81e064992301e46cbf612ca0183e54b5f0e19cfd222912a19303e060c9614090c2283564141af24af24af24af24a0ca2331610b1e40d9a20b2d4830954aa548a0984a81a64fa94254ea532caf0241d5d30881aae7e153a59e85d5b3f2ae82a152a59e45f52c443e182a9045c5925ad948e08aea554faac0a75942b3846609cd12900bdff77d2b61f81ecd9215cf3b792b2acf3bfd0aea573c6f8566a8e82bf28a52aca222ef6996d02ca15942b3242c12b1d8a2074ab6e04194f0fbbe4f159250a80fc354f829d409954aa152ff4af1f0a14e8f5a41a150af4aa55ed5b2bd846caa15965f51a95a2b2dd4a350af24af24af24af2442a40d8ce2472344a384860a1a211a253452d00cb14ae2a9683cb55a36232412cd121ae49116509f48123ff1133f929122a457d08bf47a05bd5e241269074f307198bec50e8cba2801e9bba0e28b144a8607e3a42d48efc715d3468de338a25a6a18944aa146d5a9b541d3d422bd92d0204b4242e6f8122a7da597d0e925c4f2de7b2d1be94d632b68547de949967f31a5962dc7114b0b1564aeac902ad3064d12ca34b6d430c8249dc037993ef0bfee95e495e4954428e5894a8e4c12e8d10c752c1b892a79adcf0b3d8f66c84433647e6f64de60fa163a40b2c50e986cb18323de163a9062d260fa163a70e27d9742c9d8420d8b4e2712e93f53eba35942b3840b30ba579397902983c80c7f144f4f1452e1cd8c2f8a3284c413cbf4a7128b143af195baae7b05bd9ee84ab6971429560fea9730bb92aa334ba0f8a9d2a794a454af24aad4a33a54ea5f42a6f85dd7427562d7f5a41ef5a2281a295222955e52983692f74b98a2972a9544960d34497ffad7132f2526a9947a099d6ca596ed2564927e7bdf97be542abd8d047ee92b954a25ef7dc0824a7dc7b2bdd87af9d0891fa2f8af206fe6f4a57f3dd1d1885f12c597d04bc83cbdc924b67ac4f74e62e9619c4a3158fec128a5a22895445413734ca152e283668a258a5ee9c5948f4e7cd477a437b14e204bc6fb2bc883219da030c3a390893743be0caa284e5084df75a6b7e5c811c5f45ab69429f5b6d7f7a498e3c8145b24db064fdf75a7ef3cf1bb8ef4a22a0a330cff45024133f5aab7e58062a25a2b1990eacbd8600e28262985024560a656524136951433fc57928e06d57a8dff0a1ac7979079124da2288ae29ba65792ce06a9141b77c38f67bf6958efe9ee31b87f48987172fce125cf9ae27099453fa7ee15aba9fef2d7f431cfd51adf1e27916a980f20384084984468b6446130d4ddaf9327ec8ec3e7f37e8c5e9607d7f2ac29dba28f71b9fd3c296dcd36b8c56d108f55bdded84c6331ee575cfb7914ef13e380f0dae2ee0dc528de57c52c8bf7da661b9d13fbc060b1d989874031bab6b90665efcffa937b40f1cd10285e85e881a6eaf55971dcbde6a4e9e6eeb999c9643aa178eff486df88c7b51d93c974da2bf6b971f79b93a52a984ca653a9d3da7e5a36994ca7181bdaa5f78a7db00d544ddb990d7d66d4b5a6f76623a765a9cf8cdab001d3b8bd6b3048e8dab92f4ea7a8117fcb5bb7362693e9b4c36696bd297bceacce68f9cd077257b9773cee0e8493a4201c168b01c9c1d111723344ecc6872924674727168395b2d83e5b76eb359fb2cffb518ca2f7370dabbe3ffbd6f6ebf5e2dbe754f5b6ba7d9dd6769eb5a6ffb8b6d1b5cdb4c7b7bb7e06e2c2c576cc85c32d6e89c4702494bbcbe0a4180577379d14af707792932207dc5d26fb35a79ac53e8f792e9bb7febd62966dcfd73e2f93fd9adedae95a73be8cc15fc3aef1a4b71abe76a6b51f98d7ea5d59bcd7f43566af7a62f4ff01465220a2801158ec9363f84c7d58dc9e1808c76e2710ba629c6e352eb3e8add59845d55cd398adeddc3d311adb67ca6e8dd9d84f4cbd2d9afaa4e89ac680ee2d86bb9d4031bc2f8a6b6f27900d6d0387eb7602c562ba55db5b7bee15df7237c8d5eb6577300f7b6b369a2d67a96ac3860d396cb06106bdc1c60d1cd7861c379c38a037dc80830e1b700e17de97dd7ad66a1b7ab7b9e7c4b5d3c64e796c641ef69ea58ddc4ed98b9bd9c0b75cb30183e1d29a66736db737b6b1aa5edc66330ed76a17be5d960683e15bbad79605ad70f767338de5496f9fd767420a2378270f08778f39090ec0f7e5497d2e6ed5ebf332bc6620b2bfbfe697c5c0e02efbb3b630d89ad38dcb913d8a55f59eddcc8647e27b6df3f93af0f815abb14dc36a0c55f367c512078710bbd81a7d1d74f8189815abe5c9ea062ce0c6bb682ad6af830ebf6b3c29ae959807c549b8bb114e7a3cb8664b8ce6d506c6ec9ed9d06b4ef78955359f366ee01c709c37e480e365c38d1c3768385e280e3a501c39dcb8e1ea98dda063a6e3060ef4bc01e77003878d73eb96b551801d1c1b338869f33b1e084d1f866235bd347d4b3a5a9cec8e7ca72a4ebf6c5fd90c273b197787e164570277f5fae41b66dd3de51e6ea0b321bb1a777fc1c94ebbbb0c27bb98bb0e40185d5316eb35d56c89e69b8d13fbc4bc4e617ec5eaef783c7b546d734d7f8cbb9bdc3dd4dd6938d9819a2df78d26ba7be79eb39965f1aff751bcb2edc6ecaf39dd77aff88655dc2dfd9d5e763fcf9aee7d6f6ca6fdf5447787c14907727716275d89bbff6495c6629ffcb99d9e17774fcd9627f689fd5cd6c6c96a1b6756d56b23c75e7696aaee1e7ea0bb7b3b20e181094ce0c3f442132b62503083224184c0821d1a0e7060024abd81612941c793183fa5520b434f00a23a418549472b0603379ec4706140f9e1740f33ec600b624203a51d9088c0c5e84d8e1c31fd2319e18bb16ba26b024950f74dacb4287d39461aa514aba6ab4929b184f7a5d611ef3b96d7a0506f229dc03fa5589ef73c78200b09f8a8ef584a98bef34ca9e7c1ab41b18c1c31b19ad8a1e6fb130b495057f37d133bd480e0a77ee743fdc8f29a91954afd69fca0aee684048504f5a9ef584a9cbe3b7df74a8c4fbef4f026660fa9d5819cf762ab03b9ef7728057dcde94b2c24a92ed53ad242a2c412df9f5a473e24415f93fa2f550479e4c8912335dfa7584a2cf1fdd83af2bd17446ae77bcf3bb182ba9ad39b58415d8de94716922676a8397d505733fee8b1529fba790902fcd417f13dea4b2c2426228cd4a45a4abc12a75762fcce6bc4ef6a565c9044bc0ba6d8eae940cefb0ee4c007ff7b09027cef77be20de975841c0f75490ef3f4fc4820609b25634d831ae5ee082150c48af277cb065e4eb7e18dd6311f93cef3df041100441f0bbaeeb7a3a5be94944c622b6ee0960447cb0888ff7e1fe3e7cf179f8c22f2c4200236689d402593d618b4811d3d4ea11c3075b9fcdfb8ec4ea2981e0f77de0078220f87d2cd577a91f545ff7a10746efbaeef358443e93f4e3687ac7f9d80dbed8f2f15efc106411a161f678adfd992291223e7466c9d4b281dfb588143149ad1e5164b5887c668fbf1b2975de0ac6d297a3489125bcff7e89eec12f72451124415f13ee983efc254a7f7a6f1569e26bc2569125c43fb582bee67b536b89522be86b9610bb0f5bdffb2f2176ebd80579414882c0d615447668e20a223b983ddfbb37214235d208d1280969846896d00c855ab0c2269f90bbba77e2c174ef7244761f3ef97284459d11946e2503f2f3586116fe42df158890c5108accf05f412f93c9739228969ef47a427417df4dacd00a0fa6f348620bf46040d02864852e45f0202fc6bd9403ca97a37bf7bc15864a9e80818ca396a32948a48f0ab2333ff14889a8a4c89d845f510b9471645231bda2a3294e4e94b454471d206da41371c889e9a98a607a27274a7c6879c26a03a622e3932fa62341d71185a2e7815e4b0dc1ef523d3e13740f6686d1c9136f060f669c81771a18b930bbefa2985d93195653ac949c86543974e870c2831892c252680a81c250a563b5011d3b80483e45f4292e5a21161589454e565a367f42a9443a71273a768462492cfa62bc8ea8138bbe12f8a158641e117964140e903386c4771f73f800c50754ebd47227a5968d8613b115b66c3584a074ded79a315412323d9952a9542aa118d00d8168080fa8c2108ea83a4fe84b26195d0c962030dee64f48b26423639460b4b4842d614bd86a61a13c52a82864b9a9b6500fe67b1b4985f93131bfda141e519137e3dea130407a61249252372d2d945051d017e3fdcb417a30442b902c6f2b4909bf08c3965618b674acd10a1ecc374ef1603eff564629422d4f5a5d80043d1816171a2cff4e2409a395bae96ca5182c9265236d347e9472d3f263eac60b432ff4428f145339a4b7a9157061f91713e2e0c17c1020a57833de7f8f3a125a610a0a092a0825048a3f486ff3bea525bed7b9e7e04af8238d7799d1d170791abfe3f23468bc8bcbbbb48ab89042e690c3bc2f878b2aa5fa140d97a7d14245cb9037d322450b9137f3c27fe214329a38cc7b710a29e4cdb0fcf7a4126fa6e5bf27874829a298c2fc462953cc2f7c97b0f512048d77f91d1aefe2f23476564fe369b48ad0f855d8e23571d737be6d94627ecfc2228558a41272480a0fe6eb5c582fded360bd04e1b5765c7ef53b2f4fe35f9ec6935c58346440626199c10adf532c2d2d2d2d2c9bf7a487211a313d1843bed611e114777defc2128fb814728814f260be77a1026973293652c87bb2e4f236d224fd7b61390d1696b7b914182d0fe363b048a99b183f7ead20972a90e1b39048dfd2d2c29211b2607c8b0c184f82f13c7c3160b0b0b44ab630c809a2cf09a251860bd4d210d03d0f5c0941282d5e8d20ef7c250513a8573d13a95f7925ae28bd12a857bd98fa951751affa1dd4ab5a3ba95f69f91723961ef46458800c997ca5960d348de3e85205f2f4de974a25f04d2c23668904be08a658ac27e0cb11d15671ab299acc7802ce2802ddcbb1caf1f2fee40b0be5c5ac64b8d702a52544cd603122d97c0a8b118b118b118b118bd10865460b9416282d5eb41cb5446979428b9496291eeb73272fb697263d264076a91bd6878f504c5ba9ebdce589ac5a91e77d4b36438b194e4c10156fc8b1651b57ff42a35bbdfcea775e7eb5fa17185e1e86d09321e385b77d66cbfb8c6f5981355e86172dbc19f05f8c5e5e9a78332e307e75c4623403fc1925986134230b6fe6f420942298e014f15fde488d27b65e8258fdcbefacfea5c6af5a3bab7ff9975611197ed5325223c2785b0b94186ff329338a66946086910703fe8935230b0f06fc3a301504498d97e1c7951443561fc30f79791894b862478687e195a8d17a113f865f7d0caf840cad97af15440cbffa17b1b513436bf5b2f32f0f43cbf4a61144d16089ef29d4f77de29b3e7572f39432c93eb41b8bdc05fe0b6bfc2c40b2fc58e430a32fc7cb8326219ff1c2278ee3f8e0474adda4825caa408a9e675a79d47f2c23a6b762428d504ceeadd89230bd154bf52fb06c9f39a325320989cc16d68ca2194545ab2298e0b394c4200f86a56289478e78302092202c3c067c28a088228a29a6f05a5e02f0bb23dedbc420d48a88b4f994b09b51f462e430d1e43946285f0cf8e108e5cbb1d2b2954628291a35a06021b65e8c2440da7c0a5091206fe603bf7bc29b11df45168a25633585cd69ac2a40aefee56dfb85f562f4c580bf62f917f3d2c4047f75e42e25e0db6640f1663c2f8ebc9928de8cf7046f46ca38c59b29bdcd6b955a1e8c7b5e6281ee5d07ae88620b65a29e4b7999e1bd10848486dc16167d2b0f0583150a8d7e934af938bd08ba9fc618bfc312eec06885425fcc8a98ba49b588745d70a902e97df81dcb96c414b0035946cc4e85fa15962d871313353e8a65025b45a19107e33d2915165181f45e2cd9c8928cd5166418d4b54adfd18a679a4216ad800cf2669e20854825aaa223de4cc9484df7e3f8282335a4962d07948f25767f6ad954225015b9cb33b56ca3d078644432068d4f78301e05c8f104e514250c9af279a552e93f5668c4fcc6d183c8a2908b714534a4e603103e0441c9306dee84b4b993aefb5651ac86c88e54e48d2552eb250893a974fa53ab88a965a466150212fccf5b4580b4b913182240da7e48cd07207c08e2851f7de00c8883e991bc100ba3870a8956a8b8ca63f2c48bb75a45aef02f527a53cb96c3f4a76e0564e94d2b53be1c5ee3bd0ac90ad1498ac90aa629a62fa874442ddbca14a6f73690ca0a91bb3c9314931493154c534ca1108b345d450466600cbfeb3cd5f77d200882611886a17874b4b26265c50f32bef7217e46cc2efcef7d841f2907ab2a5655acaa5855b1aa6255c5aa8a5515ab2a5655acaab8e28a0fac3c00822bdc93b1aa0029ae3a9278e4ae4f1583090138a6af0f30d84e4ddf5aa6ad383dc0603b2c4657ac7f0c71f2078cbbbbf9a384bb3f2610478e71b85b5b73806802930131e4eee7ebfb630231640684f3b02d6ec5ae35af354efea001f2879abb9743b099cd36b2e7595355bd677ab3cfcb6e20fc4309eb8bd913a33f5955716d870048200051897f369e9d18a76f77ddc14902ecdcf2a96f0d4dcfb4d5c9e11f78e4700f0fdcaa77881cfe61c78987c061a6c5683e719ac0b90147003ef0c007277cc0e558ec13837d52bdbe4e1f063b757a83c1721ac369d96b55bd27cccb62746072640f53d57bc636d6b1f59eb2a701c974643a3f80c73a3eaaf828f2a1ba7b79d9f63c598caeedeb1cee99b5badd390b611f13f135d450430d25504ac32c4e6ff66e9dc33d7f55f5fa60e991458f11f4c800d90301ee0e00277b18a0070d556d697f53cc6e22be4457fc5b639e14fd1bef2a634e8ce613e6f14ed99fbff1aedae659b1fa321bd9cfcb626c4a1946f329cbe8ef36a3f9fcc13c9cbc79e25ee22eaebda661aff8b66636f559f1e7d4d90d6b6dce30113c17373a7923c58d921b06e0dcc68e07802ce6064c8eec5d3c763c004af2c607554d7fb879ac43f6c004f79dde7ad87bc32ceeb93f6eb0beb52058df1a8ec7ce8e130fa1cf1497f7ddb787bb2faa597c6bf59a4fcde273cdab0d0d0bd17bc5e999d268adbeec0d0cb683048e1b501e3ada1d271e02091b703c8d8ed608208caeee2eb079826bb6bc51de50e27065da9abab07a4f7d7fdf20b773088f1c186c26071c3ee8686b90a0d115d73ca0066622c19138c2ec802924737f4cf3089374248ee059d3dcc5bd11479431b2db39045db18eac5df1a66598f5b2f8e735c63d7878010f2a0f34bc94c508791914074686d976fbdcdaaf2dad456964aa7a6d647fd776871bec0054ea5bdb01b6c3894716f7d97ca6fbdef26eef8a67280f04f0d861dbfc79f350e990021d502f779b1f65f3cba8b816fd9beef465569e35bde5d521067247127648b1d53606af6c9ec1fc4ef5ce6a2251c3c91d3c68a22071844c0f38461c91f3ebfb731fbd3593c60777a771f752052d276151b8bb104ec27aa8edf4f670f2c503f225c50b081d5670248e78191919208c6eb5d529aab6d987933a18a00307bdd31baeed74cde99a9ae54e1fc56c5e73ed47b7fad6727c91830a248ef8adf369c411a5d6adc6e58de2ad714b04b3980832c71239761c89231edff2b9dbfb43cb3733334f985932639343157220ca0108248ef8ccf33975766799c5bd4e57ecc3e2bdde95c53e99e77f7c89e29c3a4bb5cebacd2ce6592f1ab3db8c6fe9cefbd18b599812a33955b739f5c12ceecfabe23e871770c8020e44ee8ec411798de19ebb655fdb69cfdd39f4a2eb25715071d8e18ec41132357d6b6fc411b8cbaef7965ef5d4c16145de10c51d89231e4ddf88234a145f21372cf1e2e40de70d2a1c468ec411e7fd979141d39731e28872cdb816cff2967919f6b2f8861fd7f6ed775e35ce288b53b6b651ec93e213b3587f8ec52d911b1247ad44f1c62c4e9de9e0248e77bffba29f711ab36c3e1f9beebec3c91b507cb3d8674d65b21b41babd39f46256bdbfd31b36b09996d2d2bd6234fdf58a4ede78c1dd8970d28626ee4ecb9fbb3f9f57998bd9b57d7d7f6c50ddcb8df18dcdfba63b45d38b43591b6cb001c59dc5345a3b3b2f4e3f2d7fcf79d5bf1a776b2c0eb2a61fc3b3a6bbcd6c89cb14e671ab759a318b6b3b368a64650c8a6b5b63160784d392a7c430419cb4512ad7fca84e7f3e17a3aa17e6f38a6b3be59335bdb1786354d34096435ee273c52ca6953cb8b358b7afaae9d68fd98b678fe29dd7f59e3d6756d7f6716da7a4e1e88a75fa3afd1cd205c57dc578f6d8e7d65eefb89878c9e2ada634d2852b75cf7a6f9ff37e7d6bcfe2f527ff0f275d34d25bd379d7cef5baa4947bc55a0606250f1e30180f9dd3797d7f67c70ea05cc363070f1e31303b6ee790db39848789e38696071028de01946bb6c6e84e6f291044d400821a64a5dee9e7fde87af3eed166cc49c6b8c8181960b8f052ffd6785f55f6ae12a3cfb3a678f63aa565165ddbdb2dab6ade4138490313569ca42108342441d2c0d2008300b41000060400847b89f5ad9d6c8bfb61334426b7dea7a52fe3c23bdf30ebd218d5698f4ed9df17cf3e776f6a7a69f9716da7b298ecd94cabf1b479c59ff7e3da9741d9fbc3661a2dfffd9527c52cf6c9fa716db39846068005013803006486293358608608ccc0033903caddcbf469f96bc0b7ac6ba05973bab19a53517d7f7235ecbcd6a0d39adad2f49b0fbbd9c9015262f4ded69cd79ebbd736dfeedfda5b0a746fb8b6b5c66aba66fc7aa7b357d5f4e76540f726fb35df3e032973aa7a73ea9a9fcd9f53f1c62a7abe8c47df643fcfb3a63bd51987d1d7e9ff6a962f836219f5de078003dc5dc74900c04800acc856085a4bc8160eac2190ac03b06eb0c0b7c2dd779cfc213d38f932cacf5d5cde6b0a7395b9fbe34b8c6917b73f77d6f60def74c5ae12c70d28ce69ca7ebdcfe215f3d0f29b0f93e5d89b9e290daf78267b57097363882c26a62c615e66af98bd4160700c913d9e9d292eb75f555322bed41b08ef35f7f030d9d61895bdabfc6133045defcf65515ac6ddb3b6f5fd15f7dcadaa5706c56bdbd6f6a368ea93599c4e5f634cdbe92d556f78a7b118c634d9d3f2b3799fd8e7655a86d18ba6fa31ee51e6adde33ab7ae35bd6bfd98cc32ade216b60e1ee394ed6b091358a7077214ed6287989d9546354a77896b2a79eb5fa732afec9fbcfaccade556accb3dedab95ef6f260f675fb395a8a79d6ac7e5ecf74b317f7974d5b225888bb037152062848198048198048197e70f7219c8ce10a5e627576758aae2fc3b3a66a7b691885c962b3dcbdc9de55ee9c85fc78982ccbde55c6ac3f79ed595b1c3ecfbba65b63f4ef5ef189d9df3adffe87cd1018dad53aaa7a6dd0340fc16255bd36427852dd02e1d865db7b59ad63e72cd3d63486d3317cbb2c8d27d5b99daae916a287db39c4e6760e09027473d9d6bc6c6b621d36efabaad9c6d4f85caf7a6b326dc5c1ddeed6f896ee04b9e1ad733a3dee6e4bdd79643477c7a8bb9f3377ef4e4eaebaf01928e0ee5d0c27572c98a53ae4291c21024d70f78f49063c1024860a9ce470f76e0708189123e48405b270f7ae014ea811c3863b3ee0ee1e10373b24a1013434200beefeb53ce04914263094850edc5da48004a6745dc0aaf0e0ee1d12ae0045912f2670841cee0e5640468aa256031b11dcbdeb628623064738808810dc3d366b6b319dc33fac39d51aebb8fbbb7b5dac68b8fbcee8ed5133ce356b6b2ecc83a6eccc86b6a12f7b65eeb49cd99d55fdb9ab62f662f6775e6d401bb006dce1a00e076d802c772780932e3067aa6a77a70161af0f098fc7dd33f683d72e07ef7ab8fb10275ff0c1dd75b0ec8decd7adb61a0bc9e1ee3339b83b0e44ee7e83bbe370f71bee6e83bbdb78e10bf205292e7797410dc0dd6b7018f2052bc8178804e0ee0128b9fb0c369436dc286fb84eeca3aaf7a66ddc8043c7895f33f4f5c231739ef886eb96cf72d6d676ca9363b74e7930eb382c77f761860c1cc760b0db098462349feb4d0f687a8360dca3d41a97eef3e26e698e96aab8dbc53fbfdbd9cbc864f951acefec71b776f6f737e6c11995c93a5fbe0c97eebc3f6bf5bec6a98ac3dd67718a6bba7dfcf3f85c53bd339097c9644f133380a76171fa03e31e5fc30fe031a6c5d69c6a98d7e171e98e6dacd2c4e0d20d73aaf78ce9f0bfb1cae61e6fc3c66336af3ca9ccd62d2b93c9be7c5cdb3c6b8ab6eab9a69f9bbd4c0c2edd9fd7afedf407e69348b52ba7b2574d6f6bcbbaf69a59dacbd47b63db53bde7555b1eccae78cdb874ff555fa7bf6fedee59febc5f86312da6de35a5c91ed7b68a4bb7dade5ea72f933d9bea9c679ff7b770e97ef5b69b4d7d5a8f778bbbe5f3f37e2d532fc6e5c85215b753b5bd3dc6b4371f8ae7668f3fefdfb81bdefb3a0dee9e0fdcdde624a905eeee8ee3248b15ee5e9ea95e537603e5668f67bfde73af3765af8f5ed3bbd76ca3aad706d5596ff68a757ee06ee7905b736bd4f4f6d01a9f67ab53ea1f3643d6f479d6f49659daa3f875fa417ed80c7916d736ae11f125c62cedb13abb6a7a7dee6f20bcded7589db519fdac55f34b990c65f389d967b10f7e3dbbb5ab4cf637f57914aff796c3b5fd6abad7f671f7a6d3dcddfa35e641dbd9ff03dddba318c5f804c2677abb6b0ed56a66f79acff6d4abf9e58a7d529ebfbfa67bc5faf1ec737a7feeebf4319b3e6ed9fd3a7d35e7d9ca93eacfed94cd298b73d578d2dadf4757acf18af53d7f4d1fc53e2cd6987d9d7e6671124f83d7fcfbfe9af2e0d96bf5ded8bc3e9b69a5bee19d7e0e37e490c3ccafb7b69fc5fb6296e7f3fa3f99e5798d6fadd6f731115fca72642febc9915dddde1eb3b98dbb69bcef99fe8a6bfb65d4db12c18fd9fb1a9f29baa69f7f36ce97bbcdbff555b766531abade97c9279e6194cdbfa6ef5af3fab8b6f336509ccbde20cf62dce3353f9e7d4e5df3aff7fc8df7e5c12c0fcfc5f952ab785d6fedfc35d5edbe5be7d115ebe49d35e549d99cdb3904bd3540185d7172d05bb3d35b0a048b7d728870f7d249d413ee9f9b3d8a757bcf97c17ddedfc3dd63dcbd1090ee9f0f0efee156ee5f0f17f7ef068572f787fdb019e20af2c366c8f3aca9d6f8cc6c10770f80bb57048962224f83e29a6e71bf756b7b7d7f1eff0f5eff3e4d2e77fd0c640b2ff3ca8373d9f6ca80063260e2beb6ec7e991c6490ca7656756c64379dfaa4288bd1aeb482173f314ea7e7c4403b3d27aed9b0ec4d4fce0deeb23f31880177d99fcfdb46df201ae31eab1042eed609424d6f8f1f3b3a36ecce8a7bee0ed62c467328069243af107bc53a260c5c2fb0c2d73617c31b5db176c10284c06caba6b707ba621d14637576572170760692dbb8db0d1662a3d15ba39381e8fc642074cf9981d0d91bffc03dd0b5cd3d7606d2736620b01662c5b99d403174c5ba89019a0c79d8d6186d89e19dd715f8b83fecb25934c15d36e4308303bda1c3860e8ce3621c700e680e1c341d37d880832b8b9a2c6650c11154e0857732505181cc5db325eede3ab01b7950ba7b1244dc2de005164029e8c2cb156f20fc19489193ee4757048bfbcfcdbe9b80f7753e70770338890511dc5db3e589d1bc46410aee42f0c2dd8b70d24808aed97286e294dd38e0286d70cd50174ed9ed2e014f8191114d1c8082262dc002c53f9965f3ccdd59b0822c54e09e022c3cd3561c143581fce01f0ce40427e8c1bf8b81110ad4bbd313fbac8fbbb758d973de994cf67aedf1e53e31cb668d840ce8fe9019816739b5dcfa02f1a54c6ea76b7bbbe5134646ffe01e39efec0c449b288e9981a07867201e85ee34c5ab109280a4d9125d71cf79676b5a3befcd85f7ddda86c63ee94e6f298b73f7d0c91114610446ee00f87dff07af3c6b7a61408311c4e0227881fb8eaa5e9b52dbe4d6fb23e79d3b6b750ea7a2f9e623008117eeeebea4a88a22a187699ceef419e04f38058a64b86f20ecba6c7b4340c59dc5522fd67f85b4e6a7b4d8c61a5df32c963b37d637b657bcd73436c40fb8fb036376a7c605822a1eb6e28781e08be9abaa37a66f2c56dbe9cfed1cc2e36576b0b987aa5e1bf5dac0602734cd43c06030582cb662144d6bb1147763380d83d154ac79c0603cce549db541703833efc06033bcbe7fd9d6dc71d9f6f28879191c37b430280e901e36ff6cbcaef707a3d906cf72f7877a6f77dd9887bd9bcdb6cb6236afe92d86f765cfd89aded035ed8965da8ac3e29e33abb7730801766ac3b7bbc6b0daa2f9c68387aa5e1b744d7fc0b8dc8ef9a43c1ae8ded89ca2696ce39e33dd5be75b6cdf18d0bdc580ee4d634cbb9d406b4e71769c78081c3e3b6ee71018ec061f94c80d5dd35bb3b9b56b2c16d30014540342a50686b897ad066c3033f0e4de0c0cb179765db9ab66604889e20c94dc1dc7b3a66a5afb79730a26ae773a4b6b99c54d81db99c206f712cda96906427444e402229caf2dfb79a73f3a7d1ef6aa3fcbea4c13f1e049a41908069ce0eebeb6acceb556b3f70727049acfbb6f0f18200203aa0b04e102585c20bd004e896ff9d432a8b971e9be408b055a50ca72ed47f6b9990cc634199909746fe89a671678c27df6a7056690a20b2f379e7dcc0ce6d1f53e8a7d6e2de6c2ec48d123858c0ae4a00245dc4b2d937dde326db3a63f649fa26baec99d36b272cd8f7d2e564bdc0349812d50800243dccbdcfdc92b8b7950fcfb9a25665b1e9eb4c6b3a6ebdab23ad53baf308fd19402efa5fe18984fd518bae6591a8b4551e41e8590eb28703baf510c717721a2b0c1a3a081d31b8b830c4d71d7e990938d733de0fc1013df174dd1f59e3b4346dc57b5f559717ebd5a881fbc0e9d8e707202209800ea5eca767aa62a0e083f9abbb7cc33bb3f4a7c6bf5bde5d609884b4ae0b8bcf52fc9599203298127ee3216d736dbd2709945253023955051c2c4dd4b594e557beeed6f3c2d9b5fae9927b3b867f1d697c6e29facbe59d6ce8bd34a6c9494c8085021dbe9b378d3f0ed964fcc7eeede309b69678b62b68d800e774d838c0e04ae8000072080422006145940610228582874802225f4849c87c9ca7b93bdeb73eaed1c52e2eeed6132d9bb601af7dcfdc36688ec5d5ac8092155680877a739f900292e2befbe3dc85a36fdc1abec5d42f27e54cd1ba5e5075ce001390f607929b391bdd617b7db6c43973f6c866821b9ab6221fbc6f68a51ac5b1e357d7da8e95b4b7224892cc9bbbb03a294b354bf101f7e351de064df1b9b690e282a1d10d493ff87cd1007c8dc013e78e900bc833c11e5d63c5183f21fbd35280e0c76621f180cdd3a86d33c6b8a62ddc662280e9ac69ea05136c0897ba96f036aba013a18400477d7290388dc81e024521df3c9b818d0bdf9b0736663b1bb6f0fe8c53ea017d7623806c43831c59d30f2d689a0f287cd90bde25bfe0183edfce435688b201404c582620c61013758c0120bc069c20a4d10a12c651beb188b5574bdb5c7b135cb1ef7dc0d830981a6307f63cd698c2ce6c64cb6b1ce9a2383f9bd6216d7561c199a531607b9b5b7744d7fc872b39fcd6a58df1a2e89f4cf74bd389c67310ec53dd9674df12ddd3c6b5ad3d70755bd363c6bda04907bcbd3840e5f33be65dd44c99980623241e43f98c644900c8489f752c76036df603eb75e24475eeebc2261a25375070950b9359277dfb4147df389fbec370deb4e9f46e3d4c649051ca169b30260dc539d9380a3fbc36274e3dccb2480e827ab3f3b0900f292cd8f6327013c78a0383c60b09d2331188982911d186980911f233c2ce1842524b044ce122525bc70d7ae72c5aa0b681751c49aa3aaf707f03a303932994c86cda9ac2707ebf487c5b59df3a5ec860ca77f5fcbc4b06c1502b317a7889222b4227f001b1ce0010728e200a924a0248124893209564e07b905e47080ace05fc3eb5b43cb9896aaaf77faf7718bf7ddeded6fc4e8f06415264706f39bc5b593bd587f8ebd6b2acbbbcd397ccb3a3ac57955c5e7cae6d7e79a71be94b1799fb787d6ad8a7b19ac6f8dec61a5ecc6bb9e962f2ddd3abd40172808d08d1f27fcace0a7023f46fca07c8c5c55afcdeb560df22ebc6620368faeb7881fc0170193536eb555af4fda1229f7c5a52c567956ddbaeea3f876c3693bd0a62d122d4d5b6357d954d830d8ec068014522f4197402fd13be819d82e58232c102254dcd1b5a561212f83c41bf13230f4fec36a7a7897cbe52a6f78a7309d7795371e966303e75d255e736859008fd59b7199c5c9c87480ee0f190e77cff2653ab59d672f23a3f5c5b1ae350bf1ae5216a353d3b756d3b71683f99d6b3f1fc36298c7299b632caeed97bdab5cb36bcd2fc3b3a62a3ed76bc3661e26d0fdf1323bb47a7d78f49c59add9b1d734e3f02ddd5971ed07639676cb2c2d6f1d231293774b046754c6b039f5b9353cd3e90d279433d6262e88e3503168de309f619071b8dcc6ea5dd31e25bae613bfbe3f3a59877bb946f13246df1f14ac5a6795ddeddac3cd6e673f3ad77e7ee5c1bd74f70138b99634d0fda1517cbb2b909b13576f6ea7e4ed48be0571cf43dc48c76a8be2daa99fc7e74df5e8c7867a0217667135b11fbce6da8f9af30c06dbc198a5c57ef0ca6367072d07d7f6e40c845aea01424f0f5089e6dac63700a8b75d2bcb7db6ecd60fdbebfdc1b77407e0f5ba4818f1b8d603c3035b0d6c405ee6aeca629f7c75de559e6c9bf505ba496d294e0a430535b4768367093c4a7812c0b37960783eda0768341a0c63019b001f712f6f353d7c5e736cbee1dbafe9bb7afe3f45d15bbb9fbb3f3d6cfef9980c5d5bf56eddf6c0621e9e94dd42623f788dad1906fbc140d69c67330dcf1e4d51fdaeff32b753a0bfed2c777fd41b5bef1993bdeb1f26a46c1f68cda928be38ef2ab1ceef16b7a62cc66519f59ee94ed9f3775ef55ef1ade5616f0fef2ad92c93c9d0c0cad0b42592aa24da04540ad486ca385d70f69c36678cf39b8d6066c4ecbb575cd501f05f6ecda69a0616eb16bd98fdad5b02fc9731b86537cce330ee79bcd7cbde56e662f5f7dd3916fbe08fc15abd34187d6b1a5d5bdaabea8dc92e56737695b414979e65796efc325a46b338b7dedcece2308b6b734e26edf9bb599918196ed92dc33ea97a63388c7b6430af710cabb31bfbdfabac0bb226ee7ee3a4ec00321bb128312dbc94ed9c59d9eb344686cf3503817919f5a67bc55ba740f827abec0f4e99b2b8cce270f7636438eadd794786d5bbb3aaa6258a31db43766350c470b9939323c4a6c4e7ecef2a8410bd667d31db7366204e9dde569c446669318c6918b33416e3084153032cc17de646cb430781c1767600e59a98be271e0228d7a8ea3d918082440590288204cc114f8e3072441023b6401aa1859731d9acd531145f191c376a0822bb11d33746bbd65cdeafd79cfe5eefcfa3dfe6dcd69fe680328b93fd3edb9c73e5d656afb8cdb9a7e1a8ea3dcb5b6ecd688b35ee516c444716c1c5a661cd32dc93aaab10457c016c5000a002c80cf1c1102397d9bcaaa2f796d5fb32329cdab96f8d0cd736ae65ef7a5f26ef7cb9f5ad3dd9f45c531e9c1c5222c206441051c3103b18a20343c48698a1b489b181c9e9a16f0d0c0683c92e2e377badd3da0ecc973c6bdae635b3af531a4e1973f745efc6b75f5398188a650fdbeb7dfc3bafae1208e7d61fe79da96a66d55cfbb9e54dcb33219e10a215020921861062062f6360f48dc16099b6e2c0603b3f00f59eb2c73ee9be3e298b5122de55c6d4f4f078cd7957a9d18bd9779531376072de556afc821d25eefe83933b383b34bc8ced9c85c4749ac3b5bdf59a5e9d29e5e3d29ad6718202d111d26906a253cbe11e213a34dc4b9dc33d8ff74dcfacf52d7d4dc34e3feb97c13ea98af5e7f00f427242821032830c424a1056040114c48d2053dc659e96f5fec9aa6a96329dc33d1beb0419820c52e654218706396cce0f2054806400c80f2031fc7082cb58bcfee4e4f00fb287a1e9e7700f4ce39db244cc7a78974c46a673f8870d8481c85e4646cb41718680c176640fd3e8c542663dbcab4431504a83d1681acbe11e184ce7f00f30d8ce9a711835bfd418975bd397c5dcb0795759d377ebcfa9fbc46c1ac36255cdecdd30cfa2e87d4dc39ade5a0f3837cd279e619d7d621a0d6f1a580d93c33daf85a837c7e67dd1f5de76d8ccb201a7c0a8242f6eb791a0744aa199010000000063130020381c120a062442a158d3b34ee30314000782ba5c784a1cc9e22cc831658c51849001000000000088246102abe7858f13aa6409680e43c6fc32f8d01fcaeaa3a43d4be725f344a0be30474a9631c026c9b5a6b7066497366380cb36085405abd9526d90d5728547a3b3a6dd2d0da04456fe7b155cf8789720ab1c94f29bcbb3f30f31112e551a7d23fa5d0cb843a56545e725f422161a6782c7af504ffdabb0f9a7dd217a758fe95dbc9b25bb310992a26145a4127e0ce9fd7e28ca60c6640a262c4965d8bcaab35c17de6040103d93e61029831b2ab37b25ff76331a2e723ea5f30b532835b8039a3c4935d1f7fb1c571f938f2bdce0650a28d3ff20e13a7963a3e6cea99aa3438c545a22c4dd7b7609fc632fd02d3e96720dc556a66d6ae770eef4544998ba9fff622010b14c2525768f01e11a48c10c40d6c12e61198b91a3a2d3bb4eaa89370aaa430de24b26dda401023f8922331eaae55083c3872317f94bf670c57d82112b9b78cf20718ec8d13ddc8fe406caa9b3451384bb89d3c2ac07d9a42f82aff4b5ca3681c74421012ecb50fd4e2098e102b3be8c2cd268a2d8ed07689cc87ad782062e13470fc2259ab626f56338bc22841e13fde02692cfa98b0879abdd24eb36f8aab0e8e8bdb673362b60cff81053c6afbc8d6a8ee09e1c4dcf8a9fab690dd1fad3deeb86a8eade83c60d30a56ab51e6e808044d6079ac60f08b8e9079bb7ec6f6ace4f9de24729fa2829c525a736ce0384c041647d548c2dd430927b9d304676f88e48a34b18c954db87386c8f2c5f1795e083e5e736fe7eb54301e792726c9ac57e1c95c91ce9f9d7a17b2ee8e3d2bb4ba1abab03851881705ac1c9cac9d55a12423087613ca2da49d1d7a10ca0053f76a95629c40ca7150b3f74f2589e499d5169f89f37343b9b018f838efc97a1f611ccd0d097ddca0b9ff007d5d2a7aaa956271298216adf73ad3c0918fa51f6c89b9e4279ff1be525a67893178250629cf4f3468193d509550be2748b0ed37d51d03192a5e057e7d048e600d2da465b7f37d0b2dd448bbbfa5ad493ce9181eb62354e747c70dcbaa322a152500daf9a048a13ccb76a95510dcf71a0d5916cf188b1819b9560276a7ef98fed67cc2b4fe32f8afa9168394f95d07a028390c2d2695484dd33a1bf9ff20c17ae0c96e4d3a09a64d389bf0b4446af063fd513f204f460320a8b034ed4ce124967b0eab79b181c7dadc1e5559ebf0018a60db4658dbc1945fdb83c92d23d67910e0c454b6e483a68a4abf7c72277d659a8f17b43df6a4ec239ee4ce4369894f20151b0fc9baa7fe57e4e55c88d66901cbe4ae3ce1abdd6ab325b1f5cba92c79be060142e2082ac4f2ff6ad35c01c5fb701623183935929ef26ddea91d705cca1f3edaa969404b702df0ec0f23203c4f4bfa6adfb5efdd0f3b01d36722104febf7c2d448ddb1acf93a84aaf5062226d514d7f814d788c1d60445a51a1abe337624e23568dd11d5630e5a775c8547eb5c4d6031686c7ac11b973f9720967a746c02954fd65cb0147bf33936f9714de4ae11aa8a0059b173351725fa20d9b1d9e39a22c8a06c46cabedd7f2f007ba719d483344b9a2a854dce99872b77915830fd27f554bd2fb0606ee2eab62ec6ec847a188e6b1aa0169ba510969c9ec2a35f7b552428988fcc21e3e2e998c1f4c7b25a76ff14226988f8df24cf13e051aa2e608b86e0d02cb40ccfbc7d265445cb7fa80e2c4bb3aea61e78a3cefec8e92a6809f8e3a542e51be3a10bb01ba454348360c5d1e7cb2cc728d7f6ac310a15a04c1d6438a635abd2c90f88486087d471ab0168e80caa2c8cb0a3dffb344ed3b5456c5274213a50a01b780a9544ccdcad833f6ab3d85649538c87cb952a4399543df9fba3919e5700a50f86923358d3885e183cc762e4046986216e5e837c5ef52a65c2f41fab92445dc263c120ee79f62d456d43663146bef55df7b9eeb639cd7526bb4def65533649faa9408d1d3368188010f9e02876afd3ff39b9510ebb8f174b7bdb413faf3230f49116cdb44f4622a92c21babc443b72be8a78c089738bf9f332110a1e618f725f469a9c0a59f2b012e0dec87d2db99e8334b75949408d5975bfde666c83a0ca7780046bb13862b7c22f4c27d3ba3fcdb65b3e0a3c0490917389094f3cae0bdab9b89499706a956dceb18efc934c894172d85e4c313829ba3d03d05d97015b7807070ac85e26e16282da2c0e2dffaac82cc01bc46e549a0d439427d6f9900beae3ad0c8091812bf66f8e22e8ef7d55b68066b62bacf452409e022dfc1e11942cc0879781e116322674c2a908937c0ea5763ea0a71fa151db219c2a649ac03eff4071c315618d1217be71c6ece53418683a9fa9db5365f7ba03cc3b8f5d8f95717298ac76e8392f9bb7262ad7e03381e263977f39b45db7a885317bf8f3fe7e7259d9ab88ebf6751a2459418314d7301a7e66c82356bde28e86a9d28c93c325c2af810972d835c19856b54615a045555db90b9451b9d998dbb9ca87f6a3a13aeca98e4e279a660b49ccb87dd8a8d2e1fc892154034b40bf817b3f14b24f101ffb241a261913148b55e276a2f727daa40f96d281c40ae1fc4876fea6f1fbece2a7e26e97366e1effacc0fcc4e8ed4976e373f6444ef45c84c43be1cb9bb498d42caa3e40d6028413b940fe2b300371ff3f6376252627913e18908821fe8f3d5844a6cee8ca66cefee62da719304ceafab6412d08f5a73afa8312f8d996cdb103da2fd3f6f316ac63c6640575759034d6d5c084d326bafe4bb780a728c5f466bef3ac302b7c12388be625828d69be8b1a5377deeec904d52894f9f97f3dc4e290719ab2e8daa3e1af645a9044289652642784ac9be6bc5aaaf84f171727bc80f97721b48f9cdfadc1cbfc981d0fead31335b45f44d4b5688d43615e4e22ad7e3a565ce40137b9b184ed32246eafd53a5d7b342dbb48414976c4e65b5917e375442d9035714a9e3f06b86cc23fa633b64f5674f1e74ed28d9fd0d8f084de41f3280ec4baaba2e5bb3a94a0bfd274b1e269efb0235494966bb2646616386325f5e292cede87e9e75b3254d07602782652bc0c2af5d194f3d4dea64882ce873f1db2d3294c9118de813c6a68849539de92750291508b216eade8886f9461dce96fef9b92eda2640f74ec932a372da18e310ef0be0d103bdbe749e443c1fa925be21bfa821887fd0b0cd396afabc7076bd86e99935be42fe69e6ad8d13c76ce17f70470023592a857e62031de75483c9004d5ed8c948a48dbbc02baa520133450f5c961a4f650433154d149d97b309f60afe1f4e38f892a8d87356e10e3c00950bbf02f4e9db8b282782d36d06940cc3cffd0a223f8fc5c31390c174d35e34157e6d9e4d2b774f43caed608a32ec3422e0847e4e5444ecc75d762644f4bda35d7c4a65e0449d73a3798750705d8f6f0e449029dcd14a42a4ee000a7483e3f781f6d24e955f571caf11a551f2cf36b657be1abee727b1a917583eac5256e4c09794a24610c7262bcf5cacec652919f98c8c5dd449262434c086e9fa17480d058f68d41fe3d675463024be2f18bb5d083d18b0bfd5d9feeefc3b0e2922c751626f461383a2e5b1b03ee8f0cc442eac0da3faeb634d8842fe7b85718d14b7a04b1e8c587c3b98bb80f354f13f2ed1cd660c2b432274dc6c836dbc8c60d3a33a7f758d1c2bad328c7116faa07b1f9ab7adea24c92c9372e0a129ee212a90ae2330139196deab4d63d864ff002c8c7cc18069d15d3d635a80cf7c3ae3f237693b9a8b2d5a67402c241df6d4680e2ff37a029a53e5b4a51615759ad84a1e107f273cee3282ae6e48a0c30917d99f604cc1058e0890b98d389b73506c9a3a6cc65ede272fb7800345ce599832eaca37188072ff49b9c3c7edddd2fddef4781da0355dc75e0a3d3c1812c7c0a863ae6020de0e61ef4f127de6888cb7cb0e02f3bbebdac145b101da386e3fc14db6a285ad825123345245890cfb2a8b3f63a44b2b1cf3513eba9784f1e2c8adccef8f05069d12178cac73c22e4fc09b549a088128524b6ac69e9a4d64f17dd02cc0f960edb618db23085b4ad706c2abf5b4e1962fc43ca2887110d6d7b278052b5312ff64af1f06d8b1daa6d89cf960f87f7304ef3895ac66270ee3eb1d46fbd9230416169b8b9a03e6b28b8935670122ecb2d94f9e38841b00f10baaf62cd8ea1ed193ba9e2da2a8c01a033641356dc85be950e315ed076ebd11f00a1d1a517e7d285860897ebe54193c23a62c6cba1ee07f9940bbfab7e13c0f3cfdf4c8a5d52d28c4078fbf34feb3acd2f869fb0f1c5ecf509311709261d7057d10bdc0044d741ceb32db7351ed3e9563643ca83b448c523028bd2d2bea87aabb78f30926b611fef12fa83d99b927ff10ac812a1bbcd101a26cf16a038d79908d96ee0cd3b679df39fb42b63806dd8089b29dcd544dad6df165c68f6c9c4268e160e5a865dcb998970eb90ed0c640f994e7f233896cd34cf7cd71c16352b5b307720d02842747a9078060735886847a5da2a0db06beb5b8e61341232b195e41b8a352da659db0fb322f2d1c7e9ac255bda073958746fcd7254ea2bf4a1c6eadcc03cc783583a421fc73a3abeef6ea4de1b3777b7aac1700af570b0fc8dc0f2381cf7eea01a6dfd362100445b3a9cb7bb92f03de15d0ab4c35f8f3983ccab5804f8dc82caf5d47f83e385073748b6ad754abf02073ca5a12540473cffe883d97a1975d1da2ff2d630585641f8aa286db129461fa6c1a8d36c66b6e14f7224fc168c6740f1ce3ba884cb04677e1211ab29479e89cfbaaf964114db0c8c350c4677dfeb8f05933b661d7ef8b9ad33e800a95bb769b3d9cf20afef638dc8f4bc2c637c02b0f6228779ad442b89933a3bc67fee8c773345752e56b19ed02c5149392accfbd267e63363f46bc7af2208e44fe1b62a60b41d2c35131f2b90f6596925e5c1f6ac6c4b21e3ee91808a880b01519291812a0136f83cb2a37970b1454b54e42cacf283b0b1f9b2d4fce3d7494af0199636bc364409a8eb9047e2ccd6d3d5cd5d962432830665239d49152affde9516c12db454c21620472d835d574815cba4f02b7f169951dd44361759a1219a80e4294af8d8c8918fcfa869ce96b372b461932adf19735831a360c14ab91d5ed4c15e23dece1440d5c91259191a22b3000951a6cf0ed56014d5c9ae099a8411158f4eaf61f1396be5971342ad53e642c909c7c1cd47e3c83b52058b2dc240ec24b550e5fd35e44e9fb1989034f20a022191bfe3c1869b64360d79da17b07476b438817cb989d1d399ac99bf499079fd229304896546cfc1604c6467fdc3410ecf8cd778119c25ff3181a0f95b31633f816ccbd8e6c6aaee473a17121b18f0ee1d8dd79fa384e0e8640fee7ff0edfcf39ff6e4cc30db68bfefcb36e5a85dc63fc81a936e3aa5d25c9bdb84b13b48e60a3a5f846ebd567b96533d01ae3e02a3de70496b3854ff16b3552d78cdfdb0d2db72642007e543ba92cb8b8d458028cd81145f2a81a4ddcf2ea657f7330b8af1e4f0723e29c065c5ab2e6db0a3dc0f229e0106d5954ce0caa899dd3838b9568323c6ea6b96d027346c946f84bcf0f9832f1ffd4b36faf5011bb4debd8f8b5dd898cf3c9e6c7317224944f8e62e9ff66e0bf58eb26ca463bff707d0f367d38047689e4f8ecd47f85b387b843f5c4bc3785c0db277d8b225f2ce1d6fa05786b65012e34a9b3b547ecb173455b96bf14e41321bcdf7ec91653c65d4242d3ca84d19c48ddfff2688e35a4e60307666399a9b401a50aeabe4cd3e71b6edb3ea0ea744bde46a8238e0d859bd8567c2624d20761f94fd136fa8b3e086e9fbd8e4126cc696b81b2372b6a972edd39945a5d1dfcce270a6b08ed2e2e119a556dc2d7147473898fc211a9883f69a67174935d241c39dcbb61f66bc95f1d05d5b9cf312f7f9177a008c4c48461fdaa53722ad72db4ae2341b52056e6c5551f599d31aa0bb3eb8cde4e697b8089980418f8c4f2a82d91d54bcfa537687a2cd73f301e9bf50d3ef4add7792b1f7ffeee8c3dffdb593eddfa8d691cda7b47dc330a47c3a116ed4994f3651006cb13e9af36fcd095a732ca4a82b81ffa391730bee0923ffec71beafb37a1844c19205e0635002bea3a81c189d3664ec24affb017d08fa6fdd304ada5d61d28c8a34afdff13b4e5f3d8df873f4a6c7ab990592a883399f8d0464c30b1939098a391ddb45b4c2d8d9060204c7e42f04b21e6e2ff1b576fc914f352baf7fde9b91d5fd0331bcdb07a6a8d8f8f797906e50194d0f3cd0423d07e253f78cba045a5db31f6021ae4a5fa2ba85067cbf5a7242f3f59c031f18a6a14214e11f9ea7bb0294342aa805b3605427a50e01fbd3aa4282cba8d48a22983832dd8926408582d0c65a02bc289d1664dd420c4f8e81b4b1a5b207459ffe5ad5f65302c8e751b8a8b938adc1d5ad44bd2339a71d8a2d5d5c1ee578f277e65861b917324053924f8d15dc17c9e1bf6646fd2afc0a2f7d727e72f2a2634f5c4d81ff743755e8f0d0192269b2524eb1c8f9b28145cbc48382f9523d04a170826658b7c4ca3297649724d3d4245de58c40c31cc0fa655df2bf1b45446794569b653beec086e6dda0043fa47713ef217044054056f45a1bcfb374611a435db665314b7decf8d7c369799c3cff76ecea2db56e838f5042f14750441a3f86729f5665435472e7bd1d168534618e4128a2e2fcea0f41c947511706590c88815ac9071043dc114da82d14532615101146bfdfe089c9e556eae0824e8aab1eed01c6b6577c1d0e4da957f19dc91b52c31ce9d52523d7dcde563d08f21e5787c619552cde1039f89601a7fcbfe90085365a4b0a25d483cc4c5de8205ecd717772c3c4300e0c7c638c731770eb826052afe79fadbfbfe795bc9374d0912a422bf4814de187011bd30f0f009b63e153d989c3337cf0b292e78d7508808621bc25bfd869aa6bdfc979528d8e6201fc61d1456e587b1f08c1540a206740a1f8a9d00de2c6c9a8f9812df909c81b02efb161fd8a350e564163088beaca05b04a963e198a55676cccb965889e617aca20ec2e93c16001ea881f0a77e0ce7542eee0c3d50c1432be0353eeda531a720776edbb4a8ab1a5bf79f8b882995844c26df44b5bd2019487c00ff579fe145c70288540c0415a945cbda3c2ae89515e4182477f450dd73ad6c118e8ed42685c4cd8f6dd244ff54021d5ee0fc8e971348ed0cf0008550c2a24a5f0c86b5920f4587b8bf8158d34da3d0c92f92cd80643f0ac42d5fe3f0187abbc1eab7922d27bdcd554bb3ca82db1b1559ed05fb44de66a27b1d8d4787a1d27ecc2c8dc8a3bd0ff805e4803899190e3e378689a672d9e49a6b3b86c3f528fab31bfbc41d6b0fcce4d6f5d20c66f0db2c35727f05fc39ea5900f718ed4c25ae758aa762649d0f2fa10027e27b6f58972979b832cc5ddc9fd69714b7ccc4be1cd00fe0c02e8509247eba1c2f4deb3c82e3b6f7a738f8f30c66f76611566be523c75eca12ace8d4ae22f3efd025bc3ad7d0476dbb793646ebeb15e39af5a8d59ccec3ae5e2c02c9600e64b3005d82d6f36da4c24d2d479db891595db33b640233c0e34541ea663d4149ccba08793f0b01ddf0f51a3e586600baba5c6765d90fa32d6d5c191302d254f5d7ed74c5a3a679221df71aa497014e41a73280a8117a07cd647c2e9b1110567a7652a51062a54ec95c23b8a3c55957b09a157a1366e7a3cd53faf2f948ac7edc2fa8c9ccf480f5a7fe15026a092da5658c70e4675cc56d430ba93ca0502e4fb164adbbf36bba0f9536b96f43b7c8f4859d8a3f12188241168a16380e57442e0942e080246aa381e2170434b7e4da677197c7d6747ceac14bfa35da94b310eafe144adea5669508aeb5e6497c9efebe11935cd60d3c52b51abc79e36d3e6dc98b55f24e36e96c9785b75092d94540d364f423dceb60582351894b682c888802ad7aa46680668a5afc2b891d5d94636a1dfe054789059acb797b80ecaf5e155f71e0ff97cb196063dce45c8550a12ebfe059390154e564a3e06a2d8f4771e9cde560523129aaa04032d9c0e402b4ae177ce042ccb561c059670bc02a1abb676cba185117216a138636c084ad906d6c1bd603e6654962d7e9a206020f430a9b2ace0f4cea933e4e3727fe00da58932f3d03f551d13233ab82e114423cb9fd526528e9944fea0c4c0a6d2dfa278483ab27e0ae607df34f4ad83d38bfcf09c2979334b28decc6bb28b3bfe67453152bb39cb6377d4fd2d45339576e262941363b6c89ad8104970ed6662ef5c6bfb1e9a5ee99c9e2afa39f980f44b31166bcc21b6381a85c78ef81414cccd582f89ea2bdf8eb56a954d25600a807a7b8bb5dac730579f8e53528e617495807617ac80ebd90b8ba03e6190c3a84fbc2cd8b7124e1002b348558ebcb1ea7f02d516e7b3da2f59f951dd7c2bfbf0e32bfbaf9190cd2090c8a0bba3cf7d8936b9ed5658918d403d30c43778124692e9b0d38e46e72be771485c223a1462357b04cf97f4db11bf8f96c32776598ab49efeeaf97ebdaec5930f05a84187f7ece6504503f5f86b34346b8d7eaee93925d89c23fa214c10555790c04a088673fe282a4fd8a08a4d5acd3bb055cb6fb08fe7fc66141e6c225cec2182b5fa8521df412891afe5ebb4c45f2fc62d37c3be3c4ee6fb39c4784237cc37d8b26f63dd9a80d186adfb123526fa3333e6e2d28bcc2b88882b2c94a8b6b31a59dd49140c49af812d1c392c8a128e2f691c9b1f2beceb2668821d9ff887f6688a880bf877cd33c35111fd9b98aa7de125caf605d867662e831f25e2a4e0f28bbf78c13854bce3e71a3d883650340afb2cafedcfd33c336b166c93814ff80e0c69f58e739f36ce710df7b91b3c72658cd0c86bce44827f348a3a27e15da354809bb8d48da87a2b9df07e19ec95f5baae2f6fa5ad9d0bca7283f719fd54d4b89563f14e91ad963cf4e2166d88cc2ac9307fcf55ea87113c2ad0a86695689bb4d918e304712d2914b4d5e95fb550a9c3fbeddb51fd3ab35b20f8be1cdf5d1928eb3a80f284515d02a419b481a30e2259389212d6c7454811ab4bba22554599b2e9917ec5a049e60339e00a3a78ae24a062180049061999de12200b4aca8403ae3e20abe7e35020d76b0ce11f04d4dad1fe49f85063a530e230b810a0fc32cec11da83ff9b50e36b22b0d28231ccea19389965be09bcc848e993f160211c59768e7df3defe60d88037d292812ed043b5619f339574d2ef5a081df530cd4cbc31cea663c24bf3323769881073ef7dd8ab56b2569616d7beca8977e725a791e5fdf35641f2b97a9136cc0b7aaf0db1880d6b12a7a7206a34348840fec0c9758bfa9d890f91539d9baf752a6256cf5824d8742b0dc1a89ff0c7993baedffe81246b63f121c8c3e102c424a031b023bc986c46fdbfc4a8499033fc665407cbfc7c958bf4c144c38273808e1879e6624f8cc12487fdf39b47c8a6daf16ba9ca20f4492904e92dd769fe5e69d5575cc61ddbdb0f0d4229d8009747356039bba86b49bd8afcf2f3db2f58993d86d7077d3dd9277e2ffb0026cb4c9c9e485d4eb49bc3c9a104b34474716c389f2a131f6f386ccf80454c5f69138abe879c71da65a037b07a1e44fef5d3105624e6dededb0cf9b6ca2030e116d3705d1d093cf7a583117590a1cd33b23bcb5f6d7e613b75f7a4c3b7eedd0ef9c95658096f915e31f6a8672934ac5b81632cdcdd9b3f29b1c9d61a465d74159856d959d6e7694a824e50106bcd1bb0bfac0d4b5225e4abaaa619ff3cad37187f482f287aef95d50a42bb2bf1ce98c3643f841d2b3b696a1a1b84c872a20548386998ec55195eb7196eab6cf14df04c367948be4e35e018842859cef552564b400f43d1ea51ebca7e47f0227658cf3fd37b9d05c97d1f6d0b627aef0a9ad122f7c4ccf0e190bd33135a16d3677ebe37450cf21b307d0ce7b5f982a1b831346288584604376f5a2966e164f70f0df355efde9d1b435b98534b6d4d6e366d48bdfc3d36e3051c01307f217b6637d2c02dd0ea2fdfde5cd041c10c4d97c520834fd386b07b0c1540bf91e64a109e9e22491259779bff8d015e14c13af36b45d475e357fa39f0bdd764827549858fcd0a53df68ae65797d9bc43b2cbef1367d71fdaa87690a39f0fae00a9c19d9fe920e886608fff632c78c4f901467eeb56d3de74934894598c298c05df29055aedda9e3e90fa645ca875ec48ae74ea56fbd7a1bbe99680709b98a30a1553c267d7a317cc401d1879428d9e1ff090dc43c4c2633551401da7b2b630171cb84eb11d8afcde0ca5ee828a14302ea44b0f60a333b09cb9ad8bb6a1ee2d3e01fe26a92ce14915a9bc21e5c3de910572383153dc53e52129ed10edd024ade57d4a820c4b02f4cb13bd49151ddc5246f59ab54db9e21b00bb934ecf9c08e772b761f3953d4e8a19e432e7d970022f243ef9c77b98b2059d71e1175436aba6873ff4f67bb819333b8bd94785509176f3595db5fb78ae30a60353f9f801c112336a1f9b3fab183b92ea0b211acf3a17f7f2202c7c1588ae183eb5b81d14d8d0aa1e1490ae031eef5758e915b3b7dd64e07a57078e9a66bb515ea19e402082c92f6599a5378a3bc7c163241dcbc1b99a10db3de3844705e2a6b8434ff43a98af229119d75f518cdaf6ff54efa5d8d244cdcfd46fc547cdacddb764d1e9635d8000322b9144e5cb74f6eace54aa1bc73898501a31e3378dd280525bc0c7d28edb7a3e02fbf54557984edc128a2caafebef0a8f8ee337d47b2c64e5c50f0ebb8886ca3c5a4f99acaf13ad717faaec7b172092bfa56e8838317076e3ddd56fb6b8622ef0f084e4b65571d8cff73e532ece9e15f4b359f4b6e46fcdad89d455b333b3cfd0a01a568efb374793a8e2330fee652dc525ff78f9202533ed723812dd25188760da8afcd3323f3bb9b8d901b077b045c26a9568deca1c7d00daafc76f68e56791f62fd5043fcc4848ada77283e2769b0c24eaf8e37f46f61f6115eab798ffbe5b7ea721b901fb6e66f18119e749d4f3261ed0c6128346584536ea57895256dd16e4a3a78a6a53e6fa2cc919287e624461a343bd0341bfd6e5d1d5fe643def4e3d69de4f93eeae74844cbd8907a233bac6b1ada8cb307dd1c056e109ef27343c83b22bace246ecf2cb768e40501bdf4838acb08ca8577cb5a42c38b7599ed7a111dcdfa47062d1a1f5a18ca2ab52146d6113361e5ffc077e4bd8e4d52ff57067f1ba5ddb7dd448ed9a10a801ae39df64839f525fa4b1afa23b1a228fade01564196aea7323e59c00ef69e99c990d5920a4e273e4b63dfe01ea2cc9e37cb4167e24ab04244a52103d1171fd7c844d696d2362465babb93b5baeaf0af4035384e79a6390729cf8d6578734fa8a008d6351363410915edac29e39edaedaca8ebd920213fb14540e5f5011ad5522d141bdc4c60c1bf12f90e8432dfc1771d58083f82e8c72887d37205439f61863f4b07fdbca900e6e4fabe4347ea6647e2230acd0dc994a004c85d2fb345a26c4b112380e1cc70336e02225af40e5a9cf969c0435286fe3083456563051b40b3c3bbb17d076997c6262c91fb74ae9fa9264122285b020c602c0d4f174fbfdea441e26b58db487435c0ded13496b2abb5265e78a62863b68c1a8eb759a8ec0cd5c08d73c23f2fdf2dffbd8c409d7f5b52f5c63ecd69300201488bce7ba1973e54265ef03383973c36b6f885ee016b8fac4845217c23b7de0ef42ed46041fa634f786628fafaeacd333bef28c43415965cd861a364743b136885f9477c6fc068dbb7b9f07f833bf7d3efa09e2b5803e1d91eac9fe69047c257d56cb3c362b452ae61e6552a444489eb4cef9667071601eb8396474f83e6bc96fe92c28f9d2dfbd825e78f141b8c0ba2f6a34444024282e68132cc80a273d3ce0305609db89f465467532be6fce12e42103167c09c3df14faa5e909a9c21b82c9fc00c0cd609184640e7198ba14b9d00c106e760fc0adb19a0803798b93e20a7d3a4bddba898394e6fd007a39d5e8cecc18f3ddd5abdff2a823b10479dfa130e95974be331c252d28fc2db3756e4402dc6d1447e173decf04abbab6836b8478e6337e78e97d86d4d406b103391a25d4472baa035ae7cc7dafd96148d5e2a7205340e51985fae535f381d21e414349f26a388fd5f95104cf4002a0422ce97059f825255d2f4d3d434c08bf6f5e991e91735484c84e5499d355531e54026c969046e3c34dc4a31aa176830c8b70e95d3a9c8077bbbf8b5376f54969a27fa20189c52ce47ddf84b4be2a79bb2b0c64b096e6bf859a3f00813330d9cab35aa63dc909d82c84c1430592d852cc092de3f9c0f77f91bc21b9f507c2c53781eda25448babab8ec7bdad5c57c2f59e016386e23c57594d49b907657aa9744a2db9e4eba2760889f5b5b86047720f255c62346b72eddcc88c22387af1f89d3b5bff8cf2476a3ca47acde2e1cc53a0a00d883138b755e8eb3c92d78ff4ca8d3ed0baf33522756d6b7ca9d4fcbc61e4202aac2b1b7bc22ed4f1b4d1a1fc8b155c682aa185ace1da062c163176939dbd0bae9510feedc6015ad185a5758de8d93355bc11e0f5f449a839ebbefb29e527bfb6174fcc62af15170b8f0f57e652840ba9ba1e4b06fb82d3a5750b2b70a8aa4d233b3f183b9177a05bc605a7d418e483d1ae6e6b3a43d1af3bef4f9de11bc528a2383ef013ddfc59865cc92ea562c73217d3dfbbc9310dfdc55005fd85ecfc20a7480d442bddcf5968c4bbd8db3ca5a9faeffe2146f1c3b538ada4a5848f02928ac00d9c6f40864e7e074488abbffeb71a65f37bfd8d6b97057e55d3df280ad1ac1963f8b01b43db0b3f4f5682c41b38269000cd79eebdc223633f7ea60fef8b89d4f3afdebf2e83932f98f29790ba717df83281fe756d9a7e364345843b28060b5659e6552c11b580fdf5d43bf8dc3800dec38fe0150200b8edd66c5f7cada7106fb8d63b3618a9cef52e377cf8477b9b8bf02520da107308b2e760fbcbe3bc00649f0b8a804460b0ec925601128fae38318558ed12d49b5de402f31556301678a903823e8f7dac9d6be5042c4c800ecaefb5c84da813311329d670c93fc630ca82d7716e2f30579432353b6ed6b728248fd290c657826840101f7e8c4db318d23c60b76316c4c5a50864c795b1779ecc69b6abe0068416579addfb8a12442693e100af295ad945ca5f4d2eecb612a4c57094c245dfed1cf7c5c12e69a0be25ff42d5442d8ae31e832edebf14d8b6d6f778a7595c58af84a38b77677ead37f59e0ca5a8bc53dc42030d4e0765813e903166601fabfa2938335b42dc6bceae69a9d9471439c6323b4e230b8020b359ef6878204ded86e25500895a3ee794067593b0137ef307d8450ddf366086a0d896b3ca34a6e65bd5cbdb142d211ba9a4415f0183dce9e144dbca8a924bf5b2375bbcbd393f1abbda239cc1afd9e0088dd9293b92616483a46f628134d029dbfabf46c41c28233a002454347aa715f44d2779a065ec8b0b60ba9d188b6874a18347d173de8b043dec680d0e6a01dfdab5c44d20986a90333801bb9cf1f2b3bf24aaa75bee29e89ec71c0a6930acbb69d1f9df7bb46e0f51f438afc832993ccc20b4fdb80027b9ec5dc00803285f7a8d77c2c8c8c0e4ca8c7585d9f38fca050d395a23df1db545610cc9e80e415270a46e5246e87c638999234a6e5d3e1e957602c0e5c48f7a628a0a313860cc3bf15639903bbeb528aa6393719eb0321b5a7e12f18de25f2754716aad2dfdedbf4c061505b0337ae5173cc7f2ce3fee4e219b73fb7e54b1229cc6e8f803d336bd832b5b882616cdc2e302a1a03ece752c789c38de46c5cba74c8853a31b8b962c3b221531886166c7e10dc7ec8c02813b09f65384841cc01a94683adff6fa8a04250514086df3dcc56b28f2af23ec8fdb1088ad119f343be5813dfdd3205ca9133b75ff69884e2818c49e59fd24ae1309fd64150f53e52e78870a125a6642125b38379a5e1ab0acc03ae31a29512c7c449ae9daf52e56e4e62e8c670cdec576cc26f1bb5940053beeeffdb5dc47ad432acf647fee95db2fb5fe24d525e318ff26f9c3f8adc572a8ed1644c84e5475dfec2af04d80e7409f8c77f0f0e0142c1d9c7e5eeb43e60036871a00519b02a6106f3860b54b4c84850941f5cf11bde8e41cc057893784d3958e9b7d669d9a50314e1cd472b7910f38d069bcd6f77c0f8a054b8014eceb11dc1c4d8b9d1ec55d8a24cd6668d26d80f967c9efcbead2bdde58b012cfc87b83c477c8d143789d88dba7805b9ffc6d1c9413cbdef76a5b360bc0d4f84f75f3be809f95148ab84a7986091b6de4cfa6ac62a04c9b958e4039a3a4a190d48d875dcd6309367234e1cc24107a55644f3c48678fdce39aa81a0a4c809d8e13bcf38274809b33b96b449993ff859c51fd17d17e899b53cfd2be056e0a1a9cdbabb140aec150faa09766c8787ff77ecb2f1acb31a8a71f7d06d40240016dc20f1683c40e5ee46fe0139f03d5ef8e6e3067ce8e77ba267a170e4d91ea9424c31324c92a0152b9e23c8f445cd829cc5baec388ab28232ecb818ce5a6acde415c8fe3f61694149964df8866dcc2fcd35ba543b70f16faf59630f540f0ab1acd5be54c31b06fe2043072b7c671c075f9cb782f930ca64f94ca3155b6fb1b84e3cdcca7f303f5d43b830b9f956854be893155d43907cd4c4a8f6ecfc77b0d77d65a8fffb028780d0757054220f3dcfd3cdb6660418e5d52cbd655c953f7f06560c9ee88b845e449a13a11eb7fda7951eb0087cd2642171013e3b88f765c850f996863f3399f474fe73233db81e0e9e633b07cabd770f4c86f664e409898ebc35a9445381618cfd3dff1fabb2b17fdd0b3c45591d19f7656ae80cc571779640a614abc307e571d67303c308aa9a97570937d1f11d650089d1f10bed02cf26cfcb4dc446080712c8a9e848df870afe3bd25530f90cf52eb6ac7977ebd1efd5d436976e531cba1174cb04ffc211a20d2750671643175fe7e05e639f3e3e8c3da9cc9569fffc32c2b93daac12fd8fcc0cbfdbcc23f120eada70271159dc08a0d59d8dd236b1341267bcd9fb60b0953ec948abc31f5ae3957acf5bff412e8c067a09f459f87cabe63ac0d3ed15c44198c120ce18f4b130396daf0efcf9f41ffdf0af2f90910f5470786eefbbef75ca3077e04efaf6c3c7ff61461598d3595f0c8fa06fcf18c9f5ae0eed88b8d196cc44045fc573b6c4684b101c88d79ec2fbeb5f2988afed366ff2000f351c78e82a013625f5ae02560176c236ab1031d06a8b117c5feb2802ae975f0311c5caf10ebedfdf5fd2edb75a0385894ea14847fe47c9e4176b82963bcbbf4634efbb36ca67720b6d69e5aca3ad8955f41ea4cdc9f55ac735bdebfc194113340835a47815b7086cda55b81950fdc7cd2807f433012ddf1b2affc80556c026f72a2b163a8f75be2954777c306b3fbbe01e39088a2d42c7cd95f97005bf9e9f06f55fc7eaa780ab905bf0ad641a9941447f25f6790b11f937260fceb1bcb3b73bffbd1ff88f73f486fceb0266580cba34325bf5df823bcfd343bc8f8ba72263877f66aa01d913eefdbdd4a699ea668969a3db4494e91ab9e345d42ced134575827a42701cdee1d64396d34322dafb5e6af94ec2e69335052aac4c43db2ec810dbf4d1c3fe2a83a0910f347ab767a7022a27ec127985572e71feb87141d6ed72ced6ad7454704c9423ae04034f16d7e2eeb44f006c63a85a0a03f5216b83407e5b349d995505b67787de5a95e51ac2732b0e220a469dc4e73490189d1ac76e660b648046c52207cbc47978926632108ef9affcaffe885a7f8e91b924a4aca1c1a5c2e2c8cff36b384fe914fbd6c1475baa7ac2a73a8f89998b98aeae421eadc4b97fe13c8a64c2e07cde18a408dc9d8c833637bbbef5b56693e5c2c7bd00e996946b12461f76197f77f85bc14f342281dfc2d4119ae8456ec156f34a76ae887fd5fa45983b67764737cd95eabdf425d384c02426eb4946e1ddd9bef2b5d2941b10ae0af14b05b06c2ea7759e44b4a4f6f924fbfc1834d11c1970950ab6877116cbeb025bc2bbfa1b6be9f3e47a09a3f777a2323bece2742c60986729668b86a4e4086366c1bbc0b3dd4492e4b06d6c39e0a0f269667bd3adaf74a9f92c43cd20d6b42fb17493adb8726bd19d126cb4b8a4a724e579da8fd189155b80df2582211977e55047b7ededdd7a3c7c0cf8dc091d696258cf18d717cb85c707c323ad76d1a31706d3301033f5e9fed13125503f0a3a40cb41b398290e1e51aa1d3d05ab20a6d824af65553daa15049e2ae85e8ceff864e4a4f47fc1e810d815ac21e55c15bb98be33d45f17a63f605145ce1bc63df199dc43b1f5a4d1f192650c43a0cfbd8568a0132cdfa6cfbd92edbb1d04c343b316f4b4e75ca3ce1ab5f257cd5016ac8df8f421ab12d82a4bce3cb62ca7f56b63a97ae11b99a8b3ef6fd3a4b59b72dbe10394eaec90732390c171e84cd4eb9931aeb8c3a4b28298c6c5fdfb1ea2f9a4c1b37769964ac9c2e80f9b539f6d4803875fec0d3cf27a353194458a924102ed2585fb8bf26a16e2792b3712c5e084d30b20e4b1f39495d15697d4c3073ebb18dbfa0038693a9522809dc5e7ed989d6b56822b355fcf81a01bc170128dc26e8cb0df69012e9363e77b4b86e0d347334219b5d615b4c408276051deed65f8f5f462cf4ae912b84c903908afe50f27284222b2e85576796e90979868a7d9238b003e1e4be5c5ba799e379b6caa820c2527631d61950158f6a32f83216d32fe1d8afb0c11890582f72f3bf6c25a8ecbf6ee3c519d461b961718f927558e28dbd7b34be1739afbfced3436410ccbf25bd385775d0d3bce07816614783b3bcc295a81c74892bb9f07bbd81a02f35725fdfc96c48b0daabfa28634f8ee86d9260a372021363ede15f116a7131f5de9599e76ee294e5b117a4494d556f910de7e27ce062206ccd18db5d096c113d9b26e6c2c570a7971c262a5db77c0dfe28b33aae86fb4edf16ad171f469df9987f771e10e95d72564c9c30964089d838c85232d501f42fe7bc5860dc0bebab898c1b76b618cb86ebb2d3502d08003090daeb719d3644f208ef4c6de169a98a40e4ab51b2f95d60ca56bd244c8ccb4be9e6566bb8717ab7331edd910499dd44e9be6a363bc6d1b5fdb30b967f1f78ae21ff10237d54234ed559fd4607c6cb3465e1ca9a6219968e5e63aa94ac85ce6244316a5fa1101481458fbb4abed89e2d64601537755b25ce9b29f9621a41a23bae9f7e179375e4fa2c559b2458b36d9c156b1f972a255fd1da952e26c0cd57ad249689ad4a93da5355c6514d9fef73d1b13e1929e57f26e01850d392b70ad5eedf0c2b20a2193bfeb88af184a11f1f76772cb0ad0c62d069f67f625572bb73e09da5fd882e6ee3a7981d1693511d283d4a6f6358b9938e40f43f80d82dfda5e48e3953b246b34359f0a2f75393c1e71d13b87d9368818b0271369b909592159b2ca02a255f279a852b00446b58e38ae0f3fed5012ba54b4aee689f76f14385962662842c2a75d6895b2e91841a79a7180f8b8501e9c82a2b6b71850c6dba13657e659fed6d61bc1d6d0d2ea58ca0e14c3ef5674d07daa0b2f97ae7663a34e9f3295dde23c843a6d3e01cb6191303a2e2cbf5bfc088917bf1bbde3c4f22ae63c2d5ae17ac2d13bf902e1c009a22ea9b25c149e5f08a54706316709705587280bb6661b915f5f2abf6b3d5c906d44390ad0dd55cc44f5d9b472467a320773aea28484efd1d3290f36e63d64582998c7fe6cb45d268fc688fb6470af7c04cc6ac9edd10f4f4d525f23c503f1de3eee5b2b8a1df5fe9ce82b4cf31e6da245a04d723b644c2a94d9ae121f310ae1724378740afb1644246001c1ba6f969d6aee9a116e73afee5c9c89bdc26c7c58a1c4707dd3b1d49082a6d38c76039d8a8e7f0287b835b4a0ea0d9b5ee1ce2a089203b998c3b944729285884b3dd2a3710840dd063e712cdf3d9c0cf873aaeff979d8aa5705cfcb8ae83a7cb31461af220a3c16056614d8e2b37650747bc37047e7a5b48f343752580dbca49a9d65244b5ecfe85565dd38f1cf7714925a42224e43d3138eb9155bf6b8f796e5c67f784e3c532a448a6bb46700d75cb4d043a4ca937719745d14f164d7a328259371319f7abda5388c3c0db27a9390ce265f97ae955d0974bbf9fc1e6f77afa86c9b70202f4df7968da023283c257c172b577a9cb8c1e4940aec90ae52700134ba850f80977044c8cb21afa8392b4df2efad0fd8ca3652871a660e45118e1e3b2dc1b1f38f98d524c95b4ce9f1ceda47c4d1c6f4d1289ae5874d0434d80496e126982b6f823f2d10eff64860e062ce80e9dd968f7d42298dca89667d70f1c593089aa5a025cc68a9dfa2a1c708c755651b65534b4c9215cedc9b61a674bf1a25b558982604077e1d1ffb168e33a1091b540360672ec390076577aa6d32c6633e9c622b5f911293b4397857c85d09863dfc84e66219c2c69231a971ae816ce4ba62a2897bee86e79072f0f278deea293233adc48fab3973dc13d5d5d5429a77edafde72e9f8b4112e40c6306f425090b390f68bc6af8732e0794a60b7dde618609471012bd4ac547276f59d250acfe5f6b9dc18eb3f9aea07874c785843ee4239aafb0c1848e11260818d21f573304f4283b3ec0eb0c6f1bbbc7c36748fb0454fe45ece976cb28e3fbeb86f5a048da1dcdf4c34fdd7089b099d388565cdaecd01551426ecc6a79946561def3bbd54dc926f5a94255c1c2967f52bff439ff151690ab2dc77b3c2ba048aee5be17cf36bfa15815ff1f92c3f53434668a4ca11ad32062d233f5d472dc901d076f5a8dd75f3e4f172e086e919589f088e350396adeb2004e636cd50ce40876a08338ad82a1b5f46bd88d47d404bea7900d070e37667503d5b64cfcc5ebc156008a1f4a7a1b7f2baa7977c4652ea2e6fefb17b55929e10835fbbfef829d6ad8dd3799528e02f2f2bcb73b13987a016e4aaac1de935d0e41a48ae7932cf9f640e5a1785f09f87e3de4c3c711457b773751e016c4ed761989017fe08c25bfcdb4e20b52e33127f4465c4568fea6fce0c3cd2623422b993cf4f88c62df10663262bf50e4eb123884b20eb674e77797484268e900f532b5584655da2a5d58b6104a36d14cda8614b4a1aa2ca6ab454ecae8e9face953eb68d4e39b199072da78706440757b5a11020f2a93138bbd4cc74b661ae7e86c723d902a6ae58214e8d0a26f2808a498dc8f0079b414e9fc6c56a1052c3a3573118d20d2158a639ba43684184c16ea233915ee28714fe79c583cfa5267ab3a519ff204958671ca4882c962993b94cb161eb4ab590a101340443df82c38904c001a03d7a9b41eb9afe7cd12aca65f1cfeea9e4c977a2f25912cddf9628c17e85531265b104138bda2ecec3475bb3dff5eeeca7a950789d8e1a16a5a863a539813b83ae4e45a9b029b5043a33552e6821132e5ddaff01abcd8b54ca6acb5c6ca30e0468e1c97f7e4b6df56ea88ec78197b67c514784375697d4fc8de89ff47effdba2258749660f4a9022eaeed1de4efb6722a207d9b0998df413f21425d4d9c0c81a2a3307b0b2e250765389a4c54e1dac938dd5f91ebc2581a6e8a28d5ea9f450a703980874eea1f3288fc800de8053caac9ebff468a1af3d7d301b18c91d60c4a3689e434df4f0bca4c968f79c3df5945d06b1da3f9701dfaea5f6c2271a2939bca61186d68714b1705f1c120ba8da6ee2320bebd5db600cabeb5a34cf0b55d397c6a8e05b1d8008529df6509c2a204f6f0b8da7609fe92028b545109b83ec12939ea173b7f100f465ccee59c0915a984b979f92ff8516688112a37aeca1c5d19465d8e4879855c6756a05ed5a3febe6b0e5bd3b819ee153033beb2ead23a561e0b919e468e6fd7e67c1ebdadde6cf93b13e4cf5cc8e84b9416cb8466e32a5d502fd83cd26bccb58eb56fbc021cbb56d450fe8ef542108a577070a341689d62de45e8bca2cc0fab7f0136addc6f5aefa78c481909409779e403d2d8d996a66a8006ccdf07d359c4957697884b3f190a6b290feb9a76cb540d48d276fde6f650f87b16d73053423e2f2647efe168f4e420cf61e18583ba9c0a720f2591c6fb821447296a93c2a779594b74b112dbaf82e322edf193f0b27f998cf868faec45d72254bc7fcfa0c6598ff766502caf79b418e3bdb843d1f3fbddf3492fb8d7f274b6ed83ab34ac71b74c0f1af702de787f0bca40a5e71e8cf38041246a608090136ca68cdfbb8706b8f40f9a7df596767cebc7edafefeffaecc0bb71d6bde6370b8cafd54ef81da9735b548e9ceba7175c007be55ea539909f16f03150d78c585de274613aaeabc5c9e172f341e4e3814265c5f249a68fe2d6ace216da519d1260b8f67b529260e0562240f498c5c4e59644934626468df22b46752b2b7ff8f59b05cdd83cac400c5c82814263ce68bc41e7809762b9da1ad87a1c188a150ddb475c1614c528556d2f93ff71b96f25095dd6293b0c7a13e5c4e5bfd790832b8cbe3d5c9efcbc651d2f5d14b781355634d8a1fc6b71b21f4ed00f92076c3846d13d4f52472dabdf3c48dfcd7b852ad53f428d8cb228da82e2fb3b82c555544e29c56441d153b97928d08acb71064f080997d0d3de0f6b157b1d22141194d905ab678d1e545c05919546d2ed28e047c50782c69999708f434e23eed2a66a814d15a0639a3415290c3e8b2a0c3cffb53da78d089192c10596f0dbe7bbd8ecad8809b4245f31903c1b68a310659cfc0c6f6f45047de7968b3a5b185d1aa3e082be32d547f44389456481fcbe316a411f3e1e8a4366bd6124558a0bf4869f450112c90dabe3865d5cb77fc6464a3a3d6f6873b32a297adbdc1f86888c3043b2948a140408706ed600a332a701367064640e10732f92eda85b23551e857401ca98a41dae472a3fbe8e51ce74e0b0a03f94a045f140923a410d9aefab41ed11f3cb6b9be848b4182b4abe8b1eb7ba380e6da12a0873c4da38f8cb32544259707b3d5c4b57ce94a52ece354e8d81065723819019fb01be178e634a892e781207cd7ba5f87f58861b1901c8a574c775dbad481d89424a38ac5bba189a0cf23ba6ad4f72b016bc2d0027580a9f351c93af51b8dab105813aa2e9f98fd552733fcf09bb23ec93cd63ca2d2b0b43c67e56c1ee24b81af6b7d10d291788170af0f28cadcc5f3659d9d970f334cb4df4e469ff6937f571b5525abf47687828f04ed8e21479c64d971cc9d08ea8d149f141fbc7b5de7a2563b71980173312037e229a4271091b4e38e1a78ba413c7a290abbbd1a9d0d3e8a592978de7b5ca15a78c2095859f30b3b8669be7ba461b588996eb594937f5d86e74be94e0079382bf11e51a48887b23a3b21a3f304a9f7010359b46ed3c75943ceb93ff448ab5451d65a27f2fdef1489eec23e9904a6167ae634568de3bfc66c315669f8fd04b42ff5c56b877cca2efa42d205e10c053f02d8d56bf3eedfe8aa53ccb5689c5f85b848e9727f3d73ddbe38938296f9f97fb3771017453e8b1bdb0223ac8bdb254fa6ac742fcdfb856dde86c6bdf2c7671fd154ea46db27a3cef2db91cb806c2589e82310719c07cef888e6af1af86f27cdc52b2e57ffc804062c82be2e93037adbc957b5ba7e5e649cdbd38c2cf54e7c6306b0748f9b6d0c04aef09380d19434ab726cd5748b6cfa07f4c358b28b33a5449796cd32f8255b5792fbce078eb202d931c1270ec7500c02fa7c91ea88987d0f76c781e371d451e934962c893ba23c7cc8d4ee9eb1ffb69a37b13d176b84bbd345038cc8a8c448f9de895d4b5255e2dd1df1feb1669a724353ba391dc3561dbac2a05ee62575e657e21b0ac57b7c396edf90d360d4e452004d53c72413912a6be18415e358227e0f2b05ba8dd2a727972a141869178f98cb8aabc8da819a044760684100bb703053e5b18ff5c5e5ac7d777ba5c3187a73000e0b77bc66de86a3b74df8f2bae5329c7e02dfbe7e16f4ef788a8f4a168c9d74d67ac76529233cff2ffe2050b093490ca268ef2133a4ebf4bed8eb4dfc814a295873d11cd72e3cb61cf124a9c41afe536b3be53581ee11c37bec1f1ce5f145f758e1a6f01e731593fb9841d7774cb2a6452246dc7e005a17fc54639d3d9eb02a1119ab38bf4a0f7209446430d3d370e4fb9ba176d5bf34feca9e4e50a5197fd2da467c2d7d60231e0984a1fe6e4f57dec80c1a505482abd8d2c40e77d52c056668414c721ff3916630927314a3e33125831f20e268f1038b5515732da82150a5d6c9b1aaa90893bb1e46004f67f599472e3bcf9ac2aa06b085314d52703db3e8c3c4c9aa2421df6864ed31b9ad902b3b4e79da872dc2c9b0baa55c3cca5c0f6c27fd306563e2f2e290f8d3c13e734341224e75b02cf0459738c4c9d4b3114c1ade2db167cbde48a70f7a7d6c734d7054826dcf20e876e5234d30bd78651363a7371644eca555771bbcd8bcbaf0ee8da00e5b7636665d3572a6947b63c5fe745ca32b65217673dca0efd1873e8c4384e4439dd9587851fe512b658c0e2d22100dc0ab82d26af10e3177a9c90808763f1e44301c57acd6a31d483c5686bf52346b598f6d41e5a06238a413cb84a84cb1744755926d06580a4078c3200de357a014d06e3d24d06ec5a11a27498b899a18a4250e446e37d0173b580f09b45a08884c5babd8f8e40650f8ef4c27f12d96ec33e7e11fac70e2129c407b7eb857c22d622d4210ad31157c0939e1a382af3aaf0ac27cb6bda79d908085a2ccb8da5e07782769b1add545e6a26075b8750a7f6e27692b344b4edca853e44340d6414581220e02303e398912ef1d06402d032731458d06e2c05bdf7cf70a0c5c4dbe063d54ec56f50e1fac7fb4d81f77f2f6f27038adfcdc8c101dde9d6d775de4386b4bb95b508e6de9196e70829369ee4ea095e14d297ab7ee98dd2f4affbf7967bc2257110608e2345ab8455513286421d7c357a18b6eb5611a9f89ac6d64842c676b7ec0e872a6748f6b4826dca52b6ea4093abbcd0b2cd6ca26f8cbe188d7bd829b4f7408202008ae58304b0f0fbdfe6e0b7bd6a14f62595ea0549a8f7125646afe178129f024d81079346689d12085b50c92dbdcf514556de89741cbc8cd42a68c8049e4c68668c2e8c340caf411cfbcc570335c649b0a6b0f3b789f3af1c878716561eecae0b62f6fa02ac8ae06bf463fc04dbe848dd7c41350b0111c6b734bcf804158d0c48fec64c99334f161bf68372a1b60508c739a8c7e2ffe884fb3e2150308b02a5d3ff2c042bedce85d9309a7a789ad8e9eb3ef48874842c9f0b1db991e2599607a52c75607ae60af20eb059c1f06f90b57a4a65357bd093fd52b34bd0712eca3c0b8d6af1713d4fd47644d5a43396bca37245aaee77cae158a8ce61c3d5f0f42130a584b802634b7e3a3262bbcc95cc98ddc8f123b35a1590f80fb8b5c17c79da2bbb5e7ea80c7bed4ee120d91bb8769679039e545b17931ba1a1ac6fcd85d6af728caa952147e9e0863bf92a8c889493cbaa9e18986e7867a70f22b86030038d7db25ef0c7b664f338845dcf1ea4325c526e62e97b2ee94ad32e87c056ae78bf05c83704ac43804ea3602653b19ae943564baffb620a83b65d532bfd62e539a54bae626df27d91e4c54465a3d45290213336b039e022764b60002c597bcb8acce049084ef7d340e2ca17583556a8c9bf6eb55e2ee516e73d3a7d3fb9f46db10206f4e92ab0f947a34d4b1749e50600552667ed1e88634450be8fb49851d401fa1254a245675195f239e58d0aadcb6dda106c8c97af6a4061d61d85af980e52c5994deb62208af22ac7e6cd9a2340b6a47abdb1b6ca1e788e1ebe03faf577614a224f420e1b3a212968fcd10fbba989ee7ac8d2edc39551ce5ae5253d08604599932bd662e39c4f9c23147794292ac4809f11a2b6c09c7ec43ed8aa868bccbc9049f0cd0d4b0aa55afa84a7def5ae4ad28d907492b337ce797a5bed40849ed85dccbd90af0ea7c181b0fc36d242caaad5c3eb8701e1dc33045b10961cb92f2a490d984f788283eff5d34f1e05f42b656a2a799c9a3804c7e5d849c43a1906296c50403044b4742bc9ec666847ec5bd759bc1ede9bd97b33a11973da03c2710deae80139ed84e1e9310ac13c7f143145eba24b138b38af419e873a2232bd0d6f2c9db35953f51fd3ba4622c82fa13367fb8c9ac0ee7f0ab78aa0e57e70b6104f2883a59d71c6356be6f80418bbbf83bcec5a1c45b89b065b7426fbcc27a616ee3c6004c448286fe4d0c689d8e0bb8df91a3c551db2e959ce3709a2ee55e684c4f999a79434907924218384fdbbffb780c339f948982bcdb863e47c74e39028eff45a5821afc829120daabf2d8c5d168545d5fc6d8dfc0ad4288d85180caf1f650a4e4cb2c1d20dc32c2f58ca2e51eb6371e82c0768a2455206c9dc26271d1ce3c2cc4335392490f4b6bf55c91c89e86b3d3a534e2515e76f1e1a41460de737398feae0177d040f69bef02729d2cd1fa7dc05bac588a84b6028093b9131cb446a84ca43014c357c270ca703082c97f4a06d1f5beac6b92f7d4c3d2a44258ed6a4cacf7aaa429d14511b3cbd120dceb5b6f8bc87f655f4ef5eadf8ab7b7038a3c18b1f4c316d83f6a080510b52310239a9712aa70d49595d142827c48b50013c7d7e876ab397d3e0ff548d1a27b79bf22d2f4b56ea900494566d3aa97e93547ff3c48393f058438b82a06c0729f1c89da9aa6b5768d0c052ac1bb424764b6358a6daa04d7b151fcc496c978a5b0a53c88a1d5caca0321a87004a658ad85cf79c014dc0bf4403a6e7da6950826098019101f95d1163dd6df427b07c3201e8544e0ec497ae6ee7836ea7f0c58f4e0e85640d1273508aecb3b8a75a2d3c63fc1712dfe54a2582669b0c28fd1d1511df10fb706fe7b9008ab58161969cd28ce697e83ef958bc7c780b5e2628b6e2545c075ffff62efd9847f85d22ac9d9f8f9012feb4fc25723c06a187ae6af47b135d099e0a7f97ba164a30b3fc914ed020f0f4f3eb6f6ce4a74ba332492234ef125dc8c175eda800044b56b67672debb8f6b72b148f99163007e44c96b2988fd9967c3e2c55426d79570e370e777a3589c65320004e1ecdc7c7702aee5a738177c9bbf0dcfcd0845955af15fde6dece6e68ae058d2afd383d99e16c319c266e31e152c48481a343ccfdd919237b8c0e018388712558ff7d53089b22dd73b69170d7c59c0538282c261f0877b84fe42b9d72466ae59ad6878d0c138affd462d196fec0372ab3bd1825287fed87ad1c55b8e8dbfcbebb18ccac8e633b1b0cb64de7d1b328911dbad40118974c051ea1d05b21deb611c1297b1c7a4c3488cb9d28d9ffb35fd83a64a4cb783a4aecdf836f1d057b67d5041f0f547e2a14eb063c7d38d9d96255713a3e49d46c85a42ccec7c273cb017555f21e410b8fd1bb602710fec26d66528eae7f900bb0de63f79518c22ceb0aedf817e12dff178217e4121526a3c432b3d1d24dbd5741269fe6eadc5893f71b3ce9134e413cc6f39d7da0994199ec67994b99bac72838a030faa2e8276fb283cfd8a058a0e57a4ac863456259b72c1a514081722639360d29c9747bfdd18454082255ef2b79f68bef124b3ece86ab2feb934b7777192e571b74451fbc34422983215fbde56752c2cc04597dd10fc4cfda86031185a661576148acc59e6cd33d3c7c3fa435c1360392d26798649504e993fa6dce627940274919645e05a26bb02c99662f8084ba8295561ec2bc3ab4cae550499b0a0cb80a13cb66fb4b470778af132ea2d21578ed610af7fd3863d1a21734b7736f32e2c7aa63d13217cf7b354269b7950b6375938b69e4dfeaa0de6d576fa9fd3bac8d601187ea76ef7ef20889260e9205118e87572db9fd6d4d92bbc454266492f073fcc1b9422f9ccb7059f8035c2003355de9b0909fce50e52959725510e76eed76844dc9d2d2fc36e1ee5ad9fe26e617cb32494e2f6c70fc331316040c9a1acb2d5dcb4f3a50bc2df08bb9abda09fa539bc98a8578940d91aa9abeb90488151a20b556c04b4da540c89dd45203f7dc5a92c0c857e25660a855c884c9528dd845130e2eb6774b8a85dc3e189ac3bd97c1bd3523d71a83ad3ee399cc04120634d8c09a1872a3008036d84016af791340208d2e401c7aed864b23ea10c0029a2c203d34d43bd674449d144242db141450c400518300777d70f2566270f0acc44487e25150fa7a18b65db73c7c0bdfc619dc9e76b514771590983fed24a955211835fdc3feff049d805e4e461730b63cf03f95e08dc1594bcc61561dc22bef1b8ec1ba9369e32ce64d78d141d6e029cbc5a5b2b24b4363bb357526d123aecadcc95307ab40e648b5aa60cabae0618e07b30371130789521aa17bf146077c5c589d09520e4e0f9879d62d86411de30a5e331696e2125e77af5e9333307e299523cc57e57d687062535dcd0b1822726f0cd93c41151daa22b9933471d1f75fcc0c2d99a1448d49a93f3f2a88bad539f928f2a79f04842d7f76407863c27543d80c09ffd83e19bb20629cec0aaf0a5ce1800276c3b0f76ec927094d49f0d32b567dde055698b7fcbd2f53542296bf7564181947182f1e8b84c49c48a8166325e8f4ff29b7b5e9e58f932b0545ca2a5de37a4bc0e8172ac79d74fa22037eb60b0b52eb6d98f27454ecbc22752060c1c4284e0dba6312d36569251d740a017f287c5600873c23425da6a575685a7c010d29fcb1bdc6e61f92a9f0c166172c759d2114839ba2a6e0176440341f30020fdf9fa1fa0c18cf953314268bf12a3db4f0451bc646bb3a96a187bd91980c7522f60281e01e921a43f13bea6c4d3194fa206a75a3e70fe7911c188aff91e2eb7ea1b7871143313afa003fec8124175aff87ebd67d0b856e712b03ed73d1fc8f6cd601d9fc8d28c6427530581d2c94c85c9fa0b06657e8eceb23f77917918bd00a7a4c7c9cff775cc9d623b18f051b004ba15a773f51fbbd9901242885c625bcf4581b30ddd92944a13af068ff240c0a8d48c5bbada410a1179ea25357a1de8f6a61d8e828bafc22d1a922903a9986bf71f4b6dad4c9c9900ac8eb892a285201b038a5fb04e6ee792119db1e133ff9b620264ac764eb563c3a8d632c0bbfa9c9a113d43b8444a0fc00ddddee9f6cef2929670af2410d3f1b8eec1b2a53ae6b553a3a49a2c4cb8ec7efb25a9b604fc2bdeb6654ff64ff482d7589d90c39cde43d8771932ac9cc746635b79066781a4133716e18137134311a1124e8ee604c1eb3b2785d93e2dd3a95ce84b0334422959266d0479b95cfe2dc972e06b2a88fe8bcba9603689ae18a0412526c2d365ed3c2291b8d9ca0dd86db2892ea001a075933319e7a03dee3438a2955333175cdc16ce67f210eac95e00f46e8373f756d12af248f993ac93935c9689fe42499e1445b53ee54c6cf5a30dba23c934d9d2305f47e123ab801377ae17fe1522ff9d0b50b976ab11b554e4ef8311b37bec1f16506aa801fbb4f71ac58d286684630133b994910005aa1000d28145d2b58c71ad66a9d2534a6611bd3900668aa00263181893b81c94ce289b1d9cbebcf49fafe2b6080b189e00deab301ceba87bec0544bce2248575f9e7bd738a6e8cd82eda003a81f7d4e54661ffaf2643a1ed1e9600ad890ec975921c6d11d63f353fc7007d38701a8c684c8c3e997a1abb695165a9b48bf0ca07e894984719bf40dd8e0e1346a1b8023fb6d265447ceb14d54f2e0acaf7e99111165c80f285f451ee1f6cb2c9d6838e02f08b231f96be856807ffdf5b0c3fdb3ac19f4e6042048d92f339eb0137ae19e9223acf7cbd0dcc009d965f04fdf7ab88512151b0b5ca9fedacbe85dbc02f73cd05ff073d21f14c424ff9454c5e6c0ba70e44c906392613792d9c35b668428959cf7bd9b45f724c223f2facb86678d2874585147a8f834483d4a6fdb2f83e4fc94913912a1e1324469bf2d89a2585953b7c38451f6cb5c9a0abc461884b64488913b4028570361dc95b92142d9ed1017b5acedacac4a2ccf3b4e18164cd94f6c719d0701f56522949075b023ee052d97738b8471b96888e783dd84b397d8a77297becc5e89f6bfdf92d94f03a7af08a35bf9fbfebc9194e5040dcc3bbd2601b1290ad4455f668985c69da4301aac3ddfed499e9d571df1fa32cbf605e975d2f0c339cfe5be8cbfce6656aad218a6588ee12d11ea8fcb0afaf357a60aeff2408e50b4c52534d292425f267a50cbe629ac06f12492f958422ba89a8a704ac488e3c5790504fc23a2f865051a60bf654e0fd3858af03538950b173f075da62a82207522fa27d3ba8f2edc12e628b2d7802ca0b35e3a70ca50508d7d2d0745d054e1d097d9671a134ebebb4258ffaf94ebef7488ece5e1e56568445c29e6fe53d6931d20183236c921c0f94730a3f059009115b478fc64555959f07afa9895bb9fc4478db8def46b006e2807eea26ea1a7382bc4e7acdca13a9f8155776885f966a5dc8290b00c4a4f44fed20a911a3c11d83cb5726c8fadffb290ca7af2b73b7dd55a31801d30aec9968faf7d130acf49796fd88ad6e3495b41e75420e156c84d44bc95f7ea1002895278118188ea5e428cfd4f48ec0f4c3addeb6ea48f08a20e02a65f49ab8c8b07d5a54169fb2d864f57c7cda35a37844998bb49756c318bd27bf45dc321a3693dfa68c1f7aaa4f084525c9db0cd4d620b14ce2a63d0731e26c5e81dfc0babb6ebf2b53501984de6d03c204375ee00b19702304076a900e051a98940604acd2854b82f860d155c5c0a4c88aa70019b513a083cfa1ad028f13585811aa76f108a094d63f1622f058cd0b8222df46dbc7aac093207b5c191564a15ea71e68b9aae2c30f82a137e8a94f3da1099aa1b4f1a70ee97a2f816f0610039c69c6190f6efc6529b092b3c0f44ae083f052c8e976d2b233acfa508e08a68e197a08f651a4b947494417779bffb05448c053d23e2b76caffde2e3671ff172dd19e5a4cda3f28f4de6840566be1b04f9c6a940cfff7e53b640a03b5e3398084ea589f06c7e859417508cad19a66740f168a80cfb25d322fb94fb114107266327c8e350d27466f272a1812e323588592b9049425180b4568bf61bad4875f91bfb12102f6b2c5fc5c73e0afe0640611ce5602b2a8ee391bf16f9ea5dc49e57f544ccf285657be3e39f836dcfe11fa1845b9ef4d3b77577396ce585d9a762533b10f228865c8db6609a1c7abcfe68163089cbeae5251b9989454eca5be2ec73aae743f8dca7556f5881f9051256af5f708017c5b298d51bc2f85cd15a8f3646ba71d8ef17a9d5adc0b2ccd51b36f8a96258a93558c5b0e4d51ba263eae3a9cce4e459c9fa80aa8ab9bd188325b1c3ea15d844c27a0ba28a905d020fc4a46818ce2928820fc368396160a0436189fe19e3d1a4da2b8ebf3da8df928063c42d8ac3f841cb073d61a7254628e6cf55a7d8c1f4748e662af0332e76028350c9fd67961a90c8aedb7bd6c3f2c8684de310f9c199441a4908d5d40fd024f9cc4aa4ed2cfba264a7b27977b25aea404741e61832b69ed40453dd19e1ded2acd3ac4be9582b19ad85e15bf1ed04726dd5ea8bdee05c5a95eeca4084b6571212949dc9017f271ed56d24af2ceac500d51982e3a22aebdd6038d91e2851d1904abbdbbea86c48b8075b015f7323e6f61bf058a5fd07d30c33272acc426720f54443675f0432ee646c6fb06a82e3ef63b1ce18124f62e112603d1c4160de7059e5824132ade1588811e35df58c206fb9c9f0a0b4c924ccacf53fd04242f71ce3e33b922af40cbd50037f2567e907cfbd004dc8dbb9dce22027e186689948eb92ba8e4a1df0fbae1f75f1b1114df14b7de44c27dd8af9d7511fe3a93b44e683ca61f454d8026369a90e3e1159ceaf47ad79e9d1d2b79b496cfd3ac46692c35a13bb3355d34fad3742642d4bf91b95eee6851735139901a06e058da2d1870c48f042d58d4c42e06681270967f1c49903a1e81b5160948d4cf20185f4a49f89ec82c0648aa4b82be9b1f781c8603433902c84a9817c631b25689011762bf8bfeff07920933fe68ad1b11615b784582a11bbf671a42cef153bf010fc94088aaa23445d80700722974de478a20aa280c0eafddf21f82340b11488091bd58dcc0da188c62aa7270398a500ce8cddee6f24afb7bf2f4e87d2d0a7eff2b501b761f49f81401587f10537a520a334a3032cada6996091ec4ad01230bb20cc5bb4f63090fc0ecbc7fc6ab2f34de07c7550c6d5e969a9005cd594584d180767e5313417e3940a63e6068039c14af7e0ccf8c4cdc6db017d1384b61a6e00e3240a46383d184475e0e42f267c6ca21228197438c9b2000018181823040c38c43f6e87f10505445c091db775d9dd35b8b917227e0d4ed22f4970921038faf06af7f76fa212e93212d82419bd8ab11ecd25475c248edb0b3debf4e43914946922a5c3fdf86c1f5409a565d12ec37bfa26814b828a6206997c9328867b3fb9ab1efb671a136561c58954131792cec1d2b12fa14d8a9e6fa691459a15813c3c019d81d5de479511e05b69e4fccb1517956c058cb72db3ac641222582711d3ba1ce33578d26ce19043b904f77f5828bb7d6e4dd24ac755e2b4e96434d1c4dda16d03d348facaf6926ae46a12a2cdfa6dd148e5ddae72da6c0b0e0ad77d6445239323a7930a398081ad743527197276dd5135e196cfec9387efd067a946d8b0db9caa719e8184e92ced38e6545e345d46aa87782464d8e938c9488c7592d9f03007128502ce17299fede9c8b63c40a4cffe2c1027518ef3106502f3df86c97528287991c8e38f189c67fc00286862c59d259ff4e545e8e6ee4c38b73f7257080f3709b7aaba290de944332e249cd75e17a35fd238b461497dce44e82b5547693a30cbc051e17c5a566133fe6b4d015f85d99c1bb2bfe78456302ac083180fda86224569cf3047f50f46461363dba6eee7b16f5f2a4775ab780f21cf1bec9bd1178ff0129d008b098eba8daad507b99467f5127275c68e4ff60e3398fdacadff15f11d04c4e04cb3cf3b28e6ff2350f250a10ebe89126fed1751305190e061865c48fa5a630c513860b463afba6828c7375c49751833c5bfaffedee78bb66d98945c2c3970601252bd4227e33968367e245557b14628c6254a3ae87adfc37ae17c3c9c3f2baa3f64e36a885f7272925b79c0f655ddae4b0bed8febe710a6fd0622a474df1c7bc830f2b4a5ff58bb5f6927ef85427682e7d7d559e3b7bc44cbc57c3a166b3e7be2320098e8f63511ba54a303c7f02cc9fcbb08f60154ea222cfb9bf16e88b95ee1748a435bcbc365a916b9b3168901c76a627c30a3967d9a94d4c79993186d97a7d71fd2aca8845ac91232cac00c6e92ba6b280a06ebde4d401d2d9da35df32a7d2e50a8d5973a2b57df2290e8d6db770c8e7fb3e03da965c2cac951b55cfd58c879e6e625481b2abcedccb01f2f6dabd76329e1ba17908749542c69a7f7450a43baca1159aa03405c11318c1e0c71cc99bc54858cb945362058de66e5fb7e00895f912c08a8c72020efc34fa7aac41986393632da2713ae35a8ab83588cd4dd1c2ec078b341b0df28ebdae7cc49651ec4a74a3e030de94ff89c2e1b20d64aa0160c9ddf6537b1ccc88894a00789dc3ff6c7d76f805711ab3b3891e0c77fa15ca58a7c498b26aac110b17ad515ba45511e1220db535bead87ada96f330f670d9c801712e1ea87fbbb73592b0747ee8f050e08cbfb012310ac3c39f060ac26ba89b5546d8020ac1bad4e3c25ccceb28c42941b4ac695b7fb93a4e7563d70ae786a7dd32ecc3d22cdfd8dd0c4b71caac75200d43eaea04a819cf0c26145fe35a79cc94dbc8fb75e94244466f2b588d5d69c5467a84f8e6590f3c3715d90b61ce83ce802f8c062c5e430c9648d39dc6177b504231424e01c7cccb8326f84d6890e1eb57b5a70265a7feae6fc20fc11f7b3db31591031238ff3b0c3213a85eaea863d800e3fd0f7e92db1bb5f2032e9b9ed897d295013058ca368cff1649eb395d0d070e547da3ab2ffc058a57e31fcd9fe7dac1b4c5737abb176b35c2ac681d470e714153d0511218144ed2a60765c0bfc726676eb803354aa0dce01affebf9dc19dca2b0a81c470b9a42d1b08d4409072f106dac5d3e92aa7d609b99b22a380779a231804a079acb1986f8566d201f9f7f7c598550a1ceea09dcab76fa505f42533a1a6cc9122159610ebbfbe96a9dee848957b473e6641ba65027657370036a695ed8ea5a710412dae00ddd365c1fefcfa0068c044afd6f3edc0fe28ba76215e0db4ed7f6dc50868e96827f1ad669c8a8836a7c0cefc7cc29644a512c03c2d4772d35e485eca8649fc5f734b16c95c994e4b65ed7aac5d7cbb46fb776780901cb79ce3f9cf60986ada99db2ea044f52ce6cecea31d40324b7901a6cf060693029ea01b00408ff331beaa2af9f47adeb578afce2c6fc025387a6dacca88cbca017055d61f7f0822ad1bcccdb652e8a6f6c4bc93596894cdfaf2328452b056b9a9f9defbbf0a12aae08b97fa84f767babd0f9de7a37b7a849001ad36c2073891a30816bd663119fb8cb0d60ad68a01963058a0ecc33af16fee97fcfe53ae94ac802ac0c2854935da759dba5ab68c0110a566d31e58a2a333a9b54e45213330190bf81d8b88b46e58c57761caeb82746b8c8b713c007c3f098a90febb00a8940bf2ca7c38b78a3375f1641b03da1d3412a2f503839a82544459c5d2a0fb9387b7975a4aba4a57c12445227b9b12496339e156adadd086e8b9999c951186a1caac625ced781bd43141a7e38104975e89f7ee9f9d87e2474be208393c3d593a11720d0312c6b17288ec2cff4b65616dd1750d25d5bae0c302ccfa02169ff9c40f3b716548d6758e9d4fbca9d5529480ca92141d5f6761883521ea696f2a525fe57687676b4f96e2cb16f9c3ff1173ff3218fa1d4bff540d65441fb5bdff22fee1b5b4a5d80ea3c10abcc774b7fc2085d75605c3c5af23a33f83f7be0fbf8c250226898defb907fa1da95e28447f9272c53c713b30acb08aee68c1e87a2c25842683b6d2df79d1213aafb2e1ff0321dc782e980599f50479c0d48caaf3ddd4ba6dec74e8920a01dd14212b0c82ddf3d7c59e3000c8864ec33c796d4157ffaedb94afbe1933f591981d14d45f3335cbd93b8c3f07b0115e8ec5e8b1bc2b5a93b32f5bf576f244dd00371b81a8d043d88476dbdc68a1dda50d48c7c64d5fa2f6d75d9b1b0d046face55811e801081e749ae0ea5e3041111ae32110d9b4e1bc174b44ea08740b365958a5cd20b610186310eb3b45f5753194adb48980ff995bc292a811ff385cba9ab2e5d6754e45bff2e93882c085bf3a00b76f269308f51fbcfc3fd09d4269415faa8b45e25d76e82c5833422f6800e1d1b19b205647d85827644d091ceaad82adaf1961e52e92684a71cfdda004ab9fd1a286207b167e865ef7c7ed3d5db44a2bac0542185822f1d9f141bc2744127c2021c631c46c97e5c45ad6c11bb1a6ea6d2430b204285c98c4ba0483a557995c44a9fa404ae52ede822c651b21cad155b35664fd53768ff629c3f30cd262a9c2bfddb402a3e8696afa7376dc3a4a241b2c754db237847f7874011b3893d535716648f221b2e6b0370365bbee82398639b82990074ffb1c7fd39b422a5a5fdcfcd617538e2e0e417681ddbb918fdc2b02d6de2fc2d08a6a2b9342fd4a5f43c4e9d3724a209d3f93c12320851f54800b53040f7070768ecd11d3d211e5656607f1957e576c0c167ac2dc68bf20746c8106647531161b3481ba4f866000238470938136cc7b7d7f248a3b6cd456b73af46454c5ea10acbc977a54394d3cf8993d51df3a648d8486ab4337b5c594018cad758b307b5cfe9254970e0532d669da204a72aa7a2c3a0730705606b4d23da2e6798330ce68b27315eb5b2618315b0e6e97170ecdae65df31cfed6b5983ee8ee8bf8ac899266446b164397cc30e734b890538d75ce49d988b4b437014767ea2375a8a62058a4cc07ca51895700410a1f78000f42485f3c1d143eb4270423ea60544652c1b23179e72186b277cc38ba7a67045345fe6590103e8ce09da7cc327a81f0a1fe9f2a26056a95252899c59a2eb40ae8588141e3c67cf0b13bc9de63b51eae809a5c05c2b898cb0e43d4720527904f20f047e22b2418259d6194398970569e6e724c338e35905adaaebe5384e5134b5cedb7c10760f9253e2d906db51cb015128d70d0f4074cd6531e8478d3dee4f29b7c6c067d61994c8e5ef517fb25f31f3bb0bd105fe081c550097b0ffbc659a87186917e94dee996d9a72e45c2b7ba0f4679dc118bb2bb13f9db8c666627bb2926d30e42c2c7057fe032c8121ac2fd59900f76502989ff898ee3d4620d6cca0a80d209a8b0d8e861405a3c95d61190daa0ab11908b5111335cf18e3bb991a25dc63a956771d18cc90717830411d27367cd853a0ffe0879c10d2b16363f6bdd5cc3a9f84f689c711041e0edf4f126a5c499afccee7cafd3479ac8d961ab807c5d4401637b11765d13834bbd2f9ce3ac8378d06e1eca67d3bd9b7261d7e883748285be8efb3e9b00fedd55777d4d744015b99b94c823ffd8b2e2d8ac54c832930cd462d3907577aae53828edd752add0458f5f98704703cd0f65fda62d11336371659def9cca431d847e60c241eec3fd9ee1e72d0dc1222ff28b9cfec789645b1ca1baf6352a2987b717f98ec8d93b4011925bdfb1269c5b15acffb1d4935e97ad24d23fd4eec44cf4f0b66e8f583d4b9126a60d56b7040dfc2f367db46220ac5488bc2a185dc439a6f4a60ad1df52785c898c7d2e4f064960d611111219cb9c54619cd6d0c400ae956874da2e9c123863dbd7f0775d219df08583b1c7e2c61656ebcfb07b73c4db756546ad126d890759dfaa9a0b1ef0c378f73554a3c81c083582f4652f01ccdcd1665691d6db78cd074cb26988d616111acaeec67cfbbebfe367b81170ccf8e8bbf4d92f89f71112eadebddd05dffee79744e9ce862abf162e1f3fab8ceb17be08b28c82321f5bc23fc698f365411259561b28edb150deaac299fdf4cc6a9ce994d0e8830359c29f11612149921d4495cca2a3c85a4bc63ce55f0896c812ba82d6132c615e25811897a742bf5f7e46aea609d1f2f2592262f79935e63f98ac445e0d42a37b8503ce4bbeae58da715849d01425624831808818d26ea031763b55dbc2ec68bec735c5b6951c1dcf5ac14ef200c43d09ee4d27412ed62e9bee17e1a1c4376d991d6e255a473d951153942564f0046746fa5149a1a91986e73019130c9def37f48deaceee539a2ebe6a25eb7145bdb1786c401a94c8d93a5ae5758ab2fb28d6a14ae0a7537ff482146589da62c7cb0fcbe34f726ea7610ca77128361faf0623832ed8a955244007d0459377811a2efdc499d8154d6c2be1c21954ecd7ede75c91811f4d8d1f002fbff7eeffb1f114a52a4251cae195c192fc94a639b1855aa25d9b44f4a17aca493b4b2c43e11aa623631db001820723207a8e2117686a611be4891160128ab917b724badae84a55955a1186c96b5239b30a1c570ff7e4321e1274f6fb00b5dc29cb5dc68090a341051507867cd60b83be3bb383c6c39b1bee8d0f817da52b60e30e8d8734b1c044561c52d90c4e942a895b32e32dcf8c52a1a0df29d48b9f132f930bbca599123161b77bc1031e8fab64fbc46b705085a372c9bfcbbb5e790e14fdd8448601745e049e40c503114f10705a9303688c37ac37cc106e14a8082820c739bc8c5d11b1ea41ce11cad091ec77209b1072449d99992926d148efd5877388f4c55640fa371111111149713a3185f1d849bd4374ae6f6666ed6e198412e713140f4c844221259e3899c941c60810324230e124f3dba65145b28d0807624266893b842c81832558e0ae4d6ffad2404b707179f1dd2f518025b25c19f6339f93ce464b04d1b25036e226df038a1e0770ce6b25fd7d2adb9cab54e082224aace1aa183857c1c00555121c8657922bcb527c088c2fb6b8628a27963862881fc6f75e7beba5775e79e385f75d6cafb5b65a6aa795365a689fc5f5565b6ba57556596385f5554c2fb5b4524a27953452481fc5f34e3beba4734e39e384f34d2cafb4b24a2aa794324a289fc4f1461b6ba47146196384f1450c2fb4b0420a27943042081fc4ef3efbeaa36f3ef9e283ef3d2fcf6b9122752ab2993e134af81812c44790045c09b80e705d437c0cf17180ebbaaecbb9ea05ce556c3857ade1022d465c385a76e8c142124de881730e07074a428d9e9e0bc7c7909e9e0b67fbbe745d3e7a845cdbf7a5203d489020f9a152c3054950e1806b8810426c49a2c7399c249024c183bb34924f4559a205e742a12164e181194ec875e4c805835c6038e7809880732707389721c0b90de5dc5ba2c6e938e765892c37599e736e892c37ce01b13d80650658b8d872226523edc2b60c0b75ce552470ae1a8173d519305780b1a31241082a10385799e15cf501e72a0f385795e15c4546c505e8ca7565872bdaf5b16b1369590812b9901cb99cabc670ae12c3b9aa034ac698c281c610c381c6b0c3396783f36100ce06dc011a3850078ce0406208e140626c0712e3090712e3030e24c60d1c488c3b1c680c1a071a23e44063f8009941c608079281e240324c38900cc981641ae040326038908c180e2493460d0100e2c3399b12c4c0d994e007cea60453703668c4381b346e703668dc381b34a6b3412389b341233b1b34ac0000089018381b203970364092e06c8038c1d900c982730e861f352019b86005678347e56cf0b071367808c0d9e0019d0d1e479c0d1e3ace060f28ce060f91b3c16373367834c0d9e0610167830719ce060f14cc38e79c93c10600d0508522389b2a48c1d954810bcec60a206763851c9c8d1586381b2b14e16cacc0336383116a703646f0c1d9182108676384e86c8cf0c43907240039808a0c71a022d7818a3471a0225a1ca84817072a9285734e060890187cc02003801f54389b35ac70366b60c0d9acc10167b3060a9ccd1a3070366bc0e16cd6f081b359a309ce660d2d381b36609c0d1b30381b367270366c08e16cd8a0ce860d1c67c3061567c34677366c949c0d1b5dac3aa868d1c3900c544d66c0c20426e14004c0c2396761e811d9302c6b81d58215906003658c5169002bf1cbcb96f2b92e148695b0f4f011f299d6fc756d9a490f1f278f42994c18d7ff2a692e4d0ca072512a1c43005c131c0f403b6678f161e424dda350a46cd3704c9aee72048c2aca17516600038ad26570501c284a0d03a0784004850482228232c46f3ee327cc004858c139f743bfaa00207146483b791446d299ce085670820d808e7882db7c0f1f27ac9f4ed8cf7552728411ee889b239cbb7086a4360e8e66c5b9008b6a09a02797735d9ce19c258413239c1399b8171c9c136632615c046a2285738eca55d3c486dc338c7b2ad83ff1643ef34e884ed8290b3101c085a3653ef35aaa08642c9cab9c174e9034efdc153a689834dd85eb4fe4845d711ca413a40609a09c2a9c73f11aa2973094e6ce39d09226382d0b492e4b9c5c38ce5511908073d5155a6481c51556541170aeaac23997851e112220254b28b9ce85349f5d1e8571ed3a91aa70cf45b445fb2e5bb4c722000732620e289a7405640417ae8a73ce0de7dcc9818c9001548414404504c11539632b02012eca22a6ec684aaa075410d80194848b93d7342f4af24149744217ce0f276c499279e124f181248f2c74c2489a0809cd1128b80ba79f485bb454e651a92a9a9203547fc276360ca3d2bb682a9a2ee5f82954808e3cd0919bea012f8ad5c4838ce8c05d3854a450a192af1f7ef8e10607327285112b8c6c464a2ef3a222174ef759114d34440432e2e4428204897395028cf4c0b182bb709cab4e385c403805c099b291ba1799b817ee0567080e0e209c18409809ce3921a292be2e9c2117cee83a91aeeea92061c5772c07a71c0847a972b330e5d22a55b00ddbfaea829db65c21ee51da95e9d20604934b350d08ae4b289f5d5aa5cac9e70a09d1e4da3a21cd35bde9feb191a69d6c5a464af95ec28298ae2850b49086a30de0ba4223d475c248a31e9f61ffb409097279ada4995ca19e28533d3ddea44f3da14dc34a98178f714e429d3ea947c890203d23cd7fcc7f8d74d223be85eb6cf35c7c8954e244b6910fa974699c84527244fb2cc875e928574f129e233d26edb38f11d952d885f95c1b76f2822db942444ea44b5fc1a6fc13e9dafa297585323fc4c915eae9a9728584684268286d0a725d214d47f1c1b66b4ba14a5ac88914e4ba423a4f52df9bf40ef7a82a4f301ead7bbfc373744ed80e96792d276ca77b272305880893078c343dc2763650a8090248091d01858a848280423e847c804235211ae750d825248820174e914b4810d73524880b07855d4382b8825c17ce10ed62420910911d8088b04048102dc229021af205114ad3b614e63551a944da22da926993017680c24a25cdab53496f27ddc57321f99834efbf06e35c35a593aad29602385791bc499f9caba278f17de4f382ea3b5779e7aa2a5bd59d733a3818f06a575ae45cd523d2a492124e4261be8aef5814cd7b269bafe24b5bfb0ddbb1b2856350b60c2b692df35c48272b99f6a59c0ccbb29ca59648072aa307072ac33a5019a732ae7020325ae04064d4e140647cc13987c30f34385761d9f4bf3c4f1441404123998a708d64d2c2057590b411ecdaa654c62f2d851261db8924ea5ca238d7c4e1887a8934e238ce554bd4545ab8dccca065219127651b480045f0a46ce326edb34dbb3c29db400230c3b92a892a0b0cb0800470d16086730e732020bc70ce69592872c1c101fd8045b54545012c4e18290157c929c19a68d84ee5e5c27caa9312201fb600f9c0840e91240ed483064e24eda32f6d4ba64d237ef2fb3aa5b2cb08cf95e4f2a24d7ed3527ae42583788003c44314d00e5370cef994737538e7749070201a9ad87112b9e0e08076d8c13937e3403ae051051d74806dd7900b67c8856386734e87098074f8e22e1c6cd4e51a02d281892d8581742802d2210777e16c7ad4e51a223a696ec9e09c3b8003e53085e67dbaefe9e957171c8070a8c339ada449498efcec3970d840381cf9296de1d8a675b27003d00d5b38e7f475556f806ee876dc306409900d77843a699f309216900d67f038e78470201b504e070ac806e7b9904035c820d43594f6231c2d0b657e43e9ae455e1c880633b42223eeb76bd3d9e535ed4ba8cb48f7df77100d34a01998009a810cd00c61781356c59fb01d9eca021c48e30c2326d2a5e92ea38dd431932665dbc72e14b65d9bf6e22b2b9ce6b79fd229d397e782ed27be633b4b743c29e3c9f8898483b34da92cc7554f800090022d0b65d8a633bf916a54e0c3193d8440af9f9fc539e7405ec001c60d64a4c039e77c0c80869e295276aa289510545c48905c598ac31c2124c8164ca4914242b40b014244d7102dc80010700d11fd6c9128a49d4845b693afd233cd35928e1226a1aefd0807a747899e9eeb63fc527285fc09d3d9483ad330ec77096d7a94eab2f91f2b99d6257469fcd2bae7a2b5ab9fb4c64a1bbb34dd456797cf89846d230da54fdab5b5462ae94d1b3224db1ae9da36af9146d726c48934e2a4cc9bfc08e54324d3b531d1d3a38446d27a869d9e5ca19286c2ae93922b7465a46cdb98e8d1485ae6a7f428f14923aefdf531bf89a40c40ba707050da8573615cf39c89ac2325678ba854f25d946042892ed79052d77ea489603e9ae742f239619876694aae90d64b9ef4f5132b527e96743fc587b404c378f4a675946cd84edfb01d6ca79fac00a1a7a782e25c858473d511ce554f9cab9c385735a9b273958e73558e73d592ca08e7aa229cab9238572171ae3ae25c65c4b90ac7b90a3b575de72aeb5c55abe95c259daba2731574ae7ace55459cab42ce55449cab86385711e15c3584739510e7aa20ceb9984a08e750a098202ef4733608a60b6ea46926baf649806094707ad3fd025940f8a1881ed1e67dfcd75532ff93792e18d7483a5960036449f7c34f46da9b17bfe37df494debb603b3a3c8ba6752c67f3553a490765ca9c9c3c14ad5452d29f28d19bd6f1a727be9332944947ebda3be10688620093cea6692853baf89d2d9936657ed358fca6b72a3e27d276d25c7cc953c9d934cc89ef58ce9529234d3b51b2691a4a9456309efee391e81893cc9f30922fa148190fc6d34b56349dcc4fe1a714763a29d1da80c211be7084df521b094b4e17bf138af2f239917acf3c2a14e58fdfb2fdecab4788902141827c8c886bf65c1ac96b58c98f2e8d9465d8bf7eb8a6f7c9a3b0ee77b09dccf74cca97b2a5a49c9e54c9fca98b940ddbf1396119962e18140ce3f1a2a3749f619b73555509e14a55faa6519ecae6ab6c1a0665d3523add77c1fa297341660b0cd802114f4a259de34547319136cd5ffddab09d13767914866d3b57a89f86e82a9aa6afd04fe984693d3d5aaa27d33ddaff98ef3af3a42557a8a72785259180eb4a92446f5ae71ad2b36b48952326d2a80a4a474172f90cdbaa78d4cf01aeebc24e3d3d3df912c0856d1acaa4bd78cd85b471edbbdeb42d855d1f0b691be994e2a102e5f4c473219594a0bc47a28acf89a4bd4e15beb8704e5db01312234d8f4e291c1c2af4a0e7da349643852a50272b990a4b9c739da4a7943c170f0585f1f098a6e0830b8789a665a12298868393615e0ace399c3bc4b8c3017734b9c308bde92e126d5e1389fac96b22aca73451f74e90b83e7929a4e1ae4d5f5efc09074724852ca4807217ceb569213f7e4b100713822868c1b90b448189730538913493ce34ca4a0949da8f46c4c4bd645e64e25eb4cc93b24c6f285801852f504041018bbb70b868c885a365432e1c52f799dfa279f49661515e8cb28ba6d29f78f1fda49f8085734e2b958ae4e19c734bf8411362f0c3094df0f1c29632a9e1aea04c245dcaf18252b2f92a4e7c152d554265a92a3fa9253e27522f614efcf6c44ba672f25cf33ada97727c4e240d2be574bfa13ce74a50a6ccc9c9a3a4e474f13b2853e6c4778f2572c1c19157e21513f762e2599610003bee703d57e64960871a3938381a70ce959c8d1d315a162a22f219c64599130da5331e1ebd699d91a69d68de474f2975af692821ed3a614374965272651893abb449dac96b97d6485b32ac4b172da59dbcd7b011bfb21496c415d2b4d4a6af54c732d435c410ba8b5f7285345411249d2b54823ab238ac0e22ce21810ee7423f7e0b11574f7fe2513f3c3f1e891ebf456b3d27ac27d3bec42f6df33e5d304dbb3694dfc23d97d2d642687eb45d43342c57d7f4e8228dfcbe7c4e244e3261278cfbcbe744fa29f1685748f31fc3b2293f1e89aea3fd7824b09d9d2204c139a7372c0be204e0dc0f4570e29c969534c79c4b7d400c2dac2002173304439048496fc08b21c4c0b92148a17d17021c2e3b91ae2e58e973920f06854810f0d8bca604d705206ce19ceb8273aec2c339f7507ad34ca46df35a912728540f4d133f988013651ec5499b374581a49136ad6d1acbb8365d467abc68d3cd75e412e2459b6e8a18204889e4f955e432408f75b2344c0b429adf7cc9f7273362084164064bc8e784655dbc09ab7285b49dd22eec749d74b664060b122ac53976fdeeb5d48c123dc00040a6cb6420660b2b5441481091460afdf82da21f60f27031565c4cb65070ce3da18606cacf4977cc39e704e75c1398e09c5b0212cce08111ce39dfb193eee277bee041cc8954ba92c60ecc082d5129717638e794e09c8b41c219d50e9a60430702dccf496bad7b7fc24add6ba42ba44f9a37e1ac28dc966dd3bd63a7cba77a7caafb531729be633b3d3ed34970ced581841618a18329aea4831d9c43c21239e88096855026ee459b4e4bc8018d9685461b29d3453414a6659ea4699a0f8f46d2fcc9377940144ddc20054ec332ef44d7be7461dbf549230dcb1c55dca0c7b9279b88a64cefe01c13ce668e296c29d3ee1897214984fb8e712230ce55cec5cc01c539d19b6306e7fd17619b480e2d38e7b412496fbe8bbcff72d4e11cf64f72d8c03977861c5838e7b41fbf45e4c5657e4b867511fd8fc9b1849743c76922398238cd460e9b38b4e07e4a28948e630971cc11470a9c737190e1e29880abd488630638bae09ceba20d2b693670d801870d2e6ceb7a89005c0cceb90b0e1d4de4732265457cca00be8bb8e72223870deac8fc462a9261dcb929dcf082730e083fe84195b2418ed3b2d04fb69d7c119436d580053e70ced5f4e0c8d549a66a8b0d0daca065a122924b119e695576a43ce1c9d9b17284288b9228a2d0156c4ae6b978522f615e2375d12edf65db4859a6491769c435e792f92a1717bd5172ee44aa3245679b975c4589288583c349993f791f112a777fb2c23d4af3b26d3838da136de46006569c739a96857abc13a492e884f568a45a1395b49685341a9ce19cf506146c1006148c5833b0dc68432483369ccbb02700b90139e1004b88b1630e3b66c8d1fa93386f851b2b2d71ce6203948428ceb935d4b0c670411d5f1c080974683f2725d1c4b36060239d489f05251296524949f71370ce5a41f7524a2525ce596968ce592a38a5be73560a3a29037ef31957e29c85025fc276ba3f91beef6268609ec05d1354f8a3b32fd0702eca1f9d654a34e7ac119c11513ae3a9c2a32519c24dbc62e25ee4952f3610022b032070ce9d9e64dbc94aa99462724a614c4a5b6fd84e2f614ebc13242f3a8a8e7396195b86a1b0ec64c544d2a51c8ff168de33c17632c6054a673cdea477bce492f63ad8ce168e41c176ba3f59f1a5adb19dde85f3d8ce16aeb72a5a76cefa80b326e00117657f429ab58c1fbfc5398b8c177f3c12d61862e8cc23516ad24ba4518ed5812dd328e72c0e7452962a4d71ceda40496facd4c4731276653ba5b6c947c9986c9af6503625534e7ac4e3332c4a7f42d240e6b7904e5814e7ac09e492e6a4d3887b9e9246f2f1504a9ac4493d7584d74e9e443a914c5dc94f96d2b4cf780af0b3c439eb0bb725c398fc2cd126ada590e827bf691e0b158c631cc3e29cc54518ce9952d967d848d3392712c637d212e72c309c73d6175ee4987896ee4f56ba77ceeac2e2c2ca00f64f4f4aa5d48e7316069cb32e606d81fdd313cd02ce5915c8ddf3480a581390401180b0033a6a40871b203a5ee09cd37ce69dc02c318bcc32b3d02c358bcd72b3e0e0685172c1c1895cb8bf9204fba72747b8bf92612792c99bf429094934d2f448d49fe0e0641e95d24cd8c9771376d234ad974858921ce1fe0ac9e79462724afdfe843fa9f06e999ef2d3b1255ba651fdc94fc796244912e59128ad6cda09cbb986dcd4911b61eaa67efc965953a4285349788e707f05075318c01205380006b7001c5c1514aa28543fa85850b5e0065e627e40c50d80f0d38f568940f3a18829e630a246478e355c656d617a418e1d6010c7cb62f8c20b2eb8a8c2b929dc145448c100066449361848518ad027d265245e415c275fbade85e487ebe44b1454833bb828a99454202b20c18208400084174b2e80c5942b45ec00a2818ff3a5bd49a7ae7d366bea0d18442e221c114a7b037b43bf3145c88533e4127d9f05e1e982e56837c5fd158d8452a29150dae754429948332040750237e6704d92b8d1c42539a2f98e9d64b08613693c9bafd2c6169c73a0369c88c1111c062a506dc0015218c0675c60702b0d90507ed3b690b4cd5f9dc7a3a4603b950f653ac3b2213d7af4e8e1e3a4975ca1cdff6c1929a5840d30bc5823082035ea0803a406772e8803987143b370418ce88b43c0015a90c5e94d5363e4060b6250f938a7ad8003ceb9fb6fd2d082735ed230c3392c0d970613aea74adc4b3f6959a8a68b3fc95849c0698921439024417209f1d24941b6efa1e050c9a46cdf43b9aeeb3a2d7180cb4b2789bc4ff7a22ac0e0054ea60451203942c475f22551141c9ca0082730c30477b892f6557c3645675e6799524a29a573ce39e79c734a29a594524a19638c31c618238410420821842fbef8e28b2fbef8e28b2fbe8831c618638cf1bdf7de7befbdd65a6badb5d6d65a6badb5d64a29a594524ae99c73ce39e79c524a29a59452c618638c31c60821841042f8de7befbdf71ec418638c31c6f8de7befbdf75e6badb5d65a6b6badb5d65a6ba594524a29a574ce39e79c734e29a594524a29638c31c618638410420821840fe26b2b9d32c228a6272e09901931e8cc1729c2330ddbf1249d5e4a6158ba6025bf24c73b81654c9cb3ac647eb46dd8e9d4f512e7ac4e05dbd1b873cedace59fa8491ac50f9d1507a2c51134e6b9de77ce568d98eb6a1529e8a3ea52e9f694fea5b6ba97d31e9fed445a3b44d23f9ccffe8d255d2644c71ce5ac2394b091019419238a5ae9316b2f5e989cf525bea67a96d5fa32d23ed2b74d2fadaba14ea467c48da869d2c2c57fc09db71ceb2e24d5815ab8a731615023091b53ca922d2c93a527276b2888a142a54b22843b1a223258a288b9228383827bf05e329a53a16e59afcf6c4072bf527fe44f239e51c0e441112c4555529abc8d8c0fdd9224dd32823b6933e914ca48c6ba47e9952276fd274970b73e273226d19b6955c217f651a58c339cd394b07e7ac1c70d0e9bea437cdc439eb061b9cd35ae7ddfb8c8949eb0ce34b276157b00df593f128bbb661256dc34a55664d81c102110aa5717044280d434a63a67d6105a7c40a96792d3f4b4e4ab214e7d84909890b49e74668a5a60b2fb8700e074784d2bef02105d445171c69df08455ae651253fba11a6ba8880941ce72c9b5296658e954a4ab80002880b9d0cc0c055f13991348d14450a500696c0c016ce63e009ce398d2af2b3c56001d132bf69292a978fd7aed1a65157a9a40407c7390b0620ce09208bd9010301f841660b992a9c73521ce802a32decb000aa0242a8343a81b92ad02bd09df3f21a40813a4e240c25a2001bce4d895c7070928c34ede4888ff6a34bbe77c17a09c3b8281b894ca993176dea58942909ace12470440b1b68410217654a0b235536565ad2b3df343f6139fd090e4e8e0640590471561058ace11c166560e100e7dc85e4c875e1f4f45c9ba6515cbabef803a2c0c25d81802b9058d1863563c95831ce3913cfc2a329e9dee4b72726bf3dd13612960858001401274a40556801540519be746925a02a50ceb9905645ec51a6207005e79c15078200182e946159e64b25df45d3d7902757e8e7d2fc1208d007a4c0c52b2725f08aa7d2c5ef50d1054785155418e17d7c52da35c46b7ab443870392289594708d14c57b26dacc054d5172cef97ff568a79488cb96932765447efc160b4333f488f86025cb72ceaa4053e8e4a1a5013a705d74264311861e9153172cdb234d8f400d38e372a0067000fba7273f25144a89d7f4680a8f8683830603662019e9116598a867a4914ea47f2dd1b290b6914c7838e72a2e389f1329dbaae4e0e070df311e652a89a6e99228f3282fda74c48b36794def2451a68e78d1269e928e420ba765a19286620a170a8584d87c492b792e3825cfc5974438ceb9299ec8c213758c343d1a697af4041ace6d1936d22e0cdb70bc96792e3eeb3e63a29dfc166cabb07005e7b41f3dc5fb2fd27e344ad374897f51c361fff424ca8f9ea2f924b09d0588b1000e2c000bd773e1545498825dc00e5a16ea46146086735a163a8932bf9144268fd28a70cf05a4002c400af0010163f891a69d244972a4a4b713e60429c346494438389e946d229426f2d14c7ad37d27ca9413474aa514136cc787b464b449d19bd6d1d92225ca942e894a18b6455a2989906b88564797219c733e891025d790fee408f757844499e20630890c60ea5c5eaa0d2314810843a88410840d09a06d6a297040a880e09c8e128d1465c3b0ae3d959f6c3be592eeda53d9b05215ef04a9cae909ca9439c9c92853e6c4b9ea07950f7ae09cc8578142070210043a8ad0001392f006193e38a2040d330ba831810f9009e4c8e25a8113d6a90a27d8810148484110323000ca057ec0028648812ed0408308156ea8c00d71d051868e0270c0f30024439871ce79418d8a0e90018c40c50084cda0d28173550eaa392a1c3857dd600ed0698b5377e26422c339f783f653aae070aeb2410d40a52e38232a235876f98ded64a1a45385520d15b6e8c039d7b51f624b96cd6b19540018e84deb800a60032255e19c0391a078cd474f018db270ae7a6306ae72c39d7c4825ed9d20695b0afbd1508ae85b3877c7971e4763a271312e0649e568c0a8ba0ca8a271325432355431543531c63a9809c4f44063d5d4c8c4c05495b3c10a39cb55048829a2723446649c0c3395abaa4a46665a3f2c5755158ce5a4aa682aabaa60669cb02aaba2b16aa0525533158db32a184230d6cc4c101f57156359315854315565f9a8ae60553d9c4c1563c1f8aa2a805555568d154b07abb26662acca095655cd5815012a1baa0ac6aa81810c0c4d0c550d55555516b668a881a9baa8ac6ac6aa2a0b465459313e7a4c0b4895a4a692b9814152d158560c84f161599510196a758018f88309cc14cbc538ab03550c4c901819ab82713214a88e5039cbd9d8d8b8ca5531955545a1aab186a82a4bc6b260aa4a5645aa9a0a886559d64c4e258465c558d58309fdc0a16600150c00c8c1b2402563e150c5543095b3a658978f2ac659a41977f5541180713fc0a07246c8c082a966aa189a0a860a660bcbaac181a92e4c6559319705a447904aa6aa685e0cf4e155968f991aabaaaa8aa6aa702acb0202cc4cd5c38a81e1520161a5aa0a8648d5e38755d5d0549611560f560f160f300ec6553254339655c11063031363e16059563553c5fcaac74df543c6aa64aa18ac0ed6139a1f3dac6ad700a1b12a025435550563553195938a070b5b3b583f2c1a4ba682a9accaaa702a1eac1f164d4c0523035355b682a982543d2a20555519a97ab07cc0d054353195555538553553833543156355323115b67e5430560f150c8c65c5583115b6ac2a07cb47d5a3aa89b1aaaac2a978b07cd0c0543135315555d9abba61889a233044c85430558f2ae686aa470f9c1f4ae8d043258098cab2662c1a5fd9d0f07e38a92aabb2aaaa22e2681cca69594075471251705712612c618e247ea8e30958f4114260c50845703c3ffcc05509e306be8a96c3510983055d50f901934280300a70c7143d8d8012460f5570a27778388c1b8a601dc307ac1160b8b13ff8a8aa112a2fd49e3cbca8d7175ca8078f1e88f490610d298218d890eb0d41041843a4e043cf05c487cb0600383002c084eb91c9c25d3151b84a065a169a91c2471035f842d383a6474c0c3595a6070c0f40789ed801a226c88c8f9a1b0344862a06c88c28a60b0c0c30a0981e4481812f333158343d6286c0c0c30dc1171f5780f49821313c614d1d64acc45433475ef00509141d5014568c8f182842b2f04509500c31c713950c0ec807239eb06272802182aa7e482243041d5f66667c9822050d322c61004c9327a6f882430f2c4066003283134c6840d5683eb0f0e5c8d6a3498f1636343d606090d9124345154fd4c4c430c34325837cc20e0df418620752d468c10231583f648c00d1e01824bc126740110099203e98f818c0cc123143d0602854104613283c70450d364f0a18389407c4e0cb8fd4cf4014304419aa2b3bc018a1c1a13ee18306cff8a88901c63e6902c3830f2658f8e283e6090c556a9ce89099f8e8e10448957e44055f6c8819527dcce0040086191f3f32104d88f1c5478d931e3604bec8c0d8c854330498f12163646688244b7ea47a0851e364c6070d0e30e8f4b889d9e961c30c3b0c20871a86a82102092a0378c2474d8846c220ed9329344062687290c181a93d80c408711941d383c6474c11192462ae11958c0e303fc8d4f07ad470189c8ddc50e3a3861ef6899c9d1fb32648cc4dcccd8c07be0c11438c8e0c11323df4b889d9410608c303145f42452a980f43240646e600403421011760271184608e35ce10810738f0800524c08bb6e57bded3c4125ab25cb152650a94239ce05c1964004108e08a91411b7948e10976149124082072c081060c386c30861804c845e0f04003901f333160411a2020630c0e6c200c30bab012448822a10c6080a74a1e5db0c2d6228528a821c2405a5c41fa498cf8a021230b2c6c0f1ff4a00c327070b561861f3e6a6876d001052758c277293b473c6192bdb0828a29005004da021184c0030bc072c5d61b6688b9c11c55b8920449ed4133338206a441020d5440021038c0175e787185949d2446840052e101c3054b0b31775c51b09610638765049922543fb07860eda0071d407460ddc092c3628135021811585b620a50dd543ed4f020b3030c3858365834543380022003000b54d9c4c460fd90f161f5a8a9b1686864ac980aa6aa661c0c32c0e800e3822f3111f81203656688aba2b9c21336627c9191014233801f3c1113068cb10108073e30f3802f31507ad4e063871ba2f8d22389182d303dfcd86680d430a9b9333e608cdce043a6065f6a52f06586259ee86161baa00210227c91c9e38b0c901c76f005c806840bbef4b821068bc6884c1199093880861f3858008a982abec8f0830c3fc0100115a9b9019407143244d45c9a233032c01ca9e1c0179828b0c88c8f1933bec0fc98c92166c80f0853c5008919e283890c113449cce430e363a60040660032438f1b7ad44093048c17a098c901e60c286466f0258802c4982e51103cc4e0009161061453c11081c9899902c486198b060b8d0e343b3234c450cdfc8091890102030363c1d0c0d4c0f4f0b1430c0c8d151a00c830c507886686a682a18999314562aa1a1c607478a2870f321ff81283194f80666274a8d181228608500021ba5c1e5fb0c3073db8c11c6fcc20e553250b2cf292229058ec2485281411c246861a1a25b448d9c9230e1de0c0872bde161630020344e0811c6ea88102118c512434800aa4b62bb4ec0a53b8230874e8a00d132c40014d2ca1258b949d264c7ce8c1861a58b082058820040a488088871db0930f3110610806307dc9e30b59c0c2124ad8500388076ec8800d35507082115c610515a22692c02265e7891c71c8008e166ce104083f90c38d36d47081181c800003a298c21d3ca0430d17b08004527cf1fd4906c1704712ea20c21b6dac200d34cac82202be8b9a5842092c4fb2111c212018e488e38d2e32908514be3771c41326d9084e0c30c4b824d421471c3490c10ad240630465686185144c1cf10489111c3ba1100080625c1e49a86308347843066dac208d1194a145165644408a23889858a28822a12ee0010509196210c20e585401812c589e062200811f2f20e89107cc172c2fc8e06171a1e603311eb0cab0c6a8a205615e15fa4104860898ab061fac1d2a1d687280c1a1ba21c686aa861e01000000606c62640012830d0c3900c1e1c70e3e403d686a6668ac99191919181f4de8603b91325411df314e3aa5689a20a309279ac8404d40e9b9825c27d2a5917e329de911bf741339345103a8891ae72e2447ae20488e5c4cf48009389cdb7e769ac8fb64def4202d526d21c3bff5e7536a082986d38642a6afab84a016f2ee5146c8e7b77ec23a0f506521f3ff2ba5b1fe7bfd7e1c6221776be9b3d4df8afb8fb66f52a9a4ff89f4865457c8924e69a3bfdcdfdded96328966f54465853ce9fdf8de2d39fc983e3bb250a4e9073525b70a99735823f7f1f7f8ded39b0a79f629ffa35dfa1bb9867364a1c9db2ed514729c75e378ed8651d7fbe71d59c387adedb1c31ef7a47f64b95452c8fd714a71b57efe6e6795a92851c872dfb775d55e43e9a58c230b2f1472f57f5f5ee7f70f73eae9c8c2cdfb489e9b9c1b274b74469a7632d2f4c8c94dcecd129dfa843c39a5155ebcbfa671f2a8b31c0ae9ccdf1d2d22ad72429ef6f6c82fd7ff372147b86da4ef411d31e67332217fef35e697f757398d162e21db0b63f45bd359678df4c1582b3bf2b53dcab7a99f5a4a0abf12b2966fdf3f39f4706e1fe1c842bd957ca7af4a42c6555748ffc5b3ca5ee31d5928c2b6083f8665532294d0ee68111d51d591abfffa62d877d72f5eacf568def034b91969da494542f613d6fa7195fc3dbaa11d59f8e20d4f139f93a6f2b58742e5ddaa23644cf78df1c2de35a5b0feca08d97fa929a49a43ed3bb437140a8542219da534c409a88a903dad1afb8be394555a3947b65e22e4bbdff51ed33f2be77bfe91853c506ebc604b42a1eebd605bda2dd510e87d57eb7d2d95efdddabbe71a55e5c72311b2700aa11282d5baefdd71bffc5b6b4716fa11d7399e94f19434c7a08442a950887b2e3f1e8991a69de4dc541ab12e3c7e8b2e2d59a2132514da5d74c303e5262ff1a48c27140a512ab30d05f34515843c69d5b0f71939adf6deeb04494b5153ea2437d30742ee2f62ebebd54fd76835ff418e5cff8eed977dd2afe3963ea9ed759850b9f141aebe6edfed8c70dffddf1d59d8618c04a87a9075853bf6fbb1fd9fcffb7990fdbb7cea1a7587bfefa9779071dcef695f6bd471ce77e9c85a4a7f6b7dd1721e2bb43ac8f7fe5eabeddd4b78a5a439c8f44d6be1afbe7edadf8c1007d9cb07ff7b7ac779bfc4f706d9d38931bf3f6abee7bf768e7cbbaed1566db7ec94de190a45288256caa09223cfbd6bed1e4a6c3feffd41b8822a8e1cffefbeef48affc1a6f6d3be94d3bd1f82b3872a7774359f57bf0c1fe2213950db2eef77e5efdc4f2dd89fdc8c2071b50d520bf27a986f0de5f779d734ba8828a069962bdfff60f73fd7abd3d05d51b99cfbbf7eff3e31969bf7f0659c33d2d7c72e3f8f993de8d7ceff47c7f88f7e4135768824a06d9fe3a3dec94fb593dbd7089aa8d4cef7e763f383b9454f237b23006197bfaf18e97421df7f5736421849501150cf27b31de37eff7b7525df9c8c217332d1482328eea0599f3fe3fffdce3febe9e7664618ca1908c33a8d8c83c5efe2bd49553f835c663546be45dbf8c924b8db58e5f532ea492eff686a789e4421f542377bee3e3b8430f61eccf8f2c14619bc85b68c233ee6811ed542ec8965ae9ab95d2d7fa31c6334a28140a8542307aa16a41de966ffaa1adf24eb9b715fd64db83323651b120cf7a63e49dbeaabdfef0572bc857ca68ffd53dcebf399d326f1a79fffe7de5d7475a75ac5f05b9c70f69ac35e2fe1f8df551b9c9b97904b89902e5c696502692c89750a94d545390adef525f4e7bbd94d6ce2f0af296b37219a79f3bdef81ffea23a41e6ef460b2dd65f6bb8e7ac0f7ea03241c6d5fea9a9afbf460cf91c59b8719b73130a8542596e726ea254b9c9316d5aaa005d89f74cba7f53a8d0c87abe176d9f93e3b9b5fe230b2ba490a72a41be93f2ed29ed78763a2f2441f61beb8829a4937fc92bb53607d508b2d7765fff64fcbdf38ae3c8c27ac3d3a45a78469e7d63b965e7dccafae51e59e84b9d243a61f6091441d6f2deb7a7c7d5ffbf3f1ed910e48e75f7db7afdead35bea91d5bce8283739372729373937fd4442e226e7e626e7e6c72371937393f991a69ddce4dcdcf040b9b917a54da2ee21a495062a10648d31edd7fedd3bbc0fd307ab6068a55466645c7dec5df7feb4c7fa7710541fa0b1def7bfdf2fe23dfdc8c2920e8560f55279206bacef7cb5c678e9ac8f8f2ca4373937393739a15028c449a1d0f5405546a6d6463d399c1d8e2cfcc936082dbc3b5a44465464641e5fdc74723dfb7bf2ea9185d5e4b727a1d00d4f931b25373c506e42a152499baa8442528a518d9177e5fb5d1a3db778da4d47168a443196b63e590985660c4125469ebd5609e9dcbfea0e751d5978b7a83a90e184daefe9f9a5bfce7d47166a184a7a5171404e2abb8770f30b67b4230bbbe8ac72a0da40b610c26929aeffc768b51f59e83354cc5d541ac8726eeea1bdded3276fd4230b4fd895120a695b306c140a59b8812a8c8c6595df47c93db79bcb8861cd5281d16fe5ffd789a7a597dafe8587f6690e3ff61b7b88b117d152cc37d4557aa8fbad5df0d9679f97bea9dfb3f173c1ebacdf5788e3de53f307a108d6a0cac08c385a0d2ba651defbe27bb08d0a031edfbd6197926e4fefc317d0964f8afbd5925a3e65df4e9e0b7cd08d6a0bfcfd7db3620867dd90ee0ccbb22c2f3c4165014aed85f4536af187b1622c829546185415e071d77fffc6b4ee59a30c85422113f78245704213f722cfa828f0b97dda52f960dcf3c75a25147a5004b9e7022186a39ac0c51ff3082bee37fabf75ce4dced5a29200c4fc4a2be3d6b146dbbf169f5ab9adbed04b2bb5e759d42925977ecb89f5d7f74fa172b3e426e746c9cd1428d38a0a0b6ce57b164e5bef8414532b67c8c4a5540ae53befee70fa1831efdf4a8ffad93acdb08ffd532854b512ca44a2a22aaa2bf2d4f2463b2fc4fc7e8de9c842d1e67d2cf64f4f36df24140a85789a844221fc20062a2bb2b415c7ef25c45052787b04f2c5afdaabbb8ebefffde7c842efb34d04a147fdf0c409e9a8aac89e477ea997183f88ad8740de7def8a7def74575ef17e40fedd6b3d298f126ebe29a52253dd219c57cbbb5fc4156e29a536bee16952d2a74c0aca44b2b05658a81c90f18f1f77e9e1b6f64edaa7c8f3c687e7dc164b0ee5e30dc83d3eefffc3f5735aefc70cc8d5f229eda4f2f2f9fd96230b7d4e242d4b719f89a0f7e9f986a7c9cdd71e4acecd959b9c1b246e726eb654945028f35b326dfa9e8aefd84e28140a61a5929307a3efd86952082d2e2a2972bcde6a4ca1af18cbeeeb4da7a99b9d9b2d53373c379ba66eaaddd122c2aa28f2d71b5f6c79c5f6d17a6709c3f6d5524191ffd4b5637ce5ef74cedf677d22471b6bc70ffed731d75e8f2cac51a66cf525474be58fd6c627f1bdf12f20dfdfdffeb7deb8e196bc2a2053de6184f5ca5f699532140a85b250baa345244a40aed0dfc821df4ff73da34540aedf6fbfa7a53ed26ee13c40d65273f92a7c7a8f2cc4b6254e642ee3adf6faaa3784bfcb918512d6263f79c60f9fad7cfadf2f9fdbcfc65b0a757a429578c95defc7adc472c2d969e45df2f777cf383d8d77e32b3597ecf185d87fffbdedf4578c9d44a96cbfb6f37e7aed7d18fa2d5b8c39b74f471db9a558cb7e5aaeafe418c319b1cdf2f77ddfda35fef8634dbf0132e5f7cf4ebf8775c3e85159ef8ebbe6b34a1c2f8e58def43e0ef5ad1cd21aa13f65f97eb4b85e08779cd69b72dcd553be3f8e104e6f4b795e0ce5bd50bf39b7ac5bb28db4dffa3094ef464a7b0172acde7a4ce3fcfcbfda4979deaeef9efa7ddaf5e5a31cdfa677daebb5b456fbe44fb77e9b425f77854fffdcad7efffacea5c75556ee73b7b762eba5de16ff6a7bbe5a5f3baf8fd4bf1f2bcf95bf0faded7d427e2bddf97f792fdebbf359238c3af74935fd32feedf19e70f764fee1c618e33febc6de8bf2a5d5477fab7edd53dc9bc86f77a8abdebd461c2f6622ef771faff0de0be17e72898cebf456cb7be7bb574625f2e6dec6d8a7d4314afab4962ca5f41357692d95d0fe24f2adb4e2adeba416477971964cfdd4f4e33731b5315e2cb9ee4fbdafb24eab7db5f74abe7f420b5fc4d04faebd952cadad5d733ee3b513579e3cab8d71472eafdc9c57c9d3d3c879ffb4ca8d23b55432ac735bfcefb71eeebd0990b7adafde48b795f4c659a7645f31a6f0db8be5fbf85129f9dbc8ebbe7cfafff9e63b59ced775dd3be2cddfdd51f2a4fa52abb5d55bcb88a1e4efe3fc7a7a89b79c342291ebc414bee93dc79d477844867f4a6f398cdbdaab9f64bc27b692bf0fb796f74d2719d27fbde7d77eac6ddf4df28f7ec37effedbb4aaa2593dc6ff5ff555f61e57fee9ce7f552ef2ee19e17439d4ce1eb58426de9bbf2c19893edacd1c7ad61947757be2453d8f99b774eed77dd1b2ac97e47b9f5d43be239633722e34df5c652fe693db6ba88bcb99c5656fc2ed5b3de24f9eebdb9ef9aebe7ada74832a6d247783584dbc63f8fe42bbd86fb4a59a1a7de48f6dddaf8f4ecbf4bcce11b5978f22511f75c44185291e8c21d2d222638596acbedfed16e0b5f95fb7f0c43c1597bdd3586386aaaa9e4fe66f95fd454c2abf7fdb8cb918522096b85dc737962b396bef3696ff7d23ef8ffc8c2cc9f4e24518475337d596bf6f3c25a39c578d7d97b1f59b865d7089a67d77847b825b40f57fb47168aec9db9da5ebd7ef755ad3de57d64e18556e6e8efbe73d22bb9fe56cf91855db0cc07c698f7fcdbe249e18c133f084716669b06b3fc5ef6cb9fe7fc79effdc8c2cdf4b195976de5fc7db925d4230bfb498bb00ea34da248b6faedfd69a7b3425eb51d5938d252285186fdaae426e786e78607ca0df757ba682a185abaa34504259465c7df575a61a75d632b4716667ac445cf6fa40c4b28b4997e28e4338c63d95226d1a33b5a44588864bc2fec577b8ab9bc51fe91bda91b26546e6e78a0dc884e241bb30d257d86f1b9a345846448e6503f49b5aef65bef2d1c5998f91311996a0eb7e412cadfbdbc7b64a1d6bdd7449bf7a1f086a789a66f5e4cdd789ea5b02a5442219109eb279d85f40d0f941bd1c43b5a449503861069a94c24ca4188176df2210814612591cf89e4e3839570104254691c620099de840802879b1c0430041039fcd0c385830f3bf41084072076d041871d7230f58043866d7a871b80b0e16f291e6af0e247a21d6898958719bc605db61e025069bc0070231445bf4597b6c8e7441a697a74812e1b111032c8178326040c71c330205dfb2cc88f213e36ef23440fa80d51131f8d48c88c10325100315014044c34615ce43391086ea934a2b8d7ac15a482a21f9148b479f1027039c0610309bea8bc499f626c20011d407e38378ea003253168c224ebe42c519204c9112338f8da4aa78cf01509111942c4104282083180206e80f8e1f2c1eac1e261075783034d31c581a65803c6013f9c1b44b081122705256af08673ae824014b238e773da023c506e503a0a4a9b62c0c8737fcfb1be3fd6fea894a1d0e63507c47c9177b40fbf0bf9e6c587a0dcf040b9f9f1482cd1d97df718e34586914b2ea5a69d72bdffef22cf1de1dbd6474a9ff6fd7391e783f06d692fbd13e2fd33909fbcdcc2db2ffe18c8fb43fff79ed577fbe7fd17c8745a89377c147ff961fd5be4f9b6fe72d3c9378e5c7e0be41d1f7e5d7abe79d518fe0ae40e35ef14432e71e4137e0ae4debd959ec23deb8d13fe09e40be1b5757228bfe4107e09642faddf1eca7ae585107e2d7287d24bacbbe4f5f6f9b3c815caff39c4f17588a5f758e47be97eb2c24bfbeccffb2bb2ad5bffc8efdd1afad9bd1559c2f7a7b79d5acda1c63e02d94afaa7b4907b5bb5bfbe8a7c2deed1f7372f04f2bbf6622bf1a41df2671f903d953a52befddff16b2ab29f95c6bafdd314d75a1d90b7af14f22f377d784a3a45decfc738b58ef55d5d6503b2a7fff9baa5bdfafdfe3c03f2fff259bf1f851dd3dea5c875cfaf7fb555472c7714b9c32dadfedd4faf3d85225b796d84d07b89e597fc89dc2f861bceaf37dd1def982ff9515939955e5269edd479646d5f8cf0ce6fb7effb0bf9ce47f77f9b5f4dabc55ec853c678b99f57426b7b17f2d7f2d3b929a47b467af1c811d2efe3f3156b79a7e542deb03f0b23f7b76f217f8d5fd75e53dab5902d86b46bb9b9877ccbd9b390658516dfde25dcd7bfd8b19021a6bb5b4ce7ffdd5fd8af9063e77d526e5ff4f7f9d7ad9027ac1447b9e9a752d6d7ab90b1ae5adbbbafc6bc564f857c25b6913e7f35d492fa2964acafde7a7e29397e91df91f58fb5c3dd279642ae76571aa5dd78cf2d6f14b29ef05ffefcedd13e6da190fdf4baee88ededf1e2fa844cbfd411da18afdcb352276408f59f76e3a75fe7b709394aeeffdbd85b2de9954cc80f476ca3877a570daf5c42eef5fa57b9bc73c23aa51df9fe5bebc4534aae842c2bffb776ad29e45e479e840c29bd9e4bdf2dc4b4425e87bffed75be98e8f2321eb39ffe735d677840cb784efeb28f9dfbc7623e4f7bbb438f2893f9f9f17214729af7d706ff9eaec9c0899da29f79c175edfe9c57b0859c2f9ebeeb643ebe3c35b0879f7a96de7dcbeff2cbc3b0879efc8bfa4bd72bc3baf1b08b9cb6ef1d51ffafeb1adfb07d96a2bfd86b6f728618ddb07b94bfaa7ef75ea08bb8cbb0799d3d725e773ef78dffb3cc8ff7dfdbf94d8c2f8a8df41fefc410ef596d2ea0d371d394e59bd9f3d768efdb73ac852623ef1c5f3c2baa7cd419ebec63b6bf59d3f1e2d0e728d58fbceed9cb2c368f50db2c44f563befbe1ffe58f51c593fb8a7f618e2befb955a8e5c2f87b64e2f67a594471d47fe576229f5afb362baa18623bf2af9d69b4a8965ad50db20c7a925c414cb5ffb9e4fd720e31afdc490565bafdf9f0619c3f930b6d8f27827fc6f64acfbdb55423d23d4d4cf20bf2eb7b51ddf4fe384de8dbc25d69fdabee7b49e622c833ca3c59ce21e6d1bf9420b2d8cf3f9edf99f31c8b04f2afdbeb3d2cbf5c430c81572bbfb965dfa0bafc42fc81bc7ef27ac5cdfca79c46ce489fffcaff6bde7fe37e23532add7773e79c79353fdd5c8bcdbd8ebc7db5f17e4cdf787174a8e31d7d4df16e4493df56fef1b7bf5765f1664f97caff4433e71ddd0de15e06d6bff53bf5d6f1ad95ffdfd7fefcf2aa7ad5705f945fff1db71be7aa79e3705d96e4d63b574cb67e5971705b9727d6384f176fcb796f70459d26eb5de5fdbd9fb95d70479c75965b7f163fde385178dbcfd7e70faeaa39e54be5b827cbd84f5eaf760c55e7f4b82fc398717e2b8e993107f3b822c2ff6b26fffedbfdd7e7b469e74ff2fed85f2625ebf1541861aeb677d7d95d3adbd0d41c63cce0a2397d66f8dbd0541e6f7cbbd2ded347a3dbd3523cfaa238d1f5e4bbbaedb7e206f7fb587ba6f7fdfbdda7a20db59397ddf3f5c46a65feebdfdbedf761f2d195973a9f59354f6baef1c23f36bb7dfb4befa6f84558cdcf5f6f26389b5c6b67720535f6f947b4b8faf87930339e2ba5fe75dc769f906f28b97de4b79941dbf2d359021adb45aca2585f05a1846e6dc577931bdf2bd3d9f0523f70a6197b862ed75d4fd8b8c3ded127a3aade5d06e2ff2add6530cfb957e52dd45def2d93aa1b414ca3b3517d9deaef5f7d35befabae19c85c525c637dfe3f6c3f0632f653fe289ff736427e814ce3a3f163fef6fbdbce2d32fef5733cf18394f2192d90e5e77ce36ebbe5935720db5a7bacdc72ae3dbe14c854df7e299cf2ea5d2dac13c8b25eebbb8e91fbb8f19740eef4eb4afdc5956ffabd16f9cbf7f59ed6f33d7dec59e458f9acf5bfeb61a4178b6c6ffcd1dae935debf5e91317e1d7f89a1bdf64b6d458e7053cc27b791cf276f04b2d75e46f8e3865d435e05aeb672b8ef8f96c240204b39f5d6963e2af7dd95c23c20c3ffbe84d6ff0ab5dd95c25091efe6f5e22aab849ddb49611c90ad8df6cf59e18c5bcf4961a6c89c3eddb18d71d20d69a4300dc80f6abfa9be716a293da4300cc8f14bff26feff6dafeda3305264dbad7e51dacbebf6de4f9828b27db8ef2761df3d56ed270c14f95df93485bf5a49e5f513e6894cb9c7b6d30aa7e5fef909f3257befe59b8fef89fbd37de691a7bdfbf6b865f7b2e33ebf90b77d5dcf2de9b312d63dbd90b586bbcea8f7b7f1db3bbb9035c6f35b6ae3be7cbe3bf1c8f7ebfe9e9cdc6a78b79d5cc812deffe9ddff5eeb7b9d5bc8f85aaadf83d2e229ab9c5ac813c2cd9f8d58468a7b9c59c86fd7b8ef96fbf367e99758c8fb7a0b6b8ffed22e5f9757c8fc631f2b9e74eb0f2b9756c854d24d21c71e4e7ab79655c89277bcff8d7ffb2dad9654c81d774fe5b495564df79553c8977eeb1fec5b623cf59577e408e1b7bc6379f9ddd14a2964bca7c410461ddff6baca28e4bdb586f7763975a55c4a28e4eb799dafc6d8299f3fca27e4f92f8df7f9a7e78f3b4a27e43bed8f13d2b92185f0c926e487a7c7ff4dfb9990217d77424a218fd67fbf840ca1a5d3da7ddfed9f773b32e7b5d6fba1fe3df2ca959029be377ae95ff51cd39d844ca9c6b57af8eaa47eee3a72e7b56efbf0c316f3b8919071f7de62f8b8d6f3627d841c3b871c47be5f9fb16a23e419fda79b6e3c35971f1721ef1b3bd7ddbf872f7d980819d2b761a5afc27d5fb443c8117f2abbaf7c5f6a7f1542de7c3f5a67b4bc468a6b10f2a6b1ee17e77bf86b5b81902da411dbf9e7f75a621a7f90a1bdd4c2e8ff877dca197d909fc6f2cfbb2fee1656197b90a397d6daef2996b3fa187990ed87efd6f77ce456db1877902fd69262aafdb4fac718e9c84fdebebfb510be79ebd741bef4f5682fb6754acd7d0ef2efd7dbe9e3a394f7ed71901fbef2cab7f97d97f27e838c7dbc18566f6594f7f539f2c43f6eaae79b7e63ade5c87273a8abc69ed37eb58e233f7f27effd7f5fbd9d1a8e0c35dcf85209b1ecf6621be4dfe7de353e0db9df15d7204bcf5fbc514ad92de79706f9d77b3f7e7cc73879bd6f64f9f99bbc43a9a7c7f5ce20770ba77ede53b869f716ba91219df8575cb1f47c6e0b6590dfc534f2fea6965d7f0adbc8934afee9ddf7db6a2b8531c83cd2f9fed3fbef3be38430c8b2576ea58d9a5fef3f842fc897736df58b15d3cefb67236f8eb58ef3592caded7f8dfc27acf3ceaba3deb37b35b2ff744e3bf1877ae2e95d90f9a3f1e17eadeffccbde821cbd971a468da59cf37316e4cb2daf9e3fffbaf67daf204f08ef94f8df9d46b6dd42aab7c7554fecaf0a32e71d7e5dbff7d27b7e5390a1ecfb615e65e7af4f8b820ce9b75bd68bff8634d613e48ff987f555da65fd939a20776ba99e585734f2fbaf3f0b6bddf5dd384b9029d41c57ffaaf4953f49825ce3fd78c37821865dc61164deb1e7f5ddfda6e59b0b932b16ea5867643f697f90c3fbede6bed37a658928c3bea8c47d0f856e5cc31241a64feb7f39df7b765aa90f41eeb86e0ee18418ee8f650441a670763e3197b3637ae73623fb7fa19c30d27fffabf57f20f7beafc4efe90925bdd27b204b79ffee0f771edf875496619591efb67cebce27fdcf737dc9c87dc65b63c47a62192fc6d80b6b8c6cb9bf50533ee7ab51f36f862546fe93ebff37e57eda7b01ab03d95a1badecbf5fdd3bc67d64e1b5d9e240b613d388e38cd1578b63b73690a7d71ec71867adb1e20747165ebca345b4004b0359df192bf756d60fb5b0c2c8f456cd5fa730427efdd760e4e9fb7d1263ed6b9c91e32f32c7bb7aba6585df4279ad1779ebdb3197dc3e6edfdb5d647c23ac9bd3b8b59e5cd29185dea44ff386a749032c2ef2af9a47eca18c7ebed77bcc809581bcfde6356e0c21a43dce58a1042c0c58d83da45e7fa9bdf5be974a3eb02e903df4bc4fdb3d875cdbf7936db402d616d9c6bfb7af7343a9f1f46f64a109cbfe346119935028c61d2d220b0acb02f8eeff5ebc7d76de21ed15e8bd4efdfbfd77d2b9f1c842d18d33b028906fe45346d82385fa45eb27906dacf6f617377fb4f24f47163e98852581cc2feed5db492df613d3f744e49bc807196069917fbf5a3f5f7585b0cfdeb3880f56d8f9eb9bcb91851af53cb4e58442393739373fd99528a1909550c8492894f9aefd48c370c21d2da21f28b0b0c87e42db71b415ff2fbdb4645857c090139615560472b417c62a617f3bfa7a2715ab8a0ea5b41acb2fe3e3f88f2cf4594ac34a3c142a95b4a877bd9174c6130a61282d3c2c08fc89a5f717773e65f73514ca175a0fc0fe72abfb9fd1d718fba7c257a965af554feefba4d70157da6fef8b3fce78ed9b537459e9c5b0bef83cbfe9367563228db410979b6d53379e9fb0373d3f493931a99ad58079f5fd7fd228fbadaf54d2fc6ea92827269400160368844fce882996f0d98a61acfccfe9f59bbfcbcd771f59582a693e4f4ce2d550d8119614d97afd3ad7b03fff317dd28a224f6eb195b7fa187be59a3ff8010b8a8ca79f77fafbf8f77f478845d076613d91bfdeafcb2a61f476c7eead2fb9623f39f5f851fca0c53b8f2c9f8dd67ebddfbf166efc852cfbe5be7a5babc6923eeb851ceb8737ea07eb7eef79d8857ca5eef1d63e29ec965f3cb27df7cfcf6b87f0613db99063fdd6d6f8dff4f4fff7b09c12a8d48f0ad6a918c43008194200e05ccd000000c312003048241a8c0583f1a068bef71100148002528c76b83a968984d1508ea22006421004a118040180010419628881558d8d0090d0b1e62d6d9dbcbd64125b50a83997a25205923db23f9412bf5ceb4926a6dc1dbbb90c924c81ecd7cecc8e9331466b870a3f06b2ecf4527cc62c4e57c5e379fc88469874ca88f72716524caae21e1559b2082d89441faa6aa44faace28ff95ad86cb2916e9e0d0d4e8a2095d4dcd4c857624dc707dc6ec0ee44daf1dd9ba863d8178fbbc62b74bba866ceff91df605f3ec6f00ab29235b4551b80461e1389079e8fa93de683b899b51f997a05e695f22d009525c227b4027a5d76b4e6657202d7a33a81f6a5c24b00f26599f49174922152d0be3e23f5092034c439a403fb5be397eacb7de42b2420587a24641935019957ebdebadf6ddc15bfbbbb37ba5fd42345b3a2034897474e86af434ebc6efcadfceee5ada38b4e839a69738e8d4a9d50fb98d7a27c55925e0f741a2d841d349ac42bf8786932e867941ab4fe937899491f753b95160522823a04f55a3a7497746579ff646d793f68cbe9fe636aa0aa303092b8ee3b5ae6776182e98b18f1df83bf53b1a7605f5e4ef667625737fefbadb3ef00be6d7df99d506be9e3a8e48bdd23b997b335b49bcbfb9ee771f360b2a7bb2b8b6854e3e679b0df74fb98d604e299bd09f541ba4397536577ff646d793f68cbe9fbe8dce9306199d3e8d1abd269d327a7f5a35ba4f5a6774fff436fa9d346774f0696a746822867a7bd70dee99fc71d99de50dde3bf51b8d7b8177f2f766b792777f6fddef3eee05edf7d3dce860d294d1d1a7abd593be1bbf2b7f3bbb6b79fb7bdf7edf7167f006fe4eec46f25eaf9d2cbd09ad44ba1f5a37bacf7af1fbf537b33b9037bd77d46f6abc5686bcecb4fbc4e64aec44f25aefa5d4dd075afe8b9e24b1039217f59ab21445c9960506a262adafad20392e0149109f7132f862248cb629e11b827d098bfc420cdf283ba3121b4a48963624c902f15c8e4416af72917b9ccb2b7ab94b03a6cb79feb5cb2057560e8cd46b30b0d6cbaa4db3f51359b1c015d86f8ddb5aa58c2504be8a96f31da304d762beff6361df9963b6d6b2d9b40c150043e530ded92c0a506e69ac342e778814408bcccd6657eae0dd07ee323f017951b51284e82da0fa35171641d9645310e4c6830eb33606ca057925905b61b5251bb82e76d7a15f80b8aba3121e09e192683da90cf3279bcd160e4ba37c843386c850efd4acb80a575c236622dbd8745a727379502e447e76f7805566aaa8a601a79cf24464aa69223935eb8203641e6f9b17e157ba1721ed8a49a8c71b3b10c0e902b531b08249a6bd0d9dc8de538fc5741bba9b8c562d8861126c07bea70e0607a7b49ea1980d58bd6801e5e90412dafe07a70b8aeecbdc4927cf2e345c5fcbc408a36b9296bce29e857fe286726afd0d939ee7f6aa82eb15b7ad5642db57dc01186897c98fe48a6133be51a40e1b8e4a487baa8fc39f016c1fc675070c755978bb960ebc84bc300030a51f8ac7833ed62ae3031eee665893c1278daa023d35359461c7a4518b3ddf5859158195525d961021599dfade8247cc3578c25dce16af4f5cf1dd4b3518dd893e3efb916d59dad435c9cc3e4e337aea2aa13cf75386ed83e3f8c88a23c732dcf5b7a024ff8acb6de8fbe321bbc98cd6f3634649fe200e5861de1a079439e5a9c204e3a5d8f395f6bafe78798f9836fe2797e6c8d5339637ca9f2aaa073f77c8cd2146941d3bc5d118eb2c2707ebea3c94bce65ddcb200029612cc219d4ef1f68e498d3cbe30d48a49e0e2de94d82e4fb96be300414885f088d6f3b1939906b8e7204c3c802e6691ce7de1d0f5442af91652dc7c6ec9af6fc622cc36873be94cbd3a259252f2dd8e7d5ad969997e58d46f6cd9568171b522c8a525620c860dfc0d2f233c6d1eec126bd9699b9babcf76cc42554e7b43105cb56313d4731b09abfe91dc5e835f88b8ca620b3bc54a3ffe24b5f4b9e80cd32b60bdb9b9287d365da43faa1d8923ff4644eb3bcd3134f43436512033fc073033fcc73353bc8ffc2f571f97b2d055ddc09911c8e021cacf5015777d5de626057aff70dd0aa1af38e8c531ee161c681c02f577e94cbe5c98ba4519fc5ed617bdf797f80148576901a272a32a8e5c410fa01ec6fe981dcb8be703d3e1d69fd35b34ef03efb6de75d31f57d7cf800977e1303cb1c79286b5068485379b01716b4ee2900eeb9b0df06133a3152075ec7202300bf02aa1c41105169db6938df3d74851e2585fd1225100228338d22fc7553b927ec5ebf06b6072b724c9121cfbde8a2a06b45619977ecf462db054f25818dbc51bbdad464f30c84a7d87d781fc1508731b71cb0b8836ba4b798d00c87f7403e21e4853b0dc71ba26f0ee5166e5d5ed762174de7fb9676896032ef91c81fbe9d31043e4bafd2556c19e482456ba746b34ef49d0af3e0a8a25906482ed73b47d115ef6ef8cb9b0f0295b5bb5ed434ea8e31457845edef03be76bc19bca915486ededcd28505b02c65a0c0a45037b39cf2a420589c28e6336e1068927405fffd007027a726cd3f0df62576e124ef0a349fd32bf4c2c10d07eb20f6161dfcd6a49d0cdafee33e21195a85ff1698a2afd11d1db2106f46f36b29ffc115709b45fba70576f38f4c118f909ce639091e45bb86edadbc62849af689836ecd87dd921198e2876dc3efcfc2fe03bfefecf88c64fdcc356201fc92e6dab9b36329c8c1f0cbbecdd4f55054dbd1a517e399872fa9955ed92c3e478a6289148c823351bfda3d86197055db1e6ff30f65d4a397d209479e4a07a59c0cc2ada7ce7485a61368326c6e4a2bbcb288c762beaddbb65d4201221ebef5e9dad759d887bb908bda2487b8f88f5369154ee093004489e2a7222bf8a74f915536c9ba44678ee1f443c86ab859ea8d60c7abe2ff08d2ad0bc4225a9c6da37c5428d9bcbec04327e9e52a085b4804b2cf90ae0afa368890638d18e0a7adb28f513dbc4adb684b200c7e743d197dff80cf5f43f17bbbb0f955f48ccea8b22df409b103164a8c8dbef88ab6b059010c040546d8580819ed56347c6cb3e9b10943aa4d1cb9178d6d506e7b4b311190744a759384f9814b71604bcfe36828da1215cfc3fbbf01e9307e70ecdcecc0dc6a4ae3ae5bc34df177ccb315f6ddb0a99f8907765c382033efee015cf597dc53a29670dd6414f50ee3c9c4f47dba04a30b6f0870011f8816ad4c1ae9df4f004241e2b08d964955a6b70154f3114fc88fc53b82c542632d041b42e74354000dfd0fa3b52a52648a5edb4f4ed6f071d75654fc3f34e7f574df278e468e1b83d1317b5736e8556d8d24df639349e5a8d5a7f65bada9e72e3f4de71a4b0fe0593f337fab0aac880c80e42e494f584e959d7a552017a25eea5ce99ba4f4474b3b06569dc98dec406a98d523fc1fb42348dd2eedd0f1ca9e8d70dd7bfabfc7ca1e0e1c75e770022422b588e69d754417e4dd52bb2fc9477bd17ffc0883c16c863b24d1f30769221753916b2776b8786c1188809000102b3758cfe50e6093405dafc67dd6c179d65a07a72c782fd742566c62b09822aeac343c5d14b95cdeba044d27cda08700e4bb4bd0aa5a09a2ac023a0ec63fb0f94f322eeab43264cb816fc7cf8714d74ad4d190e2028b5c4fb61646f333331615eab4234c15c0eb8605b76c953246a28785a3cd99e89942287478b4b15a0aec11f23869c6b7b854cac2c5ff6aed3553d768f17fbb02bfa2b0682348a5ad4db8f22f7e1b4501158c13757b56bcbb5275d92b9ac5e2d0d22a5ad505f6d809a46b658896f3363660469755b417a57782e27569238a235fafb3e4ff35f0b8e5b5888fb5e3ddecfed233ede638bc930da9c5cdfcc77be959182653dfb100949a40bdff561be8c218982a562f879c6029ffb7583ddf5a052622262dd2230c61f74c72e93468f56071695c5ce5f2873c7f797974995890ddcf3dd842a27fa7d58ea836c40c572411d320b361e0688267bbba896e376e4116c079d2620b0611a8542755301d4bf51c62a576c23645cdb67938c53bd8c147d3881797a005881b975f003ca72cbc0d8b73f69d1e087328a408e43b33bd283f93c30098df503320e10e749e508b088bed2b0a56bf5177c33a663e062e97824451e06bc0c3843cd3acebc3d54fd2b87cd8969bd6550a8d3016a5366b104c4aed26dcec9c046ebfea97c83c282accdc449eb73da8dffaff0a549e99b5e032fef8f47a14c2ca32b0ba96908be818d901780893cc133e9fb3899c5e34657a637ee7166feb39b9cfea984ee9b7f9d30d22d96d0880d7a4079bc8963dc05080f5418c3d2ae7001b65719c6a1c1bf337275b141c3138b82acda3074468223eae8557a581ace4c84d5636118e5228573eda4220cbf8ac5feda658e84cf7813e48586ebcad31b0026a85486609e02a0ac3b8814bbdf677b103f0c76861948149a0411a780ba27c292b4cd44b25200cd13788106508619641542d3860618bed95e171dee5218e39e5847446aea0d7c1b0a4909d90bcdd428ea2a4b487023ca488c21aad1a492a52981223b21b78ef7b8c1a90d702e288a540227c79d41f988c85ef96206f86d43faa99f0c143d2c00a054922f4ab948b184f755791a8c1bd8dfd4720342058bfebb72b9844f7693c835951370eb8e5f7c830de2eb691b70f5e7fc1fe6e83565a03795fb57a6bf215a49cec9e3bae822d31842c725116bc284c245a02b114890bed6b12e0be40f5930fcadbc3002eeccf9a50e00b9bb4e6f267b1390c5bcdf89da81bdcde949edebb95049959d5343cbbb0b902dc72d1b754d89a2187c9e8cfd78d6a87c5c83a7b18ac4a45121e2af9e0762b5be4d719592c2ed9397ec37c727f64f96c9fb0153e8b1655842e52dafd62dc9d1d9ea09408344771338f061ba103c28114fc33255eefb16c256f82af1bc07e5f0288d3c4ff0e1e7fe4ee3882fdd89c87f13129cf44d7736abdaef9cc13cf038953b9279bdf864ef1e7905e6eef1badc2ef3fbe2b7ef79e020b893cf11cb97ccd38b6f7bab917730d73eef2c5f89bfd0cd1d0fc84d291e9dbb6a3e6dbc41bdfab757bce6b68bf735f96579963978f3d47134f415dcc9e3bbdc4ae2fdd5b5bdfbc037b85f9f33cb0399d39b471da7c6ebb2f4f327cd8627b5fa9d64952c42e5e3b2a3f2f6d2e777fba9291715d46b075de618c058c8b3fe6fa93a1d4077d934f6d80555132a57f0a8bc16b76b6ee9846e2d54f4638eed70e1a48dcebbe6fb3f0902f9db8e0f6a7d29890c7ba1d62bc1da0e2cf07f9fa7d6155fd14c34d602814e128eea92db34d5e51eb5f8366d532f94d9b90a342a78defab2b0b9a1eb79ed0265a9488cfde3fcc8b800a058681cb09e2b16e7b0a8bc852d17e148ad0bb9a4f7dcaa8ea876fcf90e92c246663632b269babfdf4db5dca2b5215f40e29ae36225bcfd04c234ef5d39c616dae1ca0286aa2dae08830c4361b792fc13408bfcba3881ee0c87c689647edd3d81465361ddc558b00163fe58ef9a6d68e2c2976a757a0403f9a500853ec8e1a4c24c581fc23eaeff90b0ef7114873504a341c864c4ed3036548b31323dc11a0de8256f2a246ecf3e80ed2b59d0cab4d4d24950e3612d6281df3faf40393b9652f074ede67eb7e7e632c38b20ee340789d6dcd02b361de7ab368ccbb36b74e6c91e04716b38de27114f399020d22b76ab52f279e625e4c6e59a2cd1c9989db018033f274de698d3d6cd60b43203209672f54e3072992fef85c21c7ccdce333323d9cc3e2ce17c96de0623cbb021b26a8be4439b1c96138102e8908658d6601f037ad04049a3f7ed369beee98e875b75befcd1f8cedfcbd4a58383fb1f97138b9e47ee7d5ecd2e383cdef8b938b5fc64ec6ec605056e9fc3eec8ab8a3276bfa72cf0a96aff8f908eae38653d155a9410acd83cd884ebacf3083a889ea0e687e42ced8df9c19ec90a0e974b4d4d6df94c8ebc81c2fdc802d01339c91aeca6bcf5f6cc1fa6ddfb394865fc57c4ed166d940bd5f3f135bfdd3eaf54dc5c0973ce9bcfe627d1ea04ec7d42e1fd8fffffaef1c33c974e5049f271d8160e36f4478f11a88fd8d47973b09baf2f91d39064b00c20b0b1b5e89194b42599c93e65490f34a2b410540d106010f90d06c55e52cadf588eedc0d3654eb8212b5bace72432f698bb18320db929d214d16381c4ff8787ec9d09320420a8573204f188ebe8c73ede72a5fe1407e1ade41822068ec16bb2444e9fec5b9915bd9289cce93e18ab8946dae74bc3303bb834aa1fcb18b8a12b39d9f6497cfd2058882e65a8f95e4b43c1c5e447afca1258e578026641b145e492a5dcfb261192c96f3b5a4c409a909114d82427101b54bf5e0dcc67d55758a54fcf96844a484434ef21860c2ebd2585589dcf3cffc6893f49c94f615031fa0278b2ead645efde4c505d5c998bc9ea4a11fd6c4fa9f1dfcc7b8563b27bc1f2c264ef16821faa6e89d6f25a52b52eccb2e7ad365a7d19f1a97831984445c8d5cbcc19be3bd602faa0ff831b264f0fd496c37265d6b7e061fbd2b73ee1fadafdab45c428822b4ac3535f50f244d501ded7534aacd10b01a2aa2af64b6cc7c1756c2da42f333389985c6476fe65f98d59198de3958b1de1ca11495d30791f9069b88f96f3b25a62a1eb20fc30b4126bf9f869b5d91d47af4dfec6fe1eff35d06600e030cd9f11139385d6522e6c270d3394c4db70fd31b59d77f54c6672324ba7d8cdc25c41329ad3a8201f3e9e156b2382ccc387b746429abd3c3353bc6b44168d2ba0b58c56b56a199c0d6b93175b654aa1bfb52053e5fb66be8baf3d2453363dbf8e8cb6f279c1e52bf66200180c7ce52c82a0a4b06ff06f4d4707a535d963202a636bc075545a4500a5e83222b753b8376a51b6dc1ba9a77fcccc2621c74bc5e5543f83519f064d01a3b6429bf8f1e50c825293a91eb07ca14ff1e9c576aad63fe6ab2c9e710a40382a50ab6f2bc6828dbc64c6161b1a8b33144a2112326f299426b8d2dc79afbc3c850e30a4a9f07a02a2fdc43b7b96f712aa432bb94923a05c35ebd7e2a115136508f57daf416237c443675ea529ec6480694949902302b6720b536edbc6c8964c2ae8a809b2ececc72f66685acf60f02e641954622975a5c169e697479d02cbb0cb7a9c89814d9fb4105a714fa8282d779d60f162d2ccfb6d4bad123005cfb31a1e91b701b63b73a2c5eeda02d8e848ec80ffed55217cc36f7059addf47edab2cbacfbc5f2161875e5e962cc86793538a088e9ffcdfbb6d47b6f826ac196ad485cfd0fe98e168b867c15862b7b263c5a0876ecbd9c859e21fc08785367f8efdc363691c8bfd5c23d3b1d03686bdbbfc4e5169664bf3df926f2439734532ae14d445ed9f7611058a475cbe9f7f848e0f628e49b8cb1c7724f385b5f392e491d96541575045f872118bf80fb372a2ec74b066a9e49bf3cb7b856ba574cfa8f034a47acb82f1ca9e8bf641d193c44817771d13386bd95b1201386ddead503f36211d82385b267b004ccc27f081aee812e8bb7be4c28e687f991d2df22f255495f25844cbaefc1d4d0a69ce126121c94edd57b3303cd4ed81fdfc529c37003c3e7b8f715450071bb45efc984f5275fa122f8072a37133b8274873ec0be779b28a62ad30282e99069d38cf6d6058e99bf8f0e3c2c8b91df3fedb2b6f46474d1bc4cb3ab1cb881f0a07c45d0e1a44f41b0cd0ce81c33cd20e4b92f64b1638e43d4199e3835ec6c07bf467d071738f5e6aaeb840c8de988a29c085ed5ef14ac93d1762356f5b046cffceeac19494fc510cf3866c4947ee470a50c8ec7883cd474acb1831fb0a4e0d8edf1b519f287a385e06ea2c63badbb3ed383c8e0a77e9ae3cdad783d7583a0968affe893447cdd2463d6a3b8cfdeba47604f78031fd7cf4f8e27b0c9c903860e00a9f48c2da4ed32c2f9c6cdcf54d70667d679751f5e10a8dba69ebcc4ebc5bcbf844a9e4ac2df5daac593796d69d1f5538b998a5f1ff4182f9125951ef85c313ebb204d86159858387514d37276e801f74fa0bb98d1ba546d6aa724c5b726a3a14259d27821cb69d193efef6963b5ef8538b9737dea407e0c36061c9c37d643911cdd38ac1573bfaa0c76c8a577ccf8044410384d203257d5adf3464ff4c91b7dafa01d6965e2c1be487a818ffa74a71db5599101b3e44b50fb87b126d0f259d378e02ef00e1d9a53b06d4f69be7cccdc64efc68063869268f17f5264f90f29a873b6edc092f929da871548ee77ccc22fe1c4b827f31ad743aafa11e7186cda1877801b22484580ce85087068de0b2cd3dbaec97f82b99f81015ece7166a183af66e41d27b6ca420ad064345b4ba2f289482c8ea5b4e9e036cf7e0b7f4696d85146e9f0415e75865836d389cd2df259506adc3e5a3d42a590067665166e749243ee1c9395e390415367b009401b1488ecbcf621160c719c0b92aca2c094ea5f0dde18439da7f3bed186b1aa57dd514258c3701256506f9cac1d766434bc9ffd02c03e872a02dde52b0faf83dfb52f5e1ad1e52b0b150410501dbe4f1e8728aa81b29444fc55e5c1489e6dc63c9c226ae0d6b6cb1f981e05968bec693fb804ddea6ebf0d1bfc35654defe7cad380ec05b1e1294e779b3c496819dd3485f38b8cd0d23fe4f15e70eb3d5cf274d69b5731e3a2062d39311a60166380c00367cee689f0da34af4753d0ce1e6c63477f50d71fc694fca2d636d236dcb95505c0afff9d55d8ec6afbfc28b21d2b9f772659486ff5c37db88f069f61ac4239557ae9da711bdc3397ff3f6263f4ed8cbd183ff3c92ff14f6f1a6f48772842fd226304d3747e639b56f6b313cef47b010a8fafe20ce2c623f2cc223d70bd19ecdd18ba7c582026f9324f727fb98780a234bf7ec0f690dbdaaab02b24619c83476042f9f88aa20d093e9ffb68d6abf18bddff18a6d3fae823cf43697a5f187472ebb488c69639078be26eddb9513c0c985c0b007d9e4f37df94f816a17b1b7db64df6c802da0e70a5b0ce66579be298ab3f1f2ffaa5ba4bdbb4dd196b98c6bd6b50e4e7a6852cc6cd77e797291e066f218bbc03ea2f5bb38ab5dbca1d98853d19ac1cff29737ed68d92565fbbec2cbc0ceb41145c0bc25c4771dd87250b3b3b3523a8d5c9a415fecc7e5c29b2900f8eb36ed7bb538c56b7da954f81053c32ba56694d513798bb853082b4ed8fbf25e050bd8b1dbd7ffffd57e64f6f3fa5bfc9c2f2c0757ff97bfc9d7ede2f27d7138b81a9ffc7dbe6e1f87eb8be17b06eefa787be3fc290f3e5fd78797abcbd7c5f1f86a70f0f9f8baff9c2daea617cfefc7c9e3d5fee6f6327a5a1c9c7f3c3f56ff936bcbd1ede3f13ff1b9b8babfdc1d8e6e0387ff8fcfc5d779e56e78f57d789e3f5e16afee37b387d5d1a01b9fcb5c2d7bc42d6d5b07b42565eb07b67cd7fab396ba5a7fa9c511d3eda29650d2101413afe274f1a3c18dcf8ba9cb27c736bf6e27163e0fdc7cbc9a5f7276b0f5777172f9c1e0c6d7fbcc658743bb1f97e70b1e066efddfcc5d383adaf8793fb1f060e8fee7dde4a2d381cdfbd32b2426111040153d093bed34fa31af2c4c19304eaaaa4342ba0e0e9e10fe7494f374207f2c5eb8e84e753ad39dd3481ad15821aea2b05718700d072773b8721ec9c015ced6b5267e9559de333beb507af0134fcdcfaa66dc98d1a39d62cd77aee1d125d78a91b1dfaf0de0b74c10a4852f4ed586b6dfcd359b4ec820ff5aed598ad10d12d752c454739072c4f022efac79dec8dd5e5e2222acd3408639edf9ab57401d43c112bb5255a191897d784c3a7cf97e9405d2539cf441d5b1da33f0e4079985187a59b2ebbfdc0786188b97321a36fd4daf9d21b1e58507a2c00e572e43bb2124557279b04743276a3be0c363b48bf10fcec9f1941c8b068240aadf95b223d5d30cbec58754f2b8d66f14923321edac1eb9373b9c24f0f8bd0814f8ad2c828c3844212112e29ee2b6365e64d0010805bc1ab872010f3634ec2762e2db5b5b64bbc9a9e0f899acd51724313fac0c24a62b35bff1d0d9ff677ecd457d4717f2308429ab86cf3fa65c4540c4b0c0b00a3d5564471417a12cd3fc921d7ac51bc826641cc72c49c6babea2c46de4aecb125c1b8314209e603573fdaa9eced18d6d93478f87864912dd234337920cda3cadc9701c3fc2aabf3d4b69919cc0c60b3183db912e21d12a7553e15b31da829ccd0b00a893863a46c7a4bfe1ebc8c42058f64c1c653e2d4ec7f66f1e3cdf1a4bf5f0d95768bd414faff7c671b28459ba0cb2631d68ba87973633d7112fc8eb8d269ac7b2f7e1c21420a6f1d8acca6c1adc99a1f28d443bce3a8dcb36503e40a45ea8feea9726390e8c246b8d4f1925272411136880635bcc8804cdbb9d1245f4393bfac9034ecc869a7a3ecea7f549245cc80430c2ce3ec2f91e273f29ea639844871edce7933df1270c3ccca2c1733d12d2f4bb59d9234a333f4eb31194dacc61ac5038718e36a1ae9ab1d6f4a5663226950e1158f2183be6a0d25115f1f121904e6f9e5332e230377e82a436c40f24655e381221463dd5b49548a8a3fd1d34ab3d9171d134034c4b8a72a95d08d432c4020bd16fb4f62223ec8e2398c666e5c5fc91b311ea94d418a774d4e2f92b1375b71145b40b75dc090b42b3e10ba3e3f1cd326e0a2559e4a09ece94b6e21f234e20815810b0ac06b008645a935f6a3847db85963a7bdc11c64a274bba0f43387840966e6fa002ab30cd7accdb7701adb12e7b3a25a090893ade906779755fdaf9af3f7d407cf343726a7a3f060bff11c8958083c2e572f2c25f32a2bd7412177efa2367f1a8afa7da21dbf460d57cc6f8508b1d19db2477a2db181ea06d8312c03f1af90357a7e5c1b97d9bded01a31edf749c0bbda9fb96b0f28c345727ac14be5f74b52ff6e787abf0f553ee3d05241d0293e70f12feb935ef1663b20bca338715441902c736e780d1b447823703133e92c2b175e98d57aa334fe2c957d7fc4452490b3f2961732cdc24f7be3fbbec4395f260f9f1f01f1f3a777d73c7d1e511017e8b824f0239eda4d68c582147e70d14989bc27f14a27794312ab9a50948f7a9d5c540f482f53f4286329632f2d8f9719d7b9db941c9866de8abce3e30efd05037cf048594cfa8ff5c2dff35ec9a5a9ea2932d1ed9ce51d130918c5f0eb160dc248c380cec8a0ca8a91ae491bd271554277833ec575f81cd41b777882e40f89bdfab7b9905789c608f95bd1dfaa7c81b72ddcbc8cd5e5a5136fe15531ec98eb941862cf2247a92c6c4c52d7b648f1aa1a0171d2f24640a9ec8dd1d9368c2938b38326fe7a25429f677ec740e3a107da578dea02de55301dcadbd843e2442d1074c953b3247ba2e119a8f95eb59c04f6d48226df94b0e6cb2fe94b35c269c3a92dd7e4e73c6a99914ce1529a975b6ab1ad904235a32389a5bc931b2d3d931a087fa1d994a4e466345481e67824696ad82caaf1dae93ba9670d08d4c0efa138de5fa72b3cd2976309fa1ebbb0515ba7d8a4ad1bb46b87e7f5e474456c06384990c59b0735a401016e6ab78df6161e93aca7025f73b5d05aca0ef4c31292765c1b1b6ce5505de6e3b984b33d7c6b2217ac0229347604dce7d260d52d8569b794ca74dd32fb9c3d226bf8f9783547f66ba404b85be7f44fc9fc060f46359af1a41bef58f9a74ab75be8b7d152384812b0b15d161fc7705ddf0e465ef05341a1dbf5aaaf1fbe434239c1954852d9760aa5ee25c7e0811bcc60a0523eb904d0bdc5eea0bf4bbe29c76ed663902dfd80c2314035256546036162a17df2782e6975a7c02eae238aafea3398de189eb4ea43431bc1261b1c0a7a816f48aae539749ccdae3f89e8a616b8ada59cecd941b3b79472f863ba0c9b148eea9c812a0c9f7124968f48e182d2e3e363a87091929b2c4de144fa43523ae275fe03eccba02e7f9729bf69aa7d14fa50e6f9dbba307d87b4127facb3e3e6e2bd38da8f717584283553ab9b201421130edf424abfbc019d47b36c0a2d2f7cfb013a87c70c1beb83e901bcbfd3d66c85a39e75f00ef6250ec0d75fd4559e87a20d8bcf68c13d1e285e388ab0090daaaa3ebde4be18c241b39c5874d0e3dc2f337a0621189371704c7fac505b2b9d47bc6c858f7b757313630e5c83bf2c6bec86db1c94894275ac4262e0e3a02d944ab7318b25f52a12f34361a5bf618ce37c5e483592132852f08e8dbb55296eda602569f472434986a4f02e5ac4257cb3f4fef40f735c67d79fb6a895873112d5e06adcb97688ae2ef4d41ae8fc1206967be228988132daf665b16e03bea201ee04bb690a04dbc2163be3c96703d6e965865a95a18d159e62991800a9d90db035f7030a5eb19c1edcc16c96257f192664c33f03d445c67b5325e3ac14c4038974b6cbe0eb87a2fe082e3f3f0a547cc170e6bba70295375b9255476cf8ed07e59e396ec4fcefab6e1b60c7fc3bd6e7fc277dc502492564f000841b1f8b32e32dbdfebf3625d6bc031c9b576b3ee01a353daf428495cdf76e29d62f2b52fc48621d572a66480b37912b1da5e1086c335fb1bf2ec30a1aee85429892d37abc54481500ed0d5434028f58287dbcff6fbebaf8dddb4100885dc7630034844f5cb7a125e9bc41002305e3f486507f5fb0bf23536ea1b4121eca6c47978154040f34040efc806b638d505b7aebdb91c4681bb38ea19958c96868fbc689d07c1fcaba7b337b114f4d1119bb0f281f1c325ff9ce6c142ff54de09f678830128e8e914240d5ec2468e07092e39ba038f2372cd2a0470314f033d60415d019fc77e43a9ba90dbcbd5899b16101b64097b02f98d6c4c421530df014a97d8b32e730b1b41e7c732489610753548f37959b1218807854237fa708111d457ddaff13a7fb55faffc0f1df76b874839d0a152a294916e8b9428a9b5fc3dfd0ad25700cba4b8abf4d215122f5bf425198dd14b495f7e1606538363c469cd92e5c5fa0dc47b45278e0feae30a9809e4b4caaffca67ddc6c85e75bd9fcbedad4b82470ad1ed611677096aee6631f1953b40ec535d36cc0f34dd9e9865e9791218466571af2a51ac1f11d10abcd8a19832b80c4e3e5e5c5cb50ba607a1a936122e3592304a329cf1484ab1896dc866c2fa4225a537eaf5e9f0e3bde95a4e9ac4ed1068728e2d475b7700f732e68ebc660f42e782f02180c916b4f62183897e05ff700b910b27f5c9f0ff5e18f27d6860d2b95706a67ad2bc97fc91f9f02783f89ff181c9266e0c6b4723ea59f2896e4b1a11b91e8ce8f6b08bcdced8a65de5bf3325df01f5321bb96e15b30ffceab08ad39112b5ef3edd743092b6ce00a15befc4d97f76c5e5a32f7e73743cc19ae94c26b3094eadc319eb7524dd945f46df8615cd6512f7d366ebb4de99f335f0d1705b12dd1f799db37f050697bdc3b907e2b0854a4a111be070e9a17f5b247e2619f2143a1afbcbee220633efabde87f2b63fcb2aa4e626c24b33957767c201d0e42569bc2bfa4849c69fea3582479b63022821e85a6c5b32ccfcdc34439abdbad73996b8bf9495f7784d3352499ca8e23755381e4d7d5025e353cb34cea8068d2dccc5822bcc69349001fb6909b0957dbf989f44396105ca110b55ccfd34e43e92a7dd25577f6105fbc2069031b6e99484c296504944cc1f8dbdbfe3e3e33256234079fd823037c24a3a7fad574f48b762dd80c0ef3282cddf4d81bdea6549e95351bad995d5c38d08ebd3958f769ca3b934b99003fb8520e1d8d70432c6c19f15ad19e4d7869caf02ecfcc2141b40fcf1ed9d2135e1bf0e538f457e0c0e859e7778a95e8178f2e3af26370122477c0253a6e580d8b7e639e5c0d764393ed7977b996732e02080790203e7c909673a43cbcdb37195dd71b59a3d81fdc9348bb1890be7491d7712d5fcb12209416be67d0e946781656a67a93a82b698c2d5890851e7e4b38debd756810a542d06ba4f20c17b5d727bb0e1aeb034dc0b737d6b1b4e0c18c75fba779698f0f246eb3df3e866376206a130ba35ff3dd7a40395b011b607059ced13a78c036ed5c2b60abf50af191be351f4f2b33a3e33faa9a0bf55fa89d1c19243f9ebe5cda270c99e88a22a7d3f78cba62be620808537d738aaf0022b0baf49516f7f6233dfa3a7d0a96eb0f7619ddd2fe31f16151f067e06c4aa027631881034b668bb5549b3abf63436097af62435db02dbf96a87b18ddf182f96c71cfe65727f58d12bd19053d02e002630b8a903817ffe2bb4817f593d76a714d17a82655ea9eecf17b0b90a9661fc13d2339f1f88be53db87872d0bddc60e27358a8fa696b9e8a5eea23d2ce93178c5bbe14481c946c665e2d7108f714d56844a7a9739749d0eb96cca6250a816693aef21faa39dbf77c459965bc0cc633e53856615f18fcca9e19b703d2da2695d3e8f111531b51c1d05a3a4a2988c2b16f658d9ebd8242a0491fb36051ef340f9ec462e2da0c18e6fe1db4bfaf9e5155d68a8486e01c3b05ba7d416ff09a746534785495ae2b19f8acfe504103dfaedec4c459d7f5879733ed5d8d45c373284c812f56eecc1927c6189bc6370d9aa5bccff7711b41dd991eb0a3bf9817b670abb08adfe98ca4423f16b53ac39c1ca0f0cf92c1f3d321c035fd81ccdf4183aabefc937e5496e0fc8a8665d72e4fd299b437d38c979516e9a396dc1ffdd83878b45bb8a0dfb23d2806774bed369053c5c2c51af9d0ff2e7c962d63dbd8f467d46e319938e5b6dfbd5a7a3df9a4e43eb315c6c161259d77ae4d88b03c6dafb410bd4cdd70d92cb2d9e4faf1c6ebea5f2c865170ebc1632b835c96733bfbea8568f28c2efbc3f2d011137c47eac12964fc6b31849f19e89ea220c5430f27c445fe9896b7cda096b2873c13b114401e0ec97e1797a1a899d8b2372ceacf32e868330b57c0facec6f42fca9fc30ab863cdfb8ef96a48c8368f45e62974e7bf2c1afb77cffc0af5e4e7c3ea802b7cf374c90a7badbb5dc39af86d3e13c6faa0ff491abfb47dca7e6594f32be877a21c01be7d5c0c597cd34953bcfda0414380fcb3f04eb4fd43f59ddd1103f3601c4b8d7398bff1d48e842c55278b9dde4433ea6d2f52c234081d276b78eb317ca9cd78338c4d4c0d3bd1b7e39a7fea9e876ab208d2daa9e49b61a557b8839fba19a07463d0f574309f1063f31c6411bba902bd2f9c4ba760e237d262c2483cc3de200c2fbc4f225cfc4fdf151a9560ee8f583c3e91367112ea9ae30a47b09808b0db9b96ac469f00f0fcabc0b14e26494ddca120d7a0afdb21c67c72e822322065f1a4aafa3b50aaed1d8920e9ca8929103f2e334335ca3ad5c2d9e607a4bf1123bf060111bd2d0e66f43dd6f8700c3b8d09ca2cdf5caeb9f5ba2d9a4f683b29ec1388fd19792161fe009ae8defd329deffa9bef7350d3e826f84d9d1330dc9decc6d31968fcf92e81c3690ecd74ff467e390d8b4da7b7a5b0482fcb40ebc81748f1b2e1e68e078d0c72c1c953f693652932f49515ee83b26478b9bdaaad46974f9614f5f909bcc3adbddde2a62f281338465c71e630bd13f29fc4a1231a258f1f4394ce35b919025c910b7f2d16e8fa78f0c14d8fa8b66c6057737448e6978cef145e2c036250789123f616796eed5f9238d1b7abb7de3020d15d6d679dd307e34623d317ab8cdcd35ea5c88c9abb0ad4b620e95c610b707b2508c58140f8c32e8855a9f1ce18d3d74aa98b873aa527ff291fc7fe32c7392db09808cac485a1e285a26c8d4896ba6a3108925fbc1081430cf8b7a9da3e8e0de9a8fbf7c94f33769f337920e86582ed3f1bc094588d5fe82b01ebd1d1d8ce0b97d1318fc709eb60b2e88a03d68c208943f7ceddefffb54eacee51043b39c003c7fc1a50fa77031bc267427f7b0e5d87bca8750ebc225bf9224724151850b24be2dbe3660305a91e6a7fc36256df564635e5632a131f30db9c1dc4b009d113998d0502df262f4d34e3265e07d4f7256b80eb543bb69ded6c8993d60770ab7f9851a46c4a2906ba2902c9216c7a4839d0591ce8e57dc8b0a5e5c697679345dbebe5ff47f20c83e9287d39e137faf338ed74dc23c0d0cdf0fb4abd39244e7e241a95b2c0691d02c799fd88a63e15b6c3be6e226042f8ab86f2fcc85336299b25d6ec32e719f8fc8c76bf13fd4f888dc1d3fff41cd487b7f63a1ac0853574bd052093ac4554eedb0026d2bf8e004770d67b882a06b7092c486b97949df0e61cf318e965fb1fc4a0777587a988d2e79ebe78c754c4c8359ceb00518e619b782541f1cbb8f65675d171d392429c7a9de48e6c1f9361a0afb5b6f1859e3feb789aae50ef3dbfead7f2769cebd870ce61e081c4e55074ccc41fe09dd8b7a8147671287e9d24de41bd7f3927ae080dbf76f703de02fe12b9ead4372409d631f551c2992d82bd8fcb16ef04fc4bb0e29911c934bc659e46b953cb1099504c2254a5d3094c920079e1e349b2bb49f8d0b7f208e3723ef53f9ca0a62549c84a8950725ca69406b619d5a67c05451c4b469ae5192d190bc3ab06212746656a1f46a049e1be142a98af1d523ea28f418b2858111e0428a46aa440ff071b6a41a7f52924b4ca5182c33648e7ee6a44b1035c7097194e564255f2afc52c984e21250698ce099960ea24de5c8d208dabed3191e354c2bdca7e23d62318c07df2e18100f78b1b32109d3012f9440485c3814b5a80b1bab71f5b45b06b606c34c892d1248b6fdf09e87307e1cf8dcb63375e7313bc4fad355e9259862c7240505081925b4b11bccacbd070b9d4cc49c04fe8059f8098e27efb9d8ea79d148cd67418eaadab5cb925eb082027eb5521d7a27fdc47f9355865815d657c1494b774b7b0c66b6b2c164694a4a51ba71bdf3bb287e213962168a13e65051bdac2a516a14457f8e0e3856cef41db449c059eb849278480dc0d5587093458197c9a200ce12ed87685758e0d6f3913b8f853e7683c46e5db14cb7bec08062d6e7ad208fd98b12a8ec8f92ac4b2f640adc146389323f92859d7c8b4b6730faeebd6cd57390670eb87d0a2fcfc440608dc07ba04ca3599ccadd4e505ad49529ed1eb2b20e1f92830ddaa409b6763e6c1b754bfda2ddd840a9d3774a94d8703bf4959f7f45c9fa5bb3abe3e54509f5055c204edcffac8f7b8635f61e2e476d9bfc225e6281d1975d972761666f39a2a0a8db085366fed94c4c7419404579f3cb6f0edec849876d84c4e70db90d073da51f09869b2c950c0981c5898008443deddde26604282385c1cb95d7af5e5b9f6482a313cb66d7896755ec96dac69ca1deeaded1923a8644fb3e4565b4851738836f5a411325a82aa8848aace8f45868db490d8e5887ce278319cc86a9d3583183d7a3c4ad1d2f2b5d2f680c3ca8e2dd643619e22260f4c029c683359a575a2f1aaf6957400fd4e9bea4c4acae0f0d03d5dd6796d535deeb95497fb5d422404fdd3496935d1c75176143e19ba9b2eda8aa96326973a00fd32d43596a8b20947b233f2b48741a733322bbccc9493a2e1e8423ca415c48787cd7c293c9905f35573de427b418c9db6c61429d4ed3d76cd505673e98a866221c68f26a9012e465f9a1d15c43756a39bcac875ea14712885852a54a48066324f4b13970795d295b8ff09969a73bc96d2a52fa50a96709fb008afdaec301af925b295daa82ae28838269e98f8bffb01fce9a1798732af07517b6349c05c37efc197e8c0ac73a0b2666bf6fc744b71033f95eb44bdc7bd0dd538971155292fdb25dcdad09b202e4bb43ad7be0df87347140ce56cc4c8d594cac0ff420c19116eb02641a538918b1301a33682666cc3d428cdbf0f563980fa767a7f68554b7a0fe2b776be813ed734a7f108171986c367ef2c6db60f88b725002e8103cf2510d50aa4c03617effcc43d8f44344fd7faee7234f9421fdd9a57cc2d4a241156d8e46360b3eaa6190c793fe130a54db09649709718f53e076ffd99d6be5c5bbcdb1df67909c1d3c6258f7510871b6e745ad3de05a08a828a8b0352cad41801457ddf9cf85529b086d68938b8be99f1c6239baede51e7693ea3ab4d40000bda183779b56559518e96246b9f09fa6ce465a425182c1f67ae289b00080d2287cebe33651473c0dc6033609179c58185d17e56483451f52b1e7d95e4c7bcd74f822f1163dfd6cdf3f11179dfe8cc394fce5a3c7cddb27d36b82fab3a33622fe7f0f17df7368319f64610990d21ef9dd2deac2fec294974fc473dc97b386a5d411c1620aa1cb49526bd3d83d5a28895bf2c204b43ba642f1dc73fe21f8d1e4ee78a1ed41f2fb981b1502e725ac3e50c3ebc4290fd19f5cd57b71223cd526607f8079124eff1549515407eca39c02d8310299ab721847e6ca48caa73a7ac82817be006334e85d7550a8a4f194187f1e13f09cbea3e781a016d49ae54534b6f7bc7b3decd80937eb703dbbfe8f82b0544304f98770c548446c1caf256369ee02c2de262ca8615c557d6d8367cf85c919c032e172310e739d76c1f03a2c566406bb17b6ea5dda3e0274d13387fc6786cf0126bad1044a7fffb678fa89b76e97c0e6b83d076605a913bad60798cc48b315abc04ec7fe2d1f5d1c4d4afe10389fbb5c3f7b8a1e1f62c7101968aee4d09dc3d95005401582b327dcf8861700d644aae30171809c98e80a14ad0b01539c02a30b2e859585bc02c6dc62529a2ed7d882bbb75f17e7d278e8ab2ef0ce2fc2d43bfa1964c8bf8ca7551e848c51503d705b1e64b94dd5332bdc36d242bf7a81c5e0a29654a11b98f1668cdf05d459118f1dfc84c90fa4a3b2f5347d1f2e9b3a9b0fbabf4f7db8b05997cf93f31b643cecc147b50ba8dab699529e1efc9e0f746984f01f66f072edd97154305971f4e1b9b002b7c8f1e9b77a399407fd8f99d8b74cd93c1feef5874d0cd91d8e70c34e01169b4c930f3bd2b8b03433eddd0bc42cbdc6ab80794fd7ca7372747de977f0e412813a1fc53d5dcba7f60590cf8f115c22db492b4b6c82ca917797ac13ec664faa31970205ed8d6a26f7b31ae99aaccb6ee7aaf5adab6ca3a44f59d9bcd3f0bc2eaad869b3f53955e427d26754cb494f8e7eee2a0f57d9204579eefc49eb91332af61f649f1dde4aba457c0f6ea24469732de826ffa456bd21560e8957f6aa2f490635b2283a1698da31bb091f8dc9199b8ce94d94b893bef5c3f2f159b2b7e161eceeeaabcb1379e03da8b8e0ba9db145a23591c4733fbb4d3b4819458e3b1ae79842e5074626455665b3e861cfc373982df15a3c96ec9cd7736c34684e0bf43d9f2cc536a0f858d67128186727cd2f2cb1606c466a64cd69c83d70904163764ae643b846e5e4a51f263e8608c3c67bf5ab6697f1725a3827030abee03d9149fa4ed1529c7d56a6a0080f70ed480bb210e9d71784e38918bdc926888e11a60819b92b9006c1b3bc0d6ba08d360f0ff370cb3c46fbcc4aabd08620a8fbb215379bf90c55fed190820314ca75885704a1c1e839e6ba972b098644317b53097036d7c438c9b2bce759fd97560dc864887853f7e2cc2ea9c5661312de8aae5263660cbb2bfbc6c596c4ea57e454c8c704ddb0e6fb033b90a0e15f53277168009b7edeb20606244e2c56b4eefd588f3c8523efeb87abe22bdd381c58bc5d3569d4730fddafdc7528d91ec2c9e375ec0c5bed976e5c9ace44b65ee0744684de02ebba6241070ee187203bc6eee7a1f642679b7e608459d64bfd02050a0be234d4d0edaa9840ec4950d6697a85a45292743f53219979facfd39e275c829b8bee5fcd2fa77267b76c07aed70430161364faaab2cc4cc783caba208c620a2a6adea32a80e00cdd71e224062670dd38551023b482da2bbd100de0e0209804ae9c35f8c80569007e5e91f3143449c33fe2df6af42b0d324f651108fdfce5f1f80f1e22409c43c423095dc6ca4b7bebc55c5350186aeac7d7667f2149dc6447039c73ef26385e6d21933b53307fadb53880439bee794a252acacb1d870050b58056a10afa54096487e530de312d883c9d9c110f0d3f129f3b5487cf895101285232f05e2219c42847aa3e40b05bab8539e74dbafa2c617bf83fc130f9c539e23f5fad571909194c13a252bfa5ede7504da5a940eaddf5a049cca511bf5a4302f9ded97cf0881d9f72e6326a42d3b5c36a6e83dbf0d9a98f1bd1d120fd3ad19a9c74e2c18e3d44cc411c312068b2dbbb48198b76ebaad9c681c00163acbb3ba88145d822a716cf915bcc2f0e8e0e74620884dd5142d67f2c08c9883120f31f2bcda9e490b99f56e015791582d700b107169f80f0136be878acc6fcfad0d00a146b15b3521a63c37da868a71682650255b7b59f3004f0e295fb791cee2b682bb6c0f6582a6233ba5fcb6908869c75ea420a39842a50bd4d5769caeb346210862d240b1e6f45709005b5f427e9cdef201d4d0202cfdc640528beb1def837bf9bf01edc14af35d3f32954b7cc1aa330cf50ec7aa87d5a4b801fbd58ca4b646209ed0fc39956ba7c7969885098bad321632690dfbe454c0b825fac3358d5c8e513ce02726f81d372b952d5cc8dba384000482b7d6c29c6552076a230be14c526384a0443e18ca1c04ed82c7e8fc039aa3102de2b844a7453eafeed3ae4781bbe364460276f6309a90e3f73f422a42309fa94dc57a6da7e0463cb59f63c44de48e385709805bda32e19285b18409711d900f23a75172d00034da9f55a3e3bf620bd5af0b7c399f94218d4247a0db6a1796744003887b10882437ee922cf1d5f08d2e27cee8c7d1a439dc2f8df725ae8b1b398dd21175c227098cb36b489ab8e411524f13adc37659ab8917edd4f43b7a42c7db98f38ef56615e6b8274f3eed8d95ab18d6cd4c8525e0baada36f8393e70b84e135cdaa9c2a3b77ecdf476d8acfffa71d67e1bf0aabedf0fb718def51b5cdcd282f33a5c7a5193269a9a6ee7fd44f44f345555af0e013e49c64e058ee9d941e32d166c2de69cc075318cfa295481b4f3cbdd05bbb12abc25b3b79c1c4914e5424c3e7f915d92b2b134373285d55aa8cd6c9c7189bf39169b8bb6dd5537ddcecc0c9f4a5f8e21386ec63ebae489d7bf4de675e9808a181276f3bf09923e47c2fd86ca8c08eb1f0f419be0cb714982f05bf67df1fd7b20595809981068276ea95bead39a8a273ac1075b1212746223770e957247f50afddd46357d60de8b2996c4f5c4608e80eed6cc914e55d5ceb99ca66bbf71367d902281074a3c2a6cae2e771088c71f6e3d06ffab51491f46f1848b71b7a9ef1bb010848792c9459a406c529d64071e7b9eed333a4c2479e32949ee5b1d568e0fbc00f60eb3231f49cc657eb70b4aa7d3b7322adb32e2e4b5c15324c47f876e0924fcbac6b5f8b88eea76eed285cdd439a9804209eae89bf272b9f26f2ba28a0fb63d385f81030057de520622bc615c02f40e9fa501147f01fb5b605d50bb6ad17fb0d0ad8683a7c8d8213138e1d5d4ec8b9a9645e61e09afc520b88430341a46b518460b48f2377e7f071e8bf5409a75f34165bab2f25cc83c0f5a96181175f3c8c3ad51139bea0ffa805c6b45a9b2b4fe23375b0d8089c5cf9204c2f45421a4c51c59466ce1b1f159f28bd93e0ce17901357a05b042b217083a49dee456949c21c0c7538c63fdab73141ae43a3380d363b9a0cd07bb240d8dc5e147b602f76255bc761c75bd1ba78211d1d443801dd5c3736b9b2029078bb40ea5dd5ba5a2b6f8ce89ba138fe8f8ed4fe297137127186ce0b47703b256232b3a508a00f978bb61767d46d66eca434bcf2c68462e7140749957582919611f69a0971bc59fcd2423352ca31919e691bb40dbe6a06f225c3b26ce56897594edb060af80f50baf973399e00a2ce75fc92ff18c650133385446b2460a347a1842c16c73db9046c8dd7085cc5c154168804d1587a7de787154486ce6070fef498b731f730b66f58c3cd54f043e616776eaa43d0de488fc008cf339c8a96420dd01d5a971357f7900c246890c091d8392c16fa2ca55e06ce4f8be927d12a73ccc7a243a0fcc7b94c2e8023a73ace0656e10a3e2c9a25789344c2a7e5014ab6b04aee714755e755ee9e6d62b9cd18601fcc31998ddc2919a7ac8fbdcd623a974004be77b07e75552b66874daca2612b7ae0cb61523d8f05ad4e555a80dce337e987d513c4ac0372f0caa7805b34d65b5dff5094623c8a2d81c45a8400844f08996cbbcb0f80ce03abcaf2dd3fe920027767fbf8118970eadda849803b09bfda67d404bcb8a54264d0b53a138da0b1a0ac07a4a0c56e754f874d946143c8a17feabebaa65e760779c4d825053bbfe01f23f158594223cb5d5b0500e0f033655f11a974539c369dd2cade86ba0625ea13cac1468ada1ca2af09cdd0bdb5e254bcf6181a2bf1030edd2838a154faeadf8403f60c2600849b8e7e213c28b1e84f483d95608fb1b5afde3679779ad82bc3610fe53bc52b3696ebb77f1be1741d016468d31849583a0385c4c82029018b406f0552724f6caddf5b0cd2a6867ca52677389fbff22608ed8e42027b59ce20fe184fcaab1c9ead71dee79cfedfdf6dca08d124b727f70f127ba59fbb6940b22bd27c61c95334aee52be58a463462435564daf99a1c4b03efcffbcfbcc16b38ced9392dc3d45de699d392ec59c01b4ab41c4df0fbbea455ba7d4c682f7e32cb1893cafb7c1a9151638391a83975adc5fc686f86588b849cdbdce80d456db25a61e86bd46a2ac3bd27cedce9838c3ad0f69fea49768d15de11d520dab17c88401680973f6acf8efb44f32209d40d654656a1843bb2ef322933ec2b2d388e51a977123bd666de43525adcc07521b91fdd8a27a247cee7b96b61415f92c5a51670f89108c8589f0a42caeb46f87f442db79bc3e4765e58b264e4d44b867f3770af39ce6e8d4a71d9f8c40b5ffe5d94383a9c4e964ce2719b15bf9ced949a6e600f1d2b8b65d69ad49565b13289991dde27350d6aec2e82dd4a203591e3e599d5463f2e392a794c51bdf1996ed4f0c8ddcbbc6ae81957655e8f872b149a3be0e3903179206b4d32cb93f0999f1adfe5df24fb6c16b89f250bfc1e1f791233489f021847bd5bb431e1ccc560f4403f4bcf0230b699bd203d4524399129502aa7cc4384778bcd866f13cb7e91fe548a7eb1890c24495b1eb984d4e83da1f2f81bba5b14c0e426c9a432303e9f45e582be452389c77c8a59cb41a099be213ece84f7d8c53384ec4c36d51d77f1ecad44819be49c6df2900e870685f5b99971a4523b80a3c6b31a3513511cda8154b4000d0aa174a181068651f463d87bbb845059d25a16654e8e4c1fbe3a11af3154d3cbd33d57d27c39562e71265726e723dd4e35866317e28d31d4efefaa0b3fc607189f20040fd0da13f20f840c11b6fa97bacae0baa833dd1fcaeac2f9d30792e30e050f7831c039494a1e405e825f460dc9410ace01a654fad17d96fe19394edccf27cabbb4d5e0474e4b7208f18fe7da700ef8238ee7bd9b9168ac49de307b5d0d5f0bd2ad8ce84f3a9940c4270e1842340c478d97a9ce93ce9c2f6067e4e686136a512878904cf4ee848054370fec213bd9834a743c75d69f985261908aad7cffdcacbbd20b22d8078a66b5cf7e60ef867fa4140853f13bb79d66d3e1f60af1352d6b651e29201c58c507aca72d88a9b00d3e278b082f61d2ac28bbd9e2dbd8d87ec7667a5637fcf4df2f0c7cd3e002a83d3b958ea307fc3c07aa29d15c8e9c17a65ed178953a9d0271799f811990d611b748b00a8e9b07f9ae3e669c5d71838542a7ead9a239c884cead8a711098ada29eef3eca719d3df012d9dea59055215ed964f8a4993174efcc3234f2a5d69cf860283d0718418c906f060a006bf3b01c288216bd05dd3570de67aef0f01a5056d4c321a08e9e895c1ffc170dc65eda06949c94f4d6fb59d5e463673a73eb1b2f550f53b1e730ed9dcc1a2b217f20362ad463e982046beb336cd9be409fe747a0ddad3d0cf4c213fa1b3b218e86133633f09019f079ae34ebb7806ea13bdc487772033378c58f2a5e0d71557e67b888053d6e7ded0ef85f30b1a68f1ee378c9ddf08c909dfeabc91ce0a8d67927a0b3d5774ab9907b33b9dec372eb00cd4d004c24159158eac61f48946dedb1e0a56c56a20d4a07e47e056333a46aaa4dfdfd44d4ecf1333c12fcb8d95596ddf7d2b29c0d37091eeae41f88c1f011926601f43c0f30112b4163e6383785a244367315cd7623a3553f40f05db764e0466b7c8ba461d058c9bda079d42ff5f611a5c169975206a0f1feec336dc7f08d0629c9929c12b063bb76590583bbf2dad227cdc5341488d739290c7329c55ccce2877472fffb4a000efc82e9133a60b7c987d50b8b8d2aa2506fb1c7931082ef06e14f9684d3e3d08b28b19b0ebad5507c4ee72a54069c4fbbfa64bf7ddb7b657ca7fc831693576a2210c477e482b2bfe6ee246d6080fb09ea89cd4eaa24cb78326e43b59f7f72373d0d498194fdf1785f8188eba8f5fcb7e5a2f30f88a6cf578137630fdeb7f33841f759ec1515fe4cce6875e609c8cf939195cc9507ad9e5a166704141bd3a09a7886fc6ccfde7c6ec35f5c0302e5e2c67f7da3ae3043a5b1cfbe8cdbde5a56cf29af356b190508080e3dc77bef9591bb604062da1a7189894c11b748d7e74aff26ceffa988df480c3143dfa34cd51a94baa1e703552f3fae5437ef8a7b4f922a259b4e54318d04e77f40bc4cbe16a0f264069ae63f3adf88ffe8c5c2ba7604f8f0581d511b7b3163027711cfad9fdfa596418ad4b46978b6f71cc870dcc6c234b9a0c2a3b7e58e82ef5a686d7ae7a4ddab50a789aec9cfd510149db96e636dcd3766a66a0a9f5f939381ef86c9b3fc1b9a036bfd9167f3a745ef5539e6ce930dfde2ce3f8d8c2191427ecf6a23b834051b92b5fb3aec4cfe317871c837ee43d7b0bed101b85a10e60e4ef13d35cd316acf2f93631c0dfd368fb52ec9d8507d80989da0465264e10de57d402bac3a41fa5100f931774968c8a8542e92f75fc523bb43c2971a3d09f3aa012990b302cd1611b092392035ca0699c9e8bf7448f0cddaf17fba233b020a5ce81e30f486f581c98a98d7ad79b37a1bd2acac478c50d4f5be2aab895cfba6189f70c5419ce567dc396bd761ff5293dedafdff4ea7e9a54696897d64aedb5c90693f77ce1f7d4b6c3fc880d00d287b24f0da246556e176abf3b0c5d7b5c843abc8f1e2fdeaa0cec35ed3a69aa8bde22df50980c48f39329ad4f3c3dd24bdc1ca37845955a1f9ed7f05b248ea7c5deb3c1061471b7068abeef76cc6e75ea3c8a6bb93fdba7e2cfe5c1bfc900bc00fae2f21403ee62269ad1fc9f592322d0f348479dd234f0de7c73d0e47bbcf31eec5a9282706643719b9ebc21506d665ce7e476ebdf7faa3dce63fdf179687bc1f09df1eb9b177b18f9fd7776bb37d4cd73325795f821cb353885887c7d4c7d54cfffd3e9932226720cb09193c73d321bc615379425d3fb8bf2d2a7af841391320909be7ccd7ce6ee16d2d7dc1c03dac3f146755d82aaa4ff03f96f403f07e85546cc81b13202c27d4c78550f3635102c367142539ed1aca89154155f6bb3154a1a6a0aecd18fdd65b3f4f248fac7ca17e306d1f0a160f6070f87148a60c8477428ae09f66c1ad3204886d9f9b071fbbbb18ac3f02f7ccd7bfa2fb62bf2d1941fbf054c8f7e479d083a6f3a802af87459918ec76460d8007676f6573ab60acd769926115f0bbf21ca29175c06b871f772fdf6428aad0301458e44cda086ff5d13493a217eab582e8fcc15b3d6c99a23a45a1ab7372593d52d26f87e93b6fa1bcb17005f4c954de047cf1c6a8cdb02aee584bd0c3840b0a6d0013c0c3c0c3c0c3c0cbcc6f0f7e66e6d664990292529b44281f6da4521524a322599228ffebfbb3fa971a066df7b333333f3e702110db60c610c8c6d84c40b72b393c5e5cc0f2a4252c7a4d3b89592da1d9600899098548e7f75b921246634f5652a2815748685905c72475debaa78bc340849d9c12c6ad54048aa1883ec69c8d9d44a8022357e901c634ea2845b955669b40c206070e0042224a8e183a4536e3a9498a9749fd383c789c047901e18f0408d1e24c9ee1c97f50e425dea34063578606aec2079474ce8dad7bb7cf2cd1a3a48f235293a16e3a5b09c31188104f9412317e9892b19b562be1515c345a6b47a8dac89970dfea0718b04bd9bda72e76dcdcb3068d822e1720aca34ffd98bb64f5d20246407185f8484f4f0c1234831550b63c457af9fd24dae3a81062d924a578de80539774d398d592485f220d40979958430454e89a058101e3d78f42043e451192c8695182f8679203e7a0434649198bbbff3d9d5fbf5c62231fee9d0d36add60515824899249369ce9e8d1c157249b6d3275ea72ecaf8a2b12e483e9963c19ed845a911466e173901e7249cc8a2499a478182d9e55247a65d84d23f2e28436925565ca9489816180862a925ffc63b2d8d629e98f83300544ea81f86835d04845d2e714bdb45166b919631c3881c80968a022392b9636d3cc7649a53708193f8290d181532446512a7ec2447dcf6d8a2411ea9455e753a7325c8a840b9684d2ee9ddd635402344891a4e4081d74e8a692293e8aa450d7a63ba623df3aa248506d8f29c6b8263d9eb040231489772e57797fe993ea419198f4638356550e67fa44828ef77a3966345d5af64482e5714be2dbcc84b07ca00a343a91b0d9aebe9537292b8d1134389164c9e23b5b2c63bc3592654a17416313891b732ae754264e4975246b07185fd0d044d2df26cfa1838e398bf6f881462612b49fd2333196a3f234927530916c22aefbf1a7b53f7a89440f69295dbcd992a6444b24c6949392fb508d197e2512458fccb731e98fee77d2a044b29eca95ad317fb8abc0e8ff11829010379348ce9ce2d668cfab568c0334249194dbca64b6aa4c3a68bc078f54de83470542421848a5814624bc7c5131d282ce8af8f0aa010d48249daa2577d758b32fba028d4774a934cd67ffbc9e63590e68382279dff2c65cc8341779b143043bbcd88181201c460542427a7c90201c460a0919834623926ef4936fd6eeff51a1c18804e5229bc75b93df86454a11416311094ad306a5da4593b52a5276071a8a48eae8a75da971563d5d2552a7c62865341291f479465e90329a80b936d04044a2c8304f51ae4be9d349c2206308340e917ce1ac94a68aa16cf48648ac72bdb94ff7324a2f4452da86a8f831fdbdc6099198b3ede75197457b458348ceeb1fade152506124880421744dc9f220c4ce8148105175e122d633368048dcbcb15673edd9c6fc21a963c8f5cbf352625b3f246dce5ebbe2fa41a56c1f12f7375e56533153b1f22141be4ceb8c0eedd0f79094824c279ac553faf9e82129f9b75f58c6f5aa9c3c24a5dc6d53a71e5f32e221396db0cbec1bbc4382f79d50f146a998f1ec9030d63fb369a63a24694bcf59ffd321395e2c0fe32f4a33ab3924b9b77fb424f3efd7450e491eab5bf4764ca15e8e43725e2dcd5f1be11664a9031a70484cc2b2bdb98e90fdf39041e30dc99bb3a8ac9a4e9e3c6824cbea070321414888fe80861b92c34ac618c65c4b6c8a5281461b12af3c6887ccb4997ba740830d89154b9a485111abb15f43628ac65f6d4fdd1cd46a48ae8f55dfb18b0934d29094ec3353ca6257f2a08186c4eaf26c7a6e53c5ec120a34ce90244d77d7d58350d3263324fb5ed686688a6936bd49a05186640db6974b99c560da4486c4d31afb520a61337f1531d0184382e5b90dfa723a15f3c672041a62488c6feeb25abab25235028d301cf38a88ce099dcb100c89265b2f6ebb649c8f687c21f1830a224d85d1af89d133d0a6e18504f9543add8795d7549f18d0e8427250ab24a47c69266122e382d0e042c28bdfc82d8b3176f4912c332034b690602554f6b424bd6353c4e8120009f2838616927f75cf449ba69c0fd7da018605b0078d2c2457b0a0b12d9befd83d928560a0818544f7ec2988cb4e418e19648c03625fa07185c44a79a6dc5489537993c70ac92bde7ba1f92b9b088d6459488879814615922ef362feb499938cb1053d78e8186850212964f4f0b15cde532e85c01ca63185e4d4317aba9cb665515573011a52a01185e4ca78f94eb2b9f2fa23799003271021010d28a431780c2a5e99c9a299f8cee99abbd9cf0909b14318d07842923821e7da93ac9d60f03048c2601e417e881112921c388108a2e1840439ef738b41df63f447b27af8684262fcca5bd919b35aef48d61863fcf001a44a8c9e41a1c184a4d3416672fb94e5d943630989a7a76aeb79e7e94b34949018b2dc6b2ea98f8fcb09349290b457364a955cfd950e0989a3c37bad74d29bcf1d2159a39510772a1f2e968c907055a9d325d1e2f276119244e6b2cb413667ae8608891def3c67b52b75318790ecba5ff196a1ec542a84a418a383900de61e2c280849417adc2c1697b2e1b2031a40488a1a4b97ccbebb341545028d1f20fbb2738f8c9f22630c9136853d7c84e14548c8f7f011462f0d1fa4dab35596d579f0790001a39840a30709fb2146aa974653aaf22041e9594de979ecae723b483e71d1ef6389522ac568e82041263dfaf35fcfe63f0c8478f410d95c24899bd58a41294d95c9ebc10c5c24bc06bd495cb26e131aba4562559c8edea5204d9423592ff81f43a4c78f0411315b248832915b3a562711d54896bf0cbe87d5310fcca84572cdc6eb7caaa26946235922407c88c880816460062d9293ed5ef27e3f25adc23ab3481af9399710759d4e889f071030ae01336491984929abb3b11323d7c41fc6de60462c92e4cde67c497d4aed2e2c923ce4c56a10a2b3638e64f90822323206193f8e04335e91185f4a37d77b3ece3b92f5eea347b9222965de247b513be8b776806101201438ad4852e1af665ad1a38e3a9215a4cf4a252b92eab4e79b4eb9f87b70183f44aa76806181a28319ab48eed839a34b7ea427c8b74077806181e701040c4c552469e55c9017837e115b59901fc38060462a1247a82474ca7b49a8309e60062acca12f8f107dd22f788ae4d0f1fd141aab64368da4b96086296c46292a448c19a4486fa538fa337310fb08668cc2e0674afc739e0d7b24ab46f0c52935cc10457228df14f463a7146421214398118ad2799d4abbb5152e88053340912044d65b294f69c49f333e91b0e2397c885598994d48c8954815ab50ccf044a2ffe54cda72f7ec74c6108381b00768c0430c1e417e742024e44ae4aa8c2766742249598d0919d34ce569e73083134931955fad89f3b1d0e5306313c925ffbcf37efaaa086922399c4a17c3b78687fa0d3332916015f36513b71b757d4c248579d17984a65367a54b24ea7eec20cebdf3aa6489c4de7b791d214ec69c21c38c4a24c870573232f5097d7e0530702891fc566184b492953f9826911475eb7a2d9aca202349249d989d9ecf5477f64622412c5ce4ac5c235947023320912076475fa9d9bc68db239233c9ef68fa5579fd32c3118959543ce9b9a4728e79b1a3746087173b0a077678b1a36c6087173bca173bbcd85134b0c3035fecb8c38c46249dbcb95c8a9bd56e23591fa4071b18331891ec1deec1dc73cc1f7480987d60c62292428e0c329a1e4b396432527e31431149398afe0e7516f457d048d6d1c08c442405cddb41680e8f6495ca4c662022d19256b0307e29d486cc9414cc3844828eac4ea9271e5364f03daa5ac03d78038a986188c4d3b82975760d19269f5382985188e4191d43d559dee0d92711efc122c6768061811e1d104107c0f862c704cae89010c342cc2044e2978b259934d3bd5e3b85198348301372740a97e5c20c4124f9ad7ebc509be7821f88c4534963a6cf35204466fc21295890e139a69449cbc20c3f2486ee3d7dc1c432a9d43e61461f927c33a613b10dbd4ce93961061f923fc766a62443c8ee3b92b51e10c307900a1c33ccd84372a96c62f4ad752ea6c0f8624748488fc1430c0cecf0c2c230430f09d2e3b6da561ecd23a261461e9232e8b85ad9d126e6e3213153648e7c669b85ee907861e6470925541a8fdb21e94c8d16cf9369dbd37548f2a4d34795da36cd3974484ef2f6daea744c59710e49f97276977e5ccfd1cc9043b2297115c3f68dcca6d285197148d2e9bd945c8f61647d3824e8a9d95a5f5e91691e03c48c3724688b5262f2532b3ec4c20c3724ea8a52a24ae44bc7ce5261461b924d8bccfc96de6a4fcc8604fb4c7f317cca554f19a38cd7c01a92e46ec3ade63f8cf6d590a43e321f4e0999941ab50833d290246f94ccbba62c557ed09020aa846ca95ac538f5191254a75073f7309a959b21c9a39628153a7db2d2962129068fa34f5efea0a26448926ec9ccf28cb4b0d931246aae5b8eb6e3e2171543620a6366b96b66ea1d1f417a60200cc997541e6d6f3a5e3697469801860425744fada55d0a23fe201808c28c2f24c8e7f26c2776ac3e29f2417cf4a8dae1c58e1d607ce1c58e927c183fc800638707bed8714998e185c2347a4a1633654fe229357a9d0c6acecf4a54bc30a30b49a53ca559d059b2cbe642626797986b0afb6ada2d245e58ca09a546c3fcc30710ffe1030805424242c6f8e123997ed02c2362d7d9c21f77bb1aac2d26dcd082167aa427a12ca432fd6aca167c335e58b062ddfdef46cd43bf8295f2a60aa67209af5821b9345bd060d2b2679e55d074a6bb2ca28249367b8ec8a6155d9a4292ca9e2a2f3b4d85fa9270430a869c1e71d95042158504d3e2193a23e57f6346b244ca001224b170030ae52d1fcd495e07dd982724c8f6b839bb79a8cb8f1392a2784cf993aea45b2e56a53f580c33851b4dd8de746352abb2ce23262c1664b76d5b6e198c1b4b505458ccc9734309099f938e672acfcc2e58060301c2782309c929b6b7e7c6bd2ca123213945e5b4eaf44e3a898e90a44a99e8d3a2ba59352354dd284292989271be2c5fba341221f1b5d346f9af67edcc48d648101e32b8acbdc08d212427394f9b726ce7cc538ad125404b3784806e04215170030807e4c60f2a6405377c90a442e78da1163cf885aa0b377a90f0e21ec4d98d6c0c7f07185fec08093923c30d1e248b9e0a594a933e21961d246b0a23be6ac2ebcc3320dcd041b2574e9fca53b3e64c23f941f88134e622f1c3c5ebd229a924636724eb4242709124a6f363ba3fc5d3e916c99ac37fcef311a35db74582bc5342dcc7e5ec8a59f3828d5a2409bdb2b32236d4a9102dda2453867b5a39999ac516e5b6738e3ca52a2a8ba4cf236a47e6a5d4a4138ba4f5bbb8199934330a8be4d738a377ca4366cabc22f153aea07e65336ac55c5121ada8105624a633e5aaa3728a6929ab48ec394da7573daa48da18f453d9e7aaf23f15c926e4cc6e4cfd6ea5b4818a64dbcf59fbf23692e561f848364e7166d6ec1463b6ccb162d4549bf6b27a389595fac16298326c9822d95c4fe752bc8a491868c1732024440c1e21213eb0518a4411d6c9a4bc26d5199322d133c7d369ee6c5ab3a348107552b5be738c11b72812dbc2e6895c768baa791e40c0b820364291ecea15b694963cbd3f289264e8bc58ed299d8e15e5c009447ad8f844527e92bddab9bc735a3d91dc595f39ae2921efd323599d48be135f72bdb7b7c189449f758d7675a24aae9b48d257b9dea14a98b25f1349b262094fb5318f2cf90012648cf7b44c24c6f89abc847c88f36b063cd26222513e8f78939996224697484a2163503adef59fd0129a1c254d764c53de984a24b8abe790f9bd6ebd532229c7051375da0bc387487ac0c6240a7da6b541f9eb41586459604312097a93e524cc2c83e5a3078f0ed88804c2644f9f862071069dd45df08eb9472407cf27efafd20613cf880d47a45b7e426816cbf946687e6af52c632fc56a1b8c48744ddbdc31ac83d6f0221234bfe457f87253a96d810d45249a5ef6b99dd2aef14424c5e5d4186a54cda22ab08188240bfaed771daa73c987484effbeb9779f35a7aa9421126b3e9aece8a3f39b2f44c25cc7678fd992a14684484c41ad3c07b9141dbb4124e9d16ceb7d62533e6575824858f39456752ac693398148906e3f66b9f7413f0444c2a50aafb441cfc7de621cb0f1878437d5418f148d97f63292857e480c99e715b4c97d13571f92bcb2b60971a24c490b1f123c6f349ddf8e65eada437270ff9843ae336fe7f490743a66c694b7bc42ab79484cb9dc8bd925b78187a48eb766d1620fc487c8f7e011460f1e77011b77484c4a3c4713222e2e2c56a60236ec901823d46ea64e7d4df948961736ea90e4419bda2615379ad4a81836e8907c3ac8f3ae2f21c45ce69064b23ffa73fc536a1b671f619c0dd89043c269efb76db1ade29098cfdd2dc8e67f66a50536e090a03d2d7c5c4ff134657018646cb5a0078f172c046cbc217d276b9fbecd42f541c6d8510110ec3012d870437298cea11be3ece7ee0c36dae06c182d93da67293624e69a29a1634a3b89b56c59437278a79d917e3a7a5b3524badf07edda4e222f2af223fd830c9117f8f01146da077678b1756260230d899ad9631f9f71b3271a9262d09dd736c5b7b23a43f297fe1c357b6d38df0c495a9bb9c7cc55551b6548fc718b51e5b12ea53692cf030818e7de60830c09ee29f6ae9669eb2c27b03106ed6bcf6212d798e71443213228cb7b9e431b86f38534532ada49c5c68a0736c050d06a167383a84ab13a5a5b031b5f48acd774212f4fbd64a66c7821793d099d726f5dd4cc2e24cbc98df9d216a72ac50617126fb36ce9f898ce63b585e4707dbaf94e8ea5ac4bb0a1852499773ac656947a6a4b0936b29014a27baf93ecca361316125563b4858b61a48cf80ac9c13ecc5efe55c918b242e2f748b10d5aedc4860c0936aa9034f695d2de3559b7a554486ccdeb96264ee956d21412444757ecf629f19f9142c2c94badeb5ab275298a041b5148f24e329b4c6fbe117b901edf5048ce2ab2f296e68f31eb4896a930c2e08180bc07b214066c3cc1cd20e4a4c6cfdef17442e2061de7e1d6df373d4d480addd92d0715322151f4497bab10bb5f731032c4580223f3f1f2c7a76b94909c2b69acadd5fea426213959afe82c21c1c6119257d645f9ce8c894a396eb061844411762ac7074d1fa217709063838d229864c98f8e3511ec149e997a74aa6908c8067167e722c47e4808091a841035ed1eb59eafc146103cb3112ad6af97e81f08a760c95a54f783c48fa35b4b8ece9b231f54bbb1fba33decdc10d8e841629a30a19fc94f3e4c3d783010b732ab32be541d6cf0e0d3a1f46fd66c0cbfeea094e39b12fd985db191ac32fe05226aa78e60430786758ce9a9a38785598c32d71eacc7c54f842c601ad8e1c58ed2c087817eb018a580f808c26b125123178927b6e6274486e6f32a10357091d431064d229ef6e7fd328080d1011078183cc810a35855a1c62d92bf72366d6b909634b6456225abac8c9ddac3362ad4a845629f8fdcec37edb92ea3871ab4482a11dfd2f7f0adf144aae850631649396df8a6bd4a267b9545d265dd670e5bb2fa3cb1481c113a07a91753e868609160b1572b86bbeb06957d428d5724083d7a4c2be9fd950c8f50c31509eea32ea64b3a660e6a2b12573e998c1b73dedbb567841aac48329d327474925ee2d25524c636737991e13eb6a78a641d4d623a3e5bd1636a958ae4743988a76c2a2d5d8d8aa4f6d9f8cfdd394582b06066da264bf7c53ba648cc7c6acae2522428598b974c2919e4c64991ec9f719573681b359e51246f4ef5516df3a9e9fc406e07181608091145d2fdc93ccf9f33c9bc090909d2fc438caa110a1f3cbcf0c2013540f1891a9e60408d4e88f0f8a1801a9ce0f16302df3d7c20a0c626125043136394f12f58408d4cf0f8310112a4d48105d4c0c4075ad00206c301352e61091105d4a884016a5042e400352621801a9228408d480ca00624baa8f10802d47084088f1f05a8d1882465327458dd70fea5c48804b9eaf9974d49d8fe8b48fafa4ea64faedeceaf880419366d5242572ca1f64424af6f858b6af9f62b474472521eecd3957588a48cd1f1eb748c714e6488c4b3db18bfbb35c8720b919c332b659f0f7d1a5542242529e23bdb06d3b07410499a72a953d2730cff5310893e427ad2ea9999e21388a460b7ba6939f6ad090191a4d5921a9959fc437287cc5b2921b3aaab7e48529f7f337fb13e249f5035b649d387aad4fea0061f12e4b52dc868f239a56f8350630f09424e6ba7cf5b41c60e0022d4d043b26db610f641de96def390a0f953d4c99c6478100f093ac713d3767d6f31171272831a774816b1ab29c4e791f61e911e3eae7250c30e09a7d2655346abc8d3d721497356b5fbac3e8b4e87e4b2d5b0fad3a0b635f5ee8303a735e6907c95f3fdb5c2e9adcff790810f111f41b04a4da0861c12a3e8bf185ec167f33824b968b27d0def2e4b8243c2a7758cf64e23c4d86f48daee8fa36df2964dc80d89e795bf3b6b69a65393032710e951a30dc93baa9f9d7a3e1edfaec186843db1a44fca26bd9e5f43827ebe4511edf23b223524e7a8a9d5c5453d2f4e43926fac4b39859051fda221d1e2523ce59be2bfa7c61912c4f266ee11232b5c585950c30c89172e9d980eba630ef2322429d51c7ef92da97c3619124fb7c58a53a3ec3d3c86e4e01de484cb2853ba1892c4c72cd6f5a9d3a9270cc97d49cbdd7b5526250443720effc9557f4b66eebe909439b9c6aa52cf156baee185c4381d6bab43e9a0e43d92251246189c2223417ebc772129c37ed28a9b82bd8fb890389fd6828e1653b84eb79018f3e49df0505f691f1e2d24b5bd5e65cda6e216cf4252dc593ed7a04ba3cc5848d85c5994d6b9d026ef1592532773fb7c29364fb542e2a54c5e69f73b1ac42a24a5b2117753faa2a9478524e5da7e49e50a32a7ca4896196a4c21a9c7b4fcc9cf1eb21e3c38c803390fa82185e491ad1f6bae1ec42b5535a290e4167b3a754e8242628a711d845bb691233fe14f3a6a3de49af804e9c1cd23d019d4704282f0d4c92da8bbd3d28f6401f151caac0c20417a3cfe60315650a30989a794a5b0a6a534cba50613923f2fe8d8ee0c5bc1b484e4a0639fd0e5d92b76af84e4534a5427f1d3a1a5242429532d174ff5b7e71a098975955d2da71b3f797b821a47482eedd895c3cf5401a65b851c69485a953591172673988aa1420e34245cf2ca321f1dec3b6924ebcea0e7303243522a7da1ebbe9350ea3492a5aec851866453aff15492cd564d1ac92ae3410e32248765caa743852ef5f748d6ea20c71892add35c1406e2d164f803c920fd3fea1639c490585deabff28c6b528721c13bc5d7056fc1909cd2e3474f7f423c8511c8f185c4d81a7428e16365e9e485e4d5243bf532bb44ec5d48fa6cb2f141831e2d522e24993a39d11f64c55ce116925664785afb550c931612740e9d34e69425646410c89185e4ad4d7963346c542d61215964a837d9312d3d9d574890e99d452ea5c58f9e1512af4cb6897a93bea385b138c851853ac5cefac898448564554d714df83f85a4d4b9ce8d5a5135a5482131635abbcc791f5ce528249c566c514a68583f2d14925327992ec9518e2724e88c2db2f36cab7be8044d555f6ec6bfa99b9064e1ce56d332ce2bc78444cfa49b52f7a9d07c09c951b48b363f8fb9ac282159f3a5973e71a31da349a81c4848d01a36773d7f466a90e3087cca99ae43cf4479398c9068313b96839a8c2dab8c1c4548fc557f93e96b537cf7c72042f2e83ab1915d239ed12124665b5d14f1362fed84909c253a97f694993fc32024e9d8e9ad1c2c5fa86d811c404892d9adac4285479bef0709d6b349ec272bedcd7c901442964e53f7239bef41d29676e8ff14de415c3c4832e1d1334fe6b71b15327ee4d8c13198e64a29cea183c4cffd499be6cd9ad29d8ba435719b93fd95562eb8481c9d3dec3a6a5cd2b985a1f94da839d1202f6a8be40e93c9ca446f30b76b9118d4339f4a576b1783688105b9da9e527eec92b3e852c7f646bfc232461689235a438f559a6c6b6391344aa4ee5f500b264b5824e5cb41fdc447e9e8e7155f94dbeaeaca4fe27445b29fec9e6ee65077c156248e1aed2f0dd3e1634562d2cb703a9ff0df4cada2f7b3fd8abd295f061caa48705fad1c44a94cfde04856008680231549298ed262a5c542444445927e6a1afbed9c37bc91ac0f03b105a008384e911c638cd5b4105a429fa6483ebffddc202b695b8ac4dd139671ba9dbf4b3bc0b0001a1de020c599d4e9caa817d91c11e01845a2b9585a988da7768061819090adc2218a24ab14ccdeb468244be46310860fd5314e097084224967d19a94b8f6ff1a47b2d2a90d8484888c8181901011830314095f41d72e36598c1b707c2249997766b8ce9cf2d7894bc0e189c4b0d3ec29be0a4188157622496ba73815bd79a9d42241be05579c480a0f6afd73fefcd7bcb131e0d84482d29445959a36d70e6a2259cf4aa9bccfb4a8489a8501472692f7fb5754f8ac559b13030e4c2475d06e6e6b616774fa1249371742451b0b31d2b544e27ece5164f49af6ce542241ef970621a636f2513510c04189842d4f97a6cea468b3708f0eecf06207184fc0318964eff1b471bd9d4c69b4804312c941ccac5aceaf1770442249c55d0bcb3dad7191dc020e4824fc99ac242e466cccb308fe3c2231c6c5b5cb7372f46f228580c0e1084da4ab65ed2f95a3091c8de04f258dab1daa741861ca5ac963766bd658d929658eb182342164e72f816311096e419cf4cdcde11d3bd3071c8a485217436a4a95cfe0bd87954859cd0147229283f8ce1ceae4767b4744920e3fdf5e3aa63caf0f917433227e44dd07cfaf2192d4968cdd15cf72985988e49163f2ae725217db1022e9ccd5528c6aa675b1412479f4cc9fd3e3650b2a82480e5effad9ef3942a53209232091994beb69caf392092a3e910f1cb128dd7250f70fc2131d86f8e95b6533d7a38fc90e09b95fbd4898c37a71370f421b1cd634a3327f35c92f3214907d51d73a4bf0891ef213973e62a5d2a45871ae921498fbcbfd3aee62129e572f02d8d1d62291e92827bacdbdc1eedf4bc43e2e5283d567a31d566ec90789622d46b4c9795ea90f077a7646ed0d16b373a24a9cc3d7b3a3c87e4b4529b46c620347d72484a6a646c7736dd2f8b4362c85bca3a76b716c321e93be47f8acad19c534c80e30d49bdb3494be791da96bb2131d3f589d4caacec741b12c4a57ebcbfcb912d6243821217717ff1b68fa23524c9fceda8fa9fb18dd59078bd9593a7ae4a3aad6948ee202d4c749b6fb58986e49453bc42d564742ecf902457eb6bfee6314dc70cc9b9c472eedba08459a70cc99ee72e95672ccd3f922179ddc2a728ef8f3908c790b8ddedf9a1528379288624213fe87f9d66ccf88521497785d9aeffef6c1f1892929f9b8efc5d30e97d2141becf540caa76d93b2f24f89608d5ecae0bc9653122646898ccce85e40edf13da3a6f52425b480ad95d69cbf54d5e460b891f744af9c22e8b3a2d0bc9a183c6b3770b21f4c242b2df5cba4f1b5f9fbc42e2c8d2df393765662c5648baf89de6633cbcae2a64e599528ca5ae61965cd3c63e447e10151247873fcfcef9b92482534894cf4bad49452e63de0538a490f477af1f84d614435846b244ae7af4c080990c18c80670442171a3faa9e7fc6a992a2824a6e6a48210175b5e33333f580c0ee07842e2cc9bfc35dfb6933d90ab321930902f703821290539f5ed30b52e65004713122ecbd85b18d59eaafd6031cc72e0042218c0c18444916eb276ee7e2b630846c6e00be40c702c214908d3ef3c559629be60c8804110122203061212b24a48120fe1d729e7cc593309497a2bed4cdec8694b0d07122ae4348e23249e25910bb3f3da9a1b21a9da625bf747660c6d111275357483bedc39f211a40706bc308703271049388890549be4e6d1a4773a734e80630809261a572b78a78efae01042f2a5ca25eb67722a8f2308c9d9a2be77ad95ca19120307100ec70f326959533ccd183fc628e7387c90a43676fb77344b62318e1e2466fb86af0a4f4ae62063031c3c4816e936a67a2d85dd7f0709cab552f220da422815870e12439ad75bea9c93396838b8918b0459b94586678bd14208843d50b8485ebdac163bdf22b1f37bae4c7a6fb46b6c91545feab285a7d422715486d02a37d5e0062d92548a1d2bb5091d4ee833b8318b244f4906a5cc837ed1bc2c92c4aebb63e6c510a58e458252d394b3fce6742d8245529272efa16df9db41af480a42fff3679cd331c4ae48de3eaf1c365ffa7e694552c7642b772363cc9a614592d5c7adebbc8f99de5524495325337605b5d7ab2a1294f09751d26408f5742a127b3d64579b9789911a1bdc4045627746cb70ba9256cb9d2271337c0ae26e4d6ad2291adc304592b8e554579e5224b55fc86cdb5abfa646128104f9718314895945688ee3adf13d78831ba348d269a2e2e9d8bfd9362b841ba2482c1d6b83f829156e7bbb118aa42094f2ace7b51973b5841ba0487eb994ba66f56410cb07373e91686154b35f8bd6cd494f24be5ac7bc6935e8796a07373a9134426bfa132a887c19970737389114bdc5feb5fad247b489e47fcd931b8fb21a339a48181d63c572455131a5360737329170e2de3a68b470fa4e984832153d54325131f14c07372ed1ca480da525e6668ec20d4b241bbe2ad975da1db51249626a49f7749212892ba7c9c47a0ca6e721e1c62492338c08adfe2979b52b8964939151b643091de44824fdf95dfcab3c159b8444a25854ad542a5bdef02392f7d3a607ed1947247f8ab1838d2869166345b8d18884d3a7b9bd2763bf75c47083118929866e2ff91b5b42691149b1f2aa660a1d26543a2424cd0e37149164af59b444462bdd26222966a60b42e3967a8c22223998ded22ceb26d37d8844ed8d1b77a1628c350d91a0396bd975aea7b1538804954a5eb0d5ba18442444b2a93416d2c2b506e1209274bb626e4d29d4524e10096b6da5357237e35d54dc784788aede1c5d032259bdfb62ca39fa43b227d910133a6d90a623811b7e48f0a454ca8eaa4da3ae3e24bcec27213a671b933d1f922b8bdab6975e92a9ef21412e7c3c956af3cbb31e92537b8ee7a26298ea5ca42c0f09e65935366d655dab7848309946665d2fef907c19fabc63d4a0b7736cb86187c45169779a2b78a30ec9da79d7ea549a8fabb9418744311fe9a7eefe72e86ecc21c964ab6ca78a9ebabe1b72a890382476c73ca767a9de429a75030e4971352693f5a314dc7843d2958bc7ec940cc10d37249dd685af986a2b4237da9014ac64e74f53ef9a3f41dc6043d269c7d497ad1fbb38176eac2139e754a173a8fe4f4bc9c20d352408a1c7936ef8ac9df50fdc484382507531bb8ae1944eba8186a45c6a67df9489794cb97186e43a9de21eb3a955c4871b18dc304352f6f69957dc2b51c48717fab85186c4ed963ded702bb120911b64b8bdcbc462a50b426763483af1b92a050f1fb2733124988d0a3fd74ae2540b43b2ca8d75fcd370f1e260480eaddf41674fa3d4d35f48caa093c7fce29ebda7171294a6cbe6a3b52e24061513a54c531ea1642e248602ef3ebac78b18a18b392466c8ce9c746632d556177248aa2bd92093fecf59e538581770480e8fedae4a1f673c3992d5c51b123da5d57091ad144ac4eac20d8915af9545894b1b1244ca9c9297a52eb46e62605db02171d73e448acc03a18b35248ba6924f976c66453e923546d60c9290902ed4902035fe5caaae4c79f63424dd8fa5df9831a672070dc9d94544ff3d9fa6e9ce19122fc62e170f955dd1396574618624ada0974e79cea263da451912f3c79c7e4c945ccd9a13a40b3224e6a83d9992f4944797c6902453c586ec3da12dba1892b3df8efcae9cea2f1c8624b3a453c5285a42e9160c899db3f937c27f64ca7e21d9935e65788cd153a45e48901ab65be3c5133a48bb901437a7e62f5d722139e6b0b999eddf7f3a5b48582f551d7e8b41175a484aba63acd6bdc5bb594852af1bd2567e538c495848cc9e2a5f57adc5defd0a8917a22d798e253ae4b642b296e9f805dddd64e12a2499eecdb030af64314b8524b1943d6fbb4b6c904e2131e8f06aabff73394429248fca9e5d95ddd1c28b42a26a7918b541e6ec2f14927a7466cab895e9e209493aee9e9e1e5d75f1d285139264fefef611ca4dec32f0e14548880c7c0001d284a424c23749bb774db93d5f74c184e40ad65e2a4e8349bf4e2de1f6cee1d692cadabfe07f8caa30ba5042e205539ade738b2cbb81bcf38f88bcfbe851db451292577469cedfa973ac34922583ef61d214035d2021e9664bdbfe8593c19246b20a025d1c2139e592f13e68cdfeac19c922a30b2324a620d73d6f0cb97a3a2359223d78b4e09118fc4082848003271081411745484c7983a9e818beb49d225d102139558e0fa1d7f4ecff212459eac9de2a993fd1114252dce86bd7753ab8c8ba0842a27e58cd68e1233eec12e009ba0042f2493b5d9742f5538ef941d2e5524a65a88a1871e9c207c96ff2e3972a4bcb64e9a2074553177b4a97c59772b3d0050facf2055deca018b27c37fe6b8b6ca60b1de4efb1635c3173a0231747072e74dc22b14ffbe4bd270f2174d822314bd99dd023ffb3e6bf02212128021db5484adee92ca5b6ffb5132d122c08afa87b9d366c388be424e3efc76db9a0548c2cf45c96949ae8582c12e574ecefd16d27a30816497ea68476a5b47e697d45c25b0aaa728a0e5724a77ce930dd9e417a8a8e5624c968f5fa25211674b02231fe6696e57ec655d12a12b5448dca583ac6eb549194526f4595e6a5bf4a2a12454344aabfa78e9747457250baa3c49b1a7d192f41c72992540eea74f66831398d2965aaa0c31409a2554ac7f056237b1f818e5224c79266974506bd2494a44850aa938ddc380e3a46915c39a5a0c173ad9254e1a043148939dc0713ea3e67145d1b748422b96490695d84921f13e90045e26a06d5395e6d979ef713c9757ef962962c0f9d7b22e1525f060f9e36c98ceba0a313896f7145cf534ca6999c48143d636a363fa2e2b38924b36ca5c407937136c4811d5eec40830e4d246517bddc6d79f3b54d061d994852e3b1e476b68d9e375b3a30911c2f26a56475b2921df95850e8b844b28f8a12adf5133a2c916cd2acf3ff275522e14ec5919b57af61e49448f6921a4c7b3d89a4329584d4d049c3bc2c89e4ccb5a7564b756e869148f87f53e79a1b84764e0724925477a82875bf5569d3f18864bbf5ae4db955645e743822f9f565838c7d1a91dc75f74997c5fc9cbad4c188a4682d1a64c8edb0aa8d64d9eb5844b28bc785b3ab342a6a56639cf29195021d8a482e5d97645f1adf4e8b13742422313d9cccfcd47c622f22127fafc2c75b4be76263d07188a4f9f8ceb93337274324b6c82525174d866bae0b3a0a91684a9576b1fd60169474102225dd2beb2ff0e163240ce761f6071d8348d2497c9f89e96f0cbda0431009df715ad697b9eff9828e40248605b7904b963b66bc1809c283043bbcd8b1c38b1d3bbcd8b1038c2f762457ea1110897bfac443e72f468390d1811d607cb103043bbcd8f1c518403e063c28903a905ce9f84362d2e1c24b7d63fa3ef921495f86b49f73dd4d531f92332bb42c47caf6890fc9da1f5ac3d58706d3ef2129df5b8948d3985e7a3d24bbf65c983eaf53dae721b1bde72b4611a7eff2784850b974c7e6deef9014de66764237c8b4bb1d92b3752c611736bc8dbc0e49da4d9b52b94336874e87a434df2c1a2e2f88cae79018d57c3409195aafd37248fc34e5379741e53c761c9282d82466367bff770d87e4243fb705b30cb55cbf21f14f7328d177f3a76937247ab97dce416a2971e936247fe6d3ffda795264101b12d6c27693e5dc993faf21398e30d172d99aa266352499d015ef97db73b9a2230d497964bed4a4378f8c711d6848b8914d279ebd225a3e43b256a89463a8c7ce8dcd90a0eddd54bbd2d4c5b80cc91be3c443856aef7cc9909ce665b9948753f1760c099ed4b5e7e7d24b9b15435267d131e7db14c33d0d4362b07cf174727f353fc1903c226364cfaae80aca2f24e668bf06af1a8d37bd90e81fc33c76a60b49e7f13736af3d1e4b2e24e6888866921dd3a6e41612d4a66c9ea7a76cb716125e635ec50b1e2fe69385a4b978317b2ba686f06021e9f6a39afcb3fa92af90e495216683b8184fad9058256edcd3d48f995885c43a5df5bbbf263b8954489afb51a3edadb192a690dc6fa9613e9d77c82785a4bc3b5f8df9fb1abd2824c6d039bb27afcea986427207a53bde89e74e217b42f2a8d41eb53e1f5b3427249a4a96b564503a67a909093a3a7b8c65b9b22613123feac5d4d432f79b2594a14309092363baf98bd7d9639290a44b5edfc854b12e564848b6981e47d95fda0e1d41871112ed6bd365a5da19152179c49b908d6e191c4685c13d7cf030f5011d4448cadb253b8e8943f0830c7f0afc20c3dfc5a06308c9a2554bd7e6dfcbc723694aa14308093a433b7d6e111d3b5e4888ff0e2f7604e9206d0a1d4148be14c7af567f4c3ea4030889d629b89fde68e9990af2638c7128d0f18304fb8be7a7a376b637c9f8b1a6c3074915e7215b2366935075f4c053f2b9be2f854bd348567a20b5071d3c488a335727358355ac5fc70e12735232fec5fda669a80c204176053a7490f8c92d58501a4af9a78c647df38801905c24750a9652bbbe6ad011052a072e1273c624baaf76fc53900b396eb156aed04ad96ab135a62067236f2a3c4614c1e6918cc8618be44d53e59a7abcf246b548cc9eee3a8e184f39645a247ab8a56717afce599d457296d3aefb9aaef594458234d728eb71e94d68b148cc263c6fc358923b162d3fc8018be4ca3aa23da2629a4ffa5724e9e7fde5e84929bbfa05ede30b27e47045e2c7f808df981a73b472b422a9e39bce9fe3cd54122521072b9272dc7426b743bcbf5524c846cfb51c35a717ab22314fa5c5fe98de9f371589eb1d2da51c3cb57614154942e36c2cf7341f913945e2c8cd940d2a8a74399922314be994a6cafa75c3a5485a1d65c16c346d8a85149863147f50a1b27dc68a29410e512478f231a931d77a0eda1ca148ac8e2956e5a00145f266d656e578d9f737ccf189e4a4bf4e84fe30d58e19c912e121624c18727822a9ac2be5ec885131f6912cb3428e4e2427f5725ed1cc324e249a7696d6b096caa2bd7fc8b1896435ebdfea64f2430e4d249cdc0715bd4cddb5948964ef1825b2a29dd8bf9848f8bd103d2d4297a8cc1e725c2231f33254b0d05a2231dedf99bc980b9332ca5189e45359349a7db64f6f8f1c725022497eca99d16247240e39269138a7a2e51221662d77237923392491e4714527b932554a5b53c81189e4d36a1715acad526c235941de02212187c80189c4d1e761635f6a4ba38f484cc1edad4328139b9b23924d7fe8b56cc2354cd68824f1981bdb1c5294ef012de4604462c53a25fa832655fd2828722ce25eb35c4a7ec5d19f912c1191b31c8a282695da96b54b3d2241c6f031a29588e4954d91399cf9694d8f645529277220223188d065ba5b75fdf64324268be3733a7ed84e6a43249c5aef2e152fadec4c4622472192626bdc8ced1ed359ea0c2207219293a7f40d3ae59852e78348b8919a333befc77b67049120c582d062ed9b37465ec811880425335b959d8048ca24be3d67f21f12f3a8f198d3942955213f24966daddc27ddee9fed438258d6a41632c6d1951c7c48debc929951a6a5c5b22de4d843526c5ecaa173df8553a320871e124b6f44a58cb6af1b8e428e3c24b56eccd1e94345baab50c88187e4ccb41511115dabf348d6f6c87107cb6187e4d4b145834ced00c302e6811c754812573d961674e7d11920ffc3478691830e4966a7764d5775368704df1c9fb2222a7de72172b0053cc688410e3924d8a7cce88a2f1d2a71484ed9fa37e6a2c8972bc790030e89b35bbbed3bbb154b31e478437259ea8d798672d3dc0d49f7c97452a9b35a14711b92aee269da644aa75ff7851c6c4890d7bb1bb339c631a5488e3524de5cf855cfe88e20871a122c95cc7fa553de2e8e78a86470052351200e07028140000c088347f6b30133130000000c1a92c6c2b1704c2e90f3001400054b3e2a4c3c30202820140b45e2d048140a8602e190200c08844101503010868238ce94bc0753133af96b65cdbe75685d26d89c53490a10150b5d581f0b31b1fc9823149b65357f8358ea401517f01cc0502415df7e8bfe9592c60838d69b2eb969d8363a3a7c76010441d4ad1548c4eeffdae40e84da30e97196b4e27b59398779cb17b5e42c09361a1e812687c13b88aff449fc29c8805ed61bb16d8442c3a50db33d757064ce4d325443029e17b04a4120857c8416071478b8048ef13446c5ba2744d852383e8e39e7ab2692ccafdca85f0c9d9ddb6098c12a7203a44af32ac444bcdcad1c5498bdd8a93421a020c81035085008b78839917a65c64508429eb9085f76387b39c18a15713b203e09f3093485bbc22801b1b05e189e01efb6c8c5989d8096cafd8d8a937a61b4c1c3034307b824a82e02310b4971954286a16bd0089afd1610146563e7b72a2fffb47a58bf67c6018aaee8b6fd5c84f84eff10f958abb84867b1ede487fbadfa7fc399fe3ae6aa71d87ace4718d0bbaaaf6941852fb62eb34ff86f107ccdedfb6eb919b9c26feeba26c94ebd2c54d435f963dc8d799d011bc08b159a235afb90faf698b70f6be7e14fd118fac2f8352da363b1940e7d8113db2bd084185275304abba52d7072c20b967037959f7f76cc86e0e31699007467135b0ace682de438281b4ea1f0796a096dde64844daa828ac60154cc37315b245d9ab1d3bff43059c5b9f7f1fb3e78ba3a5a76edb72526d20d9f7ed746cf155f887ced0279cfeec6f3cec94bb34ce24202dffb54f74a38410933fff45898ae544634619a4f88fc1a3139709e27bc68a06c54aba60a49b7a9c2ede235af05f3c9062f9ac1e63f93820e594da0e0d943fdaf662b56f61ed99398d491b21ff082a816f48a6eaba9690b489256181c5bf2c8025eb2200ac0ba53dc90ae2ebbd96c043ec43c54d228128c9cc8b91cdb31fc3a667b5f88dc0365e7ceecdaa6a4cf91524f692a6250c773dcdd19f7a167bc8c0e03f28ad6f9251ab844803e1fa47ba40d67662930bfb2271299b369ba1d50f90081e20d012c7be0214f6237d45c606ce2f7a4d2b2f1c02473dbe0322810f2d7996d1553fcb8cf3a77ac2fc2604a153adc8a9fa85a53ad287ad13b27ce71fd8abe4895a6d991e478db46246e234ebf5fd6158416c6ebe9a2fd2839b80ac626ae8ed9a25f53484203d205488f1e749108b3119915ab2c2e6193c4bd3503d1f4eede9c6bd50e0a7e9604e746407d691dec8d0e69a1271320a370cfc14cc889b5e56425a1fe4fd06e643b7b4ea66c677d554b7bc31859801838150a64099c95fc13ddab81a6a9111da1222d2152080ae012fb44629f85aebcaf83fd00050007a3e0ed1eed050c28a7697bc435d11893c91b36d8d33430538b34411ead1d46de29151d6d17f607eb46956d2c82ba9c3f0f736e3e91fb15d3162ce4a28726144313417fce3a0f2b31ef1b51e5ee1903dcecc42333c017e5565f59163ae39571f99d1e98f2e2701bedfd30f0ac4125fe3923ff780bcef96ac6240de61794ed60d6c6a44524c56769f5ab8f0b063688184a1606f0ac63563d5e3f584acaa74c882bfdc47185c239c17858a02451e499900b3a1272dce60d37e821cb96ed8998f2dda2dae5d4fd763e2da3c282804434e6634bfed79a353a65d708fb45c9fd811060f6f30d035f32644c5e3ba1326578dbcbef56a40fdc83904241c72ea0da0d161e974f6130890fe56be6b8984f318821594639bf7adc8e857d295f3c3ea788f3c9e7f5099cef3ebf4fdcf193df1fbe04a2aa9821896475c63cd7cebc37de77e54ff8621c57feb3f5cb1cb7f9795820931fe7cf0180d1e7e5276080184ce3cbe2b10603f171f10883497c503c361f565e325c109c2c49ae4ad1a7e7d89309244084f4d71607663d83b2e1b6cdf1701857b133cf6aba2a19f41d4bc7aea48236ce0b97e5db37f9398dcdfa5cddb6206e63a52e552e5775e77ded6e4ac68bd00c95a8998f213ea7d297b4f0651db38e73a63dcb5795bbc314cf91734a85dc7a7434779d004153527d188b3d1f8264c64bea4d9f912479320263531493c2250bb46aa02858786095f99630a7d125e1c99cd327b413f84692616a4e5b9851c9d6a077c48e94e14925c9e1d577b81911c6a1ae7a1cc93c57ef353ee37cd215eadfbed4a4caa3808cfcc81b7001e213be0c84b7454d579bf496ea0a1aa87fd81c46d3096dacc14c2ceb6456e590e6fe6c2d048e31949033ffa9ca08f125a866125c663ecfc6c025d158888965c10bf7d7736fbd01d79b31c67c471aadf31b754a1eb48fd2a87cb1e83a0e097e5c4b1c0bc2097e909c0661cfaac87dc9e4142e78110773254d1466146ec4fb3478dae043594d4f58baf7212ba061e2f96c029f55e97dc1a3bb105b3d0becda941fa2d378b990bafbca67e447923672d872b06cffe390772731d03550e9a4ca54d0a38c457ccde6218519bee5de2c80b7eb1050d00e7bd706a1896828aa6a68dd180e4658787bc12a47c8e855ba9216e0dc7e5e83db421dd4424382c6448034c4cf7e2f8be54b950326e00857ac92518e38d1278e32bcd2dc62f55a5f3449917cf8537dd97cf116f919de4d6af6d7c61447ce63fbebeadca609bb947254194375a8ae8c0ee34d3eefce92aa00f5b74096208b23fcc6c84b26d7f177a8de1a22b91346c8418677c11d3abac0bdee5e99ed5125d8893833eb61cd6db62a66737da6f79275640061dda8d464fdd26eb46fa756defc7a228e6bb4879eb829fdc3896957f0dd73f03d48c2bf98d09e2e10b3cef2099c395595dc10e3502b0e6efd2515483fe75c30440786343f9a5b3c2a21e6735aacf08980819fa848f9511df23f2548e28a76856d4506e5e463a456c0da959f76be9fbf83ad8cc01fa44bdd0c798ba47c864ad029b32072625c7d9aa01a2ad050697166819f243defc8c1dbd67d2a194a87a36e9595d6d5c7948b3969ba33e8df9cf2ffd8e90cd4a9bf7462c600306ed8c9691215e4b45115554df3d4c789e85e2a994f2c9225ca39b519112250526869bdac0894f40b78a76901f2472ef4c916511801c7f6b881659b8bb1c80e47b5c3c1e914fa9a1675a114c66b41f25c86ef363c9c2e1ee37fc53e9cb287ca89f48c60cd6e911a7ce36dba7bada43291ebd15276b4d824aefb4d6b802f4209a9e1cef81919bdbc5f3540adf69d20cdf5fe4a7b22592c37abc036e0a46355cc4985304a19d98934974b9f454a1189f2081f146f82a189eeb07f489227b40929e240905262800823af401c4626b702af3cd1538e228b5d6a0d6d2909382096f402407ea24311550015308d16008044a970f310815805e947552039909851c30aa7051ec08d374da139a3017f730acb561db57824b187fc97e5ef6378af13dfe82b35cf518f192f560f765cac71b8d69f296503965b91aa6c6030d063309bef07b40857b999433b495c282c5b02ad268c0f74616553dd1210cd26d0b8d89b102e437d5b6828f8d2c23d2afd1fbc036ee05e3d00f0d62d1cc8d47eb229f8611e8da1314f8daa30410c521e696e809936e98462b109b6df5560f46b74d70b6723b02cc0473e94c1b568d169bb12a2880a85f5393385b8da0112b29bd60ca8b986ec2e67119c996f717e5cfe400dbe455142c03c4eb24f426b251a2a3b0475a161f0d4d174fd00b367c1d30d15806c1d510807395d7d1f286770f2930478678b846f7ba11d6756d8d3e81a08974675a25054b09f4a9b8ffa66115bf33add57219541290bd9d87dbdf86fc217abdf61ca7be82b0a2b1bcb06845bab07e2764a7bd482d53f6830d3263e06670981663bd29e77a37fda2ffd8c7526ffb670a1acfd7e4967f6460218d6013506d0009652762dfb8993c805a1b8b0e50c310394c1891da31f25d5b08ab08861045fa6f39263bebcccff4eb463cc2ae23f49c88076e98ff4d80128114908cf494dce855eb83e012b29bf5aa7a0dabd53057c1685123953d4a84039241d4d2010921356c121e51688c8fa760bf85c6ff1409069a9b4c5125c75a0a8e4589a00d19c6920440243293252ab48c7981c23236a4480d204dc11ff0cab6b66393f30feb58f467d0bcf5367d526889c698675ee4f1d2bd3d60a506fb30e8513c29a6918910beb2ecf009825c8798017ae0d3610f390cc48197fb5c61a92f04e49bbff327ea554bbea0c36815874a66da62600ce43ff4c529677c7a190f955bba7ac1eff86345b2a7a56feadb8554546d8c9c88687c3dcbd6529d021028a2a6d627da754bee5ca6f00f8b26c5101115dca14e2503c55cb47cb46de332cb4785da140c156a0b2d7614f82dde3169132df25a7d5da2651f04444135fc2db4ba5420282491b748b8df155946b04a3c0daca52b67f102f0da280c060e0b1b88e4502da5d6da5c53c6f3c2784b3ca39318147703ba1479623084625418a3eb7e0acb2b33974cbd900b74522b96b5fafea4d373a0cc8254cdce2e9f2d3af3edac88bf05a376dd5874c753da98b690c5a78e80c9837c605a3a3bf645da3cf9a57253a087d9829cd1abdae7cbcd619941e7cd19d22be608c5d265b37020708386c9f5f70f136aa1e02d8aaa32a9f99cc24eb24a86a471abb925bb3ecd84e55a846c31c552cc1a68787aa2a0d90db9d641c51beca4ee504a0fbed3a927affb23f3ffd4bedd315bca94ba819a8c6f6cddf77a2a8230af1b1b54c5f354654883ce5ff331204f488d3b8a9fe337200a8510304bb47e0543f82d642a8b7bbd99952154d7d7f8f68fe80980dce85340856593cc426d9df41007cc1bbf75e6587747d5d3e011091264d695ae23d367cb2f321b21fddfcab4622301bd641a9ca2379c9c287b186838663e2d50581b6c549353507841b07dfd7412208dafd2151da28637eebb827d2ae5d245a862adee8180253d9be7903c99b291bdbedeb72305eb2d6adc89cdfd0fa28589aaca3a4f7e17ac771cd79f5495856b669fa649afda0c834b203f1a6935d76be5d88224985b269f2a558bf8cbcdf8f02c13131e5b0f2c5ea35fdf1626bf312065466406e7952bafb96bfe76ef72088fcf3e35f464ae6104ac13d6dc2420208ddd27fd1fee54cabdff8667dfb46e420d62fde12ef894b14134928e6bd6eec823602f2058abb4c340a9678b773df899645b95d08f86638d4b311704086ffa2857284ce93313ae4d6ddd7c925dc0ae6a204deda41e4a05cbbf77e810fe8cd49a203e6c28f26875278d60d3f7c7ca481fe224fb415da141147bba34d8958da2d6d8288a25dd0668828da2d6d42c4d377af5864339bf0472c05be7d37794821c2370b384c5a916e81ae687e1e38b92e04f4db3b4e3aca1a075720b6a4ae05a428e3cf0b91225282f280d1861458cc007c7307310fbc99252a7e00215460aedd4c0260215796f332cfe062fe58352f01497e93ba81e1c9e39b0bc9c4a8d618e308ebcd172d75741b410e4c063492031470434504ba65190f179e91967433f5d95d40043e936d0359de7d7b1f902b3702b8263624100154597e961fa6a4d3fc68889edc2443f4780a33212a7cc4315928cf8908d9dfc1fc6d984d79796f3f2a2a3c4cd6c76f17ad68bb8ea33841af0080e225f6636c208be7b1e1a8d569236b10eea9edfcf4dd95e140a20a669573a028a169542bc8ca967396984bda8cce828fd672ac73e11c2d0d103640f394790a42197322cc0a412903777c1de1961990407ce8fb8ee2c87a9fc0e0e39b9ef1d9732838630c683655bfb8f92169cb1a4197686313ce8c90180144e1310650e4f6acf5f90bbf5d0264c76b9544b61a80aab2f50a353ef49560eaf6a843d75493e604040041325121c3ac18f40615f655e23333311655c22b2d7ac16715bbccdbd4d40128ca628030d85aa507802300e6d102802a61e59dcae462836a23004b5bba8e39b7f2195c1e800f8b162ff016f05c3dccb716bcc4f7ed7107fd84c98b0920c9ac33a6fad5b8320f58e01c1f7973b7f8a757098d18367e83779c4c6aa48a1ca1f7cd7eb87840fe80393daa37be6ef0d552c2360b37315fd7c4ffee1a44ee23463a955b4377b2b7d46610111c61d77241e00eae7489adc684315ca7848be2b082550db8a7cda4156e3bd9d76134051a5d4153c428fcba77d03d92a6d573abdad79666e47423e1682d4cb9d2757d0b35c179493720c87fd233c17128da9812104033dd4ce990a36423e48f1ddce8ea1589ceaf8664881b88d424bb8e6b33a82ee5dd1208a00997859698ee5f7adb23c5274d21b43cdb18da0ee99c5c54e26ad8a618be18f11e262cc15a714082d3b3d9b31aa2ea9364a9251833c4e07603ac2e44bd142787140aab9fa26430f2a72ac9b96adee9e7ae5fbc1674215e977f772de305f1dcadef874e081404b35ce34c2214eb20d4535bc8592f7466d22b407be62c9f5565afd280db34b24645cb69a449522ade193f8a5d35dd200f0e4de6b521222d5b61e4762de42b3fc78dcbde3cabb1c7908e4a719425639be54db0c4531d101cad51d3532a3389b9c90ccdc5a1e07766e77d3e090ff0ca6ce734ea6ec85ed78c55522e639449d8669281b3f47fa8243621b3e166405c86029fe2693b9526d89dce055dc25e78f6d44b4dbb192116dda68a42dd660fe00ee1e41ce8c95a27ddbd4c43033c46cd8d17f790b01377257049569141da6d39234e93026df8d975ac862382d1034495541a609999363719258cdd3d041a0c81102fb5392591f9857a5540493bd134e21cf6a3041c440f6e6e46ca42dd70039b4cfcbc77da179041c4538468b54d9359e1896c3a3ba116214ee3618a2826ad6cd2b9a6b1c34a9f893d15b4ea22a1bf412e2b20fbab37f55817173c732f780ba3084f092ea2c03e022a99d7192eb6c6b04bf3440916e1a20ad06720038de820506c3bc8550da5214a492fb6743063b8fb57ba54af56208914b7e9971faa57e4b1e0c85ec63070e3108954ffa8b6096b893a8d8545d5b4b31eb9b78b7748060fc4cb3db4dd892d473bd27df49927850095b62092f5d4aa570e0fa9020b20c6eba2d1fd8505a60e6608347ad3c49825b1a0c8f26edf7ce475cd2c7f4a9989437db87aa7e7a445c4c3b81c476700e7a2d22b8b0ee3b5c90e25b6ccc73686591540fe11533d5d38d9b5f3301af8923693d6c7ccdae74240d2360451f27e0b715375ff4674d64444ed9cb46f91610ef36ef3f62d5985ad894a880675166af266bad3bd36bff9e6a4a3833359579ceeb7dc912e2ffccce7d9430d59a913ebc1293ae168e9e5a2323ba909686e6366849dd42fd0488681ebf8b8a0396c2612d5a884d037dae3f9572b0715f732b64c63736073ee077f6ae3b5cfc6ae09b23d4c00f4f6098455183d2d2b1ab5c9e752dd6370c1ef0b10de44d1a40ac07980d7fc3215510be792a78cd7e0d5128dfd00a92d0ca9af5418e20518872bb63d7ae8cbf94fcd8b59bd76ac185d73e7cdc4be8e3f8211c4f5d2c8c16ac6fa76a071fc82db1b97b91e8d2e315967ec199193cc88d95fd92aac8ed1d09325cb83240be60f6a5575e2750aedad66c419e436c290d014bf1939e3c56873e198e433cdf728fb5afa96d1a03f332064d7fef90bce5a7ec9c134031ae2081c733423aabee3b68cf8e942cd58ffe36aff9e4f68e6c47fe073f31fd00d89ba25e11e197848957bd8b77ed20d2a88c43f60d56fb031b95ab9dc7c6d6239b8537f6c298451bf668176d7d355b28c8f554740215d97d06b65c849d10689de6f1a00951702c4b4b7689fdce6c2fc0b20a66e5881d87f98f6a9297b6544fd8df7a7b03caa786b5c715ec2c1662022f0551375c1bd3cb59269456c024c73291130937df7c4828abc4c4314164803ce005babe649b29796a6c4d4b6fcefae511d96adb7b35d88ac68488dcb704c563e0a567ba8273867c64763643af63ec2db794f78c0f15b64a8146d7298631e5a8836ec23a296058928dbb0402941a48f975ae4a7419af5b8b472fedab1969192a53a22ba8cf10d3fd4e0a816cdc0e74de1417844327dac233a8eb948e34e7c32c2d61f4ac361bb8354a478be34418e4a5b4f71531b4902f452c16d724954480049df18c1eda0a7286a9832392f7f58b320a22a1a951ba6750819925a92dbbc93b1ec0f5f548162f00ef811fd75b1e493336fb73c55b704e911c1102916060bcff42e61ef405a751904bbb93e2e956400c9bcfafda572c8b8488d48fd29b851ec4aebe0a09137ecd73bd7a4f773315dd50e1d3f6660dbb57b5c4f3632311b9f86c483963f1d84f7afca41f2046bc0405dace3ae01d0a0342f400d3b5291e837196d7e8aa9ac50ff398303f009ca603610d5fb5df59b48712a16062f24716dc23466beb2592c2ee1aeff909dcef0831173e3b8b76188d99c00cb6a1e5314a3fa6fd9d0e6c96500489ab0f21280871fa4bdd604cbf9373d39e43488c6e1c2243382425016a6340879b69b04706ecf909cf2ec1559370609139f21e84928d412417e5b7c4e456ac0e24e2d199182a2f282b2485e93382125d881c6e4fe7dd69501c6f38a58126f97957d3040530278ff544714400052424bed371c2440d9b87400fecdcc2e1ec9bbb4b9015c001d58b092839ba64a23036df69ab64f60d0e5b6c9ce1d7ffb721b75e38a06063cc8f3a6494a3d3c38813897b138bc3a34b84935d39c332fd16ff1d31418d78f54e65b71d496b74380fb7025b693e583d03af4865ec05d07fd77d7af186d92a3bf485268aaf12410da780e7522f2fe3f1a3d31a387569ae39eddc292e190b0e305cefc84416e9b6c3c3981115b4aaed692f9ec92af68a9c1a670e2a31dd7a96e51c44f3c9d9a9d96179b746c0d13f56a00ef00cfcd86b4d3fa6c288f7994622bbf09e606e33d655829bf6310019eab1a9508edc0789dafd9e91c50480f3a0b9e6db86a64945cc0808cd14f46a06fd88c4a34aa0786715f6b4087b29cb18fa74f7d304e43f11a43ac981546bca57afb1207d4a6cd21612deac65ad0d935bc21b56ccdb20006f3dd44dc711381eb3691fb6aabca4441679148d2fbd174c0ade3878561b2945696f4001c4d60e04f4ff9e7c28bca14abf89381a1f71b492746c6b775e9255c01a3c864d173ff361a93f6b999f16806726d43c31e7cfc9e1c0ae3d392f4c531f92885a76b4c99323437661594a057cf9f94687e84128385fd42714fd7696ca87b45c9ec4fdbc255373a596fa43db89dd60e1d19001b7f09876a864b5d27da6ce6b20a9454f9d73d0dba7befcffb7887254d3c40d0b87c3da8f09ec67c0c251cf717111ae5de3a714d13a46750e654ce499079feae2c91f0e3e71a3960d0c3e7e70301c806e8014ef083bac1c83f9705d02a15e9d83f0240b822286105c928821951a008ea43803f04ce8ac2c16977a10ee4ec5a75b8bc9fe46e242f167763afbfc89ea48e502860f1317fb04780fa0e9746c02710995142fca6fc09a1563c5c844830d66ef72b4259cbb28ec2891834a4987490f7831ff480d70b2b2b23c2e7465690cd6c39cb0b5b10959239cb37b511dca9166ede484c6a6c594dfb3d02db4c5ee910478d2341391209f471a5849bac0ba2ebf2d966a670434fb4881c419f0c6e1a8e1de0c988a45415e21869469a66c2de813038848294444ffdec93a384d410c927f4c64246691160c6a6c80259c480b4eead3571f4d845bb0e9e3e817eeaa114eddc63a3a03d8c356e38afe01f66283176dd9b2941284135cbc541e340abed771f5c7609821cee592f3c0561e4d13f19de1afc6fd49067044a8b5c84611240094bc19177d978f4d3fec9ae828d89f5140b23eca08888c896ae72ba459bf427b9e4dbeea71e25838d18950afd82d285de43bf99e812a65ea4ef6824d41d0a218a828a44718b8263694599d19683d1b481326c2e6f502694615ff6dd78e843f65b23266654a8e99552b530a1fd8802da2a0980c5c03e24cf63faed9e069d1ef83819a9a18fdceac458d4c06721981c8a64422a3d8cdfcc2e696103d070dc00b79182975011b1d037a5916630449768c189584a1a55d4acdf3e236aae465c4ea772f819ffebc3af40a415170069fa4a1dc0d783bc0178ab26d2ad421c890a53866436b380ce5c9f1f333fde5c98563e90015bf2743aa2f13660bd20e4fe0289dcc18767767f453ac817fa874e926611e6913a8fa2f68c026c9a815e2e82caae7359611e6d00703e787ee19962f301ce07a89805b4a259ee43c6d04e5416c46515911d83386ffb111dd1468b9aed3d4cc282f88e1ece5f26d5ad506b1ce3d9e70f2c046ae710973126c986fd7156fb5ff9b20a47cd9baa4d349b66b6e9de867e9b12e566069e5ecf37883e62ea50c1727aade2d25e68964ef99dc2c144a2ddfdd893e7678213f10029c856ce89fb82ed0d65871a4cfeb243a783c0a7142eb25732de2abaf6baac90fc8ddf16baa4a404bc455204a48fbfbf5cbee83db2715ed5dc2cd263dd90a23ffb0e39e71f7f698191e6df806b0875bb58904409047d7acf907a12a19b5a1cd58964a9a2d1be1a6026b44722312c218fafa2c3805de62c278ff7b997dd2c00230c5bdb27b76009bb19111524bf6605692dec7f549ebec0e8aa6a4c11fcb9275e44f96382260a11ce1f9c6938e5df4a6676f9e2d2c6ea8c6f8b563cf31c2653ce419355eeb0528314b81e63d9e2515dad96e5772a7938dff13afa51cf2e44cc9afecd2dd534b67afb14984dd3c6b578686c94460189ad1e36c487cbeded3745866f8a27d359ea904965de5cbf9985a4786bccc58d12cefedfdbfc4d7188976a8087a0c3130ed9703f98a4c00ee50b89ca230d10c10b84631470f59a344ae314a743e3d8930c368400b805af325a265fdcd25d405b99882cf3d1a15d4dd058a81a43a9aefbae8db06ab717b275389d779418549f08a45904a1e60345ebc4fc3c11a89326e320c61e7aa02e8a98b91f6c9c08b52441143b684cadbf4c87f7ee07f8ad09e398a87e4fdd26aea18e2f15355be14df2e23bb4d0b471405962b9db2ee9857270dd36415fbe1ffae8f1d157a14a054f9af1b2c5501bd652a768b7a377e821affb7178f315775890480a113c64a00b8ea7ba06563d0880a5f00a8083f3ce851d919dfdeffc32f85936839a581b1fdac6d1783320e223489f20242a5bc929bf32a0e7308e218bd9b960a1fb8fde029e018d53eb3e1cc2edefddb1e6cc918d3143dc331f595c4afcc2a4bfb5bbb9c1300616f1dd3daa43462ef8472b62c8b97e24a9962d95d78c4383a2e6a9e437a639331740308d47b1dad27207168a9793962bb7d9dda2bd0359b3cdd11784eae306858f8d0bdb0ea02cb15e2b00a296131cb3e0cd9dfb5fda9c1c20b6b88cb22c28008f86541d5819f4f722d565979af75bf576768f17a8b386c83112d985923ed0138d6092e4dc7fe1a992e157dfe4bac849d55d79ed0a458f733ddcd2fa3fee265ea1edd188e59fe31d757ab9164cf0784f928bd9d21eb037962c961acde62d33fefe00c6617119213956aa308839ba2b3e773faefcf0844935a3ece98ceb2a0bf660228305b128189546b92fdfcf4222aab3ffe5c11fbd6f659846ddae7ff1e4b6e1909b08bb7d4e845ec6c474811a678efbc8aae75b7df5f9619dc3c04477e24241d75ad12568332ed365f70d9bfba8d0cfcc2830658227e0ba3d7951636f16e38d42ffd9ddb9e1a03710950f4bda77dda6a341fe95086f604bea004904be88a69de977d5a9456045d52f2018d1716579bb78ba3c7b7ce81f422d54e6101a10a4e7dd831b1f1ed0a687de03326fa1e26874c0e5695ddfe18a10586fbd030e67aa4c0d1e98e60d6ee94d68fcaf84b06fe97eafba0120d4343b5cae0b7c7c5ea0dc526f3a5b9d415a6c7e0255bcf06100b14ebbae4b6c6c8434db69d01446407be4e04667e59a707bffe050920bc556e884cf163e6d3ac663cf38705c1de4c44f8e660b23cc9ff6219a8c614af200cfc019870169bb1183092de94303773a0bdd099985b7d47042b9e1f11f83535d5e8480d59393601443f98b7fe740356409e74d853283f00e996060496a412639a768f804fbfa91ac85c2261b700fa72369eb0d7b6078dda892fce533379948cb7c5f9871139d4d5f5b12040f83999280a323a395e1c3c25e19c2281e9e1f3e67c15df0d3e6c13373660794a7fb9024832438835ca73f7a9f11a8be096f4919898b4bf4e00c8c70be46cdf4fd5c00b826373156982f8e30a59442c4a9231659085ee291ce8ac256d35e6b74b7acca88220bdb6b895534eb4e2cbe581a6c30c95966df3e2238f6b71d9803d9b56a41608673ec2114336cb69074b34bc9b5d3472567a9d3589b16960ddf21ef0c38ae381cb0e2bca16c6f7bf52a0083624ab6547ea0085a0718d7ab0f65a80a09314e5c3c586d7051ca6222113bb5a33b7402dd1285c6d8bfe3a21aee5c666f14176d75f63e500e85bd24dec7da19d00cea8319cae5170188a38f896699a0de23fe8bcac0de91636f24fde643814568dfa56abcfb4e69438ae38bdbe8d43dd08a78dfe5d74d3d58c46651989a81870db02dae8d8052c34745ea4a87d65725c4c5be7036c5767a85ab8618ef00128f7a48f952a658d93f1abb1e2c9e7f088de10004891f73b91bf081997511e250a155105ed3c05de23f92dbce85585086f08db94022b6c314d93f2230d57d0d4b0507b23acae81db99812069ead8bf9ed62172f1f01ee787aa648afa9515045814f6ea277cd029925444109e1099d28b2bcbb97838ee0c54648d09fe55a7a44be2236c9e0d4e61ef7cad666b7d3452ffb982edc6771075fca3ae390a0824c091124841f38d92fcdda838e0e070b648e49164ed5a2f66d26dedbee2e8a60a9461af275459e8877dab759253ea070a760264541c2a432ce69a2b1d0e253e73c46221ca5f027365f490c1f9b68986e2b8898fc8f287e34c1f4c19255d45a38512e03a60703342f09ec423f642f94a9d03c17b38b0621a8b05475ff2c42b0eefa228305d097ea287aef86862807dc7656a8711714add1dab7f72d4c8362735689812cba4d02b154893f3509c3f497d2afe86a383915ebfd8cd3adb99a922ab056981a8e7e2e9e053cc9683708c71495e5de97ad6e26c5feb30f47294e86c009fb77540cb32a99a31034fb0de30d5f14fc6f8650e772bf331fa09afe5783739d6bce40933740662aaeeaddf9683435450af8ae9136ecc1e3649f0190a813b12b61a3ee582cf3a71481d2055d934a6576421086bcd551d81342e7b71a4adaa3a364f7857daf8167bb83840e434efc4f21574ab4f0d63193126882508238a8683d4877314b13db6c1281dcddc263efc52ff79378009cec626857ec69b3fb308798f6c95c4e99410cf746f8339612e6dce8fb8d452975804dc93e3160abf506ae482fbd948c1086f4b822a9cd2968094900304f08bcac64bae8299278247ebe4fd40f9d4d98ef88e93c81960829661644e5ddac4b7409a459490d0699d9eecc4353bdda1d77289763c6515a57ac8bf8746c94163c0c9e18a196a258ce3bdb2a02e7c4110ff275d23ba3ffa93e922f60164e485d456131ee2b49f075b2d2d88ac775239fe87572531e116aec0ae5207705a5fd381e33511b8390e635805b35c66d6154003c7c6578e1ac563ad48b42edf36baaf4006cef9a3ca68774b565232209d13eee3a698b1df02386078675f477d7549ed697d69a7195d17618143aaa3c9673548c324a2708f02dec2aa4ed8357e998ae264549e1dbda9f330a19338a5fda164322e3c3d6448f58fcb58038277295e602c3afbc3dbd2becc085c53a673e9346f614cc21454ce4938a65793a31171bc843c4e5223f677d39525d913540c32292b040cfcd9a9cc6d36dce45ff27bddce668fcebd9c33a80928b321b01652a6571b2b99d69fc42f82d41190683b4cc523107228789a7a7b340bd0321ee70e04a0725ae72e2816a6501a9f28a9a0f14b336deff20846af3910b4db9b2e6404f43dfa036f96846a98e984d187fc853e00050ce3254f068a52556d52c75f32d29eb2f1eaffa874fcb1fc7a36a38ad60ec0a12181b35b8a8038b964bc1a3b506b85581fa3398ad9a5410567db88aae411367a70eb848230f250d30453bb4f3acedc62bc134a721823483acc18d68bb8476543d9bed589702bb0d1443802f02ca084c1c81a69e04d1d08cb7c95b4f792e1a9fd0664786573a90fb0a0ea5c86eb274134149d0f5d366851577344e94863b578dc08d98688b548fe82258a97b3de92a662b324bc66e22fff9e61d671190b3f568dd383486da8195e40bf83e4be8802ad3f15130f28f931e38ed6c4238cf019b9c1336ef7f77aa2b7265f8b37f22adf27ec63e4b51a4253d629821a125af3661188dc77b31f82f89cd624a2c86f82e0036645f8d13eb410c95edbc06c7b87d57ec8987dc9e74dcc6d8e5235b48cfecbcd87fe3d8bc38cbe21fc88c979f68056fbb9ec2cf0e2737f32dd54835fd96a654bb304129dce6d1053a081a6c6e61d662a9ad03f1de8c95051d37b01b818e87dac9929b7882f8dc0768e952b8360313ee28968a360c35a367ea4c69cdc67f06ec21035e9145460e3750b2a4d001c33f3f3f3f3f3f3f3f8b326f5bb0cd82501264929b5c9e3196621029a594524a4991c385e615000000c2d61a218406086c806f0e6f0e280e279d34290945394e3c39ef327ae6f6a028eea75297fdf393313ef089c28679b5beb7eed6ebc3136579974ff75ea544883a51ce7533fdb2313dc79513c512cb04cf92476fced8c7260a7bf5e993567c0ea2c4c68726ca3997248ece9b667ed41f99b853939cf25c9e846f860f4c9444d37f2dbe2f539697286865069d5fe2c478a325ec70d2b869fda31245fb205256f7465ed3bb0f4a14369bfece30f6c9f49328968c4ddbd364396a97443106d1d17a6289b143c64814d583d64d361a270912c5586a2367dac50425e81125f549465a283d39d805850f4794bb4383ce56265fd5a61165fd32c15485c888a2894d26c5fd8be9b0b10a1f8b287b28f5d366aa1d73e8b0f0a18862e7b75da56ab452d2771f89288b569351e9e5bf79a4850f44143ba6883897b9f8d21da294f51ab39327cd8f4186287c98cc31dd5c88626fc80f25e676c95e4208b3f13188abb3091e273d7ef721886249a76ed4556c67ac578128c7ccd09f32ac79875237e20310e5d4b53e2686e80f0575193af726f1aa72c7407cf8a1a4a67eb496e6bc1d94fef0d1071d38f8e04341835a8d92379fdc31cf71c380c06af1b18762fcb4b249b40b99b3a387b249534a4b6e69c931f3918782eedd73ed6061deee071e4ad97a52dc09e699e98bc0c71d0a5bfda693c80c372dd9a1ec99aafe3e37c7aeac43d1cc6a2c446e08d91c1dcae76232c933f949966a0e65f710a7956262e43a45f8904349bdfb880855f52ea638942cae94be7d1d99230487d26c34b1f1e98f373862dcf4264d5d1e3edc508ca146d78cda508e96b14b4eda6d639e8cb035273ed8508c267569ebf9688f9f11b68f359475e5de5f63c6240335945a4e281966cf5c436f8a8f34944c4535c6a41bae43a2f8404369f374cc49b346dfa31f67286aeda70b13b775758463c71837aa047830f8304349764c27091aea11b632d20d84430c2bf33214b344880932a3e81df8204339bba8d3f76da7ada3bc818f31146397a94ef6b104bd0eae18ca625aeb37893ff80843d1cf64cb4d92a01136b382f60186f2a69c8c0d7a4ae61233c2868bf8f842e104af4fe2464feb952193038c2fd0176020e2c30b052d535debfa27cab6d7868f2e144f63bc0ca5c3c4b4fec6e1830bd98b72d1499fce16caf5a934bec9d2ade1430b65cb986b74290d621afac842b17673d07c53da93e07d60a1e45697ed73f19df1a6018e32c6f80ae418c1183f328232c6f80a7c5ca15c625badcab66c6afd0c1f5628dc499dd362842e498c3970889c033eaa503851726687a8934f528e80035f20e1830ae5933e7ea5495257f898425945b47de7787af336981f52280972842ca95e64ba308942296c4f491335a8ccf21838c630bb0f2894c43cbbf9f0ea91b283715bf8784271732a6c13c1ebc18713d2b0d574cb2dd5d5cdf2d8ffb5e51b4eb6e3861837c2e8c0176098e08b1170e00bc4356b42b9cb4e30d968ea32899950fe0d266ccf83e7fda0c8cae16309056542c6fd135b379cf9a184c2fbe935cbd1246e64cad871c30f1f49289874994f95fe9da9890d1b65ecb85167870f2414644c4e5d79b1497d3ec2c7118a1bde2ddb94a4fbfe21c287118a2797f6f675d5a04ede081f452898ba385dcdb973d57492f82042b9c4ac12c406f1025f8051be00e38b0a80d149f818424196de32514ccc87104a222ad7666fa2759ed8183e82505c0d3a4952ec7dfcb481501437492c41aebe964a4590e1173e7e50f2ea357db5ae4badca38222f42860e0a50e1c307e5d13ae9233e9eb251dee0a3070531b5c14aa6da67f0c183529ba68efbbec9693f1ebb28bc6a34c1345b9d8c1f91319288183a0c0d444470ec400a78e8a2789de47b9d4d7284ef61e8f01c13384bc62843477ae422fd9ade5fcd24513f63f01548be04767ec30317e552f245cca7fdecd1bc45c14e7c4cd273f0d8b0d9a29cc413e5243984ba894f692dd88316e7310b0f5978c4a2ec9e2f4da6a85935496051de7cbbe1e464f2497af38ac286ac12ebbe0f196e57944d32e1a53f3cf4b6dd8a927c26778e6cc8308d595150df3e62f6649ed1c155944bd0784ae76e4eeba22a8a9ea34b5abd978a72a8add5c69c4275ce5051926e4cace9bec7f74f519073dbb9e939d74b4c51dc18f6329bf0f1284539e81379921c0d2a8a8ce8900119653a9c142519997c3c3cc3f53d8a82cba60a5dedee131351944b5cc3da29e9e49335ee118a92778a0899cc0345696c35733f7f282d493e517e531d26e47c4ce93c513e59e2654cf2373fa866622427f8828047278a3958e82a21632ef2dc297870a224680d4a75a6313361e7133c3651ccf0ae0f6bf25a237868a29cb5835ed3a2353f7864a2bcfae14d94ee7df5b407268a3d7b275ca78c268ddc9ef0b8445946498d3ba2f322c496288c2c519d6bac4cb6fa62041cf8e2121e95280926493f2b2a6358e7609461c278364a7850a224a6f0eaa0664ffc26a1769ef5f72e89926776e60fad62a3088e1d5e8647244aa553dfccefe718330e897250fa7d63b269306b1f51ce244b45c9a653ff84da114793294b28c15c3efc30d8ab824723ca5e17b3e14dfb9572471819510e32ea63c33c47dd7a1125497e14919de1354295c343113ef04844da3e4296589a933c9729d6ad7920a22427e7aedcf42f1bac5c41781ca2d83996a4b1448da345f73044a9e24e12cc733cd1340c860b6ee838bc8347210ae2f4493a28933ad90977c183100559bf5bfef9d49c8d6cb816c26310850d42e37c060d1bb5ece0218882d63d2d1d760343cd2310c5925c9375db26b5c1a40d1e8028d89a2955919f4ad4555483c71f0a9a476e4e3b39a3cd08803478f8a1d849f7959da90e0c1e7d289efc90ff27fe050f3e144fd07df7501e19377fde73bb9f877622f0d043a9744eb11332345b4f234c82313e70e69887b27ec9f626fc26dfe081878216f7547dfd41a5db6bf0b843b12d949b5af318111a3378d8818dbf1bb4097d76d7a1ecdf2b1f4f5072f256cbe0418772dad693257a92a40e9a391484126ad288891db5cb430e25dda524419cf0563de25046adfa1333e6620f3814433d977f2e79ee64bc285a183cde501eb54189a6abf2d4adc3c30dc595d13d6382521b4afa3cda504cb139bbf597ec8ee24863dc501d9f2413583333b3326f5e450fa44044003ff06043a9e40c2f79e44bc94fe2b106b3d11e6a301b1e694043c3799ca1bcb175da334b8ed3791d593ccc50f8a86f1bb23da68e65048f3294bbd2762f460f32147c64926492c6bd74d08d701861186381911d374c209270f01843f964ffa9fe2cd24a2849d344c68487180aa2eefaa3cef3973918031e6128c68ff51e6a7326f1cc11fe04041cf8020c1d608061c346e900aae0018652586b7a9813c4ff37236c4e028f2f144ebe19939e412f860c741c19e848107878a130ae72571a3f65ce9811b6f38047178ab9a79a5463b6b69b3770ece0423929cf50536ba7fd1c651cf0d84271664793ca97b2e0a185d2a8e791d3962abafb2c14ef3487d7f324160a3aabc9878e5bc1e30ae5f7bc97399d18aaffb6029bc4b0a1e3c9f13c6678f0a84259355d7ac8cc34d9ea2d7850a1702749191feffa94d6d8e03185829027cbb5dd4e9dcd27f09042497f3e935f4b4b63d47cc0230ae53d49deb90e1a37c1030ae574ca63ec3ffcc99bd34cf07842513368b78ea91fd4c61e4e28aaa739afd1f0d4b91a616b177834a1187e7307bbfc701b4e1e4c28ad758df853a5edd459038f259c8712ca1dcd42c3e63749eea411b6bb197824a1dcfde39e333e6bdc3ac276db020f24943f7f3c891f214598f4089b8e239444ddf82b2a7dcbe4c2f03042515d83f24ed73ce1b2177814a19cd4373506a5438482e734c24c700b4f7e0fa1b8a5e306ad5bdb314908e518c6fb44bfc4f4ff06a178e6fe39a737fd4d2b100a2689d8dc72cda44af007e6c6ae589bee7a96b787fb66d41a8db0a11fe367f0aa040f1f94da649a0bddf9194d0f0a7e6fa6215d93dcb14319402f9217003678f0a0781945bf83decf8e3278b18b6236d3c1a45a074f4a70e8b061c3021bf8028c2f30a08b5249b993b9b33d6db7b9288f72cfb02649ca5364b828690d93637ef1fef85755c18b5b144b4acdbc99dea348cb0b5b1443fb8530d98454f0a216458d5f2d3f3189fd7a68512a333b8df16544ffb3289912f95227285582d53703111ab88e2878218b926c3ea935ddc8d071a343873fc18b58943cc68e3f4a0e1fef2358945443eb8e8f9d3e3f794549f7de4b4c99651d78e18ac2cf78c93ef33615422f5a5110cd767d55e79aa515810d5614748c8f26dab48453df2aca396f9b28f26434bd51534561939279ccf32a4f6ce741f02215c59f13cdc1e3c3e79860c75f00158591495daeba79a7eed8032910495e9c02cbbff89c466db6a628fedb659f9c6f94099b52945bc3f4abd4264539e91c3e9e7a27bbd07ec08b51f8e15eed9679a59bb32b195e88a2b822ba53998c89ce3e1405a53976f375a9a80b81a2e06f4a888c97e8bbc9274a3b734a4fac0e9eabf1c21325cb937f9561739257752f3a513a91a66592b0a31773a224d63f477f924b8949df4441e612f67d4cebdbc65e68a298f394d614196f4ffc3351be160fd23ae7c62c260af3b13a931c83e9522f61bbeec5c824752c51bc3dc993bfcb785f5d09d380179428f597f0fe101d839cf016c18b499435467349c2da5f9b8e24caa731c53c9f68d28d23514e5782d7e6fcdd5d5efdc00b48947efb3e368f1c3926fd88824e92e9acf69284c7124714a4aa6f125dd2aba6a6118519d313f5e1e74b4819518cad8e49099f2ea254a34930a13cdb4435155112aa64850cd3a9b7bff622110559993fc9dd3f39f8271151d8fbdfbfd574926fce218a1dbbf54356e3a98d31447963c692358649f1d2b31085ef536ac4e67cb3f48428a6531dac84914178ce0ca224c2b64bcca65353aae885204a3ac926ede9dcb52b76208afb49729d2de90429234094ce74e4e3ddf76df4ff508e19d3fd896692ccb2fba1a026d5c9ecf8d94e6ffa50dcf22f6136c72c57b23cf0820fc5b4cfd3d9d11a79a236f0620f65dd51722a4fd923add643d1749db68ca325aa6116311a789187724cddd541f3a86ff4f01ce0051e0aa6e92c547a7c755ed18b3b144374bfe9f550e161dba1ec613bbbc7972b6da201eb96945603c1f95cadd64f9d79d1a43b6d5ef5e40d67fca020367f9fc828c22cccf04131e6d26219e3a6ec241686193d28a7f5f59f19dd31d7f32fcce041499a133aa61f6ed5ba85eca2a4dbba45966c85105d14e63e93ce1adb949b2c17e5f02749ed1ee4934c135c94e4a6ed8c96eddc41798b827a7acb60524d36eb6c514e82ae127ceb5a9463f698ed37d4a812d3a2f04912cbc4c7a87d627816e5f825c868e97528312b8be6ae2c456ead4d2d2ef4fcf2da4b92c22d9421b128e8d2f458529e70629a7414426051327df322d747e6f4be0221af28763e31094a69f9664dbba258b12acae6939eec1e0521ad28a7d1d1047f2f39a68db3a2185a4c1254934e2757ada27babfab2cf33f14e9f3d610a5145c1c7facd4c4ed259e684a4a2b83ed237a96b21a8301b21a728e7cf5efb4965424c513e31e62f57d1bd39a814857ffb8f49c9cc601b2245c193f84932de2849929051a4b96b6fb959a623e2e55da7dbb60d1145e17dc7e41053da4a4476d4e0c74831c4c8c0de23424251d06ae36b92c94240515a8d79574da5a87a0e06120e1c39406018f2897b459458aec86884433c5196d689cbe69c89ebdce8ba6dd23106f35c0b423a51b219e57baa4c18c8378470a2dcaf5a523dc9e9846e36512c33b1eee49cc3cb89347123241325bf5813f3553f6fa2104c144643d5e2d2c4448d219728cf49ba26499973eebb0e422c51104d1f84a718cd9d3acb4448258a638278afb1b0fb450c8310428992a4d4b4456a725d13343f624470b8a07d103289620c7b9f4da17fd2278962e7bc66ed415c37121289b2a8965c1b4dbbc47443a224e6297d9a4447dbe67a4449509218aa3b8497160881e6d841c60a421c51d2af9e6a73a61b51526fdd22a662942799ccb1838c104614d3e4d4f9a574b39c6911c5ccb99465f87ccfc15744695caf94264149aba924112559cbc5c453f7245809224aa146c7ded1f9373ae710854b0ba9495e3dadcc3144c194be519bcd14a2645521af74949c41a80951d853928717f5d6717b100521d647962cf193905941949326f78fa5637e983710a5123c9738fd98499a1410e5922c735cd6f66ea47f28c506794d52ee87828e2293bafeab4733fb5036494ee2b628419e60261f0adb1b165efa1e4abaf3d641e8d6d11feaa128e77d637f9937495d481e0a3ae33b8849131e760bc143397b697d2d9d94e99185dca1983a083db169946ad209b103a3e15e3277155287e2e57f89db36dab6dc11b60e84d0a1349a930ec2c4ef924a2c640ec53842fb293109254ace47d86cd8d8f12e10f9020c1b36c258be42881c4a2fe399c9a3ebe6c67128adb8fec6e9a7d58ae0500ce7f135b59c9b1853216f28c87f4f6d8207a95b9585b8a1202b22ae42681276fc36145dbde37594509274a7103614d784e93941b3968529640de5be5b3f613bcca8ed216a28babb5be839e9cbb70e49435ab5b3b566591577a15ab2a3a44f22002e84a0a1b827850cfb249e9fbecf50ecccb7beba3d5fb22b84103394b2c3497276f2b2d774078494a1b4a5468526f1c49f94092143a9df7d4e9bfc4f91766620640cc5dea03dd646697197c5501a4db2cb46e95866128682857e4f4f2b0d1b4d3094ca44886f9ef17bbdbe5018a1439f5ce2886fef2c0d215e287b7ffaf0ba7c1b1f8574a1a0e6ee372c935c2809935e649c20378850821783902d94aad32e4eeddd7e7a3107215a282941f474fece1df39e8592f8edf6993b394a2861a11cfdebcead47ffb9778582b291c964cfabd7fc6fc0c0d10ac5f5d8fcb69b37a9c66783902a94a4f178628f3293e4893aa8508af3526eb1da65ea9e42b9ff642a71b14aa1707b2509f7b1edeb41564648144aa6dae4ff9af99235f106215028c728a3c3fde78535087942e937c96b57dac47de5236c7638429c50f6e46a429cd6336d274d28c74c2789d0269e984d5e4f470813caf3774a6b8cd9a01d2fa1347f65a1f408256895503455d725a7125cf77631429250f0d46b1d3ec87ff5d805482885982731152d49accebe20e40825494927674febc031c206831023948448d3fbb876fa353b0cba1c214528b99a6ef236530f42885032e94b06216c3b8d49860c81d570d395cbe8e9b742bcf77a297f10228462bb8dc7ccb28504a1202e4f9fe823b449a1130284f2ba285d427b0e32ff26e407051d274dd84cf3dd9914e28392a074d071a64e910be94141f565d56a34e1fcb4213c2875897ffa7e4f1ae2efa27c9f04933d289374e7b82e8a9b2136fadb7710ff72511c932bc47c9e9a99182ecaa6549fdb9d584a52826e51f290a51db736105b202bbbab7b792d97731e1f359478ce06406a511e194e09dea3aada3c5500a145a93d7e2f4ec974239352009945d14e5cd9f6a5691a25b22885c5ba77a9ec099f82c4a27073add725f7f3d50a0bcf5ede3ef4332f2ce3b353a7da24ac268da9027945494d92d40893245936c8d300e28ad2ae6806bf93c3e405d28ad2c81cd47a959cda5db242b7eacc530f1bd32bab13ffbd4d8ef9415651ec3ad32ddf415514dba3e7b7b1b593775f01482ad0a1a7e7edc43f6154e8e6259bdb98ac21e6290a9fb39cbcb9733bdb3545f984eb09911f2a45e932864e629aa8f8be0a428a93781b3f956cd8236cb94c8618377014e5284a189dbb339c0c7fdfa8c16320c7d30007074e14851511baa6e44bf02b91c0860d1c39de0663e018c3860d3164300648288a73f2e14aed28414051f68cb1366914f577be7fa2f4b249e918ecc42f39c78f2439cc8b20c70e1198718e1d3ad013053d11ba3d852c86c8181f061b1938127d904e14d3624bbe1355256a50c100e144f97b464ffc3c9b0dfa9300c8264a42963c3f1e3569e7c79a28fc86490f9f4d3494fc9302209928dcb9670777139d3916714c14abe2fcb6440717378df161889c5600e412e57d8d31d6882ebbce2088258ae649752725c739cc485289e2f8dc4739ade5d8a18312e5647d6a269c656a8c8db0888e1b673e8992bd276531ab56e9d111462226870bd4cef873e04834002289d29624aaafa69ad48cedd01189d2283317ddbcfe69930a89e2a68e39a952274ece503ea21c635e91b521a486924447144e6acc5f4aaa30f199d346943d988c19bce48f59351d8c28aebce7a43967f411a211361411d95b44a944bbcf2fd9a3f46d32d00688224aa2e5a4b869fb4e263d0b8024a2245e8737cbbc0dbbe9089b8e1c662411c181d234c70e1d8888d24791a5f2e4c7da8f0e51d618554ec3492294b48218a2a06435b14cfa6993cea41025615c4e12e4de8428c73e8d49b5e874b179130ca2d423664df06cb2092f19610bc3e470c11b32cec4c881c302de208240c7984249626a84adcf6420b2438cd4170009c46a97793d16c99581c8ebc861c848f3000820d27fcf693dc9538272fc186364a0fe50fc306a546aa6ca0f4537b14279dce0df482a02b3de2146420780f4a194194d923de6b8481a1fca3947535fa163e5e3e7c880c0860d1d39de05207b2867953a612234b41c7a289e30bf9b377de7b33e01570fa440e4042079d84e787451b1b13120782885c70eb549748d96a25b0340ee60def849eaab1d597e00c40ec5f44174fb093bb6e11e61d3d1752877c637f57832c9be21103a1444f7ac79072526e141236caa0090399442b68350dab1ff24510eb798c5272587a76a129038947fb466974b93a25a32c4b88107040ee576eba033ff7b83f4bca158b91d279932ebaf1ac40dc5f190416932b962d296dc18c380c0860d1c698c1b2208d2864df03bfbd1ccb0a1d45943951a0fad553268bb86a27b9afedcbd19b43e1580a8a11ced457dfaa4935c8dd9b01146189f7820052228004943694e7934694dd0d113f31813b061a38c310c7a20052205040da5ddb82c694afc94221b61d31d62a404809c016d1488190a3a7fd69914bee1455f0394011b391048195611adef969935f7d4c16abc73ccc98d3074a0bf41c6df2003476281107c61397690f105103294b773a4679051a2a8100340c6501c6da7e66356257b327d08d60532388f74871809c900114331fbe4b673af1d159a24826387085a0640c2508e1dbeaf7458e7feec081b0240c050902b999626c37fb8ef0b85338dd99c4936897ba1349f9bce74ccbbe048d553a77f63d24408878700840b879beb4d351fbdde081bc2b1053487acc949d6acf307211c5aa8a48713637763e8940840b2502ec9c574cb49622a990c316e88a0cf614674348360613d59ed6a4ee61dfd4800728592cecd59353f46031c6184614674b02d88158e39e84fa643ef3c8a430c1c39c8b01b0148150a235d4fcecc1df24565054285e2a5e87cd5994d8d9d238c6307da14ca2e1f42be12496eec303b749c1988148aa644873811f9f3d116d971230c3274340574fc8e328e7a200522071285e326396b16cfa0de21031c65983040a0605c7dac7a8be67abe7e204ff8007142e954ee6806b58fb0952d00a409254dda631c993427e90d4098508e31b94fecfc7ffb907183065906c812ca99c2dcd44a549fef34f8313e8761144094509619b1af6a93a3cc1a61034942d16438256a6c3ccb04102414bd42afbb66fb64758fb01da124e67bd2f7fa9e212314d6bae72f4f8c9b925d0248114a3fcab3eb866b3b9d264249a5a8d54eab956eee1d12408650bc12ef4918ef7508a1e47f1a55d6724626519d114082503eb792d7d4e797743a2f0208100a6bb2c8bc76f7e84c7f508e417ac9d93ec767f6407c50f67827b87d12a3e7ba46d8708c2172e71e48818883f4a0b899194d4ef6a0648e7100c28362107ae27e869aedfcd9453109aba1f6d4ae8bb299fa245b59ddb79be4a2e461b9316cfb3bdb36c2f6818b92e867621c51a5915b14e4ec4c89af94d3c1a32381f0618be26cfe67dfb8ba8cd1518b727a3415193a3a6e84f13b6e8cd04064c7bb80167d7ad25e42277f16452b53d2b695300f551625fda0397e431e8b829d989f4ea4094de23bc2763ef880457143d668f268e77b370f3e5e5118f7b857e24aae28cb874ecaf5940e0fa35614fe44ff603aaf47b70f565c9f8f5594932efd233f7ccc7af7a18ae26d99ce172f35b3652a8a37772684081d4476ee03152549ab6c86d165724efa384539779b3e4c51d0c9acf48eb2cd9cf3088be4d84146e1c8b1fa518afe20459a8f517c88229eb65010d1a74e9284b92d79d742c14f1e75160a32debdd87db00e15eba006160a3a9c85778d7c034709444c8c1a572859669254b7fd6f49a2dc831a5628d998b811ab6692146d3f078ee40735aa50de384a6e3ddc6586870a25c9a4d3ab7232d7f53e85722a49d8958b580a88d5aeaac8677abeb89578e613c5ed43ec4e5128c89537f1c4e3579d7e078e304460c3c60e1c61e868ab0185c2debd7a85fe84d2f8698f613b492243e784820eafab41a8fea0476c82235fb5ef6efa1ef256af9959dec48f9ea833a170159f9ec30825e57ee61a4b28ba98c7faac2342ac5342416df3ac9ac90dfb66124aca73f018eb514bd58f843b3dbfc653d34a2cbd6d732f6c36b329f5274728791821bba4d9d8b3aa110a3ba7bde24dd99da0ac518452aea992e4441353ab05a106118aa146798d76935bf16dd80040156a0ca17cef7aa6e4a819df19dc405801ef334f0fd4104241eee8d3ff2cb1ee7f108a7962eef1568d633e42410d2014df6d6ce399347dd3ffa0184e88bb13e3094acc6a0d1f682bb2b3752e175a775dd9bdb994e6dd89cfd6e841c994d02fa62f3426c1a4060f4a5fb2ff9af45a9e2503060b68eca224a322c2be47c6f9f808eba2bcb39b53d39324c7da9d0c1ab928b69ac9d7e94c755d828b62278bf74ebef672b25b94dbf4849356b6e994a02d8a69e2aff2614c1ea14b18d0a8454166131bd9b817a667cb005f408316c5b99db34ed2be65500a03078e13068d5994f6b3f79834418cc91e0d5994d3e98c49277372dc3916c5b01a348babdb6893a5018b62869251a3aedb86bb1b7845f1effbe41873092664940387c818393e036c39be3d40c31525c9bee6dbc46cee986f45e9e39ac56cdc74ad39ac2889d669ecb7daa3d59bbe024f461923685e4541ae6fcd668c26c49ba8a2dc6994b9bcf7e831e15414eec45fdd095ba2838adee2acec35f4ee64cf336dd53445a5978c0f086e8441860872ecd0e1344e51b8ba4c51999338ed2153145f43e734bf96a1a4be1425d5ff25523c86344851dc9262aa55a29a8c2668a0318a8269f9d8df24b3e4f4a228d588df33cd2723ca1ad9614060c3c6c80e43231425b1d125474f3fc2f64806617c0e32b86980a2249aa041d5a7cfe6d0c80e03821cd961c8c832765cd2f844c14c937d8b1608c11745c313c5105a279f30a723d0e8444967173331eca8a67822641831180334385110b641a49c48cbd88156468e10746fa2a0dccbb3072534c2a6e3469b8e306eec90c1036868a2b4417fb6740c7521c399280913724ed3953430510efead226d2ce487fb12e5ddac639df38ebc3cb1842283d0be41e95a89d28e3831bec814b3fd2951dcd5243eb39f744bcf244a79a1e9426cc8d2de25511a29ba4ae8aa9128a7f549ad9b4a94c910248a269f9d678dfe495fe611a54e9aa749ccdab14347c311597ba99d8bb8e8d9ba7927f7cee193a46435a1469466bd93cbafc7def46144617c93e6523663a7371a8b28cbecdfad9c140d4594735042a7d3164af62e1a89289ef694276bd2d81713224a5d92984ad0992773598728b89d6e0d6d82b0f9942196d30b91fbdaaadaacf23ecfa2f394d526691582b1fc34fdab9d454c871a21dcb872b34e2d1b0b79d7d84edfa14c78767610c55862ba09516f9aa42b887288999dd7ca0bd5a648de8e316ee000c19a89d00844f9ac43e720d7a233e72c0d4014ae9454654a9557a0f187a286be96ce27742cd0f043c1437950db70bf40a30fe52f51454b9be4b164990f45ffb8e973f093443ac68d1191b7c10d1d9e01b48762ccd31274525288b4901e4afa93c5adc91ce4a6390fa54de29e584d224bf28b061e0ada297d4785675129dfa1fcf32394c72c19b2363b94ff2441de089de4b6447528dd4932497f2df14c52d3a1245afd9e1cce947d8e73289ed0a5e6457e1431b91c0a2608f5d03e3fd2528f83b9239a35eb6979babb6d32ba70288549e2685255ba4b8cbea198f5d36f69ee9c439a9881861b8a4155de5f937462ce1e2bd068433144092977192ca3c186c29a68e26fca87c61a4ae27b96a677457307d550d2b5fb1899ae948c8f461a4a9f719338f2b73fdf4d030d25a5c2e4d251d5ea9447e30ca77826115a6543c30c05693a06cf1c74a4a7b20cc52429cf9f971a19ca23537da8f75af939c75038594dedcd9577ec4a0cdbb7a9eebddbe97ee8977471778d691a612896a061622789278ba734c0509cb75653721aed111f8d2f94d23f3bc638217227f68256f9b661dbb6b955fba1930997996f7a4b34ba50eebe12b3cc8d413f8606178a416df57c1056afa7a4b18592e79c63bf9b5a9a2443430bc52a3997e441294fdfa72c94357dfe67139f0d1bd391430660d0c0021f5ae2f2f6aee55e22d280c615ca258912ccd24fa9f9f8b50e6858a124f6cb7790fa23a3897240a30a25cf4c3ac7424b2ca1d1a042717e355ec77bfe041a5328095193413c49a399275da02185923c62de93a74cc2e4570834a2504e0fb13f4af611fde124d08042e97395a8dbf424c6cd4f28c98b0f25dee6a4458986138afda744d3d5ce892a8f46130a523749d5e29e64bc8bc88492246a9930b78de3a0b18492faa9d8884fa2a184f26e3a59623a2175c35915a091843f98e423379c90500ab770fd24bb4a099dc6114a555f9292269eed5e2702348c50ec203eedecc9d07227348a501294783d4d42f6324c8850320b25989293cceb1ad318c2165be561eead2faa6f9bcfe4f823abe64d34845074539feb41de88fa9046108aa3a48f956d124be425420308c58fbf6772fca8a75f0ed0f84141ad7c7a1343cd5d4614a0e18362096ae7d673b48c15d1e841413ce4896994181a3c2849198f3fd1e419bb286c6a083db9cd04bd715d945ea47e08f5269acee7a2bad09313cdedaaeb94516ed52709611f74847051ac17256f44a7c898c3336e51f43d9b6d511cd9617d2e4d27e5a15a14f7bdc48f694d9e5cb2b4288e8c5ba6d1e133ba9c45e14ece33c7c8a21cc2367c099ba765632c4af69762bbd9469a68b028cf89a54ffadb5252865f5190276b67d12e173ac4ae28bba68d0e324b5092aa15657acecde6c95ca9b68c8c95fbb5b9f5861505a1a58312be4a366c5061c62a8a1faf3b9764a7d35daa288992214d90b9c4c9e94a055f7225a721d6b11df756ee338327f954a828972062e642afc78de3294a32889af809514aafc914853dd3d998272a4549fadbe6f8274f8a725272887bcff13dcf1e45316fade68e511645491232f3a60962d63b170a5ff575cde34dad3ef557f37acee281a2203d93c9137dbb7ee527ca62566227f5b1b93cf6443975ac1b5d42942a49d909bde2edb5cbd6664b85bc66fa1239991345cfa8279b18a5831eab073336510cda35b5dba9512af43bcc0c6ee4204344c4032910b1314313253987659a293337c10f23a9066664a27463e2e4db5c80230c9c8189c2d7e8135e726ad5b91136c6c1814b686f66df1d973a761d1fe61ec3c6b8b9c005383840060e0fd8b0e1021c61608e1d64ccb044b1947f29ef701f73469851897208ff1073ad0a59f23acc080858c4ca984189625c9793c2af3cf68d236c61c8400c1c0107beb061c3868df6400a4472cc9844b92acb9467cd399dec0c4994c2f4b604b97b6bca1489827aea86dea693159a1990288971e77ab4df7b6efd1185f19a8f7a3a88cce174444928d3a554d9a98d288b7e39d55527a6513e27cc6044e99418c446d36c8f1847662ca27099367eba124f124e3a4311a510914ff59a444dbb2314f04414935e68ea1cd488fd201d677b8858f3ee36ddeb2de65abbdfc47c82125ca3c3868e19872809530b0b315e21943682198628268f6632fda65937b910255f8f6225e6e437b22744f935e8965cbdf1c409cf184439642a55a63b8228e651d5f873a6198128483549c5dfce6a2c9319802889cd9de6c9f4c418cd197f30dbb6bbe56bc6ecc35bb5244155a7af11569d1f8a2384f5bea9a7273933c6c300c70ed371438cec4341d664f83ca73794326330830fe573f78dfb49b50681197b28ee5fe7cc9c348833d1433945bf7dbbec7a943b0fc54beb9359ba83669933f0508cd1621b73a4a6fcdc51987187d2c6bccb24e97dd1e9d6a1c38401861466d8a1287b1e459fa7a30c9384197528977825c6b2fe736539830e7d57cbb7ad5797ef6739d527cdc6d767cca160926c7529499ceb7228eca937514de7a77e4f1c0aea4e9dd0b1a3702867faccd060c2b8ceff8682eedef948ede4d1366e289624266192ec9441c9771b8a27c99cd63f099dc498c486929843998c41491f4c50b206bd744f3ce32a2b4ee684ce655a94eca24d33d450bed550e11a4ec7cc6d461a0a6fbf3b9b9352f39d040da5127556fb71b6e47e86827033a504dfec5b159e3da6eb3c9920cc2843316d65ce24a753f3277e0e10cc2043b1fb4daa53b2c4e9aa9b30630c0569efa13a7ca893b37e314c0e038227a38c11dc156688a134a3325f85b2350c852b4ff2a9d1294d9ebd0b33c0502a7dc2ba5ea8236c64d88e1c384050460e1b367c30e30be518353db6194d46d1d34a00c60c2f14f3e4b09d265fa26146178a9a4a6eab2c69c4076770a128ee99b93dfe6671d1164a4a6cebf67ef213b6b419d8b09136034c2d94c3d7c93449bf6f382533b2509ecddd246494787e262c943c6cd6923ad3952466c6154a4aaa6f19e1693cc7a030fe86056cd8b8f5c20c2b14db2431c6bd8ea6d32a1b366cd8286347193b4e0c33aa502a41ce6c6611e223752a9447f676c678625b7a69c614ca1e35a9fa2094895fea19522806fbad309de37fe734230a45d15f32a6d3ba0d6ea51b6640a19c5e4f3ed964d0bc570e339e500c9ede66afb14ac78d0e339c50103fd1b67ff2f3b4c7c38c2694ae24dd59d2c6a463989950743d1535f9194b287a8bb412a6844e25bd3394508cd53af9d4b7c74c910b6146128a63e26ae917ff9acbcc404239dffd5a77d53a661ca1a47feea478fc869a6618a11c45458c18ef0c6afe34cc284239e899cd9837b7cabf4428b569505a4d7c1b3ddd104a7632e25273cfe8ab6608e1b1f02cfed95714cc0842c96e469798b0287bda108f1ef7b3fc576063329bf016b9a25c55a2c53fc9373ad48ad24893e37326692a25ac289d86ce37e9319f4eb28a72127349d283125514beaac432bd67224d45f14cf24e13a496e70e2a4a621c25d4ef5dc4748a9290a14a33f535d5c614c58e61837e6ad2f1538a924a71bff41f211b5214839263ed97d267a38fa21cac043f31cd248a92091ee7a774a1287bd41825e62741890e1405fde1a4ccf0ddf758fa44f9df4cfd4c30b9664b9e28979716bd49de5852963a511693af24399512577b4e9453eca3994955a2279b2898f79e28ea1f279568a21472f3bfdb9fcedcc944498f6dccfe2ab2b68389e2c6cd922ba749b87e89621459a7cb4bfab0b1250a4ace79e368eb521757a21c45a7e7a049cc268952a22064ba66a798b0ab4ea2fc9f648f1d5ab3367d49143d98b8fcaeb00bef235150d2a62c49e9d5f2d443a224c778b86c9349eaa44794fc575c47937097be23ca2b0d35a2b4593c6b6bae919ec3886292c4dd860d4a4f7d165132254a0ee2454594744e42c4f632cdd58928899365aaf9d7e5494494f4427da76692ebc14394d3f548d7fa5192b4210ea23149635d21cabd795428cf224294a4ff2ed973b6ca68a14114935ce254e992204a9f53578c8cf9ac3c8128d9898ea1d5014479c37ad8be0b1952f387f2da8bfeb4d7b8931f8a7baffa3978c934bd0fe560325737f6aba8f9509ed12156657e3bed3d14467c6ceec87a285ee72f4963f2502c733d7963dc27c9c543517409574a74391dd73b9452d684bb139460b2daa15cd6a361f427fba8d6a12035a950fa94ecfd291d4a26ed4dbe8eb9c3a67328c8e8bb1bd38feea71cca733752fd4445451987b2c6cc247c1e371d4b3894ccb46709d1a12b63f2866256cd2f3fbd9e24b9c40dc597fb929d64491b0a6e1d47c7f6d6632c614331e75462c62a75315bb286c206d192736cfecb54a286f226b983a7ec2739494a4349941d93664e95ce263420d683b65f093a43e1bd6c2d359f60d28919cae6d7395896f2503a6528a60cf6a2171f83c790a1a0eec19414f2338672c84e93db6ebb49fc88a15c1b4e0a13e361289624d2640a4d993f05437937484bd1d993dcfc4251e4f9893a99d5217aa1e81a53a88d3fcf77174aef26bcff3478588f0ba5cd2735cca7b773eb6ca19ce4e43642e9f6a494b4501e938f63a24be65016caa5744e63528f8592ced1b46444572876c8a456bde239e958a198c474996dea2a146f34e89eaa351331158adb260999f57bd4be532828d12b69732a613469a450a957a62e4d140aa3b367cf2cf2a73c0385929b8c4f334fadf97f42a9355544ba4e282713ce45e7b609c5d19339ec772694f74e923ab32651ed5e42b1e664efe910b2474a28e7206d473f34e89984921246a7eec76e002414fb938e9ece2e3446dd0047287a7abdbfea5b09a21bc00825d135e2a9e4f4a2e4dc004528de9cf0d43a7682dedc00442887e87ca2dae8ca1873030ca11cf2ef5c6b7321144bb47cd3a82686681e8462676735499780501e93a493e48df1bd04fda0b472a269e4952447890f0adabc2feb4fc6ec9b1e94ee76bc84d00dc08372ce49addecfbb286da58e1cb941775417a5d9d938537332599b8bd2c9a83d7ea684a971518c213a5cf7247d96dea2682d6a26638c6610daa25423df9f732afb935a94c64c4e623ce95346af6951ce9a5235496faac659946c6328eb68a2b242b2286c52951ffba64d2716c5dc1b3f1d16c99bd192e42c79454912472649c8c715254d82afe674e399f556944ddea6ed68a14189ac28b6664ca6364d56935b457945bf573fa78af2d97b6810ea647b2d15a53cd96bff0c1505257b8941d74cd966a72889274f2343f4de5b6c8a9224bc7cdf2c2e45498c36b625a62db97d52ac27a6f2478a4651f053a28cb4b25282125194840899ec3a4928ca96b22577fd89301d5094ef73b4b97ff5fdce270a2733e92c3997bcc73d512a0f1e3dc37a3ba83b5132396613ca7f3d35cd8962ccaf4910bd375192574c4fe45c29d36aa224eb34c9bd25e6bacd44496e505249b362a224877acdcfa27c747a898249ad4ced413f8f698992aca74ee913f3d2042b513ccf20336692a544b1d294a861fae4fcb69328264def26f8b692288937d57c62fdc64e8a44c984c96f2fa9e3dd43a26882522748d3719432794449f8139330233e679738a218c2d232a376d56e1a51bc92ba834c9ec457c388c22641750ad55e52348b28a7339367cc047d32ae88e226316679cf5f4a9613510af56ca1d664dbc88828650c9b6d5d279b141fa2dceefa1a64a852256b8872509ff35c2a64b85b88825222df74cc11a29c74c79c4e94f8fd980ea2e4a9635ccdc3ff6a2a88d2e69d8d2bff512fd340143f94cc3193a58028f5a769d73229642bfd43c9fb4778d0941e44c90f4593e4a4db348792d5d487d28a658c72b1f736e1c349ccd92483feeca1247fc3bdf39cf8baeba11c3679125eb26426c94331c7278d26f7444e1a0fc51cd55a334cd264f51dcad6f7679da9c327613b9474d824e5e23a94cafaf446e8b28f6dd2a19ce4f5ccb9640e25f931c73cf76f992a8792925784953051c4198792895194defd9b8f251c4adbeff97b931ce7bfa1d8dd49dfc2e25ae48672cadc9c3d8913426f4379636a320d1b4aa7c78672dcf7cc145b2bb3ada19cdad7fdb3bfe6ad520de5642e9fba3587330d05254c4efaf3848652bc89d33aff0cc55a9357547f3394a44e624b3c3779e449194a6362333e98307192a1b07e32eb7335867259c78cbe510cc592f36d7c9f6dd68d6128e528d3e4299329d322184aa2a9fdd126ff85d288f153ad4e7259e685623065b2cdd7db4f855d2899d4ac9a31f8eca6900be51e31dbad915a25690b252508dd313dc6cb3569a164da6676d5a794260b056542ffc328792e3f160aaa45c70fea5fa138fa69627fb6aa0c59a1f4eda13d66922b40150ada4e28117b236b4fae0054285d9d6538b9f3c4247305984239b78832f1b09e74bf0248a1b81a93123d65652fbf0244a16027ba5a8913b14c5f01a0905ec9245949f13da1e85d7f6adf24d7789e134a3a6aca333daf09c59cb64a56371335c6634259cc049d4fec364185b784f2c7de6efd3ba9de3a251493ccbd7c9ce95aeb92503aa93d3b2aa2f74c48285f89dfdde613dbf4472899a84d4a091ba124092b42680ef38c7d114aa333287ff536b9132214d673d0e727b4b41b4271e63a85121a64de8450f6145dcdd0ef679920944c885127e37c7213209424cfaf93cc949bd87f50b43cbff5cfde986b1f9476e402f4a0b8562574cc76da4f05e041797398d25e7287fdbb8b62f6f829dbac2e4a62ff89a163336412cd4531e73135fba0e1a2246bef257c778b8279c80891f7b3add9a2dcbf2a9e5e92595c568b925071fd7299a63389164513467767e5da691625e1aa41c860d2cbf8b228c7539b6f327ed2612c0a6e6e1a6b323d3e048b62998ed64daa641925af288f3c5793a41b199bbba25c7ae4ea285372e8b815a5934564ae0e266fb9ac286aa653133c5d4549c63bb72c49668eb1aaa18a925dc82813b333d6aa1aa928ab5fa60c2667bb91a91136df400d54946aa47e123f13ebede414a52ce146478f8927b6c9354c519077ebadeeb34629ca76fac39f74294296578314c53d1326ddc9d91aa32898e611d5a5d54b0ede8d1c3b5214e57e519f557227a16e620b4531096b734aa8ab031405ab5397edff189d4f94e594feda3aa13e28afce13258d9b6f6d7ed489b2896b12312a270a6b9b971a9b28e8923f2625b5a78982c71276931244978a3b13e5b5133a268aebdba14b7e32eda7bd444128d51276347b26936389e2f2daa44c763a753976908195383b36b7e2acc6dd5cad41897296eec925a394dd1506196264a00c0ae8d0614030021b36ca38366c98166a4ca2fcead9e2f356e5e9ba919248062c60011d8606366c885c0d4914937cf3fdf66b844d8c8d44b9dec4d6a61df38db1940e89c27e12f4fb86529d46461f51f26a0dd1e056ba230aa37474f4a0d11136c7408d4694c4d374d99e4aae12736a30a2bc25d32b2f4f4e927ce24594f23bc92063776da855a4063868b0a335504311c5d178426b4ed3afe11c615bbd449464f7edb9fe16edf119612b634488810387880b72888810a0c6218a2d4277d0a937a92f060e1c78801a864063dca0c118329851a310491f3b9b4e47182f9203870819460c3325846396b5ea629daab6dd1b65ad45adc3acef102365a0c6208a3946ab87114d08c208e3c6066cd81044d9a39de8ceabd6d05c076a04a29cd3c6ec6126987e3849fb400d4014c6046d2527d398bae23f9453cbab8eac8dd63947871fca9ecd624766f09373f7a158b2cd9ed2694b27a5c487d2a63ef1cc644de29624bd8762ba2aa12a2a3d943b5697144af478aae2e6a1b4e9527f74cbf9aac8821a7828bbc734e91b4e34cf1eb52b418d3b143c8f89f3b74750c30ec50f26d7dcf8a69347568752895f7d4bb9f3d4d2a17cbb29a3ab5a6627a21a7328c921831272a633c2e6722889227b326ae79c4b693a44c6c871386e8890a1a3461c0abe6dd2c7d8253894649d3c3afe83d2f1d4371466b3bfc91c952d6ad6704349fe20433d53abd1867209629292cd2cb5545f830d4517fd51f179d28a4a0c1c399255a0c61a0a3295f4a084ca516252eba8a1867209a693789eca2f29ed964186a0461a0a563229ab3aef0f2ba1a16c371fbebedf44c6f0198a2fd2cbc6b435435d997a5ea9ddaa65363ff63988a79a6b94a19847b7de598963dc1011590e4c80021fe0c005f6c9c091e8c0b7400d32943ed6dfd4cfb4e86a58c4740735c650f20e212795929310a2835e0cc513be36bbb558a81a3b0ca5f7523229939352cf493ec7e7e0410d3094434df473cfa284bf518d2f145c53e3e49d385d7ee28582ca665ca6cf5d2867197d622a15dfae5e0d2e14444bf633d3acda028efba8d4ee05e3c1581c0c0783e1601810089d6e570133130000000c1e11c5a2c17040a4ecfa1e14800455362248323222201e141a1c0dc502514010068381a1302008060542c1001010870d91ceeb0183b60f0da958c7cc9b7b236f7fb41d86af67b11a15c9ce2acfcded169c3431d8149e4397ad503dd69762f8125c89f9235084b8041eca8f95537b701e1da7ee103f8e9f95612552d2ab403d0886358cbfd9ebe5d0f84fe5d12067c6200f3cfafcddcacf713389ca5cf8e1d9345864bbe7bfb0231a5504059ccbc69f146cadc0f59373f219319ee6457b971be71467bfb12cda55ff7466eedd1437ee36bf8d1f91fb7a2b3c76b76c73081b536bd6d39d24257aa553da6b51727fdac785048b15f2961e81b7755ee4073304abb4b64a10591cbcaf386d2fe5e1b0f6e5b29da81d35ac4a856e0c44f1c12ee23c0b8dd2792efb2835940683cfd54d34b113d6abb60d6c704c154ba6482caf1c80a2c29e3102ed83bf27116f9d5986283e542ada9d31c5a371d8a6d20cce36c81e873e0fa53ae9e337c38a6f5dcc537800cf14f454e9c340a4d4edb1850ff33357622c72ddcd6e34717d5a2439b52fa6a2b3668a16a712be3da9e3b90f7739d611256ecfa3e35ee7229d471c9cddeb1fd610f0b13d7f256637508405da00ba0a1a8b94bd8bdf81abc5d6ea4fe4598e3eb937f2f671f0eee71cb673ed8ac02b7b06937d3cf299dbaea5c7f05ee7456aacb951260856e5a391934c615dfd1eccebe2ceddef37f24372436f85c7ee96dfcc0f5bda47aae9ff54b44f6442e61099fde6170447a4616d7588de87d67a0386b59fbcac66634277c4cf8e2fc26af4594083ed6f41744339adcfe72ced612eb7a120b6f83297387ebbd4da0dabb8aa6e16909d3293f58b4087fdd3de7a2c9f745b15a83852c4a0a0619fecd68b271a4ba1a676049aca287866b633515f4f6f09c3219fd7224deb5c4edd91b0298d13d4860764fc0da86119b3c1cde7ece5921c257ad10b4d85419be9991613f775e9ed85136445ffae8013f98162adc597b9c2e64bdaefc5a72843b7afa024ad6359f1b2607291ceae0ab876c138a502cf6e7ed475f51e2e78b87ad346650dd25db0db1bf2dce5d67b28efc4ed9d53bce7230bb62977863513472f06911aa23ae6e281054e004d6e197249264e631908d91a4e45d00a4d53991217362be109025abe4ba30c56d435df0b3faa2388d6da098a4f73a5b62f0a9b9921243a36d5fd489141ccb4e48dee490d2693860a73da8617a18182cb5c98a6b69179921c66d4cdf017b4b233152735c1bd5eeecf80a7b475ed14d5c674db354500fa9956b02f7ac5a7609e539dad86f24e06d65cc78456fdf3e3fd54db738970abd66da5cba27a2721dcac0b821319ea453b48876edf06785c1602e13335ebf63ac526627fc051fe039c367b929f1eefb688cea6340ba560104d4b9070b5d6752990f50009d3dbd228c983f3e828ec1223838e96dbe00c88ceda473061b248a203a9cdb5974358c370ac128a6102809e73ecbb4e559a921f0a9742cf95f491df2da1d0c914a61e6f1385cca9c1e441581c238432a14c40e02e5f6b6d07c1b403381b6f42c9959bf30f15d716d3c027903df69f33542e1a03fc01ffdff5c7e117e1af4e173b13038bd79cab973f106de1bad9ac19ebfa31d72c3b5884d5dd508884cfe0e5aab6117ad0b769a94af74e854f173f0e9ec1087eef239aa70bd3bef3d6155bbef8f8375865f5e8dca7083f87ed3f010b4524fbcb6c0b0e6c533e10793d73f62059a4e0e2103cd37ef99ac5f6af5a4650712e0bdf0ea33b3aed5b604089195f81b04af924bd70ab568c1fcb2befa5464f6c318606afafa22e06b4f2034fd3b16f24fc1c3df70f4fbfac7846986a68e6ce3f272dbab9c649480ddb9d41cc7db5b9eb4a73321790d5422aa980592fd0c56a6ed61fd451a1a73edeaace5d1207fe2d134e245db7604b8202ec820b83b4beff4fbc685a6d78957a840a2e22c1e8cca5860dccb6e21c3de875e1d6d8c721eeae675bd0435d6d9b5707c37e09bbf3a0072cf4489c8f70eef4d86b1e7ce038cbf7deeac1d8dc47d60365020f77fb425f2b49d79814589590936460eaf5971eaaca9e5b05d827d9408212c46b7201d631a0c9460d8ebba024a588dd61234bf909f304543f8bc2614185fe536090e7dfb9560c1f2abe64ab456e3347c7248e7f5fa61f0a56cf004563444f9235f63361b24af4fb9c329381b950507f048f9578c3598d65284cc19720945917c3e31fd4024587db8b1216dc8d51347ba650ab6b9276fa3f819f38c8349a54c238a8574cd045c7331b477fa2fae19e4041af06932dbd7ce1d0a2827e321cc4d1c78c95befb4eb064112b788daea272f8956f64a424b8f91c70292af048952877da2130161495d7c881ee174f29d870c02665baadf285e6a51028b07002309cd4560f56cf5b6c1b143f686b91493480de7d33f951b2a821589303bd4ef0c006d3757c2517914ad17a2a2804f9c592dcf2a48a058163b11b6549f599ac0993fae16c5528017539f790cabbd2c5481a0a740450e2e908602f0dc55388e36a6ece7a3a2197a0118884633c85c6a1cdd5373c97620403f41c1ae4b082dfe4fd897a6e71233506f448e3de2d1a4213cdc41f8f58cbf5f84f84ff9781addad76424645f97494ead5229df7255b3b439eebe10803e8f826a5892687920c22d2ee43c1b50ec74a91a9ca3b038a5ccc9550da52d17912acaeb224db812e12d7a95859f02a74e82482730d5e87f6453b2ab0f993e5b6a877960e207a1550a91cdcc9f77d8fd89f07231591c3acd2af735028580017200c33f262fe42e1fdf3a7631759610e7c4c93272a70c5aac6ecea9cd4044e73e4e128fa56f37d61d8d090c3d0ddb3856c3c5c826455cdb5fa33dcca5fc6f66d3a184ba656923e908a52e49eae62fa3179c8f6a331d5d72a17d58e378f2f636a6e4e0c586281d4e2cf4a7259a875006db6c6f0b9b08ebac1e4f18f4ee012d3924bb2ec31037c9e18bbb1b215890b20ea09b90c0ef9def978797c022d6e4a89420384283314484fae2db5a1002311eebae7581580c3aaccdd9e12a54e8201c6064b36faa4d174638e488894d1016b16ab949252f4dc66e3fa963f874f16c85884a455a7f11ae2b610d92f13718e6e714c9ae3943c12a00974956711b6ee88433a4011f7597871c2594b27933e3cfce290e992ead8aab9451c91a5eec2f333ba2bda912c2695147ae33ddf74d8a77eab3e2a8920549e2cdda69b366a34a6252862365a664228b636261447a810a3694b41b9640ec1715632b45202f082e4ec39922178b5249e9fa1a37f3e7b4003a2c4640f7f2d10950543a033e74ab870438b5ab4f5981485d1a6764ab81c0bb359baed382c693fe86f7fc9911d6e005f6d665b3c1e76a266f97f05ff9fa8187d3ac029e90632e06fbc30b09e302a5381f7ace808473de87d112dacd10da3cfe5b447bc53f0a348b2889239c2c113673b509f4364a6049e1fb0e0829adaa988d3435f1ce4355a030369eb9a4e0d6649377e1a46025be4d1925efc3e1f915a27d5af68d43a80f6a875161f5a197c6f19ca4cc7a76e6035c69dab18105b8a971b1346d38e863dd9bff2a7e237e7ee7dd8f432bf73889d5bf035c7bc7bf1be224ad4886674e9270b351b7be11eb3dfaf85713f297a11e8bea9af56266e6fde48e15ddba6874f33604cd5d56c7ed0485c9ca9818567e6a8e2142f54d17b7504fd6a76cb2c2988aaf3472ca9efaae11c67455b2a09fe699bcbf4cb58ae6a5b966022a000a87a635372be89e95bbdf20a9ad069c10b1f70353556405e94c316e876173b80fcc515d59e82e983092e2b4c9a852415ecee3c1fd611096ea7de54863d5a7cfe4c09188fc9c9c228871df099ed4fdb4073cf770d64eee42ee283683b30146db01ed48853c057c6d7ec718cd57201146a987d89d4b257c8ceacd60674b357986d0fc9339fda2e29f9e1b711a7c43f10335a3347fea7bb97395e825f42055e7e37130902e26e7000614a1e10ee26622011a036928c846a327a8b73840d7ea85ad199f3240716c9e1fb7609fec2ac16fc9efbdb7fc58de6f90f01db01788f72d771a560dea06554fa455fe962b1efb6c45f5d2327407d488b8bfc97e525f3777a5d2ca168ef0c597ec99019c6532632a90c0b5d70254744f63c2587740f2989f8231db67114a28e5fd6a8f2d5837bf35a4a3d09c127ee88b166dd6c63d19f96ad9091694242b2f2f557726bd8164e3f022077d6a6d8a7b9311517d77fad7740a1d1382e6df06f2eea2368c93299b0e575c43f6a34c7f094ad88385ac44786e3466058e8254cc3ca89e34397247d04154bedb72c5165334164a7073a1a328e941ac8deafd4820f370b0f57af92eff006fdb2d96c74ea40ca9beed0be624543ebed37b97e55ee6a2cdc460c0f0fdb570a2b70bb444b34336fe029c7afad3e451c4e0013678a11fa4a89dd290e34ea3775e49835cc3f45a21023ce829e352221202825869faa308420ef18430bc380d5dc10b81768d4b2ded48273232f3e78007df2ce722399cc5b96932a7f86e9277f19f664358c9e8b98d99c03301f4372af6e0841aaf7f38fbf9e3b7e5181a88a33049e88462ad7e161b5052bc01c2b5454c84298b05fb38d31aef12e2a25a4b06528d4cbacbfb0debe977288f068e31142091375d3b0ba5e7195b4562cde2a6f8510c367014db927586ebd25efafac5f57568163d976a330bd8511a73e13457f76542aaa3065c8eddbb34bff60cf72f57625a63e344d8d2e98e34629e15e77647b99f06e0d2481d7a15e242805fa4a0be46c25b66d8bf89a0da9044b8ec8c7a55ceddec8de86c047c4e5de35e0c555b08a268a23e146dd96f8da2d9ff7feb9ca87ee0b6499c46db27ca2651f57bc4024fb17168baa26099bac638ab275c73341649b819467836239174a33e0816af18104561eabc71f0cb91ae52d38c3ef880c4cf260ac895b646a7daf334bbac335a730a4ea2827b3320380555e09a32c71162a1f103220b4a85cc094993cac0390c204281d9f05bb6be0311304438dea0e65fd12e9459c7ee75469ec3247277f2db79ace6e16e44000303b2db1dc8d8443536b0a293daad189ddf60817b0d4f83dd1fe408d7caef166e2e70c6448a7a70f6937001620fe29714df9209bfd96ddc66a0056a2845fff1ef317a012ff787530a3749fa91a1eb58603335f8f7c884fb3e8bcc4d6b809b08d589d2fa6d9ae50195ce3c411084f6525d36d4d91be052de736d41f412bb97b921247e179c6fd766f2a435ea1df5277707f2d8df4574646a3e655ec16d8d53f9e98402e95c99a9ada5ff3729e41b5e0a71c216d08104ff8870e6319816aad50e28ea48722eb5bd53f02afc0e37f4f707d9012945958abcae9939344a3669150947e5eee0a6cb7d5de2fc2f0b90149beaf54a43269b97f4a74f463af67126916e5a8d2065f490cf6d68f5a014c7d4ace97e1eeca7a88457d7329f83ed4e4768782c862fe01befd002c5e2170ea9e845ac2ea57d618d7d7c883c898f000c10dd168c24551a7af9fc896ca3d8e91c44bd0e755178aa00df711604ef7b4607152086e5d033248a813401d879bdfe4063a66f458535a93079f3b91fcef560df9e209b0bb6cd15f0217c747374201d453040b843121c5ae3281cf55df69b43ab3962ce78ddf6311c829a03fb1713fc335993a50bcf6a7f0e8ecd67727551b5757942e8dfca9ba9342aab44d7a95bbe790f9010aeae9a00d081ad8f65cac164abc3e28bec5554beb9cdf30ed811312e87c87a83bc3e347481a9ab5a9b58d79e635f6be43c2b1dad488bc2e7398dd3a585956e77d1011113cf3e14ede83ec7f90948cbe2eacfc7485b8d1675e4038aaa119265e50d539865857ceaa1374c0099c1f693380ea949434fa8efe98fcd868e2a79391b59621eeec353d5bef10323e36732896c5c53c3175aa0adbd54348cbb12a418f95472d840165cbe9208ca1c1185932e94fb236df8938f9a466f8476e4db9486b455b9cf9b8747cbe95892db51b756677d05e3113e6e35e134d6bc91717bca4023169e38c61e72b03fde1f20f0e7194984fa795427c9d6067a44f92b1782628af16cc23b3078ee151827dcb993167c33dae2700de2d2482a3382e691845a83c03d1d26b61887182302699cd7507e08e02d7546d037029d5242846df9189470e1b27ecb452ac9995bc6cd47ca8b7551b181aeef2028e7246ac824ae885b3328ad0c6b0e736d193bb31f84efacf94ee204b2c131187095e0386db81e2795d35375addda35154f1d325901b1423696d4a8d520cb1cf9aa15e3d71736103d4f51d52ec18cf2f201ad1fb744e95ee62100e1a275e475fc7fb2c4bec5a118624495a04da7840d20b21eba06f82b664ab5a3719f948ca42ab54b504d47fd6e444ac56042295f04e7adeb6c8efa111f834b9d2841b01f987db3cf33097d781248a1d41db338b36a6c3b7c53d0ef2145bcf971067babfb1e87c66a507111c50ec10dc18e02542334b5d37482eae1e60faf1777ff362ff9f360e71bb0609d689608d4269fded4a9570f9e0bd47c0313b9f50a61cef3320bef4041a86a4e5328efae1dc01908fee9577b31476049e3d64c911ac1cc6585a6a004b43fe55220c220a7f1817b3c45b25e1047e15f5f172aa25c6e8a5eda317d081dc46aebab6879197cb0d17de455f0e3825d241355d8a3203cef71da1794d7d1ba9d9e7f01a07684e912d4531ad25f1fd3b3282fd83780bfc8582219d49a192868b7b039bea393930261c05201bf5a108c0eeb040260749f7f48564abe8f25c4d1c1d1d074063d3aa6d802ef25554103f762791a058f8378d7304426f67fd163245c461149e342a75005cd74888322ff95f65d86524048bcf0ab2279f139ee1b60e04070a0e980eb4b2026a497cdb56761e12304ec3c54c596443fa09154f93336cae3243c86828ffead6fac55740fa969a3537b331e366ca6ce61842ca01e9c1398d89f1357ee3698c9e26bf527ee180eb63e47066e9536b927c5476449716e81cfc0a0ef40c9749255e04351b40ca444abcf898b00b47234b374b03f20be28730c1528b4da9132ed4dce67f1086c97c37b721de2cae48a9b7ad6bdef97f4ca1da82ba75e8b3ef670c29ab280d7212dca3a7ba71024fa860af0b63849b193957d8b474348020ae5e170c8086d2f01e60d0258bfd8df896782587bcf037997ad13d838022fa0e2924bbbfd8f107bb0470086b9b3e0387ab339bd0eca6ede9501714496d542988a8944971d1ef40f26205faa25d4c8a41a52716748018380106bf3820e9dcb9bb6b81fc76e20db5a14f5f5ab5f3a93f4386e04ecee166acf2e2e64bc8d698dd0c6251c6dbe4081c3e6eeeee2ed3dbcf8d17d81b850c69130aa6b075bd5ebc6663c07b587d22fc637e7421573040e553003ab4521a37f340aa1bb379643cd9ace3cef498139eb4240fca4a80cb06d063935d72c43e2f85ea9fa750cf30981c0d9f2c0957bb8b28de3af8b85b64ac2470142c8da8b56ee2a3c7d4eec8d8edb09a83a3fe49c7fd5c94ae98f9d3e7b19bc49865add822d4181173c54d5d61a3822f617f56166eb40bff8bea1880f10c0a23f6acdffcb8fc8f4d4a364a540277ae9cf9c7e050e27ece8cebdacfeee3635be653f08f05de718d526c3c4dac7339da992653fe70dc9307ebaef45a811f2692917f14a71efe2f0171192a551fdfe5af7e52be1059635e2864172577475d93a3c7b0a93607454dd164adbe0c5e4b56bfaace26c3aaea9b4f4dcb6eb076a6d94c52aba6722e963631e02292473699e6e2936a0f50aac52e85e4056dbac5848317cfe10438c83ad3bc931de55086bac504317ae96ca4230df4953ac21ec1043282ec8651e86fd04fcc286b16d6a529c7cd07520fdbf82da92148de0374b45971beb3f4ae5f686578b5a1238356492ecee406f0f07f287270ff4c96d61365d701daf4bdc6d55c92c5f67435682406cb141873c4fa53754f538c3f7ada1cff1913388aba730a85a092dface7b822d0aaf66263e4cdc785a239f45ddb9670823f68f783a40ae316b2bf481abd78ad029884cd2956d8609b823813d4773004753110d2b06d6e184f7fa84c33ce2bed0d8bc2aef528357eb7894ac74409fda5dbce8bc645060e6d46d1edd1963ed0226d99bb2d636f8c806b160ad43d81477effc531753aa7ad188f33d0737038e8280e909e60c347284e1bc8cb22acf9720ea77692d0c1e32486424bb319dce771370da5400d0992dea6b4eeb3a0be500b218bd77b2d029cfb6f3f98cb5637c90e6706311869cad19e39699808498ceb28b4e3d073604d2a9b7f2f779e40e45d1cb802953f7ad3f91c10428c99867f761a9848ae9b058187b0363e0342b8690e1049aa0b1fc7930faaa6c339a2892cd85744d8ef856211bf888223f9f588d4e3a1539b62f86386e31514587522876e89b78b361a3d740461408030b5daa5046f4f25e9422c1177ffebb2cc8c1793d327dab6baa7f56acd2d4989b339aab691df0c03c8e4efeba22a989a4306b618e4a05ab6d9f4fc01b9939b28d6a9de40c7b66d403ced2f938a1e6fdd29d7b3e65a4562534d6af59cde64e2c197f86351f395fe222c5d2eb14dea6d97e34c00b414345a80f0c7874f750c50590ad92216ba021ac6c3bb16b207b4e79b7c8d8610713b3414d4dc3736b59071b769d5985488be9a474c36a0ba37b44f669e31639412a8f623b394197a381b27fb82b0b351cfd6a4f9c78ebdbc666faa7cbbc0d9de8d79bd6fd8425dc42863cd790b7c1af9c1af89949f3af6bd3e05e110848191be6bf147984819fa2b0e8b5ca2d5237be214e106817d70b49831b317f938db06a486cae8bf6f3227fdb4fe1ec01c1bd45aa82246c0a556a84859ae624b33ec3fe6d02526b80da74768c31ca12813dcfe00d659177f595dbdfdf2007a40c691c4bd5de418d737af0c429022ec554463d91736796bd45f771378e2aca120473872092819620a4ae067e8324181f84b2c7f8586c37e8c8399927372656e0bcfebf6da332ca437090f8ce21ea1121e385a88a78638aefea3f5b454446271b7744e95d2ba90b0341f69f5edd9b678332e2504a7e8c83990f23bdd3af6f78a8beb51c2cbed1f523d4f2e893e14c206bd24e0cac562c98358d82162d40fcd4311475458f81b3db6d37dd39863286a6b60e58749257a609131ce984493a62ae8e4b73a8418ca819a1237e79b0ca79a63fdf90695613c2c6209ce8dc9083ac7f3928d7833c66a3e2accdc95dc978ce05c004fce9ff040e649e145b1bd240d94e9f0b9f237de5e177d4381427a16af99803001b54fc68e3cec67806e85e21e29072624143a638a7f97f7d938021553ed4d7294e1eb0d46b74762cb0cb6e22616c4d1847ac84930c7dcc96d2036bf3413d1b2d10cece8aa5933ef6b6399ad423e30dbbc11ea23316d1a6c564de25f23e5bd33f478e6cd45832ad001ca4390c25b272cf69b33c4bdec4428526c8091f41e9c67c8b8f39156a8feb44770bc4db29814d35d01f8106f3b039c7e96603bf78d5f569f33da3fc3b36ede1bbd590aec489c798ac17bd5e92d95c7315e68eb2047b5b0e0e2c622610b1d95db2128af85d3f131c6016218df72f65cb1414759be95635bb51dc0f52a87cc7767c2b2c66b39e9617ea234799ca48398e404739cfe5f5923136ac781e4d80395f2335ec5e211be47fa8acf0a683e2cc4c09f2494f13582289794b8f288c77704f2a22aa8f62b616d4ef90713cff64085f0a4f99f1c4d4fbb48891a880c3e9a71ad1203523cba1417b74a7064b5e5f32eb674358a86f2b19d1e04e500ecc29c790d6d2f1f986ead5801585a046241a7825a18e59a6afd9aa7218502075cab3f6f40e32e4251c4d8e15633ace6ea6275e9cb6d951a95e80d13992caf2cf47e16fc8a843680ffcd8ffa83cc3549d9e67d6572ba16895490b39ff0d7a0cff72d257d2f57d6d8b50822f81d8f7f62cd9605114f6c8213e744dc3b263d5222cc4858748377d7e5de63bcbde0aa514ae1c404de514879e4baa97f137f27fcb900417d649814e793b7a25b7ddcd195d8acf755c7a1c34f8f37d6b808a80771403099aee89b900947700831e3e2612aaa568425b60a2de9705666a40c5f6645b6f517094e4265e38ee14a406e12c05366f673f5b830c637c9d85215d466637290fff2f26790e67e4ad78cf9fb8ee7c4c1a47d2f7646b7a12a56881e5e8c02340a24365466545f11100454f01e8c1e700afbe369b6f858271a88faed938995183cc9b9e7adf912ff558e70ab51b25f2d7f2291bf2660fdcb22a2094eb5fee28442d172b0895b5135e968779ddfe1f8ee96db756bc8be0002c4d6cb241e830075cc4486e910a8250e1c2969ae5ad8dd26e9a716806ae75d4044fd11726915524852968515e655b3fde19becb6c61ba7e765f75a6fb2660053ee8a9b1f0154bb4c80b853812968c3193f435599f72144d3c154a7c8e391853abfdfb23e0754ac9bad1152583ad60554e411da75709c6f5aa31a889b29def752a3b0e53a4ba87d05b6d2656910ccc3f1e318d0317a947e996c6fb9fb3c110b3db3fe96c392b74014ae229a38c84e3c474829a11b5dfca18e440300ccc54225cd7892b6780aa6797e6053904f7f956a47810a09eb95176b6a221b62649ab8f2f9c36943804505b6c950ee54fc53df370348270d2450c8ada752813cc9865c5b1bd298fc573cb5414c4d42464dc9ffe16d0359b0d8421fc1c3dbbdc9d4b4f023700a8bd90a11d75c63522d451c221fe997026f866ff204669459486fd59711be360686684bd53210ae26f19c7795a2c1db60978bb807733d54e72e751d2993078e4a621da4ae87bd74840afbd687627c3ef06694ed426bfc4728f6e3632b1e1828dea82b8d71ad6731d007553425040736be681878d930a0e23072ec3004a45d04463b45447c14c2ed5a67868095acc0e30e81a0eab2dc5d3a4b9844189c75ac13e31f8b62ba193f7c55183080dd02aec938e246b7382ba323cedf84cb09c3d6846c19b04f4282817d92b19137130138073f00f54114589aca2590660aab639272ad26c2238a53d088a62a3689228374e27edea72863845dfc4f07d2d66c6f0ec2bfae2ac56b421e10f01ba7237eb3f7558566809f01d0d2ada6fd15a53e5dff57d0596ca2b1c8ff5b79070e203327d728ed6a4c39cd23f8937a0c5c275ee33f1464e39c8bb217b5017207f8a4cc064dcf113467d7009422f8c65343969d00364a86f3a43907deceb3215706cca585d136dc9e96436a58cf62bb68a03b36930caea219b99f2d17bdd8b3c7578348dfdb845b8582f72559b002c07183387cd1d5c6ff9ac044091544d62af22924cc6925b7400a39e26496baaf94fefe35c5ab05ed1c15bd10a0351b382730256066b53a69485a3f9f4fe3df691392a41a6428658d920d977fd414b16acdea9daf44a442269849ed7bf465a812ae7fcd30497bbf11e111451df6d5669e3b227880ba73492793186bc0dc1498de62c3a92d58fe747c743112d8ef4749688c01257e0e6cd7aeef76e0935a12493b6fcb31a5ae10912a1ef5243382372646766822ecbc88a09017106c02acf21f2be76168b93cae111fd75c2e1af037778d033352ff49ddba3450057c1679c2a152af1d5761efd1e2100ffb9f92194097ed62212756bb05b946a44abca29ce7023cc8b9ab098340667ee13a3d74871cea33d3ce4bdd8bd6d3b08ec103b8259e3c7f6c9f3a1e533dfdf228195ea6e6648dd97d06a5fe3c5b19a55573825e1e62fafe4ff06841c7491025591ddea985d2a070c97218876d176225cd90e64ff626c76a5b9da2ace489ea0c63d43c9ce66f1a546619183ea9b68b95f5c0dabba0df0c883a642e1d80fbe746f1870d74d4197428ca3105c4417fae4934739c670ccc717095ad728ac32c1b5b2cf56f48d87a9d7d22a2f31b22d74940a22a444d799ea0e369ea3a783341354dc0741a7c10cc2c0ae964917b50475426b22be8fb50b5b8243669dfd8a7647b4d0f5efc423f729cec2c3a9a40faa361025d8943a03f7a12f01d4ab47546594e38ec118f15f52a25ca300bf40ec1cbf356f3c0f237d85cb74129ea2743798ed0b89802dcfb6faeab7d94f34894808a63cd938267c62d3ed08359bcabadea0c7187accdee73d6325f1a21001a974eb97fea3de0b5428109e2f388f66e371154977da3a97b21427d6965e9a5b5781b498df31ef7d1d7e0ce1b5edfb0ef7739b9fb5e329138eeb7c71f7c91485c3ac5d29b3a4d89f4a3ee6eba52871949a72a770768f90b3705e2b576c84be8f58b71256bbec8c36765e3bef8721342001827ff6274db9c2962d1e3f0d903d4d30bac2877fcb382368b0dbd8641a5a608657e24c7c563fc879640ed9eb2d72490692cdce6e16c1772d02060356b70d83890ca9adcce344ba1fcc4cd894d92b3702ac9069abcba3975bf72b550e75654aa1a20d230e8e9d0cc5303dac986f37edbb87f084ada1f5a71d9b319c4856d37f7c1e0dc2e3d0d9410e46a1d5bae34640b987954e3b78abe945add6af8620855d3257a9a432eb3acf7fcb0986c37cba21e0ce11904a53c9f0a48f22cf13862eed84bdc656582979fb999800bfc16b871c075510f570211a61cd1f7497324acb3912ad4d6ba8a4511d2907c10aff561aca221ee3d3bfeaba2c6973340253c53936c127cb82dd3b5aa3dbbb2e1efcaf8df6260fdbd1f47031779a332950285d7403c00eb9df637b9751c741350b5197258152f799496db21625da72da9f65fbcca64608c385ce27d8d3cde0935841d5e91f9e8322eb68525c97705c506e0e43ae58d85bef9fe274495d0b1ef7e8094f262c070b63da8499d335b2954b715811e0dc01a6dbaedc38e4bcecacc4184e50958367fd2cb02ca0e3781297f29fb2f2312ae90ea32d078982af88501fe9884c3c651e24e128224016cf090cfbc010e5057409859d1ab78aa66215cefa34a44797283bb91aa2641aa96d9a4a67c849555517d0bdc201ff583e40047217b2037d8232ef8cc51075dc9c68067c3eb74044d797fe249fb81bbf9a51d320dd7170e78bd6ba395635bcc5c9eaf3e52760ea22e108634d506c01ce53aaec990341b2c64d05277cfb9ca2343bb8d997f6732e223df46aacc6ca89811c8c297d99f4daa2252ee270afde22ea4eaf3d09afe84b52f680fdfffa89fc0bc6ae22fcf0a490164e8a2466328eac54bc66145265c5ce73e87d885f502813889d21670a40316d762a7c44b754a585ced616f6b4d94773bf6b4fb13c040655121a8588a1956291e086cc5a2e58c16480e6cd59c3ffdde6be514186ed38a2b2152cc225b16feaa18f9dd7b3ad0ffd18a6842e1e55a432dd8c1e285e21d523ece81f28fa7bffb802ebc2508622060d4ee03eee3793ab057e7dd8aa30ea840026b5bcf2fd9ba42234f09df387948c0b3a65522b69fffea30eb4db4c52b321f1bb810c3fa47105f2c29982db9327744cb73bd6b1bf3df921a75152412472ad7fbd5ac0346fad24a97c44e9ad12f0e61c77e2461b8a00caab08fac139821b10d2e7dd1988371191d2f3a1c40fadff601764bdea66005ae7e70ab06d1949d3493631923e1a660a2d8a9ce4c4bea16e0882d46f768a06d43f7f01701bdf66bfd180a500925f17678aeb6ec65b7b04d6301621a856ed4009ee351234076c8eecad9035983caeeb72e1057d19c5cc06300ab4522c2461f74a053bf8bb7bfe34d78a91f59f051763d0c31b748d9aa4f1b7ee1deb6368eeb4404693f3dace8ea7b219df9fcd025f8394d29b9ae2b0eaae27e6924ab9692e2b460bd73faccd5a90ee1f06576da9457ffede068034b8d97a22b1f0f417ad3d162c8569e0e15d4bb2118a2ceaa70e479c30704058587563d23f2c1fcd657683b799bd4bdc8b71d5ddeae85eea229ff9f8f43aec8b52595893fb845d8151f01d89cb9aafe70454aecdf1625e6518e2e411da9f83e416e452cd3395e7ed5c272529230652de883317f9ca9d0b40dbb376070d9e64a07d696593c709c10a631a685abab79c11c6af3e98d4b69555a574634dd93d2ffac17af48cddb6a93ae3b78b826c091654e527a3aa420046f7f0f782c5b8932bacc7c83d4910871d3eb1f7b6722546e457212de5c1d4b0215fa976012a4d15dd5d526e25c12e62c2365174670a58d69e862c217809b37909384400a1e04883fa9654e98940ba021a0d89da81ae7a691a9ab0ef1a0fcac6b0cf2ba2588a7cd0dc5407d0906b31049f0101992d5301c270b4a4edf4bd5fc1a53accca840d6c844c756c0f5e06296db9efa2793eca992d08573e223bfc3da28c48342daadfc26bcfdb51c189dbc0cd0e9805db1e8d9e86b29cf318b10092ee0c28691e1d33779d8de998c70a51913ecbe7d28a73ceb90bfe0f52353cea5c2a27c2be85e5e95390f3e6c0e414ab06f0a0173ae293e1343508e567e82333c2b06abc42208172fc933d449825d1ff3c78a60cc50fba0b77ed02b20eda58fed9d8f9bdc2b3e92d944d3baea3ac6f944ec72338a5179ce3a062f57b6911a43fa7a2cdf037293bafe979cd37926e0cb50796b3b93239d8e0a559307ea2967dd5fd51cbf27f9a41ec8b2b7c13273e1a513bca3bcdd54d202290026f73a8563bdaf862d1197e7636fc4d20a1c944ddb5e45c9735d8485e9c9bd34db5b7111e6e7fe6fa5ab00b01b6bbb913d33696abc470709a1d5fed05c30ef0a64b02b90b04cafc567aa78cbfa8e4293b7228c13eacb2fab0d42ef20400fedc2ba925cd75917dd9166345c8bb55a9b1a550f632005d16ca4566385bc1474022c9ecb72cfa98cf2f5a6ff212e9860a214384c4f2a571e32c7a0ce70e00eb70cfc987850c6beb738b346a7861860daf0e8de2af0f502278d18a053277ae927ab3ab0c27f8c905358bb67e934de5dcf600250ce71440db666fff9027f8a99dca8c377d28e176309e830bd73f9b5ce21d03d3b16153c43d23fa2deb16ca0493b52ca1bc3c29c4c901be20f8166a400fc3c67a4adf4621fd0e6cc0a9a24561019f2d86fb2398c82d1b611434c7256a91b2a2e7859d62f9aca4530d628657b4b537fe658beb139ff48a8a0487b0c204ad32caf9b0021d70e35ceccf0033e5a12702e401bfe72690d8f2cc88656ab564acdf316350e6517e28575baecca0fe06a194db92959ba8b3608495381a374281ce639165b0c3367316c1483f83dda3c91cfce49e077d7a73643162a01a7c180213705771d2042116b44fbc9224f273d2ea965e11d4e9222a9c0383dcaf9a65f6c8e4d20e27913a26ed3f24d104570e06cd8505338d816600606117714b3d302f201410c1cb07c72ca6628f5d5bde581b81362c16006609e2108ae5550ad41fa845f1ea440d107b86287ea034a200bd582e673abaad7792d8a33c67b272497034496a610ac572b545e2fce420418bc313cad9d371801e6d3302fe2b960a4b50bc6248030705c6cc10e61957e2658b33a05fa427a53920d329020f80c8485c2a222bbe262d60bd8572eeeeff4d08c8d24d941b4abe07acb7ad0d4b589019aac2e6e3340b2a4d001ffffffffffffffffbf676d6bbfb5c6fcd6ec96524af30328429494524a29a5a4b8a6b15d60df4b08e14038edb684c506a906ba06b9c2285bfdf6c7f8d647304aa783797b953c514fbb234702a3d421c429398d473749fa8ba2a6d34ef2a29f9be5872f8a225e44baaf66fbccbd28b88777a41e38122f4a23dfe3e5bab929d9d945d1a477926af23f8c34a10f5d147c4b09c2e3bf7f52ca454965f8941f446e3e59db7ce0a26442d4b445e3e4697a8bb257a6923ea8ff1fb628c854319ea4a5343e6a51eed6f4f4f77a1b21438b6226335dafa53ca9d2d8e0631645134dc9fee9a3a3cbc2b153adf9dad192354f4df1f4c1b23f459618ed2a7cc4a23c7235492ea27450d2e40316053d429a94e1bdca947ec68c193366cc28247cbca2b496e15409d70aedb72bca5f16c233efff95f0d5604b3b528d1d98fde1a31565c70d5593f5e3c60a2b3e631e8f7f23d76063d35514ff3a4f4e95932a8aef993a8968effedff53e52717d8c9c6c08cd2427a651519053ff2a6efb3dcafc3845d95de63635d40f539474b98ff877de125b2c8533fb629eeb5633afb9a74d7bfcbaf6831425b3136d5aab641485dd2ed3535d97c924114549b4da983cbf9bd021f3118a62a9d9bf1294a474ecf80728fc16b15dcbbb0ed330f524e4e9096a461f9f286812a2f3e77cf244b1bf4ec6f73a4143559d286ce91f9d4a2e5d721471a2603adab98cd22f513e9b28a66de6db8e93515654187c68a2f0b1b3ab8e3cc944314c5092ba270f5713260a9a844debe1b34fde98bdc2c7258aa94c8e266752927c4d6289b269160d23b223e30452f8a8443937b3353dd6c85a1947ba6127820f4a94ed547df82c41763cd90d3e2651107eea843e9d69524c3d6cd0e8018edf9103d1246166ab979785e7d6ed5bdc759566ff7692f3231245d1102522336692fe46ebc183841ef8800473fa99775afa5561b1a2cd949520ff7844413c078fd3b1f9704449332839f9a54965938d289dcecb1a554af8dd981145d724d7e2715d4431bcd342f5e6fca4cd1d3d747c28a2a434f4e453a77d24a258fed1b2dc73473ce80311c5e0494c8e38253150b9f130384c7c1ca220fab3cea63cb13a35ce8e4f3c689c01e3c31025e944efd2d8c956c6d2a1838c42947492848c9e9f43e30e0e1f8428b7c90cbd3109da736910c5188366d3bc719eb3e94310259156194adce0a3b9f411887298e69029179bbb7740943d99c72ca6c92b2307bd9ff8f843d9e2b387183d6b3aab7e289676924b49e2892b13d6602b230734d26050828bc4471fca9b53b6f96f98a952f2a12093983be98b103d8a8192e6f8d8433978d9c6691ef9d9a60f3d14bb6f35ef468f38d1b0cbc1471e8a5b5b628796f7dedbf1503a51e5eaf5e324e9b11d9b7cdca1f0722a633d3b943fc8cf2a418535d87a24e9068d1b9f7af0501303870daf43c963bfa89da82c39e8d0a1a4a59bcab5ce56e33d878299ba97176b2b9d5f39947df53453dbe8d3d61026c71c4acbf8018762b5ff86b7ffea92794349f0506f3283549f4d224307e9c9d041f97043490c9373f4a9d3db500ee2351f9a4fee095216381bcab6d1949acd9fc24cad8f3594ba7274a88d496c7ca8a1a4258557dda7e7127bf4c1471aca25c727a93a764eaaab207ca0a1204fd09ad5a492f1dd46010d68d4e0e30cc5b86e62752ec9447dd38dff3043f94cf4cc75fca0a7c4f9838f32945a4b927683f0126f43217c9001031f632888cdfee0a3745b5589184a97a2664f34f5dc563fc2503aa979358c3c494cfe0043f1fc6d3fe5e78fa6bb2f944f297555ffa164da89170a32cf976ac925bededa8572c8db5cdc7a69f4f2830b05793b76a176429a10e3f0b185e2a6b59feca673ec92a385528552d1374da29f3012e1230be55c5d6252a61493931c19e807168a31b74f7bea4f557732c6c7154a27c88a8c2777d2f56e8546755dedbac3735c3b44e793ec6b94b4f0518572d686af7536f94d4c3fa850de98df7932c5c87b2b7d4ca178f2f4689a29c9d4a9353ea450902607fded908af11105ad3ef3e445764d3537fcd6dd91c41023c78dfb8042c13f6e34f4ab9bd89a84c386d9197c3cc1b87b97aff754cb523be9a75ebe26fa704249c77f38a52789b492e94713cae1a47be63bfdaf226f010f323e98907c1aeb7361327e624bd04ade75dd18c7871212ff4d574f549e52c74712743dddf8fcae2a5777cfcedf7d1ffe49b012eac183860e1e1f4828ef9ea0b3795bf4e7d1083e8e5010dd4a13d9242394becc4e75ec984d2e2a4231bfd563495bebd0fe42f04184f2971e6df2c7e057fa6ac0300aee6562143bf144f718619445e8dacbd69c441d7d300a173adcc837c1bc94d80060942429d46daf6e6ad2dd0c1af08ba28e3e79b25726fee4f8a2b827c52749bb777c4d1bd08bf2e8fd93dae4b79373ac01bc582d6b334c3caeeaf333734598e9fe1373299306eca214fa62b736663c79a28b52da271171a55c14e366c97a155ad6260eedda995088154ae249dca42a4e79ce56a1980419ec547ead8f4985620cd7e104ff9229943fb7bf7feea55018b5239324ecede9528a4271d4866d274f8242397d99d46d9d6be64d4f2868cca759c38fbdffc809c511cd2144f54d2858596651b2e68eab32a1dcdda273960a9126869650dc5452dc09fb3b561e251463e7d462b2e9afcf24a1a46386c7b4b64c3a8e84a296c9b313f77b4f7d8472e5d6fa29bd1a93a03142d14fce21b49614a11cc4980665ca0f21c231ac3dd5677f1805a93986efe0bf30caa3bbdc84575991e10f4641497f3771e70746f174467bf65c3da1fe2f0a326c85f8dd3e1994f8a2205488537556a7b2d48ba27d2849f224ebbc286e5a0fd37974103efa2ecade3a3a26952b61a3eba2a417ef2bd27cf6a43c17c55c25eb55981a17c528f77226ce8e0c427d8b929ca4667436d56b9eb645d9c6c420948a96ddbd6b51d2e14eba926e5a94fc94dc3dfa711f9f45d164dd16cdf3a52f9545e9b37ce4280d5b76752cca49c6d438ade923235814832e49e88a50e6b7bfa238da49f0b40e1f347445d1d3d63b95bcad512b4aa3f1442b39c61356634539febccee8c9a46bf12a8aebe3f9a16d2f56524561fed24b297d9a64371505935483a912b47da61615450da24d4acf1c5d824e51989141cf9fe95dd54d51927133c2bdcea3b5a528b748d7dcdf0ced9414a5933ac6da24a9a32889397edb682d8a82da68724eafb539e75094ee7cb543a810225c509446762d6376ada8313f51105599270adadaa6dd359b64d289e2789411235b3649aae444e944ed5dce0425952a3751122bdf2eb9836a33d144310939193a429889627cffb6f9ae92d5454c14cd3326cfa6045da2d4a9cee346bbddeca125ca32aa6dfc04f1159eab44493fd6347f49fbf18f12255d15915a822ecff44da2fcd957737fd7ac7d27895249c2638a0899adae8b44694d67506ef2bdad8941a2b82932c727ed50b2c71e51929d4ecc51b24e95da1c518e91db357659238a33a2574337855a88118591cd1cc4c4f4dcce220a575b3a77a632697445145456decf62b4483711e8e64cb2e9d822a2249ace73986d2e3187289d748289cbffd0b71aa274ca74ee734dae79218ada3eded93b42944cb787d1a22a9041943c6aeae4d6ff1ad31e898d1a3c9c878e1c34ea0220822865f2f4246f763570fc0d15249403059d500e1c892081287d123e42c7656a1c208a1b4dc507f7f394132b00f2874ccd323c5d545453f3e52e34c9bc25fbf463207e286ade8e92e6b17b4b4c1989053366949176781f8ed95fabbe6390992f081fcaf95f3f84da063da002133c00042c78809a2540f6606b5cbdbdaabd65eeb499aff3bc7e7a2826d3713c65d3790c4220792896f4156b257bd09e673580e0a1a066ae7734669e152908408023993103e40ee5ccd438aa5b546f1a08c7dff8433b944e92494d486bcb74d048c3015287c2690899369a4d4e4e09840ea519e1795fece4f89dfd0dc301c81ccad9e773741d3974a0019143e16bec35a7ceb04926c93ca90c07894371cc734611aba6771de3e08e1480c0a1a0a2bbc14fd8a0e920dd4930007943393feb5e4d5e491af27043399be5dbfabe85f83841da50d8f8be9b9320744c2aeb618346590e10361474a691ada6cf835e13b501b28692a444b3d07680a8a15c9d47a756c90d4a68a8f500494341bbe952a14d6ab829470f3f366eb400053366a459ba618c0d1c206828897718afcbd57c60082067282969d67de66dbc776486d276d0501de30e528692c99cf93e86f412d78090a1b0e9d78476cd87137359001943397aea753c51e32bae188a25b3f989d558e27a1e06d346b7b24aad663f5cbc4a8f89bd47f3ac0f0c05cf18a1aa335c9ca41e01e40bc598ea751e4eed9d20eaf042a6dc3d3e931c02e942b9f4ff6a07d1d61b0f840ba5506f62cb42473488b650ce2f49e34a3309524b5a28964e82d68e5b92856287b1d0bff324af4c58b8d6ec6d37d5e2e6f6527b4cc39ecc1fb6e1158a654a7ce710a72471fb1540ac507c2f33254527dfb70ba40a851393244f880f4aa7b3bc004285f27f9eb80c4ae6f9924f374c07c8148a59fd1240a450f454a2adae9efc99491c40a2501af1dc34375db31d058142395b771c99e66f3e7f78803ca1ac6665769f9a7b33c709c51c2d2b3dde07d28482a65172625545ef958030a1a4f3bfaa48cb7bed7f096acee5eed689a5ae89cd24a68d8d1d0f4409e578636a3c7992de24bb2e47826304e8868d1a1e700f8024a118d4067931dab5fe2b24b0ae95da6ad622f75dd9259a98b2b23fc711dd11caa94cb457840cc4087c57a6bd797b6a6ab56c5b87cf272045289bc9a7734c1b63b037af418850fa249b395fad9afa6818e5cb9c4e3c1739390c95788ac4a11c42c71d11728243d974cf8eb8b8fd28bfa1d851af452631e38662124e4f8e714c10259c226d28e6ead2fce95e0a88b0a15cda2f34ff26e92d3a77226b28bce854dd9e7e3594a3c6ee8d2549ff4f929c481a4a82f789cf583ac49ea4c5218286e2892f7562c73aa14a0e0d3b1d889ca12c3e4a739b14e64992732266287bf415a5f4866871d828c18994a16ca1b724b9c5743327c1132143b135d63f97cc95247b2d328692dc74e265f41fc5101143f1ce4a9eff791ba14a56240ca54e429ed0d1b446db2c188a9f6d4749721657d344be50d22f7a9a3447ce4ab604112f1447dd64171d435310e9425135bf9e74ea996dd3225c2889d5afcffcbf4641640b6944b450bef0fc29ef1fafe566a124648fc83c61c54239e84e3257aeb7217285d2e8ccb81ae47a43c40a25d94feccefaf337b679e01ce5205285d29b48b7dc782176e223830815ca7125c3b7475553427922532828b924a51a355b83ad3720228562062de7d93da5821c8844a1a4749f8ed26f52830d25d4c7c35e200285825649bfc813ca4950daedcd3d64ec459c5092e59bd973ca9a5034f1e543993e2965461461424189c13b93d09a293b581d105942b94c6e3e065d931e5a112514b7a4d92457cde43553240925ff31f33842864b0a224830b493d5cfdb2f72846267b8df24889493b34bc3cc448c609039089df9e2756a912294ecac46c74d4c7268488408c5199519167265ba738651ce27dd86503372365e88304a21939924d741f9878351da247d897f3a304ab7bf354afcc8bf409a8ce96caef64d5a5f142f2b749023ba8409632f8e5115fb921355b3907331492a31c798dc395e143696a4b4cb67c8b7c80921bb28ed2869f46a0961b62eca75b3a1cc931c8f4fe7a2a0c5c3986e9111391b2eca2546d7932b5321b7282739f4c8168513a5794f794c32979c5a944a63d025fe65b428ca865182ba5621b3c03ae45cac3ad33a53df37d375c67812a38a264416e5ea53394914b76e3963512c3165bacd0caa4f0b8145c1a3a9d0313b663adbd460a38170fc18ea819057a02b8a6a92526ad49ee7e7f234a415c5b8fc9d93a4149b2fd96123310d84b0a2f0ffda193762d05845262a23f7a57bad999f9e712737ef8f581525315ff67b7f520d361ac881905414d5f4df6acd29e95bfd0d0f4145b9ff36e87e4dc829cad95b5d2bb20f3145316e120d19d275f63ba52849a286c7d53f53f2cb1a6cbd23f5b0911c428a923a4df7b51ddc4a68434651b258cfb9cd474474ce9d28ca25565fe5e88d519d0f4539c9e56133752e0414a5cb7bb33e9f433e51d08ca9646c9a78a2545ab28cf8add0dc3929a4134593ed6afc0439841345ddd4d6d142067711a518219b08d104629b904c58b729835027acdf2198b84431e7948fde179e5cb6b644e99486b819cd55e24228c19e7b57e8d7ca87d686783b65a1e6f49049944b8e902f3f1e3c4994444549324d3c35f8302412051132d74ae66a9df59028491ec3c631993fa2f09ba5edc64d830eb1234aa1c39c586ab28d28c786b82af9f33b46984b72b3924f7a2e59849a470993d3e89946459467a3331a561d76ae73a91d26ff632e084944b174aadf48d973139f8620823d4f157db5bc4f394b7b37e1b334c764b2065bc82132106288a3785ef1981a5488e2d7896592b462929224430851d8ec27be7efa0ca258769eb1447bbc6d1e082182289dde98c450750a094441b3c3a7ce9ae47c9b0744e9da474b89fa49f411ea2384fca1fc26fe6f778985f8a118c45fe7d735a93e74217d28e7e8ce194d123a2884f021a167df9ac48dce84eca1a02657daec98089b5d0f05f5ade39b25bca44c9287a2899827b953c6aa1fd306217858364c296d6af477280659bba2346d12534d2176286e1071d53162ee93ae0e2569933c1717da103aa09b75566776276fdead73669d3983d94523640ee5d6ac4194cd6948ed42e4504efd79e4a4eb2cd193308f903894bd24f118062170287f1c9d3a6cee5557c43d087943d9e7c48d1232bc9e3ceb08714331456ce8242875481bca3a9e74bc75d7990c2219216c2858c9bf934930d9c47c6719216b280833f324c6a942d450acb0f7581ebe1d84a4e1f7a467264919c41884a0e10d9d3c7327394331875eddbd4d27a98c198a256592cff39a20d24bca50325d4aac7dad92ad4d6428c750aa2f63e888a7c7501c15637272538fcb8e180a6ad9b3623a8dcec784a124a3d4cf85e7db932e184ae2ad539bacaad6a75f287edc93b5cbac53eef48295a62532367aa1d52aa6f764d69c83ce28e20d42ba50be8fed3177f27fc91b17ca258a6d9c18fb46ea15b28562362d3a482d795c9412dc11a285b263f83f395dcc298464a124a7f451b39f84fe1843b060a7154f7a993a1e5808b942492cb967371b12c09a80d904eeea1c100107f4e0468f1a62d8c031819ac13bc320707af02063470102d00333010500a0070f325840800024319e0c3170fc0d040880c78e74c8403976e848c00b001000000000000130c10248c0c3868e5740009200001e3ccc0c0208e07b3c9a5180007c8f473976cc380000060092801c3a68e4e07c0f1e34682c00000160c001d0468f1b35783c0d1a091881848e311e5132ed1b747458e8fc7f0dee3332cec6483b68946103b9f5c0616305238e401b3d508e311a81367a9461039141834602461871809145f440c751448fc4638c34860146125112e4f89bd0d612f66f4414e4641acbf054b2653e4431ef5fbae8f4e9b54cc64863f08e18a2a849aad43729534b796ab0f540c718690ce481c3468f1de9860d1d63e4383a5208a481801142a08d1e3b6af0b8418346024606512e29bd4e8da85293b38228f5ab962407b9a324114702511825ede430d1f2499a00519229940aed7d1a6a74fe50123d314926abe9eaf946fc50d03767a9d1dd847b37d2876338294dcc6efb081f8ae65993a0c5c7e45b690ce4913d14e49f90b52f62826dc8e0611b18d1c3ed2faaad7b92ced9d160240fe5564fbf73e90746f0502e3d1b84dcdf1017af061b5b60e40ea5506d8206b527c639590f8cd8a17827e61495a22a65849c30528763df34e9cf081d7c3032879383cd88c3c1e1dec06eb89136b8655a17b632e7f16126dd2e767de39a72f02ec831c286c2a6fa31cfa5e464ccd750f4af4ffad5dd268ca8a13c26aaead3f59134947cf327159a56c65e1f4143d16a9367108f513bdfc819b0cdb36b7171d9f00db59bf21133144f2c41873b1d2e43e9b3fa95a919791146c850cf98786b67ce511e4333bb175afa79b5f2ba7e99ce4c0e1595bb8d88a1b8233de8afa7f7a8a230144ebca6e79c66040c257137951c845ccdf38e7ca1687f19ca94ea2da164bd508c398f7f123fc7f29276a118c366cf59f388cb51d618e14261b5cd549c676a0ce6d9160a7aa3e4bc2e9df9311ed142e17efdf343892359287c9239cf0635a5badf5e61040bc51df926e72631e6a0c4235740ac3a475332f52356c0912ae0d960840a254159f8499e444fb26da660bbd75d9d58665d67be2352288ff660f24a73bf673c4838740462ec4827c0db917ad8a8c14814ca654a9d4ccf26bb4d1214ca274e9c4c9b3e6e4c1e1c79822373f9ea56b6abe5e5315255198c38a130a3b1e546e79b5012e5832a4949b2e464c58492609e4d7413bf6450e21a6c601859c28e28a1a4b92dc3684c528dc68c24814f6fabb5f9acb9b692cb9232c8ca95984f743a28ae638c338284d2959cbac4203f9328ee61c3c8116c068e112314753f4c701591196e1d2982cd182182cdd8619c306e46304480514c422993aa4ffd8bd2676feebb9027ade97c6133b6178abc287a76189dbfdefc2422bbb019bab0193610c945d983a634a1f28390b78ae0c28f93cb5993d54ff3ff759af46588dca270a5e966723493e925628be2ce97542adfb45c9f6a51f4a4ea3f8a8745685174ebfc918f5b641665b919519edd4d5613169145355f9ba174bcb1288dc99abc517422b028658e5b626ace54d29bbca2f4da69e2446fffdcef483d6c9c12445c51d64c824c1de2f46d3289b4a2fc293a3dd34ec96b6222ac2899981394707d22b28ab29e4c566a62f6def8445451fafcc93fc8de88a4a2a4edb4093295dda5e64450512e4928315c271532945ae41425319d50e28acc260f6a115394bfd37e8e9521c4542d45395d577452cb92278522a428e86726e11fe5e48de9bb5194334b1e4f134d1235eb9d288a7726e7fdb72b14c5243a67b0d0a163893e28ca7953f4268dc146ccbafb4431e6fcf5ebd498b5e69d274aa349fc46f9d1ad7572d789a29dd2fefbff99d5624e94cf3dc73cf3b392de290a68406305229bb0193210d14439e9a4c5947c4f9b6ec6cb44399cd220437630f9437c9828c9fe1dd366127567b27789828c8d3d1a42cc986ad012c5511af21adbc7ab84cd384a944b5092d4a9e31a6c3470e4c04183870dbd4914b38f7bfca0dd63e27a9228281927a792396476d25c24ca3137b2793f4c4ef2c78344b9f3ce6ac584ffac87f708e55af3ea5b643736ff8352cbd4605332441c51f04da3d5655e379fd89513441a513c69cbc33f7e8a8d8606114694c489e14789793da9128328b288a2da27b59b3b2ba2984b49628ab4f9336df0e8229288a25588efa7c827f14ed20e1d8724104184c8218a394f1294be89214aa64c9989bbcf97160b514ad98e1025a9ccec649ac952c23e88626ccba01a9a512b2c114114e427af13e5a96af70f446194091b741c91aadd02a2e025b98b1211b9d7e61f8a63372ea2e3cbe37e227e285c5e9d9c275dc74f52227dc0f5e2cd536f2d4f4c4a5c6c68df5b35d87a470f1d227c28ca47bb3be9e13da0881eca4928a9259f7836d9312279287fc698ee8c8ef80dc24339ab7310378f267445913bec56da6e7a695f1eaaab881d0a9bebfe99de3a14c3a40ad37b92e9564a87d2bd5d56092683e67ccea1245c54dd862939ad04c9a154caeeec875ba813976928484118044110c5400cc9dbd201431348201038208dc562c1804416c77d1340c1ca02017130128b83a170388ca32006621884411086611084811806a2b84eaaec73266f78310c5fbd5d81bdc87dac036277280db1d774996154c501b64d80fd6512405fd04d932a9826a84957b09469eba9a4d4b322d5abd7fc338c4793fbcc5c4b3bb67cedc72549b3161d0bc178ceb566fb75e1daa0adcc437446ba1ddf070a10e4d5a5abf2f96e552870a10c0b9d2a7af8774603f48321d52b4971c63836188a692acda0312f3ae9781dfd814e61b4d0b7419c519a6c4e8be426b6c2ed4b96d1ce3a2420ae1354fd9954be8180d4f3d2659381ed5015e42886875788f44532a0681614334dc4b509cf09acb86adf79efe1a72db44091e3c6bc4f7906980cbbc746021309af950c9dc20849732a971a2eade5f34e6d0c70ddd8977262d8fecee277efec034452da1eaeaa782255e2ca0ec038bbc1ee45b87aa1837557170a45fd8c55ad0411ae42e14500f216c510884c59df5a95942aa1a7badc567e0170a8a7013cbd2b0dc72108434a19862a0b3eef19b350e690771c5fb600d7d60c6d80b3785dc300964ad32665911f4b9234e792ce980c5e8088631ad2acfa3e480c81355fabbe97dfb1db0e8ce8ae7881e3f9a70f334c9ce0c41a88b0918f6914731a0adfe7b479d6c415b1a4c0583b3d7f5c77c3c8b3695af39e40a8d22286d80f7c8d5a379d803211b203a14d736f2da58b4dc1bf7c317210c47d73be59b9a2d9a84dbe0a1f6004c06d551948275612527bbe057b59619a918b2934b25d7a777031f6042b3723dc280b19ab4bf53aa061c2c1007195a530818dc1f97be7279137c421301a87c784c8ed6a53422be5d713168dcf3bea9fb86647bd98ed00454c8ef0c0c7c821c53fee176e1894dde5c9b2686572e3a6cc175de75e1acec4183799d9bf75a82875b1a4c4b72177ba2ec43c966fbff9628a5891813c7f33fbf664424030c4b93081256556b765fd60c4cf24f630faa394d846fe7f40c9eafbc1df4635ab0cae3e6a59b947c4b58515b89d3fe022f35513d7314a3480093a1195d09a3aad8ad093a9f96110dea2d185ba70f461ac2b9ee1ef8cf51704b0b488417bd659ba9053d2b3f92860510f949392908827cd8dc8afe4b1b266c05b99a6bb019e1ddeedca955012937e6e6e150c92ee76d2df713cc1efa43b3b77bb6c101c298156ee6708da9f934ffe39cce8b9de50552eb7eb0ddd4337f239700662a80c1117215ebbf9c39cb36696df6ed386a6af1e3133856fb7ecc1955acfe3fcb3f645d6cbdb6d5a6e61e4dd5778b2ad7bf69409b0e586208cc44fb4d8c94e73bd060ddb88a11a02e6c6fa67cee7922126b2acd23f268fc068af60fa640738702104235927523e2d6901a4c14126df8c86fbdacf4e87fc89c6d68fe8bcfc78aa0e861b540dcb8d53b30d5e789c3184988fa3ddf0f625a9c8c2bfab27130fa9ac39567c38e4045411595cef808b85c10abfb5af3b7e5462835021e3bb3c207a75fb51989c8597e863a944851af1c4045e00007402a0198c78d8397158beaa9f130786cc5b4383d7c93758101b3f298424118d6a594397d6ec4b0931a7c14cceb0a9239dc57da6e2f6cafa8583c64c5ca08e17cd6206cfe5f226b8bbdd028058617fb117080c6820e9165beb9f9270e1579c48651081e7e275ebc20a1540a3aa38055415ce84b054941f970c5047cded88af63f68572a1b60e380f608dbdeec12ef894c8c3ad602980a0d7103875f180daf5128b135b418c80bfada839c805f88f4b5bd26ec59a1212fb3a6d722f79bb0fc39ec302d07d8410f0f944f40a3f57b59fcccbc13996c1183bbe7fa0231b6d66753d4274e0f6040a86d0f6546c90cbe95f43d3061115d314a67068ada8a9fbb229788dc99a3a8cbee0011e24cd235513ef1d6e092eaf75cce84daf498b7491617b9146cff1edec3e43ed8ca76587699f291b02fdda9147032914250ab746dde6bbfb626564ea6c95aa696b810890b817baf36dd0916e749c75ce4fd2d067d00d6cf2e24182c3a6827fb034881e7880adc267e778c2c0eabf800474517bfe0bde8ec726e8f461344c75abbc979ba9bcae5cfe21c49340214a6658d225a9a7cdca4e0173169ef62b319bbbd2e07030a781d15f01ef44e96885b61efac5c3ae96398d850adb3480f9f557346670da49e6d2ab39d10315d9a1c14b9b0a4f2488ebbc0a003d4c033acc6f0c726e0d7188a27d57d13c4e80b2f9a189bff1d4f2e4e3f01226ca74c25f7583ba63a85e5d032c2b764ae433eab17abf71ab675a83de7b95decc76c5293245a5e74018419b0a8a9d6610c423ff89e408eb066860470e833af1fe0b8ac77d268b6fbcfff8d5b3e15ca037ead189ab3700d8462e703282d15f91020bc591b909fc283d4ba21ca1947e49de9aa667917445c10e7ec8496be5395ea0275b670decf98d62a8381f8fd931b6bd24f9f2a86924f4eb10b08a933469ea5ec9800d2ffab1374026634a09aa2df3f7b3843b631bad03593f3ccec284a70edeb92b33266e158eac075220460cdf305bc286992d6d6d6451a2309311f40ac51a6e794f3b0fc02ae269bfb310fdaea34300ce72f1d6c92d7b140d0a4d8448934a18de5f04ee050cc7c2e17165a8c529c0732e649922dd87eaff37adf2d9cc043a6089349dcb06311a69914160570985c064524f04c415ce65bd628b3c33e7fa29978db69c8aa9e4c601fd6fa5e02de74dc0043564ad3075a4a76c8d7ac5df5c9a0056304844277135642774e1877d21ab2bddf0fb2856621ee9a2c92c80669b9be9d004bcaaac18f800e8e53425f201860ecbd19731b05461d15fa6d3298c84ab1fd4b9ddc334155b84261270ff57668970b82f16aa204ea804e56eb20106587562b744d1adc0bfaf88c1e2a060e94c8c9a7042443782476a56495a59d7e255be24bbe48a7245e344c0c0bf8cccd64590ff08b47f8d2543f0024d1b8b6c7d882c96f213ff236a0858dc9265683ab320946c749ebec3f4ec3525e092505c97b612f3392218d8ce9595c8317920375471304131be1c880bb597c3f5581c67e4d254f746628dc5ad6e38546abea86ca0f938792c2bad564bd9d84aa2c7a943ecf9f710a443df1c442cfd8437aeb2de974521113d47a783aadcbeb85c03c43628f4501ceda86a2b87ec6b7e03959f06a80da4de8488dc4c1dc52689dd14b3e189202f9ee5f937b7af2cd2a5350c264830b81ac914f55d667b18077e304c84c72f0a714d72aa30fe1bcc7255aeecb5f173728a7363e29cd442e7b7751181384787b52656e321d56af4a456e012a8f777d3fc720b3125041e64e146c9d293972c2c6816c1ad821c627eb694db3ebf37af0758fed56f9d340f9eb1e95cf83387936ae0796b1d910096673e4f7e001bd940f29cb40b016b10ed6d9773eb0d58d5ad3aeaa3940069aa57ca7e152af02ed67339a7c3af6be4511e8187d7d7ace4c4a6827b9b0b329b098a3bb9f8131e3a9ae49807e6f8401a7a2aa8f7da5b92212bb5d765e1add4e6f948cf0885c3c2371990019ac2c20714ff6e33a5db48207ad99bbd96a726cd368bbe316970eac904c4808bc556c60bdcdd0f72a8723b619ca715fabf25daa325277b8689d2c44b4c63b7ef3e4a60ba015c45c851d3200ffbc437830dc6ac51e7e5d6242f5c373b0bc18fa91cfc2d1bf026dff1a2be6366a40afcf04207a8c40f7a28e605e3638c36d7d7666a7512083555de6aeadbdb4610a6a7dc04e7bdff285b07e52049324824536e6087085b44d1315eec65f9ee841082e446813770d733be121071452cbf27522967b5b2501aaf9d2c78dd5cba1ea07254ccdf5372513c560f0027631abeb3f6a6456adc9f0d720620677be34aec6727246f28ef6da50a50c0e1662bd0922dff37c393a62ae9eae87623c1dd2d535a7e295c392fea1bb23a209ea3a393a48bdaa8baddb4ab3da19206571a1ffc5ea976008bd250db0846ae4968f530b5deea4d032df16e5efe0897d93c27185880bd729566e857df30064e8c7f9c9877c172e22f4b083833b60c114cdf97a09fe5d9b2fab500a45341e4c2de472ee8446e4f89ef2523146a0c28490e9756a6090f6f283bac3f88a60713596b01af0ca05e98615c0e2ba2e05a21064b4a74cc9f33a02ae67682e8830118c72566df725ce882d7e2d35935e7bbf4c7c34e7c6f3e609904787a77bceffc2659da245c016c0fddb35746ee0d03d7600100bb3298c354b1b16d7301726564ddd94565c93a58472bbcb5995985c9b982eb43cc66da5827636d8f172c5eaa23eedd791af8d964f915ca1bdbb754159d3de750c2936684064148a4bed4a2c711bc5cf2d1807089f9fcc6d9ed9fc7377a3b268582b361e8d6508bb194b164d3864a814de73c553012bac14551d53e1c2beca153e8327778e821ffb5714ef3ba82767931458519dfb02245a88c45550d4e16d656dfc5f16899866cda21f151873b40c690245642b8135f0f9b6952e69578e37e4e110f9be961b2f70cd6be5b44f23a01cc2511d207094e07619c9e281fdf1cb60ffbd24bfc28120d46c4411f7efe2c5598e8d121dd66d22512eaf9214da8796a93ad413d59cfaff6d5ec6acbd6546f5093b6fc7a5fbdaedea84e19aeebb10b511fdc583aff7d499d173b1a64f62cc8309c47b4b5603aa12279ac4ec122c1150cbd18a909952c57117294ecd122a245876814f92227fa89429acc9c1515306675f5f87aaedebbda071c27605fced4c9b537084f65a0feeaa5fc142c84b255919b908a50808b8160cdb776227f663c45def5887080f92bfbc4c582f93056f12033226b8e0f6c957c6cbf53f243699b0fe15003761a8a3197de5ab5189b24d2deb058409c09d5e77ba2545a2bbf14a0e0c60fe24b6821d7d28c2b233262311897f799c95e809504b17fd5f32deee1e386c756d1e9e5919770113b99dfc0b26e21c84ecbbc698fac15c3c4f36cc73181c1f06b9e47548c766026a966d29eeb464798c4e1a8c8e3ea762ccf0b2dbfab155c9cc54173a10a0da09dd9f5daae1421eb855b2103489984bc88d6f00b188e250f361443671b766b79848c4c39582a8fd4d1905a6b0d38343c03d2d38ec9c56c2ebd2ae427fd45e322de5d5922a465e2bb44700579e173db34a6c6888e9c59810c367e6d67d428013ebf951783bce0a9649f9aeeb103a7d891edcb664e0f0930e28ece1a03412ac1cd74be60549cbacd46657a198586d1ed6d0738cc7264e325acb05960f0c40720b20bdfedf16bd5ba4cfde5376363b694cc1174dc4f8321cbb18708ea2b192e24f0d95246f213e6fdd0868067d61f6090e72e0bc896e299b9bfd5799ec715e79436914502a9e2408d5ac32b80c3eddc2f0da61c6b80d80b607f0fb70d4811ed880bce6bf2a313d5dbaf9fe33997e66a73b2d770b77e08f212dfa07775f77bf661d1b9240461b93ac3a133141e253426ac5baf10e6ed319ef50bf5c3cd77581ff8f42fbb4330a6e852ce218e1869f55f7c69d4f3048958ebbefc155a9395823a26510916ee42e3ac710a3f28688f2b2b7040b80d5732e586e63918eebaefe48256ef4b96a2501a22c51759a8be1bc98e0362703cff2fcf82600e91a4492d852c2171f58ace8455f9ee411e0f3f1678febc19824e73599f80d1bdecb7e812348394ca0db7deb892d0219bbeaeb1f3d7e095f477163d8cbbef087b5c5eb9e56be6b0e7636aa1ac9bb0772a299a8437e8923c1602af0c907c2e3086ccb3d470cf567651744c32d71443cb78a15936c1524ae13e15e2d12e347e17c441e2915bb12cf52c9238ebb0243a4d734275d96d277a10cd93465c6e783ba1f9f51a778a472f4c72e7e217d7b66cd1e27d2f7fab714a055dbec843175e829d53135c79cc211b8c3366517984f7cfdaf20d5133ca081b3ba5321502a9123deeb24070c32734c6430dc09279bb6902948ab96e773d9e28b687201c10de90f4ee48e3421e90526300288b1e5bc1f9c38e0bd4fc3984b87691ae16c8a08fd36599edbefa41b0d0575c6263daf6307cce43cd5f58408a023f84622f8b5d20246417ac7e7ca94da71b6744b99f440deaa75f6fa5aabded6baa59f0708a8996a35509f30e66d1bfa8d8fa198877292849c5645466ae0c4e2ec5a523e677a6496c72a286084b50150f6fd133a057f9c5acd10a629916f4fb83f735b4d006fed8241b65f0780263c9c1fefefb2b88a5f605d0f6cbfe44edac2376c7096cc1b5b6f2c923b9112beabd9c4e6a522f108969ef0a53ed514d08410961e89c866da5cc8e44bf3a633c0791829b3e9ff574e55fee2dbc957b11cfd6814302b042dc588fdcf09a439a6def5b5bc9084211e7b8c3f7dc46af3f034db1bb5b41b1246a932316a42b030d5d63491988f6522a2524c75fb18aa8574e2896b5f225f54342a0fe6f2f70359b2a907e1e9a2ca952761f00529380628771432c3d3c7f010e94c909827a2395f4a4ddbe7535c4fb35ab2765ea9175d027ac27a027fd021e2f1ae1b491fef9881d6196cee81441c932c92c637950d02e24b0e1fcec841844be8a257081da6ba72f8f02d4abad26aef5692892ce40c8338b220aefe23c138d6b3b52584b2a2106e80281346e8c4742502592bfc383bfe333915180c02ab7fcab6bf31d9dc10b644f300ed162e8a477c1cd5ebaea2fd443d14ed4ffa32981c3a01e6db92571237b0d209f34d92c832e5d6d997128aaae0392a19f4d51d08edb182c9c431c660df852a7ff824d45290335812aeb3b3a9e10f01d09e1f7576acc3cc51ebec48656fa23cb9a9f763fa32872bb7288570e4ba459978492187a9af410db95301cfa55221f6caec49d36889c82d834ce8637cd0c8eba00dab1c843557142fe4534e23559dd3923af6a82175314135dc748c312c5b5786d4fa3948f16d7f534dea567779c55ccb2f03c8f875213186408508754c9ff13092cb6bf254911b957958b58b5618b527f7ad1eb0c7f1ca739a0f58a5dcf7b4bb3cc1439564155062bbd57182fa41c0d6608af19a8981f65c16e2cdc4d17ae8b61245a1d4a49200ba29fd581ce959cb26d948832e76ec0853f4f5804132b7da96492cc06580b1e6186d9c40c6ef692b5585122b0bf030a5fddc144e9a5410380126070d87d739ea55b97cc243137312c108f1fa18f9d0573797a8188e5d2df267cb3b78cb28371fe0f0bcb79e92921ac7fb53264f3777364419c5e063089e6e363126b10383c2236a36616011a50c07c75de9165b7b7ff1ad5843bd4934647823e15365b1870dd9120068d66fa06e74dd9723c5168c28bc0130815d9673323dc545c70f830777c213527924ca5ecb107a478bf4b014eb53143224f3570d35204acac54a2c8ca52b3285495115d547899200e2d2e6f705139666e3664dec1ff72cf91eb77cd49de22b00999239f940276ba8adb54f036ad4ec2daf239c0e04d414bbf25166360946d4f2213de84a5d3aeb9ed90558f53c56086a5b8cdcb6dfbda16fe4f8200878baf65485ed54601141ee09f441fe10da693d25e2c1b46496f0375dfe127a012950889bbd689569264df770e91b5edfe8f916a307402baa7a3618dcf324d10055c27024d7bfbff2e58cc6e8972c0d9732d83bec60be11d76b6ee4885487be287c2ebde1a13ab49869101b84c6e26e93964737971f85f996c388fd023ecf2b1149537b8e05c03f86ee39cfe9bb949d5cb99c173b27e77bd6253f587219ae81ebca20666a14a439be59d32e44da90f1751a9441505e140c17d0434c4153ce35abd5e921a1b9f9907b49114ca212f0f9b4efef8e95087b3be10", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x106c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de296548523235144217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e8799046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x106c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de296548523235144217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e8799046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30035be32a48e566fd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314": "0x324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb305dd030831957b6e5ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e": "0x6c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb35fb54620ff2e833eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d": "0x4217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e879", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e08a79b5611284ca28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656": "0x9046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195063ec922e7fd49f5961757261806c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514": "0x5ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195093fb92453bc0e8a161757261804217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e879": "0xccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195098d10965f202a3d561757261809046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67d": "0x28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f0305c7924a3f8796175726180324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d": "0xd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2eccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d28d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e656d2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x105ae18c05a78be70e49f4495fdfca8389f99173d7f1b4019e077e24e15abd6e2e6c97f53e386c97a7217d23e3412bd98a37ebbd0574c2ae95de29654852323514ccc1177642b30456ecd401c75684a9c1cc1c529879d65cc65c32766fcd6b8a3d4217f1177620148602f0ce7e4787643f6da946b7c9390422b5b16e8f1745e87928d22cb1ad64189d654e3a0270dfcfac27fdbacb78fd65a11584bcce1f01e6569046c7d25f9bc688e9523897ebd59fa7f3b0d44198a0bc6c88a580aa9b3ce67dd2a621a4e8851a00566daeb02c845da19f19f208f52ec456d4e77600fc41c314324ff4d0173ef7f6e75e06b0151998924c1c7b8704f80f7afc3262018a195b4d", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x03000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/parachains/chain-specs/bridge-hub-westend.json b/parachains/chain-specs/bridge-hub-westend.json new file mode 100644 index 00000000000..460c25e8f50 --- /dev/null +++ b/parachains/chain-specs/bridge-hub-westend.json @@ -0,0 +1,75 @@ +{ + "name": "Westend BridgeHub", + "id": "bridge-hub-westend", + "chainType": "Live", + "bootNodes": [ + "/dns/westend-bridge-hub-collator-node-0.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWKyEuqkkWvFSrwZWKWBAsHgLV3HGfHj7yH3LNJLAVhmxY", + "/dns/westend-bridge-hub-collator-node-1.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWBpvudthz61XC4oP2YYFFJdhWohBeQ1ffn1BMSGWhapjd", + "/dns/westend-bridge-hub-collator-node-2.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWPXqdRRthjKAMPFtaXUK7yBxsvh83QsmzXzALA3inoJfo", + "/dns/westend-bridge-hub-collator-node-3.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWAp2YpVaiNBy7rozEHJGocDpaLFt3VFZsGMBEYh4BoEz7" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": { + "tokenDecimals": 12, + "tokenSymbol": "WND" + }, + "relay_chain": "westend", + "para_id": 1002, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xea030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x10be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6fc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d851648e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x5005ca1f000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x00000000c26f7b6800", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9688c6dd4b6b4b2765c40a96abc380692c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6f": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96bb9110ff3aed8b042cd7e1063686c53c071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d85164": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96fd9a90873d74fab552e7a2e92eccb38be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f963c20ca9a5e48e3543cad79f6ea2538e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x4192446272696467652d6875622d6b7573616d61", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd00587474043ef944860f5520581aa5037f9463647bd51e20bd6080b25e2406f1abe2ec64b0ff439520e6ed1847818671893a082d0b4f42116c01308207e08dc5aec66d31d43ec516ffa92d7662a8fd98ec1f76cab795dff6de9bc82da54c29a5cd10a10efb0e1c4f13c9f633aca37a92de6379982bb2e96028fc7a9299932a1e86bec7249429b798fcab616053eb3b55520f2327063a65719ee43b900a9e543d4966d3c3480f631dd10dc01013bdf629388c9cb39a5ea32616f37d95349b2bc62433a2298b8482459233a3906bd2ddd5c38e79b4ee1899cd455a240e53c4f6cc47e3efcafa3a7bd677e4d752fcf7bc3dd377dc248309df77a74a0a5f7255d23aa9ff2e6ab7ab3314bec5d5195aa78ffec7d58ebed7715a66ae260ae16370abaf4afa1e73dedde7bdd523260a3f3e6661dc99b56170b9fdc9ecf2e8ffe9b755930e4ce1fff4db9a8b9b0e0e218d5c875531f96b073b6ed333ed8a6e008822c32dd8f64c49e3cf64a1deb3bee3bf44b4fd2bd3f7bb3de03fae1ed9b7cd5899cfc7ebceffe5e840625a3da0f12b0df5c7dc35a087add65c6d9285f6bfad5a47f4bdec62befff1de8e5847b49f93ddf9ffb4a490b3c22c0fff9fee214cfe254cab1586faaf06d4cf1f6b0d08c667edc7d2c81db18ee026e96a8fd399a1fffde3905847f475c73f93856e00881e7b9427466394f45749dddffddddd0b757777ffdde121f8218a6f547f7fd7a8fa68f7ef6814d3fe410aedcfbac7534dab0bb469d541fbb77994603bd998bbf2810add956a4c02e8ae7a38a2da4f7ffcfdd728ebe93e666d4be3c614db9ec9d47acf58038a1420b21e630d487c8babf1e363ad019934fe6aafbbf7ab01c1ffe9f8ab39b69ae42a11956f6d555affe3d6561fb57e3520f998b5d50850ebb1d54a5c6d424b6f6d7557d4fab8d5edae89921c86d840adafdb5d0d42adaff187c76d6969d3c1e388238e3134beb55519e87b8c336b7b7f018b5a72d3c1a291ab4c2d4e078e238e38e2a09588c228e4cc5f4d94257b1cd8de3471613b8d3077d5c38a564977d5c316ba9f750fa7f64f8dda956a0c5d5a75d0fdddb13fd8f2e88d296f4c5fa3f877e96b54ff3ec61867fc5867bb343eba48e96ea9fffb7ed7809a5ba6f1d12589ee96f2bf6dbbeb8d696bfcab39f7560392ddf5d2de98ae6681652eb0a5fddbcf5ff7b1eddff77e23ebdc1235d380f1f336c9982b55185a1fed97fc52aef76cefd449f9eba48f1907ef76773f35eabd3fe6f0fd41c8bd8d6973b5df7d2636b33bead3fe6d54a3f8376c7be6feebae9f35a0e5b6bb2a81b6bbfe9f464dfefe53a37c633a1bd56f6ad4f36de96aef7ffaa779d39941527e4999d399c19fdf9f3921a68f7be72a53fe9f7ea601b67477d449fbb16d54e5f77f9fa30389c95f33dadbddfb044cfe0bf01b716ebb7b5c95749fb747b324aa834599d468339cf1d6744599440df36cb7077ff5dfeef665a32a53ff7dcc3718a6fffe6a3eb6bbfae8be73b2bbfd9fc63ce3cda9c624666128934c667b2c6115d5e10194bfbfb50b3c958af2b30664aa287fd6a8a5fdab016115e5ffe9dd76346764d20d009173af816d63bbf3c20126fffe96b0f59e28efa1c00757ca192194e93bfdeff74fde13c57a28d18a5c149982027f68c15ca102942f62c6a80296149493eff43f2eca2905e53de48616cc152a40f922668c2a604945912928d277f88716cc152a40f922668c2a604941c1e2ffb8f51dfefda1c7fd05e3df46d57de6b6bbfd7d22e61b6c57aa2a742d6c1730f9f7b7a4c306c36089242e9d3674a8a0c3860e183a473a5e747c907325470a3938c871424e0f72769013860e941c1ee478c9c9418e303951e43c915345e749ce514e1c3945c8a9414e17393de4c420c728c74a0e14392ec869418e11392fc801470e113943e43cc961410e1039a290430a3a44e498428e0f398890e3448e34727ec821262705394de4202187891c71e41c21278d1c2a3952e4ac20070539aa90a3821c247292c839418e0c72b0e45421070d1d554e149a247214714a3aad7152c2a98d131b27334e4338a171f2e21483d3151c28e010010709470c0e12708e8003049c20e08c81a3064e1370ccc029034708385f70c8c00183b3039c30707880930353114c49386c9896807306ce0f70dac059024ed28d13372bb839e2c6e8460537546eaeb8b1e246cb4d153745dc107123e5c6889b14dca0e046899b19dc507193e5668a1b19dc60b991e226063730b869c14d143750dc3c71c3829b2a3743dc087113e5a6e826881b206ea0dc3cb9f9e1c6879b1e6e54a63126384c5030b9617a82a909262498904c473019c1a404d317261b98ae98a230553159311961926213874d1a3668d8f4c0a68bcd17365c6cb4d80c6123844d149b229c1ed4bc5133851a29d440c1c6079b206c7aa869a3e6083548a861a3068d9a356acea8d15223839a2a6aa8a8d9a2860635596aa6a899414d0b6aaad44451e3848d1a3541d8c04113070d1568d0a80182260d1a22d0c0a0464513041a20d0944133060d189a18d4f850d3038d14345868544093021a24688e9870cc31130af38df984d9c614c2148346ca0433d59868cc3013073440cc20cc22cc1bcc2f66976983e9c5e43257b38bc9c5dc62d2606a31ad5842b05181c98b09889c31333fcc006133c63505cb4806099923648c648cf02b6686f05470312113c522423fd129e82a1619355b2c38fa8a0504cb0839516815d8acac319a05396ef40a72b6c811a29ba841ca01a3460dcb8ca9440e1cdd0216c26242bb20878b1c2af4949c29e478c302c25ac34ac285021313da896622e70639aa86a266ca9584a584b69263044b0d4b4c53b1d0b082c8419248d7132e363022b02230299811d810d80930240c50802b09272c4e3d385d71b5f156d718b08d9926c80461060a1e46526130ae1e5848d6102c30d61939502e1ec8377470a0c34547c1b4e5948413146aa25043058f024d1197159716ab059717971225364a3c28dda00446a907a523947650fa81a94b498c121caf0acb0d6b8cd584a7c5a68a67c555c675c625047fc2a57028a014201cf38709c47cc22eb0a1c2565c8c23c18d201346068d69c435e01b701716141889d760245c5b2e2eae2c3a893e81dc6215711dc1326246357d30bd611df17a20038425859f601121b190475848b081529a82c98c8b0ca9326d81a3841a2badc44c190c25668954c429e20c7a89d20a729e10b5340a4c63949c702b66cc88555862c808c140c02df8498d0bac29d6129612960c2c144c272c24260b6695191fac221f6309e150b0869054c8195854ac342c362219d61b561bd69115c6a4850c115715388839039b13f0103640a0419a656030c05080a5006b027b01e604460596059b028b01860593012605a6028c05d814ac05970f30283025b028b02bd80a30176054ae2f9718d70fae238c09ac0ab604f60466e532e232ba8a885368744093031a1cd078a10183e606345fd074a1b1018d17345c6856345dd0d480860b9a2d686840a3054d16345b68b0a0b982c68a9a2b3455689cb0a260fdc03a820d10d612ac2fd71b384fb84e80f306840202017f803e4028f0098cf26ca033058723871ba52a2515e0ac2153844c514d16d30c8f43aaf19e5850e02481c6888b0a9714bc08384cb0a2c430667a68249921b8c872828c94d6a2b7b40eb024ac27e478824d143021b0281c038601c3c129602acc04af8097e02aec044761ae715a8295f4a8d88ca141c2a98c8e82c3d820c114047f31d1c02a821504d3155619d6096ac298b0e028a62498da2815c19485e5031b241aa31810a0009e9906c40263ba7c2da1d41eb403110f085142242807214230761c9004091172cd40718390241f4002e4c891241010ba21e8c891241030c0cc13bbc3912244848270101214f40102ccb060937c0049112124581224021d841451428590048580044482fc4c950dba0149122442880829a28406dd8024890584908820c90d375016669cc021c90d4138b430b382dd8104414684ecb0030982664092a4c80e3b0465609b51c18ea08812ba24c8c892241bb8c036436585048920480434d4804310084040a40603cca46077307243500e3734b13b0821095a12940392223fc30492221fd09999b23714d901499125424d828490e088122544842c09c2e1481111a48cdc90e4484ac7cc121b0221448488e0404428a80234334a94a0c8112245848a20297233830211dc10d424a86626895d920402d9cc097687a02242459624c9414804446c66905824498a08115922021c84082539b28390224a28912522a0376f0a6be48624473c20244888080e458e106122b31c74c40344849088e00342846e085a52040724458408c9b1029462adc0e8b2852e11b62b958a3291e788700bdcc24ad87a3af01feae8409d6d8680bbf4d71d63d4a2e67e8add1ea3d6b1376a518b317aeca83df7d77df26dad63b7776ccd7737768cdd0ebddddba347df7d2e13bd5fb73f7f5132f3cac4d72edf3247c80c6962f4dedd185f77cb27fdf96e8c71a3f7c218e3babcde945266e635ecb664dc4b3225f93ac6ce715ef76eebb575b9474bb6f7c67d298f71638c3872a663dc8d2ee5faf3f806f0b63b46cf5ef7831d3b4ab9bbddeefdba775b6ec7dd8edbbddbedb4bd3bbeddee175bd88dfb1e7cce31f2f308df8bf141678fdb2de5c6ee95b26facedee09fbf1936f4646be6b4acbb2dc6577f477f9c25de8bb71ddfded7694dbedde2fc69fd849778fccf0010e6840472303948931c218b51d0c7048231dca1867bcdbdd6334c118635bcfdff5fcbd88f9f6fa9a4c1ac7c8bcddc37b017dea75776721f3d63c00b1e345b3bb2f6b7f98c3a679bdd7c2d734976cb81de17a43b8d776efe3c7bcb2574a99374380f7643f87ddd2df6cf85c3ef8dededcdcdccce94feb8dbd592f0b9d65f1d4bced71773bba1563afd5fedc5fc9e7b36b69bc7b7b7070bad7dd3db67b778c0edd4fbb32c66e993500bca300bab97979bd63f77befb949cabe91b1a335e3eebabbcdc66e544ecd5eefcadce63d0574af7bc7eef7ae6b574a29a5cbf76666decccc7b7d5dfe9e3fe9fe64bcaeeb6aec5d524af9dc358f1bd71d67370ec0b3ee8e7105d0dded31ecf0ddde6e21c616ba7b3d6a5a6f7b8c31c6eeeece121063d6bd0f00edbd0d805df7ed861e978bbb71771d86766c773b72f7b6ec868ef364cb766fb9af1b3ed87d79fbdbdd8dd2bdbbbbbbdfbe17fbc11929e525df7ab6ddddbbbbfeb20c013cd90bbe6f17bede9aac1bbee752beb7beeddddecedbeeceeecfdbbbdb6a87d13b6e773fe6d6614327095eb34d8225494210148218038a85264946200400940260f815604000089014c9610722397c028e1431c2730002f0e85ce872b890830001288001786a70385224871b84081d1101910f04e1b063110086007042449604210902c1921d04802d0c413bec10b444490892dc20644910932437042d114264071c6e08128200232805c0a0e486a01d7a4a39dc2044c4034272d8a10892221fe8b60f145912c444c80210a00005c08043909024424a48b0e48600948e0431093a22a4099110b4c00208921c11020224454000822447727c93201c90141182a408911c6ef8c00792701c825d04042df9809025498488dc90e4c811223a0a8043d092201c9624118252000c4260083242e4880784041559225480a0101411422282259c8dcf078444c0824d93a01c84082129b24489901b76281282254484762040cd0e394c0b4392244b728cdc40c403478e245952801d22414b7248106444885093202400d0211404821c2bec20b4439126413aac4500922445846e20b20312224b84840815094108927439168626453e10b4440967b38448d0911b74982009f29a45801024498aecb0248889101c900429514244481008882c4922b48310a126413a982009f202685e3411af6bd810229ef1a12122a2b87008110f0d110d0d0d1111c5a1a1a1a137e43d64888986867c08112f5169c8120d1111bda1378488878686868688de901d1af221433cc443433d648887867ac80e0d0d1111f910221ee2214b44740d191ae2213b34d44388181249226b081113f10e0d1111bd21434b148710f112c121bb43889888e80d592222221fb244443d84888978c812f19008bc14f0ee72087620b201717471c612a020052ac4912a3d14a2548983827dc6edeed4feb894b71a84466e1be2d40f1b47aa2847aaf4bde960a5c44529fd552afdf51e4a89737239c1022b984041173aa892ba1e4ae9a140297127dfe1b7382017fadfbe77a24f06fab0e317d87baccade1e53efbc7fbfe4d13aa7ccf7fdafbb1d8f04d8fa15df32c58de8fe83d1924f4a6f96d192dbcad285652fcbbc397b5bcaf6c2324de6c9c878b3cc6ea66d96edb63249741f939999c976abaedaad7618ba4f53f36a6abcb9060cdddfe2a5af749556b551129217305b380b1b7115568d01e3cf91d60b577745b9dbfd3d185f8cde1cb9dddf83305acfb2bcd97a3046cb92b274bdebf2e6cb92a5d2756158a63d4df366edc2b24cd3646466e69bd39ba796b14cc6333319cf99314d8dcdb3b1f1669b9a6c6db235ed56e7aeb042b638a7773a79f38926e3ad26e3cd06b3319932de6e341f4cb19b8cb715341f4c17e7e1e078338e9491cb637fad782365782801db1d3572111785a129ae3eca9cedd26c775977fcabf57270a5c4ac9c44997298e5d1c4acebe5c71ed12f4bccca61c2f0eef0978c68a6e4a8c2452c858bb8e88a991dbd17ccca616212ddc35f3a16790f7bf11d7f33a8d0a3683485eee12d7ac7cb7bee42fd6b7ce2d9919bc0e808b303c985a418c68401431f57b9e8c50c08aaf8323e1e4c7e6c9bc6d49d4eff7e018716eaafd39c049ac2df2fa210057defd328a7fc32346a57406c41f97368d4527ea1eea151f147a051bb122289fdb202adbbf2547d5a7d9ebc2421b43c8155b0ec2a081ed0ba6d50ee473103da47972c9b0f2eabcd07972e8daaf31bc528ca93f2c7c00cf0df4167a86fdec47c5a7d28dfd0edf20509b4b9ba5e28fb54a0a98f2e3f3d1b35c32a77c29fa7bbd25b8f61966571ee25eee37bac33d6dee73ca3299fe6eb53f9bcb2de9fc3342a7b7f16d33df3fdb98d46697f595f9279b9b15177fe341b17f98ebf9f4aa814a292db5c0372ed7df6ad0159998faada973e7becafc74a1b767155885effd3d85695d0eb57b3c0d212b7dd49ae3aa117c7461a0636c52adff19f58ccca2b5e79cf10dff1c7647845fde7265f93dc772767b61f66de09516ae6df3644cac7b82a2faece13955c0d42eb111e6a8489532b2598f90db3c99fd9a060abd1c0cd3c6f929bd97aab3ca868ff8fcf7012d47f66fb8148b5aa6254f4c4871e54292844292c6e46ac0cf1a4b0b406b9ef37b54ce73849eb1217d8eea8700a59655ed7c6a9cbcbb551e04777fe6379b84c0f544f3a8aa64293c8a4c8edc1cb83df1f6be7c2df172f3ddbeba50bf55d6de1a3a579a4a017980753c04557b8888dbc07fb2cdbf8b16d7d07f2eed38ec7a7c4cdff5dc7c383c56cbd674fefebd38d5c9590abf371fd3f7cc725e5ad4a2a23c5ac3c0546d1a80a8fa02a2b82460ea7505885a7507f78e43dd7fb4330fcfed7065f84619cc8ea1b26ac68d78bbf3e06f85729065d126995c1815fe85f1579a17b03baab2215c55863aebfccca5b683f6f69d4168df2ba6168ff220de9aedfd262ee2a8831d43fcce3551b18cdf6f09e063c595948299edba3e9feae37ef93a944fc562f85b50df6f9d71874f48e3f6fa7eedeb6a9d30ce69bd2a82a1f958cf29ba2d02145efd4a70589f6571eea6fc5ed4260fd1ddd5fdee5e5ddf7de3d7af4e85e4dd49f3fbff77a777a0fab7ca7bf9f0233ebae9fb5eb4987e9af4fbb1f6e5cd41d4ba1fd6e90516ca6fa3e2f03ae34a64597bc4cba2a559f6e4fede84bd513d71df469aa4eba625255d2eda752a95455524fca39fb77b9250c35a0a701bd8cfaf3f6fcf01dffa3d282d99ae34a634abae4e938623ead9d98efb60790dfd99e09f08ebfe7a075bd9c8440fd2b0dad1d75dea92b06f5af25ca1ad08fe5e1ef39984feb2679a1a1cb6508336865158d0f1bb4d1ddd219ba5cd85863ddf9c954220aaf604b74e038e8be90a4d6f363bb959607bfb55dfc4253f8fca1052174f8d6fff44f6fd6eeaedc7ab79ad1dead5fd62eeea0fcd085ca4363a0fcfd949988b9bf5fe5aea4c989b298c11359c818e30427489192a1753ead27f6014bb204127230842e68b044169a163350a1832e9a6085104d202395d1fe29b320a2f2830ec8102345142ca801b66e6411860f5c8081e508405c3478ddf3524a992bbd87552a95aaa8f2d0fd4e4eef19fa8112b88861869820002155a22d7b7770336781ed1cc25c2fdc0883d2d0f5c20944a0278acd30ddffe99e975a2f5b63a0fbfc8e9ca80b74bfb336df4cddf14b6207288c0045163dd0600a95f4e28d1ea8fc94db49f2f5f2ad5fefb9b8e93bfcfc4cab89fa4aa552f990aa3aa8efa0a9da51cf42bd8b942ca84b6e46cbdce93d32c51f37b9bd4d4a99fca64631e59ffc3a1ac5bfdec3e407478c61638a2a82d841cae9ca0a16d4dfd4a8a627fad33fdddbec8ebfb4997a87dff4c43cd15d597182dad05d599142773067e4e110d87acfea8b2954c8e92e0fded4fe64060c80830372751ffefb0a6dc0cc7d78817d23d0dd7d397663d7d7d7d77f9d8899076ca61fa80500b0a0432727c70967851b934d0dcd9c91d132ec2a492bc2e7cdcb637f351d380e6ac5ffa779eba9c7b9dd1dfeed6d290f3151770f81e33357e57bd9efc96ddfb3b85f728f6efff6af77dcaa90f7f63b7cbcdc924785bc9ff0f7efe7f5f5fd7adaf7a7abf9d39f266266f2f6d1f8f0428b7fbf8415fe76f71efc0739d9ddfbd7dd7befdfbff73ef263a435d678bf8bb22cf956fc2aa5251bca33de2f57275d7eeba1fc6a3dbff57d3531fb6b46fdb34631e72f3794c5ccffd3567d52e8f11a98ff72d544f7678698fdfbdbc3c7521d380e2abff22fb30d987e6b97479d747f1715bfcadfeeb8faa87c6bb301331f954f8d3ce7df9f268acc6030e7f7ef0bf4c6dcebceb99fce020c25bc082174088f9c5646aeabd2b912228c0e21640821840c397ed25d0da0185522841046871042c83d77034ea14547ac8217336ac0252929498b8e38855724c384089f11d314ff6df13d86cc3ce104b24a25f9117e7c4b72db5d7ceb31eb02efe166fdd380ac1fcb11721b9f3c0da81f4ed3890a2e9820554e8a7c8c163ec60d1f430377e315c924bda25724b3e9637c8c5479a1011524a4305768aad24aa5828f9f7cfec71a507cb72ecb7adcc64dc6885d253884c687ffe318ccb8d680a4f5e2931c43c82dd312fb1a60c82bb10957ae5ce1455252d24a87f543141aa40009294cc71863fc7e0861e408e38c042085d80c3a26241925d5206909495796a0d1c83d55a98ba77aaaa4a4248c46cec72c0fffd9c476346534724dbaf32f0d0132182ce7693b1e0aa150e4c2e6bb8e87c787d63df2999f7155d23c569a365ccde944c3cda3c949297fb7f4f544e58ac2dd29bdfc1227b7fa429199c4a147a435fcf22e278d2b04297c2b8b18638c985b177848a315217ddce379c2e14fbf1a3ca4958ef8049fc949d6bf8fdb9391bb9bfb79b1ddaaa4bc5b7d94f9997bddc5879b0e7e6493649214d6d713abba737ed205ab2c56c96c7227bda4a428258b65cdaf3d66bec220f3b5001a9c14c6af4ee173bb6d8f0c557af8bb3dae87cfcb000af00bbe5db204e1f11e25146006b0147ec17fce9929c39d34ae9e78a8e422579bd60d83c6bf36a6a5ed6d075f89f74896c20cd87d41fe53989494d46397476d2abf36ad2c85fa07f11e36f21d7f29f7a89e68dd23ea8f651b5336c2fe745a8c8db0af92ae174435f88cdb30ae721d008a1b8542a006e4697c8cb38bb783500362f1b68ce42a5318b7cbdb2e2cc3f28b2ec8d8519fb9eb6c6eeecb9e06b9d3054ea7d28b5540f81246f832c25f1a238cac01815cf62084ab0179f4c5d7428fc6f89163f228e45e6c48a567b6510ff63b7cfd4bdfeb7ead01e92772e629f3951ebedc1ef1e197b687b4b094b62740f0a4e42600fe93d203f1a9ebafa16b8b9b0028875a72306231c2d2b6ab80e7e4652f9bb19d0ad872b6d866ae01595f25157a55cc0d5bccca56f3c1df0fb7369d7aab5f855ed4801edceaa4dccceda6c3c6c799b808d36156817df2bd476780ed8eca46d41f0392724eedab4ff615018b7dddd9e87bf9d5d4590eebeb89bef823430c7ebcc706dff16f81c2d7b8da02ad279a9db013bd4eb4b4aba749a0a9c51d591efe4c0430d45f75b24900f22294410623ba0120c2f8bd816da3604fff468fefe1f628c6d9d32ef0de3f6ede423d8373424dfb9be831ebe01931578754945fa260569e525b4521f4d1749707fcd568e8d4fa4e5d240ab9e64d4852f8bdc9ee7cca7a4aa2f073f01eeb21c757a87f159a3590d96423fa7e91686d23bee2298beb31bee3ffb898fcb58da8ff26d1da46329b4f484a499fd163c17ae908bfd24840d2d865c0f5e2fd3c9de4bff7b3bbd37b721b9a2a95aa871496f7ef2d23efe3f3c34d0712f3bd051fcbd121c47cbf147e7c0fb51f4bdf632f7bf0f9dfc67c24a3fcb69a3dee0c6e4c597b5c364da7ceb27f42881bb99ac3297b1eb723a78d9c5c5367f4fdfbd7a717c4ef6841aeebce5fb2a0db274feff4aec07fdb43c8b778da0c4d23f79647fc48646dbb5dfca7013d274fc899781b019b26f8bcc113e55f0d4807dc6a47d97af8ba830c7983dc6cebcdb9d8cb56bbc0a38fd380ac13aa6614fedc1eefe1c37fddf3dc3cc1af939ab8d37b0fcf5b5c95148399b59dbae3e9ceffc7ccbaf3e75f4d76e71794c9148bcb2df3b8b73c6085143e9b206ebb1dfca701c51797ba06e4d1f7d374323d13641803b97a53ac784b9800e94de1e24d795762d2bbf2aebc296f8a5cedc020e41a15330ae126b14c08ffa7e326b78b198d4ee4b6bb139fa4b189b422b420e48e6434d2d5623661b7182b0c121c09068e847e2b1c09a390f33193091fe3631cc991ac30b20af5c7b2fa8a68fcb7552091eef2a84d82acef540743e3ff747542853e28b33aa942dfafb6dd45ae3a9942dfbfad3a128ddf5be41ec799679588c6e7b8c1af4f45dfaff5d5c7d0e749f439d2c977fc1d8cf75cffb87ae41571c9e629bea4f14b5c9593c6975c9d277aaa4fe343ae3ead275a7745fd5da3a153176725f98ebf37e14d89f54da133c8f81af55ed12ba2afbb9555ac8648d8eea83cd41f035a69bd5f5fbbd2d7a7f0d7a7c35fefc91ebef41eec21578ff050ebe363d62657cbb4acffe96cfbdd818f6dbb3bb5a3f04f14fec5d513ad934e0abfc4d549eba43c142a99f4fd428eb93a84bee77f1a90a7ef7f3c426b5b1a2d8b3bc2436184f021878487be4ce41a10cc42aba82084d17a55544a907240cae043cd47d34b967c8f164cc72065e86280f9d5a25b79a8ecd0ad9d6a8a0d7b6425488416952a54683f5f254ec555ee32257295bf4cc8a9a658960664e5b3edc7c78a8f4f1799490de8bdd47c34f52f65174a3e9edd08bf5a5c65328055fc42b6619b952bcae4971b6f21b98a6f61153380b3d817fabf4c0e8306cba31fb24a02903ac75b96477f89055be2e3c294da84c664238acdf4f0a854aa1f52cb2f1b7543f967146a74f0efe8787c7eb25049f97f50a08646c1e7b761087f0e8d2a517e2552406194ade7e7a2264e58b0855a36a0d6470dc892b10114be8483c2cf1ad543e116142e0a86a700ea5582a0fead01f96e4ff76a406c442d7e557835a711120d2788b043df470de89dc1bf0224d07700fa9c40017d38886d3c57a954aa294cc080be7f2fb3693ae9f81d9d0b3c53d0f731348a81a0ef7d64f889c00f0a04d982beafa151fb057d6f030786b441dfe3d0a88bbecf6177c5c41bf4bd50a334fabe49a376d5c40ff4bd9346b9a0a2d2c39346b15064057dcf521ae5f43d1ba5600b7dcf4934ead1f7fc9ea9346aabac80bee7281ab55fe87bbed2a85d5169027dcf52346acba0ef394ba376a5821dd0f7aca5519b03fa76b58225e83ba26f3583908223d1fe961770c30a1ff4c046117078f16ede53a9542aa3549581bedfe569d47b9ff7de7b4f6ecfa6fc356a0053bca05dca81154bac5ab0440fa02c21842d9660821666d6d05d2d1185254c91e265ded05d4d7102698a9627c63ccfcbc293c69ca1bb0202a90d20a08081316d7ec8c64c19baab2094a0f5ab4c8cee2a8828689d1a108298a279be7b0208eaef024f1058f0bc226cbb074e6a6ab83e9fd6b9710afe4fd3b03fdc170dea4b86bbc3cc8a0efd9262d6f56243a3fc7f644b4468f29eebf4d867efbdf7decb1ef6b4f7de7b6f4a5725fe4ff3a6bdc7ae92b466dcded582f9fc4b44dc8f4abfc743fff5bef180a586fe8be3c11fb64708218c97f53f0d2184d08a57fb15c5ac3a68d8d49327f2e33f29fdf53bba7b39f8cefbd2a6c477decbedbde55566c7fdf41eef864630a2efb197313951fe57f41e6b3e34e63ceb22db23fd374cd468d894f5446c5826a801a6c888fb82c1ac0bc6060e34aabe21cf881b2611a3b44a7fc518638cf18aa588c518638c31c6181f8b7fc52fc597568cf1b212e39146551da146d59c264a628cf17572b6c7d301b63b6a4945e3638f661ce82e3261b9a3740f703073f7141aab60fcc4bc1efb93efc4182363b5554fccecdf93b13d3ebe13fde1cbb8158d5f7d78cb14303e554ef1b3d0c85768fcea432357a59c5e5c4af6627141b215b00ffaa4c6448346268346f642e36f6d158daf86eee267988ac6bfb8c886eee2bff8bec5bf5c302b7ba1f1e373188d3a6a54c5f9d2a8ba5f68fcf8eca551fcf16b68547ffcf7d27bdec78f8fb33d7644ce4849f55a7ab114abd3fbebdcd1dd8bf38969bd9456e97fbabd24ad08df5f2f8044dcef05d663d795d9dc43d3a1217ebf06e0fb63de8fbd06fcb3efc7b0f72d7b97d19100bfd761da74e9a63adb7418db7452d2fa9fbe4ad6bbf5bc0591be637d5bd64bcbb22ccec82635159876bdcc6b40be7c198e072c35689c0ebff69b92cf830e733a41641e039b9279ed65381e9c60d1c04c135663a4348e07f932cf03961ae4cb703afcd613a578b85ee6b5af41e6b5e7d738275898ab417b8b7382bdf64eb29779a2d4a63675fda630d6807a890e33307d8f814d59bf04287e101dbe361d7ef99bc241fabf4d87069997af0199971c0f586ab05e7b1e74f8af972ff31ad0bec4f160713acce9d070bd7c0d94defad25baf3dc4a13b6d93296deb3bd7e62eb36d4adb36756d9b2a6d9b925e65e630a43bff2a37cc4aa2d7ef0b66d90f6651097e43967a68d5ac268e63d64c5a312bbdc75598991233464b124d912898fd3feedb9145e22a4c7e61fbdfd6ef757777774368c9a78367f5c826bdee608c566f9267ae2c95aedeeaf4d1195d6859327b4ccc2a6953d9a86e8a716606dda559a3fc5907e5fafb85ee623fba0ba35b0abd27e71e3d3266954166a55276bde5814959da2f7977377cdd1b345d9774633657330ccb324d939199113eef19b6642a112d95ae1d58a665ee892e96652e00adcb54222ae1152f4b3ebf9a3119b631c2117d3f85331f6279bcafee51f685a765c29aae62fa03537ac2845cdd304647f47d7d1fbdd0f7ba98fd6174f72ccb8a96b4a4252dcb8216f7bc74f73ebea30bcbf4f7cf8bf7bcd4fb77d4a8a54f876965fade0343df7bf8f579a14fc6a328bc5edf5ddff5ef860d1b767773fb62f09d3c3e62cc7dc8c5dcaf5326cd27036c9fa7983a4b1f11f369a4cbe509165a3f9b22af983c4559d80b23caff4c336ce93094ff1233f7314884597b75f21effe7efd52bc2d4d180f3f0743450e2017e49fee3746a786fbdc53989ff9cb3015aef9c4e0dee04be3f518a2855e23adf1133ebe9599be44d59dba6e2b629b86dea6d9b72a02027e7623eadbdc29ee895a9f66ad6d91651b75bc17647b5b2d09e2adafc7b82e5d15f9deef3e647ec0bef0c13dda7d177e43bfd15f6b08cac2376a7bfad2a67d0b6980043639246357a5531eb3b3af29e78148fde513c7aae49a06398e5d1bf5a9088e43bfd3f1d91bc47b64fe5e94a5fbfba518d48ee4611c9dd2822953a1e237938372aea89dc11ed7e6e2aa67f8d47f5444b4f98351ed17efee2643e30dd1d75d7f168ea1031275d2e504882be2d47071293b7d0ea53c0b8d1f2682eb35a57687f7d4746b45547b4fb5f1793dfcaf2da62a2f4484878a130d0e52285228acdf8742783bbbbbb7b8ca5eb7aec8a57bce215a347df22e7f303051721dca06ff9bd081261fec83ecb1e7b8c73a27df644a99920de83713a35602ff3329c1399c79e28359f28c5ef45dba329ffdc82f80effccf6c377f84b62a6cc36b54d1a615e5866f5792cdbb0ed8798f5443989ee585a71a15bc2ac9df72c0e8c52d58d287b12d9b6296cdbd46a5deacdc7521d474c1a5afae5a2461874351f3454c73fbeab802c0e8c682775c73d66633a05093475aedde8cecb984f6b27d5d0e55234055a170ce5189ea7b4847951318fd07ec77e98788f6500fcf8af51d7c78f9ffd6c54e923e783f3c58c5f7da80cdccfb52d91afc3908a5ea57f1f1f6e4b84e6d38062a9f48ffa0b9529854e8f98a8cf4f24bafaf22a94dfd49d494777fc5cd45cc3ee86dd0e9fc4a494d27b738e9fb01429a24001120ac25456c16fd8c5066174b75486ee0d806006855ce5e19946682309313e45e660ee2a092968f5a22794bf3af5a21374a1fc2ea5fa14a7c259666595f748793497084dea4344d917f8abfc1286124ab0d1c6acb76aa2fd588cf159960f969a9c52f3d155f6d1f43d56ca5cfbd2f3e1f43df61ed47cecf2f07f1c8e1bd3b9da6f3de49a9f7427df351ffdf2fd49a3daa46a94e42e2c66655589c6871761f014d3faeb8af966d00fbbbb39b80949ca441a812f1f5bcddd8b96073fcb606e1223794fe97969f054895bdfe9ed3d84db7b6babce092535e96eff6d4a3637e8fe5a343ebc58a20aadacaa5ec4468d6255a376b5c414cacf4fba8753cc49507e2f6a547c7e4c7edc2ab7aa0ea968bf5b2f97c77bb831951b53ac795ba61231c5d8995a1bfc1fffe9b811512824c754a6429d53d2ddfeba94eea6f7700fbbc31f85f2333341f9a7f76c8a59e5465ed41d7fb4c1ac5e4419cb5caf22dbc60a1f4bf9dd995be7770d889d88ee79d9ebf1585584ed63d66f4c31cbb2fce373e4b8b72dce8a568cd647aec69fa1056a24fe72e4aaacf1b76634fa889cb71bc9eef1e4d246174af72587b901752fa83fa6017914338f708200d4ffd280fc48a55241e9ee96e105455054610611b46cd1a6aee9b6827677779734a036c2cb3f1143fdb3690412f5379d8cb0a0fe3afcbf51bb3a0208eabfa35139a8bfd480bcdb80148608e30c22bafcc0031b294856115c687f0f8c30f2a1fd9188091744a10a4a24a18b1a7051a3d11a039502440fc8f4356a7950c414d44e0e68ff9b5bca688de149aaca40858042fd7d50af5100a0fd52d0fe961108b23d98fafb300984b0461457242db1f241aa4a9a8bd618a8fff2346ab944e1b260a898feccaca3e7a59c6ea376450411b4850ce9e7349d746063cc120fb22b330601eb626a74575286a06d9938745752d6c8ac9819dd15113dd0d3098a9e4fd349c734c130b4cedf81e49fed42f73d6c4b73625e74574faad03ab3a329e9ae9ec0807acf4bf1778d5afa830418df81dbc9347f47e7c2222185dfda76ac4077058418f4d15d215144ebf37815ae423b8e319902417ee8603a69547f93eeb6c7fbfe9dedf9d15f11501740fb0cdafde891ee48b03cfa7f784f0978a7bff988338400c33ed07eacc9f2e8c729e9aedfb91cbaebfeb883eeeeaee2bdd2e8e26042badf59e432f9777be4efef16607b24c766706d50ffda835adcf64e6531d4bfc240fd2f1c4ca74b1ed58072581e63d460d584df5b7a4a77b0fbe34329e5a42d7dc7e1c65b78d59d116f4982b7a0f1c1a58d156fe9cec88893e0298d7aeacf3960acf116dec22de193d1f2f06f2dbda5b3741775306b67a1ee71081cac8106f52dd4bf3d071d77307f78bf97252f0827d19d339828aa4c9e52190cf58f5ecc2ded56b952d25ebd9649c0fc37f5de391efc9fffe374f62d33bf12efd159fe26dea3b3bf29dfd6991fc7f1f80eff0fe6a636f5b3cfcdd5793ad5a77557b5a37557dd0f0c6c7760294e8706f8f135c0bf1c0ffbfc91e3014b0dfb1c9f077ec8c1dfd4a9bbfeb8bdeff4c36d7da79ee8ecff20fcfd36788fcefb4d2d6fd277fa77732ef335ba5c8a86a0ced529e97269c3085a7968ff13fedd30dece05e6fda9de368571c64f4cf8f1b9f214f895ab04b11ebb56a0c3367d1c853eee81be5f38e87b24f9de7bb9618053eb3b3aa217fa1ebeefedbd6f61bebbf7570c665da41c1a55a59246551d4774344a0bf2c4fddf4befe97f2fab70fb975d0d2186eeaf0de663e9fbdd517f29c6192f796fbddb87f2de8fbf5f24fadefbf81ebee70deb8ebf1d1fdbad2aa1f05bb30053c8010579efc5079f8e23267c9eeef6f7e126793b11deb30ae67bffe7db7bacda9c6734f9ad1fe23d9c32f58ebf9245a21ee17b6b935e9d50c762d65d86cbfc49ddc411858f75916150de2f32eccab55805f37dfd1f393f1168d47bf818d480e27b4f89ab52724f21171f48c711f33d8f0fb5361d48448e9033b247bec276073731bfffed802976f6eeefaeb91a8476a33ae7addfe71b8f3681e6aa8e23e643ce880e4c9c5ab97e4bdb0fa57742942afdb595a0f45867bde9607d954180e054f6d9974adb0f3f38190a2fb3dd3cce568f509cc75c03bac991dda3c477e05f7ffd6b54f6d7e778ecaf4dfbebfa2ae9f56cc5f721f3913351ebb513bd9e88fef8b5e1bcdc98aef04abc8785d7e4b3b0e5d0b83a698ecfe1aaa4395e7b1d20322fdf870cb7dde5784944354e0748f6dafbc871f3337f71442b70466e5a0372c35522ea385b3d62c2b6fde90a94e80a379bccaf264313c4fcd2634b533477e585185a7a99c716f3ac1ea1d7675b35d12c7bec31ae4e7a5dd767d96ff7b0f0f27aec59d8b677b2fff16baba7af796d63c214e75b03d27405ce88cc979eb519e6977e3520325f7a09acf0396e3e27e2bc95739363850d0826f33340329cfc6cb31e678bffe3d6564f9ccd639dadb0951eeb4c66aba5df8188cafc0ad86a3e88a80ef63af2ad27a218a7137f8527a2da86c96c95a9cc675b3d42b35f61f3a1fdf57103a2657fbdb5f9c05e7bb901c95e7bd62420f33832db66a5373dce568724404475b2d701a23df63e346ebb93798cdbeeb427a219a703e4faec7d5c3292ab43b4f4339f71daf5334f442fae12d1d2fff40a1bd39b9bfff19b6dbe69ab11a0336fb3551be8ccd76cf5089df920def352f06d781a10cd725658f8d5ac147d8a056ec894c2c284e9bca193ebba83a52666dd24258d724e820a31e5d285ee17baab5512c5b0ebb54b53d21dfca80179f6327f6d5af6329af67c6dfddad6d976f9755dd7bbbb5077b04977f0317ebc2e73fd4fef143377050531d40074576fe480629d3d0d687607df0263625f27a7e03769943f7c278d5a0a2fae36a1d7fb66d14ce32a11d5de37deb255227a699c0e16b5acf74d7eb6c95fcd6223a801f9b6e451df74a492465d0f2f4e88698903920f5fa851d6437e42e1c7d5a90d30036ca50ee6ae5661984ebf4abf8fbd17278dfb907fb86334acd498f179984f2de93b55a60efcd2ef914a95d2815c10ecaf771f7c11a38b2ad55120c85becda4ebe03c67c6afd885c7fc13aef01b23bfe3e90feabcee1ea874c125e6c990566d12b8d29697ddd76bed3ed2c0f2f4077ea411d86ce73707464036c7758ffa8f53ad66f2ad389ff68d489bf29ecb5dfd1289dd22f95bfdf354a07ae0bddf3bef3de337d9853bb7c50dae4f688c8ac1e609ba977fae3367f309fd687dcaf4afdceb0d6e9a63121dd3426d3ed2b8df93a4adbc97bdab087f990ab3eb49f36830bb2ebae5f7675b218f39dab3e1d44626be8ae99b9025d863373eecfdd2f22782e2260e7d01dbef6e7eecf1d3a84eefddcdd9d6377f87cdd17ca2feff204219722e7afdf7b90217c9e82c95f82ab09c8f583527d388dc9ef8f5f1c83c9136666e67766f2e4078f0aac1fe397f5f2ee26e46f76a77f4fdbc35ed60b0df36565d07ac35efacbecc7fc6d7c2c88b2e2c2c6ea055f5653b8983a74575d5041f361e6a0bbea420c135d8491749a3ca73c9d4ecfc33ecce3737a9487b2b1066aa64772f7a9bba3e8807677779fc2a8c11639e80208ea37a0fe7fc2a1d921cce81d6c8f1a1441fd5f0b3287106300000807e0620bf5674103f249b3860f5b8cd1850d88e0c3e70c7182eda18383c0851007a0be4515d45f4703f2b949c9218306509081062ba0fe3966777777b7109e1662500f83fa9f648381c6941f5041258a1294e8165aa67d2085a085156a001c98842caa40bbbbbb7f050da8b5226e70d3650104ea6fd280fc14441a3630649102066c5183fad768407e1a81105a20593952255101c01c228cb7c4cbc19625c4a079c2acf20a351a80850bc8c0228e37c0152a9a00e5888b24b46081460a1833fd329ba6938edfd1b9708513b45f8687c9114cc8c284288ab27843c70a4184b11a19571041fbb3693ae9f81d9d0b3c3158a185f6673e2f508218585a3046063fe0a23313e58dc5105045196568b9e207564431401530a0fdd79c3078230a313f7882c4e58c9c53924aa50a428a0ab2591a02ed2c48b4c150b1d2a1a20c3366804519ab2a90a0fd3134ea946508da3edd39ba082c9606f4168c2ed43fd698885031fb4c2105c865d2106e8cc14451156aa0ca212303eddf7e9f0804e9ce9a9b1e03751968a1ae0319c4a1c94075a2d9217cd0d11d77185258098214550000162a64607902463b8c4aa502221503fdf11dfe2224c8c9dc24639ee80ba4a07d06ed6e180c413b89360ca4409b0ddaff4b3b0647a0cb8576cfd4110f344e539c0063d2c4a08a996d1184c9821722660eddd515236052b8128796659ae8ae5e00c5ca0b989872ca78500466884943775594e484283d685f44616247e70201e8ae84d0c2e3055b66c0eba1bee7ef3d43360c8f0f2e62c898758fb80c8105adc186466933f8268df1deb3ccc862658c27d54dbaa26a610a0b868aa1fdcf5aad02bcdd59d6d38515786c716ffdb3fcbd8f3f6d6def8161a34704acb3f8be317d5b3d2243671e67f07f0f3723feef6df09f26017e298fc8402157fd9930856f410d0846d85207f37bb5b4bbc05fc87dff3f71fe6237eed3f15ca0fb16677af163b5acf8d6b3112b72496e95b65b1774d0edd666701ab9af960d5b3eece253191f72a6ee2693793de18287e77f47e7c2efc87e68c28ba328befb1d9fa3071c2d7eb0363d945cf0248bef7ec7cfc78a8e40418b1140a0421c47f0727af2e5c919ff113ea22b5c9004106e5085082b53a41cc78a10a79295215ce0048a4377e50233687d1e8902cc5593bf9ae87cbc9065770fc287ea7ff0193eefc7ee03c6eda6edd1f2f7b3463537b35c1edd5298dbc1df7a84666fbadc0ebe6b40a010f5b7409e0379d49fdfb9b6d8a7c0765fc7c9343309bfba94dd399c52638479aacfef026d37989bfe75fafb1b61eedf9cf1e163719d50770d08b6f41e4ef5cfc7d3438cf19b337e817f888cdeb25f775713b3e30af47142903ad72ea0d8ccfba6f2ab6f537fa646fce1ff346f3bf805e7749c4c2f7292db37e9a4dca26a68d3d602db1d4e8618b08319ac5258fcdf3f0f4f141d10e183226e90832e9720d2d81e1b4c10822ae5037521bc2d9a98a24aed5137e4f24c30dfa3fc2d704118b46e920bba70ea8918d30c7f04ba93c17adfdb7bee0f1f8490c14c268f3ece08fcf7b0680554ae0e4aa87cff758f5c5542a511ffb8d5195f897cffb749ef4de8d186ef42cd35e1945461eaccd0fd1b5d2e4548a1fe4198759396bc46d5ac9a583a57e73c9dfebb8e87a7fa34d1c1fc15e87209220c9a45a8779264dd2496c252497764cc9702068d343ebc7822d384135d2e5254409b2e172254f408c3018cefdfcb759267e15308218c727b92ab1b5f843052fee75c44ff1e42e1ef569feee914377295fff1bfee36c9ffd396b54bde6b2eb0fdddb13309739f553dd38d69c4554df70b28baa07c01ee812e57796332c30c517daf03e4a28fd36186ee6f10280fad1b07fd711a22263fd36d05ecb3a6c3eb30a90a8c1ad3dbfc3e66da6cf09d7e9beeebe67f1afb69995f0d68e67fba04c49c2ff3d65f5ffa6b05337bde1edad3fc6a40f37f9a8130e7d37018578928f6bcd55df9ac97cee6ebc9f475aef034bfc266da7c4e3cb4fbaff91fe74de6b16dbead3e4d4d0d2714e9fcd67cccd7a18538e288834e9ac9fd74d72fb3f974d7af6d04581efdb20893a78646552148ad147dca8602ed009befff11a451fcfd3c8daa0488a16bd4f5fd2e340a7e3f017cb3d97c07fe369b8edee993a7316b53f66954c66d2696a1bbfe67cee706aff43cc6fc8f8fab0b8676658ab58a5560c61c2579415a8551ad8abcf01430abe7e5f5718aad9e32f3f5bc451d9c5abfe9d00257e55f7f713afcec4c05ea9163c2547242915a379c0e733e29197aa7993a0f7c2e2417c27c863a10d27e0a64a1fd4df849afa45ca1ed23a67218292bec48a552a95258760a9453a86a92a1512bd07ea646e9489a516e8bd6f5a244a688f29bb64dd96c9b922a9aa629c276c7536666e69771ebdf5fe7e9fd34bde7793baa0f7dbbea2230feddb1cbd5209587f632f35bdfed080fe5ef9f861a1001502eeace9d74c7d520f4fd2e91cc5683feb6233c4ec63487ed4f13a174807465da1c112d3d76fa425a27305e3e27350a0942281b03e22fdd1d61a72e10935203b292fddb7420f11e839696814d65271bcc7e3e821cc69a04d64ad1a7328eb57edeb88bff7473bcd262ae4e9bdcd649f7f8f88e7f652dd42b4be1c20e9642fde22a3fa1fe4d7ce43c7dc7537da8579f2dd487569f26ddb9132c334a31fb595b7ed3ec4cb4caa72a7566046c772c6b40bbbb8fb10fe6ae5a905443a3f683f08e46596fbd8ff596f53c8d7a6fc5772b066a3db6fbd6ee6ebb63fd8eb47eddfafee5613d7b99fc5618f7c1931faa50f8bf3d80f8c1f80e942739c677e03737068c747777778eb57437e6741a33c67b988add819f858a0b851007147e6d23ceb23c201050e018305728fcf8f0798c94733e83f11e2e02d3b5e32b5cb48bf1185e7619e95407a716c76396077cf8369841e1d4326b47618c5810b3abc838e0632e20402e80422e142e0e28dcd91dd82d8f2bf3bd0f69143c8203abdca0107e901a8ea4f7744e59b3bef31e226a744ce8283cd11dd2348c5195231a1f8b4a4cfe187bb2874640f0b1ce208410426f8e8bb42872ace42e773c86f0c9ecd3809c8b3298fe3f3e48a3e2ff8feee28c16d3df0705ba8b411ae55c85ef1ffdfb31df827417bfb71fddc59fb9c124a2cba948e30f0a344a036aedc752875506ca31b84079870eaed90fdf898f3dffae286bbc2b8a6d2ca5bbf83f3cae68e5221f1f1e9eda75ff27e7b8a8bbf83346cc1d7dd2d128fff8ef135da0b1c3cca0ab1624d1ac51fb721b15f9e852c1efeeeeeee67674c7562ea07ea8656053d7c5456e477710be0769147c1b1a051f3e07ba8630287c25500c85f0a7511cdf77a063efd1b03bf0c9a0100d0ad5a03072419607f4c22a27bc97724ece72a4bbf759d84b16ef29b23bef99b0e5f5e02587e5f1be07cc87f99e56ce22e59ca7d37fed68e52cf40dd91d7e24ca6f64c48e43a378762525093ab54cf8d31cc63a0186cd00317377b33b773b63c19626cadc550bc2a0ef9f6233389875c7e6a0bbcfdb3bbce707c88af53fede3e9e3ac147dcae29cdf7b3174175ff0a351fe3f14e89e4db91756b650ff21deb3294fd5fdf2a72fb3bf3e979d498411c6945d3031d3e2a28a59138326b0400d26849817dd5514465089228829a0884363c1b4e8aea018034512142a3018b6d87bfd4acdb2bbadedb15fdfdbe8f298efc50761f78bddd0c777b6fbcd19ee3d7fdba4effd78f0d51385ef21d710c6ba75c36e289999abdddd4f77d2e5dd79efbd7eef3dac24ad082f991c6860727bac5faeee4eba33d448e73bfb16e4ddfdc8cb632b746fefbcf7e8bdc8aff3b98e284131f91ffc85106e7db56bd8510dcbb2a2f55684ef09cbe2673d6159113e21ac08df13f059f009015f84ef092bc2f784258410d6139615e113c28af03de1cead3f8bc18dc9685f77b5ab5a99adf39d7eadbbfdc5c5b62d29a1a5a7a5f71e843df8793e9f3873ee96616e9747a403a824cb566b4341eb1c433432320084a00113150030381c120b86e30145d3761f14800e89a24e604e9788d328c761145308216300210400000000446a261503e6149e8dbbfc970f5424549f34d9cb91c88ebe71d40831991669cb2ed2f877c43d5b3f8d6e0997f7a3d8e874da3367d5749751d0777b90a571c0853ca7fdc9c1ff802e558ed8df6e906faf6a2d3eb1d8f8bd05ddacc328e8f2c47279be8658f3eded26cf18e971f36c003d6e1f0ffa27a082166e08b466406252377e8cdb1f5b1a8168d444a0af9025ef00fb77fae6b86e5c370155d80214fd72d0ced47b2f78fc2583c5bbda9965acdab7fd938dfd5907ff2c00d22be0570c689f6bec37d420d55ee7da69ab145b79b1807854355784b77f5c86e91e0ec1484beb5c106afa05248fe1f713eb5933a7290d0097a8004892ae2e0e683d9340552d704140608853533e576fcd33529468d6dd64a02057fd1c049adb3bababc4ac08af603504df344973f4fccc59b172ded80b4a4d68f4143bf6773c0ca920ba51a0f6dfc30852da848aac8615a6c42f3f4d409b2244efa7eb6de653eeed04c9ffbc658520be78cc77be5ed7a30222b762d7e7390d8aae00232e58c55aabd32322b3f8ee4af91afbfdaa54a3b2cb9e75a0caa99692b1e93ef0bf0bfbba28ca8bc345d7e8c50e36161ceab29f3c8c48b609960e410bc58478579c5fee76fbdd8c8a9f96388e26e1abb76dfa05be74711f1c08f79ae61a0066f173b344f5eb77d418f34332707375a9226feb6ec7e9deef6d5d301a6eb6a9dba687f9d3881b0db7363baca1e481342a3ee1d65676ab42baf7f264f5049350f772fde1da4f0d4075296edec24e78c6f60c3c8072ef768bdc751f3ba6f0fb8609763104f3157036e9f437fce8dc4ea6dd6d3ed026b391b56ecf955d5ba4f132b6955298a51c8cd97c77bc969db6a991c0e9591896b21f6727f264bb861ca63f88e3a4bcdec921f8e5b693af4501e2b35876da342fe01397e68ae31c2cb5368766479354f2acf627720dad3a3a93a6f8888ee7b916088d70378f1e94489f5e8ee5f3f94993ca0a833bb92995d974a51aaab9efb9ccf20429230a5ba6c4a5f578ef6c4f0d97a466b4f2f3d413dc83948ae352823afccf565dd51e05470bf30e71447f4b5e7e153f04477600735b9f438200fd8c2429ec6bb1f8cf0f3f116817d24a4df5355727fa757b5dd901f5a39acd1337a27ca657f889baa2c5b40fb20c6e13ae6c95f7b3a54209c37220f488b47cda925cb60d27545adb1be2aab6d538c9a4ef427685c82ffd744d00d3ee68e93827ba3b64139a2d1403f484607a6893c0bcdc8852933cdc363b71990cadb020cfc5381bd171513d51e07645032def933e4d684cf31eae60745347776fda3d2ecdc408b61ac7684f22fbcd34fc1bb6e33387f0e72ab33240bd7eabdccec6174401440fa3ec105cef98352432f27fd0bbc93e31c897306911e3ef8d014d54e220b892894a0fc83a342e605e338af43088eec70481f8d67c76f38a2ce6fd9adcd79b644184db4ea226a88b96edaba35a91021c8052ddf591eca9e67f68784bd4e34223a13ddcc36e023c83ee8e25174f970b558036fe283259846ec7f259105ef4ae7c48ceafb682d35c1dedc4751cd53471aefa3ac7a8a42b27789c4832aaaf63c97389fab6d6233700756b783aa559562373814abc7a9efff4a63a40a958a841a3bff8830eb1a3f8471c762cd56e3606f93da05b5398d80a9f80215ae4ec6a8e915233c67935cb05fa331b1b69b6b256f8fdec417ea3751caa5653e9415a138822d7c39df5302832bbc17f80c1168919614bda08267f3b579baee52fe4bea250a45114e243659925c29d17f3a6de709f6d4665366d4e207a96e762e452c0e70efcd62d8057fa9ef2743fe4e820a71cbd5a44c2ea939c9ca9afb77a838ed14727a37557fb5d2bec267ade9c1942fcd1594052da228a03debfd3cf6645b6e0c14d5006e41129cd8e64d99ba9215feafcca719e7e8cbecfcafb064c5f076096b1437716cec0f3e3991a33016978012cd465b8db812ab8338600f33998429e41a1881cbcf33d220f7c0e36288d4200326ee805e7fc040362e1f2d737ade64059dc8d163a084a064c32a796909c961b95845c5d2495fc444050ed901f0c8e086e99d609cf3b526efb030f5f742622a3cdaec616b8dccf381d850d92322362702176402a1f839ae0b204ccd8028f3c7e82a184877765a045bf4c500d3f0d027b5aa43ef08f34e1e2fe1eebff4d86c95bac02b68420c9a82f4dd95d03166e16661ebf487956aef2364bbfc1f8e890aa0ce6b20304f9080aa25d28c426487c751d72118648ac8131f5175d424fd083ae8d7fefdd343ec6bf61c234268986c75cd151fd6c6fc0b8389da1837f411468cbe40d09d7d1eda9d237c3ff4edbc70d64d1014c4b90fd84c643f3f54f58a960c9eb2c100fd828f9c423a7cd44622c5100485f5d36657d1ea94f4d545bbf8d4f5a8b9e94554d2537e7e17bfa6dc9b29a58cd3c247ce70f679ad94ddbd13224494fcfae3f47e5d1e5669b4466557a46486ece110d3ca1dc807c98bf950e41c4f66f6416f8530bf4d5c8cfc5ceea5d3fff2f62ea9409dac3941d75bc8658568ae2c85c370e93fe8466ce3600e5fab24203a092000b56ca3043cc1029a422f6c94e2b4a2bf7c947b77958834d145bb9dd4747bf133773e12a5ccc5779fbfa78059e62ddfb7aca83dc4857d69be216b26c8290d9b54641dd5bc95fc1eeac826c71544e1aee5acded203e9bf225e73883ea55a607b61ae2b6a346c667052c3534f5869bc6ad1235aed84c8f2a1c6b4795b3108eeea9af8aabe28bd0964b23071d05d6cfbb82567620330edb714b0acc595ec10bfbf66d3a1e6be9d19c9a61acf31fbcffae11db6de5727dc42f9806e336e4a86401d4942db9464f0422d2aa81b2dc9708ee5488649716f4f536be30fb3fa959d1cc2fcc10bed9d3b2728c98e773f46d168c7990e47007ee80f3f520ad4a023dd3c11a51c85d7ab6636e8b0369f5babb90b8568a6b962c9fdb13830b63048a0e319198e1785bdfe5f1a910ab507ffaad2123c4709d15a3b89dae0a44f54aee191f8d49c822bc6698b163d93ba038edff0c2bd6eb24034f9da26f67296ebfc9b595c88439dd09f19c6a0ed21add4f97f3bed901bee1b44221f474627048ac8e1703c77785301e70f0781427a7bce369126ba9fb675398d8fb4d3e3401d6a0dd9a82f301ce6e606acfcb31153b82aab60b8ad1586399302fd5b3dcdd1520d8b8665e43e520b73a866e3f1a492f7f1d5fc1bf338678985ee77c9998c28efd08639ba27695eea56f582feacf8414bb1282b34d6a64a74baa976a0198cfe1a4791c0696768a26e65166e5e167a35f37803298d94073e4d197c9043734d411bf8933d37bbf188f298724edb8564d62a8978b28b2757c1589a95e69f301a165a621c909c81117acf04cbaac90527d6ef1379ad2f5417f707f7febfeb1d6684867af15d18e53e39a947e317b9ce49957abdd2b23c38762ee80dcdb0cde20999dc5350342c47b92c6fc989b2438000d0b3848721f82877e0c160a0f5a631d1452dd706818055087d76dd464025274bcf9659127b07e9b663badc97a62a33661fab790909015f94d3b12d27cfa1f87ee1f02f8ec1626618593dca0c34e6515c38b1674f6193fee038e5db97d1631ae8ed6b504452b29c2a436a7f028a277a0ace42729713037c183e3de3baa08c2212639d8df733773b55d2f4ee745d9f185ed4861460eae33a1a975b6d44faa7d30baa4b8a974f5f1cbbdcbcf619e64c8c8ec2b4125d0a7c252b004c5b266438bc6c679c54aef7dc11e1ecb29e7e0283674efcad06a99e6d834af36ee9ebefa5e582f0b4c0099501da02a2e39379d08c5263bc2b39306eb08b2b647352a494716671f9960a98a35fe85f61d78d963618e0a974d6757ac82a0169bcdaa3c359705a5dbd511553bf44d94a95c36f565dbbfe37392199e8d9010759fe2bdb44588d961f2fa24844fced231c0b38ce212c6dd88358d76aa5e7ef5c53e1475fda176d391895bb3c57959acff90753ab1064e6016f516e4fe6c53185aa3141e208975152d0591965227c0878e2c1049a74b8cd41297acac54398160a98d9de53ade3e5ee6ed5a43ecf449ed35e1c251cfb53d1b5670d2b545da6083f34baea4bf99eab86f8aa3b71d5f73dc4ef9af5cc4635501f28f976e267d5afb5306ba41e43012550dc22880c7f8672bf0abd807b6fab444d3b8baf8ac0a4235e3d50f39adedc486c395d143bbfe237030272ef1c9c7a8c755d9ae6b90a97a4e4e416cfb06861a9c6fe4f2a208126e622f24f246150b8b10ed5d587d4d9469154a0c7f6fc88b6378f06535f97143a59646b226edf8f97ece5ad2dfaae83ad0ebcabc0f3b20c3b1537f004046ee6eb8c9a325e4bc05c495dfb9c65a8613ebeed7dd76d9e5f9d07f151c0ad92abc7c7f638711cf86c90a265edddf79caf00f690334cf2740dd4dbba57d28b2189efee7d2c0b05dd50b72c9569ae0c9bacf80faa5c1e037a0fdd5ec35926e4253caac206f81e0484cfd0152e56c9ca3f6b13f05c5ca3b55b4fbe2c4af7baf03829e4c74f59ff9cca2a5fb5d8f094d4c7f113345feb958c33606f9aadc96e51704fb4ff9aec5a7087939a208c305f9d25087ee349cb6bfce8f438ef8f21102382b2a56cfe92e8e787e5923555b02b70225a17ea84623baab3b33dfd4b633e27ed2831d94ea3fca9e743b3c8549964f96e10c3b5db432885e161c9f0fad6355424282c0ca8705185067a0c0443f9705c400822033ae9f88f2d7bc575dfa56d5b80271c13b39be9820a7b012e86cc13ab032ec288d8bf507b63c3c699f2a540ec7c6c86494313703f928c348e719f4e4b36de02a04d261f932a2a14a79467965d4a97c3b2f31bd9ddbc520de223a0d76fd65b9a7471aa8b3e0b58ce33bbf71001a63996bd62ececc3831739b45b3145fbc3779d1967b13d5d6e72cf654b248c98f025578a4a8d4e5432cdfba06f513d03ee81ffa87dea1bbe85ca3b361581b87ec1eea20ae1d37bcc227454208b145913b84300ae06ae83b33b22a969e064cb188d679f62f5e99a80fe83a2391f0876729175e971b62d570ee1aeb426a7f3522624c21212964e61df5a2dc1652e438093b62f2e62323ab428baa5e649214d5ecf9f1d40ad34f503d6c312d4573bb4bfb088310e34ffe9b68920ea709f3ec5028751922480eef2a628d8faf31a2cbe34747aea1011d773131b6c3a276e534fb4167248e05a009fa9e55dbdf7e38554dd2f55374b1ce15f74b1016615534e0ac071debd51c4bdd4363af5d66a649eccd0c5dcb81bba463513da63383d0318f758c6e39ee2e0209dc02985ebe75627d2df779705cdaae7a9fdc116e5b1a3e7785bff8d057961e823be7107a8637bb6bbbf648f63be9d7717e0aca827ab41e895547fb78fa45004ed043b458ec3d651c2373771f54cadca6d8204c45f11ca7165c1eb498de67d823a928b99f3b13e5c80de0948e88f67d1f4aa2c1ce5e613f1ffc98007cb73e3f76a763fe76277a50f8313c0a72c035a88e459a51f92ee1e535a5020432d8baae0e868ecf8b47c7e1fd9e335a9457fd5c9f9a2e2629d591f09306d8310dd46f0c37f05df0825a8cc36d77a4dc837e3263bc92094b6bfabad0948edd576f275f592430cc8d438222ebea3aff6572e32ecc5d4e8f45746c62955e85fc44a37011d755ba6214567522ee28a383780a6e60f8d0e8c6b1ff3b855578ace1ceac3bfd7c9808140741fe0d7141f74a1bf76922116d72cc03f92e9558d125f8256c2669f65820f32d63ffdf716e0a7f3377046f39a476089408dce642bcf821257f5a5d0c04bf42283695b53c2442b055d4a862fdb8e90b6d00a39d4e3f088685fa318e18e616ba3362855600632fa7146eebf59683ee5d70a09ae1ccc116e7720046d79437d4132a2a0b706bac9cf6b440a7f3656ec059b9ccc27283c0b37047573356b726b6f3448bd81f65a9d7745d1573846c7c0fe0de9506d78b2094694a045b658ec90fdb90a6cdab3ff3db9e2672acbbf7600e7d8c7f90509107a8e2946da22af1ddc822c6aad746cb241bbe83be8420d9b6b0fceec17b099edce6b9e0a5a7aee4867e0e50cd424400b5d274380b2a987a40861d7f57b0df69c278af0e846e7d7196017888772b14f3e9ed3bd227d396f1248c7b3f8a896895896b7bba54862b616e2cf3772272eee9f40d315857035f03ce08ff77cc880c8e51391ae047cd9c2dd86e7bc81e54fca9be6ee8214673f88f51e2a82a4da1c1983655e9473549904ebb08682d032e906d5cac11620c3079559e2c799a3d2070673f79ee1274897829f4431fd0859db5913990f09808b2ce4dd63005e884767cb2f3430243baa3f143691b543f0348005cab4c037a0c732d1a0d18652d2eb2885577e219152b6e82c438fd891db25ed5567c17d82394339f98050746dd3d166e6956bb0ad68479ab90a123d9b585e546010ce073fdcba34f6eb7af8ec7d77fec19817c1d4ae64959df0a0ed1ee4cf2f3bc6fd1778a8a5ea0a7dfecd6db59c845bbe1acb02ef9a1f1dace54741d27f05f0555e54fb84601b24407093a1e50ad314b13015e4048d8b6745044c5134b4b0706b0ba3a09b256c7ccb1caa9a5ab8cd2832f1d06e30d735f5e73274b26556b2378a4a0b4336a6c962d35717a7599900975cc90cc1c377ea0aa7ad94607e5a945cbb8c7de4c51a4b6cac061ac65d4993e6ff2b75036cd41452bef2cb7bfa289989b004d67c98cd71d57932da498db90349a0012acd6c258a5f7c58fbd3f90396b3b3fbadd34a2bc1e2bb775a3ea0a2d035bdce3878468130251f4150a4065884081f3337d80a7562d6aed72ccc387fe792058e598160c55d7e9325b8876f8821d3f5867961efa46e77d29baa91bf986d497478d641d0796934adfbc628544812c2c8505414815c1315e9889e0b9194022160d1eeabf66720bc64e506d45419235eacd74f1d10829f5fb00bf34a605acfd25cd9ca84d0f4f77ec44e3495deec91949c62198de3ad3fa3897d3b15c8edb69764a0ec58645c43f1b8bc4aec96d8d0ba737d12e964f394886de4383df1948e5a6dfcf49bce5329044604739a17649436e4203b377768f786c92920f43215e4c2967c2243eaf32c3cf18f50f0e91ff758fb331a135a325938dfe6342d592a4e0f97bbfe72754ee87c0904dc7fe294d884252b9211ac546dd5382e38992d2df09720b446a0c9f6d7a4c400934683417248dd0d0770236c5acc29035ab6af8604030d288b4f51d7c2d893d42475811cfccb805d783813e0ca3e573600b23f75018036de227d1190a6ae1c41465c7d311560e41b5cd5baf8cb2215277a3ea6660bfa841db5cfc113a225eedc5b990b6a65bc7432c646861fcb1cfd05421506b60d929fc27c944ca61acfa5b0c166ff4184c41af2e5b05dc3ac6cf4ca08870c443edb8679f427187d6533a14a251c7c0b5eeca3db6e69ff100a21449cf39485f09aa477c2c635028ce10a196c5d1f1ae94645fb183f05e8e8fc881d02ca5414b41e12d444c969c651094815facbd508054f6ed442759136b6e2f8063563574241f8d71f66f056ebb0de5e4d820407043ac76a41302853dea8659eceae07543c36844f11812e97da62165ad3538b7a8e2256f545962e3a249610127c1b128da2ad166b3e491b5485d871a96cbcef1fa41c11a0eaa173e7c0da87ac8d9b8e3e2f3d38aaa479231cbd50e0047dc53673ffd730c61159dd4d99280bc91d99cb562565582d3e2cac5a731ad9d904aafa07dbcecde48c2c37c34ec8260a4f3610539c312eb36989e850c2c966b200749d6ec2284d5f654cb2f6c225f2c3558d8c23e10c0f533280a8b60fe8ee44a01605ccc2a472ad94fb881d4e37a39cb902bee62b87e96d73df5e25afab5954db531604805bfc5eeaa0dc8f35db74c08bb7c77dfd8034520d709719d1cd569794fc54fa352f863dd10367c7ef1f100d5431b5321c8f1925096d28b3a37b6fc382f41e646bcbaa7c4355cfef8241db18a95b39aad8e7e575fbb5971ca2a5ed0c0c3d9397e2795eccfd1489e62669d25a9c3e2a45bf4c4c496c85f2b2294a33902aba7c2f61a811693585c66c47c7f766c3810a2931dcc28d94a0d098072cd36135a02f6153919a3c9db7a807a23362151c64eefd7685b4f5c05380288e7b740548e4b859ba6f543b7fabd92a04a424502d03fa17175697629b9a8160ff4b111a571c8f095ea5d4b1bd06d33234ea31bdbe6153e278fc524f5fe82cdf865f612bf12be0146bcf12373c9a15aa49628ae93eb850e533b00953251db60ed8ef2c375cfb4390cd7f459c27662453ab9d10ba62a0074a971d6a74bf02e3e6040ee718093e8d48fc530abd08bb2e893999766766b5bb9722db97b83234eb2005d9d7ae4f06650d40e7384acc9b4285a1959841645a97a14fa2c4a0feaa01ef10fb0627cbe4bcbaf119f232a2161b30634411236484f99f21a8607e797d3fb41985e769be018f3a163c0b5f7129be85867409dd25f3ea7bcc4ffb21ae39e9525bd363e5b88ef9067e11833c77949dc7e6035595b71be61597b5b4123f18f03749fa1e7bf75e9226e38d114c26c83e9a52d0fb6b235021a09db77a0f293b8deaaf6437e5b70468893231dbd88357ac12484ce78bfc52c775cd0b4317947349927e775acec08aae07a8e38d4c486525d713a67a8b7ad47ad7de645d5038a49f3312736874274c5279e851346266a4e25d3a9014e99be56e2edc262a7536f3ccede58e9a8ab74279e6c4113a94e2075931b79a06e0f8c9bc40f3437ce9ecc7287063433a1fc139b99b68535c3834cd5f375e14daa7c544322e7866b19966079db0fcacd000b773971ae68bf98689ac43284ea8574ba6c3fe7d2011d4533332acdf26c2e0793a66a800e0132dd318ebe0046748916f802e30b1b776594c95ed5d09214d789054cf497c641504238707934cb30abbf80c4ea437395a67676e501cd362c4030429ff908e84aaf452d7bc85b2a2d06e00df317c60a79d807fe411c0c4c2f37fef398a52798327b50499195f48712cfa4176b6504ea4ea6ce0c78bbf0d0595f4d2c0e4428aa9832dd7b9199da76e259eb9a89ab2765576ea4f47ed215708fd5cad31863e7d59725a3771a2daed06dc9c2e315e5d1718990f68618facb08007e6d39e41fde56d1fa5b7fbfc81e392cd5d5f6baaacde80bea792a93e6ae12c00e9448dd1450b3258780021c7356177a23bcee966004469858f44c89b1d75712065004cc81149193a6236a006697c849dd938c43f37f740ef3375ce652c8725d4714992318e208c363a7083ba1996de30f6892921244ebef08836a3aaea5e6732f12cb7d2511fd76daa7f7d4169c60802802c28f54700d2f12c4435615cae44a2360a953ffb0a0431973e4609c2359d6e84e7eab43acd67bd3343cc58e244c4fca2ea1a4b4cfa6f87cb1103ab664a40298e7506f08527a94ddca095ecec4275008a97f933be18b4c6cbae635f175e21ef68afc145278062c8069178e03827afa79fd5c9c73391d064134f6b8b65cb8d7fa5eaaf8d586fdbe689978e17b06796ed6e1886b21a279c00988b794182e993813f0a449ca04801e232aabd4e5fb324ea9015b8eeb2c2dfea7ad4c4a68482a0e30e85c6a4411b32ab06d9c4f4ebf66056b54bcab494572a128fb9dc682e109a2a711e1c8b747a32af8551b5e24beac7609029ad617d34aa7c0d55b6ab81a0dc6b749257f256952ad50ea14d87b1f2d9a95db856d8abd342d6be6b023f7d8c14d3208edefb3c891dbd32fb547072954e973f18910cdfc2fc6b1393eff7da7c0f59ea5a6d221edf0b66a1140c50e652db48c8c8a08272569f9b9afa5bba6a062c01adc0f91e01605faf782e53268c4124b10a2218e3ed75453d0a5aa8b7ff87fc052ed03a038a69d8502385d89dbb1b580860e0e6f8ee2d0ac7d71c2c17051328debe30b0f8ad78fe3326c8ae37ecbf809b8a05e8b80c0dcd5185c5c26752a9dd3c2385c9d110688c2f183a551490bb11d62855f7607235dcf3371bf69fc0014559f4d40a09b7fb4becd9bad24e8e503b2067c178a09048253f4b372a92a369fe94a53c1cbd620e1c999d8e52629b00bb503e446b5601bf8cf12eb717e727cc7b8a5abf2440d361492c24f35a71c8204e14c01dd970762d9873c1855eabf302703787132a13d7462bd4f50ce8d631d8ccf47ac26a20e8114231e94a67f8df196c5b6b8dcbb918e37f88c77a6ff987876958f21cd514bc41c286213449d91aea61e07732610cf773424bf613e87d32d3e1b7bdab899bd7db6e5def96edde97f9f04ab1b50c86644a7452669170f917bc56834e6f84eb2dfcadbfa5bdfa9996eb709e60851527d7ea1a7359f1239b70bc3081af601c5eb1cc9c93a16b6274cec4b31f3e400186dae18c32e14ed5b92427cbadf5b0f4822be6d4349a45a10c545b693c56e640a8879493565af48a1b39e43aa4beca607da0ded1967ea154f0404d6408e043b2c46fc3149c1b3ec8e54eacce2cc3ecccd5d9151716ab7e63d0ed0551b4ebba4a123fed4adf6c81e065fef06c67b2e2f01947ee66c6755dbe239a00fe073d3ad62b70f447baabbe1952a5543ffdc621df182a216c8430c18eef930c23b5d091146e8e3b2537a23c64fccfc7169b1ce5914df2f56116465087d194d6fcaae587897c7bf4b6f4d3ec888120d7c8421b88d6efea1061324be6422a4da51cd7b56328be5c6f8e13feeb449440f95ae58f0968c8f4b3e219960c9011ad43b86c96451a46c74988abdc8b85866ea7d8ac9906f251653381c02ab65100ee3a6f07cc301604d3f272221c76c4a7eb2851ffdc780f6ea275e96912271efd8ec71caf1eecd9494cfdb83b7525ee3488e857750b08b1ca93f135522f474a18ee9ed936f9879cf4e72e1982bde91aee56829bee40168021ffddabc4c3ee61372f852a8951906c807ce68c837fd8d49741b161320ae3d0d532e68b2b279a932b3ff1271ef74be40ab16392db523a7c116f4d83c4f760cb198445800d46b0c7d001226a5985470c34bd0336f82316cd08c89c04058e372f56555dfc94a8e24074b02804b0d2dff681cc8d0bedfabfdd4320cebfdccbf2f6cad753057a0de83c97c008f8ecb774faf9f94b156b827a31937499fd9eae4a933dd1d3f3c61b19162952204607021baf0d0cac3f9577c5b24aa57712893a802c0c737acece6c557f2a784ca2d27fed1444ca2771e846338a55497c346b09a583bbeb855141e08db6b420b864cc5b628d9976f366d1001c426059fa8ebe158422828267d50f97fab560849b8f02bff4c81869787a4aeec5ca3ba9531c4d2e9489174e3d30729fd0f1cba81f5ba624df2e59a5e2b8c8d1cbe3812040cca154645b6323b56ecd5da902bd1f7ac03a570ba98b649f50d04eca97042d385a8ddb5d0b58857d92c4774f503947ab5496489048ad7055fb1522c684660dd0595a0fd55940e0834f763a6057d83924ed8e82e38df68699da1d0c9c0e28249c7cdc6ff4be68acf8e0e4f5ce884aca124669211d0075216ab4735b68d9004037b2abdfab06d0afdd616e5418c8298444ea0981eed625d76f864339d52e86f7d7f08c2967439dc1a3b36877ab5aa79a0e2b51ded782353e89dcc0a9777212fda5318b25317c33d3245d8d882813f6d8204b61c102082c188f4c922f142bd368bd070801388d50e896a8eba3106bc059ce32bc6e623e75d42e718b3e1f1ab6dc77382589c6ceb99275a3810a06d5bddbfc1f0e3c549f81fb2955b1266a00016e55da0b5dd12973d3b3b24a03b3a7504d014898f36aee22a38183a11b5fa932bba18183888735f5d71c8025010a0175910484c343b0184832edb319db65853d940ecd7e01a529d208be0bcd67807c7d15be8d666f18a5e2e57089d0d050ff7b27a756af413673e5d12e7d9b42e994947bbd04b839be513566f40954f9d02edac8157ac82b7f4a38c8f83bf5c213b582cdb2da4d965123b2a808fa9b737f8c51da56743d0b95b64caa589c0716b2c3dab28163f01ca7bfb37201bb69f75a4287019b3a91708f23912e519d17027e506b0561edd657084c030014ce3327085e0b39da0c2bc0a4961962aa134f85e1a09e054ab119e15a3626d7504e212a7b62ab9a86845e12384ac11f1dabc1262e702068fa76c14d08467ed3d00eb1be3e867219e14c507249e49719e0ba39fbb65ee68ef0195b741442a8f8b7519734cebe9b12f66769158728ccfec85c05fcc0572522c54d22330db63d8938ccd3c382f641a4bdd278de508d1172b918a36f761c61c9f516eecb7561073a23351fc618a72bb8143900a353927db00ae2f9bbb834e77cd23bb22c07c0e69cba33a8f45d5ed8099bd7ff8e4d16c737ce172a06a319ddb838286441600ace410be7dca2142dddd246ce678c8c9561006c97cd939b135a88b01b0581a8c525e0d6389423399250c708c248ad709d490c308708987d2c5f4be7fc93e9582530b7282ce9528213500be35af7497298a573596b293d80456447b810b304d7f048ae82514fb43231378cdb6113cce73be57b06d2b60a8d931c4ac0071c56ba89e505504fa41242e00df4ecc32fdf24d90616ad806111f7425e48215a9fb55c7d10920dcbbe3e831f6ee7ff8f157b0184e92be9e44ef991dbcf13aa591e6009a926012696fe42793641a17e44a902476f081825f7c2201632e9598f6cfcb15afb69c9c146a1d2dbe304985201323c7d956a0623cd6c0c1cceaf97a8a29256290bb0a6f7cf7aebbd3643b801ca3012da6a86d0cc709b6239470ca9986f8d8ad02a490113269117b71e519d06bb4f86395252634300ee89fcb017c70d5ae335a2bb5b73b08fb0320f33046bd07a0da355d7b811d9b7f888122d435099cee3fb416ecd78f03aae9f94232d7ee1c216f8469713137a560a8cb478b6ede66135e71387477f7081251ffe566d43c7fdd10086e9f613e1d6dab42f8ef6c45b4ca1fa4671346906f316121165fd48cdd9dc187a2b50c36871ae804b553cbee6ce91d7256acab2ab8a0fefd28b43c3377d7e2ffbbdb9c526281a4d5230b8ea1547cc004857653d08d2a12a56fa9f971c86aa60679ffa1152ad7f048683c609a0265d9cdeb2ac840c16becdfbf05a3e183eb41d5c7c24143c891c22e46b1c3d1a9223a4e6c6b04669505f4af9dc6c282284087257ec7071d40175cd389c75e5876bb34d777297a5a8a03155a5d1fe6b81a1048a0462fc8c9ec5868008c1ce092d228e06b6c0f88f8f6be12a0e70910f67ff12bff028a5b17d02580c566c7cbceb5ecda21eb1ac6900a72b65854c1503493366bc1046a61c0e7e4550fa639e3d36520ca28d3f22c60d284147889f83cb83bea001e69902be1e027265645c51e3f25a99e71abdce4d9bf3bb52df028a20115d01d7dace60f4cc6dd1030963937cf7b1d88ed2f0afda9da605785634d738b5deaf551bd0f20b046c17961bac0fefb41632972c80a8b2b2f2901fd47bd0c367320189ea6b307578ccdfb6e5ac947b29c455381e9ce3b19db4fd1ee5754bdebeb70b6d68ab8f67ec14db89f7acbe2ba38e1be0cddd4df7ca0d40219c992aab4b0419fbf57f4d1bf3079bf1681bae4fec5d965078e445a6c42ab20b5d3a94dc92f7e7944d80a1390497f4a3ce679b39041f2e0aaf4661678ab722bf9ab2c6c12fbb04cdc26e3307a19d7b435f9f3e5f3c8838006789ac092fa9c845b35278693b959f28aaba51a387c49dd91a93c34a105f1108b7f7966e07f73d8eaeb0f2480ba0011a6057f858776f544222d5628292099d391d766b7a1a65caac2db2f8e47d5434f22983fdf4b7413a0ee31acd291f89df1a27866b174796ee5f4fd6a4f6c35420d302390053e921551af0072f7d5da704689f84ceca0c4e627bf682de89bb873d8595c9211784e7970d0996658f7d42222a03a19857cd71a6f2e3e3ed894ac5c276b5a27436fcf669edf11ec93dc5a2e4ba584114758d6039f6540d1bf1a9d79c8b28475da488d8bf8fc142538added1949eff553b98fbb8cbcc828aa7dde1113b502a819cae3cf9b911e093fc5b9faf2e1d3d0c166c49443f901347925a68a7fa26a56c5c23084fb023cd257f2deb8c4d6c7b0e4b233a79da70b14941ed108a643f5e74112152c260eb18a384446207b0a0b36338c68ad9f4e86c088d5afb4951c76a24834b23e7a52d05066b1be4bc9a784ddec39447f37bda87c66d183552fd2309f9dfe3a41ecb0bb733c4a0e1aa400cda2d59c192af91b9a3722cc610ea5b13c3ed7990a225e010fd3748c389123768ea3f2e1745ca3af9d6fdafd996b86747139778bb45cf02b6f30ef9035f5ec2053032583ffff784fe761eb00255725c64ec2a72ecd2403ae4ffab60bd7ae2e1bd0a8a73f5eb7114b35fcf5d69f9bf7b918bd748782944f8d3f7354306d3a92cb8ce132161b09e8c07e4f31087ba39b05ae5f0987001d0149bb438bd6283c19c0ff0e5a1ae05100f165ce9c50b586d354254e6ef38fa26d2d6782fdb792892d1eda7e60900aabc634ef2bdcc3e6734b3327bdbe7a26b198cee4240617d578a6e0505832d13430a7faf6f15a7284ed00107a51c16c144b77fe288c8b20ebd110f048319b7df3e5eff1415dfde11c4d767af6f72f90a5458e0a9e9b1fc8757e58fb73531592ca04eb4db47e94aebcabb8ac392efe77dda9d13d407b37db1bf2c29370955c11ed444cf12f81e3ab5de6f1d7415bec9b43370597e9c75fadedba044a8b33d62715a6cd175e73a5d889b68ad6899ccb37ed733edf1e43e9610af2acd0248f67bc72dc560a54835c3e88f40602fb5ea490b04935299f64406ad0437dae2ae610b4025b01d5d91d5b9e28b8824380318ac39df589260bf5434e642c85f76f7998133eea6cabbc44b08257f9901b19bbabb3cb6eda831410b59c5aa5e1975dae9c334c8033b2c18b3a94978d0d83eb0118b123124e13680b6f72b7bd1af3651bf47de5ab4c70b292f1b5084a138967910f8d2aca0911e9b28a2bc589d53eef6b4674dc7ee7f06df28668b29c52147cff61ae094ed804ed667c1ff0c9a2b44d7fc8e747e5bc8b12fdad165d91aa85e85662460bceffa02944859aef0cac0a2a157a1ba518ba81be77e0eb953c80980186335962ddeb5b65a08491ef82d1af4d27726d1851d09f64c211f765ccd8c75da14492896ad708d85878bc29cdd112525f919d7b9d2202277069c47c276625b2ea7670abfe885b12a76dc61d063aeb0900731efdca90090510b62e973782f949fe5c06ee20e0e0cabe310d5a3f3027215fe9507cc746b86cb0ff71688b7e101124339ffb6b823729ba1b5657d7c79c9d000d7675b8a1d1fe9e4cb073d24562b0187c4e1fab51bb714f408480b9439c6a7fedecceeaf8549031957e6ef2da794e7d0007a7a64c49419adbb27ed3b9834c567a20afb308b383f9687f38aa92303c1c01a9a16238019b7a6992da13e1becff98d7cf29011c6c926d7a226e583cfd4bbd4ef733e79b617833b3a5dace41a1c2759fb1f5da516fcee9d76ebaca6a62ff84b52779423f045a9b1764b5af49b36e9c09847222084bd96500ec185550b9fa5795f56df9abd45355184010b19116aaa82a31322cea63f4d77a093de023dfe60fc4f491e944a29b251c8b1b39e4eda599a26a2bf85ee9426d6c1857d9faadbfa7718cb6395af33d9a796a3f3ec25d35934f1b2166676897659187e1f3103dba345b7ea647e7c2708288a1160d320ee2c35e313ebf101475575d4aadd19e05267878ad5908a8e5b47f23ef5743bab2538373a61cb0cdde3c0165ee3e839a490e6de3270eb6122bac0472cad0cae49a6568244c3cf26a5629909d401945bed905627ea201d4df6f854507a9e6956281ea4dec6a0c92d1796c8457b5b939ab46cd99e661df33018c6f233e4f7e0b48ddbe56f3363b0459ad7ab050cc68ec762e7bcc6727508b2181d093b65a24f649ce8d1272a6983acc044045ec8425050d315f1f47c835eea3e7f2e40b452da4a1b52ddb21c4ef70d724c33899f562102b6257bed5ffa81f3c4d297467115c0ec805d11a2ca87656320ecf111b99dc0c37b084132982ce1f9f395d802cab2b201efcba5bb6a3bc76e5918da1fff360bfba2511bb667f36928245b30729bcd1aec9d3a35609cb35736d8af2bf4179f548119f107f4562cab82c7cd16fdce85693808952f805712b094758b9c577503d648c26c46f8eabc46e13fd3c6ef27bc84776771329043ababa56afeda512807610f7152aaaebb3dd032b870416b16e1e55a45c4f91814f64a242e2007472b0b606f6306bcde633343694834b3de3ef78043990fd8be6a101c4eb391bf79e186a99137f4d3a43076870fce2fe9772d55646e04a734382ba3bcddb357421ad127a2b8a2dc6746c394442492bc45956bb1b91bddc238d14ef6fd7bdd9bf8804628832295001bd888b231967f1b4d1df70a95549247ac7efe7c62239707e701f29b2169a6366a2e576a417279eb68c55b97ce502336cd7c9de80b68ad0ba52ba1555f31c798a378b74853ee0965a922900cdffa86dc8260972a3f0b7e76ef76e536374f6d49f9b8b9ec02d4373f3197e3ee3a780cde84525ea270460b7aabbd78c0d2e771e1b517ae52f2444908345410a6fda993a98bef0d1224faf07204c0ddaa2a58dbea0bdc7f39342d9e74793a12dca790cf528aa3fd757985a4090a101c1e98bef1a79bb573827036947e3662cb98c7725a0ce2b13768ac1370746f7ed9cdc5ab517f6cd8e70050c3a0af37a43941e0f1a0096b35dc8f6ddf7fd229e20a19609c2195a8ce75c42172b141be033be6719d876c03201b555e1a3974a095319bc22bdd7e9e4569a12e9da216c61c5d0a62c23dd1cbf63928cc919a5cb7e1176c2be91a2d24544daa863f633d07d340bc0b9524d000069c933adb489b07e650bdc7d14f265919d512c3ea0b1d25321165f275278f51d4dba9d43096ca2350afe61f6f34689ccb7898ef472792e22177ff8daed65ace0d237e2a588342e29d3521f0af08d5c9aa4a91aa4beb8b30aebfe4eebf98295969d5c2f25cf6c4123acd5479e875fa9341713009718713934a47c3b5f27a432f706917ca527adfaa728edceeaddf9710fa408ade4c9ea9ad0ac5024c79a9c5a2161b8fc9c563006b191d75cb5fc827988cf23d1b5ea1f0162195bb6510aa3b4d18397e086c1a1b4d88ea99178ec74e6979e88a208fecdcb5f0e5afc41f44658881600981bd82a8ae3e5b0ffaea6a0ac54105e55ae7365a816acef240f4139da8bed6b6a0f247bc41754adc46397d4c9cf45e0b04ebf3bed2b9dbb4e8507a9c64e6e21b2acc29da8c6d49ae80ad68842fb999a4685bcac28d93872e7e6b5c430a92648d44b50ab7d93528b4a01a0c62c7618d7a5860294c4d0d2fc9a46c726e7d13f5aa18520f5238df143005ea31ff83b38593def263a859c9409394b8d9f5c022d91c4adb00cdfdaeeb1970909cc134e2b4730ecbc5f39385003fce64aac60b7a0f0d36ae0a61e040441005af99c8deb4709e85e61a2bf539c2cbf66451ef80664ac1fbe0580fc2b3333a6371875d40331e8072b0dae41b03cef144057f40165d2530301064b70b5006fdd596d355f5b398b94f08e09dd64f4263a33ae6f0539b64d58ce93464d23bddf710093fbcb667973888c5011d5e5fa0c7b7ae78bf076ab2726f7422b2b2e1ba7ebef454126b5b8056872b4140de2cc3f70767ce0ca92b8686f66233f2517d2106c651d003b21ea095056f244840135554257215ecae035892ec5d69c48ff565e00dc32fa1e27884e458d643887aed7df07739774a27a2730a164522d95ba69a817288625f57d9908e8d72beb68f2e6a3639789f9b918bfdf258b5a8c7a8b2280a77f48c7aa88f2ee3051a9f705e79baf85062044b428b7613362afa130d187289f3ca03e0eb357e497ad92cd6302b7409c47668858545d595d1e79b55f3d5b2ceeba1e5caca8e07308c1f95a3d966e1798e83f5f881fbabfededf8a661cd48308714ff71f2350fe717eebdb7a47f2eaf253ba62e0aa92558cb37e2a7acb439eead73692a09e5ef8ff6d04ea4de14479fc25fced0c895c110df778c6627dd2a37fd919542abc168a714524c490acc170a72d237c9da03ca11fe775a867b52c6ad3d19a6c4a9cef63ed89628f5e99b118059ae1b6bfb494dabf8d6a285947d073095dda2eed0f8669967a0374fbd8822f4342eb0501f40bf56f852f42f7c6091a2e8f7b51532cee40a2717495c10015833d3eb93428e0c6a85c9283162e0f83860404a9f667f4ff0414ad949e9b809c998d7e567faee70f5fee9e0e56dee5e66e3abeaebefb496d8510662ff3f60a94e5ae09062d15d6c58419933f32cff5e3e6729d6fc9bd18daa54e856260cddebf186314b214795543ee58fb28695613a1786603aa8e6033742a73557c2be98390aa8404e68bafa543448b3be0cfc09aa94854bb0383f96c19704dab1b460e175d98a33110b00a871b37ad88f8ed59f7b45fc0f8bce57e572e2c26e882e6578ba4398fa075c7d7ca536e15af2bf9b92d40c95a6ff80546d6aafc91ad1b191abc8ce198c93714982ece2624f70d4f1bc41baadb1774baa263e328fb430fa7dc219489e95b10f9eca1702c5c430fc4e4453cd91b24bc1209d36de1dbe366836101a77e3f34ce0163a0d9d2238f2c7b2af45431195ced99313bd43d19ff79bd9799c9243fa60f09c1a084049d04f60e8265930c078ba575fad74047f78603725a05c053d39c908727fea98700565c0365b78fa4d3b4660cd0c3c06c20a19b199390b0e7e2886841e00025b0575d297245d659926233b6d5ef2628f132565b995c0b11a92159d8ca163a98608191927501e8a50aa7d4c19f835046ee218eb744371df7bc36464c5b28a7dd16f5c42c68d0f2917bdc1519444d1e9186eb7719aaf2f8a421bb960393812922530bd344c721a0c82aefe793f3f38448e23451b5b18aa969ad2085661004669ef02b0fc50d34af389d6dff5d0739cfe45457dcd8cc2e2d2ba51c14b488d855d29b681a20b6e687e8ac3730428cbaa83693577d278d9e4c91e8d9dd2ef39b0ce339b1ee8e7f2df70f95f6a5416fd2da0ef54c5624953c912face1ebca8a949dd73be41b0e9aee84ef1510b6f278c212a03afbf97176d66ac7b84dc713b27d6ffe38502f212d391667da1403acf6b43d531877e496e901abb46678eaa76de55b0cd6414500dfe241e9bf4d2659cb4a296dbcc9e031992a6036405e1e1396940c9ca58daf0563198f0aab2bff64611bae20fe29d5690ea5df3942fad395da8ac23d05202f84eca6ed85426ee6285f589fe35d6c8a80ee553ee16db9e71e7faa13bee844564122b497e58f5269ebcea003320995fdeb4a860f5b4b2727be5d0be2b7aadcd1d5c44909374136a49c9dd18f7fbc3efffde31aa7051cf135734acfa110dbebc66e073fa83143bc5e3e56d009fa79f25b1239e1e6f23e03cfd298f1de2b16fc869dd2bcac43f224d8147538e218ed064acdf442b8fc09676f16fd1fe23d2ca7b3139bcc6698d61c478d61cbe44fe5792baadcd78d007e486acf7701461b96c7be31fb73c862925772be84a4c32acd6c5193f39d16a88500bd42b2b71abc9270da511da329240c9033efbef9d207b2b3b4f90cd301452b03740d02060450c16cb8535020dfd6b0155d90719ef377d950a9dc2857480b106c4a59c595f467ec02dd6265c257ffb879e0e6ecf401f1b9098ce044bb59a15adb4cfacc2cb3589f55057543aff5ebd0a2e5d83b1bd9fe0a872b398d8e8b60744ee4ee6be712570ecced8d33973e0fe1bdb6fb69fbccdb14bc6d168cf3b533cbdd614480f06e897468d970a6d9850b848a46e626cd9f39b9e6a6deccf8479bf6cf909039445ea50844360b14855f465154e3cdf1d5599e3c399134bd421c273aee0b8d12448988e58285f1d4f2f820c22fcce3efd2cd390236ece0b2acdc3d76d6687462cfe9d8a0fb0f735577cb4d08fae9cd3804a5038b3926384cc28493810b9eb4651ba901146c97222de8201af0d102a0837a50728d2c9d97a873418a13f8668c36a871c43e5206639fb011b434a3412540b40892f4805d52138ae5fce51c36d3bbc25b78478e865db925d4d4853693750f5fe043540c2eb8b4e36a072e9c5f1a18738e7f9a0b6cf57f622c4438a101c33a2909b1b4f4792a0ff20f98d08bbc690cf61d2f310bdf7ac63c038f5d4d115264cbe81140464585f4a7e253ef2eccb19cd20d740f949aa42cfed6014942afe2b40125dfba169543ca9c60a39a6179ae28b2b6491e4a7735f8ba4c02590bde7940932f5b620c388b1bd706531fdcc1c38bddb209fc00d70a8a1701f1422bc21eaa66a20b593a5da46ba9da73d019b4adc0a41792d551acaca9be34b4a984540f015937283bce7a86933b918d5fa2e38a25f36445a180452bd89a11e86aee9384add03839e2255f47b92feb0567242ebf9f4e25243d1fa1685f0543ff0c0bc8215e63d62f45e4583a095daa0a207f386bc446c4e6488706023149cc5cdd72752c04a453568c2a90a6ea5ec2cedcf18600640d8ecba8e4d5cd37ab9df43da15e124889105edd7aa9fac14677c39382584a234d7c980c405468037ecf4b6860291320eb752b7dac91f0d21e8d0f9c06a3516e64867a8e3877cf91ebef21d583a1db9fc7f1e5f3f2a3403148f5cbc2725ad249b400812d471e175faa51a8b10581f6ad89bc0a2ffa80be724f6568637f54939d771bac434baf4b8b9dff110f76ce33b111a2682d65cfa4a86283f04476f9c63a8c0e0793982353a4a33bb8da8d69961df233b4338f84fcde0e0fc54271c93965b18fbf6019cf52d588516c4d71de9021a12cee1b57ef396e17d66f608d8d9994e461e2cb52b4bf4ace32d3be711b24d5a10cdd61b6e3b5371f5cd57f3c3e24523621b1a8ba4481aae5f1455ea52b9f13dad2d00ea84813446c2c34f08a87c6d85f708f792ec44a755e130baadcd767adc5e201214fd67f8b1c511b76487ff191e9aea0e4e651e823c01ff6ee23a0484d060c030432847c564e56726577c796a96091e7ee72f8bce034eaed73088e52d52a89239f85c2b1653961df53b043ea1309dcf39f6981275e28c3a8e44a4239b2e858a113a107701d62b015a0e35bd46cceacd6d4e531f0d59417656420401bfdc0ef389cd693f65164ebbebe44f89e2631cef38104a50282e45e3827eaf45848f45e095e3882afe2577078625acaab320e8b3a24a21143661f5c41f38293a5641f871d2f35d529fa6b5a898dba20bc8e1fdca11fb5c64516493bfa57a0a129f440ea5f2ae06224d5e90dd1d2772e1e8774bd37f0b9de9c631b05ed05de79a7c5f99c955e10323e498b4271c6a58cdaec3b1da5498f541c74a5e47bb3ff5159447dd5436702e1cb1992c1555929f9ee49ae24695d1e5377dba3a48ec249fe2aef48e9253a7e51a11d47a477a43e322c5382fe031e2b7af886120a45b0cb2266a6146e9c2ba64c4f0b7e66faeb36f7628ac3b03d26d06a2a0b64d3fd7aa0af754195a07d601a9d738546c5765a5982c3316dea9f0f800562d25588220e0a89781b064cf6f1fe9f88edddeee50093487c97ee201a2c2d26f497bf791fc3485d8cfc6d411085280002393b7c244e60747da0e25c063d3222e96f8d4b994a8c8a232fb9abad837944fca29c9778029f06cda34540ec823020b93492aa806daf453617bcd81149698e5125d7769ae0388030cf0e17a57cf29c5b38faf5f51ca12343a889a6aaab756444cb438c1d7a003400872fc8806fc0d9ad3a9fdd813d073d3e620b2c1e91d180c50c382be8e459f483859124e1572ccb804b0057b208bd7f443b491846d08045205b2ba6b6d0966e72890fbb53b336c716abfd4fa921d2d8a22df958b2230ecb85cb2ffe8cd5720589b3cdc3ef9d6025ac275e7d80d1dbf62f5141d9d868c1c7c2ca23c1f88a5959b729f86f48f72746c7cd84b18b5c31f07cf118079e8f20216ab42bab8247404fc92e46d7d4ff02d6c65ecabf87d9bdc9e8483bebc21387b23ec47dc13d067241f803a20f1c0f48909f23234f154f211f4ec977a08b7ab09ca2c1414264c749061c56600e3ac4fb46ff614bef698640a03cd4ecb6445df8deea902a8f729bc298acf6e5b8a5fe4126753e0b10f5a8f1af8c06012f65b1c0935bc3133e92bade360737e97112b897007cae9e828071cccdfac20583bc6a7cbcb4991dfa771b52289aeadcbfa219ccc682b3022dc2cf4a46799b1205e02321f431bdfb0c2de72c03c7d47f14a40c5bba5bd30e3b934cfdb0dc2cc577013b1b01781c7b75e947d47e837623b72d565c6badc5f130e13b252514be5b30cd1db89c839da1386246940d48ae5fcca5bd6e12830a2953dd34ba6727a5e3b4c30c45a95af537260d1b18f9d4398090a5acadb5990d9ae1893e5d670d9eb1ac28953557a498f8b6f6b999f14cf494f64122c55e6c3bf5a48838b89efd3af2f1a06783d3703f6490a3a15a3ffa22c8c6ccc26d4d83bf9a99d272a8ba123627a46d1ec9153264a1a90747693ce36285ee5e6856fee328ff67c4183af00da04522d60b72e38f44f892132404b5c68da1064c1c5e747fa1cb1a1bd6fe8064d1aa3a696c17cb073bf9c69a095e3768551a1359951959fb788443a81fbf5acd215ab535ca853ae34d51ee5be733cc6b1b6595c967fe95767eeae634a18f928716dfd7982dbc85fed6f6b7509077d07b727806b2c0c0b5425381fa67c211f6d210f9c08e9d060b2532acbf8f4295be64be59595c0b7ab3fa117b80d46d3207764ccb9203d5d0899868a168112899bbe761ccf5c5e7017ceea0823fddbed4c992aff7a77ce3cbccb9fe3376e2bcddf1d91cae8c3b15e04b74886047a524bf3fc16fbabe9a264f4049e4cb842c32b1fb92293ef60395962e620e0d788043927c08b9be616e816b42cf51baa33754f1f744af38bf7311c1673afc632221efb15fa39fa5a83a40f221f385b8ac3044ff75586a9f715de42554b67ae7c3b8cfc88c4a6be459cc04896f11482f00935ad56094e5faa28f355a3608e2948a136d9e42dbb212188ed07a212e3ad8ddfad0f72b23113a6043ef9f973c6a17444261a094742e49b14bfe79a69db695684f62b06fa2bf41fc19202f416c3e36d6fac0e00a6d44cc0a0626529236f049abf9c4c806e52ecf199043d4d8cd0dbec676339ed9ef0179acf0a84de3cc6692d35f20832efc5cec3da6ac93a92b48ccf38764b7c5c22474de80e14a9a38458c865de1f50924986e2c328a5fd63445a9e14aa7083888dde2d2f596d61295d23e65df00da2c731cd66b509b974773302c3d6393e0163f770614213538eb9ff721dafc503137afae29c1f3a7206c8835840f5df68886273d2c1fb18e875bae650bbcde3797f988151a3f7991808f22f0f6940231d4c80fb049cfd3e0c64108e5521c134c8fa6d53144b287ea38352f943a4c014d628fd4a00e921364383a968003e76981c287e54e9dc0030afd700928ef112b84bbbe73673108d4560cea4027ef486b3d67cbb1703a507ec26c51e50db01146b819e3386818f317d4e3f84f065238bb7e92e4000b33c333e84b0e3629c8a94274d44bf74df480860ff8058f6e0044acb641ed83d7e382de9ba56802790126285403c4a428b9245138227b634eb43428a78157de8466c9ac8e8fcada95fade16dbad39c6585e1a4b8080b44631988f3b101af992e9b4678a7f709630b2599552ce9ab9897f6e2e331ebc82bb97f09f48a5f76c25c78c1cbedc2780bb410bcdba20bf6ccdd0426162113193e0799b41b96b564eca64b279405aa04af6d6722321bdac7b4a6f523cd773cc999b855c06ce083bba2e625390669188bc42c36f42179bd2025b98eaf6c7749af6f2cc777ec9bb8e5bcd7bc44a4d140042f19905a6c6fa204d28ec17c73b512cae365ff13ee525f11b680c56d2ee93dd908941ce88fb0b2060a2a871a592cd78a49ddbf5c282021e3ee2b82a70a23fc10052e14ddf1ca1c80f053599696cf81839e5e881e41c860dc19068ec173118fd10da68d894ec0cba9f8099f529410e2971740fef5fd5e341cffeb6e91b25c5c9776bdf8fcbfdc4f0e29f4016b548b42a2862dd6578cb7da936168d3d83a0bfbfad27e099842b1426deb86687c614b88b0177d522146a1a71705da3a8165592764ca49c73a4a673f7dd981ee8ff4ec4729dd4df3c4b3bd55b32ac7c71a92806c1b2a7985829c7961dafb8c006679466819d42c0c00752c15be2f7561dfaf5f9dc95779380a2b660ba23ddd18705fdc11a74ef6d07b77ed85db1d338fe6a4ea11d50c1c0f38be46667b9decd2b089aeb21755f6d83da4605ec34ea5590412d783850098b1078c01015dce4eba5e9192567be7a1c3e690a50e8d71cd006aa144ff30fd730127fdfd4b7b1650ad4ba610aa508722475e00c0bb90d9079684fcf01cc279f79b3cbbb7cab396fd73e0f3b45908853712c309817734306ccef21f36ff566f07d28393439dfff2227e0392b5659b865476beafad0521aece737bc1ec7c101e04aef3c6795ff56949d08b737ae65be47c9776a1ded3ea7a4abdfd874bd69405f032be20052a0a70da627bb5c2924eb1e9544781026986670d9e6b2fc700876bf2bb394f40cff87872fb1de0be7d480c08ba1716559f051cc1d3f3e5d42b7728d6f6799308b6e926bf82646929bcaa4d65a407ae20cd1ba4347dafdce93d452461392d6fb9095d4f6f6552c5e51d735ba311268c9ec417700e8a58328c25c97160496eec48b70d3236c1c5908e73b1d53b2b562f7d98eb9c1a6969a6b63a108f83942e2de29b009458c1b30f0b2c12dc2dbd2b886dde613600070d5cf67668e345521e288aa335d20a5a8e92244d761e8760e18ddd19a2816648c43203ffe4ab063f8932577d2621a1461f9815942961991a49fd31d3a63863238ad74a98ad0671d9e39d0b50a4bbf3b5f82f7e406a00167270b3b79c57dc758720ad2513e8cac8d6e5ce6820fec36bead0fdd6e68fc2550013525fa2a51f8235239758831425d5245a0a7831c178d40195587e75ff200f1d775d2eee286f7cbb7be30a023c15a6a6a4a8c50d0f2e38b14d7b2d7bdc926bddae777896f8ce061905515b96c43929f9987d536bfd780e3932090919388470fd8f4200f95741b44b7e8fe149171b532169c4869ca91c7baf382c0f91cbbef5cd6ad12ea6917c2dcd553361a3066ac9effc97fbb7d8b4721e0c71184b754fe0cdc186412c634eefe49cc44bf7de32851a667acfb25988537ddf6eb6fbdbab5f45e36c3c591a385ca2e3770909025ddf1471678a6605bd47dff9f237ff4f2f4a253815cbcfb4bea0c44af4943c9a32ecf1ce29c538fe7b7d548d8265e7c9fbef574fbb4e92c29db4019ac0da711e6686d4a69861649eb343108c2d964b5bf2dd3d2ea8ab10089511405a0fb82d00516b870bbe9cb6129e79589ea28d08fafb88059738f07182aad75fbc39a3e451a160a9861109f3313a4ecc43cafd7f415cd4c116d2684374708c7e0c4cd9e0180a8a83433b5db39fce872e193526b7b5ddef322409284d47c0b5b2aa508fa6f51396a68af29e8d83452b0313b699741100f84931a91f644c3c848b50c9b7e571ab96574fda4b74d4c5bac7c7959cf9e0ea9be395224ffda8bcf5f43f6232dceceb21a8425f0addc436bdd44a1342f9aa5811a5dad2b7a3a4c91e933d0ef1f781078572a5e59431ea00c9c2700a9a539be3ae1a56e734cd110f5de0f9e07515e4448605bceb90b48035e27e98582683ea1abc270bc46738374e7ff5502460dd822530c75267b3ce992ba7fcfc27c056ee3607dcc000aa46f86c7a4f029058c19df57882e0229176ea8a5161adbe7a8dda8c7350a5069736f786055fc069d784ddbc05e81c9e1223bd09f7a617306b50fa1c8ec57697b88d17ad63ab781ce45dabbc2a237470a3e758f1d9f661418a2e533844c879113268fd2a7d193ca32e86acf2b8ab3f51b508a6ff4849f2da61e4a5a5338f54a789e6624128e351161bc4aa6421853fa279e0f2e433804f1164bda6b60faf04627aa62492202bcad81e272c1fd17292c1eb607780ef67831463345c8d93ff9dfef5ca859698c29696ea2042ce9d44661b493405956d0a55d45974b31dd3d481a2593a5f25051d8e3e33cbf4783cddc1a5ff24dfef5ccbe8a29f336199854274b39e1fd27bf7fbaa277fdfd42d5dfeb67393d96b98f8fd6c82bf42dac1369d0d9e0dccca5005fdfd64e979793e4108e365967e411035f8ec2c411c0f33ac858dcda55ad7096efcffa8c8e6bf65e1e2c8adc8282d2ebb1088ced7818b8a6b4e92a502ba25a5e60cdf44abc8c8d1fe3dc40b991e479112e72529e953f10af9fdb771ddcf2253eab10d63850013da414da3425a6c344ccfacb64a3e8ff9eb65ab5a8bb4f1b5a50d430340a27e1b9123f4ed347d34d114d2a6498dd7bbcb6c01f5cc829c360e860f59b02cf957136dc87c1db7ca4d81213a9fc6dc98269dfae951dfdda989f00a3622a50473f51032540ee0cf3f6f685e4e1c9b83ba64847978fc033889e8ce14b47ad2023ffae16285ba83a0913b09ec9aad79bce61cff469bd268d49a976c0664b24b41408b82d4fac1b56b409e1c8191e032610939cec987fee3cb3aae3eb3cb0c8e722cc4940a1e3957e3d2c2cc4e49809f78f0e0b735ea140dd913d2cb8eaa73b7a542c19be8992420b4932b9d50f01aed09c7d56613729b6ef9cf0ad7c138aab3fa934a2c6855483b8fe81fc3fd17e911510383e11bf6e74409fe4eccfff59989c43ffa626b58a517fbc6132e58744feb912a4a93c32a06d809e22411c1f40ad98f3d7d902778a9af2823f7b11858b094590b957527a38e53e2058120ac91de996afc18b5e31d37149d3c51da80fa32d84d21186027f2bc8a9c74f191eab99b114eabc63f40ca71f383bd9e01c2c622fb1979b583bb2d16603840dd096812cc05d493e9a541491332e59c8f90d55916577bf440ee8e4d61518c011a201441758a9d647b39d479632d2680ba30119bc8875dfc11787760fba78921e68a22e6c74140f425decdd369da1e429b7e0b4017a1bc0b26080066ac7b611c9a5d154019443451965a934c50ea629215dba15b896a7ef27422a7306ee473eedbd75504a06ea77c54a534927d17259d20ad46008658d73958df49cf296f849301bc5dbeae4825d004f6887a4a056f6953ac5c842ee23ac395f84ffd6bd2dbe03a361693c0c9a4813d5cdc836a3046339ba6633367fc65c6d1e93393d665e9602d68dbf2a1c9c2a343b1d9e2bafc6386db8110f0feed0d43c9902a4a5022d8c4d8b828b6aef916f94adaa1c0665031adc0c802c01b2620485521d438116f657295785181e415092739af7a43fc9151166fc8240b75f2efe0ebd063c09dcc2d4bf3c639caeb96c589c13643be88fa580660ca7ef20a6203d96c4687be1b9bcdfcb5d954fcc968d738b2b3fbf81a935b73e85d4cb14379b474f99094ed30c0933249b8f2b52a44d42524686439f5d7ce28b31adc114d4a460034e9ed60d3d3b5b1623ee41b272bb45a7c43c54fa0ac3a476efa4ee2f438484de3cc264a6c7a5f9a83c47cc95cbce862e5bc58ff250782bd383d9a7f94252e33c2c98b6728c2fa3f6cebff45fcb7d01efc7afc150b6f24466337c333e22490c24249a57ad79fb1543e381454229748313a6402365688fdd26f8d02e79e476afa0bd9035242c1f5b56e2dd04fa991cc7ddc1e22c7c230c30e6eefdb922ea00f0b4bc5305b362377038467453bd818be0383fe38f0b17ed2e9662a81be6ee1262cc8206e0c52181d1c7466ea9509f93c360f9d57a08aacff2b41bf421102476fd096962dbcdebcd40426a293ed53afe85b1626087012330305b41cb120d2623998f41257d438c7e081a98afe3822e122457fee60602bf142fe25355f1ec8fb1c07a4076245c227ae43e8e071c72d662c1c846f10501de2e3e2c431e81f6c88e0c8c476ff4b274e08ee7e967ebd90828b2d89edb1596a04a9498e1bc1bf5291ee734d7f3b0345f41471a843eee3137a1ac143fe3abb9f301ef0aba8da7e00ec8fd615042a9fc0981031f87d1434b811330ae5a383b0d3c8421f71621d7eff4d81d61b8d68cbb4e42f77ab2d25b0284e4704a1d60723847779fd0563bac018f6ca16f1aafaf296db07c966a04f31d291eb54de17193b827deaff1f06807928b4f1aeb3e35234cff9d40f2847c20b3ce97cb38c3e03d8cc44d801ecabbce29fb1d6c13a92c956958aa884422e3e6250d7dda7faae9d7e0818a9765ddf3357ca5475a0940ee0255898efeac3a3d414d59a40b56110eae369beafd3339011efd43f9820e803892518c28e3a72eaf7663f44a0f15a1280cbe71111784aa49fbafbbb3b15978283b88341f1e1dce7de6a55bd557cbc9ac1f9eaaa468c7d7a904bfcbcef5712e0c4fd9982638153965f6b27bb2c68b84ec27447258d627a52cf46151fdd597b34b6f0f2a8b7067d43f9860325070f0ffb4660a373d2d631242c105f92224c1750b8256da702f1248c289fca0812582c35b75e1150464f60fe2511d052225202ec10e4d0184a6ee7229865ea29c96397d3983806a264b8a88853163d63fb5c4ea257e51da3059653e363d8fe13372dc985949322b872eda643c8475c9bc14355f4749941d9d5b89ff55685da5a324d83a9b19420974084a8a7c7e091d6ff233e9d8387c797bf65936599c102931b07bd5123e39a63baabc6145fb058d49594b3abb1b872bf4952a9e89e0dfe2cd3a03d04229407693a1ea05d358ce66c29ed7e651040e7288cae9cea58b9a8850df5291199adb98fb0bdc1170187d2fcf07f876763c57f6d3497f30030de2ee1b30de2f60e2f029140e97c37e8fab812fa2185c18d35640d9f55103ecaf0ecf96383109ee39508b6de96cb6080d86d1cc842d37542b3e6b603a042d716307b6718855da201822657421c7878fcda64de4e084db27b054ce7020a9e767d56409c0da5394d7eea3e5c336024a61795c9b90ead04b212f5ded0a5a219b6970c22487180c271f38eeccaff0a7666ef3cdc12225900b7063d99e3ba35f827e9e14284497223fc01fbadb5b62de9468d7423ad9b90901d5e0748071308d9e921cd916da7d7391adbcdf09ed30bff095de429fdb19ece67e82217d11eea80401ded2e1876b4ebae4879b34b0a14e259f8baec8a7c54a9ef3c6edb9c1b84145ac7b2a7c0278fddf54976cdba1e6537574c297c89756d52722d7b89859e579f36040f770e698ec62bf2497acd4e3b270ecd4e6a55ea29d5eae955ea754da97d636047b74db3dbf5cf3ff597a3f4aa68f45647a33a4aa70bc50eed7cc76aa736d36ce369b38772a176da09adcaf6ed3a47035ee7686cdb8c18a439aa76b30bd6a68d3d9aa756b3f9611221ea3befccd74baf1d5e45bbd5d1a087b73a1af32ed85108af9251ec4e071f96f22990850776728a25252da38f137be0cfb7c718b7bb1e69f766edd953e08561df7efb79fd93d82fed9776aa6df1631dceeacd2ef85db70e07173fe33bef5524be133f2f8ac3ea3c9ede3c22e91053e43174d1e3cda0bb7aedf5f47ac47468af371f51710848f0075c30f67a6a73cd126fd825f97c653bf6cfc5be61b13e565b7fd98cdd3d02a16faf7602f5f4d3e3abf578ae3daa235e92cfe32bc9e7d835b95d92cf0dc26192ec2bd73fcfae7f7eddcf8d3dc28ebd7e3b16b15335f494d66cd6eeb9254f54edea08bdde95d0b7bb22f28ad968b3765b220edd2872778a0af15e3fd11c22d78ddc1688e7e9ebcda21b419dd3cee3ec3c7e76a2f6fa59ad5663dd2276edb5134f3b1487f518b51bef76337d0bc495c6186f6e814cb0f2d11c17c65eadf5cde61e784be9a93df609bd76d92832ae4960d479b4da3bf663f30c203c37bb60cfeb8da2cee79dcfe93ff7f3ec9fc79ed259e2cf6558d9269fbb46f9dcd108b860124fbc279e3e66d75977c7ee8af5eb297dd11cd6cd2eb86e36b7448959b6ded1fa7e5dafdbcd2e78bb6673c5daa9cd3d489edd358a8cd3cf49ac6b93cfcd126bda6558d726da41a7be85b0bb527fbd5ff5571022d6a9ddeeb1b907d6deb1f9e1d076faedf49f6317b12bdb8d3dfab87ab3876ce79af5746c638fcda0db12f185d96af3f50fb8e0edd87474020e937c9efd73cc7a4eedc3dbabcd3d70fdc76aa79eeb7a548f3db32bdaaddb3b9b75d5e696d8b179097c91685fa1afd76e490c2a490efaaabd5e2dbb79097cdd3de27987397c5deb96c5d2e61dd8bdb2b908dc0347eabd8bb44726566e924e569185c4618973849de39c734e24290a4e729a260a42385df6084e14359d9abe42c127a6eb13ead15121a695e9f1616a8cb6545f121587fbc2e73c3d040ff75f3b6c033bd4612642082184104218e1fb42d72308616c202d46edf76e3f064c3762078705165858e1a6045f4a35166665d666ddd808015203e475ad5129ab8a13455595949745ad5a2d8f25b244ac023c31afb8e28a3a547098ae670ff0af2c0aaa4bea56777852c2e546f5b6d9057755ddead15237cb69aa0e5fc57bdf449833477b8dc5df0cea93914e54f5de7439bef75ebff7dea10d4b84c1ef5d4929274dc39ccf8a8a6131b07b57fc8951619cea7b5524df7b1a4e8d62d42ce59549275e0e4ecd12378497565408df7332980ebb3805000077d844af129b471842482dfdc4b06317767a451a5492d0e3453ec59c1aa360ed802829f0092fd804bb19277481e76cec5115edefe60694c4a00744197126ef93c5efa077eb392ada016548903502b246de452711bd4b5e55555154f5e4fd0164b31c11d91e7a349dc4d6b099a501b8ff02600160253499ae8d5149e01d34917173c5f0eed8014da6f3802693e8db2719d8ba95055dda1f1a08d141df9450ad0d09d5f548f6a83ac9439664e4a13f2c6249462e72199f9895bfac8c539bddcc0abc84b652513b41307cbd8350891e4d2ff97c588fce5d2de9b1845a1dbe468fa6f7504485c113fae9d3e10905ce2d8de9e521c571c41b0388971dbb4a86dd055f36c75c0486a7999d8d51abdd5115169ce1e7a975c1d0b2e0695b26ac5d043c03c85f36054ec7462c1238421742e4326eec51b53d641deed86a4b6c16914cb76e42d66191ddee0f3d6b40140bb4c9946df4d0287407cca2de092de0629aa8876c66c1a157363f5c894017aff509b35b1dda0b964c7915ecf29abf604a431b7a66dd0af5fa948600b0376b17b1ae93e4c09e5d05cbae4b9283feba8a75334b862e2c1f4c856e76c1f5da1dcdd153038260781956d4d32830fd0814183ef4e9ea19aa9b810213185ec6e77c98a438409f13de054315d4dc03b740bc123abc6e2e917408192227f90e3a44e8f0f2e8d1b4428f9dfeca511ddeccf279540776aae282e73ff8caaeeccab293e4909f5791f3bae0ec92e498cfae329f5d978bbeb239bbf608887c523b01faeb1d786a2debd8a9cd2c98fe511df092c8c36724f2f318a5774d22af3c490eead555a8eaba60794972549757a92e6776330b86a74f81d4e6ec1bbda3413c2c82ddba254f54ecbe734775889cde1591cfbb32729a59964fc62ecb078bdc3872ed1415a29e7ea23946ae2bb92d10cbf8757a33c98da2db0271e8d7231d2234848c9b1f0e1d7e866c5e62528bd9477340ba013c21765447c443e4ecd8e98d3dca2d10876e2e0186bf3e25a6511ca043dbd8511d10c321b01b7b449fdd79f3f51688e97577f4687a63c883c74387f03ba0e5d1a3e91a132a7c763416e8d17408631d7438601d170e05b9c5a676b0cea6d58bd9685d706673050496401e90140179b6873e109b33d6474d3bad37c78ca7f9da3e370dd36c961dfb75698f9825d15e8ffdc25eb1cfeb94b665da5dd93eef8ae7dab1cd2312fa743a9d4e47d334ada3699a93d2c98861d682357db21d3b1c52e339e8d363b1ce318fa5cf3a37d763db8cc1204fc91315fbc7c2213dc28e7dbbd8b5b47b611886619acd945e8325ac5918e639cdb161d9a338b03b35ebb2c012a6840c0b2cc11a9c59602989246694901189ee12b0046f405dc3a881d9cd6622f0e6f974e2a5917a66f39dc7288aa29e4f04760182b3edd33a1c448f68a594524a75a87fa8ebd188c02e29109bc13203bfd72ca3a88ba2a85391d24efd511df55407f6799ac52c6631d36e0e8c9e7acc683627903d7ea2f5511dd425d14e7d9268c75e339108673fceb479e7cd4460ea197d95559b6bbdd95df97cde95ce336a5966e0ec94cdf5b2ccc09f9b51f11945458afaf450b5665446d1d7671eeaf13a45d51ba92c52d4459d09f3d74504d60e298eeb13f45c12128935c6ce6be679d6b1d93d9607d9038e0dc03188f62c881e55acbe56919b657da81e74b1ccb83eaff914a855775d73be1231e3383b8e253896e0cc23c2d9352d7f70fc648fd563359b6537b3b9f3ea749bf33373c988c0916e56cb9d2be767631f88d8334b440e7ab378cde18b65069eb7aed9bc049e974e961938c6872febf0b4574abf5b36bb40915d8010016780ec40dfb1990577a616b7f8c98db1ecd16636febad727c69279747e5947b33ba861f55b7dbd9905531bad0beed8fca11f2dd62887f83cdeea01c91e698fb76693daebd16259768ff679766a2b097dfc768c84bef3cc350a0b26a177bb9905c777ae79ea939a8ee6a8d16258ae177d9da80440af9fb20aa3b6fed1093c4ceb0704f23c63f9e00ce4b93bccde3487e773ecd910da101f2dfbccb42c9b9936b34cd63a65c532ebd566165c3f158b26c866db31db01e511c6288661b571166920fbb008a28c3c7310e5733d3757ed23dacd2c1fec66d9cc6ac5b4bb3ee97ceb6c9d8fd82cb1d6c932bc7dcb2a468fd5aa5d96cf35334a6d490cea279b53e2ccf2c134b37c7ee0c182dd658d528c8c84da23450bf67cc247f8c191dd9cbd5af3d69cefdcf528b31e6d7e3bc8c61e595fc19eddba2531a8d8edb4389714e8b10e57a75d3554af0b4228e91017e82287377fba1eb6f6ec9a7538b36b211000fe800b9ed78ed98c61ac8375e625f17ca5f379cf9def4c78a859ed16e81dcd6a5a76ec115ecb3c87d7483c9fcfac8e75493cf42bd63da7d63db75c8fb4c3f949033da5b35bf244cd2e0b1641d7ee0ae89dbb128236679705c3a08b854222914f3d56af9b1fae30cbe0eccc67d76ec5647663e7664cc3209c1042d8823b5976d927d8337a68b357ebb1f940640cc3ea79f51cbbe77a4eef39bceeb9eb13d04336f6c8f30d7e83a00be7a575344b5a56e76617dcc15a30e639b51267d9476c0ac46cfe7c7a07645956a8f3cde6169cbddafc30a873ec9d6397773e64573a1e8c1e64eb33bb55db78b3f97329cbea7c763ca7f77cda4db3b9a52406353bf66d9eda95ceabc39205abd835ec9a765d8f26bd7909160c5fd33e2c2feb4a98893002bb4f36b75014471c19b94b6037847091f608c13e6d76c1d3f38ce1c37873fd8c7685bef19c9766b30ba657fbbcb988ed9a8eecef51c55e6bf564373ebcd96376027934ed1d0f487a1eb19b45a0cee722210fb63d521df3d7697dbd24d9cd31afeb1e8f5ddf6c9e77d7e7f5fa5cd8a7c753bb6dd74e697dfc75ec9a25a99fd7b27a73cc7bcdebb35dd75df9bcde95ceb5a9d10fd6d13a22d0b16b2221cf310fc8e3999aa59a36b5ebf49a07d3e8bd300d9bd629851487f5097ac630861debdcf3d9b15a531d9f6b16b3d93bd730ac5efbfc3df2bc631f3e441939f4dc358ae72336b689c773d0fd78306db6669d36b53baa6918b68d9c6e3230ec239d53afdbbc2bdaaf4bfbf539b59e7f6c0e8f3bc59ecd6f363b666be36a73675acde6eb7352db23c7a418f60cd3329b97c83123c66edf65adc750778470fd7ac86d968847d68ff66a3508674f13864d18364da03b9a599f32d041d324e7b64dad5a4dfbdc95ebef61374542f39d4f8f8dd5d180d3344dd33461d627ad7a28ad16f5fcf38f471e5e45deeca6e99202433637ee4b24a7b64e12e910a2ecb98cc39b47eee810d6e176eddbb36f76ca3ee1d4bea96c4fe9cce60fcee4896b9279817863607ab7c3679d4ea7a372fd532bad577534b64fb73a1a70fbb4d9e98e4ac0f3393d7b9c2e9a0edaece7736d3afc4532bd9325ce15639764bad33bbf8ecd699aa6699aae52271295d045b6cdf5684b6252026bd374157a27174c837878fa663f1efacf2d79a24e91eaf07cba2b9ecfbb02fa748c5e960ff6dce8a65f12d1e1a769b20ead4fa23b7d9a93364d6b3a9c1487fc344ded663851d813d49850a7b77c525e50f4ecc1f01dc700ec19a00fabe72387c75e9d0fa0c3cf3bd7b17f2c0671f6d9944e0a27cf69762d7be88e4278157a8f78636050060f33f8ce5d30f614086d63ec631fc61e03e03b57dc39b41d6780cee1476cc7833b1761b83b9f210bb2f4734218a498869a316a8a4a066981a1869a3f9d8646434fd16868347411a8276b1589fed1a8860d2723b32f2a14d20e70303a2138c5f9406905fac62341931c889241941ef005a2d44b59ab48f453fb64a049fc2b4194478226f17fa557b2e4504bd6192a456a29bc16e27cd8c2f9202ff2a27a01472ce07827312ea6b40fa7343e8333896f83c4a92a6827626084518467635d849add14606fe10c103f9fbc04e2b9a066d7057e8754e5e1ccf68d9b9da1c237cd3b83434981266dc01107c737068ead021cdb091ce363cc5e707cb50e9a68d64763378fb4cf9b7f5955de8ec88a7a26e0a8b59020385e074d72e7e0f8fcb868218e467c46860adfb985e0f81e50ca5a45a2c7ea467aa992d559154d684229078565155d459d34aaea02877b4583ddbb8a2aa59433bb819b9165c80ca1e6ab86547dc090a0c9cbcc510696e01718da68d96190884d55778c56c430f3bd673dc3201475ead3bd1722c9cf890921bca7e037b0f982fb57ce7583fb14185a76d55c35211921db9056407fb25ba9aba89675cdeb7a39f88981dfe9cb212a4232d0e47db2ef6a3099cd6aa0c94b7663a35d5bcdab5b4d377dd634599fac8aaa2a1957455531465851f1ba280e2a5655880adc9fa11fd80ffc1ccc4251fca26e705f8ec001f7e9480eee6b325e60906b489bf455d3851ab317290a9316d653548bc6bbd5f4a8bf0de9515715162c15cd56da6a64ec407ab1d5c8d8012529193b703eb8ecfd67b1aea2ba2ba83b081fad807523bbd94818356f2119cb7e8144c45353f2f35ef9702e4709ceb2c01c0a4f568afaded562a4cdbaf00183fb54b3998df652b31cdc27e1900c75339a1ec900c355d327d5fbd790ab14928128f55948c6ba516f46331246cd578d109c455885415b61ca6e325b1476fb014dfa990582fb903483fb1b4dce8f8c264846d3232930e7e2dde9dd48326aea55138aa24dfa94e2883724936119c5118aa247ad840f7984fa9e029fad3e591678132285647ab4d5381a65a839a3c1fd1c92c1fdacd42779abc14dd34556930de993cc026dfa5b8df3c13d47e39db297cdc1f9aac1fd49a9cc9c0c19d90438c17c2fb66c08a173ceb9c7474deeb98972eddcab925f24fa4889cd747c99311afd2522e79c8b437d3763b5a78892cef4141f4df4a12a0fd7ce467178364fa77ab48c62f3b264e5f1783c23d9088c3683fbf3e62312d58a49f93059678c467fc9eb9e1c8430c669ba739733d5b154534f51df7b8b9ee853e37443c19bea3998d9c838547733fca23461100cfc4e51d06647093ff770c0cf6a4e54f5f084585351df21cd5161528c8932d83d432ba2aceecf52b87a6909537de09e8ea769d2cc992904f7211715900a488fa09db00cce954da9264608cd17d804322104f814fc4645c235b86f55328d52018126fd998af443c3412ba04f594da6728fc2898a1746d987651c2a12514e578b9918ee29ea8ce9e760e603778ece393739e726779be184024f17f4a8126253aa10da872b1f37f81de6c4bcc8c09070471f3f62de8750d592b10f83d1a3ce6e706736382b4d174c51b37474c2c8caba1b568599c048443c611c34893e220cce52e21923ac2a6aa226f80962948439756a18b4107f81f3c70adca7341cf4a829ea93cd150d9e2eb1a8d329cb52d168323d6a2d46a381a3d19762a859d362705f03d22759a3016e1215da8f3eb1a24f324b45d3d768e07c70d5d2e01c5f2a20b8274cb40f43395511f6a3aa2c7f006b3353db32d0d05051d327f9c5e0f7dc34b88b3e795198e91b8d009c7b087eafc116bb192dacc05a44810780dd4c1662c03919d2d068214617a53e71335160e20bfc4e839f7b54d40c67de7de0f70c856451d65179426e99706e9bfe74c57b53d1277db1a6384e5033cb07df921ebd477226ef3f2010fc9e5f0e7c2f3f2960687cd4c4e05792c14f0a47e35d86a1e6270596c2f9e0ac14d3e3f487834699fefe62fac475176df2ecc32fc6dda68150a8c7b9695e0005ceb0e4eedc5061200af40167204a9c8126ef9006bf77d3e00c69220d35c694c2ec010956200339b0e0046ba0c3180e808499f8442720030f6cd082171f3649a8e1051dac27ccc42702c116576c81083070c10dc230c018302035623793c517b2e08248165b783ec882067a31af176b0730a05e60e960240e560ebea00d61828c2be40aaabbab6e6a3c09e314a1944f260b326c918439855ab19bd922084bd8e2099c8f15610bac0a216f50821033e05c7f0c8b3014e205862f10c39938c5197df2847061627827856c212448bcc2ec27aa9bf3c554f73ec5bb7204f5fcac3b14c82be17243deb223904750cfd5fc7c4a4b29df84cb0d799bb83e6f9577e0e9927ff60829e45d817c139625e52dd78474f24d58b74213f726e4154113778a3a092bfc3b8c75988de77b389a3062ba19ee511435dd4d8e87e37eec2a4c3763eac7c7f75d89cf46d94e8bdaf753d538320089b7685ad4c6f1ae6d08243e02dee105bfb73c24de495c901b4c5dd42794e8415e30f519352ca6ee8660eab151de0d4a657abca5822aff1ea64eddc4f9709d3a0de78375eacf3c1cb104352deb1c8d77c49b59cd703fc37d01e0f902f000e07e0070ff0178760a9e109b7645be7f5912eb0ae100dc47c2e5c501b8ef00dc77c1029300d1b83a49751d8ef8e15394162eabdbfd39e79cbbefd725f55c3be7dab917e38b2fbe185d7c5fd654c947e38d955de9962a5b84117603fd6ea62da6bb99dc7c5694c1d5bfa675b8c7d5a34f1cbe5afa84fec22e7ae507832fe75cbc2cb50f0e96f5eacfb6483c59af5fe718af78c52bc668d923e0df0d1435bbd24d8f24aa127e5f3c1b0cdfd2a307839a5d09c317b10123ae2ba69b31827a1af1f026cb7ed9fcf0551f0f8774de95931082e303296d9dc00ed5d1889dec0179175f1212c31be1c006315430b1cec406319068820d32870d7580f1b1417aec5087177bf45cd3e0067705467553ddbcaaf41a96f4a82f12f5a861903867764c20d0a4ff458fbab2c15dd94caa9233c6449900e046113decdc9f8c87125fdec51d5f20cab48112675a188c9dc5e7524d8a636a9a43e2492621b59937f4141a4d559aa46ada5468d2578a0b66629d894e9b4c6e5105f105050ea5a28126b105b8732a1a88228234a269035128e7037c47d1b4a1aee80ef53d8bbc503714aa4626da24be7ca166d1439960b449bf21505d5315eb296a678360b8aa54e1b098a0e9aa54956c445569f38064a82ad14c1b3bd894a64d8f2018f53d4f9b4aca9b8f126625ad4bdaec6672de0f9b96a9813ea84a5a55966e26e7fdb069999a385195a464cefbf16c5a264e5435553339ef87cd44c576ae73de8f38c1692627763bd7d91cea3b6ce77aba76ae9dac3217eb5932c0c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1c1811fc26c51c3289d7b3c986e468633efbd9218b80f733ac2866926a2cd173dea5782f09182e0fe34d31417920a2b5a16ec675956f64814251f8cd5724191a3f2704b8fbac775651b5de03e46d3b401d99006f4a86d68487444bd3deba12acf7ea8cac311144120d80f04b23267c3dd905e690b75821c94179609e0b26bbad4363739f0053b08432291482412a9478d9b91cd4ba21a086d88600c948124f80302813315354568c3860d1b369e1bc16686d5ed53c94852fd2102f29991901a4d63432291482412a9870d08a18d2eb5cd4d0e7ca1a6d8366cd8b0d1d9b00f161251cfe62627262626262626864422914824528f9b9b9b26f58f06d2332da469a64822914824d2eb7173e36edc4d48041b21997e4820754624e48fa626a6542abd12e926e7a561da47c74448229148241249060900b0f7121313131313135382267d59ab48f48f1e9037f3843c9a575372871d1313131313f35ea9547aa5577a00080056e36664f392a8a6d2744c4c8c7ca930221f8f19c9d478a4474343434343f3181953c55031534c8c813102c07a0bf5180d34693aadca39d734f46689dd5caf9b453f75f3e8360deecb4f0b6170c34093be3084c9e46059d0ba0167e8bb801532aec69a2679cbb22c6949392d29af4f89a3e1e1c4c606d2ca408deef9a8c1dd857642073e9cb09c703e38ac4772861bc9db802846e43ae51f0f3cfd09017175232076e79d81251178ba1bc94a092aa52105eae7614f5681fa38ca55eace1ee128e76217ae01a32042e008a23c191969034a94b661c3b174ff5123622a8bcda481fa6420cafbd13f7ac62ed4fc7ebc21381a7d98839a9dcd1b82112c3dde109c0f9f1e55961ef56dc88e198d6e03b70d1b6398a9bc70c1620c36e820063746f8810b16f011a3bb780e0353d4600b35b0c20e3062d800021ba8680315c2e006983050701ee1d8830d1846a7f4a8e4c4e1d8047402bbf81fdc6d4094286f00e165065eccc8c0093f6ee47a82b308c738f2c4c71aa5761d1d03ae1360d859d032f818ddd45c8c340887b385e17d428c31ba6e97d2b1b250005d9d284bba07db657a2d03e9de7befca1e3d12e067a57bd334cd3ce11602ac917dab1b411378841240487c441238ca3064c55da194b5ce681fb077f4a8bb9bda010f6f811e35743b9ce5e1681c8f3e71b79dabcec3eeb0408f1ade023c22dcc10352d7c6ad011b4208e18e3eb1008f86875d5ac394779512eff36ca6fedecd553e5b97e2ba753db24edd0908e76850d6bbced1682cad2b05cc6ff46567b4097cbd42adae74d731a1becf80328851b8f80343dcb2472268027d402113458f60757728ab3b94ee49f9de8d3391b64aac4750ba57f89c8ba418137d44992cc230caf89021f5498e38c051f449ae110711077de20e6fe04dfc51e34e5082a3b4b54731be9750df9de4c09ba25651dd8df7de7bcfb22ccbfabbaecbb2ae9badebbdeb5dd67b104208231de24bc988871aa3d18807672f0a521facd1e683a736a3c6b539d45ca3460f8df2b9019d1d19a1bebb4b08e14c69ceb08016aacbd2f2d88145cdae5404745df8986f5849f5bdef7b81f0c1f7021fccfbfd867f30efe53121fbbd3c18c82388941d3d827f344c1851c44d097e2f0fe631d127d9e5949e0b307c09c5c567d4e821c61863a4ba638c718a31c6d7a843bafbcdccc4c73b17ad30d680020a0a900b55bac6a23674b5b6a046c1052d1a67a705108f011f314a9f51a307299d8dd16bf48866479017e487ad0c15c21a6e0886d083dd4c144a16764e00630b788a429ac82428c08a19f9bac1d3675751bb6fb8b76d5883736debdc08dec94fd3a18d08a254ef6562741c8df72d7700f7a71b3338573ff0f4a614b06e54b7224193e9cd859ae5d4599d8e790053206a4ba051eacdf41238e0a97f7cc4c09308d7c053166e70026717044f5316375ce0cc039e5e3f8a432588155408edbae98e4728e9a1bbbba3c063e8110f1d9fbbbb29ea517fd457de5b4af99e7cafbb71778d1e413b4a3141ed4308a1e3a2876a8594345e78a31f7a0473f577577d7a7ed55ff595f728fbe45d47ddb2aacb7debb3ada4420800bf5bafad2c5f7583b0512305ceb4bc213c7a04ffee8e1e79b0a8373d4a49d0b4f40914030e3b60adfd3271a185a440937e02b07b89f3c1e1f7defb88871ef5a39e42d92082e813ca518e72d299f4a9cfc90661537ed0a21ebb2e02bfa7fc10044c09e2d6e8517f2b43cd23dc3dfcd027d9cde41eb8e8a18719213ec0108317d3cd10b9424d02a2d4ed0ece3b48efa07607fb29d63d9793e8ae6eb75331e8f5e66b379fde2cc2ee741de83a68d2378f707617e573b303034fd7e32dcbb2a25559f7dc7b0f56ae7ad57b417bac832613622470342611380388c031a04d801f7651e0e9970c9e6ee1004f8731934bc2d1989e9981ba68703fb296019b4ca8d4eb178a931c550c910c000000008315002028140c0845e3d13c0d44710f14001083aa4668481acaa320c9611452c81863082000400000000044004405009d0b287c5b387ecc55b5e4329ae508d11d57a1151ff5676ce1a779492bb3735505962154289cb3d228a43ea5145de09140a7db15700cfd98bdfad9ae5accc1a932a977ee54642e609a2600d6cd97915226f166a1676c5d700ff558e9f2074b372a2c018babee2361aedfb22f29d6ad2bcd205c599f1a32ea0c7dc7c95a7b8f45415cb859b26fe93582057fd299ecffa9c21b5c50290b31b6b4f8b6c71ae18b19809df68f559418940128cc2da712161ad1ff73e94d40c90570210c69f519110ba3ef53da936f3b0c873a81ea9440a459632e5d389b620f60662826a5c6b13fa0a9471451016e4ca5155dd1e6c0deb9f43caf912c1f9954bd43c2e53885ed06eb4979f94cff4f2c0d3365583df99138aed11fb9f3794837e1e689f1506b2d1f42b4a3973a5bb4f6042576b346fc82d0f96ee724bba0ee2fbb22dca407524c926af98efe0540baf965e399e37fd2ec03d7c61991c38b1dafabb7f8ceaec81c865e7d5bd09e4a398830e9c887262efbae68ff9cb769fd3ca42e2754e905c07f2c93df7c46b0638e7977375efc3891447a94c232f60b26fff9414982417f28db4535ff437e675562446d8a5e6754b6250556a4be514746da73772a8b46106722a54858122616fc87edf1667d7f6595b3a9570eae384abd26905983279f31d7fdd95af7bdfad52f882d3ed86a9d2d840ea8809b25b4fa4dd4d3f137827b5e3835076136cca0fd4a1748a6ad902cf574ceba664d43f2aa40f8d43d0e90c8aac6695b0214e1ca8c860d9a72923ed556c2b8e07c4597b6d0248787d250ed18165ec569a55db1dba53e6298d4a988828f01103d771ffa87d8d52621c92690eb1e00f4db3e3835c797c4036e2041c2e18792740ade815a4d68e89fcaad0738850e9591b829929fb20a103d39f182fc98d9e2e7081dd3e6625547d4a1bb856cbbd4c51b342c74afd7f441f51a77705bd1e633dd611439bde69fe55873c7a062fc6ad81274339f303220946d30fd31c1fb1c0b7c90770b48713de10d7213d5a32e497e19b93f354d3930357d89685c6b660d3dbc51827e30394b4b4fd461475347ae136d087d8290c1583f825146acd96e80faa65bea4a8ead7813fe8573c5006858f3f2092fd35713fc587e1e2d1086148cc1f00c9b3a48a70a2a2e3b00f35d7dc9052df115827d885df7ce012f44172cf11dcdaa2d5ad1597c80b61bc501aa0ba7cc761543ebf26ae97aba68c1e36f2faa392b87426a9f4e7ff665ae4b3c683caf28342aafaf2672bee2c31a7d1f308f577e4a27bc16f22698b0eb92ce1d593fdc94f5acceab07b104eafe0e8ae0cdf80d814b178d905e2efafdf298957d102ee15da78b9056a77e104dd01ba08e67f44ee8d2494fa82b8a7e87e308dee9ba09d289f53ec278e35b826e617aaced455ce98cd17e33ea863afa5eb1b689d5a74fff285ea32261d8aaadb8987d00c8403b465b6a4ba14e6ce0885ae6185b277213d68b669105b721aadc96d35f0d7c788c39b5d2dd363e3d70c9ec00ba4cd691e080c1099fcf42189b751966d9abea9b68316bfac8bc78829b0916afe630821c53e057e251b42e04b8f9dd851f4790e3270d68b61e5aa60fb1807388c22ff2b197867ac3f8bbc02df8e2aefde17341ab865ff2d0dcaabc6de97a2772fc79c41975e6ded2d05e8c17fadbc05486525e2f2051d6c2e051cdc7bcdefe551409179bf67c547b64fcae6fe75a226568d085229b3e8fd5ac2c22314787660a325882d8b2cd027cadee9915123a987451e0e13e024934f4918dcf60f058d286839ee3fa5632d9fc9a5041d28b25eda1835d472c30addf43d190fa8a7f8e3a2b142c8afc8e34cbabb9a55f8d188e0e1ca4975566599535427f62db94a7ee90889de2d1d50c919046f1e788e3b120c1eebc145d7a6611132adb41f41da94328210b8b65f61de336b4d31f2c0278bc7bbc5c39e847ef781d1eb4478f47867c996f7955cc1b960f598c616a1d8d6308dfeaba0883d6c67f7a1b7407e82002e6940074ae803a9db7e22e1073a65e628815b5295c74ae7acbbfb05160ddfb81c2b7032b5f0e94be31f0030eaccfb968d0756f45e6d404c0858d942dab7b02c0556071a0a6752ae47d33b4396c923a4808df63c9e260e428d5e6d7afa1f841085276ed84cf7088f398b554cc59fdfefe705de2485f369964a701d784605412b812bfbfe391f43a2ca5ae1e21c009945a2ca60e58b2ccbee2ead5c43d1a54312c76b7d74a23009d9e4cd419a07f946aa933d823a118baf7c03efc3ba2cd745c0ce6b03beb13515ace3cea93bed53b18aecff1c73ec5a5bd438446eb6a6bcf165008bdf338c7d6d90b5f786e0d4ac5d84ad145caba6a91755c470c5a0f57e993ee36df0a75cb4cac5ffcbb2e15bf1cb9e6aa9f1d032485b391e196c49d661932ca2a8aac5e61e496fab1db5bb1afccb914850f09a61bb2c43a2bacb266d3d592e3306a9c8992c93897f08a6008bfb40b42d4adb33061fe4085f7b32509dfe074ba72ebb2d15b80977eb799a187561e340f975a599bc90c119916181830cc2354a98cd428e0fde1096b32f9db865daaf0d7186b680d9c0bace6b3da1000a2460d4d45e07f33f6b96c41dc48afe8d8a7fb2eeadb06b32972cb0658aafae96b92486db194f440fae3feb1b8da3c15737ab33a99c81facbd88e6902f8ef2ad2e6042bbd4d92c14415cd46ad1c04334126ea27a788a5ec52bdc8dbfee16d481c94b5d8ad07f5c41c1fe22c835cb4159c022c964810e3aa098265bb4a6c4801989dd57939ba937a738cf2198c0230af190c1b4a26bc54ab89f2068a01b1a432142beb142b8a739ad720147f551b3ce21c88a0ade7006d1270fcddd138527019a57a78422fb16d0f15bd91948c53885cad424513434694ad3261aaf2ec7d9e26e19c57fbc5b7179900f691da4a1be3fd3de33bf9470d6aa08f89d17fa252eaa50f10fec2aebf1603c168120fc1daf9cd156628fd0918215eb14fa9c1196a6b333e66a2d6393a46a446bfc123d13c66bb9d97863203be90a6a651dbb38ef2a49e71334e4dc7bd28e71338cdd823058cc2765fe004df72d5cd87430291d1b716d1e6d6c5a785d60d7bce3f78906ae855418c0fd74b59043acd28dceed54f1fe85471ccf7e645f616c5087724154f6b0b38a3f3c7480c6c688347eb2928a19ed3c0a648b85c1e2927ee875a112cabcd82b787cb39094b59627643b6cf5084547e85f2d6c8ee9199a4d8c9ec0e5084efac417e3bb76124c3247e52d694f0833a7b8218c537f13ba3da7d9b17d73af0f479e22d1c4b34ae52f7feca0ff4cbfcce4abbce671e3c5a3ab4d2965e00e83a285ca038de9fad76a22b08002107f309ce25eca56b0bc9e8723a3b01831f4c944cd4c8d5f50e69685bef1e844e57a8a1d3b23de79e122611bbbd274f4964bd9b8f3b42675ba39cdf76f185c2018df3db51e9aaa790f4d4a67ac6146e2e1c3d2c9a22dca6ad12e9f9a2ceba85b6a0bffa0afdb9f82800e8a7d60fa98257254c3128a3bac56523ff1c8adccba3cc18ec23bdc86d4c113fda9267485d724bf05a9312e32d79534255131d85003f45d07108415070b3a244bbd04bb32950751271478a09fd5dde3d21b644cca7faf41274488661d8f01284ea2fc1b904783d73d01c2a07d8de85d69e19ab6c5fd4d416f37d56251d81fa43589eb03cde471f6348ed382f3ce115550f32f63eec94ed9d9891b387072ca48f418869b1a8e352bf9fd9a20fae5570d8a764e9486791f4abe73566e17125ef60e085db1e854aee61126867e8dae34e64d3f8fca9f1c01ead944a5df213c7151697a7f73a1bdcf416cf699e204fa37640d417d61f0209a0f55a53bad478b712665760af18e16a3b73abd7aaee1ef2097970718f41234d500c4ad3661871fcacbd9ce90f916061906bf1e56434b40826e744d43b81eb320f544157d99a17c35d85360b28417b643e7009a9b673e3ff14504bb45a8da3128d92b78d8cf7e29c9449dd7c1df3447fcf234b055a457d91639cee2dc563b3398a3b96d879f1c9fb44fe68926227ad48ea4fe9d9f070bb3649189e3672144b43ccf0aafb65e7e5160f852a30a2efd85359ed605c7b3b5740c91b582d4be8f0ce4c5410d798b7c0ea44a0546917965882c9aac272c138f95cd3c22928106b03a51bdecf12aa35daa2242ebf459aa5505014252b73ddf0e1dac07f8252be17451f0ae3c32a07c2df3cfaf824cea22c861cd8aa1801fa9b588afcc598e66996146a5718189666da602e3d1e8ebed6627a72bbffe35c64590ef79cb9c9447af002c10ca5f0546aa1e537fcfbcf6df4c852b71d63427eada4d2b29d3346645cb381ee4345f45c3dd5712374f0ad8767a05d5f276343ffedf4300e62519b2eb9fb373094c6ddaa4047a5281c43be1772a443d815fc89e8afcb719b8b5255a6cb05fd3dd5c2e0d601705f1e7e9dc714cb02c7b25c6532c8de79db37f962ed400b49c0a5aae0f19c3ed700006be130912daeabff7284da1f8b282c20bc0b515c5a5f722150cd07cb872739224e5b60f1f305de34fa04040fddd9c65c0efd5409ffca387c6692eba8936d0ded2909c7129c0991a1238768097a83885750c1cabc7a32b12aaa36d4f48548333ab8eb93fed0df3269d0c4a07cacafe088cc1d40e80f2dcf752efcd35da2d62689f9a4d227d83b7819fe0fb19f5d92ad586683f168b8b1d734acd1f9083b1083c5af9e109819407589e7804ca280e1ad5e0f12a70dc5b5aef283aed2d45b159ff91eff2ba4889ae3a69717a759f331f205e250219fc96d1f657abe1e19ad81978ab805813ff69dc61ee4325c7ef32995314da896afcbece69fffbba7f8a9f8aa278b135651988821b5dd68674343f4451ba1f3e9539479cd420b13990fc335dd1c39b45a7fb2fa06d0c6f9e82b7742ddc10ba88a27f8e42134a9ab28f1b58429f7fa513c7502eb0cabba701d7b263fc22858fe570bf4705167492d7e96c516643a69600539ceb13d55d90dbf3ad0993c41fe5254d0a8cb5e54d57e933541f302d6a169f0582bf989828e874810173de8a4608e8bab4c3336ffc8a0729b4c229bb3dc13939d1d7aaae1fbd80b7d24750e6575bc1b4e9cf305e84e26a2c82be51df577b3d9aa97b4f1a8504cec0f6becc3039a844d02797e30de1d77e2b237b34289784fc06027008924f57974e640250214be420ddaa5e01ff53d64b14f87fb7b9c8e66742a2a884057d04e919fd057beb9a02df0d85cbfbb6bb2b03ac357be826ce01604b637210eaf45555dd1284569ab491d7118bff85317a2dab04ba07d33a4d03d5bedd270212209836fcb812bc76ed623e1864766933763bc3b52568d4953e9b71d11d563b17e2eb00f4c52d15f8f8b9b9da9689b3213e5c78b54fa739696e5205e5b726028032e6ad705385aac24485fb41370164dc138e9618ff014e968aea34e48c4e66677de469d932596ceea313a32083b588b0f547d90d77effef2337da50faae845b31cec22aaf42b83dcfedb6ef161a5a9c7a654db165fee73f034ed34027c14fed2b142ef4ef9f8d62d859f8f3adb33d10217ab3ab80d97a83dbc029a98e68910ad863dbb9531e8f71fe9cf7f2d963e450cd54f0208b288521ed38e018a7696599161e1d5adbcd441e803218c80bd4891781fc86d23841e706e8548480d7246080f171596a3225102e54fc0df8ba6bae40832ce84cc85c0969c7609450d7cdf4ba2f879041e2f2068f60a182fbd0ebbe789299bacd96e0147404040fd01405912e5ef03faa173388764ca7dc18e71ab3a67670416e2a1c95d7e5c95d521244a2d9200e297b9df74d0161db03a7599cd0471abde5dc2d5010b58cc398679e6b744ada42d9f35a44bd3371552b2f1882e1062bdba56fb78781fc63a7df6b8b54e62301f1f39dc480a8194d63a79322688ea8dfe8cf20f4d9ac309d38d1eb96e0bbe6e42c944b81caddc73f27575b5bfd903cd7f97af8194351bfa20a34b8c57785a7fcdc466d8c2cbe91e79b63b701b8f9230c8048e10f415f0d5d1a11b8d623d069dba202e80ac91f8b38df6f6d111b4a4c4ef42674511e8200e12819250bbc9823c238909ba4a5eb904d3cc292024a0683b05ff6cda69214a45d94362d8be137c20325a734ee1cbe23009ee53f81cb33b06b3cb75dcf54484b09b485773ecbcda9737805730da9a96c7af047c8b39f090f0f0895c40122c9c44a51a884d496c311fa78db2eefa1dd3f20c49f1e96577feb03a721a766b5c937e9177405ce398ff1684d16d81c1ac6103fbf674ba7e300c9058d895379556ca3410010f82a2f1d3aad8c8a7030eb8f0b476e6cb30ef233b95e930ca4cc91433eb4fb1e2194e27ad43435ddb434c53798f6435aac754c6045d5e475633435d02b1d768014cb68c0c3b814dd9eb2f60a3e9ed561999284a869c602d6c7a165e2925aed38d5301f9d0f998682b8521ea2b0805511beab9bc3f1605dd542a3085572741651844482919259ff97384b7aebc6c31319f0e625e484451ff98d761b88c71eb882eaf7ebd4e82d76745bbb5f325ee4e14cb32da1b8ee6fe8e2dc6527aa4646fc474dae2c5ced6db52935fbdf4be575eac7ea2d84613eba9bc85f112306a9305f2eb26306f8fae28896eda385dd6b70be475e0032e8da480d3747848cb28f8031a8e84553832a7a3907876af9e19738926c0f00f1531ec3cef9d6fcd75c230161e8c82aa165456bae1e465e4c6d4e24d2e088dba5bda70c9dc8410250d90b5ecf62cbfa5e304283a2dd3e64dc50d407b47c936c8f60e7656b5d3bd34ebd93215775fc3ed2a9fb6567c2b9368c6a11119ca0e129be8c5afaf3a6fd82e59d8bce1c4a754a1e7b71d0461bab11d7953913fef161b92dfcd6b6853217c846fca97dbd9fa9805d22a14bbb9024e5fd15daf5680b4b2ea4be455ee505a3fd0feb6b35b27620c0fa502306c729f141b0076e37bb5b65e40f3b547af489e600834bb924437b88099a8d03e55fc2d892098b8f003c3a9f9e08a4ffeb1d755557a0baeb23043277d684190823751e9d6a710989c775c1634c8528bace9190f3defa5e062bab2e2bd1c32bb2128ae437074ed9c9b2bef9761c2964ed2ab2fa41e540b3fdbe3862c4004275006b400952d27043ad270cbb291a291ab6d072317a079571b44a6f4e650616610141be16dd2a3ade66151abad59568b01ac8293b39f30c0d157e60c8712ea29e6c14a5988df7c090986dd536ef86373be9b8d86f824886bd86adae775e3f56d8222bfdc32b81270ce7dbbad0a07c686854f3528bcf70b2e5a8b73444b0b5c235b8b52ed80543dd551b6fec82ff8835bac25f4936c598ae7fbb2a95061a5abca8c6140b936fdbf4fb02b231f0dec15e5dfc4c7495c0177d00ab8c6f6b4dc9c06319814dedc54a56a54ed928b2afba0eb27a31746a36a4244749380108d8f7e79adc69429f44b609ec90ec7d03c225da789b2138f128a7b8b283aaeaf70a8613b2588b1aa309408e8a7c051623413b4783219e0de793657e9084b918cb36c4b277b08dd6835e810dbf45755baf0b3a084913d0891b27f931d8f51ef58cf644ec585a87c2f8b35e5c061bcc366d903814fb44b72382ab080244b3fb4952c6889c926366051ba4523dd4f4090d436eeb011b2e1a1560f10799431615e34666403ba11735e031ed5b231f92d7750aef395916f3b32c2376df40d654a46a5852df1d4a20604230eee981651dd3864ea1f41a2b28be8459cb5b7d0752d6718282d6b3554fffe6f85a6483a9a296a8646e4528ed55ce65494e9b981003821021fec68c8a18e64bd542b8f96f90000d28f2e0939ccad1a4f08ac738c598da05903ae4490d87f62a7f48acd2336799b2b086c02bea677e979f0d5065956ef044f491db1e754770d142fa7b68b6d7b0bab8d47d65da27635eff022738973565792544089c096c43acb7173451a4194899828e6822ba8d6c0136c24746d035165c58ac70b679dd79108ea420a448c1e74aee2248a8e40e67435e692956da5ca59bcf0f7b8b920dbfc1547f2212d6bcb5f057bab67a7b725dfcfb01315c1975f41be545393c70fcb619488b5cab06823c4df906960845224d57a5561c3aeebf057807522434c24ae41bab2d2f231ef4b479dec0107ebeee958a3f35f10bc2ed7322a321c99164bded56e9a607c8ed431028d46fec95c69d7fbe4b122d4bcc730f9dd8bffeb94dc337e7308a692ab23d7c6eb9b73b5a4239c5233b13a22fe328048f7860f6a7f1ab152c3b707a040afbca21f043744dcc10d1fe29bd594b412fd545b8d2c8fc8556ca540ae25e80e6439ec912a92239c833408166b33abd61adf17456915f2b82b72c714c7ab0d81d91f569a03416cb69c76082d44b09d4f3be1493b7831672582bc44ce4b85cb183694544f5661ea16c6a68c81159d3e88acc45b1aaa4a04c5e85e54896051171ab004f4aa159896d297ff903a9cf03a69459a4a048a107f53889df6edce150a33a0100e4d08814325fd0ab21251ebbe725dcfef4377ed3be752c6d1396419b1688c3a6714494c059e1ac79f74ff79bfeb20e75173227980a93862f3b3d1493c86a770b96afd17522a5182154150308b5edb5779d453472c5341b24de61453004c7506344e3634bc48d557d1c96101f3d15b526ce1875a0445b84ddeb74cf7897c882a3eb6357c328d95b0a4f422d0e1a86957434424bd86944026f0a090a281147d6ea6155ab05a1840d836b49687135a92228fdc9a7dc48df50505edd0a85c141178e3eb08f81fecdba02bbd3d07c3ae10cc7aebaabe58bbd766c1108c48df7f74ec4a5ede556b9694ab779def801b03db5859427d4eeedd479d8d033f10befaf3bbc5cdd457c9f79209cf8a62ece3af58478340f7be038a3b8187ce17c86461efb12cbddf4bca47f709cf9b04933fb573f34ee6fd5ba9972949c4335e8316d2dca95c60d7a627300643a786197f760c48b51c6de36cf7aac940524d945861102855f8197e0ab452cb702e60af1267332f6af0dd8115c7c1b1b31d58f412383e04ad1abc69151e2f8ef2e570f96ad8c4cd18e4c82d0601b4ff6f065ad545b161f91c7b52b26774314462edc04de7d1e182f93dad30b3cfb5705c372bf53b7c296bec3b60a62351d53bda06605ad236aae139d654d32daed08be69c22c8a2d7702b703bf9c6833e8bb3da9b9c13b5d8f8150cdc9031b3a923c781ee6f74460c56513530f63a11beff2981804ffacdd7f88b30dd209c70c026d11c043141478db4ac2daea8489c22b64c21ae8cc06fc8edde359660a030d34e9d80d61bc025c2726af078c7a0d7ff6fed1b704691c96a08e4c0058b61a95975e204668c31a1133d910db9fbde5c42ad39f47fd7977b0a355a762f1e354e6f3e8b8baeb17381fa54b454ccf58973db93cde793a7297071e8d5b066acb7d35840799a7d9c48dd5e2f507db8a0a8105aa395965944332a366b1c862098aae5d2ed077812fbb655371abfa9e7ca7e9be5dcd7a1cad88158e11421e48e3cf636f98da8e6150470eeb05ce58c423baaa36ab4fe9bbbfe8cf9212305bd8ae8522c40fa0dce6ccc0f603689e820f9692fcb2515b0628fbc060867c8a1d630176745485bcee1f7c2b2890e5edb4075a9062b61ae86c61c849c2f2c8eb819d92a74b725e196221526faf73d0f3392a73a2f08b3bae04c987240eb875fdb8f9fa6452924af4deba6e2d5b4e1d9f48e6e269b3bbb3a51b52138758b42e054ff64d2ed2fc46814037acfa602517abd3b0d4f1e13b8932cc2a8e00d2fcd28a355f09a68ab61c081593b6e08c57b6026aac05179e430b346434206d76f652a174b3b58ff841ecc0ab456d36fa14d5b7537a240c4c892bdffbe0de769ee893d4d40fce063bcc07939c6cf03c4ae866aec22e42009011d35e4204c2cd48a1f9881226bb60a97117ed80915040adfe5be08138bb333d595fd87f242848fee3ff646eadfd3901f3bc793d939b82a2eecaeba584c9d3578d08c2b74f64375468fccaf7fea811097a06b49cf8009d979e676573d2b3a2aaabf8ad4e2a388bf997e1f69f01eee7e25da31a857621f435abf6445e99112a65ff1223c53af75bc946748e1269b460bc6b524a42ccc459af93f1b3939201b67405b67562877bdae3d2015397ecd9619aac2e2797a3981a3b47e385f416420b63dc19b0ed711d1ce4955be4868a1a2de7f520d2e9c43889e8e007ded5c4686cef4b05641848f86cb0a7a7fba932991d31bfe9543405d621a6d9912951290f581680bf5bc55e248b011aa53271e80c0babb2decaaa5ad942aa1a58cb34501f74cec9106e24e85f215022aaf2dce524745387e2414352826a0168fe8e2d32de23668aacb3408b1d5afbaa41f29f8bd7d590013884278eeac13be908c353898d7d973e04dfdf0a8280d3ba6f88bd25e24100418d66445b92e580a645054c7c9e75eec11075b9180bcd8f68549b6c1581239d7caaec4ca85ee6cc952aa596662731ec7cfad30b81e7f56bde6add90548c271a6d72d36590784c511af5eec5c726d5bdada02d19c8b3af7f5e58768085e3e9796ad8081a83c233aabaec0000b8ec674cd9a0e9f2423528a41777e7ebf08b46d1c63a3b2b561edf47a88b1b549578aaa90204f6a908b7d82d42f31c8784e003f699b9765523dace44018b99372d8c82494ecaf7523ca88d5cb6727c8d51204a12d4af0770f9936fcf19500ad6ee51ecc39ba43773044dfe6ccdce6b2d6de572a3933013f8dc10c1bb863eeefda511521df366508c0be55291eaa0f9d06f67c0e33a5258c37c77986e9edc4a3c78c2177b6ea726bf2105b26b8eb80eadde9f7422af016e3c68d51ca1804129916f3a1f60ed21de2a64b19309d55462907e7b8b65e6f906fed6dd17c410864dc2519e61f05c604bfe0a8394f9334e4dc2cfdc3f21634edee7949f2ea8df049a7f71f7457c6014c40018ac71d7f1611b41decb20b008825a6c4dfda77a4d46c15f8c650001d6c006b36eaaec2aeadedf09bac1c9c0e2b113125db8b956634ff92ca32d8bf50fefefc65f5dcef122250f1e35b03191c51b88ebe413a53b4b5dd67c98f39239070550cff49ac5419c07f040b977ca265c91745797b98886efe447b487a8744d52824d3264ef60ca8f08289696ae42d85868daa815d354bd48eff85e033495b6ab596e341db75fcd50e53c72ddbc3f66c8c223acddb42336c0b166f4d2d7c4c20acb1958195c2459291142f5c0ae85e97e37d0444284c1680d777321b7739437e5501e1f4ae7181286beaa05b353dfd0bbd4d577a831679019baa33430a26195dc367d0512f729a490847a65557c4b20a26afc000bce439176396e707a3292a58420301882d9bc2a0ac7bd6db0dec3589f673595790e86e3d2188dc19f60c574b1938d189b8a0a7b9113f453acaeadaf975e33aad43141688fd891cf33eda6f89e4529cb65101d66c89b412e777ac95449b47bc6f9e2122d21cb1c466c255d659826d44885f852819daa3175cf0ff27e2c817ca2f9093f9fe871dac24e14304c18e9603af529aacf40e319d1c9694cd1719e81d131e4e73285864c8570553c9fd31450738c712ba0a7a03a128c1800c68b9d5ee2f3a85b630584492ce666a6eba4981364e84b03d282020719cdd8f2737deb1dda6c4b879c26b06983369bb2a2fcecf87d59fd090b8d5fa6990103a7c9370347c48440147ee2fa0a1b9f4b9e2ac286cc0d050a7776b2827d71e2afa8ecbbcf348ea7b16da420c1cb11bc69a5e48cf7eaa06df73e22bdbdf535fe08de4f30519e490253a6eed88b28dfd833a9f0589bf1764495c36140ae76e834367ad9a67ff86f31863573c6d1bdf394164bceb802cbe13e5b826bc5a80ce2867728318c5955af4b7e5e2490a7d85818b261468135db65b51471a79b20d2c0c064e36d1e56edcf8ba9f00b4de0a9db53d09bfc69d9ecb92ec6e00e7c7544d8b24f80f41d31d6d46f77adc9e2a2f033d849a0357dbe91a5d09c22e5d28bda1a9690055631f455e785200e143f799d0ae7bc5309db4aa70fc862694a6a7157e24495a608b6005cae1ec3fd85cf42b454c6cb256bb4c4c89a24f601da0cfd5f2ad3639c7b64dca2cd34adbac10e323c98b004daa9557a1358e6799751225d2ef17e19cff4554bd984cc0dc513fa9324da0d9f02ff0ff374eac3ee9a4a9130aa003b1a33758e3af76d60b29b7504afd889d49bce08e8f087241eed2739d69cb0c3b478f9bdbfcf56e6370ca8ad3b497ece35126e72a17fc1cc13f04d378b181f2ff36edfc12edfa307a968fa81808f41f54fb53ca56a9b6ebcd4b2151769b1f1cb99441422fab157ad9d0cf73bff4cbb8f2a25c49f743232dbf6cfd9c16b7efbde44cf34bb5ef09a325ab7b54099a19da796b1d4d7b40b6b28ac2f073daf76afebb3a7b470e1e4727860cff464be8bea5b972585503385905191351cf5e61a656905d69d9d4ec9db080409d27971c9a1ce8d0d28110f979d159f9ef078b4062af1f28ece11aa986ae44fc60364dfd28bfd5f3e1a09b9b56eb4227e8502d51c81b656bda790e59005a3d148e1e997b2d5d14733c0b34ed9d46ed73a6ddb1035c0243671fe3237d0a7028145c460959f92c42ab224b0bb7596e67da3cb0a675991bc095b982a05422c4466d750a032820f74a71e2ad6647afb4cd5ad3a95052fd7475570395de6b9c63cab49b38a5b9876af515479377a60d8855be393a98d8abaff17da93e160e620ba51c468df476f8831852fac7567da12ab41fedbc9de845c2b1505c7a3e441f92baa035f18ca20291bd8492721234450e9f89d5331b6e613dd1140837f8d0da93fc18bc3a84c71a1a68bdefe7abb6c909b69970f2bdd1a97d581c05a0be87c30a35d8b6d10ab45d87bd83b7a197bae86c0d7fc852164e59273c918966ece478750a74c414cc3bec0a9f62ad0e34e367b162ae99c9fd8af2fbb1769fc1aa079c232d79e7792e8edfd0246b2e36d5f576311567aeb464fad847d90497f5e534be4cab63b7319dce45be8ee17b8c6ec11850f0dd7243e73452ba8fc359251bc33c3051f35a04a3a97b2fa40599a9f263c451c9cdafc376905c8a558f622630f2a8af9a1cd6ef987e097df0ae1851f949cc8fd050860258186d26e5846819a3320c151b0dbfbc4aeebe3eaf855acbcc07ef16d1b36c7d73b9ee802a91bcff53b27fa36c56e9856b713857ade745f7f75fd7f19c6b68b22544257ddd3e677b41a0e084b1fd71da53a001a2acebe65d23bde158ecaaca51ded00710e35e8a5e2cb611fc90380a8347b0ed8aa4efb929ab53a3130b2db983e7daa79c8a0239862e328f0cb0cbb94aa115fb574b0a4ba7659ceaadd88618a2962846e0d599a5c8857858141425e6642638dc3fb1e726a07d5143c87ff34f63fcf9ffedfb0740a1f459ed8e84cb1fcd9069e227a823466488a14eb9bacf972116b78507f49f04e402c772caaad5df672e0a3ff2e3ad84f18619f121aad9d940ebc4dd9ae3d32bd2d70e8dc2dcccbb027f10ac7e09760db614099821a25e9b56f5b569d79b16fc4199f2fc3bbc6b1ba8bd8b5095f949ea3f3298109afd2bd657c2f1997aebeee5d7d96b5628e36e2420604cb1120e09407f2fca0f0653e7a4096e787e11be9aff98f5c079a9f142f1c0536478dd3e4df34d2b4dc60d3bc5230714e151382c3cfb8dbf534d020827325ae108cdb7e028539be14f2d1e493fd12152c35f1d58316e13571c98b32bcdb6fedd02ce6c31f9e779a98d35b5bfcaddafb3478b58cd727d613f7ee291a36a22b65fa85411502c55d7ab741304f80a7f85220080e62b74146fd3379150f4f9338aa1e3a28424dd30e2663cf2e0650f71b4765061de33b406de538290693aa41f4e1f887d0f06149606441dec29f87f813c2c98af1ad849d6e1f98d8f551ef45efbbfb57b81e99cdeaa8c463fba80cadd5edba36fb60f09cc4c78d250e7c602f50d44861d6df334b82a7bc242359fb5c4adb02804a5fedabf82d382eb61a3478b8016980b4fc94d2138f05129b649eaa16c2aa4543a243395792bcd66c92ddc90735b89e42080b48fc3169c12cc3c0acd2c77beb1eef262b6c0b0677c348b61683cf43438c269ca14a7e38ecbf3cb420f29c7c370b64a5a48f15d5f0f0c61bf2765d80bfd559c5aaa2b0efd28e40d55b548fa0e275e24b5fc26f946fc9ebd72abcccb3890b541f264a4ec44459ec074a0672bfa59a23657dc5cd340b7a5a8f12581010fbaf35def7666a083655010c88f92c369d1216ce84888614c734ebcab3f8f31e3d2d3e8daaf2d1326ecbe8d6f22e4cc21e60617d9bcec01a8dd328774aacb98e3fe3f98c3ebbe1c6845d4682aa7a559c9897e40c35025cebf59e434ee560a78e71c5f362b71a14f649d9761dc1ebae4388b393e364b78f5b3ccb6dcb4035c19406000851d3889850c4b3b211dda22976df236ed0c39aa7b5cfd2720ae51084a6fcd4725d858e2cd70e876a2272c6534b2de93302c0a1382749431085eb11d29e5eeccbe919fb1f0d44b398a2d2f5d61502b568d72735adca62ec1e852ee6ae9107d7b64b2c152e374d10b48e35f977a7424635cc06da96c6497b8136b5603347f08d7ad55c6f787373fc6113f7a852e2abc1f3772973563871b2c0137e7853833a3accdf2504546ff4c594b6f54ae87c1cd54546e4b7491601a979675e56c14050f9ef024ed05513c58ce50ab47e6a5befe730e0fd995907dca1a7741b772b632d09e2db9c405a0468802603c90c01e8b2ac0b82f37eae3bb75532adf0bd6c1391d560d249d93f5aa6cb9d4f48cba823d96fa53cf79c3b97ada9f52feb4f284ff79ad3d5e420ea869cfe93e719ac716a5eb49505c212c6734014d38b2eec75a0ed8540adac662122928d906c6e47b18d191fdca9208892fdc3b6a0303d5fce55ae4680a2bd40d0f399bddce5ec15de65c0e211851e2aa2c6a98f247989dea31f230f293615bfafaa17bfac176c9a0be64f8ab822a23ece949280ce06ff9cf902c32f1854a68314c46c6d5bd12fcda8128b9c39d4ecd2b4bb6118016bd71345a206271ed286d857ae53063846fd8156d795bea19c42996acf50a27e85f239615d963d197b9f5da290c0a2549df196185e605c7cb9a3fa1e11e07e07ef3243cd57e236c3f02d89c658e7c8f3056f864476c58f71681229baf0d243a658d553a8fb54fac932af8f377d608fecb6e52e8355bf36f00c4258f81916c7083b51986af236333b91d245fdddf027702c5d52a936775c8b99c356f1d1ce8f234d7bd6fd3422b8cdb980a06fcc499436b2cf8a6f362a2096c0ddfd3ccbd787371cc5e4c6b19d62cf1ff0ebb29082ac3cc8f87b106d22203b25c8a0d50510e960e0f13fbdaf96bde101b92bf0f4d62f3d275e74892b5195504e616180b23f84e0d01ffbb43e9f8d6a82d710178b0b85a0057e921f2d1030f208cda480ac63907ac02f048df188d24452002dcfa89389efd0f194242a0b7b3282a860809e5818a2d51748f59804b4e9dbce78f0c6a0f42d91ccadf82c6f8bd966f8233bc003d8c8d73e4c352df0e504afe08d4650cebb7bda8cc3a50676a03966e3f486b5511ce77984ebd08ed41bd450ecd43de39238b6c46fc2a60e3dab610c94fe2a82595dbf2b77aa2c87982a81d1f3caacef29e1568e4aaa5ca059b60bb46e7745601d85e5bc4ed5ad471f665adcaf80a1db021c6840005ffa39a5658a4dd2060a11cf9036d794c96f4f2e353f3c7c6f3be10f75fdc294a57493033da0d33d0ab73ba9b849514f959de4e4b8a60b773c0306b25d3307365a14dc70d23caa31846250bc942ee302a891ba6bb13cc94141ad5975c8aa4b9dc11dd6347d4c3895ced26c5d2ac8651414d3a150d80159a331cc57f9ea4a0ff4d8a7342f3c1891b6620c5669755886a104ae1b4dbcd52cf2e46c05a5dd0ba4dde42e064de9fdcc494538fcc75ad173e3b3c8cd82f7c023a89894f7384e23277f9771d8b2ee4a4e61923347f99950d94561b337104c6c77739e1be064929d766d228c08a28cb3636f785be78839c332f5e298ac5f3fecb2fd19e0aa53d2951ce0ab142fdb8fef0f34114a3da7a94924321067721e35889195aec81016c087c10358d5f8a162371a44123c2fc9f1b47aafbe87eac07ae1e0c19240ca80cace7bf9493188e449e4e18c2f0b9d094912282d154c8114f3ed0cac56463544015f288451a1eed9e7ac66e929b60508fc832c84a9b2b080298a2088f9d5039e4faffe65b5c7f2b807c8cf2a1719a670a93ae5af65e906105b78d5c806a565a84d32d69ac2089c87659c2fb7bdd057c9a49479614474ae40df91f98a9de47940a701d8160bc584d72361696d84feada10a52a95f4a891b205304f94a60cc3ae482051cab675058a879662cdb28587ef0a3ab164a07b0ae2d38bf79ba574ea14801d0d3f3555544df504a437a9480d48cc1b457f20b67c6cf815027ea2699ca5a85143f3d42fd57d5e315a5a59387793ee678d50e3110f6237eabfd9f98062a51e0e08f14c25ad9495dcd55fe2e588bf2c1086e05314e4ba1ec41ad2a2b1df75e7d4f55e0326e3110f560875842398b07d425e87c507a075d5d0016b304ba1c82c0d8cc224d3a405a938d5765f523fe6e5bae78a79883b9b0f9bfd209c95c16b4188e2203347f1fa679139b823cabeaa7255f718f84a3a1d3d2bb061148dadb5cb93b02c1c0836a165e869b2290aed9bddc212d6971453d00eab2e67acae4c0402ce4a166dd45f9b746bb5159f65527cbf9214adcdd853939a854334d95e493ad30122f43569a75e3b29c57bad8515bf5bfdd2abc125a1a43b87bcb5a9e68972d5aeeabe50e26830661b0d79157cc4f9f0a34169684e0272b439bfbc36a3c564edb1f836521d3c6d40b3cac1b7c91bbade9518eb138940df5873a55185de23b09f1e6e454a267dad38b26c4555ca46ca07dec63af53b885fcf045946ab768c6769151241766102042b81f5911f3a7e2cad3657b4ccaafdad25e6bb8d7bd6d5a66feab96f4162de24979182337c9e65adbcd9ebfb418b67751ba058e63a7b200c433b845a1582c1f52569cc80c5f279dd87cd466f8c7d9f8e9d87d0c99f2add4431ce049bd18d7767030487e02dfea1b089f1732dc36d9415c709fac2e6f1969888a32fa24789a7e5a45118bf372fb5b00483004ddee5be5d17e7f056100d221cf39d1803f9a092c0f5e694688d1fe11c468e97e51c348af5ce3b7db676a9d289bec98e18367b6ecb4a3c7ac8e16a552502b329b70659ed98d2ec634d7669ddb35c1f9494a3fac0d1be748158fc046d843640499fc5e5b663101b656194a88143450a4ab2d0dbcb1923750c3204fed18a03e893e07dd878c9bce83403a6d2181d9f0d1d083e74cb600bed7f3c12370e14cc6e0092643ad47c420ded9c3d947d9f61fd1a8acd0736dd432bcf994969a6f31b2a940f773762f964fdf1bc3a521c16095187d01a94b580a3510a28a1aec82ad371ffd15e0e59ef8da8d10d08154ee4dbdf31dae1bfe17d41e20bed50718c74f2cd9ff025590b752373f8a3dd33cc31f38afacb8d26c3f3a7919bbc6d30a900321b4d80878aec4fa8619937f8495f7f6930a52d480d302451d5a486edf431bd9d05d4f818fb0acb960d2a17e96db683f5cde9c95d721008e04e94a4511cc07ce74b10244c422f65bdd05f5ae07f58d820a272aded9f66932e2930b4c4f72719910b9e44e2f3558d7fc638425da4603421a6bbbf4c58ac1d97542559aea3bfaa9f5fda5540c669acf52c1a7019071dd2ce7983aad64482259dd3b13f5444d72ddddf13c984580cb02efd34cf72dca1637f629aeb4c147bae6a20ad7070b3891993a30721f49a10a189986632bfa441ce679a5f70cbc26d1d68789ce8638e1ae8d187152fb3e885f6e6f8e224d9b8dca6fc6842a9a6d13f3ffbf8aea92ffb7002fa140cc3c337c2be6c91832a7c5749ecd975ffac92a6aa09234ef482aa689e2ef026895613acedd7480e19e5f8bea19acd24d6c0c6bff0579e2111e079daa0a6f2cfee07444becf946e94bcd864356871cb5d64209cfdd0cff26089398ba6d71cad24c1b605992bb7fa33f0efcca7865717627aaa16a9d804b962ceb64af4ee4465ba79005b6fbb207106a55a87015e8272b4f8869cd6d891b0aa502b44bbfc4dc22e764d7fb81472a78eb92378c9d2c37b57e5b0bd4368f9f83a749a64fb1904496c5941c07b59d437fcc253a5410201d414db030afb7f7a9a0c3c6ddc2f276fdc56a18e9219c58d814eaafaf269940b395981ba87dc99b9fff7bd87ec0e1495f3025a87de2836de7c09ae7742a56f6da2be9df59b85001f9eae1e2b49a706c8f8b1209e225424fdb30a209b7d5fd54d12fa3f79b029b0b01153168190ccad4cdf339eb47fc7b6fd183bda5d24ca7d4817da023443551a729224c65df481aa0611183db2bb9223d04e1817c20135b8293ef3ebfb8077b8210176eb4fff795f050d838fc48c8f9a23a51a776418bc1ef12264ebe8afa6851405c91bd1267082b049157e81f296243983a00785dad3f4153ec03901f962648ac8f4a85bae43f51c88a28d5e4bd264cf7a07c9c8398e2e11d3c12393ac2f92d40c8c7d02eb502fa51736c9ec5570a404aae25c5c3c4db8643d0df076e482d4305c05b09edb7e828a90c4f6fe42073b5811a3866fa4efc576621bd4c8ac644210c4dc67bd602cd3d7e860cc41451d14bb65423879f2586fc4d8995bee5db2fb9a267a7e174ebf15e4323e1513c56e41de7d6eba0f5e26e6478231c6fb767b11056057ff330d28325322c3f34cd618631a3af6deaa51f184a8746f0a5d9d96a6985b08e8982156cf6ab81d658c9fdc6de1c216ca94f7f505792b076871c87f6399015fe27a4bdfbcc1148a165802472cb24d0943287817d9958cf0db57ff376d700bf131f0765a84e3b3a5d631f159d02d63237c59964c1611ea2b924581d31c3efc0ef534e53599dc6d1e9144745b05d702a5a17b1dbdab2189a28f0b6938e91cc8498d68ad51f1d43fc650a364904b4bfd631229fe8d2fe2055e0540a758cab944bf14d6b6a837c23169da4203ffada05012ae720566e6953740e74ef207c9e718889bba7d318f715283c47a374af4d7b5024010c962f9cf853c5017e4c34a2857ef186002fca2973d4f1aa6438330a332859e11ffc21d6a62dfc5201e7af24517ec6b57388480e6937202c3aa263e06620cae9d90f18a22edc0c234876eca03c2bae5cc2cdd0c43790a0328d0db6230552cab5c95784c9cd481686ae4edfee4c5e71560947c917cae7d0d7ad5692702c5871d5187f4aac318c0afcb33a84818efea696d102a566274d727388723275d027226a873ff4523e3798ee7cd20e95788e678580fe358ec780d83fd0d60061dcddeac0143d3d52a31122a4a31c6803dadf844b8dfc6a8f86a9b906467cd165db30ed5b0a1d5403c2e89a20e83fa2084aca65529e5f9ae1fdc6513db1ec2b915b7460c4eb1ad90fd1ec70246e0c1e2f44186d8672821b7fdf2f802cfccd9ee269944b4edc3e721cddae0a1b38e2ef3dd8b3ef846b19c105e843992a5ad91492a0614d9ed76b24bbd44048763fe4d3dac29dc8038c5af8a38eb1c828414b73522551161fb4aaf2bce0867b1c309a7884c7bcd359cdd3a729359aaf5162ed453172575cc61a9e13bc53b940699e8b005d31b7989ef2425fc0a655896c24af9290c62b37596df86c9a987000e77fb7ecdac2850e8bc09b158f0f533d8a03b5557e0e9e61a620a434a63424129e48791d285c035d0b4096b5e2e666e2d26cbc109f452a56f366fa3a68aa7a6089c6a06a83074981db0649a530ac0615dfd606f058c468ac547122ff98498f1b47e83cae59bca51c9c116ce5a75bf058bf6b799d018114e6dc6b63b423b947b1513cae82e7045b69bf1268aa29f6527cbd06a72890caa80bb0b91334bad9681b035da80c279a12980ebf228304c9cad7e9627e81143006822a92af1119916d354653b16815db3f280e3ce27bb470fbda1e6c88c191ce0209e37cdd26273224a87aa14ad6639226486c8176310f71bfe232da2823a9a0bbaf5191f9ddb05adc53ecfff28c9b4fcde50093aad13e9c14612004ebf33516f461694f4131c011c36b02878bc4bf64af25d74b8f9791bdc4d4a82e85293251a320d045c5b00f1db02c6caf43dd191f96f3e6d42347f8d1167d8e3d8946ed16111a256ef4d8b240a31ad1c22f774c9f51a43da3d2d17e4aadbf89338a8bcda8e437bad3f53030a36865b240e665141150e7fe8f6f0a19304d46e1de2019951bce5c464659aa0397bf3a0778071ff84c8ac728e74656322b1ca3e20da866ef111942273368c33ceb1c92aadaf94015aa2327f98477721f56fe530b82310afd8c7bdc094d68d25701af7836044b04c5a8a6c7254655f22d49618e72a2be41aac504c428d140388c8a2e826154a37f6154cb7d7b24fba8aaf16f6e6f4cba95eeb75c698d718c1b1f6c68516315b914da11c6b641390b34e27fc977231490e24af7215cf2d03b56376dccdaf7c2392aea580312c614be191d3a17f5a4d7343556cddf55beffc62a857b44e24d200b7013e4be44f18065de9fdffb8bd9382ce1828df3de3d61e5698233ec609ddc272b9dcb00feef0477803aafee591a259e63270e5e14ff9ae963eda062c41271e7328831426925169fea90f4871f19c83bb824f74ac1526fab247cfa7c2668b671a44c3e56e83ac73564467123f146d5685ba4cddef3eb38e6a86e06a2de6a4257c2fd39f847fbbeb2951d95cd3549c1ced93fa855c6c9f5fe432f69069e452bbc7d933adc55cd8d55442cf89b2dac07c0d64c19f9fe1cf692b19702792a735be2eea171c38ce6034769d6c52d4e94567a8ae49abb41a7b26a15fd8bd79b797671dd0b12933003a020fb80b5cb5cf4f2606814210dc89e2c1d2d55f3e7e463ee85cdd45bc10b1fef1f4bd8c59c7e88094c7f0d11c3268b7f4d877c3af996117c20c00e2ccd989b42eb7922499d67bf075e6258ee4e9f0b6d05178ce8e5f2d6135599b691ea79af69b01f03ae5941e9559d1f5cb518f44655a3746626c8157596db9a03705b05e79c774756c39467ca8434a6e1866ae77aa630c5ea2cad11cfb6c3e0b2384c034cbecf24eeb614dafcd902464e37dbf5e55b3c59e23b5058f7453e830528afbe8faadfffb7287b559640b1adbe6ac74fb95640c9ab3b6bc5dc7a5ad96cbd7adc2e63e36effe30a4da0ee8a76abd048fee51542e7ea699dff7df0dabbab6b647325c2bf6f01c9d05cd4e986c9bb3a806da7523ea544afc603da81c75605550977b3142491b777d19a041cbaa4fbb42b4cafa0a417a864ce5c2bf7b39b9b663b73324d0fdc72ef5a73b6e78f8c3d55efc085f80384da27f4ad07b8046353177114073d0e63cfc82c6e1653a6d3ce249c8100dc082ee43ca7dd0ffb3a9b27ca384bbf0aac96940cdf37eb1614cc8d70d50f262e8dd13edbeaaa081b110ea8422281fbfbc9314c4ca0f86334862400bf665c4faf030219efd6f4f4134d7523430bb4bf0604d31fa45555c0cad26f556cd1e55436732743d1c6c62683c631518aac59fea38f4a7a6e0226873606125410bd5dc1afa181a0cd3cb83bf9f0baf72217a2c678610d2fa3ae750a42ca8450e0e8d0ef8dfc8f842c3ec714ce067930304a6a801fff28a93cb9b91c0551c7bb84e18c849c1584041a94f0d67cbe6d07561cf9176305f669bf737a3c86cac4f95b180380019f12e4757de3feaad00703d651c1c913d43b8c629219dd97549634812823b1d075a0cda37e9ca633a7ee975cf76d99b518f60b847a969f09fad86fad5ab1b2d2384f03a50b2b3408f55aa28c18fb36767319c10f2246d41ff725e33fe5dc7831643f6522badd1326fcea5aa936b3d879cb8be616c9a19c7b91f54c3f5ac6cd758803dcaa1630f576d68170c19143c1448fc0d9f5dfabd927ac5a55f8b270508ef4d23fe60faed3ab536b0c27b1825719c757917b3f06f407b5778e533cfcc6a18cbc1d303f2f3afaee04f0d3feff5a7d3dc14039b72a9840699de134ae145d7f5dac14c962a2267ddefa3c76729d7a780367ff8a61382aafa6900db4c8bec8790148d7c2950a85833839751a06090ff5f5b4baebdd2bedc0693a1f49da53aa783eed53227501acda02da14c666594018d6a603f9f907d92f328fa8060906bb540dd6024189a4bd68d312f598fc4971431084e95fdc0dd2c5baddd9716cf1e16ed87efc6c936da49bbc93b4990f86989f312933c7d677051ec3150e3d42ba91dd6d4bb9654a29a5f80576066606b2d38890a29728a713e9887652dd0dd51391214a820309229a69937f9344346d72d1ccccf4ede5aa29dbebd5a84d797e3f36f46b9cc84512bddae49f55919817d2b51d2ef987213b8db533fd3556a35aea03bebfc685fa78efafb9ba3596cce991a6b365244d615cb8d407ebdfe0616445ea10b9d8e4df6dfc1b0ea3a0ab4dfe719bddf6d241f21c216fa86ec468afac46699cc8e589b139a92297c8258ac227287251416d2fd194e99f91b657c329d3df2195e9db2bc744431271222e7231740dd989edac3a91ab5b20b595f2f06f16dc99ce6a937f0b50909dc8c59afe0630fda100a63f669afed0d5a818a584aeeead95c84e2235e55b2391ef357dbaec20f89ad25435c68d4b4e03f9dde8e68b4e44c6f417b9f804a7e8355de49addf69afe2d84541976c289714bb22f290fe7462317456919297a71221796856bfaeb9069218a9e699aae699b5eb9e24be68c74ba14d3aa9952cebf462ed98a2cd566f9a03929b68c6b6ed703ba30a6e99a97e3fbf2b57933bdd3718b53be39a96bd54c2d29839aeafdcf12b46b442eede05277a539a17f0b84d8f718038bd9ddab1e638a9e1d330694f9a1591d618ad9e994d97242cc5ffaf463f6abab96f83917262d89ff8d8a9cec8f8e199a7827a1694a5d3aede54455b777b561216f587cd239bd46093ef5db4c9ea2f395d240765e03c5b9509413a1ee84c2c98fc46427028c1e41b0623a0fa636bb38a328a9cdce896821e4b2d7b07234c0604e3ec27ead46092e31122025b2f31ab7b1719b9ad9794db39487bed7b80d9f7493324718b27907d9794d7c7e57c29f60351113b52bab0565720e3b81ec771e65f20b67f2763e65233911e7b8a8bda294dd5ddee56d57f56e18bdcbce91c9eb6e5f8c1f37bf8739167d83dcdddddddddddcccccccdcdddddddddddccc3136333333337777777777373773c6ccccccddddddddddcdcdda13b27f6b96dcdd1f12854622296bd4d06cf0e366e68e68aacbef3133ac42323f6666666666e67f1b8b22867514921fa6df7b7ecb1f80adc99c0ed8b258610bed611f1282fde350d062c3a6de6fea71aa2d85bdca533cbc5f414cad1ac05f3f423c85712b504128f59e5330ec1de471aa06f05f2168ad3eb0f75879601a46f20731cebb5f372f21bbbb5bb9a5293377b3a63233338e963191fbcefa7c861c3336813fea4a71666ee64643533df9c3f79eaf73ca0c452fabe6983bf654f5d33e4ca13d2d794682c9bf5af2df134cfee5134ba1a9fad0424ce2a9c3dbd581b635d8a94e8ea099a3213eb505e5c12db9f43b64af889634521efc39a48ed45510a0cc6e6b417d8cd48718fa6a6c5cf239e25296d2362923d1dd4758f2dedded43fc13ab2635ae6ef8dd115e01c39efdf945d805b3189e96ab5bf1bdaa6bb2e62ec8ca2a0fc71e07555f485df7b4380a4d5535b3e235c75573668e6f93b90de8779ab33ee8746d94484a2ead8cd44fd23a530bf5ef6bdb3a93c8ceae777e2673ada33cf6b32aa4fec3570d148a832397bd0ad9de7175fc8f4423918e76afc2bdbd5d4aa5d7f19b84dcfab9fb133526a343850e95d939dd0d5b2c5a68aed1b7d13277bb7491ffc067e4e8999030acdae9c14e2f29fa406ee74ce7266427672f84a0e6f4617a266ec1667019cc4f289b51064be124f8097e829960261887a5300e13d00e14a208baaaebfb63ad9d7bbbf7f32079eeaeeddeeefd4422966ef7c69e2708b9ecaafe465a63b9ce415490ebeee2392257dddd6396dd2c736c2ab1879895e1d9f6879581412060d47f1eecc1d8221c44a250163d980f71e39d3c1ff4783e40e0863dd8ed1cfc300023f5e4a9d5f8bc32e47eb3ba8356793c9ddcbfdb6e0fd9d684e5acddb387310c0c97aa606f6abc41924fadb7e7a41f3d7a60da0641aa3ce2c77e3003028cbe021475836a7143c80c19338f0f4ff63f64badd1e4fa68d74bc47848328c608a3a6651e37c9a3cf12d926d5b67d8800e97f2ea517edd5a3ddb09c42524f9e5ac3056c66c8fdf0aa3b6862d9c6251e62967d70700516fd1d465ae5f14ed3a688cada67daa4df69c87d87bbc1a81d845c2cbe62f3737df8ab09496f3bc1ced44ec35540f4bb55790cd9aa2fdb9de5313c0229c1ba6fa662aa23f71dc35abb1546d0123e5968da2b48bbdaa40fc39103af18579bf817fe2ec79bf2905cd53b6de2ee1c170f7cc226f66dc56376b11cfe37d96374a49c824fc6becb38a60aea4309d30a9f1a874b53d0189a0c2d404f9e829e564b184f8ec9d9511f3b59c77b4721d6aeae5f8c614e430be13235d0d4a513c06ac6d794c824525b4927694d5b7fbbfbb2ddd7d803a9d92f0987def1108d0baba93d8da4b395484f12e999fa1ae6e1ece16af765ef492263e601bd3c4924a6350e6467639533854b5524b7f3428c12a9e588b2cb442a0eb095c3c5a598e3e549227d6a120995bc80e405159fe0772fd88c7230a311337635706ca12817e217120973e3709831e37b8620b7dfbec3c17a418583d5a81caee5643652dccf128d9fc395230a6bacb938588b83b535e63e84a2a7f7fbd0a5f00573f8c48b430b4571395c8e1166fced0364b5d57c338d82100a74c1d7cef76a6315a2991a46da146725cb98c8f7309d65ff48dc0e97e20b315c8aa336c5efcf129984ecb89d199fdbe1d3fbf89c95f89aef596c586e70e8a88fcf7c8f830a8e1d1662f8c4f30d1132623e381595c3a5a6f8ef614b7d78e6fb108dfa6099efe160413114f5822a871266fc8886ecb89c195f736135fb06b2b3b1822bce110697038aa0d78c3972b86cac6674c126c7177d03d9e1907de7c20b02ef6d6407d299f141397cda8fd9c707e1f0c9d3ea3499c913c7132e451c2c2ec5d770b0c07841153ffa74b89af139870b2f2cbaf06a53fced5c78cd98c335e3376afbc89a71e370b0da14ff0cd9e160cdf8826ac65797c87540002b16a2782945231d54c81a335448500eba909a1456a4a7c915f979a211417ec0d8ac90a032361df9a6aeb6a062842da6c085b43175d542d284d6115a1649386945e1ba118d7448d11755cc4e7e1730f8a2660b420260eaea8b1fb8907fc6b644baa0c52603d9c2139f17c81a4684e1450cb62978a1828f0a6468eaaa0b2a4c903a5de47431031bd3a7aeba80c14a53170d087bf38e6cdfff547cf2ef9db98d9af411eb46c866d33281c118a51c8d605a54f8a493445c19c10a9ffa77f8e49e3d59000c0c15b25b958e87e46cdad7f4c94827dadddddddddddd0d499a4ab1b04d4b2bd5b4ffa317352d8c9af6bb1e515d4bbb9a1d0826fb746e48115e02a14e4873549bc60b92a0d9802e0e9776557c6ae9d7c9392f20c86e551b88915757a51be8bd913a559bc29e871524e0e16b4ab5a916e55a6c083d61052585bd0def2167640921d87b4dd9808120882a9248615c8b7241e0632f751723ad4c9bb6692408b026323486ec5635f7bb179502858b092732e0628c566a5f3627a5ce6b82648f38a334c53ab82485fc4d04c4c6a0f3fd3b329de42ad90f03c9ff48b6551571695b63965cea9d1e1ac87e4814e544d0cceeef1e0c66bfa7a12887ddfb61f6dba1f3294c39b5675495d81c1bafe1d23683966be1d7b9df5b10d26ddc89ec3cc73bca114ca332eedbd41f63841cc6b5fb5299bdbbbe33dba76048a4ae68a0e13b1a60487c6a1142fabf1619b9047bd9288c8361981c4fc81ccf6994f49c19de8ccac373667bb3644443f23bb7d13487b450d78e5790fd9d336fcb22b46e926a01186bc1b0c7ccccccccccfc981db0bc04fe370a72b28b407ea38156802f9ac4f0c6a58d5c92c15b31c40e66a9b4e38995b94f810c30eac1f0244ac4e28526c9b68680c4ec34cadce7edd20560eeef076063d0b9bfb9887494b6b453e78ad6af2ebbcc8d44f26bbccca0212d0217660e2e4cd767f302d9af7ee9d4ba6743265c6278c3419b2ce4c6b415b4aec26a65630304a3a1097515aa9093b3b3d3559061ea47066c089aa648e826ba8956d24ec4cc55d036b21375139e8256e229f0143411fd5acbb44cabaa2abbd8b5bbbb4cc334cdccfde97e1ffff8cefb841c08d933706f075a2b91fb5aa8934816ed676391cfb0f3eda0a94b07d299bd1a268361d9bb0c9f5ae02b3e3df1225c099f711bbf712cb25622fd35f68f21fb8e314c6b9b66629365d8679a125c6272339bc96ced91544bfeaef2388a51ab6994473972ad46869e2ec302d9b94a89dc64dc8f78f65e86412049a46b4e2487385979c4f768c449ab3c625c5671a921d77e844bfdee3ea3bdc540569cc4ca83bf3b2373bf359bd9dfc19cd90f3d9c56d3a6eeb49a5506adf2e0e7fde6d576ce9778bedf8ff06939170f480732c8082d7b75e974c84c7fad1bad5695f311e1f0f36f2f3e612217897fc01b03eff0820fc32fd8d969933fdcd9e9b129911d8cc2257f4dff5845765a94a9b9b8f401f28210673a8cc225872e2e895c992823b504790d6b1704ad1cd5512b2cc73ab9009f58cf07b0a969d87ac41ea432730f9e3ff8d4a1c035e7d576508f1f3d7ef069b91d5c6a54e446ee2245324528c29a5d69c624398c1a8a0af40e2932977361297feb2ad817dbee7458df2531f6dcda89079c79f62a334839551e2eab3a98a801466c318c315e187f17c320a03873b908a7dc7deff9ee33917dcff73ddf5d666e48bff7b825d1238644032c102be024c6e54ba51d14c8000c3b58bcb05a51b0e725e053915297bad4a52e75e9a54b6d6a154810e4e055c4f7606066ee3161404e90104687c2218450a76e0b1affa57cf5b115419bc011d49f3be6d84b800f6816a02e0a6040d5820cb4a8bc7427e648102171249545c3723fb8d40fb91e30bc0b0d9f0181f7bac7ece12e90dc92c8518b18637cf16ddae4cfb61c60e61901cc3e218031c68c04733d96c0b32c6248b020682e8004c71cc32006ddff87d7207de1e47f5a80d8fefcf6fb1de0dccb48d0df23e0666d107cc80de97902f62273f763747f6568ea12b3d8dddddddddddd5924c9ada99821889318172e3df8fedc1d7b6f3f108039f3079b3a25dff780405fb9b25ae22fed8b892192839c937fb500be0ce8217dc5ca7c3173485fb9321f47e47d0e71f28f80316e48cfc769c9b9d20e1d5c14f91b435397e56167b688652d9445626596c9deec6a9f60cf655aa06d7123451d4959fa8cd4e3e585069836f59328d04b82787c90ddaa8a70a95190db404e0e3764e0e5fc90a0b2dd985f660fc3f1798688f270cea6f7fb51326a5319a76c8290d4ff487195412cda6db20cfecc3543f164582a501096b3e0b681a7dd0a56f762a673695f11ac27d3c8e20a2bb385a9595cf19aa49d9e18ec0be9237985746e09f6241b4257ae5cb942ea714652f01e7e91f8906bb1017ef619672472dc122d298c14ba72e5ca95547f6ad0d4e3629bb6f9a599cfd0d4a5d368a6bfa692be5a6ec54d6407573ce10ab21ad57268039938f618f62f8dea87e11642ee63015970c525e7d9c1d5a4d942a55aa2bea9e50c8c228c2a88610855c8e006082874a0808026555c901b7169a368a46333d3d455142e2668ea4a0c5653f1027db87145ab0657e8200d39922229fb07ed8a2c76684225e7b968a4439362467663f697a4e8ccfe1d7c822fa4a9ab2836f3337525250c2631835867113acbc55e4942deed4c40fd89dede5be6518ddffdba390fa9ebe1d2fdcfbbdd03b3e62166aad0f33685dd28bebfb7f57bcc3f1b2686dcc75e738f6d6a8dd4ae36b5386a12f220f73de424af99af5e2c7322f75b555bd6e0d0d8cc13c4fa8ebcbb3b32f476ef4e81dcf76eedd6e71ce69cb7773b166184118886dcee1d1b4322f7b77dd80f723f2691dbeade2096e6792c8e4655b68fbf4cc3a800218771ce258cd32aa0509590ac226bbcb75af21328ac6163ddd76d5cc16db0b8bb3b8bba0f7cea90b481a3abd860b9c182bff738dee12ada0d1656e507886f0f0e88ce556aacfa0a6d0526ecd245c660cc3c9e7f70346aad9f63517e1352f3488053918b3bc82d6118863dff802268db1036594bef4d30fb771d6e359e17f166a98fa7d5d85a733fdd9a31725ea33c5e3b21bb1d93df86bf67636b955c50a8c68daeb1b58dd47ece359c86dc7fe1d37b9aa85fb69b90dd0edd99fbd9de9954bc861fe735d80ae4fe0ea622334fa4914068ead2754b3525678ccaa96ef1cd4b291ae99011c3074d10c3063f104308ed8964410a9f18c81b49f840919f2ec808831585309c20220c239e8431c40ac0b072058c299f27c0c05181f1c50cc070f2b142fad41518562001c60d1836aed58481b62124b28333fa70a667e6f2421b3ebdb90f991c99fbf005a7306a7d805340b13217ce3c990b6f5ad00571e67e07577319cef0a983357369f8d4412594e0530d9fba66c122f814c301660791f02d660775f8207180ad50937628c5dc6e81d41517349c16b3a48516eff2eef6b6bbabbbabbbda6e0f7497b7b82991da77bbbbabbbabab6dace15274b50bd62cd74125668cedd238100ee8057ab50b870a87cac64dbb40afb57163e34693b171a3c9f0e7e32b7e3850bb40af76b5d0d28e68eaa2d1d0f0695ba3691c251a125a8d46c325ff4ea3594ea3d996b9db42c84eae629b7825598662f8c92b49531d63848d034d5d3a1b2f25fbad44f67e2791ad925d48a309c5f0c9ff71447cb6a03ec685ec4231631009c56c0c3bf93b0707937fb1500c29a40a21919d2623c3a716e498beada9d184681ad522645318d7f27448d5c89f5d2866882b642687785071a1982864d7b30be58c46365e2f9a6fcaa7ceb5b9fb7577ab2a8c43d4d043066316a13b7cfbfef53e182304c2a9803dc7489b7a5e25f51c8875027333a1c12d915c1405b3638e40ea5879961b3eec6ff886fe2408a4bf5882f856bd514f216c3d29f49753ea6a146c14f6af055dac3631466a9d0859322c8732c0d93aca83bfa180bd1f7c755a070d095fcdbd03ada320f79fbbba2b1277d57f8ebdd7efbdf7de6b774223cda0b35fca435fd3c7be7beff779c387bd32f0763b6fd476ef2935f480350b0bf77682f3697797480fde03dc66356b04cd8a8f6b1694592f64785f507a36119fafad735e5ce27f0bfb060db9cfd3997b8b8dc32838059b18de28808765d664bc084d5da4100329d126a7b5046dfbd575e6a220cdaa8c9cb9f1bd62b0183398981d0c733b1d735b25c0ef0cd9849f59dcf57dd87befbdc73d00dce316dea9aafa7bef45e5d363cca7bbfbc33e401ed7dda0aa9ec39bfacfdbbddf1534dfb6b820985357f775a7bed1640d487f6c0526088107123485154ad040ca4c1a52547214775063c61b9f20ae68544c1240094fb494c0c3e47fa31a3f14e12c971c21093f302667ce24cd1494237e60032abc6085032b3c4794f0a000937ff50c293df87084131c22a4baf809a2069b22c305f385c959132fff2ea51d52904045896401880f1192c5881ea488893685dc585f4809e508e9c14122e1d4d5ab09b3fb23bcaa7c9420a30797d28e776922372fb61f88918424c490c21812c7d455941f9210a50673f4bc45231d2f6de27f7963c8229af3033176522850d6922352482dd101186401ea8379bfcbe1cd1ea41011647ff6dd0b1c92805fd292ed9db444fbf87918eea191549fda5ef3bce04099ba3a634a6bea0a27059386466dcf1fe471a4eee70da1078540da923cff0283277bfecc90fd90045cb9726566ef1f20d98783814d1f92a6626c2fe4cf206a302300cf9890eb417ac1919db228d05ae3f032318d6bd9e65af6e3dc07a9263f4c644918d8c4bfa4172a5e94cc9eb283b9fb3a012b24e0bcb84c149b2836a4d969ab7b2b224cd97fde3b7ab43c0c0998dd8fb95ca72e979fbc834ffb1e18bc2687b4a86151824f51d38ad0f40788fbbfe7f1bc973d43ae03ef756a35482a85184889f9cc906386584ba4b63cdf69cbf31d4b0dcbc3b087f3cf70e85707fc77c225a0af416216481049089bf86390d61032b337880ca41046f92a8846795cc8b5e2108e9342a450cb27ff67c8eefc0103c3a5dd7a6f68da7683249fa549dbec1dcd0a7f8078b4b87984ac4ca32412260c452592a5fd6301c94de40c4b0d8b0dcb0dcb147cca9e7fb59d36f18758da4e88e599425f5e763013e9d1f9e9e0ec422c162726933a16b4b7667132e40f2e75a11b246981d0b3702d428a6c0cac44b14ab1bc0e2918f6d0800555ce0e0b8b8dfaf03c3f0b133e31093473a86488e5f170120bd9c91bef216d7366f25f21478d123dffaf422c298a339e8f9e7f69940888a7156782b489bfc5f3f27548bd2784e5e56bad4476219647aba2b34ab1bcb69f19d8c3d590a5422cef817cef3bfe39a290efdd5d44721bbfe152c3300b49beb3d4742c371d0b322c2419045e91ddcb0f9846d9787eed07979889e4d9bd686a3fd86bef2d90d6e467855a8dd2147f28146572177a916218c2132bf87800b3902c2c241662dae4386e8870dc10f1e049e3f895e3b821da27bcc2824b2c010b845e722d42e4b33c0b572486213cb1d21808d2bfd35688c56a93139267a72d96b65888e1126b8a3f423ca91a2c356d8a3bc8ce59568dbaf1dc45e9abdf69d40d8e4514a3b6c3c2693b939fa5903a3b969ab8da207f1692a624a90649dbf4586a623c29961b1ca9a91049532092a69aa5596a586a72bc36def102229ef95cb1dfb347c852a38c64dfa3519b32b28490ecfb8dc08fdfbd4cae453d2dcab5d4807d7c1bde93ea7704d9c5d91f096c0a7ef336a8453f879d2ddb0b819ffde77746528bbe9125b437923d7c234b7c3821fef18dc0cfbe492dcab56c9c90ec21d7a252e384c4f737e25c8b72cf25cf7b560ad9a2b5685c4b0dd9c3f846fcb3b7211a69fdeea7c7f39ed746b9783a0952840b21435e21124208211108218431c2ccb32a1eb123b2a3f6fac6ccecb35720fbb12451677b11b7a83db8d469942ab71f5cc32772f42e2580bf47489d0e531fa687401d747049477cd2f7efd7c1a7f7df580c641747ca386cf37153b4c71362cfb108238c1ea1c32c83915b2d3d0cc31cc3308e08c61806318f8761191b6f1be1bb4faac9512335b996fc3b97f91869d392ff23452d69c93b1ce6ee2e37a4c8648edb1219185e1462f00125e041c80a279bd9a8a48d973535756a4600008080024315000020140e088562b14016c7c2bc0714800d729a427c5a9989635990a33888a29031c410020801061802c4989a99b941000a3ce0ca3d44e60a2ff3247324dc8aa53a2b07047a7195f73b599fa5a2f8405028674a039db61451bccf3ce6f61f81178148c012aaaa35e5779ecc4d9a72fce138f0422cd8157dd1b596f59779d894cb873b97126e0b8bb94133129df468f500c2b05514a826f69463a0f1ac577750a51869caec928b239569a3880d491a21a9d82e3322ee9ebe86894ea7357d0d5a5aa5e9335c235242126e6f0378e9a55f2bcda2cabb88a1cccbb5523666793ab6843ddfbb3dfc6b1c4b3a82d708d32160833cead2e120271f9d52ace0f01fdc7dd1138fc76cdd4aa0a63a1dce49bd8d69fa37da231c705eeff1d3f7233510988168d4433ac2b9c8127410a5fea6f15ad33d5e87338d1a0d2310c3305aa8ee1a05dc78fced106d937cbcd16cdaf4836fce552b6f0b834c4474e96584d81ab500f7ea5d1794fff02f715a8587922bf9b9925d3d28e05c248ae347766e214b1193365b9d9ae3880f87e6498bab61d101c6dfdafdb121cf2a282f133b775ab9a49b476fc83664fda6ae19c5a6d11082a2c30c8745c5ec85f1a30c0059a9d803b81d2e7ab070418978037b761215a40c338688b1db267324e08ea8d3a66210a64308d0e1124f0359cb4a7e14f6d43612090c027ff87d6599030e7d8c5f6d7f749308b772a99470946a253e5e19d21c13a6f5deba874267405d22a4b58a9298b9e848f643fe1b29b473529c9f5ab3fa4130e4e9d97b999641235a71f014edfd5edbc9797ba69b41d1b6a6ceae72dc254d1b39e3034745621670d4d9a49620e2fd5ba67482228a194be26f4b12930dca56bb5b5bcc5b75a87699b97074f13d1542485d775f73939086430c6f71d14013e7fe549ec814ef86435c9b38845f827066bfc7ade6bb4fe2fc10a8df12b95ab90b0bed4c50c2c78f98f41cd159878cd5033868b9e45b647483fd994e0b368a8c20f9f6cde729a8c5c9e3c79651569f91b653d2f43c13dab8ed84936c004ac62f0ada007a1705dceefb5c7e5d4a98337299f8b7b047ab72ff61e78cdfa4aa612cebbc49ded70996b99d00d5eb9a13727d1d2f3d8b36fc2d9f7087905843eccdd02e183c616bb3204d8dff41e8115b60752a84af9c5bd262b729755365d4d9d774e285c8c6f9949a17dbf696ac139710ebdebdf050c78cdd48894bc3e085bc4958e2e81057cafbbf602b5900bfd61bb3663bbc34e8f3b5f42721c8a06225440f43ac439eb5326135c7c19fc18a18361e90dfcbdd189cbe9b907faf9b5a3738027bd58d53688886ad963a456dc943e183995eff65b93ccd6643d722d4cb6862c3242912dcdd973dec10329a5ff352844acf1b4cd4a46fd65388b429d00293484db6f190163d61584178a1acdf21492b36ed1b11f03686b530d3b4936d53474a929f914c47ad7e3dbbad07bbd443718c30ac9c46eaef8b5ae987c277c0951e535ad78914149da7a66e6286d89eac9962ff9d04d6578c92f5658458f2f2e3f4a30ae08161a87b08fce4cc8a3a119c99026da6e0c2c7265075f79e3c40b2412c1989547eba4c997b84643748ab633864a54c8170b642aba3e844cb0324d1bd0e96075b49697d463bced406e74e9b6c9c69381bf3f019858aa542c0128039e4c3eab90065b6c3c82f1a68622109669fb04e63fb2695e7e18137e718eac61ed93a1c2ca68b4361fb824fe34b46bd894024943f2940130270ee282e391c080417e4ceb072cc3e0d10b45e2eff4cf55eeb7f935efec1409b119f60e3a5870cc71f9fd6a2385c853d9c1b59e95bd241a59b033cb6e9b08a0d7ed34e18e46071b715ccf076aa497fc14e22e9edb367821a39c37adf9584a28d8514b03e255c0f1bfab3d3b74b3da9e83ad8daacf090378e77bff1cdcfe7f472047f954c88d4d43b4b09e40dd3ccfd3387bcaff13637ca2fc9c7a761c0179f7d12982dd3aa34102d552e00c4c0a4f826cc7a766797bd8c4acc150ce8b5916f7f1a9e3e232c3eeaaa678b6a45d60a4844c36d148c443cbaefa44b97f4aaf47b9f5f0622780ebaf81b5531ee5739732dd835ec17c26d92ac3685b060958f0995ef5d61734a2dcde00b675db221ef3fa8221c60e20da417b662c9cffc61d217923c59c588f7a705ee28a24791f0898e32da5d50f97c17931b86673f2a06f2888efc1fcffc473ab8498a2299d99ce04d3196a7039a1be7a2b9cb8763683fc54d073ba28aa4b41542e4de1474a0e7dce4cd1fc05c869dbc708e19846eb509077afe5f70d90399fa2f2e6ec26a358c1b6acffc90839e25ea46b772312b14a91e03b7ef7d5004ee701fa6784cd0ddb511fe6e5c4eb21836ea3d8500f5e7bb3f53e49ef311891b21b6216dad09e84e95e6876de86932ff2d62feec501db2e2dba6b7b3540e7f9629940880e1a3ca3617e3191128b58815e809d77c511c0661f3d3bf26395a347ccfb4533a5a4588dda86f4fd46cf36b09e66960fa99c3a4af3151d3d8d13abc66d5475f42a880512deba4ac9031f3776488650c8c8dfed0108179a9211d6ab388501699d12d4505babd032cdcc36a01c1c42f1540a263a37f19f5d3d0d57cf954159cd7d1f6e11cdf8c6912bbd223f3b3a14ea603a2c19521d81eb8650ba0186fa3da63b23bcc9d96a8bddb05ebf241322f83c73cc952051fcf96ddf09dcf87fdaf56573ee77b0a8d19221195d54e6e0677d01c854814cd77f8a83921e0f13fda2b744c2cd90ae201a581c141be40e519e6c0a3d15671955687750900c8c4ef257f483249240bed162bc09688847bde8201c292d7e749fafa983833e907e2885356cd7eb5ac0dc48fe3c04faf19054295374f745c4c3c686ab89ccaf4ccad3977099e068ef73c611c9d2f413145a3db40cad1210bc00346df271232802c381d0e00dc0bae0c8bb9efd337dec42da95aa8449b34321c32e3244c26746b85c46e5782c0add880823cddd052c888035f5d608d38e0d202d7f535e05406cfa0c27f1a280b8338a89eaa6b028dca0f02992e5a16ba17704212db1bfb650fac8b5db4e5c3e18610cf95f396dcfa84ceb755ac796de6bc363351ac603104d52b5019b26897030687afd2cae21a184915c65ff1e4cd04ed95565a40b26af809c73776390b7addbdc9c4f73bcd769e6f39d98060a652769d09a83e5be11d6d95f475a3e42be8e2e2583584713713239a9f63cc041f34584d4963eb813b5bfdbb9cdef6b031939b27d6aa0d48b10fd4883a7bf03ecec92ac34d0fac2aaaa20cd4254d6113665e91b287148e081306a44143100385fc271f04e82596bb22eae3b1d02c8c9176517e27dff78b410688be283a4d19098d1511649428b2a89274996cb380ae7b4c637b279ca67d22574cc865efedc66b6ae93a188e2552ad545b726b14104ef956eb6b6629a6de22f897eb85406964465bb13d343fff241075a7b556d1e89e151f7378ab7060dab374d5a8250353da8844b4354dcb51f232be6e68f19a2131e0c70ba2d71bd02563bc1b6e11724a1d911dd2726d922121bb023914bd293c6d8f1c84cdec10d212d57104928ab43fa28ae620f740ac884b47adcd63feed0ce76fda6d1dfb83411dabbce30a70113a48462e4efad50305574da86399c5d5576fb2e9e33d6616e324b1bf2c283741bc6347bc27d940a05c989045f1e3ce3ef1cc7037215372e0eac6978c99411db7d4763b1ff741a29e76a1c3e8cc00086a74094837932f4da44f85cce846f21d18e034855fd7361f3b79812b26323f7cfae2389d83b77b4ac6666dac89c7d756cd22d1b0245e82e68c254dcac8b96dbc0b5d9458c59f9c8dacc8be2d81b84a6e33ab38ab05b2069002772169698d436fb196d97ed4d8e85dead59d38a237ec4e4200a27d75749ee83613129a8360df778c0c3e868fbf858ef356e6bd8e09cb83c10eecee8668b0f368c050995028d9bd3c55d167432963ae049488d609ad4f47ecc5301f6e923da8c79f95c931593d11540a873718332614ab40e1aa80b6a2852f8820cda03ceb827d2211cab3c2e97e1da33cebbc1127324ae2cf0fb2c8962ac04c4248eb56dcb7e09dd2d109316f35dd1afd27f48772a5266a89eb9d2899531ceabc2c5caeecb900c59903e7176071d5d5d9a826dbd2e05e2ad521590d08ed9de9539fe8c89c1af145425cfd9dd011bc9e2992485d8bc95cc5cf6fb8c760a87a69a490cd8738699ce84ef4c4f070a6e7e6ab1983d044732dd15a60aa5d8e01984f953f82b8982d9a1fab6065210efceb692e5664eb07be3cefceeb4bea5c21f479c2acb6ad4178f63a6837804d52e5331b5c331f4c53a287cd29c5b2e0b8a554bacea9dcc1fc15d2d5ba597a9021eaae342cd17434b1b88cbc558921de2844c176b89167a43558cc005b0e7cd586cd71549818e739e389bc9b36559cb1524fbf6e0c38f77766abc9378eb28c72ba8efc1be55ad026f0f999a6c4b6869430a5f82ad24642f0ccf01d099ffc474d49b1d7d04625e49943cc2a3b5263a8d6a04630331c392b88fb912ee2142a9293871248548761a7f39d3bef5789ca13983c89031db9ae4d25a97d8ccf093d7d3a3d8aeca7427712b7679a920f76425f2fc61a218c1a8c56730bed31d7a2aa95d3f54e047c1309a0b630b5564444f6df4773c3077f26e41ec2fc4b449b5d0208690b2ea62ed359508a47c139eb50522bc5086b41417e8d92d07ea991f0ccd1157c988437f0cbff262238b9b42302e417457e08b7546eb673e6bb1e05cbea084b064e67234bb47f22d527699865afc8ea5ccc3045ad8619e54d9115f68fd9ef20f47a036f93980cb99843f89382c1e23610d2dd9bfd5d8d961088cc10e6727ed846d0e7473428bb715d943831ea6369e80c3a15607917b4fe8437c12c3603a92ae7bc48f9feb880d893227d82c2c3a2b266705f1ce67207f0441adc8a1ac8bf85e907043f5a2c06bc3c12d7e7bbfd4adc7f676512c50f343a1eb3a4b62d5ff8db2ec66af091bc6fe7be00766b2a65f56629a9721fd221f4e6c1ec228c73a902f0080897d6895b01804590c690ccf839d9c04f8688bf40f95bede821040e29896b33f99851665af23c3cd7f6d6020b23694d0649470b39862270cd95514b70571466fd6c71f500f52dae41d98a9bbc86437d2a50f52e01b1e2c271bbb860ae3854828892ca3630cf4eeb570a8711a7448e7c6cc479c2a9dcaa9b15f77ffef1a7db23a62fb8d495615285e5df91e0a7433ed0097e43f3f52a70e84a14a06da07512272a06ef83690f5c01634a6148f370bcb7f713bec4fb75ebd32d3b383fa8f9e78a5ee6a8c01925d920e8cf4005ab487e4a13ba51c8ad5520bd3009e63807df92468b14ca9f3dcfbdca27970989d37c932254137d6e4de2cf2ec8bf1bbfe5479a294f106f9b519c1ec0879cd113a82ff890b5717c1a73e198a52afdff733a350aa2fe91d297c9a5b292d2039dff8b3e400a65bdd47f309bd38e20c6c133fa3cd983672aa650ea775df9049da1334bc207c96d22c11992b5956f356d68d26336a38146fac4e092e649748ed101b9ffe1711ffedb529d2a257812a24506b9fc0d482086fb38ec58c46d9ce259f043c2c02de2fc9fcc17076471be5d22a80936f45846bdbfac2782fdff9e9b11903e16584ca4b43639d753177d4edc68a7ffbc8108836991b0cc3964926940b1e8e65479723f341adc7a459a68e19581b1b5bbc6c87ed5cce0360d8efe0b08946a6524eefb60e089e8a6dc4f98463add1fce6257d215a0dd390dc5fbb39a3d3bacce155f3c36ac8aca93b74d59bd2a1cd3a1bd41d849bdf8ada49b3c415bb6e55280fc1a9b80009b060f7ebeadab97b265399302781e63216462eb38d7c7c3b2387309576cb9ec04ebbca02439f4f7377c6970727bd8fa6b568827dacc9d42247f9fdaea91ed9cccadc83d89a0b37b3c8cd3ca565e37f58999b0c5687bcdc9df206b37c9790a003ecedf5170a821265133a52a421c6a72730db29dd31823cfd4e1c7a76fbab1a991eb221d0932b141b3283b0cc77a3fddc94b062f5afea0f81b348f9fcc768f0e08df63219f10d56608b37ff0b127b5b281a6669f453b736025d0c02bf27e8a7dbae61f2ece507c864751ecbb41843c84f72c32b337e499b29dcbce61f451da0566aea6ca1e097d766e1e9df9cbe6b5bdd1feba6e07ac6fb4d07c239b60d94eb2b83d2585e3a5d9b23123f5606a64d3eb0a66c09bffdb4fcb3ae75af60122c954327b853e30d6b10964c03cc8b0b718a390d43c0fcefdf66c9eca22f2ee78230e94ff1e666fa54896caba91debd539edc2abc1e386f88b477992391d53977fc1b3bf3c626f55bad045040fff63d6c42cc4fd4fc9eeb07f8cf1bfddc17da6ac94d60dee0d51e072ba7144426f75cc824a9b32f93f53846562f19ae97294ac192f17df9b237da2d8deb7bcbaea01cb370a620db0a9f6f2afc0a445f003a7c35d94c0d700f524e12641662597fb7299c98838e2ec0b102db1c9a2745723ffcc3ffb462a9089741f7de30ec1935ea37eba55e7f4b50a14cdc71a8a5b82b1d56cbc5b369e3a228ed5172e4fd1a42e502c55432c0de8ded718b08d85323866e92027b9e80434bfd6897b6fb815211046ddedc947cb1a2b44ee42a622670b6656b5021fa63e3283e241b021c2da2fc312440770bfd425074eb672244e095c41f2a81291e07e4f71b08af5203821c6c09c76b779c7fcef137dc622fa4d7d65777d3d1161874ed1df01ec402c4c4bc1e8cafc724deaba37f801d665df00750ed4f6874ee958e5d7d8d07b4584ddb6009efeb4f706a84bebc8e9174e6fde770c7cc327ff70ac627ed17ccf8f52cf6ab047462136a83c76c749235f4bf8dec93387164a2ff3460909b907ced33811c10c7452d38569b7361340ec31db62842bb8300316c2367f4b2609324b5b50860ab8c5ea11e193bd1cc672a81c38928e674103a8400987ac049a027f4a16ae2afc653e64953f06afb82af059d6d975d521bcaec39c2c745d24b8cd9f7c28a0b4c2df43ecf6b894b1b50c6c5d1c03f9c29626f102733dd39c307af2193054b695bd34a629b816fdab92e38c41d6edd18703d98c3b8b004a4db31ae458797188dd61e194d2da16147ebfd8f58721f6fe36c30fb4233a7aaa41466210452b8d2e4e474eb9086ac3598d2833d193b8aaf0d51bdeba2bd4d8a3690d71f52c9c1651b9ad51f5116c6fe882e6a94af3708e4ef59c7529d9344152d68d11ba3e4735c5eee60649c545e89535c93909a96935f68251990c8a1b04695371902ff7c8ca4b18c7de9fa114b4b8c92b9368c3b47ee5d24c54614e8d493b3257fe7108d71aa858622990318a041be0aa04ef510fa51632425656b98626d7fe881ad6fa40337c2c611aec740c6f7d6aa2cf7d7db24447914a4902c3e460e2f06d95bdf1a83fe17c2ddfbd3ab3e6e6a65bb790770e6b19a08463f14a4a952a43f482ec4ac532c1ac08c5047906fa3bcda628e3ff30df9fae77017a41a50fabe553d811f1abb58b1fbe8bfc74537239b41373ba08c16842adc2aaf8a2869a2dc1b15da90e12ee13eadc215c53d502b1717934997ff02940609e535d3decfbea9803a848e74094548d516adbf1d582eb8cce5e10892820a14b7e4064d12ef36899df91004f2ef75ba3c99458483e81aaf39d33f5a8194d32ebbc06110b633337d2f61938cb7d81105434a59f0ad07e644585fc28e88d4a0ef1d04079e471e830137c0405f1a6de5e2c26443c410b903650c4cbbc0ff5312b35d2b0959737d25deced6cea56519d7228ff8badbeb30fd953a0a6ddcfc1e6c225c802010683438e907411441108107b7b306b0c4cc835d0d4a81e113dc52483281f9c415057d09b432f86710f339bd011240f2abbc988ab77dfa09f34c7e171f8a8f02992fdacf784d74757eff223fbf8c1068de5101abbdde4c08a2fff45dae86e9e5d94ad6927df45febb9667bfbd00246457900a0f347a2ff44abffb9e829ee868ea48e2bd532f0850c853cf3325d44c669ea51d3d9d45e0dade4d57fd73ed8fc1e11f0e52b392c9beec9ee54fe156af99c8a4158062590401f83e82d5ef849fc26ad4aa5864856aaa194f8494e83caff5075636a99ca33614408f52d26d1077b4efa17fa57776b5811362aa22ca5ace74efd770cab24dfd0ec6a65c5db214237e9c774684afd37c9b028c7d15e4e347e73e5e446e9c1b983a8bdefdedcb023e198d883492740e8d19b95b7c3e2ab731e367a8e509301f81e7c1157d959efe26a28b343ab1058e4f96a69f8cd0e2590eb075970ec514005f1cd9bbe7cce4083ed89d311f6df0628969d02f902679994a0848d356dbee78b8dde70725950f0db0bebe75f2c5bda692607871fb4666a1a24e4341ff03d048b03f082c9557bdd2f8de213b70987055a7b74035b1bd1da00c6d9069a15f509b47b0e96a0b0d14816b332c1d2f269cc5f5dd8cf32c3dda4f3eec5a7f728e8bf85d405aab9b17299520213948b969cc2fd30a9cc1e671bdadfd41b33a18985d707aed44a6a0226fd41aaad8fb671ba3870a746f4b0c26b7f0e9ac5a5a017870d8b4db3391ec404a1b71306209f275935c80c1d19fa11860fd24effbe123b5e11c920df09d6c3c60d5dd9dc4b0d91112cb4accbae8cc97d57740709fad3bcb0c44d42a5df6e3d6bde768b890680cb44f95bc151c5ca7e700a3718f68b95fa36ae7b94a3a42d7afb0d66f2ccc74709ac9319473906984640d1a162a5375e06eb20317009209ca965272e4cefac00564a6a26377e963030f06361c565e7d38b5e4458fc95d466d01148d514c624200bbddb554fad7fb2c375f0268291895069528a5eac6319d3be4fae22a04961f47b17dbcde8b97ccf7afba889bc48672283b1879406635f98a99217c0e3f2cfccdd620d7451d0d73b33f9d6c878829072b5a5bc7c84ca9adcc44a1841984831c2295fbb4a0eaa6421ab9db8ae2604dd8bc54e6044acdbe6bb35e11a1c30ab83994400072b55ef16146fc0bafb789b465fe5c2797cd9547dae24c710e97120fc1e9bbb7f8191ee5edf0c5853a987aa8b0fdd1a504795746057c017807122cbf11bd7a2b6113f81b40efd070ea9ea7a245e768e5568cfc7c6d4cd96cdf1be878028d579b41901dd5243dae9876b4de98711b4b5fde013cdfd69cc8747f4d13a5e360c14f37ad0d772960e6f4c06dcbd20afbba0d63bbc7646499f679e3fba2aa1ac8cc4043af0a9ac0528997025e41fc8178717aeda6e11e6ecd418761202ebcc7260c821eec3130afc68c8d9fe127836b61420a8f99d570d7e7c0b5309a4a5c7526b5d1bdc81c0b6ea9ca869abdfc5783abefc80f38d6fbd6f25d12be39c20ec208d37feed33cf4995c31f09d62d842c540ae7081081dd311f360506b4d5aacde0ef1f7a2cdf2f9eab03ce57d3f40aa4d62a8d287bab2e3d385ce346a21533063a250c47d9019c89e2078b361c382309b01c48e3c402d9278a2e22cc5c9ce068f73c13b3fa0c7d8f72c57e054dbfb1869dda2fefa978198b3e83b2bab94cfbb46e0b432c49f48be55fc52bbdc71e4fc5f8a557289479581338633e4ffef88f34d9dc4d2691232f6aff1eb1a5234e7a4dfc26b0f98ac6a8c6293504959e8577fc200dc26913ee0146b1c8780baeb5edec002248d7442eac3eb8ac0887b0c04e32935a56ae58be811da3618b6e422268a108dc3da1196a04ef341a1de3224226979eb8cb1285ab52ebeddf9e6fac7311a881674588e39c47425c1c03649a95b2824de38f0c14bc739c3d0871efc38a592cf642632835948f657804a540bdaad9de06b7eb30c7f6964cddc9667be5ab2580fbc1d6880e6b4c8f2239c5273e3981d8a626b34f8b3db63549d035d32801bdb2e442d3adc9a39a67994b5a8b3e65aac38f6828a7859fb0a814e34a039b7b8f405c14639e992ec667260ef88945b711ba9f701d1f21d53b60bc6b8efb66bdf7cfe89116ce80329c4b8694f357cfd85c95a4fc0a51bbdb18fbdc78f0d2ea9bb34b1d4943b61385957ce432fb98b35c91159fc62a3f62f71882f07fc0a3a1b3aea2a9ed4c654ccdece19e3f1e9df93300e4440e6c35da846739b81c7a9860da02b8a4f0044300d95e2fac6ec2aba5051572cc0ccc242f738a149f4a3b58173720212db6795887bd13c0f71eef91b789ccd2134e43f31904693cf054fe66f0ba3ba582607af0c8f41d9726bc384a4038e8a8e3e62e6c12895350f85344c86ee8c43cdff4d286a892d157546a3babea770a1450dc6a9721aab263412f1c5a4c3643b7124305d7ee4c070f9efcc35ab3260fea97683bc0774e04f27a5101d2de8031a9646b0ca8f5f0a02af2af3e3e60c1e321795f9f69c92d6684e87205c5f27884c18ab4202706a774b8977d190e3678abaad7a1b5f9bb3cd8f811b680b301166119696d2ac5b652b16d617c9d7c1a81d6274ef078be5af5e64ffa807f918e643be17ae03718073c799560a179da3aee44374fd7cd80fd1a282433071038d276efc30a73bf0eb5fb2174714c0cdd721a62b1806dd70346b0a9f78633da7786daacfb9127ab2e83081a53d70cf5209a6677261d2aba4a9e0c169a286e24b54579fc3d962fa164458f9a8d20e1b411b9cf433607d2eec3d7de934cd39497cad2bf9f5f6987f28161c919a0b1f734596993463327bf809797dcf328e713a5f6ae7634166b331a598bacbff64d99d88603507838464e1f94e6fa2dae44d2b5278b29a4a273f899ea8e374c59a85a9a657ea84ffb0ade66ad809f5db5182643b6e6fb630744074baea19b9a525d6044ae9d09620fa2d3598a70671bf2b6b38da57fecab21356e9dc08518fbc1ae2e826f4d009b8e6bb19b22861c741e532656721af2a95c6e4fd86991d390122ca8193e0a56a1ff2b3805203550b5081d51b37760d546d6de4e71bffabaeb6838126f5b1b1c6ad49f61819555640cc3f1616be019a3d273f0f4b07973ca355c32b398e046a6b2084777e2d0cf26ac8fe6e166d726bd07a37259345408daf05e644f882f3069be69789fa8d7b34f13b80a78f7357f08ce779fa583821d899f2496c2777a9ae82cecf48632b004955c59b73e2a2b6132c2b31cea8d97b5a804b7405f1a05501f548c621067af8f0381586e4ee971b458aecb6d9b259229edb1d25cf3eb63721c761b5cb257b7b41fb1f4def9f8e57c9181701ae16c6260e3f4d6b794ded0357c1da05147c76e3e6a4ce7903999a34073dcda1894f2465534fbee90c0aa076cf608f6ced0919ed3b94867dd5a0140e51b407fb8be71427ba1c37b8427c2e4d95d54a76dd91d667bf6e51efcd252003a0491f220bc81f060a5df559ad193cc0889714423da7efe075703be2dceda8245ada0edaee9c3e0af7d1bfa62d121fc4db3e442f5155598976702104ed0e0ffa7a8c6e7d8e5a7bc807052e79adde4aa210320fb0af51977a9a2d620dc3a58c4f4f1e7f37f27fa3885482367f6f896aac9866730bbfcb8922743257309a15998228da7acfe2d12f9498119e25cf8f7935ed82dee0e2477e318d2477e82ea28c80544a1861355582c008e9f2eca2188e00b9c2be71efc3fe0d7230c752f57dc5fc65f0ef8c9c6d899282ba78c80a0b2c6f264a6063a3827c83ef2d9d3d0ef23c2109176cc8f50ad7e3c67bfc11976d10ae869f1a5bc80a665538b4b777cb8de4ab2d609168efb963a0ca52fd0500028f80dc10bf6503311a65de717ccc1db5fc7db1196c0c92ac8e708b5482302290ff18060aa08b44e9d43f4228265ad77f957bbc2ce4102a997318d29bd000be292cb504d33d086d4f3d65ace143f55572f685b7d6cf8806b8cde0f53b982a6a1167918846fc9205b16395b7a1cf1f237050d3cc9f904a08796b17f06619c8cee714bfb26fa1e57186c62a7dd70b3b52c65147a0130aebe23e3654ea963f5fb6a6472566ae7bed7b0648c27fb756d9f8a0006e9726bd247a53818d4f12d67dba11686571269533646e55db83e2884e570b9a747dc32b0e075a4816d21456b7f6ac97903db4786f7d2201d4a9b2c82627b22914513a57cf009932d8cf20c75b14cf046979a9f9ee60b14595b99fa181f5a3245b814ead59b211c476e3aacadef820203e15600c2654b511b9dd9340220835a778a6151a3ab3ceb013756d9a768725d29370b9dfda03788e86dcd39754bd6f4f1b34a80dd0f821cd89566d379df012d377a568a3bac7142ea2fb05db11e11f70d6d998759443e10ef23533d217fe46c75237b761e83c10996821816b8134ad20e1d02266fe97b16f8f0422228cff8cdeec75560aad5ed56683f4f37023b4d310d099d2a296f6f6efc0d27ef1d81b991f3a293644f3597c7147db5f7717f816e8ab7f4e81aaeb3bb83a1b9cc21665cd099a0d4d2ac626196b7838eb03adcf5bbbabd5ebbd736012cc2ad1419fd14f0b8d0b6bab14fb80f2fba1e0010656178237254fb3fc4f5fd673a58266b2eff8ac8bae860b0bd19574075d3a5087c287ca83dc1869e7cda0db613bca7994c2268aa036b9de2ba820371c697bbdcaf62b4baf1d86437db2d85915cd339b376a5a41299775295c142303b2c37a843b3bae9d9c461ae45721f00a76c09375a87505941c37aa3050a95bfe96d2285292a14c120268dfde908c67a74c254d3ce70b271dc0becea42c740cdc58fe5100b3df56ea3f69add7b53cb7776c84ea9b9150ad4f7a8ace7a866d6a475adad40c58eed42f5feaa60f41d7e8646c2680083b97b41282985f51556c6315ffca9123f1c203f6ee110a89fa85f1ace7c47e8e9427b3114a840a7da14d4100a620498288636df5760d92fd9a219c0abd4585e6d9f983f24eda4b57988eedfc32052a1c26205079940f7f668257cfdc9bf3a93a37c6bf6336e646d47e975069f86d51a6e8651e4e7452aaf04582f4b3d1fbfdf06eaa7d5c26da6f4700c554e7d54ef7c72795b1bc698e51533ff6e51a19dcb7d60bc348cbf85466cf79989de129b5e1a49140fbaabede48b8968ee13fec5f61d885bc6d5e76cf42b193ce446ee8fbe8749a0e1d03cec2fd70492b9ba6c90d819873b76f2d6092425359c0ed4c49252856016daf04eb93abdf391c9426c5916838cbeb24be12a8b5bed1884e6ab542faa3cc4262b3fd5aee9b446edc08b1cdb3b3c73589f583b787049982e7e4b8b4d7d605a5fd15fe728096265466cfb370a8f93cea8ff01d9e94ac7bf258211a2a0efb6dd8e57153ef6e2d1b2429b50dea76097a0097294149b792938413c987c8a6546ef3ead4e84bee870618b699b861631e682ab29c175085b73516b933c4bf7ed39a8bb7a1e6e81d8d7e268af4ce2b997de8188ff9085f8b4f09ca74754e525aa06dc5ae319ee548eb77fa244d53f1b2e288c0c7f3e7040841f3f90780d91be7525c59dc00e02a9b0a05b59385f9c2b8bd222f29794ef1b34d5a54453cc0ea2d7abdef129923878a8f5beb458b01c6043ad87fb517c01cb3710c8cb7bd51dafb24d0720982f18d093102a93483b86f8b2db33c632e779b46a5ce0d48e647fa7c0d096211009592761c31287b791787d830374453703943e14ff45036c83cc4c471661245675488a1920c4d217bf6efd3f0a4fca3a6ba8b117182fc70ab2498ed91f4baada18a0a38c887f8515ab9d0bd005636bf24c50a7f979124e699498995684d1b9144cccd1099184c4f89c07a89e427dd6b1d299c3d3df32035fe3b90f2156e322570c8601218a3b14c361673b454136b281f0c3b5e4861638a00d525986000c32be94d856d13df7dbb1e0feccc5ae0cea45affc1028c4a02daecedc0da1d5cc3f70ca7b340787bd7724436f235d689166c139bccd25a9c8836db229c6b5a710ce2f9584c60d97306541a873a0a90bf29ceae496f7f30373fb80784f7b5ef34edd76f34e5874de3f82e2af3c66ede8c916a868dfc49b8e9588ca7cee8f74a8571a2527ab74c722bef40c282f16e5bff309e49fefb97c300439854f7e73831bf860053be47dfc15ff3fa04cc816e50d06b928cdd1f6e6c8e33b6981a255ebde6b8d9fb5908c7b2071e7c43ad5dd0c01bf7482d9eb72f26fba752172f29a1a1143fc0bb249a0ab4578a6c3e9aeb5d15813663383eb94fa933a1e0369424e5a7cd4b44474d5be44fdb633781c881bf2420b26ebdc37834ccd12eb75f21d07eecd1deace6d301d9ac22b83325e194a1f53097f0186cf6911d709c6d5593acaba12a0bdf9211a7affba64d3b68f96d15e1cb009619cadd9636c8de33780bbba8e7980d2f2918babeb04e0d5d539b16f45f6b0331ce875c37e59113bb3f53ac2e921251697f90ed0859247ed194cbcfad7a6b9270ef6073076a5d663f6ff98d87becef4f02a087128043a8452fc5e74ffbe9e06b3f8822c6f60d8cbf8fe6b28807125122b469d419eac8f67fc2c860f046c991d3b82f5ec1f44c8958798a8bd5cb0304a0675e0940e53a94556cd450f1e016b78f3e16aa5e891afe9689b1d82551466dff8b08cb7c88ed3624a7f792467813d861fea8f18f950099fb4027a9f563229eb1c8c82f1a19fd1d145ffa1ff0b37f97a0be8cd081118a84d8ff2d5a969462dc07711882c8647ca244dc438466679ad47eaaff0fb8a242f176269bc8089bbe93ee8637c1880624b1fc4a9884edbde07cb1e0214e23d5ea799c23bf912a66dea4291624e1e2ac92a8eaab2fc701034e43dfb254c4671df4af55bcd00e8bf47e769f737c15d92c0903ca564ffdccc5b2588b7f276b8c55fd19b435c0c50527ec132c5aa3dc5eaf5502695eca6cb6251304c8cdf3e32aa6bd9cb60b71bfe202f5538f22b812a3522a9550210051ae8bc2f3d7bb963b05f1a1b16af49d3c409374646cf7e70bac785d003bc658bc24e3a2b8c71064916875a80e2caab0726dd6a91a8dbf3d3a12966f6e534166b11bb14d24948aafbb17462c53a9a0ca60c9a720c229c8a74614107f9cab842b73c57c25b24e37adfa433bae543e2c9a36d0871da389b892c8aec7a587d22a7cee49c6f972d20a04d827fa510db5e6b1849bb62c5e60ad361a127d72033cd7106b2a2a5099e837ceb95071c65a54b01f68e31e59c490e102106be460ed8ac699696279ce2413213bb412a060ea9a1160fc2e240dfe8b9a9b6061fdb87932f562fbfee4f7075c6dfd4a3e55bbdc85b72c5396c7fbe8f454fd4180a6e4b7dca4ec30b4676461c5f4a576caabf1017dfa2089c44d9ef080b8d8285a57799c4927abec8fe5625e52d76462021d59f482910ac5a80e334645b17e0bbc84d4358c841fd4a7a2a170e5a6b6a3099092ab9b6014b20dba193779011aa91e965e1fb347adc05995b33f8c92b4cf35dc55ec256bb2988b463e07308ad11bc04062ffa033bf0b6543687aa11b0a5fe792a7691b0ecca53ea85a5f0b5a0472cf0862e4b021dc6fae7450b00a5ca972b8213de29ed6077496b2bda0ed95c3da6acea2ff053b92ab311f731de208e6d48479ff318e5fc48b23b12bb04b20d71db802e59334d5376d428babf895435e00153df05af42042a3349d28ec9a1949558b1465fb43fdfcb56052b5e37d22efad1a5b628c24efc70ae9e5d9d103899bea2751340ceba3078f40915d4f636de9312385139dc311d451c08fd0772615590b2527c9a652347cdfd1d7773bea8e627d7d123adda8149d4b5ed8932d0ac6a61cc6a810cc8a974f629632cfd1853bc1bba2c2ec0a329a8d08dad3bb9c549b54a97c59169391d5b14c462ed925a020ff1b0986cbbc4675197b3c757e93805692ab14d34ef9445de767073fb874de8e54aa7a39b47616405bf204d318711ffd0aa729897829d39c1e8c4f0f71d31854559f09480e6814ff42d7968bafcd17f8a3f1c65f5613c23e637369e9ad262e1c352d73e14385822954c27516b803891a94dea4ccf4645062cfb5b376b7d7a365f3e0a690d8fe68338c7d3a7a3159f9bc6279af92d288d8ec0566cab311782cb30e0102e31867b2b5efc3772963b3fb3a10046ce7b684f3e7c8bc7eb744224d375f367396e6f861820071a350fdd63def29fe6379960a0a55c178f6a15015f21c5679e28da0aca934de0f87bcfa424c2b9cf08642559eccba206ecfc09927fbd5e306f02950d28f07ae7c1bf4f68ac070a5027fb34eeed1880f2e6b2b34f746c0a0461fe24ad1e098e1faac681700cbbc44d2cc255d4e8b95ba62e04ed2d9b58c04bc2615c1888bef2558cc11cb5077e6d63ac09b10268be800c8424852c77c563ba217c4fdfb68dcb95dab6467203dafa2fb347205876da3e4e56adab80b81a22bd96eddec99bfc401af92f9b28f7825e7a0b069d262226885a1199d741f6e2ae3bac6cce1250c2816b0c1db08cb5191984a4210c756c0c7e118d7e97f153ec0c9dbfdccfd6f19d34a97c4e5bf041e813b4c396ced36acc777dbc5bacc30c1b3625acf0bff028956c0e7ecc0fbac91380159763c9b8bce7a8018a2dc36ab121dadf830fc6e05f01f0919c91f278773608822c29283ec1b8c869f746c6e3394b824ba1ae42e84c66b69988e7c49a7a68d138c6e111e507a585d67f878587c32d51d7b178cb64e53a3f7c2718097d6a2f7157afb9f7661092482fe0fd3c5bd8fda31088f7f04beb3b07fcbf15e4407eafca18a8050e9522f8a1dba7b3be999d43bda18e18a62b0cfa4e09c8d48c81e2a4c10f9161cb486cd881f923787730153b40bdd4676bf3e5f650b9386fc5898ca52c432975608042c80458dd88d9278ad62a46cb7132a3497837df712cdfb60284b3f1094305d7e06584b48b89b430f0c1c046338812c1f8a8bc4bb743ef4b74db4c55b8ed09e6ff5dd8b3fb7961dd9f510c682280161809e1b8320582b22149250947411db5e3e51ac66df425e8b80ea3c5ee3166f2ea07ce36608009e66c5f4a3a49e29794f234fb8f92eac5dfc94b9ab875363e4b08930bef6b89c6806f2b0c4db3964709da7552c7e8e21647b92e0fa0cc3290dce90e41c15130caf6a796badd91554415050959d712649d7b2b28f398f93c21d1da2626ef2020c7e362504dc0c97e63b767ec49d44b5593e529d9a66b2704c04a06072bb8cc80a79af9405ecc586895880ab04bc8efb2a2886e00850b70c8ce9930e1a4d8040781e2356dd0992cc69a8506d3807958249e5c5d8e11bbb3b801c14545a663e3ff270258cfc1e2e3b7a4b63350db5e83a32b8991f237b455496b8355297fe10c8bb1f6c0927baba46652d1c6e2091ad840d622275b6ff7ecdc06b740d825249301e8c9abcf80091428312a5dde83c18ced861811c7a49bbbc2f33c7a2600045be4d1891fa07c87dd40e511b721792c5e1a8f5f31964275e01c26ed296ed490435117990cd61237da9331b8839d9c68e088172cdee58c53b8063f2b5cad8301a91fd026370a38b48556552a3c3e5f2163dfc97736d7e10d098c633c539d78a23a7165b21c8226b0fff3ee5a287613629cc837adc942584d8e446c578cb936cb5b7e092a635e301fa83c400a32a820b80fb7bf0ad30b23700633492d5d99c2c0f1f9bd037c8fbbeb74504c5ba29e46d5ce1df479b4c6b5c9f99984bf7aa90206369ad562d01543086876f9357a30e144faf718fb335d75b7f2a9f3858bf1b4aa92a979620c4b52ee2c6012d7c0c676d2029493736b832e7a55ef2c108be0c087107af3ef5eb473b58f171b8b358bb52169fb174099959ef3fc94586d953b631b13b5e144fc30a8d6aa35753230941f444c08cacf3293e8c18f4fdffa0416af310d5f672d89541cab533be99d5d4a6a722c549a3148960126868cb8bb51096a2eaea760fbab525ab5f634aad5123016a2d5c202b98ce8e33394bccde595dff54a7a5668fd6b183d318efbd4ea3baa21c0474be243c957b43a3ef1af885ecf56a42ec81983c372cbca21a4d30bc9baf7ff17fd5640aa69058347397402fea30742881b64fa05463cced2b91e7dbb6e2f4ce9295af34387a33aa0491c66254e4ca6f4c18a9830b16f970d93ef531aee83ee0be7e6dbf0453d00e18acc1ab6613ef5a8c7b3b1c8d4d7a35cdfce5ec44ebb33b3d49600708ae3a54ac54339b35d0c8b40686c622ca8eb961aec959502b68b47b27f76ccbd1050366df85c78c9fe075c06e5faa3a2b24d8efae47fd8873c02eea0118b52bae30d3b55fdf11a3e8c4efedad9a8262e156a414d9578c516feb43875a4c2b5817350aee45741630d2556ca3549c33ce91114391fe67389ecf1861f5d3edd6c10540aa2b179b6507d6e860ed1418b233a03165db53283d1ff4ac036fd88c57bb93a9737ca2facc6263576803346e6013970bab8acda6f6d3e7fd7c216d24b5920908209444caa149d6b32b12a8eccc5407da997c295b90b1d8963279f0558b24fab73760880cf205191c8c9d1aa4864383c94157f160ec14acb4127e5d64096fc4df6548e8e4f3dfb4728574f2be730ba252b303aa1092fe338ceba3abd1042a27c412a87258bda23dc5255342f8a40bf99e31f323475e068d2640413e0634d1a211f6fad2df714193ba4a2a18e64287fb6ca9652ed4c03baae81c0f98d6ec3b16302a8c3187afd718eefe97446ac3d2cfbe41667a10cd4f8211b5570b494654366681c61d1506bb4b6a86ca95ecca42cfd6eee9be8768fbc5a91336e8a88d27113343b414e5a8c7dce3c0cc7007e1071b98e1fd4187146d49f56a61af5aa5f872e48a40a1f7969b08e36d299f4e9c74628b52f7386970ffce75fe1ac7b893489bffd398934c8ea443186685fabb323da7e7c9750b7500e65b4430461b7b354004500fdc15cab0527ca7d0b268cea7600f4af49ea096c459b4ae47ecc31be93a19113287aff3b28302b942ec48a083a08c76c91871ccd0818447ad19e8cbcb6908c1c33265083442c52bf2faa28f543822bb1df000bfb1d3095d178497210d30f05f18f104a711c3243a2db103dbd7d630a61e142217440284824e0047c8653c7243df3d600c5a31cf08e99b7d7bdd11a124b49e3e2af966d5c90432b0b18034afc048d6959166050c36a37c984c975f268775abcc8d340c4ce97fa74a8ee63012f28a40015ee085a9d4f5fb1378e8fad699a18ed7c20507987bdcfd20401b543e3e581bf9d988ccd6404ab8ba53afb7c9ce427bcd53b93f50a83401f8eb6323b73d0a61a42e4712256a51b3c9639799f7a03b878a8842f042c3ae3d5a3860a343a7a41349fac042095f7dc934034fbd55765751e29211116d0e1e881ef450cad4f478df965f5012579e4f69e916d6e9dfe782e7750edb26abdc8890c991ed9af6f22280415ac7295e06193d1ee682dc4a5e8c25802d63de343400b87b060268ec071439e5a1a3e2da199367a0a88dc8385ca301d26cd239241e4498f43b1e46cbe27dfd0491d67c28c765dc60ab40de385679677aea155f4316cd1c1d02d3bac35640be75a4f2caf4d0a95fc1b10f8343463ec2b7ce0dcf357e4102a259eb470c51ee3135124c57fdfe943ca4626150e2d68b41068251bb635121af7dacc262f2eeaae886b8a416c141c2a5e83201be77480c6370eca909b3ab768afb3f817c53af992b90c94d267650b642cc0fcba52cfe7adede322a91887ee1ae254afba26556790deb12ec495cc645c7db8710cb7a1854586ded6015d978abec2f9d274dbb4851e1107b2d79b7c5b587b5918dd1acec33b8d0adbccc4885f30e835aa605ba3c96b73a05fe1eed700be4052458048c82f942d6f55fb73573730c827a1946ec806f783ff1e78e7900b6f2e471a832473c8630c40307021d2f8f1c1c40a8982706c27beecedea91791a7bfe3a8aa02fbd41247a53811a219c8e53081cc29b5274c2e9c9b2c53803d00dbbc53e7f8fefab1bf30191ffc67d99d143b853696bb9f6e30902821557c2385cde7fb55e902444e8c9aa2067ec1bcc26712330c8a58fef367a8b1e9bbed914350a71cab1ed0484a172e0218f1f9f2f68642f8d4b5bd76a874095725afad58e412143a18bce6104854c1d4c512b67a59e445f72c78d172e550fbc4ef207e34b3f224c050b0040a07908bce3427786c0324adc73a8b10051261ed5e18e260859f1d5e34df0cc10c93a91ab9445ad05443607562e1202be8ee0e9fd44ce85956d945ce4994e4e183d4a4abd027c30dc4ebbcf2d694a09e558c22d85339a2c526deb30a215b9a97035d1cb567f00c0b63c3678543dfcfc7834eb207a89740ec905531026f85d5e8408f819cd0b1c608fb4df28d63ac32958636b58bc96b432c4059925074c02a0dc93f7f23c9cb531e86c1495159a8a9cd502c544674cf340a515329c2c181f4cc567e0c64a3a91f8c13b134d3fd163486d3eda7531832a54e4e7d5af330f82e1dbfc30674f9744ca2ac7b0a00814246739cd84ec383e11557eb27622c352be5f1a6dc05a474a5d591797873e48981283236f0144138979dbc6a962a1a56a007b0a0a510bbb908cff29f38a0fd5357724c45a399eea1a479c6c2bacb88e2eb2ed31910d30536c8c5eda66bbb788e64640d1826c8f55bd41502ffc0c0bcbbf6070ee0fcc0f667b2bbf51edfe6ecfb0cf1841d536f86c5b436e037604c9ba89d5582c3ec0bddd404e7b3582d96e739ab2855c5c8dd202e5b5638930a4ae459745ebcf7af96d8a4e1ef4a651f114b6e667192d64449c0c3f3b3fe330fe08ed4d96ef76dc903e8f8e62e6efc85abf32b3f64e3bc5bf2bbe2e365b00be597e2844e62adad2d55a9a3468ca983ef970ea62201140feca0cd55cf20c6718e22d08bf4b6a66b8a07c35b8b07062502642ddca8e17b6f08f1bb17a993d533bdfa87a2cd8ca813ec800b18fe50897dd4578cdc999121aa491fb5f7cab3bd55b310a34408a93e749a495fa553cb71c3860615bb6202468d65a77fcf7dce724c2f7fb6c9b76e4a66f5b46cadd2181c4530712de3f4341f6da39975a5c95c7a62c0949d79ec38af9dcef506b2187072c7e4fd2dd908ceaa89cd1696b0a571a514e6df414b67f450218c97ba48c67aedcceafc0f43b3b8486e5de0666783cff30c6fc82652028511c8d70c0ca80bde6ae1fc29c72307eb4f4ff7b083c3bdb17fe4f0a60618fb341ecfa5639d47e0f9a3b286be736609578a15a43b8942f4d22c17890ed8a6eab32183cecd717f6abc72425595c2bc321d906e0dd294aa9e71a737c736b8550fcdeb509032e239fae29503da06337dcf011f0439f4133d9950f1cc3a6d3ab270f25281c1877b69cff9c4b63129240a61feaae60ca0a98acac4a1681e063b55bf628b14d9e742102f2eef54a185562ea15f447fda459255f04abc4af832c81d42d0345634947455cf5ee981aff0ba1233904d0043de5f7ec6aa68d7505b6aac89b560d8089ea2aaea3e4ae5f24e5d653636e3df6b68a8f7ef929ac448c9c2af841376aec4cbdd17f7a9bd2b787c3871b1cfd1da45e3b2ca77255d8eaf3a99aaac4db9a37c95791e4e77764b5d60ae9b8b342e85e61495d698c74e022b95f2dccb7e17622940872983c0d7e96cb7a13d705701191c51d37affad087682e90ce63ae521fc000f79c69399100433a16696958a2b88a772ad18e0b52ba9a6ef3580a1bc7b4f1ecbe28c3c025ac689cb87e11d2d80b1b709d669a44bf4060c8b754cc093b02a848a18a02f9171496891974e88a049409d8b4f32d1e08aa24154396c47e5b11f8d94edbec87176f0c6b127c15c4bbddc67919d77c3ea7ac4a6858fd60ed9c782c940b8fe92d9ba63a633331fd3b0adc24829219c9f9351fb931f90aa19fbf3728c3ced32609cc648b46b857dbd4001dc09c04722b1b14fb21694f875bb2884210bd6fa372af6a616c04c295cfa9af88c597714f654eaa522d4f8d88a117f7b5a717c36debe6df5f91d3af1f58eff35bade5f7292a8d97a0ae9237212f2cb8061da49da794eaa427d31ecb5bcc2bdec9468c1d2118e1694195cc3635229fd4fd4b1efd2b9843d5e1bf137f00111a3fdd3b55654512c5b3aa057437b968ba3cc652ce39c3490e4380530a9ac6a07fc0d081d494084eefd22ac606e4c9101b2fc5734465952d5fbd5944b7a51f5cabffe74f6ac8ce47d0738002bf61a9e2020cde9fcbb442c0033d47a69957a5b748bf381b1596e9b0a64593e057cbe37a4505a62f21d22289b321757e9217eb529f4ce98aaa088d041a157867c83208313c91f7e071e88ff070bd8ad22a2c3526f9286a77e1515cd02a62378a460f4d6b387e08965cb98a6d1cd227bf8056b1f6fa4f554a2868718704a0eb3bfef7cc8b286329624993e12d6900a8ed8d6535ef95652c457386c7f4e14d0e9ec13f73292c3faf4052a31d83a0a0963a2a72f9acc91765838bfc0895bd9d3aac5bd9a38c088e107cf807482559735fbd4b62ac45df18f53d6f37363966c0045a2f28e61989724b88d365d28d67936bec4e0bea554ecd28de02a55ade15bace189797c334fceef94457f17431ca3736a8bbec830f3e5131e07d21f13953bd431c36f9a50b756827470cc7483d6251cfdd45b0a4607746e01e5311b3b6561c6f237e3e17475af00cf53dac567ce989c8ea6fe28367d2917075b8110b8ff40753ad2f2fb5d54fd3fc94b924aa18501e18f98d637444510aa964d45f904c8a3a5ad6b8c2a5ca9a495be41d676b15c6668a9dabd10cbd42eabec08ed92920f393a14427f82a7418bbb66ccee28372ce746a7cb38fbafbaf39e0ea7e0fdfdf2a2793121f5d8877c502dd48b4043eabe631841683059e3eb06c01081692563d555fd29880e61cf060e68bcd8b3b02a0fc20dce8661113f7abddfc1d715e8a25b10c4a21c85bd54e6ba63e6071ed8e70986ed2e2b463a25c97ecc8652349ba4963b252b912e34e58d7cb5fd1574ce8b06c69ca961401f4d3c4ae3244c7234298d9ba50afc0a7622542da325ba823d133ca6d6dde38000ca0a7f32ae6e03305e0cbd1d6f44b8daa0de9b3e08f2312b49fd9061a27a98caf043f2a163cc192c37e046a04b2ecc498d5a0632293031cb6066619aa5be8c56430040af509591245f457c94ec00807ec029f30f45d86005d8572c8310b20500b7c46acd906342ccc61b101096161dd893e8d5a2a2178e85f67b89420ba32a9672bc42c36d8ac5abb396b48f2fbc07aebd87d6c7c2d0ffb6230f69c0c6c753ed15ffdc63c2f67282507be1d80d2fc9da72bb9cd1b31a5e940a6dfa95ea239c83598a83edd782d2d6caee39508cc52417ddf0fd7c997d5668ed8445e363f502e2256b94582fb2d268a3f51fd1a71128d955e18bc198ba0b4a8c65bdf54a1433ff6e92b2b87d444b624ccaad1660fe67fa6dcb5507d06b4744b4192d653e88cb04f62ca03599f363a731a8135b48a5cc89d89740285672590e3d7be99b88280698a668c5fb6455f27235572fa5b1f17158a3910cf1f190e640a5654bce52b4544f15c0ef1f788faabc44fce625fff1495948f54c66ffacb82b55fd131810cb88e0ae2f0f03410296d80c227c98a8de829acbae104fa48f99cd0e723c5f0d2ef473d46fb05d1e84cb9b65e9f3c99f7299f6e180a0f05805fd3cf4d449166a1f8cfe34789139baf4330c0b15ceb9b87eb6e3e16733e3aeef90aad11a38210fa89618369b750cf7150fc481c7c258659af07a826f447cf0e2d9579a0a43b45e5fc75e09966a751f22040d8e00cc8e3454d89b55ad662194c9d8fc686073089f85d4522ceedd5ac70bda383143d10f51c169245fdb8de24f819e29522675a4f683a133ee925a549150e8d1efa3c43f1f0cbab2ff374f940a037a61027759409c15a5035fe966b4bff54aa593c47b6a56060142c030ac93cccee2da54dafef7af4315bea1e0e47b8ee80f3371c21c2113c8c8bae40d1970af1294908fddf1643eaa7062be928b611f95ed63a3b464efbdb7dc5ba694920c57077d0752073d5c14be4b216c387453b2e16c38ddd38508f94361ec7c28ab6840511a7860a0d080a201e54a9ae4acec4dbf1f700e6515e7700e0fdc67bd8220abd308ad876e39dcd7cfb0f3ef86ed5d4308a1aff33e978e6838d8651f30136d1ae24f19c3b41fc1e18ef4e795d9ef7768f9902321eba6443abbe5acccbe0d46b908fa77aadedef0dbeafc71018a5500fa545c88826af4a9b69004c6c18c8d121ca480066058f24409429cba0824a633d7168e20a780821056b0640b3f48726a28a86a0b48a0332b496c61085234c10314ad81be269208a18c23f7b3c76a0fac7575866659a6bde7e30a42dfdc9eeb317f9a86611fbb4db2328e4dffd85d4bac8cffe5f1310c8bd0bb6c3d68ddb256b0bbbe4b2cdc5dc2b21c3a11336eb0f1a487ae50cf052d66b63c3277d67c331406617b7a90b0822596e8e911a28817f473b7b4e57d17a1bd8432e4b81b329448ff3ab345b8c40de1ff708ea5b74417a15aca732372b489c4a4172edf801bb834834b170f645d1ab82fd425d0000474110abb1822b23e9f599ac14e20ebf3d991c3013b346a89b6de59cf5d0bff06512e425b5bee86d3d7c4795b6459b3f6d8e83504096d36884beee3a2cf34eb4568dbd45320010dcec8b1e22f3a19315cea9155c60c7f1925adb78bc2172f069736882ed741d4ea5c869075864f1297a011b2ce787103d3bcf0e8292ddaf0d0386b8fb722a277f05623b9a9a8a8b8f8dae3ad46a3f721473f92a315f9f1472b3c54f6e58f5454aa0dcf486e9b9423397a1595d1c759e5ac5189959519e4ad56566c785634e5e56824a58a7c15a9a222e5488e469d0d0f75d1d5b7529152fee85546a3d1caca6865349a3ee45442f648d16fca5bf1a8f04685f601140af5037d2fd6bb80d5a9f6b6ab8bc3a3478f1e3deebbf85aa23ea3cafb18c5e9030bd5befaabbcca4865f4f1555c0bc00f79f1fe2bbeff28f62f7ef45e4cdd77f18f625ddd81ba50f9f72e4629ff523a1efd2395ce85881cfd6e415dbc0d56f938eb68aacc9c90f8b744ead4bb0a44c8d3628b13cb0331c4e674739d58e6d3e016998647fff56f07aabd6ba28f514a9148f4b544e316947b6d37d7d8a94a536f1ae3be658d46f15f9c55e55dbcffa87b2f86cfaaf2da0ed445576770ec167447d868fac04247af124325ba0ff81de0a1f28e7964798c25c6c7defda3ca3b8bca632ad3c7682a31048c678101e359586000e05948efc1c80fc08b1ff2de90947ff1706eff68f6a2aef698a1188abe17839b759bfed8634fea5e74a486d90f403704002b53767507182e42c4cd7a2cbe77970ed6fbc71e42163a3489694f3c04283ad585fa90816a433770d11e9afadbd06dd111df3fe6e0c3d26bb6f4b8a80f4dad7e9f1b972e1b1556698116ff718c52924831fea3be3cae8fef037efd008dd30796aebbbb7bfab060380a24177d5c71fa7c2fa6c6e9037ebd7e7f07f8d7fbc7aec6bfde46c72ed209c4f4614d25f6e17cd306ae8f6088b2956d6bd76b0bbb08897536a767738210ca18b72791b8d1368af1ba664a393cc525fedeee1d3bf5f908bda1d4114f3571d98b87e7c692b6ac6bd991bdf69acd4973e182bbe1edee0dbdc7058c2deb5afab3b739615d4bff3bd99c8ad89c92c41c2ee9ecc81e9b40b2d9dd0c1ac81ae30ed3bc20ca477089bba53beec42349287ffc619a203661403109d33c15178e504e2da1ec439979b810045ae36acbd90214688d4ea2c714d3d4788411a6794b287b3c82696acca15cb324494e2cc27c396193bc01e5b8f360f8630dded324868938ee8677731b69b3b8f89ac541003b614a646f83b16ec61d21ae6783dddae28e7bdc893bded06143e8dedededeb2611c7c0de320809d3257b58fca530dc3cec3307a20fb9790fdefd4eba976e761e83c0dc303df6af82cef4e93a15906196490c1f7c990614335003140c87b5248938c991f332ed0ac0e08eb2f08ad7f9705dfb22610d6bf0ece1adddf465bdf6f753532a3407b2f167cded5c2aa05282df8c820ad19c81666d3c3827a9f4006b4361420d9424c03697f3fc182f6bb698d682c564f484208406b0fddd0760b6ed7e82716eca116e21fb455c5105c53b35de335916bac530dac59e15c20890421704969b95b5f2ad5cc5c5ccdd6448e5fc32ecc08da8f9a9a1afff6b7d66b56e703077c7e1c8ec3979bdaec5220a5baecd71566e79428e40fb7e276416c4472f997d65e5c4896c3c75b746cc4f2424b7033ee86735c8e37335f2c42d3aa46f9f1e280f0622257b8db5fd31afa66e33fbc21093e336cfe9929b43783ffe02855a7c07f70546bd145740aba882ea253d04434113d86266217f2c0344c9b9a68e4f4600554f768b7d8024cf39ca0bd0ee01cdcf5e0529c3b7df0d0dd3c3c2135e77440eacf0e609806827c5a1f14da5c6ad10179b45836b8e1ccf1847888129b1c4b469e4ba5999997977d40c728a5d7f00aadeb2e2e2ffcdc5c4de370aec677103264480dbce18202c93573b3b81a8bf26b297e23391714487e96d586f2c5d5c4173111a462263e224411a2fc2e3586b4f1cb3744831124f7376d9f89d3f784124308a2f43da184930d48a9857c4f2881a21a7d4fcc000bbabfcdd8d9dddeeebddfcd42fa1920cb9e32c5bbbd6b77b7773b076390fbedcd1813f23defcabc7f6b3d8c09f8de5b4b568899e59adbc690de1adebbfb432fd75ac05e91b2df7737fb410676ff5a970dcbc24ee052b8148e842b2162517027b2aeb8140e0547c2a1e050702680a8432664bf45df5fff3366dcbae00e15585df245cc294fbf05447f2ccf1611eb1529b3adc135fcdfbf55af360aa7f36051e0f1ee3d9920be357c095e93f32cccd6c8c19a76d8550f6805e4b63572b22488901b7d2a2baec04275850fadf28798f97f29c50401a806547055488d3e15155f9882c4e8533df981d6f7c21322587862c415aa275150a7f567861ed08a3fa01763a8220c2318c20839d041821545b81e94154891c416ace0031838e108562881521855547113058b1f40418253ff0ca6b1c1048ad1fe1c6dc25af085220c2d01288b204efd3b3c951552804058893e951531a02af4a9acc8d9818a72767adddd970f9758097f1b0cf4ebb3438d65415e3fd8e9bd187c6921aba6c282e66c7aa70d6a1fee48200655148ea89c84e10a59e38c114dfb2ee664d8b76459dc9450ff190d60534ca9869270be8282d619ea4357a0f5862834b3301c58cbdeeaeab5c23a253688cd1a5febec9fca5134fb851b73359bbdc6bd6f13d510d0f76264b362588f6b15b9b4af61deca512eaeda4aa0af9bd0c78db0972843948001d0f7afdad091b6466f8d7d76419bbeb97d5d91efc9583e9a4f13a9acac401ad5057d2b13a98c9a4b2eb18b57e24eb232dc3d2bc3ad646558e55fab542aea5be32ab2324c73b54087af59995e46b8c43d8517837fa56b273c9825bc12bfd575125e0c7e175d3ff160f8af1638418b6c8d5e3d197e9a56bd127f477115e97f145ab09f5aade2ae9d6b5ea9cbc89512a94c179d647b56c9c2243d4a6a3c5a67789172aa57cabfaff01aa29fffba793496368e7f3f611a2d0bf009d6f33714afc67b32d7f3b79366c2345cfb3c1aa2a7c2fada5250bebeb611640bd55ea564994ac7755be7d2c58cba8d258a55160a5367e8424157c42220589c0a09c9f1e0d1609b12cacff570a8cadd542ea7723a954b556ea7723c94ebb6aadb4fdd80ea2654b7215a37287553d5ada76e3c75dba95baa6e3a94ffd52da7e7a76a405513aada50d5a0d40d45eb7653b555d57caaa6aa5a4fd578aab6b3435a6a2713aad950cda0540d4559bbe1a7e970507644b68257a38facccccd7ac05943f1be2d1348f0e321cca8f658180cf201685daf0fc189447c34ac057a9bd6c533baa61f865fe00b3c6037c8c59658c8f999514f335ccfa353c0d343c0ccc97668da537c0acd2005f805949057802ccfa04f897e7f3f20298a83679cff6b4c905f033cc3a33c3ffaca5ff6ed6ef7ece4a9a3f8059e5005e06940cef326b74f9965965cbc3989504e359667d9627cd5a220db509eef04e9b6000669d01c0aca595597fe55dcc4a5299558ee61065396b9c55be6856d2acbf3b94ffc8d6b08e58191df0f4f860a68f504e006642c0fbe0f58c5ae5c42bf1fbe0d15849bc1ea6b1522aa6b176b89d7834560d5e89dfee731bfe71edd3268b4766d6788059658c594931b37e0ded4303aa4d9610ccacb134ab34c0aca402ccfa0440bdcc3a43bda74d57ea1ac0ac71ce2abb59493febcfd023801e19668d2eb3ca96594930667d161f22f94e9b620e046a539c7931eb4c2900b3961e00b33e696556927431ab54813b9447b34639ab4c9995248240d1a7442b048a30098c09cd506dc250d8509b30a08639626b604f783229a6c1a0d8611a8c07af068f0653f24afc9124b3591f4361a8a1d20e8a87f2102605655aad23b09e17833f011da6ea309f17831f011db6eab09f1783ffea30274878e2c991584294d712ba7eae947572247dfd40a198e3274702a34f4341f1c99148ff8a5ddb7636747b826f0336f2cb5aac0713d2d3260e7a30cc413d16d6c3588ff58f5e1ce44244b6e89881c7fed3471fad3b5b70f89ed58328efc430149798560c45f93121fc188a69d6aac210515c71635f091bde6f58b211ad1814cad8106343d817d6f44e351ead9909b220289f2aa605e57f5ba3624394a78d2fa45ee9d5e869e30b469ecc521b38950c0f2006da7b81b08b0d53a25c2ac56040c692199f95937ea6a92e2f3e04843e69dae326807d9c40b2c7debb1df1b30924fbd830fdcc3d1a48fe1d892a08e87b312e1cc8ddeec11cfcadc903cac502fe6c28deb1ff2c583787c23a83c226e9b0debf0587ebfdaf09e1dbd02e817c4b75839e9f1f1b8a5eff5eaa3544fdb5ab631a65b0aa55b9976224bd8a69fa79f23b3781fd1defd7d229b5a9020ce3efb14a527cec6b8956804dae83cd1aa37d9cf585d6f7d6fce159df13ea2f88fad4e66b98fa3263685d1ceaafade06bd98f085c331501ff6918ff9e961d9c73d3751a26023002af61346eeb62c3b4a96587e8379bd3f5b14ddb6f13c8f6a2c9ed10bd3681685fbd877af51deaffb807ec899ba586816fa361e06b968e95822a0a6bcb8eb539695dcb8ef7d96713880bd99c74fc63949244729d16daa17555426df2550f91e493a09c7a48a2843c87fa348ceb407fe682c482646bfbdeb60807ebfbadd94272c1f1bfde8510c92a148ab215563740d1218ba5e9bdda1e8710b441481c456b0f187d4ec4dcd0989e1854cc4dcc8d9017d4e3053581fdd0ec06fbc17e72c038a415085d80c0e5504ec5e570394da06a2a2de8e6c86ac3428753f268f00ca6ef6113264b6e2061e1caa010324a319e0024190040dfcf7b262c05f43f24d30c1af04b10881703e90a490596aa0265611b6028ff5ce96a9ec21b827e2cb3e4c89d9764f941b6f8e0f47a1f29f49a6f7dc5523af45fd387b578c0ad87c5524c630463c234efb50fc19802a6a88b72e8ae104cd123e88dd0857319b13074bb67ba6e1e0cf7458267b29eaf2228f36f0cb30fe74a77e170e9ba119275e3b96e584a20fb7d675da16d9d5c373f9cfa156433cb88aeb7c633bcbca09d42bbaf07d3fd4afdb0ffbd3f1a32e8722b83f6ee5377518e95446b8be3b5ed392cd5e1022f12897534b62cedb32c7a3468f1cb38914ad29d75b512d3788dc55c0e2ff59a5bf4c1470adddf7e86f6df906387057a7c4048ce113b49544c7e364813754290681fc49f9070b639f8f3ac9366cf6dbe39bc706945e36410b2fef53f6a1e7ceec636df93a9d9af0e7eed99d321029a7d8969b4ef7f9c0e7f6d56a6990e9f2f3e641175e08f6f837d2c752e4e1f5be21237f74291f557574540ad3967647069e6c5c89133a51dd218a3c20d07da04bf9f6fa233216bf7d07ecdc80e973af56274df340ca783730e97ba7a2af5803ec1096f1ae607b2720ee77011a6d1619ab55260d02c6903c9cffd245e599caedad0e863b7a0db6bdb6cc9f1e8f6351cd7cf3d7c1bba5ddd680f34dba7753634eb7a6c149b4b6465aeb7e27314fed86b5fb17f18867d6675bcbcbbbb5fd06b22ef6665de77bf476465de5fefbdefeeeeeede210f38320d3f7f05a2fcd0fe97be4fdb14597264bfdb60d77f372e1f91d0b2766a310c2e31320d5c64a0bd971a8021ca0f55f04587d7e4e17f3d57211f8d94ab901bb85694077ceb21b7858c6cbdf6b89aababf1eb520e870bdd79ad7e206b4aea4a49e188f4bd18d78ac21f4b7d9b31004340f88f3741e548b8139c89c5a1abe4cdda63e36ebcb96471e2157e9af0a00e7dffb0a0ef9bac788e388edf08052d51a58e8802e5a749129e1cc67922e4b3c4486a51409c4860868c75a125f4bd9194a3a238f9e949522467e809139f1d23421805e444498f4e112c38b072404c29569f4153fafdbc17a3caa00f0702d0e741c87d7f2ff441281a41a13d4ff91151a0fc3449c2d3384f847c9618e114a3a238f9e949b2453667a8c76392a3b4f34563c2bebf6ca0694b40c29970241c0967c29de04ef028dc094b8822891552e823020db6a0249794ed961dee6f73ea0e88c51b471215f2659f0449e87b027d2a2252d0f7841349a04efd36a72ae8fe06b6c6d2fd98591a92b5d4451e5967e8bea0620ad4e971379a0548a84f0a0f097487647d2a2e044169f04d1e1c042c4824291ffee37298213e7f7310da7bb1a03fab93f1c51a8db7c5e1ff626c09e45bc982addbd7a865d97b18f6ef9148148b0fb1b89fcd7d18e6d9db60d82eb610c28fddcccadc8010016ed34576e1ee5a96f5e8ee7bd01dbab484b4c734ef5d7ff95b0e65fff5f199aeb7e6e3d2c2ebe2cec68330730db4f74cce6f0614f27d8dcbcb8420f82e7ae2527b8030be5597629af5d8c3999581d6848fe9808095811f2106a185d1cbdad7a2cb61f778a13eb18530d0de4b0bf5ead1006221590b74c87fbd08b2896447f6fc98639f61d78ca7fdd8bdd36b9308f82f12c9a54d0340a9bea023837633812e579a1fc887c4a09c5006b268dbe01e3027626ea26067ab83818284ac91728ffe51d1809a81c9f4fe713aec0f5677134fd6c36e07a34e41e8f3c129fc161c3645e1f4b15b50ef5983ec90104e1f29d4a71296cdf67e518ba20d0305edbd5407a2ee43d85df840d8c7eeb4d83d2a014c024cd33d5a017f3f95e4b261cf9607f067bf833f9b4090f403c99ea7dca101e1d7667cdab4396ddd4a6dda667d6d3e86790983e441b243534d20d96b134955823f025bc50e8a803a8920c80c228560f2829308826413d54ea828823af1f357efb1e1af7b3fd72501ff0ab8a9536100c85d7376bf2c1805f52f2981d618ea0e743de99f9fc143c3f4d79987758d6a987e1e7472fa59e7e686b428c93a4224929428ac47d685b204101074d2f14727bb6953dc6998fe1eba50b462292ce5154b5d2a1f2cf5e34cc87a7558122f46ff76180c9e4ca7ac206bdc49d1feb8d3a6386bdcdfd91f8647833210cfb43d18285b63df8ae1d16cf168fca1300968af0e7dfff10981d69725f8a4a13018300a76378fadfbddb5e0e028140a45f721758aa21bd32cbf26a242f2673a921f4b4208a5cd271e9e895127fec728da2bb02e685dd0bf4547f765c12520843e64b53ccc6c26e08b7f38d0a66fae86b1d798903cb4a94ff05b74f8efefe441f96755fc13e7aa967336877f70b6c62a5142ebe27419f7e8a8523ecce384d665f2b33e5c5ac225d58bc1bf4ab6c636e1c48bc15f170894873635378b94d07eb908ec499b40829cb2c93b3b90fb75551e20d11e4898531f6f0bdad3829d3febc757bef295af7ce52b5ff9ca57bef295afdc95c85aa24a4a14ca7e43611a489fca0b4592b049a472214cf3545844a1fc45287f75940e653f42d9f7c9bafdd0a3b1359240eb8bab3a065a66c49beff57bdddebcfe9e6746c87de8eecea5f720ac0113b01b6afc8e3181052c2b5c826d12396118f8a2200ab1b7c1d7aa4dd9508c525e582772e223088af21c8240d910291b92246e552690fe5956b31585bf0d758c52f646b9639ad23dda2aa6a9a255fb304d5dd93aa6bd84693ad2f510bec8492682d972dad4a936adaa61e0934852768ac22849af89ba7e257eaebb5e897feb7e2c6519d6de1e8142174fb3d77613755cb775a2558ecc9eb117ad98a61f3ecb8dacf1afbfde9aa226356cce3496680ad4faee9944ab0703dfb2f66935345f5b031459af753714fe77383bb4be053f736112b6d232ae8aa1f5751ba2d0122de1993ad37f154941e1ef123675f3318cf5705aa21597e05b0fe1bf173879489e16ee61036d6f30dd9797d2be18bb5c0d37f77ad98677a5b0cf2fc7e0392011d6341c2f17d076e3987e291b84aca9f981cb220f42d6dc4097c3b1d6b26867d0f7d2bd97a0d5188628d0c210a06a4181c14dfc90a24f08f435817242b5e56a2c1722244482fe80d48af2624022ccccccd38ae242128a50fb436b4c6d29116a4b8988c86a41690b8a05c5e77cd58242f953acd0de0b0442d68d7249063108821118689a0ce4e352864518830c8bdc2d336b9aa6adb6da6abb6dbbdb6ada8c6102103a747bfe1bbafd3322af5273a9b4ef61190b0b10b2ff7a0803e9f1f74b6d8a316a9123bf387ae11256a2d667338fc6f6d66b9b8f1da2efc5b0815aef5c0e90c3817f9bdb1340ec504dbb2ea8e3856a737d587a7dd639603a4b10fd5e2c1884d69abbb1bd9be3c9d0251d4fe1ac7267259164e020fd6d264438018a3e22980045e923820972a8962204897f107f4af9f7d263e8ed7bcfa3ecf14aefbdb7edb4c013dae18045757bc30ae07771055957c92ab18448d196452e6a8bdab8a84867502dc81ccff195bac161fe01fb0eb848a35a884371a1275800ad9a38f1e96125bc84793845d9081f611d2ec238723a10b81cac08b77836f72051fe289419e5587890d0901326ab9f254928f71ca18cc37a3f82726a77aabf45a23e795a96cf28840d275eb1f002baa1bda669afa568acd928f6b0bb9e99afcb6ad2b0b945d67337834b391a407a591c97b72eeb6238338369b087655dedb1d123687c9ef13d0b3983c4f1492e5f8a898b13745d127237786e4d48c80c2f6b95828415121138e7eb0a5d9c5127db3378a960880ba23062e5d0ca42939c785d990f8c10c48f0f0a5ed80298f000e8844d9b13e6058961da8b217be2b07e3bf8718a140c3901c93ec8aea2b4e084c4dfe6a4615dd65d41663a6cb6ecc0b0accbe66b2de0638fd3814477e90648f07d58afe9d42744ea6ecc0bf2f253edd1cfdd80b30769133139a204e7b794b9fde81db37e6fb6c6f596c57d8c1f45d7accbe9c868e46ae26baf3d2b72372c497adc0d4bb3c116f6a8a8db9cbae110d9b41b22384aa886855c9c8cc886cd7a719c0e5ac77137b00d831b112238296b3de14814faf43591e4064dece0099da1af891d28110a4393a5588d3ff2ec77b3e7e4f529ff54feb149658ab2093f723a327a5d5ccdf5db6bbb177763ff65d495aa90fe32880fb5de46633ee31ce452bf6f929e16a29b5f21b7673e9fd76eed81e93e5637e374d0e8ce5da20a797dfd76af3333bbc4caf0125bc3e55a37d0de0ce9f021843ca073a9eec20e5ef0827fbdd5f180cff07277ea16b420649abacc0faf87f02db8d66541ee7858977559d65f0f3b1ed6f3af756df1d160ea16b4207c7ef564df565c2dfbd6a8f6dac6d28fd8c3d2fd0bbb30ec8aa1d6c738a743479b63d176ebee7dfab0a7d66253d4d5c875556e5d25d12ccbf6b32c66cc5dcf9dc32b8b5ad4b4e58d1616b118addf2c2c62315e31fb88452cc32af659fc38796011cbb0d8f1c0302c8bd66f1616b1182f2be50410e55ac01f46425cbf3f7485e067ff381dd7dcdfedb49df5c5ea61ebf66b913fce300da743075f0a7c2930bea7700aa7f0ac317a8c36f829dc18135f0cf8be85bcbe463a63a387061e8debe137e0d1e08733500cfb19a6193d7c194ca3f2f0678cbaad935ce25444bfcd365afe8034a5fbb154d4558c72738b35dadcffebaf8c053698b3feea9c7bfbfb3be9eb81ccfefdb55df696d7c6a3d174997fd0ded55deb2385a3fb17772d3a78d06b561b6cb1994204b974fbb1bfba5e47817c36b6c652f80d80f1cae1d487a50c453b72e2e3eeeeeeee9ec54d290b14ed8f99d1ffd21fbb7084f66f4dab087ee0c490052dec36e459f029fc09ae04fadea1782691aa7d9c10a9da24cac9c9c9c981b3fa4f4e9bfc090f867f0a9d2ca4acd8f12c7828a398f027b8159e059f82f2b34781fe131b46f8179c38f8faa7509c50f84f9f18f2a3591bb683030128965a129612a164c55242be4b48375840c80e9347838bf4b013d4a361e4d160ca8f06e73c1a1c376f22b1eb4114d00787803fd0f79ec533710ee53d4122914800203d18e680da2452591c5073402d527140cd19805691ca00b4724094df7f68cb3389e2006a2025e06b50518e13aa36b13c18fece076665c30f65e6a71261c1bb9aa797840f5be83571307d5cb2d855b462a92a5a518ea888480949344456524e10d3542c25f4c334553a5951a0d4124c0887a74906e5889b80a8146d15a64d2e15d108020000c314003030140a08c42281302822d7767d14000c8b9c44724e9909b320878118438c518618620031c0200302240322440100013bbcde27e2566dd18795930d96613cf3ccfe086cc1b64076d1775d7496e12b8bebb1ba30e39337b61b12ba0ba88b55804057ca43f1da77f83a5d22f74c206cb34d43bee498c9f6d17148e89e470745aef449ee5e22d103c16d6e322d064fda90e865b7bc4968b075fbaf6e06450476e1a7344b364f747831c6d934d473bbd852081b01db54dc418445bba63596c08766aa0e6b55b71553768460c9a6a26a0fa639415b83f054686bff5372da2837eda788b131c0dbd32e82d25fd004d139ec474ee79656a0acd1ba73ba84b08d4c7fe0050493e7fb49cf1ebe6f1990d94e555212a796604d62c404feed99f52491d004bd947c7a6d7dadf163522414aada803f74808fa5dae12d12665cae11a72eddf723b13ec57be4b66ff77cca28ada5883144a42be8be81a08a0c830ae0968d8db8d1426c7e58eb409f1f808f017ce39d41a7ad117e637d00cbfd38390ff288e13ac4fb3a0fb21bbf663b12705aa3e5a544a099d5a82d2878773ba6960b7e7af4a2ef44206fe1f2a9f09f4f166d06ed92efa993344efe0a833be0792d303191cb04dc00415343cd07f76bdfc7d38d346f447fc67c23527c7776d37f6f30fc2ce3fb619d8f2d10c8c4ccf5504bc9b62e144ba39c9e1bf56060578788c3ed3580e1d6945a0852b7c957023e9fe1030d5773619c084810a7b924191b0313156d35e55e7f083a21a0b1398e093e446a44cb4a4b40674026a47858cfbb24bcb3295a784e955476bd7f29c8270d5d3c46f0aa55870ae1242e2bebb69e73101e4d7a736a69009a32a5e190f686774a2109d369ec0492828a75bb8cc1a65a47cfdb5072a7517f70a156ff97c9a46d2e85111c03c18fc7905298780964683587b543cb381fda95bcb824081f04d53658b80b4b96b622501a14e01c62b781e9e86150bd7d50ad1f18c40ea56bb9c126dfd8a3e0d7b26c4d73acea79e1170869343d4dc4a55495f455882b137e9f80ee1750835c861a27d2899f400f4700f4e8eb000157d02ce3419cd1756f32f53390c80fd0f966588ebcdabff51b179da1060a770cd5873f572c4e3fcd6d61ad27acbeeea4b55bb0ca0fc956ec7de58e317092f8b87c9b5e6e812e07f8a9750fad3285707f982f77bb1d904b6ce88d2707da6b748d5217e1b86ff4026faf116bc3ebf9540d4873d45ea8e105f645bdca6ae509d7d395d1a4227ac361c396a285fe4efa02c818be6fc9dc91fa2c01084b3eff4a3477f0efab5bbc81d9a1c1d698c18e513bd0310eb12d6039fc2debe7d61adda466b609ce65569dfb76b56ec9c39b9fe8044d607e76d7a85e5ef014aa446503effea15237102246e40a76bf7fec98a6ba4817262363c07609ac94492374fbc34cbc14071c560b492bb2a134f0d577e7280de4ebe48961977cf0e585527605e426a5fe0060b4b7f690c0f5bd12ccddcc460663ac158e7bdaa87e2c0ef5d5c88021d7b0721055dc7502cd4befb0ae24430881e82385e8451a1ed0bb36ef0a78ded1b1530dbbae9271cf870ad236ae25c005c4aa7e256d42eb0d908ce243c77b409093e48ee833b9c0ebee55340a773b67815f9717b1a913e93425a282a696c0f04fec4e94a83de78c6907228b2bb7ba3d3bec42dac7676a2cca1940050e54bf099e726c3330ea39882b3d8195e723458b1f30ddae5da93ce7e48cdf8d8cf575a3013a3935cc78f6ea67c38bc1fd154026b03e46f4447cced10ccc27f130581ca889f917d0ec5f9a176c2a5371d33418d48f9020852c24f85ef7dc6be730b429f6f1365ae39d5fb9e3079ce789a808a4b3847842acde0d2609ed4ddb8e63aae859e9b71eabee391b1dcf4bd95665b316bbe81ec47535b99d8a608cfe5c2be3692d462bb72b2f3b14e8919624d68e270a8600edec85c28c345e1bc462451da47031286f60b5d90593aec03b2ed8dc0d760866706893c4de838de08bec362ae6821d9fa73ab9dd6fe6a40e84cfc2957877ef4107afa1eb314d2c62253b2b8d29cd1e060d511e6d2b467e09d5881231a04eaef82b557631a4b441da82772345490c1c75503d94b615f25807636ed71639d033c89e778ffe3a67fd2d8ac523783130f33eda0d981b0d56cdc160026bf00b5ffe832abd1b98f8e073bf0273e9c898650b1b0bf936e7038c9a8a74bf92378b6b1dbe2420edd9ee7e9b02154bf83241300b8793a0431f54cbdcb458eec82d2782f828f1d8cc1a341e8898acaadb5c34f0850900a08e17d58934abb1761aad6bba98dda7cf1a8992109caa4a4fd43491a7e4e7dafe63b2ca0f937b499586baccca63bbbeeb73e6188900d3e74c1dfa3f207051e3542aa958100f0a9572d7f0566bc5dbce5df4b57729d3669a6a3b145d8872e80d46d05ba7856bd1441e7e9d001a2547948dd78510979f4d943d66952fd8b41708f0e03aa0eb37d21ef934c74a2aa6b5534f699646edd8b16675cd44d1442ab6c98037884eb1ca8f8015446b8d6d06f31aefb930ca689a199464c05978719b37531e180a28e528c9d18f11ebf477717f558396ad3434061f22fbcef269b776fe4747ea18ba1e1f70c3b1c70c478a07d76097835e4487e7adaf1b34b623c03219d27c15ddffdeeace89e501c2368965979be3f618903798d119577d83ced1d7d182482645bd1c28c91e05c9c37562fabf58934619dbe29c2a083394249e258747803b8a69e7817d766dfa5e83cc285c647a119264823c55b11a4b4ed5c3155f526b567fb1cef6a3a85883df34b7ffb9b689a957d4100f977468b7b84cff3fbf152f68126c6853f761029eeb9dad419ac72d97ed09a4650e0c6b0ff282650cecb9e09d238a7ecbc589160b5c49534d4a6d492ccf863afc491af0305634bb0a62af6368821e9e40abbecb1a568460ebe925c2f5ab782a98285f1754a6f574b920f926565b578838e8b57c83c31db3e416fbfa8aa6559b74ffee4b42241841015952a2e1576080b76ec03020bfc037d972d4d72b807c192009f0264a2a52c816d64543a9b781c902a6aed6770b520224ad8ea68577a3f59406dd9b1b5aad4351901f8ed219c4c8444a0ba17ca39c32687c52c1f08e33377f10b8f90bda800b3c0e2193adff2389cb991c2276a956c511cde4a76ac757a57236141df86832fd0fe2cecd0ac47ec8e5bf16e814de88848a627fdca3682dcd7f13951f67fed78036c1794b7535d40bfb2ebe888253e6bdd5dd107ba5119af21007047f3cbcd6f9f3a111e12aa31934d832eb920831366fe1076b64f7d6ec01c9e8b19c2e60647e488146332cabd89ed7ee89f48e552b180881feb7cddf4de3a0808e31d9d46b5c5785866e25dee2850e040d6bb46afb7df4a396523e5bfa073ace3fc4da8bb2fa9fbf9c34b4e8a9ca4820a0d82b1ae1aaee066be8590e1b2cf989e77a47bfb25b583c69f0950e99c5ee9ed655f45e5903c21ef4b83a49d94c1a0ff39104ec81dac4b1647e57ea87d71b5db722d4714942fc16f6cc4c835f2aeedc6d9611e0d3028d432bc5934e5b30c1ca1ba59063472f5011d714cf332a13ae428f1b86b6c74f30d555492ebbff648b6f97741a0ae49947d9fde93264ef3b8b00a5c1e533bc68f8abfac08f43b474a73d74290683cc1ab61b456c526bd19a7027ebb7cb78114fca864a605a5b8a251706f3095bdf936f84684f652e22918528b99b5775fc9a9d1c585aae48ee3aabefe2b0039d1ad3469108aec66298dfe72fd05a859f0a01c5acae705f22d2495cef477e91ac15455b42c4c86478d0791efe5b604c2d39feab9806abd8b0893e663c8acd0f9762c7a80cb78a70467b9672f63da4e556f10375b58f003b382b27d2270b62fee2fd85e0932ce69997802c32394c9c41e7b7866d39286e27c4b2f239d773a10f680cb7f08a1cd62c4ae5aa64ed2ac9ecd592482237c366cbee6ff35f1cbbcf11752875db43552b39adc4a0752d920f8c0e649a6645681fb02c4bad830eb694a50c15c56e56d582e48489a5a80c78915d314dda43ee2d89870cf1e966df9e7a7ce9f277e2938fe8845578f2315687fa3444b06ed7d9152e9ecb066364011131d248a6486ac8a4d44fce7c74ecf12e276c4a0e238c5b3a197b55a6bec4129570a86c4e03c3baa611c765f2f290de122ea0ceb1069333038d173d4f6afc3c94b2b41a3d1e58a307d801fbab6641a15837b7d646503ba8b5b632f8988f62e1dc699935c9bcb2d93ebbe34ff9f941535bb30f65dbd029a364e9aa2a341e075d874586acbbcd2a2cb84a29a4b2d728608c08ac86914e98742fc7ad92a7efab9f164a6f90bc8bb8d382f428551204f21c33e37bbc7a0f5fc2a04d4a42204ad3336b3250662b0c16f6b4b2994fbca4e4311e03d0c21b6225ad4e05966967f461132909ad42dc56e9c6ba8b10358a4a2fd90dfd17e1fb466022e37714da48387cd6e84ef8d18a4250c1519d4f3e5353f4d8b224d6c75067a58bc624eaaa286ff9a44a6c0b8d577c1763a8ccc532d5e59a2fc235fd7c4ff909393c11424a961255d6f902259711289d685120a0b40be34ae05884c60782ba57a13ce8af32b7390f27194c3f27b299d5897b088e4acd0e3e305d43f1ac5a0ce0bfbbcc1992bb2f1fc2c61f9b0fd04a1409e0eda1d0d74a1912bc31610dd96902771859729ca33ed32236cd1204bbe1c171e41abb7129cb8d531f1c4e88595e7452df0dc50377e8a647e8ae060db78a016460648d156fd46ff2909b943dff63408394f9b2943734d97c5ec293608780dcffb51b15cac37df246714e67c9f2da3f45cf194a28e48d5d363b740eaa9162149296596f6045badb3179547a9a3e65f301f5271be3b76c04fc8a361c513096e13e168b0e1d1a74a687e5e8f4ae64837338d5cfb9d1b9c9b9737e0eb31f80e7db8cbe410ed11d67971c8a4756e77672140bc2373484be8dcb7571da10ae81fe66369b6ba160fb82c5b8d21a730e7323a9e1d1ca5d25cdc884168742a78405fc14ad69d695e9c4193d75ebf1c3136f2add2b12c3e4efb1731a00e080b8794f648447790046ad296f2032f374f28bfd211eefc34e5c0154edcc9cf6a0ea834eb42df8fc1315c4a47ce9dc517a75750806551056c4100b4ab55731a150106bec472e8e1284065eb090474a20d291de6b4cfc584fb7802a22ea09198a9b970b167b3e659829fbb86e2f4e47342a7a9c7e87f0e3b1d7f88d3582041f3b842c2a667feb7ff189801af05d3f5463c15d900ff98ac5f5f331a9059e98688ac2595d75c1e841d7488c6f96a9e8a1593dd9faa04556ae2674fbe4833b20cf25d12021e87af5fa0b14a4d8e988dafa5f2339bf7ca439b2b56012b3071a49d4154860ad50efe7bc6c12865abd2726165298b55e5d70a50f3d2c7bde1efaabd7b6845a727d2173af97c9d58ca04e831d16c4992d2496c2db1411ca2fef8e1886e92a146539c7c32e4eb3b1dbc26f870c9e91ae0404e49191271d4d71e7cab1856d3592e70bc11b1c140451213f3a3cdc29f1e221b02be68a641fc2fdef1ea27833c95657d906605ff1c9acea6327df8b67dda81008ac32e4dc9374dd504464cfa0e1a00053e728246512cb0bf28e03f6d4a046ee87a58019c0d3441819bf254a4c6678078313011dd3e9699184dbb59bcf2f36ee55b945262949bcfd67e6205e1b9bd373a4907029fc307bfd245b6d5df287e8a726e6ef07fd95b1f237cd09d989d906003544f48f8a71e9705a1f00ccb395df67f4f33c4cf966f8024b32a12f026635dd38e24bf4b10ccc5613e5018b42394a3651d2b12892a3b4268ac4a2941f295e13c5d25713dd410d8898d02bd3fca84cd8020655eb7cf888e724d9ebcb0edbb8a40bdb1288b7f0f2ff5d108c4b7289c8964cb799a11fd4e95c32f608d321f5fd78264b80a1a94db38280c57e42d8490e7cc1b1d80811dc3bbc9fe22eba1f2b9b182be5477001dc657ec0f9fb0da86c959fcd4c1f8aa05a11b584bb94920f802da1084f4260d3904620fe0480d0c8a05e194685e633a6e15a0b21bebc1fc95ca0b940409b61077fc4e68ffbb5c2c61334da673e82d88f43b9648726934327d97c7b06bd6347729ebc3dcc23cfe4fa9622bd1244a41e226a1511c11b91010575e2fa0a07718918e26157e1bd1716f526b405625d0eb56b4290f361110a2c888cd662141306f9db01559a8226d5b7692a2e86169f2969c0292100bd65c2f09a3985e89dd55f5bf34752f08ac93f3cfe612ca519e7e6a108b140010f0841182a343d6f2dc99e58a5ba8374ea49e34aeba1a6c76028dd1024cad11df7803e94d46d2151023c47391e4054bc24772cd0df7270788a5017155eab68cd28309aa05a211a825e2d4d9872b890ed34956654219977838e53cf36ebb61ccabc44cd0405dd4737b8191059b550c064e35a2c6480499038d9ea2fc0f51c8b28fe6bdd039cb458be7a0e8bc4e472337c539ecaa4018a8e26ad01e34a25243c3732d4ee48257aeff53fe35f4253faa699f36847421499083f908a9cacc47853389b0ed09d8dd09c67e000f65bfaf80b7a0d44d8653b87a785ce3effa000c712243b2cf06b11be9f61a1b1c14d04bb566297069c72196a7183aff7f448b0cb7d11ecb7c838855842ace61d99996723f4eae14b08c8fdb7cf315a660d286a33e78c29ad8e60af08a84158048d797e411f67d927c977e15ac9c484d8a9cd476ff263e277e40bdca79a0f60a2469e101af43964170cf00bc0ece98386a3ad3ec1d234061d5510f75772ba3d49165058c84fed92c1630f0077ebabe722c9736c290e7095c42c76601fac3a619d4f245fad8f5cc4993ad376bb7348f5a7b258cd45e6319188e4f7542837b11b2409b1c277edc476cb1d577682ff73f751397a1d4389be1e3821c0868d9b9b395afefa8c1397a020e4715e38f80c7f6b7b57182fed4773fdf7acb64ea78de7c7e968afd7a5598081160eca79c6a34bfdfc69dcc6a94cc5fd097b1dfe81002733dd3e065ee59a23631e91d5f1bb0fa1f1cca61f6696648c202f82005903db0d8ac0708b12a3c0b395245288618b648ed8ee4d172d50b18c7b57ff44d9b71278d67c40f36232439d4d2133ae03c9e220ff32742a61a175e8e4b6be72edadd432048d118a39331e25bf3b32f70d98311a0b80856a58e01b26e8127e3c2afd04b92c7b19e571d7273a8d081e4c1fa190164201380c70de4e282240b93c1dd13a8773371c499977ca733fc2598d0ba12b37202aec8833a8fa529326eb776c1ea187ff5679bfae155a12ad692872f88cf9ddad49311755fc69b28c9427170da32632e0ecdb16e16684d902e09ed2be0bf1b38a3acd7824a9688fd9c20e4c3e083f8b8f66ee67ad48e53b20a0e1ce1a08d60da398d71c76ce1fe057a246ef60e42ae3e2fdf6640ea1a769c75ccf11e5eec0883121c6688f2482655a94091aba059a8e7fe5dc9d66db4508b0164ddce39ee9bcc0765e216f057a5e22b8653b28fcc71a141c4715bf4b62a8c78803e33670a633796e8576bd4361ed1a4b5e4b6a7d275e5780ea126267955e63dd2b17448ae716190c568256ab982bf878a425e1d80005b871b036cdb65d40f2bfd3e51d0304a04b3d7f0a64f78af8a21ace6ce7093a6fe91a8ab139178a7b0219699f9ae5278bb08959b446ca6699fbb0aaa618476247db5b0f27da6fc588a3854f4b6ef3b0aa6559a17356a4211d265292be007f7bc415e8af3579247480f450398ef97c583f75b6767a3c8030023d2de42dbeb4d5d8db9659b1f4df1f83a70a4709db69318dcbde2865b12638649e082d0fb0c617181dece8d07a75e7a022850758067b93bb3d8fe3b92530168e22eef0d435055d8479af4da65dcacd10603deef93363e41942369f0f6333a3db3f18ff777487eaf59ef48356eb2048bfdf53944540cfa2b9250cd820cd1d3bda5ffc582c5ca458b8ab1442ee79b7a7bd6361a64f84062703331c2de2abbdb4d7323496b02b0eb12c99db80695af102fca925c90c39ceb6d7b989ba16da9b857619e607504e5e5ec178fbadeb8ab942c1f03a6f07e007c7783dbcd0b75d079bfa755376b43b69471b3b136644b3a05eb790f5a82a2034f6f5dcfd9875f5fab30ea0eb2d195900987afd0d9c1ddb2edd4bb6c5918c674eb542255b978282f102e5f51738f5bb4fba2a8051fa7f58dccb9d851f2db767101ed77acf1029c36c08d1732b412d10debaca16e7bf01b43a0b1cc4c343c5e519a9eb3df58cf1acb550648a40c0b7a130d5644c2f9579365b91d9b0ebebc7111f309d5fac64f949e0ce54c763de6bee1651248fa99f9c1b80615cff730270019c431d3b4764746298d4ef35e0da843062b3e436b0d6c3ac56cebcf5bf8f38fc0400f92fb24affd37b261cbfb7213a0654ec7b88daa45752c6047c5bb117f677278607a90fbf9845d85465b2f8afab94d871c7f81990b9420af3bb7dd41df215a2ac60637edb18c184b832c38e7cd82c4d979524c7df91c58bcdbbc2c88a86028a771af29117a07d584495017d59a1cffc1538149a26c010238394ca6376e2a0f513c1719cf387d70e8605abd5dcc6def3f421a632fd6dc944a699d04d073676a0d030ba1c62ad9c3376f70d7596735a895543e7aa17aa5a6b9e7fc4e153f2dedff5b80109fd1de9bd77f3cb4c0ff992e121ed80d0357d3b7889a35c3ed492c05de3810e1049a1c05d7740c7884529f045d4e11c209242015db3fdd672301878c4ed136c019008e40f1744ef3bbd5a6fe6f94c75907c399268940570dd0339441c6503bbae030e246ecb0aec9a87728c184a0309b10e5a569f2d977ce092404b489d86a7213415f656ae23a42aac046ed1d289aab88e9f288b8e2186297a0c015b52f1b8f1e3c2d249d3edc62846e240fbc6f22a9d6ae7d2035ecf610e118d12a9d348e6dd6503bbe6e11c455ccbd1470e2242d180e63a3ddf4f8ca507c610afdfd73292e31c0d3b1a8c48ca576ef22e09b8d114fe42e43194eb7dae4d64f2092b220e64e16656e8c9aaf371f10d7af4c186e6b45588445ceabbd37cd8d4fdfba977af1ca6e21457d8bc091f1f0f2eb19e6a2d68a203580dacd3c7dd23b4c9bf854eb5666e81fc521685c53f23aa3b6d556f239e1d92837eae1aa32736d6690e1845e890ffe45db31fec4e2042dd746fa051d44040884cf467de2ffb57c0e553e4c01b85c5a380f8685246f27ae7926801f687d437cdbdd4931fba88f99a47d22cd6622a95c1f528e0c03ab71e9f7983d81270de32c274ab32421b9378369cc7477a999beb906aa1b1d16b4e782b75b2daf5cc0a84c6d9ab273cb0ba27286b5c92c6de8bccb85905ac1171c0dbf1829d3020161a3b177a5e06d10601fbec2ae4bce51d696e1a5ab74e89c33177ba04f0e0138c32706dcaa59a57a566496f3e8e35bdb5a5a76637df039d3604b21599aefa523b117c012ff267c8995feb3181a161e730efe741652ef6f65efb02069d67e974822185d9647a5c846dfe067a53292819bf0f540e79287f0cdaa31e508d2107c3d23f13471dea65b7ceb3f8f7f825c3bb1f1030256eedf5907abf8078bca086ee5dd854f812a695e02e90a5485006ac2872a9d1622ae2beafddde60293cd12913431a01a970551cf5433252e1aadf74dfde3adadbab9f9eb6ee2626e5c5362673b12627cb7e28b4b13ea1f9b77d7c892b7be5b858af13e00f541a7676871b7d7bf81be100998cab4cc1ad9cb5e4c62089028e23bf400e55430998cafe608b34923aa11e8832fea04edd69ef54deaddd095f065c4fb33e6c7d776217eff4b7364fab12309c037d4e05f71e82dd847722caeaad7f8a15be8cf6c4cb58761fe19d845dfd3b71f648a8133878cb8a7d7e7d68d6de109495d14027020598c5a0d83a3a48749744a3cd810857b93fd53c89a436162b75141a167bf66c116b4d948dd83e86dbcaa95d58a7b586855128ccac94db05468c86e6a9b85b729c79bf3c8cc8158752ee5ac3e6a519de91ddf33c130e98270948f9edaada2ed14232bf76ada48e8a2f7f9446efb34406e88ac73c777e05ae9b24c5b515c67a89cda2a6ccd95c05017aa0bea56ae7027431c259f6458acfd437288abe0ee306aa2c3a732ae50fcd9cad2149c07005d8030491515409bca5a878ed4f89f3e7664d531c499d4684efa68ead45eff65c9bfe9a825c46d0afcb2db26957bde64b5261b4ac31b8a1478b366befcfff942f8bb2d8d7d4bb8887d222e8ef97dab9e2b952fdca0b5d056be75107a0565e5a049a90299d7c7cd9a2d213b80c4bd9032249ac009e3c8fda2c84594d89aa9550fbee505318204ce07ff1e5191c3cbdf9e928f2d79076a913f29cdb65c9684bcd4a7a6a2fe77844818a645214fa2ca01278069493cdb2be9d6c806b0579515e2d7133d93b70046dd5419f4e1034bec38880fb2688572bc45b3b8d4e2c4d97db465b96787df85720fb5419e5cd27de283edcc0f38137a8a88d69973c777cf05d8d03a0e21b5647c427138addc885c9f0a25a294fd6ae4729f648057c7b4578482bd0e4e4a32f191d7725315b7cccf219bdaea79d9b34969ebe5560d541099d6d0aaec658bb22b11d5266876d026b93b5970d42cc24431f02f47d80da1544b4e639d092cbd38a976b88b81fb5e18a72e874305c8131bb8f6a6c289425fafb5f8c3e4000dda0ad0993d57a5d4c1696440becdeb6560a33cc3f39ad68dd3325eeee258b0b6736280adadfdf8a579264a1fe4896974bd7f72d0de52d62cc783efaa8faff36524d7dfa3cb2729681c86631d7e46b5fee049b0be04bfef9782147956f52d084a81e3618fc463855e5901be6d9c36a653d237a93c5da4ff2df8c90090f84bab1b9422158e4d84af3a2e8b2c5b4cb0f4790e706d7a752e2e00db84961870bafe8e4550a4ecb88291ef6d8d9dca6854f8a7045542bcad3cdc28ea10c5746da3859c3cf05e2efc23cbb1a319a57eaef80b687724f69dd6b0632d6411b15b66bf51fc46692d842b9f02b7f069d95fae66e9d59c3deaab93690ce83dfb38584fc93f4ad982329b9605a49e8b3e753669ea86a2d2de49ce3c21d827b932b91cc9db759d7f0f452f35786035f314bca0eb5f87ad551644eac5b0e3ed4b080913d6a343838274a3fb58b8770bb358fd63f1af9751839e6abc61e0e0c20052fde2a73fa04663f876012849e31420b73e2da1053ecd0894e7ad966ec911a9f3e49d990b3e3105e84af9089d8ee8fa3e35352c4655ab4d32302707304cdb4b786f996eeb944081235be49376f6840934532ae1b3eb525d728055481fe397553fdd4c1ae551c61a7f2dac36bcd832df6a4409ccd1542ede1e6935d2248ae1159306b20b0465339cf4f61dabba66a3974d2b56a26ca836716177551663245202605a87afd1c2b267e1e44ecb74dc781e13d8bcd9b2d6de1fc308b08be396859ae5a368b046712f3168b4d0f89fc36cbc9be961a30bb3480d732c15e4008816267f5717c01220fa213fa873b719ac66c68d6ee4f9185569287f06f826601c8d0d8b85183e09620148f8e21232a4313c9a701eb5c69cf9a849dfdacf6bc5a4df8bae5d3ea58f31fa30bd289a47d7cb61bf1b7715de588f2495c040d96b89d0ffc2699a0e211fc5147f0f2f99e06a3c8fe39b5c851df3c1184d961d1c1dc21ef97314214364b46ca54f64738f5abd29bd823178b680dc6ca0cce3029192592fbcdd74869ce413d0ddd1a4408e8d5f9ce50220912131d34654916df3e4a8ddafe6ebd69f7bc3a5adc85c01629189c92b394b35890083a9dd14ce7ae857bcdcc07b8fd837cd6b9d832fa0a777e0316a2896fe803a2fae367505ced0a93d0825e02b3a0d5b16718365b652869f555144b186ddaf84ed4f2398de40720792b5c2c0e975546ea08e0c4d51561e35a275955f2e44c153ca5f37057379352d252c47ab64bacfad070c5a60dc20f2c3d616d944a900cf55dd3239bba2b074d4b779d655574e66368136248cea26d1f3ad5d0c862c45fd1a12e7a30afaca7f22fe97f354d98f2bfd751cf8dab837fde544123fc62dc73ddd5f8f58fbe67fda5394a4d09c635e611c578dc20eed734805631ad8d195fe7e3b9f654cd45dc0a0f0a4cfe5331a9a984e53ce8cdc14d2eb014e52b6f6ef436d1407bee904e0930d022344cec22291b0c75e727a2ecaa5fd28c78c382ae7dfe6d76f6f24be2c787f8b0c297f00ec3f1a39274562b8c54531df93144acdb9a35e91dab9dfbd65d160ec8b24ddd693c0b8a8abb2b4d462e5bed14d6730282d5b3b30f27fb2f645cb135f7e8de5dba52ffb2442a1a3723c82f7af087a227187b6203b3bf204d6c585602a736d99c6e0d9a12dee9b5b810f36e4a044a35036f6a37a32dd99df16858a6c61c3538bceff7061ea3b1b715527632c94ad0ba392c00d440981f5f03e2282a3a48f400d4f73eedf49682c6c2119d1a183fa4b1ff523d08439706bd28cffce9202c8d7bd0c645905b696af3d866d470e2de0e9ae36cb9d482fe0097bf0fff67aa2860b26bc6862ac45623e097c08db8436685eb9d9cf60bde51f5dfaf694912a17ccf8b5d5626a165d060e969fa293283fa3833651ea06e9da9001d092905c6d17daec3fa5e9f9b3c11b49ebb89450c4bc591490476158c76ce4767f7441258d818777c05c6d86b461de777fb67408cbd28e5ee92b44cf6e35e343f2590510fa25a5a7c28aa72ea44694849f14526a0a5aaaca2b3cebb5ee67944967a512191b5e5362406ae706b45f6e2252246b98f200bc007c29d340acc1910945471450345729c941b77260d34dbb63938e8a20d86355b44f69d729c2d913e1f03ee1b7372c45e47c98a3547d851cfe313008fd10e3dd782690004117dc81c073a17e5d9a29b69aea2e88a9761a55565a5a624a71c7d2548ad3c9271a28556bee631c74bc21023d220bd72234d41739a0375978069df612d66d85105e9b8c248c1ac18add7b58a16f9c5b8920b6854823349a5db0d3eaaee169a6e2559557e649387583b2541f22db2a7cb089bd991c63493cc90bac4a849d76b5ee6fe5508cc50ee018f288456ecdfadbaf0f14803ddbbec400cdc6d827b82317653d506ac8558d54572ee2b128fd14d8fe43f7ff7fa8b5ee252088f8ae0a9c6cb6917681ef7a0598876fe2a28342b9b8c098c1e6ece29bacde31da176a8c99d807ef1dccb908a761af0ee0462f743702780b0558042027a66ca6c657fe80de9e509d4a57a7f27f236bb34a92f0cae46c7991c6332c8220502ea4b0964a7b78c9ba11700de1e64dfb5fc3e3d61d4442bc1543f5d2be7c72f62d04b0d8a96013e34e328cc6399c7e1034bbd504f27e04bbba1248b21fd538859f4872745f79181ad4130738103d520859a7ac38dc939be52594c5fd7bdc5393099a2b9bcc6b47d0216ddf725d3bf53bc6e67edc090c3b8155ca2f15ede8ba7372c5849f6e0d1389e61eb4a26ae6551488aef9f5bbb98ea50576f4eeba28f03e676c015a9062629ca389675d641391d70075f213699e80dfc8c297f8a6695e2d96df8758c785099c3e80c7ed05bd3e472b12566295c67ac3cf3bece93a4c3cc04f4fed55f5f36053c3f1194b8b6dfc43613bf26c971350aadce185d2deb0eb385b84f116956bd5c2fcc5bb9bc967543afd7c691974ec94c0cecd10d5bd46fe7fb5791c57dd3d006d7c4088025df82eb5b3c127bf11c956302b7be89208fceae7922ec7fde528231289d49576797f53b9d28a76cd251f46b046bbd973672d80716525c66c32e0746cbacf3841570228878780d18077e083066ca69ac0e6930820ee752f13a04282401851ba8401bbeeffca78d51f72342fdf4624330bf0cfedc83224ac30dd49e7c321561d9ab4c53ef2a7a865e7e4d77338825d405ff8f499450b5894430e2e88abbf15060e6f4567704db1010e7dd789aed46c14b92507efed873bff39ee142ac853cbc3dfc58c2fa91c33f73a3e1a92628703a03850fab36683bdba9c143a4918127cfeed122ddb5cbbaecd69faec8ab8ca93a657c099b8fa560ab16d6db85e61a266ab86dded47f6a3a921f458e70243f8c0fe13327069956e9163248496e1d6a633af210d5d4745358069942409350c466aecf138809741cac78c1e759de049df5394c09b73ce258091541e75999ed7e1754564fccbd3207fb8630f951077f880e9135b3c5832f09551b4c7222149d85305e4efe8d21572f067a82218582af1e8913f2346109cc5b4acbcc55ad39925c462ec001ed1d4ae87420c597cd9e1b55689f86f8a3ea538dde66d01bd8e863cd110e0c0361a8a65243fe03b55b2a14c30e1dc14c883a7a2c43e25fd9255beb4879bc8c13bedf2161197422dd892494203c0064b033fcd3cacdb8c2bd0641037d8416fa22684ae8297323fa0946a96a667c0ad8ac778c1b53e4ead7ee8d2a3a469f42c28b13b223132777d13ef404bb0b5e93507ad226352fccf099246301c0e006ab8bc0b3006fa345adecceea273274555f95448afe627c625fffc0fbe5532fc389d7e681d889016640f538067d9c21cf1edd90a43d622283b3dc3a1632cb49d45017f77d7eff3f5ab8bdcf332f802472a7389036394ea4b8679d9101fa37ca4c2f549d95f0c189ab36f923f3493328a8d68bd91d3786e9ff46da6749fe14761ab364a0a6ad721d76fe98b9019404726dbda8e49e4e98edebcd9a04b50c13523c09480e0acf9cc1752e3d53cfc391d55effc09635b514b85ae7bcbd87ed6cd466785e2cecd409814c5bead400ff2a8912f01ab4345d1c5143e94bb05f18d6af669137b2090a8265f976d414e9757ce0505d34416585ca730778f8926ed398059a70d494b4a51f5082b59f6c123e6f35d801245eb362d46dc7e01241848d4ecbae3fcd815393d82c8cc7f6daa8b14e8a8d389e5efbdde28460a9e2f3839dd552acb9d1e57999a01d16ba4722f9e6ba22b431f58b8be1b8363b2e73a3ac59343cd45412cc6c3a5f58d3a1ad9e2bf8211d644e3ba3707b90b5a098f26b95266a174ee28dc953e220a2b770667ee8352706b517b7631b7fadbef2d645a912fd938b812cc79d39e4d16c32280fdd18213da29ac68ad45dfed573996b4051d8954130d8045277b8904eca4dbd13a971fed51d99eb919337fcf8dd30061f6d10c76ee35d52f2b9fe724ced64e234fbac25d221f11b2e07ef6321be285ccaa12553dd86329c505c58fcc4897b0939b8d8f680bef62029b74b4b8c47de430c7ea54d4cdf3e1101c111414096c4adcb164baf82799f3dff7a788ff621bd573df860535c285ddcda60ca4d4753d0e0d9a684322c2c5bab4d475d03d4ff7bcbb065d23ee4701c0547f3782ffa201b0804590a6403155be871f9f21415f8b4ae019726c11ae5b7f21d24e02ade216858e90e89aac487a41aac4c5d77c864a217b00d8d2b4981012d67092c10f83730fc72fc80fbb7092f324912ca77ac4219469b3bd6897fa0609fb582c888d1882a6ffab5d852bad1bd8b140c2ac78112e93a4809a2623620410726cbaf4ecd3ada59f2b0796e497ec2a9939530ba6a1475471179e2833481271d38f30b59082a2d3fc944187a472b96cb2e27b91f2822a3b266c21b480bedabdaad7abf82761ee7a0283004649090390818c6b74253c92689067729e7b7fb5204c1ccfc61ff25daf37ef7447d8e43307ef730489d5c47faa516306855925ff5047c3cd2d8d120c811194a51618e83406bea8911ccbb099f0a50d22275b84d84f5424fbd998c32908a9d571eb0b1e841c1da67cb2eadb57831dbb8af4c32caaf6d8dddfd2b164c72767813d5b4eff1f842a8d8b626c5f9daaf3e1bbb11d0537adb89fd0c711e3a55345b4d33f44b68bbdf2a5579f53439daefdf4de59e2df739b530090cfb7906b7a693a24cd519ac3cea7fc67988d44eb69f45dc70ca337ad5c1cf21ba7b2e9a37d974896c53a01e53f05a8da87047f056153acb01ff570ebfb304684ac2a0275358b7f4d63cf07fd1fd0dcc596965b25c9fe191c3348ac114a10d98325310ca6cdbc2c56801e867eb97fc1a52a316bef89982b4bdfc7f25afd2a929b4bc3ecaaaae517fa3259518003c690a59c76208d25d1cd82d602f69e94bdaf0788bc1af65b899547a825a73d22af93d5155959f5d8de4820bc1621951a9de8b66626333ceaae83f2304a45c1af534951bb4eb35923010ce2676a15f12145a2072583e2b10eb20360eccb9f8f6935b7c58b27d269a4cae724013031abb9c7127960a7faab6fc469c56143e6759b00fe00a9b0f0159badf5c7cc13bb1cd28368aa3cb5cd96237c8719b8e9a2ed1ca6e8dbd852e732622b01e277ec0aee038a4c870a24f880ca71af767027cd22f1dc927a2caebcbf5d9162aa246c7b18f9470af8ee0442b5741c3bb84124d9185aa10b7ab4bfdee01373fb4fbbb13fd8472b721d64ac069ac0d551a005e59dca20b0d78ab8fe4c2f427566fac27052f4fcf8b58c21b78428e0012ad019a2679cff0ae41c91b8066a2ec680c2e550265d4afc8b2e1d28cc7a165f147038e64583cdbe2ac7a3f51790cc0e10b4f5b9bccbe1f7e34d0edcc60d36bd62dff06cc9ee2041e4d5e28d01b328bb7af50e66f25c2e10e9f1e097f4989903f2eddc479048f04d190cd762afa540fa62f885a7f130195ce114b8e3a2c92947de8761a8b7e7206b0a238477eadc2b94caf6b6ee7e52a72f35a786b11772f407bbaa82fb41e5b85676d2f7e31766e1b783eb580c408fb06cedcc5861032e3f587d30d34f066dd76db3576f104894ae8d752587bafe458518426fe03249992028edcadb945d2f2661df866ee7f9aeb79b26c968b497a636fe01409d65dd6989818baa7b9f10e65142448ff04d7a8964ef881a5d6c334a31fb122b92098c3ae636e6d75b539c94f385190ea68898c962b1e89ddd033cb61f261fe84ca3f259276ad3aba38d8836aafd8a541c33a5ef2f1c309a41ed5aa01a6de8ccd0867fd78683d2b6a4a1953bdf84cdb99a951929f28fbc170958b3a70781d872f7849c58f336cd56e0b576b1acac0a3f984704daac08054192fdb4e1df367d228ee2b8392b5cb065f1121425f17695bad16352f6cb88f28581cd0eaa8d76b99046f63ef2da9a00ef8a73fb9c4b0f5d9119d8355265e6f050518294b23ab9f65df3baf627edd440071646fc3b04f2f767fb2e9c5524c5a50089d2acefbb70a0d22dbbd7cc3899b9b569eda950aabcd9726eb4c2d90442e69acb876d5a4805f17d2e96bd8fb4490a77c64ec350e81d4aebc794c83ea7f66c74ad6c6f17faf73c01e8a2d722319c292be637fbd3e4f1764a42928df5bb23a4da882015d995265719fd7bcd453bc5322c8bb102e1464c47bd531ad0e0524def4b83ed8eebe71a9d2d385d3110b5456bf8372a9aeb8e5ace575b46c8be3574db3dd7a647448685a89855ad5e6171e005bdd3efe5c983f6e367e23c55a899e4165107de9c30fd35b73d1700c7e182b911f75b858651f013b8570696423174380215213259908315ad497f13d9b165f9a4c4f341707caad3caa4c49c921c59b8219df41f666dc0d3e752dd34112498f070a86ce04314af4f3b1352b5281500ba77bc30ebf9c7fa45bb701695b8f9f2e0b13cb6169f6ec6758df6961a7a53dba655e1a53fc3168025a8f6e401fa60505762968f2b0e01ceb03348ee91b0247d8f33a2cda46751a6c3cd3dcd2115a3464feeff63b8c9bfbaa1e2bc13c5662c95c23d73542f87601d9ac46f6f39db6a9155395e6dff7bb1837f31821f46e990d73ad5b54a5a9766b2cd6abd19600b04815d950beee2593d590fdbed32ab5d25425fc3b7e0703376da41452dab1058e34f7635cfda382c2aa461e26ef7dc07db763c932be26dfe288d6a4aa83d665f0ef7ede851f9884f5431cee20a419ecab12ab91084e48c20507285101953a5c3719f4d6866420741d84d87901565ac779023e3e5391df88b6afccfe7bcebbe086b9adeb6b6ba363e8aadb633c374c9e3e35501935084e4ebe5012022e4b40eda83006f4753b992ce6f2f78da6682b0a28e5bfe7bc8b63407704dc0d84ca69a021bb1a041e830810c3a73a92354feb9bc430a899014cbc915610721f1d9b92594c4fd58274a0a1e970d2540b896ef8aa71e310e26b661bbbe7597288874d4ad9491e2f04f17a923f2a933099ab2d39985c2921541f977a336552e43cfab39242abd72af8f4890e90ef4080dc59099c7882fdf9c1c907fbef6ba854d616a20c5eb807410a5760f121cf4f86308fd15b9cda74c8f0a6757b8f75e3fa18dc944bb0371eebd5cca1a8d093917a89df544a7cf0424c40af83e23758c328f2a172a38cd40bf2579aea7aa890da49c3feaff55882173ea6db9180b73559bca8f748904a2b27a19e8ec24e87de92941581a3c5b08f57350e33fe350aa78dd4d76a5facb8e1c2b11f21f1ad409295720da9b6b00269482b71aac99f032c086491ac75b8868c9101446f3996e109985becb5065b626644f7345c681426d817a55388bf900619055ac1d6621f066889f3e0fac51b6d3f27b28f4e0b634fed1ac7881fd3a24f0ba570d549cdb75b3118fc35fb93c6157b11e6b0918269f7e2da582731be3488992f8dcf2501d1ef7cf4d363c7df8976bdd0daaf82561e524420645bc096a41d72cf9066c712b0c05fd2d6042b35a0d919a34270357382773d4d568c2b3e25389c7b58829818b56d0483d0033add26b701e2eca20d60cbff7126516c0ed43e4647ef0ef665c87af847b934dcb2390684e1491a5459060ef369fdcbff3a8843b1de336b0db06963a503d2a519fd805805f8379b5315956b7eb33f412f53cb363d75266bf2e5c9de55e0161a1fdaff7771b13313d8486fb44eb7260a25fb5c724cebfc1536f4628b488fbd0d36bfe821e8c5ef0dadc2c7a6bda3c345a9bee2014f46e0e482c2abab590747949f48fedfe211173c3ac74dd014aec6bebd84e0599fb13b08e1e13602151e08cf7b6da23729193addd042e357afc82979614da381a95a4e85f6bff7b40f9c3ae9c584097ddb40d544a0878543b11261f8cefcd4611b5b4769556944f42da51307dafd239106401461931fe18742ab517988d6fa284cc1af287b572420684d89c3095c65ffc1fe03a122671d1ea7447a73d1e174d02bcfa4d930bd2219ad80a56994cc8af38f9ff88603029c4095da2ec431f8501f9ef8fbcb32381de0679053af802cf559dacb622af6827cce67779c48e5e455fa78458103e83db66b7ca74e157203a840fd5de11ee47d57bc0623ac41bd4852104d9d9f971459382e2b06d4fcd8ba41de736b73bd812ffa5483dc6ec6932473be6a6dc0d27fd94d17cc8c021c4b46849b4a24dd1217f4b63e51110b80e160e434e97b788331c4776174cff9739c347cf86d4fabcd037e7630df2c5258d363f7e34046d341adc63b84de0f4e26b7f8f8002c736d65b19d4ddf57f0b82b18edf59294fd2bedf80e5c0c8d4f1d7a786663ceffd920f7e8be93bd3f00d488631c96d05569f5058e37b98dea0aab70043e805fd65e94c748ddf7fb6969a84d068bfab202afc9ea2e0571d9de93af3b9951566a4bf1faa79fd8a6c5d039540d56cbf61f8462b36260562fa13704909a1ed40bf6ba412e6ad37b7e71eca70b52e90060a3c93b9f1262515b6e9660056c3b38b02ddd492df2d669a34aff094bd20a848e92dfe4a1cb440f916ed59457bdd4f1aab599e275242de076b54829a0d6e589c2e8b5ebdd3ee262c81b600b320dcf215fe0157d9ab591fe627c437ae7abc8d8a647e3c7e023cffe2cb4951510501169ee6d9b5661e84e43e2edf8ec42cf22fbeec64613af60cd861b95c72f8dce068eb8d1c8a9a221fb4d18523f64035a17d95dd43a93f6e047c98e512c40bc9913bf6169319b162be59256ee4f9bff8a31c99131c8e19372434d43bdb2a93adddbba3c1d19ef50ab31f8fa85264b39ddbfc8603a385716a31ee6d27959c71cbc6f6ed5a4f507cd69829e592d26809d2f871c51fb069d7e49e380e5ddf5d4a9202b6452f98f1daad94dd054a500aef353b10a71e517267ce9a1fc1b4cd76b9f93477de4b1c91d5549d86870196a3614108a12284befe59a76b8be95728196ab0041e0d946053a16cdb7b1401409cf59d244d829706574748a69e6a3bbecd0e30dd0fe75b468b368f32e01091a4fd09c91879f6ba8ecbdd936a8b275946406febf01e277745f6c9312b82080e8e098d7526c185785c7ff817e654026d4bf340c25d30458674e969f1a6bc1d2c9e8b1fd1ccece71e1af1454317154c5618b6ab13c7bd00412e91ce275e4c9720dccceca7e263c83b760d331bfde9c29af5ab007c247f7805d5861c27f49a8187ae14389c6c68fd873055a371303fa8f57aadb71f7438d007eeda2c564d18e3ea7afde056ba4d9039632822e0ea33234c6c495f8e6356d0c1b57ace02cb252cb599b9010297d97d966b38c2881be93f67d5c2cecdf801cd29932a7653ea2b45f0a77a584a89b0c81b70128631e1b9ad99cc7c1c0fb767ac0c52902ebeebf514002db62cbf4cea7ef422aac5def2e149b987a51ca7d2871e1a10d074f3a452f3620843062527b94fe508ba88e76fbe203accfadaa61c088884b0071a924aa26d2e9f49965170836f02b228b3cd2f57530077749bd9e8e5a7599c11d8638cc2a8dd9cbfe1ac81f0336c5a6baaaf47529017cf74c39e8b333940a205a8d203f639fe4276f54633ca2ef282d40e42dd4d2d7818c0aef526b0737bf886bc87b16bd725f83ce6e3023404a0ced98c788bf2e22bb11ad16af244cd7038272dc1100b96dca0012893fcdbf18a232b312404404ba1fea6ed6a91dbf88b51650c2133a0618f69bc1cd75530fc6e284252fead21cac4353524a3def11a0126942d9db2cf76da0f785d0fc501a9ac598633f8869e18c7f09143e1bb3a5091a62a66122e584c6623abc1a519694c9551ce49fe3025cb40cf2ac8ae66b83a483d71f1fc502807115f7f2070c51486592a2fe246341b58253cb697c3310171cef4db98feac50aa971915d202e55fcb6c59b2417145fd72d0d44bec07a3df3f3c54e339ffd4129e2a7b110dbc9700faabbc5786864ab0794e40bbc184b71ce722b221204ba433dfe923cb2f0c387047a663c309bfa7a5c390c0fc6fd87f07123a1225d1afb203df9db6c33acbdee92c2e28f2c07cf21e8b1d9d48b18984c5405c038a9a92790de1a627d59f132c3cf7614b396756ee93d690ad1396a7856496c928b42d4ea350c554c297254a3d0b6cd48db2f29bcaf76339aa5eaca3f874b25a0d1c9d3f65c98331cc95e6fe1c1228d8dce178d3f0535861163d5df049a586a3636f2815dfcca26e338457a6b89a3306ef37d626545d4bafef143c89e5964bc01b84f100be8c0b745b7f4773d79ef8232d5a2f36b4b596f4c401dfe4a5dfec53b116042019bba2792dbc3d5962420a2d307676e4e34266faa568b0906b495d97e14f8178e8663f4e1d492b00635a9c5f0e2002a24938129768800f17e2c6112e482a845299e669f894862e2c16ddf91f8987a2b659ac2d9c7312a4f324a1061a5c11b72848b063d6a7599de478be9f2bb10753dd983b5e726c10b524f685315af8b20bacbee02075d10398d81ab60b02ae52ef11cb2759ce14b075dd0d22d32120c4a66487533cae9599b96f4c63e07345421770372bcf782e8aa271b8d67f0f9582c77465ceea09cd3724656f483d27056ceb94647a37fa56c1399be81472ec719af40108ca55cc3ca083021d802ce38af87964c1a00108f66f568acb715cb7c3a0827abcab33747b2ac3a1bb4dff1f0109893c03a1a0128e4f4f55be04bf537dbba8ea40291a6bc85bd27feac3e6bd24159a57e3538af88ce8578a6bea5e492f575dae917069c0c7e6be4d891b584e729b65fa41432b3c8374f3ff80d991fe620488650a81a4cf8968d767f4259c6c250c2934a1f9877bbf5a5ef96ef5136f19c8515b5dacaad470fd200814b861645fc2d0f051387c0e283f89ecb773b7d2bb1c3a9c909699c5151dd74811681b1fc1b71e89838ea7bc4c47ca0a05aef871c6ccd62a18f5902043df053ba8a2c1eba645949a5d6fac726c311844a29e8aa16bf32f10bab9f22a514b4ac0073bea48066c0df0c800c656ccb89b6f09ec5f0284a29602a13032d2f32ed10295bb62e0a339a756626bb160ddd94aecda4c35e3332bef594851d337d74761e78682df1eef44735c138ed11f4efd7a842800f3e245b7f3fcdfd3a5be3fa98c3d8c3a48db09648696e66752c12d03afb755bf0271d198b85fec584b3344f90a3834399a03bbbe300527a81a8ed354f2ad5b878440cc65fe533987086a0992ecc43ef072d5e37a621a58f3c5cf22688f21838ebe9df4237ead8e8455c89f68b30666681320711a8fd6e01f46b65c5522b90d2da878f5811d53325f5e2602c8545037f1081d8822cfc285f53ebbea0d5389953a3cf032e0f5762e3f2255378ba91a46e57a3d997e3311131eaef6da6f1cbad89c46643982af4b3edfbb75561172c945c625d8d8d06f24d4ae829aeec581e234a6c79017b380e3ff0c147ee4ad3c57a3f8c123e3c0d5f40301d9784264c6a2051b63b8cf0580c7ead64571009072344601c882d472018d3c15624e90c2a33865bc686d81112416430088ac231106e46f40b74420e746f85b8010ed6f48bcbb02d558c1ca8fdbbc3782c3421131dbf32670c877df5291998f667c9d69c215d49d110f53c58787e9ad313cbf1e24d23e42a4252a349e220205fc3c611d6c60c0b595d130019cb60d8e7f748f3110a1286783454a2d3aff6f3bc4f0ba3d817c7f9f810fe382c02e49af3efd7987c84c2e6d42b42e011eef15018e986fb36ad8d9fd281917ff9993f6f5fc228ec348ff18b9d4c54c5598e8783a95836a3dce7c152554292e62541cad57e1f8394a50936248b6fd8d0e59c1973cf9a8057c13126e29aec06bbcd819d614ce742c984d8230587aa16f22369ab1faff3d52a219dbcd3eac389367d41dbe5d0583f0394ef73337c56d3140cf79c71e7a13d9e069dfae1345c81c22f871ab40cdb5ff2d46908cb5d5f9ca1877c2ad801e3682aa68018ea57a72190ae35da6179d64fbb526c09b859c0d1fb1e9bfaa2b2941c7fb4e60278f05f8a6435e53db4a4a85978038757139624fc876a43713c22a517bb98c47030b78114e9780de2f1c0996319af006721c82180e5023c87ef1131a3dd14437e480ec0e781d6249a48d018af18320733c78ae99b95e4a9dfe02e263afc00bbcbd6ddc5392929dd7479c95d8c76c9d151e19828c1721f006d49d0f1677feae83847b818893143765953bd435cc7d140b606e31307176b263aa87a6ebc21533aab55f91677f9247bc57accd814bb5bfdf6f321399e18d2ab59403407d4a0ebbd50656e6e7ebeeb710312fad348af81c90f4cf52bde3ed8bc6ad10dadd1a355f2b3e806bbe8854ddd68db717370c9eaf06a53167c7765a7f21cb1db8132f802ae67776dbe16078feb52b31280421b50629827dd86070f2fd1684fe9de9820bd63791c4cbc84a445c901a94796834d5a0457cc5099d867537e63827515b4da364f2ce45c0460a726950c46cb35d194777c66d0ca1cee2add0017fe76058c1995af5fbbe6d2c3fc985135ef57d725e0f150320bcd978c927ca6caca601918630293620d9daf797eb15f08c04a0226ad054cde6a664e41425892fc569e5919888937e8c2f4c5b849a60879e734447c194a596b4ccdbaa1d40cd6adf559c22de103299cf63a2ca4d9a112404c4efc6df4347709e398cdd550b1ee49e01ebe2209013e2d7d1e78ddc671bb4f96d46de76dfc55d5b366b0ccd7174848a6ee913d3c7ff62457d33df68c142986538a7d8c552c4d5e160e0888210ce97c71101ded37a90f6da492e75d3a5271bdbbc76a3e5c505f6e9d49228f09219eaba97e894f4aae1904096dd2c65cbaf302db44eb68304187a156c6c544876fd4161677e43a30fce6fb11540f4e4eb2d1cd5228c76c36e49fd7e416c6baf184ba6daedf6e5c0600b17b2138712971127449b87a618db0e086de67e97cd6acc8b3ec4fc55c713e4b82dbfe745228b169b6713deefc045482e44325cf27a026571917b14a141e0c5a9f1df00b66918605843b3a86bbe77db1b4290ddb412f82e23f223d8fa5da6e5baa4b2f97f1e690ac5da04d0ef98a02a9aa2c2dbd7851b7e870a22b19648bd7d46c87e78d5bead3e50a2be71c67d89310632bae41cf0ab540f29d022c1bf20d77d480f2de97655f19d92ca7a3928a8ffe15a6d5a060a795600ce37161446745ef2a6e21389e7335eef1d247c315a07fc729a826a90df9687f60b392232c44f67f9393d80cdb35299e4416f3495f9b0fc248cd8b50f7913d171d892f4ff2217759d0c062dd914f7b800d149802ea2152695b601815a70dd9dafae9fb13007f30fc03a0a81b675d82aab9be09a066636a2053b3e1fa4ee24d0fcdd8d4b82397679edceeeccf7c6ed8f8f16245a830239df15671d8ca345aa428312ac2cc2028cd3a6a9b58a395dd9b48ca4c2903ae067c062a06d961803f3b0d60bcf3702c1f293853bf28e0735f21019fbb0b08f8ec3ebcf8eca71dc70232c2997ac6c5e73e02cbe756420d9fbb092b9f9b888d63b1dfdf3370a666993ef710a5cfbd031a3e77112dfa5bc6b1646070a6e639c0e72e81013e371005f8dc2c50f9dc31b8fff53c263893cb388abbfc9ee09e14dcbb029ee15f8e63a9a4cf0fc7bd23b867847b40c0fdaf07ce4f3e3f957b43b83703f75e80fbdf0a1c10c782722c13009f1f0ff74ae01c189cd302eedf8033c194a3788acf6ec7b92738c704e79280fb5b9c09d6f0e058aeef97e158b037f9ec6c1040430ac9e73f11c226563813dcf913c7029fce38caf78a9b668da3f8cb096c595e096c115881c09655e4e0265963cbf2011b8d0d07375333b62c1db0e5dbb2e5d14c617f1927959b64eb862d4b1bb67c63a8fc1ba0f2970cd8b2bc0bd8f2c5fe305ece8b9ba48c02b62c13b0e58b8097175b5681311e175b962c5bbe35ccf8afccb0dc84b14c5b96a52d5f1a582d78dc84cd388aff01b62c0db0e55b80e6c166b0bf4af360c75e5264b017ec3fc39655f8e778cbfd09b06539802d5f942d8f72b03f692505b0657903b0e5bb62cb23ff932dabb84e5107005b5631bada96ef75c2fe9f922ab62caf0c5bbe316c3ad83f058c34d164cb2a46f7c44683fd479bbc25b67c4bb63c22d9b20a5c45354ec861ada00c0901fce892906cd97bf06b2cd21ad73b533e50cd4c999c506b06314ff38547247aff591da193c3721448cac820481aa99233b708a871b53cd20512254ff26595b1acb0a393f3f96cb97d648d2b9d21420d8daa5f2af682c9004b6128ec64ed6b4c73b8d0dad1a19997ea42c2b5ba6a2e1a8aa5d6b85ed7e9b2c12573a52e540bd339c2d3da91b231a459026b5543c24fa3332ec5e91074a503213345d01d60ff1c5be05c4ad39917d2e6c6e1ac982c498a131a9c8b59f364f71138d319ecffc36d3861bf497180fd230b6ed7d019af7138353734d89d0d7e6e1202f6168ea569c0ef11308d38c2965be097e1d00386ff4ea0e042787d6a041e06688458811030303030303030303030303042082184103d7af4e8d1a3478f1e3d7af4e8218410420811240c3ff0c5b6bb5b46155cd72408a838742cbd8170ebe05477921b85e1d7006068ca294ef0c963015b08098a44dbddffdc49fc6e77a4cba15c0fffe4c10b7482a57cefd5e0bebfc11dbaf8c3cd0f6713c700c0be651e1c8db7f5b5dde801dbf060f64e1188eb1f849d7537ec081b75794185e3e588ac8c865c9cec6e24c94d313a899f5bb88cb3f97c7ed198f45f51d6657ee4305e989cb4daec03ba21510dae2425254c8c4ea0304911830c2a5edb2cfdc7f5c47e86b4acc01f9c26c5dfb218ad596ada5a5157d84b735c5152de0b75ae35d2a6fff85500f6d2200669466c4b46a26cab46e766daa2ad2edd8f4f8db4497bdb722c7e5f8db5d69a786badb52ade5a6b6dc95b6bad45f1d65a6be95b6bad1dbdb5d65a6badb525de5a6bed3f6badb5ff72acb5d65a6bdf5b126fadb5d65a6b45a1b72fa34b38aeb7d65a6badad6f2dc83e4916c3da13294cc81083898912940a1962486172c28425812a3961a2c48a50284e9828b12114355162e9458d4c94580a4295583a3fa8122596ce0c052d9dd0a2482c9db0a21e9df05114093ae19b283aa12834e9843572a7459ac3a1593fd89026c5d9a0eca259fddc1d5daa1f3fdf13b6b3e98daf69291c6bea43993639cb5970c65950e52c1a92f7f79e3639e4e12972da0451281dd40eaa85d32511903641952a88ca4675a3ea9289f777549b208be52996cbb07874e91669136cb58cf4f88e9d2e95acda145128162a0765d3a5f9feeda34d51a5ea1faa06a20a82fd5ba65fda1459ac3eb11ac5ea544f97de9036c5566c1189ad224642efff68da7449bf64ccf581553fae9727d3c57294f8232277480bc774b578e8128ecfdf784770f6fe321cb5825219a5b8249835612847893840ef2a1c37de11fc01c862780df6969becf516ca4db4d542b5502d148e1452482164b98952482185b0e5262ae545b969b65aa816aa8552b969b2582a968aa5c271ce38e38cb1e5a629e5bda8d842b949b65aa816aa8552b949b2582a968a15ff62b949aa1c25fec58a7fb5e24b796f0bc7c7506ec25a8e125fca7b5bf149b467a37213c67214d668742fc61a5d19df41296ccb04c5896d2bb1d91689c42b3ea256099296a875929960952061895800b05725a2973add6a092511d14b9da2707c8dce566bc6ff498225baacc962e1f82ae49baa3ba7caa7ea4d158e2f03169aa83b27ca276aa270fc18aeabd56ab570fc1451b29e0e8bb5c53709e2429cbd46aaa654b9545d52f5c94c8cf4e06844a2a644b9445d12854114d767a7f1477338d31a63ad560b6475022a3471e6e62773e1c87171e8affdfa661ccbc3d86737ab41bf335036837ebf8bbe31d0bda3d18b341d7680824bc1fe6aef098e054642d3711aa7711a1a1afa71cb01b4d9aca5371d0fdba75fadb6830e91c7757129187e3a8ea53ea6356e2df70963ff9ee0581cc67a4763ff8874093e5623775e6794735958af1a05fb6c25c94d313af911cfcd4e27f3204d7a9942e33436b8d7bf2e82333dfad8ff89139b890e88e9df0061daa44c3f94d5989bd5f170dd72ffcd5aea77dd6cd86d07bae9d04e27071d76a859b17274a4d63eb4f000b013e2830df6efac9f6a53cbf170d65a465dacf6d19c4b995fb54cc30b995d17e89663c5e5bdc0ec35187b0f12b3196fe35afa5876436f36e6f6669a847d8e87ebf67c6c232fdcfc649e4c97e863ff7cbc992e3dd557aad1fc8ac01810972db7c0fd2fa4cdbd19e1fc53f55b4982a5c04e66c0bed260a1e6341a7c12dad3691ab0975a8e8767bc0ea9e2a6be6914ec3123394530a642643504638d83b1c7faa96c12f63860df60d8cc5ade769b843d66d2a2e18861d86603cad806c10c0caa1013038fc4c0bffe5deffbfdf3d183fde30f37cf80a1c4598c2adf61eda349103f178ac1e531823b6ecf118e250651702e3ae6b1802fdde43352de51084200b7966912f51dc772b91468bcbfbeda2c6b797ff9e5ef7dfdcbdd73c4eeae6b834d82aee350e0efcc503e7182826ba3bf659a047beb19075b373b6bc6595dc269d3a74b19d6e01955ab9ca68b74893efc36e258ea7bf8b9b590bdb54fb59c6d996af9bda7643ca67da649f03f9aff6894144d631a1a29eff591ff93fea4bdc78817a1c2a5a93aef08b6c1e761b4ebb8e9b3e9f8bdee4f72b0c8cdae836a12fc1c0f3b0f67653f393c39111ebd23ef1dedbc60f8a39e9bfde427f7f01dd525ffa669211876901def9d2682d33736455a56401c10bfec86ee2036f4100c9bc6a5c0c7c2b5e19fe3cdc860f8bde32667390aec992efd70208e25f6c31ed4a7fd75cb2fabf1be63eef754d6d2ffde635ce60537b70ac3cfd9531ee3325d72978213e9207dfd9f8c525c1227d290c79f8c526487b67db40c8ebfc2f05bd5a50c8174093e9826a134d771222e053e9e2238e6b9f0283816f0e1f348c11da81e0ca11bc1101ee152e0e78e01865f4f94e0e6a6d1b91e7ed374118ee5ca6af43f22bcbcd6f1b06f0fa64950e6f968d2c438e04b3509de2881733c1486d190479766681a47810f49ffa3d1bdf09ba64b411c8bf3076b66bbbf5ff65e9a944997024ffd2a34fabdfd5dbb34ca852b6ddcb0716d1045fbc35037183dcfe0828026b8f9e22b5e287fe4581a5ff17297db341caabfd3e266437c7fb7a1072ca34b0efbeb2fa9e1cb41084fba3378e23613f8d0e5b488de2fba787de0c368e79c730ebe4bb984f8a0bafeaf97d1a5eb7118b99410bb275017be638e45022e74cb1b22b15a6ef11c7c41b6b08a105657b51b1a5389c9c0eeaf16dd2ad89dc6c30a6e0eac60b7d9783f576a566f933e9f49f8ad73ce39127c2729ef1d8dfe4f27ef142bf86ddf241552ccb8702be058dec7b7806371383f1b1c3f6ab905bebe4278e167d3a548812645d2ff68b4cd1cdcecfefdbb806379aefecbacc831e0f74a545e6681dfcab1889f53f03b65f8bd87d26e9987153c0ac275f5441037bf158e3dbc95f66e9a1457efa10def7bd525f7f1df8d9430c3a1079c42885bdfd587ab8623922ae026d0df98e31cca75d1805bcb2ea7456bc18db81137e2529e068dc0ade513b899bccfd0065fef30cc9e8d4bb9be566b5d0a8c28b8aeebba60bfcbaf0b7e841146086d684c37e852f0d420961ac4a3ef92952112212f4070bea7e83413fff7d224f7b74bfdfe58b4454b3802c3e0030bbb9a232b0c5f7c5ca3f66214f2e2033b212f31b8b3e71cc54f841f0afc541a3f15374d87021fc28ff07d832f5d0afcf872e1bb16f0552a7001c7e23074d0615c904aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542ae5022705774532370104f9d79882eb6a8ec06057738407ae1952f302bb1ae962666626c5b3fad5e05c489e1efc7ed6bc482d4420e611e269aeb81063f0fb1853465c0a0bfe802722351ec383a36a1e3b364fa6c7e5b4a03533dc9314753eb8ba812c68047eefb0093d803944885a11fcfeca70e801c7873bd0b1dba00d848133ad4ce033a481043e432222f019f600029f6110dc0f631c8bc894438dcfd087077c8627a0f119ae0007124a70a6779af1d99be080cf1e8596cf5e05199fdd088e63b93b70a6a7bae1b31761c3671712e3b317a1019f5de55842dfef4038d3cb61c06767c1023e94524a29b51f4b29fdd8a79f3f4f2bfd58fa35dbb2fc2ae1572d52ed6177779f4edf7cd3ad0ea5f2fbff125d57f429e51c624e39e99c33fb39a7fc7c6c566badb5d65a6badd7adeabfe852f6d505ae5f83abf66badb5d65a6badf7d650ada1faf97ead3734e99c93caaf9fcff7a66306fbb496eef03d871ee1d31ad3e8506e4fc6e38337a034b373ce39c49c736694da5b5f5e593ff2ab7c9a633ae59c739acc479dc68348798339279593cea7534ebf445152297b659f0b770129af2ae5f522cd2da01dcbe95ee32b2f60889c84937889977013efee6fa24409090991bbfbacd3a9fb67be7fcedea5679f39ad3c6159a73fed45ddddabbbbbfb8abbbbbbbb3badd43feef5baaeebbaaeebbaaeebbaaeeb92d252494b32b25a2ba5959fec6369e4905be449d666b54aaa33e70d289d52564929dd6c5429a59453cafaf948abd1f991f323b33a29919d15d90cf9fdb1ce39e79c954a0b6964a5524a29a7a4f15d832fd28880525e5e3b0711d59db8f7a4dce4f62084230c6345718bb8107094e7423e16b05503210b36c92140011861e717e3161f5cc55abfe1778c20ecabebeea62b163b17f31f7e1f7fb8f9e1f734a3d1362b4dea7e3cb0f8f2e27e5f4a4a308c41718bb87104f3b18f2fcfc57c2cde602c1e4106631f65a28f4bbbe102bf7f66336afd6c4695f223099c49ca14602cf67031606c7b8131af5512fb86691216a3e329157764f1e53ac1f9314b8cc91d586e19ba63d12f218c9f1f865a94946e10ca8669d48f9b3d85b1cff1056328199f01c6de633cd5a538b31af1db531ee332329b11633cc598c257cb66410663234759515121a9d48fca3bf7d8b9e877b8b6eb6959817340785d15f49fcf67f5e77d11e845d94ff91784f05b7eed77fa517e8cfff9f8f4e9fbf531783ec5b1c1f48508fd1ec291009072af72af7a95a9808264a741f9e8949d66c5897c3efb8ded1569db3edb68bbdbd36d457dfab99f6e4fe6b39d642d024051c172af7a7569e00ae94725dec4676962935b2695d85ca3d42d378e2c19724936fa59ce8f0e88e7df00e1f9fda9b57e566b1dd555fd95aeb5d65a9da6d6876bad9f0f4046e35341b566a09c7dfdba01206bc91ece6fe6b36d598dfa93fe7c8d54a7f6b0f4202e057b121a8d8d07c1a560ef40702c9aa4f21e7b45bc6d557576a2a6d3a54864e7b31950ca7b7dbc995853ea0c366a2a9f19c160ec637cf80952803de481b1afda09fbaae22f3ca355af1c67397ad7f207187b29e53fec257d1d10677f0384b3efaf1fcd613be77cd014cde95626d72fba647fbac0f36b7073ce39e79cb3f19c53b4653444f3ce09ead57dd0cfcfa29f2ab216d1a6e3e1bbe587412bec9de6ddc6f4e7497777777777770c598cceb41ad9d3af33481537799046c1de8938cb71fcc66d2aeeee7e6f9721a3511b76bf68233c19222cac6b7d0477e0615857717b3215c6f0669e8fcc698c5004fbf9de7157b17d13a3573578231e17eee8c1deab50dff4542ebb1530d618f32218c61a32c2c13ebb0de8b197d9d3cf0f08c69c2845d632371d0f83b6ec5d66830d0358ea88f48ea76300eb9a53954a06294da4aa8575cdb18aa608acea926f29540e84c6249b0121dc566e7a3a4fa73acdd3793a4ee3586017e1434a56ba6b5ad1f1a62e9f94fd3a20967f0384e5d3975d92f54f6435e4d7ada58ecb3bfa7eaac10304c1d81f206b59811f90ea341cd0e56812e630e736179782053980ad1ad472b856075c0af6371c0bec8dac4a8a55af7a35c2d8087e3691b5f8b6830eae4bd1dddddffad36912f64ef31758712c9ff7afc149efb75918737777ebd45face6e6faa6591f5b226bb9361d0fcf4d6ed3bf35c72c78511a638c31c618638c31c618630e5de241e6022b8ea5fefb175d824fe2b30ac96752c9e72ff17964e2f3358dfe7d0dce857381df8f34a76914ec4d68ae514a68ae4b34d7249a6b944681efc513198d18657c41d3a5f8f2f3e7254dcd56226bf96c397bf9f14bb21af17a321a0fbd6a12f6243413fc028880b957a32edcfe1bfa6dc82d6ed615c1d8e727c3c30936b9f1f0e775407cfd0d10bedebfaed46de5e9ab506da50697ae10f921231c8cfe8b36f56aa54bf2492a4f1abd4987624f29a694d62fc968d01754053f198ea51d4b378f76278ea5b1bf288be1977f0e74d361d3f1f067cbfd3b3409f3d7d9c9216bb9b292557193d3380af6a4ff3af8f14e1d1dbb8f07d59de4ebe50713916fc24809f708d8b9112f10e04cd751b0cb5a1c671160d73fa0b5428b1dec9ccc9c29ae5e48708359602764043db8524be98ed7e3d212f58ef6e1f5c4d56ab57a3c24484a1a2612711fceae06c6b579419eea87ed1d29ec5a5d9252cb310971c5c3f3483c3c9f5f10fc80705fbec4318438e312c48c8b2b2f61e25d9746ef3c12c1f17fe5fa3b49c5a56cb1c20021846f872b61f7f2ec10756e8e0c6782a1832b851e7e035c893e2439535c3dcf48baece09fb892e8e14357ca1e4208a58417842e2bb7723c979470e5f19dc7e557a8e5eb6ae2eae1c7e3a6186d1e8b9978a5961fcf9199d19647a32ddfeb64fc68f35cc49ec722be0d8e0f572b9e1589edc2707194f871f4d936f8210d7baa853eae62cf73016d1e8bf8a3d883e3ca797ce7b45aad4ea753a516a76f643ce531317baa897ce7ba09a660b8099edc0467767c47faccbb0a612824c2b22c240a61374d8a8f27c795ec17c7027a1f707c1c0ef3810eb8d2f5f15d9e0b87792ce2a38238bd1ffce5c8dbe1484e0747821fd21ae048f07de5a61d1c0a74930c8702ffbdf0ac7446bec3da718e44379176e2482737911c0afc281d8acd69e5a4e2e08c73970d8deb0a7d7e186a212ccba0086226a1ab99843ee432214f39ec318e25f4f11d06ce534704d1f11ee43811717e687e28f4220bd26e7018f4d545a43d9ed7f3c0d031cd820622a74bb0127d7e3c3d8e2566345e74652da19fdbdc5c9a145f5623f4f7abe86e2ea0d08b6952fc3c1ff4bae0586ccc0f7dee17d1837e6ab746e845a11789441f7a187da748eb5593425aee246c7d73c287ab03e21baf85a7e861f48912dc164fcf8bbbe1829d4be9acc6bbf1b028a4e570291e702811e60820744a80231870fc1c5938e6df70c1f733082472c9e1581e0e7eec841c01045717fac1660876b8074c8220f8043b212390c1a2c742a2237ce01076428e40e12a4d66883e943d9d966a5f69f62e5d027d7c14f46bb52fbb41d4826533b2d00976590be8459b494b63d1ebc8400f38f422180d722d1cf10487be529b851eb4b99ed0e692831b7a79abb520ede190c7841e861efe95cd083d0c3d0c3dbc01c2b0033de05e893ec78b01730f38c7875be7c0ada794cdf30226e28c6e6e6c419c41c731c125c10921a93cc9a55162af7ad52557d373d38f475e2eda425b16800d15642311d7e1dcab5e451a40179b134008f500c72702c5234ad783637e3e700c3d1e1cd0c5b1cc8b7d5cc5555cc5555ccda97da6964dcd4ead4e8d4e6d4e4d4e0d9bda35b538270ff3619d67c22809b708421ce656304822b3a196d89292ea220e8e3f6484736f3cf562053b79ef68f44f6a1e37037fc495284f9ce30a6ef1a649319e48c1cd7006fee852f6fbf1e18c8c3eeec90a06ae9a47973e1fb38f760a24c071e7b1889f27166df98e4623288249d80919810daeae9d7bf083e2169172535c394a7c49ba2aa3959ab85ab50d6e23700cdd3816876f3894f8f123cf8359dd908c14213204a786b48a71456594b5acc0d9af1ad0374d1269399a143df5a357f17148376f330a02c49148ffb1572e2e257e8d39b88d839be30ac7f82f7e5cc59bc8722cf3634c028e479c299e1ce50b8ee7b980a7c7227e9471412a081c7f108944d8ab348906f6224c54452012242422908804e861b409fccb047ee8455f2b5ce188598d152e8633999444f0e3490c283e979cf81c2e25be48736992c9e60187121f45c9e94486b36bbdc413176012753ae15a1ddc874538ee93f8ea1ac94fcdf540ad45b2b934296212da0d172cfa99830bff7a971ca2eb619803e21b431f7a99cd801f0a855ef4aee361d1966d7c669ce02c9e4ef0e3e9144f109ea07c13d90df3ef75dd75d75d1cafcf02c0f5a1167a11111cdaf20986105f0d841f8c7129f241f86a1f9e0fbe5a8693e1ab5995c557abcea3e2abd11d8aaf366d26be9a6c1989af86f560f86a57ce85af1681447c35f8502e45beab390f2e453e8c96e1f86a8d41db894b910f9fc3a00d360984ab9de722732cfae388742308f767584d6cbfcb3f5904f87af11e48ba033f806041edeeeed7dace63390aa4d1910af74a8912328217ec6a7a782e76353d3b988718369051e36187b80216cba5bc978577702ccf3609738d82c1f0b1ab1f4ea38cde7df24517dcc78347c83649033b5c0143d8dae3d1a51e4ebe3d160ca56852fc1d70b842a326c117dfbf16bdc21043e0e0124d8f4fd287eb536bfff3554a19fa7bbd5e72cecf3e4f5d4a29a55f220863f5f9e42774879873ce39335ba90c65d7d60f952ba4b4f4124118abcf278798524482a4a4842c314b484888e46749ad0e88ebdf00e1fa9652fa1fea745cce0aa59406991ba8d4eb59ca821e2aa29104001316000038100c068442b13ccde254911f14000d748c46725c409405e320c9611c478c51001802000000000000024056034bd03ea6b9bd269469fb26ae6cdd77df591d10eeef4f8e4343256bcfe26e0e26cc60fc8edd0d339e811c36ce91d344a066afb58eac54e877b770d860c40c467171c1d128396f191057db038ca661a133fcf06a6035a4f74b4cd42779870b4ebf66fea96e46a185451cd2923f27ee660214e1c6f94e4d91c48c91424aa02ca73243439ee8a510304b028b4201389ac03214800c01cb6a7b9e00e486aebc36a0acb61ae2f36f8017005d4d1e65399ccab4f0fa4e879999c8203f93e9a51f124079573b1aa87821828b69b7c2baf8e895e6dbc9848f3726d5db5bddae3baef3d95c2879186aff00801156374556287f3e4fe03c8d31aaddeafe6deb47176c3cec31aa995e217c0a299a793897066cbd1fa70becd6ea095921926d86f49ab987a70e68ae574791efd78e3460d0e542987f2973362e49e35b5f97928745d7580a01efe20295b2362edfc219b24c60081f8dcecc1ddc129c9718ce7a68cbe99e57e116a910a8bbf4316e11d2ef595937eac02062cedb2bab88590d789bb5e496df78476c9bb0988d2391696bb70ade314f4a2b09a56756fb95909b7a3804c7aeb2e4130ff009b1b5a92b51868de47936e45662b6197d01657347c9db98375f2ba6a240e75b584c6256684b174b4c309866c18c495e74d4c14e1b31a14c0a175c1b5d5e61ea99005678c6427703a4cd11114bf91ee8b10372117bca8cf4b3b1bae4d207691639618e90e963a29f1b6560499fcc55f1e65ea9aab2dd448c0a2238698192b938eade693134c62a5fbb92f45c6db86afcd36b8cabfc060c59e7d4147272283afba70d7654121696cbe63711353907ca0103309eeaa6ce42c99e01df90d2e4625b1398bb8de2baf2513099654acbacc6ce0cbf50338a9acb7c28d1dbe65b98f16ade92f9814e78efc0f30ba2c79aacc8854570e5afb8c53d0f2faa814930cd31ad9ecd86a6cd8214869f23f5d951b3bbfda4f764f81180f4722a0e31bcfe3e88b9674a6a5b2e3dfd8f027beb0d2aede18a15522fe112cac4013ce6124a6e9071ec1671a4a127ad5c69d8c14c1efe249024f1b7f5907757669c31936e4f0d30e06bedc78c8e058e381b253fe01ed45d29af149f43f26801543cc605e3c77f528e4d7c7c8ed3518c82ff8d6c63f849617d5c0c8d11ebe93630d15be4cf6bb3797737c2c459f85e01311daa2326ff3a3c6e1e1755b8a65796058aa5d66e2673c95328bd9af7f07ad58260584c782795da7cf3345f277367e71f4c5a8f80d63cf267075569e9904e66449ac2b19ff159b9a5477132a9f50568ebf8638085df93f29e624a597d77bfa9fb6811792d6b07dee01792496777f9148023ea7ab1202eb8780448e8adf64ed6d9e4698a2c86f95201f93fce30d6492841ebe9f69ad25092a3516b85ed417b39d01cc55418aa11c5a5ec35bb9a2cae8377b8d46c578f975cf6986c735b8b1c0ad16886f02ea908bd0a57b3783d7b782c0ba46ef387c99634c31275de9cbfd2f131704a5fbb01076eb08f14d97bca6f8dfdd83ff7ef8ae67e3c97649709235c4a933e83908501d1f3873a0f6d2fd1bafec13251231f1a81d188e7a2a87ec6c2595bba24e7d852a7ef2a635d8944710103543c755ffdb0a281d93cf814d0c48367c683bb1f9e5097338d3cb0002edde546eab5e49f85bac0ce8d946bfd5a1454bf1da10a231755996e3f0d3de8f51c89bd71cbc8ab07f2082c3dfbb2fda692761cf1d6b7334f1caa42a48f2a54299aaa45c524a446814c9685dafe6a81ef974593c91f593070135d0710b588fbdf90c9edbe8813ce6ab296a022242379acbf5c4f083a919b1c3e1ba7b914ec1ddf40ccde4cb070367e3c438847e18b3e1bb5910afc82c797ec20b3eea2f8351b2c2cd7fe359b7f31f572124cacad007a0f3995854f53da71689f110edf7a859ee2fd001d1d8bbc644dedd44b10a6ab5e64d569ad44717075d07603f273ce21c37e573afb5a5a051dc6c56c2e10b470335a3513159d1318248f46a0c4fec0503ebe2b58f1690d9f6ca605a12c2257c7e26658f95a7045806832a355a7e724d18d0a2f6aedf2e1f23dd605f20300864b4be4a6751f48cefa6ec22c412ad935f8aa786fe9da03e5b0dab19d977bd960b60f617de1cd3e70c74097b81a24d1b84630049e14b814f82d43d12d09bac4714727c17e3310e0c42894a1365bc02d3110a857c48ababc56851d791caf22a08f8d7485b33360aa4dc06c552568036e023bcc11eaa0f09a23a1162e35cae8f2ef8d1ff749743bfc8e40701e2c865c347196421e7e031788e0c3e71513377c9e10c570233902b6edabc1b4fae533432ba9abfdd3d65257bdf26b01846864d90d5a8a73e10bb0e1f67183ae8ae2811cee54a7ab8fec8234066f869fe96dfc903297cf659e959f8b5ad0225cb67af0ff7684b851f7f933354f5ff42e674ce5fe10cc780e28ed3ecf7a4c962ccbbaa88bfec259f9c17c087445b602aac67971552edea8493e315775907d24bac5c819010f4f09a3455cc3543c4812ea2cdc4bffd6300b62091c4085acbeef8f3d0c61714e13cb2381efac33b69684a286686887c11f855a87c1b21f32ba19af67616cfbe1a7920cb3c5833b777d387571ecedcf079a40575eec53374c5cac730a21553a1541c7621a6c921681fee4eb5063aacd0cb0341765e44228cf48092bf555ac3c92205a5637fc08e40b7c25e0d7eb49a32bf8271b8a300216219bd169b186127752cd8d361640d142e2032abf14630e9ac20ab41f3c000018d4b8214c7cd5a4e1fc73829e9e10fd9e8b2e1dbb4cd607de02adde650c676de66f05b3ce092c487725906a6322256655c56475426e8cc5d3fbf9b863b055017b9c0732f12372080e853933ebb358018983090c2550e2912309ea4d01a2e7c8eb97c5f52495560b4dfc891299b46074d8297c8567bb9257b950245d21991766b8eeb4023ce9fa5907b8346af5318e5b96452bd52a7e0285161c99a67ff49c237e5ea81a686269c9c55da8daf28fb894283b0ea85569415fce2169706543b45d23f0030bf8bcda026bc0065da5b29398a91e0597df827e345d0e0037f75ce02ea3f4ccdd5704d084e362ce6706d62d6f2467502909fa522479acfca2cd007b55ed6bbf63d8933284c8c940c54b86bff86058e61b0d2a1f4998f36c3c86e11d19c4033819eb2cb832cc60e865806d7f6604d786cd88c8269d019a4d3f23643b840610fb8f8686dbf6a1347e057e1a4690415d10cdabd1dd1a9bc5e9908b929cd6fe5884814911d323b29aa1b9aee09679c32a02f6b93dfd2fdcc3d7155a28bca2dc6b23db7fc0c4a7d7d121f2dd0619d6e53dad731782711e6641dcbdc5979eb2e388941cec4b719fd2735006832b30e2e5e9a2a27ff66dc68a23e5dc713b2846aa5c4cdf454a39ae0c5192e90b76e2b0789cb9f1098ff3dc9493ca1840c347363ae0d077370b1d6864bbd18f552a3536327cda2d4a870e270280c9250a8831751267813b9b1cedf0c859c8c3a1b2107adde8a76c7060956295c07cf658626534c7da45d9cddaa73d2a1b1214d97405f1c0458f842ec88a734ae718025a0760ebc8a71d4adf540411e1c1dfffdb06e982c455bc9551235b81e0c33173a025689cb922fa961024a4415b760dd007001ca8db824531bbf48f95fc8e1cc208d994565299340a3155f52138a8964afd417684e7787ca7cd71e6de5902fff8612c81d5889351afe37438baea1526f6a8f4964fa441f1d30f2e89527af9053a5cba0a2eb9300ebaa69e025d9d9f8af31ae9f40aba39a8039dd4a189d98fef01f693b737f6c8a5d413d0216e89cfcbb24d620db1b7edf4d7530afc446a41f3e75177cf3ea7a219290ef477026db9bcbc23a7de24cb972754891ed75012837ea3beae8963c942f26a1063e098d8a024ced964530bb889d334731e261d1f3e316820ed377bb59cbdae281c40a4fb2d60292bce3c44b17ecfe8311a3b8f2ed88c5016754edd3e77ae9fec44741046d6301e8972b0b6e6342c2c6619d1805796f75ae099aa3598dd95a19fe4a52b08063f0bef44ba598bce2db90b7da181cb56b5f595b2d513961030d1c00b9b5cf8adb0e418a9aea648b6d072bf29ab5bbb622afa094bbab213130411adb56c9f6b6282da5efb667a7140bd67fa5ba7111224cce5b2cf576cab06437cfdcc4820db09f36903302e0369986cd9864727563220fde6042a81ee2b483e30467fe8a1426f5a94878b032b88a89e3dd62ba889c8d492c0f11359a10e87d11a098bc0d7f84998ac048229812077974a9c92652c1f2f030f706a06f7e8cce9f97729e72ed5eddb227f3480438dcf40234855754f2e945c34cf0a7be4527475110045fd729def10ec83c4be815d6b22fa5190c44813592990d6e9b073e57c90f21c7cd702dea982de6099f66cfe0660a733d7268ae3990070f7eac5b077a7de4f09d8819a78a11ea5802ed7cc62bcd242adc22d51c83010ca65c2691984e4bd2af8d576baabf28fc277c2597b6b43327bdc612dece5978430d6d581eed5b40555c4ebda8b3f827994ec2a3b79c3136c56e06f7cb26d46bd118c8193e1a0fc21d01a7d1c9a7ab61d4cf51fd1666b8cae788594a0bd26ce3ed0d12d159476433392a72b0bbcf259ca584df03734034baea9b2fa5f775c98e107e3455360c8eb6a9587a962c4f059098dd587169ee532c8ce197d17559916bd24883a271511267db030350201ff4ca04d9461c1170e9032c72d04184d5c2ad350949fc5fa54c85eb0fb2a99890a9407f79a46df8012f66639121947e5addfab4f32a70949127dbf67f590d925d51bf7e122b371e0a0896e215023dc907d3987813983648f8120816deacdbd67da75f7b53213cbda27024178c8e64e5ea71adb29ddc90be2e90d6f704d88082a5f380c0cd0e4e260ca34c7cd2c10662d0daed0e6d9b8ef613e62beecdafa01cfba264d060a67b696e172f61ae970d95c1d26370cacb495ebc9c8ea48c0658ffffd75951c16fc45d6a2e4a326e8922eb9b98bf42e2f1a0c68a80d0be45f101f0162f4d5b8b1d17348be9d5df9a5e149c0f4ce9b15a54958c167061affb011503a94c66446419cd806b839ba813ce01ba06e207db1057b09473f0b3c75d31149a9c684b4740107fc81d4a43cf4d54b3a5253727273400368e7424723a71ae79339dcb45c1bf282ae75e72ccf89b9ebcec5f79350d9c57633490313927adb3b468f752ade7f43f9a673fb36ea357ce6e0ea24b40b67d839b4b2cde955b6e8840eb5f4f104e3eace4ec8700f365438ab5805e896ce447e3ea2b4c47504d38e4b02fb62cf22f33088c9f7767d078d9da55eb77546c6f6c7acb583b4b5b01f2f7036de3fff65887c4b28c85fc6545d40f7801b7144a4596bff1dbdab0bcbafb79d5078b7bb15f6e73a9e1090c9244c603530514da8a7eb48e068ae73850a12f5656fc193711610669595e1edafe4adc782578c13f2b522f0665c309ce048cea7f109798a6e0ceaa409f2a162c530dcd7c7a4bb7e7f9a685251e5b8d32a48f994f23b24962f3ee518e9d361cd8c7575813eb850835ef8fb1160c88275a7094d8ca82320273621ebfeae9e0925dd787f32b53710110f296d3b66768192f9c8c4ea02fcf6ec024260025f4cf16f52f98a6a3d588a6ebebdb90d9cdf4c816b7b5af813d7e2473c7158b48aaeb8f11c3d7788337a00602f0811d50829b0b366ebaebf2e27a1718db5df895575c13a211a56567194729da3e6452c97ba80a7c98be80facc1f96f95d8e80b80b389dd5b31284722166999b08b66620f46e6e4ef5fd7c1440510c07b201bb4c81406e9b6957be0ec6a0e9ece5f47917218ee24a81e7edfccd6149dd81794139a8c8f7cf278fae251106369c187c42c3586f17140ae2cc5d5f19ce8c42212d8b29a6a0fe4f2c203b10e175ca3829aaa5d8ba176a2133832a9281d2fc0287fb06c3c49f3b6665fab933f01bfdf0c69d930d769892bd4d855b377df5d9903dea5a4125db9b225174cfc82a38517e51d92b1442776fa52115990f505664c2977e2d74f8e19c25cf64d48998e4ebc20042e81f0f8881d5a8a52a20b162f48f29fbc4c6c0a4af28a776fa2fa3c7b052217c93f676465030ea7d8d86143369e8a4f39e81a32c64427d69a7b4e40cc4073ee957314050ab415a3cf85417c4ba7d2bba68042f58b2b9a21624f462bd9cb91057ce0ec577bb2b1c45c2596f0c796ba0f269f409cba4e45f6a553ec6885ed3eb92dc97534c4739d774299fc65b0bcbd75fed8e7a06f4c567928e1a0c5cc4e5920b891499a67f1aac9c9014f86d9fe16111b49e826cd86acb6e4d8028a0036f6450cec88dbbc8e853b1f28e38809a23c4ecc9e844ca9996d6d255b0d94355c436e7e6fb43bbe5f1784617b4bb55298e3c36208d5e4b196faa957fcac9a9757cc29eb295caef4574658a9b1102aeb7713ec633dd22c699f2fac3d8532eca527b4aeca22e24b1099c1b0104205bc21774b4122f4a27b41a810066acc61be0ae3c25016410a04286aa527ddb6fb5ec817cfab5343a6dc1463f9b98315ebbb882810a38e9b9a3d7fbd558e8aafe2b6da4551eb45b0d294beda58baf6f1ec41dc03d22af791668a6105472d37164a951898963ff5c638c807705d9b6161428494249cb2f780431da1b71f3ffe62d00f245522b729232666b58850cdee93c00a8324be3ee45b248396bc27ceb0024f330a9742c92542c5de75496d504ff954831cf14fe2c5d2dcad46c3582fb67ad81c27a4688e66e19dbefc62502f995c248bf4c0c4d57efff443e139d4e87c1a5f9972a9a94d11679235a028069ee0e927477ef93420173bc39684f9dfc726edae2d3ac76547f1247efed82263cc2ac2847f9130466de057850f4fee6cbaba161021f97c2f2e76fb2d38387d4f345dd01889481fdfda3990cd27059279d54582f2ee93da25f6e205b4e5ba773ea0e183f3627daabefffcad35ceb0f2562bfeba5213e58f9efe787c4640380d9a24fbd4623509401676bca6538403cd262fcde8ebcb26f771d06bf9ae5256f5697a156256712bf5e910f3506387bdd97a6b3f815315abf0fd01d25a7183d6e011ad1ce45ea956c0ebb3d37e93ac2c6fe1a36c67a0bac4e25920473172b49fb580f4c4f02ddccffe8278280a7139125da84a2298d31a51cd664bb5b9faa730a8b95095b0012aa0322b94e86c82dea43f4c6b5c7a81bf59e1d1a42ce6981f2914ae01e1d108a5d870a1fdc73c5c0f1ec4a4e034a4b84655297839cd8aa8b70b3924e6ab6168ab01bc31a7853cc0a65fa26a89eb4e011886b8556016578597d8aa78a1bd5a8637532c311630981c8a9cf2ad31c71438a0c4237eb2d3cc822a1b51e86fdc53f2bca144d94be2303da2abf19387b850e727031d46f0ac240df3cd64fafd15023a89175b913721c0017184eec07e7b055da3f664d1f3a8f6647fe15e349845c3eb05ce57fece7f52a9c7f859165db76355c1657e3e1a80e745b2c65853accc73af5167f447767dd67feb48ffad87867c1cd959888a929d9250e88991156e1a7c3ed3df990fe1cab1153fc7496d57a2990c1e24c13af25110962cd2aca517425078e918a44a1120a517ea7435a842e5eee84d61e74e12dbece9455dc63605e4bad055274e11ccf5099d86f9fecbcb3c0a0ddcda88d8c13b17a5d8a8200e5b713e98b5f32df4189f59db8638c38fe6f26bc6970be79565c3222858c6c79d2383e0887129c04a191fd7daf8dbf2b4a7b35dacf2a493195f8ed7bc223a20d7a2480d2965f791ec793e33aea12c90fd102c9a5cdcbb8a236de243d460f2d8f5d8df55b86a20c20d9dee622de5b28c4eca1c75a0ca7e4a295ee1ac7ee5fa3921a94f5aa60d5be96ff0fec8b3b5e1a71aff85bde2d0e80ef0f51f8cdd024cf0d557e02bea767145837bc44fbff58a0d95e326c80be262e34fa00d9708e3ee11b33708262164772adf11e6816741f41cf52876f944503748a50274afff3e1819c51b86085899fc87bbdd153dddb90b19527a0f41f7625e92a3a6a19aa6c7bf591f98dfd3d838b1fa44aa4735180940fc294818cf2188f72ed4d982c1baf38c24ff964ca882b68001d3cf1f30a08b4463b4646b0693074b07fed9d4cda0d0db2b765ae40f2dd02d28b8184508df279205bc95570db52370cbc5f88191c425063422e31b95047c0c628dd961a478fd6e8702071a3e482bfe5bd8ba885f470d9384d3da4ad31a7530e727b9fb9a271a03d901ccfb9a4797fefe3a96264e8f168d3443870b66443bb6b20f0382eee26f0f652e90098ee04db74b587934970065b2adf3ef8f95dbcaecda6c5321bc5a3227030481cf3a788f3764aea959feea39b2663a37c15ed9bdee1d8c6c7eb9639e475a4aa4eeba0c173d329e42bfcef9c9d671780a855d2ee8826b7d9f1ae16dab3ca615e87060f0f804999545a79c305fe3a08bd30fa9ea5c9c96709060401c31884be6041e394d564f995aa666303939d33f585c313513812355e2ed1fd3737d4364a98e730de1128f37e9a8a892fce24bd2428a0175088fbaa40c24939feef117d189f17edbb5717815d9a2ba461e139691b341b17410559aebd433b3b35222c81e423fad94cce7b9af6bdc8563bf9279e84a6a2840fe7e1f07cb100ec3e220c4111257088fc9732c45a20c16e620e64c67e24a03b5edca7519c6df30ea1a733adb2291ec816439d75dff54906728f3018061ab7b02c9fab9320e0d49281b47f07fa0559d8775fa69582c99311e22652aeb0c8e575dc3ab7adc477b3a1a5c4cdaa004063ffb4ddafb7ac463b87ce259a0b988100d4b54d266348f0377b102add0bb6c1b9b164fd5e8d2761a9f2fe674871da0a6f722859e04e447191aa4ae34ce597258343dc363c4a7bc9319f137617b74b5822f0d53528f41e7e9089049480a8cc0fa98d52563c47aa6840be7608d8302088f44d141af7bcd48de130011456a7247da9993b7d9b13979aa41127507a54a4c0700e83e9436ea3a8461c0b63cd0b8509757b3e01cdc87fb049c70b65de2d0f2911e53cc2c582dbc07fa2ef3d78e8ce7f5c3b6ec62b01e10d7141044008afec6c1faff229c902094bc77ca070ccff526d8e2dc28ef5a3658b75ed015429eec08804288cc02e1eb91994844b512838f05dd6832fbe09f1e1f96c6b0f615385cd3944ad5bcc3bfb7caa791f1efc18484bab63fc60cc4e0ee756f2538aa8fa4ca0666c304c1db4f3d0325544133f38ff2aaa1d5034d167e4f2989d0fcc83932e8251afdf93d7f206d3d12999e7856c945e16ddda9acbc579ba53b0991ea6479da9c146090737dfe7ae48a6c0d7b2718ec5d85ab841f689de7a8a3478362f97fe0940423adaa46f39b212de99a2c86805210f32411da70664d00ac0c612a0678f814240e5ee39f55e9a133d9c095b86893b7fb8f3d53e9841400032363f217cf67663fa986224df95150b2f909d882ee7fdc10ec10bef025ee707d4689c87988919c195eb9ec373cc953777e678230882523e70981d51c2b151ebf0c2f67d9a83835686f8f9fc31af19a8e0a38ae6eff662c154aad526930fe1fcebf758a328b20edc847d71c7d8f18531648ac116f65273218719e2a02e5fe699b42ccb05fde85b477b7a7ba7fc21ef059fd5f090eb1abb7b07ba2393f530a5b512bb59db60719ec7e43de08b59e9dd267c08f4433ab8f030e0e9fa96649aa887a96032f08ee01eb3a8cc0276bfdcea6759733df5474a12ab59086d99bc4db919999d7b91191db5ffe3673cc68a570aaa8ae0ad7f32669604b87a820ed02ab91790a773918a3f2d09ce7ef8323628d3d1b37c32feee7389506caa7ad815596ce16f97098f41d408c029c246a12f36c63ad309f5caff3aff43f9b15fbb9ef499b9be5e8b906496d3928852b0a4dd96c3816e06d5449aca9ecdac4addf3d01b45149497cfe50059a7eb74285a6253658b34dc8f46c2087106956aceeb731ac07ceb52442dcb49006608edf177280dd99010efc3160dd456cdf84c393c49897392cfda545d04142248dd30ec9f08090f3c0130104242354b798c3b192d9c217d39a0fd5e1781310be2e3435e40f370cebc9c4b9a2cb1521c85082124293882f8a179754e131fd9e8eda5107c3215d388962f1fe84189773f515f359cd017a33d900f268cb78845da4848217a484391dbb3fbd0bc8781c40f5c2ab3b2105fb8347a3d7f61ca429a31f1791dd7efec3c20c33f12f4849973f5749fa55c76dd562b0fcc64e448818e22e8e03a1a701f281413b0830c53406742e612411640f828b1794334e720326d5363bc5b197c12a9c59840365d92e35268697e286c6da3602d55909f438ecf98656294ea685e4ae91eb6cfe5658a268007ef7233f4b174a8f9ac955503a1d925acd2838427bb4e87c9a3982f3cbeeb08ac75157b98a3c980e2885fc3918d5841826fe685b0abeddf46c995f6d234b2b6d78c6e63504e2715713510f9db30c28b230535c1de120ce79059d87a344aab556b701404753ad75956374111543699c896a866fb276e856e7d5a221bbdad63eeb2633b6f58a5df696581b8e1d9aef839adaeebb8e5ee17542efa288b96d84d09bf0a07d94db698260faad0e7b9ecfdf1c589d54be660e30374743e64cb58bc1b767b434e3feefeec55f240e015abde234fd6366c422285f42779140c86a440b940c175894a562476e2866cc6f192660dd75d76e6bdf1915e8101d4ed5f1d20a10dc15f5b8f7ebede0d0ab9d463d3bed1166f9fb02fcb44c33fbe2952ee776135c5dad7d4a5fbc93d0bcb20ccdde5ecbd99ca7295b9e129ed080febdb0400b57bbe0c9539fd5f7fcd11dce460256c55242faf04425e32b29ff98b428122f2ca3da11d266689829b8bcd47ccefb371765b5aae0f04e0a76a469d5bede43986db5df291de800b2f69c3bf1a28fee27d91badb115d8fa2c591a76c862717e1cf2e64e036d8ecc5adfc1cf68dae9c519268759ce21e9efb28888e8d7d14c36035301475bc39fc1968c134ec2f14a0b4cdb0943ee1f1c564b4a55c54c51302590e0392378befaee977c34ce189c171ae0603d99affefdd5892ce976ce44a63318f98bdb1e7e1ab35b9fbf6a21b5553919f00002a235a7f36279c5e5eaafdd32076d4f30fa86feaf87e1be60a1e64d199ae0d066952e0970589c54872d5d649372b001d2d39dd8ff2f8d858611e22b1133fb742c63ab83a04f9fec190646f630633ea11e287275d864ec276f0b6fe299956b29ca1d0fb14db9a0f958a1de82f7e03c0d1e16099d02f989f001c96ae6f501aff5707758d5f64cc51f2c0df3125fd38995457eee8ae151826cfa2955d8bf73ad21660d2190b2e92777b38d9742b45212bee7387c1d99d44767637ce94d813c67c12c93debb2504b5edcc26d4a16bb4d6be11d63e12aad925a7079b2dc220b22ffacdf7e92874d8c6bf6672b28db9e0da2eb39fc5268233814371dd5ad015051eeff14df4c132c3d494b345a32db8d0079e7082bb7979cdfc9294e7c59217d95c503ee319117483e2112cb5166464f1c13b23aa567973605124c8bc7467355bb6e9d4690133a8d1e2683c4dc9cafcddc686abee00aa7a6463e288e3e26244863dcf35ea0a8cd0c4851cf27952fcc10269e9db228ed1c897de400e75eba2a3c55e05d0b61da31439983e764c494e011cc36c7e061c4c49b0718a303feed3941e587f83cac00fe232996e8d06ebeed0b2a866d66298b29c2dde1ac75e81c2905556a5a28f95be25282a9eeac2d5f2b6ca6d225d4b42fe45d5ab7033045f4019b34e5343484a4397a102f22c198497d4c3418057bf2d9858dd40b97a10143a0c842c4545013d2c25607756c7a40da61236de1106f861a5a815db9636f36f8dc8ccdcbdf8a3417724edb86eb8beff79ae1a714e6f616f524a422b47366e988c37851667fd0bb7b5e4b47a6310286b0e0e31ae7190c1d2a30e688e29b763c1ae515f2cab29471f38a28b4de7e1ab04d16848f1ad7284a436bed89d9217c887d60651356800cf4a63fe868a5725df28b9e5206af4ff31b14c6ac58b3116c58b4eb0049441766ba9199fa7ebfef60f0a4c66613635361c660ed8762a09a9b8338f6a06c2b156245971daef4af4a93d6af083e52320dcd2bcef676ac2a9640cb3cfc1455878146e7819bc073784744b74e616cdd6d066022ca4da5c7546d528052745dc074524ed8001e1078dd6053c0087cce57f057653bcbd5d6e4ec8f3e2bef5286050d70e9082a7e5af1d04ab9155d1a27217d892ced11763f64121a66016d7169c589cd6f2e77ddcd804faa06c5fbcee35a9f72dd2b3561f38f42e6cefe935086532884faf4f1b1ce2ec1991b053e62349d19a10d20313cac86b20552e6f1873be2ad00bc32c50ea3ee0aa0fe9841023a0a125b18218f615952f2b56f01d3b3cc1ef357ceb010dde760d8f231fef7c9b7065fb1ee9f5054101fd2f88b4ad35244b858c61415c1ea0bb1263bc875be328f5650587b56b4593f547f849815601b944f5380ac03d3f8e0b845923127a8f47191c858579c796267040225070c72583ca6c6243b895ce2329272b580434903f99a4fbc17f415b123c1cad06a4894e36888710c159ee7a7caf408725173f906d4d88c6b1e12208b9759ecb2cd1eef90dad733e6547b1ceb610c95c396d63c3b1861c5c14acbb90667810a03e6d0d13ac6c545a6c40503f5939feaf3e71e3939f264ac6800229b7ee1fc4b0470c6e49be9db4a8ce594234d48f33d3b0544c004d3092698997842568cc98979b299e8000632ee299ce14db6a8d4988b7332e04a8732c7e68e012732160655b0b18768131649eadebb566f58cab3a2ae9aa30ed947cd21ccc109abdab9ed0c45c02d805bb5c451547889f00083c0cd7b7c57d4dfce9077208844cc23b770e222329cc759955507dca85c119ea8f6d239eed290221b0dd512a423d158c4a7f2f38e23ae5835e870a4d0ce128ed83d7a9aab2d90d703b1c4a3091d22ba654626782b63e07320f66731dc817b5391ce9deabaa8b7a38bd5eb2ea60cdb5a52dac58cbc34281db738767c28a13fb3043e0e4c65ad24b6879097422c585937c58b061486f0c975df9596892a4299d41d319620ee9d9bcd0bd96862b220e27fd32f0b8b17d18d4ab7529df55b4df908428062195feaa751a57427195f019108c55458aac74aeeb82407e7b6c750982ea212a9efb8c1772465d4053e0471ab90f4d81f5f318775de5bec31e35e50be1141035b1fc6ac3f6221ab51f846bd73794f24023f537eadb788126835965b125c134baa7f819d1723bf1195833e606c5e168b9ef5572d1fdf3a18986814095613c5e36ff34fa012adf45bec2914411c4fc2c1b671ec561dbd0da66ba511eefa35390d2e97906cdb53b361834d93a4ada0c3fa302848979a0bf177af7f8bb97058387990a2f1890ac0d940c1160d6c8dec4f44333de9b468ad2ff0ed4e7993b97f8e2de30ae7322690ce5dee573efcbaf01115cf222f6abe8c196a366d139491786ae8c70b383bafe60b6dae01ce27322f501b12bfebe7ca7f0d21c03a562b61ea3a28cc5c86cc54433881bd5afa079100c1161f9111417d4c1028b07ba70f069670f425ad697f06c86c9195d20dcf0035a8b38935412ea8aabb9f208e989a1501590a44c9503720d15aa1a0a6a071faa752bca645bbf71de0457b79536e4b990ddba5e6e316e76882fafba84707ac28f0b58d81728db65d96de24268c12ce6cdeea125d31f4303e5ca81af19164bfb3b2baad9d49a27ba57296fc2537b4ede9f9d3eef756ebcbbbef460da4a6b76d7282a8a49b42edc0594ea57f88afe26fc8fc0c8e514f44ff7ea117cd81f18c523b261124dc86634997bf086a42a115280b8c2a877cf8e0888ae7c541f37b18d280224e88cecc1582098bf060c8bfba3899ebfb370b089b1b15425419fb05c83598507bbd1c640ab74b0dc0b08ccf934ae35b981500a7c630d477bea5d11dac90ed5f0ffa7ed7ea3f7357eb0374cf7e4f468583de109297fd8a4e6bf34a2b7def6e7d2c1f2e74a0ee2a4ccdf500001446740ece212a5febf6b367f1786204278e5a802f16442bca09affc2b0b8ff94f03e0bc5d37a551eea839414aaf4682367323382a98a83c2ca433993c24a6fdda3db0e597f7c9964a7542b99273e2692353ac4f5a9bd597056ac640bbca92e14571761051353fba86fcf6be81d7d302be3855eeb055a97bcae0b777cc766788eb376710568e78f61c0bb6fac6c247b0e8288468191ebc7d8c0ec4bcaa124de487afc749d30e094da31a249d76e07afb0e03f809e181af104eb6caf3312d40e22f989c44711dbe246fd27c6bfb0677975e3185e9770c171d73fe1aadd77d0c610b49331f0e4355086bb4196dcf8d8d9d87bd063fd24a8a10f545a95374422c363008a7cc742b6c36ef8656e0692e7265c32dc1516c05f67370990d2863069ab3473522727ecccff3df92da2599cc32be9bd8393ef8c637488cb7f1554e77bb689db8b2b96401a41ed866a0fcfb2b3c6ecb1b9fc0a01fdba2c6a31de1e876d39f3ea61fc4e5263f9d9d5cdbe82276b46eee41bd520941bc9091f4a846904fa1dd6496f0db0677751008c88e769fb1fc65376c578fc2c97f1a510befe66e25046a22ab0ba34e72e64371d87e683d68470e420a4b79354453f5cf8349c7d81fbee83ee9e50069f44765e06563f5408f263c71d4c8f961978f36e2237c7d776f9aff2506a730239fc466aaa1cfd53a2beb06387b8eadf767735ed9eb96bd6d9ad9037a9de0150500916d01e987b6e1ae1d644ce656b5288d6d45917a928121bec8e5a4aa3c2893c65b6d2cbe23168ce8501a42c43505b8baf4fe94513d0472f69aa218f897991d05c706a2ea17b2536177faf4e91d08c5bb8c1dd7af0a09e88a306a5ad0e17610f300536a71f570069e73025292216e5b76d3e956f99662a2ed7c240658ebbd413ede0d7d90d015411f50bd8ee740688998e531367261f6d769de6aa505faf70477ff7f50d96783894619e93c345195e17532270499c1cf9bd464a3af4363268afc33aed71c55599ec3d76136e75dcaeca7895ac66b2c039047e4c8e67339ea9f4f01ebad839cf47911d3cfc738d180a06368b6c9ba3f7ee365f9a6acc3835ad6094d535afa9e063e7942e49a736361e1a73b5fa3cbca607623f54feab3b4493e32edadd00b919f8da8bd2d6effde035bd2f3bdc73f81ad95c3db0832d06da94ad97f6ec054815189de9ac0e36a47665fc4089793ecb76c909d91de22524408fc31b772e63a91a03aabfbf2f32371a475102d6ce78916b9e9031f01227fe1d5a196fd3dd59dfa884e91534c324d309045cb245fea0a7b344194a17d40de18802203c17e517285eb543ca75a9bd4a9fa3dc1951037ca222f7911d1343abbc4d4c524041809648425a421a50b114d46e885ec14bb83e6c6d96bff45a8fe7d39c89aaf544ef4bef7bb990944548d5aafc8d960731f25cc860d7c0d29da120111c8c7bfc8e780c86c621f646a4de9253efcfdc4b2e2733e50f92f7cdfb7aac4e006ccbd505c015a120713d68153dc0050287bd5ed230522a861cac8d3c99972a6c3d83f4e68334de158037cafb32beeebac474c8ee63be34bbc6be8b68b1778c83d2059956e279881b70ce37a6b583ce0eae232422208b999cd46abe52e73db0ba9734749223f92b88174affb1cdc265da710cb1df6610b565898e44cd2b351ee95ed46bb5b5cd5701e9601f00efb87840f4f807c01d2706901ef701788f8903a2c73f80dcdae655003ab80fc01b4e1c900ef609e88e8b0544877f02dce2c401e96e1f3c90ef0f8b60d3757e9b6ff1f342eca8ceb788795d6066396f990dbf330f38db4656066d1c3ff61bd70c7d786e7a0f47cd316ead8e38a779caa5a338077a8163e6f6c8fdfb7b37b6aab43483d267c4259b9257588e4d885e01ccb2a43a772f5454f798b9156f45b8e4e79babc3dc4940fa55f1f3f2259e40ed5712902721f3ab1ecc133a1a7b1f5558e953a481d73ab1174dc176e535467565d3a5cad1b11a56d14a014d9f143f5375497b8dc82b84ff115575a077edb2a0504ca3364a56fc4ab0cf006e5c6200e9b09f80f7dfc400e9619f7e62f195f48dcaaf0ba2a86c5bda713b80f9ab5edc775d4a16d40a5d51b98de69916c67bcc5e75ca0c2143ed4b706b709a5cca6a56e9e52b9c622a8bbab89eaf7b5afaa99de67cc8493ef85dad32f45d46ab11780516b56ca2f48412478ba240accc3918bf243b60fbddb45aa1cac893bfa97671ce5d7bf71d3af59d6a1b70e8b9aaeb5dced89aa277ff54bfc069d41b71ca781fc201f63f245d740992fadc3256d0cb1bee9dbd56c166ea52654077709b9052a39b8ec1039ee0b4d18ec4c7b2e36f76a57cce7425610f756a2f6b663b47501b1929663ed57c63571f14e78323775d4c8c7c4f014245de2e2d3725173ec4e2c8378e30466ea32955915d3de8ba62e2097ae16eb03256c71547e696d818b92ec14015d9994e2131b28bbc17879c93cd424614bb0045631f7da45e8f893322b6117f7a203631940160a95131d688acd2c1656421fc58b0f465ef6c6e789518af8db102fb5051dde63b6913dc72f1b46b3fdc18c3caece01385ac61c4605f8b7b8811bd76e63472fe3f39182f2c65e4433ea2c212f7aab5c50df33eeacbdc178b14c7c72d899da26071daa0f484e6a7ea67982cdf0e945cd4902f7b7b2c3982ddeafc0df1de406575b7795ef6950b3be959cabe1e060e933d0f373ba8010d5f3767f69de853f8e44648be4dde982be239764e3d403d1a525ff25178d602338c00f60cfbd448d67312e41d0de1f8d0cca815bb5f03e4d6f643c527396216d181c417bcbd25b86cbdc94313ec76e01d61008915119a94dcccadadc1170f1d2560cb38a89c5150c947ad05ccb6666cc8bf94bd376d6e55f6c2c33c96f24f30c9ff5340c4c2fb9aebdc9819acb86042310c3437eab483b6c553cfe8a93ec518afd7badb74954377bfe14a2a016238875c0e3dbd26bea8f69af59ee4c027b06b2df4f12ffcd407981272d03cfe9162440fd9e51a9c056fdfe28d9f95afefdc86e7572dd2a90ffcb3aac1bc47b0a405281120311834b05b8decc3b58180a4a9c9d2fce0b1f9c4f5e11f53bc1bf82e2a2af8f6c6e2df8221bd0391a53a4ef3af5a86debd92b0342ad84534133a0610234a1720453c9ff9f9fed84fb00d79682660922a572b1e7fd099b261f039084f236575f9e9e8cbfc5d255ec2826103ffb34f41c44dd93c0aa847f998057fb4e00f12f761dc7ae2337f2b02ac715b8f554fab3388fa047f2dbb9132498734ff20373f3052b5a3b50a6c3c9dec8ad80bfeeea29892f8e4e4ae8e7c8ad9aa3c36aafada393cc2773abfabe997ddc5e1c8652b013fffbbab7c48ae76c9ee3fa76e25b3f353cdff24042e46971a06c7a9611415d33aac4407c846b0bae2269cf658e093dc4e1dc276bc21bc4ac289e3f5f4221d77f97af5b88b05fb639d78474f9ca47a6805df94dfef77b90c6bb0cb6cef70cef1aedd20352fc57126c4f019547ceabc1089cf88e44b3a2ff05000ca8ecd1607195004b3c88dcdb11af47933dff16e0c786701f03bf1cb6abe71d045dcef49641d9650eae41b8699f5fc2c8ed6ed475d1126338049878c37276f9febe86f4f64203ec212c8885058ea852214b845707baca0104b27ce9ca22a354add2d59328e13ae1e3c3c241ad3e30401e8582e9a4f1820149cafd1c526a7eb03bc755d4f2f8c080e460af6db0c71a3832946e16dd0420f629ead6ffc015912d83d6ef5d673e3ae9f1a14964c26b895d20bd5de2b63f78f5abb602ccbc243b7ad3c74b69543bf59f2e8362b8f5627b6557a96ea1995de95db26106bb3e0d16d561ebd65e1a1db163c74dbcaa1eb8a6daa5ea3f45ea5de81d9e29dc68352d636ce7882fc6220940c94d5c0b5d99fa5a35fda6ee2677d17c6a0be513a43c62864c38711d6e6e2b6b0a7fef7912edc561afa196d4f9cc1d984d352b711dff7220aaaa92da1406601f77d1c61f14a16937b0fe3d19541c47b6c9c2b2f4c5895b54165155e0badff3d67db41a80b881d33726122718da49ebe156f30a3a4c9d16c77971d349299406ca1beda1bb36d299cad865a8000fbaa1318ecc93db87006473b28ab4fbd8681de66695776ea9457d5f1aef8982bdad17c548c7e7272fe7265000f77137c326b35cd1fe3e967ea1334b60a738f4bce81ca3f8a6e6c9d1511bfa757a509f93c9ac80b721323f9f368da86949a5aa52aeaf12e860cb94a7323d7b5e78e91cc8007e5dbc66101b66edddce3f8c8379554a86772c71798f95cf1bb67659dc402a6f19eab05daa99917997cb07831104f1b99956c04106062b3c8bfcaf19ea49eb1dcbd92173eb9b85c1cf593e9c4927d04dfee15c0cfa0c0fdfc58fdfe745dcdac87865cf0cd5ec467336be346a74e1a8c7798ef2b95d1c4ee2f556f74009a29a2f0fb4546e7490a0ad0ef43045d8237bc248cd37a61185be2d21a04139086bfe0053d9539b5a62d518d67bdd9b21e8c8c7d0f38b83c89b74b58d59dfd266f83bdf5003121a31dde514182e4a86e04e6ad85881ffa7368a9ac7a53f9b516d9fe96a2d09e8cbf11371bfdeea42a9b581c03dab778063024dc44548c3e55c48c067f364328a02efb8e0f9b9bf38347d6a743870f78f8a0c30f1d76e041870f38680f185cbee2f2e51e40e040050e10b08081050e2ca00d6410e89a1c08d982b4630a91a1cb22bb387c16bace3ab1caba7bbf0cdb15a28f831d7c028eec9b0099c75e34705cf1d425d01a1b6db4e8c2c2f30e2326f698d86841524799afc57c24221bb4daedae9e33e6985119237c204eb3c596075aabcc82f827b86664fff34334fc083b88ebe0796bef802f2c7205a3be9264be865e13b489fa51fce4b7c4ef22edef757aa491c3b50fbf17479070224c63937f0aac74989c2a62a7cbf4a20a333df30f759869991da9614fcf7c4f096b5ae6132ef571a037f4498e1254720a1a3eab56ca7882504e792112472b652c68fd96ce345b83874bcb74aa164437f59a53c2e811a3f1931c93a5d7524348dacaa9904a2dbc5a4e950d80045deb797b6709ddeb9f07efc127f33644c516cd82cc81a040806c2d499189606cfdb764fe8f270f885d9124b5108d56fb5da6fe27f2c62f262999900dadff4de6fea4e40150abd2840e99e155bfcbd47f543660b24aa2c82331b4fa4b32fdc7c96b3e6f3f87665b2b75c3ffec2fa7c2ac244d1178dff1a745be28175f40331b90cf45ce171cee2fc6944e94db9fde08754cac8ea972e31ab968391e3a5eb252c5f9b8715600275faa015fc8df5409550afd23921076e2336ca788153cfca6d6ac825b82af5d2425406129fb2657d08b1201d9ee4ae073d06dbe32ac3c82de490733a5302bb3a4d1b29c83f49aec037dc0984f513d6c6077ac23641f76eb116be58835b69ccc22ceebcc441e9a12f384f459e186ac5fe0ad586e87e2982ae0b4876aedd8c60fa37cfc93f538393f7c50232fe0aad5ecd2350490298734a58cb002f48bb7bf34aa1e5868e091dc4aa813d7b6f4060a6a1d69595134a281c29230aebc020a0cd0a95122a8d69670bfc1c38f5419cc973298cc51fd24d1a5b13f8db43e459982c9d2903909f7bd374054ec9568f3256af5a849e1e184119c3405bc5e6cfd066773cd80063a826e45a9de87d7d7bd7a5f3bb03d381b3f5420e13ddceb702026761f4205c2544b518ed458d1234b9d6d5d07661d15da0cb3c6f92119ea157a5f203928a704e9060a5bce85150d0897b35c21ef6bf2f7b18e40b82dc039ae258bee3f3845597f896ca6d7ca8e9fdce35dc25fab85e2596a433c22878c953a0cefa05d017daaad8fbfd7428ba3eb531f4e3da2bf61c35ea94996aab7350d6aa3d516feb289875f991f7c29322ed04a392cc56bd4eb2858d6fbd0fa57e6d88877df602a6d8010db5b5c03c50582cae2450ba802f9fef05ca35eeb472431ad62942c42b14bd4b7a0b5d8a1f9db217f51c54c31d8db96b4ff784bf529d98d1dfa6265ea9130a1c42c32d2538710618938009595e579b26ad3362dc764df9bcf7838bcc0e90e5883a853a61fc8d30f8b1bb2c3e93a9dfc98de4a8cb5d208457479ccdd3f74b07d365f9e904800ab8c532c62f3fdc0ae4fd1519aa69ef3ca6851cf7de2b4a784e216ae91bc4d676ad00257974c8496479c62c590adfa6433bd38ff6280f22cac385eb1125b9d7906720ff4b90ff009737c18fc4c2eaaf956584e50fae87441c8842c9e2c2e1911532ca843c044c996952ded62d8996d6d21759d3a178bce7d625f248e419d9f119df5dcd6244ee80d85a124b4f3b4bc53995de2ee8ea63b743ba22eae4deb5b896c78c1cd917fe0440cd8023a014e665b3016564d0701d0bc9274b687a0a1ac7a3a9150a5645b7c32cd8ef96e2342e610244497da1d042267dec44835a3e3d7dfe9a6c2e3d597f2ec1d06ca326283180bf5cba4b72e5ca751e8ed331d867049ab4937b2bb6db9a59429c9143806100670063a4cbcec7018a6e22cc8d93b3846c6137c31343865fce2a7c5091846be05c630e2863b908aa4e00505cce3259ea0dad40e9ef12b1fccd12bbfb3be48a4142efde979a9e91aa491568ea19fe35f70b0d0ea16e0190c3448bfc33a634ed4e9953ffdd80a62c50798470c5107ad4fdfa6e88736ee905dbee2c66f86452c6efc90adb816a0f325cfcc61c91749660db3866dfbd26f9b9cddc854f86edbb66ddd1bf8a9eece04818df6b62120891bb70dd6608c490d469996662e6ad4f050f05abcd4d70d115b755afe6fc52f86effb80be181aecbeb6f92252833e90701a86af0f249deed8631c93041b7aabd5cd8f517c248ca8c531e11953288b40fde9f49c17a24e9f6499f84a164f992371fe4ebf8263a2646dbf7d5bac566b3de5ff20185362815abdea698941241130be6401c9dc534936942c6fb170644ed7f5b4346999960f4a9306e3b67d9bc73826cad6251281646b274a7f584d1f4a296e7c934703ea9a9ebdf0f4993ebedcf6de323d609bde5fea0d895d572995064bf16f37a46fe8b12b782608514602398c8411c19170e3730c430a41c48ddf47dcf8a525ae8cc916c7c4974eb0ddf2d61d8a4736db6fad5e6d1fdf777ae54bdcd8844a47faff92c2c172438f75d79bb40cb7fbc4da2545a4b8c530c2ae4e8cb02855da460df683a1f4db578218a4bf6ef2c556af76e2d04f436930b6abc148030a97c8fc7c7678a6a371e3e770c3d8bf7da56d2b75737e5be90b8ddcedb78f61ed51b100c7f0cbf03f47b85df9f10977fa4a8e064d1f4658e9e3c7289128f26021ea889f2afdf05e6890bb004fc3b2f00ceaa3fb541b51f8589f238f954f7de90b6d066ec986076ee95320b8a5af41825bfa1515dc120a13b8a5771f97b1d5c6ef7e3e0aa51fb747a3e0bdb47836b47c1123342d3f3ddb9daca9fb4a2dcfa56f696969f9f64afd2d29b0b95b8b7ff5c2a6c267c86ce1ee22c672c6d20690c209134e9c30e18409274e66308324e64f9c3bfbc44677ee48ee934b15dca11ac5cef8908d5846c4cca10dd309657d8565540e339fb35ebc9c3b3759368cb008ebaaf5fc72b493529ede4fefa777aec4bdc71ef8ca3bd7715e4c55f152ac3c0af58e7ae75a588e5a8aa68f8d45a230fee0c24e2618502f61bd5a21e219760115847b22f1da97ef59b8109887c993aa8d496db32251fdc4d45e09ea3dbd13367a07940710e04a1a9c8a6f6104e6e13fdfc433279b0843fd6a25c5793ee49b1e75ba81ea270d4e2967bb9c0a4bc7797189d80fa078d90047f5e26d57bb5ca7d38a0986d3bb0ba7d389f362e7c50ef8e56a74ad3ed26919ccef44fd83a9f798db7679c3ec8c151b11e6329161fce70c588c45d9ca17c62deefc78f2fc69405dfff84f2618b4a7df2e5b53569672590e4b675dbaa296b5ac652d7398c35ca6791c667ae8b1d0631e03aa61f2984b0b5ed9643c73e23e7cb6d13c1a4f443dfd503fe30b9b753b07f55ce984427da8a7017551dff3668261e593fe7507aa650d22dd88844232b52b55860d1d168b9f0c269379bdd1755ebc332694ebe3faf125ac63bef5bae805be235bf18261e6af70c396790f5f86182de3db11e6738558ec935255ac1f79eccee75c86fad0b5b8b15ea13e6ed00403eabd57ec545cc633ec02ea93a82aabf5e43a72dd7000e8bc78515e071a9c6fe35d61996a7ecc01c33fbf343c589c4518c7ccf7d8038e991fa1601d51ba280503cad442903a519fa31ce528944798f3541f57eae7230ce5026774b65d4f3866c29a80c19a4a5721456a074edcd9429026126f1735381ff5b5ac8bdab5c2856d03d4d74f222cc2222cc25c2e97ab63d665dae52a97692330ccfcb62eeb4515c376192abf010708b7655d646a81fb1419767e189182d0df9efb82a09e48bc49bde27e46af505fcb6878ee0d41bd73cd4591f5c2f843c45ed4b76be7898b894bc99d6114e24e53cb5ca6030d33bfab55ee4c92ddc9321b1c97f6c82ef304a4c1f95ddf38c433a5af85ed2312afe6f3354f4aa05347a0c5cdeda53ba5dab7f6ad7d6bdf32897946939adf9c4c1090beb96b9e2335d7dcdda5bb77d588b2dca79151cb9c48308a3cfa277d429bb8753e654d8a73e7c904037df926930bf4656f3fbb60199e4ab87336e1cee9ee533db69ffcab17af4d524ba425accbf9d348f3a6d19c8d434dcdf29c69c46acdd085b89af69dd3abe61917344d339a93da348daca335ad6a5aa59a4667f609259a840131ae87035cc6853f1709c89f1f83fcf9fcf32be284bf18e6d3afc8949f8bd33742e355fbfa42fb448da3005b9f5f3ed8482a65d3f6212b1532374ea6779e9442bae68e06979c160ae92ebff6fd53fbcebbe196d36510fefa9e0ddc73937e3ddd53d30a3a1a273d5c058264e96d4f3df9ee859d0bf4e517e4db05f99b37ffb61712b942ba5bb5a75f90ef7e2e2ef0cb975f10fe3ed9309193974ddac753c4a7b32bf5d6f3130a4bffe35a79d8a8237e58fa4221dd6527d63fba8d3cbe7efdc2ee5222973f7a8f2e22a4bb3ddb4faf47b6cce6329226be497e5607f66ff8baa1eac6f62a1cbf708d6d2bc7f07faca1041b3291df187ad545be31f46a48748e3f56eb86b646993f21e60b066a90b5218e639462e7141bbf5d7653355750a9e80aaa1c1cedb46e4ab1f1359304369adae1a862d82ac586b62bd929c5862ec5727472d2398ee33ab23d85466eed66790a8bdc95febf362ea3cd1c869fdfe6f237cb86da4c9bb94c8c5f5859072737d4649735a2cb5c73a818fc3155356002c9d204a7237bd0df60ff4b8fc65972435ba5ff468e9ac653ca97744ad6a6b8f159d547e0e4aa9f6327249669c76cfc8ecf53584a061b8c7f63111e975dfe19c5ba2cb4b76dc0c597bf11fc984a593bdfbf7f6910f488cccbeffd8dcc71074d643ac1cae74e5ac1b9c47fe9e8b98ffd26fcc25f101507387ef114a53ddbcb000488654064e815d3155a66fb7e1cbd00d6d36caf759119b6ff8000f5e8a6cd8c03cb7de9e38f1b84be10d5955f4b1e3b4c6d817ef30ba910d5c5d1307d3707229a2f1adbf263614315cb4cdbd7c3715fdd809c58373cb1ea2603e2322a29bb8ba2bb7da9d3b3cba0e8a34edf79b63eb1f3a70bda160060990d300e9ed956618edb262e660cb8bd7d4038e60656a64a5ad89932e13852b2b70a51f570cf7dd732dc77bd5abdf453e540a65aa1c16863c3f14b0966ff86f65f473db840b431ea34d83c0dfa336955af5cfa79855eb994ba94f6f26a2eda33cde9238fcba0becf457e61aae4d5cdeb4e9a14e959961e643ff1da35857d97fe03f985f6081b461e96ece453cde34fc528e58c0dc425e19252ca29279506fd23d19421cb4fbc985c1e2243dfb9fe1e4687e924dd48542bfd429b4afd83a04a3574259d73ce49bfd2b74dab94a6ce054dbe8cd167e59139cff539b597b56af4e5a433c618a59c5156227401bb0cc44512175714b1dc9d5abb59a534c90665dc3c1bb62f51ba3ddf59c408cd7603c726097cdbbb47bfcda7177ff32f479540d830ba22d18dae5e19b9e2935ecdff8115f10b08a01b46d70f500f01c1d3603ff703a557fc469be9c81870fb239147592c6a999b0af43ab284db1f8f5a66868b5f4024dda6697758afbc555b2ee7e9b13eeb954dafdcbfbfab784e7f173528336ab06d832e34ba5e3a323a9d4d7dc4315ac87c9e8baeb6032b8ef4cc61663c36cdd221bafc4a3213c0e5978eebd66ef786c83b836543f0f28a141b46578f8eae5ea1c2baeb49cb304d57b1feecae9e79add6cefa8805377ad53cab84d5b8d33e6a5dbb6a75530b44347c5ead28433eb0fc6ae1b46eaa14965f4110ddfefb0a0286c4e786f6320e383724b9507352cd84e388fd4bbf9005474d97c271c452b06bd0c8f597a6dae00c6b4b2b65f8f15c7e2591bd5a4939e45c7e2521baa9cb2f21702ed79d2ca2691f91ae3e6a834660d05c238299e5b2cc88e5c7f16bd52a33330b280572434424a594d26fa494ef3d9052fa34729854b325320303f887f6a994f77815ff75da35683d9562dbfeb306319694d87e17c27263c764463fba7a7529bb82bda302591cdba1adf50bb5af327d0ba6ae57da0295eaff05ccf12f418ec0e10a2f9a9802072350198a02d5c410b1a4f3e0bffc531c9c30318215485a373842468305ab050ffecb73385e430c248678525be5844a2983094e68fd04018756105e3733909bcbe5d7cd0f38377cd5c6038e9334081bbeb4d74523b733c56fb7b98d03db1f5fc6975b30d13a4dca287bd52b297f72cc6d1d730e367ecbd060d337c2317defea536f33f988b39a205065303d407efc38be274383fdf168c804c2737e913ea7b5aca7cc6e7f57e955a83d52af82683de319eefb1b0c9ea9dfcf95be9a60d8be725d7fbba556833c710735638e3f10f03f95b2b6bd0ec9c1ba4d29330ce4326c547ad22b59fa012292d59991cbb629a526b7e40a6bd206bbb4d5abfa4d5b3a3c37e6f20bc9ecaec0e64e9bfa53aef7216754a100d5a15e815f80efe74ed9149edb584ab030ffa341f9df53930f982f8606e517f207f05c9d39ccef6850febf66f201f3b1d0a057008f65e6322902f04b0a5f0a295493033805f9b9b420bf22ec30e10bd7bf8713c00b532f5e68fb07e0850cf479e17673fb3d6f88bcef85f5e87694b873258b48cdb9fd354249bde2322e5f0178354249433648643776fbb9230e894bbafd43653459f150194ca07485f58a87be30ba1de5da0cddf48a932edf007835433743ac1e62e9f48a9b70f902c0ab11d269794b8849af988ccb17875723c4c447fa0425f58a9970f9ba7835414936d3e6a6578c74f9def06a846e589425f4a457bc84cbd7865723f444e84713fa09aad22b1ee3f24d7935415582906a1052935eb118976f0daf46a8896b73edf48aab5cbe287835423b3c251e219c5eb1122edf16af460847288713ca7925f58ac3b87c59bc9a57924d67c3a4570cc6e54bc3ab0962e263f281d22b9e5dbe33bc9a20284027a0209d5e71122edf15af264827a8850a6a15f58abfb87cad57f32a32b246af2abd622f2e5f9457f3aaf2425a79210535e9151f5dbe27af26a849906b4690eb75d42beee2f2357935afa3d78cc66b76d32b46c2e5db793541372c16164eaf988bcb97f36a8270725a729ef48a8d2edf9287c20fc7f0ad09dae9156f71f96e5e4dd04e833c132fdf1a261ae2ad09e2e118be13e9f6cf58d39eb32b5b48d5dddde7744dfbe9b94d839dd43780ec0c2cfdc2f8e3840d234bb2644e44aa3f524a29e597d4603f514c064ba5e6d79f065db77d4a3836ac3f40f55bd6fa55a09f94d6efb3590ed315e8a72b6a9876992ed611697bd25dcc65361f87e98f3737f587339ad59f99830aa509f6873b32b9c08680185c6c2f6d21a8ead19b07de1f600dded4930a5395c14e1691404c3c333333333333736466e639048ea5a5f2f5778c5fec77f65441dc0db65ba8bb87b0dddd0d85d36e2cbf9792588e31dc86a25d62f91987eb8e1e8d3a9a474719756c1c332bc7b4182559fc90794e8e71e4b9dd5a0b0876caaf2453d22ea594ce1db9786b5952388a5e47b65862675c7e1da9a203b2a6cbaf23b02340af1ca224b86d0736fe9cb16aee533c0fc99b037bf930e5c6e5d70d125e3e4cd154e6d4c89882e4089f2a9e009a4798dc9cb3ce39e79cd3a76bb2d61004423f9c9f6a50c530efe57c1c1868b0bf6ff8a9d4a53df0d0f4ab7638c065fa2de0324c042425897c30c10d5086a0e42849195618a107583dc2863616416ace79e4a1094552caef80e2e4c5d728f1c0d5722f41044f5c30d4048c24aa04516472b232840d6b0e02f02801b3a1e9ffd84aea8e31707040920110621c51046e0718b89cb4a6987e2ae931b048a26cc1c48b8a231f1a106165872326d0e18d10e16ac215537c6c70f38316540727350c8b23d54b14a008402c08828b295ab4643338e9f677a4020c25e4c0093a104216850bb298f1aa41c6ebcc82165f40e1e201064ac086c0c21a2205f296925849d32c19219d5864872aa694dfd28ba6d9a629e594372ebf78406254f9bbc70e7f61470fede5cfaf477bd92619d9b463c70e4e6e68bd0b661a1f3e6690c1a956b7908d924a0fa4c19ee1853438c30c0db60cdc6f5ffdc21dda677afa491b1b1aff4226a232dfe4e16098f99dc7c2301386a3fc90c8957efda3a1c895f2e9fbcfaf87fbf9dc94dc27039106bf6db6d674a856b0c0c23fe832d6bd1211d6ba0c68bf0adb03ec86556ec840fd04fdfa4668aaf63718a199cf4f6be2759180f6f563d0be7e459cc82fa2497617ff5a87bfa70e3b0b93e58e4844eac1d46f3851d3e6fc18a5c1086b30bea66930212ed360308da857dcd1a68937a26860fbf93ec14374c1cb4ff0187139a7cf496a1d26ba3c803f1ab9fc851e9b532cd7d06712689afab991c3448f1941808b70e5dfd0be1b3588261f377060e987f5c7f663fb9eedeba91f3b8cc680d7a2344c8cf9a7c16031723c5a1128a002a6800ad8724cfb70fc12c6987d21bd7219b6b388fcf955971828fd8c74c7975cb7aac19abadd2a87e9e698289bd0a7807cede75315d0e71e582bd5ad5d6aa50aaa76b020e756356687e1d98e84033f65c35aea61c70afcee3670fc32b178a15735aa6e9491f3bc924723bd59f2a48d0dcde671144059e4d8d0d4a6a11eed81c7a3d8bf59dcfe66b39da77e8f9e50bc57223708bf90eeca0fbbab451d21bdda73d411ca1afacd166e95b7f2dbdb01dd51ea45cb216887242f08c30924be38e293448f0c5a209484102ddabfbc6ef82aea0445a20b9bb22cd6f61147221604febaa84116494fe8e10550d0780fcf102b3c4a5c158f0f3c371c1951ab5542f9c1050b9f265d14565e7ef9f840614b435897e1eaa3b3430d2093131f1d8cb02832b4cf8b1e583a1cd8ae0c5314b60343c85a2d82606b44e1841a846185e52ebf7a8880434f151c5f3d51f0f03c53bafe36e5a906a9b0337eb82996461137b0362ebf7a704c3cd87af9d573c331c1b2cc8caca9082619589315dc102c0a975f4600b5c0b65c7e19918418460c41a7dcb4cb2f23708c40b21da15625caf0028c2ec9ab082d4c48bc8a8882caab0827745e452001845711431491e455840faf226a78314972e1e71b9f63fc513dd896a194524a29a594524a690b28a594524a29a594524a297da16070fc926a50feb8ed42545d8332be50abb5a9d43f08aa4cfda172ac7fbfd05519f2d00e16542b8039fee54a1c2c0dca8f39d20b8e3e7754ab704c627e5ef5741f568d4be188b2044aecfa3b8767627784b610445cfad11c73b3b1b25dede3e7b2fd90f8c22beeb5073907ab7855b5f96ddaa2dc9045eb9c06e97bad537be7527904abf96f2cd3a3c63c6b235cf116f5b9f4431bfe5aa779f176de0a0d43bf87cb748ec3d04fa56ce71e5f7a555f7b8d6bc71e399afc533548df5ffb4a73228f1f78467bfa8d8457a5a7df41b0cce929ea869d63fab006fd93a7314cfd92e70cd6fa26af7ee7d5d73ceda67b1c9ea6fb9c687f83ceead577a79a6b9af4596783254d6caf7ab60f6bc7bdbcd45fb12bd86818b07a2f317c910d23a38fc85d83b4ad8c572cc159b2e34ada399228ad890d19e87b34c001b657dccb68fad40e15d87125ef649ab2769e6cb0ce6dfb367183dbf62fa1bc46aef62ef4b321cb8b7421ef1ae313db1fe3f768a4eb8cd4a0e7e0485a955e310f1cbf8434a8cf2e2b80f534f343130b2c15cdfc10b5f102e673f47ae8cf4f2b6a18d7649acc191593ec303ef324b817ce0527c0bfdd6843c2869c91911bcd98586d7683c3d3dce060695032cd4365c107f0a71e4a088c00ffe9a1aee004f8bba905eec60f15e3187fce8db459af909c63c2f59f9c11c7f86f48d8509371aec9ae6761430d15bbeede4c93d8b076dd326a4d03a806edd828995d035c7e25617239948cf2d677f72929ce0d89b414d28511866e87a8a37fbe77aca8c35f7add0e5187ff7cf926938fa086aface1eb5f1bd1a23be1ef89183069024504031b4a1b69c342d201c9a78de28f0da5cdacb3e950447136e319ee322522f24cfcfe1ae287849571b2db59fcec72fc42c9cdc0c819da22cad5feb7ad542a751539297795063ba96748d8198b6772bc566b396dfbf95c67f2317bbad7bc1ee63a1957a59f5fbbb8923ea60fed4bf5b76de3ea56b76dab5bddb4a286e998c344260d33c3848426a1424c29730a554297d025530a455237fa023a840d59e812ba33a5d01dba4395241182dd85f89082e380904295489952a89239654ea13a730a0582ea00f13cbd06078323f3298c58dd6d8c310eb941c80d32e8c8e2deadf2a1fa80aae50c6e4c2ea02236a534206309a423b62fbf5a63e078b5baa07ef9d5326a51b1a158f0649e39b0f1e39c4558a7306cfcf9cd29e794ce84672f38aacc8f7ae9f7e3093636944e728c427c36c60d424370c7185b4603901021084a1223076e78ed7812e7b12b60bd4a9ccd4c9b0ea4d10dabd16d81bbdacc2a99dd66f71a62382ebf7ec0c10f49975f4a6c685c7efd60747d78c818fa22cafdcb435e40c1c9992edda54b9f539bdad4e68c382ea7cf6cf269fd93c96c35d8360210c0102b0001680100003e3870d8b8b8b06edc10fab1612308299572d5a8c183020a42392d2d362c2c3e346800cd9811d45a5931b2f685844205b94ea7d7cc6462755d0ecff0e59e6f4d50e9f9f2dd9e2fb714c2c26aacfed0a30aa502d528958816514ae5ba74775a2d8d494965b76994dbad067ba784544a2a552919958e846cc8197148672127931571312a9147e928f5b3e386f5c759edad26b79fce6ab536f5a02ad2270d967e1aecef3e75e7fc4a4f6888a531aaccc69819915174a9c81a5cc246b44de1dc9b2f3d21dd967371b8ee885c7985edee86739b0916a96371469b0d77d42bf9dc8c4bba9d4d456a30a9757be7f66b2a7836a8f0069853856703a8f094ce574185cf0615debdf9a9e02a68af82d675ac065bfb3a9c201bd2275eb04b67bd0a39225aa557216de2ada4db340a51afc2128c9bd22b7eb900e7f69760bd0aeb4f945e851289a85721673425f2e8703a180799e6a8f4add5653d0b15cd0002000a8314002030140a068442b1482420d184790f14000e7f98447c5c18c9b228c861188610328610000800002000203333330a000fdcf898a9bdb39ec031240594027a0c17b3dec280979e012428e1cafe59e4283686da0ab9343a097d30514a5b6b88d35f94af28878f88f61713f9b68c7d421e6249c8ce42e63ad4ab1b8c97d653217509b44fde45e29db29ea06816bc90738c1c1838151f7384640e36a52a8ba0b54b6941356acc8d161aa49bbac96cd914c6b59eeaacef41855a06737eb59962e23ed7b6f5d464f0413760f5d9bdc941cdf78bf6f07d4598344422f881cd3a69cbcf6e303b30b4f8ed3ca3f4f1677c1cbb3ba312f4a847b8c49105cb5336b54ebd4a95c4a0f13b9e9e98c0cba09c5bc7bbcc797794eca2c893327650aecde501be1c24b911de624ebe04e892ca0dd8bfc8656f217a1b1ffed58bb4b82078c4fd86215dcd8726e0dd62f2aa10ee352f7a7cb84b2f13c2c98fa5481f810a7592011093e96a1af5723e123dc500a2303301cc5228c7620b37e3c14e0ee1c8fec56765dc6d44bea0ca52a4567e41b3486c96575e2d158d9064ba1d55e475b7539e53000a8064ed4f7581f589da51f00c13922a3c1137ba6134386d378250b90ef819654df3b01d5121c6680890e1c6f5fedfbadfdf8b6de3c4e6d0375cf8a782e3f18320a0b6c33041b27cee4cd7442712fa26e69d6081d95154c3935f077484c10d5c3f637415a32587955d4f69d52e087436bae1dc279292a893c738f28dfde146c5434aa1e7afed5d88bbdc45cd0194770d94226231efa825402240b12d3a15e22d3671a2fa6acf20c4a856258f96f52133a9efdf0f24f92433fe834641e8b19872194c78b45641d9b7992052a2f35225834cc0a2359069c560285a933c97bc0d0d908f027c311231c55ed1f33272ce1e67c8e792065c74a0c102bb6c5a64123d45ea0586f2f38a30da1504b9a82801267767554961e8a4e1b890ae8a5904919f13b708bd46e8bfa3c9cb0822c7d56b83b6b089bd3ea542b75b4fe0bcd98c27b1aabf97d0904e58ae4010465c8acd5b7425d2c1f34338d8a4a0890e0f47a0bb1907b40f196bbbeae5e64f28bc1fac6dffcb85f0721e60144c477421e1831c0504343a0811524ae2aa9e0da61221896b02e1b8d13da3b7afae9bd9b5908541e43930c530223a51ec38aa06e7004be0547ecace8ed60b6ac94ef6872ca5be0d15106249e4f2f920b895496b8fb12f9096059f1da12485ff6dfb28751a41e84285028b9edd1b7b2e9c845ae1ed7e23dc76c2cdb00aa5f5230cd116dec71fcb369e2d8cf1030036b8461725b6fa22550856b128ff4cdbdd0c409a811020e474740a8d8520771f673b81bb48a021d9b388ebf9315caa8eb00bc4e33735518072b63b96f0ff1d77d5c8be8d3e8c71e1709cb90693e42000a239a0c168a1561ae01145cbdb24990f75ba479fc2d4e4649f0ffe1e1f97caf62df5cfda38e7d34f863c2916604e0d28af092c37307a94ae29fb8477c2d4eea0322e3a379618623b4ce3cba44580045cfddf9f874957cfe6e0c3d414da61aa670f400326b330729f7e13ababefc293791439c8deac427284d71e44f845a8fff2c8a2eec374d5399fca95bfb0c95597d2a2ad6166642d659a35e89446dc40e052ee56f1afc03c7434f5458cf327c35169cef1b5454e8e8aec7417491d27a9e5f59e7f707b46ad3f9b1ca4e469388be2651075954c8439a6e62f0fb823a07aa8883875baa7aab791ad45b4211633b2ee0bf0633396e7ac1a13fc225775461ef2fc22c6fb8b8cd3fa750af7062220162b644ad4761b1a06eb85defe44b70c148a3d3e6c81edaf5403ae23b9bcf3ceed991a5c8be7a6b1c56d81a2c2b7ff30ce22a835c35bf654d35d04a1f44c9aa5d34be85234a2ab9708456bc842093a0c286e2062b678e7ff2ef76f4a13e0673dae2ab19e63a9e592c4df09688dae802ac14c146bcb12e9ca4e841ef20c7282c9f77ae45c7b7d7502a0c827546c84acf3bfb2b8614c584952ea3a6fad09ca6c3a45925aa2ee81c872e2c9d097a7f4cfeeedd4a6256e433fac4f35871437d7b63ca773fbd90fa1b4dbccdf38e48b96f224e32115ba551e36cba86180b73c5bdfa22cb6c27b4464b9388107f1421e621ec853140068bd28ab9730d26e75efda51ba7eebcdcc048958addf923afda4f94b6e148e59ab95f93049251fdbacb2258e4dd6b66270b33d845313eb9c22198c5a7e64ab55c2610134a70d5cd7a9774ef8b080494980a2db1a5ba52cc318faceebde7a7d6f1739899a687fd48e501de716ac3e60ae832a0d8fd1de7eff0ff582f217bd05e7171fdc57447e09b866501c81f62cc9db424e0d9dd89bd23418f75c80c29aa5d599f620b45ce5fc6311b4cc3c6263796a833f6bff195c198c88b974d1d21382a6cb1bf999b323e0cfe5213113aa2954aaee57ea6bb7080119ed2c45869c73bfe00889cf28ba23ec5f08e683fcd25fc3e174108706382f70bcd50d3c0420fc15d2bc3e8896f378fe8bdc33b3cbc988da2d3df97de3579e9885380657a482ffd54f659b6629083278a0a03bb5330086071903f0b2950543a41ee0fd0ff67f9c671275dd92fdbc5fd201147e8798501a67418914fe72abc68c7f8b167c95cb4649f34e33fe59e10287eb5624a5853ea3e5e4b1a7e81c14cf61eb9426670bd17276408abb59f9a6abf753ad579bb9f7034fc3d2a7de9f7d71bca98ff2229483beec6122fb00a074b3be01432301990002024a80aed7bc2e1944cf2fc686f9653280314187617e17bee470aae127ae8a7523fd2a82abf4788702da713102cbb963c4ec26c0c07f024bda0521dc755c1d19f9155e19b527d0fdbc1b6d7e1f74dad993f2674a8ec72cb958aad31f06e9ff5d2256b08a25794c83fc4a8dda6679c2a054bba03709015c61748dee9380befc3b6707f03cd2254e4558e751123625fbb159043b749df54324644dda133d680816e4664c4cafb178cf14c000128d1d748f6efc2e70bc6be2d340e06d422a456106222582120f8ec896a9530f2c8c2d6041d7d1c5b1aed8a707bec300289322ba3e324265cfefdca2dcad6e666d0e5242bb48f597618114259aa62e9229d21f11ab6ccec9cf49dc3a07437b8baf50c4bf4f38787114bde3c62f4d838a7c4e7d06106c639d67183324e535ee4e52e5ec7110151528fc764fdb698b6bfdd2d6c3719d1c4d5ac371345882cb69e128d199786dd6bbad84633ead9d14f383a3d88ad80679b21f194c2956caf98f639d538bcddd8251fcf4b43d8762ec1d136d8aa72d78db737af7a9b63d27548b6927096e34c49abbd9b7d2901cbda000c95c9a5076d14bfc126d2ee75763467b812b7d3d6e40723d07b802a9afa1021a99bbe5efb72a0cd3dbfb7e846d63b808f3a67dc8b49d2f63898c0c5716205af43bd72c4dcb61e2f1772eec28e398db3557fde384c24ab94a4fb939d90eb1a6e756419fc537edac14b6abed94671b0188a066cc63c811737452d6eb9cd0e9f8c70944f209202a751b19d9197189b4594fd6983e402364e29228bdb806a4b59fb4dac274e0073beaeda1ef67576e152a54457722412f9b7ab41f435472fd343292c9102d95b6ca5d1822e264bc0b018e74de9052aa0b7a07ce81684f92bcb78898f25a4c5eedd34708fa5ae20d7b0ed4a94b293df33a546dd3d2f1d53b739066612215080980fbb7e8e6231da7f3b8ecab4359016bb991ae8148fed98426524b67c8e0bebd25853c406fc8531e06b58f82db92c0ad01bd20e058a0b5b28d3ec56293a6c09b0ec05650f44d0cc87285d09b209a7d2591c6e2e155fda7e22a6be2db9946e264b9d3eb7be899e83c044210d424f48760325f8239ea17150d3341189f2f8e89edea2242c518fdc02ee2a5fbb2da03b5686ce31970297ff9fd0f19100ca3ed7cdd06f31a5d00abaf5bacc309c29f3ecbe83489b9842fa27814fab0a04bde9be5dd9baf62092cc2a9d021caece4e92ec7567bc282061774f9a3bb72d7fd3024b2e0346e055af54ce9602f9ffcc0bfc75a2f41bec00c5e4d0c0e896450071e65e84b7b135248d7bddeb6870142f13993f652e41bc3427e9fe017e26ee91f849433cab0ef62be432dfbac29cd763b95d411daf2d0756e80add8d192b2403e04e040406dc7f6fe501482260f57b9d2108b8cbb8750e7c23da6053605a422dfed947fdb05b4de33c05621837a557424db19f08458bae8ba4813e47270de6db41561998e2bd03f35a925953a8f45f48ed9e2a7b99a29d62dac8c125a4d152bcbaafaf93541cc5a9aba342fcc9a6a86066a32f0d194f79b4a5417e4d02819cd4ccdb8957f37c2ee92e8fbb809d38d13bcf2fa329b5ddd839b01b8028f7c61f93b4aba73630158e79aa5ec0ce18985b5cd23fe97118cf7f07384d520f1c947382e5abc5fedeaa5d51f1c6531818b59c44d2a8d9f613774eea82339b7be421474df0097651827210ea442f798b2cde012f4f686f6ea9ed42e1e9775cb933bcc36305249f8fb526d9eb2ac332afaee46face44294186dba18de2867603e369403046dd0363c3d85a38a487d96beec93d4dc01dc916ced0e968ab76ac5952839192cf90f2fe455b565a47a73a31b73eda16e9f6ef2be4110476371e9571ad28573eeaf8dc4e3a93dfbc1a90bc84ad2a399ca17f0d8f8e9a386d52b16c5f6984fb9ed09ee574dee5f8317b2acceedca520c0bee4c2ba6e3640c2ccdfc5852ccd5aa65e1e4bc61af690af78367971bec96efa7692e6c2119d6bb394737a7829e3e8800f6177c94ecebbde089ea07f4b1c7a8c0e963d7fcfc8bf0aeb3ed267dfaa7f4a7b7a1603254a6f53bb4106b36fa74207b337a5e790b40df73224ea695edf7e4539ff4e931989f897c3ee3ab2883d56510196a69290acc4f5eccb2bf5919364bc2729c0f8a159be6bc3d808dd8c5ec68e4a43c18c8dcba812b1230b60153ffc5041f8487f40f42eedbc451efafb02920fe94457b99136496ea3e24ff94d4063a94f7ab5981ca3670cf744144b41061453bd9bc4eb6bf5df0320eb91f3d57008f24040d157c293da260ec01d9634d1d6025a75458c2955746602ab724b4bee6b2b8bca30be83ee8ea27a328a6861441482a877276739ddbee03fa5532488ace013aaa0528888093da4b1d061feccbe3fb1e4e7084f9d3a9048e858e54a6a6488bf6b614652d53c00eba4868d5d1782c7e0a24509689eff72e85e4e53322a5d2caf540f9dc93faaa4a893c94b81e87c1a6c4baaac8fedf387d88e097c33388f654ca1bfe74218c46246416d96dd24dc25f1053827b83bcab5b0f8124d45ff3ebf1d206003c519a4a9b3d47cf2e40c6611d7563443465635a66db8d8e4f82fae21a5286c7056a38600f051b9b135abc1904c9d5881a21f2b352a31b79e4a7c6455fd48db82d7ae8dec6898e2ef9b1edd2371aa344cd1cb4b2a6f9cce4f19a628e8c2293f4b195987df88d4143009017a9cc7f486d3ddeace7fd8539c7e898d7a43cf54cf4b4953ddb31b25fbd5e33f1f9321406dfd1778f27167748bd87b22a57a9a1dafcdfe98efa3f3e03c180fd90cff880c852850843099112746d8ca7956935a4e715aa4f053ce3fb92c576e912e4d052d4c2bad2921dc12c7b467b0003d42d55c34287c87c1b420845d3a9c6c4cded609f5926c31d76ab3aa982f6ea15532737869698c7578a1cfabc541b30620b9167fbc89461e03d2d578191322024bd3a8bb9bccab6e92d0ac0926206f7ff0e612a2b402fde32f7c9f0d7be73d89ec1151fafd62f8c96a191ddcd0ae14788672df6feecf3c18bc612cce560602f1402a8b8e64e1ef9747c6579c625b8383449642fa1372b37737f5a8b5f783117ae6a1623161cc8ab284050529e0f59ce435e7bce310037e319f15874c7f3852989509b472f8dd166e94c35cc184a55b7392412ebfd027d8d75884033010ce27efe776e2f9029a3f505b7e7bb6e5af7b568c0e3fa639bfc6bb9ee8321ecae1ef07eb8ae7c7b792e37816f3273da7b41f3fbc88cd1fd807d888b796bffea8867818ef1ab835def6c256e2d118bd7ef0b63ded67c1a65cc1a85315971afe41c1befb3df952144513da6e43ff8b5fc81c3cd7151557a328007746e6f7199856cea0a5d03e76ebe08ce010a600b77bd06b58a8342a35e969d36e38e261423d6c89261898aa10e9561a8ddc82e03f19066fff46f3ace4cc2d47aee995cccc116942a4a8bd0bea781d232b3539ed91fe015e441784abc9975c6626da3c993a671aef2966a4db59e8842049f058e1913c9bf043797f2afa21dd627abdb39d046a8540f51aa61b1439a0c679256662d013463666520f5b3ca468dc30b2c5b06944fd6b140b8968650b2ca04b9e0453f930c36e3512ddc26f057f7f42bc9dd8a1033111676f4900de29671f4dc5375b24f66bd1251da2c3d2430dc03eefe91e3501854fc06770cd342085b2255d0cc7964bad82723a38314780d949a0a6a96f05be156c874766b4d46aaf1f6836476e43218a69be158d12c2edc6d84f89faf098d9af1171a9e568d0604473134723e1a064d94313999ae0561e896313cffa055ddd2a06574b22bb5cfb61fc0b01918dc298e0f30782b76c6ddf3c1a7a0f3934aa12579771958885c7d062f7c027995d77d99acd7407ff0696e9f81c94d8e3d84a6be9a4fd9c4a5031428bb2fa3391946058085c6f179911d880ead0271ce1cd5644c5b03e899875706160c8284ff2ce11eda999fb7e21250c536b9d43e53fc6dc20e12d3fb10323f9f2e3bd85a6eeec302262ff7467dc08cd78ce9db74a59e2533c356336f580a7aea5d93db941d75ade6dc7af24ad2567eb495ccf82770dbde34453b60d15b8f57fdab56f0014da7a6270ee49b4daf9962456ec2da733b445bf5e47474d4ed4cb08ce11ac5c1792b8d19d5c3ff03710870000c28cd9aaaa9e7ba3bcfb0e8bedae8c09d6d2f055980074edf3128099756a62af9f0d6c3f68e4a7fee9ab3d2bb05050cb101462b76566a9ad2d193511e20a3c710438daee6988858e445ab63161bf7edd00c6148e1071f0fc58db4620423c8eb0d9e4063f09481dc22f55ac777e4cbcd4a22f66e6ad5ed13b64cf7692bcaca245ea17880bc85853ff0014b818454759e62a7e3bca705dda1544beec8d0ffa3862a3474ebc307ad589272e90b92beecd5f98d7e816d907a8df2df4ffadc5942d316ef5c172fb339a9e025c89ff001d53bff27f2f63a026c395574633af09618073bdd97038ce597a17592ca545591fe405138662ba9792730a68c8fe1f8c0f3f05b75e280074ffbf94fc3d723024f659907335bd0e89d4ad4bc4cb154bd80f388033e3de726df575d1b140c8c20b6cde54dc639ba43e111be2a32cd29f85dd8a6cdb09f0c26cc850782389e9233b30e72279467204be54672e89565532022b1e9842219c7fe1e60d0b8222b7bc3e11b406b73dc82da923c15d2507a503d2f83f7614bce5f72d14bf96a33c1c56723dc2dc04e8443078b759e388c5658b91f9991a5aaf8d2c0dcea1145d505844ed90858a1a0a6220ddb0e4dd35c7a6f9bb92a4ce3964ae4e5f0aa67cf9c91bd81cd76773540dfaede11dfa29522365b5839b43040fbcfe30d1edb555224090eff0639822d6a93af515f2610f0aa80838269e101f767364d266025ad3953e12a4416a32fead8f895d26cc258611db5b2acf699f63aaeaba3bef176585e1ecf69ce5a2d4698f2348d8600953d9f53e8f066759333002a4d0c33d585b7ab22284f7d08fe11c3c5664b18cd2aca84594f996ab466a9b92711a75d2e0e9f86d632e2ff31da6465db428021ceebb104fb0e713696643488ff4734c775c290055278093bd3f6b50dc6153c8a83ea3abd789cdf7bfc66b0109a784fd6c9e3ff033221cef8ef1c3aa0bfd934d186fc967f120ebee771fed24c67221779cfc601833351c08ca28b9e762026a3519cf4a9d397b3c9f304780a64a1905db0187e138efff2f1f765e26bc5d9479cdcce75af7877a44aa1edcd661e60604c20e321f782634899be4fc5b25bd423ee33fe041e4a0fb18727e46311d8bec3e225e1fe1c591e244e91030d9185ca12f7050aea455ac6ae22838982fc687556a0ef35969357966e451a0383fc28d5a7124bf5ebfce3574ea06bd6eae894113c71495425151817b2097ccd784a9f7e3322f5f3be2eb6d00faa2dc1ea61715596aca9f27de26d4ce45af790ac11d2e101c4e91efb800a2cb86fc1d65b4e2212e019f15bc7977d15e2a9cefc3985cb8e18b31124a4c9ecfef1b24cda7a8008e4c3e389157096e6950dfb3ce1a1a085c0630307698b904c2da417267130bc479887368bcd7a53560e22e6e19be2f32d08888bc3e5c70e7b20bdcc46c8817601ed838aeb7b7dffa1340dfce268dfa8a41f4967be1cdb5cf09448cee49ea198e7400a66d7cd89079ae01e880f5c12d4a450a43c7420a11d3b21eaa87687c00bf14b73ac1ebe1d0035ef86a67671eea01b3f6e042d9455725ce848efdc720aad13373d0d072aa3183d04ec50ac912362daa62a30cd5bb2391b0085dbed0c5ecafde4c6084e425f301da783f83e2ca53e66b83c7d8706806810b6f7ae9d424124f98fe8ae5e30ba5e58370cf5f50fb48046da2415bc58c4e7a9526ef98d1ef12d911a0ed88e06b2e9e08b5700740d99ae7021070805529bb66a5ee66db9a6871e90390b26863e3ac2d6771927feb486c0f368b0d0fb197ad728b6ab2ce3640d734698feac04555e9b9a75889dcf8e90e9db9bfbc2f3f4e731bea01d9126873a65fedeba28dfda24b2f144042b5c386049683bcaa994b01b98ec365a97b61c35437f124fc2a6a98f0d08f2585c5a38ad5dd71d2982689438132389b7c30c92529a42a8d9bcbfbd11acc54275476014e6e0012de6e002190d960c4589133d2ea280702b2b59a8eae5feb648eb6262153d9981cde99885f06aeb118584427847b59f3c448987190db1a03a31645b8c670d8fd1e317668bc793eae124c589b478e59f47a8fab939f26df1f294eea96013fa8727a53e2ac0ad37d743dd3373c8bcdfe5e9f9f7e302d9b05aa1595462196d0b67d065eb94b359bd7926e5b11b05f835080633b00739732309cf74e388e185e498b62cbe03917f6a203c7761342c2ab4d3adb5501667b9cb1a8c8ba67670bbb06fa085c14537185d2fadad075736444100f8b8bae33f68e4a8e71fc1a95a12fec2a70e73bfce841b7e4d685b47bd610ca0d2c47bc15c6b6a132a241627ec017a0ba0d838e1b1a136f3434d688d972f43d62650b7ed6ca9833f168dd6fa95a68d14f6bf56f88bcd8a057a9dbbaa77d036141a3ef769017a725f173490f4bee458547dad184ed911bc0bd6b156d1d6bdeca575ef001987e8b41d08ca679aac9edd88cc57590797413744b1b335ea2bcc932712a019ae916b2b3a5b61be64d46e44a501b2f1a2157e6752868b9e5a150a84612c4ae3ce19fc4d6885eb57c9067096d26b90c6a5cb34f35856c6b6f1d15e4ca849e62421681d59a8b4e5125f448e5bc424aec2ebc2f3e6ae6218759757843d68af375f896d982a3c28a5f4b2966238a8684fc571a707d4ae158c722164c97b4820634168ab95beb11caa5fd4ef2289871683a52764fef0ccd7dbb5f8f9ad119259d82912ce8e201a70b1b9ab599be339f4917fa0312ceec8ad15e5fcce601fce6cfac7934035ae05a415701605c3aac0fb3339a8db34e91de284974a583d6f3be8ffd377e7205fb41e58d06992643add80e648379b78b17e58db730ccda52dda56d688c9aca1b1bbd33d7f41dea817aaf941b4bc5decbf027ce3253adba1725e519ee77dade803274308d6cb59aa434711b07b998680953acb2632c64d2610141d0622b29ab606fb7a9f9c6f0071f7ccf1aa42b8017248c6cf5ae6036e92b6f70467ceaed6f1ac95985444baa108ee3f3ad5899353426ba279fdf423805ae5c3c8f5c1e21abc116ca83dcd5106c630348fa40e4fd292f71e61fb50c1c6157d1e95f80395a8cd5a5537b6122fae61f86fcd1d3e04d026c7393ad865fd15516493db1c8857fb1ed5b595c8fb96832a980618f35cffe3a442414287b9b05fd21b188442af614c02945be387af90854e8a9273203216bef193859a0a0a98fbbdb508e76511f492d0cf4e3df2507e8a593d1838d8cbadff14655e470768a9c15fa5fdcfeb36ec75fde8cb69930a140a9274b670ea49ac9f073b706c06de5a2cc7c5ae473572652591586ad6dea5cb5b1d432784ed0a6a17b192883332bbdbb203077e4bcb40e45718a5e1446e33b981875be32c36c995c7253bf2fb764275f44a47cc9eaf7daff7ce16a102a10b509cbe31848037549307de3034912b56a935ca751fb0798164d7af50c168140aee40be60aaa613926acd97128d1dd006e0ff85b80a4c985467dd18647821cc3875b1958ceab4d363fb393e87bf20cfdcaaeb2223a559fa395749dc2b0ba93655011483a70ed071672555d0ad221c7c33428b84054bf9f2f70de709742d08d3cfa1b43be50fbca982a8e2ae2dae6f5cd6e995958878669fa10fa5d7ade513f02958b8f24a58eb86c74439ed9b136c81c49f0f20e780e5c7eaf44dac2f80bd46c4ea43a6d997223bd873da1def4091b17254c4c94bd7aa6fe717111f2bf98a121b0b2c5a3c6820d2013844af4037e3bfbd22d0a0042d2f79cbaef049cfa9983a1784040783b3d04b941e8b737e6698c4ed273640dfe8da2f0b14ec81c215e8aab6b830c507b69ff4c947f120e123aee36ada381a7779162080cfa5f1a1ed96b1666f94f86702da1f995a8595ddf5a4f89f48102fd2ad8963082c3d044f3231357fe3403fd47ed634b35ee89a0a6e5bd583f22a35b4a0cbe5bd7af287f19641892fa561216028f9261b458de25844d48220d7ec37c4c14e6a30c0e3ef1adc0acf7d72949dd52cc348b060a4cc87bdd978285d743ea51fd1c99b62c5a35ee71918ccda3f5b4cc9924921697ad02e1de69916a1a2318a78ed339d096630477c8508f802dc39ef38486bfbf5789af31020ceb86dd0e619ef1c4f3d96658cbe01bd53d2fea7cd987f527a889b65253947d5cf5e4058c4e1bf3e1ff004365dc2179763da0707610d4b613e9b2cfe7663b2701f544dfd86211e0c2a63d3e8e6077f19011dd62898e7aec33cc9da73070ec48baa59f98dfb0ec150d20790bb8c3b4460a3135d42d832a439d47d798881cd4971f1133d92c340b6b1675689ecf71524ceb309c34a104a9a65462f75b579fdf8650c8d50f7f29dc42b35a8026e1d011e1c853b2e684c921bbb632fa277b36e88323cc2fdd6218507948eb2192d4db2e0a59cd8f3fb0884c901b17c8ccedaf8a4175cc271379230a9deec97f31943e42fc91b23da8cb53402afb86571ff044c5ec2a8069fc9b60c6054d7c562e12ddd94a177f44cfea8c22bbe391c183fc76d2336e861958b045daa12ecd6c898a509dbf8d9c24af344ae3c57b467b6c401a2be870a08b7b8e0563b5ca42c247b570b7af6e1a324287dc660fb9014e947373ed6ccbb00e19ab21daff9f80f3c169d6b11c9fac355fd452cd91bea5c6ad2b3aef9c46594aaaff351848ddc37d108e6fcc8f1c90175f9eace2b12ca0d99b9fe211a7299dcb7f6b6526724a60c2007b152a7e3ff735f8a842749e2096fd29711be40084106dc1c917c615b9b8215f22d6f1950fa9cf23b27c81d4a2097880be0f49d7a84349939e50c2f5ea8e3e40af44909ae14d3447d148cc1ac7ce6c906b0fd001608a38faf8ba6f269912706cff25cd6aec76e0d7e219056f2560590255630f76029a0cd7a4271b3113f023d1eac51a65c0df475f2dae8f70ecfaefb6ab79f85c9f11bc9c3b3435b358093f09960004246799bcfd793fea2d55afe3632d29ecf7d9d4c924b555b6b576e27434583797e1ab6c4e0342afbeca7685be416c17ccf4411e7ffa8111660d71e9604724c30408c4c2340aba592b2b3c9d0ef6d88b85f6bdb84532319c72f48ef3e5b953e2f30ebc3e53a0a2119c0682a2949674584660cf34552750a1d85cb9d5a2bbc4772bdd55a77d3bf1348ef44b6b59c1e3d078d4434fbb02df21454a212e2bf50480b815ecfe6cd9d0607953726c92d4d0f6c4941006409714e94aa8d1ad9c97c24e7b25bc967b3f0310fd332d9feca8b8b36a1dc465923fb522d026d5a8a8524e94b01292e7ee024d8f8367387698c8b88e4324d594d557a2d02b2f0d3678d4482740b18c210369a9365c505ded399f5982e03afc12054103874f57f2df6768b8c7fd2399651669e6f5f1de47d97f0fb0f23d5fd321881445aa37be38352f83375a7c5c4c38480526c3077aeabaa92a6e7ec05b5803a8c5ed157811dee6434884b062cf127a91d2d615460f2c162808c0f79d1d60a6027efd3edd17e3f9952317033a70ce287024ef58f9384b6cf6042940c92d05626c208fdba47947e055ba8ec37f45cff49ffd1647966f8fa94188e1d206c43145db727034d7004608e4ee06e3ebf535a7661753b1921aa4ec69a041e78991a579a1aa72856cb8258f7dbf4d92f99b680855d0d8421bf3f02f6927362a12a145fbb796e7a649b59ef8138e11c97cc28caeab182a296f87200bc889035402d697feca682eca4c23d16c7b2e79a50efe13cee3496226b31c5677cd90b503c505f7a62eb65a0015247095a471603a3821023ce309c2a805b636ac81f36176a5fb2f3056a56343203f87a66b6c361c0c9405b4ab9a42d3117b240b2b588f9ff29969d4c853816e3c0b6897137222e6c28b37ba8d8bbcc9aa5a0d482332aede5f109ea6e996014eb2e67e073a4dd38fd5bad5fc80a9df92785bafd12d38ae7798483de397d88328a0100911c9d89d9241c5e4b56228b5a3db425fbbc72c0f4ee7f7a07ad93d0cbf47b0a81dac43273c24601f6cc3cc63f53ac079b0f2902d13fa1e383cdd55645247311ce22d40a7d1e53908df2f2f574a2812a1c82c395caef311e926e10ccbecbf68982c2670c774539c8aa1efbf36be29106d948f22004377ad6f5e1b1ea97bfb24c274978176b429656f9580668ddc8f2fbb294b4a51b74bf704f404d1075e57ba284b03e8dd65a2834010479b9d8dbc17cd6297984fd77b23a18dde4c2e026317d74e184bef88bee491411c3231ad0aaaeec108ec1981e6e2cda2892907fd506466ac3837fffe9d5a5930d6af9fe8407aecfabc77400495e597f71531a1fdc2d27fa80baaab8da12fdcfa091e4dc558bc5aebf96c66428ade1d4caa3d5eb071540fa2c541a077bf2e82c7802531ea98aab6e4fe400d7394faf3d260226c4fa8ee3c49b2729c15c560fe32d31fac54cf160dd4a8dc7eb9366a1c7fe4aff67b00b04b1764c7219618a988eca129462db43715266d7bd9d6276ebaa760df5c7603f2168b2ac9ab2d6123720e09212c0552e2f838eafa3a1a2806c19840c895a29e0edea18a6219c8ac709a0a761107cddce1b304c49a44270de458ced617ab7ec860e7636b5c16586ebb0902c21ff0aed37a204ad9e6bfb6e75e48d4423c114a31f0343d7e1c4f0667cf79b34ed7a612366e2f27fc8672e5a116eb021bd4df7e8bf608925f7d64eb724f5f6090a298337c594d07c17a38e1e6538651879e36903a6eb551eae0d9df83b614c5b12b203a924cb1262a0edd41bd7a40ac0b43085a40e6a56964ea20e79064e12dfb8d7855f4e719cd4a324f3b4badb7c324ff3ded33fa46f173336d9c411e478e288aa43c036a6482b67bcc567fce846bce67daa00e5de0c7962983bb01bc9121bceb58408980a44db24afe2e58dfc8e3a4a17e0bf87b2ac2df3e6ca17c2f2645dd2fc6acfd24954360b1367d40fbcf95069c27ab81fdf32d8c0d28975213600f6bf3c66777ff9f7b86b2060bcc50e61d201efe144dd701a880374c3000c01b2f49500b4c7fc3906d5c64d8d4381c92bf5847d3d6216f71257ef17de4d26d7c31b3291bed6653d2f30e80d052e8b89ae45f2fd158f643363d1f0e95b22a67ab32caa453886fdb00cb6b733b4ddceac7c353b82c9be6ed8e8af79ec5a23cb4c16b67558cfb4f841574f1b78c25137de7fc19043480b57f3fcc2078ec65850044d00f1302d32cb53f424f434699337f20ada8a9459f51479586b34b54371f83e4e72a74839c55ab38095481b938a34ddcd78b7f3658edcac52cafa783272bdda959823efbdd1fd2626df0c1784e5d47d8dd996b8e021421cdeae1fa7444abc0921b84523bbf881ec8df0b54fd6a00caa0bf7f9d9d543a75601618680e6c6a5caa11bc4905a59a8e2a8de5ece7aec6ef06546e6ec6a71a3e1ff637f1be276d515c7fae24a64cd7a8ed55dcf806e448ad6b14299f84d8102488d84762e5135cda19b32fe0c89c611441b6cd0cdaa84bc40b682ae61ef32b1147ed8f0ca4384336c4260481aaa8978a4761fc75c5464106f5f1cfa4609cbc9b80a758edfc5b24147b3e843bc345fe10f37a0cc18a955d279061708f0e943007131414fe7276a4a622217a7b577bd7364b0913ef278f5357b077d6e36e4d04332d267ba29be50e8919abe9c0831859e5f51e34c024a473afb6c0d417951a9b97eb2601b46598be88c8de44a39d72d90818bffd3022ae65e18a251a4f12b28ed2d43bd5b22ed2c607228d9f640f28d4547474da4948c10ea797a21784692e6a860732d812d3675dc3093d35fb30570041118265efce8b29a895bb6463e3307d23c7c0c02b81686b983227452584884eb7f52c5a695b6738762fdd30242afd6ebc808202fd6832d9b83d84942b84dbc9de6703d02620c97ef824a2cfdcc7c32f43440430520f5989357b00636aa0a15e49701eea519d6fee511c123b566faa99624e0055a23ae0a8a635872b308bbff83f386f24078709ba008438c0223b6b763284ba5ddec615546b2ca532871564712b104932d3c5b8a19392b5b15dc858d01f31bc90661355b7f7cb3eb005700bb2a5d8119071521af3a2e22ff579490a06db646fd8161f91bdabca0e3c2c0c2637bd3720030add074a3b8ec0d05c09258b0ebb5b2529bac1ec0a607e3c325d04d1b12415c761261eea2bc935f27ed23cc8b75490d1621081bf6d454ab232548eb562c4ffa553714405ca1758ad990128d4b71ce1eeed636b2f79196e3fb6803f2ee00d781cc6125aff2d562600335537e8b8575e1abea4e8108d11114c5bc66deb40a19b73cadcaa9e9ecbb81b4998bcee2873f5d6346099507bf1bf2f2933809e64a347e7479f516d8c1c8b4ea08906391e3889ba3a47f58d88798c36e9a59f4e3d88e6f46224312ac58e3484a745eee39ce1c03ec6a6aa62b638e1f3eaaab70fed5aaa160d3eccde81f65dd108ebdc303a01dd6baf5153a562b3a097d09938645420b914f0c8d9d3c4fd74655e17b5dbd689a23db0d0f9c9c639cde1f05d96d7e95f929ee44aab9a258072238a3707dc712c06ce00fd21fe01400881aa5f73a94605c17cf90cc01fd28ba799a73dacc294209f83cf244674ddda31265d71b9e661b4736d449ded80cac69cb3f7d79c2cbc125617cb1a22632d287653fb6a9555981529d60a94706bc6b9a1e63da25f6bc45d86a131762eb033f5f557c70d7047254c08b184948467a9ff94db1b8f5616800c746a65985e82419c8c0e3a6d7bd0d2398731c3184bc5fbed9dcd023b42f2a2798cc900fb28388def3b0ae50bced563d95a1ac16addd70b7917b688fa8e72234d530ee22f7335fa0343985d844f41f82a4f35530bb42b37a3ef164909b7ac63f183fea32d68b622cc99032f23bd15add23dbaba158fbafd8d5613236a55b103249c36f692291e61591c66e2910e281c842b6eb1b556722a1e8b5842269c122ad9aa0f7210d0369c3a3b8c73aa41dba9bd61c00ba80b74ef6e3f45d085f5c27e5a5a21830f3056de8baa6783fb64ed978cdfcac1bc43dd761a418c126f96a1a0ea4f6c38f99dbb0c7a35c219486a87ccf077f19148a83c53708afdaaa6eb38de2c6e1c272196163beb3c3af2d4a0da1ed015d8d995382a4b00d324b8e071742db800e5a8632cde251d3ef15b1acb3dfe49de1db5861f6d381f11a81be134f8a1307b1937828433ccc6fe2037f06f294d28ebd1d82e510f0af7473731a4c0dbe7696070c40841e57022ada9b59e37822ec9a82b1763a0a13bbd83241a9f4e69ddecff6d3e84e648546354245b59483d1310e77572693976793bd52f5510c741ab37be7d32a083cf6972f842f42dc7263dfbaec95b9db446b0eafd712d4484e6fe88dbd8a857f6aa47319db68602e2ad65e21e0a4a6bef85d1543df1260f11a95bef604dac71d38adf09c10897233dadd28d0b76f725b095b4734d49890b4fbaad6c6113857857586b586ca3908e00841971010cceabb758041216c8aad3e92815154fb72108a2b48934fd2e2ea2e2c9bd897e770f9c01fe26343e01519f86291b79e5f94821a12755b82a03e2c01b80b4b307cb20e8085069fb1d2e146403db43ca4fc649d843e0edab3223ebf40870a71ac695e093d4b9acb5fbdfdef38b1d5eaf9d74efa1f4e12d3d6d304bcd5e42a1c80a687dff639481011a5cb260d28badadbc207cd53723c768092d9728f39d206c91e57ffbb89305cc9905194cca62a84e259828ef5a3630065be690e6d0544342e431e84203c4ef0f56c7465d48c8fe439eeced0089a2688b105fa7b1405948885a69278b0374694720df2893e31774a1374c89a0a8d612753c70cf36d08a98c34d4e70591053309b405ae99847e7a81ad2738d2df87bae87a29f151ea9149c0812fb3f631976c73361fd13d18b51be6aae247e7a076ddb81ff0ad53c25eb76eaf816207ed0f45fc6d869078b4b921532d85f862f425466d13925126f1cd1586f91fa5467fd0e770b9d27bded7f253d0be9c50d24505ac03bd1957b9bdff349ac9430d582f86cfa45206d8abb2c3717ace2210cbcf599b43415465488ddbc0db2ffa296b75aa82bbe86d8142499451d9357161a8cae7f09dd69d98097794ead05422545feff417a49871b8f977bb4241048c1bc2524954d4149ba3e7a70b78ce9c6aa282130551ee4c5ca96483b7137f31ae1251abd34e13eb332685c76925654aabf05e09222c689739de704b6e984ac512e538dbeb781c7885dccb6c5f216a180c88d69d1fb75d15fd2729a180f8711cbc8873e2879800fd4af0c34d5d2555ccc6a63f2abe3bf919f87b404f231001f963af238770c1f4b069fef70fe29f96c2b636d52550fb38468a0eab1c2d497fd2a88feca8fba369aa3997b349169d856c658e1a19e6a0ff6c33d34a68c38d4731166aed9373dd7070f16a46da88a1903bae14fb84af6771be9620cad24dcda14962e55f48c280714b40141bbc61ab562d5572f4c3d97f9c1fb930cece97d4baffa3ec4dbb7d4c119e80ebc4be908ead92a9fae04e73c26af6b2e2e641d307e3c732b2adee7a4ade914aa0e9df00446eb061c8acae8cf48c04ad558fdea46a8de54d7e0616cb0db9ecff7608f764a931a95dc337f888b459dfe696bd855b743dd11b83e69d9cf4a1c2dd41371d93270fd4134088d0bf1775cd7a45510952634da4e1f59e3686bb6cde0453557997dd4256d146a8aa0e05f81ae23c32196b69eef35e9c759644e2a500ccdf3306a9892acaef57947c4e9b50a6bc8eb98e8dfe0bf5536358c2abbce855d93a0403b48ead654a4c0f3042f254557a7b681dad5458e77c352af9eb850b5c7b44761757661e3f1229be993625d51fc1d6385ecd51b23167cb878a5acf26df563159e9ae568162b17b3c2a0990417435a7aa5089fff4ae587843e845c28365b2758f0af20f48c6904237f6dc9233131fb759f500c1644ab600bd376970dbc8321b9dad68d3f4f99aa1e246411ea7809d75959634ce504ffa6de11c7dc64c2eb4ee1e21e056dc5850161b258a417db9a5a71da4e8f2863dec22c928be4dc0463485fbc9f67cc43ce1f5dcea077d9ac5c69b474f178d2b084a6ac97b4dd02ec796ad1c6678caa713e7f2373185247b655651ab0c34911d7b64feff615531e634928f9f150673f04b47e11d627b57ab18e94124d4f8be9dde459df1ba46be659f9fd5db84d2274a8c8c728dd827d33965de6e2df75ac00833235b9aa42e0570c500c7828085ca41bd9284de2af68f196ae8e18eae940ef2162dee2e631df0514b69321dad69326ed2bd902d81535457bc930a73bdaae20013e028daba897b81b731e967a0d3a1912708e61624305d89f8c34b74c5dcdb31a4eb2bf0cae89986312455cd75a64804fdb4c3236cf5936f31a54e87c9e75c700c6faa3bfaee5961a7720b5d6973efcae14e23bc457ac43036b60569a81ef2b4003dd854efc74c5785a7c4ab6bc5f9e5ace191bee308ad25d10019e50149f7c9d5693dce8b2817e35bae2ba2c6e6cb5d42f4eafc4140280e25f895ba6c4758325a6eb291fdc241e7da5222d4d5c1b134b0fc6ca38f33956abf4c00ff7e1c79c145ca75b10736d73f11097c8261348a96b64dbd129a7bc21968faa6eb8dbf3bf3b26249c7aa3927a1b9ddce78beab43bff4f2bd90fc57e94ff3167a5988253f5f579413689a06a26263d21f70e4ce06b84a24d06d6fc0739142cfdb8cf4a629e3b6f3c6c8e5e21849d137a329dc03927cf31665a5320359e40bb4e371b6af4a435e548989d3db4529b8ec439521a5f5954025b89253adafa10013bda88f3e083df1c9c4a514d22313cd818459d66d24f8863b61dc4a50ccb8861d0526ec4b11177842f16771e15f96a80cb05e564f9360076ccad6e3af401943d3a531966baa161c34e31adf27441203d05a6b2cb88ff27cf99fc5215123d89755237b08af69b8fef629bc1fa03b97bb9c52cfb88ce6c6d9a9cca5815e8eae9a9638a01c1424d34da43905dbd9e68b6d03d67bbfe98e8213500ae20398d6e903fafb3703ecda48647af3e2d33f1e24010fe90349a0806924889a7c5bfa4059aef8e2eff1af0c1260649d465e259a4b7f0cd39d513902d3d9f931b4b3e7c21609a587b55e44180d41fae6bbfe8eb5c566b4e4b702a84c295a9b1bc8c22e45a793933a6998b1ce024bda2c86539de0ad93670549f09d5456b482d62eba36b2628f1cf865eab1b1efa8bf2263aa81264812523c8f2da682dc1eb79064fddea1a20e7aff443f761e51ad82473d750f52c1b8397819f2d6aecf48977419e38abd37b5a8c243ca41ac6652f0efbeb117eb143b4f8b94dd5fce95a1542af1777fdb5d68a25b00d8527c29375310535d3270637c226aaa310c9f53ff3a8c6a1ad26f3551929ed933e1453284d7424c5ac883d70e556b0c741b6fe8e717f53f53956c663338e5e528973726c7c7325cea2a1b89e391c6f48f5a0aca1f91132e27ac6e43ecc99abcfc139d5cca704195bd2625a7a521c068cb90f63b82ed7ab04e7848e2ce478574332037e195d7e2db24f87fd9f4ff372b8dad7b4adeae58b4695174e137430cd8fe9b609e040692e8210d45191193eb4bf7aa93cbebe58ec2328e9c17ad6b145c482e558a431abdad1f22114a921a43fc4cf15c0d0aeee4d7daa00cd44b1d693e1b80711d162fc13e44aa5995809cb8bff3ec6d6fd2fdaf919d0997d243e42f7c198b075cd2082f382ea76946ba77533467c10767d93f6050c53101d00f9942acadd76abdf8c8acb47a95e107b1ac6ad2c0bb81fc2b095dbc8e576ce34d974bc67c309c2223cfce41e668ee2cbaae092c8579cdfcef68d129497f905846e1bcd471716439e7f652630b42b7be0fd0af9c9fc2e9d79202693b1c82fefb91c1aeb928075af4abfa52f13055ab0784f3113fa67659ff901cfebd0d3050b111bb119c7c2bcd040bf7d4642e3d5660e95e12434db96e1f22626299fe0e4465bb8110ae4a3ac50c06bd0ba3d1cd57cf9f523ecbd085a18f84fd4bc615a3e863765ebc65f0cd9d7dae6faa1a9a156796d1eb9219d6fac00d2e1928db978e102a2d7c96c51e9df0ed68537fe24ab6fa3956e0d8708eb6e1a78bb43c41560595c1fff1050b61c5923069300aea28789b295a3e2778220d5827123d1067c043216c315889da390fde6c1383d859172967865adaa8a0c0c9e54f90b9bb8bea00d44c6b104046edebf44e0223dab5f5e065e795c3fa076a9714af83823bfe992446c32205df62019890f62b56297ab6b7badb3c3f912d92be9f5f775bdf737026efd71f5c20ef52ba7fed4335f3e7615d00bb6d98bb6c5d6a10829478fa3b0c351772b1db3d068ccc04758eb970cd50c10628da173ab7b4760928b8575f479f6d086c3c61ba2328a06c440cbdb46d905a80ed7ea01f065f97ab50b9853f252e1cc11e96ccfe813b67b3d4c01d8e44d484e9c041db0d9240a8f37be3de9410aa4f08d699bb50beeb1527e921acbf0608ff8e60cc6f6e4c9ea3ffd2124a01c23e8e8c22dfdfbb6eff46afb2d2523592311164c95f4bc36f55094ea42fb46c3a0111bc1d170d5640f97a1375f040616f3b8abea25622b574892c34d09359b29d42fd923479a29f89f00dc85005ee0c620d6c1692b4033a9b4d8c0a02e186c451bb07b5312bc9bc2f7859d4ee2743b7b8eede95c040a0f61eecc231836c2ccd16b0d960f9b5cff52759d3f34f7896df2156a6c7fb999ee287147967d99b9c6be639469b0cc2164c2887543f87d66a0cf9ee918946d7ce05d01e28c0ff11c19a535b3402366204a016ae7b5522f405962da088a1f812a7863b338c6c0f97f94c385fda5de018b2615bac4dfb598c219fe54131888a352b3e766a085f709ee4397841c7a648175dc0a948bb199833159cc62804e7d3c62d204de6927567cf603c61474b512398d06e8a9e730d7c5d94cd51e84e6d116e54ef4e188965f9376183bdd829605727ff265b03dc802389b8ed69018d154771f0fb6537817665b44085dbf6e37950bae81c5a8aabea253074de2f14c2e060212312b35841c3265e6b10f1c9c19bf58d1e67cf955e0da7a2e0092c8771486424fc8ce7168fc43cc8369dc5993f04ac91042b11ad7425ce38372bf1b74eb971b4a004cd9a33c47a89c8a3aa6bb41cbe6d4ea7fe839c2f27083634ee661110aea33699fb3866a124dd956bdf3612d167b7454de6ac16537bed5ad3295e7b556318dc0a9ee1e2495ed51b634ce8ff39eb84c9f2d52cb2bf23abf8d49472a7a7646e188f978f01e410953d545a33e075047e460cf2fefaa4b4b1c627d919081152e752250e64bfa9571bc7e1c625a52ba35a110a3adc79d0a2e57179b6a35de2a4509630788ed70e1c634a61e57676fb880f0b052ea41d194716ec05541d781f99f07e82e5974b6661b29303a70c03b4fd6647e7f5151c8c4fdc618af6e71a2f44f9418e801597ac152f8404c41f57fdfa96f771bf943e1a48999fa49b5a0c58a25e1c2bdbf87271e5ae249103ca54cbbff030a9f7ba06b62b09f25d49d393078eaadec4c9d52233fa5678248e3fece19b50128713c8e561041e1d762902438d80e4feadab033acc43d92022ae4fc2b85dd850a2d109e6e57d543e1adaf65444e0837f86c788fd8130186abd6e1d6586e74afdbb8d80e3f0ed009e1a9f2cd88ffb03b5bb6d6869140cae4435840b560b87e546290947eaa59e7328781ae0716aa17a3cd5011ecc666b9d909372416d809f723b679ecbdab706c500acfdfc858aa31eb4124bc8363c6f370ca8c27e2a18f4d3172a920edd65d210253bb8f7613c39c2b2dd069df91623d2d04bc967189e1882d852ce53d19e4b47ca6c07f5d56f998c9eb451e14fd3355a5c655bc0075975c9fa2cdada6bd0a2fd830b3b622f15b2318991ab51513f389e0b55c204dbc7db9d2c0bb108a58c56d802814b3bcd17bef9aa588c66ad3ec6495f77dc358b181ac420cc4ef7687e3da0e97330f64575396a1c19396ae78e4856d81e1ae35b7fb61a1092bdd0527176a69c5b0bfad101725ae297330060e7028fa02994bcc2fd138e1c323ac41427781fdb4f3f5eb19e437afb9ba1cabfe157f9305361b4df90e40b2ee2ae958c487221f0f0852576d3093a775b0f4358bf802cb4883ac26fa7790be0ae171109f4565fc8cd23a902cd409e0946dda483d0aa7a840d69cd2aaeb8032aaff964a945dd2c0cdb70b2a627454e70fbd6e0ee8760707bbd63f6df20b2013e08dcc2085e1b1bdafb44d8263fd058e7e5aa220380fa1088a194618888344d99acbbae5ebec6bcd33a861ce74c5e2d7e882a8391faa0611dbbce2937a6c082c73af0752205278318f308138c3afeaa581a3217366826bb86b689a51709630c179789df9a7d35ad89d3812ebcfdae8860345c6033a88baacf41951df347b08f79c997dc8c21b1bcc616e6bf098c1f297b4c6be39799f60e39279e8ec8dbf07bc5af9ea7d4a7b10e17871130cff9540cd37a29c44ad821ed3b4bcfdc38d669760b9d54c53dee49f8362df34b982c138653cd8dd64bf315cc5084113ef13da19047c7e85a4cc5f31c4b5a44425960320d8a6a0d1a4dbc2fc8425d1cc2dda820a867beefcb78761f4ad5d3be7f798043f6816abbb84ff622545cedd8d310b69ac51c25308f403c2699de846c2ab67b3292aca4847c8a7598d19c5076523f8cb84a02d80c208cc97422226b28139fd22b4b6c15ea80428d74cd9f7839cca5a75163ceb9273e9dba755729ea849652a3fd99e1c7754539e1375109975607c0004145bb0aa9072ef7b91d0eac730d80529d188437f0725f6b0189aa849eb25a2501a1b3777fe6206337fee3873d40d60a00e36f157b17d362858c007a1cc0d11fff6f8df2b2231e16b9104b061a0d2a8d43d29aa57702cda37aa142d7790d6d78d12d78130680041dc6399df703949b7436dfc6617b0175de5a12c70541def2c2a15c2662542859a3c9d2d2cf02d46b4ef763e70f0965703b6d421e8982e21370fe95e47867bac880fd03f4fd83539a958cdf7f779954a2562359cc7b2681d1f938a494bb13d0ae9eb6742f0199f681b2614964fe8606052d9403a1f8ef2f7139d431c71c2b33807c033db15dd7d08b8e23ce4bc6a3000729ba9c151fda727450b281b0118ae7294348b1241e0c5b1450ef098db4870d2fa013e4333d2a8acba8e24e3503caeec4d57198e565cdb4fe16335bf1e68817d2a05e285f05a995eac837483ea2dfa6451d9b17261f90f873eae877a12d383ccfc31cebf953cf6fe4783bdc1bee9ca52348f2ff9bb3274a47f6edb196927c254290810e1a2868e9d140cad82a676605d3cfc1f6f2bbd6a4b8dd591232ccdd47ae448e022ae93087448eab0e245184cf5c99ef42a36853a92cbd74d3c5992adcfbbd94fcdb131e7952e4fb74f91f6039c6c9678b656a057f1cac4bbec0f7e04fd6b009ac2e0687c72e43335c63d852ba0cc6e246be3f9c772a2b9b3c7e5131c1de370dd6f48eaea5d90b84fb093731a083735e435c280cac2a7e2763f28302dc407c017cb571193e94c89068b3328a3c75c88edbbf059ad912e467ab6b8380a81f38bf56cc547e8d7e05e597bf03422f4e75614c881f6bd1b2122260db21f92a855412c57e25a8254ce6dd74f95b65c1ba73f1138450549e3c287a4b12460ec393aa655f9d1eae89976e0de8e9e3f9ead60dc5ab4359cccb042a826c561eb77afa3960ebd266e92379a6e724727e4b72082768024885d89277d9240f97aa05f8034c40a021a4c91435d4050b29a0e112f64e94577bb5c6827b513ae13a1a9ce88e6027405f2d4d6af142e88ee35cbf91abc29620b0fc8596c1c76d0f390408d983f52493755fb2c7ae04b033570e1a910f9153322db287efcd50a47535b22e5de526e995292320404f9034b041bdefc218431c81ac3d38d7ce6b21aab3157b94c465b2ea3ad495bf0064ad7aa25dd981042ed214c02520a6c385b17330318edd128cfdddd674c91666ad665dfd1960c0ff72bc1624ab05ad45effcbe4e0b35a63ad166dc9e8b85f095692b5cd3767b96153626d53d43673066fe0cb6e94ab1da185f945a675eac71225d706714c4388fda776fbbbb3e4edc4c91c35b4e179f26951d60f77d40968fcdc2c4749e5fd95c9fde5ffbff5b9b9befd239ab4b28bdb92634e3cad9ad4a7541677c45971bf124f0f9e128f52ab6d62d7ee43ca9325a594ae28af695ad571e47e95a7b24810c6e0b2fcf81471e4e925573fca9ffd71f975c9da6cc593fd57cef2ee5d4f683f4fa51b67bca516e743cae2ba4da8f3b4dce53e40414219d631d9cc57f43a8f8fccc624b261a3895e2d1f1b3e401d2434249bad9ad53c50d6ae16cc07ca5cfaf8f8f8f8f8f8c45a4034e80a9986f0cb238ab056abd56ab55a11166111168166ad56abd56ab566ad94cc8b619889e8bee050bffaf57abdfa0585fac59a3df7a32c021cb94cde8ef33721d2933fef4d6d131f264b916bb458e417a32cd3183691c410326c2289a11c4f32dd1920dbe4cb63464fae5a849ab3c8e05933c540895ca58d4ce092174cc9b10341671966fe808d27979d5ca78d27cb825ca98d279716e4ba593fc94c0c9b580209998961e289cb35c8b55a3fcd0a2d24b1c850ca0d04d6f4b4d7c4124fb234b54d8c8c0eee675da599ab2cfedbe2c9cf72d4ff4afbc115db8013bb939900872bcec1e1dad140a4310d15739df7cac161cb75b0bbcf1bcab1fb40f039e22ec1add8e29875d91eeb933f6b04c8662aee107d62fbe810c772151d32a1a36f4fd6e5a8c7f5e47295d0b541d6056fb4fc9816ddefa3b42e1a343abbb540dc5a20d02642eb82379dad0bdec4aa59ebe23a27c231333cdcd9dd31c36c5d31db635d3178a3c4fd6893727731e8c6cce1fa2fc0108b75036e2c10bc0254592122eaf1d3c89f7599bafb6c91fcf86b89a8d87d5608c9ba7e6e0af6c49d76b86f5df9b18cbb75d99ea3fcd8bea2b42a86ccfeb40d5c32448f5812eb93df0ae54f41feec507e12d0122046e4cf3ac96f81f263ef88824c6856d436f06594ff8ff2a3705d2e48904c1f48e08c1ae9c1480f46807069486847b4234048dca9e2309c59867805b6bbe5584897e49dc7e4ff7f314cedc88d61b9d35dad5637e0d498cacdb070fb6e2b3f2ec025fbafb8ecb8a3ca67118ca8aab8b3e3584f3072795a9f397e6833b1630a6d34682339ec1ee5adb89fc7dc88e28f15b9ac6dbe6bbcd196d039dc9bbd6d23f33866cf9e7295a42da41bce9d4824dbf7964cf0e2f3d2bae13e9fbdf47871bdf478517bfdefb2587b4d7482fbf92c969d68a86dfc89fc5527b921ca894cb704afe4c63e83a85641888325b178f702e472456552a5ec10f83ba1fecfa569cf29c55e61758ae5e9d12a98552d8a921dfbd4a31ab3abecacec3c6a3fd0ffb89112ac8908217e78015769d8710b271a815c8931006b5c95818872fccac2892bb2ffdc1a90c8d49ee38f2d5d602e0861c486116c16575147c7540a28386492aae10252210dcd311962bac36dfcd1d3f77f94d655e4756c2fe50bc8fe5ac9e01d43e88e0384907abfffbb430821fc2c382897aab4be6e3758e397c29ae82a0e87089713eb9013d0a39f1d9945f5422965ca8694b2d3a4bcf76a9aa6d9e024e8f655ad17d26b42a1bd1a737777b7264d28e48e388686bcab11847618631bef22be5223ed208e88ad14b7318c38268914b6e042c491a755d107580c3f72728cf8e14985254ce24f6492618ed875bbbb310a55513f40f351970b6d1331ce8427d30d0d733fae0cdd322b481c71c436e41920964349828632cc2fc4a01634dc7b5d85a1e7795a8c1a36b5d72d717bd1c39f873facc953108a61fa76c491dd77b43d282ec4ff33277de979356ad4a8b1319145853435b692db301e6960d1246ec3fcbbfbc78e31469fd29e577123f618ac890b71e7b21cf4f4e4cf8485f4811a41f9971f53269860428a650a28b4c7648267da1b229bda8ba78735978b0b9744d1d112dec02c5b6c7b331842880c937c0ad3cc09e74fede5c72837e20f0f1146fe6e0ef35f5288712af584512a05a5e698e0c217751c3b89e38a852396d244352c59dd1d579a7456bf1059514714d99c1204b7831abda67bd4349a928191b7b8802a2161136249299d543ed6a8a4536af25f2cb4cd672377942ee816422d8ea390a7a05086f263843d5a7411b2b800b824063991dd630e6290c95de81734ec277a6790527e0eae23f91f83fe93388eb1b6316a55d44168491049b2c708840bfd0892bf5814877ee8c85f74921d7ff58ecd22710ced3eecc2864dbe9d4c8e724c654650d3309c53ceeed3e6cbf94dc201610f13148bd29c539b5a0bdad4a4cd97fa524d69cf94fcddffa94eca548afbd81bc7242d4423262d33f931d25e03c9dc82eb7e773526b4d83b555671bf9b9fe87e90d8c93cce21e2109191388786711a7ba086896537811a887c9703e2896b8858c33510f12ec7ec6ad0ba080447638a610dcb0e30aee27e18e288fbc94b4ce62c8ec6e6f1f75145f147af8926e7ee76778f9aff477777f7399b4e8856d0f28b853964d49ecf0c5d35676d92ad981231156c0eb2e1391b7a5d22db8a69b11a8bf12226690b8bd75efa6b2d9796b553108e499ee169e651a36413466789c5727f37672e93e5fe38677336672f55dae67ba9925be2f7a3f85205dec0d29412acbd2e1571dc0ceee7b2976c7337ea04cc34974997d5588d49975a8dc11b588be4d6aa459d004f92bf6a246b0f524dc9fd68abc6dad3a4d4b03cc5f0ad1a9b3329724a495bae0a77c673548d463546c10131d9bb549198b750665a6542a31ab7c700cfbf8b0a693e97556e5c5fed3991aff62fbeb8dadc641b572d89a5745b5c666662c01b19938d89392a4884cd64346c0c8d48145ff1151323336382373332c475460419220020c60cdec064886b00ac66e5e247016bc8515d14721418428dd3f272209868d8ce25fa382aba5cb04846500c5290080414233342cb8c081636942f184b182358ed8b4bb309619341bc0501aa7ab55989ad5601e8159e39cd9420612cbd825ddaa3d522cd4e9d2541e789c18a0460b52325588789c0033158a420711557257856c2ea10164370089e85b8a2360d5c80c8851660310880f4421d80a539da6381007f42c1460a1168af318a84a39a3053236512a6c92ba28a34932c393ca43cd36ddd78e4d65809eb9d5e4154e34d3625b77cc11d4833d26cb6c9729366f2e55d005b00d28dcda80b03a4485748242b50b5c95870c82d61122661d2005613c2fd48b354ca4933479d2e25cd1acf246c2661302f240cd3200531a54ee8130e100f601160254cf200aa4833d24c8bdc27b8117fa4d94c0c0dd30c1931605e5c5a66665c562340e1a3f5033e8fa3e8f467390a4eff774d7613dd1d1aeeefdffffd9a5abebfb4ff3e82d81b99fefffff17f13d5eaee1e272519d12f60746f771cde5d5211d02c73a74378c27abff2c41f869cebfe0e438e3f0c39ef579ef8c390f39ec4e3e8fefec41f063a053daa254d89a6445362618cad55b9529b74e3ec8450e078408c3898dd1b38ae9d8b70467280cd94858be789020704a0caaea01476e52acab289dd2af7b6d22429880d1bd5de1659239522b1b4b8bc099e776f8b5396a36ecc9826cd24614dc985b16fe2791e30789e87070f4f0ccfc39a25f1ffe276085296a3a8b854477b2c6b795c8ad42dae94dc78124522226a7fd657cc226a75d5c58f1350747cf85154c455f71f53894ded99da467698cace74ab06b04092c51336d0c10f392e98537ebe0b333259a6e8192b18318517554cf043184200aa01096e0b716730b1cdadfb6847e1e33c6ca7c135b57cec71814d1301b1d8210c2249b47ac0010f47703bfa1b0a181b44fcbf917a4c1288ebe9b1398088232f74a8306972c408f9ffff228092c289f223072e1f448a8020520118153fe8e28bd8aaca8f0ddf41d351dccf94dd71801f8004ab88155a4861c10a86e41e9dfcffff516ee36bc2422320220642624274386901ce7785e4cf84bd1af95918228cff7f874d44acf28991224a784085106280138b90336f246e3384391b4e0e18874824d2f8bb27981c639f5e728c2799d8279938fb74739c91e334e5d88d63db1cfbe492633cc9bccc6398acf589cb316a750aac715c7b006b1cf78994e3c30a2b05b9ca62ff4aafaf34944b429ad7a2ec3e15d6365366357a1f598e27192aee57611046595487b320cba7da538551bbba75969d951dd70af3c7337c942d34dabf4af12a05e615e615e6ffffafc9f7a9534a3e8eabb8efd355587b486eccede52a050555f58afa45064276fc29a066913db383ed7d58ce985eb28f45c731e209e4248a0a30cb19e431581369d1fd6066505dc19b9f30ad7b686519ded4214a391738b52bb1cf20dd70130987a427cac5fd2eeef7576b0a2911df4b392afacb51ed4efcd5369d8bf20c72149d41d05f748b3bc3fbcb69744c7c11d12daebf72c43c23c020a74a4e11a00c9714f1c9101e65082580c404423ba229993e66103308edc86401dd2690e9ba1fcc0c62fed08ecc1ff3c7f4d140d4e94389a664fe8064fe00cbbd6d1bde5aa2ff11a816e95af9936ec821a02a4e693924b79cabd84579e28fddcd85224cbaa46bd55ee3d5d6f55db9c789b5c9ea6fea90576d3337fcab99d3360f21b0fd373bfa143687a8d3071a778feeaee1149a06cf0dc2c2385a07d3a8980263c911aebc615ca25b73b8a353a74e5d926e449b4ac19bce14e770a16d1c537c0254518a61944f019952ea44a673d2b447713cd10eb74725a51ca6183ae71cd7241530dcb60d73da161f16a9f7e87e7b2d426242acc831b24a1936113273e5ef9b0c69e588bfc910a05ec25d05e18a04815208a043dcb0069e7083da82c38db845a59af11fbb8c86610e8be250bce17962519c49f176cac106ce94325ac7c2c430e7b83854d364178436e906c429383ddd2004d57b743bc3253e50e488210b11d1eb4dfd1ae55c92947e5e92fcd01e7a7fbadbfd87be4f4bec7fb8d878e2b2a9bd39e7a494e338ae5621ab2f8111836c21430890ede1e1c113c68c39a445417ba8e5c2f442570a8dd8eccea041cc0c4215995f996638305e08132d0a118a48921df6437ba8a93d193264c8983163888bf424d2006f4a2c904bd0296753f22f2de82c91bd437448ce1024235c81358d1fd6f4f81e7e5643a6641a2144429c2c112284616424c8960ce141a445f1a6f67e00428687350f6b3826a91f233f3f31b7ca854b8af8a1192e29a227b793a6a89d3d9d4ea7ae93214482a5a1a1a121818418434a20dd28a18412482a9ca0e7916e7847f47d3e01061e1d3684c9ccb0c990245b864d8638e140ed0d3e5d52048fdf208d5e9420eed86d03908f2b3e002a72850e4e1881f1b1851139e860020827ac28f182258864ea3a08e9e8f42c53197ceed01d7eeed01deea0e16ffacf1dba434dca985a0c186ab91db1458fb8f0791cc5c58d58be703b26dd5c363a8768e55a6cb53f6f5cbb3ef37f27595962215d77f721965f99e60cd2a1913afa14c2ff1e43ed56f8b94377e8b2fde70edd21a74307a7c31dba432bddfd1dce8032b09c61595400e13febdf64352818bac3181a2d1313676448372086704666868425562b2b3a54ace850d9b1b273a4a3a313a38e8e8ecee5e1840c2f5ffe0e8e9360033aaf692f9031c638834e74b2b3b36365c72cc1bcc168878a951d2b5462b44225c61d54ace850b1a24365c7cace918e8e4e8c3a3a3a3a2ad8f161aeacecb0b263e7cace8e1d3b66723a1046187705ab1174d08e489c1aad0cc4691c8e756377c4a1d2e843edb0a32c807362c71b6a17e5a3ffb7c41f0d9449a8f44d98f5b45434020000009315000020100a88046381309225c29aeb0314800e6384466c643c9486434910c4388c8118c618620000060064904108991aab210086d505b61f4d2108fa60407eafe5da663018990f94b4b9421fb326538f6692803dc0c684679019c8841043e1f43be243fef5a382973709529d3d14b03bb2f83281c5787173780f814fd93b7cdf1d11d7788d09cd571ff6eefb2caaae4a88329a34ce765ab17125490aad051336409704aaec22b393ddcf0b8cee33c0a16fcffbabc912d2718b85699a0f5139dbde0b5b8637be2c5ea391dd43bbaf7dd6f1a1ba93962c864333ea69bcfb00fbc9966b543086a2710a4d79c5003779c83fb182a2313996e5e6d38b05b275f1d29dfa7a3499f4e54c2d22dbfc26ba66ffcbc8d1938472a859e67fafb11a7e8248368322c3d2bcdb91f4937c2e3295d21086997d4db3f6ab7b4cac52df03e7504466c8094616c5cbecb40919d07abdcc5a870c9dc2f192f9440ab3933088ac3d4c46b3b47f260a6bae29b185ba10f8d246abaf40761aa6f71e2077a527f5bc3584263dd06285bdcf7e49bf2353fd2f882a8686d70a246f1ba555f7a996787d58860e0baa7e00b7a8f336db70e07a8d53df72a8731487911a94a2e7c5f190f63be0a5a19e50a404ab30e2589f2652dfe828ffe41bcd130c26000109180102c22e418f5731fe8fd3acfd2839a92fb2a3e13f59668db8a8a3d5c7fcf9609205a712e49673e8da2273b4ab55f1f1a1bd205f6c90a27d50db829d6adfe93824b6936c4680a82395c0bce6bd388e5e7958daeee39eb18fa292eeb5ebe59afa013145ff77871b65f85b533f5df9965df0df579bccb64b39a01db5ab1a549a4050bb73cd8118074350a589ecfada536942c5d39cae89b1999d33b7ff560e59f40ad65673c04172b89b05f6ac84647dc78a53c0c2c4b116655f97a289ebbfbdccc296063e37cf78687761a16b24973d24e33a26e0f7876491c3e27276b0399242035683d90632a99945510f1a080e953e474db1b5cb8b1790a64d5a760ba04efb3f134991dda555373e1363b2bb8090e063be126f31216f4aee17277b0b08e477e333abe7e22cd291b36db0161de2d99c09729222948a2622ab6847b18d369883616f077d8b3609082baa57a3618ce22a7222981c519ced93560f1a6630a7a4d5c3241c71bf6445718a2aeea537cac70db61f1dc92728ce2546acaf0eafa36bd0b1356460a8f964583bf1fe6d15e9e008f01b62731e016b527c263718a8e7b581c6d6f504a427e1a6865d566af8cab256764a7f279d44395b3bf91520bfa6e1897f039a07861b79b9eb0b4d36ff6243d844a380a8143398983dd48fd8e181b47c33a9bfe4a672c8450f5858c9274da3b5add2db6812b97c6fe08f56622d3ed643b19d369925b1bc410b2c9b16a2ab808552e6d015dd1b480ec9e5b49c9ad798c1396f29467644046ec42b7d10a4cfaaf51d405be43351786f80f4912006b3ded98e0735ce4fe83814c502323d01d68a78465e91c47ac1d80e87a13639ba01d1d757d30cac8c5a8160c6fb983d0c8ced1304d072a4c4380778e431e5791c10398394bd5eed3424e8f90aeb40870317bb2789fefc6f3b44609ca1faa2f30a86d857d60cff9dda3754d714824574dbc4cbfa0f12cd412f0121fb9e8a638d5d031f8a97b2b92f382e7fecd079b1338089e0e69d5ad7c531b4c01c1f9a7db52b02b277406d1f57a7d444be44cd8561d6ba32345cbd39f9f2e62e8f83ac5232a245a8862821db52c087878b90f59357ec05a8c513060b266344a425fe637c9fb3d1f4b6881d062fa0fe85eb14e3388c54e643084b9fc5d69c1c8d86ac26875f653a038f845667f4826f59617b0f1545e5de2afee76d08bca1fca87683bb6bc54202f6453553da3ebf41c55769de052adc81c6696a9b66f64cc54bf0a19d5a5ade5bd53badafb796be5fb9d74df61d9502fb66e2e4bd5157ecaa23406fd35cc3359134368323cc2ebf6c1286cb8c2210f4d66ea33b6d4af89c3e416319d27fd66e3f45a5f69e67ad5e7843959af3accc0aad34d732cfda48ec5fb56ee4d993ae7534d3c6b30c912038eae359c0b492842877fe594044ca8a67bba316cc5c6233e50ff2ea75a88e7a67e915d3f30fee8bb0a12e4efd61f3b7899988894c8e9b72210c8454601a161023974b79f41bd39c5f180ac93684261a7ea7b6fab6a58c561af9df8397a9447b02030559cdaba7cfe71b0641fd23182461fd015d9a04bf64415cea71b7c204e672fb56343b19a4ffe07d4b031c4987a7ff635d844c3c7cb9875d1284c5bf124c4297fb209af84d01a9a848d4850eb5b19a2cef1140f3057e9628fae8abd98a01104df6dc5885c7d30ad36bd9144ad5886787256c7c31a0447aa6e1718e86626722da7cdc8a5a33564faa5438548dc7e5d5ef9836f560eca213ffe205611289334704caa2536419c8cf7daec407593460e7424b17669a1e879b2f6baa96218ace99f7b8fda855f596630c3e99d1d61bd1eb8587b2a7658fb6343f1be1f7b7d593a002862689854939b1e2e3fea814d0d645fbf1204a2e35fbb3e6905b1db11709fc79d0ae055a4099e38db18a11c8da5da3b561944b1e210b686d9fd4133fdf1e5f4cbe04a67b578b36eea74512795b2ca2f14e4a8b6261ad0bfe68047c05e3622e8d763546c2889b4eb9ba3c1ea73e711e9b03c2c552fdd99c61ab00381cfe5e906ac454f48c89ce3514f70a0ee2e5f8170f7d26c9bbbd582788c06630ea909501581180b729edd0c1843296632ec4a73727608c560da07529ebd707e201cea3e5b5a3e58ee32cfe5c7ff595923c22a3c9d5dca46f0f716f78bcf9184bab863ede5abe9644ff0edee7666862218bfa17ac4d7e7432fef95647fee42cb8b497d5cec9d096e29180558375c1d2a478c69bfbf60c8597b9bc8280de25526d0f67c2cd725268b3d9872019583f9754ca0b685cd9ff8c1163d74d43beb8322d0736747340509b23233583ee21ebc19a60655bfb2be25807c9af66c557a1d7a3d8a15e15d627bc00c934ea516877bf2e26abd5cd6e86488f727893afa66492859792c314764960e2f60f32bbdfa8ccdffad79bfde8b0a15d65130009c1c5ec91be037b6cf1f4d34ae05016a7aedd140c9c3df4a63c14a88d944ee2b809be9958d0f25494a20f9be614595d3a53f9a6fe06147b86906566ea31e21d4e8576f27db3da4f1529559f61e91a4d63083b04e968e08354398f50e685b64d431fe04f11fc2109d5a96f8c8c5ca1fe2efbb0f42cca1618e2d78cd1cca24cc17fea83870573fb17ee1fb6e03f4412af228bd860182aeec68e515af62f75e274dd84e1a810e1008681243bcafe869c3ca6bbcfe9cf1a0416d9713578a45006c3c91e75a81c6abeade9845c33b9d1e7610738785d3cd665aa0711550787753f81bbbfee8074dc6b6854746d2f559d1f10285e3e97064bd2ac04452f2332e751ed877d419415a5a955da2570c41bd60b58d39b30d4db2f35465fd50170797495df1a711c3cdd6c70bb91c21b606e3014f91bf23aadc2d753b8a4792eb88aa585f43debdc34155ee02d93b276a26b0fa3b11e74c0b2c1a6eec914a36edd9f7f713666cdcb1e483cacb914c001177655bb1f8bbcf9407a6c8a489d15405a455d6447ea4d86974e7a408a0d1929370a6d4550d2778031ce0cb8f3038339565a70354a40e868a09beb1d46be393494c40b0b11eb7b0101e72ad0f20df5918739c98ebbaf48b963a73492ee684cab56dd951c298f03c49d7865f03d1348305f1b0d0f7cc2a2f9ab4e03aaae83dcacd2bcb094d487ddfbbac325c71f17a5646d96c8e45a7bc18d65d80ea97726dd7d606a9b3bc351a91b0402548473c3ef6dcc551434fa66039496d469149758a1b76aee2d7466e0cdc581d5ce3caf7caeceecee812b8048d474b93acd4edd088f714b493a699b34faf374681e9eb7699bc03e4755ddd716c335c0473ada6e58d7ecfaf598f92f8d08feb09e7c3ed391eb036f93354aa226581dc4fe0e7c87f4a5c846a6df94452e2b1da5c25c80b816afb1eda6273e12d7ff2e99747da0431911e00ffd23703b534ad133a820aecb6b45feda05b3aa46f880e8077ad56be984cda38b98646deb4587e70846503f57ff444ef6b4987081ba75061c28f3b34da1bb39345f6bf83ce1f273ffb5171687658f624d636796f8c0166b8421158aadb9dbe8bfa2d67aa72ff088d1a51cedb8f2b7dd63ea1f0377c8cd81b6211fcde5343dea16026777c39b8f7787e411d22586e2ef91d0861b40a87a23fd8188467a72b0d241d565154af9fb5c335fbaefdfc5fc761b60051f4d6b5db675bab9f21949bd9b2ec17adaebfddd37e59ee4c53402515d5f2bf3d7ae985535c60f443bd0a94e4be76c1e55c424abf5fac5208b02411a1ffa03ad4434d3d7a35fcc5aea19e2672c3e4ae93ca950b40357d42692b2c43a632b4256ef638233681dfed61f861b8e703738a3bde95cb9f6e426408d871fb3e46d8f2a800335b0503d0f7d34736af3bc55cee10062216e1132c132e16812c9ca1a8607fc3a79057da8bce70aea119495761d6ab8c7b6d3423f203b64caad275da2a4f89882f7c8f9aa0bfb5b00cc0aa8dbc2b5cacd3583d4bf91d658ec09b3d170240e602dd016985e15ac93918d604de20898ff382da4b56a86f67a42497de7806705984c5009e18070888144d2826e8ddd213c447e6497767c1a06ac207399252c97ef4aaaff8ce378f335d22619d06356cb58192fa5c023d1f18a0e70fc32471e0b98d210eb376234aa3cd5c8ae2838bc4a9e8242f46013f44f47352b0b3a0487f1b34a6b0f08db90bc76d70e45dae509f9208e2c0ef52c5b047989d2b0aa50213f03722e75039024226781e6cf517a874cd97249e2199f970639d29b0f5e597cb3e1daad2e82d5387e0e9fdaf344e8bb4cfce3e71598f5d8b0553dc5ed7da11e81a08ead608da33817930780155200f5cac8032a43ffa39696748641bbb100f5a56dd6b350f2dac0591168f91fce1c664419081f4cb571a6e0b8b2c1f33530108478f6b34416a1a450727ce298a7d7145f8b217163c454d53b5e0a51c85619f97208cb5988bc06a9ab9da90e61a7f5442acb69cddb09c7d9dd56da69ef09b8b28efa3048777eb4c2b3931897f23c62551ab7968f188b059b40d10ebc9a4210746ea2a51c41540e4882154895cf2aef65275d89c86682463644390f2c10185d60040b6f0652dc05115aa1d1a5af907abdb05b9d1578c3f77b8cedd102fdd08cbacc94811af724c72350e3535ef0059ffed948ed2ed3189f88cbe707fc1c63c90e4368b2344ab013403dfda2de93fad80afb4cce547711a99efd3473b75778812ccdde3f76f02edd3c96a3b013c45d32308c0abdfd5af0e0e8a46a49c20b8f22067b71545a3619d7701d8c0d375ad31f08c3d114baaed6114e9c5ce873a3a736054d2d0bdb497a3dcb1de9b811951b2425a50e4aefd242cec304d9e8b7cabe04c636e46f8ec19b1292e2f8c812915986a51f231e03a91e0de01ffd9baccad10d49666ac406cda687adffcf7ed3e3650ed091cbb3a7001ac65b439015428080712be4405432c64cb091b8213f2ff3f0628e32aba326b13ab7ab7f1df7a0957836d7e81490b44a0d1b79aee67669c842bde28ef8a2632cbec0d85a8194d9d2e834c45221b5a4c087ab08de1e4fa84d297fc90fe60d044e9ac7ac7c673c7fe1833fe1319b1c919f60a8a60bbf55ddb158cfefa000a97bf31d3ed20bfbce55b94999757e334b593a787daf1d3fdc63d9088ed1cd8d5aac436b21e9c91e058597d86441c128a637cb420b2be3ce7862719ff1452cd4a9b04126662b376b97dfd82ffc095cc3e26a27f095510277e64b321b5db44ae4ccc329f1d6eb76222cb8a894abc45a1b445356a5a69421173d6045229cd466b156ebbe7d92a5c32d0c95842853720c06f36afa2d06115604ee3dac4653be62e136421e27924358dd89c984fa53f22022618797df0b564046dfa819db4e24a05ea4e017854d4e64f2e41a85294c4aac8317064f5b8d8ccc6de54649065bd8f62509356b327d7c065a41c1f60c8f3741783b2c82df51579142d56b9818965c5791a2edf6a3e65da0e1ac0b1a42244285218cce59cc7939d378bbd1e77bf082fc85f32ce51bac1d691f921a19d2470777f3df6af3a5ee4727874dfff0de0eba53ccc90885c2d5c4f6b09a53f02c7e5d8af118718bcc8c0d8afa4454667a5eb4f5b1c711a9f1935c239720e9ede1bb7850926e59102bb6e603d69b64a38608f070dff47e4e91c51692420fc3b93480031870cb5771791d2620e69b4b88d2197c833668c2dd026d9e10a525877224586e773997264702765f3e720cae69d2cae7f3e1de27708deaccf6ddfe8212a2243a8344769164e1c0306ecb6aa2c52eeb7cdfb23fc31d224aca90c8381aee6089f806133a954bf20491a462c5ad279206e958801031ce1ff927fa314a61d735656395377abc28947eba09fd417983ba1d9d2d2f7a16e23c724b45d5906e81700fcbd4733dd7cc242c26375c7c2b34fcdb1046dcfc05798d6e11762bfe4024bf768b751a9f7192a297ede89bfe86fb36648594ecb341024226fcfa3587329b0d24cbaa022443c32a89ef23ae0cdcb1ded5337b62dab5f120735f135aa02ad55eb5182e6e9b1f5a8b029c3460dc57c519fdd9fb867a409df0ceecd15f16106efa4d7f20db05d27e9e1ec948e2970ac49b571b07ecfd3a16be322593082f53d2720ca4a17f13ea585c6e2cb4a954cf187b95ca1a2ba551d3139d7ac11869863eba6bdacfb747917fb06bfe063eebed9c817582a74a4279e808edc860b7a11559e97304f50ed3366e69e7acc4402be209a55236263c6fc5329f15e116b6e5cb9cbff2550089039cc8e59851b0a3c19f9713b6dfc144bd4e60efe9827d572ce84fbb0b301af8e4f6fa86e7038ca8270f3d6e4047a1635543dbca199837a62883f466d354869af10adeb210bf865e7277637fc173835d8d55ceb2e5426d761d2410d20123d95684350d6d7b1d319ab2eadf97ca87a8c650d6f0081a0f66577ffc1c369aad13616c3d8f610bf243d6b23dcf95d952765ed28f0e99e0270493c5ebec00081b766bf6940de6281725fac44bf761cabd88a89c2f8c944e892b6715f08edd2a2e0f8c566a176f80a8f1c69493bac38361a8ed345b9c2ab943c5ce268e8417d31a19183c4836bc21a93e08551ce5ed2badca2f7b66ee14141bd6131b4e281309f4cce4b9917b08aa3a8fbe97b7478eb97acd5b39dcf8093cfcd1ee59395820348af31706f17430146fda13fe0144b4542cab271020ef712cbb6d0cacc6d0aac2e0431f03b816e50f2860c24824981a02010c32ca8955d3511c99423cf2acce580b70731b999c7429e6216067a01cf0e77946615cb1cfda209ead51e0aed602f129a3420de3571ade3e2b5772caafbdd88bc55729bef8e94063e75ea19c35d7346c2738b5b04d073470956e60067891a976dae43fcae1e8d6f736a3aba4fbc109cb782b111615b2273e01c863f954c22c6bc0a512bcf6483bdb2118b54990963e0e26614bfa1ea20b66d00d9cd6bd980aa09ad26cd7b4f03c3052754cd139b15a8a168d647f0f5932917c6079fd2c7a27cc2970fce297ed162e4771dc7ed4d709a173a63618cf415721827a8ca0320deb264bdf6817986d5e9a95d9ff93db9e1791f6816d8235f5c98bd190a623e3a80a8df0517895443a6d9cbbce8df1601bc74378a29ab09977776905f78701ab7e8340e3544f4cda2d4af4495d0354caf549a344e47ea9d8b9fe383f0d7517e201aaae635e8c741d3682d6a5c656f82b4128061e1f44bd1d3970191dc9c1419e3169fb9657684c79e88ac2692aed183dd804880686909f94e3b062e809aa36291722bd62f0fe930e51f1839d625c59a4ada40647e8e2d2e685b2a42cc9e6626cf647278a9f3cfe660b5c2ee4997f4bad60fab299997a401a93da0e83c0763f0ecbb4e2d421f0d0a167e8af889e4779d5e0c2179b456c19feb2ef8e9e5f4854ad17ad0edd744a86e9d592d4bd8eac210c2e74a515b24ac32f7a5911e6a71ff4abe57c2e6ccbbe02fd7f4ccdbda22987a8ca4d10bec94f695161db15f736d56b33962a74ecdc89324038999da609276640d2595202662d086ef146dbe4538d7b1c837ae9e07b34de772108fe0bf62dab3f5290d14c14cfa9388d3ea90fb845abb98a493f873cc99c0d72a089b6f587f201532523a0b66283cf896ce9808b87b760b79c6b0bc5ca65d08884d482a38be7281fa9e11b81ab7ce0a092576b613d3ea151cf00e1e8ca39a39f38a042426d5abaef899902036802f219abd6d22e66be6471630727e7103cd5175377918d9fa7ff92d0d9c7e9456493dbdf41f6655ab7c59cd774b22f5401e6a4147c6dc21be382f52de362656164dd3f43467623a348edcbd21fc05b6ead6d695f26c6d9abcaf3bcf1cdae885609667c2c0794e2da174d750020e1b42fcb37085b98a0b5fbb21a796f0f7e65fe5423db624b5f500a8a95e50a00edb2fd37a823f0e03b5c34850ad3c7d39ee46020aa6ba94b43c32416b1678585e3d8ad2f878c0781737d0f03be9e170ef49bdd891a3ebd889be7034395677d39faf9e4fc18e6896bccd5842a8e64d853aa08a752d72d3cfb52b83a63eee7b7a644944d461ab6ab12b7d05dedbe300aa97a99d90fef36e97e63b357b3ecbefcdf7760509b32f818826caa37f512969f3711ec62e2d0c5ee4bef103e52b90096020186657c2d2c65d7d8396b6acef150a30495a917d7cbd8f2df17582e398e47a216b0066520161018ffba2f4177458dc4c5298b83fefa41e1fffd8a80925f7ea20dca6d79da71d227640af060d41b5032810b2684e8f48bb820ffbd541fdb3461c2d61c638a0d063c79b6874d42148bf1e2648ccfd00bd22a078cadb72e7230b00024c320b6db375e6e919fb8f009820b54ea9a1c952b6ce06b076671a62cb90a37441425568a3f3c5e59c51807c332fc39ffcd1a0ea7e6a1c928b81caeabbfbdaf8a30538fb6db7f12dbcba49f6e6d3244e43380b4c37358687ef4edf86091fd8a546fd883ddda73c67b990c29e17fab1acd4f40ed5b73417dc0ada09eb401796a556f539e7c3d4297cc8907bea80c944cc97c7036211872db2f97bc8ea49d48e792111607a2a55e97b355a36be3bff917d7a461755307b955b8344c1ca9385997fca3dafcf724a7b34ecfdd641c4a05aec5f2c28309a5c8268096ff444cd82d0207d9c807ec65d6874d69c1c0edbcefaf37c6941292d0544a85dec27bf27804654a7b68d88435d001e6364f616219934f2c514b34eb3795853a076eb96fbbaee694bda5e4a6b45ab36cb5daeb52f18ecbdaa82e92cfc98083b6dc782222fab853b717f2daa1d3d54ace961946c6920a2ae0223f957dbab19a783e1d192189ff265ca2fc31448732e7c3c6ebdae37a42ade5de69ddb325590465163585320fdd373ba1533a5129176d05e56267ec4335a66987c2425e42efee06eb2a1724e65dc8603f6f77b1039238d1ec90e2e4ea2598757b825c71656c346cb984bccf0d7aac823c65a185f9ca95df745e01d595fcab430c4b9ae459a85c9b141a72e9bb27be4499b5273e5ee4862b30eccb2d98adde9b462308ef3559b4d9080a358c8f847b0a08610db258136cc43fcd9c138136c9ac584914509377a1efa066c9d3468aa51fdcddea501812b9e85fbb7b3d0f8abe8f3cbd4d3498eefe0be0c6f1f6e18a0985d112b9be928de993818525bdd9a15028061ca07f326b9b08a7a6dba679c2c3b5f299e4c3dbdb664f4136c790c00dfb0454f8832679321741b85c61de39ab658bd6696a684dcbb700427b900d03345e503fec98d5977abd07287939c41cc19f481f0bc5743d263a19cbfefe166842b8c2b8cfcd99daef8a0ae00a86110f5d8f29fa779cd00482bb155180fdb91d5f88b49ca12d821310b9a8466dfa1c79090b53ed5718781d5ff68e04501899604f3406ae27085a04e37c56fba3735d3a30e4aff9255d8199faf691140383c3d1914744e912d7f1ebc476ef984925376e638f6b277bb0a8439a0ee7ff82139e7e5234c2543e8d10dbe5773b289fa25584c56a7d7b841201c640e4bc9d0dd85d2475eb8341b331743361b126825b133a8f666930024029262e422e24de03a77fc40cc37ddf87d735ad8884271b2265a09f4706813a799211fb8ff361267896cc92c918c215127b4dc231ede20759b30fcacb91158a74d5b70780eb9b63dd783bf839ceebe18b7287867e7ece94154150cd030ad176ca71903c38af8f512ccf4e7e393faccfb71aa0c4000e569aa6ae4cb163869d9736fe303bbda51d78fe7e4c8a743dcc6f1d68ea617f8a5144be8ced87d6f0cb1472f9e3da016e5c056f24bdc2f87ebbf9fa3cb2b96611da8a6f8e8408338f5439e0ca4f415e9d0a862f551ec2f574db93d3200f189fb550af5d737394f14b86710d51bd28e0f8a103916981f87ae8d6d2fd9ca2f4062a31dcf1a0cc6d5e45b537cabaa472d0c081398bff622473ec218b6d11b52147ebc5f02efc59d9b6ec1fad20b68cc32234e481ae7b1a6ba2c6a908e162d43390c34a8226c2ec11e01acf6f70717fed9358502269fa9101d24713ac1604078c741d429bba5bb93a5832ae125d7b5b91a9ed50905c7a6cabd6d0ad52c01d2a8be17b9727539c387b26e16eb11242b078dbca74c71d43ea016e7e2b945644545df438b61b2802b6c9f42130c9a44ce00963f5c4cef83c3bc4022e9eaf887aeecae0484571b63f46cf4620243863889f478a7c62d09ea037aeb6803a226278fb5ec724156acb62e706d47cf5b7a09b0aefd047ba81979ce391d4f17bfad8a050171f42ba040c32191e0e9e7bbb1e5fc10df94edb1d2b5d78bbd6b2e0203037fd24abe2401c0f00abc256b7173cf9a7a54a1a91eb7b82990107eb79df238525c275842f3b75e67ccc3ef1e4025d9b8f05b61b542035a68ea7eeed1b6edff1a5b062d9133c9d8b39d78740e8acce1523ae4dc604e0e8627dc64c0118705c97fc4af731c9c1b9164a90ffcb33ca001cf30d4bb1961950038cae0ccf0b6f5a846c291fa426f00149c9163cb2f5d77957c0a0b10a7d83c0122b2fc98a5b5f5db5638240c464185c8ff8ae4b170d8e05b94214994d0ca06255621a6f5ba5a6f64d8e3f84bd6fd7a8196584cc282a2cef82009c60194dd3c9f014f767827fb4d008b1d30c40ec17197b3a8f46fea5a06db999b14c903aca178b3e9278610e0d05caf47b49aed10a165bf7505397855d820c618b3547392da1b3835d22ff279986721117cb9e271f5a23e0ad49cddeda2f3c20f984490cc13d5c6b6c89487c67ed1af22996b70c5464b46c03c9995539e19bcc8034f394ecf4184984ecfd30ef1a54116e131ceec0542bd846a5e323502152d3b98a2aacd25c6b18432982022224142ec5d47d113f66047c3e7546c9ce2aab383ead4b62df454d56e14e1993d7f18b5f651505716d6e6e691beccaccc0d34b5cab2078ac8d04d19c555075ad24c9ae4bbd884651f09d77bc90ce45298a2c1ebebc38148d5b1766f4d55f48959cf1e4d990a5bb56b7a49c64e95ae3a8e713441503338291c96f7a3e11df02314a21e7c34c4a016402d32b366440f4224efa7b805ffe21dcc1fa4d655a103434319dc8bb41397657a96b8912439c1836b27da08fb5859ed138da13af658c0be5726562b35e04352bb2e5af38f15c6eb5e566d298451c0e505ed2468242fe845ca8fc565d83f3306b17eebb47f21067b656501ce89625ebc6d74eb4c5eaf7488ab236515c622ecc104e8e87f6037dd065a2ea45afbe8f9c142f5ff3a3730f38ca0a7ec7fb932feea13cff9c12e8e2188865f06aa588e736d88d665ba4fd34339e3226d3d8780ad55fc5e077c69303d9d3875407fafb2c4d955ec21628e52d6089820c1db9c5832c2ff3d51fefeb02a75de729cd72910d65b3bf7415bffa92e77839392de351be12cef1c286ef5034292f5f9d1db2bbde117bc81caadbaed00082febdc0e419c08e204d299b5967744c042b6be0b30635c4dc7740d840e35ab21543b07a51b832d3663bef8e9994086135d7c98e355f40f5cdf8b2203725773de1fc7daaba03bc2314d7b9a2c78749775ef059b8e57285e671141d8f4f0ea9ead1f2e9626b92d07926790661de0f25be2c7830f5e2272122e771be5a2f8756c16db0f706749d22bbb1c022bc1386354b43cf2dcb7a7f5b91c547cbcee5162f40c745d0bbbcec0a9dd3e589c95e3ccee5357c2e654453672eb4f962d8f5eb3e95b89a5960257791b4b275e38e7bfa9270cd185899d53996a9e9bd609359baa4a5a5ea3c99857d4079ce8968ca2c61870cf1975928b025531cd6886098c99f324bd1e306813a69cf95593e34dc77b0d0082d3448ac8d87b2e67805d84bc0f74a32cba4bc6496460961297693cc627997b7fc348650966e753dc8254059ba41bd4ef8e5a6f35a2236b925050bb3a31194f0315b9427ba58bb36591c59ea74835a594ed51d917c7ff6ea6e86e4f6e1b4f6452e4a7537e4373616964b250442e01f20861bb9881b6af566a32b549236986248cb8df59563507cc2dd26ba34aeb47b77351472cdf7f7de517c2a5a1ee0c3647d36cb507cc673e6b274f2ddae2640c814dae47c9ae69e21645cef5e8f6004771f04449d452ad8935b6db040483c9b1b8a25c12de1d2289a20b768252b43775ef260825ce1409965dff418e1413105621c3e63a4ba163431eb335e6d74a257c02cc67077cba8a847cc5c2dc2ac1aa99b04539b4c11ae373d29e219c86ad36b86781ed63552d843e9531bc66a8b654f733c3709c44a3d753304c2d3a71267e77a60356cd250ad2a7b5ff2167c4e9d95220afa4dcc2f8eba833cbd81dc12edf2ddf28ea8fabd17c82a6a814007c3a2b8541ed03097364ce27c16c3243cc3d690152611170ee583a1f459767c4f6ad1fc91749727a61e5307c8caaaa33d3fb2f6abd0f0dc0c462aae63311a37d199aedefa29aec8a2621749641716157b0e9e16a60344d1c313601c5e595559529a42a75dde383cd6809510c671238d77236e9404c73b083d619609c1e27fa9d8e108712a96e4b903d0f2bb5001390a00de18bba91ff68ef8abc4c2795d1324c45da0c193dab2877d8b8a16c893dddb893138821a40b399b00f5e4f60fe85bfebfcc98a928ba16ef39af41f0e5031141f027dc550d2aa9cd34ebb550ec74d3c7c94a7c890f6811e4502c9320343be9eb21e8302110b21a50a66753942b010915ddf0285cf737038ad6a60dafe8d524933ea9501d5be0dda297e901eb384eef028a4aa0ed92163daf30f96e2bc79ef03484afcb65cd3025dbb8ac992c91987d419d18a3e0a4344e9e77fdc7b326ae024ef809f2b310115d87bea5300701c20a9b6f93e2f63b826793de823269945ab8027022cc4ec44738b3a714474d3b190aec423953b23d34cb3425e80a5349e68da2626a31953810fc24fa1434994c80828c93baaa5722a3bd0a21f8a81552b64f0de0cd8cc8f31284be05579d01266edca7882c9a6db9933d247e17a97b3cd46ac176d3aa8b64158cff96b74c32b7203a9c6275a62ad75995a0ace87ad98bf2e184da71cd74010aaaec428cb8372c1c9d263dee140ae99b8239b647a6732d760598582984dbbad2d9ee9244b3d3a1eff528fefa0bada5bc79a2c03ccc9c0d4576e88490993e381f32783b645785761b6235214148e53a4eaffa3f00d06440d12db2db3682a9d946f4ddba1926bba309cc62739f243057be770dc7cb72ceef3f635487a0950acc0ac5f72c75d5b875b99914eab9a16ad34c41c66a5fdd3ac9e1b80e15f13870db79118b13d2d43b772654dd1e4be86ff40128616ea4cb4027ec30687a97d9834d6e07c02adebb05756fd7570dccffc14d83ed5f0231defaa3931a12a5bb3f97e2af4889124024c987c66b3d5d9640b7b7bf836561f3bc6a1c5d894780bd68a6d7a76fe4f191c645b984ee0da920b544a119588e35a14d4622d8eb33fa2e04ec94682ca9129bcbcd387cb5c8a03288ce7e6c9a94ae74f625bd857aeb8625aa9a10de247ae126945b999bc6ed80d3202e2facc3d1af80d9fb3fe9fa012e8086646d3fecc4b2400afef21553a90ced2f408088aa2823a94dc74aa26ff9250de60006f5aaef9f1a2d76c7d22f2da7acd61cf9e902d4da22bcb0659a818ae97118e4c65a1962af2c0b1728dbed292eac214df95ade386bdda70708e4d7066eeab360d84f90b052a3762a59afab18833b4f2d0ce483fa7d63fa141cf5711395e08c57492cdbdac7d0f13b08a5a05e1fcf9d9340ea58a43f0f796cebf99cf7b33e1d481161a7225f6f032d4b4fb50df25286d973fcb23802ac538844fc5e15a10a2af895d5766bdfcdb427298a2c380ce842ab418c9dfbd72fea13944a7e0cb2b2b55249333f87df4f8a3d908d19418b44d9c791174bc81a4214c576cd69671d3814f6ac6c0a939fe7c74396b4ec086d5a03fdd21521c6c2d5033895f166b876245554aa90fe651e483a0bc22105bdcad87d6a80940d815682a4988a4e9ed4e9ad2d26556747923c8c0cd50bd2cabdfc470d4ac10eb5149749d1a5b885ad0ddb1714658e4a86a8de2e89486fd2da25cab51d45ce60fea88441677fc8f29da578a7b4011dc31280a917df64e9d9938b0fc34dd7c6d9e036ea400e9f4aef77feb1e8ee4da5220d447809a58afae0a16f34d6d2f0da2b01f70fee46adfbaece4e9c35d73c293ebd845836d5eab903120e0a670abb20fb531c83b84b7f069228612aca52915b4ac0752dc14636bcfcfa3c82360ea94f9d20cdf545896fb97a01468711af6f9b13a02406bbd342dd8e10f23e7a5b9043f4b5b5d9ac0c43c4b065e5da83100841f80d071d1cc665d16f84b337c042d0e755163e03c3a481577f64a830682ec46941161b5f1d3dccfd4dc6bf6ab1e1060a2c4384a917533bb8e6d88a0a37b1b0088b516924f849794aeac85e81d88c1ee48878989d963bf2eb6568b5a3cae41d75e25fa8e217edda41c21a8af887d9b4adf12526e24bcaf1ac1af979c0383ea5a10cb1104dc0350f1c15e0cb7129373d1f5fb2604edf20816b3cad9b865d2bb55c9970c6a5d9b6d8bccaa5bbf7313f1452b0582d1797804e7861fe5b80bc4ce019792d664d79655d90b163c4ad7870793aeada33521beaef582fae87bd9c5ab1eae6b0ce7e59511fad53a6e364d17d4ea10da83f87e87b13538179b0b0d434b716a02e30bb5b8f40243531f5095640ac4cc00032abe9cd813a8b47d6e2fd96f989b4f23b974badcad4b0c628aaddf64c18bdc2d7ad8d68a8754c0e210094c6be943e4ed9527d231339a78797b6be5536f7b03542732a7db3a31937cd88955d035a82fadbe1c56c3a9e47b50a714803fead2626e88182b15a9bb9f312cf46e1f8a5427e380b5c93c9726ca3b9b8432a90d6fc42f7e15302e9c1eff3e1a7d8156276534fe7ee1743a02c398cd871b1f04ef0f9fd95671e8d934cace951111040303e6c0780d9f342c113ec8a422926ac8f9b68f64588cad72d1c4f48a2de3ac1ae6e189f8631384f7b2336d479221e618468dcfe0929ed6e9f1c2bf26aac75940f1813828bb21865cea91fd01f318d0aca8a6acbae4e2c8be8d77ec74ddfc3dcccb48d282a98939e761ad87b7dd3fe517260721d67624f5120d1a2d9d18aa22b8a4bc1fad35a84b4d69782fba4ff999f6766864e13467abb8046113d4a80eb50d5dff0f7c0e4c330e6820aa724a077f5cd3d691cc750fbb35cd3df0466aeb28df0c5ce4d0f8cdfe1b3dac7bef2610dd4894dd30d6b846d2812f53350a8648ad9b0ebe8ef301b4847b5630724759d15bdd0767b1e2af5b11706a4b79d81ab1e150d03896d45065de3504dcc35c58e132e145335ee29fe0250cb384c4be5102e760fecbdd2b05347826ebb4c76b69e655e24c5664a88f925e5e4c6056e728dd7dbe832ede8371b825d6fd2fb79b49f736bfbc08de29587d0b4d295fb04b58647766d29fb9f06ded67152c0970f9ac7ac0593a8f4d64cc0821929b83da239681eb76aa2884bce3ef9d45e4759a0dc0dcb908a1818fec43a1aad2bc081ece0c68c725bf09beab765cad225b06db3ffcbac6db32cd05440393ec65c130cbd8f9ace9c2e4c4aa16e2b89045ab3e2321165b3f52173ac94efb6adca09093032d0c700c830161a38216c2a734d06984e023c18bddfcbb79129110c57e4cfad0649478c382d1a48973817497155459e634eddc1dd351e5f2233a2366b6ec6bab7e20d6c1c86059806886ac4b7935f91f55a928bf1afa02c1d6440e822d33ce781449c829875e291208a89c087ac5ced211cebb703a8ffdec695a7b3ec1c00a1768dd78c8d3d4c1a98f902ca7780f69074b81441af32193645d123eff00d32e30786277a4951c677c620017f947ceddad5f33fcd7417dff1532840d0929e21a29ba0caba8503735060f697071ce19fffb093e72c903a548af32d4f83c1e194e3264154c25431f939a3b6cd983fc836865b6d0515577eab656058572270cbf116ce821d99398f2205d0dd54bd5d3965485bbc7e4de5953f616b855cdf55d3b2303c21daad7141c22e6f895db4d2b6b4a90e1b1969f9a51709cd367b64477693404ed2d2afc12014f3786f15963ffbd91aa7210eda618e2991ba417391fbed1dfa63fd1382be2ef4d650a584feb08f8b6223307e5d4b1a64aeede6effbe55574a552335d16bbb296444c87c756aafe08c650c910924934b26f5ea93e17ae03614dfc429a021768f6648a12b0c3a36ab25be332e7b9aaf1661b7beb5a913f90c6d910c2a305004695a130c1d64f79198e2679c9e03a23e666ddb54d2e4960b3c15445e6ddfa209cb5230a8a242a31ae3e314a532717ea4a29c6654bc24931ee453fabb93a35fc847017ae0af9822c259810e484b3e32f2f5eee11439e535fc729103d93d1c68a70fee5040e92af8eb695cbbcc03661ef22dd11176b6f37d9a8846c2a45bfde87ac4e1b6250e5ee126fe32271543f5539ee468e1096ff4d4d42976f801d995f1816d7dfce0447b01170361e978b201ac2a98187972c4a4e65c04bca9a58a0a02fe1679313ad5c8f8dc7d65ebf2d6708807fbb715bb3fd6c860857350ab1a06adfc02f33c516d103e2a428f7c4b0a2f773e8428749373c739464e5389583f149046b8c2d328b879509ba35a5bd25b7e527fc35581c85591f8d5c87354f27d933affc7f997e9b79d4368ac3c94e2540ccab3d6b54305b60e09ee2b37fec2921c2c277baa12197110deef9dcaaf8c0ed3f9743c7c9c8c85f250b79506ab0c05e6b024b002b1b70960041dc4bc4d217748e33a645e80240c39958e9bc4f6a990919a6c28b0357ecc942787d3461964922c602de2ae2f38fb9017c2a7b2a5d1a2caa2425bd3cf8e27e12501b7a3b5118550af7e0fe469791558b0e1b733a2ee06d3e5acc703cab5fa875b4090b24a074ae66bd9b71af1651a897d1f788aa168d975c08138559a5fc798b2dcf7bd73d296279ce383d9789221ebee42d61df4936bbb678b22a69a0b19f4a6077f9164c70ed20eb962a2a34c78fb5b6e22f7de5b4a29a54c490631081b08d908b202b7e9beacd0b9eb9f0a782aa700715e5ea26055db0b962e7b32c71186d5d57a5e5fc803e2d9fa09f0f80d7cebb315ad27c6135f45b6b2c85655898ef213233fa41faae4cb1f96a66d693f2b3f5e8f860f4e9410b7fe55ed05e987a3dcd91c593facbf10e7c25d552bee346cb510e7acf6576f28cd01fcc6b13577f0ac0e8e2a0229eb8f4e0c2d21f8966ff939e4352eef355df58e3375e3bb6f3ea8911f2abfa3e94721e0f9d38febaf3f3884609c7467787474d4d539d45387fc26e537f17142c029ae054a96b83e0901d726b2872c3f86868b3ff55dcd291d64ba87a00fc6386ad7391d6d75fa53299fd475616f0e419c9acff136fe4197afd9b8edbd9a10b6d4639fd4479f7b93ac8b0c4fa606179776e9ee477a4f541197ecb372c5b2d2e8ee8af1c83979555713da13b18a9845f4429b626d3c8a479ccccb8f45584c5918968238238c706db85b604b4bb7746a7b79c33218e3f8c2edaaa6dc31a96a726e84dc2df3db57191ecebb892fab0e59d612d4905358e6b74d6693f96775367c9d9379215e35f94deae55762f80dfe1e3c9691fb59c8fdd203b97d868d8cdcdf6211d093e3a7f086e542a1321073bf0a596efc91e847ea31ce4067fccf0ec1f83927833b1b1c8b9c4be128e5b23685c6cde15e28ac631096b938f6f0da61940f6e5bd7798ba9f75a5a5232a94fe1d88373f2be54ed837f48411c5dbfe9620f7348c96fba2894abf88d8c53b29c43392e9ce237dbcb6d7bf983edc5391ddf920377d506eeae0b8e444bb0d60b971aeb78f86d877896da75ee43903aecb7fdb651cbb1caf1e3d3f8cdf6f179f4eb6fab83e3531d04bffc1b32ef667b59f3cb05f2b2e1ed3d11e2cf8ddb42d8e226b3451deec3a939e4b1b63a5166eb641eff8ef84499e65f0829f9839f7fa1eacf1c9a433f433ff1e7508c4745f1bb49143ff784b3bf984310a7c1e8a5348e785094e524ea184caf46d5030fa797a49492659da19dea084e90e5cf881f26dd5433e15eeaa5d45f146f9d2fadc5c707631f8c31c675874f0b78c78ec73a74b4748c31c27c6de2c46fe213bcc11e88b68f5bdc925a5cb8ef6242a8a9c13109a738bc14027eb0260aedf898b463c7cb1d3b76ec88423470aee071f26312c4993fbc1af9f2a350079943d3892525ace4594496af82d7437e1773c85289b7170f670ec11ae94e76d07ce74c88c2281ae3cda332687ec777730804105c5e7aa9979aa99b886cb83b8235fe9fb6c807df76c8b344b0129ceac1ad8cfc46c7cbaf8e204e08df8d90e5d7f85983fcc6677b2c3f840df6e035f241d8e08e0d16d16cd0a86548ea533db81d3c82499fc23b292992200e5c4ae1e7dce5f2f380c4ec0d633f89c2afc3c67723e42c58e052eae5f7d24bfd86fb63cb1c4acad2e5bb3994e5ccff068f9c939f63e3e9fc018637b6aef38d9fb6fecce0f6cf7c577fea4feda112f9cd8c94989a636e8e49e5180dc7d64cdde49cfc69fb477e4de1aeca9f19f9d677f5a7eb3a4311fbfdf0c76fb0975f99f84dbf7c13ec7777d5cbc86c2fdfd85e8ef9e9bec6d6a55eb61568ee522bac10b3b6c950a2d4abe97f1bf9f0e8687b5b8d447e43f1ad951376064871bd2cbb6fadfdecbeb5d745fbcf59966537b3d65a9b6536b399b5d65a6b6f66efb57fb37b517fb32cb399b5f666d67e66eda33ecb6ccb5bfb2d594b4b96d9ecdabf2eac23a6a132f8ef3dfbdae682bbcea8d76ed692692fb7b468d95fd9b5d65a6badb5f7b39bfd7571b99fbddd329b596b5f88df7bdfdeec66d9b3d65afbd4ea586bab8579e938839be11dfbd95fdcd9bfdfc5a212ec90beacfd67dfe2e7dc263fdba210a81335af61824bfe7b38df7c73c20963965c87ff1abe8c45e447f931c6f8f2bd18166e5f714ef6739712156bd00fa5c8fd3e3489e294a32c41791d4a718f717fb692a43bcf397f3f652a4b7d39b85daae352339fe10eb5befe7840aa87d6d3ef08906156dfda2afa93fedc5eb6847825ffbd43e9efb9f30da420f900a5a9e8a42b3433f229bb93937f3b4927086dec281e0e6645f64eeaa49602bfa4fa4a6c1eb2c7187f7b382ef422ecb02cbfaf5c9d14b138e7094882fe6fe12e553b29dae8586edce98c2be3f3c68e70197e2f99906588fb4accb11f84a82e09517e3a7aacae66540fcbfebeb6ddbfb47fdac3a6ac695ab6ddcf969ccb1a8bb66538752fae4986d1287b0df51a5214a5acfdcd5e7bd46b7f518c1e6508bf7b812fdfd158d8fbcda56d1fc4d59eaae0765c95fd63f2301573b5ac15695a11ac89414c707412e3c2dde1e9ec455c8c0b77e73e4f67ed3737720ebeb6799173b085db710e25caed10998f3496ac7dca394dc3ef5c7667d10392655be769c4ccfeb2b22bcb50a8cf50289a82ab7d178be210961cf4806c2f5b5f831e901b6e14720e5a1f8b8cfc467b40500fff426d9d2392f6f7b547fd75fddda68d2d417b1446b9b8fcdd6cb61fce41977951702ec3f189d58946bc1ed0c6a2d7033e1dba9d1315214539ca4fd374b4b75be7d97e7c220431e734ec8fb2dbcb47ed85787c125baeece1572eeefd589423472a75835e0d7cfa93c86f5c1efe94e237f765eb3adbbfeef6b2cb16b30bc647b87cffbadbcd578645bfd1a213196a9aa669b1e8d5c0d734ed2fd8ed104a54f677eb8c7db6b914e7e0c7c870ef67b57a2db2a06adf4526aa866b10c4a981619173f067702fded1fe7e863bedb3bfd95f1cad4e869f73b8c372b4350705ad10eb0a3d87481c79a0107360e5d4e23062f4d51d93b251638c0933068dd2d1c95352aa422577a5076466ff966578115908c363f61f238b2ac2c84a55c03072bf2f41a5070436bd1e4db0063abd9c6b6e30622f559c5372ceaf8a26c19a8e30c62308c580d0094a899b6092a55df13e5da7996f4abd5cf8e438b428bb0d9d66be29f572eb554ac1f728a79c53d248c949279a034fb7eae706df7f30a8d5bf2eb72ccb33cbc29c5a3bfe16a8835c4ffdedb4d45e2ee9bcf08ed31e248dfd34e62477f0797ce7fa24795a9446f9d84f07692c2877d0c23bf4a1fcebf27cfddc3a8c4986d94fdccd8bc2795d0d2fd93f99461f5813a9532ce33fd84f771893dcd885b5e02028e9bb7ccb7791e2aeedcbe682bbfe69c118eb6ecc285feeee17c67e68fb409c18f4be9f40273108e244214cdb6660b8ed9329ad4f9b520c885adfd87a3b8f6093d2ad3b827514a2b9bfe3a1d93ecab28f555ab38d7fadc51d0fed9f8fff707704c38030a08931c1805a841989f2d3d1a3b58d2b34e94d986275ebc3fc7bb9d5afb6be9e9530ef1b76d1f84d86fd75c1aaaaaa1dfa49b2df4a4af97056dafd29b516dcf9f47b1f5ebc039fbee38ec7710f12ffee1fff6ea7dc61cfe33bf79364efeaaf4b761336ab7bbf31cce3597a74f8471ce21df9f71d773cd023ee30bfbed9c0c004d08965e8f7637fdddfbf6d11ff893b1e67c2be56ed1deff85f0d93eff22d3ffd351bfcc203b37f0bf60dd4c4a1cceff4623ebf3e36e5cfeb053f2a7695e24e62ab3b824d0c61d7f25be223589630637847fefcc61d0ffcc69e80d93c30cb9f8d656ca00d6ea0ea61eec7deab9f325e30db7cb7aaaa6aa65ce79cd3fde8fa8b524b38c5676878d8cc59bdb5c1b7416c9bf9b9b98d1a30a9f7bf2e8b524a797cc77e923c25262df996cc37c5627c7410ecdbfe8d2231f846d779cd6904633154c6e01dfa3113770f922479feb3e920f8a150eefc797c27e693e4b97530d328dfa683c087b3e3698a773ce6e1fb80f5bbeae7c41d6c92fd6dadf06fccc0702be6f1989fdf5598c7337c0a9b3c290c9027eedc04f9313116d3fa172a0116fb6811fa65700cee626e2c631fbe10ad04f9f3e7b72d227fdac039bb1befdfc126195e4ba4633eb345b0dc59c696fb3e3ac87cef70c0ee0696799425227fa7f18db7b6089665578803773fb23f8acb2ee7df803a704abee8cc56ca297fca18eca345f0b799bec937fdb7dfb0105813ff5f7097ca8135fc017eb0e6e20a3ff8aee678cc23f3f6600d2ac7f660cdf54185d5fee5988f0ed2f50f89bb1f12773c5266fb234f8b6702e85bb00468b14c35026343fb42208e1158133f1ef990b9ff47b67e5a3f2dee5e1ab11fad8d16773c12f361595625a99452e64ab18f1661e2da3e373c3543958c65d417f12413203f242298889092b9fc90886092899892afdc3fe337d6e79c53becf3a67cf6fe9d35f4e1ec73c9ebbe29d7eece37cece7765faaeaafea5f1731ed4192a4ab10b8837d921cb70ee6ee22eda7ae02cc3bf4b122d9c5e3f116c970e719cba84a1ffbee08d661b8dbb14cfd6925a084fef8317690f893c773b444501ff14e7cec31d4cc62763946bd95610bc747555667d2ede53a73cb1c3799fb6311d9d96d0957c6baea06ea2072667e57dc75d61e66adeb5cdf6279277e7d8aabfd28437fbe7c9baf7fe408d64522fd3b18ee3adb2258eeb78118ee2edcc5dcb8c3404fae6f4dab3399e46a93336fdd06727c0ee4183fd312ae3c7103b50812c7eb740dc08628433957d65d84c08ca2239f9c2b7b4d2c6de1234451ce95f9124b473957e645a06029e7cadc89a7a49c2bf3295a1ce55c5903c16489a19cd7c50f4a5e173f28e9205eb0220808a62d88ee4c3f99400747291a1914be7192f7840b529672a2c830e52beb1c6808c349ce95c11f287c722a22279c8a4081152749fa2707207c5cb034f9c9b9b224ee850b47594fce952579492c449194f39c001d1643a91f61e19493a41b165d17eda2c6a9c94a0a54895a41b700610708f8790ddd819fd75951251daea3faa64a2d3f5b3ad517e23dd249628971934ef56b8c3a5ec74b27898556f1706210cd224bea4596348c2c5fc7ebc012cbd6b2c5209925cb6f128784a6922c3f46bfd1f10f8bd5914ef55d0ad1cf772842ce3d69c0a7a7b43afe52a25815f8a55715fe4ecbf8bb98dc5125175242b1e8904fb350abd3f2d4ead0d7b1d1e0bfde162b3ca4ffeb534bc2cb15d33887ebf38a9f2a39275fc746abfc70ad9f6f05e3271d4bc16f3a87a829356a6c322d58088adfc08f97c842a150755616a64a321f7c0a1da47af91088c0bbc13b5c4070a92eb8aa20ecc0d5dab06a56aa54c51c2e057322aad4449de813bde237968a41b1d025ca849de0375df527581c33d3a5544e4484caae8e1d3ab28e31e678797a65c96f225395f8e3164f90589cd39c9c6b72af4f7dccc3772722a2791c1094fc26e6e5bb15a3efbccad1149adb97e6442ec58b70cc60dc1dc11a6fdf51a51c5f6bc5277cd52448c90fc4d9f130f5635085693610b6f893e198992f493a9df013ef4c2c4ef85225aa44ab502b34cee198a9fe298bd7d4f8ee3db9145e379f32310e924e414e32bf6d243827ff379ece393002a892cc7754892a51258a853ef98dcccba75952b061e3dfb391ca363889e385f8079b4b711c9bcc0cfe7c29d58aa9920c76a2d4775429e63b27a2595841a15e8956a15650d85b56cac6b6424f18aa44698bd4f0c5ddcd4f02ca6eef76bd44ef5c16bf8f7af8dd74b96f9e9fdfb8c780e0d22e32f22e72c743fc69e7b148abb2af88ba15e27090e3b82caf59018853e3b17fb05f8d3fccf6b279bee8a3291b7f350fea2697f25d468d14b581e7cb3ae5b4ae36afdcf77a5c69b811e724d63f467c7bb95eb189780595c8056a0a0a15fbc76fe41ba9aa7c61d8dcda88935d14e5f6bb7ce74d3a8cd7c45dc887fc86a833fb9a7c92e5bb2571742924c01af9734321888c3c5b7086bbfe212597e4f918eeee1979fe855ff07c14be328b809eecaf399e7fa7a6e3deee29382729c53b124b0085b292614d62c86cfe6d7a4098f8cd44fd7ba8877a97e97f1805e764ccfe211129655854c5a8e9680a931c95125f4262e228fbd7c84a30a5256ac0796338214df1a92ce9e337f0db8bec1f675e8fae17e6015a1daba373188e93897cfa9810c7b6e8356e7d095675dd9be08e4a3d68c9af9b9369b3b44abb9f44eef007f946d574b7dcedc8b69aa8fb38a2e7c8ee31d96d64ff2e95e503026f9665d957e7b27f36fb67357cb30d6531ab8ac9afc7e6d96ab9219bae47d3c91c1e73c3eaac43d42941453c8a3a4814f294daa54c092a2282472ca2558510266187381c1525051149293ec5c809c4a1946b113a9f69ece26c46c02eabfaaf79dad8bc9caf2a4495e0769d44248dfc26f68b4ad0b3222ab17f7f8d1063ac8ef3e3e31322fb617c1a8ec70f1ae7fabaaced6d15732e0add7ebf68382aa594733ead54850be4497f87be9c12d22eaee737fe9688fbcb2da18450b6952f887995af88c19a2f89453b246e2e67be28362b4663be2aac5a58e5f9ba30cb0e897fd921f1ab4aa3cb11d85442970a9e7b9a9f2cfccf104cfca4e0fbe687048590ec42ce6ef9859452da0f40c14557a57c596429e551bc2a2888a07062490baea603117c81032cacd8028b242c8eae507af5b2811262201dbd90021b1b1a63e82058d8c1924b8ce79ee6c9d8e2b9a7f9af7e7610c4b484076464f9243332fc9754104ff85c587e484938c8577e48494c158ca752053fe47953f7e5de194375d4827bdd97aa89dcdd8f42d8a024acb8a8482206394822074749f4a04acc0fc98aa72b4b92beb83d8d738d8249050da8d04135e79c732ad99067d339e79c5309873ca794f2619c36cc390590e7df1df2fc940af29431622a3c5c5482c8f079d85cf92141a1745365242a466019fe5ba2549ce49a1f1295209a464df11821dfc4295460b044a5064750e981131725430bf722c1d30e18d1adf9214de18365620a227098e2091c4c01032953387971b5fc90a860c1052a68a042c509ae4882357d5f9094c04115a5f80286f3f04d70617e484743d603473ba8e0d4831b6e681264040f968ea01c600a30aea4e0ca114b749103bb38d2a1ef0bd291098eaefa9880a2892c949a60802109060f9042c50c4763dce0082670e0a203a28a1cec40075e3c5de9d901045148f07483335e20da020243f060062b320c2d41d1e29d81c30eb010c20c2eb8704116465e602286a5216a8042045652d8706025062cb8e003192078818d148e08011554c430222a820c2c6c95285c8c01c443173bb822052c611c3dfdd090040e33a8e2002564ec808485a8861c6060c5039e8832c50b34943c89c28676c10f2968a18a0e5cccd042510c553c20c7071864003202638c23947a86a801183624b1a40524b250f180be010c8096a001932fa84c71618008092daa0022861178414500305062062376b88209175250008a26559260018b085c88e248154d3885c0043dfc3001c5a3f2bc68420b25208010020c9f277a62b082051a8628e30a179e488238ef080830bea0e208a1195a90e3c4032af4149ecd08390aa9b73f450289655a7e7cb9555833e4b185900872f7767768e33720691a10e5cc9710a02f3f004e394802e09403818ea84119f9bd1a247c8cac1825e58774e5498ffc908c4890ef03d23836454e7c70820443b8004b0ecccf39886414821cffbdeb90041326403f42f0543c7c9c1b22fa4dc725e58e271e81566a9e8c70770433e20886844da6b4ba534f327d42a7ed464c4c3260c204e80788c70f8f1f1e3f3c5e889be4a184870f8f1730261810f65359a9ac545854552a2c00e05383464d969aa71a3466d044b49426c25a6bad0779907fc099f8076470f5ac15a5b4daba2479d63a8b9c4af0d12244a70f379b1621fe14023d62efa9ed31a0105268428c3d1976f0fde5ecc990c7b3ec91dd4f5c186dcceb5f0fcb90f0727d222f573c33c3adb56e1d7d8fb427cb8d07e6881b0826b9b8c4181797eae222615e8379f93e3a084cbd3418dcf56498d7b6aabd8d0f585f5a9d2a04c26c31ffac4e0cee7ab2cb0b71ed7af56daa8faa5517171fafd6ce00466cd448491729ebdb48c19f7228428142fea4b3c4f39f8dc4b089f536be5fd678f99df572e2783923f3dd4d65893bed5dbebb38b091192c836fa49e7c233085bb2745eaaa7067802caf975f314c8579f90f2b867dcbbfe00afbfa2edb0c0d57c33c32bbb4e0eaedc6e3d9e53b1b155b17bca361974afbaa06e6f1cec23c9eb5b7d8878f0e82e11ded5dbedfad092e3098c7f385bd86491f2d82a417aa2d11faafb2aea7f63122f6278e11ec82b514b63ad8f746ab75199973e9dbed104bc433f699ddb00bbd21e7c386bb3c99733ecd89654ea739c598134bdc4ccd447fd689bb66caacbf1e75e7f52cc37286bb23594dd6829fd764583643c3b5f0112c5bb88b28fb913eaa7ecc16deb1d95b0f7731cbfa282619b5a8e3ec2bbc532bcef0ec6dbee4b2acf36b95b3cecd022f59e29dfad66741c20484ea794a27a5d977f6f2330cd419ee066a2130db50ff7a80ba9968ff003135a540381748a36f7d55fdf517ee5e727dbb557fed6540cb6bef56a77ecb76abbb3dafe95e72b555e76aadf52bfc67626262026202b2b17e5970f54829149f4027dea4837ef0fc1851efabb78910c76b2c8c6d18962dabba2afa313fbc73459965c53bfecf8437adf78e77287d38f68d2fa5945252da9242ba5900cb12ef448c19313162028425456d36b00616a19b7c4929d59142e0dc6a05a294c98b517eec187150df451b8883c210c628f143a30bbffbdc8f85c037e3d6402d42fca802941175c52565951c427e4845f4c0a4c827c7e487540453be2026a58849708ae78a3b573cb1a75feb775d34a4b3ec507fdf5b7f5b1ef6d7cde5fb5bb6ce26d7eceb3f6d8bb9d3be56dd11acabfd77b3b1708735b6be2d919dfe982fde41e17e6b73611ecf8d793ca3649e15de41fd35e1520df378ce70d783c23bfd32435b44e6ae6adde4359f6e93b6eceec691e6f71a7748624f378c56a7e5fd2a5fd3eef5ecc5759bf55bca2c9256670a8177cbfef5d497ebfb17e7acdb9317c59edfd8fa2357dc1dc19a081d49448bb0595fcdfb10c7e5a1cbcfcdfed5b2b9f0d0527f6e75d639677d140a85aaa8576b4b7d5b37978d6ef4515bf5f7610d74ce6beaa59bf53ad7b9dea273d877fd8aa96c22a610481fccbca5090c33c298e4f679f19bfbef53cf09ec6cab5bfdbbbdbcb575335c57d6ed0d3d2a71dd7b063925e184253f39bdd44cc17525b1248b8da5da6feae7e988a78844bf77ff3c1df1e4a48905de47dcee520a85055935aa46edeedeeedeeeddf069835289a8d5a81ad521aad195d52552a420dd0e2e2d9171d688d18a542b56a34faa22ddaed65ac3edc7b2dcbaa42e79e9a11271eb10d76bb8424495b630aa4fd84008892061712e7f7619e11631e489bbdb127717e21cf7a50bfed3e9f7228fa6f43d8710767e5d8ffcc0d57977e76b5ab9ef1d0124c0ed00100b71ae7bbc7dc9955133eeebf710f6bfad3e2ce3f8e5c0839e96ac2875510bb5cf125c721ff7a9dbcfa95cefe1c0afeff9c3e8feb323ae39ad246fbcefa4ecb05ce1a3133a151fe1bff75ee21d1b4af7860b5f695ab9f01140c201a49027dec3b05638311627ae0e43bcbace4f425821aece59b95f6da0f34d4a677d32c880920c28e997e7be80db587c47d1028ddc477e45865664f87528c3c7b24823c3176881051700a7baa4ebad4119554beeae07be80dd63287b85fd13818e8831c61869ac28893c5c3fd9477e4866fce41710bd4028778ff40227389de36f63756413d75f5671ad7f1602d6cba45b42bdc8703a8a93522aa584f1a9452bbede0b8531437cdf867a2d01f47a538fce27c6a4d3bd494ec0b94ff5eddaaf67ac35957a48b2e3f3d92d3c5cdddd31fe8094526ce3dc9b18c634e0e34163835b04a73e93c6edb760451be2aa88db7f9d7b463ec7f7288509c8917768a513421823445111679cb44e692f0c8b91ab53c6ae48688d72cea452d825e3acd8554429a558d297b4de28a5c4ae38b1abc8cb90674c19713b998fea7aa68c91e276c2850953524049fcca513b403969ada2cd0f1e28ccd6d44753c8333e8ec6b72c5a6b7f356752290bb32e14c4efe825593fc2dbd0703c46b06927f8ffe58bbd17abe14efb9dcfd8d7dd0ddbdac9c49e83db6f0371da894d9648b188e9c84765d86d27eda49fb49307b4931751eff590ed637d485d9b322e981cac0b34402159f1430e42df15597ebd5964f9840b9464f91e8e8c6189d0c3dbc3660492129597e14951451619422ab0c8f0fd3d1cda5204d7a3f9976357efcbcca79a0553e6922b44ad6a139711f7a54ea94cd425ea12af4c2cc1c4edb0252a77293b2cbe0a1c4965f80e6b0d1851ae5567ebcd84f745aefef20ba2deaa446e5f2ffbabd660a50c16d820074912ec47d270c3655df15cca9f273ebf5229f5a1e42a9be4fad5867b05590f371b5b8dadad4e9d39303032284c24ed012d7c8821074912cc2807e693cc1ba6c889527d4fce0591bc24305a0025074992ab0639309f246291464e94caa5bc422e759432bc7c2797a486b8d5915c28c85b2cc46a0dd7460c667b39d0ea9c302d135c19c6c38941728c5cbf934fafa93621f1704e904de44a25577945ae2f4b2087c85546c955ea70c6bb72fd98e501715943ae52865c97e4faf494e52e063dc1f893eb771286faf3e166f3b3274025b8d93c376805d6d4f8549560150fc70656dca5c2b85ed4dad42cb84253a0a8a9ff6c03e6c7a78a8cdb795393dfd8ab5ad4c20bf3dc712d809afc268e65bc9afab57ec43fb9e290eb771f712946120505faf32746927ad28110577228aeb0a67ecfbc705f8e8c618950cecb7101a691464e94fa9e5e8ffa561ad7e53b2fd230ee5ac39db648cb77f15d8b4f7e6387602e1b8f4d85125af01379996be17a1187492172e148d45684dac9b9fad18973f52d1c839cabf55d897b82b6ad10f305fcc67efd13ead75bffb21b9661b697e34df2abac4fb962dc8f76d9de31fb35319b11389bfc38e993eb8bb971f7305b142b7a53fd54eade5a2dac01e7ea5fc0b9aa88db3da79a539b2c0abfd7233ebd9afa586f7163d014b97e6cf2a483f8d78736063571aea29ee4fa3504b77e7c82b5befade04eb63cad537f4af780723b2be4389eec676e6c77f416efcf931f2c83cb7296ee748c492e2b60ec59d91adffa2f9d9aa80ce15fb6f33f7d7ca231f0f95d70b9bbc18e07f3c1eef537d5df887d7f403968c404286f5d5c8afb6faa90ad01bdf11bcc2a16b71c96fd8fda2689a4e5124b9c4a328cc40054981433f58b13b43959e45c131076b60bbe4ce2ae4c8cd81a60c3b0d10e52354e96acafdd5c70786cc03bff3b326a432c4fdba1b763feaf484523fa8c207ce4d1ae74e4023e725c8c74227f79d9b58667e758ec6392d288a1f986baeaf87fc97648592a634a0fa8a3b50bfc242fc07076b2295a17446a4a01ca3f489474e39c667e52d2971a512102121051173e8944fc39de037dd0f03f84d90ee4d01237751ee66a4ffd3703ffc6314b2e272f9b17e0e871e83d75e8f6e0ccbf5be51efbd87eae053d3fdd9415e7bdfbce6e437eafb21d3f777d7686994b57d4cea6ab5c24cfdc18ddcdb6bba1d6cca4b664718723fb44118387840ec19b91f92913b8ddc65e4863cc80dc7c80d9d5028140af5d539d4a3fed9bba136b8b461159d6eb5e41b5989e2f0f5557a2495e9d7bfe873e2ca7f353f5a245a209527de891f2d90ca3b1086ebd1c49853979c00fb755e844abd82f7bc6d17f38517459533be787a010a500e33408164fa418a5c7297b0c850830d6080860d32188109821081114eb8e082d1941b7220930e6d034a3f11c3fc805ff53e7cc1cb7ad57b8f475666c8286594d4c8b9478b9c7bf18bebd174d0c9aa5ab2dfc8eefdfc9f3f8fd9628cd542e8fe1a00d961d5b1ab782df83f9af77a2eb8c1a625dfdd01a026775755c8042184b58ae9b6d7e3c125e7de772a8af8bec84114688c91e5033ae0e18beb47861ebc3e9211415cecc88e44aa4695273b98c11843463f740cae262dc821678f564cf9c905c80f698a508e3cd06f214a3f9535b8f0e9cb4dc4277ec94dc4bf9b0647d089c9921388053ac1a72021283dc02c3e4d454b4c622c59120b7482598e94886ebdcc5575d0c9ba2eebe39012bfa901713c4a89468ef374b01499045d95f5e4375d4ccafed08bde21fb2f91255f6f3dc5a8d591af6a29e77ec7f2bf34f9fe32951539990a0ff11ca2dba8f4ad7565450a15d108000001008314000030100a07c5a2d16038ccc25cdb0714800c889a42765c1b88a32488419442c618430c2084003000046084a6a601010dd3415c0b5293676f7ac941718748bd22c768ee00b3c4158cce923d47dd6b34aff8887c1063ad253eac56a3b960549646f1e2575a67ca80c0b0fbdb8617fc271f3874f54cbc606f256f13a8ec6c7c7ed651f3662468f3187d435f68673ff60845244ada426dc97f0d661afead828aaeedb3f0b8ed731a00e0e82463eab209dbfb8a4b99f1a0123b7283d1a65baa73f4aeebebe73551acb411532fa1bb4ef26a9492c737a0e6d38f78ef0370ec4f0430388897ca83514e54c5dd1b396cdc17cb899eb706ae5c9707b1b5eda39a03e56c4e2e27dd4146602a1c27b766ed7e5e8d6c832cf2766e6d42e61c088309a28eb88e67d6c7bedebd40d23d07e8f2dcb3d587e59d78c05cad1e3772dbea2ee48f316342e503d6d607fcc64cb766282d97a31f7ac1fa79e0cfa30200a02d4fb535ea3aefaab01bc375ecb2e7ca0e31867197b53604227cd826f6752ce709a615b7e163da74c81abe01c0e4e1c72aedcfa8777e6c61fbb65e10a4e64d132f103f35f6f88b1376254ea551f64d8c6808d84c9eb6d10b1780d19073348d9218ba26cce286582655439512292f18c167ebf327202d334afd14c124b3277b13f85f929601b81dcd5aa226e259b8594498397275f534fc4ae0011e85df3d9a60db0d2f8987c4efa3324e8f56ef7508ad7276d9d7dfbbe6178ba1ccf76613d38e2dd06de8bcc1eb383dc7b33b09c8d8e15f5b6cbc42efdea3730b820f07ce32703bb6e6ac9b1627147e41d5687e0b0bc29a231fb0e184e635c9f7745ab78141c4e5a1e1f6351dafb94dbb5be798b111ef13a8564b43e93060c8cf94b5863b6612cb56c2b12dba668e4ae17246df270e509df238f96b35a2186e0079ffd07c6da6b563b1ee7b64401b2601f80c07d863dcc3eee8e399c1e5ef93890ad7101adae81f452ac53f2eef8443c22b7bcb83a69931db558fd490862b69b2d3908cdeb61918282cf57d1ab4848d5c2cc224d866d7da7e374bad69499707442528f177509741bdba06789b6860a6ee4a78e9d56c8032b3e7d6be802096b78c1c227b3383956b0b9b2aa778b6b25c5d1b947e2717427dabc2d972b06a133d78fa9f4ab0c489a85fdfb3b2c11653205a297428176fc6e30c19d264f232803b731458a878d876333938b39b569c190644d83696439620bd20d70494342099122b2dffda303b46b1b0122a0a50531b96648ddd03778e841b413df2d88af0ee6f7f02a2c168cb1fe7e6f278ca91a8f6fa504cbba34cb6184ca02d1aafeb91e252db48df02ed90ccff0ac9c0bba78c07ef1b633ea338c880386a02642722190adebc174aae46c45810cc313ce791b24e0411988eaaa5283b0bf2db295746b13964c1f1a496764cd517032cb85ecf4a178f384b2580e77981993903d1688e69dd880518ee416479600b1f432512187b0fb087dc1d79e80f4518918d4f1be051388be59ef2857bcf57f01318524961a75bd53711bbc8d4483a00a9759a0cefd012a3bf9d4f6154daa4c176f4326d8b01634099a0807aaec35fa0bf5e2412bf39956384c74b4025091c11147ad48f7af17bda74d326f6eb30a4356ee9333c20580c701c9e870bd44e18887722562714e8129bf32674ca16c5468daafc7a94fece5a5631bee05161e1e1431545f683fa2d83001f87a1b2a6363676ad5f5ef0f44a506d514f81a554193f83521c2d5bfd99afd7c21091589a25b3fc0b76ddc6a72a905533dff76622a54bf63bae7bd8d13645fe1da4fc5f73e5d9535fb8a2f229692eadc38fe512705636b6569ea51a917589b37261ea32336cbcf2f0480d7a184221a8761d19921f7083f952c7919cb7253387a613f2d579c2a93f69a716bd6e9c9e8a4ca68f81539e93a9a6ee4376695945fc210560f86e0def140e47c4be675c862a92e77896f5688ffc08f301fda784925e4649665f691f164ed2a42aa1d65868cf88aeecc7faad30a978a844ec0fd1ff59900eeb385d6b122153bd7e942a6efa7347b73e601af592e80e190b2188656e88e933ea6338a565e20d285c11bde8ba837e153abb20ea492c955dcdf685ba354001d37c1102ea9092ada047a3e4e709ea5689a8b167850ce48542dd935362e6a58669bb19f8218238f712d2d21ef4c183966e6414fdcb36929a5d86b70f71a32afb04e126a7c546825fda78f348d13104996d00a7ca9c01e00062e0e461d5eae6dd5099d65ab0dcdc04f767656c33a20a1be5b64b76cd48a9f13e24e84344a068e6baa67374bdc830370091eb319013c5e04a48621046d039914e354c009e69b1e285a19e86e654279c591d488a08543189f1f1995a914440632835ce4b63cebbf157bff8ee456ff4765b872ee0674b2fcad9c3f1d3e684c8bb45f8135708e64f4332cbe08c4073804128c14e6b5e5e46849534aa4570ca6451e5c2dae0805a9338ca70c0f9e3dcae700b8bc05ef29d963a946b83382725d2ee61944bb44d7ff832049bc8a4266ceef082f783b904bcecd68b5e14ca44dbed1e8cbad909c2dcbc0a00217d0220712f020eaa228033de631d9a0f9f4fdfbe7fdfca560908da23e35dec6f44136ebae9e332ced81fd4968b55f0a93f4db723c697557a1aa3c978fdc889ebc9e26260048d0f62c7e0678451157ce4d7febdadc7b3b6f67c2f5e02c70bc9c432021bbb003736c4059b77215d80b7a86e075de85ebf211fe27eb3690ea2b27347612b6de56ba3e36963c087aead1cb6c91fed3ec0bfe40b2aca2b61f6aa46d4bbe1319016a320a7dc9590f0d848532f157d1175d3feee5ebca3af7bd30fc388f4c323a200e95c6425e9ca5e77f94a08a2751bdf2020a55bed19c8df18df9ae8f424d081713f4152b1d1b3ca029e18f84556dda74e0db14cef2db5ced1886e5d3d02de0174acbb5de1c3c3e02f5244a0ff0a6eaf25a08e1b0f2560d0937182d64e4a1035c8030b9918a12b56c247ca74057f15fc769683d002c64aa3f2ad47bfa8e06763fac768d335b771bbfb66386286b7ea25b2f772621a8278e54f8c184eff77d8dffed80c00c647c99e62580ebe53c5567077e27bbe74ca53165281f04b410d0b029b270d35b2c2ad776d78fa322d5292b14be9a05e0abb9414d22d29f87ab9628509cad4655bb07c600baa1b27d1bae6699774215d7c9281a3f9d1c9608cec3a92c355785e17a78cca377e583381de193eb5345330824a0594f6ab97cfe23dcbfc3ed068603e4f5502bb3b2371a90e436d0b69578be65ad3401b17534fd0013f8c12b76ca771df91948b3076bb13a189d04fbd1033340f9e52cfc81b07a6c46c0a2c2a23f27a3ab87395a359e777794a34e15790779c4a533915e5463570428a41a04d61ded88117707515af546d648508cfa9c0a76a3ae7e90812bc6b1286d6ff4e6a2fed613cbbf8e99d07a4b2c0ae056ee8eb7e4674722a58f6abc2e3d6300ffbaa503892f613cefd8f9ee3806e57c5e7800b5ef1dc0f02f1939879cf7362597edff00de7789fb3100861bc663516ac8b5607cb3eb09bbc232d0499f16acc919a21ada634687cec0c85dacacac00f520c8ce466636261d3014a426fe6e7eca78fe6a6553f9d29883565d4a3e286a6625e7a9ef4b27686b4cc453a27be778ac34d6f4fa5453899c8132beb3dab0c22f7d0e6f12ff85ddffc701c6e6839cf48317a33dc7967931f1838487a243c3ae2e1868d2bd8c1507a0326e3aa96563fb100544b513d6afd4087a3de755c480a0771afdf98aa5ff637596427a0545644f791f9e948ff15e936de996cc657fe250938ddb9365374f6bb945cd49799aa85fd8256a2b483fccfe44e164d2c569e0692a13b46dd43a9be5b97f266ac59305725a9e225bbb92f1cef16279b8b97c88afe875bdaab5618e1f9cd2a42b0435b790ad87a031112fed92373fe377b1dd1a8e37a2444e52c3c3e5ae3c0055b855ba728743f7356f984c89474da4fba746a21a4f9f509bccb18858da72735d1ba3d99b8078e3998424841d3622b5c33f52fb26773a7bbefc7f42976ef5c0e09d90a5c96f599076ecd0f3bdca3b1d20b27f0cfebdb7b062582fd18756864585084f3478593cb765ac3fe5d35192b49a8ae734a56e5f3733c8c079038a4f8a0d85a6f2c090024b4feaa52758cd6a140c00430c882349c6c10201e0a05b72cf1e31b5240de3b296aa3d08db336eaadd820d8eb95d814b48b10d900b57174a144b49498ab100f3363a679a6dbdac7fe2e99254afaecdc0d12976ead1dfe60cd58fc06286e19b7502a38ac7a2e2652e753f62481caa0628b1b880a3e2b9bb6599a76358c52081e8a7ef31652bb2019c8eb0e31d452f46aa66cf44b287c9f1652c64a8afd4ec32fa2c6ca0a883ca2a28b97604b06245e051b69a5a093a4cfe5cf2ae4ab92a008e6944d30ba16a7ebb396f5bed3d0f82334705e09d7d40c853bc787ecfca89c85764c878386f38bc37d1e5a350d95b6b88f7137f230bcbe3b45472e398d0ca4f18b0bf851331f7741c2c66e8aaf342cc1d93134c23d84e3d04f62e9adecdcfd2466ebefbf3f5c45e4947bc0904875f0860bc26130238d6ac1a9811bc323ae60fd3b89dbfc27b20a2e1bc1a353cdac535d356f4c35fafc5b9c6d7eb09d143db6b8c77322e42f8d8adf20695a92640f1a2ff3c6e2efccafa55d26cd413bf2f8373aaa071570be8a35fbc94de396f7eca746b714e7ebc2df5881207dda3b5fe63a66ff6668b148a5fda0d04e7b75e1de48713f872e07084ebe81e8d98a77d06dba76142a65ede7ac07bd264c67654fd100133a36882c8c803972632b761842b7add9369e50166969cd058bab58f075cc96fcb255330bd57c0e52f418757505b97965a4684a10c400cf9319aa9f7248b8f584d22c7c443708f1925ee01b244a283d78f78a530a4ae099c48fae7061bde12ee9d12a485d84e5dc73c956c9ccfa9411aaacc09ecfa4d8bf121b8eebcc31686955e50bf0b8b77e0178cf922bc16cb4a0730ee9533e89d6c61ccd9f6212225f65ddee8a2447a18b25f5be1729012719109391ede0583e4f957b70b108f2bb36342a81868db27091726bc959896e10515788809ce7905cccad17d310702912f429033ff0bd22b4257d02cc67df8343743244f58473542126a3645b4651cb6454df0076b9730d82279cac18cec35c5f06b25e3e189f68b85eafa74594937a4ed5955e1ad5e8649f7084e27fddb692a6518c9862264c6ed770a9e9883d328f8de4d7e497302ae08dd2e6b80f2a8ac7f6c42cf689a2ff8c4c072b1828357d6787923d754be43ea70d0f89473c13945a9d6b873b99612807e42278901182a4c35cbb584ec388537e81cb4f0b27178e1cf338cdc79ec966042362a64aa241bb6811b483777280e8f892bcc7b3fee53116bf0cb1cb595e1f43c08c8fb9ac1b6c2b98de6cce02a539184c3c08f20a4791024153783735350b2fe988179dc32ea819f33c60b380c4481a165d5c99adfe800b5bc58bfae9a877de25637ab618928a84a2bd726896b3b819b8c9bf6330ba47cba6ba7357511580db802862b758a281a0f09edd432af63e7a4e7c140db957bf870e265b45ce6305ccba873d9d01759082bc69ed2b50ef2eb6ecc743b8d1eb98d46a9f39ecfc053ffe234606814aaa49f01f372c04242894e0045a027ce99e280a22704035cef42373050d6bf8072cb36b50be1e3d7293a2193f8837f35612e81cff570ca730086c95fce571e24d4d2b45d96acf6dd503b05fc6892256ce1cd9bfad4e55929e0cc7859ef0c3186336998011151724d58b876c70234e0564f591d9caef1aa9abd74c36a27a15bd5e43138047c74712735f521b05ec8d5cd97cd3785099b0ab939c3c9dbafb5977eff0f2f32e21c80589e4d96424532546c90f7b682c9aa8abd8a441ceb1668655caaf90e3f642482d1cefa029b5846e31b650121a171b0fa406e9d5f314e8019cda428809342fbea647e870df80c74cb249a3b12ba1819093a9b6bbb1f9402eb9afbf958d5c269d241b717027a1cdfdd6f5c6b82e487a7a3a362de290339a4b97a4eaecf74e74687aea51e0431fc179bc9b2d26877c2050a554555f067e653a958e90a5b709627c04938a14f3f11f581cb134e31febd0bac99f2bdf9e8694e59c8ec0a76ede05c8a1ec446fe0d56ae103689b5b39ecf06859fd7d198e1e43de68f60111bb905943c874722927244b97782df9d374f012b684287ca3c664cf212328a252ad94713203498a37f7238f01c114322f2cc0194f18b43ef6c7aa82bd7c16e21fdc6807c76804d8e4867f608d3ce4a50a93864e9ae2f9d11c20d3f5b69f27b253e027439fe0d0bbd98abfb6bf443a3fa13c5e5ab12137f521c94e11790fd850a220a5c5cd52f2e2ee011fc21203925c8706e0af65e8080d72c4729746b29abb989ce6864efbe1734498a29a53c4a558794a52ae25f0aacc24f6ebf27b5382200874b5f7af48112d748d007f8e2d30512edd5718b21ec281cd177ecc34fe808b6912dd83d83751fb254e995519b2b6fbe912451ac523d5c188b73214d4071bb0c1a8c4b5e29e10323ef8331c42ffd888689cee7346364892737572f8a1d246434fb51f376341885731def3137087c186ecc166084b078faf593772b34cf76c8e33b5eec937e9b102739f9ce27f1f743a93a6544230484a45bab7a8309aa81b5a150f3d12adc2cdd38ae0e74460e37e9bcced30ee877a6454e7fa4ee23d5e269ef57bd315b4f56751f10f921fb734a148a7cf00aea7bf0e3d2268a8431c138e8c799c0a10e2b89b655ba8950bdf46e8697aab15c56437da4f132e06d8fea136c707ab29b20b2050b1a4c2b64b95f7c63d7210d0c527912494cde1fa81e3dbab98418b9c2e14d363e0b36e98a98a55ab2c2a70340287f0bb74bb6d4d3f4fb31f997fb3e40e3c7aa676ace01125486e59698dbed2c86c674e5725f8e60cfaa14225cd5ccca44770c11540febab173e1c915aafe6ea479388590f3b9076a4d31b4770fa56c48c17753315c3f8d2de811125e59fd065683153cdbb33a6f55c75cf827266b4bfbd0bfc33f41892a1a4e38a9d16de22c5502382718d98fecbc05e432967e79b700d56a050b302de40c377e3bd3683b9c8fc69d750b2b8dfd34f4aacf0c3d4803800b2d02dc8228141b20198b8c009c4c18cbb3ff1d89747796a96ee6b40a5e0963dea017f9c55b1c9f868499466f305e8228592519bd83d77ba32601bf09f4e8fae2a1162a86388b6bfd3ad3a963bfc162082bfb2ebac3bf955b370462436a69ec6e69b8e1c016e33c52cd3c92fa86e9bc6dedbc9b206d8bdca08d88037b07f095a4d1d732540cf278347124a230ab4a50051fe93f14e87fcf1c8058c9d7003431838696628488079406a06510856c69600516428f8fb44b8a80d8b0e86acfdc10af303bcd91ac73b9c07faf3097916224e37ca64962d9c0c08da655b447743a15ed90fbda8296baea7f5ffadbf270c9b1e32276776a1da318c143cb606244b4dca190a6f2f014231c2295b67ddbc92f6057de520be0749f9b4f901070d0ed51bdca799beb0e9555e86bcd7b43ad8c154a486d5249ce7f8480ca695c16f5c0a026d8ebd5388d78b4be6fa4057a0f7abadf3806b8cdc12c549fd436d56da488614460a889cefb0d92761a72ac9d0b166312a8b0768d3cae1de68e4559bf2d03575346d9458f026ccec97a31187cbdf7cca852f9b9141327199559ff5dff1ceea43b027b85c8de3b9baf062bdd7cb9484e5399187acd4f80a7fe32ab622c2424969bf34b3318940084b0abe051f630e7e522dcd41181c07dd71d1d232ce41c69a65544471168e46e7478f95e1b5234f2d1f9411eabe3808baa065a8a978b78cdb96ae6437d1a49499ca7c97d1d7277d434b786dde88dae74d7b6856c4bd121200f584394c2ae3429781062a8d2bc61fc47699d7dbb34212a1d30b8237fb2f6df357c8435f463d254e287cc98245793f15c36f780093dab4b97cae0c48fbc3a434f007d5f15310518aeb1a40d3a65335c0019be608fd3543174d3a34323c8195040b9f38bb44e2ffd9a5a27cf0e471d5fa69d80475f60fab6b88d8434086aa545ba66fb27d7aa97f2d7ccb5400d368d5563b47e44b917bb147d15152304b5d246f5a7d241628816c84be13b695b0f833cec82c2b067edca672129b8422ab4ac6484f072bd183ea5747492ca13128c979fce6335239de87eb2617514a0ece298aed94562dcf682a2b82762a17581e0a6890ec28e128de89882df2aa4d256fbbe5086286d33726f5f2ef5ad4b4c2e612fdcbdc94bfd6044fcb51f01647ef3da9554d1c01d4acca3345fb8a5c86c4606411c0c5a98f90e53fc653f404a3daab7629108bdff06aa3d4b88514207c2c23d02e390d0d7ec3d28c18583054f1c3445c7d37924de5b306048bbc348fbf232229ef31cfe824c38812a6295dc758b7eaf446c3022b40359d5254ed180b634a7369cfcd11477547694be4a7e080f94bfb6beabe85686ba877fa75ae048d38fcebbece1a80cce0d0a4b0c3215c8915e3496b3a24949abbda3bdde5ddb6d7848dd65a756deed9d60f106dfe545bf381d325676ffc2480cd2db373871d549d8fe51edc743e0750c1a95db605939657fb1ce69d04c7d91bb1db12ff804b07f4cae4669cad22c14acbfbaef921b9769534422e354eb471cd74f113e20a2848b10eb0db50855cd10d2c8a6d555ee3ab0b8ba7cfe5d17a1ca505094eed3d56d6876d5f108b45a36f57e7414b548b3345ad9d0c7c1c97a2a9f81e0982266b7e79ce3d33bbf274962d08181b0edba796a3fce3b14013b296ab1677c61775d48f8292180f431653b62790bffcdc0977fd54056122b2d10733856eec127100c3b2cfaf5e06f37330720e1b234b43c84f920c3fcdd38431853316ec0041d043790846381531cfd06b2cc01bafbf2764ce4a5d2970f1bcc0eeb91a4217735ad922035c63917066e74cd2299fbebead360893732a1a2e203901f17a29addfb63294dd67d885ba3e8d7d547c45ba4ac42c89ad19e6a88be90361d97a98e797ff44a2c43625c5a7aa1fa08a272c784689d29b9dfcd5e63bee78e0f693d96d142d386b8d5173d76402864833a65a0019e327b5ff98787e0bbde638add3277c38a4517d790c95cc61ff8a573ec6705b93d2bef4c32d404c983a515bd1531e3ca0f52793884dd265896e36e57741f6e231099b7e543c5777df1260be15f0c009ae80aeb120ab0ce1f8404e0b372d3a05b255e9c9231b21ef40a133ac9e53cefe5a035f6f8d942b91cc31b1397af7fb16abd45ad36391b568c39c593f0ee74ae049d4ba685cc604aea9033b1282684ff0fd436024238264898221348a114e465fa2c82c579bc0a191ffd8011ddd3ea07e2fca18349d3cd1ec9584afe54617c1cdc8fdd367cab64a382e61c0c89296cb4015e6f62021bde83487f94a1ffd9e2eec4f1893020ee0db46da1e6600d75407ba51a417a01eab11b465ba94e702b039a4c3e7289f52631f86da84f752600469b257ee2b168b65b5c4c998f2898ec873a6d5d155bce613b8bbc12bc29cced3946ad2f2801167de9c92720ea75cd43fd454059ef7259bda4e3e65b0f920532695cd67a647e6788e275dcb26040ed420018da7083d2e0f5285ad4c421977978bf94b550fae2dbb65a605ea567c9cd5a267e8726010520b9e9e167a0f564b71a01647b99a3698df40886a278dd7f2513aa65b912968ec7f8202d04fbce3e050ec40ca55738128717ee76ca0a1dbef8b9374ab3cc526f4226e2cb92a22cba85692e48e5ae96c060529dea21682458a0aaa9006e3d60b5c85915192dedae85c141e54c11c35f493a3fdeb1806ad93b3523f5548bfb590553737b851bfa6511fd774ed2ab03814db00abb952002d04c120e5b3e289c2cd61fb0369e828479c5077d8ef65d663976cbc0e1cba926da2d68af26990516a62e512ac601af72eb24d69bdc05edba3d1b3222d44f5a1184155592c5798c6437e047fe08a6b5d307d78e40877d2d48ea47e93002cd04b4d380293e0cefecc809820f9308dcd65e297a51cd00c1548d64af010ba445fd4667b4367b1d1d6e646824491aa6411ea8835592787a079da042fdcf4e24ca06e00fa38f65ac4c9cc62209b4c88d21dc719542ac07b9adb7e85c0e21da80b271bb9c1d73484cc8e2c88025cf90d51ecfb7caaf5a082b417aea41d090859eeea01198364046fda4a069af143ae7ea4851ba702ea3729d3e64c009007e33261640270b41ddda3101908442049e1e8f1d1122980e6bfa641d804d858d87ff65bb43211206768e0d8b2afbd3ba0d066825954bbf2e1e3ab43743c28349f13dc38f59cc13f947fdaa57a3a48320d647f42c40b41a0a05b5dcd8ca5a9f6a2857864f81f78a174d5e08622de9c5c07c6712ad9b9fc1d4e1428e515f653a3c1abac9622992fdb72fed9e5a9aee17be401e8aa8f1a5405fedf9e2cd5f15f733d159395ce413f9f515ebc91e702f1120c16fc4d96926809246a5266002e34db38a14e3b50dc4ce527a049382f2a506441daf01f3acb60727d7b95b7ec8feed460de240d1a0dab2167622297275264ec911dddd01d22ae985c88501ceb2b5725056c4339084fd8a501666e478537a6fbc5e1e94461292e40a569b306e8d8b3635b54aeac73ad7451100cabc3cfee34452728545403cc86184ec5d1ed03a7bb1c0124c569dd87261f0a1db4e577ba0c5c9fe8cb50c1660c24ed5dbd8ba36be026be0bf2bc7138558afc052421a6a860ef5eec773617490e089fecd207b0e59eacefa1a1579b1c3fe0e5bfc7a321d2931c892d2b07ccc79e43c2c2d77139793237b2d51f19407c144dffef0702067e09f4a3a7283a63569e9b6a2a973885e11f7fa39dc58eb3ab0b9071395a4a280bc9b752811328590c948964874f8aead89ef2da4a60e71d4479a5c711e3b00dcc8239f02a7ae262be94e614470f40469585ac569e867cbc0c7290a6135430689e882d445b81bc892feb80196321caead90842753fb834c3718f43d0a1e7f9f4f67778ca607f47cc9e17875ceb07f9b60f0c6ec1e314e2d5a5059ab6d769c37beafa535dc1c84e077482b946ca94486987e4bd725cbfb6e000c22dcf083a5d5bc296e18d387236faba53c5245c2855b4a8f085623de10e84f2c0044b68ca5e0394b901c1b76802d8b53fc45439f3c4c98cde641c3146f09bc72792ae287053d43b14991a053f077d83c66554fce25decd0ad89222366dda253ead9e43d7948120a520cbfc474df043a8b9a0aeb5b30826c5d738338bff2d260110542010928c4dd452cc8cdcf38a4f056608d5c39e5fb3aa951168e51493702a61b5684d910189fd8be87a80ac199a431c090f09da2ada075c2300afe16c2329b3899b6800087b8a6081bc56f7a05c2be04e10dcbd54aaae71393bcb99003e5f269c141a379d24a97e7b114041270d836d7002525b3809eb3cc758f901e6a2773ca9e33f057c9ea825dd5cfa0245a0a904026e255965bde4679f8a143e1a9c90055b2ccc3e645d572bd0ba175694bbe1ebdc002cc6b1caededa69b23d7bf7243e66112bc34437cfd26f4f141137997e818514d353da6a1cb254144b686d76de9bcb8c3d55262ec2b840d5090ae5e87a79b37a1f343db772420bf7a0466f51381239a8773cae2bb82ad5825776c6a2d31845cf1c56b2236011b5b9aa3043c3b697c935df495792c9136d44e1a9b1167bbe806cbb194f25cac24a7883b1a5994126e87f39b78d07324b85ea512e01c41d2b728124d63a4a23e5548f4ad33b27fe6d8345df10caeffcc27964a004da02d57579acf80937bcfc92badbcccc1fedf3e28286783c0d803fc005806ba0c80fe704a0d00112558a8ba0ff6e04a54b9d9ffd9866ff6c14df6bbd5b1de079acaaae15b40fcfd127fc39406b4d6e5af1c80f48bbe2275ff7a197788847581638b300ce796157803235c6efe521e5d2e17cab15f3eaf2d7b7c7ee4e55e3e6e1be67fd098d3fb5cd198f8a1b8a358155644cdf48fd70aa8f7d0a68513465c74bf3ac0b1ceb623a7f5aedc4c825b9f2b4da3dd2a8a65b201e27d2f21164f8b602eaac537ed3c509c9c12726f751817c5e0a9ac43e28380a746222087d6b0b320af83939b738dba0838cd08843ca7a0074f990714eae4b789fa14191c80950c1124453655be8edd201266ac02005f831bcb0f3d9e46fc531a5a519a56ac3933080ff3876aedec5f2d3069dd15f10f45ff74aa09c1d5428b659b332240070ede5b3a4788200f580c5c2d1cfa9b65e3891743b1f0edba9efb95462803c3be406d13a2bf615981c1c702811e806bdbb13f657c94ef7d2fc28fd6d3fa8034a7b24aea0d470a94dfae1d29a8c7b89493360fff4cba488699e8cccbfce433845657860ea8670c18591eb8aec78c07f1ffda5b99d7818197391aec1366f16598a752cc88ef7f3442de500c78a7c00d30ef813cde01be150dd45373205cc99d50157e152038847e1b09ecb59a08506a44a072d504e194e6c491a6e426f070bca06a3656474da08cff77ebd33e661f835734fee60d4316cd21be8cf8d255e0ec52927ad602cea306ba93d548921138fda3e4f0112832066539ba22a848523f82562ba6ed1e4463a9b3399864b3cfe7ada753f2b928b305a791f1c0d5ec233168dabd0f08ec9652e4d3682beb2748d09f67fd0397228dece2be766600b894cb90e642097a15b1952d70db5d89823c91a0ed70bfbe0a0baabe8613a51e901ca00dcf50804b41bbe8b9a8c2bbdbff60514e0292acce04e8b981f801f0b28ac5d69f9f2d017614138ef6bddcaf4760bcaa8c6860dba60af6487b76e0fef5fa47d6e641250a7a3261792b93105c5e269c75d6c00dc26cc1bf01af84ee481e379128815e25e8604575008ee52330fdd0e5039f47a6021ff7de63be6bbf72919c08a59bc627d15ac20737d284d0d9bba8a2272584e41ee799f7b1712faf9c7565aaee667a71f69c35202768eb9048e6b8b60fcb7239185b106f2272b65190578c9b3d70b0eb63aaaf2e70aa074738e86aac3ff23ef0a61f59b122fb9077b1c3336f863fd6882419107628b19794298fc4395dd276d0f9eb868086f37fe7e2b1530a63b9362166fb0f869302722056d0e279fb23f520ce74bef39751317ce04a2faf44f20f0281d3fb0c69b18151da6d611c4107deb97d16c6bd9e09883e144d896157bb93d26455683513324c481f02614782cba76462120a9846f1a712477d68e423a897f4df2b8845e7ac1a49d3fb7d2862fc5fadb4f2ce8251100720a835c489278ded60e5fe89b515305a2a9d3a28f392257505a6a84447f8c320208c294d8707e1dd68ddd2543df9e99526be57406b23752a6bf5a736ac0a86b7cc2764473b0ef0d1225af15b0b61244a13df2bc0368440eaebf4a3020405fb4aff9e88f556211b9283601ca520a65100b4ff9f0a3de5917bb060a947e87b829686e5405308a0f00b158b4e528d77a43ec584814b95ada38b078f14b41ec418bd2abc171ec948e9f27d879cf9c33e8a3d2b052f05215b960b24cf2773c8e6f369cdd0586877f71d1b3f99c3393f4b10f7fed1ef0a02ec1191727c24b15dec20fffd4f5befba19e48362b55a99df1f6925c9c2fbb7ff6aa5739f4345610a962a8469b45ee8e5f7edba22b748a761dfbf07af95f3bc3c8fde0c6e5aec6cfef05f712f767066599a591ae3f9e5ad798e0ffcb13b616c3203f327b895adc9b8e3c011780d3c065038f4786b1ee84f5cf3d658b092706bb4b70f6e3e8797d0b34f076ef527ac7e50af906967d0404a58266a485903cfca1334449532775ef2f77f6555b8c3f85f79310ad50db9a5d88077e3538f6c2ea946e6449bf3a0cca75d09040d34da196828e6f7f16b4073933094a1f812d641802c6abdccc83bf1851160cfaf3a3aa2f0ecd2cbc83b10b699d65b33c7c3560ca59c5a2b624f058be4429ff9f003cb7c0d43c1ec4afbb0bf5256b868ceed14b5e1469c147fccc52ef059826cdb227e75022164dcbd25980e00e7abc02d679b82d9316f3bd1eb6300d5e7a83f0bea3f7594ca7d31cd98cf8f9640a74ab249a1a099e0cebf0b3f123ed3344c4437ef2ed9c5e8e3ddd1a15a5e5d2d3b595763d14400b7bfa72dc7598ecbbeb6fe178b8fc7d6521fad79aebd379bd7f5c81e94378b6c70111720b5ba4ef18274302ea3467f3a121e2fb8e2687e7abd45593dac27962203c990fff626ea3fc80f4b538a1f8b0224145b68d9f3ceb8f07674b0cd23840bdcdeb1e29b65dc9d159ec740c60a1496acf8db0e0bf3440d77ae086cb3ebabba6d3b7f69e81d9f1858a01311d4567e2c8ded2b951e530fd435675e90d4186337d6a9e2fb9638c5ff277e9a8b1d2f13dbfd0af6ea5ffaf351495019e37e0f9b88a3fb5ed5dc9df39e64b14e807d3fcb80b3a9fab96ad71d232f1e2d5719694eef7a385b700ce68b626fb0c43a6f7fc4d790dfc7cf71c9da61e746d0fb802a2a667485659dfe0af4b37a8a5c2491d68f2bc4aad7724cd74da37535cecf51972f9e133b71325a776c611a5aa794edab8c0c654a6ac76c41093d966fed9ed68b041dd2145808e71a04f7d4ce981cee7ab9bd0899d0f4b6d799d711d9cce8df623956337489f65463a5e11615253c58d2fab929580f8ca5fa332326ed8f8a2ed5335f42055c0bbc4e045d8d928e9dee57e064fc66c439dcf4bb619e2999fa3030786b6bdb3b4f81e7815e9a464a31b0245b251b15ae7c7f885f738fad1721cb7677f5e5501679b2d585cd645e3895a26426d78e70d233b63bd8991bb0cc41dfc243ce7f831fa902fd26c302752ebeb01555489ceb1618ce155e925be6350ee6da2173e1653370d07876c748f0721b16bb7534b875fc507631007cdd893f425413641c557dd909aa3d2aa75c134959f38911c201b8b5cd82ace6c9b0dbbdab82689bf4a3fc11442ef23f6cdafef8bb2d7268acae164d66aa83be1e6bd7bdd03428342e6556492980112d5925cad1c0f44b90cbcf8385f52a6c20b9b5c84bdec8bbb7cafff48de7bdc6369f024ce3a0f9de7dd08af119ec953f14611010aa1c1d228b0584d09b1ac6d8fce37f0e82d6b714cf5840130490ad516a903793629bf743daf967bcbe34440e2a3d1b309e1bdf09b90259f7aac374980af6e9d6fd2994897018c3424be505d62006f1934354d4ead4070300f2d5a4a2a4bb7ca69be17168152e1ecf54ad8a2a1f40e9418180817faf9e43aa71fd39156169f5892fb8fef8c3333d26f9c73d1ea6b55f7a7c03490a83fc0a904039879f1ee117904fa23091c4ffa7f703a4836f47123f2c6ed4a59fd495d785f124d3ec6895118b2f62696daeb58519dad1f3079d47ced2fc9d1f4d2382b1f5fb4a2cb80009eccebfa28d1647b72a462c77f8092643ce1f02af73964a2fea17003d31fdc5a2a88b4f539621d1e827341256adf9aea42501d0b230a0c680fe33facd77aba90076e3c4f80e8b63015cf02191877c267f0309769205a03f1a5bdafcd1f0a817119ba3773fa061ca898f80f97df1d11d607fd2203a4968ba8f5d8ed41a9b16973a3af7fcddce59d7b24f8d33347561cb2e12c7ee0e7961455ec3eb9fcf8ee4aac509b0c0e680ccb687fb4dae03318ca77f154e728fcfa82fb995c0ad1f0a5bbe03ab22554fc0bab00d05f1e386080e0c0f8c20eb4b16c828148291b5bed33a36e4333229d2769e596353ae4ec917d08d41c8daef18f71aae2d2da608b3ea469df56c9a5a3d6f35b17ae856e294a754b13db79c66756145dda1506cbcbbb6c30f953df1af1fbd9d5085f7e0db94671e3847c10552f3d0f00dd682517d40cd6fc2edb02e85403ef346d09aa7eb207d6690eb490938f8adcb9f753e7a05e0ec812bdb8ec2b6da37f324e463ff475ea4d246691b4edacc6b21d8613e3e01b3d984dc64d0eb31a6dab50a1ef6be5cb2e0fad64bb4ff7f0eede313b63a8dadbca35619b41c926ee29a3035a1fbce89679d94ed1c764a11f033fe308b31732d959405a0ef3362c6b3de3ce9ecfdea7f418d172c04b4f4b7fae75c153268a0bd646355292db2098390bd4fe0b51c2ecbd5c678a02185d6135153653d0a32d09418acbb08a2dfcdfbf50e72856cc78dc0d4489aa563e2306c38a97e42fc46b50d824701d01455d6e461c066419509cdb4d89842b4cb3e8283c31392132403051747517a7bacb83c7a27a67b1e0778e276a5f502c6c5a6435aaf006f8e5c2c07ae0227ec79656f9f937b7233e33c3dcd82e40efde94fdf6536be40262ee01227df28ee324d0d6b1dd6a1de9bd547d58332dd1b4ae10dc6b7c502f00b4d06efdcd2e270ccf873f3f24d2333ed42a1ef45790818b64bd159b5744d5e316f658101766c0c07b856b28178a283c5b7698094ecd69f867b124fff3874a29b2d9eed2ce818135867668e9ce532b7990a2c0caf92685c6965b940abf8b278df92e65b6b4fc5080b439b8731533a99ddc1691629e5bd32c7aebad7a2a5085160f38f1e344b8808e308695f988abf1102ac45a4e35ea4e916c60d97e2a038a8a0dcd36f9aa2d49e04a48efaae09e489c3f6fbb350191a135e5933cf053943f36cb23c754e7d247da4e7c6a21202dfaf9ba6466aedd9f31cf0953e848b2dea2882588f66d0c2811dcafbec4d3ef7ea3584c428c877eeec6c6f21845183573ee749934cd124790c682cb1e343c917d2a81e1b2a07018ef9dcc5624ed8102fe13de2fdbb0a2db1e12f61a86c851e5b6421dc507c3b2033d0fa8b708f4a0e9d9896ea0f597e1224a85288e44aaa5fa74439446f6a8bc4800d52bd9a87f3a108330a0730a4686a074f0dbbd9e6175d1f6bbee0fe0a239aafc9a5b94255066f5186a251497817fe9b6490d481f33ed0765b611b7e88372665ef6243202c18100354a12a4abb8204badba8c740788c2e116e1891bc34a25e64eeedfb6cd59b123ec9fa393eaedcaab1ff7829ed8f613b85a5b3036bb540c72563d403a639c590106c07c3eea71da60d15177a8491a6e526188c9e97e5a221cc904f2ed11ed03a277af36b3442b9ed897978b9441fccafffdf9016daedf7e68d3fe2607bb9a901a78a8e2133c54b24aa0d94844d091f8cd9f03490e1fb9d6580c5bd24072f9f9de26cb16548529fb0952bbe99f882cfed152c845d7155bdfa3fe180923c27bc7db382e6e81410d988e2c53ab38e50156d54a43d243e7d0d56b73a596d614462cf4be5f5a5c80a7f60baffd520d69a6084111207a62585e2d2f69c57f6238a4233d61c1c087ceca784a8bd784883b8ae1a4ce55de34a0801997c4a9960f95c365888002ca3490b66582cb05a7448be26d72956ef72b712633c97fc6b2be06d04001fc5e5bc5b77f001e38809fc362781774b90b0971c1d69ee8e38127d489834e9259ce5d282dcb1e39e2112e49603807074cea9854ced5b88458bafc6af6dcd9d7014dc1310d4035c109d0512bb9a554dbcc647c91352a6810de4ddb07a192f1e6329ac6e74b8314cbe36e60444792fac72aada84687ace6a5830fd968eab257e46f3eac8c22863c0036b9521d542878c80084c9b888a57c12d01556117a2631b800f46241c407867fae8be31226c398d8dcc8c3c6c98ec8215803dc05b529222a155d79ef7ee51034813b82b1c492d402ae00ad09db9ac919501c84c704196bf1883560bec1c34c877c4efe2dda92d2dc915a300d98bbb02f6f24ba1649bd6ce72bbdadd4aedae82251999f883a7dcd48d31fb6ab8617e2d6d166795858e5d99d04fc4afb167654dc907cd5eebeb29808d746ce317eb9696453ea8bb922471de23d6a8fb750fac5956af3a90bbc475bd4bebb50a70d619efd0a7d7532b363365dbaa3b16ff3e3455690a0f9ad0758b1420d3bcc17a57c00fbacb3337874259e8f0aff51ce22e09161d80263b5c6d1758e84e0731a869d7da463224083bcd0592a99489cceacb8bb92168b2d2ea2399fb7498d0c9c493b778b5b58cb0de72ff06d2249ca544ed9329010333651970ff44ec5d3fb94a695417b1a76fb5139d4f0f8ff9a0ca5c6649ff188891dc13702ff501e2c1de5e7378d5a24b39b6a2cad6ea00a5f5602239e6f1942168cc2a032642ac708f2b34e4757bea425c1934bd5d1331a99a0358dde18567f15f27852e8e1568f67ae887b423544190d6244a4d3353b555d1051bb3ca946be667cc0299ee9597b72ceeb9e9b6f89651aa5e4e2ef8067b90c57ff2b3e04353dcc8492feb20b159db4a7546f26b46086c7f79449ad94af381c10d6d3368468b9f10e0eb845cea84614aa54de8cd441bd3b879a8ee0e280eaae6eaa0c0df8815537882e2256ead5235886f65e2c29a62505e6d051d42f2c63da86109f30145db15407a289f7e12e6d35e6ef921fcd3d622d37d3b2810381d1b42950e99e1051ff21b9241c19ef63c0457f3ca1c0c1d84826a0775b54ed516a8f5a6c8631248a1f61b9e3d4ac69a70a0a46db80768cfa5959a62a2331a8fc05aca8429ab8f68edab40e5fa8d58ad0bc3faf6a96e6d60d2af756ee1841e6fa6cc94722a46effbc34ec0a91d16b811fd11c2090657369a514cc15963907c8f8a0bc28063532869c41b4f12973b6596068d8bac0f0c15408b6edcdb5a067d040568cb2ce73b7af4e3d37b4d5975c89bbd01de1f25f12001a2333597853f99d675e041d0882dcec9de5330a82559749f04cf2c0344c078ddd32dfe9d73979496a63498544181c19eef93d69630a4e73d116aedd6f3c31f09657ff8198424cdfc9a89fd42ab58eb7f3d186b567b253fd518f7e5e0e06f9bb72e6de84a2143767c29396dd3c22464fd0e0dbd89bcccf8ad2658d2b02d636132525c49178b02470b8bd458b0efc381059b2dfd0522a9c9139389b0e675f08c0c279ae3e89ef1f2a569698cb10883997eaa9275175e280ac0ad1d9d639809aec82eb6fb1832ba77e54a6690395477457225e656aad5dc26dbe81ac7c898343bd8e13a5ec6d5ac8a09ffc078791b9700887f3bd5214f1c754add90c9179f2fc26c1747b86f2e4c3da20e329e7fffed15ecc16c34d6e6affac99bbbc66b4c89ecafca69fd845ba12dc0da4f643575fd566bfaa9f7d39ac583db9a59129eeaf4ed49e0e128d7ec1f1045e86355c9c7e9d31d5f567ef1387b70adc37661689aa5f1409d3f5fdf1c51d60fd31d0b7bbd8db8e20f0763e96efcd1b0ea9c46dec7118f0825504e9ff7499db774da5be735cd06efb1e2c35a25f3819cb480ef4b41eab50e5ca29ecd6f7f91d67abfa51271106d65ff1efc4f72c6277970d92e52f86d0757df335aace4330a588d457d383e0dd7823e9fcb809e3c38dc539ec369b201eb0d562a586e38c75d1ae43094087092ea1b5379c926a18a82abcaa6838b3cddf4d2c54cee8c3dccb60bca5b8f7678aa6d61c4ab27f4ac5e7659e9981cfa4560dad92852488e81c96c0a3f115fe539e6c12c4c394d51ba67191b63dd045cc3607a589070702353e14528fd1d6f76a7763160d397b7e825f7d401065ebdea33059ec8d1c002f881b0f41af7ca3b05ff9dd86211e51c95525c3916e0a32b14cdef032dc08a16f4846b49ed37572351d43e965f5c980ed4c3d5707df370f6598039675738ac7560882a8fbc73e7e7a36a61621e7816582d65bb7d0b9392337b7deb457b976eb1a778cb10ef32a059d464d215e7bfbba46b78f25dfc42c613723cad8a44aa341169a5519ae4863dce160c4453064c42db604a015459e158315f5d0df8f0200e28c5080c4d7fbeac0cefb1cb304ed424b40ce6da9950d57929d56ee9a3b34f28d95c9c2644c3cac2940ad8c0f356a4c292978aaee8f218c0f7360c63e98c76bff521732075d98b6821fa3fe9b319aab43afde27c3b666ab0d28a0d8bde98c49852bf7b0ebd2223ea5d8a4af9f6015d54b4eac9ec22c1bdd71a5ba8518d28a1276daa301afc55a1db9375b4fee88228b210ca9133aa9d013febdfc9f800f945c11e826203a167c76b0295dca61055ef24a045f548742037297962fb17c2dadc3c54ec54114de095991988b23139a349a801cf505b5880bd0ddade9a7e00a18909712af9b9c47006234026494b6362027c963bf292aa789684546eeb1855ad55d12042886d6e50be7615d3e05360ba6a9362cd423bc05680bcf7e95c3b15ef0442bb19f9a158eb744f42da7947f052d3e6a3d7ff8268b8b5dd31dd8800f7548b5a7cad94632373772a5efa52f1f51045a9ea03cb2f00306704a359bcf6b8dcb46914f6c5869653d151cdda067d5258289fcda4cdb685d16929ed6a4b11d9e6bf670b9dbcb645096be69b2832e93846637914209e5c72bd233d80dd3e1e51e116c5d5d1bf9dafe7ff564a8a4c3640afd9ea05f6c58abf5cbf75d81f9aef0a889d1609c3c3d88ff5c1b8278cc16ddfbd9abcb7eb0198a54288c6d43a3d0131debb441295ec7f55b7031d17b69e0659b15138785ef7f0ca7efb7d58fd038f80acd1d078a9453a146d80868909fd23a08f252877fed1dda86b04cffca3e2596b70e776b8ee6dcc549218e51d58b85fef9e63812d52a0c8dd7f6e24e911c59ba1274ae100f4776cc8381c6085e23be925295a076654a9892bb5e8de39db4426fe0dc4584a62ed56decaff86c6556c5dac18284e0dcef115187196d43cf560da77910f02adbf3ea21756a95a1d879008967538c4dab1bae6e21a0972c944d0072ad879466a316c1cfcb2e4b00554062b5e2eae17be8fec5eeca32a58a0497797189ad8b24b51ce4328e957c3e30f627df3e6bb0efb71cd4bd47df8de3e91f9893af5991f8437965355f99a71f7e62b80b40bf9c5994d7576fbf6b5270cbe2ac3a6246f116acbfe499a003d7f0da22c2f34c28ac7f9a96d3fc1c9760ca37dd08bcd7edae6a3229c912c5a899c8fcfddea3e08ed144c5cd3f4cf7fa92e5b2b5806870ce593fd137a64d75a41c40ad2d0705446e6a96f5239e77d4151d6dc5463328ec9e115e566e31264614bdb80fe9775341e0ab1c9aa037cd8be105736d471016f1ccbd353f043f316acc5c98119a0835b74f55882ddedaac2e53928b5fcc4d5c5b02879c245460ad2e9a74775bdd15702939a3f9417b436a4783de0bc45ea22701b832452780f4b52537b543eec4d57cdd37fea413d4f8b815df1a84746c71c1b5f57451fc560ddd61ee237b4c17148d507244dd60125ab1ea4c2042a08d45152d80cfb07b1bae13ee891c9593d2d81bce25f37afb20a4c7973fd37b746213f326e0d0e3f338d9293fa2073030653bd67a9d580ab4ed9a9f6ea2104324a612cefde7ad043a85af9fc6573a98f190eb1f7ebf081d62148a58cd2ddc11a769809704b7ec623ea6605c5ee9bb0e58f0dd5041639ef54e83bc331edc58297123d27fb2a0ff284a6c8278849a0a157305b7685160469d764072c1ba63f386e50c6789b17474f409d96356845c5aa05323c4e14f5aba6ba24b44dea3ea95ffa70e42b8c63b5024095f8cfef02be1252fc70065175a5cfc89bf3dcbf71061f9b6ca741d82c282fb0834c7b2a35fb208f99bd4566939616b21720edf5d72d7581ff194e341c424e797351b745399da47b1e7c73fbb2997b1cb2ae4ba7baf2f4026f1f932e3bfe47c13fa0fbff8fce766ed8303e21b7dc13dc98b8cf83a83b1b190c0591f0ec36d6f11179ba5f4f18a863883f89ceec1f4c2e8ba1cd5f253dc35067e36e948180e00fec9d0c00866af51567b66d54a5ddaedae87b0886965c9bb40a46191c439eba1cb2c79144124492df5b0fd99fa78fa1ab41c8b074a0907d4cb377ef4891d07509a056f7bde35d19464ff7a3092caeaf99374444bfd1284a5c5d9ee4f4ec6c3c5754ea4c4b921244599307e28a2c2ea5ce02bea799904c4fd12b75068dd10ee9324210903f2152c5ad3119a7f11a0fddc99de0d2a3568777720bf5c8db52ff113fd8b2a71db0f87dd99b4ba742a6738b759feefca62c26a5a4b7e9c7a0f37b1d6b9cb2060596c5447f60420a01572fb2f4d859382cf3e718be661164710d42bd90dcc771281baf425d64fde4406c048475abb278afb3282b8c4b28b454742ae03f38c8288dafc02d82cc0939c7ac2fa6472813b417bedd38dc421a121055cf96ec29f82501f94da51f3348ccc4450e091557b4f47b7aa58bba57ddb4a6b629410c92ba61a1e0ace90c487e7fcc228c7afdbb8a499bcd9782594dc7fe9bbdfe08d6e59eaf032111536c6543bc0766c37e42a8c98161000743709820220deab225a3bbd6f98bc8d678daf748cf7965631f6184a8a2b4a3b5e973ac6ffcf136d0205d4d9a2c61de7ff87e14ee573c5dc55f88399e789b26dd891aba57a679d5ab16a5e8075a6c28426842561b442088de5a889bf715d3a93ab95e242051f371f8921bbccbc1de637cd244948adbb931bc9959881811bb86a24e65b2855bbe99d004317f963d88d244597de72c76e95a4a29531a11c904f47b98182bf547c8583303fd7cd1d80738c3a5bfd23ed8f183440f89a68dbd19b1a471a8d25dbafbddc240a2e5e8a4493b8e5c9703e494da31ac0a355bdb480e75320258c5a5d07789d7e2307b8f0f4639336ec199fbd4e41da908d47ea32ec7223f583398530d6dc4ef73aa5840ae650c97782503de30aab5735999a108b41105d2b00d6dfdccb08dfe793b229fce4cb36853d3b6a331c98450f16a92c86510fc23d5a52fca9e4914f560194dd81127d3f7cb6bb4d2db312c48886c77f112306a53aeffe6eee9f01a6420b50cb091cb893acdbd704214b9e64cd536b905e6067dda1d4d9f7a735e1dc89a9ff1ae093ec6a73d2be80f18b577229f06fb87a81d861cb1312a8ce567c26ae02036d7d3ceb5c50b7584c5db5bee79a6ef2593c7479bc4b4c2a7cae004db6756d2310a29440c16ec7ae2a08fb53c911307fd5f13dfe290ed7a7030271d489cb981866441fba4a916a7da56ed7914b65b6d35b85ecde1cfa6d39ef3ee6d1dc5d80ae3c2075d95bdb200a7fd151c202c3c55c59f44ddf5e42c3206e5696fadfaf5f9e950b4d8a7f6812f2fd80e49e47d32530c67ff4511abd555811089c2683b5bdf5614f8143694287b2093fe6d8ee198b81776460bebaa51008bc67348148ec1fde4ad4998c8ae7ff3150b83162f6ac38db8a10bd91136dddc684d88254a1300c0213b9e792f6a3a44051dafa1b10b086228a560af080f9ead66e98cbd0416b185123015e2d1706fc236a27402627db0cfa265b6439814b2a720b5eca822b4ef5b85d2be340cfb8b0f7f383976f1c1eaf30e5b46311d822942b7b1b5476039749106f67c081da75be05522c3602174f5a94bdfbc500b802def93eb194549194557e8532280d571c2f4fc0c8508cb871ef060497ba0456fc7e4b9045e2921b85816bcda49f9c17591a1b5ffd89b68d377a968fcfe58917b8d43591fe3c544691e89eaceb24006f2cef5098b36c506b0e08176b805973858ab4d31ebbe1856d65578016d8aad123f173e0d9b16c355da329809524920bda2fa66adbce1a9c49c98dfac6ea132323f83deae68e67b4e032065e5568d20924e93e6013b0287e94786d8eab786a813acc9fb32cfe34becbce26de053a277cf0f176ba8546199abda0cca9592b046ffa3187822eb88d8f4b844528f42f3de7127a4f5d802128cd8008537192cae3d9c2ab12f2cba235c6257ec6213d2789d047b345dc11163a37db23f8130020f3b64a7a7bb1370b305dc287b35b62689f16d131c090fe37395aea58fb0a481f1ed0a4daaaf2f94df8b2fd1cfa4f0249b75d323696d9043771675efb66e711c647249268cdcc1cc265b29d19670497823abe3d148617764fb84cfe25bc4b86e629c3e9f9307aa0122f288b1987608110c8826c4c23716881f3fc1a0683a827034981eaadb77d3e3151d2ef5d7a6952164d1edcd512035aa06281006314cb7731933ba9be801e275d5260101354502dc4d5f39c5024add0e876a097b9d350d6347c284b60c51ea8c30aba6646b2259196b7d654a333095648f57f00238b0e799bbf2d5352abaacf6552c9244ad20cbc20a17ba5d716b9873c82c1fcfec61a6434733b477a676823a49b219ce030b95c4e7a007e69fee55d683b7a58a33d900c0c99c33e927f1c808ce51f0cebbb5183c3953b7ab2431e25f5739ce861f640ca94f984f304ccbea6386d10df8f6c8499e64e1829438c6f6e95c9d25f292c6c38e4583245f99c5e47656a10105344ac9809174042d13f71f3c5d94f337217659222c18d6253f6d7516e1d79d889fd3b6fcaac8b1d9f907565e7bfbb328d477b3de45f883a5b0d8302413ca07aee105d9284915ce0bce06f63edc9d60afa25fbb2b2d708044659984a9c42db48c160a76ceb9a35a805645594a37af80aa7c7dc58ca09dba40b0daa70f2c169b6cb3039941920a7f2a8fbd69be0726cfe1d68ed15e8bd5d9cb38aba82abc9736c3fba1728bc34188035d08de095c04dc6c9be2853052825d9e7856cf0e0fb79217658c4c88caa5c44d0d7906bfc4fc8180fbe91844ab025d5708a4bd83db51e6e9806242f00703d2d15ec9e4751860cf677bce92232fbe8d971366e1a5abf5abe71580378261efb3b5a158d88bf615c3d7d8cc15f1fb1e9bc3f2c24a833d108b15ab24de299eb8b3d3d953d5e264fe41264480f50ed67b5b24bc7340288166bc999694d346bfee7f5b50f83b09e58404ee29460ae89e21f0d3666b2104062f450405106630d3caf98f0aa0f3b89a36b9616b1666d477e3def66eab4e0294ecee7fb3978bd916f4fb9c67a18fbdab14c40eea4ef078991cb47fd6a432f2ba3647663daee1343c11b19837c89503bc45aeb71088fa32534d5a44c22550eafd8694086828b0ee4d5d3a45c007eb35cc3f23141c5aa3b40b49d989cc42b73f3a4ba832937021b4b013be0de47251f6820a4058e3043e1cd559d06cd3e2304eb6072272d5cc248efd9eec5efde0146d04a765490f7c19c2f40ac066dbd74a13831c46a8e72d9488a8867ca4997ea3ed9de80b87c22935e84bbd3df242ea2bc1fd0c91afe38c4ae4157e141ba27eb1dbdf822ee8835b5272d807cabf8d2bd0625383c428eef21d4df7497b523c61620eae6adb6e14ccacbd9e49d93a940bb062bbce0c50a83804a28d46c0a4c9faa2314de058d880ced5cd1eae3a45822615885ccf82a582a0901a12b99e9988fc9b4ed5547497372da86289df7acc43f92b920ec88d6d5f48ae481e0ce369bc0516ef1d88f78b33a5812d482f80befdec3b198a64aca8574ae63a0f2a6cf6c258c5f8d7c2b868b021e79b5df89bd1a4af07871caa12f78532285e29c983b4273f6ee9ebde6f51711af120615e5087c6c79be78954f123a88b1d18aaa112fd4aac634b183763cafa95f37e21e100d49717c454540e04dab7bd40136db1017fcd6787ca052cdad2b108078a052112acd77113bb50c0a33d5fe696514b3da1b07cf52a85e6f72b6d1f34a579449c8c7694ff9e0ce63c1083e0a91ecb7d242956a18125effb3594c32017e1c16727d1de0d51030e2e6fe1705a893eaf709fe9896c4e0cfe6cced6c50b91de4210ee65b2b36516216a7c4fa9083dc3a57beffeb8c55ef3294ce05a1f1cdfc9be4d5e41ce811513322e59c8469223361d06a28969450c6eea902a6b8d752f16b581907c2cbf9ba9d78e602acb28be6c87c8243383c567524881fc7282b724d5ae0e34694f328722f496b18a320b6ae12b0245869e962c06c7716b118cc63c576748b4e3706145b61e4841ad32e3a3c71cc0b8d87b10c2e939197bb839aae49f947b04357863e3d2d8024ff678af4d58b8646890d8a082b85838cb59786cafc38c49b4dca417b1c3cc1e962c013df8463c5cd0ab0aed922fbf6f94a2ff70fec113dc9311a00047f88a5acaa628ef68548f59e88ea86ad0136c4ac42f24b87ae55317b19b6c7a7e4c96bba88b8d378e166d79db16c8c81b2b372922ba9f563702e2e8d2004044ad520b49c604fcfafb0cf9b6094006996c26b132ffb7f2b788696ce4eb51af18cd649f23bba484ff5ef888ae929dc8a1a399407ad8b082a99b82c47662bc81717a7396703246acc53765cf927cb7027b3512012cc98257947ea986f5768dbb0ede6880648ccd83539e458ebdac395d1e62c6674062f919968843d957048101528e0242febd1b113a446999d5f43760b374441b34083bc11be544b6e5023f875adb9aaa64deb98eac4963d4edb819dd8a0c07b9888ddda59afb066e36daac552562d55cb783c7232b9b70b7921cd1f04bcbc122eda7cb57a7f0bf679ffaa24565dc9a0837e72e9d0b4f453b4e7a84e90662fa908c8cda624dc13a0b5daf84ed25bf5f11ae8b9dbf7cfbf4dd83405b6a30535d18860b6e82852d993b6f27698c0810579a688a91c62a92771b6295bad71b970e4429024780df2feac15c85bdb8acbceaf3d766d183a17101fea325e8f4f57de691376ad0a75bde031aeea960a3e6b756b88485c896b45f317ca4f04ef003de91f6c743326d1975fdc658c3f9da9e8ddcc35d1a8bd6d7dc996667f560ee854fe6193951c173639d4027fc50231e994a604baa8e6f0afff0ee23a51462ca68d318a507a2d77a168a80a4eb986d941c7ce6b7b52e4937f53f5aac21a888485c606f9a73e5ae6ad353b9147d2e4039005931fb680c58b9bd0efcd87555f067113521695d7a41c8788ac56a53af03d9daad8c98fcd9961601cd8efba1e627cd79453285cf852e3c3025b7a29811069bc7a22b392f7a9ac37a7be0b271f091ba851ac49a1c098732711b5c1267678495b0fadd7607c3b6f5839294a8df58fcff75a51d19d4ec9bc884d23f555aeef773557cd0488c17ddacc7cc0927a39070adf6351dfd2b2990a0081e0cf109fcb37df8f2f0658a4defa97b86aa07b2113401db01388932febe5ee9331283d3846da23857ab7623041ee977f6681230a249adbf8e728809f7b54047a0cfec28a5064804cf69c95a8178cafad55871a735e3764b5add681007a63e2a4a898f51421150d36bb37cb816de343f8c1eb7f001805ea3d38caa8866dc93b8b6434c8c31dfa5f536590e9a7622fa9de6dc2c8036ac86eb6cbcc07580f40048ae3131860e98e09c3ec7a6346ea87a68bdb29cbc03f4a9199a88a5fba827f4c07a2a2f8092c485a8596c5ab45733e95d7350c7c66d371828fd638fe32ffecc8b3f12bc84006b6cf00448072f990a7a5a0eea5dcf2206ff43e6ff6fd86014dce7e80844ccc6c9be8c16767292738e5aa4dc801b2043983630c4eb36e9b6856c78d2c9a2f0a9de611dc1b3c4ce19689898bef5da1fc13cb15ad4934fcdd4199c7266c4fc9d833fa214d83e5fb8906c75cfae85f1679a815d34dbe206d4ba0b8bc8fde96eb3855250d87fc0d78b40c23880cee200aeb558ac870308da170a3880b960d27d03b82ac666e9e1b57f186ae96cb4031bebd68b055e1c6aa19128a3214119c97a3e555477991845e4c4c4c0c38dec262100fd043034965d265c010dc295c1be2c450a56f2c2dd95641911ffe4157701067d83749478e46b2aaef725b9079cac774ec72c7fab978da6923a133ce771412d0c3d8651c9afa401fa6062824c95c9f5722a1aa12b80c241201c9f570c44769d82e3c3f7e5a22dd24d8f01cc55659252dd1ec08987779927514f84febebe99bc6179448ebf8952a649d512a7940a8c38d06340351b01e9d66173ec4b29eda3ab8a2bfd6ff74ec068a1196667b80fc64869c250bfeb3c427601a3ee7a25f6d5793d0698deabcc19d759803f842129ae0a0902799961c4cb3d892241001701014bb19c9dd18cb887f8d1892ffa4fb4c9f0f9c00657f573ff87f63cdcc7f1f837a8e0e7651bc5579587443c40f2357340e24a7e86a1f5e7e5199493ab2ea4084929768aa8cbf38fcbac92bc879e1e3a921ed77313fa12190b76af7254667a46e485fac25b0a5a2b4810800fe945f3276901430e9742257f2397953498aa1ab992e5a0eb1b9f42a161747491b163b452c4c87c64f77dca39c060261b80034458a703a9fb39d85fcbf754aa76a10f96b7c6f96cc287a31d5325ca884d2812a902d38d7388ae396ada0278284a80b07ca65004b7aa33770d0651eef0a2c304171cf4cbf7fb46f73db63921f81c3f30fdb6ab9080d47fc3bef8546a0eab4b8c44641f81839e1b81656e090a3b5c0eb96e867a026ac7623ef57932099980dec402e885feba239dfed4419b1ffe99cba840e3840846d3dc28736a815d6bb12e53378e19f9a21d2c89f51b5a362438047e0d5bca0a973f5e92dd115d0247f7f82aa604bf1b332619213024ff2b27277a8e4c9dba385c7b0d2cc5a358e172a76fd6cd6e9871f47e86ff411982c277e1b3331955f5f99feebc66d3a3fb5e083cd8e002d733def05f6b4d92cb23bfee013fd463f1a502c538d927e7e27c408133061126e461f65c9384cf472d38d90c883e41da473c663ed6607706ca410b9b91a44d704651e1b2571fe7088806fb7a39e5f26a6f3a48d468844f1eb8aca03c7a3af6843b752f385b17837fc2e708365480f6280f32728a3e50fd7bd302067f6a133f3945d2022be58fbf28d24bd38679de0d9e63517e69c4c18568b1e58fb4ea6614585f58e42ff39e2f0d2c8963f39d2bd0e415897f7d99e1da03e2a328c6900ca02aa6a76f72f1906fda068a07db1cece80bc96a99d1c2dd8cf83ecd00943922febe8b2964357ebcab94e2fbee743a332349db04f6b5db39405d3628f5b1636ad7045d756e01a9d96c5042111f2505a4ec74bf432bef2ed8107a6e9fcc7dc9aeb6d6fb4eca47b7f36589eafcfa134db31b510ffbd594d07643acac4c6f01cef7a39ffa6b46b2d74401f9eb380d09e82107a465682ec8c7c2294ac04681839b1f8f2e00ae17ad4da3d634e442cfa0c474f30c9c7a800e260fbb18433fab240e5bb370ca477d7059b1e3ed11dd32cb9c4aa54350fa11e1c30dfb4c855e33458404718ac48f98b37255ea669576529069b94815b53f9d778ff040bfc15832bf835cbbfbc6093f95c0bb40a0325cb08c11f810126ba3ffcef30fe236da566969615e14ad844f13ccadebfca2ce30ab35cebb64fa487a1500d3aa64d56bdc2c485dcb3158a9b515565537a2842154b481f6ad5d7726618c6eea6372dea6a8d6ef814fbc7a80b58849d0ad0ee57a6fd46963fefdafda80feab85b3c0f69811f27d961949ae3136a704592199efbea691fd80bb5b9c7011134f4f22db1d9f69d0e10d41611d9f516f2ae9a5fe54805768037edde2910c5f714bd25ef030eec551fd3aeb11bd59ab6fdf2b4c5c4177c71627bab1f9fc023b42b38043a51996f3783e49408c7e8368fbf88c3a94a3a651a70f092055350ee437217c9957d7154a2aeae1d614a6238965a2b4769725dce31469f8e9de1da0f4c1a910bfa430186fb0c11e3cd353b33fa67281e4f7dfc19af9b365ebe7d5ce6255f37ccf888f70be40f5e032225d6d1ca5cb653a3221bb5ad0c7fd477a8e7f333b23828edc8bbb7fedc54cedb817478446f4392f089686262f766d92d369b3a1417f533d226bc2703593b7ce963d202532b67a0e78f4634550dc9f5c0e6bcd018c4e20c7fb78c86b3ed6cfaffbc0f08edf3b637fb99cc317ce6d2ba9165707aacaaea2b0b96b33b25141f223626d41980f593d02e432f3cdcbe2b78d87cf3402cbb526ce7475a905e4bbde3216ba27cad60cf5b9bd9de65bea062da95432111281fd7501b965cda095bda87fa8bbea77be01b2d3d50bcc0c723e63580e802b6542f57281f72dd89c00e0cfe95548cd497570a3040cbc5ccf45a4bb0d05e127a4f8e8e6f18a3de05a6966f642f7218af6aba2345d3809c9802f3263603d7d56d6036ea8095fed4e904b9cb0644511f005020c24c4a3bf1c581192bfc6c28e963b8482d7210332a8582f62cb9b500d3657cc76f81b23526cc541e85bcd8884ed46cf02ad8bbadb678420ca4d4407ab041f429d59595f534bc46585591f56c701f53e2511c48f55cedf69624b81cfb3e00b88a5d40b8b9ea766c034f239b5d73e89c860dc3c75728ac4cc4946ef2eab5b21a426ec943aa97c30956d4a3a3aded7b0277e049317174d9ae6a8006fb854ff27c2dd5f49074d691da43942006d7df646b2c41a49570e9b8acee65b746c6b95740f694e1e2b57c905184c07807f1611ee6d0f349322d45a20620a6c4227099284da8876cb2200d464c2203257a8310eb2a537193f5fcf791038e8835c02ae04ac62a87143cb6d4e09889aa2b1492db6662c8d08584d7d3696e882887667a2a7ef7b9acacbd5223815d164165637f0dfc6797db2878451aac009672feb1d56408b12666d352344271c0e48ebbd7755ec4e8558ebe38b5b751d5e26126fb2c08ea65b187bbc1b20689b910334095be4e630e9e772f26eac3ac5a14a5711ddb6c922698e6799e1232c838b34f010c0b7eb22ba822023199f9cdbf83e652985249046def5a4fa1ef3067412cfc32fce2574d2f45c3edf44ca62900a9c0d2327b24aa8fbfdd8d0e29f8bcebf1013db07adc38c6d2c04e1a843229756fbaa5782fa7df037f6c39f602afb49e98ccf45526155694036eb3a46827a42624bf57bc648aceed05c6c7ffb2244fb589e5f240d0f5084cc02bcc08725e84c3d84d971ed471f5f003df1e66c95974517abf68f03fa0823f42ce4acbb6c8e6acee2d88c91906bb114bd249c0953e41a0e4ae4dbada8d985bb5417feb71b04ef04b14c37e390e1f9aa80586d2a6f1220ff89fead63ae5ffc4f7ea473e5732fd740e570cdb3c35114a8ab92c4ed99866ce02300d0aaa7dae5d6f0297b6b16fc73fbd7b06de22d8ed18350b796707477764807bf400662c1e7b29c8dbf38190f1f8fb9dcf8602774aae0d0fc8ec4341a7d1dd27801fdfcaac3b2548b125cd6ed48357c3dfc409c3ae9d5bddc2952ee73a59e774095ab205635e996766b28469b7135f9371888594149b6fe7e0200304acd79af63661058ae39b3879305fe2ed1d44615b72330cbaf0017864007438a484c6228ee897c266aeaafa0849fdb0fbf8aa8b2bf13f0e5b7b52efe054f3a79b14b4532d04f402391645976e3af77c474264f2284f3d29cb1699c3e17175c494264ad52dca4810ec48bb1a52f9056039c589231597aacaa238616cec6dfc0dbee3c13fa72056fa6a83fc4035c3ed3cfa23736b14c6a9c4ccadc2663fda289773abc71509ec4a07ebcf092463f75d4e8c84c00f1827a06c7c4a1d7ddf81b0e2c3427aa820b5645eb1a3c050bc85be87a3b7a5a4e202e31264a6762f58f3bcb5296c1824c2e4bcde57beacb79ce02f157323a9b18ae1f0375b33aff1ddb9ec24c509ff1b3049a2dc070a5b6dc482a7cece0e0905a0f8cec48eadab2da777f9e51ed7a80f0078bbe6d4ce539cb98e4c98ac908b7d2611305b1f24ffa02db012c21030a14ca6757309a59a5036d55f465713544339018d286da5a35a14031dc64cac4e3678fbc29cad4612670c74d68f827176c98d1c60fe134ca71d505bc22a79902db85a6d4b2e61c7a8ef05e32c5999aef1f9290bde5de724b29534a29550675066d061243a243fe7b191546c86fdb79f1fc623b92c349ed53845467f9f12d6b87adf2bd6ee6226fbbe8a28b4c722b51c11efe43bdd38c7b10d750288047515787ef5c2795e33be7f11ef791f9ae87888afc74e33b472560797a60767bb75175779781ea7290d0009e06e7006099a7ee6e50dd8e7b51a5329b26d8d3d4ad93b5515b03361cb600fd4f47eab075923260eb6829c7d6957e015bf73836056c1d4c0d7293107fe997325b27a969eb682966eb4a9fc3d6fd8dade312b0714a2260eb24c561eb680966eb4aff1c67639335b64e525a22c0d695feb9ede4a6ce893d30309c00b68e7b97adfb5200b6ae44b74ddba4a4b4540240ece9cd5155ca4dee13ff4b259494b4a3302a958aab3e97d63d54bd7e3a40639a87e3269b262aff62e59bc810eea2c278d2f73f15b07cff1b6217c052f4508b831639e0573495a75aac335a40559ef430606c32db612b0c8da568b04fd501da2e0e9d13bd50195a158d0463dbe6bac2d0766db068551ca0f32c90b8ae3ce01da0adbfbc50d9761eb0fdacaa11e9491b7580b6340f85734d1a0d054fd304c39ef4d94f98d5641886651ad7114d9571d39392d252e99f13e2a62725a52f68895ed00b8252525a2afd431c8803a5a4b454fa17823ff1d4406e8a3dfed27fca9192d252e99f038a443efd30301cf75f2a511a895052d252e99fe3a417e87ef653477a4ef7826af30baa843a8553bb7162a788eab6c31f48d4eff47af854b7618fd71889baae26bd40316cebf8e287f12dcd9fbb1b5b6de53b34ef34db9187a269d2c9997e5102b3733310f9de4cbfffe126ebdff7fb0e624d9dea21ea6b16c8a0be9fcd02fae954e59daafe0b5f403b38f4a278410fe82b7c3edbe3cfeff93c28fc405040e143e5bfc29422b086091d1f1ca22b8888ae18225a02113694055036044474c50b0287e80a22222222ec8a2088e610290aed26d0501640d910904f16239b26598c6c9a8c414a4a4a8a7d3af02d299cf1c14bc2fc5829f54635bd8a31c61819e603fbd21f04171b06981f3e85768c2325a5a5120ee3cce95395616ffc572eddf2e998673e72dfba22b1c2bf7e5e5aa93912136634f7465b2703b375ff6405d3316c038970bdc1369c77ff8cddebe2ea75c9d4197f69d93143ec4bff1319256affa0f6575bc721511bfaf8d63da396403be6b8b959876f186f3ba49fe98d56eb89b92e1d0d9ebdc1a7129215d026e1bdd8d74d2e5e7c8182e0e5a48176955025f4729e30b978392b3f6ba369d792f3535b722aa1975309adfcd0e019c35c976ec6890ad5f8d736e7d6057939961228d70b7b5c2d574b866509d50e0b4246838182a002aa30eb82768f876771ecb02acbefb02064e58de6c423d08e8527a7b2f0d49e719a03679cb820f9d44992103e33ff8c43083720fcf127cf6d174710271a92409dacf3b1e63abe673b46db5abca80d38b8e622f954ef2d50e84395f7a5d6f910fbd08e51650bee587245edb80e2d0efe09adaa8808d7b8f1e4d883f95e7c328bd10241055465a5bdaf5ec24aab191794bed74b90e03b949191524acf766dbcf8b62e48900a254039fe03f2deff3d7902e8c9134b9aa5c6577da780ca1d0e95abaaaaaacaa792a0cab79930be8618a5d75fd2faa5066dfba543523bf8cc5d2b7cad48ae3e29e3c59a4a2f633c52af7f6f7ff6890270e0569ef4d9cf1519f559f56de9bdfa95ada301a38618a52dc6b6fb4249dbee68cbb68ec2d8765fb0ad2bcdf8a50d3982a4b39aca48d73e9d43f4c33a403bc44855bb231592ca526e5ba3fac707494fa0fc106e2a7dd5e087dcdd3af956c99252fa5bb22aa1005a2fd774bd6b7c69b0242ddf9791ab4d0681a1ddc391e17b64460173b31340bb1db6bbbbefbdddddddb7bbfb767777dfee0a26c7f8348ac0cabdd4dcab016fc01c2e0e2df9d5d6edc70dfa434bdbdddddddd47853c83e68417ab574508abf736ed89e8eede15f17d5ba76176149c284abaa7ee132aa4d411946a9152ed675987545da4e154f99130139982c514502c4187e8fb4e3e9982496de97066cf1f472352a70df1edfd5e1b66b4c0b28172041a62fed5b3a53dcd7a7f656f699df5d60664b31df29fd6510babcfc2b6ee3debafea1fff4c3fa9011902447dbf3502e95f2443bcbeaf5a78f05bcf6ffddc29b1b701d95fab5fc6877193924753da591f2dadebb7fe699ddcb7e0f4edeae72058ed5fdf80ecaf4ba07f3720fdef8314a91dc46bffb6f4f852ed9671660c841004e9c4118ae0d31349ce0ebd608730205fe0e3d301391880105145448a82340529880474baa188d4858aa822aab42075218612345034506ba39f245411555ac45082062a8612d51495944aa80a6a4e9e68a0e4a90ab41a1a40903cd5a1ca3f0021e8c40e956b3350d0161eacb5f0e856487392b522cd3d608b0a2bd231469aeb223c3cf7b7d6f74f1edcc4346f2de0a3b927a4631e0f441e0f6ea2401488ce3c600759bd94cccc2ce304164075a7d475a20b51d42d40509241523dab71f6a73726c4b4b8b540ec46c7f8ef463bc6b3f713ca20a59ad5c47f91374cfe5022cf9999f96930eca66bdb6edafd6813ae0303c305edd6e72423e10f7f6918e8c38d1f43bc3e3310e6868ce49e792f7e67474a5cd01cd024b5e3c6c1c9019f5cc70a6eb92d68dc30a63ef88b734dd0ea2b1ff1b9a8519da4f6d7f897d5f830e5f58cea9822cc4ab8c648c64c9ac3aaa931166c2496eaa5758b45275365622db28a2c2bfbce8e94689ac4f81149e58249ed642a142e96d4fe1c3bf416948b9a6b2b096554cc69910f7f5949e5a2feceaa2fc2556e35fca98c47acd5c63acdb1119cd31c168c42092d39826e37cea524c6c75ff6062d6e987243d10d4431744840a49faeba48f2f186d25cd34841ed0154c12b281820b536fa699c483e2428061840152a93dafe4e7848a9e67cab827c682767d42137dc509946e54d9ae48e192403a40050792301ad8d7e121528a92787a2daa49e98938553b99f07d6f951fb7ae9a6d15f5b27a4361046d40602a7363f090ab485473f44f2a3a439232d3a80688eb5e526a8649aa9c991c63aced5258168ce878fcb4773fcde49a2aaa84aaddb2995218e0fd9b0030478a00cdf89d84d19f6f0bb07b7b79dd1efa8376ee1d1fffe6d1d92ba6f5d326db1d704ed5c747875698e69b0214954f97d14557e9475aadcf112f5e980762e2e5028fb0671704099ab857311c1bffdf3ce407dcbf19f3fa7b60313b485474b8f67a4391ef15fdcd8864fdcfd392ffbaebea174ccf51610d606049f3aa63fd3b8a77f63b9419fe6582aa6756c44eddf0d9292d252e99fe364d0fcc95327cf7356339bb79dd1f7683bc242d3c4b7961eaff2f3e0f7f7ada507732d3cbc02d9602a9233d0f05c41db470f3e74a0b5a8d130966f527c34d7ff6e403b59bba5a4b49bc3fa6a327f7fdfd2968a549551f7c915746a0b8f6ef4d923a973347af9a397d55499b663ebc4b4f7b3b3d13684bbc87a5ad9efd83a84d150e15b50eb1a3ddb2eb7bab2f5985639d3312f2cd3ba1d5b8104f96c0341f5f2615623ffca6ab21dbe636e96d679c53422bc36ac2ff2a40664be7c9cca95ab4f13a7b9b5f4a85ebe7c99d5c8979db13684bb42247562dc45dd8ee98e0451e763a73a6be6d682d5e918a6453804d208e50f7c800ecbb85a3221948232604da59551c0c6441528a10b5968d90dc0fe0cc79781f173b4fca8cd68b2932971dc649a8332143e81ca2742a7c68f9895798b7b57f839822a34cdd069e2a7c25f185421f33461059c3a46e0a2768b45851112a153e1cfe818e6d1336255b683089d2aff3defa099d12ff0657cae712b310165b0cd5ab96feb20b37c9b6b5c5bfbcadac3e62531b826999571d3cbc8b48ccb442babd9afaaea754c5724d678ca8a98eb72e3b98c22108949fae8fee29beb25bbb3662430aac3cacff48b8a0a5451791ee201ed96a88d740c57089f4fb312d2317047914d08103546ae6d0877b113d2d213618c5344582b022bd560b41b6e92465a4079083ad1dddd1106f4cdc743cb5e5813fcc91d8fa142ce6a6457978c324a50ff0ee6c626b33ba29bc63cbc84cfab6ce2217f813fd43dd403993407799a8359cd0c16d01835db78331e312ab3956a2eead0f744ded4b6d8032cf8d497a3be1b352a99f2976540dd1ceadae8321800a85b5700f071ca4db4340461a00ccc908c938aa0ddfaec00819e7982052615c26e7de06b530d0f9feab0f25d8d0a596a4739e52f30a864290da5188b1ddac90a79465d43192ac0019b103c20c84df7011b0ffcb8e9808d8e9b0cd8e8704335b00d9858b6cb9c845906d37e820525a5c5b1cdf9146633f36320ccf9a3964a5a08e664ac6b34b72bb9653cc847737bc3734c517b68cedf3799b5b17fa3b9fdf9de689bdbad85b7ce657332bc5ca2fd86765409dad59037f266c6be6d06bbc89bf7de7bbd41863f0fe8699543c855b51da9806405c44c3cca522bd2351a7de7bc7515a6c9f993b5eba7d661b55a4ffa796535a4b72ed2c57d759208cdb0c95c6986691691ec871c3955d2685e181fe055ce7454ff9c216421753cc2b3240e2a1a699431c61c55b617392adcffad4ba42e3ae07b3f7eb0bbceb404fa2110f8fed3b5f750e38a24b2cb6007ef63697da569506a2e7533090800facb74f43f6cff75b0ae4bd5f1361f5020fc7d84b92e260ccb1607bf0db409ed64ff252b95b037a752d217d0ae54e1ec0a67744c7c0861dab434fc97c339e79c8fa4b6d6c98e6b7fd4e45b3fd39786a45a5a11afd2ab929bb06d3d5b1bfceb93054f3127c93ac23ac23ac23ae208eb08668b073caaa00c9b246a5d9606493f532a533495226d25094ee7f0b29ac8fc33bebb1b108e186fb367d767d75b4c68579a3f2f0c66d797b2ebdf7bbd445e8d1895d9f5160f6827ab915c1badb1a5790e89eb443d0de95794b4899443d2a6b3af8f3a24753e6c566fa77aefcdafe64c5bbb92a45f9a6a2b3a9d43c5f55a41ad2459416d2b39b0c22e6deb94d8a5edb8ea6372a55a7274a6a64ad194e65ae508ba92bd6d05d59ca53d6cc4cd1a304b9b35d376a8bfd0185649d62903ab6aa65d9ab53622a9b45559cd4a121c54732b42ace4aca05684a89da36445a7639674cc5c116271ecab5aa5684663130098e49a693ba3a7da760edd8ace935694740efda4c792edb8ea7b1ed06ea674cca86f9ba9b5414ae9e011d7a9a292d5ac2869aeab6a7eb5a2adbcc86a548a666a25a7a7633a95a254c738139e8e71a252b482f25ec1b1766515e1bb46de3c63543d566d982104ad9e508970ad7271545f6dbbc283758c33cc69498104b7bb3f7777f757e17bfe0484f0c518e10f845b70181dfa131072852f46f803e1161c4687d7131076852f46f803e1161c4687d39fb6433af94b5f4f3ad9b4e9da18cb628c1ee17bf1c117dd428242ecaa50db990f637c2938ab39216b568df0b1266b8cf0d2301ad66285afd221824e9c2237cda253913f6f5e32583bd68ea5036b47858896da6355c17abd0ec986847a7f04259d2a924d8cd547d249250b952ca28caf92c5e2d07193f55267e6f84b431956d06ee254515bcb92b2c2a2c6d76561cfe3cefcab5ad239a43a87fe392712aa54a5d3dc696db416683771743a66e6748c928ee9829c16c7be7865d0ab6b3bf32fed593b34c3b29a9d595ddb91300ccb6ae457d39999979997d9330ab8f5a49307554bfaa52b9d2a5037f5943fdad2442d56d658c32c1dd0681d412f1e17f297ae74e08ef55756035ddb8a33714827eb4927998d82d606cec439e1543ab565d4aca8c90ab5a8551562178c95b4ae3952a1b182c7f282b2ac3c76081f84706343f81c42f8b4af969451728e4b88313290eacf0fb6fb046e628c51db40d360e2808f25080b6cf717fbd2cfb22618ff018358dc5d7ef8940013638e165744f1824d94212d28acfb244a154b44c942e9791428ac285254ff1a318a938ad57d122565053460484c8cc9c40257b2722b9468019635c10a24b6b0a206562491c28514211c4809ba8214285286809d41ca0e32202946645a54d14596aa420c555c5185501558802ef877e16a6c5605c5c640ab29198a4a2d82e88cb2845a53c8ba402b285ad017490461810413a814f483a09913f439cea38cba4fb890441557d4ee61a6c0c048e3402c143fd0994273043671054d14ea2982e6085c810e688272c00529d01c814d6a4003b7ed1cba1a35bebf5c007ef530b6c82dc2afb6f847600b6620b1a8519fe151a3168040487f692666e08324688e3c19d0c04742c3750eef8604e484348518637cf04dc1ddbd0a7232853734837c2c4931d159c6899193ecd08f1e7cd87a7a7a1cfae85a5a5887534cf8596a6735ec3385763b543be9c3ddb7faad5a7a78e5f7ca5bd752a365e6875781381428b4c78f9921fcb7bc5b27a4c2f7409e0ca834bd6acad04241841f6c7eb001922c1d763161bdb52ccb62a9b2921850fc615fa41109e368188276371039711245143e04ed4829274ea2804778f0adef3a4b63e917ffc8d5daaddae4168128bfb763bd6747309a26f1378b007f7f7d4e0433d06e7d6458b62ec2b4f0e0870ff93dacdd87b6a14a3e972a35226fc91254747ecfb5b74e622c3d6306427797c73d33d0d669ae972839a9fd4c6a3f8988762e54ea4a3a39b563d4cf9225a82724a32067250129a5945525bfaa2ab949806231c66dd140dd8dd4382957bfb6a7c097aa45594c7356db53e0a38fe1952e6bebfce90fe5cadd2f3e562565a9aac6a28c2852ff68eebd2a3a7c32db8f97a3b9ae20849121841042dfc14d4cb31109047868ae77f8d1313bb8944e6572ccc058354c841042082174777f10be3b7c2ea9e5853731eb6577e5d5b7ce7af9130a6d77aff8f2ea7a5cc5ba1952fe6b49bd2dead2438d590f1a40d4186196145130330b99db1614ac232c292c28584838e9dfddddd588ecf0bae362690e6b5e42f2acc6b97a8e4e8aa7c7e7476888a8c84f289c144f8fcf0f5011ed53a9518fc3e5c0e8f4481ffa5302fa204ea86e0e57a2124896e897b8e764d6870ae93942550b752ad21041a29ed7c327e7d3fe448b0ada511ae6a571928d07b9142251fe5651f72d2868ffdca6d4aa7f5aacf0e7cb6aae4a83546ad990d7eadab6b9cbba42ed2a7095d8675aacb61d0c3edcac8650e6ba2c9be4fbe83b05e0f0625d73946db0d3eafe0ac92d7ef7d5d67df1b75ebc191bd4c9c71df66b6283ad7468b7419117eea2f6002dabdd4502dd95510445c2286ed94dc7be65f8322ee3bbd5c3aa92d52665a88ff84de4c34d0c68a209dd64400324c25d8b1a7d74b7436f9bd07961c338d264d8d0dd766dc4e7ba839234d677b28b1b1de323a81464f580fae86132843b162603aefba6e5e4ed7beb84f2c397f139ae7bd7a044051554b04cc176df7b6fb5774518fdbdf73c4208df7b0f46187ddfdb7dd25441c86b2342685141f99f7c113e089f4708e183f041f82cf8de8bef3d7e0fc6a5fb9a23023e081f363bc3208410c25147c9b604450f0519c29761a3f78f8328431a9ecdb3b171b77936cfc6e6c517f4e8d10386156398026fe0cd0df30dbc813737553442071d74a82188aa9252884a08ee2da6c01b7873c37c036fe0d02823c58a79f6055e3f5836e03f5924e1b35015919b4ac229902b2237d512951095909b8ac84d25e4a622725309b9a988dc643096c016e6649d79f63298c5acc26466cd9c2bc349e9cc2b9bd74f1351fe99661e9802c24811db9c4e9c8451368cc2b2cc9da8f24128c8cc7e0c8d3212fb30cf3e03814d30c53cd0c90b8456c6435628b31e5edf3647309591b217990af3c022200a024115ac09e6e4d4b650168a6871bc6f0b65a172a012394516c9220b50fa2253f1416a5f1af2002651fb3d571bf3a4813e76c23c10e0d9e145a6c248b01ca6fca553cd19815e281915951596aec17137606056565860f08c52c9e5593096ac6627caa2ac862130cf26b12659545484da30055315a0982c9ad2a6b8c124280b85b292b4093281291698a2589601d5b0037feeaf17e5db49e0f77c4d371cd048c0123c1198ee18b00e100fbc80aefc3c58e0a67292364d9f1e3688c8a788da6d511549b0d0627105ed38479624eb0861ae4bb7444f3091839394b3fddf859f871eda649d6aa42a338f1215e268618ada6d149569ba1c95bda5bf0c519f01cc5766b2d22ac9e86f616fad859f2b6fb409f4ab4b13d07e560114eea6507870d7d18cb86902fbe25f05d7eabb0dff289adbca525e9f2adc24a988fac80bd4ad2150ff36491a7f951473062f4a7058d092a0211f4687b801891a9c0b3090e0409f25fa65612894df77dfeef36da1f31728bf3f1fcaefcfb16b08192f6c5a129b298837971096259fe37355599665599665591c9f2b69310e64575230f3fbfe1f6e6a1aeefae1a6f98c629c270268acb7e567de88308ef85ca6d11de9c23e4d3337ee413da9d727e108b5e2b14faa7c6e1f6464606038eeff7a52ad8f4890e0198ff5b9b698a3b9f64d46a6b2020e195c7277efd7edee6a52c260c812572a15f9c2a217698eb02cc346937451eb8554a956220b84f1766bf0dd182dc3dd5d06b6bbdb324a368cbc474aa062ca49da7ea2051ed7b8daa0c9a8d331d74a3546aca1c2a89506f7e565f58940663c648d3f2bcc35963a25e6da8a4a9d17e6da8b3a27e61aad13c35c23d5391ad539c25ccbea2461ae617552ccb559e70bccb5abce15acb2ea5c992c986b559d30668c190373edd559c25cf33a65603364b4d8307a25a8fdcb3defde5e15735db480fb3632093502eebb744c0504e42353b9fd528952aec852c11549d14a42d7db7d94619611b46b54a33a09cdb0ad6b256f2b35a1ef79522d8ae6d6f19224dbd7f591546242dfd6b5115a27e9117c27be0005ae135f588269209c52a16f6d447310c8b7c6a25b8b0a5fbac9077f810ff9044339d28f326cfb5d417cba4ef27debbeba0efc1ee202280c3fb34bcf0d559805277501759f086d51e74b42ade74c7ea31c268803fafad3a8cd67a660504c1a15371f16c7fab036bc7a8b873e869173167298944c0a26f5eeee2ed5e14a1173b9c0efc3e6ef30344d30ed04d8673162bf19c65a7c4cbb99c07602ec598b5b27273635eb31adab51fd67da5d1825e9db3a3aba0256ea9839bf65b2f010570fbf512c3cd3dc4f370eb462b6f480efffd26767f2277c8ba33beb119e58a8c44db745b9746846000020080315000020100a8784e29040201e11365d7e14800f7d9242845c1b08c330874114420819620c00000000911118a919898200fd803bc1af6462351915783b70486f39f471cdd8d64b555100b0355875db084556db1a35708678bd66e6c7de65c9d8015441ec85aa25ddb07fe594656e4b286e0bc93274f0b386958882743a2dfc211389e0c140d9961ef224174f1da7d835ffd7e9610e9f3044d1a52ce0a069ec0bd81ec15ad17b41ed33cac98166fbf6477e70f1a123fc67f9d40b4d9e792aedce3bab69cf341d2be95bfe57a005270ca956725e869c6a59c4163ffecb442462541d47314a1d9b29acafaa20fe792ab76b483d0798b877a24273f2d057b5e6f56e060073a162e7abdc8d4358047070ebd7d8d33c680612431092cdf52eb63444ff0ca8ff33b907077531fe1e4935481af1677fc920a9c29f7d2e84e4b68d72044c4451e9d786262ce7ddab4e9049f74236023860beca40b2e61824de9079e673e677ddabd9cb9baa557449141bbc01b00dc92e5f4954660293676e385962c7beda6a14ac70c02f1cd9e2819fd785a4aad1dac0db864e46c9488dcb5ef87e53dc5102e1c39bd2e66becaba76a9ae0f2fb18a7b329bd14b555b2c77822d32644e08aacd094dc8e095bb153247517397c4066c3020806f5ae8e96d546a357bc930fbd982c46e8644657ae9fc231dc8bf7284f0aad566c32680b818fdd692a05eb14d518b5435e389811ca0317eda86f0429c64c744493819d9e815702f35cb6d644987a4445f51d2bdbf73a40a325bddaec447ffc3f07dd22e003703bafb5db9e8737ec74fc4d3de1188a35b703b7c967cd8f06facb27d4de91562c3601e9fab3ae5058036a17e768ed8505688084d154ab37ce7ef3ab2c6d37b5658288d1c06c58e2ed71645268d0e8ff9e9d690fcb2d4bbad1c01f5f2f20d1711fa28d4f46c7ad349a43e99b88508b50da700c9994af10cb535351822085986b481fff34b0b07169b7f5e792e476b09fe4b0ad2b74023146ac67ea5ff8d818c634ed5541d24f777e68a8696fa73e7f818af381377e29dffd5cce1a9a4d29bb4fe63eb01300ff4499c2db6bd3cd00b134221606fd8043e21ec216dfbf1c0f0f65d8ccc37f864dbc9d389a31aa869bdf3026e423f9ef1925b37c622e98fff93d2cc05cef494f691ddae33309c9b2a987b95b22346cd95a33c740a180819e317b97f93f0f77f045047d0179e904103c288e4f07f96a2695b185ac3aab206a643177dfaa42b3d3f6613e9d9a22a67fba965cbfb169ea345be70e89863c71052089ec7ffac2cd9206909b7d34aa7025639e9cc609b7a0b6ac848c00f7f424bd1b1818c90d78042c346a8603baaa2fca50359f44dc5b823c92232ff74a79066bf757fba7ee8d0f4f3480709fd8a062fc5b172f6f23add182eb96ef43e4dd5df9121555c1cad1808d7cbf5dd6dd2502ebd223e3aab73da7f094a0a9c16cd0bfaf7414578b09597b739c24a0380d8764a6c2352829d75146932eb8f931a2ea417dcc32de281d1f733c71117b04127810c76fda531de3269ce016ac224b2cc9356f1df7102812bb9aca3fb8ca24432e16d346453512538537cc1347b5b23116be5303056396902e7483e9a21f66221393eeebf1185bba8cbcd693a73910d986acf7e8e3ead0a2864ed107f53e508ada634b31982eafc54797c5d2edd1de98df6044c0e58c9445cba3b0d0912b39eb825829e3acd01e80d8cda396bc09cc6c8e742758303f2d3c829d56398d0517faa88cfde5c364682b3f2c296b54557888f366751d1e5c5d5d63ae6d3d513079475eb0aed5a29f386d4b8163f591ffc3f88b13350bb5ec35659254e099179150118a6648973aef2f0633eaf95480fe878af35c31eadcb6c47762e0f22098f592fe30a3b325926f911f7358f944a0e106bc8d350347526bc07ba5348427fa7062a2141e2dc030ec72e30245f7f5b6c2fc103d5d603feb4d36d3cb09436db308a58815daf2e17ccc64f8c3f0d8d5f16ad6cd47e9f48f379b8f6205dcc7c847f6703ccb0d47e0ae607826dc66bd972137adeb8292e79cfe9dadd662c1d4af57795dc832265043f78d77fdfcfdc996b2ba2446378be48a4acbff34f3291813ccb65c1561e690e4f6a9b49903573b005ff243b5b0523bf73e17b46a5064f56ef97056db2c29c499cd4a94324b3035c8a3b31c8066a444e4ec1230ae69916adf0a13712905504f61ec2299680fa97c6688a2452b8633b2b59d720088f246ff691ae328e368d55a4bae15269611d362cf6e371df54e08c0fc277fa64bf270b8df14c3078c848f0e2388511a549a6a31e3dde472e9140f63164509076786fa07a5a0b4bc2ff84084da3a8c95820f451d916bbe592984775215a66d1d81f0376c0a7b635aeb3370713c8c1e5b47381833253b1c582ff6ccfc085c60d046758ab4a209cf56e9b89b6759a02dfd5ba5f4513cc1ed0ecee2993d5ec61dcab168c23c6d804521245da5e9e36a0bae5a37600f190e58d9e77ac325e6690c4d72c96cdf1262c4f239e726771582471a18e39e9b2782f182e8cdc840b00083008617ab60af1f389962d21702aec89be00d1963d2c4bbf76976d0f6629cf3e1bccaf6c1d84b18dfab13f040f6f2c260f572e0c82c9b7e08e12ef7246f65389532dedf4b2644af11c4554b85643f98bdc2d4cb21e8651f8da54a11baac5d07f8bbb095fa990dbc4cf3690a19b7654d7ab38c91f94e70c16a19c0caefee38b71ff222539838553fef31da61ea798e30eece26f5151b18f07e92b74588ee64c8d0351003635abc7023f4c8848312d952afc95f25be1599b6359e108ed8fab77fe2209972b2e8a03c1ebd95ead383bbc6e2fe953373b26fe9fb5f672a6a1eebfd53bcf97851bc9871eb3fc5dbc717f5c51eb7fe57bc7d5c515e8c813bcbdc77db55ae6871e4fbf23e5457635f5e0666634f037efca587a35b90804ce96caa1699f65d212816e83f5ab9b6f4d3c4253a34464dc9f70a87f45f160da4359702160d5614e14d37524cdd264c796e51acce74177f22b26641dbf8216bca38088477ec69c0bbe248e82edb1587790e2b8f7af09e24eafe03cce728d62cab95829f193c6cea0cd2c8a43356b42b288cc52bb6c23110e6d068632eb2a815589e8dc29020a07895d2c226739f6384142b0ec3f4fb9e495bb4a41380a42f32af9de0f6a40edded58c2cc76458e51f4058804df6fd60d471ce0addd8e4d8de8d9a608215aa57ee4ce37f32208501ac2fd5ff95bb21c89437ebb5b4b0ca8fab88496a11a8599fd68df54ecbf083d23f548030650d4e3ccadf0680bf5ea129e03697cd4024395677c9105c94fb5cc0c4c94d3c863e630412ad86da0cd00f35b82a588b185e42490fdd854efb62a52fc824de700d9bcc06c95d219426668a49c096077344045bae04586f81724cc2686967915d6b5dad89c36658be54ced5eb40e59683cd456256af7191c9dc45da20ca365e431a21cbfe97056082537f2c8125cc3d1e7a18a902672dc98f2358fd770fa1cf422255ddc0043aeedf008296f87c2a918a2e094e6c54daa83f3a3c1db0e481f44825b0acde26cee587c7bfac5b286b0f17949d49f7ed3730d8a48b281ced857cb08971b0e8566d1088531d31364319119662e6a0e683c4951b8fc4915d44f29314518c2eb55a51b850eb6525e9d5588c5317098fccae9f9819285892a6f6e800f2545c9609387c2037f3078beee3c3d3efdb022555ca38db70d4039de4f7f344b5bd26dad0650eccd43e4c3669e56742efdc5abae52fe428f536179bd04ce8b73175aaaf1eb2857a8a4def81feb338b47758ea48697dde4c7f8a392dd57bdb80afa008c6891465896a9e571ac271bcc43e67b4654e99da7178cbcd926cafe9e7919e8742badbeb0b1e4f77ca2de3bbf47e877eaed2874b3d92653f22e7b2d6d97c57fb88ddd79142ff915347a4cfcab6d64a54760402156a7343c765f76c94e2e41ca4e3f267c3a3e5d0b0152b2f3cb6566c72b524917c38fb6a7b7db1f2751d1b5d5d6e4a5f0ddad3174e8f371b7b6b185ff92a9f555c991b6d16207e17fc4d7f8f582324b888d3c2193e7141d8c5f14b49ba4936ab660ae2ae914df55330de05bd2d2aefa7e3d17d68b379eff16f145af141dc86463ed42590a6cdb96df028262e86a0a3cddc30bb086c3af90bf06c6de5a39387d2b17f03454be6566126470c01e296e930c1e4b12365e67a1817836a1eb469b9869e617cf3da7fff013904c62eb8ab84b61d82bb042e4a28fd54ed5ae8616ce4e3e5521ec2b338d1f7b342859417249724aba3515d1130f2036de9dd9d4b0d0b1736f1ab815eadd616e0bec29eedc8fb2b87b39af91071c9527be1b44a960e5e24f3bba4a53db54b7064c5c09ad015c9288bdc1925e18cb0269fe8b5e35a40af4634d0f2850addcffd85d9928392921918476bf6699f99cde3073a0dee3f7220a78a8134e9cf6601eb61554be12facef2d9979279c1d254cc63b357a5f9c01edb04528ab995fe2abbb1ffc4e364b48895b2a6b0c019a22a8fa7aa7b5732ef01675bd272ddf822d7c67386ba8a2938fd83c18a0b6cb78c6a94401189bf74538b4db0a1536441ac115d6bc0bc613d3ce0ab88e32016895e06067fe50266e890f2a52f1c5dbabd1e23fc41497af5203972560a185431d6c265d7e53c2e532c68b8223c0afef534ff2cd4dfddc72f61664db688473726a872453c942055d4927487c54cd4c8db56c2ca12da371abcdb7d28a37383beca87afe5f39d5318d69fa045009cb6283af801c949ae8d46c4fd07c07cfe5fd8c4a66b3c84ea1881a59bfe5e96c79ceb3fed5dc745dd19cfb0588b7b654783057b3849a98f34713ac6954af1a395a4a024b1e35953c8e176c26082849f37138078fbd58de65ed0e2018b5b0aeb44f722b6371ccbaa2880386091f5442ce66befcd34bd5849f9a400f97e5e52c492102b6259486a79485fc407413b41f4ec7ffa578d0c1ece26921af4f7b8a64ab2dddf5b144e2537304848435cbc9c148cfaa7b3e8a1b2bb12cb8be7efeafd3ce6f0eccd63f79778aa666600fcb60ebc4948b7ecc475c4c0840f455859cf4e924210fde4f5a22ba4a1c0fbe927cb631270a8d2f9943847610baf0e10e0cbea72130466bdd5ed3b4ca25b81ae0d4015b3c39a660753f8cee400d3c36414c031b6bfc42589891a251579f5366dda7205ba879872551f203979cf9be6729b9f9f4a5df5b2cf2bbcd75ccf14a8039a91e4f6a67e280724441d450ea642874e30856b518f130f9273ee3bac556ea4f3944ac0d72cd594c0ffba0404d53c5a78442d1919342b0004c1c762ae99d1d972f6658c00b6be3778bcd2a2c370598bb1408f9953cd72ee21568c3b7e6c17c54d4c1059388ef27070b3936a4c7e52eea3ffa7ac92e734d76a349e6dfb9b48e6fe83728d1c7af5b31e84bb3131a752de726b14f5fb8ffe190fa0d76043b169ed852a6394c35888f20a31b730e30b285721f316327e01e52b64ce02c62ca4ac42cc2dccf8c2945598b985185b80f2b0005eb5a23a7cc6f7a20db5c9324cc06dd21101d1d581a106a02df29f5463a13562e86f8f4d979e5cfff80268f06e5e6c0e79bcf73ebac58574c2a775a94411421d5598a02b94f347a200aba436c8d9338c02dbe4e8909f4a1a0614d0e2a151cb7f55e30fa0a567df97326d8549a96bbaf1fbeb3de9656a787ad5e213baae1215aa710c31052314b7faa8970792387b401740bc8a4ce544e6dffa000884e57a41ab9de3fce64b1b812f079c15d69f8d3ad2eef751b843047c7209986f67f1b97b301ab03bf9ea9ac22b4290aa464a276b22c72d05217b90f4f19d51445310104e110f0abe0f9bfb51ef0f04fbbe42a40607c8bf14236f0ec057a11934576900b0447360672a75838e234b2cbe9e80226283369e699525b848622b09284a91cc85459264d2ebf3c8af529584880377d3072e70248758fd9f28bf3986dadb0cfeae1b2304ae54a78d4ea845d09bb5ce0cd0191ed920bed1890a4384ecf5b6174a113135582329a97bfa21896f3ad6b2ccdce7f9b6c6233fb4f7c9e2cacfd45d6ef4901d21934232ac3caa21581214a9f4c03f1de978f0b6ebb598e9b22eef2bba7e686a0fbce19ac6782951fa70192d448eea3efd374fade1385acbd5d24eed3a1b9a3e08a708014049d0a645a1899a5b0b1ec5cb199936b1742c3e18087143eead0c0692d494408119498e1612293e530957c212b4675850050293a040947209542219a65b627ffe2aa8232a4a3d16820a7e46a1efa4f2d40b5895c96b01ac886f21b27836c4bbdab4e0bb331f068247a22852d7759279eee52c1f9c9d62e01c0d0a5186702b3ae051411b3e38f83584ca805f958684cfcf96e070090368e1fd3b14d0c2bfe809871e5ff192cc09e79276d828871bff73039e201c76e4622fb90d6367c326ba796491281a9b399d48adbe209fa17f99c8b3a736934b6e790810180f7830dd5f67033601fc2d3353eda0538c4b224084aefbecb6a49828b37648696fdaefad56d8bb5b6b884b4ad2833001ae3678b8cbdc411cf56332393e6932502affd23301156a107b8bc1fc2dfab1ae07ae4458e371bed95c1e0974358f6b4b2f43ab1fa3a95349a830b1b2a32abb708e93b368e32f91dea4f15d36e59b9850a819b8f971fdaa4b6787bbdbdd755e9d6ba0c0505c0331633b8068bcc2d55a31d53e2e5138a975b1c12724efe793769ad45708fb6fea319c1756459aa87c68ca3cad84a554ce4ba6455b39a356481115eae3b6db7a246633719c47091614a5cbc25077304b2ba4fb6c45239dcbace83db3d05a2ce8d79fd4508e783cef0db91753801dd465e8e38d1c751c8693863f39e150a6f1db38b4338615847dd21b79558719244bead9179bffcb9a492a9c9ca48fd215bce56157e9a948b556ea9c0774320249b376fba699e95656fc20ce75949354a0e2cc4cfa0675136346a51b5c503b95a0ef5fed2d69a864d237b598113ba847752009dab345c330b2f6c7c3d5ac2d37ccd8e74c74a722cb864775333f23a98a761697916371b26d32451b6c1c3040d94b7a7d75e8d3d0e7f9009a5297eb68665cbb0673c8c600d739bfbe0e2afcfb2ac3abe70fc1b8293543bc318856264fc72d6d1b69b5511f93f3a34a81d3eb59281f8f03d7beae1cf5435669cf60ca8d31a1bdd078cf596d0e5a20a019c22e939c0b4d4772d3203c6a6e6866024a1d55115f8cfba61ac056a5582bef3b57caf437d3b4e83ae7614b27721607bce9ba9db7269c8ea3d03d955c357245c18333c093eb42d4c473182745b3d01908ce82a0f53abfc5c38eef99ed7cb464204d28673999d3ec0897e901fdb25c13d0c214020f9327c4c81b618af19b27759e91a1fc199ed05243125a9720c190e73d8b41c3178992b7562dac61ee378f98b78c503dd48011418c53930c0b14d8a8725edb262142d004b702a1ec1d6f28cf1d9004304c9aeaa171518f88bd49b009a519b742b3fc83d6e66531b5938ff7a9c514375f3f64af9356aa4f4098562fc54bd3d6d699572f294fd84d65164da8210ee5c246bdb1e700394b30564d9af95ee5ddfeeeac59093db5682be63af535dde0c814f703b5b91f97fbe7a6fb3049a4025554d28692e7e49ddc474ae2ac649051f4289ed35f0677eb732096f846775eff093cbb2604378bb5440045d8ab8e6e767abbbd6143f4d93503d3d21d1345c0509d0aa38cd7094861b5d3a41621cccb30cd7d8eeba1e810d3af73efe16a1a2712c0d7051953fe2880665373e30b4495d9496e3ae823c77043cdcfcaca6b28fa084b8ee9631968d7ca5865d50a666b74b3f95e55a3b857600fbd164c474944046ec3baaa0a0fd684d6c5af41e1e2efb4539a029ca9cbdabf1bc679fdb7fe0de1c8b233edb5a00a99122a5a8a7ef4631d1988f709e3cc5f30938098df43e96906b69efa9e76b23b5c00e8ae7e18bda965a40e436ea205274a1db1344d2745f7c6834d27866131eafbd2a3822b3e778447d3bc390014c274fe4bf34ba39b179f841bc6666a3ca55cbe26740ad122584b9bc7629dd4fd058528daad606a249ded69c07bd7967cfaa29d5cd84be040ccfde12dfb5b515c3ea28476d2008794192df62149f363be7c9cc649c28f3f2a43506a58bcb755139fb2c17034682c1633a84b5130d424e8ff48a9069b4d14ff9af6b871ad9db1816d1fd07548d50d20c6a9d9ed3398270da6db6bebb178ef4e4ab4ffb618c21ddb74bfac091bcf0e32aec074851cb4dec726aee4d8d0c8bd46af45e59203e2839b19db73a859c21e9da8c96bd2d409dcd42120646a3819c236e101c6a1806bf653266c7a494557fde8778bf5734edf39e02c8363475c34337b054d573ba32b7395096e2883f2dcffca028d94e9b061b4c8cdd0ebe92f90e9029dbf691caf0df7a3848a1f1de0d3f1f67748ee1e70d63c785b2151817a72de0eba078545f12643a0b6ee649b4b5b2cb2259ee106ff4b3850789ff031cd3d39b6c34d7ba49870633620594d0604f5ac11ec98a6bf1a1474c061459d2d8a1c0138b0e1607274009a980687de497630d781817c76f2111d0650dafd1cd0274de01dd23236aab0980c630af32e289bce91667bb52d4529377b4ce70bf4ff503c53697abb12ead14987640b9ed83ac67a7f1d6a8135dd8232a88edddb46c754aae0fbaecbbcbb13e4e31cad501ecb23c163a0a0d329fabecfc2bc0f522aa857da472289448e5deb4d5ea5d2215d3c34eaff0b323bd5ba4508b368d7200150d297b42a17a379f7839a11bf0c2174f6b4012daa3d1c959b4c4af40a3584be4f1856560965b4308cdbf34f3652dc7da9cc49affe20162d024866245d3230482ec869c0152bf14be96590564fde444269384dd3e769742b2bfce0871e7a9078cf116e82f547c9d80e471f0cba058d1d35f10b13cabf9dc2e2da05ea410a844a8a30a2785829d79789b46b0c313b2946009de7fa401a52af9f80ca54acfbc9992c52be57574dc840742beaef01a43e28499584d60793bd0448f963ccc351301940a77875db8d70456f13b2a6c394f0bd13dfe4bf4c6f4d540bed81b16448849d97e2b349d653a146b1a39f4958d7014af3de491eae861a635e3efa2144328d8bc24b955f67f12f49e7dbd628167a30192b0e4169ef9be46fd507e7c5d54a2e07553debe8a40fe6c17920d06524b3014c9c4b9ccaebe06da7154c0f5ee4249348f1e82ae88c99de22f9f91cf180701d24440764cc0b0a6524cc92c88cf2ccfdebc0f16f84706cafdf2c8f29ac9e7106019274a7df75f0e36ec438ec937ec24ba24471323242e04198995859c0c660677880f50133c1d1fd4fef032371656058dde388921b5beea432c05acc3acc07637d8280861cc06f614e0372bf9ba02e561dee635095d618fc2188b7be396e84cdbbb7604f3d3d31e28ded1daa0ea31458092e7efa65a655f47511ab0cb11cf86b14388f9a5df2cc5a68c48d3c2aa5f008b5a4e1a0d959db094cb4a81fe17805a1048b23bf6ce387ede9595908ec8cc3da0d5e66eeb5b4a656e9e3ce6c0ae8353eaaf17fe1a4ba7cc8cd9cc70fa1bc47dc970816300b03fd9a223ee85fbd392bc61b5dfcd842405ba881a06cedbd58945170c38a2e1692ca42c58a1ca18a4baf0e5518b16e9a20ee18a2e6ba94d9cb1482c6e1cd56ae376f132ae6b06de71f7cfa6b66a6f9c418a5015490390de202a4af0b0ff4b29c0a43aef91ac71ca2864e51f3d3135ad474960d7a7da465cb90012657fec280e6c715bfebe9b6645c82602138417d43de66dd936a8ae7c75aa73d6a1505bb23fdbe608ff7a30d325f3bc1469a1b862045684b22a8c6cd8394f1d661c5175422f5f5ed4ca8dac0aeb5019bb133078182f6787b3dee16e587d855caf87354c9db86b94af6bb70589964ed0f73b17603caf9ffc85376c786038be236b4fa78eb05b4982e0c5baab8fc8fc4667cc82a6af66aa9366f6763c651a92a03f3aafdf5ab412314abad1c193d0a080d35aae84c6dc9fae1f9e81e6dee53306db966cfeda5a70051de863bc51424d326e0cec6685d380d4c145c7a4ce9e4df79bee95df5e95d93c3c186d2accb0eba2c6377b2c6f272198b876c8134a332b224f6d8dcd7f8fe7089dc588617d7a8e989aeda4f764c3e51955123b1d79092e074e3fa22585535b2117cf6b4592f52343ec5a83aec4b2285315d6f25f4a860cc072d1144111085eccb5a2c35ff81ba8dfc25db2a0f1f0e7214c39084c1c120386ea3808eb79c1eb9dad50eaeef029a8275f15a39b2e75721f436b46f19b9dfbfd309ead38e20d6433a580074239004286757f104dd273a34c7b38c3efa3b6d602cd558e7376b4d29149c41cd6ac43446462693062ac9cf0875513e1165d343d39570c00748aca1eb227d64cc2bc4fa66f2d3320f0aa1c03ad3ec04a92dac26092a93987a9c7fffa9d4b7291a1ea9074507450916027e885edbfde815907c45ff7787c41c17421a03edd92b3921b62f939940b47993d52a6609b217352dbeac4b62b3ed7f703bab5346c586551f8909cd7025ddf06f2ef1c9c0e274b70b99f1b1c435d15e9e25f639c9dd25cf8b2065d36c90228e275bbf18336b9f645840503f9ab07f33108a8384c956634bb1b7f7b55a2f27d5a2014bdcb17a2d32f92e0872fb1d65d16c73fbc1b7b0c9934ab012142a22eb3b3c5ba3fe2bdbc7289ddf6216fb3c9b2321c311bd26eb362f7a093755946f60c18e1258d5045df881ca4759257e4291aa83d91939a8f48d22cd0b2b0e833d5bb3ac104370def8233591f123aa8d78e7a19d39acfd7b1dd5c146acdde282b3f4ccfb94ad77cbd881515e49023b0ca88e96f22e0de0899cad7cb156f4fe967a4a413a93ce614a2f10eb1d994440465d6daf33b606848fa26c00b3635663c4c8406daaa2fced03f743c8a75bed5a540d03ddb59ed19c98e5db660b1db7e2c98e6dc2f766b4b0c39f9cd80c402553e97dc926b993099e8a7d9f388c34ba31ef320fb819fee0e9c59a4c17760a5e3bcf32f9fe4ba17a8d6b281d65389f638678598563733e5e3e37fbc1c6bcf6194568912eec6cc1742b86bbf65cc18ddd71f964c80afff75950133643e98edba8120b2b3ec4c3651d66449f6a8609243991ae623421f472ce602d08bf19629a2745b5d6519e3111b6eae08cf3922459e2c399e9059c59adde1b654221fbad98cb4d37fd1b4f14b41622cb0e9221b0fa1ab47a9d5bd917b541873550d6108388ddc32ae1eb29cc29054f17ea02f64944adcca08f8786f5944a0b87d481a4500ca6ce31bcc8eda93e49a58154cef0edd804e9bdc364078fdc979f6024c0d7b24bff0b4d277d42e7b3fc58eee3407645e05f03bf0d8a0c6976c2cde697da17266635a9f02e26de1195019ac46e6e842ee36dace72fa2ad6fedc742804ce31a49be27b59485774dea4545ec9952b25acfbcc0639de79870e3eaf09e466d3f27b38529a52ba50e82e2e09aa8d3739ad842b2df41130a144aeeb5f154d6f1ab045a47171a8bd4ab6c6f91a7cb8ede3dea6d78f01aebae9f183018d712bb794ae7f547da2e668925a8078158eda3c81ef0f217a3babe3a04c9b09571cb88ffd5220680f542e6e3f3318668465782b4ed6bb5e8dee7362f9ebec5617eff56354673bd8a8ced3ae8c176cb88aba2358cdebc77f9a3325db15096561503237c2af7e8685c33d45b02a770819948f1ae96ef4b9c8de97dc62934aecdb19c72731f76a0b0f8aa9f8a8724a77825333bdd3b1cfb43efc88d563b9e0a8b83deb21b20395cc864c497646b94688f1e0b0ae0aeb30c3d9759177ba4fda45e6aa70f0e3f88e2e4317ac9b5c5c5f452ca169f8e62f84365aa11365b62d23500a5deae997859846f96f4e69a589a4326f00684262de720a58560590de704ef30f94411bd3705b88b3acb498e65129ccf89716337c86e72bca42c9d94cf8f19b1a2ea48325a72642a3c6c522f8d6776e132de1565152e9e62a8e2428570b148e636771109d3b207355cc7521fc5865648b34b6385258d1cf06a85f1cb5ee1c1052e5c3920a4c5ab839dbeae3c148b33be4718e715784e71d32ea1cbd5443762fbe2a4f73bc8226743226745c1c339216fd1eaac4e1703231c28606cafccc7dde3e411b8160022dd3ea7ce17d93e0f6cae0f00b054f6ef95d818d854ef9b1f918379a0fcb433c84db05d7b8da8a7425989c277f368e6edc2f40a05a08f0651e105647343f88c0273022ff88c3d8b4a8f7505d6755054132209a4f8fc484a7df9673078b49336a4e4207bc89252ca249bdd8ccc01096fdf76dc7239e96ffbc54917caae9932dcf13a9878867c76f83845131dff88d8b9a486f374516b68a1d60fb2164425766290bf0d1e92bb64ae6ff8b0d55de6b1b4ae29754c194da9db501d6276efb24c557a351d44316089023c3137b9aa91a6a10280dd7a5cee898d4acc1e84bc9c0620e4e52bafa74e657ca5069072f6f7670242b7b1bfbb31b518f26b3755a98abc2245c2f67b0404b3021333a31577e2860e52a49ee62544fcf362178eff9e59c716f70df0cb06f920d16cc3a419401a13931080240c99fa4effadb7ed0540bca24dfbead7880d2433d3145193d200a08d3bf0f6cafb8a29069d35c0e899d554d1132f52eebfe14117cccdfb4ac0de32f9a8e4ae541c29a39f5bb01f383b116c36f6d0a8d3b82c274430266cd294907c4d67e0dc5a581141b5d613763d4bc30a4505223c772006e217d5d06cdf575169ddc9d852887bf68fbc32dd68de0f38009a7b49eac1f3714d9f7cb17bf0576b08c0f6cabae138066f228a8555859cc723474a7c035508e8113f9adbf5e72afef2a43c21673aa5add6932d70ced6a0269abadca8c126587304faab4232a076e284e9c8e5772ab4904ccc4e23cb98f569b1b99a46b88d15f646d4eaac4e83e9066f97c78028590b37a7c5f7f1b883e82abe82e647d757776eade289fa192fc9888ece25c08b0e1615a680550d2fb3d2053c4cf40c2c9735a722996a83a285232260f0c13b38ca6b204a3ea65811ea6a30a1a14f9f0ac8a063b4410a4193abcbc73b6751b7df0134b9bc2bb6df34cda8f6f400037f01ce1a95522028000185bcadc7eb9abdf24ef57621d7203e3fdf5b1ea514054f29390bc17928b02463cda81a04decd03d68385ef202c2fa302e57db1738249e4ca8982a87662764d20dd078dee15beccd3da461c044320d8326357e9d00c7125015619b92071c7fc02cd0bff26e396925226088cd3d2bb9bc532febaed0f1bb5287bcf6063f09b4c5c7670895ab8d83cfbefbfafde9ee02d1697e2af988c853b35f3f2926f002dc162d51103d70d5d4b0c21cbd1b5d55e902f9c893174c9428028dd74648bbf6aba5f106053ed88dad8bc03b5a5723b3df79377d08a7aa138178a6bf546120f63edbd530a38f5dfcc36b74a091ef1e417b2ae0055030d2ee9c298c7f29951cd47529d3a7eab89e29691479efd0408d66580e27e6ad704378720869e271dd101c291d8f5452983d3671511c33865ce2d088561de35fc211ce10c518c8d8fef44de5488f61ef810388a98fab1b500c26158e4c192bf51bab8a9037bf708707b8081e1bfb3791df9a36acda12d63b0cd82996cfd9aff8d143fa220ca8ce99e1c38380ca32b27fce3c6b2e12819245a4220ebfad808cec8c2bab2fe0d4f905c29ceecba0f568d38c2412397747d891bd36323d32d194363b45c7e242451a391283bbd6ff29e8708bfb62e8686b53a939317eea48ab070083fe41116d3da3a4f2ab85e5bcc19dd5ccfa3d481991b058c62a1efb359715360232b4722ed0a82dcb115584a0f65b33f68529b0eb84552d7bbbfd6ab0a3cb8b04e050f69614ea99f4f8081bcf0b8209c8f378be578e6aa6d12004e14840210572cc3a20b8b3eac5f2839208ee3463a078f600c4a68e0605ac629f7dc294810a15f07809393d5aa5b3611c40fa19b2083e7251be32f1540bc261c100946223921ccbedb8d8ee84d5905c35c4b0f78a72e58e76f85d512d1362863d913b92d755b070a5714ec403502db7a4e365339162fd8bea77b78bec84f87eea94b00c91c79e801bdcc2d09145fbbc872ab411fe4a05121875930ff1b133ab05cb3894babb2c862fb089c051df8040091cce5957d278ddfc2c1dd4e8abe2c1c26644841e0b725e0a508b404f30c0a08ab1c2591d2e80d2740a3d5252333ec741b3e8442bfdf5347bcf7bf04ee743bdb205855bec2a782fddefccdb873ed77a9db2f5d35d3dbd5b50274e16b40871a48b0446b1ab40f1342db26a913a7b7c1fcf1218a0e57afdb3b7203b056c6740488671768cd056f0db8ef902d8071fca1a3e0c1a165242b37f2182200876836fb51357773658cef401cb13e155f99399f854aa027090b266b8789cc96a8188434f22b75f63545168b7eaf723ac31abd228d598022160c7d7684a0fe818a04229fd694f7412c67fdc75456ab4b975a68138190182b92e0023fb975641eea3d031d0e702af9d9b73bfc54844860a96647bd5bec8647f84c5789e00d0e002233ed4b36e25bcbdfc2691ebb3c306b1156b1f450e71b252b20c1a009c4a86b86caf781f92983bf958c243dd3896118e6e82fce8d0fa0828de235f97f608927be54317504f005f1268d17c74554898f6cbfbd8c38e9e15934e20e820ee839af1a8ed5ea176b84749040ad01eba430f286cc4aa33ad5e57806bde2427d3a9c845857f755e5d6bd7e21a2cbfe21aa44d51a3a9728f3efdd04558e50f71037f717d1526a34a230a2477dd6a412d718d21dac0451744c359f8cfd108ba220c6bd254908d4844ce271d6677502e5ac3f64382b1a5e9f83322a4b75ee5e7071e8fe8359595a4adaa6d2ccbec1886156435d9cbc985de2757a74acc6245362d3ba76df268816c289559c2a9ec2bc9239b069956ca516274eee6a500c014a69dd0253717ca72c34c12d5c338a19ac027c0a623203aff5c5b6e17e4416353d9acf1667ae70e60905c74fae565a818afc488a0f7691ad7d358d51d1d32d1251c168a1d86872cedc97824ec4ac03f997afeabcfbce6d4f22e1e446e70b3a3a9181818922c5dd055547f1949f3a74498f21bdaeeda97ca5b9fc562ed10fddc7becf889e38ad634db18ffe25a78b9f501033ce5ad772a83d77511c429e2e90bb92f14e36f714922c7442a2145c5330a313bca085098a3f53cc5e0d37bd62d39cb0a90447522c958281526ef05751107c69b413b50ef2aa809acc2d5df188b9b220e332bd89bca23374bd2be2e47fd846db3a91d57e5199419542cede159c88921d19b95395e9d4e524e30ea17622326fd2c26d3180c3e11ed252c885ac180e5444c46048e3748f9cd09873c3f118a3c6f82808b91de440ce7ed329590f6ae53a7e05a94a7ac84589ca8486528843f458bbab02c55ce26df680c09017c9e636c6d998b8bc036a478fc74b15798f22d944305396d518b04f823c5fd49098460e177ec6d2364d8e12a98da1ee2274a8375cfca442208dd7bc03f498650b24115a9b93bfbf16117c4fc28a7c959d44bedaa64e81567572aab8d1d14445a721bbf89ab2f8632310ca430c019035cb88f084bb57c9956705888beda3c8e0484d272e928fc1ecc32276813ab6cbea2c9b692b54ed72e65230ac12b26c94dd98c16773c0cfe5017ca3c8617c0508286f26750a9a721f877d9c40c10104ce5b31e9c762286a8ce54b464c02cebe20284b2b6ef2f4f575b45f445dada4f3bee1bdffb6531d0e2d95795807ef83b837f0badd87f47ac3c0390ee6c2dc14b95bffeb5b598bd66ef707cde3f10740580996d70d9c7e298ab221af073bc76f068b587979cbea65698eb5bb281f4166a187f36a42e43a1c18502035d71f46dd141cef8f7fc98f0c29e6d8e1c8ef9a0c457c001dcf5870801250cbc1246868427b62184f41d943c5aa73b3a23fd85b1dd906abeed877d328530382c7a1b7a314166abdcef8fae427c49db2f7c9da3d2d618c97088d1c9b041dab91ea6a716c8839d751763f54c92ded49d9900e2256247ce64ef92f4263b4ab9171fb353d401fe70a5fb572257fafbdd2fd8457bd913c9f1b199719b7e86070a481aa36bac96bbd85e071a86409f0466a1068668ce24d7c3843311cb51f02d0f5d3316377a4504d03a3fc1d54576243e96ec5b697873c93e2ae21f3c7c24bdd56bd56497ff2300fabe5b6b306a60348b416e2e40b78796c32dec83b98d63c71e73e0e019ecd24bcca1436469b9c9a8e8a38c008f9aab2221b3e88a0d2f8759223c6383c0d08da422b93eb11f710150f74ea708f66a6abe410801bf4f9fff983e540f8900900eba28d6e39fde3b756c05d7eb850ea241e57ad0ab23aa2fa50f727fecf1bb50b690a6203425ecd877fcd2a56c53a6a941e4a2b2d5d482bafd52e5dbed206a0d5267eb848ff0ebaa701a6d68633d9cd08774794378a24fad97a0b8b09e72edc41852606492facb01da6afc3656f766ac15321f707e2078338417784ea502690be82001380157fa99367eb03258f1a83f35a49db23430333a99c0bccaa1e838b1394daba14a5b34943f715c6c76580f14b1125cf0208cb77574a089976d511821ab4dc14f1c7cb26f736d3a8ebeeb2152861bd2db9b0467662f7203d592112c88b390fce912536ed3859252532f38fd8266aedc855b98804c2ba57fbdab772370d3233f2a2b3c9b6b4c204a338cabfa84bce5eb0c574151133fe0322ca8871e0ac2694d9a6f5e88a0db4a4ef40325ab492c77afed0d1720c35edff5b1ab49ec3301531cee024e0d7058c8c68ef05e4033b80b49bee4f27ed1a3706af7de0598fd9c02edbdbd4b925e65a2527dd0a7424f2bef7fd08f77438a68461b5eb619ad0d558d23020f655f3cf2b2f50eb7d05c259880c01eab85e177255da3cbb16376f48573f451e4af5d7c22c79a5278262ac1d55235f0519ab7790064acb938bb666a8cc4a3e245cca6402c72edcb240cc426391e1919dfcac9127b82172c648088d3ac678c478c8d28e046d6dca526b95b34809213ef20004fc8e3252184d71b84852ca5b6e8acfad62de1f41938e922a9d4452078ee8bca13a0755e620d116cf7d1ecfe1cc05877b0cd7030264f258c2e9803d6d24e9cf620c5cca43823afa2b3bc9a6652fec6f392c852e9b2024a98408a8638484f95a6312a6a95e33659f819d73e2f7b5a6555765227e1b2d4c8858fc71abc494b538df814342a6bd18273c8b9f92de7c594b9be5f609e3e2e5949f09a40b20b3d4bc0cbf09ee1267cdbc421fb1b6abaa572d3ffa54d19c9cef72faa2ce7100c538482c5f36d6dbca11e6146a5a610a48b823bc0a8b3cbd5a5ed832e1a67343c9b356c19ce159c5fa73233e56407dc4920d977255b364cc28db02b8de194eb2f1ea6bba68282b6be4215947500be4df37e5ef157a2db1b4e119c80245b0f241f19b475261a6ab18ec510184c06a93dcaee125edd9eabb51c1e31a1e50f1bfe1825ddc27ac9f3ed0297948cc1b8ba31b8660f437d93aa2fad99263546e2f259535b88f4d9c03c423da6a0ce2e7d2af0bded8c89d2e183981469a573de031531a704d5066a3285dee3366a1a5810eb48ad5d5e10c5eef56508301fe79055e038351c8235f9059c0e3eea1bd42524425b77800b45f0c3e3ed3a3f277770bce8a8a0ca3ac513830b8ee6e307e091064554f8f18937d8fc665c1552a17f0eceb0803531191b2996bbbaae509bfaa46ae97d58c18bb3a1b84a7394a41a01e1ac2b9b5d0588ed4e5c606c336c467ce2bc08bd8d509bc622b4ef78c00d80860a6c606f16237ec04850fb2161ae1427692928db52ddc7262f3368e18568e7b801c521baf01f3d90a5a422bc9b18aac6529484854167c007ecda89a105ed858e19ee8e7240c8b0eee39fae23e9a1d1a1313fb95622ba9ac3619bcd0c4973e7b8157448a171049a5f878c1f9632398044a19a293cf538759db9338379dd5952c1c922363bc9bcbf3f63bc2a9fccaa342a3af70937310beab9e270b6374b947f1749102e12a105965f0ffffe400346d60413dda5dd78a7115c0b844168941ca1c0531710c6a1883c408b36ff577835a087a4122bd9cac637af98f6c32ac3109a9df1045428425c92a540109bf385dae5cf04730f9c9dd4a70c8ca06c580c435ff631c888c036cd493e18fa1b630e6c2aaf3e8046cdb5a4b1a87433dfb15be0375fbcf23acc8fa0608b8e6dff04e6989e60df0126050753503726d85b96d16d87050cbbd011b2037075f44555731e600abfec822bc282a016079da030bceca71f588e3fabdff7cdb02a0907c3136d8a79823d70a297d9752228e51a6de729123425cf746774cb4684484f0ea21033b4c596cc855d57d655abcfef8c1d9f9588f23cd48c7c0829f0dbb6bdddde3af6f3c8eacb425f27c1b1be4cd1ebff49e91007ffa41813eb327ad9456d980af72a4f5b2f2de7c79268f83b49dc6a478dc707e6b4570c075e862bec4fbd99a7626904a46e9556ccde41fe9d9721069bd21311504617b2d31b14fe7a521b961846923c2807900f2fa93c2a60ff6c41375836beac4ed6a56aac91a96e4a3c929237016636371b1862b41e220993aa1c047423f049ad73ce0dcc581101bddf9344367091270846475579174e9120020934b016b99eed7b690bb313e6676140204711476f178d57d6ea8b428f80940e610e6a9252a48f45ba1310318ce4007feab53af2489aae76bc5f027d3e53d19d95a344726e5f82a6db3f3a9b1584ccded45b36d41aad9e1b4dd57e504b11c1b55c7077a715e9a9b0b8eb321c709227da898bd7d8b207cf012fd20e7dfe452a581536e1bddd3fd21719b1aaca3ac5acdd55902d79244205517eab0e7043954993ac3164161e7e9348193724d5b9ff0f9f136bc15b80113e52aea20af1fccbbe310e9b64d207927c14e24e80a19de8abd51bb05ac64163f922b1e760667dd424e75f43c37ffb715f3fed33d771bee00ae99ac7baf7e18a281197cda00d0ab04fb91458da47b11c1e5f2a9b95341f25bfedd8fa5d838443920052ef7ef92e2fdfdb0c41d7b3d65984c25731cdc2dbfc825c882a1208b65bc54d0ae2413c3626cc294b0589b38a559ec269e9226bed24cb4924d30a583c940b3e16c34d69154e65010bd42b0bab5ee9a9bcc812f9e9470f43f260cfe73a5e59d1a5a5cad95dfac83d57abb0cb55228e1e029297659e7f5ff24bdecd812fe89402854c05caa2912da0d9204ce6f0b3133ad5eb82777576e904a41d42e0dd2ef344562239cf8e1b6f36a3ea4c6df0fdf85c979543bd5a2bfc9192e1c7a32d0e64e956dc4402d7f2ef2edfcd170bc2b54fd004aa75ab774b52653b10b946a7b5bdd006ff395d07d78cb5eb41c29e158302bd81c0a9e79119010cde9d7837745f6aff9a150dc5ccc3422897398d0d31588a255a1327e655aebebbf44c452444e89ff9e648834c36f75ad486d4068efbe0241ca7d1eb8a91a6ce89f40cee7209db3d4f792fd089b9706e751012fdeaadb22a41bc99a440028af10f7e7a44be8d41e38d610186c4a8ddee8f70cc51062ec7c7d37183336b0ed86f02d67dfc8d392b01a652bd8fc60174fb064d5e592d01009a1217d80311c5028a7a7efb474ef2afdf499239373e2ad85827634d822c3135cb9a2223f244633f4c7a9797e9bfd75f07c64c076b67ab59b3c6ff1ee601b4d3fa7bb4129f9ff1108712afc1356e403a55b0aa56e0c3c63c3346c37ac67526c69b5a10ac6e782268bd52ab7798f24d94a1e4b2648ab7d00a7ceba0dd583987b8ed52f2c3ec4dbfd225af61231b309952cefbe16eb9bb1f5fa7ce969d1c3722cd0acad2a1e286e718cd3079bf846f921eea471152a31abb08a184ae5e18b4528e77bb6980bfee32d28dc35434601ebc1b610536e8f76117200cae327ccf177948f985d3e2711840676207433128522102e98e7f9a9bc1776f0d4a5dc973cb900e090baf1219a7646ec0dd37ef2e4766b7245d4a10156e62b04dbe97e309e1c0ea813049d359924e2bc2af7bcb7fad96cd79faa33c0d1990ad4fcdb67d3188e86ea32cb475eae66b3c710744d1e516b88e11540ac8ab30169457753e4d6161adee6029f65567bc90e2ebccebd3724da36e8c4c5f4111660d2ebb103586953d78d8a21be466f7fcdf46ff3e0b2e5bddfc34bb78f3ca5a7942bf792107161eb2470c0f614047c518449816e277df33445b0b397ec6ae07ac10413fad6f9f3c1ab6be1e5439f611e532f8bf6328649a268e950b36898596d93f770a13fa65f84514539a75a970c4267f5c7518ac57a9537cf203da00dcb25d4d10bb335ea3890b1973a69bfa9ab28b5a43b300c603ee96824dd1068103a168ad1ef8dc44de5cc85ae8907b6c0a96f02edfec5b9ad4f03ad6cd58b2fe4571c454766745e72c9e1359be86e596403bd63e38863886e03c750c31f4398ae3a85930df9f2ee82e64bf024bbe842adab8387fccf9bd4be1de680f18096c69703de1b5f4b0eea54bef90fa128017534eafef89481317920df58e281fc4101f140bebceba17187a14c2bc1175c200af2418c1e05f9c2fe28c80f182f7237eac51d4823e9ad06b299413e0dc820dfcc510fe1df2680cd243c6462da1a782768cd7cd541d545b9340b69a6cf86a97a7d8288673d6b6248b6a485702c3dd01a35099723b4cdd8588887a3395f183de3cb2ea4d658cf9c3501d6faf8142b885bcb098390f610b3dfc7194b9facd97400b06b78c347d8f80ec256ca28a19a1986bcb94916e2117894c077adfb242267bc7b412101dfb4ae945cc8a0566adf5ff4319f15bd4508c9bb16c79c9e1f94defafa158bd2f855010b6cb7c3084a4babfd51d0078096f06018e7a8e8e03778a70380c99a0a1903b65d1bdfb03f987ba659810863b1d0945c5903ceff4ba11b5277bb3995dde8c8040e9951fb199c815c749ecba769df5b48a836443a5a6ad63cd1e95ac0241144385c421590945a6c14210ece5103b2349deb1ab56efa4b883a40546a0624a1580d2adf873f0bf7cc095598da0f55716e8e2fdf5fa5fa34ec6bf63e25b0afd9760d93ba6caeedc09c5c1957b2605fc3d3c9ea0737ded770b9197ac43483c21fa880040fd2bcafb9da81119dd3140bcd32b7a426e96b2ea7a451f09f1f9a6c70f754cb673aaae81d76704be625ea46bcaf219587f0be666f528ff7355b6e6e08a8c07262a63251c1121ce0760206b8bcaf895780a2fb8e93f5e6fd1a25c3a1c0a23dbd9fe84db132d991bec638dcc1fb1abd2fec0ee6afe801d80add7c600349fed88ee8283347e3d1586688ba0c2a74c65bd7ce429edb313f0f4029d56be052a992cb19a4785f73f573fbff19e12ca293b0a9990ae81f1cb16e0428a1e120a98070c492d5cc77bfa8521d6121c288f5e90a1e16e035e99732a87d5eb9fa936270691f458f13800e739226007a052539a0f2b015747dfbcd319a0d7dfaa4630551e153a09f5fd23f2a75a32c73e65fddd784be80dac2af02ee1c8f49fd26865fdf0c0c7cf9504d79ab52ab205a7efaeb91ffccd2d31854edc0753b360f3962a51f98f38e68d98881bbca7e935f0450b28f2496de588851c5631b826a1054d312802ec5caaf1c6176343c9127f9029dde67a9bf89269a6786b58f7c408dcfeeddee7bdbf8a08005c353f980b452b117ad627fa9aab25607660e304b676f1c975d63789857194bf2d49b60d4a598ff77140f23001da7fcf84ef451d1093f549a9d0a53dfb868d253af16d730334f34ed08fde5e14b83328974f221e27a4d176a1572c96842e833a7e931d3c8e61d2f1494a6e6683c0e1f1b8c40530923da24c7ba33c731a7e033cefecb3f921bccdac1359d07a69898c09313541e748ac236b75c398199ec484b6c316d8ec4a73a38606031a964fbf27c32c201c0b4f8e052a642c306cc184d2a8fe00634daf9290ab08eec6d2e10da696a5fdc1246109e8f0bbf2bd87533286c6676b8f4c154b8443e6a9082ecaa2aac6df78c308436bed7a33b06c967646616a3d2f6a16d1d4970ed92149f711d1fb7383ab1294f650903b9f5f459e7bea9769120ef1e91fd8f4d31f3f77ed0506ab67d44986e5f0dc621e1e883f1bd1391309a8e3275da33185f7737fbde361d1a61dd04c9896b361dc295d94fec348461da7109c8d4453dd02b7df558811a0dc796fbec129d35ad7c1009f570f13cd3134d082170f8611c44ce510225e16a3ed7235d48d0f3654b91d7995d143437ace8521873af573e604cae31eb43241b87bd520a7b251c92829d46d8682c367a2a0961c47e4e719b7e3d50ce46db08849ec711a208c324099e7353050ad54be9e0ac78cb2fe0d9ee0e98cf5970975101cf13984c15ab37decb55cbd349a802c3f2b295fc199cb28e6f16c4a268e71e2f3d6cca0779643f8ebc65308d1800c8a4baa35b9a1eddf455dd630ff64afa229cba83d091a1eba3b62c0dd0b52e0dd09416d70755e78b863897f1b28aea356d403ab9768b759aeb7814c3e9d17ab01be2f7976f04a3a2d87fc24b925b901b093936379da51a2846037a6e5b6fd164ed7111fda5b82960348692d856fe84091e97a8c52aa11244946b81943601f5f20048001a3c8da82c623166a9d1fc5ee56683e1f525601bb00ba2206c04a3030da206e3f59fa0058fa8d37a54a3803554f1ccc650dccc7e0501d72d107ade7f83c636a75bb8f7a7fb1a9d35bd05e276401e90a516dbfede62caac9f74c2542481ea69cbbdf1608051f657ecf312bffa16c0c0f59d49fa4633a2889dfb2169fefa574e3444ac2692c5588324683548be2eeaa37d72553ff1c6c962b34d4b470c7e08652288c6e25bf93e62149714846d690941419ad236722d91304f3bbba407ee2458bd8e032dccd652a752da33f0cd57650cb3f89d267fec639882098c9ec470309406332f360ccc220329510e7a30df3ad52e5d156b86e2f65ba1f371654d6235bfad6ffae1ca01361c119fceb75ead402548cd45934812c6c7ce81b37f12337cd4284ebe92878df96269e6a371780bfc33b196fa4c353579e8e82573c8d3f907639593cfbc0c321e5ac40c57a9447d0a5bf851663fb3b38f8bf23704fd3499ce41610c7d6957071f223d0d5b34b5726f106df340085dc2fd0b1d499318451fedbd4636cdb721275c7a9e26db6e3342f91b6ab28186040317f835782b035cead3c3afade2a6b0a9a7ade9a9760be0001a66b45d2c412aec768f84d37b2013000534ca0dfee1f4905513a9da2b395c9a22da85d68b05de232a60ead50b9ef621713783b15ea983a11ee22ea527ccc3e633e5ace831c7f480cdf5a49cf7d5c99fa94ac1a8833ed8cd07ea80a2b720aeb10b22c939a09eca1f1ea8ffb66c8bb196d58c734ec3ff5491e9ec29a2b10a1cd62da432f2e6799b3632e299ae7e5a29dedceaf291dc7dd50b7db755035232f4c740d9dfda0232133f18ec2107d28685d147d03eb4137f0dc7ec2e4006047bce9224c329f9b3d14b3cab8eae890f2df3e87a99d0702012106914303473f08f20ff3f862ade431f69059dc1d5398503071578cf67fc393e1a194cbe9d72d03de98144af32959e52ea2f34104295cd4d729c3ed5b088981e470d3383891e4fbccde1f0684bf75e7ea580ec01f74320f5300f7052814b7bbedcaa45193b9890a82503a78be82303b989d090511df17056d9106d3d9d097c2121ca4e4a3270939f88bc6b2f99f6c48d1e4631d04a54e19bd6019fb773244022448eb9c6dcc78017e1f7067230e82f87d59c26e298ea33fb92813dd9701b850eb15838ba9113f752a1c4d19b2bc8f4d460f5cddcbf8f0de2fbb84219ad18dfbd9a97353c28ca9ea8872f0d97939cee51dd562e08af191b73ff720bf969b33c25d5c03209beb8aff3a4556a3168d43dcf9234b423d24903a53a2bc2d5741d4fba084456986144a139454ee6dd252693fa080c6e8a636106e90ae75d5c81b0d89c3783359f9c7d6935a77089d2e6682199c4fcd69ba2a842173227d0c364cdca4525dee08f54e676eedd001ba160dac346f311d08d46e64295e8ec2ab4e1e19eb32517be777c46f5f9c0f80a4776fc03d22fe09527fd755603a317696bd087eb9861ccd46cf855172ff01ef66904025179cbab383e9636356441809ad9b8910a010382714a296669ec1834964282a170c00245e0ccc950519f7a5817e35b8e823c2a3b3c085a541c11db1efc4cdb1a87be4e3276eb954be534eed0513b18637a8dcac358091b44982a867d17621ee0de904707ca462050b167aa35318f16ec8aef1ecf55b1f7dd0482956be7ff5d83f3d2d1706989857851a64840801be81358a5d5bcf0750423188ef0eaf6851a379a7fc725bcec408e702541dd1bf8df6aaddee784cde5a4b2e50c528dfef48e832984ed2ded88ff8a0f47dacfddbcaa3981c976a2082d673c1e24cfb11d170dfa37e8972ccbb2e51c6f57d34e9f79ac841fe7be11fcd2e974849c11ba28f0704ca8350217bd654ed70162c7dbf6246f1f4929d306c3a8812d1e8af30001299d7e7a03cf860a018bca5bb048e2acecb21c93536ab383b4033d45912a88dd78da2e85b5615969e388e1f007233fc058532f6ac396983b439b3cebc788d08da53dfa9babd8dae6294166b54bb21a7620aa3b457cf5dea2f56ef217afd0f32fb8aedd2903268c4370ecd23ada131439d0b7271c2385ac7f10864e440956b8cb6de00bee6150fb16d2495abaa61aafab3e215c9b6055d424663d018a11a870691ec5f352305b832ef8018fd89c19bb75b386eed17d00ed0f4c0d845a36995a0876d4645422121506a5ba9513f7ba86c6e6ec5ccd0eb59133959bde1c8a963b27122780d9650775614b5a683959d332d67340472d2deabce459170c96accca27d133c6032e6a8f83ebe320119d77a31db32be0ba2793d01a5af67a6964086e729949587e506823c0c5a8cf29754b638fa921f80c0f11f07fe47e932892933e9305508be839bb1617337d1146c0acaa2e0045629afa2f41c6171fd505dd955317ef94a0cfbcf61ad00ccddbedf40f5fcb22226db737455f951f352ba49d950020368813327d6f0c7c0116f02c475cf29fe747c2ce223ca013ef06bcb8e0446cc0eac3c7d0ea6d065c2f77486968f56cf7b778d5216b430ac8d07454a82ca163256bb22ed0a4ff9d07af22eeb5a50968690c7a1652453a734b489e940763f256a42828dff22fdc1e7142df0933a1510d4a793bc69ed1b860fa9b2dee984823a2986dd872eda8cf9b2e9d91cfa5df73ae29947da43ee0fa1a0f890c4c49148c9d780a0b2bffd1dd8569c230716ebad859ca4c081502df6cd8770c10a5c759d6fad879941eada6d2a476f83158bb8ef22a5440ab6664929b9b35f1f8e45e82e4b73e3b2e7f7fb90864c7091fcc749bbb1c240349d1a084d70dd148b3503a40ba7812b1f3481bfe7f03c39fc4781c918d96fd25de21b95f84e0e070540f845d9410f9fd2441177e3639125ec1bffe226e4866895bf2a8d2e6d7d8dddadf5e849758f35588acc36d78e51e2f3e5e63760b439b35bc5b69095647c71dca72eab700b7a430ca2009f31d0b7f4bc04e165529fb9c5351adafd9e19f417aab82ab31a33615aaef5e0192005c65fb4d7a8c31d4d4510ac6da922b394697c5da025ef4cd2a3d312904ef87f63fba6d192f29888425a3d7e0789e3eb1eb8a5a79dcffdc177c3d351c37310cf41186bc2fee49e9f2b34651264a3a78eaa50c66b320f8ffcc644b51bcb00da4b895239697929cb6f954e785265ab0b66e2d7dd28c29486227891a710ea475c893dffe0cebcdb088fddc6433e95d94ae0f22b99cd0d3350f341d580cd2d6f60f6370af8baec4d6c2c3134698e06ea06610a3cacb32ff57c4cb55e964b01ebb4f5b2093f1996aac84f645a3af2c0fa59fd9444b77d599d97ee32e387c802dc53279516e5c557658615fa2f9e18075c1de7577376c818425571c101c3cdbd3ee198da84e5ec183a0792c5d640e8d0fa62692d6260316263b05fac660d0a02ebd604b7de9a60d65d12dcfa652218fbf603d47df071eec284e00c5ca696683c566a7e4e0d8f07cd6f879a36be73c73e36f777b9612b4ee4d0aa53b4b90cef05727f29402c2c42ba56cae2aa7a00a81a24d816a9af0f4b03b99571fedf9f93eb578834fe48bd378a3d123a8c2861249cb0ee757ef381abf645fa5467044dd1b30f3f0b92d95d54627615df80175b3c82a80f487616e20529943ea0907d021b0505a6c837a10f99f283f5ac133c4b6f0f40610802a216924bc36f767fd34279ae28a71bd9cd4f67ab6f44ca18459e6d3b422ffb995d75e515be19a766c9f4c8707b4211ca1501bc958d0255de82b9a5a4544727f30509bd22ce70f3578e0c1292fe8fec8894934c17bb9dc5d15f77a28d175fa7bd0d4b342c2f0ab4c98be30d4dd5708a154ca047457d15c4d48c7fd2ee103b86b1df2264c341a48681aa330ffaf4f5cff6407f32cb1f0355af1aecb3017f1004848bf2df4724bde916b462ebe2cb85014fdb2623fad747ca8d98d7784b8f6779e1424907cd1eff607e71d23b6d15f382634c66869581543c02d85a051fe1af9092e767e7e0a64590abe20cf408aae3c0886c471623f875dce8f0ac464887559512c33a875252a7fef85e19b1fb9dfd47121de033886806179066debfa323373c7fef87a2e546e00757ce0a63fe4dd2fa5822c7523e49e61113d4d4adeb05b507171a1924d19d6c5d65a69c6541bdcac7a0f31448dffc03894ffc9399ccc3a1a15785bd1070a31b6ed0fb554eaa0f2cb19fc4295c8304ee54842a0e571040ea6ad201444ee2f0c8a2d8df610d4033f0294203f706008141a70e761a89f2f4031bd8d802b94ca249f5cdff6bee28a6ea3fcbdaa9ae054e6f90a013d9cf680299b24041d68beaa5caf57f3e5a5bb3841042b69432440eff0d870d457caf7c99be447c87f80af1b5f20de20bc4b7ca77e9fbc3d7872f95ef946f0f5f1ebe52be4adf1dbe3a7ca37ca17c73f8e2f07df24dfadef0b5e1ebe49bfbd6f0a5e1fbc96519e97bf4fdac628b66f87e8ed92226dff7eb4808ce84e678cd1be933d01cbf71bec18f688e6d70567346a2396ee3ecc6b909cd311be7aa330d34c76b9c6b70ae81e6588d739a738ee6188d731a672734c7679ca9ce36d01c977136e37c03cd310dce68ce4934c7639cc9383fa13916e3bc3be340731cc67906e71c688e65703e738642730cc63906e72834c75f9ca7ce3ad01c7b7186c179079ae3179ccd9c95688ecb9c5d70964273dcc559eacc03cd3117e7169c7ba03966c199cc790acdf198f316672a34c75a9ca3ce3ed01c67715ec1f9079ae32bce589c97688eab385b71ae42732ce60c750682e638cc5905e720688e53700673b64273ece5fce52c04cd311567dd79089ae329ce28381341737c82b31467269ae328ce26385fa1392ec1f9e95c04cdf19573116723688e8938339d8fa03916e23cc419099ae320ce56ce49d01c57390371c64273fcc379e99c85e698cad987b3169ae31ece53ce24a0399672e6e1ac04cdf10e67a5f3169ae328671dce4d34c7399ca19c97a0397e72c6e1cc04cdf10de7a4b313cdb193b30d672e34c7359c73e726688e9b9c69383b41734767a473179a63f21964f8be928821d0dd2111bc08dd1d02c16f747728860f9c88ee0ec1e081175c68e141e8ee500738b00116ee83ee0ead701034a0420630f019dd1dba8005ee01dd1daac03ba0bb431498c077d0dda114ce01dd1d92400420f0d3dda1075c07dd1d7240031e447787187020ba3b84c202962840c95002de4377874eb809434910708021030c15a004020c00c95b747788848f70440401e086ea1be93baff96e009edf00d584671b846e88e736c4aad5998d15d780755e83c53aa7699dd568711aae331a2ed799ea753ee3f53a9b61732ec3c6e68ce6e64c839b9b3319e3798c713cef70ce62e0e09c6790730e2327e77c46e72c031d9d730c76ce60ecec9ca778ce5ff0f09c61d073f6a287cdf89c5fe0e3737601ec5c06063b4bfd9cbbf8f939b700c7990b1c38ce64626716c462e72d80ce638080ce5141672d8282ce2bc871ce22478e33163ace57e8d071b6e2e72afe33143d8ba1f4ac02f21c8624cf603838a780030ece5f769cbdecd871d6099da910123aa3a083f3141d747096c283f3093cf0e06c02d9390a99ecfc343b9760363b17c1e37c85078f33d30767223ef8e03c448fb3103d7a9cad0c9d83181a3a0301c2b90a08209c977c9c7ff0e1e3ec03ed4c85463b4ff971eee1c78f330f40ce528000392b0539ef1024c8590721e72842849ca10c39e73064c81987daf949ad764eb29d6fb0d9ce36109d9d10119d7344ce35102172a681ee0eb99d9bdc6e67a4223f2a52e433d0dd21219c09056b085e0d614c1562781615dfba0d75fd86be3e529be3d09be7d0f13a14e73b34e73c54e73d74e73e94e730daf31fea731c14f618fd3910c5f1201a7b0e0a741d34e8a7398ea3465e69004ea98e93f4e780d2efa0e4852807ef80eeb80754e832dac167d483f3a0b27f4067ef41797c887e7010688ffba043a75110fe83fa38104a7b10fae34228900fa1415ea3426ea3434e446b27426dbf51a217a1441e02bd5d00b45e048afb112a808f40453809f4c891d0113e004ac2094091bc043a80178012e006a025fc00b400470035c093d003dc048a809f40933c01d4842ba1275c0134015f42957c01540147812e3903e802de008ac21d4019f007d0061c02d4018f007dc0254021f01468043e012a815380a6f00ad009dc029402bf00adc031402df00cd00b5c058a816b8066e02555e12b500d9c055a7e0374857380b2f00ed00dbc05ca81bb403bf017680bf70075e130d017fe01ea81c740613808e8072e021ac38be8b8437d005018143da4cf4ff410115019eed119b543524fd0c501806e2da25c8dbae06248f7907e08b45c15a1254e0848d615a30c375afe10a12525a2e5cc46cb1f355a121942cbf52284965b45105aee1820b4dc32b514cb058346cb1dc3072d170d1068b96d0cd1929bf4a0253ff980962c85072db9ca8c967c45464bd6e2012d994b07b4e4288468c95e6a297215b514794c2d452e534bb164304e4b1e43072d198d1cb4e4368268d94d8068d94f62b46c293868d9557e68d95760b46c2d3eb46c2e3d657ba9a55876153ab4ec31656a29960d462dc5b2d1a8a558761bb514cbd9a49662399fd4522ca7943aabd4522ce795726ae112452dc5e9650190f49b278af80900bc3fee2d8457979737385bc45d789c78e9534bb1889d086ae2a50eba45dc841097971eccb688b90c39bdf4f1638bd86908132f6d44b6889900c0122f0350b7889708d3f472c5d4522ce2a62cb6bc5c2d4cd822dec285122fb70b066c112be105095eee1713d8222641185a5eae181ad822d6524696977b462dc522ceb2069697cb4608b688b1bc91c4cb5dd3648b38092748bce41b9e6c112311e58897bc83942de223a818f1927fa8b2456c841045bc6422ae6c111781c495978c45cb16f19526a697cc04972d62a6278878c92588628b9888298678c95478d9221e228c102f594c155bc4426461e5256b31668bd80a1741bce42eca6c1107e105102ff90b30b6888108a3ca4b16638c2de22a652cbde433d0d8225e5ae38797cc06b7b145fcc31b3ebce4354db6887d7042e565dff0648b984a94292f7b07295bc453a8f4f0b27fa8b245dc83103cbc6c228a980724a4bc6c2c5ab688a53429bd6c26b86c112b3db1c3cb2e41145bc43b4ca1c3cba6c2cb16b10e61a2bc6c31556c1147c902cacbd662cc1631142e7278d95d94d922cec10b1c5ef617606c11e310c693972dc6185bc44fca487ad9671471d21a37bc6c36ba8d2de21bdeb0e165af69b2456c8313272fe70d4fb6889d44c9bd9c3b48d922ce51a9e1e5fca1ca16710d42d0f0721271658b9806249abc9c58b46c11376962a49793092e5bc4484f1cbd9c2588628b8ea698e1e5a4c2cb16cd1086c9cb29a68a2d629285d1cba9c5982d327a73318297b38b325b3482173908c872bc3d06b28411f907c8f24487812c65b67b802c69b5bf40964443ee0259ae4ec85b20cb850af20e90e546013907c872a57e7c0364b953b4b34096bbf3f115c872a9407849965b35740d902523f5b80a64c9491f3c0364c94a3c8e01b2e4a5d92f4096cc24bb05c892b378f00a90253b75700a90253f097d0264c9ba1d4f812c198a834b802c398a7c04c892a5e82140963cf53f802c79a7e30e204ba6caf106902557059d0164d9484047812c3b29f60590652be1f812b2eca59f2b802c9b09762564d9597c9e00b26ca79e9f4096fdc47313c8b2753b4f42960da57304906547e5fc0064d9520620cb9e1a5f00b2ecddcd4b20cba622005976552dc50190e544aaa588842c67522d4512c8722a8d409673a996e2915214812c054096d309578a952ca7ce08594ea80090e58caa5c8b48008450e44684ee0e11d9e8ee506d88902040e8eed00fba3b44a3bb433e280848953fd4e3031eb32c952ff3e0a9f23bd055bed08ea8cae740aaf2497aaacad7912328a9f281942a3f86e307e6f354f93dbacae781aafc9da8cad7c9c1d955fe4855f9375d55f9362f576ba9f2594c95bf129de653655d657ee2e6b5eae2c383e3848ea09f263c10a25c7c0ccd9c6c437e301100001059424c182f4d5a6451c5962eb818a3c4175e942181186180a1e58c32c6c8c2c61a6860d935fbc6b691c40d4e9a20b143942747fc40458a11440851a5082c485cb9c2449316a6123cc185082aa68862083161bc08a145165558e9828b31417ce1451920c408038c2a679431c6121b6ba0f103afe137b80d1f6e70d284ca0e519e4cf9818a941e8810a20a0f5890b8228589262d4a257882cb0e544c11850e62c27889a245165540e9828b31397ce145191cc408038c2767943146121b6ba07143afe937ba0d1b6e70d2c4c90e519ee47ea022a5062284a842031624ae3461a2494b099e38a2628a282a7f063161bc543e132db2a8a2f28dbae0624ce58fe08b20e5f4624839cbd4291b8e42d0473b66d88fb86a27f8cbcca5d500a8ad656666b652bb6b734e4de6335abba30475b5b3d43035d852374c1a3375a7ea8659e38aea29ed8dc1d8213e4fe5b4313e4d5bbf218512d28d0ab6b0420909d73a24249cf89db63986cc1660702c1d9e70c4f9bcef2bcd1b6c6081846b2a2424dc246fce4761320eb214ff43c2c812e643f690a5ec63aafc1db2a4f197a5b212140e597e4923597e4a959bd0e16ec8f29bda55ce89fae10c128eef2d4df0a96b4cd3b6381bb25ca817592ab9c8f2736a91e5079504327d542cb2fca42a7f5122597ebaa5a7ca1f5265afaab29412597a53200e065bd05a3104a737655ccb9d1a72c19540350cc38b2118144cd5f04c0d411136069432a09075bd9461a5def40cedda59df44238d74b882915fcee07dced0a56dcaa3ea3403528541ecdd090dc445783a1963a9ae9730b0a83dea7ad9a1a9e2b4fdec6c5ef659655deb3ac796f5e8dace105cab188c403d9b7fc172a8183d10377766ea7a09c34c0552d78b1867aa6cb6b7ee061ccbf7ddd947b6dad52d6b594e0de3eb8659419aa8a982d6ee083faf57202806525d2f3358aa1fd4f512069a2a760d0beb737aafcff5896751fc8ebcdffa58e2f708002b28f6effdfbcaf57dc5df57c11004c1af7ab939d39ac9b4a2a2c42adc93c53e3c28d8b55aedccc3a95e072a7f7e45d70381f845f5d821eea8a5ac02892e18ec9f4d7c603826812b9e42356d30182bb12c9cdee776ed2343f19b3bd1b5f2668f2523106c7566aa944ded107f99b6d5e81d792d9719d90ea191c9643debf770b1c4a6a262e4af5a62d8023fafd56af1b071cd8ec289416ba7cd6b91650b9f78ef4e4270d7c92e59b61092bbb39561fc77271ef9817c27dec33bf93e64486954cbfd06d91fe511b9fb638ffb4ae05a8258dbe8bb3867fc914d7d8fdcd91b839b39d5b53d777777ef76a9cb74b1a86da4cd58915925f1b442628565c5c5aa8b5517ab2871b52a2335963bab2e562d5821b16ac1aa051b5f29031212528501e67a5512bceabdfcc8b2ebd6f01f02407205efd31369692401c97a6831ae9734b2d41296c6522d451890ac472c09eb5b953412eef571da5a2ed65d346703118ef52411f77a91aeb368eb46a6abb610a4eeab8415a32e8925e6dd6875b810b01e8256cdf366ffde9737b66492d63df284c57947627f66b43c1c1ebc82025b118b71bda051e5058d2aa24155fb2e34a6d41206d4481e9dffe800bc4fd657a2f87d8db06f91ac1b9932d46f258ae20a31ccbad7a9fb2ac183ba249610d43c6ff65cb3c6f3bc5db306c7f23c0f0bebfb5a1200dc546aedbfdd6dcd9d936b9e377bae5953a45fe0ba6bd6d4eddd86a14b08405d722ed1da1d2ed64132a604045f2d2546ab873fc21de18e70ebb5e74d6f8a710a2a2ace98a24207af8c1ad0ac90d0a0d1a1d9a971d19509c69efd7993e5e4650da89d87b4c6ce73aa419287eb7fde9c426226090c22c045b83e808bcc6341a67937d3e4c878515e72583079c99131a3bc38c99131c2aa8ce57891ca6ec218cb7f545442784c5ed248a1c51421d5144e5358a06b290ce9a66cd8222a77064cb872f274669c9cc01973064737c6cc541ae3860b698b1eb4b0c0a001868329306a38313dbd94c0a8e1821f72a6743674a1baa1044ebcec20eab050d3544b534ca01314af296e90a698483a1ba8a250e25b20a420259a32963415bae6553e0b519519a6632f6740e57a6ab9543338c38d5ab2156f365f84ae8dd548a7003a89475fe720e3a529647d9b9677f63d6c912b9c0e7cb31508c4902af15824ef906f045ef56226b8de3a0aaed651d80341195dd82af1bbab47b8235cbf45969c637d9cb3d677ce5640398c2e6c555ddc37c2519d37325b7471ac9ea1ce7bb4f44a08c29a9fd57b48b9e99b737a2f1b918ca1e7fc5440446ba7ad69f5aac41bf22961242424249277e6792dae6893f7791e7f9ee7a190d4e402515d018659c3cbead100c49325e756b7a1c905a20ac3fc314557835febd4efadd0c52f04ccfa6a8aa1c339a7f8d984640c5d3ff01e10ab823696ead76287a57750247765a5870023ef1b0093ef55c23755d046529d241c55efe2cb005d67f896188a3fc8f528e4990315ad90bf01784848bcb26f043134d8b35ff35e187e1b8c37c9f2dbb9038371eb71c297234823e18b197e1d01578db96976fb6b827718c4da2db4ccdb5d6fff7920f8811ff881dfb7f776c5edbaf7da585a892bf14964edec63c5208aab95b8c44a5c893788a1189ae0c4f33caf82a128d65a21fdeaac226d56cde1c018d2ae9e8713698f9eb5ec03e7d7bc9f8dc7ec8171674c8138673458892b11058d438566f4ea7a29430665a08029c30b199451f61dae31b53cadcdb4429b2f18c753f834674de3e2d8b91e7f7e21f97945b07ad63004c1e9bd59a9c330a977c8fb98702cd50e95d61686496152984446a0cedf2319f4e65cfa8a5a41eb53739b1eba3d4fdca1bd0e7187dd29848b042f35c650cd6b06a398a6f534b2c83033b6be401ad1987a418d393f54f12ae322a38c30621033cf04328f0503fab9f1d945070e3926f7f6f424836794d20ac36233467ecf399b25c5c8ef3977ce5d01d16a2af2bdde39d362e47be7a5aec120d6498a372818b7ae949177a5571704cb4001538930cf3535831cc65851066e9f0335b61095015754d9e2090e55aeb8822be7d4919637a8a001145344210316e0b8ad54fe54b3378f03b2bac2eaabf314ab43727ec582ac7a73d732724ed17966379673aa95909090a4e0f8ae325b9b514461a6f65d527b9bd5be0b8bb64ddd9cf15dba699b512ea8da3b7c68628922a42859e105d741d4be4b69da8e505046171ec030b146066fe0faaea5ae3510d3c66e3431c68a0f3090e209aeefcad2b5aee2d4c5f5d4b5be4b8aae896d6c6d5eb9a2a646b537336d9b597ad6676abf55656b138895f181b052fbacaa699b5373c69f42aa4cd3660216bb25a28401d3450b70ed346d47438c49f3060c5ef0459a3670fd43edb774d356012d2c285366091e6e2802d76f4175ad7db0853828ada5bdd15ab2a4a87d56145b9b4d5666a56d33a967fc661d51fbac345d13a9d2d43e6bd7b5a652fbaca969435285861a24a145145cc4c0f594da47507c81822d6a306306543081eb1e6a9fa59b361b31463829d3458b32669ef6f6da676d6175e9daa24953b5b71cb5bf429ab65dc1106340d15d99a2056170fd5552d79a87da5f294d9b9017496b5cc0c31450f880ebaf96bad6526a7fc5346d2b4cb1c4132b766e54c500d75f65e9dacaa96bab2e6d6be1fa2b2c5664a4f6a6a3f657bbaeed4eb931c409be48e2055dc6c0f557555deb1dea05c630c344d20d7a18020aaecf4aea5aeb50fb2c25326a9f3545949ab6deeda676bbda17a1885396f606ab7d9169da768c145b683153c61b64c8c07547a97dd169da8e8048e3b485872f6b6e9002d7179fbad6508e94a092a50836c23c9172025ce750fb6254d744325d5b4d5b47458948e196b0cbd3de7c6a3f84eada6e3f4c132e4d5b3f3185588064a4f6d653fbe0ae6b555d4beadaf6c3295df36a3331813a2610aaf6bf2f4dd7aaf6c6535aa184540c90f8a10b25707d30a96b8d43ed834ad3b62d2841171318f1c40c1528b87e52fb20d3b41d1501444e09242b3e744101ae0f66e95a27d5eeb0f63fa969eba4a4a90f4ad794bea5bded4cdb91095ab00514515c7162290caeff65e95adf50fb9fd3b4ed185ebc6022f7e508354c80eb7f4f5d6b1b6affd34ddb91135ea8218334383031e505b86e27b5ff45f53f325dc3a99a36a6a2fa90bea7bdb5aa8c0c952f298822a64c0ed79d939a9ab60fdc6045182dbc48aa1203d75d43ed7b545d6b16434175a9cd524c5d9b6ada5eb8a2c50654aa9081c6165c7f5675ad69a87d2f49e987daf7a6742da7da986992a9fdf9346dec3491a6edfbe2082a3378410ab61881eb26b53f95a66d45c515663ca15303440ed79f4b5d9b4cd3b66218e14414279400a3050a70fd99a56bbca6f6a753d7bac64ff8899ada6f349d66d67e4f4d7e6781eada469191eab799aebd6a0cd832566abf971a4af394eeaa1a112295d7062e80e20d2cc6606a7206aecf505de31b48edba46d5e734bca56d22ae9beb1203b6b6da2d5795794ad76e6a9f95f88dda600d679c41e50924c69881ebcbd0355673d434c60c338408e38b932dd806b57734201d4183252e55b2e0968c6dfc5198361c66d860268c1359949a70ed466d31ca58010aba68d2430cb6701b55046a08f1044d1562a6aec0d17e18cb19c50fe79831cbdca20517a123732a752d09063af5fb0e59dbc6efb006fa746974a993479d930b1280deebc8c732338e4e585263d9358c653f8d7306a3e791a9de77ba3656ef3b64de6140de370535489d60ccd4a04e227582f182893a8f4c58fdf875c4b389c138ee308e3a8cec65645defbe1a8cece16abb49c4280e31f21823eb04a309a6aa875497832316eb18a2b53bca8fe90dd11ba2e7da20c14c56ba564e66e22c23ebcacd6e079e27085d3653aae8621e567336cf364cdf520a544666b2e5625919e7d7a9ceef6462a5f1565c8cfc7ddff77d53e5e834826cf0d72ff00ef53b6a65c55b43491b0120a7c33579e4ed30deb820e6a549428a291c37592387a79b9172133a2da2706404c1050d43dab022096774a3011a64e06670bd61c318b8ed21e58eb79f4d7954879cc931e15a3762ad612c4537a8e8462ed2ac34965eeb897186e689748547c3cb091c345a8437db3de77ce3c6f3e62c99bf40cca409dadc0611e73ae768bd5c552e5f452f209fbdad727ef3974e0dbc06d7ba386db5149366980dd27fd1e96587f473e8e46283f46fa8a81ba5c82245f76bced166f3b2032175a35e45ad972f77f8ac0e10f6b6fadec716115f2b8ac5e622c572731c3abbd8597fa4538c88b3b1491271379f51d376f3e63538d76d10712fd67bf52262992d6a55d78c9a33293a757306456715eba3dfa2391b8edb0d12922f9a34e25a2d23eda249226e46a353cce6a8ecd3c5da6654af8e562d7e95c3caafca3795792afb540eaaaca3b250650f2a0fa96cab0c80ca01a8cccccccccccccccccccccc2c446566666666666666666666666666666666222a3333333333333333333333333333333333333333cfc033301366c2466cc423e05bd1998b9cffbdddce97ed8dc8f9b4bd11d9ce37b2b7daf948f63644c8f928ec2dc8f929ec0dc8f92aecedc7f92dec8d76be0c7bf3b13710f636743e2bedadc7de3e389f99f6c6e37cceb2b7d9f9ecb437d9f9fcb4370fce67ddde3a389fa1f626743e47ed6dc7f92cb5370ec8333d9fa9f6f6f3b96a6f3ace39ceefa4bd059d81f6163bbf99f686e3fcceb2b71fd8f9fdb4379ff35bb7b79e33cf79676f537bcb39e39cdf545db5b71ba4bd25ed4d696faef3e7d264da1b6b6fabb378fe7cda5b78fed4ed0d3c7f676f6ffc151f87ffc3a7fc19ff079f08bff207c03781cf00fe04f81ae0bbc00f019f9bf0f9099fa5f0b90a9faff0590b9fb9f0390a3e7be173157c1ec3e7327c0683cf63f0190d3eb7c1ef26fc7ec26f29fcaec2ef2bfcd6c26f2efc8e82df5ef85d05bfc7f0bb0cbfc1e0f718fc4683df6df06713fe7cc29f52f8b30a7f5ee14f2dfcc9859999a1a0b9b0f257f9bc4398726dcdfd0d0021142957aaee6ec94f1e940d55b7ec1d4ed254aa4ef3694245bda07879f344e95357475d0fea0ed5b5d50d405d2696895d629bb669b7ec9655629558122c0956cb6ad937ea66592c8b6593d824168945628fd823d68835628bd822f689ba579669999688256287d82156881562adac950d628358201688adb255766997f687fd617d581f96ca52d9294b44dd1eb687e5617958292b6595566977d81d5687d561a36c9485b2503687cd6171d833ea3ed9279bb4497bc3deb036ac0deb649d6c6e735bc3d6b0342c134d7691768ff66867d81996c932d98b7b2bfa42f13dce76f93af16de2cbe5ebf465e2bbc4b7e9bbe5abc4f71ad82226c1f72e6c116bf966f962f926f145e27bc4d7886f256c154a55c4a936df17093835e6fd7557efb8803e75def8c458ae14a7804ccbd6c593051ec9022b881dfebcea71d16a30056379e4fda4e7793934b1961865df398a468c9f1e39bf1b5abba3e562bda4504861da80b23049e19062255e0aa2ac0351d76354e738e8ce613f393ee0e27298b2a0c02d05c25e77b9c8d832699dc59272b1a4a4a4725c2c17f9009694144f8f8bf56a310005299e1e17ebd56abd7a6893ce59cfeddce5bd872e6ebf178ba5e332dab98b873625c939588a2d8415429d675a6bba68af589256ebd5025ddeeb7525adbf74de7a934a788c76ced3ba8bf2fca35fed970b257005fb95e46351146696f13026a179ee7a015c2c149220915a3db7fd8a2589b5eb4a587735a9e47557f851af86e157a2ebac2b719dd5c3fa8b347a3d245f779d490fcb751e92c9cb45c6bc1d1d0a94c29ceda8aa9092949658284839853d4ae984e2788393d331a09fd50151f1311a7e751875dd87b6de436dce435fbd522286e157a4118e51ce45311459ab2f11bf62914cc6875f31b9b92886224f2886e21c00129d501c6f70725c8879802b0f995bb138bd237c73136bf2e68675f39b1ddae4fda33b0f6f8e43c77fdff755c54c10bf7325e2776e2ebe4925e17548a3f1e1e2705eb12437a3982489d737503a23483809870f8ca767ab1829fc0f65f1d098d773b3b32ff00664855f5dcc191f86e14d184e1dd62e6dccb977f0d3c9b5cb5bc1605ca493bcebd0c5f5387ea492f0636824e2d0a6243707e956a09eb01dfa6226841fbf84f59c7fb42b984363bd1b69acc9c54da69188a47da125c9e93ce7fd8a99307e7525e357463a1f0f924a702e924639c7192f529c87543c8baec4875f223e5c9d890eb933e62d599d4532c98979b3e28c34e691b9d5c3505cb15aae97cdce91d7af13cc834c858021656519439af82310bc481ad91c341a1f863f0243da8a68dac2af4826390f2f924c9a94e43c64121e04190a26d2833028184325c1114106c236912c0048ee9769c339110a14282449684b3425281f2818140f540f940ed40e14f81f7a73185ddd878aefa1adf350d677e8eb3ad485832e8ea6b4441393442428249c9bcdb119c00e9d806487e671682eb73af89cf89b873f61712119eb1cf0e195800f5707dfa4929b9b05a34c9d5542b84827d5694278f04ac283a451d377a3915402ee2b49ee7557ebacd5c5f0e0bd50dc5155212521f1449ea3d9afdd172a505c96b83cb13c96472d30c56297efa528459d17a5e85a295e869fa7c0ba117619ada5c34159ffa13ccfa1b0f7509fbf765ae35db1ced9494107b54b612783f8e4243a7dd395028f0aacebbca573263d3be938e70e4d3267f33daf35c6950ecba300db7448231619556984a04a1c4718ec97c96834a2174017c283e43fa2696b1249174e585c2e073beb399ff33c2475def49149723e9f64da763e63bd22597f5d09ebaf8b3c3b748718b9c9da7665e85a4f9652e7933a7526112bcb38eb9405f6d69fbfc0da42b04dea7c39a70c3b34cf508cacf3bce73b0f6349747ec2e27448a326253ed7d1218d74eef37dc592bc48a3269154c273d78d6024eb5b8d7c481e91ba96b476ae7326de75ce4332d921c99847e2b4be3896c7487396a4b4c494c56971235d9cec5b759ca3b0714ed0fcd6715e42f22fc980786975a7abeba0ace7a03e3a8fe5fc87eefc74712d24737eee788949a226695cc468f39bb38618b5ac0db6b6310ae652274371d4098c7bbd85c49564f5d697b0ee2299b8ce7a8b64d2a4c47516195b268b1327b9af243f37d2ac559f006c63916c65b5850b2657d9a11d9aa3f8d778b33b5a2b14613f642eb7bacf73acf71cb62a47b6021e4617079bdc6a892e72b5f22177ce56504a583d248b3cc2f1d01d2ac39ccdebd01ba8a5260f70056973acdefc142394ae752b0992695b7d1e85696bfdf57919a6ede673aa5c2a24d3b6b828a929f284c531d39cb1d3645d9d0c55272f2541c24b60e7e866cf99e3334ac7049a4113c78c4dd85c9d0e2a3e075d3d88f61c88f21c87ebb1d76134e6fddc5c075ddc9c73ce9e73ced9fae2a678d697ac5667adc8d832615d9cde9c17a737276c257a2b5204714e8fc79c738e3e2bb1c5dad1f9961bc56addfb07fac0c85c4e7ccf73abf3bcc52e1fbab8168b05b6c4f0463d4a56463ca4471ee19a928cdfa1314f67f51c1af370686c24733956cb9be2fc8ae59a36f33714697a73c28ebe760dd1e2cf8a1124d31604e3a41c2fc7d84b58f99c97321c275a5d0e0a7b50eb31ea3a0eaaf31c8af391f2fc86ee7c5f202e882e0e882e2e461787832e2e872eae059b36cffb098bfb4822266934d8b4c5f63d87dde74b7ede4332e9f9cf7d48264d4a7afef373263e8791b1fde2605fdc0fcceb57929bb3ede7fbd2f5438ad06c839164f5be5c6392c7ac464030239fa7edf503ebf159bd10eb9fb0389f2fb949434706d7f3efa00bb17ed3098bbb2173b9d661cfb9fe039219f9bb4dacc9243e64aceff323dcd690547293868e0b5c0f09bbcf95c0ee037b934a7eee731fd2c8f59fa6fe0f8d81fff9110e46632079f0f5235c0b3422029aeabd05a3b6f5e80a50c599ea799e93156a54d7153ad472d3542f045767c599ea1da86ba3cf6157e2731869d404fe451ab1ee739054d2f31fd268f59e1be9a61ee0fadd4599ac0e7b8b326952b222637dd85b879d098b8c35193361f59f2f69c1fef3d60f751d465bf7a1acf7d0d56faef3fabe92d0c5c1e8e27ce8e27ae8e278e8e276e8e2744e585c0e99cb8dcfd93ce73aebb99be75ecfb570402df390bcbc9bad72ad8c308d87b5cc03bf8c3d475fdb88a9ae1d6b018f96b483dbfafc74b5c1cfa982e5f754596f790cae2af8afc9dac49d8107c54f4a054170764f1b2c7cef892ecea34eaf117caaf7447a4eac2cc6c5f14b6f077a51730646795373068a3151f4aabae655f09e9a3415fc97e5ebd2369ea82fd7b5fd5284990a3a4da960fd962ac85439f08b113dd4f2db52c1b18aa1e73975ad247aea1ae84d795dbab65a90a0969e1415d4523d24223e782fca8baae019bcac8cd1235f0041a29681c73282074197d34acbd7e65fac4c55d6490017c7ade99aa18b258a63462446886ad75c2b846795b0ba718561ebab70b55ab1560f59ad7d9120922d1b6a64f317357a7d9c336f8b18b7652eefb125fd8a2de18f1f492636e72fce135b240c5e65915862e2bd2a8ad032ef22b938af67de270c46242df31e92465ae6ddb551a013addd518a4ed5fb7ec54f0c4551141f521716e7476c15cd1b5b405df3def2c4f00bc390a8651ead651e0b6446efa01623ebe5ee2a0e154566fec48f3fb26c8169b84228cbb9788f2c61f0aacec5b774a88cde8951e7e52b093aa4ac651ebf8e6081e1a0468cc381e34c595868e188966519c52c2df32e922253cb3ca81187c742d7700ebb37840a2de8b8f77be72cec346d3ff7fe7abd6cde359e9d7b97795ecf752e529d1d980e2d5f4551ece9b9ce5b3a222dc7aa23529dfb5017b6a787941dd121df328f2784c1ab3bdf9701461eead51d1a2b61357eb524c77fbeaf2541a7240a3f34853903a2464027328addc89cb18a18758e73ef27634b66ecf38bd341c696f47ffe4332017a7f71254d249f6382b1dc9d0a5dcbb9f7fd724a30ea9038bf79ceb4e1b8e7b54c0c6f648ee39c79bfa125432957b5dc5d0e1a130fbb8784840ba231914c82e33f7f8d003edcf1f5bbb625b04820201aa32b1a835745728590242bebca781cf48712cd9977189d6288689ee7451159473b9de305165fae2cd59fba5fae388109a34b05aa0be64cd4746aa4ba271ce15a3bead25e6b4bf4de6a5d248d62dedfba9178d74f581ccc689c33f022f923dc697306fe08e7faea272c4e248d5c6439debca47db8c5b90ec6bc279933d0235f386171484823237306fe0877d68f7022195322be75916ce20096d7bdb748a430f691b10688675dc9ea36ff6e431a357da412f12cd2887162b9ba242f32f69d71b125acbffe229bbeb3c826efde2b4948c692848f2d693d7cf8d619375f47bcd65bde6c815f9d1947f09f4cad2f0e8c792d9249ebafd65f3667f23a8b8cf517c7fae240af2a859681b7a12acc19087a2dca2f19a218b7c692e456178f53b9ba7ef3de57925caef5d773acdb9cc6bcdffc08e7a2ae2b69b96e48231b929de60c3ceb462ff2a9822d166d51a69877d78f704631135a675d49ebac7b6791464d1ea9847517a9c4487306de6849863903196787bcaf4891dce9c4cdd2a1d5c4b85b8c375254fe8d145d9ba154cbd80cab8949a2a91d1b61d6f9f9aefc506ada18c7642a87534f930c0e696a931ceecab02adcdd48b55e789f7b88b194cd0a8e539fd8da26e717a3ebaf8717639345c6e6ce1948b23ec9147e845bcaa251b1bdcd8f7052b1fdbe451a352da9a4751b923667df8dbe16bb8e24918d50c67187f82f8cc07504ae383bc417ff798e2d69dd751729921b5bc27aeb2d72a73867bcff56dcd5d2e66c1f4e757f547c4a8c934214b99d7a7accccdec724922ba65700156a9f99058aa465b36db044791f980f5c4168038524145198b3598a3656b0b7a28d528e33fecd5d617dd418eb4ed75cbdb375472c816a4fb2c568cdd9b37b76cf9e7376cf39bbe79c5d84172e08e5fb8e9ef4d0021a8821e3460ddec065a96092b0a27efb254a10eb7d6152536175bda8a1c61883d6c79f97fa9d757585efb3ecaffbebfe7825e28c3f30fa7d49ab1f91bad7056049ef93a2b57b73b558bddb246c5d89937728043faf77fbb532cf9beb7537f76eeff6ba5aac559ad6f24c3581e5286b9b875b801a4b75bf1ce174455d2f6a64a9385b2406b1de6280d539ff312155bf7f718252033f46b0d260a5c102c3da892b561a35c6728795060b0d1618161a2c34586186cc6055b1aa5e640ce130729796d1efad11d63510bee3144b05633952edbae6cb85d614546b2a0c7daefd2a01569b1ca976086ac890db6ea4bd30413edf0a02c407101f3e5a42bac170c8105b15f81d27a20901e223884cf6e387101aedc70f221a8d8846fb5621407cf800e2c34710203421441d0ca909f1139daad3fb7e1079b4fff066551e8334900644880f5008e80304c9ad39d450b54e140211ce0f22efa9e94f9696cdcfaa784c9955cdd4f058e2c1c4230b8f2d3cbab40d47c723b7abf33c92603a18165ddb28aa2c2b174b28886ada66553fbb2037d244f740cfa33c906655446fa21b6990e80b2ab5b3b9bbe3bb3bde548a9aa1537407523524129923a1904ae414d24a0ea41cb920354155416982a87e624644a052744a884948c703c4c78708f9517b9db0ba62ec93295c31f6bcdca91c533a87951c4c39967258e9d2a565e44c071414141444a51647846441052b469f20aa69635c909a6eda5b1e480b4a1354d5b29943298712101f3e80f8f0f1ad435ac88ffe21e4c78f1a2984d2dd143dc33b5b10220f5efe7cae3374d7321698d1e62d0e79a70d9da266e8192a25b4fbd10111e11bacdb0530ddcf6ef504f4c0587700a56b3f94a67460a56b3f3a60eae0880eb6742de6913c927840e191e3813453338bb1316e2d8582a85a80414868b654301b8c25959a51d8d39cc93ef81a37d3a960bc5d7c29b49322722389fc0847840ca5c4706ab58292a4348524c356ad8456af2342423b52886ada7e70bb692372166d672d55ee224e21452b546ada848cc21b194611a1acf4c2c2497346022a1544d5a0f7b36b10ec2e2d7629e9ca70c16a9e825e0d8ce709e9ba86a3f25b2bd73856b95c66e8149562beb171cd284622bf5d0cd2cb45fb01bed5143c91a0a0a6fd07fd41d3321fe40f15f9b36bd9ee75e4074dcb26e8791e48feec7ea8847656c6b18295078f7b49b575e38aad5144bcbd1cebb415216f3838f4b3e9e9f775e4cb7871da42f8eda55863b18740a9999ecded998edf481d393ab136c6a3ba415441542e187dba692755229427e926088b2341513741503b347ff34a12f483e6876af67dfd98c0381ea4399b3d46982e27889083b414e279b67b745f4786dc4833d5964e6b4e719d5595b32adbf775a476230d83ea5a493b687bc9020c0aa6fb32d2de4cf386f4d684bc2f6e2dc8fbaead01793f8c32d23f678c6510d5e78511c53f648c259d9d4a4d1b91bf5eceaa88903f668c7d21f7e84f9aaec560672a50cb763f54414e36af5a52292042401e20e7791d1902e4202d6d077223cd82b960af2340880e1201e9f63c7285fe8fb770e0a0fdb8aad4b46cf2c80505bd8ef8a0812048eb6f8aa102aaae181428d52075c55041437ded70b1543096ab911c5f4a88fc461add4ee4ad1b5d2dcdd98d32132fe1d8c5b1294550574a3b34bf382234e4328e545d3b9a55cdb09845cda0663a21344254b1ef4b68e7d168f7281108fe007dfcf8f103fcf1c307e8c160e497423f7cb4e8f23ccffbe1c33be87944e479e468240bde3d1f1e07ae99c3d82f7f401cb9ae95b3aa9d96fdec7ed080a9f33f54493894a62df73989890206751ec7120e2b6dcbdd208931c1933a8fe388b6794a3f69bab662a2e852e77faa40af1b8a7e6246d5b5924ab590139020a2a01f411d1424e4dad7111f37d2ad8477d0032907bca4dae40ade949a33da83a868b403a19d88f61f4d7b29b4ab1e8dd20ec382051d0c4cd77c7c1e0625d27c74d31f3fde64ac0663498576620ea347613a1c2f46a369ba3663347284ae342a45cda8a93c5524d23c9944429927a7b4cd668a9e81aaf3749e06ceaaba56fe64e181d4351eb9ae6d549da55029b4ab3f5966ba6923f2f90a04ab404040403f422e171132886ada2652d5b65c2e10e7e7ad97ebe56a4af47ed1fe83964424e0a82049a5cc8cfd138cdc94e8fb3ae2d16ea48980d0845c177a1df1f15677777bdded75d30ed292054fe84502571ac5c9e124e140d9e1c231771889fc763e95fae01f7c3f7809ab384c733647212aa1aab1694d13aaea2049a84a6827b41342234425a4a603242134426984a884d4748024b4a352423b20f7416db7791db109f90d902142765ce3d4b4d1a939eea68deee66c7ec7b52f1f3eee8569f049ddb4a6d15d55d77eb47ed0ad548a884a11d1add4cc1445d335a2cf532aa21f949ea19194a2a1a2522618cb202a4fc8735e477c902c784915c8756c1407a965f3358a3384e224b52cc78504a123103aaa69d97cc108c423b4dba1f99c3adff271bd5efeec586146d96b0457e5c1e34c18356d3125447efb8d348a2db9bdc88b904c62497e7e6ebf7d7144c8308a4afd64298560ba25440ed309ed747c7c533a95844addac31f6cb9f5d10d5cd5b39200ba7ceb7565c8ca5d0aeced2b46c5e6807529c8f542acb4f96ae9533aa9f2d33aaaef1989aa5e91a8f5dcbe6accaa3b3aa96cd075175d1ed45eee3f914217f76d3b3f9ffb3c3f9f47e662d996b9cf22a0bcc585229a1dd9c511cf5478cb1a43d5efef0a05366cc7c304ee56cdb7ede6ab1aba9901442ba964da1a724d40c98f1f57d51a92667555e8c424ed356e4f3424fd376fb1c77da603a211dcea954d78ad0ede1628119c38c6411cab81b15722222f454e761ba9dbf1c77889038e44b2a95634a1055d72698b10ca20aa26ad9f48a18cb202aa90ea20a4a1354d535a4ae758ef91c493994bae6e3f339a674edc79295ae1dd1b51f59ba46fb7c8e2d39ba742dd6244543a96894eee854cbe67d507a869a89b531f6b99642bb924aed6a8f9742bbcac1cb9f5d1a1e247cb5492a25659c55cdd4943b6ae748aaf3658fdb9b481055cf5e47fa83d39036fd6d27ea031c2b1cbfc5023372abc7900fd738d53590c87f7e0ed34d1b115268d7b3f91356b81b49a55230f2f78397333aa2b143f344e8583567f32d9b1da410edc003d9ec3c3ee83104c2e785b399835db15aae970d90cd48b543f351435f29edcdfb3c7ba9f3fc0402c940f5eb21fa02f7a0a5f8012d471ef4056f464b5146cb39e5012d777675be035ae224d579215aee50d5f91db4a42fa8f31cd0725291b4cc31a5ce535a9e96a30e5ad233753e070da2e59c02a2e59c8a09d117bcfa334ed579d8cfaecefb0451d5f91e5ae658aaf33c42bb524837a97266552f78237dc1aba5d0aecedfc07475de8652a93aa3ca90aa14a7544e2a43a62eb3b7383ded4835528d69d4d4791ca6ae6d699b8fd3a8a66bfb458a9912a89623d558a554a76e871bd41267a94e251c6a8973449d3848751efcbcd5521453d7cab00ca7aad26a4ad7ba8bab962ba5d511752ad539a4ab35fbc046b8ff3ed2f33c0ffc1edef3a6c80d962cb8faf354108b801dd97bdefccacfb6fab7a2bcbb2bec7e5f8b8c18729e6b7a31e456c80d2017432e865c8d2177c46e08445f28f3484f041346212debf78be67d2001c61e32d9077e308c3b7e30f4804271eeece75a2823e2f7300a0a46b1ee971d9ebcbee8a0c68534b2ea7ed1218dd798b155f78b0e62408d3775bfe820e5bac138d6fda20394ee8b0e4b3760184c1479e77c9dff81adc4cf9b9f3b7bcee6dd1f46bec77377ea30f2dc9de0275a91b5e83155aaa95ded5410a20b52183120837406d7ed44ed375294daef5cd758154a6f549fa5a60d06e32efc548bfa81895c0cc41491d44d2451fb4ca66b215f490a2ab4d0546d6a5f0623ce752dcc40953560a831220d2745e09a4bed33d31bb54524d3d6ba39e39ef5862d4b9801050e51a4c0b5d3932c5ab50f9b36d10a9635a8d8c0082cb2a001d74cd4fef843edefe4d0543daf8beaada07a5090a81e16d5838246053ae2c9ea6e91aeac87af232cd8971c9cd4d5eae0ebc8aa858508cc4760376e8c256cbd90210523a370384115ffae9514e85df3c8d26316f989540dc37baf23e191c0d6b5ee8911f5bbd7351e3a358c654779322424241a7448549cb69e9a92411552e75924c158c2ce345335d24dd592c148248e1c864d9aed2193bcd4791e1186c3143b5d7c496222476a8e393c51c8e01c16dce0a4cee39c618313170d8ec14c7c832ac408d18066c97ca9413726278548edd38410e5aca8fd108c0851fb227c714255fb05e8daeb48b3d070cdc68baaf3af8f6a8d11b23557d4fe4e1fc6431552fbaffb054905b5aff8d2444a0d40135518cc4cd2527319bb7db6d8eaf36514a3ce7bad3437b802a8f6590de6724dec7db9c1933ac33041edd79106776f4ce9a0f6c1118ad4b7516ac0d479ef4b434d11240cb6b279e2c4081b77600d429d5f1ba4016930eeb081096adfebdaad366cec6163849131baa6b8a4985e5b8c3a75bdb8c1840b8931a8ae1737beb86030e2a8ebc58d2fdc684307a52f51a86e30c2761871ea7a29438c2bcaa87a9d6074d5f062c1d8da810d3380685199c1250b33a2786919c1ba5ecc10838bb2dba95edd2f517e606a234ddd2f4730b501c572aa1c8bcd5284c988785c1b53d1d616ea92accddbd6cd058d20f9b2a58269194391a1ae652c8135d5a3a17adf50376dabdd6aa723210552501963dfb7aec8f5da33d33329a826cb302a36bf54d3167ad919bf8aaa31951f96c1557552a89b5688abd56e8586cf5aeada116d632cab345553402b2a17aefc6ab7dabd56bbcaf7661f81244b922d287049a109159c68a16b257791a16b259fe159a97cf6ba087395cf65484548c5defa7c11b85c32ba338ba65cddaac94159a2a9966c65f5b4d285ba302969da16a714268549a153175f1588b4bae849e93ca6d163f2983c262f8bf7e4419db1b79b32c65892a7caad8b251199a94228dae4d3b4c1c6c3a8ead3b42d4e37463d85ba39634fca8971676ca275484835e67dab4761402d83dd6ed08cb1ef784cd6832684568b1185c04d9663a8ab3c594e386ed0da9dafe21327ea245bcb2fe8215fb04ca9d0352663e210236d67fd6edab63136e1275d702521c8be8bdaab45115a5d0bb4acbfb16581ccd2116d632f4acd0698dab41db32183febc49eb72cfc4c6de525b895a8650bbb70db0a4adc500d4eee3eced8511b86e188ae29ccd27de1d18d2d892302437b60414e791d7a297d672bf75c33a636c21f3ad1bee51b7a4adae1cb7c912a8ee4518181db3c0b0c0fc5b8247ae475cc14caac08b1b39279d93d4ee7a2ca7711ef9562ca79103a4f1a8544b166b83550a15a2110004002020007315003030140c874322e180304b0351af0f14800d7fa254805a1408c33086610a21448821000000000200000333b30d08953f7ea888d757a2ed439313be9dcbd7ee56d8aac8deb5920eded788402d768bece5fa5a913d73378ae49f97da4dd4ebfcdf446f9f1b4362b802a01189a529b247bd6e0df71cf053a136f7f7d607d0b58629c013088029695dd9950c9931c8464a8104d940369dcf145503d93c11110606598c0389db88fc48f196c47d90757a4c66e2f41cc22980df1dfaccac1811e1c56e5c619c7d2da8e15fe834ebdf43f1da032fd2f8348a50599622c0ebf493349ee2e6fdab445a730b073fbe3807efe9db6a4d1fc64273bc9ee698a0df6236c53c43f0a0852d9b003eb433f46ab9b5515fdd29212ff02af0dc03234f86e080f597f21c6f9b6023f1c48758ebd6205ff22169f9be15cbb62e503c68817f7edcf1a978f8a967dbadded0914e342822cd3823b57e6cd51c57ff607cdbf4f7017c7549921833238af4aec4f4e594048fb8ca7f25d1c346d01173551c35cf671e500434634f7811eb6e1a1223b1df8bb5763414055528908529f7cf52cb1d8bd04491cb286986a89e2177c2f7a8a8106f71043fecb7acc161ae725695a59e05de351b4eac7e1207ad3dd0b52e7c58d0c237d69a0dd7c83064520b5d80b9ba6a69a67390a6d1d52f30b605ca3e7acc54a6cdad5eb52bc9330b535b96be140238b9fa2db31928173ef327b23780b56513d9090ec450afee3716034c6ab49ebc7b480844000cf653de6469009b9f02e98d39482dc543a9bb2b35514015f9d9c76eb7d3f2a7a4edd1fe5745fcf2bd551fb254f716cc07b01483cb5e4f4f4669b2fcf18454e40eae212456df5d0d9d4777a30a1dcabbb9a16e0908614f059657c7caa0a0bcfcb6bc73a8823cc165cbfc3eef7e57e66ed1b90b940411ab3abc59b5701156edcbe699ebe1b13f9f912846086abd75355ef657ddbb2eb5e4244949b326ee08ad1c3275fc9f2f4d2c12f4ffd4d28f8d61d9bf56f9167aa82b46e90e8f93e2693cf15d067e350cc327a5c70ed8ba8dab827b628797adfff2d6c8c0b8be1772ac0e6949c4b9ffa5b5a1baa5e344abf0655b4ee7b4df3b4f5b9ac532889875cf08501f62bc57c87e1281a00fc053a5b07074fa117b1e8e9c30d2c9899342444aa49e6e7c426c7f0e647fd5f375dc69afc533be67871d340ce471d10d9ece52ee0f11925bdba9f007fe32410bb564b6dcd0ac1056e6b31a210fc11b19f4f249f88d214f0358f7c2dae60d34327c0d7522e9eda51e13692ca89c4d147fc312b19dc4ee5d7b9898f6d812f75e1e9b11ae87953473b0d6f90ed55a34806b60040ff0f102df480fc3d8b021157bba427492896118e38ae92c4cda8873ee660fd76f8ea15a9fdd64e44791e343d7973cd42fa5bb0af6706606abee62c7a6e71fdc861c90dcb626060c991d817995c120f4b699f1774aa953429822e70368618c4b99ac7a721535070a1cba7825b2b75a64e823d2c2fc193177cd05a3991b60ed63ee7101804f083062d39d44d8bd9bdb888dbf296694d6ec6440a7f6e0747228ca808226bc01540f036e7741db754d2c7b9b41b96a14a3a928696448029b79635398c0364ec11c8c7118bd0b4c4c44136d09e31393c79e3984e3a133235cbc72c05ac14830718d3061d61421eb5fffe4193e19605d84e9b3ec6226aa6b069bc4e2722c07500dccd61028191002877efdff3e2d27735b2114ff3d77eceab530f88371729b494301ffb019b6d3bd9062506a75d1d3fd01b61d0416692eae70cd2c97e473eee5a02e08a297e3f08dfd82f178e1b4bb56e31e30cf94ed0ffd02624bafccb68f87f936960cea41f75bcafdb5310a65f894bc8c2a6f927b4728ee2c2178f2ff1dcbc00ca80a97f95ce06fc09f87821a51ac72f2bc51b5faef0a51876b680b54028e29258d736f3f045f3097ed932ca22f70a6e04c4a0086e0e6f2dc835704cf4a9585987cbf8a0d285a082f0dc80dc3c051b28a10d0e8b9e1315e89abc23235506cfa2b971e2c40c354eb1ccc683e04743742d3cf97501b1193e8eacccee82666a2834faa8d8551dc1d2eb8ed346d9869644a6f1cfd6d26ccb312ed3547bf62ca0b900cb9730c283d3effee11191d10750d7f0aa540cb94146e002bbcf6568d8396f55c9abdeb240872cba2ed9ad08e0c4be1186d44e1f282edbebbc13d05eb9d078ac2bd5b271bf1bf59e0dd2307b4e70266588069170baaf46b910482845470970fece65cf693cc5662bc44fb6900cea705d29d5d27b0e2cbf2626704c68efebe33f59df262d22758de4b768e8409cddc13c735fab9f6f64f1c1881190a416a2ce5eefaa9d268b10e8df51b9e60443480a0d98b1beaf6c7117f31019e5e20b95279d088740e681a6f2c7fa4b906bacdc8e3227a73fe940f4e5398c8db9c1a3f71ec0e386e57f40f1146490a7cb15f5e0ad561102da4c1c5712859cc96cf5db6b74652299dfa73a17830471d724a444288949c8f52c24d954fbb7be3fb79f270ee2aee4fcca87acb7ce34227e347fd119720f8855e96ad9dde969478f02c5bf198872573bb5043efeded993164b616f05ba9d862f733b605934e0b091dd7a5efc023bd8b99da0b343543dc6a74142c7089754835e30512823ada57e28d03be7885530515848f0bfed639bb8a68dd8c42c2760fccf5983f26b1f4d927d328056f31c222408d2bfcc85f72ba289963a1f3a10309921b8482c58eef4a3e538faf6a7ab0f2caeeb2be938e8da1498f709c5e070ba1557720654f5dd3f210c8a70e0b8de8d9e488f4e9b6521a011f81c675a80a86a439ff2623e2d0c62809557e0190d225cce8b50008d5f4ca1b02de80df17ff08c21144c04062377d4e0dd13336579df8215ddc49a1b61b7a97e9643182961506592e2f3254a70f3b03c7b54f92ded0f0af5f4583efe90f7ccfadf4076db20e14d4ef94f9c8f135ba1eb06f883dd1055d43eb24a999568ace5aa184dcb89428247014026868b52e63a229237dd708c68f38024358f988c8109eea3cd8bb0aee257691c80db419a573a1c45453c8f05c9015ce41d04fce60e652393d4b23d596269989a6d4325b1574ce2342dc5359fd4e1d8e1a595b33042f2aa4cbe944488e4bbb0fcf7a03cfaa20806850b4e8b268c210ecb8bcf8c0fa8f22b82a83bc90c226a3e16833f41be0cced3adc9859ab2b10800c3f90f4dabd546c72beee5ab1a8e0160f616dd74b026176f0ffa3b0c2c82e3cf0b8ee664b098a72ada5b4c7be3041d09a9e66b4452de34b8071338608d5bc4201d0f8e4e5745dcaf0b4c1e9b7ec05877fff0bf258b86d5f2cc21ecb9c0bdbe12d1aa250f1ca985c1d90aa88e0e68271c18299468406584d067583c65f8a5480aeb7086fdb4eb9490b834f97d18238380c6523b3c464d900c19352dd34d8119f6c0d251c4a9e66d9951bf9f73dbe1e383b0c05da24d1dcef0b670799beeab7c7b2718c7a38256816d0b8ee06ddef061383d949c60421b39711cdd24b41a9ae83863e3908b0674432270cd17241879441ac228ef2ae026216a7206b7c6cdf6d7f33c88c08cd0455ab77c44c7a7595c696f5ce2e97d1472039c1d44cfdeedc318928965559b5c67087b75541399183d2a353223e62275336230e5b6cc55e5a57d252a80dbe03d0ea0909491d7f4657c0776f93afea865a9722c1713856222aaee239f5ca9b4af0c1754404704fda8c403c2359a15cb296710ea41743554a2831126a0496400657bde9366829ba1b8661929d9cc1905baa566feb424e39aec0dd08ff7136de16c78da614decd6d7780c46db146b1b1b4d651afde217693d688283e606ba75a2ea14815cf87303c2f1ca3708612ebc9932cb6e0364e4e6efdb6d74b4bd99a614567b5378ab8c2bf74cc96410a6b5d639d37e28b2805b1cb500cf68137f874b17f92fdb4e0d089fbd646fdda1e2800b5ed321d30f05ba3248e6d9002c872d707ac69ada12a7fafa2f4630fdc69c8ba4bd7dfb53b843e81ad09790a2911417662cb8bad48444f611f4593e5d86131ae0e57e80286eaabe5f0d34fd3800bfe6843820a3722c94c532578a3aed2fc5b32e5cc4a46089b66330765bd5ad57f8b5772f810a91cbae6fdd9626624d9a25715ead613ee0c6fee70fbd0554b141487b010b89ee71ab9168cc53955107a9e20403d845feadccc21c907ab14adcb3e9975bb55e0aff29be3e6c9b256cff616c4b5269a63867ed8247b91996b224fea0478bd64ac052c28076b1fe61fdce24fce954427c7e4f6f509796407b438158f20065b4668fe9f1a47a03aa8ca155ff990236be726fb717d900909f61c0be2c56878c7b0ee39d0f64cc271482ca57cf03fa944a1f46676a3221b227c901f013c7d61eee1a50e019777ea795921170022f0bbcfc27202f19ef1496338cbcbe98abc67912c11cfd6a6514ee36e41e14c79d8521e2f16ac0d7f4def7f5a156b83e713841d970b88d07459796b6877f00af103c23a56d555c042ab3a62345cb55aab9a89e03896a57723f63cd82d7c50109484ef0386f20b52c3bc8c89b76a54827a657431f190c6e89bdfd4791d614582a95dcffb1a6051dd52625615f6e4c6c4cb043a290b808988b1bb5b74f452cae7e3e7e4e27ca50682260ebada0acdf6a0a0cbfcba9b01691383084403eb92238204d1e48bc0b9953b73bd192c7ee3213ce1b91a41680bff8874716e280ecc431ef1c88d342896219010c4a81c0160a5ed6c5c5484a076a2953f38349615c22f514f8ea22858f3d659adce4c4ce0341ac9c0f1634803759ce430854874fd76165fb12dd6dd47693a955df45b1e3ace4be8890091824543ce3af2c87f6b0ef5d191f217ab526f0287dbdc26e2aa22f243a3ba190b22f943bb9476515fe8d53caea9b801fd55b1e606ca2c222a20e2c4cbe9d19c9dda19bce3ea6b9441b47506fa65c9eacf69217162d88040168f72d374263cf3d361673e1297e514e16ef974d077efdeba0d6d9fa98889e57b9c0e64694c61a451d63a7371ed329ddf709fb602dd193a6edbc67e40a20b612e0d87b43cc38b1ecc6610cd5c750b3c8ce48634e27de64177b16c63ddbc4bb88cad4bac25b6a1adf0e8da18a2b500722f94b383f119ba4f570e352e006f238d61cf4ae2c745bff2b565aa5bccd59408be6db41c032f6cf17b63c4a2ea57c3f70d51ae3ab9ba881cab0475c54f02f3cb63d8480ca968950eb97e0e0749d0cf603c1337808516982004be68502253801883a1e8532103b483a4f10ed92f5011b8d17175f98aa13dfd715bf8558e7c51038ce039d982a1a70c89405a3c3ff54488ccf1f1a22fea05fe4815dbe1da9a40422a2996ac5a69d2e3294dc8f42c6b81b0d21484b8cc5813fcf0eb8cf9aed44c96a6caf25d0990dfaeaa770ebc24f0fc6e12ac24bed1a0c9c8f756054a3841d43aa18175f59c48c0cd98ae4b568e1e38cde0e2c073b3a00ac4476c855fc0cb93b142fab186ac5812fff0bded60128b1533fc17135674010de03512276dc58abe902b76d0e00336bba2d76819299ed8c1a2e7feb6151178b852ce048b9d7dc596b9ba987b9ad27e07bd4466c9cb500cf7fb0a767ffe4a3a4fffd5b13a4daa6782c72b0da5d446696560a33fcdd482dae6f3697414b19ee2ee2ed938b75e768a3689d3e00134a9b30fd7f4b9ec8d3856da46a9748d51e91ba5d2a511a46d63ab6410a859d8729fd3d090c6cc7117daca25f0317d61a72894ed1fbc27ece16ec909b90945fd466a6dafcf9d0cb5af6eee97f2b3aab1322d9f1fc021d77967e23bc7f4d1e8f9821f7c11f7d8b33158f6041957a93be51ad20683ffac898f4d5e6016a02a706077bb5f9df58c493b4db5bcd14070b14d958b05a966b79788f6b281a1d99642bad861f8285c5a0ed9398461f88d35f9a2d448cb43baa8167dd79d75b23391f5985b19892891393133b9c4e3061cdf93deebb6ef24622fc6fcd7a42dc38b2dd69df932685f2b82461bb361275271cce2a4cc201c499cc2245b37c0e004beffd401d5a52bfef0f23da426923f315a4a563b18fef4dfc4e7486474bc3daeb235077cee47780381345807807f9edb2c6bced3aaf80f5179815c78760e362333f6f6465bf930c28952f9bcd23db034148bafa0690043ed8ed5481a62a68dbf180889cdf19fb881f458d1461ac0fdc5b3d2cb17dab9f9635564751f21e1a9cebd11ceee73d64e27e35cf3b3aa7e902dd856d3c14d0b79e8c24c2aa6a0188862f700fcf06525b62c85c4bfddcc974af56d08ae711fea351fc9f41093d9d88ea0aedea1ff031e1b5c9a43caf429c448c22bf2fcc07d69ce820b4c73d4b3a49b3d8007eb886ac9c0592986958a093d82286b2a24dedbf2b466b1a866165b6ff708d6461908a9a859df7030ca1ad469a6946816f48aeab3b5c2d64b42b54b2395a28b81277e4dd5f10b5dc73f23d49cd9c40ef8efef53d6301f69175885298f2a129b06260ca382cb7227312fcaea036502980210c000b0956d2a78364c27292e7c974bc09d1f0cd9eef3e3a7a0101fda77ed1488a8dfb8e7be540243219968fbdccdb75fc04c4e456d07c501b5449abf942773da908960a06d902cd161fed95289b4174891be0e769276c553018af6c036afa3a399144e97ea71fd6fef0666c1d48bb4fbb1ec2474651c88614e979fbaed4c4f80d5f6e7d75f86278b95c5700b787db67e08cf503495ac6ac07502adea9ad55f72898813353233677482a5da10b48611139829a3a001620d5b6ab577ad5375f70a32764d5b2aeb248684582c6c89944eb2fd94d39051408a97b157012bc519ccc0771a4b68a0cb7de7f54e863248b52e1c2a6e33041ae2b9ef368459280d00649ead9660c3f88555d3883e645b33dfb35000ce696951f9e032c8fd2fcba1b4fca340b244e40682efc0c148f09486937742c5ff37b107af3cb664195b8c227ae7c37b8c2e64f5295b40dd796b69491b297ca1636eff8711ce003aae960966bb72b62e232aa2ce675a09a1fe998f40d0d8d4f6eb9569cc6d6c3862c93e6ba48622503626ac5f59bfdb6b9c2eda64041a335de0ab66c3d6e1dc4fd9e1f9d4f5fc8ce33aea14ca076c8e752a4f8331834cfbe3d753ac8baf7b388a6424c9f561a97a88b37487b42ea6d266628336374cb63fd4c1d9482da4f630e304e4640255fc29c2bf3fe9da95115a75c44fddfc6838f2689274a42855008f6906acb3337c4ebb7d113942e0b1fc66d07f39a16753f17123fdb579db1bf94698aea83721e2ca97519090d81e5029932ee1cf13e0a598938a3c22ae33b33b9ffa5a5119db148d2a1c2050e60c8e3cf300f13d8804caf82197ecb53ddea5e199fd95722ffaf3a9267122b99c7bc98f9a20b04910e5676292533f6184671a1bb9d74f187574c80c1f50abfd5a8064fb787062252f4258c11b257cc57f4fa0f4e7995311a5466b228a6dcedf0cbd4918c9ed8847c0c81971d76be283bc3868229b929708202a93265606e5a1a01c844d6290eef002efde8fc8921c6abee972bec72258f3133be6185a96bfadf16599f7c5e7c3aa24db8af1d1bd68c99176a40f2a1d743bb9d84206e3f54f4b450ee9fb64cf238ad605b21be6d3e6ce413d022b416949c49b6c86ca95494ddf842909ef52c3846f220eb257636cf7cf6b2dd58c5ec9238be2996614e3772bee6ddab279a71d83008c9ba4d49250024a8d9ff79916a44eee3c30ca0f4928d9011678b2641908a2083fbc4821abcd7e54834fca9c18221d5b063575e402c7f22abc8461482d634816787aeb0f08dbfde781e10780c3bc2e594890245a1719e2e547d98bfde292430994c5862dcdd9f0813a8f67e356545c14de0010e67ae6a1e936a9d612c583d6631bd809a62ed0d438ec6cf78ec60a21681d78306d406129c4afacc68b32430810cec832944e3a181e5e8d329f325436be66f02b632d659fef721f0b4f96659cd14dd900a8e5f48bb206c8e3c45fea58675b9731cff305f5e8361f5ab12f55d721c42af77581587d608098c7d476a3194aa6de81147e3cdf85eda17b09226a4465569b95d15ba47fa8e68e09f967f695895a48567d40bfa86b3e9f783ff880bae2469621a6e709447d2c461536312a022834f1a4745b64bc296f81c1a81f163c9e1d661015238150d698da3895b8a8eb20e0e469d30b58c873be51492b76c5b134961fb3058d52f9a2d306653a0867010aa3e4f2ac6961ca454392e82e48cea5c50faf422a1fc03cbdf7486caf1289ab0d5bbfb7cefa026befc758d0bfb229d44e296b66f4eddade5c614a9b7484fb3a276a1e5d853d8ae16fa0785ac42ecbaea8d2118ce98e6afd74960d0fc05a6b3ab88f6fb5dc06eba46846fd4a26114eadae4c5991b58eb029d9bf023fadc4d278d5851da0c40afa47e0327050fa73e527bd8f895fa593381806b0cb1562792a94832034a858b290747387fffa3a41b062acd4c87ff783872d99f234d65efae61b93867ffa93bc074d6c8c3a8f873a2822077f9029d0b697a00cfbde8585a74c0e12d6b528a06995f692ee434da3c4969539dbbb1a83b37ba91d41531dd0e48d55ec7020c2f46170190fd291da54095bda4320b6a38f61ceea89a63a222763f86b847c0f3ebd8c227b6630d09cd7fb8db422c21766ec8b7f61193ea58f0b4aac49e7c892aefc32f28c101cae7236f19e05b48a2c28172e551c93127e45ba0d78bbeed78a7c5f587a3198ad1555e9266cf6a135fa15d5a9002372a1d43fcc881e288d5f1ad1a4645c912b2f86829d0e1c2f1a2438fa73791878b79f8612d970a17279b44fef3801b98f5a163c469a53d212df36363a29b387fe5889a1bfed327ea60c4904ef8e440d54683b8c83ca0d2dd71ba5813506b9ef0eb94cbe1afb92cf7fe0258cbcf9a00c47950c80a9be8c67401764e5749f43b02fef57d48fea1cb3150f5e38a584c09aa90d66b16a6d94ac8f50815352432dc912d9a9db222ad563cc2644458df8ed8b59feba81fa0862273cb3e49bdce29afabf0dba2ca6184fb46a3ec484ff2821a66153e706c08a01cca71310476396441ac4d4b8feb903586b7dfa8f1c02301630c20128f534d676fee307a28f016c081827044dc9a4c2d2af7d0c98ed9e5652dbcd65b6f07a886887f3f0e9b1e44820c9a9c879826b7034cdd389b62b18546a91647a3c364b402af20015cf7125407c8439bb341122cf783c8199d08a74cd2f44829167930745b270f1ba30dd8ca64d2986ad420dcf63d2a13a0ae2b02bb84a1c587c8d0dc640a1200ea0862198054208f4943505c198eb3d776dcedc3021fa0132aaa22c140cd457131e79070b14061ccb5a19ca3b0b4b0dd711534776231e9e535c7b006b4849d46afe79c5933890b3c2c2d252533f6655e15435d3d610868d7c2899671e4392f0ab5a80d50b0b5008694070ec53f952a154f62c2c042cb57fa12dab71c00b8e4d8ff56a61210ead6cfb4efb786af0e06b70963a4b4d58918c16d5e0cfb97fc9c83167c6c980cd6ea0da4032812c517b4fa1858e06e3bca3c384581ab47b4c2dc7cabb0781b01c43f95ec1639f716a214957870ef4909d028d91d1886001ad2bbd82c97460ccde777e9d77da5e614a63ff129e4405c20d98050c1f6bae0a4a25476be9a79f5e2f442706c8899cb49b58c02adce941cef87eb21fba7829d0415ba0f89205a392455fcdf484507265a433479aa017815f2d7fc6774d14f90cf61a9f0f096594b6a350d2799403048fcd1110e3728c11f6df160d0574993f09ce899f38081294e5cedf7edcca4fe15b138a3d99e3f3a3c8691050ebfddf50da80171c05a5ceb72759792a16c1660ec9b9741bc8141437a2889f049a1aca63ec024090b9e962f0cd6357738159ce45e3ff8b6c42f5470b3d2417c2fc603b859479f1b7da869e861e65b8a6b8e47f1b634ab703b81048809e951a4e36f724d34e0137be1ff02204a9262a3e47689271c0d5101318867782a511b9bf92dc53405e46909283908f5880b7300df10c23129fd0f42f2c0a66e19f358fa188c939ee9a132ae0814e2ae5bcc38f9fb5f1a06ce7ac4ddb872ffbfcfb8d52068688b5688a1dcdc40a63e92e02577f128911239e43a2b8469410c51b9fffd73a95d8165e8498b66c45f6746f0e6907feaa75887ab6b814a7071888a4a3c091ec5279e92b140d87aaa401de943b5242917c75c7d07a7f9fcb6f7e2a7e99dc1fc04346128d650c5810c735132cefc92be8c6e9a3f1e839041ffa190be8f77a84dc984383b794187198878ef81c7fe8326df6f8db18ed2c2b583b2a6d421f8748d10122fb949308056a2346430e6bf7c602af5fa1d0d4fb358bd3a976e8e28bb3d48e55f1173603c1db38e812bca4d574659e4443e37f816247e1b55c0021b9a2af5a88aaba4d4d816b901806e200d7374f0b6b6b6e6a0d1968f6c52f0593b298f7f300f213a29107a34f14993ef12471d24186ad06c3a497a05894f6ef88058bbb8572b93b29e1fc095c1cfa5742f0f7a0cab72174f6ff3ebca8839d61f5ee04a62284310c62b69459ff22621bc4732f3fb07cdb43bb9e883ad38a57397dc4b91061388314f95d8031e382085d313fe35a10217d83821e4ebe0b2a166f4b0a3a2e743f14a5a079c49684a21ffeb57a63bf3f83f31b11cef23b4efd217ae697dae7cc31ff05f8520c5dfa8409cd1292159d0e08991cefe6b528d1d21ffcaa3dda39d91d4fac222384636c3e7d6e5a63e5e309fc49d6b794a44204ed70d1ca137165262b9301bfa0f594d996daefe42d687265d669bcbca3c64c36b410f0c5477917c638d8fca8777d5aae39b4585016f72cf6da88cff9c5731ef8d0d66693c6780d2761d965e6db45e938569404f90f555f35782980ad895d90cfc5a3f28e3feaff0335ba85f0607abc6853dd059fc8019390c238861704baf43202b66a69684b4e0ecb727589d154dac49be925ab0bf863de54b4994e32c2846449be41d6cd77ae2ea49b063fbe0eb8146b12eaa68f36f9b5d540fae76e4c2224dafdffd1afbedb5cfecbdfd6469dfea34ea0eb558d69beca5ffdfdc53741b2f0c200ecdc9b6a1571abfb431406357ef8b9f316de919307351e852a8989cea7e65f8915ea65c7a408bc0b33f24ca87815907edc8a8f5ba99fa151173e62a9d08f488f61e3175eba38c01fe306cb1e44c564e8043df4c72f6ceb338fb20fa686ee3c8bc7eecd9c9e731a97ecff615802b6f0b88a49f61e75f8647986f66ba2e746feecaee8b58d3e13809199710cfd7ad02aec3ce4f19ee6eed5da0126ba4a737caa64fbe03d573f1affc82840dfd1c3e12fdc0a721f9f20b1db44f2912d01c92d25ad8cb08dcf839c988caab55463c3b6ce1ea36e3220d9f1877d067a6968a2ff864733c4846390e6fdb7b80a0a0a51029c8aa150fd4bcb918435817eadc55857206972fac189ad4f76d6087be229f49fac93ffa0f7c14fc17322da808f9c84f9e226c0090136c2e98a9f05221698ead1950ec5162c8f52ae75ea224ad9bb4e20c378be27b382f6c65d23058268cd52da743d2776e95d327b279c126214aa218b40b361140ae7d05bd51e11d76e93ad84afc427774079d3a1f6a0d8872760950d304638cb313fcc384493ebde7d919b7c825e5b7b9f29397fb7676de340f670780b125aa9c392906a1ea9de252af995e0dd984a69bb7081f93f6848d2a8606ae85f7b2860260c7077fe241e038de91b51372d85839ca8f7264d1aafa8b22153ce2410d573d72730aefb5b574a09a13a53fa597b604c10b0c5d9e876730a9fc96990200bd180461062ac05a0ff425949df5975b5ca3595a225522fff2df9bf5ae0133cf3603edfa03caa580312d5262e5cb0dfc93bb494ada58b9c7050e83d5003cf0bb9e46ee046279424ccb89994a4a9f0adbff61a6dc86fbcab3fb6c7b6987a8a868b256af7708230268cf51c6505e48c4efb3fcd73bfe8cdea2458a33805d49820646f4e6652f886228e632a268103b80cc1e3516b455122fd7d68ca82c21ede9f51e977c82e34dd074dbb788a75b14dce30afb3a7b73d054a215e1ea5c9d21014b34d9c7175fb9115af041b040e351547b5420579ca7d326dab189076ff5e7dae9397e838d9c75571b3f6e97cce4c0d8798b57c21b6a956edbbbd28942a93437c5363c444b3f45421fc153e6f481b70302e4aa9c9c61833bcbeb92c8162ddd8670e5a344194d90d2e71c8b3e6c4fc255cba31c4013d97c42a9d01f6a0e4e639f1f35d34d5bb49949dd7bd85ba29326eb113bd607e6ffc9327140934d7bffa0bb809181e52dacb8a88f96c7ebe619481acf694c1c426a1ec32126a41d0e0c4e8215f52bff3fc84a39053b212b7f058c377581db47eb73ef476fa7adefd3221d87c6da1ba9d83928d7aa128dc29e369b8d685d4873b09325b9cfc7412c0ef5e83408319ca01626f3fac447000b5355196c4ffced659966dad332c6b2d090c6fc45d2d2b7f8f0797f0d1faad807ea9148c0fa8ee5dd9c674ac4ff0c5a2d19c9523f30815f5a4f5f11b8d5c8484e4e0bf5a77a21049c926e45d935091fe21ba3c71e5c284615725325af1e3955e2b3a4e2190925eefd9f6d0aa4914e199a27cb6c334a01a6e3b90ccf8aef57d918e0df5897a908d4e68fc6625bed44b738370c64a9339016470c0e51806b06b05346cacff2591450f6f07a80d0e90068d3dda95d7a2875cd2708a7cdf31d01eea2e78514cd7fd7f53ab8db7228822b5280f0bb00ae26ac5c4c2cbfcbd65100fa1635d855c01b1d5f32760e010accf0bb30eb0ccf467b60cc10ac37595ac1a0953df757997453059a511863bc1e00e67d588dca2c52f8eb786499c1042b88e2012b967b4be608ef88e91bb384c4f0d6e30473140bd0c0fca54aa998f07c74d479e0cf94f8ec59de8c173ba7b7c6642a434dd4147025c87de9ad9264b9308c5a6014e6eef86a6a68b5b4c153f7adfe4425f622c0b0a461c43d9db8ca59420a3d2207b33994882731fdedbc6888e0ee4f9770a4e8fc91ea3b1716d4bf13713cbe80bd68020de896eea4593abd138b1fd726831c276990210b3c4be3d0e455c4fb0e383a718ed8fe23f2e06511a018ee3b00f5c686b16381916afa2abe0d0839b4205027b20b143a9f8e76bbc38fe4c9d1c6604702d5852e5d1480bde7417e2da871b327016592ca69847cb611f16a84d0c0ee10d2eb73ee9333bbcde37b9418b21616e620837c3b07af0076e87f6bb2e579d80e11b6d95496fc445e3d09844d72ca98d6684cb9a5340d8b87c82f6832513bec10bcd9b4ad68df69354874765f866b85bfbf011ac4e1833b61907a4b50b95fc2424da4f99e8c510d19a1f5290660542cd481ce4a2ced3f20809e7f907b17858d56cc77d45f0ac89b57cbf7c586bf3bfa817d8f4ece8f5ae2945fc885d762116156cb7ca3d0df25fccf941ba251b58f1a0c9f19baf93edddd7641569726152c29e1f8b5d50bd004eb51eea2957781383c2197ebeb59bf983ac3f809166f0c0f95c03898e8381eda5513c69baf5ba25a080c4d8f9063b5f7f3ae2f5b579347942526e38b7185c27047a766983f573caf72f9ceca4a90702801fc23d678a17c8cf730b0c1e13efedd394381deec1d298e0c5d0db522ee7686a2f2059efc901112e347207114107d5a3271c5a682cc899f14513486f56d777826437e6e9662368a0f8d730c83b1078cf455bea0d401df1ce7732497c3ae337a4a90e984c7c14cc3abcc26c89893bc3c34bdf47c3475864b7d3a61c4e062c5033874542c4dfb38b9b7d5559b8c5b90d9c3f0a7448f1c2b470035bab7ff118c8be762d092e1e9f1d16fef258cc438b8e0e6948b666253d14cf39f133dbe93027a7baa04281d7d9fede0411b6be5b485f424ed51818d0e551dee54a98976eca0a9701786d2cff31ad4dd093392846c5f63908e73af73631aea0d6a2e54241bf947bb06e8af658a5a2c2fa1883e96677d59f2e8a7c2c7522547b14b9788517af171c5a7d47a786b3d2f3a8334a2f42efb4c86996816fb0014885d27a7fae21e3a92278d9315b5ac1df5ae270c0ae687f1038e4ac73a8337f447fd0da88f98d30a283f237888ac46c03b15b1a5db397d166602ad9ace5f004a4d509396b5387241a7a134166d1ca051dcf3061dc3f8f0042e877e15132716d39937ecc06d1101acab241e2440aac42c87903cd8badfde687ce458b607264785ce025544cacd8bbaa25372ae149ec939c97a43d90d859df8fe59f60ffee2c8b74d477730ce947ae6eacef433531c15932799d42b4e1722250011ecd2485029e6d06a5a978b9bca503d38f772c968242deac8b8aa31b2c41d75ccfa429499b7c2af31ab164703dcd63770cbfdfc78d202ea1d4e140743167b25124c63e2d9b86f944091649acf2af07747d0374a2d8b4be648952265fddeb8a92f1ce7f8c1c5a9faee1a78c03aac2077c143e73e370ea3cf99f75de73acd37cd466201fc2b3a85124d39043a7f8b3ea23262ce6890741a89b4f739abd9f14f207abc1bb9082404a8b970a5851430d8c4fd0193971af791e6770a1413cc273191dd4d1648430ffce2a86bccf8273180af4936a2e0dd9816a552f4feba93018ada6fe485a904c78eb02bcd68c637e1b987dd96fb682425781a9a240ed26c750f0452297620a76a733b9ea316238cd62d0ef492186c8eb97edeebf5038298192c86832d10e7348f5639233786f20becd89b6bd31be71688a94126618f2a2d25ce38fea33334727bb740bddd625661835ca47af9724bc1ee5a3a0df08e18325ddef856558caac312f75e573a8a9408eb6d4980abf584bfa20ef212b6c392e058fc454ea34a3714edc14dca0415c9374fe1d28a7e0ab7af1a7542347a5695d18707d47adc73217b0d608691777f02f013e9eeef3024c0c490c15b6ff58713b9a7e39393519fbc434b6dd1d00739a197aaf4641365dd46c92c5058396e50345a6521c4a4e2f0b75dc1129358ef1267902019a07101a587ce2c91508aba504fe25e52c69c913f153ec85a356f6bf45140f68b2b492725cb3acfe3285010fc7184bc68f60d24b611325e4489e9f1fc9eb1d38de0b621c58654304183343018531750dc6986189648ceec03eb9a8364be93b555441c8a197c182b642cd78332cc5c662bca51dd89081c31daae42c542247ed0f833f33425d2e48ccd3f90c95ddf8e8139f35846360c5b0b626dec25a354a58442d2692f21f16c534edc0d4880a1e9e708690d5fc2ae47721189dda32879a3eb12bbbfefe4960f81be217ee02baecc5d4933d71b2b6465fd0742f86e342e8da25f4d0dcd639f7b550075bf3f48462f8b3ac04dd98e0e396fb82439dfc2ddb7e7525dcb7b5c5af55b45ac988ca44b794016a447c70a61ab373dc4b45854286a50c19f478265097c87f21d65d060a0a19008e271a5244544dfc1a4825f5f4c6f32955ae3831ed78d32d7192538765e04391a7fb0192dfe6fa5c7f8c6138eaf6a498ebf653de37592f15dc7c502f5ac4449d7202fd4e09caf7bce38f24bc20284a90a1c86d958f19c8d1f2587f0651f12684bc9b30307d9bcfb40610d1c3744e3cc0e0e0ac844c6228284ac24c3820c7ff94b2a75de9ff4ce60bac2432e6a1c420c59313858952ce00c26faf13bd0ac9262a52905133e1a1319457b44da2d2b1a0f0f9ec322ce3bc78af5394a003fac40aad7d16002a53e1bdb5c3fae3df6d9b7110b4a04bf58a94e044fed6bd139d2d160c1d9c1390b443d8e5ae8252350a2bd821ee74f457ade07c63f85fba3f252a615d0ee2b3517945f1364f63e58f39994f89ee38bc7503c981de71b234d97d4e380d95f03a04f9287f50f5002ee9d447a85af16fbefc484a6dca20c12ea58a1fd5ab307fccf83d5e11c5abd0655d064fc81149eebcc30969f392068d4587be3416e0d0ec97f36813ffefa6b911665f9be5c67692d3ebfe23673e22a43581a63210f3e5571e55667e6011ae7170a242c2a122f3889c288080b81be8b7756cbaa79c18fcdca606cc0ef484ca463507b8702fc6aca2fa68b018f5865b5b2e9e8999ad6d24130d61745f1cdbbe73aecc3f62a77e94aafbba5ff77d626ad8e01234c6f690af230995a3a1c9ab4bd2f99dbc85f06c6a1bca71225d46d47954a8c42b8468469eb4dbb6775068c59f18581320765fe3ca43f5e47a8a246a11d6164fb619de87f863805311716bea97171df19dcc98eb498a2ef146501e61057829009de8922d30e8ecb86db0cc980803558c1be466a30242b7ca3a93023c403d20c8c3f5d7a38bcff56a024c2123fcf04048e301484eec27394ddc071cfb4958808084269ce9d1cf925cb00da3b792d5fb2258f20715292dc4ea833d2f65c37ce1ebcea2bd0f3150b31d414da934804e0e63c0be7192265b675da23edbf9e1fd397e0fb94a06cba4ce322ed0a598a0544d163957c46b96250139b5df6090fd1f636cbab25d4b5cb0cd64856ba3a16e26c2b7e54e417e14718cc3fa4541340e986483dd626036b213db35e5d09231741970afc1d1d54081a3fb489fe6d0955f3f4ee6c833a8aec59a1039c5cf8feedc84f47b5366f5014e4d7a08869ca54c41f5e8e61b153da669b2f90723360fc95929d2ce5546cf9a2c8fff38e61975b9fdec2d3f0ee6dc9cac6e7eeabdcdcc8dc61f970f80aa28ed92ace6b59fa5f257064c75a30826f677eaa07d8735d89b834a7548f0a721aec2e03df280f4673cae7f5fd291f0debe69ac825af09628de8489144f53f3c136854f9800ebf3b3af92bf761b3c4defdfec49cc4a3f387b43c59c4d13e41cc073e88c8d96d955050261249f1bc817ad6117f1e837f072b53ff54a5e13274a5cdad84a7fc7e37ad5fbfae9efae316c71f5bd2b27e1dd389145b0c04c5a45184af52c15010e16d9157a5e03aaa556d2d2e2e49b66c9a165d7b5e7a3959f583b1cce8ca92b180ee207d5af199724521ea91e99e3d0620abed19de4ba57710e30c6ac5d9ebdc8a2c87154abd2c03f50211528458b1f2d5515948210c31a31d82f2ac5cbf98c9e64085c8aeae810680f2d962faffece28b3bb939cc2ecddeb3d00b7c62a204fad76359d3e6a527cdcf33b8d9b494d3568c4af63ac9364ff5d869ccfc88a9e6103e1e0d1fa20f5932ce61767626cb02f7fe534fa823c44b703748a78a3b5ceb5cb89e162d8e1149bdb071a51b248d9b0896f06a5ad480bd11d6fe18679430de4bda5249b42995d4eaf0d98b897887fc4067045f5c48263d855612f16ba66c82590c3f022a729cc13450bd6ae594837f36a502a6c18b7cdf52c1dd84a4fbdb55221517a57ecc1101969ffda0daa3a1cbfe9c49ea2925eae2fece85028a392381115185077af582292531065192ad020baf038add78eeafdd7db35abef20a1ed4bc1aab7ff41c6b03215ebb90c597dc37ef12c0985effe1a95652104dd5758a5f9181e2e4bfd315d1f95fe33cc30b1226e54fa8c19741a0de15e1559f84e0b1642d819d5de307bb90fa8f6c6841eb1a71bd15f7a03bcf69388ce42d5ae17953bb5eafd7085ae3d4f2c8521c9fb152a946e2f6f0b35cb011b3eef40ad5ebd3dc8f08b1071cd5e0d327671e12aecfb50aff75a326c17f88c77c91063bacfa565fb0b5905d8537cede454894a2cca0f2ae95e0b0920868ad0786b928dd720b711bb19e8968b0756ea0d55b4185a4cc6ec90e684f7989665b96f4dbf58f51b6af5d0e84312b1a5b15bd2db23ae3ded8dae87e4a57c75a2e19785f12f91a5d0bdc4bc1f32c6aa8bd21468df559bddd0753179c11eb6a2b281df707de32e325c871e9efe0e06fba5ed297c1d4e9cef29dc9f28d83e45ecef8e947b8b00b46552ddf5231c54248e598eaf6e9a07cbb87896bd869052affba1b846669fdc1f87e1f754f979d1fa00ed34f435435bf5d9d2dad85f949c0d4d61543425ed6a5d5db0225f2770206691eb2fbe5e77a95812ef0b6644e248513bb34444d26e1c7aa1b9e10d462057014c2530bb95e9159e36b0bb8445e50b777f82c6ba0fc23c50f5f1f5fb7b87822e3e86e129b396a7d247c13e2b6e6581d664ddedf64d41cd38e79bb34518dc54be963f5e7ec0d545a3f2bd34d9b3ff2c0580b109f79f0c4a2e9e18f762cee8f7d0fa030a65106231fa751072ef2fa4658a3b57b0e47cd4ea43855a0967d5e04994f4ac58a28c79f650bc84dfd93e95a812c00b5cce66dd10b27a7e0672a0ddac4ac9358377b3daedf28a1afc6dd30b67e0d5fe301806f5a2e4896e7ec7c75ebe93a86160807abdced34809be700e1f4b1a03e8120ca39ab98808e8972d3aea8752d265e2f3f382e0b047b1b375ed57d975de8790ee76ccd0a00bcef3a67aeeb92fc0426a6543678e97bdd44612b968bcef3dd6108fbff527bfa972eaaa851d6604692c14bad4848eff4dc05a9f13cbb6d1884961ddffac25c77ea388f846ecd8526afc560ed85663f2fe6a51a27d0a67886dcd223e6b0196c447a210679ef1f10bc22e6f9bc1a453207ff94b6158b93822c7f1d98dd8de8525e8d81b0c1400abafe9c79d5bd805cd14ec93ae11d76d5169e698d7a445ba61c6a9e48959500f93637f1cea23a2fb39c1879df7abd08278640d070c535c8f45cb5946324b3403805a3f0a248f90993d82567ec9c9279055e1e56256915cc324bfd6e94f15d144442b5f7176cd8a74d038b70df5260e5f36edd32341f2d00863f2ed06c5193650f0f54a560ec0161da7dab6f0029062dbf73a435cf431d7a87daae1ff67d78d8d1a8bc7638470227cdf7d8df56ceb12831ce56508f82010847e33e329770e30b403cc0099fde1053d987729c0e3fadfbcf200a82f7e765c0a717395c6ccf80c00d26777743b5c5bbd1c87cc77884383802cf0e69e79468fbe78b4cfe0b0360bf83ce2e69aae06a46376fbae8c6da68eef5ac2d90c60047bba4fea85c10f9cc39b981c10a4223150e061c254334aba2fd070ec1e3b826790c02e4d7b05b777021965a90668d8a70efa8ef88aa62160b80889e1c309cd423efb0aeb1403dd6499a01a0b3d7ede72c7c84ef2e199b87311204a483504f2df016c01672c2fbbb376335d1012faae02f4536f498231ff974d9e97571cb2a56a18e93f61b08de5269097bc433337d712db4e18ca1139e9e0e0f813d3e84e3d898fc70d01e9877412ad433921ce48dacb8267cd0cf7d7c919291b835d6557527dc453cdb5254712737edb384c90d16ea1a809e79369b7a4d21409bbcf2f385ebca8a24a2fc28aa3ed7696b0ded075dbed4868fd9dba241ededa48afd756a4b60ea54d57c7160c847e0569c8ee047173e6236542128845c958ef12222f3648378849727f8bb4aa1db3aa8106d3cf740dbc88d3b3389da7e9e7058cee800cc074700d24898907005e55e073d520dc81b604f7971cb53cb864cb15e4208020ffa9107b56f68109481319cc8f99ba360026ff9fb54bdc46507a9f996b0366aab65c74415de9b2504a9372516321de28e1519b073e077ee7fca86cd8ac381863941240e5c0f162617203d2cb8c7df76034473b158e38c152d3685c21f4cb5d25ade07b80f40b5cee24f6cb6c3d9a4198d6a0033b5589b20d18636ccef01dfa6d648a3733cfd7597a3308ba22ae685eb9ce8d6ed9374163359e12b986610e1d79935116b6ca8e4d202a5116ba3dd8aedd9a6cbc3312a0d6c5d586a85f00e967de88fd645112a206595908b09b2d07b2979e185c830d682470c462772cdee39e0f7725a808314065ecc76719da1c7a725e1d1bcfcc018f1cf73f7ef31b18751d705553127ed4f51e596e743c34c4a1644f395b4a5ca407b274fd799b9dbbf90368b57ea6da279aff4d6fc202ce99e40855fbda0b4d73f0d8b1dc958618c88bd9c4587c791d399263382a1c577cf93aba3091ead160160aa029c4c257502131aaf80f68184cc3a86ca4994d909806faf54d8f2f81f378346e2c2c2934711acf016e129a0ed562cc854511141ad792cccd1c6ae4e2878ae6ba0c0c2315679b62fc8650c652f57e6183df7b26017b016c822691a2555383fb5de63772a99b0f65e56b91ffc6f4c56a9f52aa03d10b29a77df905782c9478094f6aac6c6989ec9d0f4d36324951010dd956446b78410fa98d0a0713f62d143a0db0a25e643dad111778b6a9821fa3ba447ee92a3290ab0d62588d6cde8ef1a760568a2b820aa445d47cd0c3877e1d98c2299a0150e1160265cd0faf20535457ae720e1e2ed8da4231cef03d0ee00dd5b14ea82cf1f4c8932e1080b269bf56cd28390e792f0c006111ea842582930a36cc765b3e314c97f548af1f22e836a37c255282ea56712536c995d70f51054ec860b7acb7d6632083c062aefb4202fa9ff659fb4be8c78639309f2a774d31a1f741258222668ea2929dcc92a751d62bdd05ba49248fad1211947f94687498757f763cced2a2829cafbf7e9f152d7e63885ab99294f019c44e548c5526c8cc21da7101cf451d7ff881ffcb23e405bb0b0c84f39db3b11f24591fda1a29513ebaa92ee14054fae750a872a09135d06f6bc46a029fda0e1c7fb77b9a8da3f684ea88273b0b7a7fcf4c2b24464208a41a4d661f412643789317da000b810957d897ca9d65a567c4a968005933ab326151bc26c8c673f562c65291ad0acc51dd3fe64086f0485982f411cd9fc07e6e5b8197098e37c56cddb3f97cc2b4baaf7b1527baff0d12698ff4e5d493540a1f61c2daa18f4f9317fa0439c414d6f8b04d782041ec542ac0c51a9f80932d64196be1de036eabf8cbb580ff352ee5eb0e44da231e15193cd47c10a6e71eeba23801ddfe7554ca5c6169afeb272b6e48be028eb3592310d0ac95609ed104c23fc8055450f18a586af20c995e61048ef530b0ca904dd958516bff03510c7c20e24926f89c37e0328b6e02e867db4e1e94aa5fa9710ecdc327d0b94f5ef9085b2f1a0243aa58d6e903a4d660007a4ad357dcb8f90e1fd4a9cc386cdb2cd67fc187bae3a943e869b50653551814b5fa84bebc7e091a37a77b281c041df8ffa48c0af4d0d5d60f40adbea2ff17101190989284aa8d3a457dc1e07cc6d381fd44fa53fe0f406f7c095d04d90cfdf84eb4b0e787b1cd44f5b28cfdb3a940a5aa52c93b71d911b71b45f8da6bf10bed6c93876b18a15e1991eb129abae8edd2012e25b4540f90ded72ce47c8025a09c28d62116387e938ab2c0475c03f5740f05b65b73a394b708daf0e144744a12171d2ff67ce169e1d9f099bc749e8e90e97ebf07e249a8a5a0a00f8dce2105619e1392d8a4b94f5368e03c7e390d9410ebe39fb430c5c7cef56f35c61fa01710381cfa8e6f7b8a427bf4c957609f3c4588f7b6ea01a939e4c68d1ad08e201bee1723d64408d97c42e248397230eb9acb7d4234223fc58c96b11bbfdc7f60f9346a4e3b035c6154843d4e49a358efea409ebf1eeea3297be2b9b1a32b783f21cddcd40e20588f53e8612ca54b0b6a4a86e3816d31b5a039be749125cf411cf9fe357991c992726a51c82365d7b5b5022e99577bb13de207880d3ae28ba4e2fcf78612cb5a133954f7c249e3a9fa73abc8969d8fd6b63ef3b39b2ec3552567510665c09406bd0b58853c0d68bcec33454f35009430d6daf0690fd6772b5ffe6f8cfa0a4735abaa00c4dd3d0b99f3a8b52a068f791e113331b28d990f01b3f775328df1b126b2c2d7336d50350d111b3d143e68981d15b614adae1339d34a7e5bedcb8c9842c5f920da8bfd010561730f95e0f65721ff8dd12349032f901bb0461a2b803bb5ced5f7f92b24fc9a7af3a26128bd2e93b67c3e6d1e11dcb3eac7c19092980268a7cb49c4df376d011491fd2ad24a0c9b3d14e93c4cb47eab0b41e7e52925680d55de3129f96a381e5538cee83067bbffa7d2fe47036d0981b67a906c7905f11ae11ddffd7f62565244db725232dbaffb8aee7a5d82e04120cf0949fd0472f12a352f84e314bbfa956da818016b485f57e1a618b54c9630a4dcc44006f40b541c97b18c6a5a9df214d2f355cc752abe664a370f7c55c8c945cd36336fad21751565fad9f69d8bb4c701560bea8cc44ef9ac8bf60e5858fe48bd37d568d77db896e47cd398c9b3ab744705fad9c8ff3a0935bf3690009bb814373ee1598ffa3dd001fbc1fb984b073e69b1053e8a197c948b5202093191cfe8919ccfff7d7afe7119a50c15af51fe89f011a85d8461185337115a4c23d67bad780ae93d79872d2912ac1d41ad7de59edd466fd7cf124742b69a14ac1a8829769f65a9083c7221a23971c7b4375d271752b433fd67de285ca7662e2875afb01ce0b799df4da97d76dc65288a308f3fb6f1d243d239bd829bb93a4d836e3a4149057908929d88ee0034c20bb4ec4337cf0e9ec94458f03c359efe211a023e4e7478c97538bb5f0a3ece558461794d16cee779a7bce0d412ca9e1d1e9681bf278b1e38ff7c283e4a1fbd9ca2aabfcee38d8c260a1759b9a61ef3fd984bcf923343a092a894ca5d17e9fb02bb653abfdba3bdf910f1f59c99f76dd16270d1b78c35f3498fc09af1c543426ff24fbdea4d21c415be0784e43971667103c2511c128084009359e65dd9bbeb89e7f83fc23a7378f0d475ca156227dcf42c1302363811ab72c652bbc89fd08405602f78450f5fd9e4f8fbf18366a26250d6aaa357fb3073f94c9c11ecb25bdd30d16f4c414de378a799b75d1dbac40e2ccecc5cc7382bd13378c34ffc48735532364f1a31bda8f20cd901dedd2d9cc782f0ada5a2b5b6f06214de9842c9766fc238c7a4fb1665bb110554f6f034b24f2d4d98d72586fb05e51215dffc38dd2a4234fb3fe2472a79834920a5bf9c0138641a8941ee1872590b159f5a844259e82fea0c08374d32e67c46e6d1e542cd73ba6b7f82ddd065f0cc1f5d86081effc3b19856816c799d5f7784f8ac23cb36ddd26baf78d5fd259b97afafe8520bdaa6bf169b055e267f2eab1eac7ed65dd8c78f285843cf31f81d2df15c686c663512376294945203c2308a3d61de601e8a5c70c8d8c8e17675f5fc34c77a7e50af2a008983c8e3995d44bfc38ce14afce361831fb2cac9aec253ab103f17a2b0a568c34eeff88f7dc7e0ad34f528353be30cc600ba2f0fc1075ae1e015a5b3055538ec98c52981b5da24864aeb700a331832b79bcd5f0068418054aab32fc3f05880dbf0e8f5ffafb0b3a48493d816d12bfe9fd257b0f998bcb9fe58f5e3c940871704b69220b3d2d963660f0195b129261edc186b3671e42ddd6f6c041a25844e7678c9b7a8d8ae88da5c1c4558dfba7c3f72d6bd43141bb50517edf210120fcfcfb2d7d0c1135f245c7f5600e3e637a65339f9248ac29792563ae0f530698265aa2d6dae76ce019803f37a308d47abbb2efc1df96c6184cb191caee1eac1ca361e801c06f820eb5adb2f51881fde3546882c965f11e50806f182d540b668ecb85835508ee55fadae1cd2dea1d8d6936d6178aff2fe9d4615d2ecdce9d24181932868efd68642bd3d6711c767485a180685d6b5acba285099f289c63aedf2ac3752d90f469d06b03e4206c69ee84968d02308e5cbe6b1b6d245aa38bd195aaa81c9444dedbfe6905e2e017776871a47edd3d2d36943d3f69d4d0ad8d52bc0ff94a8b6b3b726d29a2d8ee6fa6c0c6aab92b42380ab9eae952b081ca4b2a0ec3b44802bbda45cbef4391361bdf5f3f0fb7c2d9405edfbe2bca6b0132691bdde72a8a623571ceca3cacf5cbc001cfb5ef6a2de43627560afcf0cdc4483d6bc6ea0474c63f52e1cef3b2a86b9d55bdfd5e9bfb5ae1c9b422dfb1985e992c8b93001dfd498ce6718c388d26b5fccf6f072e11164f45630dd36d0c1995dc8291647ea71ba149b5081b3c2a518e8a327be34805cd3942636829383c92c0833abf07bb3224c8882685fd7fbd584e9c2af03521f5c2c3531436c868ce8e3a12dbec41bf9a3987a73a94ead608349ca3c9022c0fc22663d056160b4827e27e3cfd36df702adb002e9e952132febdc76a1badcaf093ae24f7942c1f2237a6abd77a116f3da5484dd22686b3b9927bb90f4b34e3aee511f6097216f508936688ab20edebc0a575d2487240a0f17649260e4b3ac247f4b888f2ddfed5c8ed4c808f17addbe83c86fb8151843d31e5cab3047853f9ba0401d4e6e516b2416867cb57b79ded283e875214ebe8a8259436017eb3c9126e7e6533730d7c151d08557315fbc5ebb0f86d1828afaea1e940e9b771ef2d2df14c295caaf3e0d2dd9f8b7c4685e1c3bfa414e9ec68fb1558ccf890c8d2a6eedaaac35cf5e3130f15ac657db8234689a60deb224d21708bfdacfb50580e936076b47ef201f645b3c40576ec6f90c2f99395caa1a9ceb580b7c13b4187b09c6a59eb71e9ab1f4719ce87975a2671a41e63099ddeaea5870b690b0a7a4e41dd3ae7026c3befe550e1de50daa75398c072370927fe8c199c976824b149235b2678f43af8423c237d95532a6cc5419c7064f0822ce0b8324850094ba162d0d88f4635da1cea02e63cdddc37d61a010c11ffb10de57dda994e476936639024bf28d00c3259874373c4a9b6e726265d6ef9b9ba8ef6f9118d2a4ff246ea2e7bb0ff970995d292b14838be52ffa0b90544347533642731c40c477194e2d42870ed365a65cd9166e61f8241f24681acd65d25cf30625ce131325928351d5606c3dc1d61c2d1c01530ba495f79f3748780d44c29f14b67ed3dd1cd0a3a39031f76a72441103d61a2e06a96f7fb2eb3e58d253106e65c239d57f1489bdc5843f28f7e0fed45c28d40cf8649d85b19f5175ae183948085b867fb3aa6f63980f0bfff79f7e038e44a59e3f78a6e6e36e0d2dbac091ab5f71dc923ba1b39aba80742c3c72d55bb7f48c9e4621a74073dfbe44494c353a88e85bf9137afa15222b5acbd3e06352e38feff3fada8af6ec5e256ce4bf064b46eebc4552eeb91101c939fa476d46ad340655edce56d8e28dceec5fdd67c0dac1e475a3f61162ea282ea881524937322a68c6511748b1644a058f1b1e352be4ac3591a17599936520bfdfe07ac20c51c432aa331e260fc2d5930f74b02ab878c5906103cc82d10aee5001a1f3c49d3679b5e5608b0e56eb01009d1776fc0f1c1aa9515ef6a751cb984838c2654299181e8830601eb3fe2fdb7da83e144089e4f97c3a79149d715cb63fd1e22d440d2b0394ce400d69661833423fb5bf4cf02120ce0af2ed0496c30a430d140148b413b3ff626f46e5a0d940b102be2b191434edc61ad5b0e274bf4799b9a7ea63d9fc24454cc9191131c323f1528f2e82916eb7a0b667666d113f43472eae6d51b7b6314d6d35c7b51d536b8b21a8ade8a9adf5bfb633756ddbfab58d92d7d63aafed3dbbb614716dc5e6da9acfb53dd2d736d6af6d9db8b6526a0e6a6bccd596ea5f5b09a5b656b7da26a66b6b22d7d6daa9adea59db63626dcb8ada16d16a8bb9d77633515b19a9b6d8666d4dffda5ed36b1bd5d4b685b6b688b3dadee9b5b551d69634d4d6f054db93a0b6459ddac6f4b5d51dd6764caf2d86b0b6b2a7b616b588d756e95edb6ca6b656b4da225ab575be6afb4ea96d4a51db02626d4587da8ee76b8ba2d756dba8ade95ddb19426d8bbada56d06b8bbad6f63a575b14726ded766ddd3fb55d116a5ba4ac6d81505bb15b6dd3f9daea106b2bb76b2bfba8ed81b6b615bddac6d4b5b5ddd63699525b83acb676476dd587da9ee4b68d9faeb9390071fb801d67d6f9b60ffceb16e23abdfd49f2f0e2438dfdef87212404ad7e0e79b4faf33caeedcba30bbd167b68fdc6101ffb954ad4c25bcb6b003a3ffd02272f76562136b262c6bf157c91ff9d248f67243d84bb7e07d232e71ed73af0f7d77050a081359cd393ddce826afb72c5774f1649d7931cbf5245c101af0f5eddb34074bb83e1e05dc374d22f4f03bc7530312fbd60472dc62bc528c7adc62a8b298eac8daa8aa889af8e5e8f5c8e5f8e5d8e5f8f5d1e5f1c5d1f5de5a6c727b50c71b958b717893c98568cc9163a1905e3b590cf3efcfbcc84026f64d0d5afeac10b0b24e4eafe3440072a434d8657b6d86ee23028357a44e6b45f91c5b024fe54435e2c1619020ec86283e6e6aa2c16d0e3439905c8da4cd2592cd4c6875db4803e2ddc95771ed6c2ac167f2ab61845c5c7da16601c99c06e31d08c950197d202507471610051ee948b14dcd8ecb9600bc7a4a98b1573ac20bbd4b18e81ea5db495c4f3808fa017d021f0f2f6a29c04be4ebef4468703ee0b6379f8c25fa4b7c08f041896cddf938191767b1f5a30bce3decf208c6d0258a5c2d47680211a46b5de7bd58769ddf78e203178b70486568a696df106b918a641dec38c1126761f431cc3a2c77c2abbe7081979b3fbd823c328c7bd5e2623c37c61c9055919ada85ce79649d4e5f67a8d24de6e7d7eb71c89e1b5d35224487eadda41c90f611b5233217c443e8119f6e95300c809cd798ef0b78d87024b567d4aeaf460796bac291d5926cfb83b3beedea3e0dcdfa3ebe39828c86d115200eef73891b34a6b2bae45c284e4479af5964692af7f30a952c39cbf938b8d7828782813bcfeccd3289ab45a6b46ceb0f9b5769353f6cdc73939ff167372cad7f93b69673fba31a9177a2235f4191ddf676a1950bed840875309fd8d154a9687e87349a25d0f4669e519fd5c7eb4e90b29d4409f939f289da8bb54b983295ecca6c9c59beef63d650afd34b956d4dadfa86061a666d79c5a7a51155458d5c9f956bf86ae12cac6fab8266bdfab564a195b7f17726dfbe74a2dcfebef62af6d9fc05265059b5d456c7ba4abd6056499e2914d2e5f766bc92cabe8b3994bd016fda60514a13677e2daa7f9b5e4d2dabe8e6e3bb6f5965fe9dbd65de2ae36c6e5ab30b7b9d9dcdd72baf037d4ce3fb63ba7e4aeee2a5e7c11797317ea5ddad7cb2e8c6fea62be755f7ec1c5fa4d5d03b8ee1130b0088287b309fe4d1f0c01e4fd98a06de17b5c6fef859d6d8b27875d99af6b87d14e2306af25f1e94cc5cff6157357c4787527cbb83126f12712173cc57d60f1a8b87843304e9a8cef91c665b67115723ca01daf79ec71381139158d1cc948ae87251f539343f1c9058ef235a0720c59b989583ecf5a0e862e57e9cb0718e6683ce60e98f992d01c1ed55c66369fc29b0328ce6d38e71bae7324e0b99ef47c8c7c0e653f1720d0d768d03158e8261ffa3c283a98185d45471f30a4a3c1a43b54e94bbc74f89ce93e992e89a79750c880fa73feb14d0b4c16db876fb9f365abef54f75d9ce457a6bfa0fcf7c116e0fb6cdb76602712ec6fc1fe53835ddc44d8d1df85fd74d8d5cd871dfd95d8cf8a5d69b1a317fb89b11ba28a7ebc7afd737bed6d76ccafc773b43156e112974d430651e4af8e7c4b4a720f7abac493c345f9c5946fa972d39b84a16f84ab5958482ac0ca44f2268d7d63981aeae73b57f839132ede7cf2d6e30da2c5267f12bebc8766a898cfabcc68d8c9479aebdf30265f4c45d7b04212b678efad72dd48a660c8b8c84682fcc7b172f7da82b5320a6f329267f33fec5c76ab501ef050b2dcede158e237b82a0b3172c191e4fa178ce417abd405f690c22dd67b8b5c1b93151c02d7b24922fb718c5c76af500eb0d0b2eee6f1786236b82e0b1132c19372f557cc6416abdc05b610c22fee75cbdc1b90153c0257b24826ff38cc5c77a9501eb050b2ecee795c623701d716a5e606a9ee6ffa83d1237941f42fe8d90f96c68d06290905642e50c72e12101711a2d6d1c18a8675d2d0997db0b38248e7422d87e9c6d52e7850ee35f88f7e5ae9eecab5a6da5b52b2e52ba1d2c105ec76548753ce32c240eb70052367ec402abc5d178f04b9a0d0374baade99e876e446ddff72299cb19092e54052b29b1a256b2d0e6a3953adcb916a4d0ea6b902a381ce3d70fc5aacda1def4e7752712025b1f111b403c7dd87031ded9ae7ec76f3b036e966e62788bc793d978e23878dd9cd05741f2bd183393769fb1c2d454df488cee6ac6491c78b318585f84c525e7212dc4bb67712e3582ad390a3477533d5e9e5fa93bab27885d34f4d188e248df1cb27935b428dac5d534c74a7c81f5a2b0ffcc6792237272f35f480e7e14b62a086c94a62409dc2d7a966fc279a5e2ed9130e2c832f1d9f1aa1d9fd74738b79b83ac5ae41bdbf3cb8200bf43d75810f54afe85aadf19f478b68d1bea716ed31350b5c3b757f7b64b12dec7eca721ea54eb16b53fd1f8f2dc0725d4f5cd003d42b7a0d2bfee7d1a25aa2efa9457c48fd45d7bcde9d1e509cc8b89fb2d81f8a4d84fa9ce5a7638a29b8492293cd6abcd6b19ee7d1a259d6f984c5794ced22d776e5df1e598ea57a9eb69887ab53ec1ad4fbcb830bb240df5317f840f58aaed51abfa165b8fdfe7269a0d2a48b31106c45d6c7ae3e1f5bccc3d59c7601c5fda5e01ad9d0efa30b7ca0ca1682ae582daf588c15f9a63d9efb3c4aba01749980d0e7d12a90266b6ed7202065b980d126106579bcade50873bbd4b5917a25562a05ecb73250ea90669a3c501dd04c53049a433465c20173fc864c7d408ebba9a90a88633764528173a0a64f2a308ed484c909c481c1fa89b11f8b2264e0c9b63042ac6819c59f9b8cecc76474683066c7c66d02b16da93900b3e510a33be3ddcdde86b1cfa13302b77139b070a6bffb605c216d03cbd9e6cc39c35e7cf8a64dab2a3f3ce83b2ae3e7ad8c5aa72ca326d9c4aa4279b4d1b17a675e206b37e398c912fe80e5e43ab66cbf1c970481f31d8fdd9227ee7002e664d03e77088047a8e95cc775861bab4ec650db1ad6949a7b84765cf8159d42bda5009b4002668bd4e944abfc820fa75ee74331782e66c5bff5184f8c5eca9522f81bb266099c7406fbedade119f605837f6d89fedf11a1813170c44bfc4675e57589c95448c7d5b24be8223a6f2960bb0eb30d8864d4cc53a440e0cf35a7f198475836f5ecc8416e20913f8ca0f9271bf616cdad0fb8116028b5a45aba0e0dfe04e7ab5c76b7de0b7a8ec201e5b85172179288f52e7c29bf0aa6ca9465f3d4c5c3e65e15cbe6e0ff410fe838a4141f49fb023285bc745bb63c30b2575d29dffe4ef80509c794b0d2714b98d1275cf09368235c95489727a39b07c5b9ab77ddd3c3c33f9001bc1a5f1a6f84c912d5c27a77f1241947f5ae3af8ffd0533404a9c7c492b51043cd74e349f9453025a7971be70e1e36f3aa28f723df1f408299d60033dd537cd39b62d0b17e115d389768f3091935ae6512fbf660bd58c69502cd0aadcd91a78332fc235f61dcb0e5b701016e9cf69db0a4e5999f1c32383e5393ecfeba9be3bcb6ccdcfea0d213722e0f8bef4179b3cd8ed082dfe648e5f707309c657d2dcb7e304d2c59626ed90372901b7fa76fc958cfbdda5b2c2645783f019b51bfaa5b9e9b5876394ffb344b84ee19b9a33f1441eb42da8800fb9c507394f927731d95ce8c2d75810401ab4590f43dd4f0327e4fa396221921333607884833d0df125a52d2e6e1623eeb2792ecc3828565a25c73012d2bd3e4970b6066b61472ca1d56afa1e4abdbea5b0247a4efc83005ae0a568472bd7100346bebf9ac18e6c240b1e6940f011e35b758a3f55dddfb8fbec5f461d291a9bc8419c8844e999895a5505c59dcd34a47141409eec4f5b56f63b8df7007a20b34c0720006069bb9e82c892323b6384755bcc3467a4af7e9e4ab7035c907d742a52c630b174c45f8c5b6229a0fa57801dc6fe0b67d6e58fa9aa6d3f5cae5e6a849474ecebe126e630b62729620077a747090f7d3fa0909176889301e51dd1c3de78aa091fef42906042e3f8dc41b5a0880e58575bab32a1900ef46cc8614e49ea54e1422d39e4466a8ab420dd88b0e68c81cdb6877b69b167ce1c39d754213f5165178d3d0e84a78e4f21d0359a408d55767679c2781626ab4b1a6249d56838dc21125f9038baedd2d9345901dea2e4c795861098bfb3ab26d6ac7eda9a1490e135393080d18cc236c4426e4f16b1b23a5ec0226a336e97a439c48a08b83265d09334bb9c70a03f944e613dae7d45201f9017ede612a3a1912824311327e6aae343db03af111c2b7ad322d653b883a9f76125eb02fce5d284c64dcd4589020ca1cc358c685e8f16abce4ff60fe80981d9b5dde26cfcaf0e7fd2b12d56a399baf0144e4329095135125364cd8b15564a357f68e5a078f6fc4da44a0276f395b931bcbea52e53217701378159c0b03fee6673e0b6fc7b5dc53f82807f62039a3a80a859a11d6cee526a3963144a973a6649f531dc274b64577112b5191ea742b9a81263512a9f4e35d8c6feaee021b8132bbadcd69bde5659e5ccd24194a325b766665e70e181d3e5d89d06d4a1d7cba5f8644ec66c459acd9e0669bab8264d24e523a9e59086c658a80d651f5fd76a04a54f9a4917460bec06860ad692ba743e5baeae94ec21167413363cfc39887c9ee77d173576270ba366745279f81c79a8690e8f4a7e32bafa71dba2d3ba3fcf77d5e4779acdb157d38f19f34b71053a77d1eca7425095924dde450f3dc127db46a989e450f1f67533fcc72f980afab6e06a8b198defe1a654adf2f065f48f2e74aaf51dbba812b7074b1edcc8f48101c3cbc638bdf15309596c0ad50eaba00da08112d7f16b682ce6734313bbafdccfc98fa395704fc4e6f5d01307ba9c3025d2b2c5224c5b7b4e03cd871990bfe6a5874204f88adaec440d2aa1c2d9bddc70502d86eef939b67414e52e6752e4bb022174954591c162d7ac4a22a6a393be017482bcf894b72d54df53daa8f13251e1d1825f5119ff65c589f4936e6babe06ff7810714cd50460ba2978e1834e3a8b7e23ff535907081938f445ed63e6a779575ce7d75fe69417d445636d99feaf217f11abb8108dc392a96b7515ff35c5eac8d3ad32425bc2de227a43adc44f9dbbdf50aba1fbb95e6fceeba00d01f34122e262141e9244c842237f6df9d602e63112fcdb522616167b49037d492b4130b5c94c5d01cdb7960004f585b339abac23fecf24589d91733bd37a1b82c655cf2f2943a787c1bc8c2a7d92090070ac9626ab9e1b6d82624f55b1e81185e7a41ab27be9327909d6f6e229e3fdd6e0fc7b267cd4d18b1210f03f6d874e00e44be8b0aec738929304cae3380cc27500d1e3f6488b4690b4ed9daf2aa003a8a06e9695d7f6af773e922e948f004788c111407fa0a2c9b8a9a0a2d6b95c78a5054b7104f98e72cedbd10c8b8aa12aff702ff26e1d40cc06f24727911bab7c9b99aa75f2d637f3d70f29119b9014ce3fdc09b422216aafb748bd1675d9615aab605a610da197aa7d44e60a90eb42ec41d91d311d5aa6887b541c10680c5040e184d882ca01815c8645dd27f02c797cf0ff70ad64949fb640f3163e33b88eca8c22242d5ba57064e06e0603143d26b12ca3c6ced79f7c9be170376b3006bc024eb67e50bf2282c057febc6c9f4114304d524fb49b8397d7b708f5e8b056fb1d74955cdd79ce46f4cf51bbaa91b40aab5238f91f7d22a8cfd0fdb9215affcabebd550e21811ecd83dac68365672c5b81b35e46117e43e0d11b79e39b53c4465b5f2826cba94914c088d7f8d08c64c84ddf913e6613774b9192cf7272599c98651024ee3f91a2f0fd10362f0bf5b7b9d49a3cab85441c175a0ddffb79cba49a001a65e3cb6678046511395dc8beeeef33445437af70530045897ab5ff9ae8eb7353687c0cc3018ca2027af431665d40ccba4a07930dc9c398e051a3c041866d1fd0d491b81f53b027ea804ceac14fd9312c831032f18f0f23c41fd8a4bfedcd66dd910906cc5fefde219b40b242ec99ce79e584fd166c905bd88b4a28da27224424217bef2da59452ca24653d060406dc059c0e1b4624243f5a0ffccd78a0daf5553b54bbf6c85ff1df709bbf991df5f1f7b01f919064d9d6de98d7536d24243fbb7a25a8b6f42a90f43c19fdc82d424b16041501d102c267005cd31314578c81831327c0614a163a6647241c82d882e02084435067f19dd606a519d38f129136a00d5a2b9d51b47cfbb5d60aee48e53f01a2162dc61af7c3fad4d61a7746a768af482263fb4fabc5888361c38edede8596bf02504c0647e7427756e8bc2312d092157d7744027ae286a21a6b1231d21721bfe3115e38d9f8c8800d4b5d9228010a8208d3642e01ee20c39e8f818d007644d201ccce7644d22116c4270d49b63fa501891db3d4a0c314403bdb9fe68663bf992e294bb2ec2865c9d19e6f87a4080d6dfbe4668fefe7c7c19f7dfeeb652f677fedcbc9d12981c708375e30eeb3a71f8ef69bf63ade0ccd5eceeeffcdd01466e84cbd0d2af5e5e88f59b3b24ffb10b4edb50ba41ef53394f366e8a77933f575541ff33a2c2d8b645aab2f47ba828a5c2d191423555a6be90f659005ae0bbe7b1d16003eb2541fcaa29897b19ccf21c2c95efb1c221cf9d9e36c1ff3e548d8735f4e8ee4be9c29bfa5ec952d693294317be4b937f3d99ba9df0c08fef771242c8aa12f5f04b55a2cfd314f84a3fafc39bf7e9cfcba85933fe6cbf1d6f42057fed05bd915345bb0d86cc16200f0ecd1acb119cc635a385babf7cf21c2c9affa1c221c99cf3d1bb0625e7f394438fa575fceeaf5abbe1c221cd5eb2f67f5f92bc78b3e1f9215e32f2ef4221d967dbdb68faced9ba91f0f1ebcad903df2299a955fb2f273af7a221c4d3403c2f6dce36ccfcddf8a70b6577d3973fb6691fe82260c1659d987d315cea014be19fa85907ad4a7be1ca2191ed9572086609f62d8c2061b945a2dd6cce97116f72a6c8ffa6642c83cb4f9338ce8c85a9a35f3c3f9daf367f8d091359f08094209259a5a2d5664715f0a2a6c5f8b8b1135d1c4892bcf5fb5a021c0f3da91ca0ea76785acb5427b5ad89e7686475cda7ab6666cd6cc158f8eac8c25773863b715a343dd82211a7c7e50faa16985bd2b74a837c531fdf5fc7befc559d5dcbd629cdd7cf1b59e7f9d138a46bf9ba2e9cbcf316b5a963dedb3a77d5bfe2cdbdefe96290d1e00ea3e75621785c65aebe3d7bc1dedb72cfb42126cb4cdcbd16169d96b9aa63da5afd11434fb9ab54fe360fd6614d1a928e50b951d390f521f265b42c769012d6aa41cb68834e18cd8ae1194b123cd603218d59e2500d8f135ce9bdbcf8fbdf3a97305092df919da8c1cacaba35ddfe8c91672b0ae86f64aa868d728498076d0ae5d4c46cb6fac1777075b75b0b8bb2fddd3ae6fbd95cbc1baf28973a5346b2c9d012bd29a7495b45272ca5287d8e1aa69cb5c29cd95d2aebf4af21b19a6f932b05ddfcb3187a462bb8355bfdfc1ba26192e19405e63e6d56da9b2ebc73164b464f4c8f0d9b58bedfaf8c2fc264cc598fc46ae9a4e48b2ebffec3a130297824c2cb2ec4bd30ee6a1404ffaf3619dd3ac41bfa529a3b4eb6b335fe8b083b976fd1553572445d30f655ebbbecc13fd6642a029cca79c08f39379fa6470d00e69cb6fba1d292a68069e00543bc3a9e727c88f5c4c924c199728fdb425cd69d688ace969b059a30d71b06e3d0e569783553a596ff3f9d980fc266e2007abf6d6db3697dfc4ddb30dd9b423ad71d0aca91dac83ed6abdeec9c1199cf9f4e997d37d9a0eabaaec67e18a6907e0b5295dd141483f4cbbfe56a46576c5b4cae2372e447644d8c1e417e22d487b92c34983cd1ad1c7b79e5903b3ea6b4b5303dad5c5a4bda690569441d1beec1a2b18447bd0e1fb87e00ea19b35753ecd1adca7674dfdfa91c35b90dfc4a60ee6607dd8d0f64493b28355e9f97730bfb933f7da8af442d3ae35176d43317cd9750bda35dc8476dd5ebbd64aeb5f09bafc26ec7eea539efab467c8ae149c5f67c4be259062387aaf004f035ed9f287215b461a5e23e553f9f5903ff70ea73fe7cb1ef2570e7ae7a013e930b569fc238de47648ce831d28c85085bd7210bb27e30a2d3f66493acab924b120f93049f7efd2c50ee98ee09c3e7fd2907e3ebf1ed34ad1f5bf1ef3e7ee41e987a594fe059211a7a2980f3c1750cd3fe05a4cc0742a73a4316bdcd2fb806fea01b93da0ad568ee07c9fdc8eb9e5cba9335367a6d28104b4eb0ef19edf440626039381c9c06460323019980c4c0626039381c9c0a4b22423a32c298b9225c946d44a7dba7339fc4e13423c53ff841b7bbe8e7b33f5db11811ef367dc80a2b6ff091ab5fd5104d85ad4e274d077b59e0cb3ab17aab042a53de27b7ced18c36c8d6eeeee78c6625f21930f90556b69f9f7391adecfae0940807d3f1308b02f4a027a9b2063fb9a2061dc7494ada92de69ff77e7e2c39ee83bac18edc0e4ec706fb7e266cb0ef6b7a9b92faa4280ff8fe80dd73870543b3894ef3f734608c397f39cbb28c6da62bd3a40d3ab4791b1bafc9344dcb7274cf7227ce95ce79bf8f3a68f1c5185f4b63ec08afdb96e5a67dfe4ddbb64dcbaead328ccd3f0d18b968335bf0cfaf23eef8338bf3049afdfc5527e38b37fcb3cf83fc9e79feb07fa49952bcf85223befc3981ee551733b032a4ac5c0e99ff7e98bdf6e1d7de390fb29faf399743cb729d1f69a896d8a63fe4ab9e87a7eddbfb8cf3b5b72fe5a9de5d33c43d5a7bee4312563bf5f147d093db213de05ef585a9e7fee9a6c377f517f4e4c169ebadfad99a07a6baddf01be7416967aff5d0b353ef9fb71b38946295df98dbde7239b614f785ddc637f0e6e1af1f78fb4e4ec7f62a6ffb42b955cf71aa0ff456bda6492ef58524ec14a7c3041966ab3e461adc075a8b7b4b793db647d57db91df2ab04b2d71ee5514a29ede1affde4766c5ba745d3efe19ffad05fab7e879b07fea9df2a4fee6ddb7ee334c96d9d137adb3c7fe776f86bafe27478333bb44f7deab5d7521e6ae7507dca0b559f0462a4b17d8c34b84fa5b614ea9bd9c17df6d96fdb57b32f7bde8d31ad8816699e860192cb5f6b08eecae5bff7aef6cd59848f878312a7478771297f1d7cb947cbfa25a02079bc46648db1b9ebf1705096e0a04df66ce40f6d18f0d9a8efa03421b5ef834d3e4033a8f9563d90ab9e0dae7e51fb7b2fc68fe337f351dff685abecb3e1372838e7d9c89e4d0f3aeed086c5001b39f2e43a889bfb50f05d65cd397f28c8adc9adf12821d42e123a7b1e53040c84207beee23e13eeae380e4a11a4cd1afeecddcfbc1368c69ff3f09b7b3f14e4b65f0e2a370e5d45a7ce071d6ad78e05d041498e899191104741045182217e8c8c84387aedecb52ceb664df6f1b5e838d3aff7299d35d39cc7c14c4e6ba7a59ea5540432cbce32ff447030a3f4abfde086b71ccc3ae06096d5207c5e9325d0fed572ee7230fb3a84963f7f520f7f85f1ec0c7ff6e4156f817e92e9934b0e669f5d3a7b77cdece3b4b5037ec32387f84d6624b34c8f6067a15cb2b33176a6a46767493736abb2b3cc5db326cb6cec4cba4bcf2efbc8598cb58e33cb7ef39756124410251802bf965d46f4971859f67cfadadce6477d68498dfced15bc3de7ed708fe2b14312e21287e25e4a8ee3384e04ad4db989f1df0fc497db319fbe185b7601767c7da1644bee834a3ffc3c1cd40077a1431b1b7f35d259935452a7527eb2c941fcf8352984beff4f6b953007f1d7236d5fbecc4ff16f5e28af6cfc999763bee6c924dec2fca410fe4c44e39730afee14dbf01bbaf1e3f88d7cfc18182166c0237ba4cb6ff26771bf5077a11ff69b78b4c3c8b431f6d91803610d3686cd1a8c5f9740c326c68ea36377a5b0d89fd961e7a69e4601fb727b28c36c1946fa3bf7817df937a64ced8f3a3875a436fd4c486d9d2b65935aabac5fab3ffd9412b269d34f8cd413122a549018226204114ef80842c4d20f2c2e3099e0c8132b4236b0938397292ce850451756754245ab7ab23064a451b7b0a19174806d04ec88a4c30fdad31085f8f1e7d7e3730ad0ef8b3a50901bdfcc241a05df12986fc244c1f77ce96044c1bbf985fecef97b146dce786da5d3294542e347592ce3224bcab86451b45812179e699145c9b8645cb22c322e99165916aa9ee83de8d779b4e596483d286d4b01fbd50fa907a11d77dcaebda5c5f7b40a749ce244698a93d78e539c14ed104f719264c7294e7c76dd718a131736b7e314272b6c89c30e045a7efadda79f04e30a18abbe0e6bc3997dfa3aac59058ea73b1bb2f7d8034f30c58d0e9e709f459cd8c243c62b5bd624b476c36f620d067460038552f9f17a55b163b6e4e9cbb7316bcccf9cd09d83f28f884484d8f18b9f0932cc9e5000d122a3133a7e84d198166932ee66de0c4e96e1d04d3513c2d47e7a0a9904faa941bb7a110909d08e015c741ce9f418a3cc284ab730828168e9884969a7764c7262c8fe3b39295d24d9514aec69dbd8518a972c5b8a962c1b013b4ab1e2b5895e47fab3e1ba1f7477445bddcdc09a4e667210671db5c15be5727440e8c8619dbdfccce58f0cea7ed071d79964fbbf9e86947644ca21e62eec88c4e488a8c815a3ec8834e4b48798a4d096455d12daf1eb9cb37e19fd5367acf5cb783b32bf8a8991f9b8f272745832af3d6d7a312f23f3edc8fcf462be104799fa32d3d3affa1baee5193a3e268166dbec73ce39735e4802d7819983fbe8692f85f234f9947dd072d3cf41aea3e21a109594520a45eba8482925f676f0e77bf1c78cef63fcede0afdefd426c2df6c7d5a99cd2a54bd1ba2a9d0974cc9ca7ba8fe1a0f33818bf6b32c676e7a99e4c428b28295059347530d2840edbb5c6eae30ff6fc89d730114abde472c4f8cb931cac1bf6fce8fde769771a6a433d8acb11f3282e074a6a727b12ba9d7139b6a75bb665714f0ebfffe8affab92fc4da977d3ff8f3a348a33ee75cf624741b7fcdf0cd2e9ec1da63edf3a350afc968a8988f5acac31fa5fb914ccac394939ecc977aeca5b08375532939583fff6447d9275d0eca21bf89d7cb5e7adca73ccce9d5cc3fa593835b620ed61cf99bfc26ee268f8bf136595465d7d7de0972bb569ef4f19a3a42fcfcc88fae748111fca46b47e35879abf7f1ac55aa83fc2474fbe6a739e79cf3ea95ac3e87fbe80d08f1c654e3b8d4e7f88ddcab8f87e8be8f6711e50f258f1c4172a9fa3340072b97fa6874d01287df487924b3afef47d9a33ece1c9362d3ae2fbd117230f0ba7dae59c38f664d7dec4faa2bedea2ea0fa57562cbf4e88ce1ef5a9cf91925f8c1b257db20ce57db965153f9abaab3e7fc3c1594316a99fd5cff5b174451af595b4bf855d4084d629a1e9c718263db44b82ce9742eec6fda6a550dafdeda6ee5fd4bd77434dc06fee77e037dbdf07697ed5cd40799cd72969ff6d048cb54f793ba9d72854eae3e6fe866b2f4787957a4ddb3cd4a7525fea370ff5a5b6e7b8d4dff0d496359ce18c6f132dd26c1ac5bdeae38798c6c1fc28ef1dccaafc59cb258d2790519f73cef93bbfa99f3fbf4602a5f276541fa3b5eae34efd0d8f51a13cfd2a954af5284fa35e85fa544a95f2b457a168f2d7232e1541048b31c618e34767e84e7a5c3948e9d3d944c63675d0698bad527a8d9efcdcb568a9ad94691f05207b29ebcbda45d1a1fc51ca3f3f3f3ff547e94749934a4a474f8e349bfaf267fed8af1fd59f7cc9230769288f22d6ba9b355c0e295f47d226d2a02fade8f9a154ca5ea98adf30e1a734cba630ba6d4f48426cd2b8cdb39dd7339ef64aed87964a9d54a21e6afb512007a9fc715043a271a418169b36feae482507e97742f4cb1fa511228dee8af6a77a86a74a25ad78d650f00489670d07c49a5a97d8d5461215a4306811058513d3939c01c3bd2e39f99aa6492e87a67de671a003296e842a5a7e766ece0ee2cebe99f93de4df9fdf8c223a3fde5e7be989e061c0418ae9bbd5417ee491e5d7bc305ed9186bdd75d4060b3ad41a780d9e302cee67c0709f665709f71dd8a13f09dd74bfdc6703668f81c456071d6a506b1cf09b187b41c334d8f48626bf98791a784936aae8f9df476d646152dddc30fec8a5b868aa5f9d149d7f7e1700fa19fe99619c614a29a5f55e2fd4c118d7d770a54fe320a55694664aca9712f5848eb83707fda38ee6524af73a3d2a2513fac8b5cd6beac79f9ca4a2e94ff0299ddfe660ad35c95b901e638c5f7869a5b448fbd3f718bf907a1597be0d43fa089106ad7242b1446847a4242d9b1d91845c737e618cd43a18232b82b30608943a08ce9a48e300b2867e44da3403bc804d7f628904060ed2a79145ffa543964d5f04bf29a169d327b941a116488b349bdfacfc06f5f13554dc597f7c9447a33f502ea13a0d6e42703501bfc1df0148f3ab6e06caeb8c347510cff7fc9d149dbff834236419f7dadbd1af4aa5f447957e8e4bbdd65a7ff6521a85d2284f7bad6d0d838cc6c1cc6714d1d33fc6a51aa4451493a60ecec40ce4474a29a591ca4fa8b52591201dd3114949acc7755a7bbe4e2e241e398ed6ebde7ba90c550ea818e998ebe3de2b821e8ec460049421865e605d305690ac5cc9b2cc5f5946a1b841a6c482c37d129a35111351a50616624d5e6238d214461431bbf7de9bb37d1b6b4588141eaaa0c27128e9a13cecd4e0400312101b4b6900012646521418927049c113960b9ce4ac0571ed0084a5a7090d540c8171f404ca8fddd65a6ba36cf19af825b3a28cc192c2d3616badb57609d7b6462c70a5a0abb5d61696680b4cb4055817c500b82082c46be2d821c82a20867ac3961bbedc30060e3c380ca9b8b3d65a5be4f29af88383b45057f447e0cba648c96be20e6dbc362f30c618e3284b5688cac117578c6d625b6dadb53b55328e9d2b39ffb0d65acb33040b1b37c1cfd3f88b5a8142c95a6bad15a56c65295b61ca5660d98a53ce2a0b83b57646952db8601245cb962b2cfbc5124c9670527b7244aab2a587f6e4e8e2428bc9d3d2154fbc08c3e6de7b6f184fb326621732d016495158789ac1e90b981c968069e19e1914f04505f95e30ae7d77883888548ca51892c2488a2752244951e588018c90a8e10443b41475d185972b18638cf18f272a7c8a2d720a1fa94413307ae86c34164758bcb050aa9d8f7be9a2e8c1a7f9e781e2887b94b3756a92432e9ba056ab050376ed887484cf26e46689886989212af8824b172540a0eebd37862433ec60c40f2e3ff840eae28a2d45f1a07d1bcc83b5d61ab9928d64c9469ab2912dd9c81770025142e2d9feb0d602e00726507ea0200261fa7aefbd4741b326625c04004d98486a0245966945feebf462e435f149526579a9f23d3347a878220823b6584114d6e5b2af8fb645e0cf185e137986f8e09801e84130da910d60c1c4c2162a3e5c49e2c24b45a2c77d7448c0c353e50a25ad2aa4780a9c08915fc438f072f4458a919414347fbcaeb53d336c6b73efbd5c605e139d6296c5e5c9b2622d6b33fe2c6aadb566f80b16505f641992d4a522ca15dde995d674e95dafae0c60b4b0c2119296238240d992595860b5d62a848be210e24757b1b94f338f5c79a20920409a88b1d4650b17389e181fb6645ac5eee44ce5951c94dc15e02e4e338c2a4a4aae56ab05242369f1a4b47ff44427b9d46ab588c808e586a41ce410242d96703165063092ac60592db2c84be4071b6cb8a7b941b3d7564b39fbc3b64eaeadd65a6b915690655b4b7fb4bcf062052da890b39ab8b65a6badb5d65a6b5770655b3b81d83057a08471628b99a413c31421531cf961454a972cba1cd9400ba72426887eb05c71a72f62d470c1529016acf0d1f2c2132cac885179946490a20c8810278454d1a459895131adb596049493e1070821beb89cc0c2ba57e424aebf1c20f1a457412cd84277d45a3ae4de1e2235e07befbd41b5666c973cf834ffb5c70162f490050952a005872a28289203521743eebd4a12c892051b0760384d1caed7f6c209436178b154451640ba7853919ea4223e4e45155f340d4e460051431231b0609483162427565c78a470c16114abd7de7befbd5766878a7dc364fcc3025898c6404113409204b915493c71e003bbb65a6badb5785b6badb5d65a6b6d13ca2494f390a2dcc364c2c9af0c110b929da31b8e3c89824b15fa6717ffb1a145ad562b07f79f1da16461fad9d9f571efbd4578c9e2c1a7f9efe166f8d2254b8da089268a98e2ea22c91018603124311f1e7c9aff2cbb3b40b8a030317a1b3c74592710c2d65acb41ab9573b53bd65abb8210282bb850f038ec56dcbef7de0b4be23571081b794ddc2cd813af89f583dc7b33133d3d5469b795e13b5b041442565f3451010d41af29885041c49598e440c945ffcea127af892ddca35dddcf734014e435f1664faf1cac41eebd374a8c89fa5c25a044799285964f6cf19ab8e9135fbc26d22a7fa35ec950bd183184248b1316564c0124672985912c462c09a2c308a47812d4c5052e6b2d144598604815613226fd806d409428d517eee39bd4f3726d8811db1ed10fbb18a15831b4ef0dc71407cfb2c409ca922dbad3ab4cab8adc7b6f8c0928312d5aeba7489c03231a8b09e6433cc5d8edbaaabbd65a6b12a6591337a5d7050d18d90942c315493e6070275f929c88718bb0e16e5c74d21331ec8f7d6d823abae4359109c3b453b77104c5bc26e7b99343d2b6da5a7b6db5d65a6b7f5b6bad45621f5b7b04936d2ba5984589b44873f58c8bdaf7defbf223a7033f8d83f307085680058f0f2643c8f072288810e2850ba6446c96f012265a4bb3bb73efbd51ecfb5a867d2f68a4adcd9fbf9f35d675ef2541185418a12206253ffc09a4252c3ff6b595d21a69a85d02a7fc63f42fc96b4bfc6ab5b6bb0ca2c856ebe5581f212d960a5c0a727c6987184b051b184c00c4229af140ca4f67cf2ea830b154488017277ca05d6a68b15448800a86744d3ac4db73641640b4582acc1a362e47a608f222ff0109e88504f4c4dd7987a0b7430c7e041d0855041404b04e294168c14906547a8c33bae872a575cc40decc971fe26dde1a345e33039831a8148d7795390a11d50c004002a3150000280c0a07c40291602ccc234d760f14000c748c4672582e0d07837118864110c4300c83200c03010400400030c83289b20601ea5874e088207cbdbe16189bccb94a6cddc22a336792badd5ec5ab57528521379977aa915d61b4c4a14d155a4abcbe337d96d5d0898ac6ee2d481c6793caa3ac4dc92dccccbc0834d439e1103bbc030ef28fc2d2ac9f3c5a057bc5158af2b50cbbd39f1b55980a97daab4df4620abbaa0745bee07ebbcf697af8f4fa9bd3d4c12e3bbf450281e931bbcd59446b10c85490c5cbd51c2ec4f8e69ca26bd16f24280dbebb26d6f1bccb3acf755e700cb131ff7790957366692157a94372fa0875e5e5dfc2d249232a95a9c1237d44354e5c5f6d9afdd53157bad2999acb221cab39cfe07ad9a74500d25d3eceb67183128b2a22d2832ef3b22b361ae0621ad46730c69f6071a1f5924c68a7381db71c24b1dc87cbe2bf6eb1cd44bad8883e7f7492808816993b3db5beb57b8a91df42cdd2203655a72cbc4d4023829cf433f49c2231e1191cee6491456210175e3b671928cc83968c5eb83c54af6ce455ebf9a1047a5e1db3722589ac2c684c31b04abc94dead38e527a901bcc8bc4ae7825c05e16aa411a1a434216f27966f3583ec01be11bd230831db63399ba68362fda3eea5dbcfc43503b7cb681dbad983dd75f1b2cc86d79ad7124f616bc075922e4cb38278986e609509183073186c71de3fe8c8176c359b238dddc51e8fe71146a3eeff6f112d4d5009b071d2fd2b23f3ca7e37a60bdd2226c762d1452a60d445848987e31743022a3b56167cb83c55dbc33be91ce437a973c60501ea9e3011425558e04ae9395ed133f927d34c1870f6b4414cd165fcc930a72b88ff740dc25a7e84394a1a31a1f82c215c20cb0687a4804eeb1bc0cc05b9666f8e93f558d4048458efc79279ca3708582fd00472d71d91bdb83157ba696418462971300b70a5278ee96f2ec370200296a1e9b7a8ed2b16b7633275b66812d4b3d6b332b5e26e53682d944446202d8d067582aa6b332acc87136eea8fda4ce7f42c55f955404b79aba2f116b95981fc69b653d8594a81da026a5883e9b2583e571c2ddfa012c4bd8a21e777450c3a306dbab376f4d44742f565b879e9f846a2647d855ec63ea60b279e8e1c85f973b8583597b3729b685c251b9ca4f5fe783c2b4c5f70e0ead5fc132b8e67d5576cf61bb4f3c191bbe112a92aa4af859c2f4eca986be451ea18fc4fb9dbd04cd128de8914abcd71526708b211b37cc67fddbd694d59bcf03fb3cf9f773b78d492d940ef98dafbc977837a8efb986002ab2bee7ad0136057ee8de652f90d0a988ff011bac2196b574c8fd5ae3ee8c1a02be9aaf37cfb65ed0807bd4164f0639cb87dd3031223e82c5192462b2d531adf4a0b9bfdcc9cdd17fed8509ae078d67e0a66489fa6e2f12055598471116abd5e5d67492399683896ce8158943f711f1f8faf5fcd679172faaf079d2696e9c7b006bf16f5c4286ca1b6593ec1965a87de9f945657644140d33ec87669d90fb52bf172ff8f59af5c182742d3b068d1fa4a103bef690e673b21fb37e16103e6b0214f6aee758015f7567804f5b8a84ed1b2592939d301ed2a73c6a7362a1864dc3bbda4541276b907bb476e839aa80b5a93b8ed69acd4251256b883e07a65b6b8c2d65cb0373b565cf80ece93af416510d39a56ec17fe2cca37d0321e44d5a4042cd5a66c65d4dd2a82468f187c255f1428362cd6da3a57952ed7bc7c1db603d7f624f0c734187fbac8f841959f3871185bc83e4da47f0b2393951a167c3944e9b687c7f2d2f28075c84eec10306abbc488c3b80c0cc56d945aac30bd5c969709fcb994216ee02c78f68c25f413d8ef62805b03f752e6a509ed733ffc4db58653ecf0e1a9436e323a84a4eca03d3455c0d552024d680c015e21b30e5b53d9e64b1cb8d1e7d23739ceb2c159775bb811077449004aaf83956a284fc55158dd9beb266caad5b8c1db669498cae396a1a4885e5c5966d2984529b9bcd3588e736b7f72bafbe76096cacd4e1dba4655e4c56a04147777e47e3a4b033e214fb76ccdb776ad073326224968c3649a5493b709cb64675f555bf1b18f1acb2c1be5994d34d8453585c9030ae1832a7939f5c4c6332a03d1891369175ee1f214ddb9828dd6ce456afb2cf279ac9780a735c834b1aafa106ef217b77add1a7bc5afeeb7b0ebf454cf98e9c2c29a50a0129ccce81a51bd2c5d8006db56e0ee49a21b58158fa67f228a6b077cc50e7cc76ef36e4042634b7f02c90196b05bd68fa80561c5c70b9bd6812a502136a5c59ed31793b16da70722959b62eef642085b64440f0841fc2151ac256136b574207ebcb7ec4b4e2dd88b6b679fc18b084b5c63a8e8db6a0ed7ee7102aa4f1f956b0c991d24f1c558e74a23614fb8bd14667acc25451d1e5cff28ca57d03e4e4f6f64db720cf986d7a052ca36a5db8b19998d0d40c47cb4a197bcf477c2187dc33d179a5373647536a147f18bb8e7c065034a946fa416036c609f111e0a74a651c5ee869ef2d7117feb9bdabcd8b62375781cd81f75b72763d961eb0355232d7021e5fe5ae0a9c1546c52d167f95c9f7d3c641dd26f3360c5b78ab2c3e7c60481ca7fb0fbff0af77b4afee5f95afd95dc8797bab5a97bc78e45e2516cf4d2ea3fef831223bc61edf447a2ea7f69d3d04454723c75f5523dff3387d096f80d9a804fe635987f473b7a708c3b14b15a8ac81daa9965db26e2204cc5e498d74522f9e74f8e0cff102b3d9e9e4de11fe7a42ab4a64dbf7324292d0a53f21f2c3cf850b611c5628a482b4a2a51b975a5c0d4bc6eda9b171d772a19c730a4b051d7aebb76f5a89b8695ce6ffa2ed118e9d42e3a657623e8b0a4cc2fdd55b345af6225d73947562caea0d66a86fb3f522d9c5e2052a0cd4cdb263282c07ed15d90bfe085de0a31a82d97083b6cf2198b7c4e8936e46c6b6a69bb9bbeab44496d031bb3a244c90ddc831246f8a9dd1244615bc1e30ac260028a64088732f773f7313a25856aa11304aec1accc7ac1c36fa9bffbf0fb88a66ca154299b0b5cda0b59fe00a99ad7a4bc65d22f2f12063e4e31842fba6449ae504d173e5194ef4ddb468fc37240a90e86131c216e0e03065571a36594ade8780c546d7027403eeaeaeacb019da9898966a12e745e426706c99c932ce23032b241cae46474feb285be5250531d517aff84ec7b9fe10c68cc482b6bf969ce6214b145496c78bd377309d31f764c4eec434ea03a028f6b7b75ba903b8709b506dd0ca2acb5b58ed416740395345c7df0cdba9adb2b25dec8b48b6ad1e222c4fa0e1b4e9aef6ab45c00919b62f916aa4c33168d308db0b69d81e19fe3fb00f6c5d2afb06b272ed2560aaf159982d7f7e41b5326f18a2e162517ea0f890394558065f97a822e1ca33a7d66ffddfaabe8152350a81903b019fb6bb1d339b3a48535b81caed4e75c2f24208e35eada8cfbf87142f90761a99fa7ae70c7b429028aac56fbfbd2ce4a6536792151c7e6f4d2eb5984da8512cc5cca778d5bd53057cd58e373a780682eeef24173fd49c672e3d6aae7b3559a1822fae86dbcb19f5538afd74f23567d2dce4ba03d7c69b8ad936cc3f8b76bdec392be751339b36cd1e8606ddca7a4335ceab9d54749cfb67006604568719880f9e0ad7ff68d7b3292d1b769cf62b14c6df9c22d8e53094f0307b73d71bb5097480e28f11932a26775f9e56a416d2c33d43181eaac972fe0aaaa07b25fb0b6455bc9d8e2c810e6315415e6d13b89b59fe126b6715c30aa9339e426239614c1bc7a33833ad1ab802833bae2cdd6891b42647fe2d02e2579569d0c9e60e7f506ed0071f5272054f99848207a17d5e9c2ea1eb8f7070b1abe79f58b69d26a199f005d3b50a7f835646f561a29bfe3e61299f6355bba7db453d64fe97e668accc6d56091949220889c41d411f2c13571204bdb11f3465f870fb659f63c875e501d3c7b52addb30a9d3acc14109cb62cc39d0fe6c1547e945a544b4d66cc22f229900e275358745d56a1c87de1863de7f416e63266724980f6c69c1f3f3e5cd348785e9560bf52409750b59f5cdd9b876396a5e704beeb790a9a3b4190670904d1635693683ac18ec3436bc6c6a9c8eb94ae44c5636bd6e73a6db91d44d28099673270763d23f0159f2164d2128ccc8af9985eb7bdae356e5b49359f335c435fa3a443095fe1ad936b9a1221bcd189999f1cf81e5991970079944aba2a88304a3059b3532748b4943f69cb01fd146724b7245a8e85da9b5628589e6c2408de45661e207b26db99ba0e31dcf6d2f08bb08505031bb8075a9f8803d21ba50ba1f1b4492593d24d34265539b99c7789e572cb507596865b968d39aa531010e8293721c8ee7efd01ccd2442fceeb78af6ad22825d869d540b0a9b88c943894bc7c88174fdf9c9d43f4e899c945a32b3ed9e5978603f90a3e496d551fc44a10a340342a2fdbe2ac6f2e9a0d085404c28a6c858e1c39475f2373cf7642246d4d7ac189f547db67ef917cb50a25f9c223786d9c382d55e913d35cca87ec659961685b7dc30ec409cf950d6375dd1a10a5adf9f765a3b0bc443cbf99f1f7530ae626c47f10312aa4a19f2fe52d31b16d35dc20da5842b053fc58faea2023176b05fb4836824cfdebdc8eab4c42466092aa0a8a10298d73269f91ef56ffa2190ce5364d391d893f1318310b395ca55516e5c420b9dfc1706b03c9e0c53aa4fdb9e87821262c98ba1242cec5bb87cb11b3201babcc449e8d9e421d4f79f91513d3e0fbae2784de6b07155f2a28b43e2d11e45aa968c546df4c8255b82ea0a66889ba7182b545325156d4bd12e77d53ea2d3f8829fec987e01c316abac489742ad0c142e122a9c5226df2d3f2dd5c5868b52359e41c5963ae2b726d31651896592f78e2f72b542e8f26b211ce482955739c3dab7e728d73dd7ad32760b5f7d3f50226861b735d0f8047469a9b627dea3e56c7f410a389969cdfb9b74a568551ca10ae44f9d7381d53ab39e1ec3541f4751e868d46098c898dd61fe76a2ac38e0e1e507e8fb83829e75c77df031f2ead935fec175811016fcf09c01dcdd95cb45af48714d792414fb9b405e87514d4a1957c58b73187c5ae6e82ab51ff8a57c82cad13dd913d459afffc0126ce579b79a150f8052e049caa36796130aaadcb62b6c2554510a31f3a821bd08b84a98cfb8f863447d4f859463dba39813af3a50fd946c1247af129e3eaa2d2f1453e16a37baf9ac5bdd6ac78fb99043054e7655d602dafcdbe8a97051c07ed8973fc4f06d21480569a229d2d31ad06adf16844d900724c46cb8853d14b33e13a528a4254d0ac4dba25278a927a8b1bd7d715feff4970512d6e2ba44460f3f3a782250857e021d938902d40f2fe3df30485062d05ed48de90c61e3e72322e1e43ce14e2177fbaaba6823db782a389fe56cffc2f9ad1c0815b030d04764907a7eb443e2dc34ddf0711b09404eb1977f403c17d4486e9fa7a9de6cd32b1570f31669ec8aca3b4612d06c353af21ffc1ef7668c2a911759dfb8dd27ab626ac630dd6714d28f89acaf1a5e58162d7cfac0b2ad831a78e18de0cc1c75621f9773f1184221465617c83790a9b41c771bec2b466d7f9f8a567aff228660c1a90348601c3c3244378da40e5db4cb3c55fefa2e85dd113071e87c6d16cf93963afb46c13c3cc61a24a3ade832b8458f327b09b329252945d7e49c07d8dbb249dab2d85fc180053e2987bdcb3118cc1df6ad1e22f99efe1715fd3b9a6376145930183c847581a135e16f8c316fc6c876050b756361584f2079b8f3c0b33ecac566d3d8cd18a8770ed783142581b65efc53c1e7618d2fcbf50acdc5ebdc5242a5f5355022f61027efebbb57cce990377494e33f03caf86a2a59c34d29ff163008271ecde1184d133ace1ec7f0e2e7c588f0a47a73c3c62a680987d200b35070c84a894cee18bc821a030d8427b639edbac6396084e1a163478c77e22857fd632d9010a7f0b88c7e3921ea8ae2bda7c9d5785826c912975307c01fa870ab8c502a19918c28d37b74961672da533a824d9f6268ca04d47fbbbd0c2498491d1acf39e66e360c13bc28d2830d9fe37ad85d777383b5801888d550cce7208ed2561186263c19f7926ac91f23c490f3f1d36090a6b2139f0310afa3d89387ae382b42da7edab003868e52b93304064ec82e33c5468b2ec7f8b99023f31066b4141f5c166533dd198628c1dcc82a6d6ed848441609e652db5e32a14ab05068dbb0508e4a6c2fe64521958263a06540dde51092248eb9d0dc32207777d29ffdec1aa7dada8ba27026c66e0ffa1fb47e2b6e88a9d0284bf2ca4c9dc07084f86c13655480c8808e710a63a615ce5451e72bf418040bb603a6edb51fdef10a5e6526f7faeda448c3a78cdecfafb09b0bc7eb50f0448db6baa9515e61f5a3d908b4492f4a6d7c0db851a6d9aef108680e14b3bf805e1d2b14ae03368732b7213b062c9f3da18034928f093e1d711d43b5c98a6bac1eabebf7d6db9bf2db9fa2a6c49f5871238f69d61a38b8a432160b2153febb012d8027fa5560a2e5754da1467548b0489f02bd5bfac220e841a6188a46faecf55601cc40192dcb91a439601cbde462ffa1eeb7e7b52e5459f669f2e80250948a024b5b9b9362ca431382b480d3201ab814d48881b70e9ce8745bc2691747b1c88b0fcd96796c0d95d0aa0dda91ee632c530d91aa9a2d1e6411d75c1da671ccd5d01d1527ea69c8e9f91cb94c1f19163a9ddbdbd79fd03b33664c680a650d250afd6a939a4aa14d82441ed40d9d2b62b6289fc312d1a068b40c4076cc80054f8f5708c361ed3a6977c2068103dd6cb529f102e65ae05fb522ac7b739e9dac5e2af1c346f10d3cca8b85caa2e5a78a5a74acf1f438062fe6c9c52292eae67c0cc2552660485879639e4375e065821385e0f6c25fc2682a5ab8a855aa6e9ea6480067843456b2b8657003ab6ce5249ba0567916ef453df11a60f76991ada9cbfbf4dc8b992bc551e6235643d38aa17aa5900e2a8da8adc72d463a0b776a98ad41065811dea7c8f34896820b23a3dc2bf789ce69d0498bdce2769a20b759114006089a82108333f28541ae99dc49406add04403769a261820b4bf988a74f34d807428fe832c99d7a8c37ad0d660c093561724c5178060b23f1ad55b68cfa439772a8efdb94e2abc3c38a90a3e0dccf40fc84e18dbc26836bb7a213a9eb11aaacb7bacde8e283345bb18e9ba6262935ce78b4cd8c65dc9a2b68d386bf98e58b363407c6bdf70b4a189085b1e99a0d7b9a9fc1338d731fd615ea16e6fe218618f9fb64e9fc3100580a94a0fae9f1f23ef011a19fb4a98678b95683a82d9fc036249f74286d985bd038ce4edc968f0a9072351010b2630fd1847b15d311131e986a26fe38586f5e71e60289b37a10d00d577bf816a228638ab81f67a9f0eb3b5bdd0c2df96b7122080dff9449bb41824465f5d8c2726851498ba13e86ad4110cc6d9e6a1a8812b1c76048470e811490d727cde573fedcef23cfc567189d36beef92f6dd6c26d6fb9b5424f3ea73601def996485b86ab9288141f66d4c0a94e8b13c384499d4abef55570a05217b21ede1a39282b53282a12ed05e8834829f0044a36b9356f17d311e7e5cf5ded8ecce66233136f8a31dfb1ca02b93188c160b6c01fad591246c1e468425db8def7f412c1fa41a11b73a1fe4f6be70bb9cc1399f24aa616a32faf0e57d3a4c804ce79b66a8421e8d3f873c9702f8246e32aba3b90f66a27f7203b49e76856e3c65e239b8a48c1f393c94b9c512cfe1348a0a5ac3bdb4bd62855d261254c8c68450f79d67897d4e9bb934a0e5d40e4e2b1250e94273fa90d8223585954a68365d90536cfb68aab8bbde8365927d6d2167376ac3f765fc40380413a1fb037174fc0ccb8145a2836dba1f0b78fd3b55928da3977fc5ed1d8ca008bc7a683b02258588a8f23a2475f96714c277e3afaeae8686bc8cd96ee013ffb5df9643706f35f45a0ddf9afa0d60f67a64dada94ee24534cc7aba16b09bde32d6700fcdf8770b176bc59c1eed0532cc1e37af317f4281d4d9d6eae6e997bb07fecb007e08cc40db8306cf7131b071d84f10fa1f7c9c7cedcf5bd8f1669e3f7c7b6784a4169559bcef0b1ede76daaddf9c331a24c4d455e2be76c04682a950e4482e0ea5d45bbf51d3376043acfa2b245d77c0ded6979228a9b69eb2ba7298b5344386b5c387fadefbdbac34b9e13a63a34dcfeda308eba31609be3a7332becaf4dff1cb970d569312cbf3d12b49747a54f5e2ab291a2a3d85443177bd62164eeec2cb44bbc9c2dce904809a1eba41c28616caf2b5eaee9b6e4f57a39f7b29831d815c906ad6c88862d2c62811b9f7143c5b514ed6cc992728421283f8bc494b46f8a07bc4c090ae6786528a631cb94b8868dabf6044a9458673580c76411002bfaa6cbc4c4d1004fe056fda059b6eaf0c0a4943dbddfff90c8c1c00aee39b99698a2134cb7167c574e30466977a6f9bd85f4af859129e73e086a5102e1778eed931f56ad9b1b796324b77cb462ba2c30f559d80977ddac0d712d36b62dab2cd4851896d0308b4f1c48aaf7b9d094ee2683dea5a56898da6498652188559e2f276859ce67db1e42dd4d760147e097be847be013a8905b6fa814ec14ebf2d82854cb7c8401aa36917a56f7bb8548c2962a98aee814646b7cbffa6a3ba195dfe623e0b6963682f36c472fe3afbe754231205bb8488692c241cb8a89cbf2fbb251f9b9a7e4ccee3b7e86959084ad3505e475e6ea25313d8411e1234fb30b3249d526e175594877640f9dfbc1921bc64523a913174a8d3350290ea949ccd917b3969233c5c729b921c1614aacb86f0fee80e816a0fbd03493363f6c627509caaf0694b8c98ee6c50be511a8ce7a18ac007e8210b5a887c2d935c59a5026ded7dc9bf651e288981c319c0f707d5156249494ab9d3b9f1a261dab375296f972d82430ccc17eb5d351ec6db27839c2a9bbd8e656a533eecd34ff4d8abbe33a58f052de0226fc720d40daa515d7b88545b55140450f2997530501e720456ab472200664a96a169b910d00a692572ca3bd712c737bba4a7de9b3830e64f689105cc130af6a435663ccb3d3ec20a57650858412a55fcc3e0c69989511b924bb5413ec3ebbbbac8af7e4579fdba73e4fd7204fb9300b36e7636131632b4d976391407f44b7cd2bfa1c11283db2eda8c3613dac72de863205937a60ca126631be9bd3ee24444ae57460a1bc6ec7e2bf63d2f385914b28a3d85e9d6994cf22bca8ad8927332ed6cbb313edb3d03dca380d2d61300dc33085790d0130e554566ad7b259ad0b9f72db1c57fa15505f354e0366077f06ce9cf8180c0095a01928943092a54453c26e2bf837dc687eb288d121127a0722c43939328dd3be3f5a5dc90408feb07a5fa5021b527b240c16aeeb3c5f783a830be78342cbc37d2e0ae89d62a6425bb6c86f58ac6c139b73ff13c815e2b77ab8cef1a343b9ca54118489f5f4dc5d927511b16f704f114cce186936f0daef8f752d8a699282f05b10c2eb7999d5464a1bd1b5ef17527a36d462635a5a92b1e51bf86d850f1a2c5a3801323490239e6db490453597aab57a096c8797f74cf4be60f5bde30b003099e68cdc15a417b45a1e139a5bde5fde916747f18a39acc7853173a9b0fa6ca6d9c659cc8d9d1113bdbf882fd1b82994f8a4ffba3308fca9b33481e95248ca2567d6565db4a307893e9c29dd74ea60eb50c3d631b21bb894ea51226707773cc0f97a1ba19128969ee44548c3366157d377403c141ea873886c76aa992733bff297bf9b2b429a373f529d81f45241ce59e671132360b10fd68480da84f49d30f132c0e4dd692044adcbb046a8204e20ad4158341a0a0128624a7dd9460732539ebfee6609d21f95b257c60139e8f62f11407e71e0ae4c97740d264f20ff1ce4b1c6d32e293d4262f12be3d5df2ee94109e7f1d69e9f8bf7049386d8694d7c90c8e047ed99b4d305c1cc445315130140aa65670f498eb3864808c96638a92168722d138b2920c37375dacd66973c3ef72590a11844770d9a07d9588a35d996f5be219cdc5b8b599e291ce492d28bcd68ecd77cb605d1e543c18166ad2ac1dad6355233230c9903e9804176ae6fb4f18eccc3d29a53345d0034dc035b1b5c0f53e10c156b5113da845ca8a1162647b9ddca90653b8510b54cfa74c55fe4e8640a48c953f55d1a3bfba3536a58398dc9bc2359cc8e0aeedf2796e6f503a4e8e23cc60c26fa227457eeb035a2dfa9c4830c8350490566d8667d373b8518f1dfb1d11ea1b3fde4fdd3cfdca756bad4adc61194e621dbff968137b38e1d2d446d86fc23165b0f1d8a42ae04e9a10cf856b28350da10bce1fee5a3b449631290805b5581f54340792465c9da83590db1543566071dcf781decd0de455702949b15f186391302c316af3cb902e0dc2c5e221a2f3e39bea07370a91db149eb2e893b4ecd50c700ff961e94d0b9ec5c23bf9868066bceffe72a46fc20163ec67233ea42bd196caee1cc66ab820ca4121b40d44429b1b2bfec49322576f24033cb277d064096a5c0bf742946b4bcae0ec7bdd6c9ef23502e085af641d681e579a450a548c134aa13882c6ade45bbc8b793248d9461404adea2a26af39d270d4e2720b93f745230d6833360aca785886fb8d91645c926a23f39a44e2dae81ccff5682a6adf239ba85f3883996f62c79c0dd8de1942ca4e8fd98b20238cfdb49b4527c106adf236ac83e55ee2f4f00b9eaad862209a11e6500807c241c6a09da97d5d9a7be3df3942b388408f8937ba5754ab7c6fef9f89fc38b386ec79e252f0d7bb5e210c27ab6080621b48731255ebdd831244464e36a0a99048b7bbdd68de7927e6280beb63ce73f5cbd5a68ad864358565c2f7cb5f4cc0a261b7f5cee504098f67fcd100f7d648c948bc7c2aa75fc089903af74cfa4ccd013a4c3d74f90add47bc8fa6d32fa4b897b8b197d34d18abbc015214d7a9442a3af239c785cb682fa7bf3c7b12c9b853e20f227f26f56f27a3f2f53793ba480c0a1b19809bd565b70d558b11ece8b26657da0318fd914b9128d9feecf52dbc690339cca246a8f96573e3c1f630489c09208745115a2b34cb13e509b7f4b013a1172d6fdc275b2a7f6ed058f1d8b58b1eac4cb96e0c8fd874f91693c1dbddd5d722951e108c74e85034a3e5b8b4a2e279c3bbb6073d37ecac9f1c50a01e414d2cb83a42287c0f52c4a691cf30beeb3844bf2a178fb1f2f555660dfada50f6ce12726020a209440bd89b08a3a6ea03c7e10bdb7bcb65e42560008ff2d2fd672a002fd94408866001e7e182aea03c1541335c76578eb1ef4d17eef220816f803fba49f344aa25172ccce4769aff15b376e76d2f3520b647f140d8b8e050ec6dc47d9f50957471fd615fdecb9ec9d8db3372be7f2b788f102975cd9102061cbb0e5038109eece97e27ab253112d5aeafd6709de208fac3abeafb68563f41f2486d82721716aee7f13bb6c04f5f64be9a2302d569d86eec452a883f411cdf68ed7bac39f5747b3dba380192adf21d58666595023f38af7004ddf4050ac5f6d4741de2114397b118c1756009ba2cdf4cffc1fa16168641ae1795d4efbdd42cf4151959480ecd717d3505172963476dbc6b4c2167b8e2cf30759e36ed09b3e02fa28f518fe65f6794c041b44bbb44796e8c0af196a644690803c0bd723a691513cf1ad9568791774226fffcc1ab4ccaa8cc438ad20e81cec412d992a3d8bf704dd35d6788c38988745b3bd993a28b84e85212981cceb1eeff12744b47bbef6b97d2d16e77822fbb06733eaac1a33cf52ce63807b221b831bdfe9591171df5f1beb62dec1ca9fbc4948388edbc3ec73c3a9fdf9bee443dc2099192c36d7dc289a0a345ed36f47616df1200b8c1ebe5da61e893a3c3e08410eec9d46349aca38ee89fca83ce7ec88d07222cfee4e3814d4ae3c95fc521898c48c44b1a89bd6ca5dd998e6cabb7db828daf3a2669b9c283842c0aad263cf97b2cb1c646dda1a64856965f83b85bc85af08afb709282631cf60913b7e85de02abbbe9acfde3d758f40516209cc14f632996622404e4460541cde65c78e097ca304db8b50f88d584ccf4a69ec9cfed946dbb42b3132f6ddafbb06df39f90057784d65bffc5945404c246e2a22ce969ded284e9cd0239ac3eae63ce45f6ffcb930dc7907bebaaf0fc65e10e87004f55e6b996646e6734a12847089a6b27f721368b3b0ae9406efccc7c955327e98e8ebff9c5d2553cf6f77dc6d1210e4863b9e9cec5e732c69c9470d15a06e34593f209ac98368131f73463c1f669a4efe144cc0607f2740781af25ad021ef172047aa8d36d448bd639e5e1ada25a766568fc08d63064649e97477378817af54adc34d028c46ef8c2f1671046f9b6fb9b18ea8edaf02e8755900c3db981dca0e827526d495fff4d28048271c49779249849b89d487436654a3809c775fac11300566ae4d1cd028ba672fbd72801208e1c40bf3f24541f9908d4eb3a4f272c81ec163e73a8768cffadbeab0d236387640a998f6a58b5413f4b4c935ae150a8c4ad360ec7d1f6c7415aebdf70a4651fecd7551a2b886bf3ef561dca84d0e5d3579f60942e1ac6d533b0eeab0f939d1cc08307f04e8868d779ac5175a5bb41433d1144e1f17b31d66236a1498e485dda70eeb91b0d91dcfd2847586f1b9236637c40299e97a17e93c41bf589d45bbc592cd3b6dfbb12edf77187aee7d056b2c59459cd3b5dd5555475312396e2d4b144b12c07e53a6f8095641b15ac557d42e9f9b61253740851155017a44cce4e358a097a15dbec9163dd35cdc53041572dbd6635b8f2346ad1df047c914bf0aef5721d694e43d141dd8552e9984484bb18e84c23fd6f5db365154e2a2027f4715c788ef3bd4ed2a3f1a5bf4b8368c0b5466ba4ffbeaef6659214a80e737816fb27a858f3be5c01eb342d9861930357d28ef87a1152550bbc8a6a6659c1f690fb3ad5305635ea26dd6e2124320eedaf315a78891ebd4642e6580e0beeb4c09c41d8343debcd6096f0488bd5d88cdc7e8402607392a2b1783b44c9f78360d1ccca57752111b4bc5082d6d1141d474006f3b8a38160e02ea119eb3c93819fa40176fc1bcfa855601614dcdb098450b9f2fbb63121884998d3e7f7d3622f699c8fee8417ee79d309d3427bf31cc304e0952ad47399fd065547d12a62d139218408794b8a2464e0c235e108e6827f377c8faf5811d7362d099847c083f72377e001cf023c1f9f8d7672fa3385e64301a9ceef16b820ee1b76301fa76f0588b383375dfcf9a9f7920046ff58a9da066f1768310f04d9fc9b2bd781ae4afe43ccca935470febc5e16a6a27e5ca4dace28cc13b3741aa9294198e50a0d326ea611d57785863df16f777a775bc6ce88c9219648057786a9496bbd9e377865880be50f24bc35cae40bd3af3a58fd35c8c4389dff775db4804e848cea5631cc1d30d358648fcbb8c89c1a1f7542fc3f124c3c7e427459dcc82d24e2dd4260a44d85244ff30a2ce117b4e06ea2247032f00e66c007ffaec67829083a38a7f3ec25743ab45b99d9265d21cc14b5b384afe9e8e3f0b3c91b41936b12fdfa1cc7c1c00a9cf6483edde99fffe1d33b024729143066de0733410ad8b180e683f9596fa07afffeb148b56316aa0b72731c70ba68fd274f4bb7bbf4428b21e0b1a45f03e102dec5913375117da2a7d8bb20a713d92768cddda00e3984fcf1f5b8570d5b4835ba7d76eb5cbd43e370cebe444cc4ddcb78afcb4e4ffe509772d0bed5c5982027f8bd0c411e487c3bf375e21fc27ca0f16686c2d8c410bf21e6818c6939737c2ce07c047bfc00108551497a167d52ff92f12b4fa7a45e33c2a9680b8454a0d3525971e65528a282cc70fe36ca93ffc7c4ce681a9019fe17f71312e042d5fc365dc35ee6ffe2920f72b2be68c4f25ffe6728a07b783023f3d33e9467e75fa2f245830c25846cf7391b91401bd2ad9f19ca82c1e7064ce0b386d3f2104a123ef69fec30bb65bcd40d57e0cf047717a2894b4b1663f3c5acc1b2d6bf71e3a1dc6db70c3d17008da6356269c3b4de6e9c7f09bf48a94ed8c90628d464af5dd3e31ad8ce5ca11aaea6dc66c6a3f503555c5379fc5d15dad99b00577013fc3a8970aff33a4aa26e3d4856674558b7be1b5e647955aedfbeafd9f51768012206e0fc4bd25769569322971d68b2140392e904604456d26170a2749774fac0341f78b69267eb430cda6242cb405abb8dc944fd2d2d8895064a5ae3a04d2313ef264ad23f50d7084b2ce74f27b72bbeb3a94f8d9ca7a89ec92a93932e85007661ca05d67aa03195b43fdb64eaee9f0e7003913d41fd9e074c10808740e0808bc7d874fcac158b8c2ef97f1a214e929c27e63b0090c8b8588f2b515036fa671057a46e7f5f77a0a298d090567d8745858a33b875c4d94c099607444cfcfb87aecb4df98e0e46f163e54f66e70b80713d2f5b2634c886b1f609db3da703b00cd7ed058779a0e21bc90c96f631c76027bbe9d71176f7454d0fddea88eb28b242c478113f5e40a8843827145b9e3d62919d3e4b61910b0fa10918471fd96a0d41c1175ab039e9b507058ac0221716eca07484c538c833a3e7cbb9e2be5073cdc8a2306615eb29e17f9a682e9d71de9a041e1dc96cdbd47d769e8de4f38596a5ff5dcd9ce7b1a7af29071ea7c6b32af5fd2740cb2090c900b95134917972c2937219d24a1c71fcdacf89aa1f9bb6c534f576a0bbeaf11ac45a87db528182e894a5296bd1d75f417ff7c406388e17d220edc72a6cb3836c803f7e499b671081ddaa0237c5bb547d284a8364d4d744c836142681e88b09b1368f328220386537ba4d3a407f13072394d4b2ed4b8f9e31e954bb9d01498dc81795919c89347292f3cba3c507fb3658eac1f19c87c2c36ff88c8eb963a98b4cce5f7f4636d83d98cee438969dfb52d3725abf3e4f919079301c0857c2144d83b0abbb90dadb4c51bdeedc7a2472d8fc4523330c96cfe498abb11b522863c9b5098067384488b37e7fd00dab22fd664f6bd91bd9b30456f83b607401dce5c175c07e35c7af43c2fb1e4bc868241af13a613fd0edb2ffc29c6561f2dab27be31f71a5fc59a29bec60ea1dfade0e6a65675181c4ae958250108ddc9a6053e1b74c7ba90b54e6c4f46159e4ba1bbaf4d00d9cd6e552880f1b06582fcb60f96827e3b0829a8e16306b5a7ad5fd951e7fab4dadcf0ca0ca6299f4d0f4788a136e7ff0059bdfe597371e67834001b29bcb33f34bd7fae585986b3c68d0cb48c300f72fd85885da2fcfa81bd751b0c6878940d53add37a50dd438483fe8856a30bd521ba513aa7ba322f2134ef2d7e11883168bf4b711594bba755abadfa3f20a09bf1f43498c0637ebcef18805715cd5b199434fba512bd16894fe81bb2a3ba303bc0d8436ef57c789267a2a3ba527ece296ba0db9e96969e953afa06aa117bd17ac99932a0d84ae222b38e9cd9a5d88a94fd29a981464bf5988ba520a8cc6682d1a7645066c8c2873163ab4d0c58ac32a57abc6d14bc3d3f231acf81099ef43e01cd3d392d011370909078282d0a0b85728e2ca5afc5a136808f15afed0bf2b3cc209626cb0f16ca575c8a7cb26b2ef068397f4ad473cb71a2d9245e9da96b593f6d8116c4e1e81fe1de000d4331f14f0e8551727cb6f14820db97650f0c8473cea51e2313ba5b0864745ef01b50c458c0e6b56022fbde5c4b710578235c872b6c6a184986d96750cbefa30f587e999066e8ea15b45bf9aa7717a51854428fc5beedddeb12191efa0f1563498e096fadfd67adcfe61b81559cf4ae9a5857e0860ae55af59f5ad083c2c88956f64d8cc231f7150e4e75060206ea824d1dfc70a056d2c41d01acb32a783961f3689e12f619c89afd18c878a030822f4a0a16ebb05c3c69a9dcdc9dc5ea2dc52f435427ac66378bf701aaba393cd92e31281f4cd6828a9ea4f613df309fad4ca49229936782c20a4b4007b10438b07a6a0efd9e2a8d2614dc9deaaa9a795e449049a9a56105656b7961799bb097594bb7d87630152d47e55d038236ca8b3135c5d1f373577c3379283a5319235b1634914d52d132488a938cd50fbffb908bc3a02a1bd3812d9fcd53c11471c1ab0a3b7feb5d0f3aa79f9c696b2c8e2718a7fe56b2cd2b592fa8699e32da2b4666d72119a2734a6cd0b382f14d06a17bfb5134a7a5c0f24e1b8abca3e1d60dd0d5c1ff21920f562c6c0a9742761080eb86d99fec7206f0e42cf0a77fa8be3bcfaf497e0d07bf392d5655684a6cbb16e15068d0ebf446267350da40946f900e728bbf56c37702333fc87fd580bd26214bc15f487ebbb642439705c2befaf9e3ce649e80757064c579199b862655790beba7df5a2d0d171a9f76f9e3a0dc48fb52cdaf1e0da5ce9d1c174711a9c08ffa551d793fe3b7098513a83b31f18d3bae84abfb375eab628d56c2d43469db26f8593eaa67f36afcff85c38e22c30d3f4b3edb25bc2459011d19d5273c47d3554c8ca47fd354f3b9050b031b7258e208a855836ac870212fd00bb77d5712a747413d04e088435e772279c4508ce75a25b512cd84140301c69edb440d3c885c54bf1360d5c9f4b859e0965276feccee9fd4d906289edb8d96890ec087761d03073aa050279e68a920505ae0c150ff1423d57768a1fe2c1532dbed67d2158437e80d8a67f422868ce0f33da919c586f809925ef22c7a2d8b9b40a302cea0f6914be5c0ed44b28b2c5b94301623fbaef1fb183d9868eea0a81d47d2e1c6efae16f85e1833b54bec0d20aab22b60466033f6d4bec7679c831da5d41577d4b0f7ba9d01dcb4b2996362bfaa15b6a4481a88229cc4b1e31fc7a88c534a3857adbec6a799ff441c6aa0b4def712dcedf88641038e18cc6eac02c656614e868b5f043e33af1f608476bb89a3480a5a948576c46c89ed450fbc5b8e833b1beb784145b2fd9fc5fa7579eebd30b1b0c99750e9bace3190b81841ee2ad10bd4fca6bae7fa34a8639ee85fed9262c54b97803cbaf75bb74b3180d3605b3bdd98e1e357b3a3ffbfd0a74407e336472cd2d0d974f0280946395c5098e8d433815df22bee4ab140c52b6de4f5c7c4ddc6564e2083a79079eed550c5850f18b09e04adaf39530440af00fbdd03b72bc52fe959fa2a8bf01004b9ab488847ab4b7c978447a871cf02066d26f28d4a61cf3e2e8d24cecf1ccc207bf62461c34e4ff4356cc5cc8c5c77af73aa74b34c4a5d18b61658fb8de50a1c92c2d993cba29101bf33aafd9a8c0172ea3c636a854b6653b7f14e0919b192ef37dae0c62046792b2656f3af65ebe20bed569f06a96bd0999fa5b5983af8998e11412ef63f96d2aa2ea3a7f9c11988b483d79f04a735feee6749bc42d04059148065765a0a5e7dc268998e17687487d99d0796a46e16d8d44dac2cbb8b413d120de2299c984f44e2c2e7d6d4b07debb90e6087fdc4a362bde1f6ff17eec9878cef5a5e1e606828fbb42c0c5aac52d2aba4d7aa7c20c5b1a3672e336fbbe87451f292a03d93e868c05be493fe6f850fd0c95382541783b1f926d5b4c0c5e08fecda6e52da08f176df7a74bbc03cf628a51c86eb62da9651ac20c7f8feec4d0b3e65cb288e77385b6f3fa213b132471c73704874fc49560702a109f8c2c14eb2d09dc67baa15f80f2149bf8060c4eef9d94229d9a0a2d7b9f177bc8890c18bc93802bc22c388843a248c0667ede9bc8011951eadca2eae8cc08e365427079c209b240489d43633b8a72507f8df04018cc4870b231130c54586a0397d79851128780634a1aa93742bad6304c414bc7f7ab9e1fa95c48d13914c4dfc9adf032115650dd7e22c3ebd831e3cf71b89c57ad4f7893ef0e0ef880dfc117262ae222b54404ebb3e688d831169a73cf5202b1b461f0c11c6731c0e59023b9f0faf161acfd7c51755a06aeb1a00bef5265f93c89a86ca49ff44aa7b16f586f6ad2e1626cac4d6cc8b4387c297b85e6c3b2e5b8f70ce39d7ac9baa41d286a97373bfb8bc4ce974edcd83fce5c5b3e0ababbf037bb208269d96751a708aed57ff970c6454b9c93d2e4773037a1238eb30000c3c81239b1a95f9124ebffe7d7ab6a3d821e6846d6e7aadb818b93820ee5ac75c8c6f82a353947d0fefe6c028bc5f97a9066bdad904b4881b09263247471dffdf78e347710cac62f27c97181e67d9e9d9c071a433f82fb0dc7d901a5b45a0cbd9c131b9c03b7ebaf2306d14fe3c5cfb6e78c78b36139a43d7eaba8e14fd4565f6cf6f0d9c4963e61e84873f1d202f9bac04121ff0dac4cd6aa2fb355ca3181fee80c51a358fa82b85e0b375629041f68b0414a5540e93c9ddb0c99e6fea1ca740e54f9dcc850d1e040550dd23da1a03a425ab76618eca15f0e55011c7a3e14698905ec6183f6bdbfa951b6cf1e7def1f4c12806e30dbe0d55f6a78f24d5a96841f84d96a8e4a4ff529a3b97d8f1b23649160761bba5e271c07e2d6f8b2857f0af322d734fecf103fc7887279c0dfde7ecd901dfa3df7b6f297033388803db58b386a14b876d6a4998da2cc29291b002139f616f8549c3b0cb41b0d3d509ae9a03f3f36e877032a9eb3fcf8855a07a644b2c03381b814391412731edc118310fd6e0732b1aec2e9e52b3fe23a70e1cf8ad0d6a55207babe937567b9e5a5beb3525abb840a1d5834b1758431e407f46e420ead7534eb8d04b82bc5f12b391d90134d71281ad1d4617305ed6a77328a9b2dc54dee0e637662b8b0be03edfdf5916465112628ff8659a6b9fe86d45990b35926a89a3ad2f637e4aaf153c55fe3637961e7506c358bcb222c1b23f3ec21bb0e78c84cc2af8b60f1f8e48242d1891e4c2e9a8de8e60360cd363b9326717a5b77b34ff65080f94444e49a0b35971265d66884fa4e182f2c79a597312c762dd0927252598be18b4524e511b85545b660a698d99c80cd65f2657346952164553e019c13b0372fff94e5dd1e5407a4c9e99042d1c1a3ae7940c346a83ae83a71bce1b0dac2cddb1a456d0aa7dec7bdd2bd932c9cf7bbdf1dd15b97ba0d8e67f23cc04df1dfe62ef4bdf9d8d9eb00c80faccc11f3ca7ca3b0714c6f7e813759c01e1c2f537ed12e29374bbb4f194c533888acf241817fe1923ff0f5224402d0f7f02a2ffe5a9774903708b4676b5a434cbc0b727f7a0bd2dfc65e6b86597acd5e8085d01df3c8adf7377ab4b9a54e06c8bab7ff6e1a16332b7cc4fa30a979a85b28cd905a79b4da223947b78c5b8ac331f75a3fe43c1f491ac702a85541e7f36b940197a82cf807baacad9462046997505bdfdb50989a591cb72fd40e1669bb9e01a33a91dd4738f9b008f205867d75a62aae695aed3feaf52c6124439dd3efb8fcb45e34cf9b39a8c14e69c17053548377f0b4cb1a836a9d29273abbc3ee4adc912f0937ca5a4e63d11f90dd8a0bb7aed2d7ef40176587bc411e7d010ffdc0ec9b4133ab0c8d65b8ce420304f8333c11e2552622b23a8317330d970e206e47100accb0f0b81b3ec5403fd6f8fdfa4bcc94c571b662bfd30023dd1c6c11869dcc51d764604a7242eb281bf5db316f90f2f982dbaa4a5df7bab952808f8f8de47fda61bcaaee884775918aadf96d1637d5a1edd13c45ca3e96764feb49e1dcdcd8c55fb3eb520e0540bb6e12b2d863c8a2bdf0eb59109d542b856e28a72a71fa76c58e59c2d17b9bb275597cecccbc7c6e413e598c6810db93e4d582440c61a5019d18e589f8bc1eada61fb39dae90ef17a4b1edf35334a93b5e68cd74600036d81058d4a606d1a0159ed5b51818b4da8aec6a3635d530e642c481135cb63b71ab0e8fe258509921e7ca179f306a0047a11b89a9b580a3d870c6bb56c81103b99abee1113ea4e1c321214a0dc0ad4896860f0972baa14f3a173d938115964725df06184928940af6e3b9a8a107d4658df5b3137bcd2c6b1813ea24b4641ddee5ef2cc43f6df81e7f86ca4d1569ae2a1de393ea95c32488a8f5b573745bd55da4a7edb45bf847a6245a89077560026cffec60649997b9ec2b7e0363a51e20fbaa87c81ca14b87260d92098e147ed358cd6979e39d7d404083f66a63943388fb506caa65d139f2871cdfdfe0903dd92f984423a049bb825d058f9ec382df1a0a1db48d637330581eb2f1a85c125f5883b3d173957742b401647fd86b91fae62c32ca9ef2d97a7147640bb0a5e0e0c39ecaac171dd7503eecdfdc55e2e0713d376e00ece39adfb8dfa582187f32ee4c2aded20df491e25e08161c4e720e27d0f794fac653c079f2c4a67589ebe449fc4085bc85db2ce34803cc0b4aee160ef77b725cb8b66b5047d0f8dc2e6824e46789b5dd38db6347aaf401d5b84227dd505239525af3482803c56d86da6c006dd0e28d2deaf5485d961e943a6ec328ac1a05a527aba980523501246ae21d16f95f2fe6b9b62eb17b5080c6757b7385ce9eed37f3104a57b54891ed126837a4efd1aab1e249dbae854de64d807d5028272853b0d6776b6696c015e14ddcabd52c890bfffa34edf2c586362e8e470fb3615a703fb375045ca4ac44df31a5c3bed3e8181016b2013ec987374044c2a0d01a1b67bb41245c287a8d5815a1ab8474587344af5144e34e6919d9bc5c87c80185a86eafd172af3d18fea0b8eb6b7ee4cdfc968307b3144993d4676534355789879a07e7ac4a02f3b0cdc73118f62168c29442e62114f089189e7c29086b62bb7678982ecaa3f8435228295afd742b455b1341dd02db1fc70c46b72b818a2b5a436421a713c8cbfa67ed5e3702f5f6db2325f116c969d7ebe39faa3d3c517d90559b731d13afa24530b33fc2c47646c1ecc8886b696100b0d9ca61a99f6375a45a4589d85c096a52ab5eda2c124e4117e91ec31d620cffda42fc399b3942716234af6b1932835e822d95f5a729d6fa99f89a488407ef9f14760334e14549c6131a019ad6cf5efce74d8aed7f2dcd331d359421bad3f3fe3a89279553ba406f029a13ce906f21d18e468b806755c78b22bf87060b94c12744f9d948b29ade73e36775c1cd6f90d2fdb940631e30817d24495029d89ebee97b030813e174ca48be159dca0dfcaf94e601da51dd455f500cd24d07a2001977e7f99dc345834c7f5bd9812f003b0d905f22c0ec156da4c58009b752b30185199091c2d6151c4200b310ed61100a001c460004d8eec9a6f693682fe6efc9116591dbc2b87b317a14c4d49364efbdf7de524a29939401bc0424042104455264a08016448727764565555596659149657b56b1a1a4323fe209201e27de18da985a6989ae8fd984132be597d71a1104d9299b289f18537308f90ed79739cd27676a3c29d2f5c7ec621ed001c2cb665466566658665a665c68d0d41e97a0e6a659a62eaa48f5b93ca2eb74e49c3721456429388e13ea5a28893c269e43ca9a26dd122a32544d951a30c63826036c63dcc3130689244f0081a0879e9a42aa4c07644288f8210829404c41537b506961264ed6de7bef92979b264c2634646b2c21b2f69473ce43bcdc3487806d43c8348987106b60f4478a882b444c9220f305955120d25973041024fa429317a0bcf043e2f2a1b2b0422f332f342fb52f258fda1a6b4508638cd3bc382e8529d898e59d19ca302b85f2a862465ab313fee17a185b39552d0f741dde91ab349165b2faba34c86c12a9245449ac9260611c2b4a438abb39e78cc5756960796926b5e3314192a18c2fc6186356968d710b30c080a4071635388896d4d492d8921cca78c9f8628c314653864373864353c4a5d1e1d2ec94b40d112e5f26949555e117c6188309c38129c3813943e2c11863bc84913418634c048a9be64fac0691a0f9fa78f072ca5f8f049ef47071d1d0c48797ca43042e38515ab7796badbd40ba6c6babe02de3ec615c615e61606164a430425f92727138901d97aca5064a941dbf659c73ce59cc15831213a4492d4c1b607928dba01f37cd5850962ea8a030f9e4f570620b524fd8994a0f2ba1fce268f05092d95293061321f7a109555659962b54a13dab8c092374c689353f55a99c73fd408b822073484913223dbccc105b551da053a555d3dcb6a2697b30a9e1154433427638d2e11f186309989902a407a035538240611de52a562239612e2b2e2c2e2d2eae4723846b2479f9563b952ad0da9e54ac7499356a43b9a2a715829923470096ecc088d85c538531ce517bb4f40e0e1cea96629143093038863872864cc5410337e4e454aacc9ce374f18631c61803ed00f1001901f2016a020465fbed07eb0ca9e511b9a76888ce909d213c438cac40c3c38a97529955500ab32b5496a5133adbb38a99d6ec4b0fe37f821e147cb842defa9c7306b373c1f05c30462e189fcf39e79c3549db683d24e7bc26e652a16436c40f1f506030e2880501d1c5f806321b1ba14d48e971d91d6a93060e4316c7ccfe98d552bfebd8711ead49da464f9d73ce3907c13a368c316e02aba6b99130c6788c8a1bb3e2c6b04818638c319a154b76c096541f324a6bbc4034575b8a53c94eb6460ae5dd1ec648f6a587f1af8db0e22a10618c2d0d1d2d3a73c0ba2de59654bd8125e689361e39ec78b9a2c64709a28ce009353a4272ce39e7dc85e3b8b7e1388ee37470b969be6032218cd261e85465a0119565f963d2f6acb2e3a2ed9b73ce390721c1ce964787c34895205df45b17668d54ad5a26260d26ca2d48d699c191a3858e265d7ec1891e3449db685dbb1bb82383871e2050410b0b62645e24d312fac85f7894e1a106d7a8815565d534b7aeeb3a3545fe84d54c2d292d2a90c612b08ac485e4850486448644c8822118b5856816e9e8dc7bef4dc24ad24ae24af24a024b22cb27ac49da464f3da3b163c8661e6076ee3a6ce4ab1322374d27b3cd094d3ba9919e0c0a2ab4cd1823d63831e403402c0879099450235f73ce39e7dcc1d04282c5690b20cc255c4be8f0c052028928283b7e35f9feedbf9d56d906a74176fa8751aa00a6ef9eb1205870a2477bc682d8a99b562e369486c422878d05b163d7af513370147bc686c6ec70cfd8d0d016f7d79ec30d609a1461f1c1dab2420a056493fa346190378b3a341e9f19eb01caa61dd833c64398ede5b0524ac3bce5ad6e4abf0335f8bc2705b06bedeafe5eba7e98fcf93bda9e1e7e060e7eb5d651fd4623ee1b81b8ce0decb65eaa23f9394ee5507cd371ae008109982704ec0a63cf17df74d59ccbaa39566bd0babe71dc462b64854a18788996b7bce58c91ad50cdf152e95f0be5bf7fdf598e33b7bffbdc9c47fdfdf442d17707e1c63f0ab76fb204df3736ea06bf6ebabdea1fb7ddd8a8bb7edd752439b0c3af397fa83ffc3e9cedf04795c7f739953fc432b4f51ebd87e20b45bb5be0d01fa86bad9fc370fc2c86f941d046985584e0f7c12879a98213347ef741f12ec2e8f57b8af77717c247b1c34fe181fe507ff89e7fe1eb0f5f24471bd8c1f7e167d0c668248dd54fd8dd9324f7f1927f283a2b064d37794b97fd9bf28b42ddc007d40fdfb3f92cde5f01daa81f8e2fbc44a797f0f7b5fe97c75b31f0121521fcfc9ec10e680a43fb7bc0f7d9463812cabf6213c0cebfe98c438f1effe664fd50b4bb821d8cf6e83d2d7e3c64d993cc9e312cb3edb1f85ae8d024dda4af458eaf850e2dc28bf0c2c50debf6a8570fc912b68dc8ed9188f375e174bab0a16f50dc3209804d3a8b246591fc6093374e56ac978582fe0eb12b617e88a8a1e68c67bd20b5f76f9036beefa006f8defb6d74488e0efe1d8fc2a3933b2ba5dbb47f8364afbd3809555344101122f06ef0717777f7a7fe1efa3809ab3a8b5267a313b6183c6f6429a594d2ea042c028bf03ba13dff30768097aad7bd15bb171be3223dbd148ea4dd3836e6676b0fc3dfea934a9e58e29e44d2ba015e2a42db3a1da71be777d381def9f59e769c345bf3bcb00706fbb4dee6a6411b987e3d0ae9bf60210657508dc65ef759ecbe724fd25dbd310bcd18de3b134dba2047acedcd19c31bb72c944115da601b3f2f4d40a36a3c6ffaa42e25ecb1757bf14fb221d9bcd09bfda46cb684512afd8b7f018314f6e88f6afa9b7bd8a34912fd6dd351451299ac5671ce1c34b9e970f3bd6e25dc7833c79bec282718a07b84fa44b93dff14b79184417eb9411d49ba6f3ad0bbbe266fdc5a27b06b7de2dd11e8f933d3520f913339e77ce5554d73ebba7c6b18e3fcf55011b3e4c8179f1c4892a8686dc6a9eaacf2820fd7e3818f265ae0b1e3091244a89002131edf91bdad42054a3744193b41991eb22c546557742564b567955613ba125b3c414eea8f35370593191682d27cce394751b969aea2b034c9062f2bcb8becd018cec450d444875471b9710eeaa345c10a40a6a85c70dcd0a52e52ce394f2a2fd6ce79686b9bac49da46eb9c5d39e712b89a08b265cc95165240651f3b5fa11e08a26f8f0345babdcc79a038f7a6a3c35976793c53467e7f0f8529637b7faf079db193411bdf832349f73756228e03252c58bc7f5844939a4576d51ccfcb34dca4176e32bb44df9d28a6eab7e93491de10a73306fd94e3384eb1c22988e24d18a4e7dafe5e9d9b8efbd722b7abed75d269c2740f697744931507256d110b84acb5af63759fd119dc9e4fc1aaebb442c56787ae342f79ad39cd856bbf09400f4065d0d1ed8cf18edd47776bad7d6b33bd38941e0a91a2be647a92007b56b04904ec17c4896359b3541f05e5608a47bfee6e44455688dc6040647404f0026964966c720b22b756773368c3734631bd7463858acf9e56a614ed4d045d0495a016d44f218267dc4d2458b4eb7bd3bff066117f474b1d1d2f81bbbea7fa78be7088fbf8a53ed5ec6e783b2cd21d76dad3ba236f643a699b8e22e4e7ba2ddcead6f9d06a4ef8e3a64a86e5ae61ac46376e7b292fd1cf22a5370cdfdb44d24e4ae9b655f76e53b9f768cb5ad97b29ce59e4b8cf2c2f553a52a7d4a9d31f7923d15aeaeedb53d18e9b117d7d429003df206dc6a07f1366719c4a4398e3e4a190a87e380bcbd40fcf84b19a5351200b6c390ef9d5c0156804f4a90f36a91f8640405a57fb8a5a8028443a7340d85752f14bd14fa7db740442e3f0b53100cbc0292512e7fe993170b56940fa7863c6f6e8e9531bdb6fab1740f46fef411056431056411848036720f64193e00fd1ae0ffe74b08dfab7d50d8126b7d5eadb3e9b27419a8ba091cff95389167f08c2c84d8bab4cc1fb9c48de98348faa668cfa9be318d9d9f537d996c5734495cf995dc3d7ae7563bd7615b2a74479b2c92d6857a721cc71c84f25731c12a4852fc79953a2e8ecfae18fe3e85dcb6c328cedbac226c3a05d9faa3e1e90e638332684ceae0f9e711cea63a7bed4b63a5d503a3d65edfa05d9f5c9baaddc34e99cf1a9a605f563dbff4b51f12b5d3a3ff9953b8f4a50bc3b8aff743c07c5d7ff4a14e2c7e3a65a7e293a7eaa9bede7a7ea7104e9c5f848685aff3fd5944181d07593e0c781b429c3770542fb2641da08d4895d85d04fc7ada3eb6a4b79a9da6d67d71f2fcdbddaf5b795e3904f6c3aa630a355ec0964c4ceae942c954665e80628c2b317e78debb6e93e67ce1aaa2a7b71deb83cdde7ac51179d39cb87ecc579c3d37de27ca7fb9cd98b2dbed6de7a6bd6a7fbb43e84a65fddddeb749f2e0b9eec147bc67e50a1823d6359726cbd67cc87250830b44317623f6cd13603d833f6832bf6838e4dea978196db05aac97f0313a8c00711c8a0015eba5fbf9eecfd3b7e3511d91978154df841c36ccd902a30dc404379911a3f8e603142c3210a10ca5726946b621002b2e5081242542214c821488e196af8b28507e543724c68814a141f50f8a1468b1a54cfd6d2820df9123b2108947f041ca7f2006911f203882d1d388107e542386092e242c4870f69d4d420dbfd2ed180dd22f8697b9d6a3bf530188a6321c7aeed58b61d77d98e5fdb716cfb573a27a5e1114d2f2d3aa229a57542715d58cdb1dba63589f45f2a9d4e17f6c1f7b7b42ecc9cebbd6f79c164d857b664fbcf765b7a735f2b3307bb78d88e615b2e6bc6f0ebc2ddb265b8424bb67fabb5ddafebbef04f695335677bff9b6e24a10b2a5a02c5015b04e5c4be09a80fbcf196d5e4b713511c9a5b12dd72caa0a422da9d62dc04bbbc845b2dec721c2e9668fb942b58b63f6e82a1d019147b49bc31d8be41db7f1352e256cdb1565bd8f6eb38d68319665b0bab3977ca34f9e720eb2188ed4fda21d88cc14393b8b5dd1fb78ace6cdcc22d5aeb54364954b036fd6ebecf9b7967e857c6a37da9cf8857fb7436fd6fbafbb669fd5f2a9d4ed9a66a4ead5513fd0b2e389d4aa92791e80f75f1129da86ff4917cea7967367dfccd400ddcddef0ddf4192b4c1ef47e2e71bf867ee1d7b435ea2f97e58a41e919774d0a437746bcd963567a23a30badba46579b31983da1f2fd1b7b0d4969a32c2a7f8bdeee7c4f96680bff9e718fe200066896cb1ddbe477ab103b0f188016abd21af0bd1053d9862b68f4a46efbd36d535473f05a143e9714b55d30c9a566fe6cd54b092d0f7fcb62e14fa5787da227a9b6c7a539b5e9e4dbf3a9d15780ef7130133fc6701ea688be646edcb858a00992f1436bd2dee3b6a2fccceaa69482c81fbcefbefe79c734e7d47d03df739f73d056f7c0cc1fb6fb4b33b54c2f75df8e0d35bd69cf04be8fe7b5a02f8e1d3a710081f04e1fbee43f8c654082138aae857d0d67e346967b49ac33df59ea2ec50cd21f2bea19ad3dd7ce03d099b846e9ce3b4374c191fd855a24c1c29d3bee80c0b855a409fda249bfe0e9bbe8739f03d02cd77f31a8e9037de76685b53edd815143aa3884d9f524ac96c0a65535b731cf2ab7fd884ec210fcf4e9a811a184cd87697cd2cdbdfd2396746c1c194222fcdfd3f65d4c74b739b660e264b78fcdf23af220633c602a6c93f08e86b8e02480bc05dc70b660c7f4ad3942aa1eb5f7081ffa558cd6867b433da49019b5e6a4eefe5c53c1ecfe5fd782beca5b64d6b12e9bf543a9da614d54a7a12b9752806b478d2f371f1a467e4c65f6f24fda49bd2bb184977b518671be93940858a584039a9bfb5cfa0e96750370bccd9c6a3081604010df8711514e9feb86e52b0b3117d771b78f8cbaeeccaaeeccaaeecba5ea783d6a0fe661fe3bf3167fbbddf4672cef0c9dff35cd5e4371020b9106f20c08284169e0bd159d5e442bc09c1c5dffccde8b06af2957813428b77f12e469755937f8bd159d5e4fee2d268d24be56ac3759eca713e1b2b7e8291a47bc56823fab611e9fe44252db2abe6b4187d8a6f915d75a8139d5a401f145d61b8c314db66b63926565bc553970dda7666715f9ca80be2572166d7477e9b8a1345c5fb2c36721b6f5c2d4c768099f3baffbe0e0c9274a834cef605b5746848020000b316000028100a860342912c0b831416c6071480095c82445c46361c8d460351281c0a8481300c444100c3010c053010c3300c55d29c9804002e007bc2cb977b834d0389c0ffabb40faa0a5152511d4efcb8d7d4c3bdcc95551a58392ab241ff22a7adf51a73c4b7397b502a82aadc802095e97b01a530339c910fe8e4bed30359c36afa047e1087d454115cb222199f16e246102d6c4ba42f5f588f802993e64a5b5028884436cd5ea349b3a93d149ce6b9f704a84ac221a8e7a9ff7eea3c22e2a828a4fc15f1bb3fd04b92542cc40c59a788b12960a502529097320e4b8fa5bed3639bd34951a496e572f32a42cb927cbf4d9a86dde830bfea6bf781f4afdaf7569f31ed6e2051d3331cac19c7c5843d36188c6c55567716427c8125f047d8572ea898651a18503bf91d27d5fa3cb888d7c027a2650c801d3ebfdda2fce66d835abda03b48c4e3cb26840669ab3d3771436bff4df3943aa4276260b98a1ace4cad9f3e907d8e57b2aaeb33e3108999eb012a0190ef263f6eef390298e3186b9e2bc1675c10a7a82d64458ad167a411afe00669e3e5589575bb93cd0dc682afac1750dfc4836a29fae9e3b179e90ecd6fb7ade24cb66df57820b838f3b81f16a0f67853584791e447b9ed9387ffb7aa6f96e7583f08e293f37566299a0c40728f6e558ca2487f77a5fcf8bb27baab2e84ab038899fd2799fe37c5cf141498de8c2ea153eaf307c685ee06dd98f2e350ffd1fbf031292377bf71710bcbddbc1240a2a61009067cfbc3e487fd36dcfc159c67637402a20ffc1261c31c44236ea694bbe4ddcfd88451513f10798164a5de511db05b85d2fbb3878c1bce518953801da96b69c46935c9a3cf3c620e9f3cdb93f4ddbeac0060813e9a4e143723605b73c1d4612c43cd7008032a1cc0fb99c330b230bcde43aa012bd5a960fc8349819c382a50813aefbbfc4d011c93f7d07ec13c81abb57d151495de36ad973249274f354ec1fc36260876591dd301cf0f6e66576add1d71be65cab7f959bba5cebbf5bb4468b002cd873f34b19ecdcc5de0186433fd7a000a267a4819972c3e58ceb00bdd64c2943386135853d237ff72a3d33c90c3d96f1623d663a8b9eaf9da4ff4f836f805d9797ddb2f74dfa33861ce5c5f648e34ae93d19d47dca69110ab912adb06badec8dfd989251517922e7549cd1bb622d38265a30772e76e420245f645fb90d9eab05f6a3a61bc75344ee11d3b9a764c5f726c33ba64b369c3affacb9d9122087d5f354ae2662490c54413d8252b5dcee3b1bc14f0d4a0f63800caded49ed2dee1089f181d152abbc5673a8de6dad2551cc3e3c89469c3159dcc3930fb70b224f76c69bfeb32e4260f86c805f2d4923cb21fdd7b0a3393b1cc5ac80064f5049dccb2314a6f28bf7bb85661f4975682a6add40681375f52932b25ad02e32d5ee0507c7953d2d185f90447e2bfd82fc355d1d9d06d5cb50906c16a7933a512387ba2db388a5189a56b599b0e0e749b95c1f9c950711c556749a650677a788cc0ee48896d5bd489e204a355438883a893de390750768c124b61b25fa5861b4ace3b9595e230fcaeb3951a77b33b7f3efbebed574c618101ea50031d31a20bba14521cb7a8a3c61ae88460204cd5f51a57eb32bce7d6256937ad390359893e5c7abe404cf0f4cc9e0d2923b7280c7431dbe7e286a27fe3b899800147c96f42e58043839b1d6f7e132cde5a101336e8bbbd5677c0ccc3fbf5471c932cc16930baa1078145fa01635b4f0758ff437f9e41f61611bf9647e4e69c3ec680c020a0d58b96e644f5348741ba82a239555ff33a6d8aac96c2c10f4a1efc2b011b3e403510958acc5e70890b6b2bc72b9a6b592f20a1c7b7e7e94e9e94d46ded576641d4c7b5de17d44ee2cb803c97d4cd57756a2335d89f1a57aa16b80ed1acf5d0679618a1eae3d57a50391e525d9a1059200ab195e6b0e1aab38a4f0bb661878ae28388f1b5c6a92a01a51dab1a821868e5e571e60499fadba4cd754713659e2ad30ddbac000a11f1cd4295f069bf2f6c5f98548702e62724c92cb10974a4298400098fd11123a44fe9eb1ed77832bbf74ef342303e4bc739ba16a86362731b39ce7ff4119d03e60d7f43e2c362a185d37bfdca66a2665610b1ee55afa921fed16783f2940a17be48d2c135e14c864dc80b60761263b825fadf9db4f41e49759d7babb796e584e1bbe2a8ee0bf1b1d684b5e3d0b9dd9d5676b893b98308b01657b9e46710a0b734881a3a95a6cfd6b2746cc1f7ad101ac6eee65e359642f2ff96a7e0d3a6a98dc7c5183475307ff5f0928a4763dd857fd2c917f4fe43b7d9571625d9ea5ed5089df79e7f00dc70352e2c613d3e70a556a6807217391054ab6ee9f47d6d3574154defff01dd5a5587a7a5bd57d6358a6a23fb7e0a43c89537a26347c2872c0afae164568b64c3c938e5b88066c15c1466e6906d446efcdc717eace394cf75bc710c8cc6c884d100261c4ae5e4ba7669eac7957097d63708df715b3788db580a82d7dcec6423030698f685215fbe747473b33d3d07a12ff0e177b50620125ac54aba12b2be695d99c2a85caaee6be36a211c448aff841880a839e8d8a4632d8b07e2ad01ba0d01cbe023c87fcfa959857d0a12bc0d963521233f5118e7fd57cdb3dc4b6f5c394e3f9f8f303870c30cb04ec81e9983ad03be8476afbd47743034da4da7a47d523ee8c0620418181fc3d9ededdda6b8cf30c0c71baccc41d5e755393e0d221270ae7c79b8023847ad870c80396e7de4dafbe7d8265a05e01ab6c910249eb2911f01a03326f00746aa0a19f8d663355a09dc1fe51a2ca84f6926906672e38f0ff043748ee17f25b974c469f5d21e710128c610cec9d48c89861d9d01e345b5e59592beb5d600ea181aa7eb3a91fc20a9b5875c26e2eda788937a85b1fc16755876bb6a2a7a9b04dbaa360c65d6eb9ee18cac3ca673e186faab8eab82c0cf5f3bc6d5c9149b97ba6d6bd20763cd4ba4b551c33b820cca2e5b61698777a900017157307dc0a2547b403db2ec8e117f34cf80b4800485a241e9c9696b56d407fb5fef823f19991942050dfd7f503cd7a98b4427141472106de445a2e68c0b2684333687362fc85289447fbbb67b7278975a0a70c1f726502a15c940d944846752f9c20388e28c9f50e5b1a930b1c8b6e430097b6113f61ab67cb3164d6f45f8ab6aa2c4a22e4855b5e543bb4dee3152328804c6ff4f3d32accf20f515a15b4787daae4c6d423c9b3d3bf59f0a9dd479eb2d6d1de8dd4ea8fd2c7791a8aa54b028dfaa49706165b60af262e544c70bcbc7923d58b3770aeee62dcaa7188aec015cea12573aa6a5cde3956a930a4b642a57067c4fc00e04f199f9513390037dc19c5d8e4d1dc54306a37bfb5a1afe54192d7f32ae68069d67ed2f2bd607c83512375d61a3f382883343d64a5fbac53d14d1ff06c9c1fe57af31e450d5419bc00c596a78ec8b950e4040d6933b46a8b6497c616a5ee859519e4a60e36268a13308baf9ab1684cf26a3a51941f5f3b23f1c2058c94c72ca5afab39e853f1752dff21f5ccaf0267afd01d80c5c34d507f3ed70784c2ffa95a74cbda30e0609d960ad6ec97e8a83cec05042d0ef2ae66c38763ec3d27175b330137866aa2047d22dd08078e793498c260217245324c41074b78913a6f5a61b14aa0fed74aa986fa2174a96f3728b28939e87c12561cc8f1ca4cce17d4c7408cd6a9303aaab73f62eab489582225b286b3a686559753c930e63e596e66205dce55aa81020ae4184caf54dc7e5750bc891c58289485ba572a98a1ec2219fe7a1e3eedf5df20a4b46031b0307343f4a64278edcdbaa5a11f4ac05442b7fea26a46e7be081842e9ed7fb1dd8375cf907d7264f51540f85b82dd10df1236cd0e6bdca6620afd8fc6c1c1eec57533c4950e1368c8d881ed8570e5eeaf6b920cf3ea3f3acf21cdbc849a0b107c06f0b2eb8b45e471b3a31aed54eb72556294405b2a1233054205d870a0ad7080da87de8415b016247cd51900d1a7d5e01a30f546c289b1e98e986a6fe06e53980295db84e975c06e5124c0eee881db83e1e530a965dcb41b859af142c110a8f9754cf1657a65bd0f11099a4f85ec69b1c26ddb9f6de295634b4401c1178ac28fe498641109f7d56e41824822cd462b6e57394a6e7ad99f9c067c41116f59516cf9e0fd73c1248a82a07f829b91e3aff1c08f0ee026a715db17607ab029a6b959508b77dbefac07b387c0428497e0f6a934895ab853e8c090a71e865728f3b9776d0e369bbb3c7eeeea1d7c7306e38b04d3c4b80838a88717e17c7c75900a47b89f50163b6ca9a30b0c787409c8702e74e1db9f7394996454f892a9f76471406349a28ee628449d1d1034c26433250d09c145fdc746fc3468e31c5d034601b1c8d947d4d208e6bdbc18c4b881f59e79d6808e7afb824de94582b57f2bdfaf39812c1feea9189c2b51c3a98de934a8a1d7ec5d60e3ac93fbaa86f4a51844c61ad35e86f756065e6501a7d6645e0ee75a8029872c81d1b7445debcd2e9e6f7ebf5974a5e6900ca348fde182a03ab85196476f6c3ddfc96fa94a9c5669121da417d49073129093a11502bccc6092722920a389d198ce8e5daf5af63dcfc5158887743f7db4ef013501845368e3d739738f7db0a57a291c890b951837e8e1860b4a12ae334a30f0a153c8f12ae4a69c6c2fc3f72c5fc3f5e3f1eff37f1b1af960d2289c91de6b9c9bd6c6818a5db547baed01260d2f4bf9e8380ff50dd63c8757547effc81a61b3d7dff152a7f5416026cea05de2cfcc30298855d570187605b6c6451541a7df40b56624b25465fc85e28701fb73d00d568fb2374941334ad024ee50f853e10060102884831f2d066b15a35ed419ef3e1fa16207fdc06a9a7d2065dccce598841edc43e70f9f2f2630dd198e52814bed723174774d28289a97413b77308d4aa7918ec264b99a3e3a58491daea2e71fd35776281e8d02f4b6766f243058fb10b75770fdffbea2165f72aabc59fb571a57d80ef5bf87545394e50cefb3d952cf1a36047947f807d0eebb666e1135c6d37debec11a6d66237e873d6fd80fa5298d8e98db09d820a3054bb0a2e96efa48521202e92568bfa2ef7a87ebae2046e931c3cc2705649356a4f23b4f07ce1c264c15a0ed318554efa0cede1ba862deed791218fc6ae687ff7bb0ca86512a7d2504a5749e6e8fce2032977d0c17c1884b3eb81b76ea846b8540bb6b36663dc52ccd74f40135f52ffe649a212f80dd6855e1b1709dbdb87c1899d018393e222a6cc57e55b0d6347106bfd7d943e88240ef8b4efab46b597b8c8634b96be1ba26ad8bd22b540deab4970010df7adb4f696d87d8f727b60ff58b0f2ef2936c30e91d2b4cb63aa759a0b99d4e58784468c371dda622ea174c7d73b49aaf5d4a25a91e46db61a2b5ba3439164badd854ac09e023ce4f816bfd24e9d424e50dbd793af6966fb06945ab18716dd5d34760c0fb574b85a027a8f674e9fe86c57a902c109f9da8b6f71b3b7242dbd333ef9db2ce574db97f07d4573ac724569242d5d0f73b6416f01bc116f91adcabe47768a826a5ba71964eb431734a16c3cab48b2285ab18cae9d0c16e2b8893306d2cb47694109f3aa9f5fcef6f5d20ae0bf837774b659b74f9ee329e4d417084e6ea217b1d0e01c141ffd58197872e26ef45e218b91bd3a867561434867958a375b026ff41af3d0052b5b604bea56aee67897f8e679f674a12a7742363290a928ffe2107a2e8c7a09c40ad9ec8fad97e4a2230e08110cca72e08c88bfda641c216dce13afd066990f66b1d55f0fe05e7423b1cffd78c24b1005b6dac01864e33c8305f1ca811c089184e80b818b54e4cbbc05210b9c54142939c7a63045d312868cf373ee41dbc7fa9a89f30ba368849924ba36b0f1f3869a33b1f79a53757e415190db1fab77352d6dd34a9b48ca6131054072bf1095381685824da37bc575824ac4963ff39a0088bc41ad2c92dca77f7fa91b7f9e59d9909b9b5f4c7fca84b5905cc495a8c3b624e909e9b2bb026a56c8a93e6caa76b5ef98147e68226c5a7ef8c095377bf0531eaf893a05cc0694b2cdaf5b2471b6f25b1b47be5766189a46db605ffb371d849f5e2f7916e78a2cf9c1c91c85a1efdec06a8531fd7b102db90f2df947f691dc8383f11535589e2874ce02d13a1b08d5257c924c3c9b9cc686b68be66d7c0cb3fbbdeb2d16dcd65aa149edc607a2bce8d4697b83c1237094ac7670808190b3c3a2120ea2b645c84c4315f89fe0a2564ad306536c7b9fc4a4a04c81ebed29258a0343ae83e4927e8014b548e9f2528aa39510c5c8b2b4b56c1fb61c6094bd0a9ad9d0b741c56715dd204d2875c6081e4fb926805f0e51fcc5f03c1f99c1b110f342bab3e072d4dfe49b6dfc820668a46ad2f0286ddf9cbf21895931d5b92867d3248e9352403820c42300ca1319d5cf024eb4bfbf870c79465f9f84c8ca07bad2c6db44885f2332e13803cdcb9b31a840a0987417819cd79200ce3af6f9840cb0092d8e14e743ac14624121de7d8289d144673b833930e418677131074a626fddcd61f035e230ffa2eb273a753f59626e9263790717d4007a1d1a6d58d81a4f27e5305f53786722e2382c135134864b5fed04653f071d422a72d19ee5cdba02ff67433a2e748fd30354f6c423a2a4f29066934ea15f60422b159cb326939b62d373005a52e2ddfdaaa19f6fc923c3bcc701f1e8ea595c44a7791b68ae3a5cd986b92d9da841a802a506bd087fd9b7f73aab877fb20b5d1c77076039e39de669ce87cb506fde59afd30679e671df90d405eb0e3682aa5930c4f7e31b4f72eec2e3ff82b69a3a58b703151f6bf2f346b1c63c5fe5d68bea80bf9eedb6e30c295ba88b9832cde7e6421833e882320eba3f01be268f363d1b60a0e08a671d5d51d1a28718764356be0627dce8219c07dbcc16e4911e8e9237022533f5dc0a94f35d083db3a52ffc2fb93d88c80c91a98c632e62114d09089f7855cb59daa1b36794adc14110872e875185f6b40eae9073876d18a57315042f4e4742991eafc3298cbbd75829a883436e706158374109fda43daac23a7ff0481dfa3a3fa126e1b2616f48b084f0d7e73c25d2834f3855c93cdd8d68ce561109ba216e3566ab758009efadaa48c67066cbb6454146425aec586b504c58b97f08a362d8e2b0ce24302ec125d0da2c415923a31ee8151fb56bd149d0ba67fb49c9f03207d18ce83b309b8dc302d224d83a49005f167ea3c0e0c0043b6a9703dd9386ba63e674e950d2420b292213700d78ec04c7fb345a64f12c22fbf58b8da9e0047b466718292213ef430685f18b4794199ed98939c4c1d670835b338d63941e769905134bb2ccc7f75241d209c3ca08c903efb994e7a4d4c729c2e74ff07cd720ba68cd006e126f91269f28cc53080ed47a97b33591b01693558b21276d1a4687c5c80be9e50f4e69ece5063930c023b6d90a9d78807b364383c728e18749b8bde8c31b34d80e4a684e7e0828bd4acfd806911671b0a8172ce296814d9f62c9d3a6a426d4af6d6bcaa93610c7cfbced2e7c54edaaaadb8dade71ffecd876ad8345e06cd3de00f58f8c9844ce0df2bc0324a64da4b0d38ea22be8316a6842ca8e1495a80b945b9b6293ee66af390249a72db259e2f1fabf370ceac2630b2480a41caf8114eb3556a11a43839ee1bc3ef8d16d438edf01b20aaeaeb92abc11bdac839c88d6afd1c6b507fa34b8341bb01477743ebbd08ef94c5a4fe9d492989da830a490e8827ab93e660b954896a1f6837aa978836066d05d188f1333ce18ef3faa475a6ad85c46caf709ee522ba5c36b4f6e63a34cd11a47d76a3a6aa656744b16026961dcbc0918ac47abd3b61cc37875533a9d21f1f67c201a7d3048d0f6d761b3e9cae7384fd12a10ced933d5971057f18ebc878ee35bb3305a42879b912a8cee8eb0331f31b2dc0dac0af1ce13a913303bce416915c1ee258ff32ae7fd06c56c328d10c68e45fccbb1a21659b4b5e465a8b5caee0be3ccb63564d0588052501cde4c236c53307d2176300cf46066a1da57e4de5dd1e3274be0e093ae3fe54249108e654ad3a569b5e2a71918f0bc46d22e2ede904fedba84faa3fa856afd19edc23568ee9484520a6a3d0f4896f8e831a9353ce2d5007a93e6b20eb4bf408a36125ee1d0a94c61604088beee9b45693051a5afc688297fe6137d175feaaee9862950f8242c75a296427d04665014c7c462fed193ccc706aa960a90c959af86df8dacb088b4377f349774993e770e478049a79af0144b23934511eb1989bf31253163bd64a6eb7d70da95469862a315eab91ec7954a86d88a550db573a40abbad262fb78baebf195074d21d1a79a6a5836e1f2b0d5d650bed561ec3bb40fb4045e9b7ab5ac98b90ca10491eadb8fb8883127c17c5be6151f73addf6c5c3b1829c4ad05a3d89f347ea9451363c61a31334f74881d2719852e3e82c8e1cb130e9058b62750d6080ede71ae59dc859d34afba63ec68930e915d2d30ce36b602b1893a5958c3faa797feaef173810ea13f9faff5efff498e470dfb112cafeaebc780a9b200683f36921d94922598fdab0653e731272a4c638c94bacb7c06a32a990e8064f74332920ce458826fefde8fcece307a46db527be07628aa49f16b1f6c5c09a7fbefc2605e100685f1bf7c87847985db47328f41720d5611a634159a46875384281662be628717e841d03e10950215dd89304bc2bb2e44dee0191fb3fe4e36b6f077d6c959c468c95ebe462d9a2b4bec887b91d41af40a6844deba7fe918e82ccf37f9294e89c50d9eab8f698f48428bf6fdea484812e5ad22c23ecd7421338e523ecbea4541e89526f199b62717570ebd6f59f4b4efab57b019c8208ffabd7a8193b1956ff9088e7a74ef74944846e5a04bd9c03c38da52fba9ae88a9d29868d5cc960821b910db878b172f1f9e3d5262adccf8d5f2f788a73b7dc0f681e9bd62a237874bc4691014f5dd93ccc4b361d21b4d84f1b9da1807e32e94ee81466492e0542430c88453aed76c76813040a7c53813237d5eef617c7395d134f90493829602c95971df55b2ea554b0ac697454d09a338fd5065f15ac16af9a3cd5e0a9364f3578d5e45d2d1eb579abc5534d9e6c8dc7b306af3fb68ef7db4ce9e6890ead95670dde35e45d83678dbc6be0592bcf1abc6bcab3064f5de3e359132f93bdc73b60e778712c68ea47a93d80a8899c5892496665303d22da7edd345595119601b979cd1824cbccc855b7c58b8d3d5da9f8670dbbbd70496cdb37294df9e49b3867bbd200c23a45428d2fb6b6a98a10d91d448f36f44a717c680e087daadb023da35c2be51f78200a68c8cd121dc32cc2651c16d55e220fb326f8c61d3012eac63c570250eca8c6b9c9e4cb8fbce7a5f3c07e7634dd433bc2675d10c5fc5e1ccdc717ee028d01e3c1617680c35659c574002e408b2752300589ac4414cafe828b8e8c7414cfae4dd494556febee81cabaea515e32b1e35805a40bf07ddeacd004e11330d6c7c9a49c6c4706bfdc31e403fe5398ca32c06605fbc9695b05f8e6f67cf3d8e1be613bbcbc234bec9c4061092ae7e4d778d5827e32ffe1fe4523ca8fcd7ed55f1f134ff6e6b6f687f6aaf6d898a2b0ff7d1ff6f910fa8ae9ce6e85522bd7e7c2363fde51031b3595023189297c981212acd3eda971cca2de2fec59684afd0b71570ef9453aa61ded8f51794636670efdfbadc5cd5422e47ebfda3082d06d91c3cc9f379e8860fe7882c67a3404d6e0194cd5ed502a207117e6e78bae23c366e01d0e91286684ed6a8c28ac0fdcbddecd01f8bdffaf9fc369246006d853d2935821061bfd66ad9be68039d588bf466b721bbd1500e226c006a0469ec375e3525be193ef506040132406fb49e4d6910143e2e586e461cccc501b45c2d311bcfaeccf1b63e40f8d6a634ef51aee0f37c73935b2d3295299c8ad786a3bd6ca261c77fd5b7b421db3d7ecb6eb840376f0261c9502d2e21b9f34e61844c0e8845a3b4ae229be924e3146655de6ad1108e995244326d7ad60d2b49fa9960c87e6b8e2794f6236a5f265ec651770d5cc9706e389a579642d0b7f624da95bda06c3c255333d2ff2c761017b6d978e1a10b2339259e229a003f8fccec5b594f25b4d41de4a02e1ee4c6ce725526e923f132689633c8a64c68fff2f8c69b5e292fc45ed41930e5288fc452b0e2f62ab851514a35e5a0aaa47f8c12e4c16e3244ca7687eb93b6e86b7768e38aee05bbd221aa08f17d91999950165a5a2c8bbb2e710518cfc9782b421784f77352efa4c7cf104258f089e2e78c16985ac06b86ce360c70b5b0f580aaac9507e8fc8a532dfd884dd1c457b4a92089c423d363384c63b4a724c915897e4ec4816745ed323c321b3f9af83945ce8adc2b37e8d2e9fba4c3f67fa34996eb09c45206e4c002f4ac9fcb203d43d1d80a055ef43fce41fa3a71b94715fe04d4dd150054424d90b87e45a3b658630318a2abb21f66b9fe2b9d75065c46582fecdfbbcad57a4b579c1c1cadc012874191731e0a78cae9b7d2fafc56f0241f2968ca5580ed3f1679eba1cfd8100b234ca9dc78be7e3d198f40bb05c4debbad77a5a504a61076e4dbef1b16903829bacda66ba887cd8d407e64951cd0e70abf372b60514c2ccad433dba3841d4a9a75e166480c672ca6d82f05750b5304c92e4c6d8a52c9bec2cc7d3951490881dccce8a6e1074b0814e2cf040805d65dd0ae31b442a98596fff7401b7746a1ed43613e22848e04566c82cea3631f991e32a9fffcb63ab92cbfa2615d29423b1dc2b296840a46ca4253644ab8348b831730f35333fcdc24ae7d0373f1f2f2ead41074cc5a3d06d5b54610f911b2b8fe4aa4112c66115a1a023b5079bbfdc6060d4cc565377401e438b5e1715368d8dfd32eb32706ba6d4c1886a21674936758e62ba996924deac882f033df12aebf6ab92ce9e8006ee0787e746208dcec7dea56341cb0bc2a6f06c36c900ec2181f311097487c6e7dae19dc35a385198575559f00e90cb183a2ff2974ce8ada8244a3bab4a31d7835646f50923468b1fed3f647ac39656145c5b498a85e4f8e374b3591cf3064940ec41382e781640141b20062d9de669019d88410d709923b6d3141c0e7050f04066379c095c532bc2c170d046e396120450226992863576029367583d1e67459a22c6aeec4ad8d59c510d9568f3cb26240298b06314881b803d0257abc364f1681e5c9fcf27d8e8a93afb1773afdd1da66171bd78baab877f41009b254e56cf789de81af6361b225f4253ca8a85008616b5516a19a74d55b611f6ad316d13016a03d983d4608ff886a502a1f453a19aeac6a089e7be51efdbc4653109edbdd6c824021c1409a66a3c549c425a98a116953f12ecb1a41e1d4c9b465e770a2520e543b1be560054085f0922169020f3c391fe82017bd2b2148b18466ae9925fa1da6df21f3815c76b477202e38cf482b2fc4c946047d3c4378156cecae7ba38368f7d5510f7e5a03cc4484874d4b7d99f0d1ec56f540c0de964995b4c61538903f58bdca9414f82184620cd1056c159318682b2e824ccb8c55ce04083737af9b8d680fa964b9679a21a2b0526a01b6be15729306f735a4b80ff2f35bbaf8eec2b864ae3a2c54a31ad7950921883aa2c4ab5ba18d320f2630414a216d241fb285c21fde5a3545670287ff21f526e7a840f4bd883a88e7db253e6187cc51190e5b4f8aa702d392660d2c4ac4d87033bdab3f9857da2131a83dc27c9e261fe746fc0e56f92570dcba6561d52398359cc51595e4b0089720b7737a4e891dab2612ecbc9cc62e72506a833ce2ca4e16044a0e23066415e80e684185c16431351c9f857ccec71b4c403ad25d98383996414a2150abcaab39712b3badc74bf3920074b66ab80518aa15933913beeeb9c5f513035c80023310d7c43fcfcf94ede9d041ecc1c2d7d2a25d6ce2b941966b76f24ca30a054127c336a7dc2f3758e6e6e019162a0df7ffc62c88f80aab80db01409613abaac99a36e1854449b0c1526694fcce60b694cae9d34fad21cd1318a96793b2dcb9711600dfbd15946a5f4630d6bc16e8b44c028fe322d542c00bec2c8af05392f688fa92fbb6bfee51dde978a1e2eb33b086f99ab0c5bbaee32d03c55917158c83486129050de6d5954168ec0bef89db5506384ab49f7d637f354a4536acf9d088fc35041cecc115e7e0f505b9475c4dee3c72a35276c16548f7d0fd1b53b2758f1cf9c6e0a285e22b2519781a2575a88560728d5d9417e2c0a06ff946db51646b1e17670f09ed3d0cea03eab1ed80793beea29a53eace5f75066b9600ae34cae5887edc1092a2e853e6600010e4b117cca4ef255d90eeb50893235a361886e1de221db0093a5f3e88ed7d0371355ef7c8ad7ad3e6f1abb1db1efce4519836c01a7d004c0347fa4b139f177258a773ca90b50a25626bd60981cd5e7f008dd5252f0bb7f5208206e23dd68d22a0003fbea6962257433de3c89853eb00a4c66edd229a363b5b75a48618225291e5cb6ac6d967d9e0781c846925480aa026c56df306322a4f75e5f9c9453d031b0c3fb8027fc41ca15f2c369d035e7b9e2e4a1ccb05cab00acbcf05296043289bbc6efe3410b4e8dac529e4b04b0d472420723e683d1fb38aa8362b46c622d2fef732c651e5f683c943a0cb3958ccc6020a2a1055e240b81697a6a5bcf1b9fa55a41bcdf864b008e1eafa21f2f12d09634dc6c17640c12288ffea12545b11e7d331155e38a9e53804281da76460fde848191a47e6bc2f48e083e97c35464e557a39fda8d9964e7291f0de44dca4dba7760e4d230d5878d2790a0425ade05f4cd953fb8cc191cdd9963580c1c3085a77612bfee92184200d197fdf57cbe9ecd78d646cdc8c0ac7e4081e8d130b3926ae88c300cdbe4a55c8ce1843b7839fba32c0bf36a325a128e637ea3600a25ae428736e9c03b7079d62c10be81c8b61e5a4ed4105816f99fc7992fa9e933023974e8e39909591738d1f383ee241e81451203838a5f4e35068b05efa3066717362b254061f24af8669e900d3aaecd0052b1e1674c546a7612689190919acc00f25ca4b816f4277e408f845c8664aabae2fe07aa1322364ba481a468f45f37e1ac00fc291172e82e671acd345814f2c585512237a14a80a891c662960b947577bdb5108d51a93d69711c3b20bc41ab81eb885967b0f651691e5eb5868a6ba0945980a098ee60e034ca9a8f4499749251084587e48b191b6107ca48ac1b3b6b42ab33935608db71ad92134444acd989eb5aac00507f27cfcb255548f8376ae9a873d98409234292c8990f4f3f5c0d1119cdb90cbf1b6b3553206a8a2faa26344c2664d27430e738bde74b814ce0abb9b1dc200201c6278f42c46d2f6c862144f25d744d660e36817da81ab471469512ad8d40222c021524581031024fed0903a72758d480af3d0b4a816a38af94604f63a379a543a3911aae043aeb1aaf94520e5cfaf901d8b13fbb6ade3b4e0f4098620488de050126a3ec98d1fa99f52e51ec6d1569b99841f83006bb31c318f492a72d0a4b47a093370bb1e0d1436180b595592c55a04dfc3c37b871502bbc0736c685ff9f5161310386eb3f0255a39e09a92960fd95f1da99b8f098a488a6dab767285765f45c733658e11afa0203a426515b32716d7daa5c4b8916402222e1c3642478b31477ed6ca6093713247fc8b8497b4690db28755e6a2769dbcd6e1a3260ffa9d104f9bf2ccd4ad47edca59d450677509b020f430dc07c717840a6a14285eb7ad4608ec6235fd889289fc1419e6daefd9a457e07c74c8eb84b6827b8b0a070e760d046be0d8b8444dde77250e3ba309a4fc2b114113f6b5398a08d33109baf25cd147134b40efce466260dd2b8a692141bfaa99d9c8ca2ecadcb0a295d232d09f87922694250f144eeeba000f26cb806ffa209a37eea8c0e8c3408ed147114f429bba4cd14b7a0a00d226d0e016c9fb6696460e82cfddaabf956be2bed55400cf2c09c1f28ff60e5901e3843922d9711c2409e74b9bb2037939cad6b3005121d2bbd4965161742fe69f05bd36b789a5c071e2b56c8b953340a330da8c11705bc5e5fed2e4980a84f79a87e2428da53e97bb25693312f9b92a792b5e3610fcd4634f342104a731c4de7c3519c44e86bfd4e0c48994f7a1b9ec33c10d20c838ab114eabaa1caf8d2a551f32d82d2c3f800cecbbaa5ad50d0c6e5ffd76f6d7328f60364a72f7a33e30d92e399284a37244475ef7c1c9006260a5c9307adb5e5aba64383133b2546af5b84eece632e0435fc0bc9b15e53b695b412321b2d0c042ab1e486f7e68f2f14e3dfc58bb2f18a6bd68ad31a09e9608b9cc633dde3e80f15cb5799cf7d7e6d14cd7b175b6e282adba5906c2795bf85124ae0d0ffdd053c1c5ba3d4c6b1027a26b96072406cc30cb80a66ef1df3d13014d71cc57c75af07960659b34abb09fea8ae81d4b301293efec169b3a78efc183098c2a6c2cd319907e4fb9979fa65dda41e88fee209165d8f0f5b82d49cac5ab7737c001aa63c60f26d25fb1091d746266ac9671df533d1081453d2e996b111d5cc210b03196a55cd5321c0b48c4dfa0c28625c87f83ce1f000789e3e2c3f9785f91e087e06cea8562beb2a5ac32046b85c3696f585c2f2608253b4e90ad5025746fc4394ae56474e18ed1eb986126046086be590907c2094e4e0903768305a0b4bb0385d97df6673707673c1dd1a6823798848c8ef9ffcb04f77f52d519c713a2d8c437c376195740be83f06315a6f8e2ae9574c427940afbc84787714f2d1929f4c665a827b04e3e26ca80e3600072123537c75dda709c5320be84dc5be2599d82791baffb06656b39209201a1f8403f850b6c9a188d803349a841bc2bd2365a6b3f735f6c8b505b7c8492abc9159116f69a93310980c0c7f196f656cae57c34b056ec11d4d11ef9981f75b4caf34b8e3389a50e06b8f14b4e3224bd2cc546435aca993d917d18ba015ebb13bd04208310c025caf1ba128c249382ca0018ae421db57cce6451eaaadc1f4c0a8c823e046c2904bab90e0a2733f7b63f4907e2697801b530c3f08368f30334a9132b4af653ec37848d36102a6ec083fb10229f621c40fbdfc0002f55698dcd77cad39b54a9f4886afd81b06d5d5aef86466d1b0b2be6bbb8d18291635c8c41133ab946db0f0749b0402b62a2323626c14bb9a95377d1a93262e0563b9623dcb4d09b759a9528aea1fde4c68fcad8c66ef4e24533d4808a1c17235870e90b5a88ac791a20bc09252c631969b00751f0269bea41b077008c32cf207dddd920cea6e84cf208495c8196d89517cd4ab7d977ec1402ed00a7881642b98c00b31b0b2a82ccb49547e4133d94aa8b41decc31bcec04968905828c9c99b6a8f13743a492541d1aecf0569f0b3f464f0b4ae6620226f964bcc2e9d8e6dcab14083a2cdb8798361a33f8135137e9cecc5e33777e0982c794b8579bb116a9db6ad07ff52d681578a7f499835574a4b2a85420e451b76bdae19254499dc22f43f2a10f49b026abef1575c50d8d1a803d9da1170905b6bb2602b38617d00f40eeef6944691980c890590de613f052b24a606264c5d96bd6c019111fbb8d502802308eb6d905ebc621dc6740c8cad049fbbdfcfa3bbe39ac7db03381442c8de7b6fb9a54c32251965056705720576c66232edd56c34ea6ca1d77017360365bb7cbec23e68436961c8813e1e1c2ed45e6b90b07fbf11538c1b7ff80033621a31d58bc371a08f03a9480ff7dfc8fdb60a055b3feb36903ce99fdde7394a45c68c986eff88a9537e98c2bd36982dd520b83654a77c5808fa2ae75f6e6b1b883bddde40414c03b8f114a4e56ea8175b702ddc8e8a75dfc8e55c42ce871672a024d829049b035f5aa51dbe5c3b0b887c255f3c208107071272b91fa20c5a1851fafb399015aef0e14413429c6802e5440f5213536130d4297dc75054d80f63e236a83d27c27e1c881bc5cb813a4548732d9d223fc4f1e0443ed35efb4ae67647ca8e5625f56aa5af584e85fd3c66d45efb60294acda0c50709ad8b65b81db79f7fde6832557135aeb3c1f409c77fb9cb8ab0cc815930713f0ed429f194c50b07723cb0e66a9097bb1ce4dd401105c684bb1caee7ff3610ed98d4d07caf4e0d7de995035f4a3b2635f0e5be7c23770317a2cd5d1dd7d25e73a02dd56da8f64676b09aaabd18e4d2ff7874a31353e840c993de505c4b75bb430d282b9db290b9f1b4c5e97e59e99405cccd4abd6a4fe6f68b802cd7c28150250ef4420acb81a467dbb4ada5b747490f36d327fd9890144bd6127a4d63e04035bac84ab7ff338ac97010305131c0cb20ec0892b88cc9cc1ff6c342979b8da40703d231a3db9f81d28365e0c598c04e98e9f663a1f460a18a85a2d6e83616dec648a08b9538504b142e7720e6561c688a2e07e24023e10b35d0620adb5618b6ad389073d9669893d9581c88e3b1b5b655cbc8b4173ba66025881eff4703d37c942c79c2efa0c64a10535c04d1e3e74da7e9c4154d11b6dd45bce25504b50a958bb8c365ee46e53a2637709f6345e33a263870612dc913fead6382c3f6dc735d35c913ae2a79c298142c631886d5f6b0b7a8f678c3565647f454509e4812f04504b90a500bb6817936af79df845ce6582e3fb6e96a14f1845f8355ee85dd486eaba6b655eaf25b54a760a16d26cab08428833fffc604b6519f7f93e994eb79d3b4ee62497001f1f6d830176121e9d956bc69ae0bc130ec688fb7151253b8ec2eaec3431185ff7b5b5deec4bbaddaa6b27e81034a296566ed051a231bfb538db647bb1c38039c2b99fbb8bb4b77778fcc1f2577b83b9160396e92bd0addfcc2d2a2eeee966cd56a2ddfcf4d2d5bb2bf56ce9764abe4b1fef557fd1c2bf4bb2bc67917323fde6a6f5e1d778e5f7bb17d6f788b0596c5e57fde9a2ea4bd96427a60fd4351b6640a3b08eb2d39d35ecfde62628822738c726317cbdc35cbd644d98a28ed69c956268435a9e1baf2b1cbdd4fb65a5106eeb6ec34520ffbc9166903a2f7d348e16de962a510569b00b6b21151814454b2c58a21ba644c58b0dc01dc688ab1c2154969a006a280b8f068ad745b83b9adbddce6d81c7356c4edab91fe5ea82b25875cd9811e052b5b737ea36cc8566677f90ceca781a8dbaf8192a5811ac822a9ab089a64754abb0f298467d83fde12bbfb99b9f8dcda76c55cfebf623aa59fb9bb254bb29a455150dde426961098152a9c49c5fce00305f8e307a13b801b7f38c1ba1aa5d44931bc2164e68713a01f4e7c2237814fbc225ca16f5257ac3ca93e663067c6b2a4e1ff7574fbeb487ae8cbee05f73cee06da9da6d8713f37754a3c4dd172fbfdd429920389cd4d20aecc4e459e8cdca4003a037db1801eb0fc039e01edf5634fb05f445d6e8a2937b989ab76026c8e54415e78922e4fd4e51973799e2e376b19263d30be5ace6bb80d462752eb0b6b2d87b3f9d7781e57c351dbfb0e8bc24492b110d829916198ef20e9d93c6b9d7fd6f9631d487a369dff104ff8353a2a47846599a68e4aad403ed8efd39e10d9929961cdd11c35a8e6c89adb6103da8034436c582ab60162f383fd4636a08d0f9a21363e6c7c8801ccac0935a146e4458424526a4f083b13639433eeececae31f1c03a4783c923fb6bec1e86242b1752259fdb4fc245f48898aed625d244f48890a40810646635d9f9de4f32739ba445b26aaf86794560602b17f61321ddd642174a84243d9a50138a902e9416caeea70935610b6c4b1392ac444c214da809638862886e6bc24c088bdd4f434392953c21d9c292224a89494384484b7ae88b98444cf264d304fb91ac444cfd4cb22259b13a228b82587277777777efe81e637fc72c7e444e152c17545cfe48bce43a5e388987bc54f292979a45041c265f9263e5bb4c9e8d5a6fcf2d7cad18db2083cb36128e8c0e5f2edb341932b6189dbe5bf633cb30cca46392bd0b9f63a5a46372fd8ccfb1a245130c09e32f92662d873342e90d26ef4287c38537f9ab7343c9cfe870ccf892d75c98e142c70407171e000f001766744c7098f12ebc0b3362649b0c8ef324249c189dbe9c8c183366683f43ebbbc9e0b418222d74e22d3181d1a92fa29974e24ac42a56b5ebd27a94949454edc24a4a4a28a73f0555c4844623559097940f122aa6741a8d1ce42067f18f7f42a150e8fa508bb338a8bdd108544359d8b0642d49594b755567eaa932514d5555652aaa02b9fcb223658ae8db36d61fd1837d4cd10ac5e5af2f59d28375b554bbaf7eb596be4d8c28b5243d7387d01397abe9b287b58455613f5749562dc9d4522df586554917cb3fee1f9233d1326201895e423c6ebf47fe7c989dbb0e85fe4640333333b73347430d8165f9c73fdc6269a151157790fe74d3d6edabe5369db9fd937bb2589335e764c1b0585a1e67b2a20c4d298baa2e15448a8548afd0a20c325e2e885712f1aa0167081bc4edab078e142c750255416129e7c09e740663b16d4a118bd55efb0c47c30c1df685dceb7d353bda2df9268b4e116807f6a3255a92b55a4b4baa922a8606611bfe916170172912a9582295f4385855a00a64f5cc6c352701c935a06f6418fc1d949e69c4112225464b90442a1a6acf595a40544555fce168344f1c31fae68864821ce4db1019a11dd99155d920f685ad0fb6a4cb1675d9c65cb6a5cbb6638ca3d168341a8d46b55aeba35aeb68c41ab1242b32f63956a8ec5876d429f43256b3b63eda634b1ab5674795244fb85f93f77390b3d0cefb396877b071e5aba356491dd520eff659d1e5aff7db4697df8aac8b1d591f2fd5477b275b495d1db5477f60a31c49966cb11d5d3bb223191a25a4ec611de4ae949be45f71aa885d2c283d3e41965d05733333333333734f2e227633f7b89a22ac04473d6e8bbb8151c17e1324495694219256dc537c401fa01d5d294783dfc8310d1d732c8a224dd49ca8d6640102e3295fb910577990db3f39c63835de660eaca3fc073eb844881e0742f4214447b10d3f85dc8d7164c56d1667e696c7619f3f43bbb4e79f88e2206739f90eb79f8783e084427148412ed4d5aa2c1710be60aed4b5ba845caa2b48f76bad19c2ca557bf12f54a75cdc3d5dfe53a75ca82ba5830b5543602f9494e10bd59b0f9d420bec33c109a280b8f4e4d1a5db2fb7b9795e1fffea1c74d05933ac88e2608fdbcfce2a59bea9890217c26d41f438290531650571826cc36118867e274d18cc9e71b273114ffaeb0eb7ff07564469da2d27c17071fb5b6c7f17737a08fb643aa81f071d440171e1212ac18c5edc638c31c618638ccc551cd8f871869ef18f7ffc2391b0f47b25b6371d94425aed39e860abd626c4ef180b8b6118f606b8d83b26310c932eaf7caf86cafbcf9216420a70e3498bd36de176dc94162fdd8d272d429703713f8c84cc81b81277e27634a947b739f0b664c9d90684e8b5dd80c0a3243d938778d23f89885e7f4f1e36f7cb4a9387b0bd0ed25e6bfec5731d1c9bb7321715f11ab4f3e5f0eeab5272b2733dc75d4c96a9dae321da76dcaeb6133e7dfaf491d933622437f673d67db55e5d771ba0a197b0b4fb3230726717439fb049bfdfae8c41c162d80b8e27fcf1ef57e38ba61a376bea042a666e3c6d01e4f6c7266e3c5141baf14f54882efd8e2bb09f7799c414dbbbdeace131a13181750c5c9fe74960bb578701f91970007df9d7e512e0f78bd617faa4dfc4dfbb87d2880317e0dc4b5e574703251fa362fc8127593ae5ea6e2accd7a15374686febd4f571678073afbf3a3a1c61afff7488e994efa97dd1714c7bdee4b04ee41ac9138e862b06355f7209ec673940ecf55f6bff75c8abd17cd17dd5de4d173b1682f5ff3a8caa0e83ac3a45f3f39bd533dd921f2deb544c769b0ef50a82dd3ed203e216dac981a9daa39fc375af1cccd21e83da9bfc696fbea853e6f671fe742b29d7cff911e6ceafe1840a40f78be1ce176ce41736eb227758a7d9c0c6274e3eee67af4b9a52e0472ca26c11458e6458c3001d835c9152755940229c056986e60c996078f08e094ed23c4dd1ec507b4b8c2b9a754b7ab2ce4ba5cd8db1243d18119811266cf4c4e5770c8c28dc022fff142205b104719e20a65ccf3f436cc3655233949a218fced50a20881e67d52bc43a24d616db982d2d18b79d941aa5760471f99904b7e32d11857fba64cd16d66cb91c9aa1f6d2e5276d3970d13445481185a60813f7d636da5e369616b27d3670f3b1813c326ba46045e152b87b8c2f317af40d6a0373fb65836aaf5b6bc9bb41498fa6fa36294da5a96e47f1c2dedd9a21ac742158603fad35bf4bb3aba0cd12eca7b5409ad4344d896eeeeeeeeeee6e6e96ec37b8ed23500b4b4469799cd1287483f9a1214614fa41e20834881e37c1400623b6e131a6d1cc41ad818d1185fee773871f421d2111e1fc8c58224a3f9da1981e2e68721f6246234e088b9973ce499b4ed953a6f873cbc0facf29432bd0a2b64981200a888b8987a804337a0141954aa552a9a44aaa381d0ececbe83ec02ad447ae54546ad4902c1982606f2a9554a9a44aaaa44aaa98f31f4745450002e828e249ff77e22426a9bab6b09f2c4995a44256c136623a05fbce62b4a081303218529565946a60045b2f5e038940010fd146e4bf4b05e3494cd22355302e9354c1b0d429edc0e888bc00e95b9226b98b0341f005a0066a5a9d425d402250c003942a10942ae9d1400d045f0082600a002d08126394514af9028d11ee7290577e0e726e45884a30238e3176d75081b09f83abcf5c620b4723559097fee983848a299d54543cef9f4b382215aa00572b1fb89a506225097e599a4a44e740617fc43a97b83d2ac97490ebe309fb796bcec97aeb8039affc1ede49217dd23bb07fb7aefd3bfca023245b73d47db7903bc186b96711ec275b379e805c7199aac0854b514a29a594524a29c7184bff1c8eb555cb589ab1d8e17284192a7a15951a2ddbe1e0188ca0070f2b1fb854e14a12dc922d23225de23655e2363d02acd1a2e06c6519667d749d2e25267c50ea946f962e4ca77cb375fb2748451cef4b2de9a99d095f9d097755fea0f19772775ea241b0df544d55946196220a15d133399c5952cd92ca5bf313b32c6ceda14ddad5c03f3b1c985767223b2f39137dd22fa7b07fe9089c9e493f05e9c800ff5115951914d05e83cc802f96a4c7978827fd3f4ab7a3e8072948410a724c71a9911d1a9056d24e3bb885993597eeeeeebf4a2022f0cb4c2157fe33f4b37757499e30e82a71f7b4027333333333337373cbf95db75652a6df3d243d7e443ce157620597bdf3514461d912e29f46c07c1f8d7a3492829b99999999999b5baedc5daea4c7a1b0920a971de502fbf9c78df85c5495f82ce122140af5c476848bffc0e37eda68ca39fde4e323740a5f4ee14b679a4e58983ecd6503ae25504a315063d20ca11942c3038d4b47145731fa93ac4ac01217929992d0ed2791216195804a7890b44a586e7ff46118866118866118866118866118866118866118866118866118862e832c78178158005f0e6badaf19623f15cd10cd104c3304d30cc1344330cd102c0bcd10acb3d00cc13a0bacb3680a20a1451a9f264f3442640f913b4629e79c93ce39a7c718a38b5a5d58fe898dd418dba34b77a9434a29e59c7604c6741a3326c7b320668ceeee1e6d757f6696927264a6d15ebb6398080b9c65b7709432c61b645986b1f449af8c6633cb3ccb649675465dd336e61eb62c0b59966519566badb5d67ac929438da62ba3d9ccfcaad775d52b9359cb205934599645ce062c2c2c2c2c2c52b24c59044de396ee31d4a8610015159f54d2f87fc1f3bc5366d46dce194d29cab35d4629634fa67122a1b14a4a2953720a969f6273baac564a97324a1967aba29471ceee93524ae9d1a5ac12eb8ca58c31c6a819410a4600c20873ba14a6dbd0c39c0ec4741b7a3082116ce8c1861ee4b3704b17bb692cd5d50a3f378256a96b25e7a671b1d726535275e3675545c52f8e067fcc5337e449df1b11a50bdbc550a386951cdbc3fe7043ea05cfc3b20b867e31b5ba565d8495b6cd6de35c75e3464a6e9bcd6e1b49fb41bbbed66aaba7328375a98008d86dce8fde8cb3021c4e9c6f01a923c618e79c735e53824f7f4e3a27776c97934ef91fa593d249bbd975f732c6e6c832d3f12df56b8c36e44ff7c901bf3d3e2638f00a7d5ea11d685b31f1e76bd280cdf5dfdc1e1da0d77d086dc6cfa0e1eeeefeef52769639f7054ebaf4350d1398af6e5d7a5df4a990f6e86bccccfc95d51ead578828b4766415220cf435b97132344a9f7e672b20c913fab55acb798c74e993341dd76d5ded5efc66a4fbedd98fb0f34fbc3f55b319e7faeeeb90f4c078faf2d422ddf72dfcc789212324a3db6e8c17dd2781b4b0e93e1973a9a6fb6410189d8fa48c6c45944d906a339ae2d014a526388c3c8c87d17900c68f7c5ca175a4e3011e46be85c7d1426782030c0fb4f0303eaee018f916ba91aeca931c303a499850d9da648bd64b59c42216b148032c168bc562cdc06dd5144db672ea5f5af77957461456b6fce32017652dac254397863ac52451d2936385be4c49b9a24ee29ac408ef6a1b217e74d145094c4e1802ddf184983984c90a94f3577e2b0304dbe597272082119acbdf20264517ff1c8eb519f06e77102cf3dbef147e1a9d2272997348d60441db00bf490e1ff85cee7c64fb6f24808baeb7a86a36e3d09f2dfa5a7ea487f370d539f68565c276270903e47631aceb2f7be6ba4c07b97e752aa5dba593ba8deb6313228aff27e512220cbe8a287e84951f234aa7fc6bb596b3751fe79fe52c139bd8c42636b189431ce210872ca065340c6358a36a36e3d09f5847a2ee7dde951185fd2449ae582d0fd595244959929e1c2bfed2243dbee22f554f49b3fbde4558db4fbc5084563e0d0720cab891c6e749c003faa4ff83e1323f03240eaad7c2fdaad70e8828fd0d88303ca0633cc0ed18e3f57700064494d64103b1091bef175947d0d0a28af4f40a3f65aecb5460515858ee06cbf5d8d579a0bef4609d07b2aff5ea605decaa3ca9214fe2cf6e19841669c8971fbf3fcf89dad6e115acf392a37d66e298e6b1f7ee86caf5330bf69a8ea53ed7dd90279c1c2b265cff06ecebf3d70e4712dcdd509feb70d478794231ba625beca5752f4f78bef4919d7f75de6db4b09e0d71a57ee46e603f4353ea5dfab63dfa94473e39ecc7e9489b789923322bb2f960628721469354ca8f2ebbda24b7af70fbb9d60fc4e00440d4600813f8808315990209c4134e56cc5c9112b6eae06147885042125b9cac58e2c572379eac706209d6de78b2428a29acc88d272b9080c5bcf1740413142e6b473833aecb079bdd780a42170a38023d456185eb379eae08723ffb202d76b1638c1d63079992a8c40df7f6b8643302000000a315000030100a8804e2905838d1b49cec1d14800b66805074563c134a634110a4308aa218638c3286000300200610a3100de924000d5f235f820f1d5f828f1c1f1d570c7a7da04b00ad834e00ad833a001d847ea8f48c4a099474ca09948b4aed901e41494709418948a946e81b2925280929d5da1dc187cea7cd87d117c507668128c51400b1ab0b396a7d8863932db0c330152125f98e05d8382eac72bf83d68e22dcbe7471600d7a74cc19d3f03a3cb9f6df89e09f90cee61cd2573267ac12881efa1f4273c6229aabeaf9402899f2e9b039632e8e4b480c13d798d89fe09c31a22b78385eceb63e736633524f2710131501b466bddd5e173073cf0575bf00bd082d6f3e50c8d55d821212f0fa1082e9efa503112c991bbcda628f2c4df0ad974216f6ccc6046d5f1dadb027068603b655d12bc3f514c66eaa6ed3c4ceb80b12b97383865fc059249137e75d286cd3cf6a9809483ddb2d4aca9b0b0a7f7567a144069c3c43632c7d8580b76a0a68d79cd85dcea2c42b39a31ac73c9362a9e13c46efbf9bacdad80caceaa7ef0beb2789c99ba3e784ac434e38930e2c5ae0fd92655d9aa85ed4309c22836b1d522ea121458899ea478903f3bcd0f197c7e3f22248df354d6effa52149bbb0f0e83f57342b0347b66d456222b143ac9e056652918518ca7240601802e40104ce065be1fec35d20a1c358ef4883310478d9a36d467ddb8b5727770a970a1362df737320ffd4e65bfa4a40235fba1b615b0c009b8453d703ee0c65d745812cd5b893a4cfb26f2ca911d98ec2c567f140600efa49ddfe8e5cd999707ee4559661e5792e02de9764e70fe879759e65a0875ba0f2e93be967d43b37785569f9af6e77175011b53a2edbea691b31786304b5e89b7d514f82fa7e66e71139290b630a0c1c007460c5e36371dc34b13bda842177ba322f9ea3a0dd69f72050032186a444c5478459fda783a913cd9d828e401c487606550ad9ab5a1746642dd06ba1e3556a9a470f995b6bef062859288a0bec2f50f4a196e58ed465e904f0137e3b8e99358851929e9bfbccdf8fc83da47fbf569c41905c6df7670d09f906b874b1fa8ca2e559ed2445fd174b5cf1a188686e9e5c100c2437001838157b9091accc1c7c354166b23bde6c022d59c720f840b43f12d185ad630e7cefcf27aabae99305484785f3e0719d81ef52a3b9e89cfea47269c43c9dc527c5ca6e42cceb16373fabc68ac80aad14668dfda38fb30afc9133384694aa5dfec1d22dfbe1ecdac41fb2c441f131628d0a2a941fd6d46196d6818eaa7f791aa65ad37e3cb96220657cea8ecc1fe40f569fb9c00f55ab8e100b778157587f123f4b6d2e207d85b4f6d34c1286c55d632958cd23ac90e28bcd905343fbc43e5807584db5dc6a4a4d406684e691cb3ce575073c940ee7814d08640bf958f88c92331fddf23d7794a1fb7517cdfd5629f4df3d47e743fa609de0a99b743a44a3f4a1f0d86d753ad8eb105e6d5de24b3c2e88fa29057b7cd19551a503200143d58be8680ddbde0c3a402738b53850dd08fc34c06894409b2c63aeb0a0dba306f4ed214034a991cc9bb23e42bed73c93f5abdd4b5accd4f41d327a04373049ad2fcd4043409af4618b404b2257291399efb390f697fa26348fe88d4c3d86c2ad1b66b2411889f77248e444b18b163e06b642ed0d2d29680b87d891f89b46e7633096be9cfd122f320342052f12c45a116197402cc524b86ea689bcc3592fcf3062bcbee0adf7cb2389aab3765a118c031d651364656b6dea9428f0896dcfe1d663db94b8bcc702177334638603713a6bb4d696443632b6e66196dca9440082aa4dff5ca5c24e6e745e807d49b19c229fc36dad28f62ac51d2282468dada440c00da9558080d72eb559cc21c8c6c76ada0e3f9c92241060fed5af96240eaf96b4e281454c9d2a7b1f17527a0f2bca55592ebe72a3b9d49c435c72c93503f9dbfc9b68043f53ab047d3189f8eda27749a37e855d2345df0d8f1804911dbb43a6acfa5168a9f3ab764f808427e097def3129db0125b41a1e6978dcd38a7a220ed035a2b2d33a20f34a1684790c903c54c3027133e1b52d5122d47fd6641a6d17a21be3521965a6a62ddc4fb0e30f26e7bf1e6786110c1316df6bb1b0dfeeb0b75a0c7e5054146d66a2ee3211da04a5a1c14a2fca14af6e364efda105d3feba5f4c131fb8d99c05f2f72df026c333c40bb4f32e451720fa6ab0e93342d483c2d389e06ab88fd236636217c60e919b6f0ac9a20276a9f60e9c25fbbcd4d24436670641538113098469a50eea6780394ad5463623ee4bf2ee401b5a681ae5de119ee2e7ac1e0502eb180716304ded0de8f8935757cb2e59645de7a3a897b076a72684c07bb520874485731aa11d38ccabc8ffc0d8c1f1ebe715ec4165e654bccd8299989e08ac8eac241ded3ea3e15e17299ce9ada158a7ee2fd5d4e7ea925570099d5105ce28e975d0f5240bde9738b1e5f1c21ac4c2b7d5932bf3cd2f1373b098010ea768f321a433e13c7b5bdf71701678819033cecdc050211997bc14a7cd60b2571ae1a14aeef33e9d5bc3f1b828259cac4021c637b7946509e7eef0c210025935edd071b331575b1d5fe68bc2e6a005209a822c81e8a038d24804927ab13b03866e5b1edf0bfe806408be29f95f06564f26abb473ef023743a815120612c886e048f38e61cea1c56c697caff52ae7b9cea1860f0e610417dc13a817d0261d9801050d94a205fc1b40488286f38d51b7e8ad18061e853cc87587cb56b00af6149725036c52c56b6983dcc6d2ecbdff4567135532f3057646134e47149accf2ed93689fda0ff280ae640ca52d3462f2c39d5391db0d1ad9d384919f2f44a0e57c865cd510199aa6e4ee846451218c941575238649740f29d1c5226d64680240a0051b633b274e830484e5ce9fb928b37bcd9f662edd6743440bfa3fe71a1245f812cf5645ea5adab0f0759fe2f5614671ae7d569228d0dec02a2aeb6cfbc3d88345d4d11755befc4dfaf498e959e3d67a9461ec769443e2d927347002bf841ea7bdd0a47ed061fecaeb9c9f663cd0860fd2902a8264400b96b35b84dc14fe1ed5a9379e38e417498e9746f87df231650f480cad48fc06cf26ada974c84b65b84330718660db9bb4a07ba91807ff9b3c56bfd60cf22cab066e87d109fdc0b4a1e58460c11e4f2d0ad57409bb5b16e5dcf0001c219b2d67d4398a05596863d6049b24e4974aaa037df24ca516aa85cae63d4f3c4c2b2a0ba94c9f021867fbceacf66b72887277627a93a6b408eefe1df667847723768bdb3481c74b3c3a67fd49fcdc84618b9796ecda66f49d7419410cb607e4b8622f692326037033d4d6475db6dbf10452af8013c967493807cd2d4564d321563d497a38b30c65032b7f173d55466f1b8cb4187f015672350b8a673589df1e56ac0f88611560d28c59d1313e3c10c148dfb1428277e0eb1722787e728dcdd617aa2f696431feaeced7480bcd889df65ab781d027c9b480bb5b6b612b2bad6ccc04f085850c96c939895d66c516976f1cc5ecbcc5b0880d718996c44a7624ca439f14ede0876c4191f711691a40aab2a2ae7d4f15384908ab3946b569483b72fefccfbabcb42963aeb7189c097eb9fcc04ff50dba358a112704528d85f8da11927aaf8746b3ad80464868a5d4302a6c8f482158464d3ef78441e9d615c0de651898730ec22e5c8c71034ab1acb0cc0b3f82f247050de38d5222b39ba8dd06fc6e3c5f9b749beaf5c73d7421dd12ee94d8598e47acaee75ef1fe4ad3b2d951b5eba2e6dbb47dce6172cc30d4b9e7a09290036c33be5adf8db7151fbaff2132abf252243c1ade753b0910783d8a9271227ea46f4fd10cc20fefc3deb91f41ec43cee40840a008973e5963a587e1edb12a73af1c03283ad6a291d891b219b67955faf6880c74d244cf62eabb3d2e9e42549d75f80f5f281c87db11056391ddc381c1892e49b27f4090b96240f69cfd21342f1dfc55890e3177630e0f697cfcf0d2d19838a9e4d6e9b52c9a16138b1ccfa097beece3facbfe105ce42e19b02bfb7b44149a5c099d5c3d70a5acdc22f1d30dd94642e3ef40d57a7243eb49d1bf123c79d6f5603378505789743e203cb71079006c9a66fc2de710aaf7575de913f0ad21dda8091ca02ff0b8daaa082ef087e35d5b27d130e97ec1bddf57791ed85b30dd8b518e5cddb1bc1e26f63d18dda80e5d3eb96664c3f24e0cd179186dc6f2604e0e0668117a0ba4ba442e10a4341ae39221c5309a08bbb03c6a510a7ec0a19e0da35a0aa78a96da6fc2989eba2fa9ca1d53a6a101a54c9ed809379ebf92042194a06af02e2d5886b45e55885df47cb60748bffd0f1bf33451765469f28adcb9a5d28655ed9998eb0e9774f7e2a6690f29afaff02a642520f65a73c4bf131a70be403841938d83105941404831ea19c0bf9c74c73404b88995e5762ccbdae443a5cd3b6d23fbea4eff269ad38540bffd6ddcf3bd6b976729956ce0a8eae70cf53df7e1d6fa32c2e4afac9bee0a9db79017bacc561f535e32bbf0a1569d2c7863c0eaf574554b309ce1c5ca57140ef53c192175226f92777d9d5bbe2bfc2673be72fdaa3964aca42099af6184eceb6776cec9515d19b63099fe7d25a149ac547ae65301a897eab70bc5320a4cb5c4cf92c1ed27635bd04685f29a599a196a7ddcba6fdad1213efd0e003f53b69f8dad2e46cdf492506ba796abb0e56e2ca44a5faada16ce36ca6c2ea5409b4559438bc7dd4254948b6f834dd3da55cc40fb6b2f956a49b69d3d0ea0a2dd10ca7860c17f984008ca47398296079e9e9eff9a4ba243c42933e07685049ca172416ab8c5120a8a9cbe75b1d70fb400fbc5dd2b0805ca448b11b6c12e6008cbc45140f615c3de468c8179aab9b251608cd9c848574fa5ffad54198b97e23074e6eaf03d37188b8a3d536f24d66e50b85c856e62f5ba4474f25d9bf5d0935604a8aae3bcceffda7bc90d2b57302aa9572811717dad5dcba3e3c72cd48db453c6e97e22bbfd65fdf03f5dfc4584a06f8fe7e3a02378c0917015a4441676c1b91abc1105a1c7d2344c88ec2f8dd3f2e2fb84338c306df9f40859be216003406b53b81ed5f336f98b151194b6b5ede43cb8374008040986f955aa3e39382b0887b0f5f0efec1ef4365a2e81d3ababeb97b5f96f63fa0991422be33ab78d6124156a633b91300ef4c7eb177199168860d74c932bcb4387b16ffdb0db4290546cc6d6d56c3d97817beeed56e1c6a077ee374821bb061c8bbf37740b559fb11ff4849181b452ba79188221fb04adf7ee84f9cfaee2745f087850c5482fbdb6d3e81b75984c8910cfff69f8a9ded6d98c4952d95a2cfbcfd107378dc5d704f2989437436038a08ff5085b9db247b0a7142a864922f5bb1ab6661d0c3108ca095df69773966c04b06b8d6e4b34012378c0b325a938362cdefa8f24aadfeb29a6e965638532467f25901c53a8a4254ed48b893a7a493272ab21eb32b940816139c38f0d3275ba66f335a3341679fa38fb31fcc393889779e638211f9ac39e4ac6ffacb51bf2cb24f547931bcc559252bb72ee6ccaec317b52bc9418d1cca10923267fe8fb31d39ec16d83ecd7b220b511d60a8b8c85d3f92afe10a8d83095a8c7e5f9882ccc96cc2593c5fbc082b9954d1dbc38141096e995dfc30699e93f40ac99cabfcca2e53fb1c2f1d874c920cd8da7498b44d660418646f89fa32f2c652f91cd570d0754617d021e8dffe7894450b8aed9d884935787fd4518ff78c0d6e8de0fa248a8102d8bbd326c8a17131fb5f1232de93cad254609410968afc5c966374b1320e46ecb14cc01e59cd5ee024e3e510d83e7d9e174bcf435b8e1baab1b4d4d303f01879ecfc7591c694173d1ab0e2edff2e091f80153d325ce496b68bc0615aa798ea8e20b8d07d7bf5228d7def9b9fd11fc3a2bfc869ed4387a9747c81f9e24c11cc0ddb7afa0d1c428b9c533473d59160630fbff33a6434856784ea31ef716a2bb5d6bf3eca1e18370175405841fb5ceb7e4a6dd0273ee5a0ea2c2160137ad691c7986adf7032577098eb9cad2754f34ed29d31f786cec28a2e7407ead6fa1804e40304f21bb8e5c2076b2fc9af658148113084a1007876abf19bc97f292fd236cd8b56983a401ba5ac42f5550ada2ca250268e95203ee86989bc3bd2657706b39e886d31d7b583b8db442d3f6d978856f5e15828ac5f55657c061fef954a19a487e21cd703a29d603c6c1f8966b8afcf32c5a10d542976ae15d6f427aa5b84807d061b8b53a046007e5e62484c9d4915e4052654a609dd05ccfa2c51136b1352739e9e16ed30fce8955ded90dceb611f3a5221d93169dbdee2645b55d0475976a5af5a54313f6b5051883c10bc358440dccf3f13a34a7dec808db4b0cf426f0762003b4d9cdd671949b34e7988660b4b517390cad3059c352e7b531d99aca30962bad86c47ea8938eb0a10d89f62a5d56bad14956b3998eb4639b452ec959699c23c0b2a59269438d460ee59f017e8a9117f0b24b5fb75152820e5eff03f4ef479f7a76d66de355fd81cf59e10a4286c8c28c77e8fe88290ec76f18dfaf6f0d634a955c8b2adca80429598f68254e113aead84265d719463cc0cef4ad45afb3a1661e8177c7da137a4412ea9a0403642b41e9d6742f9a220258232fbae7a3a71d023390057093a88755e41574c76bdf522fe8299fd9af51b964f5ecf96f117832d9a078f40c45a532d3d2a46cb54bdc034e661134958ecb6c5f0454db58c016406bf39a457ae498cbef1e2d6ce4373d58b58d20fc90d6bbb818efe435f2921c2223a786a691e3af297ded06def1090c83d68d18b9335d713eaf996b91ba9119762df7ae1dbe003835fe9f185900d28f4e1eda0b865caeea913a11ce78ef74469bbd07027ae758a18e9bb56217081a83f864b24f8637b30bab2505cb04ee92e16a35803f3ea42a90525025a90e0f69d6087e7ef441187397ea29666b07ca7e5f87a307ae3bcc671c3b074e011ac887d731c978f4c04a1bac1c2853ea240a9cdd04b3c237e25c5f6eba9f0592d4ea573e5faa3938cb8b7097d0d8dd8de90e641acd739df805a43e27d7f41b347e07ba8d36886f06bc39bfdea1bd265a84f3b7a914fdede1be60083c13e003016ff1718572de267297a96aa810dff53562eddf11fd4d15850eec4dff401cd9396ad2661c727e3dc89fe5ad37c9ee268f4eeae2a6114c337aed91ef0294637bb493fa6844d7aa60a982d1155fdff13b51b2748d803b0cf0f98a3a21e9f42b7dbed5e0cc28e0cdb780153cc6d11e17770b1be2b14dd88710889824b58b6ebe2d610ffb67021e42fec4f63c3a7eb6d21150df52a5fca6dc8a9bd700f9e0709b5fe5f78548441ad3fa65d384309443c34ba5119dc25bf612d061745c0833215846530aaacefc772f9b10b2e0f9bc099f13be00c6f2aa492a47efc03ee1662ee9fb110a78f69e0df7459aff31ce5e271ed4642630fc8ab949fa77958c3c2a1d37f5ff021db2feea69b018e47765744ae0fc6c38f0ab86ddfb26dd55fe29f9987c637f68a05f0f109bc2b8ae954503af0b00288e6b7c00ba83c8fc08470eb33a26d5a14f4f693078b7563b46506744fcea12925c54d229fe2bc08d81769bcc03c43c6c5f981ed190cbc46529649e177f2577d9f1ff815bbef3bc805632af6100492952455734dce41854a9b7fd53d48e5aafc356f3a9a22559a6f874f3cf1829978038a55a1e65233b6ff1d58c8cbad1df84b8fa15d98b749e6a606892fe7e9b78eaa84a8681716e9395dcdd27cf1944b0072b7cc3b5db7ea316e3a1d678b39daf55636ae254eef639b6b4c6e3bb8dfcfe2415f36b922fb91f12842b9160905a1e31d4a7f4ea3123a0e99dec8293704baa75a5214a60ff303158a0813a5dc0b59b1c90ba659159bb97bf78a9d17a1d9c6208e8b41d8b82a0ade716c27b71b2b777180358b8c1b1032e986294151558690b5d7a5cdbf66df4a546a92887509604a1bec53404eb5a32077430523a68266afbf9f985bda3ae4f4c31c0b999a6d354fa48741d94ff126c5cfa682298c0481fee8e02a47794e0479e99f34054481aa65779f6a1d4c4a61d7939e48f61c58488d424ac4d678bbd22226f22052460d1c267a5375bc0cab94038c838839889a10674731eba8a28febbed0388af1c00566b5e164b95e25e658669f43d4c181cf1cc821a2a42f767a14b6cf1cd849d08bbe1a719141826352efc2032d88032083d134a618180cc421775b7813ca6861b7627a3ce1140382b60cf22013b3fc10fc09c2d1c34fb289b95cbbf3a7a9f649b3cf0ce4b8c848ba91700aea81bfe62c3295edc033489d5a28242e144ce5a75a09a70f4de63dd07a4b8c6f24bd3151c2108d65407e970008bead3065f6403f8c71da39261d614e3b02f01c4829e94ca0520defdc76e7feb48722d963755473212e658ce1a31650d900ee67e90390b68e6cc0acbd542395c5e0ab062208d835dd95d5b300db2dba463f5d5be11b4030e410430d196ea9a82d57a88c72b488a65c06725d1d00a18610e5fe9927910cb50ce39785b8afd6441a198b364170ffcc2499b83103db681636deb9748abc1e2046856a645d9057aed707adbd4635bb126e6401e2d95e180a139119eb173ac138b9bf349901109f54d542ca0d270aa8056c56956218279cbd0d62544d06052646b177811045c52f3c20227b4e8515399468a3be7e65abaca01fa267936e405cac66da45a54673f5e5606e751b50da7dbbce15ea298b99fc4c0ff2dc6a7e6fb010ae7a90bc0214cfad07c85d80d44b653c5a4ad1115a97e30a7db09b4cd939c94f6c9061d700efbca531930e5cf1c2bff9899f46402bb4ebe284bfeea13bb809052ddc5b74cf3158173bc03969b8f7d982277c1a19b67550c0c6c23d47a30c8f79cf3e9026166f1b9b07ee40b3848fc42d9eca51a94a76256ed8c18d108f2c064ad10f8252e84d6dc892c63dd575d19436f718e0320720a70cea023cb2efe0d6f3d7883ebac8488a40c0abc8e215c097ff5504daf5c2185097bf0f5e43a0dd6e49b8118d5f01710370d16bb5f6db75cc068fb78c37e16c0169b31cd6df9196ac18d94fabfcc0f13126c442c60e2768a983672b6d8e9cbd75c2e2ede079a4ecda0285e0bb30ddf0209ea49db857cd9067b9081ba414c792621ea9e060755821e7c1ac60a190fd563cd502c1c1aff0ff53df6c2c3e1bfb9527ead42b3d55ff7a572329811430993636909ff5f661746544040f00a3406d04d5e9bc3c98bd8dfc765a1c2b5e9e9d2f5f20e30080e07135952c9fc4e184a9021282c1025e9ebd4de714527f64a8f6701cc15160dd18edc3e0ba732f41d0e1e62702ed3d035c18498032b5639e0a8696a0bfa941c368bf87813f1f7946dbbb1ead0e4b9b9d8f77ccc358423f96d92f6b7ae1c39c7eb4a9abb8aa8db39612a329d31b5915b036b5af73bfae2be691c303590cd0bfb96c0b6f4bb37df18072f64ec1c53caf20253745b8bf37a7e3016847d7e655eef617517277ccb1277c3ea58bef9ff2b84a8e139e8fa595d478bf67428b0f68f18860a8bc6092e23acf0f61ce1488d267ea22ec1d527c9d3190996ffcbaeef4198f93b81c44d9dd250ce912d6670bc6e478d1d41f70b387eaa458444d8f607614e97026aab287c8f2b77d30a95a4e6e246cf8373358db046be3c8c5e1cefbe94e11a3745164beeee39d96affa5e8f2123b9728da74980f79efc19658e74493a5480b0ed10de786253d4c63a43b11add96d8f6a0b60597fa0c17f31568800e0d21632d8c11fae9ce4f214e57f23fc2b2f08de458af1230b38053cef78ff0927c7824776066ee3ef4acc4b5b2e3604188ca7ce6928633cba5f6585b065715d6910b9f01b4f91bab7d06d14b4046046a1b2479ddb46790aa1af61b93de5aa8994a774df13c1c3e2e398c2fe23e4dba703c26e00d9845e82a3da6ae109c5c382d55866d41c52a8496d8acd7212f9a969d5b606faa661735712864418a2b94d581088157c31a040960528c92e0b5be84a88ffe3ebfd879c3e4be9c83084813ae18eba15aef2e8c2999dee8356ad6502ed313c6963c476b830babe2559762288bf5cff938d635e4a22508ac96421b9782f30b0dbfda0272b56b7aedd99ca5398e897dc8666aad9e0a347d6ed34f9945486b9e245e341305e319971e64135adf3c4de05171e367ad6c18f8f666da71a99c9126df5c2d55af5ddc29d9edafbd0a40b4a817ffb2b5ef4824ad94e4816150d9934b40d777d226272cb7a1449fd484c16326ba70b68d144385cdac149356879f933665160b8355613501e765357cf52bd8f2673d652df77e97486ea00016294950ad22a58658addf3fb0df0f1aa7578de2a451c802bc8f060c4b69f723f5e560c5826aadb8ba8f4a5dc1a3d294c5ff3e73018704b118b5ef3a8f9ba1824a111c652619065b5eec558a70b0c60a091e86f0c06760d6ce30e9c7e9a8d566005df51ab8f6fdec2dd614b40b9a198ec8bc58ffd4f316b19865441ea819e7477b61ac65fad80bae349378121595b082b01e9d646e5446c7e4f5b75ff7338e6427e7c660089c1866e76fc660092014c1659402c90e908ce3ed19fcab5cd9adc3ab0f8cda85a6dc37e10086cec4c52e753fdd2590d5b49439387eb00aa2d6a57e54a4027c9bdf4eb51b078dd0953791a9018f3a8d28b156b981a6a1cca910257ec41a4fff796661f3eca265f5ed223489c2709aaa09657bfa92b9ace08aca097b758f3e1990bd30fa49ff09a1e76c7451ff710178d3b30b180abd47743f54d251d7cd2be7ee9fc7abd1c500a4b6909983520be8ea6e43572c4db66404944f38778240e5d8675aae607d661d8ec631920cb9f30a62a6caf9171a87b8c170e89d5bbfb42d7d01e9efd060afb61a45dc1c3339b25effafa677bb8bca50b29ee86b83e759807c89c3b81c5d0b2934a2c62e2cb0cfae2a30b0b270c9ab00494b3d923eb6c0564757e7d8be7becdff6baeac0ef5fe114b06d1e7e18d2b1d6e09469cff21a07471ce3120823cf4a5027e2d048953f526b8bcd436a2d935904252aeadbbdbe38b32e560f5d18248ad8fd2044b574d5be49053266233c87d10591dd40ccb99a5499e46f5111b44c38e833162ec737e40b5ed393377df7108da9dcd1c54e9034255ab113448c69b99aa8e98b082b5b4806f3ca82a50c260f3fd76bb2d465fc8f7278bac79354384bf06f805c563f959e9ced2f9565e871cf6d09af088b66514845aa230191e9045ecd05cd600f4044d63166409b833041932c201941ea1a89da591ea2b13a070ad6ec95e86825ed019181399c44e0433be8a0965f292c9d896db65ac495f1c566744eaac6c868e7fe5777e78581325e590f9aab32a278604839a7bae634a2cc076a09de0d4c17af72da7ff2c30eb801ed70c90fe1db2b6f91ba53f7b547b2fc7a6f55fb5eb498a0d060786449bffa99b27e3e2d383a8fc42bb0b64102823f1910a0c234853ef11e90042381d548aaf027829d569781c5ecc6153cc7fd2aace32ad71ded9ce40744923e8165acad2b7336a652a347ed9233f484636977d924861fc811e2213e4a8a8fdf28f760eb8769fe13de15fe809ac2c425fd3460bc4bc1b46508b9aa3f2b503114a87e44e5d4ddd955d87029632b575643128fac34acb0c2ff3b6869441b7785d94b8b5eeb570e7a4141e989fe31e2e5a531a284f02975b2e9556e4b4982daec94a685782d4fbd46c6f26f2da5cc5482707a179547986acc4c67519583b715679153ce1205840ce6e563192d8ce3eaa8d1d3401fa38c87587351f69305a434a1d8a391ada4972a0728d2ef78a372e8a21fb67a1d6a2267c09290e396818f04c7f6c9457eb00a61f1740a7a479ecaf3abcf3665ae46bb63c3f0018b620e4ad221e136f452ac1666a604eda708c601772e396cc860a9741b17002f14a2e083b93a427f51873bec53a2a15859256be4eefaa01615e1f24e9a92162c320ecad231ce4751fa5ca13a0132e72fadb459f8665b09edbb8e2c02faa70fa41a461532a15e10d24287d26d9596f03fa35a8432300352c158ce42221b891785b23a58bc9eb95a009ae481b2a0c6cdaef0f1b8b9f7e68f1084823dd42c13f18a73d54122d51c8e8d6dc2418d0255211d793e2530478341242a50f7ed6dd3756402f261060ead3388bd0b66bf3f6ec3985dfe43272233b40c446f283468ef48d61f319394dbc56eaf6e3c7bd315a235333cce7ca637b9017f5f8cb3e7b546051a685312f37535e21f05f1dc2b6234b8adba1f227355e7d2e76ad3097fc8557ec2fbee2457ebdf232b51dc9f6a0dc9d4490c483022374e5804f1099c8d68af5fa8cf7435ddfec54e5f3c86a96010093387a1849bf838b3989e20bf8e0870676284cda702bdc476fb12ce9825e11e825892643c93af50ba30ce89ad165193355902e6a3d3614ee38b1230776a4697dc528a86980f04f7b755341c4780f76185c246fff80475c97dae63f2cbbcfee084550e5aaf31eaa5ea2172de041bb04f29822facdd164f4dfa817e27799ceb54dc455debb0b30ca87c969f68af996a72a85d60ebaa799b34cc43ded4f312a7060a0bd6561b5094d2ffc1263596029747238a711f52f2050e87cfa37782b66c3c22b681ab2c45df54017c8bb92b9bad8eca931014e644dc6882d6566b8ad7f367849e568d38f7dd7201b598d17434f16479f79de180ad32bff269b5037eb5173135752e59d23eafe37b650b1fbd348a29fe5968dc2083708e0df361fd66eaeef97d252e600d0b9321b77b870626f77d0808ef79a1dd282ed5405156f8759b3e0259afea5e672391a03c18afdcc44f8d57c1a9f1f5349dc246ecec95c464ef1945979e3b5e2e830e69f0cca49b5abe834b7114833f21dcf85be24936df214a817cb5c54360321051a53ce2d5c3d6abf8652c44e2f65efd46bc730523526217c9c4f488b210efd294a3a0cbe5dde370fdc7de34d70bde8ca46ca2ced9758b49f041026cf6db89a06f28bb3ad2986f3aa29c444425ea22ccb60e71446c1a3ec51a20b6cacd202a395665e2c0fd693dfb72c1e6584bb225b20b7e40a682c2f0a27c1ee4a8034406eb34f036e63ec9aa8b642edb9e599214d75b7545217a276ebb5cdfa38580bc4a6c653a59ee565d4da075d7c257f8434016107debb041761aa82e152b2f46254d510fd54c4d6d066ca64f17338e7c37f218f44c17263ef5bcc67d6a5b219879c9add2a69da5d078b21c0a2e58650e98ca70106762298e3c0eeb5c577b88352679b8a7953a456ec72d9f170f530275ae2ffa74539c2176ae0352c14d113f6f96c29b2224e65bc94d2cc253185e6d671a7c81fea240c96fdf36e81a0d2c8f383e23c47ce2633310d6886cd0b11124f7c40cee8771b1191d73ec31bb5195ccc25954c6f48de3796829b77dd63e959966d32bdd39a1f6775c890f2dd7ccac2d8960286f220e9e31796f9efc4a880a5c07657efd0fc654adbdd33eb08d0594eed6c896ab0053d98faf4add69026011d6a00a439aadeaac48031daa05c092d88316a47458fbb7fe3578c42ba213bc8553cd9f3b4e8e8958513d7f804c99d6f36234f99ee29cb8f19665287fbad6fd457b5f80b553ddedde406a2547aad275f8de24e4787fb22425bebd59ee127b2279f8547e4a6b9cfdd6bb8252a3a90042c68ebfab402969c0c7375b233301cae68b57058a9c94375ecff2c7086690b893405f5c18e9440f0bb78d5b237e70721bb611808e80281f13565d62e1f86902117a58f0d4321fc24bd2b21fbeb67b82a28ec326c48bbbad3beadb798d40439416445e38a1f52d98ec0c0f288072050a9aa8e58548066051608777a925bbaef11b81611c69404e15a3b5def4a776e6017c852a75487939095626f17b78a14c941bb9540e294c4a52c8d838a690316423ba20f0168499318db7fc7770e58e7aeae272ba03a8fcace6becbec81394e736110e09c2ef15d4e5f9ce19e38c74ca73cdbe52415c35276391a5f4a79bbae8f2c3abfc4c82ae6e8da7c9b767d37133c132456227be3df2e3add3e3bc9f538cec551bc746ed82b83ef47999b6deaf633b419e15bac1d68f6833910c17092c70ce032f4d77ab775feb22dc582012f20e071070654299075bcaef1ae38e0950cb44775d9c2b58065114f8d9d62a6802a701214542f253b363b2021602f9d708e9c8123474584e43431054ab387805016b4fbd89359a024bb1c2fba25996edbd02e102f4054bec758c59d51b562d6a08b0dc9a4ece8802732af9971fc483f9f730d156f4cefaa8ace49b5d026f275c6fd2ba17105764c5f2a5cc48e4279a7fdd1a9edced2aaa2b4131849267d83e643beec0625aa7f87f50983aed625e64a12ae706f8a587531fbacc7a7391c000a28b326312ba6676f923abb15b86710c3f7ae8e5efd8faad99cc49b0a993a02992113f5cf9b81ca440259af2a08080437b98bf3a6fa255deee561a8e88d1b0c199d50aeaacc0833cc6ec533f0ab8ca5e969f30e7f8509744f8002eeba9aa8cf20cc48be8118a599c9c1522c9d85633a23f8172c0472d568d48e326ceaf6afba6ccdfba20cae1108900de508f46fb75f0c3a0d75dc396f6d428f9109ee02bf6502fd4cea411bf6381a7cf16ee2d1ac282fd186d60c11d1a404d4866020bd330bde4c58db044acdbd0e73511dff78d00243270d405e401544a25353083611ecadc7ecb58f415e0f4f6c9fa6642b4972a3aa401e783385fed004ec44a70d609967b1ca0ddf5da1064799ddb11e98aa3750381c8e4ca02598e9756c13c232a7660a000d7be6404b5f792ac0f2914c3fad430b91c6a7920daf0e07f2100043428df71a12113164465f619926ac3a6bd18c8865e9fc1b22e9b2ccd6178ac5bfeca895d9f6235f4ddccaf87532d6d5d85ad48b8aa3caca7b90fb80c7df0891309cf91e56ed22be3ba91eb0d28c77d1076abba587b76c3941ce3eacac5e331a9702a760e9c9222b5a00edbb9005d4a1eee551d5b9998ad15ee5b40ee0f231ccd80c51d704d2013bb26b70d3da1519c6af39ceffecabf5ea04b569a7e9cb0b5a1f0eaddb1cf68b293a79f582dc3952ccb993defe85377a3aa41bd69e4cff026b215049c089f06412c051a3fb64b2f0037c405e474e511beb6d8edd17b3637919c42f2379e29d6cfde254275886c8f5da3ed084f1d49e0550d010158716d8714fc6a5603c51f0c9fa82d810b5d556c6b62c6944da7e746b65855a4a5781d233561dd6b2826d14806249a68580b5900d279e9b75cc084b307824259c176088b6fa3d2b5d972d8a81bb59f07b430c6d086f5d99a0493b89462acbc0a9bca0a81ddab9801cc4aace7232ca58c7d12f1904ad61b79669bfa5c66a5f13ceadcbe8f3d31b85c868c0e5afe4808384cb62e66dc584346107f39971ec3d21dbabbeedb03b7d439e906a5f9e5ee7a72aca2eeddbe637df01f611a622dc09cd5dce0c5cdd3d87313ce3eecde0d80934c780549b2f039e3ec2340fd57ec9d1d037e11593ed7b4483a064468d526523a9e359d4ab4332e26244abe72b8a0a9a6c4ccd536fc45d1af53e08e8ff68d2f1155183bf7b7e2de3ff29505cf077d082fe874c602ece13882eedf872bbbb8025c3ba2512a4c35003c6303482a76e2d1d7fd8e394bffb4b599a79496412e04e6e6b124b697791e8880c977ad268f2596c26d071825d4576592110daecbf4b2c2c47fc26308705a0f67d57328860f025eeff6d90003281fb825e263a3aa43e0ac9bc469968ea1c5344e4d744a0465c665bdb300ba2d36bdef27b1f647ec0d3336fc0f3406ed2f24deacdbc0c36fbe4016d6b218b02927175d64e7f278e544741059846d08d4af925b13d9cdbf18bd5b79adcacc10085353b5ce1ad6707005dd946485195dffbf13acf735c5b096276fcc34b657a33e294e85d4ad33580803051b09c031f42d5aa49650cefd830e6d4d2e22e47b08e1d527504363173315e6f7774a0cdc4f4b9027c5a2c8d0563e488316e5b83022a96166eb9a31d82e952eb22321eb4a7069407d4242149cbe038c6493f7e3c31ff4ec2868e8b9bdd571b3ef8120084222640ab9b6867e9d7c753ac2db496cd805c8f84a8bd7f58f47a098d4d73b2ea43693f42a68dcdb3120ea62b946d70eb4c49540cef9a5297389078d2678b0abaf3f664c6186b5d98a31669e249d103a5fe5b00f5d9a76a2a86fb0f995134961bb389055617e09fcf8dcbc024946447f86b154d944441ca4d4dba51450dba8c59114c3b93b999cd2c9886ae96f57bde80a8b2d689ab689ea67d70aed31f3074d984d034d4b803ed8f53707ebd6b40a2d10b6d0fb69301a8f443263ef26a20da032bcd40af611698bd38367874c7965940703c829332114494b189dc34ef0e6691674b3dfd06d7888f592362cf49487b441436c850418739bdf2913b650d34ae7fd3aa3520237f268e57b1d53524a31b7173a534083021888c2ef6448f0c32dde7d477eddecb13692715e5dc208c9892db3458e10ee16623e8d4f5152e406629dd06975ff10df549b91b85ba626d97ff335b4d81d9aa45a6e8c983f2922072cf5dc31fb8f818408c260f2232b7e1b9d20e82b9d719c3833d264c9f851db57ead8a681f66282cc3d177c25a452a2e5d927cdcb52d3226aefccb63a7a81ec0ff8ad2a064c48c09d0f61d7b04fa3a12c3a36c53eb39cfa6065809de2364d29f468492f4d8d1e53fe44130e12082ba863e1f7a94fa128b9e4cfa8fb101da4998bbd7c0787e4c8fb945bda2a45648db55f8bc3dc6fd92f544ca7ea23a109338bee1b2875a5d9cfb0c870c602bf3faec860e5082230d39c3d5d89713ce1135eaebf1b4602db09acff9b788c26278581d88c74e91a4b562ff2431f454d28f060abb7f90112b305ac32dac0f161353197ed5426895e3bea5295fe52d50ec01294f1b1b9a6281e897152380a7a8e971fdab82b267e86a758c0f7e851463d7d1079cbae446bc126e4d6375df4df0bcbb78dbe041b9408b1cdc0da791fff070022fa8daf69bd9006e88604346170e1204ed864c22e501d1deab93ae24de4267b07fb77f11d6397c580a240e490249c6a687919447bf75cd9ddd19a81a43b15854071d9925adababad84f8a2d2c58fa81fdd8515349c54cca7dc9be99a06d3639b8642492fa8b859866a1d9d5143c70add3211694f23077503cd8577568966fbdd364f42f632264d85f8ec379498ddd0f933170c4ef9dedc426b8c786be2b389421da73cd629759b81909cf7c6f1f3fbb9d2e0f018780b28c48672f484ff5dc2cf50832f536f258d093538c9f10055d7b6e0277c380394f02e6bd89bb9c392ce2516befa227876ed558556d989bc6a49740335aae86da6668f27acd852104a84c992630b441aeab24f347c8b6223cda08b14acfe516eb90cfcba3b5e58813b7b994e0d2d8bfef945e47fe0852bdf38d8f108beeb93ae39093b099e363559b3919a752eb1acbeed7b8ecd2e1104ec8ff9955ad03357ef483606e98cd31c07fee8bf9f27e2e839e236b7eaa2413bd73bffe318b0107e7b20b07f10ea8ab4a66e9c31121ea015258718c8fc1ca7cf0b9061e4c3ba2c24e574d298488e81c4e1f5c84e9d1b0ca8403f53fd46bc4378186a6e02d8b8646b7abfb05d8b29ba9ffa9ffaf5234a16d42cc5aa83d05b795ae6832ec1dda9a3a1e498299a8ed3e03f091c15dd6473e39dbe965b9f0cebcabcd963ab9ade382ea440f2cc60cda2e0d275960ed10b5ddb84431423e1fd50f355f7bc29708e4a1dee65fc45945e52e6ac04425f5b0c244461743442576bef1cdd7845227df9038c4840a1b0c20f758cc415c07477a54441b12f1a39cad3003fedb6c11dedb9d4bf8677a20e9ec1fd869528f3c4c28869dc7ca832aede7da04c4160811ac8ecd9b54a563c5a6063da59ab890f04ef57a866ca80a7e96b53c2fe9a13ca1c3bffa73250f6070d2fe98dc54c317973067cde4b00903dc0817aec2012960b6cc4523a8b058397f929ddc2574b8b26219a0bb6018c8d997c1ef52574c194ca86887837f1e8de516eebd8dbb5826eeea226d12844b4c90c3838c821c28115d64b789c1ba55758eea24ef252c921e091a1a2b9dea53aa764243d3a8087f7059b8df1c7986f5eb200d8d239c462516735cc0ab5762487f7c380b2e2a21a33eeecb97f08be45c938206e55d10b5fe24a5d5f10b948f53cd7350fdc051847c60105aa962b2fd931386b760447043cc85fb78a570fe58e795855d54928e8bef656404360004d3ef181d508e5231e6717e8aad2f3a1598b63d1c4c90e0a6e28d21f7181def9df1206255541105688099b3599f45aab4996a3c82c7982cc9bacbfb1c3148956d2b8d58afd4a7e99aec89d8ff9f4cba545686e28823d7d6123fe7f73b499b9114476b4acd455052bb458f5db6d6b279d288f0ccd73b31a470cde53e23b3d126c299a57c529084b951b033c6a90df8cb2aaa9824c295972b34ddfebdc620b2a0c35515815ca2dac3eb1ed61b4b7a56028ce6c7754c47440adeeebd69dece75d12cfb29baf7821f709cd7fc286481b743cacda4f20fcaa8daf565cb22ab1ea1694111e60e79d7616ba7c4375a3e5a82fddd7b39ca54b18db07effd87db2e7a43a6e5dfe0d021ff2dd7b68a5c9afb2ad2230bd5232299fb2aa41ea4d3af8f0f981a30ce6aa43ec2ad8034857b78ee26906b96aa3aa1039c60ef28ef4a03905eb1c9ce71f59f172dbc39bcb6a51ecacfc51e0e7c0fa2a92af42962f1663a5a5ec4ad6bab0a25c2a18417787aeb3a42e40c0ee624b2af21a526c77ca9fc1858da959f8fa574b83f21391249d466555abb0ac4ee38d33026e5a4bf5091580a521bc58a66b5da6c3fd8f42bbc5e576724c827af90a5a842b49efbe362143d33dfa08345a00aa8eb096471fa053839b06899e33ab8bd92b8f1862e263745b7087191d90a0bc0af364a814fc38da416ae0c4f0a6fb393a9dab4e77ebc050d4e15fc9ed410917746bba169b3cf54501256be94b397ba12fcb4e088b966041b65dae4883c8f28ad70c8d9771be9b560d7f782318c43bc8bee349ddfd2014064fd8dfbbe823ee2c28ed99cdcbe8a18ebfc3568934e59cd97539fd5c8b756f91c25aac4f9d54d630df57a3b228e39bdee5d99d1d9a3c8ae19bb46b42ab8dde11aef14473b20f30cc1b4ebd8de11e16a6afb169548a4d0ac4034c1e10c81680d8bf6c6d724b2d7d2e801dfc0b6d3052a4efc3de6ebd08ae071294c4a8a288290c78c388dd4ff80e8016eee628e444d98d1fe808b1012af7ffe37060857a49e5c297fcb907f28e46f512e2df163f343ddf4c0dc3ed69a691c8aa865f4553c432379a36bd18d5e99479489b91f87a6c0f42cae430beba2d3221aefc679d398122e748e1463909bd93b64d13c401c7d260660a36bad3b50c250ac5adc28d36f11b258b96ea34cec92ddd216d8aeb05ba530c3542b60939fb529981763eee5aa511c4303cd57d3ce5a0fd0d22129d7f564de7aa7a097427d3cb20f0e91cffacd1f76f397a81d78badee359d916c5258eaafd87acd8666eac0200b0cfdc302ce18dd0ba19099b5a11fa2b053f6f63836e6b61ec139f8f31c35e84dfc420d6d72912c20ff960ab6f73a7c4187c94cec7eadb47da4baf5b5c61461e43ad4563a3f38477cb78404fe83be505af64132f525f33cbcd2cd5f2b8fb6b4d95e18ab73c97d933b1c9f572a2c5d9503c08bcede304f27641ed69be9bba30df6ddacff749ab3887d6f6a51d224607e74a9da6d4e578809b67836931e5a2ca8506052e7443aef2ace8d2284c4e41295b11d61e3c0b189412b30e5f207391abdb4e1191cc723765f99f857bb37d3f85b71a9e9dce19865a72e8e0ddc3533aa7c2bc99ebf8b6b2c15066f5ac3d3da16e534b021d9be69f6613308fda4b2637f1f13cc50cc0c703fb37ec340c67a76bb97b0b30dc4e3f858d2d12bb125f8ebe188ab679ed394dac3c6405c8f21eca0c4926c9fd38359d04cc8f683e36c933e392c9b33117a5e9998004cf6d1641cdc4404dfdcdd0bf02727c87a6afd854df2786850db429914afe4ce21435ce0a2d149cf8740a319cb7a0ac7423aff6758b19d0f7e67f82de56ea93949aa790491ad32e1a51aed7f2cfd4810a1820e663c8b405f46f87402192462c0511e3bd7e6679575655319c67aa1b0ddf7c8ea11a6fe8e0a200f453d8a3879015809b46127d0deddf37f737210602939374a26c75d3c9972cc379f7c7f72072ad30cd3d67e7cb04298a07e8d5dae17c066357e5d338fc3400e36abcb40e9d30cd85a4ce18ee3097b3b49a6650be3ccf931a4006389249871ff1b2ff46999b91ef1ba4e2412550aa447b53426d4bd3baf5b1156bebce12f5b02b8238f489b7d02692ee0b33f4933dd81787ed1f751ad1f8b2a320d5987373a8e02cc9a3c9deaf40750981f3fe5fa6a51418909bac8e0d7650f991084fd92fd691dcce692053ff69d38ce9c6b2e2aca299352b0d7fbaf3cb12099af2b2ec6d4be80ff96bb2b0b37473ae5fc476774d7e7d92fce4e2d1f576fb9f7791f03bd7c2d29a9ea322ee4108b2aa8ecae4e5b49189639441626260e451441751e9eeb1361b5edbcc9a1506144ba217d52cb48918d02332fbfda50d53b1785f64f146640075b7de95f0d3a5a5876ba41709b7599dd694075fdea4e5c135bd7fea9b4a36c9000e983e74983f142291fea26bfaedea0f6cb473dce299ba132ede26a889aa058104030c39d25ad083434939d4af4bd76f7d936f98728410f2a03fb7c643ec9a5ae8715e4590c2aa1a7ce1c0702a87735dcc84798f9f1211a9bbd113c40e61e47a9c6b992a2b727c60c81f560aca5472ce478aa9309b02c00ddf5146ed8ee1697e400cdbb32df36a295ce45f0d90139c8d75c2b02cccf71023a538d5d77af24d855d65bc60abe9f188316cc7b9f01ab1cf71b52f76acaab9d883afd3d742b3aaa67ecdc0220ffc2726da0bb9028f3d29ec21b66adfedbb3f3e151e365c4fcd6d7cda5bc20712169b77fa849e9632a29abd7a121c2a42919d6be6a7eebfd7813f81ae93ed6ed2e371b5da8bead859e6fcd4d5374c14f27b130e28206350c3d1140bb5a59ec47c0da85a0cc279df4a252fb9a421a6da5aca935952c87760fcb800f0e58f624ddf183b279be716a146e322565347f29380e68b41afeadf0b661405b72223838a95d1bc6839604c35226396adab827b1e1b7c8cadc3d6da62f761551dbfc04dea57b29636521eee3ef650666c335f88486654b33e4cb79ccb71c0b79e79792d22bbb13264507b3d9ee8825b786ceca014baab83f58e57eff06c3f64b896f44b104c8e68e63a86528c8a1092f42608f1104cb8c5a2d5b28aa67b04224885f362830b299fcc878b4f86b825d258a1788fa5ac84fcff6f38379e8f3e72465f90a327341f87043458b194f74d595e4e6427b1a9c9c9cf75898c9d1e1ff296feb03ef68a4176e5702e969e892b3ce14ba7d50107047ad7d423c8878aa16c37589226bffe8e2df07c0f2bf3db5184d255b58471fe262a9533f16326ab291f50dee6ec08398a8cbcace3ca24bed93a2e0207f8eed4a40d3013f6c1e868e461f8fd7b1525c9083b8d2f135e756107d5af24aac0db11df9510f7bd06f9c68bfc8e6ad39c943875223122678a2bb5919d8d46619f313b70b26342acbcba9ca1b0240561e5ecd0275cc2ae78635cfe8825c6d26028ca11b30895d73680bb7dd2fc4c7893c3d51894f509b5a6a1d6a010e5f429351fa1b1700f1a7679173459ff233010ea6bfeae19c1d5d68cd93385aa6234969cf0058743edfa390f2b984200e5b4511bc1775df02242441de7097c2c22879cd0c190ef5d30a1284fb40330f827bc82bbe9f55ab6cddef8c89cbbce870bae84f6e8c57be20f5d4cdfd275df50ababf93f841d8a61795d4968b7b3bf610421c8744dfea4bd1494af59d74e24bb402548af97d431f94e5849ac1a9fe3094e93c9763f6855f79c36371ebd6a088eeb0fce259d0351308b8125c66c50df979f53f71ca803fdbb612fd48eaa19fdddf3596c36acc41779f1b99e16deced4c567529eda88054a7752fc5a685810d0029131266808ee709c29c29c2df9f3431ed83648047046d043799808dee20d8980567e15900880de046f97c04df89f73f79f38422ff77c01f447036aa436885720da59a5032dc561f24315cf978774e2b7a39ff45a5c13efcf1e733efd65171c69971e1e56e665502d2682635fc051cb72dce8cc5f466641648a1ff72394c38f7bd741412eb1a40cf12834b27293bd37d9726f295392321f08990894081f958f4af751f9a8a83ac0c5992c430f9e1fb97cfa172ebc269bbfef27e2545cb5774f070b9f5eb888c1a72b5304c5deef27d6ccf95f50b7b4bb811590f5491096fffdb0f0c7023c25e51cf02dc16acf4d4d7b4ea6e807bba64dfa9a974306c758137164b0fc6f099616619a6537c61acac2f2292873c860faf4cad013e3a49452a5721a09059b2d9ed4c115ed0752bf5ffb24fe3576a380b2972ebfc9b49f1a983511135318528a43184a71f79e4de8cedc27cd6650e95de72af756496fd9ee3d650f54aa9919faeeee4dbf5d8abbbbbfbb7bf3e8974f98b0099b99b161430af58aa7cf8a73c82f42634296cd70974d4d2e5de2158f1e508ae73c4273c82f028729956063236569494969fa4c9f69632365ce68c5ca1362524c3232a22e3db3dd8a4d9f3e78a4a5a42d9b9092d275912932511c387cc997542a29cee44cb4622d26b377f088639d8cce69c37e4eeca7fa00f27524cc2594f1f8899fc0c56e79771fb14709012ee296ee2f41893d1dfff6e8ad499cf638c28ef5c89cd5c644f7ee692d0d6cb65cd81c99b4b0d2c120963444141f40aa30c59290ac6dc2ca2849b158e3835d62e71216b1c635959c26ba8a9c48768c2822f130994c40898860db32616d6cb04dd462dad430fac15deee334b38acd6148632a31f110439ce0fe206a17532516b94b70872a6c8e4943dcfd4a5f220379b4cfdea63ece22e27be05d61dbd09f018b026b23e4b1f1e5476f87888f4cecf3a314a650c1939ed7ebf5e38a36b051dbee06d2a482602710f3958364c386164b703f8e9fa9c1c5e08836529fff675431b3b521d8845760c2fd346c6aa6869c5625c59e3a60a59440f369daceee8e1fd2881e861a5c2186447b865c8168071ee2948c0ed1e8a73566a2943446dabfd44c51d85c6d6033eda98d946d23f9cdc4820b24a4c79c260b9b63d112eecfd1810e6951903f3e34748526d28914fe4dd42da46ee10e924141fda45bf1bbe8473ae9b087da867e073b888a953f3d248764d85268a8873a0cbb83e493a01eea16076cf6a1b641b89b38913d16d64f9ab0affeda7981e311a2ef2ea58c4e93e3cf77f0884d11acbcd51d87aac38ed9bcb02fdf3fb471059e90068ee984b5b14318d2e8a2140d2f9c4c6c56a9626c2a0686576cc2c012ee4fc2533fce64d9edd25d4a97ee59a6655aa66559a7b2db3506e48b0334b0b9f634713c1e78d77cfa6d03ac6de8af32b0b95f320a9be7ab739d3e32fcd5b098e5994c7c1ad661bf624d7f4ef792dfc8fbea57bfdc35efcc5e45aa6c6d1644b83ff533356266f6a774febb2459ff4e55b1f993dcafaa43b02566b7269bdf0692a9a3bb1b49cd18638cf11ee9b05d0a59228e3449251c84fb53441c913c312ea594524a499dbabbbb747ffa392db39be50b37111888578e5061b354924addfa577fed2453958293ae38239fd82a7da44fcded93252c8b1edc2f97d42e4632c14d3a0481edef17ced207afe4c74f425244daa109f7f310672a4699ef1eed90f5dbb1bfa882c976ae7509f777aa181a29faaa6f1bfaa715d1d5354dbfbc40b01faa62bf0bb0b002f77f679511162fbca474d3aec6de04731f8f7cf94341c9e51e3df95274ab093ed2d802136f2c3a8c9c74c8e9301a724e765d548423d6e103a36ec520e8c0098e18a5c368a85b1737a1d9c7ec6a51348f7d576cae494995a629463981a2c2278a0a4ab5b8821b0b4b70df231668cc498935ee4a53a638277b36ca93b8a458e32fab60b3164bc2cef957fa85cd9e84fde7bc5accf164c2660e09c963b1c6639c5266024ebef48fc84a1d6017bd3929cd3eb0111b9fb12ff618bf2568c4064fb093362b78511ae5479b3b1c553106ec1ede84552a8dbee9be53dd4bb85313dc9fc5a6c9ed8486309c6bd85274d83d67acabbdd55f38a7737a2a694d9d70fda07f0463ff0d56fbe6eaf66dc4a67de00e4bdab43e2775f45b4009d63ea7b589e38cd9e9b353e3e8f58d4af00ebf165082a3d723cb4ab2cc45bec3e9f7b7f772f4d7cff1221a9eb2c61afa5f13f6fbdb0e2d519696f7c0acc93c799e159c745d9437248c3ca3f8d3d353fa1a7d4df59d15a060ff4ea5fa18a7aff5e5d2108e48c0d1c80a53302703e8e5e8fe4800ba90a6931107cb205f62989971f9189ef79a12773d1e52d3406f87f7da476fc6d3c0979717199a0c50e2199af65c4d9665327ec60c564ccccb5319d9ff8ba6fda6759aa681fd2aaf077fed1a2171f731bc1cdd7fcfcdd0b58fab54d66659f62a6f0e75987dc6a4549479817e138cd7833f65caac74ab29e2449cfd8bc7c39fbecb8346489c63bccb6755603e2ba2bd52b7bccf9e4b793c2476393d7de9f5383d7d0f8cd8c5dba1c9781558e4377229d76a33af07c6cbd15846875f5e5ec6af3e93311471607cf6930611a7fbecb9aefbd5cbe81e0628318bd783ea3bd577cf75d775aacf691860c4715584c4da1b3171f7457cf8e5e5bb6b84c4da73347448d80f6f1f23099ba7ea0b36cf1facf2227e8c3852fb3ea23c4df532c088dd2b426219af8146482ca3bb39c6779fbd3cf5741491f131aeca8bec5737c770d22dd52d126306754bc6f554df793b62a86c3a19717214e95ee5450ef9458c97cd0d9b43309f15915fff3b8f87b743562ae389a2521dd2af1dbe680fe3c60e514fbf5bf4763160cac2f463cc3030f530cd1da694524a1ff5d1d3416f767aad03236e019f05b460ae4764ce5480b34781b17bba05ebd612b9e4375991cdaaece686e2814df0fcacc86f3215449af93710c2f3ebcdf60578be9615e1f9dc1d8222c51cca6460e5b7cfacf3a516ddaa1d66134706c664d76e3eb0f6d4880dce9ec699a94425412f548983a3a4944ac7f28a222a1ab582d81cf7a19ca09cb8bb12285ae01823288db81857c4b062bb2084a007ccad6acf61ae51fec4f4798476dc0cf4e35d4106f0e36b2e123b809ae711c23777ef42dd4c1fbf27840e9f43901a6a901cb84705d9de0b82f29e4748879b81827c0e42d410e46d84a8c1e67984b89b51afc3cddee7f027207acc5c24b5eea071da7a701b0f1a1789edc1c30eee22d1f0cddc6f3d7e8248340c14c409c8e511ca08c833bc0c1749a521c309664e1a33dc4ce365b8482c9019b69b5f341e0fd363e679b8486a0f9897df7a6cb3c7369f4788c7cd403d5e0620333d1e06880c33cf23f472f3f62ff361fe7491681808081808a81808088d0a6447ea6100e16e86f1a78ba4c337091e21eef43c4208b81908c8ef0082c6cd40b07701f9192e128b93e011a231c3f308a56ee63e05e3e6d3c3f81cdf41470e1d1d7270e11c1c0e70030e30fc1b60001e078ce10d0002e06d80372dd006e952c0d70063f8028000f81a4002d88034b44b013f003086af0101f0344001cc00d2247197022e8f507859431d7a002e4b8a0efd650063b84040fc0c0800202e8bc869fc8980407e08d8e38580407e07ecf141402097f5e334fe3fc01e9715e434fe175c3d08caf80763fc0c50f532e0ea59a08c8f0163fc07aa1e05aede03657c07c6780aaa9e035797d5d3322e8b49c7b82c1fd56535e9d0df053c6118309382c410ace017502302cc0935c030403f0112485be0149831e103262a6097cfe922dc027e871e5ab00809064c27f79b9c5dbd9b96a6b26dc300d67ad08ad0b4f7ff6dbb471a6bdab360dd62f5746b3e11761613ec2c1fecac26d83fb37eb0b39c60cfac20ecac27ac21ec2f236609db2f1c715ec1561f88ab2662e87f1201f6e79cc0fedd09b0bfa702ec8f6a01f6ff562fc0be82c59a8823f6217c31ec31f3aa7a00573ec01fc0a1159844ba7eb0ffe003e82e1f6074f500664dfcb8a2a7e36305b3c2fe155f919680fb19358d7f451dfaf700a3cb8bbe22ec4b88004f27d89f37af7cb0af60b70801ed8304f6ebc2fab70d58b0fe2f455e486a42f4c99ed988aa5a89539464141f483186c3060d1b1b58ce7c873247fc7e29f3cb06b9ce88cae5fbd2529251d3921117a06096a3264d381e998009b6c1f128054add910f0f16008e472590f2750c67cf5201ebe96cdb6641896b8b6a0a5bbfe6a09f5bfe48e37aba398539aee5394fa7e5b996daf25cd737d3c57df574ea472f07065eaf171258c94abc7127b07e87df47232a6c3fa73b4fc77ee7e97c6f41cebbaf3ec78352ccb5802c5f59fef374502c8f6241b1a02c8ae53f0be66a5f7a3a2b7b79505cbffe77ed5730aeea4b5cbfc5e559402097bbaa37d561f6d1e5d92458db7da0c4d67ef47458c022506f9ffb5858c0fa9f8ec6a80936b680c4730a361fc119f53643a52a8bcddd125c51ffa9f087fa6a6f9618f5f5338fc709a3ead388fa0eb544b7a45ba8af3f3d9d6ac1983d0beace0e43f9e40636cb58911c92b19311921c925248a26ed9cf4e9d84f54d746d1fbb25e40d89b72ff23d77921db70473df815909ee58ee6a8788595e47c42c77d5f24558be3e4bfd963fbd12bc81b9c3dba394bcf0d7c202e66a41efa38752823f100318051ae930f71b98e31d183b8cd2dba2c7dd9811d8fada6f9bb6c98e796d9de0bc465f8a3811c7f8a0166b66cf299b684c465b5882fd939c69c2946ae06d21e653b627752b57257f7f9fc202ac459c7e281c28caef785f13887eb9e47dcdbbda91aef9d2356f12a11fa2eb880dc42aaefb8a555c3b3ee4168e4a108463e0785482228c822b5210c3f1c8043c2720c1510aa8c02c14905f847f71051b69bf14f01efa85e5a580df150f89fd25f69b75445cc448ac822f0562152c3f56c171a6998634240d4943d29034a4d7905cc9955cc9955cc9959ca691b42267f2e682b4240d4943527a252fb8cea1634e1d4f67c260b4a848471b1afaec1336fbcf0fb64fc4a6a6a222099330fb84dd2aeae6909ea4d312fbb70ebfad3501652ec591e05520c1f25781db9560a46024e0fc1fc38eef55c456cc22769f2f9b8f35fdae2d51b1b058f36561f3846d4b5a934fd1a4c4b09da66716965342011767327d617f6e09728ab6c27530614085e291a6434e0e136c963d75b381cdb207cfa6d7bc02eb79c1fce64f91be3c1918c1a3145f45a9eae8044b5e86e291cf955a03777e1b3f3e4f605491165880c32e48801bc431adf2414565db81516532e2c2898d1e27cc22232ebe20e5cb59d07538bb91bd70d4426c83e347bcb5b6de9afbadd6caddba6d1fb3125ca9a7b3f520bf629c41ed6787ddea5efb186377719ceee96c13476f47cdde47759a88b3d76ef603db4c3ce02ab0e2115ffbc68e638541bca93fc46f6ab556a5fa0f434d4ac139691afa43c827d556957d55f83129cc3638ab6ca830a53452ea3f56125d39d461f6034ba5d46cf149810a2aa83842cbf4ed24418a37241bda867e229cb520dcdacf9c3f68f2f414cc324da3e006723c2790e36af57480388d93941a993e1ea54027a51c4fd3f812e6b6ad398e4e2aa2d7afe33ced722f1694a7b9742e9e8e3f8b2761c0f074ea73744e23d3e70a29b45c91d5ec8a8813351fcdc7699a1ea196b4264df351b1997bc518359f54b7657882a797ee93829d722e25b992f60e026dff793ada12a660c46e05eef529d9ecb1c8bd62cd77052ac6bd5e1167c6e76034a72a2d8646352da3599daa6f427f341f1d8f693e1ea3284a3d6a3b0de54d16169b4ab9c0e8703c9ad6c4c1b85787da6a89cda825eeb5a4058a0965a55b3e1127a5dab816a58732a38dcba0fe33ccee331db68753104114b0807dbafaa3b52955cc66533077f798ac199d465696640c381a5901023ee168b4c594a2ae8a27a67423e08ededa942a860a474e14e1c8891d1c391174e444088e9c5022d54515aa9002eb49e1c060c511984cd191e088c9133afd88490bb2232628c08ee3111313e06c318cb3f286c4387800a6e4c2e1d554e452e2e262774b29dde386a2a1093f78b936d072025ff020290966e90b1e2425252525c914e1ecbd263b9f8b19b83df574b070a621019f9ecbb2fbfdc49ad3293b7d9fae96d4adede60a489cbf1f2dc6c294de17a658335f98f09429f20e70dc47450a2902b60e55faf21b8aed9f3e606da27d965f7d24285f1d36fd744bfed42a41ad0bb1e6664a6a50179e742b6b4d75a85bb9f2f8c81b59e27e4983fcbe99a4a1bfc276f4cbaf3db7f6e45a7b2a4cc866fedaeb98df1dc1fdd21be43210a8be067e5dd2b549d3380527aeb0da436ff5e9d06b5025aa419f146caeb159ad983556ad88d2d4e195faead02b4fb7fa4ec755ec7c7fad0b11277a52e8d58a0ebd7645aa4835a806d5a06e1b6baa87c4d12c9b71c61833adca8e295ab992f98c82003b7b039362436c1793b10e933a945364940efb7b50945599136b70f0d8f899060e29582b8d4e690fb44816b3d962997da5b16162567e5b252e766b7aa5adc437205b5a21c6186f8e31c61b3bb4b15114ca489d3ead94e2e9d3095a1176d747c54ae9d26972a60e97965c7aae043141c6cb6589f58f381a7d6109532e7f2f4447f01728dc136d68d3c2e697a0d74b90df44977f2f2b2d495b7041e92a69dad0cbd086386d481b7a097a8122de6cefff121471e4ecedbe401169fcc5074d9146defc3205f6bff985062f434a60f7a0581385cd2d492f414320f7136bfce94b10f697a097272f492f555ea4f85e2f462f432f482fb197292f44d89f4ef91a82752b733f1fcfb784fb8938fd325e9b265f7a3e4897f69c46a4116953c418315858368d6836e9d0ef64929d0948bbbe945d4929e27c4a4a557a9af44d8c97165e68447e65e9056332656b44ddca9f064533d294b2e0e24cbe45d8817c8f8fef46a69114e6de480a28014f6345b8d73e8b7dcaf674b3112398fbe8cd22dbc7ede736bd39c19c2aa2bdc4415b18b4c0da6bb48bde8eb0c320e0ce0f01853c37c1f01f0c67604fa7db2fe4a5f783fc9d9741fe07cbbeacc427d473d2e351bf7b20601220ffe37b80497a7c90e7220e1b8dbe80822366791d3804777fe2a2d75dae4ae783edbeeb5e7a2f230d3309ee7638feeebb0232bd01dcfdf3e8ae8ca1f7b4fb77af8789658c682cf35cf48e8e9a31e316e158e6c658e3bdd25f6ef6d1fdd373fe32465f5881bb97a9d22d4ea9c3ee72555660f30a96e18893e1d3f51b213e88f7e85af574e82b261d8c13d4161626e8c26443b0427c86f939fd7dff958ccc3bcc8fdf24912e21eecafbe812e23d21401b04ab019e9179ef673c473d9d19d6dba1c77ff7393da37b99bbe2d115f9cb55f9885964564e646456437ec3e33dad6804862bd87f055bf5742b46d08a6805e5262631c5a3d712ecbff2917121ea5686f97181d2ad9e02e6c763607ebc21443e8897dece0f1fc49d414e0383e74f87fe035c01f9f14a5c41c01590201fc4077193cc20afc4e56391b047047920fe881f4fe4f30a76faaf08fc1f44c0d5cecece471710e06a4788908fae4c09db3d37bb1fdd0701a38b931ea5a38af02addea6eb7c0f797590282abee25ee7e08b8eaee57e4fa8c9060573277d53bb0f7f479059bb1a69b18f59cec8280d1f5038c2ed6cd1d461561518445117e82b5ffbe68824fefde4e7f121f2fe42619f23fdebd1df9497af89d9b24c8bf7cf82382bcfc1fe0cb873f62c8f7fbf05cd6edf0a17fc8ef80f285801fa4eb582cd6b33ccff3be76e87df458dfb1bcf7ae4b50872e0352ac29f21be94a792f3d1f36ff220f4c6d582c49ecd2715fd1571471a490677d8c373bef7d8c373fbefb186f883c0c2237461a182f8475b34ab57363a4f16eb618c6ffb831d2c0f85cf147c5761f3de6a78fdf4817e70592cb7c79f18498175f50c5bc20fa86ba9557b08fa85bb986e093e283327da68f15981f989f2d5c885c88b8a064e3116905731a2e6c6fa987f98a628dff8cc266989f0cf30dc51aff15cbfb6f4ab7f2f4e9c054872bd6cdd198d5fd57f4197d48dd7a51fa96fc3fa6cf8aff77a56fe8cf6745b7a2d19529d8ff8bb1bc6efa742bbb10617fcfdf50936ec523b84b51c421723182797d43350411a78da4f0d783f6df7778ba21101fbfdae91ed403d2c3af76e4fff81ff708202f3fba727c82110701a36b08185d30609e2cc09ee44938af6055860fac80dc56309b0125e039ad030246570f30bada0be7bb802c58873e89d07e7ecb91c639b4677916cce5fda7cbafa4186265478a1f569e74e84f88acb410f2a45b598b6ecdcb7242643564b5d4ad0c2464b513d4ad0c1464a85b19e8c7cf2520bf5dd64f0c53b732508f9f971504bb61c9017a706092e3739b803fef64c6fbaf88ba95c3c7f1fe2b28ddca01f81b45ddca38cf2232ea5636c0b3a0ac907678ff95153ade7f15cbf1feab283aefbf4a9279ffd514d6fbaf9462de7f5565d5d4ad7cf336de7f75a55bd9866fbd6af01400a6c3921c7a5c4cb00faa89f7d339a144ddca04f81aa0742bd3f036ef1f533480f78f31aa79ff18a46ee5d4fbc758d1ad0ce3fd6362ddca2fef1f13a55b19e6fd6392ba955731534eef1fa3d4ad1c23a64ab7b22aa6a95b59004fe3fd63ae742bd3fc0cefcf7a752bc7f032bc3f8ba75b19003ff3feac21bf49325d0a787f16ac5b2ef7c1eb808f016586f80e442de03790039168413cd88021e01b6088cce318f2370c39c0101478f30dff43700c31404c0386fc0c07804464fe06111c1c1c6efe077366e0102182f33c427ff30ded86c7b9482a8e9b71ea101c37fe87fcdf7c7fc6909ff13c4237dc0c34e47110c119f20620826380e711ba71f33f0ef7e6199ff36003643e860891984b042472c1e71192b91988c8c73480480370dcb87f03f807781603760a90596fe322a93b3c423bece8d841c9ecb06edee163760aa003c5809dff866009b93c42d9c6b72e929a515fa346ccb374bed6d7b848ac15f23c423137dbf8ef22d162be1c5fe322a93bdc5ca3eee8d8f8989d98989b65fedb89f99e4728c7cd403baf23a4c6ce17e022b1350a10f339646efe5ee7590c68dd6ce37508417d77915421ad4e46084b880ceb79846cdc0c24e45b0c4009f98e01365a32bf03eb75bc076e3f2e8f50de916bbe868ba4fea801c5e570f3e67535fca8b919018fba48ec8f9a1c3c21ba1f4f17e005b93c4259876c536b705d241da635dc5cc30fc0e67984ba9bb1b6e30770915404dc3c80fac385bffbd1dd8c7afaa30b13d3d8b56511fa52d2a7ef58ca2d7cfe71865b32e79cb3e7ec25dd9a50b0a68aa981cd36b169e22f216fc8065536163dd14c64959884c91b59151ca77f944b689fc92564956682b3efba3923850d1b8653ce25f1c6364dfce96037c5683e47df8609f68f55ab1a0eaca570df7c8462ffed66bf35481ae2534f477d4dc61ae40d269af56b6d87c30636c758ad397e339b267e8d296bfc94787e7b3ad341db212dfaa4f081e1a3f229d9262c0c6c13f6051606f6052e5b4ae904927fc7297d9a073b2c5ec12e9bb4606aaaa2142549c90a242845eefdf18372bcb2a753653373f7c13eaf947ebb7bb22876064b383255c17909b6130821064f60558794a5eb30c3510831a8018c8b31c61cf72bdb6b175d74c1c273da68a54bb418b34e4527a594524ab318638c714e4ae79cf3e39cd3a547ae6abd553a299da739e7e6e9c4a794d249e93ccdcf69b75f343971b426416b123589ce4bc2a35c12944b824b02f56919931c3972749102a58fb315a912551dc89b19ab44734aced9a507d19deb9cc3f3562214b8f712b86e1231379e8dc743f1a0a60f3088219d37c46729dd5131ddeef6d9169749fd8b25509f12e06161716f99d497407d4a80a745cb34971a860c84b9b8a452297718933a0478a84f09f0c0f074a8bbbbbf4cea10e0a13e25c0c3b578818b33b19de3baedc471d2939528e6b712d913d02344c4269ed78b33128125203e62410c497ac0104a5c253a6d2809e33e8e856b21a2934a18512c168bc9198bd26127c57888ed602dcbac44a793ac154ad354a297b5e1346dd3d2e2d233ff34c2d0c5252553312ad57c87d1ea2a5125d2b9809db142e9b0898c5422dccf9db88d4371dd4f4b1439dc6a078e37aa563525aa0e989060c2833d1c8f48d0052218c1e34312335ea7b2457071a66b6cc40738eb1e9f8296be5f8bfdc345fcde9f113b0c462001152e8e465d10054d5411541d7bbd5e4e2c49c2fe4c68220aecdfd994aa8929b07fcc2fc1fe33ddba013b08aac0fe346c9a60ff1a36b4f8b01f85e00bd89f876e3181fd81740b00d87f4810434481fd1f10811e20607f23fe4428810980fd314084fd93746b4a9e6e89000af6283d3d720456f0231250811d853d08c78843e70d4cd072012ef874000b28184ac213fe01104c9b830f9cf8e087075030a1410b58ac682207d3e51ea357c14261a1f8a8582775b332b031b03965a1b0411f151b64836c133516c5b7b181d215fd460848ffceb7ea63561f09d7c77505f355d64d4e535f89aba69e38e18a2e2179fad069ea0b01d9be81f49f6e1295d3d4ef1b9d6653357d8df180ed2bb4f5b6f56fdfabecdae8b0e6384ded9a2dde408755b1b99bc0e8a23fb2e90d6c1376729f7d92d36fafc4a5d18fcf813e3a4bb2650f64fbecbb2f90ec4f3749e6eece126bbc5eedf667b1c66fe20ff366e9ed46e054b36a4ea3cd2cfbaabdd3c838fdd62c0327a599539fd35f94529a6d5258f953935946650e6d34e12f2b7fe62ca359466558b719705f3157a5964d4ae7742dc63863f4ee6eeb3475566db3c257046edb90d4ba21a9da86a466344eef28a9a4799b48366f47dda2f744b2f99f09694cc18403db12058f0bfb1da10a96a50757d8ed069d147bc2f1880919e0fc53b013c7232680b01702267e7498f0395a22c83e13a212663dc5604dc0fe9ba7e3425d0337ac063109571acc58ab138e603850620af68c8a0772e083230f3419e1488920bce0feac29092d1ce17e9a6531844e421229d802891ee0fe7e0e3861398005ee4f1d75800a26e0fe7702e378c42305f7d3e8ef8e35e10e0217b66f6c54c216044dd31a06f6c3f1e8c5a4bbe2e5020f0b36c3f1e8750328eca02b81ed703c7a0961899fa30f0015415b62411c8db658eab860637034cac2075cf0821658181c8db200658a2c28a1038255e16894852525985e545818381a3131f172c00485ce929836713c5ac20111a8a2e020f86831836587415f828b33b97b4d2dc8d624ea70fb3cb980b39f49903711f09ebe7006c359cfcc820ace3ecae9049cfdcc7e22c14646c06f265296dd5c330eecee293a0d6a5e1b4e93bd771c285dfee29a48d944b2e930fbf979122145d724f21b1fd90487709aecabac55b3c20a8c980dd25c9a57aa265b392ad5e8563c02ce6260138d764c2224ce725cfaec7df8cd679f6121e3b689b46df5275213e5e99b6884a1ec67946e45a32f98e06c56c1d9c72c8b91c9ec6396fd56b5ec331bc98433cf5ed6bf7bcd3e3521b39156955282cd1f56a9a415b21efdc8115caaed36b175d5db7cdb7c11477ecc9f3818bbb0d33b7d069eb22c8738cbb2ce7eb4f6bb138d9dde5a9507a63c6055331cb0a7cf3ecb2598c6a507c31d58eebb0818e996f7d407677f3ad98f1da69eb3d97f50acfd94cd3ea753609ef87473cbdb1ef6b3abeaa17ef69c7dd9883b6c638dcbb7b7437391e2e9784f9960f3e3b8c9e8a82cbbab2ccb69540dea737c3b9dde469c98c2a7b71daaa2b0271a67c4f93eab3cb222d99f9ecb40fba954cb3592c2f6e6ec8d90d83ecbe7b4fd0c8c9805b41d525587149498dbbaf6bce74edfe956b7abece9531fef348d635ca2d98d11bf99ae087448735cc2d406d3c73d272450c0040300471f9cc00966f99cd66a15b6887cdf216f91ed6f916d72371b3982b76c6eb8887cfa526e3ba2a4211f81e5474943d6009659099679c3da732fc1683f6bbd9c1898070953b282fbc31afdd6fba6bc215fde88d8519ee779de47efb381f5bc1b7978ff7d4ea340a0969fe00af5f35137078e9deff8660fdf9da8467d7b3a311dfe557518733a3382dd3eaba6a703d482fa0e5c7d2ff1f731abcf9160bfa14cafc7175d87d1a5a36a874d05bbdd58b799491afc6bacc938507bb095b0f56ae06afebc32cbb2150f09047b17cb5dcd899d0a15f6b6f0297d4a1f183ea517a64990375a2c5bca824acc09d893c0b2bbc33005d780a35118823027bbd983fb8f54f0f381c1e6eab45bd2e1d32abaa7c3251dfacb2749029beca804cc368641ce3285660680000000c314002028140e8a44029138209267aaaafc14000e878c4a7c549848b324865110c52083882104000000008400200a4951551000c3866261ebc9c5af229b17fb43f8e5b8277279203f152179ae4d74792e6d9ef682c14ba6fb6142b5425bd33ec5b2ad17804e27068b431026a39633a417aa8e1d026555b3b699d387ed11152134658ac7eceb37b045ad9679550f9dbe76bb146e5ee99fabce944c75cbedd2b4544848d13faa440dcdf98c7309e1b38fc24d6679cb78e2e14c38bc6f5a32e971d8b3946d4e94ce0c0ae66d15e303f1f672861f5406fb5a7a048f7f687ac993929ce04eb2a9dbf4952e097208dadfbc72c266d1d0f7bde90d6a00a8cef7118a8a6b09850bba7ce3d4342f768b5123eb271dfc0b9325056d06d9746bd9657d955eccede159883705b2ba01eef8174cd657986980992ee5b9997b5e941356bc5ec8ab73674a5b91f0b0f9766a98198d55ee64d4fe01a069fa670c6c28915d16ae7d9df931c4d90bd88afa1037c191fff3e10a92a91e60465336bdb822df3ef28837935cc05aa995c6de072eb799ed31751f06c6f2565a73b2b77548a206521681f98aca20ef768e4906fe76d10269ae10276e527b7ba275514b4f0cb1f733eba3d22dc940a2d9eb49938ae2f3f97d950dda2c29c0a31472d63e617219683a55729ed08b8455a20646f54fa121abea1a139a3ab158c589a60bf850ebec905fd515c96baa7f0876cd672d8e42a659f3595391a5357f7646d0ffe0d8ade8c27ab21c2e73486cd3c9d12e3db61115d7d1b90449130553023b1b6fe6b492665161e93fd36701683f21e84a31bab91843da7eb41c84bf3c27685f7b23b9df447518a99b32b1db39566d48031c518e41ea96803d5085f600097f19971e4bf4ee554669a6750a3dcbbf4ecb14f5c7057cfe479198129ac29f978be2d2a2294e67701d3df41dd5c2b6945dda5828705c1b9555181b06da5345989b823506ccde18d4fdc7e0ec5e6612c4105bb387f15e6415fbe5d4c3873d6e84843d8d1457a368762bc1d8ff18be017b1686b6b4411a2ddef94a50e6ac1d8a283b2393c21d662f404d73eacbf899b635d86f81d22d67ff58c01fb36a38f5f394881ba24c4d5b674566fd5e82c6d54fea6e006013e8f1be84cb1f54a497c8883b479006956638f03da7788835f41b512c9835f9f1d4ea3fc730bbce13656b0d87534f84ef3fdf61df52cbf8a0faab906b9bd2c5543bc7a6778a2b0a977238828ddb0c77af5a5fa4d115c324ca4151c9766c9e3e285e1755d44915e7eea8e8328457d334fedce8b533b844a306ddb6324986d78c6648aa3c6811f9f6003b16e65c4c4ca05f2ab7a15fe5a96eecac2021fb65c741b16343f7a6169867f871fdc867ea64aef2665c0d48e8b9577c35eb490fc24a603b3a7a610ee6a746e88a7134a9df0d52b2e23cc4d841178b15021e01ca81243613980e98d1161c9bf3a3c4b6e6194a4a8aaa1242af2d76075d6fa22e727a354d5e19a0c4de392211af52ac677d5cd8ede0d01019976313c21327897db658591cbb0c8458db1921a56777cc01437a3202c571dbe449678998e48748c16448fc9016603e226396095ac68a8fc9abf194225278dff880500a81bf533cfcc7b82f5989d51f4d766b611bc91ed9c1cf392f61ac1909ee7d8bf73ee7acc887fc8214ec8343536c46888861320ef5de840bfdbe77371fcfe83152dd0af7042bc208091251814b259276ab463ef30a9bccd277a46723eae6a60bcf98282bee6214b65ce7bc9c275744e353d7333721b2f566e6b669be8409f09789319ff138291a92f136c3ae92a1721b7e6d8b7cfcdffbe8af03a737197c9433c2ab4fdaaa02c85771cbd7a2eb0a7fa2a8fe1fc0db02a23f4ff3a7c0c77083e669eddc54c88404a61061aa7214de1422a0eac34cc26557e425d5121aa60eacf0b684de3a707f6cd2ccb2ac42634c6d8d9ccd02aadefed0e0b6d5881bc26a767ecacb7bbaae33f4c2865ebf745c7810bada3af36ce96e8f17036fc564ddd8d8fbe85ed186b33b92510463d54d06a2ea23b1cf2ae0473e14507c5364b6f27887caecf0c7c61753b718ce32eb21cffb62f9056059e86e7a7fb97d81f3a0d2824b2c0dce8121d9ab120d69cba927460435235c26ef753dcb432ae30e6f344d30832181dd4a5cd48ce41d9090f3a05c6239a2a884beba07847cba4bba66a5c41cf0678e021978499c9a4179c3abdfb31266f59fc7689f1802918c54543b0897b70899e64eca591774e8a1c893c987078430109c8b825659a9584ad2b9093b04f1769478dc7798cb26ce9b95b3adc2025054325b48f528ccf564f2d06dbf062704f9966a27f69efdb000748440955dcdc8f9a62f9f73918511a2ff8d2b987523e3bb7c28066621bbb5314eee08fa894cbe66ce6540a48015503c6a93045dbaafd8e3a0d69044859348d78c77420cc3c968a45dbfdd4c8608658c61e8481f226164cf92407656c03790b542e2006955c560787062b3a537e9e3b16ae44d4258eedaf5ceb91dfef159a71f95b0c54a853054fc0c42218bf7f1ce24e95b26943edd145a1df0609a344654f9f79da4a759c877d432598fa6beda0a696a21f7793261aa26b0460b81ff7f8cd464359ec4a155805ea493adb14eb136b184201149890541047aa4fa82b843bd2953f5f21ae2a8a57822c2638f9e473a7998e2a09029e708437477dcefeeebaa99932b303437d5f558a2e489a5403019ca29e7334fffe4785f4777e818d4dbaec9911010ef9d9e780b3dd30bc9b890f5995d8aa40605c5e3b00fe501175ca2a431765e3ee81c3979824fbee7cd12d31c2dd936544dac8d899804ea03fd3cef03cc05623dba237bb987db9affbc8763d21b73a01822e79adfd1d36ae5e2657c57ee22abe0e9922f827ff0330f838b94878b8f62113c62a865982f821e30267e5edcc84518a256185de0f0778dc1220903b984699e99583c5430e11a10f2e2d6c138e42f7bc48847456f71b788500a6a6f1a052f5b2a3893f1402a146913b1efdfa041163a5cc091502a84b1b3879b88a713254f26ab4ddf6e670a10f9c3d5db16d6282da0671506bd2a10607f9a0fb81a87624c9843d268a3c08e23e042accd3db244cc7f03149b8f03dfd8a62a379209009fe055ccd2abff248d7789acb14b4a7101bb1327272c40a733e1639402e849c13c47e79abc2eae812135e23a9b00e39cbc62a971a9dcdc8eb3811671142c92a20aff4c6e9cad98b348d2fd7c9ee9d13a9852dbef5953a37fe907efff803361925e55d7b4d0086e36c025b2e490021c7f38919e690551948f68807012f68429c7328d4e33bf7aaf45fcf6abe1b40f7ef8187e4aad5ed045615f118b9d046a76a32d982799ef12d7e8bb5bacfae8950d494740c84e83deba1d5c07a4994ecd264a3015484151eee54994b356abe52f459271c886260a6bb28e90fd41f0daf8a8c90c8cdd371daf0266ce247f62bd49c07300a28f8de509042591881a04f511c4441fecb3dd83659a1a9a09a341a5df64f717e929b31278444ec06648b74423c9511a27fb3ecbe40c3d36e5aa073311eb9e90cf6688c21fbc7a4dcb9570a8b099ce598a8a7301c513a3286c3e583ed1d42f3e1b6e8087281312212c09203af878da03926877b7039e502400040dadca80002f9f1c4ed51c0a93a1504eccac92773ec2d61a43b9f2a305bbbc10c6dd7dc206cc017353030d768481148f3eef31bd05dfa2c709372cc7591f070bffeaf23f39a4c89d146d3e3336ee24acabbcc09e3bd9801e986deb4341ba433cd8b10f94b107986d7fe1216eb1c9b4ef8ecaa72296707c351c94046e693701f7793a711b4a410c68ee48b76b2b1ce2948d5a039a51f03f1ed0ecf905c2cb04f420cdb3157d1f1cd2d7136a61bd816640f3d0858f5449b321387903e206c5e4eb49c9d6c9c6ba3f5249ab7ca92e3c05884d4480d8b74b9fcd28324b6d67bbb59b2261a2f850099e171ead9e9760a0cdd42ec2cdeaa4bbc83b9fd55c937ae4fcc3e12baf019d8dd7ef907a4d756a9384210bbc0acd62dfb2ece006b135dd7d1e7ac93460bd59bdca4fc2a54be189027cf8278bc3c60e6fe604ca862189b70f2205139b4592b45235d0b36898bb0ed5a28b9ee42daa83606998e25e61afcc55d1e80415f6c874d137349188d1cb52a2e5c2f9a4e77a6f55c4bf82c0195f42a35bfd13ee36b94bccc5a96c5026f33a0e45f6930d364d3daa14605016b0351a3bc3a1222c205a99a355e930eff9d6ce40aa6408cc4e2cea31a28d00b8c16ca010d405e23ee187f7284d790fe0442930efb09c540593b35f25394f7122bb21c5cfd1fa4ac43b23f0063ba203c2c9111d9175ec494c1bad466b85881c7e0e398ead1f53d67edaf5e74a406e74138e61e31cb4638a10d3b8aee4934333bbd57ee9161aefa8e92fecc0584cf8a6da81e73cc3551d7152dc60c42d6257091d56eeadb45a47831204672e966cc0637b535e2800574182382ba7de55620838831920f488e0d651985954304d810f08a0058d003d6a4402c518022bacb6c0e8d0afc8e0a97b55ff810173dfe929cd4f81e480233dbda05a9fb231032d19b49aae133f047d1379d104a1b4942e357a62e673d4f53aed22d73e61aa09e001781370c19f9b1a26de722eab7dad540908f0b98b416956a3636b2ab5fe3e81efc11a129b4d4d8db3ec16066be10731658881d8ee10245723b68d7e5f723d8e4fcc98308c79a13114216b58f68e0b4fcd056d18e915f90533fdb8924fbe3c016c90ca33e1fd0457ce4e97d47f419b1e3564ef111fe9789afcffa07bb30f4e28807004818b8fd9a5eca11a8e595245b4035a7662d52fa57b4de50669784c0208a6822ab638d5a800501b987f93820402a2d16172bbeeceea5a8a29fbb54a8e536231de11b06190e5b09beb9f6da074ee092b0aa6d8ca51ce5536ba8e550f347a8cff8e8f2984267bd3b071b7b8916cd694a882b44d9580e545de298b8e6f825eb1695b444bf39158544e633488967bc92cc73688f9f26c469144b61dbca962509b35f8d923a99595f936886e81eb002de52ca67f7f1c1a5d24d49ade5285e9a79b26575c8c32604999b62d58b1e88f19d7502b510addfd1666cb5dd3504c1387027b7d74224f8020fb08e0b9000f80924188a28af536de10674ba0f498c786fa2d7a2cb287468c08d04d2c658bb3e6422331a31871bce69c2e01ee1344909ce871f49f144194584440c048bb3f4a6d41f02f6aeea923eddb299239d36eb60c779f49b251dbe0d38b29e19be7f157e0eca69a770a504b86f9b5ba621d304b283bde239bcd3fc743414280267cbc7380ce9b3b3a722a38cbf1080781365b1cad144d920236abf3ea473c40386f17d9b1535dd63a6b6e5d8066067e1f6c72c2bababc986c7dceca3998c0e7d90ddfb47711a7df1fdac9abf7dddb2559ae9e06aacf6883e57149d8b93863323305eda527f022dd5ac695d2525266508b370d63612d07c4f2c6290be74cfc32ee2473d969f53f5bdf31fd8022cb03aff3b616c268f840a187a9f03b376d285598fb3461cb4451cc36f2c162cfcc374d4c5f2cf6b01b83de7ad3517bfbe62a06fe8fbc1229e70224a4608494ae2d06a7cd1589e996ba05d14ffe682def2e0f6784b5c38c2abcb95280bfc635d17667e573fa7805ead93aac1c550bd2bf825c15f6c308c48a18f471e8f7f8e74e075ff0c8a669b453e62fa0e6bf35ac9f4901bd27500377648185400df8122c5bbe4200107d267c63b5c1b6af588bf49ceebfca79342403db54b6f23729478662218d13e7a25b086138ee007475b325f9c24a6295070e661dfa88b02bdcebc59a902b385e336fa025b39eeeef60df7e07f082af90021e38eb4c19c974f22fe01ae34e48248b843c68c051461d988e445b95d7ac9c8a012fbe56194c3e27aa63ba323c50d0c68ee16d31218b2acbc86bfddc09e8be439463232331a15defa96bf0be9491ddc5a8039e3b1d16dd34b5481a895c4a2521fa32b22416d285f263e7f59b985187f322f0a52ea8640e625d998dd6d508d7555bb4f3cafa290b13e2ce4e08d5562cb989e7b1a97861112b5b50a682c9452119568990a64c3a486ed91c8e1cdc1cd86b248fafe4554a8d64fcceb9708c5c70013a165025cec7c89f3bc3166aa666592a5a369942825ad80566ecea32e0a7b9e9e1022e3112e8a79dd77f7f098e8e2d89dff0e2dce3514ad724d9564b450af260aa9e01454d7f1f61a6c3e14027b3e7092db51ca6292df176125a3a46972aea435d08c25d164c701cd14198a0535682a094c7c25211bbd5a25b65b049f4289560e717eb73c0177755ff7e56faac5edbfacfc6444326acbd41aa08b45e619e123810bee6e344e07724c39efe511f996ced833d9952008a967d64d0e92130cb63bcbfb421e692e7a6e70000e0e481fed0327a393565570ea120d315e1e28af8499224687b76063d874aac2885754dcc8605d0e1984ef2aa13a0c673a3d2adc0bf141fee344c9a84258e70d7518255e1415d68267b09a479970e0b7688910a9563e4555582e43a20c1bd1a66580bdc7f1f1fe12cfc54654484090df28ace5ad8744af279531c688052d1ad9635ff14452253ded2b98150c9066be06c3f9d4ad42c86c77b686920158d582599f7c9c5662665d93d41a8b221abd9f18feba07f6c48e7bf66fc505ef3a633876491925c34d7d7a88744c884722af38639fa98e882bb2d2a703ec3344e30540774b8329a1815b6dce63f4090669262c1357d925edf4e615583dbb9413e85157abb6f60f9f3929b69532a7bea11a6faf420b333c20488feee3a335fa693498fcac4e6a135ec4120ec7680b03fb8954502a9dd1382ac8403678f746a35be4e12d31ba22d0ecda05ac35b1a93d8ed216f6950b701090d1672385d06724544834466e7e333f96fc3415fd70bf17dca6b6f91da8c2fc3dc0e499825be654c2325781a29f279bdac851b78d815dc471d4747140132f7c766cdf8e72a9031e5f0b9d02073ad3a32d4c3c0b3c61d5e9faa0750e75a084ad18d8788c0b1ac2f553bf0cc3e59bf8b385a7df6aab6d26ad8c8d18656a502f5788cee27c74f8fd0475986578ab547a43daa863d89270a8968271015ef84795b87c94c32f39b24720826a3760c692a8c67e13dcf2e73d4c0940f5f3b199754fec2b684f683704824c193770469c1df09488a083ce8accd6d23917935cb939ae590d048bb93e4a3b5190b351dbc254f6b2d5ad0d46e21a70e2269e8018b96b42a339892ee3fa2b76e31657e4e4a5916383f3cba56880302ef82a37577d09848fe1667826938f8123810488be6184b677edc09c780c078d09d977021675cef068d2d9d131a2bee80654d2ff2b7517659dc5e32548fea3d3785b834ec9219283961a13f128a48c0735b83c073ba2d15a98b39a73c12fb124967fbcb77a14b114ade6148d33cb0a72ed8667509e12af65663a010b8d6f47f5d41c606afac4251bf97eba6143e633dff4564c2bf1a4589b6f70fa7e7fe16844c1157e54a988f4e575ca48880c1a8f10414194dcb88c0fafee18f5a701bc08413770e3bf16c737e43fbf2d626e5418c0a79e368eaa42a4914e21b924ac70bd2bcbda501d920a4b677b109084f9cfbffaa92cd22f03819c5b6f48083bd8cd8538b19b4aad0bd8cf0870a7acb8eb26f2a7a9249df81a94b16a44a70c432b6ad3637244d1ac687feefc1b9f3803348e9ab72c29f9f2ff07e63a662ac14a498a2628f7d48f99513bc18a0ab5d548b5b1613b73e2fef86a01f7072dc601d5e6ccfbea0091a7cf0f747996eb4bf7a184b178c6923e0bef91894fbdf98c6da77c7084d0a1750618c0a126292d300ad136ebe06c396c97cf9c5d6fcc9020bf8293c24b19478f2a91b552fde3b9c8673986ef75111cfda7fde880a989111f56b6081dd21513033831d066ed328df5529424e1b698a24f58e51726cd71e5821c0131ea9494a06b1fdcb4c8c9f92211e2929aa73e4f1879a57a53105320dd770cb0c46ae7f69060cc4cb7fd841f758c7bf184a2fea51c38780fd331992fef2f79e1d61ef0a03726faee91d91ecb01fc605721ef2305a31d079900d418e9ad00f6a2a763e3aa1f39a4c7cf42ec0dcd25f56aad5a063a60fef01215fc142fb312fce2825ccca8a78d28ec7bf006bd6c7af80bb1b680c4b2ef358770377a60dbed16f384f422df86ddc72775b12ffcdbb8b3f3deef85f6bda0b6cae5506b96a20e3066419c133fbaf18f940a0e3fee9f6479152345b7c229619c0e25cdff749a757eb42cd52be3d900d3861a770c58a31ab0f753a675a0675adb96e9344e63608959b96bc6a5b0bde8c9a8f3d374ca025a1fbc2f1b7b4a7b3aba0caeb1d3a6870d69b173c5b03b4a59f9ec51b9017409438fe3d9c00e7dc59a50eedd8d190634723fe1073f48a7b4803dafc8246c304dfa72f9beeeaabb0cd5d571d9ab580b81bbcdf306509eb4a877ded81f5c0bae68d3f54f1c89163f3b47834741510083521e1c7e6465ecd2c45606b17622230e84f38e14828ff08c24d4cc3cff674761b5912764b0817bbc8e5ea6b51f8fc866f478823124b507b4ca5f4dbf8bdb7f84948fa6aef3dfcc020c8e7588224be884f6a6755d45bc5b0924a54a9806ee9bb6c12986630cc2ac0d78b9c34d32c31f8bcb223847299c1bd74bbf426c4338afa97a735d1b90130f372ae34b8f42cd13104e4b653d835a26ff070b6832f26ec9ac83788f2a5c7b32358a96b6c1dfd7fbf73091ea30f75808cdf372911f49411f1862a96292e9d4d31257d5ed6df34f525f3b8841d919441a5447327c80109ab077ac2f5436de99ee06a28af4c363f67d5e66fd6a27daed9d92d01dc562ff5aab5e1582ab3c896308112aa1639c00612913a5812c56fa62816fdb6191a884868831e287cd8405c3cac6e5bdbb9872f40ec42dacc46a227ddc5242bc6c7b286011bd1d3c42af0ffb564aa779bafe6e120a4b18e455bab7f2ba13e563020a80ba03229566905e99d669ad9d2b89a9f673643ff4f5ae52d0d233eaad69328db1b04bcfa3536d3bf6964ad1029c64eb89eaa8eb05b1571ed10c4cd6f33a1f1e2877f5d5761af80ccd8df8f900991ac3f419cb6390929dc8a7caec39d5f456ee1fba9de03fe90b15e87f908ee4e26ef9c578fc398526fce2b98daf7bb775b956409d983d07d5339274b0ee05a229a59d1254a4b94f8967918a6f1ce9f30f6b90c3d393848baf0d9800c1d4c9298f2757307df1f11ffaaf64e090862c569d7d72a0df360228ffc1690a349b500dc5348ade3b88bf119de9b77b5fa1ef8917e033971aaaa98dc0d11efb57119c85bba2fcc710a9845786ee22ef0cb061218982add4de1a5c98508eb89b68414ab5f464b6f5405ec34292242f356aa0ec4447aca8c7e6663bcf44fa531b6d639ec48c2708fbeb6815b39b4e05d96eb6845a138f7c8f6ed2c180e4c75f7220396f4c4bd54ab2a57985dada29f5d707624dac9945744fb3b5db0640db5c16be6283c57f14e6392acf3a3ca2f67b27fe0f5adf0400ef2d3362a12483ddd437a98e43bc044dd89acb7bc9a15822789af08505bdf185f7e935b55ad1698301b78771d816fe7605b7eeb6d99cdff58d58dd56d48b98f4baa01f4ef35008f236c39c12bc37c01b6657704ff4c17cd693a865d3b373ea8e79cb2cd0c28907ab5234e891c3a5480f77ceca88ce917ee50e2d034fe3b57c7a4e81e9e6713c53e03ee9498c4ca84d6645f8b1d95d028d7b4078759568e8dfd17dd2183ae7cb97217caa5a5bcc6bde6a310414d4b1afd4851165cc8536990a7de33f65c2ad8e351234cd18590b6066cf25782d0996fd743c28830920bf55414ffe3883120fcefcfe11bd298a32e4d77f59a2d8f34994c998df0e74164b87f794e5001f70f1bd78030814b1c321904524ca09abb4e6a30698a7b7d98c82dfc4173ed2e81cc611e8c4b6af9d1edf2e22efef1f9e403453495e3af4f0641742bbbb8443f5c6d8c3d11063a1f8bbea21f0fab1ed2204a53d42d523a34541a79726847e9b7ee1532f9372c48c77ecc3c17f94bcd9d06bd82fef8c350758c20a830c5ec95f19ce2d5d35c26ef654ec289693b0a520b26acae54e3021c178db1821e8ce03eae33edafc40caea38c9a3d2e0431b3f9292098ea8a53658ab3fe59814cb6298c01e8af0d47762172954001d6d7f93df6dffedd9c195d4f9494e5a77a88c74e89a7f9b844b5ace5433ed227046777eeea56378e0fa28f7b0bae1f5a81e4ce77f084a51a14e163b3fd5f30095338802c648bb00f134ea922722be8a49afcd313be3e31c950b44e86f6be4ebddf8facebcb3159f0a782a20018a302ed14135490fd236c3691b8f1f497dbc962722037a182e4849abf4dac57c5fbebed731271c90e6e467f16dea1f1edb3ee6fe32699cfadfb6d273993bab29109610af4ef05d59056ee772edd25937d663f62ee4987d78007130ee0cb172849187c2ddc7ee384f2db80dad4fb196b988e0e64047f17eb31895c3ad8e118a9df0bc9dca699ed534fc96993cd0894acef4e4816de19da25e14c03af3a03b8a23bbe43b9b21bb740baff1cc0fa3be334160bc8d7a913671c9a98e9fc400e918c33ae49d53fef534723a91618dc70a22ceb24f3fda6b707ade37c548e4d236fd6b86759c9403a903b7bce95a0f59db647f82a3c9ae5b7fe8da3694010077359bc72208c6813cebb3288eed3ce2b4d1a9def39a691cbb93ad2802a57df8b2a60ecfca3140218f31b2115bfce2c6e3aec489903ab5e41d07fa00c71ec88f2a24cb532444b05fbf2fb2d66383167d5c9e951b4edf91ac2205d71ba16cc0b5231dfb8cb0c4f256b87a8ebae4f62805d02680cc14f925327522d9f17ab52754945aa8614b895b8454afd60fe730361d6ad166c578a09aef3fd6d90ccb21f42192aaed80fa3496da898ec06967620446803ae57bc53014484dcf42caf0cd3f58fe410a6e8bc5319066df505653772051e5327d6c7558dff1cc5869b637fed71d461b089423a83926528a57ddea51c4fae51e05c7b1a19cefb41a473d9516ae862e1646143ce919d40b635ca2c7836df325e14698099e4b24883364483c9282b5a6439a21ec4681f9ad7e20c4e63adbc11513385a8ca6e563893b0c21313b0db3551b058ee5a7e800b5de917a48fc2100af50c2bbd7f414f6b30bbe77a2b603ad41394980436906a561044f3bbfdff31b0008ce2ebd1afb7d4308658836780305f272a69012111fc4beab95356c4fe34b0b919c24648280c0a3f1e933165ea40806678fa690f3d46d73953eeed9682e47f1853795c5b820952f395f2624948e63cc6a0c5347f2f3661507253510f5e8e798fba0fe29d447d10b2d250a20e7c05ef33f9e11a7d01c45484a93578738113e33fef608f248f6e40522f5da07123a77aa1dcb137524a453b78cd0f5dd21de5970481d063476a4ab4afa6883cab238a24be3b57511c1c72dba283583d105564e909c58f30d5d5fbcb3b4db2317b3e5e36df5574bf4d2b3cfed806cdc61fede507491937fc717ad4a5df3193fb9a5ba0379d1085bb8d8fd34c1ce511ee5396144f89950689f8f456d4a4c8d522c811a0c7e0abe7143f73968df539875843eca3c2cf729a75d5231f3f27529354f5b542bc7622f27e1a3d6919a165a0d50ae8fdb2c99e5fc07bd423f41bc94c5a5e92112a532c6777cdabd2b25d96760e5635c64d032ff7a547eaa22352b714485d742deab5468224017d41395230a3f7eb41632d70e6ca83c1e451656cbb0fd2e920fc26c67640812e683bd8194acfb3a17cae16f48b7762bccd68be6e19817e366e302830acab2533dab61c111a742605ddc624d017d27cf24233aad3e24ba561ef6b336e1b311b7254b81aa91cd61bda166f3b18e665433388b851ec81a538a1bab1b72944feda7665040b78282d0fc4bd6a48abe9b1a15bbf8d70d8ec71ac6263f525471e8598b18a3fd130617f4dbb8dadb5898a151fad008c879da63de19766c1d529d330be061ad255efb4916512ce2b9db046352b0e91b6a2428a35556c683786fb7ac430175c44d5601cf76d569e7fc8db9462307c0b92132c1c1a66c1b6b664a295b204c339db526692efdc4a306bc05dc19d9fc5fbadcdfe9b3a10454667f3ea96498be10520ec222d177cd9976da720dbacda36504b34c8e1c9ef436705f84f9448938c68849e0d36ede2f81a2ad04cdba13fc339aecd03816cd1523eae14911565fb150699d7cec60b5f2dd16552318c0c716c4d43886e95e3d68be66f85432b41313d98e0913c1c0eade7b04206e945fad886f5cb5099dcfa54a9ef901ed49172570af07ea5a0f923e876eae882dd501c0d32e84a4d3acb0c9eb5a970c6f88d46f8dfe085e7d1afb4974228022b6fa6395641032e34d2559dd2ec6c842146450b29fa9444af572b2624e191a1b0f0b2b26794615d6aa99d8171cba590c28fc8be8176b39f2a25f951230637d69aba4eb2b0291398f54b2615d274e30ee86d588ce9ec7c6aeda8b4059d592a8b416799c1a3aea3cfd115345d405dcff8c7965ef01fb99f6803a742efe0c3e9d4b17d252fb092e14044b43224bf3deeb9c790ce6c2ca22903a3e10954c8784c938b214796a9b9528f5625548ca5206b800266692e47af88db147a88983edde6bb13a47c56bde515bcebf68cfdbc693814f027f428ae2c1368cbf6f21867fc9e33faeba1183681474a2230519242e6fde654ed3c67eb09959a4d930849a79046a015de72efdf298c530e2013c1628c5a4f3804f836272fae25df8cb11a632c25f58eca3b73d8a9d3c7bd03ecb0de53c43be7bf66f3357a910fc8fc8f6c5bbac44e5a81a05e81bc24ef56c42079731357db0fc56bff14c379d56d3448f85230fff9ddc9ffcab4f59819e52366671b1bee5b838d6f5a88585a0e538c4897aee51a80d5bfe4067a364d9c7140b206a20f6f8ed720e6e3c26f5f22089863d83407ae2b1944a2f7e98a5e79659f63f42ecae57fbe94c9b2f283d55cf0d4ea2bff6ada4d8f9121738cda48cb4806e254d31bdbde9898d30c3fc166ec9310a0124e70f3f6ee791425d27128a6d563894ea020394524c795c0ab963b2537a525e315454812025c5a8158557ac5d27f5751c05a8f5d2c69b829d0273d5798f5101cd21acbf2da190f5d8026fa2fa641be6ea528c4ce41e9f84b9bd2dede3c91abdd2f238457fb69ea302842acd0754da16e4d9b9441547a1708e2351d1db952f93d8c1ee6d52fbab9e2b14d7c8d11402c608778f5127db5e82a7960723915201cfab9d0263e9ee2f8bd3703034ad3d029beb8863776104c321e0003137f6290124a6d9907a7e732ec73486997ad80b2a023e83bb6e2acb3fee4b129901d91f6b84616440213d4816a53967edc77a21650a14a302cd24505f5ea743164d648766a7a12d679079ab507c6e598d5bad5b064a8cbff5e00222c7a27bd434d3f8c622e5241592b0171bc9f11c39718fcd1bd463102c6ca15fffcda5202145d11a28dcbe8b217b0a1bf683eb3439c8742007cb0993b3260f1753de6a50036fe08c869e271070165a071179ccec381978f5a5247fbee5f04340fdf4d89b61e14900ecea1c2df11aee4b01821dccd280055ee25efcba0e970376f723426128f50f5306d4a08fd502e93546e56a325eee301285e4e633ca436e5b097210af4185e7b46352e64d4bebe24b9a9dc23989f4790342652deec209cb890c8dac72c72cbbc55c5e4febda551441800f520645b5636bbf46bbede274ebaaf48c87967441dafda251d6f2dedd004a7b383ffccf34b804c42c07e4a54eb7e0b93a264495c5e3451cf6b8b98e7c0e558220a84cfea13b77794476235cf62e2e3f57e9b15409d5d0a749bcad0919fc038ad08387d04bf6a818d5425eed6fa72c4fba3572d06917dc2ae496720648ded9577a96aefd72521860a56cbe8fa01100c030ac2a23a9e0cf67898cc12bef261264c02925143c02f590e42d5f4fb6f3bb0f0b0ce049803a74b2b106a8b46204c8c7dd7e56d404cd9b4455fe6dc0a6dc3698ac45fdd3d46781ad1e6c3dc04855742f5f9538c62e400098cadd64a97738316510a460b01179af7c616aa39060a47a8b16e794c4728c819841196dfa199afc999c859c4b25dbbf0601f3cc597c39dfacc94d271758a1fb4a9485a2ae6c16b0b8c254eab29b6a1d9f60af238daa8daaefb8696c961d0cd00cd457d66dc4e2d1a1d7914c8728a83291fa770041d10802ca79e0d3a038ac34feeed9812852c277aa6adebdf660fea53bb0c9bfc0ef5e0aabad2ace34fd528bc7607a5b64e92671d235ae905f1fb91d0904c6febaefebecc9ed74d3df4ef7aeba375d2449a725c4d20f309efe0b42ca788bddc6d12112ae76d983b8dd8149ac6bc75847e43b0d05b4715674a80bd03c12f6ef53ccb0b2e0b03d11eb86e27a0b042d118c5ff3c242277e9db085c5740c9e09d2dbecc20ca21411372f67e925a95309eaf2cb609c30da4f3dcc9c5475f545dbe9f16be1f0bf77e07d9fb97d7fb28c683e781332134574847558960ef24aea19cefe44025ae5556ffbb1a6287c79112b9c493c891902bb2ee7d91d547fcddff104a02f351722062de727b64378b3654043c9459c0a05fe799dca993bc8bf633d5f0b5f322180b2e073e85a24beaab124556f4d37334a3467fc3b2ba71cdafc5a86e397421b889e5fcfc03a74c2909ae48c7d5925d0036da0d3e190dc4da2c5393dacd950442437825bf8e2ddf72d392ec5944a467afb61d8c59b0ea937161d91efaf5187f6349c0353dae5cab376574558fde73e1d4cabb3a67cf61adb548c8f1971f312c5f558e4c9668409141c92ab5c52f5daf8802faf08668c1cbacbeef7048052a2e61f9029858b15556fc148114da0112b1fdc65f899852d48468e39d4d4fd1f85acb8ba8e3a70384b860c09707e7151c63d357bb5d058b4a6e9984c045b67ef12e65b88ab4b4247d644e69ad515ca8c95e59a254ae2da89c44c1f31403cd0813e3bb1fc5e02d5e488378d114a39fdc118f66f603dd52abb4661147fceb8166d5dfe508725d2c80aaf037ad7601b261f7a8059e2acffcc415b773013ca2e76861b6bb1f166ae101205bbaff63e6fa8d991286d7e82b9384cdbe80390824ddb260e06d8c5975caf6e0b46765b7197e3f248ef87bb926b4c8d0bff9dc3c715677aa5d6051ffac7ebf76510df845600f232c7a6eed5975d030adcfb2d1ea07221f3d3d176e92dcc0991f4d4cf64ba224ec935b928ddb2321af0c0b6636f8a731a138f3261b50c479915a138e94aa22f517224740d0799d4a40f14f2408aa438e48b3552b567ca9e1d656001ae93788f437a9c5f6d45cac5084517c91b38469e9998ff5cbef164feedbaf1ad40db3993981a9f760f22c87bedf5bbd7b3eb3839a53901610b76ce8b8dbaa2bedce2d3a72e8c78de217f66732058617d3b943e0dd7bf38d0e090f4863917a12cd96d4a7cb723c994619f55627789d420ab6ec3f3f0f978ca4d1c03d46ea6b53084678d073d7d52f0f662394f8fe3e69375d5983a8f683888f7aea003c468e047eed8caaa1c183a60d1e805ac1bf2cc607de6ac380f96a67b4450a83163fd14d1f4870e37fe08455084604b9e272f520d29ca6a6443cb8a8fc7d508b4fa3bbc3bf26022899f09edf4ed99a0495654eabda48a9901f3ee9d1723cb3decc34310278fbb6591c26f8b58659b9e6c8f0ede55ebb142ccdc60d311423e006211f87adf1dbf4779e6dc18fb5fdce447454df293c84a2942c745c274bc067052447c5db9213395af231aa110d250e1882058b2c74c94b7929321f98e4280ee970b72ca50480b645a88acd0279a72f329bad3be77653162644ebe45182966fe16c9905f7e126672784010132fd93649d41a6d98211d01575b172085d45a31ea0f98c23a7272001c052c2011a37878d91aed108a6934a06bcdc5f35acfc3cada5a2942f5b28a5a01d33ce0d1b2bc7d6d3514724fee004b53ee288f6dacd49a68fd9b280cb194254e5f61203115a9ca8b4f182d7dd9b94c10281ea426d5b2846bfe9303653e99cb5a50aba8ecf1184632c2fcd0e977a20ed052cb64e383986a5538e2458f55e75c5dbd0bab49c718a8fccdc2b3a150b8946412d68fb0c9ad7561fd3dd529cb5b12c563ba868ad0f4a33abed9d390342e234f8da124d8bcb7de419da47f5b9803902e2463d48013d55ba5449fd5dd0755b2a2c294de6414f3fd205d6e745e86090f250f0faf1e06129474c00f3c65ebeebb5845e94b8570fd8d9ec75c5a9f0784153199e7c5c5e9ff3ba1db82cdc6ce903c8f593f7b4203162ae848041471a278292b878315e06d29729fe5e94231cd64951541ae211425042a1c8d2aad13a9c3e0ae93b44e05d140cc01f9d1f0c1e40fa4b2ca7eb634ccf422b88df5d96029f89405555355950ccf7495476ab461039f20a05806f9de95bb67db6fe12bf5a8d98b36a05370e9c71e404f0334c549fda7163b0b41b3fb145025b208890ce15a276067191fa0ecbf244e332434109210c611b4efe345bf373f868fa315fd51a176b9b795d4b1043893a0fad45f23d6949c582640dd66dc85725045f64705d4eb568de0f6efca633b71a00d894e35a7656ac49ea607294ad92979eafa8b2dad67f422c9c8ee1f12b0d49f1c92ca0876567170a817a8ec644d955cac1fc8753b5317b7990a2127ae3052b6567eff4e88c39931e06676477c66092d9a69e754cdceab85055ea864ef04e312751a6d54a7781f032ea655f43995874b259c0945467226107e6251088c7e901e3f841a12622e63881f67af725f89805ea8ae0dd9e03d498c07a359c246f3da8c6518e69e6097ce36ca803cf2d43dfc95851cb9f892af322785d4b51412f46b1579cd9cda88eb1af5914a060c2797c4e57521532dbc74ac9921ef0bca3a727d0ddd0790e7d002e4878999768328ebd6cd95f0a931778910b9a8ba742dc77f08cc407ddb227851bf47e7ada4758277202ff921762f46fde711df1e12570ef32c1694258722d8110e5051db0ba1c3912cb410be90b54985aa492ec644aca380018171851cebab6a0c17ece389fe000134c7bcb53d12a83ab2fe1190c7351e2882a0c2a3c019173a5b08bf0eaee086d6f47fcc18dc6a06cf48f89e421c0314ab9651e305575348f5a0e2dd7ce7c9feaae193ecd251727b5c273755cd3d4ade4f69f652ab4cb54d295ce922803ea261e13a6061364eff6e09812d8054881b182e3f292cc50357494b1719859302b1c0ff962b346ab17827625107e186260a68a4182d76b2dc3fc14d8e962b2e446193736a760ebcc6f92b3ddd9ae972a65dcd46b64ee4972f8165601c3656bf7f3b92710e1c9c157c136032b4c748a0cb817de8b8fd4a277e6c7caae09c9e9deab80ea917abe0dd8910ac6146ba50b4bdff4901aa9bf4786f5ca0430298a9f433a18e96e181b69c485c74318a9792974d0cf1c109c750186505f41ac648f244070829631675215b91f995745b6b15d579fb2308df96904017a61dee72f02073e6e9c0934cc8200d630b64bcc35307d1fae5e465c333f99956380400e9ac43363d081fa44079cc6499da6b7ceec41da6a0e152cd35668b5edb02870d9eda78f17bdc48e3c362639498bb07651f64f8b38c075164164165051337a005888788a6c6f6029fa1aec05cdf38f8ad00953ac6b6b5bbf13b8142fd48ba988eff5d575c5962e217784acaf1a291389f53c783108371876fe3e94a505c02dc4ca482c8046d74bc9bea25aa139157b0c8baa9f2daba69df937ea2ab6032aaa56279a9ba31ded4cd7cf9d5df2ad985ae70d334b540a11b616d11542e83db803f33d3133bdd12ea5b8d1b8287746fe1bbea3a8369fd40e6d491e01c97206d5d94defaa13a5deddd165bb5abe90951b1fa9600f2d26b7c508e92b70c227c27404a60abaaaa067f39d47050bbc1a1d44dfb7e9b5da94a7529fa83acd8282fdab4583971408c2ef699bfaddb4d78f651881857e64ed8d2d67365db6af9f363213c23a4b705936950890b65e3a35a41df396687dd02fbdf8d17b40e924519ea71f35d1636ad92f9bd27cc6107e4ee0bd77e7ff0cb62e5df5e2a82b4b2839f9a0349d864cc34e4a8cf738778f73a3277044ae1c4f4ed31a3cf6853ae73da936df48a1efca02fbae65daf25f7c4158a8a9eca3f3b18bc22dd2608bb6aa7687a2e7ea3710a19ad3362a99a8569440f48ab6af5dc51bc7526b0873d228b18553cd08204a3f8f074e34dca4c45416ddd499a7ab39021e4c473f3a4a32ec4992e5d9d88426dd6b68ca259f74bf62da8e08405353844bccd0ca0e11ba111f6902bb90737c1680b311473629f7057a34819c73a81e9f9e31d62df572f768376c38f77c99a807c2b98127f56b1462261073fe0a0a92b7da9d596d09b3dad05c44a5977b82e46cd4a9b645b9c1796ac7cb283b50002ce3106d8913320abaf759ea4b22d22aea9e16d089d1b12e42fa6e363a3ebca3d3185c354f8debd44eca9ecbf761fd29add2be8ddd57dba158c747d6d842c26edf4dfd7100312dba212f30adc2f2a709dfbcf1bf545972302b51007c26f42d15419e1c6a14386f26f7a3d707f3c2bfa612f9e4d90bab8940ed31d4b35934c3698d7caa290fac3b9de81b5fd5c7969af2836c9f4814a44a40e6be852092802ae9a3dcce47f32d7543be20df6ab5bdee394ef780c01d55bac903531490257873a98e17ad3ec90e3356bd329dcf678a4870f26806775e4b054ea2851bf27b2af5f04b8c7856fcbf4dec96c627a4a195cf55b94f5e27fafba075f94cab9cc5ce2491202e2f092d1dd31a75efab65967969c5c69a5deab47ce094c9a815f4057e6d6e72bc6203816b2c45160312777e276dd5162ef2ec0d9bb8cd4b01078b520d2cdb39ca2b11893634272f22017e6c560644e2be5289cdfa731197d32e24e7ef292d31551270861ea25fe1c24a401da01d47256232e0de0191c9a4174a70852b8b819f6535464abe6c723557abbfb89f52fbc704e2555b2004ddfbdcfae82df72d8dc0ab7dd888f77fe7e2c72b310c4eeebe8821d88721e775bc07c54347ebcbf20ec3b0ef9bbd4bfb2ac57527d607c9d529988c16066bc74df7a989f53e12fb504bee3b6d70551548bb435b44478b338489c49a89e0184d402d42bbe03ef92058e1dfc600f93f8e020adcb7e1966b7aa077712197502246db435ed771ee49ae7775016cbfb893f0aae95ba5dba4603cd11fdeee6e8af64759a50f0fd72d21c72309abe541b35323060b3626593aa086f03ab4b381b5ce4746993dfbe276a6f981a513d0cd3c899a59c9327d5af7e8ea003feb8099166ddadbd34c4a1da5c8f8093749032fef149d64a3ca8fb8979735ed15ab61ed5ea9487ebae90ec1de20931cfd5152db77db84871650512d9f4aa50adea8216daa4760fb989be13280d7f6a284e8cd3baa181d6dba974e6931d7d05bf31ae88636b6bf3c05b196611dca3a4a36ddd2ef74c04aaf55ff9054950912875ef25014b676e0039557fd3126df994a54df42a6e73f544d830656e1b809a9c9a4aee84f2a86fbd1b3deadb9bd11caca7fd53ef4228a2a9504dec238c12275db68d3ee2019817796422c38b6035b74d563cfbcb80af34de553f610046cc0fad2c1fbe46e4117b907664b7edba055c368a2c2768a10f7b81e4b40cc7824cc5df0a7dfb3fcecc4cfeaf50ed81dc2a4ae0a44c3e4fedfe96df8e1502892a0e78c9430ee06470673da4cfac0161a53e8431626b9ecd03ec6835d3674cb54cd0efbee60da71c90bb0a334250722d691b50e67b9ed935ddb8a4dcdd7aaa7fe11788af3e9abee0dddb6667e84818cb05ab2ecb2a109943a1cb5b941ffb3e1f8ad6c52a9a442ce48b6dc58bdf8560c506887f1e0c2f8b03ca43f86c487b91f6953640a8f37892d0511e3a61a47dfa46febc302d6b80b52b30e44044ed7c307fcdf9979042bc4d9f0e199f69c21f714882c57c6dcbda101910df076b86983903c521d2cfb978b195e7f0f59d4ec01163cb3e65a7345ec3381da12397c079ab7fc6d9884f651a0effb1d960b2fa0f5da56b12e40703550a942147d6e098a1077c6f7dbfb03237e6a7f529764dc682926ea2459b3c722775c30322aa5085f36595e8addf09322312e0c923a010527cc8ead2fad15ac47fa23a992479edd2d263f94de66b6fcd02f2a43f9eed8cca0b4397161f8be3fffc092188b834a2fc5cfc0a6c8e6e267ef2011d339bf5357821477791e73583c146361fe96ea0cad979f164c96dc3d2bd2c65e10b78fd04f652cbe416c7568c236720022a2ffeb369ec944414b0f83d42fe643e861f33309d70409232d1a04da24ca8320d6b28bb16258ff474df19af48ea39e6b41a9089ae014f2a7ab4eeb2dc29e51f65edc49c82d94a5cd2266e665263af9ed9230cf1807b050e2b32f8fe9968c5e22c094f1f2c8e86e17fd3f7b16d733ffa69863abb287f662c54348c9c61db5b89c2fc54ba05db5e5e77df3337e76f2e39d183572d3634522131d34efc7157c81934a6006e9b229f1ea29c43220a6412d73ed33d48ed9306c832ecdc4cc311ed645ea969046064345aae8c4383b51f9a17a0f4df11fafc9e33b69fa95516e1e846a85e9a9dc3192aeb09cc715e97d81247f67c999ca62d8cb8efa9e6828ba9ed64b40e459fa4fea8d15ab4d44fd65b00c413f93fd1dd34a51216d218ee5f4ae7c0d2d18f9fc9d1336afbdd9672cac22c799aa97b6544a227fde723eb0a83f71b3446e8b2903f67d79845bcd9cd23ae6403a4cbf1dc269d53381fe1cd32fe80988c6d04f451f364251eabef0637ea14d83b605f7740474c96666fb53f450bccbbd5b2c722cdf7242f88650a5d994b21789ed87d40dfa6b95c76983984c86468424e7c876a3b3ba48175056e5cecaa3728fbff6384f42243abb2b8ee098507233b2d09aa36d3e23bd128a19997898603522a7eebbf853f4f41837fc39a1fcb4c68fa8d086e26c8b5d910cad7d5bcb48cc375c57c025486a801409487fbc0c2edc57f610f828cd8620878ffd73568170e5ba84edb7498753081827db9a9dc494485bedd250ce9695a6c2368a2baf4040a7f9bcec8ec499c0d1e78dd002159ad90bb83712370f4ad13f7dad0a3f3e0b4ebfedb6b39b7644fdfde4a930c686511195104b2d2404ec169d600952717061e74db0ca848b9c723e05de9020e37c9691ac77f7c5de1d1ecc2d75e04ee9cc42f2debe11a861a2b193d22884b6ed809b55bc98e69e81ad75b5b8e594a08a5642945e19965d4384ea2fdcca762e6ebf12425c80edba9ee2badb67fb11da1e90ebde242fe58c3dce66303cbb153c9031cbb1c0a98752242980ec85f11576c02b708fce03212f2f7394a95c2ae4e76d149ab21bed295c0a1deb589eab004e026254587104ba4bbc059628c1f3d12ccb85542de6e94e09169ddc9ee5b5a0c2f19cbb64fc8f1b65004cc83811009c0b5a9bbaec1fb9bcf7e99d756ab0a4c38284cf2d9970526042fdaa6a295b13566711da3c32793dec747da5e276148958a948b87ceb211b7b630c0ae751da83fa54a05666b44c6ce95ae00fc74913ff6ac97eb8d45a3e88f41740971235cc3af17a432815d2d3d72f058442f34287f4eca20c165f0ed3596983d8e269e5f4b96765bb287f093e01f789cee84917b9d43dfe3571f9d2fccf439057c6d9e1ce2b2727721ab4ad56d8dfe6628cee664aa69b50316fabb316d7ed33708ad90b8a308cdb9c3dc689b32f55d11de29e5729395696b092441969c3b8b5129cb1e55374e006001e84ec1e3cd10c3ce53c92e1353b02132b8de514470f6d959e2627392c913c5dee6b0bef1a4312f245f2a728057546be528cbe0989044ed5696a9f9d117b7374e862b8dd0d13a857c64c8874cff213d832cb396909975180ea1324b43a54e79109860b49ec1339b6f38e5354631aa3bbc056cfa8e851b566c871d6fbb1dc09e41e7a0d1433be262140e279ca83c8953ac2d42b4265b4906292ccee6754b91d275ce5347639f2dc0ca2a7a41b603640121de79a9881ac8e89b3a01857ed5c27ad9e8bb1989031ee55a2f0b8620f3b8f07cb7515bac2fdb180670d0b78839cb14c14afee8224051a75428d9db9f3fed74c6754c87473996978c0064df8c5038edb93b3de54942f63da218c98f01094bb1a0a51cbb6ef4c65f1e0c65a044c6ae33edea1294b662a59ca77e191976714a3c26633ac6705aaec4f77ed4d2a924c6b4beb6e1c152ebc1514564f277eec838d26619c6b3ad96b1450cfb7595011a8f08981862272cfe5d055636483ae504be4943ba57887d6c9535c8fed7cb29b9875f28a1a0cd851f5944f7b7d0c8f500e1531864d34300323c85dfe090eb5e34938096204ca3820012d5702b2367788bd90b81133870c9d512a2c8ad35bf9bb1155103f84c10e4e6d74374fa3464be2f5ecd4a103d8ca50705cfbd735a7a5981b8e6f1eababec9d141f156f905fe10d323842d6837aef9cd26af98952ab0787d758558c77389906c4f7295ee79c90ac35d37b787fa45ac12546eb492d6e8d4109ee6646bd7d74133506622a654ae0254b7b0b6ca7650d621eb7b6c93c65dc1bfe6ad565cb0ace154f90942b9b0769e023914ac4f435fb53a7feecb7a1856d257a0ee134988e00023c3f51e53634fcde9186ecaf717c324c63f51fd0537bd1cdeb1efea453ad21a6d694607ce57e07183c166a2100c56eb471a92896531bd15515ac1ca8d3f8c0b71a40445c58561bcf1786f5990672ca5e6523944d9b479db7d3929ebcb50f37c8d07cab3cbdbbeebe38090011c162b0cd8b8572e2d320e1292e70c6f69259843f12c5b39a9d7f9e00fe18f72933ebedc6bde8075ecd89cbf94c6959617d13ab850526dc30cc5055a20d3b3406722bc8a5720388f684974eca5b49b02451c433b70331d74dcbd0780cbb94abf595b6c49b636dedea9abad87d9ef62cfcf66be7a4d2e0289800346ea6728af21b38540bfd0dd541cde232b0c8551552c79b55a624da6447fcd4cffd98cc58afc0b5883882b5bae2fa0147c98f93b5b49c864cb1554c646e35f51918a5c1f52159d5eeced29808bc639b6bb872d5c5e0f08cd39a28a51ec813cb1c88f133696e1f94e5fdc07ef25df9b0eed31c6a2b95c314481e3c9dac9d98bc5b29267eeecbbb2607488bb8f540858b3a5860d506b1924ae6f6432b4fb24619199043a00c1dbd547560bedef6cc4023833057897a2fab7d128f549450205885565132916a15981f5116e8ee7e3a0581b78e3b55d526ee1506cfab43a434628bc14e9579ee599ec20dd84bac09c296a6234ad8760d0412a0e09627c1e18631cda185ac4c1f84d960451c9b576c45bac26b180f3ed9d19cb6ca53d580b185e99c21b6612312a32bc6f0904b176368b7cf0764e778c313baf12b7a1850e21c90d8ea7c889d06b8b885b88b4c437e562c3e0faa45c1ca7fa2b3b9c18aa4461e5c0e5628c8088c5edaf0e4f4fb7b298ca2e76549a122101a7eb19f01db8a5418426627f15eb20a7620e8231bce7e99aaaf4245e31b11703bd901c357a1c16057bbb508e94e0d9e5014bb836392f9b3fe521436865f88384f676956e6dc2c7e4003dca5dad2152b4531b1adb5ede0ac25aa9bd73377bf65af7e95926e68d7afd5147eb1ef1ab63d22dc70e12811d872557269c63c509048c22e56a71a6e5e1c925bd200becac887bcf452134e620e1d24c925057291f1bca7b613b38bbad02608881d89f66a0c2ae00fa0f5347d4dd37458c086eb598fcd3a4a79dcf6128455d5b324e95c6c6c0f9f495004bc314156c0b3e60da7887e6b02eae310388beba2e3317e2d10672f1cca6a4a53768600b69f40a1bb0597df96cc744ef198a4ad366ea7d43c40aa31bbc78cd269e2badbf8c54eac037355cd6fd275fc93fa31623fb684926c566ad8bbee8eaac60081695a8e911c8a4183c8330310ddb5b0375d1b961b4d11d1564c19618a87287af33843d1a8588ea263e7bdb302ea7369a0b60a4086b525d9e594d1d120210117f358390187b2ec0a05447f7b924fc21dd2119ead42c7554879d842bc4af491b6d4cd75750b4d3fd5a3ac2afa19a82a0dbcaa9c437ccd9fcc1389a8f26182150ab5fcc40b729b85427d2d77dc321ec835c6c16143a230c67940f9d25dc57c000c77b9ff06b8ab28d2cd8cb74192eb87ad9df4e51b469f5506b162a598fc39fa72aa4cb1fefe14c481377c5012e99de5478d1094711b67a8590f386335b7aba78c26a7c0a57a243e93a89e774ba8eb5e5da442430b933c177419b34068198be786d478d9cebdfe5bb0a2f65b27b79730f780c4f9ded4fb2a4a298a4c4c67323c0df30f4eee65aad57598ef739296037d278828dacd0a5792e028baf8fdcee8d2dc2bb88dce7758c012e768825dff1a303312ecd3520710a8f613851981d66b1c23a6649d13247726c259c2da6979721584a56650034e02ed44c66b3ecb057d32278eb9054a7a8d83eae12402856d9e01b67b3e3b7ad1ce7a5b5320c69d7e26b8ad026a1cb77f62dbd88571a1c1f9178dc29cb0c6158fe24c0ec5d20a551595709025f891139799f086c81ab3e547fbdc4c5c499986538b9b17803dd5a0d0e78a52c87c532bbc4c5e9c57dbe0484eed01a02b08be6eab0b28dcd04507e8ae7280b71053d57b1bd1789015465cf1098abee12fa38515c2a532c3aac709ffba1f91ac84a69a3a5229c8f0d78231773fee2854f02018a232da2e7d4762682587ef80a2f33f296416b2e04ee0ea8da02a5da76e7f3b7e4cd8036ad223563c2627d23bd0665fddee12aa8f8622e6938112d02d27379fc30849e726500a9efc48e96ac0f83096ae7c66ed49bc3b218a54a3ecb32d8656a4f768c8a698d97e57357d6496ef0831d624f20832e6f2de2f459dfc775cec33d9237164f2aeb30a533540440df79694888ff1e690a466a1884fdb12257458bf84af4814e506706e3892514e6cfb252ab3e1f474b0a7b31238fbe567189b6cb8c0504b81bdd47edea56b1fa998516123ba3ba89e276e7d90419afe8e3f52df0a4d4b5fd1e70ded3ef0dcc746680d1078f8c43066676e93dc014c3586357cfc58ab3920ac258223f84ee3aca08b917b09d07d5530916d33b544055450c67b8ad5762df39531c16f4110e01b8c945facfe958062bee7189866aaa8a4cc1a5e50edc01a6ed2f07a6a71066316c883a1f96c6a54ccc2cfc8d21b1e4a5a87cc1c6bdb3adba06fcf2b24c79de87a372f204d270b00b5ab427b5e5d3e76c6f038c395b10d6c334995b95f37d4f9dbde51bf75cb8b4c2458c67fc5b454d97de14d51246410ae66d4af9ed30cbe986d176104bd09c8ae2d27b51b7a129800ff53022e07d63e8c378e830322582eef5b1aa79bd791cb1bb5c4e78225bf9a7eaf34777f6d571b52e9d54cd42ad6dec1b1da03614409082f0146357a3f4ea180a71bf50edf86ad5ce4c36c92692aa50b6233ef74399e6ddc1cae3c3ae48a73da8f74f9189af760364945714248717bcfdf95144f012dbfff9ce3514399eab7e2ec60503769b56ace45a5de5642f41ed1232684ea9090d9473b4dcfb823abc9e5b826fdcaa63522161b85fc7a7d760601b44b03aa66727a5a30d03a4a074bb421014a09cb43e3794079fd9ede5c20955a5e46dfbee4f5ed93b1fae472a025ab878f877ba2a546c7882a8412a2129f9d0a10b87acdb00ee90b03a0e186cb4a52f66d5f348d2396506c235b922da594322599028a074707bb078f89b2cdbb63c0fbac9fe8babb5f7fb66658ff769e1bcf955bc4799cd09291d125c09d50d47e6883e28b703bbe4a34c03986c0ee14fe22eee2df3373923b828107483e921ba0f7ac0b5fc87d4afa051fc6059023696f60bba7848b0b9f88dfba4e111093f1a4082845248931320292ff8c2010334479818717001dc1c003f41ec90dd0110c0d341f490280decb0d49028088aea4f09e080813d1951fa22b29c87f1cd173ec3a90715002184ca9411555b48002888160d10d5f5ea0830e5d9c562006102c853732027aafa47b4458c2393a58910dea46c87d80c96c716127e77744eee43e20a4088b991bb90fb013ce754417fef30d3a41c395dc141abf2372bbf71e5f48d1932b3f808023a51bbf835ce7c2f50fb0134b6efc4e0417cac801a1c265843048c01ea8dc9ccbb11e92dc2944fc448a9e00654635b0c062440646f0df14a30f64e88109d290109084f06234b40293b9538c46088384510b08385272c1889d5802c4df89e0c667e658942e77e8dd292f3019a08c39227e221fd061072a8a9c313202a29cd1919111107f477423d771a7223042982e6922a0d2020b1fd018499306884d605d6fe982ea30fe9b34c6f7a79b8d51c2edf50d7187db92118aa9ecde82bdbf5cbe7f269f4af93edfdd6d700e99c36d350e0e84223f4e79619ba9fcec829173bc5b42bf6294135c9877d47e61df7d501fffe53ef5e3e7740f7c1c9ce39987dad6a13ab475e8c78f367818c386f4cbb1284b264b95f6fe97633c88b939fda2f47126cee48438160587cbb12837dc56bf28bc19330ff375222adb261b9f211da1b295e29d9fffd597e221519041f2216ff23dd500f92dfff177a8ba054d1ef3f96703e633bd2e1cbd50c4e80e413d0b4557a80bc10ece48735960262a4c4c70ebb350742bffc8b81ea82ba58c314208ddbdbbdfbb31c5e3f1405dd44471fc31c5037599793ad486f3e3a70b5c107d21a2dbb90fdac97ffd92a34abb1c8ba2e4c28ffdb106f061385e25c46f91f169a0a8e3c6f8ef8b54e6c7fc345059b2fe09fcd9b3e5e3a013878ef941ba87633c28ddf9152802c79dcf29de66d3b3a275c59dfef35993cd785265cb057cb590bc5c7fcd3df0f8cb6d1f956938b14fee5340bfb3751354d59eb135ea777757fdc8819ac522e2f66b0f28d21286062d37b8c10b323100318b0adbbd6c6c872db77fc787b8fcb8d80e56ae92cab60bdb2f80ca160bdbafd55c8e21952006e50c2721850c2e5c9ab2609102c4a9ca9fdaf19e61fb80fda22c55b05ffcadeee99e5967967d3635cbaab35fdabf540fcf72a1f6a89f43defcbcc66ef4957399eba43353962a0853aeff7e093de92e47bdd8c43a592a6c47e318ddb24e2d54b64e7c61c26a14dea86c99da87317c20f3c4142d53a880b1a8980f4b311f9874136058f8efbd4a1292d3adac42e23f7c310148901fb238162c1eab20512d880a4610e86101e2c9bb54e89e16fc13aa8c71e197d03e118805b7e3a615b0172c3bddd3e1f88046467e39e5c31aa57cf092109b3132ba43ab1bdf870c6937ae707b8890026e33cffb21e9ea1e38847f48feb8801008420ab88f0145b739e69d97e2d1f9a778bcf7ce5f8ee0c627220109884c22b4e8c6232ef30ee5bafea0c975feec3e9cc3f9d191e072ff3f9779a7ebe7fe1ffde37d7f0e14a61b37e6d80f31dcb8c56bdf1968d0bc34bcc31f195074c46d23dee1362a725f9644651b03aea995b522bfc131284a31285a623a78b1c1f9f1deff75123ae420e6f20a01f13574aea8dfd3c2df2b7a6f0704dc5d7b5b7c87cf1b1a61a05676ce4688c80de237a0374721a43c381a9453024e88c8ed239be80f46f98ec3a3dfdfb9f841fe505ef9d3af4b65bb84ad364d2714551bcb458808bf0c546e77e8d01dfa6b5b7def5b08b7be7b039ec0f2af5e3e53e4e2c617dabcf6289baf9a66f336a1f95d8a7bdfaa57ed00623923f6ab4cf1107a696ebfd04b73e3737d9baff9fad566abe91aee996e90d003b19cfd234540963b72f32aeee9ff74083f5cb772df2fbf597db675454997724253565c12fbf627f7d7c84b037405beb55b10d7f1c87d01d2c4f5cf9eecfb07711f95b5af3a625b47f88fd8f757c17d546eab514de2ef0f99046f66123afe72df3b973dd9feee1fba3fe4d6797fc4e16bce72add66be7b2e3ca792806e2160997bbedb20796d502726790907f071b6e42fe9de43aeaa91dda6b5f5fe33e4ad4c34d680a8a4b423fa3f4b3fe2394234241d9610827371c110324a03f72c4bacefb23946b118945b1e30edf3773d594c04a8fa73e4fed50a56ad7efeaf7e651cc2ffadec5a9dff747df9baf371ba71e50a482a42262a040892b526401c4ac73f37463719d76e9df6c1dbca8ff71a2bbe2589b10ede2d8bc8ab3d6614bd9d786b335d46c945ff5b9fe7b48ffbdea7bca07acaf5ed47325ba2f0999456f9e6462f74912ff888cf25d87be2c7fcb7d92d03f329f4e2e09053a22d9752217aff447eed97579e3a7d25cf53d96acf458b2d263c94abff8c2a6ca2e1d337667f46d4d297df5eb31c570fd1f5327b90f07dcdbcbf5273e6a71fddba9b8feaf7b32b8fe9064476c7f2744bbb45f6e996212180c53d098e007295a18f962028f4265844d3459bafe3b59cde558132665fa5d5d00f77e47a13fc85fafeee72a62df8fe059da77524a4e8846bf6d18f5e80bf09e79fb611e1d47f6e5a201f0a721d41eb0c492ebba1c5382caad3672c2a0d8452efee35caac2e025ba78b1405421b0ce566eced4a7b22ccbb823daa73a2037725aad5c92ec8fa05059f6a80c95a1b2f8831248b1332a2c2a34aa2455920a8d0a8d0a8b2a29a68492950cd50319acbfeb8aed4a78edb40ef80d889fd2ba1cdbea97bf175e1aa3b729aa4f6dbed51e7f2d6c80e5341abfc6999ce9a98c8f61a4a48994a42d5e9ac47cd13d1d8f54dbd195947be91eface5ded612cc6b118939b7a2df5c397b88ec5b9977ef94c5930b673a5ec616ac7901e3cbfc7bbf46db6be33b5a386631ea1d3fe3d09aef65e3ec5f952f76247b71fe5c3de27f4509b7b49554ee8ddf8a8cdbdf0e317630d25c1a51ce7ded42f8faa26ac52f72c758f97b8846e5165e119bcd139aa7cb0f1fdc23ba5e45ae80bdf8968b57680c1ba7d07a8da41870e2a208c9123a203e80a7401665bffaed70e95f4b97f3d4b69a094d21a9c7129d74d8ebef724e5e27f7bcd8942cd4963a09452fa96e9d26f557129d70981bde45a2cfbaf772181040aaaca49163bc2ca555d8e7151ba9c4ac1fc3739cbead7abd9123b8209c909815d150a544e624854b9a8cb312490926a97a4abb4a47a623986c4925817252431a52fd9738d3e22120a94b96f53b2b83d6486b0077a5f4f93a60fc03132a4f499636448695cc22e26c625a96138c060aa26ad160ca6baa1b94879efbdf7ded3b830e122c3b536b01c2be2728c4b92db51fe8e713172cb70627180bf5b70fb6d6bb99de6a45a271b2fc78ad0c2354c0284f045b85d0c4a51ece0775903788b1b79a31f37b8452c66802867c44e2ce9b22bc2ad8f53146027960089703b0aa79d2af46e03d1a47dfcfe0e7a9ff590c73c429c467b14aa722068dda1966b5bb669d9d71ab58c99a728fb015f7b4ef9c85eab9f6dda7bea07fdf7afb9c73c2f4d0bf40a391aa3a1275f97a9dc3e36df51547dd7eb155dd4967aba15dd5aabb6e1d0cf3ef5d5a6c8edb4e6af81e14855f955d65af4b26c1322ba427e2b100dc2f9313ffeacffd3b366fe9835937ecd501c0ffad9674c177ed0bb71d332140ac505c5efe0b3508442904401fee43af91a97f1cd344e6e369b370ccc243ca0239b87819904f90fe8c7b54d88e8427f9b8d81a0d0f623e382520f3f55834dbdcbd4570ea73efc148753b91ff4e5d347fd0ca274fea093665c27b74e7b9c4c6e3819c7237ea51284fa2a5fdbb4c8a37eadef9f71ef28a05e8bfceebba8d6a85041e25344d1fc6e5f855a6f2c55f045b8bef99d7332734236efe9ceed8895221930b9833bb7a39f1b9f71e77c90e3e4860fd6c8f8effd8fd7b8ddba4375c4f2ff34bfc318a7eac8f247faaae10d7639db2f11ae73a9aa186c0b71391644d36da4cb312b59eeeb720c08323e868c98b95dd1960e04352c71f99f2a06eb445c8eb10087fb942ec7b084b903b81cc362e4a57aa09a10738554b8fc3d506674b842446a6e3734068b1694db0d518152c7dc6e28863104b06288dbb140c510978d8c2e739acb7c8d20b93189eb4534b97f638c8832ee0bbd2d7e7d0fb92ea64509fe38dc707ec4246effdb82de772dd0f04fa1f03f8a5aa0b174fd3b2671fb4707b5bfa778bc8f911baab708a53bd4d7b9aebf85f7d7b7bf43f5f217c5d7613cff6ac3b56ff49b3afdde1eedaf4fff7d8f89faba75a80fcabed66f4dd3fea7bbce9a6f1c1fa84b39219b9a28b37eec31930c9f8435fd3f2e9f3e3ce33ecdb691156cde880d5111900ddd86c0aed0bb2d0c75ed1dbc6b7463322e0c6a4654a0214d9a3469806cbe522a6b845e1a9be707bd26b5f153aa474dfc8e3e3faccfa91eef2b7db466abd9188c5b5babd9f806b7ba56b3f118b746ad66d3be37bf36db1133b1306f0b7d373064a65447acf69c521d598d9faef695a3bf07fbbd19801aed37d8ada8adb5d4bb5fd46ba97747fd90ecfaa25edb86f80fc91f17b82d04028a5327a0fea7df734b8ebb906b1179455aa3a8a452a9544afbfaa9542a957a76a5ced45a6bfd1bd64cadb5d667572523cbb22cfb1bd64c966559f6eccac09873ce293ffe9c737ac1dddddc1d9927c277ceb1a39f728e1e7c5d959999d9c67d631e1b8d796cfe86b581adf9d46b5fdfdac0a2e65b1b58f93636af718ef7369fe21c7c6dfe6d2e1b2ec8ba8d0ff952ceef7ff47d3e7d76673a5b7857d2a7dcdfc905d18f93739f52bebbbbbb10d1f7b735c3f6db6c38fe1b8e7f6f73f6744a57f0a1c275e79877e8ff34a51fe44ffd870c6957480177485e7f5fa155b894ee38f77cdbdecf8756bef982da15f2e0a514ea23f2664a749f9017c18e684ea199264d9a33f7f97d5cf7baad726a07fd16ec15028d8adcae5f689e2992e6b64083e0fb4bad9beb17a2472f14b9435a989785a2fbe4dc3a7ef9cc0df5457142efcc85cfe1f878a91ddd7bf9beb5d017f24ebf94cf80a223eee31d06fca3bd75d0bb7be367a148c8a5905f1804af3f17c4df1cd328fdca009a6abfb05dc3b11eb4dc0ede7e0c7ca1e5a0c2ee91dafb77455f1fb5758f07eabd3e66f7cdf95d6d7be681411ff4f9e9b772fac59fd9bc5b39b583a5cafed6825b87828ec3c36ff619f7ccc3282e887e9612a2577ec62dbb03ebdf6f0b199d1fe594304619611777973fe79c51a5e305a14fd83d90a77c1865740823f4214c78ef41789b5542fa65fbd5fdb03ff2505f08add6f585ffb8e7fc9e7b6c87ceacea1e0ba0a0024593d6d3165904a5a4aa57bf6cbf607f4f11ed177c2914e467436d37b8bdb77239d67474ede558145f6e654b03cbb1289e5c8e4531c6ed5ab1289ea815f57d4349515a8d851266f554465603f305982cee7b4bdf7bed3594440d4208a3b4c103d5e69c9366355a5035140a85aa1a0a4c2a954ad5d8482a549ab5d6aa56ab2c58dacdcdcd0d8b464d1836b41a356ad4b0d1624a7343f3c0030f3cb881a3329293daf15ecee7e47c90aa00d07c7bac189833b1279880a0bd4dcba1f2f74d18594861d4c4448ccd142ff4402d0f5e54414a810cc2b822072898c4cc393d30813f21c5152994e841abc186144ba478d24316af025c8e81a9726b5c8e8161523987bcfc912dab95f3aee71c7ef9675b8b5ffe7463f1cb7fca4d637eb97bdfd7e3735aacc70911bd6ebacfbb7f16606d564ff59e4d64a457847950b748e600e6e987b74a4d84370009b0ec1582089c63b2b531c1841baad54fad262cc084d58d79e34623f11ed550df1a1f36a156a2ab7a1c38fad5366034be7b7dcbbfa3adef347fc83972de3f720e9c1b3aae3fac8377f5d5371c52ace3c8d9de11f3f4e36cefc8f6607823f47bd0dfda1e101b5cf7aac1d1e0589cdce2e6c6889318f65140113c30096106962e4400f5bf32ec83002331a2b07225055ac200f5ff2ca07b1ed2ea7f7cb5a53e6eaa6da86fa5aea38a62f976cd3362626202c232b29e82c64c2a32b6bdf48be931bdf7b624e9228b145c18a560067c06cb16288c809881490b8781022b44d040850c1839b0172b4f189d01028cd111af1fb74612b9724378c02b4474ebfb80b7725390bc51100e48d323f398de7befb1d24ff744186e900327665470a60b194527b0210645bc3062424a4a810632bed081872ca29891001ac28841c5891562740142ead77b4b966d18758f898190dceee1707bdeca3fed1ff8d3edf108fe7373e6719e9883038deba9eb461f709c42bf9e17ee29f5abff068d4da13b1890a7db4830e8ec53b4040c1a82f8618905606c01d4ff90b08f560323726003273a90220650ff5bc23e45398c99411725535e80a609a0fed7847d34a0431429965802c413470021f5129cc6c90172ebc06f2875e2fb0f16b69cb03101517bdd612abb2ae7e8cb1a7bf4b87920276ddd0d52c83a10049e0be12b7620dcf81a100ec531bd6e04e21146c87534fe7641177e85fcbaa63916f3bcb73ce5ebb12eb41a85b73921a20b617c20fd8aef66a4092a77fde109219e18823b009b0283b5a8b45a2160095302343bc8420c2b9cc9dba119101e1e110426b1807d3a4beb442328007c5cae8d88ebab0a8d756d57ba933aebeeac3b897bf99dd44ded0493601698c4a3e8beec5fd683857d2c8c5d1a0637beb9715bdb2d377ed38dbf71ddebcbfd1b97b49a449fa85f10c975e2bfec6bd2d436ced159a6526ddf7940a69bba76bab19f6e5432533bb89fa91df3b3adb76dd3d249aa278b2a63834b98d0e0686c389c0b5c0697c16570195c0697019f7cd943fd7bbfd349ef81f07073d508a1460dd6795fe3b7cdf935c27b0ac27d1f828dfbdeb5c1f736fa8f07cb977e26297dc87af8b566d192929260cffba0bba9957a89cb9225c124cab920e45836beb7740f545a6ab9d10c4a51412488a46ab2f573fe03980493ba27001f43f8f8f0838f0f21ccf90e4218000821bc594108e1cd0a5208e1e37cd749ac8710d2c89c4cf7701fdfcbb88feb5b0fbb876e0108e16645034a814810a9b5dcacb8f8aecdcfb44eec2ffdf2d24b9d0529fed6480000c0cb5427a982b0ef41f8ae936e7cd7499dd44dedd43d207cfc7e0aa2b23637ff1bd196e43e415c27be13079340e05cc8f9ae933ef88ecbe81668e9a4ced25a6a7e1c001bdf0fb69c8db54d71fd8d8dfbb50d79746eddb7b6ae3564de8e9d86de657127f42bfecd86b3e26e7571d00c08fd3a8a39b1a4aa4245452c0663c4624026c644193126c8a8d034d174b9892f973fa77b9c89180ccca050b9eb2be34fde04cdbc0917c3c494b3f35733d8a7fb5e997ea982b0d396f1320e39fa9e99fef7c52bf3cabc2f9e196824bd54559818134db41feab32ccbb2eeb49b24b9a5c3e10e2abbbaa774fb7df3c7548a436fafe15f0148bf20131a2cfd0abcf7eeefce3388730f8129f4ab8100494185157a95c4a66652f7d02c5bbae75d46a910c475fae1fbcc858baa99f6ae734417c5a9d0af06a2ca62bbb7a4e325ee0373afb0254bde8da91d38fc9fc3ee8efa3935d8f7d9e380d1cbba2a26db51f97c21eb4a58099761b0a46281e5e75bbb2e51d9d53cf9467fbf3c65c2bb3da77623c7067b53999c3b10beef87f2082a9c9adc6ad3c1db09d1aef69e9444aedf17e1bf0dc91be1bdc38730c8e2a5894325fd7ab05fb3d73c0797a8be74e5a60184af32633b9b0b1f4277b7e11cfe33cea91ac3767fe7fcdfe99ef9ba33fe9cf3638c314ad819af8c08c1c408990c6b592d77f77785189605638c483c293bb5436503dbb5ae6c754f47735cdd23e56bf279cbb161cef7e6935350091feaa50c9a3f391c1fb3b94829a594524a699665b0236acc89af9281edfe5d0c736cb0ddfd64e005c91dc0130ebedc9dcbb125902e0fd7c10c2c0815720d220086750b5476c18e66d8cede18bf655991045575e60601a83df8720fd517f63d935059d7fdd977d0d1095476714a95031bcd75fdef9d8b5347a76e7777f7e6ee6e0ee2b1333fa646e69c73ce3979b253c74ef479eb74dca6bc62c2a2be632fb4e976d0041e1086caae0ea6fddce6967ad6138bfa4ca3a9ede53a3d67cdb953fb7e8dd32ea5b03662d584955b0fc975bc828118fe71ca293d321508ec6d4260f703b0cb5cd07c3a37fa75eb5cb77ec7ba35e7d66f758fea6bad5f9feae6595bf797f53fceda54ff8488ee4ac8efea39b563c5e9e85709db3685460da76dae7e3573f70cbbcccdfff16afbc57cd35007ef75bb4318e30e6dae92b0cc75acfb564858e6e42a06963fd67434d59a57888a19478eb9a6b473e1f24391017bada6984f7a106fe70edd2191c3875b4ebf5ce6cc0ab894e453e1bbb498877f05ebc41074879452bad12a8646a54fe8d76331f711ad30f4ba270881ddeea6b7e4df0dd909078b6131b7b9a0c7799605ac96ec7b66bab4a3847d9ff3f005574bd8f72e84972ee45660ecfbd514f0692f552d073671ecd0de6c5036df42443e16a0f4f2c1d1296d633db1aaf76fd5aa7aac27d6c28030cffb6853ed50642c1d97ff877304619ef7fcc2b1d3da47d4a3b8276c672db7001b13baa7510ff3d48efa4d3921aea69a97cab8aab19ed854c6d1e93eacd6f1b96ab2ddebfa6ba77bb4771ddd433f7bd4672dadbe6b9c101d175551dc7b2f7df86cc74bab7d4c709dc8e26227d10b2c0b8bed5e93d7a471faf94ef16f6dac2736be09415651d88ec5c4cf008be99e467d77425ef79dd03d53e33a6eda31b921f8b2304f4435613db1dd6bd26405855d6128768f94eee98434e91ef89074e0f889f409e1a5fbeedce065758edd894a73c9ff300feb803042187154c075e1af62ae1b637cb972565fecfbf88fa58c52c6a90407bd3dbeecf862b73fc9f055115d4af6c8ccdf9292fb15592e257bf9fe6f4a0aa52c61674e39a784afafab29e47c73328fece07d4eb5cbcf3df8e29853ce296d0588987784b82e7309acc7753a7660cf4f888ecbadf61936562b52bad98ffcbe84cb382e7752722ca480071b32f3348e4b5f6ce278ce3923437e679614760afb1eaea4b0ef5f17553e861d3b4618237ce66115565dec8b1d5bca28655c85b10f6ea9ecbab1e2623b5813217a40f189aef813996580e0bfa7fc54efe9fd6957ceabff6d5abf2acac4c85c8971e114e3824a19295e3459bd4029e6059258174cb12e90625c9411eb22c969d062062d6a208343eb995acb6ae5b8fb844cbcc08119d3b6fc7574c69091a141153a65849cc5c828a9ad31ee6a4c96bfdd0fa3a4b4774ad0e1629df7d49ba32f4869e43807b20e34e2995acb6ae5cc396592314d55886859d6164fdccebe94d510373f14dde0f46402272a90e1cc5317639a8c0182aa54506484114963aa487af201072eb4f8428b33aaa86ec0d142092dc25499363850325a206921446c0b2b97c6e5d81638c086ab2bd6ddbd8b96154a5b2d206afa8417c224e184c30c52b6900018679cd144122ec04109286360b6f5ef7aedbc76fea519e9d2c475aea39c10d87577779fa2c4b44515314c6262a0cc16cbba5e3b36b6b821db020568ae8dcbb1315e28b567614411131fc2c82283334986c8a2c5ed2c11628eb270b222225b0de1ee938526468e780063c50559b89855951511730c178f95c0c10633a05481060c14cf2236a68bd8982b8a54ee9ecee1757777f7d7d3cd0780ddeffa0fe61c0a701e7ef8010673ffe1060d288d9f8269ce39a7fd2b9498a64d9a73ce59c383ca4876c50c5740b1a9014a0aea8a234a69a538b8a248ea68f5f4748339e79c329440881c928cb132440eb660e1943d81a91186e660b583ad024409ae60e2454c105796fc8aa71b9e7aa094521a9520a9c1911c921879b2e4e5e9e9e829899c569461059a550aa2d070921ae2512bca54b183150fd275bbc909715d8a859524403e10e8cdd9512caabc60556099aea2d8168d6151c3d52ec7b038725b4f286db55c2b1d2074b960ab1c6030368388a72d846042081e746045f70456513a0b63059a277600a2092e69aa70e2040673274e9c3c485737549144c5d20a055388eb528e5738587b3956050d2837277771a7115cdd10abe2cb959763552871bb8731bd950d304819ab42695503102e2610ba5cadd5095a2d97cb5d76b7775c2d51a2448994981392550c2a215631a856b092a10458e35b90ee93dbd10ba917b775eefbf79c985ac13eb075fa7b0bfad4af76ea573f314eb75915847d3cfec21aa32f2b252b25427e790671f3156af066eb9e20edebd601791ae5565f81dc9b340fc8cda40cf4f9c29509e00b3b6aa8dcab2357906261965c8e4d212536850daa2b5647de7bef69f057472c3217c7851f61cff05c7b3b544fd876f62d10f213f6fb5be060b8c0ca0d2f78018b247a007232a272738b9b47e5767715e0a434f244193d096bed9c54b395fe964bdfcba532db38964392173b1fc27e41db2f9863ad34c3aa80f4cb66199def071a8f323a84d199acd06ab5b846f5d32f1b9fd2183b4ed930c20683fa87cab24cebec49335035d4dddefcb4c0996533b3519dd02feb107aca474a4e19cf70774a5922a852e8d7e50c85ca340a1f84ee31cc1863cc2095199c524e49bbbe682207236c772859e0eed3a50c7243caeeb8598f323a8411ba749293811e9c653426a34ba8aa40bf2a0ae6d860a194d9cf39e77c140a6667607f741507fa559fb6583246eb1f1dfa908fe2206dfabc36840e23bc92094238a16a01fdf21823e578a8ef7cf39f261f8452c6ad280b9e1fa8140e16553d0a15110900004110004315002020140a87440291482c188a829c7d14800d83943e6e50174843510ec3300882188841d010038061801042c8d4d4500d0080195ed4afe4da4a03f092092bf769ae1ff50afdd46eef9e7d4c2b31335082c819550e9161f34460f310519efc4f1fd5515bce842cc9d2637c910ad10d06528b9c89ae77ac714a60db14808b50d2d00f7c4c05a698441e92352114363391e71f175f06e8aced441c58c90ad231fcb30248e17c6dca3ba70b64c325a5845a4711260859a33477e1b57ae04bb04b8c0eae36bf8082fb0f266d17c26832c079034546cf5b872ee796c61dd5be801ebfc626da9b2a895d6ca822ea63c02a6d7d8e74622978d604be5fda5b615ad46d707de6c4cfa19d574cfd69508f3f09fa04e0d5cf19b94ae39eb710ae82190190af2aaf34f8941cfae73db8b82698fda9e8133c79f6b9dcae8bdaa0c5b6e93c19ddb9b44cfefedd42afb6c9006e550701aea56770687ac22df1cac7f0cd1b21d85bcfce0791245ff9788ca70e12881a8f226e3c7db9accc3aac4a8d8db7a3c4df0b3d564c0e207142f543eccbe2534c4fbb9d2d4c40301f29572ace32347998a1c4afba1612e07d83b37a3188a770cab200acb261059f0e8c6731f3803d1356c2d2d51e88798d23d4755c1a905b7621b8dba7e3b0ee34346fb8770c4c74377cf9171c1529ef5fa2631b31b3a1a2ad9ca336239f585a555427b4efbd760fb7c33c6c7959b436e212093ca351ff176be7352b9b7230df77346950a5fa794d744b4160841447f2b704def344e9e2557d786bbd16122d870482c8c3ccfbe3392b9879bc8146489d1d7aec675966cef82549516976b5d9fa395122af503ede906027e1052b67e0244bf8c5c879431eee3fc911d1071821cb13376228b4975e7cdf5d6f3ded32536b07ea1e11e416609ffda5f2ce11a9e7db32a7aa1a583cc3e8bd15cc51ea3a426866150d4ec3e19304d4b83e11a6546ed238de960a4aca2b40f3e2997d319f2f72c462a476c75a3567cee328d1c050368992dae15ad6262b7e83dde5d3f84b8d471bf30a96b240e4f4e50592ac8838940ddf30371d99014730fa2003560a65809682ccf05220332ca5f818499471b6af9fab97e950f6ec923ce11ec4ae98d3fbd2be5e40a931682cd133ef5459e113b6b3489c5fc1272c66c1351a374ec6ece96f5e2c2cce4ed4e776836b552c88a73cc72a3f9494d88be1a72008a94c901a7281869f231ee054ec619021674cdbe8287e3609491a19fb38c3227b9b983447f652be1c532c7280ace4a40c17c6826f55503a6426614bd4975403ea50b041164ccc823968c0311f307f5301683b520f24da64dabe2c3bf6df3ce91a07dd62423e80ad0d195cd2ee19ed0e2813c6f7c6020fe240cd08fe217a231d22827d234f4aefc1581a17d69cf56650a8490843453cb2e26698e6104820a1be2c9c2acbe1b21fee3b161e89e18e2614bdf393280650f5084f9ea0df88efdd45e0e0870b6e1a6f510bdce9d776724acb0d57d64281a22d61bde369b48bdd337315056e79c225c20ab80aa04007fc222d156316dce86c80b4267f60e92a0f12c3208dd017c3ec282bd81e73b940ef30b3eb6320fd8eb8bf5df70e59dcf2c207054aa1329e2422b4de2bb46cf991fba006cdf223aba1403f27f751de81011bd9ee33d62ee04bf8450c0d6729b7433a99606ffe53af02a477a74fade1169ce17501a3305fca1afeaf2d024cfafb821433ac8c27d920199ce0b25081521a173b02716ef05411006111d3c8d9a9846069b538e0ce67c16bcff75ce7e239fedecc21361c023498e75760c209d850ac3c7df9895d3c957b523c6c99419307a6d9d59aeece7777b4d6c9551bd72632bda81176b1cb0a320bd05c5ac48ca46d7a5097726cdba065f00f66bb986dee8d2d0a1164005eba04a09d10e7555b2a29b40f51d6e3436e55f5e78cb870618e5b5a688e77915d41c8d344f769fb764044d0a20f03647b1713fe5015ea44d67ead31de76d47e8ffb5e31163839a7931b062db3e8bb55b365bcd373738f5ed855d4686c386e29dc495df44de33569ead0f92644941b6ffd7a662dd7f2648fd66a73cadf2ea138e75574ce2478af3d8ebf7ae3be8b345f3fb2b59aa2cfd1be98f4ea54994184f06773e9ca554efcad878993a14375a97c304ceed15ae3c785ed6242041bdbf1f285973930941ea976fe6665f296aac2de81b092a37125fb8d7f74cc18e3bcce50663376367d12d601969c3b858d8911319731ad174b9fe9eeb0058dd885eda3cf966408f60e7800c046450b9b5f4b9e6f30bc4e95565281adddf4423d6bedab2d929fedb0f0a239c21c416d8bb9e9fd5ce20e5ff4e839c7afec53d7761963d29ec4bcaa29f163811f288fabf0d6b5f04fe4ec45938a77e2e024e367485464a3fd6ff986f41c913b666e32fc0ee087faf8fa8ffa9aac648bf9229088f5b7e4c3815f26de9621947f887d65e5de0b5a5f30e037e0ceb261aacfffa95f055b9a0953e2a13267373b55d6403093a69139b55e241db8c7caf69283d9e5c6b4bae920af3587e467b7431407c7001af2b63b7bae838938cb455ae6f877dfe3e508f7b8468fa1410d11ad9b5a08255501d9aa483d77754ac2d829ce2d4e889df5d749d02aae65eee9cbbb96385523a9d85c74ef30d3a3c1a6e75d26845797a32b39281a6e65ed0cb4006e14383da0e8929b0e2da76423061468b0c45a38cfc21707754a632ae082204ef61f4da1a1c800c4cd4fab255b549423cb4ce2e7dc1b05e3f08da45aaf85eddd6cf64c7acc4cec0de33ba3a3d703d6625f2a99bba402eeedb03dffbb70c89e2261eda72aaa49fd58637f457b897284ad35b9249ddd955966422e8bd6d42e9f39c2e543c3a1644e5df0223bf14673474c9a424c6f440fd32ad19452a3b40dd5576a57873e639b6e37573184f5487fb32a1f417155b6d4b07325524cea164757b08e4370ac8de18a90da921105b9bca3e5543ae0f8f17668553a0f6778739a3790df73aa6ece29984ba17757306a9f64a090b300253c15850ac2ba8513176a2af404609be34d1acc7ecd1e3a76c23d0d50e55935c3363eeb73469375acb61e027881af13b91e57163578bf8a92fe5cd6418f8c9aa5a0983c376b6ed17cf947423068cd596a24b2de56948d3ab3694c5c92c3f680e73f882358888c93ef10c2fa14e2e295c1ac89130494a3322a34cef010c808d1f8d387f9d50039260bed10fc0b9d8e243424bdb5b18c1e0fce31c82f4c731e35cf6954f4964a12a55a0c48327fa2241dfa03eea9721797f5f0362c16c65cc0b53d149a1e27ef570927e92dc06abe704cafbd610c1d892481b831b8a6391fe76c24120561ec82531a02ec1856515d46f7c51f3f7b4ee84cc67398a6bc35e580216243d8b6908ba993df2632939c782a5964b51e51b9c0c01fc3120e125042232254a62d2c1cd9793361eb2f3fc38cb8061c6232e2119603fa2f62e38305674fbc7b25bb7fd180d4c1e20cb84a349705f976d7abea836a8b7292f75ddaa60785331b216a9ba7e95f9097a1ebbf182d374447634e262986f75c55265642af6417e58c0ca9aa4105fe0ac9f5815a402b0074aa94ac018e88a3234ffd100fff70f99e0e87e32a294f27a5f6c3e1896f198349241aa2178a4dc2dc6f95a3edefb43fed89027c8c46c79b38c93a13cb4a1446f82a68a32eee97132118ff81e7cd13a34e4216aecc6979c1052974499860c7b9df242946660a83a40bf4a6d94b4b318f9c050b5e688340ca5ae2507cbd9ee95599d9c558715516c67c858f1d124fdf8dfa0fd3987bed62f6764f080d27b1488439e7913e7873bc856271cbc6f18ab89fcb905b980031908285875e77ef97043707f110f15c581642583c04d53f2fc870104e6e0f458dc87f8a436f80c294647a9acc1995086d61fe34641d744f6270a9747f51c9f5ad81e4e0a9655102f488a310eb13dc6fe93379459e8b33b9c75f993a658e7f8dc91a429a5a0c38f119efefebb49cbdf8601a57ab385ecfa0e68863979172d19ce8010073202b141825051db3a93dde545f0c8b49aefbf13e410c7c45329883268b8719e3337dbc4f646984454b22985910255ec55a1bc446f0b352c48194d6d57260f84080151ca834ed8e256deb8da97ef721299521766ac6e636a6e2d6a2b13401f34c70df4d2acbf5099e25cd1036d12150f4e5b2b9cc01a9f8a2a7652c126e57b598e3f08c1893574d587b8602dcec4e110c657c50b1530384ac91560e68b5b54cb276795a83737b00a70cf4aa30a2b49eb390eb1e187e44113f6de245383b9a6971f913f89ed909b31973c34aee6115d973848372579e5cce6e6f60685d7ab95bcaeea4aeb25b6d8c64746146b4bc94bfd1e397c6d6afc34cb4d986a0ba0e441f79ba7ddab19d7ab02b0e7f542cc410077c06bedcf4a851ad21763b4b934683bde7db65d78dd00096cb19cc4eb505c0ec8add4142397a55f1987988bfb3217793ccb2b9c0fa72447e87a2ab2ca6dc71ae6f678401873b91926cd66507559daee5f81c7fca9ca31db25444175928844b32554f450ff1fd5382ba6bd97613a7ab8c51fa6dd73310c0e4277bdd054154b3f5986cef1c17916eff97aaf101daa30f498ae98622f327b6d168d15cb6ad0aa558ab2e293717871f07ed0d0632d6d7b40036bdb7a9f5770849e35c73bc0d2f3d6242984ccefdd8fb00705b817b39438f1915f5de8308a1fd72142891f2f24fc02a52917c1353083c8344087b872fe14c4728620a6abc089cb883ecb803e8a62fbaf49ce48226d613c9d91354e17cbd1daa40cf7aa6f9f5e4dd50895f8138bc88a35f311c6ae368abcca48fb339eeaf66e108d0f1aaf523845ee1e9e42435250454acbc7ff73c4d8ada0a5483f4716e99229f9bcaf4d0e9711980aa0ac5ef5deaf433793a31a807f39d24d67ac0c986699a22506c2a8791941be3bbc49be1a5c25546c5396a8f71dcd24e2542e37dde32ac30606009cffede0ecb80d5e066ed34c376c238669697b2c3ad70e31b9b64e9e7db3d9e77c2daaf71488dca408352e16a95c2e001b0cb2e39ef6717a0eee1e931dee92b502a17408f0a1c10a42ead7a680c579869889dea1b6d4cf31586f81f322cf15b1b60e2e14276e5abae4b3f0492bcff1125337402d3d06e4604ead68e4dc365f480cbf595dd2e976ee133d7038df6dffe402335905db9f3b558c8e97b3610427921b091e831295ae947776f334c895b9be4520b898c37903293e569ad7eee3509619709a07d76bcc77c9f7cdf77d1a98a5b5c4fc78d5ae16372c90880b168b0a2254108c984aa919ec48ee308b7a22f0beeefb2d2769495d7c3c71dacc6bdcfeff5d9805be51744ddba4854a23acdb0339fc3ef5698a844aedf2113eb7107c858dabd385f31dcef811ad5eebe230c054917e20b99cf899fcb509c280ddb8c66385c21de9c41457eef83f31eee10c5b36d2589c39beb814c716a339d767499af372880ab5499190333143226f97dfd3fbb33f8be8f2ea21f3f2e2105dbdea14668256092e301893f045ccfb8c81251ad3b418418920a087fb72fb01824d50d469ca8c7a0490f5a6fbee77342dac74585910dcddd17da4741ff44f81db7a329b818dd112b72a8f3116291aae8629890f63988be654ab15881830157a903031ab2172b96ba66c1fe61c6bd8f0025b4f84eb801ff0be3116460decfc343176a61d4d9a572ac1e7a5c4b03b1eb7477e39abf3cd62b1744eccbd9ba817c6d9754ba7d788081251f2b7025b5afc4f53e38d4bd8025aa28e8f0a41aa43c06b8249c487139f503b2971ba499e9ab4e7694c6291189850a52f103e35af58b086840c9eeff494022e2870907a9ab1a8f0f0ef900421f3a459f645a40a6dc574e11e631032b4ce38d06255c6d81a7e1aee92f03fa2b435a59097bc80a1668f24300660f615449675377490f76645a366092136fc0d28fce62f8b03a06821f7b467c5ce0e48d5b19d48cbf12167bbf8d23937a4a4ac94f1d16d2b6188ba9453b5d391fd81a81b461bc78e320cb83795f52c9b2f3e7e786310f46cead5e5d122f2050e06027dabc11345e5ff653e36d92518dc61bbc20b480efadfa7defe9e43ab15a11a6364ff87f46b18aed59a3e7408776ff9fe89c74d028029de855821f14b0996ab5c08f45f903ad778784b1670d155d387a716bc6ebb173d8e9831af576116c7df5c615de3cb4e2a6186f4216cc0c4d19266bf83d31c16eafcec7240b901507351ebfeacd3268dd728758376126d536069dd1851783ca0735dbd70629f86ca7ed5fcf41c2859fd265003407beac89a614bb932bbb8d278c006a29d3330697c70e5d15c692e1d04fb3e20acb8599b4c1c2d26b5ac4b00c672fa53fb1724f7ed0eb3b9033409c4460f4cbca99b53eb97f4a1419eeadd1dd80400c290933e153b2d507b2c41761eee5d4600bb0578d034a41ead726375f017a67a7b97017f861dc24510241eb7ce34bb10c347373c4c60eff59c6431e22b1aeca01c4f603672e452982060e8fcb58293095c8414cd55bb0a7d76ca9319f9688dbb206c83e9f0057518f4dc1e18f3e8affb998fe153cf5128c1d518f8e8b6455b0078dcbdb81b1bc41087465ce892ea447c1a1c30accfabc4e8a4db2d61503d63eeba97854127dde08ac0f8a82d07cbd52f4b0375a5c62f4946320d2ebf0942a875e9b7747b09a6226205672770723ce7e876d0fd5f6a19d86192a73afa13b283e3b8034aca04f64636436d0dfbff4d4f04ec7529fecfdcb6fe731b3bd4832a33690e8c7a4d5a941ec60a587ac5b4213f87e4826f317c4cda49b4be82032ed343b4672ed7896091e108b0651005451d08b8150006261d08a28a8af00f4a2b056f75b4886729db37a75508a412c02bd00904541150649318805a01700bd2088e204e22f0662915bdbfd055ce18a807e611599c4497796c3eeca0dc1af29ec18c9b5f30c1378402c0ca2081005412f02a51888851bc45b009aa2b0b6fb055df38a453b58a3b1e89cfde88af712798bcdd9d7cc14eef211322240304f1e254c2c58a7702b45e3bd5d40ad378c08713a9bc2b554503fb8b8741b5d9076732a70f499e50a57348a4a0ae74a329bc21d4e3c3b4d5708e7768334e7001d9f6ebc9d7453e377ebd57d331135852b34c2d914ce4dd1727c49df0b5585f66e3a85fb884310a3e4e3dbe267c6b7804622fa7ee6f816ddc529436e4de610f2cc2c018900a131b2ebd951645b331ac3131915fe08332b4a16691e01c6915450ba56e6a02babb6703153e8867d912ebc9c5a056e0025e0944cd433e02a42ce1ff3dc4ef0749804982e0285dc819c08432d8170b425b8b159728e955fbe7cb786b21605b50426957912f1affe21ab75d729b622a6f627283a66140f93e3ea3effefc005450ffcde2deec22a8036a668087d9640634ea4838084bc58ffcc02c6230d1bcff231c8b2b0b0fef854bbc179e6fdd0db7cb545889ab276325a5dc8363a5726fdba36817dab7993c17d76b8fd8e43606c4ea7e58ac7fe38a391501eec578d772ca7461c06954157de748d9bd46373c559d562fc1da884c2c109cdc5e38ab343b760d5e43a139430fd27c6adf73ee29045893dec1b93f4f805157abf95542fd436312f786088a257d8b79ee9d7c6db51c42b58abf01911adf3b9f7405587365abeab384b77ea44f3e4c5adb1eaa47039ec29e2b2a098cd2ab0b82f547669799c6578f642ca2586062b4e46bd1f67f4bb707efe5fd9b6789dbc1de4d93f0f32e053ded3e7934b9433cf13df18807b28393171df08fd3eb140232470790a6ff8193e85bcb535a2ba91a1173cd11258102395af697fa2702b8302dce64837ce45e6e7f0b40c2fa0dd2d73788173987ab5929d3f01ea172a37b9548a7ef4cdffc06e31a7f62510e44149e851199e21d7dd6d1cdaa9960f10057a4eddd00748bd4eb133e4cb0cbafc09aaf19607e4e647018618b9fde285388ad00387cefd755bfedb59069da6a02f22566c07146fa5159be7d803c50aac0ed969740278c1e16a641af796b35c20f3696d59aae6456245afc5e5d46de8fc7749007889ed7120fbcc501e877ad1c206c1a31d1ea9dca09201d91f6b150fad6dc0e823b6fcaa8beb58a0cad85be4a11364016354366f06485f4c612871e01129f4be22d69457c3980a425a2f4b4b669b7a45bf34a39dee6d9d373a7a32920e31d01f227eba41b2ef11cab972ecd7e0c80cc3f1a1d44adc5571b426ff10f91b60880451513dc24b9cd4ad59aeba396e95f6ad6424fe4fc95e308f15c8f2db02bb8f48f5da883c86a891a98f8a5f4f6b7662d48e499e7f4c08480d1f54f1b341009a74259dfb3c29063f705411cc491c04ea345d550dffba34fc2957f4d4033a119ca58a83a105555631814972e29cdfd6692b59ecf2c1a02d8869b5b552466f92e5fb79933eb12519be18de5e53c06ff307e7690bc51be4af78c8c196f03e11a4b87752bcdcd9eea4f8b93ad60c97560afae286373d53c247aec6ac66ed618a795498241c05aaf3aef75850b356a15a287586b3f748588ce7f2bdf364e194ef451e8cc8808adc217407acee44a789bb3a3bd02848a05c0154296276903b004e118efdcb4a6c7b9f499a84f70b7d07087f90d3b47cec701d70c0c269d4e99585dace639fe78418c3e16cb891a08b801fa599e31227342a76d9779a2921c835b79d492e8da4c6a06528ecc05c2375fba700317919461b99101815a1df9004b3367c87d9b6055b286d8904098816fbb86184424de9ea6bb2649d30bac5d35e657c7b9c578d7cc0b14456a758595812678aa5e28bfcd1e1c3ef124a7612f4f7d577cc3060e63ff229ac4d16da7515f6aa0a261308fc605030f919e1f205c68ab232b8020ec3cc68a3b03abf22c71fc8d458d748e0404e356e97c64d0ccac43b4361e3234778fc88c75704ad7fe449cb2ccfe41ebfeb7cb4a7737dcaef76510028696001c5541d5a70bbc77eff502e79216b96416379e868cc611575218da9ccde44b4a04a8a0693e4d86f4a5906aa4b05e015a75c56147fed8859ea988053894a48d5b142b68b30ed164cc06c0d6f4471529a562e5477895349259517d8910e197560cf2498ca22ede31726017c6f1fdda9446f5b06fd7d2e4f9703e2590b39415f1c19ecac7eb1c2af8e8cdf29a9268c1122ff548ff0b0ce29d98963c14e208764012a2362bacfe581f28f9499abf31f741823ec6cc8715142d618f92402cbb1a0fad8de7016b5177dc22f7bfd437a4513d2d41d3a0c35e64a2016730c8c7eb8619f9d95701f98a6567395af1584071b1095210012d851b7def47beec77186343f07e706f4c812fecc31583a3ad2b54cd8371a7108cccb5e7c7c99088685770851835a8090a0cd55c1dc9b909b390d2e81870a1d9ef1bcf3c29f41a3f7aea7975cd17305335c50324bf6daac80021d98c95243658548b0cb112842123e6c23c8df29129c9d8457dc2a9192c5e31c06a41005e1deecd23ba2b2cf70bd99b60665c456de1640f5081410fb912b541203bc5c3afa360a1d3d0757909d2d45f505446a048a05ff9909b3ba4dcca33dc0527531a035afbbb29a0a464d7ac89d6848129e8932cb61665a240763b0da762d509084bb703775e0f3f33b03fe1ab9e3379173aa47c0cb4ee98a8b8ffc722fe42c7924f290c7a4839d77b162fee55f014c5ea85699db60500a3a2e5778789214dbed286dff9a77d765c24760e4efe1199c8ec48855e690b5bb67c465f17dcad3cd6a6d17f5c8456f563a41325c1ed5871215b7a4215b258ae22d4ac0bc0275235d85d48e343250cd3b65ffc00aca651e64d43d17f8c03b7349c6db4b9ada7c932da2316ae30020d85b2f1a0a5fcd9bed3bb37ec454ab173b7ef993abc9167d6a58834d8a7d14e3f6ed92a5569b23ba70a5782d72a115c2cbe34f9dcacd513512bff54148f5edc5d220b27a21f89b4693aec375acceabd375b64ed579aabb1dc16d22045241d00e6978e1646d9117405d3eac91b18bb1a651c710ff66652d30c2f5df13c5739bee3cea074e84e579a61288b41992b99bae38b9d1aaf4bcc5c566aaeeb714d58db9a8df94c2eda65ea5f12cb6dd530cbaf5dc6e8aaa1b7ff1b269a5db6d8d4ae75d4c9baee0bc57a8ee198be326158e6f88aaecc06c2727f3a66b720510b99d61b2602bee028fd996c6daa61fcb14328e2bad1379e4c68688b52745ba7ea3f5918e6dd054e7c159b04b84093b912c6f6c1d7ce38032a79b815e054ac0fc106dc59db088e0e55096711a3a48bb78eb9e95e5387870cf2ee07a0bd8fe4dae95081388c942a97dcc60315d7283d282fbaf5024de8e188a590fbe4b4a312d9bc5e16dfd8a706fcd96260069ce79faab46611c08bf82c9cd88eca52b23ba5614797c03f8abdf78c9910508c88183cb393d593308e176a1671075e8759d71e83b746e02e37235d083114a207e5a39a4b853f25bca3caa69946535751c05a338c249195d91a5f93a6ff2dc972a6519f863bd655bdd19f3a31645f80e5b088d68358a9e15633a7c2501a2366c2735232dae0d9e1633d0b6b14f22d8d2ec938c2bea6620129dbb8405c86ee900e75097640061260a72bee6c16bc85afec11959b988ab91f92e4dfeb56b4341aac03d952e38c93f9903e896f9ae0fd454679afb358c3bfa7fd9b654511c633873fdfe9393e6144709d87870afeccad4324ae64c10c77ccb3c42c42b1954532cbc1377cd0947b270b31ce14c4930aff95e7897e9a89e94a38a457f7780ffe4093b5d4c64cfc6ae7eacc1ba52cf3fe2b84e41186bc3939a33833e74e61409614c98a6a16f1df91e5eec5e1f73cffe45d3dd70058ef8705a20802dc6a7bd02631845c1059f5ce80531c8f1ba76394e4738274c9017285eff7b87a7b5e16c284ae9fd33586d9cf1462aa20a14eb077001df92aeb799c9902dda7e4b53ac128b33bcb88137f28643c124bf27e79ed890212a7339a49eff7366fd2e52373d51540f8abe1fe80e09f19f00c94a5edc5b21a448bc3e8280e9f4fa4817b6d07a6db8bbdc65daf82808b101e0aea8c7f340a59dcf8057cb7542997d3b458e8da113d96a34c3d469e5500418507df23ece9a6a2103e2769b31f7401ee94efc7eb9f91f3314722da423b41809d1691ddb4861cf1dd1c2be3bb2a5dfa79666c09060678367bdc20651f0689843ea2395ef4607dc948584a06182b34d1279e3f6d640e174d0885c0a04de1c30786e021890b94bc04eaced3002b0b8c15a039d3203a6e4feefbbe15624244450040d578a9d65595694d00fd559d15484f24aaeb7c886b576dd0fe98615f50aeb4f82f8392912e25f819f9c5a76390da20f6955db9bb1f4622c054eda3403a4144dde1e656bd62a65299e0bc56c82c7a0c131243a6a7a49ba93c0ea8bbada3c4bc252e309d14f9706124a4b2e4b054efea5e29e93524c8592b00dc1efbb324afd4d94fa9551ea32766e98a7548b3c5686288edb920f8356b4fe9df7c8ecd7aa42f96b8531aa8bc4d3092c0fb5ce7ea105a40521e7f82ebbb1676ea5d7d6ad909a403afbb03a6f00677e37e8fe7d4ea74c6bcbf16e10498bd3704a7ecb8f0be3fabdb428a60ae2e6ad8f7b42b8a108550bf7e8e47cc8d91c228160e2fdbfc9ff7762bd91a46aa618beca505b2decf124c912a0d64ee8a7362709977ed09b525a9ce54b1be7cf370d6f8bdc120a03853a6e9096faca98b26a371f4c26ec97d4cb200beb68a04f870e72c5a13522f91092d97b3160c9ae7f7aaedea06b54c97935da97e85aa351e267111b62baa045b5ddfc83f391fa51bc60ad0faf484c95d924b22ef63c7e3541fda059caf7cb1b3288e069fe0b44d2b5ab94005bbc05213f914f4349999669250b35e5a89f1ce53ff98c94d81acaed0de18c13f6393016b75c2a914c151d17c180cecaddeb89d9e71b0e0d7b00c251c17edfa2752a7534f540a7762812a30c46fbc2e68dc9efd73a4538fb032c9734a8d525e2011744ab9601921c6f440324ad1983286d3c6f7a3e1ac7fcf2dc075f71184fc1b3acaed041310c4ba595097f61c3b2e05f5426dbd17d4765041602db3c825c9158d59770ed604c5fb0984e2f4edca975af6dbd3216807e0ca58c9305aeb395f2e1137a7ff92090a35c11a7d1bbe4eb4865098674f9ae6a5e25838f6274978462850f41488edca61f6234e7135e6381a588bca0fae2de1d7fa8e0d7690c9fea8f70c9395b12ea7c81c6f0f6f74c9ddc1fd1bbde925e4b50b7f2b2785aaa6d1197e9a61b7909c96cf2650b710fe2b8317bbb3f9108f86015f2593d2297e7a8f980385e65d8fd10b0340aaccd82c2c0685020aa4867d11592db82de4c71b0a52cc3be962b33890781928e3ceeaed9a39878e7b4f12187a4b20376430e41748834cf668e6507ff57fc87aaf47ebf4c6eb3b13752b809d9ac6510882761d9724fefb5125aacb24a65a67b4ddca985d0bab5e5e4d627dc74962d42df2a8fc72822b791ee914f29e2a63ffbd88792cea77885dd64c6c6b15a096ea3cde000c9fc198a15f8074cd73a0c4d296a40ad1b1aaa6f089313b2020ffea2f0ee5052e3c0d8f45e07c705070127f94b11260beb81e5638e565b94a3ddd145a25e03a48c3361a3078bb415d9ac1c3e90ba9ed32216c5f07f1851b6ab508b24cf0e41d8a9f0d7bc02a379bc650501d7e0e39940ce9fa6fa16ed66f07801c0b0605b9a6c00319c6db2ac8eb0a727519b03671ee9bb0341bd51fd96b3162dda652470d543540189cfc0bc1f217a1134d5fb68009c22b2b3397bd650bc17b36cab78d52613a29530ac7a0352bf3af6a5fde52a1bb84709a1203845da5cb5e3c959b6098e7b53437d5d5ecccb142396dc203cef5dc3598a1469734e0b99da7e54fe68735f98e6786a8dd40e2f38aff2c2a3032e73b4592c200cc8daa1ee2346e6897f0d5c1c3fa7cd469bf7a50662155a2eee75983ac79fd5ef414bbdd6558fcf48fc38051c991eec3b7ea3cd94af4715497fe8154166fb6453211dafd4d373ac27a5d336daac9801d222000967273885582dd02cb565d72ffc5a9f086eb4b93d070f03a8123efb88cf51f83f6096f254d252cb1524116710849cf1faada0fe4010ce0e1fd14c98a95ccddf68734e235cd02e40519a9a6841567990d0bb57270cad9070851dc9b307e454161e7d342c0c5d2bf3c6364c939c63a025da4c5c906a77a945f66b9a29d5ac0ca258e1974c829e16ae34df932e957a87e48c7cf5f1a84c6365b4195e4cc81eac287a68eb13e18e0bbf1249f3f233d7a1760fe3fb5454b2e2a3398d107bc17a7e520a5e377acb5a869179d0d5dcf6d036fee743635604031a92d16688ca584963b82b39e2d39d0a1b925c986c8e4c4b49b2db0b0bfdd9050052532803b2f339ad1943496c66cb68b3a2eccfd52679dfe0d1d79711218dae194ad1d446b499e15d201359928f64beb0262c20e429dd6710fff9343d31d36161c58e56967f5e561f560d450f6256735183576386eb5f9b2944380bb6cf43ce0f4ef3e83c11773ff2ed081c236641548e3bde34def16d34339139bf10c4d40790401db0cdb9e1ee9ab8989658ecc086557ba9cf5292f5b7b02830f9cd4017a18804bc3ab994201c8dde3a5df9cc3ace04eb96b411549b2d0f13747cd4d6e632c99de14e2f4016ae0a5d0c4a5a276a8d8c54974629fec50d7e00915e8ae14672b2884d6c62a56b6d5621dd9c543f0acc130ab7c137dc1a9dcd97140565178fbaf4b582b00fa86cc0465c755a51b22243e3aed3c14611c86b996ee42f12560b4e79479ad51bf9ac05cdb01df90b2768827f67de2fbaaf0972ce890706048588dc5f8f3a6b3818d8262aafba8ef49f43c0a568418a12e0b2ccf1aea6150a72d0bf89dd611618b0ae20c8f7bd6d74776be610de6c9ad6e0ef25a193dc8462016159d72c013c71a973dc1908236ff8283844c1f8fa76ed86d1f2e81d6ae8189f89dea3b6a6f73cc7bd3728d779a1b6cb5cb6c7dadefeb3cee4375e601b2a90e6422773ddd606e573dc181127f5f547582876dc6e33df2728178ca7011d37455363dd48fdc243b552264fc73d52473028946ec57742ee62502d1b63f0b943360e24c041ef94d7eaef43dc89665da6b289a9b1b085e75336e486325629a94bc14684de357925181af033d1114d20978859f1a4c9015f7ed930508b0650c865187ea19445fa00ce992839b2ff816770de7722d7249b9d4fd060e299fd9ffc4c9e86c7a9da2d1f82644db77e4a3531dfde5aeea8351c3ccd9f0f8613e819c792378c28d2a73a609f6e1cfc8e50ec574ff093ee3ada1e68594a513c8dae009fc985d91cbc4cc3a8f7ab87f87dacd34c46bb4b831d1985705d73ae0d1c4540d8e74a59649645a13ebac05c9aa5a0ea25ec92d07c406817708fa852875c5f1a4b7b839a58558d0aac06cd46166eacc6ad98b137af6ed6e284f970ee49474e485d10253affec343c93e0040a6c6755b6488caeaba65768505494cf62f56bfcd6408d00654588ad0accd4af00878e12be1cdb7e81b83e3880b1e3fb72e285d5880518080f5d0970c9c1c83a4c795c0aea616033cb57bba9f2af538baaff443da9630da9ccf8582cf2166e495988d52e28e012e86b827d78581cf9fee5d76cc4ede1b1ffb6ae6e6ea5dcef1e6c2ea9786ecce96ef32bc4a961bb958b6c556dd95f39ba1946478021fa905180256c2c9db0e3235c3b1e978d3a23e57c0c8565a00ba084e2322ff1693bc51be178140cf14475cc21e8bb6590cec03222e557c76ee55b8e4769684c64fc0927546b3459671e157408428d8cb3e16882cadb26227ba0a42aac0e41805e15daf7ce1e377975785277cae504dcc4b534550cf44e981fbcda126b08b9f6186042e5ac99a3ccb423c977984b0f792bc69befd4c69b7dac3b66d66a6ea83a4a7821dcc759272fe554e329b1c3faba6313ed7f319b5940d7ab070ed0385f690b0220108019fb1bc52fa1afa708db7693860aedb7439191fa46aabf4e354562135a78f07d9fc8eb38d96f377d4ca57b08677e9c02c3ad771a86dc574dec9bf31a839e72d97da888f9db9e7342b4f2682c5572fa999e61527c4acc4b8b5ac0afbc1d0843246a464c54b9a05de14b310484bbaaddf8f30b513d409b8afdf0c19e0c112222623589ebe53ea35b2f2a5d78877876a16f94dc9471c0c4a4d06af64228d31d9a81bf195a085c690190a51f06ecc3dfe80c16303dc85870b2f0a3d36e8fcb4609949ff8105b1e9ae5c75fbbe708182bd82584acbf3bf2952d96774820db4a092c13f94639b2fe777971d167cb6b562401d4aa5699e257791c42df09d48f06baf6092476cc6da33164fdd79cda958529621a890b2d9c0e12914bc32bbec82dc3c6392b3242807534c34401d20b27f49243e4e24559b301ec0f70b0cc4b224beacc74b68cae8a7ece55f0138dcce414af09fb37152730a3449d8e07aaa0bf8b4e4d7c0dc4a9f89ff6a9e90f500742242c8e08daf75cd665aaed553706f059fcad187a828aef7bfec5025df63cd37e5cb69fa3e95f4df87289200f3c83f5940b27533e8c921ee15d1a301cd9db461d6a48fdf9d0f01d162afdfbfbb4c59fd350654612ba35b5801def32cc9536a6e877c7f1234bdae30a21092998222db3658b1db4c85ba3ccf21a0acf826ec5f7a36e9df6c2729d284e0663d91105eed769a53c96102f8062aeda67268de1296fa00496b4c8f45867d4a454966cdf70f66f788e0c1081a386775637b891c230b28448370487703bf740256c7e6252610feadd237a45f975a5193e043b0984734c709f7e78dce6611911777150bca08691d144863191bdf2a169d151f9337619077635e355b95615155dbd8b598151cf99410fd7f4b749031a00b0f04c3cf6e0f49c9559de86e8d58687c010662aeb646edf77a02780fd25744c33e5adbb0d42559e58314224f36fca051f51b14502f55000850a68ff16fdd13d2b6af73392c9fd03c97096fd806056c18eaae12fcf14f3d1e896f40b408251d3249960316badf5619585974b8c0341cf4a2dd23cd074b8f7d9768d6ef6684fa5bbfce5a72cd321c925e2cc9e554b946e30daba3a1dc97e1d27e4d286f42f0d82106b6a79ac5b17da06aae6b3a1b71f20dd5f89b7dc7ae77d5be19143d1cc8785804924af9a63ad9edc26a9634e7e2c85795b41c1480995e7b88d6f7ddacb24a169f9452b5b75d4e4ae44b0dff6e537a10b625e02d16220027381c23f8dec0f045a870e82bbe86d42735eef5663dbd0c29168bdc4b9495b36b4045eb5219429aff2d80663e40feeded762375d5dd59b8c6e553e896df0a41c9d8d290d670c85c891f9e1cb56c6ae03b2943eeca60d2f3c97129074e8198e8d035116bbc798bb21b397a8fbe915105b8b9e7bd2486dc7688e5d6636c10f6a11e80b802c08a278508a412c02bd0804f116805214d6ec7e0fc952ae11d6d905df738fb4d3ec19c969f71926f8402c1e44015005415f00421188053788b7009422b0a6fb05bae215890e881b7ec409f3e34f7cda58f03197fbf9ae94e9b44a464672f8dea6f0665542b02c941d3e6ca0784310443993e8f38d62c0bdbbd4ce8f75ed3d760e408664e4ab29dedc7edeb085d5468ea89a95a2066bc26f0c51bbb1f7c0f088bbe0bbcd42bb356133d38ae607e93294b81cd8984cecfa2bd4dada001f2ce7ea3fe2a3282088c203c5c6cd12cd0ecf91b836afbd81100882020ad6105eca51b9b0db3e73d823a8e19850b7cfd2b59813f6089503638c3484ce831cc131e41cf5e54c0fa332d49bdfbbe5746df5e98cb30a26c692a5050df1a5174ee4d090f1d96d20d278fcad207bed8b30b9e4b01be0e81b7afcf00f9d28d2547849f9f8efc6705ef7a9cda7378d23392e48d5f72ac5a063c4735497ccb9b6e460b040a037f30ceebf6afd590337ea239a51cf2fe4b407fe849ff36b68d30bfd954cf8e92fe26be7a16419fab44cfd8aedff5e9bd1927ea07ad018bf90b64f9001677cfb7f3451145c5e243433f2e16594beaf0a3e15097dfc143218222a4c545ee8789b22f8ac4b9f5ec06d3fb33282a78f21b1663b706f78128f61caacc34f18e0e58c24cce2bcec39c984b9ee9d86aa4c3882190f11e4739e11d1562fb9b09b83b0cca33ee5ad2ee0b31c04e20ddecb1ea96390888b13966bcc08a63160a3a5e260ecfe56f89a8e41774256ac041f710768290524a58ff9d5c9fc7adad0ba6ff0716699c846ee1e6e91a92a71b05754903dc452363ec0dbbab072074e5f1807ad38fccfbd4efab573dbaa48d044a509b11c2c2dc063029c663681f627b785f394c4e49544036c05aecf4a3db474e69bd010ca6e69b6a76dce58cdb0d1ae2b271e92fd0321955920f96d6c2a19e12bed7508a97ec5019143cc8a4fb3c9601d9e892126df2b7cac0f3d97f6305b2bf857ca627d440b14931fb4e5cb08574b2dc91bd264e6953983b4cab24a96c316b34c59d78de3a95bda8470dfeefce08d682466089e534883f408c1346fb2dd5eb49d12e0f2f5ecca96087beed7ef9c70f0e3223a8a3eb3fde952bb52a9496cb6a0072dcd1d32fa67b363e990dfd5d4415c4616a9c43fe0df50d6f787041c65c485105d66e96509f7454dec9039538a3e37bbca37543618653835fa0b9a089f14ca7a04708d5129565d54083979a620d8ff3b10fc284ea1d612fd9003f896f0b988c50f04e2a7b6936b38b817632103b056928978590d192b075eadeb9a88ac956b38907cea98c3196adcdcdad4aada4ef7087d2b8d9a678dc4d6ce2bd7a844c89684b45452abbfc68cb864acf55db04ffd90a35ca39393a0cb791b1cc8270e1a8f0f9282ebe41af9fb5643b414363537e5629ec0cef4748336eb0b5031b747aa3f4f087ed3289a0a44a27513110f7a0326873f54c513ad4af21081b3a832b41780b807863efa46b482f641ae08f0ee6c1c0a9fe09c8e1594d6f8c25fac8012848c7097e328ae890978eb78e8fc23af830ab2dbde7a43e1a8cf090ff3830033eeb50d625c0695f6f65b3c4a600a1483265a911288ceeecd424ee9c976a5d381b5b9893421174119a29ccf0d6348c11aa006c60d551e02a2601219d6acf0b291b7953e20b6974266648370078d82609a0b1f160c499178490edf50e5e45eb0373ae11f0b4817cfe3e46eaaf00c59f2244586f415b307ddede07e60913aae3132db529cf4b409942041ee7889ab6f72c4436f0704484196a5e623aab6a26c29be5f3dc029e598e1f3931783d451b30378ea6bc6130c465b4d46557d653285e406af9aefc5cb82bf70eb6c4fc2df642c5e0e609176b75f6009d45d69808e8c4c48f4382cef9a39543a9838e7a035ea8efc5b2fb164f75d52a6245bc0b282174ea1eb6e1225d70c746684d7df2c483ae71d507f9373c23e8bdb645a2a2d7b7f26e00025b92ce20827e40818d0438fbd164a7d513c0fefed8d3bb851922e08127bcf0b578634ec5239bb60f7ab123632c406e0cd698ee66ab79b31d5e52b7209b941aa942386b8f26c08e5bc2ecfe12d81406486bc3d44960f18c934fb2c867c8aa1cbf8e0100636b8dbe6040414aab116b23cc657544591d76f6d87c0abc4112bf3bdcc8e5e2aafc3c859dfd8d98f19891bf5e03cb37a94873627daf98dbf71e23d230d54a444787764f9153b80c4a8b0caa50b620a8adf4bdd9b6231c820fb5ba64a0e19cb8baf8ce36320e2f63ff9a43e464c5c9f019121c2c86a1aa29977fc4e180ccfb4407393504e7a0e00f94222be51a35ac811f5536c245aa32e50e179ee0fa039381c4b0bbb1ad8ac2b13f6746f9a5fd0196dc21842e232dd26c7d6a1da23ee9921b03c0bda6eebfc7a07cdd9e07c1ccf8f3d2986b760ad26d31b8ec34b40466a10f6eb73f31f38ffa2b49199d0f8ebce85809f766a3eccfad89aac6369b6d8c8a3d280d068869b33db2d346757f24fe6ba2cacdcc06bbcd849a48de6aeadb28196f8224649c778dbb03535996a03bc33e9def0d364249859ffd5300f294d4071cd2bc6ed985f3ecd293a17a729bc2f41b4bd6f850cb94d13a7a39b10fd5eb30aab198eaad01080ad97ee312bd9d70a3f4d7ffcb9f738453f1e3063cba70af24cc4d58c89f208f115a52a1c94a22899ffb062cabaf42c968ceb13ad060ddefa7d82daace063bf39bf28b82ddfd34e35b43a7ea86dfcd70d2f2fd200a0b516e1362b92cf36d92550c868b122b6d938b968306c6de0a07c3ffec26817345e8508ca4eee5dd21574bb7eb7d12838d7c5ad59e841a0b4e5cb795c0fc59db8953ba8dedaa7e752a9405166f0cfa77ff13a833c0760fe18cfeb50ba3ba0eaa7af8e0d5576fbdd2446f9c207ff311088c03dd9a4e12a13fea0217432d8430cce1c047670ecf0ed4e4d7d99b8393b2d2c6ed23ed837aff320c70b64151c724585e21a24a0647f2cecee54c71d06058ff1e3db22c76a2e5c826f0bea4b51ebb59574d8d3e0e22dbe5091568dec25edc226f7946919a7d9675a7f1fee7d51c9ecb4827a8266897eec4d5c12eb40924c1d2eda7482a86e871e727b833197220f68cbac23e0234e3378e5e3c78c2460112a3baca85568c1cbba36e9e74c97bdad69a5ac2fa04f6909f58b1fb94026571e65e2912b4da755f5f39a2b529a62b586f89e941efee5a7aa485aff051390b060bf3186588ceddf500ea2b4c7d6912eb948e9a2e83eb056eb4764085f6e699f291e31594bf1edef2ffe54048ad88c6743c825c2ed56616205fa7b9e7321f09c940df0ff3d3cd8372ef9e29c2bac1bfc1289cfe35f0c1030e1b74fb4bc7990a79a574b47e6f4b2a03cdae04bade579c393f11c3d768b627cb0daba52b5c8f3f97fdff6220666223d7844fd5ee7ba77abe84b55beddeaff7c5ec5da01701607f5bf4fa21002dc87f2c1a725438a1d49f2613fdc6b0a8afc94163e50fec03bab9df3e66e0b4d02d2a788ab2e17928e4fac079c68098cc361cf746a83f88818cb67bea0e7fc47e31128157cd13b4ab1cb113ddb053db2b513fc1414687c01378858d14c3cc8078f06e21306e2f423a7393767b431789a916b0282013f07d1607347773eb7146baf7f7f216870f043d000b0b16f9935b039f30c881f53b68390422c6774d35d906703a3c86b43dcb4bcb0acd906252ec64ea0ca106e8f374a1a01d593ac9ff1875d0964e429ef9d19c6eaf76139999cf7d1dca58a65a3cf2dcdd15363d19670fa94225aebc16eb90b37df6b56f7f630dfa5f599813762153f5e8230e9fbf82aabc73b303a0c41ccdebbd26d227e274654661ed964d5643b236efe435e1c603511a0533f1087a8a05155f6b6091ad825f9164b9def082d1aaad6257648aa228b47b2896c4c702129a46c575667e689c11f43b94525c5c942ff992f5d7a87b38d2957dd3185ca7cd4795be938f07ae0896d3bc48b9fb4519ed92a2cabdda11598323556dc25bbc57a593a420e54bc04b86a56147bc4c214858e08ec6d895c5a7bf7eb4a8caa9f7fd358455691292d713eba235a2b018c6b6af1cb244f8cfe79c9023064b43fdc4a0c91d9023464716bec80dbf60f352db3f0831c81883a9a39e1c3538f6c0192cb0ef8d25facbe7672fb8766bcd528a5423ef5b9f4b2cfb23082de9db6950d90b4b7c88c750abd9438c7ec01a8406eaf5c008acffc5f7a40e91b370772534e2ed236b79186119ba06d58caaaaaad107874f70fa41b098ff9f9a74752013c2950cd2cda1c16361729e270edae9b84b967a24d665137a1f742af0ab640bc6b8e2825d9b107c02e512b5757452f73b2b2621ab101e650083d836a0f10f9b67a3853c4294d216409ebecfc4c6b889acf858e5203e727f9bafe65ac31485c6f193d5ebdf714c726d62adc3ffbd349704039b18a614211452fe91d70a7b71ec1adc45cfc0991c8dca82f7a0b7a3b24d161592a9f97aa2dec04b47d9d162c89ed64241c17628cd081746167b4235a8af7b1b01f989889c45000324f75cc21bc604fd0bfab72aa11b5b2cad839dc77631836981802be5242908ab1c83d22dfb4e40d87065404cf1f7ccedbb9b3dab3314620e244666574c928f5aa2025079128474d18d91ddc81bfcb229b97e970f008b24b8d6d01289aedc1d976b49a37ead56ccbde6c834a0d23862941568f2780c8871bb89023c208dbf42128f9fb3905c17226c2c890bf4ea609b3bb839ac23938f5130cf60845885c7a3ee24f5abe9776bfffc8f6662a6c69009296c0bc5895ef447576cd96c093c824b50e9c1cafd02b4d3783796c48641e648d645d4cadc4659761782482ea7bafb8433a6b6ff47a6f7ae336cd768dddeea88102c9c7a2533568c448b6d372d63cd2b752fee5c7cfb614a5510b3b31e94f5c6e5a46b08f5160d81c04ce3728d671afe23c8256cd974a92417c190c00ff5789e69d800b3844b75f6b405c550ee3f446719c4989ddcd6c34cc5b21078b99cd1998a4d544891d943a619dfad16d3b91912917d53e57d3fe0cd362c730f0b0d6f060bc6920b338a7db8e95a962b3784bf2d90ec3c37d4967c013d6456513295b227a2ba1a407eae7ec87ecdc0632f82e263f5f46b4f9fb9a085d701784392d3ffcb8877b7610483b3444c518573a5d3d83d5cc9d4852f1109b35e04ba8b8cbae0235c1badedb34151ff5c3ed5553fc080eca6d35d038c503486b1f2ac71dd2538eeb6432444ce114d04f5d31b2af6586423bbf8833d5b5f7bd0d0557a4e2b82a06083e14455e19a7d05879000bf7c2528f64d8eed831d84cc1a22a6cc9d03da7eadd199a09e801f27f81951791691697c6f687b3eda0b3c852ee68090c32e2eeff0c7f61220122c11a37c2dc7229e89645c6b09f89e8dcf8c1e1aa70dad3ce0572bacefd0e7825571bc9b2620e21ec111aa707dd6c5c9e5e0aa535f4429f0596fe415694ee6bcead24eb8f4a967167545922dc45cc99706f703707d52dcac565dde25e58b962b23259505b8886376d3cf15c2480c28dbc5a703a0ba4c181f5f74aaefb4b54d1d5cf9707d9305402eff681814ccb8751ddd5c5fd409892f4b1539b397aff3576865d360bedc5f0c1aa8dccef64428102b8ac3062c008e4b2f96785672e81346d8386b09ef65d43d2838c89ed6e782a2fc997430b16540d89ed0a6bc1c2adce169db9658340fbf85c43f2b2dff3c4d7953d61b99bea678279f476d06dc10dca552ac4eb6ef4758e4e8ce3b8b56f936871cde50f62bc3b20edd33de9191921a5f89271124e73596e185d70a194c8c5681d34d4127af3ca97dde2b7015eebf7a84b0a4892054bd88c6916c004f206a699762ae71ae8410ba2a622688e0ebd5de9a1a12e35dc7a498881f583fc239364029a2df28ad88933ba63bb85c174412e9a1c71ea0f7c4e9617b57532a31556f646a0cf24d446efd641f05682f0eed90a27ca5c2f9a9368e1b5a6ed1d512673b1ccf3e30f533d3c8395d9fff96746077bb6de55a0018ba853afc17bc11077676de8083009f677d846eae130bac6b15f05ad473e3a5b010215780ccf587f40e0e1742472b843911ba5f374f0563e18cb72409d707063113e39e2a703c9af8dd11b896393b27431764a756cfe5bec793adc244129f922ed5103c1053b71247bb6852336df8a46e749280e365b7c606a7c827b1c1fa17a8f816577408b5aea5d211d94926abffa02eef1dff08ada5fc980240f4967a14c9fea56fa588e948ed8d5f8803ce79a56f2f9b912462295ea8a0f10babe1e3d003f8f3d630d864694343546bc62efe61e933ec6a1cd5e104e69278c0974f78bef9559ad152ec999c529a186740a0d32c396a9731e0417be23be67f20084921ffb8e1cc2b432ac20ec653d6fa9d8402a8619c13b12df24bdd9699deb7b978d33191d7acae7596a84c811620cf4efb29448f3ba2bc25e6e47d7a53276af9f7ed2e3b7638cd61c5d5585071f0800be39628de17c88cee9e3d3b104a6dc9c37a131961ace0c793b5ebc6ba9a7b05d5e921df3501e27f6f19e6f62590ea51985c281c3d7ed6f92b9790ce445f1054623adabbf2eef4efa2e02f489f2de61480cb79805a7b24fb4b9bd1e52f6ab255be4b5ac95966e3109421eb9e319c256380b145bfe41f8a7084b3dde05b0506d2766ef2f95a9395caf1b58de2497a277df72ae087acdb5205e62d97cc5bac5adc9ebb8eeb18db3485cd0d6368be1fac6a81b79e819a9a9b02ca53e48a43c20c8451e73817e6679b2809eb2c12cb5bfe76aef44a0e2e947213036ae6fa303c56b7c4ea6a56f2ee68774ef84473b560484c9986b29420b9d02963340db06b6dc958bbe405d79008ba12d73fd1e642465327943db0ddbc375843fdfa3e74e8d8cc8347c9365f131427326cabc0af1f0a84f6525bfbc2dd43d9c0f8c19ca5d127b836580ec83f2221ed00ee33fc957be57514d2367bb07334d0de5ffeb843913e857b74294631271cb1b4b09c79983da6b834bd72c8862136990151fb875b28a7162a987fc1ea2470dbbf12b457f87ede4326294eef61bffe55a90c3375862ed9bab46902ea4ef9b8db8f18c525bbcc2550b355e7eea5994928dbcff88ab8a35265c5ae07bc2d7ac074fd840c3257768abc702e4fe2ad0998f218d20bf471b152ed95ae1b7d7df8723f9dd8dbc2f5092b94286e2e040607e0ddbc980d6e39886fbab42d799078716e109407ad2e2174ac52afd788e334c177982047360cdb7693f19106c1f608528cc13fae4e93c65f58414cc7d9a00752e1182b4d0c988dfaf44b7321745af0eabac74afb6ce977207c2e7e5408bbd90b821f8fb24481e6f191511c236f9240fadec12c3141c147772683cf4025e50f06b479873425635c4d89f2b3b67ee012f8978140f4cac961ea5db842ef0542945148f5c5da49dae87de75edb547dcab1b0dcd759eeb9d43d6a47e09f87c43dee12301e2fa92b684949d9da40c3a90c2b61380752a77c5d1db3548a7d211323df0a319121c12010b8918a63ad98b390a3fd39a0876afabb3c02266e717cf5c177b9d9140e70d0a06b9d9c094f71f1b06136e012a9de784dbf9639aeab4a2b8388ba9aa7f97d2d600708731f05da39003195ca688e211161f3066fd4a031c50d0dd400b5761a99d0a81d4f6200fcd6ca6a949d02ad574a5ccdceb7047a7c73ede2673ce260395a44d064a45341775c19a316bff61962c87c8980274f911b14f6748d8f70004f46773f9744268cf3825793522ca622190039d968de6fb39b6f5ccd839d4df2e8b7df4e3d47879e30bdfe77452f05a3d126d87fb5e560d9f108872266377e2b09288dca5a1f16dfa41a5e9be9ccb9942c8004e26a970f887a4f8ed902dc39112f565b78614a692dc8c6657bbc2e5f2810a15aeee4861bb3f02ffadc5cde0d14085076b9772b37a653adf14c6b2c7dd28fe1e511807a7fc35805edb17477ce9c10815136954fa2adb7d97cf8fa0418c67719fe1075cba069b449fe408eb2bb7daf0a1a142950056e94530819415c56ac50a593120f85f09907546320debe1f81928d1b60282868353e5e9fb61954ed476265b5cc51d42cef7bec378fc6ef31cea0982aad22d42e64f82e856f9f4c0546d2bf25ab6228597f422adb677395bb5d9fef2424ed501df7b909250c250b0f3beb10ef6e7cfd4e8fddf3e254e07427bbe93040e83f7e0cc3b5190d4beae8a72cafcd990a46602f86ef8120c42bd70d1ee3c4b6e9f0db5f98a756d017ecf2e2bd6c2acce6a126976a3d0c6efab0c4fdbb481ca3d4971ecc5d5765b80f1bbc441b9d086eaa0c904453c612309c52bb13e306eb9b40f58af45d3ff2ab610134371f41216514d0b3b6f1fd8f380620d8e996e79e4c9daf506b0bbe0d2052596ae74685a55d1138ba546abc679f1b04e260efe66f4ad1879cd92c9fe029291d2023714eaeab89905e2251f15e0e8488cd0e182b901e78c4606dcb6933e5a7cdad3850f74e04a2ac636026c43f4af187bb04dce1f87e1abaacf13a6632635a3702dc70532dc06424ccdfa62fd4f1cc9577df88dbc14893894bea032858431a06c8034805b18c3ebedee74c7c965588fb81a2a0459d6272b6336b6221ec81801ac3e5f649996366263a0a42c219804467ce2d03f63e91cfb5fa1a0d3de86c0f82f7b8445cc5e81dd19e4b0bb81156bb42e3e278a86b64b714a9aace8a5ea1771a59cb59db11aa3ebd05d14e70af96170eea58e1e8acc34f9cc1d4c890b10974b8c9140f66b00c0c821df023a24fdf8170cc7cad4d06294a69fe82d429d0b44d8adf0224353ce35a60d9627f23539413b6ff2c501e9fe4fa79e587a3dbf9e4fb70a60b84f79cca2c5d80f5e87863563d8ead40dd5583acf2e6e22bded7cd6a79328344ffff570c8a908f112477e7dc330c8e48e8c8a39de9a11b236308394b344f6b2fcfb814431485ffafcb0d470a0124934b620e727d4a4fe8eef90b196e9729b016e0ae7889cba4198f5f162280a86937e4406c804483ddabb03e1476511266e3c76008f7afcbeb65bc5c537802d8648eb63124f610f188af45e0426f8b5f0d7e046531c9b3bd26198f03e51bfba2e240b207463edf539e57cf5752f902772e59d01e2ce6b17df9af3a9fa04d5c40b1901caa07d7582da3db12ae832229cbb091d075100ac8faf37323ea4e008d709e4bdca5a07383fa8f2fe725d0da4f1f000b1dfd4591e26564e2b72857030125f173c4016182006e8ce00ea6bdac7686f582f8bdea2f9dbd8d5af0638cf2fb2ce042420019318ccca7e4faa8b0cf070b158844298e4618948e5e5e8798c1c53711baecb420394894b27d72512255cae4b05e7947ff440b7550de73d93a9b2bab3d78221fbdb7c0c657e32a42d98a61682eb96eb28d0ad622ca25549ce21a46c638802d5ae58e60b485bc362b8c295d58abf136d864cc67a6f8dafe0c9f2ef12fa9613229d72d8e4928f08f1c7df9f095c3148f1ae8e4c06573e49e97583f4ad862c24deabed7e7047ca9cbdb0110a04cd0634f985d19eb4344ebf7afbdb3a1872697557e7cfebb82eb8bcbcf0e93c2c4dba0558147b956cb82a7b42f5bcc70adf0a9673f074e1ae88fc825f0834574d970ca43bd373d36d47f0e81646b9e6eefd4ce794d22a2477729c54eae0b949c1613352bc70ebd1990133003ab9a17c8d22121ca519dd6c338fea6c4566659562abb0320880c79d3b2f7b5405ac653bb8c28823b207dc4039f43d7754693b84e796184523a1c5d7484b71b58a99b4c3916881edd699e36635fc1de786afb62a473a155bc53db67e032f85bc96f5302e35516c8ab69a55ce7d5a7e168ab84ef1e1be3eaddaae3178f78f78b8307fa8a12490e7e170b226548a522ebadc3819b695287cf757f791bf43a01d1daa90fceb870107cd117e648df6fee77f06bdb228c2157917948c70afbf0f1f2311ae0360b1f32e78a2647bff3ab8b776ecaff39826547116fcd5db9aff2e8386f65d2a182f8d57682617af8e13f815707770f72eb85538b978f562da81ed8ad08e16d6279647b5694446113d83c3ac09c4ca89aafc79d9bab1f43bd957a12b4b9b0d07fa773858fc194801e88109b873d184d30691c8352fe1d0e0f064b0dc83b8634da197a18e9e7c89d7c7e97ef81f495cdfcf131710fa547e670790d4d846271a0ad2a41e876ffd30d6f89e502d1c40b1c9caaac701b76e41720c839592363b876f958c4e18c9995691038eb6c5d7f0b2f2e8971b8a939ef72fbc9a5bf901738505b17c2b747303b2eea32fea752914ae03b7c1a9bcc3a318d23903137e0d8b2d31fe02a1c1ff80f7d0da8aa43d9e4daf5d27c8325450c24a4f8a8836dae6f44a9633f207de22d89587f6056f804eb352082b6e0c6d5bcaf09239cdc0c4ea88a39728d09391dfb7603c21ccf7c4b6793886f53344f6691dc1a3d4282a18dda149ce63bdfd3f3253401702266ed3ebda6b70fb1848e14ab970166515f9ecfd38f8b47e28aab4ce760fe18666c80119380967a1753b439c99cd738da45921ef5a2a2c30c9216a14ffe368a3ef59eedb1324c7654302952447c069411fcd0e6fcca93e580f748320a30ad9f4950abd984dcd8b3c2eb73f01f4b5021ae455625c308ec24a07fa7aed25ce245a88bed652463782fa0086a2ef2e841e2c588dfe5a71f4e8ffe5d1342aceb7b03789080c07058002208cd474dd258b3e57cf4589982d8f57845eba411771f230048deb6fdbff9290bdf7de524a99a494325a0612069f0574fe0646666b7230e6fd9f4ef95bba70b93273985666d27432994c233568ba8401b3258b937442bd1a9148338c0e8f5d74c4273927a5ee15638c1fd41a000060b1022000178000e89402c036375de77938383900c029fa7252ea5eabbd5eadbd17632cf32ca35366d9c51896659ab67199b66d1c974a652ea552e56c6373d379d7d129bb2edbdcdc749de7e1e4784e0e9d322707274747e7fb5ab4d859f96a45a75cadbc8d82399c0db97574360a7e9c0db915305bb40567436e9eb8e33b3b74ca9d1d2cf5c517f33f9ca2df0991e36cd18829edb22730e545e40b0a727c1531dae11785b5cfd85a0c44c240f833f048480c20fc481848ab9afe19340331d0c15084ed35c6eaf83f80f98fd3a96b8c3d24fe0f3186613b6bd40b29eaa8fb21c71791a71711a317912d2f24233a505a3b1d5ce26befb536642a040d79eef81a02440a5e43b66cfa2e5cf835c4871dbe8b42f10a41d42b044170b8c14ade767c0dd1a163ca590d5432b7e36b080c55f2b7e36b8890ae29a7767c0941d3d590f38e2f2161760d215f70780561c12b881729be29187f1f4b8a3b8b559d689a205b82a8601e197984628904b2055b6b6d1027b427626badb5d6febdf79a10a6d630212a5720462f20416cbd40eebd189a9709587433d02e4a8da3272850a04c284e9c50279f0c187f1f2b067716ab6bf232dab286890e8657088098f0e465740591ee49d7e465f465e31d5f465db0505233c5d50275dab180317661cdd30eff5b6bb6d09eb8abd3165a393b6ac922882cb4ecf05d42b20ad9be7c26b3276e2c0b28b327ee1067234c5ab22041b742996f09e3ef5b32953a14d42ca561ea52484305489a2847696200d221e950d09246c9be3b6a49638495c49dc5ea926877e40a353b22b1a3962ba0ccd5bcde9430f0d7771103f3842cd7ae0ad835cf9e79ed9384dad1b538b3a097d27b6326fb8e5ad00cd98f351a20649cd2cf684cd8f4bdef5956cd0edf255988d81acc9359e080939a1aae60a18a295156f080828d756875fef0951b568231c632d8d88c0b1b9b91b2f1b551f9cc0b7698df5f80b3b0d7da2e48a694325a7b66886dadb53732c8a91db59c31c1762d677038d384450ba538d53f9ae23709f1e0117fea0d6cf93f66919c35343c7fa694724a39a50c02d35c9cb004122b8e7849830511206a668a3558184a29a55a155136045815585441858b334cf28c0a3befa8e54c9028be2a30febe3254acc19e10b140a94c0c8e68c972858a325065ce44615150c99ab062066bf01151180be2decb21895470d9418c131b7460819aa83255ca60894a9571a10c95a8d6b3a420428b1558aae842c514376be855e1de5bb443932938c880080b32600274c9ecfb19481921519d91b7a3162b92d8da8e5aac10c29ff2170ac38689da12c83e59edc31a75b168be20c9a42948ae0f6338f8b4c73e5570b5c3077efffa443ff40ffb0e1235e1f727fa61ff3ed63fec5f7fcf5f07d4684e992dc9b4e54f59ed58edf0b7ef6f35a82f144d4649ef6f41a9c8e958cdc7a8cd531f977ea771af519d03e76d2e6713467e17456d3a7f1cff9ccbbda661d388bb5d269a2d3f3591a693993497340af6a8cf69d8e63177ffe66fb48fee2ff6da4720ef6f6c82babf796e6965dffb2220ad823de6ef20d27610719f3ffb1128b0a2aaa7c08a7eea2350f69ae4826c1ebfe482babf9fe3086f8fffea957f8e961d1aa395eb1cf271b4150f5c59e95441b9331509728f30428f084420fcf37b442002753f7f84a0d58eec55afd23eb4cf3e02ad8082563b543eb8577d045a4d9de3e63b9bbfaf496e8716c4fdfd19b30323edb9019d56533bca5eb5430be25ef51eb47df6910bca3aea15fdd4d38314d35df0d43922edf9918beac4586871c6cea89201829959da64ec47ade0724d87aa2d267bcea9254a69cf39e7d412c534b5905932e7dbea5094e707a9458c1a8945c617464803c8041c4126091299138e001066734d80c147910931604860858a1c5c60844e21460562925802d723349c00650435e60447440084c788c122c68725ae15636563313b6c7ced12b63a6d41eb59504530c15c90ed8bc8cc9f67a17a3881091d846050535668811827617270011492094c401501c2440ba050803aa234059a314c637288d5dddddddd3d4affaa85fc290945db3fc49f598defb5b65677baed0dfb9916b21fd627a168dbaf12bb6922cf4cc831e668608eddc02f75883128641f03fddf2597178c5d2ed613ee2c9613538af122664c155a9c2c967f9fcbd5251958b5169f8195037130b0daf9429c698bd7b4edde7b412195b66d3a2fafb63994f4807b793fdc7438b7ea351dce7d43d7b6d15a6bed6b00f270aaee431e3e210f1fdb69a1fbaab7dfc922a21fb4863eb6fdaae9bb9a1bfad2cdec50ee1bc27d3a546f7eee9baf60e8517b2671e59e10dcf55b441825d44f5af1affa26e4e113562d64ffe6eb8743b34e34add6cd87321cd2a19720ad509cb52d05824a470fcdeeebcf279d5fed7c39fac66fd0b76fed98ea511eb5abfd9b57d98a5f477b3aa57354fa49fea43a1fbaf68ef6be85fd146783ca4f3d472db6af69fce93056be8e0e5d38a0477548429143458e46edeceeac95f6e5be993e461ac03e36834a9d192d0a433e6d1fea64152bcac03bfe07f3e76dc0b0c290567c8b4e320cedf197fa896ae7d160030ebe04da53350f9f6f71f01b8091f6680046da83afa4db53950d186e2f31cef9fb6ad5e1a6431e3e9b4bb56ddaa1a401e4df12eef7b55a25d01ea73a3a5787396b2b0ec5c3676f1ff2f0d9aa4f7de8da3e749bc12fbe908f391bdb0ba974282f17c2b6b72f81c268117ba8f49e3cb1cfbe9fd29c43490f36878a72a869a47f30c13bc1e515c1d8e58a51bee021b987a405262c58f18e1cb5c0e411f190bc96bc6cdff1c50293b4f1ce82913d9fe5c2813ce57c6988a52d31ba28a59456205bdfd2fcf3bd14e44929f50f9dce3964e98ad3f6f7260c09e4ff5be6c7a89948289ad301455bbe1f7929c8f4671309f5c3aa3bc0c176eab2c872fbb0a27c9ab73c5b346f8ab31402e0c0c4088a0e539ca9224a21850f2fc8b004054a4d50248450e208a326171051a4f4f4c496147610010f2b287201861964c1458809546090409122988c3cd1040f5720a145966b87ce92b315b2766bfbe645181105668c2c61450c9e94a002683e4f84f15f4e40626488234574004a224d874507f55a224393344b60d8f4bd0f5bb2b4c377e115a02c41da61c4b2e7372047963db9c433398c5f3040ebcf3062330d982d2b72f84f277da7d386ecacc8734ec7c2aac29dc572c9c0e52ad36161ad5521866dad8d4a73b3e34b85a41de65fc2d808c6189ba04402251fa4c49952154c6986acb4424a096953a2a6dbf1a584451625cd2b85a3170a2b746a3e3018638c57272831819225b412262c345787053843dc9c1deebd375038204b5e29287554a4792911a10426c5a4d597586738c319ce7086b31913839f615a087f944f42d1c6d3a3b3ce774a2709455bc81f93d9bdd6d6ea4ee99cd77d847bc35a31795bd02618027d493f8d82429e39fa135cdda8a1d442f3e917eda22d391ad4c195fca24dc110a6107d50c8ffa9fbccc2e57213902143663a99da45512185843ed8bfc89282bd8c1c0e0e7eae13ed5a33f70905ee6290e715dd2b69c89024514b9a7825e9b2d435e14952a0646a91214691c39cbd8f074b52938404ccbdd70ef110bc5030d231d145b1c18eaf24529234a93eb3456b747dc971525bdd5dd26e8a1cbfd65a6998ef098cbfcfd57971b9589d13ee2cd6ecc6c829854f8f4bee72754b28f13a92e675242a478d5afad67ed1d6ea56c1b8391036ae33224fe98176eb365b4664df35cac05feddfa7384070b91bbe85ecd7afd4254dd5aa47a01beb7bc33e0df39518e98c61487d3ff265fb53cd7dfe789d5f759cd1a501e217513959d8b091310ab04fd7bc8c1cadd9e64f84917fa4a5d96704e26ad0b759c8adf6d971a15780d8e2ee34bebbbbd7b8f90e29754abd2b81bb3b757777ea4eab6793bdce29f50ecbec82c852b2ba1e220683afbb82f1f7b13a12b8b358b3da8b311c67b517df38abbd36da1ac3ccead1098db43269189dd078ec5490e54777ea4e8bb0c4c6743d743d743d743d7426a822bb111c799df0d4ede057b2647915c9411291c37f56cbc5094eaf225c867865bce3ab480d2928328508fc2a92b48bc410a53ded78c85a88fefc89fbca962c4edd6bb5f662c7984e893156adbd1763ec628c619986b12cd3b46de3529e4ad12953294cdb368e4ba5541b974aa95439dba841d3654b963060b664b1584a95afd8d86cd9f36fb2dcd0297b7e47a178ee79744a8f3a891a33c3a8c99bcdcd4dd7795ee779383839393ade869393a3a3f37d2d72369def6bd1626767c5e33c3c744a1eda626767b5e2e1d16003df60033ae5063bdb8a87f268a0c11639643cab7b8db4861c661efad56d1a2bf183f9e39e3329a5b42e6411a058914189abd180d9528a2f36c7dc873895d2119483cb41617cdfd396fa039c3f4c87df6ab9acb5318a768c2f3c18b28726ab907bf80ebffdd1a7ee51d5e91763fe60fc7d56b02d8e2d11c514532c85ead35dc3216a41a81fa91ee26c58a1aab18eb3278d08e0902de1be082ce4f861d196be2988ad08434ec3e7e7d990c3ff9e9ec4c870b46b080ad1f719b3e5ba1165c82dfdef8b06cc968c32a49c766e5b9421250d39868f02b6288304b9ed4ba77f31fe8b31c659f69808d8fd21bbb11e197eec7ee41c707548332ab91af4eb57df7c627c11a6368d1bf145ae46a432c61c9681b17fd51eb3702ac5711cb7811f5f784c191831df92ab61dfe9db3a553f55fa07cb2992eab10dbbdec6309e8de91053a952291d67cbc3d76565c02c4ac99945866197327b96cb6658b35f75e8da6ea5d724df9f98fe0e5d996b4b99655cc5c00db8acd0bc14883dcffcc1ace6cd1fcc65d35fe1c0fe558fc110fb10bfd67d8c2f6e6ec00e0cb1b709b1c76636fd2e0630bb6e3c1c0dfb18c8bdb73d7e19763f3f04fa9dd652dbe468d89bec6fc095fdd4c79d1f03553f3f832b1cf5555f5fa557f65738529f7deab3cfb09fef451ea14de7d9924299f67458b42b37a9135f0bdf17e3949308cd064896369265e99c73da6aadb59ac57af23e567d8ab1c6aab1cb9fac1db5d07cf938fe042a427b3d01b3ef8eaf274ebc9e0cf1c4ccfe6692275868904d9f306dfa3cdb9cb56acf4a0ebfa699933851b3e3abc9101b013bbe9a406d0c6480b2289ede0f39ce160dc1b5eb5073d05b92fdab5725e7d0317fa40772d7b729d264ccf6b7d225524d82dc0e4ea969dc6b2d40ff0ff4ef400ae230d9f75738e8dfa73ac47ef597c6ce3b18370543fa3931bec04fc190d2cf58f66dc2b4b7cd7234769e823aefa02ac61721605487450edec7790cc4f91b5068fb9bcfdf75ef81ab9d8ffbc374b5f32d3e6e6dfbd56fbfd2ab1d5da3687bbfc2d1e26dbec5dbe400228190623c00cfd7a02d40ef3fd07b1d304c3df639a0d0cdc7add1cd410c4787db631ed86916a63df56f4021ec6d74cec018a0504a6f9bae711fd30eae6a64ef4fb50cd4b4cfa236f64376673db42f9b6a8d7e867de41c40ffd5c4cbbef6b5c939a0e804d85f8a6b60ed3fb9547ce12a329f5575e6f5a2c5a961ea1bb681e1ef0dd3b2ec2f8fd5df6c794cb2a43a1765721e612e168caec6ab598e06e674cf77894ded9aadd695767b94517394e1db3a9e3cb3e54d183cb3877af3c7ad6cf298720fdff4b9df400c0c45d8586adb736a1994dbc662da4ff0fe667d6bef9c0dedd778b345e7f4216a033f9e168c1789ef8bb1d7c0c67fa7efb97119a58f53d6da59ff6290c7b7ed9478b6f20a34fa6e43b2369e31aff7fdd578b6300679b030b7bd76e5955262f8ebef2ac1faf7bea66535f0be31382fae0803c37418b7583086dcf19cf20714e39cbfef3f633f5f32993f53e6d203b87c90c2b7697db713c9c321c7ff60cb92f7429e44b367bed4dfa5a143dfa0b578b624de74c891724b62c490f4fb28a5b352f74a5d096f054a25161f2c511ee5501eb5ab131fe350322929e90503d3ab851c92b6740a8ae2067e7f1bee5041b893fca48db3373f03550e624d7b0c946fb5cfe66baaf7b430ef22a21f41fe944956e4f531fb98679ad9ed6bea3d9c73d7ac37faf76bd559d6972e431f92c90eb5ed7fec0a867407c9771d43a9b469e1d5a14c8a540fcd4d87e6be7a886a9a563f82205cbbba2f5fbbe1f583e68ffc5a53af4ad9fa9aa7743834354f0a391ca25e34ed39ce462837f7fa29f9419a74aaeed537cdeb570df49f416d0cd25e7272b3d26edadbab552fbdf9135dd770a86a5ac8dfca7943d3abfbdbd7af5f37cd93421ea25b6a5f1ffb0cac2fa4e9ec9d0b61db12fb206cadb54c98d9dbb64fff052cbb831d5f2f1ced17132e2f264c2f2660b6b6b7a83d595146fee814b3843cb103ec71007c5210fb46dc10a3a058726289c8114bac2540acb94be45224427a893f2cc125c61269424423c35294a56e0990252196ae5822c0922c4b1e304083254afc9228856c22765972e9a020a593a5c51ac0f7094087867100b20f0b00f9a8c9b5149de9ff9012488b2cc78fa32483f9fe5153b5cfc25f6bad9567b6ea7b58e4f0fb789ed572ca417611d16ac8bdc1eade7bebbdf7de7b2fc65a837a6ff8394d12683c385370a6cca20db69058556da92b57a368fbd3f93326081c8e0b6cbdc12de43f67085467bd82b6cad177a46e918f9abed901e8a9c9f3b71f3c88d2002d1f172d9c1972d86ab970f9c4f868d06ac8ad93e3d56ac89d93298e263f5a31b3e3eb862edb67c75795a71db91b768f8093e30ccdcb2f1ca66c175a7793a1d03bbe7000b2a3065a8cd8c6461626b3156f50b3e5c659ca315cf3478a604b9f2d3d20a9969143bcb104e3a6ef4935ee38a4f4ea53a33e61d0e27cdd90e5a8c9a98c3f3e5bee72d76d44b3d6cb02ec61add552a49582f463ea519c1d509f136f1c2a9452cd63c3a2d9e41c3f5a2db27cba83e1f614e3fc7d5a95e747dab3b2fa7152c8934c8adb72742dcb474df3d3e2fca152e64f8de51f72cad0708eae451c25f9e6fa474dd43fc40ff0368c855de3dadc5b93c36f5356ab5aafd9a546ab21b7679aa3df90c38eaf1bb6ec02ecf8bae168575967ab5e914397cbc77bc82ddfe3eb86305bbe6e303373a43da1ef7065f5b7b7ad94c33cab6832a7341a311f35452de481e2ece0a829ca8f0a98b87bca2024cdf97548452ada9aeadacf3840b0eb4f30ac2e67cc6c6fd828b2528ad1a2cd108a54b4671a1c2959ce9f947f767fc25d7b1c2a3962f920d8d2ebc695fb2086f5a5ca1c0e3a6bad422e65105a64b90d9ead2539c458488bd32b638398bc265731b2533bbe6c48b3e536e79cd45f5598dcecf8aac234e7182dce571527696390a9bd4f6c8f62852469b46c0c89284851881462f024081049668092244d66c29299b69d61880a2f1c8184c949141aae201963c30b521c69020385181b906c6dc7970d40585fdc592c570b5c2e16b893183140c43471610a2305d29228741802480a529028c28d349581424cca888d4111853ae1048b25dd892698a6d4d003134098ae28d104d309987af896f8be2e49249104171abe5091c111494a40c248112e98e1a1c81527d010f5c4e55583d2b63bbe6a40f219f17dae15b85c451451846b08974b0897ebfb3c20e69c544e185d5c6df91e1133a099c1880a8ea42005410415a78dedf8a2328607edfa871f8581f9d87c34e9d8749c2051938e6cdbe66f8fb50ed5534d245fc52344ea4c7beefb639a6adacc791cee739e7ba2261d9e7c771d3a4f35117d1d9d03e7a52672e17c8ec6d14433343735d1d39efb9ebea0ea53e00a02d86faf03fb4d1335e127da7468afbaaf6d9a48049a657a6a2269a493a48e226ad2217f6a22a2261dd94b4d8401da733f7ba2fba9cf2e9b8f40f1cbfc501a751f81ee4d2893521d08b43df736a08fcc47938e4c4b27b4e73ef63e36c92324dbaf9b965668cfbdcf43246b1f444d118840f5ed47204cfba81f814269655f296a768b1d5f5392b616679c2929f567cc6c95c37e042290fd1d12a8fe8c79b590745215cd7967b0511265cc2bca0bf08eaf284fbca2a8919a3f38427cf952f7b891f5f811e48f5d4fb077c2a226db5f42b15d471a747a4fa278d9f2e3e60e70e14fc1b0e82918dea84fb57fd421d18abec7d88a4aa4539097241c149484c1c7b487e5da9bade8f1b450c8f2a3cb45678e5e2c10e434840993fd3bbe5a80c2c876edf87281891d6508284e3bfa186b3d4a524a25a6e5e56c8c81f2280a463ba3ce2ee28b1c49590318e71c26e84babcb3f6d890123ce29b49616a5f5eb7d3ff19c5256afd3dd7da83a8b874e4a65ac30c413e418b325953c0a8820279e1299e41b07525b866d100b480f2a950a6c3a9bd96fde52ce3edc76b6e3f990b7b980f9d472af717ab5637eea23303ff5457b0343bcb7cfc0b0849d3d4e81dadcb46c2bda1938443786c13076b14f8f2ceb37b5f9fa35a5ab4d4a87ae02c3dfaa9f4155a04db76d9b57430e5b3ea9cfbe7e2bcb40ecb395bd0de8cd56f619fcf8227b55f62930cb5e661a03b1de66cb4925e90f19eb30fb7cec69943e681146565dfc9fb4d313410e5dfb0e6dbbeaa1b9dde902f027f163cdca0db0b690fc398347bd9976a8c4cdd754b174866800000000c315002020140a0704e27048244e336dee3d14000b78823e7e543211c662410ea21888821886611084620030801840106306225403129f166f51b1de5a447d255574773b07494ca71e5a74fa46a2d01a8733a958e7c042dcac208c9b041dcd0356b869853756b89640730f2dcead0aa8dca4e86c1db262de5874b891283467e39954631a870729c776371c2428a6438f836463381b9ea41fd3389e496aacabdd99744c73b0c2dd56707491a277eea0026a7712b4360eacf0f75247a2d7d2dee299c431b6791071da196251bb360b7e906d7f92759e7082c0697879d8687a637a8761b05c70beb611377cb9a303afb56e246632f6e62a66ebb3fd205fec9cee33c3c56ffd2f39101ae46e34cc8de7dd69525c843f3d785da4dd0cac8dd1fb693d17967e6c77cae0dcc76bdce4d01b731d8a4a24447e494ddd826233c8295137bcc302f598a7cd26913c6dcc66b073dc33effbcc5d6f0678bc260fd4b27c57b9da6c2afb37389bc8b87d5d15e277edb6b79b28b58047a048287c679703f92d0322a61c5c6876747b33b025c6d3464ab8d0d5a43a4937b606d62f858e902980d0fe23bbc002be6d9adfe0bb28bebe973d61303c3f072baf7b4c829033261e49d598a9cd7439dc2ccc678fa33f1b8c0e7215f3ef779cb0ebee31859727f0aea7362d24eb5b687a63902d6cda2b6f19b82080eb49537220f8ca0787c4d37ab11992d6eab2a2abae6fdbe0c1d5449f896e56c13f21112a800451af998825e166a32fdd2ac21a214805b3fffd5f5ee91e1079eb9ff0ec4c1f1c94b0a881c98475511b052517a4069491688e6a5e51321f0abb31a9e87e30d7b107029f366603f5651076fcb16b4eec06cc7af0dfbec48dcc496035ef992d66cbc4c9961d76db776f75206feb73fedc73bec0e1784c5f3b81c0291d5c8990d78ffd71b6ae4449ab399e2ae24a933f7a0b3f28a88c11bbc8820cf177bd687fe1506e3112346f81e9ff01b93e46356fc154b1c47679b55014dab6fa120b161120d54936a1350df3a171ae302d020b45d8c6f4f7f283942888a0ad5cbd33dfd1cb4ba04fc30c4d5d03c50df098abf7cf5bef0d07020fc93c77541816ba54e3ee7061756cb803b0ab727160cba5d350b46d1770d37d8ce35e9b1b5a179ebdbe63896efb359ccf979d4c32e6467be09be0cbee7a9e74a7f705a38b693d10aafd38c1980c7e96e592d7b96411690b7336dd4775893faf0c08157521c0eaccc74038eaa20f99bd82110a36c725e2b1c788aebc90db69820d6281fbc42d9523866932999e5d864000310a54a77d5223a1c7a15850f10f91e37813bb4619b2a14d2e63699c24407a92bcd569df5fbd5238aec11bba3ebdcf25832972e55ae0b163d504099c4df567bfa796c7af2c870c4e66fd1ca2140d40fa126de598dd9f0afd39903c5b643dcd7dba18b68268e5abcb27ae0a58d22bc0a1e994cee78a19a008b8462cb7b8896ba15d406f6b9caf94c6e40e03be6a0f5bb31a5281a7aade6f6b3f56bafd2115478529339e6dfbaf22db0b8aa0d04ae900fcfabc6c0cc5cece6ba2c2ad95f5912014c4cf71e3776c68f2635c52d3d9c7b3f20d8d7846bd930f390db11dfc129c1fc5d73b2e9d471ee58bc467ae064ab2e682208e8fd7ea1933ca553c24bc453cf86eebd912c9a45da6955f7a60eeb5dc68b6f8e4fe3a045c4b6c498b41a16a8b2f99d82896c1465a55008b0584a0a6b90c55d592c4001f9b07d6e4b97c808d927d6c561b1f0298d497c47b56cdd0c7021f1b8a5b4c909de45dfd0ab480212f96ab7364a38d64ab517bd807be85dd8c3a65d04ce80dc609777b15625c8a78e2ba076f72a5d28ad6dbef2542321146f1d37761cd896d5f138ab9c8a061c9d1173d2d2ff2f6b8503ddc3c51bbb56d6ce560f58ad70287e7ed28e30e4c5c6232ad6156bd74332d6cbb2a7c0be5da16996152b2d567af5c3af3bd8e27fe1554c89b8a9615bca580d04ed0e86b65a8ebbab955899184460ad5e59e0edc96839c051659440762cb481aa337aab17d6844198d79a8a3d6ba4b802c4f26cdbdf7680eff2e879cd34989607bfe075a7755f15eeaafcb7d94e743a5b95f8c26900c86fc3724f9f374e7710e2708ddb3b4f5126f6b6cf9cf47786443279d6a81aebffe6b9bbe10da8c58b8d78eb72ed2ca3020fa78644328298fc6d0bf537677f41792381fcfe6ea09bc3c5faeecf918669cc05ff8d6d42d27f7e240ad22022031f741fd257be29f11190d3cb1b59cbf13edcd428a00dfd946b438e16f8c7697141bf8d745a671c8380c7939d5aa352a1e58d7da7ebe43b99385c5e67d4af31ee115d4125beb2cec53cd8dbf74634acfa89b9c382560e99c4c65027e01bd9610363d635148e2059bba7fa367e7e1869a2a5160940570734f0051a8bd318703fdb7e4ce0a2a33fac855f45e5451a16d6a05544b72b1b42fd0f5b3d5cee25713989aa617d99bae1f4089e93dde0e7070df83857aa6a3168200e8afd69f74445c228065da0760f7baed4c1e6c2394e6f82c4f4107b2ba29081c7e9adc39c30016ae19005abbf914d49cd9d2b168e41209c234daecd1f82a0f9c241ddcaf21fbbedc5a553d663c9e0e220e7a44aa6700dc417d5ddacf8bf7cda5e129dab0c8d6ad122c94725440eaa8961968d11d3235949fcab97b098644323976cacac62905695009c1b86e47dd7a42725f36ade7a6b066d3c4f5485a45831b88b67f39ad2279787eb77018e3636c77c58da66bbf1188254b55db0194ab8d2396744bb60f80c8118328af38f6d630f39f87999dc8b60354ec3130765870fde15e36560f681a1d8694c876dd217ab6be951fb88b85e98733049002b80948588a617ad589cb53082560422ced16b99c0b77995fce2d1f76338650779312b1558804751f794c5dbbb9211aee851eaa7129541d953df0d3576df14bcdee7a7d58dc4a75c8af39c75e9e34c17631d0fe815d8e0d8b002e0d86814c99bfa638b139f9e598796ba85d70d2ec61a77980cd13de150aaefb268d2874a6d8969528b77bebd865603eb02d297fe5e716d555d2e5e665222943cea132ac324460517708853626667be0aeacd6653b740651bb492886151362f68385886ba8e9468bfb12a2e08fd2f6f8c125e640e79c2a07844dd566740111d232f97ad1304aa03c3765e004a8584073458ad755e6153154f4ca9269fb0459781052fbd9fd4db7cf7205e41ed10157cb06a802854d4e374464b715cbe2ca779d316980adbb42532e3407960c1607f21fe0ac6384871200dc60c56b09a5b51318ad598b9ed97cd2afebddbe89b331afe2f349a9df9ae5c057555e12f60af394437c22779722bace5530f409d97762e50ec7c6e7d9cb6abb5997a2239866b68aa1396b80c501c177e02c4b3e594bb4bc202964e8edc201423d3b7e486afccde29933c7f88695e6ce5698b42b0b66f7e3d36eeba8bd9b789f94faf6b994520cf9ef48c0c0d292b301027184c136cda5ae8d71aabeaf211eeaadad4c25468876aa50836cfe33c6aa8510fd89df275b8b8e33977b163f31dc0235455112aee41c0dd9d5f3636c812baf6e58c5e908889a885896233745cf9c9b1f7e1bd933aef3670917be0db7811af86c3b84f4498dd37af5298ac1230c859386df90d6f6a156db3e9ce8691551cb50fa34d28d1a5dbf8bde6b550b4309eec8d22f5aaac80135cb6fa8a9374eff9407db3ff1d781f4f149391778cea0108215989c462c671a25de8548a320f6585b1ce899137e1eef83d442f513f80b8737236e2215f495977ef1e005e7096a354ae54826c7b87e18e4c07ef67c7be103dc026edb3ef163c46d10925f5d063acc9818c4bc59c666ee79e23f031d1b20ec2a5551ee127215144c528e5caf73ac295ef3cc6a925c2df72ebd735df085c40d9b1986f2e60dd967ea2e97304e052c33c997f04378e4d21cd8091e17fec6647908edca3a330d5e0112f91c96d092f56aa4dc1c56340f69d843e5a548832dab180421f61cfeda8801cc4225ba74823f769be5448196b3b6a7e6a89502671ca302c5b5d3a5333240c27821069c3570a2e8b7e054a65789990a97da59f04a3b7d9784616406a10e2b72a2acf8050ba53420058b07d3274f8d8dbd0f888e912bfcca060a4b0c5d8f4dcbabfd3ccfd63a03a02d6b9cf1792e67c4f9a032418d9b6179f0b3eeb85aaebbb8f266702874bfc318a5f8c9f677bba121d10c8e3566e21446f412e94afa91ae84eb542d435a52b590381fa4d25f4ff753af998974e31b923533d83ee0e11e44876897c9f3d7e0d4bf9ec7fe8e44f5f4945fd965fa3c93bc49ad347b91008307fe216a38a32203b6393bdb1a41c058c3f962d62c4713d8cb04c15ad3e4171b874f2ecc2f42b8be806e368425a0645bb8b86490a840d57eee74fd812e9bc82fc695663810a6cc42b5b95cbccc90eda8a4bed1d95077c6542d9e4b4a0dd89963234f1fb9a185f30c80a9d7952845b754aae2cc8f5dc17b9545db20c75a2f0dc0ec44e8512c77ab0b224014bca1bab85aa501f72cae5231e571c66aee11052360e614cdb6ebe8d317ed0f054fc923760e0e6441dcf92cc1753a20f9a9c100b977e022e9cb4cc2afb4ca47454e7fd6b53c91979511cb1efe85bd37f690c99925ab0119ca83c9bf727722ab9da8c7bb15748aa614534a3021d88590ae00aab09ec85605b089c585ca9c1c8a92d1fd142207939f53c52eb240c92e6a3ced966e2d14eee7f54640ba60c45095b694958dc48cac06b34730a3fdee5f3831e7e138c1e316fe141647fa6bd7accd5ac0f7cec8881d58e90475c1b207528bbe38502e91bbd4132ffb11857d35e1ffa6c473c7dc2217fd8b43814f59d3820d0649e5288d3ab844ba9c0d34f8774cb119d0fbcfd3df1b8af344ec84f00578c52ba1e7fd59e0447c9160b2e72f093b9d6e5557d8597a413e7aff464f51208c20471479dadc6154b49ee86cbe4db1a500ce5931f8d386666e12a5ec887c4afb0e45cecf7d12f4c0f88778fc295be9cff4cc5888698155b387143877c165d53abbaf18a059fdbf6a743a46de30b50550dbd6d14c06fdc929274979d1ceab2c90c28d0d371c8b450ba147c8e4bd69071af50a3de4d364cac7cf26d071f1826e47f19503e502e8db313d4809b003d9d6f8cb6cfb6e1dcdf23ff0a2479792fa0670c6e8784955eada53170d901058847f7a00fab681186e1415ad79d35f51d456b5411204a9c4964c70d8652b720c9937911e75695383c8267b17613039a9ea570a88efb5f4ca3683dc125076df9459aeda817dc4b7ebc3b78b7f9922c85b8026a1bfb150a11dbfffadb4c1d306b8a04ae2e0ee134256af6d6b6b1fbb8d13c1e5452043ce4cca11c5fe671caca1d7a98550906cc3e1fbd6edfd3b69feeae8a2b34c9ce8c560cf2d8dc620bbf1c3ae3e10946b0434cfe0f4f40f330fbcfa27f7e3f0e62e0523b9251cb985d7e71b16211869c1f6203bb7e53333c7930eb1d518f0f615aab669cfdb2c275b51fa9b27918e1209b78749ea060289101248a9ba680a410f8d66bbd99f83fecaede6a5087cfcf0a395f19bbfe23e3ca09dc947a43825202a0e0642e61c8ec120e6f5623316e05184058482e3c92ad1b6f6e594532ff77f581071e2afed9995cf42957b4e1c2a66e909de40cc129d3633ce3c1c3e838934198314273fd779d4d33bcea010b298ec776ab699b9b3857fcb0dfce0663db5e4f72ce01e952439b8d92893121992940e68dbe8ca5454db4b270205dc9b350edf0685cd163cb342e217c3b997440c8df514d6214d40fff0852cdaafef22f82f319e03f5c5ce0da6fc5ffdabc6eef1b7faa5af89402a027146d5334b829d3dd0a8fd1f26c97a904e68e445e61336342c25046dea151666555939baaf221cc0f3b6796ba09d0d8fb332ebd1604352d9d02c760625eb3c46da04658635e36189e7d179c38bcd740c4dade6826cedd06129fa405f2feac8eab0e485e627f63f65bc08aab7a00b8b9bb0c2c8896eef1b7ac3f26c756c2509e83607945a78f11189bd8ea15326d5efa02439e885db00e29df0028001fca6e4c5d2cbc5bc3b8fc14b464301ad4f37a492b447932c64fb50ced6e95d5332d5209694456c3e0d13398b1afad063c24ad6576fb170b1f8278e872b61f490d350902a74b5a20d7eddd9582bdf810e864fe03173ad4acf60242297b4910ba81339d57f89e464f6d02b54b342db3718a989d826809e232b906bd882864565e696de8bb734c8a2b6b89d00457a169211ec0e606e8c186b4044a1996b8d221b617c0aaf38f92c7bfaf6a19fe864f83e4ad40c9920c2fef22c4f53ebb9e6313673d6a17cebc5bc71bfa1cb783ba1400bb4e34a7c2787974a9a8a25e9d793c3a60907049892e539553712e5d3e905644a6f16594f24e45f98c9e4f1f9bc54642019d3db6eccaaabc2b38d15bba2c6a4b988ad85644056db4190bd0ff4aa9921ee9a2e5c3ecd7091f4f9bb66b211479240c9b2f8201338ea53649d0766754b2b8d5de82dc7e82de752c83ae264af7c8654169447657675b0c24859797bb28ddceae286139b6ae1ef32fa3717d4961f4ce09469edc4a5b5e81ccaa5c956e81cf79d5b761c980eeb17172ff23ee0c266000414b3812a796f412dadeb1d4b24c9305ccfb0c62360ae771155b0d6e2acb813c3038be6cc696cc6c168d6cd141ea568c5abe2aab6c29490dfe52d40596ef7ba36f5dbd797fb035b412be8e173ac86e0818ae6d8729f9da96020262c16b42d05d7e9b7f4c792b2613480baff3b836fdba3c0a7538328592b34f811f296eaf215101493c2f235d2a72244dc3c191be8864d6f43a7482ba81989ee5767403897d9320efae26ec88c0015966b116c8158ed28760836670177f63426e03777b657f62eeb60b49dc85fb014f084daeb44dad08f541095438a264a41c29656689f645acf76a078d6658c44d2acf7e1002b573bc46ad98a13d9d720b1a7d59159c1677694450d512bf3cfc62bf783980b3d229f6ecb0dd4765c14a0294102a2b7a8ce3be66331c5f34aae7b8228a9b44aa833a10df90b5d16c4e10246661b938f99bb4e0672dda74409b3a4fec1f8cbcd8d8420380b67748f27ea61565b4dd8e4fda029678120be77f0e2949a5b936e0ef942c754d8df953c9a9cbbdbb5c2203ee567bdb8e5c3fc0952ca5d00bda4bf60c777a3ded35c27a35e4b3644b42af8ee7c446f4b526782f1daa7b39a5c7eea5e61537182930f3e0c395b05e072ba1c076a3db00d19426d798d3f06501c840f73102245808cced580d0694ba1764af90fee0eaf20dc7df6d10ac295c12ae5f0523eaa516445d12406a8ed188409719ee27f5c433519b81b4e0c3888b188fb63862ba44b0e3504d9e641a301c2e32d61c5b302bfbbde30e792947ef37492cb95cc6b6e9049a7907f32f52fffc69fbf38e740004836e2a5022d6b9866c5b4aafe461e966ad37b984f91f23515d31f3b231e583be9ddddcff4f0d352944f237fb7648b1ab32cc40936f3edf23e984ec95ae5167244c28378ca1ebebb3edf72e94c5b3f59d7071eaaadcaf2f5fca1409ab6fd3bafa6e0eec2c0611292ab77aac929ccc5d3314ef178ca8a0dc184e00dc8ce05477e72791e19adf865b1e4b5955376615b622e9b71d4404d98c95c4f6dda0ccaa7544451e5e1cfa5a14252dcdadd2b833e90b4fae383d9b186ceb8531f1b4eac2ea0134148e0919a96cc93525ef083e570221ee87f4837190399b3ea1fe2566b615746fe6b5028d77b7182566f010472761b29520ea1f8dffb7a59beca1b7423749df89529b30d217c27f3be083e169a1cecc3ff538080a2719b20caa4103dec0761c590c1a8a4250d8f981b7c7077208eb9bddbe79492c8c34e50b8fd9307ff044e1ada08c0ced9443b7a4370b90de404d869aa61c873db4a58791977a00222279009ac476fa63b27761b76b11b7718bbb95cba438171deb7606582d19266d5b710ebd235888880e92f0a5f00f08b4c615d180de63acefafe98e4d024990136790a856a928708560f18e8a7474e346178f3a680d5549518e40bb9db4d13969da5c5ac0bba7f1468ba3b27b814a53ace409eacf88a4a886ec2a8294912f1d005d326ffbd72664b1698882eb12daae71d1a40f2f773084d98b9966ee7cf1708db36b012a895606afd2a29f9c2388739460acefe2097ca63563153e2443e79e16edc6ec5109e65122d92e887c2b4b2f8f63bd49c40c91eb64040c265b743635a4210b3897a4c6bc7fe1bebd8b4a784bc753189cd64cf0b3db222f54080ef5921510d8ca6dc0de649ea2ce9380cf79b5136cc757487d56441819bac4f51f656c21d9588dbd1d1ac970c5d84b8d6075475333c0431147a752078a6b7e2e85917c8a13303cb2bad98d35657d3dfb70d815687800c4955adccc7d3488884a72ec0c12cd770db1f3e4a2bda25d7f734431e7d7ec5b2c76c6bbc2ff8173d1eb37e741fd360e124dd7878a535047cb7ddfa07073ad2b1d4a0870ecc84b3077403bab3a0603669c5c56bd2968e7c969f126af2f6b6675c083052464cfbaabf07de7b7e31bdc431d1b2a1fafb703212ee1a4d0206b41a11590c424b44a994865593c8a4d7e5703316917aadf65480c92487585247ccbdcb3328d9747dfe2570398d3326aef51c071c20e4d9d4f08510ea00117f83d9d64c0980d2ec1b534e4f7cf8e20cf21c7d2033580d3bb5da3661d3e5087c9a4ed950f6a9d1796a5c5303fa0e0c0ddd3b7275c2aea080e2118f1a34c35ef12c0fb4e5e4b33fa1deb10e1b4be88c64c19502e4f9afdc3366694a18c13fe9486a98f86e68dd9f0cd6293301ab3dd1d7f6f406d83549cc54aebda7445848e57cf453b2c5ac1561c3895f1757fe2517f60b9b32b3a8e5b51683bc5be96f81e41826e34c77f1f2591271d8d534267c5f8c319c32363010a205651abaaba20aaa5fcf576d68383158848c025cd65fcc97c30ae0aa56bbf79f84361f7673f2b06c0310882d24a1ddce770f11b559d4ca417737821779fac53d4d65219daf698744ca3860d1698e0d1043de8fafd43f0d64066c05a5c44f59ec25221adb3cb9c86fcf917858ef3c2b65c237472cd7ab1980afaa8d9cdc230befa8d23fcf3217802bea63b94b2319e1454fbb039973f49256adba559266e30cb6bc373a3f0e28c1fd2eb03c8f101ec9770c70c2126496c880cf53dfcb8d2928a2f9d1da83869800e080e2f41152355a420d5068baef914f8fb7b9486dac064b0b52ea77d25cc3addc481dcb365b20b734807e21529b99e295b2b4e0bb1ed1a588e85e575afd5117b85066b73521075f52f2185df8c7ed3d270756a9052a7f3c8f947fd54f7006cad7561dc862fa16d767a7ec69f8c056b93a083011438f27619d7644627bb1501c769830e3d8c9f93559ce5768ca9bcbf8f35257c78fafbbbf36c7dca9d3094935402f0e6c46bee6a8af4112d3c78a6e40ac14b122d16e1f49a42eebb4f0ff78edf5bbe0491c846ac55bd6cf4e5d44f1287b6312dbf03218d198767d36e152aed9e21ceeb9597196f22fafd9f3ae53acc07b0a99757b7b2b8b6e399b4dee823c2e42d2c62099d7d15c87a61e54f9779e7263ef5e3479bdbe1879d9ecc279151281099fdf65375673864d814eb97f4e0b4d744596ada97f1e5dc2452d9fd5465598eb9eb8d914f46f8a500891b45a0522a4b95093e4e3bd764026341dba3be02203b62c71e9aea93bcc3c0192e3d4d2d1a1bed039cd5077243537ca16436207e4b96f244957c8beeea6bfb46e27903ccc143bcaebea198963b79cfd5d77303227324947764dfa16cc35df08c43f642086307879c917fb26a4d269786aa3cd300f4a2eda738a9b19964828fffb1c8f85815db29bf4c002fdb8616589def372793591e89ca6c0c34825129960212214b64d2b99da1986cac1163010b3bc14097c096880b6dae7e5c799df3710bf5026a2899cc7d91021f146556f2bfc17b5a46d30f3b13bd03723cdc659e09c00cb5c64d8a944dd007d68480d5f016d4adcccad2e1951fe96bc2c150bec5ae4f5644523485b46a2bf3d390c28e08cbc669da3bcd5a962bd2a6d4e888936961535f2eba46bfe1135ca53b009a2067ce04c7c3c99ea1383e91f24355c0c36a642bb59942d1c127be62d3e654135935fdf524d282f9dc25bfc4deaf63c1f919a5ed83b15c4f8d8186ddee3aa84c405a19d44107edac4499d61db346aa2190d183a76ca5cd4e94d46db89f01ea1d46c43de23e46ed40659c5e04f854ff269aaa02b09afcbc9ca5c87cb604f71212452d53c6e10ea1c15026b4fc714d759922d5e9efc8e8309ed121ba2d9b89891f0b7af5a6bfecf5ec09da21ae7b46cc9fd957c3505ebfd4feff6933227618f04ae0b15dcddcf5eb58ad5ee326411c6ab82880f351e4cf80107b7f6e47cad1daf79526f49a761034e81324e1146ddb4cc98c647923aeadf6d8185dacbcbaf1b25d60202d1f2a3167834b89eea68537812d1ce4ce567b1427dc6964347658193966a78ac4ac05aba2c386a217a4ee3ad83f8b5ca7ce0a5e9516b28e0d4d3603afb2d583dc975390334925100eafd5b9275787f9196338827f0a8caecf9ac2d67e049f81bf7e22c6710e2fe19cb0ddd178ce69b603cdf569705f6d2d60ccf79c47b05dc888f9ac2858adb855220f41a71b00bbd85a62e51a532c6ec6bcbff07fd2566f5c1794f1db142eb2a9cdcbe77df8a79e08bd86622105aa0121eaff3130e0ea9151b5080cbfe2c8e5861a193e986ec9f010ef4cf07d800f7e964c7f96029b260a1c35be05982db5a7250b281e48f3596a6e420c6c05511f3e20c91ab9921d4412483bfc70d4db1a7d38c189ac961eef03ff7e41aa52076968b344c844536ec8040399e6fcc1683d8d6d349bb3d5e72b48a58dfe65d4c9d8d4f4bd8ab8691c906e536524f92092d445f6e690e30d97b99132c27177b7aa07fecd312165c4d09cb6ddd7d678bc432128406f7164838a96cda8bcfff9f911cdb6beafd1fad246f389d2b622bc8a289452f33a3209327e1dcefa814003f573b56962ace2abfc3d658660944a45a1d2b0bf35a45c8ab338a4dac19b24f4b43491d6970e119e9daaee929670d1bb54174cbf988960a31210166741dc9df3a0f9e5ae13310e7df1313776b50ebfe4128415643e36c28487ea626d94859f199c5bfa5683f5d3430d4c07c002c223b780deb34a6eaee4864c49de74626d31e76d47de94efcbccfb2733af9702ee1e2102bdc8400a666942f7d5c1370c25a9e8bab9d119b18cd6aabc708d72f32f5639d6d4656a211288d7bd3b1e5db15aa4b285ef180f4c96935c07ccd6c3c1290a2ade2d5d55f2fc19ddb4b3072f948a34d6a1fc494d5b81d5588f118f2a507a71822f893aa91d19d64bfa6060d93c9051aa9c70b41728ad4f1b95d4dc236fa0326facd24ac01e62f2bf7682b2af525bc1acb0a9ab27da30de93638ceb5e539d4708295bbf8e58ee2297f2c2b4455e4067117a812da47b704cd8b914d1219e079cbc61a99b739ff5a744db2830ec66a2a6b051d16f79256c1650f626b2ed3268fc66a29194f5b69444640bd52f5d170217b2fe1050b940b18cd195f0716264e288a42ac5b55d48a0c79f9db51d870199d5997b135a70462503d107f5eda6c5378bf848ebdcfe10c8ee8f2732fe48b9ceb49c8f7f0d3706fe884aaf9f01334ac4781b100c009a000230c7fe9b79ecbe97c879642bd84e7a319301494c6148b2681508690427c5159b810ef3c0c08693c83075633888109371eeb3a03e81bd4d7f37918f176df5e49a59e489f1b4750d13942f31c904a040972043efae9b267b7084ca0ef59c7ae64393934ecfd9b33a935d39638acb9842e161d8d9fcee0eeab984cbe896d024cf8fd537c7b085b101a264210ac17730994eaf166d13648c4173b12786dc49e2ff5bafce72249971e34cf52b4152ef0a9125b2b84b1592607a6bfa08dcf1f209974040ca3a825559e43e37b231b105641b783ef7b05c2c0807e87923e0c0b33a2b3f80afb95d297b4621857a131c0722775ba54c5d10463458d1bf37baf87242eb76b049984971542f350940e603b16f627d3d286ecd9a4a112953c493a3e5dfd552d7aba425411ffba43c9f579613d6f311d22449a46b7be911ae0226a69423cbbbdc52ca75d32ee567fd3113f6a446aee3889114c350c29a20069c9fd7795096b16249acf27583b6de60ad0d1b177bf39ab79b7eacffab6aa94ec2c763fb43b162c216aad259deb762f80bf29d7ad64a9a342b487b1e102975f772156af9f3774b0573aaae37f341f2dd6f16c8aa615f3d7a4ab0425fa40cca72ca24225eaf6ecc6bb9ec1e237257e6e28aace60e4d5deb536344ad0cb547f0a4b8dab05fd29df35ac3ff0c5e28a538e04a582088ee1df59663e7be69367cebfee364a2c20f9dcacad0b1aa9002fa2ffe9c69c2de157216284ab9353f02baa2aea470dceeb06b78750ef163417d47fe33be0ffbd5ae04813258621cca3dbda7cbd9b645e1c048260e9bea03888a42941d3acf927605e816b5bd4c1b1134cf3af23e65581a6e739b0432edacc70b9c3ef3b99c82e25e67ac9ad54c1fd2950330a51a39d3511df7bbbee1d631c27372a5745b42958ddf7bce3bb5412e35190a119a8b7709440d855f805a5d968b816519dad3abc90b2553bbbe74629db7d058c443260816237d341bb5748c21c334181ff4ff9d89562920e58c641826d85ce73582203ae44918695fe2878cb746cb982090f8c33777009d0d58e8d6016741be3c667708db1d0861f623c2bbd5854c04c303672f0b9956ad4ed007b4a42853f6b3dfafd86255708e5df844cc04629e6162290cc9b923751b54ae213bbb1984084c5569a90db4bb7a9b1c9b51d7a123a542fa1d9aae28315e867903c0938f3d30b2a2ad076985ab017ad780a288a045e8452fb6095e590f28c0db828ad1875f70d07b4602c24d094834d2b17b4c6d3798f69ebd2c3b5723fc173c2d1ec087da70748586f159e0d4fb35f872b1ab10d3b826e33ddea230091078152dacdaa810c422f39a5f34164fbd324442ce00551dc2f99573f44c950b69ea57c908935334ffd65cbb47014aba9fd0daf1e3689d1ebdca0f8469ffb6d91eb71e1c8481392c97eeb69144946962c2526a17c6edbb6cdecf3154e81ca072d0ad77961c2edcda588cef4ca6084bf07188b29002e6f9f29933d83a18dfd610b2a0500659b83955e288a09e05649e2cc4b28104e56bb813e00183fcdac92f24462cd6909bcf7ac8f999a5495c3424d944c2d30eac3677ca134724c4da383e02cc011fc9a62aa4a27cdba3138fc9b96c7c361b4d19c4361e473e758f06cacdb3eb880803b69761645f67e2f2b47729f3eba0e3dcf543b0b849f54e54510bd0d30bac584dd3e5d6f7988bbfc66b9bc8057275e7a336a8b0484be50c510c3658038d8e2acce0f9b871ec3d9f0e46b6c4eec27e45d28906f766ebb64821c2166d64ff66504c6c08dc334f7cfed35c98e4c91f7b215d5a3d840305011e1158992aca9ed0ce72a3759c4d8a8459c132d0baff9bfedd6d138d5799150aa2d9a90f048768e0e987372bd94e9e083f739a41015d04c68dc5084c4683b44f5bbb565879a6216de9d624352375cf81da7f68deb407e9702807546108e618f28c7025c343a14f6938d2c33522b317e4c5db04f1a43a999563b61c317b353f8fbb2a20c95f2681b5e9148c58ad6af2ad911c204cbd2e1c69790317dcfb40f42c7a9c35de56a0e6c91ac5eb78b1565e14fbc589f3613a4cfeb5eaceb74950523d123a5adb9996db71e475bb1530ff50ad9ddeeca7b06ed98bee1f62d6fd2ad2e88fb2bb91a3f2943bb0cd8370fce765de031cb95d332dbc64692ba2bb03b2053c53a2b97da6127042457ec84b28436af75fee617fbb319cc84750de385cf19a6a13e3e34bc2c8d80359e7d713006a55d94247f1cd3c622fec16f888f2af7a84d5e1e3c8297e992379b11544f4db165a7aeda90af856ea2fdc326fca477d04272b09a3adc46487742000a95ead9f7457501b61c6218182b64bbdb6236f08e692b4dbd2a19fd046d9b765f72762121ae540c6a8cd63e92e5fa6361313acb238818e562a61427604550298a210115497dfab3101122da55feb4a14c54352a1b362c505794b33ee65ac77cb1ae95e16f6014bcbc882dd6621c1d6778129405c310909e1403602ee74a2cea527286c2e2b0f27ba6e81b327405542c7084105bda587b11b194557edf210b54304c16390658c7ed9f3d5c43b7ab5b01ed0c343966ab8c91b33ab048a5436af848b3292a516c7513d5f48cd331097baeca1076204e5a0fc929c55d004e9bb07055f4bafb9ea0cedf274ea9d08b4cdf0e3145045d34f338c41cbae5c0c61b53efd8bfbc6a16121224d762d1689b27d34267292eb24de9aa004483b4bf5f4e2dc0661d7db015a00e96fe2b70c4c1fd16fd43e9d21f6ffa24b44cd4f7b2347482add8a7d2ca2f882ab126c1151ecbae296af981b80f90c7863199c443befd8f293c6898581e7927d96b7b301d9591e0d227ab71b1a4615f9311417ed2bf1d701c3c081a81e6f0819287656620fb1baa38250c90a4cf22c277fb187bc9f35699d1244f65995fd09e3a9bae0352c2e7c85a92f64be21615e7e15e460aebd837803d5f141a283382091db045eb59c55149f10d76c184047d55a52e5d26c3199eaeb04ded3aba29b17f0730041d008cc183a031e64e0b0e3008458e175da8b5cc629dade8299332ab6102670bf02fbe4feabae4bbadfa2a7e1b0c48cd9b22361ad56834155315694b3b1090e7d37f21abdf8e6daf50f39f1dea6eb335122c2400798ab3307386150c1619e6f15691187e7441c5ccb971668bb67d313cc541c0e756de9c1b59824ef18a1ac1e605faeb5c39bcb868a2d4170493d77449da0c7213ae74df6e483a85bcaaa96ba61cce531af36f6049e6592e39045517a5e126087ec7f5fba901fbeccef93a5c4b15dc498c1c962679b961282cef7781e8f4c92000fa0c12926695fbffdeed4bca1c7fee7358f659798e0eb27cc34d00e3740b15c27ff295e635fa7a326c27c633cd22e36ef13bf97e97d924a6160efd21c058f142471310fb8501775a956f624522ab1c326339c942c0379092ef7d978466adc4efcc9cd0c00d4803400ef54569cf9e1c54e5017014725af1e888410f3a2d718b2ddbf0901e86611767ce3e05343610bf01af66d47e6c0a58b63cf0b41de3ad0bc1655bf5a14bec1d3a7c20436e6622252523b1bd48b6988d917f0f8fe5e60163423597eb010c83e35f4fc374cc2e482898705f8d7664d022da90800ccf6d4f46eb38bdd9ba7983022ae7f7ebc9677d1f880a3e203d62987d1f5ff924a6a1f2ac90b3a6a4b62fe443d44de5ef4489e186ea78a29e064545485dcb732551539cb9fb9435e4c3924af517572740d87dc4588a46a7670e1d4868e1f6afbbeae499df1b7e9da0582dff08270081cc079d812078f0d1402c71711a7d2fb0832eafd6741dd4510959d7cfda9dc4ec6d7ae63300c38cf99b6fcd67c4529db4d3c515ab5005510502e0edff1ac8a2b7d863a8dcd672280af758cc5be5e0f83ae63c5089406c4b417c939f09a6af0450c5badf397f05f07660feebad748dea874828399f8d3a24001086d6392242729ad83edb2271c826e50ac70ce2b5325f0a920fd9b024d50a4be3b508cd623956146ecc3092eb3a51e032d6e8fae6d7e391a4cd6779c8fc866d71e6b55194913cbbd1b57d3352de5f513390015079a322ad062708f0139dea92661e7c69db9b40a5662c34433c806758ae4dc91b4bd93c492902e4e209f8d08b027b28b7be06e2d96092b48dd2e488c09e5e6ead1a7f743b15d1b5b3f57a5caab4d1814d90e362a511395f7ad29580ed0c125280939bf05018ba3b7404dd1b5864111dbfa4c6e835142d1148e3b92b4fe4c86d8ea46e4b0b852a77ae254bc252d31222df1136ec37e2b4f6a564b983c8b02401838350e84f894cd5fe3708c4011da858d97a0d28a250b7b39d648512db4358935ce6c5dcaba1b82b1debbef60985f4d83b26d5687ab7018634bf1c4143d74b8a6e5f83b37887f1c0352447ce2dec363ecf235a0f57d6fdac7ba421943a8671c751c91c5b4515f03c99615097591242721548d510d353ee63057c6f31c42e4f2a9eb52683093fadd029d0344cf5239e70395821f590bb37023747eaa7ce2abd603941922020ab753b3de600b62fdd18068e9e2cdbc3c748a2679591f274118e57c3715315bd44ed2318d44dde48afcf3daf05b393b2d2ae1b441331c0970e73b30940221daec7c3bace740c2ec086d2c21dd7e3ad4ae2472e9da8c6e4fa923d8f4ad29697645588748b4a032aa2db79f2b9a937eaaa36348d04f19e608bfe148bf6ac1dcfbfca93a526f7127f353ecc5329cd1aa996007db9c7e446cd1e7b46c2d1938a44f48a931a30e61d3d259da53a7a68c9c82156f4e10b7d5319122576780396110328d91c2ba5bd8d69fb19d0d15e5e6b2c293402231c7842d458a866dabe772c257360e2a8d6802e0b28d32a676a50ea2b641b78b7911d12f2fe529af229e9f9699767a0d0a88a6db37880f39ca3b6f00baf117ffa141a2526c770d2ff31fd0d9cf10696ea2d07d84c2e99088a0b0206ec43460e6314e231944c271d25709c1cdf3086c1d8475245d22571755bc8724779764614d5fb626ec5e5a813c064fd6b0fa83d6edaae00cb51891bdb73aeb3a128b8a5d6c39958b318ec4e342b89d0fbbf0e3b4f1358a5b959c4f76b5729ea17446749028064a938635d2e0c30923b950d7947fa52871015555ec27a7356aba07b99e2e58064466171036fbf7a057ee791540145adbb741fb07bd9045d4c46002eb70a1914dce5750bef65ad2f42fa4558d73eb955fd5c7bd1c05f2267ffddd6202b17900cb91e16f7f02accf9d123c9dce336b0623fc966183448e65d6ad9dabdcf0eb65cd6694d02aef02d10ae540ef832f59f5a3a18fcd56097c8ad4f54a14314764f63189266d6ad1855f34bf81910fd24afd68fbe677669eea9f1cbd69242f49b242d3aac589537c2f3bf011f349121fd71a1c0ac54cf75682db0434f8cad15c115113d90da957534c97ca3ffa45a64627ea85f7b18e3c201b4f89585bffecf338539f3a97ddf07413df0c9dcb02afe51b2b505d4fb030bf17b4e85e1368deefd8161db96ce6930f5c3edba89b3e9b915e748825f2fd808552b822220c03310bfb305019e715dbbe7422c62e058b361d3cac647eae4fb241810fd13d8e82e7994104ad17d03ae8408a7a04aececcfcd74fd40b732a17ac9f3d23a63152b415eef8d9c3370baa57cb58676e9bb41403dab9be0ddc9a7aabede4c92c45ee9eca97f5dec6884186a47b4658cd9f09310d9e0e02080a8c3cd0eef2134e92f32b436be0ba309124c0db6f07c99269c7871e8d912374d7d3d0a9b3ab39a9e717264648d202151d7dda070bcc742fa420940298f0baf62ca5743311be7566c0e86b61fad1de4280142a3428c327d31bc3a4c9245e51d43fe55bfa7c69104a3e87d05581c7bb6d283e621731afb691a5b72b825ba6de4e2c7c6d803a0948bb7c4b37e36e101214e658e16ee3bc8a2811919432ff44758d630abfd3d8277f4a0fadf1f1ad233d89ac805690cedd86d313a63e69a36c0c17d1ca07cb0d764b5dd944ce405d10c8f6b84596d3263c6ad5867a3cb2756c760faded75b952ce36d597d663804159a6e632f7fa69a1445f7b1de1b22c64b6fffe49c853319790f810fa96f24a89908d3307eca03d86c719c8d10ed0ac334ad10734122bd1692175eac5af165dc0bf234368f907cfaf444b863512a33b551518b5b8c7690194a3d1899af92cfd1046765dd0bc6fb5dddb57bf562537f739ec3e1cff540f5714ba736146d9abbf1afa23dcadd7e5c092d810ca16fe9e1c2ef037294ac9a8a05698e6fd827fe6b2f889586d05914d142a72abf6539b4218b753c544cb14ea39053feb1dfebb5e29b9093f381ff063aaf741ff9fa903e88718a6b4f23e22ccb6e3857b22858ab68d38487fea61c1e4909bde08e6b6f88d8b6990aeaa6cff48a96285d3d7ff989dcbb79d7e782f1d8e3b2ed3e518901217121a781b7ba7d1e40c68bdbd517c44bc06565986be20fb52a76c7ba98b3a88c37e47009e221a132137f0732dd8be47d48531501585391dea7710f9040b7b10ea91769054b6bdcd7b833a9989f2b6fc33109ab7b8c2bec98a87854c4e8d7ba4ab3cdaa2e11018c4b7966efd6554f453eb4740b06c94ced6558b5cf46c242115b7d5556e9f2d1a040cc12df425abd1c0bfb518a9ef6214d091dd8ec35fe4bc13c09469250b216cb104b885d9e02df672499e32f1ff7e94f30bdfd34065202a245fa1e54dbbf382b8692874beda516c1c66928bcd728254e12bfc4c8fba4c46aa295a2f3563529de8a7a0fcbe4154c41e514ea2748bb057003777931aade5af56ca2bc1e8b8173ed24969183ca9c83db714794853b0f07562ad0d3aeafecedd551a03f3a5e8090012ad2b2d276598dc1e8a8681b3addeeba768f8ba0ebbbee1e6fd6433e16cb29181e9d4209b2bba92e58c4c044ab1d8b6d0a00f292aa61a1f2f694182e4193957bf861aeddcf8d42899e53018e2d5abc13df20c408e003b9af559faf17fcff21da512bfb838b8e5edd138949aef57238bf3301a4f6e10495f007bd7b59db6303c721e2f2512d025d1bdd0c2de51c5f72c5031ff12067e5f7f0bd6f07e39d154b8a52d12de32809befd8898306b278bd07043097f2317fc5452e37bf83e10289fdb1d978fb832759cd14d1e624ab23522ca872971ef5ed2cae10d66bbc28d7bc49a8922ead76c98e88878210a2a69f242342c1916970da22a494ee8c4628a2ce81ba78b2c3c62b98dc6a1d8908d5f9117406a03d175ba6c1f69de68c5f53ad616ed7d2b43db7f1c8102cb12c75b04b85a96e7e6c7513191be6c06e2ab758d2b6aae60ebd0a5050a2858c7c8f434190fdb1faa25f1e4d6ed5a029acd84f7d2e2bc46b3945b76f5f959cf5e12dd4f8a4177ab6e66f085362e964bc720aaa36b500a4b200b8b2c5ad1930a2176c96333a39933fd18c0b903fb1a855cdc6f2180964d703a16ade09dd2f302fe2b5e4bb9955bf0511b13de1a80d20f8a4e56b2ae5cd7f3b9e361872d687f9a5bfa55e61ab87bb3dc1548e09b66d8f7855522eaaa25632b65205c29fb4e90fc1009cb1217cd18518c981d0f835a43a38cfbc09f7d881760024a7aae71aa52300561fba26c17cdb546aca9e436dfb01faedfad515f09d799e9178e961b5adcea1499100d04036c6a7323422cb20ac5eccafd68a1cd8a9e5363bf60185293911e2f16d84ae8b8a896166eb456d70d4737a5d2a008c6960208acb8e7c19937a4c79f73584977457be1231d4adf295b904d01199e530c70dd6f79b0588d6ac94b55190802951b509f52e8a83315654f26432f596ecef9ae4802df340cbcb9318a888c1907e91383265e87490cb3f7f1f10dc5a8ce6017e651b84d4a3ac7ee3eb69af80d31d9433a960c8b04a82ff041c70e480a533faf274456259adbd3996942f8a41daebeebb4be5bccd8cdbbd2c48725159ca54930c705997a9613aaaed64de53c4513586d954d001fd046c67ca324657cb7363ac8ed6aba4bdccadbe9c84ce1e5d249bb757d606d51afd7ab258d741368a6beea96cfd140bac0e72c29a3f143c8814cdea0f088d1c41556d0b007da7fe3181996a74418aea8926881ae67adca23e67934dcdc9910817e91c8a603bf11f879fb32068f1f16d1837f6669036880276d0d7a4da04c9595933883d7352becad129a05b0dc41ed1d61888239e6fb406bc2481b78db14505f7193533032dd13f369af67b19bf96a4266052606ad023e88b4f51c5084986ba36e8384e0608aac3a9278a43f47b0fc200dea23b32efbded1a031e6067746201f732c2d1128c951e23e604a2cf415e3058a861d9844d8e3268b6ca53e46c9f53b44bd5ec933347e4e95be43f58d7505cbbceb3c48744145bcf60db94e40ee1f602b2c61aadd735d5b8c4c7a7fba3d340fe9d4abd64cc15440efec726d42518a688d0deb73cfb42d5edd5b6f8f2e66cadbe6519eca9d6a7db00d6481fb6b82c5b671c5ed2a0df22e95adff513328e480eb2de352eddf1b989825c6413c07336834a5b520c576edbaeea0f86549780a6d294c3091cc4b71d240555ec870652c02184838b9ec3769aa3c1fb4ec538758285162c1babd64fe8dce17c470541bff5aa129970800b2ad628585015c0a462f50d6846bb1b167651879e1b7faab2549d94206bffe7afc9a4cd0d409857ca5d40cd2ddd8fe4774a55bfc762840a77c8f90a0264144228b901a145f8fff52d47ebf8b5099bab63b83ad68ddc629c6a5d8d637f09d91a9e66c5abf56b007731161dea5b6ee9a555f9fa84a976f1f053def905ac21c82ec6bb6893e0fb8ab8699323f1dbda3213c9953c85114e0c77d979133ebd51f39e502e6cb6abd88615e9b2682b42853a8ef27629791f77e9cce0d7be72c22e4ec41720b773fe1b0ba929ca5437bb688a9d7606ae7d099c25cd509722c6fa7647b7e5096e2e4595441f1daa2a0adf512dedc71b680f3dde536843cb043c899ecc554a11ed499f8343ae708f4def971c91a85ffb57c10469ca5ae0bd9e1f17a54c4c9be6206d9ac51ec1939a89d5a8cc1da58bba0dffa6a93bb549081fb279d71474a3fd5e06075148259aa971c4512582bde1f27a52c82b57bc905c40f6a881438c2a5764b426764eafeb53708c61bd3e7281e49e96d498d8e78f16193199ca5bb33a2b99af360b13d8df4d45dee5e10dd51fa2adc36a0b1f31fbc9ae4c0f2226df6c94580b65b1957b436fa24614c075a7f1c758e2d2decc2fc5b8eda89cbbc711c8f1757e4dd37a1da1970cc31fd5a9891c35a23692bc610ba5ad9ac2d06dc60880cad25e7578c26748eb60c5b5a96d5d07501ed3278a3e3e6e7f476e71ecf3248fcf7d001a8a619d1e6751bbcdef7608c822704a455f3b3f5ad13328781d7ff9e9012ed12d4b026a45069f23e2e8a9ebfe6b8d2b2e3fe0b8fa330f465d97151834456bf030ba3aa2019204d82787946f576aac9d9382c0fbb88d3b10684fb7d90446663fe4429397dbcb394bfcc4bcbc6b59865e0fde9afd6ad83691767b61beca66e12b0a451fa225e438a05fd32d7ff69664b70d961488e604cf3eef57b2860f258b2dcc34119c06cd7c521784a74edc9a0f867619c83fee8c33dec25333954a668080b719975a5d25994c73bf94c75d4cb44277dbb8a13de16fb138925b026e38d7903d29d059f0a2af5e40f1a052ec35eca4b4ec27e5ea78de4f82803aa422aeda0e7b4e7d8006751076cf830e974dd4e637a7cf4c9d28b0f1680b83b30bd5e7c787ffac639a15b4255a05c390734270ff4fa3264c69ab81291a565d538329adeb37db890ec9a518bc83e46f578c9e412052df137966e5448d91d9bd508e4c7e24a66e795b2020ef2a15f3794fe1a76c9a4b66063be1058cc6ecbeb5332a451a67456d9a0c6d1f978be8d77875043125639b68dc70dce9b9502577902bdcabdebe92dabd11eb0a0073dc5cd2b0005eb2cfa111c040234b08c6c52571111a733fedbbc271a720482af32762e2b1a81802e19dce5529ced24d6a57471ab9a9d337803a58dedea95e64f741881621d6872f133a8e9d1ffea6ca849c8136180b1d62194bc0f4a46a751674134062c441d0004bc9601a8218c698285a9648f76cc8c36ea56c1e60967c2f8c7817352b48213e59b9c4c2eb8cbac7e71838936ddc52e8b0c608d78c3ba6fd5b79709a73e82fea1989f77d49c9cded3c5a54c0580120d39703901ce5b5be0082c62ae3d7d5803c66f1a9e2cf5958152988e6d0abbee3d57972b89714a23181f41aa274b244e025a147cae495691cdf38570d3b8183b43143017eae0268341673c085eb11fe24e8de0cc501fa769559c601c1cdb7fcf804916a5b2894d02cfabd7ff2b4c5ba8c02f4f7041e61684406eec88c86d967d7c0fac01c49c010c9933cb82a34e267af1a71924f84023821ba38093aca3acfba43855478ca328ee5859d33ae98d5aee4b8c742b6e70019ccf77411e3948a6377a1d3ffe9380db3445358ff42f65d290f021165d8197a50a8cc4e17c169e68a2ebb5eb5cb4da16bcf0dc0f8636b1d583fba83f683fbe4c4f6d32ab051eb347da06feedf8c0d84d18c60311402105e6b208d9bbd9d5306ed562f7598798f40c5405b59e488aa9ad5680debf28f39598bc50b11c57f9469cecd08e4d868580fa0f087187cbe6707cecdf6d05f444ac4db2bfcb179b205a3dc44054aa915fe4d8af4fb3d96772358454c75c0ea0e31dc48991b436cec5a6418e990a8d7250c741fdebd57e52ecf86c5f2f83da7d2fe16fed55f6bba90d373c01bcdc01fa413d445f608a69690e647edaa3f8cbfcc9d2c45fc7858f4dbf756c0daffde362a65579c3d0a0f5f4d61b66ab55c47bca99acb18e8fd60c12c3a733139fce5982bf8ba2a4796eb14af4f2ba74873984a4a864232083b4647dfcb23591bdb2bb7b4b2965b6045304c60323744982652443c586132e4e2e8a884548617c8c4644e30b39c42234a07ec8a218a293212cc41986a4184da81aa574418285ec808a88e4649c7222818a885890a47c903f442ce4187fd018837e8cc420592cb108b39402489568a5cb142c31a888419c901f388d2c8a884490c8157c8c3b8842c8718506ed474c8cb1268485e8829014a48f2a52852e5eb01051118d9c8c711a991419b520d9f041fe202259c8213ed110c1fc8c49315aa8b1107dd4528c5faa46225dc417b09038a88c409c88554e6294224c48357c1c212261398ad010957e84c4186328b1e0402905d942d507ba88396019a950199beccf898bfd39911e30912928250122e2e00295a119501069489ad1cd10a3939f6e3ec923c9a79b21e8fd606b49b05708cb6906e03902123b627a1d3d79c0eab47604c5684b6754a5823b4201db8e5ac0ee5108b0a3135e473a56809dd68e766018b4172c324d464f48b3e1012896d9a2942d66d93cb2ce48c682fb79b1edd2dce528661b257960640466c4a403dd690dc89410ca771f487be19241b371efbd1bf743abd0759df749d5684c60c6186330a46da159d99b67265797cce887c562b1f6ded109b57052751919e9a5c5696912ad9626a1412dd301208a9ac4e54653464c680e41fce97049961541bac090b62065c829720a47e3fbbe8fe8cb0ea7fd711b7c2b222d445ec8a43da612ed6061899442d2f607ddfc1128467e60af20a770fe06c898beeab406444b373f048a90da5a9027dd7b4aeae6f7a3d35a10a15a90138288d02bc594af8030d58e9e826409d2854640a904c2708b51158a16b5a3a3138e744c09c92a64ad914b37646ddb6e6e4a72485966b02344146626830ca32c5736a86ddb9450ca71db867beb8063cb6a7e1649b7bfbfaa1456b2c8d77a70c0834cad878f0d726a830e84af81d74f6f6c702805ded3df2568c7a111d8afdf773f7c37187c1b10bc016daecd9b14b2bff730f8b8e52d7a938424956d4928dbde6cdd5a4b33506be1d52f4db2eb6f2fd4a298663c85d49665cead16471a715646012526514933bcf0cc2082d485c49c1f489d03988170519554d98e0e2b3160a87081a30524434ae843ac599233760a40c46c861301b3142a0ccb6933bba2e534e124c08cca49ce8010a9220ca15558a82bc8d01a0c62708071a2c0c701b3fa258693d230ab71562171468d3a98d184d41798a816158e6ca853359cf4c95980d965d1a5cc0ea52d3cb8e050b454d5757cc005bac4079713829997734b911e4595069c8a43ada1665142ab36ea450a0ee7917328cf2a92239408970d84ce86b30f332aa4926005e80b15d549a15039a3ced1e82c5b33a6194e9a04c470f21907e7ec8c3a17308be16146a16852d7755dd7755dd7a9505b68d2a5cab972e51c60a6a4a4a31a09aa637ed0303d51904638a9931c374e1652909c15c616a70d680c0953c4c8899015ba8eda740385c1ca89f4e264c08c47b5516b378c396766595a705b8d080ae3174add234afa254c680e506785d18019b501c58e1305195ee79ef194f073aa38310c0aa6a2684f37e4604307495fbad0d239e55440073da39d01e8ea8c296704b329dae4494690b3cc79bd1e2ac409130fec869f285e9054741d4b12cc9a4e08cc88ce8a25842edc6af680d9e76264e1458426b21f436e44603bda21eb42329cb35a45a686d9023a662dafbbac1dee4c0bebb8d6ca75ac82c09a7bf81eccf65bd12dc216d6bdb2f4701086f5ee3fcd758ceb98e7791dc418631ddb686a879f190e7c55a91eb2362aa6c326756373581980aefa9e0b5f9a72e327fc84a36a6ab869bd508796f3f013a6c24ff8098e32b154bfad37bfcefaee47db147addbddeedbc2d031cd5e2e647c3cd3dc3f11396c25258ead2a8ade162cdcce7ba4dbc7bf17e8b5f1abfb4198ea3c0178ec24f2b203377934a711c0593c1155197bcbfe1b14dfd8ab840a5c781ea92cb66c5a654ddf3a238cd3d8e7a4f039517685fa0ad5ac9e07ed8bee97ed8be7e1ea5a254607d1d5d5b5d3f2b034ab5fd6dba51b5828aa3b0148eaa20ba6d87c6dae068eab9b3de5a9a93b3c9546f32d4e4d584d6c30ebe955dddd55ab95a39ceabe09bdbc64d2bebf6de7b3bd8ace03af6bddf2af77d5eddffbd75b12c08daa71606722ba39b276c76e9787605825bb69fad0fb8e23a79e6bbbc6d56762907f37bf9b737b7eeb307d0821be20bec6ff661b582ed3b6e65dfc7f2ecb3ea0c37f7def69b5b09fba0c620d3cdcdcd729385691d045db4676bb3b5d665611544fd8f736d5f5ddcaf5c319c5d9625088a7fbf2d72b3d22ba2c577de361365d7d91eb4b12ec41561c1fd80b9b2836f9a28410f7c0b6ee6b15a016863b5562beb5fd7759d8d55101cdfb6a56912521b7673776517c5232a85a1bab920000e62ba2841895901648381e809d15454d012a5b5d25a6badb4d64a9378d96ab590983aad45f9f4b06a1294de5abf1295e2d09b7389dbeffd12b4d3129ab572fa59ee6ef76badb5726f7eaeae69eff26ef7de5b83aaeaf7de7befbd3e36f745b6372e230c338c4f7694be711e3aad412541f54821c4049c041338a06cb9424850839ad16fa735a812ba19a20610ba19020a548b510714076408553070118f66109f4ccd96d4708484a144c28f1b88c6221c514c40717a797241063da9a061ccb8c5cb98058b18c314120526e450930c212a8028b530ba20342aa1419e208238c6e9c50ca7174f9911852fa408342ca1128f38e1a164e431848946bee082f8238511c909630b19a20d314050d28345090a72079812b44c89a10a14159ec62145c62e47e40c1ea2d39048e606b9828411840f56480213694952fce4b0810da3112baf28a29628928611524592900f302c7041e104b261964353acaaa983b18798f1d545862b240952c4265223151232454dc70b433b5ae43861067986b002892c05242bc61a64c6d90db52c648c8a28a489f825097963092ac8061f1897e8b85143dcf233a280419a70c403b1ca111eb10987f1a886114a1512c813d2c72908911166348a50e4820a640f1b4423bcf021858cb0186918d9004718316a4b07328c00030f14d9c334222189493dc4212b8c1e048d294a1095802083a9850f13076490aa2b5cc6d80c39a6c4a525311c79521a3ff8618548a4c231e260c2d8738a4c8ab8e0a0888a3263645e461858c81c53c41e4cc6a5a6314a883805847cd10259c2c642a3d3c6349a7e6e8831ca408485d885480a51aa2a1fed3c5b073fd7cd5a14d6a29b64733a269bd36473429e657f97eed265f2429e5fb6ab15d83aae42411667680b2be6ea1049067398737347835ba64cc9c1fe9e06953cbb76b3ec367fb3993821faed66ed6696599cee6b4c926a505db239660d2a7ff4fb36385159fafd2a64735cfd7e6502d4efd71fb508f3fcaa2034b865ca94453033dba22ba20615f5fb7907e4e609afee1a74455cce3f8b739bb209329afcca270d0d474343f3f945934f1a9a2ca3a1a1c9b0fada34f5b5f3f6334f6d8ef9f5196e6e9a9f793a93734feec93db9270718c4f4faa2d31a142b5b687ede9befed7d8d4bc7ecfe7b0ff49abb9cbd5abff77607769ca73337b7ed3277dfe940cdae799dbf86ff88bb5da696b19ff6ec32efcc87793f8b6b9f1aaec19dc9bf5afdae613dabe39e65b278cdb37e6686b3369aa796dacd4d1aaf66b59f8666ff36b3edfa2ceefdcaa563d9e2841de466f7f83dd8ff3ccef5f69500b4b78eedbd5fc3b696b1b786699fbdb79659d8fe92a575d6ac6dd3f5b3fe63adb86d95bbeb988ee9988e7952a214f502745a8b02eb6077efbd3a1ee8d8d39af599a5bfef6003c3fb0bd40efe089b7b720fdef859f8599af5f9859fa5f3a9c3a71deb1d9c5fb502fd39cbba59ff8465710d6e67991ee83a1a83f0f58fb0f973f5583aaf325fad586f6e7a4568fcd5957b2a88cab78f9b5ec7fbaa7a3f806019965ff9ccaf2ccbb09c35507d699d6bded35a6b1a57aec9b6be724fb967ece7058a1494252840506a4f9edc7bef35f7779f769cbe96d1efc38dd2fa94d25e294869addb56b906b7d70b6cf4bbc7187ff8f1c77a56f838ef67cd7cd525742c07b3e5e64c5ee99c73b6d6da99991773b7ab99196e6ece5a599d437ec2eba02d373602cab0fccab00c03323f0c24fb3c597dad80641fff7ebba8c5d979af70cef59573eec93db927f7006ddb7d79c2f4a4c6139f4e804e6b4eb23ce90be8b4e624c8bbdf99956f9bbffadf67ea68d001aa2fb8f5f6aff213d6d432125f8bf5a0f7fa57f5f430e7f1ec7eebd1bc8731375b1d7fde7f2f7233cf7ccb45edf7f9695cd47e98314d947d631b189bc54f78dd7b13839a9b28bb177eaeba84b9a31372b36e0fbe0962eeefc775ead7f77805c2ce0d6deb21e5fc638884ca9aa6653d64d500b3bfbbcfb9c0ed123d97fdea02adecce7c1ca761d8a5a33916c761eeb187ab876ba843ccd55de2b25aab6156cbe8e6b5a1b5f639edd3cd5bf17bd5622d0baaf63b7ebb7a6dbd5dfdbecaa3639d6cc565d9ca344ccbf47d10b4f606d5d070a0ee2f57bf65391a5bb30daaddb7ee6f45359c9b26ca9db98e596b35ad8718637c5fc3c07a06dda0ba1501e10f97015c370a2728af26f1ddbc7d98839f5d9804c6fc35e80a1f739d6a0cba9e7939e2629707b4712628aff85ce1e9a1cda58d7d2a295c69eef4044a12ba12d8cbfd8bc0d7951878aedcfd4769f7dbe2d88eb770ec8f4b48ad8872687b4f3dcfdafbdee7ddf2bcffbe6dbbb5df782784f446069e18b674eec118a6be90cb9ac4bef6bfec6d8bd301fcaf04c775409defc1e7f8fede2cbf040057da722bb9e7a60ef8dfdbaf55a1aaf2145eef0290eb1fa639f86dce062ce628e5aa8e7d70ab5bfd6a051ba8bd5f5d01cae912e07fdcc30515dbb0d3177cb687df046a073fc480d23a7eae6fbdea0b2a1d6131df9c760e0845b75befbdf5524e6d49637f16c7da10a58d6d9f6fce45efbd76e3e1aeb5af63cb1a9b524a6928857669c22e5f60a97b29a594526b29a5f4d27be9fd4bafb596725ec6c8b0cfe6d84e71deb4c143ac2d6515b695258ccddbecceb7557a57f46d0efd117723f2a1aa2d99d5a49e6a5235a8964a123a26b4b3de083dd7eb2310fec98120d7320e82af3564d87a8655a87c6d1302082805f48371b40f9880e9ae4e6b4c9e421dde78bddd34cf304de2a311dcafca60b9aaec7e80599c57b9629bac7e71c9a214d07e3d8cb1059a7b58bd8e7eee35e77ef59d79a2872b1d9ac81de4f6e3d56e209446f5aded50d2b6f971967e5982103dadaa377ec384f426dc1dca20dbc4d93eefd67f1b5518d6fc7d96f53adcaf38f72ceb32f3899e1fa4da153ed539bb4ce41e7e6f47dc4f96eb75519630acac5b9a9559d90d5985cd98ca17174b6d2c00197a21bf70546d0a502d2a0bcd3c747db47f1d6773b6afb7aaabb7bdfd3857ab73ed32b6ef6fa0ab955bfc8dcdc18fd3b74fca9094a06a010ad0cebd8757df8fb0dcb576f54d514d3de9dbe7d2fbae8467ab5d81cfb7ddda3c18e1b5d72471a277b8e397863067f3805fe77bee3f4ef177663e815dd4dbe99db538f62f94d638aa827f776efdd065963d7c7d5d2baa31b06dbffa1537c35fad56abef56dffd8aeff410fc1137ef74ec3251f68fdbd8bd3b61b5573e8efb388cb98712b463ee017c1dfcdb63fef7773ae732f389ee753fe2ee74cf6522f7ce3ee732b74e3beb0674725aa6659ec763611c7e9c3d6eb67a186a988eede0a78aaa632a68238475e336ce01eb596b39aec366d6eb3df7f1ee37d7ab82d86a50bf42fddeafe777f6cbb99dbe5dced5e50eb6fd0b44bfa11553a70c9ebf31b4a425a6a627a98d6eb02f8db6699bb6c932345ad21253d39394f6b9524f344cc752ecdd2a6d6e1e871c83399c629365766d9536378fa363da87b69b76eb69499ba6631ab66967372d6ddfa7d12c2d0c6925c871b9756c4a29a437e66df2e995d35a796b6f924cfeb0666eeef4b0f2ecfa50d492b4a8840cd9535a57a4090023170000280c0805c4223992c420148eea0314800b6c9e3a5c442820cb02711404410cc4300c03310cc3000c023008400c7206198ebd0011e3f2fbf082e744f375ab1e2ace8e0608543744b8cc64ef6ced1f77cda025d48224b510540da40b806cc4fd3746d030ab2272a36ccf0e8265a69b5cfc9f0f747372fcbdff773594a578f6110ca1449fd5dcec143c0bdf49d2ef0255c8ac116798824812c0bdd2d1c6313b8c33fa032f989eb2efc433a74f97e93506c0bf9392d8faae3b9b9b69fc03923df692f7369ed564523af72cbd5981abe8770e3d41b815bcf364bfbd17897867ba09b635f9ed93b879018af5d841a2362b44448e925a4f6d82a5738be25962bfbc07ac1ced743cdd825a943215c69ed8e16c85116f05204f26dd6678b0bdf36cdb33ffe56c45299213d5705bb4c3d1ca88820095140fe210512f018c29c468264c1e4af6bf1d559cfc3165a48cdbc7ad4bf6621cdb6932ddec4e8a15aeed3b2d804447802d275ec65d6e8165d8931ca89583bf88b1a285ba8bf07cdfb859a03a813b9f6cb061cd6834371000b524cf5593d43a3091c449197f04d21696895ab6fc4eabc4f004c1b277c109f4065a59d575d51df9281a31f04a97232a0aa8f67b6ab7e7101b6d44eb35a1481a8f80d09043f32e89b94cfefea95fe27c53e7b2f6b7f9cce81d9695568c5aa0fae8a061e6c81ce164509fceb0f8bee50504d7d63bacb5303d2a71d44a5733d3ec4089aa228dd938777506e6dc7898ff332b16a70f9870b4a67ab8865f4d89ead08303731442173377179ec6f46b4c1fddfdcbd2ff826c8a6644f3a984d3c05c927bb88afdca27bbbbd0752510c248c36d8341d3333180a073df6724645dbd2b3ee768d7362cf48a81d9a2fdc5ac60f23dc9e44671a811a5a141e9c6fe9057b7e976e690de62c01036a995ecbc552b905420a2841686455d5e8133d00e5beb3c5b236e0d1dfd843cc9e5a5a1e6ec02d3bf2f48075ea03a18639a1bcb56c10af364b3fa398c3d6bae17b008f78c355d8b3ea01e158b711cb0cace4201ee85b186b3a68fa9fc15573032d7f7e2d85e9999c9aa8ce18f68b016c19d3ff754d5dbbf14a4258eab4ab09f5c6d758ddb65e31df8eb2538047d8673be8be9d913ed94b50458077dad8ddbeb11781a03ff3cb202a5a0b9577b7b8287cfcab194d47020fddd9a34e14e502789e75ceccd7d225bc06cd3b5a395c805590f74b6e76313fc6c709613dc25bbad12b8888f91a23098d2342904618b6fa836d99103151bbeb2a90415b577742cc9a592c0350adf53020bfd88f64c8a9036e2a74582d153b9869737547df30409a224e9d96f7738ece148d71e81d9f2a1e04ee8fd30c2401f4dd09c22c0e723967b74694f19c102530885185c7717aa9bb465b0dc5ddd71107390eb18996c60b24a1d7fc9a68e7c9b43a6196b869f5c725743af04d166a043f8ecc7572d56668763e8995b5122b463a3b494150fa9bcb54e09df323b90bce21101c45d98cdaf8398e89aa24ea83a49b566e67a19136aa191276dd57da09bb98cf06fe8362ec0e1703e6b048f2b31d1d3168e458fc9e0564fd8745f721fbb15b5923bd2b95a7c26fe2c239be3788d39b540c00976b560ea6813f9a76dc13c9ba619487a35092dce44c2703e4eca7bd8ed977ac0c698cd2b3f79aea67b66d5dfb8851b62faa7d7fe11c25b67ae4569c094e32d299059bf448fd69d1c5a768434f22f3260ef327cc328a4b9f092f7553da4afd422f058dea42f6a24f49a256b14dda8853587ee199dfce60509093895053ab69d1c14af90c60d0c852e2f551ddb18bff2291ed304dec4a84618022b33e0ed3fcec75a0d3e6777bfc37bc18eafaa68aa475cdc41827be0c671b79fefff4455a8b52d43b9b31f69b6827aa5a89a401360b6d70f1f0a5c7bce8a93a36f33f581c843acb3dc90108761e7dc6dbc530a959c128c271d7ea80ba1f46f10fdab5045d1055fe74d623279fd43618b7f041b0d47d11035e89e7e9a0191e2d36603e32c3e0022ee456ee1332dbb2404a48d01d2db83e70063b6a77dc16c4f9d8ed3b0d6eed16d4dce48d86a80fb89d04f66688352bfb2620042a022c1df5409d4e198cc9c1886d653a21a5e70482c0ecca38d6851d39fc098269c9c4c741b1d1834f5a86795f830d83dea895fa4111161dce33ada67289832e623815ab55e1feea504475bc1bc65f831eec6687a7bed0083f839065998bcd978afc543620e7bfcdb009d6f16c6d127bcb10859a957702828f10621b4361cf3e3875dc05e8505dbcaaab8f6dc454b97b3f812c61957229275df3a7d91a21358e6b0ad2e64531b841c0e5dc93ddfe450c6db45734b5b868a850246e2bf4ca84d30b7f5b7685b4d202ebf8751772b231a3f6ac2292f716e58e9fca6f5c598e06c85aa981405a349000403124790e08d14ca0d6bda9b1b36ff0fc11bb2473ea5d0e17805547c97284583a890bebd73c8406d38cb4594be8fb20eafd4c8ddac547e5e41769c7c969a2b47832ff484a2680b786304f26b6541c9deec6a62b13b0a11a59e1661a6a4c9a30ce8f5fc3a3df6163590d16675512dd79507a53fe88fd1d09a8e019b80d038ac8a88108d0741f50e81b293b362b644a0cc103e4bce6a433547dfa8d90e974952a4cb3af60d90fa03d844fb10e9fd6f4979b41b615a9c4d1b61061bb58579f821bbd702f0d211ea980007af71d346ac701244ded145acc40861fa3ec1b66f5aceae2e92b20b0fd660cfd25a9f81cbe7272da8d063ef548bae23c230d87e0b272fefbe66543ed13110f0d9d701a7c401eecc69708cfe9c427f18be4cac8e05fc71d95ac45a089ae484a91dae9eda1ea7b49ae0262cafcaf650e720c8bc0189338f98c0f57a6468a26188c976fb2daa69ef5c48ff9250e82faacd9919c79ec5f9615097312643e715503fac6026d5e579b0bce07c7e94cce2bdaa91605da42cf83ac8660520172cda853cebbb3d7d291cdae41aa67c3cc7b081e2505a5f05fc9d36b44ea31c08c5d830f67c92847463f1a7efc2145cad83c0c729b7f88f71e11bb9842ab6bc8e8f0866239c8dfd66c25f0e7a8a67f0096c37dbc10626b1dccc151e1b5a83363288141b982c70aa0537942eda9276e98bbf4573d5bce0eb854a4625784156415e6082c52a318f6d29e1c53451a23ea899902cc7974da179e2a22e15f31e6ac31b10f4974552bedf2eeb453a01354d067ef75200c092019488310079a3a8bef1c8bd52d38049d2744796602e9b6bf2154f156d269c98d22d86655ea1e38cc8fcf34fec43fc8df5ce40b53e6b9c138f6704b3f540042654bbd804ddba08dea2d272509a5be71ad619dbe2067b98b3e25ed99c4534414f24fc5a32d67825e43444d7817f1f928ed106979e65af5cfde3551c9cd2a8b5fd38b7efcf268a9e9211741e808c64c80dcf33ff1391b6f4a54c5c481e3645089362234a7b487e38fee30042d356a88c2685e42dbe1275e267d06669a7846be7ea1777c43a61f5b6df42c0ecbe60dc21757464bc4c36caf45aa8002d781ff58c8ad1b73866e8cde85bc0d2a61004a7cf45c2541776a522c70396acd66c487bc1278ace3d057bc5fb0dc86742e2ce2b2e75e978b538de86e19d95fadef881515896034611c80c05599319abc0d95ba4b67a2af0a4c1dbe10e496b4cb86f040bfcbd093d9f328ab59d3e9ae09c73aa62fcd21c5289e840aa6909986e4370905fdedde5c09655860efc8292722537ce744ad506dcfb8231d81b30cf9466cd01ef18a9dd657dda2a2f6ff3f0af1b6f3febf40ff2a566f27e6c0401abf8975d56415a8bfba87baeaf96f742e72c16334b5d4163b366d2e024314e02cd6820137c527455c0256b8015c6a5c3f809a659423fdafea5b56724ac545d003edf2de1b1e01ebab468d080dd55c5eb562f9347e1d2822c219a160bf07c27364004d224272aa44bdbbe06eacd8b5e6c63f90f5498838a0f01e7c5fd027260a4b59c6dfd94440c4b780b18acd08d51807f45c70cebed4ca6da40d1bab45145ffc5d6a08b8d900ecb9a49b0f35546f220c10f98cafca7261449f08aeef0e2be8c15c8602d62be6b9256a877d082422f2283a3ff6845478d467cce7b86dedeaa1a1f1aa861dfb973fa289fe54932eb6b23711b65b1eb17dc2dfca155542af4d06d3e14d2ca9a4c40e56b91280415e7c8f8257a784dfd77f58a9ac863ef3cb3511db35f894425ac9f1f82447abd0d31f5de9f939be42cf9f4f184fbaa99bca33dab5a50402c12ab62a1e5f24662d29fc53038300f035dd680807d1e79f9a64b7c2ab8ef31c69482ebac6d38dbad7166c170dc38641aec83bb8dafbde5c620464621fba855b0d60732b0f0a532e18f073439c1bd87949fb160e8cbb59a125161b29df07590639c4ba53892d7db8c5af3720cd8f4df7e169415e0730002008a17191e68b27f7e941bacf02b56cafab1247337497b492e15f3a44150c7eae9098f68119a0250486c7979b4e7894309201f54b9f907a879dc8155af29b410a8f4e0ad9e290b1cb7e7c291205d304e2a8c5b406221f50bb731fea1c42ad2b82d5d3ff65112c506a09f9ca834e437cb58bdfa2e6c5fa968ae24d06eb1722b00be55940439e068cda2863d084c9a186778330bb0a231f4b096a4ca1daf916981f0e4234d43fa79246b0a40e18ccd20d0f0562e7b33b8ab97c1ddc073605738c8954d41883769b47e23d529da194c9ea29504fe52961da1968592e345ed180991f322c2bdd4f4ef520c711786aba18f48fe956cf5cdcd8e2eaced3890c5b2161c9b26c56026e0745e0c25e833a326aff3c85649cd0c6d9afc3a35b329d4198f4301998a6928d02679d3bfe9dafabf840c8b0dc92f4ad5fdba9e26452696d9e9b1327baa0620c56a4439a58d4a3dc1479067b79436fc27c7e0057316238c107e4d76a9b30200b3369dfd9a848bdbec18e6602db63569f2b091415987991138ca6f26f2c45da32019e751673573e78b8a26f9e5f66d9f67d37d9d98083f0ed40a9dcdef5652f40b7a280d0453500baddd453cfd5737f4eb681bcc4393428b0cf2206c81b9769c3a628e4d3479bb31d7d5e720ca179534106140018dbe67d28cff37854774381cba596fedab3740a03b6aa26476b3e3b083e48a58d90d0a83cca0d27305792ee21edfd48d254622ef5cc8ce3a0f11a2bb4d2fced46b090b83fff766d42c32c22a2fc7f0802df7a2592c307d22e5622272be4a6480c30a66b650697de4a5a9c917720c9889f920b12313f4c91bbaa7d0d351922b1d83cb9e937e6a38fc3f04adac1ffd5e4d436ef5e9440146ef607eee54d94bcf921ef5bef155c6d2eb72d9b05e9462fdd28ce4581b85379752c2022090caf78d9c6071db55d0dfb60eb49627f4fba5447461fa73fe4022c0237f915d9b464ea804a73343c4ba20ff2fd617f128cd601a5994f4ae8b28172d188938b8af53d3ee4ad4f25ca7f5f065e5a350a2aaca716bf47cbc632b46eb022a407c6c5225beb2a27cd494da0324c5584da9354a390dd506c8b623b68ab654ae20c3b5c524714f97f4596ce3fc9e63289b9322e586aabc130e986b703cd318cd364ae7aa411ec8ca8c0dd093c72edd3e927556ff084ba808b44c07300fe2491f464b1c45f3c60435add20a011fcfdb6fa9bdb720f15000b9c563705a8b104f83952af0aa9a8dce9025a2ad9626830aebe128256e0c4ff5fbbf020e914325f0b977204de8af47b6d21e25fad2cf9e19f804ed35522194cff47bb8642e09a567d5225bc4072871d205bd4a001bfecd0d2ddb9a338e8819d6716cb3c9ee3bdb64a35b303fd8cc5da167df256e32dff13af156ea127872c4e4132dba6632cfe6f6e39576efaf44200c9f5c0f74291e0ecc9ee5e14b72617ccb78625c6a8492dc2f33c8fbd96195dece0a953ffb4574b2cc98ba09f69effc7348af68d8b52b4545379428b88536e79f7ad3a3b2cf0eaec072e52d9f03c699ab41f63fad818cd7bb1cbc523299ca0fbe5872ee2bdea9a68807abaa3ef0fef43a6eaef8a5201005020e2b0f797355f470c6c54e2fd9794587fbfbfd6012f39279b8eb2231443381aade54719c1820e873552cd72bb41eff20b22f6931b0f253a0a759869ca33acc47ef57b2503c362f8da203073e60e34eb8744f1310ac9d965cb92f1f074b2862f162ed1a1095b642b246f8fe3d8e610de066fc490aae0e72e4a13cd57ce54f0cb8a3078cba789a5594a9bac4070e91073f9da21dd63446566bd0af9ab4971917e756814bcc2cd177d1f01ef19ff3b91048760e368f3aa1d11b128ea59fd8c790f66691ee72f89f3d9c9c25cfccf215566ce52c43194bf29612882df8430b157630666de6a88d5b8f8c4fc0362bb184644c7aec9cd51e1e0d2656c17ee0bb0a392180ff9544b0b3f8d2046e4331821f1360ab5a21552a212bdc69698a2b8e951682e67928acae80260e39e19a4b61b1ae3b23cf981a51c12134f2bd518e15edff931085440b7f0e05815d35ef282a2577f39338a55a11651db331d6b98a3185ae98c5f6de926e08501d2a185202cff25fe00515eb31f40da201b44561000b0acd925ed4f8212c39214789c40363371627ce68f106ed0f0834081d59783d8e6eefc38e071a0ff679a352e1a135b6d89eca517b1e50727bd78bd0c67a16a4a9ebe893c5f066f378d22351c34702ef6d12e119be300dd404252f7a3ab11c2cd712e4712f86059890bc862574a04cea8d756e6fe56674b05a1ce195e94417c636d34faf3e36a5920d15cbb780fdfe7cd3058ee9126c797631a12e0f058697d9d6c1e0b992dc28cf7df79fc0dd92cd57f07e43f79fed6376c06cc603de48bb4b4d20a3407f22258d2e0e2624c53be25b6dd4d49bb81df183e62902433b2dfc63017542d8843fbc0510e8881121ff432fab2a3d3691cfe97216102fae49c85143869a2accf9b0fdc14dd01f1e0b79e90110c31df53617c1049cc511e06dc4d2cabeeef69c326ef12cad1078e262de2de093144936cb0bf3325dab86806b736802d65dca812097cff0bac63ddbd3f4673fde1dab0cd58643ca7132b04a98cfdad301f625f95a119f5e74824c1e9fb8290a474654c9d05d9506af1130da6a9626d964a69de2eb915ccfd3d3a7d86af3a5c3beca0018f188c3c1cf2c9d3453b88685eac02b5cb1513746cbacd8ba07212d1a055501491dcb0b2919b5992e1b06c7171284d0b56a57110fd27b8b2c967e62bbf00ddf0f730dfd65363cb9d2acce7897e411a626c79ea797f4b77cfb19e11ad75ea0c16d8d305dc7c8874f6335f6986cc1a68cbdda235b728f5c5174a31be5bbe96fa889f660e7b4c61dd5bbb3b03642984eb9c5588ef9433852d7ff331dd5b24009b4c1d9f268ccd80fa495425648000eb68e80df9d63bd004b00ae4b4d69ec2022880910965456e58aa22808a4bd59d461e5e6acd3ca22a273b49424ed9d5dca60cbb9e565916d1155084de857fe3ed283c209a974830169fa914a787b63761dcf4cce64609dd39b933111b45ad8c8b00cac5849acb9e9da220210c8e9de9564da3acecffc8a0688ed274487cac62882e639738b3d01cffed28ec5c8ab068e50068d1cd04f03a5b1cd31007dadf9e67390f2770e397d12e70b90d2191a5ee08caa36db5342ca61ed010b6d1fe61f25e0126f82f12ddcbfb32cd4ba3569eb94bf10aeb6c27c56c5302cf84516fcf691997b34a29eb3038f94fc2abeecc68db887288bc4fe4422ab0d99993630f387da932e2e29ec2804e516dc2e1923c61044648a580f97cb63d086a4ba1be71d54afd4c755d44e0b5a1dd447280003dfb78f02df999c22c2b81009a69406cac1393825f916c10278bde5cd14f2d7a78bf36bc923a901b417268a9ce4bedc2b53c1c019a1d62da01c5463283de3b6fe85ae312f86a63a7047656cd8d406d69f8904a0b8f5d5f34a2960c4b5ceefe80946e90106a038db49242c99ad3aa3a58b2aebf913c97e16c2aa52cec4ab280ae288c90c36a78564145a28182f3ec9f357a885c143372867c5261d6c257d6ac4104253bcf5856e7d6ec19e5c3e107910500a08563bf31fca6f230b9b480d84f9a0d8da9a4e188ac026588aff5aeb1cb0ab972338da98cd619fcf1eea0549845d4ac9d38fd0d0da97259cb9b83ae376f343314ddfe328b327b19c1aaa411f6d5e1283d66a8f7a599482fc9deda8e59822e5c378772a95287009aa195045dcc7d97137e42ecd07d4c1cb942e4cdc2a5ca8b96614802818fd11a7f40f92585642de8da5eb7d2ee1d200c5faca557fee998b7732f9e3876b0649a284f3656e035fd3272053eee2a8f96c0d2f9054060cb53d7c34390ae05214888aa9d548f850f0ac9f0bced8935c11dac2bcdf6158daf6b305a6eb28237bc86b6e3fc60548f82221287f58955cb4a5a2425d770dcfc6a291356ca2d7d5634db4a0145fdac2a4be8797e9d79d179b8112fdf9a5f2d548d40227f3ce428ad326a096c60534ecd04ee1a107cdf060f66bce78f1db7b1241d59bf5a5e28578493d8c4796e1688e1442ebe9e177cfb6122bc1ff6e3d0d572ece08141c4abdf3bc86e5aa9d931b311f97cf26db8b615494ac108ba5a96086faadf72c61b9e0ff26d2bd064e55f8b3cccae23d906bc966575196d4ae8ce09fcaf55606ac08240015cf9a72fdcd429ad163a597d91b3ba2e88b44a1826e1daa7b25aba4f123e2b36226891c477b060002a5e4f61b5acd7b11a8d481bf1e5da6e755de2a516683cdc65a835980d02e1c6e2073c3464666919a301c635301f8f7bdd2f26794f472df4802d6242c141984155831cd25794b0a3230377ffacbae001a25186246eb9072a0a4e414c3cdda95a9a922204351d3429ef24fafba92fb6b5986d9b5de14e48c2d39f8043f4c97458516be4cdc3480a87998b4f9b17b1e1d52c87030531156a77d3fd83ae0bfede010bb3be78a5b22fb29e05b1a3e9850ca8f31ac86c5d70d836ef24eb792be8a54d6abcc4b55994c6e5894e0528d342bffa903435824742cb01f462c2791f404a10589c34b02c1b8335b0d40c1e4c3f1ceca2e77b430388c61e6dc806320cf2cb2b6c3ddf58d77eeae21b6611c1639626b3d95c60a11e1b7142ca985f4d93671ae20542c1127828410d5cf71eb48c236cee5f5c25610f5802be28835214eac402e87e95a837a26731394b184b8f20bad1f2433707e214bf385d13db855f3ee11bc04cc3ec01167d7a2b795ba00081d8f9a8fe00964217cc314a49d4a7592fbd9ae33ea136ae15af658083754a00dbc44b2fab3515afd3fecd7d250058ca009b64a7a394c959e8464f5f34aa73a08415c83df0cbf326f5087a80bdf9573abfb2b2b83581efb8847b4173dbcca11d220d9ceed1bb21a281dec79c6c3580a15167ce3e15276b9c78868516c014b3bf12698c1b80406e8813aceaf213a2c5c5305fe47d6a77b362e02fb050b74b7b0530d5c84ad42ac7da5f7eb2d838fefa155efdc980b83a22e2a961fe8a235f2a18876e6cc103a64b20afb6ade91e18e6d6fc2bd82a2881efc41481482ac848de0499270efb9542550931116503ed4dc6bc670f2d619d81267b76e359c06e00eacff875333c9111dc9229c8497a6627d9fdb7b829bf1207a46a59fb7fe2b02b08f3e1a958c012e5577a65a6adf40fc97a44c9afc44636beb2e4772c870e523574aea8242e785f9c24fe059152b373981efd10ddd301b71ef41ee51a9d59dbe1f14170c197e668c969b5ffe17771f29a3c5bab6f3bd969a9f40a5e62bfc332631cd86a0aafd474fa58c2f1dccff5954a390800eecb1d44882bdf17b4e2a1466a392344061e86dbd9576a0c21bf13e23cc142897f9e407de5aee82461f7e10ed672e55e3f482a5f59d84547967fa9013acdb95deb56e4c81322e86d0b6356acefbc60b007ea5d71193ed20d4dec6ee1374f001e9fbd69efbf2f6c68bb3f59536e75cdf0b622aba5c2c2a92f0a49fe30c55860e520dfbc6a531a3b650553ba6d2d15020207e40f8aec8145e7f1da1595aa16e529827c0bdbee505ab3680830dc0d92ba7fb03681b8e3041e66537a0c36805339cfbcfc01af46634e90553c07698612128ac82d2b554c6351a189b1bfa8ef388030efa8c3ef045345956d0e60b44d804824b3aceef9b302ecbff5b8c00a50e9171967662ca249aadea98590d688adf08db47110e12eb4f728ba662287e9f5b65d3381f26e2effca9bbbfe0f04dcbe4a8bdbb3faaefb8c8da8c3ba86d3f324720fe9bd66e2d564c733b72f6526f2ed32a2800befbc42611ca5579720a85b509b57684f5ed4877c419795e8ee2979027d33884c3bfc7ae23c126acd9f0b993817f2913a3d7f045ce071f88273402a62cbc41b590c9bce03c5da71bf0b9be6e88799e39e4120506c120718db303e308ff80a89f6d0b4c3ec963385664693d0472a1462854960b22f798b6f0588955a08f3218c7b9d24ca5b7f7605ee0fa8b9ebfda6348edd03eb8db7e3f6c78fda08c57d0285a1b8f718415681bbe591841bb69fca6a9402a2a5868e9e9a284c072e9695d890a90c76092bbc7684e2fdd72295575c693183d4a2dfa972d6891c9e453b7004e020d02bb173638b87bc25f0917742c1436f8a8cbb03d46fc6f95f5ba0bd264c24fbe47313ce518bf396926ce93689cfb4145029ba1e1bd3d8e6502b77782038a766e95383b6882b093d1993f7fc6063ae3381eab4adc1de0042912864b2aa9af856be50ff445711a82247d412e6b4c472dd53c6014b42568fe7f9ec94a4650de10b1b4f917f79bf42d784834a9c752e8b11e5af789df2a1779d249fdbccf89bf301a60c6a419788b41d8508f22fb3a8eec6b1f1d7cbd74334e6bc18d472e7d3a154b2130ea2849354e4a37e30b257bed5c5842d34cb32119a9f2d0b216c4d1c1c3fa7b75f045d7f0b27682457c2f4fb778b630ac9787bb9405f56b7008de2ad3aabe40f2cbed20f76e0b54ce3d17766b4d0f98bc1c90de08217fe135b2ca5f6928cac88185a35cbd0d9782c8d17832964dce212506118f361e674e7a9b30018e2f4d5486cecf910a27fccfdee4dff2bf5970f932b5c4e436ce79ca7f39f97496a9ddefc596adf816af1e0af8e4ef6f762824175c5d4622230b887a99621ac3395323a12c41aeb7622b1f1c4746714ab8af42e26f58d48d65c41ba21e94184846943f14dda9183c6a91f0c1ff1ee9eaeea81dc55594a4cf4286e6af065e0664456e964aff7d6da6bf989be30dc453345615ec82f86c0a57858df1b75d964f07b7e382803714eb1a0f5a4849bf3e290543209b8be20d32607d8a0419f1ea160893d99230fc6104a2ed61a55d05eaf1d74f086d3b93f5bcace3a8994a138a80a2c862102a0659e351dd8c34867298e57a9e16eddd498956419ea248d6102536bcbbf9593d46f09c70d6ecd84fc9506a36cc54e39980a9e37470831915d47e5af29e0b132f2fb5dcfdf2ef569ef11403696d3fe65590bc7d258008b810e3464d14509c667db99fb87d5b5727a24ea8dcecde2e0f65018d91d648d9e88b40e9e837bc5221b3fd8c37d9c4c8ca98ea2e620e8548f27cbaf3041664d936edefc1e6e3d7802358a10d9c3b4635d8349f3958d95415b3d3c09a0229d67abcf4604eed93c1dc4d107d6b13f6935c7ec124ea080084c349373da28fe861acbf053a2da1e0cc81340fb295100d9d03ba3069c699321f61e0649173c5ba343c662729568ab0faa939cc57ae1d3353ab3efcd3a78f29689cc9c92f016c8c82d63df8a27868dde18c8f466ec1b053125e0f1914d117cf822904f6e06f4c81973a2a42d5a6218f5089b31e5a62d6646069f89ca3cfe9188a69b58177e81ff592ccf8e1986e39913e80469517895ee8e014caec57283359221b984f036a4208d1e022dc5ed471faa5efc194a9506a866a3708485d00fb272606777e1004f065af9d27526f9b3f32c21c88206339cb0a070608e16f8c7fca7d9ba8355330cd3c208c23fbe5ceae1ae53180c65e929a4d63ba0ec2f8ac45eedc69269000404a8a08b8cd80b010409d9f2145b602e3881308d2063bc48ec3395fcdb9060076a3f523b39a5e5caab7517296f65e29194e630f40a100336a932d724519ee005c601665c614788ed92a7f03329ffc92776552862151faecaecc1372396edfacb781367a98e81a92d3387c794acfeb33b367d4d5b178828323a5219a2c4b4c6ca62babea705e7413b985f8e0cda0481b56a77a1eece50f861e9f96a64948597d5e3c621ee9cfed43677344779d9e1a9e7c23a5166aaf70fd86f275392d884521aaed95d8b2e1cae97146024c1f3f7b283c298f92d914c8b037eaa7badb599fdf85de2c1bff9cc42bebbd2037fbfdd7f36b6a7b86b4ca78efe1bd4f9edcbb3fa8eada3a63049f1d210565d63130d13942adda9197b98b2471cb8b33fa6fa5e4ea3972011caf3804d0928e3e30a40700388ebf0c05122f8b986b9012f8c2fc23d0c0e86db6520a08b83c7dbad37273602220e0752188c3fcc7b2c516d3f87637adf124a14b4bd8ac55a01fa527f93a6c5101578cf0532fe05324868fd9536e5d5c5118ec5adcd65aa50a820ed826c819a8b9c260fa0e2b2e7689faa0592b7b91bbf2b40fb98b55ec6a2531edb6faa2e048503d77613b105433f01c8e069dfac71987730a6ff499305ce12c2408846904480285f0cca9414c80751a0ff51a28082f635f76ce19a89e273efcb034c28f12dde25a0512e0614184ac58e14e882701f810ce4eff5746f34758f7667557f6ca9939d8fc071ecce04e1f36c1d48aefddc557f830438b2c78dc2c479b24573f170e14fae8f3373db7f6c829c87bacbdcc3bd0485ec905e8ea622c810845bab411d592f068e2c059510abc8ae4103a2afb4f5c4a11ac6f8dc318e38f5b0996cc61f5a555075b859698b19906346b4cf50a5cf104b5a7b89b6659be92cc8a04d9088248cac336844930658a486467cce9f2b6dc226b88c42ab2a8994e230b8fd119018e5d453c8b527e0b2c42625ed46991b85eea5ea90aa833f73fc86cd2ce5c70d7307f2e653d8a61ab2d2ac85f63d22c814d412c2c7cdfd4079efff0a75edbed93d3b01b6264973dad09bbe02dce6ed3db2054f45ccddc6d5043d12e70aa10e7017fbc8958a385ebc2f5f43242517beb05cad60ed9f77e3a704c7d52176250c659afadf760946c693d77e82fd98c6262ade9c7f43629a6813d546e32d6f26fcd6c3255ac2d16353b501e2111072bb5d41056f9cbc40dd38ea603fd593c6e6ce2260e534beaee9e5b38871caba6113d3ba1c46bb20f195f069735f3bd40866e64f2b51f9a07082805244ea41f33c386977386e862b89036c813d8bc71ce78726fb9211822549805c267a023859546b48a030461c0c2784bc2cd50a576b00450e6c8c0a37b665b618c86dc07f2469700f1ba1e165b756c83a924e1398b92bb189a38706485a25d5f9caa710b8fae397d2efc28c4cf11b01dd1438a215509fa06d05a0aa256790e0cc526622e8cf0ede64123f1bc296ec6651b83444b8c5d11083753bc1fe2c8332b2f02e3fc79bf98333b66328e7679733a6e2189c007b994547f72a81f0f0c147ead939a2481e54ecc861841c073a111eac31380deda8a87a6f5c270077d03b2e04bf1ef5d862a09cdc1e39a832b608ab19694340239414e6f16c3b1515a698bcb4825809247b32ee4552540f445b1bb2526ac289e9a39f86c8cc2135b112665c15303ed12456452362abfda29d0b9ca5187d157ec876ad84c5b196f734fa7dbe1357c7a03f8022e68565d1a371ad3cbc361c1954f269e7ee5b412a027e10f31afd548d6fe83c17dc9150243d1c56e6d94bf5d257568a0353055488a2f4b1f794ebcb82cb8ee973bd428ad4934d18d02fb7407fbda9fed3a453bd52cc5b293225c88e5a3748a4a7c21fb51ba2741723c8343914b0652533040353851c8b897b654d51e622f2c6d7b1341187989be05d8069ffba5e61adeb73275248cb07c5eec40fe33516ee9534cead05857e119bc192aa88736c34e8cc6d18837476e0ca228d2f924dadc64bd2449bb080ae705b74ab60f4331c12680a113c69c46da2990d6b1c5c92daba8e40246bdcd3f2a4fd56d8151ce9a473ba345249f1cd645a3c91394883ae49c5e558e0749784a08d6347aaecbe6bd1919d644a67a34bdab68d0398f45aa7067952f01a078604c2d5592caa405910ae886ae1baa263715705caa2d802cac265c1591a74982bb816d555d8889ef4b855caa20397e4ac357ac986c4bbcaf134486ce23a5e48c9db4f2b6c4023216f128b38da624de34a3abb578b6f2bb82c7454a02c8a16d02cde57bc8e45871e29546b3ab050304ed8b52575a48ad601410238f12618671749a4ce9913598c57e1b7606c1653569220a471e89380c215c645bab9c016ff166c0b2515a90ae215d1577c51c16db153815a41ac02dae25f2c3ce59052d04165269d9dbc56d870279d6a5e2ddc5654a7a40e835ca3a2b965f674ddb8c28c9551523f2d51151c3948f16c50d1a4f81af38a1d167a0bb40581c547594475914cb4736df10c6e524ccec66bd2642b898533a092106da2e2429738987488052295b4725db3b0bd0e69dd6a4a3cad301636d093e4d138a44800cf758c01a1ca8e3977e86090f4e4d2704d5a64e3e8e9b0dd71a4ea3e68c5667fd2bd164c85fd4b9c691fc200068700a594ee19f2d46b3d3b795c005ebb9ef569380b7253ec2fd7d3c63af5bd103e0d1146eb58b02d4cc9e219e9a48e2d5581ab308b0a8e19d2c6955890b5f05dd1b65058816e41bc629485db82d3027716b9a3911eb5348b9cc55bc2b0c37b4c4ed4c2c72c00f9936e1bd0748bce5174fa38ce525e464bc3b0485b51448b1b50244407520ba8d124456c1ca5482a57ab826ec5472ddd4038945a741d959489c6219da472691645afa452d7cd9b28688e9b94fe8a10c340b5dc242bc3b6b6f815118af12c070f2f432be6c5d475ccf64e767036a394ddabd0d41f40aaa7ae5322d7bcb09366fc4a9606033242581d5015efb3e8682755dcbe53618345a2bc715b44db22aa8214dad959e092851a69a477360e7412bc6b5a74b74547efa05e12956bb82519d2906d3779814a7f72d3f8ff843a73e63a8c9040ed68af45eab54c85a55670109154c5a5414bca6fd925d0a6bbc2141650d393c0d138d024f82e938a8e85ce02532d3a8848a0ee96a721f55aac8a74e47fa7c9d0d563c510aa393971c58d85b73327a8ce3f809242db38ca938eef3ab2a490da9e05a505aaa28a3583108af2a8e89523ce4d498364dedaf528d732085900ea6c089a82e2d0d427d529a2e170172c41a4854e0c1c387974a414368e05fb0a6500f42f1501e4b5027ac9555c5e30903a4e07aaf1fcc3705ba0e818d575f45c51158c3f1ad48660891f5585242ca1049d73c432f040345df3aca1dc6ccff30b5da40a186e6518664db9c262638189a008baf95498b8c363247d1f9e7fb440a64d5adb7bef2da594522629036705c205e70514535cebacfa335951d226ba5821f97f4600b1e57f3fe8d9c48beaccc5e9c5c589e70ae6e29cc2c5fc9f0fda5539e8d18b647325732c7c36b51fe74aac39b928deaf037a5a19fbade857849e9bc64a90bb0c34a94ca0e9428918bfc6388cc1f57ef431585f03edbe1d0d673e273abf78320163fcf7fabdf3eec03f87d417e7e7dc3fe5d873944173c53d855d9156b694a68993c8f693a2ef636badb5d667eea45cfa9980bb7edd24c6b87beedebd97524a31eeb6a71ba7b9cfec71aee8bcf89e46b3baf24784c6a7faa5404fce247a5feb4cd7bde7795aebf7915b8732302f447f7e9d1fe6b737b23138762391ad3d09069498048e5e7a1a0934b2b551f7181c2bb7cd74f22b95f1d9caa0323e212d7fccf7067777796f588dec4a3d69abadd6da6add9168bda59097d6b66e8d784adaccafc20a958f08dd7d42faa9fd9c2dff7492e1df18f30dd65a6bdd3b77d72fad06a5dfe8c2314bef66e75dd779672d12bdbdddeefd1dc7183fe9333857d72e1165872842b21db614cac2da358b6a73d74a8b5f86dad32eba3079b28763f6e9443012bda3a9154e3a8d2f74d00f41314fe22aac633e57e24a3c892b7155905863ea8af40e3925d1f739d9635c89832619a3817595d4ae502ae70cb528aa947b4a1806a5fc32bfcfc589f2428fb3e53e533e5354b545ae20b1c84f093dfefc16249d72b24044eacc9fa94741dacc9726ff82d0e37c4d31539c9c52cec8190bea525d929899fadc755d0d5d0d5d9226ab6f872f7a4e978b0544ebd3332567aaaba14b123313a46426d3a206fb27468d9deeb1512f89ab2c06a50567cd7481a1c71923da53f2cc9f443467a23dedcf20397a92184fe238526ed1639605eed4cae0fba6db0fc8a995816e420b2a2f7b1ae2e7be8fef5bb97be9f63b140064bb1cf7dc76ef6673b6a7db76a9a63893a7d6add6b7368c71d19eaa0954ca2638fcd2f4aa628a0dcce1f5f8fb3806c7edf1bbdf078242037ce4de9ebbee6197bf036df5edddebc960e722c7dd9ccd43fb35d11af7bd694eeede39675cb44fadfd0dd4660ec731ea7b3dac727a4c870fec508096b3b68206a670056685c8a31224c5d501d1da618593a8644071445a5821852013e0418f922836fa1ddf36e994bee61addac66434a6dad754e3be74475444156b11d3ddb7bbfe3f4b5eeb9a9656df4b3cb23ea4da6d605a133f7e40f32475cd835f15506476f32e9d4418f32363f488e693da4677e929c31de2bb8e89f4210173d5677e08c7048a4d0431a0659c5629dcbc881b32f4d332da2ec09c596425bae6cce3f56a5dc54c00e17a500b9e81f65b6f40eac265305f3f46548b9d0425e8185090441a10123fdab801d2b7c7b27013be8f124d3238cd9f1396bf598aa67034d70d1fb1f7d49681a4a17367d28324022beeb9519f528a59eb5d6ce5187d24592f4ce451bd24a7d546bc3ef89b6bf43714ea7213df67beae8d5306b9af57ab839e7acf5498f896c8bdade9cd45aeda98422e3ab169e1c077e1961029cc67fc7039452aa6b385afad40710ae823ceea628481930fc0df193dfc777feeadb02737f4f349616636cff4381b652c378b396dbbacd480ff72412e97de4268532fa85901e3f29c4af5f7b23db0347a0064920e7ddc833b2bd6efb0ceed06abd2dac334c74c638e39335429ba09c538bd1f25f0d9c9aa64d0dcf39b9accda96170fe9559bb534e39e76b52863dec9e12fc74d044f628dfe2dff12ba5fca868134c5e03c4456bed6b3ba4ee2f89d67688accdd1c2aa7d0e47f9da76380eed66ed6dd634edaa6cb0052584454c4807573647faa668e9f3f5658c5379a59457e2b8f77e1766307f25f077f0be068e39dfdbe3ef17c4610f8bb59de1fbbeeffbc007a4d7df79d64e7fad2b70de7d2c3de6af9b79a72b8cc14917d232db52484b4a48364515211d00d1755dd78d01574e229c4e88414e0839fb891d10827838b1638668012f20322f07c0a001356011784190524c852652f8643f5658a031bb800b5af8e00526501ea090b42015935a42a49aa1ca61682563e583100b8615040b5aba45441517c93565054023a0255410e405b56009a28ec889a017f7924209d8069b54a460c6b4199b5a5020cb322ed2c6a9ccf06c7a91c42cba2f2081b228245376aa2e9136aea2aa13481dcf61e5ab23a48efbc092366e02a9e341481b7f6f958ee8d1631ec3e238e6cb209f491dfa2e25db3ab7cae51a3aa252a284e4caaeef2929bbbea780d8f56daa8aed263837e7c37f0eb15fe407efee394be407ef2c6de653cf87fd22201d33a7398f2ae78751dcf9a517347de942ec9766d0f5a58ef6f52b77c1ed35f087b485e394f907fe2b6fcd758a4104b4e7dfd611d40e61cb211a627b2432adf65c9e777ecf9c534a9beeb3945976520347edebcb36fdaf9b3ea4bf8fc1edf3e51e8f9e34ceafafe9984fb7d148dd33b473e61fefe3af3d130b9923b51e8ff91e8ff9f7d297ef0362cfc7fdfbd3d34164d6fc90f61ccdac02d9be6f534531c088b6dc32062019561ca9c6718c35dd739ee6fe72a0f7246b3d2f94a06977e068b9cb5d3cb722339bc8b7bd2752b7febc992c6dbccfe0e83950c38c3e8fc6b937cf070e37cfc7fd30879d8b1ad4361b437e58b84ffa22755ffb5de7f9b8f649f6da273d673ff7586bb911e83d97b7e740f916f47e049ab6573d1fdccc725b1bf5b724381864a41ffde5ec99359dfc6985f87ccec11a0af131dfc31a17a76f01dbe196433048d953c6be943a3f73b6abf69c36b76927d6ee363f87a63d6b1c870da5cd38670d8d61080620b6ce96432fc8f6100daf0db3e5100d4ad4d4489d21f3a5b4b97fc3d1c81ef15fc7e3f51212e7a469d7481bf9ee4ef84f191ef5f1fbd43bb70c6578cc97ef3343aabdacde0fff1916993fec95f58642a86bd339706f5737ce9bbed5e971325ed775db7b1dd7e3fee653730547fffb42d7cf2fc0367eae6edc77739b3e6b07621d32dd17a923f773cb39bff6337d706191b9e5e3afde8ffa392c32b7fdebd15087fc3bbd1e267965dddca453f8537feadadc94d4c38df03aa9e353ead3fa5408b53fa4edf5a9113be7101cbd2f9b6cfa5586edaf79d9f4eb18583852fe893d1f999fb9b52f52b797ff43da32e4fe7a3fece3fb321cef0fe1a1b705fcb5c7da3bbe4f6486323da810ed7d037b8212ac5e7551fbecfd90b605a40dfd41c3d76a911ccaf4a0fe44e6be6128a43e91b96da8e367ee1ad624385a1f57a99fc7b8b2f35f2e7739eb931c4fe2699e7ed8d83334a1466989fe39fd8830d0094ddb94bea43f9eb06927b5c4316798dc2cf1571eda8f9aadeef1f0b0c8dc56f2b091dfc1cae3e270f4b76f85d83b85938ee36796527a1ceb1845e6a661868025a20a21c6119bb4a59018419f97efdbe2fbb870994270f1712124464a288c27df0e3610649d63d081182b31585f978f0b0fb6140a8386305056c8b468b142460118ae78428754173bc8a2e5cbd0972a52c8c000e20ba04f8bf785872f23c833bed4801fd72342a8a098e0200c20172ce1c9b231bec4b04597052686186079d3e3c74cd80086143050f059f19f4c7cd31724f6684ba12f51f6f8276f86f1f32cdb5f23f10018dc3023c110155a2891833dea4fd6c229cbe9f47d39f8bed309cbf76171bf57884ff09b81761c68f9313dbf4a9dfcf53da983bffe6cc03787e7be8f802d83effb6750065f3906fd167c37a094625aadb8b6cefd552c5eb836fd984fc88bd60cbe1908717145888b594be88bd527c5f7c172fe3e2c9f0dbaf0d20592ef06780915558238a2871e42f0421545321429f9a2b0c1a763bc84b1b91401c5e904c50785fcfb3eff3e8d7ddf7190b5481ab947128e0e2f339034178c81a6b1e5e6a1c29ed4ebb1ee9f471a7b3ef1bdbc28e1787f50bc00b9b47dc7613fc6d60a24458943879724a428f7484f2b2f5bfe7415499d59e425b5a51097d4964b6c29b445158a82d44141dad0b0d66a2da594565a2ba594525613a9339bd418489139953aa5019f8d511affac3d0847fd7dffa28c701461c2f1b46114e79e4e22291cc51f85e37f77e5b0ed4f55dde7acf5f7fd773f8a5d38deec1b20e6a144abccd2adcfb5e753221ab4e70df0f25454ada88aaaa88aaa28ef6e8096a702590b64812c9005b240967637c0ca53671447d25b67b7ce6e9ddd3abbb37d03a43cb685b16d61dbc2b6856d0bdbd6f6bf013a8f8d511cf9a79328fe7f9fd634dbd8be014e9ebba2396b9aa6dd55d646f4416d73609e73ce393a6ccf1ba0e4b9af02f8004cc049d3d8a9366d1265cb211c5401d8720807d6ae48244e56d594d4c9af04101011ae205a3ee42d3d1f6de710c354f4e64614ffbf4feb05481eed779c1295acd0f335b096b4e89183a960947ece5a7fdfbf28be460e16945514479b6356652936fdaa432bc9f498fdf31ea16861a7b231ceb9e85297b9e936e25387357de0a473f4390a7ad345f17432f9cc0564f9ae634a9b0ac4c7fee8a86f5fc7d4c14da7b24a3be313b375843ac2b9a5a723d32b45943dd6ed9fb71c7202c4d65a6839e4a4c990131b869ca0e4735ee79c2a4889e594b3b3034803ac5c9982aa627497ab9c73bae7607fa79c9d1d40aa58b9028bd15daeb5aa5083583b8114886450ce2904af3dfe04540892822c676787a9c68497434eae382b46775983e18bd1816ce68bd95ef8b098ae990f8441cd6451146446827a8cd9e6388e46dacc9f13ecbc1e1a9ac4212757f6284d342f0e39e9020e39f1b267329c70a51bf8a5f75e0bc3922a516e98816008fa0595255c97cbcd224b141b6a0a05268e6c996245104374c0beb0c40574cb168cf1162f6616594ef64d2fbee9bf0827a1c4bee006463c51450e1c58f15c141318e696279b17b1c5b460f89327b4e8c537fd17bdf8a62faa5c609bc5945bf4a74c4575308a90b2831f82f07bef1d63df25281022638c8bfec489c0de28f74f398b04a214dd50a425e88a23c4f080eb4fc768fd04a67561e21a226fd9b2e54f5c09ee9d426f78e2058b11615cd18104612c99c112991fd9a28b275f4a108417487af812832ef97259827242632e745eb75f5059822a61d222012e2a2a426d614d07a30829b37e616d1653bc092784141e98f560e5082dbc607204a571efbd5196e4800913f6de7bbb38618284dfc0640ccf62df3ba516bdf8a6ffa217dff4201342a45058a4604951f4a7bb837df2ff271c84e70c4b8068585244146e79d09f8ed11a63dc4507265dea4805032de6122634982c116ab0c5941dc2088aa24aede2862e95628cb95055510d61243898a10919623650f9e10375073f04e1410caa25a2e49a3a00143fe0b0644a952642e0454503d50d9c861c2421e2210a2c25d8a2082866dc1633862e4cac0cf75e2e2a2784c0a1ce9860318466830996e06284163cc8d07a428b253428d19f8ed1dae22318639dc5902a0b174dbee9f5a792bc308b0289193ce085091e5cb76c8c9f1ca981c5d0922e6a5ce1a51bf4988de439dde77b8bab44c2a04d7fba58f4f36bd3223f78cf481bd77abc1e1d534aa2c7dffb1dc737b3dd460c37efe3396a0a8ef9b3e723ff5322b57a3ee6b665dd1e3f0e7d783ee67b3d59896acb2cef63b0ba282d38f3633efd3a9f7e8ce3908f393064036bcba124558692acb6e6dceba9f5c7853dd21f1af0af3ddcfb9b4c467a5d81694d6ebf793de6dbedef76ef773a7cbbd783669cf3dbfc74cb2a5b124d2b5b56cb651e3b5e65f2ef9ebce9e7fc37ff3d421fa78a36fe8c3fd3b7f62f8c0c18183d23c6d3318336ce38302804c6eb3173d63994d93ebfd4e11b3fe77b876250779fe99463070a4156684106d50e521c8707ee751c80755afea0938e43c8edf4bb90ac793de65092d4a68ff16f3cb2ee6c48bd4e49ed2868f445d09e1fabe1b5e78ff2ef7bfeadfdd6c2d11f3fb5457ef0d6fc8678037bca9fef43046db9259257e6b8fc17ecf4a4a0e536fa55c3744875913e0d47fa9c05291d9f3ac1491307ab7999886682ecffe0e7a80371ee92e2404e85d28ed2dab9d793dda5fdf5f2fbd0b73de8572017a9b8a899aa6ffa452a301a915b56d0b4adcbc77e0d9d8a8b210f1bdb86ee72d15f0387d83d4b478a288ec73c668281e9117449065ff881513cf83450882f96102c168bc5629dd0e974252c9ecfc8ebb8edaea44e7dff9b83c4d16484230c4ca9a4c315295cd551186e214ed190de1087b11c86d65a6badbdf7de7b2fc618638c73ce39e7ac699aa6691a354057aa428f9468ccd9da0c70cbd2079ac4a1f1f26984d70949e3ff81963d802985e37dc12e2c87233db27d86f755e3881e71ea050404040404048442a150281425e2743a14509db56c6c55aa42e314a594e2144ee17d5ff7755ff7755ff7b5b2d65a6b6decc66cacce72d6fafbfe45b1026ddbb66ddb46abdd712de7486d54a38a9e41306e697004e75fa242d7b7b2c445d31f50eeef5007e7a620941bce908364916bca580e1bc16340e6e14c3e7d345ec0c6b5958e460c0080dbb45c4763064880d1a4916747a30be21d8d1aa0791142006146a6061e8d1b08008d4802006c984608332780f95e6b2875e11907a2e726aeb179447398a58dac4485a64024a52971d142a06cd9b4fd04650b25a571246272c47c0c8fd502349e19374669265859f626b9ae4d698ce73377924d6352d2c60abdc5806c302c34e94571744a06cc36f25e52076fba758ac27410c5993103943c1394a3185d8d6294358ad1d628465da318d02816348a05ed31933c465ab98cb4f21969e545a4154591563445a22ad2ab95c317e9f59b86a3b843d22b456966a82d1cbf942ad4a9934ca414af280d2aa7b4ea5b3d4b6cc162fe5424ce5ea683601b4c3c891b4c07cdf41c47b14c55b0d5a67385614e7aa536a53a65654516af68d1a88336fd98d24c6fb071836dfa31797e0563b4cbb8b2cd362d59a147ccc2ac92167abe56d2811ef1985914a77e38e2960c31ab94859ebfcda6ab3a6cb666791669d4977ad54926c61ef6bd6293283683805039a555df6ad53a1589b3977d310dcb2f1e9b79a40531abe5020aba3c2cb85029d5caf2cc9605ab2c0a42a5542b566be53cfea2fecaa31a42b1394f18e0c7acf3a33ee1c72f07e74711c73b4cea6c377ecc267ce2e99d2565d6df8b01f829933a9de9c71bf137feb49421fc7823cafff40872baa48ef7f35b903aa3ff7ebc91255943cac8190982a4f1e38df85b6ba97f47ea9072fcfc2c7564a8620ca073420e0e8e70bcb96142010850c2cdcd006c6a047043239200001b372384e08b7003c28c4c8dd2cdcd071ed0193031e08ca72a1818158c0a4605a38251c1e400310f0c38d2257b3e25aa95a81255a24a54eb8ced61c0fa39a495565a69a59d01720f03dacf71efbdf7de1f6f6680ddc380f773488c31c6f8c79b19a0f73020fe1c596699659659e6fce3cd0c7094c3ff6a3fde484d6a52939ad466689f436badb5d63fde80da9e01ca0861404d0a726db025bc20428b0f52e4d0f19b2cb312b61c6a42c539705e41dddedc88e23ff73b5e370e0b2e6ff6be4a57481d191e93c85da6477dfb3694db3d1dda9edad3ae4671d1c7566ba94fbb8d6a5853db97aed0fe43ea0662d3cfa06bac2125ea61e5de714e8612499bb9f3094a56684c29a594524a29a594524a29959d5c62eb59df4aa75628a2fcd2b02ff6323125e6fce913698aa6eecb9cb5febe7fe92fe7c1ff82c564b3a28a52ad562c56abe572016d2929516ccba222d49654c56ab55c5b4a29a5c364338992524af9524a29a5e4c9896599f6d947670e4d8d399887058a435bd9a581bea0279abd66bbcad9e599ad299b15a1522dbab2344671e803e5199bb1f9b1d8ae3cbea238a89cd2aa6ff52cb185a9bf5274769289b1877dfed2f9d3ff897f12f3c88650300ff512ee6b9ba077fd762da18abb4a9a6d7ed4353f7e021037cd152f091700d7c635dd116ef863067fd4ffe327c28f1fc278da78e6c72cf3a3def92b8d220d184d8636438bd13cd03ed058e3696fdb7f7bdb6094c66fd0ac6998aff4205542e6acf54780b0847ccafb26dc154569fcf300c2316b9b70d45f4d387e2f80707c3100e128d284e369b790c570cc9a8470d4dff76f0a477184703ced3a0b5da0eb5dd515820b0419c5b12d4ae39f67c2316b9970d45f8d70fcbe148e1f9b6ba8c44dd9243954340380024316000028140a864322a1481a864922ab3d14000e748e4c68603c9147c31c46511cc410431400840000000000106294527236090435610d19301fc342bc15e6da64a1db8dcab3c79abb271ce55a70e73565f249e46a31711d53212c539f81a7141d9e7bcbb54d8ba39ed43d09da0cfd0f6a021238721a9aadb719433849a318b01f27507a3f09e4a1040165f39396091444d321636b40791745283074cf44b5fb03f30ce6d1a1a6b9a3a204a671a1609740498c7b795074e9e9a86ce37b8b9dbfcfbc9ec6f2874b4f9d145dddcc0fdb28212b10fcbe9941522c03ac8c2a4b39a50d7d088673bb7c8a0c564e46efc236b5a7920a9d5a1869a8edd44f7db2a8f624d2505b624785af5de529645923c16fa9ee74513745046db26d17ee6ef941e35667ea609795b3ae67882cb373f44f2887e236c867e89121c12b0d6abccccb8166913e239b793ce1b934f5db30c2b884d105f177c1016eaee8bfcd27da05e0932a0b337b5af8360bb2247a9adedf5342b46c407537e3a877751f220c757d38e119a637b882b4923503d2c55bc48f99379f35843f39498e77a61261bc10efb08662561bb0880300a90d4dfc98def195458aec613ab2491781b0e983556080ef3cda6c254b68680c20a146d087291facf3d8641bd9cb5bfd4f01af16f5d3124e35d8a67a42c23ee05b06433cc7d1c426ae0c98e726e8648d77acaeaca4786e41035c14067a5bd74919080705f698ddd98ac5da7a3fc7306902802f9ee0748f59f3809d02a81a0cdb99a03d10a7316bb638ff351f1c4a97fc3c753b7e25adac0a4ba5fc0cb7f37e93116d8c249386d252cde7fcebb3f71568b190970e9461a3188872add2702f537c43133f6f04270cdf4dfc5847bc18fcd9d34fb894095b768ff8d6831f65ed4d8cf31eac58a4a500acdf42e17ddafe94753d27a416ea278681c354fe118bb79dede81a8284ba7e50099e6b9ac617821550f6372dbbf70d271cf95afab170f4abee2ea5685e0ec326ec3bbe9fc67744f783d61a8fe169cc19c62bcf5b8214af56fb1d8fcf061da555b1c97b075bf1192b4260749b8e2767c1c97db7fcca97fc4b4affd26367016a89e7db069f7ce9c1e8fddf44da4ffd34229d3beb099e611a70f0464e3764bc91476fe6592f7afa7a3f1ac8d6d53e7ba2ffbdde990cc22f30c8506ff4954aa02860f6013683e8b94c1f6ef45e753998affbabaacfef7102be7f9d1464996c3786579778cacd544824626a9c3dee168e53961d5c42d58a57bb0468b905035ec21eba545fb6e01b8530611bb9ecddf955704e8e044ee7e86d660e1f4c6d03da124c39f985ff00055bf37e58191ffe011ce4a5815063e320152e42f6935df76054aafa4503dba412288402eec9b01149b9b15f86ba7c2826c903ec09b52125343f539a3f92af97c243df631fb85972ea65a104eadc2dba91f68d3cd5b669a0c252c04a9565b984f428c2106fd81b659262efa176f355be02764e37f8f4db31e25b7ecfd674c49598f0dc033522aa20653a16a8dbc69227a3d677b386fb808530657cf92aa65f762d3f1a35300fe955b328fffd9545b3c956a6730f9ab8fa26e51f48d8a5fbbe0fd2a3baf7d048d66889932bf8c441204619682b3a0121d5e6e6b3b11d64642cbecefbd92f953459bc6833c963a96b39309ff88b54ca13932a20ab62f17a128dfcd39d5c7f25b19bff945576f8ec83afe651ba45aebc50bc12cfa02a85313cb70624120d32a46e13eb85afecaf27abc86f348c530da1cd88ede618cc186873e1139f5d694bd1540b3e463bc117bd157cecc90c8136c1c70d29f31b4f093e46208e56f54c7d02ed9b6e3dffab4a799d29e23a363e0b4aebcd4af62c42ccf60672e759e5d8d63fa0ea4aaea272e2b35a5abf9be78e2b103ea39fcf3a35b9c78492b53be65191ff84a2b6e1b8db9211c12073fdcc486480342030b90e2d7ed5fb559d497970d087d919b730ab3793ead91efe0128a6c09ae46d90e3e9cf6229f0970f0b1bc37f5de1860050b4e9cdd499c424ce6fd1f724183c35754155ef940fb4f48033930048bd91684c74a9719c35435ac6792ff04d50436c7705243019dac82b5ff6f95f548548ad5adf83b09e0c650d5dd981f1e0a382ebe1ae80ad3294ad16bc35e2186009d777e7831f0df99303e23ab8fb20eb34bdcc3e19ce53419de3ac70f7e142f77f437fe39c2dc4d3c81f2d97481f209b2801806e40e228eaad1ddf16af5b67c7087a09762a9669de75364146f756d792424f1fd9ac5cf78c8af0f94d16980bf26500b2d94537f61a68921301ce03b1601e4607804d842e1acc3fdb917d02de76ff0bca12df0d3073e3a8917a31a02938aecc484c0eedb978e0774f552c9675ff265a728fe5cf6f3dd6dd3754aa30fb17baa20dc08bd4dfd9cdec1725524b435844cc65c10b5ce76122468ad2206b0e6ea2b0742c830a741cfb3247d80cecb8fdde717c94c716ba0cebd5e187b5803c8875fce63db01cc9c78d937ad3bd0a620e5fbc9392c5467ee3a1a7de982059da1396a11aaddfb7adccc1032d9289f5db9e1bc1fe09e77c88dbdcd67390cf0c667251eebdb8e5f40ee2f90a977bc622616eceaf344ae4fc42aa5e34499b2b02d5d4fc5d5468b7f388eb451837586a213ff89c35077e35ce2958eb9d22b3802af9b93c590395da984a902b02ff7375f7fac4f0b469e72d241edfc2c58e594d53b3cd432c8b587621319eba9a1defa1bed338cb33bed12711de416d58d20198600d5d47429dbcaa91706b1669ba4551416e6daca2365628c4a308f6f804c9f47482a49a4de82320136a5f5c423a83434f20b9a244063f46a5e1d643c20eb0f451359e37133bc404c65548c0fa7d9c53a5b661c20162e2181a3e15c953ab9a53d1ee806f764160032004f455cb9892a5954a665b86e71dca165844fb5bd15a0e944604aaf40124a24a912655daf259526e554ac90f3ee5394807d3889ac6696aa6735f2e65e1fe660d6b85b40fe48451c63d1d20b974c8b69e0c8fa7a9c03cf951c14b5b2b53ff28a4528cdddd36660388845c2ac8f79c7774cb00169603790156089f82d811cd4ee6242b74d0910ffbc17d878038f261ab8614d0308887f1e97829ac507f4e75fa445334db036d0771a083da4c53916392bd5fbb7edd6b6c5505230ac5177aafb9f2dad9d82b35a509c537f95eb9feda4b2dabab65098d2ff95e77edda23582b8b84128a6ff25e77ed15a7d9a92bad843aa1eb1aa4de19b4ee15a59c86288ce0736a825f693ee54a9da95ea627b958b3d39c34848b78133e09ec8a766ca7513ded2b1735378da212c297dafbc1a85083a155555627a96f98f2d156c4db2959ca8c3fa3ff62c24a2b148a36e936d5f3387554edf47f8292f8d84b62b0c5eab1b10af0007a619a7e5da6ecac140eba6355ea372d24000c56f46f9699601130bb4d3cf265cacaacaa1945ecc9275c96813d6636426f0be4631487c3b41ffb37b9ef525d5303267b194c4f09e238bd370eec1a1020096d9917b0027697e6973d8a5e738d979c3230367117dfc8eb39f51033909da55fd849af4beea4a0bb797960fb0cfd57895fc59d8278b964bf3189ba66a8f4437657d2cb5df43b47f0e60cd84825cd3096977d6d3981b7d171f834632d210da5315ec31e05c20ccc83dfc4319e908adafaf830484507ba4269cac48a37e1986a4c095280b4145f97d9d12955a85b04d2efcfc8fe313e50596f49eca3ef92529fa61259f0c38b6216a0f79a3bef2e85d9c9ffc97a1a07ed65544bebf741f3e2054e0582d881e80e38604e3d94f3dcf3b0b1389ed02ec240a3b55c32052dde23a34905d30d59f1ba213dd71125aabc08ef0d30e2424fe61090028dc092202000bb72953f786948ae03d613c417e4ce46f028de695650599528396618a15804ac4c19ff988b3bb4da728230d9f1aae12c265d00105f0011e5976cc2ee4f39def05f1b8fbb750c3ae0a061735bd49f4a166a2b58cb2f110edd596689e0b3cda68dc9d5648e0a0caee7e5c8ae1ae6ac40ead23913d36d0cad93d4162e666acbc6c76ac9dbd7972c5a4a22dd2fb8fb106edcc1a091f8fadb812d0fdfd7490a7b9e2a2a34d17a215dc0cd08701624ed1c58f0937227dc7545974a276cbc3d64207587de36e417fefdd35b25a4b379a3b0a20bf14ce2369c358022b4e67da86cfad840510629d652c41bdbd1bf43e0c130e34a464489626d5bb741070c5a43f863a3536e3265cd1244e5717cbdb46b8b5e333d4e9b784a35a2063ad91d64ababca2402e9d6a5cd506808574047bbbd9cdad3bd8d8374abb73b35602519ad4a8c6b79c3f3026b8be9478e28ddae7be14b07d7bcd1dbc271ad13eb454b899a7615b3cbdde9cc54f57081a852a64b65a8841a8d6dc9a040ad694e67cded2835e443054a0fb09d1012fc6340a2ca309513189a4f04cb97b8f5d955810273e903e5c990202ccb40a1abdec25d148e9ebb15e09efcaeb3da701f010bd0c2a6bb32a9d1c2095d31c0b4f0a84c8c30b570daef4fb0b663ff2e0bbab5e1200fcdeb8622737f81bb6beadbbf3fde6a550c10e86dabda76fbde53343b221f630e5242e92abab5b9301e99dd13a010d787374d5c83aad0bb194dfce3db7ffa41fce513832a77b120868b8affaab34098e0634782371ce0ec6f6376bddb066bf906b0b0945002e27c4228b5caa867be3619cffd30544db750d5e89bd2704bf3f22554b5d7465c1133d36d7ee0d256a9d8722a21870c55cc26d3e08308cf39a601db50d12b18c9768d3ab8e3e84e180cbd81d5b0d1ac6b0bd549c42cf931550bb05dc2711746c1e3564839a5c65f2eb6c0b285acc8989a178b9771f42ab25aef37186a1439378fc82aff480ebda7ab7235c93f081e18884222a6fdf567567006a444b98757ba503b3174c33f2dbcc530d2500766e83c5a0a3e2d6d06bda38af7107e3988bcc5f22f0d34f721829985c262b179768a54ac9c94906186820993b44689ebd2e569c0948b350022fa764b9030e28ebf19c738d44a340348d34c3a03f29bfb177548fa12ddbe449446987687a86c9e4d28ca451fee0ac2d6315cf0097d0858a5201f93dd631c7214fbb924f36efbfed0b1d2df86fb1f30dc7477b0f7984964b301a47e9625f3848f3123dc9a9b058d0d96fd8722c484b1400ecc85b090408ef4196bed95f6052f104822988be8ca28dfbb190010b0296bedc4f5078f2f7a02f2ab1570866f063b2163cfec97e2aab9ba9eeea9f99a29ee6c4d7795c910633a672072a93ac1740a43ba7d18c06d75ee4754e64cd45027588be5c9706738598a6587828b83b06e9c206d1e465e26baa25f8f8459bc416bed1146ecc7244add72af2976917b16ffcae9ff98b71098ffc7c482cc9c32e4f9642f528a3d2f9647dbbffffbf1638d72821eee13db31a00d8a7acb35bd35c69f4cc1502780f0b1f7ecbbdc0639cb28756026d22b554d75808c8796c00e90a1857ea18822cc28a1ae84f74cb3a5010a0f7718f6931039d65cea27a9ecac1bc9c7c1aab993cf4c490ea4b675bdc749ab0c218df589ab6c1b7d535aa64429f5c3f0924c0e302e4d18b75b9b1ae30366c2efb09d40070b463346c838d64c61f340a6dbabe9929df0b0a92def4f5d17691fa86b285eb67d5630466b573bf831e7e55d33829328ade990c72bce8f0645d4b2e95e7cc780882672beab16cd555e23921c385937261e138cb3093a669693814c591922fecca2f440279da8c3f83a282146aaaaa0dc996546ae36e57554c0d3c672dda9a873f4b60be038d001b2ed950d14bf9d433fb711bfe05a3a6bd7e68bdd5b7a5c1c535a41b15f1c1b651aaf5abb29a0b49816373aa9e12623a502c05660e196fdb9ec5b30aec066ecdb22518bd4fe08a348f1eabe064685996070e35a77b27c0800aa2f5a7ea6adf214db95012af227bb02b30b62e7ceed34e740b9440220762e94334ffcf0452a2877db249e970932b38cbb7bfa111b743b6a032ed7914259a479b8b539492fae34151820f07f94b1d60d80b86954653e604e25348a3e7cc04cdb665431d3e2782de2c73ac988338cc2e8a1cb83192da1262b54bb0108ad59525f7d0bf04337e7aa46b7ba72d7fddf36e46ecae8f36d80a1e9521b218ab52b0c572a3a6a8153de1b08b3eebc18f6eaa62a20de97759dd42ca30e4879b25ed4db65fc06d7307319cbbea1838b70da69e3b87f123488bd7290c1735a12afc724394366cc45ccd06063ebe768f6652bdfe233b94238ebb801d820a72aadaf2b00700ba48af4a04e2152e9cc414bf572d8b4637c93321220288080691d91a8df1af1f184240b4d4c6367d7313d0ab2bc53c2eb41dd2adf81ecee9e737779f2051eb029c4c5c2387fa402e698f7cd264547ed5004585f2e9a899363d49f314b2da9b765d676e9dac5b28f89769be54348c74b601740432331b582850395c6fc6f96f77055302b026eba5110d8ef01f296dc61bfa4f60910df23f6d5622aceb8241f5e480ab072692ee003fc5dafb4dca46440b621bf2889c86669ce677779e665b06e03578bc4afacf3c745bb9ab884a8beba9bb4d5f1c113484df140602ced06beeff2f132f643b5bb0d478005297c2185a267f4cfcda92448cea1ff1e3a238b6202e7ee01109425fdccbdd16cc8d8b35afcc240eb725654832ccf5a3a1804a4aa520cfb8f339b5b94a9507dae7be1879509768f05464401cc029d983193fccaf638001113dae3bf77143044f558f7ea86eb0a3ef29631fb00030ce8c9c3c0d6cdc2b0baf8f7a896e6996339951526fd391c9640688c53183b2418e745cca98c05630ca92fe0bd70abd09f4df3383f533bf50567bd8375f064a532d14bf73a9ac78c3168ba814131d574976845a86c13cc696a8004692c087ecf244134e72e5b90fe2a2dbee0067400a70fdd18502fe4185a00814c46eda31528e317440f2ef0ddcbbfcc46a4173c464710504ddd66efcd0c1095edd20b056cfe802333319dc8550e6f3c32f805d5810dc31cf5118a592749d79621f47604e575405c8e020791a23d043236882c34eb0f9f9aaec3454da2d4c08a612856797b463608bd07f39c75df503de78d6d2803165bfbc06628fdcecd17a3a4a900a0c06d44c81ef7d9c24289680d600acb834727070e9c58c13dd6d18c942532d089981feaafe0198c519f2d0c15752465a4f9de06451dc2597605e4d43f44ea0b83e82bb4a9fcba5a63fb2e5e524a8685a398ddde83740e3e6addd0425bab6fedae5236d519551b73ba2799ee50723709c2ce11ad8d7ec351731e460deb3c7a46d6d607f480a90509a01856f0c8d1d1b54c585aa5411f68e939c715599ca1b787efd0ad8ec86ce55b450dc554e0797d1d646c94ec5a1564a2e95bdbdab8ef8692f36c5fe3a3a1caa65a7663dfb560755463f21e595139d0a82b97ac4d85dc7ee47d634d1ce084569c6823132bd623f0a133fb06eb6f1920f5b1fba9df2b2d3bd0eb521fd6811b6b48ffc9e673f8df9636bf5a6f0f3e59e403b6398879b0b8cf027b4db0ed673db49c089a012d681d7f793d0687dc9b7f1a0d1f02b7082b8ac43802fc096adc8e9fd626d37ea83f15a34e14cb87a7bbaa29d3ee4b92fe8ebd6e52f8a61b500c1bee9c3f8dae65b5de7ba174b4e52a04e9991134a18106790fa87026ed03570281ac54795b9fb2edfa1484298abfaf182d984a5bcd2a3cc253f45b8def61c5f64993246f980ca0cd73f6d6df6889bdbdd9ce41f42d326d7c28a6974fd39b57511618f98085c1d273f594dc70a91a4ea51edbe24290fb9bedc4ab04fc2f368c65d44688316fe590fb8ead95ecb313e42c2896eef6fde75e271efabdade510740ff4945fd0899b907ddebd47116cf9e5202bcdf894ba192e8274e0dd17b3d6167782eae6aeebedb8f568e7dd80b84f7ac8f84327c9862f456cbb91987c141fa5bc2f8aa3d600b73a0a31c3186afcb3c006028805c1dfc34137b1088d66f6a312aa7eace9d3da8781252baab1da7b14c46f259807e8c47b7b56ba88e20320fdd88894b85e464dc747e867bb02d9281f585fd72ab2c13f40727138274e5699beac0732511adcb5f19506560210a462d7a685322b87344c3a537c5d78fe4b472da7c6c14a7e6a296f4f70f8084dc6d79ecc46a9e8c6f97a39208f92c643f037aae8d26cdb62afbab4e4fdbe0d4a03fe1b6f6da9927ba60d65c3cb2b7884ce478b4b4460cab4b620b88e06569bff5cb2f13e10a554608666fdcc5a9bdc5590412c0424ddc4d0cadea3de3c7db11f99e545b02ccb4c8899e7bb9065fbc4aa3a8a3ea0666a379237f37be24174986c7dbc71af3cc3e364c9c92d6f749e10d71f936d1a3c1cb1f2fb86f72bf595b2ed277a204cc854e92313db1f07a7d7c687c4f41342c5a9a41dfe110407c7ca45b7ea6ab8cc5ee3b995a3ef0d903760b0ad90a09d69a610adcdbd6fd1baa3ece8b55b6978b389376e4c69592c8c4ae288de7d3e339f72bfe03fd771ef30aa2d70366aad909d0f8d708b02b270c7e5ddbf623f50d18d202f5af45c79b3d925d9a68fb01455c6c4162e7c3db420de5280ee9fcc8798cd2dc5491b3da16e884b60cc89ed75da7b8eb390c877a2948509336cd14a405743bf7ebc35678ded7c9dc75b089c1d94e71902d28fe62601448a28cd7fcfd764892002b3a051bb8e0d1bc88c300351ff88773c2c430f42df37ec8aa950a7fec2fd6de9121bf248a9ef19a68e1b30cab0927b44a4111896614888379af45fe809ef091e95630dcfcfe3953848b1326808cdd77193a26cf3931c180ea51868a31e2b929a9573cab00044f24171b6fb89a491a9b39253648d266b1b5b93021661e5063cdd47b0421d5c33929a365e649bf9d0dd8b8df9fad10aee32c386eaca5e89a86e89e13f2272bcef3533d7b02af5dcd9c593505850ad3579087ab6220d1f56f764cab6bff48e1189be84d1dd611c16be0e2baf9ba24193c0fa5eb4b16e450f687a33b1bc2f5834b640814f3d524b692f0ea26ca4378702cdd8ca3cb7daeb6d5db59f65e318ad8a3b0c896ab7192334927802f0180f7d90abb4de127ad205acd7a8e2fcc296973243b803c69eb3f71551d25b8ede2212cc5d7829a43bb0d10965c4244d688633161e9a19366ed0b6e910094cf9897194e6e6a2ee03e07c50b4ebc36db85e2579e53c14c20495506765dccaed22f62c8ca79beba40ebdb0cebda831efc424f422cbeb49e8a1bab5dce0557eb54ee0835dd56cfd57b876b868e88a456a5fe7b63a0b411586c82983d99afd1803d61c16843ddd8adde4c00248d08cc78800494e8edb397785c495b4cba2c5e5bdfa0d14467aa0d1b33a8ff8a5ab21d5df0d287408457b3effe622c3c86d82c70f7309680175384e46dcb1720a3bd7c7e36844129c700b74f3276444fc33ae397ba211ea6fbc27d05452ea823e3fc3ff8300b3660b7d5e55e9ec6ae87140b2421ca2d09521e01d5c6c9659cd246baafea50010c1084edbbd551b69270b0c07a8f3867de89eff4fa89a43e05d2ac5ef80b218c967a1a138f9c664d86ef739c2b18ed549dfd23a3b598340a162bb7148edab5c84c6449e78ada98d66c9e5e04ba6ab46db936c3364155db709ccb48e49729383a3a38b3b40740a8d560a6ba40fdaedbad1d706bceb3c35cd44ead1d0e5cf360a38659f8e9a5afa87ff1b608bdbef6dde8e3bb45ff1f6ade86a6f915ab102485ccb4fbb4181dc318f6b9756479f9f5535cb347fd880a7f0f6e5ab4c44574e121833c96cd4bc2dd37340dc641f872b04d2f05a1baecb8e4b65fe0c9de299597900b04c73d90542650ba726b851c3feff37743e4446e1f982cc04538f7b4013c9d6f2aa649e0a2c27123974428b60f8febe4c32ae0507c03c6581a49d3f5f2df3ba22fee6d9858fc831807a3876be9513fe68e385d97501b9c4a76345dd2ecbeee93807f0b795d4dbdc68dcdafd3ce97a85fe93ee3c7da15c1fffed051104f8e76b5476a46f0b686d69c75da327b8927ca583096dd9d0cf05a85f99aff1fea8fca78e9e0e943c5221365460bc66dcc7d2f9c696e8c8a8467b9e97e00095dc6abc7839b5aceae79ba777212ff1444c54431bbe015a888d4e8e3d42bff659c800730b477c6954add5591f39bb2529e8763b0543cf58ceb912d3d9de1cdeb9c49f420f7ac3e83d43657b86d1c46f0e5b02900305568b17d9285175250347a1afb1107380ba7b75a5b1889459e69d6890326d78069c2f8d8062011173520b238703289efbab1b68814333f3461e472ae58ab16ce99284e0a12142d5599e609a89bfe3f88d3485afe3a98fb30a8ae8eec2d84caf5dd1553e0f9dadd11db238f4ff276fafc5cc772ed5e2182c7a402fcdaf2f5618f4f6ecbf35b101272572f78b13855c85ec1ccdb00c8511c6e219de14dbeba5a8fa9a9416402924cf487358019829a5499d38854cb40acc66906fb210f89c22a1e50a1715d6cfdb549abc0589ffe38825757e07b378f894a62cb0eed23a3b7386e9f703a0742affb1be6ffb842d9a1d4f35be38eaf2452b8e93bd32d79d26d35d83b36df6aab14b05b28d8c012be3ff56d386500a7834769a89b39f7c5056d00d355abf59a0cd8b4ca12cc39fe85ad066d29a6699fd0420a9bbc36ff12d7a861f8be3aa782581c9fa886d702436f3cd9e9ef435a3ae5608662546e71a353de38059455ac2037d7203d81405393ee778ef72100a626716146c50bea482a62978a0f49ec08e48bd55b10adb84fa9310b0af0dcb05b605534688f954f0d273623c6abd59ce40a86a108dad8b76135fd36086940a8ed0d3002c28e8511d6ecc5380e41c2496e779fad9eec6846c939ecd2fe85768db49aeed488b0ce372307989b41e51820b08babeec6eb926f792d5284c8a6dcce5252980891c341655a22e0c4a84964b55d02430b4fa0b864efc666887d31bcac4575cd614b9398019763281d40cf815e467ae345b9c56107b2a6f23c792965305c2dfd3f60f21787000d7d86b4f39d454237b3a398cbac81fa05134dca3acef4782248ded2df233940e805a7273fdb9f63e4a28f3e8eea819400d790f441c8e32e6a243dd696d727e5df1ac33573aee1d6375fcccad16bd6a7e56a679295309bad515b1689f7cbe296adbe69fb9c11f7d388ca4f47ba31ae1779e85e2058766566512eb8ebeddda4d620f6d7e6bfbdfa6f379c1a3d6b59bbdca24d61cddbab5cb6aa46fa3ded3b65f776b8faca169682fefdd4e7cb3eacba02eeee8c5af947aedc4b2baa538ec9bf988b59488439eceb5729521bf1b7b6f9b6d76299082e18af08af3e7b344e030c0c62f8b6f22b5b5a9274bbbf791a1450b425b081ba209a9466b9e810c5537aedcfbd66a6098cc7840e0ee074dc77f9f2ca8bf5ba0c86bd1fefc6fb00f3566a20636cee0687ec1521266aa6ba0fef825347c135f14eb30e2cbbad3df5aeb4550feaf1c4ca2da372de303d36b7c5160cf5abe64786c586634251597acab7d960bd27474964e693687c14ba690ebff7c01c7d8d7de006132c84b450274c8ab2f7a6a83ba2775d738ce495b2a6036befc0329e3ad36c3be6c73540474cebc09bb848466777136c732a7730cb1e20f4e1b7fbb1f5caae5d3e1325be535c009b610baf65e5e46c1c09d1b15d92fe6d107cc32d7675b619a59fcfab9696755f6a8ad58c09791ed5526621a2c6b7bb841001c4a5f80abc4e6705e64aaf6adf5e4965c6a943bbb237fc11425919867347f35eef65513a7956c7ef1833178814a63efcdd08cf0f255619eea8bc4b14c7bf64d484a4db4597cea1882dc92eec5114b78e5c483975bb7ab21572471c46822911a067dee67488d733ef7149e3613e2d590b12dbfd0e9cd921a6150a0d24f31039381b4e8d33b54fa932692686057b7ee31028481e91aee68e02a3d19e12fc7752cb87516394bbd7b5cde004b7acc7539a6c776d9dd421239e4733b29358d12c79b62a0e16e0a5dba70c0cca710def800c3ba0a5356f85bada004911ac0d718a47be10475b948650e2def99627a67c8de37715d549ec1d5b6946bbd6a698ef645da96111bdffdfa7468228ac245eca7a5330ddc5ac8b0729dbfaee014b0398b166ebf3a0717aa0322d7f9b48485c05e82b156249ebe5a31524e221ae849f5b1b20ecadb0915e66e5e5bf3ea57f471ced2b0a8f2cbc664bf84c6c41a60504731b432645b978d9290618dbea7ff18d0d2486a926f958546c8d8552507a844576bdda4dc3a727d1310afc34a7b9f483c1ae11869090f794cefc5245330c4c406f7a1c6b14cd3c73cac07463f02e758ba1f8ea83fafad3a05d5f7ff15e1b4c5302980d8468ef6ab3f4c391f8252ee098b1ba75b7eaca103c591bde5199ed018670abe244ac9159700848aeb2f9bc50f63edb4973dd547e46cdd97cc15ac191d4d4d6270bda5933fafa0095eb50160aa401f0ff2049df81ff6ff553ba3cdf9a2842ea14229b8651672a54b9d71c8d2777996e0c9b0f1684f69fcb3725a3087dfe0c2bc46d9e26e0955365663e2111c4947f056f7bf1a2e04b284082518940ad4ed8f1796a080364a0f87e984e8ae72f318da68c1d0cab35e5070d9cebdaa27c686f7145898da3911c174edc09039c8ae912871433204f4cf3e8e3dbb98abc677b2561e26d406b256cd4075039d9cccd7455d2e47390203f87e5c8f0a5282c6d14cd05600ed7072c2bfe0a4431e603268ffc086c3da1906b91b3bd6fc6521e0adcf85a28688cfdd8a471b12b8f1aec0c188e8ed4af87e00df01b3fcf8e82c3a6d79c5364257f257660cab664a5aac642eb1b9265149361ccd2b1ae1cf4458b07e19d8e38ea4ed96e283cd447fa01255a0f0fe11d1aa083006759c41ae2d8a83c80d9cd86cbcc2c68adf7ab238123eaa2828232c4605b2090dd68d77bc41042fdf619c79d86bacdbb075c77dc0c74775259c2075ed31ba22b388ea9d9c435ce9a6351191134f5d1956933ee0d36d1a58926f9f8e68d4720b72ab80cb21a1ecfd9bcdba1538d4aaa7584438f79a4b4bb93044e3da9e211ac2c64c65afe5aad0b829882e2cb7f3dee6fdd2105bec3b550146c8c2a5fcb745ebecd4e63399a01dff73c6ede1cecc90176d7a94b4105dfcf228882a091e41f92a3950bb5c246c44734802aade4b839a07851b431be1993de81d3fd78b92d5457283cb2a265850a9b1902468248745fd822becac531d58fba868e8b0738953b1bcd578b1cf9ce8d7744528f7e53002c054d06d523cab7e5af761efa232e12fde4b0b1fa68aa20bcb7503da710bb549f0b3b8ceb1146cb2d2830b2180e649c0d19f566ed9040286bf7141908049a4a54dd12c2005fcff3cbf7a197bf2a255baf8ab3785cb7f23da362e05648f87142d3f9544b399722fdb63b2f15843cafd96bc8863a65111f329f87c33ff899a33b2bce167cb942dba0b17804b74e0f22c02a66ea2252da5b544ee3f563a6a3c0e99b9ebf1d4e65394db2359d76d47ae61012d928c82f4517c9bef2a10f940ee5dcf2a0eb3b88213d7851b137146ab2c6e45eb5b5df0e22d31290806f12a3fde96b8ff00ef19834bc4d05fd51914f03094694279f3c5102d045d427d75a5bd35f444a72dd0a8c0b66136cb6b41874b445cf3ef6733e84d131681f48981cb670387483cde39a8076274a205a15cb7cf31596c576f423a67bc8c3788141f4b8608f69164fd3c6abe0bd0d62f3b692e8962a9d13703a02a28728608f56e06439a2dd2bd0673c0890ef3d8628c6d94896fefccf968c6ba2d8ba5055b471906e30704436bac2b1f3a6dbee16c23f474c92435f3cd29a4292a8d3f9f46d93d917d23975cf684c2ef2363548413fc8259a11a1a96cdfe73c1472ee73707ee4afca07d26fa381e64a30183490a0b8b5d3f29a7706043838dcc9ebb76b48275e5523e50bad3a7844039bfb5ed056eaab6e2b3a46ac02c5c33f67b2dfe62f286198c0ee69c8930bd700d87b058fa3d6f9da42df6324be960a7e87c67db641674f928518d1e4cc60fb228fc8bd8cb3c2f8adee62d59a3fea699f928f322e49c3653dd382067fc68dcfbbfab345fef4e3f68f8b30a19045e36bb86f0451174df7a7b37500be55e02eb3b431018dcf3f9ec259b9eed1d287d4582b1457646f20f52446c605dbbda8bbfc883caa4c985e3841aafb35b0b66320b882a98e45d23c1a730818cf4b2b9ce2ea80eaa1210c19864c32255000bb00150a6f7f6b8da48a7a934d6fca918c3462155c2774c5e373ec745ceff481f92b3769a8308993e2aac9e6d2103249f4975b69690022ba0dc403320107fcae77d31facd325788c1f83c2f70ffe9a325d51510ed1281ae82d1aa99afc540a5676c218d9e4ab3cdad54b091dcacaa0d176d098a48d39622b451182697d55f04932c34345370e704bc4d4167043217a5676944aaab03dcb17a36daf773f6b6222f08e9148a030bcb735dfc03693a5aac15dd66bdbb4bdf2bea7cded36dff87e63c062349b6390229039c68a37286a64c7582d1d991fe5cc5c91d7f58855d19f7fd5d46c43ece796fdea06b8036555983954e5380466c80a33e0c7d43a15677d5b43bc6e6af41422159af16e4a074ae0fd860879c8a2c21eb2cc90986850b370413370b940ca5053a5d402eb808dcfd59c1ab61a5860768e45e7330ed99f0359a8b42c2ff659e4c69ba9070bc0111410a9c283ed669ee179c745570d77907c263c4d75d76691e83148e3e32dd9ce8e9f95f07f744517ed6c6ec850d815cd0b18de11a506104b2a274b3e3ae09b14ea918b1769d792db630fddc7875c9b4a219593f55e448bc6baa533a417da1a4d377ef13c2470587a22f0f17b723e46a50d5f4f556e2b853a32f0f33edad837c30c101acf2ef199013fa1be46fc437efffb53257a22af75f9b80f45a3a2ec76a46baa00d4bcefaaa390c9bf1640b82273297c0c1c7c332f416f2b02e214937b418471669784e4e2d150ad02d44262e238b19d4f5ac59f4950711130f4b8f2f83cca79931f1215ac4b0589735adf2eca83b6525b67470b17784c71d4f5333b3b61f456b3981600684895796cb9a7bc10977005a0669cb4f9a91326350f66a9d46f828c30a5e0d55237671b1002f6850b1e17125c285c5350190913778535ffec2aa9d6a4562145daf1b8f2483ed05894f4deeda76ca132fb41d0a1d016382102aa3c4b2d06f8a18e81dba9606009bfbb1948bf9066db698527b925f9734a950ce2a8e0d346042a5d616b5bcf3003962e1e785192dd8f099e54f4fd4e62a6c50ccdd7e81a8992e9c7e8ed9b225922b8362b920b8e86cb3868b15fe1f12dbf0373095fd84b8b137562643e9ba80fe31a817918061f30541ecf461786c98f8690c0da059d1453c212b9693754bd087f1ffbe2634634853a9d148f0c7ff54b8b820ed6380051a82181d35047efffd64f8d6bfa51e23e5556f28827dbe941e1d6e008879bb72f819c1a0bf02413c1faeeb707bd6c49c86b8119c0cf80452c0529775367de13b979e0c7e5226b1b2bc178daae00d1eb43d1f0d3a3c52b84243abc46c0443f8957a09ebbc8b2e84fe148595e886bf84a5042ce0bd51cb1f1aeeb1c7c1153727fe0f6184baa92f730ae88ff45e6ff5aa0cd0c347ddc79da0dd3cecbc6cd3e2536b61a0b24e3682d1943ef6c69dce1fe806d20a8613684ac418b58738ca1f4eb09b5aa625d8688a9313fc99a2ede007b2b2d7f57622a7107e2defd45ec3151b5dfd25d105dbade43664a1c65ab051ad2825dab99fab3a130322287a74160b76a245ad063cd47223daadb1ea38b709922bc4c821cfe5ab9140e464b8d2ba81617adb1340953768c938f208da60b705d00dc57e3d5468a8137d612806449f2abc8ddda0ad6bc27feef86824c7edc2fec759510d133019a2fb4d7e305a56251d051bff83765709d0a04e1f880ba84e91c8e404253797e741ec2de2c984868ec38fbbab042885facef0ec87f35b5bea0d7bb280ac6b5e913723e602e8e8765e9d726835fabf7927edd5d21a8fcd7622ed1f247596157e96857c55c3b8dc0020e6da62228d503d643a0f6e562210e8e40e4761c800ce0f000b05896f12d2735318b92c757d519b969962a64aec5ce51dbd8115cce1db5009c20a935a66a661f663f9ce8c43799f31b29b4d91eb99911d8a0ea64305dbc2749054e7448adc7efe24f630449d693bb6e996c2c339e932c51163b6410013a2b808d828161fea6cf90cb0e28bc3b623454cb18729c1f345b6e87b7b150782e3ccfca596505134a09712531552b317e0e3a5f8a9fce15800c3c1366f1eee074c7f02c88d41930e414b0e8b95422658c221ca68fce11a17eb425e58830ad9f0b3737762e311ee6880bbec4717ded5275d45754c39d3044fb1e9b7c532e636b77690d84a91a0dbe1b052efc1a56e7f0c80aa1394ab0a3ac1408dc46a127093ac9abb92bff2d8e0e56c7916f68cdb9006eabe634ea659d92a261d54c4c2fd0ac9ef87b5fa4c85ef653b26d4eda2a2019917361c84774e050ceb2977ead46705b29eb14b56fec05c5a6d029bd818e12a274c2970b4a20675347d319da9e228eac6732201dad515ac2cd3b1a8e236fe25bc552e4a91bcd19034c9f67fef220e42c3aad7f8d404146e0361a36de50f7c5c097c84bd0db0a5cd4b5632cdd20b866b471c114ee04f8df3ed3556add1149011d204a89d51d64650f338d5dd66cdfb68b911889ff997bf6e13722746ac7c6699a853b7ed36dfd0a40d1bc8182cf27e0f5f84986d734ba738bfe1dd75ba3a0ca8c3b5b2bc34ff7b93fb3522cfc03397b040930f3cd75398370b6c9bb0e3e859bef39505506a2c86b2d0acac294c2fa60e80e080e2bb64bf904f14df56e330051f540009e1010ba060c0c0a78c2b44c4a6063608685ca34eff4d8e37e06d39063dfb78dea5ce1e7e1473eb0ede1d2d1b65409c34d10fe0b560d85511bc881bdf50ccab718c4811825fb109172d0b387bd90beb7216b42d36c9e8538f38c3aa636050be0681f6c68e49c97e982a73c61df80748cf0b43d579316039e6d072ad616c5e422792eb6210d3b7ae5bee205cb5050d2fada983454b1f1daa2d2f98e771e7150d77329457966a0df2b29328f8940bc5f141b248dea9a6690e53af024ddee013563fb402f4957ecdf57a4e44da13ad27a34f3846ba99bf86da916430c8516624166c26d3a7301bada3e54d1f938dd690e283189b08ece3645be67c1eb1eff55ee11e4d98b7495c47545d1bff705e0dff5ab5ecb2230520c50a1724336bc3673124fefc6662dd8e802f6124aac2cce30403f82e4b152065f51e924194e566e2f9fac2800d82e3d8587a24fb5671623000afaa2a02e9eb9142d7da2a9f02fb797d7c995e6a4c277ba1692ec73705bb95464f33e7fb4548edf07579b46f98eb39eac684e5fd1ee65162062cbef301078b5702f5c4bf8fe31121daebc1101c54aca70df008582c46eca5f12f8b96f12677b4e07f44941fd7ba82ae5991c5a74a6ffb6364d48b978874101fb47afb2a6b7ca6cb3bb68ef85c179f225e6e7cb1a9816c4d8781257bf76f4456f4d26da1d5803e776ae54f5753ea269cee5333d4dbfde6c56571ff220dc62700ac6d9c791c551eea152ebd82f6082f1c0886e27264e9218af608e645acaba668b57c1e6fdcfe1873ba89686e8936a9e2a88bbc706b665938507bd9a8aaf3e1e153c1a4361b76a053f8d2e2d59f3f05d5bf5523c27897b59c65eaa2fc39f3fc1a1b994c9dde7b64b4624c4fa95a60ac21a263b0a36f32a8d6abaeed48f3e4acfaae7242e06dc8c844273942fefa436accd8f0a063a9717fb9aea6aa6a3c5f69d7d6a31a84dcfaf377ba33505ef0177210662c22bc182454becc81bf5ee49bfd329f716eebb3aa618c2a3079153ccc74568ac7eccfa28e323ec4a12fe397fb167c5fa9f34de56b872de4e64be533bd430c1c6dc8419f0f344fe126c2396051473bd8cba6a38c2ee85654e0ebb2a24f0b83f6c1178187b808035713b43b19477c3b84782d1d739c36a600531aa3668c8a15889f9d8ee98344437a52c2f31bac9d8df602682ec28ba1d02c4c3b559ec4968ba3a6ff6d6541745840b6362bd05188b55e0c01efc8256da46450ac355ea48963ee9a5a1e4706704953d55bce83a155d42509f215d91ba9e3a67478a965d7a81c2f130c6b47efd5f50b8fb93938c66210a823366bdc0b43c00791c7b772c7957b2ed40138019249f5e90808347d1c3478f0744c224413e7e796620b9a8ea3b433d1d69e88002892a059e2c7d251e2948e0596435d3b2d5438ab900328973a996b1ef85ef132c9ef19df2ddbcd3204326b541639cd034f3a169a18c08dda525166a9e11497e1389a5e3c1ac21435ecdbff044ac7d4e094610c7c3e8bbe41d63f4878702a86dda9a5542104ee933054d42c676b0b532bbb031b03fd6ac16e1938cbbb87bac4ce65b1b07ff0d4d06b5622369480c0ee49b2f4208ef5dfa8b95c7a6196f66fd48c2aa157f4f54657e32aadf29f277baac573993af60711e9a8aaa515c03369068a5bdca57d754ebfb178989913f51958e7bb1d01d14fa4e93b29042c5e505d2707e485318f7c3415ba8fb0f2914e04b76cf6f1b624a540acecde2159b18a10422b177b322801d2ecc89661b5d5d3b1d6862b6a4172a8f0be1c95a1562ea6f29a460116e331ddb21a4812bb6c89d472cd1e126a17597ad1faac12d91125b30148c96a2ded2852a33e6cc5e408bb44cf8d0d03b4b73fa90089d6e9fc17f0c7a400a827292a13ab92ea3f09e4ac7b6109fdc00c21a517bb2737cbe8f37ba9f5718106f3396e06edcd02eca8dde49fe375977c3e9e1db2a646fb444d3b8d838a1f1f67b02e1b2ac0e885da487e723ffb70c504bf948d5b02cccca1b013e9c089f2806141f41b1d5a2277c008b986c54ea48cb517c88e1e9f8b463341c27946c5368d5cd862d0734861219f02cd5d43497ef3f514a2f81c93028be8b91c739a22924243ab66b23f164d6bcd625a6a6a11ebc1b518737699b19141145ac38b334b99c9996dfe84425d9145189dca6853689ac19b53f41ba0ac0540ba20fc6f4a0947a04d495901685bc4b6f513cc75fc07c9b40010a43514c5a04b47973e72a96b6de52af8ee242101044ba65656e537383059dc2776719874b3e528e0764aaa091d2b16a4a6bea6a1a58e09017cf93bded9c95aa8b04e65a62d25151c75f6591c1732470e5d04625a2fb2813e9f8b75825fe9231932810a17a33f5710e58bb00b4ec6f3732407a870e73ea718f2d7387720679dbb72c9797ac334d70e0761f35abe44042fbcfe196942494c4c943a1f3aa3e857a31531efc0021c254202b8977670ef8d85071ce4dcdce7078e134d134de309239eb0b21a3b9c0dc81733b351bbd02075ea0770fb9b274dcff4aa4257aa427e1a53bec4ec25c99a917663317f608269c0fd19332fdce31e78036640f5af03f44c9b73c2aecd7ad6c12208b69023f4f2443856ed50894635ba2347e7f213822f953fd398b1e42243e8b455aae8c0983133d9b3754b78535da58ed17e4adcdca67e4ced4ba7648c23d47ab9d5c9bfd217219e7bf123c835b36102a74bd23306ee977b93a91f7a8bb98c77ba28faf22ec01b47ce18b52adaf08f37f79a72b4c2148f922706fb9fabf08008c3604bcd0c962f65156f16f65b1f7cf23a2833cbc3b60e552ddfec02a932826964d72b8138e523b9c69f61ff475fa1d676fa2f21c5babe102945327e0033107e7f500d568cedc61ea08e3223e1c7f8a3e8b870ab69657c2f0a3e7710d7428a2a393f8ec62b7d1b40ed690b35db922c6ea4d405a9159b4b2fe0dc0bd7371b5c0f13beba7957e0959aea8e0047efe460564593b7bbd0cdc9451ba602cceaea6f0544006e1b4289c927f690c48742f44aac540f9894ff656a5136be19f1cf48b5be0316bdb524fe15a832d51f8e8cf8508b26e17c5b98fd4790ecd6d39061dabf5cf851ecf0b4c248766f54a893875c6f8d8240134ea30ab7478846f6713098042019c37379040e91039e321364ec56f86158f7d6045e0ebf36498a2048eacfe849845ad53564d9c9f693e479c778a8ac353f16d49f321cfd51b0a01fc7570399ae2e80421a272bf9e7e685d1fa15580683834c75a3eb68c1fde59ff1549bace954ed182dcf5b2f6b51549d0e838238e8c2e0346a500af76ae81ff9562244a7b856a214fcca894bf907ddeb6c910a302f7ae922d57c7b736f547379f75e79b1afc268ec088a059c9be6846cced56eee1f7d0b9e95d1a48417548d4853f494380a0b25bd1dd1d78dc6ffe41c50643aa1cd4a428cf85f5b5b68ed9424b00a4049c951cb204ab45631f38484603bb4b901c710c23605b38806d83da00b05141dd990817d73a712682ced3495cea192bdba6784b784dc9baee72525afe1e918793dc64153244204899033239bae1c7a54e2cd5e70045f1a499f265545a354c19f2214c038cd4bac20e90e10de9ea087535b14ad1c6fb06f33686f9bde08278194f20509cea808c956151aa65868ff0bbe0e6f426492bd880ff1c03861881327707f30a737e0f2485683a4aa8ce0ddb9d6b48a30724af2ac0e6c599b105ea9d02a5de72047f61e0dc3c193aaa595c3aa352550eb5d71e4812d6526a9daeaa4490a0e245d54f2a152ce1e6a1dc88d03e6ddf846dbcf7b82ab6157c9b6b3c7c4b4be5456138ce981fba26477d9a3057c1b83cfd0770bff813571d88071620ead058e48f8a6dc68eed7256a170da95cd2409ae67b1c0a84c100a67ec43604a8044598c46d0368460860dd470197905335bceacebffc8a4f1546ac2c1607920c8042246ddbaa2bb7e8f054bba7bc87ba477020b1efe2e7a3a89a319f2805276bc91b0459e5d1cb80d364cd295d4089a9a546c2e3015050bdc7b3e7673bb6186e052efb5c27a3c1dacbdba46e07828790c8d8ba1554033c9b34005dd2dfd8911e4caf3c1b1fd4e2e32ae0222eb4f29f5206b972f509ac2449e4bdc8d1d01094b6b14552f0550d93440db4a6e4b22559e9c609fd34f092e4e615da67611e9fd166c12e6de08ec8047d6309417f4dd5b8b3453e37d45d265fada81d3da5f3046329bd50ab2407d70d8b04190e3344c462045a098a8f1dcbef0252babf3d89790dc922c1f8b80a3a143657ea9322c4e93a69431066fa4829665f95ac0a6901e564b5ae27424cb19260077b5c55ab9a7f28d9325aaf09542a84746c0e0af23561a24bed99f80d9d75cc1e019512bcda61b62d792d35a6affe4c8834d3eaa36ec59de0645ecdc5e3ad7efd3e60a0197175a16c562d6b165c13486530d3447d0fe10f2510bf18b62770b88aba2f53f55ee4cf2ce7d82609b4a1b4e9735eec53c157e06ddbbaff5cfd5f41236fea05a0ee0c52921468dc3b01e89b9603a4cb894ee975a6923370f7d1440e8da0c416ab7674562ccd302c2adf1d6f5d7272741163a1113be8bc7fd59ed5c9f91c7abc94ff8a39ac536121f557e9cc4371219612d39c505df9f75acb94a1fe842b3bf0054eb051aa3a9a7b93e04229cb6fb2bc602ee116eca5349708cd870af1641b27f7acff63170785c1fa3ccd84f7342b87087e59643797605c8d052355502f1058e8fea5ed22a2909aebd99b7d1e9dcab56fd2ea12aabc338ca7658e5b1f781ae5c429550c5b925f18aec6071b4b8e96d4de19f905ae40be63e6ab6fa986d5daf504195a3cac5b1f08f3a78e3f3b06f99eb78bdddb4836554d9a1b951f44505e4a4a1dd91f2b278c9b8f67bc310dc2adb1053a8a4b718a7acf0589c55107124e1d07fb21438cad48257cd2d58f60e7986105bb85e32133c7fdd4f1729642895c20e57382e8810a6a59162703403bd715dd399543066bbbd3a7d86bac0ae376a49c47c57d2d5e21982a79ea4ef1c964901b2e90231399657be35435a0996f1cb26199b3d0e89844c429c31613df97d37acdbace40479e5726e93057747d6e9a9153463ce56f35d54b93b5ed74039d3372bf2ccab9ac9cfb24eb7793b83a143b255bf283566b7496a7de7b6f1fd00182dfb6d7e964627646f9db36732abcd074ed32667a51459d7aea75a48b554cd5ec5466126f89847e36ff12da65ab5378b7437ebcf34a6d4a349b92c84d85a7d6a2e372f12476e55c5616c7bd80814904f5a14c18ed3bd9d16379bd32c6c1fcb0977b4ea92da1515a190ff666ead5cb09abd9d399b80d3654a2e42e71422e7cee07ec53434120f3e93b653b6d8ac448685742b13136127b60c750901b27302fe4a8d331fe2c246b22115dbc9d2f3c9f560323bb9b7d05273a935a9b882504793b8fbcf59d132368f8a04f8d722ec84e098508ed3bed3e583c661a085e45b56216f42364fd978417d34651a18560d582a4298dadee82a2dee1bb701350475b011886be40e477e5c31972a4caa6cf9f16872155f09742a2b5452864fbaddbd1f40da5b5b2b25de2db94db7775b39b000535860079f7c2566eba818a40e7db76fce66652b39b0d641b714c9c8fdbf0c4d11b9ed6ce5b395635dfea0e66ce34aba5e842aec1f247ec1388d06793090bd284c0cdb92df5efce4fb537bb54b6c2517f2177539835379cc19d9cebbce12b4fd08b64d907a1044b57a18bd9cc5e22d262da0bdb318ab177e29112a4d226cebaa355e2a1bd2e6a220b5feab47c86f198bdf7399d7bea8234faf4083847bac5d4a542e70df1b900840ea80536a70f2976345318bd4072e7242f88ea12824c5790ca396b174fa49bb751c47eda284024a571aa6d35aab06e2e2b8cb343190f582abdc66f72565e844bcfd125c73cb1c8406e77d465af75b77fda1c623b890e7b965f04d36a19a507b43e05b385fcc9f9d2210e00adecca645b28feb1b27a1624b8c46e05e4d5b0837d55512f11008e3c51af71573ae62b1ccdc1e38742d65883a2c23d952171310e16334190d7ae091f4899caa64b13701bde22a0f290e4e3c5d19763f2157a7728c1526e8475d7f71dca0931d7064f5c7e59d7dc207cbe90d43feab76931ce4e8d97891c22037cee017a11ed355e805415a70378a238621c824526ea393c3711327ed102c54730648feaf9c7f3725e1ad689dd1cf8a571a2685d2ef214dfdff98cb9637639b7fb1c86e93e77660ad4ce3a2306246be3f1941b670de0bff8077eda646fb9b74c52ca94a494011a0321036f03f9ca594e5a7fce39e79c94524a29fdffffff5a6b875cb88582a57dbab9515be1564e9ce86ed40280434122010881c251a0e80851a0a8d8cf160f638c31c62d68a9540a007c6aad8aceda16e6ee3df9d05a15e5dae5fcafd6aa2a8ddf2ee7436aadaa5608738e9c339673fe909cb47ad6c1dae5a4f5fb24a59452ca39e79c73524a29a5f4ffffff6badf5c4e5e22d149682e00ab64b9da371b48dbea163eed39a032ea8e7b2d4a7d362ce0a56d12db97472dc2e6f86ba867eb8511b7948ad557504b00ff44c6e1460517dc2d9bb8d834f398ea35cff871e5aaba211b6cbf93f44673bababbadad1cfc9796b55f5651f595a09fd09929793d620fa94f5a9d3a7aa4fdda793cb496bd5ddddddeeeeee2ea59452ca39e79c7376ceffffffff63d682d60054f4e995baa5592062882884d803078fe521458d7ecb489fac95564edbb66ddbb6e59c73ce19638c31c65f85feff595a6afdcdc6b66d9b084ca552a9541502492452ce9173cef9415eb4cb495f73fc58541630c618e3da2e27fdeeeeee7677777729a59452464a29a59462211b127daa508b52a9542a950a60ff00d12688b8829803878dfbb478c3636911671c7539b825baa0b66ddbb66df32ee79c73ce2d5ea9864a4ddf116ed43a18638c31feaa55158542a1509b8d6ddbb62c8e4623f81d18b17639f363f13972ce39e7ff6f9793ce39e79c336585aad00b4b050bef8a1b4882a9388a31220b443c0d0ae1b1bc6899227dce4a9f9366b3826a4e6ede75dd8ba730042bb04e980933613411e804c418638c71c580d3e9b4d9d8b66dfb2ba2b0cb3b1fc23befbcf3cebb8e524adbe5c418638ca594524a59853e442291482412c4c17d9006f7c1205690e33e0de2782c90e40e4939734a6edbb66ddb3652e3e05e3324fa58dad31edca8ad6809abcb5a2a56b037f5569f659f4943a21518820cc056d5be3d16d3c6b66ddbb6cdd0b49973ce76e9eeeeeef843a3d168341a8d606a05bb25c0c611dce00d30e63ec881fb62dc0759b84fabc07bff59f6f9682a60aaab90e87b6442107d86b8519393881bb5fa72e34d7693fd67d9e7d30243de55dc63d1437292939ce42427a59452b6777777f7cf90f6a1209eac33ad4a769dbbbbbbfbf0e1c3c7088931c6584a29a59439e79c739e29564a29a594d3dddddda507c45e2ee048e47201b55a63edea55c492907c4c4e523eb831c618e31d220a46146c97979db48278b2ced777131f7d8abd04fa97b5e69c73ced9755dce584a2cb1c4124b2cf1a44dad55e59c73ce9e73ced98330e79c734e4a29a594765dd775dd9c73ce39e5ffffffd75a6bad554a29a594240f5eef63bf5b1f6b82923282848aaba874842a2aefbdf8faf9cb31e79c739e14c38a31c698fa0e72db1ec4933ded6097a515c4937d07bb2cfd199233b6cb496ba5ed72feffffff9c73ce394d7cf8f0d1de514a29a5b4d65a6badffffff6fa9584a29a5947aadb5d65affffff9fda9394112434efa0773511b6cb49ebd76ddbb66d43b171dbb66dabb5d65aebffffff731c97626bad4d29a59452148ba2592346d8e0dca8a9a4b41da01f37347794f012253ac212252af63418db3d44ea1253c768cea050b10923398e9301c66e772927fdfff82448a85815b93db9bdd00c350dd590bc81c989ad9f3b949c62df754cc26a16641f862c7c131685144ed8ee09a1c7947e1f4b1ccd3761403c596764a9b01e0a52e346cd00212294446f8c50172a23aef88a151de18a15159b007cc20d4188d622d2966609097d0c3061e6689a1ec442c9c9226ed40c2073440e209a2d376a2a4c181084809b1576e46a80b5aaae5907bb58240b8b776461a998e45e8a576bf6d12a88020e2a29957c3e3696897da0931b7253c1d6e9f93dc7711cc7719eb30761c2c0ab015f69d6c128acdd65ad49e1652dfa5dd7755d5742ad03d8af7d7aa7d3e9743a2de146cda45dce87d45a55ad2a206045bb9cff34eb6057fd0f598bd6cf3ad835ad35e7acb5d65a6b873c24432efea5f89a627f847d10091b122a2af6419af3d0ec83445eba5103b98e9087421d61285431cf70c58ca3aeebbaaeebe228cee0464dab95beeeb91e1cc7711cf7b66a9743745dd7759db452ca9973ce39d7aa79c885ac200accdca895802961c284ad20916f376a00a871a36601c056100a0e23054f21858e3085142ac6622b85a4472b00e47c68ad8aaa805c5f0de07a701cc7715c3744d775ddd575d6aa3ae7c8390731b0ae284a792af2b66362c4c8c7d35a16ad8a91eb9d8899890bb5083df741f86aa5c913582fbe1742c3148323c6d80d4121f763e79c93d2cbf6c03e7125a609322fc8c4c8e020b303c97d2699930c0f484c324928e9b45062494848484a4a64f2c87d261b6830b96c9c747a40a92e483991c1084f8a8485261b88f8dc4f5c819fb80241a6191f4eb00b05d6490b1a84ef5f4c2f2ef7055fd1cff821721d825e6ac418bb5fb2e9450729e59c2f2fa7ffaf95e9e5c7cbcd75c304b359181f687345d60403034cc7a7d3d9bb46446066380106e68a1ec6e58a3291c7e269511b31c170f69fc5300ceb74608ad03a2eb04e32e079c2cb5e8a9b2b4a99b1e3ade7b180f07ef676c4d0e88009c4e1c247870c24c7c0a00324d4c486ccef33c5eca0870c91982284c434c105e485183c3132321c36d0d92106769a71c9f0a0062b938419ac1664a868a8a1da80e17b9081ba20c694818cb421c501b78188989e01260718667c68c171d30c1057de679af9e18a32ed44878e3f50a181ee6e9cae8169860d4c33483708d1515a2cd0a9db9a834412f096eced3f8af24226fad0cf63f1ee0b6043378dae36c3a53e16ff589866b07061b0de0ba1442d02507b5a0cdd0b40b80014164c7464263400810529100ca104383b8c6052ca449a894df60386d7fb4c35e4380f0b05032619789862e85032f0f4ff3fc6ffbf115e66a8f9eca9cbfd1322a060e09389986ad0713522289cf3e5bc4bac7004671c620bbc7829e2831fb50a15ad97ba51b3efe66af15244ad5638a294524a29adac890faa5d2e28a96a75ce39e79cd3da2c832918376a201187449728c33b1c987a100a014f100577c00c7980a497226aa987d7eb53adb5be4cab4549140a8542552fe08b9c9c9c9c9cf974ba5575ce9173ce39bb747777f7ffff7f12894422914896890f15522491482412c9a55f4edf3f954a752a954aa5b0cc0342adbbbbbb630b57b831c6dddddd9d79463e1a8d46a3519c41884f777777f74e76280f88acbaeeeeee56997d3a9d4eb81b376edcb87163777777a758cee5025ed08a9546dad44591e31151566641503f6ed444ba9122b8c8e353b1887a10422822124724b9e41381885bac015dfcff43933ef9a430056b7b5f72d20ae2c93a555629a59452feffff8f46a3d168341ac5d168341a8d62ad2cfa97c516ae7063c7d8dddddd23aa512854bb70b54b2aa594524a39673bc618638c2d4be50ccfe5a46fd29ff4542beb5596bdb067ed85611b84afeb649e778aa3ae4b9d322a4312cee9138cb1db5dc2d8ed2ee5743927a5ffb5a25f2bebaa2c6baf0bc33a9d4c4516e2292324259a8afbbca4623f8019a06652534201acf1e16d848078b20e7659abaa4fa77422401da8901891827262f2292119110901f1641decb25655e9cb0f1decb256559f4ee9a68d060fb80b9a6662054577afa006059776778d0fb7bbfdd3353ddcd6443ed554439211d13eeb4fdf748a7b297aa6796852975a478f7aa66152375cbb4b3927957352fa5f21fdafb5aaac5a559665ed65597b5d18d6b1375711f769580ed6b9efe6bec8bd144f8b378028d9081149f146dc7e4419b125e74784a121e747a763874d4907c7a3a42343187006c2c0ad066c8130207e3710e887739f039ec863b7bb94d3e59c94fe57fab5569565d9cab2f6ba30ac73619d4e96793c2099070424244444646484a4a4e4f331313919b17085a4a4c442906885fb1eaa4f3c4d060bc6931c324977b8403d60def7529ce490897e4affb7301b5a6b54b354cedd3db4723ba8db1dee762775bbd3dd6eab6bfb272f590d9da0325127e7b6d6c9b9ad75726814797b88da5e4048d7c30f345470351aa6186f620587acb241e500081a40b8a24c9ba1f1e38ab42c0735d85413034c4d4c8d073450b35d91a682473d6539fb4026828c068e16dc048d1e64d0e8d042638217684a31688288414d72c85230e67d261a1c9a03470348a094529aecd1b86400c769666e0772b0ea1571b796da8e7f3e9ad61f6b625251a070fa7f2f0061ff60e23412628cdd342ef713579e122c488304e891115db8309ee608346ed0c0e17e68e0a03eb04e62781da465825982209a20dc5d4a144d0d28a5f49f0633014493c2e40dd6898cdf415663c60629c87640ef33cdfc00c64f3a2795c944da9c73ce395b90bd641ec8469059183d6424c85490bd290686fbf799625a30826575207c1a4a8cec4980da78d7681db94f0d446f353a9c54bb4b3927957352fa5fe97fad5565d5aab22c6baf67597b5d18d6b9605ca86118eb64323c3817461e84b830a2e28e987988a4222e84711467222e2207081ea8d4cd098812ac712124dd802e50066c793b622ab6ffb8d006c6d8ed2e61ec769772ba9c93d2ff4abfd6aab22c5b59d65e1786752eacd3c9328f070424444464648484a4e48144290f2452e1422d444588c87bd146d8af2516438f00019aa5a894107a3b2201802008531900000221108571408db31049680714000b285a4a486e342a2e4896c863811021483120ca18600830041863c0ccccd098072287bc9d40bbe8227a12012e4435548bd8adec1339a97b76ae25b982b373600eeac56b045f1f8f70271d25c3c147f5fc21b56413380c17c2a58fee0a485c7d9c2327a48abea3daee3178f600337757fcd2a1ca992d67f9f9fbcedca3a43e79f1538f996e9817164eef3eba3c9147d74ba891548af59cbdc1bcf0dc11a8fc35487827ea646228775711bf67dddbdc3e57a7f24e8ddedacdc22122551597f9c99f257079f508fe60934c9d0231ac26a50959dae0d4c8912c6d434ef7f54680570997bce4c650c204c06ac2293c53b65bc235eba9b4650a9c4b884a2515dd4b2da89e1b15afa640cdf324eaf844a9eec9f1f1954c506ed09dd6228173276815335147fba4ab509820eaf69436ffb95f3d4f9111bcb6417c3541966b2417cdae62374b13bbf2b5d996d2217ad16a18b6c1d450d14784ec38e28e8ee3a049f809f3dc9916b9cc02951165d88d93e66be7ce2395d7f4108ef2973469f469c7470b607ef3f5f3cf2fec19791c589a208866bebeae47459d5c1b62adb428c2f0634242e2153d6ffbb308bd3cce1ea2cf0e67182e5ac3e313c8ea86bf14703754815a0c72d540147a19d06b86931fc9940c38a1ce6d79e627ae8f05377e44a68c99137f8a5a9a9dc14bcffc39b102a491518369a41c461b615450d49d712126f186c1222ce5e1c138fa6d64210a3d38ce70ce8d5f697088dfe7beb0201c755ebb66af2d2f3f79149dccb4fe712a5698420c810fc6ade299b96868b5cddcd000233602d1b7c1ccd08de174c7b7c24e275761f346aa8eed25896a622bd8e77813d8e47233d8a7a629d69c8726efc8d4b17b93a9c3f6d218e9ce9b440dd60b29556caf242a8f658499c444636e1312f14474f519257033112236f2a424e0be75acbfe7e22bd397a1f3cd78ad422f27305fdc1e76825c15cb6bb22a76dfde1fb060bcac625a509a0cf55fe7589746636d406189582ecc9782926e8b41ba01be3fdfd8d4f231efb8752ff872084f1be21c63c85d5777aab4590c84d2090a03c92b613a5f9e1b13d7e2fa7c362afd68f15f06167e88d17b0e88093f28db40e9806b0400ae009600a06e0e97b7acb7f1a2d8d55c437b84aa2b1e58c15f2bc3665d279bd3cc1a21c0b5770a2b62cbd096de71bfbbd453d5f2d47d16a5fd3a9672e5a3148eccfbdeb5e5789d39de6718119d40659b74ed553f0ae8048b6093df3d709c847980228d549adc10a5bc9068bd777d732ed59012077736b32f0554a382d32f4fcf62da6eb605748f39cf3388c0d9247032101220579ce36c9845661ee4f00b9e81c4d5f66e058ce314e65a74684458b30f661eeacef6ba4e73ddc7e96ad8a4feacaec3543f5a0b62363ab145c4cde9a5368a54c7058bca4d5c19890f6c33a7c69d0bf9d5b75ef6e5e912b3f840aa207a7836ff918c4c22e3f9783d11768d84cf187b4c80a8a5cf495845d71bcf3c0617b99f1c643ad6e83f44bef8695d1a2fdbb8f23652a679f5838d0417c7052163717a3f9d51389493f9bcb96dbe3821874cd63c5d15aeb942645eaeb1fe38e4e3760aaded093f1e041dde6b08f5f458a0a6145c30e7a7ef0e74dd5ef33ca8f09ec0a9a78f03b5256195293f7d77a4d7e6bac74287f5055e3d7d1ca85eaa411973767ace48d7ed351eefcea21870b868352829cf3baeb4a88fddfa4f50767f38747b2cca77678ebcdf9f27e4bf1b4e3fa88abe067e7f7f5e8c94454845cd2eaadc9d4ba754a692f7f4e68f66cd7e5c722fc5e650d76f598c2225a379281cd79ed4c11e9909e1cd7935e972b145ca21611615725634bfc006178491c74afdedc3d5160cbbe806a5d3580e0d86c823ad2e0c49f17b5de04bf5743b12ef293c8fb63ede213eb940330da8a69ab531af6d359cd45dc2e5412239c915f31c82a893f46b9ec379c21f8646a1ed9e0428cf73080d85e8cd8dc499dc6b24eed8e9e6b5faf923033c9dcc9ce07e5c01752c49116fdf4f6f38895671e8bc42f1113319ef468a3eb7e8907b0e32fc14dd07e7d10b2ac14880e5ccd14078385e93438bf244cf6b85d3759320b853179ddaf2ad3566c4ff1e061f49cc219d2ccfa263d12a04600913f77e6dca57370d0d4056c7602477657a912bd4cd94f46d10e27edb75c87833834be8ea6ee3498fb09271c6cec7545e43c304c9a6529040c800e1114dadb522c8153df56971f036c33691bb6ddd128c00b0b3abf3d3199e050c11e20d786821f54f3db871102050fcb6573e8112cb96181e28e61c3b41cfa36c95c3539dcd9ca7ea828775a0a1a2f44dcd971d23f77eaa369eb2eaa1db6792ee003a60228992d1f4d293191da4a876d420dfe4a146f8464c0936376f72191c0544b6d09d86b67e2ee708fd57e0eb0f045743784d905a4208d3b920680b30a8fa5a90026024a81c44e1046916ace7d2456ed2147d12a4605f5f71e71f00c453b6faf2168060aef89a3cfc3e453941fed21482a9f0ac1fd0903cadd64e3084d38bac43e8105aa7aff56dbcac001010cf8a48bb6c3fc14029fb7775c509e11e187182c1421662bb25010300f2c23e2bdc2b61fff3e92a8c6690f78f28567847a1520de36db9bf2cba51300c5be6947063f3519ebb52c43336e2ac04ef4c48e8d098ed6f6e9c25e6f9cea681af053509a5c303d7317c434e319a71b25d01fce89baaabc82bc313444e42cea273e7951861a82ce7b96ee2d43e8ac6298ed012bd50d97114ade67548f176c2764dfc3de3738979d5bbb602f5a2e3c5b461b3d0ed25dc41e4e9137290ef7d1061abe87079f5893fe550c0ae062c530ac52802d664cd5945046ca0432058843dcb34eae940d8e30eb3c4194a42f247826ca21251c104b8ceadfcb618e6b60046c5546f4ff86601112b0f8c5e5b8d7d6c88ce7b3e18044b1333a3853d1444200a4650308844fb3b3c1b557668e0aeb771f7c18040216e4fb70f14e2350f8ce911a08707f678fc35447ce448f56ced9489402a02113313d05825e6d297f501b9703656047fc03d1e9961b8747108cdeb5668199954a78c9c5089e428a773f1e8b2fe952de09778329fd09495a9f625b2600cbd5e225f5f82cf3049045ce444a31806b8e494e67af57219faf2592ced2861c887d7f70e0856138226ce80fa596f6b6f9fa99b1056c7a73d179c6b813d8d2c27470157bdeaad67e080af51c262b5f8756aeaf6faaaf3e390be0ad43f65e65076366c2a9f2be0390ecd22e07dda487c95a2fccb692ec7450148a2673950379c228225ca5ae92ea06ef35ad6549fefaa37b0fbb9a7ff0150aa43825986ba7f88616265a3ff29a3d3f821af5490ce0f64bc1b7de9dbd4bcf0f82757b56b35f48b183acaa3c6e04a6b3b3f3c54cbaaf958eba1ee51eb08cc478a0a3780d25a54681654ff0719683680ef7c220be47c1daf595528086cd17c3ff4299b2d6c00bad9317c597191f5a9cb2b629543c87b690239d7b8562e24d8777831561bdf8e04d354524db5965977d8d8bfac6e5be62318dc13710ff8d70434075d342781e332cf61b3241a979f7a5c8ba346301e2515a819edeab3a3698900429acbb9147b15aec329d8f8afad82c1a1e60164c0b1da2b5cf73436d02bff80a1cf23276359533408be97fc894a6ef81aa82751d40d33a9ef19b1253b308c33f22c7cb6fe38cc50d65349f8618d0c74dfde95e92644b9c2b1a4e866ead395a12a043bf70112d3651f1366caa6ab3d670c0f0ff89d985c8260db1a1968bedd6b63cc7e7d8d88454a49d58dd80af86977d49514d62a1f6809d75f1dbed2b0b6aee2f31a2211ce257cb0986f785c7fe06219409c6b1d1367811fcf1a977fcda880b86fa4e29d70247b4bee782b945bc6e7e1f6dabce36a3babf44350918c5c5a08a74a3bdbaeda8f033772f7efb93ed4bfad5d1d8599d5895e4b239100906ed9173debbbcd0d8ba7437006baea2d556ed6d84a65c7d78ef57f6b842d5b060ea15e2cecaf419b0ad9fa5a936272acb790540cf6108cbc43af646de84cd6024fe4a1a2cac26396b76f95d6d5897b47e350d88bd26ac2d12fe1f80f9e844e4dea3d4397682b6b64f1020a9a0a6c0ee1cbc3e538909b753e5950b849e0218ad040b14062a94c9763b663083d479eebafccb8c3d5ea063893fbc38d1c26ab417e7815a91d9e728f7eb245a9e5d86ba9782b9f91d3331cb66673ccf09cefd48049d92855e756dc8d990d0872373956fefc0d0fb98437147b638ee87fd4194aed669c6c73287f741851f35ff77b76d712f00049150180e04d918e114ca0a185e500c8c3fe08db5e0b6a49f72f9c296e4e2cd8d445cdcb14de99304458bcc92946e2987bc5266f642c01c09863d7088f070c22355e078543e294d239184e811b5e730d348528fbaf00fbba0244ecb71e1617b4093a204fb1a0012aa6ca80073eb78236db2c5ae7ab06f64d8133f87aa241e89b2dd42d844976a2bfe0a44893cf574476b9fdc6e0e07acdce12665a414a183c547c770be303bfaca28db99152beb301174af277d748f92a96c888e610fed8afb50d3e2292c179b1a457e326d321456873617309c48e7d433f52525f100be829842c71ed96cb107eef363e9ea68b7a0f283cc254d10e76448bc0c879a156fc13a422fc9eb77d8525dd95f79f7d058988fa78e7e6082fa7b4d80531ad697c20d7987c61c0ba4516ee98b07c710c110c6ab99143f94af1135b014b850c3688cea09153f4f5bffd9508ebd8e0d69550ed0da2e322244212c0069a0f656263428404b1db070922e859f793266c930056112a385d618eeb1438f57b61628dc05d1742ee9bd6b8503f52294653269aafafb0b8ecd042cb7c7c8cfb1b6e87c947892464110b2bad993cb94d2cc57be3d476162794dc7034ed41a09f799b112ce9a0716fdb2adaca8e101ae526ce3027d11205f29c145770c486b898e65c3f0f86129b61c42fecc6ed1dc4d67cf64624e5a143e7540ba1b3a50ffa4e117cd90baccb77866d649d81a284755a1618b35628b6b8825d7df9f88e41298c396365e6642948085866e064febf01dcb6b230848930cf079ca37cdf405db6cdda1466047816716afc6f606e1b599a424690e523a728ff674073205e0eb39c80c506380863aae7c184023d222bdb21f6db9e90f1667d5a25a3aac8e6a1806464241e3afe526721adcb4261e27b714d38c26cf461fc1bb77078897c0c1147dab28af1bdf8417908a29c6c400a66bd70cb96113fa9f7f89cb4b2ae0ea11a4ac4414a24f24826edf39319dcbecd44eae12c904ee3ad354ad194702796e87f0f38f475e01ba162891552f18f5005795e1df5137195381a8b64db1026276e2024390fc4b40d30090dc8c8c88db1b8c4295f6f55e3338a76a4dfbce66c962f26d3a59ae3b8d03e6997bcbc7c24fe702a510bb55b51d38ee07dd59eb9b12f882b6de601fbbe46d04afe22596507c533fc3c68e88ddb4d5ccb393ee47e7061b7bc6b846c4e296f03d9b24d20e542b37b119a8c72badaff1a25e5246e954d9c86b1cb2d628b0fbbeb60654702f77b91201116f1910c6802a0e52beb226e51b2df162ac689232ce6802ea8548d978c053b39c6e2085ea70e480b8b23aa1a9f9fb10fec261cd6df5c4501d724c20006810a183d8d808a9aea5ec306581244b4e40801949c86e2f6949cdb147c29086a4cfeb9ae9d107057b6655d8ddb68c6e43c6203d20bc6b1010bfbf7ccb4169da93060e0be2358fe3a6d955e115352b9a735b8430e3e9bcb81714abf91ab1d359aa8a11d044777b60687a3b8ee17bcb702006bfe11ff39b8a0720464330f1b619cf50f10e45b913813b79d72464627f705e2f6fbe6bec0f86107d6888ab9b866b865289efcefe9cac9ea5c0ead60305e05fd22c78ebc06498400a43da4f425c2772feef5a5c7a27abc8f5f647fc2739c8799b362a97c9e56e60b149a272d205649eca9dc043f0e378994892cb172aa37a417b763e597c6e0027a9c1de53b558def81f73a787c34e666adb0274b0d0e40eb8c5929d3a6facaba4ae113b581c0d8d22050e2abb552f9b08a4195629d61d24ef2a916b8721f883b2e06168ab45e86a07d5041394c5b56274603c1145ac5162c288a5d6d808a8249053afe04d213288a6f8778e38ceac4354b90bad342de7c6f2cc9759e45b342785105bef76a4439720f6436cbfd328adc07ee58e0c2953942b44b59e7dafc641d2286a1ac82010da993ab9e0ed17873e09250308ba8bd48852cdda244618920c1b6ba50bcd072753a3627d33c68004105bd6795b91f3dc16f224f206e360b391358814f24918f61c03381546e3bbcd21e992ea202df5880ec1e2c409b62c01d4664079cf0ff014e2ea8d102e8a208d94f39f68224d33b21480df9f8fa9aafd9964699f51ed9c67d05bad51ea255f6065ab658f572ba35d685053503fc0cb1c5e95d9e186f3b20435780a6fba4e193261646f01d8e615b0e41c34be306f5f36fdde1c00c3464996052bdd92b0c8301fced35903b583a77a7c5ab8b59e25288cdf49af2b4758ef6e7752566f5ec45a997c9bb5974876c7fbdc2f552ed12d69c156ad897245cd0832aa96b2b72c181d3f13fc0d7f1a9a9b4fd58bcaae083afcca77ceda7d22f5fe5d6b595679357d6c729299e4b049ef60f612c056d0794cb7344ae8aa178a0e147b7f080000770cb22d4366a55150aa0644a092eb4eb9b8eccabe67087fa57f969d775ec29c69c293396f0c6a66de0e86112bd45d5413deb247d38735942fd6e4dde17e2db829a984b7904c1ea47682bd6f4c3240058a2250f034fdae413a966bff26aad05df6e1ee15d659f9266f5799964947f33bc77a68ec06c7ec2b8603fc6817156439b1fbc045f7c8966fc80e7f8b4345246e79e965e54e7a4fddde3fcb99f94f1e8d3444abd4f73dada1b28f40f155309b59e1061c60ac095c9a42740c3c3e15eb8fc1f86c84e25fd385edb0a2d4733ee71abfba2b087f16ae6128824548a91f27218b66acea32510ee4d46ae1fc17707042d5fe6cc99f3a7f4d0d48b272f0ec532d2ca2df634a9a6c5b2965d2a52ef24150cd58b06b32812634678b45c20e7c536345eb47c683aed3f16eff2d562de0d8ba28565f3079053cf1b3c51bd3520455ee2b16df63c990abe91417a7270bef96b3d699e4250889b86605773b644d58694649c6e711a79fc75394deee63c9d552b43af218b37ef4c2e6f988e38b0b9ee29df5832f19ec03f806b381d3669952c3a20a22975032b3ee26d3677b1ead3c5cdaf1b322d40528c40c84a5ef70ce82f0291a130751bd41f6caff0194ac7eefd74c46f981dd189c62376a3e59869ccd11048dec52591e7ab5f377e681a3496cb5d94069d14f851cd6f6876bf9eeb014b64549da268df557ff9bc0fff83cacea7dd3a2c5e9efa9d540312003ad80bd0d0df7c5260cedbf688c5ea0fe98d1acfe28e60c7295c551f6b6a3d58a3e32b8b0bb97ae83d41a1c3e0a44781d988ab3de839fee4ef84d608c37ee0ad9c6271e42e42462be168300fa1e102c566af15aed924934bddde6a313436288bea61e7da25add2e6a7989b6d4c8f3a0bb38428688d18e6f5f10c31f54ecef66f214bf9b4984599e65a0e66e087d53cb9742aa41b13627d25f4c678330125c1dc75c1b3b12d542b95ade571e063d62c222b6a65e2959240bb1d2eb58859ffc9262c3f3537182d8b910c11f114e0583945fb7639974f958318f5f5786d4c2cc7a4fb49a086c5ca52e8ea2679e8386896c9867b943ae62cc90df13564a06b2e6ce20eacf7bd45a02f2dc025cb703c27c11a27a83a5c5507c8195a2b823b02fb7f0a4906bfb8a22a37b870182294bb32b374e14249ba272a7a3afd8f25387b998c9e18d202e90bd95ee372cf168d750fca6ad8ec82510b2918ae9b48068f2bdb79142c7a3e7585f687844bd70f86be2a36704f8005d2b4c1b18e1d8cd9164c91ef1fff21db8cc9953dbe9ef9a5d5d375f5f0f039718b00f253061429f59c769a5eefb249472d0b42dc628a16e43c58ca2b85c3b5a149070ac0a07e15001a5006b0bb86d1265349d1e3530964d1ed1eef21a8a1bf118d53ce63feb8f1f29c64686809dfb2ad7d22e7fe4712b8484293393d6a9178727f62b0e45b0c5ff9a4170c20b59c5aeddf212e46a32d99c6fc653c79b6c554de8c6bc300e2da7dfdf857d5baf34a0cdef745f0c73a0e3ce4424260c69621ee1580a904f486942a5541b888c3b034a73d8f06d89335816c998ddcf255c6671c10ec4e958156d7f1a06f11bd63a6af4358563676dba161e3bec9713013e0d3ee7bcbebd54f5ba86d54157a982ff617129db55291ef1a7504d1656e0b1e2f2954c4ca58ade3dcf681831025988f445fedf2ea7b7ff00f36746b95ee3e0ab6af3cc1832f662444b2732b41e138a7daddf19e80dc2c08087647334835294c8e930a258fc29d691d89be2b410648ba7c16ef735631dd012c807daf3f6518fe07918ff09fc6d334dc3adff818aaa1b892c7e4b307b44953e11011baaef1a17317b80853ee1bd2208d52e5bba716d9fdcc4bebd16ebfbec8d9d987a71e4b60866882fc982a3283bbae646fd9cdf070edef7b362860214b9ae1ce5d596f30aa068d011122188280b836159df9abe196ca495b67792919f3361b34d5afdead1fced6233f2c0e515f6e6acc0373055030ebeb25960e5886941b99589984521d733e4a8ff5dae3b595fdd013924914e1614621e8c1b9f82625f454848802889dcd06e1fe6d9c27faf3d074a54620b9a92ce64908bb5e224358ee456f1175f4325a1006ac9dcc382c37438a9b60e761e1c474fcbd72e11713078614b818c454c9b0aa2ad2274d95882851257084a7f226a1a9bcb52c985c08c9cbb150385b7d42591b4b5e3b543eff51b9844a5793b7efaafb133ca6321b3c6b5f451192ebf15edf5efbfa180742a159df456c4e9366baabb6f39a0270b2c5b4b28170813d5c3c0b9e7fb9ef1996c430d2351e0c41078a5d00b4a4b00cf95a8408059c811773618b2c90706c5d4bc7c26d55dc5b0be1deb0d7c49826be76d5355fcf5e8059ef80700fdec8e0b866003287613c8ddc0abdf0168c2c7397f884afeeaad7ffc21f4c82fff00b1bb20b148fced8ed69613c501033e994312700cfa7031675572d3dfe70d0138e4367e15d9722b830013122bb93a57aa10a57fc0d5e05b04ad45678f28515ec853f187186fed00346e4e80f7e21c01601ecf413701f65b21003037acc06e8e9b035aac466ce65bb146c8762111eb3086b9d0f163a96ea691f4041ec51125f4d36de263793c3e45134488815b20115c37fbbb96a9b07dcfebac4f8803f35fd3ef77aae154e3227f54ac2b5b1556d8b75df43756d3a3cca7a3cbec41bc30defa2664358cf56e8a195dcb210b63269327b7173f747d30deab3b699af29a94204ec82d742d298064ce8cf0c1c623250f0cdcecf032b8dd4d81b7f336c84dc80acd136ccf9f45cc9806c8c646cf92106c9783e83282bfedcdc8ba5b32a884c1e7ea74e59b2fe6b08a8dfe86b3c9e7ff966f701f57a6380e3aa73c61213e6c74b49fc2f413f9354cf051158977356c72457739f6179a6b1864f81228bffcd17af63ddda36bcdd886e9d27e71437573619bd8c5241a3285a8162131753ec1191727bf478b747e85d8a8f766feec7fe7aa0059db4612c725decc01000e7304ef2b9a869640968f8b64ac8e2b4801efe0c1f61aa560266501ef405aa843f2c8fb136aed3c633ebe662be0ce62d4d77db15c3f8b412a26e098b1b814d6a59c9f717ed25a9e43dccdec85ab4fdf8a093bb41075272d02b15e896a381a2c6481c6f72b0603eaad9581b372802f0de6784fcf356698765cc97b6f56f4e2eb6676165c63cc90296f05ac0a3c00567ff5de063eb09f605e8ae7832dd6849d2a098e67c2f1a502818d511c307c92d7bd7d7298a40afc828e1beb67cc4a6b39f1b8512337665cd6956807b0e80a9e90f2d4bad79255ae8488e41be6d742f570309db4e88570778e6fae09e1058f39578b52eab3eef077fe019ff437f5810e295e2931bc6154e48880e002cdae081287bee40b596bade75d20967236b135238084afe1f5e83814a169e68d5e11a7ec31fa8b121b580c5007ef2a5c750c898242bfa96512af445903abf9f85ccd32c81bec24eb41818ddcedd4beb4e7110acf62b53c1797a125bed68c82617159f0a17319784df14ef55827f5848db853a650ff15805b1181f3bf3937dca0fdc1a5ce6421943a684dc0239545012c8b03a106338b711aa898dd1cdef58d9d8d13fd39605ccdd0620665bb6223bf33a4d30758ca5dab00b0c0d146b34d94294d47ec2efd0c78268152f91b3eab612303be10411e57136cef78d7aa89395c711d8fda759f184460b5f245969d8ddd442ee14d8167ca0816eefdd169118eb37f2842fb5692db1b0e56a69c313712d4758c7ffd94eab426550dc2202a30e897a3beb1be89bc4ab91665089507aa9680d354ffbff193e2d0a1e566823452ff981fd0823e1c569c452581daff4eaf5327d48091e61245c2032bc999a4a0a75a58a2001f30d28aff4c454d91a9f1d41324df8679a03649c27302a49500b7667f2e561e441b005339e3ac216c50045111551801815e79a8d11e51699c5e9daa041aca601f24ac5cccd7cda039c3ec62c365575d0a2b53607888da1952ac50917623af0ce50f1e983c6b20ac030b15f057b78ad6144673ef07413da5b381df019dcaac693a2465171310e09c73c07f1c1956797fd7cd82d7d065f7016730538dcac87246ef586ccc4e695dbc698355cd22b3334f715fc235479fb8583e2284341f4ea494c89bf8b04fe3325f262a1f59e31679d8cad6219ecc56759b68ad363e5330a6a5ad3843eec4d2402a5d22c6958c83910607ab058e383d8e98740711045ef080dae1af743960ab149448ebdceb89c4acebeb35a9b81208b498a86dbf6c981d0cb06392a211557426eb8c459ef08968f70a45d61c29c2cdfb0bb27bf1db08396e131623ecffed6cff0085825dd146cde763c382982b7866dcc9631042cf7e4851ffead3842ccb3c7ee6ca8d0b2b3ab289ea032d8f79b21f6e8d83805286898eac9d9af0c70c9eeb2bcbd6e8751c788520a8c180d7053b0c886bfc006f335f6535bc9adb630db65511530140e42b9689ec1e26b599b743f1d3734bb7f896bcd2f060b5301fa28057729c8e9b1e4f60aa0fb0b8d88af5e103e36b129806418fcc512efb17cd9355b1c71c818cb184d3dae890517f580445c0f45e7d923755318de1e511ba5c21e763c8dd71763f483c5d137d7ddefc14446951aaf5648eef9e1e5b8a38488fe6770f1ac9db2b5a3d0977f5d5c347a44f1aad7202d58f947300d2c42b4678358d449001bd5401bc7b21c5f4ce03f1a922f3ff7daf8b487328a77fd0f7288de83fc631228d11ca4c41a919d2733539ba32442eab15e18c5c41e0affca071de03b1b03b02e1041b4ef8de5dda83be148fb02442633e5ebb2af51205c74d56319e55cdbdca92ecbae65baca393b77f079d45bb9f5018bc30bce2b3d4d3b48db718ef7d20442ef7c71d38a072c4cd38f16f0729e0d86ed73e4eaca149c88fb471707999200ce73381776a02b0e623ab9caabf9735fcadc7f4db2baa51db637e9b0aefaa8ba0882f64c2dd0783e7a630f684ff46ffc68390e2d7ead05b73331dec5f9a7f376c408520a793b39f228e3793b196f94a0b793978c525c65ec41a9c27aabd20da6e037620a3c25ccbc0cd4dcbcb10621fb536431388693d7a14b7b77a9cd55c549c97c17036cdd11fb6bdddbc1356fe63ad1d5f04c5312a4961e664fa75569b5b16adaba26562cf4b315f6d21a6bd5736bc94726d9ea40e229176a3c7f4b53991b6d1ffb645dac51defbfba5fbef89817af157e0918b0bacf28e81a39c34f04de1389db4deed6a506f5e40bb5d76e576ed75db56436d8d98559a50e1bc5d3b3fa2d89d330bfae69b504aa14c985e5257134ae46329ddf7c72bde248f947bf5d80ac3c74b06fbf82df9237adf568adf6407d7937ef21ca728110311e56ee67ee9649a036b382c37df0abea4d17e3bea89616e6d1b8eeefed04523eea8da9af38a2dfbc99dfe0da05473cae820396c4cfd9900c8accc72a653ddcafe83d2f6a265ab1c0df675fb99cc947be34ea5f8c1974fe70c5d91e750bfb5de420521ff69084fc0e8d3df946095c4bc63ee30cc9f52696ea61c0aee51087697914ee8de694496dacf8c215b3f6ab13a33f1d4275b00104d31d1ec68931814531af1925fd10bee7df9645ed8090878ba3fb6cfcaaf4ee50c9d37dce5a7231a0f706d92045b1258e3173ac38d9a30a721925955308c24c0cbf73219f2dce24bd3a1ebf9f2765cca7c3b5a1aa8e8daec2e475f0361dff8583ab748ddcde531c921357ba79ae8e4b9e9a3860fcb6b1d7ec5a390f98fb2320f00dbbe26b80b18bd97aa0651a80e1b75eaa80853cf8e947af0e8d1ff75e78a0a22832792c99d07766c1a54d5d3541c923510db7e89808ae497e6e04f96def1f7d0fd77f03055f8c890ea10794da20cbe6c9be66c717b1c9e1524039634d22a4c54a8023a5f2a1620a142bac429ba7b115cb0f7f34ca318d454cdf04d54053652de8689c52f4f9be5ad9aea71715c5a3cd32f9622a3dde5648c40561309c2bf5693a548aed7a03a7847941ab88bdf175d9dcfaa2ecec16439692f2e4bcec8fcec91e3ea3795737aff7b7de9ae78fa09efdd6ca77de7ed594c11d0633d687081e46134918604d1858f6441f00f015fa578839eb08a63f01cf83ac1d994465984cd833ab4f40cab59f8f15cb0016cd44ac64df9e1406423a30274be1f503bb5801d7f265aa489f7d80653cf7c063b4d1f000ea46915bca5653736fa82e75e3e06a2c40790cd3a00406803583765a085ef02c67457d9d52c92ae6980468a337a02fa422f55c5c23092b8dc2162d1070df6b4439e477d25a24a9c08f3d545e9c202aba659ec94b44935342f4cbc0a4634de7fe24d90c4abc77359c7566c7fd30944f10d6a4d19dda29ae080b6698321b8d2577eddb8829faa3f31d4468452589723cf017ae9f9a2663b03f92b0c4c51e535db259f709d9f189e69862019e0d31d478b4aab8b85ea5f30ea4300541be64345130aa22623fffbd23e7f53eccf17f29d5592d849c330aacf6ef246cf4d92b1b84d22b0b5c9f77cb1cb6c8284d4b88864366a102405434ae9e711fd9b051092eb12db15cf15f9c65ac94abe0f9897a492b78e20f933f72f53652096605f4406682836f885ad90248b30dcd458bea0be372668442f4685a65f0f5c9fe5bff10aeefb94d16fbae410dd225592dfe556b3146789869a84060b7f9a7c2609d04ab5b7c5c5107accbb153d65b857fbbee4c84f0cb7bf24df24a4ae8c3ffc023e7ab8d4f5cc6d5861697738e0e08aad3134e5cd13f7bb203c8ac55fcf3a972483f3b2a935c26631c3b94618e9906f69c00dde17db33dc883d38d3f3d9b2830f7c313fefe6e8a3315e667833ae95b58101fb45f75a992e76c243d88a492e4af1496c45db98a8225be9cbee8c0a990c27e4c07abae692e7fabdc5eb35d5482637f3b990f9af979f7711b844b324f63ca1998ecd59f31b859a0ab2de5e07be402473e616d10b2e043ef54198352127959acae410d206fb0659c45e918d683847fad1d184ac8cc843558b89bfe655e58163246ec8eab67f8fc89e8806ab415f1d37d027f5b69d3e733f972ce9fff135a0b34898c1ddbeeb74d0d03221c0ebe5fee1ebc1f06cc350b21cb9f498e838fcbb79a55298af62318bd2fc9f598bb56b7b09580c224c1908ae1d6089dfa184fb0bb3a6f6d9e43a9fa51cafb6cd16d65c58ab9ac03881a8ad659ce7d790975b719a76e070c9e200a3f2b669c8adcdd1ed42a6207fd0808344e2db65e047be4c8a6b871be234ae612430d210987dd91060c85012a432466bba10fff079820cfd7105f4eb49b253f97b71c3f3be97e015baa57183496282ba5604a44ca169f7cd35f8273471941bd5ad9384928937fdc7bc132941e843141d89d0a52962a2964774680e56fe883e022d821ad2ef237d37290829e6cfce4aad6a7af4cf025d4bfad90db346d9c0cbcc9eabcade44582e408a2846b82a2738a7358f230137dfa287cb619be12325dce8a144c28b93088c33893d0b07f4b94d986bf2966d973a691fb357992a7623e62eabb23d6317fa29d5a3f4427c6f9c80d96dab331e0cc05f9dee61c8f145a08a4187b31e19e8a14ccb411f037cf2ab9f3ba9d4547c3c69a13a7bbafec96fab6c034aa5b2e243282db902079277fb7c01416e7cacc41eb8f5698089a3b71a40c9f00f885f52f5268aeea5bb7bc0c09b80958ff6004340ff043895b026493f189b02da9480972c9c9f0872e4806539d78972626188ac0dbe901e25d880264aec5f2d633efe35b159b44f15ac4d24c462937f7bd08709190e8021dbc9b14636bd91ec74996ca35b94c4f6525d651bc50ef92374ff7c06b0eb426a5c3e5b998141008d3d0a79b8b23b0f0f69649527183d81ec0e447b4f927bd1b2e1c2b9b5e8d93dc8dc219a461b348bdccaf6c7f3f7373795842ec37d9ce344ced0ca56497cda31ec7eca0b56b9165280fa848cb00bd1dc0a9335d7c5c885df6d7b03891f326cc9f9906b27fbc1ecc03ed61d4cea43f6e8d6ee3caebb9f8e72722643b4df5d011a9613a349d1ea7e36a8d502953449b30f6c8681e6f9e2567b42275f7695911b107d80f899b102bd0ce95295d14b9f8c31e7ac73ed21a5485bec2ed2a57dccb44b8db08ef852d87c24c6de455c7de7f0630ff84dee908df337fe236b06f0e996eca6941d37c7cf16b80af7ca1f04705ca36a30c00095ecb756cb8357e67cbf2a8da98fbe69dc6a43f11db29fc1401da67b7b338fc35c9536729bcebac2590c8cadd2f4f4cca0b1f3cfec547b9291c5cb1f7617abe1ac2a84cce0bbaed9391f955dc8358b2a2ac2ca57050f46a80247493ab1ab8be984fd9db0d51cb745a7f962bc1fde482d3beab55d2aae9e68ae44b3a13f55b0eda17ff5b289a1afcc2e97ce69dc375b7051af51cf03204969ee3abd4053f21f74f2143c9dfd81a813d11112857d2f4d3972a5f89d833130872f5efe37ede9a41f1347f87e8bc374f2a5a1c540da0b296e98c7b91f8bd7b5764a0fcfabd6238d4f273f2dec3cc41d1fc703124c59382821a03c752b21ae621f4282df2cec79a6fdc2453eccb8b8f2f54536b038a8dc4a8d79a6419d6b6c84372d1a56b4dc66c50466b6e72edac2d66a012169fb6e95867a8bd9aca8ebb28a72b835c59f718652d3215e7a282d2d9343b053069ef9c5407b76716b6fb953fc5a85f5ecb951cf93b5d2f3b10b3d739ece3384ff8058068f37d77974d6dd47d15612fb2b70694a0b4cb3d7658acaa469c9558eb46950e83b8853924adf0778bace07e2a7d32a08cda00e0b7f4e64e074b4f28692da4068344d43300801c8142f849eb8b66b8b7a827c93e23ef69aba3fda5a5d8a74c9a0eebd29cc4770575be1ccd211533d17978b706c9a951fa6b5ba707c3a15f4e3888a259c43f4419c595eefe3f7f2bf588964e629ac40a5caf82507b608b65f5c15feb8b7e845b8ae5d2d795252536ebf0d4350c848d57c773392f005f370a8f3ecc086fcd5af9ed1e5cc94041b65cbb41e8741515462a2303c21f41580dbdc6cfca02d4aec001db3f339d0317328d9a426d36b441b1f488866002dea48b94558ca96fa472c73e8b4b5e471d62d642b40b243a26c505b1662fe241fbd5f4b3dc30a2bec39db259737d866408470c1a0059790598a40551abe9f557b3e8ad6aeac344dc4265435f9ab4d2cd8c92d30c07ea42c24628ce470293602ad0a1a23945ec0547f9934d825a270689560c363951c278c203e748e191ee52f79653d7e2ea293d6ff9fc3b13caf0b3f96d1a8c3f4c48e81e381c51cb0768a2a133178b6c081a6a2ea48c5d48b9232253146e64aa45221ccf85b77b96c4a25be20c01ca85b2f9f4e97e029274da707152a15848aaa0d8f651d88e502d9c864d98df08b70344b21477f9ee8a8d96c4784691940136de275fb1022caeca1f73b696ddd4c84842727193296d3e62a753f787543c4734c4ff74a083128b94ce236a02b9e8b1013b6c7c3c23646ce5a7f48b457d27f8ba3bbc3df86ebcf03326b671de05800720bc382d53e280a228123278fb137cadd662a8bd83295d9a072988664607a36fade6b395377bc0881ddfe96d1429eb9d22456a0b014b952dda189beb36745eeebd8c303eb4fb16f6ef3220e26e148768bf9525a59afed12220ae6fca755e487e23097529baa580ce3d22c5760b1608ca3df2be3387b91227ce2acc0b7fcd643b06a339b42e9f82a3ce9f66301f6a9de35b0b76316e3ea2c00da34f42001aa5f1c1251d865ef6b00989ace44207785d5dac6054e13d71ec782890c6d172fe4a30df9169857dea8f98d42c15ff01dcff441bfdec3ddd87c12a6d42955b6a2246ec40fa5b67273fbb74751a71f03ff75c1efbfe8043016d3fbb91149a260d75e131f56bac00fa9c053c65a13ee20b1354afab79c52df884bc39e12be4c90a752209031e521e58b8704d409dc7c6bd5a357471ad950b4e7161bb77f2a414eee74bd1a3551ea0ce4e51facb182aea26573bd5dd219ea5342a50ee0ec46b4ce83ee36c30eb9f09ed64ee8e50d9d3b48e97d5e8d15a112b6bdb324dd3d63b0d740c7b93a397d7791f9983147817fe4a63ab0132d63c6a9d57d07b0472807a48442caca52f5fc2cf3c4ff00251b1a6e6c3358cc2d9d5c18e4bea0bea720984108729a9974a6546815257d60faa27006041f81eb2990914915ac22e07cbafc1e6b3af9fb0bb82126e735e212e03734ddbb40941437fd495941256f57431663b1ee4a90c1ea269fe1d7d4fee14e707a56fad4c87152ca3d786f7812742fee7a6dfc8c5553d4b309c1b07260e036e03b04e671ca9d8d60cdb3da8479e8b4ce4381ce3a906f3024d50ea46241dfefce8903ea63e58e05ae2c351a2a9db16d5a4c31990993f38e3b68f9feb51ba518855cb90d39fcb372044eeeb8c64179e128385db0614a94c88c836fdd42cc9db0cdc944b7a4a61c36f7e44c868e3af7e0a5db69aef7d4806c2e9cff3ad3292ceff322d790c2b901d7ac496af640c71d1a281913247d467257111e525f64ba0d457dde552bd22a97615d11354b6e607d232c27b4ec6ecf5e83b5538ffbefede9298a643243d9b82ae4a94b3d4a4db2667b04035c5369d20a294056df3c5b7fd471e7b8dab5f11ad4368527a7c29204428cfc51f2f88c6cfd214aa5f701b56c84aa7090cc5919f1ed483b3792f584d4cea41b046b5a3b34ee8ae9729121fd8bf6fa57695e9643c3cacb16228296222472dc9f6cb7015a02f53461809011710e29d123323dd2f448c7ee8d0b5368ba0087060fd475857e3b59a1c14dd590ca1540d33b6b2d09de1dde7c1744710ba61a5be69ba3d82ee728547ca616c6b7d89fcf369ec80ec9f801d19b31cd6cb185e0b7220df2bb57aedc528adc012403330337035424873963255c7616e1517624e79c33e864493a9f3f7f27d407b09a3852975d1f747a10ea579e50bdfe57824e23d7ae3545c40c341d7b8901d547db828ebdc860ea9d8a8e36a6f358ef7c67350a1144d0450c6d8c1da10f86608f9ca6e25ed807fce97343601f804f9f23820e00e4e97334f584e7e977264b8232e38312f22b722944d5131f2d74a97ac27bfa9c69494444dfefecaff8f4b31852fe9593f05e5b0e4e4725d16edb743942cbd5cf9f750aae57d1c66025e88320a81e7af3ddddd4b0fb2edbd4b086db771ccee6d1bbbce1e1d6bf5014cef8ff8423429d27ac3d14e64afae71f0afde7ff50adb552ac6a1e1e71c343ad8b54fe1e4f7dad7aea8687b8f330eb6048b11223c20e543c789130f3f076d13ee59207ff850bc0b012263cc0d4bfef3c0851c45ff125519cc19fbfe73be8401b00eb1d84b47f3ee25749f57968bb289c414224449901ea4010053689e70f029120418276ee113d369f50457c30a4e16325ea8b8459248e10c5cf8ed0008c350c5166f03f41dbb1634729fc8e871fddf0709b4c3ccc2693e9c37b8ef7e171cc5e0fced9f090764f88699b8b217f102c0f69dfdccba6c6ea1a2b3952d394634038530a8a60631deb545f750b974d9fd67bb3acd62a001938e7dce31dce3d4f1f74d95e67875ea7d3e9743a9d0ee79c73ce3d2fe4bec339e79c732fecbec339e79c732fdc7c8773ce39e75ea8bfc339e79c732ff4f80ee79c73ce39dfe19c73ceb947ec845c1c37aebfc42081182e7845640cc810b2a24ac9b6632faa1a74908ebda85c2e58ad56abd56ab55aad56abd56ab55aad56abd56ab55aad56abd56ab55aad562bcb62612574004bb004cb6a6f86730bc016b0056c015bc016b0056c015bc016b0056c79bd58ced3056cc9b804698034401a2e00a879dbebdf5e3febf5310ad00afbd6120dd4c0fe32d529345db26179f3184f7a0cb64a51580d67fc03bdc8ed4440dfcdec66e76db3262e0aabaf48314ed5655f3f458adb373983407c5fad7f3bbaa1556b1f16d6aa9cbe84bf16a06a385fac84ce01a7cf8a5d6f58823d51d46e224b0158c3ce7f7118432d4b5553e00dcbca20cbc6fe6a13ac546ba5d683a3b5ba60fbb0b6769825cb940e55cbe8189b69977e6953d3e8164f712d702b2352c368187d8396e91aa69ee05edfa071d0309aa569748c86e118638c47a4c7559aa567b44b9b9a46c768183d22c18d0956d22c4b22729134cb6acdd22ccdd22ccdd2accab1e04c363339924371299353712eb89366611b582633b79aad662b8263d1b79a7a82fbad88cd065b0de782336d35a6f9b19d5c0b1c8a53712e38d356b39ddb699aa6699a2668a363b036c14a2372446e27693b2d264d8cb7733bb7733bb7733bb7b396655996b80666b19909b7b00bc630b8dc4e518d480b9989c42b7805c7c0353ac631b00cbc8261300b5e1995209cc9344dd3344d6cc305c76018cc82573089c92c725992cc64ea60a36913ac84432dd3344dd3344dd3344d934462d262129398c424262b8b25d2217ad94c04253a454c2227914b64627264632473511dd18c68462484484717cdd413dc8b8410a940342382227a895ca219d06563d2344dd334cded2ccbb22cbdd707ca87e903f5c1c2333d1aefa5592630914b243aadc8490445f412cd885c3c95f3dedf37224736462ea39811cc8865b4327a59125a0ab5423a42e6876a7a1d43ae904c25d550eb2b2d092de5bcf7f7fdffe6b336c14a98dc4ecddc9cd909b7733b459c5dcdc2e5fe3eefa5599a95996866792af35e9624cb7b7fdf3f8964f25e3c654778ea2bb79bbdd715b92cc965edeffb2791bc97c8e5bd40a78d029dc4f151a013e8f49576445a928bca7b7fdf3f89f49576045c618f22976b8b5c2297c8d53b1f6a59122b8a5414432dd0c98ed0ad6bb88f58a8a536bb9d1f47356cf7503b8e7e1cb9f43a628da318efc711cc881c95f47eee22d7085b01de6be1660ce950f9b03ac56b21f71d86338c2bb5387b64d0c992d052a5bf80ab4508b54240844cf021997ae23e8b6ec2b2ec4828f45ca8d509b546e468eb5ac73dbba72f81fc38aad1b35a80da4731b00f365f7f24e3c308f08dbe1f473023965e4764af21eda3957a82fbdc37e1167221214828325359b5c9cf2c4d97d2955fdbfcde4432919965979fcbb348a6caeaf52faab66aab97b20d0f86b76aedbd59866f86b1a6e5bc6979db38aeeb365cb7d968ede1c1d11e1ccede9c7736ef743c1ecffbf8001931e2fb4242c01ce67004f5fc2372389ae8012116c459e940136c1c6c7b527afa70ef401cdb5a1cddedae87c53ab8c3a66f758adc4dd8f4bb798c7bfbca3bc4680bc3362833ec16a2acf8d20ced675cd7b83bd19e7664067bd458d6c658994ef78b966e48bbed48ea6e5d6aafc7c8800ea555add5ddc7401eb67d1e76eb6a2a186c22b6bd19feabb22337e405bbbebd9cf90114776fd636612c56599a4cdb2c4b92a4a6595d2e92dca06b8f3695025ddd65bfc2d05df12b89242242427eed4d3e9b7305adb0bd3ed24bbfafa48af48ad47eceb2a8a9c0226631cbf99460dd5efb600a4ca03b42ce4d4becd7e7740836efe8559754fb09c17efd122b9e745bf1063abac334efc92da9b9ea12bbad2eb95b49863176d2335d82b1922c8ed6d5713e9f11ecd72721fbfb2658094585a5af221345ec4f54ee6351c5b642db2ab1e2273f02b4c79fb5dfd45ab2d696eebdb7543fcbb22c2b558c31c6b854434dd3344dd34a38047bd8a34db95c95aca4699625355113c6027bd8e336c9a5fa1da75245aa31fe124d3ce998d6b0f829c122d64b26586947bf56b42d3b42ff247bc0ad1b15e0c08103475531e9a0010c55661162aba4a8c0405568b074305880c142690a8d18d62bc5654a39532f505a6b0f8f172c2fc8fdc2c5870ecc01c60c0c178c18183a7c58a534a51c82d2105aeb8b9a17314081550100416c800515322fd0f8a194330cf4bc421059a339e79c737e79e143e73af60243042ce8b61b353466c8c10d261c2910504941c92165054cca89032911c09aa6a5b0e89aa6bda45c20057547ae5edf9636e56a9db4566befcdecbd5986b19661ac69396b396f1bc775d80b63659af3c6715db7d9e86eb3d17ab3d11e26115eb22a695694f96295ad92b25013556599e69cedcdb2c8d9f9b11c8e9fdabad671cfee07d343db77eddf0afba0037400f6eb7fe5577e65f9c9f4cfa5f3955f8d7a42bb56fbf03c1deed980505e8d67da4c7fa43e4c1f27fd81fa60e19d5fc96980503cc561b866792f8fc6a3f186f06aba47534f70ef0de111e1d17cb0f04c8fa6f3b96816c8c66a13ace4bdbc97f7da4ebec25536c39cc5597889b90bafc149efa567740d26b90bee82b7e02b9dbba827b8e72df80bdc05afc155dc05c69ecf332f4f618c31b698244992e4299ee2299ee2299ee2a91f143e287c506800f6285809f7946d98006160c204280311d0bc5744c4c3da7a036b690e6b6dd83952a02188ad65d720e36461d3c082f2030d34faf826ce0eabf9041b77ec45c60d5d46096436192e9c20a3450a326440c9c8c00a9afb6d4f0b818cb28ffbb10b5705bd3deb5ddd68586731969554570eae5ebffb8fdb745955d9beeb18b65176a692e867db7759b8f5cf5a6bb9eeb23121275ad68d3d6a288db5f0b6b82db4d4755fd0c2a5043c54805cc16aef8ebd9035c06185075cb06c908ebdc4a8818c71a3efdc9a80dd3158a0427d12dd31627002fd183a482ff2220302314e2d8891001d23c9a56b6f080952481a445ec81569c3f7d9d39ed75a9ad50b0e516bb527d841e5060c2a32bb632f2a3ab60e6c151a27a87020c36041050a83e5b4f38b0aaa8ffb5ff8bca0c18d22646c90d1a2a4c1d0b5195262d840ecaecc3c6c1f360c163f6c1db6c6ea61cbec116cd57ee192c28b1b68a0007fc7a19c6a3f21645fbf24fbfa27dddea75f729f7a18c03ef6279dba8060f63570873d6a2c169583d244cea9d3b221ed1a4c25552d64554bb12cd3348ff1a46bac4aaadfef8f368673320125b1396c4c25e18005a3c56839ae0551e1d0cd748c71ce4ac899e21230c7ce8fbfd36e0b1de367d1f16f704771572beeacb5b8bbf75edc7d966559863b8c31c61877df699b2dd45436f57261964a9ea64b19d3317e4d8ba00cc69d4a2762add5f16b58fb84b0bdf625db3d6575abdd4a87898ca08addefeee6b3cf423e33916559863f15d809b8a78e80ecb36fbbaa7bb2245ec7e3a9466a4390886d37e288d0e39d2c491db7ed9c54591662a54ff8b1fff99312187eec83fea41b5153499fa9926a48484b981e717a6ce741a89e19cfab92382df09e2c49ad22a0a8c0ec887e151e4e47977884c048a4fa1d6de211021ba9cf01021bb176a3ed8ee6fcfe8e06adb03def999129f1d0889c8ea723725ada849640dd533de20c3f23843ce849087910f8216f451240a093f3093d2e3b5241b80fdbfed89da00f79106acb9280be3e3ded48f5784e8c2509f9fa9c9625f97cd523c431f70f441cedab8f5d77665fb3ff10cfec3be2a9ea152466cfc3d1f3ea75ec4e8fabd7068cddd89d1ef3ec293efc159b3ac6ff09f183216647726847a8a510fc5a78eaf83f16d8590f794c079365a884920fa790d508040000090317000020140c8a44a2344d71200be4dc0114800a587c46686c3a164b2461418a032186a58c210418400c208400420c333366880066007e784c7517611974ba0c064e8745b0699d76e2c2b0c2ea0803e9e6deeefda1a58f0d765cb8903cc447173c08dd01220eaf3d0c5cc6c291f6b7a21bd7f8c7f793de9fe0aae1577e59f92a5229d76039567105a4f7eea692ce3dcd7fa4f12e6118363967693a6c4a104cf2a48a748c509e2a24f5a763277b8b6498f254413636b6dbd4595d9b2d47297f66756148c1403f66a11e18c72527e24dc43a8f030344b8ff339ebdea20d9266d1a0642008052be7594676899802833716cfe872a99182eb06ace18f829fbf89d812ea492c3f632f56f6b63ee5bfc2bf7da62f7391f3f687a371c21730da127fad2ff0d82dea74ceb320602817bd79fbe4af14dd098a83f406d47e1079f4b073fb074c490e0277c33d98a1d31c110a10af79dd3bac2d241b2101777c79e50328174f6bd08dd4d80d46abfa3df9e1340fe10781877aa0f3c49bb624eff3d43239e3ee0a44e569608c655167f2b2b9a0e5cc82c0a092c0342042c8f6e14329c12503076a831479d63b3a7bfb1b881fc14452d1480a2b663115661e9978f45d787c55085412e03fb8cd3b9870011234813741593fdfd8c98211d0c47204fc054353e40efef49de2afebbca41ae865e573f9907a4fd3c56b232c8befffb4a454a137378cee77a5c951d048271f26127039ad48323ef11109a7ca3e8be9b53e944fdd3978dd7bcb0368a459a39cbe905fc7e37d94a1adca4d89335dff697eea2ea6d1f8e456b3be3b1231819f60637458d3b893fee81beb9672fdc46b2eb2874b7c34fbfcfa2bf0cfd8b9e830618ba1cffc3c4135b6d6024b3c0a078cf2a5e16528aab0db240c46d5984db4fca7e4c70443302ef0fca7e59a28c11eab3f48ef826d9c17a0f9083b91881865675b05a61f95f2d9a00546e7aeb590775d730e5ccbdea7ccea9aff53f8e1671c42afac87e2e5f50e152266f4f60511714a573103704cd29aa2ab693e6119e67a0a2f7bf75e313b45171936d9af940ceb81c0b942f98e3a7b15c45433653701a89491205179f5c7f882231f1398091b7fc78ce3d234160a2ce4db6c950b65c0dd89ee99a192200cd0263032220c71fc0b077e11f6f7d510ce3be949e8a7d6069abe067d30bc2ee4c6f5780534e6f580fbd5fc70abce02346fe7c4a6c083a17994e434ca0cae53256e372bdeed4cd7d6dbbdeaf6355414099deb10669d24437f493b2a6918f03e36f03941449b6613bb153603d365e43807a8fc58290c5b541b0b3839409d0dbd2a429e9f305308de5fe8c0ffbd486f9ff75738012c27464a4375b053ad3396256fb0d13701ce0ca2bd008e743bd0517d01b8051e74f83a6e2ae968dc163b19761d529442ed5933b56e5c390fc58967e70ab3c6e4ffdb1e47ef477c3c48fd5be538377d93af0768c8f02b1a5bea9ee76269e14650b2c835a1770e617b33ae64220ebc3521b75de02721168dc7e08bc313543dd55b549f543cae63c3e873d8611a6bb74103e93f3645d9e1abc554fd6930360653e1169d0657db418b460fd4dee8dd7faaf2e5c4206ac9afbd1558847573eeea7d54dd5f3be92bf564588b013d060a8fa2527bc2bac8c17e837ee9dc097c2918172ff76404726a0942397cc53f3651856f04835a0a99a47aa905d44d34f799e6ffc4ba0377f7dbe751b72dcb9a108528f6541a08fda1cb35d912720d22d982728d2f2c980a8fe52a084535b2e71b73232b742aa1a191f7c9e07dbd6671c7a20ad3a0fc8d814b4f9c198ebc294230f429d0a9f44ab265794aeb5184bb453d4819b2d2810bbfb88021e0de71fafa320c917dbfc0b819e04399e0405f23af188266322f43ed0f22b6d1d923cbd74eb71fb48ba7d6118a4ff71c847586a10f48ef6f7dd9a9c0e9af3967c4ccd305fe0c0223f1699537d52a24ce6cd18f0aa8422f2ea3743a17ec515dab3ae9de757bab92a8b496b33fae0651616a60ae912f2ff1e6df0b6c99db3ef4b5841946f2dd612e8f9c8d8f6849b39a8ce9443f1a55903a095e2f28dee8b5c3606885ecee1f6b42cddb1aa00579c24908cd6c667d697d1fd4a4007a7bd2fa778af1cbf4ab493ecb1f8c254426f47f4043722fa8c16dd3dadfb009b9e9688ad6b8ea972e7d5b8ac5a60d15e9e009aca3a1903c05731516d919575e8abd84d0d9463e590ce924bbca6368558b93fd20e1192824c857eaf925e3b349d725b124c9d4cade25100029b9b438a1bb8d43c4afc2454b3c7fcf3a89f38c7596a4817496b7bf4d99033daf7f4452e8a2bb53a25adbe59fd55fe47d870af403416cab3d8a3f06e15aa93f678fceba63ed0b724a5fa70fff5a80be8eb498a869d549f4c1ea979e44f6a1810651feb7f5990321bcbc446e21aa586029d8d57117d474d9c83585d0470351964f1d0d91abeb817a2d0c97e92b404d73626cc77761ea8634f181f9b20e32fde107bc6d7b33f1b9cc8ed02e7394702173fe5916a75632a3c14c160a21707c003e98196897ec71167111567aa9999137840d401d09c80f0e0872550465a4b548c689f18772175e4363795207c7371f86ba23d342f1ce4d681c948a92a62034cf92699189d9151b2a6067bc5475d8d938bfd0ce07f170db5127dcda20d730c645d3861fcc067c8c513135cdc821f99c5bdf812ccd21364a6a7422fcc981f8ee96d3be5e02101d3b437e965fd66d63870d4b71b6e85c8e44c92d2016661fe54d6e32ab1c9ef72311b1904e49b45c779f2d37aba242bb79f589f9f6011f22e891bdf7f886a2b90e07349b8b115b03c64ddd13bf3a6766a717d48b688935ad664919b1a948b567b58bbdc161cae50ec9248e5f5c793580e60fbfc70329fa34db4d49c21b66558c3ac5e281350ed56043e49b93888cdf0d2b312bc01d5a01bfd6d1a7336ef9044ded1738842cf3405b44a6efff49520f2d2fecb6849435a755bd061bcf976879b5d6f556429a5650280d9d762289ec6286f43fc0d24742305bf2ac854790790e8870bee3d2808435988962b43c7fe54c083823df9d2ea077a2d021afee0db8e4e6dc7bc325c5fedc19d48452ba3792418c6fd2a9062d4cd174005d84f293d9c853be7b7cadef9d527428b93a5b1f1fedc128f8a93ced5687a78548de2a885e38a6abe516720aa7cbb7452364de0292ab789876667f8ae0fecb1d696e52991bb42fba12b9e3be5b54f1be5e5f844329c31c206f7a0c633067fb8783367b113a833f2f1e9e94349aada59421d23348b563e8791d998ec19bceb951a855b6e88f75830eb71f94cfeaecec423a2467dc21a1d767a7ea5a59698f5a42f8ae5cab2daf935b6a4bbc760690519eb5bce8a2ec36dea388cd425a09714cd808d3a4708e1a1a6c626cf6902e62c15dae0177550564ff2786dde4621c1e343c966a7889536766d617f081fa397f67a184a3a52cc8427167e9e3d074145b10bbe0874b069b115ac2c074389201140ac706c2bbefcb66867177c1a3587cb55ea86a084c7279388f002f2e8dd698980bec00d4106dadb44b3d0d0611635d88e6b11353b9a9953509a654d012847358d51854237fd9725cd76b78fda0344b4d9225e0ec40bab7fcdab967a2431b88b51df646d2966800f21a0c104d607335152650c9083249d3f5dc3ad0a5fbc0d51882f609a274ead3593e04331da394c611be0e750c5504ba21710787f62969e8a0260f2bd50c45c16d132dd1142181423037916e5400c06686ecf770f61cb2be779a9505db69f2bb275376e35ccb91dd61a01b8731b61e0234ea86289e6aafaf237e41aa576cbea7f7df68a74b5b224d3a7a8187b8eeddb294e8a079f6f8a7bccf7a1efb6d2bc6af1177e1bbe60050651a236f49aed685d3bf53272cd32266653777ff1026e48931bfe37c3ca1422936f995aa9b3a5cf0ca3190efbd5738d9d360abd6b5a5fe53e8f1b7a5a71b708bc0f37364d814c114c374feb60dc3795516309dcc2252cfa16ff2635b52416b0e4e286ffba51baf0cc7a6ffba642d53fe1f67cb809ae5abe97de3b059e56336498ec40540328ebb65932c6089cde3cb3075305e4e7f405cf232b911d2efbc1aa3d3f52fede1d5e49e3f923caecde153596fff93a8dd666f9d3fbb7a6e6bd359466d7ff267953ed4af8048f4032d120244866b337d341a14d817d2e44f63bd01409d988344e94d101c2199d1cf950ede2c1ea4ff5603f0d84d2d4c0dab18ed2a0dbbc1ffd4a2f82ce258dd6c6454e2a2354f9884500ac6aff962d6a2591aee8ed29790225af68443b4ccc7fff9e384b20f671e8b699f542150c7b6680e2100283461c580fb45315d6a057d195ea7c479eb9483a7db8bcf2079f4c1c9889e9a5c71050537b58b71c1c9ba7d327a7f534b51e612ffc67a146b4f1a8f88aac7ddec41944ba5ccbf978951c472a967c7f0749c4a6dd6957c5dbad9934d5de4ffeb20a87dd0ad74fad619aed8819d0bf68faa9c87720bd86aa89e5a882642e435f9064f0cae61486ae438b7dea7703aa764f4283c70dd86dbeaa7584607acc91c9311e1e30147b931c8099e60b6797d309bc018af10410228cfd7487807af51a6b33a0ddf3c2f50a7d5fd4f09e8026ba13d147baa7b2c5d8ceac4233df0704000156718d3526d9300fa83a8b1ebe298f2ea8dcbe636079a9423c2faf09f8137b9a4648b3a8a904516945840ff05fb52f84585a2ac1f6d7f2978c6333e20d5a13ae184204fef2740a500ca209a105236f362804f7c00a725c617b2a1a8b02f436c56db60d5623de98d30c01375fc47beb6cc2e6e40c757413d74673335656b01e3af3b4317fadcd21b2d96ae9c3d970af339c9871e4d4aaaebfeba0553c04f654ee6130472f12f44d3628edc693e1686ed2be8c403fff052ee2486e3f1fcdf77453aa6d039487f62d51173f4ece69fd1cdd99b9373687afb9be748dc290b887eddc54e6ad6a538485626e5ae8488cca3ffa0eab91a0e460971948146df6ffb6193c9ab16b7b74a1ce65f69e988bb0127bf84ff640c6bd6969cdc13ad0bb847a6854c4ef95a7aafde4771d856c99cec2e56b62d8ff1277985ca855729efcf9806b373937955fc4d1c067915ab6a95894e65327991cd5160f27110fd348b6ec9117e1b4a9854836ae1b68568ecf37a50f3d964dfc28a4ff2625b5803fc256ede106a6d277a0bc02394d6bba50003475efd1d0f9719e85a8c794a6ef9b7fb8f2ab20fc82a2c4a315a611cdec9d9445829417df117548a1a0d7ce53c4167373f95f1071dddfb1144265a19cdaa558d9f453c144957e050b81b2ac1c0dd7438c94324c49ea0e084446a4a338e0e6b23069276adbee6ee4169f2a2fcaa53b557160956ff4dfa51b87575428b0d26630813e40114743771b551230feb9ee8efa2d33f92a7523cb6f97e110662c9f7fb5dd324a7a43201557bb88ccb8eb50cbb6228a0bb1633d55bb46c7847d028bf57a2044fe4c009c3bd92e8667d81f8e8a87276b5d387aae601eb801136d874031618fbe1d80d05e62846cbfd1d721aa0b9d09fba64462842887917915b9455a7d16dd3a04b846a538b04129099c4cba969b0b3aad283e3366338a710e7b29011ae1b453db6492f8cff5120fc0bb565941529c6b3e9025d73c0f09e73c426c09dc8cea5b540c409ad1d8e14e0faf0985333c4e37977fae3c8c16c3d28772c5b8e8cc9b1523b0ec6f816d6402d7aa0114591d2e0d15016677c8f92dbdc4bca277a3ea5a4d8df9b53d5cc86561c58943a035b8c0f048add10b8d0493204d44e147905203e8d44e1a05e205d795c7862a0f51413b0ef0214db83c2a0ebca44e089e3ade0500e6d73739e4e14062099bf7ab38452735ba1739344501c9739b3fd58d25cec5b93a54d904be303f4b4b5ce282dca203a8225d468d38aaf89b2e6aebcca2270949b35ecf07a12d8d95b0f6ed5ca877db5b311ad46b92d43e187efdd0157faada38dc9e360f70f6060b793a0dee2d81e6b6cd6bec2278daa62f9a535b7cfc39a7dafdfe46dab0becc67f0fe0ef1f889bc7b17a5e2e684dfc95a31a281ff229f861052d0e9e0325bac72004ac8ed286e951b0749042b07db8a6defc38b84337192843af37d2d1bcddc3d367e6525ed387a311ff5e5e151292f84f631c1ecc4e49bd6cca8e05390684e19164d67a789ca7b4e3bb9ee33517b7ff9e42b24872525fe13bdc79a01a497d4eeeb9a6ee337e74418ed960c897834352bc4875399818baf66d90ca5a122d151686af6ea931f35ac7620485025deb7d151b3a739f04a9b1b25101d79fe8a1e828cd65b69930b4cbbfca73e89f36cd5a12a0dd106e0ba8084454aa1ffee3fb3ae3a31583beded2b5b82b6b7ff489a972b119acf1da27a66d1f9df1c22123a1eed3ed44bc8fdc534d26b8a3aaa8a9f5a053d21006d4c6ea8d1601ce32a633809e1b5cda4734e0842c82d3aacc5fd0fd0d124f048d3cef3a3d72d478936b92be78e9988068e4f2315e832053d077831048eff359fab889c527985e514faf6c79ed42a71a3be6e22b79ac79525ab88e85a290cf427821364aa9447718a90d8eefc67012a98f5623a39f6b31b3ad3442afa386017393b3511998ea1f95623e24871872d676526dfccb6ba56bfcfeda354feb26415f48913e9fa7c388c6f8e799250cf8962c78319ed8066b8d907f6d59f1dda4acce8979f633233b76fbe7f4a5d42a78c085a2ae079cd3b5a42160011a0e9f8b190691e2612101c074f0502f81b8a40eac124a00b0ddf11a4295094c3b0236c5d4a107f49944f3b4a6db816a202b563150b2b1d6a573bfe44880443b9b1a32483bb7c326495aa7f6055c32818afe03ea3a21daf5ccc935e4034d1fa78a955f076047a63f6860cb5c812898c31b323a0584dba3cf14856be23c072ec6f000793d04caea3d28f30358e933e6e62c7da4e5d2a629da62e61059f767c845e54380651ddf6d3cece02bdc3e49819bb30532bbc713dbd418b13117a0314768047b6a02827bb377a87fb0a5dd5c66ed089f3df6da871f05881c703abe5d42a1ee520166463a935dad2ecaf0dd924cf2f2b2bb39cbccfbaa2b6970ca5d8cfb8c25948c4f30cc86b7d6d7128d6a382b21f14d0fe44a9eb3e48b0b670734b83a6c4a75467dd8ce6323742440b6c85569c53d0aef4c006f55a116e942adca2651823e450d40b7124c10e31e35ba8976e9639762c8e2e4e5cadf8225e3500688632876daeec15c7665c65f01c3e09d9395b05498553511f150650c0a8f04d68a2c26cff801e46c086b30d69dc36642f85313b08cd90f3c3d749f75fd7c202da1f12a22cdd4f58f7e866b4ffa42a6a00f5d05e4aa96bfd7329dacf96fcc1a49c95372da01f5db47fb6144d925f4d21e6cfc65edab3bec425d56b519208b9785953d2bed646df8d6790a4b3a218a94bfbf7e24cc6e6ac852dad15c120f6cd208f22d54d76e0946ec15611daec42d3031685b778ecd140f1d4807f7b8e2f81334da96c649c69efb05a05dba113372d5f78378ac0565f4e34af36616379d223df8958088a67d46c8c22623480967e92edd940d14a89b91ababcee412c22caec5c0d9a2097fbcd3596ed1f7838ac5ae65ab57d0fe248f5d2a0f0a7c3957b481c85e46016354597c306025fcaad52aaed53205abcfbfc5389141fc76a0808d10a114d1c1de08960388c1129cff6c58dbc6c1a94c743e0a13b79cdcff51bd6012506a592336d4716cee31b8caefd571adc151acdb80d3c5a75c5560c89a2332cd56af8cab921149ec3d4ac2c6d038c9f6840e00137596898eccca9600f0072895c32a696f2ca9b655f5dcc19ccf101b74ca5a5d06451a14b6205970d1620212da47cb9f0480c8d06351141da3f868d229dd4c2c07aed94404fe4d305ea770fedb8501a84e63252d58b6b0330c2fe1e46ec41c39420ad03ea51ec45e661d2b0d76087c1b1ea11318ae2b19961d97230bae12f9c7a18af21c8686cfdc5cc752450ffa6ba2d99758d8e287efbf6db887cd48771807072206752404216a30462dfbca50f93cf953508c4a8878adff66102738ecb1af73dcc2e9a495543c187c154a3460080c05ae55ad3d8d0c3c097fc09f0a91181f0b363cbc334bdc443aa9de84d34f2f255d31fc6a68d8e1be52093b44e3092ff30f9ff66323a331578a9ad1c6678f7833a1a143bd9641ebc797655841c2943edfceb67021a78d2d64b33f8f9308f2360e7ae5b47dc39e7a15d0c83919a196066b90aceb141d06847bca0557351860225a26d339d957bc49c8006935a15d64e64db9be1889770517d341146663677e48881f461b02e32ef54c4783a0ec95f0d10478a5db4ed99fb91c5721d6c8fd71847a9fda44d55e8132366d6fa5bfe06409e5b6796843d7b4a00b4a784a13d5969206c9eb3d1f8d31056f054582a6f0d9be70021145ae5d08be90e1e78e20041c8f039778d5b3ae5c6521dcfe1665bc9995c8c2e77655e2ab38a765b66313b265b4a10bd800a8a4bb154a9bfdbcf7e75a1818e8f26095c1a11e9343b1941da0e9c3e6882c0394c6481fc17020a2880e021c8f11cae94c0c069a408a713421c93d6384820e42479ca71a40b280efc4b8a1d41b99acf55fdd4c8d226b67941fd66a721738bbd574e8bb2f71fd17a4cf37c31b2e79bb6c170ebe4289ceef7fbec9342e58885f41b0b6e242669c9707e7b7e424d9cac11453cbb4bd6735deb989cd5008e8e8d45e6f643f4ee8266333fc0df6fe9d3e892008e83ea2373f995262bcbbc27e1bb95eb91f0d7ab80ef875f80dedd4543241090bae8ba56d10597ac92173a1128ee43f1e6056ef25d49cedddd5697b2dd9378cd2ee17f07a7dd1226bcfda86cc9425f8c945e5d74d0976c5428804ba66873cb0d858af242ac8c0eba6462953849f70c18c5945a157350d960b9d2803f510d16695e4c15cf92b5680907244b0eb77c9336d0956e07bc41c590c027ad522a91cd4bf6701d76e30abba2a8f96305a98566abc5435dca5a16aadc489b3a3759a0532a350215440ec5cc1b744d16043246ca17f510abd4eefc14a086592fa44b282fb6a1fc3599e51d2b8c9d536b322ee95d81c6d074db8872a4b947dbfd137f199a51e6eef5f4ed90ba5532b95a7bc42633b510b8b901d957255819b6e483034c3c17cca4c7009bb0cffd70c62da1aba244b6e996aeb5feae0884c23833d3bce96c804f00430470352499c7098c4c300cbf019c9658f00ca23adad68d47dd7b2f6bc9abd1012b6532b58aaa23bea12b9f8a8aea983f37f7c71f7eff1d0b19bf61a6e022e7e7c34bca56e6f70aab26d7838788a733fdd438d21d155e9774d9ae21eabb864cbc6a1b1c37b8f4f45a0908dbcc440faa1561135fa6849de62ece2a8d24e357c9595f2665c79c243241c9638eb6d18bf5a1b0ce0bc37b250e736f210604965892473147f21ee4e00f800a1d24a816132edd6a8fda11eb1f1b4dbc7f95f330a15874e328cb7629f85e154cd808efdf4c3c8c5d563a4edba0571399ee3783e9835ef164faae986fed582036d85d96accdcb23b6eb8f5ad4a31e3570ce5401fe8b574cf134980ba19467fdcbe2087ae682bd42c6fd4e6b4fe325ff3221df3d77426d4797d03b87af249739165f1b7e9bd1e8c7320ec512e26117be6006ddaf5397e9364e185662a0ffdbb865c6099338338a4ac95636d1c793cd4b0e95b94c1ba7646066b10dbafa0ac28bf36edea55cbcafa552de83cbb49c45838d12ced73adb7a9916c1c253c3e6e26542bd15502d250a85f6a9f9fd9fddec7641e1fe9d057149b7c742488dcb0cbc1829bd68d148eb6451ab005ea6129bab1b2835956f2931facd654a27719232f3653cd3b601c6367206f7bf820de54a7ac26778fd005f66e0b0e0ddd9f65e870e1d992ab5b4f5f2823f5de64307306ef75c05af9d7f4167db904f69ed6499794882af5a1975841cde4402cd8e92aa98998120f3a4bca71773a4eed06fa195dbe10e1d95f78d0dbd72665ae911e101393595995c1823f695c682a7460eeae6c47c2ba85c2c9fd9695b32fa561384b42333c955f178d3c00f50ffaf39366b6f582d008e4781c2e99900d93e0398cc9e26ba01e5b87f3cb4c015a0a018068bdc7433cb6101be10956f17336166e6ff02d459530e1465d8ff13061852782cc9fe966e0313a5831ff191d48639047176273fdafac37b259873211bdbee6c56b2d408109ab066cd57d18b2eea0b1c3331c409a3c522e8874cc14ca69abe444b142508282001a8cb7959f8d9d8694541b25e2bd9092c6d7fe4a1bfa4d424679b536c4332619e4bdfb048d005d0c525e134be85bcf9a5a83c96bfce69ac0d67c44e90fc8c89a5447bcc08a69b78128c4347542a12a659289fbe5c18ed8c7731f4139e5012e8909760477cda9cd27a43b6512e7d0a76667c53176892062bb78b41c7cb0f353274de6c838319e81dd3b96bb02124bbc528702112a9f6c30e117eca70b33604c9ff1080c7fc0dc3086c902368f9cc26f1983f99351916e0d849bdc147db16770a36d43f12a71bc01a7910f6af0a1defaab565327476bbeda4da6d0d510522563d7daff289ad2fd479bfee1d9527a8b45df13734ee5766ea3f7948cd8b8bd29ac04640b6ea3a8849ed55db558dce01c28cf1d9995a4451063c6b8ad740556a62f1a572182ced5b6810bd1f78f52492f5fc547baa3815daf61267ac401c17e60c9a2c4e6347baeeb7b46adf633787cd72e9243ba7915d1e0a5698c03de52f04095a640f894579ba82f57b64e125880698e3065d947a06c98c810f5055a6b6818368d4f6e31c79fc20a74bdfa9404cb34b81009ff3ec061bcd39350af7b31d6ad31ceacb3f596959701e8da996ba8441a1cae893d88902a45ca6e32d59b4a8f92b7c5a5ec75efa2c37884bca705692b7dce05d3912e7e8ffaac479ab20055297cdcc7850c7344846d48d8bf602eca01dbbe584b7a1320c05cee29fe2031fafc1078b03b741dea78404baf229b16b50ec5666d73f9c1037ec7740d55fb78cb9d5a5a8bc3266fdf25609bd9427db0a74d51db3cdcbaec723c0746dadd25d78776f0b1b78d8fc4e10c5bb797344344a8894ee0398b2be0de20872e8ea82897b2f4dd27aa32ac2dd7ebd58c5b75c338fe48b61476d4152fa98093e7a72b5a3f310c93144ee91af439bcf391519c69b23b1c9a7621e9f0bc7f3a64d7fe768b8313c68deec25865e23e9c243f5949e49e3ad070d2b740a2d1b553ccb60245c4b2730f5ed232e2349a353f0701315d1b7c0d04f01f718c16ea8287c11e7818eb3b4958409cd261ff5a6e035a00dcb21c74974f0efee772a930b308bd0b715f65d708d6744711b6e4d33b6ff2e4ac4eed260f0fab11c58d4fef72b3eb7a90c2fd806b813136a3ae545020d67980271d98028b33a8021d2c19aa02441063fdb329bff03e4c1540f7cd805f5a739fbb5436eded1a7d4d5164b2c7950fb85f26ac95f3f02df06672bed334dfecd8a3dab7aaf8a86b3d924c4fca336236b1daf65cef58822f59a1e2239f7dad7935941329d00db854d408387e479cdbd91c8a1611416b9b7c4e4ebc3b586f6265a4577b937cfb149a2138df4b16c33ece82bcc56afa85097c99231b34c1b86e7010262b6f1ed3cfd122bf0e1d73ec481036ed60787be1bd34c54f841bb533caabb320bb3757948ec75242bb7d3889fc6bc31bc408bfae9d4db63640e5e6d6314160e70623420c12b78ceee0f12947964983f6f2c84582d9a416192f9d246d6e4922b5136cbfcb20f8277e2921d16185c20243ade0748ba2515c759ecf96431b5da927d2a480820d46b49489058c3d104c7b12c79de8e06ba3df6d51f05c306cde7dd19f2e54892cb4dcdaf44954eb1e385f874215833f7a07b90d8c8dde991ebefe609f6c4ce7787886ba30f3760805f49a0298dcaecac8325b670e0771aa04c675bc9bb0a4e20ccdd0d45c392b3d88b4fe703ef6ea6091f693f29f626d6df2a39afe771a2c7ad9fe41f421d683fc8bca17c5c9f59f06d1df3c16c1d9bc17b2c0fa764295525453895b8d0f803993b71b289474231007ffca825041b21a8a131b697b19e1f650a7be264138f8462007e72764b8b36425043636c2f637d3fca14f6c4c9261e09c500fcd0fd96166d848086ded85ec2bab71f180b45a78a6c449111581f0454230a438c78908453fb532d36de7fca802050475143386a3fbb7a8e2b2a54fcb2d9cfe0e7bf9e93d10c32fc9a8a6bcb13666227bf53a22b013248010fe43a2d1e9ad8930434aa6d1e01c87f4702ec3e8a0aad33fa7f1b0c17ee77a845db4773cfda7538ff825a82094ceb8325b4b6163670cd34a81990ebe6dc609f09ec6ff0a71d70f21983970292c8d7dbcbb8d447fa47d02895eb26103bea161a9063620113dd5085f6ae10cb0de67021f5bdb528215283da429f4f79bd7a7e37af30f998b4a0c989900a6f2b91342a06cd2f8c0cf312df37ad8171e8334ee1d3c2c3b00c90dba4dd1077c798fa9870fd548da46cbe119e0b70bd06301ff1b930fd4b8161978e5bcafd696cf4aba1aa7d6029bcf95e1e05e26de86f38ea332cea8e2beb4e5eae79836c5da18e89bdcd45db1ac20994e19ef5e661b40f0aa10b5d9c205d41f0f2870bb126a6c5c17a91a1e3f7ae1ea9aca1651620244eb44061f9ae98976979d414ae1014d880713b9d776e8844af7a1965eab7cba8323e24db32fb00205a7af1c271e15adfde3ef9034bbeefba7f506da9819a6aa0aad9c5aa4cc58ea12f2559ff025de09d0ac0089d0bb2a06c53bc1d718e5f334e3abf188077ad5eaf25f77eba8f583c1a1b9ce00f8f8a13971d917d49ad8155fdde9dbcc9517dd07c9f20c6cc17ce692f97029be8656740689f692d7d3a35b0788b90885217250a4d1785d0ed2095a12f7e3d74015cc65758006e07a90ad4572b936ae059c4017aa47f9905da9cb0eab044db500db41e3e3ea8db6290293c8ca7735cd92f59e860a68c64ef67c947bf71abdd8bf9a1e1b48b85ba704d5717ca64d785fad885501d853c58af13fbcb42dc063e600b42b91c5cc31116a702015b87850a2c878e55e90276aab1309013bcf65200fd4822ece05351e982e48a81be04fac5b02737fcb3509db9a7de645fabaa09ca29d68648f1073287b8ca5b1dc138706f117ff08d924331fc1764b319470ce5bf32b3a6399733f54b4bc38cc15c421b423ef86c08f74bee89b402107b757766b99c01bdd4581fe3731e80a25ba2fb4672fc56ea5e81778626b8613c5e5bc694883d036e1f9ce8b6514c2a499fed0da00dd828c67527298371dc1b400b30a318eb4e528632bb06c6c45857a2db8cd470a306bad23df12da3c996372d17457cc6183ef93de3c764109b3aee410a0a5bfbaec4811082900c6243dc8cb81e6886c7d7a3a61add8d22e5390339ea1bff0272ae8e2278088398826310fedf43b3d18e0551f80b20e72212acc32e8a8b5f4010211c5d4c4ae1a25e446c17411cb688d4663ecb7f298290335a4e4510871713d99e7bd65b0c28a89f2e71c2fe86f3791ac2be9568d553a46704e4d19b9559c1e20c11401b159340d074ffba0a80c6fe638c02311a8f17f83d52b18a624217bf073cc6e44e817a40d0b72b065a32e1ada7c0b59b0e04fea31d02889b04c16d285e95c0f4703c7570589d34f538d4dee7c86727028b15a3a8dde4ead84cbd444ba419f5ecfb4758f234bad01649daec680885dcd2bd040f85fb7e0b3a60dd07563fbdc864f9121c135dce0fb1f4e91a7e93cca4f15238ad4124298b1982c6921b51caada960bb7f13125ade7b7b42d7cca608fb9d9c61debfdb27225be634d5cca608fb9ddc013bce44862b48d86e6e8c59ef4c813a3e2a52a8b139372262ca7ddee3c5a1de5a2d2531713a91e8c8cd5b5906baf6fba4b71cef43a0e88f6d942783923a4d1e174fe200ea998d6f331e37ab3cab680a77cae3bc6435e771e56ba4c7cd14588f5b05ee596c1c25fcbcd890bbff69d0cbd32cc876af6cb2670c8ea6e6a37bdd21374141eeb9f9ebdd0bb21b89cb0af13fc690432ee0fb41f662854823c4cd7321b7011271525256d45af5140336d2c10c26a06095ee41fe41039b682d55c4e08c392d3b817ef82421a29c926672d5ed01633a50b19d28e746826cbdf5292780f18a98aeb5de8afc5589b61abdcedb7d67b8e5f6aef78dd3e6fe6940f166dd4e6c65b7e70693e29680a2cbf52fe6a1f2527ca244ff7731ac90d9468975936f48a737a730a10b4dc3246d6fbc7805cf5c11194a51a2e918625c10950aa34e27bb7f4e642b10896780e149f4094782a9831b56e22022b2fbf9993d0e060d9e69483409a369043b255ff37ee071b3b5a2c63f1731c8a0bf7a85f598121f7e2015a0b5b4053b9519e935a95125f3a1ebd5d14250a8e77a9d5918232c16a06bf29bfd6572009ce8f506c9a4837f888fcaf67a9b20a4625c2864e07a19a0a8f6e5fc103b5416412bd64f746e83c250f47e17318d45e7d74623dce52dc480fc0d9f61fee07d329efe359ff7f1c126d43660b902aef97da999482950be234e08e23b55326118e2212e72d6a65aab887a1a05518e9b8a2ff76b08ce2e5c1d8d2b8b1976e01db14e6ae67226a90e681681bed913ab40af26fc989106b2e0b9016317c465ae5c22652936ccbcbf80c93525e8b40ed202341354169512588e2ec7223aef162761185cc1ce7633149bc6a9846a0b402966ab01ca8568cd1b58ebb11d9faebd95257cf337a5520e7ac0efa7a7c12da7de5cf45e3eb06febd9d864a307ec361fd663bc2d8802c7200fb2d80b94fcde51f8121ce1114167964c45a0739640935c51eebbf0beb3bd71b535ba7389a4dee25df8c56e59b2528447251374aff21c54e193256a3016ae506b94830f2acec757d60f54873cf0e0c996a7b53b86c3652190f38ae89e7135880372dc349a0cf98a23ea66e028e2e6dee7d76ebca8e699403e4e2fc8b063765c70cc13718463e28cae287c9428cfec3181607492a391ad6b05badfb126d8a9702f2f267ced89405d4028230902e173eb8cd46c4d02aa9c8d4f5b805451491ba096e9b8e4e3aa35e2fc6f2ce9a40206d81324f04e651a8a5b8c1ed84af98a8aa12901a68ef258f5cda6bf2379c4524cf59f3a0bc07b7fc212a81f35f413bc2672548ee324550673c3d1b66e92486477f7d2965cb903e304d904ea04eead8d2fa78a4fdca34c3a7374b29faf148ab1c4afe063a36702b1986ddf8b90928fadc81b1f6389d141083536ba5c67bb2cb90eb623243ae414ba51207c6c77602c0e86e95328dd36621aaecebe291463c1589c0bf1e96323889130962a27d3c0b6d65a6b3a744a38383a6e6666c4acb87021adbcf8405a193518e524e9a4b6b56a71cd6dadb5d65af3b47fa51d393370d4ccccb8c9313323c61dc2d8da3f7708637bee10c638c1384d52ce49e5a4b4566b6fb5f7624c5115a6aa2a678fe7f36921adb13012122222c24213a1c13b81bf5677233aa37faba75745c115a5dafd4a51c2dbdb0e4f1a40b4d8fe1f2056b6bf754f776cfa203ab6bf8581c35a791d96c16dff975d60a7f846b1efd9c7cf193eefd47bbceb0cf473068b421f3ffd9bdf7596c2e989bbc2addaffd26fef00eaab07500d3def79fc396bab7a7f6a555f1f7fb62a1dc3575a3f36c06deaf17b34090f996a14ea2b8d02f2d4af0c5320df1e62191c0a10dd3e748aefcf370d413ac5b77dfc0fcf60ffa3fdca566c7feb308afa97c328eaa515d8d5578c02ce90ddaf4f357ca12ce3c0f6c7bbeaabf1a738c57abb9eeff5ddfd09d9dd43a23fbf084c43ddd84762b8ef700c59672a1e9d555fc21b3e61b13db6c4f3545575f54631359d81eeeaef9ec288b1e9fbc558045ff7f1531fbfba30e076de55a3b80c28fce9064adbf31e9da580a47a5d9cebe7ab7a7c55949e68461f07958dbf5e597dbfea358223bbdf2b5bb1abce56d8b73a539938e064c0c40f21211870db7dc0171faf5282f5d2b65a6477b75ae418dddddf6ae1ee5278a908f65be62206cc0b1733335eb870d9ee1fcebb71186fe22427e942aba5d5d6d88b4f2a5855fe5c35a98b4955ce55f6cc783ef8e4038269cebdc72b797cb8070979300f4611333536de4b69c76b79a41d39333370d4ccb8c9312386e4569c0be7d26adcfbcdc33144e76a88388cd32427add55e8ba98aaa72e5f9803cb01008c7f0011202122212c2c2080bd7220140004201104002aeab5d00c02721121c8347bb04f0f0bafcb96b520298d43f02cc28bddf5d859cc19197f60d0bac115823b046e001c2187f7c5b39f7b2d002667c26e435efca0d02fd7b4f8301f4ef73c3c7bf1bfe7a3c8ce7f2f8cf35ed0f8fc79fff669b63c601f3b9e0f6f09bebb1f95cbe6f6b2d7c7cbc7d5b6b012404207c2eb73faeb63d6e3cfa87107df5e76abbeeec2f80fc7b9190ebd1ed36d7713c931b6c7057d81e2e84c6000ce45d3d0cd53fc7c9ffbce6027dbea6ed017df51e7f411e18e401d2f98a1e0f8f50be20c8d59a01b2bf1f11ff78b6c7d55a0bd5057221f3e4b641210f72ad18ed8ffe216492d4fd9bdbbed86bfc8557b1bcd7b45df6fc2ce438971f31437d4604399b3831cb5b5df8ef0537fefb1485df831bd036a6f09c97ba3a73fe6e668e83237f007989415c7a3c0f28d44a29b542608580be1502ea4fafe906a3fda68f3fe2923338aa6eb4fb59df4b23528013e96e5addecd9f22d3bca77f8e46ea7ef880aaf2a499bf8ee087a8ca6905fdc9b04144002f36fcd3359802be1ae0814b2db90e4855e75380233555348da7ecd995b230bd908f90b21f742fe12aee1b817bb84bf006766e04cc38124c816f0d246717fed7d38e32fdc172e7aff326162442e9cd96fcee05c7d4990b3503667f6fbd0b5d9ef5fcbf408cec137a13b0e04b2b543cefc8614e134e1f55296fede73ff9cb5439ece3977c19188b503c9225920788bf4029e2b24e685e07f5c212f2e82ef7185c06c1c2fa09a1be40cba806a7266b96c08236406a806468c1945d868d9d9747111ed784e69446261bdb84d88410c104ed8365e150e96701b1ce213152351f7eeb15175aebe2be1f4f2d4faa6afaea9da15cb63a467523d0abbddcaeb749622a7ce09e93449ce866f63360bbbd190818b6dddb57ac828ee63dc1fa367e2517a264eff07e9994c1946f2d8f14c269d8f956702e7ff6c7921c862c36f93b4e15b2ed9c2170b09997a0b09399b301bbab7f14222352f04456ab416e05b3ac8eef30e9d0df39778b7e491f34cdce3cff28e0d3f5f22392f04ef67b7e491f342f02d1ce4094726b2e306087fe27830c78653c786dfde3c62c31d1bbef5e14585968feb8424cf908543979dc11724395788ec8110622d3c104a0fd60223f4783cf73df0f3106223acc5e3f912ef033d95cc2f3d3a739fab8bb1602c180bc602756810514323c68c5cb9af2af755ae2a99e5a7bc3dabf8f9eacaf2565171ab1795443a392b69a93cf053fda764a5fa4cf13fa0f7783e3257daf39fcfc7236d72f555a5b314ee453ba21dd14ef41be904ecee7e63a4e2530f63791445d1a75e4551ff1e367a588b0d5e3dea6124ea987297622c180bc6329a6c2083965db21b0d226e9ebb7b15637c7c453ba21d15155854c22fd2c1252dd5a5a8a874bf2a59c1f8e24a4ef12bcaf354a5a9afde13aae1fbfe15ed8876443b37404c7fd7df4daeb9d6dabbf60e1b612bed1dd6a23987adb4b85a3152bc0d5f121df2ac3a856eaa33953d5944f2548a0123868b21760ca1631f60371a43c0dc39958ca4942a2a4425914e490b55d9a29248a764654e9f958ce6cf9fae4a39cdff7466affd6ced7dcfb596d2d45a9d559d0237d52219bfd942c26c5a329a3e4b46b564f44235efd46d2cf5f3ab2b54533dfdacb310fd11121d52b80dcea8761b8afe08dcb2fe9d9e5a5d2b7c4a1dbe3bd18e6847b40373df5482215eecd06e3484280981b307b01b0d21668480d908d88d46103adb560f23b9fceef417dfc3481423bdd7a426e1018ee4eb9042f7fc0952121eb2d42974cbcf52a853c75830169fa3297ca6129812aa66c7b77ec4f61cdf212f7c39fcd455bdbddc4ffc1e97ffc7057f84be75fbacb536e53d3951d3fcf7229d69a99f1f1a3c3a9b94e7df343d1ae5fd7df953eaa9a262c596a2924847be2b69d919fe94e7f9155b3ed1e44a567686a7f5bcc3564a9df2f624610a944fa34cef79f9590ab7c94a461b876ab6d4d823b1e79d9c94ba2e85b6eebbc754be7c5169be48c7c1207f968ca49459cacb4a46db7dcdf8e4e3f9ea43a97c9c02b3500dec20f91ffc143e991ee5f3789af4ab39c9ff38986ddfd5a67da7494e2fa7ebc12fd2712ec89ff0357d099fa2d20bc97f39fe4c81d974f3e29f5467a21d0783cc59672910a6681db04699ec4b6975e664a8c6760f0576ef3616fdea65265f769c2f53e0767f3f0bd5d895761bf9f63f2e8fabd2573afeaceaecf8d495c26d443b0e86fbf645a5099fb025a35de3344d139d5ab4e35c9093aaf1d8c13612d6877d77f531476c05ec462388183b8815981c3b8816db6e8791b6ad178e565ae443675b7e3a62f19d9c7392f24d27ede443f750528d02310dd9632ccf3d8d029f9214a5b2b52a2a5640fad80ac55a6c940aef63236cc5c100ff612df46a94f715637130503fbd171f46da93fd0ca650ea7d7d32d4495bf561236c052361248ce4aa8f1ac55601f9c280db9e7f18c593c17dfdaac2657ffea32f4c79ec7baefcd485ff6d7c65959635a3de5afbf0ca54b85833c83006eaf1977078d55f61cd205b9dadd8f5db67291c67df4fa9b19b066054b83c1111bdc271465604e6c7af41fe34a3d4d38d836f7a7ef7991bb11b7ceeef4fa0761bb7b14eda7eda728ff25ef40861bc628c719aa6294a29a59c3264c89021235a32a80c2a83caa032a80c2a83caa0f16d7df1bde76e494490df9fe013ef84fb0908e18918633c314dd3349db0624e5831373739393131564cb6139f786858dcc7d77d4ab1862a46db7586bfd2eb8ebfd114daa08c95edef89d9e1fec6e8d8f73f6270c414b1fd3dd3e39be75dcf0fd0e7dbbc8fff7ef58b83abd4bfdeafae8c7e7b900b72ebc37b51948a51a58fad4a5b44e47b3f3fbd3215253c5e104a93f0902fc85f8d02f29546f9f84bf74da11b44c38ffbe1e179fc17f4f1d84b6ffd4befd7dbe6b49490fde18c111323e74a672a14fe129ee5d1a61e5ff92bea844544c63a4ba1293485c6f870f36894558c6ead5746e914ea57a662641131aa29b45a44e4149a32d2c048c568b76f3385be0dfee1282b5842583ba8019f4916aab1b314b853c01931d8888825d098c10b0d2066b0156cb404f7662bf724f0dc1d4208638c314ed3344d933401df56d610d3b535c43401dfd2b6dd0ff05928defb9f3c7fafb2df9b3cb4177a14bbcfe0c83ecb3e4afd39bfcef71cf86472fe0fe613e8714ef8c4f7841bd0767523e4e5f9fc39544fbdc456043c9fbf861a2aed372ef29f6fa9fdcb4271dffe89d56ed35a701b2c1879ea4cfe8b6d4bbaa3c68cd8fe2ba04a7d5086ac711c071dca92d134c109c2f8f4aa89fa4525914e11fbd5b824bd248cbbe825bff71c7e236be28b35d0c107b5c448729a9c76d63e6c6572ff3016e7c25b21ed391a593fc091f5438671b28825b07e04f5eec6854541ce3c47da481bcf91369e630269236d640e7923753c93491e21739e892d9574443aa2926847549236640d59236b481bb2e699c87734ca1acb058d54d314784e8d9511c904d9ed1cdfe125d7591991443b252bd27324ce33c9a4e78ca48d6772c91c9e236d443b229d292ae58876a6ce5c73aaa7ce70c89cf31cd1cee8f6601b0938724e24e71eecb45e647f7f7971992f2ed609320a7d992fcfa4ce19e3994c73c633997926b6460d1b135bc146188b9e2e5ec81fbe707926f05f3c13f9aec6f9c2eac17d8db55a2a80d33a41762ee00be82fdb615a360d18973d5d66cc33693460584020ae67d268c460c7f69f30a0cb7cc158aac6569c0b93c6462e2ec34165ba1f7152cfcfa08bb641786bf59051e4c73d498db13c93d718e97a44384d964b9e5a6b61e5e137f8cd8624870c515ade394863748e8da4f4a8121f1bc918e5c7489d94d24df81163c148f27293c5869383113e842c2c1fe4e9f5545dd8669b754eca7855a48c719a7416a50d8557dc353937e1eb5ee99c8b252327a5cf6cb75c6494f91145dcf35d672aef269239b56cbe3d5b0b2e2439e498c2712ce0387bd228d17544335f16c645fed5651d9636f75a3672c3560f321cc9a0f3c9e6994c121df2cb1c674fd7f1f9befda78db9016edd64bceccc0de2234b462090a824d21195443b25a3cf475412ede429bfa824dac9a29268a7f90b210ec4e92c05d6af6ee21095ac172e4035a21dd00dc80684533202e100e500e900d588765c9290849c4d92e772384035950e0e4fc88bbff0f1b0de17504dc865b170117c10fc59a5b3e1073838efb9532782a54354b27890b3146e1383929197ac83d7f4efc1375dd8c8dd79909fb66080911c6c816d0bc8d04af9131bad505febd52ff189842c5ec85ddac7f73de11337c62956f9e389558e3146fbb93cd5e7ea3d5567a38f8d5cadae5278848c9120c6e2eac74a83dd35d66bdabee399541eeefb11cfe47ec5276e556f8d6dc2dda6236cf7d2b733a15e6f3b13dcf61c7fc1712c2364f75986efe935e5e546602c313bfb02039c975d80dd68c0a054831cb72eb35f4dd3cc574a3cb10c754bf9f5adc427dc8e17f2f752fb38b53dc12b2bb9f6ca2fe43e453b25a37a4da7ef4d2e19bd908a6867ea6c9a1f1aac65842cdf4327da79130e2ccbb22ccbb22ccbb22ccbb22ccbb22ccbb22ccbb2ac6a655a45c8094218a14387eed0e183eed00b0061c8f59423a8fcddeadc912dbd7826ee458b1a23a1a0b5f0fee77ce1829c4114a0a031a06d480222bbf6a2e0b8faf6d699b086902bcac66cafd5da28489b17e4cca3b0fd6d64f4283c67c2d6e744b0113bfcf7d47c7c5943c82646483c90e1bb8491339e89933164cc8e7f77b4f55e168c6c3f731b152ffbcd377dbd54f6bb528876423136e2e3cb6dae2867bc07b6fd08c907f268b63c93f62bb0a5c5cc268b0d47a32773489bd6c210f2640144cee0e841e87ebe70427bd77c986dbe926d24dc9d75051986dc644ddf260f27ffc96f3bfe73ced1cb417dd3017be33a1c6708f9664affb98dfc13f9d33f9396b98eddda0c72606cec6b371a302f5b974cd60b64b41eedfdab61e4fb36bbd68ff455769510ca9c37856a93b8485ee8592cc819096f814342e49d88f0ba32c859c8ba42ce42a13973161109853674be834fd771d66c58037a0c44a592119ca143c6e65930f078c57f2630fa0823c115db9e1dc9e107eee57821bf79a1676323bfb78e73f01b8b4f5a0bc1778b25e036bf7dcf91e385b45b6bf5c09b8624fb3542126c71b7f49d862d1a925ec8b91137408750786fdf8d1b379ec7c440086fc418e3cd8d75e3c68d1b376e5837ac1b376edcb871a379737f93084674e480446b6d45fa5c7926e0a8befc1ca81581faf26ba8191cd54033f8dc83cfa73bcc133e81306670e4469cc43dbd8d175e270d981e253efce9fd9cde5218ff647a505b33b9c483a39117849c41185610b2942e822af1c91cd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0bc36e733b16c90dd99d0b16fc8b19f8947cde4cc733ce7859e25840ca7e7e4b8085b6cf7961072e6393f4c3f8167627a676770b0b0e386939393e71cb6a6e21c056840037f5b59333cdc9cefde93c9443cf198261224a288489480cc7982f0e4edd0c9893b796fa9a4d3eb818c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c8c0c0948bdb5301bc954b86ca8b3fa387fbd2c956bd52a9b7a98a5701c8ac207c1bfb57e08fc0b1f043f3bf594ce40400f1f7e3cd499c7473cc3ad4f7d7dec79a8b314d4d793fad86a88ebb77740f5f94bbc07548d3fc2afd7e7f3d47b3cdaca0fbf5af9ed53efb9acac63a86fdf7e7dcfdb6a7faad47f34090f99d234545f354af559a38450d5631df2eda16314211a44a7f8063df555674dc3fbd47d08ba0f2fb46f2bac19e2b75f2f7ccae2ac330a56ca615642869e5fc8eb53fa948fe0773886d75916a9d99fcff75b89f7c93963ab51e857aa5b8967e1370c6b7d4851d4e5389baa7efa96bca8640e5576b5653533010005d315002030140e878342612049f23c8d761f14800f848c4a68481c49435a10a5280621490831001002646000606430da1000d17001ed439d17837db30ee2819583fe07cb7f626f1f207e866b2bb8ae9dfa2dd8fc7f4f9996ef0e27fa0899af6cf7fdf29d23f62a2d4e13860068982ceb5df90f5c9005be805ac2950dd61a5bcff50707bdee3e1867d49c010ef3192d230e758bae3f7a17c1e86fd0ebc70fe4ba82667ebfd5423303e846934fbffd28082e21321ee607dd3e0e4a97cd63c400cbd2cf6a4c703b747fbf2b1f7be00ad7df9cefef079e690e38ad1ecf5d58e2d785856e0f49424cd2d35fe81944c9910d506d4c004c102ba1593001f3e3b88ec1167ba555ec56011c7afd4c280118983b29f1687cccde69f6dcb3316e3c3b11b0de6fbc191b036880f9b45a9f38355e28217013f2b351bd9dbac0e006b7bf62046593a27aa42512ed78b7e011145b3cf2631f1d9b58758ba7adce4f9786259c751efc451505af31688ce1112226b446870e1e2976b7ffd8a5429cb308ea7f56c623ca7e49f205a6ab63f1a03c4109db3bf8a29d7fec5c3fa439823963fa69cf0f4aa79e12bf7d97b7d04a374058862f1dca243f13fdcf81709486afae3f7c2408849e075c7eea0c844ca36e73dbf3958394c722016acb25b4bc61724eea790abaf8322116ca62fdb243b68954108a70c8e1d0609e8e80c929f335898811d1b6a72e3c48fac28753de9a4997011f6b18c36d5cea65c6dfd70ac3ed901e3dc14c7cde036d0c95d22f1aed86d38a56a7e91ec8455f961c8bfaa3e040ef328ee991e8e5a023c1f8bf69d47acb4ea5249722839bec61b0e18c227a09ed5393ee63cef5345a0d7515bb0220f82c36fdb0f6a02b1e516d08ff57965efcf34fd6f50b74c7ed1242bce9418956626e68fd288d62ead94f0b663152916ac1200f3da466e65969a63847e019534be8c22d1c17b0575127b8a9fa06b7a7d4239d1f80210a20e4fa03826d7c7ab319c1ff225856c087d9e91ca3478fa10f8e29448089c62d7a55fbd63fc9712d4e7e6ff86acff03a1850ba6b776746fe0c8511836478d60e0dc00c9c6321c090fd96adbce8cd90c8290df048aa717a933274310e1bb0f98ccd8aac29e0d121c13ac738acd61016d91e06605a0afbc67220382c06e3fd332dfcbde40d6655ddc3e2f806a74931f190053613053dc280f369964f021ee6ea827c27ae22269be7ed7f734f6d18502380a8ebf77cc2b339916a07b1d9fe2b26ddb3a4fe241a96aeb2a07f17f556f732287ed584c5f2f86ee92adb2cbace27d6a0febbc201066b35ed25e273b090d81ef46d3cb40beb5b17580962cc43335677077e3527a889fd57f89795127c8513a82c3878a6d618d655a5d491e217101b031b89b268f08c024f8d82a2e778a6dedb4242aee934ea78dff485fb0d11467c2cb03cb2c99028b09a9ac9b4657eeb49c3b8e40d313a9b7404f7246c097b2f7407331ae52a28a7d4eed9f6f858359e66fdd34d4338ed8560f91200c762a7cc9b2e83f6d364ed9f71550fa21b26a3a65267a60fb106e5cb66f01c370c541c9ee3db481982aae2a5685812d9bdbd18cc61fd5fef42aaaf081bc48a2de57b683f9c5bceb583be9d7f64abb673ae4cbce05d396b2b95e4b82b61b12d388fda937f49cae89017b2c405ddeaed1efba2617ae846eb926a4bb1474de6780407dfae4edb82da3539dc98a11c4abe5842c4422dfe4d9a18b1af7ffe48c0fdd53ff51ede1cab83e02f3afcd9a9eafd46871d1c68a97f6981de2f9897124766d07ebd3032aea83e3551b99aac86c86914b298624f1e985b56cbb010d3e184140fb1b880f2c2f24db61bc6103eb9829f443993430e996c0d6b8f3b08b79ac2c8ca913ac866e808b23abf0c01e8c01faa30a00c4d268dfbe8a8636ff4818dab99a0a9e85ab5b79a302d6f91a471dc17835c8273ae255433a857305dbfa5e1b2eb19a0b6a7f26dc854a49fa9f2310721d1eedf7d7db811f0ec85bcc3c54812a843df7cde87955c56bb2bc3e604667048871073d96f3300fb15870274f7dfd4383df7ca210fecec0729539811ec2ce1968cca89a1610c3f2ca18f8e3de648bde98bac2ff64814d41477f3f2ba79ff404fed6ac55cd06491e8e73c996a7fe1faf116dbc268296ee0e46b1324127c3e8573863e41fc9a055bb69e8f44fc54a7e783da432be880cbbfc3baa2eee9a2155e76df8c2282e1fba8a8d1310241aa4b656798079b48154db765aba2e4b05a1aef3cd742375f32b03ac09f2e206363245184e23c9bfbc42818158ec91b42bb2fa2d6a7475df4ce1f37269cd3ad102183db802f587db1ad043293188727e2ee53073ef1ccc9ca585d071289bc01996f8e8f5f191a4bf7220105ade26ae85c0c1942bc4b7eff793dcea8c47c39bfc2967c49bdf956278352f433cefd620b40525f9e3d2c6c04f53489a01714045f33b6cbc6e8214e5dce58023f6e835c41c3148c3ba232907d0687f5120df0f401eff790585fcf99baa22b95c9d84d1eafcb7a07ad02fee61c08cc3adac08059c7ce70ea224810f1319a8a366799aee756bed6856ea6270cb228e31cd2e64fcc10e610a22dc51b10e91888fea8a73c6956eed28640404b4d0462028d83e7b574158c7e39268e30433f6fd7024c7ff81efa0967246eada81706c200a632487f9c29c2d6543e45c093134587cf8093b1dcd7329b7a7940d02079881f5447284654234981c3af7752075b7ed590a854ac6041ba986bf3ae8c4e46f95b705317b51b57d0a273eea013c590b910784426c67e6e7bc693858d2326ae242bcf0991930a0ab5f35519ba2660b5c067e192dd398bf2e1a1f4b92e12c87260a132f10307e884118547167e28b008ae2a62497097b0b5499bf34d2adc7081655179a12c6a75af8ee7aa150e4f067c0a9080babadbb404438229347176b7e22d5b25af63cf472e079373b3ce0a78cc82b8ef7003c660d372fd9b3e210b53e638c3fcfda62dc2541796636e761df1b9359936c28b9b526009e64c4a28e8a483587b92feb5fd870588e3d8cd38006075ff98941635087926a65a30ebcf85039140c33bf98ef7c32c186fb066acc3bbf26f9831e5d6de3f7f590ea0c1e81bbe40ae5cba5dd8015daa1a1df88b8c1d22523df5e30a724289ed37db5fe56f1c8acf711ddd3dd4cfe6dd34b7c9afdad7b3ff7a493afa6d3ce65d1dee1898890450a9ef6c2fb32a3c148cca53bee7647283c030940e7e0d1240897a764ba8c4cb04d6d29681e8612654c8bd2940e83722668235940bd667041a2a6c0218305ff2a9f07d20371555ef26a97b8266974b32c9324b53ecc8d9496d2488aa831592850d8e64362b2eed2a83ca0a38599d89222459135580e839280bf06faba35db075364564e046efe2a11405b8554b92899cef641e7f15c836b98ee81076e36499e3204907759c0105a96cbcff7f64ede15ae8eb137d2f5a890cf9bfe4b5d8ffc2a2e76ca7a68ca5b60ee8c5031114c075e518712ce678f6317589664cca96b7761752ab8344378f2a8981167420db65578dce7d6900fa2138cd613851dbc2970cce1d8743276a0f243940cabe7781e69086efbdd212d562d8104251fb340269567f0ad8abcc8bda406edc20b7024a728321f15b8e109d99df800ec1ba684ce2e025371969893dda939e3d155cd89c10081d0a818ab544e9cf63080f520a9b6d6134e76122402d46aa59a3917f4cdb14f4cf60f16ceacd86822c4ec4c1d9fcdccd0610ce066db421c5a6738982001a4aa6f2d0febe6f48cbba1f403180e8e7dc5419fd4416c0b1a3517b0d5e5cec08029d813cd97114e10960e07d6fbcea2fcab239830c80f1d7ebd39e1c1958b9dc40eed0521d7216585a87a38c6a163068af6abcce179e181c6387fd0161a0f1e1fb4f11938fe3b2a0814a169700b2c41cbb086b2d3cb99b3ef230112d28d5d6f098aa18ae513dbbe98a862215cd450caf4103854306e85e23ff078130b2f7c4493523a979dd9ec55a523b27f2d52027addc5548701da91fed2afda4cbab1b88fa1076f800146a5e036bb61ab488dd2894fbaad3f45fd9b9a33166df7518286a6a11242186e4d90534bb015ce8452ffa5985308053d4e6e665c7b6b79384d93c157c07b6a5f722658514b3bce8ed3d28b3b2cdf2b2376fdfbd0b257bd62cd96271e1db1b2f5f5f7f2735366c59b0c0ca32589b22cf7ac42a0b310e6e09644b33f65a4024a88525bd425b15e60644fe0be9f8b48f9a8d21bc57b1df93bc4e2ce58b45b1a780f3cd2ee92310afb3233aab260a824faa54f5577d66f70fac21141a05d283a2815e7dda946e3ffece5e2f98267d391ee2b64a3bbb783e5ebe8b4be8459ba43d20d7afe7d8f36eb542229f4539147e8a079301e2b2bde8d9f29c5763849207161dc54a93fd701f41e85cae4968e7779d83de2b18f0b135cb2d12466caa331cbac755de49c23a9d45c28cd190bdfcfa18ef4383f4b69f48b8fde052387e88da684abf9653db3b803545e0fd064bb20e754228e06c5a4910c3e83e143c1b719149a383aba45a3395de9facb6c4252d94305e8806b1ac58a58de7f5de8dda3d8082936a4b8dd56b9d1cc6cc3df71064f77651d4d6ea609cebf97c9248856c6c3f4c2ef30c2b03c0a50998fd54964176861d66bc3756dcf162d4374ca298307b71f7f513ff008cbb54a8a550838270a537a8518f23f04d6d25a9a5d77eb1a41ce74bcbcb2f48975017155d9458b9f4f27d54b2b1c0fae2fbefafbd83221b16ac59b27cfdddbb57dfde783f35dbec2cb160c9c2599f728f3b7790abe02b58e1b1d485970ac3e7e2f10bf262795711249bfbcbab17295096e3495c04e6711980f380afe1358e53b45cca192db861d171d2cbebc1547f60f5760fde015c3e6c5b56a9e178be043edc836944482fd78391197905010619a0878a0e0bbd5b0e8d8add01dde87d2c7ac88abea474097025414adf8c2c17a1b3d994bf662a279acc4a86deff8869f7213831ddeaa5ae0af641ac7165722e2a84b8d3838128b8b9cd4fc60fc0ce3416e8f7b7103520e20ca64a87bc0a22da60c2efcf8e0b833c93d6f05d2f5df5085effde29814c045a7bdffa95397823e86e397e7a80ff5d2c7758c1be1d98b37b30865ac5df5eb18ae79154f2e78803bcecc1108056f62ed872708c5d6d03d4b6f61e4ce576d4a6bbbcd44da25046fd88fa81f9c51cf2b2213972d2572c4b0321b66793dc030e582bb7d5f6603cb7c4fac6df4ca84d78279970d2f235ff6b35a80f00558b103d18eb1d95ee128755fd5f6bafa295514e558cd2bd2e46f077532e8c86fd37b8083d18f163e8f55da6691ab64526a567f41e0ce443a61c57098b417f0fc69f79c9bc8a2fa0d0b81802f477b0e483e9de70f3f94fe7489e7a7178e10f214f6c633538cf2688415b4ee2f967844aecf1a24acfdb1fa731b600073bdf349af57ee9a6b34579ed98ae74e9d976964c2ab4f8ffc162e6d9f6e44c1d42ad29689a39b84f229c80ac1cc6d20dc74d7e07655f800f15ef6a36622e871bc4ab61845c4b57250b26bb22c16b309d3d1839fe81e79b4de3154e238b19724d09ae91da83997c98e4baed36e80434b74e5636e9ed6ae91cd9667241a639780faffaa2b9e261e850b62478787fde31d31edf44d9020a8b665ef444b5a399109ce8dbf062ba3b78c4cc7b8c992edd1ebb85394455881204f89de1bbf743d17d7e608ab66a8d5cc1bc618a72a06e1a3e0ee1b1b768b3fc778868d2a55ecf371d255845344f11f1b096e46228eb229af8562a0993c9fd128f9a88e6ad413c527460670dfc315f4434512e6a8f54983ae9eedad75944d328d984391b36ecb225fb59279a8f25a2d9c7f8523c61472b0eb567d18f917fa3424b2590c6ec0a7d41eca1596c18a28dadd0c6d9d3bd739c1bcba26d5469d67f96094161529299dee8cf2a5860059494be39b889d5d26223c3da3e6c6ee7d9128094c858a5bc491f99544d722b530a31d49c58ec8a0783c63200c24bdcaa048f53fb8c284c33de1ab745d934da98ae3e579baa8972dfdc19696fcdf643e630d811847117df1ec63d69d1a05b86161e57ac68746326671b7d9042b60121fd3c07c7ce0a69882f8cacfce2d03edc44316e5553b437f2e0eb6875420c6bf3ccc334ab88616bd33b11e4844cb8d8a9db8043d23e1aa2179c87bf4e80089e7c49ad547847988e47242ebe22bf7b23e0aec2474b2614033b85c078637dbc18ff7623555c9e7af0f6595b12f14a3bd5434b1d7c78492af04dbcc589b312a6a7009ca99a58eb83fff4c8f6a03fa9280aa33acc518712d91e76c3ff85257670382f47c7641e0e031d4523eadb43d0297338b365e6fc1e9cfe8b9a0429f08170db3f9513b0406027040d80e43c7d68cb4183a92c935a7e612efb56842a5c048ab3850f806596cdeaf709dbca7ffa51f9c8141f94ac5ca98a082c3e586afc6ecd07f25e823af247e2e559fb1bb935501fce086517b1b74f22b90f8557f761ddbc2180138539182dd2c4a8f70187c5560f3ccf8e519cf704ef43d5291753733030c40fc7b76bb6f4c350a07e489ea66a3c1a8fd279c040fcc1dc83fc6176b00f66ff50f4944bc2111c82ff006f4c9a3780feca47ff503371d15b37f7dc50e89ad691d2746a85132b2204ff375e87df87c6f67a7f466554ecdc83f2a1b42110422acc73596c45a31633188e0bb092fff0d1d9e45ec54c89c8a2934e852ad0d221154fe8d4a60cb0a099025ef40dfae95d0fff0ccd3eb728f5561cab0a5b69b59c98fbf946a537403ea6188f5ae1bf5dd4f935a3e29fd86c9af5aea32edaccfa95b2f2574d621b5521b140abac0452779cf7a23053399e197e43affe7248c969817bbdc156eee78ffe5f371968789a17a43ef56c6274da6221486e4df694bba58e67efe6d9d4fdebeee5a89f9d59afe91f6a5d71cc7774efea24f987c648c8b897ef2fbfd5f4fb2bf288d8826d9e146d09e6403ab606c0e88749a5a8fdfda2b663979682264d91667aaf5f4dba15c4b4faebae806c0953846c195cd0d37ea0c9188ab22a6400a46081a97f3def38bab5e31570993c0d1d298a1f4373bab2bb23545a2f3f7359009693a3169e6f4c7c1277b7e4e7ce987bc636712d23fe61acc81044512661902a518914c277545f416d6895795334ce7650ce836cfd7da3ad5650a56426f9a957c07b3d43eeb4d28198719d64a017e0a272216f11d5410fc04584bd7f8aa1417017da667a7b37cc9fda0f8e17087db6a5a8cc18a1180ff5118a0f52a556684108bff0b8514f72c420cfc2d0c0e2e3eacaaf0cf775c846e75f2f2d70de41af5580ffb498b146e72467e071bce394b4898a560b946e6b7b0bbf622a0d320d8946b7365c6af2af5920a974ad989994372afb7895aaccab5f5157d4384a4add2c281b7b0741e92ca9b059e06a7decd418189c0a55f191355751107b97511a983134d1561331a980df2091e866b0e3526c42e4759a9e2c6092d62a4a06372eb85950064540c723882acbaff025f3557b623f0eab55d4732c8f36eccb64e516f47c1f391dd0607e266abcb8ebc2e8c6d35229fd61526bb884b8d0d31a1ff89db89c5c37d287b4122ef4c7e5fa46bd1a91b01e928e9edc4e189b0ad5d02a8872519274b420795b21164588289897cad63f5a53ef6b6426109edf7ff436dbfa550dec4b5012519dc8e05d228075692a3c6a8f4e2230be05ce693192349b9fbac24c22f467ee45e127649f78d77aa91f78250e68c825f8383c7a3ea421f83bbb78a0dfb9f5e34af4eaa96c3ddbedf5fca9646c178dc9f7edd1514a7b38a7d53dd72d9d82c1c720f80411b35f1cc64ee1191a1be7123106acd3b76b749151c90b8f5ffe6f8e8ae226d3a54d12446514b819b569f09584aa343dc8ab6d0d6ecbbdd51a94e1c952a9b9384ca0368b798303ae472c89aa0fc00bd94c342404090ccfd3cee9e6f4d0986a0d7250e557fe75cfdbc95d7f18295a3f55bde50c1a9adcf32848124c6eb941f1bf650cec0f2afdc49c3528257e33d3e76c339081440ec2d820450e0d9f514a98b288eee868a001ee0913aaeaf6b2066956820cede8999db6febcb07dde34583f2fb979477b2517988b87540b8adf0777f41df1cf56d43012439b930878264f1044cd494c615ad8639eec866313eaf6b56bb3cd7991674e1f06d340ddd2c1ebc18124f9d1f23d6b060731aa7e70f393fbe2a82a8df0bf8f661b6d411e3250d1012bc568298bcdc267b7f7b853896307cc2383ae68634788ae7d34e80e2a887b264e059ad9a0cdb68b36db9acb5936eb0c818d3528a9aa9208650165a06ab3c40a408a3806e9a3994a3a15c01e7db405d8c3a14d2cb36136bab054efb655d12f9dc287b797be7561ee0a555d945d10779364cfb9a80894b8b50bda60cebe9a8d6247baf904b07a924351458a33882131259fdfe7c79b9b4766dd2f0692ff3efcf67899def358de641b7118d67a34db3fb3bc714c30f85bdcb7527182914d571cade2ac35fb111866034bbc142ed29acdf66bead100e5ed09d4a37dae810fddb3a2f14357d01daff1268fce740c177e60a62a952c473fa2b0a4f0b64f1294b50ad62638679dc7b3b827a1d69e1279195118123c0c587f95e7d8979d7d23f0475006bf913587e89549f0550f631859b5bc7feca270b69278aca929f492d10efb32c7b945d646dc88b32f9ce90954e385007bff6bc369e1538a87f95841972a8ad6b6b42d1069140c276e07948b81b0b8834becb3cb722fd93a72c54be43fdcffd45248d0892c1597e06129010703ff6128a81c238506aa3beb2f1ca92d91bc879a03216a4135d18f755d536aed7f64a36542aa4c034d2fc0a9412dfa9b028fd247e3f0da04edb97cf62e2147334d093040f25756c3cde0c769d2149bcd8c60158120f303e9db4389775d9cb3ecfb40d52ec41108058fd2067c4f1610934360ea26d6aee843de7b6b3ec787dcd34a21183ec5dfe46a5ec9f9b24d6e5bedb21e7a1a4dc795432ad93609d22fd6a6021130a1eae3615ad09da63920d8dfa20c826907ca4cd9fa6a0d752a1e1db3fd187d19e0d99192c24db00866b9a5f6da7d89fbbc3eeebfc1a5e1b3339bbeecdf828c8b17e13abc685364ede5f76de5cf406b78e455ba22ec2423c4cbba0e880b9ac91718e17ecf19183d290e1abb33277bdc4ee953a5751ead280f42099d1a7b46e601b1bb2974f49a0b05e4f647d72383bcba5c6653d861623639ae131a6ae75399232c760399c90a9ca22a1dd7319b46fe1595996747626e48fb9ce633f553112f29007b88b564143f7f540dcd963aeeea4a213f8fa74b46553e04fbe8c601820ea98009a61c1502c28a7225bc18b071fd3723e88249256204817b84e7b75761b060ba8ac45e38fd129672e0e73f106b273641e2523636ada0ee725058f0b19db893a47180c30a62ccb00c1b4fe6682b14094a87ffa5bce7a0955050e88aa363d53b0f254e546065af5515c1e6f8e5c8135da5cb725a2fedba0df61b7da2086a2bc819a0e0cde4dfa872a51121132e8b52e361adf4968abc0bc2dfd84540b98c2b2b19122511b0f8b83f4dda2a3176645ff812202e447b44d315ac15010241edd55ede554853044d3db68cbb2d2cd5156764a6fad41478765dbe784d2f60326f5ecdf5cb4cfa4ad0f30bcc637496da8b617d654169a20b5fb5bbcc921f2ee9fe6161f1e5a9f0898f267a0476b3cc03d8a4e29b269921d42408140a17a63e381633d052c620b08424dddde49b833c6e0037510425cbc89ff8c56f70268626983123a88104539231f56d90ccc8aa1c47784c8cd2a88861d36336db8b1750bab339a40df101cd3333885f8103c2d9afe4750563641a2ebfcc412200504667ff3fd1322dcc47e65622285ac2dafdc7a8f8364336dfb2f6fb4f430bcbd24f9948c9ec60947127f630002a0493457c282b42731a6451f82fbbfe92ea8c5072fbfef2ec31545d26721054ee112e70a34c7a78305479441c00f88bc0160a33536cbe7e7608af4559108910aad8c345cd31cf6c4f3f112d29f6beb89229c0a76647173e18aab27be17bf3bb68e4bd5665f64e6341f16646f2d068ab339a860a09e7a57a5d81113d5915234ede0c16b2775305bce43aaf623f59baa842416e0e9ffc4a4ee00159b05999b0ce907b04527948e209e13df2f0a0d461a2fd500ec66ae29021550131b1f67753d91d9ad5876a355ece8b9e50ad4e66d82a0fdd71ed162a507b45631feda1eea1431f24fbc7f46ebd7ef479451557497e49ccc0fb9655b3d1442fea797a21a2c51c7e010b0fca1af992d59c7b6234590d51c8171804785d9afef5c6adcd6323cb24b9a6180ef656b8057129a0ca79b061011793b10df542b58ad5b70f77b7d331d6e2f5374479f066d7c6269b9dfea2bc17f26fdcf163a467af7f8cf8243f562e0c5dcddfd837e549b511e22e215db76c803e3bfe6d8092b7a9ac2651f8d8132d864709868410864fb8927acceb556e367537328ce2c1ad28204fb9fa3eefc7d218f3094ba153f5963e442d9c3c02fad6d7d7ef254ca7f703378a9cea68cb3ef72a04da9c79210fa652be64e325db389aa4ad6847bb11cfca22182f9ab08053b8369419f3ad372221c9bed2a61386d15d5016a5e6450c7debed992660a178012dc35b83fc861937bd7ef7c5df94fe0ca4711bf9b3ecbf5dd774edbb4e349926ab1736d5c3922d154d17e71cfe90a4215fb92a1988e3dad0ae4d2ede2061d09657d34b6e585acd673db59afb1901c6146a12dc18612d5e3951740b8e7c916d35b1cbac46bc7d8dbcefc0fbe48a86747c2aa6a139a70137445ae0dbcb96a0e91807e6d408dc50b0a66c270b836668b6184ee2517452f611111fafa219b51f3f45b3caefff2ce3ca4ef315a7e805ef6d0e8a8b116d44ee63417889f72e166687fafa85b9b4c7effc2fcca45696d2954cb9b8ffc0c3d80fd542c4c47fd7cedbe981f9d436c587cb2bf55b6c1766514549413690def1467b62f3c2c9836b31d18579d022582bd9f9dffc913ee1cb84cd686603f0e88d1629f30f785b985f2185ae34537d17c7149a31ad7a7d19530b73f8569acb2558002a606591ed868c0a0fc644352928425f63b2c3573d38396d776e4a16f3378f73054f49c58f1d8c315304435ad369038a66c039908ea961966ff0e0c4c90b70a83753287f96929ae5a5f432c229fac70790c3713884bffa2548237d406454035b81cf444dc7d0b106105511c7783dffb0618477767e03cb9c580503b640129b35ccc0fca34af96665e47a86dec2d8f789649ab1edadda8377a00a8ae57968970756a10633cd448b7b8540d13ec0523e24ce31d36ceb1aa8421020123e701977f0fe44fbcaf07fa3f4e6adcb091881bf57a7a4445b1a8c5c00d1878d2447601c8cb1bed696397c9e2d7114a0e648b46632a0aa12895a206ce033493a48c64c4c601b950a5278d16ce6190642a481af4232f8fa1019b32f5be50d3143048037ad52f35fe497ddbfe780284b1c232a1b2750d9d21833b8a297c12c4ae3e126d1785d625346f238f9f1d64ff25f598c31272a4c2ea13f2df110f72379be4d69665e6113f866ed65c793618ddd4d125750447ce3193873bcf10055bff783fb402e46c172bf325cf869c1dff935f1b26919f3e0181f7bc08cfec395c63c13676e6b486f39fb4c9291d3029d20090d0962363ce8ab11ab5cbb6133b3b71dc199b18a60df1da761b3e6e4652707ebc32b6defe9f0bd3a39ac5e550329b2b079fbb67a88409e9dd24d901b32b34eaee1cad6451f5d5fd5f7f97c6190d207a1cad3c2e665420c4696bdbe5a9a8d2d24f555b1bdeaa7d3abce0e05e9ce0a51f9b34f1025a37e8e90c96830a9e872fc5c6c75232ec77f25d77fb59010953d8328bd2f184f3346c819b04fa709dd772c2fe40113f89241b5b2e2f2a823a02297edc2aa435368c4ea2a2ee3abc25517ef2af3a43a7b565b4e17dc24c458ad92ad68da5c3571995638d4cdbd0915c79929b3dee7b70bac1d6998324fe9fc363e925411328cb1fd08444aeba70aaca2fc6a5ccacc8503a42bc32206a4737e4a02ec64b52972c11e897308da3bdba13dee2104a7aa6c8afd6feda3aa4999c15e2833d13a479ae23aeeadaf0a75812d1aa9958d266cdd9e3560a1088aad15927610ad70cb0a7b000433a1073f07437531b0c5d9bbb7e8f2d287e51518fb2adc61a25f564c13547c5b6feaefbd8e659fdd90a7455c6644eb2c0fe0b8d205f000208798921d4c183a4c86a55b3e850ae88bcd7f43741a2730b1d12bd72527ed1bdf777905c56d37a62ca1e941d113db051434f5348bda32ed228a23f2c1f40fad7892598f71a4f8e0a588952175748daf445347bdf1caba46b2eefd7669193c82cd2782a32741928536f38f495e7659a46f47a619492a2222efba2ec0506b6016db79f0561a98e16d93269e756624787c8dd3b420b1dbcfc8af0d6382b81646ff96b49cf258b35af08524ef39333feaccfdc5a1e327856c7a17d6a0aa4051cbcdd6d49e627555cb2e730df7a5721658090d05db4d334b20c7e1bfc4b7e8f0bd5122d472b689d90cabc34e12282c270308a99c348e185eb551a228c821cb802c921a368aed8c547733d06b9ef72d7facf7129526a023bbc0ee53288d2bcd29e032d4a6828299356a02aa9c15700d27925ec940e35886fcada250de709979f440e848c6e27707dd5b87b038c566556fe12c492d8ee1faf674faca6b91cceea4374613fa8bf78a17918a0584874031fb5a33888a8f6fe1b06fe4217cb4bf912ab37c0f9820013231baadd57d12dcc054a1b476f743261817c30b9c3161cf7c14db14e7dd1adf312614987ab95d6a8a03da2083905f0ed67e169c38c562f2b6b5c4e9b562e82b2957b62f3439aa0f3b45e522a33889b37e9ec07e52d9a3b5c081c5fd34bf28bff51d4881826676c931c6cfbb7c304d780ad422d599512c7f16cadfe67b08cc431fc503392ac26d30477fea26cd96b59b4354e4096356e81375be28a038d7f588277e99184162a0c1907a75b7f55eedb16c9b9c9542b38150614c9116185faa418d1552e5fae0a2806caa6546208c3394bbb53aa2cbeccc0c2218a3c838259f0effad7073fb0621b800964fbc430c39122cc4e6a776c6a47087d6e2bc533f25ad31d7ec5bf5a83480f01c756cb13e0b87c00233edd5ff971ed48e4d4b781343ab262fb063a382c4817a4a2fcb2258794c502209a4a73c644dcb6de9c32ffac251c3335a0cddd23cc5d892a6fff605450df2406c979e912a419da0c4adacec213d770f45e2c3722cc7b00cf7c789c00a313429786cf53ec6ac71ac90c6298c939a5c7e78285de319cb89183ad964df56ca6c16c59333674bb19ca616024b1d441ff72650525f41893e5dbc63c2bb14d510f3eac6e0bbfa4e83ef92e26fa7849b8ea883e8d8f87ee03a68e986f2ccc0413cfed4a4418ed689c139a5aee384becea33951abdf8a84b7e3802df978d0686d680ffdaf00ed162ae5b41003a258b8ef626347a78c44b12bae99bb4e93641caa98aa7251937f800fd289474f740d2417fc150fc2b1a68d5f8d4fed8bb152cd0ac62f81546409e59bbf8ffcd918127437a0be5e2f7bf5ebd3a2f79603ada0dacb89899fb3befd8835afa5afb0b2075ba3f0ba1824a17b10888f914e9fed8dcceb188640445664b1f290e9da56e2fe410206d802eacdabf176639c48662e59cc7178fbacbf3f16d20719771354b4953934619c478d1f67edeffba4d5673dd64f4eb554f5801e361663dff8d70292b95962325b23c24001a0bb8abffc6d18b21f977e1decd3b3f6337a1fc68c3055798a58338025c2240b4275c95e6a05174741e315c746c140375ee4b49ec2470474e5ce0d44751db34ed94a5c0743a260ac390a101a31e5eabf718982294b20a7f1e09b6810331100dd297f71ba168c200a662fa3759f1ee3be2826bfa609600d4b5e3cc9ff5557418b6ff3db8b6252ef1e4b98ce66517b21c887a3df189431e4b980e3e5dc453a70fdac60a05976d6ccebd48304a0d0a082eb22f73aeadb233caf60e45ade70ed0aa69b6813c2f807b99e09c1884a3bece796c1d4eefe21775ff4b2c6fa9e93d2b99a2b07319f6676ffa18f0271ca24cae2d93332583c0807ba4745148cc4ae757b7205e36870ccb1b84756b3e003c70732c20af611de500d677fe049f42b98d4dd28229b941287b80014368754acb9b5c64daea02254206f86fd2167cab72ba487caf8e29d98933e037aa6bdc41d635aa7837ee1b1baf372434dc88c1e75864df51404922d852b825280fedf9db09215d1dbb5350d605251d2266e2cef53753c985ab6842ef064775d4cbfca60b46c59bf749e5d8606d7abf264a40ac4e86fa74e184c895694fb470883c1d5dcefcea60818e6d55730c29a991b6ae12f0dd718c4840a19254032a2a269b5d523970f733bb384ee474b066947cde960dc2aa4aed9ff6c226d04609c8ebe81ed821201c1d88a46526842580ae5b6c5768d016516e2d5566d7ad62a52d6fce76c127622830340b14839eafe0289b8a3a4df457e39b45c25aecbfcdf34991a62389a445d9699610ae9a91e2dc28764c2fc2f4657046847209a868e70185077ca88a8d52139950a126e652abbdb310c05cc407c14cb4d607209b67792760fb67f81578815d13bdf567c4d7edff1d8e6dd2fcc78c0c1fe3920f4216599a311f6b34e67ad44c62601bb7fcf876e2bf68926c2f0d26c14946f4f2dc3e2f1339451cd6162626dee43535c88edb46a21f9b0925401ed40c1b662fa9e5579effddf220cee1817e1b672aecff467b5c2538f1a602fcf1f3bdbf6acb4b09f6fb825db06e3d37bb33d229fa13db57a307591aee3ed70e65c55bcb6c188c04182c1019f648d5d5186c5c1bfde91462f1bb0ccd801bf01499c43f2df353f385cae1297a328130c97f7960de62b14e367de8a775d58400f755dbf5a06b844917adc5361b9dd861354f0e94db92f3ccf1922fd591cb8cd768d1cb4adf4a0d0a11d856324f8078033eea20ab47fd68c21e26f6839db2d5aa1f62cfa31b2bc176ee71e44354cdfa53120991f013c7712aeb37a438d0039ff86fbdd9046b60d371ce620dba211eeceee2eea5b15aa28041adbb64f184f01c2a603347fb8b15af0629b690ffe2fa8ed661a4379668a5e13de10b746e7385da0f072d876f651b595ec149b9b25a84d6ba220a30d1ed00ebc8c113e6c6e7e80df22ab2a42e8f0d9f3fe17331d06b9665f8c259e54818149cbc7b78783bb39c6a0e128a9de5449066f209bbf1d8df21589f9d133783c7849f4475b7495b3dc402d2eaa1ba1f7a5afa856ba930d457c6055bd3a79040c1fe7c42258525779f7bddd8ea8066f34632a5076aeced4ba3848807bbfab79ab67d318e9ebcaf39521257537bca98ba53178d824483eb052517572b2acd4092387f910a9a7a142151fc0ede3a42a19dfeb271196328013832710d6767a5ce062806fafa6d0a1133dcedeca1921ee7880d60c7855e6aed645c67a3977e0a43e58de1b7ca5651b577781bf65476036534176830df99844571ce3e976309c6affddabc9901c2aaaebeb1e04c6f89b3e03b5345dbbe2175be341993ee0ae42bb049f04379c03d49fcb2cd8ce04ba834ee17775e4086deb34c1028671831fa6351212a5ede3e61808b8e1f60548a0b9f82903ec7c1045abc9ef5af98d1fd3d03c4f5255beaf68eb3cd4471d1af01acc38d313ef33764463d3a620df9f622924ae1df1c517f23fca4292963e5733d92023f8ed1f15586f7c5b937ad01188d414f3bbc429666adba1f385a28d1f6d18736b93ef6a81a5b8be2b079ba71a6ff4f0b634f84042fd5e0f784baf4e35459d72b9a713d95eb7151435883b6a49f9838ee5910fdb69e38c578165adbbdcdee214fd08462210f232b1743c494ec42da2e52ce69f5f1daea1be4ee15065388f490876f81f3da548a3284ed9aa9ef18db98062a6d357971eb3306d2f3adafa276b732c8349a8917ca7ac5f03a51ae4a1ec344c6f9ef80ba19bd6487ea3fffbe8d8972219c303ab0c6c52ea0c26e0ae0ec9c7ddc03f08b62dd4bc70d7eef76aca6e95504ae1104da618d99f0eceec85f6f471dc8697ddb9e37f45359e71c99a2dd658a5954cfbe2260987580eb295756834a714847f9b817d0d4dc8100b9c0319afc1759561d917a244ea418fe8f973ec1f14d3aae3a0531a856e4b588097f1ad8778321c9152ef51afa7016f7d6d8a3dd34e50f46a567256f8fb2fc8af82bbcb146941c2cfbcef6a6500e9c0ff8e4e525d0f83ca520d62d1007bbd4c931d5aa0550f170095f55d1454a7ca2b557dcb46a4e3cd68898254abe428cf2f5959c452aef9c28e013c7e93543341a47e306ff347d5e4e82e62d9034db9f5d8f8055e9f0428154c0410488e444dbd49eafbc20c3f5ee4e67cc61bf52672e31c5215da706d53d981e88e159758c2d5447fa7fa2ed0d43f10e6e9a58a28280ace0ee0b1ff99fe7e3493f6816abd025803a0dbbd485ddadaed7f5509bb144788ccf1984d3597cb50d67f3cc65fcb8db007a92e0a9f71cf49aa4b716d147595f4f76c442cad0c43a0244a1b0a923eab9a382ea9e326c38e991332ca816874aee99bcab6debe22b1b68c484aa672e1c295ba004f6e795caeadf8132ffa0eb1c280f7b2cba3a0678013e3f9e28fba8c6b235e05b11579ac39c47a8bfabb831be30b7fd5eacba12e7ea5e01b6fec185fc5502c2eea3a063629e8a42e3b8ef0aeb7e12e74814df198f4133d3ddf9d201193d64835407cc4da89c2a6912cd72b006c2967feba56cad3d00d31a233401fdc51ab641d1ea1da36f7196ea8b9ae787d5839f75192529d8299dee3a008e99df25e70df816072991c1a475969bc9105991e45d8f6f97bbc4042851ca90dc5aeaa4dd01bf4ef9f36c6b8b97c55b20ef2957d919d27651bbe971bae7201c10eaa4abebbdb749530731bfd75c8c36e717eed6ab99275ef49fcb24c58deb3c848f5a62b4539abcb4cf79e00baba8c3436afa2e32ec44f9269df7d5e396ad55a54e9eeafc0d5603f49d9de4023de54f48cca8689b81e83a7df07c626dc5e7b324c51b38b2a62440731cb662d44d60f1b9624a06311255633c4a2882041e76de335be8da915c617d9e9525e5d46afdc996f8084c5015419820df81f34a76ed95bca358d0b8949fd3d3384aee96f7d23ef9063e8c670bb9fcb76bb9aea377befd86de0ccd011470f975d8569749bde88bf61a01c1a1576d5b0ed6cbb3196e3d08fb31bf52dc8bfa4c390cec330f2f6da58941e6448005e04310e37596d7db218c64f596d2a7ee8d9bbd949cdd3055f1354c291fd40edd460f3b136f72edf2febe9e1ba43d817641d53c044c97d638abcb57d526db271987dfa5ab54cf9cb0d0abbeea81880bfd75f532f77508423f7cd0f058ae79a29a77f5d1e6de8eb16622b81e158067732e0063af5e595525e4076a6fd9b423a8f42e7cc0aef5ee5be0e8fcbb43e13635da19047209e8ab175363bd25d52e7ec04e1dd8e357863713f4aa8d1742eac9ffe63d22b59acc702d6848f1350075eec68fe3e12372b8b50bb2c5a63082e6c6065f31db533d554cd9061440282c7823113b0d3ee4610e08bf8954edfacf914bbb5db851822402f84a1f6b9f7754ab68857d26895103bdc31f4704f6274ad90a57c552a97c1b731ca22e51df44037617c1bd4b9d2b3f6317c1d7e71776bd304161228f7ddf47098e1123bf3d7d5ed69db9c0c8b64bed08257d08bab9ef148b8047414ddee862d5bde44359370a021146ff72e3d609ce2638187efb2237a29cef0d41df47a3f59ba02187c73ca6186d9631d96f3f0cf8e8804dc5d3672f6bd27f0686c97cf713b6975c193cc77a4ad25a4a3e9d3291936c87ddac4dce3b1ee2390ef599f0d65a4de9036c01e57c4c89b3b046910c4f7d3b573c45606dc2fcb108dea6ba140e7da3de768fe04f8d7f5555ed2e91b103fa2285cb388220a59caaa3d279a418fadfe37355ba8fae4476904e179c7a0e3f9f6733ec849819efe1b47d6fb5bc22256ae44b64b84906c215681da801f04fa8a7f25c86959111f0b404c099bc5989371b5caa9f1bd84ccac2df563b50d2622cf6378ad23050a46dba31dfc37705b1af830cc06e4e1c35b0689c2330b11cdb4a7f314671e127b4eeb213084c4cf2d080207284face814bcb3342b4c7f737c783d99b4d1de0dae423fbbb902a83aa228a6044fe1eda70f8cbd729dde55bd0c27f63111305e58d06336efba00c73f9acc6501fd8170a5ebc28da836b8b7900f46976b1006e85e179615195ac9e76ebc680773973bf8d7ab838cdb2903b4a2fc6747eaac188c9f4643357d13ef3af587843e87696f653093fbd75be7074d44484456fc34dd0424298887df3904e69716123fe0a1b6754c44c5cf898805f075c158ae4d9d9f304e347b59f18b46f02ba6a9badaed753950a1423f46e3fbe88cf53f1989c90f8a3047d04c6611fc1606109e6e2a7c030dbfe9f958faa5d6422f32c14f84d069c6bfb24ca00083210484281f30e118d8796f689dfff28b6b1aa4702dc997fd450a720b4285a97def7ac547d25f95b6cf955e73eedfc0bb00d4de9204f9f75c99b7aa19a014728f18bc27cc313721b7891f86aecac0c57666451f503f7a1f0710ea9d97d4a63f8e2f54c9013081f38dcca45bffaee323c05e110f8cb75de270f885667e8ae4ff596ef1bd0d38d1552e056f860b0514f44e598fb49dd77d29e018d5a433c852b646614e9982535018f20f15b78bff9197999921200085ea71932168b70c1d3f105295f8ac634bd941870838143fd1a5f701dd1aa8d9b3db9dbf9b3660790f5b49c0365fcd197eb302dc6ef96df4ea074109303bb743dfa3a04a675c89e885c3fc2bc3cbe1f00864cf81819522c8d4ac39c0253a2eba54dab4ce19a79becde33dc3b384858775b2806b5427677487a7122b8bbe526cedfb8623b649aedbb5f1894c28ff7e3b5f7199b7d5a896feff03415c490bd72fee5ae8b18381e17805a3abc9653b48e8bc42424a11eb2a938c91de413e43d78fa44b8be5584512290179766afb46352c2ca218207d9ea37411872a7d1da5d2e38ce73c1ce5490bced281a4b75f83f452057aab1f6e83fe4b7ea9f9012b36f2131d7398666dbab0459ffb3414dfd1cd5f1455d8a1d7871556bc14ec40618b007321d280e2daeebf4b84be02137b5e302c215d9241819e8ab309ee1acc3ec157469f69d2d1920516293f165999da603fe30711aaf70a2fa4ee4d0364f036083b919217bd62d8649df902d5041de840e7d6d21b9b79317edb2684c2b120628b828216b50bad15e8dd8f0baf9bc829dd0a6c546bd1b084e1f44ffa26704b7778abed2bca142aaa00f22eb80f5a6d9fad90102dcd404ce78c4a10e56106867351d08bc262d891d27eea00374c107b35729701616018c0f551c18bcb13bd77202895b4ab22de5f65fba91b4bbc96d146ae990892179a7f38e49991c90a9dcfed6cc0969a82e122b36cc985f385c8775139202880f740d770eb51257a21f1227cdf59f898a32f23f8717cbf06f20d22bb1559a316d1212ce1fc24872751ab136a90aa81eec74271376f7748a2d89b2818c8e77c3f3368f1ac584182e443a415aa3b7ccb3da28920e5d8c14ded3e8cd13d779939874314fb2b5172985a48bf931d4dd30dd291cba7bd61d8c0efa99284f773044747be1e72996a07803f31c3de372743c7ea69ef1db68481bcba2ee06407730ef5d7baf90ee26ea0ee645b707525ce9cd4def758ae204fd695e2798278969e8f749cf75d23b99fcab755ce9ccd50a2589e2140a3fb460fd1afc0b899ecc25e53e870f53cffd52ee977c7acdfafd8ab313f7d5a7e3cf5669587f56ede7f5ef7c11749cdfe699c8bd1b78e763cfdd5929cd6d95e21253afcf446d3efdfe2dff0de761a535af13f4c7799eb7ec167bf8f95aec99fc254c1d7c262cd226a6a1d7ace307695889dcc338bed2f17efed06df6f071e94f7351a4b8c77fcbfec295da9ee67f5b929bbefadf32cefd92971f7bf8e5974e6c75de40c7f3e661a5b7a7dd6cf4717eade3a799e6fa2175908eb65af0dd56694ebc1fd692fa9737c93d21f730d3ff2dc96bd6dea34a14125dab24fc3c29683196d9a2dce7107e9e2015c97208e73e075b946b694150668b5c6674fbccf67677e374b7abbb7174370ddd3d80ee5aa8742d53ccd0dd32b0bafba6bb6174b70372340f1f7f365aab56e8737f5c4ef069ee7fcb5eb39eef241d533f9acd66b814cbb1045b62747700ba5b6dd1ddb2ee5627e8ee97ee564df4f779b514df67f2b7cd6b33be25e898c9bfcf61d5c83d9ccf25f84def39f2cd46c71c7e03e90de772ecf8ef14c10fdd1f0085149230c28a9967389be5c76f9b18ff380befc491e52cac8f67362cf187f3dac872167e0ff4da5b2ee72c83b37e77e3d09d2a42c583eef09db88f9967e8b9fefd5ba56e73a51e7e065fa952c7b98913a7ff9d8ec7792709d632a4e264f2d1a16387e21c1e3fe31c86553a6fe0bc93ccc13978961f3f1315e78cfc5f12c539bb5fc375defc4cf7f1df5ace1ebcb6168bcdf28be224f3b5245962582cf623cdb5bc2a01f8b5b56ba3a3dbea0940c20afc609de2a4e1ebd1a8582dc5f871ce8ff3d6727aece0a9eda081393b3c53c74707b823d4a163c78fcefbc03ecf9b31adc43938977609fc1b9893a92dc7daee0473ee87222d69393fda5b4e77e7e82ec5e3b10f2de82fd2e60d9c7f6be9e1dfcff53d26ce7a3f579a1fe3dc2fcdde764bf2050733ba433d75a62289fdcbf3a3d11dead5dd31ba43a1a05b9c4c76fcdbdd2fba5b6828a10e15d4dd35ba43e1eea6e90e35eb06d2f461a5f771a5f87aa11d73c067c2714c5d5e5ff41ffe340fc5d2deb0e374b777a7c2eeb6d11d4ad5f87a79ac5d7bef7b9d1e7ebd65feebd5d23c73fdf14572a49ee9bcd96d95e63cc76b6b3e532edd7da3bb76eaee5677ad4477e3ac58bbcf643d972938c909e2eb81cf34c3cd9b035e9c035a519c39b93b2f8d8addedd2dda84e75778b6ad5dd291ba408210529b801a6c6942670567083274748784152ad073bb2981185b86c9af04345068ee565a1082d8ac4052801f37383a3811d2a32606080a722f1d00c36283925a0032c20bcc44009999e12258aac552f5304c14677a3013788586af115102a540e32bd6ab9515ab5b0a41cc000a894a7564154aad54a95029976140ab584f295ab6c5030abd54a48ca61fc85b57a8159a95e5e605030ac9b25d56ab55aa954abd4132594c338ea0953ca5bb2ca5bdce546e9498baae509ab85e5a9173800217b71d552cb52cbcdd28ba7dcc5a5c583a894528e5a7a59ad54364a289051a55c95b2919169186f94cdcd2b77b9614ab98bb7ac6c9cd890a19c3c91c178cac6890d99cb0d4b2583b9515a39eac6c913d9cb4d4bab644bed0d43960282854ac920e594725a49710a82a5f24979502a081b294e4e38b141b614c4eac6092736c884f41499ea07146a89cc8d07b06e38f90f999e41c963dc864ce53363937219142a6806ca0f297fb9899272948c8cb3582ef302b37298d4ca46caca651c650385e5a8146bc68188c2b209c2862095c3d848714205a93c081b6a8eac7cc6935432313633330e13e34ea8201829322c29323ee3281b28308e62dd40712209c6510e25c653329d4d8d8bdb205b52f912b994bfccd874508c8d941877f220187fb19132e34178108ca3666ea2a81ce5a81b29507e5039cc4d1495c338cc8d14270f9a71d50b1d666ca0fca0f2989b282a7f714495a4f2148c8d132a08c659364e281b8260dc09151483b29139b2f219d7412585b50488a018473914188712e3280fa20a82b109c2092736c85c1c15744388ce497741e672b3b4442ee54be456be7255cd9195a73c697594f297a3957b2ae58202991b0e60a97c9e3cf921e52aff01e52b7fe2c413294e1ed49204e32dfe03cb63bc6f9e04e1412d374f7e70f1981b270f5239cccd0fac9b167fb9f9c105e52d372a6fffc1055553373ed029ddf024949031012353398aa66565b34241a7f21b513a77777f220505182a997ee997d5cbea15e515c4cb693544cad5ab2150455ca043352a0a6ae5c444dbdc8840b76a992a65b31a82f58402623081294e2f39a2c83a8552358c8bcb0d0e1760badb454877e182451423ba94a35a55456945c48ae5a242e583f27625171559dfdc8840d782aaa2c64a8d153557d45c5103842e4a87a57bca0f0b46a7091d4af6f2e23b52aedea251322c585c6e941a0b16abeb6cd870d7d9d15bc852a828b2d50d96dec28a2e95ba61617942874596da4286650b2c3733587e80a507c5c2124512356ac8948b7873428792b1582ea2502847a1ba22502825504920d115d125d11245a9b96862b1bace868d9ba8aa92f289f197175413b2d48b164da45a6e48c95a7c4aca95ea9890a58e40e3441325d533338509979b30e54a5de9be942be53ca852539a5051543e303e338555c58635e5ae642d517ea2c852fef3f3f3937a49c14801065cc0c00930646d031854f9e9a4d8e2055160f878cd11ba18bcc6957e54353631a866a6746c0231316466b8cafbc55710681f305c85624d41d5605151e1a854336c62788b8d8b2c2686b7380d1a323168c468e9665151f9a8b0344eca552c2a2bd90c9b6e991837aaa776a5acf44eaa4515d3ed5ad180710459aa08316466c4906a49ddd878a27be13349a8669848f534a17aa1d56abd30a344caa59a618285ea9929a91ed5116a3071572d9f4962e689544faae52a9f5122d59372154d6b060a148a060dd48b1a2b883049f5b478aaa56ad9bc7e8830a959423743d34f5dcabbbda5512997192d37bcc6936e784d8ddfb849dd2401c06ff88d9b27371c00374004c1f01a21d4f80d57fa912939111348f5bc701858547e523d305ce53f7440c5a6e52dd50b962bcd24f1f3e3c5cd0c2997ca6b521e000780d7d8d4f80d5702000f80dff09a00b838006c6ed4d8b09248b954ac221aa65a4df99111a1f2b9e12a18981b36ac1a9b29415efc88a0537549cca091e12a672151c386ab9c55848a86cf38eb02ed8386ab669288f9916133c3c60c4f798d1a33fcc58c1a335c522e352e1ec34c122e2e3349c8a099e1e231b8c430c34665c5c5c56dd470a9e1e2345c5c96a8719a1a9751e3e231b8b8b8b8d2cf8b17425e8811e3c609aa0b316c6a9ae85adca5d5b500214b75caf58275844c85c58aca0aeb653533a3aa918ac108999a2cba94cba45433def9cccd8cc370971b282ffc859a23330ec375987118373abcf017b0aa8b551415170d5329790d123a2e542e53ddf8aaa5a54546e6a6a6892ec653ce62bd78bf60012163b9a0687961a39ab149b52440a66750b2f1d4728b898989f18e89116396627cc65336318e7a3184860311a44addd41ca9e1343ca986d3b879e244ca9fd0f01a2a1b35800882a1e135a448f5b4b4c4f096192f9c565556344f32336c5e1ce54152ab2a3160b8cdaacaaa8ad5538c1b31e53a9242c36bb84c4d159d0d8fc16ddc407122a986db7028346e6a544ec36170181c4a8d9b1ad54dcd11189c862b81e106c669d4701b6ee3a65538a9191a29522e9a29345034aca57b92b19e80e9baae0a0d142924743450a87c6a788b930aa7c55bad1b9aa7174e2a2c5d0c193264b058ac97171aef1729954d0c7fb1014296a289e1303162c0d8f01a36366e5455543832deea6caa28cdc85e8899b94139dda0a2a45c59b09e5c62fc29d575366ca45e38c138bd708271a261b9128c93ec8593520ceb89f5c4c28285250aebe989f5f49245a744f34465089d12cdd393154f7253cad5b2b2c245cbaa4aaa27256b5955595591ea51f9d34a0b590b965bcad522a65c2dfe72934a71a17b71d50bca29e56a414549b95a544f50a8705a9ac64d0d171d2ae543c35535ba99140e8d1a2b3a2518a7971b17168bd57529185f5549f5bcf8138cab822053ea9e56ac276664a81f744a304e43c01401c3c48bb36090807192b5a05e6c686c6aae90394247c36bb4283d49b95a6c584fa8705a5850c85aaaa45c2d4a344f55642d4ed3e23458a4664451b1689e642dfe927225d50d2bd5e262caa783b8b0f1d44a01400b2a97172b2a1c94bf60b162050b965e11411343cd91181c064f8ae106869b24954c8bac268b6e55c48b151122e8504a2b2284bc487122b364326238ca5555d0f0cc92d570d40c9f715511dac70c47ada2dcc4b0a1f1948d8bac860d130be53468ac6868d1d2d2ade2a2715a5cb58a225bc962d8a8b468970c1b26968ce64665a55d2d6ec3468a0a4befb438027e8812644365a5860d134b46e3468545bb5a52321a362a2c1ad6e2335a5cb584ce69a1b15902069761b384132b08068f61a3b2a2c269711b36aaa786b5784d14ba96172fbcf042ca46a96553d34497f296ee85af3a182f58a917426054479899918291814c8d1537a47433326f979a2bbace6b82d02975b295ebec509af9110373d3374a3fbdca5263847e6142e593ba51523da13cc681085aa150fe24c6656e92665cc6656e80086a79a1228b711914a47a5aa6099927562d3a10e22b1b189b9a26ba952ba15e54a897169756bd54f142e52508aa172aaa272aaa1a2b949a0aa5a662b54a1149f51451ad5435553aa59922c8a06e3c29d5d3472997135417a4ccc4b812eb9552b5a86648b9521e2448ca85e2021459cd169d8bab7c6a5a7cc6810892916979b969b991b90122684585cec5553136342aaf294107734344e5e22e2f2e3639a2a45c2e4e5e5e5a5c88a46edc6a4ae02a77c911c505081726b71491544f9154cf8bb35a27e52c5f394c6a060459b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c992254b962c59b264c95283a5064b0d961a2c35586ab0d460a9c15283a5064b0d9629d448e1ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57aea464ba83a46ab2e8da1b488d27994a0a9929323559743546800185cc130c992718324f30649e60c0f0179997979797972799ca5336329ebc06142a1fd5d393152b4a2c2596928ca7158c27194f2a7f92f1b492f1f42453b5dcc87852e1a86e5a49c6934ce5aa1a4f2e15e8dd5958e9427381886c6b920e39331e696e32d3f120051e8820c799f18f34a762ba75ba534578e81a45d3f116290e04c8eb8bb35c7b71168ab6890aac94b8fc20e3d0810071f0622114b0e330207ef3de167eaa071d8cba09904424243b9209f90f6f0a692b032f742b0338ba9581026400886e61c0896e612008ddc240147c66e0700224d5e0091d93b073757ead46439fb96bc71fbf0ca7152d98a379b69506dd3d05cd98f30c1f531bb844062970419025435d2e592ba28c344a879bb05af02fe9a1bde51f3d47435920a5421141c9d731980203519c60c6769ce5397bc193b93ceb81e2d9ac698eb93e2529f8f77e581f5f9bbbdb059dbb9382b4f6f569dd2d45d31c9f89da8044d182ee3ec2ffb5ee1ef2917f09a4b9bb59801fcf9ae6d8dd50847496bb5f3ae9ee15a820054947dd38ae24641329cb8f745f0ceb24f248b814c95b2221b9f65e2148ea83f887ee7cd18a42997c10947de9e491d4278d84705f04cef0cb9b7125e2618ac544b1d4797abf3c82c979933048499b74c39348f819cf2233cfa1dce7909bbe08bf6d1eddaf38a3dce7d01da9e2b15cda2328e8ee23123822c411d1667f796cb4b77664a8bb7147604760f098bde1fc85af97c919ce590e8cc546b0e9681e1599375ca5b3599de01268679e43444653f44f77460868727ee83ddd15e9a0fbfe58e26ac132fceb953ace8ab52420b5d922fd041551904237127cbabb8aaea8cbe96ea26e224688e80f78808812322a28620391367339f228d951a2a364049b469049f83014b931a3cbe109492b8726bafb06e63986f33bd0dd1ce8ee0d7477121940a2bb8fb840771751810974b704ba3b02dd0d81ee26c201dddd002116d0dd4e4174770210d0dd07e86e03747794ee06a2ebee1f3a1ca8800395fe3ebf4f6b16e870d040f8d856692c368494efeb262280ee88a068cf56690627395aa116221aa26f7876ff08e7df5ee81eea8ec8157ae619e2ebe5e09a64089124370821e94790c9d72652ee3e930531b5c20d48ddbd841c6f6e8a7fff08bf8c474792b7cda3fb5424ff87e4a62fca5644c24fb315ca8f84739f43fd2258146543220e43a22327e350c6b3080ee713019d1899456e7812793c6f47b547f222496f924d0a71560c6afab0122509e9d0cc73289c4f04e38c67910fadd051f8617d1297485f7e7904891c4126b99656881c2f1171669bf4609d25c644cf4433382b117e11ac49f2238574a85d2d43b74d77cfee845edd8daf3841db5d8aa03f10b4811c9c5f14837cf02472bb1fce2792aad3e503385c725c9678b66a2fce737d9cff6891dcc3b412dfc03a6f900b11942c41d07a6d163e2e03a08a41051c572e93e3cf30f572bf34b3556a4380ee6682d42f463857a7e7d286d42df6d78736e312876e25484df4e8ce86a7eefed0d670e2bea835608312e1572a86b67a0b6c28e27d5f8a53492c167ec5197d688b3e1e1a25ebee1bdd4dba0392a2bb5fa4d168057242eaee1bdd3c7407a40b7cbd5c8eb450867ea1bb1d48c6335ba537e74b271fcec0674205a06de86e2c74b70eddfde0829c236a859211420f4e76743706ba8aeeae75e7638b1f6217b502ba7b49773e3eba430bce3eb495022df051e2eb7d9e36ca346bceffcdb41c2c5af0fb6a8b3eff705ce4bcb85ac6621f8eabbee8d5c4c70ee48787748c61e9b096b5bfb11fc44690eb8fb949de6c74962b69b118cef5ab25472b64ab14279975b1b18b813122a2bf3cf6f298177dfe0b562bd463073d9c7477cf661e1645eb3f5de86e519cb412e74831b4e3bcb94988284e218cff86a16c56c66220bd5fdf3623b190f06b127cbd9cd90836c562d58ea30567185f1a8fee7cbae8ee4ae74d08897777d26c049b7c2280c35ada205bab44f87a1fdaaae3ede0f17460b410f6f4e61cf062d8083629c9819c46fe6f52502e5391e6b2e746773f13cd9389de0f67788ae29ce139bb8179d266b74c715d68b0bb77e88ec7b8c3dbf1766062b59732d5cfd1c1f3037e0f5ad8a3074f0f08fe0e2c77c979711d8f1923424c9c9c17e7364f2243847477f8387bafa5d9fb3d788ee61f52263a1ba585ee36d2dd0e267dcbf4ce1c4cda6b41db9d8e24740fe1ebc1789862b1588cec8ee70acdc3e43697a1d11272049988d7d6ee93654854ab444c767c246128ab36280716e11ef7451d4fd8fe6eb3a38a204eeb3853afd376a7187e584b9b71dc27ad93739cd5bc2570d2aee7c4cf93863f8ed4737fcbfe7d8ec121ee65f0ef6d9a4662b11dbce217fd6939519c1fd29a1d720fcf22ee611c7fe5b22bfc265af317c5b81f626d52123ade3f12cab60813858f24dba22e07095d0e0aba65f03c1df795363ec673064de0c004384419dde5d0d0dd7966b2bcd70ae1ebdd6a9913d4dd3abac3d173a7e3791332ce62311c8bcd66f845dabc5fc592a9d2cfe15f8a3f9ce5c761b5b4590e9ce139bb9f31b5fdcdf573a5b3679a2fe6321567bed6c812f837a1f0473a452191ce21464221929c37a9fed24c7a7c3f1cf2a1057f28df6732cad528cd85f331929a24d7470a3f93e3e72c7b09a9618aee9e859fe948c51916cb59fb7036824d339c1fe339cb617d9c230323d824d35d8edadd2edde5b8bd3c96f1873d9b7db6d525eb6e8f85b5744c8d0831493224ac8f24d2212fd2664df2228de6fb4c95682897c951c8b537b0ce47926dad5308576aa3d76806d922e10cb245e1d3e80531ad4492bdf818d6ddb65629b6b54a673850dd60136c049b7240dae4c10386393fcf337fc7f3087d786a3f3a7476c06820000d3e0690850150a1f1f5404cc79c1c10d33116c3b1585377336881736ee0e75ca6779239a3053d5a79cbd4e6f9fae3f922e93ec2bf6fb3d19bbdfed3fe96229d357f268aebd73ef4298394eef6d1d55221b932c85669285a22b9fbe5917c2df9e2277d266a12921f6319696d91284ea1fbe1b5b1d80e532c36824df7c36b84efd3f091705291126ca39866b134824126445d011946d0c930018fb91132dcba3ba6bb1fd0dd36cd804e86546e7ad8bce5b411e7639f484a99d7996d15fad1227db54549462c275e5451024a11303ca4acb40800bba930cb0a4d30d1dd46ba6f60ea6e5b7737acc6d7a337773641c0f573d3bbad7e6d0d1ce7df8c7b25c48a013174afa4c0d0bd32808dee55945ee17a453b1b1bdd54c4393c3c1edce9b163d27c787678683e3ce0cff7983a66cfe401be0eadc623dcf109431e3c660e98717973ba54a85222bfedceec4080f82d41d5e3b896ec0c530f07fb139c99bfb08b8627feba1fd6c7aedc2fcd72b4d9ccc318ffb555ea313c55381c31d1071f09fea1f0c33b414c876443bc6a69a5fed78e4dbe70fe6d961fc7628fe4de37fbcf6b163f0d74997b5fedfd21ff5ba6f73e93156252a73faed25a5867cd3a584b5b6b79deca890beb63cf9ff36c2be9a24833f6bf934ce27f717ebc74e7783f4f9c1f194142c4bde99eadd2d182953aa6f74ed071a5e1334dec619de187d38a21cdfa33cd9b3fcec33b711567c3f02b9d99661d4f1ce819db1b9e36fbf551fc6b6f989c1553fcf56db4e9168b33e3397a36effd65ab94e6afbfb6f637244b7f1aa6a493feb9363d3fa637cf382a7e1b7aa68eebfc519cf7c7bf91a3bd354be2bfd782d7de4b471f3f53ea4fcb33a4619da0870f96a1bd6416c27dd1b7c3f7a345fa5e38bc165789dcc31786c34a49eb55e65ec6539c36788d665bdd564bef2f71efe9cdf799be3ac691a987753e58ade7c44a36bd63ea5f8a9309d326dfb7837f991f7b2e9c7fc569dd56afd11b38df6bd6bfef818a93665a2985e5c45cbf74f2b85af0da3c45d1826eb3d7721c2d48f3e379f3582c1623b1c7dcfbb014c16a410f871fb497f42c96f86f1321434642b118cefdd2ace26c5d9a89e2e37668f27d68c1d8b743a617779fc93ece5fe2ac368a3d9c7f9b306b2b1d3f13b5796e8a7fa7576bb163997be153912467b534149fd65e1ee24ae4496c9592e414ef33191de582c2cf94466ff61ed96890b54933cf21252fd2a64827932cdba232634b24ccb64866abf4966d51589300e94e060bba6d6cf83c3392add25c27d38b8fc46dfd709967c633f16b9d377096dff6b9ad52519c6048f4d78246c8f112096b6969b9342a22c2c3148bcdb20de79268c999e750b514537cffa8a77490ee64ac6c96402bd23c779fe91fff25fd696eb3e3f0bf76b7d7ddb0995777d79044774d37ea4677e7ba8b8184aff7607d8c7f16d65f02276df6f4e64a6fe01c619f67c639f89968a623bd64f8373c4524dcbce12dd325374ff2918449c2fc48f76b19db22199743e1e36c588574f7adbb560260606062c2cf998eef3bf8df9260606062727d2621dd3d76d77ae9ee86818189f1606060627072300ce7fa4c8f411bc22a9d638ea59e87411be6e4c43099f3cdd504efe0a3cdb81482818189216a9a466a91a669c41b69c6efb55cd2fc15d6f79ce8d916b957ad674c9bbe36cdb13e699dfc5fbab474f2d7732ded387d2c475ae9e87f4bf2f0c759e4deffad7958a7db2a7d3dc6f8699e13ab451a2df66a1d2f815674d17355e61ef97882983aa6b7248f0949322a722f27568bbfcfa7e3c7a5bf3e9b3d77e7cdd5823ef30c438a6dd58ad3bfcff15f9b317ee15acd7e386ff65ba638c73f5ad031bd65cf65907b1fd2f7168bb3b404f0effb1c8a3b10d08f99e790bf42a2fb2165b2f7c85f403f62b19af8483f467a4322a71107e27f6d46f22773d9dddd0747e2fe2225470bdafa7d9f1097c1bde9757acdfead66fd45729c4d8f2713cde0fcd067c6b9b45eb35e8931759c692d5d9cd9664c6fc68f249769484b27b44850ae4f415a0b4c54cc7d0e37b0628b6e3025f74b3748c223e90ddfe086a9db222a4e404513154636b8820d7e60831f6c80a3063fa84112fdc24fe62a759c1b9e19bb8be2bc28da9c28ce12972e5ba53e44e4167cda23e11accd0400b1a4c41830574340069208029a0304514dd14790a1fdd1d0b3fd3bb8436e4b0eff3d757330a895e5f0c87f391d0861ce6e1b8704867b95fca21164bfa3c630bcadcfb7076841ce68934d7d233f8b5da5f3b9f96a9cdde8773bff4e138ce8f24cea4902809dff0bcd95a259a4112ddb2194421e75fc71327fb7a063fddddd5680636646045d6c94008191c75b7f75d2bf451212f83ae693178e2c31830b1ddf292f67e0fb38b41d71e08abb63a9eb79082b4449aa2c514263cf0493c4ea0dc2fe53e871d3d2550ee73f801be920f2d3825487ea429acee4cc7ef6ea0ee60200539ffe61887e764b45f0203ef054778010f5e00a5bb8b74f7829d17d8f072f799709e89e2ea987a2c66e98cc42eff70905c469fc72638ab13fcbcd6f4217d485e83bbe0032e60e2029aeef66e0982385a896d766b91e496788e1c397278b95fc2e2948205528452e820050e52e048e112c594766fd2bf7989536fc7611e8e6bc7619fd0e77f7184bcef43dc2345318116459a4314330a02446114050fa01f2ec387b3e332fa1c06f4c365f07e691a1192eb333d50d20ff095603cf30c1facb6627ce715128b25e1592ec91b9e44807eca1fe02b69a2c3d3844787fbf82977088962c00229e8f07860b656299e9ee7510f0f1e2246b1d8083209897e4a201608008a2e40c144db8ae937fba5993fbf653a7338a12800142c2f27e279eb567081157c2be854004537e1c1cb0c4e7f65b1cc6f0b4b9ae7c49ce75f9b63aa022515d0a4604a7b1f8ebf4222d78799e6ad0c7d7ca238853e9f29205310830d508043c109a8b4177ef8d6da68d4eb7d266b33e25e4ea4518c2d2eed7d5b9d612e2dbd6438ffbabc9c780227f0044aba13b89af0f0da81078f9c377b9d482770e94c1084b9011330e96ec2c3abca4c50a32b81164af081121c35e1c1435a5a0f73f796aff557e893da2a9df36d580219dd135dbc727dd9134378a2896ec2432e27ee09274f0cddd2bacdfe844b47822190c0e945737da6fbb9ac7304699ea3cde5ac4424c831822034e1c187885e3bf060ad874f92f6868e272e9c37d9087e18013882179c80a2bb090faf1d78f0aa25cb69f3eb7527ce5d5b694e8460278e747792ee9ae8a2bb9bf0e0af57487d071ebcbf653abd89294ddcbaefd76a250d9ce41238459f989cb7fb47ee55ea3836749bbdf7a8cbf1c4754de8b417d6d2d61eec4460a569f87d2e0222ba1bf6b713c1ad13810d0f27fc5bbe64d3d7097aa6aefab7a4105869af0b41115ef8f92ff92585008810b8badb56692e6d6ee2dc569f2f3c71e15f1054e912537fb0520c8227ee040199ab73746b9340f0d3384010c3c3983a10502c068473488ea727fd00faf1a3c9060101e1b87e8c2013208c3f1c4126f966a3bf84474709f4a3c9062d815b02870f6cd1dd9ecdb4dc1c3f87793833d707ed98e7cdf5b5897d7a7e240f5cc10331f080093cf0b587fd7398177e8869cdde5b16459b9b8478a0a5bb8dba5342054a7ca0bb9174a744527b38cc8946849878aecefbb66a45b7354f245d07a2e8eea5ee3a70d48199f672d388e7c0e7800438d003075edded619cb54832751bd6e997fe2ddf69fbebb85cc21b78b28119dafba5994571bec2a77e6ded487749c8ba24621a7082068aa081260dccba9bd65d06b6908125ba0c0c61200b18c88201243030d4218105891c20d1346fe02d49ffcfd589837db6e35f9887ff6b0ef3fe6bf563308f4747f8799dee4fab599779ecfb1ce6b976987c7eadbf3cacffe1e0789ecb5f2e1e269f38414ae6b28b225de25ed37beccbf8c3cf61b65aa7d72c3941231efb3e87794b985ecf53a4b376cb75de30fd7293b495b6bedbec64e9af6ffc4c67ffb5efc31fa6fe3fc43322c4645e5bb3d1bfcf647177c4138e78c0113d7447cc60c40d8c804167846884d819f1d3dd5e8e1f2dce9113f1c4e572645b7338a6625993791fced1d657f8bf34f3df32917bd371a6df678bbc9c284e9aef24af7d911c699f0d8f9fdfaacc0bff25ce3afd67686804d01d4d0dddd1fce88e86487734df1d0d10ddd124a03b9a0b74370d1931dd5dce16dde9c474a763d39dce8eee748874a793d49d4ed89d4eed4ea7ec4e2701dd0dc3a51584a65b4164e856101edd0ae2a35b416ea099e95a3008740b76816ec19ce8168c05dd82d1a05bb01f740b664577bf9061b560d492d05d0d0addd5b2d09ded4577b69aee6c347467f3bab3f5746723eace5680ee6c6477360374678b4077b60d74378c1a3166c84ce94ea607ddc918a13b992974279385ee6666ba9b114077333b5c6ab81475e7b2a43b9726ddb92875e76280ee9e91d131745068ba83e2dd41c9e90e4a50775066dd41c9bd10f3a25b62c8e028a23b1c20e80ec70abac32183ee70e8a03b1c45e80e4713bac3b1457738b0d09dabd59d4b86ee5c3574e7eae9ee00bc8eb80145835a32033504454357012c3e3b9e0e2c5b7b5d30250a143059daf4bf4b48d0a925bcc75604bd29e32f739d77dadc496b45ff5b5e0213e3fd9d7866ec5e2d9e4360623c9ce9385a70e2ee1c6f607d5aadb93829f824f699434d1c5437ea08d50325e309449840107cbddcf4360be946bd504c80c227497a338e8d78e27ea09474a39274a392ba5148dd2824dda823dd49207712b8a18eba514644243083046c1041029f69163ef84ac26721210249ddcde33942d19213441575a38c2ca148777f20071c504444ba1bc785afc7c394035eccc374034ac8102a8850372aa81b65032a4837ca866e14901388a8820a8eee540fba9b76e7430ddd33948a88203c3a2262ba43a42a24fc8ccb796b12f2801f07b8c0c3feb623643ad222f7998ca0f8c0ea4a33fe3c4525f6c8e650b48fb31487fd71f9efa43e1d3fd37d243f4237040ae6105fb7c7dc26fca0218e3c36c4cc10309d1055b4e7400e6423c4043c66f3e4280428049210443a0655504de8ee0274c7805b7763808bee4ee1588053771ff5f08369474a0d44828cbc8dee9c66e0240327269c92e8d96df6caf158f83978f672fac1897accf3f4f02b9d8d6013d8a4801b2840050a804037cecce51ef39b57eae1237951a439e0be28fcd00ae107c112490100e820aa80140412dd473f3c9090a6e7a5397ef896361d67eb52b5783e12f7c02773f93e692fe9373f3c30be01a748fef51f1e48481efe871e8e1b9c36e4fd9265aa14cf3cc39abde14924e34bcb4b7ac61f8ad6854737e2453c1cc3980677ef46feedfb6b6b19c7e58fc539c4bd8f4747f97df54972de70e3ace093f8f3f732b6a23fcdbd3ab660c5798d7e38b15892ebf32773f8efe7ff5acd8e98d679037f9c37e3b7d55b7ea617a908c2f2cd4645c720cd988aa2ec47cd3e934f9c1b9e4462b1a4bf2e072969b34f23ee654c45ff80927e7cb74c716338ff56fba3c5b854aa59582ead5b9b675b9b6c907bb04a5d893d1231c581d5662f6f49d8bdfbaf5b26f221b947739c996768b3631c989ca3cbddc35fb34e4e232f9bcd9e4b529c3895ba1c27b9374474a75882748a6259fb7116814f2211d9241cfe834f22813629533c546d91bdaf43b545a2388552aa9627b82c8c13e332b4453c3c19d2e389cf9319ba27359e74dd93171fb2f880c507297493d67106e0f21cc71980e7aecd33ac73f4d7003c465a7f0dc0c5395e5b5deeb15bb6d517fd85bdc90e9d0f2ff041091cd78cc1720f53f4f0811ebe8702746efad9bce5b4b30729d37dfcb63b6f423d502cced2c9fbd37aa0740ab99fee6600020ad0f444dbfb3dbc18ce176f367a1d674af31abde125dd1d768733d2a4444747017872e39d8e4b4b99fe1ee14a00ee783c9e0e18ecc50962187edb246724c6b9b41fdafcb889d6fe923351a44bb3a53bc7bf21b54aee8be214cab3e69f144492a111642234824cc81164929b84cc5bcae62d65484224bde1231cdd281a06d08d9aa11b25032a0037dd281b9477372a3f11d1dda8ac031a0562a77085049ed0dd292638008223195150e1d3dd281b22b08311110bc08014dd8d12020a02c0b92d3f44d0dda922426c6082103884b84277ab663c804a142c5084143fe86e172328c0052a08312e04e96e14165580c0932e2c70854f77af8ef85e2e70cb819212ba1b15041a0f0d786880132474f78c56de6638f7392051792aba4ca3bbc789cb2518adbcc1de16d24bcbc11ecebf52809c9ce00cf715c5630876e9ec783b30f09944718e182500d6bd423eafa8008cf60e097f076c029b60e4187ef9a593193986e414dd29199ddd427fd9da3bfbc2cf4fab96e2b7859fb33a3c3c3a70134948d4f4619db216124dba85c4936e21e1822102a0a1bb468f96114974cb881574cb882d74eb889f6e1db1a45b4718a05b472cd1ad236ad0ad2390d02d2456dd4202480b95ee2eeaae12e17ea6b15928d21b18ebee2b74b715beeeae42776f41852c524c010a2c5248a161a270450b283c218b8c6791230f7bb52fd24a1b66eaaf794b995f3bc4fb91669146717dec13d36b71f7ebdb7089ebd7c7f606fa2d2d01dcc3b8ccf34e929c3972607a27ee83dcc3ffb8fc340f2dbd4fe6b7391d72ef04ddd29406674b52ba1fcfbf60a548e18b42b82f5212825212da85284ea1a669c4c359519c8eafcde01c02fb4bfa749b7974847e9fc433c8e3d191fb25fc3947f30f07e7e572d56c0dbee3eb8162ff12db1b4e9ce1f43a43f16f9fa738aff59ffe17f49ac593e6b52423e17ff85f648b6a46b934c24fafcd4448d916655b64abf62ec1d922d626354d23b9524bfe4893b038654dd3c8f5ae1dc1a6197e263ae6184f32a4e1db3c5671b6e6f0d516855f6d14295b8b043791603c45a1fb471d0002173271243ed317216d5206c26bc147626b35f4ee904eb226019f7ab47708c659519419006ca2bb030fd08d5f243daca51de2e5e62de72d27ad05b422bac15adeecaf8ca9e8301a01be4fc4f67e0f9832d1d0e7fdb0d239fe457501b03087d0f4750e81f3cafd92ab554674f77737677c4dbacfe81bfa6ae8f618387b792cd3f0ef2fcda47b852c1909494232b351fcd846f1ce2c14ed0dffbde5d933d94b929366b11c6778cec407eb04e72de7bce52cc0131d3e7277de79037d7643b1495168253d21a98a6e07f2c35d407ef852129974441211dd9d73b4269ee7ed4044c4258624aff7739e64cecd484840a2028707242390a474583f4fc74e8494e44d1ffe0ea4191a5f2f074916244f7e6ded76a356d002d4946e140c5a8062c21125babbc78e03f9bd2598a3478f9f1e3e3d7a7af0e8b1a3878e1e3c3d767ae8f4e8f1f3f3e3f3d3f3c3e367c78f8e1f9e9f9d1f9d9f1e3e3f3e3e3e3d3e3c7c76f8e8f0e1f1d9f1d1f1e9d1f3d3e3d3d3d3c3a367478f8e1e9e9e9d1e9d9e1e3c7e78f8f0e8e1c183c70e1e3a78f0f0d8e1a1c3a3c78e9f1d3e3b7a76f0d8b163878e1d3c3b7676e8ece8a1e347878f8e1e1d3c74ecd0a143078f8e1d1d3a3a7af0fcf0f8f0f4f0f0e0d9c1a383878767874787a7c7cecf8ecf4ecf0e8f9d1d3b3a767876767674767ae8fce8f8e8f4e8f0d0d9a1a343874767474747a749075f6f2c6b4e1e6b4d768879b9625c501c8afbe0fe8a79c5f8e0eeeedda81774a35cd08d92a205473e8f1df9f11da17124868b23257c9fc7625edfe7b15c7bd13de6c371cfb5175d1f1020406cf0d83a620114fec28163a91b15450b8e10103be27134a31dd31763b834126484a5dbf38c886044a5654405c77ffcf01d9787c08888d104962abd37ec3627dd56111374783bb06b69b31bf544378a04dda81174a39ce84635d18d1241372a042826ba514b74a33ed08df240a75e6815752f4445a89049f2c3d7c3b3fb2448f38fb74cefc414d33c719df68273741f5fd31c67f01f8ed334c719729cb844faa0e7b893af082d22a43dfcd79fb420f64a9196e62f59ca41097cbddccdf573c839e280324289160e557466f3e87f88876d262915c9717e9f936349b3bd2c927bd8074e0deec373780dfe5f9bb91c889334cff28b3e70489a5da038c11910f7fc624e8effb5d5465f1997f7fb3ef772347fe19034bb1c9613ef14e958cb0bcbd5deda27cef1564b6d24cd3ef1749bfdfb3ebfd4da1b92661767992f65baf1cfe534fa3215cb51e6435c727da45c1f690689740e690981b5869a682fdb6a448809a6def4155b2ccadcfbeef7f9a44c1e7e8e9ce3cc38c99be608d271d65c8871a61337b3b5342f97296cfaf86a3d4ff7300f1d3c78f4d8ea387b6d8ebfefd6891fb4381bd69acd0989ee934fcbd3f6d7662372a4116412ce201baae84ea14065554354426c7862448809ecc8881093a34e3549c9c07382aa2b7eb4d0dd4052747bb64a458addab34764311511112d91227406277db84b99b04f4536452254840ab46ea6e1a00f101c80e4088e0eb01b9917f58691e1d3fa4c032193f9a3c4c5a3aef5009a25041075a3ea0c0d7cb8f6162aa0d69b539af327cbd6a299eb5620888d1f65858e992bfee93251296253dd8e302b3a5f9b89cd6cf067e10f013f4e3a35a3aeb7eb0fb013d5574e38903670d56ad55d2bd8271e9965540b72c11ddb24fba650dd0c343f7ac2748776391cefce1ecbfd6ea7975db5aeda1e96e2e7854e96e9cfba5297d7fe95adcac56b33c9418a2310fb2310f26dd3c82748b870e0f1b3cba776069eda8a263b0c36907d9dde12c5b11b776ecb02388db1ccea0ee08c02a9d37fbb04e1bcb0be2929cd95ce92c646ae9e0c1085678b0687c33c0f20006268f38824d7374203fbcd2f188222a4549a05a8afa21876eedbc5a666fc0b6c807b7365446e9d0d249d2d201a27b0896a3856d3aaee5751f490ee44d7384b5728478de87b3f5fb76bc06c7f7cb30ec2d71ecf9f1cd4689589b1486a251f88f4bd22dc6aff0f17dd2272a047dcb14f738b2f4b0be671c250a042d1c1944886e7812193f13e56eae425e046b928e022a868ba6424b778bddaae188c6d7fb41ab8619bab13829d08f1c8d4a8e27398e109bcd8a8c8890900851321372830c895112d26c1623e7df62f7eff730abb636e5a46e4aba6109fc9b50cb3545a32ca0441425f03152c71317dad107bdd966cfb3e91dd0f87362bd93e8435b1434f4f4265db0d2588c369657c8002d1ab680af776d9ef733cd8f479009067afdb87688284e21710ac5623121b54a62b1586c36ab1f86f436a3e49c911803c56240201569e51149ca6c522cf6795e7006c7d3e72d653fe62d2710bd96e267a2b64cfb6a67599cb7af81af64049b840c8595e600f4037c25403f9a6c502c167e93a5c5623b3c4c40a238854690492ca6c3143a19c3b1acb3d90c00dd9eac75838aee6eda84dd700a6fb8926aac78ad9a245a3506a8d1698ac39466451a49c5189e5a31301143932d6ac5e0dde5a522499618062add4dda2a7d91de70de8281886e2fcc89d46d110c3aba1b674cdef0bccd3c876c68c0c692960d195a3650354ad0aa0101ef470b96af5036711e49738d26ad1a2fde676f383ac9d77f8da4f97b7dffb5d9e7ff3559582dad698e348aa041a43d9186437385cf346f38d34563a6bb5dde9a21446bc6ab4563a5dbcb4ddccd53e6fd2d6db4e698dae80d9717d31a9187139622e8f20f698b06081a970c26b46410d1ede1ef739b3f5ca991cfe9e755ebcf54fff30fc9b8757b3e0baba5857426a3fb568ca7ee568c293192e8c6319ababb637cdddd8a11a4a7675b63d868aff33e4ed2b2d2f9734344deb241e324dcd716936e0fc7abdba2d525a1d535757f339b3d146dee64b46060a1056302dda4bde1fd5bbe658db4378491d37a618bd60b447c17fbfd5cfb71b473ccf36d936cbd60c28b09b45e0099c9c20c0d5a334ab4f7394c1c4126e41cfdfb62df0cfa1c664488096ecd1c69cda45a3241e816c2e2d75cda9c4abda3b1c48fa425c3d49299a1499bb1b76254d08a31d282e9a2bbbd2f37c10f673311ef78cdcaec25fd7ec6b3761f674597793770922d98215a30b60523a3c5ba81f7cd9ae6e8cd3c87bed887fb6a2d929c98294845b2e93dcccdd17a3f96b939e6ea247a5cce59ae0f74c3f3c622e251ecb3c57235abf35a2f5696ac1b1162f242052e5b2fa4e775ebe5a7db2bbdca5a2e5c74b727ceb2d2960b159727badb730f6750cba588f65a2e479f8f5a2e3ebc996718cea0902816039f29160b339e91387c5cce6c958644b4d5e2e4b55a7eba3d3c5b2b2bad5594ee6b5746dd52b5e0042d556da9845aaa1fad54155aa9285a29215a295b771b79ecf3e6587aecfb1c16f37e69e66ae917ce2752349b315972d634c7263fa82a3c23424c5a2824da6ba1722d14916ea16c7477abb178ada6a269ab9368f50d479dd1adbf25b55ac7039ae1be76214b39817eb44662b1249cad5d104017607061055c58e2420f1768d8c210b6b0812d14d9828fe77df9f1cc717e69e658ecf39a75f9ce88f3e1ecd0befc4846dfb4452e27fabe1ccd9fe6fd4869f3f678de4890d6498660164b5ba5373c8988e214ea824a77914417647769eb42a75ba6052ced69e1093c714d5a08a20556e3bee6d6e62c54690fe3fcb5a3cb737566c1a99be61947f5e159f8dabbd679b260c3561916a8f05162a1086fe6898520dddd5c60692f3771397fb92de2a202dddd8e694e34020a898080ac505a6188156aa8c21555e841158aa882d01657b658628b6f8b1ddd8d615e7d11d69475d0a11a89e2f41a1cc965f47ddf8b626ae4deb7f33df5e9f8bebe9ae43e156eb26091858a2c4b645940169e2ca82934d1ddfef23c8455ebaf29c0d04d8185250b2c1dc0526241c222430a5348816c519c428e4bf1c8615f6d9127e4619d3a780dae83cbc8cb62f9e264a2a5933c497a5f1427f8a2ad52ec134614059c2b5a90c2951d5c51c0951d575c5a3c418b14681184163ca0d08413402104506802851c4fa8c21336f0841c9ea093c553164264f143163956b0b0f2012b479aece0af5838dd6341430e83c1609ea3069abf4645c799fa7c8d9f690cf67967c7634639440ef370906c5674197d2ecff76b96067f715a12f4fc43ba654bf357be8f2b7d613cc9d22facda240ef33e1ca4cf6651a4619d2e7f659a6dc534f6657bc3398ecb611ee8985e4be4de776d06e710fce15224fd95bf23ef9b7d3b0e9b353a1de847fd1bee5a207ffdc0e264fabfb5d1de9acd4e70eaf63a2704f170aea54cf3f6344c4727c068c294eef630b6622eed2b97b4263475dbdc84236bafac094c9002c7e54cc04c703297b3382b1de2e18c2f753c71484cc0624ab78783ff6b58101184c551db985c86858d2baa748bf30a267039dd15df153addf476458ce7d6667bc3cd705f456b69b158d2ffadcd705f81927ed48c8a58215a018315309620457b6389f1748779e02d2d9e4d429640c35395a70f3c1d29610b4a5842094028c148093624210a49b040126c4042164860a26570f732be14e3b88fafe37c79b3cb9f898af34bdb7cd1f3c4792cce9aeb85e7cd45717ea2386775be682d0cc9f3c0fcfec26f9bf7992c8dfc4b9636f70a7f5eda0be7fb927e2ec74cf77fa9ce3c6f79f6226dba7769ae8f848c0422ed2519192111f21ea4f97d5c7a15b12a60388215421c61c711504658811142232031c25011b82802108ae043117a8a1053a5065d95045439eaf6c6a021b7d52daed48d1ce6fefaf0f4dcc4e1a56b71fe7d612dc5997139544332c37d9d551b8b5523c7363bccddfb667582b3cf61ee31245ee94d35274e98f7485e9295de272dcdf482b9a48da5edce218779d77edf0bc7fd3c225c410425ba5b487744981141c61074300426dafb1c539cefc1eaf2d7e3acf834c7d7faffadbd971349c7f93eafd2ff3be49b431032841a4360092105ddedc9208ef9e6791e2b6d6e003d7a787f5bf26ceb37f9be1d7e9c48182f81b60888e958bf077b6bb3ff5af87f6b54083edd3d3b65d3874038164bfad16483f06cb241a23841f09504010620d400084e8030801f50f984bc46e4fffac227ba8179067d7fcbb34e7f25b997f1588297822e8a73c9e8f31f90dd9d43773f18800fb6e8f6727fcb2f1f34f1c1101f783ec041c50a54a6f0705c78ce62b124afe15be2300f2768c8bf1a39ccc3451ce6e1ecb88c1ce6cdb2b548a8740f72d083263a93e5cd38aac5e1ef97a85893783de87800041ea080071f0f583b58c10e9c76a0a3d34117edcd66feb48f56e259f813c7b393e3289c9ff1f7f9e31207c3ea144912574b739d380fbdb4b95c93bde4e7192c6d2efc6babbd4d1aacc4a5cd798dc8ebf4c2ffeb8db96ac3f231e9e1eba0880e5a399022073507357000051c740007374f0847c865f43d9e41b1d82473348ae92dc9e51e7827a635a2997ff4e9f2eff358aef33ddbfa39cccbe4834d9fabd3488d8293268af6be686fb8d1e6e9617d241cd8e8f646ea1847a4e2a8d4cf4a17aa20069d42432232020000431100303824188cc74352d1883c2b15f10114800373c466944a9c09a3288929658c31c40000000000320030100d03083041da68374a093e03ff96a46b81d7bd73fe99cd6ffb092af5c3851221a5a3aea38ddc2ffb7b62e9adfa0b677dfe192b72fe10bf7cdf646a31cb1d540d1397be6574ca8685d297bbc3f09f33c3d3fd07c51d79dbd51be6125ef466c2706315a42344c758a11e6f8f6da49b8e0114106d764b53544211e2549e7e7932751dcdb15d9c593ef4c44e02109652e941cb09937c8c45dbc6bafd1710eaf26db9626d01930060034f9e4e7bbf87660f38f482a3afb9ea247ad456ef40282f805f30339b7543f68cbac9966349e09962c6f8795bda15e62291fb62ec8b42436ba725c592be1cb9472c654fa80e9e727611e693e9a317fa60999ee0fbe2870884dbf36eb6e4925dbc12adb99d50c2d6505f71acbde361b2e053eabc18c0de63a39dc70d7ab9067f4edb3ee2d2c5c89b5738ff441ee1668528ab59d31c75ce0430ef849e9f9ed4758efb573c7eda2ecb79b76a19f340c2b8a1270887aaf66f0845f10209cc625059525efc0d2bd3b9971eb2b21bb2e35fd6bc89490189cf5cf9accf929b89c1e2131336d3bba93a297684bc20b002154f093fcbbc5b02961c3f5669a79a86b31c6fb0abbf60e1425ec9b0b19b1a375adcca405672c61685dc629bc14b39f1716520164b3e95dbc7ab76d645f8cee2e04802824dc67f93fe56831614d86fe8910c762facc19d65e8940362d4832561941d6bb9c95f822fa58be2fbd3a4c53a6b3f21358bff8a60d6301613ff2718e2aec415be75efd49f235884a077e0feeb487097483c8cbcbe9a99849b2327a48526ca225b5e2fd6a90fe91d6f74f74ab7522ba55c5c191f119704ba8e3f8cc8286003f5039582819df56b321afcc32d3840e2d320adeba20b31fbd6f02ccb36d8fbdec91b5bc1b26f07d686844a4d8366a121426acb60886cab5cb0b72c7891a85a7473272694571b2d7f5609ef2d6523fd6b561b5ca21705a14b49a2a052d81824b69268fdd20c7b7344a4fe2e4a42e80a2dfc2a0a03cf4b50d0d07844b55859b53e0e6d4cf056ba9607554d101f9d04f5508ea6bc119c91fe41939e828de3ac0db9a167bf361e412f4dce219b1c0058143b7f4ab077d449f90cab332bb7b4eb1555ad42d4da13700f0a96e647ea6455f0aa32de61a29a51b91319323293a80778f026670baa2f95cee53c3e5bb55c01a62c927af7e50d882fd49b3ceaf4b790b3a459809326ff500af0c4283530fdeca370b10bcb9cf38316f7ec777649e39c38642825d1c889c4489204905d6d76ee82fb6f1b2db1904658a1bdff84c80e016065776aaaed91f1c67b726872e87fa0274a8301d0d5eae5953d77b0afe4b3470eac0f2146b3041102ba1bccf4a92d6f19a955475a8b4821eb0dd3488a24a94d476abc36ef62b78584a71f21baa1e40d521736249e29986e3e8a6902641168a8beaaeada4900bc9095160e41500ad8c61bf61632d33a111e676f4afe12de33547ad3624c6306cb96da0a031158baf378afe10107fe4ec4b755d409dfac744a7fd964823ee1e32422c5401d30b3a7630868c23e7c49197b024d55e8ff9f1417a62ab43485c308438e6c8f5a24dee612bb17f9fd29f66c5da2f9776fa4b42a2b261597877c6985997adc7e3120f94e24e7df1497ce25ce53e39b99d8411b3b61519fb76533edc82dbd209b122dcf539683027118d20882ffa4aced917ab1c4bff8529edd841381a13cbc80bfeea734b26a880217d81cf8b17974060944930b46a5cde31f98b502c58923b95d98e3cf33b027fd767d9cb9de920ca17d205b29e3dde36d7217175a79befa79a6e0760672da142556af74b53496ae0265f6f6d8f585503625f40c75ffaf0766cc84eeda17c8e49d545d886e8815dca61e12e85c67fb24c21e50525c29634fa055f0f3eea0d711e9d77fd69f5ae4054146d97eabbb3f8cb30a7d8047a7d89b78cf46e21c2174dfbecbacdb3b719df24da44207d0a19d0637e2ca3816c72371720cc6112bbc0d88bf26d06fa65354707a6efe1af916a92605c3bef4fc81a024506aecbbbf3f0298c4d0d2ff97ff924846d467ea8d0a7c730574a2b3cb8fa8000350acac4f823d00f1940110313ffd499d311c3ac186b0673ef238b210d8fd60e4398b97914ec1fb5edd968ee8c0bec72681c131bc5ae79724dcbc94cb17c9645f474e03ded3de10df64e167a2180658092058079336b921809ec705963584ab62ac8179798f8f65439193986e63cf6abda02beb32bab93ce2dd14be662ee606074d257b6ca27d368e51e60f6ec89a921305514259c6e72ffc08695d37d83bd87451fdcfe07824e5e7371bbedf2183ca6c4a5970d988c6b586e9b0278131cebff8f1c90517e621de45b58b060df4f33fd05c94f8ba964b541105e91e3a93bdd756542d669335c03c128bbc3dbed8ab88d81a3c6a21d3391ab0cb5cf8b0eaae20f24365b3d233408129dc8230efce8979847f32c18ba746eb61cfc40d63c0e6ee26975ed3b6219ff30388ec5007cc68c32b26c4f13e0161b07aa3bd1c0ef1890b0de2a95096085043f670d7593cd809c9a5d8c0ad9efb614ddf2bcdb3a22465245ef46d9a0278f4c7ad796377cc31a3f417750f31e072a04ffc13e1e7d75a768c6f9e6bbd3297fac847fbfbd318ebf387d79ea58dab3dcfbb98b1f51d73a83100dd00cd2df46375bd836841908252e3b9c0ab655cc7820b1c91ff3f5e6395316bca7d13c702af6b3e5d5431b6849fdd231fcf23eddead79140e0d68abbbaf8a9050c20d2c57a0705eb3db1baa43f36c97e71813f64f334b779462ec34c87c149cf736b8e0716257b0f6d61069b9fc69a42dace34f416398efe081002e9f490cfe7bfe1f6b5675467459ece9378122c90d452fc4b9c7ed45905e5209079697c962a539b0df89eefea640b4274af9fb03001b7cf596954e2cfbcff08d3334eb2bcaf0272508b9baa7f2a4ba40ea8bcf388e20f8e98e0fb2d634df5f6b5a040002dee244c97b70e4c3684cde3b9d9df6c80ad2169198f61ba7ea0dab66bce1fc34505fae8fd014605f08249b8fc04d44891f7636623a076027397be25d7ab621d92afe69813e2b3f0fe41881509dbcbcd5b213f6eadcaab7574e59b94ad073c9239cffbb74178eb9674a556371c4cce1a839842bc3f79c1e3f1ce3f49f3700d5e07f31d278385edcdb22c08b425c0096f9a93fcacd6394d109bc2eb65f441ef9efe08d569feb453ef186bdb85b9c42acbbb45c262d126b8595e3b761f0791b99dca8d4d75cc6c82f3da213b174cef009f0fc7df7d6342a574b403671db5c30fee75d8d495d42ec7dc1a19b4a3c8d70af33aaf51af9250c62fb44a9365317c1a0f337a2fe68c2893b968de7b74932476f73b01e77918806eb1f72c4c26d063507d7d2020e0bee03905ec4b43f8bd8dc92d6a6d6f3e82cd41cecc367b95d479614eeed81e744bce44c9e3a2c63c1189249843e0a3a77f976c2609a8422801794a4dc5261c896b58748c80107466c7c41f4f3334677dc5ad943f48efb1cb94dfa1cd9f8e2fcc862246521cbb0ed273378501e4d6e1e802029e715fc0b0abd0f8a6817e26d4e743049051e962bb822deaff617d715f029e26b065ccc2516f203444c8decfa06c43bd5cd7579885cbd09aec25ac8d1485b649380afac80ca4394d7bbc8a145f735bb001aa2cb543d85cf86ae4979d3868c6ad327c61e3bae595ab39e7f46eaceefaa573c28247b558009fa429c900fe952620feb2ccdcc5d974ef71b2e95aa172f5878653a2f95290bcd3712ae5b7fb3390ea2d87675514e30803bd021df3068f8e3340191945bbbe12308b055cb222a674b9091cca4aa167653325f96542f777e47963d99612703d98e8a8517709d123dd500b8ab3484d953536004f31ad0641e1e996bef815fd9f92d2cbe8952fb0b061c247755b08fb5603cf9f2ad9e705e06fbb648f59a48fe3d8bea00320b8859c59a0c5287d5574825059163d48dfc60523b33d67cb59c6a3371f744cb32497c21340dd7c0f7f88524b7c5b87f3ca1d9ff50283c0791baccd4d2ba118cff84e0c12a9e9f7839eaba44fdf7b3952fee47be735f7f07461ce08b9b02a90a830211db9518c2801ca814aebc81bb1b09cdf37b44f3e94ef684f20887c8bd48dc5dd94c003434b8725501a4583c6636028757b587632a8eddbb9588201db38963b42c2cc78ffc04eca524ca4605c27f83c9197e267070a5a8b905aae4b1274608aa5f1c2b75ba5724c44ed87136ee6313f5eafa74b5301c202117c001d9608736de73a3da2f6dc7f4a265265fd4c3e622a31b2e7564e4211f2eb454bde3bd31c7d9e305c385a2fb9ab5e22f01bc5e0ba58685038a2ec57e45b7b53cefbea6b2f25d2d69f759721c36da1c9ea61795556b3e28b087fa911212a4ef8f54f3d7710e0089290e4bfec355d157aabaa7ec0e422726c0e94513fcb508f320e2379ea43fb34af7d143df96fcc12bdc322f12ecac32e657f40e3fb074c7a67fc20a04cd50bfe7a9b917b4b430590fcc81dae47f39910ebb3bf87c1e1baf4a4b565de3505d3a48c4344ca7c9ffa36d639a178c660a1c008ae1847d974e1091655bce49e43cd92572ac9f4a049b083682161e7895c83c56ff5c77cfa0eeec4d89228701dc09db5789ca865f5817891bf97ab2951f71911bda71e26009ad8b6edda1de12ba03b34ec15a1e64864f2ffabd63837edb71223a21ba61e5a7aa102b058ce893df931357af916fa996fd0e7c0fd2fc5400e9c5c84ceac1531a3d6e7cfb470c0ebe49afe3247114dd38c9b0464c2df172cbbbb41ea0ab0ae13ebb6a704e562459d792d8d4b8cc73ffe33dcda87c48d7c10f3631b8e3b3b8de1c7cce25b9671b8e9c7e24b331ed78c5472a2ca1967660a49a9b9eeef8718a0a61352e8aaa4c072396ce6c65df16d62b598e1fc623d6e6f467b26522ebbc9d791a18146c06a110ff2b3a69d16860b960ee1a80a87a548be0486d162c4bab9ccc8d3f5e794d63c9c0542624c263c8ddfd21468251a933b0c67e937f1553b5c97c7c90348f22a4dd68b8f01e9cc763dc87755c78308108f1ea9c38fbd541e007e1e8fa15be9dde64c7b78e84f2c7fd7db79a692a36e971e97793439ad3002e2f2e20eb7f241e41cc89419c7aed5c767d39886b192379fffbe1366159bc8ef1294dc19e8dd220863ad0f4be5554e3da65d5976e4cad5227388eb7c02b23778fcfe8a57beff1065def9521e6204daf1f18ff6fe7f5fb4e61f5da35d9968140a0d8b6ce291c41fe57722960658fb042d087ba8ab0dd6f591df433c5f0fb664aed2993dcb6c5a917184cb167900f406825406da9913417b050bb24d25d577f67ad377a1f11b0495c14391a13b0fc386414de0832556e63e3b7f483ee4fa2ef1153c24636b9247fdb7b28da963463d0faf29c89f54b72ffccd2156d5a1f9acb27991dfabba298e779e7ac7ed7192e1f58b497cf8f7c38471aee857142a9c633e5b2fc4939a58f62f7dd3701c4d0298906318c9d7ad704ca7fd286f3f85c70a8e065756a822af506a50e4eb73248d1e0586c971b6f5bfde74ce61eb2ab7076fd26b444946b91624df73f0e63c588bc44c03753038a6c971a69203b2365649fc4e8083f31ecb1ff5583e8f7c3cd1067620f4df8f1ec95d3311a6679791769f25c633785cc5a41549cfb53c3150899ff436cc6cad837fd0b194fe9089c684528d332bc92e89f26ed60ddce529cd9b28560a2b2ccbf1f17f9347f8dcb3391605150575b469b89542e82ce428f44a807317959e2365fcea50db38b0fc161d9c477280e97f09f430f12dffe43bbe8c0fcd02c463c12ced91db119910cb7b5e79ea71e77f25ed1fbd02e7463be0080136c72b79d726e746d8e277b4ceefa1f60dbeaffcd3da8f179978548e2c09c79870cc1d8914be4cc0c1cb432ee7a78117ddb345b59ac9923be0e55036499a852d4922f9491b5f1454174d665a2f52bbe1006e156412f1b327961e3b1ea19f786b8dc31db6affc4c68fd0e570b6a6bdf4925ec0be4243568cb050f3f74e2ee67a2ad9ea942497699681506e79b4488d529ccc5135f9509958aec8113248707acd1dee54b3a70badb609bf41749386df16dfc2b0065be4dd9207e99256bb719611a26aded45c4e5a5df0866cada7cba31a7d08b214ea5ed804012239c0f801fdc5b66be981cdbe2b308e55995dbc808d9d621c6cbeae9a563341eb28027596e5783af5d7dd59a103999871411c32f84a25da1c88c75dd7fd3ade3b4428ae42fe6688af02c8e5d79dcfdcb7a50537c8f7d259dfdbeb78e2b789cf815743870736f92a026baa655754429361c6438c3d2362cd9d4773d8e85f8c5d4bece5be680b2c3a9e0892e9952b5c838f3c6bbf60e975997c8afce5c3587b8bff618215b7a08da46e1c1fe1bed45b54b44a3f869aee61610f4f77d9f353b484244e5f4ef133d0dd8aafc49bf4274c3cb97cdd169bcc4055f414989ee93796c36a4efd9d03690ab075d2f31668c9a1c9d53fec51693d6e578dccb23b2289c61aec9f31da51acd3b7213bcb03c954f51b778d2dbb4376eb00fa56d59e2c96a88fe88d53048106f69a3400bafcac5c5521ce78b2d884a0367047692a37feb31d10178ef9262754b0ea570fa094187bc6c294a1a10bdc6bf1db6384b261853b9b6bd1169a1d2666073b20c8e40594651523a76c371cb39d3707fd28661aa81464b47093d1ba86751ff7b296b58bc4e09bfc67662250c1af30109f0de1a9357b7e1cfeabdd8078f7e4eea13ac1b28f8e1d9c7844655f1d1d84cc08b6c89a0bbe165b2f08fd4b27475ce135d4cfbbd0e700f8fe5fe401f18650087030e11c3484d931220bf78dc386aab05dc1a123b60e8f7ce6a9c00549be68b08afc5a440a824863c43cccf1f0ec83eb664cf6b1409f7d480328968ae1bd9a8bcf4e706229efeb6185c072e0e6860aa8a13a4d6481e5dc8723bd5d7e1f0884248039850651953cc28aae4b649dc8459529c3e363f4ed4b88a3ef0740e81802348699b10f58ed774460ed6bff8306553d1187a409fef26b9c650be5cea6f754e44bf384fb941a73ad1db168a13bd0dc8be76d2ea37aa85f3e68b3c4e634be6efc400284be3b2c018279865bf7ff9e61989966f75773c251a24d5d331e92cdd00b10b491cdba57e3220f95d5ebabdf8f5146ec6a53d874aa965648889bb958b95d6564b57c92ff2ab50a0b256aab975581440ddfe80708bee8f785da569d7fced44d83e117056273bbc9e6f0134b6a11249d670c59142843c64e50115da477e29381854b39c392f525ee4a348e551b9b4fa53c73bb96cace336afbb610de27af89d952c0f1819c3cab0f56caac8f3af65210b3ab2125ee0f26aecdcd7a289658d7e110cbc0a359e57e113ca734a29db201581ce3b80c1c9a171b72c7b3cd9b247e77348e4bddf6faf59ec0b960f46f607d398759478e2cb8fe2aa60bb21a09f76ac6ed4ddd9f1a07ca159591fd7cbe33c1dcd3e5ca84c728bcf68c801a70af1b55ecdec3e69dc9428fec99231d1ae5e5cefbca173621c046eacb49047b58dc09768ae2bbed592708fc0e8051c4ff9f66dd07bcbacebaec3144d69904389c02cecc54dbaafd08022996359d09023a7fa4d1c38ef59171dfd45259ca3692e5330a739b92f444ff95621ee1c0df80a4ae5252425c7216f5cbc28beac9df21adae09311c4e8d6f63684fc40815a47d7445480d896eac1082e5640ca0ef11f489a60910925a637a5a2bbf1b9943922ad95304b4af322c854c4f95c11884cb61a4b86f74ccd203899ad14aae83b388fa7d8fdeb391c754f90a1b9eadff186ef235dd4b74ec9c4677543f2560e39de21ab2cecf8062c7942b815dc08f6e3f3c51f94c4eb3839552e1bf0ce4d1f21870d120387681d96d83f86ddf3d2cce6d7646a59ffc962a243e87e52ae6d664982db1ab300e138a8e3a217720e87f963e318895b362359944c6c31e8348d318c67e18bdd2f7b56b8771a33d32fe08fbfc5635fc0eee5c27f091667ab5fc44873799ff681e8b63e97247c23cdc2a5938125534582bd9ea727186229ef2d7118637859969553b617fb08d7af9143b963e10d6b24b054cb8584585671df2669ee9f1ce9384036121589ce0f1791103aad4b5c1c4eb4cbd40ae9abc667720790a5d963dc02d215a788f2ec4d1e4a4cec789d18f19fc6b6397036c5e7e7ff26df79e2872a61b949157dc9fa0efb4f638d05d1211470fc4474f26e278954d789135cebbdb18d4fe5d324b6f19deee4b2b8cb9d5afc94095570de11069d9c1c11add0d8529e53ebd5b98a5103079c9d006e4fd83be1309ba2b81b98c492acfa6366798187d9c852f5a91b62b551b35014c439eed8e2af9efcea0d94a28d43556960829b803959f3eb24f0bb2ae84d5d519f174667de45953b036fd78f398786b8d27ced588a3817939d5ce89f698999937c1d2d1fec8fb286106696cb30efecf0364b37e4db865bb7f6fdd6d4695a6f6d4a7d17b5594b1729a92cb314f5fd2d18a51fc3cf75801bc6a3121a0105373c4bc521b1dfc8741ae98a912aaa29d10da2c00d798a62fcb70e750046d336d25c4d8fefe3258c28236a720490d7653f57e915f7b57824e91d68e704164bbf145d094c1d50e5f3d87740614d7c2dfce1945f2309a07362b322c786296a8e771b480e8f63b4db4c28a26ed80a2c5e6fd65583e0dce024dca01b1f0f2f69f10ed79344d1b38c157f14f4f0b46a58a28f641a0f9c90d85f6e2cf31ebbcf6a69c46b440c0123a6bc6e986036dfcdfb80917f114ff4117a0ea4566a8fc6536706d00b58ee7f1bfd67c7cab0e38707e31075b215b444ea5ef06a030ccd94ca7749957252d6333d0e57f8208504c6699d4dca7020515251306958613422b0a79b92bb21ba0464948ed61258078f47fecd8d53ee752c0dc32c5f2fdd82583b808566dc868021533926476b9eb586b8c92463ab89c0bb6d29abb7e62f17b4449f81e7d4e0d0d986e34097eda9c061d9a2085c401c99098974cf3186908949faa86eed875c50a21154909574f070005ab189afa63a133e3acf76ff6df33024c955e2bd0cf57bf6917522055acd63ff9341f496b3a08f2439fbb630e48d4551ff3c6997acb1fa03f97a591841dfdf9175c9afbe7bb6d45d056847e7ad2152dd9d33681e63a30cb2a5c11b4547d2716bfe0686774c98e16c68300f5efa0ea9c21f87ad5c962eab9af33051fa34f5637d3ec0b0fda6980a6f588714caba9b9d823424b616310e8980876a893b080dd51094b949f77834e7b1bff857bc1eefa810da6010dee320771567d10ed4a0dc2524ff86ff29abd0502eb9c5009355e9cc7fb8aceffd61af6f375a5ed23228d1c89b45539b03600f6300f6e6be7e8d3f9826816865e7defaee34117eae2bf83efba4ceeb30c8c97e5e110e3cf59470301b9605930125c29bd7ec4748e47dfd2a8eeffd9072a89e8fd179b7f2b529090745d0cb8f63c08d07000e226693a4f9c0e007046e3120d2ce907fbaa17b12a5fb8dff918e08733873cff228023903b2586ab918091ea14f0a0314b7110f40193dfb76523a83c0465680f2958e83f82b074f12988420855db32b33f453234a1e84181976040db9d0f5891c91e0093e6b89b0de63716e33dd44dd3e5d7ec50af3d4921d03b18cc8a57615580ada50e247d6d3af8c8c448d755f965053c668e9260e9fc05353a6170cd379f20744c830641df996a44ffedeb291320fba18cdbed303c839f0ee972bc286afe6f027cc5483804f0e280277c7774cc808365df81e35d13159dca9c8e8c6ce9eb2563cb28c6db1c52cd57cbc6393f00d83fdbaafcb2ae81ceae03979d944d19b6950ef3dabc15122160011881786d4d5696b84aab87de03d3a077a700c0ab3d6bfe88e70f11517311c3335b36c98f42213c0f6f405359da5deda851c5f9887ede45bb8067a0e2add937bce11bb71e90e7ff7eba7c6f2db318fe9dc357c5f957d41e8983842067a868c608dcb392e609d9a92e7015a5f78e6e10cdd5c5bac10c59631ec3bfcb9e48d71a816bac6b4f807ed2c09c9bf905e60e7c8d88d9a31b028b59c380b43c7856a049cf67c8f57661abc14e2ee0ac9e45d79154bcd71f6c6c00577cf47cd0e3ef92cd38a7ada3c5a9e7d6b431a648756df6d4301a2a3e32a11b84af59ca6e1039b1ece6e132c16264c62164003b39d087948e22ae9f06caf66a6985bfe2268a54777fcacf3bf5e2aadf2fa26ed481cba424904d50ca2201ac593dfb46310cde0913bffedd08f84edf72c07d8ad7c938a8805e5c28d377f77355b816a0d9cfa6c6c696adc79222a222a126ac78a3f540ed7bd9a89438ec11232b63493166ef7537a8fbf5f5d46ad005482ec095e6fa624c7c592d83ed2e71207a0698c33ebb720dbfa11e99d6f666f980c315b4acdbe1c3087e643c9c7b032597ec742e03bcae87d18646baaa32337666f52728da52e9931e2699cbacd0e2a92beb7d2687e4789c58f1d891223ef9bb60e64c72a33fcc8322e8417255c19ec342760513953c3e9c72eddcda53fd8afca5448e9f231b8a64fe7be3c953bb9c3c4e1b8049bd9bafdb028bed9cff031b7f2c897448dbdf83d0b9a041ece3b26ee19413921e8ca1863f1f421bb4c30c68232f3513f367315b28a79be69d41316c004728efaaae16820795cfb7005061dfd41ccca2eea97cd96712d2627e0a8432c307b8fb5c0ceb7f64292fb819a7fd040b2d91b578508d91d49bf37f5fd4975f8b2764afeaa28c90d27ccc941176e728dfb7f9cf7fbad51e9aed73fd776a47287c5358939f817be036220ad66704dc60a45bb7ee160757bb1520ca593df36c489a6095bc1f6064f78530d1003696967dc6638e38a294188a28705dab032c179399f228ce1b61614b0a61ce9dd2ad29b9492e38517ff1c473e997e4efdf2288d8f565046a6451b3e55deb7fe7ef67233ac7ce094c74719beba8adfe25a53506b1252678e67a1fde5f87740a48f8c0c6098f8c73057e40b8b49751adc5ae81fb196d8aa6dccb97af4d612b9c7dfba3d68ecae610241d661ad592b35fbacdd31ee3fbdc0ea4f48899074d9af98444f5af67e9e5b897da57303d9e4ab94578ab3e7acf7cc42000c036b66c0b153f08bb279c7c42316e1f35d5cddcbd6f4eaddab800f9e734784997f357aff817522d821a65c7b71a443f50fbbc4e0057d66c10bed2acec1fb81b7350f4121d71a4ccfec8ad3e829ac27c07632b1f36ca0b21a4b76637cc708cbc67c279fd33c4688a199bf4cfa1f23a983771bf250e35c8d62aa97d5157af20d1f0497d746cbaa160302497a39e0641d29330d573df7dcd48c25621dc06fd9586d56080dba442b9a26811a7438a36ad904b6efe010b3540b1ca52ec20cc1cb06cf665759e159e9001a0f48062941023ab81267eb79fd6944ebd34f9a585b106ed70973d908cd37dcd748233dbe258d86ed3719adf0682a68609307b1595b8c53f1c6697c4f8371627c1e5c16dfcb84ddb4bbc97ea77c9c62a7b88600534688bc12183a6315b38709bff3fc03fda32a422b51e496fe866dae58a24e6956d2a0a25d53b4bba4d122854fc55ad8c390bcda3ece1cac4069ebf1c70f27789eae3af062d0c118c87937230067acf8008d1225871c1dd676682aaed64cdf9584aa74e067ca513a90283e926087d7c088cf9c2819d2212c9dd65d1f1cfa7004782d0d4859313a26c540b1251e5a00cbc4140e820c3a0433dd0250f25c54ba2f4bb3c9c91fd229d27ad74e0c04815a6d2533cffb7795e4d652c8455dc243d7e5515a8b036bf560be518fd7f44780ae0b1f87e2704ff04a0e963ec6f3ebfb216cfa5d4172c70f3918799583b13c1d5fe301109cfe8e5f9ea2a5d851d3eb655fff8573e719e0f851c9b22d89e7c4088704b0ff429ccd8e4ac1dc7fd5e903d5cf0a6807b9e56de79d18ca38c3898ffbbae5c45b6683e78928f574bd6136451678b498913637587de1af73c58124b147a92786ea5835d3c55f7f70ee2ea38c34ecb6bedce0553338af01705c2a1484e0d790149c65e0070cfd1464ff1e871ac398479e6cb48fb7ccf129ddbe1fe0d899cedf1c93686403785737d6baaf0bf401205c2634f6d02428331977eed5eda4f87fdc84c9b94a97f12dce7ee0c28137eab9e134f2fe22e5935e20147e041e035290ac59eef6b6c364f9635f7b64d197c2a427c0084375373c509990c9baba33876616fec01b93fcd10621f05b517ddda7ea8b9919d7e2110934e38b5122c90d57aaa2ac74cf2f9c63a47d09f672d4c7f939feb8680554d67dab8b678a41af3ee021bb154fa97eaff135ea11b2aba05f351d56f0b695c6a5d124b72e085f304d11c203394a9bbfb5c6c0ca8ef23412b1a22b658d7c855cd07cc6ce8882a2d8e09df806f5b9a22af38260ad9f787b9151353b4dc611260fb018f29268b53932e709b85032c37a4532f18c30174a32c0bd9a658b8d29ec6752052cb453e610df084ba7ce54c4a0b891ee93537a09d9d32233b7f156647d929be942a105b2635133c424cdcc910eedbdcf5fbf28504bc645e0c23be4ebbd4a8358a95578778e2beb4a4176bff452d002d3a079035e4808b7943071b7e24e6f734ccca7571d6c9b932d48ea795a917f423332de95bf37f308150865edf16c88b558033117dad43ff696405937e187ca2ed60d4f3491b4b63ce0e930a9c46152f838d9f5c35fc58900d656ac7c5e044ab1ebba2552203bcdfde3e89f1a364b4593883f736108cee74854446c721e11e8777c2ea5efa2b326abba0405b060e23cff3763b3c5e178fb02dbeb23fce9d6e1b4c5fe4971aead524780905ec1ac06e2a771a7b4c8494178ad9bd88b8a7a32c78142b5165e7701d5c855566404f5fe4c9ede238d735319aa5ee83610c47e459ce0773f8bdeeb34b733419ec182b9f8164315af4f5e67ba6c34737ff714d6fdbc2b142f908c475d218ed546bc8ca0265de0e7c752bebea247f69a2e7a6a5563ce92c27db05d0e86ec0642a3531d733b3f80ef2582e8249eccf44aa768d0aad618ec993333245422c61445283da01c81413991d0e58ce707ff4b46678703a3a624380d1df040111c4b2d9e05cf617976dd2ba8fd9ea32587689680d282310ee0a866cc90dcc8ecdb95a1bd4125b3509c026c268617b4f3ce67eb53eb90e8c1435330c9eee78eb98ad5734fa3afc5574fd7498270b33a0b0a05358f714000181617a8e37673f3e91cd5f1172b8c2535085286470f02fa7a1630e6203c92626bc6893d93130e75d1df643029d65cd7202fedb86f1c9f9db0d7b75c6c4cf7d8ad7d94a3b5999e1c7c72b5db60f39708c48db56e32b526dfdebef9a177ace24a33b826aab389cb82dff4c951b4cf60f092cf1e9fac6b28577ef258c0e96f3de85272977eb758a06cb32433c1c964ee0771bf1eaeb303a86369819a2c040df9ae29c5502d336601f5ec07d8d4f1c9324dd1479c75e7220997d60c0ef19fdc65c2c239caffe17ebab13033490d94a231c2a2248b6134417e78a1d4ee3e05fa461ecc6f488263f5e4d72b34e3b063e3e7c3d5de31c2f6b372db84b3a62ee11eccf096d4fa8ddd111fe31e861360ca4436614731131dbaada358ba27c298411439334044db2f19c6e6fddfa3716ba79967aae473003e6856463bbdba275d1dea5eb8d825e5bf91341e33c709edaca770812fac4db4667ac045d39d0cf6933cc61ab4414dde51ab84f8dc97a6bdf78c3be0b8d7d5c21d357990bc10bcca9ed53258fc14fef3bf1c1f423bc53697cd5397f9a2dd6e8de661716b0f42590ddbee78e6bd532e4ba80c09b2a3fdaf2948c16fa71e07af5b90410e0162b92f0f24fc33b695b9aca49a4fc5a076849f33989167ccc8d397c76a72460a3bc0fa4b289d586160dd9f59866ca2cae58f04408bb1124484aec25692eba2681f4cac9c743b54e62e8203f0464526c682f7580b0214e7e3ab9a281d52a2fe14f77f1a2262ff0d12e3ac354fae4eabea6f44617efca6c7e6dcf8fd9421feca2379fc5b7479b46e8f447f1f91895930b6bde8a065ddc4f65d05f15cc821cb33cd7d1e9af1864fc197f3be5fc80e4d1d15fc44aba7a8b8300b9ba0b79c9aa208318d590b2710d4af6d71a292f8b6175e50f95c7351de015214fb1dbfcdc8237bf5a9e0618319b83c11e63556ca9132142c51549f4830f622f0c199d9483d2b9ff8641a877c931ff327a3d957fc4f85c4362c53c8a8fe42834534daac256952a3c6e431339075e37a0169599208ddafd65abe587b43a914f236d5c12c1bed82651a2a56dc35f06e8a97722810aeba26ad05fe32f3e42e9cfd0bfc28e28c6078a7a6dab0b5d6fbc6e1b924e231e6ca7407fa1969ea19b2520e6d65d0ae915ca01c131dbc252b3bb9f9ff89a3f7518786d7104650203208b1f04eacaf3777b843a8dd5cce3740b68f462f5f06478ae11f7662d4120e592404f601898490d7c15ac8a0bc27e1784ef6e24b8f9d01a58d3e4a0d470d53b37284868ab0790f4948e34c98f3ee0a466fa52e6b79fec00f0e42a3937541d086370f18c31fa21d7a9da3101026c5c57cf211f8665217c5649f2e2578434643c7230195a725d1a69f819cd76f11e6b871603efe15dcebea524b229a4c50eabea8478fa31c939f6b75b2bac0e408298427db3b0949350276018d27f32ee8d73f411386fdbb0f9da87ba7d0944bbdde6203161e789599d7b5ff63d7e582bc3415e8463c2435913d73896e6119696761212168c090e9f84dee69c9487ce3e47c3322be04169626ea481716d682f3c185ceec7049910c9c68923015e02c3055206a20c579de308eb6ced489869d32f60690d968c56c4f46da2cefa38ccc409385b55ade8424f506a3ea17841d40ae023c68f37dd028c83be7fb63625a1ff987b4c33889fa189bd6dc71a886f79fa03a8e6015d78f7988b0713f297dc4e8cde4e5eca0875aefd35427f84d129906ac43a072974e2633219109c49aa94bc1d9b1a7f4d07f4273558b473ba75fbcff9f2f283b36a22e979628896f4c8bfa1dac2d0ab03efa9d73a3629f224166d28e680483401673e3834523d205441d84bcb6302c5e14d3c87c631455a4f465fe7f70b0d8fdb4f20de9cb16005b252176e6be1ba953ba189d69bd8524473827ec685b266873336da91983140440331555b1f22fda638d4aef0186a337ff99111c68bb2fa940856fe2204ced75184b465f76b756479cb657ba1230ff908dc21a03297d6911fdf47e0bae07a834cc7f349f507227d2b7064e8403764c7552274d876161151ea7dc99d37e50da29608c64625b3a386ae41a99a13a582da8d57be8f307ca2e0b754fe42dce0795800d1c7fdadff3196710584a310702dc9631e07777461b34f0b8d713a2b9d0c0586e9784fee16e087866a3f6a0a00d78f600e81825c2f562ae5d8cf70cadae5df08fe95ee73e08a9369f47806bb7d1224b516a57f90230588a648812635604b7bdfb49733a9bee79439982380031ea493e24656be70f53cb1a88535f598316ae3eec7f155710d04db6cf34433eeb9c8f86334f525082d4216a8d22c20b78bdb7259c9225fdc07dc93b5587d6c7954e603b2b0eb48037bde1208dd582d75db12e618404a50967265dc3f400629cfce1d89d2f4c6a8658e6fbf21aa2fc0bb520c0d963de05581c9a1425f29017c8ccd70654e91fd8f2c4a6f66ce0d0632c09b2edfe9f185c2cd93a36743b95538991ae66bb5336d065515c24490604363fb22800f408563ffead4c721c21117810709976aee1dab02e7a38734193afe632c4054a4474446714f5ec8021063ed8f6cd019dd1f60155ac4c8638bc9d9ea86982222f83b45e5db49a748fbaef97a3284b647b9018eef20606e21668df5c3cdc5cd5ffde0c77761f79296b85d3db4d4d609d79020bf82884abdcb53391a065189aee3caefe17516ccc679315bc632de47426c9bd51c6649bd82b230cf9bc1dc595081171a3526ffde5c0c702a9c870a85b414a841e93d855ce9f0e29acb063b51c3bfc19e4115afc6b59d34aa0f5061c22c4511b5668363f058419a80115a03f7a6eb248b3c0062d58426a0c2aa6410177fa114252e1d01b6e18662399f9f99fd408761ef4ced9e77b39fd99b6b211af2a10665f23d437dc067039f8cb94d3e5e6c39bdd8ed43e3ca7ed6f9f49525e962a3f920cfb5be764a566f3092c3db5ec6f0c36cb5f387666602bdeaa3e39e645e1e2ae11766cc1abd310ae7586276b0bfe54e96fdfca0b9f30dd202f53f85d5f845249584d5b61e68241ea03869c125308f6efef5d38a59a41bb2ff3d2ed00ee9e3e3cb76ab186e91b90bb3e1d3033a64ceb0be1e66aec19fab46e7e83f203a787615fdb4234574530477127b042054e28b41b3581d00ed36c0e3a6eacba511ad09c1ec04fd4048b117db90667bdce40634322cb2a23cad03a880d89f0348293b3ac5a68ea83603c29731c381eb091a7abb157b1e4e99affb373464640db7639f26d2cc1fa3c1017b75c199858e62445c3d61ced192a254587d0d56e0cd962042a754d8106f60f3a0178a9a1f7e5c0440c3d56e01b561f9a0df8085bd4ecf9e40fd24ee2c3b0373d5f884d3ff343ea493fe0090f191986f68523f2f5c6d67cf2f07af7ee3e15557bd9bfa5d42d4dd77e2b2718a42441fd9dc29b3372199574f5ce3cc3b4e1dcc0ff72700560cf6c2b04f9c8ec36573aa391900bdde4d6fc9e556ea56b528181d003d1fc1f9e97fe4798431c1457360ac1299bbfd7e620867e878732683a8611e640fbd0e46da357ac5f48a26dfb0d6e75bcc1a06859dd8f07fbf0cfa0568256be80a0f77a7f2cf17d3b86137c5b6e7d69182eb4685e2e29949a4c8fa7536571df2872afa6c76162e8e1a006340dd01ce068473efcef402ed68d04a0f300ad1ff1f95e65e08714452628e43b3ee81c15e49cf60a018e46aa488fdd12c3034caf19a2d56f62046dfe53afe130508631bb88a063050cec1aa1d072edf9b2a5ffadc4a1846a85b8551c1460dd977e93557265cf06ce34ff8ab6e787af38760139b7f0bb0e1f617a1e0752e32dbd9e67dc0afca151c1cc9977f66aa4999dbdea936bb567b59aaf7dfb101b913a8a1fbbb119f5f6ba218b61ab1b39f79c56b896fc2e58495208dbdee6029b21efab3b328c828cba7fed6fca4b23b18fda8e7b23d39255a926efcb38b15ef41f32928e5c901690bcf5aa5d582a6f981100891001782659ee23f60914bfb6b0e6c13e9478afbdd526ecad1ccd4fd15806e630d98869af16cc4eaf8b3303ed76782b2b147828822a820740f3bbeaa9dcb401492ca53c262636396f66fd48e868bd3012a22716ebb4abd39fb395d2c7e4861f14bcad170a59094ec4efffdc211514003543f7a53294162c5fdaed5edaf7725a1422e704f21f9929907155fd4640f2547398a3980a3d3e58f7e3a528c227217ea78e84244b39bd8b8166097ea28540a9e18ca94b15e5ebe8ae677cb4258b9ed40ee2940ec48bfca6399f17981fb44c5207be2f88dd42c8cf0ffd0391114a0c285b14b57cca2f4c1c270bf52eca32650fcda89dc7f9a0be787b8ce37a34fb04ec9e54e4ba700bc28e389dd12d8a4755aa3663e3de7577f80a29984fbac19bcef9f2cf9f27a732481ca5a2ef9c8c2b0075039bd8f49df55636122803dad5a6fe2d1db4d59cabb1e858865acabfd6cc7023f312bd68844213bd16eeeb017e8d6f9f6e5a9277e0e74406afffee33f7d6455aa992c43430eaba8ffdd94032679b7d78b987c44ac4a9c1265c06b0f7d7afd2d58693dba62a340ff348afed4cabd456ea98879723c0044a80de991f4e15a1454d90244f375eb177a62a6cc39f83d9ff3f75d58796a6cb1f8ac1cd1044cbf2d2e05f87058a3e1fde48930edaf0b917c414dadfc328717768bae5f93fc7d8fcbde292e8778423dc77f736f847600e6e218369a5b2257c6aae20ce1ca78837a39d4260a87bc5e6fa2aa40b0227ceb134ae55a198b4a850032f08ab56684162b92f959022444b4dc672498c5dcae34d13fa8985e0c4609009452cf79071871ae5287b3e9bf35f5021879f24b3b91a48190507ab90b816f6412dc66b06409901cb9d4dc3229b92e03b8a4e0cd670eecac765f2220788673f1367614eb8cc741d163e3c9539a5af14c39ba7e141a44c1062eec8fd35f1bf9a316b9e9efd1b8a97855d5cb997e81a8461dcc6c53dd1608a1355642f49805ef8b2c3492ada6914c508632262f2b15d5e3ecb2c1fdb6ae6a35398d3c694e656c64fe4412ba251b58bafa6388946eb12344d3841e1beb2588001f9e498e140f1e91c7619e46735369f0b370cc039332191345caa3c649df8801aa406aa270a93f322c3376317c8af9fdb19c4f7c6169675b6bc4714542a1e1d9510a1a0a57441bb2b489c7f588f3c11632ad99975abc22dfee04af09b3dac8b35a6a3737fa742bbd2a50265d1fefad91ba835655e5202db32f07c472b6436e100fa61da35999c4d05da64af569d6af054731102e1688582cd8f4363ce8afd159cf6c65a31d64d2e9b6ee709672ddb851d36bd2a6dd4b4a987cf522833f474c20697ca2941ffa1910f87d2cd3c22ce238530ed6282d8f35de4a7965957ae75028e7a5b48d4ec4b02f28fe891173e92fe38c308153fa3e095529dcb200c8c501b82e81686e6589584cc6f77efadb70b698022dbacce60097173f611fe21bdd45198cdcf0a015ddc60dacff7dc3eb0d445711f37d624950672179f9f69c18e212b2a38824d15028608411fdc8f234d5f236988be92649a227d05b73f59269b492428908c4ef763ec598ff6f4194a40df260d4bc4440ea931beeba771e38cd9899587213c085006069b2448710f3b2be7c4afb1fbedf4830f7032b6a2334da825a713b4fd396f2088ed4ca3fe5f964bef65f57164557ccda7fc291f72f68f86047726c33b2e3c8deb8a698e2fd4d9713127644b8da762ede9ac084e34f69a604c4aaf614609fcdbd1074f5fcb38a859650f5b878e6a91898dd057a955f1a362ed6e105fe5d0b6b24efd3b503a47296b9944cd990f89388f4737774bccb80dbf6fa61579ddc64014bfcc5efec6d5e27035bdf40fd0ccc16d53a96e45bd16996d5585d1604a073c1c660a616f92be25cfb18c476fed3a4cf4e8bb259a976e8f53bcdd6656d27686566dc06688bed5104f7941cea53249dcb6d4bf8fb136b381e7ddcc49a152cc8aab3c6680055017b4e0fc0b38a3ff9e4ed64ad1d71cd4013bdc293fb3013c1c32d5e9123ba54fe9640bcd2a5cdc8dc1270b873eadc9b04acf9d5fd5fa88f729e37cb3c8f73b5b0df05fdadd7d82fe86142b4c8ab2ce06580b3b33fd2075cb8ab28c8e1d7e505088084101dc9c8a0053f837c2ca1255f8297e6f3d51a9d1cd8714cd5e06605ae165443c29733f0b0bf9df271845b82285edc5e1f526931971ef56e687e2565274cda45ef77337d838744fb2bb4c7be3cd8ea68054ac9f278c71a072be44c537c7892ab38d9c05147087c3282288e4749adefa36a5d422609e4845a9994ca5fbb8d52281bcfbd415ba5c29b703937ce2fb7aff3b2dc5e90827e47275d5d534b9703d43ecfffad92512f6ffa4046241958619ff950544cc9f6ac8ccbad834afbb54131dd91dc8bb07a2d1d2153a98744c4aa76490b03e8ae2d5db1cb7cb0f81f9b5474dd2daa0d273ca9a36882867b10626a6ed7405dd64cd3cd21242cf41673a8e9907d0c680601109d3cb82332c905f9255b977fa388efdf1380232b81c0722a1f1f061d31ab5e0178565dfd04adf89d032eddc129f1e94d26fb8b35b86e45c9291d04a8310593aca9008f7e6e90534a582017757045f1fc7ee2253983c492e0424169cc4bdc8499ee7a4cf91b64fc2d9e3dd0cdb906637023ec3489800c18e9c81e6329062ce704f140606c24b8a0b0cfdb834dfad539ba37a674fda333f96fdf505629071584290e69099c7b977fc285ee336f45202573f06e0d4e657db77a297b50b3daba56b6ac2bdaf2cd19d591c567825a3c6425233c24be48f58b25d363aacfa58c041b89bfbf666ccade64d7902c8f4aa714966de4db62ca49bd08178c86647e13c1647b045e1514308aba8fbd5cb26ee154e9fa6438ae93133a13bde89bfdece19ede0fa11692b015583fae52ee3cbba45120542afb7cb5807c44afd8a88585a1b09471b5000af9ff7fa35099119343853b8f76962d189fdfa22374e5be571f2b37e7e5831fdb7dfc3e93b928da20e38f91faf206b2f855fa09a8b9ade454c7d6d2b4dc617ac6dabdf6fc8683bd25c63e64b1bad7807cc3211cb2750705f8b0df6dbd499a5bdebed6f94ef22641de66324ead409769a7db924526449b4bca01fc1037bbd3b45108ec00ce8d93eb88f0033caed0fe02d80ebb21235737596c5aa589d048e8dd338456f2aad027f48bf9938a85c51338415724356b4eae2116f940b9dcc6413d053e8398df6dbcc73712fc99e2806cc82d6a1eaf42236d0f8ff5c7e1c7c7a02b12e8f1b4193b49b4c4698198a9530e90df2f705dae902a606ff37f4ec119d01570cea543765105e3d511acd1715ce4484ce0ffd61c872da639205be36683de5c36389bb3ae277058859824b03ff124f630b12ddfa1c25aa44c3f3b7c4bf060357546b2aac30d7b38c007eb8e85c7b0da545e0003fe6f0e3c0be8790dcfe1812215f4e5d599f3f0493f7df4808d210e0b13fbbf74b1e3eed8aad36d9c3913fb3f371675c8e0bccf69035b889cd954dba527f81828b37f8073357fe9aaab04e4cda72ae06e68b51e855d305b4259f996022624707524053f5b553339058b7c4600c123d3788278a3654d32128c8d4ce7011d5ce66352f742b3209b639cbb7967fff48737fa8744bc0bcb506078a0f9e744b8fe78a9a6889e9f6527689b6b91fc0c30999fa3b5e02610eba40d67165163677a74398a3f4f9b639e0c7789d32524572e06d806bfd38c8189f3805986209c9e9366aa29a73056e8cdc4f88d38196f518a56fa8dd2a755ed655748422f7cb9e1cda6bfe858ee5414140a342ce3eff57d17142936c74383cb370ec7fcdeed74d6db785855ff466f2b10faa0f0bea2a6dbcd9da1730d6ff970cb839651edc489d1df1d2ffb1531e66b5364d60cd07288c4ae9889cf4d5adaa0110af74b41b2f9bb15cc1c52e5e6407edae12594d33b8ade11713230beff17738d84d7e4d29416a4ec60d7990c93de6f718946a187203040173f64610c965bd3fd990eae30efc6c9867d3d40072b82ddd2a9ef0134bdd20beeb801036b8d61d96495ab1069ff848270052b495cc422d235c8bbebb842102105ff861ebf459c98dc9df917219edcdd9fd1cc1caf33a31def957fedc3cad5d366ac2b3079857afeedcf6be00b3daea26af5617f5411dac34fbed15674b9eba46e28f62f18508d325e62343c569acf753062291e2b43ef0b98826f652c444ccab850eb1ed4d7be0a61303fb90c9df0b4ff2148fac3fd071d81049e0042c7850f43048286ebb4e9b89c150a63b9f15f1d4c477e12bdc5e58f747d4840209d29df5a6a3250369a2dbbd97d6913f85f391f35c870b0385bf95bed0b28266c9bc0bbe75a39bf8fcbefe3419df490ec3b4db5103b59e30ec243d404785e7285bb429a478c91eed0f008fddf50e4df89ce6bc821b9aed5db0d306a32beaedbf7dacf13dc85d7a317c83c4b886183c04b5c71b19e05706df40839a39a4359fdddaa32001bb27b5a154e91644c70ec49be4df903220e4fe7e75d79fb67a3197be3e13bbd7f267e1fa70df4856b6fc03d30e96f597fa55c0f85e39a415809a158f8126df273a4c63b3a87fc66c169a9a74724a945937687d0137bb13b7f9d99996f6242aea96c9ccb66b90103c04dc9feede53c40774e715eb58a7df3d226194941770738b88e709d167fa46530ee877cf774943e290f98603e94b30a31449eb36a21131bf1c9c1316a5aef4f453cc86e77a7d912120042afb9fbe5489bb6903a72b860e86d9eb78769180e0f0a2404d3bf49f791f8e00fcb298db2679cbf84cf518784ef164bd3fb38d5ca223f8755365c46abbf29044e386b5da499a7a8d7ad76c1d2758774b25a90a2e1d1e82cccabc68017c41ecfb8b5f70a1a3949af53999855290bc84eff3400784a5721fe672e685d9ed143c46e6ccd065c4e66d0612977c0c5fdda41a7321311740a0e52485c935e41408d9ed9be029ed5dd19c5b945a81af1d8721b90c37756de26151b34c1bbe5d93dcf3c447e9a3330859094f3ca8d6967788a40d3e800d90e626126230904cce606a2b5458e94300b68a42335f14d1b52445a1484a5b6501d3ab910982405acdf79a96fd8f4d68146392e01897fda5e04ca40f7e9474e702024a7aae31c87a94651cf75a1e33198beec06653715fd84cac4ece83287681f96baacdd2aa20d2ebf7bd0685c5af1756673f974434dcac10bde6d18a8498771ffcd4fae2cfa00b6c8a1e19a67a49301dbac6e37d5c7aef8cb8bf0b74c0ad7f21233ab05c4e8a7b036b28f2f27d24476fe01c69bffb5de358f6dcf6bfa777665292b059aa06eb3607840a6ca3f8b7621de6fa1e75c028e638bd20efcb76b15081a12979f4b8481edcd548dda2e4c7dcf6b5dd38f689d73f35ab19be9100a594f4f3cb0f399730bbbc4ec1fc33e2b0a1265790b139f670d3fb25568a416efbc9babd5bd36a0e58ab6bdfdf398a1627f8bbbbf183bbabfd42f49063279df666300426cc55e30f487b26fe6cf515c0b564c8f158ffdc1732a9755078dbd15340cad3e5cb13431922172c371b27e96b6e1089b1596f9a84b6a52005591d6155fe5ee90efb9008c7ac14e57ec8ef8f6eb16e3b55dd19c27f0f26f28731c4c117a8a4826fc2abc1007291d648758293cffc4de42b1f491d52cbecfc0f2000cb8675064c6cb8e2c7d1d3d7c35711a37fde7e17f7215fe9f0f007fe30aec46002bf681276b9e10a62d38552183d7e735a8a97806d1da06152d364d0094a7b3e96a4f552487ed5038bf86ac1dd036d6c4e11dd4a1f8006fab855a768aba1b8bd8817a8aa9223414e8be40e2d8d8a57687699278649489e918df75c6d5cc1ad201ac91b3153adb48ad3b610edad20309296a67fa799f03904d332ef897c989e3a2475f1f350554967e29479d03d5fe3aa66bce28245f880e67f18036b7febe239e313025066066b64df19bbbcd4949a166d323bef37eff8b83d68c0bab9829a129a8f8b7437468a435560715de37f3bf01c61486332170aee3b528de8ee521e57827b0e1ff90412fdf9c9c9d05c863ffed8f8b92d1b0b323bb03616860ec203d6e24ea1fa8758820b1422f9122c2f0769c6cf031ec8e1de7149b0ebba5d3a141432f2a6c6a09902096af08a1deb82bb295ed295bd76857a34d0f45a8312639b04d93b9fee7cb5c915f7be24688488652d273531878fd33c3e5dc0b134c8d3c09944f6b937a0deb2477cca175a444345545ad04067a82269ea4d12fcd1fb6d938eeefbf43945308e2a43cf5ff264244a58349d7f749a35ea8db1773c7b6f608b08d80406d11f382b5054dd152a24b0356a9e04cc20665d40038c60c0d501aa2ce5c6b032bdd42dcd5a32225e180e99840a0c5ef01b15d8b3102b98ada6bc7b410587b85dff96f033a07a16cab175e8f4089118805a3892c21980353af93379db6d3aacc4c4b67f7438ba0ca4ed29d1ac08b9cbca7e496db77954bc577e5e1c9033bca9ee7767cbc03f7b39c404df340b3d08e495ede62bcb08d7b6d2047ef23364d517a0402c7611fb9d91292991f0c453bf1534bf9053d389e0dfeb41e4f33e9d7dfa881a1f157212cedf794a9cc75d00a53bc4e412caab6baa55ce2a017d400cf560971202a0744c2c90cf10a1d840844d7945022589df58380691fa784ef412c237673b411a37068ccedc6e73c43e2c38268d23587d57b3b606dbb84237e5905e0448c142b63224058b913456ba89dd9195b87adac4acd9c7c8e0735082fe9a7af53fc210ba846b29b0c043aa60c9a8311a4db1036e1c7e7666981cb1c621c37a3535037e5cd96cb7dfbe6921534d765973f83fdf742f53a2997979ed0e0967b47ea3ac3550d06b60a6238386287c3369371cb7772565d7cbe58180da901d9f10c31e3b4717c9138c7ed063470ac0d4cb922f0bf649e8f3e2e1f6dc430ea72d2181d2a030f64c07c8f9bb2874383f409c8303d83d85250e45f94421673afcc02f8888b9b24164225eb589702271c7f1ec521b9b08f16fe4967d0545dfd8c0661cdfa57ef43bffebe23a153993321eb1f931681493bc882bb5640435bcb5ba528691878d6b28842acbd75c3d365e0821b28b844d3461b85a75b402acd819c5680b200c9b388f7993e204077c165e6cb25f598b89ceb8b5ea47f7670d5cd05b1fb00a9fa123b593dc343f594d84a933376e02fc18f5578f3a3852cc16bade36250408985d7c74215e40f63b0c5c24c28edfed1b91ee48a93eb4112f1f56ad6b85f76e3b69c9ba335928807bbe5e1661f003abc3517eba6022c0413b5c56de6d2dd9bfca239cbf460ec01016849798c53b9ed47262b166a9ff3114349ee556ccd130ed563eeb8951ac5a3e4a1e8367802b04de7f50b5b472722c04d0f7e69d0ddb612ed66afc3bba5202f5121ebbce1f0ce3f99f73b52575c58f10d16ff74fb4ae82e114182b0fc5900e7597f3817a9efe12fa3b92fe18d0de36f61ab97b108fada2e675ae2f0650a62409227115316ed0044e7c6180b0962cacd219c88df34220aafe0b436e5d8b8016665740e9362dcefb842e8d77dc491024d8403fccc8d074bbf5ddbb9bff66e12158a7debea555134e62c8aa0a6bab7eb3f69cc773ac376c3c31eeab11a14b56be1050030696aa1d2bf04fccd6ec2d4fa4d84c596492335748b2c850a35020885079456210debd1676c2e78266b336897817c7b920ae5c03432735414c4b92a3137ac4be696ffe7e620bae320b15c174da55e9a6667e966124dab9b584011deac4944575cb53e856d0a812751d85b7c81cc46d683499ad039a1906108e8bba78b5b6e2ae4eb1604f0db42ef68d434ed09fb709c9214698ccfa3cb91001b5c2ec5e37f988f879cca203933c96d459a420faada3bd4224f06b486543bccc81e3ee222075781c6a1a1a638f0c05116c2ee95ac9e5042d42ab22d022744328e09760c5064784c0e5200419420aa6a2dab448bd2f0404ac1a83333b40e7e43571281b0648be52cc9479f3d43595c5e0ec91013de4b41d3fb595f56e8ab3bc54988c30fa6d13aebd8126779a159b983aee958278f9970ab2b23b7fe2f6170a4febc299b5b52e5b740ba2007bb8065cea320a3e8a62688edad78a5760fd7268246734e0f073da0c36eec71fa2952dae4ea2763533ca88be1ad8317594a0f5500dfe13c1b55b910028702366f60f4a1cb78141eac343a047a21676e284f2054a492d284a87e9010f399fffe58ef3a97612f8973fa0eccc0d3799fecce47dd427b2e8d37d01ca0617bb66fa5325dbc33eb15699066ea87fe583c2f984f8dd1f93ae7aba56e01eaa58674d9fb40030d4c5b82e0694e3d0bdde6f54180f6eb09f2d9ed9b48fee06a9f723ac0db3127dc8e5e67ce9567a5d757e93a38acb753875fff3fe0e6f22cffa12a3eba43f61fc8fd273164fea5f2453b9a7de5055aaed81ad91e131f3ab5d9698391a7861bda33416f683e3c31113352856a2d68b1e2aba71b57ebe45e02819fe73af54585beeb9a71ae39ff8a0fe43cd2f4861aaf23e5c29e00ec8a93ae703bf353ca0eb069796536368aebd9d9e9b57cd2dca69a6ce0d1c6dce87c0254543b3782a276d92a688cf700b405575d39c0858acd84f59dd1fddfee518410bdb16f2e60e526b66fd139748cf9a7b5cdea72092988538d50a3c0cc7292df80b88024b9b5843ed825800dc0947bc46553e5be93902ea1d4cacdb30b1446d18f03c66e404cc888cd0148731f7bec7825595281e12c4a25f066e1d862ce327cd0ccdb63d68daf9cf3b00accc6ed1b6eeadba5582b90f8938798cfd539fa1d6e16841f5189f78536009048521faacbe1b426a80f036645a87d23e97541ee5644fb07d89b32dc3030a485f627f39fb39b37c63bc1bbf1966321a22062e7a439d1f6065c40ac26ba43f428a77f21fdcc49c0d6e83e24afe8f7e017c81ff8fe6fac83ba8550e7335270ebbf0398c3969f20184820efd797cbd01a701de34126d93d414975db08d429a4b176edf88d0261ff646d21267ce2603dcca1460490e41f6d6299ad25b8ce7d8c3251bef301427ce82a9e282fcf5e68d3a783c07ac1da9b32c8152723468b39127bfac2fe91ac632798aa4c87ad7c0de68f168a9172fa0b04d68722ec6a20c94b70d8e57a9bda43da61a4e62b0d7bc54746e9e86f9ff68c21874afc9459fab21d5d37c62c9c744b1f4027cfe8c6c3d6d1dddbe65c2f91ed3322ea196f41d9612acfbfe12bdadbcdf16f5d17f2f71613f40142c3318a0106480f31d2dcb25a0777271bfac7d78a0fef196d30c091897f407f207103a8df7e7b8fd3150e7baf5637b816054c348d53d27cc758333cfd58c0c8558c49e69feff989d16ad33fe2f4232d0a82e30bb39940b0e2c02671c603d1f2b1ec5911bea9bf96115bf99ae9594f9eb9a54796bed4a6920e34c6aafb393d0f22d33fbe577e659311e7ff8db73af4cf63bf07e1173b96ef1122e328ab7963dea8272e077bd876d67841ed0114d5b130a9728b2354d90c90e014e747d244c0efd6d56b353029418c9acc40d9246528647daabf1ba98f348488dee79ae0f1edae8d765e0722f0214447a2abbff4c07303ece5100a1e5efb8311eead9f5ab42d4fcde36d5de0eb9e2774ebe407f1f6ece8c532c646c3fb48620eb8eca309227027bb82d184462b80bafad9836202ab609cb8fb9033c47b272eca2dc5a6e6632f52c3b60523115bc84f0ee89105b3b3b0c0ba95a629b06a4212a97338a8c970468ed4a111617c1dd34150b39e77520cd6d8befe80e639ee164ede169ab6b0846e367431ac581eee40e98a964d62cb6d9545b8d703a2678785ab5da208f1a28a7f6dee486ad837db15b19939e93e9f6edb41e709cf4880c5382910c329ee194512763389e29a9fe8ab806785ab304d05e5e5548ab1d0acae7e7be3301028b0702dd30f70e01c3544de1ce4ec064d399c7f86bd110a6f9ab6506b5f3267564a80a2504eea736ea3d35be60ad114b493f200117c966f0f74031485668bded2ac68baab94f0d06967e1bcea613b5060041b098c8f953d1680e5adc1861a101ed2346a03d7011cb7a6ec26572e2196da2c580920655a8fd1a46eacb437335e833567f484e8c300e102e381da58daeb298dff70c9b26c266366ac61f7a69a5b9798e66bd44814603972be91e7c04794d4bad8847fa5af2cef6b4d803a05d9dd34452abe96a60884bd9a3ed7d31a7f7e9a4086d6e790fafbbe05ff7ec8e1a4abc60daf82ac6a92e2ae2c8e2f9272ab7111c0583d0362dedbec012ed713c5cc4d63451f6aee9aae8187967873783a93fba9a1519e55a0d1ff4f6f9fa0bacc85a3cd2472871a14fdc28ae60a6c966fa9d4d091a14acdf1428f65bbff7663bb5d6ce5c6822881228e2321fd3b2a60c5814d6600a71d7b401ceab89fa74430bb647bf8b41092e1c666fd11974e2135c08f83dd8aa6e23cbab79fc306deeeb2da852d453f5b39791ba21ac1102772d95bed83c6ba5cdcbcae713efc145b516fd317e8167dcb9999f5f35535e7a094152bc35cca8ab945b1b6e5aad69c2cd59faa622ccb3e91b1559ee19d3aff4844970dc944bb9d53e77222309b1917fa569724a577b1060b98c99dd205013cb75841331128ec6042246a94e6c36509fe8c56ce77a98d2413e1ee3881c3a0609d51eba6e681fea882210c022b0ca352744d8a288dfee220aacb685c2a6d95dff6eafc53a48da16471e17effcc42c96090ae8d5b913dcedcb7d10f1d9cffb494e9c19005bb8aefc3134a3edc74a7bb158bfb2e36c4e92a76534f23159ee0fd34b90222bc3074c65a83c36b70a354ef9aee867d20e7908e9e52f9c6dcb0482a1edca998e80ececde9f8526fab23dd53133ad34679b4389994e1679549d9c3b8f496c9dd5b05a21d536c2622634aa027d05f50e25a5b93ff641531d051b0e723e0fd12b1a9f34eff2a47d863c18bcc90a81cce44bb2906a309702a43559ec4f45f17febb7a364fff816379711e93daf0d3e8b8bab084fad6b9bb8bc15d870cffd28082cf4e61d6bf0746c2a1502dd694ed1ada6bc511be3cc13d950a349411ca4d9d587620658ee8e5619422e1abea698972cb359a7868ea6f147fa175e951311ac06b27b005a3651fd813f5fe3d85a525c4a597c79893b115c592236c41f42130c6f2a23120193741fcc810376960ae6b627cc0c02209feb1eabd52c38c83f330e5a49820d33ace60c68d7afccf8d3cd59402034afc22806a2081ddf0274dd05d18cae59f8091f84e4940a4cd90072836d17c4e0cf6800b6cd628ac0bef65826b32774f657d60aa393f3a96ec339458ceb331bef25e5189c9a105303f5150f72561eab0e8164036b94d0c297c011f37501901693025554f0638130f09126e9beb3b7b33dd12643310e96cce234845f67b861f06c6db6c494f0b9bb9137adede32c70d5988c192be4c48c3ab1fdbee40aae817d413435f9207f725861a269a915fdefd125b7656c4efd37904ea200764ca32c6e8975fbc0993121cb7ea7771791c1f7410faa06ade0747513f6823bc275bf25fa74546da32cd3162001c3ded2f3aafebcb54c380ccd68d6c90c48ddc6e438469af454d1f6c527ecdc144fdb0f8a98a8402a9909bcfa493690a4979d6ed4aaa1c9fa490e9f20051eb6dc68605d250cbf9cfc99ac6c1039b9f6782691ebe9a912b7b6b45ca10ad9c2cf16a87a1120c59a774ea287130a9de767b4439fd5c931c4cc1915a2e16178550a51509e4f069be9738a9bf4778589347b5ef971a023770265a3b1cfadc16ac8b2dcc0fa5b83ac695c56268672d86560786b9f05a5bebd32bc90d5a9dcf2ff09808501e68afb425aa0908d97ad321f5d0d87b265152dc7c80b09e5637c6328ee3870b9bf6b02796b93032164e40a329c65c0f9573be4b3bd6bc03fae2e5e0bcf15a14f8f42681b15f12188e3dd32b8c8a5eb0020af69daa45e92eedc847305d3dfa363be55c030c2f8b72311a7ca0f33c02a304e30abba0d98831c005d0cd22b512bbe218132ebc8f77871e5fd3e9d66283d68abcd36d8e968f3aedf97ff17e736e7de4daee0daa462e2c9e404cdc6d3879fc1d79d94f857aec693605f56f1801ae56e2b3d3589cde1c9c4904e7844e8bd7b794d885ac082d35642c30af095ac4f77b144f34d60773a380ff8e6cb81d71b2abac3d405cd2ce4cc755c2c500a49de7b9aba7ab186956f164e58dcdba3a403dca57339424f9c1f8684890e7780997fb9e1b4110ae0accb0055e045154bbbd6542d59b1b931352564780b2e8f324f8d3493378780d90576d8542307da92285a3b19c0e6898076999f3105f9f41444bcc5600807a3465b83fb1c648dc2e4db12ec6cecf8b8af72a76f181e676fde1d1e1aa13dd297f0c333285865190609510c65104b000d2d627a2f77cfd9d0fa59ef6f03d6833f7b9e63ab2a6105c0332944c13e834f8e503b232bcbd82b63c830397ac7934ce382478a83a60641ee11d8092349e42600ac96ad2891b66adc349a77a469b8c4720120c0b06566101a899077ab9a4b43afc9672dcaa786f5b540ed05dbfc140b281c714f08ec591e5e7158f6f9fe13ffe332cf26cc71088e160583e98aaf57ec0c33db11302f162d1aba68064936d35697a2be709ebfaaef2188d2f76e29fa35cb0e1885a04f3dac354e80687a7fdd1fc1b7501d9c378f92b97f2eea16eb54192c20adde855219123dcba160dbf2cb4d039005ed8c3c9ab3d69189c6fe29c8687d59193114dae66e0ae74498b7f47b64808d6dc5ab5e6ee2d6124dc7770150a0df3e7bb5b4ad2279f8b955d32785d7f8aa619724705c488306eabcd6b619bfd8905d32ee7e1a0da700f007acf9244a614fcd186d3cc3de2eefa82767dab977fb9ea4e8791fb25987af1f9b5f5a5e65175cd32c44066b0721f36108b425d0717530d3393fad8e99770de828498c27e0c4f292dffc835779cbaea02177a63002d92bc640d30828621fb6f9163ca8cf81cdbc26a8749eb3741861685c4d1aeeeac76be0de5239b5caafaded98bd34dcbbbbde3924bf64b306e650401482a64d01f0bac9fd038e34cd42bc0c245eb702398be6106733afc4c35cb08b9e4cb52fa7020019259378b0642b17e6695ac37c2e36881211906ad7e78f3fcaf8034230412bd4205b2e0d3e645e084beac5d29d4acf13323dae965822830f29c81740aa6d1e48c30323450d23d3528b39fe9f4edbdf6589b7d171dd9c7ab7b562b2ca3bd4f77330af9dceb117949d9c64be7c531f00e8261aac1f89fa5f72daed10a55f6b6a547039a81e38dfa63d07da0b1d598433c04eaacd9a096a5bab1d814ea9d52a2f852576ee0c02a9a5c6c056f6c7b3fb4574885560996b2c61aaccea4a24b534468779ea7abbbcdc716449f83a188954d98a1c93ed8e40ae117aba3a8ead6af9387b2858b6a6b1b5c1211ac0fe5e24c7297d744ee9a59381b97d22c571cbfba8c08c79355a69520810f9e8632a3af5a51e67f88aee96204226ea0b49398b35c21fe7c1e10b1f160a48e4064a024d2bc55e904f61b50a44df81ebf26c399385d1c075713e0cb90a7d29578dfc7b315eee5964949e49aebb51e4101041b3ddda0fc1073566d21532f64e155d1329d3b6abcce7e51ec60cca5147604f8af1eae7981703717d5a15e8b47a03d3751c3ca60c15c89929f44bf08965d50706bd63698a40925481d03adefcc145383c99638a0ca4872a986f545e0865e7923bcbde59df878def6d8043419bcf3594e06bd918006f1380ad2a93000e24690ea72925f9c273ffc370390aa53d5af3c9ba2d8c4ef2cc81e181680c345860353e3ff8ae22c8556e06dc9b12ae3124e6117556231959369185fc0775a6038fbfc2a51a99487d8d0ce004710d10de0fafe6946cb39197ae5892c97782123b7f7ff014f0a35c286e08387eeb6ecc5ba4629d64604f03b1e286c1d92eb5866496046950927125348c066612d8cdddee64a3266d736d791ec326730981a4ba7922dcf6159dee3f677c116ade8b823070c8c97f799b6f2ed049267d8c52830450a0cbdbdb13080e8d6ad738d6726e8f2b3f82e1008a345628baaedc343d27d6e7cdc530032cab6798d359bd5002f39c730945c5a5df935f0ea4091fb89790179b16fbc6eba333a18634bd6cab482ea535d68752122d592fe9ebbd118c026ed1381b904b60017043342731633cd96a79ab450f87ce93d94aed12a8317f4f8fce087220ae901a63a7d705b77bc4abfb1df9f0cedc418b8a5d7d6658fbe0c731170eb6f6d5f81e02b859422b8dc40ab23fb6f431fe8791436dcb1e9af274f377f57f453fd7780b42cb93a29d1bfc42da6f6f8c5908ec110504e8e2d66134925642d1584a9cd257de35805e6f96b4aa71391e08b8d5eb7c1415584aea98cc264a3d612c64b84ce1945de5f2f7e37cbab18185165740f178a4404a39f58053b579955424ca378fa30535dd904558161ebd34d64af042c5ac09a93fbffce5651958ea88f212dec20c10dc94434d93b6b89c8de85d9920c8094c46c6bb91222b2e7ca33ad61bc015d45508f2b228c5946e379f44a5cea85664344ba0e7cb15f005b5f62eb0aaf0a799dda7cfa168db841e021045076bf9fd103578437005d24521d8eacc2539048f6ad9a732daa095bfd27c8efc1b92911304ba31a0f9eca2d08e26e7fc04b2c53fb2996f635b4bd26966491771783fcb7d797ad4c0b54ab824d4550f1fedfea0278bde724129fa549edb6182542c930ddf40c9030248d30a00ff1a258c0a2968b64e9a0aa221fde601b181cc4ce19f540208145eb614159ae59ea008ff36707087520ea5c9c3a5d3a5b1bebb180ef76fe238431f6c1203a8af0d865a2618d10f4d893cae54ea554db123447e120ae94d3a91c042b449c1747dcaa5d2eb748efef21b84b8e52aacb0548a56446be9a36892f70b74a3fdcbe08aeea375c55d6c9561982b13997d5995f4dc44c7eb6128daf27ccc4c2f0b77f03e8f91fa34de7e5353612504b4401bb7305444b72fa550d46c36d44deb6f8e321fb6be060330fdacbdc442c271d66ffa0a32d2e05353c0d3cecf0b298ff5949b6864ef47b720bdcde7c12ad67bb74da3f6607aa3056c4e33ce1e03e28489b31a9e8382d1a57aabbbc14d5a24caa9dddb3446048a428a4d09e455d8e71b9076ed08eeb4a0df3414ace7ed98947383c388f8c3e0d9f8acd0738dc844b583d350ba8364513d5e4e937825d26a65ffc2c547c32b200bbb609c3848ededb6e16b0619761d4326a219af28a1464a58b057e4a451aa156f6f887635f7d2c27531f87e1eafb46cb9feb2e7d82dd2b2ec62b9187f942a052828d5715baa592b208c875863c4e252b767da9c9b54b27c075d2b0edfa21ccfdb06b47bf69f8ad8b2012ac82bf828ea2eae4b581e196873f1e20220a009110f6094388c0875211f56c3955e0344f1c35bfb24858d14577edbcfcfe935abbd0a0a1e61180da155038ad5b3f26cd46f974547dff45df1f46cd7cd4c40e9447da0affc07344a90d90dc23ab337553bbb74437a5bf3b7b5bb001e25402eb6c00dd7c9466a08368202f885a4372c2449c3398c664a6242030e26b3689466d99cbcb48c476c3555750bfdbd2416c037806e8ea2074044ab251bfa5dc12a46612c93ab108da89810527685c7f3f28a3888285a706880a7c7b5b3b158013839e5b1c884f627da983e7c29734b8c83a6fbf58ab343f240413cfc4f063345c486d12889fa1c991e5e5a0158b16592785218aadb149baae838f95937d50bc7320005350d8b64916bf4d04a6caeeae1da9d288e6dc144858e9c538025db5ad30e8c73efa926e7822393aeb91d29f1869b9f381514a0388d03c22b2f53e4a043ea6e8fda8cc9e5a651a543774e617c0b0bedac2a01e2fc574da5d805668ae9860f7576fb01a5c4bbac932df473b8e9bef7d9fc63030d41dbd837c6fa13a4edf44cc068309e2e20dad192991b12384f403c4d214278c20d3e08e79a55aa1351ecd2c13f85b83a3ea0bd11e8907b7c34aa9a9f91211071d3149d8753e938b58dfc2f3d2d68312bce5583896a040dc7417186a1adfe32f97dc740c1f38c22e72db455d708c1127228b47ad073de5fa5ee7195c3072f9f421b84969509c11e41ece90ce049d907a3a82414175066d11b1907d71b98985b6f2ede0630244c74780b2df03e63e9fd39ffd3fe0b78341ad4a2359bd1aa2eab4e07fddb446084b775c7cec263d80cb62ff25e6b32bb0846b89ff5b61ee2854e2fc3e83ec615ae34b215b93634bb196863efd200e3b6f1a01c04cd0516f51f344548983c98a996c5a48bbb0efe28597acf12bdf556e0914e1d14733f87323fe8e2cce74641b6cddddf3d241e2cb266f78c017626d81c4c44ac8f3a7e8bac6cfe05ba484ec672cd31ecdad2f8665c64896d686da65e15f3dab948bd45f214326d856cb0af5cd53e093aae79f84d61b8dbad1ae72bb75c03aed8544dd850bd1793d39c37e000b4363626630ee5e1f03e1cd5795afa1912251f9109fd11670e4fa66d1da456562df4f195aee29c0f9ad3cc8057e3a415ad212cc73761af24743177e3ba9301085435e0e215c16ad14dee9081ffb1ab8a85e548f4505f93bf716869453432d9ab5e49f8c7290caa27a69da5d461964c5f7d8ccc6fcf8e021c33e47f0b904b07c718200471cb204d5a6e037c371f8b2578e22e50cb4538be50812bc6065f8cc82430fd9a8e350cbad1d699cc8cdf99f6829ccc6ffebe8b75f4f1c6d1b5110bfabb6f6f8ac90c345b67945d5d4a63abbad30adbf3efd731b61a105d0ee136009c732f05aaafb4a6df734a7db3f1d5341c935c96a5cf4e7e586f967d030da37b146336152daa10be88d520c7d8336d0202539b480de40c3d03725026d82a6430be80cf4ac14835ea027e8387480ce40c74a30e8045a828e430fe80cf418fad25b95f157d5251f2c857511d304e26959fc676bdab8b53507d6b07144b05b0c6269edc6e4604d9b50fafbc06f26f3530d097d3bed0e017a82a5b523a8ea1295914c55252db29183f0258d3f0dbff7cb5f64f8403fc217c798a3c49726ed55bed9987bc58aaafd2c72471dcf18d9a584487b233c070e87dcc4241ca9fb1c9075ca309935c43b49d4c340fd5386c9d6a5eec8e1eddd1000f54b5ff037c4d6e40ce17d4a6d57211eefea3eb8dea61fab9901fe76f1ce76b54a39d26de5c5065c020b7e137166b922e86f3b3a6b4c82921a25309b4627e84523098ec92e35c5f99afa766bd6c23b907c73262d93c844c11c6deb0f6380d03a7add98bd9c5b8cb2b79093491783a8fcb1b2401f9c3c0bcf5478caffaee1d35692f09438065c71c1b40b43814fea31c3cf5cf4a49976f554d10fdda675fe35bbcbbfcbcce63d5e75d81f5d152d33c1b9bd6cb5cb2fb2e35f44d9157e5404e407279cd66cb2329ae8bdc3c7219c217bd374ad3cd5ebb7942e3032692fcd2924a103be1c05890f4d10608b366d288aa2288aa22806b1ffbdffebeb1f90a7101c4ac14171501cc25e4206bb06ec460ad64372e5c5eb2bd8d146e0ac31a5e74bd7bdb9b27b5b868a12084cb80f84a99bc0c76f961012dd13300ef00d537a848f21013ac208041441c410421c20888f010a0084cc0f3ef4c0c30e3ae470e17011e0061baa180afc51c554e08348278c23d5115c65c5135455957363049954458548157502a14c505515cc558222b45147113ad5f5c745023f4223f0038921e4318436aa245584f0834f8c109a203206446680c891aa9a8939e409f8ddc04f22e1d054d5b54785eae33aa3d9dc2aae2faaea124108f6f8d4a834ca20c0a41115a40f6428249292aabaf4b8f228e1e4aabaf0c0a3aaba3cf024130d7652555707525709fed2283f66e38ec7814ada11fb8daab99c7aaa830e6b22354122e1d0585230848e0a7f04462553aa96eafd2b2619d4a364688e781bd263215333e95157a04e2076450e0d54440c817a2cb41043aa8a4dd1535c19c040d51cfe3b324df1509c96a450f59fa49444295551cd9f4c506027a33328a9de514974bf86841a55f927a43aba238cb3009653525255d71a71544f949c9c52a5292412ce1292ad29130d26999abc044652b0542850d489aabae030dde0984ea52936a34a9a79d4ff929489869a4c3537f554539a32430504ae379ac36ebc7881ab0dd672fe89eb8b285575b15155d71a39ff048909268d443339a41294aabad4489dea4d555d69e0d1098714a5aa2e34aaea3ac30c2935557595718d718951fde99b7415ad0a57c5ab025611abf02a641555758551554992f4950b8caababef0a2460a0d1427353334531610aa420914d6870635a890e82b3828988b8baa4231a1c4fd29fa4a9224ec0a1344289124c9e96f70502814268da84061d2888a519512ce92124ec60e882d17e0e4ef2875aa5172b0a989d4a9de602739d8d4846c8d237172deca8b3823ec84c6cac98445ea4b36a6d2631b53a9391c2698684e89e6a6a45025d38c8c111247091968718026aaca0261cc50651143481f9e2c84d4545529077591ac50c1aa8215042b90150c72f34302c088c1118ac0381113037c81e19101062d804155bde0092fc0525515cd06e6d08006ca00030c31baa82a2fbc3831919a615441d1c4e94ba5914c124d260899d29398cc1240c8949e04635a90bab28525bac047089a88230d34a254532480055070fd93207b5c092509dda004a9220803046942844c12236492e43f0d51838569062571ee4f811add28418d6e6ac954a544bab119adc04915881f3515132602f9a1624289d44bf9d1290508066200f19840056c54d54d0845e5283d195fa0fe64e5c4a0008eaafa14ca0a2af532b8e60914c0fc0d14138df5396f45e664caa851ea64449122458a1829d526644056647252a7918c1213a43147090c89f9038eab66a92850f940823eaaaaa650d7151fa8c6168298c00844a1183fa650871f56aa4f1f2da8b0f491aa2a131f33e823884aa63492c1824ba81308068b2fb54ca940c90a238c588289256488c0824743a4f23f4922c5094a2aff131919199992151390c18247a1af823fa40518bca085045c2ca10402644a4f0a41c16498f0ec608f3cf64855312038415585aa089b098b9ab752494d902a4e0448f5a5fc294a3d7d3d5108218410bef7de7befbde79c73ce39e75c6badb5d65a6bddddddddddacb1c61a6bacb1c61a6bacb136e79c73ce39a794524a29a594eeeeeeeeee31c618638c31420821841042f8de7befbdf79e73ce39e79c73adb5d65a6bad7577777733c618638c31d673ce39e79c734a29a594524ae9eeeeeeee1e638c31c61823841042082184efbdf7de7bef39e79c73ce39d75a6badb5d65a77777777b39ed2237cae3514364eaaaa320202554c1da4d323714748dc136a8ae9f454729a30d1fcc8094cc23151818589f44dccbc044ca725557545717a512a652a95706da2aa2e074861a241595155d5d580aabaa8944ca3992952e4d4270ca8aaab8aaabaa898a2aa2a0a5f4a676c644e33a893890695bac179294a4a4e38f79a4a4a4657464ed41f615b51385606854b384b528f42e12f61516f5029d4e84f9f534932a42a8702aaeaaaa9aa4b4a8c1c3844f99289a6aaae28a254d5db98a47c4aa6844304eadfd692933fe1a47032fe54c5279c949511a54e232b53654a28507d5b4920fc49a046174d555d5054d5f5e40907502a4ea4849ca04e4099a1a12129a04821050dd127539c800245a80a25502449a2a4f4564c354fc2c126282413369f7252c544c24ebe34aa52a2337130a04a69943a99ac1219d0cb9ce0d8c2d52a0f1031845555153e5979c0e1419d4039368442d59b54a9964636a3d3458db08c0d4ee9655036a88a858ca949555d03104055a1aaea0ac0058098aaaa9cc04faaa9ba048f4c53e0ff9329759373ba0e78303e37722a0adf47a54c2454ca4492f222ce0daa2a747353932409dda06643d84ea80bb8c8d65360e468c388aa4a922474836a238eaabaa962d828037502a54656b60ea14e7f437a916c8dc3460f159499aaba8c14219d4ef49a4824250638ad61450d16546a742a292328aaea82b95cba48a38caaaaaa9c864cbd412227859242c6a6caa3644429254992541e1eae97cba5aa2a205ae06829038d2767dcc08c2caaaa0c1754321d9950194dca68525558d81764cc20551a996e423164e041c61b230663e8515551da9524499810a16a1325aaa0722ae971090b1326994c3774129dfe26648353c2a6e670f0a8aacae184f143555552ac89d444aa963e556fc934839d24490246012ad40934baa9a119cb8e982f2810c41702f0a20c5e10a1aa649650424626c91557c8a450f5e60aae5e7c192a8b0c63a86c6e156370d145185d20e122072825f86d3ee5c4e6534ea82835a2620b2f54315be4515520fc4ab6a8620b982a92a94ab430a4aa2a102a468b35aa4a063787a3c5142daa0a74329d4e4f223d16a82a63c4e79048385906f54d6471a34d5152d253bc145948a1aab0789a982cae10a28ab140162c70c757a982839231025545341698155841a5e4a24650fc2f71911430a4aaaacf3257a04a38a12b56ae287d4d95de66743a22e7ad549537e881d811554ca43054950586aab2be50c550200f2f50a180120ed41ac48e2861613a5911aa8a62288003058e54a65c7222811169490ee9e646c9a3aa284a0dcafa4302a46a94c415a19329748508352a8db24c13a81308951ad968a1aa2a2b0b554aa3534a4a9224cde13081425552e8f43758aa8d1258aacda3aa65a2391c25b0541b2c65409d4022541589505584e54955a54e26114ac6644a2579d4e9affc098bf57f5a527a2ba6141439350aea1960a2f1982b77a04e205c251173e5559f427d2974fad42864f3372824ee5f89b98203a9e2fc5081402021524f4291fe4a12d25f79522849555952b0a0f084aa42e5d428ff3984caa937285425dd14ad5030a8624e50d0346957922499e20911aa36618209254835553231114a92e447a754e80615fa2a289b9aaa98a6391cd30748249c25261a27ac40a1a2399c4a0a914c261b423d113246d89451e55412e91092953eaa1063e5357926885022630476a2c4fd2988680e47c688e67086b811b00945c006432088aa49555577f820662463442aa8aaea95a04650a44c265c5f0a52c524292f81919492931b9b53932af4c6e6d4a4aaac43ac1ef0a0aa42212954e8400086704802ec800213689007109468c0005cb280298191981214a2860c2012b84a5a30010f5e28010541d4e0c5933880486386760139fef8e3882ce0e0060e3938440f272cb0839a319628824b5e424c86b17260e1a0aaac1bd820067f21060f52c5e0996a0c5e30954c3407b84f40a947d1cade6191e45443aaaa62a9aa0a08948c4583aab266200342aa9aaa4ed4547522e68a19c45cf1e40a2455f5a8d37f951a25261445555983c4a0b26050aa3222d597c00895c231e5d427d515b25c51bdd8bc549e25aceaa56a89b15eaa1aac961b2c1a2c98e6f1aad386c787970b06a6c5d3b1ac8a0017a8ba2a2b0a4f02acea258996eaaa2ccbea5c4d2cebc5ba2cabe32281cbbaac97eb06292ccbc57aa92e6b0650e7727119c2888ce5b92e4f1a96c7b22e2316172eab48d56279aece5b16042ecbba60a65c3b5cd6e5e2b92c295c96e57259515804b0acce05038396ce0b0dd60d966559d7bc0600d3b1e8b05c2ecbba3a21ebf21829f22e2416133056cba7b384f5725d9eee18b92e8b881aa235014f1f89e3aa3cd5d501cbd319c2d372599daae5025612aceaaa6cb0c186caaa2c8f755955b060ae222ceb6ab9ae8e65390b090bc642725dd7e5326309715d9ecb621dd0911c600e60cd00001dae37ac962b07cb6375acea8a72c918b13cd53572a964aeb0cce85440c0c0aa1440c8d5b15c2ccf8b3583d581e3ba6092742cd9b1aecb237321293284d562592fccd33f30eb32e20273599665bd585612ebba84d071b18a5c9ece15ab00178e65758eb08a1cb92c9817eb52c0e5c3e5c3d543a7ea54560d96cb755933786ce878ae1caeebb25c2c4fb68a7cac232d97d562d1e0966559d60ed7025c8e14b92c0b83e4e5b2a2b0602cab73591eab89d5c3352f1eae23d7cbd56275accbbaac24560fd791ebc563755a3a96e556c71ac22a6221b12c2b09cb87cb48e7c582f158976525b12c971b2e01589ecb6af158f33a62752e1fac4ee7ba3c97c79ad765e97019b18a58309ecbb2ac24560f9791978ee581f15896e532160e45c028d141408bd5b18a581e1cac2245921c69c00e3e5806f058d7e572bdbc65c300d8912696755997655947542fd54d454522d615a82855325320e109864c5147124430a522814941c2112a2980084215451d3af8286a2155943a0291230a102628509000812b3c01c2072d3041020f6cd6810312b3d2000247c20c1f07c28815916091215e91c81c51a60c15e80a31f870c415795c461cc103262364581108a0c3082bfc70850c921f640800808a8e0038a0baa2458d4ac6c34565bda0aaa4a0e289980640e1d28591206c90a5c80b0c8c8b11232e2d473a3d1479e9b4740680a4460b9a02c00ce16204467a90d4607990bc300049aa3343c786961f7081812c2e345c2f453c46ccd083144116235320c11e2368d0e27a3bb44cf1582e4abc20cb124f9c88e1e2f218f13c21c20b598ed085d59224e6070568717974e81c714816042021cb0f51ba18400d4d78d161a20518597228420512016020cb9201dcc0a08c74218b12a9224cae58c38697229d195aac78c428430b184f4ce708a78513ec2852840fba80f9c21b345c475a1410f3323d4f7c03fad822002d43185962e4002e56788a78995ba4a00e265be8000d24ba98e13e192306598ee0e40c703143abc13a41961ca216465ea68b11181a3aee8449a707234b5eb47032831498263bd025468a344122052b91822c04f018118db82409c00c2e468ed0023cc003598cc034f1c19291a5a563438be512858b9196245c8a509280233845848069e262e42587199c28f2f1d0142180007838800e37140133048d1407d0c2080ce8c5cde0dc499417249e171d5a92746211241e216414f052e4c588078996273c520156cb0e1d205a6e6045606e67d224708031724311d76286e6c88319c2f3f17c5c3e90a5081a3c4eb420a0c587221f0f0f3574a7872db28090b03ab97384a7d33281023c800d53890f1118d2823ef8f8c01d636451012c282bf9ef150fb0824a15534c9112e5c9029a24916e8803046100190f2183246285293821014c0451001d7278a1030737c0c30351d00424e96100488eb8c420101584200f3ceee0401d74c8316508219000650003898c610b968a15aac08290690d34469989248cbce4a1461a5e04083fd0238f2433124000478cc0bcf0b0c3094c60c56328340b70b284ce7186186000e00870057c88e00359503185471c04e0d181215a98828925629117173fbe50c108ec70830d3226b08139e640030a0d13490881c412c31586eb0b9e2bc854e17a82c70917125a8e6005e142e4f241914390f4e0d2c155c81548878fcb8a0702d607a687161e66c8e122c035004b0031016801c01563d9e0a1e13ad262e42a020373bdbcb45c1eab63592ed50c357476e80892c5634616cf13972264ac172e68618307b2b4b42079394010b4f0d4d11e0220b903042e6364f13c297283111e70e0224b110678a8747c3892724102b30446ba18e924818391161b64814141160158a14511efc891052446c8d292489616243af8200b92540104c95204071aae97245a906869238c011cc9e18d2d3c6564a901881a80e81c1183040c0e31896cd1820018f9a244a7868e12307764e940d148b81871d9234be7888b0e1e238e74c7f220f1186164490b025e18e0a2838b111708201100120114c1a1c80d2f0ce890610b171d3a7d6cd132832c4140c06323130aa2074f122435b8c478acce119d194f94196e70b95ea878d9e185a6650034582e473a2d1e249d4ee7eabc74603a458cf0e0e9bc4c7901400d518cc4bcb8bc589d17cff320e1b16072e8eca045911f5a409085863db48871f1ec00e3c4161e236c5180904c9548199c00841fe8c0101acc00a78a1435d2a04d2460093795ac50052484b0a10698970650814293480e7ab0831fd06070bca1000c1801914264c08213f0810712a003b88193420375e20216ae3084437a304809b2b0c003aca05205141a264b7ef0810037040248167c88c0021508f5c083a9f4030d462842046cb22452062f74c18a0610e08618446440880b58700213f881c61962841ec0002aa0d03829240784e0600570341142100ac9810c066181201eb8830c2fb8c0c21510398405820432822eb23c76426366b802139660041a0c02880afed0430d331e871e604503a8704293484244cc0c85e480067264408d2e1e3f60014e96d02492d03083a762c2120ac9410d080144057ff8a1c71a6774e180053859228924fe9a0800c478aa4498b08422d48006840c02880afcd0630d35ce30a38b24841c60450290008d410c4f9ea8810622f090461964544105b3c30c3272b084a048229d325c646811c315061810783e70e971e161b5ab3bcc021d39a283808ecc0d3f5c3c583bbce8d0c9c1c2c14300eb8622010000003a36786a9881061b66d001490e4778301253e405c6e5e572716969e95855a543cc943d2a92ada9d2e87483c463d31d9570b298529a9263a628e00a9921644a23999f1a26ff8408559bcc7c20749d0d5860a0f6bb31af8c4938edfbd85fa0cfcece8f277e1cdbc316798340ccbd401db28ff66795afc60babc8dbe65681c5d40408841f8bc9b2ee026dae35f37ce163ee98ecf6b8401daecfe593defcd93aadc81b6e81b6f73567d7dc94cefeadc83b340a39a7052af1f4db98633edd7abc5e8795055a2fcb35e757bd5d950f8bbc9b062c2cd0970fdb0b5b860c33d7b5db15a8ad51c6875b8ceda1b5ee56a0d63efb6c5e18f364b9e139885505ea20ce96bd8dafdf94ffa8405d3ec96465fda04399eb1428ab2f27bbb11b420cb1b70b2c29d0e6574e79bdca5c1b64320a74e23ce74b6ce77dd59d590b0ad4e26ef9b6b5b33218ad8d4fa0dd1c644ff6bbbbcc62084f60398146f75ca7cff7f6c1969bc87bb6e381d504faae3ec70ff37c2c3b144eaaa65012071613687f8ef1795bf8b26458aa4da875bb1a584ba0d63eb373ba87ebad13db4fcd930f08e42d104b09b455efe7da7506717c805849a052fee71a61ad2e3af62e6c28b090405b6d0fe2c85c66b8d9d834ad45601d81caca1ee7f8cff6f56bdf08f4336e2f1dc7069fb12841a0760504621dea76a5a1261e56112894f07d3bf83ae7d9e41381bafba27dd8dd7a4796dd102874d931ec26932ebe978540a1757c23fb8eb55dfc5a1068edfbfe49981dcbf97f36c10202756d4267533679fb5dfb033a61ab6eabd79f36573c45deed32091622f46774fb12777e1fd0fb6cbdf8bfc597ad6c671d42f3cdb3a17c7d5b73385570ec3b61835372299b6c85d5036a6d8cd53d77edab8c4528f26e7e88c5031a236c3bdd7b6ecdd50745de4eb276f0aebd796366b33e27f2fe60c7f9fc09076522dd8f759c4f48b6d3974ab3fbb074402d7e0e66e70fc7792f7c22ef902935732c43e86cce65cbaeb266f2d92f84c207f185f235db6cbb9739a0d82b7399b197f3c4525691c441bdb362c9aeb3af336636a6530ee5bc95526c561cd60da8950cd7db38c7e9acac4ee4ed50960de8f5763bfb6ffe773bc776b26ae0ac5df7aa64d7ce57ed137947d89a80402050fb16160d5abe63f0e599fd9fb426d3893574ac4531ac195016eb95173acfadbe7c121e854a267f127612e30c2c1950f9a6c7d8d9620971bc4e08f5165f9ef539f93096cf7d103af1c4f96f94ec75cd97c580766533be6a1b673c3d6318d08791b9fc9c63533299db0b287b154797ccbe73d94a473517d09f2dbb16636c57e374794e61b580da6ba7b38cbdf9b2a5e399018b057446f6f03376ee6164d1ce10062c41e883cf5fbb89197bf5a550383894734ac9f685b502eaf7ad740f4a67d3390745de2f62b102a10ee689a56dee0dbd6226f29e645880d0ebd519bceeb23eac9089bca500bd6e62582aa0ef7ddbcdd759199d752df24e017d9755c6dbac9c1537f622efd367696dc142018d2e31ce915597a7acddb6b04e406db776f5ba8bcdba7b28f29e5716cb04f4efcbcf1eb608237bae89bc4976e4a9fb37a8921310287709ec9d2ddb73fdee5de6a4c849a40a024d784addb83f6873eed833be10b7ebda89bc592301f5b7d335f6fadac3be50e43d02cae63767bb32175b76f28abc9f1fb43d8bd1ff5ed65c7fcb22ef9c4a725da534b232a1d5c77b8c4dc824be36cbc8a2c8db8ac92422e1516b31b0f8a0d21bb3584a97def0e127f286775822a012defcedf56d5f258c21a0f061ff87184a26ed7d2ef27633a2d4888acfcce733f34961f954c934f399f97c663e369f42e53cd6700ffa96493c63735966c7d3aac00201f5fbeeee9b1377bcaf7d7e29663e33b4891f9d6a1a96c0fa00b5ee60db2bddb91aafb5226f532ad4acedb0f4a08dd57773e627d9bb124661e541bd5ee7ecb6266b7ed3fdc9743ad179010b0fead24adbe43738dfbf5ca50c75f400657f99937d9fb129a1bfc83b64c22e02560768adffaecb5a9f4777a18bbc4326dcedf0350d9590c9ba83b6e66674dff96f672c5be48d7a562c0e5027fdbd8f0feb7dcfb216f9941294d6ae6d4633baa6a11282806507addebc39c41347183b3a917795d228f6a7860908f4a961f2c9b933201008d46643325875d08b596eaebefd3c9f671779a7706c428f04161df467b490cdd8af5f95b38abc2d0ea12a6b9412e7c3da00c5d1e2e6ef72c6ac7d7d226f39c7c7872d4b38dd657f5fb3d2b0e4a0d75ae60f33ccdefbec57e46df3ae015a2164cf5ad7aeadee5e29f20c50d8d035577194d97ac37dc5c20075f57dba64d3b507df75228f4366f8b1c987fb4af61cac91655870d0c93293f8faadb9f6cb5fc57d6a988850b5890855454d3e331f299f9a271f0a821db0dea0d15566a347fcd3b3bc56e428100804ea2b2090cdc5f26015961bd4b2e6acc592b12a2776e6feb02e402786d89b7ccd2b83b2649250402094159349a487d5069dd3637c91c5f8d57ece22efdb2654c934030281429faa120704ba7f0504facc7c963cf199f934e104142090c521d63660b141a36c19df1a25b4ce239b320f6b0d0a3b7775d3461873869f45de210802b91a14db98dd7c5f59c311e609e9b0d2a0cf4136e76cf2b267f17d22ef50a83592ada5291cb0d06871be19e374d94fca8eee2e37c698c566a7cbde5a8bbce367e6f3a979f2018140ad430defc875609d41e785115ffc503a686f4f9177080402f51c9619747edfd617e3f739a18522ef3fddb49ef2b1e302ac32a89d2e32e6a09453c2fb960cfadaed38abb517c36fd3c7a0b1599ff5c29711be3c2386381f1aeb703e351f0b719c5bc012834e97ac737bade1e996b930a857f66273153e081d7606067deed9063f370bdd5af7bea0b53de3cabaca2aa7b3368a149f263e331f259f284f3e2fa2483736238863794159d7e760eed8648d4ce6bfc949cd4f0d93cfa786c9073bf9d43cf980402753bec9a9018142a41b9b51641dead768a884ac0f585dd0e68d6f7539ffbccd5a2cf20ea5be8a9b72c9c93301814020272010c8b1a6a112b2dab0b8a00f4f26fdc67ceb6db6cd2de86d6b23841637c9dc6dae0575cf2cc37266266dcff9ac2cd4426fc7b9e1eb6e75b23f354c3e201008540584345442a12c6874d0cd171bcccc5dcf28f28e09b0006de7ecbb18fabd5f619e15a08eddb7d7b59eaf7a5726f2761d9950805ac8a4f7eb89a5752de309d077aed93c276b2ee29b2540e36cb359dca2c3f939f77268b45e5bc5ee8eebbdeeb0d0af5f5b629b3dbbfb6f2a85b0a09731082163afd9fc7ef3151aeb6b9c23acd34e6f9b712893b5627f67f0d6ae32a728c4f319ac5fbb61d6624651d913ba679f73d5df6df944dd627ff7e13798319c1f015a1b96f37d43eb0ec68c6fa8bdccb1576c1b42f62e36515ced7d075bbfebd2fd9668eb37ed8d56ce78ef84d786fe7d1c71768eb96d785a126d1b735bf6d3e2aeb8ad159abf3597e7b4d96ddb5b214031c4f81bbbf7e7557a1dd18e36bf3c618536e2ecaa88661cddb5ae73cfebce6a15dad66618fb6d8dce6f9e9966d8fe5e289dd996f5e7d3fa6ab53e7f3a6e167f62da7af64f0b5fbefedacf4badbb6d616bf6e463b7d3d2d62ebf6899bbd0c93c67a516378925acb03af738ce2ba86ceebad86c6cee666719a28f41e6e6b319feb5f7ca0750f69e6def9fadd65aad7400ad0fda985fceb7d9322bada032ffb3bf10be37bba56c007d15d76c219ed8f1652da9d0765dac163fd77f5fbf3380e2299be16ed6fd83f57a15145e18bdcdaf315b16a753417d5e88dfba64d1c2077d0afadac9f9beb9bded91f9143af1840d4fdbe6b3cc6eaca1b0c176b1e66f96a19b510a85b14d083d37d920b3194a415d7e79a3f5ce51503763ec98ff4567f0de2854ded62264d8b1674c3a28144237ffcd089d6d8b69a8bd36d6fb7f2786d21b42411bdec82cbb13b6eaee7d425bcd354f3ce33306ad7c825a972ecec7d3ff366c6f01d4da5c6db3b5c5d61acece09cdf2ca6ef0c6f7dee0b54da893edf6da796b7bb739136a199eb5b6ec77f03ae696d07bb17c3ead7d8ec1f78dd2e7a05759bd21fb3bb313b4e2ea6694373be95ac2199a6fcc30c7c693356ed64dd0dc984d3927930d7fcc4a6885ad36f61aebcc6eab0aa0ec7375b6a16d5f31f304d0d9587b0cfb47d9a06b26f22e3d2974ff4a68360c8564d350092d6182ce18dbfd7a2db691c1cb723685e69325e864d2abbf9d1133091f5482bedbccee9dcfbd8bdf2df20eb98eb1ef5f719204cd39b21c3d432ca78dcc89bc43ad63ca26bb98c4c6640a5539854230937a6bb7ba26677e93b13745de2197924e5763beefa2739135d644deeeb43de758c40dcac9e6e32bf2c6c274aad22dd20767b77dfe8fdf6dbd22ef530a0569e7f7647691b98631ab56e49db2c973caa3eecd19ffb16df1f66729f20ee1520d9970376780a3ac5a581b4bf61a4fe7aac85b84c2b9099d4c3914957c663e359f9a279ffb536051a598ed4f1a9d2f3739af64b936bf8d89bc4f5574430c044ad96410e84fa64b450ac726c4200d9510154ddb3b9bedc79a31762cb1c825ce6789149f4fcd934fa834f2764add2cc168850ebde7bcec5dd6c722efd449cabe2612490148dcb7d56b76f76f998c55e4fdb7649a7f4b504a4ba244dd985c0dc8a78c0e6173fea0bfd98ec906d95c21914094e51c65aeedc95b636d55e44daa573e9442954cd7bb3462fd27d37d345442538ea0ef5ede8ba16dd0ce7728f246e5bc95f9a99aea6e0d69a8849a3082de86d5def7a6cdf8d99722efd3971040dd4e2959756efb55385de48dc2ffa850eaabc0fed43041d50f6b381f29528040211b132ed513a87e6a9e7c426fd250095961141142e19c42211d88e8177b18028b098b940f4244d8640ed0ba8a64827021f611c20043146008208c9011e287227c603d10c183103b3403e8100a22876663baa13f85426d25c276731fe538848620402864801bb0549b1f06d021132954a534aa52c544ca410032012800006c7c8839995295071b4211b6507b2b95648ba8a10034c89cc2e961860ebd28c40312218ea07230d24ca6930e458a80c1f54f3abcf8e092fa2a39b4348a07cfc8c6c63444a715e03ad527dd1dac0e61791e2a1edac8410d1d586f534b9e1cd60003c9914a890212c0c4124a249124493c5f50fca07338e5ac6f61cdcce305cded62895fccb6beced58240cd21e0e9a28126cac345f36cd1ad454f4f968aabb777372623084422bdbf445a97a141ac43068aa5b50f437cdb6c8fd5b844090e14a52520100884ba31b9189d3150b70f1966b93ec6f85d140365f1b6796dcbec4cce9a9f934e18a86c304efbd84a086166100c144e1be584f56173d732f705fafec9e86a3ff764b6b875bc401fcc195b5663c5b8cdf8ba409bb5ce323cfbe59c193b2e5026996b1743eb5c4ffc760bb42dbb72bebe30cf2c594b2dd0581d6cb81f6e3cab7c2e0bf4e176534e26a1cdfdbee11b1d2cd0e6248c335acff3be07db1c9d2b3c881dda6cf1b4b942f7ac403fb38c3dcec9ee8cd6c52a54db9fdfccafb267df83a04305eafeda67abb3b8ba973164dd99028d17f7952dde7f9949eced4ab3995074a4403ffb7b6edbbeac8edb3b059d28d0cca46c7da36516051d28d0066b85dedf6caecfa32c41e709344e5b999d973d9f19df7602bd8dedcb7eccca5b3b5f2b3a4da04d5aebfff73993d73dc87a8f0e13287ed8cde90d7664b1d5d75942831ed051026dd0f957f9fde0cbd9a3c81b8b2f55a9a50a4534a493048ab37b17b7da60e7da70eba08304ea66fb76f2bd79edcb18c6ce11a87d5bef4fdc5ae7d6f067d73e354c4a50a640a979f2510202411b748c407d42092bbed1598e18bb129d22d0799dfdeb1a9e9708f4e63c9bdbbed1615fd61902b5d0e7b7c7cfba3ec62f042a67752f7facb8c19ce30781fe75d5bae3e82d5f5c2f10286cb1df19abb24a9ff2fe80361cbdbee9ea93b5d97811a1d6c157e7637663db7ed60734b79536bf63f3bbfbd94368cc7f2584aec1866d67ed01adcd36773fa3cbafbaac3ca08c5977eee493afbdc37207d4df73d5baf96e6cd65cea80dabf2fd70c1b9ef1de280da1b23dfbfaee337c2e5b16f2b07db5ee3526734073c337e2eaf89f9439e3804ec757e666bf4ae81af41bd007dd63d8337be6b2cc36a06ddf5d7495b98c7f3fd680f6fbb76db2eafab97f1ad08731ac53c6be2fbeab7006d4a1cdb97ebdfe5a9d2e03cada43bfb84d9b9b6491101ab39badc6286d8bcdfa0d42237c18fb5559257c19037a6bc73ba3c417bbf7240c689bf2b2665b647edfc3f6029ae3cbb1badc5e8cd705d45fccd042c7aec3aeae0534de19ffd6cab285973516d058319bedbdbbdd0d760b426d8cb5b5fcd0ddc76a632ba08d490ba56bfeb07ce97d6a9880a6f8cc7c9e90728383df89d00d0e7e9c4727109af38b2f637bcde2886d144107105a5b632fb29c197c77b10dd1d6f0e8a88046182fcc574afcb149d8697452406dc77b674f88e36b9b330ae8abf661e86fda27f1ac1004028126bb40e704f45928e1acf1fe63365a07028140a1ce498d60b36e6d02ead8c3d83eefe9dc32c99a20a453025aefabccbd96adc6fc194a0c74fea06f1f74ffaee5c4f37e8da34302da58cbff6a597e18368847d03a7eb44e1fadc307f56aabb4d9662c59cc2edd8d8e08e87de8fdf3babecce733364340ef7cae1fd76b6b84bd07fd7777fdd11f6cffa4131d10d0eace1e7fb3afd9f82a8c8d8ace07e895b159289be36775c25cc279533a7ad01865635f99cbdd32942f0ffa72c38f2f6cee5f669689bc73f228652a9d5a93d2c183be2c5f371b6f6317d6e6e0141d0f50d9de93d72bf3cfb06b751a2aa1ef7480d6c6306cf816768dcf842594ce1df4b5e892c5aed7ba85d0a1191d0e509f6ee2791be6b7d045294376505b5f9dd133f61be1c479b2de40a70eda70c2ec24cc2d1f76d6d241b3ecd9be66db98b3662a753799f930faa41b9c9a4f94271f343a1ba0f3e39c4ffabdb7be8bf11cd4e58e77f6e376abb41d45def353c3c4c6745a020281402050470e7aa3740ecbeab5da96738bbcdb191d0d50e993c9265b67765f628b7393011a1fbbcfd86d79def66216799f4ca1d45779cda48301ca6e9b76c2db704787bbb54e1c54be6e5e596511dbee0aab9446928d0e1c74e65959c6ef1be21923f06d89149f26e68dcdedbc41ad639fe19c76dae9ec9d22ef36f37971e623713e519e7c5abca2e346e702d1b374eec9c6d5f32b458092ea28756393a5d346bf53878d06853a6bd0f74d4aeb5fdbabd1ed8bbce6c9478aab1d35e8ad59e60adfbfc711c69806c5cf3dceceddcc13de3845de5d32a1e16093ce5d63b3cdd7ed9e832d73bd8ec1962cbee94ce40d4b26d20c08f42513e946f7a273067dbfcdcde92e83d0766432898e19b471b3ee2184d8bee65e157937aa5306adf0caffd9ee6f36c6950c1a6dcbacd68ab1932f5f8e412d66ce9ecb2d4691f7a786c9e7c67472020402a1947cca89295572028aa98e18d4be1a276e8eb1bdcd33ee8441a78d2f67bcdd707ab3564f1404aaa7ef8041bdc20b9de777f90b6a71b4935d6fd7b61d7c2f6837b72ccf795dc56eda2e68e7671367dc8f45f9ef72416795ae61c9dc94783257b7a013b23aad659f1d7cfe5ad077fcefdabd70ba58ab77b25036718ccd9e9db6ff7e2214b20a27acb76118676bb00c74e2376bb550b6e7cebd4b068a5f6b90bdf4beb1f5b563a08d3976b2995f2cfd45e7a4182894d7a7df581f42d90c8681ba965994b6f95767d71f0cb462096386ac7a9556d6fb05fa3e46ebddaa8b0e5ff602ad2fe59b373767cee26abb40dbe6ce6d3b3609e56bc905dadec57e3f7f93ac31f62d50d8e26bacc56c3b335cb5405faeeed964b0b3932f6316e8fbbf86f932bf0de2c7027df9b958dbfb28bb65c8aec0707c8c1b14b99c725c5688de7562e9b57a96b3795701b78bed84d03ac6166791b78c595c5468d0141ad497141ae43657141a048506a3add345d81f73ec9beb09ed04f64857131ad4a88b09635c4b68d01a9712e83fecf6621673c52cce97c69504cae45b0c639e1823817673315ff79c6386efbc2d8f40bd216b38656cccfd3b69042a6bc6d146e8306bee569681ab08145ff88dc59ca76b0eef13814aebf7e539abec37ddc543a0b759fc66c5b5b587d0af10a8cb9659e66267f6eec353eae60a02cddedcd7d7ffb263de1e6b382e20d09be7cd2e5bc7d1bae8cf81eb07f43577d9edb6d5ecef1f11fa9895ff5876cc4dc61c08c4e43ba56ea4b87c4065646ebd4d9673cb7836d6a17ecde8b80ea12fcaf76e7dac357c52f6804e189bb9c7d8ae9bb55653d50910a875c809b978409fbdad595aaf3e1f86bf03dce4ece70edf6b75409dcd75b67f6d7b5e6beb83020402815aa3a112baceb80ca190d58a219c2ec3fa19e642a8736be38556deea4de680ca9b9dcb7ff83a429f1607b4e2d9f5e67e3799bcb6af1bc48e35fe37f7627bd90694d5dbbe76865e676b666b409ffc3671b3d5c677582b0d68c4f3d999db3d99e5432cf29e01f52ce5bb87dff328ad5b19d099db6cf7e0b5dd1c669310fa1cd7576d7bb235cc2e1cc4551b61751846d9a2631e038ae3736ea5b5f3366cf3c180fe6bec3e870cc68ef5ba175039ef4b689de5d9f67efbe372018d30cac720aecc35fbdc4a4dbd115c2d6830c3285bbef1d6fbacb280da39af74d31d6eecc9e8c725c8c3feee7a65bb39768b2b98764eecdf2cf7b4977920b7d995cf7cba7c5dc40e48fef9a4bdf7659b8e61ab027abfa77bcfbd627c5ffb14f864b7dffdcc6e43769b940b05f42f94ffd1315c1ad5136e8da542f199f994a07c663eb8347a22e7f438517c663e8f43aaad73fef422546df299f97c6a9e7c584340ae13bc7bebcdcdf6c5d3a309e03bdc2a9393d5ef6753e49df35642b2c52ec1c5cfe67c9eb16d3fafc8bb994cf199f9b4273e339f7ee253f3e47353a148390181e64db5617d32a5eab40ab9fea00ee34737e3b3f91e6e2ff29632041709464027f36ce19b71c666b7569177fdcc7c6a9e7c4020e9faf2835eeb1736e96e7e9fb1e33e68cead59bb8f5964cd622cf2d4a350d55171f1c12e1150281db6796b6b2b7f66c8da035708e23ff8dee267d7d75de4ed3075ed2121734e7ab318fbb1183b4a1050977376dc6c6eb0b66657e46d633ae54f0d934fbb62633a2dc939d58040d70768cf06e5ff67c7e273353f088f4b0fca58bdb0ef8d72b2171dce8356e758b7bf51caf78e170f5a6dab7fe57b77dc8d4d0fd09f92758bb9b6ffd7d6017a2fecfa0de2d60e5b26efa0ef39ebb27b36dad916371088492f2e0ed058efb5195a565dcdaebd1d14677baf74d64ec9be555c07ed87b9d9f9f08ccf61bd74d0ebb0661b6f9c1ba0913de6ee3d4a076b767350e60e1f3b6b18bb71b372d01c1f633fedebfb7fbb6a8062db8fcd37fdd6d8f1ce0cd07f6da7dbc7b865dbac6380ba56218cfe30b4d0abb73828ab15c728f3c311c2161b0eeaf2c42fbaf3c67932b7ee5b5c6f50d81136072bf6f66d4ae6066d73c67c677baf350c2ffed43cf9804033d4b0af349b8bc58ceb02b4a165b0d50c6fb50f563881ab0d6a5fc43263e69ae3ff18e7c5069d1e337b50da7735720dfaa283f659e7f06d0927c4c234030261613a9d5aaa41dd6bc3afb54b7cff459c2b0dca2a7bcedcfe7c1256dbfa53c32465329d6cea9f5252d0a0f5cde82eb62fbfcafaf80c9a1f46d898b13c1d3bd844de24520d79fbd430f98444a99bc7345442582e33a8bcf562d6d865d04d875da4a112c2571974def7cfeaf3ffafcd6132a8bc0f470b59bf17fdda31a8fcf8b5ba68df4a5cdf1583e65765abb83f36ebecab6150e6cc7e851066dbd73508066d09f39496bd96dfdfbf2fe8336b9d47899d7d565327132af4554e6fc31a89cb0bfa20f4cc2ace193af73952b9baa0ff10da7ed65a19656bf5e282e628ab63f79c93f3b6eb06a35c5b50662b9ed161d68db9d8fcd282fa3b7bdb189c1035bab2d02cdd3f77ec76cb7036e812a153d69f2f3fd75abf752ef27eb20c947db5ac4edc5ace3933dc64a0ccdd37fed7ea3fe9ba8140d001d618a8eb1c1b73f8be61ecf213f927ca93cf93628921c3ca1a6ef6d6e8acb419ffad375272fe897e1d225861a8d23537e38df3fdcb53e42fba75e647a71a52bda62720d04c7034c8e58dd6e6756e5f6d66f3edd8ed878b1b7d8136de1a2e6c50882784f959ebee5dc972172e6bd0fbe4cc5f9f74f8d86237b770518376ec26b16bccb28d95e5990695f2458cb18decbac7189e68d0c9aa95f82f7689637b3c83da792f84ef323ef78899cce2620675fd50dee89acbb86677b37029835a67a7bbd5350bb1832f4a0ab89041aff4e6667c9effb1e9f21854467fef32b61ee1eb29cf7011837e7e9fd15597f3b6c71c069dcedab9bf8ead6338633068ecd622c4ac36f758c3f90575f76e6d194b79b17447868b17944536db9df34d2bf2d7af452e5dd00adf7459be29db65f0b53c5cb8a0b9bdc6dade6b72de596b025cb6a0b76b9c7e7374cfd8662da874ebbed5b6194ae857ba64a157b2f62a66ddda57cfac25117afd6b8cf739872e43f9b08da0a50c54e666fbd9f7af7d9b8419682103c5b0cd6fef3df6acf46676b48c81da8cafbbb786dd4206b11868ae2d376b52ced8f0b70982963050076fb38c35cfecbacf9f528e1630d08ef0df6c10e79cdfb6ff02b5113319e7abf2a33bc45ea037e7fa97658b33837d6517a86c6d65848ed53a9fab920b34bbdb9ec48f1b76d356df02bd2e3a891bb30e7aab1db5405d6d0fe173526681c2db73428fd95f7cfe2016e85be86c8e503a77eeff0ab47533db2dc36615576905ea9d99bf695bbb3eb1ab0275ec3abf9da33f7f9935445aa840a595d05bbccc277cf3db0d5aa64059378bdd6331c6e8aaad91028deeb2e96e9d84f556e651a01136bc787a63f8c16c1b0a147a8e1fd9c4cdb9d7fa04cab07d36d6f7a6958dc569811627d06ef2be78a7b4d66b65b809f4e6173b6278a194f3e365029defd6e7ea6ced397fb54ba0cddadbed9ef9dae8d52a81c27e891bbf096d1268fedc0ee62aeb3be8b62281caeaf939e9aeab8dd6cd23d0f72f197b3df3acf1b96904ca9a5d3b9f652beb8bd58b40b18312469665cb8f2f8b44a0d3b5abcd6d7e9eb16c38043a25731bfddacf0d4ec72d42a0ef7db68b8fd5ebf2dd20d07c59fbea17be1c679e0e08d4d9f61ebadc5c95d6c2f6032afba5adaed5966de78608859deb7ccd9afd3671331fd006f39c2ffaabf5102c5a7ad0a06cdeb1e59c8cf98b8db5f080ca7ff3d91619ae2ef10ea895107f65ffde9bd9c6ac03ead9e3b4efd63a66237e86d09fb5c1596fc37ea193b5107a33eb68af9595593babcc01adf85fec87ae2bec8a714027c31eeb947f6f6eb15926c567e6c3a2f84479f221ddd88c424fbac1498562cb0de85768b1abd361c3b71fb4019dd6cdfb72cb7c99d7cc6a40fbd6fa3e6b677b6d838e06d4e1c818c49fdd7dd6626369990175d2ad6cd1626ff8644719d02a9d83cfd57a6b6d2ba1c89b10caf275d839573184595a06a1af326fd8da0c9f57ec3506d4796cb341776585ecb208032aaff3f9deb16b2e1bba17d01bafcbebfcb67616c316798b52232cde353df19eae5d40a374b5f68cde8cd5eb2c052d2da0f14dfb9c7dd26216d01a599bb0d6970fcb275b33418b20b43e1865fe7f0f65c69f5b56402bc391c50c6f74d7fae24fcd131028d4718f9640a8bffa565a089d63f5ef8f4e35354cae1420d03dcdcc7cee4ff1246b473420508a84e3de6801e4ddbb94ac4596f34f78d1a2022a21bc19b7c8b26b0fe29c02eab2c40ebfec0cdf96db45016db6e38c166756e7fb8c27a052b6c9a6cfda2fdb33fbd1a9e6a55a4c40677bf2552bdfafcd7e6d0968759873b3169d9c13d6a6a1122ab5fc41bdfa3b7c0e4b46028ae3fc8b9f319bab8f80b6336b3fdb36db7f73f75bfca0b9d6e67e66f8dc73b1c13e28aeef1bc336ba57a1b4ce07c536c77effa66b1cad7c91778ee994423df62602ea57de96d866d6586c0eb18c720868fe66efb5eb79de3671de83b2e795d96ed2616c1bb1c81bceb48080da07a58b99b9279bc73c3f4019cc8f41f82a6befbd88f5a0addf3bcc3fade769f1c32453c83b4a4b1e74d6991bebebcd9c745c271e543a732c32e81c8cd7b629f23e9952f76f50a551084a8b07dc63f8f5bcefafbf7cef809df5caec585fe7f01db4e585d83d8b9f9bf04d510b0764bd535e2833b3104b6cc7cf0a6175f5cd36e36b9177df963aa8ecdc10d6cc9ccb791dd3411b67763fcfc9d8f5fb9ec85b3aa0650374e266fe9131d72a86d7ce415d7319bb7d57bf510e8aefac5e9f37c659ca971aa0d95b73861fbecd36fc0c5067e36dfe2ec69edf638701dacf6199f3c59dfb59d8ad1f939638a88552767f37d82e5b8783f6bdee18731c9d6451be412bbeaf3e8f6fd6dbad1b6b342d6ed00b9d943167e7724b8759e40d9db45c803a2be5eb18b35f092b6b83be76b1d99ef2c9f6f06736a863085d7ed2e118ef84710d9aefacccedfc76336b5bd5a02c339871ab164a3ba19569d086b6c1ec2283f2edfc875bd0a0ad35699df5f6f2c914fad288541abd262d6750585d6c9261ebdcc2fa6e633ae5d66e498b1914e7d9d2bbc9361f93ce9f9441fbb5ceefc2381b4ac75f936821a3650c2a638b98bd88678b12ce0a02814082b48841ff5adcadbe742ccb3bbbd56809835ee736e3cb62953f996b6c0a500b18d4e5ebe67d16df93b146fc057d8e3db731da2759735dbda075be95b8b686b20bca6485353a76cf7fe164ac4a0b17f45908b3b3cc2e7c17ca683312a15257d8a3d2b245ecead3fd3df60fedf3162ddadffc5ba785b64556734b967ff341363f32779fabdfdadac293c8640f4277e8704e29dd9c537afd7619d76e8da185313e913dcb4061f6971b94f8b56a196e28528032e021030d9e31d0fafad9dbf6b27df9ed8b8146dbda64f7ba177386778681e2caa0b3d1f69db765fbc040db7c36ff5b8eb16518e7176847986b96f1566c2d76e7051ae19b11fb85d17b56d8ba402bf49a1f3256e5cbd8e4191e2ee456ad9d35ceeb308ef96ee161cf9f3762c75ce3a0426e6a81c60a9b84d7d61931fcbeb93e6956c09305ea4c5a77573fd6f7df321628738ce765adb27c050a6f8dd84e37a13bf7b756a0ad3f631b21fc98df4158053a1f9636becc1ebbb7e1d00cc34305da22eb76b5d536b37c971f179e2950d970c573c6c9a0b437b72c1e29d0763046866bce6e3bbf8b02b5f062d78ed91767f3f9a040ff3993ed6c6e5856eba4c85d3f36d13ce979027591b516676631d71bbdbf848529644ac166fdd8547a4e4325a4c4e384cb6c7eef64b517bb2745dea54abac1a6992634883181bebcfd72cbbe6e9bbbd5b304daa06ccf62e337dd7dd7b0dd541bf77f4a59d8ad049aaddb5ce56d8b638db09340ffdeda8c5d79ad336c1d09d4da6fdd629633b7f6e42b8dde944fcd938f29557212c573047af1c3f6af56f95cce2e1b81cafc99759eac59ab1fca39a5ba51f2f4a9d1734f111c119c6708ce230417045a2b9eb9fe74c6327eac81d0fa07cd8348633ea0efd3a37bd1c25cdb7cee3984beeb67734fefe7b0d68ffdd844030259cc5c77c0d303d73c68a01d388f0e1ad4d66308f51b1b93b2da371993ce5308f557b1633dfb5d736dfe149e1c50e66fc25a65b51233cc2e0e28f48c63cb58736c26ff06f4bed6e0d73b21966d56b701c5b16bad8ed967af3f096b4067bd19bab671da66cdfb9738898d06b4d5077dce6fdddc7b907966402fb336e35a3b46fce2638f0c6875ecaeecbff8e5ac528abc5d211e42687cb71f9cf8ca6a6b9d3f08bdd2c2dbac7b6f62586f8b8143eb62b79eb865f7fb228e0706d4737e9b6363d3b6eabe89bc597f6a989c6a663e339fff25a69af802fa6fcaf9d239cfd11f211e17d0f7fc1a769f4eded7f0f5b4804ac76476f5ca5aaddfea22efc802fa564ad6d97165b7c66805a1f0bdafaec9d8f2e2363dc2157802a138ced9de0db3adb2be2cf2ee06ea1b7800a10c33fb9cb519366793c1383c2aa0b2737c3da1b316df08992705543ac3edba9433cbf72da3c07302ca6e93b15ef7d8bd76f89a80d619d937f7fac29b7b4e4f0968b6b09fdf761b7eb558b6e1f983b6ecfae6e7f13af3bf924e0181dcf39080c2185dc4b83d3726b3bd226fd7271c5489b696518a670414db06bf62d92fe296f84679f271edf18356dcdeedf76beb708d2ce79442fd2d292999462910c8d30795b35b67696bb3efe655e4fda480b030e594de89534de9453539a577020402814a261b1bd30d390f1fd4e179ddc9f6c79d5dcaedf088a041d713029a5febdb0defbbaccefca750eaf4576640ada5670fdadae1f95cb76cf6b29c22ef99d3879a0704ac7395b6d95827660ec567860a5cc23135e15c6c09783ed013bfc6b1edbbd69e09f7043c7ae0c75cbf19716e35da6743260c9bb52c3c79d0089bc326d9bbfed3f3e341e395b3276b794eebd7af07688515de5b1f3f86b164b303b4b9d9b13d6bb8a76350de41e7ab2da39b99e5dcbe7280fecbb7318c7375d91d3e3ba8633536d998b36e98b3ab833a9f6eb60bdfbec33e596c0f1d0d4ad6dcbb3973b1dd640f7a3640ed641e31839e3d73d067598bf1abfb3c5badaf3bd46d051e39686e6ddb6ffeecdeb919e7f068807e73b5c539675bd9e474343c19a0cfec7b0d321c9f4396270628c4b5e1db6be3abb2e58d83c2facf5f8b6ddab7304a3868937f21eefcdebf41f3930fdeecf8c1becea31bb4c6b76ee22c6b8515fed4c27301faceb1b377be6693f93f10e8a6dab0323c6dd0865d6dd03dd8113b976cc6c306b5ed5a97ed1d86f36229d7a06f4ad9f5db56fc98b3ec4fef89470deaf01b630d3b56edac2c8bbc43adbb61514f6ed250092dc093068d1f61cbade696d0d9746378d0a08ee5e79aec2cf1edc7f90c3af1cbebfc2f668fe3fb2b1e33e86cf279df161ddeafde6ab0a852804058d4130844432564e32983e68cdbbb5d7deb647553e4dd6eea890a1a2a2193870c0a6795edfa61ecb259773d06b5ecbbebd76678c6dba2185436682d7b8cdd27afbcce3c61d0f7662e7a76cee616a5570f1814b68f6ec2d95cdaf8b0309150f7a4a4f52de5a05e94bfa8e42f4a658128475110832008009088cf0808000063130020381c18908683c188601ab75d0014000442625ca03c2a2493c8638140200e06511004611002300c03010c435124a531c85c07b11924c55b3a4b80262fedde329a8ff84d57fa59a1489ab133c5b78f1c747a96b29e439264cf8233a731f818dbe7487ce556729495121c0fb570b50ad0993ffec9cf0d190b58df27ba98a81805a7871465a544108a88a439f526d866588b207ac11622c7ef078270009298815348241aff16efe0639429a41561e29b76b7ec9ee0c832ced39082554560beeca44b9319a9e46b61f42d13438e30998af40a3cab04a1adcfc515348bd2dba0994d6bc9597753973fdfff536a7108d9f90007248e229af060be07c7d83c4a68e75785f2b947626010ea80259c22616fbe7694c94e4c1e6d8772d468a32148f9e1385e6bfc35372e9dd1a5b94e2025617c0fababec836845f34fe7b1451089fae6c7fc7b4010b67a889d6affd121864cad8f2a0b8a05dd94a4e03fd03f8a341b75a467c64d155a95328e7be0e165f61b696b74558031906223ec2fecbc9f11aeaea5c5e353acaf13e286be01206291b177c6c68af1bb19718991be182bcd4625b2614c8b6e1dd5eb4662cc2337f3582e3b7aa377d4206f6a5335d38caad5d163f010058f0e38271254b30c6a44b89847ed535337c56e5e6fa6cf42fd42af729e844ed95fdf3b241bbeda2f25a69a0a442adc132038f14a86bf42ff620de7625acd089367b3f5db46b8c37a323c48500dab952e214a2ab7442072eac3e277c15c240e4bf6b3b4ff67a9cf123f4bf259ea928f31775e676a96a52d3fa1652a600b984b2906022aa56efb6d82fb528f8f32fe68edfb485ee5ed461899f32537af0ebe29dd9c4e5d5aa265cfa3295f79d5437c86a8600215b5da4cc692bcf18da70362388cd68f3c5c0104d5abd69a7d98375810de7da0ea9de0992b892ec697468ce308807ca834b6cfeca13c83767c49be83451100242c7138e211088e8c63378a62236f6dede1dd7ff1be9a9183311ef18b071b0604f3143607c686a81d9418d8df63b48289c42b46a0795b6894389377a965a83c924802edd5a8b582b154ea81cbf6cc390ab344f1b21d19c6aeb2897bfb9ee4d6665119110dbb275562f5249c35ff11acfad50840ea0eb08b1df24b88fbe7e5a5d613c1dda635e280f69f959d38e7590885072c9925864cc8468acaa91fcb9cdba27d1977239562b97d059a7cb360bd971ad38687e4440f8103e5157bb4377221283665f433144af1ea3fa36a9f6f00613d616f1a1482ed6c76ea850b9484ed499dc336f400b9668c0432e462ca2f16ce07767828ea5eb554d401157a9646c64538a530843cf9848e32bfa592bca1ea6f82f28232ca3fcc9098f6ba81e60c370398540af6a14ffaf1732f2c98daa6bda0f32bada93fafc063b3669ea69329857a49c835c8bf8c2f6f1b119f3f53b3377771914492b2994942131b7f5c7840210fc626e1d088ba1a01ad5890cafd3255466cdda605d420320e5f283edac95b55ce8644150ea79d023d23ad66555527792f771c9ee89ff9c04ecc8a3157d2ce4ca6bed77d5f66f357765279b5d5a1909dd5d8429455d0c91d6393fcd80cce309ef4769b52eacf52fbbcabb611ec0d560c409e32b7595c4fd386b9006dfdf93f8d8c5ee9c2b2701500f5a2307e65a1891f4b3f4c52681525978cb218644ad8c1d5162cbb591235d48714d9a514ff385656c59fa38c81d1c485b1801e44082a0b27e70226f90ab7e31a04ddbb7a2cbe9d7a62e535186cf6b593c6bcdba1033e61ba2d8a398dc0543914f6797f784deb8132d119eee42f81d6d855b974cb175a1e361062a0ba03e93dd983392462f8c11a61a68fa3f2701966bc0deacab4e69ab580977d216c437d04b2bfbee3755193f68e10bfd3e8c1a1401a2cbcc26e12eb47f8e6af944649eab3caa172999c43aae1e520fd39a036bd7ad664bd8770a61f935d713ce406e221b39f01ef6e26dd6f641c50eef166d5cb448c1709e50f8602251851185173cdc274f24c9256c01381e2e6c97cfb0b5d66954d219312604bae24165554a04c9650d60dc09f85017b919c2ea7c03dc1a4125550961f7d977e81ad4f770c3a2190ccc94446751ad4016388cc1932384c0a7546993e4b047c7918cd40030cc50667d2f6647dcb5f6f6bbd0f56babbde18a852b4c549ccfa16dd06a1d43516d385002d0236f23536d4cf194aec0b71a97b5a501d0db4743be6f66fdd473e43b6a2319dace40087708dc21b22a42bc00f100d7e2d56a959de339c21776241e7860d05f0391d281a491312ba265fb5986bb8b779a33572f8a71ab06ab7d88919ce4ea74a0d0a3f1522131e04bb6e0b612f71a9c900e688224a04c0f818189d66e12f17c394b82a1579738b0b4077c7422741ac4230eb6d93d972e6df382db16a9ddd310c5450809df543432a7605745b6f0166376723ab5ef347808a7d3d8198191207752e115fd6b9c5e57ebf6a49631b58496a2789f8a91728c93a9ef70a710d327e83475610635fc7872c6f040bbbde843fef7d9505403efa18095eb2d6cfdbedd929f08e9f6e38d7723f796fd251122dabfcb27b5ebda8ced6eaceab86f430e47ed44ade9889b1a2c2d739336eea44205d4df56558752e2dcc496334b79152f657b7dfcfd99647c0e6d3813837c8b14915b5013d749b73951103c183eb84e877aa174cb7b9570dbc93c12f91d61e0369b6095e2800ed197e94e352a8c7c3a1750e9ea3b8a5db8a2acad9264d31fb6359cd008188f983b22c1f2a281176d93543e93ce244679aa0d6916fe7e12cee65e59fca20ed138e60ad6c8b2821cab852eb9db459724b9a225aba01e5deed722a1dc6b1850d8e9e6508098386b2cff4bf46ce003baac44e0625022e4bca8d6605449e5060500c73bd631187cef50b552780af4a524d840466760c0d1b7d4f741c86ada1e0f170ea6cb20f8b56b5e9a05b90fbeaf2fc0df6cb543a1b343ff89532c08a9d533529ec9d18e6010405609308c719d61a14aa7260db69053f3a531f2c188134a4cd806c49b65ad0f33e7c540858f2c5d9af7939a52c120c2dfe9b1c517e17ec48f3775aad8d94f4c9ad8d2e8722e0257d2f408b49ef4e0ed1a9c622d327b6364b3e6677d1891f1f0e52e968f011851554c6a5c88b95867b7cc08f556c14a205a1c695215609f9e070e11ec9706b1a3636693381efbf02b645d87c30219de2689d480507734e6afa80aacb81c30de7b521f4dae7d4f52c21770fe918efa0e62056e16d97dabecb165dd4c8e610a12a236c7945bfa5e900aea802f880a49cf3e4f1d181c310ea42ed700369d6f26aab02f4a44a35c175a03d83bf10b0c9444cc072e4c912285ebfdc70b8a21dec955afd1f9448ad79b4970a78768dae7ca9880301a6dc0ca203e84906d0be09ce3278fd62b7e9ff89bdb3efd2f2c595e80702b98251b5a13344a4b325d22cc8e50164781f5440dac08f7d442373e38be5ee623c1d9437e0e097e3f4ad454747e4e090281f13422956e53330bd4a4ea5cf80064cf72f45fd0b39baa7c4a44054c8f05fe7301eaf4a61a91510e83a01bd1394f60a58cd00fd0838e6041abd45a8ae8a0aae6211412abea24be3c96bf4a67504befe510d8ff4ba4079215879dc8c9757ff96a78c1bbccd6a07ae3a251776fee52265071d9db29aba4fb4180173f52b73dea8b2f6ec9e619bdfa48ba85573027bc5ed6ddf46522e8493a58302f14cdbab2630e5d8093d2d6612b3cadc187db93f515e7d8ac14c89ba31ae9454573174ea4d1206daa3cb3b11b50e97cb367d2a3e4b6a364a35aaf622069d3be2444804716df3c59d24bb7ea170fe66f04d0695861842308face29a9df266dac30801293a01f3ba81e7dd81804e8ca23a8c9840face46f8728149169bedf93c75208ad649dc8d92d377c498312bc469a3298d53b97fe2a913e169eaeed771fbe1c452b68035c49ebeb9ccdcfcac79aa66f61fa704449a695c40faf748bdceeaddadea53aee7cd2bf44f7ef84891e29e82a6e6521d1ee70e8661661b8b23a7e9bc831f705e1b5c286ab3612c88c952f19db5cdc99648ac131546682d1c3e7d20c498ea9f4d509810c9170b8cec64a4d1e56778540ce20221c168cc5b702fcf522cecaddcdc40a29f1892863b20ff574bf9c75100d3fe45b8d0b01260e3cb7eb704932eb9bdb6aa2038ccfca40e68f12b106807da2b8b07fc0e6c8ac80d599f94329c053f0de04114bfaf01f7b27c469886f2725df964f51b8056a6481bdb9cecfecfa2492bfa9ee5c42b2943d371c330fd1ad814e5d98831efea37a32c800e9bf2804ec8c36f87907a4ae675ee458561fd497aabee44eddf7270e22509a833e18bac166b082077145176839adb2f55c9b6986eb3cffc3b759350e7a768266bab7c458f0a62f979660db367e09df5758f432e0afd8b028669e75363deaa6bd5a6018aad4cba62714bf7af07a687fdb8a8c3b3b46950106ac52341af4f7a85a7c2d43c813cc065dd48fc901d92413b092586845392706545002e6111d225f86145297b5a3e57aa2ccab7a93d86ecc0715afb1a838be4e9a4f501db47cdaa114a68a66faa92d122c75e953601cf8137386ef8b5e550588d80f4bd698d6ceee36ca7608d2294f19af8941fbc3d33a830f0368166d0005bd6187cf94fb0ed82118578398650c6a18d14e973f120078bd2dce6ce517ab5693c8bfaaa0905c581540f91d749023f2e8ec462f14743f8c1be024731f0f3f447d0dcf626431d3e80e00cc5ca80b2806dc2ba40067193807e339976cb5416fac524e686311b554ba12511a5d4520a298594aa94424a21a59052955228a510ae4ac5bc16fa349618ec309635d8612c31d8616cadb1c46085b11d6359835518fde019c53056e314b0e1453ab7bf7738b3ab811b4341704a441fa7801c887f4e25fc61039947faeb66c97d1719b04279ea646dc0e59a231b7c3982e58a83cdebff746f540e642525a6c8136fca8b8bb93651e85a1ab881a3ae6eb6cfb0a96b01017870af0a5f2468791f0f6f1ae4cb01aad52237a6a143786d41d1fd7b865585c0f97bc2dbfabfc58391e2b2dc105eca4570e3709b6f14edd7e1e2f8b331c7d400f951dc517035993182d5676d22b9e9d570682899903b0fa003774be3d28a9a501a22d984b07cf94364495163742d4fb708ca5d66781b4003b77ad146321a158d22046e1618a22cb302d071852e5291848f7da4a5aefc8e3c064507471722649d1058317d5164a9d8bca18beb9c7583b6775b220c622628755bd4d4b74e09e56545b591b3a03f7329aef524f75a3964866c9c26e66b77e8f2f5dcb751fb15e3cd315015ed723b8d8039a09e9d11f0e605c69f730b89c13b3c388572148b4643a6328a9394aa81a354e46c9e2376ad8c2ba3564829d9e71ea166dbba00f8e5e47969e19d5b2944e90eb136ccb15831fcd8246d25a616a404f93b50162138c922b621fcf4604fdc0bca30ee8a95d207c687f3899fd3a5eaec65dd38c49bb6e9cd8a82c98e4d9a3a52cf2eb1cb103accbb4406fe7e613c723e5dfc855ae76de93e74eca8cca48814839d984b990441bbcd5e8c26b69a14e201c2bac093de18029bf20fa65cf097fc7f71c522f575d66253410b045537e303a0b4e4b831ebf3123db74e5f82e51457d28b514bb90b2347d492c1afa8d65b9bb608caa02fcb087f11036c56f0606de031117c903662cd6ab5e1af9a2376ffbf359471b636ac84909110a24e2ee2d8ed69a00adfa3f7810c23863532c5c4f0617631e666900f3719c13b948e5c5e83a2a77a088c86411a8380d4d8b64fd1891f1658d401e2b9332692cfa4bd2ba5c3d88229a3f7cc0783b0076ce878e4dd7272c00c6f444ab17bf1128ce694926d7ab014caddbc2e0f6befe08ca54bc95955d33238e0942890dddf821a0b80040fdb0f5a70a3118450d039b41006065069bfbc08df4f0b4e2d5a0181b9c444c210a427e00144c881f647139537f7cc783c1937ad9b49ecb2834c18c87927a16c96a8dffd2e8c4cbc37118a2cf4255e82f04dbd1d29f50c33b36c5d339a04fdf16cf5d1b37d3984595109192ac7d6b98b69b7d1422c46a00d6c8b2ea7f54669167116c98a15864686c884c30abf8dfa49e1f9f9dc1541ee69a72a0b87b39017577e2bb1e7b0921f302edf1281c09e86188b0dea94841039861e23905272e3c3c2333535b35d74c5604d31b6aad62ed26280ccc5cc629d3b1256734c2dcc129962fecf823c87045e881a5e4290ba83b0a043e94aab614eade856c0401099b53ce11131c3672cbbbc6b5e6edf4c693367023ef97a13be2f1f992979f2fc3a73a8e652a993d1f236e2c6083fb483935db4f34a245fe5180afa257cc8ce156766a55805a9bac4fec4b44e566c0c2b7fc9a0acd13cfe2d624c12e37be95c18755c9a7b31a44034511ad3c15e707143e79d4f4e208bf754d7cd441858b23721caac9fad2941ddace08438c5ca204b07e5c5354c528b86b1a46cda81ae091d85485d713d5944dfda21d1cb3bc86a0e1fd45b073fe2ed388a657dbe57af6ae604bd1fa7327f6171ebe0f3d1a4bb82df93a03b2dd55ff655e8bb6f3725c4ecf4acffc13fe3354df4701c80aca9e82195177bb686fdf1d79458b70f09a38a434e0977d4e00567ab96ade935108d6a911ca27b167c2275c93c3ef96300bc83da8eba85e3364685a5e3d0f6f0609aa6b43bc6a07e457a94a30008fa15e9f71f90d27eb84688e5f65bd5172205220ec39c1312d42f320ca7e4793fedcf055832d00310d4b50f65a6037c5d7ad1c39b2aea05b86ebc1657f924103e4ce89219ed628530cd053573134a9c76a2f9be8de64693d1ac8d08a437593243ee8833cad58d76d738c317f9bfe64ea5f745df1aeda5db032639922ab3c1783878269e7ba81a46c91954ef83e289248da7110dca0ccea4c2809e8e89d04e39010ec9c3e3c1c0141dfae93d552046bac11843bad0c71d444924a9d6441d72f95f44aef4173dde8c3cdd71ab64ff511958cabcc5698b6fc030961fa8b46e0d728d32c2480cfb706c9098a0ad000c2bfb45662890eac0f603031fa3822ef246621def6195746f9470478f34c27a60834b9654ea74ac4c6511427756a542e3149e601bd59e1748a64440ab035dc0762c3d1d2f04b81e26a1e449f0a60bb197e18e30523d490f72b9b822f912b288b8f83aea397f0a4edc1d30683fe294aa00d22d83c45d0541b90bc9463cce6d7223a35a053b8a2d62fc90bdf866cc9a61f85cb469d525fbd15b19ae989b6d245356b28831f0ee6a20d9ac4aba294ce45a6fd01a1b18a520a25949c3c424797ef255c8ebbee22896b35878cfd2486df68f7f2951537e825043284895328f63e054128d72c58b5df7132c7434e410fab924f413a8306e0768b9a3702f859bcafc508672740f292583cd2ac2ecb88edc5699e9e20d146a114e62e32cce802871132e2ee742c65584af582ee25c457888cc454c285e03ca8883f79e19d23085c365d5188902c229ff37b6a3f39f0dbea1fa049dec445ba7c2305e50e63f64d63e9b3533b6e7ace71b6b79af3fe47ca09b6b7f4d61f7a0e3258f4ee817779f19f0ea331d831689370c8be0f2556e66bc21f30d3fcff24788aa8cf44fa7b1e26d6e6418fcf786939c08aed2bb5428f0168d23f42d662c4468ef84661aab832a915e66d6794c580f41f1fae5bb368c1cfc4511a1d46bfc208cd4a2c7c482f4821cf9532073e48308c4cdbca45161035ae4bb75896c091ddc2cb5e68b4331f0b3e05d88d2293344a3b931cdaddaad2001bc2cb2832a893175abc5894964e7c89e4ff585eca56261f4209795cd25ad84f2dba3a43a5b6377f0b187aec0f6a62fa9b3aab8e0f57d67159570691a1b6536181065402fe1612b4315948f8d59e8fb8c5ffadbe3f7a51a9ce78aa8ffc991e1477288c77502e6f3d0e475ecd547e64a0f34a555e214df381f0d2f11e287bc17e5b1fd2ff1bdfbfb1cbd32598e35fdc9f036c07c43d97f1d2178c71a2c6c223befe02f5d02de978b2f6136cb00b4e5dd521757dbcd2b698052957b7ec450aed2bcc843e6e94f55cecdd8db1a37c4ed7dc27b37465d3b5b93abf80a3496ff759c8d504e50dca1363b724da70e4ef4b5d1d67ce214ac92a1bf08ad918df7c8fa56ca210a4f5ca6c4cfdb5e0dfddf7255f737d6a137d74b35ae4b6a41e856ec69de1921293fa6225524f4c3fa84cc1a3908139668eb8a719db58baf0486292995a09866ce4cbab5297f1f838bcd11ce241d14e53a609a8d96aad112491e4fd54483c2822df5980d3802d04bb50adc1a179773a03430e47bebce09d58c14e1a523e4b8ce22140fbf364b8353fe478224b11ca4299f6a9186d4af1fbeffe866cdeeeb5d9ad6d65b1ad7f29d4e4f52bde140ec6ace4dd009c24f5a95485e1d4772a7ed5615c58f4b52148917a9d04fcf7f25062345a36effb1bf6c29ca4d39b9075473161cfabfbd29694199aaa9e7ac24f579cbec301bf8c7389416be52785610583bf057d7acece172e60601d51447e5b2ffa6001810171d27f8250191e707182dac3839a0c668d67821dd8d1437bc674b38fe85a4eed3c837fc8c61e0d35d62b3b17a8bcdc179fd754ee2b29abc236d6acfc971be2a61d773a859e20091366e52fb60b1403f07ada7ade8513418de56901bcad3bdd12d8891cc1a729b5d918dd391ce9e61293260b87d7a774ae8fc0e97c9e7a2f92c5a8dd30ed0862a2481e959f737064e44849aa6d0ae6460512668a63145204d12b2f3f3861a33265e741050650a4e8d323d69c54dfeeb64c36dd704bd499b6e7c6640f1d2d6369ee2c1aaa39cead01b9d65c3305018f1d4c4543c37ba19bf14035f65dff76f60711a393911ed94ead81835ffd8995e8c86bfbf50a21b011ad0ba982f93380d8ecbbe4875e0e3c82be418274eb6c0f830916d91d3b8e1e93fa13bc722cd3daf3418d435967f583708a44e40a1fa8ec0d502b8fc8b3b17c6f391d947cf2eba556a2800a494bfa8215aee7e940722de576d6ff5e97fc5c14474be21ca5f2004625a3ae30a14645e6a05bd345add01b648f5083b35025f9e635ce6a5b74c029fadb65158ee1484ec9840551b7bbe217a7b6874bf71f6d94fa0f04b58b7171234da3d5ef8c0eee2240c66aaf2d02cf689c8598257dd7ece8fa8b59ae05aa8e4bda09c8539506558f95f512411031be75f9b01dc35e16f9780984540d3ffb6f13e4f9934a4abf8e4c9c84051f42f4aa564a711a69e6474b29b094431bef2ff6d8c301746974334c73060b312052cae215a0af4430ce4d0b0fafbd473bb2c332da7c079be44a60f0a74b0fbec0a12e8a9ae1372bc0843683711d8cd7abf7aa031fe1c49cc4b959aa4de8cb3773ac2c9d397decbfc8c6d3566a6e7c10656880bf78795d63860d518e757faf7ac1b4feccf2fde5b6d3ca162a9646b60dc60f42bd5eca13820c577b5b6d3f391a96c32f14bc83776fcde9fc888e6223f1e57fb6c6ff12cd7336220a97d75abbc3926f22c83425461e2cc94e7d4ff872bb4c6cb864c44277e0053382e234307e56004ff2deb70038b8f4ed554835dd2ce0a42b367d1141008445f09171e6e8d9fded83019ad6959b857b32208d75eec9981a72d690f5526c1db35152284366ff94fa7a432dcded3f501c232f1c61e78ff75e920a8c8bf952229878e1a9ea1b30835b11cb45019c44bd3f5d9349130186593e9298e5be2e47eeeae9b63630eebf2ac6aecfe24357ffc28f43fe6fa8d5880c299c5af675612c218e1d6d4543955d709600af62630a8f3e658a56b4e14e97141875f598c31d0e3a5fab40ddfe1e83741872ce4090f295dfc184d6e7d599ef74bcbf8f285b7f21623d7798509a4ca29131c10fbc9b15873ef7226515fde7be61c2350cdb73cc8eb049a4b52870dd7d769a41a7f245bfaf598953b1c680eeb871c719e8a33f1891005adb55dcfd0c9403d8a3513f029c0401c28bff27821429fa738c87d030fdc4bb89148474d3d8022a3a2c416a9955b0e0324b65315eeeccea0a79c0cab0de02af8bf464edfa32fcec0fee1ed806e6a58c840e517e7ae082d2a74c6efd714a1df7f849ebaba06e8d1ad98a960cf2420810accda0ef829bee0808ba5a392c0a86bfbd4a52955bf03574a9e449b56ac080714847ecf2e3bbe4d6203338ff0f698b61aefb265d92925f1e28764c67245f0db612dba7fad7cc141aeeae96f5aa38865942c5e954be09beaf461180da3bdc5b63f674e4f66e483c6e2ba13714224f5ba2ae76c400b7a3820813b1ae845d3d264ac8b39cb1c10ed9a8e7006c79baea6818855818e1c7a133bc78f32cf7314052e92f198451048d70d1e8547b0b394861244bf00f6b3f4fcb80eb4087784302b14e93cdd5a0af9af7a72d5da03e9e794f69e636b95877bbf83f616fa4b7f7f24f45ff407d05a58b965b2e7d3013523e16a6adde2ac1b868935e9a60d8bc4601e4660056797634614c17223233f43d40d8e1be173b05b12480969011d20d9608c0f7efadee14feaf5fee6de8138648edd94735be4c8df60c986886bdb96897c98fc80ff1db55785222bd02dcf6d98dc36499e02073d53fe2e125a5442e7c98dd7a74b4b5750e7924de2f644ed882c613f9694d16d11cb0f17a1bbb4fae96bc930f0351b41051bd9dfaa89fffb750a7eaa21ff022160222d80130d0d921701aa9b32261b275b39db301b858d9cad8d0d818dc686c0d6c686c0466343606b634360a3b121b0b5b121b0d1d810d8dad810d8686c086c6d6c086c343604b6363604361a1b025b1b1b0a7c5b5df30326c444d8b2b621c26a1b7b085bd21611d8dac61096a30922a8b5ed8720254d1041bd362911a4c4268d0b4a6b50e80d4febb68a2e3d8f30c1d927e828df28f68063ca3e8cfdf8968e26cb722531cab3cc0051321e5b79d91c4f98ecbd07cda43c631687d300ec440e7eed82531b1a7fba40d29b34362dad2ef27229a307354c11dc9bc4825a372bd9c808eb429e77f991542be3187c9103bc296f7ef7ecfb6a003933ccf9a17a637031337b6ef49b083ecdb0dc15059ff0b231a4409cde58f06a234be4cff46cd49d716e0a7922ce4aa81cd0e4fb439325501f8d467e63967dcef008bd7f3f5ec57598a571cc6ffa5394e168b9d7eaeb353165f6a82f90bbe3b61427aaf015f1c5af49d8ed4daf28c0f04fafa1a82ebaf8ae4474a60437f03b482e1dc7c180ebd30aa703d1366f194bd593693f0947939e65df8a2099f19666ac7009a86e25b184a771dcb27b0991c6dc96750da11c54b7c473f9cfa444cee3d7d9af8b0925398685495cadf9550d641b9b6f6addfd2b61b9eccd23332b3de994d4c0f37e5eb5e089cbeddc0c095da43a8b1a4723f7aedc00595c218e6cd4b4f07005f89175074e2b27f2ded393fef3fe24298862b14472ae28d3c618cbfeb3500a293528e81a20cede03b10155ee354bcd103a107e828708bc12f800f8da70a65a4a28f1ff5c7cc501d3e5508f39797461aa666f532426a6ea816a4125b5a462a0685bf49a91e9a856051a957df41161f3c52748cc777654d8d144645fc343be1041cef86530b886bb26c20dfac099d3da681793779d9cc6f2041d498b1334126dc85148b423a320d94e8a8eb405190a89566414e4dac9d090b5264527df0223db0b6643f2cd0d677ba89f7bdf60ff2a1d5b0c2207ed0591714178ad9f8113dec8c6a6f70b953db894e0cf4167b41c711bab4e1a0ade59310a65cdce539d64b784b858a3bad734c59a644a438b299cfa9a274eb0de0ccf5b65101f94a58979c4ec36f3bec9b4376aaef271f3e92ed4b11bff6afdfc443cbef07bef6a5dea3a3a8a9913ea8a8daae039bc0122052250b57ac5d332f112a58de1a7ff6644293a34e1f1dfc4c5fb4389df62eae0d7fab2b9f5902a1e6ff1c2a1a91e4073cef7984de806b97014e8a7c2ce5f398cdc6f979c93f24ca329e26c41eb7ba44dc19ac4ee35233c1a4b9dc563fb988409b1b738f573d3941941140158617672d4105e6157cbae794cfaaba12c297327ae02e5cd5f05816368c658aefd802a1086eb718c86d39ca62d43b8bc378c12799d56e54535e00c99eb3d64f80a2e1a8f943b46939d8e9f49562e69b7f083073710c342a80e96f16dc97b12b5fae4da2d205bd534851139ba4f27363be41221df64324ac4d7357609b93206dbd0a1fd67e8679afbba2ef2d856388ca520cd88129eb8da838e433707370fb2f0342a1e7c2e07295c2a869dda0957a6bd9018f15068bc2a16be400588c7e7b1b040af16afbde4492ca645d488dff38881ccfa9bc737564c8580638f5159793c647217c547706fe7b01d1a4cbd0b589937979839104bc27aebfcc716750fb174ee13f68a5e61db1bbf73115bacc35441c6a6a9d227e35bced26ae9bbfca2887976ba3d8f63dca51248b999a21a6351b6e58a84dadce75ded94ad5a9e63aacd79a59afc9441ccce58111bdd33fa7697571918c3c936b38c45eff8d1213a294bc7ced6a94e45bde3df36f03d091cff2d18d357f569e1fa9075efb52457be40149aa9d99c205140651d309244bc267783c83189c253397f81a73b961fb501c436e71ea030b92bc7c3f4b9e6e484b6711ad3579382fc2af2d9000b69772082502c12a41df71b1ddb334910b0963878b78d52e825ecd898d7daec2b2fc43d7d51eca8add8ac982a26c757f15096a9ea30cfc23f0477467dd37467db79b9879b11a17aee200afff0694847ab5d4a6d54eb04cda0c9ab890e9a7101fe7f20836ba3a90a6ac7646e55c6310eb33c7e5a73cb84498369c6befbae1cbb9dce0f342354f8e950de2c9b753bf313f343784b4e980d790d6af7bc70c8a65a984e60217d84eaccde2092605101adbc105463f5337c42e152d34346cedd4ce0782803f18c2582a57b5bee8bbdf90f1e2a8f752ebe752739772630b482f9e1d2c9c163aabcc7ee1ab789c28c9e38ff79a1fa85afda8956344bbb0bb2883f3507271db8cfd68f9ef35b8786d7125189177fe0d6e88bf078357b06142577ab4a142c3d3a80b79254ff0601874b7cc892602602940b502da0c7011ba69d174898b96305e3a8068d7e8714ac0a6ba2df3fb5f9ce3e47da2cf980ab4272e7f622ebe0f50484827d074c52d46736c535a56b865645bd1e0eebf53c12aa009cfc50a88373d269fc3f36b69021f3a964c4522ebc59bb88784dc7a6d411739d13b2850e43958c90170282ce89a7d637fff0a736c754b0fc3962e04c31d14737d834734b8d1b88e6d12bdd4ca8c2777063866cd43bfbea6e3c14ec6f51faefc84be7f90661fb87ce1ffc6acbdf7ea2c1cc8ce65300b0df4729261dc59fda289d0aedfa1b441f3fe99787edf6fcb1dc1f21009921f5c53898861963e759c4f062e24e45e3ce5fc13545608dba2370ff592e70cd10dc7d8a6225b1da064ea31899572e25899ee6d251ea97ee55dbb8f96cf7fd24a37c40d93bebf883c5a1c705f58f1f9a89bf32fc845fc459f4fc78481bc7d7b38cd73dfc2978db9f4acc09a12e50b0409fa5548ec75aceadc6263f50f6e748465fe2538da34787ca8f7d132aa779409ec2d9135c0a1a28771add07a3df03b6e0f6a8c7c87fb4e7ba1f9bdb7f8c4efce8ff9121b0c4e6588bd3825f752df4ff87d7fc99cc0c25dd3fd88ce706f240c6f27cca64efb8d1f7389c196fc3f1fc3928927607e54873c45d972d02b698c84792289fbdb62acff3a567370c81a293c19279a0130adc9c53f3a2cbd94c7a6162699bf48731a7d559aa2c04bb69e0a074850ea5fbf8e7e8e3e7d26e789d4e21ba6b56baf985fcd66088b0bd36a275f3f6b0c1254e08fc346d43c0acf9eb62e53f0f87e593a3fa886dedd3093f6e90ed1b3cdeaca690ecca9a8cc7a6e65a17a7f65935991366a05520747e7b672de39679a6590eb439bb000ef428255a0e995924f0cc156b8e201ed448318388c44a7496b6b681007b135f9868304c1513a8a9dd85b3de4fa8ffbb9189754057115b25f1ff12b923c83b5313049489d3742ed1715cbab0574142f4dc5a0840bef439e149f4361f1081ff7ce573c8bdaaf3af8984d5b81667dbcd43a2c5211be583a54a53a5c946b5acde4482a43881dec741c68931a4f8404ab8a1d13500b692225124011be7bd611d31e4a1ecd2cbdbb813b368c2a30cddfe2302376849cf0035b81cb2f5082b7813808ce2570adb431b03d05c7feabb97050f0d8aeb1c21f6cfa2e1f572fd62801c633c4641b10d9705ab6ed7d8be669c9b3f613b2a58fc84886cf56cd45d9498791991f6f356e172d1741fdd391114a1189d838e6edbd0d709b7a2339cfdfcdea0e7846acdf21b3a5a73b2b3c2b985616100fab920741f817f50517eb0c5dc9663b1d988769823950fdebf0bd847d210197fa5ced0ae4c85cf3e76f279344477ad42cdec4fa3a1db7035c40d2ee8788a82efefab7f59125b0147e449f774b50f274cd8af2339a8e5f5f3ddaef5e63a99e634a29921701fd471aae352ec7bcb3c05595ec5b031f3d3dd5594ff886477d44a64cfd1895b6c55f3bddf52810e851df8ae504022b82175dac2c72067f0947cd69168b6ffaadeef3a3e0573a16687a0e4ca1c5fe729a4aba4cc0912c2c11a10e11520b4f8b30cb3c043dd54e58df877f1a5dadfbbc8fa6fb3b6ad76aedaee4b41de9456bf0a4fde5eeff7d790940abb20e57099208f5334d9151b85cc0def73097321167a0c3b7b36fea35ca827a970dcad659012c040909c97ada39f55aa59ca466e8743bea672f63006d943fa3489bd8137a7b528bce01dff83db894ac1397a4af2e834a227185570627d4e5a9bbacea17444c641d8cba1a12d20e246894aa419d2187064afb4d56cf03220b72a45d9b625b9898d8a68832140d561e0e87d2834ea2e363ca30b0384d642c1639560b2b18a9114341d0628ae031e18d16e71208bdf11cae829554d2160b691e088152c1840291a00ac1e84426bcd62c377b03040da2814bc2e0826bb161849d1866180ea31e0815b6868ec4e703e431d0085ae85c106eb60c403b55129381d102c560d309aa60dc70cd567c700d5745c7169a2e564dc90dae65ddb06d902c376ee1a01ac45ac763d3576fb581d187b3f7163f6c0c2c1d0138b035b6f162eac9e99b8d97b607160e98dc181ad170347764f6c9c0cbd303830f562e0c6ee85858bb9273677865e0c5cd87a307063f5c0c8cdd41b93034b0f064eac1ed8b8d932f945922bf23324a7c76f47ee8d1f18b9163f18546db383a035c082c688e80bd3b9c5083ad7388ec28241d31d6932a385e7d7b46143f8f45097bcaa47913d53725eb2b156816376cf9825beaf6bf447d9c2ddffadc59e2ce118a407d659f263e7085f98cf4f69e648a102161e9d7979664c2e290bfbca1c90776bb8cca72f338a1f25da5376b6381384c0cb0081430163d216bf5a82c2984523c2dba6282fbd55960db3ab4639bb0a2bb79246d1c2c0a2320fe2f6149c5b42174db53b6cc36e3ba6f811eb537fa8c213c370ffc0a366da0c01ff49e63b2ce724b4de005921e3307f2faa09482683da1004165b100b33ecd66a3329869a849f58e79c46fea303de95b6096d6c18aee27866ad0f1da6ab8c52b564d881b39a3a46c8b72dd482c2fca0830557112b67104ecc6210340328975a52f2d904d12f634873b4f38212f001f0f743cf0367dbd2e7409db98f1e501de0a3042b569d904badb2107f4a9fa693c8303d7fe27a872589b87f5d9b42a5eb8f8fecb959f9501956035c17853287d05cf0c69fa8d5894bf188f9a250d0c4bcbd2b28685eef3b1c1e1429292ef26bb2747565fab36d1a0e23cb249798aa51258e067b5f43a6a3f550fd24b5907461208953df0320fe91e1738eb0800e49f6978ae4491f9ee7ffb3b11d79a0c86d708b16e672b0b71692d61be557f21729d7ee19b0f8fd4d78b269f5738f175ae82dac8bd85733807e2c4ce6fe0a2c009a30187432cb2d713df61dcc90111eaa693c6205c57d09d95f071bcb26c008b6584aa89bda399f6df656aa3231cf676d076ac12432d04c84c6fec89654189886ad87c51d5f35cc51aecd146787a1d86ea4714c93e20fb0ff1bbf981471123a6b79301a24d2a5517e9b1d45021af9693b64ed81ca276e9807fa185fe0748a2758b00f145ddd8c3c3fc338f648c84a58c821140bca2c1453c1b4ede3254aee5dc92fcccd7c309ed644ea4791b91e9693a6ea500e956176e0fa2cb24e6dd644c02d8a64ca26e850e3880998f818dacfe47e4dfdea3eee6651efca49b0adbbb1ab68ca280e5fae9df3522094840d61a53438de066f8745a90d456ba40ad75e8bb2f58f2662e7a98d55c6787ddc29e4fcf1c2bb22ad0ed81950eeb74938d6638c33bc068f44e6d8001f545c8be2ee30243cbea7fbdb80fd4ba791a2a466dba48edb2271014b64f1c4eb8fab1e0a7f29c18f3efcb56bda1ea89ed088fe56913114ab651c4b08835341ee9aa375f5f4e03fb789a1b1be8bd22c393b677f237e48d51f4a833b2e35cfc147d84f9bfbd4fdf0e7032bb5b7964563051b5393810cc8c0fc0f22810f7b299271a59b4fa3a160db24cb7dec9d6adc65ed736bafa6ebcdcf7c571335260653be36a9db1dc80e96b4c1bd16c5af30aa257e054dd90bf2962dacb149db45953038829bcd8ba566a5afabf1e03323bed2a77a9418ad5afa64f355e495d8985b15a0bd9e5c6c3577e36c91a09431438a939720618e6bb30f15c91b47b1e03929805d00b687f2c5fb1853e96b3da41190ba5509060e1b9f0777077d543326493512cd36dedd96ec883c39f904a010613bbd07538ab081a934211916f503ddf4dafc8efcc2a5841683204915728ddc694210fad434980821f9292cb4a0d52e68e016226e615cd1bc9b101e60f18929952e109d5240a069e1064cabd4d3cc355755c8efc21b260ab8321368458f3b23917c8c238b36d234be2bb9b8e35a2cd48ade396686693971d1978bb90e151cf115a5bf8f17caf194540339807d7d0e04b39c2a4773098e2955d792dcb181e37433a3e1a8d92d6384dc2a7f7fef82acf765f4a19289cd9878a4b5647805661e14faad13065d32f7b8b59d271cc4ff8fefa3a4d3ffaae3eb62b8e0ceb34d29780abb30f10953883bd087e652dcf7f1f43f731ea93e0ee06bafbd4e626d2409b753fb677870b2e2018d341d997f1139ced7edb07cbd047c3dc5913eee55ecfcd7f26e7e5ee5e1439934c38d5af8b53f2e2bb1e37caa52da748fb7c8dbb4e8e79367c7eda6e0e6d20257409f7e189ff31fdeac05d66e858ac9410c48fa5b5582b423b40207bcc65d55a04ac79ec4254b7d39476696ade2321d86e9e94bcb7f203e5f925b084b4eb6fda732cbe3e5cc30f2c0d47a4adba0aebc137299d78d0e8d0c84434c9e1929a190b69a90330e48b5eadc890efbb2024fa53c6cdf8b40e4999b5cb451d3ed0a56809a0dafb055b63a39b4fae0ae37721c2b7f9eb826b88972ccbaf06deac65865b0245837846d47346ba728143dfd1be261f632948561db76bae12752a7019fbf1fb5694f8e888c92d1a7c300b02e697ad73f71df0b0fe67ffbf911abf3154d199473319d8e337eee7ff830601a096dfdb81402f9b4fbbda8707408187650f749459608c5768ce0ca809ef9b33cd6e0d87dc91aa5eda6c14b93a249bd2ce92a063afefbf7a31ffdfa5cf4e00a18de1f2976b99dabcba87476e41681ef40fb555b146e9c3eedf7fc189ea3175446494db2b7b80e1cf058cbfd2119b773f62a8514c81f41b3172747c58c4971d81ab3d9ba78c0e58bc596dd9444522167bb7d5e745e1e8cb8d2ae50e67ffce3656c1129a3bd28a74beffc55339843c57c65662033afcd55db0b273e3cb6cc2d876f2ac4a94da3888fa59ad6b98b0356c48bfa93f68d736380d917df906437100e4c860c60db46ba7d6841f5a2d3d11b89ab11a9ae38befd51906f0e20c51c1751ea791ff970f12980a702f8b2671ed7c8691ea86aa0b8238f28ea3f999b27ab9ea6f11e9cbdba225efcbc3e0a715430e03b08544f1fcf1bd05d5d392f0ebc91b83da0fa59d0a10df8f38a446ce317ef14501dc7e8ea512698e70208890a3792add1a0615fe16e56c0ea5e84fafe1b6115ef4d9109374af53526a8453e1258479c3a2dd29b539b45f03c19431f568721c74dcf75fd89f6c893e2740499114173e1833b3617932d2a525345df46d7731a1a78ef1730e8d3300118a838fd3f9471056905b0bce8e49896228d02aaaac45912758748871bfcb1e11f6cea098224567d6cfe09dd5dd1474bc1b32b877ab796316dbbb02ad42065294d87eb37023db472d4130ba34e47c561a5eab106f6910c3f2f415e7b9b54be9a5534b38e564008711856ea2010a6b67a3fc4fe3dbd239b58891152713911becdcb70eb413e907e5088c046dbdaf9822d49913e50e4128489ae344cc83a6c9603240196e66b15a2adcea2d58ee95f9dbf7b713fda803a7823a3e89e9b248d0c782b28976dbba89defb31d0ac150992a4b6bed0a14cfcb5caecd6cf145d04449442438846fbfd21329051ebb20cb468c14de644b6863ac60f76d6690fc582249d7a3aabdc35203d5f097f1bcb06b6f9ab5ce18a91b08f133510cc0fffa22c91e7fc8e2698ffba2a3f954fc8f39e99043e99aa276f209cb38f19774d7a40a812e8a57891d7b1bcc4e9ca294e8a3e87e4d9ee56fa8ca319f50d45cd805b5aec51c8c5cb752214f7578ef74c44df76c0d16670f797e307199092835c675f9613248a899be97cef5948dc31d41d1b9b3328453c1fe258740feaf86b79fd29d6902618adc8e72fdb92211ff7821996198c832d4dbc258f3887525869665004ef5c011482fa1c0a93b3efd4a85a236a42939f32ae9db31fc075ccb8cf441d566678a270c889dd2e9d61767e37d8866628eb9d660a8bfb4fcbaa16b9247b74e1b84687ee66cd66d43b973c5a2cca51847c083389aa3587f0d9e388dd29fb61647bc3f7d94e1014efc37cb6fa68bceedbafd9f44f6179b63445b9b44410b4c81d6754c714a3de6a23f1b2bc6d2a8120b52cf0d86c8bfb294a7c3aa11ee0c6c29b94d52a64f880f3f1f1502a22dbd86b5c57536cbc3230dea77498f8e226fd830e1656656a21cbe303544e6ef2b658157a4a5462f18b5c91d14ef06b1958dc7b0ef7f4425f044d8e3e6ddf55d6678b322805e9ba28927e43462cf3e0d913060448b1155508c656564b0c6dd4033c53fd0e4259006576ab13b6a81a85381dfe59e8f7a250c224a5b183bdb404b2c6c2b8dab5aa6e0ccec5e5572df0a01cb0ec74ab72c95954ce31eb3eb12e709f524bff5ee5f2576fda59a34c06e5f7a2193dfc168c98f92a281a1d0604baac079a068a2caedfe9e2467fdbd2a34df48364e730dde2960ad9fc3ee415acc7d418d5adde7844e2e98a38d59eda2b217ea0f4f78fe3738f84d5c9d5aa71966c3336bea9d922423f66703abc5c5af06448c02ce7d44780b3750f26439c33f3f3f3f3f3f3f3fcb3908acb6022541a62495b0b4cb48c5402ea524534a29123dab000400000000000000b043db9b90305cc90b7d0b730b755d998c4ba5c2420d2798d226d9f6850e35796982f1b2894c1455cbbcd3aa508309c6d93b5d1b292f88dc8ba0c6128c1174085b228b514309359260c87141e32a964e6a291835906050fabe6523f4790ea2a50c6a1cc1a474b01cbbd0bbe1152c1c95871a46a8510483500b3535bb17221ebc3dd42082312d9a4d343f7bd37f95a1c6100c2975bc24db101243bf420d219893d83efbb04f8d2098f3fbb49b083fa347c1066edc08430d2018adf3f579aaa8733dc9a1558a0c32709011c6196afcc06421579a1b721d63e03004d4f08129564e4d763b79da1f08357a60ea1773f550174b46d6850d63c30b0ad8b871c3093578608a26a3923c613e22c31a3b305686d0dba172cabfe9006be4c0a0acb4f56dc90e512763885156030726c95d61264ed211fab3408d1b986c55d5523c21f2d67331be48adc3c5f8c201376eb40e1574d5b081d9c3aa2521dc4a95bcd4a881298e6fe98e6176a76512d4a081397cc955d21e5b3f4434e0c5561268ccc2e0aa2ee2f5238d8eee0236bca0808d1d638ca10127d09085797489b2ea6ce943d258a0110b737a10a253987ab6f1bab0c1011b5dd888c08e06c301376e88f13b763418e9c60d58105582a5a54d3cbb8c1d5f8831c61766628cf105b147d07805173f22c8a70e0e345cf18993bd6a5247860a89038d569426e5bcfd396bcc7cac386fdb4711d10fb2ef32d05885d7e9f77942030d55209f43aa5c9ed25b2f1847a5e238cfbac9336fd98f81062a144fc2a3c8d36ba36425f8828c2b1c85081aa7d054b88ca43fb9b6840c344c91858d09312663a30b1b5e58814629ce90dc17b6eee46413292c9b532adedde8fc4741f8d0d6298bf29fe88b82d3ef11e779fafc502c41dc45d88bd77150104f47c8294d14b934fa44bad4a5a84f5e1311792221a48aea396d21954e27ec3ff7d4d14644f90f27ae204185f89c4d1ca3b54ac79bd3a51e4de09f2faa9fbbf4c93b13779296b3245541de9830c74598e8f02536b1253b6db68466da562ca40c6531ae0497258bb4b36849ad94f04da953652a9378e249fe0e4b024d1f3d399abe515a46c24f417ac855cf27a290c042c88a58692c8f682389894fb0e8133c479ccb54bca8a62a45be11a451fa7236a1c3c41881981be9a92ecb85d8220efa3149ba7fa656a5884af9b60715a56bfa445ce2e5eebd3acae9082230f5ef2fe2ba9222e410cc6856c6a40af62536044a7e07116eb464bda46c028d4268162b450bb1ca65b6dddb62fdc7f479ed1422041a843066a9244a843b4997828330c504b522fca3e7180edc414310a66d358d6cfa746c850261f00b2e298baca0133c8030974e59d52a56789efe60f6dfdafb10413cae7e30a71cf4524e8bedb3953e98c7ad4fe4a4224708423e98aeb5ff9418bda0c4851546181138048d3d18d458d00d252ea7eea407937ce5881f6c23b7f6793025eb2fe1d1e74fd47830f5db864aa1a2e594457730bc491d8f24db46e3b683e9cb45b46988e9e4711dcc154dd35cbe66b4890ea6af10c74d2ce9dcfecec19c744747fc2c9153a4c8c15c9f4c75e414d25a827130d678fc89eb9856619243ab04627c5146038a05801234e0604ad3a5c47d481674d66f30d857e7a7896e4aa77154612582861b4c65b6dad9d3a90de6be139df488af54d3b3c1f4793b7fa7245f7fa13598b488cfbebe10d63d27004305078c1643c70500a00a1a6a30a9243a43b4a7fb5e3e0de6906821cf8eb890361a4c661fd93d577e95d4cf60acd20e79151617ea2643870ad0ebf812b849fd14d8a1820adcb8a1e34fa0a3c320650180020d3398848d7adcc80a632d7a60c73f8046190c2a6479e990ec42db050d3218ef3acae7111f8249ca8ec1143b8869d9cf75a35262307852f2de4a29a52a6fde6380512a40230ca60e77495e4eaadb72b1a20106d368dafac6dcbf279d2f98745dfa5152f29fd6688c1d387290a10214a0076878c1204ee5aecb1f84d0be971734ba60324f2594d6926779ae2e74ec10c39c00f58e0de8684019010d2e98cee45e85bd09d1798203ad0c8d2d182b265748e179665ecea1aa0593d01ff235316b1a59301a583068999ff8613b67e9fd0234ae5037685821695421695021694c216948c16844e16840016f10e4008d271c0d27248d2698f3a54e419476f11b35134c69574e95892046b48903052ac0718231c600432d0336bae015d05882392cadb6ef895e105a25185784ce295e6c2fd88446120c56a77384a02ac4070c301aa1180eb0a28104e38632cb9d4452edd43002348e60be2ee5232c59ce134d4630cfa7e89d9368ecde5f047399cb886aef944c732298e62e44b62853494f43304bcc1e97605b15264808a6384205b536755aed20184fc7ce923b2979903110cce923a80f93a03b56fa03936411a6d27f5a9093e203738987cea1b4e2afdf03935e3821412c448f8cd0e0812965be6ec85e5f98a41d98c7a4be6953ddca80860eccafa7f131fb2999cac98139a89cd38a7c9fb4f3d2c081797bcd7d5d2f4f12271a3730fe9905f16ea65aeab181419ec4f30b3f57b165a45103b3484f73b91ed1a081d13a29558f70417a2467618e215f5f23c63f08932c8c6b21e7521613aa5d140bb37c4a6d42ccd5447b6051376cc62b4c6e7721ff6775d773d01575234930a315c634afcb96217efad33c98c10af3dbe534e1b6de83c08c55984cc4099246e5f2e4cf053354615051ec44c46b875ec8a5c2dca22bbb96368f21275498d208ab581df7bf61cf3885d9cee4a964932a27bd29cce57d1edd3fe924aa748a5b14134b2a8814750304334661aed2956387dca7342c426688c22cca925092fcc2ac94c2402db82dcc0885295dcbc7c822adde4ea030e552e9835a975d53499f30c9ce47d2d6d852d57bc29c2e2f9f2ecd2df974274cefb7a7730e1e848e9b13a6b07f314f6b84897b3761ee3d25bed4447588ab264c93f3e90f9b75fe69cd84414e34520c118b242a260ce6b7172c897417db7209e389aae0d759b184f1b36453fa53a7d44f254c9b63aa520c55592ba4843982a71139adbe09c91551cc9884f14dde26e71411143324613cd5d5326ae9b3d69443ef13332261cefdd92bf54c3499ddb861a30b1b637451011b5d786206248cf1a57436cfcf4197be3198f108d39d3469fa3a5746be1c6148211f21c8b0be9873234c1e235ef8cedab1bc5a610623cc3526f462e687464a29c28c45983fd7db769eff3839a80893ca6afdf03974495d13618a93238d4690d5b624220c6b39ae87147287205f7f4a5e4262a918c214c467c995c4a410ed9fce5ab9fd2a4d0845fb25691ee297dc6f1097a810622129c74b27083ccfaf2a79669781304fd029a4f89721cbb7198020a9d2397d6f92cd7fe02b5bb6beec5693f383d1946a79f46471133484197dd0f45990f525fa42c2076384b2e421585e8ee21e189139d266d383a77f7325d7891159f3600ae92e9fd0daeb155429ccc0035ffa3c3c4d168fef704a3369b275ecc5eacb48a1a0c3b83266d8c160292ca43fe931ffb9327e0236bab0518b820ee39630a30e26cd0bdd0f112c9c5467d061c61c4cdae969e9a427f97d961666c8c1946d763f69970c5d7a1ccca7c7dcaab4c58b239c0107738d4cd77789b67f9312cc788339959216c1a42487d6158a60861bb00de6b3a07eddac3f75850db886535ec3bccbcbb26bab573a66a8c15c3ae5b6e7906a2f726c05950643303f2de77adaee271acc39e5149d79f5a452a30012669cc190d3abc93ced39557a6d7841815f818e2f1cd585196630091d3f462cfd7a1ea33298e4e5d7b41416b79f371dcc2083e9741ebda39392a2d248c88c31a04a7698859c7e7e825fe8f06286188c16627634f948a29fe09f0c1c627c8e1d38ac84c1b46e3e3a5af58cca1d16bc1856c5ca0c30186e929ad11a26ff2d0e1d63e06041eb281298f105938e27ffd5f7b2cbafca2a0d98e10553123ac40f41dcff4287174880195d3088b411a6e34ea91ced1d5f82b5e1c503fe0b1d5e70c194bb5a25eaf7ee639fb1059312375bea496625ad8cb1438c085cb1400870a4195a304911ad7bab3172d76ec18b81835817361e05657821466b20f553206f77ccc882b9422d440ad992fd8533b060f0746fa5f3e85cc1a46efa3cc9fa10baaa154cd12f05dd5d1bb2cc9243ab0c1d3bd68b9b51852badc509ea2bb42b4f9841059c3105bc2105bc7161cc8802ce8042e198f1849be184e3c08c267cbf82cf217c48c164962ad6fe635be99a438b8c3150702a858f2898b3e45762ae78ec0c5555e1030a26599161f223e50c11fb7882d126874bdeba3e6b75f0e104635f04612a23e24c742fccf0d10493faaa55afb470b2823ff86082e1b554d609ab16913e3ef85882394d8cedba10a9df7e25986d443ca5e5ba54084149304dca4955fe9330126c2418458e0e5237dcbf5e4dc2c711cc9ba293ccfc5f85d16b0b1f4630775cca23aa63672c9b41f8288229594c1f75dfb71d3a114c9ff74f4f1a7178dd153e8660ee3c539d6afab2fd058e320e0ed331c68e0de04001190cd8d10273e3c68e163c133e8460c8656f33cacd4b792408061fd54ea723285df2c7c1e40308c6492a99ec36cdef1c2954c2c70f4cdd1f82eb484b6182ed03e3080b274487f58871ad6c071f3d30976d47b14b3a7ca9200fcc49b4c5cb51b67a52b203530eddfa1b3a9ef8bd3a306704f73e69a34be42e078609233a46a867d987dcb8b103350ac2d0c1070eccae17d783d09318a95346bcf07103f3c8c9a8e8e93ccea54b071800067a47011908860f1b182b8a5750e22676f2332c7cd4c01054e4e468e157ec549cf04103c304a54a579d4eb3f19985218e450e21e6435997050f59986c338492259f58983d2be8149d3f2778c0c21cc45d4a5927ef8abcb8e0f10a731455d1f76b39c7f97368690e3c5c61b4db3521264c4e22d94c82472bcc93c33a927aadb56cc9a1b5da85072b8c6d51bf4cee5ef09479acc27c597c23950cd350b11ccaaa30adcaec69eafbca8aa930cbdac7ec3baf30f7a0c2209f2161725e75994f61ea9cd31f75d77b2b690a53e7f0f1cad9b1e5b152984ec911edf15b97fe2285a983f6a43aad554a1a8541a4ef1c7243f7db1a468b8136bc7880280ca262a14f8487f4b90f85413ebdc37b8f9eac0d8ad4725acf097a63b505030cb544787cc218214faa3295729acd3d61d0bb2fb516af6a5c04061865e8d8919d304b98b9f1bbe06b41597870c2702afa25b56c5a113c36519ed4dfa3bf3a449a305b842c29953a736891ca8441e7972ca146840ed9c761c30b0ad8f0c084e1b4d9a7b02e42c50ab98439fcb68898291756324ab5c0dcb8e16109c35878e6989fcc3a951c5a6424066e7471e346175dd8f0327474a002762ad0e20a1e9530a41c115a77fcb2fd420943ca6a42c52758bf79e70b30c0e824c617a4001e93400f49982c6e8d92ffa583a930163c22610e13e926629f04b123248cd73b1f9f4599675be8f108534ed926a5e0ad113ee8e108f56844f160847a2c425be0a1088f446421e294f64b3bc7d2830146bbf78d1b5fb40e2fb22e00abf038445a54fd8e903827cea1376e84513a76a060141e86c81b5508f520c43f9f4475fa0791b02d9d1d796f4f108ad4ed0b77a2dd2281c8e54b8c0c395d41f9020f4098777dcebd3eac4c337e24c605fe6048393ad354268a501d3f183c5690adc831299eaa0f26a54c629ade98d011e2c107bf3fdd945896186966c0630f8c7e0e3a1777ef2a7a30fea8cfb2a32abf4879f36052dae2485371d9f354f0609ea47c3c04f927f3447ee0710793699e782a5dc93e497630e9f3b8a02c2f5bce5d07935e8b977348bfa172e860d4cd7c1d355e31ece581c71c8c576ddb6ddb312ce92107d3cf49b418298a83d9739c3c2f5984fa16ab5ce001074358b318a1ecb28a6c17f0788369ddc27492694b925f0e2d1c63ecc081e6e10643885b275456342f4ec410a305ef618ca1c301ead10653e5575a7cc5da09150f369884da7c5ca9770b1e6b30861297be2b6b9a8dae06d3e9a4d457279da6b2c300153cd260fc946743bf538edd88ada0071e6830cca59ce4560a92948c1e67307fee9cf64c95c70cd1c30ca670ef9284c8dff70873282a7b8f3298b4b5d29d0ee15d2f4c4629ad117890c128233e7e89ef301a72adb540087028c0630ca620eef723e80822854a0ead1246ebd0b1800580014687b1811b37ce430c46ddd1cf7ccfefbeb10a50c064908102328c4718ea86043cc020028f2f98bb5312a526fd564c645e40428647174c1f5e59d4a8b10a3b71e11887c716d2430ba74a48a2a1f131a35a95147864c19c4f5aa6e68bab8a96940716cc61654988f0c9efded383c715ccd62d7282e7965910ad6048bae2a9b44a9469ebeee051056396ac4d1351fbbf7c0bdec55880158e22838cd7e1de561e54304e8e3de341a4589fd814cc29bcc547436d09fdab3ca460f6f3fe947e59d4e937cd230aa62e1129173f8487e00105934e6772abaeda6b929e605223bb748a641d9fbf130ce947c45aecbe0986e039889c3c3f4a4b9c0946bb50196dba72ce464b30a72dbf3f0d39425a90128c213bd3b6262809a6bab754fd2952b5a99160bc4d0fb22e2312c47c04738ca87b49977812e235823945cdd7a9f9eb78b708e67e19b548d5e7e95c2218466269e4145642daca10cc9de39cb091d966e21482b9d773c54574df423208a60b510f3df359391f08063d15f3b9eb1f98373547cec5922732f48141d407ad13a7b2d3df0383b6a033c6a35afc5becc103c307191a4107152e5ee5ba038f1d9854d7430813ce5d769d81870e4ce221eddd6c4e7ceb7268d5013c72601e25cddf52d8b99d706050725287d95d2af9d20dcc6341461cf5882daa640353746fcb7f3a5f0373d095e58296ee3ab57bd0c07c41aeee877f0bca45b330874fd1375b21598c2c0bc384689f6d42b81297c6c2ac7773792f291d151658984c3b425a3d3141e7ee15e64ff14d3c25b9f12757982cfa9f4e69c425cead30d94c50ea5a192bcc97254ee8a07222de641586eb38d14665892acce9114d5e478ecab2a7c29862caf42ef68a5b1615e65222e9150fa5272a770ad30749aa6355a8078f780d5398eae365c8a8b95ca3540aa355e59b92959f657b5298eaca929acefb288c91e2eb7e999feafb88c2a415edc3a5dc1e77e95018f74fcc54f5add5433d354071353e61f6339d453e9a0e1523353c61d0aba4c258881a62419d306788ef9e84942e5b9c30e558b2b409a174a8bc09936be71cb3a1ba19499a30793ccbe1eec2250d4f260c39665cec889ae7c8983085b90e72439ea82eed25ccb332772a784553794b18a48adbab24d3a52bac84e14f58f077cffd5f1f254c3a854a0f5325dde5da811e0c3526619e7ca584a4530e2d31bee81dafa3d4908421756e8f9f3a464dbcaa46248c77b94c4b2a1d489882790a8b63a9d32acc21a8f108e36be80ada9f15bfe38e30bb581221f77c700b320fd46884298ff8a5323de1c67a4698d296acbb944256faa04518d7f4c587491e82f228c2a4e625bd5af4489013611042e9db383db2e2d5351061d0d18d5ce2b4ba2b5ce310e64f3a5d9efa6ef708d7308439f4534ab9ec92441d3f90386a14c27c93dc92b2c8a972d9350861f090d24558b98c177710e6887a6a94526acb4b158459f65ac289100f25c14098b5e496c5beab1ab90061f020df29c8fb0793344fefa5ea7cfd42fc60c8716e9dce534508d21c8a43c70e1490fa52a30f89a464b1439ab152f1a1f1d44fe35b9d837ef70835f66035f4506e301935f2506ae0c194dbd67d7d2997bb647b8752c30e56a30eb9a3061d9618e2295eaacd0c49cda1e45032cb41e95ae7f34b8d38c0e10d35dc60c8c1a329b517133e477268951a6d308a0a9153f66c67a3424af9a1061b0877fdb983aa4e9feec2011ab061c5861a6b2835d448839d19775d22770e5a34941a673087a092a88537957e3e6630a832a1df6a3c0417498d32989258a5725d512177b66a90c1209fb79329296b5be9320e33a0c6184c962a17b27eb5421583215964fb90440e234a0f832923fec8fcc8c9e3976030995413f2329fd792be6036256221c4ae64fa725e3095e7535af4c456899104d4e882792376dfa7ed082f3f17cc294aa94dddb128a22d186d3ee354c5498bd5b56092f3eb19123b8ee89d0553c5cfef66b609a5e21a5830c9ca57cef94d4feed5b882f9ecb5472f2e744b94420d2b987462478be7137eafad82e95489fc5137c6bed627d4a082399b521fff0c5579255330e508faaa4b9bdc708914cc5beaed34e5ad27fb6c881a5130c972ef34e2d3dca4ae40c11cba84160f2164fc8d97851a4f30a5940de65a3031d953158cdfa2bdfda48c127a2a186ef29b4e16e47dca4fc1fcbda2a9aa1242eea56010b23ea468b3eadfa360f4e06e93663334475030253593ad2b9e8f799e60b4caaaea61dde26e2798a3d9ee95769b60aad53821ad3e07b532c154f2ba3627f98ba94b3088a98a4a2b2a65a8a80443aef0f0083964480b26c1185759fb67b2445910090695211749298f6012251efa3bfe3d786804d3a735f195ebb4c72298a49c4d925ca63f494430873ca76ee45be2e8433004699b163e470886536f73411c0483dbbcb85d4a5a3d0c04d3ae4e922221bce97f6092f922df7d6fc2ef03a399acecf5ea55677b60b89092497c0f6ebae581e14c5dd01e4af489650746111397a39ed6e6d4814179102342acb96e990353ad5cf61121d94f38309b8e7c89c8bf5fc21b984ca7fd855fa4aed106863b0b225f24affbdc006a6050916b155b594d6403a08141a794b5099ef2df9a85f94a9acead59177b72b2308886a44f99a42f25170b835fcee1fbddd67e82852928f5de7ee9720ea75798df52a8c9ea6e51f2ae30495321fd2f4798ebad30779b30255becca73569847c99d17cf3e428b56e189b3b895f6518541865013d74da93079a6a864ba3a94b85161dcb0dd10d14376b9ed14265d36de67e725c536539883b69b09b695b4c7560a93b4243d6ce5d65b6ca4306986e8cdc893e2a6360a83dc0eda6a219f1aa589c254f154ba09f5dee15928ccdf21c7fd7039478b19284cee41242d7921cba7ec13c64a491e9e52cfda324f9862592869bab24e185dc42eca950a9e943861f8b3937b7a96ad4d9b3079bc9ccc52f8772f69c29c42ccc8ee398def9f09f38bbbfc89f8dacf63c2107744a79689faaad725cce2c154dc557c0fa3b284f12559a8a462a8495055a264316ad2cb8712a694f6a1174a9b9f6712a64f2d498e792461ba20d38478ad98e444c2b417ed5b2f05130b43c214ad4432f72ce14c7e8461258b1c9d1d6152ef3793a32b5d781b610ebd596a322a4d5e4698e5e64c84761761f2d60959bbe3a4945584c9824a2e369377d79208a39b277ddbbf66722c441846b99ae713eb10a610512a33312c43184ead7c58e844d3b12a8439ce8776c812b13f5684305ddd96490f7ee62135085308917216248c6ba4046198f0ed9d4e84ad452a1046350fd1f361a9650284495fddffe4ff0f26a53e474e9dbcb1fbc1fcfed172f0fc569e3e9884befa8f544a08a9f3c1a0be751f3ffa45dc8329a48810b2280b2a82f4603c194b425f48bb521e0cf235cbe782182174f060f60f7a64dbfb7ad0dec1687a2b4f05bb1896dac11cb1847ab31b97531dccab9926d7d1b62b4907c3a5ae389d35f77e0ec64f22ec541c192d3939183c87784936be2a1e07c3cc8e0a9ddf720e1c4c522cff5d10f9c4fc0683274f35498abc5fdd60ccf7d6f50e5e7e5a1b0c6f31da62a7fd8fc50693a98b5d5297aff50ab4035a0dd0620da6b8369f6a3e77889f2fc4f8a2ea91181728d58231ce3e6a1d0806188f703c12630c0b68a106d3da2429492b3db5d49206434ebee3274a87701119636020c78e2f3c906830ecbdc4bb94a4447afa0c66dbd05ea15bce3e8b376e98c124b36452d48bb9193187d60bb4288341a95a917f11055fb000c950ba71b12e095a8cc124420c51e7f145deb939b4d6085a88c1e8d98476bb896bcb4b0ead42042dc260505e975427eca4112139b4c0608c14dd36d2bce97a3487d6174ca1438aa269ee1242f27788d136042dbc603871baddf5bf6288db05432eb7a03f1b4954680d085a70c19c3e34cd6cae554ef4646cc190937ab0fdd9329d4488f9400b2d9852bedcacf55829b4877ba045168ca22d1b93a45eeca494430b0ba611f74f5b912a5410b982314c8b8cd02d21925273280cb4b082d93d66de5de6a96cb90a260f2f3a55fc6c22a8e0f2400b2a98de3c46929299ff51cca1350573a9a4d2d362cc8ba839b474a085144c423e7838f9133943290a26d12d2967534a563415e2400b2898b2e4634b46b08b1f22e30906d392bfa408cb6f4232be00e3777c91830538767c099c60788dc9f36a22480e598b26184c249576499e98608c3f1d4f5d9dcea7db128c727672d13cbcae6436d04209e6ee341639abc4f57c39b4080db4488239e88cfc6126c8c96d3312cc92b53a5cf676b39c600db43882419ba70e23e1432c39d70221c011032d8c60f488339373c5cbba96a145110cf2567476b7a70eab12c1144158e44d490dc170625623a96669deca022d84602a135a41684f104ca2d29b34952c6ceba605100c4af256b6182afdc5dc8b1f18728a55d59ecb195b0b1f983dae9b1059630634800c2d7a60d6bbe42972cbe520610b84008701b4e08151440951714cbda51196b1030561fc0e4cbac43556a4e724641d9836f77d3bdcaa3de93930c4ae4aeda633ab9e8303a3ecba5c36adda8e90b2a2c50d4cbd13ad7b2b6803e3dd7b7e9178e5d0c2d13bc0784fa2450d8c9e23e97ef5d0125e177c41068ef731c4a8fa2f74ec602d68605ecbb5fbe5f919083e6661da4ff149a42bd1294cb230d6b7c71ef56f2ccca73fafa948e5a7820a2ccc2971523635fbc123f60a2b5718f968457eb0c22fb52d4aa7be5433aa2005df00f41d28e35598544e27b61da65246ebd0d1a90ab3254b62da5482f5376edcb871e346710c3e52b11fa8d08f53ec8729f6a314a54881a3283798031fa2c8a2f885b2ffec5d0ead120a497c80420054f8f844294f24f9e8c47e70c2343bf223885c0f99e5c7260ce925c73591224d1825ea977925ed3e32618a3ef271ba5458484a78840f4c98e349b952d91f74e464a9aaaae2d59278841401f8e0e31266af57d93f5dc994ecb7101f963058673711cd8a641556c214565295f6d35df3154a98c6e3f677927cf25927614ecae2a78efcb15629b6860f4998a35aec8fd029c26cad868f48989312e167d7494e9243c2e02b4aeb484a23d3c2fc0853484a922ef1af5ff372e1c31126d7dfb514793ea4a53780034755f9ab7e34c2a435aebb3e6ef12239b340087084e0831106392bfab7a1c74c9b6edcb871e30336bab051011b5d6cc0461736bcd841860a4ce00bf877803fb1527c2cc2e423b15f4bddcda88daa08c3ea07110b7141899c1435c44722cc1d4a9aa98f93453dc515f8408441a85790d4ef761eb239b474021f8730689d1c7ac7d73f4d7a8630c912e33d4207319dbd1c5a37f82884e973a7c8597452ad5557e68310e60aa22dcacecbcc773e06611272e6478e49b69d7c7e08c22cc1c428cb57e7d0aa127c91c418031de22310a6119f5c949ecbcaf00108d344cb14e5c1f25ecaf03118902e50c68e2f748c6182ae001911b871430e1f7f30e7f83b753b3bd5c9f483e9c56c73e4927a7f3f868f3e9844defcbfd8eda7a3c5757c307fd984747bea3d94f1a187fbc8c3071e4ef071870f3b98bab3c79bddbf114a99434bc3401f4883c0471d4cc9537e76d0952475300a1f74307c476fcd0a5e9d4e3d0773acf45b49de45c8ae7cc8c19c239ec59b10f4d6f97130987ef91a2bafd61a4de1030ec6d49e305ff1fcc0c71b4c4245c51391eb59547d810f379853bea47ff445aba74e8bf0d106b36c7fc7fc10e1830de6d8ae3f16c6b3044fe7d0da127cacc194a38e5d8587726891812df85083dd488321a4ebb7911ed53c943ed060522ac4137b11c9c27f39b4cc56f07106a34aae8bd748eead5d0e2d523ecc60b8bca117b2a5e8d3ca709611cf419bc841962a0f1f64308b929ceea2f4942c39879681f131067392102e27219496dcfe210663968892f3b1164ba6a44cf01106b3e8ecd82147aff996c060bcd7ce31ef39cbe2ff05d4c7ead91ea1f78221daf797b8ff127d7b170c397448f418f5a34605401a3eb860481353d2e965b914a12d9854dad53a9531f3f368c1381662363553f4083b0be62c216a6ddac7a4ab74e18fc35fc7183bc8b00090e1030be6f32cffd9cc662ee86707d1d1858f2b98ae2628f5cad6bd11cda155868e1d4c820f2b1865ef43754e57beaa0a5e0529c031868be0a30aa6bd345bf193914ddb1c5a0db871e3c68dd2c207158c7d3a2d9276af1cc99942a9d5249b79578a9d31b12a45b6e5ccb61ce514237030299f91ae633904e5f21b4c9384de272f49e7f6bac13c7a5fd4d36e83e9520ee993ecbb1ecbb2c19c449caffe71c927b26b3097b2c8eee9938945560de6f70ef2428d8ae1a13498d3d2e51115644754140dcfe5f568217c67309f0e1e6b45c65e546a0673ba203e44db74e5b70c86afb4eea04b326c4a07710c0655f91f23b622622606c3588630b3097e15296130ca08d9ab5727180c263f5608f3f98241afef930e72b2aaa770e105839bd2a75e4dec824944db63c5885fa121174c22c92677bca878096ec160979fb44794344a490b065de17ff4f49ce83d0b8905635c9e1142dea8eee80a86b3b4353a479d1ce559c124776fd2636d881aaf0ae658d6767d65b2e7a682f1d5439a5842fecbb42920175230e9eeff9deb2d0a26a53de759c996ad7228986e5cbc2798b32d4c8ed1a25fbb13ea46185c34c1543a45ed22775b9c09a6531dafd929649120c9a1a5e3cb68307014187d19e06209c62b9de0a5ba7343ff71e042095c24c1589dbb3b7c091dff215ae00209a69fdfeff41caf3b133218471d14b83882e1949945499d9629820b23982f9bef4f1e0f95d46705c145110ce6d6dbfad17350e5173e70410473d292373629cbe5b447072e86601e9db7153c7e808d2e6c38c046170db0d1c506810b21184582e4121145a77bd8858d2eb60c2e82605c1fcbcaba2176470b04532789a15ea935f1bd1f18cca4c55e79644df190810b1f9853c8557522268b9fca450f4c7baf272d87ff5316626470c103d36a24115447773db379c0c50e0c627cb32e76c0850e0c29eeacf2e9cd450e3a797376ab6effa92465e0020786b495761ac954acb46f60964f2a89c91739276e0393c872498930b935b5d6c01474c70895a95e12547ac0050dba9b24232ba2e634ac599c83adcad6b59da4ac11b690c50db688850eb68085f9ba2b4893943cba9eafb8938a676f8798cdbb852b4cc23d6bbbd3d7832d5a81c9cb8c76b95b0af261a9e35c9da57c593f45cab0052bcc22797564464a255cb40a7307afdc4e39d9c863a42d54614e79e76fd515f2368e4009de02376e90b1452a4c15413b7df874d926541864ddff68593bd3ff29cc663927eae84d61d2389d43089582e5be14e688e35eef41fea89e14a698a6d25c5cee18a351984bff57ae3849440589c29ca38733b7cd4841140a935db66c4a10280c2228d94adae779743e6136b3ceb5355599174f984c4a501dc253c65b3a61c849d4d4793271c2a0e13b3657164b846913e6d8f94474c89bce9834612cc9ff5f17a64c9857ac6274a8113985244c9843aef787e78e9222e912861166691b7611f4b784c934f43e88e4f61faf84c93e7e57c442dccd2961d02ced10569f84b174ac0f3a6478278f248c1f3b884d4891827922619e5461acc44bfe5343c2fc31717e3c8f30bcd66737f1f94dd88e30a57ad68c8f5c177623cca1941435edb27b624618d394bc8f7c2a4adc45984ec4d6e9ca5339a88a30b6094f59d9761a6a220c26c2f7e5583e22cc7521c4ef201f2a967f0843ce53a2847d6f0893b687f578f57ee2429883cc1a1dd74b432511c2ac3a62f205916f310863bb76ecbfb80e0ff91682309f8a65e792238418fb1681308893a839e2195a5adf0210e636df5691276446eb5bfcc1b0af16c95b5fc2567c0b3f9882c7db9517b116527c8b3e98459f7a9f74214e8abe051f4cd75945948abc1443df620fa6b3cfb2a65c2ff4e75bd8174b3ccf8361467799b430d197381e0ce67ae931b4a4d1d31dcc96e24ef72b685149763008d1af5b6d1fddff3a183dda588eed7430e414f5ed4d55bd85e660baa046fea5bbe55b0ea6d9f794a026feb738182f2bd43d75e0605271f1f0a47e8339a5bceb0bad52253798e34e1e21c279909c369853e48f0f55bd50321bccd59da327e556e1e2351867d3845259fcc4bb6a3077aaf594928cdd3ad360f64ae92dbe7d5096448329d48a6e24213a8361e457df64ad24214466306d978bdcafca6012b2562fe907dd1732183b47de4efcfa121234069332cd0b6b9fcb845e0c06f5da2517642ede1e0653f0997cf36e1f75301844b2f760eae677a22f18438ca5527f15e6e40583a5c9eb419f5d3082bcd456551f2e983bea576ed12f13e9b3059352bdec22e6aefd1e2d98b259d85f6fb3609caf5575f7327d27164c17e249d3bf5faab62b18ac6edecc3c248dea58c12c5792424afab72d75aa6092399563d57b4f52870aa6f1bc11715f4d89c99982e9b3e3e4775e6df7a560d0fccf213b488adc47c124b4f34eea4eb524878249826a27fb4b1e6ff4049399f03991171155e404a3e93c53bf222b554e134ce9a5bb32b622489709469b7cd9a936b4057709c6f77c49217cbc8d5409a60f23e242cc49307f270f22e5c86fa748306557588caac81a9623182c9df008293d093d8d6090bb586f962c82d9bbef674545634b229862a7bc3b62db637843307de978f1f6c8233221186fa425153d160453c5f2b812daaa7601c154229efeacd23f307956c890798f2b91f68121a924e31d44ba07a6506aebe926e25de281c9f6d243aaf2f7fd7760502522a775905417d781f9375efb2ee4b4a6e7c0701276e2acb5fce8383077ad6cc5741dd9a31b1864c57955dc0606f51cb7b2a57a54a706e6499d6f64c549a1eb2d68606cfd30cfc2f0933fc8139327f2c2b230f996a88f34636110a34a7da59b6c238485d152ab67750bf9828e5f613cbd26cac6544892b12bccb25d137eb74e8818b7c2545d4105694a75569f158620742a7527fa53f65598739eb8cdc8b5664815c6127fd1c4051791745261ec48b2737b0e2acc73136e7e445bdd730a43c85ed95f3e58f0b429cc1a415512c12e8529b946ecd433e2634c0a7384f38bbd1cdffe1d8521fe9bcab92a2461ae280c22cb3faaa7d97d341486ff944c6c43a9840b288ca222c8351d2384b37cc21c62ee9707717154653d61f0d3f9729fb690796e27cca7e299e9b5fd4a6e39611c9d7049fc269ad8761306f5924e789296f6add5842129f53c15399795da4c1843fcacff4f887f92c58449d5e5d74a7e09b3fb4cea0ca54ea7c712c6d3a9535d48b926e454c2bc365ac6342d2da829611293b9394a5a87a727610a959d51315ef5b6240c96dec1f298db2871240cb953d4bb2843c2943ef39e4f7e16d3238cab13fe43ce4ebb144798ad533821674ddba511a67422443679a594c90853c861524ad339a91c2ec2e8494ce57adf5baf0863e55688fa9d26c210ee7285fb0d1126a16562debda713891ec2fc1ad725c43facc91086ff112682382fbda5421843fe7d9c539d5813c2e8b1a1bd2372f0941f84d12dbc5a92ec283217844136526565c9ae190a845952bc78adbb97e40d089388fc96d3cb7f305ea7f3368b1fccc183eeb59c132fd807f3f79cc80a13592be68371478a4a16477fc5f760d2e55e6efa7b375a3d985fbe2c893c0fe658263cdc8b07e397976c89bcddb97207f3890b95dca61dccaf61490569d6c114621aca7ad4eb7f7430e7f710b573fe8c797330e7a8cadbede460109174bac3cdd8290e268dd1d93b9c9ed11a1cccf9913a255522baf306830875d56b153798f3e4450a6252da608ccb3935415de58e143618548e27d16623474f6b309fe8492a484f73755283d1e2a53209a3e2b29406f3c78b8c460a7ad6a3c1584abf2fdf728aba9fc1a4d732526d6e06b3584e91c3b9fe8c5019cc55a56d821a9d9307716dea7941c9680ce6f5145641fb9f9d480c06612e9ed49de5dd270c06e9c982c7f224180c2373977cbb53909cfc824174b490e9a283053bbd604ae726b2b729d321ce2e983c9698f0cf2541cac905a3eda5b7683ee21ae7168c6ae13e24fda616ccbe26b73d55e9f497cc8239c6c9778cf928ae25168c712ba34223fe25555ec114c92cdd64a88ca8d20a463f3b8ceda8946fe622611c0a0743815018080805d54d1b631408002028200cc562c170a86cf500140004372c263c3630202e1c1218161a161a08c2c150201c10854181202810060542c1602022d0c2ea0030763aacef3f044b870e0b54e00cf581fd7a02aef87f1719afee099cf49f71848b6ac740392efc3f37f0c8453a7d7403de00ab28bfbcafb2307eee171de7bce471a0feba18d1f3ba7a1a789cf4f97f405e9f502b87b0b7882c59839e402a50385fa3fe2a2a708c7ac3ea2e18c305ee11aec77cd036b820b910d271d132f9fe2ba882a3f2a19d16d06b8ecbf131c900fe481686fb17c02a5315f2380c06501775fbd181979fad95463f34a7a0167197f7bbea2a0a229d676be10028897eade2bf30198c925d2889d5da6bc02abfc3ed32372d800ff696c628ac6e34a86ac27b75fdb9075e486cc9e72e1544e57b6dc6d4581d09132af8475e7a95c973abd9ec8a0365f490a31e4cc404f4c383db9a08e2d929097c636198ad54bd40a05ec6efced63a225ee3fd2c3758ab017562d8bb973670e0b77b6e4c9fe05d59a932fbd736dd152a767c29a980362a424459892da5b8e1f4ff5e39e37206789f3d107dbb09271310840e6265abb1f788f1b2677d0a5c7224d80d2fac2de1c7c572d248add8d9b94ae14a34b5ee90237396f0549fb38f8fba7c67651731f5fb537c65948a215cae5b7b415799ad757e700daae3d039aa9a7f23db55ac4158149e50f0a41576c33a7c85fe377e561f30ed2c5719fa95e200e26835f57258d588cd8eed62f5ccefa1311699256048f1efb3e5b611373044861944e84259cd4c171b3cec6ebe9139c0ff977a998ab4b1106f0d57c5423c53b49be309b169f64e1a3e9c78557c0c1a9ee8872008a5552c941265d8f9410701c2670e0811bebb02fcd323a56069a882c139af3e6c29b00aeaf40a5fe01dcba9532b938ae6e741f44ac161ae155a1b6e48bc9e4b7ec7323bca98e01e3af01fe0281888a30e525bb9cc515244fcfdf09d024d3dcca2bd649b23a1749d89fde3a29e5e4969ec8f2f2081755ec434c15de4b566954061a2eee8a49de4b59dd8b60f2f50510af08b9dd595f1b0515ede0b28cd138eaab5fc41b09394f0a9b1ae8fe61d2ef6814e4e73795387edb269f4f528625f90d64fc2e1ddadf3781dc22296d7ca882d4111c2feb8d327e9643bf3f153daacfd072f631c9af939d90336644360a643980b1c38e8b202863ad9a9afe3ba8be03e1ec1ca21f7be0c17068254305034a1e2723b7070ad4edcea3056623ccae37f9da36f8b048a241fe4095f433b62ece0413009d458022fd3fc33c40eb6a92c6c2d44edb0c568014b3be9d0d7ab39f8f8a117d9d19ddbf2d120151181227184377f2477f6ca1fd1c13ae47c1fb5dd24e16774d02e48edc3fbeb5481afd4c9bb4658c4ab68a78a3a8eca22e6cd3d3d12a722fae69d6cc2554007ead81dd35d1d2d386cec1b1e7399f084b4946acd72ebbd5d039b54661214311cbd7df4f681a4745867affc111da47658171c2c9ce355a82b6f98e0d4f681b9e03774822efc99ac89dea93571898ae829d82f7a9bc6fad8ab765617e7d8afeacea9d1638a0e8d304e99c186d0549630894a0563aa78014325284ea13782cdd2ae14675ad9eb202ee80ecc290bdbd722ab993d12d41a67a32731dbb8cc10538a656e8832c008fff62ae66a9912929a6978d6613590962dec913818da0788bd85e26c827968272f2acbc16c03ba11fd3a8ad06324dc057e59f7e9c21f430f5b2c014bea4ff08d335cee3544bdef272cd79a1ba9b858e24f9904442084f8c9f3e0c2a75a25513223123a5ee6afe8a4aedc1d5da98371806aaddb24648abca28b66606223f4586655e2211733396290bda3ad4ed1dbda2e3dad798ef6e663dc11b42394ca737774a58ec44119585e1ede5d533fc234202250134778e7afe4c81ef930d588f5eaae0aaa6fb1bd611347821444000a456fd4460cc49af0ae204ebd4a134c15d2a13abc63ba2ba3a439ca128399ccda5305efc3e8cfdd309fd5bdbbab0c2b94150e9de5dbc5fcfb708311c3e5e73b5bcbb56b47723a5d92c08530f1d311452728b111d68aca7bccaf90f848d90aa5e54eab4b6e86957c2efc806c508637a66465eccc8b72e3c5ac3a4633c52d5ac5fae5bf5e8210f3030aaae834fd54a08ef9e91dab0198d38e7c2044b03d3f98e472ab284f03602ea7a67d150a72692135c8152717bf8d0bb6bc89869bd4b115fe338f9fbb72f092a70bf0639c39a07a9ca5ad81088047a6f0c39a7ff592c98a2fab5254cce82515a1ca7108144619d0a520fb4fec3ad7ae654836429f2a22d2bcc10f362a33e8cc08430c89344ce28253d02227e6a00b91629f08b6347b46f822f5586d20ff97e25bead968ccf32d4760ce8bad9525644e00c687644875d6262c71982094d50d228b74eaad1d2ff376f72acd2e9855624203d91ace3aa4b4b898036fe62f60dffd41a83c52748de5d27c7e904759783431ffc1112b325ed6d99178d8bd2ead221adf361c467232cb4fadc1626a10017cd4b4d1210ede70fd7f836b03f1c7829ce7201d9c2f1aa100fb2424fd42a86ea8332c8d9458ace43dd900fe9c4bfaff4b46a1288c54b6639e50d07ef7dc998651c43a782733a53bae5b2a41b63ade885a505a9198ceaa72cf5f8c3fa47f38ff9161d4926f34dd47da0c8e64972658d977e12629c24b0d5681c0134801604e5c43424ec097c856b7aec6c865ebdc9e33ac111ab44d19b3276150b875d94b39cfc4356bbc7cb57a1026974c2996896ef38dfaa2f8712132b5ee65526f7b908031d7b9162f75e4bd100cb15f3be58c2daf08c2ea1e285f1d7d3285eb416d317af8d1574adc9d95bd29e6a2749c6a7aded8b4efe6629dd82a75e0a62aaf875b379ef080bf14a5aa8ad1a7ee6dd3f8483272be51e114ce0fa53cc25a3ac78dd737b8dcbd44b51f6f06b742ee0915f45ad9e2d5cf9a55fce006eafeab40508bc3206235cd22c695ee17ef41f1ebc0522a67ddec7377424e808bae436cc6c6fb9f267c62b3256d66c595cddbf58f0ee59aa15a14532004b7cd79e226f71af871873c8878f3bbdb7dd368372f2beee6842357e82a217862075132498144615122a23ee13a664b9118b13639db470db94eb654bdd85937c34c0ab8ca279b2fc36b1d6a053b9ec409bfd4e161f36913a1b9ca41ec51f8a8ebaf9f2e0730de8548add5fb0c1267ea8d187656f76660a3182c5b322c841ac690d46c5824ac82bf6cc076bac2257199a1880ece13b64bf372f6dff55cd3fa3995daca55b6bece351ed7ed6cf6e54d8be5f45f010e7f1bbfcc9031b6043c0fb92e280f979dad768028ee931a1e1fc4e434a3e21b4e2bcac621e80c83729f90a20a91a1100becc93712353c605aa476117c105a6926111f8dab645d45fa782d8880e977c34bedeaafea9eb88558295a8d5a572789c1a44b29ba2321e9c354b1b2389b9523501a27ae392f0fb6604d04fbcd4919e64460b1a535aa0850a48e19c4ccd1015cdab2a80e4c7d0ddcad650a53342f70e29eccca81a65a705fbff9464033ec5eb4bbd8c5069c8b0531878b1e640fe10b85968a42efc3f28d17f2b772dbd4efd3c53ed47b942e0ce450f1814214af9035d5495f5d347767265f64ee57dc7017a4d7c0925d0b84d5ad4749a899e3894ba0cfb3c6707ba8c1c674784d95ca95b07906fdc4bf2da1cc51af9ab194518c2efaa8b7dba659d720424bd4d9bd13864f03e6dbcac62c223ab04a13cecf8a2530a548b9442397c8df8bf225abc49fc808afc48130c6d7b0c687f87fec1133f4be8ae901540d0d5283417a2b5908c06c9fbda990c1e9d3b026ad671398aea3edeccf4222fef8fa3f137ebd3a36bab1de42d1d90b3a19019a9f2849d3f54b9c03c47cc143696c202bc7e6bae0605e1d9749d840686e2230208108f2328ccec5d8cf1431b3d071b357152927b24f8570146dc175661927142ec972bc9a36b0d1a681a2a2fe70b1a80726d14a0ddca771d80ed6aed24a4896a8419f491e921c9ee364112f880ba4fd5ef183dd523273de6e583bf2abaca78bc44a08ae18bdc08dbe7688fe0900b350b4808f9c33a0a46882df5dbbc52a296edd72edb510e1ec8cefa489a36852e7d76a04dfd8254a0e6ce438da4e08c42facea6c0b42096a5653848dbce0360eb04d65d8d3974feab8fce68c43ebb21e51436f88e0bdc999b53648d0eedd5140ef19f4a5e35e724bb05c53a3c1282fd5e5b15b05567a25095baa23e744c731e00ada758dd522cceff0bfd10e791a03e8dd383855f9fb68fb7f48b79149cd414380ac957470296a1e30af17b11a2158d9f5276b15eb43b2f3800abc1dff4d500e55a7e7e6339b084a67ec40a819b81221b15ec9f27ad4908e43d7205ad2dd36aadd9bcdba1e5f618f7cc5656102ddf5cda4513c177a91bedcd7685381a645461a1e399b75880b928a94e733d0dad7b8add1b6e3f23d6a6107114d95d81417ef4440c8b96311e7d03209c09ed92da55a5dee6cbca5352dc6a3d1fffcfde11219211450aa8de77cf2e309d6d00fc6629c94c6388b117fbb93f9c5dbca38e823b8deb464808b79c814f01cc2fbe37c7e7f67e3f9e0e726b53ba3d2efe4851673ab50e5d5c5321de1d8b18a3e5f5b61dccf52ae78559aed0b1b9e8dbae60475c427766591d0bb34800eb449eb23f5f2b1e66d97c2ce531f9b5e1f58a0e6f109c6b0f3eebe9f9ae8dc3464350e30c691058e53710b383345858d83e965c5e8c603e6e3dbf910b7fab8c9bdd0a3563a75c451921802eced19d74ae5d5f7de5c2a808784f410793becfc3bc64519f345bc13084afe74756848ededa3220c79684d395e2411e7d3454c09ba2fecbe2e718dcf4d270cbb3262d32fb41953f338820ac53a0ce4e670104a980dc9912194deb788de50a75f96e100b93d0314294cd2c49fed8725b036b54c14100b294c3eb21ae94ec8dab09ec3598a53ef9e2035f7e091393a4924682c16c90f731aa253ce6fe9b7beff59a4ded8abd73250534eab431d15930be916ea24c8567833401ba44de39eb48dc17a9d67502be8f40d483509f4dfd1588b6e484030e30261713bd0cc0d7b3964087e52c1a55d7604fe635c17f78d79b3112b121640c7c6359456e6baa4eef5243130a9bcd820120cafe3d89173e823a91e818b7c24036470169a356df6551d0aef678676469a906eb524dab89d5c243582f11052040267d6b64052b793a2550f00d40fefd27cb70c0550f35b852078433955b55456b5c0d9877594508725fc09099640a399e817ea630f91fb212203f3210db3c2339688f5260ac7770be8360a9b20adfa0454a5960c2d4515aa2a3f33ab6c04e0133b5ecc642773b2e92c3f203f1b5c8a2648cc2c33df83afba5fa42cc6f084ed8fc4aeae5c54475e52562b6d3e51c37b5f4aded48c0d8ac6afa4bf4afc4dbc36da5365c4d3e5d968ce259b1520adb4ba1d8a30018b71c149dbb654c4ebe8d9e2137bd7acbf6cb175c4f116c33b1fac7a555d54a7386422d454a0aa8d81d22cbff57d29378d68fbba766c6b5f2f2ff55241c81a53176917616f6aa03d22a4eeb3da7ea11b95652166999062adb1a815a2b2608cd9241a83d211fe71b8b6aeb886e8f01b44a5911c9def7e089618223d508c9e8130a8c82ece2df4298927464381a38d3132263c5b989e1f1a085830a373e4a3f929e9506a5358c625dfdca11ff9765ad297af83684e098847b2ac9b64c0e837ae5f565f6849a2b1c7735d510ee8d390c21e3214f1892c6702666e1c068025465d7bf4d587a717a345acb97e567661e092376f40013ca9e02991942b8dfc0919be586d797eea14d9bdfcfbbbf36c134af050fb19ae7454989080c2b148c2698cdea3e6ee9c53aec29f83a26ec0249c9a74aa886e349731799a37735d8497f15906e95a9b720164c86e131c2e1b58d70be1a9f508ad41588b7c7a0cfa4f8096edc800fa3be5440c4792dd41ad4ac195fe84bd55bea045a0588cc9e67271873af72ac4d8c7d1f6aa71918697600e2fc402d42a6bdcea53da0e838d995370f8c56061891319f0982eca2675000a1974ef972b7810d15e36cd34646b9baf51aed67e04ffdba35f5a8eca7b1df53bf563143aa1e02cccc5fdfc20471462370a264e5db3d4091dca8936d8e0e026775a4c30c41137d08fc14ed47ff7ddf1175c6320067d95bde75a60b752e9e1d7d015576c937253b837410990fa37012cb192319e10b0a89485fd2a2c0521a783a40dc3ee640b7e7724124669779af1ff53088056ace862ad4db08d0d90521924fd22720c84f8b9e74e055c9d31bc3ac16693433ffa8349239c1b772bedc8546be175adbf63c01dde47bfd0c9f6ba38084d6a7864ea99b5a444a9952e014487cea91a145a259dd9ce6d2a2fa02ed4952a05002fe9854eec363bf51856ad11951954dafe87238878526a429e9e5f950a697fca7cac2564b1e864356e01ee789cf1dd09f1392f291e576b87302868ad17bc7d15a923587e01aa0d390361f224c3eff31cb5bd7796abdecd2550780967eda1b7c3732bdae8fdb001371b81d8f26c4964180101fab05de0825e997bdddc25319a7549d444bf96f92afbcefbc7b31a800e9e8d879d4ded0bc6e4db11311f74474891bcd2dc45d03dcf630703e8dcb2f87b0982ed272d214f675434f4b8e3b3a9c692e2b7999ec582f02bde5e415e9a0c97da6f98cb73f6716ae1ee22373a61db682292b0b9d14694371444cc15f0a87725106f4061472ed49e4c0bb6efe7b78dbeb71b730d1ee42d4c500da89dbdde112354e62db40d083cef8c0fbb2416c6c36e78906bf0d2bb907d7e4aab636ae79b0011db40e94a21b756ed0c01470148dfbeff5b897cc33eff01c01a007e01e4b2019765b0a515e1fdd86ba61e1f826cba8524c8de0909fc665fec3f39b3dd0f86e33e5041d49680ca6358599da8ae2aad6067dbe3b88ae5208472ec80de41a2283b391d74299fadc8fd0ff8dfba8462e407bc33cac8d10bc4aeba5aec0c67e7b9f1e18e62e2a2848e5b271ff8a0e5cd4357f4d23682870e86fcfaf57a2bc73e5a6d16a11784367cd4fba407d84eaf1990397599048592359d3ecbab17c9a7357cd7e3e652272ab51625ff31035a426d615c22102d3075841bf10560f8b1fa9a2087c7ea4b419010accbbd0051bc27bdcc95ee1f65a95cf7be006ed7f5c9425aa40b01a200520ec40c25fb82e75da903b6850e7edb2fe3a00cc61bfa2204e5d6da05e75abdc908ab41975b862e42518314f3621b0f32ac5390f7a9c01a8f1aeced9dbfd31ce1d5744f10eabe410fa26ba7b17eb5aa3dc18ac3cc79e2c3a09ff0172bddba5477d463bda9b06b3da72530d65de733923c4e426ca1186b10362ee073703e1cbb7a31b4c77575b445b7b10808a9db3503ceea27a417a3a2d10971c3848470def99528ea05369753622c2048a423e011a608f90f8148cabec7cfde1d2001369444e881e101af9626addb20fc31d5bdb36d620f8f90810a1b710ff7fbac2f874e7c145324a94d58fa0cd44f7ae951033c1c1b915a429dd01c135291adc09ad23d71015652d2818b5622e3425f556c7869bb25ef48185d84028e45f8a7ac5975a57cb9720337e220194b5c90029d5c04bd086474d11e6dc38b93258636f290ac1f68d073d14b0a4fa67cf69c09774d5614f4670f409c01d842c5c2b5d18df5de966e495912ae4ee7b8c48ca7efeb4b69b3d9c6eaf89a761f55881d465026d1bd5fdfaa9a42d01dccb34f17b608083f654322a44cd6ef0ec6917570597408b6d190efc4290a6441e7884b1da8211a3d11288571e450dbd0cfe8210aed0ae7aa5145a3eaa19b50dbd1afe834b42b14721450147b433d1b9031109ccaf894ef2aa3c8ac1bd423db01de1a5f0379452665dfcf7e12c07f2f7eeab4f2cc7c414a6f53097401d85b278e27a0c910a9317f945a3ac5f97bea646e7076d06ce1c5007c5e0f023e81b7cb354b110c64e91ea84b121aaa04cf03a5d20129db314316895a21b8799acb66b2f52a00c6e63507861bde2e361f8e67666bd77cbe69a54ea9513b4cbfe8fb423b4b813b552c34f9c9d5023983e660a624c5709117c31d4827e90e9666ca076ccb182190ff26582851cb5b9490fc65c05e2765c085814c3faa6402240069c08402d47cbe37d0f90db9bf6d12c27e408316dc94654fc72ecba4aabe799e261c50d9989d0d626d5e7923b73895b4115736b37fd4830c7a53d84004b7855deac6f1ee57bed07a7c739e4883662d61f874768d44790267fa268274db7b270de69d1114f72e826ed41a06e70d12b208819d094362772c53dd0741fb4ff563dc92d861d5a9692e078548afb36d08f7b3cfcbe76564336a1909e2124482887e742866c8802bdb407f924d64f024eb77c9ba600b60c22e3f5c838d585599d7aee999ff0f3402745561bb851debca70e5d29b01a5565376fd278265352b054237080d8cc0b068377619146bfd47306e56b1b9babf990747d3c5a5b889b6da576a7d0b8e6dee2d5a6af527ff84d9c89cbcd04ddc617dcb78147e933a9fd32e142a604e6d6cf8fa9dd50df519dd353eed10c1f4b94ad874f22f91411dd806958c7d25dfad7173724bdc25e3344db195bf7327be5fb25d4c2f39bffa30723fd6dcf8f935254c4825356a6913917719a659b29eca44244763a0f512527202777b69ca9407be72c46e86dffa86642b03f0661a139a46a2126b9d2f871ec0f838458b52f16bcdda25a291b8632e685908bce41902d6e6a83556113e9d9ed859fb0a6119e626731f43aec6a7b4c1787694a4a2afeaed44c4d3ed5ddaa2000b7a22e33f45a7c43b25b17ea642112d8c29ea7825f1aee64e9bae843d195f1e0727562c4f001a84252844ba247fdaaf0b20681899cf246a7956608655cdff836879de7c0c6ad2908460d959f998e088067bbfb223f660194cbb4bab235d1c4a6e8b1bc5e8b35ec99d71442b1b87c87a2c2e0697f334c320416ae4543d08ca953e5d64c4e3b3152d7a681b1597e26ca3f8631ec364a62f388646c87595218d181b3c8a173eca0c5b0256a8987fa614d81116123a39df6283a387926d024643f4b1db46d904745e1c8bfa2bb0547392a307f8c812cfba98ec389039c18b86192f2da4dbef509ecc2338fa9f37c04daf6516fe7e58287053539e21137186cb966608077c3d803bb0cfd3e4b5108037514aaa8e14cf1709361fb4191af580de71ebdc4056822dd78a79565492e68aeabedf9e284584ab83f0e1aa9a960ec66aac24515daa42da6c3aa81299f497523650a7c547d49d1a02cd53cfa4ffb5f3bf593b709012d34bc38273571a6b4afcf5d0c31a2e422970120b5000389595aca2112da475a1a262433d7fb5572874df82f62646a203920b885c1327e8c1e76aba0f8667613e9cf5022618f5e1c00d51e7f384611fd284dba2d6866b321da1c5cd351d121602454da75a93aae55e4959f9f0e811099b70e6e220788718d2ec2f2323734e0316eceaa179392afb9fbfabb61411fc5923d639baa830e147c35742652329f5a01991a60950a2515e595dda05a63bab37ffa04dd2d99e9a17b162de1ff475a5d341085a509bf55722110502a2a4315ddcb4e78ff77463ef53131139abaacc1d97e442e1cd500001e010e619d4b9176c07c0d85c77f25225b800d4f6b0ca26a4e056d3c233ddd9512ca1b0b2fd139c98034e1cf9ef0433be0d1a104c2d738d360d550810a0a1bbe7553113a01160cf20700d7437362b9bf98c1456786cf0da3d7fd99894226f36c89a3a7999b7e7c965f7ccda23bcacbeb969c2ad8167cec14e3902fcd61cc1e29284c9016abbbf8bbc31b7cd7ca90243ec5aef851cb6231ee5c86ad5f388c597b218c2450099e56417c153c7f857f2dbecdc9a2efe621b2024cd672331680e48186173e7499676adb033e35f68776f1ea69ba8d04394bbdae03c5d2c1b4a5a1cffa07c0f4d781772e8366022da45a899e778ce748139f65a9f6ad2d6e738b0507284f66bfe8a8048496c26924e53a1503c507058fffbbc6234ccffb3cc8f7f62d5fb1fdd5474ca2f207ba009f2bb22ea1d13af23028af21efcc36adc46cd997c46c33ee7f2ce8e9d2c6d176298c073d982f28da2092ab655983881653375b39f4d8ba8658e545297b456e644970ae2eb418497795aa2a1c76864409a81f0a0a2a04e8e693cae07d34383f8bcc403e44dbd521eab9feb8c412c1ac3a71b06bdcd89e9718531eca9c53c66693b03d96ec0fb4b8c7d32ba4c94a65cd6259e6c32e9510d6658c4ff1fd5771da7140d84e5a54ebe1e8fd26031409d62ec6d6ae3402ec80b959f8246c601e6452d4e8155440bf55e1adec40d70983a24bceb4b0e86a04d1aeceff9b5b27e6906be1119200674a07381fb336ffdc15bf1465795bf91093790f26153479eccdbce9977f7b95c580e55b25715119184cc3e62eaf0f2e716a3634040edd563c8baa290de0ab72d09d973217a76684f86e885d0e901212dec2df40c00d0e799131bad923dd1e34f7b03456f9eeecd533df8440fa0e8c5133df7143dfe74e6b636dc247892243ce3034001d41a5e29b1f155ceb5194ab26c2729b716acaea5c392b594c885ebfcf44b70fa703c6178427d5191046bfd81f286b5a0f74bcd8a375f0b38a056de8d327e58ee3b8254bd72e42cd4706fa2d95d44186be09a446267171ba50f0d33f5f910752f48270cb0470b23e8bac5478e6d45457133b8075327165fae2b760984a794a065090a6b0a92cabe37ec268f8529ce22d08839d7e76572b0781e49ff472a135d4a614cc55b51e9be7df7f456be7ebb16bd4cce350c7455e53d8efa44f767a8092b202448c7142ce9a8f0df78d469193f9fc17b47b49c8897076f5c6c8f56c8392816d6949da046cb06156c0beb545a3396b9d204ec5e0a26a1bb495f1a1091f65a99d9287c31512245523460cbb2bd4327985ed062ea01c0940494e8c216be97b64e27326e3098abc5f1ad792e679cb164c031acb98c59ada111c7d4e60541cc05d6d5a07407d9bc36f039e4219ae83ca2b2ac85865eb06c10e4c72cf2e186913b294fd6129b490a501c54dc253131d691018e8cc35b6d6066d001884c29d520f40a03e3329405ad5d2feb3cbf84937e2294b390a0c39cc3ec6d7af127ec23f737f8aaf790dcf7dfb9e50c995031577bd717bcf6ca8660d9bc58c5522051bf5a74523944a8e2ddc9d9029d4e2551680be6f3c5e00bdaab980bb1dc5c98b9a65319c17fb702aedc8cd6a5690e48455621cddc6d5760ab641003838dfb7e01c1aa0306b803f1948e6bb2a17fde5fee3e64aa3347184458b25b08573dd1d6bf1d0f251187002432ca05d39a00407977e8f470c8c29585a900b9ce2fa836bc45dd77f043ca59bc41831886d52dab99159e7dbc0f1b8701add0c2ef1f987302fb284d37586dbfb92a1a77eac9bec7783f30483d80410440a77d6deb0a098412acf9ab5ce4750127934b1141ea0040e2753d49217a74eb25bdbc2fd0a2b97788643d44ad1d3e2704fca02dfb61ff7569881832c7f51e22903f2efd43036503a1c85101fb96603a368fcf3284535538b3fefdb62d9077c6fa68ff2836355b49363e9aa1123e3348dd63eb2e52d70addb9d3bdac6eee74f9d225765d145bdd6cb3424552985db3f0ba18dd7a5e9dc9d707e196933ef829c3a802c0926bbc0605aa2d666cee190901cadc300a54d26e8ee03bea9901477d9c358ccb19860ce7020e4d4e73f94d5ada165131871ec122106746d9adf3152e6c2d8c1ef40b74dde52568fe0675ea9641f69598ef0f7bc0c89e3a68496cf130924b09d78b94452ab3114e0bd498cd18a241eb0f11ed745012f66c812abe945f64c3d1a0f4742ce71a939e7b0614cbd580f9582c8760df2013033ee9422cba249681a0d130fae5f0407070d139070d6c99c4d0bdea1d302af72529f03804422c07321fcee94388360229e10ae47b504851e4001d5909c517756536bcb6cf738d6df11c36e45d148c32ee563228df7b6112e65ea50a9180c1ad8b24cbaa12ba8dac426a9adecb5eafeeb8e90bccf5b552b84d7f8f3c87a0ff9deccc9bbf65aa7abe29a6ff36019b3b647263f92def687006c45ac6ae78320a0e76ffe4e48a968caff33718a055cefd105abbd753d1f1e72f0099495cbfb8f5bcc306098d4aa8da30c1ed26c57b9592cb29e25acce445b0cafc99b849a6275590fc2928accb3d554784008d2dd0cd687408012c8a23106d6b4bd1b099cc243cab862a2e0ffca5c8f62bb0a203eb5bca69fa95c22a2ec9ec92900ca8be8802ccacc0acc4ad6cb329f3f4f204b4f1e9bcb3285aacecfef1eb85f78628bb8e40a7e018b036c01cd7a889760dabdade0525009c3a463efcda0b76fe2c329007134ea5a735eeea0b58cd175107d1f4ede346a27f2d46504af9e5673bea39d1b0316ac53d76a0f689badf67471862fe859ad6cc38a40dde94c418db6c40c84ff5bb2f9c370cf0657eefb1da50e4b7fca368723400bc85fa7dcd66fe09d8411a0e8b250c01d369627a1e9926e02a92d365f87283ac2734dcb6acfbf63ee6b41259617ec346a202748e6adb9a2ee8955f94f551fae6f5b39c1676dde3e1b098ec8bdc93e18812d43401162db7fa702eb6c2cb8c4b881744f566b06f948bbc7287504128e1c909116b51292b82ed6d9addc2ed711739fbc95517e721aaf4a38220e07f3ec7579d66777046ea07cfd0ca1781afe676abfb0ab40deb359d32a19fa18f8847a2f4eec1f020598e357bc1dbe0831c275fb0290812f51cc22e7268e3818a821bd52f1ed4c295e8e3fa236c9556988cf66e8d1b3c462509292b3003fc6b4be1147b0b00e98aac0f03de96c55d0e3540b0a6d0013c0c3c0c3c0c3c0cbcc6f05bbb6f76e6d6fe96524ac1003a08a594524a2925cffd8fff5fdee2ad256a7d44ff8c03e102e10e3a0e420e099d337c1c1921030d93d0de2f4a925789c82f213ab87f06eab0e18ba2094ac97b61a3d604d9f5a2bca52566ab9d0b0dc88fdf71467ca034fd110408f2a26462fe3d7efe0919a75d14548d67d1bf65a5f7d545c944b31ecd1fdd4de96de4e2647d3ad6370671519c51275aa2fea798681033925b14e3f97dc9bdb0ffbcfe2003fd19673f5290206fc60f1f1cf0b6618b736dde12f7191a2341cc48ba166a9ca4cb33978bc64802f2e3cf481b810d5ae8232a4be4cfb264631645774fc2695fed2a2553b228480f63f2a7dfdbd7d00e360d72d0f811240564a061d206cc3a8819c9046cc4a2f8e2e94a0e3b93fcae1d6c0b8bb29aa930a1e4ec5dbb011baf286e079327ffe42c69458ede043a7400f991c8b0e18a629f770e5d9bf97aa43dd0400b52061a40d28f5694640d72f39baa04ad27064800831117d860c5a33aeee6242635b0b18a92ea2c5b2332892a0af36d5a33db993ae11a01d2a928cc760665de254f4545419e787a4c9dec77c977b00531233945d97ed47f583f77b0e9036c98a2a0b6e4c867b5dfacbb14e5eaa0591e477e12d4ad6798c1034951de5f93fb640cfa674ca3286be638dfae2509ed221ba22849ba313dbb6c1a99c7c3a3c79b804351709137f1f3fd9f1c53a028e946d7f418aad4ca7fd2193b4868fb89c25ce7cf27496b3d510c71aa7abb393b9e4702188cbcc04627ca291be57490b7cd79730f0ce8d091468fe74441a9d2253295f48b3588190932c0c62650870d4d144f99f8666270cd1a353b401fd0a143870e2067f83026010c46908d4c143d497a62274f4ac932c14449e826f724ff6d9a8eb944e124cffd20aa94a037b7447994ebe7ea4c6bcd3909d8a8c4a57663e7aaae72db6e275be724293132a5011d3a50e271868fc301148c714589e2697ccc1fa24ad0ad272e3626511236177a9fd5c33a248972cea7ff4c17fee5a56ac046248addd9449bd6f318aa03898292f604dd7773b5187ba432464e1f512e936943e7f5b5cebb23ca3187d9342a324615ed48193c3e4987471940dc7e040182361a51329d7de7ed544614e6d6d2e48d2b934a2260631125419c2494b8d993a0d44e467c0419411b8a28c9937abd93242af305d8484469aed3987ac7f2f1161125d91717971932779c0e510e76a5b2933c524c6c28fdf81d86504d096a4a0c423edc5060a3107b09e57f7fab2622e4831075b853428d6e90ee2f423e06d185cb26a9941e357a5d0a6c088215e5dff3f7deadc04620ca3944f6876af099ff75e0a38c327e0710b6b5018854cf642d35decc74f0d7f6bf6ff57c98e1e3c719762ab0f18752b7a9e71d4f4aae9eac6cf8a19cbcf624a95de26c92d9c176520e467c04c1b3d18762b4517b9d5a3767d3238747900f02e44c49008311b3c187c29e29e9648da7d81af38224201cb0b187623a41cec679d72489cd0dde0c3fe3cd80800d3d14b6b2dfa4cfa8b48e6bdf196fc6076ce4a17c15736d8214b355770790f7800e1d7828e86692eedafb1936ee5012f7649ad6bffd51118fa1820e8cb103c87b80db0ea5b2fd594d36deed888f2026384303818d3a14dbc24d0821d7e5830d3a14338b4cd56ad65fbecea16c3a98f451a34c4caf8df44846cc00f23a1819f11104310336e4803a2a0ea5571f1d74eead7a9ce0509cb30c4a75a7476cbc0165c2e9df870c93a3203dfe3c0bfad2f811a447d233de0cdc810d3794d96883ebb0c18632ec61630d653ad2861a2a715d77b39a4f305310206370000563f4d948431b1ab86c9ca1cc8619ca21c48338dfda4619d06c90a13c1b5fe665cb73a6720c255df727aa713f7c92188ab9a4500b6d2d1f9a85a1a0593f8e4e6975820c0243d1e470a28d9a1eed1c6f828d2f94c472bf3c8e121dcce385f27f0c76c24a3e84de74a124669d1f6ad5c4ee3c174a5e7ab2c899b1ed99ab6c6ca13832de6ebbc466c9b6160a5ff3317e8dd69c35ad1ca08d2c144f5853ea0419830cad66c106164a4acc478ce89d6ceae40ae535bb319127ebc6bcb14229478ef6a69e2779548582d20b933bd99f32dc3a74a49971768064b04185e209ff9283cea2fd791f6c4ca1ec492c4da7fec2c186148aed1ecc2449923e95a424b11185929bdcd96e4e7810ef6760030a369ed0cf26ed93a3dbc1a683ff918e9ac186138a3d9e3b6c6cbf836d9160a309853d69fe7c344779770f369850924f92df93fa8c4f9f440f369650d249e6f4bd7fa7c47e9550cc24bb9f9876a36ae11d6c24a1248fdf9a9ce395bd8d4828fdd9298da542b87d890c6c1ca160ef9a4685c9e924a9bac186114a1b65ff55ef948edab0c14611cadbe9bd9f643d19f7da2042b9f4fefbff653bd86c0ca1244bc70cf7f33c33103b820d21944ec9ef69399993a03a48d4084669ffe2d3d79c9c6b4c3bd8ee74e850440d6074fda2f8594f97861abe2886bcd93ba1e4a0a368c46af4a224c93b15a6f455d8782c508317c551926c624cba539aba3576516adb24c95136e7ed6e0d5d94e4605a655663c7ae4e5ba2462e0a3f2a63e5e4ef94c926450d5c946ec376d69363d0235b4dbcf6448d5b94edd3c4367bbd778e75a2862d4a82ead4a1f4c7b66d0c1574c009356a51f2a0da27f975345513ae440d5a94649f3ce11b32f8aa8134be8c94356651ee54dad525d7e50959b1004f16c5d8195c733c6144290d0d5899dfa1462c4a325d5d98cc6d51a68da1820ee8705d440d58144c92737bdc0ddddd5f51ceabf1eaa4d1faf14a3bd8caf81e3e780479b4203dd2f9914cc06568ae285f7e67657687f1d4b4e2f4b97ed3c9f16ed6604539fe8f9ac7385f72ea6baca2a4b64eccf2fd614f5ee1504315a52a516e637e858a29a5a2a42cf7b54ad850b27dc3420d5414c34c3cf1293a9814522e438d5394fc33798a924b53a7ee0a354c51dcd1a25447d73839ecb452f87557ae1eef559d567992a275588d516cf9480d5114e48a126e2a3e49a50495156a84a21cde538cbc9c8ed7c3070f20ee821aa028c94e22e3fa69a5e869c48c0f353ef1c6c847930455d5f0443156dfbfd536e8d768558d4e147fe49c08ff35f164722ed4e044b13fcc468a7f8a36d3260a4ae8244eac4466747e61a8a1895209722e6485ce24099e4c1433438432a91957b3061365f7d96dd18ce631da3bf80f352e51d05227cbcd697749fd09352c514c424992e7270fcda9d383c7d6a8445975ce4c2a97cd303f053a7420a10625ca9f25d666983a5da53489d29de7a4428fc8e0269244c944cd53ede132ffc744a23cef256da5ccfb7a0612658d7f92bcd2b6a784fd8892a61231e1614794127644d94f94b2d45c4ad68e36a2341a43adcd768a57ca88c28e4e929259d7b3aa5c444126e1a624edd6fc1615511879553a8bbaebfa30116579cb92d4e81051d2ea72277ea7e6e4ed10259d4737ec95668892691244dd749b586521caa1fef4f976d0b964558310e5cb52aa3fb2337949328882fa9c38bfd1bd934e2288d29b8ce61c7479186d12886266db1863d8f03eef0144e1e47c2641d59d3cf7fca118f4b78fe85496b2bf1f0a1e4acad4217f1fca5174c9e81e3b43f7e643417712de49da9c5888f7501026876ec6f4256e87f55012d65a42c920e7a198040f13523b9c6767f150ae8c77c2eac3494266ef50f8e49bd1b53c6728513b14e637c99ad6f563ee5a87b2a65e291132c7304de950f60f175264fe3c87730e055de5a7dc3ff4ed470e2569252839e9fc1c4b380e251d1eebffbd436612e1a0c6bf3d25e8f10d2539f6add2edc3724337944433281dcf39e5956d2865f693c49f786c2869104aee5ca26b28e6ea52a742a6869249d2f8c626e9262a4b43493eb9355f83cc79d255030da5fb6cda3272ba2ad32329c8db19f8aa733315b17dd1b81022a6dda60a410d33f8487a7ca0870f1e1a70408d3234a0061946789c91801a63e0710606d2e9e1e30035c480801a6150400d30f03803033fd20d7ef86841091450e30b6490f12a70400d2f74210135b850801a5b1831400d2d8c84d4c8821835b02052e30a02a861851b35aa30c2e30c0cfc0f343020460d2a94de42760e27d667fff0b800f54829b81a53287e14bd398e6d70f9f08aa08614cac94d692b5f07a907d6884229db24edbd12753ab635a0f0952ad10d2632696f90121033be2ea3c613b68613caa3274cd7270d26d88614d56882d76042d75882d75082d74802d640c2d53882d73042693dd4c8243ebb989c221493de568fd93e87bc8c08e553aaef62f3211483be911daf4188aa554308c5a8bee5aeaa6132570b2318aa9db21b185897f809362efa454989671dfd4ffeec31f6457935e99feb986218bd28c8334ffdf02274457353088317e5cd9f634ea393ab787e17251377b27ec74edaa4954218ba288c92459af4a04caf24e5a2d4d9e47a8ff2fc191917e57393eb4439e1d7a2738bf2db8587f6d8649ec43fde041e862d8afa1ffd53f9c69431accac185518bb2c93973dc4e327abada4218b428ad69fb6af1d31837cda260baeb3f83ff8932b65961210c5914b4a6ebecf2751db6d7a1236dc4ea5211462c8aabc1848ecd122c0a2756c9f0a89b34bea40c61bca278a24a103f7ee2c827390118c27045d1db574f0ced68608c2ac1181a18a348308606c6a8118ca181314a046368608cfa4318ad2886127334f4e92c3bf38e3058512ac94f7568901b63ab28e6b859dc9e9021e76a5184a18ad2c5c5c6886bea9224d9c1228c54144ce356cc667bcf9dd9c168a0a2f0f9e4f4261a4b563dac08e314c5dca09b3fab86ca5aa808c314c5bcffb9ee3e29111a64a708a314e510a2438a0af5b42d91a2781ede9e242f615dc7eb4218a3285d6e4e3a74850e19e3c6853044512a317dc7a7c6e8a9e21d43051d581f6184a25c5ab25fde64a6893040512cd10e267e56af8a910ac2f844b1cb5428f1b2cb242679a238629269c5f966fe341a098b208c4e94fd44b76694cb659d1b06270a1ef2e3e9a09a6312e107c2d8444987faac3759d6473b19600e4313c53a39a67cfb9c4e1e6e44189928ea7c7f8edf3f329e3051d0cc314691493ce87c899277d0a5dae27122b444f904d5b4555d52892d4a70189328963c39937c30d9a4509244513f653ae9a453248a76e97a3626c96a7a48146f4b3c49992e29ba448f2886ead6ee90a94c4e21471445c98e08ad50234aa2d6757ffa49ee9911a58d5922f79f44eabb889224d49456aa8892abc972362af49464228af2376a69cac6373c88288687fa09113287289dd2314a7e0c512a496e4c1aabc2335f88925c327f9c5199f49584284999467d0607c126080e23102591e9e435d137aa6a0f88d29a7892b9e9fd0fa55af9126e1ed6e5771f01a713fb2c542ddcf842f9bc2f46699dd30937bc509021cc744caac4fb946f74a1684a26e9e4ee3f39f6e44251cf74ba3c25933c3ab785f2cc763cf1635c589a68a1243ffe299ddfef3ccb42294ccf8f85d2f8b7888ca2be8272d7b99a25fb1e9b9dbec17d6492338fbacfad500ce126e9f8eb39882b19b121dca842317d6e90324a59d90651a16862f3a9569867e9e014caa76a4c8868f9f93a49a1e4b143990acd8d2814348858b5b679030addb7d9a677e7cc7ab8f5de675cc6676f3ca1b0256fc7e89e111e67fc483a636484043018d171c309c593ec6ef35e45a38c444170a309c538ed58b2ffed2e9f1d6c64f828033d708309454f77724ca73bf9cfa90cf33d12193e444002188c88e0c61232afdcadec2cf530d53abf52da419d85dcfa890c327c88e00c1f24d0a1830c1f6528de504231af09ea5ba269b7ec8e70230925258ae92fa57962fc38136e20a1e025e977b6a81290df61021eb1346e1ca154d2efc78cf428d232d03003c75041074880c60874e8d0a103080ff3239940878e26010c467edc3042e1a4f4a0dfadef60db16dc2842e163c9122bbfcdf54c4428e7b4af99bad2d3c35a861b4328a6a8c6ccdb0cb13dba2184723691e1d364ffa5e7835196d9b95c35d164d2c9c0286c7813a2e755915f9453c8b8d02d490cdb7b5341c4172561622661920e32d3677688f4a2e0a34910baa4cee1768382082f8a9af46d52a10413bd4a76f8eda2e4fbffbb5675527a76b6a70bbc42bd42ef63e743d4533da3be6aaad7c3070f915c944266be46eb955d99457051502b49f6b3cc276d92dea22c7fa2c8353741a379b628e9b81e9d73fa5a144eea26f14fc66951123c93ecfc8ed67eaa59946366993139644b923d591473fa9eacfef0f0bdc5a2924db5b3aaf70ef9258969f7eeed6151ccdbe15f7252f4694de4157e9bd77985ab9dcc6d99a0aef1c143d6a94f0d445c516edb8f93d48ba67cdc8a920a559304935956944d29c9e49c319707b70f101e66e42a0a27ef5a9a189eb34949aba220b7a3f3c78979d6182c88a462cd9f19d37bea37c1c813445051cc3d5d9ba9aff42795c8298af996f65defb9bdc414257162434b7dcde69da5287dc6d7ffe7f0d9df91a2b3dbdbb5fc725991b96cdb647be273cbc78d454651eef45dbd4195e0404414a5be52faf7eb94f2edd62a20128ae2485793c4581adb62048a928c25fcf22b63fafb3f515042e6d277db26d5683d5192234556a7ea9c741276a224953a41bb32b3d469443851d20c55e2e9bf6e92f526f44a79abf634130f95eb2ab946e99ae899c4a489d2779f122b9468264ae27e6d6777de092298288c9a583a479ce5c7510e442e5118f599f386eeab0c93250af39a4e6f7e9c1cfb57a21cda64ad5e8722942898bc75273ce8182243914914ece3bd4f6549d23a950c005110914439470df5daed1444225152267558df7c7e0e6132e37fbc09d21969a8001225a92ff37e2a91b1a482883ca23ca2e55293d838a21844e3ff9fae140f1dc720d288463f67b8be12538208238a2745a86879ea9c53b883ed0c0bf2c3870974e8105944b14d6ae8909f93c682d6808822cedaf94cf89344942e53751c0f99e1d32e828872a6c9d174f3203dde047b8862b5efe751b17b37c2b41ce8d09196034c133144b9d377b3a4eaf6f55ea410e5ce572568dd8b901324428872699df966dc9cd74ba88cc483033a74005932880ca2741edf74d69f6a12571d3a74e84823880e1d690439348808a2983a497ba6e24e9c7c90472375754702188cbc48204aaad3e8cd88978fa12402889289c8f966d08afca1e4a74fce25cdd87810f143419c8dd65a19e920d2876207e1217c537b5396f850d62b53a27eeab9dc5d7a10d94361830c72e7da3fea887e10d14331739a9997669a1695481e8a3a2a3dcc2d84c915c243293b5e559c0e3ac624e60ea5bb18eddf6c6287d2e86477fd763742f63a943e57a99079573a14eb32e7d2601e747658640ec5f07b9175219443f16d4f4e15d98ac4a1f0ff39be3a7b22702866ab86a767a76c132241e40dc53711379127acdae9dd50fc2477c63631ec3dc436146327a1340966ddea193664a76b6b2f9fed1a63e2b1aea1c7c40ded396b28270d99793b069983b85f105143e19324870ce2d2640a3f0d2521dac7d3e4121fb3e565104143319f3849f6203798a0e45d1039433964665cbb69c917930b226628a886fbf9155d166b2a43795ff64c85168990a1186a429ab8b13d9b3045c6506a1d3b414f86ed6d911044c450d8f0324196a03496890943e946a4ed8eab891f4ac0504e9224c6532eab419ffa8562abeec95632f342f1f3467f0b3b75a178279baeed7866912d17b6111959f53cf92aefd898ab6410bd55e299ec164a269a2c5e5283bf6aa6af20a285927cd22e466a902786259285628961843eeb1ba1d923828592d45682d86d958f252e7285624cb19e7418d9dcb78b58a1301e27232ddda4bef602912a14d39abea898d823f5a5424143ec7f9374894c81b5bc70d576d9ef589dc9573b9bf48948a19cf477d039097392f25c240ac570ad41c611d9277c4e040a05193ef67fd2b3c813449c5032d5fdecd49dcd3b25d2848266b7b2ee9874899f08130a9ad56c45789ad151892ca1541deac194dc3177c6224a484e1f37da88449250b6df50a3e5fb4464520409cedd9ec77ecbe7c7d86a224728461feb34f21b474348c40805259d8cd5a83629b22b43a408c5f64c8bcb8d458850cc1d654ff668da94c57a079121945309193dcacde6f841224228e898b435dc886d6e644580810c9440041d58168404a31863beed2c510b0146a94abcd131d97af81ccf2441c82f0aba2b3fdb4b902f0a5a7a1aee4abd282921c2f53a6dd071235e14a4c9d57d920e3289ded945c94a8e31689d58d9dee8a2a4d2cff429b9b19c3f1765f378e275c74fda0417854f25de666f12224e7e8b52bf26cf51624a4f63dba21c447e0ca14666b6538ba2f7de77ae6adf20c3b4287d27939dd3b6c97b328b828a3d41dfa5d9c75316851322325efe67539dc6a2f8259a7b4acf38b14f58944c6729d1d6d739fff78a72987cc2bc8893d1f4ae28a95332d4849f20bfb35694f624e9a44fa5d4968715254177c9bf59a399e72b6415e50d4a9bdaef4f9d170821aa2808538da24fa9378d53878e11fb44482a0adef6a1c473511a63dec13682fe1015c5ca1a996234e2575784905394d48d74dfd5185fe2c7142559343b69c556a528462db9e4f1ca5cb1931d6c21a42887c949e4533398dcd6284abae48637315b7c4e1f5114c4baf767123d1fa60d45e93abf9dea46590821a028c59f98042165478327433e5118e1576a2784c9d48478a2f8bf2942e43685fe5048274ae79dc4e81d4fe38eb8836d04219c28aefac94933a4f9ab1fb289722ed9f9a36f6e079b0e1d411219233a742c77214413a5d22a2a5ed3c4aa0c8764a2fc417df89eab90d6d9104c944bbb3795fb6697682197289c949b34b89dce861d628982599fe825c59b54ff56a220feebdf269f0cd71c568450a23452ae4bb83a539e931ef0ac43c824ca264e30c1df5dcdd408248d14826e4288244a2323c306b99f4d258d44a9357ac76f1543205192f57e7487d649557dc8238a31c67c2cc14c52f53bc411a53aeb24c4d5889ff01b51d0ee574a9e29a93bcd783808614449ac2f318b891ae42ac61f842ca220cb64ced9b75df77c4514d33688f2d26a629e9688b22751b3da9ca85e928c8862993ad941a726c93c098f1b380e21e410c551a3ebee33bded961c0f420c51eeac66b2ef6d8014a2bca3669d2b4cc7d22144d9841c7751fb18bad9200a1f4c8d4e5a63ca7d91a51122886236b13adde56d8ad3620f420251dc13ca7e5ebf04a184858028dffa9db898ece8d8f908f943314e3c99a9e304dbce0fe52073a3bb9f96f0c9d50312d2077baf54e688f7f850da36bd26b53b69db6584eca1b46692e64a13ca4c26dd8c103d144e6367fb33954d79939187e2d6291d4a3e40d6062178289ae82da73e84ea16888f1d7c83903b145e5483fca06bb2ca166287b2668a91399b4e72b229a40ee56fcf9b5b4f340bedd0e1eb993fb73c8d264884903930277a77bbb3e6daad7342c78f294d8b968e102287a26556bb92dbf4496996101287d2cc9e7c72f20ccf4e7a191cb69242a72f5b2f39db1d84bc017d720c4ac56d8b380c216e28e6e5292d2f254afe15d2064cdf5454b3b5cb0411a33d9af4fc216c28fe9a24e97c9a394486d7508a17b1617bc567aea386529f69aa4d92a8493a7d1a8a6725f4badd6828c898744c4c5e4d4d3b43d945d5bfe62027c9a6cc50f6a067bb369d8ea326652895cecdfb4c13f3e69c103220ba66b5699e5bd5e96a42dbeabb27b9c428f6184a6ead66265f22f4b885103194de4cac12e3a439d9752c8484a1a8d1bc94ae8b685493103014e3b9668b5f590d230af942d1830c93ff949b53931d6c18e205bf36efd3ba5675d3c2b4ab5a63e8fbb051463bd85c10d28592d0a3a33ce59e0e232e147e3659a6681c75ab42b65034352ab49cbd2619422d943d499dab4e2bb241f782902c1477f3de888fc94eb20f0b66a79cebe659de6e7d6bbcc74c82da43ae5092492fef4a0e5aa1f4e1d1447c9d6c723acd20a40a5e9e5462501993e6f9544844f98a4e4acdb60a9942492eed2489abfc532b511022857249a24ab46ecff0650a8942d94f752a61b2e71884dafa2150e0c6b54e5fbfe55c3ec30c1ef8819027943d27f9724a3576924f1ef000b2021d3a7cfc483ce8e1a3870e1d66a0d1c3439c500cedf1eeb4e4793c37439a50bc8fffb1f53235fbfc23ed383f3ea5e047901498f538837f0401821ec284926670d9f0b6cf6eb21d6c40789831d22395c13692c6193ecea590251453dcc851ee9a472db383ed2e10a284b208993942896a269b1908494231669af8a8b9fef81d87043018e14008120a271f4aa98dee1e53b3834780f038f390239446984c3a4207119d9b4523ff830cb5330e314239080d22b5d7e4cee320408a50d096cbf4a6c4bcf1734a8462926d1b43637793b83984d2a7893da6a413431226c57f7b5c065d308a9bd5f11fcf323d6014932489330529935388e2e9062b13939e849e10e54d269af28f9ff4f24194acad573336cc9408a2b8559b736ef32c9a0e44694f49b1fd9fa53703a2a4730eda9b422899ed1f0a2b7a932693a3b7f543713ba97f2a518c3e94eb3d9f5651627ba1187c28a5af67e5eceb4912630f252f7513d15f92ac8aa187f24923b3c709e72526461ecaa9e579479528e7e6321e8a9a3ff77cc5e68606fb0ee53afb8d7dea9ff2ead9a158aa523f6636da655c87d25965149df4b6838d0ec5d2ab12e227ad6f9881cca1a43586e7e78f5b6f470ea54f62d2499b60b9ea4971287b67f4331b935d94180e0525f3bf8813d97f62de502a39b747ffe437f3d90da5dabece76f7557aa681186d28d8596cccd3e9f7ffb56381186c28f89ca85cfd69a97c62aca1a49f76b399fcf88cf61d410c359433358beb955292ca98186928bb08f18c17d281186828a99929e936a6b7aecf50cea66e9214fff7f12533144c50bd5146b35e5c4381186528a6302592a19c36f5ac5f68d1b4e90e361f4339786f8678d34c208618ca5b9e71b5dd77547976b0b918612828c143d4893987134264f4e04106193eca0043c1c47c234b740e27786704627ca1e8fd66aa24b7d2bc508e31746743d4f76b294617ccf0e12300627001f5e0a1831e688488b105bce32aafabdde2e244348fbdccc6e40ec680185a285c6aeccc1c937d442da30c1e21d0a1438c2c1c72f6c2a35a28dd76b0f9898105ceedcdddeb74bbdd2e3424c6150a4a507e7af6bee133658592dc33324d4bd2d1499233ccf8401a190002e44da0021d3a7480418c2a949358de9fa563ba2b691e4932824619cf820f7080033a74f4894185c2e74f72a2aba7dcccd829943fa7d0eb26ef89a7d38f245d0a2541e67c1f54bcc4e347908c42294443cbcb9928144acab43b7a8f8aae9e502caff9b4799d3c7dbc83cd9d50927247988650724407b1a9408c2614f4e4784a8dc6d1d0498030a1fc49ed9b248a5d8ab684f2784c1db1e935a8d1a96b81184a285bc90e1f32b3e6b8382046128ad6632ef755dea9330d0231909090d71191557911e30825e134b429595b7437c7080521566d4c34e9d2feee15885184e2e67c92ad07914d399e95400c2294cb3aa88cbaa642474f3b20c6104a9d74739e136e83c8931d233d7e9c0f1e2367005112c060c4036208a154825e5849728e41077d30ca49fe53567e1d4b381d304a926a8fec604ad2ca14c72fca7a4a925f64494aeee616c0e18b9298d3497e6850efa283a31725f17b4ab892b66ec4c97861bd6b6c7adea969acd6e66ac6baf03a7969b500c72e8abe1ef35b09795ebdd145613b98dc5f32e82445998b822a6d7662b30f6471e0a2542b7ac4e64dd28d06075030068e5b9446485fffd1265b1456c493fb9eb528e597aaec2eb54d958ee0a045e9fa74099e5a6390f1e1e183052366068e5994e430ad9ed93aa7aa481645f3a4831d8bb2c87cf2eea5a87c3111020e5894936e30d124ad780e32fc8a82eaa4f24c7d6cc47c0439238d1f678b80c31525d1744789789356946f3b27b598132bca49c96b5cfecf7ad45761a9a65988a7912a4a3726d39faa1152549f8a4369c91f4687868a7266f993c486ba0d7d9da224a35e52fea89c126f1ca62809b63542e6529373d5a143878ef48347ec81a0933408384a519e8d757ac3a789ce92a25c2374fe2ccaa46d6c14e52cf2feabd699a194a228498274cda949f36a9ba128f7e529bb2e3150a4f11e1ee655d6f99eb2b1537388cf0f97b9f944c93d7a92737e39888f3252a04347101f65006923e0f0444909f9d929638ccbba13654ffa24ad3e39719a8d596fa29c9ba3aaaf3732ecab89d2079344ef739ffc9e9389ac4a64e6da2a4fcee4d53cc920eeb99b429d60a25c6b6a4cb43b47746dc61c071c9728984ad9f39125a7d23196288e90679ff3a74dd557a2e0c99414d57afa944e8972d6b0aa4cba9d44b9ece7f2f22acf549404e755e7d95521d765e19d5bfd73f2106b672490f9d349a226c18644e92bb3c88eb239b3c34794f399b0fbafb5ba8f7144a966375ac79c3be4868d28c6b4142d6f4acea74a8c684ff5ecec2e463dd63cd478d88fe7a0f9a47411c7c87cdd752e01c0167028a2dc57a71b4f7c31c11cf040b801ef33cf4494ffd42ab7736d8e55820311a5f3bc97e359e37f648728a9f849611fcfcf939c066880c310653ffdfdf3d13a522b44b9bb4a9f7f929d8480f0680352068f206810a224b4d6c70b3b4f9a9e4194ec777334bdf1e67bc4218882d6123e75a893203c7af000f2bb8264d2f811d405e1d183470f34469249e3cd38332399812310e5d099e3e456cf121b015134f904f77ed38680e30fa5fa3add98939a9421f43370f8a17862bc9f893215a3b93e94ade39b64727363e2091f4a65ab29ee33df433963fa37f5fd9cb3c8e40d70e8a1a0b79edda12bda00471e0a3a890b19bd3bd7cda90c1f3e4c1938f050ae93328ef8121fffe11f3e46d87ea426018e3b1493c949cacdfce1b043a9048d9bbbd51e4cec70d4a1f4a9a3c4e492b48174461a2ac8010e3a946793243eeee818b63973287b97789dac441f8fbd1c8af9a41e93b36538e2c08dec6b67998a895ea6a6d97e98f46b6579101e659c91821f41805001071c4a4296dded88d61374f38682f57a1284124c3638dc50b44e3a98f89ab4e91b471b4c725de610a7a734be053e74a082c4c18692d299479ffbc692adaea1f8195aae4a434e9e8c430d2559357d771855429685230de5d22173b2666fefa538d05050db329ee93736fcb3836da4870f1fc92106c6d0809d9f94034438ce50523352533dab69966e479037810e1d3b82e03043c13a4fc56d76fcea111a65a41f6770e3284341cbbc97eba7b95c3b82bc097247903f23d3087289830c2571f3aa474f275b8e4682fce0f12348ff080204c75052bae7516334316a85430ca537b9e7b21e538e27f90047188ad9b4d448f9ac0938c050d0595af3a6908e9cf166b007707ca19841493525639e14a733d2088296c68f6e1c5e288932b53be671ac3ddd8562fe9384c90f621c5c287d502d269d0eea5d3c1c5b28faba9c99feba3c79e3d042f1542655a2c94b06cd6601bdbad00b55addc2bb76c13936c26afa53e62a1d8e7de1f4cba502da14ae0b842f9a4f33f952d1b4de7562888dc53728969faae4d1c552829492ab19e23ea4f3ee1a04231a91691563ae5a4e5532826eb0d91496e38a450fc98417497a05fa36438a250b492cac7fa9340a1ec7a258bc8320d8f1bc7134a92e678ff6c130e2794849c949f2b211c4d28e668172506a999af64389850f23d1de11b75a46818c71254fd0ed1fb4a17d3a925389450504afecc953ff28801c191844e334b2bbfdbd63e34477e891b638e9f3e470ffc483af02182830309853df9849d921666a1e408e598b5e924f32a7d131fc90bd283870f13acd9080e23945534d566af9f4e9250077014a160a2243ffd269badd63f56063888500c32e913ed46cb966cf269c78ff82063045f806308454d3dc9939844c8ea3a8d9c61c68f1d7a1a031c4228f79eb893d22475e6d96094f24f844815e5116e00a3f42789f217ede5495e7f5192b5dd17f2355f947cd49feaf4c194aed58b720ce24e9da4497689657a176ef0a2682a7e37984e259f65752fdcd845c1467ad239dfc6f33cd145614bd67ace8d16d57a2e4ad63dd75bfa1e3c768c241ef000e21f40b828c6fd3b99942cb144f75b94e47472aa3229333ad3b62889f564a2ba68ff4f6d2d0aef379f413edd4795b4286899fc112f274c88d22c0a1ef467b351fa5bcd238b3cde632cddba33343e4649dff1bf2f514f2a16ac49dd24f31958143c7f35457be315e5a4c694e8246e5c518e1f99947613a1edb25694326ab45bddacb33fd6e1062bca2b9ef24ca6df926262c38d5514b3c798a95f3c7695ec862a0e324ab840ca6ea4a21c4b30f51ae6e4ec094245c9e74c3a61ff44b535394549c9796d3e68111deb6f98a2f0d9a52ba34972f8336f94a2d81b4d4cf2a3a97690dd2085a3eae2295bf2d5d5b164d3d33198e9e3c628cad9c498c442891335635194eaeceec36bee46288aa3aff1449a7823a40714e513badf6f4d522649dd27ca1b4ebcb0f5dc1b5179a260829be8f8cba436fb4e14c35a97204a4647afe484aeb2a2e2bada29b39e253547091b57b289929d70a31e7769620fb7ecb23ccd0dbdabcd3f16677bfa4f938982aea7c91fca45894fddc044b135eae712ec3fa7c98d4b144bcfc8c986c61225a14a4b8ccfd91b9528bbeb67cfa4a4b2ac9a12e53cb99397344dde244a929fba9b6f5066f3a171468f0ff800f2030d0d004941d2c8804be238b9789d99abce1d915e721c575372372251127e377583ba0c7b3a66902857b6dcab854ca5eef38892a853cd1d648e25f73b02f1d7f1d53d4563b8d188f2c93e3b2383ec06230a1ea4cbdda6b8a5706311e5b712e3b86e921b8a287acadf499993fce644943264cbbf6687871e1181f8a06d9e76a5431444d7738cd0136a3b370c5136713ec98e332944faf94be877d96f104271fb5635b3537d993dd19d632649333746dd370651507957efccec3c4a4e10c5289ee48cbe9f39c98ae046208aa1bbd625f487841b8028993096df732afeae27dcf84331543cfd9ffe761dd50f05cf1837e79294dce843e9fdab763fa7dfd4263e14d466e6bea3c74713da43f173529f623def3a787a288cb4f78e31d5e8a04af250bab212c4afbc69d90b0f5ca8eaa75ae8a6c7ac8bb89bf938aa27457728ccc967793a9bf835c125dcb04331ade74925d7d6a11cb4c809f124448782acf3eb513ae7d8fd7328cd65c939fc4ad97ee450d034f983facd9e602771288612a54e7e456398131ccae963740ddb3a673af4867290a269840cfb3ffddd50cc71b3a142e34e3e711b52da9b37e88c5136144ba7cc9254846b287f7c875aa949baafa486d275ce6a223bde5a6b1acaab413ede667afb9c464339c92478d40eadaaadcee058a78ee77b6975ec5d768679d37156bf2666288769cd284a3e65289fb81d22546a34951b194a82c926e7314cb5bac918b4f53479db5d7d5119934f255d08d51274520c05d9313a42c6138662a9dc13fe4ccaf7fbc15092f649c90304c042494af7de3e21cf3249ba42793797d05d222ee35990962080158abd61267c38d126775285d27dd051ec6c35938ba850d8ea505e2708d55d9929142ced3a9b8e1b01a45056aff4249de9b94faa1d6c4046121963a8a003be2040144a5a3a543ecf4433393de30c34a050b8b20c63724b6c06a5911f49073eca18413d7824776368c00d047842492ad3eb19ff3a49989c5018d94ec29887cca7bf0945dfb01b57bf6453f232a1b4f3e1f536e3fb0493004b28c893b9a9fda4d3257c2514cd3dae94ccada5b6dbc196831bf4768200492829a1bec3e82641c911096535f56c1ee7e00623692c08c13d82004728f89887c9ea7fa3356984a2d70965f92bef5f220325f541802214373e9958a565c2db4b8492e60b6defa3744647ec6e4080211434afc7cc5e360184501a1da3284f6d272783ec2083c78f4d7204a318ee7d7ac37a94e61d18a593b74d639cc92f6fef602be35310206a64f4e0e1bf28e853eaef6432a51f37be28a57b9ada133e2de3de8ba2c6cda493109bbddbe545f94db6cea5e44d9f42bb28dda63e99339e397461e87899ce6ed77a6c9939725118194b104289f69a9ec9818bb29b4c56d299b090e316c534f9c4fab8917766ee602be3d1c0417a347050ca168a6dfe92153fa2c06b512e6dfe96493629e38e2a072d4ac25aa68d7aebe231e591631625b94b52bd71a27673892c4aeea9a309eb23f220472c8a9ee23536c8e6789dfb410e58944fcf27b93ecfefe14402188cc420c72b0afbe6166e6319cf3444c8e18a529c8ef1478b347b90a315c50dc246671a993c28252bca259d6676b10fa173090572aca224a97ad22644eb7b7a5451b6cd615d4b2a39af3c15253195dc6964fe13a3041505cfbba7abd1838c1993e314e5cd20c37d5491d1c36c8a62f9871711b596a21cf2bc3e5e8b98f824521483baee8a512d39ba1b4549b49f0e1ab6dac1e66fc8218a527bdf6f967832675387a2bc1e270825ac3940519246f4847c8d61e9a71c9f288f6bd89ca2fdae647278a292a3ac9da313c5d3f95428f5529f522f327270c274ad31379d95cb2d95519673325b468e4d14647cf4a48baeb5abf303393451da9461b286fa26114a3251b410e7f13a55cc450813e593ca24335dd263aa3ec7258a9f33d4fd8fec8a5c7358a2a87772e1d1b70461e21c9528497ea1deb9c4eca26b0e4a144dc7ded9999e1c4d26f5e061d62651ee123f25fba6123e9c76b0ad9300062341c82189e22639f752b27f876d5340460f1e3f820041234724f02dc955ff20402081970a533b26bdee91e311dfe74d420699f94ccec8e188b2e9f36426b6c68c1c8d68d736b6c4cddd44f486924328a5564236c8c188d26b95e8209388cbe71751b4134758e6532ba2bc4147cd63a3ca43291185f7536a951a7d410e4494a45326da8ef2b68f2787286b36316e58fb0d51902749b2efc912febae72844c184ae095f9acb4108636fd7db75eeb6cee454e811c27350d2ab6e20c831084cd8baac2d114449fd961c4574e8cc934094444fb2c224f1d23640143c95a692937e54ff50da9e31651d5a9485fc503c2587bc99e80a531f4ad2c9125b2dd3c7ddf0a1fc275ab59992ece3bf87b288495ab3723d14e3a753627e3a0f859364dbfc4d1f25db782868d29dc454a149467c8772cdb789f3ad1d4a8295c93453aacad63a14dd5347b79f74289699ee09277328f7ba678ea153d4470e85d74e4aee637c6c310ee5d4bc6fd9dedb263814459f6462436ff044bd2fc9e18692248d5ebb8f6bca97e46843a9c4e7d38aeee81c4b72b0c17ca2d1ef7f5b43e135673991a9b304a9a1145b625c89bab8320d05996963632568288c7dc99fe4e40c657b33bd22d6a264133314933aede9e7294349abe6b4c16312ff3c19ca712776b831d53afe180a9fe39b365444a62e86b25aa94ed2ee3094cb33c612257cfad96028c8ccb4d174bf9ce47ea114d726948c1df36beb85b2bc69eec8c8ce1eed423176d4b0b26d62d797b850923309f1d2133a9e96b650124ad34d6fa4cf5d490ba5bd4fe941c68b532b65a124442b83124eb050d412d64413536593d0154a25091d9a7412338790150ae244cd67edbbd0f92a60f12bee39f95428db6d6613d553b4be5328d79a94e3366a2eaf14ca99f2275d4d5027280ae5282636c959846e8d50289b68cd7c85e809e5d6934f6c53236b45e484f2e998e329eb533a89a809059d564a98bb66b30d31a1a0a374fef70a2da124e69c74fcace9379d28a198b489ef9f95c994a02414edfbefbed34cf9070925499aaace3174506b1fa1185fa2e74e7752be11ca49d63c84ce5762e3229483107a72c7386bfa12a1a062de31e634c7104eb2c9d026c8f3e41042d97654f86c66493a9e60943c453d7e148151ce0df39dbb4d88e67e51bc0f9d27a94fbbad1d5f9442be843d13f474b84e2f8a77257c7a9f67f1102f4aee629e641242dc767651b0ee24899e374617e59c4c0c0f0d2583f04d2e8aefa6f36c6e838bd2959c4e3e314a880f9b5b14ff7eabe4112163ce1a5b1465bd93fc7bcf8dada945e9e624b951359366d0d0a220b29fe4bd360d15fa59946c3bd7be48fb0d9d9745613f99604a5022347f3e16251dfae34a9860a79e874549c5497258088d179e7f4541e71d6126cf295162de15e58d41b4a4320dad9a6f454127fd5ee2969f9cf3cf8a5258dfe7dee7d4cdff2a4a99d3eedd664da5f457452944cd2a479c8ae2697d6c5feff8e1a2a29ca254797dd09a3b7a8ab22933794d66be935153146496aa3fc94693a896a270e24436cc498a926eaa9a98d4cdf48da2247b68889d8d161b1345597449fb7163091f0a45490cea64ddb31e14c5b8bfa3e1f3897232bbcfef279ed04e08a183064f270a57d53144c8d6091a4e947264529a83cac9d1df44c9da739017a72dd66ba29cc4b7fa139f3db967a27ce2758ac9d3ffa863a2545f999faf2f26af97289afa89094d6f63ab25ca39bbb35ff78f47b1122593e2b38dcbea97478952e7d81a4c2651bc3fdf9c3e37d85d2e89e28be779cc2351d298ca3aaba4215152a2e44da2f388d29d14ae7db1e1724714ed578497aeee084d238ac1f488ff125ce4e4195112e3793be3ed84cb17511cf5581fcc83b6bf1551d052c2293d93f3e64494ba24e9ffaf6bd6444461942827ee47c3747988b27ddc18d4c83949fc0c519253fb4b1c3daba74294b2c543c9ebd7ae12a298df329d9ce8d5678328ccd89f902234778e200afe7aa24f327945571d88d2ac8e68d00c33220244492c194fac4fb7ffe70f454f4a8ccf96127368fc5078d376a7fa3bfaa70f05fffba001f0a16052a3097fa393da9807b087525cf96fb04ef225cb03d0839baf730ed3511e401e4a27d49a9226886852790078289d76caa43b79fe3479007728a87555c93908a119f200ec503031d32f4fde39f9f100ea501e11f2c73be949eef100e8500ed58fa72b469c24c60398434997faaa8d769be3e201c8a16cb5b2e3bbfa694f3b803894437e0ee219934e6bda01c0a1e0757ed2c4742ad6b4037843416309fe3d32bf66d10ec00d852d0fee41c9e6a13a3b80369474106fe2d24d299dd901b0c1d82927eac7cc1a8a1bf2fec7a42741e9d5503a793d881c21d7cc4f43d95c3c93dc391a8a31a75ac294fc41c36728e6b28f5e4233978e9aa15c654a92fcce321493a4cd35750913fe244379ac849259176a7fdc319477b3c36639f19ddf8aa1f81e5f3b89c3502e1dc2d56450d24c03433193d2bcf2ab1c5ded174aa2c7585d3b42959578a1d8eba3356fcae59aba509071d66e67c4858218a533cb77b6500e99f7c3069779df68a1d41e74ceebfb24eb260be5f07971214e6492f358286b9e3949544f3278ae50fe11a2edd9af94b8154a9fc7cf63384149ea56a17ca7ec4437a526774b8592a8f36da5b497f53a85d2091ac7cd3c955caa144a4a893fb9c43bc7a48c42d1f53d986c909e4950a150ae4cd9a24ca54f28b66990a93542673d714271d5355597a909054b916da2db9e848909a512328c0ea54a67f52ca15ca69ad13a6bec7694503c254c3f084f276a9250ec1242962c62d4cb060965554d229b84995c9a23942f33c79cb4c931d66f84c286fa5977fd1ef18b50d07f35a2456b5487088513c784b5184b0ffb008650eed039edda3a75d8072084625687f7de1d8cf249275e9ace098ca285becd0e19e3c9d9fc4541d98f6971aff1cca62f4abf321f1ae4dbbccd5e14935c62ec960993514d5e9445cb8449597b4a9eb90bbe5486cf6266eaa26ca3d397d251cc4549d29e647f92d56453828b724cb5fa75ea4c32935b149409fb9d32ca0413648be2865d11e92143694e2d4a27cd7edc9132aa3bb42827295cce5463d9c7cca29864271953cec8cdbf2c0aee51b39f8a63514ea125fa886e7a7a61519224911dfc93c7a6fb8ac288c855ad49771e5714475354e75342caafad28a790a9438eca8ac2c82437b828add5e12a4aaf51ef7c34544539f46e9a0c25a928885177d209ff616e848ad2d6c7a43f45413f9e787295249898a264594ac7d52437d5538ad25e2699e4d0fa4165485112b369aec3e6a49e1f4539c663682f513d26a22898aef5f624762839146539b1840ef71f5f6350944d0956b2592a6adc4f14f36e66e8ac93d7564f947c2d3d98a815996127ca5fab617ece46f7769cb84c74c79f2cd94482d2a357939834519ad12fa9e9397710ca445146a8174b935146081325fd3a25a658c949165da2642657c9edb61a21b2443985b727a5714e664e258a2566116d15bfef1f4a946c44694d1b9a4451cb44c9209498de3492289f94f257c22479fa8f44b9c32a3d34c9f6d121519e3b37111e4b091a3fa22093ca87a73b1d3de988b2f69a6795fce11e36a224084dcd26f87b8f18511ced9e33959871ef4514f36438c947ef2d355344e12a3326259324a228d757254544415a5b499bcc3b06934314eb63d83fdd36ad27431475ade48d25ea018df9a8e46dc522e25820120904c260201406226f5701b313080018401e8a046391684058363f1480035a322040342a221e1e1418160e4402613018060342a1201808088582a13020200ebaa72a8d0f59dc8e3311435b91c7d702b9c2ca9974472508f2da1e16aea488cf13b778423dfd7476651f072e88e61494b3ae8cdb71768c7515af4d9153cdb1186a8bf08beccc4a6790eeb735854f11bf72c15b5e9bc32cfe37d08d205a20117a20696508827ebf479927da46619557b1b9936513442c10513c22d7ee875634999995c4e885ae6a2ab557b83e0add27c14d1bdd9dbd98697d94eb92f5d243352a5502993d565cfafaa073c87bec36844ea9c733cf5b0995d84f150d841ed430d3d53363a6f2f53abbae2f415cadf935341e07df6364cc5f05518e072cd48d89afeb7bf3764e92ed494ea8052688c39a7a873a59dd2a3f96cf2aa3883b76286f653a718240eaf348585cbc1734ad99d82441a45deb55923599120bf66401bdb9006e00c388e7040693f70a34a8dcd5dfeaa3fb626757aaf2626fa6d8d264454d27138dcc08ad8519ddd260b622e87ba8d6a47adfa830060af408a808a4e064524061b23ea8f824244456f8940c0b19c4349ba0ac24d8c33fe813bb29d8adc4e026cbd4939af30eb3a0ec34f2db077eca35d96a8b687e1f208f8ba313870bef48a3eb27bc245a32605a4804c20cf8559a9309188060d175d4081ac91a76f7dc75d35100e72e500b941403db279496190c7d89e0392233a59391877cb701132aa422e83c76091e3126c361bcec7d0558597f59330016308ddea9221a30e8456de1f140f34ecc922e966184db04e902a34ab612da36e8323e89ac7ff189b4bdf7f6bd37058f6d7467944e779108910c66328f45292150cfafc5a2d54c68cf5f24a30aefaa70e22b8736fcd33cbdebb250f787f52c47ee96f08e2a42f8a771227a2c28da5bb8635140179cd9d7f881ab01e93b5cc9b9ca56be581966908f96d8a415d44e9d8d3b44289c9d6f7c5b47afee9cd0b7122a550819215eb4cb4a60142a63717f74773ac607fbfb5b82db9b44a043565ec234d6826d5fe3e21c79c6da34e0ded2a6f680c3568cda6066fae9b800f955e469fa5b7c31190daf3c40a727bde2cd133d1b0b3be7bbb80d89644186e55e29027b16aabc81334c53d9cd75468141fd2431fe5e8b1fdf8f6de06c8b88b6db4cbe462540da8a59cf9a7d441907b240e8ec2769894e5ad284949ac281b6cf9afd9f985b7e3134c9956c5e0242999866614d0617f05166205e4362dd6a22ac3847674ebf6013c8516b01e5caf3122e8d74346f771d770c96f01e4afc386ef00607d0120a443b1f49275611e07324a11746ee3df8d41fe462b42d4fe4c65413264ef7722c9f25ec87f1c7de6a99e4dba1f453fc88ddf19061490b15b49dbdc3e98b94fa05f2ccd16c53f09f9ade73f74184ccbb77e495dd0dbba7c2f36d622f54d4418858000642ced0994c6458980c43f61a6136958ae436801fab48411fbc1bcfbfdfc73d5718257d23efe7ddce13642b28a3e47cf48efd4377084648588445880b7d108be8d0701b1e8c03cacc3cba6811b59f07c7c01024046c1f782025ad500a7d51fad40e35cb026e4789398c0fd2213642c9fbe0d594e4e55323436ce9e361b1658790aa564e9ea9ac765a7695c2aab343e8450c7fb4ce8168463d0690291236aa44a7c44b3cc24bacc44a08044eba8806b11013a14de0b4982ecff8013bf087eddc8719d30e369eefdbcb7e0e153936aec51d96e2d4f92fa24b54f6a8085dca96cc03f677f05d0517e1081c800370181c84437032c0229f37266c1b4b1d2915eeab45988ad6f3d44ffd422a3ed9d93308c5e7b94be16638084600012480e36014208454c00010506171300e8561222a7b57388d381998e337f7e4ff9b317c4fdd64394b8334a4833bb8813bb0433a02067c301d0805db7bcff7a1d761fb5c83c7da69bc57917d34d169c31fb56541a34066da1122dc74608c0ac521c229b82d457773ef2a572609377f4a6fc99dd956dc9bf35cc877e8001fa0a11d8a1496c0c854ecf02096e95f96c9037edd8e7e6397ec0fdd71381d8c82842008a508e134a1f1dce8c789398a8fa4d03bbdd0128d51fa1497af49edb0350bba5d32eec48db811178b9b71a830b34458cf73d3393bf6862e11cf22bda19185ec4af994de28476abb229123796139d1deaee6aef4e52a98f68d7fe88e8071400e89c369700c0ec1009452a733cc543efa3b39b15d3ab28fd8013b6087d901da96cc2a10e0eda4be67f7ec965d60f7cd684366c4415228b78b3c160de249a0fe7e2af5dd04b7e016dc018b21371c0c07c1303015825e26bc109575fef81d8e41f6dda73099e25bec8e9bf84e381b8312aa242d24964306d6df589577d4f8081e46d5634e08c8a474dac50c0752e4dd1d0e3cf21dc0ba93d700846052ffa042b03b5951f1f0cd5d68b68a8a4340b781ea2c818f587d46c66646094d04ffbba0f9ca94d1194c85f346f20190295e724564a457c0d5587cb548ad1d40f1a56c68144774523a99f095cbfda01950b66e3539aef7b2c10ba889f76fa5a0f56a3120c3bb961ad315d65987f961a322d68f0bc5983b23b5309079e7a42de47fa84e9a7fea8d3fedb34d0173ae6f0d2ca03a1ab45d927fb0b9a76129753abb358e24200136d5636dc131e7191275e8908c73d943d63b9aa5f6e9c4cb7272088d871cc0dd5ea897635b853d5573e25588d5467e931da2eebdb449e248186e16b721719e90e1c1baab1d9e689441639c953806e070861c4c9f912d32349650cdcf0b94381451d10eb40be2ead712090bd0e9df82fbd11667458b477103a99ec8a65cf6b31cd3526ccd65f0482d2001e459bf1a00211ec58c8f54caf40a04120b4bd07f04ba3c37e87ff698f3e77832b12771168ed96ea50ea29a1b837efac3e43ff62cc5f2f693fef863ca64226973c5a5fb389fc59fc064adf17882789320bd3d42e5bcce429de41d30f7d1928efb4a01914804e508dc1fd1854e77dd9df1644011e5dca6b4ed8a7b814d819053db46fd22cb83416903d8ec55fb40ad25c751bdb46aa7ca6902690fc911c755b3c20347891b50f86cba6b490e151fa126dbcda74f130d28408a3d95b10334950c84a8f38d29e3ecf24601b67c28b841d4e99cbed5fcbe2504c30b40b7175779f70cf3dacc86d1fda454a3ce0f3347eb5380f070ecb75e0f1e7e0f8d9699028c412e745021bf1a3bffa1f108c200916b5dde2bdad1b24381a47ef6b5a704eeb047e7592725e89e121c796a61b9e11e052f9ef119350722dae5c476cd8ea02a91856f6d1c63f5ce7ccce7865fdd180a528c2ced962cfafb68c2f606afe4aff52b39da4217c3777027d5dd5a05c5a1cc85e9463a2e3dda04042f8915f070b4bc1a33853af102e72a9a6983c0f1c60ab16e306d4e0fe5717c173a12a5cb1165680412a7d91c730a375dc984cdacabf976cdbaa774b81f26f5c0b0181400422b80af8a0d88b150be82f43b04622db86040937eea8f8aa6fc1486db2825a1a1b08446d7c4c0df4fa828195a21a2e450f1777206a4b4e11c9a10357b46f5c0a11567ce918a092d9b36d6ca3042708241a6f861843ac68c5125419f1b870794925e65668a70cdd699d5b51b9860b37cabe3d44541671db64ef7f28d7a76a8d6754d94965dabe6c64c26e55dddaa8154742039ea4ec5dfb86b8736731bc91271a7571c1f137faf25a4da79e51040bc20554053a2dccad2bfcf69309b8a3b4175cdd5de50e5c0a24f57167db75a400eed70b393209fe3d708d584e5725eeaf5b60ea029616d43856dc19221b0e999d4a070686d2d0ee0d7e0befeef3a07a5342698474a638e016da6c3df839912312a0276ed38006a1d2f0fe040af5dd59520b5c2a1be1cbbba35e95da4869c0daa89b8bfa9333c56e559048c748f790a77b0a7e2bc4898e6ba697e63cb8232d65527abf6f285e464f4d6bc870c58ef81d5760ae56bce0881b3190c67f78037fa85585daa6d5c87a7cc0957abc7f1ee328a4eb7ad61f9f9c0b3362780ab0d447054c4cd347ca0af3b5355e3691eefece7c84fac0819d0f5c1163a595629e0140aea6365fbaeba40a24993808a13d6c3586c5932c29181835fbe05a7d049620fc8f162a1612777f6b19ce1d920f7db7a2b02f1f8973010946ed6e37a5010c829a4fb19170bb7dfa3c7a018f8fe0ff4e4ca4dc4cb6243199fc5664f51baa025c59f034c9c512f8c8d3a93112381b0d09b42cae83da6129b9fb9858574d5ca7fd76de42d8346a782967ad0759d0efecfc694e7d0d8c271a97895018a1c2dfeda6a400043f7c6bc4d9e229e0dc5339aef7e04df0169a603c23a424042c539b76b4e6b36c32515c18f24a2df7e546318056471b7b8e47b2e2f3ef4ecc036df94d99de20025d75ad96e12170c24f6331795250fe63a5cfbe721e4db632389e6f7eb85e89b59e81c6c8585d8fba3b2905a9e9864a73d0aa109cb224fbe6486adec7199926484539496b9d7e0faa20ebde1919f64cf2cbb8e9e78db42c5b93174ea9e81c1c2031943cefa2872952fd7d347ad0847cf293d19811cf248c0d44b078c0f6e3017b4157bd30606ccdd7790a246c2b5badab983a70d8340ab243b9ec359b02de050e4a4f8845fb61ca09d4c7b3abbdb3aadf0ec3bdc3647d09d85914f5056dd6515f8c178f58a4cc45b2925ac200eadd76413b3cc592395b7ff107db6b90e9bf9588dad736dda18a3dd13025175f75b13978a0ad1927298320cd74388e01aa1daa32995155b0c06ff2e9a9c38d01b1d103fb045499bcccc29b1d5a660634c06eec96fa1f48221f8c157ba56ead2915cb659b0ef2a81e851bde9d6a6397e0dd4b483858d4538030ca5e0c3beb8e720614fa5e267fa127c4b4f70210e000c1dd4614d6306d3bc3bbde7a45b60dc1ce3d5ea6239db58b480cc495cd9321825298f8e7405663e2a330787a64177da8982436be871d0b59c90c66178547d8a1e81951d194d690f12fc13142d13a59f2a10f2e84c8a5f48f58d447a5d3d703c9c5138309162c379497e5ce666371b6ee8d520d57976b28a3760cee2abe93ea2ba26912aab1cb0362db25278f503358e9427a7746c0652579f8224f72c0b4e108792a38fe0669a932637ef641473c275c1cef947bdd31b7d0de338c573181cdd69f2a8faf0075141a5121f5938cb8bafafce65e2a389c188b9bec6d7dd729da0d522c25f0c9237929910d4a0198d6185cd15b56b18c287744409c14ddc4e729a78e14f76ba6079ebd1962007e6b5a697fbf361ada7f0b0fb06287c356a3f58ff6cf73c5febb3d68c7b20f58e4eda7f84047e15a8a81d87d6fa9bac6e50c4ddf7931de7461c7b04dee8866c203c4d449e65f14e8faa38864d69113a5db6c307dc00ee9de20e1ec252382d571e7fb46c1c1232d13d41b0ef29a371bf4e3b9d33205f26a27c836659553e1c5c7c0501edf08636f24296f0fbb6c2c8b4d42c21c4e86805581b5c8255beead40cafdad4bd947425802fbee7890e896d5ab6f16b524156f3ba56b73228ad7b0fec948763d51a35cfe32f13250b3ea3d82c6b648dc843702096bd0ebbb5275db72ed8562ec980e406d0036a467042b295eb0f7d79c142a1bbeb33eef49253979912834343d4396cbb7c0bf271514f20018ec69e998b51f75dfee9778f2c5db7fcb968fb217b0bcf3f8a24666c295bd592520f4d02ba5fc1d774eefb60305391ed733cde317bb9db60283cbfef60ebaa6c6d45b8aad16df47c83b17ca39725f9db1d31327414661507f8c0b9c5a1174c5a2d35c94a3d42cdaf86cc5f0aae1682e4a8bcb82a27886d48d11d462d570d99f03046ee00d4483168a11682986a0bcdf2f5987f69f44488643970f0d957be2b367a141c33e885dee061f609ef820b6eaa6fd6904e04dda71927a0da26a999a307bd9ff531690a20ab434d45cd0d5045bd5988f3681111edbec4cd0a7f637d71ebbe502fd6fd4cd2af25072f0e8706b3cc39efda02888768913682514aa53f946a1b52841b80129ba6335bf7a501c744fd24a50d59b4aaa5f8a1f110a8b2685b5168b7c823c9dc97281c4de9680d4059a443687bd2e85d0387048202558f1c238b433b9c704ee4cf8773846eb060ff542976b3bb140255cfea5e6658e21b077957765a70b88cde5a42d904b5a57a7ab5637fb800eec1a111ce38ddecfd7d3a3294e9af34bd82a7d6c265722c48a34d644f6ef756e26785850a9d6b9bd5ef47e252d5cb91a230e7c46838344383333371f53ed40695ef6569eb04601369221d59c7cb318ec3bb1603fae1acfccd20cb01742311d696baeb2c62643e9389c71779ce242d495e89a0b7beebb0aaf67a16a94362f035bfedd91e000fd81451c457979a2733d74238a30e3476a43012540c7a917fe938ed45aa9bf69a28015c809e2d742b54bfded9d2a6571a788099ac561e1c68ab303dc068be84dc73cd25bb3759dda503f019a6b49cffaa42b42bee6a3345329c5f35312122c024aabaa5eb469723dc52d3c9749cf214a17e0ae20f34de242d1c9affbdd7c4a9ad3d8c9801d835823206be629ab504b9fafd7199253c9e1d5f6a9601b36d322e084e464d1a69e2e10f80963df0b15396275f22ff11889712a883cd18cd0a392d14f57ad5f9ba77754ea930396dea9fbee17e0faf6085c9514c94199ce1913d70f9fc1f0fd5a691a75bbc2030ee9eabdb949b31a42b0e285b38e8eb01cb661fcb20c13f0ca51c0c2c074d8adbe9d0455f635ad0f876b6aeb711def59e4348fc2369d4a1b888c4ae7b4f9cee507ac1e90a27c9538fb30ebdc6b05d6be345b31465e9c28c122d3157d6b70dd3689f417e6dd1332b1458401731322291ef593138d90fe0c9c6f21830c39e3fb453c32cb529dc9d40bf65bac7a8559c02aca2aa23da361692dcca9d0632edc42746d5c9cc8d6078f4c5fa37938c6461e1daee97a2060f313f2ee0a163eb7168d97e8eae19014d6613d15bd14107b29280dc0db51448438aeb11ea45c25441983fc1f54d763e30eccacab0489150231850e0aa053f8589630ab783df51be730cd20c27ea2c517820a4a30344c25542c12b177a9ec6fee3da7cacbe403b5d870924b37b80d52a24e2f14c43102513ee6a4c346c4613ec54032db6a128ed45190131b46ad0b3719d7405afdb7c1235f7a96402824aff71241c53048e54ddce2bb2a6423959e9901033368cf7bd9327ebf2d579f2e49bfd27f8ff9dbdd3087b62250b22c2686ba08bfea1231cc287db4a5f3bb829a20155be3c892b03097615228805c1f72cf00f11af44f0a97ad8a072c6dab0b160dde3a1350a58567167a8fc8102f571a390952f3db38f3a3cffae35de6f5e8dfc71caa4692ef09f717ff43adc91d1a43585bb071fdf25ee869960f4c4140f9cf519004832afdd99524ebe597fd469fb7708a50f14351e9d44fe5f8fa3b3526fbd112d39046ead80da3516505efb8064a3e50f40452e82b3f7713d472f90fc93ee64374f6db4d5bdd7c5f854bab6bcb45a9fd56412cc602aa2266219c2912e9b67f7b77632be30ea56ca8c56d0583412198a3e0d971cb4229b32db6a4769f75af4507560a1a78a27f3ca584d21a565a076c7130712a38293aa624eb32a6002598d85743f4d40f9d4d4f544c9e650c00d232b29a4d3b49ee5da866af249db575045c42f0c54d7e9a084c3c317ebf609985cbd18ef588e9def7be38b9c3ceef8bb9919578e8f6b01a7c9bafdbb9e75979627887be05e062f7f286986a7fdb08f1e61cd72afb1d5923709a43b5bb036dbb0130cde1dd745c4a09a843cf71acf14e402241c9ad98df318cadd58e5882772f91d7ee7a62b232f3d86e0c83d301a500e203c73b99c55b61f211e74321a87d498356ea2a638d3d282e13332ed1eb62423e8e9ca773f5aa0e9ef0270a33c5defd0a4e66c3ecc0104a28fb499b1bd5b84ac6fa34658567dce5adbb69b9428533ebb65d193eb22a89a6618b43cf6e6af0b4585c99a66a26db1425c565be6411ecb415bb1ec00b4d621052d6118d59775683d15b2b0c840e6c0a1e5cc1f23dc88ea06701fac86f5fb065bc51bb85de2967aefbb026e0e0a9caef13340d45e4e7a43b3f2e890be94c067ac147cd56655c696a9de0c07ad39746468ce40dc84fe26fc6d8acfad8121e7439278241bd2244401d6d02affb766483545f760b4a74ef25b700386bbe88f6eed1052df2f4a1a85d6768ecd44d463d195f4778612c37497e861efd01af15638927a5f037151ca96e3a3ebad6a22f25e8636ac586deb1ab0a083604e9e428479f3c86dec76508fb23bfaf07f198a03e7650cc85d4724b89d421b0a394db29f4532478ff1e5e96f8438791fafca142ac3830124928c937ee2df92023c5bb653b5e000392933e783e9ec605cc6740c0fc3056806d6029d7f53f4b04ec0400cb0b13b8c16dd9d879a38ae9c3c40d3fc478addf9e81c8b594d6eb2bcdcd7fea086f8adbba094b6d108386b31859fe89de7d56ed42f8a702c5ae38b17a03427aca0d47e47a048fda55f8d27a97d080c97000dcf3fe33b6680eeb3b10866135e679f3fc60d6214a3ce90904a01a2ba062d25df67c238d1e8801e525d2df2b41c343e1cdaff9d730c42545777b6596e96d2ad2c617780e3c684834183aa5d9846f02f4c8d97301c1d0c06483a03a3bce517f6a45799286afb40c5a0f56b6830e5f4b3b6d74fb78c9a434cbcd4421ae8bdc7a5c7e92885dde269799355ce0a32cc76ed0acd9b0ac9168870eaa9c9dccba7c77c6fb487f1029f691df45113c00c0e0285a69f1f48a0952dce1e02dc8398ccd7a7406924464229d4e38f875473ae44d1bef728e9ce661439c2550630466a9bdb7a70d82356b10e1e899b402af69218b21718e1f5c5ba0f6216afdd57a7fb9c5f829c83839cf07bfee380f585a968e73b06a6f394363e37cbbb9ecced735dac36b2273bbfea5cbe082e746c84c83f6da60a87aad13aa9e1f415b710770aa4b7e70e2f06c179b8c45e7e4202e8eb69ef1b2a04d6617946e1df3ea283980583bb3f251687f3a171935d0133626ddb8e17601c559df4e25431474bc1aca22a3ef75451cc99ef408f807bfee72f0bd5ab8a49666e3a20aa281e398f3b4c922748c0d1b51c7aea28c4bf76584754fa8fe11fc4eef6546ee1cfc4268a6a20ab9f31e6f95c92c124319e94fe09333bcc112fb9692419a1124174a3426abb00fa0e48335b060286673fb47550905a2ca702331fea2e1c0ba8c01937895f30419e9e1adc9b9d0978e9a5242b2f846ad3f3885a2cdd09fbc79fbd4fa8514622731ed566c77380713c62d691916a04aafebc880ce9275b1906107830d6771744fbee3e0a97a8380e20c4172f0146a4c97d359145022afba660f3aeec8cf2e51340074d6db64da3d7ddcce0b88e42993fa0b508290a247ffc8b906fd4fde2d7ce1db9aff3e66a344a6ed3e334152415793ed69731665cb56943129cd45b90af789821422c5390f91a0ca9954ef13588aad92f4310f0d569da08b781e545e6199156715800b8c43f529e72aa870c51d8ed69efafb14cb1f78c48dd8520bde3196514ed7f83c34ba79165078864d4a19de3a607dfdfee53549cfbfa42b77a851a8f1a466fa4bbb84ab4303aba751a527b7531b93c4d358e39c6ded1f4862f9b79d46937416bb169201ee9841b507e300f3c0428b931557a4d38620ac9d4fd4937975b5640580d2dc01faa99a596d135d35788e21544a44c111db859753db690af45db09161ad8d30db8353a8ae4cd368597b7d063babc8aaa5a16fa333ceace8051f79dd1dec60f7c77ba194217f5d0ad72ddd30e4200993f6f7aad3e027884a049f21217f308abadac611e4880ecfa02f1881fae34e025988fc690eab09f1552891f0bf9a54f930b6f225ba6de1739f5e1cf2c87f08246540b758ef5cf2aa918a2d59d8f8f3f81a03a9b407857c2b4bf5ca6d8b6964c85e2c140803c018e80d159badf640ae9b54e0adbc50a5c28c6970b93b060e91b2751b51c4b8555b230d61adfac7dbad1e948842851efa59715759268f8fd4d455e6d611e97e45c0db01e9bbee6268346a4caa1b1e3841c4a19f205bd83b4a9cd3dad410e51ee67138c3424a0ec7724291da14ff6f185e3c89fc483adbd2579493ee0da934e8f029c1f9d786c868171bb060bf78cdd549e8ab506b233a9f4e0b984cbf0cbf7c70ff576586293cb0888cfab259dff072bcdbb15dbd31eff406ee5ccef95e0d3ce92b81f7aeb4761be56884347ffa21021cd70ca653b2e37171d4c44ac13b43b664ec57a094d44727e755c28e5499804c410c46412ef050b35f892fa5196264e60eaf2407c9f7848d8638e70d740a0445d46e6456cf176aa207dcbeefc7cdfb32e4890f499b79d8a68a0505a8e71a7d0ad7ada8e27ec6f20b9ad51398c39b057c0de85c08f2d151a468fc2449c1682d7f333a2462b8793b596be81f255b9e9d0d3a5f3879576d7414e54c762bee02d25e7c83d3d0fedf460a87df8958877e60c30cb4fcc7d6f31195b384a8cd1db62c8d73a67c38b72edc718d9b7d5d3a678ab368336630c8aa1d2c1b556921dc3f4600eee230cdacef8ef723c888ae84cfcf4ab95316135bb05a40d4806587775001d5c617903deac92128d5a56dfc1236d417fff8a823f30eac8c5ea832471e361d7a9a4a7d753c16247ca1b3c76bd26e088667c34bcacf2a97b8c10f378f1206f38af56b86fc79e89c7d4e8b26d5cfbf5d4c24626bc4b1424ee8bbb0d4a6dcb1584c63b00060168500877731d5a376c00838ae7c7aac4436920bcab62e0adbba18e7230437e74940b3719b134960a7077cec20cc3096b7da80a0fd43b68c4f0c1012015e9eddd7dce36ae53950f2e187b506c08be30ce0d1af792be7edb15f6d12353ffb58783902e587405668e35bdb0ef200c46855fae39527ca08f44bad98b4e7aebf8c93eb81139b549c1aaca348d9a64f3047d62a2fda4da787348ed77350b095075023f1f74a2421e69108d939750351b9c3866c94d40acb0f30fe273b38198978924ff77580d82758366220e9dea3002ce6075af12107e55cf8dfcb02d8d971e2469073486271f23c340db5282e3b8778d42b1cf1cb4920aba248e5911de81f81f476e82449d13041687061586627f122eb63b84f093e8a6da3194d9039dd291129b83bc23e3f5e68a672681ef3c4815c3cd0c27590285d863cadeb61b09130f006aa2d3efea875cb4b42ab25048aff74be91985ceb430201320368645d42f8e51a2046d386048a203be24ac07155f7e434291b4cacbfd75d9e832bb10b7fea5425966f0370f47c64f90ef0ee7040b4ee79fb19c3a6e50aff566345f49e57f2027b109ab7896d320df7019e35290ad54a7ac47d3feb4915da70b503370532654e67194f99b08d5c613330de3a6137aaf009077374e2d4b468cee5a2d4779d937264ef089b5221d7cbbaa33e697fb075c44f26dcf56e3720483c6b865fd36a42ec4109e1ca200e864643575b56849648453fca36ce9dc004413c27ca225e757ee0c1bcae03a2ab44b3017ebdc873217b7c1cc283c07a30433f8b07f719aa707a0a2849349ed7a85abf61b81be5373e6e869d4846a573298b41639f3482a224921da50d13d3b7386d460e3a6977b5b9dcc6e0deea941be1b92aeb18e8f891e9d42b21d45bf2ab4f0998ad48352aec29fea88f36cefb3f0f64b695798e613596bc95f5dd0eb98556647f5d04c3839300328e2b8ae2d3f39e646fa58c192f53e272fadc0453386a336298bc0a93b094605f311ab11d0caf0d7db614302eb204f3d1033c925ca9e4afe51be81c064f4b1ddd23ca70cccdd5d3df7ef9db9a34926e097a16d02e940c6f1d9c99aa0e99078e75bf6d27e0c555c4a8cd99fa996f90f150740c069d025bc4e89b2995236197428016470d0cbc0d91ce593145f1f9b1810c4a020443a98247108d7b4998305be464686ed0121493c583f21a8e2ff8fefcb7ad0cd17cca8b6957b8336c2c87841d4a287a82e14ac96f241fb5c931cd7d9cb3149b66145d425c9c733d7aed0f6c9c93b0ec8879bc1c98e78b4b01894a8bd49d23c03139cee3a0f21ffc9e984692127bc2ff7b80f5eec06e185c20a096ae6166a75ecccc3af9a18bc1ebbed66205c960015cce289e8c7e9a60060398f7bff5ea3551ead1bfb5a3d1244205185b9d2a29bc328ea22134f1d8f63b69e9b1945eab27748bcc27f2e49ceb865343da10639f2a88fa8ab983df79212201319c4c3e30b6913fee2fe03babb1e97bf958bdcccd0e3831b7c510bc8622a580241edcb0270c26cdd3cf6ab42cb08dfc2a55e64a1fd01b2c249de4eb5ef84ff089ee532f24c23cc3c3532d1b00d0db42de76f24cb0a0a0f9440b4fa649e48ea18b3223f4935c49c2079c5003ec61658690a820ad6b463ace3f7a9c134caa7cd5fc8ec57840d660070ad74a7d8eeaf653fec284a0fc971a3ee8eabb256b8c78dfcc563cd4c2b8f9d9d3e5f93b36cd02e2f28af59ad08651b522f9ae7b41ac63293c4b4d16408028addfdb8d865f5a698ecf88d499a4416a08b233b57c804199a153486f7e4d9deba0c92eb08f0e0fc15dbde453d28ac22223b7ff8407785f9f954b1da68478b63546431a9d7157a0224ac9ee84b79e8bb4a68ca55bcb7766cdc20bafa401447a1f30ca61217e416aafb632f4942ef3d01f10f1aa50d621024ee96cccd585fe392380a35c550b7b0cad17a30720a78a42b5b20889ade8f3e0b8bc7a1172173e5a8f10603b973d647ba9c99a2aa06e4724a66d22ff576bbe1eefdd320e17d59c27762d0747bb6517fc7ea73b540ecb0e4ea68895680ea08b487321049f4537213c0a9c560d5e4ccf3714060dd7a0b95042eb108d2c8badb84894019fac50248f844dc8f39387265b481d7017aaf93b0c862b0f839884ce7dc4a7ce331a7e51608a7401278d540fadf40ad3e14c659fbde9f7bd864238258e0a0e6ead05b998b4f9e8b0689152228c8cdcb911c63183ec439b7bbe2633154b6c26c9bf251d3e9ffc563b6565ab5f09e95b8862ce268ab6e86e60a23b0dc1d079463c151710039a9399a8e4f87a2c3e66ed7ef4d2871ebcccab75355a62a693f43801f079b8ce77bc95d3a957ea26be993a67e48b8814c5582909210025e196ff38eaf2dc830fa94aea4c969790af8daf083d5609fe08c384a553873447d7226c9636505842551f2019660b3106f92ff57d956936452eecab5be717f83c94527c8c1b7df788964e501235f5b6141ca4397ef8f524a037e596b9f3c0870f2a0a109b9c3a0c41bf3130727840b145925eefaff24744b635cd4f04970794f4815ab81d3a6823e71b1c6e1aeeab46227a19a9c87b2eb44b8a7a0133c33e1607c400c113640a8b0fa777993e8fa8992b1fe09c04fc33728f98e964c149d38d2af470bd3c3556126c4a05288a14f2b8ab8de2a36e721a3889f60c54d1f05278675cec6b6da464f02056612ae3882f8ccc87761a332095d4feb873cd29360f92ab6f84c1af529c1f566bd1ce1da39ac3e9617b620014a590c6c72a42eaeeb34e4bb4d25c13de9d687d3d3da5e72bfd4e2b6239b20345d64a4bfaa5281eebb7a90c0e84de247fb9402c55ed618660ec9026393e6cfbdf68b608664615b472b5dc17705f4951d69ec344adedf5300e39e34d151d51746dbeb561b8fb740bf847011e99778a168237ec6b98e71632c49c4c4d91f5d8c0fcb2c2154a21b4842845097f494d9081a4243046de60d92d12075a0a704db53ddb18f94c7fae65bbd876a7ec0799598911d7c11f5dd6917bd72c32a1602de4458eb846dc5db7172692773110d596a4583b64513e4ce299700e70c06639186a17538e5c8e35e5b1d5229b35eb9c0fe089586a5c8b0d0d7a9ba7c81efbf76c0ce5c5745d02761993554bfea895e55e8985ba20a50185c01e90043574a2ff71167a979bbda94e7590f119cea2cc900c7cee9daee93d7c3292a270504bd5530615840519b384919f0599c43ebda9c4c5b740f12a431de7b2a4d5216a48d0de8613e6df0838722f64e50dc8cf4cf8a16b76088e086b0fd5b4197295c004ea6e7bace9712f3b9435b2563177d3ed4906098642c448b87aa45e8752aaeb1cf8378ae8ba9288e78d12445ec0db62ffa253a755e300e574eb02bae1c689f62dc16085c0ce8b5239148308cd91e9b386991bbb628134c0851c336a5800f8646db2f1ac3d4e298a429006e7727fd00fbdc0eb272f85dfdd1cdd86e3f06851094378799b7b9a207e208b8dc7bcc5991c014e3217ce4ea0501f2463e4b4ab94f9cbf5cb73d7cb0a541af076f0118061366d9d59d5be613ae30bf1357969239c3d4d0c18abb921733fa1512a521e43814d9f32fa2bdee574c4a27c2c9ceb3d152b085cb7432ec2c0a12d966bb64364839c1736fe23bf58afb4289358944ee9eef3a56bc3f0fbd1cb5b800ed105ec155b18c49e57d68b68b4e6adfb62fa7c8bc4c6cd31d0a90a84f1d07b101d37f2f58d8ef31ff6b66d1118f4fac61a604ff3752ac973ad483ffcbaf9bbf54f0f8ffc4c7247134218021d585cb9d31722da0e020a89e1b15504b635bf10b00e7dffc534293713aadd7c8920c740d054a01ba31ce5a3450b024e9f3ffffffffffffffff63affbb7acb2df0615abb69489c4bbf44be1c937a594524a29316c4108c88d9f90558138ce7e78900579058305dd6aeeeed018645c71031d400104d424f1a184628ed6a7713b42576d3e925036a9ea614d0e17759f0f24943c8e6837257b337ca3033764c8d0a1e3081f4728b78c984d0bdd30336c9803c287118a3945b59a78f16af3c64711ca969dd4a60d19b3a6fa4184625c5a7cc9256ffc4c3a8c8d1a7c0ca1989ee4982135b89ad4e3c0f3218492e81ac42997d13bfd230866cb788da7e308e311e52881103e80501ca1c39c52933d85c9d260bb41ba4f2cf0f845416563a3c83775f8a2681fddbfa3e899f03e6978f4a2d4f94bec55159de9325e14436a8d87b34d6b78eca29c1d3aee4d9898c34317e5cf1e6e2b64509b9da1b6c32317a5d22b0f75559250fa448caf61230569966c9c53e386072e4ae1de9f94767578dca22474cfe5492bd9a27cd5a9934a9344dd18d5a2184f8a3fe16a428bc2aa260db9b2cda27882ccb51d46c7d450cb827371abb536b51aeda924b966a3fd279958947cce732e51322939f91eb028c80dd2f35f634bf0784539e95fd19be175aa645c51fecad85b51d03d267d671a8f66b9072bca27f77b6e51f1233ee3b18a82c9d93a49ee932a4aca8310eb12635edd3a150525e34dd0b1a2b6b74445b9426b6ae99b90e29f53144f8aebdd71b113db3445514eeaf1f33e391a844ad18a6badc7d77daa075d9ecf4d4851506f72232789493670788ca2182795a02493dda61a8aa214ba9312a5ecf4fe9c5af00845490825427e040f5014538dfaaabf92cff77fa2dc39c6d751f6698387274a92a7d0e1f5bfdb04cba31325c19498a10499339ce8e9f0e04439bec6fd9da025af949b28094a70595132c79323d24469747938e15369d8dd64a2d8bfeba536094dfb1b268a291f848adcf7b6c9b94439c89af02fa95ae258afb03ccf4cd9f2983d45c7ec9cdfaf4449c62b41e7e0a619756224373e806cd4a0b1012f4a944eb95e7fd40f26c49b4466a679f9f19ab19b6a96e2e93bb4c9a484fd9228a7cd4990266b14b93d4742ad77db4f99ddf93561e3281db246f6c60312e534dfa56b46e64f3767e0f18872093263f2134bb8ee93238a269feab09f4d439f23edb8911a51be123eabc6b4b4eace88d2a7cda96f7212f25844e10413749aa7080fca5244b964091b53fd597b6f12513c953954a7077d216c449483a7d2fba77d163a868dc7218a1d223a6b7bac2d39a919a214d2478cf7c9c953270b5112de4178f0938f8107210a623e6693f73d873e08acbc464fd5333db75d6bdb836cd07808a2ec273d5da6e6cdde63203ab5ab7f95af0051ae8d9de47b907afca12ce23e9c9cbacb21461e0f3f94e34bd89920d73e94425d3b53ad557632f0e04349091fc374123bcac5e9028f3d94cb4eec328609a593891e8ad9a79b41c5f6c8435194587152f4c724c6ca030fe593ba633c69b7c71dca3f32e7e912ca245175193264c89021a388e0618782967442972083a7cdd7a1a0757272f339128d1c98edc1830e27a1f9f6ae39281ece6f36bec9350db6a4430c1bcfd6040f399446be64f31c1487f29b8e55a7e45b93071c4aafaf9397739393b7f34609d5071e6f28c587136de2fbd6fce38682acd5d79aef3a49966d28091aa64d0a9de363ce86d286b410a2fef93f774f81c71a4a72da8ee8bc1ff45af35043b936957834c14db2bc3cd2907c88ed9998ea98678588b6fc4dad77bb29e38186728e99b3b6d5dd405ebfc719ca1f6e7ce437969534d360dbc10d93438c1986682ff0304339aba9b76bcfe9a4b91940dba183841bf0284339365cd58934c9044d7a90a154828e899a6c2fe03186626856f7b8a54497907a88a1a46557e362af95391f86d28d123b73dcec018672d4543a851226997a3dbe707dd5e9ae6bb995e5bbdcbc55f97c060f2f946dcf7492c293a4b4765d28493ae7bd30bbb8504a2d4d9250b2fc73b45b2879da350d4f623025945a28deae8e36e936f3adf2c842d94bacd251b25327138485e207252b1f34c753627c85c2c77cd22466c812cccc11aebb496a4337520a7e00414269ddfd7b3d79da6a9d099023ec76a2963227f2163aa2ad375a4e0ca554066284d29ea792b9994c9694428a501425fda4d2722242f146091e3ff2a45bc921432809a2e307297b0aa1f031e7689d217b5278902094be3fa6df98c35d677e102014e7e4eec92408f3ec491fbf28c67ce20942dc9ef8b67df8a2206f94a44788f0a317e52d732f5945989cf9e045e12f4e5d096a74ee27a1c1763976e0c08f5ddc872ecaf321de739f4c2e4afaf46ac925e8338c060a508e12243692064cf1818be2ff67c9271b774efc3e6e51ee9cfbc574902364334ff8b045319de06132a6745f7753f8a84569e6c3abf77d1a7cd0a258bb9bfaf67a624bf9318b725af98b1191d260934549ca7fc6c634ba5d37170bfe8045f164f6f63b41563bb781238c1a3a5e51ea70b2b5627228cd9e1aae786e55a4672ae5e8f2d18ae27a1a61ee694aa87c3b6e88912361634541998a4b4ddfd8f00c7caca298ba3b6a9e24078e03c1872a4a1af6e4ec699ba5a2a0a9f2e563a4b843478e1ac98c6403b3a336f0818af2e5aa98a8b752aa3c681ff8384541a611239314cdd3b6860d1c3ad474b8073e4cc177493abcbf6f68b0e5f82845a9ef7d76476ef8db67a428758cf15bfeda6afa1845b1ab9975a7e69e175b26883cd9717ecae41fa2286916d379b9ebf234fa0845496c6998187426edac41511e11276589327d7ca2e44952ea5d44fbf0443966ccc8c851d28962f84fa6a9ba1d2626e144414b091762936ca2541bd765e6cb429d68a2986da5793a6de6479928756c52b5397f67444c944d693759922e5da2e86b92eaa04ba8ba2f59a22cdb61b1a6a74a94dcfaf3b56a26a17c4489827e7f9bdcd6493041348982876d68b75b519d214994ba53cfac966c5ae21f8972dd28d36f3799ae3f240a2aea32277d25f6cdff887295647a1d3d5c57f98e2828a94d7364bc37c8be11c50c4a6ab813bda5eac388c2ff8c9244789c7df42ca2e87f1fcecdf4e993378a2889cbce194ff7892806d18fdd3c9631668388b2e8a04e563149b4a8e610a50a1525fab9c718940c51b8d0a6aaf9d66da74294f5c4850e4d69a34b8428e6f9cd7525cd4c1c0da218b322269b6cdad4ef82287afa471344be8923e38128e70fa7c164ac89517540f09d7f23f64e7f28a9cf9ba4cd781fadf74331660f6ae12f7f25d387d3fa499de46f9b0f2555af27356cca6bd77b289abdc71cb3d34329dcaa4f90d5dd1beb3c14e7444d71562789ae351eca5be2865ceae6b05adfa1344a525927f607d1931d4af2a38fdbc9a8e37d1d4a25c8ddc6d149e6ea4c8772d0e03d7ad43c8752c814fae7f7bf39cc72285989a6b5533f9d8bce369384170e05d5317512fd2596bbfb8682b576a63629265eae1bca9d4648bdcbb60d657db9f174fa938e6ad95036eb9272e22737f144d75092623cdb24f17aeba46a28864ee9693a78f4d7350d051ddf47971a71eb494543b9fc644de27e7a86a2d606f1ae314d3b9e662889197eeb7492fbc7ce3214c3a48893b43ddb29930c250d563efb2e7b1ecc3194473bb46df0520c052bdd34b2d12419250c43e9e4f0493e4925d79e100c655142b593125a9412835f285f678bae756813445e288736b3afb8cf5d9aeb427963a488754d6e1d1e17caf74966d7cc399f6cdd164a63da294bb04f99acd342c184faefda3d793b59164a259a30bbe7293ae80c0b25ed3fc95e435728e812c7acac36c6f3562827f164b62d393dc860158a17169ffec7740ea242e94cf80b8d5e7d4ca17c23d64bf22b8d49896d60520b3ea450ec11dd4a19ed486ad0d0e13a708831a33ea25074f55b0f26d69307258dfb8042395deb24ad55da4b861f4fd06dab36536bbece622e4f0c0df24fce39dfeac309e5aadf74331bc7a490d3b8616c9820213148d0f8d184829a6998d217e220a140860c1ca41c4c288512229e6489cd7c3f9650328739bd234c286eee36b126843037a9c8128a399b0c6a3ee66bb361105102aa29464813333bc868b0f18e48122c6f1041020e224748ad6b36eeecc511314239ac9df831c9e1fa83a8080539fac3674f9c74728408c54c4aa812b3079942e79121143fa89055caac24f9931121947d4d644e77759246876d8804a1a449f4d3a6dd21461d0142e124fbfb24e65b4fdbf945496fe3ec9bc891e955882fcada724257e69cb10e482f0a6626858e71ddf1420dbbf3ceda53d3d349e97117c520fa5fede4125d4d52a58bf2e8f22c959924d975e6a21c1f166a731204c145497a120d325b591620b728a7783f93d1575be453b62896924f1c757296592d4a5af5348ae97f517274060e082dd2f53a6d7d19f9ccd1711685b78dd79fce974549a82b63512ea553f8e96efeee1c162599cb5ebe4d777cb55f51b8fdd3a72393891eba00e28a7265d0646ae3e67c42a615a52a9336752631b4785851fe1825d6c7b63531dbab280932be67ce1cdba34421aa48af2c63aebe2a6b76aee6c5d3baf7e8bad1435251d0f53949df3c69082a4a1bcca489b6bb9053143bf3526555fbd264b820a628659aa8d3b641a528998923273c9c2832931052147d637594cdfd3726c25e026414c5d3e16bca4fa74c621f01228ae2b59ac8c7283ab529ab099050a881a2944992c3348a10e22efe849627ca9a54b642456c88bf209d28c76c2e25568d6be8ca06104e94a4e71c27492709f23c4f830d25d4a7c35600d944a96eee94c9d589ce9ca141345132a9b3e90f426a1e256c032413455dfb3f3977ee9c3633a33051328f265b697b8989191a7fa33400b944b14bdcd52625a6523289ad254af29aeba3ca6b9528e960926accd0e52801841298083da72fd34e46da9049980c49600b2091b8a469f1d23a80020840a21c4d7e74653a49ce32790432fa9c988413af50b723cc283e6f258979e24694fc2cfbf4468df93ccc88b2897e9332a409b288f2699c12b38bc731195644694bca654c8f5342a589f04ec4bde3743ccc7564bb3ae44e081bf91911e5d2304287a81565196c25400e5192ac6dc50493d67646431464cdf7471d8d7f93a42085284871b351d227b19418d9305fe3861837cc9f8500428892b89dfdc4750f03904194faf34ddafe247f57021144f1633cd1673569150840144d3649064d4abb99faee02903f9808207e288d3ab9d3798aefae3506a40f85d377d2494a481393523eecc1560f697968081eb4ba35716f2bbfe43b541b4fee0c62879212479507e9259aea155287c2a90932ef6353103a641fc81c8aa2e412d3f82611de9f4b103994a3cd6f7b38796b7aa301240e70e842efe46eedeef24b56c81b0a1b6e2b4bf61cdfc6e486f2c62b951f13a34e79da50d2aed9acf11b3c6f05614349f6fd1244cb354b944c8002138800b286b2bc3b55c7439403881aca4166932f55ae54299334944ff89117fd58ae39090d05d5f964350deba1a4e80cc5990d13fbeebe3f44662848f36dbb369d329462347d92ccdd3e282143490c3a8a7637bdb7228fa1a89e43cb99882c497cc550d82043060f2f234f0986a19ce274d57c6eb84c0d0c0569279fb0ea77db25f585b26c50df91fe555ef242497a9afa133b5ae9d877a1dca2574bd470a1d42563dae86c463dd12d94aec64c93ee9204102d1493507b529f4c5274d02059485fadc235e6b0b96a2c54667669b9a3b117569e19e3888a8931c8154ab6f9499d52ef5b724c02c40a65537b26ff7e6cfb6aab502eb95d76a289fd964d8592876597bc9fcc32bbb682009942f135cf7e281fb70c9717112052285b774952b5e7865032240ac5a0de77b5c931661c42400522804007500001b31c3b706801028592de3325f364e3c7f509658d6aa542f39658f2292714ed5a4bcaa097b9798434a1a0ee4c76af96c7181a8409c5fca9f294186b4c06d9120a33ae5994f0262514f4cb77126e7e3fbd360448128ae7f227d70112709b80d704eeea1e108107948c5c19e680dfa1638c1c0508c00ece045e8c1c381400801d3ac640010102906860c6a0c10d63030102d09123fd18488c1c3812300200040000000040004c1846c7183698000716d0011d3570180504a00800d0a1e3c8208000cc0e836414200066874162e4907100000ca00109c8916cf066878e19331600800030e00058630712238c29ec0087147084f15128f5888e1cf713148a1bfc33c698f584e269ed31efa4a53b4a34d878c170425935f66fd39e349d3c34d87680e3c348616c18290c05a3095863470e1a3a6ccc9891003098803576d8a0a1c3cc9891003096b023e908238561003094803576e0a0061a63c68c04809184c267f130257dc967f4d0e03e1be32c8c9463060e6aa019c86dc78d1aa8e3468d1d394e000612120ec408238c14c601c03802ce988100308c6067688b5e5a886014a19cdd3ca4c6d9134b18c12042c97bc5ad3c963a49be8650d84fc2576e0c18422827951e7ce4fb6dba3208452bb74dae319dd8270706100a325dec94981c54c658e4178ab7bdb5adc9e7115f944e4b6a98a8aa1edb89f4a278626dc9595b5e94bca39a77c9f4bea387811cd94559737510d592ee3b670c1d3350c2404417e8b9129bdc474c6e69b09de5a2707a57f4d6ccb5c85e8d03115c944d0962336a4ee2796a1688dca2a4ab6374b6bcc48b4b838daf02115b9433fdbae7843c2d1fcf183ad274ec6e20528bf376586a10619d4668318b9345c1f6427a926a359bd58ac4620d165baf3019aeb056945d5c344b7528b74e6b8e1d3822ac38297b55cb2c59310db66403a3828baca2a4b3a5f56e3c4988a8e2b24aad2e17b134adbc5351f6d46c3a94247c29e98fa0a2e4c1f2cee5739c894de41425b5ed1fb77354d7b91153944f301ddf171ba2b3454a915999c99a66eed685faba8dce75213ba4115294c4fc7092a0f37dfac551942459f3e64c2e7b1022a260b3bfec0769285ceda0153f32890d149f283314f14451afbacda396704aa813452df94ed3b7af91132591117f92aa364990fe264a3ae47d1e314296a8494d144764fc943947af30934c94ef44133469ac39410669443051f2abf953bf9a84cbea12c5cb0ccf5955abfde79925f8cc1cddb111bb9837b91205e9d64199d8d7699f8d50a2f027b7f49b124f17429328fe6a86d02945f8fc18918431b2e4d2714d9f502412695a76b8ab9e6eec9e6c97d929e963ccba61041227c31e718e28c88b6b2e29ee4afa341a228d6004dfe99ab5f39a3a27a3d95be7414972d839755a046be279e179f7ae592aa2249fd59489f12f2f5b224ad7bbf1548f0e22cad9a45bc84d9f35298f1ca22073b84faf7bd77b6fc410ac959da7659b5597ec1b2944b974d2f8e9f7ff4ff41142a00d026594204a9dd963da33dd924549204c0602a220d6631e7ee733735a07e986d220471a015e8eb4a3c60b227f3019e6b982881f8a59a2d6647e45a5eb7d3019c587b33d9c8cd283c9082392079371a3f110b943294ccc26a6a2539c1cb44349691343dc83bb2387183ab20e05a976526f36a9dbdda383c9b039988c1844e4501a5735b945475d5b53240e253fbfd6d03a6e3a9d227028bdd9aa9d9ff81bca1d4e8baec86b65c91137943667ed109e22da6dd486f36cc6bde5643fc6dae3a85dd7cb86c47f666927d1c81a8aa3aa3498c5ae86f2493fbfd72046d2505a93754cb6a8ec378286a255ed98ec30c9c41c46ce5092495895d472c40cc553a2c9b7a679925d688b48198abba1d3e7b417faf626434196a017b2e4ad4f668eb4a3c6192132869226bd926eff3fed298988a120bf59434d5499ad31128672cee41b6cfcf27d35113094c4602567a3f4fb663df28592349a4912f5f688170aa32fddec36633ab7225d288bde13facdd4e99374225c287e7db6f8cf7d7f2cb205fdce7b6d4faf8572ddc97c3e31ddb7f648160a26fe78be4db18e4147832d8285827653e6fb73e2b4760a44ae801065c27e35c71951aaed41c40a6b9bdd757ba76dc689df269dd34e7910a9c245a860326a0a25f9e9fbdcead2c4a58e8848c146240ac53299e97b6a66444ea0e032f6234f2866d9b19027662afd4fc40945138da349dc249dc628d28482d8200a864da86387592c874110056110c43008e465496b131348201038200c4683f1903c1366f9011300818b42f1702c128b43a16040128418048320044210848110048118c4209649751e851650261e6a64589db613d16ded23f87631d261b4449164da43dbff931721b03b854feb34321963c25ec1cb76cb3911fec7ff0db63da8cea92cd5a03abd17c3633452d996eb0e84f7ed8ac9ac8f63af2be38cf71bd167cb818208c02393187bd142f4e98ac476a465c55562b368971fd8254ccdcc9f4094a3507e3216fd660061a86c3ed80256f5d8e928ffa3d130b92a3203841126fd4ab1fd241dc9bcdad475c93a8343ec57610bdf03e7ec43163bdc23fe59a7192dc147458646d2aa53354cb5add908a526b72c295cdc25b25b1dab674ed135e6cc274a40c236e1ddee1ee7521f2c02217792dd7ae8a73ee6f79544bef4d42f94dc0cf5e5edf0d818d3eea4fe4fb67078f9a3e17299bfacf3be25626aa4f97e6e111a647d7285c5e24626455836688e096d26b35cca65a86d53e41ed6f34c8ad6379f6b4b4654874e97936e59deb053d332c1aae48b0f89231172211086f26db68f88431623f0fb0a59393bb25b9cd0866dd0600f1dd3b859a53a92346b7fcf546505fcbac1986db07f166046e0f16d6e93b6ed36db9a5000c35cd327f1a9a55e000a11067bb21e7b670be83664a2f375bd7de24d78ccfc7f7f152a89eab3d0b8c9ee6245990704e183a59b242d64b5886433b0b05904e76465567f712c7fab39c500c6bf21e3948fd584753f999715f6c4959e8327510d3fe6a57e0ceba8159dad4c226af0fb7bfecd9011b8d6af7ca920024b1a628b1a8a98fe02028d1d08a4f656ec313a430c44d044fe42901c6951e91c103cd61a3e240eb563f44e4684178716324076f001472c40b943a0c7f5aa6f4cc81c7804a0ace9e618fc8ceb141d6948baae47b57c23400a2ec33a3aa8434fcb87c72d4e6acdd11bb6e5ad8dbf0071b3a64d432a1f5383c8110810564f1e63e02742a547cbf11ce5318771cb5fdb14039ec8b5e73914cba4d0585c9b3bbd7fec9c36fd2464ed15dc219461cf0e81138ec64c3f5b099998dbf9fb66c9c01c2b996562879dd025e9c426f771c881bd53c7e8191ecdca6016640e2bc9611a83dff68c395837a6050ad15315c073c261661a9ee0cd0cefdcb30863e389fc7e2ba42dfc52c77a7c8a1e0ab5d00d13ca1d73a81b3e8c84b27a1df46dcb04f754c35c7f435959ed7dd2f5b3893023950b6e44b2b8d0dd0c5d1a64e266d1374d5adfd359ebd68917863a13a7d6a92e0027db71914195c29168072660be4231a58427e728477548d6ea86f835b37a90a902a1246609cc9dd768123aec619db633881b3dc9cbe64ac62d040551a6bcc9b031b8f5062066b09a32566cbb221c18bb38d17b5a292236102071e6dabb1210f6a2655928d95022a118f7688ba1ad3f2447ed8fd689597ff668647c6d52b1d6c248ea3e296ccd58e7c45ed194cbde1ac1d5e1cec2eb7d39da0902b2c771932e0688a7eeef6b9c34c2f3e32367c69cb7a7c54545c2b28d39d6e36c440df9f093baecb2e1b14ba5b04f9ce2410a88f40d17e424b297c3d1ba63fad0defc27438fb133740b53d9e271e2dd802a6e619b495a42517c7066e3e1d14d314b2b1b3dcd0958f62129e3dfbf145bc665f2d4a98accab28e60361397b6cf36b68f910d79ecec4fc78e5fc929b5fdcc583fbddfa746ebde0e6c81f9c8a2570f962f7ade0df0a19ae4f6826290743dcdf53588fc6775096f4f7e2cefd5be1a3500d4acb3a11ffee0f2d1f1360f02d1143db106b3bb4833775bc8148febb1d77533875153e45ef1d9cdbdc3f4c4059a640bfb75df955285795267b1d87c595c94bee7519cd46bbf287cfece0aa6c327ee05747473c5dd83019c3b83b4b24d436301d34efe8d83c080f35fba07bd1a34e43676515b1e44fc4edbcfbfdf807e8f443e25f641d080046833a2a2744a0b567fda5458dd5f7d5b98249a5af747a699f96fc5c00a23cf44a278f4dae861d10190be154bc4896e9a4b197c2cbd5933b63029a23dadfc3452919875c87b90d966b7f08df4596c611187dd90ad11dbbee6cfabeda8ae06eec32fd8529d3842429f39033637ef146262eec541e7b45cdd78b0d9c982422a6107ce581c1c17603819e3d568ca4a059ed64316e0eb6e725022ec6c0d343e9508ae9314af05e24ee375787f6a7c78adb3d87327d19290e75291786a7ebc40e8e8302231a3d1f0139cea710037edaa9a1676390e1c4fb1ad7f5e112bd88b4e5adbc676def4c1d9f80fc21d5c176df8cb3f2660344718da237f28f9191dd0929615eb5c1f8100c8a38e7aed9091207f808fbfa774ecb6e7af971629feb881a82c754edc6ed2fb0e4de9b322a2c5317f9f465349a1b16d9d1a4041155b0a06c27e616ade83db42bac26ee757ba304b63a20eca0a703036f987e41c13729cf30ffa3381272485e73c5843c3468270847959f99dd10523d81ccbd72bacbc8bd566ed708da2fc310f158accdf18a231b0a8c4488f1536bcc6e597323c30cd8623b784e09fd52921a67242c434258b89b4301db8444387bbe514c41456cda8ff305f5d8d6cba0ec10e284d13bb877161b6037f37513a0e3e1538c70a489e1acba1484f153af6fddf890e17dbe73a1601df7b7024168829ec55a12c8b5c7a5ac6354bf165ba44b3540bf7230d8970b5a5d49973d7ff59282e2a6fbb9e5daa20b404062f145d0285a27c72702ba5d5a4621968d4342bd948bf7653a1bf2e87224582b4586a5b2f13a30859605295e08e7b897b165a62a3276088607574cd76d374bfd056d0c5484a0cd103145bd1bbc1a399124406152bf29d245efb04c0df1e3ca032172527b825c53038508d77cc4f848058eabee4c508f4fdf60860912a4289e8d63da40024c16bb478f30ac5aadceb773441b65e1358f397770b7e45be065b6c20cb039632755743597058241fe3b81210caa51142879ce61dc6eb09a45c59dfb29e9ddac956c1872b3d64557c0ac4dc428ec2ceaa2361ef15ab06b26e5cefe622cf9f31a2c647452ce77bd17522df5087b763d3f657f55077806b2eb89f9f13f19feddcf4169ccbfaf448b08096df3ee40c65662b007b2c99c970cd0e5cfd008be333425eb950054ea26f74e7be3a315d8748e6684898ac039ba078f43af6cfa57bd336a441b69f11c76ba59ffe0b0d2a2aa64cdbb262d3b5b02333aa82550d4ab882582aaa129bd44c30360833707aac3299bba1efa7bc34fc948e116e1347d4fd1a96eda68188b8d1d3e6858d930b89ff1802c23d8b0be1b21519995a7f48a9e600522b870ef7431f50b8c60c29c0e5e778cda4d503c067dce0d06eebd7865258585d7a31ff484faacfe44c983007f4ab5f28bd56a6c51d7191a23ca74ddfd2321330b9239c1d93b2155a364d9673c2789e86826a9d7ec2635912276071222a8ad4a3d999d6334c316872315037286a9d42268d1933e71b6098928cfb648c9fdc85ac1d10a309c060d26483af7537ae7824ce79dcb1dcfdafc7ce056f3f5ef499438efd396cdf42ba7b263cea1b4c59efff5661d1891da92041b4aef5825a8a32942ba90aeb1f2d7e48c9a79ca58984485791b6e28c8b6be1833f084b861849445d4fa71f572348513d47b1014fae97672869ca8941572f45d0e5b48a3de9fba40dad830ba50c7471a8a1db29da709417e6e5451361863504ec237546105889cc030fc505953a8610c34c364f82c03cc5b264e4af46fbcb47cc332f7fbcec181d78e9fff5a217cc0a22da02a587cc8ae4e3031a71ec00e933f1636a3a22ea6366d9c9e864593427195e7f05335ecbf5114c8d2895ea85a33cb4f7f0005e5640e422d9f97602a854cad6158e2dfd0059b7140106fb9955c56bb6b70c9b3aa971bde59713d39765771afd5a6df6ce727ee2b1eabaac12aa5f500673539ef92449e84749bd3ca61f34ac20b3a86f94c9a8535fb2571131131443d8a3eb0310fcd1197486934688698d8865bd935daa1ca95145cb0523872d53a30ecc9b17db1b6061df4b6acf543f2e9364d2c951b4fc596c9346506f7515270a1eabda19d6d1e259ee2c96e03b0f99dfb22853e8fb49c31fcc6c8a18c16f4868483bd6754c49931bd184650c04fc5fcb95445a0b0c8b49621d7f4d861f17532d6102e82bd207d171d4efa70508abfbd75e058f3a18c0857ac5adcb67e2e9b97794c08a7ce27cb04296570d9f370ad5e2b44f4d419c1f6a5232b13e6094ff934075cc98a4654f47bf51bb9aec695f4ac3dd28bca364f72511c16755e58c5ad20cfe69c20c052853c8483262c91cc76accf40202d5057e452e1700c0936f25cf437c0564877e0c2309ecbcf6cd01687e51603842ea1faa78a19a882dc4f09da947516c0198f2b34d3839f57eb8717c182f9b52eed77e86085d9afb579c5a12710421f50c98110cd4ba8cee1b33e16012bfad42949c547572d8c335425063a9f389333bd4da8c9990e2666924de76c4af691b9a302b1935cd64f1dc3679fbbd2584928dd4a58a0d46499a05fa92e008b7c2fffff3b6872103dcfc557f1568d689295560b17dc6e4858200fa9392889bf0c18762628f2b7a43c08291e32d5d49ac7f34c60c832d126d5f499086c32e357c79e7b891c7d2480a4a304516949f301984c113072a3ce370ee442ef101a72a103893efc83368bdc1e79ce917640a5d25b2581ef19601564a56cd919b181ed03682ea8b1c1510642344669c3761b25c152f70794b29593b2c00273039edb6068c57b2ffe256cd5fbc41e8d096038bdabe01dcb83d4fc043b044e9c976e977a293f80047b7fc65215cc9bd0bce0097bc11c75f4ccc0d7025a8780c759023943d79aca90b6b33d90ebb0469badbeaf741821c448126041d6641db5fa6cbf25b383a35fe2822db8fba515fb5602cffe91359670f73860291a2ae7273a1c408bb1d9008cb3423fed53b557e839616bfd8e209d9e3563cc06aced594ba99536c24416124b9fa4262987e01753adfcca879026c993d4ab58adeb922b7c2a1020b60ee6443dee2c6b461ae71e8b6749c51d4ddfa142fced6ad9b4e1e9f642fe968e80bc1c35b25e655f24b21c75c04d6751c84bda981d7f2b798743833508dfd9b6760e2c2aac7e7920dd581db2c32b67349f30141518239a93c3bfcdf9b1ffc34ec572679902229f64586beb5c1f1cdc77eb1829c0d1cd6508d987eb462fee0c2b0d42c3ddc4f24453ca01d30c503af4e733090536228c634944c3e825f037c19e7889d625a28f97d0451d85a6f2f19cd2b812a4486c5b520e470a5f2010f33b781d197de325702e347d16fb195819f954a1b20f31590bdc329d2a51004f16b010911c6d15b0f8bce060778e43c36e39a921c8222983dc7dbdac73a3d41c32c5bfb9ba1a2c5553c235ea1e63aeee850563fc81614cc778b66268c6b8e73de344aa08c9cadf34949787e1339d43185cdc4db624ce9f5c06e7a7f1802216584370707c432759106b81f94cb445e2a555000b6ec56e566f92e52348cc68b18c40922e0be04b4274a315c09165f51578267438344c13e7052edd2a1d5552b3f0a32ee6941e15b81a6c6c7735602730d52693d44d022ae32824a0c7b184bf55e46c1252f34b6e612e2326eeb55919ea871a47acc32ec19ac6ff65f9bf6d774f99fd60d5f036da575e0a49350c432a625823e7db97ba3d356072681fd81efdf1ca5e9181c4effe0b12c963617d9261767795aa80422c466679d675686e077d7cf4e0d4b18db624c7999343ef7b911b35eeab1ac7a36b2ce9efdb9dd52318815eb3a5546c089440b45ebfc13b964548283845c2faac217d0cc48b3d02d2c7bc463199f93f37cc91de69dd402e126fd47017e07a490fc205148f1ea63bdd6b3216b6b3e6af6b4c0687f6d2d89154bc09aaaf36c1361ba5d4cd9733e5afae129fc4d37e7a267534b550c67256642aa52f7599b1f8de62fa6a105618d54e08c0018720104117307b322738941ad98b603f80b11ef04c88e70757767b7beadf21a12ddee344bd73fbe5810df148da82c30c3e88e470050c2397f401248196a6b795d640cfed0903f475d97803c5e00d74198d75356692597c12678deff6c967fd51a44ca748f6d1a0ee8e8cc9fbf99e5d6d01c88c0eb74653878d1ad67c1eaec2e31406b2cf584911f6dc0158b32ef8b9ec83d7d29992f2a5f05b9735dd1779ff23ce1967e6e827ddd5c7d3d747278950cd360cb1360fe9ef7f273ea66b3d88707ed34ae8db1f58e68a8d2118bd63a6b2326c1e384f49553a97700a50fed7a0601459b76f43cf20f63521d4ca1b09c294ab4f4e05a735d4e8cd3086e03b53f3570823043fb3b2f3644e5bef0b8eb9536614000c732e703cc5945402d1de7346ba39242c5d48ebc91889efd7b45e1a6cc2cf0379852612328397aeef039ec266d29baa7a1c8d1473769b57df0d4b6d4472459c97bda1750365b503d22ac907192d813225e7a0e8f36bd0ff6dfd36a7d35c83a249d8d3d4029d55d89676b92176c136323c4497491a861a40f46fa636953176234c938047cca3a741446df86ccaf23614613a7f709541c07fb58327486ba17b91b1a383811afcaca3378a8a989ce3c8d75f228bca40a8af8de3ab4e58c77526cc616202db1f6688c4d206033a0488ebc679cd820d047241a0f9221c371a09", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x10be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6fc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d851648e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x10be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6fc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d851648e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb353f244fd0f7ee324be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35": "0xbe3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3843e5f3cf6f6c3e3c071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d85164": "0xc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d85164", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb38770965708df79a6c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6f": "0xc091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6f", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3ebb131cb08cc01f08e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32": "0x8e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19501045d67da6c89aaf6175726180c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6f": "0xc091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195015b5381a514fe84d6175726180be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35": "0xbe3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19503c8728ecbe30649b6175726180c071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d85164": "0xc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d85164", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195074d073263ff3984861757261808e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32": "0x8e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x10be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6fc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d851648e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x10be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35be3213fd40251dcf15fb3527ba9a62ac130cd43f491206bb908ae5af25787a35c091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6fc091e37f53bbef7d4883f5c332904cb25e85bad2bf43511d61fd50c6f972ab6fc071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d85164c071a7af1abc0b84a66e421f08c5014ec2f3cf64fdae8cf0e47ef69744d851648e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b328e2e8e492f9ff1d774701a72eea217d483a04997e3bc0569f7461d3a43c07b32", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/parachains/chain-specs/collectives-polkadot.json b/parachains/chain-specs/collectives-polkadot.json index 9c8dd6c8b9d..99fc78ea4a6 100644 --- a/parachains/chain-specs/collectives-polkadot.json +++ b/parachains/chain-specs/collectives-polkadot.json @@ -14,7 +14,20 @@ "/dns/polkadot-collectives-connect-ew6-0.polkadot.io/tcp/443/wss/p2p/12D3KooWLDZT5gAjMtC8fojiCwiz17SC61oeX2C7GWBCqqf9TwVD", "/dns/polkadot-collectives-connect-ew6-1.polkadot.io/tcp/443/wss/p2p/12D3KooWC9BwKMDyRUTXsE7teSmoKMgbyxqAp3zi2MTGRJR5nhCL", "/dns/polkadot-collectives-connect-uw1-0.polkadot.io/tcp/443/wss/p2p/12D3KooWPrJ9VTn3GEs2e7GQs4zoEFiTFcjXFNbQ2iDxFDQAbstQ", - "/dns/polkadot-collectives-connect-uw1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWGFYW6hJYn3pkpJawyMk6souXh7sznK8yvPmVQ7ktfHbV" + "/dns/polkadot-collectives-connect-uw1-1.polkadot.io/tcp/443/wss/p2p/12D3KooWGFYW6hJYn3pkpJawyMk6souXh7sznK8yvPmVQ7ktfHbV", + "/dns/boot.stake.plus/tcp/37333/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", + "/dns/boot.stake.plus/tcp/37334/wss/p2p/12D3KooWRgFfEtwPo3xorKGYALRHRteKNgF37iN9q8xTLPYc34LA", + "/dns/boot.metaspan.io/tcp/16072/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", + "/dns/boot.metaspan.io/tcp/16076/wss/p2p/12D3KooWJWTTu2t2yg5bFRH6tjEpfzKwZir5R9JRRjQpgFPXdDfp", + "/dns/boot-dot-collectives-cr.gatotech.network/tcp/31316/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", + "/dns/boot-dot-collectives-cr.gatotech.network/tcp/31416/ws/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", + "/dns/boot-dot-collectives-cr.gatotech.network/tcp/31516/wss/p2p/12D3KooWGZsa9tSeLQ1VeC996e1YsCPuyRYMipHQuXikPjcKcpVQ", + "/dns/collectives-polkadot-bootnode.turboflakes.io/tcp/30605/p2p/12D3KooWPyzM7eX64J4aG8uRfSARakDVtiEtthEM8FUjrLWAg2sC", + "/dns/collectives-polkadot-bootnode.turboflakes.io/tcp/30705/wss/p2p/12D3KooWPyzM7eX64J4aG8uRfSARakDVtiEtthEM8FUjrLWAg2sC", + "/dns/boot-node.helikon.io/tcp/10230/p2p/12D3KooWS8CBz4P5CBny9aBy2EQUvAExFo9PUVT57X8r3zWMFkXT", + "/dns/boot-node.helikon.io/tcp/10232/wss/p2p/12D3KooWS8CBz4P5CBny9aBy2EQUvAExFo9PUVT57X8r3zWMFkXT", + "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30335/p2p/12D3KooWQeAjDnGkrPe5vtpfnB6ydZfWyMxyrXLkBFmA6o4k9aiU", + "/dns/collectives-polkadot.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWQeAjDnGkrPe5vtpfnB6ydZfWyMxyrXLkBFmA6o4k9aiU" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/parachains/chain-specs/collectives-westend.json b/parachains/chain-specs/collectives-westend.json index 83d2defefe5..db4552e046b 100644 --- a/parachains/chain-specs/collectives-westend.json +++ b/parachains/chain-specs/collectives-westend.json @@ -3,22 +3,35 @@ "id": "collectives_westend", "chainType": "Live", "bootNodes": [ - "/dns/westend-collectives-collator-0.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWN8B1ChzED6DkWekX3QnNo6fZ6gGGwjnAhSkhG6QsWkLr", - "/dns/westend-collectives-collator-1.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWHeAG244H1UfB8516KVspL1V7ubeeKLLnHNfxxDfbBAvg", - "/dns/westend-collectives-collator-2.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWFZQoNPiCdyPg5yzUhQJyBDo9XPYfNA97njfhH57smsud", - "/dns/westend-collectives-collator-3.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWQ7p65S7koitvskQuEwsoHHEM3g78pCdwZ5RpJi2FAtxE", - "/dns/westend-collectives-collator-4.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWCui467sJqUd7GzxB9HWpxrvXQfHWuYGN14KoSQwJQ9Sk", - "/dns/westend-collectives-collator-5.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWLGeRp67Y4LTpDYW15ophkcn8VAbNf4mhw9MXwPUamCss", - "/dns/westend-collectives-collator-6.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWDVdnw4fU8KsvVmXYwC7ifqsXssQgQ5rzPpBNEJPZewEB", - "/dns/westend-collectives-collator-7.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWCYmG2HhYQTSs7PHcrBcsdfte7SJhctW6PeTYLLDyN4Yb", - "/dns/westend-collectives-collator-0.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWN8B1ChzED6DkWekX3QnNo6fZ6gGGwjnAhSkhG6QsWkLr", - "/dns/westend-collectives-collator-1.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWHeAG244H1UfB8516KVspL1V7ubeeKLLnHNfxxDfbBAvg", - "/dns/westend-collectives-collator-2.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWFZQoNPiCdyPg5yzUhQJyBDo9XPYfNA97njfhH57smsud", - "/dns/westend-collectives-collator-3.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWQ7p65S7koitvskQuEwsoHHEM3g78pCdwZ5RpJi2FAtxE", - "/dns/westend-collectives-collator-4.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWCui467sJqUd7GzxB9HWpxrvXQfHWuYGN14KoSQwJQ9Sk", - "/dns/westend-collectives-collator-5.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWLGeRp67Y4LTpDYW15ophkcn8VAbNf4mhw9MXwPUamCss", - "/dns/westend-collectives-collator-6.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWDVdnw4fU8KsvVmXYwC7ifqsXssQgQ5rzPpBNEJPZewEB", - "/dns/westend-collectives-collator-7.parity-testnet.parity.io/tcp/443/wss/p2p/12D3KooWCYmG2HhYQTSs7PHcrBcsdfte7SJhctW6PeTYLLDyN4Yb" + "/dns/westend-collectives-collator-node-0.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWBMAuyzQu3yAf8YXyoyxsSzSsgoaqAepgnNyQcPaPjPXe", + "/dns/westend-collectives-collator-node-1.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWAujYtHbCs4MiDD57JNTntTJnYnikfnaPa7JdnMyAUrHB", + "/dns/westend-collectives-collator-node-2.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWP4pJg6pZUpxETd8Rs6GmS9FeRCeNtrBerqZhUyEPCiPp", + "/dns/westend-collectives-collator-node-3.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWBbrBYhXxFXhdio3AiuaqMG26pn91SUnd12gJiVn2Wh8Q", + "/dns/westend-collectives-collator-node-4.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWFBv97dMANBSh9uq31jcMGhJ99uhD7e6wLnX8prAGzoSU", + "/dns/westend-collectives-collator-node-5.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWQW73KGG5QYDkzE5fM7JwfkebuqVZLGWhnvaU7khhoRch", + "/dns/westend-collectives-collator-node-6.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWE5XiazVCPvG9wPw4k8hLguwnvwWWc463MJUC6mNbaioa", + "/dns/westend-collectives-collator-node-7.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWGg3DezjZKG5DfbaWSc19nWybB4273wjHkeRTJoT1DQS2", + "/dns/westend-collectives-collator-0.polkadot.io/tcp/443/wss/p2p/12D3KooWBMAuyzQu3yAf8YXyoyxsSzSsgoaqAepgnNyQcPaPjPXe", + "/dns/westend-collectives-collator-1.polkadot.io/tcp/443/wss/p2p/12D3KooWAujYtHbCs4MiDD57JNTntTJnYnikfnaPa7JdnMyAUrHB", + "/dns/westend-collectives-collator-2.polkadot.io/tcp/443/wss/p2p/12D3KooWP4pJg6pZUpxETd8Rs6GmS9FeRCeNtrBerqZhUyEPCiPp", + "/dns/westend-collectives-collator-3.polkadot.io/tcp/443/wss/p2p/12D3KooWBbrBYhXxFXhdio3AiuaqMG26pn91SUnd12gJiVn2Wh8Q", + "/dns/westend-collectives-collator-4.polkadot.io/tcp/443/wss/p2p/12D3KooWFBv97dMANBSh9uq31jcMGhJ99uhD7e6wLnX8prAGzoSU", + "/dns/westend-collectives-collator-5.polkadot.io/tcp/443/wss/p2p/12D3KooWQW73KGG5QYDkzE5fM7JwfkebuqVZLGWhnvaU7khhoRch", + "/dns/westend-collectives-collator-6.polkadot.io/tcp/443/wss/p2p/12D3KooWE5XiazVCPvG9wPw4k8hLguwnvwWWc463MJUC6mNbaioa", + "/dns/westend-collectives-collator-7.polkadot.io/tcp/443/wss/p2p/12D3KooWGg3DezjZKG5DfbaWSc19nWybB4273wjHkeRTJoT1DQS2", + "/dns/boot.stake.plus/tcp/38333/p2p/12D3KooWQoVsFCfgu21iu6kdtQsU9T6dPn1wsyLn1U34yPerR6zQ", + "/dns/boot.stake.plus/tcp/38334/wss/p2p/12D3KooWQoVsFCfgu21iu6kdtQsU9T6dPn1wsyLn1U34yPerR6zQ", + "/dns/boot.metaspan.io/tcp/36072/p2p/12D3KooWEf2QXWq5pAbFJLfbnexA7KYtRRDSPkqTP64n1KtdsdV2", + "/dns/boot.metaspan.io/tcp/36076/wss/p2p/12D3KooWEf2QXWq5pAbFJLfbnexA7KYtRRDSPkqTP64n1KtdsdV2", + "/dns/boot-wnd-collectives-cr.gatotech.network/tcp/31336/p2p/12D3KooWMedtdBGiSn7HLZusHwafXkZAdmWD18ciGQBfS4X1fv9K", + "/dns/boot-wnd-collectives-cr.gatotech.network/tcp/31436/ws/p2p/12D3KooWMedtdBGiSn7HLZusHwafXkZAdmWD18ciGQBfS4X1fv9K", + "/dns/boot-wnd-collectives-cr.gatotech.network/tcp/31536/wss/p2p/12D3KooWMedtdBGiSn7HLZusHwafXkZAdmWD18ciGQBfS4X1fv9K", + "/dns/collectives-westend-bootnode.turboflakes.io/tcp/30600/p2p/12D3KooWAe9CFXp6je3TAPQJE135KRemTLSqEqQBZMFwJontrThZ", + "/dns/collectives-westend-bootnode.turboflakes.io/tcp/30700/wss/p2p/12D3KooWAe9CFXp6je3TAPQJE135KRemTLSqEqQBZMFwJontrThZ", + "/dns/boot-node.helikon.io/tcp/10260/p2p/12D3KooWMzfnt29VAmrJHQcJU6Vfn4RsMbqPqgyWHqt9VTTAbSrL", + "/dns/boot-node.helikon.io/tcp/10262/wss/p2p/12D3KooWMzfnt29VAmrJHQcJU6Vfn4RsMbqPqgyWHqt9VTTAbSrL", + "/dns/collectives-westend.bootnode.amforc.com/tcp/30340/p2p/12D3KooWERPzUhHau6o2XZRUi3tn7544rYiaHL418Nw5t8fYWP1F", + "/dns/collectives-westend.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWERPzUhHau6o2XZRUi3tn7544rYiaHL418Nw5t8fYWP1F" ], "telemetryEndpoints": null, "protocolId": null, @@ -28,114 +41,77 @@ }, "relay_chain": "westend", "para_id": 1001, + "codeSubstitutes": {}, "genesis": { - "runtime": { - "system": { - "code": "0x52bc537646db8e0528b52ffd005844d8023a5443ab5620d0ba4a075a9f151f05dd81c3978c0677fad5133d27a7814bf49e9d61daa9fabb0e7c6c761c13f4eed9b4fbbffb2c93b4b961bacff04e6f9db0e7fce82bd44b87e0b37d1765514949232458fb7b6f42e4de32c99452cd0bbb09970a5d74aad0a9a273858e153a5f74b8e880a143039d2d749cd06942e7091d2674b2e85c898511f3a233a593450c8b8e94ce173134b1333951724c104b236704392488bd11bb41ec2ae646ac8d181b3133b135626ac4ac626562646268c4c6c4cec889cad12127871c1c729ce4dc90d32487490e54ce921c253949724490d3430e929c233936e4d490c343ce0e3921c8f921162606264646ac2a36464c8c980d62596235884dc5bac460107b416c4a2c04311c70d0e09cc10983c305ce163853e02481b3040e0c705c8023050e11b0387092e0d48063038e12581b30366066606be890010b032303060646051b03530386066c0b2c0b18169817b02bb02f6034809900f6034c08d80960516050604f6040c04a00d30176032c0758131c305e66bcaa5e6fbccebcc8e0a0f12ae355e585c6cbcaab8ad7d52bcc2b06af285e53bca07849f1bac1cb8957921712171b2e33ae355c6ab8d27055b96ce0c2c295c695c54586ab8b8b8bab8aeb0dd7942b0cd710ae285c317041e192c2f5844b062e290084c0645869260da6151ee312e265c34b87570e374e806440344027e00d2e282c38624aeca860470a48065886978677860d0e2011e010ad273d4ef41c61e325968567c6860bbfc24ae3e68c24e2e60d100a59826d0a1533a5f8526083022f0ccfca13c37b80c1e1a1c12a9827b891ba89c14c62270cd814ec0bac0c8e414d152e12bc6aa8a102bdc0ac280a280d6e9a68219a88cf0ceb0b96172e275c4d7c3f7c3e7c623ea88fc9b7e46bf229f99c7c377c636a588033e635b573a526096fccc7c407859760281809568289e026780a8e17dc0266011fc1427863f0101e158c08d612638265e051b02c312a5e81eb3013a34609cf6116c60303220195f0131f153088591c332170c8dc488133c543c02e6018c82a66542c319c093bc126988d5133a5e608af8c1919ee04070997c00bd39384a7702898168e438d0b6a5ef08a83bbf850e037300a6a5a30bbc22f984dd5185183044f94efe04d6627e009014bcd58c05138053323680fde971692d691960dad12b46a60c50172692581598925a1a3050b0a568d6503ab069a86c6e1dae2e6c9cd911b263750373fdce07063829b206e4a7003e586043740dc8ce0e6861b1d6e94dcf0004a7113821b24373bdcf870e3e4a6879b26e014a01428033006374b6e72b84972137523021b343670d89c6135792df182c14b89d70b5e2e7825f19af242e2d582d7112f235e2c78ade0a58297945711af14bc50f022e235c44b88d7095e516223c08192637096805074045c19ee0c6e0c8706fd8123c3b1417de0acb8366265bcb27066e810db1307c3bf3817700ad804988497c085f020a818d40c3a066b0c1c2158606ed2b890b86a140d7ac6fc610e319f4818482a72896f071c1e3e1eb62536273626641152ca26033a45bda059be223e2c1e1b5f163565d48ca909e32a83ebd223c69706c74a0fb165d9b6e0f4106bc213e355b1117c028e0296060c05385fb014ac2fb120c02e5b148f8c0e16130dd6191d1bcc32f20699837432c9380f128759141717134b4d2dc6055c4279d0d9a2e3050e125e991d11b81a738aa7c60d14730c98e4260a0ec25b631686c3c05fe0556225e0243c32e418b20c9c2a3a586240c076c0618347873e01e8835422f6c43383e585d5a5a7065618302c2415a721c5708d000483f5065bc930180de9a59580506417161a2ec36a301ccc0417315b308fd8aa6021008ff89289c40d952dcc14c35470da904c7804740a4d226605ce1157028b9a67dc3cc140b0148f8b6ce275016d006bd8c8987de1798981b1951123410c0a9360013c14a0420a46094040253a80015e47041064c2082e2fd38d8eeb72f785d512a9880f0e1c0df181f4c2d151c712c812d2d1516b86a9f1233f8e84b4b0c443494908029a7e20292909410000dc862da294e4a30909c81112520b20780d2ba485a5a4a30e3021c540e42869486d5a4282a1033e1ef05e5ba41f4b42968e7c1c250da9483f968438a0692906213f7ed41e990688901f48403a90716c910e2005392a52a403482b2c09492a52044902a1846367481a529990823009b1000ba144b3484d3e802429f990e1082906a41820300120482eb8e06302009067b648901f482ffc78638b342d213121bdb094f4f2064b492df0c8abfd9154642989a9c908d2510794860cf171c4840444292986a2203f842815cda41b0bc3918f261f407c342135e046b6e18124251f494d494b4938928d0df2438812078e909a62f8816404c925cd2c1293100478728d2d8294d494c424e485a6187cbca41abb2424a9c907530c408e9a842815394a1a527d30c5507196919438e0a3692986168e9a7e20312501594a3a3ad2894d275c142b4d9ed47dea56aa56abfc2475b67935af7808738e0029a544400264021020a54400a53953f62d9a73b666d3288d79a240dde76477a734a7ce94a9531aa5514a27754aeb3951604add9d2953673a9d3a6d4ea693a9bb333375ea3ee59ccc3d594e9d67fbec5dbabbbbcca2edb3d54ca9fc80d256cb5b939dd6f8646e4a27339d9252cad475ccb93cddbbf68e9b93762d9fd27d6bb5b8065b2d564dd38e35e7c69a4e67bb579e9432a59469134daf716fb9b740e0d6ec11da9d29059a937bce964eddb935d9b9bbdba7b733738b9d76bbd3397d8630db9967f39ceeeddc92cc9272b76ce6edd9744a2a67cfdea694cea52da6eedc6ab950c7ee0e76ab6b58ade6c056d7757436e7d39936a5216dcd39a9942c4aa9a4947600034cf9416bca16a535d37dce59809d947e925267dab2a7f40fba5948484808047db27bcf5dcf73e79d4e1746009d393d97ce5232b3f4c9debbdc726eb5585d63d3ddf29ed2bd351b9ccc94e63e5b73720ef7d96a7d9e3bbbefb6cbbb2d4f4a5160ca949d4e14a6ef000104f7392953e78fbd1c3c9e730fbb4f9e01b45c870e771deb3ba72f77d4d979bbe93d999777636fa7b435e49aee1fbb33fd5ad6b45a2daed5cd93993de6cec1cc3448b6fb74973d5b3d73f8746ff756cb855ace519fb30329a5d36b9e3e5db6eceee63866f656abd56acd56b7d7d4744d4db773dc9cad5677f79c94ced9ad39bbc535d73d7db67c7e1f6d9a4f8ee338a639d8d963f779c23481190808885d0025903029a5bdec4074fa0c726766a7ee943af36cb5b85b5cabd5ea39674b3ac264e600b83b7b1c737ff001f5e9be5f0f33730ef7c9ec72669e944673ba747d7a7bbb7f9e3bacd50cd422b8b38bd0dd72e6783965a6cc0c007739cd7d99ba7308ad9f6db578d23c97b3e7f439198496b77c4e77a6ceb5fbfa3acf769fdc07d30573a61eb88f334f760ebccfb9e5eec5a84f67f61ccc2e864d29a573ba4fca94dda7b333bbb3cf9deeb3a7773d9bebd9edd3ddbdf329e974caeebeeb3d60f474f91e23484096928e96927cbcf0a3851684880f0489090908939023a1134a404a626a0a6161e0250189a9852326214d3e7e085152f2318321a969290626b1a785a6187a905e386a5a4a621a72f4a348120c3310603adf4e901f3e38a0a42424840e7638e080039dd9ac5b1292d4f4c34791251f4c4d474d4930c020849623f6f0c09690860cf1313341a8c78890199a38103aa184998e1248382a0129880f250e1cb9b094f442111f2f3c920c484a47467cc0d001cf92e08210a5231796925c704188928e009494928204ed140141674b68122284265b127c2031e52005396a3282b424424e13920b20c49684224d45928c208580b32518496a01896948108cc90792d28f2324177c3009692a72044429e9851f474d4a31f8680109c84fd7c4e4a3a90808259080d4e483096909c905a6221eb8b6042048458a20310d8141c88f2326241984fc40623af25104c80fa4231282089d50c2901f484586b6177e34f9e0c0d10b459296925aa0c9b084246f9684a32521494598906438ea400b494c48321c0d8084134e280108d29190a6211d60fa71d4640429870c4b48f2b5dd0126213020c1b0c9b0842443f8a668777ae2a493f758cee969ce27a7eeb1ad1eebb4393d6d4e4e4f4f9cd3d313e74fd4c9699ff8699d9e640f272727d9e349f670e21e4fecc43dd6c9e9c9493a3939790f2776ea1e4eece4e4247bac9353f7787262a727d9639f688f7d62f5d8a727ae87133f710f27767aea1ebbb3c713778f7dda7a3cf1f6d8eef1c44f4f4fb2c73e3d3d3d798f7de21e4ffcc43d8c641bbcbb0c43111f1b2fd4f9ae24db29d24da4352d0b907fa44dda3a95b96c6349465a8db22a7f5cabeaff821ce2de457e52e58f4a6c65c603b95655c7ae3d6171748aaafc1c073832d4c856d5ddeb2e90ff7e10e8a2953fe35655175b89adaa7f87d4453002b28813bb4afec827ea0d0ac83f76adca5fab3a768d7a205b51b69256d22a09955bda66a87f7ff6cbe9fd5bfd657f77ffc7a35f8afe24999f38e8ef3d44bdeafe05e84edd9ff3e9cf4dfff929c03d9fcfef217b15ac3ecaaabbcf7054f22aaf87a3e7fcfb1971f3e7bf1f0f173d0ac264dc9e7bb3fd8b6e7dc6202a6912942b87e450a714c4c50b7f7fe677e1eecf48abf3e79c33a8ce2160f5194483aa8beed44fb465189c150d51d2aafa7315d24a5a59c9325feda3aad5a495b4e2acb66e3d4ab91f6975306028933ff2bb8ef3f65381bf7f863d7bcec96de43c82959bc50d89ece6228c1303e41f4139bd06509fdee4d5bd7d4ab73e1d535056e7bf7ea4b97e0cbaf951c756b9dfbee342ba541fed258eb420973806e9b811471dad07c591765fc312c7af23f8899e4cd6892d71f78752fabbac1f6595ee0feb29abc7d370fca6adce6d6ed5a3eae678da9cfc8993b30b314ca8d407aafc09127fe24fbef80fb46ea24be1c0b81497e24ffc09957a98ec9bbcceefad1bac3d5bdc4222ebd3f36f8ab26e4ad910eb475ae76c7230acd009acd56a35141d31ff6990f95c8f1be07cdaedf4a001e76fdd5e7e46dbf62960b9f2c7638a9ecf91863af7e3e175fa66e4dde4db6fa20c5ea7875ed7473af1d3d613889d7af9fd4800ef47134498c17c3a48fe6c21d1d2e607cdcfeb66d00c9a54d42955e77e9d3dbe4e75ec67cc6ebea4ac1fc1bab57e7708943f4db3cee7c480db6fdfda9eb53ddd7a547fc9c2cfba719b0c334888ed23ec49cfb7e72ddce68f3729cceac664cc6f05ea2db45374eb33f2144e047fdc61f36309353f86f0fdf8ddef0eadfca13f82756e3fca3a5fdc2130dc1ddecfa72bc4da1dad9fcf8b02037884a5a2725c1890e39ea84139f48020393484018c023be111e483a00d5823ca3e719475e208d631a8527113c7aee35ea9dbb742aeacd097367f881ca2fb335f3e3b61147647a0ffb26935d7aacadfddb10b3476a53f761dd94995ff0039c451f2473ea53b257f46d928abe34e55f99d1772e5a8ee653210dc9f91d6ee475a478eaa72a7a83306ef8961278ee206c23a8fe6c7e35bbcb4393f1e5eb7ef38deae592a8ebc11c975ba542c15536a9856c154557e4741708455f9a3570aaa01fa8fb47ae0828151efe9c956c5b15514b4a95334d234ba82bdf23aee15f5c0adda2aa6caa15b2190d6ed6da654f9ddc8d57f77c77c17474f03f47717e94e8f1b20a745dd7ebca9f23be9adfc8cbcc5d1c89491cd80fe44b243256eaaf67bd8b33a458e6a81e413359f01f233711d39aa2aa7cf6d1395b8a9eab4eee7fe2e2e7153d5668a64d2adcf08eedcfda638729defbb636b9275fed230c0f9fe44eddf0a5d37d11768fbed89db7c7371a4c18924f7f2e5d3c9cd2936c9ba719b0c126c32baf51957aa4ab069b06e3e8753369be148ab2c3b1c956095fbd9356d3e8723ac4e0ea708864424f744bd1c58e510287f3af7f663c1f9336a717caa9c387295356df4ea7c7077f8cff9de432f7fe44f715482d5f9e00c9b0d70fe08aa006b9afc29ca5e0e05c91ff9f2b7853871a4b59b1e17caf80b6a9a7c07805ed3e4f38f4155fe7eb469d2c30272e721d76e5bee1a177d81e613f538ebfcc016eed2e6fb67b4fdce4d1c69a8febc557e3cbcf61335d8425b95cf855b378e1395605ef79b22cf0afdf3a7b804ab2ef6af54dd1c4f93e70af89558b592aadafdb2ab9ddd4e8f1b20cf0afcf2e5f3fbcf979fd15c679e41b72e2a70a59254d559572a49545dd7137301e69c73fe7c6a66312477bb02b8df029eaa3f51b3f8c49c000a74db42ec1ecae7b05f8673861ebaf4e4a702577fef50b6d78eba6eb94a29ee7736449cea5e606786cedbb419cadf2f05aefd549b3b97fb19c9276a0f99b6108f8b2970f57791368d7f86417aae44224e957f94df2c6ed3b891ac10e8d5ab9dcd3625cb97ef7353a15f3e516f0bf1a4d02f5f6ecfef2d34ce0f22df7fdb9eb6501b6d5e256a96ea7605b0b3f14f82a42e8bb469fefe9d4d1111a7eaefcf4644b8bac8816e5b3eedf7df16f2fe8c5c3e7f0ad8caf5895903ddb6504b8faaee6f88640a0995fe9156295fca97522281aa524a29e5af8f8401cc912b47a2be85fafb692d347aed7e9f16e2da3670a9fd5e0fc9a2aea308b5eb38abfddb1f34a45b571870a56c00a2ae54ed4a0075a56a98aa1f51fff6fbde42dcd7fd8e0bb76e21d76e8540aedc4b8f3fa38d014fdc77fcf1d89e13c7edb7effae301d6edf7f3a6f9ef67349fa8b7df4f76fb51717caaf4b970a4dc13492e1cbd72bf9f11fd8e0bc70454eebbfd58e268a4b29e0bc795aadc6fe1b84d3332e4851e17a8dc8fdbb4f10195fb715380dcc2adac90884c9326cd55dd9e0b470254ff8e3d2ef46781ab1c0d8970751347ae9c4884d3a44993a68e4f756e4d92f9475865ca324db73941b4ba758901ae540d5275a475a56aa052f7bd1ee2a27d590bad54edaa6e1d67757f7d96a85b113ae4ca21576f21feddea2dd4bfdf71c71e7fd7def20d0f28244ddb2adfbf5f7e462deedef08072d2b4adfc1e6ed33ae4da1fff7e52f4fd8c68d37a6b875cf773c07214ddd6feede71ff7bbeddf97fd41568afbd40c818e9f43570d40a91a551dbdf6537e4a570e6dff8c60e51fc1eacc4064b79452ca5ac85f7e27e74b9f53f4906b8b63bf1c023b9bf519bff66f0bb5107fd8ad10b8ef4debe7cf68c56dda488db669fd447d02c8df2f6b211972055ba81fd6422ec3adfbf913355173c8b302adfcb4b2c8b3827c7ef92c367175f1a53872e527eaf56931c8d7cdf124999fe8b6aecf08d6fe6e5b68e497efbfd3e306c83f7ab5b769fe2580fc2cf00791e236cdc591d67d0eddaacae0b2618fc3ae525586edeba4b7bb837f944f5b68e42a7fbf932109a0fcfdfd54d8a68d5ef7a5489bb64fd49df43894f59361f3a8aa0c5ecdee60e25a257280cadfdf1f0b5eab557efe7880b5caefb5d0d6fefd7870adf213f5863e2d0601ebe67892dc61baed6e7f40fefd65751b00907f7f59dd0281fcfbcbeaf8b785c67d16b769fbfb4fcc38dd4ad5a2d4e5bad501f2ef2fab070c76228e255a3d597ac6e899eaa1d2f3440f133d2d98d9d053ebb18107cceccbec881918b3256649cca6ccc8cc5a3073c14c899d33b325b32333243334664cccc4cc68301b6246c4ccc90c87591bb31c78d0983199dd306b3283e23963a66456038f193c61666978c8e0896316c5836696c5ccca0c8e19169e333c543c69f058cdaaccaa6666cc42c09366569bedc0a3068f183c70f094e1196307cd2cc94e1c3c5f786aaf253b6eec70d9a1daf1b2d365478b9da91d2e7656b043829d1f74c0e88ca123860e954e183a5e74a4d009610755fbbbcd63855bb485aeba5df5d0367f55cd0a4a5e45d59e5477a8ca3f7251aa8b3d6e80524a1d3dca959534aaf273e1ca9fd19f6ca14d0553476944ed9f21b83b66b2e7c69c2fb5895237879364af69d26d95ca3ad6dd89287f2a6c5454fe294a55d6d134666f5b88bebf0fad855acf2f420bc9e737a185baf73c5184a6b542ea35ad5faca102f277d7deb69009efd300505f440dc0127d68dccf90e3880ca9db73bf1f0fb0528e2302562a8e4366c805e17efba8082dc4893c7f3f1536714511a40caafc320439c9553df9f0c5136d584146131e94180a62aa07294796b8720515212b422019830c2ae068e204234f3c2089c1161fa25460821a9890021d8e20c1151938944c11809136ae585245072492c8e282128cd0c240b1840b291c68f00609337481a2c5064feca0461041335029e34b1c265802c5ca04232839628583551146f46044003c29cf051e1015a0628225d41023268e24403833bc66d82c56664055a140c992232200a165872b6cf0218a1b006064ea8a2c4cc8e088114f3409c188074cdcd0851753392cf99161026d10d143933367a4e00b6d860754e17215458c183e34016186a71bd0105104972353cabcf1c1185692cce0055610c102280f6248c820e1860e6f90c1e233c39a71a40b1914c4808c1ab420c7134d6c50c20609d83862073188323e0c31954409c26011babc00f70a3154d49bba5798d145955566a1d11bc1ea5c5db63dd43f8a50f769fc19c98f0901cee79fb5d0e853c7292af9541ac70e3cad2fc89401bdae54133167c0565da92654dba48b26394b9da2a0091664409bba524da0d8c42648e000ab6a32c41a4d7ee8d280605da9264b3c28c01c2b2f09f87de9c264ca09d0ab2bc5848aee056057578a491346303162e510287ff899b968f4ea9c524c4e50e77bdf50341fd6435e34ff7747abfa301a2cca5a00baea4a31d1a11507f8428305a8f3a55302a460cc00845dd10203fc9ca802bf23bc1a18ab2b05f5436b0910a7ae14940d95bf5506f8d5955ac246e507e59017314b2d29a37a759755a2266a198221ac7ff8633a805c5da92561d4aeaed41231d587a7133fb1645d8122451b5d08d1c40830a27823ac229644d1a0066a8819a38319f60c1251643943860b17553830f28113b8c00625980a02aa4bcf0c4cc6c491e4cc1b4bca283333f224ca1448a8a2cec042043c46464852658c2ba60c21032d76664840185a5ca191aa0295864e1216f080450d2eba605181cc4806b264d1061333a4be3822270425620c31c6042b980195d80c4e362023831a7001a3a50b9c7e6ac205424cf1e26a8d358c2882d5116436d2adcfee0eaffba37fad56b3a188283604c83f9a50f7570ed1227e2a87b856abd5a08af8693de445fb4b4139546408328668a2862790a815bd6affd7fd7a7db8999be8564a91549ec8a8baef73e3a8532a9be9c6d1cddb7029abd579ee79b2d9f36579dbeabcafc66b6a6473cdaef7ade76db8355675bfabb1b1f1361c656dc3b1a9eafe8dcb5d2ed9ecda52f7a95469291da56b1d655555650b159ec2511c856b57bb45baacda2ae2b85295bba5749f9b6f9b6cdeb8a5749f73e39ce36433e773db388e5256cb5b2dd9dce2288bd56a759df7f9f7c9e6afd579def7d5d4d8800e82b219fc3caef1d8c6c66310f4f8c6f5f2d74b36bf5cdebebc856d38821b8b799b2373994c36cb6e3c0e5d1e87afaffbdd0b06f3381c83ea3ecea702d76d5a87e37118fb54e06e733c274736e7d01aba40dc365d36e3d01a2032ddfa8c5e54edef2498a6b5acaa2da916a87fbf07d0ed975be490ff166d5125550f715cfaa71f4cd5182b33f28a43537b7f47da43455399bc8eb487da5dc45dd30438fa545e9fa6f18efc955be48f147bdc001daa8e0e55d5cf51c9a12dea91b3aadd95bfb3b14a41d61a2640de2287ba48d66d9a17553787f320dee06b67d36fd401073d339e1d1d594e0c07f672dd8036359fd7b55894dba6cbe605dadf8f08a7a945c8276a5e5efe513624c5dd1ffefd5ad9899fbabb8b94521cf7e7fb8ffb1f0bfb41a694522e9be97685dc65d31685fe71bfeee3600176dd15b80659717984fda76616787b1647ea4fdb9d86ebce713f15bd6efff2168ebcfdd2794526af4db28500fd86071418f9fd748ef3b769eef37d36cddddfbf6bf6ea6210b08ae3e873db8f9472949b348c4efe8a23aceebb5600f6ef50612b114e53a97fc7210e16bd0b3482db8fd42b7dff8e869412f5e6321c95605bfc571cc1bae2c8cffda43f72cff173df9c7703b07ff4aa7caf85785f3e0d5788fbb139c4c102f4ca5f83f01335e7fccb62ba9fb435ba305c9a0775fab782d74dfc059a1fae531aadbae8687899793233f39c1b23516273c2861326bb6ddbe673dbb66dfba9c5b662d050b9051332bcba890ed534f9e014f5c0add2b17bf4993fa3ed25d7e23817b7906e5bd762cd9f3deaf6f3896437bdf9ed9bc873ce27164b333ac92f59e8e7ef3864d19b269be8a228fd7ed441c24f589d7aabc3fd282322c019a007ca88e4d005e48ffc4fe689a36c3b9628b505f42f85ae9ca864c5962a7f734783876f9300046063298c0d4a6d6ce49c73e3388ee366dd449a4d191a6d526143874d6e3e43af1d7bfeb1e02f7f0ba737f50a526ceada4f44b6336351c51866666c86a452b831a448994e4559ad8d4e3ae59c739b2de7dc441d330a1d3eeec34da7656ed6a3acaa582dfdea14bdf685616565c567ca584937984ddd44234d934f6b4b3d7097afd86ddb422559ddb6b96d1ced8a37cb642ea5ab9b2b8739bfa04bdbdeab1b0d3f9b6f4628b74d6ece8ddbbac16cefe1b6f1f6cccc2c829341b05bcf3f238ec5a2bfcddf9ea322f71dc782ff0cb9f7cf8893dc26ee96857f46fd735b17c7ad52fd69228c3eeeaee4b340ed537b721c37c57d9d9bce078d0ea4600775d4d1411dc1caf500ad97af430ef9d81df29ef5bb42fe43e49027726dfb8cbe1ab6ea9043bb3ab6f7a3ca3d7deee3f1b5fb8e6e5b27fa13c96ef3c6adaaf259e1b860aa7c1a8e6ec489f333eae77e9b9c8f4ff5a6b9b8ace66e406b66e41518d20c0d50f2ea4a5e815e9da2438135702887a21e7875559dd674a0544ba98c0abd96267ff4a9fee10a81ffb42e2f2a5f268774c81ff95447955bbfeba84e80ea3b05d236186d994ef102373700f9471d55caca89e37a41a334aaf90347154656799161fafdf90660d55215ba3a4579b540aea82b79b54eabaaaa73544cba6034546aa151b61fbd26e595ac925b56caa1aa64f3655256657594d54d56fd89541d1d6aabbb40a39107acfc19e5161a80a84e4394ea50c0918628dbb4298e343ca9fed2c35156d5f91d8e4a0e55fda7e89ccce24f467f0205553d8a133fb99c49d01ddbcf67ed0e96f705122541457405301f097d255fd46a39b5c26d0530a95357ff8ec512e756a777db26faa4e1ee09737a756e73c963277e9aee3574dbddb3bb7b4eafe3bcede322e8f33781afd56ab55a1115b9cf683a1ab65aab363c90fb2de45ad3b8f7df42dfb6d9ddb37f6e38d23a371cbdcef9d39bb63d8744e4f644adb4893e4546d2b40903ae715ce3b6722bb6aac1ba8b23adfacf64cbcc23acfab685a357ef24efeef6cd1db737c36e2eb7f49a5da0fe11567b6b7179db96fb11acce7a5e181b2bb44b1b6daa4d1dc159a7485b20f9366468eb14e6b0994615312805c15146e5104755c603b744a18202f21b20ff7e11d8a2953f23ad54b5dfbb8b38515a2521ad681da595a49254dc14124b37086c24d8a807aac066dd3759752703ba83f39b5b9fe218dc6ca6e598ba2fad786c55822ea9a04cdf685f716c0548a9d75e9359018ed4c6fbfa08cc46069bd97c2a70056f5c2fd7eb067cbd5eaf974e0dcc88915636c091d66eee9a6d1aaf08aeccc0f0b71b65c336badd70d634269c6be7dcf2371c5d68806b851727445289a8dd97906168c5891329209d9501f2afd7f1b76fb4e595714695d5b8e2b0a1f2aa42854ea12099ee96920a753137665cd6b45695358de3388ed20e8bce6bb55aadaef32648c49c40e14d89721205889c0d8c2b740af57e90f9151d2792cacc15b8c3d595729266cacff0784d36eba2e0a0c49d4c6d607854f4dc5085ca9a168bc56239393818413f23ba133c0b0b0f8a9055570a072c5e68440f8c076e417188c2a10a9d2f39b6df1728072e39089183131cac9a82e1e3048cac2be584caeb4a39b9f2b02b3cb8014d57570a8728603630dc890f3c0e55d8da710bbaae156290a83216771728f4056a4d05e52095039533a8d0ba52374cf1ddb13b56d6b4300c43518cfde081e7e3e3e3e38107340f84cf88eb5a2146892a6b1a081f11af207c4644384d652d503f089f0ab46f9f43ae1b12e134959fb640fd3bae31e04add0086b53be8ee5879e3354dd6b4159b04187816cfe29e454b992e5ddcc1c8e259ac68f12ccc5eb45861f6a2c50a73192b5eb460b1a2058b15cfa2c5b36c995826162ccc58269689058b4f2146e1593c8b7b162d65bc787107238b67b1a2c5b3307bd16285d98b162bcc65ac78d182c58a162c563c8b16cfb265629958b03063995826162c4e8567b9c18b96325acaf8cc32bdf02c65ca94914efcd49ec38630c24801ac3210a7e8767793bace488bae5b2eddfa8cae5a18709c532dd90a70e33aca6a75de576303deb85e309c58ce4ca6e3ed773b3cde4e95fce9ef6645301555ed2bab99d7e3f1169ee2a91e0e64b0cfc88a83fdae838f7d88c354e15681395c87e52af2a7a7c852cc45aaf6777533a505cfccf3c0c5fc15c151e44f3f47a99a54f20a19959caf089ec2537a38f8e0a683f7764e4daa0fbe2b10586eb0acf6596bec50d75867bad6b5497585e8311430874f0863ea38a9bac6b29a54e0543f03f1e4c977e5e381f779d5f2e41e388aa3aa52e87ac58fc75042f024959121563920171cfb8ae05a0800d0a28e93aaab12a64a1700d8ef446069e0025b80f4a052faf95e00f226d0b4a6f5ef54edef02e06d0b496702e8d0910022290634ad5f844f014debdf2ab5bf1bc19343735a2d4faafde5a149c53ffd63d7dd217f7f8ec1f2679c545d6b902cd00c8278be2268342912e134d5d504e4ef46f0180a18e44daa5ed2b5655981a9fd7d6487e6d4d83754593353b1ac6a7f57f2878b39257b4e7d24781c062ce14bf35d7d6776886535d6b08a2695fce18265c5b23292565d091e97010ac0db9106d5f51f9ff65d81e05704953f53df951c9a7413a73882558aa3acee7c29789d545b40fe7152e97c4578530230a14d38814ff084bc9d616a3fefd0a4da9ffef96587be2bf9d3df3ca37e575620fff85dd5fe8e67e6aa49cfb1040c186ac4972f32287cd7777cd7414f8b8e9432e92e3dc7777d9b316e8c0d47ba4b0e463d4f0b3fc1b902721d3dcfa3e4cf3e51cf97a785a32c178b725568d7baf13acfb94daaee04af3e2c9ee7320b9b2add6557f3b9bbfbac52e33519c751a92bb300f9b74f5ab9a785fba62b7d7a950b9d76bb3b5abeeb2ed6cb77dd65bfb78573eac929b9dfa6f102adb86dd25de67c89cdd1a5bbdcaa7ee678e01520bff45d9f724bdd9758a4cbbc294fcbb8dfadeffa16b4a3d33c3bdccddc9d474a7f39f3914137ceeadf7593d5490f043d97ebb56270532f983fa9fb7d0587ab52f73be6755f8e4d0d087a71e3c95c372f8f757060b170cee935d98e275f6e95e128adeabec402641e4955f77bd6e331071dc8f7e4f37695e1e873be8ff2e777329cd5eb7edbcbb0eb36c3916bc781e7614fd781e7e1c82b1ca03bf4c4cf6845cfc36f0599264d0e6fd3a4d9e694524a39e79452ce2dcce1815e80fcd3ddc519763e5e107f01f27b5d7cf0010820d0dc9d26bfa3f1ece8c8726238b097eb06b4a9f966cdc3820880200b0c0cc9df07e59014bf59782ccd35cc6d6e73cab748361fa172687611953ffd1ef26c51177959b6b7483e81dd4e5d38cefeaf762b999777ab1983d47d9cba329cb5c3b13b975740fefe8cf6e5f3c8c383797878ad56abd5fdadce2a79ac54dd91ebd5cb67df36357881e67c76aaf2999919062c738bce9d7fe57e7b0f4d994cfef47733a4c99f7e991c32a17ffafbbf1476aa14839ad6cf5a63b96b76aadcf721af7f7a360538ca6acb2111faa7bf694c689d7bf3e82fbdae946cd9060a4d9081f2d2250837b80c600a299498220656f0e8dce8d51d7554135ac89f0b5daa56abf95034ceeae653b75f39c4230495346590d00283a9221d75dbaa70b245dda6c805dccaebb2aed4122e606fa98243617984d15d55fef250ad55e5370fc92b7e8387baef9775e1f2cfc843cb3f2d19963e325546b73ee36b4a1590b93ab47d2c709508a709bb96ee6da11cd33ffd5eabe6033df093a2ac7275e3eeeefaeefa2efd399fe2785bd8edeee0a9bb63a74af92098e3b17607ad72777055d29773776c3bfcf7ca435e20fe2d9c5559e5fb0ad1974fd75ba1f972687b49af24fd8c5c945b9ad6cfc1014a33acaf6aa1312dd4fa7e69d5422eb6585f39ea2def991ddac02a3b9607b6108f3f5759a57c2a87b69c33c4a815c99f379f919caadbf7790d823657bca4bc9e70ed3a722f205e515e4480b0d76724c734addd5f86239b01e5134919ce7729ad9ad6b2aa69fdaecf486e59a0fede021ce555edefb6b4505745de6087a8bcda1d5bbbbb327653b57fc76e8b6ab33ffd72cbee586923d3503924aff6e78c77c4eb5a2cca7d35527c4d71e227771711ddfa8cdd14db80c5a8fddc16cac475e414beca22b765816a00abfa87bc7ff8b700476e4b6dabca6de16d59d34db1986ebb8dfce7affb86de4292fb8e86740559e75323ae27ad5aec8f523e4be96ef305e4f75d2abdfd561c3f70354a2c207fa8e45075bf3fa3fd76f7ada37c1c2c7865f37acdca2dadda3dca64b316029f433a058e146ca1910e6d5c832d24c5fe513e6d5a8760d39a3d1972f590b5407481f8e553af87c096adda519cfbd11d070b766ed16bda6ebf237fe49edb9e7b0ec26d2c5289e5084b17fd9dd1fcfdfed17b7f58d3fa3d6c1009d8fd596c096a34414192e7f6ddbff3b96fff514956b9a74b9ad67ecac9c095455f92d54d0ce2ef4bb21a44bed7348e7b49c7bdfce6ede78f4db3f615c871a20cb36e62902952b19554e138407efe52b0a98ba6ee839d444c95e6953536deb4fea1dba6b10805e47e8602fa6744e766b3cf2df3331a9079653b3a33733333bfac6a8f7294d2ed6a7681f63f2d6ca2c821d68f5c1529517ef4a8baa3cb9fbd85359515b6ace44f15192239825fc917b19e0b39294f68075559610b4d9fd0baaabcd10df49a6cce2d046be71e5b013214f0a6ee70535c95da4f39a9dacf45f5102745fef4d327fd4cde41852d34fdd3ad2b0e0e70b489aafd63ebaaf6db00d142a352540bf5d042dbf7db3cf18d4ed5515e49a92daba4b7855fe5a0b66ddba270f19a315b8d55eddf6aaa1e5043257fba73d2b4eea26a17d54175fbed3ef37315203f91e4d07f432569556734e4a22d7c55a2f63a28f9d33fa354f6b69690a8646a982b23350b428866466620000009331640302820120cc7237a202af20314800f70944e545026164623a118c86118c4400cc430c6108008300419641c6264360180381b45eca1e095fc8927e9af412af5625bc53816059fcb725559bcc2904e5bfaa2521c68ba2ae94bcfe067ee4c820f64d6d1e31607446acd0360794df23572b5192353a9bdf30af7540f389a1034250cf8a4f37e499709eb22cb633536f009c042ff6c043cb0128201b571d654b8e3b53a6da8a97cbcd4fe16d8fa21277cc899819a8220285a2f6bde2b48cb3bcd3d07c9a2e9b56ec09bb28cec8af1144acc58d42c7511c68e8840e9fa1f8672baeab351cee973fa0daf2ac9f0a22eb95010ea73e7f0f776e9d09174d6a25af5c6aa9bfeaca2b229f84e07952ebbd9fe5fc86774144aed8f9601d3232c267bc27241eb81278fd9a6dec4c4881f0f65b19c17c1b71d67279970f44341f8c44c75356a308b64da7b7107369d8254a5307f038f4644cc8cccc78240bfa1ca9fa2a3995b1eb8db5796567aa1db1b1b177ddce219e9b1db3af69f5d39a6f29dc5f6bb0d8f915a149a1f48099719e5518fea284fd4dd46da67ff14cca4527b9b8de8eb56b95fb549143de744d3a3a9dced50cc0e6a5c12b250a60202e0bb0059a5574f94f2c09eadf4fc84f587209a04798b73acb72bc0d18b4bf72609883b7df704933e17b92659ec2a27744d610c3f32bf7803c2b57e4419d8110e4b54b62c5ae94d2183ae48780e8a7058b19fad4d3f3f1bb25eddb585a216d63c4a8986bd2d45b3b7248a95a9e98f06e3e1bccbe3eb21d32489c1e6369fabeb6b4a5c8a1349cf075224af9c30965a7693c33f60ec98a7c19302715205782fdd39fd10131f907198bb2d5ea04822a77284f0a44d9126531a7f8303cfe53700e7f32fc18bcbc4e9459436a4014b4ca9b28fbf5ea3a15775ffe6036a99e5f01725653daf90fad96838bd5278739b7c501230868f995edc7d02c28a2db5c3846460c8e34f444c9df8ad25d5410152968805347e1bd35681758d86400e499d76e639b3def4bd214207c16ca9cb5f06e933bf0c66d10e261c6ebc4d9ce10dba04f069e39ce03c1f89c5eb159d841b8c896c91cb59d801b65f7e357a40f59aa823c9168732d0f11d22e52ac712873a88d512189c786227d82623a4882ca18aeb26fbc8861fb4a566c9cb05c8801188092e0fe102578817d2135988c39f185e8905d25428739851dea35e3647830d7d4300cb735692a19536c123f317bde7d9a9342b1db66067329961b9baa018b24683f0679faeaeaad7e49a1c4b574dd52b9f331a8a6aa11d0bcfc0c742779fa0e3856680e83d414fb9cf1064174ccb440e1fdb007f0e0ed0c22d8dcc99c5ada785c44db35dc4f728d4728e636f2dd7d1673471a3df16f0bd22cab55b19d86f0b15188a76dbd282a2c45b8f463b441361429d21a0acb44339e5f0270ace1c48a1d266b36303b853a015f4bc4b48f5a911a4b932c26b427220c25834fe5c7418f64b525f7a3cd126373c2bf7612ced6724563a3814851cc8b23a88067b19ec6f0b15088a766df982a6c45a8b861d441361a2ae21a0acb4433972f8270a8e1c4a516967b36203b829f035b4bc4aa0f2a911d2ba32c26b822a2d91a148ab5af4ab43b2f2924b43d4fea27ab2af230f0b516c546af8a82695a5762470ab2327eba4aa23934e28e6753119bdd163c48798009be4ef9c1b02a958fa0568df8a5ded06b3ef43b01c958e9e3b2d9fd1839d71eea3edc967318a70495102e4e2ca0728cc73f968ff71ccb05bb60dc3e9f4306a1bbc746218d0a89d8010b369ad34a01108de190dadfa2b246a74bdac52257579fa3ab6226c24c7f29e1be69926bacd4ef4ac41e9650f5e7db45077d0b1062f4d64e0701407e77316ae8204841c144232327a5283d5f8c530b66bb5c10cbedac3b656090db0cf2a2b9491165347a60f1921cbc7b9a362560a7f7ea989835e202ed4c49c55838d38d41ebeaa7d1fb08188f11783a8af1a2d757028c20b89804c7b5a908d815534ed131ce9a2d2583a9af1b2531ee54360da9ab04b9f0467047986c57d4e00f8920a68ac4483a4b48c09c9b89410004fd9537061f007da58568e4fae0ae9a905a74e1a14ac284bbc71297f165ae1ee4bc170d96381bb4df59922fbe735450b6d867dfed1cfd9c7c63cded7f6f548aab414cbe5ccfc5753b36499f2990b8f1a164dc30f9ac8a315da00bdaf3f368ee762aa520cc7ee549f8d05fbfbdc1fa5ae1ecbe6c1e36e69bd8d1ecbf283e21f55521f6fc3ef11fefa4b2dbbe0c3c805bbc5070272be5672f971c6e08754884aff3f8c7c233080add570b2d0040969f6d2759b3b52802925d5da40750ae04ee6868eb477626fa9e2e8e38ae58eb938d2a6c12a61a4b872f949d299f141710f1a62a2cb1d5ecacb20b0aaf6f91c002b4de1b54b612e9359d1025af0c9810ce56da523fbcedb9eb630a55d99b8140c89731929c6fd753a597dbb16665504d755eca86c10114bd0c9281d2b2d57b9380a54251c311659b3c67d2416313857cf5f44de444518435b3c868206a82c977146984a589541269d1ad9743098fa89fbf9474e65699161bf046b6549d2b3a81c4b5f7351341b11d85a8107767c7ba3c9a06745c5b2d1c127faad728c85b818e3028bc82c8a76eefe5c60788703d1eb89123789ed993242e179cd6637ed35c94f47dfc1532ee25e0e5e5fe8e9bafb7242662fe96a8d8c1a6f1d84d14f2d252261df16e8dec0d9f53b73cb05a29da9e9aa7a647cde4f4fd8de515d1fb902a6a4dff0cc8c749259ee159e18402a60c62a01e8e6a11ab7917b861be113f0c222f1ec1e9317a4af5aa73db23cfb9c13e0d1739bfc310842806e78d5a1a5c1dc05017a33f18633fb359a285d0c5cc8690ebb43740d6bd30398198053a8660515309afe0deeeb366f8b503b2095d171a01ce9e066049b0003d188a11837ed1a60995cd8ba78a63172b28938fd081bb27b002647c2c5e9250802923d06e5c6a832728dd32002a754418cd43f173d13e326748244b9c0e1faeb2634fd44f010bb37d18d24fd5af921e9e463b8aa8e64627fd177430a43cad526942f1854b95af0b8da812b9b3b2eaa91e5363980c0daeb24149fb015f79a6a7c448de466a45ecbaad48a420a745053b124ca5722e70c778e781c1b540e3b3e796fdffd66de3fe8d753e07a1c7feb52d1869e8c1bab1379cdaeae7f180dc2140d8cc78cf0b989534953edc20ed92801aea59a0f07b80a781e27ce79512e525354d539e9d3079a113dc1e05ad35c0807528d1b2a17a65d15d57b2141b257efe4e68256a73e19b01e01453aaaafc8741a183f329cb87302907a9115780ef0644331548b1046a44057d991d6786c7e3a5313c22bc3e47ba06784133f85819bcf6b3630cd54e82ca8105c869b85db87e7a8f71325ce83d465deda927f78491fc6b1ffec50774f0a252817de5ec20b0d224293511ec751ff6347a01b6619bcde9cf7072657e9c0a38f4139adf428ae9e6bad76e0d583307a2f09aa4b5a087baeb2b699240bf1d3c23858a289c833c26ebc9f38d5731bb61fb75f5a14db69b6f99f5aa6749ae2006575743eb8744fbbf0badf62a5f856593427d1069ea4cce7dd1da167f6c89be17b62b935f0e039dc3eb60854d55042857867560968430fbb36f9932ded93f55bd6fd00e1f8573d8af6206469e2ceb4fdc5d47ca3bc7148daf847249aca6281dd7836fd01ab902e92c48c2206fc888e38fea2f8a95086ad6251eb478e5ad058049f94df0651752dd004452055a29cd3ae3cb2f93216b7d08d212f48ce09911397ec07a782e8c8b58ced4c152422b548c1e49c24300b21b0ccf8854e7f703991496f2785af6ac06d0185d198be88cf0cfd9d732da93d0cb6ea7c06a802dd9d889fb80c7466f9c5d8c9a547a149b9d6a2cdd209237c6052be0ca715b8170d8a28137282ac72f2148b7219de1fee3e28ac7d5ad8e0516e3f72a659a313e963d3efe59d409908426b8b0cf40fda5b37f369dadc7b8f4ff59bce7672f6bcb86b85b5174245a8ec60ca2a74ead222f52914906d90d870860c56ef368841c5ae0cab5f273c8767486b83603c251d92a03818ab08c6edfb9e5ccab1c22ccafbe953ae988b6e01d7a884ac92f6ecc426eab2b49f3280848fe9ae1b7b4e251c8379e908ec38ca5c1fdaefa00d1eeea6396c5fc51aa042d9ceb1268b77264cba71dab64eb47b19661128b81396f502acff0107781bbe263cc4015e83a7c395c14d5cbe680f63ea480c2c2e95cce656fa519cbd5711196f8be522385843f173a8d18224bb4b8c2de45775f156ab0a88fb73730034361bed4103fde435dd46c26b4282495fcc7c1a7c06e52a1c25593d79d6980c07ddfb981d8795edde21f958e98d450e2174b4c3801bd924d7852cbb586307076a29ee268645526170709c52c54d0ea7094733c8d1078961afdb8deb8f8bacd10ef7f49de2feb74c7e8dd6073936c75fac95a2c5da108059e8a0c5b20ad4e827149e74b0938231b270ce9899971077c075940c6ae5788400c17d56333aa20b5eeef6f9c0823e40b10056b19e0ff0f45784450ebd25bc1361f6e0fa76d39521cc18e3a4dd60e6d1b24ea59c13b5845b4d52dc0aa9be62f2abffc1d05d150193a98559c6d2904e2377a22b9ce6db42da50682640e2e213050f1a371d0f2dd95d5c5bb4aa610d811a898b6001696d0914b425d32d49e8a4d9ec62feb6d89a05adf3c643bf1b94740253f45dd57909a5db71b5390e75d5ee9f6570dbe21fbcd147977701871f0a080f611784a6db6764f66a2b00332ea173362a70289cfceebfa4be6dbd6def6e4eb919831227997bd8ba44f370acdc5e53f951dfd30ec46f7f830983e6537d7cd6b0ecd77941c30c103a57995859b97d6b310b082ecee9e858038078230b4800b83635ce98205df8ea5286d037f6f896b2c7699e69c81a104f07d31189c4f5b8d6305d1d8d4ba72b9959115709ea7f80a8acbde05cfe052984ebf90ea17c507920b146185ca82c5abab68a4a880092a332a79017b1b5450b453df9cc4550620f91e6872994fd781cd84d2425107b7f6b234fad59419e9c008192a42c73ab145a271a1c86435c1511805eedb9b4f34f12612c2a6ae18b59e7ea26dc076c1e3b504ea8b568ba4ade91cf7aa9c147c458bb06432c507d8e41d3ee25ecff9b07b9554caea4624fb87a8543470d72ac2c079c0235007a6ad0a22725aadbb8406bff6ffdc46246ce62d51455c5455084f10c5a4e442b2687a2ba673b03bdf1c41a823c9d210f4bf09e16bc7582ce6524a18006f4d9c3dc355c9904d7a77c2716c6a7df9d1fe15db3cf84275cda6923b50842332ad8213a6d718a65b877d99744b3df423c1f630092d32fb0be69a21eabcd5e483bb449ad189cf79d04dc8133c14d5d219575ac5aa14e1d5ab773871e16358782aa63d9cf024195c96c096d66f710880670e016e19c049d16f4f29053361dbd5f26ca281e360742f572685ee3cac9f8e14f76c7f2fb16b6b90bbeb1bc6a48c88e675f15bec917bc5092a1b4d01eea0b63328017051c511681152258e737e20424b53dda9b0012e28e2edb7767fa9de29bb74acec2253d22d19eb8cbb1eb536c1512e04ff1f05948baab44adfd0fc7ee72b8f52837500d67da737223a92c63484a4e5e4e1e1812a78f9d5bf055ebfb400d5161f26e60ac81955ac0c6c21d0a4cf6d31088d1b9738099b08459e8bba7212c02e8fdcec6b499320b82474050f463cec74560327e4ef59b7507563af859eb2062c7236b8cf42af8c1bce7f16e709a3e42d6234352dfd9b6f5f58d3a9fb171bdbb8427ce81cc5a1774d3d7a01fdf068f8c5f713d411b08e2adf2185f4032966f600d91969f0f400a4c450fc240966f42ac9bc2b101970b74bd6e868019219e3d6a90c66dc888f2d1e08b9b1188ce385a312ee0916644e1dd1fb39ab78a8960866744a56aa108691b33214dd8e5cec4dda4824d14cfc6dc987d3eac4898e1c251efabb1fa19d812d926be5bec1c786ce65bb875a80e0525753b99733cf25f57134287593c1095e31610dc4cd22459d77c278a457e23083494ae318c1499d3127707d0daeaa890a7d174f0e57e80f20dca951cebbe1f6c0e823b2ac2541e1e232a33e45ecbbae8c82b10a3d761ea2dd1f12e32f8b534922d83172d945b0376ce32f705525c706ce70281fc8f8d72d5b449edf2fea405db0b7417802bf60c8483fa171fdefdf01fbca21d2edf811a7f689e012396f801724eb44e1d8348edc27eee4b514a00a92fd03f69ff1763d00a0d4a8afdcfce92a60916c8dbbaef0d3b6118da2554092cb52b130fe190dc1d539dff7e8817a4b21657571d78be7a785ee2b4e72b077a78a1ec9259625b732783869770e20627d4c0362ff78113a5815eaf6ae0b1aced869183cb18c49af3c1a15b1d3cc5b0c69ced2de7611fe46ecf5476214536820d60c6879f5f67331b4158f82ee72f812c079a22d9c65502927dc23db45f3d4b9da6de2bea9afa1d594b7fffa151aeded3e2106c675c1f029887835d68aa9cc7c0df29dc36d367b4abf810455a5077863a4ec9611ca25034fa41dc30fb8397d69a7700938d84e0f9e1a811492a562da33eef51c57430c7a855dbcb03d39b8dbb1372977bbd81bb6aafaff4b03376def93e011d7f3fd1bb1f5d36e9c872bdae50ba71a9115fb7f252a342d2059b4ab063e265a7f80f1a98b872822775c5d2d165c4b960782fdfac4bf18c7f12066f3f9b0b94854f1fe73295894f8ff60d8e5e2c664be2668f6e5ca9fbdbcef7eb915eccb65bc5a69dc3cb2f0289c3e12de7a555322570e81a5b1f35d79fb9c766443181a97565264025f073d77f26fce32232bd3b5c83f75e67270df5c0d43b2e9a4ad097e09a4ae2668913ee45271edc88655485ae68a2d459f7dcb9646f56b0c4858a4bb16202b6a28ca524c550648a33562000aef2fc91cd434af1712a1ec49876d2682c78e9bbbb77f9976876d2a056588db66dc8cad052c74d2aad45dfedda9aaa93e784978bcdf2eb43f3d15183ca07d6dc26369433a426b1b2f1058f94fd380094ccd05e590e03632e951499ea96fdf31b381eea5f8802a4afb4f2ff288a587e904f3a29f71a736386d0a64b2bec0b8fb19af88027a6ba0ee85bc3eb623a03229ee15bf2b5a05618bed9bbd6152cf17de95a01b0697bcb573d742a2a9f6e9e357618fc610ba2a2074aa27aad105df74a1c29018674107d440a82acc9927307a578a16d7d59d67bed095d4c51f297324cacdf4c2ba5c9b440385bb7fd5bbcd476a119360072d761dfc13d5e604ad0c63ddc805810ca0a20350c21144d804e9f39db5ace41957378ed07bc83d810c56fe88538e88aa19c4c10df334cfffab03b85aa08e2b6ee386af05db79ee353a02262c7feb3f615bd69e51c9a696eda6333d64c556ad6344e0231805e0daebbc1a104ff3227c2c19cb83c2090c221746bc8bf41f19f84b99040ee6a04c893ac1103f59a310423036a5d5e687b02d453c28dca2c82425f9d41e83afdd45e2c52e5ae78968fab23667ea9a164445cea43b64bd100b2fcae7d1c719d45426c209476e313672b2b03f7a1143bee9ea64682ccc1494f0a01f2e55e225e76278467f153252a21c080a45855984a8548b56e3eea584c354d84fafad84b9c4c49209bcbd3273402b1e963d2af5214a656054aead00c3ec28c3472cb2f04f1d065d44d91ee38388809254093df84ca418e839308feeb9acbe6aadcbf80c8335c8af92e7b90ada61088355efa7db2f1cd261a2bed36a4e524a6efe11895e10dc39caf7f3a5c4a0012fc234b44c62976c9daf7f8c209d378c60d8e7b2e0474be19834f8c5f418bb0e72454a0b41d8812fe8899ebf88de834ffa8132123e065623a3f99fbb3b26b7a3efa4d6475dde6574db7ef4e3d3cb2f491f10de0555b8213f09ee324e8189b2f5044614583d49881075d9cb1792a4afd8876d872b13a9f7228cc389ce7e9032b03e1886827261ac406a0de551082e90303c7749b5873a9c0abf77024b5d3487da49e4955fd5b0e782d3cfc61bdf88541f7c092e7f907fafac62fecd2a1aeabe5d78d7cd9796b659b1cf14a6791255b603fc5681170dd29ef18420b281f7c4b6324cf6b6154064d44ddf7b217d94f1acd7f62a1581a9e25a8b8a628738fd78900ffe3b68256f2c6e2ccfb4076f7812f9f3cfc41c30f46d4c876060e2ba14fd9288998f916f7d0c6fd8f91361082baa49c4d2a20a5cb4a2b2f90f228b544292d97687e08143b0aeb3b65112f95f6aa2976eea94747960711be3a703640c257473117607c8122252c810e13ed09f6f123f09aba11f6b4b4366eb4efc04f22ec7db3b17cfa10667ecb18b205f724410fe59fb7e1022a43a6e148e3c8e1c1af5b96e8a4e1229449c636c9bcb944570189951c612b97d7da672c26c4a5d55bf227f589e7e034ec213c7955394ffd7b155e0a0ba79ac0596f87eb77292c5ff4b7b93729140b968381a6b3aa82c39b70d21109f320d9376545a781517cdaf425d0ffacbcd82f2c9257af26425a2efc8903e3789f24cc5728db570b5dbea9aedf2cd19e644bd680347e4647b7513b2ff5d26629800d9d7fd8349f4657c661ff856633734b9021e9aed6ac68429127fd7ec819dd8fb44a1b265795c0b49f24e88a9f5b75aa20fb37f849db1f38c7edce0954a6c07927411ad901078277b15f29c89a916ee3fa5538d684f183909f09b7989a215dd11514c8d5582ab953b9351785465b3b849abb4f6ea3394c86e2bdf3760a9e3a2982114e6981d4b4e73295a4a6e1bf050e1c46819d603bb209bcaf344392d62869cba1e7fac8511e634dc616e0cebd49432e5b45ce2680cefc6de7d4546bf49e9ce8744b60e50fef3c42086a10b5fd97b6e3b4a98b2e1655961947c6ecca1f95977695a274442b198c785659e85b0e13d9c609a105b37f0c55515f2ae221d43803450a10be23b0f533d3195ba8147ad1f03a89a6e2af491acd815319a6d444309870044c8fb3901da061f80959f1c5d006ecb5172f17d31a79512c430a28048d0d9abfd7b13c22dec166c19602859fdacc515bf2783e7cc8252a7b605b17b986a0f7f791d5dd7f2a817148777ab44a698cdcb083297385342319280109e8a8900a026c91bbb80b0bffc3b73ec4b17ece12e50f44fa4e6269f02893ac633db65a004ec2ad0a311cbaf3ec4e7f9fde2a493745a75771e3c849418360f9300851097b6d2edef534e07ae478e7e6b42d0c560c1036b9ac855fe71e8baa1578cf4da4b5b8bddc6b97f685cbd2761366449ac16dbaa4c61cad8ef9c4778f2022858e49d9bd5b465b6f656ec283a364b75195f2afaf3d109b2210758f22835e347d1c633e8e03572f230bd912c4857e8e62623bcd82d038c2d63ab45dd163b3a42f85ddac08604489040801106b1e629a0cf5776e0e7f96230ee16d34b8bf332b2cba988c8099e3a1fa2b5fda77853925543d7a306bbfa262977616ff1ff12172f9ca0cd260d05db3d3fbadeca1b1bef3076df4cb72cd9af42f5de8cd2823501595d58d5d36ebde10afc5115ad7c7cf3db9fe89b10dd3de5439f91f41681cfc0b129cec510edd6f03b3efc3420c10778ea8aa997ca39b2074d806251cd7b83050ddb1881e36b606607e9cfaa64b3d5b373fcd9d8fdc20fbc781a409f4907e035003b0c82707d4338c752a1b91b3f18057453edac8cf199085ad937030c9809d12995e2d530a60d7ec7ea5fe98615c90571e1de8c09b2256b2efeee6abaf60d4a438ea6c42764e6a924214e3a9e79a61ebf68fa8c6cec85f15251e2c1be537f2fd5f5b7ef582d8cfcd475df5eba709fb7f0ca4324e62d2d0008aff0d258c339f5c72939573cac01821330d07b0b9b0be8e429b6afb01e044701f9d53a8c0d43d6ba8e591bda0201429761ca347acff0399e042620e84ddcc8879767890c608218fd1f977c8621e3702edcc474f7bb8c023d197accaa02fd2af80b6d4d6d846db85e2df5eb5ec81826d9d0c33d48596672d4de00eed76e039df1fcdd67b65f699633727615ad719b39e9b769bc45a07f9ead0750c5171dff7d601ee05cfff7542b268ec27e2b4150da6d67743a55099d46b1ae99c163b1129d88bf294632636394139cb34238af412d1c5df0245f6e8bd2e383ff9d487b53ecb210f9bef468732d28ea067d1ba346595fb1d43bf92392321b0baadb2f23c9e365542d15cb12a6bc2347b1566dd2822d607617174048ab7091d62995777ebf4cc3c144ee81555e980d0d9f5e58f03251208f7e62dc88725009425ad51d24fe5ba5b4097267ba8dc921695c1ead522b4048f844c0d873890cf1228f935e958fda65b2954d3c0422f7f88ba70fda89a38900bacc07ebe289a75656beb4be40606152209106775f9985085e1eaf2d73d15f7169666789df40435f243b8f6a0d91f07386787b577b72997cdcc052e9610da51cceb343fe74bc1e3fbf44ea41adaed572d0a84640c1a4b6b42680346fcb70308e54000d5a6c90bdd1f546b792790d33f86f1b0e45e2624f0fade9eb349af0b367e6497388373722bbd523d556aefd7467ca786da5e7d6edc74f0a2fdfd46e981c484edb0b7e47bdd86848d5274fd2405a30f12f150b35f09e28cb7bb334217a56d6fa89d15df9f816a07f58ac8e0f2a207ba26a70fa6b09c70058414e73469ecbc90017597657f1c9dea0ad14022c766dffff4396dbb6576cdd932fe57cd88b69d4ee4797e50c895bc216f446b6e5a629eb021f48358d83f39b8a14e985c6fc313a4f2e801767fb8cbc5bf5b68b84af4eac81cfd988c604e6cf0c5796683716e2028c7cd27a47bf3f758aa5a3de1fa7a603c7387ea0b72f081c8309ed3a8f8c7f4c482644c2d1a99a40376c9e1d1ba1f260b06138d7bbc79c744e237de699f2587bbf4d87fa6ad18954efe5ea9b93fbc48a1ba1940bbea00091bb07059cbb9c61b97295b6a0a57101afa87895cd7a0aab2b3c1677e55142f83eae920538266c2a8f80b13943b20304d52d1c34b44d6e0af1ca6672779b521b469d2f18a564d94cace60818508a348d45e2a076368c89ec0b3d0ba45bf3c424f952244d94881b7f0db7a39c9737b5f9370ccb9e7632ff79dc7d7d6eb021003c281e116341060a4025a0bc590630a7a2859dd6550e0936830142f3676863ac09f34eac5e0285b7d1d9f240abd248cd2398fc1800f06f928bc8729bba81aba3d2f62ccc3468dd207e43a5c8faf5ef382e1b93f9db7b61f5087b66e93fc67a4b7cc6ebb485934020c9e9e667744d80144c78e62e47e9f091da519d5103015319b5f94dbbe95906a306a71c2435f0a230e10a725b5963b805c2decb285efd0b32732458083ecf4ab9f7d528a53810dd14a9ce84bb4958c989bf317c751ccf3857cc23e416970cb2424b2412b80d32a67be09475a8e4619a817736fea25473f709f59e4b32b43b35333a8e241b8beffb95ee8197eb6f414345b0e3520f0254e58a6138f841a22e2156d463188ceacc1afd35a36b7e9866517403e6a23b45db4d41f213e02c4fdee13e0a3abc38d2315e8d1200fcf1f03313164ecd036647819674c31f6624dfc85d11d80b8af4951f9f68d144caac28faf97fa2d2c21f06f93f540cc3579f29e91fcd563bd2e4e5d7c784286de5207b97827fa023942b625b213cc4ea59a175d789faf1a401249c53ba5030df88eb92477e4409b04b113491bb3a5aaae346684f074fab67f20e9778106eaa19fd9849d56616230e5b2ceec70f5620e913d0edab5fc166427ab9ad43041950e0e334c38e29dc95638485030e4055a9e6c8086cbb90a806a7ac19454ab9149c3fd377b23561205ca390ad38f42d21d8a08dc36a5a0dbf657c9ed49bed7a6196d70a01d1808da5212eb746c25e77f8c388a2e3207ac81fd59fe3506c02c7c5d846dcae9c1b637bfa559fc883b0fa095fa60b5cb22837b63c1e4438dabca0fe6aaaee6ce69cd1a505fbae4d737a3ae0e00636924a918d351bcb493cba23629c7a20ca2f53cf1f2447f6968bf9ac662dd749892074f74e8b2121d9020fdd5ecce3212f7b8f38f1b090e00a2aa2548e70f6aca6643dda8fc1bfa13f3b46cfb34f76456a151523aad8107090c5e28c943cad75e80d0eeb27d4e98c0f60d3477a92b83bfd716281e1bb4d2982f2fcb82b5f0001afe734f6723b890d642178a3ad08f3bfbca70ac789fe024f54e872e17827c5014c2bf781a3cf2b8a2810ba159248fc7cf26e999a7835f356c4a93981cd6e15cd9f79f6d014fa6e3a0ae4b4f043f5b44b043b484c169489f2dd2767a77b2e1915ac084296c900e695e98b774322659e692fd43147a5fc8be75a16352ad240fbdb08a680c6cf42ee016ede041f67dba5f2797010e0962db3464cd722a1145e22c05b0168722a92da98337e224bf4f1d64360363d65560a572b4b1e5c9ca42b824651fd8687dd3c881aa184789ab56259dfe03e78d8ba75c64637c652ce375a1864a6edc14dddf5b6a60f2a53d9a648ae7723723aaa47c89aa2330807d082a9b3246684ac3979a92f6aeed893441be27777adae5a2b310ea4f85ecb88e7529b814ef73aa5b5ad8ec668e19846df1af292f86627ff883c9243a1d1c47d4eca472aacbe23a86822230374e0cd21a67ed29d77103c407443f53140cbcfb7cd06ca1ddd54fde1b104b97dbe7fcc1ea89031c31c8f258c3af09b5d93f11a4c4036000e95373b983b2948d8e6e0ca0fd9e9a2acb6e279faf0b182f25883ae5c46b021f651c28c683270bb87e207410ee200f94c1c98a2fc96544ac5088f4f37d0ff0136e7f553a5cb6031b44010a0b0780e4b7637423dc6ae8afd0385a2d3fd4e3826a517375ba9ff6c914a1d06038b4d96205b3fd72d52bf47b4e1ab1f7f5421d6a95b02db676fd19ee5d28855d0a3dda563a6c8284b3ddf17ba0f0f9f0860f1ffff854abe3eaa159773f990dce9e15ef942e7995f907f3549e412a6a1b6eccbae712fa3729e3c7463454d24e880835a5390ca7263984a186d4d30e1ef76c152a88f6589bde4d6f20454fd42652eceff7c43ee6649348a813211083848a621af82d2d3e12fb987a509829774984bbe0519dc74a0725e995a51bbcd009dbfe952b662dfc5f80aac0b5353443986a2f355b307e8d6d4792be1a91afc2609448e09028ca0f7034821bbc99ebd5cbde35f45664c5c9d25decf8f71587e5e6e89e3196fa604221987e5fb2a11d8ed4f5dcfb44f2943fd6132e52f4369b063f45620343b7a1ee743639d60ffb54abc82585b307adcc239ef29886695bbc0a91b927032845ab01766d003e768b204a3b2bd92e92ae49b9f8669810f5ebb3ffecc9d62381c463ec141020d3335686f1c1ddb3c2d24b54bf894b0da99ea01169fecb36365f7fe7d86ccd275e9d282fab4d8d914305a93bc0309adac476f9755de8bf1369b090f1247ab835b7cbde6c031dd2c57c201eda0d228aab80683a0487e46eb0d7c5681a6bdfbb5a18e24a4684b3680e60b80bf59b78e066f69d6f21a4c9f43322c7d01f16d24ca1aef54223f538ed818b04ec5238c2fc7f25d163c92fb094dafda6581943ff9b585dc8f47617238506a52ab8ad036b11b7a1a40657c47279d7cf39ff50a6d892b2d2b20001d42f75173b93de172d8ccf7d248ae435326ca0e67d2b977aec5211706fb1411608dc02d14bdfe961e4cd589a3ae54266c03c7860c1e3915182e7c5f348951d525e8601c62bd8126ac7fcc6d8deacb292281530386a1a1d62ed8622f63412998c578c8cee102f6d56913ede6e135876efea8a329b12dc6bd937386752a136147f846d68b50b23cef8db29f03331079f6c3b48cf86711e1d2fecd65b891128d2d244fb50dba8778428c5e0d429044c1ad884c19157aa09c1ea049c1deec6811dcbea257c776944d17e0edca581b61c82b628cd95451e5a36f011823d58065641a279118482621efe3fdd3e48d155b338b522c56fa3905e74a6483e780749d4422091e2730a5d6dea09c41c871d3bb0ed6d8988a9be898c109e002b8acd43b939f830c90150ccba212f8f1d00a99f00ccca55a65082f1923b2016e5ed396cb5d25d6d1e1b61996577fa2f6dbd0d6e2862db2a7a6de056237b02db4243dbaed7a0af5dc19b75050bc614b2d100ade5fc253848167fc3d4b073d40450f3cdd13140e94f98220a28ff5571454173a8dcc120984a000bebe00d340c17ce7ebe8e8add89511329fc5e7cfea6df37d853fff026cf0f114a0e79097e80a63ebd905fbb646076488345f00d153748045c752e73a5241abd70134d0e7f72321eb7233585abb9bbaf9aec16477575b489352f9bc8924d21ef45ef5cb7f4b825b9ae8baa150cb5ed40d2a64826f69186a357ba38a9174c5a0a9278848482e3269bca0642220296860dbc6adbd1cc3aafd039c706d01bfb0ddc8cbe368cb5c503419723e22908b181e703586cfd233d38b444c69bfc16c5e4c986174dc55692538fb493005144aef7d97492367fcf623a3d23f4fdafe64a2e7e0f16fe4c18471fe28fb91ccd4dd259925429a6c466b1f319119f8523792d0f7e5fc86e86d9f79223670601c81c73cc2168369ade2f71d211551457a528c81dbc9209d765e5448904a45de86ddc2ede5e623292517aa64656526528b7eaa96986c69c041c830870a11bb7b2f7bad5237b91248febee9314edb10b7e3e7f97751d66027d8642fa3e0669a9a636945c614009f84bed362100354063c0300c92a0ad49d35611b4224123ae29dd6d705abbd65c0a412ba12123ff3a4c59340409a8e02d4412300d998226859c30c2c06a0115f041ff8755453d2861583ff7f17e499f438768f74df3c4b20bae24e557e8cf872572301f028f82c7aea98d6e0a98a541c469dfe8061a78922d6fffe1adf093dd583700586e6f6099dc1a01d3b51764348a996111068e69795413e1acb8effe92dd3f9c81b6d0a4ad7dd829e84ba20fe3352b2bd0c9f2e976d1ba0a0a41d4e919ec9a826b5228f5486937254452240a02343471db59d656aaa9092977ab10ee5825e873c11e0e85d5ff2d6cef6c594b650ca05ea861942196acc1e64c1a9a57913f73d73aa260740ab1878af5e949e7d79e18c416a5c25123bee3b7436bd8fce14284fc2f75b29e8be0129e7ee24148f8730ea7ce955b814667d9e4b067c8255e11b3e99e4d050377311b56a6e0cb2505973fcf9c42fa60f64c61215423a4745bda23f06e8e81f9d5b50c4cac38772b7c75097f8f10b2c4e7d02dffa5d6a9dd7d9859e80a72a2055c50cebea48cb131be5d45779a50dedc230b170cf09da3561426fbf5d5efcd83f1abd2e43faf85cbea6ded7b977132d3c5da7f63cac6ad9fbdec24a9a7407b4ed11a0213c244584e67ecca9d0d6cd5bab19eeac95874b493bbec72c640ae53b4c3340832137d8b343823a0c4407eb1bfaae1f4c734a5ed2a96cd2cab110ec3858b1ae34e62b4c680c6df26252bf10c88d34db4dd7ee2cbe818b1116a5db367922cca8393f15c355d8a809c937309980e3e3859e765ffd0f067019823764ac496541302ca424b86a01db24cd44bccd36299c2f980cfacb70f9d889bba537974ded280ee3bcd9b122cd416df1087744254fb77e6bc277725792374bd327dd214ff11724a07bdc1af18d50addb6cf91ddc84ff05f93b68325d2c096a4ae4c6a0682d76d34e9e38dec94971e3397ffa5139dbe117a03650ed6e28a591f5dbf3c56202ed8603d3fec713801f12bdcac0c14726f75c67daea9af598da2263554c8174e454a0ec2ed2e02c11e80c47cfd1c7e96a01bd180cb3cca01de058c9c23c263bd81cdec15b332bcb086a436c963cea3358e930f2f4cb9d2f2798102b5267adc5f52eec9d0b520b07002069be6e369d6c46cf9a08caed4e25f91237bbfebc0519d896b2b85ef363f19bd6f4eb67539248e962841d481111663ff4ea37e9d3e2b068fdd1c04466d60c9c049ab67c5b88e507b4a6140b31c44c2ad300094e60368fe3f15dfad680cbb8a9b8a4341fb4c1ecd380713f70e1687e96ff53ffcddbf31ced7718ab17db7c95e2918b78bdd25c7ab9596d955b70745896607f4f3e657557515250339c7ca6e2606115b725f4a69430d654609397e5b770e2231fb74c652ec0faddd4070ad9108f71d2bc687738bae438ead6f51ee75874b02f157da5f9abf95c21cfdffd9eab1347d002ef316c1f675e5f32ecd5cc6c3cc3b9217b5e3c69ae91e402167d904436b96709aaefe7127552f8a5bb8341c8517b4ab5835beb175db2760ca9243156df5391a640f57a03d5074506c98647a22673872d7d1bf23b53e8b08d1aab173ce2d99e1c1b534331ed46eae780fdab4ad2cf9013ff420e291bc90394883b9e2d847ed7a262ae03dfc14d7b3b24487cd3402a307f91a4afa32e9dc2783c38a97383753c4f5b020203008b4dfade6355f3f7ceeacdeac855948eb776a357858262bcd3749bfebae9abfcc37f5dcdb83d3295fcfe33c0ab88d9848878439eeea4dd09121a5112c77c7f5343c74be94b041db7be6766703b44d64783604911b40870a9ca4e2197daf021df03ecb1e14f0a730c8eaf2974dd7dfde4c02e81f4ce9f3b5246fd6b5e9252fbd1ecb99994d64c1f0245cc65fdd09b6de60f603e70b003490e523ed034d5472e10b2acd6582731080d755e79b3e73c5c1dbeefb5d76a0b35b6d13f0608724ec088e8a4d2cdee36df0cc9db9a67841367d42c9328ab783984705b3d04a81378366c0c962a9c676c7b67bc35370028a4412db7042077c2b3c859dbb55c26d3859e8ad1ea7ff0bc7e093ab258cc2d6e725c3aa3f00cefddc1595f752674ca4573a070e3e833ac362216d85a1302f55bcd499c1b519866e9b33633f957df578660094964a828ed40513f459e52907236a942801305b4bb46ab5d7cd3e879e13108521385883feda5764ea4813b5680633fbcad7829f3bdca6399e634644da70a05d33055014cd7590538d761e38ec5f99730c9019364679afac5dad1e60ebb540e8c09e718919d36d4df647085f2fa0b269400c55b165597594032fb16b2e576bf63619016d6147c55d5989fb3c16d28d4c574c75c918b093f9ce9611500f208fd50a0baeb254ea3c8563ce198986fe6aa606ed62ec2668ad211774114b8894d86c42b212136c437d3db933df357ded62b002fba300d69459f41a17364b3551632259e5b85e481904462de20e5b62291841948f989ad895108d10ac96aa119954416cd0222aae922a6b652f2418e6773bbb030f5e918deb68aeba471fcb8105238623842aa98b4c6a20127fd5366efb62a39daf373d8d527500db6ebd60d808b3c70b2fe6e2fe4bcd80593464e89aa43462753e9b4957a14ef249a1532accf949ef1cd5be12e44c1453f6a7bc21640be6d4e9db27ec0fd46f031a4bdba356209e15a703695cda02fa82305b44d0b332a943de4c57cb6ce5209ac25680dc63e6d2569c26a9969b35002c7e1da0694245780f78129d6b7e8dc0585af7e144eca8444c4af00cf238b3e2a7256defb626f7de32252903f709020a1e0a6013d3a503f072312e365d9c13ba30a62be5a751005e94ebd96fcacfa35c5c6cbab858ca8f4b0f1a48af87694ed034cd0e9175f3ce7a5ee722111b40e9a3738f43debc3f1fa3d855f9221a229188f4fa19021a9a1340ad8996bdb44334df687f3e462f437e6708ba65419f15c0dbc99e5d76b2b883f4eea5ed190e053d7b2723c1e48683d69f4e21873c38649b836f9676a845edf5d7a326756fde79d7d5538d890294bf390b87ec31ac22d92b33b237260c3d7b3dc6b04ade481bf939489bb03b7c2efcced959baaeebc2ef62be93f9ce635ccdb8fc68bad653b992218829f62c9e5d64af0c109e3d646f8c0e9e9dda1bdae0d9397b3d06cf2b902678f66629ed75791361d8c11878250cd62b4aaf843df768eb599d19dac86de5ac0b29a18b2f97a5f5ec1d83b1df7c13d92b5fe45d27f29077a14ab90da07c910fd1945c941fb261b1cf0879c8e347130263ef45f1ec77c66b53009be0603f44f3cdb5d20dc03b7be20eb46edec5cf0707f3117ae9d4af1785a671d282aead09784d3dae37f5f4a03f7b220cdfd9f3ec334d4117c8e166bdc9d212492d8ce9dc53e4d2a528c485ea90766f6ad9bbeb954f7d0241051172918bec90908dcf75d31a9f7a1ccaf85d1392fc054dbb324fa7df98a737bc3e2ff8944ea7344698ed824cbce69b77f2230294bf6d533a27c51652e448d17a36fd36650610038030e5f534e396fe865ebae45c4afe6284d944a0843068e1630c6f067edb2ef5cda68beddb65a266c96bf7e5e390e9edb363e2cdaa55f95f8d30407fe95789fb32db0c5de4016cf6c99399468d20b088f643a4b74fe93188ca2b3f9fab145e99fc9ede9fbf1a39c56eaa91532935720aac9153f2d6fcd55c7a2792214532ba7a6b26dd4c4eb77ba20989ec45f2229f35fec42c060080d40d5d86977ce49d0cbf3ee3a7dfd24fbfa19fd369af4c277b5d9e7319f6ba7ca0afd01457b1269b62634ca1d892b531a6487664a36745950892a792887c3a2b7f341c14bff9ac975fec9afdc89ca0f0e724020510ee2f929a97b24794483fb591e371256b1a8b014ad734ae611127d209f29d879cc695c8bb520d24896aec947f74ed441d0c43d1a9addce62e3f243a57998889ecd3316a9a04a526656bde334a39a7a52060f0a5bdedd363d3f6d93e645a1a466fc6d9dd54ce969c051543e3b63935bf3db539a78cdafcd98618b718639c73c6186344c2dcb8397b72536eb6264173f9c379a6ea23fefc742cc2684ea37ddb34f91cb745ffe0c41d34678db9cadf498fb3b7e635cdb7fe79f6cdf9e6a7ebd4993e67378c7b9ea05fb471dad539bdd33d3eaf9d9d9d9d9d9d1d276266a1cc63272099c691e18062b25950b7fa66676767676767c70919191919a01d19de388777b8c7e7f50373b95c2e97cbb5b3b3b3b3b3b3e3449cc5599cc519e7ecb4269b05718b6f18875d2e97cbe572b9646c6767676767674716c42d7b7c5e3f30201973b95c2e97cb2563322663322663322663b2877e106d8137271c7785397287c53097cbe572b95c41aee75e312b6616ca3c76028a37be18c63086318c610c63587c318cf6aa29089e4eee61d8324c839be75e4556f42e8646fddaf1c423c51718ac5341e08c7af4d9d12a592deb950d8fe7a2cfd9bb09ab9e2022c778926fcede5c883b60007c2d441e46cedeb05e713d9de2b843a8b99e67873d77ecab9e87eaf65b0d3040cf372779b77d3424cff34e7a24cff6175bed261c86aac6f5f87ca8ceff6a7fc121006ecf44fdde46b2dd64e327d56e1261a48fea1345c0e7c24b6f2d441cb6ff3a512582a4f59ed5e92cc78d3617d5cd762cc2480fd5f89df45ac61deb94f4066275b3f6e69c73f2b75837e9d80e37378d33431757e028f6ed9386bd354fc3b99f5ee1e031e7ce56af7a67e2f40ac6a34f57af6ef0e81deb550e8fdeb25e851ebd67bde2e1d13ba8573b3c5e992df6f2363c2c2e1e3da657385cf3e8a75eddf0e8ce2af718e30e28df5cc61d52bef964550ddfec6582bbb2baa36ae3a8319d92da8bdfa8363c361c04cee2b1bec5bc56ef6c54cbe279a88afaeef3509506aaceb0a4d383409ec9047aa82ae3bb9287aa2b281eaaaad4b0222f3895e2a1aae93b9387aa293d3eaf1f1e23222b070aca4e8e1b3cef46c5435594195d270212c5443251a984831c4d01de8e898050b5f4a00c0fe766a767e4330341916809a7da6bd4f6e1d09b412f1055c1ef4ea4cf51452fd18f08d6a91387d3a92d886b71381a996ad4e029c00b76333c541d3d0e55e423c35bab3638dcb47276463d239f6d569ac5be0f87daaf96da3eb3f573a2e1a1eab7e2ed3754ce0553399c518f4fa7da79eca85bd04e37c977be77443ede26bd469d02e5a1aaf72c55a725478ddd5251b57b96aad3e22ed5f52a2d386ad78acd3c8f76353c540da12a4555ee6bb0b878bebd566d78745822485aafc33516dfbc86772c7ee3fb115fa66e54ed73d491ab53ed611de574aafd46b5f18013ad56abc5bae1394c32200ebb2e47dd82588776ad6eb34eb5b314e0dd66ef281c383aebb9549614bfedf3ed38aa28a853ed5e45320edb6f5451ac8a8062bd8a3cca893b6ca2d8b773084077a7d4c5857a6571179a2387163f9a1a953eaaceefaaa7d566bd68955936aa8ee6b6fa36eb95084804d43c624fe3dd4a1b5efc286561b1f1d16cd659ea8bb37c342fa91b9eba612b7dafd56dd4f8b6c68f9fb5acee06cb78638ebc56d76a64b5bc702a7543ead081c373a92c8eaaf1bb2e7e2ef6d6bc8ba350bed5bb81a0df9cd63b6f5ee47c03a25cb64b65715a6b38eaa3a981aa3b5a7c478b45326f583c2cde49af46a51f3f169b0355452fbf1e21971e2bf599a651d967d4dbb9befd546f28a35e5fa937e6efa6526f8ca95ed1ecdb53ea0d51ea1dd5eb60bd94542fd7faf6d156afa8c9b77bf58a9c7c7b579f98a27a4d7f45409c479f517e349c8ee6fce9dc384bb34838188b675656f4f88d621f6d20d16a18c9acd990c89a131259c334c717383f6950a2f1c69ca4d463ea99000961f00cd3e7a1c615656d88b2aa804eb6018c33ba8ee4813ee4afc0434307c0004d51506ef3b4c931c2b0e5d66c9653e2107d86b5982dd2de368e0b79d0d0301412893a1a230f1f1ca214a40991449df7bdbcd0443fa9010cd15289db4adaec12974a25094e4a3566cbf2cc92794a9f779aa46c8d9d432111d72ea6f3bc8feb057db0a7893c11897406f0c62e7e70b80577b4c89c148c302a80b7878fde799e9c11a6f3989979cee9fde43abd0f5c824f9e348d68684a2812858e6ecd8f21c700af177d1443ba351f238cb671f40b7da26ef6c772c4c919ae2e72d7915620a5162c994e0f8a1e0ef6446e383324cc9c7c90cc743a6d36e866a4537a92654b709a36209b2e31a404e5e6c9c290d5a04d9b4a624033d98f0f904fc80b8d4228a199ecc707c8473277cfb985b8a96d1bc7512a0a7d21100ca5844e2119a11baae862189c93ce4423b98b8fce71304abb510bbac9cc2c995932cb2337370864efa0ca4a9abbbbdb4632745d94520cb90690d7d053e34d3adb8052ca34ac01bc9452d12846185a82ae23c999ce5d8802227f888d09022f7dd9f302f0462026cf4824a144049cb8d1c9f3f098c821b5377ef1ec9ddc86689bc468084094528ef94b65422dca8174a259b16ddb36a715dddd564c59ebd9e70f5675d36d52ef3533d31ef290bdb23ac1612814aa457c1480436e16910e05874582b0aa9f524a435da3748a9cbd0bd22bc99a5108121c6e4e38c1210779620681c16011a60a397b017e84a24c13a71f32e547335d56393d073a3dca9e03c8aae638ceb72a39ce27c771939373cec96d9393b14792678fd6ac87e15f50b6344f0b73b6c44665a8d325647e74e0f39383255a8c60c9eff8a8051538dfa3070ed96594538b2167ef7ef44ab23a6e9b104138e41f4bb08afd89f93f9a52106c5025d303ab28a53e2b5764fa9032866a366abe7d34d5e350d32c8501f8c4fc0b7660af24cba3a2a747c54c13e14c21197b04c6b08a411004e32c54852eaec09077b36af24d9c027293648bacf8450b96660052bb61c1a7fc66d3f6583c9bc76f8821d2d99d79098e1837e366a42e485e908048b0d6730b17440a0337e3669c1352186400c1e5c68514e3669c13194070b9910104ce0bae0917e38038a42d971bda3a01c8c97000d11627c311d3b4c88989410378e3ebe6bebce732279691170306c9494ac440e1490e39244a0249a41a72b0f2ce1539601539a95ecec959a29dbe7ccb9b9c1b65f1b5d23a260719cd5eea356739ce2773fcc2e299d3678806f0d2ef9c2984a317736a73c7fbcb39cf3b39371c52c1320911c04b993265da39a2d02cb6386979d212f4cc1ea8a20a49bae2b91d8b676f528fb4ec812ab624323dfc808111c3aa6d234950daab39f528ccfeb60fabe22b0a4bfa270840bdc5e63754c29ba1af715825bf2439ac1a39149f93ac685459c621c79c8338eca0f86c9057e51772c6a10c8a31254bdaa77d56edc3dddbe61b18edc3213313c02b6f3c79c32a2aa48b55343bac42498fafc924cfecedd32b2562ece013f07a7f39f64d2ac7389449ef64d07f01f4976dd895e895bc61199bfc9575f64a9680de308a44d6682db202472905b8e04221ce43d44321ca51808b6deb4e43b756610c496600afcc4808608ce7d7a444a7d8edddc235809f7f4870c8af2850f1f1c9c7d7135adfb127bf1e3ce647a37d4ad8d8e779fc683aaf86fcab7cc35470c822f76aa7cdd377f5cabc0ccb9007abb4f77825339b3967ce2239b17834cdb59aefa4473203c8d3413140998f46b31e131e6bb48fe6c67b6e3ddf682f2d7b7fe3cc895a8453dc1a090164bf9199d9bb2535aa832ebe5c098b404828d9b92247e2709ca422ca969849b412d34a9f297d9ea54fa734242e4a52f157a2648edcb98243f6697afe68e4eb08e08db24b9148420956c9672a5ba2378fdbb4573e2a887ee9fdd25e140fd4cc6360fe908fa6ed0c875ca79c524a4df319a79cd15e275e1b327378761ea3184c27e411c04bb780c94e0812e73b92e7a17a5f3e34996b91df23df1d18a0fce963fa0c7773cd893af6a4a83951f85e9c2c4f4d4fa94fea9155380f7627b217a4fff2d465125c102ecf858ed8a9cd800b2ea650b5482fd2ab53dc05f0b6ccbe652623870423fdb84cf1ec5ccd935e97f47a66e23205cb56b927dcb01361d85d5aa4178989cf1b7054e1b52e8097b4f3a41d0ebba5ede5809cb03c91966f79e92e2f2d8d309f0f16d20d3b355e5a122cc2b06b2800493e1cb25f1d829e9d0423f9a85a4490b47a1cfa8bbcfbd2cf2f38a24eed0d025140424e725288faa5af753ec3db672ff89b67e3f692cdb43f27e38f66669626d8ee511adaec13f243a1a83df5f8f9a04e048831c618e3a94505f19bb54b70d85ef39a0567c415139c6a6f5fa257339d6a97360078f2ed37159d7cfbadef7e3a510aca52e490e90c87edb334adf7498e043013bd1ee531baaeeb4c1e6ca35050aed97a46d1c597abf504e914a701bcd26606de184382c66ddfbcdb6a900f80353fb78a0262af5452f31ca37af4732e9570c8ae840d873c6f9ebf2298a5b55ce08db12042906095dca28cd3a28298d2d6fc0ca380486f6f7b6b3ec6a79507879c06f0f2f87e1ea419a55a4bbaf8e7b59e6e2d055d54894e50fc76e4b7cd769c0740f9dd49af0920a594f6e945268e73caab90732e5f1fa2b6019246ce6e9c6f1cd73d46ccc78060c8bb9e5e24b2b79d7a472bd80150bee41996df9cf2bb7a1faa43dae7956fa23e79c539a531cfd5174eb166bd8d6e967218a37553d175d16fe7b705caf7e8a4af044b7ec6c7570960df69de5751403e1ff9c8de917f5ef3dd68e49c8f4695ff63ea5e6deff8ab3ee28f46f663fe7c7cce869f4ef937fe6cc8137d3dbe1a9ff253f75e7e3d6afc4ee47df5fa883f8489cd3fe7fcb34d7c349b8b3e1ace451f0d751f22efeced9cba7c424618ea45e6c708439dab433ae7bce7e5cbef220a17c0984518391f3ffea8b3a82036e79c73fad1704ef9934e443ef3c7cf0773a8c6f7eaadf910bf57e5181faa1749141f6a7d8826d4f9acf1bb4a44febc485ebaa8829b362906e8b38d12879a4f6e6220800b203e3033c5cc112e8040c205089a68356126034db89971820b0960a0091a78820b308908448c31c618bb79f6ecd9b3af29b20fba18638c31c618e5133a965272dc41d7dd8b438e4994524a29a59cd3b54dd35ee636a7895f9c46dbb4b96ddbb6ad01044fdc130cf0f2882fce932b00a5735f112156ec94b4d463e1509b736a939e3c11382713de34c94e21ca6d5a37bbebba8e65248d6ecdf3a5dcddddb23b8a46f748d75b84454fba18638c315aa0ebba686f6c220618bd8bd5e330f2f8e8cca3238d30d1a54c032131258f72e0c4e81e38e4c4006ff4e2a3cf6893e050f2a8fdebd1df5626c244cfe1c64f8b92f6bec8d869a01387d22d4a49278e64c2f450bd3d7cc8635c4dbf007889e237f5b2be9cf1529246a697ce79ec95c9c64ea1d8d8a9dbc36fde95aa7cef558cd1a3db1bf2eba5135849a34a39dcfcab1e879b7b15e470f3ae9a38dc5c546fcd8b5c6b5aef8cdf9ca5eca1e76c75b2e6434eeb353d05bbcfafe7f90579207924f9ed97d27ed5abd43def64eddcabd7ebce450e829d873ab0b39245f5d2274a23cfbf4e4af9a5d1e7795554e383f589911341d27ad03d567dde3949e49e77a18fa693528e6a8c305ff56a8c385c295fa435cba851df7cbefc7ad0506dae464d33b1787af6b7bdda95f876ea92ae38ae6e556a4048245d33598a814edaf53af1ed52457df390cfda691f4d68d210b51e8753ab2ca32d32235356b1cf1a2a7905244e49bfa6edd9b5e79eace2f901f089b98da4f6d14c4eca8e3bc452e9c4e22fddbdb09cb6a9b107d28ef36ee863e9a5dfd2c7192ffdce780979c4c89892f2451fcdfc64dbc8aa18a227b8a2e65b2e59a2c4f52445b4aef4083865a01cae5081062e2ad0c0b5c516f2e5dc1c0781f2356d8b59a24994458055b429c7711cc7c9980ac4147b14318c6886982536288057e2449c5e510a82a793e3bc382e28e7853383cd665f90cdda66e6c9ca00fb64b0d917727e46813383cd66b399f78528669dac9403f076305919609f0cf67ab92e3db1e5c5c5680c6396e22cb5bc6e1746490a013dc3aae87ddb21ec9ba380018caf157cf1db109bf392e79ceb95ff11117d3a6f16d51e593df0aca8f6f9252d80fe17dc3e66e10127c42c7ad083f822ed90189bdf1ab658a2795784ab1cc781af3953faf1f44af378c3b682551c054f4e70e85d7bf1e3accce1100a0e398e611c07fa0537eb0457a12003c815b150ac38d629cd6957f2ee9e52fc82f6966ce4b0b3310eb5bf1c23d94b9f4bb1177c0ec5ded3cb9d4e69ceb18c55b19f5e316c732cc00bd23002c8691efb905f9e495984d15ceef44afe744a73cd5e5ab29782f682e0cf49f36f07e0f4cbb308f49c4be7193be120567dae79b7da86559e6bde37ac1ab9e68dd38d6afb57dbb7d855da71d68382434df3191e2501457e69ab5792a5b9bc915474de858038ac89dcd75bf39cb4e150bbe916875a0ef7c40cd51b6a4eeb955dbcc6b52805c1d389b3dd7acd9d682858155ff327802f9a1dd224e94de18a152479d2c797eb051f51bac88ab375a2f747d3563a47db9a0ce0164bdad6b4a823246bba644d7b84c788c8e20092d884655bb109eb8820cc320d39c801ec77c084073e1f5f39f8e2a583264f59155f3c50f2a567ef48ed5d9b78f24cc4262f2db76d82086ebdb44db4450521dbc6266f9b884d5e36f959173bd9de35fe74ea3a37ce0a9d7815b293ae244bfa895721971e39e459593834712875369f75726a7a7f349af4fe7a70c719ee4a03229135cc44e8a490361c83e67a303735682f68e7507249e0bcd3c7c88aac927e5f2e8f1e38d52eab0c873e442fb33da1328631217a3abd740fc32e44c166cdca74aa725a8053c6aa1b67ff05ab6e0c7a277a35bd1d0a8f0b3f3f2fe8489d824e41a780468e0ac02ba251030c7007c4d9e9544b9bdda4f36622e23ac4ac4d9a11053d7e5cd7d97da0df669262efb6cdbb28254a6ce4f1f3367e91a86b3dbb2848347b76aae45b11018980508056ba601dd8b99a02301412752211e7f193ddf3128b97de499426285c959674e3d51150a75aa399ec5be124b8026390e340e7c0100d8568884234b46d73d421ba89b650a8c9b37728324ff61c7be4a178e1f1ebda4f779e7db472c5b3772b3ecd44e48508e8056e23b96d1e0d795d0518fa36bb22e547b3d205870c45cf879e842a131c6c0588c315180d18700b56603460404774ba9c060c3caf53008e7c86a318d463f7674488e5d9118c04e05d81a10081b509271ab57338310605456e7baeea90a424b99e475de0dc3cfb3792915a200a10b52318872c4c4440222f443114a05e919c7d04430122d9110c4502f08a4e5b57ee6945c941f92a4af579f6de793d3b0aecd963cf08c66404237d343aa218378f3a37ce12f90cc7b803ed2cca0e4b11c08b32823d8b8050be8f66b32840a3908f3e1a142f38642ee45c65a26728310e190588c31558846101784730a0671fc558755760cfb02e4640ace29c7de405ab2e139cb3afc0e20e91566ede043d7bf77d74f434722492c9e1a0a2d31c6c02d8c559327188921e933084d9b3a3a4edc13f3d268108b16f0f79b02abe70acf8e848448057b427be5000bb91498ccdc441c1ec6f84d94c9ef84a81093ece0a640a9c0a448a9c0a440a25aae8d14156451c1f3d3a0ec9837c913cb04726fc6529fd803754f9a84514aa7869afccc7d0df901fc8145670183f8b1e6ce14371d61ee83a525711639c72d3a28cdac6e27e3a9922c79730746739c518230e4069afd7557415336e48a6d309043d4aa547c1d97a09437796e81df3b6d90876d36c1b7b008c1ebb0af076108bfbcb93696a5a5701ca22e3008cf6769398e649df6441a404b94edbb82adbeb1380d2fb03c2fdcece47bf8d45732e7f7baec5f406c439b93c27fccd2fb7c35b17eb601dd016dc0ff73323730e0267693ea3a19f9c9d9ece85c5ebc0ded5e7398ee3e689eb397f36e3007c6256ed2f173493fd748a9d72b11e6e09a798f379025e520ee77305e75b0eab3625acea1d566dcdfd8055803bddce737739cf5c8c31c618638ced5cec947c9784c32fc8666fc7b81f8dc361d7f39d3b5e68a11cafe5774f386452d08f664938747515e0a57f3b978bf3b41a59a11a595ce57eda742e2c5c1cb22b0875d1ef388fabbd6953fed436c93537ba17f818617a5c70baf8721b274a58dca11461a64fe7c16bf5aa8675c18f37e675fd63f842a4c74e697c65ec279f7efa953030c24c376d0194b0e91268ba8c4def9b29653f65d04f6efde49b9f8cf3935d3f39e727fbfce4d74ffef9c93020d94f0efae9dd6928205bfb6651736a8da355a17bc26bfde6f1e5ced9b777c1de5663174900c2cdc724fcc027f631093e3adf3d7107698608d3de5a84a0c907e02312d0e0e43bcedb2a7f280d726e31e4ed32885bbdf2bcfde58c55ecd2d3e82724baa43ddfb75fdfde3d5487f3f821d1282122fffcb3473c2b631625e44867a5ccca1a560d6b863bed3b621a215921941091d31a96b7f9f6091139b547a88b6cec94947dfb95b3cf08c9e23c7e454856c89e3a357d86c34e4def668feca06f8f5ec342098947fa25a38c71b25ea136a71e59ed72d62bd46683883ce491d53d325425ad1cdf7c7ba90ba07ff7318b0e78e0a735b10b7cfecaa06fbfa19c459876d316c0eee9150a4c054d5aac8eacf67eb54f59af980d4b705aad562b0ad60f90c8091bc0d8a2c5ba1d6b59cf3aa815637fbb67a405149680d362dde9fabe33e7fb095d4081498b75e7ce771376f062ddd9e3f3f3ed77027d3bf705d1c918658f88c8311e054473d62ceaf42ca52d40ffdb3de0c72c3aa082d74a40a470c261fc97760edb5d00ce6a2a03c8af56ebb90bb01cb4e6eca30d245ccde411163a3ebe54f0f3a325e0f8f83a4114be2b82ccf1f1a58218bcf7f165021efc057dcea40c3025c6887ae972099b4fc984138b0a722468e2f1f1a582333cf8f1658219fc057df24ca4448233e4daa6692faca273e2e0205603d0eb220920c8640d38e0f9eb63c041ce5fd07b808311fcf52f80dec7170ea2f80b7ac8ce79fac9c38697adc821758fdeab49edc9042e017c7156cdf9821e7f197d7cf19481270c7f3d86d344d0c55eb147a79207f943089290c3fa01278b19ab638f2b4a081ff1c1e6c5625bc3ea2277c7d0e8d6e0400523b45848584ee074aa4277b3ec9b9beee64905cfdb3617962c5f72374f22984cddcd1d86a75357a1bbbbbbbb793a77b3bc024bdebab58d35d9dddddd2fddfcc2967bc6599c6926939461186551c6c138d86cd6b18e9d4e2f2f55b8b9d17ae841d380888991dabc993772462691c915a413e9e40a2d5b3e11e68cd3355d11280231b7b6fd9c45b61ed289b8cc28b4ec8d8bf4cb1ed289c8313429a920935d210c6362a6262b7d13ff80a483a4cee65d8bf4d374108b479bb6887c7905cf939be4298017d4bc33f10f4864583cd2d9411dee6964583c5bfbfcb6a8205a93b20a52fe8812e8227b5f7bfc2a1120da48c7debd79bbd4ba393f9ae64fb35302fde814fb4f90e9db83b85cae76cf3baffe400199be391428209bcfcd4a1b2b5b4248d7c72e7b2416d287552367974b58c5bd98c81fb9c591903d225bac621f55e9239930cd36b59095d44a1b8905874ba4e9bf7aa515cf118852103c9ddcc3302686fe6095e7ec42046195fc1eafc7ebf1ba598881091e2c0b3178e16f7bf13c6933d04d8c55977718c6aa988518963c3b77c1aab88513feb217cf5cfce526bcc3aaf862c115ac922378f66e4a669ed327f5aed3ca245553c221d350e9db6bdc217ef7ac53ce61d87eddc74b10a26f1b824800b72779fc689ee896aef894f6477379a72f2d797b4f972e915f8675121808eb55645116e8f1e3598461ef9c1e35012f6fc1ce5bd020a6454d8f8fe2d44a170fc02b5dec2875c691d35288763746d36ae7602535cfdab5daf957675b1a8632f115d32eb2211b8067bfbc922e4e314af3c8434cc481bd2df5f62f809beb704e5dfb82103db5ee2fbce26c642dc43cb756c1d216a0ff07b8f8b657ee3cb35ce93a71c87e9a69d3fea09b1e5f2e2ae7a564e24e264ccf795567736a86219f73ae79ccc47f4eaffccfe3f70d69ff2ccbe7afbd73a2c8730fe15c3e13cfe43edfce9b173f203139ea0d8f29c2618c16c0f61b3e8f1cf586c7c8e722a2dfc04133f26e547b07a0fc06238c1744e7239ff5c8741cdec51ec0f892c1cdc7079d468d20b048ffc8de9a1f79c982258f1f8d4e0ef776f12ea28801c6970c5c3f7217efdad3e611c091b7388a778b4ba7496892110cbc29b2ede30edb374aaf74782a65c6a17432026dce00de58903405a8c353507ce42e2e2ec156af8e48960e8b6af1c8d2e13a2ad829e92526a03fe963165244e16dd4000374f1167f79217d3f8658f191cff04b953fbf2046ee6251418cdcc55dec90154b471e676984726971930dab4c1ca25c6c0f7e97919b707a65d3aaf8caf9913fe3a59b6e4c2e53925594c22cbe6400f4d253825c5a461588144a5cacba602b09ab62135ebafc68804c61454b82ad0f89d0532ebf23449eb2d3a753327ef6a084e0f094a7ec91d9d329e938bc86d53c003980c3c3b9d3524b61451d71e38647567f3dfa372e40ea7ab9922de962557c95e08b974e93b02a3e4dc2e18866040190c5e571015eeada3e9a91e3a891d5dfe2339c8455232b9dba585572e99dcb17a58a1ab9fc91e7a8a891a539acd20cc014179b22e350fa04028862238723d98c30231b39747be77b386a648d2287a0bdde7bae0516623fe3a31658987dd073fe790c64dfde8d8a3a22fa117a2487b742ce811c1e8b88ac90779af701e19cfd468dae7d4544cfe137ea05e48f3cc547a451c94b5eb2773ee81d38c31e87a0530e41975fc947357e6455c9820e5aefa60a5006dd893039bd92aceab60a1074fe8a08b1e84ea7a48faa7c9ad3abc8920ed6ea3645465de0055bd773b546557efc7cccf75c11a608a0e77a49da99fd7402c829b294598a13ef73cda5cb8f08ce3f1b390c87606f1bf309a18e3a223a0ec76139303d7a64cd3447568e1a59b65e2aa35eeaf3d24973e7a5d77aa98d7a414e67f38e93a6daceb50767f2192ec25ee8d95b84dfe46d43223e22a49b9cab139cb3abc8545c3a17e1577193153aba08adb8d105151c4a2a7698b64851c1aabb05abd8aed8ec30e930fdb0eaeaa43cbc61d5d5c981c3aaab73c3f90787b75d69a9c0587575a6b35db94991fd70e9295f0071e9293303b8f4142741b8f494a017979ef2c4864b37b5ac4b37d954976e72b1ea06c07db8745312565d00788f1c565d1a5f712961d52d80af24e150ee20e00a237a8ac022888f2f7171e9a6578b4b37314171e92620565d9613c0a59bbc60d59df177e9a618102eddd4e407976e9211e1d24d5f1cc0a59b6643b8749313215cba29a8e4d24d4fc016c966e462d5edc17d48c2aabb83f390330025322e5d65875577c5a5ab5cc1aa2bc3a5abf4b0ea9e5cba0a16acba335cba8a0fab6e0dff5cbaca12565d16f75cbaca8b5517a5c2845597860a10abaeca572e5dc50b56dd1c5c0797ae1263d5c5c1635cba4a13565d18bfc1a5afe0f4eac86409c0a5abc8546afc2e7e2af6d6bc8adbfaf2006fa99e84936a8901def5ab463824dc860374d8f002e870f7a1c3fed0014447c986bd3fdceaf0a1a3002d0ed0e1f5013676b8f7d8414363007baddb08a2d2ecd841e3363cd6de1edc0fa7b146a80f7b69a80e1f3ddceab0f6be78d561abdbf0fcb0574787fbd841a3c30bb083a6006ec3d3c35eeb0678b1b77a106ec301ee2d3b76b4bcecb0b1e3c586dbf0b8bd3a3bbcc5013b1ce0a3c78bffb0e140dca501e10fd7c509608dd0d0860701a11161c943177b11e02de10f46941a103a4a122e296bc37309e06f8dd05b7220806871972028ef405823209802c26d785aec2580a358235c0b4a110e84354211602f10340c42006f095b5aec7547095b50dc86a7087b75420f920222f41fac1110881f5abc08b717c583b84b03de5e02b811a99293ac119a7a92a75c52f603363c6ec343007b7552fe0d28a59cd40002bc3b025cdc08076bdfb0363c57c895711fac117ac387d277007b1b24f97043c6de0478c91a016fc81c005c00e9868f1800e6b0363c9788cb03f561087b490e5a239e10231f78b0d7071f000f6ec343b257084e880fc01aa109b07700f4c6104238e90689646fc94737ec076c784823b7e11162afce0d1fc21a010760afcb5823e00064dc8647087b493e44c9de910be1e00288f003e4f081e638c0e7a51c608e12e8363c44d8ab93c30fb0001f72380f0bf08107b7e1f9ec2d3911f6827e00f778cc1bac114a85acbc9e5f1fb1b246c0a900219f35c2bdbd9ff774ae46b8d741c2c3616d786e02ae0e1e638dd0558c378379a583bd2b8fb146401c3ab4bd27ee089f316f7005582374ce3879cf6e9ecd6ec37384bd3ad36370dc307d068e981bdc86e7646ffb897d867bd608f73a3c642480be0e8e15c52164c565e0b057867bd688f7f603363c9fe7363c09b05707870be1b1b257e7c659385c076b04fc0fd8f0ac74701b9e157b3f5f9161afe7327ca611604411418838c01042046100203f7cd400788f0a00a7a93878012a8c13a0b2bece4896001c888a83ff5061dc87da030f75076609c007507170990ae3abaad2a1e670a45902b0363c01b02b381c4a00d8152b38941e5371b03a3cfc860ac3c3aeb83a257d47c5e13aeaf454c5e1619d9ea3e2b02bad4e49bf51a75db9e994f4975ac36d5416b715e5b5d270af35dca5b2784b45394aa5e1a55ac3c1cae2a48af251a5e15fad615566cc62559ca0ac4a100dabf28443e92a55f433ea56852896e0e44f9563c28d1576f0326aaf208a1f32fc4add4490c5ac0bffea917d7cbd8a4b15ab22638faf37d5f8312995c8c83fcfde9af7bceb95edf90c7fd507ffe8f3b65cafcbc9b4bf9bfbf66e22503c77bd4a847bce7984a34a448ef1edd922fc1ce7449a731519ab545c2a4e5482549efc4aebaed894fcaedc3c8adf152a5eaee0bc741a359e80dcfa980286184af76aca186228fd33c34b1fa5e1a593c278e9600a1b5e7a298a978e52630cafe90329b208237d86516afc528d0fd6f8a41a7f54a317bf04051070f197f6bcbc348786ad7328bda6cc3a255d646ae11c91ac14591797f0ca024e8b15aacda2751b410e2b7e34415264a525807e53642fa308c35f90e6bca44a38259de670289d55da424ee9631621e0792e8101f4bf29b2d1c72ca2f0e2d9de94a097293254ce0b1259b321a1353490748df43e045dd300941eb92eb26420289d5219a9a43d1dad6d737773b76f9123478e1ddbef89fa052f6df790bd9452dbb6c108231d5c02c8595b02bab9a04caf4a31d5b2bef44ec11e2c4141060481ecdbfe957999b8437cf9310b2954f02c787d7ce5e0c9113ebe56f0e4756438ec618643e95eb3643e01ec5b87b465e2ca484f42269e33a8e44bd675510f33a6d00c08460000007315003028140e0ac7a3b1248f036d1f14800e7f9a4c6a4a1ac7635116c3300a840c22c400030020000001323443430502809e240e7b273028cb9cfa7abafa8f94f3785a5f7f5f9ae4c797ba2f0a9ee60a11d611b88f3e380b77fa10ca33e5b894251a2eb17a3c88259c1adae6e7be465a458356b07cf87ec2535617daf6b7610201ff417363c0430d1f8a9dc8314f167feefa4bb8151f98804770a3b5012f4735bbefe1909f351f981a7aca3aa99a0c471daca85813d10a2702048d4dd2bb7d3b67e9daa4b65c3c651237bbdb19746fe966fde74ea7dc13766e9d6deeaa61aac924e3518324cbccabc37b230a35c1e98b912a63f89e2ce401f842ec44f958bb25e1a9c4ea394f81102312a6d7efeba2c288066c269e9dca8c58764a3b5535cc259d404fbbe5422a3a885f0102d360141f9b7030a79d2f1f7950d9ccf08015d6cccc02876ec8f18c26a814480566cfa5d90646e43d2f1f54f8243d2f9aee120034b0cb68c84d126750f84e801c2fb79562c031cd6009429a8f731a27c1b1b9d6f9f8b66d330205a252c488cca63e20e3885d84f7eb5c765e332358a0e4b237e93aee2505fe8a5c6c702c604c1f66ac02eab6f614d1da101d71cb98a25ac075e27410ae7959b0b6ec15bf59793188b1ea47eaa8747f8a9774083a04c6c6d0ed25d75e4039ffb110fab2f1f0ea80398104958d9ff57bbee2a01a830245a47f1bdc877a3f8f6bc9fa799f9c461688ee06ff133f33154976181e4175358147691997bec5c9630aba5954866a19e20f1124bac80f681a7ca7bd6d5e77a4c2ecd97e3eb7e6e3f72b0c9089c42390a4a9eb0c78c9eb23c2b42ecd2901d610c0acc0fa0b3f3c4cc02952760fb27a972d28609820348bd6ad7c797ebeed80237a255894e5af12e8d7529b8b4de731fa2ada1d89f9588aa68e5e22075e4ef7c1d3e113d31ecfcabab4a7f68198780f51b3801665125f5b14badce6336f84dd798ef4c14de5e1598ab35f8b09d03b519c5b7a2ab92baa0912053623ea139a714be31341956ecbf25535e83272ba138d5722e205eb28e9a5ae1c83e1275a31d35038c9b4c3b59cdf5480641a10bf11991f9059064cf7817c7ebd68d541d53e1e1fd60be2731910be8644dc47228a16947e330e7e6e9e0993d0e64436421fcb6d1773f614e8c7dd61693e32e818eea52e81bb1c38aadfc0605b5a2e29db75098bbce0f616ff1f0eff01c6762e894facefd7d58860bfd10bdad0eda62b80fd9260091489403c9f076c65d95c896efec9257afc9cc280a3f09a247c33fb99c46f70e5343c160b5f9ed4c41094bb5f0700351294b20a6331e61c23586bb6c6d810f8fc58255c5cc06e6ec2f260c5f418c3e63c9ea94a838e7316e23a5640ec898cbc2718bbe8b9b29b01afbb8af625763b0a3a8f5b0e783e8383507ec38b8c94d7fff2c50a7bad38d3011de1b5ee0454e164ae1184d257325e57b424082935ae0ef05845329f749c5e97d62c69aaa854c96affa5810d8f3f8cc640400a1bb2a7315e72233f490753dc523495ab60e7a26114fb087c63b45d69acaee1b08ba77c8d73199f037509c966a87c975c5f628c5e6acda9c5e488df01f44428108f738c3063f2910434537d3061d139af069d6770cf98b860626a53ea3a267f35a6aada4ba60b3d4e488b4c569b9ec77c03d8ac1afd38e29b731e780408eeb2e9d7771053e71e5534a06d944f261e291c64a7818b69c35fab0a8fff76a6a43a542adbf1780ab4df2e75cb67fe2b4fa28f2ac19aa259b42f93ccc665f663bf244d356ece7b0afc64921285188fe156459b65cc70c9eb565aa47d674864a6214ca41f0903efda5ce8ff2ac08d7b03c245b98d57d80913552433767388c0b090a0a64853919c06680df1cf0ad8a97956536549bed835791015801f7a6bd42a20eabfd73e721332faa617a5c732ff3b6231f3462351483c1e04e51a783d8ed7399686cba38fb4a91d21f093ae439f75ef99caa58afbc8061791376e2005b8418b6d5eaaca8ecbe2b5f5bd0fb1d1fed9c1a57e63cc2c72a03c67174d43a9860d18438f1a600c30705bf93882097fe66ced31b0d01c6133dfb52d6b4203dfa7c86d11acd54c2b80079ce99ba637de86f528cf691b5487a3e8538be9b1e0d569ffb601928a6609a16e55fe7fa918553e483cdcd6bdcb8756d53ecb35ffcc03620cab5fdfe8dd44446fd387329bb355967edfd058e0147687b755a130c461745be0d32b2a0c7a114a040947a621e18767b9bd5c6981b4a15332ed5a572594201dd962f21df160da67c2005ba51296c003430214e51cc2091a7672d976c9ffcbdfa67302cd2ea098887338c4628eaf4bd35a8633fab1d930dffc3a9957b5432f91213f778f3b8b98c7c7a59cb71e10bad2717ef5a05a18820012c7f35338cbf16e3b86bc89be8df7b93460e0b9e123189607f91214ef670aa6f9cdae21cf44d313dc9eb369fa111d7dd6b1777e7ae8dbcf36400a151b66b415ba5d12972a560e35c93c664a24eecf63bbb5f4fb7d73000c5cd3c344854c2441a8724a7777be5e1cb62d7e1cd495b8f63fff6e4882252827c697c937024d8c20a4c5100f6ea2e0933258e112349621cfae133ecdbdf5cbd406493cacb4d28ac1a6805f949f7694c88608b4e10de64fe69c3c99a323c26a4afac079df3e15066d950dbbc0ab961bb35048dbe1c7474e3b3fdf286c815202f5a34526215cf1cca73d572f5c3a810ed0409796f0d68295b893da01ae464f7757adf22a89d641eb5a18d0cad4ceec072f64b6b07d60d99e4ecfe61edf6b942fda110f7434f5e8a24081f1ad24c4bb43019e75a73ec70fb983c2ee787ae0e847316728d4d0fb1fade96a6778daa3311fea7ec84a4d265841ff1cf393742a578b0c6a8175edfb833a5136da1d32070071eda7302611b6e1e318b5b5ac5a6fa5233fc155e71bbdaefd73007a6e6ae5546c489db6f86488c8b33f7220ef218d68878c0339e4b6c092a904221938a0212c10bf821b559fb5e7bd7867e2d2cd19cef70e44ff3c6c072b16dc20100fab1019c48bacd007e0b81f5757acec2c1882759a5459bdc1f7a2e0a58974229d67ea4cd5b891deb660b43e192647e9ea3b700a5af5f1a218c4fe6c36214c8a947249480219c98dfcb5361200f4dfa8684a09e911195cd7cdf0eb190ca228ff4395e060185d707ef066909be04ad8e09cceed1f5c067338902f187d46eb7f3ec48f2fc81317912f62846e0ed3c6e13a6e696dad8b11a23c84e8057b9c669f3ea607f493a3f2b8f99649bc1ddbbb3faca517fcf293d66061ea88d8430d62ebf4716d6e5c524f7da675abf9f659fc67cbb52125e1fc41a8057e9ae460de41c895c7ab2e5f34e608c89cc2c6ef1fe23eba42a5ef9ff0bf51340d89fcc7e5174d7ac6629e9ba98727b9d090525ad8ea5dbe04c7ea255e21ec7121bcf5f92d678345b40fd1fcbf8992a14a0325ff2d7ead00b660dbd9921204d6c353e108ec8f3d6187cc8e4a07a0a7e784284777f4a34e363d0c77ad694e6064b4368503630d130aa917d56db09408f54cfa8b442898a04490a979a8d9e849bc444a4af289e6f7d3f91b958fca8b22a5f5dadd4f537973a08e101e9925135cd03561cee159f0c40cb0880ef0aea12678e62df434751e4838630d5a4735af0624417edd7ed0e2e4ba81371e77393252e9952c7c06830ee722f9bea2b87603723000dea28d0e02bd4d9d30611621e43971fd274f8ddef6f39916a9adcf277d9a3e725dc6f2280c6a74130c5fc4804616e5d78ea55abf0294fe76570cbadb890d4327dd72624ce3e21559dba363e2b72c6ba414ac3c66dba807152216b41bf4e8a07a19ab57dd6e0b62f5e9b9d9381a33e14ea797c10e04939f219b7341b2937c9732759e00ea220bacebb588fb49c2214d0c9b6e0b52ba300cc05364d131911f48d0ff35613d8384bb57ea8c98db50a4dcb1f43a1a6364725ef284bbc2aab752564c3a3ca9cd47c91ad8de805cfc3dbae548766f94a9adf8e9cb52256c6a2ce0492bbc79ecf229735668843b58ba5d28f1719b65f55f7a48eb48501fe959af661ee79b842a2c62849bc6c5c6dd0eceb0d5c9b7d9bf8e311d1614e489ce7d30745d6e06dcc4d6f64f7e0580b3ecdbf5f7bf0f28a61b5f08441917ff20b0e9c16a14a20b007ff2d7783a0eb8ffe54a1ceaac6c94dbc50d742db975a2c7dc51eef145dc4950b3f7504cbbd0f19f8fdbca4e0d818fcdd21d3e74a60dd643b86bd96a694a73b2d713062941fc4d1496934f0f83ee1ec1ef840e780b300b96e250466ac817ed2d77ab8aa6aa9c7a4f995dd4d44014a25c719db18db3439e052a5d03d70eecd11a47effafa138df44263eef0cbfde85f582dfdd6f70f152bac1286f7f55f8cccf61cf72cb123fa47af751f9a32d2c0db429e68dbe4342f40f46b0ca8c342228e44d213c3753bf7ca1c8031604c7d528456b3b06dd14f54ea31e5c0a26d7814db647ad12a0f3c4cba34e563cffd7fb3d882a7ea906cdf754e745a3a7959600ff5afa9b734f27d83842eca678ad1ec622ccdea8823c3f3176b8efb7115a05e93f0ad50fb7bbdc2e14895624dd18aaa35a7982ba641340a46115a234cfc353c2f3ab336c6dbb235179d2795823391c08c81616f4c1562273cdcc3953e44d68a3ac44324b9713975a9d9666018db023b767327221a197b372351a24effd980b2f79843c50ae1aa0a8973b25d54452f0b5e32d2c4d255be2e0826ed19e6935fd1a5f86b5873543097bf1a29f4d57cc30b8d8fc7dbf267a0ea907015b2de5e74da2d229729db0a126756aa208e4aea62a10c6002f7cb3d7ea953f9be3e910181139440cf6efa64bc77d83ef51da0956b0fa8d6a78ca2d1a881ae2ef19a1ddfa1daa0e0df668541cd1a610e1abaeefb716a6c41a5e91d1ef766b87db8d5c984873f21a4a2e3ffa1e70dc202d20c6e057413f53e0e3b165a6e8feaaa5d5959e90e19533512710b8ad009060237fdfe9ac1d18833c6433fcd360c4defd6216e0488da0d6ab156fd23c411eaba2a67c67daa8e61a82dfefc82eb6666112106d5ffc12ac5947ce14afea363a3dd18587b0fd5ad4f0864d038248e836ff29ec94eb42d1145aba7642f76effff1be747288c3bf95325e68c0d8db37e235012f0594144fed435d481c6e6071c585c515c2b7c52eafc6617b1c311d0e7e712907e0a6123b5add121b6bef703510ffc581af6cf215b6cf17e6312bed4ea02c502d4098e382062fb1e76ab251fea322a831835bca9360252b327a2d74b92ca0ce5b9e361e7b5b94f188a6c8c0db6343b938abe5ebc2393a56cde099717257df680af80bda3a3c137026753674766a877961d68df95dac7ff740e1b0e8c04d974be7a3b6bc26ba89c2e82ef09e16c943e505eaabc79f41787dae76b89e39fe537b18a2544108d30269339c5634cc1552b23bbfb9b305d2e840621c48924aff6cd9596a3f9967b038f4adbb4f56098986f5ee3c29798c1221c3d785ac70188b3469da04a8433aa4c7cde3a917406fd3fae23ada1a48f54656f79b39272e9739aedfb458deded0df9262375d4d4bd2ca67de5d0605cd3ba88ffd93dbf61acd05b80c2630fbb080770cb2f129dd642e9a0dcfe8a38d547b879454120296ca3d12c61ec35581988846555f2b083092cc13a85ced8bda97f6bcb1b7616011da6778619ae78ee017fb0c92b3a701a33043667a8e24d78e152325d1cc50141819436286990b197292fce22a26fa396c0828c486c154ed1cda8e9ae76b525161d05e0c8a00f92bb87d822e38d2b8e638966aa6288bf478cc802e84d1c0279c3284c6e2a33d93a8b5dfe980d1b17dda7bc8182d1afe2524c7736a28fedac880d3e2a8672d5e98818fdfe2dd2bbc8bcf994050363f6f2c146fb6286c408e3c7090c3d513eb82d687b8f244342ea1b1c72eb41562125eb46f73df31d05e88c8229b38743c801665012cca49255865c14aa39a95a4146e48aceac6453064e6dfd03f04cb075dd6822194c68336bea0400c1d7178157d5851ec45b2f17470978d022ff3f7a05e2e476bf494a79928509f286a1cae8876a8e454b92cae3564232877597626300cd44083a4e39b8ee40a3f388c2123f3e0db90f81f4dc16cd1d6463229b0e1cab1e10dea415a74e9d85e4c27edc97c6978eea14e94d413cf18646d82d19f878fa2578e4a83f562315e5295ed549d5cd21b4103a24b291f6d8943bff8752025c53baaf59bef097a794e50d07b8314993f8d3c8a394ff6ff45bcfdaa3855390ec23fa29a4351621a57b2936e411d0bd25ca9a137e1fcc8dbcd782f015bfa12daed274287ac03614ff1d7f2625e21c2a13b2229b2b17ef07a7ac77373999a8c66702ab970e927d7827f23569319de6813b7ce4f281ce6230b78758d8f40b1798c16b81b08b0cab9bc428b9db4e0f7ce05b4448cfda0f86ea49fcbbc64683e617115bd2a77b138e597a3a3c2112da629dea33e01577c731d4565292e9531f27afa3cd5f34ee87bde77a8d395b251f828688ba4bfee7a278ca47a3b1fa1bb0801c4edcea6cfddf3ebdb54f7f86ee04c769c3ee5a1af821220775aa1d710567eb8f5eb9bc859428be2adf4d3b15e33878db4af91a3352f1ab3deb99afcec144bd581a7421accb999e2e07a7db1d58075683b4e9c6a1df076d4a37ab5504be94a0aeb9befbc5c28506cabf43088ddcf6fe345df9b40666ad3f9d371b701e4a067160501ade5fb513119c29d91cea6233cda84a00e64419d8422f00e9ada659d2a3ca0012028a0b1da824eaf56cb4208d769a93fc346136ff6dc3515dc39f1a96be2fb81fc51c139d49f45455b0387e77c4df82c9aa60526bcab18f23209b163015d577364ce19dccc1adda7692c67f62296af3815432995fa87eae8297acba443292cec3b6693e580b5b757e3f9b905d4394183dcee753d5f33ea83128fdac645a9b5550a2412e163d88d04b326ebe7ac61d0e01a94d1bf7b5a1d0cd418cf7554031c8dbc874eca983d83735c5472c99ac4b4ce4350e6d31023666504cc97b908cf8d852ebc339b16dcc5faffdd2d1b021c4733e6a9c80f75d7f2b09990337101d522d2322da98b4686d59887d60b052ca1e01bd76ee881730fa8b012a1c239b74d71ebb8bec23225ebe3fd3adfe6f09b6f7366653003ea06fe0ab671622d4713990efc481912382a0f8c080dfa73b28b82b9b2545b8fce8ac4185c51321ebd0401a9588e6649d0b190e1601480fd6471c4b4c2e17850f72b9e81de177c2fb9058ae4c0d13f59c22c5666b485c703810e07a2b90e05b3224ee286f59bfe59fc8016a1434dda2aae7f11b364083c127c73d71f85b52fdcbf76f59796eadb974a67e81219f101c0cd734009baa7a8bbbeb39897c37648eca284f063890afa16bb556d97afe0b9f5e2b995fd2767a936a27220192684821976434a4bffc4d1cb87fbe57239a0e82579c565824f06e753233a990b2e216258af209262059a978196f54a3bcaf375b13f0455af40e410a096b020f032046cd22be7ca88337d2845e2da2389dcba5f093c8e45b5e5f54c2aa08c4766080416576d6516dc19ed8cbf4694b1905414f4a249e754530d13e96239b1716169118139b4ac9372372b17321442b7f3e007ebe031742c0d71603171e1f19f92368b1490a41addea0e659fac700a8d9d06bc8b384d576cbf1e6439e179e23ba2b45646b42181647bc455f878a66ba255a26cbc09b68680928c1ac6b6ed50e55c3a47a240efc690aa5a18b30cd5b265500a5b405095a75d626cbc742813f2d2bd9efc5f7d44c13bc4168772333d92acac92ba6e6a14c994838d5b4c01840751de368b344037c7c654a9a2b5c603028b5004f9376695ae9df52355432759bf17b7e90c478578ab33745d587dbfa7d960e234235dacc518511be34ec5a087afbde203b8da3a9d5dfcc03e3c8bc18bf36e97d182e0dd53aa1e72ae908f6ccdc3ce8f760e34a98dfb585ebffb211cf7c8ccdb3566f120caac6007e1d753cf3e0e3ae1bf11c5393997e62e9a84598363ed991a89a28c3b0709167c4b3e8395112b174d8e74cb3c7a5b7b5976791ffbb064ae1f4f68a27a30d5144f03af3fa5b41e14b080fe2090448d1c287f4d3d12f00224741df08135cdfa1e54409fb2f6bc7073dede047201bc66ac74368298a350adb1d922dfa76a0a908325a4c48c2942e838a875b55ba589cdf56a712fd2ffcf90e2ad92689dcd82bab0644db5c8e32b2350957732a37debd1431686a0789f5d3c29661c10bfc40a6ec2272787eb389b1818669b678f0cb4afa1ac610ffcb8010cc0f2b64b5f5de43aeaef0205d450e02b4bdd94cc47c6477f981d8556cfe77e12b8987572ff8fa4d698d297300231ae02a34cdd374c8d001d93db26791cedc04780540527f81b439e4491a983c6071692e7a915efa82d3175d7cb904ae4c80b3701a56ef469aaf144c33441d6b00dd61325513bb468e47d3fdf1f79718420f2850c04c0a7a8485d955e6121e57da7b5b8c9b705535309c00ce9fd0aa8a4239183e1f473b765a2b51646124863cc5a393e41b39bd6e261f66ed238c3a8adc5bbcf567fd42abe68396008ca25caf4281e7eb528910bc1292e8718722177566290cb728b5297f219486e00ae25c223d070379b1cbc31735a72a175f1040416a2e5a69537d86d1364b30b42dbe45aa2ada5804c6ff891b9a406d2ef5a622deeaa719f0e2ff1590953a4c9b246372de2d82f007e458d9c4dd1454b7f0a7bbe87bd08414f73fc20a3fa3afe71dada26bf54512093d3fa45c8a660020a8be8ae57236756c20e2bd9638ae22017dc6cc236d423e40758ccd85f87105e6e68f17fc8ee137005ca53eec5e62d1888a5d1e03ecf52c72f6128a1393ea257e816026d9eab7b8822979e6e4d3ca7d603659a90617610a974ed219bb8c071524b7187999d52ba129afb43bcf0afb5d7704001c0888d510981d8a1ac1420ae88159486c549573f956965442cb53f56612cf721f2e2e6969295400287b686832b81be48df362b3d691f0083a0255b4674b7cad2ab2e34d312d6d3322fb66e45f7275630cf85b6230e1475026331aa24118ef0877a4b5c48ca051ca6aa0df3c21f673e513d273a22cf139764db390a67969062d9ffbdea4c898010e1d84a18fbe20375a28fb086b1f90f69377741ecfb50d4cdcd2f292ba596fe5c5c113ba0e46dd4d854efa804c07e42b002e730b8486ebea45da9e4f5f4fc527afcf05cfa928ed21cf121d63076c921bd191776ec7b881037aed4a954b37beab1c32360ad18bbe2e1c11a6b000bb9590b20b6057738cfcd5eb0588204a3f4fc1d831cb550d4064b2ddfb150ee8ce95459fa3361050407008e5b3176ac43380b3754acdd8da8d8c4f474d864647367242ac13ce57724ab33bd822dffdc7607008152fddc28d405cef33ca9986df47421e3269d3a8f44a96c594df2182393c2c21c2a7a13ec388977a0e8195d39070f07afd812079f957865e361c9abb7fcee4680db27ebc2da76f7bf785a5d4b6ee17718db3e8ed6a3001edc00ab36bd96e27f1f34ce3bc21e6fa83cf4f543f2ca9519a918477a47c0cead2e6c6feb0ceeb412ba1bb32328cafe3a49becb488401c5fa6e7edc7873276948737904403f2f602dbaa8c8b847cb29cbf92e8ca105b83de761d4b5cda24cc79b89b050f7d6758cebbdb26d2050abee65872c1c44c34b81c28a7e246db610936670df3deebe3b3eb522c78f940b6eeb16d3f6bc968cc2bb0451634e901c2943ebc3163c67a81002b3d838d310e5ba881ed830afcefccf909f77825736d7a124614a7ddc0353990b88f1583aa58f2cbde201aca960e1ca1c9b8ddde932cc5bc5d051c38e5861b876ea7338343e02650e1b604b8ceee67420db0efb3ebd2daa5d916880160e577ef46df0957c66708e92de6f92bf720dbf9d0f24dee86c784cf52d829827d2fe5788e17335c9634dc5d3296bb810747b10430a6a5841d868d627662902af3cba5b85090bd0308e5708e82de033ce1b06819bda6228526ed24827cc8fb61c5b1026588ce4923ccb739906ab80cafe527c4935afe14a1398c54938c350478ea7bf41e10fb65e7549b5c2d7d58cf616dd3c7794ae103457ad3921b3edae534faf54c5fd9e6d68ddf0f3e4b41b221a8af34d08924fe3833ce88974795a2fd801d369b9db7b7ad53a2f8370ed11ce787acee7c43025faadff46c721d22836fc53a6e1d3b70cd20a30bf2a07f696ca1d798bab37bae6dd94b137d5332bf06a8e186447ba56e03987ab91b7f1750dbd911e099a4a69b42282f6d01cdbee7bd97ace855f37cb7c04eb2328421369ba2bae7936b6b72bcf5014d35ad97705f008e3bde60626f207197bf7573501c2124a451d225c8c6b077b81c5eb82076c2ae7967ad752c3d177d42d388b3d31607d86e82473ad1d78cee801a50873080652cb6bde701d7652b0a19e69809181ee6d05a41522805a843dfd3812318b1e9d5bae0369ecbec7515882f2e42043cd333d3f46aef3e4c85b4ae63ba797c891388c7bb2420b1c0200801c8a451cb06d97a3f5da7bd1fb7642da1e52805757dd168f2f588e36e20abde34e1e9fcb466895405933a73620626528d7c331da979dc7afe18af33eff5843c7afbfd0442ec3d0e5da81384de5df609f4bdf659c7f66e29646d5f148376a17d3925b55fc00f632f3184f966786848c01f38cb6e1c02fb3a9825c6c6fe171cfa031ecf3e656072da1b4680fd626fa937870c8d35138b56e6532e279f20c7abc4807f33d34a26443ccc8d9e37cb8bbd79fd599229dc5b2e450ddd45229fb408e99c2ec7aa598e53733b7bb42d281d40dfab01d20961db416cee17b9d0fa4a97bc8ec17d2e5800bcc7752c8ae8a6ef3539188a007bb6515f24946e1d2f1016489194f534e0355a0cc6f490882fdcb896c2cdaa2b719220c814406527ae1bb4af44bb98745cd0b5982ff28bb36bb5a103f873002990fa2540e922249670dc3f4a89f46dd397c62f20e2509887292095dd9324908ddc50245f3e777994d501c603f47abfda16be925a2fe4c9db91100560722bb5a9b9303befb010b72c0cc6189d7160f8abd578d508011d6c0ae87a3d19d7f13541f3e50037159bf5c8286604edf6f442ea096ec0168eb253eaf5410b39c30a2e04bb8dd4144a10762046821569055fb539f4208d0feef2192659f1734abd03277892ae29455a87cc921a836e15188e1fb8713dd24e12568449929ccb4b8608d09b3c7f6e8b1c73e1d05e59efe19c082c84d760235fd4131084cbe1f04ee4053769a0f972dfe3718e4d8464d97277a4c441b21a6a0cc502980d54cde0c204071417d4b16ebba638fa048662e4e08bd6d9c40bec96f184df22388571c28b51124839b63d9f0c949ff6c3fed24c4edb5555ccbed5af1c8aecc1952b30261df1560988de8b62ef2e217de28ea80a712b597a66b022aa12688c58f6d4769455b10ae6df45e82e9edbd034c4ddff5001df88df4a9d210b30c6ff9fc5f38dd5dd4c9c98281f069829825806344f2ac8b22325eb313405491a3d39009defd89e9c6c974f46d4f9c687fcc0c10470005e972d266604aba4c13b8dacd46bfce08c5662f5b0324e502e700addaa36fb237f4765832211ab8ff3adc3a4b4d00bcb0fad674870c4453c643a88e9969fae768124061ac95c2f81f647a7e50f7b249ff621d240153bf9bd40dceb873c62df9a35d32af42e254414a9b3a332f3408e8c811f620805b8c8265df26f000558ff1c8c52b51f1dd1b7ec194a3fbb8d4a3476802bff922677957446926381e7151da44185e4d374a3d7c910515a07fb573a3a8f9a42efce8a29ed22bf6d735bd5b7452b075edd79ab4524514944999ea9d6a027a3cee93c050e51eaa2a06c20c4adc83da7f11e416478aeeeb1bc4e22ea795b81ce195a982dcf4329a5a0026857ecbcbe3b65b008b2d3a341681b61d145729bd23c22f330f091a46a0b380c72468de105c13d7e6daea26090340c8c78f838ca4d154a2d02dc1471974f36e3d18d98a1333d059ddc60d6d86ac8b300f7c4e16bccab86c6560bf1c04142e1949b80c7243dc60cd68fbadb110548fc81ac943abc4befb33314e6f66f52cce6709b86b68157c66d9f4a28d4ae3e4b08bedf9e3625d3ca683386b71f263d5fe0a26b07d518795518028e84c107cff0156780de7245af19ee30bcca1e34cd34c5d5fde9b9a2c443e59b24bf9b543c3e9390f1b05a47288dd1a8beadab6c53fcc95de41736f3910fdba79080dc76c779de824738b40e88c0a8515f6e3493b544d4526a2451fe47b3f6f8543848185696918f6a372f97d0c4cea59360d41a84ad7c92680793e35bec91ae630d57d7a62128bdc79c82844535cc6ad370f3dba3332d3c5ec388204399faa4fdde3c41efdc4f30f09502206a7d4736959841bd68dc71fd4baf97e6b3b2d0602c0f78c58bb4f69f7273eff8fa59868c174d84f71204f186e4530aad987ebc5327b60bffe9ec1de5565f505d230d6caddc213962100fd2060616a712dac98215bd3aac9c2c449c49af7e44454ad24081b3c5879375aed6da3635ff5ac6def1088b75144732ed7a3037f3176e0f466eedf032e80dfcebe5a8e4f46213f0055b126141f1cd4c1009b9cfd9016a7171d0e74fdbdc8747463bfa4031d5dae58ec79ca46c81199dfe66b40d7a644d6d539d51e00d10d1e2a4b971a354321e09a27dcae6d3b2842448bb1a1711dc0c835b4fd6e613d370e13bc424340d9e24179a08b0cf68a682f9fa3b581bb7a15dc245a3b34291231752182fbdeeaf0ad701b5964612437b483291b8e5031ae8a7139ee1e9fd95ea02b5016b185c5930cc14fb59a6557f3d9656b87841a9c73d2631e41bbd626e98b474d7c05bf6cb2bbb8d947bb3c7d0a52e2433f24d5cf8cb4c1c25c291031630fb7d24cf9f67ea31619d7bb6ece7128151c8ea8dfe20532cde6bc7b94609dc15a6c6b14f438cbccf54048bd6bfd43adc4711066f2b12eefe784e67e74e04f412891660db4e4f360fbe2c49c037f166e74fc8a6b591277c7ecd498fdc3ce5628ba49899c440d74bb215abd00f6c990b05ee4f66895e350329876195cd02abd3072ecca6abc21ff45e4d1d7de028774edc2d51a1058185a88810f5f510f03b67a62268d03b0129d2231896ecd5f7be7f2c141cea791b0669035ff18098d1a824323f2af55336fd88dfae17afaad8fc62cd392b2a35d13f74c0f0c3bd413ede5f563a350c8d2ebac46d9ce49e8639c4fcc70ffc90734b9bc251489959ed79b6be7bb4318700612e34d4d88c7148ca13a1ae03db2f90736be5c922a05c622c27d67f9b6f55c1f91cc56932a36b740a8781ed3466c6179db00e1d5890edba24898d06a3c8d5653b395b924a8dad5b95195938cd2d84e5e27fa6674d44c71414b53931f12797c4090d90bb50b11fc6370d985988e0c476a135f9420c5d912f9137e4eeb3893794e3482684ceb560d3e372caa872231ef913d1291b8f6416a956a2bd10ea9c424c5b89e471183f5f8a9622db77643de0dd76599497e83fa8995841e455775d8e82bade94975f89d91040b206d420a0c9cec19359bb6f8b42b9fc39989278ae3d7e776e0deb6ee6c02919909a4ed89da247308cc15884ccfadb0698b1cde69a521025106363c97bd2523f9f05739982eb0957d5e75e8aca63897a54637666ed9631ec5854cbe97655f2b033c28dc6c76a2cd1ed651ade8118b271ecaf34896a1ef3222c344a06c0425c8d52dd20edb8344be1620ddea44beb80a39e66a6203fbd1d6bca57f503fd98dff73322a2078832fe09163803cd1410b1485f60ea3bae971f7f7001b0614aa7f90f838f619a382abaf7c0822da6857e2efb4ee4459ee2b71998f88821e1739a5e2960c8cfeead96ca798531089181c8061a47179090b23d1bccd40dfa7abda93d09281c9306a297e292ab0795a5ab069d1bd246769c1590c032c768da33028e009fe37895f443445e076b2c4e83472a3eda0a431245ad1115c397aa9e826651531a1066fc64e0fe7e80d2494913a7b7e1af0745ebae39c77e30e217b3481cb4e0f80d88f44b1b64870a1bbb920484b56375fd2d58a42016a5c3f26d6bac4939456c0945224b9663115f8a9bda32d189b5d0004325c85647155e9f8369686300d6fe49388e9d901e94608959232c6607842b82aaba4183ac9b1fad93876d2219c2a293f9658835eb7134e8483cdea2b6f64ac7e047439a10c2919e32ee37a00dd8152c4a9bb38d8a93b3afa6802b1debd8c1db9e8e646c1e6c225e53f99d9b3d904aca0ade3376fd9fb4ed7e8b716356ddb8f0906e3d7832033a41b07a895c2f49e18e5086f8c3caff827281a920850f2d130d967df6b11ca699b83f3b4a794718d1b4812b60f670a36ad084c675a19715205c6d9e4534e08a1bb529946afe6332db92c1c2da84cb46f0b148f27c24ad7355df3004eb080ab245484bd63288b4f45194954b390d21364065818988638b0387e40711775c62052b8158d55cc04e40f783bd901159356dce33c03776baeef32d84d44e0191a6d0de1f27694bb70498694bf83fab9cafafd570342026c09574fda25d4e14a38d3de76ed27f794677c44d89378b2063e56a5f94c49d080e0a880e50a5df8b56753d9740194c8d86bd98c6731300ad0d441d08407aea4d39d541d8a6c2acc2442427a8b481f1eb7d8f62f3022b1cc5b5ca82f385161d32cd192984dcd2ddb460003c0272c1c3a1a3ad2d7a1bf0d279f6198d21a8ce889d0778867b56e0749369abf441344e1d81f59be1a88ff6610a757deed061e524fb6720b90eac453de73abb525c9ecb1cadd4f1dacfcb097e6654a56c1624b48e51b5bbd5221e1080795ab84b6e248d7f1e3013b2793f7138d479bd49e9916d388354d1838dd7e2aba8e6576483d1f6df894bb62db5afe3525a9b6722b01dd1a2963995245046b1df8f4ee0297d051a4ee9361d7a4f139154a92aef26cc0f149e38bc366c64e743e733f3b5028fecdd72299a92e74bfc341f17a2e955365657b4ab4d658441dd55f84fda0ad73f4a913c37e5461014038ebabe42230f5a4b576f6579458db46ba4e90d422a8966aec45b15a86bed4a1286a1eb4f0aa22dd354d097ddf8e477188ddff4537efa28b842872b279b987aa7658f1b007d570ab1359e2503dda199158148c50340764e020385e55448b35ae0f662b4bc86acd10c1fdaf13ee952d5594080c1cd73d3e94b9eb848f6772ae0fb8446431865832727ff775c6dce9014bf79ac8074fcea82768bc5be04473e828a91c31ecaa9b2e81278f7a09247a80117b63e4004689b4d526e7be17f5d244b7923a4f8f3f713a850f7d6d3fb7904d5996c0560713c5ce58a65f76410481e5008a3b4013149864ba2967bae630b88610c5c6f4c891e5089dd7f73b2a58e7316706c5696938eba65871b07f1285248076d5d9c3cb512fb7fe49c785b9cf5118a7077580cfcc671468488c03cb68900f784a746910072022d67617b1dc3b8964851beb6dc2530c80747b7ba4f6a80ad5977abe350b193c8f7177cc0a40b0198b27b8d86a996eeab8edb8040a3b58252ff156bc826800fc6ab0224f1c81440895efed5148944c07c945aca865e7f3a80340883878758830ae7d72b59327defe294278616c4b919b88c5e7eeebd8bd6d0509affd48b83985fbe0265be456557197daca1e1d2a3fe0a033afa1d018c850b522d8067123ae9c5d083b5a0ac469ef687fc249544e24d748ab508daff3f074a30827bb694820af853f0816d76473f730733bf088070782f99d46dd938ca897290ad7e35078277208d2a44fdc686451293bc8d5d606784d954780eb44a0d02a86cf979583db73dc08ac3117587ec40c5d9c6ff51a092137070e826b480a7a1a3363857812496dc94387038a22e90e98f70e0c3878c0b007023cda36e2cf03bb9707aa4ed71b08c66006ebb1e40971903080ff90943ea8bdddc1c7001d5c7dd72fc3dc922c19b94943c80c8344ca00aefca14a6d327b0cb16ab903867bbf3ae67eb952304013c72f12c57d035dc5fd653206b9e40540b5c4b718345310d40c696ca1b023b3cdcdec6149257cee1e116865e0e7aef98492e8a6e82b6b22c28ed0a98541e18512a5a0a8500c454a4d7d760841e66fcc54145180c3aafa08f2e912b809c2b80d2d263d004419f8f1fad5e038bfb05ea1323f2146abc037e8adfe133bb1d06261302ee68599317bc83d30fd0b7612208f5c798ca94f00b0e0136951c1505a34f2aae5be9fb687de715575206c03366ccad3c67cda76fd64c4ef4b554897b10c98906dfb54c05d8d706d4dfd50a6bb11a88787510ead40d2d46eb7aa131425c02719366f0b3e0ea72ea0117892bb38e891aa7cef30902d09bfdbdcb8315dc7cac6f53319dc2c709f86f27846a12860d2f7ef20e9f747209066819ce2616848334556f60a59b98aa0212073ae8cef17087e5a4574548fea56900ac470f6f6584462b7c6288167f55e75378702d7323dc0098a1acebc0289fe3b636bf40a5589749445e2111e9231d850eda0bb3fedad31baefd4a5be0a52caefd4b926edfad88e7756d91c9d17fcdc3febd09df8938aa85c7aa73f297b9a8776ca5c6bec93f991626aee9ebe227db78c8972254b807094bb7b80423843dbaf7edc81301cc14400943da6d148da4148260d4a941b1196632e2b0d738837a9dbe8af36e13f8434464b3b625a926183339eb0fb10b8fc3187d03ec48cb48dc63112984fa9d6a8df2d7bd7c2a4914abb2aa9625f311f8e92a5427d0eb4392875e420bdf4f9f6f355a2b53a8acdec346d67948e906dc9c759bee3a6056806629b1df60d4c1b95be30489b66d2a201fa1696a5c4169c71c63193f26da6278340d928d380d739ae9f37509e3e5c087c411b64f0327fe4be62ce0f9d6323086f31e19513d6374494f8fd136b015ded1a69a59264b8b1845c723fbf0783122b40127ac3e148ecadc06de4aa6d391cced588cb60a3db1b872372f99c6da06d98a94d05676ffaacad59814264b96297f876695b085316da1137fa40bdaf37acd846d7945ec6e667ad67cf5921269fb89d1493aa9ec9f1c66584a908a03b7000bab0028026817119842b7dcd70d8ed32f02106001b7e1880b6c1c1007c51fabbddb270dd3a79fb97657597ae1e6a500bdc5ec4c8ad39589f27d343915bc238ca11c8f69e369c8e9f92d0941cd64a977c6ff38f307deacb4991cf17947c8b55193698c1f1a199dc22e186bb91d2d25c9459a03ea621bd1d31c6950161b023c32cd3bd11f8235e1463f2702fc0e00bcdbdb361c6845dfb8f6e89c991226e41d12aeecd86a60fb971d9fc57b4c5a5415257cfb677e0d47ace3f12458aa44f3d1871c936489658625044dc375d86f98c0f08dbcb7d275f52c75c16a00ef19e4560c339d4e64fb74bf6ff8e92a60cb52c7421eec975368f1a3a3abfd40b00333133e5048b89c403cd780f265f816731ebdec1c959c484fc79bac37cc58f28d07328d351407fae051d765113edaf60d147bd9a8a1a9f43e662a17427a4ffcd3fdc942c8a324472bea4c3cfd3e6b8af7085d14b56902d9e9c0bfc8baf0b0d7877fad178fe2828e85a7ce5c7005aaf4433e8c27cff05675d5ed56c431bdcf64736b35760fdeffd176eeeedf9708ce1932ea88b3eb3df486605f5da3a37d40341a716531a75b98b8c15da97bf729024c8beae373a58bdcb2f0ff66c202ef5a85e8e1d548130c79a00d9e4e1b5b823cf181c6b55fcb94b569be477ff57c69f36f5c45dcdd121104c12c320fb863cbccc178eb2fcf9e7de88a588d819f143fc899b003f07ad06316728649024d6fb2d20982fac8eae314209301898bade65b5f64263241df98f34e40a26c8b4de1ec4a4215a03a92ce49a44708880fa0d7165fe1ca47100ee52ba009d992182c1ede62a3a22881e6620495700015bdf1d3a3f911844a7239a280241b441c52df96b89d9aa850889b4235a97dff5fb1ff38e41146979f4cce975e1d48a71f8bfd004cee8599d39195e4ebcc2df8a3ba1f0a9ed019f6a6e9c7b20bee73e70655f43164f012d13f452f7c6c819a4010d36bfb8711e241c05baeee036405881a54be8bbf019f0f65cbf05845cc6ad07d7f71168247bad56c3d2162dcf88f01ba269d4ff8dbd560966e7a2282df5742544b79d0c9155326f163ca89afec3f6e86b18f55ad48a02e2e8e54fe8c90e8c7806a7f614ee3a4e73fa3a37f7f1d7a3798b5df46cb869e85399c43c7d763dded14e130ea1672e8fc02e0f71408b0533fa7c4ea81cd417bd46124b8e7a91d0478d431bf950db6804313ab1be18395d218f7af332e243fa8ab3315b6f86afa6f101bfa4843d9749eecc1597ea7db800e639d7d90aa6456081ca45eab1509040c1fcaf195d89f33b949d40c3f265bf3ce3cf7d957a4dd208a798f63c5759ff744d766d9c69122682f8c07e45d3c2c728dc1401c2933cad3a69fc0e75e56044102e3e098b4691a995637e4344a10c4cb7a1663161da2861395b4cfcf2e36d4ede5030ec36ba703da8201bd93f067a1180eff2574f6afb306d1755db964807886a34c25e5b48fe0e5fcd744963c0b66bccf479d7e965e4fceb2553e4aa05cd6d26d3017733ad6e766508ad313ed1981e45330fa0b3b70a8f70b31ddb6deb15719f860c6f4c90653eb4eee8f8065b73bdc70e10e14e60fe462c214ac85af9f60e900ad70e10a89a2ca1b9438c5ecbfaeca0898e7e8ce5c581dda9ff9cf6bcc5de8f11b4f9f27249a874adf6cdbf5d687e77a01d0038fc7274322cf90469a91316f0dcaf0b9e19540c060bf6a96ffd6127ba4c7440f2d4e32581070360fb4ea5a3d4cb0066d2ca31b7112f18fd32111a5b0ab600fc171fc0a3bf8e048a9a865d61e67a8ce1167d182472b9ef99424f6b0ad007747a1cae5d94bd8f44758a6ebb3046272621b2f9ae894adf0ed458d09af395c58c9730f428000897fcba520bd50ae2bd6f341cd5e32ebf7a0e21818e419d96bf3de2c1261406c246678b7d43bd6d6a8235cca04ec61c98d68b21c4b6852765d2a6852c17d8963c0d49c32318a518644463bed048a491584cf46a6faa21267ae150122bda7fa070f3587f4158e5714017c1151883b7186278385a5a76c48042ecffdcb2361c454ed163adb55183b52c8ccb4cc23fe05a067d6de73d5e8863038dc72a62be3e46a00f14ffda0881cb2e93685bb80b9744a3894b242551664a5e9cd31153502f3b8439a73134c8de46f1c36c2ed5a6754c0d875f4f15c72d38da812f9a528fbd0a16a94dbe214f147e87edf9b3aa94afb840d011f47fb2444c60e675f91096fc00d7021bffffe3f66985dde6d247e288afdb2c989343a8e4f8e126be960f30dd4606a8f80d50c44a10afc91d8c25bdb06f60af4f991eac698f67aedae0b043c11ade3f02431de9f9c801b8775fde41f28b39634d8bb9572543ee45c9d3fa722f2788fb9cc64e6db5d19904e723afa51e6cd7db2f86bcd303738bd08cbccc55f0926b4365406519c8619aaeff0294b68d52d748482c72fe6c5ecc2d2de8b390536b00477701535b97326a721966ee047b2c119c319936d4f145e2a21b13b6ac84813b9693026caf8bf277f856a8aa0d23d187cd65864a5020089ad8340ae1f152420c1782269798b675ef9bc8863da0208d6cb6e8ad5d08aab56806839ae2d57828b794d2d925a001ac4b11af02e4c45ecc552a8f6e5888083fd87a0f35747f2dbbfdf8690ec2186b3ef3354ee9312908e2ac9a65a6cfaa60f37de3f9c0915c94a0e7e3cb15438454592433f049218937c3cfa1598bf633c01472a373b96ce2977c8e7e9389161b7680549e41003782ddfb856c9962f66fad75797cf340f263fc0d8226eec440f2b2f46a68c964503fa038060887273e2b5964c4c867e59ea1ecec2ad4c912a7578ec6b3cce5eebd3bb15e8b9f991e36d4551c2417c70dd85f48c4c124a60ffe10f6a70887fee289b21073f88821837ad4116262e002c609407092cd79725628897924528e90709961cd01eb81d77773d6d5c06704f88ed2eea5ee6960f667993e7498e42f4c61c51545d663f7eb36e283f5e02ab0fc6871f4cff867a10ac5994fe7814d5035805f3ae4b61f0520a125fcf55c76834a8cc3c106f668cb0b9f6e13ace8871f249e819220588461a60748d6ffde284d015c874843771710446738f370644e16691c5a275581d949b25dde575fa33dffdab7d84f2066991b1f340abf3ccb5cdff848e799b15d2ddd32ff11962e94019dce5d5354b6052ba34fc8e458f9ad8539b6636dab8859ff32988537a46c1f8494fc17224647da507716a6a28d33e2054c9313da42e06208e2ff0aedf37fd103bfe20d6a188f9a42521e094e784be0b97695f9155992029ab7c3f666a2bf66cbc1e7d67a0dfd2538dec3b254378b333a03f384e3bc1eb167e7774cb81a0356c93e664587079eb2df28716e64acb412703e0d8abc6b7fdb535efc3875243f0a5fca2dc8172c728c18956c368c15af5c9a6f549717310706cb5b86111d3125bfe524425d0df92e4649436ce8610553f3ac871c38492df453c8cd9209e3073f50081e288201811f8424a3e5af625124e82587bcdf17a2f0c8a80185e882a572a1a6371a54c822f02e7e8dd4bf31ca132ac067d050ee59f93a139c1e848ab0cfbd4a9f4bc2cd861e52f9dd01bfc5b9114a5fac22f8b320f207b230de0b83f53e07b87ef67e96b0fb129b85a26231e83d85b0d6d341bf798b1a12a1d7bda88f555062f4fa5f9865140518d5c7ce606fd4b1b7fd3c186c03815a7adc436b00df54724750d40246c558863ec5ef91eaa53175343f74e27b212744f1f7091af063c76b367d6dd52349b3155559cceffc506c51ae888a59e7383e4505eadc8c287b8a90b709e26318f23e08f28e4f8f0c1035a48f91e98b724aed6679e6372c54c226f6abfcd6e9971b0ed1f3d309bea5f311545fee3bfe09d59cc395427b02ade9cbc6a213acd6beb2bc94b3cd36dbec33b638390c8a07ba11002585afcf13b55d8de881b3fe86882c5a288f086b062605cfa3c308987c139e567bf26a492c4851ffc93bd7e9044454dc42ee92d853e23633f9de2974f7443ec4f240ac1b90ef8c0b3ce0fe7f6b01b7e5db662ecb8b413dcfd4715b08c2ada7f8db45f885e3306868fe489ff26ebea1b79cf158f8c2c2d2ce36d3d9b398e14ccadb9032083a7f68e3872d465991b57311ddb631fab97ec7a77bf564d1729bda6d347efb460d159b206d2f3c9924de228955179ea36fbf4283c3a7edb8b458bd8532bee74a5c4665b94297840dbae25ceb1e4e1420fb4b263db4cec0e11f213bb2af13a3d53ca31a8a2372d4c668f782d3177beb289cfd2e3b6ee39d5ee6861ca9fc6cd97730449a8a2abe09e9fe8227476f6d2d4cd53dde3c83cca6c264f1846b7208b76cdea7bf6f42cd416a87ef61cff1b43493b199f7c0c04e19026e3cfc889972b2e58252fab0d5ae78f35c4715982cd614ea4cbf80baca4c6f16a86607ec12ee2e509b92339db3ac69d76ccdbb9502284ad5855f0c40c60ea4b1708daa53ab2dce1350a181a234b04081d40b5bfa060dcafdc45a2e550e33cdbff3799fc0ee35c8a89ccda0ea134832a18ab427a34d93cc431f93e7337d255597d7d710e1cba6630231a081a543403e5c73a300776fcca85ddf4a55be2b5a920a9425956cf04828349847a15fa8a12b7f78795e6b921eae9fca00242af27060bdf1456f7d383abaad85e4cb0db80ae206427d6f88e0263cad27b9805a304cbc925b020a0fed33f341df0fcfb3ee59106006f74dc164a9f80df78012dc6f0c34a3a932e5d7ca9833e86652195e202cd65ced84076729588be0dbe43a55cf77eb4054aeeb09701dce436e0e682ba95545460c1903245ec1cfd321efaca98e8cc5f27cd7ca34c9f781a48f6378452a5cb17e3c4f4191ac329a4199c1d67519ea255d7f5aff5141ca3aca8d280c399fd30ff751823c6f44763646c4200c1e083b091da7a67e9c514566eb02c0772ad402c7ad0c7f49c4b697be890bb20a241264ebabd300dfb340d89d7a8a84945b4568b6c2fe5f21d61f5df95a69316436f670fecde4093484db9bd90e5e85cbf9a02d4512a92afffeb7cce1c1ea22a8f256e87c5c06c218d166c0c30d06af34aecece1ab08e43e754b3de2932b1c595b3e3549072bd8f7e4bb249490c4d033f3bf19eb130feda39b44882ab31996a77a6776ddf645b6af2409d5340b8331b060917d622564cf17a0d7444c913f2d434a03987578b62ea9dd38e7ac20d79491a3fa726077b3a70f330a9d76005982db370cb27b818a8f21cc5968f5cfc1b2714b3b2fe71730478475d55c1e7c128d191d060058e5e24ed2873261f8cdc4c03ee88de299c5027c66784470f30f44d50f021f86170dfa7207057f55b57113e1a4bf09056fcfd866b6f67d39cf6e18f3d5ef4ed1cbe890477b91bea9c7775221b130cca2df48c0d394d7762272660df433e656875fe927be677167fbe82bac7220f747c7c24beef07b02f93ea411302e448c176f407e65dc4a40ec334891f9b3cb96b16ae61bb0a64d52b359ed546712081f5f9c9c3c9f06e11405b40da9380ebc900511184c38f280fb10b57035eb7c4bc07598013b805a4d13661c14c5c5a801c06557876a89596d5ff588c57b7ef230d8b58196a27f881d8b28418e7a5a61455f39b75b9896c5066ddef82856155b9fddfe1e5ebb156129fcb4df838cade301d73115e068aeac04bb63254ff2e8367e0ca160654f02a2a6477060ad15f6bc87b1d9823a97d103302317b2e8997f147c633a337c3d4ca2e9509ead0f097709890a2df0ea9e2de2eb5012e989e7fe700bdeaab96320df63542ea39e959e0c8921461adf5be8d8b9899459086b90ca6215574994de68247723022f84d887e51038f2a79635140b35393f5e40b2b20d21efebc5e9c7e2563c595cc599829202e95ab9f3ee469d51f9cf120461ba28dca06227b217248b043c00af3a5f9d8cfdf2c07b546fe1e4cd8589b939b39ce6e40a84ec5d0ae09e4e9ce0262f8bed37e26d33cd39d1c04bcdd8922cf970b62bf0578013b9e69f6e7aa8290dee2702d27a267f932e53076c68eda3e0f2051d88b9b1f755b0bec88cbc6bd0c334fa8a387d54792e5b02b0dc8ec577be888423ea456609fbccd4e35908efa7114f33625404715768906012ee8a79a0f8be89c1c490409663df32cf6e94b11c06831f5140eb7a010990d1951df883800b97224fe01afaaf1d00f4cb090e9788a75061d3bd017488ec70f289c7c087a57e8c0410d154095df2bb4e302e879a04b9872acf3877e01b3ce5368fb9c4390d91662655a5f1193ae066c6a4a3e4adb7f83760da01f821dbca6059a091833eba2eb17454816813eb1344bc41ccbf48fbb8e857d5ca9be2dba03078bb585a1805d04349ba746dd8c7cffdacc658dbf305f60cd18fe75c0d92d650242b0bd08b45f97f9ccbd46f00cad29b5bf7866035080e2bf500b716a2f994e6e4a2e5714e055b12c20011f0e9fbd0bf6470346b3046c1fe605b0eb90254675c9b0b08fcd08b6b0a9aa5a0239aded990c10b924e61b49eadd55ff50e0d4d421175d31dc88a52479d3ab603e5dadbc3ab9b109c73bc4f6b2de2e6ff8de606c2015ab205434ca091b46bd6c0456d573595185091b6bd1ebe44f19eb373d4ae54e127547365c70030a208dbd1c615509a7405ae3364c7abcc90aaeb9e1a6f5e7a1655164d529d6190a17f55b8ee198ec3ac03b9d6aa149fc88a527aad1e1859067eb125eb1087988b0bfe4d7826072be941f28fb7f46836bafdca0b1051026cdc972d0cb6a70e7279f04cf97ac5bfaf19f541341cddaeb73c6dafeb6812032a5ae3d87bbb4613ff18e5f65ed6c0bfcd9429d4208202d8f49e0a6370cfc295071e4b37d2767cc21e89207838c9b9d8497090cbec1507c8468dc14dcacbfb70a1e607c03c952d45735784b64e54eccf8e8662702446f3122d43ad075e81a61d2cd022045f9868efcb87e1341a8cade330311eb6178f65b0cd7595813e102101722b0270b2a29348c7e0bbbb0ef3cbf5caa03ba547d0aece59e12ebf2fa7c7ee56d83daa261382d1a4d2945dfba625e139ac139873c15acc64c3bbf18c47a5c2440238c09f3c7f41c605d84276e8f5b5e12ca7d891c552264a3498cdd7ae6119431ca4cec134427d11983dc2871bee8dcf42b8e6a99aeb9893bc639cd672d50f77b74d17ccbff26d075a9721bd5096430b25bb3242dc350d6fefb8b50e52660d1c78dd37193df208c9bf6861e6355dcb4482cfce8c144dce4dd70d3feeba794ee300537991eb8a9a84377ba7b8cdea6af972c95f2367de775ee77fb5392a109b7497486dba67b5fbdb46d6ac55d34bffaba2de85da04e41db546e66519d62b669dd44a9060aa491ba714583fd1963e35e89770e2a0d8866e0f515788c0511dbb45765a42bf035eee258d1fe66fc216b09af4deb75ae4d57851ef5c4370d61b8888e05426b537b4d606d5a0f84d5a6eb6da4dab4243666cb66d8fde23a885e68e23a52ef38c2ed503dc5d141969cab51fc87c462cac9e14d29a77674267e6bcd1bdaf28c3a3453eba71a822d6e8a48f61d8c5ce1163868e47753a6e5ce293ec40f89beba0df20c3f6d784254ba02d9ba0dba8813d616bd6ffc54a1b6d800386e3609f0d6911140a825ec6f9441bc8c1babcf1a59080cb2b23afa8f1e81fc2673170c0adf6fc2612ba943500c46ee72ca27bc489862f0132bab73c8b68ca80743659860f78fd9f08241c6df41b4ddd93980b4c845816e2a1143c18d2eb6c5e800b41084c3b693fa6770a5686e24883bb095d9f0617ae32be09560da1666f6705f4ea8d8f75c3d577ecf0b6de79464546d4a61f4548260c0fc3551fc748b6cf570016c34032a80c27b5a405616a50305f48768813b4ef3aa5156a5e2337c1358f2cc9112ce77c0a385543b3d16d3859678af08deb7da49b063ba00d341a4201f197aa8d3184e66b900f8f08d6faefabaa2a5fb4e5549d78a5648237b932df796292599028e078f07d507de9dc6921fe4f875d6d11f140ae5839220c6f8752567fcbab62e5ff0c4afbb904af02b860a06673c945fd592172816bffd0328aac5ef3621bb9f7949fc017e5d65d455e6c4e5821f14ec60e502221c99b2a3c40e3e4ce951e207233b0052220546a6e0b89060b021744f8a8d695008e193a140c2bcaa8450423645024005531c61f2854ce15575c4069a12497a551df1d1150a85ea013b12f418e62e18e68e6d1df6ba21e0ac8c22893952676574083b2bd3bdb349d2a05028222928a282a7646594497c2c0d272ba33fa5868214ace063bc2cb8bdaa54101479a07952cabfd72853a8c4bc5c15e3d7b51744a63153433d7496956c23bc52f3449f9d8487de3a7826202c03675f81a88730d56b3c747d683c549f5dc6436fe8edc5f3e6d912cdebd8d43d3f69fa67f390acc7c190ab67da16f22cb43d15c6bdd754ab85b61a3e412ddbde498553f770f7740fef63169aeda04b17483db5cfe699347a6a1e36fde059f53603cb40bfde75595a5031440a2b2da668e3e10b52f2b383329416543821ffb21e50cd96a6eacf4387618041f35ffc54283eba06dda10f1d48efccc0a676e83fd8e42c031dae1ec22f2447cb67f73cf497182fef9e2d5d8145d6a438d881de606c49552df879a840541ebace0e7ae82d05f66a761b0f1ff478599b8f1f9494a04307b225e841b6a43a80005b3490ec1aead5003af490ded0934c632211a2bfb749924b8e9ca3279130ddf1fe5d3ee3d3f8e366cb322443b7599a8b9b3a30f76bc3b8a9fd25c486b79943106d5b6239dc366665b65fae93d6695c553423ddf17cc55c64cb2f9021b7d96ce4bd8d4830a30ddb4422d7168d448e8ddc666311462e8a1247caed18a60839aaf2ec41b644da5c0a191df31e5bca9c1d862d859c3d7b3954be5de4d9d34623d10dcf443d90a21746a3d93fe2a6740888bc25c03490dae2abb5f88a7c406fb95220ba09b9a50249cab45ff6df67bda9e2c87abbe28f462397ba437f34f238dae40b234e6ed7deba43f307b48f5cb4d1d03ef2ac31bfe12af281790b372517c4e545dc6c0fc17b91b38c3691b728c3b415853c0be95b66d1382e6ed8d6f1a59d1d3edc5e9afb4162997dd71eedd9529b60581976d95c0f34a43fcb87fd3ce181ce1be0f589193cd6e5364bb22411a48fe668801edd664541843c74b67a62cfec96f74603bb10237c39660e3914070f799ed85b1e12424ed2878490df2b7ade304ce450e442e622e7cd5168f1494201859193b6b4bf6e03b3ee353d60588f614daf879f18d5af773ab6b48ec2a845453e1e8fc7e3797b7c3c5473ddd248fbd1c87b4b2c3e1a8db6a52247ae236f5972c3dff622fdb93e6f2f9273e1f1d09ffdfad847cb7b1268e13ec0725772a4edd466473dc816dd2cb9e14ff480961b2e9d657b69f1f72d0eb3ddbeb4b428211d0ac90ebd451060ff003fe109cfa26d723b7ecc12b75b1c48c8cd88f5cbd1fe36ebe5688f8ac3726ddb6610eda35bda58bf80712f0f7881aea717e8fd90f7e9f0206449828960229a208299e023a867cfd459565207cf74ad58a6674b16d01a68accaf8ede167fcb7bbcb127bb8053aaf8057558e95cf9ed649545230f9e584ecc3268c6c1789203da6b6c3d9cec876cc440819773828e47afb8c3a114912c8f1e5b3e31c9484fe68e8f8bab2ddcbd981443fe66ce96d171b8aa3b3181275d860b2a5795d893b5b9ab1c8b37344623d1ef3fdf6cbf17c39ebe57841521e71968b38db3d1e91c9cbc11e75b65b6e429c98b27cc6d4b3db6cd461f278e8b3f6789b4282687f79666d4ba25fd1a39135a5b60463929561cf1edcfa638a4d7d628f38110918d2f9c6eb131eb0f819799e596326e48cab5f3d2f9128653b8e603cbf5e96d8935dd98edbd88e21b01e519b7e2cb2a5e517dd40b6c79e2bcf7eb12145618b8f1faaacb6639f4ec8c93e6b43bfcfb32f177bd09033eaf43c7bd4e1a8f32aa5e258adfea1443f368a43434048f539f35dcc962c4b7dbbc7705ad02d9700a4c1f2de2e006ac829dfda60b43cb277ef06400df97cfb87b5395114d91886612c3ce68d45aca3f38561dcbc386eca6fc8b9caa8b7421e55552f004d8daabac793d4dceceef619999b72b9a832ea107e6ffdebb321d7afcbd057182cc1094408a1065758e185f64311af73008085f79a2db5f30fdda11c80df28bffe5ae879f61f355c01223f2c018c25786042c56965fdd4f1ec4ab3259f67464332cceb3fd5af95e351a57421c1608d757392846d2edb9991b29048c523d2180226595d4728c1481f0164f56084357644020a618295241752129d6601cefbee6e7f497058d924434998388279bb7333484c48ca168e5061bea21b4c927262bcb6d8ea4282912e49a47e4a8f5cc4d2e50aa5612f86615a1132f45d122896d17f0bb6c774332f00af2a9c25be5f552cd8e128d9d26cb73ab6db758f9163a4d952a4e19a2da9dbecf327ba81db0d67d966901b1ec3dbfb87e42579603c2534cfc9cb793c4ff5a43c1d25a5c9343a585028cc221667871b7bc61c99393247292564890e3b4003748d85c5339666699666e9569bb554758350130a5c8939d56e4a232e4e758ffc3a7122b390fd23cf58935948f823cf5a9359c8f723cfa026b390d78f3c0b6970d33487fe9a23738c9e458eccd16fb4b478d6b2cdf82dd26416925fbdd95f3a3aeb301328bfce3e5bd2376da87576b2257db20693e59d58afb644c62f1036fd609955e87f5c476494b2a5d92b55840281565b52e8d0a3b2e939fbac589d53af6a92796ca3c15cc796306f51130dcbac631e2586f913dd609179a53b5efbfc45859cedd364a849b68fee78df456820fcf6194724760289f9120bdb666c1f3659dc0be63ebc53939790c760f9f3e8efb4de3f6c7ac13c87cbd517e35e42dc049e5b1ec3cba109c6e5f0dcf21c9a442e868bd31c2cce0a096920f589131f5e426ec68bc8939f209e2427f8e1c4dcece24a871dd21c9d70c1824c62219f0e1a0ed02091c16b61bb90605e6ba6aa425996b1e8a6c5597433f20f64fc286431c618b90e79dcde87b897ccf71fb08f826fef331436ddcec533155160c8113b3b1c81082d9a84d18393aa0c0a1e37170e852db44d211f8adbc4e16f702e5b10ed5f46dec2c929b92deb85fd112773a276996b2644b435dff0d1bbcc57e4a33fe49a61ef490d48149eb5ca3466eeea39a361890e34a7269d8adae14604ba454308f8978c00bafec361c8097a6f73c8afc3ad874c4513e0a0eb96030a12198252e5e0a48af0b003ead4c390d39c79d655099e77d8978719089b9e172ac3eecd9df1eccb643cfbe33820a4de4ae404b9be1d3b36456adc559f91316b5f166cde5f9e4c6366ab6af036bc7f3e637a04c171e2a33b3607ca0219d901e37927d11ddbaa259868628934333333334f060ab28f1f330f1f6122580bdd34de1a59c65a50e13498ca8d2b725f554c54f9e7ca0224e895d32c387d92c1e40006073d40413d4054a8f8a0bd0c9602af32e4736e35d4db55f8141e8597126a86d96575642d8465da22d18dbaa68d0a82a3c884c969a8655956e7b04c3461d8d6485846af2baa3686157f222f6cbedcb22ccb820dbb68264342d8d3a825c928eadacc6d596c59accaaa7ced48891333804ff41b6265a21bd8f186f839880233a055a6b5c0283d056c12290a845c4499224a18ddce517a8730bb5811f47b55f9a077fd688f97c41994ed36ebf16165aa1f190fcb50d96e812e20dd8185ae46d23904f8672209e0991af5b85f149b80b68a0c8ba1c8bd2ccc49c50155067a26bab91cd620f211fff21ba2177c64b4e22dae9f4ce7f2914b62a6b5401150648937ba9b889aae2ec1ef8aaf5c2b3691385206c4a61dc8cd3833a0e6481c869cd74fbc118baccca24c59950c48d7925abc1153882a64401990e9fae1eb278ad5f543ba7e6e441462bc7e3603ca987f32a018593806bd1a60a10b11666eeee6e71a00921700323794ca9c1c35c77835736bfdb4539fcc6fbbb5325e6faacc7aa1a00bec8a16b66d1ae86ecc82ecafa143f6d710725f315e6170707b0916ec7782ad8313ec30de0d7659af4d65d663d464336303a32231bc1cb604e055c66770eec654659eac4136e4784384fb2c36414b2fcdba2ec8b3ab3e6cbafc39ffb0c9f2b7facbe7398865ae1e36adf7d5733df34a4f4b140cf95cf771508fbc7e78d989ec8ba7dd5ac66a37e4b61e436831e1db0baa0f42d6b6d3c7d6e56a41e6e2333367fb226bf7c22064aaddaedcded0c800d23432e47beab39d21841a912cd32d4df5b9f12fd84fc6ee6e3a8406bab02c9fa738a043e96eee063af47b8fa70be83d5cbce29e9e229357abaaef811c4b3170760c9cdf7d108cb7a17f2010e4dec5c3d3237797f5674bec5715178fea2e4e23f1de3b227db00603414e1706e223ef4578bd177fd0578c266291db847c5cdc1ef3dbf7debeb797cbee7befbdf7debef756eebe7defed7bbb2226fc03fe8100885c3f25cd74f9fea1bb3b0b2056df58d40008dfdc8c5c109a276d3725ba9060a44b93315ef4aa6a72839fd2896800084d773c57772e82e8e203f2472fa30d2c4b48816e6db37d5edc3146bf9883f07b832f649bd1a7e598c32d8bd84714ca7ac5386dbb86ef2acaacd55874c3dc42669bedd46f2cd1f1ea3b1b26cebcba0bafdaac3613328d795d5683452b54c326203c5d228ccefc0ddc680cf9208c8e611816319616c8f952d9f68c6c093a0ebc617160c9d15edbb4ed8cbc140fd2450261d30d5780c610811372bed4105b9acac6afaf3e260298ed48a4e83dd8f4485a84fe1e9012711a97cab80c3c8cd0c74bc5b8bf1ded85589003d5dfa6a21bb7144257058324e595854e0714eed8f4723872bb5b13c40a0988922040a4b65cbc1c36bd1d96d12dcd21a331e47c3baf09c5b1dee2444e0512b2a5f99a0012a409171964bbf59a7d48bace9d040424ea017a171ab13518a879ecd4865bb861ce8688dc18eda07732fce6da41851978f6e70f42657fde55a72093f18a2c73915826c68b6562a9d9821036c3557d570dcba86356e4f3e586b0dfec54553b96511f01413e089b5f0c1dc93e8befb21ac2b6342d69f376ac3b9655777725cb687c5513f478a9f7ce218ffda027c3222682a82a8389205ab07b79a4fea0632ad3f2ed01b83d958913fb160126f211b1edc530ec0a0f104d60a0469322b42864cbabaa890f9a0f127b55316942d6830cbdaa981c210cd9af2a264458435eaf2a26404c7e62ba19191ca1bf884f3a4df482e5a78e1da684742503259e1d13dd703c4d610119394834a97284cfe8a78ec9c2efee9eba8c6719f0b03dbbeadcf08f66a08a0191df27bf1eb58d01945f77512d714485df25b909d0488309448410450f4e637c0ba4dd4eaecf6845ceae639365829cd3731a36ede9b90d9b74f574ae78cee279c4448788ee370c855093a5e90efd8529cd6193c5c1149733616af48a03a6d8d4403492229e8578f609719e83443f188865427f5521274c017154818c511c54c8095340c0163cafe0190aa1f590b54c81e49f1d13f0ea32ca437b39ba9fe9c69369d7e962ed8d67aa7932edcf213743d043f23be4163705f053eaeb2c5f6e72af3d1e197839daf76b9e89c5db33f0785cde3e039b583cf3103705a039e4e68d9f2593c81f374308f8e73be5dbf595d62d6e723f4bdf07d01c4f14a3c6c98c23f58a6e966578cbdf363b910b214f716fefa6522ec0879cb505e95c801fe23ef09e604307e9def297e77d396c37b2bd3ceea5da5b72201f4f3bcb95f6a7baf69a82c4851a995aed2f96059d04e3e455d8a981121d5eb39aaa6209aa01153f2dd82a150edef211c410db2f49f989399825917e388d0cdbdee9c1863dc39524466c555045ca48155b6a6713b6a5e524a0946729ba23863b67c2543b54c586362882da52bbc7cb821d2f0bb6051bf60ceff24142232a880351dbce33d481390f913cbbae5280428376280f0bf5574782f17f8f857c62ebd8629b391663cc307f1816a1e80693c08b97635b3fe69967d876b9e6578c526adce521ac4f97b3e8065bd1cd25f211fd71ba81edac971f91652cff963524106e86ed2c67d9425aae31164783065991d9a02e24fef39707a85fbecfbfaf2316e84bb2a6a8e4a13f245b822e039b485192bcf3519feb39c9ae2de7a19295810e993cf42849dea90fcd43f290f490c4263d41d8d1d4a84e32b00c5c433e9eeda05b103acb164fa53113a29eddcad68a36faca96fab1aacad650e929afb9c0c4f012db970ebb6811468b8de83b333a5880e2dcb545040c9f294f7e5e775cce7e7a3cb604fd821bbc4ee0844777406f61fff94ce421bb302162888c8e3e3dc633cd72c5e102b9c3ed0c5de371f9c7303db3570f5bb110cb1c0251377640e30309acd8800a2cae084a82133c08da7f2de39d10be7d86e68a28574871b511a921462441032858787185052f38b519aa2baea8225d0ef0aa5279f1a157d5154dfc948e840cc60531062f382d3c36b07e3045e3014c4e0b151614162da4ba5edaf3d9e8bd78c5501412beaac6488112c628c2af531083089f7d3ba9ddb734f3ed9d184bf8f6199af69a2d01e05b258613bebd852d59df3d1e23060fc458fd741a4b88e8bc0f88eed01d0650a180768587c31249c213d4490706a84edaaeb0cf640d1e5c39e1f0d458ad56271d1090ea58ebed2586c6417148e1491524271d46ab53fb90d3f544ae30e3f786838e299814519d70d0e1f2d999f9e73af411785427dd1526cdbf7e6a91a1043380564a76390b302ea4d851c268cc4249aae1062a724a31e4d4202986d08234958f0a88955fd764c8409595114fcaaa678b1ec5b1de2a1bedd9b99ec8c74d5eb54a7d567b7674d5f3eb3f62e8d50ebdb3a5d6791d26343aa0b493c656202d2324af92d5d91cc53101c9a6f5fe61a03f4dd25bdbead52f1f72f27951ee650296438fc172e8ea90c3a189723140bf38d5e3d0c3f3eb434e434ead7385d4939eba058a637db6ceafeb0e0a6c23d93a4771ac5f4f247348687226cde7a458c6f2819c5d37d341bb16109107caaf6b2498191755fddb58762049bc4ae2fc97d0bd15b1bc5dba702b6bb3fbe0a76e57587f3872baa604d91591be2bacc7d8005f866d31263d430a2498e0a050a89c937654a4fe748bf42aa3021452df2fd06dd35353c3c3e4d759c8148605ad7171498a21c1f0f5054dc783f3eb33d22546c7eb15d65708393b26724ab9a4653839bbd9fd7633daa8164411d4d3413244e1d303069de282f3eb3333ec6f635655cdf2f9d915d6338d09525b829cebb33fd167ca96deaf4809393b28884dcb1365072d0f9b7a0b9559f7e2978c5f576e79ce782fe8e7fab04ad4043955e5f3eb362d409c18e5e5f0ce4e1455fcbacbcb794a9c288bceeaf06c0f932db1ef6c15bfaa97b3b32bacebb63a3b90cf5767db9d65f29aecec8ece76fbb6c7446777b6a45106f2e1f08e64d3265999f555f270648a091172c68f1aab6011b2224dac667eefbdc7a9b7f3ebb6db15d6ad27e4e3620f6698961c39492498ae260a25dd0c0b2c3ab2abf9992da9d34c167ed9a583819c24128c7459bd22a048576e8822f5eb38440de61581efe2c7fcf8f10ce272c52b5ef1baae8bd3f606548f9c519423677c38cd84ac880f7e6ab8e29f5d01685758c79220e70b122591ddc3a6f6d40be29f2bf3050559d9924a612a6ca50d23e45c2bdb5d79418ac36d767dd8d48fe31ffe79417c6aae7bac23e48cf00989c6c7637434fb8f4be7dbb57b778c0a3990d37d9c4d2a84215daa90d3a30be474274fc876373728332bbb2a54a85055593921a223e4d4a087ceae579ea5413f2f25143dbfee52839035ede91581814fdf7bfa9e3a5b6cb1c5cc0eb70fb06adbadc5cd87aae1864ddb10e244cef7f37eb634239535396a3d6af189ec9d344664848c48daf8f990cc45927aa99d5f7f46a206f386f8242115c8f5456d2fcfd537e78ba93e3da040f2eb302818eb3ef8a99d9d46c70c49f6d6e3c7aec0ce4c243ba74f9cc0f9fde1152021e515f0aa45113993f4351f2314a95fd74830332e4d5863963469bb5d611d4691ad6d8b1a455239729d95fc135596a47a22c9afc33869c3b4a7f51953e4a1d8cdf839b1e8f91055bc907d10f45b2d3e822892653e82c0e1ec699bb325ed39a2c8ebfbf841c996b4c708201f41e06ce9c5471038ff16894eb14f5cfdfab40f4cc121d684ad9a4a955f572bbf3b13a27ebda758f98d57309493227e4223bf92034ab2422ace76dc43e46cc74ab6e3cbd5593d6e27d56754d7b6b3f43d0ee22095617f5a547eda3a8da4713a67923a07e7d93b47674bb393bc922d4dc9e4b99374922da933077150eff868cc425c6419c932ec2d50e4f3e5b21fdb313f7ea82d2d17a3e4e89bda1eea15d98e9fefa658861e363f365004c80c4130ff500f15947a45aefc3c23cf33c823380c8eb59614e9032850a0a0b0eaeeeeb576bbbb6177b7d3482abbfb54aa76565577ab7840e4091428b06c90b11732aa378f649625f8f1181a1d5ad339cd763fb4783f550b171e8ff5158d0c3d316ca947a750e9e9a1f353ea8f12d243ed1a0a347c1033434de45a215777639f578ed019e872e8d97b4ffaecd6a2389edf981df87518373ded3c74eebad1839c51e7e9b248c5e18117b9207f9f4b1b18d6248360520f7766cdc3284fe03c24fd447942899f0ac51f4671f2f373e6a1f7db170a9202e68cf7bbbb8bc6a3d1f1de7bb1d79f947257eebe87ed0df65e0d0d8ca1861ff98f0a27c376ec8ffbb15d0a4c481731640d3f376c69aaeaea07b37c2838c6720b712f6f9fbb97afabe5ef3d4649cb9fe534bc18e3736c751d5bdf8beb41b31d7b67e344ae33333333abcc38c277196bb2f97975987e3ddcb2b1b61ecf2d779bede11ba305b71e36dba16678ab7dd9a647e72246f73553470b5b9ada860e1daf2a33aaf8497a22083fe3fbe0a7bb530c3bd59dea54a73ac526766f772fb176eb93a5bc3a6fa125d5d3dbf4bb1b45e38a63bde110082fa046d2a9eed475a575875e5a525d32b45b6f24bf382cb32996d915c8795dc9ae24ebd96e2ec4f7f0df8e6c70e185d77d0353294ba58a3b3ba3ae2227e7fcf3c9394040bf3b7fe58a4af5522f3575d5556428b2bcdfee86452f30f71487aeebabc885e5d2c876e45b02dd66f987c9602fb678ee71e8eb56cf4ffed9e2070064fce41ff9cb5efce41f7f3daacc978a835e78ddefbdee0dc974ba899c97cfd5a33896899c57cf4585cc76da88a4ed2c18f8fa24f5825f48c6f5faa487347eb95963796733fce5a324e424bd6545e51502335f7f4b32ee654fbd3296b7fc48b77838c1470b8a241f3281640fb95b334c2791ae6b0b39694b21b71c664537a12744f402fb071af09ec4a677c22c7fc1b06ec6ca5b2ec306d6a44ab05cc7965435c694b72c9ab7d65a1c9f1f5eab6265d5bce558bc2c2a6fbd65693710502a5613b24ca315cab46ecbb2ac1717308f1e5dbf7b091227af0d6e1987324dcb4211d01f8012e41402ff05f6ebc505f6cb2fd7b7367dd2967a5508ec35babb6384ecf1da5ed8d75fd8f55755571130a4f07470a738983953e1cd65def89ba6d91ffc9ed96ebbe70761777f368aaaaaa30b8a0bf0dfbf6daaf0d6e7ee6e737f27f73b9a010c1776bd17f782ef716a59584368c5683e9acff2e8665e216b96b56f5f0e6e0839ab21b418428550d7b2a06575db4108a1c516b42c784d219f776a6857e4f3b62c6859b06ffc30626646ad2fb1206ceb8ab0ad2bc2e0c7ba42d615d9801db22e36baa1854108ad2b5e3064b171c10b862c51a689b4acbbfb82218b8dc62cc805a69a83c3bcfbba2ed1cdd511f67b8f61731c49d2334dd3d8c8b6df8ba427fd357729a76c849a9bb9864108c39c2fe7887968838f45aed9c0960028c8d49f03cd7e057a1b7af4cb01519f0af4563fbc50d7e8606167021ee99174ccd0c42023f2d99174b0c2b8a2b61ee3ce902f033598afc750e360b8005fc4c9a038d675446eaa955f8b23e9e86e68611042eb8a9615b564cd5c355fc3323b26020ea0853218daa03fecc85dd6057d6e37b32ba3a6c5e822924f7358ae560e0fa3e801ef31bf2ceb75477d3c9ecfb534078c37ac76d02f918ffdb6460001fef6eb290eb83a5c9816e22bd3342ddb8ba45d8c2d1289b0bf38ac64953ae92f0ae0e2417a39d62714b1b0886e206b2b910f3ec6c5083fbe1a2a8f870534c7ba15ad8201c52183968450bcac90461e40122fe842b5842ea0f8291d8b2e9a8484d005123a90a2575517385da462ba198fe102c94fa72922eb2e35b7b01d3bec56b7385e4eb9a94f5e9db7d4bb3cd4774f2f87fa7bc5a1ccbc7057e7b6bbbb2b8178aa3856b986afc507971edfdb9ccf46faa3ae515221c1d0d4d8f4f0cf5bd8d28d7fde03861864783e03901abef8e7426ec02185f352f8e72f87897ffe946c29f4cf9fce962213275bc2fcf9e351f5bc150fc0d81200b634e551794012b0f284173b04e1044ac0e2f4fc5dd992f6e09f2f4a892d05e09f6f6a4b9a3f5f236bdae73bc49644fe7c916c818417796f69851789442e6fb0c48bdc458403d48b1c664b0678916ba21b91f3913554274df34c74a36559b64591cf74f0d916627ce6305b8a9ff5f07ce621d14dc60425a85328e498e826849911fd12dd4416fe8a52c45f6e896e2e2df95b10bab625251eba0bcc22e8a1c3402d7a4a0b8062e5a1aae96df144cea97b4b915d933b7876178672c4f316362842d57451718329d4a427d1cdcb79d10b1169288af891153b6051250135904fbef0020b25dff3450869f4e1ba823d11a2043d4f921871000f489ee800e1801d524f665002d4932a523f4fa0a41c80ca7922e587d31356242ea20b0946ba4841f253ba88093421c6ba0d29a678118423a4704216320ab144b2ac208b25cf497f3928142a8829764ec0036043eaea150b31a8bc36c515d91053dca08b29be908213e365c1986ec60a357050c54fa7b172541f9de1a8f40cd7653d2c15d18800004000f314002028100e098522b1503c4fe5ed0714000f80984e6c5017cab324086218a410328600420c00048000c00ccdcc28082d636b65f9deedbd57949df6abd2e669f4d6fc3305bf2addea4b43cb9def4170a7fd56502dcfd0435c40c3ee223966a3be56faf2c2cf296aebd855eefccb9cfb8581d3bd14e8b5e56d2d1db7b39ca3d93a213709bacb5ecaca3629ede587eeddb6209bbb141a5013c4e59a8db1a6f82a92546ecc00a7fac64b8655cff8ffa5674785ee1fb1f7331aee93e2808d8738968c725d25aafc3ac3cbd6cd8d67ee5e4ff822c620e3d4bdf9e9ee94a4fbe40e4f3ae81e5c52d1cabf0182f746ac89a96c20f91fc05fede07379303921281829b312f12476f7c8f6d0b3759d9367b0a34c9600f3ba83a8d6e3acada0d4d3dfe60ae48fb158a4b19d06a3c94ba9505a1d4ae8af35a4da3d8c682cfeeb53da5433d6998304a18a5f11dc3e16f0c040b3ae21f78e72a022ceea207d9d0606287ab0c0adfd59d437a095a7901666bf01b2f4085a94918e691c7e412bd85af0d2b0c094e22f9958e7715d415b226c3857172006ae2d4629f391676605f5259d37c83714c7286bd324fc38a10b3c7875d78654d86cf292b62cb0888bf1b01ad514b8d5000b53f1ebf564de95c0006bcd9a3004c2f74bce5a2f18df3348083f7e18ae43108844303a7cbec94d30aba69a0859af89620b81adb7ffd14461a3196300dd137941684ff304dce8996130fdb805a1308f79e155dac436d86c79d25698425379a4dbeae8e250a37167ca4e3b7bb9740242907856931ad74c0f888856a9b24916541ab016e4ad04a424b7a5d68cb702fc6fdb391e8f3fb50eaf440585b14da5d3dc582e45e93a02eb0b6c0a378237a3fcee37af7ee021d9c1836df6ef08e60ca81390869b97a558e705de492ebea259d4adfb50b2b321e1d42222ebbc855a856508f88f9b48c98faf925e0c6daf3101c0ae03cf967fd849ab690225e0548dad435cfba280959d28c4c8c9e93363070eb69c804bac7d6da8744c054284daf9b9b7fab428f30290d56a332727b0015eb5a26d020df72e0d0c058e721ba90bd9177cf4f7270e3f946d7e973e2c86a24def7129eda49725ca5215adc2c03d23cdb01c514a2750e08a4c687a592b996016275e83454b2df232b8c1cf1ff6f2341ac5c370dea8277f5364c508292ca1a4c221ac015e90b32af0cd120e712659b75d293da407770a88f5e6e87b03470b3a77f83313dc9f92e20149e851e4d84b60722a01457c14ead2f9bd3fb3f55e7af60fb5556b3497044f5bda72dc946ccf4181b1c0c1bc6e9e8ae70a16d14aa8c4a20033944be4b100c64cad09bd5a768f88d0b19a27d82b575aae340f02ce3528b45541f0bda5f21538ce37dfab9cde897b591c4e4a035dcbe95203070ea79b769d1f132b68b2c473c4b842c58892878d9bec09ade2088b80bd2b143a41a568efc5f6cb6523c1b69b8536fd5954cb2ae566412f854b5b7875b06be16d6cbbb2054823b086db67413b8cb8dd35d0a890cbc245976eda2afeeee4b8993941a546a14d5553b2bb66450dcdbdb1bf14ace27f553cde422bc6fc1e859a4d7ef5678db0eb1e8c7cfbcb77e64343195e01980c391312a66f182d7365e422c19d5cb82f76cf7c9c7433e32c9fbfcf93e9d4be08c1f73c4cb34b0c5420a7ff89cf2ef2e693160d15987571ae068fb281e414c2128b459ab55f34ed0150d149c10dddacf868aec849596a4e709e96176a80b68f2cf0f4aebfbe38d8e963fd28eb94bc008151164decc5db5b3289309237b7646fc5eefc2a152bad2944336b5ff4bee614e93ab4a1a10cf72b4f676a73a63e79012b10e9e72d1e5d238b751ed2d0f9133d9ac3b670aff6a8a788d0784b782874701531e29e8cae834e7121d23fc9368404235c27d6e59f85dde1626994c294dc483922a6392fc8656d3ee550280ea84bcf6e27043b60b9db66629123ef175d9891ab8561da92943008b078f55e8c5dac6290b0ef45a8e48746bf17145e5a79e2ed0de6b12567667fae12c2f94afd2951cc8d3e1a297e197cbc07ee0f5936fe143a584975b9d5c35b4762f748cb4736b54b853188f7c15249d2ca4b26a43f2c695b565121596f080aaa25d596fdba60d59bfa67846e05c3ae643ba20e9a5769d0841679dc5fe821b8e2bb77aa31fda565bcc9b0770fbeee65ad28754df0bd1381738aff807efe9e7b273ef8de9f7c3fe6ad3f4ddf0fd601d7daf7a39edff115ed8db47e5fe1fd1875c9b61f51134876cbd21574fc21fe16f3dceaf7534e4cb9357decaf1ecd6307c0424eb81425a05c13170b40aa25a0bc670f14d90a05ed839877312bef5cadb75992e690941b9ee96be870ac99dedf60d4592a63c2efc4d297caec35f7f926e5e784e10396e3faa7b8fc306727c86a771b87e795768aadd05d0a26b9ca7663deb50069b72d5a6f1ef78a816b76619b82a5b67e98f2d31885ce538c26e14b1981d3d3f9a79be5c9435ea8f4f515202228c6b2c981375a40d85941516e3ee14713fa084b5a95fe56fcd911c4d6c52e845b5af075792598e95dc24cf9565ade18a60d9833f664f02f7a657077cfa3e12f15f53a63dc1026502fcbbb5a84dabe9dadc8188bf824e6bd8d91d25f0a909fe09c7db9c7bd19ee7e8c3175f350212fd08e195f0a6c9541f12c0661eea5551dfb5dcafd4ecad3e5379efff3d5f6caa5e5b27d9548875891bc52a6ca694c366a11caab7e5fb8025e7ee824145c6e35d2cc73096e11880e80f2212b261e2c0759d91a209b654c89fb478e2b93fd0c5b2c1abb093e83d92d39a6828bb243b57db980a4d6e66fa6e1d4a9a34b8e4ba9db89c699dd812570e8a91f48854e91fb670b64d8964ac8c9835867ab82ade6ca10511d888180a93654e77ab9b638791b1f79c676d9eb0c042ec65d568f91b7ab729022f99f5d252b2c98d03cbbdc319998f8f6fa2cbf208f3006a235573b5d944c926affd3e31c17ba797714c9fafad8dc2a9a1e28edde943c0182f385bcb02c27efcf510584ac1f510eae09852c6fc7fc0971cfebabfd50f385fa72cfe52081e320728f682699f88932cfb1b72ea9a2b2652a4284be50d263479e7fca3f9d812556f68bec0336f1968401851197146033e454acdce2dd1d8fa17cb77e75cccd4dde28c69174bc550e21a4e568fd64576bbcc8bfac8c780d7d79af70431155dc8163fc158e98345e38d9d05fcbeb3a2e84576370558b31064ad107fbf2909949d371bf4fc1b277d708fd850e40ef05f690fcd7589919423a101fe965ddaa90cba2b65899d9e7e6ffb3c99ad1bdb6a8182f44c840a0defedf3f98eda1ebd1e945ca95303fe9cadeef14f81be7168d9fa2ce5176de1391b42315091c28605b0003e86c43e4c2223e254db08f581132f9ffca84bc10864bdf667bed6c10c9517f8d441a12d60fb4a5f911dd889dcb5e239ff06d93a06599f2ad8cc00cb7327b63caad73005d0415d44037550a890d20d2808f8e62adc42a76d02b167d36e890ff30c6da8ffa5fc6292d3a1a0b360343825aa35d657b641e5ceeabeb3d7bb964515be0ea8518fa109afcd30836940075bd0fa71bffaad7cfb280be22ed8e8c2314b22ad018436ab1867042ecc835ae71a11d36b9f76d1cdd005f384754a9079a009ccfe3b5fc714bb64b658dc4215ceb05e598583d995add72f7b892215f70b117ccb40c3aa35cd0286e98d0f09e34ca42a52e9ec016d260d4f7cb4161f97b682f8e7eb08ac5446460e8cda2c0b487515cc6511226d676a3524a2b785dd3320840e121c59bae2f29f4b6a2df571701374cf1ab840bbdda64f4da172e1da645f272118f03cdb9314dd0d9860980a3279888e394df6e29072d1ea211759ab6853e046755ad961fa9f381cef5d5827ae84f8810565a36529e60582f42440ddee7e0d17a0a566022faae8e2cc7f01f32a9a3c277613f627a124f2c8311b48cf09274f2ff15894a396eb20c24cd543f9067715ea65b7eb24579a4931e083e8ea8a122070f57c0479ee537838ff2a027ca4b9ea7b651acdc983ab27aac47f9c376103a8755784f835a4ff5798f842ba059ad315342bcadbe3cbed77af7cbcf576aeded3370615a7fe445b7262b536c9365d46bc37b4a988342aed0cbfe9a92bfe990064ca7da006e927e4308a33bd485e8243d4a10b8d47d7a773d35bd750b1ac84ae520cba9168ec43cca5f128584de6101e4a72ad34ca0bc514f481195d965fb8bb82c358be31a19a74eabc882678640e384f7f8ccad5ab6b7c495d75fe4406ceaf4b3e63fc6f552b7873a39500069c4597684b80745bd57ce88402afc27e6c71a6ffc295d62b96aab337d250623e9daec6747a3b874d0a4a6ecf7c6cb82247fa74806be67f72dcc0450744dd301adaf5769e66b637d264d5e3dab310624817c23661f52ace288bf53cba1d71c70cfb68327fb3e5b96bc947d5c1a024e3babe5c70634d83fc1ebc6b062e015835e44243f9aeaca0f18949fa8729929c211aa4dd77ba6fef5e7e19f7234d379b3816e8fd27ef1fc89abfa29e1f2daa9c67ce4f227b0463b3fffd6369c2e743993bfb6e2cc8193ef2b0aaa5d4c6dd54ebeae8f3170e674a3c8ffffad79b11787eb2c723c9f846b82a922cfc88676d37da014413ff12193c5e6b6fd753cb529e7470ebf9cbe67b028ae33d52314c75dbe79c5ae2d2798de5e5f7bd7dbc67392a235e0e4b6ed60e0f634bbf9207b9ac18d3d85bd63e8d5555ebdaeb6cd93ca114e0c4ecfdb248c998919e2504a5f9c2439681e0d9b135e202494b382bd36ced7d969fcd3c225b9345a1ca825a50ef4a9978690de31d8e150364f66c9773faf6a8c0db442d9409a6b16507def6ed777f3d976dfe9be4b2085729c79726003a2bd239866d8173c86137b75d9dae520612ff924695ba31f390ed82fd2e389785a03c4d488d2f65cf97658672f291087d907540c70b2fc979227db772bac7b8d196370440c3951921535183144c4c36eb556eb91c519cdaf8e84ec795713f0b4a3d0e4be5e9ebec79c17f542d8a66234b84451d47fd027b40f13292431ed6c7c2924c0e6e0a2982b20ea7f6af0628635d6826cf7ba749609ba4d0e96235b71fefa4c2c168d6bc7cd03b97e151d6b788672ed239cb02802f2560a84940cc811b4a05b95d1663d38553d598ed70a254869d19c5eca0d52e6534078bcd6d42b00613cc9592ce9c8188322985137ea98a64b3a264bae2e291e2cbaf905a8578875d24c6a8ec22bbcad4add43059b51453517c5daeb3827f72756c915df2274511c818b2c798a7a5eaed70428a8e5e3596681644c7ce5b3b803d28c5bc72c2c049c6b15932d857cc96b86641968b11c92ebc6ed0d1c07becda4fc01bc66a493b9a20b46c3a71f7c6a3abfa214321d78c461aba60858054668f03336373458a865b8f804df505afe53474c340d8adae4c9cc617413a10d0ac46b53472b4e0e81afd1739a611f8a881955f2631c979282332ec93a51d976103d7da742e89e7f882304a5cd3e4176a807eab17a527a28bd6821112b80217d9aa796523c8b6553fdc4f47bf9896ac069415e8251b2c5f45980378ca0374c78537862f74709f6e35650eb7442324a19ea2fe0c0fa477a450b45038eb18cfb0a59884589f58929c738cb008dce9a0b151ebfc05b5d70d13a38541bd4339283108efe1fb3adb91216a394028b203dda64f074dc184c2aa587a22daf4e740b341deb3e1432599ae3200e96c3be40358822cc523e4e00cd5167f7e8e9430c3d01be53254b7a62927640b283c8eac709c219da51cd806ba79266129c0b42ed6736c85f5cdaa03651af2a902ffff684c6f280517a2881e1538d878eb837b8ca44ff14c1e5cf100d4a7720e900585560ff6c97dfe8915545f3cb106576156354ba8a1b2f1efc8495a3c59eacf36914915a3c3f5081fb2e4a80c90a6c76d8300201862b0a41960c5877e2ffb83438aa56e2cf8ccbd69a7a5abc890f0626220c6b4fa397e191f51c709e2f084a602913aae19c4ac7ef9a9f5bcb9166fa1a8f89abd59c8c7a52358b315f54f414d7e6d34575201bd1a4a640f9bed2d2b54d33ee1642ffe777d4d059400fa7f2b50acb5e732afa16948a2aee3231475d67a85d72a052f1a51563e4bb641d562bbdd5a636b3c3c750119c0b11dc5110fccbc43877f9d853b836d206b766d969cd8270d6368cf828b3c87f8004bc7cd674e8b739e8a5462a874e4b0ab0e6797e9b9638219c2423083e5111bd47c173fb266ec8a02ed32a18a26ffda3f317fa6cb505bc689c6d93fb7113827fbf0d20a1e5c46148aa6eacb96171981a42ffdf41daf951bca5a7305ec14d00595d8d5584c5f395b5bfddacfb55925f40a322c5d80412cf79b088305ae52e8e782e862a7d707d6832e41c6e8c984f804e88438641704812ece4be3532aed6cbebfe0b1367bd83be0ab5b1bad84abed07be2f85d6c05c5dafbcc3064052a46ddc964fb86aa298c197a1dc1e16eb63cbc9da1da5c0a3b2bb8f75f59894d2b00619330b649b94e9fa0e08bf437e43f48f14409f1152739e89b154dd70af1d08b2cd777208d0930b3f2bb3d45929455ebe5dd3f8cfbe9b99db3118349b7520173b0e0e51c5abd72b88eca207fcb941daf8b89f8521607730f49733704899c39a683082a8f972ae331a7ead77e6360d32a07c12435830f6d6c582b0826e64241a324413e7cd498b38dbefef8dac596719d445bf2a9996ab10cee8b384f882c156e59247f2f9efbc49330513e1df6b61fb20222da2841c020a8a60ac6649f5807b7890c53b09fdb368d606843598e62b57601bf91fec5c7f347509c44c0b898ab00a3241f249c4c4f54419c526aac30143896814c88f8ab94ee39952f73ca8ae235ac251f8d1760e97d40bc823565e189245e8731c99cf877bc0cdbe4e3f68270a4335f9363c81580bbf930cb7086f5dafc0cdaac8af3d233b99b2d1cd276e689b031ab92566a8587de6c426a7f9cd6513e18374be575c47598741d81452b10652562915256372d18cecfcdd067cd004bddccf1849b846bae9e6f4f55aaf6669626c4ef74cb23e028e767ac2474def7e2b1ffe30d13421fe0e2004e7fab82355c1cd6d73fd10dc7e932d3bef32b70f5bbea64bbb462cda93cae13c254331e9652b61d4b51420dcd1a3491c9634700403828645dc9eff36018ad4fec30193c1ac1fab12e03d85c46657fe11abab4b4b1a4f5201c3d9498052e5ae554d21854ea14161c5367303d03b29adfc37478577841ee51b90ec64703d1ec225e75100bb8cf8a7f2021086dd8912ba1350c9cc744857bfdfc09e7d4d624768d72eab65928c0436910a544e8bf8118d93616b03c80636190bef6998bf1d0abb9f1aa031a6e94a9b8a4126606f41148f31be3837d3efa207176aa6c63ef180fc1ec6e8973532ae7ede5201519e22beed58e055ad0fd207af04e37c0ed40a3ffd4f1b851c3a0823b62669335d8e9e9f162efd86111e994e6357db66c5f888297b354c3ec9a761258ed21bcc4f7d83a0a601f46f5d2314b44c6c261c798e802a9ccb0856655ea96616360a3d89ee057b9fcb0f0e48505e8ef0669e89eb143bd3266c6230cdc1a2fb724a7cc87d2d5edac572436c22ce6816dea436dfff3669e0558a90a0c14546754a72ffa3619f272bda7974c86316601a97080318793b5fae067fa452913b5486212f6b8d2ec53c885eeb505d1459929a9baebeb8185445e67aaf220ab15e8188643acc570e09205d2f1233ccb13b7ef94a55aaa226d5438a6339b2afb9e14d10b64a64e3b7b9630f757e6d854066282b25db01946593f16fe5b743764871c091a433296f706b44ab97a1a0b755ffc00a2af384e6440c2258d33f11885f442560a884647199ec34b0ee47e1ce7e41044488b414605ab685125a4f2da50a70e73b395eb767e6ecaa044486b3cd72be14d27de408990c99c53438ddedc623ba09698e7fabd7f0fab477b0f5d44aa7738c5ba021145cd0d99b9ca891ecf2e3abbde09f7315a2c0b3d51d103e69261285e7d391ace595a4dd130c264b0a608904f389e6c0787ae71332fd7c7fc5943ca2b98f861c467e7bc517871b9a42de1683978c90e602dbdacbb5b5ad02fa2df31c7c7a50f83a9f5566bf26687a1aa49d2fb50d593795935c9540f15cc103756dc1093e79ca5de159d5a226c50686a40a35e19731296a6be8c808bc447d20cc389ba245ace28e0948e60e3024d6ef858ed3d0a1ba18a5373b90583ef7a4738e512c7f64146cdee440810532bce069d63e317bcead1adae1ef912acc720abff667b1c8631e6d798eaa51c3883a78a61b5dae17248f2edde92c22c9eea7ec3bb0c3f8d9d9cced7890d6e8a706950891ddbdd09780f1fe8cefa540af291a646a46360f57906c9cde32311a83269b4106c64aa8b1ce350c2199fa0d353be3ba41e47ad173fa6a98dc765694939616ce56da7e3e3ee182ed3dcb9afed410f30d1426803e8a24d4cb0761b79bef18637982974e303aee6bf4a8f9805f1c9e606e7a723dcafa7d8b7be398f1548d90eb244bf379aa8bdcef802af2ce777d494deb2f1bf0860b6ffeec8e5374fcc7240a22d351a55ff3ea193fbb6dd2af0b91d842d5f4aa0dcd5904ad9e4ab89ae9d70e98896267b51f87779dec0e4dc51d8f893ff1b80dcbead8def971f1b193d55f514d1f5e54b680542648428bd06b47461c12063272b498a4919a8e5c90f8c051bd1055345dc164b97ea33715668f5dbfeff934ef2b4a62c44d6c60b497a614bcd6df20dcca1a23af93512707a81f7a550322ae8b734cc3585fa9185ee81a1e67281bd430c638f20b81624dff320dad5ae20a0b8651972ba263a6cb4f3581aec95c9c8af1159f3bc0c6b70c6bcc9c939b51800d1ab09f1ef524f320560e0f6503e645d855232c7fab30d873aed6e526a58d47797f85d5524134dc4ad2a32027e165c2dc3698e0b3d427e02492f774b569373fe0f2fe200d1727a908968cfa53d22e0f620fff46a14919bb391b594894ec6fe8ec0eae3a695b39661139f2eb1aa22bd8aef38fb16d401eea1149c5da2340e0d2ac67dbaca984230b173120be04adc26938e933b971be79746641bb1dd8481d6a221fd28c1e6b84c2325c7f9e2c5e30a80441614cc1b5a1d35536f283904d28c3ff33d3cfccc0bae738adb53817a0c203a938d03f45e95a9207b9b396d421a22763507c6bb070a8b051acb1072dbe6bebf31f7707ccd99fcb171124c640d3df9a11f3e08b28200521007224d300db92150d953e7e9679b187e41c24728b6c228e0f0faf4c3af0dc330481151bef0fb407edf6b557e1d5437f9df6e090cc8ec73196eaefcea2d25f3392c4d263c41fc4fc7ce0f2dffa706f0938085a11fa646c75854f072eed0c5281efcb94d4b29ff967c50ccbd44d14ba29bc8ae4bdf0609d2e2c364f7df162bdde8e408f279514830610c391528fc11061d6a3c8abd6a288d538a7d8b78495547fa452bfc27a17021d15947abe07079cd64e8716b3d90caf23629af0e23dcf3b0a21be900a3a15178be54d40e00a982e2f5dd7d70ec202f1e77044df64640f5a10a356f714b57b8e8cb2de1df0e82a21a79570dd3ac40942acb1593592ce23ccf1834c622b0c70366522ade85612e5be99efd0f4bbed686760b7fa8bb684e362836490a1eeb3297f94e74f47b07d7314543370129026bae7fa244d3c1c3fd1f185e9396382ce1b8bc1e6902bd7850178cf405d48ed50851a392faf618ae1d4538e4288a18828cd5816b32f23d33b86c5189d362ee726e9d465932ac72f22bb4c30898d3ae6c9d57d4c6ba46e4dc2cea145e129481390a0f50e1450784ed1064c5224a0cc3a6d55877022568dcf8b3f41c2dd76468a240556d68c2938240b801f3b2ce624591edcde940114838325b240032b73a0fdb1c0ef7ec7bb00f13d0c2459152801305eab725eccb3391e778c2d7a1eee9b161ae28443d1c6c7d4c13053bd9782fa3f2c01b91d042617aad81a1c6845f950073c714e2ebf7b645e1a90745a7c9abfa9ee4fcbbbd37b4f9072c8b8135ca27c170677d0cd8dcb096d4e4743cb023bdc2b7b1a3ab8052875043ddb08b25ea8b1a429bd012caf6f99fca7442eb60a9b0bfa4498c70ebf7c1df7bc3f674742d338021ff1c7d9182298d60c1da6bb2283709fc3b5332e89c521b8ed8a83301cccc670458e427c20a1532ebc1314b4001487bc4391c20dc04585c9f8ab90742f845cde27f0799bf0b446316fe2b27d29d85c081b410309675cebc61c6e651b8d11c73e8b4ca97435a51e5cc5f4515b6e331ded9b8b6a5e5fa960b7c02b968a83cee0bf33b0e78f3d39c72c10e20ddcabd758eb08f2a167c1de10f70289e26708fc257a90d6941435385f3e643c5a7890f7f27d0a0cb6738f3b80ddae380b53858b41e71e0451aa135d1a16cf26c2badcfef89c75adaa1c385f4db3acebf00476703e92cc2e15bf02dc18f1d4a97df4cce5c51bdaeb871b0f9b10a7e8842ba32e3cab45e71083ae88f2d2b4585423364ea0c0135d5ff6f120d1debff8966c1919c390e3922ca323f160e676fe9005db4c81bc81c1f094a22e9f04954ea7f44ff38c6b19b64f9199e082e84ae18a3c2e1f7c8ff873516d382b6dfd6a8aa07173bb7685664c308152e26b84a838d74c0b41582f2722dc1532e147feefe724baa04642b384ffef511ad1f9e3bd31987964148b6619647fe10a5cc2c33e469b79a55d5fb8d57cef34d3ba4445d701108d1c9977eaeadcf8f1165e111d1e441f77c38629596aaa97db17952e9af73ef49409bff0d588e97e4a3ecb229d7a3a951c00167226e64f1edd719cb21b3faab93b017f3c3297553ddf833c3b9db9ff32a0ab599a164fa74425b2dfcd3c07650a362df9c252be59bb6b582fd867cb68e53141e8b8c6e5e7955a8fe8039a1306bb5d1e8e82c82ff5717ed8ad65456ee26991310cc3459f44fcaa82d0e1dd4ed15e93f28553a474efe83e0eb5c6d800cbf0d27ad520b48926daa29f5c4a94a8fafe9238fac31bd05c6c3126eb4bd8fc761a712c754f27887f54a8f546edae7b99e85a9ee1f1278ca88fa576aeeac4cba101f3b8be68c43f374fee1957d2fbd946f9203334c1fe845a2dedf40ce077571e92c06a571e38cc9843a0e2d81dfb72e2affd13abc1adbe59da3f9f65b03f866b27c168aa045540c2a6fb00d0bf2e6e67872133d4ea5af7c206fdd3930398eb65b98a26c8878f856c1c4f9a4377767e32e665f99797a617784a8432351f2b053ce6aa1a1eab752dfc56b0fd413acf48efdf19549e80688cb2f55ab222273f7d85b3633d56e072160d5202df7348de13f5a7e485a9d4973e518d8f15fa0b090e214970e46c1669d1ec0fba48c9498e20728756bb4151df1044b7f9063c88113132ac016017c2825984297695db30fe422e0b4ecb784a0cf234dd530b385b3f889d4f03938db0b04641d45f746fddad7894156d03b949808f04a3ed0593584a94d004f1858aa9908c720060473d462841b7daacab876741eba3ae7952bda29b44bf987164e05508fe0f7e4a5c9fb0cbe11ad2c06d30892fb74ef0008341c1415bdfe2dfaa52c190a5217d9a3d0418521d5a02cc0878b7c3bbdd5d1a93bd0cca63ec4e196ec909bccca1a791c8437368dd0f26f8368be5164d9ffc495ccb4d3cbac040bba30486d8c4a415c1e7cd053e9688843f817393c1f2c2029029c7c9508d70f82c64e86b972262908ba30a040c3decef16a797d69a3fe89efbc06320e91bb9f6db3dd7defcb8902e029beeee9f081275ea82e88a2401e529a4cda78ce32965b3f3ba64da14655b6725f3e92dee39e171c9c05eee486a0b971b12dd408ec7efd6033f22d3bffe875c3eefe9f0d5b478fc1cc111a4397c7bd92c284d2ac44abe8d9a1cb0f3bfeab315976995c56d6a39f4fd806e068140884cdfde50501adf9d00dff533b14ba273da2b31fab317ac174def4dc57556cf7921caff733f080327ad36cacd5e1a068c0a8b48002a4b8e4debc8c58f7d24fc804aba91402f747211af62170cf8e5b7d8caa3edceec3e44124b0dfb0d0394331cba99ec344cf2e47ca3391ab5076af2ea320f765a4c04c56d56f00e58479441752e26dae2d37861716220f73026645dab2c68570a039540bd7ac8360a091f99273d9346e0ceee49e731015c6bc381496bd830714dac4d1b4253aa533577d134f49cd231fa522704b5011d06e71713d2fde8f307b4e077a94103ca230806347c640444860630b18f44f034bd65186290e9352b0a157a8e2450fd575ff48104f8a30975e0445b6b68c68eb08dcb8b19300c3a01a79650469f29b8653fbea0c954e3d591d15712ae1a015688710e7120359e094cf18d4bc5299840bf6a58a80717daa19a1944eb4bc923329d92550bc79e5802cb4d1d300ca9abe8ec99868dabfb9ed150d93e2b5345696be4de50052a35b3e2396efefc12c50799e1298c29a7e7d67a9df51179db2f19a926854bf7c42fec93a275dbd80edf4b8acb0cd35603e1fd4b540346a1a81d363aa8df80b2d283e64018efc08f3d3af5dd11355426d014a2ac9f4ea4c54ca8c440adf0578fab9fabf955ca16bd054e7de6bfce1b29e6b21ed290300114bd0c2404966914d696ac5f238389af9e7a22ec20d341518a063dbb2703c786d0d8e46bbdd21a349be27bfde0f31ea77d8e9f97acc4f7e35485e285cafa8a825e1d4befe43959054b4f0b462525bfadb667e675accf11fb3151d753b729ef48b40f256323600bcf53d4f4d0ac28689cbfa8205cf97524f3fb1f4fdfcb1f12e1badc02d796c3645771699551260e5d173fe241f7a572b0035339e13942bee08c0ee07cf1fde6b4066cf471268dc90d1d3236ea709a19382dbecbbd5bb731781b6c6873e99f0735bcb61a911b475a06e325d0845552411a8eb89cb499f49a48baae83bb471fa617977c9f40daf71238bf1abb41ebc015b3fa0f818e6203c1f2aacd9427d3ab207fd56f5038b858429f0ab556c94035c9488284d08a78fb150910729f3711aa360adb29db85eaefe8c596a61020eccc7ff17cadd054e621a87afbad11f87709c77472240e3176ce1579dbd9920883dbde10b70f8d180205dc10dec95414c4fc7340d52d8945eeea3ed08806e5441e2a0ca6546e6cccc104432153d67792498a678ab0d511b325050d691e767a16642d243fe54bdbf6585e14cdb29b571820b8b705ddc7a3e1de5ae16a98c9020fff0386582e70393233e5bdea631a28d47c7190611bb11e0e634c651e1078a4760c624babfe3a6b394b923b8060d9a7e479d47f88d8c754411f2efced384c34bd13dde13493b74926bfa69f22e156406159fb36c6e1bb668202ca62f772f2d077868d44aee23bd4a1a2498af8b38874523367d957bed2e9ceec8c28e14bd43bebeecfc207c0c1d2ca5b4effc7421e890ede6ca22cddf3683cc68e64a1b2dd696357cb5379c2dc56e5bb658a5ed9dcb9f0fdc5896a704e0a3a16a5ddb29e8922ba0ecc217481d312bd686440f69740a342140ef1e3827dc490f5a0075c431619c2c81b21b3e68f13372bbf9eb3c83b1b0f529455a0e8afcebf3665cd2c7bcc882ef7aa02bd26d97fdca88ef089b9a30c5a7ba9179e8af2b4d58f5075df584d10d0c9722b83984cdb5996dd00a231c130f1614b044b9d38ec58ede7d993e507f0deda011a9d49943f81cffba678f403078470089e669631b65ab790202e7d616030d00400e48387a479fe0c270b1bf3e245af889c7a5f464c36efe63beb85c354e329786a095541c3a87407e82bded3ff8f5545d5b15fd8199fc9942b7e3ff704bb60ea3fb5012027ebee2dc645e16017de79dde8d2fdc3451d0c4963a0242043b161b479cdc4e9c9c69b815a220abc9133a74ad47077486e240b26fd4ef5ea014ae8200d33d10a5aea61bbd5df2943640cd8be40e13c0617d309771b8ac56a5fc40d4d2b92ae4dd2bf6f4a0912a761daba652bed351c7f7fb77d9015cfc0d11ff16c6e7d56e994b9d3e9b9a535397520b7b7eab3536b8ede81af676206228703101126ca3856f6d15d37a5cdc8c60778a16ef25489646f0b9cfc01adc5e590edca0bd94b65e8193873f502fc8ace70d48dc73c48dc356bf05801b1ac67ee81775cb9c6d405490dba3dced9b8a3392e0994332648f7f8c76830ccb6089dd890192c23655badc4ba3ee73e1ed4138a03da94fde87c24721fbc46edcf42f087d9f57403818c5016844ac6f3af66455b24cdcd8b7d9fa8d211ab6e78ac914cb249e91087133a0d9d0ea77a3da7d507a1112531e33337c34d2b0da4134feab903e33d7c536b43b1ec6d3750512b7a85832641aeed96d511df3a30dd4652ff20deec72bdf1cf8e8ba7838add156d5303ca1470ace055c263ef6ae300b1385e8fb9cf1c310e33ba941b1f8ff86f1aecce5be806185c73b52316315d3cde00fd9909649848bf3b2b11234bed850b286776e0a608a2b0b198f40320c8b14c7707675bb6bc8fddf39153d024120afdbe88164384576c705d2a1efe50609b7214b2684e8d22129c547daced52ee9d83bb5172698233b91c0215990880a3fbb4ec4a45c205a347c3b5d29ca45ac69ce7805270e3e689adcf9e96ad325f00aa90869e41804fb05873f1cc2aeb0f0df693001ed075465fcf042e2afee73f2bc133be8bd2c63533f1f31018870e66b17dd45beda74b0ad8419caee28399c7c88eedfbfaf01e3dd37a1f513867f75b9b54edf52c36980214206d8f01a87f60524ff51c012c2882c1f5625a9bfaddd4cdd2be07dfd7f55cbc22608205be56b434cfd26330ae385283d5d1f10be545778184c74a77d035211dcb0b42ed8f444c8442fbf332b9e5c1134bd773c105ccff556b52268fdef9afc654933abbaadac760434eee14e4030d909c1d91a330c5136afdf420faa09db4fdd2d77ffe89fbffd5bc87dba1752fb82eb61c17adddac016b2ea3fdf6a99ad25fd81d302b472d200acd436875cc3596603bcaab41a07c1c2b374241b32f37827cdf8bdfbf14cb336935437ab08e718872fb036ea0d913fc32d3d9d6e56661a539d4daa8e1ad4ea7c95c032391f5a4158dc32a59f5d2bf0fd88c58ade5826db1dd8135094468e6f1ac36c08d3ed9ce2c958e6ac81f1fd3e2296eb1d9fc882ea6e1f6ad0b128c11fbe9299730ad198a31e395d43adf92e324d5cf4fd141b16e697c14c43fbf6d22be6349836612e770ee0f70756f9092707c3a5b4274027289ca82951b560946ae6e80b3ecde60b194f5c2ff292b1d0bd986c0ffd96e5350597a2c40be8f24020549ad8705b2c0460a1c533d512c3138a4f846473f93c888708d591d14d94cb94750190ecc3f17aad80a424075ca435888e14d2b60ad8491135eba76b1e7daa6ec87b8f19e597b8b1f78719444723759f2a608cf3ec59b8b7584653e3311fced03fc61805884b3d0606a618383d5145e9a30c085d9d482baffc3476131f933b63a1b88f8f7104667d2b28457c42fdc34ff23e23e36dbf1103deaa1111b72e6832a3461ce17cd020d64809b526ead509f9588addb2b8ffe9eb51bf8b0786f6e0a6da650f6960b129f001a69bd499538ee0ebed6cb585d9eb1d56ad194736f3e21389089bfe72b2b1f31d37541ec2bbded7452fc083413631def304422655986ecac19555c224b1b1b7c0722ad379d7e7e15a8d916676e70ccb41c78c22b6c69065e78be41f532bcf7b204f8e9802a70930cd24576be5c0dc89e5c23d55b141318b71d4eb9ce369c8fffe5ec01826c2904ffc53e8d46a471c800274a29149b6086fa8d8c1a0c397ed685282843fc4a35f491f70a9dffe2c4f8edaaa808d02d984c90c1dadc3aff9ebced30772c285393329ca4cb79a295ba6b1c4834dc2ba628f981f712acfd98d20dbfa1e97c5001995d001d8a840a60fb06f3d402b26309d51b538253fcf5f1ef25949c90890b847992d9aceed4d1522807f5dd539d902af9d13c1d4103cf72d45059d9af2a6a90139860d3e736c52c542303d7cefbc66797066a6a4532a2c812155619df5633875c325efe4a557772f023bb92ea72c4a44b12c1934a8c6e1af196ffc9d7a434f1457494e8a567fa012b7a592a9809af5dd51ea307495be4031196b6afbf47106e5b9b3073e2b4ccbea232a913d08382d63a0362f03c0307e581c927d8594d228c6b0a2748c5260c0cbd535685d3ac304a2cef59b8c0a12a7fd77be35276d30e11a0ffbc1f3d09aecd8d29f4f7a01cd0eacc2fb0c52fc250283f3e877bca7ac813560f84e2789df495dfff0e330cf9dc66431d3a1f9f3cae6091e8810224e08c3bcdc1278ff40f72904165d901bd470ab01347e797fe20b810d3aa208a426d4c0fd1a61c169bea1e10ae4465894bfe5274d4a858a170e572c9637688ab5adb641b96120d2616815f567631ae4971c8bef7ac1378651a227506047e9af2f32c1c48910f8a258e2ebbcd2058a9655bd56fac6381469715a67f8459c501379bb47d888ff8453b5ed1f76d7cc5adc030b1e81876806d4115af28210580ea51069906dbf3e40cec3925e0cf4afc5f76d88eaa3e2503468b46986aee7105029e98a02532fbd086819921c438d2db4bb193a5b054d91256336484a65c048584caee22f833e1421cce20b0e13dcf1f16927625c9fbd1cdf6bd5db47bbaff3b3c9989cec607ec3fa049e5e2c4c84a875e287f87b62843c37555294dfee16c9da0457d36f3b7a48d12d765620bc2462060efd479e5525616c990e54e3da3406dd3e0f7afa872ecc4d4f50ff09f798148ef4f5ce2d9dae0ac96520f091b5d5a3204c0502e14ac617c91c51027be55d2b96a1077739b8ef88b16848aeaef2ddae67058bf45f053f0138da7bc5c0b98a244d740f49c13f927675f5bf3bde3fe7ce502bda68096fe7e96f8b3b3be09bd30f7c9f4ea1f538dc3cd8bf2bc3536ff9d172ec4df0d0f796bf92c62ce3de1d395b397d623a5f2c6e07e9d55d8f73a1a8a021f4f7e7c098b7d7b5b69eb7944ff7248467918702efe0a4efe8a460b60eadd5dbc8a262c8f959a8460dcab2520a450b36818e1cca75890a177a64c1b86f276c137c533515076c411c6a1d11f7f0c049351a45be1857034b35b2b3978a44907485f9a4c1bd1837fc74f0774ce4c085c1162df02451b2483a9b3394d249c5c63b75e7258d02618484ad5673600a1f0a0c60d616e120d325bc599101138b4eec64804d33e1126029114a17a810ce98e0f34c07917c0521496419de8687fe8c886ab734ed040502c960ddb27285380c04607c03ecdc9413c2ba40955e58aae80547cc382b869d23f15ab07b8b29983ff8819616eaeff5ab8168bcef231435a772402240812153bc21769d1854d935a55014914119f74367aba18ee68cda88718f9ec49f74bc08be6ed85badf19948da9e891c1cc4412aa29a2f1b951a1c3ba42e702eaec1c855504b29fe874295afdb38342fae937404f58d3ba38fc3500b628fcefaeb44511390a0ae32e2283ee95a5c7a853ab759fb0f8c5c8ba8a7047c9f08311930f0c1e1c46d049bdf04f737161e1da288bb4def1f03684f963d0d5aafd790f674a72e4a94dd6adac625e67779defd5e828bd4e2cbeae9712d9b78214ad953c10f7b77bb21acbd400498ab6af7adefc7cca990aed5e9129a1c21518df1df3d2c262580d1e575bb37ccf354b8d104923ea88be44fecab0282e13d2858682124594ee5371ffe10ae4fc21c0805ad8329118354769b9710967315daef3c217cf2fb0328301cea49a352eb66c64a6503d3881993b42a9b62c8f5701bbf235e0053310ab64f38b507e41871f6089f4d558a58279e1a89baa6bec99223d982fefdac35d0ea42080d2b4714bd201b837220c4b819557953f4f7683a2db7e035771f05bbdd94fc2162dc3c330394fc75538275d3f9a658cfb99c9a4661e7e5024501616654de947a2d0617549085d1851bec328396f55c126a3b0fe6fd502e555d7e2805a62a51643e0d627eb47c3565142c1bf01424219279a0bcf6e7ecd9ffec13808edd86931c2f09e8f428e7988b0c2d7cd4c7a6d24204f675f723fd37fe723502d8ba0d2c09512c8d1f5f57314e41e7da7c4d9b6c24ed9d8bd0ea95002396fd0bcdf9cea01789f9a6f8d0b78da3b4eff744b2a6e10aa21bf8457a883863fdf1d65d5a1667a7aff59fe0e7a1488890740f797a9213e402b47711f95a82eaf7a5e89c0fbc42fa68c73cb83a285c181ac9ff3e3a086b0a8928dfe9e9f26aea0a4592aa33fbe835cddc47be8f2bd8a490ff650fd45d83d2405fd71c8a24bb56151c2c97837d6e6efb72f54c910d33d59650245566241a3f4b8272ba897949ee67c0af1390d3b47f4c9d5e3e86cdfe138a64cbe830e0bcbc0625e48f204292c6729bc1ffbf2384c37d8c16fbf0b336b30ecc78c23facd5560b2dbb610ff06362078d700ee66cf3013321d385a5254aff75b38f6ec958c43a5e2ff6039b67e1e6649b1e818060dae458b7fea82b1ac0898a289db506b2a4f66fea9be7e6c1af95e164dedde469578b6728ff369265a3e07d60b0d36af569fdbb9b0754796a793814618304d567fdf4dda3ba20162c4774769fcbe92495f029601d33350c9fa8f2d6ae92654d331b456e4a2818b30d62530a30fb5449bc13495612477091fbb9558b2ac1c5488fb4da526853e1a4a9baae968e4bf07809533d0beaefe5008246b4ae649d6e3f72400219605d5199f743a3a9983011ca6a1c4804127fbdd2596c981f3c2b43cdea466f66497f981888a497f827f02be17c0169da9613f23b524aedcb06c5c1921136276f6f6c1186196b567a929eab674adf6795bfc692a5e3b665a2da03df9ccb894f4f0b3bd6ffb639d70274bbad3d2177517ca0b2714a046e7e49ed118c869f152cd2baae5f692dfba7a07e80b8cae6da0c5dd8541d104a56ae90a72207f5145719c88cdd6e6337e4b8edb39cf10b0a01dc858e4de50a5455669447d96765ba47982330d834a1809d3a61ef7f1490c84f8ee55d4af9599d53b2180467e4a289a9acf550e497a47e71ea3141672e1a3ff3401841f4bdc1bbc62e3405a4666affd2c805dee24a1d5e4d5a7fdfa666867f3ceebfe78ce1a926447d15de689dc7c4fd614660dffa5ac982db37428de95af6c4317a7eea3c3d89179759a0814e19fa3e9d8de1cdf41a43e162c80712b5e47a4dec3a2b96aec3a45d17166ea24242249b48ab0904b145a71f39ba14b6b8fc2fdc66b045c407bec3af451ba77b0d520ce43261b95b34f42f413f4658f6f95fad04e71647e5017a4e08dd501849cd69cc961e242a6d496e48bb4561030c9e0e76d20d835626a3de74f5f9f26b9cddec9af5892612625189fbd21b7d9a48a961c26a7e9420c2e5b289c66f2bf2080db0c4282589ff17bc4ea612a2c3a52da8396787d71a0062c6c54186d199f235d98a96a317636cfdd31cdc6d51645a743b7e0509f587d828eceb349591951e049d077cf0ccebb31b0c3bbbb0091c049cf06bb5a881d4c68e1b7481b3aec93b2ba08d2b0c96da13cebc5a6849a83f8ba7b61d820b69f391481c24fa58192b8dc73b9caa715731037d913226f09242ff7a357e75e5696447590a2e191c1b51a08ee15b4e48a18d4138630765a7da5613bd8b7e4aeb38e91f225970ab5a7f004cd588842cd2ae191bd303f5fdef385feccd8ee713b43dc68434448e234eb9c3193e63efdc77af2c07151d26d0fcc102b3c15c40e85c5fc939bad9d617cd1f671793ffd8a0f3bc70cc2083c3775a2dbf6ef3cd92397319aa263101c0a5c582c0402b19710556302945fe2dcb910edb4eee09d387cb3acffa21045c9c6f136f33702adc147422d59049bb094fc3271b5699305af2e8d27ee5dd521e2dada916a607f237a2574bb404c4b29be8c88a157d96533b5e32610d61980f1c2c4839ff82f047544b4f98a5a144cf6d2eb8ce8e1843b112de12dfb6571ae1fe0e42a624ac51491a3dcc68a105f059575242e6166f0c018d91a9c88ea2d7b5522439cfd7a21429107b5d1989a10b72a5e0aafe364eb2d689cab1b690dd724bcec804d187859e977002e18975fb3d13a4be88dc0f818f0c21014af9ab66ccedb29740b6d47233f3419e008c577586f8313a38ad770bb684b9beb6f5f5779198be549d72ed3759d1944bf16993caf70ad22f119df3393b90210174ca727cd8a052791e78c66765b9bff7ce70ed10b19bb45198b62d10dbc0b69730cebc8656ac4cba319d4d9af85ac80ac83456c395ce0a582b70e49a5296b2b2d49177912a21c834ec703c81b17b70610c3848c83dfe3d81193f3b7e35086a4ae0d6f5f3086210a6c4ac70d946c8646f7855ebe1f02f272d2921934addb97ca854db09ecb607c9650dc615a49165e9357984dde4436ff96600c887212d342e55f5232c61aaaf43125a3a9a9cfb52d062340cc9baad7f3664b867acd1e891f203a3520a91ce7f5371eb89728e71c2977e243b4a011e4bdeeef627898adf186728da2b1f9be9938354500c84a7c6232e9e7b4df368a6f3f6779248b03baa8194fe49715a17b5c3ab797eaaf03ead0a92da8381c279bae8acbba02be800e81abb1c586845a1c3cfe0513a688ee8b774e95dc7988b53f97a8360a2394b28c8997faaef979b97a3c9719f57b6dc0917518aa57220aabb8e3a1ed5708f09a4df5341e7e79b703d595d81db8e5abcdd869962cf5e9b2b4e7b077db67e4f1efcf5ce82599d0a40a0b311873c72a2853f6707f1f20be872eedbddcd2e22d8c1e9bf8dcd79254948993dfeae8058849517459c1da16d846623548bf97d5d696af8bdc0b291f487a70434f6d94dbf9a5d0c13127f71ef07577026a1e0119d1605446abffcc53a045b49c837c08349187a6b22f667e7f34e2efacaab56aeb3d57708656497bb49e238539278857620522920674b5315c1ee9fe35b6879547d484a22b2969d22aa5e5cb5765e726052f0f945783381245c4a5cfd05bf39b7587755e548670439d29e1e7d3bc1647c4992f0b8cf5218f247bd8b5f5fad8fe2580b9c27e23629e35235c46541a6421a531ffb12088af0087401ab708b7b3ffc4ee229bc33261808e9da6a600aecc5eb3451192705776407fe9daa5b488c841b0b92dc369e798ee9751dffc1753a1d169b80e4b49d1b6111ace0d20e6bb0dc3fb24a09a99de86db468779e460347adfd04204b30e6f78010c2fdd7d1563b42ea3f315474f807b1b2ee89424c1c7cb8a1cbffabe83d46488175e944218a04d099db51709a7adc7f0b6eab5ead2eef51f6a30ffd0aa1f90712053be93a848d5a60177f2099bb96365086b0eb023cb6f324afd931a1d24d5b843fa0ae177fc286af452d8f916d3b9aa24ae51b0ebc99405d8d6cc9214bd954db30ae65bd86c2fbf407e661fe9507302b4ea5c5ff6d3f3ae801b92e257505558325d06ab3949db258a5a054c9520d22b22b5e0a5da479d5d94499e1e7f32a07912e0f2e1e73cdc0d94782202efa0bdf60721cc17d7dcc6683233d2746d3873ecc3c986f1e6b8301dd6287dfbcc905b04e4e0d29cf5c963014c5fdc8bcc2937af95bb7a7b7f262a284c0d59c0cfc2c88d23661c542482f68e7d723bf8cbf41555bbd2fb269ad7d0d17df58630cb03a6a7e0b0b6fb2ec935ef3f409e3d2e7b4b7042709d12381fd2109c0bf7364c9e9f797cff9353257a73b8f1c9e3f2d6e7e13cfa7a8f36d205c01a5d99c852b1c57565f64fe590bc5a3160d90c8141bc5cca32b3482231c4878a7b9de71ae7857765ff551401f81cb5be6469de481593fa519b301b9a6b2ee0a50ae58748dd4b3bbf09315ccd8df881322ed05988da3f6ec4929687428aabb260537e869466ded336e61a0be87d6c34b071372f5f069517af468e805a47f38f48144a0f2499545ad8f19e36684d9b400826ccb158a6eb4c2be6c4c9eabd0937ce73f99baa2128b034d394e69244d64637e1f5efcf3be515c606acb6fedd79d8b2531d236a1cb9a83b01521233b523f3fb5a56dc66bd40a3cdd3a9b247f28c42b31c164a04232c811a8c95ef38674dba740026a2f3c7d4da4c21240514718aa73bb088f9cb7826a7a4dbe72cbe49ea9846181f112c61de114868c50c70b1a56b68f103d18955c85a32a28f0eb9ed80472647cc4f25de499d61b9a5fb12083504a71d4542806cf2a7fd6735f45094de6b44cebee1231d764a09697aaff0d8b259ecdc9b4575009826269ed69939b0354ae14aca08c535cbd4dfe08b9230044a8d4a6366cac13723ce91a5cf50b8ac3274ee31dd16d5c0930cbf495a094814ce91ac4e2b19b2bc2620d3b0037ba989915d089339fd0fed473c95511610a1a7c976eb883a152c8f667e3603153e9c5357a4a4de1e8818fb1507dc76960baa5370c21719ddcd770707c3a7958f2b1f3e298691bf676c7a0061c4992adf77fe28d53064cd0c3888a858481a87d89ea4edd8c36a640ef87c372a52e9e853c1f59259087e7a3baace3dfd6cd0c1f081f6e8e1adb3bdbfffde6ae2a0d4b8aecbc8ae6fc9fe83a304b655ef8bbaaeb4b1ece6491c44fdfc9733c08d740a01075882d1eaa5aeabc05aa6577aef0116eca34b3e1ced5e662d0b79ffb9deb5d83973255e976ffb2a81befb51a8475b5b0edd5149c51fb2a7ee063e7ed1178947a3f9729675fa0aab071014201239db158fe056bb3e34ccd5af9e9ec81a6920b240a2c63c7ec1b9cf5615282ec6fb5eb6c6b40831f2e4990e897fef3d1d0a07a739ad07464efc6fa3f8ca9a5375c4daea4b1ad758c8d45a882753944d0c893e0caa55fe3a00ff2f763076c08243108b9b6f1f0e41620309525cf43953fbe056263df1fcf11bd06ffc824388ec584bd49414eea8ca4aaa699d18e82ffd5215f4c55b0b9a212eb2c93d71880ed5447c90061851f46d0aeb55a1ec4dc0720b92f91e8fcf731c1c415fbb96919f5d99c906233723d1173efc9a346e0f11975956bf2387933fbf732abe0d3a095e1191bbc939380e3c384a3733f5481faccc8a81e0133f356317a0cf0cd20c15dfd25cc993b96a942a7ce90e338aa51f7c5bd280f2b3c982dc5258b37ca7ee23be4302c2b9b90576f4f495b46a5aaabe688e79ce70dc2468ba64901985589fc3422843bd7c4f0b78b56113a8eed389485d605e3df107aeb77dc42cbab641ea66b460b12c2946e5d5ba9af5e51e130908efc8ebebc776378405c33247c30285e605a66da7854834311be1d0b508f21db9766b0dbc8b92342075e0390d75964c8ee2cf38e19b0f96ebff928c10af5b7c358acb18cd0cf65c2f07aa2e77d56a9b6f71ecfad343463e875651ec9bbefc86c1ee59e6941a2292098c854ba2cc6a0cdebc80e01a462dd412fd977743d556ea4226a7c4416a45809c0fad55ea9fa38f944cb2d52832d0f7243bb2b523ec38891a14cb5a1392044d71e859e50383cd850979c35155c7ce01ced8dec8615fcf20767a8b8346de9dbe978e0cc63051b6be72c89a488025c6442552df2c20db1518be4279548f319bc178f591c800988c493fade7abc8b3953216dd12d58d4b5cc1369400a60651586beeec192ba9c95e5ac2b86b9315a3f4bc588f0aae42fcc5dbb8c20d505471b0e861be1b9fd33fbc5848f6d1d2e8c4f38f96b7e597ef9b601cbffe809631c1cc3f686a83cbe7d15a7af982bded1e9342958e56d8b42021f02895d52ba86317928e01fdcae84110c785604f011e0d3fdabf4dbf7c6220634f7e7a5d4e507d79414326da7567a7e246b28c4997b65a6254b0b2608cc1c5915e99e2a3972031254a8b673e8a12972bc15d6fe3ef4f2ed929f16286f06976ae3d03a20c10d821b398deee66fa16d838dab9e582529668cde72b13a7be3b594cefb47a2632c7505d32776aa78d84ccadb9d5d090314bae44bc1c10f0eca9d2dac77f08712a49dd2383e1ca4c7eafa354846101fb876e6068f00190d39878dddce6959e455830e05fcac1be5599d3c3a5a4dda91dec37beefc6a7462975c0cf302dd5141e2fb5017a54118c152eb822484230880344bac4d1ce6ad5121ee0d9c5f1146f159a0cc433a24ed478b4554f1d9efbb122bfc03059b03b87cb815c89293e1063fb21ab3c83b49c643409094be68e084d4d8a2cc58ed2a0fca6af9421d16b103c892dd43a41d33dd18d68831975f369e766186a2ced63a7dcdbcf47100df1f98ed0140d946b28ed3654cf3b1cdba4f0e07e2932b6b10c9ef2b8fb3c6d01b0f840d2715d90008f9c0f30fab068409312a8578d2062b1e933702bc085ddee30bba042d93e9a95e6f320b365ce451723580874eeb31bfb9def014787e96ac2120c730ec95f13b8f63bb9af2dccdc21938bc1b0e24dacdc7ce30b3ca688665fc1b68f3f3af7377bd5a86611a073010588a4ab9d23afa199b66f7e0a85f333028749775deda278d84246b681bbf9f59af6c93c552e8f666653129c781f34efa0b8515c8b0cb5b05a43a1039217fbc75d3ceda6b19121382256f58fd88f4a67e2fdb2dc10a6dfa1cb976f313f79dc80c66fb672b89137b9bac937bedac45444d8330ba4e9b59569aef83df01cf65d84520262a7bcbb2802a2f634a928c2f7d634fa80069a5768aa0d54b0691941d76a616f26535448ab11a45b49959602ccaed9806170a7af57cf649df5bbe5cf67c905d89084e48e31aa189af0462027079727b8de519b4403363d0299b84e95a9cebf06a23cc3821d8b71222e05cc168564e3c0278f2097fab095d7a2ded0e57ddbc69ca5029229f305c3e74c6c986fb855682464b46264b9d6e29c1f62d6e0b4f1334c8b7c1fa125321eb22bf01a601b664846e41da6a2f0bd7045dc99ab37439113f103464dfed1ccbd0b21c12008664b45d9d3c2741c45544e3709e59714f92b4e64cc723a9c42fec282a30e10333c0517435c94c98e2e991a107d0e10bd49f482618105eb3707615be5168b5e768f26da75af8b8edca3f731b39b7b7d95d705216576caa88a842fbd952c3c050c36ac3cfe1fea4fee1e0c2dad868896e8017e730474689782461ffeea45350aa85a296bed8c754c1f33bcae140e9e401793854a3f3272df4c38468026398ed83ab43253857a5f908aa42fe699da16074643c59ac9abd645f6ce56ffd387ce9425bbdd0904eb964535ef0264baa96a761127d9661fa9656b01dcedca5403684017c3cea522b9d0d7d2c1c5ce6705b3a229ea397ebbb6e739db9a633bba95245b066d97817abb59f1a2d0ae3660624a7546bdfdc595f569eff56a9092f91fb0174d3668c82cd6b7bd000b459b6e85525a13051fe79d9600a65076e8e6e8401a09f84d98a892cea509dbcc49dff007165c56a9a3dec4a836ae8cfe3a79d75cb9ea42c86cdbc65a02395f28d9c40d4af37c7fb230f89c4c7214e0ca64ef3dc8a1d018585af8cd37f1b3d02133d6fe80bcec3dd2e46bae80d079e19905d57755c19ef48fa631cd0ca9dff2ce59c3fbd106371b739ae23c11d2e4b5050df3aa57bc3ab110091e8f197d7ea7f982d7b6de1431ba17c016eb5c90c6488ef4af55d1c8e90b036442567f88cc22f09456b5392c1a01d7906f9c1ba1c60d56b02c32604b171d78d18a66c427a762bf343848bb470418517214a4955021b896f5c2491aa420e10ddd79d73504d43dc7f3d3a7cad4ee8800b79799c5087280eaf581739782871d9bd011e1bb99e680c12fc8ce5ec622805e369b70f9d3fbde89356f20134208bcc53f5685defc85562ccc6ef8e563512e2ef3903f69b351b27917cd40cb4755cc025b63e8ce8a119934ddb1a05f892de3104bc0eea57a79a1d11fd8793d3402519bcd547ac86d5d08844c8e0e06ed90712219973299ec61efbaf47fa228b9c3ac73ef0bdf392e8af9da1670deba8422424c79a1d409a36a7b5631d6ef8ea610f8aba85ef148444033a63aa785b4094aa4d0739ee113297af9f2e38a86863c0cda75e0178488e1f0af10ad4547106f833c1a240e531c6992493711981d1e786d5bb9f038b3ecc0152d0ada8e31e942f0cf0f417d8b27dbbb0bf8645bf6da146f6de5bee2d534a32054e078807ad07718a24a8ac4e35d890ad5c2724f16d609dd60909e8434a2ac2a836451c164631aabb4afadbe7234eb348ae7bd187c34518c544b606abf2a35fc832a8f20bb9882abf9083a85272922a9f3f10f83ccc0ba0e7e76f06ee41bf357e20f0f98e430f0a7d91089e91118741c94c8441f99dc738f2b767148392816022aa7c54957cc3a07c94a6dafc460b74aa7cb95ba37ddc9af91b72010db787046ddaeee9913df263116bda45011424a821e2a0ca88a4ca288320629129a3922a5feb9edb1a8ebb491fd07d7ff4f33131a01f81bc18d087a32a3f21ce3ffe9a27ebf4d644450b448a68f71702912306e5279f3f0fd8bebf180643dc4fcea344a0dc73fbf984b6aded8d4031557eb42f8c55fbeedbd35a7eac1f2fd6ee38d73caff2734413f6f9781269665f3857850a848cb0a68e6643bc21fa5603ce9f8badaab2732754c3f6c5438119ff971656c365c35b0cfa8750347ec8ad17f8b7cf33910b28260cd66d07872b843455fe9c916767fca59cdba679231fcc495af94b7630420d294fab9670fb589123682806b3f9412c0aaaf1bbade91ac3007c386afcc21b996a0a6e65c29943fb3db0f2639135813df3636b961475d8247caa8c32a832161183a8f243435019b8d41f8cf6fbe30330fdec829c1ab20b722ae8e9b603560ff2baf6a674f9fdf24340d0fe8ffb42fa759f03b804b37dac9c17b37924d233287f7a320ccafdd495228723d5bfe652f693cae0fd588382200fc8034a1918940c4a1918949fede0035cc23e199647062eedcc9947904740df7de8b7080d252a74048d01ddfd843c1e1bacc973a4aa4ae984d74da7ca28a5942fa5941fca9b2a41f2773048bebbfc8c8aadd9ce932829a87f2851b2c89a24a84a9632a892ca223a88aacadc89e0541c4911aab81a341c3915479286a7e169c8849a4d6d7742e3735c435f42b71a3acd872a7c0e92cc8a67fa99b009a45101ccf132a4981ac61583bf42634d31f44c89bf68258b2d816a7f64b2355ef9b78f44060d8217b5579f2bdb75615b118cdd22b268408eab8c0a30079762ed975fdc00cf740c0cf6c715c715a80d1ac6d59cab5e31d831b256d90e58f1f402bf7f51090de36aa5f9dc69a96a485b3b2f43f384e30f05424b58c2129670920f033d223f77118b7e6ddac3aff77500f300b4a6ee57f7a37b94deead89f8f4d4d7482b3fbca259a67accd2c622ca574d17159b9b06abbecd47ed9acad5e6c466bacea8b2455d6d025874b61a693e2521872d9e18cb87811a45d9ee096d09943d0d02515b2d953d7900d162c2d2b389d26aecf95e9c453a6d3335750fed025f5a2e3927299c19a3e5b13ab73fc7c2e337091a287bfd0c58957fc42171bb88484d4eed4ea4883862cadda5cceea68cd25a569fe2e2997255c5a2e52d8246d5c923869856c5c9460d97481225ff318b2d1417129e47242414244a2c70fead91a1d6ea74d2e35d81997d40a60d0680156f13da8cde9b8e8a036a753b52f7411c300994bca25555d74a48bc7e5845e6c382170f2f7e448688c359e78f4d4170f0fcb8d1323aa2f9620a20746aaa8ee921edcd425402a3192d455854184a6ae2a0c226a2894a186daff2055fad88786ecc343d334eeb70f79b12e97247dfae204a5bfbfb487fc1008d36f54b9ef2ab77db6d14de46d0d79b1723faa1d9bfc4443bfcf6d89d2d73e3d486063638343a59f8b72a0b16a8f711efd0d7994d2fdf0a0f43f3c44cf7527f2b40f79f497f364e5360ff414f4a19fcf711f1e73034dd03743df323843212f9ca18f1f1e30a1ef0559e9d3177da2a7def460e8c74a7ff340de11960f867eda0707b41379b1863c10cc173d17f234fa212f9c55f3b8e9710d41ac212814480d41ffa3abf42797b20f3df6ee516f2bfd3a06f7073424d598df3a6ec411a92110aea1e7bef3f8c3a37bfac138602bfd16b6d20f46f4337c38ac501817e8cfa73f5ff4dbdf50b5077921900afa9017c61a7a11f538ee42dee7f703fa1d1cf26ea820ef47573f5fb7432c00f79a177ae57e47efe0ce5b06b9c4a5ed4715c364b8cfb7ecb5e7626758c79f1cfa257efc44209eb29d6c277382ff841344a230db7122186c9c8ddb20ff1c08069bbfb05f47e4d73c3d13b6cbb5353c432e97941b2eadc904d71456b6d357786c5040bcb21d2e85345371290c654f644a42998bcf2082f6ef8d1cd6134470739b676bb647acacd5d1b3679abd6c75f4cbdadf5a98325653e1d2aa9abc6a7f2b48ed7eb984a8a1df04f9a8b44852639835948e52c39652b7869f63cf80f9a30bee4c83a086ea150424a89e469cbb433972e478d3cb3e1864ecdb47f7f7c3c020f7ca0ff77dac5781656d05b8b41f6ff615e8676f1f1568ec5b81a6b9bbbb979b9b8bc0cdf7628d3dc48f5e883d7ffc48db87747eb83df6336c7f44fb65d01ffb648f8debf61d41fd88a9e6c9f04c3ffdeccb413bd68de351bc05315cf2f78f1ec9091a7f670776638c31464dd334ede3b66d9ab67da1f6db73da16e316372dc6eeee66c36d62c01c342008e658ef4953d0102435751ecedd7df2cc66cf4cd3cc6e681b224733469565685450d190864605368d4ebd83d97bd00634fef66c17b732fde9a1eb0a67ed0af8d8a131f49cbd72b20158f46a7564c1711b43c590494854aa0b798486239984447121b9905cb04ae53a3af283e5e44c29041af64ddf4821700ee7f0f0e8f4f4c4ba1f1e5208349c73466c092751343e179242689c1f29c4a3518cf9b42071e0e2fb73214927b63e4e984bd88f5623d60e68e8a11f68385a71464509834ea98a41974568485574a5622f7b79590f832f5dab1515c0388423d60e96445eaf9ef1cf5ed844d13073c2a0b7aa3f334143ce49e5580c66ad393d6331a8d5112b7a3047b6cfbe9fe315c81d46ac51cbc553dddbd3688b1117cec3c7e8a667fc376f84d333feed654fd09bea2db7994374ad51fc50a03fcba4a021246874ee15b5a021a77a557f4ed5a6f8fedc6a6bacd81af9fe1cab4d194b455ded3ed0ad612aa4293466b4e219ffb0eba0b0ffece828c603a9e8a8a77a387ad5d18a1f7baa6a13f78d563de3bff117cef9a9ea8e56a31597bafa8f98702973c2a0ff68c5259652bd358252fd69e675adf6f76cca4b1dad98069406a7c147abeca533472b3984eeac0eff5e3955f58cbf0a86071a8e56aaea3285ea3fbfea8ff99c9476c6eaee248a0aa1ecde491550f9dcca8deca0b927c776577bcc0b7f681af63b18c4a2a41418e1688bea591db1aa87590dbb56f59741e8ce5f1d4e228d9888c0a023d668151242e387a3558ccdcb116e6578fba6713aa753ade9a23ca41768b3af54746dcfb4a128d2cde38039383145f30279de456a5116cd0add28d2f7cac3a0f167dfc470858c5b9cc3fbc23887a75392c73dea489ceec198c5a7e8c93032543c454f03f56a75c48f9f29dc9ed4d8ddf83a4fa8bad08b869edaf155f525fc890862d1d0534e7c8b3579103b6383357d56d948650fe2c90a5654a691a2ba13957142ae861e44e5946421c2ac8b98d0fd1cb0233484869efa14834b30c8aed053ae837dee2bef62a4781c53a833e1526a629f7da951ed2f85fdb29c547657e5f86d751e34cc27ed5cf4e2ca911bd41024af13d742ca70e2e6c479c499e2879e1327af48b9784e1cd652a20aeac4655634c941eac4cd0e4915d5090686ee82d545ead4dff60cef6ecb840723784ed159090e043de4f3f7f01efeb1d741e10db5de10e305a4440182390a81c6df6e66fe3c0f7dca60e9c18af7ee6eaf826e1363bc76570cd4b6d862b2e5fcdb98d4613f67ce811052aff8aafdfa54fefab53ae27f5c743f73a5b8fd95e911cfc48f1dafe87e48a30f1b7f77f6ddab48bf581d18f6cc7b52c5c822846efc361603c1d1f097237128dc091a2f3f822371278ec491b81387c2a1702338147e0437428f6710a4a19191891d819e9352feb4c0a31a468f8961fe16ba475c1dee2308d5a10559f9b985afc33e2d6012071ae3078715cacff1d323bca1720b73a706e297677012c37c7db35d2cfbf57ec497bbbf96caf65cd97ef38064803a6b1e10d600ed5cf5030c46d7646cc8038ee0a288114e48c13172460d49468048c2430b0b29372083085a182948b5681acc476ed0284910018a22a87001146490b164082dac9e358e14016709393c9f23a891460f4aacaef062cd18b9b377ef2ac075a8cc472a1307c2122492ec08c1c50f7c3885b47a193524557715aa3f0bfbae0a42aafa18dc035d056c39d4ca37e03adb1c0c82ddbd9fcc19743f16a19d15bab1633066d9fa8f2ec676d13041b1ba2a284e94a0a0251c9228ba1f2877033194b80225896d099d755550600006e82ed3dd8d49c6dabbddd77d334c66187bbb77776b2ef213dabb7dbbbdbfe69f53bab3bb3befee3a80c1edeef66ac60283fbfe3d0036237591492c9398ecc0c8366dfaa6cd4c82de9ad7d33377776d76d632759bbb3decb21dd0d8eedd340c7eddeab2d47da95bb7bdbbbd63c750a563984f20d28acc867ae06062f56a7f0422ab7f63b51febc0ee0b6f89c9b9bb32cedd53ba6f5d7c1efeed855d8e0ecbd4e8d576c340dd07f4e99a6cd1644ad904c3b0d9750c8934b5265846837ed1b61a390d8b71f3884da009f60102b732bd18a8fb80bc4f17b78e93a151818666c76705065798b3f36454da8a152bd77ddd397afb807187f4316c1f17be7e66d731249226b56e99ecf3de88411aa578f708d56943b3cf0b73a34c29fb30c70bf73e3a6edbb6b176766adce99dc6be27f7edead0b6afe58e0e346218b631c88c38dd73400448a264309f004149e5cf3e3cd801537ea0c2065d98a1841064643a90d1fb832a95dfe58d4f0d55a8417238124bee2c3f9052390a1de808edf40f825404d4ee700895269018c2c80e7690a2e5c0437ce22ac9684b683a9666858a6b45f9618e48ab6d5b556eae403d51014ae7090f3eb06085cd939c223a4f90ecc0f344072c60010bd693253db0b06a3d0163080b57f08c48314e439140e30228d8e0a25059a4864f73a8fb5043fa6408d1451445703950aeae2a0a2332608e05a11451fd73d0a89ad054553eb7597f86715056e0d2e142a7a7e0cc05bd779d33758f4d7e5083575371c39c04029fe72fec7efb1d1c72fc5ca47486b0fbcf03400f24d68e7a2d6ca5229187c34a1843a5dfc61ef69b0744d68e7bc871011f512565d4ea9021dd1e866e1d318a921894efa61018431f13e1fe96674206a2caaf4d3030f4873ef4d5d05f0db1c9132b38a71a6cd0ae589d5abe061b04803af5dbe029609d90803ef4379c628b077202e487bcf782760ffaf0fbd3dc43837f18c5608be435fcba3504dbcb8c446a83eba4cf0d086d7c406d80426d84a83b2f284d4045524a2912b14829e5e7b2b308896e741b2296918b74ef916ddc70e9641271b1688312915948263c99cba6c66d8f4d12a9bb6edf19cb284d3d12a160983b2834435db7dd32e7de55c452d7bd06ef952a6361d5f86956f554aac5634bd753e3a7d79b2c657169964e1ea1a1a75aba1bdc6198a7a212687c1a2ead4135ee462793a06b42473f3cbca77a8ac90b3387af41678e6cd114dccac43d2d6bceb852ca133fb149a9b2039c2a4930a9c2826d08f4061bdc16f453846e09fa7175395013ac688252277ea02c47a6a80104d7841a41362be8bcc201817e8e90a2120423a83ce96840b5ba2a2a2c2aabcd414ca3950628f2c4293cdc2d85c1293da572bb18acbfed22b99a0aead1e3d8c23a328362efd664317236bcf56c3dcdfb21d76d7563f3398d0620b3f2eaf0df7af3e2ea701bb4afffb1e79a79d1797548d91f258f64d181462c2e836273cb6f908a7302c90bc9e6e405831ad247e3d5821b2f22dccb7075552f1c6af83458175cdccf0e0d339cfd0ca7258c94990e97648d9f25a152e367ae296c8a3ae8644f1c414a8d384c6acc76b2568d99941a33cc71b81466a91a9758824b292e7d4604971a50e36f9819a9518bc8f5d01f19eb5b2bed990e6a9443e8aaa6a0bec8d9781127b038468e31f627c61837c6b8317631eec6e82d7f268a8631c6b831c68d5df7dbc7996270b65a5df7b3d47e61b644a99bddea3e9014900be4ea960bca05c5b2d32d908b65876587bb61d9e16ee604750be4ead6092c8e070e4710ba1d9dcb692928ce0897e272fa432e277e5c0e779303044c8d91ce9ee1010d297fc82636e156266471f5c7974268f3703882d010843de8c5257feca3c16bf652f7433fd010f46271c260a6245ba91894456896b1b0585a42a8fc908515060da0575440accc2344e58f12f4f2403d2dc8cab2434316160b8bc5093f77d3261818643cc90f06fb3dc9bfe134f903bd4054768a5c4025e901bd7468d8b579482e8c859a9be728af7bbc569bba795a41b884d52b6ec325e998ac2f4aad78a8d9d444a957b8a48016c216a0c7ca96e28298dbb4e9e5dd83752b0bdb25b1efea0c06a1923122b8950907a0aa1345f7b9dedd0f0fee254a0ae9fe70df71d1658c516e1e7be86e1f7737e9adec6295284a6de8f6994acaed777b6a43a7b6815cd486621c113464517d3cdf1466827e3d29d84814e55ea050a1fbd26270beb8a80df5ba363493281a825e5b0a3da480e25256670a3aa419d479449da1c8458b35a130c1a062d4f9b99851e75324a8f6da872eab14502eab36bdb4e277a379337e8eecfc97d60b14e65635baaca2cb2a8a6afcccc966adcd5c5ce2e11247172cd6f4f17c3c5dd4f9dd8747e46eb2cc49d6ca5c2caaef0a0974ea16a9d01f19ab6e2fbdaf87c1ed4bc1667e7f8ed09e998fbd68f8f5d4f9f57c575c557e8b4ecb8ecb6b6b3e55be0b152ec597efd263820d97b84a16848ea8724d2fad9d99bf55f9a19cad69a952baac3220ac2905d44b943a9f6940c38fa7cee73e3ca41c82862caa4c85fd0e8e91e2e3014d90abce9797168baa4e14747a26260a1a825e7208ba7d8882eb01f223151a825e753e8867fbf920295ce27efe4d9dd5850983d365c5e07cce65e5b28a51a5806ad3fc4c55e773a3e0c2ea44c1d533f3b91005579de14bab4e4ffb39b5cf65d533f3773013347459d59902aace5f99f9cd300095093b241a3f9ec1ed007c3882891d7c38627573043a240a4e0067a02abbbbbbd0022268d8a4a6a096b811fc86bb0e48aabbbbeb547e9f441852f93b229091020ff632786a0065082ba801a84330c308d59dc7cd68a2fafb6393827248e2eeb2554694d5a28c15f06027b278a9fe534af5efa49851fd476428a95e45f5ef501297b2536ff0f0493bf72bd57f05167c6c4d1c637e5284a8fccb599994d290133d7447a44057f0c0e17cc668ad601b9160a004064c3a1a6507cd088a1ba308452612af6d0c368a64a79c961645080fd84906aa1925081da4119e2cca0b70fc14831d2c4a133ef4c9884a4651826224561e85c90aa2112d235c340a182ba045a0ab9d90a069b046a418248071a305ac699a1290a05a420150578584233624d0afab42020e5d1114852859a0718510683831058d263628d01842070d225ea08142c32656faca41f51f915c63bc9a6883f322167185739eca79cedd91ce8644c77a9a39a9045303cbae90f2921f30327d051ffaa5d484a0fe3c23436d3051051355b4c4b216ab99c3404115c6903d665bac4809eacfb9f698a77df6690147c5b22deaf68d7da19cd5b1fd0e8e4a6818caa9dbbf6cbb3ab60fc71ad435ec632827fb5235867270546eb706009f167054f9196b6b70a050e3ab474c9538a4fc160555f370d9c708b2ef30a8c36033883f9859454ca8efb80e83432808b60acc5fa602839d6519cd0a0c760ed7f12498159406a755307fbec320d8998eef80edd9ccb22ccbb22ccbbe797e649e49af9b314250703a587bc6f5cabdca7e829cf94f4f1ec13e62ae6a2e0b6e7269270fed9f1cf7ebc9385c01c098c2e6b432b46350ded01f124575319136ae2538c73506c7725159ee8c333824705cc45c08755601650681a0ab8b00850a0485ea2b7524111a663a9de93433c85f7ab1eed6ce9230c8d9ce97e9d87412380e5bc235d86e73941826e796dc0c7a058dfb72bb0a1658a85458f0d0d151a9b0e09193d3d383050f89050f4f4f8f0c5288142299482162d475ae8a97119514e3bbbb7377777777777777e3ee2e1645e4b88b496f1548ac847dd84b190b1043f815931826a5dcd14cb16f7f5daa7f40640cb0f5300cc3b22cc3b2176cc48f51e60e63969344cabef9fd0b4efc52d973e86729a5bc8185c79f9f87fbef588d0e054bc80a88ccb59fa34c2c40c791ef8ca495997ff908cd0e1e7d414be1f7b373fc28831c4e2a6b386ba8fd936292277d712981b62cc1a62029e8483ffde17144caff7c44a2cf8efe78f4f9e3c2925141df0c9fdfca61deaef102326ce2a785971a5a15415922d1872da97056d18bbe503ead21a7fef87833c8076d3e50d94f9f6b0f069e894fe9e7230bca2da9e50803833e188c0f039b5cd53ec2ae87d7cf176231a8ea1094eafea13f0241aca31779b12e60c70e061b068e85a585f3b4efeeb9b259e0a64d9a181514e2662751b4432d18bc0714a725d526ed5b765a9ee012fdf8a2e77ab6a767e2733da15568257a6269e6a439b6a60654f42115795b475eac212fcc6a185ac996548b0d6afc168f85db96d4d6446075445761134217c060e4384f8b2fb8920313506dd23e827842df12bf45676b441fbf250997d803551c415c350cad4451f4d1296848b917799d14b4496dda9e5d155a513a8a1347a4bd48f4346dda5ef4fce1218a128011bdf6379c3e1f0f067f2d0cad4435706abc542767d11701ed145ac91818d0cfcb1ef9312fa09f97aeda3cd789212f6cd9094db889009f7c9c41439a05ec885b03ca959bcfcd19b5f821169736e4a49b78826a26d8f44cc76d5ac76d5a134c580cc6ef3e86536a1db769b1326150c56054c26094407f2c80bd7f3030780d379c385742e587cb0aad56314150aee18656ad659960c360dc534baa67b029d4556de2542aff9e36715fcb36a746694f8def49e8729cc76d907c6770da6c271fa33168d8926a49c56fd189dfb2137fe48a2daa1a5b5835b6b46a6c71d5d8f2aa717453e308a7c6514e8da3948eaac68def3df6249a423ff217d296d48bcb6f887c03673355e4efaeaf4be97dc2cb95d2bb73e066ccb26fc433912373153e67fc1d1c3f18893d0c5a3cc1c8ed51b0c90f06d3b4978f022472d31e0548fc8361d3bea658f6edd819feafb1ffbc0080c5e47f955f38c9c0418b092a86d8220cd629ec6f051a156822e6030d571524feb6699f3f6367429ef004a5377e41f4b75946cfbfc30797b2978f012e69cf39a952864b6f7ce11c7d21583fdff2859fe80b7da0ef03ae942a3fb9bdbfa6691fb5f5b2acab59f6eb81a0bb24b097aa27581df2c32ec116a004ab00c6a1caf7a87911882a3f437d48b03ae4c700fb92a0fefdafd337603d69c0ad4c88e5548f71524a22fd8320cd8721415731b4699b19b0edcbe289616b3609f049faaa4df2a3e9197fb0baec9156d6245bb2676be2937aa043240ed53ff324c027295b6d9a33942dd9fa0af68c6f5f38b3cf77a05c1c41d7d57a7457e88e6601eddfd511ce1906db1443cff8fb8cda871d1157adf9c7d0fd3d131fcb9156b8425ea2b6b814469c1a597c6235e2f354afaeaa474955f524a929d455ad31c58b9b7a80ba4b9c40b1024465716955568870bbe273a1b89f175066b1222a24692217868440e4d7907598071afe18d58ec11394508ea99d89aff3da51b14d188fa05837ade83a22040de3111abc1e91efde479c48049be4c74ebc58234ecc89cc129541bf79ec1114d5a656c59b56b5c9553164d6ab6e0c9bc5ca82702b137239d59fc311847aa68a9fca7b40c34cc53553b589dffbfd331697b8ba2771ec31ec69dad48fed601904cb321583ce35cc5435478b1f357bcd0b47557b6ece656d5773f9e01536bea6c519490f626470dccf13bed8d172a9a8fe1f1efed1dfe54e517d77f7c3e75d9a287949fddec49c118726599665bda33ad6ddfbb5bf8db14977b7dc6119b127f1b868e8d260cb01ea2f1fcba2a1a1915ee7c2d759dd5d62f1fca34ae7189ffb23c52fe8fc90c61fa31abf968bc707377f7345d3b5e8ccb8657bd3eeb946539a9de1a795431a1c5728cc0b0098a1bf86fdc1b850637f6095c1a2f41046116affee60eee2d758c272811a62a8a0ca89a9340065842d7218020f6c10441a2cc3ab891554809103173f9c18093ba0e1a460430919b061847413d83042c3c146aad9b861c3a6864f837519343402f814d64409f02f03e600737cc454703a43892ca0c829220934706050fd0bb5ef074d7577770fd5c066eb41159bc55440c40728dbcfa76ddabe1a8eaa1399d4884d75ed833231c93455a860340ca9428732525beca0015661a3fae7a081a9abaaf2a462755555baa8e1d7986950b65d57b86b5440fc69f7eeb8efe4264955ca5fae7bd3324cb6e4a4dc304d868830e766da625b47ea999e19ed9996717560ed5d1759d367cf34fd74bba63967d6ea1916cfd04b2c4b552ceb342bebbb4eb14681ca17d1bb2fc277777729dddddddddda574777797ceedee218c57299d3ee1296d328f4bbba091fbebe813e734e94ba0f1fd5986d0f8f21329c17560440d0ceabbd9bb6733c3aea0f1b11019beebed3de787ee3eb3afdddbbde59ae6cc24a645675c72df959815347ee7ee180bbb62bb3f56b02d9ecca8a46d5546452b158d8800000000c314002028140e0a8622a140280dd5791f14800c7b94427c521b8aa35190c3300c4206114388010400000c01a1a1a1e10401e983ce4a612bb7abf4b571a5eadbcbe7015879ffe8231666ae0086786053be3f38aab5257370cec2c695011eadb50640a97db3fab45c2045cf27117d8e43aaebf24938006dad624fb9fae99f6da2cf83e8583bc05634c1bc8adffd1fd4778e22de9b3d992d02631d5616977f525a6edab730a66003e5237e1d81414fc48e7e9d0e18728e5c718bc5edaa06bb7e23043d7bae8773e749086211280532662ecba64e1fb9a9319e8016e651f525ef0e62ecff85ad35a7eb5d14cedcdd668db44d44352b463136bce7dd7b641c5bca20481af63947911301f3e79c234e011a746a08ca48b171d2a0bab992366c55ed6151514ccc429fa8d3d99a3aa2dd4d1a0747d6b38790970ed1400adafd438c3e8e7fbbe1a172cb5aa5d3262b86bcc46a8bd548b5c037f1f04808867c92ff89fc5fd9d0ddf096d2ced9c33b6f8f038c5f5592ab69bae8881d1a416198029dc8672db87053c7c3aa30f90337e990caa2482ae7c32956d0f88ecd735a439e8f2b9c2853763b2d864d7b69ae726e2402b0fe968c5648e0378c863c37cda40c4fdb06e31a2e922da6186fbe3c0b05fd7282bf0f32e519c9bb1e4db1c9eb1a4b2cd74c0e8816673def172df64e8828505cab8fb6f9d44bd584221146948c9e64ae6f1e20e933b58825ab0939498fdbc91a7597a068b97fdc9137d6d2a3cfc79b1338f8fadb2d1b714a1309ad6cb366423df74f024df94aa5f2dbc450b1059f734962909002663d22399265f405177194a46f26b1347e7d189b543619d296f1693a600fd703092ad935dc1610e0519230a94dd80b54117bafb884a0420588997905b7a7fb71025c688bf6158ce3bed5899b8847f67f9f3b6591f2e4d66d58c30a7e0f47fc3a8b0b7f9d21ef3710ddd035999d290a6019dbf12d61c2c09446315b51571778d51b72f3336acc41445ff004ce046a23dd83f00c25f0402ba6bbacd4db6311109d94b302d00437f22dbe635a07a25a9f4d72e622cc4e640148ba9c39d0477cdb3f467090a260dd3b8fe4f73995f8181da62b96c74c913a048dda5d6ebdb1a412e2196ba7996b592f24045ae40deb859ed3a108a884e0868fe80881e46c32ecb16e576cb6a2d57f827af8454260f120ba075f2130b713e97c9588be24c0f74820043265611c30e8ce6ef221f67171a861c667d66db6a671571a4d7c8976d8cef2ba3619d248d6148b64116c7573e572ff81323fcbbbe9e969ae8620c0b14ec4cefdddb7ce8cb5fc61681c1a6df5e1a94c0a3bc7da83422ab25e5d4ebeb1e463703971bbefd202455f9d2decd6983216f82311fb0c1662e62c3a08167790500e344e8cdfcdcfb01629719df04811d8de3f1f2f42f5ae089ea5b6c8e93722d424740a23a92f85a34088b310a560ea1aed6ab8627945099d3969c70d2113c2400d1ce03418302a5ff7a094a7973ec890874050d80ca3bfaf0de7e6e5232610143cebfcd4df05c26fc7d2e9be5db5a7486629f9a529161f67427adcbd0d4947e1cbd83bf3414482bd562c2614d2eb7c119b51a94380502ab7987829d7d08afa3f3069745c96c3e60a239d63bb3fd1a011e684e4c99a524749c56aa5ebf023a7a0084b2d24b7c26886d675afe3c36bfd4b515591be86d319b00d254d3312568041da42d69f4e598238f5eabb8e224c90f574e961952e927a42f37d0331e22943bf67634915179befb1bd85e237c937face06f4314109d1e51931fff3cc015af25794d3f368af97addfa3d2c0729f90fae10f62cc22c342999243d1f20c43468bafd77d67850c39155ab685374f54042211e42f255e6c36f1fb3e919420d3c79f49f181ecfa0f9716be10d541736f5e950d8030bf7bf92ecde92e77b184c718450f22329482cefc344d20fff924ae289e0ce046e2478c8f6aa454c86b09e733011fc0d506464d04ab04a7e03a2a9c02406ce431186d3a655539904e30ae73cdee548781ce5aab0c0d87fdefa532610c067ff76d37f2bbe0fd8231e014dfd152580a4e1d1c84698eb3cf613cb5ea78e32c4cf3b101649096efd3439a946e7841cce35451f012d13f5c433c80956fcc4de55653dc3cee9cf84118cb42af4c9e48fcdca52891331ed8a91baf49353457f119380c467c13f27a974195a2ec5a8b190ba26ebe7264ad7a1016c04f66bf1200b3b6ed7e38484ad1f16fd8b72c546c025170668a1f531ba6a05397cc157d4ddad01d7e8cf4068d47617adad5fe3eb552fc22e71398cb824a888ce8c24e691244efd2e8d51f0709af78f9e04e17fb5fac8e78dfc85a1bb9718cd96b50fa76e2dcb65482af0d771d7dbf2a6ee11e100e45c937658339c834cec723b2da0f29e2d807a4e11c3bf5fac0dbdbb6bdb9d47a2376d6c9329c9839443c69529e2a3102193e2191a43413599b842bf1ea8f225cd201ccf1c6f005cfdbee4f91e106560225b6ad437135e1f7cd075c4ab8721ed112fb6b7b1ff1e8d22ba7a5a7b8e65935b0ea13b71f5d17d4618600ecdde294a9ef2432c068ff6d21304ef9fde2dd20e039cd0adfa7649afb03e4c9f6b8fb6d53a1586490d2ed7c4746615ef8eee200e532dda1ecb58ad0544c911fa46aa7c4a191fe72a3b5c9b093c7ca18221e4c39b4adc7f4a6f448af8921f0624ef2f037e98beef6edb94eb1fb66017d54610aa9c32c4bf4e05d1dcaa339f8dcd8ee645b5605a150c2c5bfae162064591ce2d5f57fdc288848b25f8ec3552cbf08b4d98f0e6f120fad2509110f1153070769e6617409fef9868b8b538a953f6b9a029e61b1391af099489a927a1a60eab2b2693c38ba8f708eb8a0e7e6887e0d7a13aaa40824d73fcb3875fa0c0dda95eb9ecbd715c5fe46017e3d2f3b3f3d2c99faf4a27c08662949eb81091eec0520601a8c3f7146781b7e32cb09bd2dec205655d05586a07a3f62806a870a466fc3e9cffaaf4080bdad0a6e9cce0dcfec4b79c0d7aeee25ed6a7464a130f1b4fc890aee223f44487fd354a3334c6aa031af351e30f366cee53610387e7476a264f8a296cc0b439023b23d3c954736444ed528b61c938b966b0d1861bf13557be668db291fa8bed60a537355fa2645a9bb3d05f2fe771adac4d3c25384a961b424fb8086291edac3dc3fb1fcbc2c7f5b91e880715bef623cc7079439f8f24de79009efd72356ecdeb65f24fc6fe8988cb80bd0c2504873231c22e18e590069143ad198c7ae545b3052e8af26740f34523f3a7ef348cb00a8d5f94dd3db892b23bf4c96790a17f8a191e73fcfe845a5a32ea5cf617c6bb6ace4c2f6e0d967bebe8050590a24e8392b75b3b297497463e418a79ba8af6af1898ea83aeb9ae3342105aed0a1d528513182c1138c5346f3f7c5732cb0be92e5d764c04d6059452bb0f5035d546a8a0354c0898397a00894461c3ba3b3a713d1b17cc771638e23a7e15b4ff8b529dce4e6eb8d10e9485a399bbe10de375ddae7f9d7d3b51ebb2a3da2dd8b3d78948ace0aefb7cb6dbae464a96faf2b280d16833d355ad70a426c59f10ebb1ebdac95827fdb50e9c83d1295b0181a3a25aba61a41f407dc1c1d53a89bdb570b854def04ba892110794dd3557dd51ba752f47acae29974429b495c0e7c71caf1b75f36234c5ac932bb32663b433f9e4822f8272f0b126b31f9995bcb10db2614d54a952e0c2a53d8be87a20009643f208c012cbf5f70b5b3c0b416d8179442b7f0c06b49a47bfb4d383a0fada0296f5b9592ca44ddca15fa1fd1982e61277dccb7d6de92aceb39878041988da1dbfe7a5911ac4be44679757d71923d3e92c838bc548018afd6828035022487fafbfe0fb6023c2d4067c77222621e8e8450fa36b546071a28d4def58309ce5ef0caa0f586230f05ee9a76a35348fbf18b1b8092b912765fcfbcd5b735fc9b7130b9f84776cbe5d5ac753b337e2a132f7e7b81aff8514becf81128417a6b2fa618c16c58b58163b25c72a9402da1b2ac4ec97ff4924bb392e33cd130ed6f87c53cc9796493a497df3c1bd7e818333c83212f92b6106ce3fcd563a4f00097d5c0131548348810b3dffd4bc545a3106735c9849ea51d4e89684c85912748d653d463e7331c00c429c1528d3381f397a776cb4185e1bd0da327e429e38ac727572b5ffc99d4d14a4c50cd452982d40102a2e7ec569ddb32b06e2e461ba198cf9160f8569b6d7bf886d6c4534a90c8c359b16fb8a5b0b95313c6b3ec754a6d71c3fded2a2a34c3422504cabcaa09646cd38d88856ecb5a4f6bcf0cbbc8af96cc49b9ecf37fdf733852ea52f2270dd774c093da7f1d5638f17360271e82347cce777595923972350c4fa609a666dcad1ab8ff5bd5a6d53728a7d96ad6dfcf6b62e2ed387a6ae846d33f4f41f746bfde5eeb9ab98ddf9901e4eaa19d5e2c7c3bba841a2b6d1ebda30d9e56aa1ce3440578f9123dcae6de9d38ea8b663f720a22ea795fe61d83b525ff0b4e09d1365807c3b342a400a587322e7a2df44f39eea45ec199b219f7e42c1a07b81c818ffda263c6546db434eb16e46ee479ee718a76c70f1a17fd91c50809ba34afb264e2cd3f3b0b67ea3b2e6f8552507ad558587d3f98320fb0d15603a85cab8e84c507a39f6ea6d52cd48017fbba7c6d3979daa97779c64bb5b14eeb1a43ad55c7814db431714c371b9a02217e3046f707da3b5292285aabb9c1681326424dbde4901a1269bdad18270f48521f8d627161790ed92565e55b02ae603dc4d07e844f6df358ea1d4018712c737cf467bf81ebf2ba1c8a0f891d83f2fe236cd8c6825d6cbad69ad64b8a30e6a64daa5596cb7d6164edebc744889e31de316322b2e5bada3e12eb16702e8e058f9f56c0034fd6646094aadbad86dc0f1c676b22ee7ff5cb182932d649c49e674140925fa59b0fa0fe2512ba3173426b62b0e062e54dc82d4de7b18f59ea364a44eea86bead66ea0d4edb8d36bdd72da5a0cce07aff9a1e1c6baa45848391261f294c9de95b90678c40095a0a197af1a49650c4b84d5ff26216fd90bf045aafbd09e21e149ae844745328e38635a1c825caf8b616fa76279363b09b0d4b6b3656dc76df3906c1b2699de32db3e41f234db3f834ed7869ae4cb675a712187605c9077f3c8ad8e96a98cb3c527d610a3ce964f739c205af6f8d52e50f4c66cebc912716b8e37739270f244c74e68a49eab004c3d27ee36fa3a10c084902bbefc7782fd0a94917ab34ed1131240bff2ddabda8d68217547257e39a4806e4cd82f4e158df5c701a79d847b6e931c4ff9837dc6710b929915bdd0c33d2468414ac5d0e84d653bee59b3ccfd9f7618419ff68763153020666a7aae1b6caf11103bbb56abe1995ca62145591e288e74e6b2575eefa46735473a47ae0963581acb042e176021ea84cbc9ae20aa0e5043da79bdd74260b20e4e3723b3778875b7ce126c7bf9e2c515d6aea2a5d0575db23515af83a76d2acc32674b8a0e554727d292c5348996cbcf33c3f1890c3f3f7e06371de462d29d8da90b6891310d2ed5323da0d235fe3518ef135c750e282492a1681da55dce8ab7e8c6595c5ee7dcdcae66e200b93e1c3f0e39861d0f9ab1a464b5e4a352701fea36e854728547420b281b95a52375450a6715d2a8811e698ce910403277c1b19a24cfbe71aa8ea8fd5d41219541bb88eb82bfbe3cb1f16714c82d7e5a6ed8eb16112055bf0d722bdb595672558b4c3b0f8ca8878f1a8365fb554203a7bf62f2cf2873eb642ddd04d15d7ade6aa728a7f5a4344339896ce6e2fac5d8db613f6c469b0a794bd402aa86ebf0a3c3b1cc6d7456a741d2b5082da36a9bcadcbe1f494df4d23820adb0325b80e7134b35946dfd4516f0fa8ea8a511c4bad8af11c656abcb1b7d8677c56f56000f46565c2a392da82c07f09bd702a4c0a165be362b2320ba9060faf2140e6414539e923b6097a79337861534f426b52429698e3757634c09a89e3c44027a27fe08854b634abe7dda607c8a725f1ce5ce61bbb526a1574f2332c2e91e5686d094f06e0ea255282d48566f548ac841a6ed628eae9f30a7f348b5798ec716e1e63e146bbe04ec69a5a92b70691821e4306dc3197fedfdafbf45d60a7d540b7dc06983562a254f91f3d971e0d461838c4f4663e5c48803f7ba934a7feefc92df8f723d771af2881cc0044b5182b1f094692343589c5c3ce6266b719646ec2033452631fb81ddfa735cadb7b5fb06e4c1ac46b238362c2f74b29161092031c1ea93812d64392b95ec841cda9f70e85d9afde7957c8c67c1b7ac622276d091f163e318de860612ace18ac7250a22dcb1ca3a6747a9d6d577eb625cd0d1864e6ac8bd917a17b9211c7e6b8cbe0b1601adbc75e0d37437e1b9f6fea88374cf954b29d057c45c1f599e78788e96debd386871dcf6e3ac77d3d952499c186ef771925e6c145b117b2947dc579b68852680da0cd5d210cc2dd92a535bd98998dccf716d512f41098ad9dfd6bee39c028ad516d4b864a352130fc2a390bc2ce6e28082e1c5d631f544ec6526b86b10a86831662bfaa3f4b6fa8e6a7d078c0c6c615761ad0610615a0ab913901fccebab4575b6dd5cdaaae089ac29779e3e7ec365cb43292bd57b18d4ff63953331587261a9a43628c81633da2c6c1917400293bc1836fad3d25cd36d1e4a6bb00d74134c924aa50e47a0d95557059560ac886bdf7baa6011dbbf4fc52d830dec9b9fa43b49f593d412e885b8e762b7871f856907ee0f5f13fb96566ffef0d718066111d112a813fcf6495e28f86b1b27fab02ad3402f7e94db45fff46e04785068081d15258251248b59ac3b61a8685a457a28015e3a25f3596b2f4591cee02ce02e55994066a2952dc62b0d262d02673170cd3e668e706fd68ea1bd4f550e6883891cc822be931693c924691d1c1e1d4f7d7f41723c1734502a4adee28618fd37187cc9eeeb3769885db90f15077649de0ad8004ebc9c7759ae0b1631e8b4342c45013b258df5ad9a70004c307e4b416c11db374c206c4cf6b138e97b6c8f1ed696881f03a4d929c8be5910997b27fd6dd0abd1c324c8b711eda062958e807290b1232b35591edea0458ecc2930c808f38f337d8b7873d07de16e1926859cf88397d263b74f85dc8fe116f164fbd55c7c9f0648e1efc661a58a182a41000247942f93a333a81d70b46f1dfd4dfaec0fe6e96df77318443d636818233b9a1aafd8a0918124f3968280b5e8db6d68d5fb76d0b757601591861859a30b41f7b864311dd77d64ec09e52b8a6200d5b96483ff1a08c64e1abdb53aa4c189bec174401364027322b1a594c4171c011fd9acbe685d13fafd1155b5d3731348744189c34c5a868ea5034d5ab76124a44453e7ae94e8b716648abd3313f2245fe75a518790ee6bd860d4110b4620ef99096f29bca515ec7a8a7e218efb24bcfe250e557a1b160daa4e839ae821299fba3c346e181ba6ee54ef50f62218191c2e646110c7fb9552613a754b6ef50829eb2c7acd6d7da258b980d6b79c68202992a525964545cac668f22201ccec1875d17c5400f6954336b07f5f6d9448bb4a56032916054331e39ff222329fe615d63d029c43c95b5b776a848f77b552177345d3a70c51132182a70b93ea3a35b5db59d93a874cf153ca06250b83d4e85ac4fd21f48f1d964c003d899cd06e67d868b910092b56856fc4beb8aa1d048058def25e544fcf0ad42edb2390f8d8b386be9ca38572f439313d554e0a644d818e801293250a5752568cf06bdf9d403a9b2581581e2b2620cef6817e2513d9d236062c4c7e71d47a2cdb96e2ae515b6138f6b7eb878da5f8f77bc3a47d40d74fa1870786a6d2d5aec1881e9ccc1b5b5382c61873206b30aa2de3b1cd2946eb9155a11eb75be095605a36fe24beca3f46dbf8200076565936a9bd07318ef951a56840d2760b5d3f06f5390652797e43d1804382304ca9cfdc1a520d2c6d16470406e7b00f5c1bf2ee865e265b57933c07e7ac49333b57ed6d2e987bf0648c3bebd10568f594a54fef63bbdd46ae06bea6c02e1361b26425dd313653747476642519fbafa0ca5c619ecd0d8d30536544bc764662ff785e47da3df2824bf13d3124000d93ac62b01e378b39e44339b14cb3f6f19e8de21e0db5d25fdc9f6b5425f0de23f7b133b1a0c2796081547af54364e5c780fc9b61b3030a368e0f0742a59ddd5ccd2db189427325b4e6108d824132fd0a0b23fa5eed64c0154de9447d8081e891ca74063a0f1c6cba14c6f1d01b72461be709b4225cec100126bb5b8cfeff18490f953011c59332fe5002a225906bd62bec6cc01ba57bb67c947405928ad1d409516e6cc2111a7f4b245ed93e33157d7aac60c29f5ac566a04a28d8ae912095c09e1d8a717195eed3400fa6b2a33857c25430d8e25cbb485a7734f23decfe4cb0136246d696d7bd5a8f7cb27d9e0e9f88e3d38e217f0932f622aabacbef167c12c5c2f45b577e565371c1aea455600e61d7746785dee841877ed4ab20ce73191eb755c71b1b5e87860bf360fe885172148413ed7c284c178886462c6c9ad96c36f9d58a8ddf4e7db5ad1c414036d614ab6706a055bb10b1024ad7b0ba9c09bc16855ff0b6a066a04116da4bee142b273415f387ad5ab2999af931fed38d15a5015c51e52eeac9adc4b1460e10bb53430db97b4c95801a6ee0064f9f4e04cc9348f17849ca2d9bf7fa0e54eaef7573a32c0759844aa6d28ee7c5ef3820b3c29d312e928793d14a8d767fab1c6cf70124da423957d6998b08d8e70fd1e9acd0448d62c4ec4ece6943059b5c311466988aac91a2a6000e0cf33c32c2ed938b24b688a4f47ec8f9ddde2529d0908db7ea33852b9508ee3df6bf4bafd63ca58c212c3b7c9c5dab7ee926103b0ff86755c750d42554a784b67cfab4149af0e84147862ecb33f3c2d4e6cb6d3f193016d57f9647e9f72632fdf109a9a03e6f33102644f2936bfd32c36132e3c732519f94f183439145d9aeff32c6b33f1f6d9ddf2782c7ff7cfe8315a58d583bd1da523b74bc197e425fd347455781657d21a604ea2d1c6a61498e7795011fb7cb9c9a0582e61dc235de60aca23336dd7c3919c8a60e40b2278759087bb27764f8ba442cb286006859b88895afa669777c957970595b0634849a644d3abb20743687f6224aee60217e063a984ff0041d3cd96427aded2c134c177835c94d979c500c7ebbd45c7e298c3024e87f2fae3cf9b387df1aff2debc4c36266a35abfafda06677ee4aed45ea1d162ea4b07ffe0d896b3251f3fd6f8b4ae8326341c22c80f67e96f8b69a2605b85f9c41aebe7c1726168061f9466f741d8dc2c2b9c7419afe0ad1ede1c63589d7ebf3c7367cf0e989410d99b1cb864bb89e530cda1fcf48140603b4e951025008a02d7f3f9fcbddde94c04116ba185ccaea1b612aa3b4e455c6a4313e25d355f1f19a4ebca2e838295b115369c9c29250f19602f14c6b0244e4c3cb24b2ce00c941a8041e75fda9162cb1ede9c952250f2e490f1d9ee8749f6a125c14528a91335c3586361713873f476bc0e95d9c3e63185597be638b303e0dd98410ac0ae2123d103c86f65a063575d65d966a1bb4f3989255a66f416e4c24fa0fb966400406cbdbe6f5c5e0cfcdc27aa29cac46a271ab15ea0edd8082bc2fe04e96a76b8de668367494d6faacd0f599f49a1b663b9b6d788d65b2a5d50806c2b61f14ad00e7109af9ae52f9e1a72baecc97105978cbccfd285039611c331721a1c5b03ceefc1d462466cc4c82b7118388381beaa33698df33dea7705a72313a0a11b1794cfdd34aa5c5193ae19d430e266f5d44b75e90d8687c5df4330b5d85a7fc2333b1f4de42e81f4010680e685460ef1ce6a69059c23cead98e7389fa73de605378ea7be2081e644893be419ada6587a5c49e5429ef3c71f9b5db7274a10e5d6395b5ce7a840fdc46a1dba8809ac298c9ae2fce712afd061268584647a2898d835c9b46a0a12313a1104733787ad0c5d6802643b91ff62acf2c82d77ed5132ca3285625090c1e8dae7eec8c7de3cd1a9fa2bb18e2fef8e027c81c605442e72202d737afaea1c9238d1c50e7a9521401a9adab010825ba62cfceaedfcb5caeb9f21d40698a7d1962e7ce6d4408558f08810790d35b41d08538af3a405f1c74c11c6fabc5a1b7873471fbaff66082cea7f23a77f0ac8b2750613001fa7b996e2506e68ce1342aff3707f7bc4121f1f4836702d2f9c2f72b0a3c31f12815bf6d85abbf801a1e8f0872c3a15949140dcf51aab5161b952f270a767bb4028b4355eb3c5df3ea566b519fae499b336dbdd0034d27e0412cd9bffa2e104e5ac111fc0af6829abe99e0dc69ace021fbde38884de330553da831f514f9620980d53bcc89e6fcb3f7aa069f7274e4d1fc423c3192d0762f3026d8059c93268166a3ed3226d87e8cae95f521d717d476df19c6c32b517928a497981816204b4da97c49a43d0df781361e537597294c62ec21b80fa33f0cf943d490cde9fd8caa75f047cc2846a06e3b0590bc61317cbf74557bcca8c5c1927917fbfe544ab58132483070fed596a803f145812c8451e061a0fd1cec5be1e0f3ea6a4eea431c73fb42b3f6e92cd8e6026e1c9e1d4f63b5eb577cbd1c4caae1abff084adc201354d66aa480b5b5ac09de92bd7453364b4d02e202bdf9414f209319fb9783bdc67dbac2a279d0841840224fc9f36e85ad20ab3ee48c4f727acca6d90c5e3e08e7f1c0d434ac31992067e52589bd70baf8f2bd1bcfb4cd05872ba2b8115cb4261c5d4f8561e99ea37e54f3b5628e0eab2c010a4be4d4e092eab06202e01b5d9fa330b80bebef90a93601529de5716a3117d6c21553cc7831f5d625c930af459030a6c6a6f19cb629730a10141ebb17f079a22695cb13b7eaeca37db1fc789c74e5dabf39d6f3e241bd10366ff7aa30c0adfc24ace38952d022c989cc49f3eae24ddbb76bbd5258308b788d5b514f1f55408c1a082f3228999069891d4ac10c4443dce6bccd78e2c0f922c021837a8fc394fb3d3dd276ca5761ba6992975a0bafe0921e02059bc8af0af858daea96088a5d8b705513da8abe3e195ce4e735d93918cf241bd939dcc29b0405342e14138ed38395ab5b7f11f47c2058611cd78fa78316230a44a318ca97a3c62ce9f51ad3567f5405537983805ed53a43263f8258a5c9a4bf4193aea2100516212dd099a17c8df11034c1c5799c2c3bf58965c0f698f2eaa5f7112e8aa3406fe720e24d32aa87623608bf199bddb26cd1ff61206386447a7ab103aa8533f7e85d82d8774d45b98490c49533b533e4fb07337c233c8b92713d60a399eb8fe2835fbae799ef466705fb509b1685db18a03bf4aeeffb3b8789f41fa07e582b62f09849afcfb38308591b8d039e06199bb7d379da4e00e2ca53a562d68f968b65f34848dd90323ee0b662ff43d96a80ae1836bb5782faa0ca1a85d764cb0b160fb1e52fcf4c9180e9918d0f592390d22d15c02e13b4f479c5d5cc7bbefc54516a0cd42c5b5c321fcd2e4f2342f6c2f23e372e2870049a4a5c34ed31f9681804b87f4a0d9a58382204a7cea0340052b2e04e79ab655b2c33e439aa1eb21440bda954b6299ac24ea2c2acec0e7a25fd946597a417b6ceeb362445101f3c1aca876831b90ab82f7c54f719020c339d4002dcabce40e53a0885c8ddeebf7a6076b20067d441abd189c73ca658d03b0ac75b8eeee3c0058cff9eecba2bb104f2dc58aa28de0b948f70d766c2bdca580fddab47c956f2ee0e7320c0f7240158e0a47740cac8135253114c320f0bcb5dcb0d255622bb829f1d336807c36d80300817fb4bde85e5b8ca934fc86761569d600868172fdc812dc691d05c8771a4af19205d0b2208a39817cbd4f27fd5e39654672c7c3dad964a4ba81997acdaa0da28b09d24e2edfabb076ea51a57db8f62d5856622aac54779df9e772e1950e7760f4c6a92d6097547851bca91341e00083c9f4bdd38ae9c0e35ee66c3a782c57a33ccba9ee290cb6d419028bbe604c94e5b3376c74c8674315f677cc3fdd9c911135be6c851c69a849b412aa9431b2df2c379161043b07958a2504981216c88c4a19958b24f12505ebac44a867e372b25564c8c6dd2bdf4107aeabb013d905aa9d8402e2f240c71843b3338d51bf0fea21c56384eccc21d851265d5b153c629fb42d61a7c44acf4a775cd51cb542092f1a7d277c0a8ed8faaf6ca757907baf79c4d27bc59dccab6b8aa013bb33e935aac0297b7ab84c3ef8424a0483a0514c666d4353269f1f337080255f4f6988711e7ef29540ae26fa8b6ea3e426b7fd1fcbafe8b0b9f8f32df2688fd4e12dadac434da654e79ffcdc7840f941ba79780e1b26eebe4900f90e568eaa00b4190b08137781db84e2f7e054b622d8947fbb61d9110ab1fa869511c3ac8fdef0ab9849e713c3afa2698579f5fe3fb00cdf675d01097db1e5e253c9ecf4b8865f26020b493a808fcba393e7639c1ba8823dd8a2544535ff8f631fe109b6e93e2ab866abb17d2facec2281ef5a8f44d4eaee616cc86e898821961d5c087ff70cb129e21d1ab9cd0bf2aa5f266a7db9773fc56941e7bbd0e2fdab9294b0017607d546ef1f207ad150db4d55bd2b692a6267b60060080f3a744d370d865a551f622f4cd33f30c41e4fb7ec890af5eb34833e2625bb6e6c6cc3731dc9454b6649992891d02b37d9e232518f9be80964a5b5f507d48f004c2572b691494912209bce16c6edc8a72c09384770937090c304a3de453f1068c5de2a46f5911e2e65b263beab8ca3d21eb5f687a182399c6dabcbbb5c7a606f61cb1ad273c12ba3193f6a3555b627e9267b7c8d54d4564357096134831a58b456c2f18759e5c30dd4f27ae12419711f06fed87f5e6373a97371addef54496d8a0b0c96f6ef3dbfd8fcdd996a38b5c28144ea25ab65d120b50164f271481de311bda1f0adacb7099c20b8f1f867ae79e7d3ef0989b95c00200ee8ace2b262f8e8cb24aeaf79236283d16a6046ee47d60910dc6dbc74986157c9dba197942cf88d1a4d67e834ca082254c518b5ace8e699d6a27830a9e4598b4bb8b847e443c9167cdd3d5e215d1fb87694655d02026bffa14c702070a35513ce47185dd84bcb2ccc312c86b138fc017a04047ca3ffa1cc1e04b0471a7df0cecd238f8b61045b5b7b85b2778e44c0400d26bc63e793a5e56dd818035414a8e1d1e9c20448b0285146a5ebcc8b9ff63fbd1eb9a18902861af74c263b495674d326d4f1b5ae24dc04235d6a5871e282cc6c3ca117b0ac0ab3fa9471a8ada79b98f6a7479546846354009887cf5a2b780c46c9e88fdc6f4d260b4f6bbb07055fc12f563ceb821d24a6001bdda50b8514b830dfeee4c0febdd52e3498ccca428447e7596251fda847449031dc08be8b1f11f31136b1f7c892d119ffc901369d78e4775486dbb1f808fa9a90d74f60f35af8b1ea6e30085cf5464162ff287a3cd9037db1309ab7e450ac951da4e144b979e7afdb6eb3c59c3e42c3c4eb4b7c46810138a84dad981f10fd45b2b0cecff61ca374e214391e3651d174f963a3c22edbbc2b4762be553992d823064aaadfdace5e3383e3342f7c28e790621370ad7e19fa8b6514dfb04afa1770fd3f625f37d92b42a0c2ac069fd52cc9ed1a4cc630ebfb903fa144e45fe2f2f269c9e42994e7880b660b6059b2f952316c952d1320cb2e904a6095fc03426c9e33d750fd49af5865802da8fbe05bb61e10e59e64ba7f22e33234c233067a9c902da28e705e8fce2632b2234d762d8427875ae20655a404e5189fd0c32cd198bd1e67cbe65776ec541f75725fdd595c0a38d819f57f0c865bdfef0a123fc932ae652846fb71329e4301403fed976f052fb366908101d1420cb5ab3a2e8a008e5b2e8ab10f7b54a4f157930783e4ee80b3b4e8b4351b7d96b1ca512a52e2777dde069aaaeabae1415234b755bbdf038b4c9c636f1781e0c9d5702619bffed4b1ee09ab492b2c2ae486141478c759ac8fbb8fdd708d88eaa37b93309361e14f149e8751b6e9cf0d21aaec2a4fd22424b030d1b711373378d3f2b108205bc89a0fc22d94a6caf89130e24a4b664e6482aaeab2071d7eb8447991e4998fb0a544ffc4e2236bd7132fdcdda54d5d287473e4d92b0a0f01ca0207ce22b5959845c1a37cf08a7876ca87a073df705bb6f097abfe25f69a3c0d28aa85f587235563171dba4017b05be22407833d8b888ce31ee2c7c49b70dde9330715f074d7fc99f13d2d4517dbfcadbd92d1a08e9de9c09894dcba5afa9a8496fa59c10369d02e1fa85f9cc92ab9a0bb569bb10644932719f5bdcf58f59b038c5f00844a71b212c983244e8e4d2f89992d7efa1e525514f8ac07add484109b0b505bddfa80ef11366ac550f3cfcae6505d398897e6e9774e34889d7e29062651a18dc9049de8fd8f728638bce4c7f4034f87af9fdc8f5276d7c92b95c5965370be9980fe5013f7deb40c3c99156c0140ffc692660e676f346d2fd250e891edec77a20d6ac865af5e16ef8f2d5c29a60122e24ed8ac078ce6a4774a16453e6c3515919a19e9a082cd38a234950bacdb7bb65940f5e49264adc169e6dbd166b9ebde956c105ef3eeeaf18f3db1e9fe6d01c8ef5d021fc6a5327a995ccd897101f80cbeb40403d29ac26c1238757ce5a1a20d53862eb104bd175d6a784d29452619a3df71509de1e6f1cabf1ac30c824358d0ef11de2bd2e1a4f622388de9359690ba68eb3a64ac585a6462100e33a8547e289aaf8dd0caa1f46a5d531b4bcbef302e3b89990e61bda4ecca0e8b21a04a14200b3bedf0bdd84ba6c8b0b555f6409df77d275a220b8b9ec24d6221ff2a41ab7f2a22e794074b32aaf49fbb64fba0d638d9a898bb53cea21a4aa0e9ff84b16a683a09b813d5806d77e0257e3c25e24403e5b9dfdbd085a0848d39bf06488230c2207e14559d14d5aaed34b2c329e2e976e3a89871c6e99454b47dc74bd644319ee318f16086d529ad4a0c43cacba8588dadb42787e7350346c1a756f850427d29d0ffdec9595d5c7781ce1bfb0b162d2316869d3b543797278f1b12fb4008544dde7b50f4037123fcce415959a57069de6ee7798652b2bd880ffe3ef5420a107ebda829520ae1485f39718f1e4c37a76c0f89d5ddb8c0e0151365c55a882af011f68f1ae2e2c234ab47de764e1a4f0e56d9875fc1285374a7c932a148e19d07f2b166100373d7cca9a35e84b853ab5a466883524aafa1ed5658def66d2c47d900958a0999aaf136d0dc2823c844678758319fe0ff8cf83606ce97803e2a8f2e17b91d8a32d578826b569971ceeb4ec02ee42bb33cc0e28dc11c31b0720bef887e1d5fb6ae55f4eb868cb08bf90af4b177cb2b87372d05c8a8e4e36b41272f5db78f588a00c41a03bc91cc2c36f99a34289fa8cf87d79849b02b65f60e86a86f99564ed68387b13dd1bdd03a46182898608e64a184cb5bd6595cde5a7640fdbd1bed3f31429a13b670c2c5cc560094ab5f33d0985d002c2073b4d6708a762866ac31e59cc85688880200f7b96c3ec3253b3ec0d4cb473cf64d086966c43ea795eeb3969a3206e04aa27c26b78608b792d58b28b6a00708f411f2866305c1366ec64073a9279b897130ae54d0c6613659337c18e24f898e5764ad4d0a5969405af3de882a36cb9db293fa708f06bd7e6ef564437495b323a059acbb6475c61ab6c790405c2b73d44b7e36b3817d50c205e683597a635e046dd05c7ab7f5f78af0bb56e20267a61588215a7c0747783b33c163c6826b63d16153a7c69bd85b0a0a5e774840686ee3e16a40c1c8d988141d38fc59961dd4ddbd070d2b6a821d5c2b5399bd5282a254991490794b29885002944bfdc2a5d20771c16e2159a1218245b9dce9fd7cd68e43a68f6adca3335f95d8f4f039110e35570596fa1bb337e5483c07cea00464c0f6340f2b745176a1cc27b1a1e475554e68745c707a7b1ac7d52d53c3a75cf473e373008d059e66a6af6e14efef834deb1e49c8363aea50c3128860a73108b8653051b7b1e92db628c0911205293157aa66742ee260d84aa97da890659795ff8fa3ea354233100f79661c877002a330269667e22abc6f6f402d03820e72b032dffa4176ca95388544e597ff450acb3768a3a6ff07a2ee61c022b280008dc3341cff227e82a92a48b73d4f1d6f94703bb6f6180ad372da8b700cfd304e00c673b00ea4c97d71207c3f715829bd40c52de64a26575c97194d987472c6bb0c0c3df644584bc3b2b150562c93c3e28e7c2994da751cf6c2e24a9a47299ee0e81064a86458fe45153fdc55ec7d0abd71e6041b94c968fb921e379638866031bcb6494e255086180486a00514cf3cbc211ccb7f9edec5c9b3cb00670064e2620fa6f7325ac078a723352b5c9c0aa3ca05bec01c8c0e0e4cc2bdbc084d97d202022022c6da2f0cfd9847b83e42e8efb1caf1bb12f58aff937c8b7071affae6f9770b294916f334f848594f47f1d80cdc5a8aa8066cae49ab879780c32be8dd184955bec8ad84c6314f0224bf62b8c273b4780acb813cfec13e1c2e54f46aae5b88395d0ea6ba0ab48a28fe254591e152981f6bbb7c499156f972a225890122309b26760760df423f1b2ee9a8c257355f6de3106032dfd3402bf5826624b21fc5f2795b8169d430b733828dbf3c9bc5058243247b3fd2c9ff7e3578b1ba42407a8ec77a0a616280ae656e2cb30a5602b9fc8cd0f31f05e81127a1ffd6122378bad9b7be1e5fb6d3add0a036c05d05cc8a7792ba6e393586225161338b0c5e73b1a8a8ae82676c5d90cc69ea8b41a7f8f622a419d523aeeba319ee25c182e84cb0a876f46e38dc927a6607249472599449c43cad37017edd06c44854f32c6a530a2ba1684afb5bb7f990683c25e0af842773ca1dc544664d9ea1a33a9c34d749e350437e28948d25fe8bce22205e9e64779965a90371e83f18070a0be16ca1c52a9e0942389612e78fe49197066b667bff481b5235a034ac3e20ff38397c234c9639b011580640fe2fa70d9d05b07103d48f5db969bb6ee9210cb22b9288894f5a1858c83d1fda6853dd465cd8746e9ae38b76b3ea6b26a12c807852e801755a3912eed950f8e9e6a8b2942811fa52a5694cfe43ba71842108c628c75d8e76d1565917349dab0f5de87d07ada48e63a86d5873d7041e2544c040addc9e4f24547190a1c37ebaa53f1d40f74e070affde7556a8455ab16f110e175c8c012dbceb8bf6c4fe01e6bb653d105c4a0dbbc0077f194fda64173a13b16a16285c322486a4686740b10f6edcc097de6b01b65a96a79e65806f1851588146f64c1147e91697e9d533f67659563ed5f532ef74255f5a3f0fb5d0fbd90c8df91f400f3ce1c0ad5d88b30507b91deaceabd55e2d7829e5cf48eadbcaa6049d675f187d54708400b6e25143cd806ae541d4ea1d75078e2629f8af197102a8704802f8cda3a3bbe9b42e42e42406afec569b68da2011f0b26f270771d1eacd0e1c51864849c35304f3b3675281381949c71af2defcba6573da0332552d5ab10700b10df5c632b44807397e502cd30e4453aaeac10a82bbcdb6d38bf6664d7923d161c5fd6893c1f27fe55ad050a6a85cd2d02b3afb01bc95d3fe53c8364cbce9f999b953b37e37211bf006a221b9d5cba4ef87cf1e7291801cdccce8151331ced351d958fe36157e3198df6f7006c0680c7c543c7444b59f1466620081cd43ea411948803fd2676471a475f185535f742f8e59ca83014c7e29a0b6457819cf97e58e2ee61818caaa0bfb9f91b9408421b3d52bef5e83b5cc09d14a6a882b59338c54387f814ab5b3a05b0350113f5f896e6b45d9a237bcf787512753835e730551328fb8847a3854c05070d8cbc7bb8d010678944c2cae247fa84a0506c6bb94f2b9ab0587092b8a0659a98d7746884568947620299e044056fa3874491c000a8f5565ef4aad64239eebd058661a007b3da4858b3829d328436f4c2ed70d4d34eb049f43134eb139e3721314321e05c38c7e03885225716bde74a31f1c1098520c43c16ce6e26e64b2bdf0473d2424a8189c56e5c775c79c748a0b262e6dca406946198cec722c2657160bfc70f5cf9f0842de350ca281c4a834a00e7d48243e10891d41236c203d409cde66bdbe819b14fe2ee1472a2081da8e12ac5d3649929042f7af67079de41709f5963eaaaf79e9f1594f165fffb4a57d045888440c94d9755307aa21d54f019e27d0c8216e3ab4bf117534fa427c7f1446312cb9c372755e2b66083c850e9d2001cc60aa974793f752a42b4557e4ec03640c22959418c919d3821fa258fc174ce09ae7250109ba504f1de5f7e79a37a52f914bfa5a7e0cefbd7154f5d0889ba72ac6aa4964d5bc9e58f48d3562d72b5297f64ff6750e123ac4e6acd28860023519840909fb43fada223b66311d388d094404322a6d81752ee818253a9475a2fb0b6b2ae3549f32b2811898298450f86ff0cb3fdc48f53bb8230702f67e12ed94b7ad29b8c917adc1306050403c989e093c80bce848b458a84a13f358877bf01f884de93e85512e2c7153e1ad916bf64c1df46668851f33a4bdcde32062c47cffe8a411aa31293889b08094b2ce29617d72e6e04ffcb778e5810608d2775c6788c49f3ccf212632cc670202d8cd64c836584edddbf866d5a0a1bc51401eff4cc7f351687cc147b15661266053ae7f6c8758d154d1f059bcf321eb6727e4ae69830d0b043e9d8f75ea822d4b700d0ba5e5fdab12608d61963078f0078fd33cb595f1300aa5ea9ce52296a2e039553ba9d8991e8f27c20e8816e6c1fb57e3157e301ba114ef298cb44f7fd4bb61d338feb444b042b57e7eedfb53ee0a3ab66f535a028bb72844cef7f5a0b8c22614c858bea2d218984b811260a63091f0aef29d9eeb7a11815f0c2905cf5eadb94e33714d9886953569ac27a6fb49e10f57571d9bafbb59e0a5d5621967e02475a8c2e75bf1ce78830441babba6eac0b78749ee37e7f0d68a7730c56dc53fe8eaa8ac4f48b90f7420ffc94eed65e7298b2d9fcbe137a03422cf1b724d06af5551c167a9f7a53f8a590381853a2d9a2ea00d2d50c025a428b41463159ef5cfe4c7984ba8db0e18d69d9cf0e72f6dfcf9e917b8febe5142629084316c0af9b2eaced12e01d56e8fd3d44f6e52f55936e5d97d6851ca352de91c81493f91fd0e64d93f3d6c7daf0a656f602c4b8081f0528030b13d18456ee6464e448f8c13cd3b331461eff815ad05d282e07149ad290b601d055f8e0111f93049a2954da61346a0fec500c8eadbcdfe0e0526d191cc2ea3be1fe87891c06b944c7b0b125a07fca4756f2baca4f08e4e56030db3349397af129be3fc727ca4bb8595889c6ec668213e8bc1ed7601ec83d3dccb74c98408e2fa004471da85a0006f66f129137092f1cdac0b76ebb385bcb05dd286d28b860576031f4cfa9e88f1048f3fb9cf46ccc22c59943d6d92ce16c059de43c51cef8609baccee8f78cea9af5a1273d3444b197fb00066485f965a7cf34029c64ee9f45c2060eb133ae04852df3418c4ea30864b06a977140c5a1c044fcfea0b6fe884108ebc68f7bccc8bff275ee807813e4de89913b1dee7782cbcf40ea551612d4b79302bacb1caffe4fffeb96de05a8854900b5ba20a5fb6bf1584be07c3bf0d02e5c812ad2d116ae18c23a1089e5affd38d0ac94707b71ef49fac74b0724f1211c6767ed483039a1410930a174526e59327a7f5e2f3ee385cfdf8e2da109c8d2876de7e698397bdf3850b84a6bd0016e7b09068f770f89b05b6a3dbba8e655024d92742890112a7b79d42e3bb80cd87fdf4175f1b579516260fc2e4192c67711a730a0f56db68958fe5d10bca0f12d0f76c9b1073818ccd3d9aee9487a7c5d856fd330c4fde9b739a8fad795cb67c55e2f12437b75fc936224bfea1f595484495d23c3d38511b4d9aa91314dd4db93640c24631901099ec6187349d5eb5a046337edc560176394477350dd4cfe8ddb7522552ec1e7eb27030b5d0eaf75916c871985d8a599455baea984c8509597bd51b0b394997e3ec15d0b8470f6b9c48323805a40d99ea0712ee671de2931f48d1c4ce2f678656c4272f546e417d4bb1ed47aeb9dd636f57e448effbe41ef4872ac6d4188ac656f06620d33684baf83ae163074f9c0b3bf89668a1938eeba77a9617225fa2a48f7d070530ea2b3870c738ca7d9f8d6bbdf50316c2b9feb501a7363c141db6f6f17085974c80a4bb6f113addfdb706abfee03fc750c0e7d5b839e99032044c39c00c6abff8630149cf357ef7e2e911688e86ad65d72623901887a88be3b5e57f352b2dd49f6017998e92d6f2293f96a9424dddac370d836728eeaa65b3dd9e291028da4c372102a4bcd78449a80e8a8065c9e1082af5c9822f7376f4144d2618735d662042b620d952883594c635fd48598c935a64ffae196a05363467158fab00ff2c46f0ed5bcb6c0d7694cbf3603eeaf4df65f57de22899fb2252a56ffd87334ea66c268fe4dee7691ff316bdb3e8f5d2068d03019e46d575624748de53eae6cf657e062f68b285dff153220dfbe8175298e486c8902c34e86a817486ab2b633665da1405b7e8049858838486c0f2bc9980a26dc256ab2b9b23f674edfa2fce7235d4359ea7658298f414f35cbd01640261e685d312c712108b5222968d3c3987024f1b2a13ed8d435b48a84964f13defb8c2d3e3298cdb00214e9256f6695d5e90eb07291830191623f0af066c90ee6d67e442f72d2b595d051eccd5dd13fea3f49bd8e59c8c14e54e07c69a4daf75c65d6a6d2fae2228c1b54becd429455926636a0ace266e5cf4f8858c594513daf01a9cabc4c0564558d66727d3072cceacf30b07f3e41001731226a910b6f8276d68b44a9d65ff07fe6bf78e6161bc560e7030658f74ca8b837e5e83bf40eef8f01580e61c01bc4ff4fb9331bb1afaa942c46aeca2954f37c91e34b09d336d8981d37b9f6f61b022d73c6b97a7974149990735b37f23909c0f09186d4158a94a58b36baf38f31732d504c915688541ac72b56c2c87b1a5fa209d10953532cada4a532da955deb38c9814f23dd2c1453f80c22f3c9c18b3421054ad533db055a0aae0e7aae0d5e951214edada2a811d1851ba1c8b7cabb5563d6056f5769aabe79506acd399fe2c875212435e645d02787b8e7d7fade0b24b4bde5b9e52b71e227e41d4b07f3430fcf261b8b99be508bea32967486ec4396a98e13b64bad948190c46aac272f97caf07ed42c51ec9776bbfcb3c4a699d73c2b80c885eca8e7463523a0b889de55d7185a86e9885e770afb57511084999f110c09b3c63a7f6cd78f01f42b069ca42bc9fa2d11fe1210ae06b41501874b81d31b006bac794b47a1d201387f46ca7e2e1167a5265b7f3e353366f14531bff649b245ebbeded86883ca460ec39f0860a5aa7281f847e09979cfafcf47f8006ad47d16524db1cbf1d310963ae63b1240d5f325aaa5026c4787616ac1a09f81f42c24d07ea2c05980f7c681cac3ac5e847e0414346aed0d876f7cc9c33c2a63c764e58fc93e4f7ae519d9b1974dced44df90761c450b14122b05f36092138d1aeec66293ac44530db8618f03d71ccbcd36c92d20b5e07c41e6253add0700279ef9b2d7cef8d4c3a923611012b10a89b80419e26544ca2fea672cc2c28e163542330a68908587ac90ac57adcc862c432134ef64b084392fb386aad160b4b703844c19d21804f2b98763f552238065ea0b7fd7186d1fe20f7d79f736ff1a05f9c2e06bb41ee331069e9404784803eb505bc46a8f24aa40338824c1fa000b77c9d44240c71d4d7b68b1ea24d264c7da65561c885d65671c103c7e56d801dec5127a3adb15e303839db0c82ee7ecd17ed56f2d0f20e06057ce49c57769103694b1010a433c147bd771e300378834c29198f197d8d0e9ffac14e907e436d1d8ae8624ef204eff905f469d5729333409bcfedacce25d0903d30ce8b54c7e76279adeebdb84cf8f5d66380a53006eea85a178a9cf05e129cc31f756f8893105df9953a6166a3c33351207e60432db7243c1ec41b3b73d601984a5a7f0ee4696610c95f373d4b8aa9caf945ea1791710abe924e452be6fc9dcbdc0b251f924bb820eb7e98833190365658e4293f1a5f6af0ff2f2e15fe9341e8849a4d6b70f2fc15a4824457cac95e7a2d30d39ba5560deccfcd58bd7a50b5c8855b769b5fe6e2c7b72ccef80220646beb053f334f22cf764e10dec45ccb17cd0c0540b2a97f8ea3741ef1db376b805527201b7645ef7faa321831c0b03d98259d82eb724e0cd2b0a138860b8acb35d5d9b9eb09de88b95fbfd7be3c1466e75bedb81a699c2d5889bb2554854abd8c9d1c189e6243dd99cb9d6c8b73ffabb7989c34b63b7887a3ac6928db3dca0fa63c8c56381a3fe0686887c0e47e645506c321425b54040c153e555231a09b9376a81e79de082b82a254f0a6693db3949fcebd7b1dbfc6fd33d321bf5f0d0353bece660bfa19d4fe1175da9f69e559682a219de1df66a5bab7e28a921014a9f8bfe681b583b0d702c90188ac48c1e9ccd5f3307889c4e2105e92fb2a0e018d613836e00e3571c32d4ff8f274cbc8a04c1c0904f06542e9336e08e1dc27a1519f1493dc9e73620b81ba39c593b322c67022931ac76765c0e6dd4a9940b9f59f24295e81dcb8d12e8a5863b7b54cb915579de039814d4c7adaf18099c5d668c724afcfe10b53132a61cc41ac3bc06aaeb1ee2c2c77c87035c1616fd62db4071a3d152df9a0b0d9177a6240975f44f56ab707943e36c17f189b5af8e73504a39d0dda3981f048c9ac48b4e5fc38a8d4176680e6f89069d7f71c789ac227b2de79c4e2efaaf1d1414787fc87ca298095c170fb3aea2f083818f3274d873b111dc7411d6208ead0d47d1d9be8d2b8076ce138704d7f60214f1d1daafebc96461478ed828977aeeb4204bac214d937098be2c02bcdc97bdbe28d6f46d4c23e9135a4a277cd71083b9159341509b3d4de4f0350229ff097076f753f06b1e66f89ca0e039ea6865b32227eb63b76c49ab9057873ff92c391da1ee4eefd8c029c51af368649cfcd8623e08e9fdb05055a838870b0abe6a4bda39a8aed0e5bb24601876032a741fa37852f0ef039bb4d455304f46c9644476b1d00b41c02381a3b9cc992b6ef9aad63473f53756d0537340e8d5642b1fa9e4196606c700fa70146945eacc5571e38c495859754dbc3232553d8f5c0699cfcfd4a5a35dd3511225cf8450642ba9f3321bde972e9351531e9bd9413844da740b8bf309f19e45a1610b4e176226b1169a670e826dc16d676ad84255e50844b413fc7ba54358fea8bb49d00625e6ca0c0ebeb282bb681705f83e8048130d6b18e91ed12b39dba076bc84b58ba4662e3a2e2532e6630ddf0a7acaf3910e9588875f7dda762d42824c8cb5ef7c91c72fc55b3da33dbae9e889d9b93172692ade1f5ce045f148dab01cc73776b06a7d3c3cd96da8234740bf7db378e6102309e6b8f0d86ddbbc4819bad68017438d0db7aec077aef7a0ddfad8014df250ac238a405e462996acc1a43d725d462c88bd1a175d717c1a6cf89966cdf1180b314116431543e5e4d40970fba20b1e48495278d860d9ffb443511023eddf5e048d6aca4a5272f4a6d592e937641c4b4f459df1330c850d078f8c0ce221a9f19b63c5a43c6b6664a141cf9ed8d00f23c0d37329b564aff1dac36a89f2d163327e7f4836759869728bba09862a666a3e05815ffadd58a714b00f158b87dc75ebe3f97282e2917ba40228bed2c9a203c042d40a950698de91388ea1c8a2b9e0d9033d841c033128e3ed30087cbd016357ee214d3e2f9514d6fe078b979ebda8c7bd24d56a2dcd4d6b6965352d3980705d8aae2c062e36b67a0c808b2ca59212cf4e8336e54804f0920662c18faf3065665067cfc5b082176fc9269c74f6030cf63ad2e2eb780a6bcb131f572dd14f16a6aa58862c7561b7c0d5d3025f54e31984535a99d7850359306ed70fc8e0c2e24d475a2552f3543c6b181f77a72b761d57955617905f75c041b9e9ae9db88b65e302844c1a07e888043ab5e2e9a78a0e1cdf373cc917b6b8945e7c931782a30da6f0111a1c1d90c94bcda1a77df52d099bec8402db00b8abb87b2b07808fbd728f9bbc3aff50260b602c5ab2af1324a9ddb96a52ef2eacc93801b4bd9a2700007c1bd444add0a132a0a0a0ba86fc5a05ca2c757a2a23b97eea31a38f80b07913250cb407f33b1baa77a34d92024cb275ee28e75903a3341fabdb9a12ad56308d0efae3ab4801f82816985621dbc7556f0c65aa6cd1586a9e52c5110242d65343baae0145546b39b702c4a1d569adb74e207bb743933f63e9413c512f94c64487e0b142521fea3c761813c05f4ebbe99ef18ca375a5fd5e04452779900d1c7522b8de91ce200fbd0c59faa87a81e548af11c18d2af48ea9c109212f7c679645a01332578b2d2242db7100a5eb8e0417f29f68fc8d164ff316b71aa416d9950cf7a29563f613e3f16672d967d62c24bc3b4c65b21cdef234a916ead7d8c1e9a294061427ceccca4d076e68e48e56ae01e8647b3c1f5ec022de731009d17f2813eefc80f16694a2e40e45b405b2d1fcd6b57296ddde3e18c6170fc189b8bbf3b048928ef7b2c601df936529917932e1e0c52a53ec169527e3a7aabbf1ad5bd99a37f50c9bbd59826c0981a4860e61f9a3b5368c3015b7b2637e451c1144b46997315ada4641ae75c9f17536f00ee9d1990d12db08d629a81c497f4846b3848eef90b9d7b67dd7c27727260e6a435e639d97fd15a07702654a0d1e831e8c451887b89ed8cf13f9dae7ff5566f404be0121650b965f0fb5c65812550484d95520764075359f4ac27497061432a090e94a0fc0ea218750d0bb567d8dd719a0375e0edfe92feaf5b827ba19fa1537951c905798cac56e09c3de108508439417fe50c3c94a08e63bce4dbe5a4d05b69d7accb6ad45ea35319c8b76c4fbe0179d380187c8ba1f838fed08deb2f8b202003743566e3b65c8d33c6288a8374eb0360091f98a642b48737ae2f6420da0ab5a1b1a3a6f19fd241716c56e951bf5ae5276caadfea6c1217dd341ca5646ce42734f97faad047be255d12ad393ea004e35f765c104e334ebb4f58dc8f2bb3bdaa20f2c0fd8e2274a1102785ee0bece23fd287fb7f08de82d8f227447ffc966aa6c79691a4b1cfff6c815fdb2aac31d6822f8d3f741774463953d2183f823b048f2cacc90b8aa3d096ca412cb493a83232d379b687b90c7614c7768022fc51845be31c018c2e0142122e4db06e546280327cb0f54b267516ae8a8bfd0083bb3011e938aaa404e3ae36eceed60cb012231528cde08c23755ab41cadf38dc00f968ff95bc66dc43e34ae366b560ba055b695e5b7f55fd76b38bc1d03583bd4198879a84f9758ee8c00d7414e807c36de7a2f1b0f326a01d41a01cb872e0ccd630c2b74a1f9da7d57b5d262152048d5352f15f535e9a9da88b6fdfc496440b870899a10d4320ead191deed54ea74da287c68e070d5189a4cbed827ebd794a0dcca362ad821a684b729e48bf08e6bf29523122cf60571ba80c3442d91c398fad4cd7263dcbc1cb2800f30a59a0da744a2cfc18c3c3436b94144e4f40b39ed86c524daa63669758c8a37c4e6ce59e6b6365153878b9c52c5d4308f04f761a5a17d3fa8491202d1fb7f9d3ad59695cc1b9cf7e6457fc8d695a8d56a9b7e7e00b48f9bfe7fb6f33c9f7bc9f1680f597543902a72e80fe45cee91102dbbb63d7985be4805a3ca15194736d14819c4e9a5d221acfe25677a54aa0a62235ed0459c7c8054ee379c0e77f7890dc8f5f73ad6b6238bcf4d1d4b6671a872e5c03e0caa50ac2dc316ef302825325d42e8505d842064cc2032889494ed272f680eb0b23fdee6fc00789772ea23c2548567496592a912667c9735e1c095f1f145bf52509e45ac1d8d48fda7ce244df0b6ae12c9563ef6b49c108573af7a268ba901c116fb399801325a5f2d1714746f1f24787e2bc9bfc9f5c5724f457dd8adf441f3afbe24b774d2056f4943caa088f328449b30c808c2d92511f3aec150614012a8ffecc2144eab0afd0d3add672a69dd8cc132451d8e663080753f9ef83222969b14c13c571d3b81b363fef25bb62d7311e8a9f4cb4f761e9c3edd77e076e725752be56b5f314d3d9347b09a9e96c092cd0f4a1ec3ec097d32ce72bd6fb68078730385c5831d5c3b0f8755b61be951e11546802a798a40372b4aef37f8b28d81dd4e3f168ca4f592c5f591ea7e4eeff1eb9e010af1bdfeb61bb6273d82d9557534c3e8a81a6370af7593625c017d34d00edf161f6d2e552c08773d73d1ab09aeee2f356efebd36937d22efdcc07e03f4e1c76d26075c03d72f9999d6940c6a0888b93c88bc4655dc77e164a37ed7f67a815ab1b9c70d976cfc2e031e26982cbd66748c4eab2d3b2cfdf62765b37cde94d7d2bac2e8c2d59bf9c529750cf3e78e7789f1de221757979fd9af9a1213b2933feb0bd25b5562d111f3c380d24f73c0ff63d60cee1508a963bb04b4e4e656780ef2b5b698b827b115f910cfbacd7816de0bcd22e2e6ef56ec7843d76d1e9a6c0f675f5679c6c0ed91eb91d92220d7b56e60c1598e124c34f0fb21301b9a43a5bd514c633e8600b73b57fe5052fb0028f685ed39632f0ee6f5fef163f051889171a1f7b87239c4c70c13c83f7f71adc86016dd486d40deb844d180cc6532bd5c221cd8382cfff4b2b44c002faf299625b408ec24d07a63688fad22bf043ab5c5c187ceaae8193f607f0691ba76d217fdd27fc45a196f82370fe87723ba0e012ddc817ccd51e8f2887ddaf844c49a1b45c0ba17ca7d2d202e2d465af90cf88a2ec4dfa93ddd6e49652a69452f805d8053906b1c2df7e761fabcedfba8f06a9a522ac1a7f9b9d7cad13227decb86e91be7f92ba1dbdea59b559a7b7a6f45864e8d76f63443d41542b465456b7a3554c6a6263530cf4b92e91952eb5022f9d2134dc3eed2c20911c7a71198c3a4352d06f675c53848eba44af9e3aa3ee101a195c38014d0b473c0c490146077e0d2d7183c2217ab9406f567587d254516bea0ea179d58fbe1fc9ea76eafa0158897025f8aadf842043747eb46a278b47ab9af5db25c6440ac25c2102315e2ee8bd2f9aaad3dda3071d4450c30b8a9e6892a676ac478c2d70c801cc13495c5dc65e41030e5ac400cc92277870359adacff2164f09b2bca0c40b8aa32f4ae0da337503301461051193166e08729181802c8e82c8b081872021d718750063ca583942872860f4e06a33b56555a7e1170d660c002d09164874810489255c9814456f28f5170080c4911f236237281c002c216141340350858fa38c1f6668a17ef46316395cf86051a424899433ae9e69508279e081e6af79aee567a5f6d757d1737941ded56fa305fd1dcac1ce258aa1df1a31185442a0c5c56f02878145a356c57ce8c730d210b26ac2cc42b7c2d8a57d0f9207c0d8955a2f45827fe9a2491a97f624c89f9e0a5484f8972e9cbc5cda4b2fb52f7f5d24683b3b3b3819f372695e6abd20f3b55fd7ba3eca0c73fee96cb8a027d4b0c0c884cd046f31cc796b7424b2ff756b2a04f7d61be20569150b09b24be79445d7b66491e2a86e96161ccda89b458a9e7afa22b26d1a8170d2227b5442ab360c2fef6e74ae8456b551152202bf18d60be8d7c00bfd180b6311837efc7a796bd670a5095f93f33e8a7a7ebd58f59b95f95579540dbed01f22f090a9b5208d9df4abcdf78ec725a59c7472a847996c389b5289a462a99a0b4f2655a9526302815193068d86314628e1151a3538ef52f2fd795cdb7492823f9fc7c5ccf3a7553d817808f19fde8e7b3abeeaf9337f3ac7490bb5f6a55b7406edaa9f6bcc1d76a7d47eba260ad440771387e2a4a9f49b348d407209b937837cd55dc3c68c9248ac7131ce19a18c124a19238c304219531cc9247f23994620b9e6901618e4ab8655a257a57acb8593c3130a7f5d906150c32af01b6ecf2a0eabe098a1f2359c3254be264b2610a20d6f1b366cd880bc36aa74643ac6eeeed831c618db3dc6f81d9d061a67ee8e31c68edddddddd104a8fb1bd638cdddd1d638c1dbbbbbb3b7677c7eeeeee8edddd1d638c1dbbbbbb3b76777777c7eeeea884fa73dede1d638c1d3b76cfd8dd7ea236b1db04828c31cad8de9e5624d9f3d998999bb999390061b53d22ecf138731532fe3c33c40d55cef86083c280a642a8f1a86b61882a9950a3d843f937c952c62e624c83cc0b8a000ca1c8c837389df3801a6fbc552e732398829894818f66b1d87db053da10421c14cac708ebf2b19563ccdcc5470a3e7cf8586ed24e384c5118ff8c78757776e7304eeaec66f3731cbc51e3028f2167e8b32dda2b5612a67ac7c12f8c857dea766286710f29ff639fba1ad4e04aef63c94ab497bf0c83cd4ad8a77320967ac33847e8c75aae57fb9095700ff6a9dda15ab53b34024fc29dd4ed04e3b3b807c949ddff8ca09cf83689cf83aadd6824ef650258c75c16f7584e00f770b249d4d9b5475bb55cab3c4042b76791b3ceeeb7a342b82301dc8341804eaa77340e19d5afabc416382861e4a5b2ea2a612465888c583540dda1318ef0a9dba98766d43ebef61fe753fb6f2a7f46b40a1b56293dad5461bf34f990af2d07e31ebdb59ff3c15219a82baa55dc43837888ab7495282c65e7c3bab5aee594700fae3e754dd0bb6e19dc5d3284504a97efd2a5bbfb426f27b60e9a80c4f8907d709a8a02a791df5ecac7d6f66c98f98cc4fa01aefdddff240c6e676766666666e631ccee0e7d32ce3fea067583e3eceeeeeeeeccccccccccecec1edddddd238450fec89470e8eeeeee349a803b2187e26e7748e10d24030251d4c72414369bcd24f3eb3884cf0e5be0fe106846b13973373373944e0859f27a4df430636294504ec8691ace3fea06758333e7e4267cdd50a91ee771d684628e296772f78f30caecbc516a63e333664076e6f7b6332216c528a2929824090e4551c427222c2a89b0088b4a6a9f02e21109da3c0e6a293bdc83a1b08efe662875cf745afff8aaff4bfdd80796d27194563114eec122581d3b700e2678cb5d5d23349f4d24b06b7a3b2bb834af4d2aa022f0540fa0aa11548ded4261d3d4e8c5159c077afcb231150d17e414ca20c182a231313082869e0a9fbebca8f06f503a5e4705e0d2240a3050b850c5071774a1c2d799555285ffc35b3c301c8922c4183060a14516176ca1c21fc242856f81ce8915c65475895e4abc84a81ffd325befcefebb56ce2f68bfeae351bbe1deec4a3eecb85dc98fddae4ad6cfc84e0810c76b9e108437a017c402ed3c6c3bc9d0afb355bb3d28ebe05f6f32e51ecf3af8b9b7fb8cd4dde19b5ef14e3a244647b9553cdc99d1cf4825b24f324580f424efdb87afe3cb35c21a2117f7bedff6b2fef24980af792a680f5f7a2a5011a2bd0af299f0ff9c52beeca8552c6b15ff9cb32be23197c97cd639cb9b93692d60aa54555d2d6060553b42b5e75408fbf3eb7a9f7b31bd2897c665bee2f79904368b1a5fd3d2398c926dc2c1816a20e0e840b5ff6610d26f91635310d2af0984203e84481eca57fc42d0fbf9cdda09c16fc1f7a359a9cb3e2d56b72a50dbd2f18a6da94ded4b6a7fa428e00f5f08842fbd1d085ffb1df752f1d7e59d77b07fb68f35939986d323229fb74951a8d73c227376df13d17eabe67dcc44e273add1143df6a6ce65eba762e0e0496d94a0fc8d9a1409faf563c1a0d48fbeeac76a1b1a40b75f22254eeaf6fb73772757a7cf8681abad1e2a722bcddf6efa76f17d3f7e45b68f1de94b5d693dceb8f9e611d9df4a5de9b7680221caf5844c2f4dd2132ab58f17553301d966073f76f3b90e48fce911d9f7875ed79f915a84abdbcbeebb01425a2f0564a68010716fa7b745b8ba79a9999a0febf4d68b2467aae67d1fbbc951129c571a46a9cd9df1050da3d496fa4a93b1ab8c5dbb602763086ae771efd8169fff87b7e6f3b8a6f647785cf0f763c7e34a5140fbf942b49fde0e152904a6dc9bd45756c0d058c1a17e5f61036d24271e7840bdd5ff3dabf28ecabf759167ac1276ed5a130841a6af7630417fb9b9c190a0c2cecd51347fea3a841036f4eeee7ee81042d8d0bb658f3c227b644f64c51d2c96dcc16a150ed9237b5ef67477b7ec913dcfff3f5fded264bedadff9aafb7c9a42777b8aa89f16abebd928437ffe6c5026f747e7e6d8ff20ded2f15517028c031750af423a876b1573d7da6d15d23929b0f3176f6e0efed9ec697aa2b012ddbb1d3b76dcf7dd85be4b37a7dd4b16f91be10c58773c917b895d0877631a8f3511aa6fee336a5e60bbb87b03e98d8aa1aa55436c8ef663574405c9e087346ccc5fa5f458d334cdfb1badf2879dca48acfbaa56e160175bb1a2f2afc760fbf855df84aaf2be4eb74e2f111219d48f0e21866fd3cb105ff174459bd92a117c48e758c00776d22d1fd240e7ec125ca2d4a39d557e71c1c2a6a025b608d58f7d2ad39c4f25a4739885ca437c4e4afd835609b5c762181615ff0c8a49b614ff8d661893edce00a3a6c90c6b284ae94d1c143317d4df0703d92caa7bdc09c98fecd18b9164189249641b372e8c2a954aa5da36ee628c1eb9771d274428922f3d944ab584721f6afaa38228e3a070a0bc055dfdaf920155c5b648d65386ed0f5ad59bf79550b71fa552c9d3f9a03312abce0f1f12a173dc7b9d1fff46e2f61cf3b6711b7f5f8d44fec9fa2963c03de9bf7eacd80de91c0d85627e9217a455ad692f04be6624d6186448b4808f524571a8520c343ef4a6f6f1db48acdacf19e37b989a0ae18baf793c959ba82da89e584c2ed94acf1b3397f8b7d297a18fe359b105b78352ed87ddce099be4ea37bf033c95fb8faba637bd29c22f6da9e3189f3b147c525aaa1408ba5520fedb973a22fedb6fde7969ebb852a9e4a54e4f84bff427fed2b3e9495fe36dab4c9cf7f97f806be9e3f3d4f9a56ebe4bad4bb90ce813c1c4085146fd58b568f6c0b3b7641a837e1522798be4cd923763f34ba881d5af06b6754382f8b036548c55ea9affbe964effa9aaac79daaafe42e3476d0b1bdbc2c0e26c07a59f04a82d46f6809257c2e67082aeaf50140a1a557bc9ec7dda7b11168e5ef5541979f98963280a055946d860614a4266aea40788014c510c4354940d1224104208a17b00ce70e952fb6f9a883e99e006910f50ed20d0a3040a2d4c00c5a70726b02708d31162d81f03644481c689155cf9a9f2037ba2ccadfc9c190ac312036001818a5203098c4d490a6c985f14955ad004288c930fc030225232d3d2f3f3e344c991941c927c10c68b879f0fbe9011c16085c9074746f5a70ad1922bb40ad64334413e241289442a23ebd59699cdd98bce60a8d9cfcf807ab52c343ed0e03be13413336364466666d6abad1f0a084a8406cd96cacfb1406dea0ea11153673082479a0e103e73fceef627d2120ae5f76f0e635b4839cbec7e6766a960cb82eeeeee6a4177777706babbbbfb023318daefdccc1dc6bd194ddc9bdc446c8cbbee857b052dc8bd68405b8a390e569830a1849929bab0c28b25362f5049400f689a8009fde033830c37498cd062742bac50e0282181e24b305814698aa012861831c89e22a8501c47b9ba8a10439040cc14a1218270c2675d5081bb3b6fd971021b5ef8c122cd0f6438c3e05848ef9b147a65a84851c3141ece60f941c9d60297fe30b59b0ba4be1fb4bb1ba165062a8a78c2ccd0172e7e6146fd761cd1d005bb59e04932d352032c8a0a6430050cee70a1769c0dbd49863ca986d09ae8a250ed356f8205ab436ad91cf2fd87c6d7de59b03d66bcaa7cad9bf1aadec476b05576bffad5afd2ec97fc8e798bf4f2dd49b74853aa5036336233bcf595d4a4bc513df99f63712dd0061a1f76156f7191afe4cf4929eaff53c9a22a532490fef4274f855398f6f2b916d446ea546881f4f477a89722e1f4f4a9a702fdd3af6b87f4d40b42f2a6af98a948c9411cc44127c8643ab3869a50533eb743bfee3ff2e5a4534b95ef5a8adc8b6cd352d272f3aafb1dab32d6393fde5a977c07f2168f4b3ea9e37179907cbf22a7f7a1b41ff8a23eaaba9dcc18b1557e39c60a808864a07941fec94f7108818689e69fcc4c7698eedb8d84320ab2319e3c71f24344191727a9fc373a6706a7c586f338db42082184ed9c9360db1b9b8c428bd81cf03f77225607fc8d39c042bfeea02ef296e9e17b4fb74c9e0a456dde86fa506f7d053d8752e345a9f08aff7490b7784e4a51a87f19940d0d0d0d0d0d0df10ffff0cf0ffffcf0cfe4e816631b9b1cdd58a5f797b738ef9b30420eb050f87e65484b8c74655ea9f0fd05f3168f0bbeffbc4bd90e98abf43ed4ab461e526f28d852a0af6db9bb53ddfb289c246afc1f42ba6563e806961ae329c6d8b74335afa12666eab74ea86afcde9c88a4c6ad5ce7b444c2232cca5bd24b51805d9b2241aa203d572c71c72d5b0a466685f9540eea6a4922ab5b731f9815052d4d19afeadfeef9120a7f738e4915d640e1a34c1458d7f455fcbec65265ae81f2f7936d7f6788a1fbfc6acd905122fefbf9f796ca9559a8eb7dfcaaf0b7fb4007e4c4f3c14f8550aad043e154f7b74b65d56fd3d4cfb7a3f1a2bd807d36a1f0b47a16a2253d75899e48a9457589643041dd4e7b83c78e9d151410f484914bfb15b68b172780b9a810d97e7eff8eeda06bd7fc67246e359d0e8faff9ed759abb8d33bd4eeb6ca78e796c907b1b6a4365cd7bc73d77a7e7d139a7aff993e7a3e66b5c1ce77d089a98ba797f230494558455a727a479ee00e992afc35f034bcde97f83cc3ba7183e0f138c74eb011f0c51fbb7bf8dd5dea13874864bfd760c7f84391f4ef391fae1a8cd1e0f0974c5892b340f94a424b695396c61ce5dcf7ce57fc2ca9c5ff4c7e74bbb827efc83b7560b132e7f2f0523b4d23ffde723a8ee4754ff1a63a0bf66b4b29df16bb25fa9ee4254f72913e63b54772fdc7fbec59bf81c89adb9d2abae7c42bf38ab4143d9134a09f138908252e1f7968cf9ca65cd10a59de6c2e6f03f751a0babc37fc2bca5f5f4ca6bbc8f831070de77533fed0573cda7460bba757a297095316fadc759f5e72f2a19dbe27625e31ebc3af8fd198ce5322b6b17aad78d9a36f788faf10fed1ae24a4e6c9c97ed0153219c2afc53855e0a0857f85ca1f7f1188155e89522815df2d9253d18e78adef4d5d26e81650cf9e3677e67ae7338044a68ff77a3f273b31e1356e66a9755bf412b492f49d7e2a780c085af294b4e22cd15b894f1a76318d943b77c9156d0ef4656217b2415920affa9cd26784bfe7275b78c1dd6d1bf35a494dea3fced0985011b163a9c000a8704f5a1b12ed1096cc04297d070021810941301ddbad862940466eba15a111704b53182238296aca88086418f7c41b9a02aa220c8548884846290a28c0c21e47a7a8011f990438908221f64d8c8104d29d304d1142e484034a54b1744539a989285680a124453ac104da902030a3ad95286d4c29824aa08832a2141081a85aa4b44822395465d221ebec0b2fd0761f0a7ee0d9ea81bb5bbdda33b3b843c81dcddddb51997567507d1b62331d4655a5d6f69335404323263e483ab42a4d7665a6a532fa8ca4d20ae6e46382f308a13080a94d059965ca894444d01ded0ce4831545bf69a93516d6de63259ed97b136d366da8c0619977d34c8b8cc8f220d32dbc19ec29c62b1d39852c9db707aa09fcbe877723ff299f45c165db6196d46d1a3d176b0db985e75257daa6d4c2f004bfdb6a34dd6aa9d920bfa4d2019a3fcd81581409bd10c286a314e206f919e144bcccccbcccb1ce366f49ae647da439fb96c33da8cbc3581269036816ea886c2919bb63b77e7082417c9db8c7cd58fd383cadddd519de4a49809bd09844306edb88d69553f0e994db619010101e11cd1ef143bc93a2716e664741ad3399f36e3228e344b5bf37293864c362b87387b42e7e6f013bc355b77a0ea4e805af5b339bc67be9a00ac0e5f46fd7a754fc3a2ccccabba4fe623daffccafd3903d9fb54a424167da51e7ec7cc140434ed100d8bbe27f260f602c57fcef0449eb80f85b19365dd2d3c2f4cab558ccf7e4458bb991cb9c8c7bb10a10b30bf06f37325941bfcdc8c88d649ca90afa6d469a0cf62079570f12ead25e7e8c69dd098b4580bfec4e2f5805f8c7ee44c52ec0df4f5e3687ffe6469a4c9bb999ea1f37a3cde16fb2827edae65acc0608eadd5de837b5eede65ad9fc650f73cc2a160b8ebdeb7b3fb3aeeee0e7721162cb8c8b62be8e7339fbdaca031df623640d0cf67b2ba7093ad7c017c41d876c0ff82d16634d705b47e1c7b1f945de414b2471e914fba4ce1821ef9a447f6c827f2883c22b9c8232ea0920bfd6637336f0a422943748b0145afd78b0517d1922ad57f3f7652dd7fc781aa3bb797a582b91041599a80c40a5fe8835e39c3aac356c14f0121114995bed43f4e3e20a0d4573c0479dae511db8c59942cb498619bb78b0a305832012c7cdc47782226030b1b7705d68f58263399c08c8111d8aa26db1cdd7e66a3593e46084f336094c5587608bd9772e1890266285280c2fd0766bf71d60bac6e5f1e2c16120a211cb212638cd17405e5871be37a8c4fb950fe58c423d3e03debce5ef507c1f966102a68bb9bbef8f24c81c6779918db16b252118a1362044c04d58f724a68d7257a9243551d795da227383c5992c4b6db9abf4d4fddd264f7d4dae1171f7ad0bb57689ed87e24083aa32ed10d68aa17052b8b940af7460b54f55617cd20abfed07f2e51fdb9ced9aa3fbd41356941f5c7f928d5dd090caa6fa161081e1ee8f49caaff8f2675870154ff2116e81296a8fe1ae81c0daa13d56045f52f72820ed5df48e720a0fa83a0a8faef740edc4a640397ea5c7ea4545fa0ce5922a034d59fa138d10d5daa3f47e99c9aea52ea32b4f23bcc601e2433783283a22d8c0803c89b788d23990251eda1f88c941830b1040c28a63833834d4f13e8f22dba683b60269b437b4df2f0968d5f9cd47fff3cae1a29e805e9413d07cfe3dac04637e9b4f1fd361c05fb01aadad7459f5fe922239c0ee52bed531bc31ed51c745dd4756c7d055d5478832b745da91fe22bed7f878a900dbec6ef50d9a1228483efd71ee5ed501182fa94b7f3c357daa3be86b74345488d47793b3c6a6ce0ed68d95171e075918a870ba5bd8d31e8ba36f875a1bc14003c135aa5bd4946658a1414f1f37ab94ef095f63656141955ada749fd68b5b243dda0e397afb4ef8e4403fdbaa86a2921fd1b7cff061eff6c0eed6fc050edbb48fbf6a27dc7b48730edd7db4803efeb59d56ebccf5f34bccf6133bccf7f6cbccf81a8f779d0c9fb36a6d5789f5fa99ac9fb7ca86a9cf7b996aa6d9a7b21799f1b550d6af204b92c207cc8ae72ef05e0d3045b07707777e1b6480f7f7a949e48d09b2357c2aecbdfb6737fb891c6196c27f046aebca809631956bee882d684d96ee0b20dd19bba444c864a46505a97884995ca440ad1cf955dc7d1b2a6006b8a280616d636537b06b57fd7668aa0b56010ef879721f3090e5289685f8445224540f33e5699aea874ee353531ea14cd8800000000d314000020140a8844229140241e57b6f10314800b76924676541a4b845110e4388a52c81842082000000300103243334327089d468be4be765352a73dd5ed262642eae596a9725c95dca7054125919e68e3a3cc940bc95f5c8f91f97771b40249f677a9e9704ecf67ed24ff31a3d784e96706897c95934c7360d6b90e99f7f7d9ae0cb02eff6d3be1b40078aa9dbc0ce74ba6effca33574d15c33ab308fb3e186b4120c1287f08388d6d210665b805380457b04bc0b0905a8b4127cabe81854421bcf39245a825a188d4f9e4ec79544fb6a8a239f877bb05dec2c5709a30a92853f79cd9cc30953432b1356a17264ed65cba4015c2f4f8954133b6b96d3072df603e9f2d399495755285072e6e1a409f314c8e2b47a50e56b1397a7203ff554151538c5ab50b29444fd23f53d1e73ee33da0631f7c8164db75aa10e4acb4fd5af6acfdc2a19aa6ee639a6cbf897ac9de862103cf57abb70112e47aeee7cd94fc876f49088b019d71b1a7e4fd1aaa92c88fdf77367de7512329aa8f60d60bc049bf96da3dece087041e8357e2c3e25fe6fbc96378406544fc50a4eeda8d5fe5df1bc815af362af772ec70b1cbf24ee92091edc1641fdb788d99ed7e8d3fd894c2ebae832755322153daff39ffe3de63acab2e4938b146e932cd313151bf4f435d08b0f7a5a1c5a56568cd44b702cc62b5801921c7dec94faa3065019fb4878fff5313e8602e027ca77481fdb354d14409322bcd95c582c87c34a4e6ab8075346a6c56b94c5f1f2a29703ab2a3ac0d397d20328be874ea0fac8c07b0c3b8195fa14c78da6577adb8233ab4a6e4c27dd34bbf63629458b4a5c7c540c44c10511813db558e3e3a156ad12d54cd1e73d552fc0e28c31b6f4e53124ef7e51350682611627ab8ac03e2a88846306e6ef1873bf1956434541a516ecc108f914115adb91abc39f88a8a08f8112c5ceb2fdb483c8c68455a9175d2ad11ab8d7ca5aa0c65d96c8a8342919aaa072d09393a986ba297232e42434329867ef7c962d09cc9f12104343c7a33dab3931dcd8d33e1cd4f5d292635a7a534dcdfd6d6331c01fa821e45f9935f1a428b65a58792614e2fd65add6882ad0bcbb590734e5831c672d8e4960832b438a93b933800e458dd8482cae12ea52f94bb8b8c55f49c010c131d7ae1d09f39d1cffdc45e571976ce4f06f1d67701295f0fa093b047949c7017c7e45a68c2906c6303a65ee58765a658719a529e85d843c735b03c12e310ef3c719390d6e2fd8779f0e5b4a29c0701d1ccad155ed83740b476a8f73c970dea7c3a4f7dab3f76923cab0a34d4afe7ef4bf13f371a44b14d655c117e3877516ad9e1b25c6be3f2e782867974b31b13ee26991353b2f4263f01a9c856ee690f05c0405aea9d7b1b325e5cf875ef49615517dc50e828b0d27b28c68c54a73bee3fb129e022508e0e9ec06f1ecd8981d6607fcccd9e41a98dca96049207b527c467f0c71f42850dec2243511683aaaddc22da60d7d04a54da83e6280e1bcd25ad3fd499c966e0813bd2a0479ece3fb115f503c9900b7a1a329e255471b5ea55c29fed3e880c84a9efeb5c33205131c2d457581d6f9a2b12e523f6552d19b68253833bc4e9dd95240a83ac8c387de693e6bddffe03761595868b4e3b2c3b5b7d62fcc22d69591c8d1a08f9db1e396e61ec8a0b77234ea2aec4a8f43118b18b0ad36f6e68e90731f22e694911fcb9a9f675a36f2dfd9f06e4b629aeba8462f26175f1e252c71714ce67e30cb708d5ee94170ddc782c537d1d8fa01dd5e0495a154e45a8cb2ec513f3312c5932370823c4852220a53e4072bca48bf343be65217b7f6fc15d542f82d52f44ee7e47ad0aed11355bea84c924373565adff25ba0945359bc3fc6082641321dc25c42ded3eafc0ea668828760731d2f32b5e4ea95123752321d39a6972bcfdc92a8eb434e2b23090b90a8afa6953ad4b40ff19c11daa36b77e3667210fbc2be744b64d0e24d926ed184607c9b471e83bd0e45027a9650df2bd452bdc24b1064718257c7fd5ff7e3f0ba56a5bce115f0023c270b98891b72b444e5ba82df42e1820c2c0930392d7ea4a8a84362ce5a39c4896f4dbc30210997fc674fed0c25996c5cdca64683600f4fa9634ebe690709aac3c13a3b3afbd7f50a6e7e06ee61c10710cd0f97de0c55b73aa02b2fcc9bdbfabe47debef3e27a1a584f5b65bfec08814de69633117bc3f11ff4b149b24b3d3082d3c6c5262d2b579d4479209d86c01478b47a8575e99d7c8b2563bec376b729cdb46d164f4abdda37dc6ec1071ec5d523d0cbc68e6246945c46ada35c8a763187c899c189c82fa0f8ad01e203f566c73ed7353051e0df45762ab5c8a188b6f67fdb74e4e6d917e0a44959c804b84e3ec19dba0a6e989193e664735b9d1c061443fef0298dad56a0704d5f54a2aa92ac7ce0b8e9dfab15beef972da607f8f0a600d674f325bbed2a4298c376d075a578ec6d0907e66c0f31074a285caeee7f0986beee279a715290f4963d68b8786691fb216f431d29e950a4161402c15aa902d5bd9f82ca739e5d2d11d8011f8e3460cc1ef0e827b13794f40947af72266211d03e3f8c5c002724600cf0430c4270990b5d2940abec8510abe8eb803d9cf33d21a72c883152b48bdbb6ab6c15251bf22d9b79dd9c40887c38303328eb2491158c2df97d2bed738a37cefc71860f62df3bddfa2b5f154bbe8d5fe506d1075987eef2a520b6cee262c363ef5734515ec61da71af9c043273838c64437aa7a321f9fc516b1a1d23bb0f41ecf07445a153a5c11d612b66351087b9b8969df19ac7fdb18611c6cca5a9bbe5f4db9ec05aeee7add44223e077301f6ce9be123c05060a528f6d7c54a160bd6f4a655deb7d0addd87c436deddeb1f9491d836fa1418e5ca9000456318106ffaba28bcfa945b866d22fdea8b21a2e343a465dac29c3fdfffb2a3657339d2b486cd3c490a29f11e225c8d65e1f9c75fd7c291ba7dc45b911c0cf0b8a4bc0820ea2019d0b40d8d0582038acaae9874085eb80fed52ddd30c5b3fed91a7fa1ed5d54974e691edca8c4e37eedf4c0c0e15c6605dad622fcf712ffcdcc98435e4d6bc0b9cb25be4f0680bfb68fc54cd0e61acd3d497565ae87c8dfd9a4ec204af576c1b9843ea6ce86e607e948d5cf434cd307491117748721811238aaa101666b135fc2ecc5179692eedf5b603be39af3ad305e12b8eb51dec118b3cfa84d1b7f06b4d39d160bb0a960e37031b6246fc0c7b880c45e0a4b9a9311f508008e96176a504328e878fba0d20837c4bf2f1e3156fd8d0680cdab23267ff44e4e4e4f5a472c2e684f4948e6469731d5ef8344feeea350ee42297a492d58eaecfcc8c0b142b885cab8050609133ef99a6e33d09c0a2f988a8181807dda500fd86a0127127b4240e643cc623727c0592608ec9e6341a75b04e6c50da29f92d0da2bf70fb8b157ea924f807f9ffa1c1354769d8680d19366cba8f1d2f8ddd855b1d9a9f039189d086de3cc6cb16669e364434a19cb682c620f3209f610ec31b7fd57a284736806f0809bf1072c3c57285654a793c7300425cd96f960c43dbe4d90e0e335de4e26915d408d1af0df3d9e42b6aa76c8993c59345aa8bfa8b46d875870d20eeb6ed6e30da6c547979a46bc61b7e5136391e38811ec43cb51c715ba512f4f251f145a1dcce0807a1e8ff2c58a7ef9686cad3d52068d6950fe22152c1a1ee86bd682c5f140fcbe1825dd6dfe1b99f90aafcd2cd9c663798806bbd563466ea4fcd466753529d35489d9ada72e593f6750ddb48dfb7a4a61c50fb36afdafb9dfb694252e8834bbc3a10e87d258a6f5ea33344583039078d056dd7f0d8a08cb736a9256678b7d0accae65e4b1357520284a2c9caec892eb9a0d980cc938196fd779a4b034596c566b2b47c62fc383da106ec6a738fd0e7f29fc205a352fce1ebbfe698650f0e4a1558c9237af033d6ac195b45dad555db8f62abeddac6c16ab5adec672833a5cd29e529dc903b6c788cd46edada86c90d0b6ab411492185275b2c2ceb48f6462496d558f02d37a444f7faf4e7de9cef057adedb94a79b44a162c3aa59c9190b6fef4b49ee2e24e78fcabf03b62e5633f955d3a0e1b33b38e84a2294ae844fc0bc1d7ae0f9f083b0c1ee8e1aa606e5640ed2d3824ceb14091e277bb60aaf66bfc8d9be00348715c64aa8eb5776ceb8089ea650d875c5e31e83d4834bcaa8a77016d8ef5e354383c96e464d0209a981933aa2b0cb72679aad1180d493c7c9949f83af251ab334545c3a36825071adeda622ad8b2df044a6d4340c944a0b683a16137b9b3f18ea8be3649c267388b8e831433f095e9da76c0312e9324432b84ac7259b23dd90212caf534a8346810e5eeae484b56d76b508161713dde5f1732bf009e17dde607d6fde1b13eb22fc181dcfe7241150dab927d341c1d694ddbe8ab5d47f83183d2556c659c0df1f635f79581ea9c83263f72cbef8f9ef6e0ee9d36b9c68f8f05b95c071555ca7f8c6f01c14d506ead5c368ebf446216883cc3d42da9d131d10ce2a2d4cb7adbe1e039fd1c3c9034ecef011d695cdb43f4310da96aff8d6843ebe1113e57a6e1274131dc56174263a9579017dcb67b58c0092419ba81b0efef6be03d98da4d2431b5698799246325798b3cdf9e57376b335dc8c3be458c46147f46663800aa4e4a237c5fb322644ffd0cc33d297156a967042550a9bc1ff65c7f6c5c0d7fd81b744be7358c253fc79222ee95d6dc1fa6ed875a4cec9f008945d15e558c1366cdd37f5884e3309f0ff38a0bbc793663edb01f2a47b1c7af644a12c6463344a471eea14fc053bc08e6a10534ef5365a635ea0a04c47a62c37299f2c31bd1865cf5ea07a034bbbb83bd884756e7350af0f5fc87da625c47313149fd942e1d0779246264855554586ff74d2c56d0abcb66efe148bd01c9852997e48a181fd0efccd46802749108710fff4de68e8af2d1fc5722a9b4e23d89dd5570bee57b4778ed5038da229fd839190b9be1ef8bda563a8df516e8de8288f9040587b7b342be5f42f4f8e7643eadb5b080f7565a06abf9551ccb888c19e1b8090a836e178e4ef9662a0630f79b9915793fc66f2fc27ff96f27a955f6a79b5cbcfc1fca2f16b86439664b443a4401e1084f7fff1afaa5ee9da7fe080b66c5f4923de68a7ccde4647bab9691c4dfc7c34a7971531a24f994beeb5a34473a45df9491b74ed750a11866543ae205a039a8f54c4f366cfab291e4252e134969b0ad7c99c678ba23172be2afb7cf4962ee73352b5e1074c193212562befa44f635dcd637063e58651b45b91d13e158cdc54987e4e1717e37aba0ca64f8802d837536d60f87fb12510e8859877c9c53ca04b9e7f1e3152040831fb7a1c4e94881e34499c2cc0b8211d7b8a42f3c894213c1608606f983e7b25a11091bd3b215210ed49923be2e0159deba1806eefd0a8b640d6df80f008a83076fdac8a2feb30eb3e624f04b673de1fb8d500e569423a253be543cd3a3f3fe64934c4dc98f6e43be1f1075ec559e54f97bc0014cdffb2e3e7ee166beef294c7df099b6ff4c8a44c76738535279dbc9ba0e593597cfdb20c8618ceac5d118d4cc1568e9b3760e89c7b3495a1bd1fe1bc5684800f97d9ebc742b2ef6ce320057c4027395fdc1d4356e90ec8f00c998039c19df618a879f377f5175eacda8576f6a299d302ed0b26ab58a89491c0130a945c77e8b70ba28f72775ebf08d5045c99958d2840d1a5152a74943d676e5dfccb54781ba9ab180d84817f6733467aab2e2675d0a5e7d881468f6c3af6a2c963d694d55c5a07ca96fba427686315c0c54d661409ebb5b658a621baaa5c6154d87dc7a3fd17f0a8091f77410dff36ce6872fa830fcff5b506a07eb05c684a739d0a0826089b9a71cbef2c288adc1e231bf8a6452e33b1893d4cfc3ff3cc9bf31ad2deff8c219236fd87ac2c25400e8ceb05c5cf52f30aff99db8e70389dd2dd8ddd2874a0d7adcc779ddf65b06296b6a4dd14ce722e5e7a6c95e0bb6846513232522cf9aa242009ab841ccf203502cc1774ce9d864eedcb689f5fa870081c0f8fb588f5fd0c12d97c7a94dee9cbfcdd0e583e43a5e1a8f53430a6057e6de3c5ae56528428dd1d70399f8c02039a6a52863cdddff01224587e16f37152d9a5204be9c0d8b705f7666d8d96c29fa6340d9d284353ae925b04dd92e455d30a17489c8dfb9d9918ea48a0d26431541277f344d6dcf6abdad4c7faa07acb5d51c329aa412122cad1424cc6a7e558c5f1c423bf06b14cfcb947d5a72e4ec07781d4123c17c002152a98d587db1b68dc3f65bae2094c843470546ec93909cb644875d33fab9c7ce442e2e7a5d630bb41342d470ac3ff76fd561008c6880b2b9d7b2eea6b07fc40cb9995363511d9d4cc557ba1210bef0f820a4d1c60fdaadf7206f7fada7aa8dd0243c853059b859a211d7b056ec68e13167876205dda4c79104423045d39998b639c4dfa167a91111c0a5161fbc1180e57d44eec3444ee6151015ebf8b6bfcaf0f51d05e93901854a49754b512031d008f5f846990d4cee1bfe4d42c47b126c41299e4783c992cbd977b96ce54169af2436ff3dd1b31d44ca9264ca42662b33313e1f34406fa6ca76258d441557268f14f1080fbd1ac2a2cbe31d5d2e83eedd4b08c834fc9a3996fa962117f906a4934f913e71f082583e67ce22b396e3e94d66d5e01ba08768ace1ff428c9912682ae49f3b4aabaad61d16f76dccd8f11bba92684ed34e76406d921766571212de25357189e790754414bbd63cb11bc042600472688a27ac436f68dd5d9235c9c1e8a36d2cd20d05b602d4f6745455eec19cc8e7d04ad88f02583719e17d3e19aaadb5025f4887ce8f2112d2f67fd9950e4932433a0915cc8fbffa87c5f2135230174924b9159ccd3b0e1fe68fe43f8183c4ea1f7c300b2145bdad9db0ee04459ce13ae286d2f0d3c006303854e0a8e2b81d2cd647e1abdc5661fef8f4f09c8db663ad1899585ebaac986e4e8e9b245ee3b30df1fe65c97a8246a01b339953b1754e908b1550105f9c35309525aa81a7c979916dd7e53a1128d44bd0594c827069152d27d3f670abb7c9e1a2c7e3bd2ee25fa82e79022a23fd940e015180d09119ff8d6bc650152b6f8e3633e52ca8c8f714a5906d7db9bffee6f4b6f5d374a8868365bce4ec26e7532c385f5c99b17d113ae12a414178d8e7d2624d67f8cfab050ce8c983cf143b9c9784f414b3b5e3c467587f86db44a5a6227c5d92ec1fe2b1e921c46911dfc8606a5fe0c274963fbe8878aa0cf624e131907fd27ab385944ed75992e1eb0c0266f309f89b1b31f9aef24be994d40ce3d3839b25fe65de12fe5c17b6013c0bf9ba72c8429c90b80cf520af7b67c126cc0d2a163b9e327420a7c3873a1487ec4cec3830988e5306279c06b5a9f79b0b47484bcb3c8a8b81284408b079a1901ef285629b89960aff95ec6c1a8329fa75c7b2369704eebc5affdb0418f7ee3fbe319759cd648437e9f3351a6281d1185df1330ad052492923742a231beaeff8df13cbf08a72a055795fcb09b3950aec024503c258133c05276b620ae1cc1eea1e4c226112238a3c4dc352c9ff5a5586b38bea9c9286ab3f973bccddb4c1a9cda6609b730ba69a3fbddaa1ef086e8260a4133f35d130ed69857cc2a93431e08614659205b41205c2f54359bc0d0b0d1294954890f6ab886d022e0d609089ce27db349be210d453524a56e0a75d296b81c2d25fd544f9264eb82f3207a46e6a426a2c083c0ce8ca50da08e482b7fd84a90a21e9c13d8219f88bcb17a8180fd7fad129601b3cb1be4ec9b77fb7fe2734c7e852ee4892f3b1cb4366faa77ddd59e83d3b309d3a81c3835e4270d5e961c17684a455d19cfead64363a03e50c78f9f252184d9013dfa47c07d1687ab808c2867668e0d882390346dd4e4da19f178744b86a8957ca7ebf60c00b6689ec280146b706c86b60fb991b282c21d2422881c1ae605bfa7f0897b6de9993d860ee009eb06a25f3266b8363a710f4a4b9bc3166482e36b5a54b9efa7c13a7785d3d6d89beee61436bee22c1687b50c2da168b10824f86a9e6e93575b782d9597e9f0624f544779818597dc867422b85d5c7b7bf3a8800b14cff05570cdd1e654339fc404943c16dbe5ee1f1d3f45dfd5c1875a5fa94dd6971c30931c2a77be5ac3591cd6beb8446c7f0a452d4aadac2f486c21e482f356a21ca3f30f1621b41ad34250b21f2cb84febd5840a27d56532bf022fa668d7bfafb08b832a8f3a75dbb543c0458281bc3f197eba1b1f7504ba073ebf6eb34a8f7aeff144bdf595c9642a88b52f492d77e9fe9c3ba54592344813e6c0bd80dec7a1ed7a40090170778d0ab7a73c53f3140eff586914f26bc102a92a2ef495dedf582886103c0846e4516ad0090b307e4d4a84da4a102f137e2f357226ae100249e6b85481c3165ce9c1a0b16d2e39a41fc3aeaaf73f48549c49344103e1e6591fc6382f701d6f95fc01cce112aecdea9a36f191b60a824ebf4c76d2b601836a5a23b9b2361d7d1978138eced9c7d22a85389052296b0b08d8f8bd3ba33c415dda683ce0df805bebc85816c40e785b9384913f32053b4afd8827dd2020a60470a3f7da2f23b056662cb6ca6853fb1f3296525fccf321a2c3412a7114dfc7f3c47927f69314e165968e4dad23c1899a603f3c16faf65b608387aff87a96de8b5461cefb854d57323d85dfa49ea2ed62dbe90bcb2bce6449f890e698ef0e050c011d481d659bb9bb7be54365e47a3163e2abb72bf21e0cca328ccbb68037ffd1f023c072cfcffa68eabd1586814fc0eab93b3ed6e96a5eb3b9aa3f4841724e509002ce09a29c5099ad13eb986c24f334b1fa49dd4c8fa2e17c48025c3e7bc3b4a69ee6ddafb508006733769134d14028cf2fb85bcb384add6cfc707b67620b5d7bc252c2468fecb027c295254d732829a8ea9018aac16303719536a3e0ac95c695b965a7da25d8337d9721d2b3a4ab6aaf9a77475177845e786b789c3afe0c0fa02a994925d345f492ff8056bc4ccb4f588fa16b58f2d497e4c3aa5bc2d2246258bf9f534317f5745b879c85b37aa6cb4d90ff01e7b950e0108163cadebe66011da4e50dfbfe02715103124a067870a5acc8e4c721cb1882d2a00ee81888a93c737670f7c9cbd11ce0dc284dfdf23d8e4fc676398598608507889ee357735770748b1656b65da0bdbd9636570cbf4b639df5f926032fd3f6ac04fe1e46c6153020edf0cc1bd1f5534aa3187e0f33d08c1ea7f01e197c60c781717daddd1fb656f3a5ae291e8aebda3deda97dbaca9a16817e4b0f6329d83b114bfd6b9a59ce364b215bff3a7a3957a6d8348c13396280bd5da7c42a18423b361ef5c0debed5eaaedfbccfcb2ce2912eec9cf115b2dbcca61bffe31e79f402caa492b2f39c2433eadd01cf15a601d634d8a2f3308a6596291a2dd5e428b583677c14c0fa5411c2f6228a34a162e3e525b275a68ccf283d1cfdb1c671dab75dc41afc7967c3da7f6f1357335377c61dcfad4ad56d2ed6479787763a7ef7537165858eb3f8f1e994597d5a0647ac14f24c5f1328974a21a53de7894a15926048d58e2dee9491b6a3c07851c556955537ed5e672043032cfa2456b2acfc5f96925abf273d2ba158d8e0e78fbe8d3cdda6ff3787778e309f98229ac8adb608f244cd8dc721fceaa7f678487b904ad98fc03bae7ed439e439838d4f78361e05f500c7cd189f084a4a4df5349291f4702de37105e4d0f2d03ff091ba8a74da3033dff71478ba6999745a35c13bacfe2c7808089e49b82be24dcc7afb193da0012a3b7a9261f318388296d461164e0b53d2296b6252d18cc4860acf58a8389e9d60e9f5065d0a16d3b04f816a07031b82c39179c8b3740eec5ffc5a103500c14e9367d148e323a619c75c24b7e18e630a8ca09101434b392c04f642f3b4c30f563d1205f184c130afda38e2c0a9a14037a634cf061cc2d164eb62992ce5b40a2ad86b15a142a5ca42fe087a9d5d391646127e432ced972ddd23c16236bc52c7e31862bf10ec710f1945c33cf104ca746a1defe9a44d1dab1c20f0bd27ad86e08867f2d37c51854bf743f85be48337576c5fc0389e05574f89780977e0a02eed4e0f4819abaf43de761efeef438bc038cebfbb9d6b99d63e323c97257b200fc35bb791ad7c035c2386cd3a20360e624e0d8b60a8b5d59d5a6d001397ba48df653ccd072612878993d4fdc72b39649c27d7dd02057145e42c78b137d5f7a932b5e145c7a5304a659d90bed42fbf7173beb6a58324cf4daf9f3e514320e756517d45cca23aff9af3e66e45c35de69b71df5db0f50b85590ec4d81e40ee067e5d75badc30a196c48bb4375c6299347d2f06b7db72300c0c03ef9d93eecef89019cbaf9024110ed22527f77b7bb0ec045e2b61ec435239d3fb77d2023e7f1e3c6d3b1cf679342395047ea2d25e064a75590535eae5ea7b105e55221fa4fe612e0752bbf76b42727429d6b0f5bdad01a4b86259c17c4851a958534228af66092a344fb64ad211e699328de8f65fd2591d19d86b0c88d7c003366100dde18d43cc66ac58ed6e3423c59769a891fd2fc46e806cbe749c3c715a03506336d64450ea32677475a86cafca67efc479d4cef6fe308d9ff80d4d5de4ac0e886abba94da86c074b9723d268434d3bdbe72b8429f65313e66e65470678268a1a5b1fb5a2ea6330fc7fc8aec927bcd2d1b9a1ae814551129dc98f410c7b38009d4fc566135fefbe4ea7cd62eca8363eacdf9e386c9959f0fd49ca0c27492c52f4e05d519841610d780a831efba7966d781931d84be7a47cab132a7d18291399952cf2d45c556004a8d8417d1166803d8e9a240810c42be041101c953de5cc43b406c695729a1210c792620afdb8ec25a526b07efda13f9850bc738f6427ee2fd3bc037d6ec49db799d77229e4b114f2be8bcc325c46fde28df6c6ecc341dcef1ac6279656e45b431162bbb806a88117247bcc78aa9b6d0ff6c6a0d8af3f2b43b61ee62fdd6faea09424fbe9bf0f403d429d94d24fd9ecfaf3cb71cd2ca04544a007519ad06f25c6a5e2fedaf07eaccc92aefebd9c45a69a162aae391893db947a6298ef1488f8eef3087e1e7abcdbcc761ca6a62dabb64504dee2ed57e0c272b9b4c30e7d88f69a5d34eec54dc3ee4e2d1adec1a1c374c441ae6307d3097a740c8d340609726b0d950609b6f762fad9048ae93484a2facbd02168d97914a6aecdf40131d268dc5fd2a5a19dee6ebd5fb76db349316603ea187dc4a2f97f77f1e3318dc8f1b13d09973ebb27833ccac3c134e1931a7a9e86b60c50bd880e9ab9586e56e70f373ef5f762a2e13ab10119086e8fc8d9fb592aff4b8b3e2e9edc575ff9b51f160e13ff207b6d5eff1fb790fb6e0c6255a6c028c51d1564523cca4c76f6e9486d99d7b03e126974f2ddbe8d1591d3e2eda566ca7c1214c8e4dfefd5ec3e15fe4838693db4a19a639a84001f6fa08f702b0d9f2691a8003307885f1e51f70337c23ee440c0d91f0f53e9e6046efe9cf610cea878e05a3ca828e3e17d4d59f7a07bf927f62c40b46cec9defe93c5360ea2e2273d0510d8b79d16a39c9d4c7867172cc3d24c0a2c1a76c3af9093f77dae2533b632d3afc1245044fb7ba6197fe7e205d098b68291f39da6410a7d45c4921d2346af9ed1ea57658f6a4283d245af6b056cd0a6bdc71ac3874d629177dc0e80b6f849dfbf3ce1aec3c798740fa1f6da3cab102aa7d1ab1eb539c2dc0d3691a255548c7ba4b103dd09c199485bfc25a45d903e9a81dee701d9eefb2a5b88a7473c5ae8b6fdd66678a45f42e86dc808ef5e7f300e3be5c0a3ad3e9b071490482481b6ee260da3c1eb0caec37f30a892e2fb95ee7b7c284d2244baa78d9dc1ca58932f416993a2c12a73ed89981754408b3edd21c5736682a45c874ba448334a0e97c0a55ee7bd890d595cae60a13cf36e78c0512598522175d6086d3c98119a19eb96046bebfecbf018fe9c488d90b13d72a8c0b9cef543462fd1f7c45d026174ecb58328d2895c14fa5ce7d3df845d30ae43f608313576857834bbd64a2dc63b6cd2566ff35af0853c50d4f8d9999d0d577b3e25461cf5854a053e6ea518b4ba1666847a649db99c0e277a6eaec35f4c9e0b165757bf487425c0de386987b8ec184adfc1936e561b425e951f30ba98d405cdf1f7a15931a0f483e6eef6739b154b6ff70f73567680c0ca52a5c3105bef34a26f2ea287649b6aaf8f789289344893a071eb1a95b9e2b446d647a9fddb6a948a1aea010aca943f381771f4132b75341426723265bd4c659e71af5f50e47004bbf6b1ac45c5069e75ba9e246d44e138615b33731cc26290bf66e760c8f81b714218b3e2a9bf38798fafe4f731329772b4c1c8d9e03d98968644304bc20ce66fbff20eaaeee63b87615cb0598e6474e3c40d5ebd84443d1f3111d390a1df953c8af788b6591590c908e70dd1df12855cf370b24cf9ff068a89688b0e811611fd5ed25c7eea59771412333368c0c54c31827c2098d71cd5d8ce8c1331fbd62f79ffe3091e8e71cec8f3c2755d093e3e3987b92a33196ad12f686d31ec9f1ccd91b19dfe84d18189171a4d2ce65134d86268f95b2c3f86b10ad9c33e7aebc544bdabd15c3fd8471fdd3a1d05b317c98286e25d5065634f690728b502d9fb460636f226847feba1d4de1b0c516ee0233722aef94332e4c707526e8d5e581b956d957877efccbcdfa90d79ae373ca481bacec873b70776cec22a0c78ab59b4c1b6a91a0a68d6d45d0c1a29d6b61be83cda63289ed933a1caec5fcca387c3167cf56de52375ba0f5686eb0f7a0531c1725b6b1b01d922a041b127a7a47e2e8f59b9751476fa3a2ad7083966dcc42c8e9c97d830b8b94492933519af3e0e24b75695e630f30750235179ecf5ecf215c7e8a9d037a2d03fa7543f556b4855c302e0e16b5c0b6c2f9f0d3d4c145a2e4a40c3454023e2eed7834ac55127d765073105518097e12ae00fba16ee71669c6f1b82b03ad6098be244e9280cf2c9d21eda4dec39bc279b764a07ec6c5f786dc6743feb1396c452f8cfb8aa7caa1630a0f980ac66dba1ced129f0291081e9213ce34c08b187505e85158a20259f38bb05241f9a15f612101fb729f499ea646211357b13d09f7206f8b8ac1bee12a76db95c12e4da6f1af1cc85f4689b93dacb23efbf1d79f9d3594120b5fc2c639706f7b951622d693110080ee39bfcaeeac8d9eedd059bbdc489d923a6b5bf65f5801e392e71ffa5838cf0a14d8b57e7a1a4939c9fdb8f89b9eb3f796eb8464055947162a9bae3ed48f58457b197439aff28523e2fc240a10fea6083da94bdbc7e86786d148763fcf4a84599a38adfc9c2a2dca1ca2304277aefc37baf6577b19f76cb87b2107aca6a947f6fc1b10e1ec02fa4bac77cbf9b83db74a47f7c367de1e6be77b41ce5c78d1ef599ad1119de2e13a1c7575792306aecc1ca7b4cb52eb44137ce1d20f371689aaa2b000687f0be373ebee6586515cd262d1507e7943d7ede3deed0c7c545083c8fbc9963ae07d85b2f40aae9c9e800faba05cb144bfd0209dd01f52f541132ca5e1b3b7d4ee4362c666bad2a0c8dc5a87c6a8b87c71930052ecb0d39dbf8c037211ee5bffd1a3d6d15b6015559b67a4acd1e9ce0fb2741cf0a4627838d752674470fdcf5ffb3e8e966782ebbd259b75df8ca5e46d157e5241a3944ca8d59623935884f445576dbd4f971b740647786727a3a504809b739186eea5ca0c12f6c7dd586f2ef70eda801cee5984bca8e4a399c772252dd9092f6618e8ebf44a132bb2e727e9c07fe56dfd093763d6a0c0218adc54e17795d95abdab986a2bca1d5158ae8ba2b04dabecab4fb68ef017ff321315ec635ab145cd0cd71e5706d78a555c8758c401d6affd30de2ac3b2fd70fdc97f06e83cb4ea7d5e547a0bead0e7f83eebe9620895792c6970fd47d8dc3a4141bebdeefaa3c97c02a4f85a823bd6cb183ba1b9b871cd96681a545c23f44733efd38ab8aacee93e7fcfbf2a5042434134d625caea1a87966937424ffbe3a5fbd25f933c293b5d20d3c0833f737577ac1327f0f776e379c19469c12e8d042e91faba6cf2d67ab89dccf1314706b87e1350d5ba344800b9f8480bbaa34567302a490bafe8cbb6d4855ef312c54ccb92b317a4de15a3c45c9dae8083de461643c8091c3bc9633043cf00bad89e76befaa63d217213b3ee8348dcdb9d16e4f9b953f06fe4f8db292cfd38bb08831194058995cb869a230178b364afcc12c88e0f8cd1be36332a7333ad98f12bbd1bf81a04ee63eadb78eb3707329982f9a4842e102bcfe0f394440487a82d4e57e805642c29ec283dcbe2e7ce7abcf7e44226b1e294af8a4281ec68a1d0608e09827449ccf84f5882a7a0711af2512064fefb5d96c09857cc01253b5eda9065de8afc5f4315d917d2ad0bd3af5d392b425dcf9bef2c7443ee3ded224d7b114634c302f2492fc606cecf97e098b651f7e089c12a487064f183d78f0846bf59f5072286a41b5342c46fff63189730e9a73ee43c282aadaf352563bb127e391b2ba311c836782108dcc3324df0bd60e2a69e0d5aa600bf1e8fefad47664e4bbeab7b955ac495d26653357d795747f9afb50a58850cf87ef7f17d39452a27dcd6fc4a94d497beb9b37d12d3895474400caf9bc66fd4cce470655c645e8bb9b84796ae1bae03e8bdc861dcf4d24ddb6838668f13b8ec3f29b56bb8cb337c6d9dc08dc7a37cd390e234e44ee03d9b31896bc13022b03f10ef0317e81d0dad119693aa16496eed55290b4e7228137389fce33c416aed94ab3cf95908f3a92ee2a07dd321d4a72beb7468ecaf738ea32ef6bf820025d5d79d67bd275d58988c0ccef5a409de74216e99786ff36853f3a4784c173bcf8637ad95720c69e54e7aa58180f88d00cb06dbbc66faf7ad915d22ac4b88347fcf487c7f7663dab296cb56e14bccba4921e32dcb69fc7caeba369bf20c5867389d344ee610176c916ddc865cfa332b28d2cfe911e8c1b16045c40ac2d6edb5d766f3a631cc34e23afe158ca0dadfc548c7bdbbbc224e3d101f29d7382a2a11b1076adfc1a1a6ef6164f5d6ec10068a1ef63c5050fe08f66de31a5d4d980379a7066d3832874de19babfb18b46b8f90d58786a58bdb5ab39a6fd9b82f228a36e7fadb696a4041e97a891a204c3e740f224df35796dc12a997ebe60a14f4017b13bf80f21e1b3b8cbfef513de9dfd18023e749dd9a6254a25516000d42b9634db7d12d37e6d47d89157359f4218431dc574147382401c1af2cd8e1445d65d33a1776e093b613a0c7a3c7249cba9405839e8d018b1ca50b720d13cc6a392865e31635b60de9f4f10ec40eea42a1a0dbcb2abdd70df909d2bfc88eb1c8683c78ee789fa33c74be264c1fc015b0da86122daf394162ed9e6e2e39539e4ba017a631d3709662d95b1a251cd2c333858e735db5158b7f4952ad06459712208c316b91a401637f68b88d1926fe1485588d71fea67bf78194c89e4c9c24a4b798015694fe84dccac33a73a6710cf42517b54d424c8a236f174f9dbec5c7ce9db1bd0166ecce8df03d116ccc6183a8935c646a67a704b98a2f98e67130343168c378c933efd6ee3e9a92ece5e6371ebf9ea5a16fb92e87e32541ae8b8ba31202cbeec7821be798d60f496a1d4307bb3a53c9e14006aff2117c498c341ab5466bfde49c46329089677e9d1b7e8e01da2c4439b66e44a119135d5edced3de7f2f4c231f334b04bc0cf6818683dde76ab6234a30bd20cec33f814ae38fab47a35fcecbf1d0d774497ac089dfdaaece168f2ef98ed4c664a2bd8e410724697a0122f38473b49ed66a6745a1ac654678951827d5203e862a10272188fc4e2308a326ce097c9e6c23db6f8f96bd55bda215f21c9c91472f887db5ec9e0471c60a7c4cf3e3775b760b3cb3a71101b180ea9ab5ce4387e5dff2bc14912fc6ac3b9914469efffd98f69cf1f5a9c4220805673dce33cfeb568ed443c92860e512c2f9ee11c189fb261ae09b07a0f742b571d08b6ede5d9f1b3c43f227df798561aa17db5b2dd0c5f4230e6fb6fb2e0c4015a59cba327dcd7f16523149f0cd6784eba4995ef0d42628d3a60a51a646c4741cae6f2bde451db8a33be0245c1a515eb1959de0d794651ee99580ccccc7fdad0b38de275c447ef509a11ec70b9fb09247b1a1e0f16ab605cfc30bdc95a69aeb0cf9f6c0c692ece0db1b66be74dfd99016b63b82c9d6a2a794a225a666275b0a21d07cd607a6d0c61f2901b83b0e8f74b815605db9b6a0d1b53866854ea78666a85f523bc2e8e061cd9fd632172a3e9524d47191c564ce264b9e1f589f58388430e5af8adcafbe2be09b49ca73275eb9d53ee8c5ea321dad47534f48e3f8279607007a679b9064b3dbeefa5da2fbc3ade63ede1d7c44ee414532a7983711aa43e57ffa855265f88793348ec8d2f515d83a16883695def7a05a2008c20a96028d4ec541b064e5ac430023c8bb49d764475058aaeed07da2f7b42be21b1b9fec700e5b2743caa6f75a45591dd92c858e7520b6d19fdbc09b00125e5715e3e96cf01912b786d0635745f28db22ab5f71bb1e20438497a91a92c158078658f09651e68fdd828be44e6157f579082535d64ba565d3b87514bf54ca10638bd0084b6e918df243ec0e86dcb8ed76894a94ea4edbca73ab8178355f7bec6ad86062a865c488b2d4e347a5665e6f25f1b5d8eb513d436d900a459adbc3fae92fb5aabdfff1f25ba50b0cfa24399a2b8708748428f69b4c02fd84131e7edd8c6f2428c0c1bfb79e9c32942d5a82b692d4928769ad34b802efc78463add301124cfdbb3125eec2c5191bfd8ca9e4f0c8cf2a3a7ed0ccb88b6339a25b48a8ba4b2e93464bcd915a8e1d1c5ced98312476c6d4d9d14f234c3144689b86310f2f52a91a9a180edb4f054f8996c6087eec83943d2991112945ecf31cdc41ada670b6e3a960b60b44105bcc57c11a769ba58515634557248faa9c0f2f91c214c0da67b2ed2ba9db0c9eecaccf145f291550d8fcedfd3b8ce8e5bc2820f913651aff08a243095c132933ec5f9d5cbd41f5141d9b85d8ec01c3899ea8c4b6789984bdbed8d11ed995bcac2cdc2e96278b5ea0bbad0a296a0c0adc84b0daea90e38d90c33d11597ed904e6bcaf35439f82247359d80b8c330a42996c726eaf76955d438f6cab109fab17c3d7b89d8398c174e52fa3f24ca1726778866f8d1ed996dc0654e755b3ff15eb12cb90a9ed26ff0f27fc92e22aef8c9756167c52415d23620d6a5e7da33241e81ce3a4bda7e31f33adb016d4cceee615ca0ffd300e5c82a982a01bb36e022fcba32345acf4eaa76c3168695bd3724a2e6d21fc4a6711a828cbbd9e0264092a64a78c85f8216857f53e8ff5c75c5a389334764627ae9e890793b1ea603c3382ab6e9fed04b5139d6f29285c7a5def72df4aed58591b7b8229b0b58780e5043465b59ef0caed0a814d129eabc66c515d227766ee28bec6dc4bf4be57f5b27021b556d48a5eb95cf29fdde9fdfa64363499908bb6ef07d5f0189a5f2d6bf66f3728a5d88d494fe7988532b82b7014819e2a18dff44d2c89b4d39c2042a8a94dc88ed6ef16737a814854225d216e7d720a211a3bc4cd9cc446b3d2d80a01e24b40e65ba9d31d8cdbd942b31de500b492a65f0856c8448805e47c3556509c3f35c1a8cea1d7afbfe1402ddfee41974b3d6e75a41adb360e67fba9d27bf93928ad88b1848a2b2ea136aace5460b8ea52e49c4acdf2c7591d328bb2a200d67b417114cf980b4453ea57380acfa45c72ea23e1443ee9bbdc418ef9524fa308f1f8222ee5efc0111ca92c8022218647c1505f7c3d6ac6f7dca6575ba498cc0849f59d0a7b5f80863c2ad78bf36d21207e8409f7fc13d06eb93052fc5c1973da5f18faeea53639f572bf2153aa19a49bd856446f6d1c7dbf38e4cb60e09711ab52b6aed8d7bef6764f72a6a7c0ba6437e76eff030d7cc0bc8f7c386d1cc191268527332f85adb36c4ece43183a40933e276ef87ec2e398f59ea3f75a57d1736050822df9e1d9186d4ebc7e9a28ceceb8e4f35c40875d12900e05fbbc10f0b2cc758240b4c160673e4567f04c02c603cce81bf8495b010d0efe11c6d36fda7759dfd981ea02225e96250321b6706d7084aa85e6306f398fa17513b72f48518ec4e1c0110c67040c8970c1974897f27ce53b884196eb79510a18210c29dba34befb05295cfd854a2cb131edf78959a05f25837278f92ee45c515828c3105bd1321a71de532051a42dea44c1f74e27e1753863f27122535947ffe5c99a3a10a2ad2e5b014adcdf768f9882c58de56d459445c27b6bcfaa997a77bae50b00c125ecc2055f38b715732b62ed3f7087f49e118224c676244ea600fda38ba018a1812b066ae40931bad1c2da21695a5b869aa7a3787fa4e6e432dc3b8b3ab04b1116fa7629375bfbfdf241fb087cbc3c8e31826ca3beab1070a8819b60efae6b41a28e6b21b05866664197d41a9c138572dea1ddfeb1932eb9a849511c5dccc2afbefa7b18b2912b50d420c219c91ee472830733ea1aeb6de150479b239f5514e15fc1597b6fdaed06dcf31260a7300bfe8b94e450e76ee7e1a596b7c42bc3919d341f33ddc53a8f6132b9b4369944ed19fb05391d62acdb66954671edc873a33b8aa93ebcc4318615c0659100a51703287fe3993420d8fb165e835898b203e215aa5cb1a0059bf95412c18820f13f33f34b8d443b5d307b0e27c6ac0182e55204021213ff0b3e586b227121ea8346ce3c222d7a4c206c90904d04401c9a7f0a39448209153c960d09f8ea8d5d97dfcc10b021c786faeef6b65f17dfc448de6c410f0fc7c68e1fc8e268e73bdc2456d868a31a91608188e8911e3ab8a1ae75cc2bb2e088259561cd4a35e55c28e40fc236fc44fe6da1da41629e6186ab8c89218f42f5a6d50e301c4349069c53ba9865a599ccf67756059350e759dc6b4b6d7546af168c0dd6f1d50d90bd5d0c81cbab9a065d6fb6443a215f59355a8dca27b65b869ce86bd408635287683d5ac8f83120cf5182a4b12d7c5e06676a19b401f953fda10d1d934985b286acb40dcf45f01cf3843669624e19458006ba54c38a9a7ba479e375c5d1a28f9d865c801203fe5fee8e0ea739e1cbf53bb48018d5fa38af8e04cbc909dcabedc796bc8362e645d7f551c46bbf94c571cd859e2b23d80da3aebc0b02bf5a6826a9d269145f142742e500b808ca8302c156d3324c52357ad4b64779983ec905dda34d8417880f1ce4cc4fd19200371bb856af42cc509df3311627ee9e9cf21a9d49f02c70f0b0b4b62073f4526cc14c33557b95485153d52c902607ec428be07ca7bc7123ecf6b684368c6dcaccb8c4f7e8f13aaf5b7025a73c1b9f7750f2013b61126a0f4d1cce1181c27354da901dbf83ffbaf27fe81d85ec93b97188ed8850a6c8303a14e1bbf1c0ee0d1cb4bf7b6b36bb28e0b5f9289c2c788e3a8bc50d50a6c03d0e4c3b75c8678342cf7b671a09dbf7165f8e1e7b063acbfc5bd35960e30221611d9f80bcf3038c0a787225fd3038f080f48031ce7039b86d31eb7aa4a9b701f9d44a3af9d1cf45c6d71b6d8e42b9633c8d1d546b5a486e7f9ae9e24d46f0ffbc6f6c7083889471c85ddf70a03283760eea35a0307f006720525967a16bd9967a1ef8a1fbcb4593b6c9030116fd583635b44ac308128c22ea6fe0f5acb1465124e001bba8191edd183194289f5c52c33ac4967f92b9967a2d202f76c1f2d5b9f978651b0d8dc755b5302d8670865cf3cb69c9e478b4d5bc670e551e0e4119a3781d5128be2546c9e018f0e6e40d8b7f734c2857d4d2190caabcf10df0164d08e3ec8625f73c69176fed57364bbd0d309251c9ccbe1e766cf30861b19829586ca16f36cdbd78f26aabb837607d1dc621140934713460a162eae3999113ed960096c050c9462bf68ee3da9beed52cabf72408eb85ff08b720281aafe234970a8b76cda24cead1605c8b8c8d3349cb41ec9562b6222d7976452995b9782865b86e96312bc8baf9998842a6d7ae2e6712cd9204e6a0eeed08995992c0f0487b648677e1d53ea3515a8fa90f7fb0216de20e8e6e9f57434bc0c818c92ccc2e13dcdafaf4052d66a5c6e48790e521ffa50b24be82d3685b00bd58231fa50a4984a577349d83ec93079bcc7d32c08bddf0e719fbc79895b22558de3a91a7c59bdfad8c4d24e4a5583d9464b30d388cfab0a3183bdf89985f916535cd151e9bcaac6cf31f27cd51b0132845a316845df20ec1b5df0ca2e1ba53f2c43ac40dd304a568f19953a0c1f867b1448f64838c3511820f5e710aa98a2f69afb504cab7fa786bf0bde2f1af52fcb7743632a23a5b66c4c0ce6f1f3c2ccbd6bf08b11cda48e69c154e9d47c15398d234dff854c87972dfbaf4a97e56a5e490020b81432add31d90e9fde15a359217d8745b133b3bf3e10d07697c4c915114e4709626722535fafd76e6081637cc17525681ef8fe6582d2bad4e2b8052c834c41f8e614219c95a33dd688d4b364aa43bb2a8a0623f777a200d4a98a18429a2a5a356cab4b7c3b2241d8058c830a118d0776d875332e855b8d845c9ca85307b4de1d9402411bf1a0e05aacd8fb9c4a8dead1f30e75d648617424e63c44599763aa7035174605344ef88fb06769f4f485fdf3b8d00e6aebae784d4ac8f72c24a036b3b7104cba00bcad7edfb1e4159cdd3d8b10e1efd23563ca6ef9461196a7d5649959fb545a59e297f60d75d00280364a2408229cf177f93f6b8fbab62a082a0c2cc269a1642f68bf11d02f0b264976bcd5528a1bfa4074265ab68b1c575e96cc3ace7a88797aeaf5261b0ba785f4faf9b2f327aa05afea5e7d576a64c9fabe20a3fce15d8ea80c5a4351d35bd2dd0e2a4a43567f1c097390e075c662d968b87a1c3e29aaa74eb9a6163ec92012d51a96bd008a3e16efeb29dcb11c93217305eb00f6ac59a91960535b822edde1e5e7b12ec164f1a65c6ee87a2593da49c6096ead7b50a4c866a9083904f4e94a0d6886b8a00df3466c7b64eb2902da456241c48a237ddeb9364f35201221ba86ca39c9fe4808f5508f1680040a261d128949eccd6a0380d559a7ae170bdd39025e36873ef5cc9a864aa8334bb50d10803fd7f5c63b3fc31d6317cd4681b61e45c2f89e499d37d424344017d77fd0bc1eac4d394f7ae76cb8be61f72c0c4aa2ddc9605910346c676a440d86b9083434c03768119d5a520b61f8081e5858a526ce37ab7f52c1c59aef26779b36416afb3ac36cd1e1478915a372e034cdba610a1c7610affaf3e300876ddb017c1ec01bb0c049bb0ed432b34f54a8fd523d1fea8848969d5b02e23c4b232a8268c74ebc591db4375f516337d8cba9e526a371f300386467d0a51854f997d66e824d5432263d1fdbd2108a1d6a5658229a86f30afca70d9631b56d5ca1a1b29df8b72601675bd659c07ea1312b6e904942a21d14c8abb96b41317702dbee9692143d762057fc888e9bdbc9cc4b5cb3e79c64ee8a0b810938fef5d0b011cdfbd5fbab1d76cfeae85e04f9b887f5ad46758da810a8c503423feefc651824a2bc1fe3060e8055a6192d1bfc74c6899a5daf93fef91d12f50c5420dfd0d10f568ba816532d33648d1476a6cd2dcfbff53b91e541e4f9bbbc0ef42bc0ae82cc9ebd7dea300ee6de1de7318f2b17fb6fed5055ffc430e4f88b50682080caf3c10007c3559e806bad12d0886b786018195166ce9846884600913b035019e3a29025d27f2f319deefcceac033b3431b8f49fa7ee29b6dfa2eced5100e944e9dd1a3060f2f924e73a6e6f23d4e2861a2955adc07bdd9d9f871502fd4435772f94a970b3066b626f5bda72902ad5f0cc6be7ae0b4b295706392109af0c1fe67fe52e2e053f93b6f53d5e8eeb25fc52e24ff97ba71b3c9fa6ae45baf77ea07acf182c6a46b80a4a0a3e1689773f9121c6f32110f8f1650d28a02860a3b066d5b021bddaedf8a524c7b1a116f7b58717ecd5afbd6eaf1ed960de901fe6bfe7b7802182b4b109e248bc80d09313fd3c43c6404f3cedef94fab99bdfe46ea098e4c4168d009cfb838215951f15c475f5d2e6478157bf4e1510e85c98832feac05a6725e8f7864eb2cdf30e00b318cf45668bee41dc7ab5e214294af11355e729e120de2b4b8ba01afbb2d0684d2b8bda823127c2742f51d3cc998ee55e45b60cebd45dff0e0871b5ad3d6f9f71040376143a35a043621cbedbbe92b04155f20c316f3a4846b069cb90c3a2559eded7dc5f6745a7bb467bcefe5b15dedc58eb7e51294995468babe80068aeca0ff922064dd4e95672afe5978d8c71df85742df558e888e2d744d2ffcd01fcc2a9889d91888e08bb0ded039170c3c3f719930578b4cb0a031e9ef0b5f7b594403467d3f0a8271934964c20f0de67be803c17ecd4ca8e846be89ffbd0481ca27d76b2a4ed1d7af79de0d6fc53ff2b9132e159cd0c8b9145d691ecd6f6c037ab49335260ac1f72b0dc49e543c8baaa4805d7061a3398374e8c7b9a00e191e7b7d2d9d97d6021251f193e2f841b03d5cb8385d06afcd76a8d0df43384c5651c59e640296ddb8ac7bc2a57fbfa028aa0739c13fdae4e07689c35582faab9e3935596f37975ca3febb31e92e14700718c3990c225c4f598e72449c2c37ad5f4116a35f0330960f374b2d85fd6ad045af70bdebed2612f139923bb074aaedeac0f6f95b0416dfb34ecfad729fa15bab08248b030a841a7e59409cd1360791e7a8662800b870566342397e40615c999f390da6b31194a703ec42183a8e4f3717c77de90ebfe85a31bef7bea5ed2fb0ef8019e4b3cc50ae006a9be7d2d95d74e500bfa71ab073aae3e56d77f7cade32c99464b707dc07d107afd2a4d9851010e48a8532225cd36b87fef9c87fb8c85724336797992f717e28af1a0911121f096e306005f2a79d7ca1052b5d80105ecf43d20508a3fb6150bb8c46be43769d9d20f6e7952e3eb0dce9211f78dcd979885dace721eba1d1431eb2b534e79c52ded01fec3fda46d2e0976f80dbf7f4827a674781b8d82e5a318586d111b4421baa718fbd0deeb1e7c7b0d7ba1b3c68bf3d96f91b3cf8e001fbec39ee7380e6ecf4b4566a58a008459ef4f61ab6bd564306bf0d4d06771fc03efb106021d07eeb2848c3f991c1bf7d0e503f25cd8f0cee647c80e4b3b7419275377c706723fbadbbc143e6b9cfecdfe0c1070fdb674f42f239401bbb21d9945c619f5596071f36b8cf3c0fd96fcf03f799eff936b6cfde4646c6ec3eb07df621d8ba10643a393b5c47bf0d8a9668090ad6a3e027d21105e747fb06d14f4a10b6a1a2f9d9be33191eb8e1c306f6dadfd83a393bd786d6ddc83aac939e0516570be9f12da4c8349c08e3d005154e66e86bbd7671b4f6cc589925581437350708385a39b13891216eff8f540baa0827c260cd717549b8f2d17da421fd414797df63688882b4857e74c7e5f79652d66aad46c33d457e14140ee75fa3f191384753bcc13f9c010c2a900f14141f89a34fc8651a0a729bc78dc73c613d4fb9fbc8437e0b05db93039b09d31d9ea2f5d4fcccc9856a8a291dab298ee338562d8acccab5cf5dfbb4921644dba1a289b45003a2811acbe5f7eeeeeebf4a7206b326ced7a1a7383ff3f903196876576976f82b12aca77d97b52f43632ac94fa791a6f80bbf0b7194189322d252ca4986cb9fd937bbd3dd457eacf2244376bbf393c87a1ef2d0fcf8113eaa4c849eb83e0a623d3f8dfcd422498a6d759bd212a5b444456a8406690aa4a9e9364ddda630b7e9e9367db9fd945b32fda6d682427d28bf9ea35a98d947281d1c2567b814e4873e812a394acee8928ba4a5f670b7a915540ab7dfa353dca6abdb74e4c2cad9a94eb0b4761b9220ac474b4fbfda69614b127602b4249920126f8f4af3436bb5d60ac17a34bc7d67474b46686907b73dac47bfdb4f6d40697081909e1c482a84fc98064d611cfa5b0cb7db57455c4749e799e1af26ebd1d295265af2509e38c9c51f34c57bdcfe76213414e4760359dd76256ed3944b4bb4c4366c2b6f6e0bb25b4a29533d7be35daa943ce166feae82f5ae544acef0cb57bafc400852ca6eac2fcf6b8b39e75cf9c85b66cc34324717398b875ce5f24f664e7e76b5ed3dfdec2129ced55c59447023a7a23b152d90c5085b22bab23e6b858e56cae5f7165bba5d9c1f17893b64d745cfef41c80f950245a1449e593ea45584cbd6112e5b515c7eeb06f2e3a72fc80f15511839a33541b03eb07670d99ac1657a864bc570f9bba3a88c184ea8cb6fb5582afda12498feb8383b627b482c96cb6fad583bac141a43c58cc95292383f54a4d1745ea5a4cb1a6b5d2211cca76237edb67e6e58d0ef32fae59d0ed31c8691d11d154ba2607dd5b9d89ccc683d2ad20113ae10d2d303e929427e3c9c1d11d3f0208c8317818a42242e4f39a3af48cee0cb926711d9e1e7a21ea13a2e8bf22413c47ad4452aba4a7336a1911b6416b9fc9e6267cce59f5a5cf620978a547411372ae101774d691fb5b7dc6e96522b912d9737d9b57eb02d35b7ab3c6939c5f7c25c8dcc12ac37479e23fb117e6dca98f33a5d637b52fa53552f2f282686f05f42da23a56062c8e54b5c0d41c7f5ae181291299b378d6577e6a539f216b1fd5a8b56113b45d9dd39a6aa8865c934b096e6c89b415da7f65cdcbd5e2e0b097239c875ba5046b84e9925d8d314278c569281ef3ab5c76346c3ed2e461516c695529088dc0190c15a55982f89740f2f1c0ed8870be3f2a614ae24d1b21b38dc4495d8f72cf800035cf9d26bc0952fbdcd95af611a4cc3eababe19ac4a898387c476927b1dda96bce4d8921e8c2b5f566b3d3024a7dff313393b3136afe47a1a18d22300c9e937919c7e18d7d3f4f5b6929737d3c819f2b634e9d01e9212ee68c8eb15200024575e9e172fdfa33fcc9f2afe29680ff7fd27a0df3f02ebfb3320694889c3f5fd25d8800e72867d4f6a21afb84eb8fd62dbbea493b3c3249bcc4600bd006dc38f558e8779269dcbefcd292ebf8b70f0a56da1eaa83aaa0eeb16b1365cb25e56edd86abce36e8af2a4a76a7642791206cb8f79d5ab252e96057cdf446333fc91a07e0410e0f64ba6313db4bb4180911c79677783b09238c8eb790db6eeec480c067ad1ebadee869d9d860189c716d6e3dcbf3616886e2488bd43c1ec88dc8d009ad3cf59c077fb456082fe3809023f08f50f84b89e14adb45c4f0eb9ddefec40d0a80f1bfed4676732c839084ddee0d90ba469922301f6b5bb913df60c03928dfa5977a33930d8fe666e5992f1647025b6a90fba3612c49be638e06f7528a01d73f1da5535adf655350290f2c4fb8b811b9ea383076c9460012875c69875629d1580bde1dffbd5184c2a2ad0c81c452396961913124b2a2230aab95acd18d36b5e525f867679735535adbe87295f7b6ab8fd3e9a9ffee140fa23bb709597dbefa2a96d326003d188c5e3f9e9f6730f6ebb1431bada57eeca4ae6678f82fada7bb576727ac9fc7e1959f5d02646736464dd0e7db394561541a4082235a040a03f299b0b11a58fe4c26585e56675863ca53dcc83dbef9a6f9313803ce1a79fbdd6f1c0bed69e13eb3ce42157c9defa8d07f65a7d0d6458e7dde9a741388ebaba90018d9910b945ac67229aa49ad32f482f46d6aba16b60afb7deab41a4894e2f7e90b2eb3ab5975159dd0bd215ac679232496554262f48a28caa065146558328a33a852c76bd8cbf97d13180913c7941b2c260bd397e477a417225ac67927a4132314999a436224a72054a6c16666ee76ed9c6f9a9d55acd481a4923c9034eb282ad55249550a3b812c5c6c6e0eece52cad56ad5b29a1f0741bb04286a2a2867b40f213fb487ecf46319154ca5c0a82c18b50546512b4cb1a22e4fd090867609d05732fcd0151ace0f5330a4a53074410633f8ca8725ec753d0741db623d47adc295cf1d1a12494818d64c1236150d290d698a12f9d1b4a587dce67e81f1a2c46a188c17d696683456e3703014e69e355c8f8638343f315e6ab6e4058c189dc3404179c1e194fcdb2eece4eca830d5b5a243bbcac5fec10d5442a01b38e4aa085308817c587f03c746c50e4220ed716c50180204f9a8efd9316cfae3b6a540443960120d7b60a58b1138b81e0d2bbf8339c893dee866d62758cdec70ecec88acc6f477e0e7deb91a4c3f733d6fb227a1dc06c33eeb64f0f365eaa1b7505247c3e6d48e8e3a0a5a1b796d12d6a394d3c06ca9c15940c809c116faf4d20e0228145ca121257561fb7a34d480f461275783051ee610de5173421aae7250390ebeac92268c4a42c21f234b29254b9652327b3747231e0a79881261ad6f1087628c34671c6ba86a21f291fb0835a4e5c4129a5e48406ebf8f46da388ea37134ba8b9aea2fafd1383fb5cba4c18edae3612ab75fce089986bf300e51dc4aa1b8fdd2a3449874892a5c4ca53de3fc788f3d4acd8f1f919dfe5410e368dc01ca93d24ba9f472e9888e2a26d2be0cca7a73d421e7e841ccf1ada9a9cccd19bcdc39ceb9aa9a355a96252d29a5e56f6dacafcdb12c4d0aa98e75c442ec0796828db01006622dd887ed60296518862f1d4e51280a45f47a2ea2948e1c8d8bea913a8a44d8113024dc7ecc0767909f6a9a9d4dcee022f8180541b3037b03133603509e68158673b17555c5e6c460dffc741d41d71184d86204f2ea28dc04e0cfeff25347f3f24d0577708d612c54c7e654538d698f57eb8885da93827d2a4c8385587b651460c0c2f5eaad638f8c4315cd4f75919dfe2942295851aa2679d25fc76aaae36d4dada3c692323d489672cac9cc73f2026ef09fd77aba8279e76f97c3c9dddd30ddcdcda0041dd468acd556dc2b07e747823428281c8e051dd5dde027aa40831408471686201f3c3b2ee4877efe83a5a3e434a2a7d9b1f8a9c73cb81206eb51d1faee4a7ba6383ff5fbe96a7ee87747c5f9a9b493c1dd155d832ddc470e360dac47433983f6d31ef243359a92925082c4011cb9ba1df8ad7701bd9d83205f9982f50ec8d0d08006d73b8f8e2cbf3d1e9591017af9e9e58e43397708d9e93fe2f63be88d726114c14519ae23d68b718d56918b0c171926382778f21716d3caa82424c452580a4b6129cd2e614bae87a5ac9b92339af9454dbd80b05e0d61291bbc0aeb3908824bd817d7c35256c68b410d35c7c3520e56f136966a4e6741acb0d929c352b73f1363bdcc74fb335467a86b79d85a4476fab9b8fd476ebf8e2a56f1f6830e3a98adb01e6a18cdcdca42ca6eae9a236a2acfcec839ce51c60ed79d8f5dee7a73cc6cb8b3d348d407b655a3469a59d8694356bbde1c4180814848be172992ef45aa86118c9c915d5a9f609be004190579f229c88f87ae0afd8a392747e37c7d66a89f586818a42f2be4c0a57b73c8de216ef1864272d8447a1c0a1f72797e5c09b2e356480e09892be172d536377078172513487b1c578a04f2d1afd56ad9553464f5b0977f76036da3db867503484178d9307a3dbf8fda43bf0357c743ebae972067e90ecbb89eefd5f90815a2a16e1a6a0f0f2101e90f8a48a53dd28525c8651fad5ca61f1d4d11cb161c4262c41eafc25c2ef13b4b85694f3f7f370db1eac8e5e71f441aa2a1519d56474644ad14a556eafaae1d16910e592a6bbc542cd13272fb294b2965ec905dbaaa2ba65058b75058a629cde168e84ace68cb922b2b75f9405a67901f2f5957901f4dce983508d687bc8aa0d981bdc135038d182e687dc1ea42b582b5de9960adf7bc246787350b85add7a32bba32b2aa2b0b85a5efd115e831b79fc248f1da60a5accf09eb5925ab346bb5d66282f5ac9497da235da0a0c5edb786584498865396e634a54356a9f9b1a0b56a2323d781f9cd3838a54c3c31b252d44add1da2e6a43427d41c95dbcf56ca4a854499294418cadd9da594222a7a612a9a1f2f79898abc242a75f6d87bd8080bd29ca64032f6eb1b79315af20e3b61be327968e468bc2484b52eaf3c6c74a5c93486db4f4dede13f512194312080e122213d3cb011d370184c09f971945f011ba58830bd546a5fcd0f0d820eb13a62d56345451a96b0392d2179f2390a6665870f3ec250dbcae9d49e4e7911d29d22723ab16c8d3ce9fa045b4373633d6f5cc8c9eafc5412054b3b0f7dd49cccd8df83091bf2d1a97be37eb2629c080d0d518d5445746626919cf432c771b43d52cab9cf51cef8b815768eae43ced082fcb8687652ede1c2234528893b3f623d1791f8c0e72673ab102b418d444a174d30854017f01ed673d165ce7f6eb2d4903f62ff75983a346feac77f74a7bf532ab6a175d1fc3813b2d3ff447599e23a29487fca539eb24dc04220787a6131ad8c4a42c21f20283bbe9a9fab7390e47abe3232e7ca411ae2717b76be92c2f24511e15028c2082424d370218cc31140aa843b95b46706353fce457fff0fb71f058277c75cf53ba9b9b81df435feebba2ecbb2b04ccbacccb2fa7a6cd68d9702b99a62c7cccc3ce7b451d89ed7368560fb22d21effc93f55dc0ab84b8a58ab9ba306e678e97cdecc3979724b645d8821b32887012ddbec12566b294f5809fb62a294d2d108ec1df2e4c5a218a6041636e73125dc0a12d3654913568ac2ed77eeb070f45120787848cff571151d310d8f71151dd151bdace78bd900881c08213f34343b4c83ae70d7a3a14f86ae877d5d528524ef418c4f1aa22b211aa22b25ccc41b164a8c1c70a54b12307703bd7a931812812b5d92601925b1a3bbd2a5c7ea6ee37644ceb0be3f0669e3388edb388ee3389fdbc693b36f767a2b42725af256044cf6cd8f53213bfd5e645281917edcc83cc967a50c48b5fedaf870bd75bf5edacd8d1ca0ebad8d97e35a7f5d9d0fd7f3c63baff210baf37598d75fb5762dd98fdb9f85cd8159a934221bce0a8b01690e368e77a3a9b894c5c4395dcef95c12c02f0910d4aaa5d29cee3c4da8393d95b07fbd2d55c3952e3ee0e07af6a6e6e7fa0d7c0e4a0e5e8ceb69a91e7603b5d4ecf4bf771ecaecbc1c4abaf8a2b875a5b7517366a8607b3c8c745358e7d5d47b1aeebc67e1b4dcfe4d4b5deec7edd7b42758d2fc6c5c4af5b65123619dc7edb8cdad6850b0b40c7605bcad34a72f202567c372a1cbccdd16b3c1c8c26e23006861b5980d1c723770035d422157bab4946e01ae74095b6ef6cdcf16c3a5886e3f0e4e5218f149f183172988285176154ec4d285d772cbc2c02a6c4dd521477c1ce8991fe2543851103f951c88f3e46a493bbd34a7c7f450f548b1c7a5dc7e1edf83aee7a75746a1052cae766db695ee30771bd89ce62e83b27cb9100d9eb81ef7dd760957ee36863b6eff16c37d9c4a3777db116e831105eb655f78c78bdb6008b1de067e2f896ce34a7f248804c6cea7fd95ab31b36f7eb020dde917525fec90b6b2eff6675f7bf8ad0d068403d69708b12657bafc0085cb1890e6f4db5081580f9ba20629171be70763e916717e301153690eb60323cd4f5555d1ae34a4fba9b6f1a6b85ceeb6cdc57adb665a6d1bbbc9c698d41360064fa5be1d4ec4873033b36ce6176666beb82d6b9c9f3aa43b0c43e48652f2c48a94944e92cd043393524e620c89d0e8323733333333f36c905b48325cb59ae77cf3f3a22ba9d55abb6934da7ff699fc335dc182982874f9e90f2129286770c54a2e269a1fbe44971f0b61298d7dbdf18fa4fb329dfb0ff273f66f84f1959b4efcd910736de66889bce21e5dbe350182a71716d3caa82424fc0182231ee09c9a4aa2c37a58c8fa15b80229490889240404455812b61f4896924acacca552a9343f3e1a9546a512e9d61f13b0328a5074e95b234ae9eaed74facccccc17bd38775e9b15b05dc2c2b89e8f463ae4a79e2416fe119a216c10f5f443146aada26641562fdceeb6b8fd3466fec7bf39d76b418ecbc13697d501fa562704cb9e97847432eaa9395dc285c6be3a8ea252ad6cb72634510459a61198b9fa56e6386573775b16a7d828ba042330d26da6ddf2a2c4f20b0062c020c97000e862d40ac35a128d0675053b42f5c85e5e0f46b1d1ecfa226c0706b6673ee360917cbfe84a3adb791a922e7344e5baad7367f60bd436be63e3a2946984b20823798ecc37115b8d63f82325a6bbbb9f626188bd60e1fcf86824676428d4fcd45a2b8642b5f4070b61426e63416e63406e877eec90b2b91d321e5d8f85349ec542b71d0b2f4b7b8c1761adaaaa5be082f442d5a2aa54b58b4bdf473e923398623d3026b0275c382c94275868d171e415a7450deaaa050585c3f9d768acadb5566b359a7f0e0705c54925ba23055e4a612e20ec849140587fcd512f97554cda46868dfada6bdd8df0c667418408ba81830405921d011cb3082650fd1c20fa4d61f29110162ad00d1c191a46201ffd377054c004f2613d8e468338ce18af8295cdf932d0b747b74560d667595f2908dd4155a82804424196cb6fc9a65ff70ba97442c9eee6a4c456b01d2addb14cb07c3d47592d28281c0e4943ca24cb2a20a1851308875b710255fe419e30f65961a53ca1ff5d7efacd5a5dec8df7fd19f63a4c19d6f3b51eab9dd5cd113463baf37df388ece858d110fd60e847bf119d991e76748729223f5ababbfb3d0cfda3d49d524aa97f9e12f2904824121961e75b545409f9d79c6efe986229974a324b29f92b4b13b248817064529c403e98375ec5385aa0260adb89f80f47b5b0b7733b9d9d8b98f6901d7e264a46ec90c913feed0aebcd718ea1aec07c0fc3b0c77ed946966859d9bb08b2b81198eeee7e2b6366abb5382872d75d1c633a14a25996dd9075679c6d366b73939f86901feefbb5f723ee679dd6895ce72192acf348e618ace7a653738a7031e66007d188f59c546a4eb684cdb2ec2dcdb2322d47965d9b5dc2721a6f5e09aea5bd6b9de7a6e6f8497bcf4d41b4ce4fdb660064b0d96bbfbd767135b62d7be634c069b859a93d1a4d6a4eca365eca3eebbce4225fc6ac1216dba4e086eb0e22955ca4a2b88db48e81056e9eec4edcf6509bdf4cd184a1c8091aaa717d7d154d020b5709e9f125a46708e34004f984d054a3b0529e58ef39d5f1832a08d510aa504893a23264644193d76048188a3418151758a448912cb2b87a90c54664923249d9f0d9b0c384880da1db6f32c4446532daa062229a18a119554695516554afd18df5d8c686acd6524ad94d231768af1e58e76a4c3ae96b4cb58c4ace689a510dc074fb5126abdb6f926acfc52629132226a209cced3751ddc6b0f6c1d2d76162d8d38dc990e6042b27b455c4ce5516aca769e135ce0ebf268ea22692a85823e205eab66ba076d25e34965ed1465a4913a285da8fdbef607b1c740dbc50de7956fb1312ac066a20bf40f5e50487ba8c89738a1998b16046388361cebecbd9ca656cbc9ca55c6eee97e983e470888afc6b0ee683f43810241d10b6af958f2e206a91aa05c9e1e7310d974f15c882184610fd1c208d6e648480a66a6976b8a2668759e462fbe79c734e0e73d10585f5b0101602356eadfa5409d6c3444c6c8f740143eaf2672a4c03a63fd9b38719b98cc55c7e2f4b611ce65fe3fc641da64376f86be7613f5cbeb0202c36c4e5c742f2845fbc4cd67311263663224f8bdb820c80ca8636b42922f647db164bb2273bc4966c905aadd568fe399c17bf359c9f3986ff359c63a83ef6589d366c8f75d910b361c52cc986cdb16125b11502d6900856ceceace168c316da30dcb6603d3bbafdf57a5b78fbed88a574db86b6a539f687250db19554c3e690d8c0cad9e11028b2a10d6d68435e0540c59db6d9c4756713d543af5830b6855f54898ab93401735dd0596bf21d01f70006b8ddf58dc75c675e4cbb91cc18579670b409cb3f6b48f6e7af55d46de3a6e0992d2c07e14cd647adcf2a5941ac1d4c62d165067219bc4c65778f66e7a5d60b08abf1a4a3f99955f3cfe1cc150feba29d0c1bd70d186313a38f7e1cad43045d9f03a459dddddda26f234193e3917d06653deb63427ee8c8325d7ec2fa2c1539835eb64874343fd657e9e8a33f803db86c89b2979c075cccf8e926bb17107b45613d2fc2e154690e8bbee65c461059dffc30a83bebb3bef648fad8d7d761caa07f599d0cdad11165b1accf4447d6677dd7b2be5e7126f7121f68f2068f8ec01bec0035841316d4ea392fd29c200f86e841b5d51be60266762d5189b0b9b4d260fdd49ee9298ddbb81958e6ae093b6dd57055689e425206da83c5aec88eb09ee790148bf919e9b11282b8871b984ab2a9d0a3082a50db60940610e481020b14e8c60c296248201c5c0e8e08635c7e49335e8eebf971041148561f16e041c408925f9946bb3471bafc020f06973b17ccebf284df7be8e1921cb1389a67125a3599ae7741bdd87b7d2d4d4ac97540fb6debb4b999779a6a0abb70f0e800ba20af8ead0bc88b95ae37b3b719b67941bdd74fd3fccc54ca3453a62b65df6a52f2e422d569f5c856b3344b72069940a669a626cc3ccd97db2f2f66d6a0501a45524754844038780c4288201ff37380bc56310a4aa7ec73967575da079490f9ee6e142a8fe06accc6b81afeb3fed5611b191a0adf0cca9a7adb1a35274fde6c604fd2dd2079ec35924d875d7fb3d33dba8080a32cf3bcb9196f025cb6b92e6a836b930229de4b0552bc2cdef9940a49dc79758d9a256bbd374bb3344b93fa0b1710ac3b64a4b09e8320088a191486612d6eca90b0af39a4f9e1c00c89cb90b80ce9f667bef9e14ab3d35f355e9252343f6e32611ff635478421224ffa839c6a9b325f0fd6c344d7e3655256dae371a5517bbc6dcca4b42763b2fd1b1aac877d5c89992bddff76930913b1c0af878930956de4400e09d9058e082f704548ce08e9e13f03078e1c388954b19ff341c8585d6e19ea126e9b41a6417a58235fb89ae4490d524f990ffb2a262aa59a3328d728a594d2d7e866aa8a88aca504eb49f17635642d89419f7653d59c6601cb1379d28f0202c954b5e9d6f6b047bafc60fe4d8ee626826be101d60907380f05542f743030705ef4b049a2005010a0d68ddb410d0e04003387c89f3a215757c6d86a15b24d76e5a8e0cc96599164365116b240f0f462b198ac9155b28458a1f58344a2244aa22f94dd8a91a16fe42c6125cd8fd76aad46f3cfe14c14140f641f9a1f064921493dee8fdbbe91973a213fd6c80a9370db22494145f2a49f44a5b0403aa261e8ebba916103fb8a7537b2901024108e4b04f9f0cf3a1f6707740119fd88fc786a764639833541d81f525407d89c5eb146cdf12cd002ad517b249802575898065bf447739a020149e0fc78c9024b6029864a22d7297599a24402491678639a63c4022d90c7d09506a013461328a5b4994eabad49329b7a6885ed4ddf306c161d31e59c3d5b4af98282c2e13cc949a5d2a925c8ba28a575353f56f79fd58a595b351aab7a807eb353e95b4fa728766f5a68a29aaaa96f472512aaaa3a622a55ac46b4203f354c7d8fe9b86daa47c2ca4558e4f612f2533f27444900a588c2ed2f59d94f19725353bc2151534537555315aca99ae22aba8ed8405b79c94ba2110fe240dc9482f1d34bc9457e34cc6cc56593924b3d88212e77a292c84b5eead56505e6ee9e1ba719f8589a23b9ab2a2b8acd74dbd9e90eaad2ddddef52a552a924ea2508f9f123dc35b5dc90c6482d06196c7fcae7b9e9b6a7a58b114126a8dfa33bc0ebc5b81efda653e1a9e670483e8545794427d21c517bb87355f3b0aada55842293f659f3b01ff6243cb0cdc37a3eaa7f49fe022c55df867ed7cadef2b07715b7a9f55d40ddd49eec5bcb324bc3dee34f330ba3f5db6db89eab4435341923a5946f55312cae3677c1865687fee6d876335925845cba7357554b29a564d933f8e589ddeaea4f409e504076fa8544f1f32301d9e977f170b8fd33872b6cf3cc81abc2cecf21075a639abbbbbbbbbb9bbbb9bbbbfba59bfdbf49d2a2408a09647d0ed0ec48dc61b779f6f4d5ec5827d8f6808bb3d35fc204ebef62735630cde99829ac874880b072763a1386d54684266fb0645856cf39e79c73ce39dfea3979cee91da248a8248e5407450bd58800004000002315000028100a874402a168442c4b8afb14800c7788448250a10a644990c2300c52ca10631c3100040060448066340a0280c7932054502e9c53bf2005f3f61a83cf1d9a062621cbc7dbb7ef09e3ec809cc1dec87e692b5094c0481f981b0f1c452ef0380461b1dd1ee04993023067948ee0663181101e7b5d9b09e33b55f7e15be30ddaa81759d2713b1dfdbc0f50dc30932582f06cac59ed6205eafdeb8b31ecb2800a526f42d309cb80d0c90fb3db22242d2df4dba7977c9ffdb1a427554cc580b4ce99f244be8fa45e8ac58e5a91d5a6c0cb5b43d9a4042e9749c8d7bef6a2ba5398044c0a28ea75b154eabb8e528487c3c24491a9d9b754aa1b279125286cbdae3e5ed85fa45ec48d630881d3f9afab62744ea6b7b330557dc53a2a5a520d995a812de4b8ec71f1098b80b110435c9e0e6f64832f0ce81e39b4545dfa2a0f3137e6219741c24933fd8a2e4c997186ca730f9bb5003af5bff8ed23746488156ef214a25c74791750ac3459b5d25a247f412ba46ea244305447ec6ec1fa75ee58915a50bc0208ee884dd709a9db262792cc455aa38e1c382a2bdc4ffbd74667bd07573bb928e2e459bf30d49e0e10464ebc074b1e1aa4bb01fef825884c5a8f171fae7ea9bbf88c26426a0bfaeb832166e18babb2bde5013b0a2782e986b98ce37523e8585f362841dff01085944994b14af8e62a4c5ac13945b63076e32b9f84e43a6a1b5be880c63d889f7f1f2022646a7598ebf08361d1381143a3c5e2319a11335c052798c67fd7e5856e62c9e666ff8714900909df056aa33cabc84a1cd53900eeb50f70e8c93fd0f692acdc7f1d2f4735934e8b027defa87aa68abe9bf59c0e886cdf0fa1552527301ef5102a1ad32813c8d6c3969568a91fb1d5db71d4ce6d6607c86771b13f6bf37f79306013a280dc701d7663971ac81e7306247e3a70a833edae80d5f78e9aefbe29d10b7e982e62b1b4761fe1a7f8e04b897e23e59c1c0ceba41b79d65da923eda41a2ecfb69badbcb5844a88e2b1fac6e372a866b4ba848b59b7bc8f9be1a48608a48c860b75a957a1cb5ec8681742b8d4597a50f869d0d3a3e0465b69689a4086d472b283dad138a63ef7dea04204ddfa1bcc87fc8b3076680a93cc31d10f0410643de8d820d15a2c5a70f9044353d9f9a00583003da8d034e81298922bb267f589279aa3b0d2333cb532ce42710035df28370adeb68e0e04303eaea1951e4825be4fdb3440ca47054dbb578ddfb186c31719459dfc9fda806b0e0e55b5a5774411463c4243f2f1eed73c8a77a9451ed794bdede391ca92552c877994eae22a39c7e36a9923711a259ef7b589f80b77128f6576938bb5897bbe68b62f4c54e3381b6b67ea850a94fdb8396c0473df04d66de2e93a8a4ad9e39202daf69a9afc72f974c484c2c09fc8662888006fe37286c2f541cdf436149b62a0756040db5a3e29c8c67603426c8f19a332b971811102d2bef48575959c3d73613d17535fc79b28f6695a3e31162a9dfc1a98f785c7b8d38edd3ad6b5be44c4184c01e174a183f269872d8d25bb8da0d54cd684668c5e34fcb8ed6226c66d4370e7e7f4da31a996d868470c7b26130b62a2183af2b678b719e9c697f6c8a3526060b52dd59108e976e24a9bd128a0dfd4ca3d7819dffe740abd0533102cc988f139261ad049d790d67f28a34c9cc655bc69bb793ce750c87cbe1685bc3085b0a0f71dbf3aed5e4a333c2c74d8fcb969cb10fe84c2ec3452119c5aa6281443268bb3172086b9b4e4e904985572c7b9bf72fadcedb01982fd682c3c531e97f4e848f8c14c8c7a8341a2b050b895d4ede4ea9d2c0f49a36f4d8c5714b1b08ea6d254ee3fa1630a2464c6ff817c3a2b13aa3615d6055a4633502f2789b063e32d3edb21f1cecee3f9c252873d81c3a44ff606d6c6d405df2ef5a277da2d37ee7f044c6ed967dc58663f64d974aa40d47bfea7cc0d1e6f4d79379a362ec9e868b5bfcb9c02a7ab74256a94ec8548f5a4baea3785f0996ff65b9f99c55077b7d11b7f921a1368cd9d3cc82321f9c2ab721f270d93ef0ca8082f859d9748894f040896295cbc148fade996cb808954eeeaead31677f5d78286bb60d152b1ed6412a0888c7011eceffe55363df5084a5a850126439bda71206ea3a96a355200f9dac53650d1f9a5e3e12e238f3f5470b41d6fa2867b46c9f1b2e362a7b0e0a2ff445e7019dd4a9f9e5d1b18aa33487e987be0302148817c29ac65c47da17d0786dafafff0d0eacbc503880f0d432d02b682c5cdfb1dd5118714108ac92ed49762c3670ae95ea8ae9f3050e28369b97daa2832be28a815a165c36427d3a262167fc7069d3a9189bf5696a64d1f21332f0d9dc8b473ff9a83072937645f47291f8169f23ddf142e73a86982213caca7cfef6ab801f91d90b7515603e691c7a086e805fc0bf4e1eb3b162b7e5bc65a95121ded129a941cced0757611b6058282105a682b11116da504a61fd9fe3394eec22df8172091ff40060c162942fc41790d9bbd8f47879b4e0588e6415ecb02beb0f43f22d449791eb8b1e657cf3573d6566ef50b1a43863b95e3ae2e2dcfc1b278c8f56d29c5764c9d5b9b9f0e0944c990842986259e6b876a9752b60de1c4d13316afeb897c0b74ea048eb942356e0d46ea50f53d8b6d46e2021c122648fa365c50e628f82a2d880a565f4cc63317bc49581a156d250c7a65473aa1c05c433df64be1a604fdb772bccf6d85b477666620c998ace9da13e24aa12aacae234e10d2622573dedff0fd600525c6b295137c52450f6dac5670051bece81dfe0f989240481d86d8bf916ef17b4b23ea2b52401cfc2c78fca489d717d24a1e6c3ea20b16216795c16dddd471dba6f2c1c90503f68fe7deb8ba973ff439f138cb92ad68ce1299a5182b577c57499934de90080a623819861d5c140f6148a5f2e13f546e60f6154cf837bb8aa02616f66f5ce6064f4d4a35a9e854eeadba012405cba2bcca72348e2b8e599a691fc73641f8df29d3f8d3f94de6d213773e335ce46efd1781fc061064bcecf4a435d6045a383ce8b0a01e784c258f483bfbaf506f42906c8630e27ba41c229958b483d50cc531ef0237c87a55a9d769a597418e400fe7c81dfe96748cf90d5cdfefc591b5bed321c82dd8f6c94869442e7260849941b52af5e5ac4666625cc8343c87daa2a732c1b50852b48992bd7283254ef9f7dd5a4f0a18a053cb29b08db9d02e584c2c33b99961a400c65060770c2dfc7bc29c382e0ac90be7239c37c83d8fd1e5daae09b77ac622939c57cadf356a4f45153199415326eb9ee26c6e6f51cdb7c701fc5018c7c45b12e12b6ea5ef5741e2fd10c82e1f2774e5fbfa303db9228fc1d928cea3c8c77801ff24c271e15a762054842cf5dd623d60b12b0ac9fc7874fa5256fba58ca398e991cecbc74ce8dffb123798772bd14ea427f009ec59ac33cef4d999dca50aa4bd54e8750f54ede3998108a782958c53e99a983596c1ba753bf419ef110f23bf79f289ba54747dc86c8e14e9f06d38d1dd72b70810e25ff2ce136b50bf2890d290ac7af7469b088a68e51c513d6462b2590624217886a685f14bd36aa4ba11d4d0e06ea6b678c27f68fc9d2002f4b9dcd7db065586e4530408b31f09d131204891c3fde482221f385aae35e908f9f1ee501ae162c8c8d0dfe358f3a39d3d922ea54782a028522b6821a7dc76df48c009ed8332c3f9bb799e922679129d851070dbed3f654ed4ba2f8b8066343a6cb207767d8e02d4a90afa9735885ff4f6952c49fb3876ae6306ca50b1ded14dd89ef58aac8412441e94beaecad23704aab68103d2c4c8ee296e33374822668b892b976e9ac62c8dcaf51b06c7f4c29279546df784f527c22a3dd461792269d5c8f7a17ed6e4fa9ed2af9ec15c81d7e3025a178874b121f1e97a6432a63b1301c33bdbf5f965c09d0aed4c3d56e19f61cadc9f1ba395a7b9e3fdf4e0e53639064a8cc017943e84e6d0ef19b7d2288d0df6f64fbd048f0ed13e4e1e5a13169c6f34c15c9239ed6527a1ad2f4b0d898bd8e503ecfbe3ae6abd18684b679594b075b1bdc44b9c4d8845489d010cc7ff8d60262dc210be76d5a2ed192e04859e30a41d0acb4dc488d4456b16fd06a7591ee15ee862ed9c577a2d2e9ecad9d5c836b69440a484ea556c644ff5bef8175c4f067d6601ae00dfa7e2d36d22626608e841e2f9731cc7616b6cd143add933d793efa8873766757407ec74714ef507e50e82464d8c3332dd699526ea11283165f35c87828c2a7d7b8d515de78a281231138740c300bb7a289dc8ef1573a66166877efaae5bdd5b4e4bd23adc2d3071ba9a9792db486b15b2a3f29eb3e4284272829d24b742cc448aa6b60109fa087cc470d71a8d1fe760b3d5d0158c1176718f4f35826461b5491c5609521d1a6320f6693a7fa60dc37bd99705f00e16bea46b063d73abae6975de91d3d49f57cd50eb9329779fda176e75ee74bb5f4c8bab2a25a1c630019d453b1a5c556552e34283b98c9ab295356304bbe4cb97c0de7281828944f06653fecdbdabb21d7e82cec5501cc3239c20e31e258846d09286195969a71bfe0605e172de10aa4dac9c27fdaba4b1128b6080b39520d04fc12da43a0c49ba22b2b221cee21f1ba2bb417935b9bf1b9e7cf297d4692a91ed633adc46549d06c93959d621cd2c6f9d17b32d124b16042ad079ce27a10de7fee524bb80bd904ed8d24bc015f952299ae5e61714de645573f20763fe08ecad1ced315300a39a4e0f1efe216964347a20792390a31f0d9029019346b68b40fcaa35bea6a82eaa21f6075bab80890cf8d400e4b7f5042b2526b58083a94131758adde0cc658ac8b091c18378d81a4ffc56ca5a040c2df74763b7f3847b5ee69d89291710fed33a0a28378381691d6e51fe4aed0ec5e293731a15141d8bc8a8bfe069c5e248c849a340a7f348814b3f3d8cef33174c6b89c1d01789b825e672033474ef380b9688172e282f70186c1b704b40efba1a588fa684a812d891e83398690c0aa2a2a533c77db44c4678537d77612a1a56421fb7e69898605c51c1170112e2b541d275db11a1ce3af90775c95f0729ea791e23e3259b4ebb81aa876e90755b956f22a78e2e7fe8e6acc275aac7c9c251c0cd4d8057061c8c88c9a03493f5c28e80e91a57b11b77cffcd2d4b89b145cf8ca15752a5a2648388a92cbe2083823825101220815a6a9ce5cdcf15e9dcfccd18010213b228c46c01a72f2cc62a58447b40a5a65b5465a2bd6af3e2fe5427322296874fd6e7aded1210c28c72a505a23c6b11ca1e63e79910c5a86ec8c4258463d61868e758ece0b8d392903455e52821c2eb33a1b26728c6e1dcc0d0751f3ff1fc1585792b159e4f164c7c3724ffe547f24e920917758ae503a1a2535c3c939df55aa2412435cd56a7993ee0f79b0b85e86e9458f331c5a919c48f5efdb7548e2aea6c09a67334fefebde102bcf2e17ab8b8e063201de840dc91f3bc70c9ad166a29e544499fea3229253f44f09af95771001e68aef4456031c031288b46a6dea0310dea586951af28aece5ba70667070256128b219a4417746d550e52a09d125f1220de0fbf14c6b72c31da6bc48662c2089ca193d50feda734239abfbf028f9541c1e392fb516895ec43701401034184dcadf9c972366cbd9f00298dfcd03255103a96f3d769493551082ce5e4ee190b4f1c4fe0fccda07c54cbf0cf4e2fb57191358ddcf09a39e3599db2401e43074cee9cc312db3060c50b65e12bd1558d2fc0459241139cc951d92b4bcf9119c4dd0676bec2f720ba6c7f4dcc586c425250c2149e82528ab2139a4fcb67f09b7e8406a3dda7bf89e28117f486c9381ba640d133190bef62c236a2b212049dc569ecea9a7c18ff600eee857eb637173984c962678c660028035d119349992bfc2fdcad5e6adff068b85230d87875a69220db701b7c70fc9aee8b0454168747c3aee4722c993f62a44a5f81088262c9d1f5d0b88547a43769a5d92c535743d1f9a893b5e85fa649d23edc7227ffe4cc379615cc57fbc041676f8809fe88fe7a69bd86692da91489e80c866a1cafc99eb6724fac5db86ee9f4a6868b58fa9fb09307c63d6267e4586caeddd6bd9fbea9dbf464c4ca7a50f8c83855fef853430b15af87019510c2925464fabe8cbb823a9e9462e30343c44f02247ed064170b59612ab0f9f5b3401b923158fb79a4e72f4cf0f330187fcdc4f099d5f76ca67aa5748140511f0642c4f0c9a8f3457b65bbc7c7c95758cce948fe25f450c4f7ed8b5ad4b130c44445b805a755951d72ef8987879c33222d033231dbe57b9442a723b055cbe8706eaad13b8ae4ea8f2cac5035d5f8d962e4bee97b6b0d4f1dc704ca6a5429b02f68b889e36e78ad57db0679e17e0f9ecce49d6a75f1eaf3de7fd9e0d9cfe2422d1b54eeedd9a323b02218749df3ef5de03c1620f8ff141540ad18640b7a063e06dea00c4fe7b9677e6b78ee8ac0e39eb4cd04aa4c75b115c1bc899bca4cd76b7d2de5a78492045bd8ae4e7f449c2ef464eef27c5a121c11f216ea539f5ab73b253ea70bd38256c2b285bff62d54b1f22e025242f32422ffb8bac209a6fe2b8de523d6e68db5809168453a88bf5c70a63a52db8f95464a7068ec6919c32a2688f48d9b5b091a9cd41e445905362154f8ac50d9543c906757be7968c973a6da85a184740b0a0d598e5295948d1547c303145aa33cd8e0235083e5165bcccfe4faaf55d2902054fcac2580dc58183d5dc80bbd21f7b1cea5d01cded894c0c35f57539713e221c7d37e34ce468a78f0785c41bbd711cf497824868450e1dfaff98a4af9e70b5ad08e446a58f63e1b4e3f510d0ca5a4c9fcf6b0c1a370e641c2a1c8986ad63ac7cc72c8d8114baeb5f1b94af02ca1b7b2289af8bebfb5756fd48186143f0f3ba73908e38995b26c68255086d3b4cc4ddbeefbc0e51c075ac57fb1a4f2d7bc31580f9e3dccc23b9061871ed07a1f3436b775fc826c291cb6fc22a2cb1be8daa52903dc689183f7a4a4148052970498874bf237449d2260688e2f839a4c2e323077cc75d56c2ac0a340d0f49921acf0ea905695dcb44fbac700badf74529ca295dc0f3f18e7688291b3edbe5645213de3dc17263b542b2e807e0acd6a2dc40b5ee2844304f4e9ac71d814c58481999a58a47575de4976d986eac463e0188901a44d4f1769c5983839084fa53c0651c831e8f2871894536ea45081a459e0d92122522e38bcd70453c48bab79fe7137e95e24b6d0c7ba7edf1e2c80f497ee369839eec850574d0aa87ec1c24088d5f7ee6a939fdd94073e6b4bd6b3292ae3c4580fb47ef433c5c6db538d460515b6de41577f5c0690e2027c1f246ae4357a27b7e3f8f0e7b0db4ea3f7c286e9c14849ff13b9273314f494b71b02f9367ed3d72bbec0cbf6d5ec404a554dd323246272e16426db9ae9095c750f6b7a52faec1bd3230190e13575730919837b62640dc27e520cf31eed00080c8d1f4df44c44a84929f0ff94a28d2ad646c642170e617572c6b638e18e9dea2955861ca29dbdc224b6078f60fb393da320d5af75d3764c667fcf8f23c2cb56ff699e751e532e77c5c9a70ddc9ef49f7de620a9e42476bb1b8b47071a128ca442d2a46c258114305d0dd5c9a05dcdbb025df615613ee130af9f615a7741dc6d48a571f982c35b4b2ff45300c2288c91fee834538fcc6331a7d0d8fe0eb48d1ff8910521f3635ef664e72b00ace4d4ae5e7384eb7b84b6ff2fc5a57a2e3a8d196b28c0236520cc84c621a15f4018c8521c4d56a45b30d0836df17ece905a52143155fd872806328da1944f6440273583c0f43cdb1d83a6666dcc73b4842de0916adae873a76a86e2695d3910ffcb16ab58b2b88a98fc35743e479ffee2275c025888bd05a6ab61defdc2e6f68268417a14a4d885340cd198b0cec13e8e869e53301583b7912f5b5c06fea5f3a4cf9e533140a8485b17140c1174301753133da51a86539fe46a1724edd05ce3948385e9b80ecf6eb8e52245958b069161197d5c2a5c6596e3498e55cecc723a9f306ff1d14bbe0c41e1a399d2545ba01548880bfe18309671502671e66c62f1a33c5ab067f650fc9c405c6346636ed89133e03dad7e96330185557e8bce471a871f5ef088ee84b4786157069e284dcbc7a56f6ed4da959737ca4c6e998f11c1212c8ee8b16f5ddfad1170704994a19e64c73def64ae671d3424956814f0192afb7793bb941d867b4bdf4d3f56291b7c29366dfa72d37cd506b4bfff0a984423860ffc87909591ca7fa710def943d891a824170b9802e1b8b4b20f0e658595f8f5f77880e2000923e9a3813b200e0e0d65f5e02fd3ff56adaa0e6e8ca19c7667f2fa546cc6249da1e44fd8a3eeb00682158135abd98c44427112dffc027c8612800b32d95a2f8fa9fa6f072ac7e23b8d270f6533f5e816c0cf0968e77856c4888af9e09634ca0f64fb1d599b63fc4cd9787c62f6863579d642815094dbf24ad9404cdbc339d7cadf6b36988af343def6e9e4f4a00377bdf8228f44d1f00e573fd7eaefe17c12b051a42826d0f5706283b2a93e087567e44a85937a7950c41b02fdddb9954b5c7dedcc48853183f3c7d6ef8a5586e574e2d6791b0d55f420acd2572e0ea96e7a4f7c17529730458665b793a90f6d3d49d0d5b951813ab9a2c359f3c43d7cc3ec1d3157e15825fc26ad6edac6aa499b881637734eba8ce23dc27eed681da6d0c787f89ddfa72b3220228142388eceeff2b7eac9d586dae3b245518bb4b37a14a9e536942718bf29194900ffb3dce973bbebb018c86429840d84556a73504de138500c18414b9f0b1e90bef422f5d11924f846af1b9e89906b1ec10361d68d8b4d6676bb22558ddebc2c87e453ea08967d0d0b5eab812c0d33376bb28ce6780fd1b55bc437efe9019aa22056cfc6ca70021e7b160c344409b2c990aad06850d839098d9e6c759609d90e051dbd895cb1160ffcdb8261925a45088b7a8d6c22580f974573b0c984ab505c697fd8070fa78b536ea65410b9138db98f701d90f6874458e5f97e476194b0680e49a4724f305f013bc1908ba7d7302ed01c3effe395bcb706d2189dfd6ed00fbd2de0dda679032b63bc786b2bcecf12040cb1027c8ff6311b8c5f33025a80b2d9659e032bf2465546aeac3f2fa93ca38093b1b2113b5e1afbc40f0367311cbaafd93847d24d0a00fb431cb854b0a6a7a66e94a6e25b8bfd9eedbac48e2b2e09ef6a94ca33d42b5392953e5d635e2bd952c3d2bfef7757ba011df15f7380cb31b318223b6449006595e23204cb6dd3b16935d272d564df49b2fc4f8ee54596fd06727565ee1570593aa3f9454329d6962e44627fe549bccd296150131d17b7406bff15480ad41acc0d61e9d27b94844c34567a6841a4c7077b9279cc6547591a9b8a3d39a0d69d5872daf280d59fecf9e940d9c7d12e32ec52051046a66e74436b57726fff955e839850024f77c8d193862ca460b74c7688651b873962d00ad3a50d45ce53cdba5f9cabce181de0bb44f574d4a7a99e6ab0771aea3242981f4368d15c131526c9603969a3bb2a777aebe2b05bcde535860fca20835b30079ead7b09d3bf66674fc730f978a40a5461345af20fdb9efb0439302402f16ff7dff49eb69f18e84ea2061fc6b58877a8165a6922a8f6750eee686c618f41facb9a36ac517c84be2f82b36425f80f1a26ffd77d24c109739b63457cd3de2ce89096e04e7e2304e7a3427c5ec841eabf419fdafd22622ae49c832d83a40f27ae7db0485dd6599f6f5c9fcf934fe0871345926f8b614c0cfc6c5e678a2293fb03cfe7416100c81aa56e3a11c9acd5bee81119a3416736f73210e9498031a8db72405f0026c2a09ba4d9e49c9aa8d973aaacd2f4aa0d0b77088d06090a74cef71634f1554269d3157bfda94ff6cfab437e676a2e17576a04e66bf1590cb02a5f0e7f963d7625df4d2a8a7c5a28f5aac40824764c174c5da3205e68d36be0c0afc2b628184f50ffc142952ee56bed54216b16ade1c69d2664d971dc091b993e5ec56beaf17cf0fdb7efb9eb233f8e1e39f1f2a6798400140296ec3c1b4b53b93fa6848c32e9534b0c2d72f91b900679e969d56f396bbbeb2e11d0e7a7217c9b83a86e26d021930ea49d9df907da84380f51cd61801331a55f94fa725f4f906b033865e63674691dec255f8e6ea42bcdc8332c86ce6d5f4c2c2d96e7f8e8e9d2b2335368eb2905e8d4f023b6811321b45905f2339951ed7c2eecd306822e155bd8db9636a8d90af5d82658b2411dbe762a058a767b9b0d21e3ba62761cdb9847e903c7bfc215129a5acffcd5b190f1bae8c245ffbf7318ed3b32fabee93d84055fd59f5d9b604b04339a5eebbb30f308c3a4f2d6653f60a5479a13b2a2f7484381a7bf2848355714c78a370bcbb4c0fc01b622363a66238227b03d0dc408140bb8b6f44149e7527311ae500207dc7b23097adb6d03cc5ee5c7f708140d504bc51438da64cc673731af23470ae7cfc3dbc41a24ccdfcaa43df668a7a1ed68d82b2c48cf68f354ede69978b15895e42dc68d0270e5c20facde2d3104dacbcc051222ffa6b82ec4f29bc299552f2ce322c99ddc788e081880cf94cdab68f0203a5457d5062b0e9112b0cc25b82549f2ab0ff261678005291ebf608b93e83d251fb9e7631074c97b4557f53ca5b1f8d4298cba41cec8099827a6dd5c8f9f1181d90b8e69bd520b462ae6ebfa73e712d4dac070d8211d0be05d6e84ee3e5ab7ada98537a9afd701151e94153134d5f7e76b45431c63a72bfddc84e0c289c2ad1951c400689195cc3a338a4ce901608c0cd8526a5c2973172d715083e896c52df0f6c7419dd4cfff461d6f2cb8d6df9f7423697377df78f84a1ef35c1a01952bac3c1686b36c6041adb74fef5c9ee474d1748ac4d3821eeb33935e3fe3b98a65b42b96561effe8f6e7a7ed8cdd74bdf02faf30a414ebf3c4501a9bf2e375750735ab797e6ca9ce550fcd53eeec930e7c9ded4620c07aeceefd85fce80881677685bceb688bf49bcc61515e6533c8ac534cc616a8734d3f6b572ac1417c0fa0a62fc311592bb143c41f0673ccc6c64a79cc686974e5102bf425212676e85c35e40bec86802ed186fe77b5eeb37a2ab1b87eff8d0e9d7a9d8195006bac7786ba1ec7773f6a90f456f8108499d1d3c0dcf36946314ddec2efde3c248e484fda99cf4b3fa87e87c4493291da8743df52c924c894523b3475855b8b220ac1d1ff3c27e3cec4226f60aa313ae436527c75fad2a1e7dd6f04a121b7c2c681f7c9f70ed7cf19aa413a4e6f02f1f19d9cf972942db5f9aecd56d13f7a6db6648fb35e4f45c6d3c648dfbda35ad6c09ed4db19db578922cfdd08c4126a2ceaac3898546d8b1871182a657f7a42ee86dfb19957b82893e5d14b0946b9d5692ed314e3d53f53f88aa49c793ecd721f0e364b445b88b63ec69af54388e5e56c39a01790c2b39349e0e2fe95d039429db0b0ef5bbe7b11643b61ef887567f5c9caf6d5a5388470900bfb68495016e0ed65c6a0e98a0968a0d65fb95d9d02494db6858eeb7b531464ee5bb8da05624bdc043d00b0dc9bd95f76a2ee68a58d15958ed8a85df73585d96670afd4b7ee23797887b435c736421ea8d6811bfe78bc64ed032fee46fed7c552fb48639a1e1e8eb5dc32e82530911f33d14fd0994b413423443c2d94d7ff13ea78f6f499c01cd6bdbd860090a2bd11334c5e7ce9f8ab35fa560a81256824ef38766796aae0f95c48df135b6fc3572c11faa029546389d5349752304b0c08790764433c24c4e3823d9008dd6468889fa406f01828e81bb4aa6bceb7fc8505b5f7c7520ffc91b08985618fdd816387c431014c950e4448d0de443cd4831502cf2656173bbbb667bc14a037cfd05a88ebd9f31e678e38dda0cdf3838099cd462a9fd17af6be9277c6872f047d07efef66b2ea879b3c989548e0a63e0f7faf3959a39a8ad910b755d2fabb8627a743310a720bf32e37ea4d1d0c8b8609ea7c0fd8e79ed084de7926ce0de3480374de83686439284fd513b84cec232a81754a8f8ea8c1a2f825147213978e5ff3c5ab9fbb725f499c455240900593634c3e421581d2e386738de9d2fdbee9451400feccea51f04275ec6a59a59d73b9336ce8fc61e1c5465dae2e339637ffb6a91641260427b98cde0792e819de2917d9d158904fb3f1769e1858813b2037f5a0cea192deb455ecad19dd65d3e3e6b4f877f1d91fe807aa07b8cb71662bf9bb24f65c6faadacd802f6464549973983637a14fed8a74715e60d9dc3d4d67c778cabf50f0327a2a4bf9e9ae2e5fec6810fead6e9ef4c967352aaf69c76cfaa182177cb89b42549d4d6400a3ad0a89abc51b43f5165e88ce0a04cc62be224d3a408390f14ee3cd0019969c74f30b298b15e146ee81f08477d67d027d6f92802a564297ae6b6484d5d08797776a0aa816927681b2e392b45780f3a5375dec6c493523199081752a54fc973868b8f953d39c6294ee3791ad1d8508fd8b1e31fbd5c32089b9f9561a5602f51ce108c12e5688b4787ab62f094af760bcff2372ee856011eb0651a89ecda4d45c4be221b9bde38d7b49700027bce48c460cb398101b0f47d7139e868cf4243d377b8b4518e62a04d9b7548f9f0f938ada9793687ad7cb66d896b68c0907e128623525a8bd68e7059a136f8d2ec7122e65de0d1ad11ed93ae8f76fc70a351237ebcd3d4df3e055d4bb4c4b52d3db5c891540bbabf8e695ef4eb0e113f10fe2b276d32a6cddf16c70fbedcc860e66010d10faf5c5309eaa92c1643c9e21cdf8aeb750566c2b106b382535e9b4f7236ca06ca20eb1c0c415da7df7ca7c6e2346308fe0573002cade0e7b49faa157d9c271ac76816434d32ba6686e516d1366d11e88f03fab9a8210fe11275080fadb8f30dd44149b1663af3d2931fed191b00bec84c4e0ed4d2cf082f075bac830115e9e8c17f7f88260766fb37b839729be6a277fc3203ca8672543dea7484dcf06f8287bdaf5d7a1aa87eb8e1ebe140eadd8df2e2911cd10186213d3acc5c1692a352323037d2889c882d814b010162e095cdc069661a20a5a297229f715749c60b82c9ddd94d381a281a2a2a1621cc083e829ff2798d9ebcb23d99fe197e59be675f369582130bd7a878202100ac20e6d0a7076e80102d42cddac635f3924d03da009091f96bb27fd0dd19b675731a690f6b9a275228d145cba9bffc3bac6674635e0d9b016b8b062dec647dbc0a8340785b720ad03a435e6b0e25b8d445ff0c8ff5d815d5c7ff7de261ac8bbda01e0d83a837f02e8bb25bca6b7c6bd061d20c208b448474c4addc1983312fafe5c32d10b6696acf51bad3a0c3acfc78b289f5268e5668f35b8b6fb9459b951d2343b3b67276cfa3e2b1baa5304b51713162044deb617be95bbad2fb54465e1857f227efa74f4bd529635c2f590ebe0deb10528870d1267dfcaca2477adeff0b734fc2a139383cfe3ab7e94ab04e54036d11f1c532e09888d73f29c1c46ab20c319823614024d377544cebc075d737540beecfc30f77ead54a5e7c9c833f651934eb24aa9037661418f9c074e5bb803f105c5577dc5db00b22023a57334bba66535dac6016529018ae030b2bd9a72ab5d37982dc6e79653a4b3b82b20a08155c268f307c4a7b0b9e91cdd26d61d242f0a02ae68a953c71d0ae662f1301eda8b05873782b1b6ba8ede59160d2b38cdc74639187449f4ebfd936ca32b11b693b4cdcb0358f29b891c206a52e94f3f18d749dd7c555f4c084c1bb888aaae6e15d7428395b91bb9825f45310a0408a43807e5a040187f1c92954464c6118aa557148c2086f2c23f822172ec8ab852821ff726cd3316db3bf25326d547666ba151fd09e147b15311bd49111233ecc0966a4165db0c46d841f61f40438af241daa80905f42fa7b044d1188e62bb81250445a41e4d880e1f8b077c3537a054ded8f5b09671c1eb88c9ba61fa6df4fe24e63c80e5cb33cc08e923163f66bc7c45ae200636e19e8aec4e1645bfd5b8a7910f2b5610c35896e65b822f93eb79161868077fc2fd3cafbf1415682243e2f8ea905dec1d53e31a300128a1a467768345049c6b0d474d460a2e1ac1474000a9cb2327b3259266f8bb508d5dfee44feb1b285c0858f8bffb703e35d2d2a75f5ad20cffbc952b93c9e8d77ac4ad742215e5263c83a3df0050cd379743a8db93f1c6335e1dc63241e7e7faf1e3b1f10f3a611d43b9958511e29997265565a2b5ebba6a118e71f059978ab4685fe3ee8bd941e5e2b0f65c6764cc2915eba4fbaefab9bec7172414e29673d7293d41e8f94293a90de0a7bb7f0142c4b34cdf7f69b50ef175f65bb0527b356e46daaf18b4239a70d7bb572b3fe60a815ec888a6593a12550f3a8da6c5a6b9504381b220c40e051bdfda7ccca63fd3dc126141315cbb23e5b3990687812dc76e8a682e4ab8600c453e2b4596f0decd92f97ec24ea0a2473eb2e3d29e6e62c734a278682f54c7188cd4d2a4087ddb8c9f1c88677f0dcf5dfd9f1114ab440dab4dbd02a561f511f94324c64206a55ea83ab6e20b05ce66eaae89aa89c2dba92aa1252b2489f022820a948bca04313cbd3b2066b56e3b74991d02a6667620d04fb0a2e8cc3053fb45278d7b155d6d25272ca1e1c048b896391a556a5beb0872ace2ded7ea110acd2415fb372e58a132149c35b472d1af3585f94db518ee8a4211a3dabc3c9d1ebb628ed89165385414d1592219ee00459c83832439425d5c56c67ef744a9e76b96d02fbca4307ecf6dae1f96324d2ab17f4ad9f72bd4289ec623a70073a612b9f1980aa59508ed08bbef9b07a24a744888e47c2c91b89a35f9bc41515a65869eaa9834e7bd02ae173008586d5cb03a29b8687263810af2da3f22a865b729ce42bd8d4eb4a58c0b0f9a3704cded78010898dc3ebb98ae2e9368a4773449b8c4ecd0683b3eb0c841e695aba70019965b8a46dfeba64f401720c1c28b93d032c882ab46d19536c40719f8c2c9966476a46e7e0e081d4ae8a5fbc0c6b088d35c320a6e2a3d5d0b52aa5935c2e77793b4b4326c73609ffc2de7ac9965efbf7321fcd56cd7da12e3af2a3bfe98d1ce7588caa96cd4265c1c9e5a547f94802a24f6f6277b906a364c529ca11d9b4e2e5916f87e6be721750e638a23bf6b0980528ccfa2cf0b0612a59ec3385f6f464d103d91ac8b516531e8eafb262d8946bd58a79af6f36d7d2c62bea11db905fa2470c5e5b0a30661c73d629761b7d2dabb1515c61d00ede0cdfa1efc3ff0ae1976ee23efdacc0f4bebdfea2e6214840a7d90fbd6fc5eacb474f2eb71180a2b3d9c5c8405c62b57c6778ee7497e74cfc514afe82c6a8037123a6cf9ef885c5f6241aceb646a69f3b8685b418228f2382fb580a67f0685ca1179decb1afdf8839f77b56165b385e40c24033312c914a27b365e8eb5299ee86b29262ba154bb51f61cafb06a77fdf6f67d44b9df3d63ef1c16a90598881ec5780de659768df2575b6cf499394e349a7ab6c89c23f91fca7174042f489969436fc7a6a486dcad7d010b2b6926d66798842dbb12ff74985593d04060f65aaa847b3fde62a893651c52bf532bd42bc4bc8586b1f6f57373db4973ec92ac7593612768784eaede420f1d7a10e038352e950f727fbc34df22b3318b69a36ff77b7dff2bfa4bce0f0f8cb70d9bb226acd103ee1ed40607c5f1c2ac2626736347f3e19f2c6f88dcae325b998189b6a3034fdffdeb92fc94c30a41cfe0913b9b4cd223aed55121661887b6f81f75fa03ef6d662e031e7de5952b9bec1d5b54a612cbcc9d30d9ea01878f1a0a1b88d7bccb3416f400b1e16c4f8dd356813664ae0c14a454c6c41697a4349810ba89e0c4f1c16e20b15b229cc5ffced28256471299d43740471be8007801a518969de0156ef0a4b02349bb5428e4d15c8d75c37fca3b37ec636977a52e1b6a9071c9ec611895b748e203b8d04aee3f02e4c8e25e49af60565968d2fef5206b291b46d096ee8b87a7de26410d6c8ef15ab142712246ed47bd0dd16e88944a23aa480b26b6d84c43b5a58e2628b37a8406c24a4928d2528c843edb7f70f306104f36b512bca1f57d56f7416ffb642f80a7e73db0f19c38a9e52d7c349f5012f024b88dd29e1d739d3fcc5fdb85339dc5bc24cbc9f84646ed6e86b8a2b97e7d84ff085ee6ff60e15b5d85f44930fe43f2f9f3f483089ac7d89f8494072962d5f71851ab019bd678eaa1f3760af050c268e510fd152cf9d8168fb0bf9415f84362932f6aa7066eced27535c6aac149c35f1e6a920c6111e64a3ad854ed9f5401190bd9ef29ab6975139e7aa10cdd9d76c9af9bb5077620ba8d1a1a7470c0996f596ac6164004619445e9869b77b485c32188a918cae47177295a717e80ff0c2229713211352d163c08f23014b2a078b149ec3573c05011745dcbbede69ea7af389ee7c6a44763828ac3fafcc8ee2f3862516c0009d33a093881a2ad4698f4c78d6d2230764161e53091fa57cc78ade606802c2417c4befe9821b03e5ae55da657c13f463f200314346ad8f09b3376a821be1f42d6980f3c77d8127d31580c428257c3692a7a20bf0f7b51efdaf0617bd4e260646f7dcd78e4f3610b4110fb529350ac6b807184414029985a95ffc52a78e6014554da8324d0c9e1bad8678a4473ec734eb0e83cc85ab25470084cb46756b0ec3b20bf0920024f8def5cb81b402c17407678215c8cc65de042599bc4f7a428aba6e848f03f29493a81bd9a0000289418c4f61eed48414f2e590b84e9490e75bb139a3720de104fa50e979b7664be282bf97b98b4b450ae608b9beb1dc4084ccb2a45379fbe2a392bb1b2b8e27d24ad196116006a8990fc261835a96e33b4fc0f568ecf391da586e5843d15de7d2a8c46fa5d775ecd179619e68a119aa8ef899b7d4862a30ecee2833921b47a7dbc4d82ac9f5537ebabe4fd97f827aa4a719b9c1eb081bbda1dd2615670651ddcddf805624e9ad21af152a7fac0cf7ca8770ea9be7edc83b2685581bbf42762b82169dad32c25b22f876ed036461acd23ad19a0e44d604fb3dd4c3f9071a219af9d03e7476ac473f89efbf3c6881ac65bfde430d251dae088ce2794932c7512cdc6072a45c0f88be8d65e4f03fd1068aec290b05effa38e12cc23a56322f55e901192851b1f43dd4b1f25498fa80bc121896908082be096145c495027c8d65ab79b920dfb06a50175a6066c660a25460d18f96b4d4e506ab8f83f5030654c1bc3aabf67f46424923aac1a60d19a86ed4ad432e380d21af2aa120223708910b307e92be48d1d150f15dabe3de78bebbc9c92169ee1f4459e77987e8270e4ad90935650c9e18a01eb5b6dee2416415f26cf5a62c3123c4af2589cc6d9ba23907d0265d771b6408c515452e71894ad906e9fc32f702c437374cba687c0aa4526326226e8b783b4f5fb735880a4802c23bcf0e1bf66f2557f12cf9e6edba500b6cf0833c855e8b669052d382b2ced3ce698b53a6476878d5fb5e868f27cbb6a509464da7023699d72c091f80d32ffa475cc6cc7791293d16f9201c57323ebf671d68ae4943cf79921caea7cade607d1a04cff152df2082de7694fd704e2612544f84a5aae3ba5ea43af36b25b6d60f0c9a671fa6d513e0be1a14b12be0488cd2a57dc2181916286dfe93fd641c752b9c9c4b65d10f39065ec3762af099bf1c5e7a27e05c8215a9c95695a1596636b39321fe68128d1635960d354df1f86bc8749287f0a61ac458af7bbdd3f4d03adeefb226dac4ccb0f400065fd8b74ee88715dd0686b89c686ee10f10a6bcb509e6a0f6c8285c23b6bcb166970cd6e707eb988360dd72607b9d15a45ec2a44dd03e28b0db1f1a207e028aa7fc80376920e3c49ca245a07fb1b33552038ed40090ae622a933c60916dfa51f1c7862630b76a29693944839d324c52ec074506ef8288c11211321a0e4614d39edd5dd7e82a568c5b79d59e85e3ad59832abef4e3e46974636ac7098ec49626041d1ee384f0d29a72a5e96e1b3fd8025a02339669ef0357decedf13400a3cd0af3f937aeab230c73a1f2fa409bc87a8caa6dea20259edea81877c350ef0f20661dff4ffc10c4c1379a6210fecdc7b45f1b456ea63720978a0a6062e44a97e66dd850c5a36815bffb083b8a77cbe572cc466f31ffbe6bbbdde8a6403bbf2d261b7802fc5405fdde21b19a3ea60a4b14383e068169653d2d09aabaacf192f259894cc2a797af6b928d8a3a626edf5578cb7f7cc5f6834816643ede862f2ff296794687768edbbc5870381df081f102e65a37f7480300815f06e8685b6fafc188634a88b0019ef572d351f82a655becfd0100da5c4b49f5df9b7d415c2cafc114255219585c8e462014e18342734396642fb6179ac5b0df4be49f2b5def1b502b354ceadbbc4190416c3161e5092787cc84eed4bd894822e74568d092cc9477d802aa206fdf6775263586ac80d553518100df07b6c57e1b241709da65afdcc7f99e7cc9c5ab4482e0123e2e1088ef9bb3b2973d29a16ba0adb70dc65a7de0dd0d735d3c656efacba83ef3006ed108370c499241ea3cdc00c2b93e63e5000767f7bc803a8c5c68068f02eccf16742e5f56b25025332a639e04d0a2048e18cbe146a7535ce9c9fdb48d8034e857be080737e1014a50309b5b85174736a2750c3ab5fe97e64d8009219c134d587df3d77181d6e0dac4d67c7d70dcb5262f9a0d702c002cdb8e698f91e4638d3424a81c625b6b39a5164d487d9758b2ca5075285942205ddf00b93e250d1cfc951b579eb591b3695c2ad7d74a0e80ece92d3db9e8954a393949b4356fb307d02af0f711622ab37b3a09329ad5fb9111fe84ba7cdae104d401a78134af9d5c0995c8182b0ee6692b1278d398259257eeba0758b487376f56fc3ed3b4b19491ccd45f3ca39e79414a0a69965a38b7e0f98ef5f656c69ce92bc800d7dab7b29971adba085c15f80f4eb801851365d601ab8faf2f2be33a2eb6b02d52a632797eceb01a863f335f217849c80964962e2f12cfd400222287a4ba98eb0e2ec919b19a3f4f668282131cadaa2a82f0bac1751a09fbbfb7e83dd940e932b0368e8421c7e4069a4759df359858d5fd5ce0107d331c06c1c3441cd0264073be21cd1f995dd8cf0c190d69f32746fe1a68398a88541ba1de2bc71ab3a2fad5fd3c28f4b4484068bb45f8c7be2f61d1671b9968b2fe03ef195fd219d891f89e51b1c785c3862d568bf19d5e46df0058326f01fe97fc736b639bb1b6a9053857ddab8d0608e7e20c2064452571846827e4a77d3586de17d89876b1976d5d328242967bd110a0b2342b453d64db85253ccca562a603e2ebab1cb781bbde441e1e3d3b23a19148486f94e9cfa786623d0a30c49baf8932d244287d31e125f69f500ae80439562062081bb16e02cffcc9d3c30f766146c22d9f4f106cf50b1297b3271b2a886b4e31e0da8f76d1baa3ce0bd4f1dcbcdc59a81039885398eb9d76e0e677a0021e7df3cd70adf57ca06cfd78b35fe2ccab1becf37c12b5d44ab2b751cc1d0560e7e0812960406529e340884da26d2f8d84ada410c34281c2186ac8a110b603ac42895edae01c3576910459a95b60d4c7b46113041eb3a3e68849eabf75c72ef384ca766a1610603f773368ad5cb19d2a0080c4297209268a24e77d9ae5022fa178036830b57474305f30a70ad854f7eed013743b2430bad7158640dcf8fe625f976b66bae118242ab70fe56cfdfc0513441a144f5fda125419881955bef5e96bf29e6a8e88883eb7c84bbe9c0d29691514afd93213d14aff18363a05c8e46fce73f47cedf174d276bcdf9e343bac213b4ca3738bc01b36054b1dbeed154c46f8580742e3a463d180fe79ac7c36bfbf9264ea7127bda6b319854c0bc6404decc40d7a8079b2fe4491b69dbe75c7a0048295272f18e8c035cbb5a780539f73f214dc07b8afccbb68e89c9648865aee048420bcd9256700a8c0ffa23afef661281caedf7f4244fad1e60618992801d200b222307c02b17116a41882aabc71959ab4178abb4900443dc0c133dfa43c43cee0664612df23d3a54929a780830e0af2c2efae20a097167ac12561c7a3c7a226bfb7d068bfd88c1109384ef83dbdf9fc4f4824f13a68f101f7fd9102a61702bd4ad99224e0c5c397bb5767e891044d76647769b77512e5e28c6c0770ce3eaef4e6ea9c2916d02caf82ff2a6398c327dbbd519ccc1403f75e721266c4ffa14a93d93b6bb064bf53c1f24bb51328f046f1ca3404229a12fbb0210dcb37b374608ede7ce272aa687e71a47991dce23f60e040e1a8e86bb596d40edebb9e7d3d930dcc37c6f5ecab19d82999a2b580ad072c282ee51e4258ec5aaa8b6911e4d1239bcce4ebdc65e56e70703c85749456ab61b02a276db749d907cb5cbf547b8b9df00d1c2f5fdbbd7d1883c1d79297bec550beffed378729c059d783242b118e1b00dbb2c31ca6d1a4e8286efb59b554829c1772b27b1e6335b42175486af92b97b3322460f8ff75d3979ab8ffdb8829bb5fe4a84c1d9f611c3faf4011ad6ed630750489a3cf17dee3643c422075bd8a304775f4486d88e62883f9f7fc740550a13f6fc4597d6de0d2faf040eade66649acb68bd1c24062a45c78821df8759f924fd428f22db95d0d475b6415953939848191ca3d928855a1d3444d9f0fcd4d3b0fe1265565108b7136c91debbc0b8c34fef8cad3bed899485380fc55991adb31f272be06f4556617a032f3a8eb4828b0e86989012ea3002b36c1562822ded8ced4a91eec6c8d1e80b21241e8f6de141b2c7419987e85d5cdeffe4171462ce827e10c84662283fd5e2872fb33d1d967f169d98ea7eb9a0b63199b692d412471e0f9dc0a30b3305ba6e94c5fc01357250ef2bb9427fcb719f6b4c5ab463996540b596504c8ede3899698b32c06f848ae17c7b82da88ba915527d29594767e08442fc25874f9c21296869498330619ffc1d948fc060513a162c46f4238f60ba343342edc608d92473b52569b6ba75e34038c926a92cc46cdef91db8b8bd9e35aaf9945664a9792dfef9bea69011392ebee119c8dede5f4736b83ddc24e8d0fac291bf9bc57a79812edb44f0ed70775be212de2aa2a966e2163296151a0ab5d2f052661ebe846239b8769cd7ed0727af63efb619debb0c5a86d4010dff2a61b11911768c132f7285686bc8dc961946774fe92c9e082cc04353b961592d891194d32ae29e08e6a1293665e85c0f2f719740f54df025d2ab46c346d5d98db846c9e1f262cecfcea2e5138831c42669d4e77a1eb09547045d2da81d4fe48c73b0a565a03e980c5c3477dd8f9f01120c25b611a5fb47f8e81303fc662d4a18c92c5054f64cade6038f82d5d5b4588428443d1264f3b3a9db1991653c2322e6199f241e5fbf1e9e3290c871d16535be3ad3f32ea5e0e4853a7b8abbb0d7718ebd2947503da0c7f3bb6193886cd4cda0c197070aa10bd2221ac68edbfd843c9182e47cb53a48181a4978037935bb7bd656988012de2f6a447f4f993c1c5dae449983dbb3775aa2eff174b5c3cf64fc4745329ed7a13725223ab85df23b136385b1dfb0c3dfb18a7c3e3c9bc73a2e64dd83c88d388fdbf674cfc315dc4a5517dd42d14230d624c759c20f72614eb403f754831c03bd13462698503de338cafff8fb7a0f6994935ef6f78cb16a3b159798cf6540970c9e14a1c110b5b2c4cd49a8b54a700d73a83f00d56f0a92cdd01ae4e6cacc520286a893c0d98e42c8c094eda002b4d5bae3d71200d4e2c1566857e4b031d52d9ab88a5a1abfc738460ac48b6a84a5ed6b8c6845ac47c04da1c03d7f3297c6603824fcaff6cd38d7ca2260438398800705232f211d0e63fdc8bdc08c04c442d7ca65e93044d7d19c4c495d96730cd263c82ad5810c49f7217cf707021b04450445fac44d73f5dabfa1936eba5963d32444e41b09591718834ea810d40460161939941782a004df83ab58537b8cc30a5d25263c6dd49288489874c3466bd3a63b3dacd8325a8feaf08380ff5b5fb91fc69d4e34c87b873479c32405c9e5add7384020ee33ca5d214db9d5d316b85f7f0de99d6dd59f16a83045c5d31ad7505fbc15784da7a946ec3203a46a90c214754d9478e70294756eb8be9d7f43aadaa00f494a0b7c09853796fbae6980e9904cc6b371ead79e09d22f54585150e2e4de9966ce0402a01869aae90a54f5409bac36b5f04e6aa8962d5680257883a5c3f2cb79d980c4c9f646a09c05f2df8160b2468e2ea2c7b1891c0fa11d612ec339615ddf5b1b0a5ff27f17c98051ee75ab19b5210d1deb02db70573f9c4fb21be813767e1538e22288e21dbe5355b92144b0669c260fca5e867ff31d14aaa2f15d9478068cba8a1fb934e82a0f0392ba702a0494977c681ffe0070ae317f9132f5a4d66818d9a60bbed3209fca10a882dc54a6c623c75e33bb7d2f5994a38e782f612c17482dd669c26cd2f3503a94095407e020e771e125796ec07be4c66927f1d4863d542cc9d7cff5f10c3b0e4e20144611a87e15bcaff67fac69ff6d173bf5a7e3da7fee73a0acc87d90927b61a5066f362ae1bc6f4b8ed1fd56111480d5dbb00a89b57edd6f0bf1f82e7996fa4d037e64494d9a170716fa199110050115d8b8ba4002680f6989aadef9c8e4b908b81f4b8f8d27a4647c208119e42873928e75e0828ef878a63accf42b966871281a4c2eacb01567aa8ba2b39e3130a2925514ee40a6dcf659b4e7dea79d4b3f1c73a3830e690424fcc2cbd1274262b569502a8f1db501361a959b8f687cd2587a3f79c072b7af7d70ff8a33e432143cb48e8b4c8cc4564c1822a4f77750f2cdacb0e16d6e32e4370b1a1638575373db44a98670a885cb9fc2279e40a86d89e505036bc950c8577f26bf831eb0854fab988de76d44c221d49101ed946e412a1ebbb166c0a02288bb9e8233d0b232acbfc3253198ee0a9096c4ddb8ec5217b060c7e4b559762815d4222c435e25e4e0d126080593af1229e3493db5112fb44d0352c4869c2524bfe5d2bb77d82b8c3a31e107027870f428c5ad09f88da16baaa6a46837a80313f9fd334d291710a30f5398340db6cf71b949400089b90ad892fa05dd601e6b6901553d341f37c8232982d3c5f1b0727e8c4a72a6d3b5960bc2e35a7c5576e05eae19345a68df29dcafe0747f36e4d6e7fc7ee73043df21da6bacf908fe72681f86e81b9a0bc7878bfcf3de804aac6b5e8959c87f327a46b513ef633d4a5070ca221151ef118019ce03e10767ee2fc385e75a830153adc0b29f685da8688b5244fd09ed6994ddc64be7cf9b9867b0aaa88b88797b2f064a510fb63e983008ff3913636fdeda18adf9be0c8aeb7182cb749b0ed59ae4bac29779f4350fa7c6065ce35fb950afdf334584c1c409bb8abd708f0ab2ee65e6792f182c43cf22fb0044cbe86dece4cc28348bda35cb96098cd135a9217772c11e04f538fffb253f77520d812e753b4d862f2001679e9bac034215dad532be0dab578ae1c29369fb246705b2765133f7d14d9ae82f5e62e45cbacacc22c00447f98b81a73e0802efb96ec31c10d988290a7651c7a912aaa4464ddf75c7e149622e2f61e11b216ffaeb2534ab674f9685880ea3f0b30acb420f31c9378302fc6e13b0912b5d92d6e1a5d46bf7eba01661c3406ff4fa9d631e73df184453c60a5f5d3f42e7b7bbf05ebdf84bf3fb9bba87d2eca34b0a8ed91524c9a44a7a59fd3da59529c23b405bb6bb91c41354740203c3ae0fbb7091090e913686ecb3e12214d9eaaac0a2e2e2a692dd8d1e9a2890d26534f5bfe4ab190c6a818bd7a514323249657b4a5f675c4bbf29cb437c1f34a4d4d008684bbb9f45830305362d05ecb2b3fa56a6b61a8649ae7df05ffab0ef9908cd53d54f33f8ef141880751af10888bb782550e162f9c892c7826b1709b5c8f82b59cddc6a0df89346345aadba4ebf291f61e20a62d326ff22f76de17b08f3a20c9cbe38f7d0d080efee4fc05074601e278db09c3a42273e44e6c458519f386fca2e24279823a40a183ffc12ab61cc91259f5bd7d9111e69d77282b0293e1aedca9e24f2a9dac227e52c49823f2a6874164ab489ef24b3a762e88f9ccf47a59b09737b71e4031092634b2a083f49feeb85d73f9251b6293988a12bec48cc7b912472f9b00628fd40b2f4e2a35ba4406e3958ec6999dbad17740aa918f03ffc922e2d780e4e22631e656672d8008d0d34d14ab5a7db2ca367844c8035f2b856a07e0ffd67ac0ca32e10afe74c6ee1903f511a581f0f9f94f13eb0a9b778ed47ab97362180bcbdcd882a87d30e164308cae82fcfb953e73e3748d9d4622a229e5d8f627790e021cd9d413760a77bf9372a5190410bfe7aebcf43f2c0aa1583359222e8d470e784290e25b75268deb5ceac9d098d46b399f5cfb1c0fdb421bac2d121ddea38a7988500d3dbdbec6f0805ac85b429f51125664d4333ae1f252cae9164438231016e6128e20beaee1e0b780819da8a410ee456526aa3422a3d8ec3c318adaad50882951ea48c5c9afced15a99a50024b8939a34cbe09a674a159dcc3f00157033e09a0a15f786a32fc63a0d3aed53677c2ed2532251a1778df5717a4b2a4a93e74c27379c798fec7d96e3a0194686def323dcdb695199af71bc8d26dfa00d8e16fd6e35d00fc4dde4f255a09a6f6eebd781756b34982d7a2454b1a81972550ab67a89fb7ba804540da22180ef4c13aa650ddea1ccf979df9277aadbbe8903840401e1bb86815a54837888bb847853450d80efa68373e2eaaccbd206c3c83d18c8489ae0748aa406671f4c8633670cf837332fa0fc7b1cb32bfa0298f2472708c2b1da1c83e419042c694e388435a5b6b4719c38da1d084fb2cf66198668fd28ded77b9162c6cef92788ad13f6e7233ca75b0b4ba41fe32750f7f05cd282b8e65cbbc51d5f196cb98cbe88db2ce75c11fe677e198f2132339ab844d1170634bb8fccc4e832c40e36804a78c4ac58cf05e5fd8fa14c85472e744bdfc6529a6c4c495c1e4762b06e72404ff38d0b960e6e1e211febf24994fca75fd5bd448d6a33fa318f1855345eb90f27f3e605ab166d7befbc63e6ceea157ae2e70afd078b5e903e7dcfb52182631d1b069ea255c8403b05f6ebfc0bd2315b5e2551fcab687e8c2c093214f12ee71e7c21ca040445b5e8e3e9556ba1b5ed5d49fff41aa844ce782cfe3ded80bae4abfc70cf2dcf012e9281d785d81802b7f7ce8a1f4f84e866839e96a1b002384c888029fb79fe463d1a4b3bf414b09f76f3fb4c573cf6d7e97d881bd40d791ce3b653ea807da0cae78947e854b2292db984c42bbd00216ce2270a935a6be8bd63d377e71e3c6eb1bd90f996108606c1bf8e07b5d051e0aecddbcfd2c419a5e6e06c2e8aff994aa8cf35d38f28d309c8ff59c2a375ef43570d10c899024ef55c0094bc4e0e7ecaef2b1f8ddb1d256b59806716ec66e95a5c45e3285a25536a0401f159337e12c75e7e542c90e08f6352b53564537ce80139d8f975dcdb3557acf60304e0978b1c49f61596b23f30609dbafe764928559cf914fe1df68bb1e27789bcbca64f2c19128f0897764929e1824aa5ec1dcd6baaab500f3e61bcc723a20f47b53990e9de7dda2d32654fa10cdee710cfcddb96df08e826cebb4f1b6d210ec05089dbcc033579b819b90e777d6efd57d7789860c459b5a95e7971815852fba5222b19c4dbdb326f17023d076c212b2285b0f6889534776c0c9b22bb01370d9378321c08ac082219b7258b3b59a907bce81d54d8c56c6cf67aa32142a3853ca51f4fb95de59031c5db7998e06e68f4bb08d4603009fa3f67209a80cb8ff17a9109fd1bb3cac7f8a10f5506332af402ccab34deda91d773e8a7c1bc0815eb25ce3a786b611787db51829b5eb8b243b037660cb6267fa72a7e0e2cffcb1ed61e4f37ee3129546651f0da97018322b694ccc7f3c48caac14d608badc58bcd5d50e30537c798d864411c69945770d4ca623a403fc455342ea2fd7913b406ce6151572a442dea91505917b6d8aa1477139ba26836876c189f30e7f7a8542e95f9692b723c8c5008f82fb672840cf6f15660d5eac6b652d511b988b75d22bc072c6b662e4e8def5059241d54f90ef114f63c28a4c34620fe1205ea90aff98921899aba0cfc397aa8ab59903720f33f903082cfde8529d5152428f7b0d158ecb5a88a14fb0f9348dc08fb3d5fb8cb68e77906828f59c114c35f32ea132af602f59b807a98a569b4489648ad9ab8d39432ed2c8dd23d179ed18a4ccd7606dfc49b66815bbb44d004cbb108083e9bfc257fa614b4b9bf174b0d66719e466d7db1fcd518ed24a07817175da13b95d61dba7bfe2ae8bc7eb9c676be04cc4323ee582fbaf959b2d3976d33321a8a0de119942c23f5ca882136564a12004596a453af46ff8db315e10d0c0d31f3c438cd61e792287f9a5d872b8d42c81a74c32512f21458bfb2fcc6431e0ab29ce6b96c8dd03d7a767c70484e063744231642803d0479adccc6cb1a8d247d338db605128a9650c0354f6dbe4294c08d61867d6f6d541b5e93e5cf3440df4232d434c94dfc4924dd05b013b06e932a0a5738e3c81c31835b3c7cefc84574efd7f44ccebbef905e946e69d02319b91f912fada3f46df24cce9eb63bda1761fb2ede049731c0f26f256929e9193dc82f3c409c544c5015374193af523694336c1952383d91416579e143786469aaccd060e0390130f9416d5d5e9fefcf35196936d28f82f189e347de54b596ab05e112000c85c4b28a1f005be0ca21a0fff7fcdb00a5aebf7af9d17fdae0d87dda8fbad2092da619a9fc4c1c13c9d5172e82b86608f8e8c8a0c264bc5b6ebac7372cb2082f7bea2c2d9f577bf96978997c25669ba84e578696c93e2e08ed62d3b14883f4e77dca15680dfa5447577a0aae987e5d95334c37fc432a1c196e0cd3e2ca135966c6cd150e2cbf014f6d5980a36a0163e0dd3d8157b155a5722e61066f211eb66d2b6d8ea3fb82c64f0e164c42ec40d945f517a114a8d8acc75d909154aca6b797ec1f7f9c7e8264a0f2cb194fdad5a1fd84a5bf7901a20b656337899af402d33978706593e09832c987892e09472138d46853c910a4e69f08bf0e11fd81c5a3c3271b099c85160168736e27c2612adaa368f8aff23c4487aa65627733042a7fd1c89afd2fb4967618908d7b3e07419ccacaae1765894917a59830a8b6c21a1a7551e0f2b5e29c0d2698ec3aaf3ceabd069573330e7e35d9992ec5578b2d8d0d7430f88dc25923fb0e4b20dbd0adfac0deb62305850fc32b991d107c4cd132c75459798e7803e0231b35193d3b9435b4307025b800b153473c09ba706b9dbc660f1abc42227b24374cd8ee497bb3cb667e68a35e1e130e636a8bd04f74ffc4899c4019af8738681269a4ef7e70f26b7e6c1c0d1b4a92c5b326575bc30bff580943c5ed8a9b249336344a6075995f8584da2a5e0056110ffa596bf1d48431b510160eef825eece201875b9b3e4bcd0fbd3faeda7fbb19dd06293bc8ead05d432c25a8bc1644beb7e8c1fa185f07f8f172b642bc7f3b35773c6422bc721c406d8aebb30b6cdab86f3fe46994b5b258c09eb2d6f441ad7946ee2fa43b20adce6b807031a97941b1f1b76977ea748dbbc0a6cfca7b3c2cd57a29ee8137a0f797120906d68af395b7dd4df0d6d4689f66ae9296b966d9ea1cee4d62227e600bc73629811619889367da81dddd2118effa81b2061a57b8f1539f3fa5134f9ecaf1653444c67200c332f64a124baa85727094de60831289783d998cb60d8aeeea253d705d1ff7cd7bf9f3d9b37db35887359e4079523eef70ad618220b1fb2be97002600d19a899b5921b488d1720717d9a4c2f1ff5b982296a6bff9cfb1248b846e5a38741afea0d9a1334b94c270b1265e8b3392a7c5cf5387014eb3d9a9439ef818180d3cb5cfa32a063851222879b54dad096144d10976f8f53749704f8fc615ad952049b950be11f06466217a2f3035e612dc4fd0333300bee1db01b2bbfb7fb08de55cc37a3c067413264ed61997784ac3844d67c5daec6d8ccbd98c62e5b29164e4ba751c02d62d2ee2b89095d73293e8843d58d2ff6423c909a00a56b9306ac6c58f5226c0607ecca7e736058f4800fa8fb1bcc58661867ca1ff5d897ff00239525eae547704520f0c112fc1c90deca5fd070d74ec22d6c5ef859082f82581a303cea8d3694486d8322193c3921ec4a57d601f260267fb9067e557adbc77526f4202dc5c2e2aad0f0926ecf7ca47ad36122a3713b3e0cb418a8d7f5c57cd62dc9463537ebf32bf9fb4377078a2c7e9b54f4000f42b67ecabcda6ba1b66579126a8e2387ca3878840edd0260363931ce5bcf63a105e4e7ca98969f4672a76a1cc9325c090142b429f8e9b170a1cf0ac1450c99551ed63b29a48953905a9ded680f8c6265c6034de7049bbdffd26137a50eb4e85fc16c5d1e6e07c0f97be7da6e18d2a6ff5475e66feb53e74dcea1fc575ddb8e49f614212ba425fd73a734fc36a669aa1fad223052f232a9f16e81aeb1d4753b658cd85e2e93cd008870cdee912cab174844a44ab98a9321e767b844ca20a2cfac6662660e267e4b1088262bacce3b37db66aaf7f94a0e12971d8eb3635b9f3c03a89a64ce49c903a03c3a1567dd71cb6be4c9b41c11fd9db93e422e303592027f56f6b2e86cb5b7fdd01d3b33cd36c3fccfc79fce947fb05afd25f867c367a04222b7f708023fcdfa6f01cc9a86c0f04e57ce4e23a7821589ba0fbf9f97ec2384a9e4f7f87a454459d4ad1b29dacff28fd7d29c3ed202fbc6799fb99077943220fee02f65f4ea62fc5612fdf51ffd0af367d6a881b14249f8c52df3a343383ffe74d885a6184e1e9f4d772b53a31d884c7d0e9df2f179ad28f5e766b1f010b201dad16399849db7ee080085a492691f8b34fc314a77aa394046f62aabb26e0dbb1147c641b7ff38f0bff47c47ac5ef2847b314ea1cd28107ab046c14a6a6f8172e1ddd3e4e30dd30506d52a4af0a1cf059eab9606739a17794975a3c97d83cdd77508693c485adb8aef239c1a56b26cb6db8caac6f7f37b2d2e3388c8651f6c6c73e8feb1963ec5f116752c90590276c1d0d4479524075796900fa176a633a2b8dbefa1ce2ddd72f6e78b0183fa0832ef631f48e8b8f5e435900fb7fb8f514739998006429df444ed609c2efc576770217be0c3ee1d5a4ef5fa9260f18b5437a58d772fc1f0e673cc5441c4289f26bd4debee1147b4901946bc9e8717e62f2b2333b3c2a5a7270c3688994ec09579a7013b8b1804a442e9ae7b0ed45516fadee5187f8da19636ea731f9c7478b640df28e5b70ffe1aba3d9da4496671c9a3725a5e4c05cb65f36e0869dcf54186555517ed0b8114d8e7c07d092d0038b0af3a3934b5038a685fb05510402939e955bd76b5ae70b2b3f509f747989f603fd14e0e67174a7eba8f6e36bac9e866e3bff7c7eaa71cad5b061e728b14dbdbfd44e2f60e2e318ae082ce19ba73023d72aa73044432a4d608516b8410b2f79632e20ae30a9a0a4b62a408d1209d628ea385e5532c38c6aa4d272ba6e5b36a33c64242424242eac64ba19026174996a5c45a624d41e3d032281d49d3f0bc7ed7631269a5abfbad989a9309ead8f9ee1f072e0162554af2d5c900c936aa947ac28857a5e45229d12b6420aaeea6c4cc502c9fe2e158187587d7b85c2e97cb1546cd18abc6aa856114ab1646cdd0037b59350f2c85fae118cbe34004c135e425b0aca8cdd80e0e92af4e414f224091105563815195dc76a23752f1c776631229ad4a898564e5bd6621495816263ad3c3245e9717d765b9d14e31c4ab5232e286cd1526b8a28857eca61079091d88cb8788c37268198a5bc0319552d4a15c4cb4fdf51ab866208aa1f4022bed8e6df4a94a6e65ccfb35a18e57f188ed237eb76d18e2cf136abb3b69d94ea5f4c27c373e69bbfdc8e49a6c53a52461ec8589d84818334f3ae5326353b22c266aaa64b7589ab5d21d5139d6d138484e1a22e9aa708cbbec8ab0f2dcc832a8479fda59912f493b122fc8443b4304996e4b31c9e93420ce71c78cf2fc05b23ce7afcfed2c73d0e4d7dcb8046621f37c4ac476d844ecfc5421c92d6d24c98df91888137d2ce57f2d276de176851e5be772bd24d327392e8defab55e8aad93b64a7685bfe7b49185572db1d6cd9fe66c1cb7a87ec1c3241851868c0e18723a42d4b636a6ca0da0b0963d523319fecba05baf25a00922f9f3104b310efbbefa084ad93b98691ddaea42d272db8ea279ebecb70850cd8d55f12f6ad40ff8d57da151d81ee93279888df9e93f6c6d972cad91b8b7b576f06c62122f235c442f379c4fb03bd7a4af506a859d4052d67d42b2412c4de97fd40f07bbd8686ac386652f0892e4137369f9393f7c536d442547538d5ec4f1f6c7bb4f57abd5e9ee50701b2f7653dd0e5fab7253c5537cdb4b8a9574fadb2c820f9ea46026af3e29747bb7fb23deb75e3eadbb8117c200df2aa22f690af97cb054ecb483c58c87b136e74b25a200b3dd55e2f19241f44c67a0a7c35524fc9d718622b6481df8aa562791d8bdb286bb264339116d5b1e6db802886f0b10d35444e63e6c8ceefa04a6e79e011e7132b5881135e8fbec2cb3195c646bbb1097df7cd8dc8d6b39b9b1e29c41e5cd7b5ed7aec9eb088b7a5d43d754f4a3d2cb310bd5777687bbba71c33ca773f2bcfb4c8f69824e908d955911f6f4996cf762c9fbaa14f948986b14293f2e28a9ad29634ee40b919c38424add49172bac28b521b0121470623449ad22b2cdf8b12354a430e54d3982c485375d8382d793992465172ce342565b1a3c3130b415ede642866a16f09104bfb345432026d1bab078b8fa912dd92c61d2837639826d2b45247cae90a2f52491aa52107aa694c6769a4291c988d0a2fa0af9b016de6eeee89ee1d944cab6465657799efff580e5fd86c8f4eda3e71c25cd80e5fe86c8f1703962a99a11295a51b774fd67d62e9e994dc746339e9ac0c39b043245d88a49b33f442256d6792ed4e3acf74d279e61684fd49025a7ab6520948596846b5659a659ee3b61791648303529452ba75146906c53aafa3b419c49d688326c2e14497dce8a494524a299d1c06a43a29fe4629a594cadba07d9f9b9e944e96309e21199339ae0383638eb38145ea9bb3674a0a725ba7f2561fc802bf70ced90a9170a72c0639ee36a8702a109be3388ee34419ce194302ee39e59c66a6f783679fe61cc19427231f28f66c44868642568f0d2ace4967d786cea62914a90deda6ef39e99ce2d1846843e57c5f8b0b830b83bb25ed5e205eea799e07522446810a01e84ec11db1cc6a2527a51ca4839dbdd18dc324a0f5c41450a419e3b25061058e81463348b20a40a319f368a09195520a1854b3f08b11231f28f66c44868642568f0d1ae4f512c549f37a74402810412e0cf1321b76b2d7a3b990a8a048ec44916816a6483ea1682344b2dd0041271b5244cfa3ed20821e920d293e06ba4356b2ddcee38f4ee95009e8b6512a670f94522244ba31d19f7d296976ea36594e96f3b652b5ad040307cdc731e2c2cecf3b4c5888caa53c579046761b9b1027978438df89409cb349bb37b1189f8b2cad346f46cfd51864bd41d8fb845aee3f4b5ac972db1c6f107672dce8a465b7f10b65a336b23368caf9ac197376677d721ba536fc206134090b4fbf5556c541c2b6d3d148d8894345b36d8e3f3078978fc1bb1c8110330f84bc378a9e4a9c45b3f631225f2b900ec91711f9a2f7b18578598a9f6c90b01aa5f44ca89c544e7aafcaaa3242bc2c65c38cc9d31944dffd749d0d3824b51719ab4c3d3c597ac45354d2cd035aec35c152914ecd223a3b321c17664e4eb59281bfd38d0de5efbc422a895e920784ea57e438aee366084315dfc671dc6ac5711c37aec083231020f85300f0e143f04c7fdcaf0996db42249c52c771dd83a636679d773a998684cd918e912f7a0547572042414141c917126592b3e6846a63da98a2ea6c671aaabdb0dd92a93b69c628a5928985da1bc522448f858678555bc648d8a552504cb4bd3df178545b24ecdb104554b942bd402229a97b4a26262ad5df682cd467da681c120b3979e1c5c6b43149a5cf0c2a61f75be228c76daf292b4869be6449f3254b4dc304176ea31e1addb2e91a2bbb9b6a6b3abc22de2d694b9a4a9a76e0b0a2baa56e09ca8b6e4c988ea973eae4744ddd155050505050505050524343af175454b7c4715242cd98e789a2cbf5bfeed09c126ac6c44bcf0c134a332082e83c2e609a89b92d45b0b2f51b64e5d82d55db49a8b9a4c35ed9dd755d87c484b41476d8db4169c6136f3fe630f45ef65d3f56189ef52482dd12cfa452ab5bfa74e8584262eaa492845ae26a12d6b158acb358ac8ef52e44d2b1584bbab3ce12c61ab926f992507cc55218daaf5e1922e9e6b0eb464e42754b50dd52b7c48af2f98007ac2c1dd194c6206de13632eae6c237e2a546974d29fbd4a88d8c7afb82529ae4c54e9ddeb2499692627672720ad3484e9fa474a8945419dc78585cc2a9a5ec846218cf7e1cc731333377283e215eeab4596a027a02ce82a90a9892a12dd8b68d632929f9797143c9ca56cbffb45a524a59474a29e55bdcdd341a8d46a379b4a1a1d70b4a8ed18c716ba446f4b3237e69d068348fe6d13c1a929ef116d91e513c73ebd765c5f1f6b7b35aa7ad564f55bd916cf583922fa94475956afca2e40b8a3869494a9f54eb4cad35d2a68fc6443d975e78e618ebe0f7d50fdb57bda78a9559486b4758c17a45578fbb019484c991b1233193a325cd70db26474754d1260f86d58c1b3d9a944793776e28752d3c524a29b9ddcca98bb4eab01f07c54c12f6b364066d1165e7f8338b2c947c45214d0a45c7801e85a24c509e274e28cab4854aa06e06ac93cef6d8b2c11a3383dddd7d069190be304b1b1586d15a5bc1afbe4a9c502faed3102f558d630b6cff02591006ba2cf8ca300ac5af3e08de9bb179f067a2efe0489daa9c2386bfd4692e8961124a5577907c4520b881971594524af02a9554813f22655589508838e83f0f54854ac2835f5531f25f58291b70a44f3ed050bd0b91a8a47ca24e33e6cd566087f25fa77a6c35d22c14e9055050534af6b7a65634f3ab5b22752c2c0c3e6ddbb66ddbb66ddbc6b227c8ec46aeba70cc3b3fdd8d690363e5bb53a619f3c62da91b936c4db254cbd2972ed4686539645285c8e4711cc771dbb6c99944b7cd7b5a196ddbb6b1e8862ed196684b51d3139758e8486d426d524b53cda98dc8d5bed1f56d6c5de9a634fa3344a4eeb03d6cac6c266c481b4dbe64eb48a45c70903c1d2b6b2e3b431a45ab7d627c5f57258c303a36619ca0abd28adaa4b68ded3458e79b0269e096ef0e7824b963b3b111af2737e68db7d619dbad26f9ea4f6ab69a66ec739235db9fd30c97b968522fd3b9f5721937d4cb786ca8b7a148a0dea612817a1b0b04ea6d2d0fa8b7bb38a0de06d3807a3b8a1aea6d3334d4db6918506f63b1807a5b0b05d4db7112506f7381807a9bce01eaed3266a8b7f1c850af8462807a259502d42bb110a05ea925867a659701d42bc108a05e19050cf54a334cea95695ea85762e142bd528b16ea957158a85772b142bd924e00ea95652ca957e251a1de094549bd934a927a271624f54e2d29d43bbba050ef0433ab774661eb9d668ed43bd3847c02edad1364275cde63a21f2e2f32910f26fc8626fcb67a58664209bf384af8d5b183652510fdfa20fafd51594644c22f10127e3d08621909467e858cfc0a1181654662bf4562bf3112581683fd9e00fb058065194c4d915f5eb3846545da10f9e52c6060199137437e19ce0c2c1b3267845fdea206968df08508bf0cc60d2c13618ca15f26c309cb86cc10f2cb6858806542d408e197f34061590852847e7b0a1596091111e4b7af606159102340f8ed23b4b00c84243ef86d2e5d58f6c11241bffd050ccb82c4bc7e1b8a2858f622e3c16f4f6186651e50d1c16fa349c3b20ed400f9ed3558b00c481ba0dfce420b9601bde1e0b7e1c461190773c6dfde820b968d5fd4df06830ecbea18ff6d32ba0c96dd8c1fbf8d46e361d90f3536f8ed3c5058b681141fbf720a1596f920a2c7afbc8285653d8cf8f995476861d94f123c7e25972e2ce3b1c48e5ff9050ccb768871fd4a28a260998b8c8e5f39851996e9a022c7af4493866539d4e0f8956bb060198e363ebf320b2d58e6f3e6c6af8413876537e6d8f8955b70c1321b5ff4fc4a30e8b0ac670cf1579221cb60996846eb57a221f1b0aca506eb57e681c2329694f0774ea1c2b29008f0775ec1c232d088ef771ea185655f12abdfc9a50bcb564ba87ee717302c5389f17e271451b0cc23d3fdce29ccb0aca382fb9d68d2b08cbb9c6ae61a2c58b6b5a1bf330b2d58462fdfccdf09c7ce382c9b7ff29662bc6205de518cd7d5c39b69bce7e10dc5785f3bbc9f18ef9093b798f11ad1e11d66bc5ca3c0db89f1b2530eef26c6cb4f137883192f43e1f05e1a2f4735797f192f4bdd3713e3e5a91bde4b8c97efd8f0f632de3692c05b89f1362d026f108cb79120f0ee32de4e7ac05b69bcade4803797f1f65203de1f186f33d5f04e62bcdd44c37bcb78bbc6803712e36da705bc3d30de7e52c05bcb781b2a01efa4f1761402de478cb7a50ef0eec0787b6a86b711e3ed3b32bcb38c571a19e05dc47825ad006f0e8c572211e08d65bc32298637d278a5d200de57c62b9704f0dec07825130c6f22c62b9b98bcad8c57d65e785719af7472e13dc478e5530b6f2ae395502cbc69e395512bbca78c574a05e02dc478e5d492b794f1ca3b2abc8fc63b8d94bca38c77d292bc3530de8984e40d65bc332985b7d178a7120a2f1aef5c9a3d88f14e26fb0c8c77361d3910e39d35001c03b25fc00223b3d00f9559c887ca2cf4a4029559a8071e2ab3d00e9559c8890e14c801caf6278043931b6c900092ed4720c9f621f08025db7740039a6cbf869aedd3e064fb0c580094ed2b200152b68f8003f41ddb9fc1c8f665a0d9be01906cbf00048861c9f607208026db87a166fb4c9c6cff05175a88b27d165698b2fd00c83bb6bfc4c8f655a0d9be1224db4f9264fb485258b27d14986c7fd664fbb666fb472ab3100064f5845668820e1c25fcf041e401101284081989158901e004126c1fb6464d1adb2f92451b2c6c9f089c375ad8fe902de6c4b1fd11c0f8820bdb17818c31e8d8fe101a669461fb42380fabc1786c3f84295284ae1041c5f6831c610416db07814b125a6cff832f4b74b1fd2028c480b1fdd71464a2b07d0fd05061c6f63b58a3268ded03c9a20d16b60f04e78d16b6cfc11673e2d8fe08c6175cd87e25630c3ab67f34cc28c3f67f749e56a3f1d8fe0653a440b17d1f5788a062fb3d8e30028bedff7049428bedf3f8b24417dbdf01851830b6ef9a824c14b6af030d15666c3fc71a35696c1f47166db0b07d1f386fb4b0fd1b5bcc8963fb36c0f8820bdbef21630c3ab62fa2614619b6df9279a41a128fedb3a6488162fbe11522a8d83e788411586cffe3928416db5f7d59a28bedaba01003c6f6bd29c84461fb1d1a2accd83eb7464d1adbdfb26843e1bcd1c2f6e71643ee9c53e4ce38b6e70a453f04514251532098f8e43ff964bea5644ec96f4b43be0c956c2d93f0e9c842f2df94538e3f49ec9cb365994f12f13c4b29a594a2b764e72513f529a54be6ec46e32c8a3eae1e5ee7796bd0e819b42986145ddc455589d199d7d6f33cef2d7aa3e779694230c77a9ef5c68b03901802371df86eb035817845d1c7d5c3f3bc8e7a51789e774fc23cb0de453cd653c37ae3edb88dba449f28bcb0577c156e2ca709e36483584e13c592f5e6276b4905b641248cbb096017b1df4306cd4fcfe50346bc2f3b5f4333c6cd6614494c4af615c444f2b6ad0c0fd0464646461b730c9f04a51c83bce46bfe96d75ce9396b92098f773c3a1e1d8f8ec7ef6dc7e3f76599d8afca21fef9f17eea156d6bbc380c0d316939f4ca7129608e712864c21b3787a807ba7a6c36bcf8b61f8c8c8ca058fa02e288f3a0d9820c346aa0c61a7966e0a3f44c4ad18cd6cdc0b1fb28e8495813eeabb7eb2c964bbae48e7f0df278e7ca6377fc538d975ad5b472da4eda4e86a763375e15ab88c97e5d1e1b52f14e3c3a3ed911566621d578e5c5775574e29d8726aabbde4475297aa2f7eea2eaaa8baad109f5fed363031fbfe1a3d5dac047ed512fb3b1adffd4cb6d6ccb75b63acea3ba2e9e43256d649985768cd735ca8b52bc0eb1e88ea8ba28feaa2e5e152e5175e7704967a5ca765edffb38442293f05064e5e99d84bf3f3cd96159bf1cb250244727e16f77f09449f8ee54beb3e0188539e876a313d6f8850a7829cff1f03407b30897db5879107c0e6f066d3d4343dcfeedde8ce500738c545c3329360e8e54bc99141c97227290fc8d4bf1b9949e4b192f0efc64c5fbdce73ddfce1ce4ce7f3f2271f854d70c9abf51a5d818815871e942468b11684ea0340b82a196d490e2c68b376b8899f58ce20c2a62b2df98a4c87a6fd526dcc35b64bfd3ea230d91f5ce636ff8ee1dc33ccf76d849b9b1c670fc02826310fc3413f3d59f25945a5a6fdb2712b8453687cef630ad5422efa4f3e459e25939feacd05dbe1b5b78d27635fee0d0d927d34a2624bb411146dc5ee0b8f1963928f282e0bacda7ced79f35cafc36cf560251748b2afd9c639479ae54ca299b76179e846ddb397ca1c9f67dbd711dd771455bb7755c6d22e5462de5b84dde2ba594f45bf76d3bb735d7719be43aaee36a130ee4ba8d485aca711b156aac3ebdfee657dff7afbdd70e5e0f6dfb9fbc6ab552ad56aa2d88e51e843b1dbdc93acff03c41d5bb1d53a5ea542a4ea51a2fbd5e585df65f7fb55a558e7b87dd65a55bb7f23eeffb5ab6c7a9549e4ae5755e5579aa95ca6ba2eaba52ad54aaafeed5262a956ac5712a95d78ddcd86408091aa45183ee3d65fb2b288cec376e755ed2efc6eefaf5b70377fa597be88fd6798f7aa7d41b0a5fa856fec89c54b65a72bc9e77f63e9b27cbc9b4de832499d61b3d16daeed540ecdef60e71ed7ab689ba6f4f8189e437eff78755a9542ad58724acc7c6b71b91b0ed5f4f05e52bbc8d2aca576863a4f215b2eed5db95ed138f93728a95db61b3ad7a55361cc16fa4f2f5bd3b8847c242ee9dfc42ec73f317e26ad5b28f30d1b42da1705d552c54e45527add0f63b597f56904dbccbb3fd3e0a72d88d5dbb55747a57bdab4d3c097a3d4622dbed294858f7cd93e3a5f649db6efc5932f3e4c93325154529a594524ae9134a2fd7eb89243b1fc4c844c2ce3462d2b0735e9f5a10013448c11370ce30c1a6ccacb758f921cecad339a21802519442bc9b9148b98897be40bc34e96e462d2868189b977e42819da71b6dbb9802bbdd47c26ed86dfb6bbb6b4b43c6d207769ef3de344143249b0d28e29d51e29c42ec5943bc52caf6c52b629845e49a702889961ee8256343f4ae1ef47cc50e49a20a1292a8819df791302076ba2c336c8211b99ac8a1113d15885e0ac4cd880323decd88ce8c66cc0bc188e1921866215e0e43644919d923725b7507715ad0c1a11b08c974a19ab27c7a837aad061faad1f8da32edba9847e3c20be1cdbcdfd606ddaf2a94758f79a685c8ef7d1d4c04da78ebaa1b513acfacbbd7a24d353c240d1791b751e71b1e22dfaa5f8d8582cef43c636537f976601987ed2e90d5c1b1d6f93f9888757e084c049e2f844bf8ceeff9e497f05ffdd27a4f9d7038485eac738d370b3f6bb3ab346fd66a1d45e93c33ef42783315eb127c09dfe5aabb3cb7ea64d5095567ad4ea73ab16021f25d3d12e233e621ab515569e2ac3b871dcd9b75236fb5b96603dbd701a77b166d9c87f431d0ccdb6c77b643db6d429bd02574094dd4444d4293d046da48c73ad6b08675912ed2449a480fe9213d428fd022b4083dd4432da48574081d420bb55007e9200d4283d01ff4071dd441fdea577bd01e7407dd410369200dd440cd4173d0638f5dbbf6fbfda37ff406bd41fb681fdda37bf44fff348fe6d13b7a47bbdad53a5a47e7e81c8da371b44ffbf48dbed136da46f7744f8b2d76ab5bcd6a56871d36d8607ffdf5aa57ad6a557bed75d75d73cdf5d65bd3a63dc7369105dedd77fd7f7de8467ee42a30910e14785f86d3c0441378df86ebf01fde466fda1be99dc4441150622208bc99de4d4cd40026aae1fd767a3fbda1de514ca480f7d4fbcea5d125ed12e932e952e972e992e9b2e9b276e974f9c4442f5c465d4a5d4e5ddef934faa47d227d267d2a7d2e7d3231110aefcf26269abd3f6b4c64df47de00787f423191ecfdeeeeeeee86bd8bbc89bc87bc47788bf01e7a0b7987f0167a077983f0fee01df47ebd3d7877f006f2067a73f01edff5fdf78ff7066f1fef1eef9f378ff78eb7ebade39de38de3edf3bef1b6f1ee798befd69bf50edfe0fb7b77777777997ad4d9de8a58a0b6fde691233f32c32397b0233ff8f0273c3033df4eb2ccccb7a12cdf8eb2ccb7ef5866e62b932c335fc96499af74b2cc574e59bef28e65be9366f94e24cbcc77d62cdfe964f9cea7b0cbfcb64eb83a2cfbb0fcc33210cb1e5816b22cc47211cb31cb27580680e518c798db588671112ec244780bcb43180ccb23f0082c028bc0433cc442580887c021b0100b71100ec2203008fc014361998ce5292c5361f9c56a2c7bc01d70070c848130106f61990306c3f2c82357ae7c3effe01fbc016fc03ed807f7e01efcc33fcc8379f00edec12e76b10ed6c1393807e3601cecc33e7c836fb00db6c13ddcc3228bdce216b398c546580e1964903ffe78c5505856b18a3df6588de58e39cec2f2c69b05ce57b1accb9cdfc3b213cedfc13213ceaf2c2be1fc2096119d2f02cb48389f04961939dfb22c76fe1296c1ce87816545ce9f816544ceaf816543cebf8165239cef8465229c6f01960d9d859c43380b9d839c41387f700e3abfce1e9c3b38bfb560199033d09983f378aee79f7f9c3738fb38f738ff9c799c779c5d671de71c671c679ff38db38d73cf593cb7ceac7378fed4c232f0fc9d5767d5d93b7767eebcbdc77cab479de7d2e85c3d6a35de6bbcab475d83771af7ea51e379d3e0aa7ad468bcef7c558fda8cf719ffea51cfe06de7603dea32de3278588f9a8cf7d459f5a8c778c7e0ad7ad462bceb5cac474de71dc67bea5183f196ba8d7ad45fbc61f01bf5a85ff0f6e23ef5a8b97877711cf5a8b778473d473dea396f175c473dea16bce5dc558f3ace9b05df518f1ace1bea3cea51bf79afe03ff5a855f076f31ef5a8b578a7e03eea5167f17efa06f5a8dbbc51f01ff5a84ff066f3d7a3c6e26d82d77ad46bde4e1feb51ab7997e01cd4a3b6e27dc581ea51a779577120f5a8d1bc6befa01e35156f12dc837ad423789ff9ab1eb599b7081e548f7a8a77d33fa84741ffe020d4230ffe7a907a04e41d5ca81e7170a087508feac70ba9473ffe0fd5231fdfe022d4a39ff7f808f568c7797c483dd271d789d4231ccff122f5e8c67d0eab473db7f1583d6a5dbc917a149e7512ead177f044f548f5d54ba847ddbd9b508f363a6287e01c32f17c20f32752bc0251bc07a6f300c57778e24ec45c8730a78013cfa1894f00cc71587a932fbf4cfc86256e83974b40894700048740973f40e90ee0f2067ce03524711ab69c01487c011eb802b43c014947c0113f40073e83119721cb0d50c40bc0811300cb6340fa00ae5c001b380c449c8995bf50e52e0cf116a89c05da5798f20008f12552aec2d1954479120d1c0994a7d04647a1320b157d56998582c80010974647de798e1c79af61df6a58fb4e63f6aec16cf6a6010a6f3c28a0f0be93c21b8d1452789f81e46d0612246f3b49de334892e42d0325ef329428794fa9f026430515de3158f21e63c992779d00bcc5084000de61acf0a6b3c20a6f2916de60b0c0c21b062dbcbf68a185b7172ebc5fe0820bef2e5e7873f1c20bef2826ef2d983079bb0086f71c186078cb11c0bb050210c09b050378c719c000de5031bce1c410c37b050478bf210001de6e0af05641010af04e8101de5a18c000ef2719de59c820c31b0533bcdbcc30c39bcd01de2738c001de2640c01b0b0420e0ed9480f79a0424e05d0205bcd5284001ef2b16f0b662010b7857c180771a0630e05da3e18d86061ade24a8e14d450d35bccf34e03d820634e02d82ca5cc4016f330e70c0bba9321779c07b8a073ce01f40e0411080c05f11b8071188c03b90c08148400207b2e11cd860c3c71b5e6fb8e1bfff71ef3768721f4d9abc070effc10187f398c0774c600277e5701d39e4f01c14380e0a50e03e3afc860e3adc8693f73871727187b776d8e12c1e1ef2c0c3c11efef5d0c35715b8aa0215b8f7e4dd9327457cf85639eb03b53efc3b52efd4028b2347a1daa7506747525178929ac295542457a126f992aae401a82a7c85bae42cd400bc85bac25da82cfc85dac29954170e437de102a84c3e800ac363a8023801ea005e801ac30d500970196a013e4335c00f50653802ea0ccf40c5c081a8177802ea01ae808a802fa026e00ca80a380d7501afa132e00da834dc01b5863fa036e010a80e7804ea032e810a81db5023f01baa047eab0d6f526f380ef57e02b5c973a8389c027502d7a1e670279502dfa1ea701eaa93f7507778052a0f7f527bb80fb5020fa202f1a29a81b7510de20da516bd3550dbe81da53694f7516d0dbca5d48ef216a2f6d17b4a6d296f5a6d21de546a4f790f519bf6ae529bcadb4aed21de44d4aef2de406d2bef2bb5897823d5dec01b4bed2b6f0ed4467a17511bcb3b4b6d0ebc8da85dc4bb03b5b3bc8fa86dc43ba97607de5a6a1ff1f640eda43712b5b5bcb7d4f6c03b89da48bc3f507bcb9b4bed24de4ab53ff0ee529bcb1b04b595de4ad4eef2f6521b04ef256a2bf166a2b697f797da4bbc976a33f10653fbcbbb89da4b6f276a837987a9ddc45b4c6d27de4fd40ef386a2b6983753ed27de51d486e22d456da63799da51dc02f587da656411f913641132b5437000d429abf384cab31f2a5b0bd4b614ce9b22521691f7a15ed5937a7b7accd87386d82118af672b50ef8e1eeaad3cd41bb443bd22d44b820ef5721a0ad4cb58e4502f6b31817a390e0e35f6baac3ccfcde5cd0ad6ec4c8fcba4948add67cf0629adcd20797a6f498a526eecbaaedb3ee946f976aded1c7b4c5043438ee51a0da6a4b024f0d2d49a07e9b65191167d594009934af2352fbdc8a0297fc0b3fd58ad1f0e48c27eba53db7dd54a3228fc1cc3f1878ed725c508efab6016ab6e0553d048affab089f2468e9141f35c954c634c3aa708613733dc797074a39ee442ec3aa674eb10942b7479f2e459c352d03583e6b72f498996d3cc41b268922ca771419375594e3347c97e1204a9e7f5202db7c922fa4297274f9e3c96ca1afda0f8c033d007d630499cff56bfdef779a01b4b6f240519f3948c8c8ca0cc689a336c2ca54f51f60e6d4a67d498c2c97edceafb2ab310f755bd3f30adbe74e76db50a917ce7daf7de40192ae9efa09c3d19645d0c5866a1ef6c3dafe32af3d336676f7d1922e919aac076ced73cfde5e863b367f33190284a97bc7c31b17cb6419af45ff245b73be1f89ee7799e373ae9ce8d972f0f8b2839a43d6e412e8f4eb8dffec6bdebe5f78f4c9e3d3ae9c62ff3dc38241ab9bfaf8d8920403d7c449708413e4c2ce8646e67ab8a420f44d18c7eab17a04ee6ef6aec84e8d9f78f3e0a1041e499d14b299ad1518af76f54051185f3cc683b66dcbbeae40b3752a1dfe848bfb514ea92b28de20c6ad758d4dddde604f71dac6137dbed8b028294d27b65c4db48361e0b6998e2eaaad65dfdbe6c657d1d38437a1b97adabde23fe6bf560c5eb60c573e802dbd6088415c7218f8c781ac6eba9c62bb6c6ebb2977bb0adb767637ced1945c9c4b6c2b3dd5867d528e081289ab16a94f04014cdc21104c177f5c06d030fd6f9d50ee4c1dc23ca17730f285fed7dd543970c6145c27ebcf73d2e810be4d836f2e89221868858a5d55459b1d1c4e65a0a47e8112dd48ecc22e5919d340d8f899a85e4cc42e575dca6f23a6ee3366e3b521323dea6d59ab24c6d63b630148a9fe8c6adb1fafc3eeb8adbb8cd68dea10121d16a4e43947bba91c6c7407753a9542a9514f1b692912d3a7409d4c87c1a6a0926698b122d4899a6eee9d261aa36caa9c4529930536dd464e7e7b72db2871509e4c566b14d5d421926329a9bd7711bf53a6ea374a31b35236eb449698d7545f471f5a0947a513cd125fa8822162b4e3d96def5571009eb869ef8e26c451350525df27881c414cd82125c7102d55f07fab9296ad4882237e002099e30e3ce9d1a9c2d3a4e098628c36d407f05a9c5b1d495a666a62686bd1fe2c6f8a8881748ca095296454c230f0a51fe05615ed0d4815d3391eadba9f77d2a90c71e32625f4e2421f7237282deb9da6db77faaea4407cb2ce4852dd8102ea1efd1c9e98ced17e86d902fae6377d85600b23dd2d056be4e464937f22563205e3965e5edbeba6cd25d757939c544df89bccb7f5e75d25abdab5f6deb852fa8ee39a971b22acfbbeab6b32429f516f9e2a6dc9ab26e916d24f912af8f9ddceb77b9362903dd81c988462b244e4367caf630f9c7ac4d973883e4dc7aba7355b008830b7b452b3f44640e2da16285e3daca197c0cf435a5cc3368e41f913da5837c4929a59452524a39ca518e8e1b6b4972f5e4eb229501d7adbe6fd5715b70ddeafb561d4746092fc65871d0b67a22b9aee3c0745cc7898053718d245ff20c400175f1cb63bbfa54dca6aa9b9d96ab9283b6772bbb6d392c11adf76f82aa2a2d77014b83c82039be7ab85c736b8134c80da28f1b6f7e612d3aaee3622075a8604804372052a739226b0b9bafcc17a74c1565ca38f1217dab8debbaa61903c7aea90b2ba35a085729bf54973eaaa8de367eb5eafa6069f3aba7b7cd6ef6e7c641754d3368f3d264e55d2b292dedcf8d72e3e6492fea8ba96293c23870ec681dcdc9a339755eb7f16b3b5755b4190b3968bbbcf75d6e38ecf6db217dde8ae3d7eac9fc5a0eb1dcc675ddc6417553e98d1d8d45292bf148b26179ae6833a8a3cd8e36c5710176bee9d82cb4c9e6cae24666a1ed1b1de9ea89a3ab21bed0cc102f065f23e594f21e0bf17f885c9879da59fa985655acd2706006ab27c4d5192b17889f186e4455175f1262f7b45a23f6a079126d287186e821b1720254a24c14b48b2162d308b4cb07542a88aaa65ed44694ead5f916e6c73cb30185d149670e49392a7070557c1ed42a74d32d9618737e5cbe1f57135278d4c86e35db30a8a28509c698f17dc6886d025b3482273450a60a0bd8ac51c1ec6e4a631877a6382171c1040b668d0513519bc3cb3651fdaeceddcfcdab7e64aec66d49be7adc94eae66509f131d967e161d8a665d3c262b1865879169494956729cd580e726a543ad0e58b1d373379d69284b553910792d89440a9060225dacce4596bac3cab36639b07a478c1115348c869c14c9e55022bcf7223612c2bcfd2c2304a87ce162bcf4a62a211ac3ccb8a8c51cacac232b2616dc654f040133058811431599a98c9874e12d66aac7cf8346331bc69c11466d2cc19c365261f4249585f61a54bce0698c2f880185ea898c9875212d65658f9704a3eb42361661846cd983963e5c32626fac0ca8761648cd6c2a419a34a61d48c51248a48a34d1d341c5063260f4a49585761e5c1a9192b12e20e0bbcb0d140131318b334563e349ab1a2326a8e88828402178860aa6b563e44920fb348581c86512c148b1c2b0f423151909507d924b9b1f2600d74b23246c41b33ea8051a74a9e993c4893b04663e541a41913d28239456cd1040dc07862269b04561e549a3186928325cf962a63c01c3193079724aca9601a03365db1f2e0990f0fc3261e3c694cc9987887895e961a7961e53fa5192bb2a2f4654b124bac81e68c99fcb724617d86e7542102323cf0e48406accce4bf2609eb1158f9af3663498cb278c102355858d1c54cfe7392b0168195ff9e68dd4cfed3c2b01927ce16183351b5f2ab3b3336a3a23ea3556dc6363a5b8e58a0e58a193833f9959384b5991288a001ad882eea8400895947cd18c389521bc2898a1564916626bf9292b09ec2caafa6244c7e6547c2cc306ca65985598d593531d1adfc6a8b8c4d2719d42b2f56721a130cd18604429cd1812a3379d51d09eb32567e653463322c45c4b1435303c6163332567e857486955f6591b1d54c5e158761b38b8a8dca8d0a8a897e587955d38ccda525556dc968c6188e16567c61461a12ac19c14cf6182bd988096304493580b26606b30ec18c711d19345144194a6d8cbecc5a0a2baf6212c3c3c3b039a1a451c78e84f11d26dac0ca7b5033366993163583b17559794f69c68a8838e3022b456c91c3549b31cd18d7ba68b3e45403830e9899bcd724615e6dc6f84d15a82ba4aea0428b9599f724619e1b2925e51949d998d7c4443a248ce53b3bf249a963c3b98162a21c569e9392b03b12c648302a9b9ab85a13b7d9b9c34438ac3c673463b6042b1043cd192bc8126626cfd124ac9fb0f21cd28c010983052880228618366c662dc6ca734a3306003370e2905933022a8e66f2dc928475182bcf3149983c3746c2ba19934a4a514565c450a38a295d98a9c11a33d94e5816e30452a4d0b860cc0ba6ccba0913c038538416a53388e862d660acfcf68466d3c230094542f1b19246db8c588d140ea4408a285290e1c44cf69265039441c118a42eb8987367d65fa6c8d891b09595a76618d65ad02626fa6caca1644b29edc8c3654d1934a820a366c6849548f2348b84d98075970935d9c8582f2db9e9a66e9a35f96934634557f07c9962c454139e2a66f2932661bd8495564861c419222883036b2c31939f4912d65eacfc549a3119cd0e9ea9139cc942652695b0f29309092b3fc74818aca934953ad2ce1d269a5636529384b19384f1931ba8103603c7d962e56592b4226334cca07e5416db77fa3012483863e5bb36634fb2e8428d242e508caacc6483004a6a4a4a8791316f26df63ba368fccc03015bffaf2aa3a8b84b5ac7c239dd1c5ca211584200d0aa0349569c14c2a59791d666c88121825bec0019344c54c7261010c2e43c0c00c9d28303329caa82943849167032420a2ca4c7ec0ca1384e00b284d8881a2a993b002089ff0a8a44b17094455889899010100000020000316000028140806c3e170602c8b5451f70114800d888c5e7046170844698cc2300821848801060000004144046068664600361bc90fc54ccc6f73f94ded1658190351bd2d5a70dca9c95f32f0333690455aeb2b00490be5b8980e8da8013d086950b11ec2e471a7f66c39fc3c46dbcca0647e3cbf1b1f34b6f6565bd91b3c7f66ecea2d2c8b2f680b11b2eb4337b4f931e0648a0f49b27d26e41aa33848f698a3cdd8a3f57805d99d11401927edf2c8b1d36e40052338c93c0754aae63196a18730b4acd69f31e8b6c8057186fa41b6fec2bbf854408c3382ac28c0a73a9e806d0093add63d7d4e27b82615c27c5136dbfb6d5d8eb74d21b4ecf7fd2a97c95c6258c528f6981c36d8e2af66f2d0f3d67c735cbd2d7ac11bdcbe67cf8dd61dcc8de4e4dd8947d0070bca6ad858f2af22194f5da6ea15e323b94e3643fb46e867f7c75084c5c3cca17248a923221892c814bc74cd5c0ecede8ba6be981d9354e56968dc9284c882aa93c0645def86e496cb88a1002301f954b71561f5e18ed002df49e27bf41782400b86940ce60b6e32999a4eca91a938f6c187973c86160f77af973e52ab90b7d2738b73d60996f5d852dfe60ea0116c90ef9dd15c5ed42781836203f821f20bcdfae753dda56904dd721ea8dac9d15d985be90ce8c54a2bacc3784364d4e17c16e8fda9ca534163bd870e8669861d9d99a717fa022000d57b4258df0ccd5451977943ca696b19d51fe5653a8fc6be837b0cd09cebd543eafdd1f3e3d6aa18359cc4c5967443fe1913aec4b28b6b81ab6cabdf6e6d36f24b563717ac0647b3f01f3dd7f5080318043f990c643a2ddd4df258ee283ebe378581455e0366b100dfbc05e895ed2cb1212996544e900463e0541281b3d781380a000414267fb388ab5aa9201a6aaddc73e8728ca33ff365f57edbd8e71eaccdd72a26848de3cd0e0591240510088006b37ffb5531119dd15bb68e7b760efb5921a6e8e2b4e78e911c1971136015a13be2e380a4e598ba6f0b49278bb89008ca85b9249e54ea3b568a1ea1023b632a6203b040a94d8216f4339f7664b41ae2587f49b0a0f6b5ab942094a1ec49e05260a56103f474b20323f417ddac61582ee55c5d42df8b373afa591a104ed3730a7d5cb4e6fcf8143f7f5e199755b2c3a3dbf4c60eab2017713416033e3e9fe7eac72edfb6f80182c83b089a261ac3b04cb05d602a29b5cd68997a6ca14afefecefac56b876adb73032f341205eb53f62ccf2ee4d0b411e3df5f31d0d7618ce276b693ba387620992fab45dadf370b9541c642ac6e129c4115b10d40789dc232ef233b732e6b1abea3c8721cd6154fedfd8a04c02388ac3fca5a19e307b70984cf008a9ea221a51bd2d57cf44a8339381dccc1b4c7123a0bdb082497dfd74f75ab1b8ec4005def07ea5caf507c755e35e074c5189c5d1d5db3670be19e3743f2894316cb7acae04c605038f180d11f794f5aa18a27ab8bc3670c9f7b8030340584b952945acc4dd0d01f33b99cdc2a213049a07c5eab21246367b806bff7bc7cd457eef6d3105c148dcbd1252827918d207ec0aff7ec9df93420324cd83fad6c20be12bbf2b01b9bb595788ed6861dcc0c8414f0a4f64c408019cd35009ae0ac913248386603a97e3c570c667e1b347c222be962566d9881fecd576b0006098aad58393a044166e15ce0378712d600ce033228da4ac2661279d67222fa0575d71a247ce21a6361d9a5e3c8f5fefcd332e58aee1571b1a52349d2cd20946bea39ae0ea448aaf6b8a321f60af11e1069dfdd4583a8ca68a9b5f4fb6d3032ddd35b641dc9e3a9a65bc783ee481cc06b030e56cb73c176f0511306e529fed41b913db13e11959f9ba75f54e77a04aec7c63fd91ab67587777d0c6483bdc75dd0fff083bba9f51680dc69c2f87d990f229b62670481558746859b24384a3d9a99d7b7daa59deba0bf6649eb6a8296ce95bfec8d539d3634dbeb0b085552b7ec18d14868d248ca46b8afba2af3812a488c8f142349eccb5305eeffd824231230f202d35fad30d24bc64694494e2026422901f9a718d7ece3c7f6fd08157401ce077b0e2c752cb53d15249cb72e654bb1caf3fe6178c235e4450e68f6b0415b69e03a74af88d253b1dd64023f9a03e6b517ae5e90adf489aa04bb82f571097d1401c7a218f692335860981c135cccec562970358710f268c66fae342cb7baf1e8d1194b27bc7429147a366d3123bb556fc0ebfe0887d384083b000a0e2dfe38759638a8102177109117088a0fbd4c6949c13e83c7dc661bd2275490569695c2ef2179f4b8be02a221b12c69eea14f3989c72a7783a1076de9c383b82db80c565677088adbbae745bbe509e7a45104ec6c987edcb16374f1167c1ae657672c9a90c6f780fa1443b616c1b5e81e8b69ca1cb43178954b55e2176ce541db81c1348b115415d300eb8af82402c65f3ff9485cc81cb723bc4c77f7f8b95fbc51675e0b1ede5ced55ef4f0c01e73134ca230a0fae9a5e324fcff84f6b2df8e07e237ae9a9c87817b2da642a6fb4d321a73439a45342d0897821fcb71526700ada0963f0d2e1694349d70be3fb2493cffab09f14547b13b8a72f30d4972bf422884b2cf921efb9bd8151445a0326e8a6f77549cf8fb67418f83acd65ab9bf4eed3007cd32650bb7bf2430a674a7ee34cd9360d3898ed608ad5ccb55ede1a88849f4f69c55888de418ef52c2ca3a0c2532fd41a494705290368b37a5be52aebedcc312ce5baaca8da39bbb9b3e0118b5d5a8dc90321bfa164c5827497822be7116045014a53d01c03442122a0db8006454d4c730aeab1453e776bde500bcd05855045e9f84701d73c34270934a1b8fe262ba08202e638e3080ecf5f9146b20ee02642bb83176152eec5a203f4dfeccded4fe0c47e893ae811f12980b0c750ab772d3414688d8fe67df95d2591d95446e23e79d3b8a261da3a215dea57d69ca8a7b1b997741d001e97727e8c3f4a74d52501ada13684bd3509adceccda86b21f34144b2a415fd8631ef86a0c4d0d32de425637263c48ec9d06fc3441cf36fa642101777b18199e49fa732bc03996acd81402c86fd5761d5ca01530592e4eac0d5d058840a3ee83d57d3d2c1b5fb2385ee9ce7d3f2ef2fb84b41400059c623f84caa6e43b16f25001cb90534c8275ab1ab9f0fda87db940f4a429ddfe05baa88ca24061f427a2e65f652334f5f27eb9a0c2ab0372ff9764ff787be6706c143ee8e143b7e9a05c89d7abeca4531289bb8fdee99b0f3d0a2fe914e61c353228f48634a6194ee78ac2739da4765353fe4daf891070c048fdf0c989d2eee423fa4716cb1408c0ed23c287f7d79208228ec084210ee3887ea85d6e26f043801c0b4b1c413dfb79936e9f1974a85c417df72904b1cdbc3679f104b6e9917eb672478433f143cbd70f6a9cdac6a63cc7be4c19d4503cade1ded0b25fae22fa422194154fe7db51caa829368f01e51f228568bb692d341aaf0400093fbb46033cdcd5fa64fb01984ef7a0f1196b9f0e9ac356d9e2ecab191a653595625f2a412c717f873c9b7f32f4195b3b9fed5718dad1606f50b53e716df61a16fb8576e4a6b906d828c575b251d88d1110f3961b3fb7e74008556ed50233bcae854f78e96837bb9c2777fbe314718d4759463e0a1d136dccc4e054cbb8c889b1c72846e6abb60b69ab3623c60406258b6469cdde28832b060e3f541dc24171a7c2fb9a4eb2f40ef628b79ad5ca6241f16bac76f4c8c6d752b0a3144fcd1b62a0db0fd4fc99147aa72e81650174f4d2ba19542a2ef2e5713874477722ba0fc5ff81cfccf0885b3a015ec400b12b769e2f469bbf5a78314af64f4c1f0460ab7a30e60f1e82bebefad895ae45a931daeeeaf2d0c519b6816c090d1bf1f373df338fdeca5bc567e5575ac8e1e75273afd52adc609b15b0e552fdf1b01ee6ee32f1996453eda38bb0c0c50300ed6866dba9281815000154fab51f248b10bec2b643dc32fc967c6b48fe21bd11f592b3851de809e10034df75cd0538c0ff178be88fcef82908a3fb83a8ae88e82b9b455e44311d9cfc70d0d9c9da2bc65fe53f054e98b8739860b004dce1ac54a952430d3207bc26c653c055b191a633d4dfba733c4e49418d4a29348acdf4bf79bf84e929bbf03b3812533968a3a96d9aa184172e9f8adac2af0a48a59f6dd7fd00b22e24858f36a0d9ae026d9e40afbc46f701a9aead557924ac6ccb5e1b4f5617d9fc9cdc3113ca6950d9068d6763b8feea4a98d39e009cacb1a129c103f951151d05a96c6267cbd8c1b4040a265f428e070a0e059025fa4ee733436441e4c416071c474cae3a839597ac7601da3512b2693905ef8fbfc49372c10d8935702b0829d46806d75d74dc59ed6ab6118f3b1978e79dbebf3a705e7ebed564f48e77f838379e9bd3c7b6f093b2a91d08e1230c88e10fdcd4bf28284091de464d6c09b5578786c1d07ee3e9104ed48bff99fe9e8f69dacbcfdef5f94c783a748be18620c1bf2c29d1d06909c6701c83f5d0d30a0a560762b83bc3bd362d83580ddc8500a622663d11eff243131ff48545fd73cdfdc100876950259222c9bfce8fc28f70bf04e2ec11964148439a2cd064b53c12bee17dcbccc7445466ba9e7ba2e9106673c9898d2e95dee0d645d73e9418e0d7258edbafa079da67a4ef663fb4d1168a977b01b85d67ffe36e52865d430dc2786c378487ba6e846e9bfc0ac8bb6fae5b25dc8a6e2279a3669b92de64609573118b10c051033eaa187a273c6ccc8488641b3119e9434fe17ef719b6a7c2534ae1847a8ceaaaf0e665e5fb3e1902ef303cc28526ccbb86bbd85ff495d5bc149f956be105457c77c879d66760cdd3140efe14bdb00c429822568c74bee0a5985038da6d2f7462a506a090ce637fcaaa940429ed3a2e7bc67fa04e065893954cf0890eff1b9df22f93dd6d1b389cd9d0bd1c9db58323785a586999e4401de03c53b8f9fbca20381aff7b6d5435575a9d6219a8428623460334fc499fc2db46d0c4897ef9e3fe5d13dd43209e6896752f87e846a3642515818d533b848bece6786a6a342b6074e5c23912f9dd4d38912366bf0baa8b085b1cc8b7100f68550c733d2b9b412c8ff9031f29d884fa33529b18859e36e89709392543fa31e035e4dd98b90d1c128059dfa572cbcf897de0daefc91e3beb0422ea402a8ad8324ad8afd9f96fa023e1091ccf58848c3fa1fd98eb0287d40132ab6af31c444aa56a4dd404154c58045fc3ab2100fe398341ffd4447725a2db79be6b5ae8ba4ba265055aa8582a69abf241c5416faf74f537a16bf1ab45e99ec30d8a8f78a4b4b59e6a4c00ae6dc0a3b2181b3dd707b2262b81230acd56b0a6a3a11f734acc6c044e2ad710b180ca40c493beca3b78ea2b3e88503749fa468d7bb89445baa167178c52f69802bf08ad7c0bbb711cbc67242ca8bc8e5e3b22400097af79d7171446daa115138a8acb9c756c4a4a9a0c4c0afc1ef70e7782326d8ee14c1f873f6d9a0e27ef845660f2354340317999aaba7c72353baccc05821c29829af1cf36e13cab2893e7296413c667b4fdb9e247c2de009762c61ba0727692cb0f76f90cecaea812add80aea8d7506c147798938c657347be5a1c8c40a3c7be480e686bbd35110d4209b07fc40a24f5168fdf85382533f27bda9e0f70363380ad823cec60db5efd9448af601c801f9232434ddf261a3677a73ce61d40c27535aae3e4c14eae0ea93386cd20031e3836bc27bffe9acc556972afdc523afca44562d66c1cccd5fae7a71ed8faa3dd3855c527623a934230bedcd390f5f38f03f15fd18c456e5bc9840c72db92d7c331f830fd180b7d5f22849786b9694c414492a87d27365484acb8a0f511cc54a39292628472dac94ab62b9c28632f16994263129313ee2282f82832b9135deacade795b5cae318751710dea6ea23ee61fc5014bbb384cfcfe531e0e67567b152667c1465218642c9b8f08909e357d029a1d200518d5a430d5baac6a68e796e3dd26037197d57e777e499329170d8e56bb119f3dd7dfeb30e9e22b76fb2bfe30e3a3e01dd8c70b3b90cf29a5ee361ac1d438257ae2b81b2f6638d83502d6e3e49534a80d206284501996253e351257c4a568ec617a74730219a69e2f80980d33b407ddba9be169e9ec67c2ad6a7734dfb7c417cb3fa7f1674c51ae3312352a1f390f1c62199a879c8a7371873d7965360e95b76c53a23520d1aa536aa72c18a0bf85dc414c4d2bfdf44815fed07306a410711cbd735383dcc010dff3a78ebffa88f755a5c82c96aed69efec07ff3702190ef6e619f299908b0e54cf68f02e5719fc3656374427b8413fe3ad39df85f5f75e42bde3385486a60213c025c122dfbe20bc65ea228696919c59f69b6feaa95d58fbd290c8f6398670599f40689a450e157096903413a893d41b7b08594ff67725f55bafa2703c64788a72d827b95339c26cf6ce1bf471be074f013b97b49535a94cee7736317de496e7a2a1c3dbf5b70912fed8fdd14cf412f7e9090d440973c744972a4dd9516bd921a57d3896ccb396762c294e484994bf96309476866244cd15c5ee05c1c53975a556573e2fa236a9e3882b91e75e3e777a26fe1b99ed2125559a14840c61a5bde10807d4daa79adb4ff8d08c8483735e3feed1a9f3946aac120f13d63dac04b0ccabc403c03b70ea1bbb3da0188d9159c2c6a5b78647d5e28f1bd0ec47ebefcee6862ef30537ba7d9b9bfcefcb324829319455a173d6fcefcaa52e619efe379808073e8a822be124c66a946c7a33683c447db4cab8783dd31691656c94d56114601f8b5c4b50ada84971737a0419956b5c251e77e9c5cc414170a00cd2a36e64109baef8aac8d39dc9da209766a40c9f646b661c5d9047788ef7a857b40b4f6437d818b5dd7882707de9bb8ff643bd7dfb3756a998442ba1ab438cac53701903f06b8122e8fed93b5404b70b964085f4bb2a5460108481e82d303ae214ee4d01596caebae0445281d4abeff00a527c275ded3579414503c38f7a82189a0d582b2e9f42afe3b84528c62a25a7e418b63c876ef84f3fdb1186baa986b4ceacc63d8226a68de07daa2e7da59086a021387ff4c0c9bf6a4746caf7a2334490cd475df4aa2324455b698095b270ba1dab491751c29899ea85239296e60e70124e274d5c3f7a1ae4aaa158f3c00bf7f6d13a7ece60316b1fc3ccedd87897f69c71cc3599948b322e653546594a926224114ab72fe51ad827df1d22509112903f25f5aff5d21cd58342f44bd775c006f88df50ffcb90ee5f8952c18db9cd39c168f83f0dbcb5000c08d9e1f60a50cf20d22a153b749e5b174adf9bd17fb8411ce078d8c84c22e2b350bef04872a97b49aac80ab134a809495f4bfccce32ef10a83d9fb74765e41c0d6d4b15fa50f15cd23d9557c2384e0f696ec85fe96faf1cbb58fe9c72ee0219999797b7c2992abd30a793ebb20b49b250e7a54732d72d0cfb411500a35ab32260ca0501ee27a04f8b081b6a04da0d583a0f17c6d4f291658dfba3085e022e519a1b17ee31c997d3874e48cbce1566b32174dc64b587eae45031acbc12f5b5be332ae03c93f987570d10dfb30d08ce1a7f2566aac08fab95d7900ac5cd88d0f703aac7342ac5917243485b2421dcd7538d8150bb0abfbff32dd93166fff91deb4b9fa0d7a8cddfa8e4dc9d82892d4c3db4149d87bb11f48705d0628ba9e409e80a15c991acefc05ed90bd6630cc4bf6358416b9e5a872871c8f8e9a37a9dff043dd0bc055e7033ec715b9ccb16dcd9ec190f4213f58467e50865e85ca358cfbe4bcb2c28cb174b5cff0da6de42a73b6d2353a605444e732f8664a81bd5b3571ca5c891e6be6b743b4f5489675c025aa9785e8da4a2d6ebb495d1562b78d0b802239e683c5188510b3f15e98ae99ab843a7fb8d467c85a036044febeb01a40212e9877e99e56cdbfaa6fee4f5593145cdadc8fd64a17904abf963e5168b3e51999510d4a2ae1652e5ad94989b8f3e1bd31a43376c8c9e4e87462fe35d0b51fcb580d38096b349617eaaf3d2bf3b2a09ab434eafe4f56b46869faf2024a493c5d1e0a34acead44b7142eeb7f924e239cd9adc458c15cdceab6b8e595ec4a418e75ce4a532bf54fff27c42518b2cc55a8f42d262a2cf183951e58d741e79c0853ddc63c39aee43a54151a48d1c1f1c270d8fbc0a288ce01a23f3c1aa84934291dd0c53e1a0e259968bd4c9319c30ee3747dd3653d3d5ad4537c38710f152fac83257ddf5ff51b82c018381d65f7cdd1ee1932fc2280e24f72f784d52ff1e577f69f477d48fc4b17fb6d10184386b616bd4f939c05d572511beba4ff5c7ceeac8a515356d22955564a16c21cf0e2a769d775d07c4250fb883fac6a101a04b6c80799253f598ab55738b51b160a0c4653e503c561d388a9bc0081d8fca412e1d018a6cf1482744b0403749aa93e6d0411a2d971bb870400a5c6490f2615295762689da1c9b25303088e598bc50b000aed5d66e92c00c3b45e8764068986860646bad696644a2160f3b34e0b450090be4b0bc42a518cf45325e2b1314c136904e99e0a068814a77dda49224483e17d0f29084a8d103e4c2a56afc410324793e5b7061010721d8b1f489128d00814f11e4556c7d7b5238df96064220644912d5791486811a35e64e7c648baad74e0bac6d1dfefd14a01a9ee42fa328ab4a68e547126e970f7cc52d9094a9354291922b952ea2f4b3cb925eb7497041540e06662fabb645af966aa4e9abede9ad66e9b2aff4d3f474e2b8f4e856ba7bf8fa795b3a7d2af4f0f21bbedfc40b9845059cd504c88285bae2851d0280e7a94e58d94189e14f758ca6a963025604aaa8ac06db1902d1b97d5900f7bf9699f3f6e31e75defc0153af10a6ce7a104542eb706e18410f40b7832debd9d4e6e9fa7ebe8f079b91cdc5e0f97a3ebf7723a3abd1e4e779381f841f806113bc688408584d729b12f9908be4e381a8a31679bcd446a9a8018a899480797a622324ae15efc3b231f9a0fb1032a10f7fef80dfbf05533f6eda04892199977fbc9d908baaf0ec00addbce3117baf2d621f6186b2654122c199008a48fc2c9b6c8e44a461d34449cadc26c46912e1cd954c50f211471ec994f0bbc1f1cc4a56df4ca065c9f354a214e312a62f31e448741113669518d35626fba65d9e4213010688b9d6e4cd83f43bdcc425339634e2a44adce10aa29359ed4e9cf424e751977d7df2ad259b2e409967502cdd1c14321412cd769f4491a1f300218ce2f628c957393724c52e0e873a550a134cb1c67644379b62417c55b5f314be503197aeed432acc985d3e399585565c9e52151488e9759b56716cb0926b56c84c4bbc205b5922b952c52b7fa55bddf02b2e112c14090baf77ab0f8a653d79ab65c882f6fc78d7ca528a9ae59b3fcb6a6f6a98e5dcca5df0f5500c50be429c9986348e0de17b3b5cb13c3cfe0651d20db1568744853e89cdbc13033a281a59f11161db478ab516491e84a41d49641a589161e847869ed0a8b0614992d18d044b4e828f3c9909186538949415e1a92c04adb23c109649305986a16f590f91cb32a62f8361c04c8516b31e77ccd2786626a29c59089e66186b95346358c20564b9eadf720133ce03a32ffd40eaa4007fa7062b9e32d8f62420e05300d84f19a29a4db504f53a701382ba50148c8652f012858251140932a308908d0280825406245208f24941a052aa8074a901064c15e03585c06eaa05ce53118c4f018043a50029aa0e5ea932584ca5204755003055034cac32f0b4aa03fe2a0928ac2050b36a80a05500db5630d05b69a0e9aac1b2ab04e65e09087d15800bd6044758167c62b500164b00842c0044b27ae09795606556e0a56b4f05b42af3a5bd619cf60497b50b34d71e80b33de32cd60454b71430de2ac1069706345c61d7b33d0ae5aa983ff794715a08a47551b0b02b766ab147e54943185911cd7804234dda87970ee24db202545d444aa944d5049b55f0548b1ee682897b6d85b0a3c898ac54560b3b5325a675a16b01e036fafd0d0620b7bed01d8ceca433bcca514fe9cad738fb85dc01298741984be1e27478764b94fc70b1aafca8708fec1c2803174bd20913e2a6b939725e17a5b97432796a51150eb7c37f37952b6554a1ac08fc13f065bdbb5d9e5e5fa7c3dbe7eb76bc7dfe0eb7b7d7c7e9f6f27ddd2e2f9f8fdbe5e949f82cbfd800b28f2764c9585f4d7a5b85a20dc3e0ba7a0b6c03a690746f18d8e6ff216d6e3cd8ce1c036c962db41d9802a4bd63689b9f0fb4bbf3601b660cb15bb6806de00a91f60683edfe3ed0c6cdc3ed9831806df942b6815140fa3b0cb6f1fb503b370f6c63ce10b66516d80e4e0169de30dcceef03dadc3db48d1906d8975b601bb0a140253190af32949b6f035863429e912cf2f45d6997b785981346b1b0cd7ae02a643ca15edfe7974a4ecfb731a1867af9882d805449fe826839efdf8a1c9cdbc9980ccd723c431a5eb93098d852b718ea104527810797a21072a0d8061fa66c32e309bbfae1bb665acba2ddeac65eac90d275499bc0aeabc87b07b6e4155b1b52164c3ff1b349bc1ddb7fb110e376c8fa202784aa0b418d7c802e3edbda70dedb1bfb66177cfb3563ddb91fef9636dc76f7c5bcbd13cf7e6d9877edc67fb305b77dbdb16eee8ebb4f1bb61defb63f304070ddc7e7d53f87c51d8f4a1c6fe29498c48a1f94d4fd5d1d268009f93121bbc96331df65f5fec4c2e2172719a98c4719f50870d497d2d57bed439dc03bf54759529cf5a652c54ef6a14600b6590089384af8a34ca58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20471d6972295faed45a580f7e88d9ae4f1d5931a55bad98b8ac176e88ff2a471d593e21576da87228176ec9fda28e8f74abd082def439148ebf54e25c668ea454defebec498d24a3e98d8a6438ea4ff9aabbec41f10077ea8b2244f8eb4da58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20438ee4369ebb5f4a58ee2abf44c118628eb43114ff5f6a652c263f4464df2f8ea498d2addec45c5603bf44779d2b8ea49f10a6077157703e8960d09a0d11b4e93c399239a68eee74fd4129cc879b59f790434254ad51a278295d689016b75374f74e97f9d3894e44bc4a7347d4cec4bdd17c4a7443e238e4aedfbc5ae04be222ea5e7436256eabf271e4af21171534adf26f625f705e2292d9f11a352f67df17e25eae1a38e58b13213c8fad98c4f40f3794bd2f062d77c3484f6e15afe7328721032e9cb7df1527a6a7a985ad20de9c3371be0f9387ab05185611dc879da7b2028bd5d9e68e49af4c367556286ee33142e817608988a5a8d10a726295ab31430c7de54f6811a6b22d71d54fee78b4fa5524e0810326d93f5991af62eae8fa9ad05e0d824f15806cb652635da6e60d5174bc6000374f1795f98ea65a912bc77df5e3dea0d1adfffc808ab330d878aea1c1d98a12027d183d84a6f121d849e2432a30b022e82395d38aeb6315bb4258126213af38a855a6e8fa5104c2ab13278422ee8d1a80054f120053846e6fee50da72cbedf3644783a25f4c16ae12059bb83710d8670cf342e4ffd105c3581685852104873a32046c140ca9fb60858720e80a22eea06270805391b0a84741cc618d070ffeb21e0ab66e26051b9a16d0b82f0ce06284efaae5f3d00d0d535498b873d5a10a1d420cd488bf3b10f01a022ea07a7c807b98d0b84f51ec63901a89275758e424153263724b68b4b4d5f92aaf9f2dd0e1471b31744f884fcc6f612aec318e1ddc983b5782ff6a777e8f7e4d613349df7ba758bb013ba27fb2694312fb4c639dcb201564363c86b95bf2417629950bac2ec2f897fae30c745b905268e3ce6f93f449daed8d867f666fbed18d620939acdec110ea645cceab8748d48aa3f5bd1f2fbd4b5524884bd5dc7f19f7c902fbc338042798c1f18b476d04e963502d14392834d48e6bab936a8a21560b9c71951e3b916b7167d5b967a1fb9f815a2cbef95a5edd0f138bc32aa4fd1808cafa0299518f58413d3e2e23f29da2391e0e63021a9c3e088789536fb69b877c30bf2099bf46a5f69f77172477b6eb70bd74da74482fbc91ecc7c254a0ed764c22f8f603c2d9d63ebef619ad59e78ada5d2d14e885c5a38fa0001cc380ef4c863e8cccd490037ef79dae9076aa579bfb3bf566d8b53cbb5e376dd8df4ca920cc8981e02f6b3de07079806a8df9e4a4fe4baa16de681a470bab6fd38c14a8c2e51fd211f0b765e04a1dfdc5d32e4dd6bb768d5382582f75e9238e99082f5a41496e606a20956e3db2a60e8f6f163b592489b1c1a89fe780c669f66556d01ae76960e21358f732be9f42e0c13f54bc93524bf6abd48f5101ae29138a478d84060ab2d6d5bfd2a994688c980ad382faeb983eabaa29e5fb1fac29c6bb941524103ce6d11be19e19a47c43ceafa194a670aab581a4f42ec66e4427742ee48e022055b244c90523ae9e88d82c298b810db5dc93dabad90d7f38c2768c1a2ced262a3869f9c01c6ceb08bcfb908ec7585c218b13ae665d00017c04661be2149eaf78c536c1fb11f0f15163e52b91a84a92c8617dc5f1a51617a67e53fc75b7b1a08c89942acc7a2a4855b64b8315d3438d05f46e2f3286583af2cd46c74e907a6e8bdf19e6b652bbebb25e25b52bbc90d9cc1e5bb51cbac50f51d7d873391d40da8d51ae03ec29c73a5e6ed79453d6902507c70627d9cd21c7257d3774f515af834bc95cb397862f285cd6ae45ca75489e0cd8a9c06d19c806b720a560c9c00fa74e2216cc40fd1233f6c9c525477afb997015b3d3fa20a45efd05e4e1f572470abc87b14ff418f974bd6dfad1491fef1fcf79dd07516850fe893dfa930f89d9c0ba6a61fc88b93417f2a5eb81ab79be5fddef779428f1b80e6f1adba3dfb410137c50d54d23738ac93a760030d7914767c851e7a8197a46062860e56a169ad4bc8d3a7414cbefe653701a15024f7e10153255bb097e84fac1a2291b5c8749ed90497d6f6ba2ef1d5b00809c26626cf37fdde48b6fbd5ddabdc28231fa3aab18546b5bffe5fee68ba0574f9fe703857195ce1365a247049531c01ce88bd8773259f0bf3a8e020a1ae6d7ab995fe632edcb6d87cc3e8054375bfd28a79514bdaf9e77c2c3c65501633b82e60e15c8ca691c676248f31d2e2d0be07960255a45b4800d093b2d23c35050259996252a35ad388c8afd3caea1ef8899c262b3185b9c25d2155797f455156ae70ac3552f8b01f4af3c121a0cc672a41aed59b57d02a1745a24b60316ca9dd6f02e5cc80d98ec45cee12fa86a35cfb9468f9f3bb5c3fa245a9b84f4db6ad84402570ad2c03c31c5bd8aabeca94b200cd7c9ec61f12922e29614045b1954e39001a74b202c2124417f04a04aaed8c7c219458f946890f2214f0e55dd73a30fb26d665cd83b496ab3cab83a9e8b4fcc2488b9ccbb66e070700c377d9668ac44e4df1ed689eabb2211c9c050e139d01d7e5db66e4eeeee01a5769165bf69dce06f31b50ea42658d453f2311e751a769232e7ecd68f90e63d2e60f04d395958287586ee37cd7f7a05b0e9e2d67085064005a2a81fac20a0a92036e95bcc1875f3b00d8e11405d1b921ae804d203118c9df4fe495106981f9e49f437d646a8dda1513ca3ad71b7a727a8869ce0d373e13cafa9b180c0a94df546d14dc8a5e062794b5c8857257f6bc035cce915f45a58c2394951a00a43a397f872f59f10f17ca1eec810d185672e26d6c6f3133f4f5e93f8c7355e53631741fa473b411b1a8c448c4b9b66c8ab95945d34b8a26898dbf6d5ae2be0e09030c27f69e9f97e0425083fed83f3ea34e007232d3799364f214cf30fffc455d02fe86b6ac8c5f437e3290e712cd336d2e2415bc0ae8ff492d1dbe98d043f2af4320b98c4182182805a45a669f370c0183321e8631d2b76a5958f144e379e48a955ff8c0533d4c9d54fb8efc8720d58bcec1a8a57aec326ed03d05b2a5f657735a9dbb1422b0032801b7ca82f649dc2b99bbd809a34b94d801f7b0d6c5eab28ebe5472c3a9ff7ac6ec91b2ee6a8affa968bfd1e9348d6fd319f05264fa848942c7966e45b431d796644e1bd7f1f3b721aede7db50c0fe7897c180e161c567e0d99ce26a171f8772669897c25911cfe0d54405c17a43cec60e8fa5f668149880d2ebbd2825e3a58cc6cdda8c6d10dc84c480971cf7d2415a9a9c3fdcc5ab2455ec50335c4115226aeef01154829f7841076863aaa7345a46ba8f2cfa0bb86cdf8b7fedb5af3141797572b8c74eaba3ff5ba3763ee3ec8f623fe10b172301a77dfab931c3f30d6bf2bfd8dc3cde9acc3b64c3f7df54888e3ceab3976a16d214a716afeaad3798797360e423dadba63bafdd586e5d2fd9d1bb011921935b24a0bf2a1835848995ff527bf8e593e01a3b80b09388bf81509589558ea6cd947c5e91517649f39347db76d47da0eb3da51d56c98fd2fe36be3e97a9fd431258e39023c3443851ddde026cb76caf8a780909cff3c556d7392b04e3f5bbf709a7953406b1658d86c3e759372da61e36af940983583504b7d6c9c5aa91842752aafd8d1a0482b44612c4a94162f5918a959baa92bf015bcd1cd4d66c40da0519cf87985041963a8a56472c6d5d966b8a497934ef279f052d420878c789d5700da812aa779d8406044ff068c8762492111fd62b4bdaa4cce6070c1bf979161cd5854655442111435b9d70565da6bdffbeb4fed996da58a46690f4cb336f49f63009f688a8c2ab318a28fefaedc8ee48ad4ea90ec8a36945e3106f8387941d2a8522b69c783d62964dea30cdd183a2df8d122d1c8caabe834cc4a54ed02c549d51d65806f2b25a57701ffe3af6084b3ff998556476f75ac59103558f2831aa73c6f052cd90ebb31252bcd1b5bac82dd16fb526a315d6cf40ed7d8f5d7dcbf178b764ea8aacd4919df54bab883dad176ded024a8a1dab5a7bd2f217806e80ea412a2bc6e8ddc9cb709786cebfe7133fa7417ff40ac8f57209c8083eee720ad6dadd2fac083eeadbbc0c2dc6ffdbe72748b72fc4294f24e0653bf2432ca020450717ce65f2a5f35d95ade716b2d547daa37a5cc3a7cd96b112e3064922fd043d4886f0ebf7f47eaa9904cbbeff230e2c2049b2123a0ddf57caa3afd31c35dd104cdf78db6454d0d4fef1b3d5fd206cea6215135328ff37740c2141be070fb2c5aba35814970b4839a345cbda187555c76c0753cfbd229f4e0b6e2482e125dad262ac51090202305a562a340dd4e5ab450bd72161fc8d61a899f5758ef50f8b5d9d5666b03b86d0ce8e6a0555ab7c157611085eb44ed23c2fa90df5799b7be69d8ef3d782a37e5c68c1f7fb987fa0d529b3e7afff86f1ea908b9a2b8dcc215bca87f03e06a26b01056ed13d04a2cc31192c65ee0e3054203b7c4be84bf0e88e43d874ff46607023ef425d0c60566dd1bfdb362acc3433aa690b8b08ae092aefc1623794498ca4b9d0cfb71d0080d031760e52d5c1d63ac067eff13224ec391dc16a2aba684da81c5f39a2c8c01fd83631f16106516d62a0cd0c9c2e176dc333ac4a81a293c756db166aa5784ccf42fe8f59d999883572993a07039a5c0282626277179a3a01e01effc84204f2ef5b02b26d2fb1a5a902f9e1cc7402f4cbe758465c2c0666d1ac1f6c1cf53cd47d394656854e59ce25881a90348746a2e5cd5346f35170e6b9adf9a0b714d97af39d89e67d2ca5de1c74ad00558dd5682708181add4dc3e9f4a0c04d156fb50ad69c4e078d3d6752473a9e2723ff30cea21741f58d7d8bce03cda24cf90316254a090f5b5ae71e308c78b063a08c299c2553d548975e100884afa9b8a3c7322b8d1d4ad6ce99a8551fb5e80309542840b4f059eb9d115cb3a9efe03a891260dd5b35edb0f8123336d301010bd362f2a5ccf72fda11d6a53b861c9126b40492573e256899949cc12b1fad906cb73880f6b6a16d6641411a5388d8e84a50bf8540734151fc9f8ac909e87233b6475981489892e32052ec5ca16b4c38668ee9eac990809ba0a252854800422166e03ac324429756cc6d73b1321a5a0e3eef8540d8750b57423e9293954b8daaab775fe71b538d850b9ea6ff426de4d45813a5313c621170a1a662964f2520c764b0531d4ea20ebfdbce53c1c4d1cbb352145d70bd51e95bbd9e93620111d121d6825a43e3174a4f4119af4c2a2819c46906d7486a621fe0946559a9847b65c4e6d0a0fa72ad46dab90172bf00d3c6c440c773e04b1fe97a8856eaa5175e8f488610320fe37b7babae768ad899cb9f3d07112d45e10b48b5e2aa37a74b34ae6fad2f11dfd4bed5fe714485c27c44f3f38a5da983df7f005433d494ba8a8cd095ac796154096dfaf1d9206429e9556b11ce1c66233e1f39d85e2363ff4643b772747bc7e33ce93923f2b075d954e5b8ad0d1cc1bc78884d45e0231dcc4c3011ae2c4a45129cf450940b6cab3f9e250f8a70af0ea69e04e85ff395d8f50cc3a53ec229fd3dd2e0add0caee00aad060a2c81d16266c428068df0bdc0a2f6530a6022fb75e46a676ef435123cb6fa3a4aeff571d8d256df8556a98f935d821a16c880fd34dd620006ad985ee7dd1cf7f547c77729e01a20db8e9643f283a5d00a79542d4c465dbad0b2b266aaacd74fa25d23268da5849436a0aaf6cdf456f3f561a8b2b8edf7e9a1936aa771852d7c47768ae88b0bd1ea96c2f8583bad27ade19a7482d763d371d32d4eb6c1ac951cb324d5e76820472ec26b0b86c2fd558e6eb731a1b199cc4dbdbc8bf4093baa52ffe367988734b306f1e72632354db70ebd7a98c9471507b6344e4cae206e1c68796853e022e6432f6bfb6f916537db46968543d6d0796d9220de2f723e0a7169a7bcccf6c63a96f029ba05f3b67fa567e6a98b9199bb23c80622abd2cc0d9234bc2c49cf67e1f922eabe14a46204dd4e5f378191f6f82e0e86bb51a6b71edfe2c449210031f6e4fbbc9cf99f6a8b0a96bdeab57c65d3365d77179d6f93b9dae1b193338a17e4d0a6f86464499646fcd3035075123f867654e6cfdb43c5db9cf4b640a91c94df7e1d6dc3275eb0125b8753633879f43ff6be28ab445b840b5f647218f7bac84f8d8800a220f045a1b7382f1ce1659d8d26dde52704f10f0f3b4442b74f135e07d025e82a8d0a283dc257d9087adf773567054f932bd1b241f54b22ee3b5220e7a1ff7da833184a5150a8148c4a6578d3db732de024b03e7edf77dd038284073416d201cc58dc9476f7b1ddb771cde246012a252cf909ab331de3ed67a6de273eaf81d6b84209ab0a779b7f4a5047603bd5d4a2da10d971a7cb917ba55f3e2bbf4c65ca4ad5f0efdd724cd4a01d9f5737a512fe155366d42d555e6fe297f61ba981fa6d8799529e7446e30b19ffdfe6a3409e584381b4b4d4042286b001ac114053f307fd03666efed038af32e1697786310c2e0e5cd4136a87423c9cce3056928351636f7aa77b10a3ffce918f4c9292b8ecd68cfb2f215594768e212d4e0f52d50a229ccd01d8fc7728acdbb56a2c27d011188a58a5012d685c064a19f32c2ad762e16a33c0f55c09f2f5ab7d30db742a351c0fbd37723a9a007d1e715420f5b577d45d6e7014bd8bb9b115b14c1659ceb6c29e4419b2b127cd3ba61bf12cda19009841c21db53cfaaac52e4f3e15431c64845b98758341e60cfd80bd8d61a50bb5851639cc86cf505ec63154f42a523f74b568422b11d72fbf14708246a9621aaa5255287e9db6f47c40a710df93459d850948ce90cde2f799f6c4a27df21474cf3111904750daf99dbd320f68b83ad02e8991f46465de9774e6cef2ca557a50eba0a97891da70398e309705a0ac2c31bd53e120e7852481b8c83bd8b61e238f5a4f22ecc14288b165e220e44e0f1c06d3421cb32b6e855eea59908c203ba3063b5332b47c3fdc79575ba122d6834bf3f52f4e131d0a7ae0faa90d5fd251e087f003a503bf47a6cb2306f9ed13abe804f558ecfb5606f44bb9cd81e4ffd0e94a7cca5e82c1dbd94eaaa0997e314ea867570a4416f1ed66888df1cb597612bfd4ad0aa3304bc34cb50fbf419393112803497005224a8d3b5fd07ad515b4d09ff23c384a85a8ec8855d8921ec92282ae263b0b3b12263ad343df9f532e2bd7c1048a7915bd39d9ff88172899fe09a3dc6505645ac482e368c8d781a73c4df29e8e0af6b696e2a918d1ce0a6134043f8f5ef8b151c1d856b68f67fa8733715c6a7b1b44decbc45f5feb0922cf8dda125209faae65f887620c63b7aceda27d1c03f56d8e43cbbe3d0486ec6fde318f8a0ff8a7863a19ffb254190f8cda86724a553ef00990ee2aff00e525346f5a96241ac4c8ca4175b3260f3a01293e207f7d5fcfb76474f0aa8266238fc6f4f88c818357490fba72d20bc9baf003587bef4e97bb470d187127882cfe95005389a6cdd77181649ad869f83256604d2712507c353ed04d3c3130a46c88f00adf21cc5d4c9018d0d9a77d05242c9b9f0b0e67012a3017baa6bdff3691ef4bc367e303d9141169f271fc4098222ecdbe5b231fc60ba4c9c4a5e193c67dd7a87da089f75f121949996fa1f991bed10551706e072abb0bb7d4f02ae70156913924a71b95f6f6a188b6006421ab3781bd001219660ad1576cb6ae70ce5ee5968672bdfb5b04926d125e4655924445837d8d171813894e5bf608543e8f1d3853c40bf4dd3f6dbec614383101fed99f5a01ddfb063586fd7ed0b26f40fe54f8e023ecaab8279ac15ea8ed63046382f279d7dce47dd5b8d8e56d9c99c05f427dc326c0b9e5c14c826489e5b6218af154f833de7bed3758f57dca67d5629b05889899225d2883e4510db2db200d9c4effbdd64b7b2771159e5eb40228bb9e37bd2b6e34ee7610f08c6cead879dd0c61420937b117d3dce2c56159333d595b7c2d78f8c199535c9f2126d402251aa5115cce52b3d30e12610624b6e251e7c0e9cdd02bdf137f96c9e1dde78f94cc4f08e3ad092501006d03aa88c27dbbd235a6ac3e94f730f06f8c9d1ee3bb9e1f37ccef4391b7380ebb379d7033033d35a6661110537a0ffd434bef75f05f80ebf89f5f07515111a667df964cb5cab84a402541d3a36330818b4180831f9ce72cfe19c8ef8dedacfc96cd69344b7d5a8c84aacf9db0f224718b56543b2354b80be9f8d9dff9fcd06af2820923967fa59b4f2d7e2a2381fa80e0f46c63c2f8ed2181f64e9e99fcbd836ccca51afdce3df244da96aff7955b0643d29378982dd8a6b3b4568799f70b790e8b54976cc709fb2d21cbf4562d3723a9879efa245709249129e68a2e9778c0501a47dd10205f2b125dea9e4d54385624b481b25a61675bcb32b7bc9ef3b864ed43fb2e8d77f089de1c1978ce72f2eae37e0e4d49d0ba7790bae58d18680b4028c9d28932f73fc685eac7db735e9ac9238291482b9c089b78bae73cb37a93fb2ddbaa8072c37367259ce6f10b492fa87c6dfad183cac987ad0529df118dbcd8821f0e479612eaba49c8ffdd94666b2eb773e1432d929183667d44ba5f80aaa0dc37e0518db51a80b55ece22af2d77f868fcd0a506c20a67eefbdb36b70974b8548376b8cfa5f3c0f13496c3e7a05dd919b952a8bd3cab308e8f0cb29cc9207c37df990619b167951a62a41926e4057432dbecb766650d5fae9004a9ec88d11544bb0064ff07a5665f3faa59fbefb57e610115618960de323f5d3bbc534ccaa97850881003cdbc3d21bd308cbeb1dd1779a5581f63bbff6cd9b9c6f565027615e285797ee6dbdcaee6e733beeeb59f2c43656e8552a8074303d4165a214fa918fdc16efeeef9d950363db441764122c60343c93a31e11b634dab351e35fad2f2d01930bf1bd037d738022a93fd06f15d81b275f79ccdad1555047bfc6cfcfe862e19d181a95c0279ce83e080defe46ac71a3af4855ea4ddfcfb6344a53f3a2e4bfa29648757a1eb9e5c9c52c1f40c7fb2da5a025cecf2a06c023fccea567fe521d8d9978ffbdce122923d63504442a6535f8c86a4b19f5d8c49c27076a145cd9bb1f2f80958fc005666be5751545624d5398b0fad8d191cc89a05396fe37b142c003dc77a076eb0e9ee2002798720ce66336d138d17ce5d6678177c8ad6f52a357f50bcf22c5c071ebdf0b268c7cedd61bf57a2ec5d607dae30efcc619373909684cee288f236a68b77e23c1680ca5047f47912a4dcdd848886f1dd118ddd2c58295a05c81b2a500ce8dbcfce65a6704bfe6a1f9094ae7c074032017ad306dc550960c924d74cf50887deab5c6ea8eef44d99043b3d53142dc42d8adc722263f1d43d1d0e68a233c25b97f38b61b68b6ee715e4874d03e70226de0b6b49c3ecea5fb6210e64295721453538d187b3bbabf2d974d8f7f38abb129d0703b8ff4ed38fec434f3857ce49db3d359030d633b02f219c0cc751f7499904c74185012006adaac4131de844287bc2e7b46c80a4314c5a9f61b41806a2858ed8e665a50d296358c39f727466a82442f37fdd556ae07b615720c0e9e7f4a55241e4941ca346953fd2853b6e8014c9e9e1b78be4a568be8480118cf1fb559c6f0141a54cef4311b878b7b41733ff64be58fe136ab9821b0953a2abab81e1a51df19773bca4930e2d267b9fc9492d257028fb72536e0d61a9f2dc1f5283c27e668e07da533857c9e2130bcadf6b23dabab588abca7bbb35cfe4ee59b768da6e013a2c11c65d2de29532726082339347db743e70a0d7ab17c28d62715e07bc451106c5d6555aa4e2c359b5e057198712ba0a9ed149321f4bc4debde59414ac18240255641069b6367ab9b15349d4f09bc1f6d0a927c6a4607047d45d454c23a4599424c70d3427dea15b496889dd5599b1085ce83b1e99af2613e38a7bb46e879cd35dbde6643535bf2ea61876fb76d72d6755a82b1615370aed8ee6b99fcd36645a4dda77045556b16683be759685af4be6a62a38d156c296f3b6240ad8e34080b739a5674b6eb3ec97ae127a6dcb41f7392392726126716e9010c2115ee8bbf6d0dda79d7d2d2a4f7fc7f45c6382f476f6a45ccdc04d6a1de030a50c4bbf9b67e43d702c3b5226e421e9f35e374c5d909e158ee34870ae37d87359f4be9ff8895039e8d1a147e233edbe537f1393119584b7c5ea40e03af700df603e8e5f54cc09cbae0d97a150ec56719ea421dd292914b9cefe90fdf331ffa20a9f9a7831d1eb667cd035acd5e360f4c6faffad8da3da9b0554ac0b1a3874a69a6e35135cf284dbe95b03d716a08722a1b2643b2ee895d2e8ddea05b92a7da6020d482064206072d175f9fc2d4098e02baff4f0f29bc99ed2b6615cad1ceb265bf55778d623dcf4078fabd22062da3d1944b81f35f40f7c306264648d1bee689f51e8a4fb8f0ff6ba2d92e5d1d20e0ec91c515a13a1fd591dba6041ef77b07c9c363d4006b01f10b8a025d6bb9c5910e0dc2f111f5298705aff0aca5894310fc5c7b19722b78641a7c16cbf2e2b73e0faad6f6a7b0aac997dda79a008f011dccecdf3dd607bae52aa895c74bce32c98b5b70d0c9b241be7d3cb0a0cdbc88b19001ce5d5e17356781b4f7fa3530184f084f3163a2398ada27bd966b8c6e92e46203a06edc8a8adb28fc3f0d70c54a41e3c14cb53b3df28a4b2556fcdae169b12cdc2609516305d5a6743f19955e29684ed910f600e6562700f5db7b4594390067f075714d94665e9ee0b028152108df0bdccad92cb5b74c1cc77e58a662af6f0e56b673926fdf6defc2cc1b2c8fa0fb8e30c1b167e1cd33a512a70ac1e81334006e6481911341c33a2741e59d7ef69d467b982f3017636ed6973b3e1581218cb9013a447b02f62813496a388ffb5c8d477969c867406c1167df8100c7e393a2799c14194d68d6392673536a4c3bd81a15c757cdbb64a4605a8d8a97cd7cca863f1f508451b1a505464f8afb9b53e793a9977e01b22f5a1ebaf1b4779753e315ee145ffe1382155fe760241a9b57dea5ee50c8832b5a4a91f91624ff23b416e96526aaa5f1ae2134e17f269a8dc9ced28e920c2f0de0e048661a5b1a4606e47344b37450e02d782d4780fd188598f12892f9c166809a75f082a6bbe5dd58aa59198d00d2599d84bfc1bca31186ae50c118569049d278cc6e6369f54bcc7216411a89cc942364097f03264b79a366a5302eac2de0e3fb04bc82123709da482912d8ca3661be1e3b4222270b0c742005504d47a8ef873434e5e484b23e21630ea656aea2960d4dc2ab907cd896a60e698aca24c4fa2b8d48bdde92fd93704b043460046c25debfa12e4a7fb0112f0325799c6b37b86c5febcb72acb71b155aa7c5ab582505c446464e524e2bed3f5b209697a0e2a40a835fa017192127a93bee1a2b367721086c60b0d68a86005e037e6aa0732b204bde4ebc4877c6753f47e4a2fcc1386b1d60e8bb6d2bd29329db813ffddd9a4924d3ece011487747904848470988adde7db9a01f98cc811bd23f4d323e1fd2518020079df253d0dfbf2acf39db5ef08bc32795a80862d7ae0d9b2cc66155c76c492b5abbfbcfc517790d5c2830d88206582a5ff711817d85c7356aada9eca9ebed680afbe535ec50ee0290e7d0b3476bf8e046c187c164f3b2eefb15f38b646f9dd4c1042306a765fd0b1ae307d37d152673a88f042403aa9481d14a8f54576cb769434bb24090c913ffa39e0a6d5e0dda80518c479562ff55c313ce4275835057f05d0d21f9770c3b19c00dac08ef2122531888e9d8438e53e017ace408b070b74baca8869eb4225a97bb3ed958d2a0ae3500fdf4531a23d1997bb0fb7923b7bd139fdb3c5a00509c121e5da12c44d1829c1067a42dc3d7abea09b2142d0936457dc4637f8b5bbe31e27b5a919aebf4cdd77e843cd932e2e4d614268b4a0d37d39955dacfab19c605a2764fc758e08b73078da522578b554e7c17c8c83fc45a415987853ad991e2a139eb789fef1fe61cb7d95a99b72429aad52ba1f3abe267645276009f4b54546f04413d0dfe57c4a544bf18021417a8920c355eab53953eaf7ee65a5db3370f194520abd2fb99584156fdae8055dc892e55fd72adac4be9fd457455b66d8c8f371d9b3a46a86f42c061dc5b0541b858b8e31ecb57e761cd1ba01f9aaef345ba33cece53433bb3c8f835242ba834616d06c3b6d75969756624281eb6059fe3c60683ca211358c8d3c8f6399d720588490fc59e3c9178397c4e2cbb7facdb1666f7c6eae04cbb08edbf8b80b86263dc99fd7e0273269a40bb6c44c8fe59e95024799fba17a3720d378103a7a002d68c99eaabb23330b586f5c2a1331ecd5bf799ed55ef49e770d4070884a2f7f28bb7e4720d4ae2b49f747090d4f04a483b137ffe3b9f8339426f68ea39b03b4f71b27fd0e6184c0ba8a99e2c800cfd6a6ac818922c0f8b65aa175826fc317dad0b1e4f03602e1ea331a52e3d6fa3e69154d223b16ed8e95df075fcb6e7b11dfaa8d261a8b75cac765c81139480087d02c6e66ddf58dbc86d2b6072136d7169804500c0f64cec47e84f315e1ed4e15c44b01a7a97773fd9d916738ed06beb897de8e8658e199bf6c3dc3cd97bf767e79a7291b937f22e97cb95b314791e992c9eb325c32c8ebb0a81f5073cb783548755cadf758773fa6eed12fb869ddb4176dbd74c9a71a46c44a88a11bb7f23f279a6e2919ea6dc03325413ced8fff3aa66ef7ed61f64af0a73e2cc1252a7906a7ec29fc755df1d74e8d1ba63dff436cbf53d0f148683da034d88baf31b682c51b9ad5174c1b9603c7f756942ce763ecf557acae10200ded9059d9f2f337bed276055b28a20ae621797bbd57a992db8961e8ac8df332e434583b3fe3f9848a6093d58279348fbab0d6215485e6755cf11c6cff5fd928f30e67f9b908102f7fcf7cec99bee70233a6b3782d58d3cb4b553e73f62ce14a15c3c1e826ecaa61148d3511ba1084db588c10aa385b7b877ac572e0162226b64b11bc4ed455cb33819dde332ad2ea60d26b349fb964ca38d87ebe7d49ca94f1c1057c85cf35f9c6ef31094534a64e24f561ab9fbf706cc4164960c286bcbcac5d4e98d2d19475bd2c7774ae211a01f93de9fb664b5b301a8ebab9f62158138fdc32f3b2374f14ab136a3ba839f7f095942ff74789b7ae0dfdba0b2db177ed7d651ed3b363bc96108cb108921102e2b31a93b1d6452c253188f923431013a283577fa344dc500b3ff0f1740d1022ad282d5a11e86bed58683807c97486f258cac3f8ba08eda568aa3556335a146499bccf78f34d5721963a08f3d000e380d38247a5171cc67030b73b12fd16642fa01cf1e8097f1821ec9a6e0b88757b1df42808287419b862f25aef848c45daca1d03d0e082bca82a1967176045870f008aa64bd119bef934cc987747f608e2077dbe13b7fd8ad6924fb3a5a22b9f5a770883a4521c7184d2e0e0c25bea6ff8d0f74ffd2d6ce29272ce6339db953b3c96d02a5c1d0de81d881ea3bc703c5f12d0f72606104964397818d50376053d220e1e4009c0d3a996d43a20d85a7002c1ca91915101198bd5735e794221267611d59379d5203ba3da6f9b502deed70cc930669ba33141e8914c000e264696886134b63651c33bc30130f8eb92671229ba7cfca9255faa55164f667a1594999ef477366833429fdbb7f4070b6005ee6fc73f3538c4882694f5bac8e7e3d5a5e74f5711e348479e16fb4c00b4bc9083548fa381d4c220f38bb53d0b540fde9b746a7e5419580757c78e6ed40a83385a442ae3c425205213fcc9b62721b4b2749bec6d56993b23c597dd3db0de52b7a6dfa22a39cdfa8713211ff1b98b6d7cde8aa776ba27348a7dcd6218c28046cace6779f284b5d7f352b83537e484b00bb3bde41af46b105fff152a1400f0ccac7ab5a340428b89d4db15f0790de0a5866933abe5564ec7de4a0244991fdb05a2b8006ac4cea019f36e42e8f160c2c084aa8b71ca41f5de42aacbdf921c5be7be8fc4919c4bb7c56a8f8519e3fb08dda2f123c8b9dcc80949b9c7788b503ffb80ce41df866f8516bf8b2ea2722c1632ce0854c4d7af186e40e8e55962dac76a5977aa920de7327aa8fbdc29b31aa2118622e17d5112f1d0937432a9b9aa639afd5441957f76402df3fd0c47b3dd0163e7021ae659c12ca6b21bc018e7b026d1bb406fa75037741976b19ba2bfdd83262a7083341f1469b5e6390604efd157c9b64006cbee9a9f6d11d8f19e896375a8e75f40d6f3e447806119b95d4886d83228caa97359b04de5ad15793802d29eaf5379ca51aa51f5394f8226a34fcb729a61b7fda493146e6786f916e51e08f503ee0e25f76c0676380f0d3cebf4708fc7644c1928fe1b2aca6bfb0bf405b65de3b28f381e4d81d825dc0c661c01c58ebe274f2b36a3212e2ab4d4f7fb70f5877484fd83a1a563cc749916dcbce5890ef6314aca041c88ba1430d9c79bd7ac4362da9e0baa9499684d6b6f370622bdbb65ce879db96898e56de8afe112c75fda7ce797ef0e83cd113d8b663b00763028ccb2a66995e9e205919e46e9923ef2da929938102dcb538aacc1080ed2eb33e62abf2c4eb5e2a0b1cc67b47458a4ee9d20b5578076af8718f96fbcd42c4453c79a6e6818241fadb1bae032bdb9da1b32bfc3aa856edc5d6e13a8e4dec08d1d98fb03df2f711d269f3286ed394ff8ce902edb91435e0d093f01007e00fcf07bfb1868d5cc41b768f06fca5d56ad3c349d082d34923763de7478401152887482b80662ebfa9f6261d64fb4ee8d46a47cea5e5c5ece50320e8ec97793a53e0419756b500d85958cb9b6c93afbd8813a1eebda4fcbc5121a7e5928d0ddb707b4df22fa98f29ccef861398ab41b8e5082a5fd85f0c634cdc28598f4545df39294b3f3764babc6f0232db5c9f0aaf3646be36da3bc453d71ac40a11b87029b380af08dd38b5e8772d4c8a1611f81f5736a8a68aa9cab234b0f428cd8bdb6a5475582d2be6457dd70769092c3c4d7b1a6faa023ef7f8e4d06b8621c4750656abf5552a87c1bf8a1a4aa501b466254e7326e8c6555aaf39693495ff8f391f63ea14d9bfd36d047d72c027f2c611b10f7e3548ef8cc2603a5f21c5feee0ade5048b17235875bc53a50816754bd0340f0064d7ea128ae197e0ee1f2e826f9ec1109810adfb2cc9b60490b0876a67b4e3815d43fbb9d2dc753df9f228e1a0645e900acb66f45de210172890a936975820d8039f5e93f4bc8c3897b2b66e0e683e49e282f37c0b17b5f406b2a368730e26008f6355e9596c764f64e3596dc9b8a30f135db96e24a8e5919cc85803e380f35951404f987876a309829d00d0a56612e27d908b4a6d233ab7d0e84184ffcc4051a52ce45fe7730e480aa17fdbe146cb7c391b8272f41f7a031f96e6502c1ba42655d08f46d3883c6d2a6768a9927079fb8a2cde2346eae4d257a8a1088fbcf7596c9e4cdbb1ac3266885e0c17d4da268e3b22ea3905888ab84fc1d80b244539f1a8f0d3c68dc5481d611ff4f28cd64b961db2e7688f5b73e17a9ea187d019a9d1cafbc84286f65d0f3ac5c6ced68449e6d4e16fec6451c5e706ed6005ce47eaaf23da6bee3f0e85b9f1feb2c560c9a1cb150df69cb8f3d08c6cfe8d060899f1235b2ee95d31ddf2c1409fa2ec2fa67ee65d2df26580a344c133a2bb111252e825401c86a19722001fc800e41d37780828acc73a1375aac2bfc56d02a1b57c02cc01fef234472f397f81704e3e082abcbfa6c6fb106f9a3ff093dd603f086c2b80e987a6b45ed690e2f8640ac2eed2d0a46106b05c16058999bc0153bd64d84c2592e6ec714895a973f6346029414033a5ec2765c40d855a503f9594dbcb836f0f782ddac1138a3a18c1ec762a9708a0254efe4431b48cdca032c42687673731dd80db7da7b8fb08de5cfd0bedbce85a3e316ac65151741f14ca5d3750b7b3d3b3ec941364424d97bcbbda59432c9246545076d076d07eed4e7ec76da0dbbf1a8bbac3bce786473f49ccdd9ee6963a3208a7eec6677a516e76e77977d5dc6c002430861cced22cf095ff017f193ffcd77779f5f37a54bf78fbabbfbe7d58010e2762f62423084104e3b63467d4a39a54b4f3664b9d309e784744e3827d4c25d3a75af743a719f7376d09db8573a7dbcd2e9844ea7d387ce4aa713af743a711f1f77e25ee9f4f14aa7932c7a832b0869a0d6ddd229c417773790efc72bbdbec71871224e0c41ee586154cd3969751c9a0d14c9001ccaa6676f2f19715eb031e0f0102100fe9b17221ecd0d0d45744ca744707062763b9ac873333bef686e349922ff30d20517a95123f2d88fd25247459c488371b8a3121c196188474017fa69129126ea401afd5107421af26550f512102c4ee53b8a5fea134a7ea90183846c73fc1c32ece8d3fcf8341891e3df5079e0845c97c8f5a926536d027890e484cad3499e109e0e800025ac0442c210678169955160310692040653b022891d04f9011640db155260a1891318d1f30397ec4a2015b900d97b8234911d89a4a1a1a1b9514205d995c8fe36c32513cb6b33b22fd1823c82ec5f23069806e49041872afbefe8136422fbd340810a04657f0cf409cbfe19c8aec411b26bd9957092fd7df46906cd136afa24c3c648f68f4222cf91ec4e24e230f143f68f44f80e1345c8fef1489f2015d93faafa047774b0939d07d93fee4087ec1f95f409ae6ca61005b05304d31113c10bb6ea41043ab0524230000b9c22411820a4a3faa1a504100cb022478a20543b3b47e081015704e51d26371b102f1fe4e9ebba749040a2029c65b88384121b20d113041254602d24b4600112449949aa5f9c60c2091dc46f5142933dc31d2776f2f72fbe046c5c82f2a58635e5902e3920840fd31290300859f6cc4ae594db133866393a13824eb7a6bf9fb9bbbb7be6d7357777f71b0f8766edf96b1977b1cb56df7a7066c30524b613f9d18fbde4b0ee87fcd9129b73ce88531fa6e79c73625b0ff0c72201185353639f3ed474603fb18bdb80add4660e755bcf3a60737c538ed1658c5d8bc43410bfe5bb440bd0e05afca4e4f7f603fc79053cf61ca2ba0fe1e3f8d88a04ea5f3f837dacfbd16fffea7e20d9d16fff87fca22ac678d9ca792cca89aa0802d82613441ffc253bc6bd48177716980cd0205dfc2d97e3be7056baf8cf280305fe609107faf4997c441ad75153737dfd1aeced5f1d97f380dbeab5e731322aaf2c306129c8c1dddd8bb8aeebbaec13bc480e16974cdf1294bf7fb13f5c38e79c2f35e6ece67c88b144f5d349e98c10876e497361cb676346e196f6b08fd87d98a694524a695349ffd2c7e85fb652dbdc1605a52b37f4e953f1c00628c556a2fae9afa8401b6e71da9da07f3da3407b9409b18364da20c8346e1163ec9baf712e6907264aa3ada41de0ebfd8340e567d3690f94f4255703c7445f85297d687b7a249c144e1a7bb04ec7c6c2110a888230d2a845a6d18a18844ce943dfd11eb51cfd4a03dd7c80bf48e9d30f864f9f3ee893e9d33e457ffa1006b4319ffe4513a5e5b9b00523811b5b9100fdfe1964fffd19e467df7fefed951b2b3c3ac3bc121f7b18d3dc4afceb614cc6adc4dcb658953a6cb5b556d833b8d77ef633d0a79f753f90ecb8dd4afcfb6325762b3ab2bf9f753f7c2099e107fdec7f20d9413feb56e2cf0712f3c37ef6f777647f3ffebd3f3b1f188c8131f661cc8d9a4cf7e0e18098fd7bc86caf63255a6e256a72e376b4077f5624903dfd19b2f9f77facc4b74f3ffb19eed7eec7ececd39fa1fefcd7fcde8cab924a18733918036364062ab035815b16484bd7812db245b6c816d9225b648b6c912db245b6c816c5872d97077f5eb63c38727609964f866cab9d254f72e3219fd3f81119e19779b2c52245fe5a240bee4aff4a7d9831acdb767dfdf5304dff93f6d3916bc7a388c308638411422881f4f41ebc61f6ce1173d63972b13bab049652ca187470e3c3dcdd57a7bd588772fc89f507d2e001c7d8c187dd156285f5d825f89345f5672872b27583ebcf1503351cfe4bf027575a784c937680e7d38f346a3aeadf8d8579b42948761064b7feeefe96736769cf9f72d3fd371ffcc1a1fc9fdd409f3e161bfa144f51478d7c6c2d4ec44418ee0c81a6a80918ee0065403af80918ee00d5e4fe4c052b77770e86c01a1d13ce7c209356da7d25aae1c84c32b6c0f4617bd6b637bbac3d20b63d6d663ebda1f3ecffe25722b224a5ab22507b92e5d3de11b80912d4a43e4984489fbec892421a15573d59fe27877c9047b64b93e9dff35e5ebec8e2a173ce3929a6efd4622ba555d92b7e7e32dc21c24ffe4c3f3ad92451912732d9a28585504927083d19ee04611559d147f6b4d792c90a509f3ef983aaa9ad9fa1050449548c41d5d81510689e340a45c5a44f70470835b93fb2e894722581fa14a9c8fd72d52b198984cce953aa4fb2a64f387da272c84d118eab3ef1f409eefc0c2d20c72947b0454a295dca77e9b78656ffe272b81ea3f47a88713e80c45c22904077bde468f7d979cd4ec6559fe44fae79fa34bf27fae4f8d36a4f36517b32fde407fc99be6ec59eb8aa0f8556b266b649067d8a45c83093b8191b9e9e51cf903ec52c32cc989bb11972836f88e85314ca308fb8191b22724839407d8a586498376ec60628082588489fe21519668d9bb12182938293a44fd18a0c73c6cdd824d129e928e9530cca305f6ec646c9cac54aa84fb18a0c33c6cdd8080dbd188234609eb161d2a748840cf3c5cdd8b0320c8d47cc33362c4803e69821133228cadf2c923348ce21e937eeb3ce5a5dd2b4d7fdc4ae74daeb4f02a6dd1775644e0df0d743f2a6077fb148a232a12189ca7e660b35ea4ad22e3f1275c59a2fd6c8d6b401b44a90a0f21a470f17f68936ceb57dc2d6a2dcd66f0959da718840ba65eada3ec5f852e3bd5abb6fbeff857176b3b3300688e3d0dd42dd1d21b616356dfdeeee865842d143c9880b03a4d1859e1d3dba30e505694c1c305b48c37d4eef2774df0db685fdb31c2710ee67e9ee0d616b71d3ca72c02844b853600d0a95265e9670af2dda5dba4b6babbb7497ed03d3bf6081ac954e57c97027892664cd1652ac5aa0ca8114383b4811847429bde7a4b0096dcf8d81f6a494d1bd2d36c1873bdedd33a248414a395dbabfb40767b47c52ba944e6d85912e50ca39a3e5a56bf7abca775a650b8b108e6f290cfee1185d802fa5745a91707777ace4561e1c1fd3efebfe152cb998bf95977ce5cf5ed8a71b66eeb730b6ec763967d4cc7a73f59a19f77573df7440739fcc2d65e7ee43e755e9bca4112655a062747a74f7b087eee3fa347907572d355e7899e18de8acf5c2bc5620d7f7899dc554c2d65daeebaad8e5dd75612423346e420fc3deeb3b867d20d7f70eda3aa90b2d299deed5d238804e298227b4c6455a2d33eb2f2f642c926240e8625d489c478343efbad7ed3e0f4078f96031993ab8c230ce192f2fd478e8e2d190b1cf3407d44cf1d6d9eec2302eda2bdbcc5ef6c22e369a257c1b3ff43cd79bd18bc445e8321a594da6e6ed2fe662be5b06bd656f783402d239e906d9757da4117ad7fc805f344e20ba0bf247679f693253dbe2d792fb61a6c9441bda451b21edc5547628bd35ea910e6dc22f5194e0c67fa9e1b3448b5f0189ca400a92d06471850f8d504c1c821424d87c986418608042d9e79c514021cf2676a218c2b4440e0d144d703b501c21cb67e9d3ff00069049963f8042962c27bc541c2cc1081398700fa4b08326a46864d3430644ce260410d7879406031eb0944da6a3c3f5c3d05dc2fa3084f9c0099b9aeab9a2008207561182e08166c70752f86107d50e3ef4a052810f3fdcc8a007213dac1c603c14b5e98994b52513cb8b1bd36572c410121cd1029d236ad08323928826531234785989a5686a2f9ae28c3109bb24071fae14fe4a570f76c9c5c3c5c375dfe1d6b2b21ddc28dfaa03fe60900ced750fb434f8832c1df273f429feecb21a3bdb9e8c4cda9391157ba280e3b74aa8c2c9c5cc390062713d734d66fb0b3515d8441556d8c4f8c0a10e2949713860d6be6a330a21f2448bf438502a5431483810b3cab7d6d7cc224ee9573604ff1783646b3cb0c701f3b57130df1b3b766e4d4546e53be6db19ed7c888a237bc8f5a1e3401a54601833d424460de561fa5a087158913f62c5d4a118d2fb58911f853842958a8142b0620a3d313820b1bf229f1269c5d02439311fce17cb02e63a8330d5ea39c0dfb449f9faf3a64f285fe7d377f1b3e4822bb968751231393fd23c4aeadb205cbf53b753d8d52929b38fb60afc491a2dcb324de67ea6c9647f214ce318ccadeca08f1fd3ce476472c54e0e7e1cea12866290d807121333b78028c731fd474110a3ce5686f1df24ca75163d01513aa4c8750e21d72c72fd89e4bfc944ae1307b94e1be4fa7307386dfa7473fd2904da6817cc14cc207235d518b5d65a697d98aed3a64a2d20ea25aa749fc94180b7c8f521d45e9890aba4b14fe0d8d3e483ac1de8902ef53bd97d266d06fa920673b011f0d51411f0075bddb16fee4e665128d7c749602c7f9fe1bd1ca77de894cb20d7a79da2e29334ac692369644da3f05b8b65181733fd5490fa5e57906b77d306d2a86f99e0942c6a289fc2f940b223e5694a57739055a8420c92c63ad5a751ae9f4ac763a63b7f1c307bedd5f78fc1cd68affefcc1712806b557fff360744038b02efed4875c11dc434850e0bee9547bae835f7cfd8b5d7f43a3f0d7df409fb2afaf43a25e74d346bad477d14169b18b428ad065fe9522dde43a5bbc19b1e78cb153b97a8e8dc2e180f92a42ea6c3e067717e79af62251d3a69ab0ff6c9e3ac09daadf43fa34fafa4d24c2d05fb5975aa7daab3fe27a487b55eb3e9bb32692eb5b205c7fdac8db7d164359df716afdd6220085b2fd6879642bbfa6cb932b93c0f13f8701fba32e94aca1c6eea3f9ebfbc7bf5ccd50bb2010f3d5458ee6a7587e91d9f665880b5b3ed3c7dc36bac12c2f51f07548d415c30b996a38b05cbb8734e85b26d83b1f4876d8bfde07921dfef67d5c9d8f8a8325184113633b1f56bad0f7b8440e4d0c8c41d281993f165adafbf6e86f51c0fd2c7d6a18247352f609ec3f9fa55d647ca1013b684caca27f9309dfd6419202cb2e4707d3de16050cff83aba6c209218c085b20ac075729b2144659a2e788d50c321d3056a4c80aa6d00321787a90cab907362dde8c276e80b8d7bdfdea68bbdbdb9fcb90060eb95b59eb25b6704bcae8044465a52872472625a0f68ae476f7e720aa71a27ce73eefcbe2d792bd947524aab7fbbe56dbf540d7bc05101589e29322727fb437c05f479ce8b0b7ca0dd9e065f931a8bd51965d048a114ab97d386455142e18b3d1e32771f8af8ffcc1a4bf31289348230eff68347a12f745a23c7a38eae28b92d193b627ed585193498f474fda9ef4b7667595f5e417ffb56059d470cc8f99f497c47d1130e93f5366694ffe0af0e75d425e9a48f2ca24920e7e4f3d00772ea4f31b9526b8861b626e826bc07f43cca4574102fe3cccb512ae75da9348c0dd726edded91bacf86489449ff7d2275df9eca73a80a531d686334e262a647d0d15f6c7447a36dfbd1b65d2ac0a4ff5cc77388720ada8030636f53570ab0e3b427df7594f489f4f27d056d6c2fffee901e937efb7b1f73f4459b21fdd66d2e9ef4518b00e95d5cccbd702fb4275d745e7bf431d7819871b7a33de944da93f123a4e63a9086fc8b08fe5aa51344946126fdc5b218351992cc9c23bdc67d9db57722fddbc3f48b776e7ba8911ea69d880be913cca5ab922ef2efe8e5371018bb0e0b2c984c18a7a08bfceae2257e59eab88bfda3e6a2b3c1cb38df51e67d223d894422919e8328d7812ef2494f8a21fd9531b694731b3de662cee48fb84ed29efc9195d7933c0948facf974879fba4cea6242aa5939d0c01c65d0da4c73f92a4c724eec6087776c4c12cbbcd1c66533d3c57d7e9313b9fb1e36a3590917421d476659f10616c1995706b90409c6574efe4c7517c37411ad663126e86329d634b8b0669e0689b1d47a75d191bca0d768c4410aac2c72f0c05f883ab8769408efbee6fb31af2457ad9fd62dcc6797b539b9172f6669cb767b1eba2dde740727b758576387fa51ce5123778dcb87123422b514876743e907c45fa67884ab0010f68fafb070e1d0e7389218cc4c88ea63b1c64bc809412626b51d4be95d259bc7329256c913ff16fb09a49e9000b2515c3300cc32e2edd8744fda45b2c685969036d408b311c9f6b7dece7df4c9399138031d7df58e4faca15b937cbe2e9c6783527c309866199c52c8661d85f8b59ac5e4ca85dfa47ba5c2cbb1986610fd3d9c55c50a4e6c3b5c3a5835d7209b155ece0c216e0071d629411c935611d2fb91fbee4f89dc527eef51b2d16b831eb19324a01e3d070fcccd81b8e1832bc71218dbddd780143f72dca282e11d825b60abbc42eb1555c422e2157cd25e412c155133b06517385a0b5e8337a6619e30f2a593cc950890c77b2d0c9376a38688edf9c0c2778ae20f798993e8134ba9b3eb123c0df4633379a3ec51b33c78f3fee2fffcb70369a1804d322498b6891cb0e4a26d82ae02fcbfae42581832496dc0bdbc32e8b5db6b978efbdf1c61b6fccb218b3786f37c39322fbce3e07b8fee7c1ee8e306b82e5d7bf90c09ff7f13d89b2d6629be95fdbb623c4482ded5d2fd046f6f46fc623b60c90e9bbf680feecafcff4675dcdeebddcccb5f2881d883976182703675d6509b56ba173090ded41a07cfd25674366cafa61a4e4a08c96e57b88ab04a3f855c8a08626a60019fe17e0e98550c2bcd9e992092c8864ba592c9bd483bf2dc36f850cb717212004b164b803049e3c454d863b44e849c97007082d558e9255fe0c5749d4206baadc4264275dcaebd2a59cfe73d659679da52844c621f3c8cd24929b883c6fdaeb160b2c14adb0428f0c193f2c2caa95151d1595a11831724ca6201830582f5e0459b970a12a957e52525a28283d24d20dc639a351d0b6e1689a4e96adee1d823660c61ee6191b16b401f3f5306f43e0cfeaf8734decca32b12c2a447fda6b0a944ba6773b27a63fee348832c18ab027d810d60423c286b02649e0ef0ec18fb6be1b1424747f80220c58939b036d9874746c4ecb23b9adc5d8f4de4ba44974daeb6f31657f539eb3c392f08898122810b5a0d01a72c29c42d29f643417507705b5e7c43dd77ab1dabb7ceecd6e184d91e5cb01333301cb975f69b2ff6de5a629b24f6e72669309a1df0297430b4f80395b784880169ed2f92db4d0420b2fb9d9827b0b2db86743329bf632211609fcd1564ea6ad3e7d9745d4a78f1ec9fdf2863229fab01e9f211963d2278cd5a7ef0ef9441884f4a907da803f9e5b67c50acaad211974f9604732a6b24fae9e9bef0eedfce4641a19ee4c5194e76cb5f864eebf3bd4f2274abdb7df03f8cf2480ff70005a7f2f9b246097d7d13dddf1d32fc000f86b5bd2e56bb4e7ff5f3519972e068fc3a596440da0fb4c02e85a5d005ab9bf8593e104d3b7dfd29203b66476e586771d03a50b8c0400f7c155c77d574deee7b81e9e9ffb6c13cb240bc96e3313a4499f22518699056e264893d61443f9bb433b5304a1e27d32849bfcd92128695464925b447d8a4ec830afc0cd04212aea229e3ec526649865703341787a648f4f9f221332cc2cdc4c109f1fff39d2a7d8ca30af7033418ea8a62a499fe21232cc2adc4c90243a5447a84f510919e618dc4c10a1a13a44449f621232cc266e260811393607a84fb14986190637130428e80a62d2a788840cf30b6e26081316c60aa2a44ff108196617dc4c1025415637c8ea489fa21619e6123763734495a97cfa148732cc29dc8c8dcf8ff6d3a44fd1081966146ec6a6496b6bf104488a28a288228e1c3972e4c89123478e1c3972a488228a28e2060b9b8cf3cdbabb1e6eaf2218b6a7434aef0efa5cff2b80ec28f786a125bae0ffcd6ed8d227fab33fe6e624f4688b53da929bbb628065ce470ee678448b392fc0d1a62927c3099e4fbf7bf69cb355d3c89d7fa1500d1310f6c161624b98e56bb93a38d265e2d34d4997ce9ec9b4719167f526e993567b6137d3b61126a1acf22db97801c31443658545c60a2c3cd765d97fbe2dd90694e7b7f8b437bfd3645a2da256006e0032cac97c53d6ae6ea502feb2562b236a54fdf9770019e53c93b82f6b65445cd692383795b55aadb8a202feb016d6c2885ad086cc1325aee26adbb62dc66fdbb66ddc6fdbb66d307edbb66d63f96ddbb62dfb6ddbb64de5b76ddbb66ddbb6cdf4dbb66d9bffb66ddbf6e2b76ddbb66ddbb68f495cfcb66ddbb66ddb564af98dfeb66ddbb66d1afe6d236d5fd264b66d658518cf828c182e8c70cfc20a3256626c294660acc480b1a11861598901632319c962c0d8326c4425068c2d1b1981b16577336282b1655733e25b763d33f262cbae5f2331bb1e31232eb2ebf132925d2fa55cd9bd7465873ae5b65ec315a8bd799b34a2d848c3b8a64fda4f9b9c5d94213779aea00d8903a75192c5ca61a95ebc7cf9a451d24ef9b2a84f2bbc7cf9d3287719e472c8a54f9f4a2f5f266994bb54e292c725932c5faafa14e3e5cb54a3dcde609c7c4279f9dd84a8f5a4256b86fa04a3a751339562a57e523c7dba2fbf8968d4b447721225597ee3f4c945a3a6b5c1f2e3933e01356a5aa1dc6ad2224a79f951a751d4ae704fa6964826e24896f425f6261b1c6972a3284bbacc37097d32348ab66ce8530f3cea713dae917a31b1e0d297a16aea5ba44abacc1ed9cb178026235759b6242ac32b9f9228acd54ab552ad549e188ba562a95813c31c73ccbd255198b5de4a49d4d56aa55aa9d675cd6b5e73b224eabae635af395b12755df39ad7b4ad56aa956aa5541265592c154bc552b124caaa542c154bc5cad3a6a4cb7c6b53f36b4aa26a4bbaccb716e3562acf7fc1451e954455968c9fb3aa5855a562f9cf84ed7c395a216bc96059e93e93a9fb30ee02b0955aa617ad52ab458bc132bd60955800c85030d58b12a642c154f3bb0b034bbd286129142c85a5f27c0ebbad124aebb6642bcfffcb05ab84c2ba2c399f051b55a64b65e7af5053ae14cabd52f24acd974169abd59af98b3cac186462759695e7afe460cf9f5c59d5b52a6955d4aaf06885e8499e44eda56e4ada14b5a9cb55e836843bd79644612ddb226d314aedcd0da85de66f4279c274654914d6b2b8b2f206c403079adc1dd69a4158cb84b530d6caf34d5a5cb537ff2a82fd31cca74fd8fcac2521bc1ea6b3ce240e66b9ead3b7b164cfec2c79286762613f7f03ead3fdf96d2e378523e79b4c18e3e469b1e9626ec455e8f56f5c8f986fb0b95db8336585e3733652d90267dff7592a4cc01ff6d75f4fbb1eee4300ba5591e77f2f99ba64fa1c446d2c4a23849700b26b24c0dce86b9c8d903c9f729187a54d37ae567165a170537366ad3ce9160544d99f1b15797ee46994ed6a079b499eacf6e6f7f06c4380e54fac8a61838a524a29a594524a29a536a0f429a594524a29a594524a99e0a6f65c47ee8f52daf092e1c796a13d6b313699decbd146ef0ee506587ecb90d90ff2d488e1e5056fc67f2ca51ceda11881539e04fab789258a4f32ac1192e1a908b6d92b8a62d6df296823663e58130c9169d72366235fcb8c79b5c4c89594eb95ebc76ee5fa16e8c119f0e45fff059eecd7a87d7bb1b5eb997495d8a7daa34f9dda10e0da15917f41148cfde1700cbfa1ff9172e7744ad617da853e8c44754abad03799308c91656ce993fd0a6d263519ebb27b21d5b7fed65311861fa08dfaf41b0878ca9e7e0b0151dad3118caf5315bad8cf38093d6bff72f631ce7eed5c6bb00e497d153aa5e5643891f269ad37feea5cb666b6e4c22b8630ccf6b6b438296bcffe37a04910431b0db35be7b2bb645780cdc7cc68796f17efee9632116ab3237d78be3f76ec514af944500dd10aa0a6699aa6699aa6699ae622e51f638c354dd3344dd3344dd3344dd3344dd3344dd3344dd334adf49af6a55249d3fedeac3519cdb314eeebbcbde310d12cd43e8573d17d316f9f524a29a57cd44a2958d3344dd3344d4b49d1344dd3344dd31e6a9aa6695f35194dd35048afa19034ad6a339af6303d1f73fe236edaf6b41f7150bbe11d6c0f4672306b9ccce436f9020558e8c09714420a299554aa2801f747f9f4bb5bfee4788c24572330dfe77b9e1dc88e8023507b30c2ee39b7165c6849105fc6b7a227b764b863051179488619ea7c963f3599197daa5fbb18f451089e4f236bc66a6d700d37c49c99a876a3338434a64a16f8b3de3c6013cb67d97db86b987f43cc157bfbf2bd17a08dab06ec2b02b21cc54cb508d4a79d515a1fa6aff91d8879f6bc50ce95fece315725388ff5c93106e812219c027f70f53954601ad0279f9a0cb576769c8c8c2db0ff0b95e1c47d46b91afac9f4e5b72af7dfe883d8d334402d5e149d39a8842c99aa82d4291a0106800002d315000030100c064422814096c7a922fa0114800c799a42725c1d49a3590ec528ca1963102186004080000000111a9a51003875e8b5b2974b7b89aad7caa94fe08db58213cb46cfc7ded1e1636de8b9d857f45c6c1d3798da8bd15eae562f8561dc1ac203a5ac6cd52632a0caa91f725cbe89c4ec7744e94b9181b89dcf3121fcacdc56d09830fc4f190fcbaddc8ed2f9e9b4cd009e49ea545ab955ff0fb91889b37c9241d725cac10d0c4be9354438779d041e52002c824a42718eb331150059d20175e5a70f22d18118d36670a4f035ab2056f5b1cf604e6d3aa16875fd2c2840868bf74419770abd730b7e70fcea5f6e217a44a4170d1b751ce76c3006be87d6d47eddf4528c88579a0ed4eed84265b24f89117a0c1a89d3c76360e6678813ae4e7caf3d3916889011f5a60a05df64607d21c83b29c31a5869529c9838e0685b0831df40c630a083d64e788afbde61f0713c18939e07f75c48c661fd3e749700579375511680b3b928c0c0bb7c15935a6b76a603c569739eb8072675ca71037782a6a873808c7a91afd7210ab6f7c25d7557d2d28600fa6fa2007703eee346ec0abffcc68191012032e897ef06898a680c74f545dca4cd1595baddfd2042627f3912e5f5fe4f1067f064b1077acb2da7dd3165e100fb2e3d9ea88faa11a038f4f017dda67eee82f807d3487367a6c00723f8386e2a8bae4544deb21fcce77169068f9771f97712e12d166dc38cc76a97488fa15026d2404f8f620dd2e467ee147c58444e66279648de65e55d2cbec7daf758793feb77b35cefd52cac9598215747a64c58790feb77b2fc3eebde63f51dcec2f4dd6b3856480d4170e1ef39d0c9433c1c0b19ae3122560ce047a19bdf69dcb1f252045c2699f83d8f151a38447173cd2575295b63283a4c63d7ac857a1ca08aae320191584f190f8a962935cadc2ce6638f80c2abf8f9e6d87197b125549d05f288fdb8c285ac325592b3cecf12f81182871ce3d0d0eab2386ae48a5c21b37c2c5ffb1ee6b489802ecd60984d5f4092d91079aa256fccbe57215c43d6f75a142430cf47892036302c84a8b2ec14a48a383b180c62a9986c0b528d1813004e441420f785a7468894991715c7efe9d36b5161dc14821a2164307c882822b5e13c8bc8293ab98c5ba75bb88660f50a8588463e654e9111af822ce1bfd8a28a04709c53a4c092f339a576032462b917b6349668ffb8fdbf872ce18c2ec77db9b9dc6328e17a2be74eb63961507c9933e8d75949ddabf2245c6d98e9bec92168ead225edcd3888f16ab99075f6715fbf937053e492bcb56152fb9653d0a9a34abcaf734ad87ab0d0bfcc3168ebd624e5e141f2abdcd12bbd21a8e554ab788fcc0f05ba6c3df8bcafbee03e893c90db80362520e8310190e0b015de98a2a1f17e6f54becefa4e4ce96e79b24b4bbb4cc4952b773ed36a90a458610d60969752135a86fea6947aff89af25892a273e0def14ee419cb9a9ab236d50d93b42523040b69a41f4460c8e88d80d648207934f9e23e2fe0a7fa6b2f02e42ca19a076adaa0d79261dbc86068bb036797921c58bb89599aa1d4039d930a421f6d9a4bc2021330c61c0fb0c2aed42e4bb680d5dcc0aea3e211d929941b099517f32a07271697d76fb07b72c838acb29810f22cd2ab3045c7d496640d1a3b0586741b75905d5a3b7496f1751ef22404d952e02f72cc14fc1e2d8d16807e78221d56d1f91254820e2a90c1213030529c298b76cace6150820c54081c0d0015a8774374151af1b8446f016627082b249b220dce6319f4c896a93fc0acdea7c438cd1cd47ba4a8486847517948422a8870971f2031402812d2042b019cda08d58f137c44ec21de9d8b48fd6d60409efd82c9a2a043202a369264f567ae2d44d0874798e7ae903408f30c5b3492da78ce00b0eae68b0bcc67da377889dd128c625547f60ecab455a24c30044afbc0ce50094c085038ab63a3d0677b5c52e32e392c635346fa5c712e4afbafb4cc1ade4a0141892d9650bebc2428d2a4773b1d7713797e866ac4a353eaa9c17fd54cf2d7f61d8cc85e3c00116972d7829844138073b7c39873958470be472622a9d9b26427d1ac89ced710ad5a2b495eca08be572b7c7ed2445a6f2fabcde2a92e27fc1f9a6219e8a28537af6ef23407876a5bbb93449e833e8f63e2ca4edb565591c0c1e0a0e8505a4b981648510e8eb9f4e471b58c089a84adf2ebc34108697747de3e696dcf7268d1ef5852164884312193af5fc413ddba42bb7d2a59054ec50122470260e703645a4f366ecef40ab6087ccc12a22863c9310824d715523ae57766572c5f5758475336724b9496127301a4515e01c8390b3c50480a048db635b21d6085dae4baaa93a762a511202681128183fea6b1634e589cf3c32a04f22e6da3d88685422cef206d70cf631df2b1d7a926992eb1d6c0436a38a5eb84f6005733584f9c380bf6476e4dc390ab45275c1847452932742c5ba4a08f58676201f04033ad695737d935a1093b012ab1745f5cba4037def88e52ba82b0ab15901bd9ad40ebd2caf64c09d275e953aaa35164e31cdca18cd29fdac35be5246a843b0b837296a95d2b10e04e51ea4bc6cec1657f05e4064f5d14b014b28a89fa5d478f16aebac00ea736b108d08e6941a5f5d3800dd0ab79e3c3277472170012963ce51115e8c63f4993e6e6dc90c9625735a9b4ff0a5f182a2e36b4c9ca42bbba0b5ea7ae2cf3757f53c8ccdd7b1d473aeed93f73a825c794d3bb1a7848a50ef38e2421bb1e7a9c117580e7ce16b0f1a2c0c680fc088456395faa3acb399f9ac3ac15521602a8373d9d820e903536acf2c31cd1121471d35494fce596cbba005becdace5aeec793f2b0b3c7aac556f89505c2b44986ae78eb41b3b8558c8901a44916fd3a9859d25c67648032abffb15379a3bbc5adab3804e0c90d004c4e54d07b90cdabc8253b95c769254f86054d01160b141316ff0709ece641ff18905c70d7d21640b12bc2032666cc588cab191c8bc37a4df83a2f8d734c2cc2ee51d1df8544a08f72028e1e6f93560c90f69c0a08c7db49266a5f431f6722510da77125141fd9b9a41ff7851173e8c7ec3766d7a8f203fa0bed45ef4e14f39c7c3ad93c71ec5a666376058fafb52a62d3a5738f2b84b0ed525b5137752430f18cd2695299300e1dc90c6cc5b6fb9a556ad6ce1859d1d44bddb6c0b0fbd4b217da8c000db9e6f9b65c7690346f66cc10221e4083758b00cbbcc915710bc0e1a2fe3984717279fd2dbf85900cdc6ac06ac8057fdca00ac44ef86a2bd5bfe2f53a251f7b6ba0bbe27a6c55fabbc306516f595fb754015907f37dbbbd28ade57f71c6be54a26a59b360b66adda8490e3a8af70f06b71a914c1cc6ec43b3d838bb40995f41ec44d42876fc42bed1e13f9df11f786b6f88f7e870b3ae356729ea7aa6c656c9f8e498a82b62d05567db27e5a20b39e740a0e55a019e793cab698be2dcf72e7cc105c0b22d907033df67a46c46981fc0ccba3d6cb7d16ce470b24d96b083c6d12ec72504ea205b22d825fbc082a5e4c14f277501f6ed91467c1b2d4662d91ffdcc82ebb2b994ae061f04c0c5e335381369822ce6070b265cda044ad1aa425a6d8d2559135593cbb2acf1a0d4284688e6293c34135fb0a12539b8d23d111cf0eefc7840eb8f5d47deb8bf7fb00f82958345fd89e203f907420b5924b92a21fd7ea7f4b8971b7bd853bf10e1dda2d06c4ff979617c17431c84a072391221de90b82563ae28557562148a2544370100e0f17635dd980b36f6e7f64c7f9770328488afe0e4f297fd3bd3aaa93a88039913c1e375ed6749d6ef3a5e72f1ebf2f16130e9160ed60265830f2b2cbde5b02b6ce628ca0cb262785205c2f00a242f3b517ef9caba4ac75673d10d6d94baa640c9fc69d6975d4f1c5efdc7b37afbff91bedbe1d6da5c49a1d5713e252a65ff867847b02bf0d80b1b495e783cf7a3ae0e0a1e736e0493602663ae257ed24340f03a5854b1be4a3c2033a9c891a56f1a3e4cf1ad5e3f4e7335f1732cc1ad20307208538bcb8f5e223488f4d20030065ca79bdb2f8db7bd6c0d523c282f34ed61bc14268d3cd74a0487836560a4b70d34f8c03ee9a5d7c656ec76dace14e6bb3a5f10830863cda5cf6bc84df634b0a544a1ab92d86a577ee4f1ee7ac7b2dfe4bcb2f99731e595a420ceeb66e7f1c21709610af928b2c8ed957d9d3e82b8867fb98cd985d5a7c4d0a6b688897c6397aa5f3d2a348836eb12211d77d755f43fb2cca819d5983d03d83fd6d5ad54c3724fc0fb896ad3c48e0d6088457d837a3d10d50b3f243849bc807575da6747e8b8d0e53f7b51904fe79e364efce4336a8e23317bb07d94f4e651419db5e8db2c3e46c6a698cd9af97430756abc43d0d55e734015fd2c8717df232db19821010019cba4a1f2c4d2d7b72c5c05bc5482b0f427cccc902deb475d1605be639ff9c629cae0afdfa8d4cfedbd4d2fd7e076d4549ea2ff67f64d617a8232e36d6a9bfca18ccc8fa0a7b05a0bada8931cebd16361cbcd626131df56c02ff6c23277b2140cc2981da1d7eb87ac0a9693e8de4f414cce08b88d4af5428d649df1ab71543a1cd5c58bc4a0c0e1e15c6ae0eb49676301ca965c872a5f49051e2170a71008aef87a977bce10697e35ba55397b6bedff7c2bbf1756d5e72f82dd79ac96651fc2e20c02ce8bc36fd7da6853141755a88469d9de9f9abc0a66b237722cb1af929d756b1c91d19aa19efd49df1b590415548aaee022257651fbd080c21d59b9943b57979d6c471832da50d708463882495c19ef7160f8272ec8f9f32f9e9a55c08f9ce88d5f00e923b3d945b7d2de91f042620c11a14e16861a50c733111b2be5bd67425a7efe46bdf8751ea16a0bbab0604f73c0206375c00549981c74b46de4d23a87ca16925ae9beccd84c35d60721e5490949d2c1e3c845c8616dbe029290bdabc13be3ec12257f21b7f18ab4d52ed69b402259db5b02bb1ac6fd982c5fc25f7a724a5f16d52f4438d5f004c573a6472146e77ee02ca3b129db922dcd0f458bcb91d9c9d6920ed79bce2dee71ae997381c6d2de70e5c9bf727c402d236c8fa61b4d92350017fb09e11d6e92086ced57cd7aebb6f492845c60b8a32734d65e140643511a754c8c1b15fa1a80f429b5081546cdbed54fdec2c5aafed643b744b0998dd87f8519b2f7b10ae3573100454fbadc8a4fbb7ed95c28340e01e60147a9719a65477878ca1241deee04f77916a83b52370305ce4b3876290268211b57a01a005595deaaeda07e2193c9beda4c280adccd224a407dd0211d253e8001a973fa4f6228d9fc0559d4231dc8af50ef01ed4b273c04b374f0b0fc7923684f740534b9735b06558039db9b83d7b7ce463a2826b3a79c98412fa8e000940f5f95351c01de81ab25a263378ee93271c350b90a0bf5d52db93ba78e0e21c64f5780a052e01485021c115f4abf86702b6cb15a1d0213da3b2bcfb019776ab1b01eb32d3837002c873e28d10e26ccaaac26369899f0a80c21da782fa452c12203c1af3a63d9f3100bad2949fd361c69ea5784c351b63029cd0f5f2369d49710719b9e2ec0206efd580020b63368000c093cd4e1307426d69262d84ca2e5e2a20b4d9009f9a695f3fe76125cda0b2a61d8b7fdd8083a98443f3e63272fa4a4b9a953cfdb7717cdc5713f4f172837b79b8b479087550222a05b255c856c94ef1b1a05ca62578b9cf7f083e8ec8fb9a3696228f2da4f624dbc55449675e7cdb4c43cc6f4ec8515d14a44a58a3ab03b87a04ede05de15abb1cfb9d409a130fb0ca321dd67954a8f89e08eb3efe418552f9bbb50147fdfd76efcff9e10b069298747bc1bfcd74462b69a3007ae92489cb6fc97482e8332a37e0631ea007d2f958b4865a6b66438c834aec9bede07de13cdcb1a14e72f67c6a3e497ff6f08d2b8e493412edd15083e6dbde28cb7bc86acc8ffd6700f948b7cef31bdcab0045bcf6f38d0ab826c0d906ce7acd450a69af131d064afbc6ef56d4e64d99f861ecb946492a57ba93a75688b3c020af5d81a2490976197831221843e416998235e2a723b327db8534bc659ffda1c3c7b786da4e25406891bf905c317f6cb6a47f06564b9beaa1b1b474203f54d7938b96dd67b641484444f13981d1cf003e890e2a4028c2f5b1f34f5307c064de18020baa5fdacc5aac3a4ac36e3d4a468b725c79443d9f94b777574523af3f0f9fc8e3719863cec627044f95a401c858bd9187d4499b79930c0b684e8c8d18a043b43a6be97719de5d4f81f314984e74eb78872d0b4a9cd03de5aa77faadde10111f43873afc026d31ab54aa0e20beb16c28c91bdac953134f94878ed737b00799816da71f05130ce285e9f258cfe58ab05d5c9d91126954244deb3c5d0ae3c8bc61057afd97fca7e4fd08b0c407577215e1d88e3ea5accae7933bf100fd711a9e37879cd8ce180583aab93f26e10af65fcf1d8cdb716682138aca457d78c4be525a891702dfb0113b95476963d9ea1445e859f5e02e0b5b3d3dbba0498176dd401755d40b0156017914239d6af6c7d05e4b2250bfb7fef593b9b8d69179c0ad3f7111ec0dea9bece9f2148862166ce702f9334118f7c4583d34fee60e26c08f1f01aed7dc21d56b74dbe906afcd81bbaf08ee00221a93fe23df212a018d18d78c2582ed376d5099e4b7a80824563ca18b723d520288dd7470c9222a8535530cdc7294e6818344b950086ef8c3a7208ebc53dd88c04d7bd8d9b47c0c6923b95a5775a59f55fcfcd39d9fe3ec2a30a0e3a64e610c935f2aa03a051f6a51b2db6b32cfa74ba2d48c002774ab977c6928fc930388094a96a6b10092149e95b6672ff3d9396331e9d6cf6f91809422f2be931a31eb13172a60dd2409aa4c6cc9786bc8bbf33d38892907ad4d69305b957087629e7e811a589132ed99220a2c912cdab8dc58a61e93e4400bb43e062625734f44007293cefcd87133d2219c944d295b888a646a19d27a1a8fe6b0fe98fa2c28e04060c3c2a460b0d7d0e4cca8b56eefb7841b4dc57c828c52d827c29f710ec0f0b00af78bc5c9db54f0deaf2dafbed2750e5433f36348feb8cadb1730613e1b7c0eca577e39b4869c7fc00e141f3acd97f12ff4e1765ff8966fbc04ac2d33a34d994057b17005ef1d9fc6e51637e623feef253c37a1112bcf105653e766e14660168b70356e2ccca2b10b644ce66771b4ea09eec5f1f96f09a20d08bcb4cd27abd7b442a933a0c2c2177621e6dc1f3c52552d5aa54d8add2b2902618571e023779df1d22ffa81026c9e6c70eb6298ae13703f81339d4e188ae2e71a85e7577aea2ab8be3f8fecbcb74e1425ca8cfce472d9a465bcacbe9ce2604a048a831af1740fa9dc7129cea8704b5a7f10ada12b9d9214ab0459a7e1caad30611644c16ed9a901c81682f1ebb92caa09f56bc75b1233b05cb0628ce97645bbc82587f161724816bb0940c19d83d497a8ff0b77921343e430034f07c2b223b60777a5d86bbe82924d5803afecebdb451e2307499990772f37f099d4e977a2324d0f04eab584c051fd8d07d2f04c9ce55218529a6f6bf04a187c2b8fa984217d6fdb7a56dea41919613ce43d7afd499c78349772fc00174be9ec7bbdcde6dd27d57a218a719dedfc892cc5745742e20de7a8d7397c6cc13c739cd6b11e360956178329527d9c70379b81056eb85180f5e8afc7922c70c929d55b051010732309a808325cf2a3b696ad3eced396cd5dc8a9764be5db58e71c0408c3d492aa31447e0e76eaf1bc2b49b0e1e080a89074d6ab915898c03cd65f6ab2a78c38b30fcae9ad15ed27a070716e5c13404d92a41c6cf956e42c8d20c39e30b221da15259a6081a28b9faa71dbfbf1803bef12c4256fae6a5c3c3f28520b34887da1e1648e8a6fa0cb54273760c09d8a2cc234966f760c1ecf002a95e7f290b5995ed99802f3a6a2a6bf64cf546b876eb191693a0bacea08344435ce13d516b9002386080b239230e385ffe36c7afe470086d92418618205b6681f65e71e61a76c4f83b289ee98656f5fc903d914dd686c16242d49498fd679a803fc88e0cb4ed0a8e54f86a9d9b25c1be26f4d6cf15ea8b253c5d9cf6b0e3b75c437e3943b1cc484ab72d37763cd724aa7ab84a3403d6e80c47d87b9715df80a488b68588c6ae01c0f9ba5578e441c192914eb6c1989a2c14699ce0de770142be3d5b1eb6e9399b1ba35782250162fb7abc3531e850104d9c94fef3253cf35b364813ab248b090b1b62220af5b18e3fc945f89cd482bc1e133b18fc4aed842c0a69489c919320cd70949d2d1b5e1e7f901fe65303e4bc7aa7fce219a8ec318931132a0059b1c6db649a5367bfa3a1a42c21d5064b5e18630de7f56b331783d74fe774252a6ed1daa18339563e114e8235e044b01b778072d3ff1b0773cdf18c122d39ffd515d572e998581935b320a0f059a89c57cac9226311cf949c8daf9825e58b941abdae3e28dfc958ded8d786769e64047971582d73fec64f6d31e294eccddabd3eac505deebac6de650919c67bfeea4f73f4a255722bcb529c795648413ffeac1f676850a70e07b2f4a230f729775ca7b6aeaf7686903f2886ab9f79b21c87d581b2416b1054e43d34c2e46c992a221ac71d3938343f6f65b316bd14bd2258cd14a7abdb01fadb6cf647a1dda352e13274a28f90c9c58c8102514b0bbdf8bd7abe6cd328a1f0f1f4eff2f06d87f79db7e939963e3bad19b6cda314ebb833264f2eed3443429ccd19854ae11849aacd1e94d3f853bea4fdc26a5ce67db4d3a961555071fe67acb462428f2492448d0923b47a6e860b06338cadd10373754e0de18bb016f33dd8bd788b54a1f1b6de8fb82db350680a954234a0d51bb8817ad28ea53d294b444f3e44d6e9d65a1153949225c5918505d3e3c427368631383243ddeb958cd87f679c280ab747c51359951685cc6571dd35dacb09ec46ab5cfd02a0d291df8e92f9d48b8039f769331fb8bab898766374218a458e329ac5181e5aaab9ea478064393e297bc48da25208f1735a4544ad31bb6507f98c7aae00106575be7865747d0f3ce8ed9a95cb27db298f66c7e0721a9566beb48026a90b4a4588e83bb50839c62bf88f5bba0329b7b6fc30b70a0159f4fd585f170e07ba4cbeaee74f2b8bcb531339bed6bcab3e599b955b907fcf2e7e1dabc556e0109f5d34c6fdb39ed956eabe29a1253817764fcbbf33d8324381a33552820a36c4ae909415006978089b999258f6260656db2a468bd631b67a815a457993ce7e158faa018a20d18f42db5512b4304e3c39b7c9dbc3ba816373b459a3062b5d51ae36fb10625041738aed873d4aa6a506162aa0be670e15721552b191f9194c26554316cd9512386addae77899839a1049674605877f38a68d40eec3cb36851aa4e4e6bb8308d316bed512f4d8136f345951e6bb91fbd65f0761b2208b537d01c71c1145773360bd1033a3cd21aa3dad2bec46a4afe9eb15c552bc7f64b0d47fbce7f0f3fa161158b8ba145c9c2737f21eac133ff230c8324da9d3b59ee3ba336b1170fb4e2793aa022484dfa41b75bb4cabd0bb0de6b53ef3f895e9c305df2e64249f7ef04387e34a20c116716ebd3947e029b3bffaae6ce28fbba7f8544284fc7a472508237e8330072c103eb65c0b4ff678eec8b6b849b64ab6c349bf1258057384d25e72fab8111496c46a002bcb06c900ca1db34d8f6cf983f8b20fc0860362c8ee3ab7299ff79b529961a7ecb4c6907dd22b1ecfa4a5f84405c0f1981af07663f7aa8930747b00311c731127bb83a91e00fdf5c96b773df0cbaf1d724b8c7d163e0af701ad35e52a711c718cc318f2ac0c7299a7e98ce368b29306dfc113630de2d0049f0dbeb2c7d98dcc4984150e9f7b67508e868790fcd1416fe634d9f13845d6e0c12be044e8411984e0df836ed6f1ee237882b0fee166ef8c0ca43004011bc455c3b955485019a93904fc77a6ba91e852d079ad28f915758ee6b5b8216603b5fb3945add080041b86cd2848c1ce09131108ab9f7448d21922eff4899cceb00c1b760742a7b2a9f71a41908854908bb05eedf1995735ed7813e4d88929ec6b62e0de29377683a28a72799514c5035418506dafd33d9966515223a8a76aef1bac1128a9934d1949f7f23b57906fb000520539b0b00f1e8588f94f94d4c1f55c9a2d92316731ee2d087c0e833520c7342782b283f0f694f7b6097e75bf8c267600f5cb575ee2c435c007f98256c4f882c4229c2589c686ca58eb0a844c6323758b9fc35479c738d006efae84de0a2345c72ce01092c5268b721d3b1e45299cc41e6887f7374eadb26d610b62eca056f5310a23d7529f6302d1c031bb45830fd2e4a0b1f179d07a67c6a3f38b4281ee089565b4694172bcf9e3611a7b037c00ea4e91e0792b7ab539da0582e8bfe410df66f10f1383d6415a3f71b7fba45363b008529336f01a252777932928d39b60d7d5185c5c190049307fcc81821275865288bde7cd2dfef52dfb4726252d604554fd82a9fc0b4cdf641e8d0001b2164111b4b47ee322f0b51dc68d0aa2f010c5b4452d8bc014bd338e82d8c80ac3cd51d825b7974560786d9ebb2e0c21a74ed498ea64e4d9f8dfda4eefa38510b0d0a8e5355d158cadb292f5ea467fb4192076521645ca24aed9b30a70e7cec7edb954f66ec3de65671712479d398c386ba02b0bfb4e59984e856a6db6a649f62880e8ce3c09252cf8317a39fffd69977d5ed01b526fbfddfa7fc7eb886e35f6252652dab31a909fe8a303585521b1c7cf5ff4ac76597d301131ff67fefe15a63832e513b05010cfa352c734064d9d68b6e0cd26ccdb2e5a0e76143829f1999781bf4a736c3b7466814ae64e00ed7e3b8e121b1da0983ec4893b6fad39a5f0b459cfb379da3f364902969a163f50db1a90dca915020c1904ce9d8f78a34929109fd8cc126fe322bf005c5fe49fdf63dde5bb9378a8906063aeb8f79e9f9aa5d440faf3a63f34339ff4786274b9f5f40d1e223358f5c8531d424447c418020f419e0fffd08e1daf07c66008e6b2c097126ed6510388f43cda197b1192cf60c8873e269f4d0b17fec3ecdb19bd14f322e569341830bdc7d5d311b1741a276b4c6782e96946ac4caf4bc46915c132ed7d4e0b427420519e6b0f6554d9a484ae389465c69592a4b228af2913a594c1a13c876d94aa8690725d6ba75de15d5b052e24a00546afc26ae3872dd9e5ca2c8a412c1deb1ed35ace47559f865dbbe5dd5c0a839d0facdfef56e9aec2a9cefa92d9d52c1ff7ec336337facab46241f6ef8ae1702fb9942ecac0db2c291fe2e5a1eee708bc0821ae408476217841bfa82729adcc3f9a83598c200ec5c4ac9c0206113d3b244796d10a7ca019abed7c02e3a03331e0104d9defd934cb60206738108b642e0dcc8b36cfd656f78d08e25a1968fdf55b5dd6db78e7d345436263e65be2b28223afc79acb0968bab1a85c5ba68ed7a9800fd6bdbb8b3f602f82aa8fd98e6419e4c86290042f7a23c32b2832f0b2dc9f2005f66af0504169d331ec9d195a8206fc7c85e99146d845ec79cb279c5c8c0981e3f8bd76ed6b98ba01c4adce425336a888d4663b6508c09a6861b8012b368123e16b26966b8852a73d6ec26f9964ba10e0795cd50323e0b79ae83ad40958a21f0f552d07791c1157ff315c0c5e04617f3e1d7ed6b0025a1b5ffaa7fb35aa4bcc012179fdb6df006a89142c668e093fc98c95b0021e81fe2075794906769d43fa097e36a484f0c0244569d33dd308732090dd8cae7a158e17829caa29da62f12f1e1126d29720597112fb511e285169beda042542d507e282c46f49889cf89152b0a3c4bfe5147f1b2133c62d6b26c128ec3a5554bd9d0183182a01e715f9374c584e66204e7b965127c03f9ef284b5098b2b2a1ff866d4bf37f260b955cb868dfb653824f72b0a96256c877f50c8c019d37ec7a958443ecd02d239173cb1c9acc45a72f30d628eb5b8202a11776e2d9e8a4e95d6048410e3b8b6287f1e23c131c0229b7871dacb9e982884407e49ad09b1a3c1ef15b7bf2c96c1fe55773a0c2eb54b4e8ffa81cc416bc7fbe6429e329a0a470938e657f7181873397329fe5b4b5d06f0d14c6c3939209b325489c24a37181a53c1109cd1202c449650d2de506f74574a3ba1866628b86a726c12ebf6259d699ec749d0eede4bbf19f67deddd5802dba006aba138ad3c25cca227e871b69dc4eab5483159a32d3fe51485f5e6ff9bb660e62f67528974e01bf3ce3ab9894ad24627848a804c4eb54de8b965509a706394da0c885e188a198028134ef27879a413ceb8dc21591fe3e0664d595ff1bf34a360f407d1c695f44fd74d38799d124835ee8526a0e4765d68d368317efea2ec568b198029ab42a85bbbc5ac2adaa74a0c97d00b4796d534c4227a7cc71924a730a523e981545e401a938da0ffb5232407eddab0bd283caa4ddad0aebf6a917b910473eb9d14d163c69d1bc7c7986c9c945af4eea62a965c640148b4c8d30129c6ab85f39e2a326d84bb295ffb85bba4adf2db17024784cb5e6eb5ef7e3178b1544b2f7fd05bd366705258ab378630f7eda5f0a246c0467d2c4b5d278932fcd824c0703c6ccdd67701ce923217b71ae9bbcfd2447289690fac045a57f4b906a04d279b34783266295e9ecdbc3992dc14e248eb84bc80ba8f6ea19dd0db83188330fe52b1f082ad4e4c001658ae03ee0c09c927da102acb9f5b51230fc48c58f7ab85bb2b170039fc9ba55c3959cdc7af8698c6adad6bfd5d796380200b6cd946c9be325a8d611e2e890c8dd5a2c6f6c6648dbdbe5cd52d62f62bd7aebdbab0ad7ac095993192c5623bc5f751a10138c90dd7b57f0b298e1c70786a390b6c67f210d92c941bef6635acbcfe490287fa717dc259218dfc18856d98a450deb9e63425e8f001875f6c4c47a2c04398e20bbc58da12844e65e9414289cb61c202abe9eded57a89661c69c26b2ecbb5192f3c80849918a71ac9f2fde82c319565d632262f4fabaf88e60dca3bffcad93783bab1b03c84adb814f94c55fb7a4f82d49f2878053c84788465a8c0dd58be9b3fbf6b53f58f695a986eb9e33754adf2bc4920d3bf6fc76527b77e49576a4ae02d186c491f3c1e000e20d257a1c79b255b22e4f9b061e34ad2706d5e3e728161a0b822ae1a2323f30ab6698681f77854a39ebc8797a40b4a4d15e1eba63eb7d49432943b3cf33bd3a9c8f3347b1404ce52480b339ade2270802805f5bca80eb0ab8fc3b1e3bccc3c20038c148c7e0270ae73151d078936ffbf092522f10a98abb89487b79b1291b88722bb10f4bd2cd80d94fe75af0279483fc910e23defb27c636826b9aa191abd14c69e04aae3998b7ff95c728f41e1205212d001ea05611200f030a1de11e60ebefdb83521203f5af31f1418cfe4389d9590522856e52a58099c19fd65360a7a4e01ef631c9ef3b1197d1fd973009f55a41477605bc42f41928a3b8a1e2f885478eba85b6c0b4116a5659d4d47f0a22c0fd21d507ccd76132b1f4e3ec90722876f5edf4050650cf288d31ade7fbef0933e3a530006addc6d82bd76c17763871cb188836e55f90f953ce010e30538f011606f5ab1f0252901eb90d2180d5e7f9553ee551eb4cfe8ef5307071118c87e0aa3894a82d894051e2b5e10dece4a3bb69cceea908cd5b169d35efb67e8fe4d64fc20b216b31da4b8df9df529589868e3dc8d68d698d1a6ff214deb8a9fb35116e34dc1ef249ef47a1ef19475d48a16eff2d73c0966550712a5fbb20b6d23effe869965855d90ffb0bd84f445907377b245b821081491e28a6b9571d407c5f2f45d8583f155d94a6fa6a34342940428a85a739c3e07314fb34c4c660db8028f0c50c3686699adbaa7d251c1a536b44e9f9ae2b9f983ed65cb27cac4757f0095571ddec284e37cfb441d2be2c0f7a489efdeccd271fa10db6b9c1d31adbf65dc2769c3a159950fc67b751fe330877f10b91127bb1755563d352162695d7a1494724fde4e2ba5708f133cdd3b0866986f9e63425cd20048e2a8736a930c6f2ad0de4fd705d7cf97c9a02493a44ced2734b8352ca6846943f6fe5546b7287bcd5a8547916832c228368c476036040279437ac4cef2e56a6e990eb906b25f1ba3898e09644df5bd79363076c571ff98df33240fbc4f5e672511312c14a9d7edb861a5cb2756f235f9075031a6c417b2c092364a49091c331b519252bfbfc0e14cdfa21d7aff5bd69c99182583279f15abffdeb030ffb68ee2553bad4eec1aa6f4eb18e3a978503b438c0bb79d22bbb4101423fb30af8ccb0a14aa1a4c7b33ac3ccba055ec310defb2e20c5280510f66a9caaad541d6da318b477239fd679cbb80ebb4b551f0d02cbb7e414e089779bd47d9887763805105cd3076bd46c4e39a107b075ee98bf8807305510c771f1319bf1c77417c4b430379087fec2f872a21e333fd2278c33798bba846bf1984da88a94bd533f227c4ce1f6b089b51ed370f633240c17818a507b705ed7155badc722c2e35661910cc1bc616ab07e9ff2050ad5ea3b0508537617f83836ac15cba8156de15b0a6b55aa19b964d3be159912263dab3e8f9d4f16473c5c4900f5e8a73a332785a9edef217b3196df8a05b75e6615edfb905d0ce3b7d2c02def5945fb3d0453bad3442d0b0547fd9fada8d7648866124aabbe6e07fe9838d1e97b3b7b268048bc0a3ec24c747ab58dca2c82952aef6d809f512716f2deee46a6cd55d1688b4b5b018c4eb3b63b7fc422deafaaa910a6f405c7a447fc952b3806e7f1d24b4126565660a09be3600d85619b1f61011d1493c06d6d2e012507f62121b2481f4145fe3f88422445a36cbe2e698301508c56e265d0276c4a6a7f7f456bc89b9bd04565a8704e6bbe1069c19c35426c76d505a9bb800a09bbb9491bb255c02e0050ce78f3e855860c1686c1dbe1e66f2de55dcd3c49556c827a245888ac97c531d76c180fb9a6868263e2c013f3e347ad8ff80a8c10b5bf78d01436cb9356a07ad258776de09c67fa57297fcec20d71951e5f331b93d4a56327ac350a80cb599b7fc579eaf17622dbb1589e35e5b2b1851697f59228b256861e9bfb41bb5ad963b0c5e58e150afddc476ec2e81fcef15dc6d47d86f4316a6f1e7123cecf542d3ccd082e4c4e6d2b212450e493975ddb89a29cd96693e5322da19d218c66cd54ba9ab2d28125d21cc644b78c05458231e2354cda7b9b48264a23656725f8cafcb2c3fca34f99d9221d25466fccdab1d14f311d2b4954b9db7fd42f921dd789b44a23b98bc24d950f15fe5105fb2ec2f098e9fb13804047249056cef2776ca7464d94ca4d43f11df3d35164c2282e0d8b2ff1a76cc2bcb5c59f0354ae280c1f7210ad1517efba2ec5719534156c9d0b0224f04833db4710049202bcd2896da80103dc2153c15e719644263e0794d89ff72c2b3b82a4b014fa4026d6e1ba260e37977620c74ffc864c319af1c04682b3d1219e80ae8d6c37b122cc6e6986e2bb75cfa0fd674e97b2dd8ab9600f50eb46e41f131d774b8de03101f7c8ea3ef7e652773df37299701c23804a5419ac188837415c0854ed3f0d5b9f50a710d7f0e55563128dbf9f3291591195a938c77bd0f91c9a311845e3169ea8876936e811b7fa672c510a29a3e04a24be0b09f823513fa48cd091062ee43ba6ab004a3dcc89cdab8fe22efbafc7bbd6b9f929b6992f246bbe9b91970c06495730863ec176a45b0bb0eb3f86fb11cc37b75d109e9f8c9d87be3a156ace227c711961e4d8a9b22bd2894652c6d1d7e4ef53c798b2f062521fcdb1e128f46f5d097ef1037e3890a148fd78de95105b54505729425158e4cc2525ada19f140035abddfb7cfe21731e35b6f8a13ecc215521d33e7b8c08f6c805722c046eee62f4a3f6958ea7c1691185ab6ea1a4600919ac2f08aadbe2796054353124027a8b5d899aa25168c8d7a1a26b3025332f13c04f5a8925b74278b337fdc852b4a8f0c22783d8745c12a3552693098ddaaf20e8b1a18b58159493914a5396828d9b061a59b004c6f01a9c7e5edcf56b7a2be8ce1da1e524a340cf789c2c27c80211b9b446d5c64f6f05054ac8edc0dde5008013bb22500a4258551959a2450442c0a2b71294a02c4d9d44305d566cbe90d34a1cda8ae7475634215d08742927fe7460836c66cba4aba249e581eaaea098dfa6aac0779f9250a27bd2f7270c2e343c7508873259f84c28d046d728286d1c97c25dfe0b9a80f45b69fdc50e4151febe9b459abe536a4198b58a1aad70261af924be7c3895698b4bf86aa1b6c6ad77ac7068c63cfb03736c41330370ede7a1f907ce0f7023ab49ed522cae580309cae92461d6cbd0e415a95009eae266bffb6e09c406e19a21c4e37ed32475245e1df2a9a7e883d5542d6b1271836dcbed50078202618c05f41ac48fc8e3eaf911b9180101d5fcb40a0c8c8b479257ffbff715ad22e68925b41ec301753c87044ed47fca7ffa74bcdbc40bfd989f8d75ed28f7794d0f45db7d34a9ebd54796942433bb40e488b813680f92a5a27136ba0c4c7a6a4821e50593e0e5b6780554ec2a548a0faa6297ca19bd846fbaf63ce9ac576013c22b3493810a7444164c54cbf5cef03d4b1d72f0d9025e8ff4c445bae1531d3efbdf2f3f1065d82d1fc16763c38bab5a8507e5d6007fbaf2fef33aac7fc22744fd012ec318d0adf87379bc74067d07b1e23070d047fdda82d471a26c395b9f63ac1203458377c4d74efc0aa48a158c586411992c67ad81dc7b3b10b0c2390a59ad5f4a45cac782e885049373be84e14c1d4e08ec237ae717793e13304047aec0a1e111e7194ec147edf14c12c12f4b5455696bc44f7122cfac12ac12d77b06ba92b69db9f96930911bd2846b39d427507c789c7692aa38beabfa828b4caa73360a42f6570c813bd609950d8bf73051b451b97eb4f988185adfc28931b3fbc51ed893a4ede7c77f291ac13a22aae28f5cf6050da3bc67a38aac63c3a1e56a933e228fcebcec44ca4ee92c6e777878389d8d42876069244729955dc15741568357f30bc700ac96f76eb4a11d40e5c882e22e6ed157fe5310ebbe53e439c2a4a9283718bb29bcb647e630c54de26358803895c6b1aa89016c14169bc11b2d0315745766ef75709a9fa1196830e445a5023e0652241d409934cf0ce6827639e2359a494cff156d2853817ea1d576bdfaffedac3aed08b5051c9dec746026ddd0b51564c5584fea1e4b820a5721f4ab6eb52119aca67cce3683793a25cbbd30e9670a17071eb81c09e419293dd1ae0581ee1e34b96128f1adac46f391ae35330d3c241f7b5c7374a0da8c85894d144d2767c49f140f04e6cc0fe968b87d28fc49001009b1d157dd41c362c9af2a2dde0d538e3b8089301d0321f87467249e2810b4358cd70681d62e59a47614719754de4eec593f05af4fd83031c5bf5c53b9d293d2bd59503d7b26a0ce4eac2ce2b821f4b022d8b2fdeb9ca361962995f8a6b1bf6993139b41cdfb75a5e38f6a145521feb7849e57dc0b9d3ec5a2310f4e1755540e6d0b1a0202314b6f408cd1ebc9074e0e0c85f978808b1eee0815a9b10f88c8347d070abb6089f7bb1636dfeca6e57acd95b63bd6ebc8f053560250c2a88cc8ae96da1afa9a90f2eccea482cb8c506eae8d92cace4a047f72aeb3c31dbcb0d2b47d454b286c8978305c93f44c968a298a6ff0c61586fe8defa6541eb64739dcb7df5d04769ab86edb4c005cf0eddd5ed6582ad551115b80319c5d41218aa68f57a1dddcaa302919f9ef9336b3873465e25450c1df1e4b91f45ae8b96e6c26028afaeeed0d4a3bb474e53c2b4f02b026bcb48a23ea0591da1dd00f0e0f812d2169be9541b87b6655448c2c0f321e44775d38ab5068b9b51de9f92a91909be8a2622d78f0a28566be2a437b528f253ea61411bfc3b05ce8170f8535ed4e8bfd26d059da2717c30819b9e5374fb630a0143b5850b8904ec6f1275cecd6b1f4fbd89dab8e63515c3fdeb68f494ba8486c9a72d94d07456080a9b6a53acc37bf444dec6afaaf20de0e4a12cb875816c0cb8fa7ea83b4f24d06b5520e8311121cf29cbf9585008a5665deeaa5bdcf5a58eecf7cadaba2a92c62d8fb9757f4221058b41df7c47aae0039e1aec2d7aa54989c250ca62a038e3f5ef60b48806e3a23e7943e92442449137649f87ce99133a809604b8288de67e1bfe7a9d92844318bec8ed31c5b4d999249a2d8db19b414dce408541dbb2a2499e249d2397b97a4e13ccb7e2e02ec66f094f6269ef84a741652c3af0c6baecb94e4cdaa49e510d342ec3436198ea0f7e8c376cf8d3f9cd4ddc498d1e35ae85b8c21db70c5a70f6ba30dd383682fbb4392b4fac7bb8e0c5591356c57648ebc09dfeaa88932f309b199963cfd4bf3944db74048d1819f19ea264c48ab5c4795085f6bf00e019a7bc5daaf61ea6c3a6a00faaa5639173839f4805175f6473a5ba97448bb26c596f5363580d8172d36ac7335a4471d4b0055097aef591f09c48984b81d7fd0fd33279dab6827ddc5d80a7023fab7ad26b8c3dab86f0cc0879b883858f72f664389c7e1b57951bfa63f0d4d1498fdd346530408ad758af8516a8a572e91633a0dcd716b08499b7442e0de97131ac2156a7a3671e185d48ab1f22130e8cb5665bf66655a10b1afd6d5f318394e8d84768bef4f64ffa8932d53486ab571f81868f073b164946267b97d465fd4bc89f10b0914f7191fd057ffb83b2796582c7b2ff4fa883ae1cc13b2d5c6e1c30480a93e6b95cf9574dcc238eba8b65481837cb08bcbcf9a219fbe5b1f65fee63e7a141be0de047d804d4c274882608f421bca37bdea909f1e31892a9deeba4a500f1cc8176d727685898c185c38e13ffb987323d63d47ec9555d873a73b82302e3e12b6b291701e5b4f8ed524da791c9ae9b9a0649a008708d37c4a4e14ac078316c5b357968ffa6cc7657d0ee7bc7bdfc829402013429013ab8495610794c88869d91d35038c1518cd1d50cfe2e5c98e696586920340eb7a9de3b4a12a46e92da5983431584a0ba42e043f70e6cb19586d778b717b432acd1f3f663dd611c1bbcaba199f995b282389cfee63fe80ba276018c4a52b1e88aa9eca544612eda6fb347978d872e420fba1862039b69c3247956cf60b905d259b6b960d07aa96cb9d59ce110ae728da9c1c5b26866e10e22cfe112b4850c1965cc000b42a0b52daa7bc341602d707034c898cddb755f017a994e1a33dc6b4796a8360817c042ea1b0c557d944fecba66a4bd9ca07f682ffc0aca618970399029b65b6324deab1e5bacc90f10ad0bed90514cda481da16ddd95d9f3b982c38c90022fb4b873b13a5956c8768aa56c17afa4bfe91258a0762c21fe6f4c58762496e6aba168c0490a947dee009601b4f627ed48aaee0195fb5f5520d36174c41332d2364bee2c738244b8e5a563c43dfccbd1de620250e9bb8fa1d13da5fd4307a049769a3da8368ebfaf3feef5d94796f288fae9c080f280241cd8932ceb4e6216efa22e896f151bcf0291c8ddde81d0587c959377d54981cd3c8c78d0ee4ba8c4f7a9ebfa98c184829b838e3a3505b1c4dd8238d71a846b225cbea8a2e3e904b251f6d3558ba408b534971e404839597c8d258cf9bcd9e53855a38d18070ec61c3495b3c4c86c4db3eb8c7f46f03b1d0f0d3e05ff24926f4d761390d7919bb799dd8bbf46325ece63e2b0718fdebdb96995294a69e877e777b5e4dc0388f0a806e8f0f4c7e05ec46f4b93d6377f2c2aef7ba517113219099a839e97523f311d0795beb2fd804d6a34747a57367d94dba901e92b96178472503991773735a1dfff33d956e3ab09ef0c66d0fc189d9b2e4db319117f86028bfa2e1c90d789b8d2d72ce16c8f9dad8689ca2fabaaf1a41711e8997fa29cff8984f592066dbd1cc8310164eff1bec7114b3c2f0efc51fd6793627371bb0e7fd282c6ac8bfc18fbdf0f6b42bac8cc4834bc5b1ca47890176ecfe01980d443adc0f57b882701a38ff065ce1b0d7c2151bfd4a9ef0f6a106a049fedf1211f00c0579208fffcd1127dc668fb14880fc02223feec403292676a06e746c9e8ddb53929d77acf585944eac7ab6cd8c7d2a24ce44a7a76d4d99225859e5b9bd3e53542b4f9eb72fb4ab0ac59958f5683b2f930856843cb74f58cbe7abbef32ead78be5d1f004b34a2e227977434c5fb7d48ea7d68818644c644d2454f8e7ca72e394322052c218763a89423c918086e0e1299fda825dc1c0408c65190758e372f8a8e31474157ab438ac6863ba2d17281c007639f39eee998ed49c719be8223ed71f90aa92eb2fc39393c5d1036704053f0978506c08b855880cc862940151f174ab2b60689c7dee7bce5349698026010fbc080b24c34bf3cdd4478c0ac08fac758bc2b106ab9fb26a9c998a69d15af84f61ae87bec1e8b9bb749e788eedc62a15df9e05c32fbf96da6e2fbf6586ca4232b5041445c1e5c4de2d77c6b14a0884e487481247b96bbea488e1805d5554389f8702169f39136020768251b6df481bba944594e6d6ff108764bc6ba2997bce48e301bd20389627309600f55e099395160162cb0b38226215392bc91fd8969350fb2d2c76b1f41821bda2e91d4c33a8c796634a9c96d7857e5f69ab5023db4c15e92979f7ee27a79979beb6299ee6e52eb4c6b8973e2c377c1f6bfe4fcc7de6ee94edd4e1175b691814d1da0d641d97e7560decc04b7f455bbf122b38e698ae0da89cc74d1a278251e57cfff494143b59998152caa795c7f3002879e6b1b4c522b01684a2028cffecc478fb8bf1d4640fa112b50d8729f7749b71fc357c7d85b4266ab51986f394edc65c40bc46b500dc407128d1903f8c5a6005a9321e3dc6f0632d00e435348ddfe1157d2a310e712a1d9fca90623c8e5f6a7a3ac1147c594e418b645ae5d1d3c1e326ce67c5921fabe9b1443faba441302c49bb93389c59b5ce7d328f72a0d8019e95312996ada084caea59347e6e1b625e616c1fcbb5d69125d1e4c679fb87b5bd38ab6b61c76ab89cb243ccc89a2ea8d22effa0e875d74ab2cd79f9b4653f4c58eb7e7854ae5759b8cf47c60e5345a98914cb151c7508e0630662346db2fe8ed083e982dda421e62d5b3d78f1fc718da91ae0bbc60bfaccd92e94ba0fbc9c4d006512add2c14ab4881118d014ddd0ac428d9aa225c5b28b77852f4ef14929102264ad60ff6566641c74390eceab590f993e76ae2fd111ced8be203023e6d4ec6fd7592ba08ee008340405db3a7e159117e28fb7215d2461e0ca47e61ea59ba0e9f54ae5f5d4fb137f8e89eeba8d66d438f27b00321c18f94f932195d2332d2410fce72b4f538c930247d2ce53b0a77db6c7ca284f3cae0f4651e3d6e7670d6c7b2b7c37994a5ec4672e07f1773dd9b49936cc62ed94428b4417319f5ab9407a78188b4720c4357dfd910ff8882175d73cd1d9460236da97b8e2107ce96c28ca6ed250ddee897547096e3c49dad9d84953a40643499af8e99c71ed89604459b5c8ae72dcc6f10899ab486cbc95da258c313b690dea3d3737c48d9548ccccd4a689c56c35a66004c2a6cbe89482a15bd438e351f2ad4ff21f85956f9d89241ebf3f0e06f53a091e9861f17b559d09c610aa0a4e896156f43c60d04ca539b2530c360e47f0392df0ddf971865bd0e1c7bc19316cca9e0e8de14ca239aa1ace175a8778c12595053065aeafbef499e9369bb21f0769986d0eb27bfc9f64023878bb8c33decee8919bc7cbf5a49253c4d9839179a4bb8a2da791c5c37e5979e1261f8ad04f00e4079c2b4ce1f76d2b3a9dafaf613680baa60594eb0c6110c62aa65decde9528c2d6f1e60527cf8cd3cbdc125b8d0f9265d984862b5b2bc565f7326b512828326219a453193fec1bc47500a5e788e4861439bdae1e87cfffeba9684cab09bcfbd921c8851729ce0aa15ce36257f0fa6ee02eec83ee8f3da877019af2198ebf8f085c6b9190f4cd5a076e3841991aa385e3128fb6aa2d6e38001094eee9a87ed1a7169148193ee121fddbb9990c3475ecda5000611061cac99669c8095cace984dd3cd9c7f19cbe913db010354e90ed5620cff1374bd78ce2439a65a77cb60b565ef5d64d87847119c4dd0e0a9a52d90775f48da932e11516306ef866bf1b142200da74d18b2259621e5fcf3acab4603ce61a3bd718816f33b0532270a0e3a0cda258e2764e2501da92e4fbf7cc7f1cc1e3c07319a161e471389c12365a685ba51141191f2b0f07ddda158db3d114b47383b3996eee3c4e246718e9271524038af52ceb05a049d44f4f76ea5a049c45bad1685ee1ba50e17ea566bdb91be0577fde0e9226b008ed099a37b2b4ce0d9ad26a142297f1d582734ffd9e63d96c7460f86a014570be4ba68244a7a92ca0484ee52be550a4f985dc460810d555b5df228ce8b8a8c25321ca9928259ca96dd829f31882f4ac2270a7ae0b7d445bd6e8430200c9ca57d28dfd3087f76c8fff0a5abc399663f7990afa37a5b7295bd4141b4e4bffced78e98751b642c3b7f1b85d1139676039c6c13a4a3795e086bd4b4f3cd79d6384cf421714bd3d97762f9e4a90422f12b4893d45f9f56e2ce78120a3fdd298e76c10ee36c99353a23579044b01f958ffd27e3b640f4289829f7b9680ba3da1aa2be7e156393542a3f3a006cd5cccd49e418f1b25779c1daca3c681910c4bdd55fb696b6980b9f14684ff7b6442ee264a62d5dfab72beda94eb00caff16888141e4c6202de5652c574fabdd698430e1f0a50338d61d341b5b23933c48966e81b7eced292e76c38da7ce4f940bb29190888ef27798c6ffd2e6a51774cc2b429226e0f845c2dba12612bc8140b6226eb8138e136e16b9918f13509bdd7a3c11e96750c391c4d504054552d66dab88581434d92631ea89aa83e7bac07baa6cbe07f9b703c9a91157f40561220903e61357e9a29ce11f7b2f80e270e39216a59cdda6f80a5d3ffa7fe8f191439bb87b4f97784aedc697685f2a41e3a897e47e1587877e25db50e951b7cf700568221227a7d01ff3001312d21b8e80caf70d5e99524c99a3105beac641d95b28c4e47380f2201b06b0c9415258ee94390035e206919600751a999afe1383d5eff9f5630bfe90b09491af8e01a1ac00472165294619a7db903616fc1c0463e21a5409a7edaa15511dc2d0b777fd37a0b40d7505a447c94869d4ba1972950691034aea6c539ed080344abc923a495827570601c44b64dc24e13f934d9838aa30f804435395e4fdb65bc911f4c3a43ca891cd4c33abb0630605866e8313c8ad88129b2ca7ed46ee027edb9508ef084e190466c2de11869cd9701b89a7a47d0a99181b601f8a636bf3bd948c9c24173737e3ddf3e8db25eaf855c93b033026cf8f00817e1439104fd114dae352132d0fba1cc3b9762918e4b42c59c1b615cece5338591450de8b5f77c92e765f1ced225c3205b0bdb9171babe3a606c539034eaa70a9a2221cbb3afa74fd5ba77e798b897d1bc524ecb2b55dca0c94bde51c96d53f630e280adeb7a300ee973c883bc5ddff5e8fc5f0f88aa720a454bb55e5cafaba6285b0a8ae2fb341b8b69906c26f8b1e624a1933d5b901a5365d4fcee7456517932448284bd3506f7ca58e97cda26d97e69d243ae09570f04d34bcea1349cff5ef12da7e728fbe69b3c1a96db2954eef79874893cecca13195af035a091c66efdaa386089983363e748ea6fd3a35b44f41f2eab35b308c87dfb152837f4ec3c0a9bda5134f9cdd6266aa3b3432382d79393efffeec16d96c6d412d40d9ec016a1ee1eb3fdae36c7b2556f4fba2d5fbfbe094db0475eedc4bafb5eed072788ade31689c9819049cfa6ed39edb548e90f183af1c16271aa7b547547578bea11a80149c7c2dd906987aed19fe33ea2d047b9e81c54c6995aac2a5483b46771c9d91505b2089c04b1cd65951b978230cb525ba41e204b267979aaf993754388c429b4278c96330288178531fd78b1b8f75d317e2b812ae4956c877b602344f753e88de0bf19b078b12a2b7d06b4a11d104ffb798b4b5c11263a34aba03e581f650885eec7f24835fac10d3ffdf132b7aade77addaf2228e1a2710bb56778d4f80f1aef1b90ef374553d95eb9d293dc6c021aee319a72bb20ba782819bc43ae1426e5ab79f02bd7a847da10e3656813ea6514cc9b355f25f4858f0e6f1606863761401517b7822a89c747cfebf148c7d9ad6642f2f77db3550bce82f4ede12c3cfea27578bc4bda2e997469a54c4c8bd360fd5f05b135ff286546dfdd977ee8fef6856f439a80190990545e5c72ec6d5456ce7034de229d6c47f682e6a8a50e555f28e8a43c6b6da29ca36aa8651fdbb840c5117f86953b89f9e47551a8d8811d97968ed51cbd9405df88e9049c17607aec5d1476957d23622fb361c4efe3a85f6b053552d6aba5137a65f8bd7fb69e1d3de5f424cf87ec1466dcbd84fb90dfb32e2291fa932f9b7c610005301d34cec92e09e1c0cec95e12cd4ab10da43ff86502f383074e3ef041396be4f77e6aa41ae11ba1f2f99cb7e8ba71ec0f1c0a854fb0c4c24d2a398e5340c399461649423a7ea7d2cb804d86aeb120bc6e2421a669a6dade65cb2c7eff0044999212b64e018c8a2a7f76ebd073428f2b0240425cf363fb7331ef79ce3b98dff307e559388443e252ea4e45b0d3127d04b5f24ec193b3fc181651dae6c693ea9daaa7112d1108fc2ec05fb21345ba9552e56cd0fd186ca96e9a5fc313b494025afef56359405a554d07c8bbbc99b976be40a95760b662685c32a1767ee038b887004852f0556d59798b989dc4fe17c36ec47bfa87aad6711bfdcaafa4b16b6a2df769f94d6f2596b064be974a70df5ef3f1ef55b37bef2df7de52a624657e06fd05f10551878d404d9ad1ca7e68e34f175fbe88df4041b88bea247dd08159c650491e7e8c0e3b1e48a03562925c52105eda9e9baace4297ebb71c70dbee5ab4146ec48db811f872fde65cb4d209dc36b7c80ec2977855ae875876d107be5c2f1ac7785d97ec78f9753d29cb6a1d8d26e94563ed4af8223f5a89a995389bff1dc3699e89102cd4e04c8a134e38a154d9d124f8fe432effa670c40c6510c2c15088d00f2ce136618c106758d881a110a116ee2e42a8e1f8e198c2a27164e1250a5de47bdfd96553549959b47816410891cd2bdd26672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276707424a6750a1102886301402c58ac80a02b984a69f951f7a89006882d98fb4b185e5111c1f5bedc0524c25b02ecc13c61a038e9f1be339519934025faead81250545c5c9906bad8df84a1c2b4f35b0d420c4d293828262234ef11e282d15272736621541273a4dc3f2893e8e40558b15d94ade307c13493339c4091cdfa320554f481f74e0eca1740caff4913f6089c5073e4b1c0f7c963c1db8e1fb650ea0c987213ecb1dc09987252038f0599e36f059d668e0b344d9ef773240930d213efb14b8df5b70e6c2521119f8ec4218f8ec452ef0d98da83ac686284053a409e2b34b2108ceaca46029d658e0b3f754e0b3ff50e0b30f617953c49940d7f0fd6e034b5147029fbd47043efb0f087c761cacf2fdae04344520203e3b0d9c1995e290199fbbf580cfbee387cf7e8a41d10234c5223e7c6e2eb0e04c0a102cc521199f3bc8019f9b488ccf2d448313d0d4343d7cee277ce08cc90d2c750d8ccfadf3e273a778e8ef1f1d73f2a6c669c0e7f6019c51f1fdcd03965a87019f9b6687cf6d8377744c8919a0a98174f81ccf7004ced4152cf590057c8e2c057c8e430978ef4d5dc4c5e74805159cf982c0520f993e479f99cf1108011f53910968729a08e3329f230f9ce160c96b4a9fa38f98cff1268798ee5b7c8e3330390e0e58f2027c86470c7080cf9106b3e8170134395084a929c2069cc1603e4316013ec3d50b10b0e443dcc5577c864e30799108e3eff219fa08e0b38b017c6e81fb5740a7affdf5a4cf01c001f8fca3daf2384093ac89307006963268923611868597b00f78e076e0fa104d189108e33f04101cb839f30ddc5c35706d4413a6120216c15219b839c3c0bd001ca289262c28889bdb3194056ece2a5043811a9c68c2782680a3e3a5ab25019d08e8404007289a301b20802ed58c210f18f2439168ba8cf8708b60bf321937670eb83168a2e90aea81a6c64b170ac6cdd98b1a1e6a70a2e9e269000ef6d96280ce0e3a5807289a2e1b1d80b04f95bb2c6088028624e01689a6e9a28b60ff1ef2d24cb94b344d2f4dc789a669ba333757045c191a5caa89c9a1a6058e6cb90b50344d9b0833c48b4493341261fc0fa063009d02e8b00082b9794480fb7257dcdc9eaa89261994fdb84d34499e08e303b82e80eb72493737002e0eb7e5daac3022d1e443d80a5b612b1fc288dcf0ff36e21bfedfdf87feffffb3834105876fc1a1e562aa51ad59a6b2d75e1bb1b5d65a6badbd2a2d7f43cb0d37fb916b1bbf6dbc61a9a0540a4b05d9b0b2b26223b66165656565656545c5fedbbfd955180ae3c150180a43613c2c35b0d46023666161616161616161b92aff36bc0d373b4f0db6f14a0bb369b55a988dca6834b211ab8c46a3d168345261f91596959bbd466544a5521941494149b111a3a0a0a0a0a0a0a0a05c9595575951b9b98ba4d8c623db78bb5241a9d495ba8268303131b111d360626262626262a282f22394d1cdfd83238a0775f19ca8385161233e3939393939393939b92aa3a76144c3cdfd43856d6cd2ba6c5aadd66553526bc425b5d65a6b5539799313939b7b87ca884aa532e27dde6723f63ccff33ccff3ae8ac997989434de662a28959aa92011c7452ce2388ee3384ec5fbead59b636aa226cf444dd4e4e948ba88bbaeebbaaeebbaab525f54ef8b8e8db956abd59a361b866118866118865d95eeb98ebb190ea98ca8542a2354a394524a29a5f4aa70bf71f74537c65241a9542ae892f292524a29257d8cde178d493fee124dd8cabdfdb76c66d98f97b276c92284c9deb3ef2c832f59673f2e329f9cfd04b9fb8a1ca0095b4518ffec073bd5a9fdd82afb59390cf28c5d017b0b38d309a04e3ce1e6169848d6f9a003cb57c530d48b847620c61a30c1fac1ed9f6d5dc49f22511ddf80e1cd36e2e9468e37aa86b0841086000408102040800001020408901c9c0b97d9c6d4de8867c02588ddc71b51aeb54f93e00b4af4117b74cf10b0f7209064ffe3be91b8cd764f93b0ae7d4a3e7ffd3c127536a2fc26097e33b2a934d979e43e82b196a2fb52bc69172cf718ba318433d9e73642f26eee225f72730b8d2a26c2bca7373750c9639f899e7eae4f3f4bef8eba18f5e688b8e4e67eed450dede9f700b8ed2191235135002eb34eda6eb49176f3c265d6f1cda5b3836f3ae651ba19f2fbc67174469d0c7b936ddd135551d53d70464a16c6be85b4100c978deabfcc567b732d6a5a7f0eb9bd66557433b4ef6e0e4de52a954a2557703c18fb15384dc2220dc620bc34e00bd63e2bb8ce4a6b03b26ac017ec4300613059b3dff8cd0a9621abce798330e962c83b8410ae1355dd63850b9d077b932ec67573444c6f7669671dcf9f9a168968128639cb57ddd3249f6b1d8dde5518c3d9ad803128b24c3f760f24b99af6f19e7431e8cdd4a49b315f8b249608e72c12bf0310f92452f69b2bd47e18fd35e29d5776282da766bfd15472487c230ef9fb8dc41886611886612a954a9559e01ee04c0d4f77b36874ba05ceb4fb07b1dd9bfb876812e6afc2be76312e0ac391bcd43dee823de97f84f55021354794350247c5df7bbfd91bd187e873e401aedd8ced5b24ea646cdfb9e469d45a47a312b743649f8d54802fd87b364e01c2603f2d89ed9eeee99e9e6dde20eae5ba187d73fc96d921ac1014557354d1802fd847159ce91e7bd8d9de81b18f538847bab8c2988cefd158bf62d17017cc6fda05fbcc65267565d4f22b52ac503354ddb84f935eeba13df5fae841c0b6c7fe51503caf219ce9ae4a0e89b7bf21c2db6b9f6def7533e8953922ee6eeecf6274dfb7467687d8ae100d5541083144cfcf10d54a4814405800180a89c207f60e86f654b3d1078e88456d451a0d129bd9cee61c5c68229be1173066a349d867191a2cd85ad981e5fec1d8b74fc77432be46261feb60f4ad416ff4d124ec7144dcddd823050aecb18fa88ed91efbd8a3637c744cbcd9b69b0dc3a1d102f763994f051a05c51b2f71d9ca6805f61b013869bbe739cb03887c247e87a8ea1cb0d72c8e88653c9edfef38ed820d01c2980fc63ec39e2018fb2c83311e8c7dca176af6d7ae11d271308c7631fcf69536629518164f0c832dd8ad21756a0aa28e298960c208491081085310415e1faff8fd91a5c2fe14899a5760f99bcc3a1e369a3dc4fa479322f48a50513423c903cb9691d87217f959d00116a0a97b4418f95956518002a9f9e59f5d0b583ed7fdc0755d8cf8975f1ee36f7fb9bbfb8a2679f41574914fe567cf5bb053588ed41afd8f21ceede3f60decbe991235fb101fd231415de2563837ac226d04ce6cf1bbfbdc52907cd7bd6633c9edae96e33bca87f770ce3a4ebbc847a5260cc79df22cabd547fe4ff2234652db8a7b1dda575ee26e77affc49beaa89d8699ad466c87e5a653fb9100dcb59233ff909d658d94158deddcd6aa10e026a1f1c644bdcdf1da449b28960d929f8221f06b586bf0f91ef371d83d3313c513a13767bedb279bb397a3723fe85ea62f4c7f71eee83a766f98e92abec5a70a10ed2d7c74ec54ec54ee5166ae934dfd2bee2fa473f6d9de6e918196dac8ff5950bc117195b45b07ce9588030f2a5943c6ab0949f5b7e0bcb2cc017f9b975e0859a7b958233d8cbef23d4e89e88f5c718b11c11fb8d36978d3ee4536c84c4f2860a8c23d6e015be922f49ffa39a92fef1a30c0267a047d9283076714793ba0cbe4879b38d1ffafd5e7fd92f0835ab71a3860bec5ef0a7df6bec0ab6130c3b0caf942b600d9ca2e63a7f7a3d82338d2f17d6876d8bd0f6d0a4eb61375f879ef7c57c7f9f0fa5f7d0311005420b5d6026b196ee4e428757454209a1aa6b015fe284f32291af4343082184f22ff872098982e6afefa16372f561e45926b19a42862adfb121178f1fde9dc119f9fe5ee5dce616594608658bc7203f7ecc0cc60e4663ad070c3ffa95d1860ceeb62390c1f0d6884f7f8b36cbe0d837cbc4da24ef21841042cf8a60bcb94f2bb95e1b3238de9f339e7a0067e2cfbf80101d93a30f9e3fb3c49b94579c1368d224fd8f46b7f6a8f183b0f361845bc6219ee01861e20f8499a72ebeccb89b6dc8e0d1142adc525a35c79f4363f8be0ffb1fb0ffb0ef7bd16f9fa8c4c4e4137dff5dd8a4922b7a1d5a45fef5f23dab22dffbefb74dda29330307fc25009668f8f9322ee08cfcd9c2a2e2f389cca4812ff33f3b4f4da2e14e25a0cb7c1527f33494e7a9a505b8e4f3f7f4374f0555e6a046fcbd0e5d628da85ff29b5b93a7b666dae069f2d29adc796a520b2eb1378ac0dfd71e799ef0fc799a349ff797c521717d179ef7592743bee779ffbd0e7d79b606c9e3885845460beebe7bed256bbea3a6644d583f7b1a3a18fe5996d53aafcf01c01bfc5e5aef3f9be5671fbb1752087b37b76029ad8d968aab15e1287bc097ec45b85a921609aeb60bea70b59c0e87abdd9c66c3d56a2c0d574b7d28ae366b1f19ae163b82e16a2fd585ab9d3c13572b638dc4d5ba0df892bd0edd838b6e0b7cc95e462cba2f544622209a3a08d33fe714614c1bcb26f56f2a5c5f574d7512f4600921e8d4744c2c12051168848c34f1d4a448c33397d915e50542e4c1f2b3ab65c7c479b2d12e72a7ce2b89930cb09438d826d2748c0e9a788a34dacb9025af8799376a929c71c6ef9aec081d3a383ec4b7c6f6a44ffb1bd86713cc7cf706ccd17edff77ddf7d585323867083db16b5ed33d5ee0decb7d7727cfa3a78f4d5bcdf65f2f5494c7eabd5e4b337b0cfde7fdf1d0ff2250f40f865813f0a74ecf0e2ea7880f085850c55f426304a5ef49b892dc938e05872ff06f6f9fb1c8e817002ef80f0eb7e8fe85e7eaffd67e97b19079caba8e3ee096507ff4d6bb9915d20f84dc2ff88b77e87709766413cc30e402e1aeed24e24c35512a31d8ea0e125e9fef2083fe288ea2e5e8497e4ad3a18de80a5a075c42962c1124d34b184b851d7b828e5f51cf79da669de57e9514e8bdfc5e7342d7b4dd3342d6e525e4eb5af7a4d504a29a55dc6695fedbc8ceb5ecbb8d7b48e8b9b949753ad2b69826a99573f8d769b4697a05d4729a5947ed5ebb2fa79dc77da679a5bf9979d9146ea24a7ce451aa9ab384efbfe94b8c5e8947b4da34d50aa518e524a29a5dd129da6691ac7957cf5b392ac7e9ec6699ac6d1cf2817b5295ff328a71238aed3344dd3bce4f344748926344dd338ae2bf9bcef4535fbec7df67995d2cf344ea323ca754ffb689a1228a59c4639fa1cd5a8c74de396d08926adebb2ab1d6bbe846794feb5627124dd3b47b9f7eee68898e466936e467cae9fd208315da252eea2d7755dd7755dd7755dd7755d97a6719cd6c1a0b4aed3b44e139188ba9e2c48057a52d791681a1755947baa048ea39a96691cc7699aa66954a39fd18c769c46359a699c0d9d0cedfb674629a594669ca6659ca6699a46356e5a20528b5e0aa20e293970848c59d682a3971a937dc986b2493e553efcf7121011c6a5cc70025eb76963c7ac03cfb9433ee1737ecf0b6a4648c7810da009cef4631f691c85723f39993fa84ff51bc0991cd551d1441f7bec461158bed6cdd8de9f6eef99cd810358ca321f8c86005930867dc7d69119f69687e83e508eba4e92fecc220f9cd1fe4ccaf939e299699aa4f3ca0b7f6cdb748d13f5e6c7a4dd8cf92d7fc89bac9331a7a3dafd1ada6cb061150205552250e649a40e9232bccde4a84ac0d0d42ff10623b510432336a4bcaeae7b5abf44f42dfaaafd25a5fcd6beebf9f4e76bbfbd5f42aea0c2f43728582a275adbb7cf0fb6c1fa4df69b4ce495d41e47d5e4eec9b04786e47317c15813e90ee2fce692dc7b6f0d1d0f7d43bbdf3ef76f37a2b2cbd2c5e8ef7efbbba292327a12cae84445f7c8745fbfe4bd875efa27f1d25fed66920d17b64b564390ca72b7d744d9df10e1ec7be56679923bbca572b30fe1940b516e96c1d96f4697869bab77efc9bd26b7bbdff5ea779f4bbe23a1df5d961c7dac7433ba17ddbc3d7d15c8653662ad7de08b8bec69a0279c80301809fbc748b547f5ef98c2d8efc87ba35a4d1555c74c22ab944e86dcbedf6fb24cd3ecec5a486c8d3c55ec311eae058b0d61ac881069a57ad2c86f7ca43d6ced6a4d60edb32ef98dbb60af691fa1a97b220cf699f6392416fd0d1116414cd2185bb990dce12d1f7228b25be1ebf6bee4e9e7f6f96e4a17a3e4e688d8f371837df7c48a5bbabbbbbbbbbb471d0f2db234743344df77c3c1710010a5f6e12ed35f351a527f3a188d69e85cd5042bc0526c792b3843f2d34796f363cb4bd715fd77453550f4dbcd5d033c5f23113d89c8bb24f73bdacdf0aef4cf647ad5a4d6e3d812b5ba94286af6d56ae5590ac7d9883feb73a393f21c4098f9d5b6d00e7ae0495a795d688173af5c89378314bd821d7f9c484b3c5bb4ea8f8c8c542fe22a1c5722d1ddba19a27755c7c0950cd195a26c9565243a4574786c2c4444ecc15508a0cbfc58238524864415fc90e10b8e4bec4f1cfa812ff33d3a81091006a8898c6688ba17f3bac837918b44ed23bba93aa3d4ebe88874747474b4d7a13faeb60e0f7c893f4cfcfc34918ec213464e2001cf7f51a3594d9a42b7572dd43ade369b27fec41f1d1d1d9d1e327f43e1361b71f5523716a04b579dda854c8ada66c0f3e711783e8d1470af5a08becc1428eafc1c5bb8c6f5f4b75b43f438223e125ba2dbab12ebd608d17bb7165ac8e698c251b1e85ba7079e3f79463878fe8ff9221ce0f91e6d80e74b4744bbcce73223bd3a8267af268d4a7b842a93648826cde71a471f38a3dd17f4e288f3331b312b650f493f003584a7fb753d142cd56f9a3cc2414897a8928711383258b3651273ccdd5dbabb4fd6759a2cd67cd61658d1d43f2f9eec3a5d3424dd8cebe577d74bec7a497f7201966018e61478badf489b796c27f1cf761c69d97242f5ffc9c2ec6c9aabeb93d7386a66b70176ecbbe6dda6938161d864cdbe9efe45b1c6b00cc3b20bcbb06b88440c4c5862094c58428cb11d93355e3548c0087d154651a84f804ec860170980a52c86e39c020c4f92932d62b20e96248b99b16e300c8642b2a0c21be5289d0f5710ca547f7799924158f00b36e649a652344a4c463c227da2469c65648874ffa8a68f2a48c6f538e1ccd3294b2132d5a4994ab1583e75d654cf10d1e71984b32248542781005132e52829aff2d083f094c192c5557a69694ebd68240bbab05a13aa56190b4f2028f353656458c84097f999f4a954ed9280a6c923c2e48983e7d3a8f4f2eca6b20ae1842d4f652aa72d56866522969347344939925284bd94dfd9efdd6699c23278e64a8242a1ee94ac08339fc747378f6abd19aba5badaf53c47495634394f84999fe249354bd5ad542aa552b55a1be57c62e080fbd434f27b1a5e6a958c97bae5a89ab55027479d5037e219b4dfa4f4bc0feb3aeff37e823449665f7f7e117046f4f3a70b9a078e012c45d60be03c4553f38830f37700a1b5033cc4039224119024dfb30d80241a3d4017f971c7a83594ad462a5593b4fbd91648927f91785ade62d1ead1a87a76f1fc705ddee7615df779988a57ad8af7f2bfdfbcfedaeb138ca68133decf6f25604b61ce39e97bf43def3f918501b1e8b7130d1b228834f10868062952dfc322be9fdd0fded3df3e6bc48ce13dbdb4d6dfbe2abadee469d27cfaa29f4f230470a6067def331caa3662ef6678ff79ff7d6f632a0ab93148ca166a8a172ac4f36d744c068778ba9b11bffb41ec4d25a00b8e147e3024073f34e8f9e8df2802d7cfa2ef7eeb44df3c05e1c7700949e0c11bfca650a530c43a300b15c511fc3d3685ea331519df7bdd6f94eb8e074db3df6f1a27fa29faeeb5df362e7630bef73eac93e1b58844572546e3ef7380400786f8bb39624f64bdffba96ee85f7dd3c6dbc3b4fb547f53eab76e338918dd8c32131fda6f15e7a2fffea64782fbd97de4b7b4384650974e098fa1e47cc3125b30e9c6193e48d3ff246f99fcd3c99c872d13c66d008a84656098939371209a110a110128b796a9789a56290a6e1f17e3707e0c526e2e81315c6d49c4880a5085d681a4f222851f09e90a7139367c7fc31a78d37bd875ef634e2842c1b15fb2c7399a2d49250db51cbe96cd46ad4526a336a316a2f6a27a536a8c9eaa7308242650214f25809ca94742fb613eee404f6c907cf27320af239b990c9e664c19407f14fa6be4c6590264d9962a466f7201d935bd52a38537fbea7b269535be611929f6f832b431870b722ccfc4cb998b3fadd5c47a3ff2cfc60128642b2e0036fb0218c9284fad4789a9f912a8b914ccf4f64c29341e69c382b21d24573f13862a4888af4f35086c5361a753170c0dd6f3d324d9aef02be4cf9d0c620cd7d76d234699e7c525e9ab30849e8898c82f07ca01489f43f1ad5536a6ef4a7c6204d9a1f534eccf9f3656abeec9142f0fc4c025892ac1a904634392ac2cc9f33982fa8842c587541f154cd084000002315000038140c0644a3c178288b535dcd0114800c81884672663a92474192a3200e0308110000000400030000080464860c00f15574c39282b5f117c87c884521baef4cd67316a23120203acc43381a1707cd4ebdff2ec356b11f98f8bb54870108f72e45faa5756116341a717da3c9d55f27fc7a2f2aceaf0df9b692974f426938c16ca663cd5f4ca4c56468759f92fb7abb801c47d1e8b4a43e76da9a72cd70ff5a9359fcbf7066ca3d845788994ef45a9b877cc2946109507e67876f59599423f3056b9490243415d456f44296e75faac4c4ba7dffa1816bd722ce29a58ecf9eae4391eb8d9e350d4e45348a915d86e9d1fd7d825f3ea9059a2508fbfb4ec901015443765a1ab8307b276dda42a338db62b9eb72f43c84b216790af1caacad850e8623b7ca5a146553aec69809828cc9e4770b857573223298304f2b1e600d12ab9a367c9254b1be39ced81a0e04225e6e0fdfe826ff4fc1b0efc84deaa3e6d6816b28b8d3880ab41f47d049b5367d03ab74ea5cf767cf05aecbb3f8cdfd0e4c2c85970729d663c06750bd946ea1d114f0e4ecc169a8c3a12bce618de48336a3624b188b9cb35bbb1ded9dcc7c0bfe23061eae79b3f4a3d294004b686243a9def891f9bb771a42c847f4edaf1d12b59675f156b87fc59bc0f575756c6054c8b837b5759da4ec37e7e2de5db361ba3fbf047bec875e96f20b9ad80e8e7f25f4ee6cec6816a1bf835c2ee5457167c0f7b2285b3428885444639aa1f4893c705058339ffefeb7a79b3e56b027b703459203b52683a83a0f75e9eb78e65c5bfd7d763f8f157618075428364bf79b1289a990db9daba20d3f2a0508272f78a5f2913f7784b3da612f4de8d2da67b8bb763738909e44417c523814736483e6c3c0083a3f469a494b57a0e88625844d5b2537ce115c309c7cf88ded6da10b53d0475686f48ac76194320d9adfdcf3f4a960c06f4db75c7fe1d0d17d81a2a168fdc799fb91ed22617d2b6833c947395aac1ddd6718fafc77673e2e5d5ba48cc57223569eadaec40dac37d075047a2abc4fc8c9d74d40c24102c3677dd5335533460c720517ccd61ae6490fb20de8cbe56bc01e4e84af591e3002f50532de8e34a8e4918d74a19e0f21d03352b60d24cd5fa36ef510a4fef2a629fbe4f4b4085466222212b7ce817bdbee963ed7b8fbb35c26f2afaf3aa02c7acba0517f1a811535e843f79a76d7c682e61d44219142c2420047b7885d429cd2fed3bd144f0e63163a33787e2954a373248afc0885e6c86f3ef8a1e16b7cf276119b81aedc842665ee1944418adb295f67b3a157e5542673d6ad0db6416fd0ea450a635798e37670c75e181ca342984a664e0ae883f14cbdb67951e6a473180acb8d2110316b89963683741b4f0cd10d1eae58ee3a34a55afd3eb85ba8625f2939743f496ad8b69fb4c61c12dbed15c13f1ee17bbc2f258ac69a24e77eeeeb7c1a6145729f8a157851a25bdead6186d0d855ac26852756910439de2241d3ff47c6fabffeefdcd59a2ca19a3041f7cfd6a7550077f487979d6c56987804987ac7067bb7965844b57c97d10266e0d6c98c406a98a538dd54c7b4678fe4ca176f939fcf027d38d86a2f99ee458988e23ba27ce11ba9eaaf02ba0dab4f621feb274cd7b61bf60ea510f4567a078dd9c517be2f2aee163f8c5f0fc2a24a0f3ab7f698a407c10895b36b01a5317cd4a1f44440e8844dac8ae1b92d7484dc387aa3ac0c664c9a6713652cbd799ae84b6307fdd33d854c37ece5a621b66901af377c3855c1fd109141a192bef12571297dd11b7393a5b7ca9c895ef746044c379cb468d92cbdbfc2505ca33b9d87111ee51da3b1fc42e857032d939e6073d973209f0163fee8c5e6b52657e4eeea9eea0539a88e6ee612ba73cc6061043cf72e125db9d123833d95686c229a596f2f80c06c71109e28cfb54de7fbe19dd205f697a9c0cf9133619d3313c38cd442051d05730533a16d174e0008563b4b84a9fdc6dd04422f5b0606b05896a142a63506cdb4eefe1bc55a61c087bea2bf01e4ec06f72bec2db940214c19db2fda092c6c8cf88a78837ca71eb483e2b33ffc5ef3ed2ab0bc0251b943a85ec18af93077a65455c4d05a19f1e916d4dc1d67302a8b1b7b7ca322afe4b4ff16edcac5e0aae3bdf3c36fa5dc93a4ee9fb4b9bf842d8cac7967ac702ccc59c9f27cef29ac1fa63a87c220893f90c4c2408425786b6812a21e32571b1f9298a74535a7b18761e054ef524ff2ede3ce4610ef34ee3cf529bfd97ec88d6514e1010861d643a3d937e15de87d6734b79200fe63716b64200de9a30d4e3bbeb9c8f5bb8a33efa876a4b00033824f5bc1f5f4dc8539160c8ed7850633d8ea346e43724675581fc0b9e66df1fa79b5e4d211672664f9c5ed49d383c15c2f30da6995a75d78f196dac1f2067dd73c84510f15b24301071a2ea9da0fd9b0937ab7e864faceb467b9ac13709d5b25086ff70b9886e46546ba96439161ce6b962ea74115960cafa01baf856c7abc03fde711141cb77a464209d8095313b4a1b52d5d06572b1dd95395d2514ba29f2525252f18b6baebb2ae77367ed75055af6c8e1d1422613e80be3bba82ad95fede01bff96ac4363001b980f5dc2fc097a266f64956638a5620cd0ce64f89eb2a5c768d99cc6c033b984540eef0ecf1f166adb0eae6fe094cdd6a56f25a1941ffedbf40c6967f0d56615f4191904974a1fa19a275855fcd2cadc306b50a82566867232444155d64cf1c9811e91f3118bc153fe50f8da3c73866c5cdde285eaeb674c72b588018e42ece0a2589db63862d71aab912e7786e6d46b1b5b18a1ea98ca40937a6812f050e74a81a0ee48a51c8b7cf1c4051f85373616427a307f23b7b892bd14f28c73778dc2801a8c97c2ab851b6f68253dd3c5b54367f21344e528f247b76846161ab81896570a57be2f9c0bbf7c3bddb0ec68701d78b573622d6df09a8e9e6265142994e285a9f94fe54479096ec302a05022903674e00bc557b6d2957f75edd734f82c020fbd7dbb9cacf967996c2f02ff98c8684aa45504fa3fb95589546c3095cb26c9251f11d82897c3c84b09dde6ad1ff43ef65619d9246d1c4e1aa8f58d3f0ef6c2cba0721fb5fa9a0109b179e988b6fedd1366da724f99f0f45df55f5878cfa4e39c52422be250485c636c12b9c6b8b4d140dbbabeae0583ddba0e7fe939a9c6345135f798bfbc675a97cc4fdd490cacadbb790a54a62db0f866c4b58fc2f950e00aa71c62e1a39d6d3b1d3fda1aef7e7dbf841a2a26c72b227e831c6988829b3bfc2df03be788d5183009510a01da47d123dd1e2762de0a22a3f399e400dc39e6da837d0e0afb94172aba35c7a16cdb9327d29d7f00b220fa6aa33eddf9a7bed9ff319fa9518cad20eeffdfedda82ff4f498877f4134ba4dafcf505e90b69c84bb78f7ee22f599e1382556fac8fd9f5f7ecd1e1ed39fc78228d79734f352f303500b3f29d2b028fe43a709ce96332928aa51ff7ba1dcd3ae1bd722f918a49f2965d94a67738a917dfb9db517b00fc4686ba7ac9b34fcb7182835925c26a03b6948d556568cda2d2badf8241b055015b5befa7bec815879a71d3edb348c26ee9ef659c5c65edef46f597f04962f8a74f31a64bec72fbd15f317f56fac8ea6799c72c744a992cf1e71f5855445516942a0417e136c0623b98e93f7a1ccaeec13a98ea3c873240272c97b12d14103437463d731abf0883fe71751f6368a5ab79f1f8011f33a6c9a4f6ea7fe4a65a0b13c7f450012657e75b0c29d23ca6ea182cf4ea94d2c07cb285c6b5eb667ea8e0cfac72077fd5cb351cf6c71f7c5909325c04a6e1f709c5c0c63451f120e0c45671f3e6f2160961e94ace87c18eec93633003ba2befac7a762d8282bdeb93774a49abd4761f28971fb2cab14bba48acd72b26acbcb5a2ec65db7a37507530f9ad5edf7a4516d8b42a832a0a507ad88b44afc08cddafb5fdd40a85e9ede0d9ac84e45fb33299b54c41aa94e9160e34051bdfd9bbd2670f17f622cbee8a6ee5738b5f165498232d2766da020bb07ee90d6fdbd21fd2a97080ad741bbcb80b64f29f418f60c62a6e7559e6448ab4df93a2ca045eb8c6ba75ce4a8e71755a0eecd4731c088d32ef89cc8e842cc8e615ccc04ed8e51310be083a52231d89637a121918503c3e8554bbd590843139c2e521de80d8c3da09b5eda2bf2cd25bb382b7acc3525823df6e971894dd33201b6a1e32a22d7235b2e529d743db841e98e7bf7edf2c4c429b5adf666c986ac2373e4d0b1f22a383c165aedc8b777327ceb26ac91b81728956ea783a538e040738414691550bbc9d5c250fe02d337ec6f32ee9a5c31866016969a6dad665d109be622704a2cfb362f2036feb59f0fb515e3466ce66d67eb6aaf658173e71cbe05a1f4fc73f90b02faeeebea1ced5d284019b2398ca1bcbfc4c067ea1c53f2f8eb34ba05da9f09c65ec139afacfd76d59083916229c84a276eea7e18e74c4a9e8ce43efb60543c4affcbaaa0d681b442bc809526282f79c956e68b5d5a009f557f6db5fc5593cbd124d0fbeec4dd7a530ebeecae98e7d82f7b744963018d394f366e38f3fa2b84457a74c911fce17f31471a9b3784ee91862a41c5cd09a558a1d186258c06bf7938705687a33024d93159c0b6f4555bb69806aed278eab7f6841292712dbe9edefdce870e66200a8c360b69858c7a4bd9896f401fd506ee45b553546ec89ea376992a44d5073af4c261c05a5111f7db4a847b95f77cbc3bcfa6a62a00b42121e6dc959ce32cd6c1e92e403e4dd1d9ab055dfd520c095189be2b2215bfce3cd6e8f0e576ebfec4e0ccb5035970c7988faff832b42b48faf936e3ad39ac12157b6c7adc6fd5e9b61079c9c91f14319c2b88e1aec790edb2cadec2530d16c31a4b6036a0040826bb06bbb0719f1a95152a5101e8312ba6eddb4e6c56403195b5ee817bf9551ef7cc1bb34e2a284b335ab025715b84076eb97c07ed7de576452ac51f06ed23649ae0f82372cd09f3bb056d71519a763be286bda420b43de0a8c51980ca7882388a846742d7e41d28a8fe8e152505fec7a8a723a8c3a8ea0f2eaa173e0100b58e3a147b608f8392713e60ceca22acce80454257295f9910a51618e3ae40f80d43e4b8c32f61bb3f89d7833e1816205a85c2b430dddd4cd38a46cf09a08b12a8864a18cae7cf8ab643bda57c31a71f6f9795a4cc0e8db3f2cdce80ca3b634039099cfe0daaebd5561c33c74698f36b3d8eb65d5317ad4ac958b354f5456c56f37ac3bb5f5457850a5c5668c6253122273c66f9713178683622e2566e185fdd88712a7a8a31d90b19839a8824edb57c90838c93ea930cd6444819ce346a19a3b58b19c42d573396de5c353983dcaa672c3c8ccc355c130d6ba4e17eb54a22151be417c23980882669be2f624609868903ab09011213eb0b3ac807512a0e32005fdb72e829438cb583ccc37b93402ec4fa0c0037bce6c4047644f4f5927f304a9e63145d4358d0a0848d2fcbfa54029355b885f4ff14068fdbb1b50f1311278836e8695b482fa64852d26e6a7116b3256d138ad986d34ba680b67a6b5ea9247c466a563c86f4bb0b535a323fdba89f3820d92fe06bf70c39d20aa079d074022fef1af042381df2936d2f8ceee67c1f36ee5dc7e2e7467044a273717ac78128dc6b0f45ff761620bb045de5ce14c022a75bb11d2db01ef710eeca04e05eba1562a0ac7f54e8c7c25ba27ea00482d4f1c0cefa0a8a930b6fd9886796717feff002e5635dd81602c9899f82b97cb05e87fb0ee8ceb52e75126a07f4fd4625dadb21cbff17f8c9d19702206c7057a82f47c502aefc85db4bfed1738ad0e79a3d145f031c67c0d19137aa52a690d0972e0c81b9aac918f89f84c246128cc0347d0851435312755b954367bedeb2a47c1122f196a55e4598fb628da19c5caac755e3987a1a9fed6672a90ecccfe8f39ee02b76d5c35334f0e2d7db30365a5feea4b85762eaef96672daa6ad137c4b047938b743d5336798984c4eee56e50e4759ba12e5815bb36df1672e083321fa00bf2f02e4cde9385f186abaa1a2724ca607aefc46b6af853c41f5d504c563999f3ed6015f0a260676ec381d999ef01b21c337ad76cd64681c0b36b6ae88830d1587c80441a899bb71aa9d783e66697927ada2950807b2013090340340c2096d309cbb7ed7f34d9f99a742415ca93e7463472f1fc4eac1e701bb5287f758ea6695d25b46fb44d840f2ab8db7accc145da5ff2eee7ee1730779d47b0de739f5270b8db1073b895a236a83c4b857b94ed39d813788fcb82486ed4d163bbd198cf4c3f1172fbfe2bb0c678729aab0994b53ec749d008d77ea1c9153dc71d7b4c61911ddd624b33bcb2f4897a82c7d6fbf76aa4843e25ae9dd239fcad4c451446eadf066504e7ff136fc77fef01bdc259a937637fe53ab632efcd3bd662e5d008da1e2ceb6015ea1606d004ae49089b3585c47f758a4bc6d5ef6240915dbcd6b288c64931cd3c2192e9e69617164fec8c812d4bdf22212867c04aea13e610edad3d316a58f7be73863ac1c9a7bdb545974443c01e67d492cccf66b1d71073aa78d9539d2059d8ea6b6fd8446693978227fa808940cd1e94eb67027444b02ca6f2e071983fa4e6cbb587ae0b8f9c52a49aa22ac4c1696d91e3684cf26fd32c1903d4a9e7439c8868748bb0ea29aa858995f3194698e6dad3e244bf7522ede5f8f69ea0f10984f2d9130bb22ac8f33228b6cb7256466f7b6b7fa6ec9dd74ef841f8582514cdc4ba51c6be2a788ad48fe4b1cbb033cb851f4b83e3d4382be8aa8d0e0e4be0dd5420d86a30d3a5e7575beaf8da06ee1d2465dc4e39e6a1df59ab078c0a9676ac189c589aec6cc7beee4036350a8ba37162adbe8dc431dc033cfa27b9fc5d4332d65cd59d63fe05d0e3c56d4c01f42a4ac586174f4a83402f3710e6807ce9a551873e9d255636318e5de5ef56cfd78e0192ae5f77e50f887333042112e9bd71f738c29c9507f83e25b3604a91fcbe31701c789e4fc544c0878646e16be31c909b316c152cb4fe5a6521493fa79af62d053965c32d464ec590d74532686a29b3687292623a25df38c4c8350c008223c2cf9a8a52a4b6e5baf3b2c56c9d8075fefd2d9da2262d0a629b02cd943d71a6be97e9579325d37b0b27b48413396da17f9e0a73b3149369be21cbc9f68e25b45a95b053b5ec29f9d94c42be943bd973c0a472a27d6725471e720ca8cba4a603accb9d2fa6dc58f8b52473510d99ee2a297e598d7b2751f27c3a1633004c1dda161493a616d224d3c994d136fbada6b4253bac3dd60e6809d149e332819e69526920190ddd801d032882a28e3f28efb9115a94371e0bb454fe4f6ad50671c84610d0069421aa3790689db7bdd3ec4c0cba8b1f3335e4fe285bccbb428d0eb6372bba73f36704dc25342dc6f07bbe7b314fb0bdd5257c9194ff2178a27790ea5a4f1a484902afce31217677b8940fecec37897d5cc32407f35fa3bb4ea148400338aafdbde323ac4c61d5608f8d88b4f108ae6deada15cc1f4791b4f5531a48926cb02bba4daa64281efd0173a0cfbe595a369ff51c2a4fec65ebf7b951d48279162af4d8889d66b81d0f2328e0c94b804e2c7362360ffc1ea4d95c2c7fd526a6697306f412b702df6ba47f5a210e0a9ee73dddbc49fd1446064516defa0e96fac6d2e5bd955d2cec0a7acb532fcc9f4c948be2d245e8a14853e05422437484137b8eef3dac68291ab9eb35e8973f42439f3b0034c9fae498f187a1e1966f34b3724b036c1b59eeb0f6a6bd806e4510186ecfee30d75bdbfb4abe33cfd4fdcfea1ebaf6f0cc8a90f726981d7e5a4b5df386fced8e422fcfd70af7ce11c88063c900f1be3ed01dfe8521a2a7003c10ee2cc5b221ab6a14404cade73e77bbe5cc81aa95778c4125e90eeb84b62c0fb8f7809cddc42a112cf04c955ab2af6a63d569b341fa5e437f61a993bb78c0c904b5ac2233286e2fd5b342567b87d1558195ac9e3e324eb40401a950bae283f3ac7e4699fde24b16ca38be938c731da8e4687b53d0fa318da4ba202bf44f5ec4f14ca96166f4b18e9160c3234a532fa3444558fcf39766ca170360fb1417626b4213762bc15fe53bbb3d464b77367bb79b977db313309e8a7f25083b767a44e7d45ec595e0e9751c460102b1081eebec6adc19ac8a18138eb066a8b1337aae87080defc44628ca70d6753575b96a3e7234999369f82286902a3c0526b3e725f6fab0ee4e147a10139df3f3dd45799b5cef0a187f7eb312ae9164e1d0c08cf37f0840370e334ae1bbf21627359217885b298a04631282e3a60910abfd0409452ca85aba2c835280548b9a3dfff84a1632f399af96cf914e6d5207ba21bf70187c8fd7395dba36c951577eec6559cbc49500042ebaad12a2b8f1d15da14bde7e29573e20a6e22a32dbb7abd084c8cb59f02a912e37c28f3cb46cf48f40d667810c6bae553a963279b9a917d545e28b55d32aa69bb32c7f2142a4bafd58e6a2e338d6b928d01334f78bd2c02959e31feac74b9da5a44f42605abf24ba647c117335bb3452d62b75e52770cb751d1ad2a19fbaf787d94ed3f94db31d693f04555ed3afbf0bcf85594c44df674040781a5865e04e8bbf9f4de16c27c062b299b130b80ea3a89c2e51914441432f76177702f95458f90f74193ce1ca69d5993938d17f39332e0745a1ad6778a081c754071fcdbc7e76dc7cd37489875ccbdb2964734f2c41ff0e6fed4277afe31c927ca140cd41a484a4e1866c7d7ea0ccfc31bd8df3eb64abd9d2575827b2414076c4f497d0a8829a57fae97b806913dd12105a27803a1b0a8b927d840f83994cee873e971ca699a8799a4619327f96c1f362b9b56c3d8547ba92459069390efdfdab9a647953ff04a096858f5ad19ad772fd0caf23ed6f8b683a3b14bd213752daae8c4b81b3adfe8345bf1d67bf3ac50016ae1cadfe9816f77a7da3f578fe0c2415ef6bf019b302cb97686dabfb9554225dab6f6b7bfd74bce05a84dbd49d962afe306505a07b434e999631d8e2ff8c15d8ca2ba86848095ca9a0885e3c7a169f1ddc10b0f4678369817eb0bfe1bf7f297fa0756690e2a1d9713d8d1db0d25212f85638aa742a2c5c2daed48a42d47a36d804207bd38e4259372a0275491c53816a4a70df953e9ae7f09314889290fb40a9e1930e21b00136551499c6aa53a6000535fb6de3138db560b855bfc5854211976db5e9ca1e6c92c1dd564bc4db09cc597037b4a49fafdc7ee6e6afda63b12b18a3bd63a0739947091021d7fa11d9ee0cf9f2ca9c6c3c069b8dde0611d9943572ff37a7daf2d812d59dfadf9cd25e1c5bb61e3268f54214b445693bddcfcad4610b9fabd6f14894c01e1d1da3fee20d36d1471c058b103d51a93538a93f42f9164c2458f1f4d9da519226ac4acc5d3e8e2211a41add6ee86eb33d0eeac80377c203d7ac1bac48ac56272bcec40fdb60218b74a49c799c6752b40af944840ce53b78d89628a92ace322214ab4187fca0745043d45849d73dc81ac9402e0c1c84a91c628a76096d65a82bdcba05b94a2cfab8cb89627ade6a3c3daf5d130bc1284acaec4fafb84345b41089180775ac9f61b909d30a842ef5e6179977bef020785365db17aebc2eb6f942165b3b374d092f552a3e72771a1257ca4d80e2717d2a491be1ec63fd623fd45a8c827027d1d29173e20812c1ef54ed075c2d42160155a26d565539069d4caca77987de3d369488fcf8e61d0c4c306c666754453e3256aa1aaca40930a2b454f5040931405280deaf11475dd14e6c5c6b7f42f9e72250472e52245415ea4ed78be3997555d0138c68d754a8ae9935cc4281d21b44524388d9cc8a654f1e88106f5fb7c3228b5e9f08bdfbe7ff934ca4b57be7b8e50bf3696cd00ff80a7b1390b9f685ed81ae97d7f2c192d49059026c2d31f55a26ec672a005855edea4cfe7728f271f3603a20cf188d64e772a9a60f489ba8b93f4152798289643e6bd41893c9816d5a4abfa4811cdb536a238a2a563f3145a39e328454a3a6caa85d164b7bfe6096d05740367701e2cc0a087799d8298ee97f7534bba15935cf5cf73adfc97a86c780f77736cf89a9a0cc62da5387457cd860bcebe58846af5a724c591583911e8e310298fb90948abed17c6b9101b576896aba07161187194fcdb7658756704429bbcec8724a108cd2124da64ddb392ffc09ea84b698d3bc597ad1d5f3f0e40a1d150339fd5e58e57717deaa7feaa646099e374ac5b8306be4bd2981c63e8e01661833cf7963f9ed18bd65b279965fac8abcbdf59d05330ae0f80e60621c5357292e47625226445d1d1aa31361acf5caa413b0635b675ac60c6fe2caf56f5432b9909e1b1c6ec67508c47621718f186dd42531b317ed27cd1b51298e3ee7cf4ac5008f6f937a8673e35cf3e73b7fce4c85e81a5491d1be85aa863d159147b0c2b0458f3c7d79e44954fc4ee4703e57744ef685b7349e3d654a25f45631de496dbe1d46860cf45220410a15f0b6ee12d4769740c8d8df9c1927414d2da171f84a0d6157b1d1fa59e4b4699f3651ff5645b521066f43010de5c90477e0394328cef650376a3fd99d69592d19ed60ae5e69b0fd2c1057ac1efe9e5ebc8a5f19ed6f31e1dd751f08ec3617a1f8762625fd41c5e33fba4f805c9109a2f8d72513a44667d9c4472343af20f896f223c5bd2989d27880366f5bf565588972f54197d239f546d7a595ab8890cb728c79fa274260d59a6ee7515a5cc8816eacb208401192990f2fd7f8c93fe6a11a89ecd0c5289298231282e610de805483da9a1cf819301e5a6f32c4a0604cb0bca5caf091d1b75537b7425e6b7468059a7ce3628bd0fd97b7fd628743af6ad13a2cbbc3b0679c2c8964696fd7200415eb59f25caaf4dd2e6baaf102a3486a243082f627ce82f083aa9c841324cd5add0c04c25260dea10b33649d77688ca47b795d219bdca171529d82f503262d210e509723f76686c04a965966d92629582829c240aeea0c05f3c124a362cbdaccef1b5351322ec4b92d59647179c790fc236168be90b36afebb3ce0fe65947a2bdcb4d4c0ce89a4408a67120a97218d20c91c8c969785f2c9674d468db8a68e7eaa0faff20559f74faaf7eb4e0950147ead0f407ea9b57edfe5b58ddc721d6df4c15b719efe2ee2bcd10adf0f07a3d911454354621f4132bd14e68d42c7767494a0e7786094e77555932db49ec0b043647e10fc665ee75a6a8b3f10c88335ce30c7224870000306e01dcb03522913273be1d750f56dcc384506c3034c6f9d461b65fff35778f09f3784769848972b952f605c7f4cf8bb317e12997267f190b77801ba54e8d113ac4b79ea8d714f846f6730c8e28924e50a32b9b8123289046204df779453341c9a05e05813c494b23998a228dc9aa498cb098b912449b3234aa307af70d7f9005afba312a4fa0512a69cabf305b554ec6e48fd497fe9edf872037e9a59b4414e1394741f8054bbbd4641f9642dca08049d14e7247e93f24012b9da9148bf3551f6d0200063c63b7d83ae04763085454e8a237431412d3c3929b028e28b668f1bb281d7376b21f6bd4181c7ca674fc4e59ca5ab200d1287300e88d0a816b47fc08f22d2a262215fae07649c92fe1ed383b92b310ffa1ed77c42b2b68e073a88545d7d245787fa55989f54bb416de462455d10f411a98a6a7cf24f96ff49b6d06eee9a7374964852ac1c9cce4d307affcf6252adf069035b6af568cd448f44d8aa7a5954d8807343f412a61f84359b67231de282fd8f2bc738bde6743fc8800741da92961da0104df4cb576723d4ee1a5ef241e27a349739d595188425f480c2ac9573716c606966fda62b81e6c2168655a3cead19675ce6099952facbbd70dc1757b8bfaf3a894a11fce0b9d9899065720f7c4c79223fececb3cd086cd934427564ba8c269f8d3a31eee14629d4bd70471ad80ab18f1421c50324ee97c9cbd8375ab1f1899e74db4fcda824e090ec6489b0a7540131895b3ca11461b2dbdd7bc0d7d8f039326871ae66fe4074bde6bf41a0e06367e25c604bd2603cb6b8234228188f9a71d488a7a50a74d0eae48a90e15f5ad968f517888265f16a450a64ae684b9229efcbfd3bc6b9d68ea91859fcd6e309223f889c71bdea373da2550dcb9a69215ddee73dcb0b38a2ba878959e603211f140d03431e01e4586877c832647260c22f639d34c75b3d7572d472ec7a2846a0a69aaa1437ee76e88502947b71e0b97109a2bd75c4619c7fc2d557a2882b17e9455f80a160bbf32e0acb3c22d6fe9ee88efbf3836d1c246b5c9731d94a196880f4e4c09c916b5a40a3897895b7c7c4830532b035fa5479ca6193c9213fb8f529795f309f4078d476207f33d201fdbd832f2020063bc631ecc00d2051fb1c729debc398c75578576e0934cb63e67f182d43a1cf19520bc4bbcff0f524f25151a39465acbc87d458a8aaff218b463b925c892852fef597866c2086bdf4a36b7a8fa05d23f38f40a5642b96bb97f8c88388a0d638f9c6133979b937955f22dc7582261d92eb1ef40389ed4f2c6bf818ee5c60118d0a179c17e2dad7bba8e685f7d3549df6e729433efa240156624c34f71016f2b7e5479036b3209e4d4e0f03207f35a1fcb16b8a67410855a1579533d6f35575dcb19444fd1e20a2dfa927424641df175c8a29cf695826202685a3c53b8346e3449f894c9fa6252bcdba92285064012652be64e3219ab991db436ef4c8b72a616da81942a5cc4933b1290dbf112383ca5a3666fe0785a2ed96d2318d27981ad2e01d6d9206016315cf08e04a9afcc5a2c9bfb020472e1a98bca5017410c65579da2019aae52f78cdd0cfe5dc3e66458617c46f9767588657e19804506c28d51045efaa90686146e599e02dae1abbfab0e087147244348631e4230cff24753e24828600a3149947111079831d4d78b18edf47bad25bf44d8bae2534c01dbe7d39845435d69cb7acc480ce3ad017a9d36f784ddf898ee3364d1c56c499313cc1b26fde218291c0ab0a0c581024d8483f585af7b8e853aa3dd488cd5db814452faadcaef1c19273887069b7f19aafbdb2446ff15b0872483deef982c0b69085d598a59d574fc7ebad6f7736095f0fe0c4126639259baf8a122d4f0f170025f0796c00c9a4541c48dbba94b6f3b80b2a4160daffd3cea21edf5455c4f098f76c1b90905a1e6f06c0ba36e22f3dfc70a21804027ea825065df2be8fe0f4eefdcc313dbde9ee467344b17dcc04315ed3c50990a9879b440cb8a7bd000d885e5f499da2440c308b5180f1f6a3049c3cf4c63fdcaa0658cae59cfe4c6fd8b5f28a39988517e0a13245f2563aadaedf9bb213ff563c425f5784744054cfd020a38849f261794abc30c5fa0ca84c21541437135506f8071906138d3d2abc2fbb6c7ecde8a26423d5a4250d1afc01ed81b7515c4c75825a84ed1737346360f3f2daa1adae99bc23d3bd38f1a45e346a6a388f9fd25a14a237f14709d79ec8f0c5894cb268bcf90896b8f2dc520cb2e9437bd00fa6f767cc8cceb50275a9eeb399dc35aa1c78c1eb1e4ef5f72a1b56e358b14465bf583a1befd8d37605e29355008118b7f18d4f3954290dc67416f39557580ef42fb9e35f24d1d469cde6b17061e286c5137099a82f3818a544d92619413e8f9cc15cd741199f3633a82d8977a5b52574f65c90acc8d65763505a0b943289958e2a8a708632ac415c2a9d9deaca7f2983ee1ca23ddb79bcfe74b11f8b3bcaf729c0c19f732920e6b864a76d82865ef5d1506796b518f0e2c15ada58eb606e56b5d133e5d5c31447087d01704b32ce0d66da1215a9747df1c4aabb29c2bb50fa2128b004df8b96dc96958ae85d3dd52743d6036b897da4160d67303ebebf58dfdbd32f0155e18a5d490ed81370bfb5dfaf9fc5c45ac40e1dfbfe6ed60acfab164c760e26328c68738ed7c5812ce9498ded59dbdd64f425cdec827e009fc15c77325001035f05c7b8fe0f9c74a62f005e59808cb3cfcfed242e843a4fb5b83153f016d05b7b9363a58505dfbf0e013ea9da9d2e448d8cf4b4e3fa9f6db018f22979a09671c4091690b62ee3e3da0a36a969ea1ad77f3291186b5347a308229c2ebaa609548b071653bb58ea2f5218480d57edada859dc3c3e6f092003610ed1e9ea2ac49537541fac198424c7dfd95b9c153f329045421c7ba24e86d37c19bd4b1589ad778e2e29b46e0615763aba4f81032e29bffa9674a26af8f172130bba438f526b8470b27b0866d1955a561b95b6012188de32aa42cc956c9d5f50a14e6f7613c376827174e9ce7424ff6f80be46dd7fb85723bd66f20b54b1c54044559454b0154f25fef75993264effa23d6ecf65dbd19f23db0f3997974c4298822c241efef7462d393e40d64b83286e44d65e9242cea185ab7ffd17e2361ee08cf09593f875a14f51159246040df2a6567c60d00b02d661c3d928fd859ea59f1b7ce5fd9a587e139aad58ec6ac220d5c9d8ad7b0a97ff8095d98b8328683393f7948a716dcb9090b847239baacf70659d113d4fd6a482dd97b2aef3eea4e31d71c4fde1f1831370b67061ec94ab8c1dd8ec0478ea090a4e4be01309c149012cc521107058e2a594ab4672ca250987402692f05255483b920204f0fa3c4c7e965b01d20c0382286ce3c6a9de21c14e94a484a18ed6091ccc7d43c58602b2a184a3f189f7470a15614528d20276d8202b45122d1404fbdc9a3c80e696abd84702ec54cb7024e5b32d159c98e26ac8f9c46b41588fe5498042a49734a95ed558d121e53400e0662999b0a1c93627f541eb4a81429d40091e24a9db45df10881e3d3c10c1a424296ff0e3c4e246273e0797dd31fb2164082af8ae4f416b13503c912b738747c1e83c40c4a42114dfb55de2e58884e50069e0eb1440d7de7d625d8f974488d34fc16cef8bc9dd01eed01fc447dfa378148cc4e23202c5774872cf67834c0132398f4d54b4c8fb76d17a46e32fc50fe891938afc26406aca3ef41c5060ad8ab9afa817ce9039e81471bf404bd5853302602192782fe27533b1228c94beea393cd10008217ed18fe6420ca0cb38b0f867a80fde3ca08bf018426f57a7a175feea45b4d6cfeca7296195e3017e9751ad6ac53aa0a0785356aa093c81b65a35aa06fb6e09f9725e0ecdffca03bf2088ac5bd952659db96cd577b8a6c52e0e6c8e06cf2bc07f4d0b620b9adffdb411ec2fb527b84677c22c3b1152328ac7ee4ddb51ac4771a39ec1920f71b2ebbc73a69fbea37e208e6507fc656a52f1f8beb0213189dacaec9ab779cbc411fb70d63f7dbcbdc906502a136e8aa0324e4b48abb3627a6a087e118777c822fa562aacdccd9f98349ce713490bb5cfea577cc10e5ae633a010f7d30437a089e486224be9bd3dc8e0b0a0baa60fcb85d81427a55322a996ebfad86bca9d145ca92a749c8abeb5ce75f20472f6e3cfc995e3248b6682a99c1ec95393e7ecae5baa430e9a6c41207932df9e60a9ef964af9590d13f9c9dcb34f40b7956f8f3685069c6c4c22d1a65087fcde6b6cf3b5216f0a5d707cbd8219a2e77b5075f380e50d03a261bf7ba0fa4ef3ce36a23ea2a2e8e2202f401fd0d4d896c2f95f29dd384f11d61c00c23290909d45324a4e92602e50c06b3b253e33c571bb1d6f101b6cee388c991585813d2b50ac5c45d3b11b1529353091ebf27b18f973673a099e25544b878a822ddcdbcd25b6697fbdaa0d4aa88706c23a38b0ce6493c37063d98585b78ab90dcec9db55b4938cb67608b946356e8c8589e4230766c999e2136811b96fed8b46bd8cc367be81fd0918d41549951a0a2a7941685e0e04a3b485218e77009a63d2160dd102c32209163795c27a297b517dcf5295b251164c1838d4b41b827a6ea558abaad1011ddb51d1a06e061dbc42c401b74768a61978db5b7d0a33ec2aa5e178a9dce0a948d1ce0b5670f9adb23afe554c0b0d1102257f30fa149204b449a8ebad40c88cfed556e6316753df439ec24aa14184ada382eed8875625edf034d0dc0dac76a22167b8ff62713250606cc27021a7fb6e7f84483d1ad0a19c8d48d089ebd8feef0a39ba045fb5ff97262068ae27c13131293d68f8d4ae5a9b64d0ea68833681ce0c8ddeb415d4a985a276d1a4d368c9681bcb029b5984d311da69dca15700342d9a0e9926d06402921972637ed5ba21cb4cc50ee25660191247d25574a27f1234818c534ba543a2c559b5e29eea0b399453a5dd17720dad0dfe3af7e10ce839d86b111721dae0b50f22791f965952a49793a71706221fb331a0a55e611df0d796efc5bce2dda8684419bf441a2c23405efe798a02f5d0c3f1672195225f7d8b012356585c6ac0ad69c64eb9712cbdfecf20a7b5c8756f04c2128066218d8a86a96045084566bd278a06bd0085f88d037dd4df371ea79930bc8f5ebbc5c365756a886e562bddbf8e867dff9f7e1725b06de63567ce786a284205d2b2864d1a922c77b2d7694a6e1ffc7279027c3188448b7509754e1a61dcde6263c74aa05c608e0989a4088b9348ec73282705fae615c4a1d8dde603b6996711dbfa6b3af5fe25d29dada993d9cd437a845f4bc00c6c15b7381a624c76f2a67a0b860dc8496a557c5c86b795e1f38f9474e239029269d6e5e2c8c9d143b51cac8df4b8d54e1fbc0d876bcc1b0503eb29b2b5835ee3a0217b8d1617992934a005ecfb4548a50ac02ebad1401b38809fd50b454c713d6864380cf33dc3822300a18711d538041c91a3f244cca3c076b74970088335d5034192e25c76f50ce81f1f8f685f4e5f1746d0e0b9ad7ccd115ccdbf1a98e1f03227a196b3a8ca5fca32171d5f0d4bb73ce9422da35e035401d9eec1b77a73cd6b8b379b87640cbb1ff4b907f2cebff9f19442f33877e858f11b815a602dd1d345f94501f5c8f22ea08963f1cf0fe6901a97a3cb333fd2022915011abd02e00be9423d80681251cfe9ad600d1fed5da7601ad4d7e7c8d9760b028d883f1f88e0a04222083c7d68d63d6727db25ffd2620d7295e0dd51b934d53d9f8010324c3569cec8f06403d06269eb9cf00c67f55b07b12409bda4476e747265a5f669ea7c7c29bcac658a6775cb8f41b6a065a29cb2d7c9729f1333f03c44b5549d269cbf1042519ee8126bae30597160d9cb260fac29f05e85b09a6cf7e771fedaeb1a31aa88e4abc216df535e6686c07a86a2e0bae76d80725a93b02e6931a7a5c34a912268c477da2818f0ff7966b4e6c8a49c229c2cb9907ce2bbb16c630af0677335a7a9c84eeb59a91e89e3cf2b192512f6b9b3f858516d7fc00a06dc239b009fe3e7a5e4ee7ce8912ef29398efba8ac4df4982337ed38c4f69be20a02ff95db2ebf999586e733c9b577c11998481ac64585243556cbc722d8091282efd1caa19e355d2eed1842ac99d8305b4870e781842731b8f688c87e26805680dac6a3504000e025b350d2401cac23c34824906c6c2e1f94523ec7160717240e46825f98e6aaa4c0ee8e229a4f5d0e0be1bc01c2acb387f4d631ff72b90d9c68783f8ec1abd4d769adc1688315572fd12960f31d60561a9dec5299b750bbd45376730b04a1a31b85d1a1eba9993247a243447fa804a125da0704497d024e8241447fa014d127da0714497d048d027348e740145129d4071442fa148d025748ef4015d2aa87d1a1eba9d93247a263447ba804a127da07244975049d02514477a014d12fd4073449f5048d025748ef4014d12bd4073443fa149d025f48d7401dd31fa187a70775166f4b22e1032fb0a8e5c5619ceca74068200460444b3da334382f14692dae483901dccabe3eae0bd31ddaa9af93596f8b5fb7493a0cd99362728251fb46d235d6c6871808b4910b162fb48ed666de3232c24508f918d6f8cd4de2c3179117fc0c958d60743b04e0c8e64f83887884a23404b2dae7f9177f05e322114363a216622c210e488d399d348988691394a2bc737a3db871a564e89865bfd40593a645023e475ff2edcbfc5ebca98b020a54aa958b9e2ba28e9cd01d73430772ce9c529992967820559f592d8b962bb29261c24eaa5628d247d949b24f581da2309df0c6543d443aa5d43ae6b2dd7876a97c9c0e711f18abf4da0bf1022aa4506431e40eb239a593059e6d993c7c06e371b21b17371c6b3e37da0c4895cbad783f19cac014c86f04b78ef075490e73d47633f084d38b4b381e899a8df1ab9d2f0750d50a81819cbc20a6de9c248ee7ea02650e8f2a9d5ccc9b0928db2f51dfe84a6ba19762ca1a2a17eaf014224ca715c40a564423000e5ac80f4b185c0abfcc0c4b771afb717149dd73057a42ecde5a82df8a9622294e3e923cd1fc7e6a6d7575947b8103492ad547d2c7047dec24f142e6365997330b278fc312cd599f1036e826834d075eaf1a052aa45d28ce381b275aed73f5e1168b06b518213858c38754080c3dfbdf34735c746d5ce0969c71624ba694e1db5507991367724a3e5adbfb5d0ff1c5f5802c7602268f7ab0454684b2f9dea80cabd65f758ae3ea27674cdd6874b4a9c241d5a82db6d16756e8ecb5c58950bbc5c8f9503779e414c78b0d81c6f9188ac79d68a05c78c3a496418a21ebda9d00a91da9b3d5b868c15a0c6fea2b303648d8dc2b5e7284ca01695c07d9d7e71c7158ef8755a945732f87558b545685078a3092c4344adfa66d4d035de30a0b8ad15e8ac869bf18fb18ed668bc49654286538c77b3f035909f6b348d75f4082028ef4c233e64d32b2e623d54d3fb17620704d0e316c16798cde9a4a4d8cee6a6e45ae239046a018497cedc6ba931c228b0272498ac7f10f0c85b5e3a335813f951aa48a7970c60eaf820573813a8e671cfb35445063f08c05ce3560f47ea0094d3354d80296bf2059c09e2719a6db3ce316ee0aafcf98c65c0bbbe32d4956ba23f20df2089784c5f9dc7f400c4cbc0d41648ea23768956adac880fd228a8e6379d2278863ea3ad7c008f2f4f6bbb553c8f153805b36b0d9a202071dddd3ad86d89411bdc5b2b1d0f327ed38bcd84d8f16c83a435113a98a9f61ab32de88036c078a53ac959e44d4786afc3eb9d8646cb05c59ae9a15c5ab4a67037a39f2ea484cbce7c000c3b3308ef51ca0fc8aae72904c8ed312344da1a025a61cc6f9fe3ee7df98473389531c0a7ad4c0227416fd30f9ba47a28d1d85e4b10a017e1389b9ef1c0dd66e0ca8f27ce38e0fbdc29b28ebb5d20ae6823be8d908d977f860dd369d1351a59b5e36932acd4cc5c0ab4f2780be91caa94e2301ee68d994e4a8e56332c3a40d9d4965e9e4b2506c7b492fd4c09d5877548692e56a0e6ae2b75c2b7e29bbc753bd3d146c5db5b6f00d45056ed8f823ef4b3335ea09f8543ec244431ac8f6d08e266b69333a269482285221033a8bec1e37feb9a6d1bcc0a74dd0103324462082d5d49e08c57119472df01bd1a394484057a32f95a7b5e0ab2f3faddbc35ecc31df755420c96e4144d9d2a84db012f309676b36562a870417d5b61c777d8180b2b31492367cab3bc8afcb83a3449a31fd587e5496249a3da2ba7cd939f4e169e78cac5f450a6b02022eebe8337afeb4e1831e1329369724a3dccabc0f3dba526156ea270f1c91e8e719d1246c2244e6ac6999a1c1df95861d9329b27861217ae27d3bc5d396ec8c0924ca5a91391695e22f9897c3900948b58510797610e70801cc4f3d35df952025b9ab5b774ec3efc73b6ec44250e290b728305f170e96bdc79bbf0120515bc750f0dfd70b6e4761d2f09ab9f4a9522a4441237ac7ddb8435cea3023904a9294d39554b57be7ec5ea5b544f11169a1ddfd52983182a5c54df5af8f13b6edcb19f1ee6e3e2bc861ac8075e8b5e2a7d016bea1f85697fd7c8500defaedc42a423f3fb93463f1c5a38539da7943c0ee6fa6b3b4b28f1689412018c83040222e3eec3b87375f5ae028cce2102a2bb2cbb8628655f16bf1c529f531d715cf37509ebf817a7cda8b07f5093af9913c5c153583be62d12b49d796dcae1e2c7339a656270e5f32ebc719ce38cf38f2bef028a7725658867502026eb691d165da29fc17002cb454387baae42d0af6d79220ed6c3e019712e5283edc4c1ff610e06aea4b2573e97dd0561cc9be8b019c416a0e5c1ac95cb8e2a11580ce6e3633d9a3d18f4b7415d31f4bbf5b29596c87cf3a9259327e1bd718eb43d34429d965b260c3871623f5f22b7426adb8c88bf803c5428903f7a5d9033795d6466fb89125a59bcdc16817f1687d540049c329e08093f819ef1a732598c490e960529ed3d327c580451e329230e34ca1e03b133bca0345230b41401f61d60912d6ac062ae71926df895a496eb7ee25c5ac8841685b4870992d50309c246284eb4fe681dcafb5f97a1aee85f672bc2f14f94c0463690c9c77749491a814980d6db5a1c6b039466347cdf249eb002578c4cd9ed26a840f59db547a699218fc3028577cc3bc5631bb2695a82612f4acf72c3e6951f040d8d839eba7bdf94936ab1813b149a5cce6022d5b5cbf09bf149558a04487c8f81008f8f1a4a334de9a3e188ff9aa0f3a38ba37d4d47a9d4b16d30e454b5969a74fbe7ae54c3a3137750d45feb377f31ff832a0ffedd36d45a4ab367751c60bf86e6bd9daf72966427b848113b8df0379987b1f78eca3d416ed70f5ce9eb47bed4e523afd4fa90577afdb095323012fccc031a10539656309c11b5c509d9130914c7b78e9b62e31c5596cdb934b3b85d8a94c5d7b95d3a37789af12d83a8e80f031033dd470009c70841d24d340cbf28e0769466a8914ffc568edc4b7dd034eca3511309b5c8761391c8eede01bc09da0880085d18220a90f201bc940743444182173e1fbc4b708895284c39903c1bd219218b9f9c735373ce20a8385ad9916777612301f7d4931a322587710e98438a39e65f9279b3326fa49cf147a4927d41842df306aa44988305b06545063b2ab10273f85037f551cf464f7ca9be903bf145ee4048c5e1f4aabffa24178f45d279a378e9095d041132042787880e4f8fcf8fb401723304278788ce0e129f9f6803e426480f12b8037520911c1904df84825cc868c80acecefb193d842920a31b5f098d9698629e7a474920f866a96649470749179145928e44961d4aa9a5d28d14648b47251d69477a827444dae2e5905e783ec02d1e0b7c232aed483a0f07dc11890e7da1b9933c32a89c704f338e5e268ac23814fa47234944fe50f8060f8ac23814f2c1793e3870483c4561dc3364f60c993d4366cf102a240689a7288c85f008813c4278280ae350e81f8de88a742381c816e9e6e6e6267443511888a40344d20122e9c0a0ce4c6d297792c88ea7b9934178368c50fe4c3c31e24871889c3dd4670a993991522412da48373bd26cc1007758ca9da45355d7d436d2a4f18439e77b46706771f0fcf9f1c1398d53c4fba097f4688708cb87744bd7bc44dd8d7436d49d19b0c5994b364e6489395e4c2216278e2c0e8d22b8a3904c247bf25463c02973c23f2dc6f0623f2dc6d8c1965904b50f9b65e310a4e14404bbca1e72577789314012879f0d354ddc3da6bd811904cb845da9955993c216517f3a22f0c2a62eb3883ab7a7d7c9ca6cad615397797a7dd42455cfba7a601b3ed3dc1df3d311c118fbf1d042fa1012783b6fa7879587a3c707f05a90802af3136577cf2714750745f09eeeacbd52e9a86189ddd93d794868c0a338a2f9f90c111f0e1e707e6e34f880708a28b9d9d3e238f17e6e98983869c0c1ee60147bca881359ba949cc8d28d884496ae075b45647945acd89301bbb346f64c892cf01807ceeb444551d484b1140ad17f8e462149e39725e08ea22c051370e34614648b09fe3255a2b4829c3ab88336ddf3993611fa002f6fc19787472b1535fdf43ac61879aa2f70076fa04d9cb480bbe7c383266e1fe803fc0fa9064aec83fae07bf0c1f7a02449f230f790f1e7d9d8c00b44204e2c1147b40a0c3f9b4051894ea79fd59c3d4e84e2a801510441438e0f91dde103a1d241f5d153fe2a831030d10226625013821b1bbc20470c57d8e0e06546110616610821348327d4208061051880e1058b83ef7e45c020436502a6fb1501430c9f1c93fd8a9841087bee57e40c61084315fb4664818739d8508b3044b1e17b48c08687a18fe2e14d7040cda46cfde61458ee57240c2a7617da46c071bf22614cb1573e23b4b2b2e3a978fc831dcf85644b07747a7eb490061468810811073b8621c58e3fc4996798dce06e148a61e840da905211548905f8fd4d55fbc1338e322560686dc0f0d93d13f65a7bad33515955f5fb775c2d6bfd5e67a25ef7d55e4b7f6f7f5fe70d9000a92255a8fc4b2aa549527a792aa994306aa1be94ee3ee04d165af0f3f2638a81cfcbbcd43e20174ae022e7e50715061b1105e8756af003212f3f261d9e178985289e40f2f2636201901ea2955a4481294fb588029a8a28305dfaa47df898fa07b6f332ff4382c2e7455ed23e7c50fd63ea7999fac503fc90aa8807e8ecfcd43e9ef6f1b28042163ef2352fa1788029a550e1211658fe3d092504824d09e58c17bdbf0d9f6da69e0d79ad8a9622601ed287cb34fab47fb1bedcf18800dc3e36d5433c22e0c3d0a65f89a377896a30d49722658cf70778f9ee03deb671e41263159c40c4eaec7429371e6502e2685e078d379e8df9996829253411714427d4507b4189a7325fc4cd401c4d1f1f48f1c0cb910295088243f8c91b0f87dcf3a31e228ba454ca04009d520e91141b471294a474490a3d23e2487a1c4977891d25c54bf2d26110192bcc68e0e52002fa205d7a061e0eead2b1241dfeecf844f8ac304178897e0a2901f6648b09ea99b0aa25bd526762a2a6e9b53a13544559d4ab3d1395adafac6ac9faea2b457a7a76a5e2e899953acb38e98c324629e35443233502154638811b86e0063758d6ed2d7bab161187c41ebc16fce29018840d0bb0e1bb78c4b21a2e7968a831c663b96629574508425df885ee833c4d440c859ed61d656922e2c83ad5d106fec4d161ae401255de8657f044cb3ef9f36c34813b99c39343af439dd9839363e4e1c86616db35ed37779ba6e7906c0e79d7c4f9be641b9e0d388758dafaa1288c6548fea31f9d5a11013f49439ec9233371e2084a114790da483987c89c21524c1c4a79201d892d92865ec02371042d4bcb9f6703cad8d3c09933adc8e199604c336ced59ee81edec2f775aa6eddd11ad757963ac24e0b6af57fe9e3212105a3a2d89232889c4117cccd28a6f8a44acb20d6e802d93a79b22984db040c6c1664ff3084f053e5a3d7f66ce121c733a89237320754288754bf7907bca892cd62191c862e111b9244e7f4a680617ed3e12e125844b7ee06565891359a014d10b1d259105ca20038e7a87bda5938032514729340ddcf630486481021ac9c9d18a3882531c1271e2a887c9a6b9f476897108140f87dd367c2cc18e9610d66db46c9ce8f52c11ab9f17d3fafcdb32682cc15db5e7e1185bd2883384663dc451f66b0f0f8fc01d982376017d808f38356c9e9ee521e2e8fd6608c4d1e3614f0fed09ef38244af170dcc34f1ed92221056748771436d15dc8e21c26afa4b0eda99b3c286c7b50b6e7b23dcef6988d6d5f6b6c7ba9235beae1a63b0a675aa5e62bbf0667db577a298f60882dfd6dabe64592a448c4b6bafe6d6b04f53e6a5eea69ee6ab27dcd4cd47725a0a5c76c754759b9fb80cdb6ee2225090712744bf68fde485aa9c8603e528f88227c449647df211027e0cde3cec4c66dd8b99b203b1338c3db3913686722d3b2ec9c094067420371d7b673db14f6dcb773d7fe560cb09f7cf2492fc48fc16777295cde322555e0b57ca9026ff3757b982f6bef755d6b0f6fa5b5effe502dfbc3a43bdc85b60c85a4d4d46f9ccea0c5112db438a2c5112db4000214a090050563d3197b7eb050cc172f391f8c5707827d84110a53bcbd7b3c3bef5eef1e110c4bfa2affaa94550970079fcd72c4c97257c9ce39afcbebf2baac56bd844f90197699a51735c350150e85ec1876895d561007062809d49148e04ef60e72b175aebb03fbd4892cd9cec3f182c03e5fabee64ea69e0c69f975d905b78396e279750f8072e893654c4f2c46a8ebbe224a87dfd0a9468454c8d3d7bc8f745185e0e79fafb705c3650077b7d56b39a7f98c72e19189d93461ce905676b864140c2c516458e304346c4c1c1b9aeeceeb82e83b8ae6b06cc1890bb9ed820118c27228fd4912a546eec1f852e91481c7164d4c15a86a223351d88a4833cf08b4d0f2f29df03db52bf5f77070ecf68848138e22c16d99824f2f0749127f2481da923039f6e45f8f7d931ec7a17da1826c23ae66aab3b23f674ec3a8581ba2cd3978e6919d0ed675236f62977999e49d9a0184d3f144d23b7c9437a9e681ab9b9d3cf2b042784c9f4cae5ee47c572866176ba9e1de3a653ecfe503f4d99d51d9d303a4d739aa6c9be5ec9bb57eee0be8e7367c4c6af2fcee042f85ac67670346fd732762eff4ad9f49426c0451e031d8838cab479f95008e3d89265592633d04ccaae7f57cbd4db0ce76e26e5cacf25debbc4ecef66d63ebb745763c44ef9c6bee98c4d8f8f717f9125b4e510b7e941d82905e9ed5cc65363aa9dfab55d2d93dddaec1604ca31dc3bdcdb6fee8cd8f43acdf75bc638c77d73a7699be5ce7e03359bfe629d113bfbcd3197c64e7307e9f15d6496bb99149cbb1f98b67f33299bfe7535f52e32c327ba9a1c235ecacb1420d0925fb93b625fc7b4acded2d6b15b6fbd47b85cb7f2abecefdfb3b4a6b37395c572cdbef269e8a42e0f92cf5eab94b2ea2ef42704e8326e97da4f2e75677221b2eaf7d52f73bdf79b94070581fdbeca568bac8bac5fbf14f5de115b6469acbb238e9036775295d6e5abee7a7c2721636fa0665bcfdd77b5b5beba7cad8ee5ce828076ecf40201b7f64ad31003bf4ef04600eeea95b255c66eeeee314d430c7cb5575a463ba665b6dfcbdc594d43b7a6e71604fc7dbc319ba6911bf4faabbb13a93b930ad2d2da7bad4b37666ef9eaf657ba31d25696eeea69e4ad32cacf2e60f9ead40e6b5bbf993a96bb233666dfa3b610a635cb55e62bcbf538eb11b582bde6b86fc63dbebea7419bd67417baf7ea8e864a6d6919ea550ca5bb1a1789659b65eeabfb776f55fd5addd57447ecaa830e39e44083c68c1922910c192828a1d0c989890908c471dba669598631865dd7bdd6d66a59d5aed596589d76a5b6cc28dd49bb5efb96dfb3a1e94edaf25796d97b362eddcd5d8fe55dff1e0bf62a6beeaed35bccd232f755755fbd7bec367747ecabb16c59dda5a59bbbaadeaaf7661a6dc0f0eaa8b77791140db5b9fbb12b1abaabee7e745dcdae2014e272847c529332c68834dba7b59be6a12dcf38ea1e45edf99a8df1676c8c1125c6508c49e8603745d150140dcd8c9db133162514638c31d298b0dcd02df790499e71445133d6d2ecfbed4a1a6ac6ce581a6ac652d48c9db146648026461ec8bffbc3be4c61b2ed00eb786cee75cea91dd31dd61d8f3d7587fdba8bb4f6da9f39197c38adfd8bf6d665eeb15b989d5c7efbea6ab61225fb25c0c89eaf60a862cf676f80c74ba2d8f8274fecf94c8c25f67cb5ee0f15d5f1d83472cb649f577722ea0a51a7c9657cea0ef4174732f831d6a7c58e75d703ef24441bffe60e77d4be5a04c4db568bb8cb68b7e7b4bd66e7e7ef5d24cef856eeecdf1f6012013a8ff316c4764c8bb8cf631117b588d340bc2dba2e639dfb659dbba5397d7ced36773c3636ed2520e036e9b06f9a861818d33b4c8eb58cc9352d73723c7387699ab94df43d09021e9fde9813fd449a46eefa7bac3b3d419a46eeecf7335e21aaee60861d8337466e8c81aded987b0ad1d977347267ba030165b3fb43f5b943ee794c4fade9ee9e46ee29f79d73ce49c11b6355d772c7636bafd8b153b125740c02d767c69e652e77297bd35dcdde8e758777a432ee19a7b95f7ffdbb31b2a336f7507eb185bb689bdfe6af9e97ee686eb58c75632aed22b5dcd14c4a880a1fde624392aa692c7798470b4a4be8f7dc51f28b2a9ceea88dfdc5630fe51755b00e74e9268f37266eab65f0ad5b7f3706df02e2a4da72c7639b68bfd77ecfddfe24cb687ac611f77bdd2467c7f296e5b8b7dc81f48473677d03355bbbadef46e06d11f7ebdc6dde7e33768dcbd8efb1df6fdafeca3298c63ae4ae686696bb1fdbbac7f7f857cf38c28eb14b773fb6f55bffaaae2e2195bb21f6fb94bb23f6fbecf1928031a00d4172bb011b80ace1670b60bf224ac2d8f11415638cb9fbb1a7ec66ec443bb8239e660b04fa00638c6d02fa204f0f03afdc00ccdb13e66da92728a7986f9a12ce19d1dbd4eee69e3f2b9061041ca4804314fbbd3308d9efeda82f523cd567f5392d94940a159ad1c986e6e0b5c02451253ec61fec481fdc100c890438fe559208e4a142a8109b4af374934d9238c236324a39271b0d79e228eb200f9038bd9b4cb0ab4f9bc8b2446401f270bc202a2a4f9a8a238a2707d51ac1934f3e09678806e8522ac96803e60190bf48388ee2ef0658c40d50ecaaa25edd7a8cd986d586f207f8fa666657561e8eb8a9138181c8224f7d008fa2a89e0e01b848f7b6d8d4a79438a20eb37e1c512bd45724758ab2288bb2e285f9ae5ee1ab2a285515a5659e0f1582942def49dd419b1b0496c4dc53f778f23dbefd06c0454b8b74e9723acd4b00a15e32106a22c18d97394d9388d243ccbf4d047ea11435691ed04767d6ce20a784f20b778929d18a08638442ad94c4f7946078e9105373ce19319f2d1fa6f3f3e35355f3d527b2c4fae3859436d5278ea44f5db2e56914c12b41b6942bd51830c502dc551fb944f54282bf4c01a788ef70a4f086271b52a10d639431db0db50d61164dd18cd9da10e6f9688067433e1fe0d9908ff96ea8835706f06cc816026c31c222e340792b766505aeac502b2b06386226b66c4412b0537d8edcd841928448ad3f4aea12ca623e71d6799302ec225ba87479295357fc0fc7ceafe505aac84b2cdc98c296ef06b0e5df73c296ef549ecbb3211f10e922437124a7684e177907c8f3f0115b3421af881a866c29a3942ff3b29b91227bd832346f661830fb06fc4e51f31d1ecef72015a74cd46f9fe051f9a894543eaa8592b189075160489ec4f9de7b99daefb5502929276d93466515b6b07ad97bed55310b5719a54d9bc451d03491ef9dc4f7a09412e5bd88129271c9786da11f182a155964506418b21fdc15a3228b0c941dda2792c906a9ccbb01eac6505be2f6b66b95ed5aabb53263bb5ed7ae9795f9ee8a556c65aebb6675b353b5eb56392bf3b42bc8ca2ced7a524faccc73d7909559ee8a6267a088645c7b7e60c7c3d1f4b1638435344a2ed4f7f26695f2bd37df9bd204f3cdf96484efcd48e3881ea955ca7864d3c42d4572ca8ec8a6891b3e1b9ad22ad9183f19c1f0f15d4e31d4f9a81d60783a299d53c6285d4658136442c2eb8953ce291fa501140e0e121387239afe424f05fe1d85250f45e79ca45b3a4e800bf928f5a8f7e8ebe113c628d497f2b9236a99296df07c8cfac5d19334cd738a7b3e781a8804bc28c336dc6ce9f83f292bd2674892f42d496fc722f82b9145fa230bdcd253546c3c1cd525eac796ba1b94ee01f785af6bc7ebb02bcce139e4b0e319b06bec5cb6c8fadb325964e92016b0a9235163b32b2d8a59c002767ccd12b64847dcd345937e7b6eb85d229114c0fd9a208632ec501cbd07611745c2a0024218631131928460646cb9136db694e87b3670090b56d410eb3ce2ad436bd344967bcb5ad7b2a2bd4b9cde7bef5959c9cf9687b0aa3e1d52aa7ad411c61861ece6b4a635ad39e39caf7c7680bb077d78289104f6d0602003d1c632428cf0bdf734bcf548c117df8b2fbe0769841042f828b57ea664f9544aa03e2267e0f160208eaa30e0eef1c024903a815ed772376331dd68f64a2f973b586fefed8ad05ef3cb7ecd5fec4fb6745b965dd755b3b5dc71dc86bf280bc213534a08d0a9c69c09a5713dcd17c330cdb2d7dccdecfa6e0cd5a2ebf4dbafe8baf65abb992dbaf486dd7ebaafd4d29c840e7b0335dbd64aa30d98aacf72674d9e9d567d2f5d39bb726692d5aa654c9e6919ee98c52e13eeef32a25c3d4ff02f3ea5186358c570c5300a630a5b0c9b79c8e4f8d564fbcd9ac968dfb8bb103edc214c03694e77185f8d6118762fdeaebb6d17fef44cc3b6cc5ebfd95ecb59c5b02bdf77dcbe10bb95da5737c371201d5010973bb8398aab34d3dc69be9452a8e1c360c7dcd67e43165475f7bed59b1d06d3d9bd87a91794bb9a0d3acd16a4bb90bdae9fd89095113a4131b1d82fee945edaafdfec6637cbb4c3604dd7ec4c8b62b46787d174a66bf675fa7b9dcb5df677edda2ee9f457aeaf15db57f6ab9dbbb88b1361ee30204ed76cac4531dcf161388db54d7f6557d534c4c0d7a565b68b72f73a9111fafd8562626dc8da7a59ecbab4cbd24cbbb22c5bdfb26685a81859b0eb0e6efcdf7b0f39d061b28334b7b9d76c1779f3769ce1c6d7c9c9c9af8b60328d5fb32f2d8ac17e1de6e4fdbad996bb194eabd5b256ad377733fb1e6bf74e8cb54fcde4d3af2dabf627d643a0cc85ac139b63b40b6f1904ea4cf40c57bf819a2dd22ec2e75eb3352d025d59fbcd57360373c55c1a468bd1f47bdb9ae13611a61de6d274cdc634ccc5d775401133744a9010e83d86d5ed945a78755c1abf5e099d4ddfd1f4bc4cbb1aa699a6b926e76a1cbd462d4ab5d310dd7e727a6ba5d929d63becebf1af4cc758fd4a7f7575bbbdf8ba747a9c31acf3216407d5227c7a2bc217611d437f9fdddb5a3f6d186b99ed7686e6ee6e7a6a4ebf90c9899e20ed573ba5af1abd2e4c31adbf8e35fa6b9dd2ab5e8a29b52ca5942a79f6375bcf32b9fd827e3512ee26af5cbeaff5d9a871f93aa6e92eee20dbc4c26d02ba9bd616d6d6ab95e56e46f25cb55ad6aaf517e7eec299861818e3cefaf4ccd65aafeb196671ceee223b4b53b5dedb9bfdcaf6183fcb31f6bac76e7edbaaffb12f6d75f7a39b913cfbc26d592e112aa104111f42a8e4799942fa703f600d94380db26e734eddc9dcebd667b6ba9a7d35f67a8476ecfae3084f8cb74b77355aeef03cd9b2ed84da3eadee649c6428a14d62b5cebba3defab55a74e9986ae9f779eb5aeeeadf1fc0599875ab7dce5bb7c7eab15bb5a56fb538cdb2b40c77ac6297b31996c938b93d8612da6eb7133d5fb779efb42aa6375b5d6d55dd59ccd6eaf7f2a84eded96d6df6ed35e3348b5dcbddb7bdf62f5aee8fa30d74b96d07e51955b6bfc872a2b90dab5aa6ba55593433cb60b72cac629835b906d2ae9b5cd61e64b156b50c6671bf793b9763b6f76bb57a2d5fb7195f59ad37d763b9e31153affd65b1cbba96f55d559f32d668329342d342efb63d9fbd1c0ffa304d3eb94fd0a7454d6de50bcfd768ed9cdbb6d5b9dd1e66b314c3aa4f8cabf5f3301584ed27beae1cb795e1a6b48c06734c6ce6ecf9306f9267287be53228e36763d6f9ea75dee27e72abe27ef213ce823e2f8a017d1e06a4f1fbbc37c3282dcf3cc36ded2e3294bbb8a3465140f3fe30e7047dcef8bb42a044eea24fddc9b8df7e8ffde6895daff8f5efeed87e61b88d6118d63a6a8e699aa669d6abc358afb26cc651566f4d8d9f8d3ae7df8500773c8f9dce09a2f6e6aafa767877542d9aafb78e7dcba279edd2a2a975d458fb9a737ec264530413bac96bf6bbf76ab7d6eff69012bbfedd395f3f7d4c2d8ab19f87b17a6aafd9170858717789db7cddc17d6a19ee58cb9c7c723b7756cf70bb1e3b8939d133348ddc28af9fba7b7aca805708d0e7df1502457770834018db6937ecf816a43b10ecb9e9aeda4a59baa22e51eab3aa71325e6f234be8f5f8e13879053dfbeb6faea08c61331b7b8dd5565ba909877d33b9897e7114b2f6f530f604c3afd8b3d7ecb841196e5086dbc21cb5e6ecf990c9c82f8e6a7694ec35944fb2ad15c3b0cbda7aee56d7834247f9bb18d7fc36e8dee4387494a3dc874e4e5e0f73f27ab5d7c368d724777353d583a8b6f567e55a5f71ad87b92a4c76edd6e2aa453ab6edf530db5571ad16572abf2458dbdccd70bb5e97ad75c3b84fc73909b8b58a7aa5038e61bfcde0dc511b7fcb1db5b7579b453ab2db3f1b1626d32fc63ae8ef5ed7b61de7cb3ae8a0ed96d5221dd7ed4531d7ed612e8d67b8cddac3607a666fba9be1ec6b76cd7dcdf81ab6e5b871ee383dc3edea52cdc6aff5e58ec259a4e33afeb381f5757c984b635db3e5dfb5d7b7dcc12d0a425fd7815f2f8ac1af87c11a3f1bd7abaed95a1483bd1e06bb6e9de16a2afc9c29627218450bf9cd5bee8cd81b07d2f4f54ab30c7ddcb54ec77297b2b1d768fb4bb5ee6a723686e5ed76073e10717465f4baaeeb9aa66bd34193e6b0119bd23f9ab7dca5ecee7d2665c36759a237a1e730ecda746eba09757fa8d344b953149353d043a7ba3be14eaf67bf4eb74ff8d38e7bfb0ba318c52846b1ab9f7e9fae8c7dcbddf5f707806e1f01ecf4d2f42b8377c7a445383fc01309a669f2624f3388c29e24499224c932811ab210c448167040c5a8a212c513555e0fe58391f013555e126ca28a64b9400a5f245183185b8cb1c4132f533cc29eb05042135555555535954092a42bc2b0a5699aa66942810fc610853158a0862a9e98424e16f8ed4495e700387414963ccf72c2081cc060640d4024133749783f2bd0c7c6c64605f0fdec87850c8efcec945f2300031a3a2a060ae042073837325043183b30021435f8e8297f55c30c8a3003249216b219e0116480061c1c0745c842054cc8c1633c01a88a22e010e630a656f0a2862a0871c20ee0d0f38648042e88015f6ea1bae05d410842728ad0040daa708358851324c801a4020ac902054ed838d03651b6502f73ce39a10a6255821eb614021250010b5458158d5fdc4895b729b5aaa989699aa698c489699a9840862eb0a0820abe427f10a7143c306a9086244a78820a2986c42134d1041c5010f3f3042cc030053604b98942b80289a4021d4350029227aef0c5156010042ca008d2840fa80842922445515f4ab7524dd234a53c8e6c0a02508630d83c818a230cc10a384e00810977092eb050640c2a7cf4944f2e3e7aca2f8de02131c2d304164780f0d1538e3f8120052d9e20831b98810652885498218b13a0e1ff0a9cb024612eb6cc17e9972449a2a6c7b5200d516ca1041a6091c58b04842d499244351561a033a51b1b1b9b18bc4ca7b8c8627d9aa669fa0475f663421750ec4967bbc42a73388e68133b40c282306e50248c28c429c8c0041e9ee3380a7981a577589a58aa4c694e4f4cd3b4c49eb09841177bc2020e3a7b92e89cf34f7faee058926fea420b6b0082900925317c72a818c7e0020e950be8c21a7e5ea4f86c508799d23aa6431fd27f4036b420bbc8d7e13d51cf2b171121f978b2e6c5455279c9a6e00eb93b7a9ad9436e4af7783541bad723e5e318638c31f37ae8a56ee6f5dc1fa8b6b7047573980398ca40ad5317547c7a8a9876262a68931636adb1c3a1a63eb2a5867e5165da41478ada0733eda45415dc29f5bde9daa54f3b9392e987fa5014f5a14a66a63e294f39f5a14a262e5ecbbc99b0b0e9e4854da7316cfa97f2144d95c428e6cd1373881353486449f97bad962a8923ea431de7d2631471f4a3840d946ecaebce64b9d0a7b1aaf4bb6ceb7728bb9b76262529efa69f69c9a64296d8d4c8747fd03edd1fa6a7e414fd0af3acb40ef84f178807754a1ce917293ded4c5dd4005bd7d6544464e9a29068c444a4e9b7a91805c614471c1c1c8baa2c3ded88727811304775fa0a58e0b1e81db61a1bb56dd7155563076d551235ed58afa60ea75e6bacc2469c69a767f2997e262fe004c6a464e29992d82186b8346648b18a2ae2441ce97556184ed9210583734e1d262f269ec832934c547fe69987c094bc6696fac4910dae0f1d05006fa971faa8135976220b8a1591e5864ec4080070c48938b18a98436386d6dd8ca5de03db94ceefa61d1d4e51941ee2d51337d5129125e5f41510d9b2c341d444326f2add51738959311a339e0e1de24aa80f8dd3ceb433753121d994c68cea2959ee90e592a8627224eae468248e6814a2a310ea7333bda33ea2e70c441cd13fd3c0ad8386c0b423fab433ed3c1c4a7ea625459c9c9c9c501acf21c72a228d2c9aa1bfeb8e6c2902091224221d7142efa61d94771167c2c2d44564813b91e54e3bf69685331741d3ce344d99c640606a55230a6f58e1c01ca88a082211d8835dc653299d883739d35de20473e2c88a9823cc1145ad237eea629e391a45a12465232903b2c5e4a05f930cca9434bd2974f24c8b37b02756f12e8600b621349d6849ba74e956866552ed0172443c228ea8b5a83ab3a80214e6162e23d7352190c802248ee8e98fa82a49ca7044e168430b0a0ccf5dfa133d63782df0e68928240e914e21fe067b1e0e2d65d308c5a6516caa67ac62534dc4cd1ab6f4a8d8f482374c6ce957dfc081a2b4744c7731041702356f47e99914238cb18838a2938e4906ea23a236e2ba30db0306263d8b4e4416098b5a04a326228ee893f2c47f45de7044e67461052462846620e44464e19080f197eea8d14a11b28522a20242b650fa4515498a44f6dbe1c7acb13f608d9c34c07815b35e6d4a4759cfe5e188db3a0668228bbcf5fd5a30b41e187b3ebcc5b9b01eef12df60c57e60ec57c40d3bbbc6a7044e7082503e295d9625fd15718315bb5bb10c1059acdf70f9ad6a67168a6559704667a34b6499521c1059a2b67ecbfa4bb1b40cb491c4b05ea925ace0a874198583430e617b127838d4d24e54e11ee1ac2419873afbc91d932e0716fd2e4a22d226c283a670789052533834743a8a087c4f12912dd28e2489549208a56aa89dc8226ae1419f075d4dad8f8cb0916d45aeb18b0d0377759758493b5217334b3bd5ab39458779ee485d44967c08ed0ed3060a37595c21fab4912d5348c8daba235b54aec3437fdc55327c2af0a35c5dbf5676da84de611b7c43b6846e3c2eb608bd22a1d973a3278e6e5822e470c59c73f64c30de0b71ba43c0a673d05da8d23a84b47d48bcb8b6a75bb9eeac55cd0267b1c5f4c2c4029e3d130c23189b9367f2c4113ded60b5666559eb2344880fade026b76dcbfa0db80bf984e2e8068490082cfa34048597c5a6576c7a51a62084a2d3cf882cf9740d1bfe065d41c8041b3e135d44a15002753793b24549cc0ddf03db507fee18a0bad649c0adffae0ead5f1c8974b7a2279238a25d60988c2fb045025c330ba768fefe30f53cf26094933ee9cab9833bcfb7fdbdedb3eaf0aef43c1247147339fc15818315f3c8cecf92c8d2cd6e26d93449749139bf9d43e6e268876fd366d3eba03b4adae1f491c8428447b6483b3b3c7a87cbc727331c474a36e5818787878787670708af89634efdae127d3e25b2e4cff7802355e88cc3fb038d87600e7d7a190f073cbde8b1e4536a83f006bd077ad6551e651ef2cc59942d12fc36d452a5e31b5216de1fa628d7989762a7fc71c0d939bc7abd281c690707675eda99b38767be9390cc6f58c90a82e18de01790078e21f54031241e78060909fc4215a92454105e0be4a15eec9e1eea0854116a8b4d5f419eea565ff6600926d19007f2ec9a694284682d446bad355543080e748d1ad73beca0c139e7d44940ca0a2291651aa1b29402278ef2679eb06a5bdea377283ca8a8e8e923557468a47978d04faaec401fde1bd5989e4a8d1aa7355ea3468d77df2952a2c21b4957787307e69076a43300f96253a90b9b4e614e61d3b8447c027ae1b548359ef22e3ab169102463e041c3a6126c43ca6bbc937600709708808da330094cdc5977337643fd7714ce8e1c5ec1ab035ea6d2322f8e74145a0618709524b2ec70faaa47b6f0f093579f36f99a077a00645923cb9c38a24fc9d28a797548970106dc491ed97349cb484ae2887eda48153a370ae7e1989b9eaa821e4639e1a397fe0e590e09bdbbb197c01fa824c324d306663d29f7197f963a641ab873d032898cdcc12de3d2a5704480e167d4790a87ea8242125966782155e8512894099364285d88235b42149e7a063d8563a923e044960baf20aee3505550390fc70be23afcb42e12e5b765e4b75132127077144e677717a23fa8348cb7b5454d15d58c000000b314000028140a07c482e16840ca2259f60d14800f8ba04a6e4c99c8c22487619432c618630001000000080080d0d0300020920a5694c3a3df35811a3266c07df9a64927ad46db93ba48650db7d00b97d9251a065bc4d39f0b9bc78751861155ee7172885b89267b1aed20da221d12422fcbc1f7ebd2dfa891fe21342c1a06150d62fefc68d6442c0d35346cc626ada7c341854b0b4dec8323bc66e620764598da3092af118ac061ac31970929d1bd82dd0f86096064f6d521332b114b69afed33b330d2bacf489e9cfd4289bf2ead9bc58d29230bb9fef87fc094c7eaba5d585e46e97d14bb594f4e55d4821bbc270e0efbbdadeb9848343024aea0bbb051b290ae3a375a71edbe65f481810f5f8ba3ed019760b3635dced0110b439b0466e99f9bd638dae9b61c8cddd5629303feb992f63c32ee93461353b9a1f14f890f35e713bab36088302a27adc00c62169c82519a9fae4e169ef07f4e4c33ca4bc57b05a33092e60b524662783db3cbb12408589af2e8b5befdeae0a827f07f3fb4d351b1399f845b1965e31abc854ee4b6c1f9160d441cdb18e55563b90423d4b0f61e0e3fa0c55ec646340bea621571fb5e7791e17e6d970c2daeaac587b5f2378020e52ac14c26b800f7fc450682aada486d5bbbf30c4d48ab8c5a64bdbc947606a76a69307b8ee283dc81b49c42e2e60bf19b1125dcbc3c8816825452d1acb6705436d4c39361939690ea07e0054c939f9df0de4adbe7d7fbdc7ee05a2a858aa1a0a18a6100d0c8fbfd892c85cdbee36b7ba85455b181f96a2d1ff548040181268462a4fb560aec65e0c490217d1b35f8180dbac248d3f0d76bf403b8493ea5d5b8cb884c708a48d88a66f94eba0c84a989f69c05c175d5cad1afc1161f3ae06b838d4289b0a3dcdaf3c4294102834de374b035c93e324879c43e26e9455283d3f3933e54dcb0ca53abe43c5f19862b18bd0d1905b3ea8732c7afbb46fa5a42fcd1d58d8e672c11c9bbe99e9e57b397cc20a41935d33feb61346f86170513ea996cbbfe3a20ef1176c5a8555d98335c2b55e10cc797cfd5cedf0631be9dbca84c06b6745a3ba75bd0625851e428e3a25f0165ad43b44d50a3f138d9025d3a65de0b26ac10a49321a73da809d7a0cd91efe27468042d74a3561837e68ba878f5a8f5184e056484268d2404eacf80c181304f874c7ad9b84fc078d10cc951bf70abede43d7d94a5b3cb2bb1ca02d56e7a32aa4cb06ab5d50abe77dd890d5fc3b11b97e477a97eab0208c6f9e10d5c2d004d2e253394b83f4c27dc2f974c12929b8952ce3ee6aa95f68f5024666ae53e1f7189a5692945ec0986d04bca0709f0c734d1b2fedcaaa3c4a728abd956fff45d7e6961efddbe42051c0e9718c8fe0ce34fdb4165cae2954ad10276ce7fff9528d78b2a70838544b39e3bb665212ffb10cd222ee5cd81515eb98ab386fce9109fa41e36db731ce8e7ab14f5b045adb3ca673c214ad0990f154a1cc9c14fb69f9613ba828284dc5c070b185c610522c9e18ff67669518fbfdcac1bc789f3da9643707b8766c9786dd6b57fe161e5dea173293280aef45733101a54f79d1aa34aa97fa81aed9eda5cfbabebfd374a652d07a3407069d28ae3f8ffaaace3b3a8c1f88a03ef66dbb63604a56e0825e64b4a53e10340d149b84bfbdd6a63efec352e08d71c54740249e42c6b23c85fd934a18c500a659f3bc121e8e68400857c905dd7ce0eab0461306fa70ccf6085873296371291883ef97eb01a2cd49057720298b19e6a1dc60c6b8baadb108722d9e0582cda27c5b021ebfe8607b7865cc10b1f63a01990235243a55ff87c00968f92130a29caaf260cd6375f83a9e37f62b4a1e55d6aaf9efa0db30a0d1f1b45e3f6063e7a6a2b68b7016086a12d947c04a344a079242068089caf36a4bbe93b1effe9e9da94b5182e5938478c2b31529967e6f615003b9462cf9328edc8c6f472d2620ae52dc4eeae38902a196f2637d0d8cca94e265575bbf7e106dc9e7f4351ac20ba27d55b9afd0f0b37f1e690a1298cbab094793bb8e01a9b637c294fcc264add20f7832dcd518b0ab64a96dab9df31efa5c2f079530bd04667ae3002995c33fc55a5e2c62164367b7756652edf00789885998719ce3f3f9c8443a486a4dd9668531d9ec1e54d35044819cc66f61cf6759e0b23e41f038c115f864ab3142bf7c00c2ccfac8978b38793436908d9ab881415d0fdeef6bc409197dbde424729fda602015c69600a97f73d38e83aaf4a3772dd06513f129e441a515e0160e127bd6e5a42aefc783d2a4e7aa222fd492f93edcfb62d569957352ac25ca0cef54b8423e2393dfc809e0f4e64075bb19c697afbef065c88e7a31e133ffb533510126d18ccb353f98841e16efb25aa87bd74ff7f0280b7f5898336bdced43a3351bd25710310a4291c40972e6d50f445e419f77e687c0e9f10203b259804a77c0c1aa3a018e48de56311dd2c373100adc6516428f55fd012748b605f5c44cef2c0126845ff4163b9839c3a5b3be58a78d47b6c9270fab941cf8050fa99d5d8b23339f6fabdf576202f96b8671f4ca4368f71942d476e98fbfd04068f43d9ad235ebf97fb2120691e15a426875a8cc0af1424e5bd4232115a24c7078e9eac15559e2f35219a714c2ae44d72a4f5d7622ab41e9bd88c1fb1cd1d3f6e99cafe47abbfed2ab917230ec642828f329509b96bdd37a07e240285c35957143e71fc7bd68b5294f346c5f93306f224163c0ed05ab53a55bafcf7fbc700977762b7a3e3310b433c48afdfca237b741beb1f0c2a30b8e556a373c3e63101cbd1601cdeabf3306f341a0f9a162fa7808daf4c435836ddcbd8edf17e2277c167e315e819c11b7f9dff5ff7f625caa1ec3b98a8f55feb9979522b600b67ccbd1c9f3791d9c7eb49b3421c992473f48e01e1c7efdf813c8a96b04f0de2dbc7629cc66c9f5120df7a8bb0534370c173417dec3e02f2abbe3012dbbc6a3ed3aeccf154acef74fdb276f9e890f9ffa5911fa3c310de3c653f87670e90f6d36cb4ed4085e20b6d66819f7569e3eb621cdf0ad170a22ac946db667f2f48fc46727409150fbbc4c39f169bc5f1bf8c353be22c337f254bcaf8a5bfcc58982de5112f665d392edbc63e74839fad6404990053294d1ab1112c820c3d0d574272bf7a70109f13dd0b346ab80f5fc20dce968c31097104e12d37021156627ef862b959ef0c153643bfc2227cce898f970fb86184cf2d3f10ac99f8feb14db3cf7f0169e7ba65bd6f109f5b6908dcbef609ea01785345c912058a436d5afa6d6a6f3524de829b96a7f655b2ea494e3e5ade2dae4da0ec3ddacc2dcefe6b7e78bc2deec026afb4072651e3227b3058537359f93d4abda60f5901c8dc04d0bfdd42a845eb495c0203b8789eb762ad8c8ff30378d99742c6c70efaebcbe30260b73246dc7e0b4dfbba830023020af617a1524177f79109fc9c3fb342230dce8431eb402650ad9593f31d969c6402bf9e2ace952601a75b6e10b7b25f4d5b99ca6f32e42efda58971f793d6d808f291d01e670c458df55b595cd81774a820449d94ef1984ba427385076b6563d491b100604b4a7bd67ef725147e0753646646b58d588b9389ddc0a55f2a131bf3ec82f5201d3d2b016c3d1381765504d9e0000aab408036a3a50a504ba906f07e33da343f0819405f742f111f2b75f7085784e60011aeedad6762f5b6e8364264d7dc485a48332fda5774bac54155fe47f647b40a91a914d2e83b81cdce7aa404cad8c954dd4897424ee9d4953ab01c53086b67d4d1a836033024b062a01b4f451d89bfeee1fd8ab9bc82d2cac6fc93adfb29cc3a812448625707b1c12981ee272c4c598ee611636075b97509178a686e845d39c65a2bec1ea0a2a34aa3d56ae30e19e82613c2f90a20ff6c4d3b24f61bb153f82c97a4eaa94e2d846e0556aafcd7cbb364393bf82067d8a69f9ca20c4e9892f1d744a5cf882a8101ec6aff062c5d688e43dc38a0b67f56342380ff98441c5855a6f547985cf87b0e5519b96ec9ff36df807a222a852f2a8f0771f3cf55d7042862176cf9da2cfb860b3e461784855fb7cba045ecb35af2cbc764e6edb55a31d7fd56bb0c3d8eae05cbb2de18f1d3ff5716491aabb23ae7f6dc87c0491662003c3a60ec22e24902a2bd93c701a70a89595a9baccee05a0c9020a84a1f8b8a45bb9a8cb05a24bfc0f0c948fa9b01aa6e3f2de4fd2cc122ded37b2cc191dfd5fcfd74031451f27a2e03f4769d021e407880426729bfcc66ae39eb22b03d9d7d73590dc6dd508132957db78412c5c6ba0dc259ddc5f6e7b210927fb3e069240c6af3eed610de34944ba0d400af8842dba19414b755c52a7a57aad8b7e05148421b16f80f792f9cc7c8216aee864c1cc43ce5fa1e6acfddb8f418b579d86af4dc06131e90c74874b786d87ea29bb462beecd95dddf61226f8d66752bd7f73bbfb215b494676351afcccfbbda75dbd8262fdb09d16ccb89201cbe0126f0bb44c6e96287b00848cfac648fd5c21a2f2532a2f65373fd1ab44a62db6120f66e87f75e5c2406c364092536b652509a8140434b1d016fca18317ee34dbeb09798b510876e4a5ee8e87777d6e55735c5c1585a064408a71ace37bcdb5d13a03ca5c9a897818825ecec936bf85adca365c6b0c0577f60efb218dfb3b2eca5b6cab639cf815b63534443a31fb0a4cb21379d1a22d66f3876db500dcff96c9011408405fac559e477199e1bba9ed368ee13f4a421912a1025a91a83d78c78e1e01856f54513ee1fe56332b8741b6572929368a1d7631a9cc63357efb70edea66e3b7a8a362b73495e723e4c7196eb2039455c8d4c9a934dd13fd374d00a3ad298b5d9a3a1ebefeb7cf48b43714c8e430419c082ba32fe947cee5a17a86703496aa4cbe2e855bf17e3a652c7a7df7c09997becedc3d8a423c2bb889cd63e2fe0cd031053f673652d7d69c0343685f744bf4d07bd6dacdd11faa2b9196aa4f2fc4d2a1541bdcae5d81564b79fbc499aa2256517bf6b40062479f1647448872e00b4b6ac2e0592190df582baa70930d1bee0d6fc3c1027e6a0e25d8e695f9b4ef57dd3c3272a6b6483212a6d8fad039b6208b8b2e3eb2d7c5cacd54aab74221def02f481c49a03925ef402404317338052b24a032e998cf3771db1484c32b961d04776c8c6a07b9cd5f868fd15f204f64778fd2e7f4f98376cb2c2dad16e9b8b7a95119de18ee3bda617787da3ed27c0bd0d78e3a829c00c39fc4f2797f3fa24541bf659995bd9c39501e51aa9c3058e6dfdc3df33e5ffdda0c752ad09274a9a52f0cd8a9005fffbf4022e8b53d2846851c8712bee422101546c267bd3cc763a8ea66c8c14ef3bb93a8650b640b7220736ae9061f87c907b4c4498107102f68889c3844f55dce74f2b758ea60b0129a696ec522f6b2a079328507d5f7bbed03c9a0a5aa9f6875f5b7caf7fdadb0a1698e3fd866eb506388bae8ea2af4963bfe42aa0c35bcf0d1d5e958f0b9b5d95076ef2f4e730a622c06adb93027ea67a67d68a50f42b71451a5b285acc3a577505e9f2f98c97e44e4d5840574ae0d7069a68d92d4f9b16733995e30a8fd4580871b9af5ae166d3a53962ad5304c288e151194ae352682ee7293ad1a88cbe3ee5799cdb44e571a53a4bf4a47bce41656e15719258797f36d02efa6e3551936158291e625ffa0813f14f06aa11d5636e4ac150d0e92d22ad978aec4aad20185570e6a006faf20da9d807baf2f8a7dbbe465d4f03d6059f115fd0790c756cf04b421a2da7d9bad04a2e07dbed8800fb754a6a18ef38aeec82f4f4b8bfb61a7ce2b78abc8f8194800af27d72ea4012803fc6d9129e3113b8bc19b85dbb26835f34d0ab80702b60dee16df9dc40fce30e65733f417e1154489a7582a6428eb787ec85e81e82d42e970649991e3464750c675c3f09e37abd8cd743c42fdd0720187cc051523ca294bf993dc54a9af491717901607c6be1480ce904123766aa2d865aca3737d2ef23eb7ed81a8cd21e0decd3a4a071274ba84a1c248cdedc74cc909569cbf6df039008320fe907102ea671b889af2c5c85aa0a1010f9d96cf960c132234b7843065a0600a55185ea0b9e6debca01b996a361ec5e907f7fee2e080de0fcf2d8c94611a6434a2533932c6b9135e29b088ae541faeec55a3af0ddb3ebc7f87e77656b7048d11e15bdb97fcee02c1e6289fb8eaef470320ff3cff4c40611114309aa0d3b60dd6124a490765bef5ee8235cabca83fdab3d7b72e76061e6dd6cea0ebe037fe53e6e89d14c803ce4d131ce4356ff5fcd2cecb8d208f4f0e6b3512e09fa016382ca1da9f2221bf8f759d8f88600124c6209f0862eb3cfe93c0a911152c9bf41efa87246ba209c7a2e416ac41ac6edd493155c7f49da7595aeeefde903c63507824ac2c1a47452b70a24cac17d8fef0116c7b95b5470730301417364103327b8234aac8cd1443c71c03a9d16ef50aecee4998db2ae5181c05b11c71e360a1affaa0ed0f6c8b43c192bf047d7aecb81248bf5ff87508a06f8f5c542feda21a672881595860c68664ad24752b680812243f0b3c5130c8e655d294dc8e3ba8dd426fa61d6297fb506f7f17c30e5796d80b3ad2a9d1630b9e8954402abb23f5cd96ab12767f935301f5144c76d0afa90ff879c13347cf2acaba2a058dcb585ec22e0299dcd0184b1a3cf7e4221562a2494921bc726978f60c435d728c5e5371b23b447976f57b3bbc1aee474981fbe712c3917a82b724afd27a13ff47190a23514a9dd48cf86415093ba0f08551ced409505a11a3dc416a12e2232151eb67e5f01a70e94897f483d4a6a098e007c73830850fa428ccd87943134400340c9e480cab0029a0f981b8c86d75a41df4b95c536ed68596830a96ac9aaf85e785169e868bfdc5167155e5bb5a147c8071bfa17dc99b6ab02b0a1e3684d5b8ca11e14b44cb117b1a713ff8cd2373a1e6d53e64870081b612acc03eb32056ab28b5a26da4ed8985cb3af51c0b6f7951d482adff584b6296947c74838a1065c4696bf0efdad4f31b75fa0c51ed73ceefd5391dd9a9bdca06be520f12ae3015f5d427a43e84a8de6303100b381aa7cb72beea74523eef111d3f33c0c1a88b631c995e540f9ba6a1189ed0693b8359e7b65a42bb52c02023c97caf64ee96afb83992064987737aae553544e84376c5130df32a2803b70a92287dba1a5e4bfbdcf59685367c913aabdb7fee148080d83ff5880079d013c8cec2e3f3a831de10883e160b2261627370789dc8b657aa43f1e10dcc4d4374c0081c8a4225e3e849265ab4c824ff8ab41080e2b8bf2e32940aaf411daf4d5b30343dc048e92e93cc48dc123cdb455220be644a1aa6f541d9829aad75a1d6e6cc41171a2fa209a3be2814069d05cbedde23ba19ef669761b6bc061af86d26f75a3b273dddf7365a908cda5b0ba97bdc2c612d47d8631c54875593ae5cca13b08f80619280fd410c818d09bd9b0bb8b24052c65c1f6429073852bde5d4d7cfc971906f2ef03b4160742a9a40ce71a1387812d44ccb4b58121a9d6541400e85c07c02c03742e3c7738572c1abcd5108a3c9dc7382339ef5ea6962941ca1e708cca6bb1a08162639ac5180ca4878fc4c7af7461bb05ea87ca17a36f06927fab9980672f2a73056566040616fa082ebcf8522e76cb9261c4cf5df89a4fa59bbc3b1082347ffd55c80fea1e1223f8d861251cad9450efc63d3254bd8234769cf7aa650a558f2ef8b6ab726aa5a66cb5d33756c1192048f305be0d19789a8806cc7ae39ca4a15a1036ad3a13412a5923cd73df0963cb89e9cedfc849041a838fc1199738db0e9323224a05de1d45fe4c230d30a0a7ec764e99551cffb24c62609ca8e778e926b518e53a78282fc5104bdde88f84ab28705705eb2600c9185a1fc2d8431cab96859e686c62476297c3f8b09ae58a0dcdb5362b018903ad26200ae76a685c49c2e281a7c085c6cedb2fab92f20b36e69388ee3adcffe32258db6bf1155a60024b7d9fb473937100fe3e1cebcb85ce86580e24cc259703fc9bac7b13e471af70344f8c35ccc02f410dfacf8c0c7e05154a35182998f693b48f2302564d67be83e045e0e3575e2970b3b03ab16e5d80c9900e2d18207f4e5a3b0066222e0c18c8c60e6f05d6d089e11cc800d0fbecf378d096267c348f7c4604e877700dd211614a70c351207be7e75e86b8c9e1ca604d7e1388d8190cdcf1f965b0dd9efea6516aa1c91bae347e8861126ece4cc5fbba1ccb3452fea09917ef829b809dc2536e04b05e74c3ba901ca2f83a420fa2e194a62068a008587d182e0d9649ce0462c3509365f4a6e98e32b4caa7dc13bc6836e2b707b4eb869ff698bec12e35211820f971f80bf42b9878384824df4c5b324fbf4edb48f52f26bc04a41b74c0a3d2c716edd08a821d40613560aa5fc2cdce3ccc4fae560c416ea9d95d080e83f326def8c9d5821a729f06c981320dc1dc6fc4c07a0c90572f3ac2c6cc1fbc2a9487eb91b8414b6fc473a816aa3c30c8753c87a23227521e4cdbe9df98e2366d67d72684712bf928cec970e89f99719e66d52426813df655a9625d935ca644abf974e690958ce834b2d0ff9c209d4545c91fcf31496bfb1bb89d0d3ef5ec81e5a148a9d94d92ca2d83eda6532fb33786b6bc838657884ab7a7d3bbc2b7fef6214707392bd5950ea2000d392bad4d170f7fdf12f0e00feb95a854d1e0bd822f1b08c62eaccaf59c785508b75db03858db4c34c2a39e83db654cd478c3e5cabb0e7c73d4a9a8208a04ac0d0d6dc7e6f871810f1a445f16e02e763d22b7a1d7e4142f7c362ee60e183820efe01fd0a6243a7d310ee819dc1d244b3cb79712e866692503466623e0c9820d1ba31d759be0010d4bc8e732b905af195a8706ece40dabfc5e85f2347596a03cc0d1be1a092373a2e5801e90c93371abdec861e3df4f3ae35c5e56ec3b46aa6882c9360076742129155bb19b584711951efda47b0281d58945e7c6b3f74b9b5483b2e0ec339375996190c6cfdb9d56dcaba0f5409649521278fcec896f154d45bebf5df3d8769c79452f200316a5f8c0b0cfc0046eec4c15f5bb90945e6a0e733ea49c6a7d94224e703a1a73e4f68526b158cafdc3ea21457a70b3c449cad3df8a07b2ff998179522ce6a6e0e83c1622a40c541f60f403e88e4d658f40581797a6116999a37d6c57b5783443b7f4c9f1b4ba1c4d85424e30cc7f4d88b6361efbcb9413f83d6ecee174549f0d1ddf95e7e48dcfe8449dcb9f8c3b07d50230355ff9dfe4c5d66e9a03bb669df19c7ce3cf9b3b87cbd33c655ba67b2e2f2929421a8afc8387d8f1bb4da114e4bb21b94699b6363c800e49a3d084608a84a227c21c891fd21c067420ab908605ead1c7e5514111d31c6802b336ff7353dabd52e0de5163ddd60ec0dd511befb7f494d3894456741e43ba55db5eefde71493dc177a00aec08cad8d20385cb3a1d49c19715614bd6ba1f9abb5d880ad04996bf20226d2c25b944f16642ad756a01d54bef4ce8259e532dedd0fab772911bcd0fa6191344beaa8e2c5a811b87025d96a18c9332d32c290c12fb832b6298ffd0b1b8b9968774dc3539ae9ca66cd36396e558d71a86f56e369a65fc6dc624fc6629a56d5dc1f286345b98cd033a7ea5b326c1b5d1a95c69bb51bdd1c7b4efffcca3ec7bc741ac9f91f65d3ec8fe001904ac0060e1158d08495bec70cdb6c11dd126673404ed2e752a4998034100452c4a662a46f5424305c1e7a5069f8d061fe6b962941dc3ee0901c6ae60233dc2b4434236f9426a5b5e21164effc0484379ae9324afa2eeec38f4201a53fbf50922b16c686de1ab2b2e2f25895b5992e605d8a299803b25b7d1555bfe98223fbe47532a212c3d9b7269e98261eec614114472cfdda39bf23eb67200f03572fce11534e2ca68ba9d2e1da1a59470c03daee802d630988d10e36d280031a3cd69f3ae1ff12b9675da2d3d2b1359dad3c9d9f30355aa870d43b2f3ecaf70c32fb1dd480cc7f2c974b3131d9fb71069ec75a47424e90e92c662b5503c8ca4e109ca7afb77115a81ee683c89249122385186e8345f2bb6825c0f515ca77d5c8ff2489294ce1f5bc8091039303a14c5bc4f067203a180464acf2be2919fb4003f36845d2c855ab605843ac77492ed6cd240cca26828f50b8ae7b9e9c2387498bd01499d12172acf5567271dd639937d408ceb3f6e9fd858a519479f73788e71c8001e0482b32afc397691001db4046bbdf7b3241b3dbfb4a9d3dfdb63079f2993caa9e188f593399e76d3f1b382b5a3b9b79265e2b8606725634e7ca18d89c4baead8c7aa769bd76681b06fa5bd823a6bd6843d8dd3af49e3c7ed537141e5b7006d10e066d26e562095b3116e6a0d36f4b147888ce13cfd66f433ed45a1ff83851462795700fd707adbb9b99b802579ec7d55f02279781411ddd188c91d36a81146f4574da6346dca06a15aa4334358c19096a01a8b6a994948b03289a405787c3e79f230e6abe716e79de25f6e834c3bf427e4d8d1763399364fd80092d8c7ff2d1879461c58ae08086795e24030b01c34d4c8ce2f18b4f28b6bdb8e2ebc30018309105bf2160f4e318f9f40928b7f9d4320f4ec471988eb53bf17ef6b254b523d94fcc12124ed3602b7720e99901d5c9941a86b57a8169b017d50c1fc3be03e5748aa32cb1639f35b8ce6e2442885b67973198172bc3aef85d11531a85ae2ca6deb7975e6d8de1fdc2651ac3a45c3d2a2e4246213dd61abd343f015d05fe8fecc4f7a592e69a041abf698bd98462268a79a008ade3918495cc8fd6cbcca49bd7ea10afc81d9b1e016e4321f4601ee422106e2405c3d6ea6dc18eb944df77707c830250d9c0e871630184763070907ebd624ba0518720764f6f999828b5c0c83b513e31d16a4103258a82c74ee0e15e3d8182bd1e2ecb593d3097d9d52d0c5ce2e6bfaaa061c17455784470922fd9c1df3aa8e37e98e671603064dcfb269a164d5e78bf6be97cb73339145ae6fa17892e5aa96b85c8758dd42a23cd199b11975277b5730a5cfa4f7e9b103f3bac22735578207a88024f60910576fed52f5ec394b5919c917fe7fa245538e926d2d6d4342195c0dc867a08ad0497d91fd4a0017fc30e7b992e282e25620fc861730edae9104610df6eeffb3d120895a1f755d0e350b09f74d79e9c8ae2e78b0cfc3961a9ef25c62b214136a656f3c9b058eecefda873b522399d750071514a5c4da1e4933f91b2ee14e473d0886db2e37328d094329dbf8fd606d3d6938a827cff5cd232e1d6d148048267ba7090e49c37832c631067829d10cb9c9e3087a9e281e82c533fb0c39c9f8865eb427b6301054cb511e688450cdf622b6d9a90d9257f8202235f68556f30ca98e5b71fab4870b68b9069ca3c3a446a9e67b240122cacccca92403931952b691c4592ecd23314a404627e424e52cb7ced7eaa636d3fa7f63aafc7bf65bf062d463fa22427a1011389371123e4abdaf4f09d698eb90e6b262ccd75d2f0ec680d502e7099b6a3f12aaa4389cf75aac3c961a1e7432374b4d84a6fc4085048ee2c55023856c3bd3793e9abd812d7e47595d66620aea3dd0c6e2195b0756e411ed1d1e2e8f456b44b7be31b847ea6f24d50d551238ac722ff574cd08019133c8e7c4aab3904e23004fec37bbfaafba289e23ef67663a0d1de1028739138217910c21f99f804f607cf8a4fedf3f09a01866ce7370b9def3d5ea618762f7084a12406429162590c56e7d1aec90484e518c2bbb53c61e64a472ddae02ed622c99468e80f9e666a310cc6cd9b28386537f317f933b8701c2ebdf7601624b4f6df79c4e06b1414615faca754659cf97223e0327d6191d48f486a5ad2cc24f5c6e0f89cdd1fc00b288be987443c932c745e5c245af448d6a36899d0cd60cf03f3107f7bceed4f160e3b8db1d0b4e15c1940f1058146c4611928e56ac3f01eec005feaa953393ae348918ea3cbe46d8c6a24f291d1c7aa90c5df32a3dbe9c4787458eb0620a411fcd9235524ba7d4f6682fad06e48a540c2e7bdff635976cca3cf90de85f6d877d5eabf94a63657b6a615e2f455835eb78b5766b22baa85e305243b50f654b70bae68a068dfbb2421fc96cc306cf72eaa2362122d3e125db542d977089c21c66ea35be3848e875fc36b10e3164f523854f38fe89dbf8232b291712e66fa44d9e27916db1611f822d1b3d5207a4fe2588ac1b2f187ee1da14f8c2f7ee106e40edb62600f70fe90a6083c1450947162e0a44f6296b9e84c0a03238be42b09e33db996cd02d6de896d16c9959c27c71192f748c90a8ff9f08961ee2b119e9e663c54434d0aeb170972e4edfced661fd3a27096b968b246b694c8c4e847df94043010df28037293012a1890dfea734d14179185899697d07c164f3df509827ec6714e4996c25b1da418294704e4b11353b2e2a328a614157c3642b4939b837ee0b6f64a5cfa1498a542222a3c3c9c4a5d9946c114660fe31959d5a21d1f812baeefa9ef20f015817345eac7d9b82077436424d7952d2b90bc031b2f6be67ad26940616ce68ea70b4bcd48aed597420d76514aae96286a2e0ffe9f0bca8bdf2d99f8a431f8706930c219f5b34c1a326be9609a38a4e736ee41923e1f3202eee17fc472e8729e234140f24f7751fa43ccd92ffca960e15024188d0390e34b5522f124586b3e0ed1b6648292d55d3e63be05cc38650a0de6ee462e16e04f499fce04f63439f1d04d48a9f36856d418325a1fa22bd4fd496394677988c675f4154799c9a2850f2e5288995106b24f649b80ae9b10b40c67e4ec2263ad35374c912a154325717c41a7820796b38299c1e43a02121f48acf3326f99031190b65eeb623b8bdfaadcaac8ec0ad974fc7189ae49a07b25831ab2f8bb3cb43145fc72badbf77fac217d4d55cc12e807d8e6d4af0fee45518489d594ec22bb76d7a321b897cd43a65b223c5f9436abeeda099b90d81555a1c42662b7f2b632b9d5587b7947203932caceab8c7a434e7b29276dfe55cfa17fb2e0f744983880454b85ab5c32bd14683f7a496c4c5bfbaa2d803c533d1a6b695fb367955fed964c01c9af8772b1b56444f7ddac201b348e8a30cac8f0cd06c92b258e52b47dd7e5a251f636c21af25f0f0cce80661b32bfcd020b5b3610438ad9b4f457905bfc13a7880832a07130ebb23e6cde5aeec5cd345da94b18be456ea5a128ea9b38609062dda05ebe2df9d25fdca442bb980a2219528ffc7919ec755813927ba61b9816e266ce4a85bb71e6675acd2899a5d2d3153107faa96fd7f760cc7617db80ce6c625e28ec080af0270139c2e0768c99ea484438f3525c8cf9c3911c64bfc235756b989dd1e4db5fdecf2be2c229f94591f0b7c6bc7408cd6c6e8f8117c9a0180e4325c1e0ba08dbb3a9958e628d3078b46da148a857731b2be7b06014007d79b7b702201aa277aa8d37c8f6aec9252f9f6667da52f8d2d813383f13604963a8b13e10f34def24fb2b7dbb612214f6fc96d12ec8c2654c0932277e20e39b7b7d441d2d421f6911c164cb4821c949fdd328cb9968300ac342d9074953fe61f119c4df7db8092247da7e42510fa258b4ad6be26d2f8e3eaea7fe1e6d195b9f16bf6d2429573fb874e85fa242a6bd0e8e064d35c16ad5739a91a4ccdfc3366619a8df80357d36b45cc6fe7251362cab354ab5b9b3278165dd9938f60648114b7ab0ac142bb01a43b2375f25b77f4993e951acdeefe7a2963faa1509534c3e2793d4865821f52314049c23134e554b2ae4589b3f75c075d3259eb9d3ced8baf811766e40fe5984ac1306da55190a99b3a0adaf2c25895ac5f897b4d859211e4693dedb3d9524981cc0cba6e96d8f179ddf1e9f57721a585eb65080a55969d1a22a3c0d61e0e46843ccf8b20249d341c67b8b596bbd0bfce8fd6eb921ae1f46e0128e905eac4beb8fcd675395bdc4d01522af95f075ac7e2b8e85502d1138c766f4fb5008f8db51b4e451520bd0f3f36fba7b0ef43d4a73d98d6d7c30b9819cbcbc9584bb574beea53eb9eb8b9980c65b8629abab9dd373c1b16299df106ff42d681a8534fa04de806d06f6ce694491b98f1e8bbc15c26b6c7022188e058e1897ed659c7e54392f6d5329031ddfabe912954645dc477932714acf8be2ded944bfe7a03f084214e2982460a6c9dd07eb7925a1c5d40e2b4ddc98acca63f8e0ab14cb1823ec56e51b811fafe9beb94eb8a15f75d4caa2080b8263754e21281ba91ee952c6ac7996828a70208d0c742dda9142e9c7120f61d5e2714e4ed5c862787217a571ad8631c24b29a8010405e82d587d3b0bf127065a8c39bbcd068a14f702b5adc7e2a767417a692841400bacc8bf520c95d3bbd44808c634fcced027a06838d7808088a50a9cd68f1a16b1a1a2bcfd6ce3c1dc4d179e4a3e27f6004d0b649a35325d2a5f4e95d7d2f6f67ad4b4606f8940a8b8e41d33789959e53fc3341ad36115a25ab943edda2beffcf4c13f83055069acc8b7afae750f3289b986f8436f3fa61b1cff73731cecdc8465d7f789f7622e10bc99b08f5a990ba8a4b870283db66c357f061a8dc6315c1c9b211739ed482a9fa15e4407938cca5b17a43f439af359aca317af6837f359a64f45637dbcf3bad9c1ca189c650783aa0693e7345368906407fb57bac86496423e64017e777ff301a26d28e4eca5f0e27831a7d0cf7c015f6e5612f87d7b329961c46aa2c70d1a55e46e05163c416e0db3947fccae8052c9a272f8435a10d3433318f34f4c2e3f061a5a858033f36bb60f622f064c2c12e9dabc6e050cbb1444652560ebbc84d32434200ef7ab8a5706ca6d6aa52ef2c462a90ec6336a5477cca9d64a0d6bc3d954cff06a0586a3b09806798085ce567af0351e58974174028b66c73ae727f5148998d014c7879dc806647faf5d159f45ccb88a54d435ae16834cbf5de97cb17fa72d85b0b34f8fd7b2e1c08ecc6c8b7a7cd176de4e76095ea9842b9240c7411811cbe824b0c5d205227fd69acd8834d053315b706b2cb0debc12457481cb75cb25300b0a1a311f50624eddaad7f2b8733160f97385e12bfc9a900e13965c675005c05698fcfcff0d1a97f485e66a3a7d19f810f11576d130f8b6b5a2094a70830e622fbc43b46ae9fdc672b8e95144ebb374c4263cf5251eccfc3a92c1b4bd21db2267bca6efb68dc212386029e7f7cb8ba110f5b385126010a32d0b22a9e15a3d727829cfe04bfdadb6de92209904017d969d4f96c07b900942134093f69a3147102ee824688baf64032d5f45ace92890cb8e7e40a022db35952647ae17ce88b36b71110613ad180951dd3b79c7c9fb84b561c2f22cd03436380897ff15d7e6d9dd4a9ceea60d6ba5e2e09b6e66b3acf93371ca830929240a8f772c9641c85235a377a51b3d6028d077d559a449e403940ed9795a54d8d38e9dd2422b1130c920229c3e731874335ba0b51d152aa6401d7107d81e39c9c88cefa40df024fe30fc2d89595fdce6ea1af1b3126a33c97168fc220497eb479b829dfdd0f2bb6bc9690be1d14683ce95cbc115b3a2a09d49dc4398eadc5f3caec085cd1958814a4bf4e9ace923ee9ceb21bcfbd1428fa33b44bdc5ef225bb909c9b11c0cffd2fcbddcac0c7a5eabfef6386a8a325c5eabdcb6046a25e5784d735148d91a0ffb18e030acab7aaa806d03e9109856647f9540a9af6a878dacc2f68789a347e3da5b892add4b802c2ddc4fc0ebd7a0e22c1a8e7587dcfa35b99f5d8165b44c26ed984f60d014fea2a5d9521ee29c81f699ff66f4c1e2e939e0728b142abd2a82aea114abd43cbcd57346cb458392d8acb208c010a8d31c74fdd1c1fa3ffe153b43d22c43334f2347f7f3e49c34ac3b5566333fd779463b16f7eca5975726895900b194256afc825ad61f9ea69e8387ec666b1ae3a6735069f3a9ccc110742a38c24962be7ac40b4321620d1890b248084ea264ce60882d49924fb2bfb99f4424cdfb2fcc46298985f5c77928983b1f53f74c5e6f70650b41f7928f41854bd5102ba8639a033f7530636862025e9a4147a16502a814078d40830150e9063196160660a41b741c0d66804935d838341a00916270636933011a947c51774560d62d39483d1ea86eabb744c6ab2132c088206af153f2fe3a4130dc71e95354478e745b0b02a8eaae439b11d16b2f146f3aae4316f208f12b61b139baa8972016e5c91604408c82ac7b726bd19e9675398b86d39c20752151c48cf2f7ae61dba23bf1885a5deab8e2cd40c370a473d59c60e39ae6c4f612cb3f9abb082bd91f3d9446fd59cec76e43e5fb30e7806616227838bf33fafd38986314d469184b6ac06bd46ced486f2ee9a82ea3bb1095ae6f9a46030f9986563ce3da45ea533a2b5106cb5090c85e0d6d84252a6eefe0bc1a15b492dc37ad07145a51df64597769806b84e54131fb1d4560791118201072e6dad4db0b0611cdccef7455122d1c899868e8b032278d995c982f0357c12a94c926d030fb82bfb743836011c1b756af696a9b4f6be5310b025140a09946176a18a4f803d6e25c348973e33813924c9881349dcec523094304ad34abd2f7a2d92180b6dc219c59b1232518b4c6626d651272eeec13f4c54a99589fb92826ff438a596d70140d8061f6223b34cdcaf72ed66f65a5b52247801e6817d029ff64aea0361edbd9589e307c59f1b2e541d661b0e0819421a334b30686001fd32b30ec89dd2d9c6c42b3e22d4bbf8cef0f84055e2738b13bdad6d389155bf316b9f80a4eb06a48661b0a469fd6e292661d4516c9ef6cc988700c0f9054f17cd6f1ac39c09a4b82c9106c329c52feaead4d80000a21a303a62602b5097edfb2f24ea2bf4ddb9cad8f48913ee0078d2eb28a13ea7bc7d1cf940c9d8728bf92fd9b6479779abb1f5a89e875fb2c7ed2af699cf265c8d41822b341780c27e83710192ce1a982e1d23ba47fc84bf3509471bb929ccab794ebd530448310f3933c0a77f0188d019baed0638a9876b324978c34d426b0234f3050febe941c163493863c759387221bc76d94a376404ac9240d0a18babbcf072fc10e76a7ad0082237f0abf5284196e7058061aff7c0f7b632c786bdabe68e6652b1017b62465e9c4f4e18870b63275dd902243929c65b7b7c738cd580b872d002cdc486903e2780ad865daedf76ebf621d45c3738fb643b52a2d995d45665568d7b0a21af2a83049613da86a254c44f15abad62ca174e41847d143ee797641a03ec4f85f1ac79d6d9bbd8cc0bed6866ae30279609ef0bbd2216651177fcbffb6f136e6037ac49c402800960a1a46d89c99b349e7a6582ab39003395a5f09d4023a99dc4426d0373ab825a1df78b19be206358a20ec18176c2816416c82865e6e395654ce88f15f3a1d6798d1e299890ca1bb901e0fb1c7f7118d05b1e5ffb55d380ad1fc87edd00eed728b5704ed0ba23aab1b501bab02ec3a71bf92ee50018f2dac78e8ca7fa003526924d175ab947af6ecca4dc5d2fd2af587e2b6f3afcb85543c6d9ebfd2413b043605d4406cef7bb92534bd3e2496394aad1b69356f36e6f6df83c367d1a88b213257ff8b06a70e3c7104a9b911980b0acbdf6c32d10174d663d77a97c70e70bb9a79d99f5be2c59a502b57944a4da8c4b10396aefd3ffa5b9055ecbf1a94f30a3ddb0ec1bfbe0202f1779d1e0213d2c31d727e43343beaaf0981fd5404449f7bb3ac3ced9250910cf0d5418f4f7e83772e4740d4b61a5965c85546571d01bae97201ca1c1e8b244e0936bfe374369f18abccdae0fc25a061789556963b852f5cad31dfc2072a572dcb8100e4bfb0833f73aa8ce9456282110764899be5a6c18302f0e931bbb4ea274f9adcc5637f7fc259e80d63375f5fee307e6705d7e45288c1b1643648391b4862fe03f165afd6489d013521869c797745ad75aea64e1e9859098c8e7fc46bf83453d21e200732004a5d937865bc183f80c3aa6aa061fe7138f66e3794629a0171c765a63ddae13980afb746e5c9d8d2df47f5cd0734fc045aafe1679d53f7a992024127bcafd1ddccd112c0bea3d7e03ef50ea71f6025a0a4b594dd83e405211cdffa97bd134e407253aa66df9490d76b2e844c04c45d7dc4b7c95d70532f50f432c4b7c6ec0047f708c863f4c538c73c47a46716afac09d5814b3c3726dfce788cfcc62ed09b01a29b8a620f2b338db21c01a207d6ebbd10b03472426ccfd9aa3983b1998078cae17bcd38386cd291206a637bfb9ffeacffde949464c91df15b6ea21ecb7d99e7fe47f0274374efe092dda2870727093d3fd6de405ad1c367f555b125a387ab72d7b7c441d54c595c4ab8c0057664713db2fbfaa8bbd18cd3e686bce993a66bb931b89e9e4edeae687d557f265a76964d1a65576508951bfcbc453b43287308f5db17580336d1c2bffb2bea1f8dd930e11c31b2c472fc3afde0e5a691e338be346ace794b344663cfe58b029bf6e5f929fbea221dd50a8362885d120fafaaa0b3a595ef5d9e454509564ef707a899bae4ad63e23d98c7d702c4385afd890193f67386f6a2c16d293ad0d93bfae6eac401afcc2eeea2144fe67a0aee3ca8e4d6c5d99f02e067a60e291bc64059e5f92ade00ebb86d319215400fd6812010684da1607e4562649306953b8036f210a8006e1019bad049d6c8e32cea469b3ba33bd9b39030c8ca9aff1e9b36763eedfdc3029afcbf2a1690c73b7bf492c3143377997165426aa44da207f1f2eb54ac21e8c37c020a1eaf515b9e6fd2fdee74506089366aae7d32335afada6a29c6c259d2bb73aaed2397fc19acfef998f20a5d361052baf363b7a67b466f43982bc134d1d795753fb6244fcfb43991500d84f68104fe77d99ed11bff8f7762674147e7c078b51a81580d5de685133ca4ae90c6a0e2658cadae2d3d4363e5e384696c2f4853fa0bc0786a6d2f62bdf45972a629025d731184ff32014c4e8df21dc5565999c9c472fb26fd637a12b9ddf05c627c8209117bf861b62ed67ae1ddcb29709d1042f529cae024c8ff1dfa56750449f7e173990fe838b3d3defa80c4fba2a85110e0975047efb1be6869eb459e8be8b49d215ff4d88a5b69eaef87f396ea45d7ee44f89a171d4ff8360bfb481d0e77d149cf9d319c1eb65754c78b0eadede220683a6cf8db1c256806ada5bceffe34f446ff0c8a2ad989765d53a83bd2890eaffbe411b49bd602534d363c4b8ea4052ed80ec448ddeef519900018efa043453f0dbacacb6fdff10bd373ffc0f47e16c7dfd61de1769c87736d386671e294db3fb44c51a1b0205285101454a119215a1f7a4267f496086e590fd23f718dc89b25cdd5634d6cea43615e4212de4f02d2fa01ab29b13ea2d54e00e7d9aae1ebb9bd2098062ace70ede86d3176b8ce78464123d2b6b6d233805e5a8bf6a58f8c84d86dabf3c7ecb782eb0e580c0a8187817580e455428b95926d6d250a92b6d5d7c64b5a46da5f892a7d82de41c15399c7a5392e7059214ae9c26fabc2c55ea6b290301b3224b7b6faa5c27b374bb24878eb8755dfe656bdb4fee324e70ca2544f89cd59116f26501cc2b994ca19c9815efb28cc5b8cac36913ffc62d05ede34e44556ec9697367d5a6662ccabd1a8a9c07af1dfaf272cb26a22f4730c8143c7accaf693cbba07e594d2adaf4f0a0f1dd170a21090d0509e601e2c767988fe5102a14a1fcc897f2ff4a8fb63b96cf6e8e6d7a09fa86f044f2820cfeef57876317b0d67da909bff7e80389f3fce385d2e0f2a2a25397465710278685f1d9c438e70940f9430b4e386be4ecd6f06a24cb49b7450d409c2e287a8ca90c9d8ad8aa23d29e0c8642671e2e2340b57df6028d25118863927d08fdcc1cc0ad07afaaf1a9ccac118ea99832ffae9abadd17676a7f2f0ec91d832dfc21caf2f4f94157cf2d07991d9c9766268c96d26fe249c2bb7df044d7443bed73c3f7a1c1766ab562ac921889980106f7e89ff4b55e2bc4937da4f621f2b0ad4e6033d7b47a280e6ecb1b5c46a2c013df9d7aeef11c07efe437cde5310d3a792d467e87b865ed093069b1ab8506d95e7a1fa0d24b74dd1b17ef8d243168857ad5cc6cb559fa44239e6fa097cd4edc3e20e3dbad52957d8faa89165f2b35504cbeb37f73f215d76c274858f234ef4f130bb8aecaa6121ab807ee270df145e5f008646eb8fd605cb399ba8a453d08a0ccbb4bce83f692a769f081c3e48927bcb76cf598ebca80892cc69c9743150b7925877ce1c6c76d8ae28c642d91772c21da09b4ea6f70c85353096f3e4597295158fc2b691d871690552b3a89068e366cde9e089019527710385943b2b9ee01cfe114741f2814dac82c91726e10a262f18ca28407e6009af207b81a53c05e90393710ba2070cc229805e3084154b40bc8a9279f306dcb5c6d4094fd7fc64083b18070656c0af692778125976667548f38c3caabadbdfd077c31eb512e4a67f8ad765744dde1907f185e8b6bfc7058a26509d243c4128726931291ce14355c436e8010b585c683ebb572414d89819247d1b22896e8904960312f1a05f30c1447eef358cc66f78f04657ad1e8250cb866cc14b933a2499b938fcb325a42137c699780e0ddd9afb86b20e82b79f07b823fafeac01674b03001ba30434ed8e7f18555f0835413b6b63c74374e602aaa102de5895ef832936c508aaafa069cdefd819c983e13532f371d6aa145c87e34ab9eb37e90712b931fe268c3cf129a58eade43f3b323e77def45e885314c937b9fef9d6c72ee3156b0ee833d13f52a434d3f8c03f94562dd9cbf59361b4f318cad3a91bd92be336878e55a906202596371b08c17b8462d2c7e553f5c56e6c556531bf079a20001268ab77ea5aae020cbdfdc2100c3f39faae4d6df8cffd18382dfb24caa59a288b370785fb54107e5405b0d5982bab7ad7e0592900835c23b59e960e2f4b54a6db9a01483cff57d0f47b92eeb6458b7100d00196e20021ce7f45a159777d4cf021280562d2b24356d913c7252a165cefd3a81192c5fb3f57e3e72d39cee7309bdf13e64f4e5622eb3859b850b0838e63da483f481a68f3c85ea3205f5c67fc42f0eef0e1933b7810c9f0e20058a566a5afa2dd7356f7b7b0eb9b8f7a17cbe04cd821749c76b0e8647f55aa370cebfcc64d38803c19f9055d36dfdce46e1cb4958bfc2bce9b81ab9ba045776dbc4101385dbdd99eaa6800cf14b021e42e71dc49d20da3a4c5f49c569efd6cf0d5823e236efcbae768fd0129c8b422e72d30cbbd84855eac84280dcfcf90577ebd6100b25600bd0323b113fabdaf382203f561592ad71d01da2bb08c8681085de230b456709a721a0f0189dc004952932fe86e9dbafeeb55f6ed9b1981f1fd63bff16fde0e689dbe24f241f0e1a20839de1d583daa8c56f26299c6cc1f7e981a02a61e89df640c507685acf14a179abc0fbc7df4453f00cfc62d9b684fa0e1338a320af9e305562c112d6a0b3f3e49e0a04294e8ea1fa1b91cb05b9c9cb323c43c380555854ffa7f6e683037aed8968e41a3640494ddff34cc9f38a1511a3d1a6cbae863c3b1f43789dffd6fe45f5480b71bfa25c9f76cfe02932fcdea38a0d167886583d9ba3c87edbea42c2c25e0e0492d8be527e4c475f5ae6445bc66eb7fc42f03d8ff5b468560050bc62da4abe5eda5227686c07d65ce818d756407b72fb898f2f0f90e73f1bcc04ba494b9b085fb4b24f082ea656b545194e4e8c0162a07e2d5f5edd978e84d579c98f038f1f809f148d101fb808beb361318c6fd89b61861afe44354daab991907bf41199799fff9024ef5c053b9b3140641e13d1b94c731e8e5811c792c52adcf0c8e761abb1c2fffd78267c1e31742eb99c644d3d2c514664029834cc8442632939530b2990632c8ccb2b8f8c334106a8d36d8e560237f506481b05e9aa49197fc7681028fb8f813c5368a94de4ea0fef29c68fc1552d360b169a6fe108b0cebb19275648fe2cf398bf7eac10b5035804235e6ef72e3afef9687308c838b89a2c40e099830ded4b968df01b4a7fc72f774323549147861720e9b1ef40b7f4aaa9c939c94fdd96d4d2a208009193f840b953032f5dd46e93b9f10d6bc48c66253a65152d92c93c14338c5787a2c699e5805fe020e0cfb9a3f8800c723492adb9cf455af7461d489d5d4ec57562595ed1066e4ad90db773ff97485c56bb95eae0ebecc831a2cd7e976f189470aa2c821c3e8f4001dda46bd6a47c4689f2220e71e4f230ff0f8e48b86906bcf4e0737a14dbec02b8b0113921cb20fec2203a535ca522e9997ec80fa50ecb53f41c2b4c03941723ef172f3e7793ea3c7ccd9c2a536f6b9d492eb084280e4967b76ef521126f1042f9ff6e8f8e6f1383904cc0b7c8adddb89bddc5de71f7ba006afaf8c2e3e9f1dc7749115a215aa0c79016f47e76387a8c032245f171b2d8274dc699d28ca4cf3a420d689f5e472cbd1a79eb275630e8d414194cc17bd1e73962a5f6996dc32851b4341923bfd7ba2ae8559715aeeecad94e7967b6a25ff6dcbcdb09be4ecd2114c68614bda6ac96fe5a82d644fbe8acbf50cae16744268482d122028503598fd18c6ea7ccf6eff6006485cd816080bf41efcee097a33672e5caffc874496f37436c91f59ddefa1d1d7e4bfe2852069c5d1b8040ee6c6c0c8056eda7162e0c1b77a001e57a54e1533128fa85199cc6ff6a906fc802400d15efcf872df2676e769547f805e50006bdbeb0d98512a2585abc67b56971229bfd3218e4cff9bee3e0df859083b8c5929b695dc4638371855ffe90b3c18685c772335fa062bcf916fdef6541a8d56b90c20184282be13df15a3ecedb1c62560b8945723bb95e7c1c3baa73a51a64b60364778a9cfd72a84dcb45aec05c68806eae7aac47b2e4029492d29e192d62736124ed451b2e80d867af56a9f74cc4da55927dde5fcda818edcf3d350aaaad603a60ba21f2a875a48a717ec88bd77871f7c41503f9471430d9f899f3fa25082fee6879330562372e082723b673f1be3e3a3225f306b1f8f8482a71389c77946489c0ce6330baa080c6bd6dcce48721ac7d06f19e6047fd78143602f7782458bcca449547f14ae01b7bfc393535950f5047dd049c1ddc5c337094d2ab6be6d9fcc381170ba78ccc19847fdc662db8f35d1e8abeef6a64d90d5c333d9431bf8039304d10a329b3268623a720fe8eaa28a2c8f0ba6e95cf9832dfd884e473bacbcef192b37ad012475728d4bdee82c32298e77687829a60a1235785de445fc2819175e2ff0066b7386b18a830d4faa13d203ed023e873b665b8ea1ace3cb90228aa7bf92591158aa974dd2ce83355333fcfe4da09f6df628340b47f0da85c04c70a6c3d6b2b5bc8893417b2e28c9890ec8473405dbe198eae208485d7e78d91ccf56647c30c32f03a6bee7868ffd20fe8e222221688810049a28d3b8d5e43aa45acbd337f66a8fdb41da3e24bb5544087fd4516abc1742c8fb1ab817222db5f808779b78e739c45277e1bbc0a3e5d7dfcc71fc96b294659b994410c03bf1a4e0a981c96182c8c4d80dbe862c8548944c9f6a770524792007d2c6a88463790b0752cf53420a0ca470b61d8bfc00847a21332ca8cf76fa124ada93933c2d54814d348056a9af2cca2754714357c9d195a31feddee3d9abb344ecc4dad2a65d7aa738d3e3acda45cc187f56d21b1e6c57264ac95c6e605277ecdf5e40cdec56a8140af8299e44bca8fde84063b343489935b21d99dd17b78962a9a45ac3e3fd46cffebe2c162bf1aefead779494cfa3b8fc35e414ecd1d1d4f67ee43431ca84545896de472c5b24e8b7c40155dbf7f6921555f454c923fb2fce14e2712acfcccea6cf6891f24bc0eb281bcbe5bae17211e38fa2935a87cd04463aa177d11b270912eb03efa615712b9bda797cbebcc4e1b4d23e0f158e7b94ddc4a3a572acf320f66360cf8614a2385d55117ba538a5e19be307a98e6206cec407404d441fbc0d330c4e8696b842b8653922152f222ac8cbb9f2864be58542daa02874e8db448f9daece7abc674059ae57a4dffeae30094f458d985cff558c5d0dbb45f2cbf986411872c868f1269c19b7d2ffdbdb843f4b06d387737b4ad6c93d184088c9afd16577d80c301bb582d79c140aad9c965ce8b62eef0b8cad900a43b5cb3f843b422a056361a1abd3acd0d64b7df644c6cfef632e9e0b86089f40773b42794b347d27773196d39e83a2a2904669aaa460465db41c354172491048a39caa70d188223dab6bdb2586043511258ff7c04badfe908517f977eaa835238ab3a1e5737100321aa3cb047a28245436e89b032ffdcffd8a75023c425197ee7cdb4763f11b13de513aa2f4b390271097e994b9fa47aadc96bc77200d2bd06799a0a4d2fe30fd66ca0e7ddcb57042480cab26040f6e849217140d9d7d71104495101746c754307016b0c30ea5a4f1a83447a7aeb87dbdc68b98eed9ad4ace74873a53a2f82f8ba3664045bea119ef457d1bdff5b8bf55d00a0b919311374fdca44bf2abca042b6f753530519bca1e83b65e2ca5d8852e0bd6b3ca73737f579d16910b40982d4b061052b8d59de564546728f1cbc77375d3b362adea7c4f1f83c62c5d9c0d4ddd57255638332e98ee8965b47e90f58cdaf03b9438081e62fbb73ca0a6bd164b4ff35e94d061252360a1b63a3f58cd785826b3d4fcc84023ccf57f62b3cf61e485c3b0a2bc741c09e42cddbf0f2bec85b4765ece041f563035b41adbfecca3c888caf6a5108671a26cb320242af1e9ccba8c21a9f4aadc97b0de7e5d0a8c3153a7c0a654c69db04893580dc00bc8dfae4e2761697c5379511e1d13425888270b466b8db0f44d92d4075c505651079f18af5b7573182d7f5642a88a32130e8531a5c1aae12d6c5a3e142d3ec24cbe4cbe44511403a37ddf937d5765daf4a85db34d598ba2dd3520216b0b19499f644fd2eb557a0b9a038fbd032ff121057d76f2ccfdd9e491169faab107f0b2ae5fd5889fd2bbae0cc5fbdfc5f734b3a7d5b5a6c6329d634a9919fde1815c601bcf2ec6590879550d5eec20a41e88bea3ffb7d46f68942231587aacd90f0e2efe9d0a5414144d681b90da30f27e5f3255167d0a09328d66be590a7d1f69c1ab086a7e451ee7ffba814402ad97002d42a87ea3859d1c58f23bfc66c1efc4fdd3dd98fbb074c32205c9a6dbd630bed5e1f3e50660c39d15df1dea191f5409669618ce4d20954ec5bbc2c0d0a81c12bafa71d10ea881118fdebb10949475ca01b5eb14bf67ff47a21170188b82bb90db29f29e8b9e976789d0a07fc6b2674186bedcee515f76828bd8fcca2326d19037afdadef6f2b0ed49d9849f21ac7d2c6e8d1f824bcb81b2e94d06c5f3f6ef5441f245f75326309382ad3c2f9ee655f0aa1081d02a2c0b3858f83083fe06a2fb376b106cb1590087aa1bcada0367f305282baa43acc36fee341b63b522eed1a27e438852b9bd8acba91084b3064a81b5f06e625d964e2f56047dd9874c2d565002c6933573917d0d2bfc0331acd8b8623228f5c10e857ac93fa927dbd3968169d12cce40745eede48d88b7fd5d5be1ec6ace220690f9514c7ac4c610141d790f6635ca61a83b6c6a900f12b604537d5a94620ea52615824799d3da22751baca2bcaa3fa17ec34ae3f89fec0fab5aa2dfa3ed553ea05bc8ae7672b991d4ada6d9b2c1a96ea5aafaeec39fd5b71617f0fa9b9ba435f03648e626b94d2ff7468353a52ef9115cbed71dbc1d0c3eb9f8a0237caa3de0fd18deae24d997b5818b210222230444ff5fe563d5a4f47df62495961a932585a2e1f01a626a536d935d4af49d9b862ec81a0281abc9c3d6b05548d534be8a6a1fcc933c1283c9e9b9a9e11fab7acc0a9c24db1e06dee52e23ef9db947ac7d0c6c915e01f2796324eadc218162ad124308d96fa96f18facfc959ccf34422e0f4c7ba0c0b4f521376f4a8f3fe5915a0263e3d34d733028d831f7eaba9b652d1b20bfd66325015190da2751f31f82938b48d856821c749595cdfcc064643eb90b41b9d6c067dfa47fa6c96a3ba14fa9591ba2a5db2466e328b745c45214807dde0890a8063264158a8aed8e50344afe501f7404e397c3efeffa3c21ba5877a1a0472b39d3d79e54d50921fcee9c87417b961454edabc0e9cc6573399bbfab05b2614036d6a0343693e622bd613f638a03d7a19c69347956378b8513fc1aa2a7285564602a6a4d2af0d70cf530e451855690b1d33fc18794d33231d6328eae3d9c583992594b438ba2147c7689f56009f4133c25cd41603da9a93e9e55cec95eba50b57c35212536c4002754bd9c6b4310adecd0d77252ce130d6a56c299eafe27a49faf0277721d1304823d9ed904d4c697fb86bdc6361cf38b503577fd50426d525c3a5eccd27dcc0987c362c415d9fd3cd6fac5752f28b203ef7e48b467e637a51b6f88ee193e0f770d207727fba5b4f9322a893b6e2e3dd4a21c55cee233ecbe7f60e0829c5669e95f57dd4d80bc49b594891f222a26b772336402171ae90c3574f7f85bac7709e98c60bdb54a81996ae217ce60d3a86da1583c9e0f72d38c0630cbe73223cd000f716cba5555505c846a1c719b8da09aebbd0751e013bccc1ac47b5330dff49aaa985a91ee480d887c88ed2dab7bb29289638c59761603cedbad646f64ef314f1d56d886a095c360089eb6ff81c4220c019902a2f5669bd1377a18254401ce0aa4edc3d4dc93bfeb743ff7595374c9769de505322a80136d3b390067e2033196bb98d77ae8d4c578d9ef8a2e11447977812c21ac339a85b2070909f3fd76b68c7aec54301093569b8d6069e6351a619a8c15afb4fb94d8f13cd294723aa5d4270b6e1f5413f27111d5408aeff05357ad81476029efc44bc0e644731b9a6f56297ea52cee83d76ed2e56d2b639da124269f7a5dd33f808150ce708ff5b08ae51ac0579d91c7d1cd13fc7400a9325d8324e7a4a5c4eceb115b13aa23607f62f743c24d4f349a3e380c7c12e3cf5f14c22173c4cbf987f210d5bf408492ad386b091836106abdc907946373e1c30105bcdf027aa1207ccc24beb1e4d9fb341be01b8d922bd3d03c6c857072674654f268364ec0fd23e3c78035c2715e7baa1096096451e049eeec904fc4970b41ff3899584cd91a82eb1f035e2cfe03c83e7461fa3c059e45a8d810d3c1706df5a2d4e609a800889f30c01b3cf8e3fa3a36b53eb2e4783b33c18c0ef39675e0379c4b2a58e77cec8dd04f5c9e6ed97b67765f6a2060d44fd4a87c82317335ce4ce6b353c2442d1987da5139f550053613331aca8dca6b0e79b93a7638085b55002624bf7f26046593b3d2a43ccf223a5d062de016137cc52e78d030927519b1f2ffc9831dc4b52cdaf1c3be91b95192317198152094c8413a2bd4687654f0548b43ed71d0667995a802db5d5b02f7204864ea2beb71eaa53c4a168e89adf7ed4e286d2fa5a51682f3520d6f3c0eeffdd05777fb3ba717d84442b2ecdefa9a1e97603648d27c236f6684f800b23444c8f6db8f312c7ed6dfb4934329d430eb79690a34f7beb001b1f226463ff98f4bbf221848286cc69f87d2d4f6eb5a54093b6b5b90f94952d1ee8ebc7d1bc3607b05172c6f8d7f18630a7485236d87357dd1f8eacaab692ee03a2a4bb1cfa9141267b0d72ce82f7a4e1eb98c4908fb93697f1c889ded4a7504ca77324176f6daeff72c6afea9e7d4771db053fa01fef9ff5e41d63df31e7e60cb6cff1bfcc66f16762dfac4ce85c1515692915a85c48e84b2a795b14252099de34ce9b978d1e32905de7cd12339185a54b1a74b2429bc9532b8ee4d2446aae10db333163f35b0886652ca52e94613cf1a280e3b908c79885c9f49d9690ea38de3d04733d0243ccd1b998680eb1666761f82036a5659fb3c7366fe281fade80ef78b9ee0c431ec84c5d48cc46f2d98a41c78e816c313ce4953f257b877f5fa2c3f7cfdf1aa6182567d41387ec5ddcbdc1212aac2502278ca6464d3f415706cd565c9e5886521898504178ca5105c80894732ceff3d0bf2cf351e23d902207208aabec434832b56d75dcb864fa8f1c02171d37205d1f7b254565f3c0aab954795ac24742d9f569d4a0df1e2476ff7473819f2271759cd02b8a139c484bb78f02ea8d0f84fd90695aca143431280142155a859267b5c71c6846d57ee83f9d2a051ed15f62ab1027ee1a46965a8141372b1202597114d1b05b64e8fdbc42a4914d6f61bd4634749ef8d72102759840288728e210f1876cf3b1dc8e1bc28f581befb79351a0d94b1bb5080cbedf3eae33750897d15e458cae073e3cbd5b2870f423601e09b955bdd65345c5d4dc1d80dabdccf77ad0cdbd8a3df074a0178d311cb26b6d47fdb9e574e8e51c59603e00e483a15a9290a730798558db5b0444dd0092788ef86617b279042218990ddaba4d87c7ac5d0a7704cb867ddc93c804e530c93b4e68daabd3d0821cf5b4a45578c9767e627647ee8c2d5ba34fa2bd71f0a7db9d78aba5da0dc474f01dd83cb5d48d3d7e2ae104152bd1843575dbbc2d29eb59ddae1153d00a08bbb6da2b896c4a8640064e14900fc3a4c79d59a2fdb86ad18621b03a11311d04587a1c4a92c3a413b4c8b5ac69656a9f4a8d203d5e828874a70b08a99eeee874d0ac03213040c2be180f1ac5b5cd2b847f1900606e41fc16983b6d77ae8ba2be0cfc278d7a886ddb7ce168b3e024e2dcea09a8122d89f5d0e80cc897b49ebcd5ac053edf7cf233582018384b780acefd7e1e03662dc88c7e8143fd74929921eddd3a7655435ba6555bed9ec754aac4e34a06e7a14375cb78ad55cc61ae00bb68c1d458e466c68a10f710f0956b75616b0605ece83da2f2214dfcbe8ae7ad5ec0c517877ced107f39e2e73bef4b2c7e99f95a447edb954e689ecf66f2b4913879c1caab883814222ea744a36afc0648102260e3859fd040ea2764f15f91231f3af9db4fc533d2b30913ffb072e8e318106880378ae6961134548dc28f3d788007f35ec4f36a519f3fac893f87c9cc4b25d4fe21fe7f833041e2966978c34acc4c7561e74f67d02dfa7365f582c2e22d31341784f255917fee069826fb751fa3ee1f8b6354cc2092613eb6b1e1cc42497d39e11a0d9807524f785a9a53222533a2ee302cf54aee11f966bd9118129beed07010bdcdbaa1ab0a15c51ea70c28ac3ebc957959326dd3c29f951bf96cb32d8d912360f0585900ac2580daddd83b737000a96cd9c0e42f18474423dbbdef3fef52fb3e8ac949b80f674fdb1e11216c76830ed706c1b036a9a6d75752fd0cbbbed274ed6829cd4fb4c11d846201162c03438260821501bc064a0f4b3ccbf63a413b1dacab5ffe1127600dc4aa02424b935074b0f399023e37575984019ff95319e1ea11940a6f2b8b7bab0b949c6262407f61949c16a4ea3d71c75aac42ca3e41cd1bbfa192577a5ad29fe7b1635224b98d730df869c849f34d2ccd2275ed69a4aa5c40f363e45eda892df7fb11b0c95f25ff9c46b3faeb29c275876e645ba0a6e65107e4fef97034605fb3d98c9d1d799060c89f37bda31a010642dc22a3cdf6bdada1ce8bbcede7ca85ac58c11c0d92e6544eefbad59c9e42c947138dc864ba873bb13e09e4ec242c8764c83cdc80a31bc76fb361925cbe987db68220383e3bf8cc439be83c84784ef23170be0ce92363562dc4dd240128251f8cd2c5809f7787d2110181f7694fa71aeed7b3e18a0180cb7d1f03026f3766420a46df839ddca64e5129428c6a315076130bb525502c967a5456a18514687c0b037b2a3321ff6d2320c4d876a4c28ccad81de4d6c86428e89f3dba6500eab9745880a3a2f76ca7aa6daa9cdc11abde75ea33b9cbb4583123f65dad98894b1f17097758d9ca13a195af8428c639c2e376b624f538a170709329172515e85973c01a7852a19531291532ddbd7143f85167e722ba9dcd65bd563db281b92f519e5c2a1185b9f4ecbaf3406eb63d4f4c6b180b4263186cc6382672131f0d4ba6177ff71d6f96b191c2007fe4e8feb59f2a3820b97a6d747e9a24e28fc9634af0ab74f583c0d3c09f6a93f81b4a8e46958eb9a7828c120b7b7682b0c56dc62ab0d29c0d1c98c80450999e87eed87e9c4b86fdb270ce5a0060fee3b952c11d8e5f6b40224bc19e3fd973c3664557209e539c84c797003e7c00f0052c89da95ac0250f79967f3ff1766edbe67a3d10a6188aac53a197118daeb9677dd0e974c054f068efc3a38a202a435011ad9cc2e54800e2d75a69300d6c428a4363a71d38041ec339a0c0cadf8943a1340024d0808d2b0a5005cfd4b8445dbbd354cc7309873149b336e97c568361364859baf5f43cd7ccdd0bd322289284849be0ed93b25b9b7dc3be902c802e1023b83fbffff3a2a5887bed4e40d9d9d8dd7985bcee9611d0ae4c809dede7fee29f43cb038b229e311e2b0e126803c80485e005d3d870f5183e7004a06ee7861e81ea5400a648213c0ea54eb4193c0a0a7ae10345f31cbab3543cc790001bc12177dd336add9103486b1a12f11b16488309c44e2eeeebec45475a8bbbb7b0adc1165fc901094431f294ab27e66b00b22924c2b58cfdebaeeee7e345475289b6194bc62b0c40053567ce012247e5ea4f6b76bfe151058501c99203e56702a616a5627ab9db62e3807f42c18a377aa56b9bb679d611dfaf6806dc78a60dbaace73774fb6a8719dc5c366cf9c72ebcb4aeb629d4c80be9d088b9a74a3e905a0e402102542a6931a21ad169a3c34f5e89bb6691d800fcf8850a22f864112693b694454aba020030c02969529473052480c9626b120d6b3bbbbfb86b7ddd06b3700db0dc176833027000a06c99a34b42c991e15923021605c5083bbc5fd0932f6c20f8bcb43b8e148a4932d9ad71089b1731bb7b7c67177777717d6b3bbbbbb6f3039dbd6dddd1dc56ef3fa63cc3fcafcc3dcf869def6ffbbbbbb6ff0aeffffffa05fc1d48093e6fc8e28732c7730d174ab81098608c0ffff4f08f703f02dfd903f667f550c7bdf97652dbae891aaa4e8665e3a1543270631ffccd25cd44a1e2d4df883aa686a6c35bf97d51054ab4409d9534406bdf8682c92599d1e78498f80473a99b408093833b357ac339bd6376dd35ad51baf22009cb80ad7b78e41fa90fda429cfb6d794b572c2be3bb7717b7f071849ae15967e69451a7c447256a2429b5ce9f953fa62f4e803a6efce4da74d672c6993a324948ade7825a9fd8b71cceaff7f074086d8ce6ddcdebcffa9d423efd4a68129ac0ca108c97418d61c8d4e889ca96e01d37cb560741137be28d9b2d4376dd3dae31f02b0644ab2250643ab288d052f888948609ca1f0aafa30f369f21a2ad64a5c70e0091815876508872fa2112522f6ce77f61b6d1ae76a2c3e901157392c63236758c4115292be699bd68e041c5151f4541dca66a809ac9169d357faa66d5a3b929aec69e6bdcb2c4820a694f9b9333d7cb2a2c82a66afe6042b6085876b66577bff36ffffdf30b10e6d668e1be7edc3d0fcbeff29d6a768e2d18438c39d4cc7f55d7bff36ffff2f39b10eed587ab25adfb44deb90ff4fa3dc77eaadc6c07a7677f77625cc75cfc109cc50ba964368214c6cf8134d124953c2cadd5da706eb500e9d1d56bbbbbb6f750d21b950d13c77ccf77d7de9d3458f4fe2ce6ddcde3fffffff424321a25051c828a4f45c6edbb66ddbbdc319995b4947007d43254c81b5501213e3039ad3773db10e0debe83a7b3bbc7aaabb7b075504b3174c19b01666364dfaa66d5aabab8d564fd876beeffb43c35c14f973bafff9ffdf84e9fe1a82b6583691264f7ae3d564b71a09719b256b6b561f2e1ed533f084392f487cdf9706075d34f996045dd42899e13dfc5350228c8c6b85b2175e1bcf44e24362148044d87e0c2b666a988cf07204637624666cb154d54c566115d0d513bcc1bb5588e2d7459337409c5be59b55447832fe953ff7d39214744628f5708a604c318d9c76b5f7ffff7fa451d5a16ced48432b009e060eeeef1dce39eeee4841ac438543e20652d14308081a69b1adbb3b8a2ea2bbbba325b10e455bb2684efa86e63cfbff577a621ddaa114c66aecb1731bb7b74a9241dcdddd31fb71f312b175e7366eef2f669168f82ae2eaa4c147ce9a4c8dcf05fe9a5159c166852d302caa70f3cecdc8d0927073dbb66ddbb66ddb5665a9e2a422a582a5d2a5328675be63dddd3d86eb3759835eb1654f7c222baeddfd667377f71243588726d9a576ba496dac5c17d63d4789310b8c6e06b8a61143cb3a9beeeeeeaa8b012ee2255b29afc9c173b636a4c7d2ce6ddcde2130385013c809f4040afbf4476f958a2b8d49e9d5de5f63188475e870881d26f56de4254adfb44d6bbdf1fa536bc99ddbb8bd7b1d58d130e9e0bc28655e281211b27799b74b71bbb9731bb7778df7a166d3ffa2144f5587b2ee03b6731bb7f7ffac90b1209887000d9209ca96488c4ce91cc99e205e90d87714c1a2c945774f77aa0b4e490c53dcdeb98ddbbb2541857c48af8b55c4cb8bdb1a40380831a5c365f204b3b5f12b5260a762eaea017559395b64ad3dde891325b8963ac7142a965f3e1d52fe570502563582092ba5056be7366e6fde8801269c230994c0e84189b20f4242ae9c2c0c038ac7f62d25d6a15b4c76aba9b79cb73da2e234719c384f9cb026ebd9ddddbded6074dd45925a8c2dc82b9813c4607262ce663e70e1ab9311365ec35c7fac677777676a3b98b4bbbb4fd58e4fa95d4af5b69e7b26a4a950430c4a39d1650574ffcb7d7777f7ffffff9e047088262fda4c89effb92a4685227e8fe375d8d2af7f54ddbb466657c8c6898bb678008621d2adc0031bca9383fb8aff91e45479b8c9c0fbf60aa01485383afb86b10f930024d7e9408d72767ee84effbb6fcffd7982e9a1461baff4c3739b5d50fb13e2900c521051a3a7a541134c404a4414c7cdf37054d832e8a7479d3a087307f6ce02180ac11a6039009b99e3d58f34a6d569e745e462f2e64e6bad4376dd3ba4a8196a8a227d5cbf3c0cfcc7cdf97277dba2812c6cbf36be7366e6fdf8e14ef97d65c7671a0b2c26d4e1ad2a2000a0d4c51cc4c0b67464d78eaa4b9d6dcc9545cf73585e6e30cc41717d20dd0ce6ddcde05ec34703b24f5c86d26221215898c444a2266fb39e7dce6d6ddddfdffff7fefbe8cb99130674c9b6e573c904b8f981f8b2c291a2b9a2dbd5794086492c029549902dff71571776f952e7a6c61cc7577feffffce6ddcde1e5613cd8c3466df072d5c44cd88ad78e049b14cda99d9b3697dd336addddd7b9eaa0e655777e7da4bf29424831e4047271b8e51b82e258151da02104d98852e7a1c3b13ba2d4fca7fcefcafc2fdbdc3eceb6b912529c0d79425200b151b11a66454889ddbb8bd0be0a5648ca4e0e1aa0398d7d61146a9b9845209aa3a94f59f916a08c3a6ec664608e5f1e5317656fb97136356faa66d5aef4b9f250821fdaa8d940d964d571b5596af8457c32be255f1ca68034b871c8e2ecdaebd7f9b73732737839a43faa60ed7a921ab05d40a6a09b5865ac49c734e1a4a4a262d939c92a492b05cbbde2b54eddbcfbef6b00e05068543cfe5b66ddbb6dd3b9cb75288d9e0a55534f195c2859886321d169f14392385cf8cabbbbb94ebffff4ba5aa43d9ffff8f9a61a9f1a8f0bcf0d4a8380ab29e5da74b674c07ad6d55dcdd89caba766b1411b733e8ecdcc6edfdff3ddbdb8c6ff24dbec937f926e7dcffeb9bb669edffff8fd71e20d75e85bdd09aeb8622d68b75680f186c3bb0843995f702e3eb4902433660c154c613238b61a985082305c2d2a01615dafcff4f74c23a548a8388956b2d4f29dd31ee287798b790ffa34cf306ef70ecb09edddd9db7c43ad4496a8387d5eea6c8ca12840298934543bbdafbffff071573903148a98398b76de5eeeefeffffcf02da72f6c333684830204d444d162e6fd26564d7b267dbce39e70f25d6a1cca6f3b9f111f6bb8c11257dd336ad599430f7414e60a820a821a824d412ca094aea77bbddedea2e5ea4514577577bee9e1e812829748f516ae75b3b5b417a0010b212c51f15cb09221e06db1adac242932c869e1a6bb20125a30b1727558b07fe4249a24af6c53a5b7e840131a30ad99ddbb8bdd51d9f3b033b9f7ae236eb823e50ec8583fc8873e58453458f49af93ed016a90509bee9e41fd79481608139062cfe7b54c85c3fdff5f233ab9fffaa66d5a9ba12f88aa0e55dddd05f0154f9eb8bd731bb77786d8faff9fb6d367e6786a9bd6376dd33ad81eb9882488ab98b2f6f2dfa51adbfc33dbb98ddb5be97eaba2495539ab75a8e0e444a5c3d2b2e889cb28009ea1ba74b68abc99d7737d001f934911db3d0994fb3bb7717b6b0089284e9c59ad003e01f196d9f1e5b547a9cffdb6be4f0e8ad4fb553d7618b3691ca41f0b684840421ead3118eaffffffffffff46a5c26cfaff6befffff1f8ebba8542c5faac8041800431a38040d8481284e049761031480091d4c50485e4c0c141a321c044443610000040380603018100000c180701810060693f3311a1b60225d48bb007f460bbc8c335c6466b4154565b464471169eb99a12bbd2cb476ff31f63d89cd9d90c7319c1a91d85a3a11d00273a1ca6ef73834a51f1efa1da1e2a2a0cb5bf19a0c946208c4df0f9221f7e786b92fc0e805b5d35295e8a11a7e55dbcb13aeb361c9f6af8106f7a1144990ffac9357fc5487352972b5d53590fb34b9c9741fa1ad9e83686747cc768ee45e386a7b2617adf0e2cdb27c5e7886a8bc6e75b20d57395644280e120d470460c33594433983f7648b9575cfb147bd3b5a4256bab73dd4ec2378da9d6a73931ab2143124770163b69888c11543795ba2a7fdce8513927fe36ca73beef4d32d4cbf941fcbc10e4b078a29b5deaf1baac2ed5fd83470ae53ebc8ad968968209f29f6410d2548dddf37346964bda5487db96fcf5bad3410210e23fc1aaf541f339463ffc2e785c1a6e8c4989e5afe0abda5c2590e8d40a043be1ae35b44445b9a8410071dbb5cb7adcbeab9e84659a07ebf69c68a9699916f9c0a6a5b2073dfd8c3ccf3821b03ab57a2356a30e84b1d98063b172034662565f6056790c48027fb7c9cb1095efc1322352da156436fc07d571e11197ce3ee2ac2e8fa40c3503957d4b7b4aa691a8f45184b3ece6e0447661b21b05a7b5d55330b9eddf5bbd87684078ec8fe280d72f6306661e77f1bef30a6a7232f704c8ca62569cfedd45c25faf6ed512a8240df29f28c9d581c20dad6fd3e54f1c5cabf1df810e0dc414fb709e3327ce28edcce4b3a97d0a9048c838e15028c67dc4e6f3b44fabf6844895c98c4f19b683a1968d6855b302461c6606a3c57d3105321fe022e643868cdbeac51d001df690e6473839c6d65adba51676bfd08641cac2ea6a02cdaba485ba0136b9c65f8b260f4834e3c2c9e980fc09305f7f950f0782c5206dceff97c61ec4d8db865e7c938d2f4e7d8dcaa3104ef37c9adb341e474c0072c1a780728b1d0a51e3fc1bcac09019b70f35e2b52c408b561a81060a45cac722e4d31448ed64385180702da6e457ebb6d98b00d09c15ba19e4eafcbe1bfb251b8372b4ba8f1b19858d189bc808260495151f86df2bc49b1c69fc5327e528518ae71c1c00ee0a24ac7ec84e2fe1810627091c1848e7e8edd1fbd7c93b76dda3bd54175f2a3ab3f7eda2d58285a3b4e5c4f0d19d4949bd1ec2230f8081c864b251924a820f1a007ad83748fee0b7ec70a5a0fec408083ee0e2f201f99d405ae16cd192273aee038427891b72d34ed28a892029b541ab456f716d8e4d4df95bd39e056e2e172e19c47a83b71ad8d9468ef882e2cc3e784d912e22c123d3404c7d31e8427f16bb6773c09d511544a9e6e90de15395ecafd027a7c12f9324971a5c8f99deb260004942950c8f441292e6d57124fe9d311b00650a816085b5272ce85497889899fe35bd0269a8f81b5f5a58b4638ac0a0bc3c5e987bc0e8be7ee0298a2c1ce0b7a3af960a8f831cf4192fae7470a53517a636787b4c45d81e5c04e29ca9ac031b2f1a63b7c7a3d22feb114679ef441d46bcbf906efb8fc4b33df68958868fef1c828dd64da2bdceabac5e4c0a7fe3c1897d2b72b074dd1ac2e8802a4d321a474276327c4cc02a0a1c709eb1a2d768b15fa3924ec5511b2b2efd06204c7e74b5e335389ef1146028e7d4799b16ef1c7e0cf1acb0519885dc7fc3d2a9c34235a18d5c22e1cd0f5f124810d7b1a5b7968e19bc14c422d6828eb2280a3d20de2cd6b9a5954a98dd268c7f624b20bb4a0f2d7f4378026c4c5f09d8262ecf184282a89836ddaca1605e9c5c7e9b2a2464de2f01ae6467ed088b5a77630a5bc36aa30b9495aa9a45af13e4d70c242278995ba59728a846eb3517cf8709eb0c5f082e007181ce3023290298b8c31dc75760796d3c3c6352e34ad4d0d4a9bd06add15aeb1cc1d050d3c28fced3808f1746a8ddf57ef64bd2a7cf47dc1034c5af05fc8589e3ea3a53064527de354170623cc8a25e50b2875c7ee08ddec50655393d6046ebb2e9cfa5551cc0421fda8fc11e1378ebeae28e39f53b86bf3439c4c69f1bf6b1bd77590f2fe915c900aceafc4e177c2c51d103ece852aa05f8023c211b242f7f575311291384648a79e2ff80bc630c9b3da6cc0b716f04145bea9406422a8b8058f91fed0e680e308250f4c13d79047675f031a530724c999516e6e887904341353af413a4f7aae7f4c6c8ec8c59ac5ef227368f663dfa4f938bf3fa58d3a59dfd626958f160fc6cf098a80712536e3db70254e63cd46f100c1cb44cf64e81f2935913aa87f4340e234535b1d0cda23ec008e68bf1d5981c96133f3885dbef64a69083f6611a686ed20da7ce9f9a100f1ec925021a8ac569876486113ea0064c60443c24a77d08fcd2097425410ac99f0e5881b6da292b8767e5396dcefa2cb1ad6502ea3af407c76d8521618b0039ca842b2836a0b1ad6033a81d3390757a1da34cdea03f9ae71052a4f301db0af967e289d79099b410af4448096b5aad58af48e736b67c321847760669ecaa4839a28217b2e00875ccedec490207f1b63ed8ed99ae0aaad9e4ac727a4f1d7da471cb6a5b194587ca25803b6358fe2d5520ce961aeecb4855f3becebe04ba121047da6d8e728993fa566fb870bcbcf0c149270c1ad6431bf569d31414a45c6d3baaa4f4da248329b4cb53dd885ed51dfe674a8fa316e3073ebbd22a3b8f4b0003cc3e3d2dd9bce1d17df3c17c812452d9ea412149d7f01db8395c5eb952b0624af1cc145f206b761ffcd312adb4dc3f767202fb0edb414b4f2fa04bcb72136ccdfbcbb91ab7ac39442717049309b3d6d6a2c0c1e9842f22892b1af2884c4848cb46111965c61110ae246e0762c06730b0ef04f9edeb30a9f64e082f76a4b14fbe3fbc87327a2eccc49444fd23964659a314e500ee08a23924d53087bd390424230093652251d7702503c1e6cc61554a168c39c3833d5ff7e9527ae6ef73a07108eaef325c35cb680927783e396cbacac6940192b93a0e3ec2fc4d63cf8163f49346a2d092f64ef9ce4a75a2c06f1c0aa933cfb46da64036acd92029d10e05a19a0f406eae8c4d176b613ffff071df56646223357257b90ac16ff051ea700fc66b5ced6619bd73c1b1fca9f4c700fc04788f3f5b805b3bf8ff6e0dad63c61044523374f0b44f247fa411095892dfe8b6d1af6325e7c4173a8e8ac86ed947783f8fb54df503a6bae6d3a5deb74fb408747aaa52e01b07b739f147c264993b97e44f6c59e1dc466c9a7cdd4a9b560dcb84698e19fc1a3420f078c4b1204e3463e7906edc2a41c5aeed839ccafb4fb98434684482f8374e6a76f9e92adb7b65ec52e02b382edf96dc0c46ec97258c5a3417210a37f9c48dabd2dc1b313f00c65f8c8f6bbaa1dc17f79ef28714e726a1a3c855c8c3d2fa87f3b73ce4b39bcc138bcea9177a98a7c8bf9a753fe4d14e52bb7cd872b6aa6f910e91075632e77485249fce0e56393fc19dd2f6a6541953b3e6a34d1e00c413a99a9e224fee0da6c3a014d36722f15f666395b8267f4192eb20e15d6431a2f245438fa5b548718f4a685c90c2b00bd737ad562c7f2559ed27259559a56be59bba61d5a68a00dc57a0fe93b6d26bba24c796b0dd422e8d528f2287065644e7eecbbbeb40b5ae4049a005943121a7124ae37026a08eafc11881417daae480f538d5bce51aef037c361bfac653c62b6274aa78656261880d6d3c6cc76ab5fc2561d268752b1b162500c7fc1b58ecc824c28ea9943a5aa0f3a324752ea9d11ce8b62a8e3e2b46cb6f7153cbe3356fce1a4860317102d315b0ee69f5798c694ff4a3c08266eb44244fe6b9f956b57bb47364eba976415112254b084ad24f7c15709357c35bb052d3d28ff231b79dee77f41c5cd02fdbbe6f5635b2c92497a57483268ab7c6fd9ff9e46da8a3e2f01569d9d6377ce2437b01a0ad61928432245fb5471407fbe9c72b9ba6744b4a2f205278335f39d3b06897d710d5fc5570fde0c50e3d81ba530648492054eaa9106665576469210b956187655546ef9c96088930c074a619f109fbee26663e39916d04a08c44684f68f23e8d2adeeb810a7a4406c668d5cc02207ba6cf853d792132f025e7e0b962c592b90bad91e2c03ec0a703373f534c6060c7702dc569fb5486f8c93d499aeae5d5b139899319b28b689f4e002ad7a197c70552d6162e09829aec9c23d63e54d1c46162ca542d5acd671c6c43a8d36f27ca6625b65d24774bb598722ee9e9730ebbe446ea9419422c4eae17e4412397f184c922fc1591bcaf0731ac29177b44dd1b8d805dd5061363d35a24693c71af798da75887e23dfbd7e5f66116089b92f2c21665eb26c6a072a3c3923c6fd873692cca612013bbdd9f568d168c441d645e21391f765c4145303b14764801b71b56a993183423b4f2c3ad308521fb9a5e510431e8df5e0990bf25171dc95cf08dcc8ece1c5e268aedf92c76562e847bf994ec6e3952d052d82445d5036cdd2a9c9e8a4ef5c55d79ed759a1aa4d5d8fe6297c8d91d6d85d899c0c8cacdaf19f2ae1ad8b2c40d4cb89903f249e792d25ac54126dedc8b08237eaae067f381442eba1af18b27f125dd8b44682ca8f604cda13d830fffbc203dda5dae0158b8afb94e15cefbef32c1db52a4e07657914995491ac3bff1151ebfc81e162f1f6765f047e31ab866bc060882ed7a07f263e6aba08c86ab09036775e5df9882dbe3b771eb93756b6fc8e0c70a85fee556ea63dfcd7df260834780ae3747f6c358ed097ca2b50f320fa686a46419c296a2e0c68d9d800858e2a822c283b7c55ee7d78ace683666ae6651f5269a27b11c494a040e7db027c7e12179c86355dea436e25ae475c4e3f4d5789e7006ce084668511f1fb74af68e1aab6afb6a8f00d70eccad0ac494b53775bdba1cd2e2a323234f37f82278c21b0893c993ce1248b6ec99979431558155986e0ae828f26f4784a6868d4fd32d1a10ca30f779e2c2d73f9a82de54752696f99b3363788f3bbc9d9e679f293cb03a0369011d1ad101a75a9810f76465225b81ce584712873f81a74faa91415919e4b5299fd51a87c9014e5ec7ecea8dc164522bedccb6d5513e1d518f6ec2017183d8834b22e308b10d29d67fe41f4a0619a759c654d4bf23642fb2de11b33e6d782dac356a49b0c6b057eca70a12884fa851913dbc29b5905c5d27e34c41b42014a3fe9c201240e8e249fb56f80cdd23ceb63b5a1aa69cca15b3a44620731b926a717d1355c84724378832b93c687a9614275a2ed0290de6901317a0164f9d60b934c2b80ad871f315cefd954066b73f0fec33b4ded139788f4a3c7f07cde01aa7a44542c7ded8b12d98bb5714719a186d1431ba07a2ed4da1777f784f193c57e087e12c480739f8f4274b5d6c29a6cf9f5063ea69550b741c3bf71082ca7b7b43a77a82e4b552e3808680835ed8c5e909b4abd9a18d9cdb79bc74c566f49ff6f4d206679ee1d43b8547f5cdc3fa266c4c341bca265857b1929a1ad99b75688926cc8658f5ae6bd0d103605244ba67aff3c8189840281ed3622d14c6bcc418d44942f25ba8b2e744779b28625148e1d1e7ee6c3040277f65194ed41b9a5de05bb0de663a3332863ca96ebc2fa6eaeb776114a2eeee86cc50a242fc0840c87564d92b10a96036fd48497ca0ed2b29b0a19eea2bff6c324c03f5f7dd7405f935c654d5d8c094e5ac757ab9ab850ce2e33ab5cb8ba9bfd59427f3a00ce67e7894ccccaa6621480b763ad29cae2a2423026e548e93077d51767ec716a935b580e5dc1485c5567024346c9fe7942a7b9339925b5b6dec6cd784c41a82cf921cb58c7a8cfa1e33108f20fb5eee47db41e90c14cbdbc0f6f9f01617b8b65f31669a92d047d1a68861096c2c3de95cce055971f7f33c4208c953ff9cc56fce5ac32628f8bc06c660ac3bc129e7e138865c0f17a3165697d8cc0594a3606f65022037fbcd3fef494e63dcdfd4049673d5f056ba02a323439efa343103e70ef7a1e1d6d80ea2544e6b06201efeb631cdaf9616b25be1d868d86293725fd29b9cc8cc7fc1a56d29af3b52ee129a7cd2ec3ccab9fa1c2582a3a4f77ad9c47e782729856fda4ea24ecc51440377222218875201c85acfbca75bd259af9ccebacf3ed51014758d29f8a306a098304ac528a43a90544ff396bfc8f4d3c3b8d52487887631900c269dd86496974f33c84d2cbbe23ee358b906232035933108303ed9ee5b8a48a5b76d0450f4631d6fcda3ee994cb5f757cb809381018954ad118b4bd8d44f647c9d29d453981f7bcb6d6d06d08adc163e82ebe9a75c239d5cb29463bbfa3a3b1491049e03bb0f97c6066e025678af232bdd3f46c7814e6b22be1e62380351d63f395f5dac4b789513c075e0bb6bda20a855505c323807e03b849ec5ab48e9690244d3cf7bf79915eb3dfd65c97fb1d623fb9bfc3e59a14d30c435cce00fcdce8517f6896f3fc66d68aedad7b3c0e81173eb8c5f4505d51c6dda72700dd4962e1c71502396f8384159ac4838d857f77ddd5254ae5c40034272bea5c11cf2261b50c99c5467a71f024d86591d47fe08b0a9a2ebdf413c4610b6bb652c8eff5331c004943dd2212656bb2127ef1306f28b1bfd92ca17f69cb1f39b124632d0cc708556674bd2127af2633f8e377c2e9364d4de0a2e9cbbc21d52c2101b22513bbcda5f04c3cdd17497be586c65c27108b0caa7400b370dfa13b87ca9733491967000914c7b21e2767dd2e57691065e4717ad9bcb80e1dc13e78fd03cc2b82e17fa50f9816b32b1c03afa737633d95348a27671de4686369303d12a44998f168986d4a51935c7342e2f06d4741dce067f4a6942fc6511bc4c927453214344beb4f24e4282fb231b40a45600a32f67ec9478c3223d9b45041f998302838d91f87c8463029a140be38ecd024548b41ccc4eef0914a7349a11943518fc71d85ee4293f8497114aaeda982922eca5a4fc904f40c74f5f68951a06537373774cb907e0618f6fa21ad7aca2b7a5b5ca77fc37da56e68a9b9a5e04ea66739c4361031705c9f79f5048c836b803412c50a5cff696ef324b41dcd9cfa1e1079a09edadbe1f2b5fa3b22d6f74943473c250686c1a6f4ca970b9401614494443b4112fa6a88256d42e53ad1addd3bfb70b808fc062eeaaac22fd3f07d68dafd329e6c9ab876226a10ffa78f1e8a89ad546b84162ea172faff5e0607d4addfd943cb38a00b695761a8c9534916f10430d158555eccccc05fcb02289f32f36040e7dd13699d95520bdb9d356661b3db0c363deab0bac017441f3ab010215bda966b3cd0db158b75df585de6fa6b0d1d62953262b60923d66744ab6dda12210434fde85c4a16df99e5d22064d1b16140874e67474cd22256a17ea4743b7007965b86893d2060213f5dd231f77eaf7f97143bd335baa05b14d04a354f17d334411c823a4a461ab9dd979d6630b8ef4ce32eacb88e585c51dbd2d3e623022b0755103c0a27042ce24a18b64c847664bc15fab1467262d7f82da92a63fd60f52e3e978dd58ce4072a5dd2da636edeb67aa6648728e0e40fb6306783cde4377b37d354ed4cd692315ea159ffe7c9d1ebf803c64469e6d2da100463e094571eda2e33813572f7fe8404891e6c0dace225e4d7fce36549a71237fc1b0361a992be2603006eb721c7b2a74fb32c5138ca83c9a29f6005b8477dd3c5e35139a3afd2384d01b1201c2d0cf6bd07ee4849c84c6c4050f947798758f115ea5ccf62b10274cdb5f01e55e2fd004e79f36aac8f102a612c744529b9171b0b4c330c3b1d07c3198112d178086375961be363d82ae3d41ac9c5b6c3574bab1b7154fe18c39cd0d3a4c31c468eae45f24a13652f8bc66192d9cc078dab9e017acd8e6743344c936a2bf172da47ff99c63ec4779455d6a7f551be6d84d4d7287df3f365ce2d7171e354e1f4facce89b272f693951394003be555eb83a8badfdf7684ee0b7f647bba157a89116b42292c391959460d32c858de06a94de3dfe180d6d7716dc7db3456fa889682333c758cb364c4888dca54e4705ad8128c43254bb7457af7c4117a6b69de626a83b0d735435485f018cbf8ec547ca9792aa86e6f6c9261587a419dccf908a1f3de6a664b338308c580cc1cce58a3fcdb068dc4bcd822a8fb294240f30a3e17b176b3aaa5309094545194a30bdbacabcd7f34e1ebb27fd54a58e8c561c9dd0f54d25823c81516321eb4b2c4dc2a3e72fdab4ed49f6d170a7eb805be699fc40f8dd638ee254bfa358ae105ffb0f5a344a67fedcbe4b3d7e8273547c99f4ca255b0f75bbc6749137e97e250e94938fe812d21541d7923bc99e9931111269b43a61b531a0157beeb6b5a610e7427d4d2010e35a0f0886f12d8897042f68bde487d3f82f006086e569b033ce7c7c0869b07f44cf34da36686e393c16f02ca58ebb814dc5369702584af2e47641fcd20ac2cfa81c1da3c44df0e2462f68d9b3d88cfadad330e75dc2a5e67a3b200d4bf9cb6d40b125368106a9b273c12302c9a2eea39abb8da85603eb9614d933b814882341b21263ce2c14712256a9c88a2136d48d42a886c6f95ad4ce2b769e8e296f0ba9a8dc69e5cf9b158bb04eae415ba4379f53d960886eaf4fbca618c327fd740e02d9078c20f1667f88912aecf5dc26718fa4276802f128b8c0a812bb22368be9463d1702b689fe46fa33582104c32ce792a1d7c7027c72e89adc68f6e79613588c5b21de3ec3890652e76bd1195339d17fd2c7f55931ca6d6f4cf36a6da12732766413f343b825b7eaebbe7e944e166752c5642cd731e5c765622954df9086139440efbc14a1c1a4ca5b6a8074949eaeb9921c14d8a3e66a424fbd8ae7d5641567970097e941bc6fb52c854fd3043ab3f137bce27694d34e3725c8f2f3d28656b62e68aae35f838e4262f48bdaccc5602a9f408742722e8962d1a60c432cccbeaaf9b28d422e93f159331ce47b4d3a48ccce3f50e7003ef9404a999e52c0b8837c0246d01744b85b47eb4bacf532a2eb68f6e333d4146d3e2135519c354e44a115b941eaa57322f5495e626b3494e53bd7bca43de753f4959fa7caa20716536c44eb4c1dbdb76517df03d457f347a5bd0b2d3dd1f1338a254da1477dda7dab4a67689ad181e4fdb51d843ca2a42880d4aa3eeaf48f90ce6d8e8182915f035a26908bb561508aece85f182d1abd584bb13c858af8c1c32fa14dd0d4fee7a5a8703ddfd7a672b95651aa70134d623338fccdbd3f51a5eb6f764991128191c90746524f7eeb56f1d695453026e20e2c60b2c8bf7f0b11bd8b42309d131267ecc7a975f55d9ec430dc721510a38cbb2a00b94a3af705c097f26e7c4304c70dbdbb8b9087b6259427ae47b1fb205c4e3e4932e9bdb9a3dbad2617646a82ba8af39a3a184206d1cd88833eb9ef4ee34a68f2edaf6782511e017638c32187faf93492e7b6e01b3063e70c3e1f50de7c8bba0f6a15ce904431b080968f69e10c5e9315738ae030a7e974303b99787d1863fea97c732373ca51b4b1c36fc5503403a5f5e5542a2342e097fe7fd8fced48b2b8402798ee2b48001ccbda8bcebaad5585669aed4b498e6a6490da28bddaaded2b588294c30e5d27874d6959c1f6813f2abbed091ac1812a9c78e40eb5178692155b5c08a149133c4d03ea48fe74592054ba4a070d9fea5354d55a7d86fa9d6e743ec04eecca6b062288e01bdd6810363e1d75ada643f41258c7eb45bfe3cb01c0404c003010683a4a34b68b4bf5d1ee61258feab8b578df351da9497513b17b6fb2e5de52a624536b0716071b0749add3dddd110acfa46e0fe7184e6932f56cead837da4b688c68bb8202c11584134dcb05e5e582e27a7224b53961547a0e67da43bae585601fee0c08a2093c84d06f14bfae2753bea9d4302625c526bc3f06c5b0c0203f41e2392a81b16d8ef48db121e4e0a85a9575a9e1aa480927994828520a6da9d4353869dfe6c067c33a5c2bf5b831320b1ef6effe662f44be83a12ae73d0c4b4adf6521f15b763f7271ec8e6efa42e437281d5c1c3c74b6670251a7bd974975836f300477ec4e3bcd96caf4eddc764776a279b40959cf7c81e8a3a209d13f6d77a2f4dda5339b3ba767eceb65fe9bed66ce9bb1532f4883363822d435b239c71851bf35c71ae5ddc92437b1df320edb28976d1a47fb3714a76d1b87e2b8ad53a17d511acd36e24081bbb34e5b67ae87285f94371de5024acbbc497ba4dcd6d14137333333373703b1ad6743536d6a646c8c7bce293d7f8dc6f88573ce89c9754cdafcb099dc2d846577638c2da758a5c531250d176ce6fcf53c30e9eab0dbece27840c639b1c9c36a972636a5e61a1960b08c0193c4874e050c13e90273e4a5fc40a2d6d1362d5f5e28d717a7a226077fbe34e580365c505e5ebe500c0b15642193831aa8503a9ad23118c0045ab69812250b235e3674cb0693368694524aed88173b78a9491db8ca0d5fe4804d97920c99745111f3f4d745e50b174694846e20a34910cabc645006004a5a4a29a9bc94524a69e5d3240e3d4cf1e249b3416af306894d8d0a10369a5f972b063f7f5d2e25ad0bab088c295e8cd1c310af222440c96a5555ee39a08d9803dad8c088a9a16abfae265e966affba9a68f1a1c750e7afab49175410ae26574c9903da20a189d24bb751491a9ad480f31cd5d1734a3ef415b6c4084f95254934f460c316621081daa870401e569c9452caf052d6b061c50f4c689aa66935316c112386a120235f14b1650745ba68eac264acc061c98a18603307b461238a2c2a1a5168f995e728f124fcbaa230fad0579226a5bcdc5005cc114ab872184201948c39aa81115b8c94896285100650c69532420082176348312508043022a524619d681882a18099a4605b2f4518020c92e081d11141f0e2a9c8c88ad017a22fa880c1cd8e2b4e961842073165e80084295e34b1610865305164a90b4bfe00a7071b18c5e084183192680289c53e78f6aa62e7294c32d87278c2889452da38e1c18992976ec37f5d4d86f0a85f57133278a09152cf8641579827ee4bad62b8a81b0e5c61a8708549728599011357981d362aae30457eb0e150bb2e3620d411ac4025551abfae2d9eb052bb5fd71646bc742501866b8b27dfbfae2d9c7c589d896d73c2ac6aa9fdaba5ceaaa5c6aaa572d5522507eec71cda258d25e2fb53233bfc8c30a8cef30b7dba1e36ba1fd04bf51f7a423bee82c4a6c141edfe429f6730fb328120026f7cc8cd6bf74c47513aa5a3b676944b6fba07846699461980494fc1943cb2d9d90119470f77a763b3654b1878cc8a8cbaae208e3e540551f42155e1809aefa3bc62d41332e2c3d23ee9439485fa683e73cd1bf2615147794246288bfa900f4bf36dc8bb6ca79e0ca2fa19c4900a07b491bd09528f791624fbf9b95079f0fb39b9994e64955829684f8194ae812e53867d7abcd9cf87f4f9616059f2eb06635b1e6e1ed92c7f85c4e71e5ba6cc6f7c666620ee1181df8f088e9a6ff7605e7be6f1c0bcb5cec1ed39d13eb9e190c77c9dba00c48f7d2ff4afd7bce491cd3262182624be740cc3b0e901f13b91fdf94c525f755d4c9edec5e4e8d9f75fbb02b7582e26452e26442ea3a79bccfb26fb5460f537e4c3ab06a5b31afb1d52b1da31efdfa1aa42f6fbbdd09a017e3f272968cfc1b2cb94e1cdc11a8800abbf6d9d65703b8b2b4ae69b966d5176fb349a124c1d0d0518b7ad20b52fee0973051be0becd37b00e0022d420fb447dc57c102b88c5d23f21cdabd0e6db3a28000ca106d9a707eac77c837eaa10b4a124d6f560c063edb38bf202633dbb5b7633f47b81833a93738a9b385d2e31b7c7a5255298b999dbb7ae80d89a48f4028985f9742391158503994fff6e12f0621149c08b456996aa776b1ffee05c4b983cf8eb02828c0b08307e5d5c20d9f975fd8083af8b23fe2aa9880829784862cb1856fb0fee235724755d3f5cf1d297a328d9b67ba260eefb2bc813a45c21b65aad16fde2ea48898267fa1d454e29bd28b39b52ca0d0c4509e2f32e801fc4a29a07896584a81b8912c4e7815a015e18a403634d6f5f7a21c330bb1e353f2dd0df8e75d78e512fca0b9c75379d33d9f702ffc4b04f622d7fd8a86f95a49f4c397313e2174aa6df2ed85980889c3c5830bd99aa1c7d7bd077a723e8dbfb0bf99b66bed18c7a8645efae02f38b3650d99679640cd265c8b43e4897291377674ef656ebb32f2e3857f002f390add6c74f08e640f48500d59f1ed784c91ebfbd5dca17300ecb3cfb82f407619197baa42b495c92b4480a53830fda0e8c6ca81edbb58485942fa80ccbb439bb286a9da54d029151abd5720125fab592840c11c526866118a6b95a4a1ec360b0648474583246107ef032e6b130ec544488c716104674f9f003158a4d8c5e216a9da523f40f0d4fdec41619142d2886a02082a2687a966559e6c36755556d6ac5b0225602927972949c9ee5d10d9670f9d0b30c9bd273401b4252a86855559b5a2546b76aa3fdba948e7c587d32d1aa3ce84147460d6dba57d7eac6e8c690cd5f74b126482675fa9c52dbb32a757ee13649e92c6677a4cbf6a49192ca2eb32cc3329ad18c6659967db2481acd5c514359248bba47b2e40d27e5d14b8c683ed96088b2fe45faa2e2c451c54c5b54887e3ddca5c89dc3addba876b9653f81e5e71756f0b7f2c78a1dbbd90929d81727a0d0ac8b7339d1456c8ebd2f06236fef6eef723bf3e4c99399f9db8edbbbeb13a6ae2351d7afa87c54d7bb1eea0d8d0ea66e4e0c8113ad8f31726143816dd9294cebd9b50328cf1f10ff09540fa4fae842949416474c61a9ebdbeca2464f5da9de6da0bf1b7679b302911bd6fc6ef8f3c10a6205b1b28f2936f1935214d31a22523a424a526252b50e7f345c28b5640f58f7c365ec0e7bd864ac095cc473f7d2a825a6546575d8b9a908cc0766d43afc335e6a288ddc08fc10337237525569443f7ebd3e266a7b8811f19cc14165f6e8430d31277e550619fb22199b81165f31f29ccc2846318ab9f9a35a9dc1a2fa1711e3671775fb38df3c88d579102bfaaa5bed4ef4f88a4fdc8ad1e8082949e9233b7d64311f5ffc34f4b12895a5ce5c5143fa9b97a2a26edf0df71131a18b95166bf32056108b3df6e6754054160aa926ab150a1f35d4a6793ab647f95639c286df4ec7f637d3d997698a57398391e7874393e555c489ef2ffacc0d2af37480f4e992729579b45903893ae75785500f0243eb51ae494f08507dd9fdccd9edc83c1396c11a4b35945f51ccf560db9c1b3e37506072f4b17932cfc993b9e5469b366ddacdcd5e7f91c90785cc9829495390a2d1bcb29286070d5c7e997890f2f30b57ef62a20926a4f4512da3ae6b09321f765112a22e629e752d91e4a3b792d8470d6506358c46dd03763e542140f59b8718ac09d143b009264d289932254ac1d8c3302ccb7444dad15a77c13082dde9e074b4f41c3cdb658d2eb5bfe9399abd7dcc67f743bf9b1ed3d9d9e7c731e8dde998cef3c3e12fa757333ac068780c91e97aa899cf80a972d63067c7d7f3367d8381e8dbd90be3ab8b76277aa7a486d1a8a8a57934ba40b3b46f570cf6f723be4a18e26d343c8e2861d0d5c4ebc368f4b18b22528cae269844291fbd8b28f6eacca9cf30e89ffeb0671ee605f13228fb03c2e086ab8fad84c155f7c41f5627ba104b7c5c4526a336ea19a71a067dec78a8db4836483057220953a2a8462a2941c50c91126350aee2c4cf9ad8dbbb5b81bfd609877cd77c0c22808f2b10f31d0e41fa1f59d326e697b65a343c507bfced7aa8bebf2f768c9bbd88588adb2a94f04102c060c660ce8f8f22a93265ca1481654394d44d1caa33283787411aa2229ca26fd7433e7dba5833ed0ee6ce60671485cc4e0d683e3f164cd7be1c7c036c1de972be740921f4d2e3d06cadeb28cc4b9f709d7ebf0871530e124988264f33cc73304f9803fa609ef0060acc13810f77e9a5d03fe0439c0f7d5e625efbf4d83d07bc8123dda8064bf4ee67e348ab2cf7761329c9cc719275e456a95c655c62b72ccbb2e99d61986318867d2186c5cc0b390c5b220aca5833229e7cb76f29246a749b248a7c1be0db51dd4f53e6498199190521869620a1450ea434c1457806330d4b9e9999190928df2e291257bedd86072d2e295ed4f876dafd34187568015143123dd021072dc39125d911413cbb9623c6f83c3bb6557434e820ca98c508323a443cbbac5cf70c56bea5777777b7cb08a26767d4d014323830b2238e304d31e254e50609e46094650709103db990b840228116bc6c543892064c5413a38db8a8210c09450d4d6c488cc678150d946c5438ae20c478f9eb4a020ca7a6a1295953cea6458dddfb448479427008838b433abbcef6ece0063c7b7966a32a7f7fa46077d877748f0aa20e3be7e0a586e78e32f01852326477587e405a6090999999a5f8528deafcf93173a5621e356fe721e612b2136b3197a616bc2cec8b5f0b3df400db433f46f229f9f610c767ede102bebd1ad57e21f2431efafe6961775a4c0c26d30ea9c4201383d3677373734f2f1229112d2561b0bd88884125a5b8d4c2163b4ac4adb43b2d250989c154911a4622249ec66ca881176098660ba78cd41d2d84477dcce5e723f3b8c4dd4ee3458d4c0cb6cb2f2a31d81ef250546ad7b6272ea5ffe57700b2b71e984708ca39a76ec45951fa4b87f9a4efbce6bcb82644df3c57f52d3a207e2fd0afdc03287ee63f3a4dd3344d437d1a55c50ee2ee1c6c9b6382b9ed4ebbb626344bf909910e445fdb9dfe613781f702bf34417c1eb2d5d2166c6f9f3dfa650cd22f3fba3b7dc363bef4f93fbf190b5711423af6a56f0e33f8c3607bbbb4c1b6399a5cb994524620361ad4c80282b5ecee55eafe646b4ed6267da338d29756a9a1bf6b58d4964d3de594435aa77d2275ad1ac62f4dbb63440d572947d434a21ac6a6a421dd13370e3d1119a20de15239259a6153d20c9b72ca293328358c4d2fc43d7129065d180113850f2d3247599a06d5abd56ad160448c6eae6a38786e6a3d3b3539dd7c53195a54a1e5390bd79627af7ad6b2e4d987468d235962b65268f1edd85661636487387db230f976496f08e207658cc4f8608cab8d2c938f0f668ebfda37b05cf976aeb3ecf0ddbe452a9aa5c148ea091554ba5cd1210057a4d800cb0ddb2bd5d0c8b104adfd5595332d5176d560c9f36b8a17fc17cfee39ccb3cf5314e19977c6a015a50492ac889206450ed811e58264fec4c0947de941166152104106fd33c3d364dac14818362a19907e6448629dfd9056a61e92fc083119f1829f22435e9c6c543834609aa9e1862447434009338413ae21aef8d07f552486dff670b56a5ef1184a9243ed7ab41766ca20f3159cb10f611e21eed92cbeb0af40f4fc92a2685d521409e0c3659191595720ba00665c01c960e661fcec8b99f496b2c3989c988872d0b1c3a44fcf85b91d8fe8f443e1e7e4326cb2185e7289ed62125b892373a48d94986c0ecb322c6e1832d32486a293fac47c17fb309b4afb892dd5458d55c69591e59c2d838d8dcde2e0b7e13caaa2474f79a90b4edfe9b139599b2e387f027d63b18b907229875df2527b7ab7d7d4baa02eb8db1cb5a0bdbb91599873c608343f7adcdde5311bbba02e09a9dd9aaaadd3d505b55d82deac9648e49c3e59a0fe32cbbe70cea640b3bb2511765725bb720c52398bb86ec3d2f9b679646ddd9639d76d996318e5b62c433986722b4f508a4279e8b35a9f2aaf658e510cc3be0582c61912b193ce3f925be89ecdd781740fe7280f7d2adb705f88f35d7316874639c039ea83e146039185f2c8427d431c8bf321c91242b911ca8aab00ea9b1759dcad2059dc67a4488a85726651cc23eadb5500e5aff29a5b79e231aff29917997dbac7c767b502417795aab7cad3202a8fade4b81d67a59c0db11181210abb9434547d644a575d597e41c60d5a2c9641518bd545557da4dfc473290aa21ffae840b1b5a552f0a464e6f639e7ccbc54179a9939f3ad665f08e43117da65e6409e7b4a6f7a0331183f20f9d837040852bde9c1ee57aaf75b4568ccb7db50c30502c43c4388ac28ad2a953b08ae56ab21622aed1ea0d7ab22098178d917cd13e62fac7163e2a6ed18d536c9c9c53cce40a5437612f96e23b6df95524a29a56c669eec5106e59c524a3228215c495b2af6eb721df161e5a6700d31e5ba9e44179118b1a394c2c767716464ec4ef45893626f652f1b1df8e4e81ddbb462f6b54fb115877ca2513c8a483149a9c949aa16a1d2b8cfc7cee3e298711acfc1130a1a9fb129f9ac4f3bdbd0f090fefa0ca7e1d978ebb3ab5f5f9d755943e3eba57c464dcd07843d8d73a783c669bc983d3118535ef6f20c1083ba23049aef64c859ecebd1516008f0ba1b206e06b8598f344dece1b04e9c410d9969780c85f1ecc53cdd27c730189d260772bada31f96d5bcbe9a9e9c52446e94b4b6988a9c849c999767d3c2f744a6bdd2dae8705e9a74104d0a930bf50f3cdb7efc6515e90761d8d01614f3f27fb65af6c0cebc4f8345464af3fb2c4a7fbcd9ae24421c9476f01887b56cb97149044a1f80589c96f4d607c949dbd9827b4c9c6304fcff0f1667d7c80cc0cfd3a4b43e2b09aa2ede50f5555716ca4af16872dfa6fbbdb1b9d73301106dbc7af7e3273d0ef8f1511065bc7b639987dfafc825ef3ad8428342ba1881ac697538faf9e73cbba9f49998b502a3be5ba1f27db763f32eb32b0accd87a8dddcbe183bf6e8c525069b881aee13a651afc72742b19113917c0b7d5715e8abf985a0fc92be9d7d861009a232a97b139dbe0d83219591dbc1b639dbeefad649a9eb5a22b302f3b80fda9479e63e59e6e00acb321b996fbb9b7959c6be3b99774fb2ce5204121be1f889eed43ad3297f4fddddddfd45290caa544f4fdd138d589de973faf41a1045a4dd99461051a7d3117b189fe2537c7a8a43d1697a08fed1d4be2cf384448a7df16977a66b55d41947d490b21185b24d1b0cce39e7d640677526b83bd3a5b3f00304b135c6c70a4d54e560f77ca00b70b2b03bd3e3ffb26943355280f32637e79c4d89a8ddbe69393da7e654db77b80fe6f1b183418c8bda4e0106311fcc83b90f0631e76ed5a0df1ded8379760705ba1fce786c7cc59cc8ed689d88247671f322120631df4131251f9fd52a0441fa85eed917aa5418e639dcb32ccc55388eb94ff72ccbc663a1ca732d91798e796a6cd284b06d0e73390c4e27282f01cbc0b25011f5c59ce9bd4abf01e6992b28fd7420334c8e1418dcd9dbd3e70453bbf8e9d9e76377a63fa9ec2d198653aa42fac1a044428a48dd2382a49731306d33a04491483212750f0bab135d0c7d3d11818079a44b6741aba27ec15cdbe648a9f3ab23b51d7c62cfb2e4929897ee433aed171a7443b8969c5eba7743d430475b9aad91d33d393ad3e12f3fda1da5bcc160af186cffa14adf2f9f02f36c1460a07c3b0bddb3ace5f2ed2558a9eca14b2868ddf2dd735c21beada842a68b152bba40f104fc4ec08bceb0526ad2497bc71d32cfdc4c0244709a5966962c3166995966962c185df29931a3c6866d80e08dd5aaa6c686461c1ac18810b0905824162cdd58241689058b9c554a508212d01063cea6d9d441c042629158b07463915824162c5129525444c2e21131861149caee34143a183644a31fc684c4269629b1c0229689833a513e3366d4d8b00d10bcb15ad5d4d8d088382a159649022c134b1c01896d73426e6751c76db1a8757e9c44a2a3d6895c1546f3884c8d9e8323d23cda388dc89027a1562b22e9e210d77940ddccb62c73cbd2b5b062287dea54a81f91acac0eea05ade3417bf4d32feecee414971634d9b03db368ce17bc36a40d6947f4b538a6b3d4868aa6124a863eadd0542bcd8c59c43c9a43cc8d48514a44a200d28e19dc760f4645eb797474d469515155f8cc985163c33640f0c66a5553634323e2a85439ee364c44a5a144445a1d7624b6873e4df9795459a85cc4be8964c84a0db5a1210d09f74c28f36804f3a8765bd7714d349ed8babb6777cb962d656f9518bd65efea88d213ee5df10e713b1e59486597d270a0bcb954126473727163772867d9a1bcfba2721dcaeb8692d29f5948f7a339ed50de955119cb32546f43ceeabc2609f7749db775eced9930e8b34d725cc665bbbb7277e52ee79917fee0382f3eaaa6552354a3715e4d8b41a21a21d661a29a560d370ae5e940755f541fd46bca8bbfa166bcc63011b56bd570339add663463cc8c578d109fc09ea21fd6b46a5a3544ad67af51c23c9913d524611eced96b8a6ad634e335e3a579f2eb8c373db3e66d5f3d27a9548d66437fa3c1655f3d94173d8975950446692a2e7ef59c6c9eaa297af699ae26099fc0de753ff2ab212253c3cda8868809f3600ea5763a502fbb326ab819a980f3f2db8cc294d177b619a9105f3ac79bc669f1f726dbc5a66c8d6e1c2bce4ce61ef72500e0a9665a5e48e6389f7dbb3bedd1eb293faa65349898d154a6629a369f1aa58452437c42d7aaa9969612c2b0d41083a9d68c31668c81a130f619632c0ea3eec95c1a15b50ecf9b18b26c358dd28cc3bc88426998f4f5288739d9bc3d9a31e1138ef80476b26d5d336190a56c97de8fac293bca8c184cb5362223e6214ac23c982b49b516c74e89d9a8bad9df9e93cda927b332354cb5b8eec7c996d10d531cd7fda076b50e5bcc0f39443b0cb4976ab553c68475f8cb8c1864c751aa1b11a33477c23ceca3978551b1ae5517f5481ff6abbff07c7d7bfb1b51aab565a9d6971926a2fe885a1bd146d47198a7cd7098477f7a290ef3b29f9e879a584635d4363343002ed84af0cdc9e15c73f6341cd77ed850d636e7405f52fda67afb082e696a4c4d39a1720b24aff3ebd2c197df683890eea9b13aebebaa75badba97c34a5998a92a0a224acd7f0548dd5320dc3b039b12cfb280935bc1b2b06a5d3f0c21f287cf42dc16b23eacd322869eb484ff98cd32c49faa93cf3526050aadca609db2ca99541cc298318095e3dfe08de0d093e82d3f06df332d73c1ace79e12ab9c0cedecca2da2c3d331106a503910be4867a83411630df5cfa063ac03c9c97f972d69d6fdd77a3a3db3ce8352f94210b5a0ddf4ec78f0f39e8d9fbf1280f687e8d6f01395ee591e009f9a9de6304a73163e3d578a12a8b495e3aaddea6d8673c05de56ddb302eb4897f206f72c8be68baaa15e50c37d819f4f51c37dc524ae7d7128741d34fd72f9758121f3dbb66dd7835d73ce738181743f9b77ae79dce61df785ec2fc4e77cdd79d3985dd334cd993d2006e510c99cec7e2a0f15257d0811f6d88b490cb26b5e07c93ec33222e60983f8260342bf9fcca503310fe612937304a611c605060ca63a9d37e9ddddddbe5e9095eb3b1aacbd5d60d6581b60ae7d21a5fc852a30663456ea0df529a5d43cc99ced609ed960f7f0581df62a9ec180ddb32cb963771864f2f2f20b7d9e5bdd548b5086b2c1d6017576a70fb0009a2d4d50dcd0758ef36ef3056d70f754665ad2714b688c48d668183a5854ffbef285ab88491ec418b360669ad16c4ac6264b2925c693b9fb6129254bc9bccb2d999953cccbbc748b8dbd1bfbd9ffecb5528dce547a573567942ca594734ed93342d41871a87be577c6914f57831abd2586459459763d90858afc214a6e777168a836a4be9cc58734c2c8c4c4e013d54822416bad5425552a5ff9aca28f8c947b683333ab987906183c33333373f9f6eece810fdf517cbbab6cd0ec0c5c84581c3868f2ed5200b4c6911a02804502b468fa7600302961063016074eeca2051009f8ce828a6fbfe97eba7a42634ab041162d40e10634f8f61a95060d64bcf876a9ea7e9a32df8067985986309e9999892495470009dd4f6344d840079d6766661fa1fbe14e480b0dd0498c6fb7e97e5a55e48a9a053821e100a718be7d46f7d3aa2d90fca0ca1128925899c286eab4a4a68eba14b185a6fb61ec490d2916313c008b27545d7678769cea0898e28a1fb608f13a92a5069aa1279b9ae20a259e7d2648480a27a7262172e892c391118ae0b05ced6c704510339ebddaa8703c07b4b1bac1e5cab3733e1c704268074c18d1011153865243aedd14b0a58c2cacc86205971f10f0bcc5cab3a3ba1f5e059e3ea8c48d36653d0a11d10000008002c314000020100c08842291402c20cd4171fb0114800b779242765a381287d31c876118c518640c2180184000200688313544c441005698e0c6b33aa5cb3dc42b0d2e9319bf9412f582b028ae05add4b65f46f1dcd741ba7500912cfee1b48f2d60f5e83360c5e7cb9e68c169390e586549073e5f21dc83043ad8bd2ee6a5176725a5153c8d378dba9231fe284fe409715195308128a6cf96924b2be48fa9470c7a87915e34ea3ee4753d3eb0aed907bfa131d6537ad18b78d5a02b59e347c9048f105a9438fb9b528a09ef15642e82d1485620027a574a03063aaa87e6688d6a34e5a2602fc4b30c080f1ab0bf205e218a123203942223b1930a3aa1d8c44802264dce1e9e0d8a3d3b5c4297509f2ec43e1e2cb8732d0e324a898a877db6cd819fa4515a22ed37b3dafffc972937452bae41ae0a9d72c62ad0310ade9a29153dbf8a54faca692c2d8f5902b2d70a8de91ad2b29c5b43a977031b71dfd2b522f6a3343c4bc0d5e26b5825df4bbe68515a6715b4d581f307d1982e0af42718e02c5908d58ad6a10664499a293cf3ee3f56b1b2f4cc52381560c5922e9cfe07a60a54287e3deb07829e6d9d714fe723e9a297631cd787892b334e94e40696c1139597406a50b80b9cd47bc83a958480d073c51c862a2c4a45c97cd9e2706f4fc6d380f73a169b362523724eecc48a38a111f8588c4b4abe605cf6c24fd94eb3c130029fc50011b6734bf853935979254c8e4bfbf4fb345287e9b8a0711fcd7e8d7eb1219d81f00b0c1eaad288f409c56731489d680745329ead0553efb7cc72b52eaf06f65d4473b821c5ca9bf4afa23a839fb2320e35a91e2f354273dc833795954476a8cc24e5cc9c3541df169b6c9429cd93d5d6bf85ebe7f07ee4b3f5721d79c2b1b28a614073e5de1fce7316922f36e89b51dfda17880617a953d36351fc4211eef837fe54c560b33d0b78670e57e143bfe8b13dec949b1b53e9311610289059babf6536294d5d0d4c65af6694074561129612575e8fd8356479051859c963e785c1293e020b16c6f0b6a23455c0b9d08f886b123c230803d5cb1d51d7e926c0954dd47b81ad86ef383b5a2a86a0d326f03031870f10778fc20d0d880c9a5fd17ff4b1309388bc8b8c29f164b07865cf847f613b940d4c227752514648c4052bca7af36d5c9a3735d3aa1d8a664aed3f2da4e959c056855f0315fd5eeca1b5693d5bd02ae1d74237a35d5a0497e28f0eaebfca4eeab72d41fd1378fc9a683c0f243be1de9d7fc17f0e9793e64cd86322288149a552b98d34ed2b2441b9af7a9199cd39042e3b98932d37aaf004f7a3b4c7f57421dcb32ae6596ac84a6f83bce91768ac6ff98ed351a0616d9aed2d2027c1b37eeaee1a186a34ed04802b117bc8beeb6cf5d00306b344174299c3bac90cff12e5b7ea80616ac9412d91050e2a1626c8ca50fd254cf6344f03b072750d7350e5cc46a474739263243d17c7e64a556debbc9875ab8e79f265a4109f21711c2c23561175aa5dbe55204b60c22cc722d720308b9ddcf67162b1bbecda5e64ea354176dbd18a25358f76fde2c3af50957b4122014534d1a23a4b4df20b7e36155eaf337df7d99c5dd0900343a9e5631c668f26b2566fe67c4d630e646b3e3389158c768835c08f733d034c9d7c30d4c04a6d088f1820f2f5930f2853e3f8710f7ab23bb7da8713b60a7936454c8985a766dc4b67ac4c064a0c3307bee7528d31c2ad37117ef470b54ac4e4a4a29239d5b47a2e52132ca2d65755d4917700f6d038b6e9cdacc136ed7283bb15762c21944a2d0e6fd8d62582457d152eed950c51e319032fdbfc708a13d54f340ac87a0504e7575864390ea752cf5d9e0eef0cda79473ae70cc9199e9aa0ff1be854003f0efd3aeeab92baddd6d84b4cb7ebfb63e9a5d5a057456d3ea11900b3d6126420bcc1b1b233c49714584d7fc42a6835a3a17872cac20e0966972722d5bb57e0f5b6f7555cf28f5ba79b718819d9e075b3532b23796da420416e6925a49b9eb11868069439afa97fdb679943e071d8e3662a922b4292738181db779aeb4702276ef77f9387a3cf7843ca3595f472cb14703132c904a85d24c83e8daf41438685881f87c60661c54623e69b54c89f336e00205b93431a15337a2110d09e8d25f485d8040139837d1b975a87b76ecb64f291ebec039ba3d01da00cd3b06fd55fcdbaf8def5c41b7a5f31335b682a25cbb647d92022a6973a73d01fc5fe11a1faaaf6dbfc35c390561823225f4a884fd732782732ab29e45afdad647ab3b9479fca70cf21fe326a2e1222c9232558c2f60991f460a04d9906d369b2199698f09fc701c9d4744b379304192faa60d7c52c68b5e131f73a3ffee16ec7d18d1ec94fccd76ebf72abee30a64b5744a0d55b320f0bbfd4f3667f7fd85636e236f5bf9f4d02521399b41b6a2a54b9c670cca72410147e8fe90a8a9d7e89e7b43c4ded644a6e2e03415a54040d8283be5252a45127b0ef4fb7a95a4d2d38d1b03982711e4b510b97e22c238a68bbfd25d0a85153fad251bb7ba76b4b0c7b3377535066d5ebc612853c618367f3b28c1bfe26f334fd30d96feacd75a8266ca9fc1444269ee9565f10696eb9119c1fa4190cd72c3299f052189c9dff2f7735720c48992a173dff4cc3d77fa9fa2f20732f711b31d37108c3c4ce4434a9dac8c95dd4c26aa5ee905457f64882b300846be113412ee46b85205eddc8ba08976caabf703d3ce8290495c7541474772c2da76014756640c45face25631d16f1311334dac102a9c9561a799be91f80e244bec9bada064efa309a2ff208beb956bf2ec423a433acff14aa74efa22293ce3dad979504d031e5fe2a9ea84be1caeba4467cc67ff8641afa963fd097de19cf64d5480fe462ae9443334e42a4d08f73252833bbfb9da8afa2f2a6b86868e6d3c2dc65e0834b0d5b9a0d52450b6bedf28b0329ef9f1c36d085afdb03a33a3fb424a3630bda050fbaa942e7fc8601a3d1f24f85ebc000120db80887aa6cca2a3f5ddbee2aaec431f48ad26afb29351273f068dec1a80e153b8c80301dc2cd9a1f5ab92491ac6aebc7a459e68b8f91250be6e42df3a978830c0ed90871425f79a879ccea0b501634229cb21a985ae00f656db127d41fa291cac9423ef86d1da25004f4d632eb8c688b7398b492dca06cf0e65692c79636bd41b593dcafd80a52f20aad6ae69dae1c32db6f3c6f215d6d418e3d82c10c6f7176a47004078fbf8382d6691c8188eedaf7560eb2a97223477d02afe33e9da6969fce571ecebaf860256684368f4f236759bd91f755cafa1bfce1e633327a8533b624854cd55af1dcbe953ece624fba5de3168e6f0f10e36e13b380d3c77cca6e589c8a2f51ca0e6ea70148984fb637a4b1b7d66f065d7f139b5736ef53eab444f9dd7699b6b90ddc7aef141d7a5ad61c2663e68ba3f21ccf4c6443d59af9cccb2c69b4d0cf595910d9782d1ef2bd144e1f632ef606b4766eda86f768eb6f6b7e857548d6d9c48ec2851cb2cf09ea28e9bed262addf63c170dbbc0ac57241c31b72b36b2121f4ffb5c1a5d7ad6b2026837c731a77d72951bbd8ae0db776fcd5022b2557ed22b8112b4cc5631df0037f5eebd235b1efe56709d8f369eff715560e4b2a1ee7624b64cc1bbb9b487e523ada1ab2e4ef2c92e627631d32aa4af5dc46ea14227ee92902fc61470290f3bac6e0d4c25f74c523e86ef77cbe8fd0c28b1d64cb3fb4103ec1ca02b3e76e87fcdaf228cdead443823d89e6c9405c23fae75c0a3c7ef4ef10544c1cfd64a11a2f8c348b95c95bc49e929825c6979d33f10bfb627d9e6c1d47fd2197aaa53567c2e28efa9970683902b82bb31788ce830cf0ddefb38941edd5a57c1f04313b1e95e6074883c9292df6dd9b846fa962f4060d03095bddbe3fb1c7b18ef29930bedae2f0f956715fde037f0b9e2628dceec73e77569a8a1fbc6f20d75d6506ede4832e86754a95d6721165927901366cf35205b1b407d0a648a2e16a214183ea4ce2f5ad8bb1c33a8066eef3d2fa0e72e019a9e5f282c269cc1c4327a959c48dcb1512e8dc2d73cee99ad81d9cfc28c6884a76fc80458b5a5bfa8a3f50fcea49479baf5b4465ad6b48fa57b9fd3dab8169e28e4c42b24bbc7857096520e69348a6be8e984afd2d6cf7ab439ace9f77a8886262dc6fa5ba3f5532aa230c21e7ed83a3c91c2f7342eeb14c68782b6040fa6128690c005f5290e5aeed1a1427c423bccc2dcb3a8c8091c12babda9404b7c84904c9d15dd86201deb246a0f3abac6421545d839752c294c3f7cf2e7fb1fdb45bf34cee68bb136bc50c94f2e3c8019e8456d05e54b5722b51f52f75ce5e6994dcb98d4e996494ce5fcf3a98b87ccf696dc204ae1fffd5350818f71aacfc8b13792ea9fc568603ba0a6a7573c59a12a35630d8a1ebec439109d02d4b6863225461e53cda6ae8a3cef435b1018da31f4fc593d1bf30cc626d49b4493ac8f4e8049628001f044fe9ce26e3a8ade88bd5283c5357c00324bec0c3984d18f662ca8cf77380b931c55a0cc5cc975ae19e4dc7621c836ba72b3862f7435b46a301cf53dd22fc1204f773df9690b6418c10dfdbc202c4a73da8adadbe9c00b7cffd40bec32b4ad4e70fdcedcf159a9855603176174f9a788754cf7a90a217bb70e90c79407c32f121d3c380c39d34998bc9f75548ca2e23cad8f7fa64273a0d21c83ff4470d20384ab53e1b4e04c6bb596c95e8e3061863268519c952a67c55d0ffd4a776004dafe6d75b48be477eb11984820696655cda5d5b0a35fd4808230da14bfc67666aaf44de97192570004b243ed5c87943ef050711fd3269b7df390758167f90277c4a6925ed95b63d5e894f1042482c615a4b49b68a4779db233c6b5f4a1786b511cc91b21dfc8d506566a3045bedf7de0790ad31ce49ff8850f8fcd7719b04c890e3c832fad91eeaf16b304dc56a35fbb7da24c192aebdbb6854df704442530168dd836cda519556109c3205124e0a2566cbcc356b29b999f58d2f83d689ca80567fd675495e64142bfe500585ccd006f5f0b37a582736d1951f87fc97926c678504a3c120d82963e80956ac685b4ae3b9c16253700844efcf70492964a797905eddbadfed870a39490df2fb41b6c1aae7bc879726f765398f158b7893577efb9640554d35ef5d4d0d2c6697e18656c4f2972766a64ca39d8ea7f873de91a82bfdaad8f99821ab881aab4326c3aef86f948e9cc9f223c0e18d5a108d65cb311a3a261b5ea06a0ff2a2b2b8658b752ac5d96baa8235e1a07a673a79820eb353073624bb7da6a7227c213fb0c3da51f1d2015abf3ca600a367635ddb904ceed4369b87a65412f5f3c9f6cb6595931e01515d01fd749d6d48e03cb02178d30c6656717d86476b3c747b7ccdca7fb1a0f2cdd961653a1f9516fa54f4174429d9fd9b353466ef1413b5d8614618d392da881065cc120d2d6966af6291f6770ef2a243ec97c73694bfac19a014759c5b6dbbf45dc21bb5d1eec5f3b8746f53f9224412997ffbcbe3082e6fd023d8064a88dbb199464ba5eb33b2f60326772cdf104a5188a0b164a036f5f3fc8ab1e8d14019537cfa3fd5d3d420e1fb8aeabe8a123bb092f9bd1ca8462c2cd9b00b11ec1934093a74c094e4f86fa1795125d2ebd9570fb7196030963d1b91787d61084d8e486150ac8c6e724899464b50be22d664f541dfe983149fb450424e62beb2ef138ed5233d8b5987cde37203155482f5bd16c68c29204b3e33cf8748a97054bc0160be961233655b11b49edc3beb86115c81bb2e9802c1032769a76bc2eb9f736efcf8e212a0f2f8954142cf086e716506a5854d0c8627e312490bc27e9100929a47719091e2e0a279b876923e1e339fc2c3c7af0aa864d312431f643b9b5605ebc6344213c3b13d0bd5c336853503d7704356b5a5890f0381e372c180e86a2d5ac814a5ac19a50c9a23029b8fbd34ec80440c6ab4d8258b3c1c739202dddf8d585b29b187f6b4ce8910fafa5a6cd558b84145ec63d2c80eeb68d046442a2d93d35e844c23d5244d99d264ab2c6d80d7f8302ae16905ac5a93260d9c6b5521d130917adbcaa883c068f6e64dc0af7cbd89d2a762309eaa025c94baef6dc5bb5f2a490dc7e4b2919e412c930b08f613289350c4053e4582ea79d5b7d2e34086d670a982b1f0aaf97be0e126de8965c2c70500af628778cd37de65bc125532177c78886a4d3a533a66376380b2f4eed778b65e6bd009c6377f0972d2b86aea947b754c8ab3be5cdda6524d5df71dc28e2ba230c9b0284750e5806450eb782a58e86aba2da446dbb51807d2f4bdb89a41c2077b3349a0a949ae5fd5ed4464aba7ca855bef53f02810b8137ebbedbfd815873a0a75ff811cac5c46fcbc0e3a2bedb65d583eff5657525d0f636db4b435ec0d7906bac067075c3dd55c1de8b351a0a7b42b4ccc9897eeb56ccb724a5320228f0a1f25c7122a5317e85edf05ca6e6423f6a7c8674e4c78609cb35ad41d2957a22328e6af3332c06c935bc06498835d8218768f9414e1a6f743226dbef8e3d78fa58b930990b50dadf9852936c899853f75a52e75ebdb31224b765b986b8801e97607a13bba229086daa1b5fae264a16ac9f2e9f9bc25343b9b35ae3983c97f89a481821a3051a3170b53e8cf9249a9c1a0bbbd101da5cda591c033604204222395b6f294ab90a884aa274b814dd1c1ae48606c74804dc59ce885522295aaff4512d3084cf02c9f12e423656fb81efcdf52c55416797a705d2f1b1e370e142073303e509764e95f35477d499d56b40dc59fba9d2471812a2e2931d3d39255f83d7c27529938b7c35de342006600514af6bda777c1136e261c1b51101055eca559c9e7a65b3bc52820249c721b00ffd5533b9a25adb83f4e23b808aec7cc2fa01a0b07acd0edc93b253e145edc9789c6834f3c2a79803b1ac45645f1d15ceb3539f60e7543999bc6e2e7950e38e04026731e300ef2b6efa91ea67527c4657c7cc299bae972e80931706782aca42267681acca41a5023de17f52963a9ab45b29bb51c9c58b064b8a80e00434e7291d05459bd0af3f5fee0200c17c9798128c9d97ec58ad3f1390ddbc1a4bc318a7c81406103639e31133e33dc8643256ab571dd858452581ad08d25c79ac5f0a6a54a860be0118829d87b14ad838323ad9760e0db91680adf55ef890cf053a2b2993ba4b4dab1223bc808f758183aa8daebc1202b204b55118e5cdb004f6ab3ec8f306527ef59ea0a1477de5e7d91f111e3339ae8abf212eebd3cd56c64538568f6009744fd2fab377ee50854314ec53659f44adb4bdfc8759e9be4e7593d142d1e2e971abb24baa56da1ec09399655f83a3f022a9a5e28927272fc099141921a819bcb70a0164fe8de2a2639ce3b5b1adcde900fc1316367c463034311663920e20ac275eea534d6e7c0cf9b0d225a1a09b6bd4300b502eedf8211506d5b9167a7976f486f374bc698e2b961ba043a62b7f536aec0d080ba67510077ea7b8f6cd585555b063e7a8526e23fbd36c8afe18bea869ea15a597749d50b5223589923ba6be0e6ec086576c34267b44befa27b4733edb37b8b686cad3efaf284df6b6e0016688f9f0cc6e48160d33db2fdc0e1a0d62a19bd681ffd2f53a7e3c36db306a5e04c9a3541b3e46a6021b975b92f5465bc767176be711cd09be540cad36efede24633cdf194369d457991d0daa57ab7b827d37de796d0dc7e7c33640cf5389a6874ea0a0e4024d70148ebded2e00e763a2007f1a8a50b1f32ac30e7f4edd3e00462ad1dd59d4641a160caec19aced3792839720456678d640b586fe0a54e26fd6446a3d98e6c91fc0dd40677bec04ca65f5e1262374d4919cfd5ec49d2125d06c169fa348fb0272645de60267c57e9750660e1fbda2f2508c94aac41879f27d9ec1126f647344a082fb28ff41672b54a9e1711da109322a0a4d40a37f08094fced5b6cf026f524ba8242a2c55e2c4f7224b7f9ab12a845facbe9f3cb5aceec0ad46c1f20c9cc177d9f108f7a1a7497312a2913a4cfdecd7aa90ac63586c217fbe084bf9184909c138e0d34e44bf782b3a1bd4ea75e05945da8404d0dc2a45b3b644341237f4385e5da940662257784f37344faf26027e02e64661efd94a8990e1fe6f93e2333a59cc69f2ee3a7b2fcb846a0cdac1a1b46e65a97e2be0e215f52b9325eccdc3da940280e700d09dd948a5c24731e2a924abbe95d51c9bf227291dea5d3d7b515b5e45605ddb5f2326d3bf35952f47bf5937ecb04c27940cdf01d4a737ed4b2419a323797265b148630a4c03e5145e37a8f17bb7406d8472d1debd5c99a8aa4278d27c46a885591dff8a89baef31319fb1e6e6cd2deb0b9e8659b0fd0e128c7c2e469e874fcbf8034af3f023dd0b8288604834f2b8b4dfb913b827c636a10970339414df97df99539089d16468144effe83c2deada7ed052b3ddf7ebe91c7080ea93eac2c376ba5f85aa3125cc7a9771890fbeb5976999df5f4e3feaed098e501a1ec0f19d4c0af262f77e60793e7d47990900ce5d22c63339e4febdc240c218c887c3c26fd9ff6c4930b967f4e3b488029f16b28280da5fd5bb81c683973f79fb06c8fc3c5e200acce4e2aab81a8e7ba909eb77bc33e9007758acbc2a6dcbb404d1a3ca05cd82bcadad1196377391b4d90664411cad309bc463af7f68745a2c24f683fbfae9e9d145b2ff1ea7322d84b55955f558ba19c56e3285f94dd81a0eb433f4aa877cfe8da4e6eb4f6e9e77ee45c318100affc37b4c4fb8bd54ca90c7acaa618a756151e22360e54fbef451f38132f22541fe0116f0a7f791e3c41d70a41240ca6ea7f1bd9ff0ebfeb3b976311744b12d1fbca5fbc252922761f48a6bbfbbeb7d8782eeb8fdf71272273e912a5ac098d07dc0f0b3d23eb289771f47adbcabfb9108039324f90b64a0553ed8079168482bfe99f3545e4d05e1dc5f1c22a52253023324b59deac3ff058a3e31115278e00b3b2bfffb0d53ebdf3c4a28870b9fd63b442c8031cd89d90a0d2cf76cb037a1deac99d75efc2f96bc332451256df30be07f4c5cac10b790e250472b4ade3823a4ee0c63034efa5b10ee0508284b7cfc2d2d7fbb1df10d93941552ec7e3429b79bf9aa941293262a11275eb22a95f472124237e266bd3ee11c81c646aa956fa704bfb3385a921706fcb6b139bcf312e0f465020c1d735a7cd6833e661ee83752ca6c81aa10e0e1f8ee842b916db99a7a1eee1b9a2ff53430ffdcfb097df25bf46e792884752ae8f8fbf887b6427ba117173ff62e10c4b4b8c85b8f1f173abc9acb89f22ae1e558d326925e92ff818f3f13cf7d70bfb8701bb3ea05dc63e7d44c1e75a854adbda6e836dde30d8aad80d078757762f55b22914907fde37c02d93f6c85614a5c6ba13608f46c08f0daa5d5db5c9b6562ed88da4377f8e918b12522a8752921bbbce06d974614aa837b603717450f19b1ce72449809f0d8925d14aedddcf3ec6bbe9abc2464f5b63b1b064ca660c984271600de0f499dd449955c087a8fd5fdea13ffeb8c1799fef56d426d17bed8bcdd8734c70a68ec616a4701164d959983f49141cec7a41d6968a6f9cd26f9bfe1875d38347a3c4cc0cd4efb8e119d63c0b1438d38de57b896680df65feb0094068fce554f741e449a871a4f86eed838ca486c32c36761e0b0005149aa8d4383ed8e8b8635a47b2ce4d0604bde3ca29e3e23aac4c4c7757924723c23429aec53d5238f607516ed62d3086a527889c56ea6aecb138fa0b9fa64a5f83825b8eca4a379acb1ade2386194803dc05681ff6aa397fdf9c0c646a666f252cd0bda0b8093c3dbb0d3e1cc8487ebf6ce10faad1c345abf88715437e50ac6e59ae3569ec6e9ad9d6f257cbcb02da5404e751be6e2b1f13ca2ca5c88c888f45d32fcf2522d0f607284151ae745540df86c081adce6305107893d96ae6e85af9c85674857794b47e4bc689358d7ff11590d178175a3b866bbece98649e865a735c191e3fa52b83ebb62a275b9902a093943da53f33bb0a6c39ed7e46d8f2a4abd66b676491119ee676456bd635f76ab184209adb6dc268c1b6708ceb4c8d79bf9574e56720da20da5d43e7238925b10bdd2ff0c2edadf0733355f139a94452f9aa789b3df7d454cfa5d31aa3288fcea1e8dfce527f81182fc77e3f52cb09332303a56ff89f5e832c9db9ab03fe8dda02dbecd5f723069e8aa07627afafe0bfa4e6a1909af3d1621f2193ea213dd88dd66a4b3cf459d12072836ba7fc8d704522ee7ed3cb1601ed54173c6e00e25eca7581b7c7cd7e17afd1b4ad36014cf4c3711fb349ee933e80ca75614201c1b890525ca2fa78e5d493a41a94ebd04a0dcd21318044ce650dbc7568914fa45e840c8cf8c801860f32f7e3430521533a07bf609eabeab99b01a4cb61cfd7b18db09e6c7bf9bb97b1d19686e253144a07de514b45af695cf0f4488f09ac138ce202bf0c1f0a5f5d57db717872992052216f98fd61c5910869ed36127d312e0d89b29772356074e450531440d415dd33dae8b1308ef1a73fe675e2bc1722c4409786f3c72ba63968c2da5b4bc868d0c3b7876ddc9c2b9542670706643125d6c560f7322ca1607b40e22840593bf02ab250f4cac7f769be025314b326b8992fa8550faa9cbc5035062c386f08ee4bab82b7eb13f9f3d9e4b31fa655b51f1d07444a820321f6b290e4cdf06f1728e206782af0c93de51c96198ea75244a77d828f3c0025b2c9f0fcc700c1e704193d8a9002c8567edebdb828780586bd4c29d142348bc33aedc3218bebfbc0524f2a566e87ada9872f0dea7060e0e404d9ccb32c29f4ce50ba44cbe70d1cb0cb763f65679c93b7a9b2292e17542fc028734eea7defd438a41101e413c5cfd7b1bb5b22f27813783976d3e507575b1c77499e0dc5a86e3a158f813f990b58adfa3d497b3de41dd13a1245be8e2952db660f511e513e10e7a62044d109e9fb5cc81a12e24f062c169a41face3110639c955c9374a130b1017c5542d5ebe9ef58a6964bc2c6958fb121fd534df230288ac1cfbf436f0694185475c4724ac04009588360f258e0b6ab67dd4950d15983919d7e33c1bc53dbfa7e59e1de258a5766f930c56f27dfb8bcd325807fc491205e5032de576593f9014c3dbf27d35912a63b27dc3b5fa3a78204df24194f0db9c84ba3fe5c62d9b4e35826a1898de814d5e8342658d8e1c889860f54c7fbb3470e720bbfda7a30f902cda0b52489d4e3f33a0bc7533fccb6e0cdaaffc0d6754858eea665233fea1ef3652c2d4e8d6560b516be7352e311f80803edb22e636f40382281334b90cd90af1da07e2cd4509bf0ac981d917b0373d393de87db9614eb786d00c71c52c8c53d77c3bc1ef8a9bde6fed6bb8a327c21623900c25e08760b05727cb03bcc6f0370e1701c27b5e8e6c96c46252057883605c58e473c1ab366cac6b8641d1949301033a36345c0ccbd29fba6e751c1b40d1819c282f9cabd3d25c9c95a662dd3ad4c73bab19eca7f1553642010f44227c23dc9600e62e76509b0564d9a2f851ac3e18c846986c7f1053089c4c5a2a2bcc29fc22cdda20ea47ecf3ad9d04d4815af97a96124a07ac128e0b25fdb6b6026f2d64321a7a8ce0c42be7c92c8c113a847b7d87b6b590bb9047252c400637d12ad8dfb5b8896acf86bed06957ae9aa53dc8d97a946769cc59f84e33fd417580ee9c4e8f55a8d3af754a985cfd4497af501a3b2874fe6af37a2d9cc880f1f94a80315c6cca3d16d7ef7781c5d8491946761f94c64e2ca4cb8a2fbdbb8880d238c97561348b7adaf839268fb9ebe1a635137ce08767d20e43e63ef63910c20a14bd5198070690f5d9f92ab6d9fc6583f04b313a370e98e7d6dd6d1a6712fff4f175085af614f5ced42e0457d4edc295c279b971d8522a50bf246f45102f0c6f171966bb31ab8503c6c181d6243f47e7f637d79ddb87f15fc9305d1d2b029aa66c58f0ad298b3b9d51382c1e45e3c42b821a92366cf4a46920726d30e035b998364f441ab0f404174f2afb845c8631cc99c32fe470cb260de33464c7293f60d86999de5bb6f4fa6760f14853d25f798759f88e4d0a9c3709565c54b87f05c38e0539fe399a62807d48cb73f7898bf56f21e120e9d2194a955e3b13f281bb1e1c6e5f15e4a8f87232271ae95725d181e078012660061a93394b40d24411e2b8c64c13bdce0e7a8d60487d7ff786bf19ab287da4887fe0426fffb37d3a5c0f29f589e8d25a691c4209597316c3f8e01a4383c6d6f1a196cd457157fece3a81acea6bb98e263c02293dfbaef49a9a5caea0bcafe146a08d7d5463e6d5940bbe20986b2cd83d9df32d9e2837ef2e0aa729f2001249daf924f8784a74dc2db955c81305a80f03506ec2dfea9fe8b928dbbc851980406c7c57482708d757551aa5279ad527f68231757688371af5482f90af33dae7f8a22048eed5dea5013cf3196a4a0a7bf9aeb103b1ac09c0df5f9879c81e8ce0a1c786a12840249864b1bb07e98bf3275a3a5471f708c461cce6e8299f4196f18e81e4bc4c81a9c140e8ff623031deecf037795cc5d86f719020c562875f6b3e53be2b1efc96574230c7ff0632e71b808897b9e4a4452fc4d739f65da69a233f08773483f82cdfd58d4e983d8efc57770eab510848b99fd3375115c8377e6fcf665353ffb0fae2ee1739a65c20a4438608d7a8a8691032daeaef82f628f68b3236f9d4036b61cedd569816b2311ef022683e2f0452393722bf43f026f592523a0cd056bda47dd70f0deb2511ad6e628ac666049ac384e6f7bd832e29a406cd56a67a3d407cf39231a8c45d39f8c56debae37446b720649c696612bc4522f446be4d4f9ed9f74aed7d882c29327ba70ef5e86e82acea22a0f7c3f3dc8c8891ad53be3d4e539316dfb9791d074604cac094c26103968eccb67d1e06ed947299bf55be1195a6cf5952843ea525d3fec49cb8b0fd44dba07ee0af7a8547067a39cd8cfa8c5b5dd11e5c2baa16989d22692f5fe728bf864e49a294b0d1a85eefc3661677d5b225f9eb1b94eb48d9de05198f1adc06e71b113860c30020d662c53b7697b39b15ca25545d4a60e5a9d87378c6f015e3d70a1ffa4e643c8e852dca007dc2c060250a0890cb0aa291f49e97bb74e59a0a3c42e4ce8884495cd6cf7a379012668db531155d3a84e706dbf33e5ed5221cdd1ec12be8c9a51e48451b3690a625eca7c55b77750d331df13ff7074542134bfc581d47a68d58d156e425edeaef011c65908aeb9af58d4fee7f717e29091376fe1a8fd3638cff02a8600d0feec95dc16a6f758df6ebf2454d3c72985a17174b868a218b168b52c36fe7f1f0a992483d886b4c9304de0231df356c6c9fa9a353acb455443b26833ca4f978428b6db0c0790f61abc5941c8dbe2a6394d3774dc6fe1d07388ef4b67fceefce2832cb5975305af0ea0e8dd3ad3836cd2385260d4aeb8211f349b52589bcc108656a6d3e337314c6f1e204ebf12e0adacce0d707387d6beeb4e3855810567a395d30c1791af92b49322f9c1c9d3ce1365b689b3e250f2fa6667d11600847515333abfa1238e956af046a9b85d11f575614451d055ce012714c7ca7a1e575d23d30cdfb4e7d67a60fc8c85552c7d64325dd048e0180fbdf50661e43f0eddc124db337f13b252e49545f1bac18480209614d3b10839766e0df6b60f15831e0049bfc3b1e6a4f87a36c0c224a95e1599c9c1b2ed91ccba5e0505e953c867eb098c57f2613d1fb594a85e08ad41fbdcc9fd39bb7fdbac31336680e914aaad7c79fff90b573c648ef282539fcd275d1d0f1927089062fd11e122da96f6bf6458ccf2f5424af20ee6164cf960a03e775313a29b02277a94571aab5bc01ca1cc62c88394e6c032ae8cf5e8cbe856a3d92088d50f45ce4e1f0c02305f14d2b59ce3387271ac28a03a49da1af1fbb4ce90c30b45ed85da61db1679c83a26df00c9491b683e184411b0d8b1a7ce1d859f1bf4673cd61575d4a75957e873d3a057561b3212a51bbc30aefa5933b9b36572e2ff66e30e007b92e9bb1ae93f4cd7f53c9035d454262a42051e8c031fed6c6a64ab599b5b233a29573efdf44eda844906c97b3e42a1c4dadf669c95b3be739ec938813ed183e902143eb66d39d3eb470acc4bfb12a607b626ce65356cc2a8f5fcaa382bbe1501fecb084bf3411a0b5e5b1768e47352155746bc21c360b356164b29e5e8ab61894fb39d02a63d53edfa05952c110ce3b18a6ba1d21efb41e62ccab407df86919fbddb939ebcacdc9e1ccb6dd520256f8f9075661e3b086c55550a168618c7527524e9375eb90283e40dd33b41512a6a49f4f8128286a558025eafaabb817f8361f73c3cab45d99cec08cbfd4384f08a7a9ed8356fb9a539b4081789935cf1cfe5eb2a84de36a0158c1333ba465fd4e0ec2dd0afe1b9d20c329d4188f072b58c546598730d2fc734003dac1d1426be39dc1b98fa113b87fde7ed24037166a116de0fb050b71b42d764e66ca6b85f94ac8b3e866f1c0a82e5292793d8ad4f5495997f5a12cb3d25ec6fb4e264f6629156117ad6fd81023c175a40c12e22927ef303d9dcb94d9dbeba388b3fa84e7d7a04ccad28b6a250f656cf4484967271544b2bf0c80a0a244c75b216224306f06a7a121ab2436d472483be67b460e466eb680aba05aada28099d431d776bac0ee22ba6f66ca14627ee6ecd22c6f3fc2d227f0374b59617d01d5ee7a72ba0cfa82190b03896319fba673822286145dae33bf6c82820b557ba0ca348362c28670ec28dbad559bee89013a9797816646618c72c142433f992e1ea091474fb34613d09e0bcf55566861f17ba4d16f020c1739b393afe71887c8b728e71124e88c1694cfbb046f339ee0b349327dae9cb8f694144fc0986bde1aadd92679c967f51b0a0403eca694f8c414ffc0afa88a3aab1b2a32a132297f427d3a8411fd0614c1d3a4781b2b583f4beec088205a1a6c8374fb4f637bc8702dbbe4d6a065aa9dcd5bb1b3fbe500519be8dd1fa9876d72ab0ca5f287a8cee695e89364b9a24ea883081ccd0709ff4646e61102b07412a241824fdc681c9998fe74085db512e1d4084a5d029fe025bf994c1d5873e1ebfd3677367c801b6761bc8161e3d3becafe0f435367da1483333bb803f67485b3496e0ac71c44455a51d85f54601715bacf95c9ed71aaf36b5ddd45c95e86dacddb9f41597d3d36f3cf6dc42a2c1001e33d06e9b8e3ac623dfe2ade676cccdc68f0928a36519716f2b694d26c7f14d149cb7453db35480439a2a53bea4a21318532edab20f52b9e13edca8398a620470fb8e3c9c5bd737bc5098926738c3250d89f984f0088ac6c4ce61c657c94594efdae3b6a3c8ac02b60eff847ed8c4ec99fe2a927e65605f05b5496237952a1d81960690789ec7de7ccc07d19f136a34a055245df5ddee97650d898f2ab3c2e9ce8bd38355c9439ecaa66e7ba35d0ce846b171081b74f78c73f3f0dc6f13063a3aca4581189601a127c733865d7089905a183210f771c1aa8fe804038057598e448da810400576dc75c140f40fcc7075442b511e78fc4b6afcf297d7b08e0f9d3f1a3faf3931315817a3742af5a8abf78218a4617ba9f8ad7303ba82051c055e9ea77aede02703c94f8d8fe8bb67586126f0795364ce4b77ad6decf390329c712d2f3117f5f59eda354dfacdaafd7369ca9a5ef054614e7f19589d4dc8a77f153f1d521f77e6cb251eacb7830ec7f374e9bd2736f8568be36591417d82b6ed1de3b6bd3ed8f8e247e191a3b9dd6dd32e30335e908dcc33ea34f193947a4b0da279e6dfcc0b74a1462783e4e602aba55da0f3c1ced86c8f20b1fd952647f12acf0b72806e32d40f8746c9cf9cc582c5ddf48955a803887328708e6096a43f55e44b0081b54dd9ceff58fbb74b334eee9ec601e0dd5871363e9554edcf73f5ea05f03dac65c8c051d2d65a28ba9e3b39453910682f0796fee3c691f63b6ba3587696c8c4936ed7583d9ba878b5fab4806027373e69d35dd1c3d6d986d54968ba10d2f2af6208c8279b9b0b0df1d9868ea9869f327fb598066d9d3da49a9933e45c2354466373f03ca77343ae403bb68676968f9f223ae5d93731b6d0d05441ddb6342facb349d2d077b1c362d45d66354b1c3a6b8fb02a8642a591d7719842e5659960a9e2c24ad468f627cee9054402e537ec49830bed83868e09593ea34160d285a275cbb9dd80e7b56fc936f517dc8f19274767314b390bec440c925fa0ddbe2ea143871a8c8b7b2c971d2e438ece11cd3c9515b23e2a7a8b7f24a42d7d875ae8c7a3ed17047c702284e45436ef181890e440e6b46a952f400715c5699915f5994a37f15e65abc20ad2a0ff46cefc06aa95e2154d8a322cf4f156ab47b6b9e850f7c3a16b38095d705fdb2056bf8e49e0d1dc2f5c7df9b1616120fed21d032c5a945449e9af294ff1426db42d2e7939545cdd1dec56d86129a82f0cd7e08c97e76b87b044abb3e8e9933e69fc39e603de0d1a0f135a693d6df900aa188fc1648823b5efe00c41241a26204c9be3639d2830eac732445043f533887c7971798b9acdfffd5a77cd8994d6efbeb0d31698df85d1226076e1b115839cbc927b2d77d4ff6cf9f5bcc37427dbaf5adba3d89a516ebd0afe09384187171672c2886b571caf8fae8cf18000d75a984835c037cbec110d00ca5f0587394bb24d3780f1a618052ac29ae132e6367031bfa7facf22e1019f78a8d4a80ca043f0ed2a0a62e5444dd6f184ca4adc81d8f5f369bf2c2785465149f0b8614c9099de1d879ae487c677c775546e5b337d5eff3cd8caba598c3a2be9be8e8b7d479f6138de94d5394473038601b601be8dcdeba3f6419dc2ea19fb522319b519404761a12ea8b447ec83e6fce0a17b5d1213314ede26217c59db0650fdb1593ea61cd6c39da15ad9275d977a7e8a26566b08f47255d24a59cd3dd0fec2857cf5d6e510660033177dd40e5f124ef849c137467191ea0e8bc60b308087f634eff261d9c0c198be68f26c5c1073e05bfb926d91e8c54b2b2f88587ff85debbfeb66955e115c9b1972bab2e0c27eebba0de07fcc31c565542274602051b7a63270a3a95579a3e3fcc0e9b3fdc7742ec3ffd6e903b0ae269565e465decf7cc509e862382cd224b596d4fd99138f9d542e41940a9f77a83192b5ae9a98fd8b1ecbf97872a4feac4167fcc2fddb85b835e2de05255d1d4333ccad2802214bf66544847e5e511f8a5c336458656aabee41c555d78b5559076311a16ab4d9408950bc106964909e485b5f56313c55a036f1294d6163fc7a113df7aef7fd5335bc058901c63995844ff3eb1d19173861aff782edb57f710960dfdea85e36739e3ed577340f57ae22f63cfc52e765455eee96bed8db70b5f0086d1f4e98aefe6a34b39c914eedb597ff65244ed01bc5ce137330655262452a9bec8fd7cb2482069e950e0c1d977c23c4ff52bb6edc593399333f47774e3129281829878991ab8d273e3bf74e63d64d18b1e8572975b29e08f30d3aa39ef8b457c10e277110894895934f5210856312f65e0d2b524365934d1f8c93d64ef16f260cc1d6bb9588fb38fe8222db84b12e167bb39d3b8f0680e74bfd64d87afa5136857b19a3db7889445ebd9107b81b1118016f3f6ce905c2646bdd9c2cd656f95c92d5119d0c04e09b4baf568257726e07536363ae198a6d85af0475adeb20190512321cf9a2194754784334ae420ece1ce21b42240f5945dd8311d3d0b15c6ca06e0064eb5d6b9ceecb1ab2d93a8e367b733362e31f7a51eb99ba024d00dd63385038499a5691653e2f3b7e61ced6c8356b3511617cb6a34686051140d139c98dff7aa8ed4b3fc8e5e194d300bb0a0195b7ab61e154b742af6e2f31eff3e383e104e2ecc6f54278bc8b37c1218c65b56c07c620f3ff6c352b52de3c396e4acbdb814f663ccf11417fd94ab7b9b6e8153039dceb56ad850caaf99efcaa1936234a2654f37de936a8ba62df22f10a8ecdb54db27536c4a3f55cbdd35ff282b1d7c385b4db36349fe66bca7cb9108ec7e602260a9c63c87f42213cde4f532466cae048fb6c06d5a8e3d6fc6585d47970a5b937549bbbffee5a77498c029a36e37de83a6c2189a0bc2c23f43187a71da475a854c9461a2beac4f228148b9220209d9b4e4f556d69ece8e69f1d331531414fba3c5bd11a4cc5eef7669a4ff8b5bebd545c55b44f5e1ffc5de951cc5d3cc14ea1acb355f538561dde127a5188c12fa7c65ad109a1130d8925d09f0f81e33ce0e83d184b51fec7dcbefd7767a500fb47c3d0023ebf3b1e36a2b96000446ad4ae48eb33e7bbb9c49886d0739587853d0a91548220ee032eb6185c325a215ab2b84edcffe46f280e199417d9baee47b55d49752f0b4574f4f53a5332b27d9198211fef8b1967901d65de7e468f98d7fc6580fb82024e189b220af85d2066fcba3513fef00b8b067c690147dae67b786f58fc25c400c5d1c0c2520ddda91185d7c33a39febbb984169c5e8c1b836a9846f991e42172614e832532087a8493970261602b19ca521c145933413c0dbc99b6e74b5dca38e46ded63226814ec815c795056ae2572c2d06cc143aafaecc6dea3dac84ba1c793101744b0e5ad59bec14c7f58dc44ad8bc197cb477f2a682e311d9c355b2eea3bcfb0f33ac5b87767908f31d208aa96f76e28ac7bf7576306560fbe1508b5d62eaa2b99dd97145aed65b0b6b8cfa37fbc9dc34a4d020243628f7747ea5b0fa85c936b44918aeac077a8f6b392a88eef88f0fb960ee0a4e0ff9a68182c67f5f2fcc7c45cf054735f1691380fb3f8ff6ce65db1313781a20cc5ca475eaad2401ef343c90888ff0297641dd82dd35aa1b25475d4c48e4263a34ffb9c2595555f4e795e9c2e8c74660af84e6e8f669256b40f9f8721f50875ad014880f325a03964cfd99b6225982bf96eb51160470d04ae65f51c9c036333f1440b06e7d3da0a96a65472e68fae3c94d411d2df3d047accadb6a2b237b15a6f6da859fb8083f32ea2283c95541fb82e139ce43c07febdba8637411969c264b124a67cecc0474f927fe8224c2d5bcc1b28a93ac0d6c251341a3d53572a1dfeeccc4a69c483bac847f27a0d67ebaaeaad3db0a3fa1ce6374713c80120a645ac77d157e7f9dfd16a1c27870094a4574e81c6aaadc196e31c5ec494eb452d45ecc9d34e6f7bfda3414acea42c04026266b269a6f17ae0926f8af06910edf73162d99e9502fd81064d5bd318a5567a2b10389d3eb69ed907eb6edbc71d8106b3ddeb9eb67c147bc0b77d3b24bed39f9f384b7a9b2ca607f23e0fd49a791b11f3c83c7da97c9092704b3255a5f73420e461446dd44917a95d45b54702b1547791f2834eaab4902ed2cca159b78c391c141c657e1ad70a84bca15a31eb4c052d9eab2f5ff0f336d1fd58ba903b0a5eba9ff03e90845319258830f6362ca0e0d68eb2118c9ac8dabd3f8666bea29d8d501a58758406c727189db3cb418f343532ce1604e486d5593e91e7b6b7cecdfea00514a72f3bf23e1578c73c405471735e9da9c697b56a8eea6f239586a19c7090939e4abf0ac9d52126241cf6ab2a3c230886cfac5f0479893a2201c2e427b2290fc11a08190f057078d4bbbde9e246f20148c753facf197250a51cc3b133d369f2587fba9fac4c84b0cc802bbb95e62ddc0554f22ea4e12527a97820d2fced949cf6f7d051004456c562f18cb7e41b550648fc8715fc212c1f51b2764c4b285a12f8a6091c85353bb6ea1422b1c3b307c9a5fbec6c749c07413b37ff96d7a28aa67622f51b0dcd730ed68738b3810d6fb4c157762b1a6d403ba5d7095ef8086d0043920b4b68b836aa8582809d1767e2d6ac6e92db5aae7c32dde51ec476170c424ceacffce30570034dc10185af1d6ed7446bab546ce4be2cc0ca6a570df373383fbf843847403ba9e87c29a0667e74296be61a12802eb12ea5a4f502bf5b3310415a93ec7efc0a277b061454626d6d4174cd5273cdbbc67eb74f53a601f535370f605d601bb8e106813b65a7a2cb3a058e261e485c3fb47c217c7c50f7fd94039cdabd943bb10a08286a2182fb3a08168c694b461b1c58b2537acbc2643d6f4e8026cc5fb073361e3d8062abb9eb9c22541336df217122a5254375742e30230d60892a05130c0c789875b3ea182e054fe415e9769f45a55a06b807fdaa382c73eea2aac55e9e128ea7282a5b06ea867c3d446313910182baa8671d89c9f6364e93f64427f88e6e297ef25ca15306040974086cca602a7942f6105493afe943b32c72ad2a87899e10e23a3f7d60f41f7588f38ab6122ac5dcb154bca32add1e340129fe0fca8a022676b6fbdffc6a20ebb43c7b1938215b14af31c1e5c671754bd2f0700588837d87a1404aa53400f5745f0bf15d03cbc46bd56e20bdd3d16f78252ce53e5e2ba339155ce81170842585665747f587abe8d0a97c72041bc4d93b4ed7304e5f64dcdcd960be4311b95f6c1a44378548f156a6d4770ce2d04f7d56b6edf8b007adae472212e9d2029d88cb617683b953164c1ae31126bcd3d9dd7668579824a30b8a431510f035d4d65151224c83ef63c5b9bf494fd762e401c95c490f4ac3687bd09f6b2b50bdc7938238edaafa729610f46c12c2d0020090780e3a955c00a74f76e9e991e5d5ae4828af7b124ea4c4817639e77251fe5765ae584e674b1ae12f7e83147a69c61c659ac6abe1a520d3bc6509674e147cd7b965bd7eba2a11366c1531301dd019ad87bc51d39ce7154c3f94629c9abc174fbbb6aba6b0098fa1ac8d1139044a87da492cc7f7e381fb0369824568bf3af57f89ae743c4c91abd5916bd25863c47b7f21d0617117cfc115c00eca01ec8b6f6028cabb5f715adfbab26e89042a500b24358c603f1e4a1c4e4e20598c8c3eeffea8bd0f8d62c891ba7740b8bf7e4476764ab973ce66b0c32be241f48f27a95bca3d1527ce142d8878c0bcd6442119f1cc7b3b6057cc9c125defb2b747a39f0c7194ddc5f03890adc82c6e913333a0adf1a9d0d283aec91c746b2af76137bb740661b22e159ec59ffe7b667ae719be7062de8a06223060dd3b554500835a07a16ce4a478e5380c88e28cc0ad2774a085d6c884a6433322004663a221d1d861e4d1c84e546feb62342d660dd0d4c4597b08aa9140850dedd9461e8e49f6c5d6072ed137e26a88de4ceb5e35e034c8c3e30b91b578c4d47e87c690452385a7c1453c21f2d011680d6ef5f37ca91b1791f2e9cd0563a4a6c8531ac784268cd741c326e47b71e47f30b0c0412209442c6fd84dc7165428ee30d5246c17c8ffaf2efe1f9a0df552bb3ae95abcce6cecb784c4e81cac7715c9d4ec3b2e8565b9b20899440f42bb95798d4a70408c8c5bedb918317eb03402b5ba35e5163a28e9985feb71115a1003ef1069394228d14d70618a649ed120b08fdb4fa9649de556c2c2c4941e232806fef7ad0151d0c9fa0c6074927550a21ea10cdb44401ac400211d98ddebe7ff5617c334227183a9c2a5dda03fb4c4fc4b21a05aeb038ffa028cd11d380681968063c223f82fac6399199a7fb072fa41d0db12ee99dc9f1723eb4b61a0867eecb1d4bc3d589536ea2aeb548a242fca8d912e2a8443f06279a806df39f4755109e3513a72e8b0d1c22d8b76d426bec434d0bdc284958f9eeff0c45d1b9136eb28a1b789dbb3aab5550fad0a68c27b98845709283673f1462dbbbae324830b6e4db38d8f916c50b1d697630dc6af4298e26b025ef88c56b2caa806c5c8256609f8ace0e07f18e35a36dabc53a006033628d278deb58946b28a54c1b90e61e12781169c27fc6348ca74b074c814e868e73218b702d6784776ad663c3dbb777ceebff3724f6e95077703e30ffc479c22cf0f297fe3c5bbfe285a99741dceb72f62ed926c541edbf1dcf674ceebb011d6357fe29a034d6e456f92e99c5de59d66aa319234ab2023c404c7f3c5b82617866fd2be8da834051404b9feb5bf95b81c8caaf552673f41c6206170b61eb69cfc8453d6cb7360734486c2621f17257ea4cb72b0552d8067eaa35ace7cf0160d8874191b8c5deae470e5f33fded98e5c017ec817ed36aa7545ef1e5739517303fb9628b87136b9e602df81860716582e1421d27a3fea94285a4bcec9e841a8d9513cf7d181b8fa71c032aebc82e58be3b24da3df573ab31024d4e0cddf8c870514844615218af1a4dab2873189b77c6eefefb4faf83821b2e19763b51ceb03709a4b94c1a715ba7c0655fb8b5f0eeffbc0edf59a39290c64cdb4339add5d0dfee39441acab5d82162cd8c2b44aa2f7f1d61cd056ea1dd12e2a14edceb1cc2cb0a01ba49304abdf02a3f0ef091a2d55119a12c46c30b9940efe6565a360746216793668c042e961d8d18e211ef190a766b6fbbd3e34f28bf5ac457b427d82e2e06a2ca7ef202877b032c528c0b072fccf9d47814003c17f11a6fb605dee1223bb9326a424b46c20e2941ee3e5fb0229f0d2adb1d7cd5fed0d1ef517f13f14aa8fc0a5eada639b41ed11ece506ec7f2cdc1f01bb5043b6d848e1c6d4ab90263666e115017eef34dd2e9a5f2220e6eeaf6e0e036c85fabbfa1cd7f2b0dfd20e2ffad06ff38f5e18905e9a540cf95316aa69e4ead59ce9268f19647b053ea9d8c70d184aff7a2991af53d80f6bd9c7d9ee5a808a2ff07eb06d4a387cd4f376b08c24fb0b78c2e2494e3d095ced0ed552a423eed35e66c10f74cf2659d132cbfe09538b4c4b6085bc56c1318a5500a9efbe89defe6b4618700cbbba96f5884adf51323f104b44adbe39ba9974028d472aa8962a9a47fa410cd7157537c11676105838f61347d1ae518ac7a431f110bd28860026de997fd5c626b56169df06396ea86958ed4fa30c56ee7656c88d98ad541355e1c485aca0334ac833f0f37784ea596aeefa58568518423fc3de9fd6fad2b7e8e1efd1bc89278ab3ccb122013653467dca6dc9ef4a5e43b3e0f4618b5f745aa18e9f162e4e4ef62d14c27fc7f443725f9ae00d15f91c11a3860f7219471fda33c12adc0447ded50662ee53c57a631c2312f9095de63692cae441024a4cef2414376b623e783cd30b5a63308f6dce5c6991303099a52ca5a4d2e0f2c46cea1063b9466d80b408bb873685e0e77961788952492473c227fbcf777fe9173a4e9366c272d256848588ff12aad3fff64ca50e45d5053d4c60227cc5f4d672792d6e8d7379da051484b83937b820f44e704fa4efaf2a023d4e1d679b82633203e1c9679cae0ffaf3509203b6b4e248937c0868caee391828de0b7f7091781eee4785310df7ebe6c2507b3a3731768cdb147a91dcdfeb0d77ed77f349e99a0c619513f2cc13315052d2b90abd9c8127910a0676f6dc736ca437c3b5af3142d8ce3f7f121ba186fbc56c62129ea81992b23f20dee7cf3e60e9630b9f2eb24abe2a6323262a7186528a288e241034121479328e684fa4176a27e7d873676f66ce466938e0737e166a776f230527ecbcbb825dc69f29d124e39b3b1f14b587b4dcb20c6d354f2c60b06901a5daac173192c0ba1cfa3dda8d5480688dd16e1355eb059287628aa8dcfd8fd0ec831905a91eda0643ba535c519e83a1471643c422ac1088f79b40d653c5d4aa22e0c447eeaa104021abe62ecea694560dae4e4d2027ccdd510a79e375a0c444bfcf05ae68c3efd6452921190a7fb9c695b60c6104bc61bdfb08fe9af0039c5af9265695f1697cf5028b3d12f23a65dcebd13dfb3a9b81744490ba163b139ff8794f83decdb357decf40130c8050edf5750c8a4100f3630e9b3a88138c41352ee4cb4d1a15525354fb4ce377443beacc7b0a1d510af29a6a856f30a5253356cccc0e2ee9fd685e37acf04d003f572082ad8e53329caa832bc047c02f8c2cf841b6ae3b95034a41ee468c6b1fea845b25079ea0b72581e70d7b2ca25d8b4e2783696e7faae82428e2b531cf69457f189b390df400cd1dffb7fad403854a1235198c26f2e9673b2c6b9906fbe38642b7d21b6ed8d48c38dfd9df5a6630b5c83e6485691783363bda965d9eed71707407079d34cf4466e6520911d91a0af3f99ce1e9568052985cf16733976662539c65eb4671a2f9850bb9cd6bb81c19542c60c60a38f929dce2e48a364283b876201d91106305502e9e02cc73d2114f7c4ae475f793887a01c3f54f27baf09e5353128b11c4681da57a4c09071104446ce84bbbe4298dea19a8fcb28a17e1ab3954498c80b4959aeb2e9c2e442e4636e4eb141cd50f95dee9a020845d3856a028efd1034f2b8c06e8ebdae92c62abbecba908d1ed0cd0d4b5de5993563e28a77859e8a2e5f99dfd4bc64f7a4c9dd5fab8dbd865bc549ea04a21807b19af9cff45ef11599b5be4fc99ab4a5458bdf62babe710dfa7f8d07acf3b54508b8278cec39fc7d3500bca0f5357a51881014d5dc9ce1d55e2fd2625ef195c9d10c0997a5a9e5003fbd6cc681577c55333b91de98f761bcc4f5fef12a2548008c4d956344b1f59b15e02aa8d6ea55772e916d47a016b804be5c3fa8e9bd37d75cd80316db53468cd1b02c613bd4c85289357667bfb2a77060bddc0087192afc13cbadf4a76e725392b3c809bd9a4922cbfbcd5b494945a2ee68b31659a62a3d48a195111ac4868e7039f075cbe77275a566aee028e73fa007a4f56cccf5dfac577c4a84076e884a56ec18155c3dc8e57395504160e2cbd86d27763709d7084d181bfbe2765c9451d64bc7c10fabb8a1e326c542bcbb1903ccedb39c63d0355fd10ea173e939d2989c2d0c45c23562d6e59ace68a70132ae1d9ae499c328a964c28837565c4551e1480942ee989dc1c11ea57c2cbb528309d74b93e689cf42e3b1ed40cc14f3f38b1cad0972105b32bc0ffff0cd52e3b5bee5c24a0cdd852f81eebf22f0de6d9b80fea8bf9d19528a7d6f9719810cc5bd1d5765aa9e57e87c34621ec33d42976310943ec4b2c4a666233e12d8836373431c8eafbe91a365c4420cfd822e45fcc39ce0b11484807d58780c5822c307c0302a2540daed86602d82f0938d45a6bc4f019aba492861cefa1c247b412d49c9048190309673d1036719ba1211d9ab2aa11c72d9525f9046cae48804c5ee7b8d6a2ed82bb77c657a1af2476b08fd67c9b66c28eb6fafa076a5b29299559d2ba8716b19f661367af23556a11788e90bd448456c84be1f8990f5d1a3ae9615e7c632bfb78342a06f59ebaf622e38f393e6d24429e18dabc156dea0c86ad716cd58cd0d22f2517917b5c419344ed24855668b9fea9e23ae89dc2aa2e6d2d09167b3caf989098bd1fa49b057700ccae3d783f9619eea3534d23cdaef486d14017017d3dda2794af736d869c2f34b9a1e6833209ed0b28ea4aaa802fc3c6d26f6a082b1604abe694b151474cbb15fb5a7a2074e3fad35bdcc8e3d9f0521596d4309f3082a8ce82c858fb6f9c11526a369ccfa266165ce1d026a1d8be0aab1bd452530b9de3fa7ca8e22e58b672c4bca72b04a1c75ce317cadb7b29a083002a73570828c84aefd424b8160bfa5a564de306547a21454d1ff46869208335d1f499aaa400d926b98628e134d6f97c6fee5246a5c3f261f613d33c4d4f05df4aed6275c9cf2bffccb8689d49c173d145ab3274dba315cd0c98a5e36d09afb29fafc54b07fa9a61f2f010d77fcf945da7e737895c15f595b848177316c13ff6ae1c3980b929ada4eb81a6f54808b0a691f4c239d5b510e27245c56470ad39e7596ee402d0d1d8265ddf894c9052521cc17920e6d858836a27fbd3d8a55725a4075b5fa8e64e5f5a1621ecb0b6da8feacbe0125df55d8e3547c366a83c0bf681d8d0f3284d834cc09fedcb2b3231cb644b037fb018c11c2a6558bf67e99b6f74763fe070981c88eb7eb096e7e834a81cfb90570c478482b4e9770d14891a30d494ef260c3f51707c7ed300d7212b78da16ab956fb9e1357fe8bb89435db63f42957ff05e40dcb691cc2e6a079cf50bbcfb89c812b5dd172bd8ae02dbc2bd108da4a1c62681b17a0780b33543b1a013b0e3f2626b08c6035bd5ab442284111a8899fd4f8c58bfb629cdc7d3862a681658703e5f43baeab754416123e79fe5065e0b592c44cefbbbf94c742ad13482e95e594268cc3726b00874f1b0f1a7eb63182c77b5d9658b36b14eae2827c7ed2de5ec21b42dfd9885bc08cd98a667ef6fd5f16a59ec829a23973c8dcca04cad40bdbff90e1a5d3ff2b9d8302b2adf318cefb1e9d5d947a04ff321ac835848a3bc299f042e82515698356e1fd57aa9a51f0caf04d01fe1bee01c61dd369ff3c482233648224bff9524d6d33df8157a0ef9a7bc39cb55b538d6b4120965d209d3eb542a0f6a7d4b4f347735d74c471eb99ae2ebfc347d595ddfba0b98df35ce39f8215e0f3eb0ca3601f929808a90a43c9c255bc0d5fe3c3269cb8cee7ea7c675a697869bc4d4ac048753f7c3eeaed6085c82715905115224678baee9c39de99a0fa62f5ab3adec262ed32bef06b26c30190bd8ac68bab2619e976f4402db2888b63178608d438fcf51e4c9f3f7d2bf211b7c53499fe22e9567b81646c984a682d24a565cfa882071bf4c19e9d907c77db57e5b3f351ba6e602a87d03c8578e75d022243b14d50b3765cf920da0326c542b082c03ada40b172237ac14ea05fcf91e9abdf3bc7a9158234b41d839653ba8d2048cc457f822cebbda45124c7cf9c00e162d117f4d8d6e9190e89fe4f2b9750243bba4af66c24ac6c72f02f12c07348fc99f88e4e409ec94ad42db8112f84a241e77c3f4ba655712fd8c5f7b0cd1d5b7a45b5a2e5a490d1088202298163b4e6963cc2a3ce420c5a2c2dd6329c24ad7074fe2c176aafc1e3ddd48146c3d432d40de45c1c8e9a3ab376f42fbf2e7bc516b7c9a55e54f5f75be5677508bdc3402db1ae00f235227c17ab536cd239c8ed354d0a2dcba4f8f4f9fd7010493a6db5534f5441ec3a9a49cad89e682553ec00be925236d81db80ab060da24aa6d0cb7a22b9c50d3802ed15be8d3f2b6542b87dc752e4964d4998de3dcdc95c00479f03542d3e15b276fa36101282d85fef76096aa9d662de5b1edb568861daf33ff41ada7ae7761b37bd4089140f1acb13b71a1523df4acc2050dc379317d2b96c20ee2e4bd005b6bd615d079d19de0053eeeaac643baccc0accc147f85368c3f45bb8a7023517571c9f666c7c8f7066d63426ee5408b80a95a169505d49d93013220dd18eb56f25ed121f59a50329c64043bf2085759cba1fb65722163468cd90c648cd695e6207915730b5499e4ebb1b37fd779d90fc0ffa05bb0044763199a06601e25dd9b3e9084b733ff78e2910b788fe56d7e4be1c73a859ad0411938f1143e6857f1e249a37061d68cbea2f323af6bcd4b774aad346715aad414376dd22b68227f4b9f25da29038a5ab4b35007f37bd81c15118e3d082b50d53119786afa15a3153255bacd6af860bbf940906e1140ca8234001645c034a50267359309c55a5038d3c5fa222d40987dbf50913abed0841f29446750a566eeaadbfa7ea238f5d3831089170b6418d701004910d868d701b7f4f58c3d425bdb7fef4d347cdbc5b06e4d25b908d408d104224d97b6fb2a59452a69464bc06e106420724894d38992117f921b79603763396d7470cc6947689ff22840edd6a0f210d7cfaf3bb0c52ed55ed9259fa9166b6e369a9d31f494d46eedc2bca0b21fc3ba1635eb790c5ac08a4ef498f550ef5e8570ed53a99633d1a8d6c9aa3d12229c68edf4d22bd0fae81fdec6c48b6ebab4d0deb38314bd3afbdfc0e93764ac99fc998f5dcceb1ef71e5cba27d5dc6733b1bef6cfe6dba01f1b18fe9965c97ed5c97d26236d3e5b434f1b197dfd56418bb0ef131395d4ed8f215d8006dd664f04eabd29edf5bc75f204f66752e94f165a6c33564b623e5ce4e863d299e3e7e57f31d8c59fceea153fec9421f18e5679abc1af76ec72bb97865d4302b9d8b7109e48149b44bf41ec8e32fd0272b712a4b2ab7ee9cf427cfe93fa9d53219adcdbc5afc66cdd2c49f9a6466d6b9dc1c65f7f8f80b85f033f9f3f27736f36abf699f516d56ee419bc93af34732a318638c31f3c136480a4b8ca2849f9bddd3cbd7b905b8ef481641f74816432ec6449a1cd5eb25db5e7257c6452efe88e3df4adaf618e6a3d1c8a69da3a1f24d2fe7bb7c9fa393e9a76cd49f2c6ab6c9f44ee34fbf6dd776e2dcf4905bc7e3f6b3fd1897ddf6364d63fa1eb7b9ceefe831ac93cf45b7b3694da6e33beafa9a9e37cca6ad4d5fd95dd36e69e49bbe6d67e3b6db74906f327d73fe94ed66bb1c246b3cc8f9dcb73b9bee98a86a364edf96a6dff4a453eddf4cbe83973b1bdf341bf269a6ed5893739ad80edeedb17ed476ba3f2ee6dc6bbfcd45f94c9b0edb30fffa8d931fe353ca9fff206f14eb6ab2c953beffb4ddf4c1353af97734b29db4dde8d9b28ddfcdd2581e75cfb6f12b5ffee4ac8afee8dbdf5f209cdf35355907ef68dbb1c14fb3d98e351eb2cbcfb23ddcacb6e2777eb3ed328073e7639647ffa02633bae2a5f2d24e0357fe06ae7c29ffd21cb03bfbeac13812b5842c7c8a96dc2417c67d47b4883e3009efe91f9675b8c6bbf16374bc83bd3fc36bd3ddb4367de773d4e2e70ae0be235af45c4c66acd960089fbf6cfeb27d6fdceb15dad564d9a576646bb20bbfabc9a06b3668e463b6e3182a4b6a4de6836b5c96663e7cf7cb43bc32eeb00fb6813f6be80419e974861eef7c520e4927c61184a387238841e897c34c2ba294b9371a5d1763178d5042d873f93b87b9fee959462f1963942d8830ca8f178d50621af52b492d528b94d32fd3b2679a26b3c4f5f49a17d534190c8e4654464aa3bb53888db4a22a5d687425b7c4f5d329fd4b93a17123e29ad7c5dc75a98cccd14b999b97729323b1989357724bf8478aa4be25fe822df1d6edaf3caf069e337c2147e0a3440742081fdba1cb44a624f51dc122e8a61a04d893d112bdb0e9558c9fe14073e2099ec1fb62a4e38e381befa27eab18ebf449f70c9ecbe8e39f6845c0e9637ac5e4e33f93ef7a858b7c6af794f4103719c7d15e618f01eca30d1b0cf42adef42a6e231d7f7927d68e84e013031182399b08d32b13c7d2d2abf818186287773328aa535aabb34e85dddd3a153ef6de0d2e98e6e229dac3b44b248d4630fe1d4b8b85e95551acdbc8f20fc74560f7df2ef29528d35ce42f71b35866b1778b3ddb8e455b0036ca8868322817b31ca457f19f9603ca75cb8cf1f38d81f42a7e092a74aded255451ee3b8205910b71b8b005cab83005c63fc07d05b8af06ad53b9ef01003290cd0229ca2c177d110b8c9b9aa8ddfbb9b143bf23582871e3eb88ef875911d52f08888f6220fe422b9da96a8b807092a8f58038ec275ec09e8c8e427805e12fd7c36725ef067ef8ac85f7d23dfc850b9b880b3b041736111ba383437a3c15bbc844af1c0e893dbee23cfc8dd0a7933e439c352512b5833ed2a721f4814a00e18153e014a924a8feef1941c1c714952ffda2314629b3f854be94111a8135057c341ad9eefad7fd75c137a5f5c8d9c4fbde6b2d30a614c21863b4d0a9cf688132deca7bfadebb9ebe17f9d13e5f81d51d1261517e37e79cb2abc9a0f580bbc7f7de83f0bd07df839c09de7b0fbef7de7bf0bdf7de7bef3df81e8431079b01c3485a4b6b692dada56da161416b655f684a6c8185d7ab27e1bf7b83c3c220e42294e9215a165a4b53426b694a645f645f6845d9175a165a11db1338c1094ec8ae10238cf1bd54139ad0842d60cc1c238430527ed90f4e428d1913baf7de93344229af18e57cefbdf84388be36cd26e01a42f0b589d8755d578c16c2499de5d684072184451fb7ac0ee1bd1763ac813a32c608a1bfd2bf4a218430c6d8a54ab54d25c64e995b51f9a14993791f21845a768ad155ba78427c42c4a8c4b226c15a6b94252f9512c00d3f4a6b8aff4877cbeecdb29396c5cd1fc6e8ee5dc55030144de6c5f85e15a5ecc4543aa1321413d4094a96d26452190a06237b314608638c30b40c86bf5b3725b901efc8164b5cefde0206b7bb572b3a25a7fa05b71f15b9149b4412b1077f7178192d7d75dbff11852c4e80840a44c861350b6e7fb51db5352c77d52bb642c66a46fbd8e28816c11648a06a95d147b628c1650984fd6b17c7febbebe96393d29fd4d2eb3bffd1e8aff7318e4de73aecdfe8ba14fb1127319bf56ac63bffe28af88b8e454a5ff7758dae6b74494ae5a4f4a76b32944a3929a553363fdf3a5e38e2a944119f5f54fe15f6e47bf21ad9ee1a8db0f7eee8d91df33eec7afa9099601be0536efea4d7755186ceed23864444315d0411918f1a940fa21f47802c2104b8b9e07bd5cda5527af51a658b4145b9fdef3a0a8459af1a087b32beb97e7ebdd9b7f86f45655a8ca8f051f735e73f9ebff8f0aeba14972686445023a3691411c5900d307ec8c96fc9bd20b05b72af05dac4396daf4c50fd9959f13108656cf85da368faae8c5ef5ffa6939ac1d2f26e4a5c5d4ba7a8abd50d6ab21fb8742ba05be342d77f6549119b6b46ab5771075dcd23024291e844923804843be69ddf6347b6e46172eb8086160d2d1a5a2b63a0a1756918b2e2c5ca92953154e112ba84ae2a2ea13bd2b9947055c13b3b3b3e762e17d1f1d1dddd3cb7bb8bc0828970134ce4721133c14d683c1a8fc6a315a1f15ced47dbd18ac022dbc97676b26ce76645329d97f9c06286ce0c9d193a333ec03644f9908b3374ee0c22337266b4667ca00afec37fd0f01fd78db0d0b80263bee0ec71258c7e052bee00ee3b5205255a0ede9caa9f896effb831edf0658cfb601b283716d37dfad3b7019f5a9ceb8e232d0d9cc81cc59b939952fa36dea5967770eee4baf98f732367e3175af6e14018f6b2d309aa9c4ef4742a3d0bd730f9d29b7c7c1a5cc38462258e7e89a3a512a5a5a7316ec2a9a89c4a4f836bbc5b7ad6644aa7120ba5414bf474a2416987c3a5ae0365aa4f839ee8a39ca45c46205009f7e924f8c69e2b59a2f51f2394e78f271fbf1b7d94291f553160d8aef4a7ef6a8ad5a1b2312c0cfb52d7eb48d9ef67311ca809d7997cfcf737d1373dca7629fa27ce26de93c95eafd9f43d7d8742ad76b234257bba5aae3cb136dd8d68d0e01a271d4e6c626dfa62d99768649106db10e324cdbfef1a4ded33ed5f74a0ec8fc996ec50ea66cfdc7c1d7ec9b8f2754829252f407b99fd831ce5b2ca92babea271e2a724625c02b9e04a3ac98df14a2ba56522269a2fa9b4d134fa877d499a4c26abbd69c524ad9b6c973dfc371a914a9c4a1715b3367e47a487b6441fde91a521d9d1fbd2b54373fd6834db763897a5a1d49aa4644ec61823954f29757901d48d9686fee86f887ce0fc9c724ed33391c9fa60661f44edc2d30733d1641d1f443ca70f78a58ff9a3bfaef7c76c87bab4fa8a937ca8bfd9ead7d315965c975d4a69579ffe131111f920f2116b105c7a16a780406ea4255f5ae4caa7d8531bb505f08dccb6ab6feade8fbe6aef1b655a7a7afde9f4f4df753dbf8953e9a2565b935d13b41dcbc87699651b34fcf09a2c4db526feadfe663b16ccdaf4adf2b989fa261d4cf3646dfa966c87532d0d7fbc7ed198a6111bc9c99199d9426ec7fb22a39945448a4a524a66826b989e76367d3a9978908f514e522a257d19e326ae546a8252229009d944d1a5dc8331c2d8726913314a8b4d6ef417f76e6d1759df5f48ef1ce925b73da671a4afdc5535fa92a3924a29997eadff6aa5cfdc8ef7c51231cd9a0dfa1b2471f32b773dc69974ed5993e9aa67931bfdfc2a537bc5931b71d7d3a73672449a903272a3688a02db385031148c31c60919c2676e87cf0b6437daec8fa88ec5ec065e31b2434d866164f115d77818d9f8d8e4628c5326c6b8e43a9c391febc0e71dc8dcb3109b198c96c55fa87d9681d1be1f51bddb6f6e7cc859c93ed806f830c623ce1df5b01bf11f17aaba1418717465df8e79c6fd4bce1403464a3f868de69c7394c5388a3f9ae1794e151a5c237b9e32a8c860bbbe934a4c4a1d99ca4f154b335f85716e9cc5dde776fd364da33259b2700def58e5fd69700dfea6df5d56fbf7a44b972ffd25b536adf2f2bbcbfeb8ed503a948ec395b66b159577cdda74cb658a7da5c136f00c56c5aab447fdf31316f61fdec9f0edacf2244631393d0dae21bf3beeed0cce32e8801463f99ced5a9e7bbd9a81860c9a8c6373cea96269b00dcdd29cc2759d7aa88a517a18b64ba56c8cafc02fa1d82e9532b128fb7ce5644dbe914a3abc6d2571cf57304abd69b4b4c4683b9b18af166d628f5eb6e7302d0db6c13b9b761deedac7581ab1e57636b1e58ea0a643d3346d2eb1691a34a0ffa0114733750489995f4abbb49452be941c3b8b367dd9d2f0670f69c38a4a5d8f3de6ae7f23089fc2a71472cfcdbec7850fa39467c73c4d314b333fab0d61d75dd3f9d97735990e19db0e721dbcf2470de01cf821eb5809a3d4341ba48796067ef6194956d8411ba41ff5c8c20fa6a7ff43357de93721b09ff4f54d9ce94bff43b5aa7ed43f16e94b6fb2aa36fd0ff54fff83e951f6e606063f92b458a63f591e424c5fed8d101cf34df626fefc1bd9ab2ed9e72b95dba29c1487207a7c747894e888811982f9e11e5492807ea2505f07ea2c2215b9fca422ede242bd622ba250bbd47d56f5e0140c821ddc9e41eda25a80dfcb3f85862e1371ae6405da9667519d4b2ecf22d28f0bc94967f8ef6a4a86ef49e19ef7f35cfc1938f9327027afc2913e853bbd8a3341fd738f85ddf0e79ed210eae8b1df822acfe0bda4b8a75d5cf05eb2772770709d8138c807665d8fdd9869cb3d303ea619c02fd27212ed04979355c03ddc93d2fecab05724276c94cf00a76090be9ff624d1b3495139c53d56ca5f585410fe4481f06f4e2c24d91cbee22fed0d132e085ff1477143f88affe9a259c5806058369619923f3d42edf83beed9d9fe0736e33772f8cb7c7fff21fc057b579231eb86bf3c5690d050919216c93e16dcc12748887f18e8fa1026c23d33377a75f585d3d41484417803c23ff90ee6fda870f453b8eb555cfd189ce96170d8a7b8d1a370da9f70d93f0d7502218410b265f941f543faf37fb85e5a1ef2af9ff6ba28fdc782cc3d0a21c3d6664e2eca975540afc087d6b245d1e010c2ada6562c30ef0765f219e01b4f6c4e4e7dfa39a6bfa2899596d2faf432fd85e2dec52e4ed59453b53d3d0e0b33519998a03e46014317be9c0c4152849015774238c4082bdc2c08090f076ef7b870a109aa53edf290182174e1c9de947e7e5b1cf22f7b437ac983f4f42bc743080e527dfa3c4a2452b5cf579ec43d16c6d96361dc636d8f359393a37d0e16e18d4cc3380a872084dd63c369b8c9a0f97d806eccf84b0af7b068cf3a2a5cfc146ebe8adb3e0647fa140c0d05857b2c8da7e786af385b18965203cdf972cee72181261010d00cca9c7607201a3c875783f769ca9476a8de877742b13939dbc7cf216d5254fe13f75852568b23be9c2f5fda1b92891302597ad5d2a3cb521ff38c856bb44ed45433f27d782c6955fd835b7105137c81c90c52f9f471c8a7dbcb6f8bc374437ad3e3b0a2e92b176f6b3b74e05b7a1f1e2b7e6b3331857f7ccaa4f6a0f6ed52dd83fcf83f987e3e2bc1a9dace3c56498bca40d8e7e43bf699c979be5252cda03e7edb696faaafa09e3e0eab72f0527f898f42fd0967c265bdea61cefa37a7477db53862b4b087f8f27f882fe7f338d9e72bd1fe30df6479d06763daaf666774942c192a12ba0134c47b344ef7c0705ad6211a45f5dfe1065480db182328b9fd949f60221cc56d46c2ed26c06d8a0adf816817fa8d53733d26e9b72623c47cfa98742961075a4a98903032112fd2cf45fc011f36c285db2d749bb768e2070b4d345016825ce88cc9dee4c7b86cf740f4aa26a54585b62a913e97fd9b1f8820fc855945e08ef785cb4cc4650ec1e5572423447cf840a9223154bca80fe8ba7dd4a7a5f0dd9cb3a3b4dde468abfe7df7e9e8a87cfed7edaa5755541605b48b3f118bf373243e46d01fc41f6bd9a6a89d44cc0d7f91c157ba9af25d4ae5bb8ff1dd4af51d4b07f3dd4f7c1938f92adcc9a770a88fc1a9a08a53b1529c0ac2e054aca7691fd333708f2503f7582adc63a5708fa5e21e2b06f75830b8c74a718f85a59ce7afb785616161ed9feafd107f52cb83befc495f5ad59b8f557a427d1d315cb803246ef77e6652905fe4bfef3296d13e7681f6d1604ad1597a37662382b603bea6a9faff69289c101f1e2b657372e29f7c8e7cd4639ca1708f856d52544dd576665a55ff7c1cd6bb38a855b555f5107f3e8ef8d3de0831f99b136b6271c81b94c561993821f11fab722a48e25470e372b2cf197d0e7df939d8e75c9f339fa571efc2941bbee25c8b0e05c57ceafda446381c71b807c5699a0d79af993529c8560a887882044fa0207aa0025cf820073a28c1149c80c2054f80e0899d931f4c1081144ea4200a413e50e01770122609600ba86002841042cc8b2b9899afbf2e1d2eaee0819f287e8c20a3c91650c42088b0051e58d193c516a6e02dd86208d97d47b668e262f71dd9a2063eba4cb763dc6e5ee97faf86c7eff5eb870369e6b03bf63fd8b2b9bdbdbddb8790f0fadf6b8e8ba0a85dea3227b9dcd1b0526150221beceeeece291f72251cc054fc323a968cdf7b0f8893fb4cf235c947d90ddb0584dbd9cbdf5927ea15cb707d50b9db0160453579c356bfff75b067b88d52faaed6279148241289f44fe357033f89f321edbafc590946df9129c6e567a91c8b7a07be67379640e3f9717f3f9a87484abb340a2e211c70cb619320db19f2026911444c14a4b3b92ecf8cd60c9d0e40589399203a13813508e26e55baa8424f83806ee42d05b583b7cba8fcc8915f8bbeb2a457ed435c8f34b47a15774c1ce8d007b13513a4c34410e5d6413bec6666d8318b1981c3957b10b79f631ad6a46ef734024624a29c0922523bd609520297c829bf10433120d06b262806b5631dec5d5b87135b2a55604f468411c612aa5f54bb38aa5dbad76edb0a57b40fb0289c18c1c006981352e8415683273020b40fb221a03841834ec929e94b18e3d54da8f006f0be2018485989acd042176c104208b72c84dcee57d11411463806122290b8fd19929691db0f4393e9540a09263a4ae014155f68e1f6a3d4e08b242e7cf82729f6e99acac1065578210b3e8e104317acee7d89dbad30d8ddddddcd25a8ef42134dc6b5b8308a30e800006110baf0533ec88548f0420c06b8f0595a60c4d0c4858f434c08a87847c660c585bf43bb68327004821d9c08008622b7df14a476758911ab0b9f664b7870e1854bc670e1a7b44bcb85fff065acbe90830b7f06fc82186e022efc922603619e167460fc80c21852df85b70b2a70b8fd5548173c48494128a1078ca0c938145ee8c2edd77ee53a80187b4106a914349971c54411ace006bb5ff6c68aa9ed689596056fc4c8442fb46e07e0f64f4da62b075210d48521b73fca256a576314d08522ae852610c2874a11800ba9545751eed08f16471811c4470d5e20830991f818c113ba82a563d9d161e9586e4baff861f876cce2303154bc602ec8e08654bdd85691aa35455b3b9175842173c708e8233b2e903081b38a002472618315741091a09f20a05e7917a6b820c211f04712f50817581851d42bcf084a7ae5dd8ed625a8540a920f083926f4c415bcf8c1086650b3fb8e24e9b9dd6341922871832437c8742abdef48122446ea76df912446187d51e57d479258f1823abaef48922b16f08120d47d47b0f002241fe88015b02703875e5149e90e41fc078912daa54b3111b76f38a5b57a4baf7a09689dad10e4c0b5022d1ab2407e2b7ff694afbc2a1972f43dc81d89b6a0e43e243b4566dc77640b462e4662953fbcfe2aef686a553f75c1d097fa5ed887e5bd786be6bdf0cf8db7fce53db743f48a67b8dcb2e2766f49bb8eb77a6581165cf83998aeb8b0ffdd1c3980c008126affeb098df40a7ffc429dd45bde7a37f013af06ee874a1806437c440b565cfe16d06556f7ab96cb82dede32a203c433450f127c9200848a214a20c2c5e3c265eeb8e316b4e0ddd0cf0e839deb3f526ee72d258278ab889129627095b89d5bd1add5edbcd5798b7d18880f90219c8222f9917d0891d60fb786682d192203ef064fa2aa667e567e5433f1e7d5d0721de7e9f156ebc781822e336ce95c6620975ffef80abfed9ce7328e1cfc3f58f00fd601075454f5a17f5aadab82ff62402e95d2ab540fef0647a2aa5ec6efd02eaad50c6e154b8b02da45058343dbae7aeb3afc711978b0f79c5222ba70dd629a0de6276c55bca220da85ad8aee782f3bbc95fed4900aa4bbbb9fc0c37b49c1acee7b265c87e9afe9f9018f8d15b7ff75c793c4ed7f53c6ee4df1887680c1ed17dc4ec67df639e03de1f6f56e1062017caf5783ab7ef0c73e65803deeeeae9101dfabc121a352290e3519523f46225151fb796cf1c748b285a5571dcbfb793fb51eae6edba5dcb74151bbcafcddfccd1b141b145714341dbcc7457404b93c240ec5cb0f044fbff08f9f1a252effb8fcbcb8fcb11fe4de0d62e4be7e43ed2e85a79a9132b4a445ed7f5647af80e815f7f773eb75da055a869052cb3adc62eee7d6fb08d906d12bd6d12b6e6ee574f3c48e3c95e945e28303fc727c70f93d9eeaf761ee9a4cd42a4fd5747840525cfabc3d7ced33bead71292337026ddda2764f284704a015193b15efa5ae663c29ffcd39bba7b69313f294990d57305d0b7f2311c10a6e97722bd46c3b40a16474c7afa3a52840757df641083726d487cfbeba5551df3d82a0776016202c3e294230846208a108a584de4f0a275fc5c58fc1d187c1cdcb84c39ec507080c0b4c8e991b4240da4d09274a160a43faf893f4716ba1d4a784522d2464d2342270430bf90372089d4c5192b64a7af81aea336032b13939f465b7c0db6de21e8b512429e9cb78e284c0d7b8d347cef4a509f8e7785fd082e6f24f8f43fec9646f48af9ad92ce9b5e8e0e969e9e48061e9150b0ff790922405f408f48a4936a4e79c768121942328f52c52e7e44d9cc9d32aa7aa63dac43d56cd112434946348670892c5808e9298a3a4e3b797dbf3306d5eb91bbef2862aca1621c02f9be59d2b9e161c021d7f9e82f97942a03ef5aced207dca3e6d07caaa5ac8c9eef0e1b172724e3e7e8ec9979e64b71702bfbea358491f477cfa28a577fb60ea16549904af53334039ca2f897530cf6a0faa5f2109bc170ec15bf1f78fc0bba1dfdddf17d759e7d5e04f91d4f8a57faf86d39bbe3eca35d5ccf63e3cd6666f84e030f9ed6fe49ffc666fb63779d50cb53742502c8ed2cfbf39b12af8f4da1b135bfa98469dea6fcfc3447ab97dc9f220d96753787e808610f101d2a3f3d3239ca6252afc700ae32f0c43a79532f96ef596c487c1d14f71f35138f926272813eeb150dc6369eece3c30546e13068583431837000c0c899a3613cae6e4c854ca7bdb4cdbe388bfcded377b234b42269722e3fabf544ad543fced7fa06ffa611ada608a7a785eaf60af5a9bc939bde95b53f5b06da5bf39fdf6258b83f4d2de989e44a29c4952cbc314a364a82848080806e682da901f14294ad3a99670f873917661a9bcbf219837340463e80d696fe8fdc8c0c93f811123b53d9606036488ebc831836dd474aa946230303191c77c2cee57ff86521fd351dec02fd10221a190c227a0e3d5e028529414e6fd00056d2824f9279f13df848442a53c313d8d4f7a92bd31b13c4c382c1ea6277d89e3210487c9aa9ef43c4e369fcfa8146ef66439eb100d0000000000e314000028100c078442d17030cb533d133f14000c88943e785a9a08b328486114838c418420620c21c0004360680a46ab200058a94c6615efff580384dabe2369e1b2f1f9793833fc1ce482b9fd9fbf693cae090b8e2bdcca7b8da570da1cc8910c942d6b96a3c8ebf3f12e1b9756310770a95f49881fbd48f4de0fbea466f076015ff961e44a74f62a3b6ff82abf5d6316edec222f6921385655e72653e354d987a4e85127e7c064a2519e33eaf90a97d795e6099861ac23dc964b4b6e63bb269c1d104f9aed8bc7b104bfe4d92c82638cdfa9515285cb9a266c27e170af4fd73f6e765e10334c2eddf90b2b0c9758f992b80c0f40d5fef28acd44531b79e52cff7ebf3805600c2b307405b21afb09657e31f157b5683589bc2f285ad043192a7c3f6154f2120aa240945cd06c14831a153b5594b56bf01c79a3fad2610a45621f78f3d8c5d71d6312eaae31a9e3c09901011a88b3f0dbef8cc0491d546a95cddeca5b2a42192c49fabcc42c65788a205785411ea7b4a8e6c02556bbc850e093980dc7a4a38515eaed460588be19a819aa3d108f4bc7456cbcb5551a6569505d3979d4849a0dd048fb193f37a33f9d549f8841ac4439f2123ea2a704a642b2ce180b8ace6874db99981e220691210145fc53efa76ea1dbc5ab0b4577bd1686d147ec4f70bd8c11e5223dde268d7e0fb2b77f44fa064794b75347b423ff3c431cb4cd058d3101d4d21cae95f562d8a8cfc4634266a70b91c240b9b838f2f9c8fbc839b2518da640e7ba2d28533685f2d072380b8be37b26e54a6957234d40aa1d156519e798d050b6d883f8c745ba3e8e94e51ef6c42ec1d952900cf2dfd53c684c399231fa60269bc86cd3581da3d568ceccaef62ad608530f98829d35bd7593699ee7cd9639ae74e9619536f2e16dcea9a86e791bb06be03032e82a28e07ead6b58190fc6f3efbc1b5cae9d654bf8c6c3900ca60c32d8df4c2ca889676abe67f81222b3765d42c7aa686f93a80130f2f34eba06fcc850a876cda36322386bc7a4e6d6e22c1f65cdee4addad071a6f9c7a4c7f7c07c37caf795693a53841a842a1be57dc8b82a7f3c45f3ad95e3e02b77cd4f842e87bb0abf1c44b61b240cd563942868183dc3b84983d2f69e6dc5a5602b9ba6ac245efce4c722717f64c6e96de12fa4897258dbd6c14bc1a1f3b52446d0f374b2d7ce79d5bb66f97ce1b1087847a1f1bd01598de42fc3dfd9b0dff75ac7552a252c2865cbe59d443625ffc0de7c0c515c980293cc93c3bdc3d9c11bf3caf71ba131665eb72a40a18bfa9fe1cddb56306843a493fd6d7a86f202b58dc0b31dca21e4f6561e06b3f5152d364ca4ad80248af4336af98594cdf8b026082e888f2574755f922a767926f86271011d129ad52d84833aa453752e8edcbc25a2b4924c75524bec891ffb18a2ff7c0da88e2c60c8bf7415f96d4bb8f73ba09f6b0c7405fc7d5de49223bad30c8739cd8cb4438ac7aba1f421cf6db29edc8c211cb88e33741af8ed9941652637b59414439907dadb17b5e7621c7ab276738f7e4e00d5912e9397056adcbe7f3bfc905ef365a0c5fbd4deb640c25a8875babfc266867c9dc776a3ecb540ee0b3027250ccfc59af037f7a86534c0e1339ebf0d2a3e2466f599397ac30488d1f49b17b3018ba7c1f5dce32222f21997e6703d56a80bce48ca3970c97f15ae3f337dabe0ce630804dfbb6234a1d900725ae99c77349c7cc8a0295c142dbbbfc6877d3ec0a1eba25831fa03a202ab3cfbbd4c13dcbec270d0410b02601b80d9130084ed5c5ebc8882ea0e211e760f05d3a2496e8ad7ccb2f6315280efb00b2d3113288ab5f8b5f3deb7205434fd05d834bcfea3062f41baed06acbbb747aced3fc8aaae3116e75699800a0a4080cf3bb642045d4c48a6ad77eb50c09f93e19249c086a187c4b059d0734f92f13a3bd65f8965cdc902e34ca716e7ed19352b2ad0cd1ff23756ea52be58cf51734aa1d7c005575f0be275497bd04163032244fc2e6697c3f438551455067d01843e1ba5d3cd6aaa5e002aa3ebf57ec65334c89c34cfc2f9e86b96dc0d3c0e0c41f365fce4962e28f436f1b7dd1d70ec1b8e157c79198594631807fc5b142d983d7ea8bda2e927c7e8d74bd402052d7eed0b1fd7824e026c30e49506f5dc217e5ce4a424326cfa7af2694e20c0e694e04102e8b49de14f947e7823a5de895084e589fcf50ba02a7786a69b843104a1a10ec4a2724d2fae2a41042ff493f539b2c0743889d4b5ddf8823ece20379c7c31ccd3a5e4683091c03889560195d9d92c68c704a426675ad9fdbdcc583fdab534c3455c5ada471d3ca8f465315d1b39e653679d6e3089bd62355348161d1a2387485a511d7588db67b7952edcca1e5782be21fbd1d13f5311a5e50de59d1f8e7a430dd2664e87ebafe228b4fc50dc27ea21d7b7b90de3e1c3151794d5dcd2f17ac97bbd03eb2bb4d6d2ea72860cf66875ac9b004d7752fbceb6efd7f3b926cf50024dc9003e971bf9749813fa23fc9261e8c34ce9e79bf8a7162c8fc1a52bb008cfc8bbba8728430bb6db3d43ee9492e5c69ee24c513f90cfb387153830f99127679ea76898f635487c82a84008c4ddcc7001372a5201108d6e36c4491151b133329c28083926930ee9a4b994d44a3529bd99b93bc098a48749b8bf805ebca66b83566b2436e553452b43e14198a609f30e47b0e5b901f25d447b3f7e069878485b385ec8e55f0b523cb3c76f28b36ebde6bcf7ef8c57cf35fe421dab6307aea233e9c020b22a02a5e90176e6e725a78b0d85b72348b6419161684e035068c2bb0c09b2f5d9461ce1ea33dcfc897de3e57b2846b66a7eb6d87dbdaf77090c81b38849d2bea403de2a8e0786d83f791bb01391ee310b7c68ee220f054342b15d92c2e374a0a7184c1f9299763e906c326afe2fa405f27d47be3e2aa813cd69fc0c1bcc641140872a5d4196db40609313ecc1c8085c4b0df65a4a12d64f36f270e96137b1d2bd17562a9ed4ee4f125a444fa38b15976d11668a3f2d0fb6d94b67b3d15009bb5018ee3d3df03dbae7db052f3458dacfaba2e213e5129109709137e042b90913cbd30e6a70bb753c118e00266458efe8e0c10d365cec09e83e7f675756b3b3215a77a4d25d748aed06fc32f8906b35c6da6114e794d0990a50540d7a53521349dd7b3359279c13dae4aa4c75308f451606cbf53c21be7dc6eddcf665bfb2837c5642dff9d7d91268613e30b32a3dbc5e2e6b47ed45eb9c7a0045a93a32a6a4553211493f6085dcf8f9ca702368d32bbda871f8a4b29c52301db0e6d494d1848f27531afc5b5b7843b57f351caa7a6482acfa3b50aa8c72a4106d0f916acfcf4990e93e6782b5469073d4b00a9adfaf1a765760202f2f7a47f060ee63b208a8b67ccf35cb302b344e14e545218cc42fdb89a0814e76f9de20650f13ee67fe3bd7be0a967b808ce0f8b3d962a0ec91ae79b1f887c4e676f3c00a221ce749f9514fe21c5f708f16fd0b0dbcced8214097657862be86678be569ac13e3cc4379fd1194394ac0234c15dd415b5727a5b4c17451f739a6b3c04f95aa324ba33bd0177a3bc6b11a258c59e7024bbc3dc5b28028722676861671e85381154a6885371ebd84ed0c35b62159e86bd89440d64eac39e83282694155c87c4012e0ea89e66e7972272740de11a0811bc8a1a83de7ab4bc6a533d9d833ff1faa6cd55df89141992e480be7dda1ce658f966eaffcf8bbaeb253d2462c13ad0944bd353a61afcca21155eacb85053da036a75d59181a05f21027e228a166f3034a8334f1d35cdaca74fa83d16c40c44b528adfd0ae1ae63f31446ad6e0a832f3aacc2e04250c672dd951131637423b0b2fe645e9d1ad704bb3c31704fe2cce19465e78d294f4ef23caa4c635710342c757273da01b7d3ae92447d7ebc0ea56ec381f71af563cf034e6bc1269ea53769e0a0764f7915ac6c08907c419edce569c5f0e5fcb40757f9d22f4a8aae23317dcd6414b21ff7c29a268c1d76c56b59b8ab7ea50f03ee1009f3eba53d3e11a255ca26c11e06caff4b3188d25e33eb21ab38ddfc11c8ca85fe5791148a483daf0b6b9508265a39e8e179b2084c4de499d7c0732df7646b534361bb9f4746c502335c268ad1c981ea4951bc8f244855fd92625834a9bafc0673d2637eb82e761661bfd83679b0478f115ec8e6d7cd4ba7de483be3e53ed11fc54409a3553dcd4b08cf8193882d51dee7528273a3243ee6d4b1bc3cadccac9284126f811d2f033c8bdcbd3d6b137f2bf4f0e29be28a971ed268f03d35e62a0773de442c3696b1e09e5e3394d87108e8625fba125ee2e51a7a85f25c4820d33769b4dad948c0bfbcb359ee34a6dcaea99c5a6b407c74db29e2fdee281866f8ffd12e725f73df4f61ded2849d15e3a9c05ac435730e83faa7141c75232e8a909042f9bd101a55c613ded7da971826d0ffd41a24e5469cf04e0714e3b998adee3bdd4102d15e4c3eeeb4284d6b4ebc8958b81ee9af9af3da8925d632f772da5f8c7253b5c7bdc692f1d7a9c9e4f67b888421a4712d49e843b3e42ee8082592f8f032e73822c06689d6fff4a843cef62585a1741621d0487d23fd90b144521908f3c0270a7cdeec4024f989dd150d6f3438e88b3f7a5c819af40a2be098999253862023151ebdc872e419f98dace0e76ae4493192f3b4e087202b5d3266f073b4f8bbf41b7d535d5e6020705ddd30f915ce78c8050a64c184226bf93c3ec8d8b0ae026734b2a802d413b53006d24d80ba4e7829f8998417cf606fa161e066008a6862e72cfa74efe55be8674a99409029b8fdced6c8f8aea84c7fd07655e86b3f566bcf771aed5fa18162f098e101ed8d0640d7b72a4b7c6a0de4d7fc7edddf78f62010ab1a19f0890c9c10a94fc11983bc44c143a2dee7e51de43d609383799b8395e22878b1605e9b9dc3f0d5279b9463e9fd6f5f2b73c2bb62c61033c8203436b07266e5b52f61c63529a80be87b9bd151918319a63c38089af684331ceacc08aad79586861a3dd39c894bf499c75300e71f37b8aa3ebd575b398d1d13dfd6e634e9c7eda8aa0c4fba4f21dc201710d61aba387a719a39e63f770ad90d1fcce0018a0d96a5a3177a84a08339e7115d4b1185d1bfcb1eacd82bee100c51c63734fc05ffb9699e073b3dac35f885f93a72d14baab08ea700bc025c5a1cf72ab8f99b99f5fb47103d6b1a82d86ecf89e64ef0044c033261e15b86bbf090ffa0a253df6cca0fe4075dcab6334ce586133af109978a27606c37c5074c44e6f3bec842183b6fdeeb4af970b9db335f631443926b61031be2559a09952552047a12ca8a4d5d48a1f65765677a93261f346921c935cc0542b31faca90e113bf2fb3e3bcb2fce30cb97f553cbd1c9237a4d6480eae8f132de54f8c33b85f456f8e0facf57493b712fdcaef292c8eb5567f0d383ca1a2abeaf56fafd0d088090edd4fb26e7fa0207fb03c05c3fb00ae2df58c54b638647cf21b6ef02217cb83bbbc82362d2e4542500bc1588700563a61f226135232a39844e7b0104739a2535a5a3b783e70b3006acf3bf1a9686ac75f6e2af6de374b2a399adba4cf0ad25e633784634ebea22ad3ccd0ed2b7319a0d44494498f789dc13b0ee07e95d15e91f71308a02b6c947491c9fd2ff1973622bffdcb1ec246fc2c701e9108b2259e359b9c9b1f7bc4954a340cb27c3b9ee079603feca15013b2008809bc96ed71f9243d5c10637b0729320dba6f09c505f6553244b39cceea296481a155567390d8448e8fb398d808b36ac0bc3d78b396724299abb27e92fb153889ef2e0f6db4cd9d672b87af9ae5d7bc7414f493737f1a699c588d6fc2908d8b18604e9a37d15e8bfef3050df21ccfa4a70b6f2656d62f717a391ae3de27c07120a3712ef01026d5612666fb15de203e90c192dfab65c77ce65201f1cc3625de490c7d2253d9ab7a7b5a13cd81f4c013058e1d2ff85d41b08671a81aa59292a66df5cc4f70b78363c656fa1ba8808f4be9570da94992677103c0390568813acfc70c4bb6eb58d3a7c8e46d45cf8d10481bca766aeb60ad3715351b42b566492f77f7ef491225b0f3dc220c56ce341cd82be4e786aec65d4cab81abfa6fd2b4239f115986473dddd14b7a1e6c052a0bf76dc79fb4c92496bbc476244ac91d7e91460c796ea8241f06c762e726fa072fdb07179832d39e37b14aee3d51de1cd0ff99603ff3b1a9a16a516fca19b7de8a883f73b3b91314d9fc4b84de45e0a894c9a382a79b65c9effbe3151870cb5c65dc0d038fd6127f643fd43ec533d8361ae3e0ca0b5f9d1b5149297447b6a812db9de51b94d95c924b46d29c93d5a20127d6e1d2534d899bd19e5816835e01c5cd7f01e0278554535f7215fc54a3fb6c15757b3f178d1fa50b0f08531c65fea8195bf8d0552034cac996ff8ad59c31f6a8873a0fd1f92c166a0550ddc376283fbb78cf01822c9a304d8b519a9730fdf058e3670bcb1a25cdc43513e41826cdb431b084a94713a19e65a3f5c7054192b47a430cca16edaceb5ca3ff69b7e8a0de27bd9802767bef135c6276ab35039136325cc9f601c4cb9d2ffc3618974b863f9dd40fa168597519aee1f8d6f427f03d0e2ec25bfffea39d09252f5751b5f5a0f0e160a4e67767a8ce1495028ef0b755ec914c8b7ab00d904d4d28a81ee1326d7b3cb52d16273e77bb3c1afc28b4248835f81f8be241bb5b3e2c5105f284c0da0b7ac24d2b6fb5963193cf99b8af601d04626d989fe0f3b1887fdb8383114e8e7cda770e16b20c62b33fd626a51fb74d233b17ec21d08a2f010f5bd41f18bce88b754125e6ff139abad2c08c059f2e79406326d62700a9da8d2d7673e42f07880e43bf84319e6ac74cf39f7e48b8593826780cc2a4ed20e389e3df4b0c0d6fd3c9b18ad2b271b4f9e620fcca152cb9bd2137255376cd3efab07b1159aae35ae066e1df466b01cb29dc4824ba865cc9fe0d268c5a7e52d97b65693215b244f3ce6f9ab2b33872f8162afac74ec3acb9fae550de179c7ce3e1e005b1444954262b012ee85981f44f4b26f7f6a74e5d884791c77e4af1894009da4bd7ee15ae13870c465a953b6ad2c4acf144bc9ca9028a5e78a085d4566454a06740a653010b6408fba1b24bec52ea1bfc0976faa2ec3481806d026ee0ee5137a6c624b6cf64fb7345ab90f5c466dcd5c4e630aeaa8e59efcb33d9c8b369cf08983d94799e8dcd44ccb4cab7877157cb0dfd9455cd4d707321efb4d0fcb376c229f6e5994aabae7e4b1a80c3c29a305e62affd4a14c1f109a862953f924b413d9e1256c5f3e8704c483cb92b92a832f33d2949ac9a69067b38fed433cd33345172f708484f2a106fdc22e7971026a59bddf900f33aeed3e0f21ba7d61c4b1412c78c911982264123c1410a51c34401be71ae56141b5fe3053f63cba098743c9f99947df70ed6f597beb54e9929321a93dedb3aa32691ac132bc49cba816c4662a87a56447d552c831faf3b29386078537ad17850d1f78defc6c21cb241cb01baa284a75b40ef7b8de061c72999a3cd3d49a8c6c79a29bf29445d3f196f831df2d844f7b40e0b1f05c0865c2b3dded0fd5010839b4cf99068eda27e16cf2501d1e1080dc106af4404f19164979fd575f9c48893fc01c1b12cc9b176e6ec03680e58ff8a7777cd558544905e17ef57297ef2c9bbe3a634a06ac14483b17530b4c0486fd0151e4985feeff420982fd29957037cc9920081ec1265c0b50dd53b76082cd679a5d2610908d963130ba3a02c26a68035aeafef27a88d072e268618049fd90c45c9cdf111954689b433967d85094a4be261143ae9a44bfa16ba3ce6255f470c5f819b102cc1ae1a4d810652279bbdae97dccb6e6b81a969205940c06eb451d28bb12c0a165f12512af9d7ba211fdfa4e7e806f1b079097fc20792f63eb6f34c9b30979687d2b1a227d46de925fa229c0689f111ebb108302f38e8ec5ee012b33ed7d32feceffc722abb9a0a9ec22a485c1a205e38806c6017d77b926eb7f2971ab9f44b079b676edcc6ce252fcfa51b236cd790baa405413e66e5c72741705bc2674206b9aa004357ce71874ead70d9512bb3072545a138a79430914355da8ec7636119654f9de0e905c0c5e5d67d22c1c8421cf9d695e619f44277a46ba3f2b54d5c53993355fa559c122068eccfdc2f610aef7c800851b7ee9c51eacf7f943131b6a4b974f6a9fbc21a85f386cfdd627badc57881e278813ab100d276312ae24b7d48fb61717339d42fd6bbf87d2580ddc77334b53d8cf65b4c5060e1262e846b46432fdbdc5dc449a4070bd5cf8c4ac1d1b4218f47964df4465230f25c8cf54c80297228d6b0eda2a9a36fb4b1391cb72d3356f4823f22343491ebc35570d0fd4f3830b4d441adb886db418768aff443d185c80d3d9fbadb5cdd03fe1447c3a867de6b341bd6c7c120d0166b1a6f7347f795f52aaf5273e6cd0616007159bc0935a2bbc0c6b6e8be400c581f31436d0c0ac803de55b7a0a1b3f2c68f8950271ebaee887e758fabdebb0d78384dad2c4937440fa810103e331c72c9bbbb42f2cc519b3b83e8ee83812039e340ccf23a53ad06942e30107fdb3f7cfb71da168cdf9484898e005aa92fe8bfe0df243ec92d792151d52ead5fc10c9daa3c6c4c0834b095a2458b3f1635c80fa55cc0c5b532cc0e00db4565ed330b7ef89aba3e634705b62da68252020241e769e99be36391f82466e92673552cf2412749e290904ab9851efa6f814b0bcc39c62535f4a72ce9f993dc882ab51516a44e405bff2ef65636ed8bd5091080a596ee205399e83e637cbc56af07d0ecbed4c0c8a0f2cfae91c90d6a12ab117584fbc4f44e4751d510c0aa0df09da42b0b957cd1a0830f3469c2d8d3c1dd2b5870b3f051d63b33f707359b9f6f0b2c56a4955872f651d4038c7b495189cdfd38221f0b528a39ab2b8c1c2e0a28fc9b46089822a0552bcced5d3e2c343d7c7f1ac8eb9540565144e4f891649144183e8b86a282e318129a0a28652ead76c6ac6344828805648ff5cf4367118f1eccd5d81d2ada8c2e011d02177b5d975a34e3b2a1705e4c9e060076b350c9e9ba7401bad57aeed391fbe9437fa74ff946440918a49866cbb4bd9d8fe148c9c3716a937bf1b446c1a7326491c9deb8f9d4b6dbb61eb5d056e6abf76eda2178cc5bfd85c72e4fe71233e63b62ef5a3e9299a46cb8c0981cd82c8b2f4dfd65e59ccce54b8ccd43457007c601f20d64dccd28b46572495d7a8026d0100794400940e202085d639cec0d61e6f98a1f078dcd5ad77bdbb98b46aef7de92a6c84fca34889d50bedf1ea751db9803252e0c57c097bc4dd6617f4ce7311e5b7ce01033499f25eaf8bc85f1694766db53b4ec9886157634df4806b53afd40dedee22f4ae4bd3a44115c156e79e743cf08c12d12428cf37fba37facc673305beb4322bc0370e740c7a02436246fc9076a4a76f8f4dfb08c0f69077aba97d8a549c0721472ec2f5665ae4e83c88cfcd19789490c8af21ddb5722eb2ce21d957612857cadb6b2dee878da19a371e84440e8d4c5cc36f0c0a33d5c719a205bac5d8defdd693d62c9bc4e8160ca40b95e206408b1f918cc900cbffb8198cacb92e568747890c017206ca4370ada2b197ddf4e843c1438f5f7d4996b4bf4f4df24f3dc2849a0c021719fdd9996ae87fc9560a817d0adae360fdeba1d81231fd4047c907982a30383b30ebcb3bf37f12096fcbf114a616faf4f83435040c1d017af3e8f5e5d8e11ff8787d5365e8f62bfd8301da3491964ebdf4e2badcb466bbf751e7204c60ba918ba533387ad5526e86738c941c427ef4fb5e7cfb401cc90107987cd1dcff077903cea60d642bdcbc0b268263ab58f386dbf5ad1abff328ba5996cac8bd38b6aa81387e3b285031f5826fb2b6b2a98e86fbd581040548af97425eb45fedacb3c08216994044a33c9ecea129838ae57a025ef2049748f284ba9fb039c9a9382735c213915b6edc3c96364cabe5b0fbecc5710dae181f357157fce3e2dbc10a0359bd7e04d0983416c3aa01e85b88b887d8687eb7d4d198ba711896017c0799ee2c83486b32458cf33dc9828351c5264975e9978f12cbb0999c3118da6bf590dc27aabb6ab1ed721948f653204b5b05713095fbd531d241ac7df16a358d1bcab85519e6035d1f846cc005f224d53aa4107a087d596bf291df8753143944737eb8ca258ba4d20910ef20d6bd2197e8bd1d164e1de2d7c50b0b0ce108c9ca64ac98c59d1943685e766923946943397a3ca4314ef70531fdacdb8afe89930e8be54d2481f924ae2709131026143b2143b1c1bee00a2deca44ff42b1db5030ccc4742ca6519cc881e21f699379a0d5f14aa480003dc3c0923da3556036e53a3e93b1664e4cc906cf0c4c43a45adf2cb717a94ed4337df6aed8e270c689cc32cc65aba6c2f228280918fa2f108f6b36af0c986fce05fd3075657fbbd174c9b0ce58bc75224e26990561d44ffabd839e594c9bc8c5a340d0ed96d0ecc61781cc164e3891e6cc2cea1b191b387c6600e7129a2a16e0c3636076ae8179fef1b1c7e46912f66126ed8bea43980f53dd24b98caccb3ea4d79e63e40c57b4b0dbdb20a30394a53fba358e212dc39ccfd2dd96653026e4b99c05c99a7278562746c3e5c90c104673a1778df455a66ed6a9b6da230b98509f901933916055b4b09612e6e01c58e5e5d25fa4ffc8ffd23f7bb54af56d688d2fd07f48551959c11ca7e64fa0cd2231af9a1610660e5a8af0bb68699c01aa534626841a7ffe462ced74cbd5f77fa2786665459c4be725045fb2479440685031d7f45011c5148bed003bc37e891eb1bab3c4d6a980e4324bed881d73c35e2462117bdbcdd0620878a164c5bab0bdb779bfe2e818f3d540d229f70990867da3792cb12940b1062841ad1d0b0bf5958d66a51fa645f54aa0fbe57e1480b9214aa4924724318665d0b379537c5768b2eb076ebc89610b2a8a37609e9fd5933b0076f38a8f602d536e94a96f1f87c09fb2053f989b1dcbe706a920301cab438b7c72907a9a0082d36bcf80d85f68314f54f91331e51d89cfdf5b1aff4edd1019f7164f2460c3ec16f5bfe6487752a613857f53a2aae4b28f89bfd16b568066d5242005c5df99f39b9a0c7effd2e6ac27eec6849cb69ae726402a882e6379cfa761fcb2e12437aa281c6f50ef326919db05cee753479f6e7561366c542262b185b6a0d5b149a751f85aa321a14fea16776321d598df5b40c471def14468c4532542152f0d37ea6c9fda0c4d399697ea740dd94fbad975675fa44403853865df013fd26452699b8fca2174c5d089ebac8281754eaaba475f3d8f3f42ef9789f076e3d29eca7ef30385ec617bbff7d8f4d6ddf05845829986bafb72bef278be1c644cfd0db6fd9b9f3d18ed16aef3855c3bc35c8362e4529d625cab141b7402f0ac141a4d4a81605930b813807183aa51c0981bf92662bd83fd6fb99911f1acdb9485160b00735f8ee7769557b668ea3b53fdb260d6ea68195fcfa2a6b5b7996d5fe856335bf8d8455e6cc00cfa929f445d59b449b5a38d27a5f389133163ff7fcfc70771b79dcc07c002666c63173a2fd1fe233f7b71d1ac80f47896017f1c777f341d9908b8aca2bf61ebd56f4f19688e246c93148c5dd00e20be2530713d3ef74cb34c63ad4bf8ba5824d7602edbb227bf59c73cb36fee3114d736f7410fe39a5cf3e02261178152f12219e4e05705ed14c4a57f5f5010e2501640a0f959c8e1a1a47b857ee91ef7a6bf1f9ec63011ba1882b464c89861aef7925b5fad7dcfce7d20498deadfe2591d4a8f24438bf495720d1973f321d144a3313e1f22ce484188292d4c58200674ab0bfa549003d2834efd22b8cb6a4233846505dfbff877d7df63bc5593119d99371bd8d8a094c5879a93f64acd2c28596e7c9e6cc161e9c9d978afacc5cba940f78eb095d38dddc5498a0a869b9726e08820c2d1c629651ddc9b80e0654d992c4bfc420367eb79b7770bb0157e2d41c76885a85170d6f487069038488b51665de1fcc463663340c6722a55e96e3d5c1b0dc1cb1a993caa1b42df3719c53b828ee54a96766f5c53063864765143577bb428bc1e2e8d44f0ba466e87c2842ced83fbfc5e80c6b052c7e0479f92aa501bb3601b427471d449595f1a073c3a5bac877be313785d2bb787744248fb4427bf07a061583126eb4cb25a15630ad7d00240436339e2f8e6b499ac837b23772dd766724e0dcf9eb46632ef3d681c578a403babebba450cbb2c60c8a4db191dbebb2261ad346dd7b8b331d101f9dd048dd14a30228ec4987d70f68dba8e6b1135179f9369beecea0f47c64fdf09c19409f7131cbdd455d0e3b5503c3fb18f48087a5a3601ef9ea0810fb90e14cae0b50a927fc6b4f20cb47136b063fc1e6e479877a60aece116e4553d19f7c6ddb19c4541aaf7553e52412e8854c295a11da78666f545619d1d77d751fd798d7c97d71fdb940ca8378c8912e7c9a57f0bbab79d8db63cbdfd1a04c26e3fcdc17429cbdaf4d099ec19c871cf1e4b07f46b9fb13a961e391c02e51d62c8b7cb6d7f5f3d0c961cb8968fb2784b719beb8da01ac590c7d5588d62619da50d8bebef22cb23a3ae0f65312abe9c8f5778570d0bbd2318a7e8100654f8686b5e1bcddb005e33637669c330b513fbd834d286393129e49295a8c11210a2c7accd1b8f25f583c38e54ea128542e5a65b00b48295d7a28a55b2016d6273b41cad2592a77801b86d6a85de5b8eb515eccab64444714e71289386999a943b1eda6805b530da328b9893b6ae0ef7a8a71d6828990e86cc59c01081ace9bee530e7d4e8cdd42acfe5aa456f1e1517f7965c1c4c68ef20d724b81e6ead753318b9e922908a11e44ba97fb7aa1ea722d0d28d5e7bf431df3bdf38ca22cf5f6db46f757cad655ea0d39a1bf2a8c4214135a666df1e6d869c298349c8ab1b40eeeb8f7dc2b1b9500fe28992af92e7fd2e4b6a9991072789f1ba75450b1c24be3563a1b7d3fff935cd12a29f7e9f0d05092824d657689b09229a6cb7622812cdd8d6a2ebf8f2eb5734d7e1c80e4a3c0146db36eb87b916e3aa9c7b9e680d4bd048e01fcf366e02b94a600f1318faa267e878ada0d724be87e92bd0035042f656638fe45ecca489cdf32ea6a64d2ff397d39f1c7829b6f20690d8c35c7a6b2b24d0687af63081454f082471ef55f480047a95be36ad8656b0f70a7a94ec5542af470f65d758bf8cbd58e613e9b1cfd6010e7e562732b94f092025aa6702b3b1c0bce806ceb55bc6d155f32946e1ecd9f66dd59414eb420ff066e2f63935ca7c8459e76175065dbe18b07d2eb0afe11169f39cf28adde70c656c2f1c772c094583d464af9983ccfd4168dd67d11d0914ed3e62f541efe90627b5a71a51583baab6ea6cf3d59511e07dda7325641b12bcddacd95347f8eb993e5dfc6e33f5d46cacea898b7e2f3e17e48fcb7ab50c99c9fb893edb00b42ed7b53fac5d719cac4fb1f05b6df67e90614f9801a45ddaf8e6ed6e21d40c7baeda87fbba0c56e7340c5c8774e5cbb027f5937671151d954b0b0fd88c57e40098e27a4a3a71989c903e0867d87344bcc0a4d81870f42762c211889eb1c81021e24d8f83d6b28f726adc694c0691d4508a9f176962293f33cbaa6a06d1f749badc63771223d41580b7d8c1b20cbc05cb97e9e397466ef0977af0d523a7129e4afb2039904f2b1ab50765bad2dc24869c315db3594a8abb041ff341d8ee2671b4e1931fa0d78cfdf01718aaf0c780b98df91b8ded5ba73a13fb23d91b501dc13eabab800883d4b08ac83a4b6b1d1356c450c3274597780aa7395c56797e434c5c9b49c10a15460e7a291c138004b39bf659ab9266fdd910a345fd7f19412292dc3ed3099458f093c857f2297a22878a2a9cc36686a6649cad48ed77c97cf600a947a7980691e284488b3b632ad625ef547e2c3ca0b7cc37352ad24f78efd83dab4deb6bd4836db5e44f545ff77f5dc16591964358f7204896895395c36f349e245a8fbf485b003bcc8d47730924fb4966e726617b867fabc304797518bcd8a7182d2754252b255982e287e60f4c757ba99d020a743fcaace752c9409ced5266bb89c6b60cfaacc9fa75361f677a232bec74a28a3e0aba25b6b8a8edcb8e7e290f94d834cd4e5a9991aad3ffc741b80c23b58d65d7a39012631f692cba3c9675eeaa49e7a0add0c5c08a9b9c37fecf5e95783dd8cfd576abcf586856ac053dd717c514b959bc748421d8d407a46b030eeacbe4dce12d0f49dde04faf2caa7eef6c58c7dc62a7186a60c59ada310bcc09068c5075354f88e9e2141ce74de466201663c43ebcd7bfaed2a22cec67e7eb8be55fcde240896c58c1da614faf3cbca328243cfb1565af9c20c60f766f91e98439c1b5bdccbc40f16b0b2864dd2d6c4a6d121329d7cad65919a12c75a39d7b3417b9dba360fa3e94a3420c3899387bcd5a8bd958b4e6a2012c3f793a07d72b22610fb7b931bb017cc5a3a3a11ba952e29ff0e58afc19853ed15b1ca3e8f07f5cfd43a51ca7a9d2865a8a4a5b732b3f6f9131151892a3a56c7064b23c09f0f0c3131f45958e39a29aa2cb2dd1f5a5764d80e8d28fe76f2800eef5f43b9ad87d29423cc6fce3b4d80040253bffdd87ffe55a0217312147965d1e9982b465c31be81c32796f04ab9857e06140470d8f669f312a0b9fdf71251abdb6c51aa4def3e402ebfb809f1bf246651b3e3bfa555f3318589e6d5e9921fa8c967a1e0f2f662d4f121cd2deee62f511dbfc41049bbfe1cf75950fed989dac5e2d926fcf507da855bbbf38435697f6c167d3446bccbcd663ec18e355e018a9444d4a22f670a15fd7aa08954a146825b0fc9448e803b65475f06081d3e0d5ee35c29b95c3055dcdc5ece25acaca2a59ee52dc9ddfd22aa00dc81d45b92e9cb816a5bba4cb41d13508e9e2c220f2a170a9b8b46d953f48a0071a1f1af06ca991d7a4e656340566d7da1123bd0181ee643485e56356102f7558d81705082276205e2ef102559474acba29c35b4c8f4d55f16305015c3a8a59bdef11c0a9168a659fae6b42794a96701a2b6a845dca0aa142659ca2ce1e86c36b3bf29da6b9bccdd3c3feebed10a01a8b4eef5c0db07720c5d944b3f3f195a98e7a2ea91265e825400b2aca234956c08eb1913d7af2f264f08380cb61c952c62bbc0edefe697b987f1fd57b43996ae83901458bfbbf470155fae318ebf23962b015d6775819d3b519a8328b525e83a9f2c0425794b5040904ae7265323e3c6696ee5a1dbf7a5dcbccad40ec6f9d1fc254eccf0968b4b0a3018a52853a38e3d42308206abbf4111f0c421586e1290e94403c4b5bb2b9b45585a45c2b75c471842f4bd6afa73c0f79dd5811a971444c88f0fd24e5434a1d779e0f3a3b6cb6ff742d53dfd9636d37828ebb5d875944a0d16b31a2f7832a14466bf307f4bd3366073330d7916fc4a103ca9d5ce606a3a2505789cc78e63a7dc10895aa53f47bd0e8263ffaa39a1052945eefe81ef474cb4ffd214d64a4160da5c43b09e6b4cf54d9d89929e9da76dcc35b6bfa00b61b4c815255806e0f0a50365ac91fbe77ca986abd12d2d0f85b4b33eb41110a5d9dd840e0cfda20cab6ee62a82641a5d47795c9f4833e9488b74eaed9f8eaa101bbed67a8672701d0a2e4dbbe67f6410dcaf8a1253ce7d9dcb0a6470318487b4aa7669f1dec280b5f090e13b911ccfd08cb57ea802215b87f7c605a16feae3cd507d95197afd4966088105c44d25553dd5dea00cf4930c3c85e20577b270b717f77f0f06a12b3ea22997d28f3505ed77c03e7eb2945ca77c07ae53fbc73885711bcf5ef92bf26db071ce34917bba36e491d357307d3c5324d7568c734b852af42fd569b763a13e00146a4c3d13920ba981d104a0ee74575eae16f57b6b60e28b2c9079e1b3f4c1b2c2a4c75740e6ae47b11282746d4781508985683054b139ad1ae5c05730cccb40d163b2a593e2b561f1234ac45896c12ff3fb3595847d60da4025fd1ef680882f7514d08627296b4ef943f433ae67d188706a8b71e501650e358f2fb4f975b8b106ba5de4fe1e049d545ed8941910101d07b3e886af0f493d91ca2022818bb6c0baf4c6d7513dee7e66c33a13bd66973aa69e846ac3fe72e3d8df12faf19a804d05b41774d6b4f52cf6866087f81c603507aad24dc147342dcdd818610d410de9351f5f1a8b38b7da63a530286ada80795bdf00e49184363d617679c37668d1c8a12f0e00ba7466e3cfb326907ebedd767459589ab7ddd7f9c8a59796437b8329e40225f70b6df13a3261f768a39f6f9571dd8b4b6df4bb5039b903ac214d20a1abfe69c324f67eed39c3753bc948475e04d7a27a15cf2a48f59bbd521b0d058afda5102914a63c55a8b44e329dda3227da0ffe252640d327e30d25b62773b8616062363d59a26cb3193494858ddbc89471e21eef9caeb5c9ab844223e5a89703165350f3b21505ad79ad09a304afc1fb5329de49c13e865727be49c3de54ccdc905c0a9b1ec19abe634cf4d21590bca40a01751b4c5e508589a0c4290e58d371fd32239a4ac41b1f1dc1b14241a21ca26e13bd1f89a193e2e2b06565ee75f7209d3bda5d26c1df98f81acf849954bc6f55cdae38a30c3283c6583acd24397636b460b0847e7bce99943177788fc3fe1bf53c163194c92716c3bf9f17036183d01208fd106d361ac08d10391f34114fc2b8d80058748496b58c2a6d497354864dcb81ca4631aa65729cf8f6db5043f225c98c5eea672d4ad51cf632d84127ec9bead032a774c2865b9fb3385cc03f113f0dc457050cb02493c1fbea785c8c8f16d418ed75e088be8f7313e68bc1b88c4a35fc39e503797d14803a01ac9d37870e952a90dc4522f63576a015844a99cf74741704e8749d945229cb357dd4e3ef3878a68f46a6bf51ca529d77c19971ea94d7e9d1fab14c031402cabf07aca65ea57b9d59b91acf91d7f18b7685781fc6238a626b731d13237d63666773955a1dd41571f4276ced6142beb74bcc15c57a0615c0b3b3e7ef3b3edc511d9da98836dc086b8e3077e2306ce37c8d3f8b8ce369a4f4505d2500557a1013ff431282ea858725fe1fa6f3eed49d52db8e72bd58bb16221c24957ce2c1b550d52647ed0f758d69dbcfd02c64b559924ef31bb34459dab6a42bebdaad3d1cea54d94725478f955493f53a9709e2a411c4ad2498c073cb14a426d76c3aad6f08459e22a856df1b6205ed613739d44059f9218c36b765c5991819811bea11aaef1ba95d879432f929d7b03762d106f5bbf9c4abab2c18d73ce8ac87fd40d7121b844a4d72ed2bcb2230013bdff42aa1fbba7c887407d2fd44244c178b01cb4c262313e86ff6ff27c53dc071d51ef96ee50360eef0631e31da2e024ad96c80337fd1b2f27ab847942befa32b191491a51d8144c4b86b324ac121275796827685d954382f662f95b39c0da7643b31396a6b9cb7181f232ad9e7283f7b24ca139cd3e35c4da865ba8a74c39a66668f6a56e4c0a4b75fd688e246fba48d9bda0ce41ad79d5d03cc2491b6015628445b6b9b2cd0acdc96bb0bd9de7d72d2e4273089c6029134b6f77fa5213749105456ed713218c144743b1aabc43950e4e03c087dadafd67fcacc0cf6022f639bf0eef14988bccbd125fed4bcea1a62a096a69e462a4a940f5e993e0ff7c82cad95c020aa67ac5dabf5d2761cdd313d2e6f4847ad6edbd383850cb853ecae5db125600c7313726a34fb7fe4fe2d9aa3be282729847a4bfc79dcf1cde6f23c323a64d134c5ad92c252a2f552baf014cca39a8ff6faac19c9b48b798f1c9c73650a3647bbfd596537a1bd9ae8163e10d83ffaa127df605e00e3fdc62b79863fa8e393d4f4b4ac281facb1fa587dd55c54466880cd459801b8addf0f205300ff31a8d9c3df5ca4d55040153dd1a25d1e734b51d9f446731e5bb541825e3a19af5a23a87d6a8c0c3ae55bb411ee5a5ce96b47a6c7eb7197dc184468035a9fbab1d6283012e6255594b45e56bb6227462bb5c7c4090a37702027267200d81ecad1c8ea5f3c47d9982851f86096070398ef503a69070654dbb82693b46372924730d74900f2c7fcf3763e13fcf645055fae30ba3e815bbd5e4897ad6e45c309576a6faacddd2163e9d10d0df06d21606c2df12f61a2e2b3f7bd29018e395d0a692c3b8540d3b142b847a30f96d0f319e820dd1acc98580abe8509a7ed409e467e753bdb69dcbc9e684a09ee2732f10a541212d1efa1d4208c17a42ad623f4eaf6abfe45c901015f97332d2a878a68c60095a6481d6ba3c7123bab0b1822be7ba1685d0c2bc1fdc1cb2be451c5a99d7476c67b6b129a600933e6e8851388fc5b06027b80a9d8949d4855cc5d250f832c9e01f66592a91af40403e79a326eba3c3810799e438a1b66c1fed61248a2444155b69996134059f4deacd0dbac108de722c1d6e1a50d741584077a12834c0eb76f4111f8d3ae85540539485271157d410245e6bda8cf483809106603ecbc633b4ac827b5588932fef68a4270c285e4d9b1c19e73455e5edb3895c2e090db2b1699e79d0320b1eee0be02bce4983a72a593ec7fba45bf1e74138b4ee4e3dbce35d5c131267b14d4ca490e2ff92dcb3f50c0190b18e0d96616ae710d31a073970231913c546c04047b38d08b0d0b393aeffc750b8970582106c749d7c021a7fe096585d2eb4e0ca28f77b12910fdb030963f7b18405ff20be2ec76e75269fcce4e458c93dbec1500e22a8361e9cf10f22f91171f0c7ba7e215b139ae4640cb405e8bcb2cc4fd9f65d80f3b7004b4e1a52490389c5f19681eab8012b81dba2ade793a8904af18d5f9ba6163550ab0d80cb3751dface1561faf717a8c113cc14f465b3c6f08075fe6eb4b41b6c8911a3c93d93dbf8d5df54dcfe6a9cd17550461f3d0a49923390dec98db6381bb31f5bb58607db3c404b809dd7cc349a2efdb0fbb752853a98741a4f33f92f30f20386547c841b9b9381e06eb002a4e5194cb92934d6349c15385adb5549ea298b564828bdc708a9fb0c263927dedc4de47dd0ef8d6752d1e53b2971fd3623afeb66fee73a0d1a666238701d1e746e1f9bd95ca5c7520c8694370073dc483d12955f767d5bc58c23f1151611528eea82c3d50277b205835016e2229c8616ac8d37feee01e4aacce959a21998141429b9027b088545473e1be1a0fe004815882a1a929857eb63937c839166e9a444919242aa1ff9487882c58a4a1c6058c92745d9bf4ddecf8ea1b40897afaa492c2ae7b72d618fa083017ed2523a07cb2a89a229f458a57586a4c0d9ef04cbb16f0a12a93dec5d525a5d52375f683e9305fc04b6e1e384d9c9e48363ba8dcab8ace1a89c69264b8a4905c786498d1f69f12c21c3b73a93b86a9c9f1d21a5d8ab420f7b42788978dddbb6e8407de23172d0b23ca99f2ef25755f82bb70f3501aaf6cf775bb6c34eeec5b88a20d3a28e613aec85f4ab6313d5f2238087f1f1c93d49c4e59bdc82b50262c05a75210c4fa88fa28599baefa3e1f14dfb05f4479c0b0870f5ab9b8a988c0c88f230855f822fd6a3a70a65c225269b37f185517fcd9da1a6993ab9810ab2f4e70ed3f0fa63232102a5e7a36906332715a729c5a9c18788a9c8a3b32e5322ba792ad05d2322b5efbc3e3f96bdcb14d61fadd32f74dbd4812bf5783ce0cd8b0f85e771c0914ef60da064c66122910f435d5ccdabd24a8f74085a3a90e950ef68ef8624ad063fbdaed262c029615a386e0f85554186ed149a13dc90bae864006ddb845f234f082fb36edc80db1d91b665936fc066a375990b0ae338cd9109f7c255decefdc6eb43b34de4149a23574d678fac01c0d57a673148c84403aede4e6d36643100ab90edd499b7eda42cfb8c16703c89d55a6d3a74992cb307a50b941ec9dcfe46d5ac96e8962911173c7e35e0bdd7e20d70d9254386741c246e31959e4917177e0fe26e0ec3a358e4f4fdaeb7a5d80498b7aa52aa16025ea553cc0470e759fd98cb3b439a9d33dd009d0949e88f6d38f80305b7a2a125145bf07fd43233312018aeabc9afe923713c985deb577c8e8201a128b2ceaebaa86497de491d8f9216fa957faa946741226e34062a0e809ba2206077dddb422acb36aa7597f05072cee1d54abaf7bba47a123c6c261a3d4fadab4c51143329c565d4871dc4d1c97c436b2ee80405f434cc1044a377e06e9272f7f3b84c7494b984b1ef3d0dcc38b1e1ea43e1a699e89a88d66be2223b80fb2d9df2e757bd2f329c719aaa4ab0fad47e1cabb8b030928bda52ad56dc478b1c4e281ad1ed306ec1a1537d68de8c720e5793392521cc28a009ba2a1a1294794fa213ffeea27118ba1ce92cea9d382354d89446f168b88948685b58e90902b736795eb9eea5b8b25d12db3604dd1fa69be195cda27b84ed51f0b49e7171885346ae2e184aa195d97130e71c9dfee70ffd6af293a9ad378b2e8ac6d44f38ff886d8dbceb83884e4ac4f4e6414286f90d24c75f810c97a778bcaba8887336370d030debfb443b12eea31ef3e796229c26514044c9efc8ba215f8eaa150bb83561087e0cdec5721b339942ab971d5a6b9538186c4f042b10ddd6e0233d63b4841cae560ec74c0a0dca4de251c567412ae3453d166d2f637cdff9ec2701d9d0f48baa0a6081c61ac0ed60c16cc8261f03ca11b7424eccad0f36d3662ca6e64970c2d63935b1aac8bdafe4743932b45a4aa7428f277335cb4d043475364c6642f091add0716ed37c4addff9644cfe1d919794eeda1acff0c4d0f42af5fe923404dba1f46b5e0dbd1f660ed0f1ba294c5ce4634c2486915efc4c13c3a458a221a38f915550974609418ac9a1f11e0b7a8f607462528a890cf9df3c978f3d95037742976c97bab2a1a6588c8d45c43fc538441248c7dc11e9ba0738427f962048be456c594c112079772d6dec4057cf3f18ac90bd5d2b8f260c3e2080f095d2e2fb01618192ecf86537ecc58e0cee204cf6167a33de1e0f9b220e5022fc618ae4ef57f0ee72a85e031cb67b7d31edf2e26a1ef57f93074e6c09e69673ee13680ef9896dbe496878796357789b6601d030de44dc6b95cd70bcca1962f6f5caf7a871624795d3945ebf7243a7f961936d3636186e265ebc8635279979f28c4a56b2f0707aae1ee7469417557740f55590bd49100e4f87bdadf54d8bb51512f05db42e8dad3e8e5a9ad4e1805b997b65df625a29b77719a06fbb05de559e2c7e8cd4be8dda79b491088eb7f56d6d845dc9f6a90d5c036c5ba2e46d00c1bbba98e57a9d3d45c7534cd3b9e18a00d8201003b66daa1f454d77b062f68da5448c0489cca7465469370a891681d3bbd3ad259c4a8f62a78fd7f00dc9cd4c04c4273997ca352cea3ec7827491c1886111642a94568d1a7f4cbae9be3531ab83e137dce3787967cec7fd6f2980da7adbdb888b1dba7f85fc440b1f4529b497188701887e7d07b6ff641602fdcbb50c9c916cc41c980ff5ab23a5b7214f4d7a1bf82580ad0f9db7adf19823f702143da8e9cada1290ac467d72d4dc86eb860747039c2dca0a6ca2b5b5f32dd43eb9e04e6c59c1b03958690f1773036a9f5728de58e515ca786bc1aa76343ad8cb0ccdeb9aae9f7694779f7051d4e015bee13107e36fc7eec298573402e223220536e3a9929ce584211e1a967d8c6d84b8b72f5d86ff8506b79c4c44cc64378e04718b2b532e8f3a00bacc8ee4e25963dd914fea107f57720c7ca89c90c9f141e3fe9b7554a72f545a892bce72a50c4f3522cd0749e25428003420c6c1db6bd162dea40ad516a7a883a14bd1e4a1c63df147058e1105f902f557807f57d15302c4c681c9ad9c646173324c7ce25caf50a1c1e9e1bac27e5c39198602029a45b3ae0368b6514169789b92fea2e08111256f96b26996aa95b62709df74fdef130441ce0c9fa86d1e683daac925ad62ff126129c4053353173581fd5d87e62769652d689b7478502b080b0e06401cf5c43f588627d1fff42789c3a33235187cd4d743b69551e7591038c17dfc8eb22243dd3a1818c82c1228a548e0b075d3614c41f56c453c5a706068adc44063342c8ac7d167785a24ceeb68621a4f68c1a290ba1a0ded9055e08bcb822aab7e1a6e52a8eb57cb2b698e2f44bd9f1f819c7aa1fa9f7e436231b69c8d0fb9c972482f475a569c08d210d339fc8ab4fe80f265b9dc5932f6ecb40649884f8ac8c50cc0599470a883f30edfdfba9f11cbd98daa113a603fb7d70357b1390e055a9236f907eb026bdc6f4631dfe129aec14c9d69488ac03513c5112ca5d42acfa210dd2c0e5e83b52f09e4efddc01f53695599f7bad5b9a8fb2d193526322ffffe2c70e0fc5c5c3c6d32d9cf40f01d00d30264d5168125ada8efdc0107b6259a65447c1ae53838c04ac5bc0c1bb3b02ef0964460b470de4230da456c81c4731908762b42f50c3693c3e6d65e79566576a48cfa381eec267781052d65c2fd5863cf18fc6d9038691fbe2e721c06543cf4555b00df5dfdc7d790145c1c344a565207bb0d4f57cb0a7ba2681f235b412b595e6328ec29e03bb55055ce753876b94c03a9b706ccf4f6c9a57b4d402b97d1fa606f3b0636007bec6f06f967bdcbf8bb92db69f73129f0c5ce19bc350851f4d62a87f4982d77285f86cd134e0047b05ac6ad9ece32b5aaca6a687cbd9bedba659199c12ceaab28b37f5f3b0b353e2b816e2d6ad0ef0a0832ca5c10871128ede41e486fa168e84797c5040ce9aa0698a9e5c12b35b76c27d722ac20895b3654ba039f91411f9337552bffbe3ee1f2df241c49bf481a3c5c7010862af380342d6bc8d65dfdec77bd90d01ef8067144b21caa7b0bd2ff931a10657a79235136a2a8cffa60b1de1d21efa19ea20ac7e30be43fd1243cc5b156252564179245711a9fb34478368a031396d2850d8868ee483ffc945799b686d51574fcb32c9782d3c15d585623383bdfea9549c958cdca53698f6410677291d525cb6480141ff1de03cad8c502c05db84ccfff1327527f7f77687bb1a503657877e37e5e1ad4f492813c760584bc88ab8e35b83216bdda280b4f3ffd5b416afcaae531ecbf68d54a2f78b0829a87114a54a69129cfab053653c1d42c9f4a23e8f869f6040fd4987ad00037d756de340d73e9fee30a8113953d515120875c6e3444372d0885be939454cf9aa93c49e93f227d74e1b124b6aca84a2e84140ffaacc833616930a4c1593d98d41c5ff3ae8817c9cb442cac52245bc4f021deaa8b5d1077b94baa0edd7baaaae6d15df935c8ca4f9d779fa3506abea693be21ba1422d309ad08a5e2ed4db2d67065bea67ae907240eae4eb9f40c19383b6d6c0c93ada661eb5c34910a50fa273179032fe9f035a4d328a05edfe515e4b730577a4f30bee8578a6d050e3d346add7901f7eeb345a55fd035c785026cd8786799f82a0892e0aa3f6e3a432347998c1e3ae791e5e8a0e5bfd048f5a43f57f81ad31485fd06fc19ed73bac8d9b8847b5969e1bb4c6ad0ace222aa03b5b963361bef3ed2ac4d714665597e6aff8d87573b73407b8908998a410700cdcd594a367cc51d1f449ae9d8bb2d7c39a007d3fcac4f5cd0aac262e17316016c7ad334e4bc17bf9bf540e8ff1364060c8145f88259d9134a8f98113a0d1860bce19d92113a52526c714de46ac09682e8d7766cee86c7162c7cb2bc42e58f3cb484c159f84a721866c9a14807ae69332026b5e0d620072b9ced2e1fde8d74d5bc8625e17b58a8227f3109d632ba07375e0606a08665e770a0dc8cb29cf17b938d71d205d8f17546208e4f65ef771dcc2483df9b46dae4f81295d97181427e3fe83fe0f7c27662776514379b23bd99e949ec0f8b142fd913bfe77cbc2efa9ea5c6be1953fd39d0f54a8bef8920befef2df5f50f2bf2039566e2e35323ecc8ad068e50021210774c1e318937b527b147d9b97e755bda925000753f6ce6e93b28f9fac963cc9e06d602ebe9641ba01336aa80c71f8ace4b0bd40ab6bef7a9f0a9496d0933fb186e9e6fc30401992873c5828cb687d10585ddd06b47551968daadeb55af2746ccd3281410adb0664b4bc4330f3b3609f725b6cdabd610509907c5c9ecae789d322c9e3e29e0d43008642ad2325823ca198ae0e5de17458aa258893e898756dce7dbba463270cc3bbc4bac557cc32e32bb760655e297f716862250855a91cda9194d08a864b4632286b450ea107f3916532986e3c80bc6b23390846884880c03e644f1959d3a21a9c9dc48d4bc8dba4f2ed35f14db3258496870c5cdb198e20ce440c7a7dce589a945601aa2885a513dc8c1e535f795fb55fbc21ee18332989013a30f686c8693e41a97c1640a1b0990caa0050868610094e6d11a86617f63b3674eebabac1301a6e5abc2f972a86f91a9bac1da9774055ed3b81d86b98c51a7a3e4395648b6bfe09e57038cc8057c6ddde8b94aef282bfc4e28f8d306162123d266a00de11e43fa9cc6b830ff592a71520c4b522c517e380bb7ddefa6bbce4028b63ab0f687f2f9be0a9895950932a7dd29032a2ca5932c08a76ef5412173bbc30d1a9298d5700288cbf87cba32c6c682eb7e72c592e3b05063c98c36f00e55b989eb2f68c99de50b869a7700d459ec2c201ee5c4c2b4abc8d3894f9979585d5786cb2491d508d54dd89d8a9263d2075368dc22752266d9883397963f82f35ad74ed316d8dabc19e52a4fe3c2cfec96edc0200ac9977c3f2d2740d9bdd9f26c22bc2ce6f12955e295d9db57e698bbf2c7117b2a5a1f513b5ab0f21cd4dc05e3b7b8233a16d336b2898df1002ec4a660544bf356236781052df20350194c2c36d534b66f9d03792098c030c97e4c341437c26a79fc4ab8101cd2612b8baa5b9200bc571afd60d414628b48fd48b5d6a6106855f4832762df3c390465feaab675891becea58952aa44573a1dfe522362e4da160d6ed8680a226ff443bd57a49c5885813d91463e8f6bda4da1d2444c444c9fa34e6ac9a3067e2023841bee124b9c50a9a44ba96fbbd7d3a817510b96d1dbe75d30dc7b887f43704377cbbc1e37d2a0ec7c988ad222a2ef6f5ea672c354b8c9be09c40c264a218a3633b2e17b809aee1fd158a2671b56b51e0cb4ca0a7684fa8b521850777b1a03087ef332bb9fcf9b7f33957ce24c25dd22b939c34db9519a098fe09e051c39269ba4ba2991b3d6666f4fb2073244b98599a51efe25b8ad896f6807d592b6a9d9b2c7c3b29198e01062a72dd821f24cea2abc039a347ccc0176f7678bd0cb1959e4b8c631a0abadb2a2a4b74290f7918bc50a57e4f65fc9ea3dc0360c256dd77fc96b2105dc20c811c2db941b8ba4843765509eab35b783060604b50a3b9d44193296ab7dec2c3443d0ce68c7dec6a21c768a472766b1c68251bcf058c4bbd1a42da5c9a0615f3a8f1e37eedbde08513f6971bbfc644237ea6bbc1f4f99209fa73f573c53b6d060c8423383ab088a06d1c8826361fdb16ece5cee32351f56ca1335c7e1404d7ddb54309ce291fc7671a90c65ee5bee939c11db1a846f0907547089d7a62b8b636b800f5e1bbc063d02724a8cef5db3ddd3eb10134edc649def795114a78f46944b25625a12048ed57d64f03305d157218fc556f2b844cc5ace5165efcc33ce5e592503d47d69ce6bd749791a7384f9d080155a8191cde34b1d297628373ef93f4de3a1a06c5554babc8a1c32e7f587749c11544099034abfcca898270e8536aaca94610460b28d52cf01272f7ca12201f844a7091ad2b1285acf009cc3930a76c8b82e2e43176bfa394f13a82d70707cd51638b2bf960b01ca598f6d4d012b217ec9247621fa9d75894aa8e856f6ce9c30c9e1f8cc85dd383178853d84678ef5563a5d12d547213507a2c3bea3dccc5d377f5b630834abf1306c380445107f1af497c04fce0bff060f4049f7c585543dff5677c4099c7e71ae715b17828649d13686bc47614aaa1109cd9835f2c8a2c1cf2722e0718b54a427ecf15f07d65640f7c96ec3e43181e484b206212530c3ae1c62f37b36d25461f6d57a19662da52a25d41b31e2248c347eeb98e4cf3168b2bb52cecd132aa7c21e9e454ab12f920c1dd3a2e746ebcb08b5f881afc97b32664a3ca969e02e78aaedaab92c5308331e03bf7822a29db0f4be66b75da2ce863f9c48956818a9a316dea1736994a0a101383d8bfa21f6163150919dcbe41dc30dadd2f9b0ee4c0a32c6c2e53c7d4e0cddc11ed7f365a60a223113330303b44b4bcf9024e2f91949ac4dea18727b1ebe4ce3de1f67d263c5b292b1b8dac8494ec5aac36f0d0681a1b9ae59c7fabcb498b0aa76a082f072fcf12811dc01b8af83676a00df07a1407891b37ad365b3d171d0bbc8dab7a42aad54dedc173d5731a784143ff6ee6cfa449c65e14ac2081e2f0406ac43ee40dec8a596b27bd4de1dcf542f21f4c7de9f7a0874b792c253494f0e0a00e1efb8918a17d4b1e8d8f9af826fbb656a71ec637541cfdd779d9385758922366692355f5d1a7f8979d6eb2a75c0bf00481d7478852f35dc3740190511e76ae7ca208f6a15f5328276eab0aa57d0b4e7f1c4c2cf7a82286e36695797f300dd687fd4e782bce2070bd73fbf9ce9093351f4002ea07b0547a835a55ff11164701d66f349169eba69b0e09f1a7c76af54d591037d83f68e1d893d8e139be80423711fc59a2b1f6b746fff4518ffb5c0c359343c37998215d8f08a334869c25d4d8a15ece72699321071c46e807bf0b944140d509b7ea76a265e5c33d88126a5991a7d78e002876093963ee76faa6616a2273fcf77391364eca86fb586f020d0f3d917b27643ac42bfc5d8e5a0076c6e357f9e0dba994b3fb0cd3c59592c1f17065c32917a67dfd942022554a5756874e811761d77043c0909a204e775563f89efddfabba8a1403aee9f67244053d98f91898b7833746d99a572423d6cb1b1129b4ff87dab854f0628f5d9ef43c269359cf2a18b6ddaf91dd7aa940f9d9b154dec92921b3c6ceb6d09746fb4e8a13bcd1d929af3f892a38993ecae71778d01e49f0b5ed1f9ac3cef7324f88a384b0f2a578585f321b9e5d2eeb84b5d7995b0fbb513ea377334e3155901d209181b41942ed8df7d3fcb144adb5ac8d64f8c824da1e27076d1a2c908620726c77475243d50b6c1ab26d785df9f2677e649e1ecc1ce7a96954ddbd3b8e6c24a8db15bee7f788d31197ea3587daf3906d38e7deb16ebdff4574af0bc36efbcaa270d3b57bb0a424df436c4101846f342b4abe1ad8de337199f20c31d98e79bcb6e2534b7ac8c1759586b31008dabacb7a7fd56ca8b11431c836415ec9d4fe49593e34cd6e06d565d0be96736398728f77051e936839e335208b9c6d7434859e9f8cdda145ac08ede05b5a922ae182a78a47a282247d1dd24a894fc90023a9b9bc5e94d21c7df0d633915f73b14f36815acd92557902b81f90afa98af661fdd085c5372a41907d4cda9e150aa5262ab03cbc195ae64305909dc70865b7a842943cb7468c365d11ba97b10289d207c8815e6d929436449a99853327391aead437905588811d3b7d75fb4c74e4eb0ffce43f96155041e1bc204e899050ad03613a5bffc678a6dbad5139ef51448c7c648bd748aee17a4d7131557b0632f5f8292b471c69e139f5788f8785a2b12836d0d6076d068725557bc5bd174e153437603c96baa4f912a8b904879cfbc87d829cc759711d02fb3ce7d7b09a4a734ceba2cd85da9dc275665a7dd19b4aa94a5c03e38d3afa803ced96bdfa34eeaf691c236f80d16ea409b30d4550d36bd56daaeb28163be792e77dc5e53b151464c8f0d88e85e593c4b4637231b921043f01784dfbc3a0d394d0041582108ec8da12b683690591d368fa976aace2dd36196e24c29d0d0d0538cf5c77ed6ec1ec6e28c5009a73145e6193431f060515615b61429bbead88e009926abb5ce0dc1cb948d61ab06444904338e218b36999c3411d726ac556e65a8254a5d13b7bd11221844be4fc9e7dbb1ad137f9aaabad6d8c622d1b03fd2ce64445633752a2a8c30c23d7c56b7d1d9b1f94f53707d23074ba887f093ca9da867ba9486b6cb9c8eed2b5e69f7d670c006c53dc487b27d152b3aec4b5d1aeb8d1316d388db5c568ac4dbff707ef0521a14b8d55c09ca3189debb1d2b1f8fd7fb2577e2c4d65badef7a65441eeff65c9015eccc3265455728a7cf5ccfc89e9fc75fd5c4de38474551947f19af4e04ee2c2b6c48796983273a1b7994fd68d90e8c32b4296d477399c8fac724f24198d2fee581e7e36032a4859bfa6fb88bbcaa78526ef937460aac5e03fa71ba7e5c301616a9037a5025507ef2ea23665adbfe6908923c526b7e0e6535da22ed7718f614db3eeabfce623b152a8f6f51a79b0af0f81ae6ec38c6d27c3da1a139ebb12f89228c88856b17a9bd04015a5843f94d08d9bbc9967b4b99929401a607d907c4076088086b9b4c2bdc566baddbea0e82d4bf0ffcbabb6d6db7ee21d847708f2528128d461f88473bc02548514a7ca31f30fdaaeac72edeee207cdf488bf932f201d3b723c0a5df3c4a8f72c093d672ac05943ef5a7eeee943aa594babbbfc0bbf3b8c0f47d94a1554dad0c569ca1556ddbced02e3bde8b7f2c397106195a5593a10233d8fe19dc855a05da45a717f485788e6d8b44088e6c914b6cabab7e0d15309fdc116cd236e02ac0dddf52965b07abd3afe1e62e85e4fa958e73f678e7ea3acafdd218a05f2259a995ed8358a5c40a72a9c3e4f506120d483608f92489dd6b395b695a56f83817517289493dc06560fa05b05dd7756fefbd5cf7f7bfeedafadcb5b7b39cadaa92c6c9fdfe4e0bffa28aa9fa6fdda80f24022842e06244442e716dfdcbbd5305c5dd69e1606fe8a0a19476dfa150d7f47e214a2fbd1ffa20de7f546cfa7d437f437fdf47e86f2814facffb2f44bf344dd847434f81c0337428e4ddaee36c15b1e5018d149a8640ab5c033d41203f2c305934ed6aef41af431ee007f1c0af2215638040930e7a1f04f4bcf7017a1e08820bf81e656895ff0fd83ef7fd27ea68d2ff8686e6090d1936c6b59da27bf906e9082e80640620b3a65216d0216e984f9863f878fe2ffd027fe547faa10fb2f2dfdb770f9cd346e7cb02b3675809f2fdcadb0fbd8f95ff3ef433d3b1c7ca88ea8185e83c0c1c71c09fb0ef6dba14fd0672f28cf701779eaff254fcd133def218fde84ba816484f1f7500d2d3e7417a5aa294e2d28cb16cfa9e8a28fa163d49cc009d221adfa60dd026274daed872d2f46ec28f7b84784e576f113c9f7e024260888a48c1ee744649fe74f6b3f66af2698b780b6a4fa3e39b2108babe2f140a7d5fd27cafe38340bbbc226fba77ce2f3f7f2357ea66f66efedf9fbee7af82b4f484c66928ed502804e6649bf69edeefc423ee971a5f510736d1dc4953ab1d94eec8ed8ab4cac9c0f7bba7e188193cfe9ac1638ae189f99a73081fcc9afa0ece1ad7410ee814d995c88e64ce785f017f74c6973e88caaf7c90195f7afb313860be68109e0d5b08055979950f52fa196f1fd5df63e555be47e9673c0c2baff23e56461c243d54481fa5d18511a76b02073488c1544613bd81123d3d7affa0ff7d87441a27609abfef75b4ca0f40ff13fb47e20ffafdd4661ab640f3e83f1ab6909379803ffad1381a512d887ef4281ea21f8d2f73451a8d9ec7cca3f1cb9a7bf4a1cfc958fc9e7e2f1243a73cfea2c149ff7b31a6a15de0386bd899359512f1dcf3ffbe102d4279280fe5a9f90b91aec0776ca9a27056355777d4a10dbaaee338b7550a8d2cdfb889a15d1aa0b4092626cb5fd48926fde94fcfa0186aa0410ae67e6678c44783bfbe918686864728c7e003a631b8e0f4c70a1c04498fd07b1fe4d69d4c803c81749a641a76ffdd1ce02048827c7fbfbfefc3fb100a86fbdffbb8ff8d38487a7cefbd8f50134e282206fb469726e009f3121c61069b30245d48b45102642ac9f46d6878e86895d3a7d1d1af1a5a5a4a359fbac2fc6dda35d2f00473634b252203d3af34db1d16dfc7852a154363f939f46e32cd39c9d0f7d80afdcc27d6605b3ada45c723dc7168e8de346b42d9bd1fcb23badb420c70cdf443ef893f3ce441a7e40cd029dff398f91bdb1b4bfa1ca0d97b2e24dea7ddd8d2a46b81ed88af480998da276aaa1bf567ad94ab1dd785375d73ad56a95aa5e3851e31d07722a5a4a30d8d8d116ead88afa3652a12754b4451606ab34dbac2a44d5d93aa6afea45dfd940655a1221a129fc584af373ea1289c326d02f797150499d61b746a0e99be7fd14518b3c6366b46ef4fc8f47d8c4c7d4aa6ce844c7d0999521723d3dbcca3b7699148246a95e8673845a2d7e637579e783bae432af9d4d1ba147cb55f1376a9756b6bad96eb1cbc5fbd5a02696e863cdf5226a6f9d3da5aad73b7db759ad3dad92a5badad0e1ee1fbe60c65c955afb5863cdfa758968098f27ceecbdafd5c9bb25b6b476ae39d58860700c5b27ed9dffd57bbee6b37de12c40098ed0804ccf3c59203bbecaa5b0ebce14d67ceaf577ab9c5727a9e9d5b2c2f0dda63e215d75ac7daaab68b00bea152598e9b007ef9e73acbe456265ea825c084d2914e55b5dfe9e06b4f07cdf4ee9fe9b0556d5703bea1b21cd701fcf2cf75b6c5d4dd5ac2def5c0b5b9b199d9c73955b4e2d4ebcdb9aa4fbb31ff72806f9e40398811c2010ef304cae1c937060ee50994c31640395cb1c3a89a85aec0a33c81729805619c27500e3e59958311275f5437fe2587582ebf657130e7a7307dfaf4c962f2aead2c26effaf5f69eb3a67d4ef790404b1312309d7e8ba86e9d21dbad9f46e9ef1813727f0f699d767ddfdf44fa7ba75db59f06f9eb27a7091f173c6189308c3cf101d6fe8212e4ee723f35d2230619fa6768d74aeea72188dcfd1ec0b92c1d96d82181143818b20258bb0b723fede9c27573bfa8ca10430b31be18c10b6244602dc8fd364ce47e039832f002db11536460451753606dc40630f79020729d4043a460d283154037f8a025cfb9c2ccdfdff0e6a3b79b183914fa2ebc09f51491690fc9ad13a3b723b8a4b7d38dbe0d4764ef3d1aa55d657d2f0abd512851ca4aa7927ce774a9d472575b21e021dbe04a60e0f26ff4a68ac5622198c56230fa559cfefabf22dbafed9ab9898680cbcff46f47a338495f5547d5979f6f4ed2131d4dd194ce59c779c7952aa6b70a68a53cfee8be9f1b5108680ef4e8fe33b471b1945d9c403bcc728b3494f27c2134a7773efbf5736039b0926c364322491151cb0de80723d8ee1334d0e78925b3d91345f099d12008081bde9a40020a26ae48c2c3fda2882783e28b1d24a0f86249121d2f566357f8849124766bcf0d9c0645134320c3f280ade83b188b28f60684c5ed4682da039405122eba271d0da807273e403d34e1eb012ac108785057b329580006adf37c6430b00149b6439acd6444642e00633399144a84cae049215686acf6947145282b438cf945685034b1d337289c88d5a05862c909f27c7056b3a26fb320d86ab320dc389f991070c8f3473116d03c66c4909b0a7450e2062f1c824d797e0b913c5fa6d9145f0c99c934a60af2fcd2bcdc146fe04dadadb37a0f152328307deb95ae9d9ddd82bb5f3ab5eeb6549a61ab9b46eadd71959bd5ad7badfe396dffcab9dbea2d15757f6955fdea5e3d95128c80307ddade95f30a4eced6aed60af6c096ea4b7593833ba8d5625bbf7b7e59bbcce5cfb35f77f7ba312a7530080cba6010a6f3d6f75abb7b345bf585d76aed8de2de7b6f28079f10e0eddc72dd15e27a4dbcd00c85beae3a570252fa3e0b5e1a08da0fbbea1cc7518eda2b44d874d62a0a45ee391085c224dd3636527c5f2772397ffd39d8899e3f0b7662e77abb5027f25973bb02cc970c55c810f2429cf74eeae06f4d5f2f544d2dff122a012995461ab8f1bfd539376127b1705f7253c1a622edfe0b81dcfd7e865842e21c2bfd4876b40902d39fb58ae85cd9cf9409180a85ba06cb60c2840913264c2865e26f278db6d73ad36ae9e89086a65ace5ffe6fa8545cd752dbe561d5410d47adcfe9a0cfe9d5a7bbbbadd3badb5a337d4e6fd508a800434abb26156028e9176dd7a4e20b2bb2dbd9aca920982b7f777beb77efe3396eecd1ef8d38383934cc5e90e146b3a9d526adc77deffbfba43184e2dee37cf47b6310effb47141704c585df02c31107ff1cdffb0ef793bcf771df1b8384cad603c2079f84228d9e88225d118fa8cf8c5869c4a1b21e1f596c468f9d599ae8c54ada33a2b8cf81adc8ee88e2c61786d078d3e7c06afc84e12fa98fcad39b93fe8f43ffbeca884343a11187d2c61b0e0e9d39edf328bd599ad8224af416251a5130f4d7ef416b5c1c8142464f2c061bbdca23e981bffbaefbd1f7e87e14cb4e1abb1bbb47d6b1aec763b55bac763389766669882be27492bbb5be793f63a5efc7dff9eb1000a6f2a31107498fd197469cd28ff08f469cd2d8b81b71da07070a53e9d957b6cf37a2489f03ebd04f58684491c617864c27457666694dcb8ef24161dd535887a4c7e843281842ff7d8f90e871fc433e3d428f471c97b9fb8cc69e99d76aa5cbee1804490faff49e26c08278234af4e0877f479468f431e22041bd709f011376471f5c14132061882196c462309f39e98fa3d3b0ef85841e1c513e3ad40bde5ff7c9fe2e64e00923dd891d9460c2e4492c069bb06f0c222434c6c21b921dd0a00959f7a5d3b2ff8a12f08e21b33cabc8a5d76aacea38e96e67b944bd101be519d6989dd558f6b733bbc4d2fcb928fed3ad2dbb73b1ec9c4e764e96ddceb27346b2733ed9b99fecdc6c4950e69c5c8182272c04a3b9f45b8ee5090021ddad1154c324c512401039010f38d0927447945827497431250820f0c0032328c1ed6044f757ce91b46a403902143a2c11842b909044b8832c9cc2faa046173d70420721ccca10e23603bbc30e4c5031e4e3de6d0410bc1d42d03742348aab7246cc1bacd005e3075caa54a616ac6ad788934d61018913cc8e48c20f4020051254d619c132f103ca12426881830c7820850cae0e40589942092540a243061547b0c1c76ed13c981a891a0baac1141cec000832f8028b18f8f073854bf7678d773f2109b38a1a5a5f45a23470d5d90c42c187224c21031290412b0306a1eb33d332995a70cbce76a8b13222a28b984ac89125c10230c0c0a107260c41628bbccc7ef79a0828068204b12060f013021ed8915c9a5e757be7360b68a99a99b72a014fd8c5a6b781560374a53a0089004a7f09ce7eaa059dd5e79cd3a953a77449a6ddac083c9fb6d3e944a67fe7f8a3c3d3fb814cc55bbf1aba304b4b2746e2a6b1e4c69ba9297b1eb57b8ea5fd43bbec585e7b6ba6de97f443e3a49452dad9daa2acfa34bcb196526b29b53473dc674aa79db6565b3fcad99cb05f494f6899a179b92b56b1fcb8f73cb14559b6b3ef2de05aeb71dc5bcb79997274baa8abd77441ec2fd91251e7fb8fc952045cd63c7f8b911005985354066d17be22d305da03154bad128fe01efb8b1bdfc96efba26a171d9f76f7a52bbb37e1ee47f75f7aa3eae9abbaf9b3edfcf9d56bcf8d56cd1fa3847ff4f8fb5fea83ee71c0e61f21076cfef06778130affc51ff8492a6ffa9268fa9cc2bb7c795f28903e051105714e92c6bb88739235e6a39e45fc311ff5df6c6141892d2c2c2c335ac672b2fc0925b2fc6419af492c3f976a8ce5bd78652c4db9344922fe92887f8658cec7b8069bf1f8ad6ad34bfdfa2f690bcc8df89a4ca63a8642684e68af0af03b0f7852a05604db340b807630a26798a6351202cfbeb767940b9218b89fd2bfd786d2ea73ce49a977d581534aa93b7577a794fa53a74ee90bb8ee47cff3ba11974c5d770b1078761794de3a0ac225c889a2c0a32bae37da62d4035c964641a2282c773ba765e006622d17de74a696735cd775375a2a105f10dfefbb91e77fb3bbf77a5e28f48537fff2228c7b04c39b6adbbbdbbbadbfedecb5ee95ab2d5cfa40300c455654e6e4502a2e67804ec9a4cf5ca59a8430348c34e2a4ffe866bab5cbb3bfe9461ae9ec52132d814bd36df5e3afeebf99a098a2b4abc6dad543dac57a7f161d1659bb5aefcfb2d32e199e22ed2aa25d3246da15f3fe2c4758926817aac7d4939c8a1153b55450abfc5b62ca49abfc5962aa498ae6f203dc4f533401fc5804ea4ba9fce0f224abc94e3b7e7b8c65fff246ee87f95ebd445b93feb46ce3ffe7770f23928c38b9126b39650f46ff1b4dc1f4734181822459bbb8d5b3b0bce9e6afd548d69af417850cf06030630a084cdfc69727198988b9f25f892423b7c68aa9c43243e54442b5b8a09082ad236f4a63b688483d73e54fbbf1de6cd6543132b571e30d5103540062796d882526450d549558de0088a5d75410cb159eec9f124bd24ff67f11cb959eec0f00b14c6991fd47512c5976b2ff8b650aa2ad4c39c9fe2e628b587a0d25965ecb25592b2f0b4956924464ff1a62e9371aa22dfbafb8d4b27f89ac9145647f95934c0395ac69a0e6d2742b7198a2954e2bbbdbdd29af4ed753763f993e6957d9414eda65dfd6ae59bf24f564b74fea6997cdfea42266d99f442339e9570dd291764da0217ab27b33520fc9c82cfb09a2c8256949f61330c925a9497692adde121a2d28a85d6557cb334f49bb1c08cca537f39a649f5a78b3ecab9b4848e7d8a874c78a6fbe7c1d386b66a61fce1a064c98f5012e6fb6dfb5fd20c635256e95fddb2a9bed7553cbbfa8fcd599fcd58d2d32824d2a9adc7223db1618023b7320f784b3200882604eee7e2ef4365d83678fe3de34c90e193061fe330c6d1d43082541516cd497b9aa7594cd7931aeb5d61e6774bccc52f54612848c0a2354cc269d2c14a901174230e207082aa6f8747aa82fb3659e11a480f822f75393028cfc2c81032448e8e20757f20dd101228bdcb966618258ce9127900964f508ee438004083cc9d9b6448540619c0c30007b680b01f6b4734df09a836ab1b09c165caddbe92e0870497dae678417a285be243dfef3813e788884cf6bb6e571db9343ef76deed44b52568115b44bb8a5cb7a2910ea6d1cc0d1556bd40356bb4273bed9935f6fd65a86190de784eac4093fe54948104ca30575b609e769557555fe56fc56953f8f966bb38c0e51f134f007c3d5f5fcb8f6628f2d774967fb4edb694ce48554c2b07cd8c00b5566f9faf561e337bf4d6eadece556be79cd3154ed5ac3e57eeddf59c7d29cd7789fbe52de5d24443d0f2958b7f4588eec7254a99b04b1081942638dc0a032078235aabb3dc4bd7755dd73d7d3a84e3387b39ae765dd7d9207e3c28ea0a5010537c4732982750103d950302e8072279023921ab224fa01f8a64d25c810337cf1a0e98722d996679020141c9b5f4402c16cb35986a52c825187635775fbbff3ab1ac23f7271729d8c71ffe9d67eebe3e37fef0af7ec7f2be11ddb71746537069ea4fa508f69f43e052f572c39db3e30dce0041f3058686b9cdc9aa936f5d147fdd5719a2ff76230a705973ad95b3b5becd5f0de386f8aa0d8a53971812c6129890d00d33e8c1a1439810050f4cc8d442466b2d7268d2036b1b644c88c1be0ab6d84fcc800735d867c1163bd683430fece3c016e7942c663218bde5a0841becbb3ec4c007f679608b738a2634198cc688111d188e10308b1f62302414a7633b42d0603842ba16cc601e111d536e1187862146184b6042463411d822ad82074a7a60df086c7186f1441536d8874798d4448ed468b01c2aa4db4dd0fdfd1eab55486713d21a62c80f0c09ea0034273b136ab62a8455860f4660b37194e09d619040093db0ea220e92eeb9c711e23121fe41848c31fb762c09a19ff6d3feeeeeeeeeeeee6e1cf4bf3973cc0a223b4a5c266013b0e0c6c4d3324be446cc49ee1a973da806af653774b2e8ae4d99abb5044a88c0dfe275efdc20c04ec01c57c71ec82836c0e505e241f902612346ab11d6d63999989a62aab24ee9280126b5457bce169369daa6258c5d7e3fbcd5bb97f6f1c3d9b37acf39a927f21a86eda775bdf18aa41a0af148e5a78a2844402877dd83ffcd2ebca1ffa2fabe8dc055c812afac658b3ad1fa4972c12492fc805f60faf32529c1dcddeb3d4d4257c8746c23702bb772d724497eb818f090e0a7bc798ec692e6127cd257efc3bf57349634444028df90c70d6f385c6a95bf29f4e10d47b92c0ac59212c916142ba5f4ade805a6449cea70bdefec87e1023e310c6f3c17aec8e5ce8e28d7034c05a64bf2fcd9edddfdc4d5d55adb4d96a6dd5ec7ee2faad7cad95a395b6bf531878fb3f6b9aed556f746f2957372d6ba6ff1dd4984afa35d296d253e0f0aa695560ac637db45bbbb85744e6dfa840e7ca803d83c9fcb73a473552715b9fc8db8fc4d6af39c739c5ccea914e79bb366d61c4ba90b3e1e33cf39e79c13680456985af544707fb24e70d70b7e5796727322edfe8a654ebe2038a27884ff037c7ff0fdc3b79f93a9588235e4d07f6248bf9c1c128180d91ba90ef4d6596fe7c009efb9ef4bcfe33c8fbba1e7aabbbbcf27d37598f3dde7fc2b76f33bfac4ddddbd4eb74c8c9a8cb2681b44518cb4f8685a453fbc99e30f94c82dc2e88726598cb018fd204514457884ef1bfd30d262a4c58836d2e2f230c262449b5448b18218ccd61e513dfaef1348f003ebff969d618e5404fcb9c4f9099c04af00cf6f317402d34a97409282270eb6dcf6e98f6618e5ef24a54da7982d99cd327d03f48bd226fd4d3f6c62d6aa0d9ffd46f5b07f41d2f44183c0a603eda024cf9087ffe046d401722320380a8e02a3627961eeb3f6d08bf952ae6ed9df3ec1250dcafea455cefd87654efa9f3249c6834b52cf9c1e66e07be23625d7d04f73870830e51e493d73d52ee33af1c8c8e0b031c02c012e2c89a9332d96141997cce3a0a11173b45aaf57cdfb7f35e2ccbfc499636a4c8d38f38b469c5945e5593c84819e644bc0a54b2da6c6d499168bd562b172b4ea4c4c4a462419211d79f9d2a546836266646aeb63aa8c58b6c69866b5582d1c2e19968b25c362c9e0687dff420f1a04826266aa0539d1e6af93cca5e6a28991f9ca7ad789e72493f92e5932ef4af180ce578a36499f00f8390190a291ac6f962d0525152525c535a3828e0a4454d811a388524428e24df442b4a164a8408a960a2279c85a090839c3b4cdc4e480d22e1cadd7fbf330e008b85f6439c94e474eb2d3cec9e7f4739a9d949cace81749762ae224fb9f7a4c3793946a0baa273a2a03b717e2ad5d5162de5f9432c6469d76a1627ee61cef3f126957cb76da55a4a75d38de7f2c623cd22e54eb35e2089a11a9cd4523a3c2734e52b5d1142cfa8f5e3a5dd48537a9a054939493148dacb9b4ac288ce9e634d3cda595b02a2b0aaa6d0c69978c0e111b3bed92b1c163a34811ed42d5f1d4733a1539f19c764e2e647992a1a80e254292ab15287487ca604493cdc900d8b0640fe953a326dab2e9e77489b6a9f237919fa2a582fc356143607e557fc71bf117aa8e281858f81def8385df310641d263f53b3e08ccb330fad8f12c3c0b6390d5ef183b23301a8485dff13ce274d2fb0197291a0b23cac78e877998df31763d4ec2882e35279b559bc5ea8fa2c0075056e4c87823428755dba5468570a9f90b660533ae6618c36aec8266ed3a65fa5fb792494642dc174a35a932c0291aa5618a667ff0ea61fe043132acff5a64bd0b172d1df332a2cb93b2b66246971a586b95cb935639abd6ca1a5d6a2eb656b9ed018b38739974016da110cf4e11db6c34faf9a9f96bf5f43d8fc895a568fe226b385dcd49fa302b91fa38590b6fc8da48b2c09c1a719224c9efb1bc55277f23d0658b1dbffaf2ee1861305e8db3bf49b2eff17f86379d13fcf7cb14cd5f2c3ccc97379f4ecf82986ad2a4cf2651789811852fafca8c9c3c5d50601acf12d4ae6eb175f2081495dc884b46e2287c417479e26253fd0c5d6a270a5bf171d205f0a54bad24495f9224591e4d59324f1965830054402cc4c80718557ab2a6123e160297c21646f9246b5514291d0de503e677fc8e31088aa5f62c303f61abb1a3754e6096209b8fd5c38ca6db938cc2e3ef1768b8dfa58e544e2c52f6276b79e545ab2ae9711d5982589cf48bc656b6769da2acbc68172ad62acf55d6ae51f6afe249d62a16607ec7d3a834768c2e35afa24fe15d6aa43a7ea5d797c29b155eaf1ca2ad569aaf6fd3a39e1a299a2c9335951f7f996e4ebae924136d346fd3b6099eb955c63c8be64b201ded6389a666028ef9cea5e9c6123bb7c4b23ecdc7d4114847cb35ef3f67cd74bd5c2b7c3f385d39be43b956d40e98f5df7591b5ab66ff0f05024c236b386056f8295af8e549b61a5334940eb8146dafaf2290aa9373bc4dbb78d12e54eb499e71a9b98b4d34d26a92453a9ee6a6009734333333332927a9a0144db4a5682f1c3968441d22298956f9d788a49f56b9fc6b851c2b2be10d4d8e1747dac89b9334723c8df08626c7b3c4b2e673fc0c6f5e6fd3a3293870fc688ceed6d79a61cdd46e36623322796b95abcebc3f09858cd2ae19f2898c487a31339236991609858c42d66cb84cd16c3c46ccf138c49a9ad7db740e9a170d1a34421e3493624452123f4eac9cec0d78f5304f3f4573b7f136dec697a64c73b24678e39a79168eb7e98fc6cccff0c6d55debf8a35fe63fea3232dfa3e916c3fa94173131a21a14276258d5742300eb6dba8aa61bab767777d7feebc2f25f0567be431c2f239633acb1fc4014d311b068aba4fa658ad68af99417ed2ac95a6d8d2d746ea568a9262bd93f754b45f15721a6c2107f1588f40b4c39a965ff54ad15534999ad5da568cb4fda4580ec4f7ad1ae0985d87f9289362930fd9ec1f1363de3c26162d55a59312ca01d0246b15ca4b4cb5528d6d84267964bcde54911d9dfc586420c051d7f0db13e35c8fe28c8dab5d3af21a32553bac8fe2814e95795b978d1aeb964ca4ef677b9b1aaab5cd9b2bf2fc9ee54645fd9da55a66807d06127a85d1447cb4c8b4c4b4b8b098cf919deb4a8073919f3a22d26e671c4fc4ccccbc4c4c4bcc7bc490a9098f78f69c5d4004fa71d56ad56a7b2582c11035527f7f8a33eeb3f96782a820a6f5a1fc3faeeee66354e0f6b2c717862c41248b543f0572a88c4e3af54edc433c39999af228e77e1028fc6e8fe6244d7b70c4b86f5acb7e9d10da76aa99b8c98aab5ca534d82524f52b676c97c931b993115d41267ae9d63c49959a24b4cd952b428987e49ae7e5a5fbe29b37eba6873d21ff541646d358a367fd56f8de547c9f563c6d274cbf559e3ac38c6539176b1c67266045275aaabf5fe279e76d527154132d2aa23adc23cb8f4b0bf503d560ff330230eccaf46dc63f53023ceeabf95e82d71d25722cc5bf101ab875975340ff81c41978481abb71227ac7b0339b947cf8a56cd49ebafc409bbc10d46f2bc810db73c803c6f3044083994b1b0fc67ba91467af496b07aff1696a096c912d4f2d35f2c414efab7bc684bd1da3580f7ff5cc0d194d11858646981010d83f99548612b25ab2573359babd50ff984b49d7e8664edc7c90188fd302285b104cde8193da367f40c295232e94b975a8f2226b00823368c65a755ce12e4f7626c32a158829a64fc0310c95aab7c35ae7e9c74d2c75fe28f9346fc3561e2ec273b9944abc89f0e9ef0a804ee75453d0a15d108040000003315002020100a86c562916828cd34598b3d14000d7090447658381408b328c7711c848c3186004200200610440819a29a6d10004073909c42480e7050358d50263a604c452821075c940437322dd99952a46a7484522e6e3200d29b0df7a963090655e0e05740e366b5289af79631aaf07468595ac7927e4b575a12971cde8a969a13f1d21a0a153f9e6f7cf10d6ed03662e64c26c2412e4bde605ae0ea2e2cad416fdba6b2ca8ad934a71c7754ca6505392dc5a8830aed8bee6440e08364dcdbb69903b22a042fa578e4521a25465894c88b1e98c5840b85f713f3b9a2f42d2efeb5f9a956b46934f10ec496c742584c8682b408e455de00a20edbde87ca3d622ed839f1b550f250b06a30fc805d5e2e55c3c6619425a9a0bfa3e0cb0464add7110763111e76e6f3a0a7f2b7ef4dfbc959a6d061ea396fda68c4041eaf06bd9912627441458a157fdccd57ec44cc83f3d925bd57df69f2535c3f349240947e5ea4338fbb9f2fa832b9277bdacb5e1e412a4fe9f54370ac8e6a794a8b12fd002dc5782f04b1c82895e57d18b8b9f92853f44fa33e137edfc685ac1dae082e9e9dfa1c84897d9f9614e645742e0f5285acc4323248baab2a2c3c5958f555f0d6835ccaa8f90aa42633d000a7c1fbf0b09a31418a82e37fb6ee8d6428acee2e4b9ed5046288514858cf3b2c26b07a8d06d197ca44c917609d4d5fd6d1f771708bcfceb3747395965a6078290fd94871133cfdb062b512ab28470bec4868610a839cc3b02ea15ed6079b4b8b61bb50ead3d666f765bdac3dc849c2b3fa9537d6b4400fabd86a568d1929a365b9c442fce702ff629d1015e782f6a559658dbd968f054c71fc31e9c46fd8933dc0a298fa1079181b466b3e47c6bbea82ec288fe1b5c076d586fdeac96be81e31e6377410118c3190c20b56835b1ccfc42e6d2183b3087494c1068610883142fab6352a8bb0fa48c9c92e2696e93dcfa8000f837418589994793f0a52cdd9570a3343f9c82a19b110b653e0d0359e00056483f341c98319d6daaeb6612c6326968b9b1407aff42c47f5f000bddbf13a8193cd5b1984a4950eecac403f6658c730639145b1272283b8ca1023c82e5622c34f2782160d8cbc30e96daf07dc79c10bd44681308b2a0b0007356d58ea1d47eeda68d1015b1986348a481a59d0a9dc18c1a1cbc9de4ee6624b32be0495519a15a471c3a42f045deca40ac0a53b629611b0e1f4437e058bca247fb32cc817fcc9a0b1dc6d7af41b22952f04c40bf9e84e476ddf7e9974957e64b0c3d32722a2f6b1f77e0c9b07c61664ccfbe1e7542515179e133cf954dee11c75ce261a3045f3a56736400e8a1cbcd7e64c1375298eab8f5459e85d4145550d97ec5b16c697eb103f44dc35f361003f665d62daef24f93929bbd99d7f9ee682b894effe52f7f1ab90c5e630c2e6fe00c3c7a8b4cc41e3ce49c0db3bbd9b1c59c62c48346ac07bbe9e0f2d228978d4754b5ee11d2218877ebbba08ed3c4719f78769a4b3039b0fcda94fd3678ee544060df31de564d82ffc53180915c0a1632c8230067ba70f874d897bc249749614effabeae8ed9d459af309617e31d49ba26639cc14468cc00c9e0da437b85a9c4d7709fc9a72084697c8fd411a9ffae66d9f5c192f906e329f46cb88d7482526b704185f22b5208771f86b6069129548dda23eab522fbca092d0a6bcac4908656449685f105b0e302e859000624e45b865eaf22cb744216b86b34778b8323a042933dea804b969c4b0aec4ab28235d083236f647b394960bb92698ec8ad05eb079eb29d2064eca3b54ed825af95a8fc55c1cb31324c72794880ea7fef1e64160d9c89b577e19254720655a0df6502896edb0f94eeb1c085bedb45664b438ae86a2aa89123219d8cdc28e1174aba6a16cb513936f73a014b8f2eb534ee3a0b2a2ae825b6a22a1bba40cac6beb5a0678bae520fa37331632957f9378082f19edbb35ac2e9f2adceb54b0a1e6040134c5f4819d4d0d708250b7d460a623492782ee6dc5d60e1be6561075ee963217badaaaec0f6b429de902347e94ffe035cd36b293402dc115d011c444a4bc83dbf129a6aecde7d89acfb6f72e7f8bf5d7a6be461bce49120ccafc7856a470e823b581f805ba8a515bb309892dce55197bfa4a99e44adb4528d98fce830ea4ade08bbe0f4dc295b2f9db8a9d9850a084d4d548cb9c35ae2e7143fac1de9f1cda5b7f561a78ba86f9357d43552d685a119defe8f4a5c8a99749b85a0a7029411e8cad61f117c2f7aca5676c8c64be5eba3c5225f9510b8522476d720eaa48175f05f175137cf327d890c9a33435c97e9f108a9a3e003001f9d4fd19c89a1df2479d2abd1253c18e529f4e0d011758d0ed125ff1b3006201f61f01fd64db4511b50be6674d45270e1987e703926333a83bb7f510ca2f485176b2d1ae4602c3c0ddfcd6d7607af623ed96c2bbe2e4f90dddb8b092114e874194bd919b2fa5e40f9ec9644770b0e000e2bbf5c2d12edb288c8022f56ce168a650e4f4ff9bdf1e32c292186771f8c0d5dad02dd9eb3895ae7075558760e9a9bbd8b4dade4f9ad8a693edb3a19061812ecc4d0355d6686d2c7e0f6610dd3399f13c8395fbe229d0d7246981319c478563cc79d6751e9926ffeea3dc40e4ba88bb9c0cc84d7e2873fe014db2576fa0fe9b2cec44e5da2a31b2d0c7f620f6b0f60840a0b4b20c03f28a767d04b918ccc8fc42370c2532bf20576d09d772fd02670e454934174d1a8bd2052b0edbfdeed38a8499498a41c65a6b5e1fd1ed11eebb1e8b676e10de1afa77428ecaf5bae40bf783f0e4b40cb53ca0a61de0540e68b98298a51319c7f12df8a54665ff6b5e98ec99d4466450c00df699fd340d7440bcb21827a042f488208b7bb2ac0829aac46fc9ca7daf93d21420a20b7884b83dc4222a25cd1db4c0df2c81df681febd2dfccb278331deffa0eb34f61abb1cc50af3e9a98cc76ded2d7190f0cd9606a266b6d72b39875f0f0c90b64d9123f68f7c1761dc3531a7bd1c4242d34bb296d4d72067abdfa6bf55eb48a92643561ac15ec9d9635b3000e2fea34744c1be592044ecabe84776f87fc69ac80317205419a6572618e20f47d9d243009572083e374368c0a8aabc6b356d24476dfe9a72446f4b22d08bd1e3c8415d600dc3f5ce32a0330e75c712d165524725f7df22c7c5ae1939b8fe565966e28e26ec3208f041ca06e7d193cb4fc93806e8830ad3b124b6d43b1e2316e994da3c116fac25aaf3d213dd5156e46cd5d0482d8f9b6fe0b0cd9f733a0614ae3b211a704151bec7b4adadf2b28e353096ec68b810f5ff77f4869e707e44149fba50c44fd14022370a35b7bcff292abfc596d4c0c4d1b0c9995b715b541eec2ae87a2f0208b7b6dcd15cb3df0c2a1d3dc123fd8fa8511cd915310da6467317a98d366ac30c7802c9f9ca4802fa1ff73302d60435211f5ddf2f9b2c4f1f858e95a02a722cdb6060bac65084e13a24846d5d52cda797b8228b4983934e64c4a618fb27d8f765104ec78652936ca9b65a9cd490af37483006907d92c2bebb3746615ad654a47b8361426f9cfb66de600a94f04953cb3f880edfaddc123d97128760170e4430a8bf84a58ff67058263755a44ba97f985446cccf18c644c04e41079672f00333cd4d5b9e99b4e9452d708c9a7f8849bb289129e916d4d784e42b3bb96f632476b96088ba7f78b61e0b9d81dbb7c5a23ba54e14ccfcbf2ca49cd20787b2fd7f43a7e6cc16e37e60eb740b88c4a8a8714979272bb9529b85342132d971a34a50f44c3a081cbce304adef5439d6845bceb99e7a250356cc24850b8ca91195213fd651d94342e24d67466c1533000e160719c43133c9816533a416aca3cc0af53559077beff520b32742e7eb8c2c71311e9fb0d02236dc03c13ea11591282c8fc04654fb6799395ee70bcb7d0292a1a8fb58a7f529cc8bb29e4133169e8fd8562ea622fa94d5bd3e1bfd045a819a010b331c2ad4e80f399fb8c328c988058db70d4e0bb62ea60ce8251fcad69c6acf3fa31a78f052638a66c90a3c09d568306a6b74f1db6861be2dca50b1421e1b79a0f3f118604fdd3b695441c344065bfb1d83352c0e1812f1abf18544bbd829119cda894ada195c12708de21ff26ab61b91895217ae1fd6d03d45acfcb8e26d8e4580921153c15a3d9c1664d59142706941e1a654fed72f7c0e8c7c82109852feb68e291ba19b3a6224ed77cc41e1cac0e011124857ab6e0b8c1703c588d898573d064c93a859ea2cc492a86f227274452031b066be11a58b2c6e9fd2ff7d5563eeee6f9d120b2624824ec3e269d5e7875ddf53244222f7ad07cded2535789b54db7842030d19436df1a141947db93aa6df76e0a19f3248aec946e3fd6fa217d6dce50564c35a1a4cb70c1c94c31a1898009a0a7698f5d099e20b37e957ff578a316d9fe798b20200132725b5eb72cc1678670c5408e5a73069fdfe0ebe72136736cc35ed2b72639780ff5e606789f622fa821390144584627cae9e5881e6fe059ae176785847215f1a8660c68a1058daacfd1c10c8429595039f13284ab64adb27796259fccca76d246ecfccd6ed3d7e91623e0d3941fb5ad34182ce9d415ddea6513fe5ba09fb75419f005e0ede853e360b9c0a1c7ce01aa8d13d633a955ce63386043ad73f11c170c2b188cbb722cbddf75b2031817a73087245441a4e784492d6c3cc70438e66ca38167ce29563796a7313e48fa3ff87168d8eef320a226af199b47c61839f94aa6c610694b33fe165831721cb65c900f342c7b383fd4a34565ee617037ae4483547279642a9177985695b7c992cb1b45e3781ddbb8703055879e5784b6c249e6255a0362b727b51b6cd1ee446c2032bffd70e73c913cd87fc572e7c087440470292f404643d0ef225de91d892dde0a53c3b872f57144835b5d6d26916c142024784afd64d3856d6136f30923eaeccd00b457e999cb2d960e516b51b16d3806eb0cc5842bc591db8fff717414bd64e83e8250bea75c4967b36c2fd92bfb1026b18fea7ae6aae5a9f899953968d682eb5f49618116aff151232e55a3664f61d95a4b7aa1e9eefe754568fba65b785fa9f7a47a28c44b85fa7b54f52b387fffff1a379b2fbdca6f80cb62157fe9eff175fda5d99bf6997d9598b97bb13754b486e8a4f8d498fb6ef571e5d104cdc7965cef444eed8b4ad316a79c17196b3c9fa7271d90a671dd661085994737d1385550b4360b211a30478a77b68897e083a3b139f2504d25ff1f655510614c4e6d465a695de5ece8c4330d77ec89d71d6349a8c2ddd74d00d8ebb4092d79c38cc5f2c0704c51423f608650dbc7c115af9b7ace8e718f81f9283d9e1c00dc13b9452de8fe290e153bd4900c5819d752c7f8da1efa27d7983f95bcdfbf433ccf55d3719df6875e47cb7d90c6d6d9a2490f0c5747818c8c5a62b9cf70543e824b52378f444066712daf8e1278ab272c6efb08fb7d7ff4d8589d7ea52fb2523092afea96d24fb642f234bcdb22bf5a728987b02ad58e781b5c8bb6b560df8dc71caf792bc08ea6ed186a876aeb2fdda5d200f75caebbc2b40133119959fd20fac1555dccbacfdc05ad69b2865916de46e7018cb7e633bb2a032a8a06d1166872d77c86b73954d1f79ad939e29dfa6cfbf8199fecb263b056301fccf7801f75be6e7ec44b001f370a073a46c3b1a579185e068b2a097def1866324f48ada1a415392a3dba08f7b965b52e87a51b00e5515c1ff50c466d3ff5406c937fa6f33d268e7e6c751219ded92485ace895d61d3d0c186ebdf7e1e926a068d8ec70903bd8fc25016db6e67a9d63754a9e797c187c761d0248626da4f946b3076a50d4672bd69f8c582873165dfbafc1eee9b3d508c0a52cfc9eb30634db788785020b80e7ed580c75064f9cedd6010e39e02105fef8531050bc4763a15e75c32c030ada15b8a14b4b9b374a922b2a79b66f7163d5447e6acffa37999df8115a083e54a4b0af09d06181b3c9b02266fd17427a96c724599caff13d4ea34b4e344b0576b23422a1f35bf081b378c0b1a38d20c1a00b5bac1790f4d6f5e4d5417aead3594dc3224dac1610c0ab0f691353bd733a215c685ddaa6a41a686a3210e8a48ab38c2671a7e47d2e1bf2a961426c7921c7a89755755f6aa671ccc9bb38ad2f2544fbd2ef5040443eb40c8bdf4ca371a649205ec8d44970562b2dc34bec1597adf268da01329c7515a5a9bd2d9a5281c52e461c51dd2a0f11bb8c6c974fe843e57f954a90fa10d13cf129002cfeface06c99a04b99144ebdd4bf73b96e5cf8945e5faea2860875185f7e3a824ee6a4bbdfd938d3b8a392fa5bced4c12d1e5a9249df1dcd710fcfcec34c168feba3764b76ef2113f151bd2f313458335c2e09a10b37a952c30319ca50ca2d7ca8002df4e632be9fb2460ff3472993d2da63d0f3ecf36ea92f3b6e834bab4ee1d10af9ddd1e40b90958219054e681470fbb690dde969399472e97b464c226687b58a6ff942f2fa1563ec63b4994e031ab822b6c81bb279be1c064b29d0e3769c957583ce8ba301a839cb1ade68d0723b5d436fde6e2e27a41f62a3612ed0293e99fbc32ca746a4f46e453cf9099b840f4b3dcfb608551f78b5552dc8c7a2fdf9304033eb4cc012cbd53b11e5c1fdc63ca86b3608c80b4990e2379d7ed5df36e3379c2c6815ae91e7a483044183e9b5eff18e4445b46a300238838d0aabef355ec183ff76c7fedb742226f0c0bf4b345f22a417c112e268e1d6fb19b9cbb75a6d13ef580108afe137d674f76b0752fca7bf9efc2031a297b1f788c9b521fc2896733c01d05659a9f34ef4c638c79ee545ce76b24ea03ad644ca1ab9259b38112578029057d3b966f03e5c5fb432795c6025f254de749ce5503e41b03330597423d8fb79fee7d672f6b7556c119cddf6aadf3a736ac60d6edaaa8d6a828d978a3d27630fd9513b34fd697d8d561c1ee39a7046e353ba2b14654c7dc0b942217345344d5487ebf8ef141e2adaea080bcc58868baab41c966e77ad4ca0623ea22e00c119687932dc471dde84af7e43b06400c091d905ac1af8db92f92e44101f028edb0684dc5263ff3d53884b8e92bd235d051e880a7e8fc97412b18341320bdffb759d124b02191b8df0bdc84e932a699164495f8a4d3fb5ced905ad1ca08b5cea9df995d775730c59dc44a92a4704ed1a37524a071c5d139c7f34fe0e9eb84a8b31452ea145ac6ab82c5e40e20dcbbc0749bddd1bebd44972afc434a3b01945ab4aad4f6a6b3df616559eaa5d124cd4ff1b1a8aafeceab7d9f6bcda397ccca7416267fe56220dae93e11561426846069887624ebb201623bf10dc1466f909ef8d13519f2b45d985375a4c096ad1c8a2a705915e00e62561c8707aded80fd94378d7a40e8803cc0d719805a8dff68da3bd4d07aa0a5e23ebd393c36fcc9446fa5d30e1d9ef4f12ba423042a6a9f41135300b2654cc50427556e9d65ddf8b3d65db2e6c8114be263274c3aac7f43b7e8c03bbe47421995be5200fa031f22ae414cf2b4e99d6d7cb08368a030d70a42c16ec37b1c5ddc150c138523cc224fa08ed9c5cd2221d64b2a2c7a68dc836ab2a1cb6f241e70f64a28f23471d5e4addc6e95be603355957c55203c031af0d7d6488d62116986237874813ad1401c52322cb7e46623f8cfda906253e526b1c0b16077bdac8229cd4cae958aed40e9b7beb03810476186d27fbbbacb8e9f73be0c29242f9a73d941528bff127a839e1ed30e48640cc063e924cd7e80457faa7319f8f3a2710d339d5a3df04fe04ad25d9c112b6f2244dd2626fc8c3783712a43d5b44a60af1b273251c8b27113dd85b713c5df0eaafd4cc84dbebea96e4f2308e147173c4a08fbdf5ba51b447d68f7d6d41476a841b22c71ebd61275a3964ad75c4150868b365a08bae31fa48acaf59044649af449f115400df1414947aaf0552e6896f1b673f0e5db2dcfde7a860aa57922296ccfdd0640eabb1c1d146c35e1ef4e21193257376c2e21d2ee5f27614abcfa6fea5671705d26ef224203f78da8a1edac6297e6b3f51231068660c3ab51e16198e02a38cb90529867e9af334a1f59649fbfbe348bb0611c0826df3a197df280742d8f0ee2c38e359c02da806011d61e4a1a508246df9a079d7b7db0dd4c74a3786145763d48368df5e4323d6894ca5fe1e06910c1171eef5ca954fcb4e9bc2fed495029185d1cfda86ec6794633d41df568c7dfc90e1d87c439368d850a7b74d3bb26042bff3909f0198b460df50ea8b96a14ea2ad8bfbc242c0b205e3ba68b0b35b62b4f44c13290e78850f32a17c60949a61566810b5cb322c192352d94d9eb7fcf395b8d9484c7d6e2e2020d11e14b1ff7b54ec559192975a5691fef489adfae4bff62e619b0b55b6fe635cbf5d82131e98f1e052fb14dfabc4a12625728e9443e6a6887ab3b5c06b7ae4e9183271b2e7bac3c68f4f1cb933e99543f4ad74ef85437a5b661a2b7d5c82183393031c1661b63a718d1ef3b216f461ce408f02603ccc77e590492564f138640a133584942f7d2d20a3b7e7f2f94bee67173dd5e3f9b5978d5a4a6c742bcd9dd2a56d57d26af630ba37128d73d7fba39decbffe94a9d998a988a81cbad609595215f6d5fb23b2cab43e6ae3e438633bbb8b39e09e0a05f071c7d579eff5db2a5ec1b7972893d0c87a35c482da94924f201c401131ee6be54b4c693ad835c3e414b563f3fa16080d71f2cb0a56a533be67bce6c81dd56c55e0b628e7f0e1a02c26c4fd293eea94760d041b0fb162c1c0d5befb878ee43dc7a583729c265b0eeec2467ed0f5122093e44e721aba0b4b2b79c3fe8ed2ad0da8f890b85b76b03fd7b5938c568230735b9a80ec06334af580e0221f09d74775ff335fbf881db434bd0ba5a53ab55dcd9d0a6e6f8f0b538e00fedcd3398fcaf05229e67e2d75de8da03fe15a1b08c55ec32fccfb1e05259e96852280eebbd2e74d2d997103a7a104808de6306879321d3c7cea5a5cab82b5a8ea53da65c769b6acbeb9c60aa290aab6481751d14e56e47e5814c0cd4c2dd78b9667090669595eb298b421154b25325a8a4495b9538538fc4c0d0032208f1e08c19c8a0902630ee14cab9c43012f0cc7ee453f69954cc6a3c56250b31756654d7765eca21cca66ce6f17380d2821fcd4f0e15fded2148da36011394d81fd4896f8d9e923a8e4df2bbbda253e0c59d70ea389ed5a8b7909a5e144baef00699daa1b5958f4f8362b11bcf21e8baf4390dd1d3529f86baa030a8a7d7bac3d44d919c4ddda6b89604eeca56018f003c1435e0b24df985e693d78e19c2977df667cc6b1aecf234bdc142c9f9e35306e603b3de2ce2ecb4334901aa6801bcfc1c5591eb107507533ecc51431d65fecd8c218f0b59bbbd9e44ac3506a7fdd1ce7203e6d956189283cb4a4f73f80c7572f148e6c5376b0202b70229e25d988cfa6a681b6c255273efcb33597f842bca0eb5404a7b66a091cce2592d068614627a2f2b521737a7a8c3b8008ceae9b494f9efa17d957fc3297ffcaf42b7e53620969aa6ea02d631cd3c2c423439ad7194bb3a86b604c69e58ed55da8a4e39434fc404fefa2641dd86965128b5e7b29ef383c2012e3c820268e2c4a7ffbdbc03d734039ef18534bbfdba8d80c4f11683cdf2e69f6469f3321c607c2954e44c6779072caaee60a9364535ae40637bc4136b92d2179ddb1c95fbe84c2d1fedd8e201cd51c07574d0ed042219299326f913f34645159488d45a04b36b04682f55d04a386745edcd15213d7f35be7c26ca6fc447ac3aeaa37b8564267208251c00af5f77d7f91a2a72a51bee3e23497efc387fd6298857178026962cc1c0411eba11d8cf692ac789e6d9a62906afad386cb79ed679e5df52f00f9d7530c051510fee5b8030ad871936c64cde71d41586ba9fc3a4bb6ac8692065e0e4944b89f9d540ff311600a536f53e45e08c87815cbd7b876e0cb4da4a183643dc9e492d1212c0a899debd028c783ac5bd4d110f618788e4d423d4955e5240b5d6547143a675fc1f4132445e0aaf0b07fce3e9324199b645abec9945c310c270ad72d5dbafd63eda583155e0f3d445bd56ba2efbd5112fee19d160f2655ba070c5847d3a191d121d0772df27f37c175a1977dacdd85ed9909779748ec33e1450658633c50ed265cf342f93b7d95dafe95a28452b3bb9a1535869e49e4a6280115288caa8b04d4670675f7fe1f92bd94403c08fbd5d7d2ada20c8398813b3223828b15235638abc28bc992e5094580de36786463b02fb7753580bcc9e62360621c384c93704d70c0622426660002e318d8c9c7be4d772b62d4a10f46504f345d1b189e46c9368d715f31cfb8de231c6a1907f6488dd6e75764d761f51409d2872e875e3539f22b1959a7c37d2a81f42702daf0ea9d4cbb19f50421c3f3c1b526d8eec89ce52d3e645f966ee06e8b986522f0531d6dd5b844ae45e3118d9df0ea1f214d4ce3c554fb7308ff72e33866035ec9a8217ee7c7343be5b25c694f3e9ddce704cd811139fbbe370dee8f32bcf6ac04f4ff37b22ab5b0e35b5aea9e6162214b3b619834f208693dfa0d8cd6dd630a3cb35ba4c0b50d551ac332929448665d04827f732830ea1023852901f2774383c3630c40a1c17690b748c0cf4a5cfb7693a20036c8a47826a9edf3744b107e07d420cc56447198d191072acca2405e5fbca7ff2a7454cc8506596da322a8489b4572f5563822c331880e5db4dfdf17eef23b767cebde091b480567ecaa69d09e6ee0c3c73ee706c97578cb6da3f88724e87767eb52f8d0f13cc526ab7a515d8261a724cf621ab7b4ea0dcd90121861c7c4d22c6563b8961ac724c5c7f7a40ff09e62c0697dc5ba805a6f85706a752896645d3bb8c0457cf160a773505743eceffbbcc4c1701bff752fbe933ea82dfbf498184b38f1456cd91e3f42e6116a18d00b414a7b4742b6e33edf48c6398c626202d4594fb2fbeedb0be113a22c128570e1dc732f4131b7e99887be2068559c8efb4a9af38da85a8db1540881a21d0fdd2bea0e26226f8a94defeb92ea61b2289503fd38715a3354be288e2103efd0658681a2bd6f1abcb8c0156c39d25a1ba96ae86944474418d8bffe9b33c1a89adb32ea009ab2e5af3f848680a87bc5fe38195bff8ecab903347505773964651de7d9a51d0035d270c50a8810695fc1a5379d0165bd68dbe0ce579aad864585774b0675172e805ee4535d2071205d609573df91558f6b2e7d07c0a60a2911a43efae6e4bfb5000c3e1316f09b7e300c3089668f0f2f8abd7533cee57ec64eddd807972f87604f3c205a0e031db9de6a124be1bcd3461259b6b8da41247c87ab73a70a7f6927ef2cd738647d3a9f81c983caa4a4fb376234f60a8d098bd25e843141adaadf7450b2a346a60da445b8ea8b782c0de0ec7ee0e774854dba29330d9181a0809b765f946dafd344f0c7f591bd37ffd1d636858821092841f8a57c21a0316b2e0062f30868670f25362686767fcf3985868bc7ed0e5e24a89488c2a495de7b190849cd832fc9241c4222a398e7d00e496f41cfc83893be7ba276eef46ec2fbb86fb7174f0e62909e2f6c48fde9a521f47190be2ec1c91bc09eff088955f4d7ea05e5439932bfa8fb85c46ca9f861ef420717f07a7038c0bd26df691f5ac564471556af3b3912b05487484f086592893358998e0cba259db0a7de0bd048ac1d09b25a88dd6f216e5e7fa5504ede726911a0a8a6def3c4e8b31b3e0666ea5636b8b6c9200e974aaf36610942241f635277b8a50a2ec854cb285d98652971b1439f8fd7ff6c9f1d5ff6ffe17f500c1d44fe5e13c62a45013c7330de333559985baac0525cb96f7e93a464243b42274f4d92298a5b08357def17e445c89cb1802031fa4b8aa66117ed6f505d5498c1fc8b20577c96768ca732b3a976fb86bd7075de85444d8c72d0ced2a04fa2580f8c0290418ff3090c26cf1130b53f083956d12213b472e892aca5ce29617861637c74e192f8c05983729c61f5bf115eb990475fe89c629fb59953d836a1cba2f086489d619a2b67945bd5466bf26ac87cf50d71361633efb2c7eaf2c9070544d7ad64c1d376423f45f5d3eab0df48b0c14d09bb9589ba29a2ca00069bb91fcb93f8d389755cf8d69313e583eb3891eb3fe5df45b60e84876fc86bd6ba62ef03a8e83b0a7a116f4689ad217edb901247d68141d1d6784a92cc76482b43b94b4a06736f5b404d864c0b18cc610b343ddee0733b4c08aec432c947150157155697206e90044de9a024910fb2005753cea7d096c69e41a5ae9e1f608715e263a52fafe8b148018e0708763e7319d86150f326a7dcfdcb94374b180a337864e2eebb400c0daa07f9547b2fd729abb465f9b01f655bb96535041ba142852fa78e5b8d3f95242aadc3f047c02a8f139ae1488bb9267a5cd01c03547309628e6f43650af34138ccf3a79b937618ca71a365bdaff4801148bd1f3a226e76915d0fc55d28abbdbed32bacb3c846a85e0aff43be98b4d77b33d6bd9613616d53ed45cb8b0a095b613c30434fab03ee6356f1a22081c9d7ba00ffe79e4d06d4b12470514d0c086d3bf0344f1a36bb72a4c4f7ce3d567ab6f2801406caa2dfb7f90e04100552d91bb1efcadc7038cfa750aaa4df2af972845ae750472c01eb71a32c82f5308f6cc7a1ab41523a3f50133579f941b761620c14afbf0163df16ef7a0a733660027d66d2c2fa3b079c0d610621f99ddae9d1fe1c91169faf9cd511d42b88e1732627066128e84187845656d5011e4a358f06d48be741016e0facde6f2e80e95d24564b716588f21e58a340c934b27be442479d70d7ad1d082a2f4d00724561028b634dcdfc5f195e2c190aacb61a3900d1bfb53fefbd8b2a11530bd28ae838a42cca09d645e941fdfd64cc9e2c170ed3e12308855bee598ebdc411233363201fde284631c221984572d3bc689894eae4024ac19da97c303e744114ab66e46b8b6766d8d3e22a46d5b12b9a79bb1ad1e144b1d9bf71fed9b448ecbcab7a5722e08032f550eacba884af3339121ff0dfec0f08e74eeff251ba2accff1e2397f09065c9d52cada3a4ffe9a75a6985115a304d47b21307795428cb8bac3cea5e8d45bcb98cbdda4818d17f6d8c90dae554e6ed38f5464287965aaff2b309611ae39b5867d53edcd30d39a762bcffa59e6909e3f42e78f5a1cae3ad010c2af504d2bc59c90ed8cf7b30a6395aeac92572ffd279ae1d92ec8e55dd4a68c461f1d926b20d354369283c8e170d09898286d464fc76191570a0f85ba43a9db64072a9e085691acf8fee165889d33154fed87fc9fb1ec3e5bf37c4714804c704b3264003b865ad1bf58a0656048d7e679b33e7cb4c57704e2f87d96f9526f0418bb24a9519dc522c1af940daeeb9f9575985849077f33556730f18e601b66414ea6c6985179423198f4ed01b5be4a50195f09e20e329b1ab817540a019b371b5f7fb060d17dc0055e687714593825425650c041dc351511e37b0c3a377243a8d121d09db5491c0fa0f1ceacee61e4451bba722396252ff310c66bd54f1a4326e316799b9b8a5bb9d76137096bc10b36bbee8a62144531bd769b7f3b81ad67de498f1e31a7e9a7a2c1d37e948b5572e8c109b1e2f6143482d07bb60cdda2aea3500dbd3aa40d2640bb0f97e094e1c164653b02760b0c6485a56c845c98a81a73d7efba5b5d2c6498ea97b3693527f8a3e33ecdb55324a9034f95e4917e8b4d2bba5c85494edb0bc6fdf34382ecc86a4c5d4aee8d1d390418f0a84a7203b2b018f10cbaf1ab47bed374184819b880f16a84689ee08fee0e081efc8dd44a1b7f7245c2d25bfe9639f91475b5421b39517f72a41557e7914b661692a3304afff1161ca735164eca72c22748eadd2023bda93685e4dd954fe96c968d1a3e48e019e44c8aedbea7133be7b184081dd3299af35f472ecebf4154116ac2d3a241bbbebb04ab4d71d1e0c96bbd4a06817392deb76a2e702cca2f3f222b8015388964b988e63dec3879ad67b01b4cc7b7e7e430c9ac8628eb0d1d609a93be69b967035161068e33723c55df6d974631ddaffb806f374de9d18dfba03ad9a7e479d194f679fa12d5e327e22ca71f02e9e18e382cd5557f9ff363dae8ffde1c09a834803d655234a225e16ebb5b46a3ea5c650c78c2f8bff30e6210c1ce91b6a9a6bf1d779b1d5aa95e709c2bc0c84a783571136b7b465fc9e0bf1ffc88a27e40f35cdeb0bd3320e13c58814174d913763d3f1fc0c9539821e130e8e3190fd614499eab795e03af46aa969bc8c9327049f0f14814c7435c0332421447e8d9126fa63ebbb4636d20423a8c5c2b8c94c2b1ff3f202c8ae68dd18c3e7f58aa42f1dcb2854157bcc4d2b639a950550fecfd75195a343d6aa3351c695df3753628225da46074e5c581239c230d09c1665015cac65c63aec61c86070add6622e82e0fa9c41b74c4824a75608e0b5fd3bd1898763899e8878224800a97c0151a1459a9d11ad8d8405542f4baa151d1d5670aacb20634bdd27a2db4ac96520667e356180a8d138d6826b7145063f45ecc741d828e8c5247e88c588b0df1b24a51ba2f0da5aa2b7d14c6e7cdf6e171fb5c53d82c9564eb135d278976c8d9afad5d92fe01e493f5833cd4b7f85d57cac16ebb31e23988a4ad358a7959ddd5f7a6d84a41ded0a247a0a4360effd77a1e3714bc4c64c94daa6bc4db6f88d608f59bc2d312580e6b390b2b78c71f1c5c7f529afb999b60741091a1282af4b091dc2a2759d6689b8c9263ea5e29bb986bf430bf720c00e4285cfbc57a2695bec4b675c86f7b22a0b87ce9bec3100b907758f44ba0c1162926d19782f393aa95518ae781f17f06617aa4fbaad710124d1f50ee847e978362def2ac339505fd0034a484062899a499d726fe38aeab0f4f98fc10049aaf299ef8aa88d0294ec4fc27df94d43f2aebefed2a20b9b2f246cb57409e97c1828139de4c3c90f92bcff8f6f2d16aa454102b311f889682547b55863c75b12277ae5cbf232c085b5b3543272dd3ae2a9e590256cf92ad4a14253842a265328a9e943804ea3a9851e00b94023d8086956f07b1db35efd187a5359acd940e2a34d2530e4dd39c6b73029c22def05b38508173b7bb3748542e91dc083c87825378e594325142942875091774ece691608c70dd89be55c4b69509e310334d38a8043ae26942b017b5a258c17be01763e90a848ac47c0a9abad890978c7f2a441fa30d51f795c370eb23a6f2be9499c38480eb1fbbc19e4ff59402354e2b77a552ba21dbef0fe56cf486a59cf351d2b47cf1c8717b439861eec22af05aba902df4996400852904c15549bb3d0c8366be6a3cd524d9981e132a9a42278656c3daff375a2ee045af3477af5521315b688611044a1c703bd0871af8c3cc10885e851a046f0151a50c415f553e0288d4121cfb840e4d2de6a1f849352010fdef91eb364e74be78cd8998322f07b54e9c8a0d4ae78304b7f83738dae4a6beb8ff134016bb5f85d802b45122e4cb3b4e657a0b944d16dd908a9af7f76d7894b861e91a25940901d809397b431c26cdaea90f625253f4a13f730e3a2f35c2749474181e66a56fd6227b1ae931bc8d9a4147f9004de831f6e2c75d88b731dc5050c50461b33276ae56ca202e41c00bd29f913b0770a5be90dea1116b0d3e3f7d01f4593d66f114ec51998f3b84892c2655915b5e87b60e61fe1dfc33592fbcfb0f4402ba36be5a32a21eb34c97c53574e9e1a6588d4c28f5f507d574dbddb05be9318b7eb8e8a590646addc2802bb6b91e6df4648f15169cbf98ee57e3a17245c407cf2ffa33c14cf006dc5ec9afe343dea7bbf50c3db047056a9b37eec6cd1b02364707b679591033010b006a547b64750cbd529f63dbdc1288e6869dcc26da66e1c8ce49930f9e9e165095c0d1a088fbe59b74516611c5ba66381de2eb9ae29632c9ff81d5c41ab19838bce6b1da513d6bbeb0f0350cafc154ab86e785ea1f07b22f842fda91379eeb4f5e90763e0c1a0e4be23081256965f2d7d745fe66198db4536bcb2ba8019454453e409a1c40e70174e053d36a3510ce479760fbd4dd046498ae998d6e6587af26535d420bd96882e270d3acfaeff8b9d2f1d430918dcdeb252985bc3f314c554c64463ad992f68de20ab0b48b67770484039a87110fb4b9c6d1926a88212caf281d00edf6c16239e55e675ffaf0db4e536012224387a675195eb1291919f06dd7f620b8b6f3b52881d1375f2df1538c4a7d32d4759895a2f4754c6d10e4c581bfdbd5b7148e34da03f0c1fdc32c379fd1a361314e37925249210a5b27af8940bf1ed39ae84b380d39e432359487a9e43edc9d566e3cf8896f51b037badab19a1ebcd4d29440ac64378601fe7c6879d23436c0dfdf5fc07ba0ebc2a2e237da33dd33217750a2827a25d59ba95e6f558b2455ccfbbfea1671b1db145c9eeffca3c9bf1158deb9f9d8e91bb8cc0cef6ebecbfdf958128250f3d13b7dc4e50cd330b1c95499c6a6b71a6ba716e45c032589ed61ae099c8464a2a50ca695fe984cb0eaf294c8e2b96691e1b0d96d595387d7be1547a0c571da7b1172cf3a75839856b262640ec73974a5d99a5488ede4f1880d641a07acbc5613cb5d783aaffe86716a4cf0fb632e432416f7896470e4f6f87f3633e3b4bbf6bfaa8f44054d966fae13ada011d710912a2224561d7ee4d336ba082bf0e69bea0d305fa15912fd2a4ed7cf27292f17423149af4d000b43bfead2246e4246493c85d6b0032112ac16a652de04dbae02c1a54e3ab58a4b9428e5caf742ef770123f1476ac0e785c345eba3f8d17eacef4c54dd17767be09d34d37898f6ee9809ddc07c4ba24fe51a86b9a7690723403fcb00ac7979a72e1c48112dca911dbe6cdd3e73b640481169d1077557e8d79033af1dc2f70b791f9a115f15a49102bc95ae01048b3be07c189e038d57274f05f44dd79aebeaf1d2324c54dbddb75c7f0f8190d9b6ed5ac56d1dbd38bc38118f9ec4e77d4615d58c12acbcaf50f19e4df0f904669b2df509b4fe2a31a6135dee7909708b9f3aa2d49ef0f61873be29c0f2122ee1476f32ac3ab6e19c4b6976ef3e1fac3d7df84f9c6d3720d0364338c1a778d9c2d2c879a515a5cfaa91470805148a28680d912facd7facf193a704d6cd8e89644f68f121021da47a73e20df14dbbc07059a43cca642338051b429e8b59d23eeb59a22ae346e7306beaac18aa97c8e0ec2933450fc9fd82345b91368a5a75fff06ce5c6cf269402c53c99dcd9bf60dfa57c14435d719c7fd3ab721c80697225e22c47d5ecdf0f6c2bb13d2b03856484a876f240d0ff01ad984670e54b4555b43491894336f4d53615912bfc0559935f5385781b47395a31cf05f36b3e89b615f7b8096acb415ecba89bf3cda2f2f16e66bd53f7b3af73cf435872cb166b4373a6cf0f08cfe31995d5ca5fe5e367905df533834a36191676516e8b5fb43330c1cf0a08ea9006e67d17a6391ab6c084756cc04a9acaa5cbdad9188e68da673279569208394669159cb76b1f34d435dfbab3f18f901cb3806e7cc645005207915f4bdab12189943a6332f26374f8525aaba4b64aef2f3e4cf0d77608c129aa8209ff34a1e2fb68415be3c2b82dfb774134932d796e9093698fe6374fe567e2302f29629598a0897e955726427f52c8605ec80f8a63493792b5ce65814904395ae63d04a8901c5197be45de6158622338b419561ce8f4a135d6ee296198315517de0649ebc3d4044d9f88c9d34fc509a8e15ace0f6ca2089f746f942c89e9624c77f42152e8523db8b482d6fc8d9929ce7f5e4e68ab6ad1ec6d3c4722b9bd296d43baa8fd91691d1c0803e3ebb18e3e4af0c7aab568a652b21b8fd5309a59036140436d5a4c73269d374aed2c2352fb2120fd3413354c706f49e23aa47c755ff36b8974af6aadad20f229c889d2e55b367f1951511aaedd76c585ac7b660bc6f113528078b057fb0723c0328534388c98c70f3676126573f386a19afdc35deb21910c567cd182d4beacf0c8503371a74ba9b4ab33c21b0c6132eea1c4c505312661555e97f630ac1b6103b857d9de70ba38185af39e76c73baffb22018790ce0a440c599bf8b982cd165800a7182d6b27f2e91de7a02b24d2fcb63c43b273ff41a8abb55c67d6816b230f2635e14d952ea84568fc9d5bb47f4951416db3d02b57344fdf1753ee629c413c34a66ffbb2e1bdc7cab0bff167eadd912c4c133f0db9410c4254fc422818a2f828b4d9884f654bf0b241bb4dd439b110e4e8c0e2a075152ec887a3a472a5d4b87797f3ee666b4d77d31ff6bd2aeec7a6e81df581952a56365085fce0288c9b9852bf167f7f668e60fe36d6e0f53a44824b304331d9380958da38f1c25161f0136faa9fe09561443001f6c76be6de9e28504926958cba2418b063457506b516c910794a1530674b718007a9219043cb9d8cd222804cf9ebefe1d0070ff7a05acd435d6078ca510b1b09941dfd1de267b8bfc7d8bab2ccb528eb6d864d3570b3804d2c6501290776512dff1ac5e78f843d6deb472e845b98458caf43a58e4a01bebc8a31822a519f24d5bf48acbc559e041198f1985082205a9ba23b46a3d833a1b82cb26c9c3e0e6ed35dd9daef704f9e21e00b5d5fa9822bd0252c636ce30bd368ada58d33facf8521e2c41c3b621864f55837e037856d9d0553db643863a180a710bb27095f82e92f464d351598948d76e2af268ace5ec194a7f5dda82479dd5cf39a764e372536aac96cd24997b526fe62c26887f456e9ef3672f8060ad4fefa69a250c5ab452520492169001c9b10a4082ff6deb9a8b60a965111e913b4371bac49daec591446b9af1023e0c299d96ee84d8f7c7e865f2e5ed0d7169f2fa49e15f158d13af616214c527e55c6c8b15c3a7a7692ad2fe5f6fe3f546b29389de3da31b5db06a8ac868389aae1d20c63dcd564cf33bb0fb9b9d8e700ea9a94b59e7c0897f3451b14e3c7f870102110fd02acb07947c2ed38109848128acf085b0f98331160f974896113310d4f02503615592f15528f165dff16a8f4b705e6664abc6b9cf6618d0e3ab7d5f00745b717ebe30085c2eeea6f5ee1500e8b3b8bec03cebc5815a1ec3701bae34f805395dd60ffeda0d22c433117b64ffe24d97688f188eeecabdc2ba10fafdc3fca56d69d0e16d95371bdba22a208906b361bdeb333813d6ecbcbc107744cece1cb29ca8fb51ca38bbb267e247b40fbc387d2e64a1ac6b37a0965dc441f26a6415581541e97867a38a581fe7c58bb02b32063dfcac5922439220f95937b60edd46d9dc393faeccaf0ba9cd4a2994a1e41b7e0894bbe0fe657c88916e60e87664a7dea4276302e448b8381bd09a9cc7f8294d8c872e9a7c43c32a438d311c9b8df729db41b6cab1a5b76aa3c6d5bab384df71ee0ce7d38db19496896e50c8b33d288c67125cab9284d11683d5cec0d2297bd2a1bc92d2ec3541093003004daa0f72f38b1a8c47276d2b88e0fda5f5706b1af0c6f93ed8c92b5c8d69979613a6cbba17ef335e0db6e4053e8932d3538a1d245c1af2264672f4c2a5441851ecf4cea07bbbe2d6d955f40aa0e1d164d88562b146eb09a3f3ebebd53718b2d030ae8a07acff115b21b68fce8308ad0c155a8c701951020975a38e8deda630ce13e231982b2aebbf62b8108bf7823f36119fb36757ba358e13302152e3a5360451da0155c9fff84c0345fe004284df2b669001856eac0865c82ce6d27c067808ade1e2606542ccb15f0a17c4faca777f45b3ed4718176f7e1786ec4d3d74629bdfdc3e12b390416ee9b85c24c80ed84b09ec3bcfe15e1b62e735a4c622fd0914919cefd22aa53f404b88b655735cbcbe6444717d43c2199b14222e1736169a227906c19b7e382dfb11d2eaec292b3360c098c63bda8436368f79598c1da17b8cb5a4b8cd9a91d22d8b4cfc87d69f76b33d10532395bb280a352e07381230378565d7161b23870853537a1158dc3e85d6da56dadb0b52d3199e59ab8089bed941b2cd06174406649a6a607b477855b22f70832205f3074b0e7eb70e61ac1e9ee4c6eca2fc3a020dc0ad215ed1eb7ebafaaba61df20e3cc10df39d8edf4f03814af84b07f2102ea0cfd54d8f2d618d5529ebd05ee7f3ecadc47f015feb0d44765af2a8848568e74060f9d51bbc663e4efb089f2d743a773d1e6df84af24534fcba89ae8f10750ea710f43bff882cf11520350438b8f030ec0246951d4c6b7206df5d5203c8506f0919246c92a92b7aee0bdde4c859840f54ae530cf73f7abf042c99b913fd8b084e0d02f34507fe327ef9d124b338259ab3a09429c8b97179656c927d972940be11c2160883905b4127978be1679b8b6eb4ac07168b5f3da129d077c6f930883ca7b9b6e8d7c80113644008691b458c884625d20663e8665a31de85369adb2ebdcd1556cb1e963c8e767445dedad4a5d78d9ecd7430735a6a6495489421a11ed94f713644ee6d4f4ee76585c906932600c28de680521eff20713cdc703a5b28d40d876b8053b8b92cba96fe8371133cca03af66f9e5618d9ea6ec5cd08c5518eeabb12aec65fd40fbb3b1a7b87270db43fe4ff8309a492408cbbbf6923a597d92739b51292feed5cd66fab2a6c44da38e8c707b972ae6b6744faff3e3e976f54d35c3a31f9d7d2cf045844355132711af4b0da892416c82b8314d3b57871413470e8efb6da99094c65e59b20849b253ec845c92110619f9a6cfa1ccd510a3a750fbed6a2c64f3d7ff63d99496b4e0d3105d84d3cfa9464c66d5d045c8b46bc8eb2b816d459d97a18564124f8aabfe5567d83f919a17971fb7c296d0edcd0618822b1902fbcb628bae0e3d5ef6c912c47ad1de134c88b894413f239a09b7b60d46cfe220c45b158d55ae66628d3a28df4c11c006c9898d405fb4bea36b3d0c2c0a3d9b5a2d40a721fcef176b29dc5ac869843959f168ba7d4709f97e3442e85485736368002cb6c7ad18f297e61bd3a492cc22adc59016bdfef687eb39120dd511db1a1cb8ff66df52f71c695b08a8c7f69d2b95d582937d1869aed7fda4bd33249206dafe150e00f594232e7d44f125500efad69a7892f6cf6ff00e6c400353630fb5b04531b92ade1f15f019efdae71f850a92a96becb142458b005d8d18af359bfd35f4524f2c336e28015df4e8cb78b28b5a1080c3d1b629635bc4dd0c7d446d6a551a50ab58ee647e59a8658f9b9bc222dd2707b394b1b69ab7cb586d54c92253a3d73c7551d88441d8e359975c31378418fef7d31ecf4200584944ff2324e7fc68ed800606bfd6778c043125d2e3af6011092da4c91948ee0267807bd9c619111d23f8b5a7b3e67b355b759783ecc29f5536cd0d747b91087763de961a9a151582f7a83dad5de5f244b0f5fd0f5a062efd70b6c22efeac744fd3a90ba15c856cf03c8dcc17007ba15ad4fba7a43651041f141d58e4fa1ed3b84aadfbf18d8f080161f15c9efcdc35b03222a5ae26bc23a889254b209e9752e47cb9a0479bb694e4f1a9214dac04e80ac112d12bbd10d9bc3bab61a5e88775342153e9273b84462b1849a2246adcf231b927a3450d6a3dad8aff40ef59ea467a716e26f3ff80fc53731237666d3439105d37c4a53c57cd84aadc90c3dc5504b683f6fbe8cc3906571b4c2b952a455d564c19af8d265d42bf906b9d46fc1729613160234bbc50465681c92793266b57ea3d131b0d05bd130bb1781782add9990e08f758c19939f4b3cf250e1736e59b2b07dd2af953dbcf2aff26db22313439b8a11653e235e06eb1becf72d3d16a328620d8a339aefb929f2fb4c93bd7d077f6a23daaf8e2f621a42fab2a29073ce05df22e29f5c84afd0c025d3020d27a198a112884071cebdcfc2d8318fadbdad4983745873a557b0321bcb7383901ef6e078d71efad65a1231d1c08129079f2d97029f8050dda7ceb689c663ed2201cafe0b46a9010d630996fcd2ae6b56b407a1c615b2fd2529a40609bc0aa048df2320b44e13f552aa64991c3090d8f8d2b71b5df7c8a8925598903d5af72283cfaa2d3efad6a3e2c5dd1ea289293189a509e3940a60ee8de0e0f43400eef90037539e0ce65cd7e50e386b053fa8db9db67c79939de77f6ce40202c56444ca16f0f4f97dc22403fa7e51c4d76a06735a4da167084125e3aa585451b2b2e20590001606352f8d10be680998f51f28299078473ef399233e5f3bea9f32502891f892977eaab311b3edb016200f774a39246bb45e8e9623678024e7c0e2a569ef1b65ed66f3fb685c33e1d781b5adf60690c890b3f8e48f470e063238cfe4e3ca932b7a83f906ea1ef1cb94ecc75e96d3f906e5adf65e92f0a9110855a0ea8e8c76f6d8082b73b89fc841ff4fb84c4ffdba3033d84a841fb80892ad661ff1c0f2d1fe9ef6043dc9c16a4721128c01fe78c26ab0d672641eaaacb24379ca94cfa0a02b72a2b407b4068822942e7b3c34f3a55b033b1bd118c9f98a39c11516a455f7487466b8663b5f37e3814c3934297f00ff43f620b837b4a98d03dd9e90cf0b35d944ae887d259c81af86fd0313186daa59859d4afe9a8d0ac7b57e3a49325ec7f6d9fad7ca555066b8e41579ac0baeb139255aec8c3b9c79e933dca824729bb83210eaab9420843cee1650320c7542290c2f0931098ae86ca864c002f8cb2bfc60c721fc6356455b6aa9f0b038519088ed4cc158f61133c0e3c9a31636c188806807098e21b4526e68e7e6f7570b9731eac1386829332b2e598e58b2d2445460702d7f21463ac026c3ddef92e0d7c236322eda9ea015a2fb06e16f4d1baa828a68bc9c7e6e873638ffc442084036320cd1c42a4806f94b024ff4eb67dff0acfed085cbdbe3f748b43eae9c4a1d8bc4d9ba7bf85b71c8bd169ed002a3466cff33f430792fc05d84702bf26df77c6a26bc9cb6e58b4de1c1c071c4850d837c173dbda0e2c62682d5062406cbe18ac397243c76da40dce2e036ffbfb83b30302b68b11209872dc75eac7c7d950cc3421bd7abb9e8b19032f0979aa889a703f52cd1c7908171ec50cb51b81dff3a4e8546daadc1c2229e823172de89d80f119f211d33e6499d1319d4207fd164e9abb4da04adb0160848d223a93359722d1f4acd8664965386c3e0a8e1349ebdfd5959ae25164d3bf15caf50bd11a93e090f80b54adfafc2036dd056c883160bff0b8023aca6e8e165c49b0aefd36086e97ef469c286ee45b11b104af5d1db4190392e557b7575073c672b97fc7400881d0940431a10e164e00a8a1d5fe1b41e0e278e9d436e7f5146a047871c0d34c6c3078a6c8f2a69f36857e1873095a4fac6aadb12685fb9fc0ef79cd819722f19895465434f3b401163467db1e0b6dddf4d06cd5e79cf4ca4d9409967b8e64ab12212d29fa5a1f88d623928cc98d28e6062856f643e732a94c1afd9289cd5f6ec5953e9230882f06488412e40479125f396826a13fdb01c38acc580e5e929328414d13222f3af2e3e34c4c51265411573849a865e88eb1af386a343b3fa8d5384ee38b4013beb462822108d87008bbd5d75384456411db3fe410ea92162d3cc11f46d5381c56b788352af83a5160c27b7b106542246e11a26432602714d1fe01f191bb2f54ae1309582f2481791077a246e94165cc733eea24b4e1de4ed412b6a3a625bdaf0fc49daf90b5ca18b90c405da020868e99b64cffd983ee11c0a7cac4853778b69e21a73341e32610b5b56221a0e12c3be4b0c7926aada337321980e86d13fb33a992a1c4bc89e38b24892b3f1b019b358cafca4d2374ff8130cc6cc6a68aac7b3e1b06266e80265c4513cad126564f4c782e3af7d44064d6d75035bd5e361480fcf7a63d0203e9197736fc431c27cc61ebfacc20a251f4f95f33dfe64e889b6bb789bee8e5f30909de52aa2e88bd6028e5b84add62b7e0f82627e556c6a6f8e2b8408d5430e4681d9cfdf79402a0feaaf720c074268b7c384a03b4fabbdb1afd3a1390aae3f37e88214c25a5bbede631581365f6c6b5802591e84449f05cb5b5ab7f0df4494ee4e7fc6b70ce5ae59d09b38c30d07159683515f5817e7fc12d68a4c8186b7e3fb5a6e61d6b2183523d7a1d08f9105d6fbac34dd403f50a5845ed0c3b343469c0ab23c00f80a0f458d51b67333afca2b0efada0eadcf77d3f26889b61d0fe514626a507e741643198854fd6560054082238dd1d17b029cc0b55d50a50cd585b7dac431785503207873db0ba66cdc01dc4ea3dab5acaaf0625ca8d41417e5470eceb397fa3d17a506db22700ec07eb0da3157e01f092c38127cead19a2bf0937f6a6df241c74e01e64e21f360550403a5da87515d46b9e4bec51a0ac8b7335fc9b45c6dbcf90eea6970ccf5f8054a10ab76f9b88f54087e7967cdfd29e0c85f30068549d00b8175c8acd6145731ab7808b571fa80e40eff0ca1d20772289ae4804764b2ed04159a6e46fd34edf28cbb60af8a346a0b3bcc826a2621fc5a60e5e8eb57615b1b204178dfc60197685d997da6a1e80d3fd6d768934bcd7f464669e585938ca68d64dea0e2b6be8ff2699738631aaa802c272e5f652321cd9e287cbd86a96179526876659a1a3ec714692c7d553969d8585cc2671fc5c6a1233f142f50c5bbda6704b51b53bb9c91c61aec6bc6f2609803ea48a169c4d7b711e89b415f3c2cffaed0c55e660732567c238c677406263bacd47722f7792544cdb95b1b977b34f9715e60162d0d87fc3bcf67df51a7c1264d593bc7cd62eff9b4a1856a5a7976b1571397574185f33abefca9ed6ac03537fadb5f2d74d7414e29a0e01ec52058bd7964ebd642ece8e38d71a539097c020ccea2b4464341a12fb250143e0a638028651e0af30f43b4d56668184cae3bcb2fe7c7f4f8b262c067b98418ffbee00ec3a8fb0f58a3a8955e29656c7ef720998db9d2fa09b3de71e944a6f32b3330f83259bc1f3d746147a5bfa19a638e95e81844fb09bcca391fe385936c360b8030a807a1e9697f9245a3ad76dad85c10ff091fd1a950d5f705f9b708f6b7c4086c8ca096c832ec94c03616d6e5f2a029103165f37333507fa9b5ff829efd2b9e62fb826fae7d5d71e967659fca3e7f691d570a2a0052243452fdd0ce097ed2dc83fd553eef79b67aa19b8bccd908787a0ad69f4049028cd208329b169d4b48f4b098879265b3a672297a5b13e6e7cac89b1e5986f1f831b693b7aa033fcc1ce59066890059d2af5ecd11b4317c895c6d9ce752176cf6413a4e2903912ae044418a309971e809e6c09439354da8a29121769f64f9c7384b55ca4c6bc691c3e7093e1cc1623a43e2a46dd172f95fee511db2d2fc84f7e3572826d5187cb7121a42df2f142e8f07d76f7b7a17f2297990f7701542374e00ef67aeea3294d0293adb1ad83a898de1ddc86d2c163c02f571b6d580d052161070764609bca58a65ba76386a9c769a18e4dd0092bfd375149f785b4f196a4b36161eeb85d5aec93a204479b072c93e436e4bba3195f694d4141fd10a2ded3f0b5dc1127e4738b193161da1f02bc4db056cc0268c420d67289a62f68e882c1478706b748e130465247aa0b359fd055e61e5ab5fe8b24d5fc1b457ae803c890e778cc0e8e2eddd2954298480cda781e82d1e54fcb15cf5b6887f36ec4bb39773258c75b0b4da199c2f0dbea3ca99a39458e80f832a8d74b886e4ad25fa5f61f8ada19df7786677593b7ddd6b19c40e44063c19030253abe9ca6535407f569c08557abd1350c5137db3f1c7c38394f49065f317c12a073b6e9bcc5b484d8856bec08a4ddc7b005ce3ae1c4f78b000c68aeeb1d18af7cdefa031bf7faf5050d4691350e8430c9003195b165713fcc8fda707d696eab22cb044036ff0004f9fe18bd2ba0f2a1679d60a49ca5a1b01e37e248654dc4df0b2286e0c424b90457dd256205c296b5243c10686b506c6c456c5df704844ed1bfdbfa45e6da646a04c0624a41180c25d8b5309ebd39b03e48d1af3a7d19318e30a1486f2663ec0af6ce7280c3b26685188285bb52dd243e3a57249d849010e1aa109a1e0f401a03cf679f52d5051e908ac08ff48c6927180ba09d47bb8df74271e1a6c5c4476006afb0b0da1838adf203f696f4e47ceea324e5bcaa35fb4eaad8bf03135064ca38f7debf6ead8768dc442e7d188040fa316b380d4ac204f15bb8217e2b1cb73e9bff5958aed53b3cb7eeec0287a708c08028070c1c87ef6ad544d66fed881da23d04103e35bb21c6f12922b0a0ccf680408e9458681ac2fdf7b8ba7e7c8868236bd6558e01786a46fc153133af0c34b548e25032a8e3a62d34b3777879002b1d0ae05a3e41b24444e788ab82b3700be9c542da8cb31091f75b389025903807b435958ebc102a48bcc741ae972098044b4bb8e24cc889cf9b1e760a2337bbd59181431bd1727f9259cf86b39ec5ea062177211b7bc94ed3a67e53653272525aa8fae66d1c2dd39c4c9ffd2d5e4345d00378276e80c3a5daa4d538467a9df95324a669b9a09899f55ad30cfdf1106c2ed4f1d02c9253c290f2461ecc9e87682b4951529172317313a4784151200ba4626a8d43ea3e3c8f08422b88d0707e70e146ebada575ea958edeb5728786d62a4e6032196910c869be28327654230bb71efe0af79709e50b1d2067d8cad42de94d108da355e2534a63461c8a9c61604421574f35d1ca314c86064ecf46515c8d6865370cd566117abdbc915a527ffc0491c2f6c176a231873a80cac9100fee0180b06030a960535810545f4685c15f0f4bcb3800d55500e490e608fd517e54f1a41f893048460f7d548f483f0427b6fffcb871bd58f083b602b7a7494226cea5a1ab354368c4897bcac7b88f58be38497c82db9b1d93713841e7aa8e73dde1fee7f9c26a7c933ce7a2eb27b28cc8545904029796c87174abbfb141ad6a3bdcace19a1c9deb3d99152bbf40cc7870a19cb9d6bfb46189cdf6bfe3d2e1a58c1f52a81e5e9c81f63f0dd02b935a77640e9df09088db85d54d10780d89a60e2339d44a5bbb09f28bb60225b517462c7a311c9d031ec28b0158ecb7ef26f900b47e2dc6a231845be00af0e6924211a9bb59cb52ba23a8e287de1dbda08b0512cb426c49d2a7d841f47c83df20f24516672cfdd6b92c1d52a5f138850378b354dc0609fed98f2e0457d8619006cef528952431dce4fd5be8a0b7db27c12a3aa302382cc390ab9665a898b9398acff823e09fb4f0eba4d0fae1af51018b15ae90e9e6295a52eedac22b6d9ce0ada48d3ca159f10ab590e2a3f442cbfe54dc3950788d3d0902e230a52611bb2cdbc70d927ebfabad9fc348e8afc3c84384b24404bc042f74690b16b992e71d667153cac471c72ceb1a76be90de09934e083639b584065cfc024af1ad615c40d619a7032ee93f588bc2b951c6019761daa4c6e0369ba7ad6100fde2a2001070906be43076a3b6bee9e30d1ab047d7e6959f273ad2d0bdfafa4534e64ba91bc3b29933d00b1d665bd877dc80dee28bffd2dade7b6f29a59429c9143806f705fe0591e40348882837becf1037c86e5419818120840d4c77b4844d25b9dd1fb79ba641fba474f0dadd1dc38322288106545442c06926bd759f000ab7bbbb8b60b1c2fd2a01ee67a38f275c638502b8fd35882b6ebf66493e4588dc862288276ef715d5d6fa3d13536bfd010a0e309660c1fce084167049582f400041a5d0040a061044707881e4870302891b5c9ae84901082784909c68bd00628a15b42441b90021041d5868d02201d1041d569058794b25f2c33eb16221821a3242925a21828447b46259224e72d894001a1129420eda133a22225aa0322774b615f080ad863419e070c5aac48c801216890e7589210c0738502484ae2a56306990aa506e904be45025a02036013465f08414f8133f53065d04a9b5564e052e80b7d65a2b1343fed55a8390c1ad2db0a94f2ad12454962b225a92fcb99f7d02acec8cacb16f9474523ab51c2c8ccb3e2cc02205f6058e1636dbc1b3ef830d9be52c892be2a30890e934ffb6c8a5da9b4c42a084e0c986b09a133be89083fbfd434a7d74a8e2d22036f3b21cc9e3525343816d21c2155a643fb65ef6d1a10b8c0896da80c46a41b426ac6c410f3d0cb1f1b28f901f341e4b2ffb0809828896cbf0954c840f1f227eec604104cef5f383939e1ca41040c3ffa58c96ee5eff9c0fe3fd0d8dc8606c781f8c7c86f1672645ce92aac6d96ae11159ffecba6f3bc9663f77cdcdccb5b9bb1d3ec3ede7eed3e4fb77b4d3a1ddeac5a64af85b24feec68f0cb77f6faa5cbe87d6c222b423e84b08b37cba447bb7a33dc7926c1fa920b9fd4f057b06ddd3a17993f97be991d34f8fad3e0db0f6bdfef39fad65c4c106b7a1c321af1fda78c9ed1ebf79c87890f6f7c124c746844c6a520d65fb60f710eff22f46707338bc4f7ae08ed607ac2fb597e861ca9b09c67454eb02c7bc5fe71085bdb042f8410da20ac3fdc5ce82b3dcb311cbb222e2cdc02073e495450fa627aaeac355766b54f302e474ce544f2a4b807282a52b8990fab49638e8947b5622a525424d194b449925857be922557be8c26adda24935cd28ad473e51320a4b423218170724a3a2377aaaeece15a7dca48296ea5e44a8e45e269932472e5cfae2fec7ac61895cf10251e67d0900b8e1497c9fd48545c7cb8470aea534b90ffcb6d11bab2eb640f4e25e145af2b83d1d17969bfe8509f3e8b23d427d8824ba21279ae0c48aefcd4950f434d62e373aa6e75e5cf1c6be33ee2bbca69fce5732ba7891e90b7a80004fb71249e2b3fc6047c2205714c8ed3b08d555df9a4568ad4e2b99284041f3706e7ca2f46e7ca18d4952421559f78e5fd5b5a4e5382d18b5e4e683f3e0cf6a35782232558f1d86d0bd0950f4374afb2f7b5fc5cc9a93895d38c3c1818441f3fbec86b69b94cec481cc72191cf0149e1922cb9925bb5ae7cfeb89f2b9f3f0eca84a4966c394d7cf9a49ce8c1c0105ff422af044ecaf148382e23bff2dc2fea64aed53e7197e326f40311396356a894ca75c0d30327481cc6e86540d990d3b08d779990cb64da9039e77cd869288d47fb6c68761a9194913ef135d226b9693c7d620da50dd17858afa95c463ea79a1dc76a138c0568e07abc0cc865e4f3b0919caa4d726ad96b4bfaf49184a6a6adfaf4d2fa813212f261e8cad77ab46c9284faf4712a52167df21c5cb9f371aa2b5f53554df5654b8688b486729a6a233f03f24ce5346c6344e309ca5a9eadbec883f5a173a5b6d595fd666030b98cfc1ca7a99e14b2fd5453f5495ee9f382d495af0169529ae6c2d192f4897d78845c293f6d75a5d6ba52fbb9528372a5d673e5d379fa6a52514844399191c89551e74a8fe9292589c10f74ef20d39c3edfe767b3fbdcfbdacbd133ba0b902174e71e3d04b1502c232f60ffbdea8a85c1353343e13e4e39a7ecc186b6dcf4e9018727953be794d17296e4038322c0e0c9fdecc71b64dc27a9c1cf606ec877fad5b5b9d5cfa41699051b03a00fb71ba519f2bdbb186f946477b767a3679779175f76d12bdd2c6a33e358afa7b2e38fa5cb9b0b03b8d373ec61273ffb20ec3e18b719cdddd42ed3e971e92b9c113d0b039b037ebb13768a9d62a7d829768a9d62a7d829768a9d62a7d82993893d823dc2a88a1d42bdac148b04fb91ec116c9451151bc546b1519cd828360a0c0e10c6ae59b4db98f705cddaca32c8a1c819698531ff1c47b230e2944ca6ff18ced942efd34655ac0baa8caab4b4b4b4c000c20e7dce52ba941e5972dcddd99da5a4ee524ae9d5dd99ddd9dd3577cfa4f0677fd2b57649d9adabdd1633c7c487d78d9663b8bb4b0959524063c4202d020f7ef4e087949107b28994b1073236f9914d66f99169b289b6450d34711b348f99d00f1d020acab9fd798b06b966a7b09431caaaa9899456a6f7056f590568b4e3a6b51658c164ba308a65f372e409a2413428d364ab564ddbe2cf0b2f6c2eb29a96a97090c2a40708d2408809caa587079dcb3fb8dcb34312b76b0093237afe5ad80078f9610f963fc2c4e8cc8491cb8cb598092297817a94b81f073161c5fd388be890adcbecc03dd8af421da1956a09eb090096a0e2e30325977d7cd0c49dd1f45eb7a301ef0e588527e34881f68ac8df72b0f10447e0cb18d9bb49a589956a15e2c0326b3527bbb0fa55ee1982aaa0e6f9719d49eb45ebc73d435005839aa77f26adb30e41150c6a1e39a9a4b3fbb86708aa82e6c7af0e4155942e87fc5950cddd1c7b5850ddddcddd5c45976a099614434b7812a0c48f14523c21f574104bf1518158215c875cdae2548d899fe32a136ccee73b7ab9692d85fd3ac7db5db469cf3bb05fe74020a894d5bc9721363ecc6c1643197c20cd8dcd6ef4d2838dded7421a48e7b449bea86b9d36b18e3072bf0eea13b38e20d2437d625611496e53b9d26b210c5bee2da569d8a6b3b8f2abfc9eca921067c69a462fe2362d9b1db15ef17038f7789c8b161358513a88fbff4c1d74e52711741b70d92789212efd8a83bd3a95e3341068e6a773feb23a47f33edb3d99f7cdc8ff4c6de44a08e4fdd5391d0e8e7143df9d5a283ae7a6dc7f66fe39ce6f4ad77b600b928c4b5feb5cc951200e6601babfd6f5d0febab68e061e369aa669da43da7d25c0b954fb7eadb1ccfb3679292788c746c8f509d287a192ca8bc28743f23ba7befc2089957432207c1df9e31d6bd3c7216977587758774bda545215b6b0ee53645c7a29a2e3534a6b866159c5bc1e9847af8b561a3d5523e491c59723b1848359902f6bd7a35e577dbeb3d65abbcbfbea9cb5ce6f856f93bc997074a3c762028acb9b8dd18df1868c4bb606f6b3d76d5f209b9f75edeeda1ffd58a594f12b918b80cb5138218bda7d3a90f030cb15967d90e85c1f243917be021a6e37b1934cb0f06514ecf5bc61e07a3964371bb555f6b35dbd0b6ef539ea20410863f47ee6e31e0803fbd52be32422631b8e4840694991237344163ad0d1810a9b693a299d198e5db9ec73448f2a6c0a52aab02e3ef0c16a526048ecf64410ac0a3e3461c48e0a8cc88962592efba8b4d842450416d8ebb28fca0a2558ecb28faa6552b1be54c4cffd7e466e91c518678dd1b386588cf2090b4b377a8cee750854cee81ee710dcdddda7cf4be36d4e9692e7cb8f33c638658cd13d466f0cc6e859f4185d13f58b1c32b619904f94ee9ca316f936a7d4643684c56b4e592fba9285853fe59cb2d37e64b669bcb9738c7506f9a59829e59c730679e7943fa79c536e1e277655ecaa34ba8b341a9d46ef39a594524e59e78457a551c239e58552b329008199994b52426f9fdef1bcd2a7e672def851c3649cd97623218dac6da2915d19d9159616927db1c2c2cc2d24ef7a74af85f4e2bab4b05c49d25cb61bf94e7a713d05935685bb7bee234e83e12577f717cd9d2ab1f0e58d0d63575a7e24099a90a009845a40a805845a504ab9a094724129e5a2499338251667cf9cb14762b3024d68133ac50ccb45eb552994d05f3699ef229b10b1f0659315ee898c4b1f9c742503315c58541b02fbc2858d449b569150e537d08383827542cde04adb4234b2975da92b2c9ae93b1840178e0e300d5cb94c3f0ab82add9e0efce118433676129031811a76bba92b2ef17a8c8ba9198e1a0005ddb887a38536f58f9890620cc7b27d9b3a966d6686c5855fb87cf1752bb0b31418b6c849db0d74c1e11cc7fc385c361b9f820bac7f578d59b61bbbb202e43cdcb926d868a1d0cd46fc5c6d149704bb68c101df037d6221f4642ee4627b20ab4f2e171e61c285a30b1ffec027303bf2e3664b6e76648a9bbdd6a7b79714351ae05223395cfa73bba1f32bd3b04decd300ae9cc10fa457b92d7433389560dff2d0e10951aeb0a2c8931358e14d72a20cc10401375f3feb4a4eb37926affe57ef8684fd6aeefb774d9f4a26d204faf47d0d53e9495ccc4b1036b6a9be7f5fff4284bd3cc6300ccbba529bb0dfba1edb8f44a28c061e36db6bdd7775a2df36afc7f65727daba2cdbb6abd33cec65f4b7092bb509f36aabc085f57e6e492232f61e6c6c130c95b1fb74cd1ae05cf67102c82dc0659f2440b7f6a908f6fe5ad4e8261f6ab3ab0f6bbd2952036773440777e35f7773615e39ebedf89dfcab93b77fd239e7c729a5bcb4a30d4e76266bf93c6af0dcdeddbde38bfe9f8c2b9f07c7901e8c8d075c7707c00300001068914814809b653cbfab5cd9c9ed463ec31cfcfd371e70dbab72b3d8dccc7d353169bd24e6360a5fcda2286e0e83005ceaed0840b6cdb07707149af1770704c2a08cb44d40a7a6519a65d0bba001abd46d86df6bbb219ff246019a790f3ff3c79e7a1f8f76e2625d8efa7caf2e87ec0b814bbd1d10b814c6f6280a415f11cc1bf25a42364f6029c03426ae61834fd200573e64d52800d3d424e0cadfa0b035a03771ecc75df9f283782e6b770cc35c83879c2b7f04d047d3c4ec3074e5262554f1b073a95cf9709a6ae4afe01b0566109edb37905e4572fed966859691dff3e195bf62042b93f0c16d1fcb3e4f38b9f3bf19e6ed8773358a317bd8c595df3caef655d68fdb8df9b00b9cfbd560822b9fbf1aaee67db07ef0aff7edc6fcac4a952bc33bc8c56a97837a3037e0e581c1c621631d108e7c60f96538ec20902ce3748c78084ab9dc4f80829cbca0845b2dd4ac305373b94b709b41d2eaa783bbf065c481e54222c169dcfb4050dfa3ac9e83e07e1eb30c7f23b81f7fdbdb1fe50ffff93fe2435e007fa48113c01fbb2f7acc07e0871b0d786de20d789b86f8feb2ba0c3ce232d2085a651ca44879f264c99224498c186181e2e3c4902b9fbf7657f9818c4b0f33d127fa391a59db7d3c7638b79783bf191bb2fff2597e71be3c1d1a3f7bf7d18757c43e5edd77c5177539e4777f5d1e86c58b7e845786d72ec70e1a6e7c1ddacdd1cfa28ec2d8a8da14fdd6b197833f7ebbc0d775d1af6e1ebc74b3d194fef65dddd77fb9c07fc9cfa2f7f5431deee5e067a9b197e38b0f67b8adc36df433cc8de718f34c876cf4ecee33620dcea31b42e1bed1f0867176cefd1bb041168b51153b8575810d1a55c182db42b12eb053d8292c11ec14168a25c2ea9d0197bf035c96b9b0ecbf4be4b1bb4c562b66ad7bef32cc02fc9ed238bdcb3db63d193e72707abcbda18eec782463be2e266aadb57e35d51905e418a00130870dd0ffc55001c8e5faebfbb2f7e9a831d51f587e1a2f439606e401733aba317b3378068f186ab5d699b14e852decf5145e32c85a63b3fa31d4effaf5eb021cc0513093ee2744410671cfe2d618bc7ed7faf5237cf6bea8c421cb9653f4dd4b12ec176f658f39467d39822d92536d5c462ba04f2bb4893f0613ff54feb93ec47ef4e1c7900166818b50ea719b8af8c72ee76dbc7940d75ee0f384108c262a14f11285aeaf0956ae902763e1c142161e602c626767676767676767676767676767676767676767676767676767676767676767676767c787f8f991710942202ab7df873a7ae7b48f180481dc95dc7ed9d373093472c5ebf2865715c1d49c35e79aa11fcb66d0a2a67943ad8a4080615aabb716188806bc34e06da14d5d33d2b61b19e20ad72c2d25d24603dee8125d5cbca14b15710d0ba5209015f66b179f15d34401f8fad3401d2434e438dccf38ca793ce52a5ff1d329a3d7d4d4d4d4d4d430c3c83416124c81c0d6d4d4d45420db415c0bfd900967ca542a954aa5baa6a6a66685a4bde0a6d050e3748e909050a75ad5abee6956b7f8654ca552a9540a042cc4422f52d060c048555dd91e8ef52dd34f0b020d551c9bc3e93c8a6726050453a9144c090d354ee7e8cca062abd56ab55adedd40a9542a954aa55e6054d0a28de3c01c863c178542a15028aed55a8e7b20b8823d90055bf00702c146a15028140a42a0570100da8c89b39555ab7d136aa606b65aad56eb51d7434d94444594a302a0592bec6bdd32dd19e71f06ea56e5388f7a9ef45a9e535feb34d7b196e3fe4da6999919d7f51c8eb183e7d40b14e1907555d8c2565b85b76e905974778fdea2c2c29f974be9312b42ac08319f4b73658819b18f1df61c7327e9cef9991096db24f21982916b1bb68b440f451e738cf995dbbc8fb39ae759378136f99b38ae46fd61e37fcceafa729f34981bf6d2b797de2814877acee81db3f83ab89b18a3f434b8456c1a1ff46d781bea1d91ef9d3ff46a9ba27c1ddc9d2fa79411bbc1ea90654341babba11051f65982e40c0d0d3573b70e6f9618502a82750642104249d2af69c1df03ee84c8f56777772992cef4c91f9aa0a6e6460376ce7e137c97734e034439df67bb9c73b6f4da2b12dfbd18af461cc9f20e720cb657d8affab8f8db6f91cb83610f86becd111960d3e7ae7a5fe97166b867afbf7f0d3877868ae37aa9fb080df7dd7d50a8f3e9f12efbf80cb932ea0b7e4d423ed3ecaccb7855ab61e5352081dca28fc7ad41f5d5a07363ba041b006fcb8134fc22ec325458f8e4c687397d8250e8ba57b3b07cd9728c1e16d6232ce1238921444164f5847a1fdc584a64719985e4e7d65c662961e4b252ab5b80cbac22436e144256d69bd95e88581f767ee571fdb4a9eea0f7aa372f32b07ceb853dc4300f0e69533fcf0b11cb32c49eb88592213cbd82cb3e370012858f164771d9474992abc4081cbd24613bc6f85da94dd775714b8bf3e53c922d5d8f9627b1b0b43c935ade5a966f69f17ab4bc772c5e4bc7dc22bfc5b32b8673fffa5ccaaeebbaaeecb7ebb3cd03be3d773ab81f89362048458985377a6dda5e90b0ad62e92c888631c60845f682048410d239e9f47a4cafdb3b42870d636c27d90b9297232c63ee43b6471d5c9b7cb489ff6565fb3f48e5e248c82463ffc17db031cbb8f435907d96e29a8ca422faadeb24dda3a44d70f58daa161bd244db4d7cd17623a2d77643afad06c31b6327a9df28972b52ae3cf57ac531e47f6f52524a690dbe9b0753bffe25ca44bf19b176b4aaacab6a90d5a8ebbd4675f0422316eb48a3ff2ce416d597d159ede0854152245fc8174ab7692fc3471d4bb7d2c900af49e260af57a311e98e7456149ad824819520ecd72809b449dacebe0d6f63ff45fa4ddc6e6aad32da3e0d34d86bd3be5e6a3b1fb517402b1793b5767926ef4b375828010b57b4fb4cab3e5d2faa2fc39d5932449304fac4ec411da7e94e22a5903e0d8110c28717ec607061b117fde821aa42213ada853a45f48a33390dcc01937fc9af50671bc27603b58b92ec4509cbf2244695f58fd15f0525cd62cf25aad1a71ba514fb09d0af4129a54f3f66ebba1795edc76aad15ebaeaec45b26dab6abcbb06ec3bacdd3baebd234ecca2a56af4a5997f665af6dcfbf75a5365daf75dfa6ebabd3883c93cb5c3ff290b0713481ebbaaeeb495ccca8eb5e8cb0f1356d7b51d743341a899e6f26faadd3bad18b4422d16bdd487b912612699b56babc1cdc5a12059218634cc246588a26809f753db2d7bacfb2ac83de573be30eca8d1f57504a5983efcb11db7c2f140a859228160ad52cc85a25596533ccc2065728d47cd8737d9497077b56ab4a39f873bb81b06705678cb00e594bfaf4d327faf161507c0214b34d835eab4f166539c2b220cb4296758b8a3ab6a2ae8e8140a02b3d272dc86a537c185c58f928d68d90ddb1c11229238c52ca28a594524a295f4a29a594f237958d2f656441c61e83249265c4ea32956be4d2aeed26fb6bbb710ca39c6570bba9b5668f751ce83c30da701461e15fbd69da76d3dd35f8560fa63f078c2103dbcde55980b7ed067a37d8f8429ff88536c50e7b199e75d7d7380dc61d6b568ab4d0343eaad8686fc3db681fbfa64fd856832f06b5ff3c703fec75705886410cf3664c264d0135c32a7683fd2c8e8c031cbbb05fcd8db76fac0f3b1999d7428d5f849d9ef470b023cc171dec679db7c8c4c63611c1f5697efcebad5f735e33e288717651ced95d75d63a699c317a560c71f8107a1cc7f0df8cd0e07e88824cc6b4ec8611421e64dc34d1da0048675acb6c1b1136bec7e89a111bfb47846d2b9d9eec68a188df922753eef85198c00584cd31a243b7a287ca659f24aa99cb3e3580121fba7b1fc7299b399301deaf063a0d0358267e8c31be6f46ac7fafd0a61958d30ab2fa9aed9328e37b89ba4ff417079d37a8146ed705b1746a06000820007315002020100c0804227140208b535d157e14000d78923c74549cca8349920439885188188308010010030c10304363322500f82043d765e8920cba2c639764d855197421f3ae64d6b52cc3d3a58cba90597740fff714deb8ab2a2e935dc8a82b997749665dc9b86b9975a18c5d91a9cb32ea9a0c5d7e32bd2ec87c17024b07f48f85033adc28146b1d6de489383c88c993bb80b27c4d2ce70504171a77cee98380b0e67af1c9f5325e3f1ae49c52d542725fe0eff8ab5ab60e8166cf5c3a40b119a552ded9f65ea2d0f6628325ce62f6405307451ff7c447d5de0caccd649849f1a41c557bd23ed14670cae9064af6e8cec6250fa488e7195144186b6e29dba106a1cd4a5d44e48d68668affb2dd1fb036643e12f430d9ae4544d9189993de02ee82227b9c1b18ce1cea5a6625da8f95d6fcd7a0c13c15b5addb89481bb429ced2cc4d848b0677a7d0fc1235c070415c58d00860baf7db2614e597bf15f1de5958b142c15d8adc8e4aa3146a0956f2c4e9cffdcd8d4ef693e3a4b1d8072337681d1997569404c94574ad9c7e48110463a34e9ac4e590fdf17e85d2304b5586720f3c62257c6f07afc8cc995ec592d052929d6d7b28941a6a7f613fbfbc5f7c57631f9de13c8a23ede9bf13ff578742fa4a1ebe5ebb18531b0e6791e04c4f7d3cdc18e565498e2e06adc75bb372b1d72c7be1564fb4c3fb27e72523fa7f39aa78cac8caecfa5f6db863eadcd68215b22fa7122663fa637b4442c4bceeff10f82375d0ac8d2eb18ec7d127d1a55a523eb5a3c9b3e6d1d1f4166f508953c09298cd65825c56e7e9e6cc3de5ad2de2effd1db9ed7c18ce099826117aa2f39ac7c33ee20c876689c1304e17ea169ea650b9b9fc45d35fae3d82407a7ff03414819c117db6f23febbd7041135761bb74c3d41841a0650aba9a7d226007468876388ae8bee26c55e0683df9025706c4ac0481c747992adab0a5c6cac5cce733d9e82616f3cc7c3d8fabec8ee3e6355b95686de5b369ad759a6e2aeb3dd5c54217e6ff8f8ecc44cc1ae82f1728469bb26365225eb556f4b6d60150e12378856a6895936ca9f88e8360ca442c43c1cb065b569b49b8f9a948e2a0816de22d79811b156d2f7bfa6b5f61a838e331a9c0924c6e50aab6390704d1cdca06b6857a2def07b08d51f4793322c60f2b000165d195655c6504eba71b6e10d6ba01b2e37178a44478b4a448dc8eb5c1e758f87c8b0ef750c8b06e3b9f20fe0bd73b16405a6da4916343d3c729aac7822929cb0cc459eb6923be3f45664f456e19824bbe4bb5d18305b4f7ace884f8660b37d53eb577be91e8d304ae91ba4f906834bf4f4a536a5b780d0657daec3704a692c7fb6f9afa927ec05af25346e5bf450377cb37a391e5c02d4c0ce251b2c87a76e484188b1697e017ec9bb97f6e57d56f157eebef3056512d455687d484391902f1b929234cb453617ca2dfe24a5760a51a01b4e204885cfebace24f7d99a008816f12c05e8631f700c359b2a1e1a087a652ba6378d9fc0866e732d67408c80837dae638214de6c8ec5ff914be5e400d693b84391ad59c8d2ec3283ad0df0009d8d8a2ee51fd79589081a7ef782aa012785e96f2b5a0881aa77b68505774046c92ae5bedd43b1d204949ef21199b6234b16c359546bf72b6d18a40f28ef90878ea449f2bd1d87ba40c3630edad4ae36b1ac69792cba883b513bec4b6bdb9c708061fd1a1c5fec699bc193b62cfb99eeca7d96399a046fc0b9b2064452d59c50898564a7ab03ecc0da9c1f21dd4c6debf604990d51ca90f5f460ced2d98338f3390a777c441187b98f84b10f80b4be5c10c92439d22222b49a03b8e60ba10e0c13fa95b9223180c63e2aa122de0cf82c46b7dfecae4890eabe21fb624083dc5a68430b1facc00eea2eacb0c26fe76a32835791f4cb37cc0a9c9ac332c105766abbed9aaecbffde61d3435081f478f8ac56493eecc460c803a0061f52109730e6ea589c731d27589763be69afa2e384cf4554f8ed9b1dab874006a9d8b48be8091ce6c3ca001ef9bb431d59c4b4b4befaebf8d2c0c6a63126fc02a6f9436f0cc4b1f02c7fa292f1e69f2abe6917fa9565885fc1506e6a9038aeb4d9021136894a9be15a3b0f088a4c6d4a559cbc3de8199894ce4d5d14922751623f5224a58b27712a94c2b8c9a44a748c28198e2e1e6fcbdc649368f48ed6360628e86170583c0ef6d4803492f5de2481095e586c2f23a56660dd911ca0a39ebd461d012ac2c9a4a26516de176da08db514d7c5d1f15101cbe2b5319a8997114547fe72ebad0eee21460d86df5065cb6ad84f4af4cf648ef0d5aaa08dda5a8c6236c598cc26a4f1ef38bb53df685a14d04ffe081f940c03b550784dcf9de5bd2628d9df99832e455a57095d341061f52080a0366d3f40ffdd8114ffeee785c6007f03c162c873c9787da07713851dd1871d326cf7611432a54004e74903b3a6bc73e5574ce4f40942b4e876a5325582eca8cb08540a1429d7ab0947447af4aafb1f4176a4ec1724a4897738d4bd612f2de49abf6eea630b05243e7a4ad355709e20e31a8a77214afa2d4d85f911043e97372d68473ace0a011d7d9ce0f749cf3d2be510033f3b4b34914d26a2fc3f1f17cfaa35a1b854aa659e83dedc6280345a973ff511635b795164f21401edd2db3ad90efb81d91278043d16bad540f759a8b19ac8df0754cecdf0385a33f46ffb250afc7e5cd559ff23a004046218933fd885c8c0fc1bc35a1f934c14379b923475cf22e6755a5ec1031dc0fe286c88f749357d888bc7eff6d10e84f0f35d87ea5830c7db4955e45ac27048689a3d1cfc27cf56055b00e34bf4b39158684c0fc52f7bf27accedb84f24e174c56e052fe5c54c973b1c7435e6f96d4e320b5c02e7d81b30baa77884933476abaf0cfe63edd3d64e49f41a7a86cf803f2e1d0d0c1712c58832aaa176afeecce2d2343494cde36ae52ef9a1e1542b25c55c08732f446a0be9b634af695e2f39567aa558f69ac1466789327c67f4dfabd00a90ba5b81d1fb99ae809d9d93590cba0056c8325d11476af0b596509dace02bbabd50682ee6d15a3ef34f1d9f8ab4a0fb7d25a93a504b3fdb040eac786f7d30cfeb67d44515522f8f6b74ba5e40425a97ac28536677cba367694840a2a44f672b68e2221ae672d59d36338f2aa32a72fd73680bc5d6c50ef9e1a326efbfb8220d525fc76f10646a56314feca396054419bc493d6bc507aac03b8b791720a2b37c1ac48844d244182f85433fcb2ad118c938fd22f0d1f28de221d5768383abc41ca98890b814de6b13a7da84e064d8bff4296e86ceb2f9aa1821f286fd6c4d3f9308c79d5ba6c29ff889412fba53f1decb0bc7049579b813d077da2402e1c5af4f53c39d27a664212c3ef6d2c027929ca1cf6f695d3dbc6edfdbfc071be665852661ad506d135826ba12f20659b30cb4a6c43eb52f404f93d1c32d8265ab1b728c27d8028cc05740997237b254160a6ce4054bae2fad5b4c588de51ab20b358c650efa41a96a3d54ca16a120f6798dc5f8a462830d67c4ca53c9525caa08a2d8a01506a2e2a66a1bdcb0118115bdafa30b6d949957105f5bb2fa05cf06310dd92525e506f8d3b168ad4cd43558c290cb02a50f27dc6e572bb60d7e72a4605bc788f3aa640d76dcd215ddd6c5b002630aab7b219f33e222faaaca6db338424b426a2706cebef345c3c78d36b43c78637d588b7775d54b0414e4a86bcbe2aab0c0d34ea3c6fe821a79c0860c5d3eac3c41c8c5043224486cf7f0d614623a7cfe46c40558a31e90e068e8491cca8032a3511fb0647c7106d5d70f61d23d3a99b6446246ffd4fbfa0c6dd36e0ce56738ec7d100ec856eaf454614429a2e862811d59dcd889cd29be398078e3b37f9e9e82cf1ae39fa9267f28d3cbb809d974215a2fe490282e6ae23910d50ed96d861f49d619a8662950db973a651e1d0f7301bf3869ed4a6748905aade15e87696f8db03517a032fd8dc596f4bbed334b2643297a845b48d0313797a1c91cdea51b6626c5a4f2f1ff4c93bfabf05233b7c0a5f82c29fc26414c87eba695468275b954945c3ee22f3bcaa055bff237e3f47768d6c54bbd8927781811cc8c14ff162229057b239e38cf70443b4a277907601cb840f0e2c4ac97e4028a32003560d9aeccb38b51e951c39c986e34d476d15b2e02471bbf31a425aabf8b73ba823e2ff03fecd23419bdde5721015c0cf3af5eb7e78b5e7939a830789e06bb3ca8f024c43a42c34ac12432830f691891ef728744ba766a2b937b2721a723b4aeae7ec45ba8d367bdb2a347bef5ef60c26cd8712b5d6c1dc9fc486f2e90d6e78ea602aaf67ad45eeb7c539bd2b16e50304ab52eb4851f401eed4c9db52aaa0a4e9a5a9d92155ff0ba47f9cb1c42fb2b531834e1910d473ad8324ab892b4fde66900479e035fbe019ce0f9170e119757cbcf469872d4ce21910ff78dcdc298d0a78489a4653eca822cd2d57560c12f68b17463125fd095bccf511754cad37371a586c2904ea9266f610a747dec6b47fef184cafc63ef5cb252f642facf34fcb739791b84da688f2e3d6dd9d20bb364d923821e18f52aad7f9b01fee798da74333fde46fdbe7eb71380197614b6db0201212280956de32907858c27b4961b2ddd5c74be0dabb5f3b49c94637ad89f65b4f3d32a3a9bdce5583abed2441b478fe0bca1ef19954b79e33282503ea8c6f69f926d1564ec241ec40a8ff93a8e59fac56855dd9c6b65596bd72d6a580228e2400640b026d1d19c41e8c425f61402e4dbe8f87e2064b89f2e9308f6a85da24287ae30a83ffe5e3c4d9238d13259967d45b30ae756e25ac24bec55e12bea306ea21f84852f5cfa1b4a2477d4d2af65c57a665ca01fc283486ad40c1c096b92ce7ebf00da4053313cb8b261c5df8512fd0647b3a09906210e94b62d233b04507c20bd98cf812e162c233da8476a137545d1706d5c73be4f8aa328d16d87678495296eae3343e8ca9c70e43386a5708b8e40c2ccfe45e444c587f6eea4ff9c963216a73a714273a919f839fb3ffad546acdf181eb27cc35ce7267bd0030a8d994e28900262794815c09736277a2ca28e41c18a44fc90d9cf0f0eac84280ce01235ba5ffe269995fad8612c1cc034016df7abc4c3e7566264d259141200782ad4f8e055cfaef1adccabe283ec0267ed02c6e070ab8fc547a6e5f1381c012e4f62a28ed33e248412c231287540739891ef79a65c5b842246efa89d5592e158bd54a2304be2645bd413eefeb3f22b1a6074402ad057983185a328679b8beab3210377c3b64fccc1dba40dbb36648e256b14f64c6d82b63d168d1109ab1c0bf307ddf8ae135e4fbb17a56041794d37fee36c238d9e7b5e534198677828381923cc49089164e74a29495b2c6d73bb9b7f3655d198dcbcb40e810022cfcd889e89c11c9b69f707ab97f5a5ba115dd2e759ea27881118e475b544a1a1b5b32f6d0e4f9327fa699ce631554d2b097e4f0d6bdd472f9bc075ddd7bdef1f4e94adb113b5948cabf53e039310a5ead42aa3e42083c79aa0540fc2acf7812404b1882a8eb4d9fef6276a80e8f67cafa36dec28086d15b7476e439c1d41724d13f48cb9de9e5fb33ac3e87135e7b794ced663c3adee6c9a39e0d3d4f77d6881a6e3ed5ef2062cfa3b60989fdb38b1a627ed7a4785b8c1be90f0cd4ac259f9183a2a90b8c93c459378db286b3d606d76606bec2a40871a26b00190463a4b9d716bccb6b72c727abcedecbba31275f00aee4e09066a148cc3337e562fc8c37bff4da1ed322f9cb72fd63a5c816046fbd3a31f01b8679149070b8a80081d7db37b75e5296c3adbd8f478a4dfd92cfdf476e149dde86d1b41b0c0863b6fa5ad5aaaa8ccd8dc09d983cd2b955ea3107bfe36637f107e78d835784ad42aa92ea8117351754a5d6ee4a010097aa0704723286bf95c0a4a1e64e1978370fb22ef483255b9fba42f5ad3f3b2d70508f862ca5fd7937e0ce55c3b8214e0990dc553f104ffe7af45e53fd5451ab40eb50dc1e2062d38d4ee02c9a6f065edc82c46ac008bca8ad38b0b4a05c7291617eb9c8c0fae9c6cbdb4db186304c6dda541858768bc170bcb62ddbc4debbbdd2e84f1d4b2c09fcb623646d11d4e5ba47b17baafc4ee9bb5cd6916cc994f0961a16cc9feec02f3f21557dde11f1017f969645d941faa17cf22d29018a0cba3993dc83cac81281fe50d930b34c5782057edf2dc793fe0a0f0568f4b65849da4636c5bfe900b39651bd835218b5134e1cd537b928e2063b235cc99a27818c0843af181edd8e0da5a07c969f680ed0156c8063ee7f2788e013181daf43945f045e34cc06e604ce36c7c6bf523a509f564863d01f3ea5c6bea576f0da9012ebf065fe4d098979f84f9036c3fd3f55eb7f9530904b963d5ae07f87de8d81b7ab77b56021597b390994c9523e0b0f48167284184aa154ab47b239f1b7226a778b83d541e71c38babd50f8d1ac48807ebdd15de3d5ed2c6001f73392449909aaffe6aef3eabdc29a3173a8a4d95fb036503dd23bd0ff4fc824596eda9be12849d40864f00f73843514d984ca2fbae00d4d28673a304507c31730ab91f0426e4d2618a1190a8ef6c6657579d9457bca8fabaccaaaf137bc8054b48d1c79756a54b3a45cc66eb4a8b8284ba12413150d0425c6009e513fcb9dc63526781ee479ba96c17fa0902d990446b5a3742c4775f213f00f72089976da2e06a96840da61fab624ede72c67dff8c859869c32956a46c293ac69a9955257ad9775f2f2ac72c721ae80fd2347e7fc413d42afb03599a9bdb05ba35b5b3d52e4892487b1b97fd33cb613a84d8372e2bf63d112af7532be8c46f189ed4495aba8d44032398b31ebba236611f2f7e84df7f1e12df87c24a59a5bac9776ce0c3b38cdf86ab6acccfb0c90585cafaae2697493313f191c00891d16d13a689902e7db52f96dd9ff40f1f266435caac5059671821af96597fc2675061587ef559c6083348575f6eac6fd3c75636f3b2dcdc7593973f20012a66cf01c8f26ff95cecb3549f8956f6fffae1f96fb865bb1584eddade0704dc9afdb34441cee887f88340013b9b8008f6d5013d78e0123bb83b0815e2335bad96129f3f68edbd1c86a1dd932ddecd688c59f16d0ed638008439eb1adef9dae087428090a05715d700e651b8e18368dfcd0cc4ebc37e0e33a48710dd97d0976e8da4573d8c8a061148a267eb3f6134436a851c2a873a32d44c21c33b8be14b26263e53157a4fb420b1d86c16fd1015b704383c41d6643ed09748b7be8baf573fa5d54ee679b7f9f6c3bc3d3ec37b868f3988d683b4132c5ec7cd7de8d8a4a2e25dffc69f02f96cd5d03223ca6c6941138932533960148a7c2270ea313dfdb87251bf9980dc582143219410d7bb4674691ff41f9463d3aabb8ef4a868968d1e95687009609822de09e603aa9d92aebb52aa3e863c23b5e5e4becc4146026ba84e93991316558e5ccc26378f262b64939e2279f8e27f2e3b271b7c542aac5bc0a7da6c7ff230738bfd877b92b547b2c24ac612f15c61e3294406b468e610e3f15ee1e475871ff87619037caf8a00015cf93ab1b7ca0f1ed6a2659a488942516c4c54ed823ccb2cde2332882e14be95d271b389c49abde45b03986704b642a0c0ff562b01bd40aff44bd4f0f31a56588eec765460dad4c9084c86a461eb04b6981571296359160cd6ed507256ea430cd97e74c2e67c67301a7d0b4191c7c4196d2de63ef9e39cdb2625d361781e0813fe9c2df6a3eb5b66bcc6a9fc807e562b3e94c281510afa29b18e7328f1385021d274977567522425a790ea80dcecc8bdddb88e8ea448b7ee22fb2b0a3a698ce017daa99dccd0fe123c96083ca83863cb8cb77628ab2fdeccc75f1a8ea1a650c90dc24ebad70dcea84c3924cc0d2e52017b4bf33ef0fa807c3a970b1830cbb96f74bbe5ad8c3782a8453bd5d8eb19d24e2dbf13e1e9b86f63cfd7d45ec834395734ec44bff8084bab5f622730d5f380daeabdd879876abecd74f9041b2ff19b681aba9c8b08275ad665560011de534f8a811905949e5fb0192f6532a4dcd17b1f1a942d39b5eabf2b126595f72b30b39e79d247e423c7aab9f391e28f4bbd33a5ec8ecb890a049fa9997cd2c4741e61bbefcc6c9809eaec12dedd12b26ac06370f87be0d945314d19c5fae8a0a591aaa73507d6ec44d22ae89b51fc5442dcadd891d1b2538ababe6a82625781688470338ac7cd363bbb45c3db1b0e4cd333317808f51199a88d430e0c93ea162af453c33eddfac419207e8dacd621b623a8d08f850f2a16abe7863cff28d70849cb147d7e374701dfbf945cdfc17e0fddc7bbad49c038caafe496dc0397f387b830a28bdcfedcdc4f831d2a6cd5f77e442f71937fe0baeaa343ccb57cdd131b3662f1f50866f9140543a153afcdfc3a2bc69052db2cc6f8a4b41601bc04e061b721188d1fa3f1d99754c479b0c5d99965d77d4a3411badeeaadb34c8ec2ecb7043b2e429c03e7fcfca58aeb5479c6eb619bc92c6a77e5847eb2966f379d96a8735aed61bac8a5a39ad554e570b91a394c109d403f152484cc32ad0e88c3255fc706a5cf12626b0f29e75b8425fbbdbe42e8bdbab3ce585532eb58026b692c4873526821642d606d2243da95888a08cca434c08e3f67430998600901f606056ea8627d082b40e0a6480a5d983d82aa4e5dc44708491363bd3fb9d60fab54353c9a80f4b8e74a736f8b76d97e9ad58f773f24f78919bda0a023431c351d091770554f6dac3429c578be6187c00d7d515f253dc394d45e48a41a14e6324e856b80a7682d15e13739fc26e57e18e4541d00ac3d0e0bb9ab3f7a3ffccda0d606f90a864f4f214e8ec2bc654785c158b43d43ce4afeeb79b13ebf2c2453b00749809e72fa2787367759dadbdbbdcc7d7cddc86ca87de27692aef5230b726c557fa20534029fb759e8361186cc6ca2c78902f0978af65b08a5ea87b39936ab36db72377ce67f427953ac4c5a8ad4566bda105f1be1774ead0a9e3382ae2279edb4208e20e3dc9be4426cc88a29340e37108f1998c30ccca36310df42b6a9a3fe205e2249c56d3f2b83ca40778239195e19bb60a9faa4ecc52358ddcbdede8878872dd60843b4501bbaf64fc6a1b0c478e505dd8eae7debdf1805caaa3cce117645ed9ef6ecd9900b11fbff6028835be25a39b53c4acc5d035c0b6a30306cdfa07a9efcadcb9600eae138e367bd51661382aa6bdc26ea4c2265530e93ab8697201d545e9d2e7eca7e008875431cab97492918929166e6a5c81692959afa220a6088c4bafc629681f4b95cb952fbbf4436cc7531cbc9bb22e1308132d3d62e65f005314324012e8b0b9d3248420e09d7f44e82a27672f20aa8e5034e2d2fdded1dedb77d7ebdebcc1cf980ceef509882f0783fd8403bb5c849b4b1db788cd93d79c4fbbdc3820699972349f85dd1649869117a6967cb320b4ba334e6c0ecb2f4b81eefd81ed12cbb893f3e575ced747aea999a5a9e70382aebdc4b285127d21842cf83867908fe737277d91968bd3c755176224f38173381cc54e5dea180d1e26432d8c1d704662a4398dc72e6214727bea01540231f4f785534871d2da971fad875aa88210b22c4df42446c0dc992c40f0367c251da215500479f7996318f8ed5464ad5b631bbdc566425ba70f71f7aa72b7a89e62d68d9fa0a2632b107ab8e7202e96a1e417d5ed60eee7b80f1c51baf5b4ba450942232c7fe18beaf5adf1f3661d2eae6c5bbe63df3c37a9a40ea57e7e2cd36d03ac6c97e710a8ec9552dad596d779ed49b4fb4852ae0bee82a354497d26a094364b2515624e483007069010429c20ce32748ef23404f7b2f92a139b8cb20c9503214694cf88239acf1352b98ec52a111e87b5e0cdad105afdcac0195f21aba59c900789086f95383b0ec85aa382bf023bd476f24e573c8d8c82055856d72d0a42129b3c799d3052b03a4bad98b56c1dfc2d872d11f3659799c8da6ac156bc3fd3e0e804f206e9cdc03d4810b97feed2e9070e2d4f038112abc0dcabe0ea0d9d9e89085138791afe44068782cbcf2282d0a33a2ebce6682aed85959626236fd72e310592b2230bbe1a5897b11b21c08eb85833ed598aed9e04dccc5ba8f7a891a8eaf565ae4d07fe503f7c813b4e27b0e9e5bdfc235dd81d80d72628ef50c0446513016835029b1dcf78f98bfbf23f50e438d40eb90161944cef1b3a2f8369329f95047850987a9c245cc3d38b4f4d4481b60902c56afc9770ff580c0783d972d346e59c7f95b9ea3bbf7ade64850b98ae572fce41222999f9430dcfdf4f4f2bc36046ee8bc0ab4fbec288fcaa5018d54d586df759e18e2ecdab9ce6782e33d395f2238872d0efe87216a76400ef59cf20aedb2d690655fbcd94f66dcef75099f0a7e9d330e3d41ebdf9f0d538b1fb50fb736ee35ca261c0d89f430b3f7548a42980c4231bd7bc2ff517f189ab3d07408e0afe1edcce90a74a79a019bbf7d0d99659731bb8a70878ffc55d86d90bb3436aad93b13c17850a42e8da99bbd33928997067bfae214673d54d98ca17ee03b652f37b00ccdef7c706c111f6ca0b5b4ab311b058335f2d90dde68c2e23d24f2036f4aaf54794a267e2c5ae4498ed33a9590f427eb299a48ea2155f2d7c69b91ceacf4a924a911cd29e0007d0c3e0eccfd7c439b1ed909b234817ec34f7d561ae375951b59581a611ff0cf68ec91a604a3ac1325858d9bde4504307214dd3e787ef5b2bc44244c733ca4bf547062de09f1dec868bfad9939f086a9ce405861cc6ef1508d3513a86d9882dab997883543ac7dabd215c20f8668c8b444c1cdde856d1e3795b11603be7196adddeea388b2d5c1e462424eb4697ff3141787c49faa797223f6c143d63dd7a1620b0b6b908966a55e4f06a82e37cd4d78c5d1ef29b43c42f4902c040749b95d602647397db1098b6c8514d3f30e7c45eddd4c99f0f0537629cb4e4b121204c5190d6124ed347ac0e3703d64be57578009607e26eb6a8680685f90acd6dd5806399da46e69dd2273be3e39be21119bac329ed22fc9b34e58ebc95ec9672933ab39beb80df85740f8ae712c81183a318463e5c4eead8ad1db87f10863e98a211843377640cca0d8a19ed72886504c9d58c2b1c5b171583ec198ba31046213c536e2fc4631846208c56e7d0f223d5df46de91ad3a3a087c6dfddb70d23d0ffbeda5dee1d5643263eb517f4e06f9b5e0cfc050cc49a4266e9bc509be2c46674d96578b7965700bdb482c723cf3d286f7e91a065dec6d1cb5285618ba55f07ec201ade32da6aee99e47c734bd5dabba7b354c4e8a2ed1495837bb9046f4c146208a397f67d93438cdeda4859a2b2b968a19a05a922c5fd5a540a2b66bd696f1c29ac2a1028681ff3951fdd4ba1acec145c55bd5f98265cf0c8ff1f8c309999d6f8e916df1213f653b1da8d3a9665b5f1a2219305e500c58c9e1621aef4722fe190d66c43dfb9cf405a67a9f046880c0ab45620249faaa61a3896d262a5285304c812e62ce7cd9357742dd96ca0514c62516012f7f9c592e58c28c4f62b6ce56f3688b8e4ca273cec2a330416f0efd8432d3eb5325abd3cc297ba29e14ba411385a92450b07af86fc88db655fa4e8595611b94fd4e070e79a9046e910d2e9a64710f436fe47ff6b7000a3808031950060a20036bd80343996298846be4eff84dd15c5e25eb200803803acb8dbe9aba603d1be54fd2d17f7d6bd8110383c0121692aac5059ff1fed51393cd3418ac28ae6bb7600ab71ad53a0be8c6e84243af4165a3afcf12d5131e1b2990a098ea0754320b0232104989239abd601a6ffc3bac6dd4824c5cca229e631d1ae6761dd25de5717a4e8ea9444b7ba21505607a25b754e469a10921a091212d9ff6210e9c7d7a7deb231e057bd66d91214f5dda97ad74dc01e9bd47b48d5459277f2026defe05c2d3da15daf1a74f76e25bd1be0f1c0a35be67763ed9282cb5771d1a6193b851478559346487f8362a180688b5d17b24ec3d7b856aecd6a430f7786305169f130d4af04569b3ebbce4938b67488f6e4d24a639129b43c321d05bf1d9c8a98276045f138079709dcc23614171ee03203b746ca73454ae88a545deb6a1457ba1c6d2561d2b8abb72b35e46f5bc5bc6b4d224bcc4480d8c1bcc3d3cdaf65ac7ae7c552719098a697bba3e9bd2668990b754c4f0e6ea3c00752de768a6b8db8e31b72b2acd3c84dc0c9559d99457b885e251c071d27b4e9d00a9d3567878e34041a9b59127789282207e655650123d58e4d899580b029ed6886da5a1d86ae76a3b5bd951e482a34ed043e3259e9ca34572a105da1d49a54d6374076d4cede9b7dcdfdca1090af706453596112be98e73489045689a74b4e5d3822fa34eb9c845f409f7a4c816dc6909d04bc3b0c95258523e1053c15777530a48abf1edc68f157c94290d8c19fa8ba0818fddd917f0045ea94063ddac47302250ccbc4164caf623b760833d7c1f65d45141fd50320542119c4cb0f47c8f3f75092f48adc3d4eacd6f8f5ae794db810b11c060b717c4c2bc485a2aa3ee659912412a48bcf5a55aceaa1d7177ac3d8e4dce2ce418e17c964e72025c42026e48be10e47b8c2c970b92c8b1a89c22634d2504c6c19066f2e7adff0f258d809600c86fe7b66650fc086bf91f9299edf432e8e9651bc4bd57ee7c1d8ed65e5941e3d3a4c56661e0112411963dae7cfcba28a6cbdb4dad488db4d566f62e82a0992293794d954104a821e9b98befca0e420083e9943aae07794e6444f040d8df6146e42f5877408e01bd2c06c44528d29f7803b76f33d5e143826224810c3a59019619d8e4a987f106af99dbe6314c61dd2c62877e3d1e9de4adeaaa4b7f921ef18711789138484e47b2d830290eb02362d78643663028e42fdcf544ef266c9ea645e7c6a39407f4c9b1215d9a30c188fbabfb2b6046b6a13f26861f1b69f221cb8a790a7ee2be6cbdba84cf73d08d1c8b58be39d7957f145ad87db8b20a5100bbe938239366bd3c333baabf55153fe1b26e30e2bd17b0544d65e266c7454b2c2a719656f9f0302af152210692f676343e71fc9695e2b1e9b6ca0bc00abf970c2dffd2923c005a30fbf1339b27383d8080b3942b8ecf4bb57fcaa468306e1ccf28d3442033b7682bd7a3cdc7a9845b27b18b458ea47e86ba5bf1786395dee18b75c832836349815ff249fc956e94766de967ed477046de403d91b92f8912337c98cbe41012deba5fd2c67630dfc8423268a4adc860d5c273d9d2f3ce6ae78080dc4394faa3a3fd49b1b574fcf95dc589063cd460a7e57b8945faf83871d6575c017fc5c876f42b75e85568ae271ff4a1d6ef2ba43fab018c4156b75d50c5351d9bf3897dca7329b84f7aa53d1f2134ddfd70c0694f9a6674ea5279d06e15522ef12b5fa6e48b526097f10c7444c10f054bbe17c6a110a1b466ce49415b6957b34e6c705cedccc4ec5e0904fc46062f67be88d979b6dda08615d16395879f6190436248dbfc5fed736a628fcfdc5b2f166b3638bafdf5019e64051b423da48c0a113717692fb3857950976cc86502d287f650f8bb0fba60df83a5d65130753a7f8e4004ac5afdef2a98136afdbeac96916faec8aa3b0769111f6c83a4ce9e831d821caf1e5980b3f1e34e46015f70012201cc42cd6ce89e8374cd74283ef07adc6ebcdcb458757a838a0a7ac43288e0a6dd23cdc145a3caf7ba4cd3ae833fe6461a2a465efa66d7c081b70f6f48fd1565e1bb7903d07409f7c78dbab59f96a09bbdc53cd6f6df4437c3954219f0dbd409d5e64ff3b128c03c3b68a4b8fa9452d544435bac231b6f51978c161e66c6b4cd9ec901cd4f31c95fd686466babb304f694551dc58d3a17f0e9908ab65deb507d9501d127d9c43e81a1b9cbed079bcd06575e3f720d0eb7d32a1b41591e3673e19e395e29f7de1a2e871d1108a797d2428cb40f137e2622ea16cdd5e283e48cb2e52d174d32f65fbea5fabc1b52f43945dee29310789e59d36ba4194caca65977a72e7d8517e4e2aa71d5119c78d38cce6efe11bd29399aad4bf912c5b0a6ba09fb4d4557e44c029be002898c5ca5255694b5af9f96598e5120a0b73797454bf3134c6da5fbce1506945bb435de8bec0a93db53020e0dc6a057f949e1668e02520289d4b3ed5262e6f25bd2ccc6c3d3355e08f96267ff22d11fb492626831b0dc805571cf826c778297693640ab5530cb1f06788af4e8bf95be705b98ab8fc43ff151549f8dba075fd808ca2c9105afce4e08dca11086451af22134bd748284357f184de2c58e70d50ffaa230d075531c254c76587f59cfd35f780c81452de6dde4954e3879a854b6cfcca296aad712654a61270e3b588d54c4e224c02036570c942e5c083d9cbda0d8326f67d3567259bfa1b3c71440dbe05625bd49bbb036b2d5414937b445f7c29e3a3b6b1f8141b015d6a736428b77ad898ae2cdc873113861b518057cd40560f7022fd76d24f3e610d881ab3be4b160f75fd8326dfedea11702a0cc9677dda844c9b63f5f67bf7814166da1c9db9bd4288bc65e2fe18ab3e8421d82118f0ccf9a3cc82690290c8a3179a94c84d18952a5697270440646d31fbe216c5308037b59b8148a9915bf965684973170429b0310f2f011ece2772a6ea7f98022d52323e59ad1f72e28453fc04521ebd13bd52a50e083ff39d685e59535126d375ef089f436de3619f3c4f7800da49f9588655ac47a4da87058745f4fe80ab14567cda1c22b3996f67980956a0ddb27e155ebc941ea0ac98d822c5e7662677d301d3978ce2b40855728ab23cde8fc5d59fc79aa3911dfd455db236748c1d16b1243a14bf162b303ac619f27819215843ccd8647976c12ff57dfee922c28e828e9975db833ac9084255510cc45c088503222e4df55878923323a5014a1c10ca6bc14a73b4b56137536aebac35ac75aa19ba2e5e37ab1f1fc3b06e0f0de988a3cbd0117e78557e83660aec544bff5201c505061225d8caa459d1b8d6a4b5a4dc9a7c0d23ea669ba5656f1cea31919ae8139fb0e584d296db804b030791813125712e94a17358810164e0d96a4cca6d369db8a5e553c3eeb1087b0c51c22050448ed208e67b591a14456e51c6507636d89a2560eafc5cf138cab807c93c0f3132fb0a12d25c1acd42027c2c3875344a3c0ce38a6d02ab1caeba29118916924b988eaecef87eb210a61ed3f3123622244b00359ae60c6f521a91ea1dfd03708e16b39e555a09cbb471e4651deff60f37e9e96dd2a0ab67df36541d82ae1ab39c8b30c6e9bfa5e89f8596a1c227215fc642c89f409a0acec05e7988361c170e89b1e70529e42470a13d8d78b42a8cb32db83e07ba8439e9062319bb13b6a78ddd427a485c5b3196062104f563f3ca818828fb1499165e1383bbf7c3b367319ee4befc90853f7e806433a3516e3adabe48bc5a6999a41dc1869a3c480d7b4d845a8cd3a9374e2200631b73231f10a3e65a15d5aa33c6d42fbaa2ecafc1c700a32567a8523feb2f4ee02f23620a0969b1e2331e62b43e59e401a91affc199150cc3470c75eec565ae0800f72a3baee4c3f692b14c5796f0422c3522d2c517bf92fc4c0484e4ad22dabf6b946d450210fd3d2c145174fd087e577ed435ce7382c5fbabcdf2eab8e29ac7ac2b435d347f41fb518ecce82ed109cb7ec6453c1fb90fcfe00e541a19dd3d36b1612e5161c4db01157407422a6f03756082bc8c38d87c1c1864076a42d6ef028515ac4212cadc484e14d9abe753e945f18ae9db64b4ebc5950fbf00b6ffe63b3efbf854ed8567be0c00b6c2483c60df8ac138ea9cc98b04c4ccdab66b50a6821227f4410677e58c0fa960cc7fe88c2c8d3ad72396902736504226cc0714ee54621eab632b6bf5716306b3cef924038c9e55f9bde12be63bb37fc0c67d9d884e34638f900199d80263fb8a044620df55f0c83ee7c0b5989900ce45b7931ecfbb8b0b78209120a1aff4c6ae8af0a8a1e5437c955da78e74a97053b4a2b309d8ab9eb367fb03e63250d6b5f5ec3c40f5658803ca0d0dc2392dec1c660941824c8a9b4d869d3891499560a2d6243080fd0190a41535199d0139cd1e5c196a709e4c5d794d45127699ac2dc5951c3af313654152b5edc798d415ac885918a66ef69799e2abfc86c6c446e64685ec8114d1aca5b0d99631fcd78d55977560ca480cfd0076a4ebc20228a1829e292aadb2b010c7a810dcb331fd0424547a9734396a7abf34c9b740f04b44a35f1d65235b3a6cdcb801376bcae724b306dd2ed47b6cc3eced671c5f40a11bb8d19c24e4ad592ab33740713ab69ce3da4938995b81443940db43104f109717aa7c816a93b24146232a512008c2238781587d2480e96f840f5df8d24d2e8e2aba2b34674c932566764a8ef69132d93e0f0e1c9328a984503380cf385e3f9b1d52f0afe8ef4b7acd50a54be9cbec95dca352ba01d072409a5322e1e121f703732e250ec1c928cd2aee94e0fc3d435b6780431e287e18010c9ae463ff2527da24384f8b0cd50a1ef91f5c507f15a3255cd739078067e56425fce6b3bf03ebc15467aefbd52e71e09ff90fe6785cc5d59f240e85a044ab408d1e818f3518ba6e2e0ff2c84a0e16731459eb7d155e7be02590efba8bc2644012a4088fcd03966b57fe57eb968f8e7a208a788d33e776de9b5226f3e2a1a3ce5d0dbc7f324b63209a3fdf7a9cb70c33ecacd1bf036d4b42dc71e84b39ec4bdb7c526e3fecd4e42148bfee8947328d181bb213f4bbae1495d3e465ba4eead97c114ad6b5648baad9cf8be9213bb701045db4b24548e9a27418cddf34cd5711ff873218bd2c1074a04c2b0a4b2fd03a17d0ebdbbf73901fc035d86507b78ece9b72346351b27427d3df29531292627d724cfdbb3208521f35725b07319633f6973f09645bbae8b68e4a6a1e0b4fbe271e75bde76ad058d27d488e4e19936c18e7f8e506246426cf6ef08213736ccb1d201dfa5b2f4bceda7b7e1508a8f90052ebff399ad9b923dee12306da6aca77945e372713470e8c40c4cf873020a54e6f39fa7a9000e0737b4c2a8a873c0423c37b890d2fb5cd8914115f0d703016e409e6f5f544cd6bd0e8c6ff9bcae1fa3fb5ea98e26512547bf574e1e6eb469afb6e791a1ff44e5754df31da557c180363796b6f81f33acb2363c770fa33a35519406b57e2c33024b98947d046b6030f3be12e72c4232078c5c55effea0df508a5a6a04fe58e0093dfff46ca1bfb1cfa8cd8e3ccee3b226c42d5b0e3e27c7fc4a465b354c061854f31e3defad7eee894426ec927b3ce565fa15d90240b937c461c6b8895ca648c493f6d8ed55b7c777fc120981647a2177bcd04dd0ff1ce427e545f497bf20006c08145fc6c96ef5ab6b6bc56d9d11c10cb9aa313212af82d79edc2792c2755461987a2e69c6fd3c1d433162d3adaeee6f3d12e374667505a55780370e558cd625d3405e0beecf100c8a9f57d2941338058f2fcf755d2efe41eeec68b1b3b624ebd9b3cd5fa523857ee46fa5373df87cc6d9d292ae8b295a9d8fe9242ef831b0d022fc350cf05b46ab8dde7d3d8aca5803839f22da26bee0d0925c14f83c44743933aca6d2a73b852ed672bca1e5a894154f8de42ccf771645f545360a5781ff4c7c7288a6ea4b13799639af8afdda0d768eeaa3183bc18bc3041900faa097376ef4205d20c71c4747d40ed3793fc29d290eb06d73dd8683fe21dfb1d902f7a89724649d23b78861bb8bdc427730e2542991cf813078b051a185768b8c879a95090584fad1c9101479618b2e8da024fc36401704b4a1870dc2c323018d225b216b80bfdec73b66c981d8bbe9b7ac77c8440104274a0428decd2a206a71e19efb96854d2688d3de6bd36a3fca41ee4cf69468fe4c6a544361ae0f63e449fec8e0fd567b919daebe85430e9be2dae4be787eda986417ef60f1d66243302df2c6dc0c118d3cf7667abee61852843ab2b85a5bd9007433226f4b856c63764a854882ca74e740ab8ffa364d62be831845bf194c61e149ec203b9ca1e0f796956206a92349fcba2a948246f80142e1dcf32c9913da750e6e3754fa0d54d2b1f9510154ef363276fa050725101f9490b1d6834aa316d165e818bc0a3e35afc807ab53784c59ed61508390a3c2146494c2ba4f981533011fe70d7e39965e141e1a1e994733f199ff5561aa004764e6691d94468fc6596d2da1a15f197e4398a881efe6ea9fa23764abaca0bd008429f2522e530f1a31f625d35a4def44e62bae569235ae9807dd0efced66d2ce72ce0c0e292cee6d7e4941a3aac6d64a59a57ff8f0d9775a93d68eb759341927201053dd445229016c0f1c5449879079b31598b73045f82428a14707aa4c4181b584b07df5e758f06852f9079b056cf5698b40305b90401e2fd658fffd3ce898bce35ea4bd4b9e0673fd7b914d1c76a4058c4a14132631249824f1c0bbb98db257a535e4c831a9ce5915e376b5135cb19f5f141114337223f955572fafed871ca4ebb0cc2430cb7dc0f735b516221fd307d16738637cac806a2c5c30c60932bb63db54b3fdc7a37edb9abf0d9d892c0d36f16e485e12567c83aa0725b8d272098935bf6dff3bbd8eecf6130713ac4300cf351fe2ff0d27c61c6b17ae362b6cc83d509b356b764ceba10049947aa05ccee8a6730b69dbb968e91af44350ead56b63f3d60daaa92c1772212f0adbf7d456a9759ea90af49e313e572ba34f9d24403f801a469510d9f7770bfefc75c100e4cec77c957ee23194bb8c1fb63253dcec90f89b1f01dfcb04bb050ed1bd79391aa02de8dbf5a9e82fefde4fcf827a9648f89cc3eaae7a02c9720d45a6a4144ca0e122adcc4a411e8c213f05b4e614e56cf8b10f0e79cfce4e00df884abf3851842fc62235a45a6388561405900bd91ce523dc244c49298886c1a7d34ba5060080f3b725c344ceb5fc0a4bdf61c5c03b4e4f309fbd6d8a6962b24e8174640c8e288e5d85294bd743c6175e6b966aa7162da743c5c19a0369d0dcbb4d44f9d610fa789d3a0cc80d785d1ac98c5c4d244b78ef04313a3015d8c4f9ac7843951d63fae39cf89801142e7fac128a43ab0500aab071cdc47adc253e92073d3f11112d4a11efd5289d6be8ed487c9dfb859242d7ff4d08555ef817d2f21fd667058eb2574510f794a3f753ce581f420d6e36306f2692148a48d1facf5b320fcac8aa00a42faa8eb3c3fa657faf9a83b0e94be7294c815a3fcad9aa5af33e16ec43cae6f7556aaba5d4776b13217d7eb24aba6d4d7a5816cd594f6ba6dd57891488642dd727f05b21be458436c1b62095f84fa1e7637e189c86bb83a444c521cbc4d91142ffb9d2f2384aa93a051d434ae36fe2a469e670cee8cad1420fac438ce542a3a9e31fb88e8ae2ff497660f205221408068dcf33df52d103160fe9e7093fede8eb686f7ab4f649543a85d43e681de453316deef984047df352b08ab3e5221f2c591c022874883e518f67b39018ee0f4ffe0e308b3eb7c6c85e55a2f6676c43ec995057b8e4feabf3e5c75cf10199394b9c671c1a474a70c63105b501fd0a31b12223e332d7984cd82588039176380bef583abcb5a3c3cb3ff43fc50adabbc552892b44c6226ec3784583cc6a6b2e3e151c8f382cfebfbb81cdfac6d2dada15c4bad4bac3069cc336ddfa51be2436d7935c2eb05526fda8759303aecbeeef0ccbab79f47a20b9fa7d04350855be72e46482f2dd98bda1077dc32464cc58bc7c45e4c1b38d67dfa40d46aa8f8d1de046e16f0016d2e244c23295965572ff88139f660d1b56ef640d47445441991dfbcf79262291e7a42f79b08a2f05461fd03ec048963667a0ff598435330c9e22151e5734413a26e8076c3b124f633fc74b6db0df9f0293a688e32fb2ecd23b09897b0336ee5f9c349a81154d11ce57e3c1fe4f6e2e47559e967a9b36a843af9b3aef54d6a56c0503500f8fabfd6481a874e19ce9ddb6f4bf193b04ba059af210ad023e2f882a4772bbbc740f8135d75664f899f04f17dbe7e1b53300aa1ba2bdcb68dd3957a9c562288c0ed8426c9ee557ea15d2f9224ffdb6acd44ad25b3a269fc528fd0476ba5730d07bf002268b5aa1c8de6cc4de1b1c379274860a9966ea11e6fba105adc31f01eb2d101db0af66bcac1c3e7960bdcfa32905e40a2444caf44d8f0067d861afe5b107dccc54a486c771e45de74804e18857ac47edcad8b0466fadb2344a38d5e709d4a5cc8397da8ddefcb9c364f3a8cdc160067a5381217bb3bc4dc293cd534c3f92dbbf83fc2794363a86692cc133eba6d8d8d27c4199bde4915c743df102cdd7164808e06c723b038b5e59b8c34284cccdb47c52c64d0d0d003cfa71991d09d8c70d75cedaa664bb2ac994d665a948da465e819d9213cfd322fc464e418ff7bd10f3daf072855e79437e11a165cc60937c56b012f9ef6e384d3a50625873d36bdda5fef0905309e07205d281aa6f487dc2529a93f12648ea0997d9d781ab7e18c76b331f3a8d2891627f39383869049c94f62bea207912c4af53575683e6fc363312725b766565f8ef0780d378768364226e1428c7f4d1694e0e89617bd455161fc871669391f792e22e40c369b098087e83d75da2e8d2b3ea43bd18b70b56101d58c31de84bb644d6874e0e6049cd0cd476566c6799fc2d5e7bff4f426945b4df284ecdaa0cc52d4213b0879adc1c9c209871b5ef604bd8c080cf557b210bab92df0fbad40b9a2e233f106e4037a7c72e737b8c2e14a30d87d835a38e56e186ec490066cb1b916d66180eae0398ed4be7a69aa0f518daf36df8ebe01f382f453456c3eba6d3907009a3b07e77dcf149fe71c806a1e646908ff14caffa9010508313444c027c2c507f57ad2ca4e45149e7433960e70957f7a64f72aac39a4cc483740b5ccf911fa5384ca4f6176a90354f9ce46e257311a6faa194505d4c90761f8ed1bd06acb7f497a0219ab6bb86c806bb99347bc4951c53969765504a2739c8df09fc2355e72b3690fb09a796684f61516b78419e93e40f974567e881194a85a7d979014f64cc459ed8126bbf39357786c136505e38b92f167fb4aaa34d0b615e2bfe83cf89a7d66f4a297adb70a39fa57b4f1269b597480f58c7323b4bcd37976df2846918b9df6592554b2e6b814de41d1374e26a40f80665534f2819cc506940ca9a310e43ab97f1f1db0426c58717235cf9238b1118d8213fc2e6a5f2671ee4bc98e76949e191676240bc5b2b63d2d300eb0a92073b9a2d97ac65b6819f17c09fb6b737c30eb0e6e3a469498fddddc1b6588caceed1d3994b9c3786b48bb91dd75c23ba7b59a5919b48599acc9818a980acf2fc1cd55990d6c7d801f1c13e36cf15359a12e92b3377052b1049cbbd8f18cfce5c94c56800ab806033fe769cac9942c20b22d08a93ab69e1345d92a2c80b2b8e111c5fb30e1feec6e70698a1d8ba6ab732d88b93198925d7af63bbc2999899a863a3938d8516817b37232df30dde743d60a45be8a6a12a060f7463ad30f3578d517e5271673fa7816350389fd439693b787ba0688486f127af540f2cec7564ce5aea7bb8ce8aff1df44c85d9a995485f81a04b9ef9980488e20e871312e034aa6d51de3620b1f31bd3c171c8304d06a67531e88a587aa8dfe8181035f6553f82e5189390955e5f63b99276abf69eaf2f29d5cd25465adf748dd573c65dc9fccbe215e3245bc7d987e5149fdb2296f271984f12491f48d7eb9611360afd73ccdf5df8a9e11a4387d99583d1ea2c610cc880ab6970d395467544cdd64fc6c85fd0f7b6ab28b65aa9412c01a7f23a4194ef8cea2952bc2235ad68f43b2fbaeaf31638e8b774da42ba16fe02d4a3337c9c4fdf4e98676cffcc963d092ebe8792469040f1df5904ea51e76e5d1a12dd0dbe0616414aa7c16d1e35e390c4c28100d1f24fb927cc6a627c157f2d1ac2a257afaea7fb8c3c55527348850ca631ad47d3a3fcf70a1412902add107e57b5f961cf871ed89206ec6843b3eedafbf1e50226077c8fe468f991ed6f23a03311cb52b54cd03888289f48746375671d5a649e12940bbced132ae744f858e1527b7b6356a4714f3a298e642891c2cdbee87ad13c2d46d1df5ff4943fce65fe08cc8a75bbbe5df2fd2970cdf80309a97024d04581f2622dd60310966ee31ccf59f37c8cc31ae40ce0e19869c77a3b58226c876332c0fe2109d4ee47308eeb6e36bc37493a4bf5e46144d6457b1285037c3bd1c02f944820bffa364fc6c1a03e86002a7c1ea7abcc7dc0de9003927fa629984705d609079150aefc7e5fd6ed3699f387f75a80411825a6a89c449d73292eb5de215bc21e3178d624db699c9223bb085831ccaac639401c19dfbe114d720fe2126eec7c990a113ade4c5523eb7f21e55cc8943a7716447e39449e395bb101effe5a2db3e47797f59f943d91a0634d20b4b6f1148a5a2409252113113c51021007c8e2c1bae3a8623681a6f964a5e6b8ee5d875dcbf6f5444ed0cc635eacd2a04aebcd369aa06a8fca37e1ca3ac36c220964139002c952d3e53130510d07bbdcaa5287d630340f5086d5c3c6dd876a5013a6b65f2583a076937514067004c055dcc86e2b98021d79efeb0ddcf2a0d1c6c28469c3d5fdb12a86ce5de09c8d6b279c8478c1612762258cac15eb7b13530d83f8cb21f09fd461335cead4eb477ccdd3162389b1181c91cf343df8f1f6c6274c1004ef8317407bfe56fd2958e62b332b1402391a6656cf35b8a62238e864c065f25a8ba55a985ad300def54c6a7205ac627aba697d1ba059048aef38865a6de006aee759aee1ee97afd3ad3fe855a8da4a2341339920e8cdc3568b3d07d88124fced21881b98deeeb0503f38fb87c7dc7613614b60a14641571c798d4b2cee3eac260d0e8848c7999b56679e53a1f32df7fcc814448979ca4da5235f65ab4387cbeeac0ff6e42d2621fe1a3618b418d54da9ee4470bdcbc7f50cf63aaf431430c125d1da0eec25c4a1b341a10054c09f6b4414984b499a5a3032818eddc83a4938e245a86b9f6319c9dccdad22f55a047fb066cdf9d330b71e88995cd94970705208ebf7f02584c818a9e3ab66e5fa61ea07a087b0561a40511598273f8db6a9ea3249ff26972b8c339d511b239ddda549f69ffe6b6405d737ba7e49f95f7c817c235ff1ebcd871b5ef84d602eac2ad652d9053c8bcae4efe046c52d1c9e13de1c68454d8d4f7d2b6bfe5972f56fe4d6cb65eae2212c6d99886071091e42944bff35c10b291ed47bf3799edca33a2ab90268550d078836364f8b80c003e177479644aed61e5d674355f40faa8fea05dd8185a67523676e53eeb9eee27b7f4c32df466db25bea3ef051b7de22215cce1d50bfec28a97c8b8a96dc44f8ebf1f3e01ae09a9f084ad489f9ad8c0d8d3ca364a08ff38141f444f65b6f42890086a49e154381895dc38a2f19ccae944e47dd85dc1cf3befd10eb86569c3e189c88af4935052323dc36b3f1c7f08edcc6e723adbf5bc74d33c612ab747fff81456498d4e817c17b384bbb811326c4d615bfac949f693e341afd87c95db6d4dc65081b35930ae1d7e88060233e547a99735a639b4d13ddd50d3a42b1cb3e723e3c0ca2caec8eeeceecf648b008e721cc72011dd6e312a708efd891e87dec71e4540db24ce5cc8d7815a749d3b15e37f7b43fa7968544b4202c81044009b13213452165f2cd83104d5bffab11a3d58ef1b7853c142a0b793ee7cb788c5a1458256e20372ea497488f56d68391bbb6ac70cb42ce2517b3f32d52027d49a28f09056fec6fa6659d342f1181b3bd94c036ad8af9c046b0fec41511dcd5f4287fc7b863688272596cd47d3524e1ce49353296ce6b4544ddc5b25391d28aca6f1d3f566f71fd226acfbe3990544df1be6ab500028f301843899dfef38d658746eb8006d895a487e4b65f969fcaf4987b3b747740b3487692d53243ecc401b94ef8b060e707cc9b15da17b3a42c2e471f4585a6e605c913e2abedffa1cc3639de0137284e6ebabc9764a1a7bbd8c2e48e9abb71877f195584fbc04d00c3d6de691e5e02262de61290eaee5a290a8ea3c00cd9ebeab478e5da5d82c4861ce1e144e069c055f961088c9a10a31ad775de30f6ef57ff8db6fb011d97faf16593ac42bfec6d67ef03b32c69a2156266a1e20da19fc9d1418797db7b39a509cf04e7d8c56686713aa5057343cb4dfeb32acd688a768433dfe00a8b9e3897cd686ba49dfddb862ca84b73fd6c26eee23e430c73694dda8308912594809560af3a082ffcbaf6b52824f4c595a95cf87d12b3d9a3614fb6071c884e196262cba657bad9eaec0962126cdb43bf277a590d2e2489900b63cf3974edfdbdc1cdb9635897b36228dabd495d27b93e2f9dac3d34d3e10b3ef0f80d305010402da2ceca8ecfd8117f6cd94dcc4756d5246895822c12c4b04e51b3c6762751288d663ccf31e842955e1e05f0da7213d6f308ae029e286412143d309100a5e06a2ea083b0384cc835ac509b04be5b1aa8f7836df236a7814b3944763d27c6a251049c82e5ffd5c93d30576fa9003e141187fb8a352ac8fb69d000f66762faad0bc2dc6db16805b9d359166b40a4a4f4baa4593165806edfe96f3aba7e0e20043e000349d6961f01499dfe6e39d0c06857d82e2e9609c6ed9a407a82a1d1c27c63edb32f78ddf9c4d4cf2c6e809afee12ca30bc3745876220077e4269e59f34a9cca72a13384ad5d08ff90a04743ead75e1d061d16ef1dd824d3f8f7edebeae3c251b2ca39ca03573ca710b2a63528ed40415dda98f5cdfb0af292e177c3ef99534958f0f777f6da2173a8572cdefd6e03340c5c8e4900f64d401ecbd0c01d010753b6c6dd02184a235bb0ba21fffc63537912ceaae5f3c047474132f20bcc8fc3d9c2f19e232ae54bc5f21928408272671b624395fc57456b2b93e47b724f2af24797819272c984e0274d06596221d6acd53d5e9bfd5c4a05b40dda2a5de6fe33b018dcc9e0aad7881aae5c494f524cdaa6d68e4512d628d4960222c0fdd487837a15936266fd679650358330dffe9b7b55cd0c5465a3f13983909d4a578ced5f34f8b90fd6703665c29b7517ee590c2c24f5a05b9447ec6f836100b3f67ea78bcf07336f35430042dbb6c7223997ab9860389e040700c35687af662b0f09373ede7537c26e89a072c967914ed859f7021993987c7aaa52de792a18e2812d75c40943b7a7a6ccad5f8948b465350020c3fec9ce5049fd560200aa500580f0c0e0c2f84d95ad3239a745009751fc7ec9c0cc8f0026c438d058e40ee2c933849289e1f3663d4ea930fb17d7e056ae02315f729bf4de855eb63dc79c84e37c6dd94764456141149c44cb3547c51c960487746a6f30c41b5b31200ef631915bbb68e8b0648dfb9eb0336db419e038fdc6bc25b805dee26f30bff1fa21f726950995742ab50e478a0aaa1ef7e76da3d1cff5be8c8038437221a32d4b587a858d48833a9b40a366083ea43370916f8cffa6247c1cd4115a952942487a2245b7e4c45a05f2cd07f3e9a027c5b00a6b1baf2dc223d139b877f997c016ccf014a21b5385a4018daa40375a44dd18862cada6c5d8d12c5adde8e64ae353f3184da8fdee79455b008ebbf8951aa046cff2efbc4f5669d2873405d83aafa3f432d90f1a76759dadb03775d8116f671351ecc945842e4de644bb2a59429a52465610374036c03586a94708e0738f519515d8e153c754e593d50c5cc1757d765f57bef59d18a6f4610b3207961aa2b94df6565592f5706c4c3821056cc7c71755d9feafa51b7203195dfe2cf6aff79cee42fb899be71c1bdd4e89ccd0dcf7893ae6c2351ef1b494956b67d9f3e39567b25cbf292e52577c3ea13cfac8da6fd934894fab55919e7709030978c82e6c4b65ad8f67c58b5afdad6dbba71606b8d1e5cb71feaa8be3ab957638c2bc4aa2cd6e8c1959f2b67db0fd5faf96c3d4ffa96186254eb2f9d16d4f91c46f556956afd14c3fa29a54aa5f5fa19aa2caceb0a5d807e7f8fb86af593826ab09ead677eebe7ccdec22c10a8c76cb14055f5a2ad662309745b9b6d12fa05723d7d110eebf7a78509b9ac0ffd856daf5a2fa26fd1b77e6e65594f5fc78aaeefe1d52bfbed0272bdf512e4a37aeb23a8c79591b220aafc8db44d2c6ca924e8ab9b97aeb77e93381cf35d090dfcf3e7e82d8c7a520ffe99b9acd6fc9585915c567b4de57802f4fb8db33240e65bbfdf372b13413edee98b5abdf50f4443f5568ff9d6759a2fa3ce9fcfc2e9d495bb31bf0b7a7dbf0c5bf92dac2b837c5cf5fa49b1ca8a29d579515d8e942fea9c51adf005dd5e25552b7841fb374ae45520bd825ba3e5b5360ed41146d5b9303a5bdb0f75b4cfadd01608ab303a1d00eab63632a4956d6db6769b8f81921bac8b1054a67f0b52b96c0f4159876eff3b823943595ab604ad91a7ef7aef32a3086018d9699d66f939bdb02f6ccf8953b7a8449cdd8f01f3f38e4118a3fb3c82cd24fbc2fe94f2cd59720fd235ec6abcdd27f3d449513ba78378f43bcb098ad92c852c506ca95a403cf843a027837aee09a326d6ac26e2a246c405a420170e878b35b186611c7361826e16cf2c59582c62614259e874ee8162166b569398dbf130581b7beec6fb0fa642255a01ed7fcd338561f63f18634ee45f201e91a7fa11ea9057b7592255a225b4be6c96422fd82c9e2a9fccd22cb93021ba71389cd50fa348d5c3648d34aa87c51a3d4608a9267d2c22dac49ad5f6146b9c4fa792e50ef2d7a1101d8d5a66cc2331c624abed2cad166bdc8d7d1727d0cde229d57dab6765b6585397e70b0b8be58495a979b1a76807f63fd191220823d35da12c6b85ad7cf17a6557fc5cfe4923d2487625bbf4a269eff22e2fa45016ea5cf5a873bbbb6e9d732e94856ea49615cc79cd1013cf091d010e218c112e6cb2557a7cf7a4d2b0a424e59474f9f948ca69f01863c718b321314629e376bcf276df7bf145814659e5bf9763615807ac877df0b537e441e80f427fefed2f840cdd4127af766cac3ee85eb10b2050b9918359976f07b31a91fafca1d0d16394517a8e85e177fedcb520fd77883f1159dddd801aa8ef3973a7ed530caaa1abf7b0d51d7bd6eec67accb47edd7e6562ceb5f02ed68811bef7de7befbdf7203fcf5eb84712295ef2119004747f1e79bf5f3de7dcabee76381295cebd75a2de0137231d4ccfca5044d0115477aea4bae3dc549f1f8cfae99e736c39798d83b91d336ae3ace62feb1b86a14850b7e3fdd63c7d6a9ed34e4f8f18aec4137ee4a6c76bb034f1599241ede11b9c272bb3f5ce133df02ed170eff0cce9f9eb01e56c48d74deba1f19775a3e1ae6e786514a67f0e163ba89f7f3f173443ff8ec915c718419f18c3924803fafd1cfbf049508c918a9410f7fc10a30cb3528b5fe3061779cc8c48d71af1bbc6186ac427d004e8904fbc86ceaa084150f277fb3b249432ca08dd31e76064dd57f1123656eb8f1e238cd0dd8e1d9267a49022f5bd101f5eb69893fea7f45d64c5379837ce39aa85a23a24d27c59e71ca45e4aa88366b57521a0af94150901e5a7d917ea1d4639e71cf5123a6ca355c26ce3a15212888c3fe58bb01913d32d44ba8e9efa39c262306df49b5667183910d53ebc1da1506f101e501e3210d0d0fbf04a27bab91e19bf2afc7e915722919cb3aeb75e5b19d20c8dc68f9ec2462312455134b08d48571a3ffae94675f434fe57c084381a3123124565201a44ff791d4bc2bacec06af8f83cf5b901f42a38e683bf0e86c9a1a3e7df9791c978191b4d5d6dc402bab99e222bd3f2fbcec11f25414719bbd54814ad14c5b657c490beb08daac1cf82cd0b744a32c487fff9fd5d6d65dcafb63d74a5322032abba3a16325186317253b79784677450d2f6c89b0582970a6569f9621cccfe6e31fcde7b06e4fd5797d5e8f1957f5f34194804255734a1f2ff4b075a5abe8508222425d111a51aa95b70e291e828c7ca14566eea46df89705c6c1066d4fd5f2eeaae115b448144931985912af281208713135270454e890b19ec602dea468bc4d030b608c20554d484cf1468cb8e0eaa545137fa39556c306a62225141cf082a27558ee4505942dde80f818a954a1b7abf683672a62c9143658bcad5e550d1024a81c07c3b335a987d2a23e0490256b2f0000a9e580245158a26298242a1aeb15002ad9b89923084128851e3c5079c500131b3919bd11574abb0a852574ad340497777c78005168afa7477ffa83f36949445cf88e4e2c4cba2e44180c2031d19a6f4e45c6145ce94253428a8441b16eabed4f981a9ee8f807044dd20d405c218350733f1cc61bdeca2306207b500d5e5a0c0c6c3a0ef9fb5cd684c256de826eb7bc18443d04dd601c4f774ac8381b09f83810e62a0f6bf08fd04ef70f8777fa8a8a385a164ec7ee89937dc9dc1837c30c807915749ab6dcf20ab733776b11a1ea02f0b651dd6f981fbb7fb1c40a594324a29a38c92a2627bcf7c10420879a18c104287d06770f5dd8d35022451ba1a7fbf7b0833e95ce688a0a47f61d8d1c5bd8ee5215d21bbd8a80cb1de205575f7c23cbdccd17d70f5773266cd33f237dbe037bd6218665feaaeac266c8e9b3b3f10ef7e66eee72548b8d9cec82825f77b7763e98211792610bbea8a81c0e80ebd63101428c928a54b8f2ebc189f9d1633509fe4da831b6aa0dbd9dd5877f77537f69903f53dfb5acfddd8ead3f739d856377cc2443a1d2913a0001b68ac9c78b088213d077cd54a826e3475c642826e4ee707cf2860c6e170fb9824714c798b79ee765039edbddf341d0ee6b5db78a8ebeeafea266cd5a4f4f292999999999999a5a49444fad7b4181a1aae017d921b67fdc5dd07c46bc7965bd8b56a864b6c76188293d4b9ad480f59f11536304ce261527ec484bc1542dfc7dde585d11d7ac72168980bd8798043e8c2a323e734af9c745a105ad59709f161bd620288582346876ddddddddddddd08e2d1efdcaef57a39a3eb5c1e0692728a8214f48aaa8848ead383a440179094a46c60a03e1b9a746802e835284a32333333335332b67330b462201ef314327a8c3042a7a1d1018a824a1ee3bd689a0d1c7470e15111a373aaa2c93cdf1e9377d934e320c20eb80ddac65fc64819e3420e4172740dcd698a9598ea621c09ba359366c255db34e7e0407a71d46544f331201e4e9cf433a8065a33ad025f0469c0fa7bfbd885e0524affe1fde046ee10e4d5bc2644de112c2fc963f28a80bee5a89b0bd586454724979db99eaf189eb1b21d18869f6370f087c1690740c0670d50f761702de4886119061c9b0c1f774903c30cf53defc009a8ef4924f736ece0192d6243d7fd9171932a594503a043f7e811ba07f2715548c357f886a0f0bddd7d0e775fa2266ead98e2caa95ed39d7ab0507fd42d883bc18771b66da054d77db7df4f7165a70aa0ba29b6c0a9cfbd6d82be8c3a51f71c83392fd112d112d112271203487f37a9afbe1c233c51e17b676b0413ccb76e2d977d5278cc3c78df63ee292559265b63c3a33d894a49a24fd23e46a369826b767667955825b060c1c179a557723aa226e846e3654476a9a77a7ff8f98d79aa33c0fc8d85501d11aa7b9111741ff4c12400b250f9fe55853df7aa0a65026ccc03b9ca9dfa43a90a958db3780a13f243a9cacc49cc76a2e5dfee39d82a9c6832b33b5c488eb7a8fbce0293bba090a0e305142a0956a7f305924a729ca48a1e1ce176dd8e1d6ce6f66ed7ede4eb6e1e85e8a885db753b275d39a0ef9db999fbc551476877ced1d83e627e6176ce5176ed64841445511425638c31c628a3845142caa9a65846296594d4524f822ce62896138aa264570129a79aa298a296a21e45554f4a45514ae8a28b2e409510dd2daf5cb932850fa45cba6e574de976dd0e56eedabddbbbdddfb5bbbbbb7f77bb77741516eeedde3c655c4abafba73ff250ee036ff7fe34533026fb8c47102999953f3bf7ccbe0f64c9484177772573865cc82b2050506555227a8544554b8b68e4dcf3e1101226a51f12c021871891a8655ffe6d685a4bcbe891a49046ee8edb7d8082082e7ac30d3788c670ccb362ee930cb3762671dc8d7d51084442ccaa79682a0a15056445b1fa87047098a24305ca61e79a144a1d8923a378337d3a499cae02fd43817c70edeca2a29676c611c2b94f51422166513b0be11c45d44283534c4bcb686d68da6824e34591e1ccccac423b67208a73671207491415b6858ae6b7dc5535e79cfd404f8659399338a22188b8eb39522acd203bf0d8f0e324011ca6e890c3ce943812e74351d64b32af199a229c3ed5a04fed83ee9302280db5c4f9c4a0e3093b2916664a9c18501a86592731312251cbbefcdbd0b49696d11bb990fad9b9c491124708da4e8ad5e4902945c6b4113d618059a3477ddd97cea57341b9a05c502e2817940bca05e5826232994c2693c96432994c2693c96432994c2693c96432994c2693c96432994c5040ea8848596f87a2282583b29c0809dd6844482811928f08c94784e42342f21121f988907c2e2a44483e17159f8b0a4c52371f2974aa256620032a4eb0a0b4ba1c2a2830019520aa1468d1a305162d4a4dd0ee6e6f8e81ad3d83f10178dd59ef5cc27432cad7dccdbb458ca4c11426950614f4fdbf8c511988266c029268a814ee598412b2190100002316000018100886c30171402c0a1461973e14800e65863872523695c8237114865118844108c2000cc3308831c6188090428a30ce06000b1e6ad3c152c456cbfb06f53a0f340760027c6795e9f1b79008d4d2a33f86830072a59292ddfb176bb028874a7c0fbf78a44d2a882f1488f356fdd68b06c38ad8dc336aa30b8939218825b27bc4176d91e7e3723826574741b76bed27485dd349cff550fba504b8cd6daa27600bdf6663e892c0cc5dfc5262ca5674d88371bd2ab9d017f2bd28de5bf73f3ac5bd58eee2d0f5c4db718a2b7c06a3d673e64b7d738fa3b1601e85760918cf6815709d1f508b8dec2947ee5b8d3a6897b2d91ebec6d1f0802a093059011b35814aba52465a090c72dc6bb122c544353f5ac056e7115ca2ba142bf727deb807d89202b4d232c75241f32173f52a3710a6782f656661a79458164600a6bd11d4f71910a3ef950956b6f904d888c3480adcc9a6d2b79d368b7c75c5a7614747f08a06dc1fc01276c5235f60ea44d0cae1bb41351839ce5b82d854ea8047f1c4260275e6e61df1653c4dfc4cbd9bed34b47c1612b6a5a7526547ec25531522a4de00cc4fcde5de2132b926e9b41fc7659cc9042e689418ae32ac8323625846a4170e63b18d5baf1845d967c78eb84ddffb993f3e610dd1916c82e35abdf781815efcfe0cf5391fa21d5defa0bd97e09c461d7fd78ca3c748e0df267966486ffa22056d9d135cdc21fdc3e4837e06fce52f8bf2b5d80e168b91a989002838306b58f8c3e156fa10e0784eed31a348dd1d11b251646412805e6a81a52770edd78e20f76ebc7372f0c2ac69c5c39d6053cdb1531ff70481312bc8e68b863c492cc7b7a2c03b26c43a07c9197f63b48db33937335d6c93df8d7d3e4ed5d8ddb486bb5aa34563c2f6205d4398771a79f6a997abca081844b4a307e43c62e8579d0d69e3518a8560e79aba6d83e787690ef012275cfb49ba5e38ec833d91be282d177cbaf872467f643ef223bca4a54f6723a31b2125d4809c79377e4483c7803a77e597b487146bd4b952ba81d92699dad499bade164151ff9a934d9d2d6bff819122233ce6be135679972c843bf8bb5b2acc938b958dc217a30b1449f6f9faa7c870fcc00431eaf301197d74d24dcac8347cbcee24e8d907a85b255a07d5d181779cfed6db59959653005b0beae5edd5aed9d92762865a5cdc992182ab020e5c05048030b1ed2dd4f8a02ad0714506cdbdca8a690fdbe60c851e2b3f8714c9238645cf92317506dabe543cb799edba22795c8fc10202d5a66aab097582ad01e9a3b4c07eaa997d8d2b0672a9f07d7c1ea1af93fc11845354ffa7a031af121407d281745065b9a634729b3d02134b95cf21c1ce91d0e0409d26a273e27e9fd88794fb39adda4c0885c68118c7f6149ab2e577465f93e9b2e23f362ee626d4c581803c53dce55365bbb6a815f9721d4d025282b279793d44f708de9624c4d22000260e54266130f4aac81755e9491ca8dd9ae185b32f256eaaba91a860172b26b579ca8553e6385724640dd057314c6b83e5855a6b32a8a9d983a0079558a26c9c438fc7a4ed26e733533e0c875de9f1505a5600da7d0e76607b50dfc9b7ff42c5251d1d22f78cc40e5a36484ce52bbf41561b85c168cfe85542f8a02d3983587b96602aa69a78285616ae2424639974c1ecab661ed44e9a960717765211fd05491f5cf141258af0af8f8930c050fbf309a8e991e0a34507d611df6ec857f477a20fa228662d19113b72986aa34335baf2b3d53050ee5d6f721926e9d31f44ca480e077b18798fb3dcc5b717d099b2cf5784072684bcc352609da3063f70d96f3dbd01b56767ff05c94ef3fa7c6246b03864d310273b8471e619ad04b4880f8d192cc7dfa21cd9eeb217297207350965bf1cf2408d04f3f7e4635d2fce580356d7dcb00cb8f50f8754ee9fa03b1259af567d84d4e6e2a9617d5181de2d11419412383d692d51636a514fcbddbea4d4e9e9b93012300e1e340d7e7bce0f24777d3c6614c4b62c64c6484bea7093441f955ed171292b37274479757b7b9437ef2467bbc68c8d6151c6af3fc09e8764248ca434a7409e956d76e443a33c57a94c4383dade8e4d33235363a01cc44283275d49bcdd07966b57f8f3f5c6ca6110e73cc3abec14d4332a52a2ec709a29e32ae64173960eb5e31027646eb2f3f082ebc13e79deb222adfae116cf364bf34a57e2ab384d53c3470876b633023c578290d9673b91755e8bb872a4b9cba210d784d218f616c2697b31e7fc5f0783724dcc1f51342e0629f3050a6c1d7d64da4eb5cfb60dc053060e0c3b0a4774018b30e807e95b66bb6d0f1666308fd325eac5cbb4189373fde4a8651a3af1a058897d31da930456d593fc88b5b30e4aa3126de2aefb27d727f6cd22a38cba469c617267cec363319a808d8a7da58abde289e89d6b797b4b89d9b0d88b2e5aed849b00ec5b6470552352f43f781c24bd901d0498223b0bc237e4c8ee589f9d055ea6217776601ec2a6b6d8a93fa762a2e2ab8a9c9d98d64f650e17fb2adb592de646b35668fe6ab09e11a4d9cfd6bd930b753a8aafa562c6ba9c6de9d425a806a578c8f03dc57ec9219d10a045ce2d776efbaf312f73ea18b6a5942daa3e3a49fa3fef7c72ee487e4d1e3ac557b8f2af7811256f9210329772fef1992b6884e916610d5c19ce515d5dd913125fbfcbfbfc0a7971e69b1c9db137dc4cb8e2bf6e00b5ebc2d4366fd0536d24b6903209068b7766ce43f90cc89d1648b0e13a73b58add9f011f95789903866930794d8066ffe9826f334411f9e2b46e90e7b2754c24d4e0375101fd4c2a71c1a1b5cc023b289faa458f8c42e19713fdc5444cf9de4ce1b6ecf821d1219742fb26c9d0f022be16844428460edf9db2d6f818715f3a3e6530dcaba848f909614af1a7a62a4c4cbd255c815414389370cc1fedb077a3f55722bbb2a0b1d287155090ce6facc981d0c155a04d2b3a569dc4ef2a2008a76e060a640741029e7651790b1e116fa5952daa3f38491540df4581a4fd9229707f35eb27725a016df4eed95fff89b963f49dca840297c5d5f6bd51a058fad606990528d015010956259b487684af5597c0304f3ee2ec3f91addb7e70c8ab53a7974b2ae25b350f0c0863756e92a5879e608e8e2425eb413934b049a2f6895badcc12bac39547424dcbacee13121d0794bdcf7f05f912ae90295cd128af0d211e6b14751b726ff62d524f82cff72fb6ba76338b3972ea395becff6bd2aac5e7078e9ebfe90187d29425c81e4b7d0e1db575cc3a5d9dcf5f9011ce725caae7b5fd96d9e2554e07459b0fad7a939608e1868eceef256ac825a7082d382a5125f9ca00b321612698fb088d1485b37a2ac00e2540b5cc9789286948c86f1820e021fc99cb11090e39c7f7e693161cfb6e8622e5c398087ae43c494fae76e296937c5a1a64575a784c45826a6326968c04eb106580a21fe6fca54a985f20dd6c8e719831e59c4dcdcdd40e0b210409ce1aa88bb24190dd75761790b3a288f6cfac3db21cdd48c92e572fc6ae17bf74518984cfbc6dafe8bd4152fe6ea6bf709abf28cc572d62fc02402ee51b5319fad635b5ef7d750f2118ebaa5c36c38498d232827c4041be2b563e42019d22edc7c0da849b88985a5e408934f727c408e13f5c0ac05747bbe0e120c9faec524c38e5cfc1ea6858c18718922c2b1327964227e898231f017bfb9047d87b9c958b1beb1f89e9ffc192100f6222e3bd929484def8b476779955c876bc2b0d2f81613e496bea2ae7c26caa9720387e8a112e09c989b8e96b755cd91da41f2c2f2790c41df12955a1660df8d62088dc1edb08523f3e88e629cbe87372a64b3dfb098d2d458caba31b5319693a1307ef649e5429e82d429e518b90a04b4478e636e8f931a5fab047c0a64b1014e99c069b6013a1d2353e0934ba5382d0222b0e778414740ec296c80423ea8c1e040de109eb5c044e57accd69dca0dc84ba184305de6f31d8fcc31e31fb3cfe8ac0626cf66021fea515e277ac3601bb9207011259c79b2b781094961bf100e20ec29eca451ac6f665736949ec202829e5364fee441d849d60324e8ed8b1ebce54b9b25a418a6045947db36e875b8b908ce383572ffc5bcc663c009e70e11f6146e2501f2798b78075c04b166583bb5fd4cff81eec78e1f9e244c6b760e785e7142730de38d0554d650d570f767fb3ec9bef1dae2c7267bc1e8cbe706ed12a63cf3b71d8fadcd58a3046bda75fbc992b3f287abde5c26d7efdf244b1957542a8f56705a3dfe4de7d7501d7fdb551f231f90869223fde7b97264b6f35d22bd5da977ef05320ca3bee59b31a430721267d595c8c19f9f4f2a4eb718fab9e50ae4f93704a3df9271558b572ff0b885c7f4896f508c8b8096af6f3f3463374d52fe857be6ba09ae32b33db6fd30c03368f2cdf05320d96c00b397c3c9676e98a0afbf40c6ba00a9b60aa2012b1ba5d9b8707322812c32b7879d740cbdba583078d25658e3fb72136649111bf9a8068dc8cc0bafddd6540d58897e1bb904d586de17e32b567411faf050fd201c7fc52462081e0ff8883f8bdcd0d1c7441d230a9bd8f892bccf3e873de10e4d300d456ee9a67878e80d55cc0013b09dc27f0986ca5fe81b4ce323681bb86ac06981431bd4b5138226e90be4e720716bd9cf0bc07c72d12020d7642b4571fedd7cb8d13de65744dcb31291c92e0b53c9a4e31eb7aa70afa61d3770645050fe45f074205346a95c416954753e7781ebd063feffbdbe8d813cfeb13c097763850c6abe634d6e71e6a342cb50e77dc54613c376402608cf036d26bc4e8dea2b0aeca06ede17fe8ac02611af3a09b694d58803228b83ea15b3e328aa5f9e779408555a4f890f0ea17487e069a26f31b55051e3750d869dfd70691005663d189c8053ef63a9e6a2d3d5e88873ab1c18bdb45afa142a9ee2e961752207dba9ab591024c36191f446ae3e61dc31a0e3274a76c71354b9c107a55a7e4836b5ca767d3a87ce69c3e33406f5c0d01cf239621dd668a359957c2636bb9b1238405699b3e759d2cf558e083eb7b1ec3d221f9ab7deee958c66f2693f211e2d58eb3d2c7ea5d5c93cc0fe2d5e3a4038c8507aa5c2a402e4cd6d2640ee200c1f58f1439e88784fd1b54120c974e3f250fe3d90996373afdbce406d79040afa82caf936d8bdecb44ff44bead8e5402c2013675bf2c412284ad2e79d7ee26d268a1727039aca16916a18a1d15a9593009e9aed14141b648a596286c46b7d71eb3979d2b00c99c2ddd0efeb434296b1d13c2bfb33c2763a5e0f266e73a61c2da4139cc2683534c1021642b45e448f1c7ca0d9c1f475102a640d7d447d0145e174c2928d678e9a1d9c0fb7d136b018ed12c4229c2176e3abd795b37c735fcd52324e80249da0c0cf04e21803babdc0aa7856c35c07b477f63de7376a004eac7bd7e6de4897bbcd0af46c7a031dffe3e1ad02b3a13b174bd600b576f91f3b7433dd865f6914364858e8f64a60fe45c81ca5720a4d6da5f5f866be280b17ced5fb2a08805785668b33beffafa3a4db2d0940f4ec69c44707e8bf76648e88857fcdd0893682b311ef0a36fa329138dff017a8cb4c5503eb835088aa653f030f51f9deb5388f0c1ddb3f46ade36c80afaa25dc301282ee37ea2f2633be0dcd38a53828570366ea37a17a3ad93e16e6fc9407f07a40cce7438bb1247fcab158b2347e291070d6f497f0b6dc6fcc4558165a7d01774a6f04e8badaf8397da5a8ec4bcd2ad3edb02d0dda08c4bf2608c5a92383afc58515b69503ba0f8d2e7e8f04cfdf2ea6eccced1855bda71b51117c711e7565dc4bfc024043e21fe9381c26513a66f12b51de281767941b856a4a59eb1c23a01a5b2da21180aee64615ed8562a9190b8e96d4cc2745284c4f446eafbe40e401cda55fb26997bb912ff528c4ff3c363e62c35bcb3a5f718ae6e27f211dd9c7188422470097073294b4c918f8fda5330ff8c5b132576dc11480c5cf818fa06a326a539ea632baa03ffe7f7cd88c8b165bd9e15830785fffbd349fc4eeeaf906ea4c7d8397e577d8c96f5d67524101fe724b419ece99b742ed4e7b07eb777dc55e4472101881f636d67c266229fddabd50c5e60da04eddd7446a7580fe411cb1979e2165efd0ab144c276b2e7492e8c12e9b75e5d2a1d0c6eb015146534a54af00e47eabb56a97e41555b65ba987bb812838bcef2a8e52d9facb5eeaeaf48e05ad333f80f19ed15392e2e03962281bf20f20d00d144873a663d4d14a6b675fa6ec7c3ed16a26d8664111f44c4477db245197748182f6c7b340399eb27f34034e67fff6db5aa1c7d1e2f3895d32d2fdcec58e9d02faa787f4a377ded1c893747478a7fa44425e59102b8cfaeb2eac306edb2d67409f35f07a3ff620e1192d66fabd80a688ea72d4ad8f5f4558667f28cb0551a66203d0ce731991b07466e0e06e346c15c10ca6336cf88ca2c36d27ac24abb7e7f84cde80728f0f3e645619cff635ea3ded2e1466a3a69e809748db27deb87fb180a5c51d4577e61b21715603d6f7fa85f8d73bbd58dafe7b27395c5ab26a8d700ccb707249664fee7d084612262b9d4e29f301096585247539d8d7860eb59fe9df2197d294c8501ad5419b6433610100a891511e73578b7252097998fe08c14f010c34f68c01115a0fd6bc7826fb9ae33b3f440bc09c43dca12f7f7c91c0b5850bba11b78c8408f2b92b928c7bea86171c56e5a6d2b4ef2bb30a07c94da98892a3ca5c86547d973236039711bc279d4a604ef41fec19c3e83ab905e27958e1445ded925b519b96ec42974bcda62414a9db9922b08114ed11039ce370269e6c75b6923a087e9fd8f37e51cc249dbbeb88c49b88541e739dc1b8ee93446a51a51e890f179eef3c06169e6452733e28f4b2724f4dc133f86d498fb3891be566e0016abe8e2530d2bf5e6a7d318ef5277a687895c6ce6890027cc9679ed7830cf02b4699d36cac1ff1f61dfe5b2a4f2618f36424d51d6956cfd350c89800bd2476cb16c4062ecc66c007882c90e90040ba201e99782c78438bae24813bd72b3e4e0440e49c29ba4ad01cd0112507236ab926a48102d05b4d1a4cead505dc84d7c4b01047b7c2dc305ec9db54fbce96da3c3820ec168d9cf65771460ccbf79943640e0bd9133dffedf575bda81a827b0ff3bc0bd4b28534b1e59762952537bedb891ebc7d85c5432ed385b3e6da970e71488d83cd899037c7209efd13da0bcc26d7a5718bbca341cb46628bc71d5e978667687c0fa59fa86d9040810ac7eb8755547dada3399aecce9462b1d73886f19cfb0cc0d23295ad22aba5a89f5d7f362051efc8e3f2b69eb3a595ac765c378e636ef0e8f4a004da1341400fbfc63b893c5d541e35fb287280d8722f46edb0a2912545709713f5b4ac270058ccac71232e127bc76595b09dbeee3bf764602034a8d3cebbf1dd3500116186417cbf2298b1b87b876712d782a076770fc2e7fd936360ef2830ccc25e385d36843349cff0cd73f97871486d8d72cba082d4c77890bb9535e9c60f9e5574f524336bfa51bf1ebd59321914d9750ac33949c4bf44eceb48ea52d215c4c69023ad090e29d532859afb176efbe8d8924d51be65fb9395e0dfe89ac8de5a8d31125906e3312e6ae3ac60feb58bd4e32dbb617c7398d47fceeaa7355b1ce87235597e49bcdce6daf906d777c3648ae357030da96f43fae3eeaa3004633115bb14d61754e213c78f200763c5129563731905be9dd2473df5be1f4907d5b50f3022e938b118f2e734b108f5310b2c8f253216ba9515eb47f5cf7dcc0eddd513897435429c013b9f01f996176b6368022db0e4de38548e77b89ff4bc5ad162cd2cac16c8cf42aa147b91b258d2a5d77e564bf4c95abd0b3f26409b1818974c87b86c444b68e49f1c0aed97cfbbcdd16903d38608072008c5e55f65066bfd6168b37802c086a711a62c4a1c3153b689bbcdaf07e5ba5bceabe41188333d7353fcba4132221eb8fff7ce41aa4b88056bb7dde5db10d26b222b06ba64c2ee1097373af5de8c7720f1af1418c6ca82fb8621beeb8f6f4e2251810850431670d12f62cf1a7dffbefd82db908d9e4d5c0bf59b1f429ad79811d20857b90a1047ad14d979c0407fe94ecfc469b14585b607b4dc1b469ac82ded0af100bb5670da6816f65d0f9f084ab8d717ea678b6e96ddaca608b9b44644e66eb771e0fb0268b31dc23ce9f146a605fc637f94befec9a14e0dfcd153db84d60e75c268b47017a9ecef45a16ccccd0b7c2381db27d08926f11cbf9c4140494c262db3a3627c17800537a21550136214af7ae987a3b9248dc8d45ac161a1bc109b73dcbb662a4333972159b549bbdcd54273e6f7e2717740be78d7cbb91c9487fcf8d654194c4b1358ed57a7373cccb1beaa035169f64a09ce6371c94f2be79ecd8ae1d07f9e6cd8d4ff81c3e3cc3872d06b532b3d648bb1970ec95c18f9236c5fffcfd85106f856d56d4e9d3906ce5d341cfbfcdcb2dd2cd8ee2c51d0af69a68c1058e3b03b2c35499a941994bbebb1110cfb07a4ad499b1f2ba63ff8b9173dbc71373b886430f1ac8a4f330726dc8defbc53c6c5e00d011ee1d8c763debf6e3b8a6b46f994cea1e03686543e4a61665dc17b2a3815cf993041bdd7e83d84502c7981998ee157ae3fe20bf344ae65821382ac1641b3b9004434874817b11f9057b327bad99a04bbaabd3b650b13fbdce48489e9bd9a98cf3ff9bfd32891200037a52ace7e8fcf22dd38a5a2f9557b928958cf04db50e03c0d6d440885235c7452946c6977f40d951501a6a32113521ec3114bcd462f787f082df05eb43ca812db34b76fb83989f164fa3212364b23e7a62ef36356df682d40a11ec2b22e75d1e3d0b4499d0d8c890142ebafc0005459d5940ff4290de4e126a873941d24544c849f47b98bfbde1719b6461bef4126f76d225d6f54fd8d26dd0e84c8fbf58a540d33b7cf5c912d74a7a711f6466b7fd17623b59bd0025ccf927cd48ec263ffe092ea5f0090429d98e3b07f4a9a003dd31180cf38429e268eb26e72808c73ec8883b07dc198738efff35e22083cf47d78be4a8a02c4083d89f1f670682c78ba4cbb87cca8fb05c6f17e1d4287c5817ad1ab21951e2404c67feb88b610335c38bcb3cc628bacbed9e02cc03d813b714278830886727cf6b4124d05e5fa5699931ef90b7662b5e61916db258153e8bfabb3a1a6ea16bc00ce4cdde2f6d21d08215d4817c00d2f90a76b40e3fa5d5b6985ce33bef84f7c1d8868d697bd8693da6988c45e2caeda3908123ee2e32422922dcca87b8807df20c403d7580c88992a595c6b1b6a6cbcda7794fd7e0607b57c007452b2111bcd02de65ace8a66f42a2200aa9ab1cfa80649aec647746d7fc30e41d715f692d4a92e73cc589e7330cec21293fe554f7a23ac1f4333e1936543a29452852f8e94db93131ba6eed8a048615de319a891a69b7730e804195264b6e9960829ca62bf4fa4f70fb989e29aac1d7523c6db2867cda869bd738f19b6289a754fb104008d9130cbc4b5c0cee599e2c3d737ec3433e700a17c60a590e90bf1e1fbf0335818567b985f32a32b2247799464aa2843ecca2898797730287119e45ebf88bbdecfbe444b9f985a62176481b6965be42423272f9b8a810d51c11ea9069f0c49dd67f0d3754586f309cf06cd0473c62106252c3a80a5dbb0ec641a3416dc0a7e1613930f82968fb06ccaa06cb246c4b4d8fbaba278291711423d59a49aacb310163e37467cd88de9ea4f77ccc41d329c31569f0100eeb0bf4b24a269ece6c1e6360d545d9dd968e8dd8fbaeec1b07cf22031e026c07c3fde4637ae79b2f84904e503f1a37b715f2ee72a75262aea108a207cd8fbb245b5af107236e3f349fa6388728cf79a5c2bac1db7ed0e007b1af9ecc3712a9d09f8de2c47352655169ca81c644b531d74a1b10e644d056eb939fc6bf8fef015ce3bbdb9c3dadb493734e7228579e99071d52c08a66778570eb8dfd127879332aca0f13f60e8d9b1cfdbd3446bcf138911bc2c8c9b2d99b046e19173009b15b9789011a581cd40d97e6bad18de104b079424005521c8e7720ab3770cd6ba0782162b9e138160086697653d5ea8e07c9268427a5f64274e8fb7d41b290947d523c741c540303ca625601303235491a06ddbf62dc3036d6bbda64e7400ed0348f5124f28a4044afb8c93e3736cdfa4240611a5c0e8857072ddfed0de95dc98b636df7e4817e8eda72a35e00c7b7f76ac8f13a3db79f4156bbd8eceae50150fb1b97a1bda54f9320590ca29968e83a609c9767c40961f2d46c5ce5fe53b4d27f55f544a7ebff37ab51a457aacbb258c26a70d71d19345d398112ca0a6e74259c0f0120de47538d7f11da0aa77c8c4b80cdb958541198c93cdb6ce37a0e94d912704e0dddc55c086e6c4ecbb625277f6adf9e884322899be688c3d20a257c3d9c6d803a33a99c09c3dcb667275c07adb34b0d2e4228e2fbaba6499acb4b13b1666f124003c20e1c11fd308d475405d068cba213000eb64b58ec89131788ea5e23cb6e4e8fa552f66ad549feb08ba07c03471231a482d751cb758b8052f8d1f27e6231ed0622a01ae0a5f2c86739490210c4141020c746b53abd37d99d22f0410240b8eb50b4635db152000e218b01e5b0e3f33da0c6fa80c2ae02ee20c7a8ad1ba4796f531e0872c761cec756cc098405f27b47810980a86bcaa2d48907ce6ae2dabddc65d1b8a95b55120b5e3eef73026c1f749497317ed55df61b9f1390959681b52817e4837e002d490436bbe59c3e2314390950104005593155d96d390fdba5f79c6cc91297e3d2889a026c961a3340208c691ce76b79170be9467ab0d3e1efa588499c1d767c300ba22a8f769c0f8a7b35ced877558bfeec86e61ea1ad42fe9b2e984fb3662de03747ed83c70c4baa1a01a07950f852699255dc16441098e5554db6f77d8a531304a40a3d56513cf0c7b8ceb96c7187f80e536c6f8e438963b39bfe4c43ba1dfd0d0aff795088d0bc37b62c5c9a205373ab1a16fae31dd1d864eb1a2a079acab1caf32ea240fe0326d279057aabb2a4412b37d86c7ea322eda1cf98563bc8f2859389f774590fd9c6357a9d89203f9810cc117551a942897eb9f516f30bcbc47206c00770e4de999e589b3a3f5985816f5067a6d9834c94a25db5c8e42ab6ebfd2cedc1d993cd1cc8479c8e46c94340ba54095f0823eea4d48c08a29b511117314fbaf5fd603180ed6e17e7ce4c5feeca6b13086202f47dc96be0dcf798e4adc925a856bd726ba130c2abb3e019dad99a60f4c196df8479d200fd694c5590c3efbf3ca330a6127e5aa80d819d412cb79208ece2c62fa11d8ade40b9ae83b8e35a8884e885d5298168dc1cd65b4476c12c2ac7b9f8e92c845c47511a2ca2b3baa9ac2f894bbc777790f8a320c8b697d1f63a8250d30ab600ef319aa710d221b70b57e50047a1da992e94fcace6037fa9c0692fdd45c58bfa4e67e6600ab12813c3e02cb355a64815edf82af84568854470868598b23061230555238e5231385b0dcb4c237445658ed82169ccd96592e42b2317e02cb40a5cf7c6887a3e72fa109aa57e64cebf27fc30f135383103ed05a87745fed569b3938a336b79ded521cce3348fcc3c03ff53b25dd8b4feae4c6f99b1dfbecb9241cda63d2816adc18f4ac691330ddc0e29eb08ccc5c3cdf68b1ff86932596d8d9fa10f083ad9bb4f513993653ea0a77aa831003f88355dd854fbbd2e5091cb04e3a8312f6194286e592e11b87c7202bc8743de03489232cb1e537a70a3e409199035a7a9adf39d45cf79de001d095b624f2b3c384edd495705b043f889b7cb664cf798c1728211110b5883ad56c4b9ffa2dcb3c11fea628b299c7f9362a93f0653fb060354db6b20f37ed068d0eeb1d019c811ceec8488af0e0ec738355e96b6939aea5601d76175e4eeab2574a5975b1a83bcbeadf0ca5ac5c3df406cdc66f059c76aceb2c77b081aea0c2c69e69c612a5f181184c8189a64c9056d4130665a27ff1712f7133c9b096e6e4b6dd70c156c531388f471e357e6adb7fde65b152747857a9689f14ad65dd9fd25dba9a27c821c0a1bd3bdfc30d1ee6e74f5468170ffbfc7c55cec2df822c196f4fecf00225effe6d4af35e887ac72237524a37f7ef163a3e0aca7b3216a77e7df5e6798c38f456debc08c1f00cdd242539ff4441f95aa714f4d68b083c8470a546362cac7611f240a391ddc6305f75e87335033024ea8daa200e031b42d438559622a3b70b73cb1dcec66735170883a567fe413c430ddaca988c05d3cd56661f5b19d057954a0f49eb6cb4b74634869a74d47c22fc0768729df23d80e7e4a801c762e3c41488a6bc10c028bfce5a992c6f4a7eaed6b2695653048b0c8a2e8deee9ebb8c7f1c5e764c500eaa9a9781eb0a64c7b620c91a937468a2f35618df8df6b23af4589e5822f9446372a0f2a944db1babca9fa938eca9848b85f1695ff925af04ff1ea5405af2cc7ec2f06fe821028dc393a0ac5c6dff562c11beec9d603614d0d91dd74766d383ad38cb9799dc173783da5c2439bbec895c328baffcc3d4315c83bb5451aa15f3c04e3d5988f74fbe158f17b8a16ab19d4af490571a74abdd6b94f2f6b124d05e25c52a862c3c545341726d4dfe7d1129f8d3e7026558d1efe688635ffa37b4403da3f073dc29f47212e630134ea38e8bd313e12306c6b957e261ca4d64d897405924ac08e74d11615f840d7fcf817c8f8bd5d5569197e876ce13c7c5ed725211261bea0158cffd7a06023745b0ede10b32e74ef393823b23142ea2a29f690bc03b05f3322f717e9b90fa1b590fb38376e0fddd7f97d1c3ae4b85e8ecfb4b09988fddc7f26d4feaab48de6073e9f4c5769a75a9a08666ee2712f6eb5c7ea8cc2035f55a9941c998046f3f8a270f48b6c3aa06358112eeab6630023577274ec021d35f2fbe0f68d42b723804d573d096ceb49bd03cc694da8d7179420f3405095f2a0c211836f0a849ea1d24bd84ed56a50c2c92e674c3d4352c31966f54601dd931974a59767748706c64e101ec9774a98b97096cb03c25502c2c817e3b0f309decef3215b3abaf44eba89907094cbf6a98498cb62c9ecbce9cf7f64abe07510eafd103020c6af7d6eb716dc7dcf2be5c476783d868c3fe7258e0f26c60fb419dc15adf3783adaa2b33052eb0665327a5736e1434c9ed62cbb9a50afc051f811131a6b272538533c17d14d30698a09a3e4165840a81c9b44d2af62077f5a71885c4f3f9e313255dcf387bd16a34d1a100f1b98b03680d82198d0e967cbf90cffe006a66344219d408eba31f59da1f32a4743070ccc865ec988c76101127bc06210f02c8eeae415f23db25dd1aadf81eb2f684a79adf84d1f10b4d71617fbce58af49533b16e14e890157fa26c9f28c76eb8e30632e7d355dbe81fc6b592f1b7c251a246b4b4fcc3dfc907620e2e8f77d895b06ddf6faf408d09cc509c015ee0865ad8f06cfab24c0fcf28a4eb2688148d01abc84ac1d1142283e25d331659d06731702c9a4fe4b3f57b4be48bb657a9a55d625ac9a21ae5a16b3b233a925c3f31cdac7c3a1f906038c7eee2ed427f200ebffd3658cfb5db042ecf0de4aed58f28de97d76c1d87b2b9530da56742026659c500c094cc2100071596534636b02bfa8814159fb5ef6e480cfaf089a229715142745740755b688edf122542ec6ffa9dce1725e87aaaf6f8b72a1d19c15323bb688c669d0328d67a33b00881d455a182122e167cff1364767efb5d66162d9a3d6f98b8ec0a145ab80e341dcc4cf5af2e89ee78a9d30d08f661f4d40693471e45918e6d18afc8052d03137040253be1fa6657e2c8c20b84ef178e325a2fd619071882e8af4f99f22543c8e3e136f4b4090c179574c25aad7843e698ff6505dc27bfa9856e427acd080becfd2b738003ac4068e32436948ab3104aad6ba6ed4112a1f17685c5e1617dce630cc8bfba4bb021960dd2f3c6c2369bea077a57f056458c07651145437f7cbd7bb5b835ce99dc8a0efc197d38fc797245b4416392b2fb71bc540b380f488814fa1d4012a534089cbe69cb6b77e9e98f6be3584570a620fc6c278c15e5e7ce51768360881530d35af4139641adce6cfa6b16a0c313ec601613fa4dd51d63b2aa63a29d79efeabd0bd8999e40497f823abe006652f79dd69337ef0c11f2e080518f5b8301044e8e4118e88f9506004ea50a4230bca65ce47812e98498d6ebc55ba8e43efec17a30f7515ba62df222710f72c84f3d6010bf1bb7fd5f58e713d86b35e8e68f83686550b75ece386cc47d7bf566bba532c3bf6751530580b7f662f6cc57756dece9be0cdef4d3a8568c2dcea52985e737bbde7e5e4cacbe157459d10bd9ab9d672e5d96072ff544e7cca2fc1aee0efb5ef53fa49d063f3af9784e965f3bf5b9b31709c8140a63990c4df6622b4ca64a79457507969561cd644bfc894ad0bcecaf2cbdf2f6e31d98345a28b6e134e881111c0ae465a92c02e2f75008ef22df4b774f23b0c7e17e86228f405c0b76ed656fd649324667f5e25b383e8535e5ff0574fc192cd267e9fe125a73859de9fb94fb706bacbad2f29dc9fa96b962efbc07b6a43b35a7fd8b0e59f244eec60953c44257d4d1397f947776e40e9f8e9b6cb835859c6d103db080c77c9c430bfc244b29dc033e1e2a6a09d050e09fd7dc0bbd0a467bf273e216d1b04b04e41a4c274f6d76fd1d6e960cd0380131f8c637761943bab896db2bbcac37a1d1e575b7eacc15bc14d8e7b5fa157e587460f4e20c95fd63c3be0bb4ec6d7838e6476b802c58ecabb0cc4f1d1789ac49f3de649c610b0f432efdabacc4ed2aba93a4da3623aaf28c99e2d103f83f2d5c65d1babe5503e9a28380229271626ef9b295c0c868b580451565ff51ba75c9b2939643d22333519a077f4255083c5174d7f1c3f82efb202e09f4b122bbcf71e35d4f170d375cde629d6e72480aac67527b5a8d87b3f1ce5736c00d7e1350813fc8412bad0b2a9a96a9e39282a25abfcc4c76983207f6e88b2184b8cd4683e97bf23fae5237bc384a5e62d1e8dcc7c2cdda42dd72dba44179429f408289de04f67cf566c922e54ffaf2bbb3782c9b40a2bb48483466b0afb97411e0e5ed22079454a86f056d7a009941a95c9d43785981bac1de86c9643a28a71260ab8553498bedb611d22c6f7d5a9c3b2b1af1811c3a83a14e99b616e05002dd748b4b3ab3f43ae90cea2c5b16cd8037d8e7efd19460f40758c6dfde88a756d63bc9017a68da9c0d2ed326bf75b298d76549b159a135e6227f39cb08e9a2ccd705f811a8525fd316f8a147152fe2772a3f3899ed642646c7abfba0f01f993fef6ac3e4020dfbe81a0be7d7be40b12c0c45e5ff3ed3bee4291bb66f8fdfc0548f0d8d1fa8e7fcfc293a86984ff98492c0a392dada056e88880a586bb5b8fa10d259ab4fa8e2127a6e96ed4a69c362544c15212f03cdc6db86187e4ec242f4ebfe95bf88cd0012d0a3f42fdab1de69432c40a529a5272905af3c96afc5914bb9a01490035620218e77a68bac0ee08d94b006d29837396872a0f4f5023eeba8a660df13e8a5d97f04bdb30fb16d9e4e7d1a6e6117819095b9b141b593bd8983d31c78e8d8146083f8337c7330bb481f86e511605090a048cadb7b4a0e90c4119253e640f36598322b606aa06145e034a7bee7e5b3052ba4a075a6849a309ef8d37911ada8af6325948295d4a6a0c6dd9cc242340648bab09552b3a58400fe7dfbd5b4a64d175b863106390ab5cb0f6d801ea4337a8c48d02e9f5f09fbd90fb068d180922237fefbdb794524a99640a7607b307c307d3e5925d0f5709622f2ed70bcd3c751944687bbac277902012be5927ba50c5e99d19845da8fe5c004710091f5927f6c79c23f64413889a9035ba0ce5100948e08275a13f273281a88967ce71bf10c87ea174ea9c0ff9d9fc8424f8f6d8d2b5c895c0e3997384eded3c5afe446f5fddf40e175a9e7a1c7d7292971b9e7af4bbde6137e38c33e218cec14e1b40d4c4b78b7370bb9e391f7da79727349e79c974a1d2058918247d61e5c31b3fe90b2537cf334f74592ac31863c601f9634927d9d4c09c4cd3b40ce3ee2cf6d269e9b7e26f3658afbdf7da4a7b8aa6dbe41d160b35df34c77cd3b66dd3325b691cc3c2019d39be22fb58528776cc7df8d999995d35257f7c3dfb32cc3b8b8f7df79b64201dbdf4cce58c51b5b2f1719879733e9aeba16961864d2a9d7126188d71428de925ed9dfa592c9db3592519a50bef92f42ea7e9a3c8e8669ec839f384d22a9fc40596ef4f88857ead06ac333344174aa62c328bd462cf96914bda12eb48e7a2e8426d49b3c255896ecaa5f959f974079db5a2597929955847bac65479606d5b8c3182dc3ce8a20fa53f1e084bce399b67641d1675e2d2b6e7d523493006d299e6689ecdb556611e7295f6d6927cfbcc9a7c7bed9cb09f7cbb6d24be8d7cb75257e9feae8bc9367da2b553d9dbb3023aebd2db1a6cedc3dc7ad7a717b27802617d873f7ef36683b1e98d3eed2c10bdb593d6cf28f3ca6a45e9f9cc35137dcb8f0522a208e40d4af939d6d37e7f0ac56fea3352689c6e8f34c609adeba76bad44859a71ceab4d58a7ba36ad75ce3a676302686ce1d4423a8d4198974e33a7d42d75bbf24d0b245efab65ab98dcceff5242d45cf543c276911c56b02f0b89ecd8542d818ccd922ef1040a409000e4eca6d709c5b26ede37ea2b51ee783730bd2d0d0d458afaed9388d57e3c5c761ad6b3ab5d61ac781e3c6cd0d4d8dd358eb98ddacb5d6db579bdbe07a363fb93680ad95c8d5aaeb6aadbee2e65183b556a6afbef2701ef9807704452fef5e7aa7230ad2a9970aa677c2f08e1fe9d4535f183fb4e129af5a7a27b4754bef00d95a5d53713f313b21739ae27c7035bef290a4cac3eb4892875bb7ab639eab5e83ebe9afd99ec643d6531aaf711baf3547bc8386579f49f08ecdab6b9b17747a1bafa1e1c5477128ac7c5bf9b6f9ca79340d8f9f3f9ba0f8d685ccdf3ce8f41b8d6f9eb79f3e2105885e74a7c7e6518d962e9c4540585aacd1828b76441f7b7296e1268d67bd391fd6575ee3f14b2e287e8d5b4f48fc9aed0b6df8e695c629e70354e3366af559d43b365f68e349efac3e201bbef2ea134aefd47cdcca37ce878d156b8bbca30768f31a2d6e0d0fbab08dcca31a5e81e29cd23bee1bf793f9758df311bf5583d469e48ccadcae411a1a4e7d0b407823d278ba857bba3da594fa507bf93747794231ac3e7c7519cff2e89a5a8df491de915e2b92cca95eeb173615ae36f9e91549f2541f3867ba0ac25594ae0ef1d36d45faa97d4754a4cc2321ba385bc90cef5fa6df952368371f3becc75ba7b752ba7db4abe88da131ce0fa2a37c0b2d8ff2936bbdb19432d487917efb4e1ecab3251d13e72177df4ff4c139eaf3e9d34fb31e3ab90596ef1e35e4bb2a1f9d3a8fdee9de42ca67ae6d0106db7830a077362b16b56d5eb91e1bea0bef95f372b9f33af5de4ace27e37cbaedf342ea9c967128748f3a7d21903fa97c82e298476928749ff3901bd0f60151713ddc4f74da930151dd6ee520eba70ea0f6ceb61a29bae940de396af30f373e7d9ce78ff2e26fdbb64d6ebb9b6f5ecdabdb5ccefbd3aed99c5c73edd47d9c17c6e722d703f5f530eb6cceacc3f909f3ce93f193c7bfd9fc709e79e6dcb67d34bb407c6a356831460ee32c67adc5ac732a7c3f1a8c2928d13df6951029fd84e20a422d6f852ce639bb428398b31ad48179c8f211e1d30182de60d0e9ad83946ed1512a6462200539aab9b576851fbd63a5ccb77da12afb7444a1e63c1d1e4b07dd6cb144d0d152a89f06f9704a23f609c51f0dde06a9cc922efba142057a07dbb80fc382ec7b21510a0d4615ea0af43ae659cfbc20f3b97f60a077ec2714bf7e3d660a325fbab07b99c8350102882ab014155db1020820aac0d2489fad644ee699671e9bd23aa39606330dfb7a4883998ecf62d34ee25abc72e79d77de46d260e698151de635469f3de433975e28d4034b5603fde2528399c72f2a3598795f894ad4336927364517eaf8cc1b49ef64e1aa9388f9ccbb49ef6416c967be9a7e6fd76559c638d907d448f64851d1152bae6bcc3632f9d91f7433deb879c452b71920baf0fed5a29638e3ec291314c7f4cefca216d762155dacb53a5383d7312c9df5e9e1653a8a58fe7a7c92d520bf08a5c1ebd9178b1abcde55c4a22b3179b129ae96dee1242624feb65f8f5c2218fa85dd6d2495ca8d3b3a4a0ea790fce839d098a7cb81981c4cf1da69f64ed8421d0ab1cf1efcb590fc803e1f27ccef631fa1f8debca213eaef911e245da85fba507f4ff985ed5bec1848292dd37b595ac93c27cff61cb0cffed843573b554b29a9ed06992ff5ee6eeaa4934ee903cd27e6ed01494d66ce9ecf67a33910f5761b1fd4dba9b5be7d3785eb9b43e0bad69f4dcff4761b1fd3db7da6f7e7aca365edb13d288e79671d79654e0b66864091310336d6a3ac51560cab326c46501cc332da29c39ead335774fdc2b3d3af6b3004b9257adf53e77676da9c09444dc8f662d6ae79e6f1620eb479a879731ce79c8d8fecb32fe88472c6e259286f392d6519e9d4b4b959cf9c76ce9f7941581f145f88507fe7329e4df78397f1fab5ce3c6e7a19196fbe6639b69cb6ca9cdc8c97917f92716d729c73ca9cb27c7bf14f5efba0aea639733e3c7a7225f0c8689665aeb9166eac23fd468e1da74c5fd14dd70bcfb9740df3247772291f73eee43232980bd597712d3ee69c1744c685ea9f9cb99f0b7c07e1c082e298680286b973bc28fb750dd6ef7bda591f68f2e4a37abd2ead5f6729f95a21f1ebf5fbf9d313ae94d24a29a5944143de77668cae9d9e6ca4f7b5b65d7a2cef5d01030d20ca719d475f0792577a10a1ed834810aa2f5daed08f81bff763ce213bbaadf123aad132a1b1446dabe9da742d727c51ddf4aaa4a0c521d97c873ec6f64834ad0d87e690b54136b607c98f41f30b85fa33ae077521dd0399ae173e6c0fb2625e18f3422e90d76d61bb10fb4177080c2f7c1021f5a30bb1cf02d173f50ed9ab508bf9e99f8d8f88f4d22352e809e99f9ca3bd56e71c0de0383465b7330b41b206c9972efd0b1aba4268e007dacc96ae6592b844f1e1fc8e317a0666b674d1c3e7bcbc9099ef477a2195dbe47342eac6f4423619de1124ba3e88848f284c1783d1a64b0f89bc2773a94566c9eeace3e37aecd757370db247ae07f3d8832faa6b3024f2306f7a42e2875148cca6943241f26d7ae4638e7dce3aecf1af17744fb88e7dbce266a276875e9bb2c306c8a0a1764cbe7c39334627bda55b4fe76b18a9c72f287e25c013d968af68ed335e3a20eb217c68bf78a4b738b201de1184f546ec44cc854767fee837a4884e8bba91542bfa54fdf49a1b62ba10c8b3b6f83184ce74e9a60fb1773287a8c54d4d58f0030b8e985cae1675cd234a20040c4130d11a5244a715dd48aa35a448b7aa1b59402b3af58c2ca035f443e6c81cea4351787c435152a01ebf219739d3e9c7320789c7904106465fd8c0081d5cb95146c72d221da260c2891327965220468b5bec212b0577b95af148ef8480640aa131ef085932f33aa787b26af1f30b9263c684179b20602de17520444978f9fa5d0fe5170efd94de9ce286bf9f11ad1ebaf061f4b03a10a2267f41a080214820e029907cf570043fef0702d6f2f5fb01e50505c00206930b95bf794ee2e2c31b0db1bb40d4a4658d5c34384822061eb85c2d3672ddb061882445418456602d6fe42a001630700951c010a4165c3c0592167b3882af9ce485152f14df0806d6d2b29f8bb5b4f81b627701044e80a8c10b625c435cae167fa1f4e62450002c9c182301940e7040c419318c19d3e212542f3f5a913439a717eda5d4a55fafa3b4ced8dcd40b15fcaa415a29523369ec523ae6b2faadd5a594b206efa09dc4a41eddc6662a61ebbcac23db8bc63e29ef88223448bd307a960cefcc962e73cda9dff40e751dbcc359e7769d7373569d739dfaaac6532f8c7c0d0d934f2ecaa53f27f100ccdf3478e3751b6b93e4c511cf495e14f1ab06afd7495987751869051acf4cd151e79605d078260a6f678f5c8f479f335e74ecd5bd76aed5bb7a94dc09957af4f6fa85318c99e601596776ebcc27602d0c81e105d707c99c05a20f0a45f00333c63c0bac0425090daf390b44af7d8c7d3ed9d75a29a5734e29657747d6b994eb896f29d7c3665f183feb09b3cce6c7da16de025d0f1afa50fe751eed61e5d1ed2789da9e93bc28fac94e7b302f6589407d1586a75b7484a7d4b7de892f68cc91396e40e3abf2a3c864bab55d3dd471758c605d051e6079eb15689ed9b2bcc455de82d171d33becd92d118cb7ab2facba8c6365121acfe8c0a5ec22cb4bc9f303b2cb16a66f1f1ad7f0a1db8ebebd53ad78477c125a72ec6409282de5eaa2c7e73e003bcb308d163bd4a44b4fc9b7e7681ed9ea10fc2d76627010209a82c50d53c2d0a10b2d35b498bbd275d216a5efeeae776418f1db9e93b6207d3ca2f1cc0ebabe9b00349eb141d71e3d287e87b1e4b339f5f65888d847592788c7f46c9e65af7d2158bdd08abadcbcb03a75ccdb37c75cd328e651274aec673ae69be6d1d324f7733dc6fe304cc8158a44357617479e3ef1f28c26ef4fcd10f31e149f3ab34ec84963aa7cfbf46c7ee81340d1432134a44f277a2134ace0f8a64f7cff3450fb8cd225a59f90f6675479a17e295dfa4bcf5f487b2f1a374f0a4fa0f8d0e70c211f3e14727180e9432124aea00f8576a0f4d1c31098e0250513d3472f4e3e88c78c39e375c400c6c71e334b5da3e039a969e9bbe839498c290f3e2785b1e5b999a54eaee039a90c261f919e93c2dce007f09c144686bf2ed710568ac2827d21fd1c08123f62d1c910daf5fd7de47a044d97abcb7318cf605ea35be57a38cb67798d69adb5ceae55c65aeb0565a2bff458ef4224ea9651c830d19e93ba4002c60b64f8610b2b46a0404a8b398deb21247fb68fd9e0e58b9a0d0ac9d7ac6631cc76aaedcbcfcd33b742f231d762739432b6f32e778e74f0e6f90bab4b26819b2f8a6389dae4fcc2f84171f50ef20ef9383c48a762e64a175e9ad485916fa6939ba1a28b8ed342349e91415237b946e3992a3330e82fc27cb165061a6f44b2861b9cf1427e91d20597f7a2f443052f5364972e927e79723715303064b66697308a4af8a1020656267c09f3d345681edaf2f2216301e3adcc2e93b27eba8fd1f5234bcf2d218bc53c4448badc708222aa28d1458b567b34c23cdb172e20038c1e7cf0440ce621f261075e3871c4888933a4609e0d3811c28a179223a868221635921a363f447aa51c226a596b3febedc9af6d74fb51dec13b2479de12534cba7de84266923cdcd4a54563a3ca5add3a87ba54d2cdd5948e2e806ed76337161ae384bc319539d486c524468373a68b8043e727b8518d521c218ea720751054029ffea03cbf90860fff10e867cbf4a7629de8ddc660f41b41554ff7dd3f690a3f1aa4eca51ed1b8b5283828f1c261895f35e801160f2cd66a87d58a06896e1a79e6c2054530e172658c2996b4d899c6f4e2de6ce288512acca904f3b494cea1545c702b8ee6399d3c174eaea596e8c23e9a51ba8f1aeb6eacfb0804afde478da597e6d13c9a52e61111e6d19b47534a12ccd3f512ed44cb00fba6942eea269589058ce2a9df2a4f7d7ed8d1f5a106a9b7a082e499453227f611e6dad19604efe83eea234a1df3b0979e660101eb9ed2474f7459f5a24f128f8000c22c6a81c370180ec361384c9c31c6183d471fc5e8de3cd5c0a9716b44afe19f27f97a38d14fd1678cd1371c3abe77d290b21d1d016089ca0daebbbb070429d811081784d39c20d0584da42af1624f1aa4452ee834bfe10070e94701e0c171eab37700e0d4e79c373c9c730660ce3955a939e754a5e6bdf1b08f68f89c930693728be43939751bd3e30d008e2a358b6866d12ceaa33e6a293d459502e1646f9cdf5784038757ae8f523d74d1ddc33eb2f1b08ffaa8b1f452efb853ef2c353335a89a1a9f1ea786681f7df4c8bf166e78d84700f090c3f41253faa8a5f494c7e1f103c0eb6e3ca393db78dc601f59cf86176e1ff6d15110fb212f09c5a7f199d02075956793faf8b5195477faa617950b9128a3200daf1baca49c4821bd8e84995c5e47b6bc6a10f3aa614b6a895709965e25509a30bc68008382c6adc52d328b94e262520ac924952493bc9209934c9e1223cb96540f5ddc22e78dd14b7be412b7c42d914bf4325dd58a967ac16495f1aa61e931f753631836b1c6fc48435ac5d884c66d834e355d7a0a8b2e3cfdf4d07fb6c78ebc8365a9b59dcad285fed67639c0b794525a5966441dd0a0a937f9065da75a492965cc62e2a00bbb9f9d6a524a61106b8fd415ab9bd0c1afd5b7dee9ac8dd1c67ac5adb50259b79f8d0feb4d5975efbd7eefbdf7621876bb8949a9a7aae842771cffd8b5f28086293f80e7170d47b610f3399e5f33283dfbd2950ec7e41a48c00a0b50ee9862eac2ee29a51b09b4aed3a20b4fdfddc72c40d07cf83995832e3a1b60bb0d4a2d13d01887b914966e426006a4c7797e19597aed54edb4f1413d3af5f8b5cb9ada810c6480d2c523524ee6a7c47427eb73d2f8c9fd8c4fa7ac4af9fc72e4007b07483a582368d6d03c8c5e8d1a343e3fc74999d13dca83e27f3154f97d41d3c31afee30b9a2ebdde1a5fe347e7abaffb1adffdccd63b33422d3820be1c5ae1e31752a71f10d603054d0fa30b916fb48d800b9a1ed2f8c23b31c7388e732299639fd71a5f10cd67b4f9fc6878fc2acf88f314e7d20b7f7cfd70b4cf888dd6f6cdb039110cc38810d91873229b6b4e24fb3a99c3ce3911edcb7c05c9c37d2c19675c47836ce9164f1eb2bea37b377cd0596735c84eadebb8414667fd14016eddfb09754e3bcaebbc20f44fdf0a355374e19d3daf7c1951922f2356364fcbbc49e9acd64eaf934ea75a7e3a4f4a27bb6089aa4c55994d78474f23349bf6fee136fb8a3eeae82fc5c429929a990d8922c3f9766ad7091e5fc6db6e6456bcb97456d2329e51e75c87f4d2d3fc657c4eee04996fbbd46594a452962d128ceb8892274754ac6061e2d22f7b4814ee723fdf6f3e9b5f46a63ce7db8facd2a0ea3b752ce84289d48ff9e47a04f161eb3eb15f66fb69e79cb91f1258e91dae7fe827ab34185f46a07c7be6dadca2cf965638ed0b8ad20ae5c89152994b82bf5f5094581af4a1a91fba502221f54e95deb1d23b4c91707d6130533a74d4a564b0d6d9e08eadf613eaaf42fa67af00098b8564b5ea8e148b115a518cacf7b09536451263dc0095ce1c731c01ab5bb9e38039b010fb1ca7c1ee066c49075f1ec3300c73c66e0ddc1b04efcdb01a300cc3bcabf298afa678ec0b81b01c741ceef92543101f3a4b0ca78e4c3a679122224aa46cb8f7da5be4defbe4af77477f5f455ef0f70b6d6a86d4912bbd4ef5928186cf9e5f32b83eecdc08160d2c165796d181acdefaada1efb3e4b95648fcf87d20587dfd80e63665903265e47ea59fcdcffccfe6a7975e44a0f8f0c713a08075fa4544097d7e1131410f3a4e3a03899fcf2f22367cfbc693f20e7e1191e1570d8a5971c1e5db6fba0363347db8f5a0cd50d16df439e90c2a32674e0fe143a24a3d9c5fe8c26bf1f53372b64643ec2e1025e1a5453f174f812484d722731408e1db0a2a7268dc3c321e5e2e63ae93e8338ff3eb11bda6699acdf553b8bd0c6b56d7eaf4aa694471c3304cd3e46bfe329a5f209b9f694ff6c79eec750dc3b2afe73ae698162c3f1da38e6d7ebdf858967d40d8c6a1307dfb306cfbc2a1dfbc7ae1945d84d900b13544c68b301ba07a6cf1909b1734f453ba8cc72ded7a3fd807c479a8b99cf50b39d73e1bcdad5377eeb3d1be9febd5af572f730b74affdb9f6fa988e7d6175cd351bccd906fb7aa83f1855b4de8032d7aa6fbe79f5f8b7e67a34d73ccd79c8c8a331b91501c61129050d64083fadac5156761e5dd99bba741bebfc525abfd50b360973ae34a0e8aa4b8fb68677d62a420ed75446dcf0e6d9466be3cab7eac3af837562ad4a7095af000ef3cde76810e7994550c58f7a0e967711c808cf3e5792abc81268a1ab56f45e672fbaa65a55e7fa711009daec0944c78d140b5b6b259dec92554e7446a89ce8a2472e342dbc1c399cf44645e9a4743aeba8a2d05a69ad5475441727956e29a56429a5e4962e4fa0dd59a382d285ac766128b6a80f45991e9d1915fd3e8fc6b90165e4e156c4811155de9f5f451891f23222865714d7eb08307ce3b7e1187520523bc89779bacee1197f4ee96d599abc8ed0f23a02899711625e4660791d71c4bbdb27addd7d738830024e5fbe5fcf7bef8d7c335d30c3bdf7429142e7aa534121a3c91226a922401c9068ea420547f8c03483300a03a5862428265372707224060a6070e2c904c2280aa32c92a07490468c88306241927be2611619b98c6e48b2e405e50a14268a9833aa9ccc39a7e482c5ea5625583204181b8e9e48e2031430349ab2f81acfaf27494ea60f54523f60e202197ce9820552e60f7cdd71c01c20e6e13898a3c4510d465cc03446d1fcaab0184378a1a28a2523a61ba60f31e0a6f2b112913774f9f2848821b43c19e3af6a09add43a55319973de996436b9c20696882a2f22a05025512da1f17aa23d89e167be7cd8f913960e2cd60e93c98fa0090c5f927eb0010c0b54bfe4196906527a0073c58b932a5aec4c2307550eb3e6098cc609b8c3300c0b424910506e1784917baf4c0c6590818a810b20c838c5000b23cba2c510b398a2061f3704a30208268098c1bdf75e1b6c70d9228b286890a4071b7a00e20803c288060577062a1b8a907ea84275a4338267d084e4c40d5e70a484134a8abe283203c3300ca3474ea002c51048621c3143063c146529d2412d821529155da19281c6f34b88256384b0c1bb4eb5bab9f6de21d1de7b5f42c0f0f75e55914e6583cac6f32b081efcf6fc0a228b0f3b6fb2521959ad58aa1958ac1d1e051ad000059227a0808196163bab706019428327905051658c0e2c161122447866eb56ff8ad42a850a8620562b29552e1c9c186bb052c5b05ab122a61ad275cfaf1f9878c7bed70f53884cd50b734ccdf3eb07275f9f5f3f28b12ec42babfe84d888db988fdddd3fbe732d723d30acbbdbbd970f605e3e209982c5911793a5d79229a92f2dc42348346e8dfd5afb854058777a767a964aa7b355b00496d4184d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4da931524daf265a5261bc9640498191222305460a4c2a0c97a452f44dee52bc5d7c8e8dd65d626e459ff706cc333ba7bd372d6e96067b498c2e8c4c4bdf41e6b773aa874ec615c5ab07a497121568a7d412a925524ba4bca4bc748acb93170f499e5f3b4079eda043aa4a8a4baa072f265b669720b524b5842887266ec0050a5e567c21c4bca185baaeb3b606897f9dcb8779e67a0455cc63a4214ccf9c35a1b33ea79c73decc7bbb6ed632a4941868d087ff5e5ae566b55a3186e2219dfabdb4a9ad3de96ca50ef503c3e2cf19b4d2aa4395d64ad408dd5dad68a573529e2c5740bbbb99b15bb1696bb593ca6fd2d9524ed952baaeb34e512aac6a6aedac656614c6485aa99c93ceba444a796fbdaa132a85063becf6cecc386cbb71521a3ba5225a69cf3c6231ccf6c0543228131aece6bc97bb5c6d3da3844631a0c12e9c7f6fb575525ae984c16446add01d979873ce792f4a030dfa703ba5d5da7ae3663dfa9c35ced9f40b2786d16aeba4b4cea4465520c3b42ccbb0ad41332616294575a041cddbdbe7adb5c6f73ae954723eaa67dfbc5da582b69414a5c2a4d3b5cbf598b5b677d6da681dc3acb591cae8734e9e74f67063b17e91527a86021bec1a9c7332563d9e714e1aa5bc9366c90109cea1c98a09e93463440169b06b90483af550a8b919b7f95d798f9e5f49c2fcf32bc92b49d1f34b0723bf7a7e25617aadb79694ce3985e49413c592fb9b52b49ef5669b4cc71c917841a2458cb1250d923927ad3588b0d65e8c86892ccb326dcbaae0384ee654b3e8baae43cdcc68914aa5522a1a2f1334d1d0d0d0d458cd186a361b366cd8a8b141c97063bbe17adcdcdc703ef1061714c77cf4d899e397095c1f1f7b7ee1a004c716bd170e40d000226987213a28799d9410816118d6052113a58b112b66e8f2820d6800a364c8bdd7060d4444dc108549982e6614399a33f040050f5ee4b09920070f527840ca21093cc0f30bc9099ee6f9854409142da41f6d7afa9f7a3dfd92461b1fcfa5d07de4e8779144e0a1230a114410a177248fb4020a2caa7045d1428a56fb8a79889228e1c00a0e2b50a205575aedce3c444c9cf8e00c2c456028c249ab1d649e08d04003248ee0e0062d28a3a565f28efaecd45e0c673a83d235ef8641e999b76215830c4ac9dcefe337ab57f5d27757caa0310e0f06a0ba549c892d29879bd6cdf5e0b27f017b00ebf4365fab1b23c0008cf3dc391c004e00e6ec21f08e8bea542a2fa1049b99148f6d2b810125a46cac8d4d1b913b33dfe6a184fa4f3c5cc2c965be70e8675c47efe8a8e1218bc643d06b3c9cbce3864ba7bce3c6a5d798001b975f08648497cef234e9e948d2491f11740c619df61b2f12619d761b2f16890568aff16cfc587d2158e3a3f9c255d33a039516d5962512581084120aca48c28915b4dae316e651804b8c2a9088b2640a16ad761e0ce89d948c534fa87f4b99a0e36f54e745979292d20f15bce8a4a7c43aed29283a576c2496528c91ca0c5c48b1620bd7122f584c1254aeb88e2881d214feb203122bb8018a962e3eb01524a8708939820692db9c7a6d846a1e338334c8e63ee66f2e157e44252c514b548a51461ebd438b8441460f5e988871a28928071ca078a10b9752d1510a3734717112440e8428630137602106941e6e208613ada206a3d31a9d8c332ab9240fb78c7c885561fb52caccc3bceb49d6913a92728ef41b1e68bc94aefa710a0d462b1189c6972e9deba8b42d1685350b152a120000001000d314000020140a8744029150281826daaefb14000d9094406a4e974743490cc3300a62083286114000310a1040081933345403445a04f33c0c1ee287358498db2ef5793266d3f48fa5cee9e013a9bac27d0d0b27c3107243f447589745d5020edbcb65b57673fa4323511c0c1e8bbd32ebfa2a2936a9f5f23998f9be5dc9ca9df374cf84d1b15702c5aa42b39955f83fe5fc443eac36533b3937676d52dd1f234118c032182a387c96eb0427ada3f169671f24cf85f3718d7f2f84da7740f5c3f9b196202a8fa47178a41308468360cbf00a613fd89c6e14de10d6959b8a80af0680116b508f00f96047b184f075540a9cf9dc7fe6210577ae874d160a75b7275b01ba365568cbcca1876eacfe7cd1ec4ddd422351521f4af412254d1678a12432448b45d9eed4dcca491932e9979906ca3c3c8b3118e60e0d70fccffa8355f61b13b09f9d12d1d424f4d15ffb0cf6add121df60f23719cafea3e22765f623c9f627f7540179cef6022e913b9cca2280110342cb48ae7728abb97b5d9291c8a7139eac6174570a6e5577151e83f7259d9c74acd3f2662d0b9572b4754906dd0ecf87c22e50708d0de20f932fe63b2bfb84eb8c3aee4390ec9e40696aaee828b075250341bd65f47dee5d51967f4f6b48584a362bcc47ea6b5c9657523f5012984bccf0ad608c910f70cdb7722ec7bae0e10b20a3a609c9a3a1458c37c6941656b383496567517927a35a5c8f02291523fc28f87889c40ff67ce7f7e2a557d5b59877ed608781e761ade641da164b39fb8944874d7b90b911625367504a860e4fa21d526ec88dd745b815644852e620bc50aa94e0532e3f1f2cf9657e1f1807271f96ae701c84d8360e277e489edaedfe1197572f6fd1ca3023b89e953b5ee7de79590d56eebb0e9acae82df5e1a47acdbd0095d49d2be1900266280eb50b81f3071ee4819303fa67557dfbeb2b07d83c296e5c519b54bbb6f0b6bde88998ac284f68f5511fdd0f9dc01eca71844958741f72948967a42f0ed97e2d905dbe4596311427dca822744f6f67ee4430175330d6851c8d3a772c297a0507ee58c6963bb5a4d31b745b032a603253a2d7f6a8943326ed47eb78b7badca915109f8c96612ee8f9ccbfdc364a6e7cc4317dcbeff9f9607e427ab067250d391689fcde257094ed789a0848212113b8134811e242ad4d591eaec96d3371f909cad517d568e2425f0ad1a00794697fa0fb9adcab668feaedc2014406f0f9ea9aff94e750268792ca1ac5ea3332f2e5e7d4b32f48b4a16aa2844359f41b31b788eac63ef8c99e3700cd91215251f415d058f319f1b0e362499f7c9666b584cc1972a61ddc070f2c3bbfc7f56f27bf80b9c2bb8b3ae17a229097f9d2f3b42677415913967eaabf941e6e1e69146ef3f8e6b48d42e1db60c56ce98a8e51738b6aa0214dcda2852b1e1aaf84e6e7fd695df16e1b67f63df89367d6971dcd36e6075eb0f0401a3a267a6da4c24dfe06f99ffe84ef0dba5323b9e64e128e4f64b7953f82c3d40f0e7f09ce32f9e345299ee45920a4b81c396321830bba951d9cef80e6c1dcdac2c47697151827de0a8227608b4141fed5f1c230a165fc2c7663fe0c872e02b1829dbb19fec7018be77a1271abc058b2fb89296da1dca0601fbf63a80c0bf3b6ba526dd72a3134e0d9a7197ea83163275e75ae4bc6ac5f4bedb8671fe15268d6a1df12fb1786246c3fec86ae32e1f9ec46606379872de85fc60f1ffe22b9978b084df804626994d97af79d594184b52ede078b61f77fa81f122e797f8d750721b9915f064955eecc6d588a7abd7442df869281d4581dc1013c2f07f0fdb375001903b99e9fa66cb152f952f17a2f0f4c6758ffb3436610749e17c131a0084a73d9904ceb157a975951c49adaa4c322426d2fdc7d8bf043766b4f21a30a68d8a82181eca87f97bd0c8429e7eae0e8c496388c85ab67ac72a825533f4f38319ad2eec8c7754d1338a209a3d2e0606120068da55e635b96004dd889536ba296ed19ccf73474f7cf8313b6a5dbf8313805fd95ff82d830abede56ea079b44ab7bce7ca5458d8077a65102a999712924de101a41668c95809c1c8c63421d8aed98533e305619f413fdafd71abafcfa840b19c417a67d61db44944c266e220e8e0c8c4301d8349ae0175b6eeca9961e74882bf060f55d79a7a55e904a3381bc4906d1a232315f5e27e1825b77d596f039d8430c21a9713cb0f7c2256f612304182b1e45796580a40feb9a00317f69924dd79ffe852a06bfd77d3ff3368c5a012645c1db990ba0ffb222950e506d50f6c9539116ee5a379cd1420a42ed0fd34886dafcbf0dec0750bb003ef4b568fe4b57a1c40316a8e1366ac36af990f8c55f38555ac741b5c5664f594ca22c2519b7afaf6f21e2eaf28f8e513e656618e8ba4fbc3508ceaa84348e5b993f1b10fc2fa65d53f255cc999b5228c682cc25fa243023d8cdeeaf5d068512f9a9b61882245fd45a42fd7f001dc188c880fbfe40b7417001ef12d9f78f2e7824aee5940f199bbfc5cd6f3d4e6017954ae5f4e1d7b40e71ed484c4652b0d3f289b504879d46ca3808b7fe02998e0b50cc2fd06c33f86261ea440b809ce81012d49e2d0d6ecd86cb142d0c4d49659847d8e0db7c2238f949031bb78a316880471c94679dfb260b3a36400ce0d36dec029be9855118bd1de8c2f221ebf979b201242e20b7ff38f4a5af132849863008bbb78473c367b8608eaa0adb0c96d750331219faacb228b69f46dbe17b410c481fe17622dce82761acd2ef213af428036dce4db4411da64b416002695527107760708918df6e0443b543ed05470f8a97dd5d2c79abf5cb9a41458ae386359f210185e4d1af50b10bf286910b554665d2a66783abd025ce6dd0afeb3f74110416685f5f55b5779434d12e89154d17562b7588f8d42745430b0cb62b0cb3c47428f43e52342bb81aa49de95f49fe495e19093954238233d265d66d126107ecdbe47e00621e4ed42ffd7f783fa411b228aa1ac177d1ecc046f4a73275fc5d76240e8c0f608bcd113ed39afd204ddd72b23790c0caec9417a4907d3b1c141bf0e5ef5a87182115408910324bbac99eae7ea4f974c3d553acd43b4f8188c24d75a1af1546fd6a9b2fccaa39171046ee309a2e2aa8c0125328af4ce47afa4c9271dc0912b30b36c8542464e54b691b3cfdac81b40c6d3f4512223d38d00ce50a11d53718c44463c3252e7fdfc58289151e72f9d1b75feecc751195dc1d7f70c293242f39f283d22dc6ec459d939f76d328b3f689fe10e00278b8cb48ec9d79091be9fc1d48945a669e8c2659acb0a276503402f11cb6eb4b1992b32c2fd0538e68539fcac308cdbabc1a4bfd862158dde0518dbf2e32881d163795ef18b9eeef32aea3f07deded25a707913af8a19d1b7183d9672d8c02aab4b9962a7c34cc1f4af3445ab8a541a1942a0bdd36f8e8cb4ed6a26585085457a373b9c0e0858a48d9d93c324ce7d85ce87caf295bb6de3b47b14534f4e133a99ea3b69449a73d4e1622edccb24bc4c10aed4bca2bcc5e76275456a6f51f7d31b3a705b29595ec027fe0e57d935fec3af748deff1283d0deef895b9467bb0e1fe95ffc63bba4aa7e1399cf2dff80eaf926bfc475ed91ad68361930efa0dbd57b9fc8468efdcddef5ee9d16959b12158b959482fcddeb6c62533c96a776ba527f8901c07b76fd7a076f3c5e9622f1d4773926f5a0655665c9c4b28a5316ad78813af5b6f653341bad923d799d97aafe1cac180e132d9983fdb507191b0be66e6c72ad9e5d038d0278f8336ea1aa2deebea1affe067e235fccc999f1d3ad38e755e641d710a234d5c9c9dd477cb774e2f12b5b046ab78dc6f4bdd3686c39e4ca54f00bb2c133471d349ef7f65a3a7d084eef38fa79b57826803545b577ab1d5cd4313876e859b300deec7a48968c638da5494631c6f3edab80e9811657c874c8c32b6c366d1ac318fc366a3e440bbcb0c329406e9ebdc85f8611f66cca339862366511ecf41b3a8c7edc06414e371643eba311d01266ff4b11df83a3d44180877d9a0296c11f13869f13b07033f18fc647ed4e31c35138d318e9b8be23887cd4719a70326a28cdfb136fba28de110d3e9234e40784b263ed0c3b774b8a50be1484ce503537adfdbd64c705789447d5f3690158475a4f7ee87e2d802750ab8283581551b00ab86cc90abc20d1da340ca9957de6922fd9424efc9c6d5111b05ed59b69d678687b5e4de6d2d05dcd80bbfc1d5c48daa4affab797e5ab40df4804b1ca463ae9dfc63313c241c7dbc8d854a4eca23e01f47d127e7f7b65296a5416fda9885ce48d114f27ad026efb91f2c966c01f28737386b2f46b6cd9b5aea7454df5e5667119751ddea298583388f0dacad8b5acb5617864767bd9a7b2839dabdedf1fcbf571c5d93cca58823df18503499f90abea8a41d1be00cdd5060aaec07e5aff3b29b8753a1d5161b363b0878fb23a96b1f5ab3e12200cd09258de88faafefa07a1dc8da5274bd7de4110f7c30a51d2fb2c3809d791f9e2102ed408fb15689fb4997ff7088ae7ebc84215447c809b06f4ffb6c2f2cfc8c2f5552233e41bff26961d79b5c198b8fcd8497df459caaba1718ba04d8ff91aafa0d2aa989250b5e06946f6a31d7928241e5ecc089371372bdf7b02e7f32a58fa5486f0200000ad839c6ff834e5142b18cc22838d314c43b87b6de9a1e5e40ba1095793251e511e481905420ceae168631e63ec373bcdb77eb32101c0b00a83bafe57b28847ae0fb0db1ecd66b697b00d1ca9352d40dce5be33679f86ba977219b2eda62119463e564acd16cf14624fe3f2bd26974d84a5187d1d4fc8d06f08f8e27f48beae5388b2a7020e7b6556fef95e051b5933b149a0d546b3201c7681323be81316578f740261bd117978f35945f2e6f25aa8281531027ec8055b08f228dc6c5b38011393f3985e8cf0bd07ed155f22861301e8a7cd67e92cced9a8b08027b5edb3a63b456b1ccf116bbb2ab9206a96f62715c99ef28c867972f0e2cd1a01ea87dac4f69b95a4e6a2b57c027b0c9416fc6d7e2a4e584688aacee56781572438cbb441345628dc6e99b860fcb559f76409ca6bbc82968e67684db412b4341950b2a8e6f6b59501be182e72508635d73b2e28272e5a1f152b798383e11e4934de179933304c2f2d3b2659d001db58795039545785560496bbd01935842435ae57d9b971699d765a0484aec18a05c0f27ba9893a0c14c1d7f310cee030a118d0419d6ba9635739532d071febe662c2b50acb63b832c73a6e1506f12175fdbda28a96bd24e048732a9425b2123213382dfb501a9467e90689b6a2f70c82a9b85af1665df16e093c42ff51780c7ff757b017e7be0cf9973a806058bd09906a7ffba130816755a42f0fdd48150de93b36ca4041c04e54d65894183b52a9534aa4848e5e0614632f713c5f883a7ccb79657fd999297b1d42a38d179c123274dfcc9d13bbcc26db9831ededeaeb0c97c1bc09547945cb4146e5f9d60d6b983dfc8a7a9ad9c6debcdaead240f212f1984b53aaba6a7c6c1624b0d61f416ee44c0bc1e5db488ef60b4f53b900bcda9c82ce66d14891b676e43539f3a95ad70442fb1cff014d3c053c1667bb4008893c1043ffea4b03c3a4ebdcb1ae7f75b397b8bf867aac36c7cae813290a1e173f8a3bf7ffe3fc69f32bd1f1e0efc25a7bad9601a2c5ce53a457c2f79d3534c04d46cf4cd16bbc2b95d7368f5a7c11b6fbcf597a7f6e95055fd015d2a2a1c68e25e4a060795d9d2b3b993b28ee56b8be2188d78a2ac9dd8d54f4dc247a206fcddc6910bedbbd8665ea8d069516b0dfaa32e7ccaa0a0c17add8fedb38c31e5574715a2f3e5cd2832d355f7dae50d0a6fe9814f78248880b009502a99616a1c8c475a65d2b0f6ad1a0d3684fe5e0c5fb6441a5dda5c9b6346b44ed25b03de58c507f3956fb02ac241155413b78d0d3c0f54137643909510739be38a962f926084b0b01522aa35781a83e84f70f89677f2a26653a05c00575b437a875cf311d5514b00831e52ca8b7a7e598505f631f34c333338edecfebe6f041b98f69675900d45619e0269b59af076d2a3485ba4d461817d6f5c716868e49cc51e661222913bbcd2713f7763b5bcb35d7713bdc2646db90ab285cb49d58e5aeed345a6d8d59740439f44e12000be562fb0c51ea16103864b0a179417b7f7949ec7463f5640d5f4d5a46f81ae314a49b6bca2c31a354c42a3e1ec1eb8f1cc149064196c97426826f3047122386c8ebaaf8b2abbb9b236778e818dcb6d79cf5b3bd158e1e80ac7369c2acde02121e66d889bb7be48cd678ae8a74ecb95dcde35c1d79b8e9ccb35432b2ad91f07045573467ad7f6bd0936b64fca298f3e91b703e5074a8a992de7836cc6c9235a40107482430ad9c30719c7183867657827090ef041e2290862dabdd63d44248c50906dd67e1bd2bb2d5e25002ba742e268f4a900e0314357c40cb8913b571381fc5b3df696328c142a131ab8fa45a94a2e06a93bfb62a1c31714dee7f2c30031f1c889ad167f9aa77eacfb7303b641c1e57a1b65c02082c4a41ebbb02fb1b240d33cf4ecf9330ccb8609023314d789ac024100b06a85f524e074c7af2f84c1f6644a613ac59192b111fdd3ab27e6d468222ebb88ead33754e9dd5e975acebc83501d4790510c5ef5ecbc5c01dd8b081f87cd3730146bf76f8f94e478e2adc22ef43e823213a6cd307b97ca8f27336ec688c09898f59855d9d53167d7118ea7c356d6029f395455f767ed343c61f94a6751815244a56e945ca08a5d606478d8a00b81aa6d8c01226057b19ecd7e0381b2bb80b57855f16fe79bb445f0a5ec050662b53e1522b30cc8a75253683a8b40251212240641f46b50d8d2a2e7000be64e3df4a5cece9df2c6f5ed1b40f9741e9bf0763af845c6ea142b26f64d8ea85e596c55eab7d66cab97be7dc3cbb9044ecef97191a11df0f2ca08995148745ca9c4385b8e2dbca9bde60119695daccdc1246f7ffd5aaf27a24c2be76b791b52584e1934470149f30010f09fe0e00f453d288ef327b26c0a7e5f1c857efb4d94d776ebad3987702f822e07398285ffb5b781eef65b84f86675a0e42849e41dc86999d9925d2c5cda8d1eda336981159b1b8b8a179da2ece6a9f1290f50b49cb1173c955f33d11e91d0e3e28943b1f0f42cbd0a592abe87773e72133df574f8619a1c89cb34c779061c2b6d396951063a58faeaf4a0ddd84a8ef1e978953dddae162470416cd81456431b6131d1f41d866438bb57143570ce9d9d83f1a1d729fb8e56549f97a99eadfce35ee8c17d2d3419383a9119c8326a8e204dc65d642db2842ffd02244b8b651cf1ef7c042fe1416213ede84a7d3fd58a34257993e65fb05058238c16edd69530a56721f77f3385c749645f91037c1d51ea4cbd0c27da745e815f760621c79649dcdc05437ab246bc12ff154389144bd8707ade87311ed09bbbc98955fcfad7cd0c43e20062024b9416e6f0acb64c7f670616056da7181d022198e4841bd8a07c8f1b13fe5e9b3089902f3873d5e10b410d4efe537cc701fbca11cf5a42d552862bbb01d4cb4ff8a473efc4f37f20348616f062f427ea5e44ca8f813652e178efe9c73014bdebb7a8b22c2a1af23cf21a252d170673f7cb2a2037c509eae537495cec997b8c7edd2d16956a2210fa6c7e9eacfd3ac9f70ffc8c282c0d2c645705bcea406be3072d4e8a7752f1d74e141ee3ab1d41333ef42d2f7c1625d1dd6041dee00d1b7aea1224820e3b32325f33028ccac4b2ee4e91a8dcd78c8763ef2de4d7731917c87272cd6e2868e0bc4c90d8fc3dd01d8143f2caa5438fa8242eff2054a7cb51648065ead0bb497add9b95885c15c4d1ecdd954957c85e861cba57e7dfdd914f1f03c507c39344f0215618a639dc9b663e7e638c5366fceef2bddf74278eeb92ba3c30eecc8afa3d8ee09cb4bc4c4968fafb5654e342be5b0e62f69bab429513efe5413fe7681cb32827767490d6e1bb4946aca02eda3b0efbbc2aa62020b877e322065295ee049574d59b71f01b0e4d8e4ff1c58b8ef4ecaf3a137d5c2aeaac69079bff7181be9d4a3b10aa9e9e5c245092e995296b0770f08b8f08a52f949ed155e8f3b876f5e8457e1de9614c2a066df1fa1ef96f2dd49730394081a97d128ab493469c6c6cd68f95df87944341cd1e17046509f2eb90d3761085314a873d64498b8dc3c3eba1fa51b6ad62b1c6315ce93f0d2f9c1d8f6160bbc6801066ed765a7045f4a33ae9a04ae223c9778396d85d39aa8fc8f3b6c51a84a1173a8c5abeb7a376862b07b54083d38c12097276a0ba738ab799b4076e553b0490cf160b291abe0af05ce83150c00a49c66662956110b6a575e14e51ee5952ecacbca28ef5acf2445e1ae49191e99b17c9639b26abeb59be0b9cc1d79fe50bd657dfa19807bd6ffa6e98e199ff7a6e23feda38ba925388da01aedd6000de4b65ea5db78ad7e3b27fa438baedbd98c7ccc1863aa30369a4c9f14b736d474e9f80a6c45d3e88b85abb0eaa0bceb94760f6fa04a6b064644cf855e6577862529673829b93032b55c5c65e25977f71f11d3f87655398266a44134e89f486061d4e6b408e15a97bab1c77209d0323f04d9c9d711ba1d28008d7804f88ef081cc5c5841292bc88ddf8a6d897de82a55f938b898e4a515b42f7970f13ff260b8e539a54ecfa624ea4a8c2ec1534ec00cfbd09c723c60ab8de78e3f2d0e39317957190f8de478e0b6d2a739bee858f6f55d65300ce598db0f2b541114ff57c6bb4a61d4007d7bac70f678900b2ef119535c1592b810df74551fe4aa2e22b302ca22d3b5c7c64d17fb97a317faa0ab0e3587582cc04aa945e7a3a906a9243ab844fe42ffb889d037c34e5f497a385d6e4461b9afaae8bf03625d946b4e8aa4f1c1736b5cd6de193aa37a06ae7e4f5c934186d6bcd21895c6bd114294a04c6bf2d0b64b52f237c668171c86b859cdc1207f557231b2e8f24c3710b2e2ca28253c1e8643532fe22b5a64ac7671d4384b199835371df124603c321bb9a00ad91e2655a627c5ba5fd48a7f87b7b1eee12865829ee8d0cfcb94932cb5cbc4d820242f05034aa281295ae89aa6174c96c4869bc8391001f4e9028a212ca2fd440d2574283f81a06cda854a3fd6a45863fabb0e70a4e8f63828c38ad9b8391e11c1ad01ea23819041664b882e1f51e8dcf8a4afeaf531dae637ab75356e4ceaa6c705292331f106ebd5b853c966640283025b39ce808ae5734d9d29b03e95195b82d591f7d515650ebb0e1f82b9a37bd681f5caf8bc50627ae17858bea5673caea7b7ff0213cb2203bef568916c4145fca543c8bbb4bff756573a99c92e6eed047862fcca742863e201aefd0b71e9d5ebdd50e590cacc536246d78c0dd10aa343682cd0bf630f3a1f52b861fe5243fde480513a625ff32478c1f34864c019f44134aec444af7aa6dabcf0a3a41b008f34c2ca79c383309258b8603892617381581a39dc012f028f83b0fd003bdec556b302924ee6ce0e0c4912a56da6d3151d270331e81a19de5fd1fd241383afa15c8b6ccfd3a979bc21021ad84d44aaa5e43d345e8bd8c51fd861a8b8cfb955cd8019eff9ecd5cbde8d28f2432054903e8a2dc7d3a20062e60bd31c6ce93da7dac27c1d4e8235d6dd2a650937b43d312b0a064b87d4e5809f4a6a235575890e0b8530908a0fbd9616a3ce558a20c3fa9bdc3ac38784b95a8377b7fcc0b1501d5715f08834af2f4177aef75a8a7a6e9d4e999475f9ed3e18fc345f4b43d0d923da3359dee309687d59eab6faafa54ccf82dc6e575789cd6e035baadb1b42f55fdf60ec426d574a6b9691310f096ce92c87d966323807033c1ccbd677a9d491009243c988281a73ba548c9609d22c65424c45435bff0d989f540841916cda246460d202380a1919436e0da079604bf3a67c82e982ae8668387d94ade5d82c440f864644ee3f06b6946999f1f830a85f4b0d8d456e8e8519483dca40d458daf467afa592b9854ecaa52c0db85ceb342894d29827665033a127c96e1070b6d56b69a6e222f2fcc36bdcfe5f7a2d0d026e21fca342efa2596b412a4818ee16bd0a67c250bbcdc485a9d7d249352b2fdb8c4307c090bda4a12bfd58d10793ae9089907a2db5bafe542c5a238b5e4b8b57284b557d3b46e61e6122c3d8f9d72ce56a50522cfb72eb31298e8be94cdd9f1c6811b102582438f2fda8adc7627a887a2d95b63046462401a9b3472b0b33839eda0a8e20596741a71ebe0e1ac1fac2d5ad60cc709d39ae031341043210860932362768b05bb263280cc7b5b4bc350f5d690f8ac2b2bad43431c9f4985f83ebaf95aea38e042628a9e23bc56b69919b90b36a192dcc5cc4b72cf26f44591a734507afb999696c1611801988be336e15ca8c277bc89ced923ef844e874c34491e1156c62774bcab6c6cf1be9e2098cfe13381776fa438647c44aa70452d48b8289d7d2d29f0c210834eb5ab92fadd2decb575ab9416e6cc825a58b326a24d987d1336e7a63ab561f7d391af95b458348f078d23c6f75994f02afa592bcc21639bbd6d7502caabb62e81181df05e8c76b8c406ea9e56aed7758428b9071d52499569c702970c4b6bfdc1ade2d2d351848f93a06b0171ef263f844249f26df0129d24623589473ec006bfb02122e1d20b7d848d31cfb89bf8d4d7f507fb7b4990f90847d65e9146fc273e0b6cd9781d02d358aa9c0a1a81dce9216f25a7ba582b390079332d1a619c510734b998d3b915fe6625e83b5b6e35ba61d07ad6d496de92b75ffb8d96f10ab7766e596cefd76fbe0b7a52f785dfc39ae097c2cdc36863752e596facc62c38c3b7652bbd9109afbec6294cd17bad27e30df7dd9087d08bd2809766a9781c985431144c3beaae0ecfd899558d04964284eebed33696705aa8713545453ca70875937f29c986dfa2be368165060ddfc17f6462ddda3bcf877f1b72f5a899642f7fbe1cf5ebb61be39852e2d5b0763e68193ee211db7b0923c695736c1bd76c765062d5b7471dfe1cfba40a3244a223a98e721812c5d63c6c4f0b51b3dec2ce286f972517267338c1f008916936fb9a114beafc4a764ce4187f19b741573feabab72defcf8bd89e0546fe8f244be76b9f14bd67ab6e80277edae8e471d49f2b51b5a91703efca7f59c4d1ad71661a98e0f68e9e91640f5b5eb0d4f70fc2763e9c14ff13bed361059f9f0b9555d859066488a53a6bedaf832abbd80844ec85ac546dcab7edb7c56ad7cccba354f43c581be29edab0d5985a1bc578bc0237d821845945c63d39ce3dc69a52e280b13b213bc5651607a7cb12f7a32b53c56a5bd8eb00729893b2355982193e611345e6c8fc79dd804e4501fd62629099ed8416b5d4145aea1a6cae02c4c7bf10dbb1a26c7fe3535b94dd3eaef880e85710d0ad18977298844710ad23a1349dc3a2d3dc8713bc065f2a7e6e8652e8e172d7bc05342f6ec5e7cd90e459325f38878db787b5b60097be028983bae5b668db448b5071198cb42617b1e2118160eaeedea2378bbe6c1664a672b4ffdfedfd992a5bdc39be69242157af1598fbe35ebc74bdef2cf3d749c636240cb641500480af28496052ff4b1172f86897ef25f580c86a3fa9a581fb5219ae640464c30e7e32a65eb0b266c723c2289c3afddca4630119761b941e5f4a7ab28e26b21a95843e010c251556bb7fff0f0258de703b56d12d3356b1ef4993fa709ab86edec48b9bcc5d4d057054c2327e6bc03514929e582116002356069ac3ec2baa620b38d60ab49f6dccfb04a94e8174d481cdaff0d5b900c199462d9dba5468567f23907f7b7d90980e659616c3e7110aa2e13ccb9224080bac0cda9ec6dd1a630cff397451e5cf17748f2ea16d8e93e4cf839bf015b5d504f3b57e3785e0fb1bbf026951511a0c6d373d14dc022c36f3fdb96c8bce069210b12ef3572392e6f305872830f4fce3c06f1d8e2de288f12ac85477616158c4e7d8cc875f7d99674de1ae1c6883e28207431b9577824cad219d27866e8ee06aada1114bd4ad599ec811730a494370c2f18187e4a1fb0a684a59aa2ae7e871333a6ff64f5db8142116dad6e9d7b0be7e761b6054d6938424bd110befee6743909b9d301a14e4982b2d299ac459679a77569f5c64c0f5f23e935398907b966c34589248cc1c4b68db744ca0c683da1b585fc8648507abc7e07e790a70f0f54d986f0c89dbdbd74d4dbeb9260ef7b9e649f26d51fa8343f0af2c2d79a57e2f18327a7ea02438ec04ddf3de23ec7b76393097aeeded9bde3c468cb1a74ba848e97514248481eb2d3a89136847abdb47246787202ce89bb36360167353b42bda449debd3e2a02d10d61a7f55f56898e2641567cf5581efe94fee0bbaff7332ea39a81cdcd4210159fc55d57f8daaae082bb3ca6a7c2bb7c2fc561a0bc08905371c10fc0a430ad3f3f2497a29ef9f4d7f1e835ad9ff31650019241f29b9cb7fe905654833828a12863554c6c2cefe931dd02ab84984572a08e010af963f6c2dd5c4d49603cda4036b3fb1d40d6291183a5991e61285b93ffc18c5cc18e83abeb7c3d12cb103ee50c4b22b23ae0c833ffb2a3d3ce0764163db187164575d4c90a675ad1d31b2e6e2643e87179bedd927a74171c32be03fb437338bd801048e9da72f5af318b52279e94928413f97ddaced1089825cc552de32e34409ae5fba6020d1e88769596febdb1aec2a686e7553ac1aa42d22e6f3c6c7e7618424fd0f4353ab9191d878a274c2763d6d121870ca81bb64cd877ce656fa778b6a0044dce5c9a507a19d217ed706d99e25f51ca25260c659942f01c0d2866adfa9e99b275a70229204292c62dd532b483b644d0dd8c5f1804246cdcbe99980870f97afaa32815b7b0a4fbb0948a048d59f35fdf2a3db0e97cf1ba3c5ad23ea4c8418521bb9da5c3a612c4544e6cd2c47373df9e5b10dcc44987fdc8709c25e789132af86f8ff93935569088e364e582c7e175f18091591c2ef1557984358e9ed6560523b3c424c42c313b2968116bdc9f82c181dd0eeaa4c0199bc74b4bbabfa9dcdf01b8340b9d023926e64dd68569611732a5155561cd73223debbbae11855846c48855fde0d0863224c71c9f4e18694371d485523233a717b3957ac2d52bd11b2823f026b023c7893628cb716b0fc4f20d11adf14c8c1aab80c9c066731ffb8e22a61da26d105e4bc1a73add08d7233e7812d94632946939a321510b1cd19ba45b570df10f41dfc0f0904211fed88f1bb08514a2c4a1b57821f78307e08262753c74bccf67e934c076e593fd001600931aef5127cb60beb42bcbef9e36035ac2553691e54e44c7668427c996a4d68a2296440825dd052ae9214579c6906c774b86bad5d3eda908ac4443080f013ed0efebe7d0f20f54681b6e52153cc7692b28db82fb38d4e8b168b90aa10274668274a3e4c9cf59a91f20f891111ada7c318bbfa86feeb7ffaa5db2b0dbfd328c3d453f92a63715ce6a03dc0a2c6e4fa366e1428298a75b0046b35117d6a73d59b95b1e9a6463eabe9150388ad4f16511ee80846461ae56d58a1dd9ba333cd7e5204c7637bc02eb81d86e5292af50472b13cd10e0bcc3b87ee3cf9f8f2884d9ca98603dde60c278573507462a23a862aa26ac798f6d9e27d84026ad1ac73196fdbe0a66a3a48ea2c23b40b306053da06b438a795b2e22b13d111ea2b0a75e17f9d8994e62d3358f1adf9317da0a9a2830d85aaa52fa737b771b77c95efe3cc827d0c9711e3f3bff9bc584fcffcc5e5a14fe58a8b6a27fbe07911bfe23d8875fceacd768ae3ae8cfcef0c9a6427dc0c1bacc2810dfe2d954b45f4cf070cb38d301e0cfa917edcf96c33e8af1aa9e60261a5f5513fcb51cd73a7290557daeacb93129a83ea1c1c176b49c2dcce70dc28bd6eab1b06ef86b5cdd7d21a9105dbe59aefcbd505fbfb9a64c38ad75cbee79fb302ef4af528168d8a056d1c8e55294bf376af7781f1111f7db507ac3a284e0aaa2639e54e3e2bd9a28f4b680ef4ce101a7bf4d876fd6a3b4ff5f047ce7f2c40b7d7714d75c62de0ecc84f21b1deaf8795cb6963b34738c8007887a4ce1828e920bb6b28b885083261f6cf38901fa3514d4294a8de561fb88b21605a1ae047f046504fa5c9f4956a98e9e4179399dea9170b3b7a6c9ae6faa0eb4f998a7dc4c4386a06213141f5b6252be7f0e401b0563039a79c3d6d42bf6cbd334366771665bcf28e6abc051c873243d283d900eb3da8d243d0d285cc220af3eabc465e415b295542745fdcd42b7113cb4c936e2359061ca2e813815d33a04502792ab953e0962daeb32cc3ee6814498aff7b5af7686ff4f3b1a3bc1386daa1b05408597f22a2c0a59c0da0b20cf1456ba32eb7fd850bb64429b8671c19dfdce0b159b0950474e02685eac871d52d60e33d25a7d2cb369587c1b8d147bec2c2b7d6d0e71b45037be9d392df196ccf839e021b3abcdba538efac37574ac56376da4629b5196d44b840e7557bf764b94546cd523fbc0544af4759a7561d8fa651db72c3bd16c59028ca0a5b51b213c696c97eb692e977438259f5cef678e104a09d48cb0a9512e8fe70d26130aa278ffff1906f240b241d6703ad69506441c964d3d63e490fae1aaf418246b5d6764b17e262c563be67588fa57d9f22903056cc6a865af857d228781238b5732647af0635ed133121f710d8b1e1616f1fea05b5ff0112844c18472c262381e6d3661396797ea3f225451fb43f73f76755044bd0180ec40424795c22551bb25b4728b4fc5b176cc20cf341579e4f3153f4cffee1ea18875d76234fa77ee231b20ca8eb8c36bcca8993c5384c72c9ae54f3f83e9d30e3059d8d0f2da08f454217337caec8fa1c0af17b1b3c47e47bd2986b4880332fd4fae05918cca01e12020cac814a069f98fe2e14da14ddfea6be27a282d2bc60671439a12306fd9945fc5a1c31ae4c66049c883bec70a059a42442349cdb4bb406a32d5ec0fe7cbd1d82d8652a85017cee5b0c844dd572bff36eb9b07b04210660524e1ecd90f3d082c8eed4eea446a43ece7e9d024b602f02b689f5a72874ea86f08be1e4a1c85bd662e606559fd059a67942757672b019e518a9157a564b2e9022c68f165229778159249888aa85492e0c651613ca1f4fd4d4e2ec6f48e61e49d8699a21e3aff671e09259785f1689638abe20360f73eb44b4d18831c3298081dee1fcfd80d7309257125dc9c9871bff5c7959ce2d6375346f772429e61f7a7dd7ed8f6f9bf322a9f5e7ab3f67320fcf775429a75af88eb6fdefc3a0e086964d250f770c6505361cc145828dc8e0fc5fec74b8f0859c4b239aafb87e0cef567b8600d7ae36d3ae2f74821f53dfbae5b077120a0af8f74231ef7ef79818a4264297fe8aa8e4fa1822189f2654cd5909041120c3f0b515f6c59cfb856acbdca8e6421c1446c682258d7dd6c70569d82012d604149ca163afbd0582544f3368f25ce6717d3e98a22ef6a52911b64e4c4e65191393914a2bc77c6c2e88e880cf1cd1ceecf5df5d12cfe872aa65fcd8b45d67f33bcf53aea9ff11ed70a6c47fc892bd1fdf370a25ab1666cad6a18d694cc60dd823cb9b37fcc3aaa01301e8f40617e7ab5905b6d0b346442701d64dc254036a1d675768915d0bdbf9a316e89bc063124ba500148623c7f1dc1e7fa31a024444518f2453ec60d3e3718697336de7eef26bdbcd3d18b1dc0d92bd5c72e5e26a790f2641756b7f3ef7c43c3d3eb50475e436ae586e0f0c17e01c349d2e84bbfbcce17fa253f7a3d9f13f87231e3377760473f72ad62a109a4c05a6965950b1857fc1f1c83ab5682ca5d166baf8cf817fcee050ef138974d803462b2f21406df191d06ef7bc3749947f9d3a01bead17444ec79db2951132f0c5cae574d1bf7562fc0ff91fc9f46552714fa8b8530f9d51d03025e9a9112819c65a12992cbf74f5a116684011bd57ce249e6250f13399fcd415d054f65d2346431a0ae7eaf29f91f70ad98e174f77c370d082635ead62ab7188257e43100a73f3761e3fd42a6db23dde509ea58c1cc45014da470da2d0cfd42642ac4cea32e09582e7476589d3c9b1f05ae45b34226b20247ca36c1b3684e1f960d5598fef29cd1e446bbd29e8693313be27f27c7dc851e607ccfe2a83523e2640fc462e8718c46be61a3a0f8eac4d1cf3cac9f1b7d42b20b9dcd69114c16ea75c59e849afdb5f8ac1454e8984b352077f834538ebdd607bad33243dc43627fd56e4b95fef9b0db5012507c70d4cd05c4b0644a4a2989f36c2786bf2e7138ef1d9f4acfd8cd64a5f7c07e0bbba1e3cd2d432db1a7919948e58ac4d02d7f973cb3a1da68bdf339c2822baa3b5542f29b281ef37297f4db23b96bd7f6ca253a28f15af26e302384bfca4039fa89ca0362ea5ab4ed1a082d239a53bca1aa00f8bbc846e07ad0b2223ea04bd492606daa0e0240ac4a45d694f4cff2b98c29b6d5777d49b35f7d8b4248d7533573d2f856077ed7e2af460d0d3f46655d94a4bc8c6e102ff253909429e607c4946d46bf7b2eb1ef718a245b32941e8e94ebaf2d86412c561549ced05ad1a67b47f8799f211515805580d41a384494165e480f052d128f186b930d5c0697d7ac9be852df6098e1fe40d54a8e06b71681d5dd886ed7821f873e609aa2c8d6dc5fee11deac1da18ddefce5d5984d1860fa799985e07a01b7d5d3632c24009863d405ef8b19de4e9214126714f04073f0dab82a5e32d9c084187d16e93db35a6c577e6f1ca96199fa4f209b2dd548e1e7412d2146920937f044ec4e07567aa7f170d3d22382ff2cb0c841bebdf565491e5c3e4421ab5ffd9640d927d10bb14b2a31f8a827f5e29a6a8dbc11381fe26e2651974cd0df383d80b19cb1e922e75cf65dd973476902e6843d9a6766f74ea1f4d0ff67a0a2348c8e10c9f6037d12a087eece0583e9ba7d97d7ec421c97211133364fad0348a38e85054c3ac017f01f4bc7093db2a8828605096473f38d6736e1cf69f781022950f103021495c8e950a97ca7da8bcc93194914006145135a7fbbe28cb2b1c6a0fd5da15899d43113c7d6c641caac053627418fba7954222cfa59f6e87d5edc9b4919c4136c99b8b2c432ccba2a3bf5d626bbbed4d532921763e69659a7171cf8fae2cb30a86458c3eb4fe7651695404e1044dcd55413712cfe80b9d97ab622d5965abee04fa85f99e1ae92af0746ff7b86e2167fafbf18deaadfbc82c41a4211d36c6d079c998b754858cd0d94cdbae933fcae35b5532c2766a5fc14123c0e23cd344c5a28c5f74d683e429cbfe146fca72473a4388da00f95a8a98f74eb5c090f0b6f3b1a4ba2df4f8b8c2c17539957a12bb6be19f80813814b6508515a10a6a00ba0f23644520630541ceeec537f0c2bb2669c598a0f8008cc6aecbcba4d89306cb2a6885e62c75c4d7361f1957ab56c9e8eb042b608b15de00b86a0bfd73050acf7d2e8d23a3be037aee778f5e2ae2a892df36fcd5a41251ef71667ecd336424b48d06fb8f00fa88966c72610813fd84b9c03fff437893241295f87cda2e2803cbd215b29fd23bcd54e3ff86b6a012a5998524bcf9673fabd7a5aae3df6ed660978fca7543b86e35570a1211b938722d17f31f161e344f7be2b522f6c6620ff61e111323fe61d13dee240329e9f7b7576ed01a560086d416ec6f5cc404ce3768d021a1458370405d6d7ff70c13c3d60ba41f21a17de241905acd18b5d28e63fadd37509c18b8361e0fc971be6ed51ee4de2a6adb2a2afacaa43e32933443c6928a24f76eac7fa547232c6828ad01ca8e80e4dfc675085d223c48a0ba7199ff69bdec89f5ad0e734fa032d2b8a4dc63ae16a07add9acf81beda718f5de5487aa84ccde4e300809a0d1f502179566e114c13fdec26cd4eed858387b87b4ad1901382d15db4d30314effa6c63459c8d016314ba4c9ffcdd26cb806415e5efefd32463e7c4d56d0acbe6170f72789e5acbedb8f6d4561fde20f7bb5120225eb4b2ac98d1ba22e7a90dad3d3d012b4daa3699a55bda8db8fddf45e7d4a584bbc111713090f8e830636c6e6007df4c9828cadd93ca2848c9240ae6709518c48bd65148e0e21c654bf6d6751cf23241306ba2283aae3099e9415991affdabf67b1e4bd88495dec3cbc3eb13fd6f2e242ecc56f4e62048bec880174b23040e8e7b52141424f8cb88d5d1f91890c61dbfc4f8d69d9208fbe662b36b0db2dda30a232f2e805c2fd1feba65183998d5b69910e7db7885b7c9de13b9f91f4e3a33b8be723a2d58e18cdc11a54ee506fd83a6c76e1f497e743972d0d78c466c909ee15decb55e24dd4f9d6ca77830885ef1535f79e58d1cfc4e5440338e1fb18c03cdbc24718aee180b2290b545a5b7cedd025f79b955738833f12a7a4a9b7dbbf0996fcb51a0072002eab143f4ba79d44c797c4284ad984e5da2828c9747a94b8d9fc8ee3e5f07f4fc5293bd3d97d39bdc4d71f1708897a389887d5f4f8cc966c60110f3be08b06774fc82b8369bfc9ed7d9a4c20fa5a76290480608137554c86f431f5d4c710df1ee11786d1548451a1d97af93370f81c654be5a84b7c1e085404c91069f03068cd4df29920becf0654c8be5f06ce91337a2b03bf730032d78d6d11c00f93824d5f44de8e2eac15a5ebe40dce76903bb7913071d7ee514f80787e23aa4813d738a1b724079502a8f57339b86febc1ebb29565783951a3f898268e0e1fc098338b924b1ae91dd58cdb9dd24140a0494132a3e0518037ad2631542809e9141cc151dc7e9989c8320d0bccaa07c71990eee5294a0a58d2deef7fc68b66f3876c969c80c55cc86675f96576ad7377abb704a786dc3cfb409db9198001e8b2dc1395a7188d39ab6e5693af8f656f77ef9334ecee14bbf98be763007444de1aa26218b5af1350f23c70f5ab44bfabeef23518cff471684800eef57b22209a094032a073f8a7892275ff77ee27416b325b34dec52a61df73b8b954eda104e4a09d85b08adbde6a01e51375f952c66edc13cffce7991a35469eb33e15edbb5e273d9fca93e3c7d859f7b5c58c18339e14b66d949d257a98f44b6e97b124f5b035864232c8a5c48731f9d73fc45de54e6be314ce1f0d98212816d7bcfa81a6838960f0e3de3fcf7563149dee9a0f335f005e2cd9fd7a6368b80820ce0c09bfa28d25173fbfd8de8224902001022b1c096c67f1e2d807a5a59ed21918470514436ceea27d25bb17f600122e8d7a8628881becc21a9e341db577886a71d17e25727141d4caf76f7d65726d131b2b70d5a765a2a407da2ffb1224b80209d7be72ea4e86636996e712dcd912251710a08cb2a54acdcbe5c45c3146c89eae0462464bc683bb77bb339d89af791ec91680700248df16ffc054722649abff22667f510b3498b73517a251e358bec101146dbe419891f6aea7c261e17d4830d4056b8f7fc4bcd9e2d1cc91d3f1e664ed4ffd613409bf85f39b2e483755f0b0cc922a8656bdc82e374ba54717479f3be3e88f79419d05332ed69910ee2d94daa2dffd3648bbf5793992884db861b7d9835508bd53018957d72c30666e817276315f45c354a8741f6206020cf723f374e9d4ef430ade860f7a5f5ad8f0fb9ce1f0b37253fa6bbb1ca80429346624c6181e14ef307457c6ee03982aaf180b6fb02628c2a70f0e7f124093b346cf84afd7b7d15ad44754493c7ee1fd60f5968051bbb89225b7b6a173955dc1d15f601ccdc87e55bff853a9961cacf9d9889842000aec8ce84b89e901912b38e217b56064341c0d375e49d00495049389581dfbda17020f4403abec0cceb74f960faa1030bcb86653dbd154838384120e4cb211a315ca1da642678a328c351fe0cc6a3b8df7b70871ae2c090f72da838fc4e29daa5e2adad4eee1fafd3eed26782dec9fbc1c01360ca751f7da202e41204858f4f928c55e34bca9a9ff1b408063fbd7044e34ef1491dc0fad3442c7799f0441951bb9d1e79eedcdfe65c1d93829979fb00a2cbc2b9f227f601764a231b8497b79e62285203a2f06b03cfb113ae089ee2eecc2dca0749f705f259e3c9801c03ad5255ab772994a34db5b464b7feb53540abb52ae2abc7fabfa90af04e924b1eac17a6c6e996d6315ec8ebba72a96abaeffc0bf5f1c892f058e1b412e2ecc20c9dfb7cc439099f98f6514e4f4a0d4f4d3720e8e5c7583af8b92da7d4c28800415297d73a5baae81cef339297c4c482b0471e8a7ee74cc10efec988b1b7783b7cb7167eca1dc6f27173e516cbcfc1d4433e7471f00d2bf236e497d28ecfe87ddee8129ebebff21e94d20d9fc29607f1de89f9df991de8aac71b7c872a45fda9c9407117ee36fe119687d862ba9b1d5cd552073247e367b21658ef3ead6dd60b3de67334edbec630815ed6ced8ff2ad3afd2f646a235e470b828ce7276c7f044f6bc9a6b84582232c701907f9cfc2ad37066c5e3ea64ca61671e20fab290a930c08aa0c5acb4061acdb2944d379b1ff41235185708001a4d050ea34d711362548e0881b2e50c7a423e71c09267cbbfde84c5b38319e17b6237ac14f175557bd5c7ffa71e5a7aceaed77700cce76242bab5c676a6bb759ed6c2c217fccdf01168e92b448aa265d09e82ee39589f93e00388ad65712d1d8fda697429a753b99e244e0e64d97ebc010b0d65dfb9b85d5c0bad261d761143fb6633a66edd4bd4e72e16512dbf4195af84eadb689714ea480baae261218ac8f4791479be0f7bacd9aca58f654af31bda89d5e79a4645638deef0d46eb8d0f0d21445eb45b3d815beaef8be9a1b0f5114a6c7ceab2a735a7eed1f62a02456b5aaebfced217d515a55f980c218ecadf0771890e24618b627a91d9d75eae61f5bf3f487bd9a68d0119864d6fe7eefe449fd07394187340433baf4e262ce571ba5d1852e0491b330f8a907648192e31c09fda2dae4d1b24d63cf666c0774698a4b9aafd84fff2670f83dd1992669d6cc5443f993745981992e837d2c59fe661ef77b94f2025f8c2f449957123c343a567e8275304ebe58d36a0c69e7c9070d14c0edb5db66c2e8a549ff8db1a64d67d32d18c82b8ccbd3b7597deb4ea29589208ecaaad40c30f167aace242bc8356704d0d3b775a66ecd640ff0f94fd772fb7fd0beb742561a158e79f6586b329da65b2e6f8e2102e6b64f2d4d5a6605184b6be2b857ea6e45515d17344780f2ea291b471d4b8c05ae21533cf0699b1b030e3892e7596b370127ed65d1ebf80fe47fc3baaef240a61af0bd5131836d4de92007311dd6b0cb10d92e2b05c6c943fcae9792a3e70d58eab19a89e206086f13f808a963fd3f4ada42b0cc3d50066e66b9a1393f89741df8e30251811d7215044dc45c23f780aa6d0c4271463108150c3c69aad4a97618cbe9917e2e82e29d2f57703b902888240ea38a2ab6abcfceb1984c2c3625d1ea8283a7c194a17a71319a5cd7efb313665cac0baa5fc91aac3dd8906db85b5084c9bba32f91ae8921a929ed9eb0a5f3470e0242f70a5abdd26017ede3c92ce3870252a361206324aeb1603daf016464270e5a0c8b9f63b46725cbd9ce8b20bcf317924ecf098a7fbb47c765ac9d745c64ac719691f13b32c1e50b8493f0b24ea616017063289b4344001c61573ead0ba550a9f3310d8c5a2ab64a7fc41ef9f1d2f269c1ceb2f47302cad0d9939db26a11db7cd4ca17bea6c28ee1bfa0a2cd88e1ed868013268fcd697f818a5f5b361957df573f7a935fa82023ac9e30c2c5d218edc72b9863e89fa0a083c30e2846fce84d59ca5aeed217e7ae524b29c0eb6af3b07a81366c090f614e197e19f5f47237f056f84a596ac13d9e6e307c9b1954be0bfcc1a78c5a78de4da327023463d71707929592a3d35143dc849972fc9dd6017533939a40d740270a5321566e666cc20f3532a86a8200e8cbc4babbeceb300d2434f3c525cc41fa8d49d5064c0815a94e247a2b4cc28dbded8ea078e2ea85a44507228d2fe1a7fd862c173662ae4a3b5b1f9d05276d2abd118c9f3848b9193bf9cbbbc1997eed5ba98bd924990a4a56048246e057505cf84a3684f9bd661338ea81fec30d50be4ccf1b36f4ba3841d3285d691a8178652020dc3006a87a16c1088617c3d62f86a96920e045a78883c16538e7448b35abbdc17d147551c2bd4022f84e92149234976e610d5ae032ef3148384ff9196dd9ec7457b3b5cda904206ac3bc376842a52764c156d850405557d43ea0b1b5b3a1940610b82a9c05e2ee4daab7884d18b60617ed010742fc479c49ac338c729c19c86f0517e1e3c68d4faf08cbec1eec372b136de459b61a525901833899c14ccf27b5705303f6f49e79e94f740dde241973179f479cd351bb701a8cf044bc2f9bf57f468806555b38c9e55eefd437acc8b1cd9b2ecfd9ba2f46f77fa7378e218256ad2e9ad40f509430220ecc6ab6f675cd1c28fef0e8c99d5f63dfc291527724786d1cac26b68ba629e917a7cdb7398a754632fe540b07d1d490c233f4a20896faedcd07d0e69565cc281962f3e6b05486000cec5d4132e809b3e759b547e0a005557aeb09d5e87727d812a797aac86953d71ecacf29730dc3cb24f408c9bb6970f168cdd9e63c0969c80babcb1e808da469069c6a5e1ee015987f04abd7417df1633afc9d0df47f9e563783d0d4e69ff43f36613fee40eaa1f8b5649b756673c59707e316f51fd378694391a746a22c72c401ba6b2445bab824f00f69dc9de8e7b8ba115d80e8f4029d8d8c6a7ecc94daf5924761f0fc00921fd6dd492ec52d21e85205c2dfda72ed09acab46db2422a94711989b394dae81c2e604633e1028de65e01a12fdd6b5e2e4f2c1e58e22c0304c45b9a9490e12b43381a32a25b4f34cc87ceed2621fb45923420193481fbd050ac93eda9982fd0fcce1b332c88041fd41e88859f04520e6bc78b63120629a0e3a5f9ed1702587b00071480242e44a007e911d3056e271bcafd03cb94146bba9c5ded8b29711af054d402e023feff6bb498ca1324c01bc223e859a988b3e21f1d9ad1bd8a7b8b82593240f0464641a6a586b9d2d4c93a2f47752ace9e2ad5b0298e33c4bf96f208045c00e3e8b63b6ea41efe851070f99b65e375e9d0f4975f3bd4d22baf4f2e1f8bda2371964bf0cdb724cd7a8c4a1a5157c2e8254d72d92c7b6adb48d5ce64a6f21b335541930abb681f9529118196047276f3a876e1b9c2a50912d2f3ab3471ccc30762bf0c3f0c9cfb52a57878ddcf2494813ccbfb0fcfc1fef336feced1abf5a1acf791fd69948d8f9c2dfaa41e621726306ce04a8e5b16e43cfd1aace7fd45730f14d324417c7c40fcee22240308ecd8c065f5dab86ab83b645a56f5666d209469086fa570ca3eb2e3ab4c947d69dd44ed13fa55aecd71a692c978642628c3b5424bba500ffcf28cb721fcff08fe8c573dd97164dfcc3048207f66e872e0d6b2fc8e013d789631e3505a5ba684311c1439bdbc2c4ad852b4cc0ce91fe6302d9329321aaebd480e4faf2539b7f11a569396f56aee7c6a8825501af023694dede57f995809fcfac82c9ca21edffe009a8ea344574f778000fa28f429778e8ced69fc830e0b0c73b760dd1909ec36ce2e9856ab43eb38f6d954f15d567fa7b62bf8622c57871d73f23d0a647420e548eed81849c1b1815b40fbdecaf095d57d5956ed28a159c5497790de88b69f78b51bc63034b15515f94128bc9133b3c687123cfad3f80103710d22be745193d1e32acfe6803fbf7d014219cfea985683d69d57b2b90abc55eb7ef64214f3155b37f253138535a6e2a7c2e8a22f6e22f4fa1659e4be99dbf4e97225acc60944b48b37ea7e55953eea273ca895f7b1b6fe2176ea71d73fd8529e6799e0e9b1937d4654e77bf1dd2e18d7f2b3ef644b23517bb34cad048aa2ba3d27faa725d5ba1fa008fdb272f77913b6f43a789210ca5c7980969eeebc18de0cb23369fe57f1ef99ede6ccbd342022652a159e1211bd0fbf10c931997fe18decac6bde0979fbf17a6c94675e586483a0fcdd535dde3bca7a19a0c9dddffb0617927b7ff28a6f619c4388ad19549063376292146df6f4203f8031c9897794b1381e44a822f180722c2781f40aeb4e61759582f42636667af96682ee9ad994f73475cd5a95230fe502488d9ecf5853416b1eb223e5b5d959778c7e3e7c049787f32f3d2955269cc210dc5a7b5ce683118566106985882e5bd62a6efca0e2f27b229e0b0e75508d46c6293ba9b2d79b6894ecc5a7b1954650a5cf53c4c309a3cee3c3df3099ebd80441bf4bcb69a824e0bc60c9bdfff28e6173ab5da911e7c4d15eac1effe81c0e1b570a50b5f7f432f48124a1a6016044ce33d511c292452f9d508c8f72ed044b46c4dde9dc52f4549d944d620c03a3887596c6b4f5fc261082498f595e0de231bc61cd9e989a1948721da1e589345a5698981ed959d0ef7cf811dbb740b07475bc5d1d2beb3bd20c6928e68772dce4ea5dc38f2048f8c149c3195a83020a1570317978afd6c8f3b65d432448b23b0e67c3642f29ed9acb145108eec8f87e831d324cd8e07bb790540c5f3b3001b8b60d38cdfb8da403b1de387584e1d537c8d03c2eda837b0eee7086aad26097f0964ee4f7ed84c48acb6f6b5a1a17f2a4e65a93bc42d4f210843166644366baed011bc4ebce8f39c23e026fe141d792ae41b7e087492883983a4ce6fa9592a92b01c7589e8d5c0d26e8e017f983dabfa9aa54b033f986cb2561b7a9f1bbd28ce7030fe21670335dbb18538fc569a6d8c26612953001d9ff1d7f2796777203f1a701eaea00b3171697a13768a44dc14c0a339df20c124717343169742eb56f25489515f0729c4c99cee8f64f9f48eb95af8e9d1aade340dfa47489958400e2830b0951d5c6d4cda29da882841c04437ad833d97d82f146a9f365a44df1f0a5cff66cf72f3482f76691676a3542be3b0dc791ca4a39df39e96e29e872689bde07f2d001c5bef8247927d9d487ace8156a43054a74abe1e4ee8d19c46e918ab6119ee5bb1727a8cb47ca37dc5d36050f999040a95bc1702594d554fa684c28d6677f366d4e777e3751fbb9662fef840a7eac45bee1962fe085b6cd5705bd7c6f003494950a32a183a8d9ee4bc4a4702a0d5648fc6e9bff9d2ca30301349497d0c2461721db9542a5bfe825015d8e5ba259cb06266581f94896e532ff3fb8e87c76c81b42bbf3d94af92b36b460cd92c0e791c95d996ebeb32a9672f283099484623afac60f73a0ede4e256a1dc6df6e5a8e741a1876324a2e22254a2d6f2b724b86929335c7089f3ca9d17037a6d836d69c9b5a8a4aca0b4edfda9892b962d807cea1c439324c1bb8959fec5732666fd7a5f7b69eb19443d7ba11ab62ede751ee155a2a218f30cf13718faa0eef3f538e2f33f4890616225652b305bf4430eb3b31efb0794c7c0090653df6c3ec8f22e1bcfa128d927277c35f5b330e229826f766ef93a14ce2b3c306a6239339c2151384444d19437067c47ab0b8f09e2dffcc31daed5e0247cede14db87a48f9b82ff8acb14307554e67c3bc0cb0d7c9d1d97b4e657a6d11ab00f3d3867f93daddc659048f90b8bb9365a79ee05001ec5369fb6d00dbfec7db0d0ae1e559e2bf4a29f4f19eea507ce1110948c1e9bbc396c30055a3673899593bf27a69e9b8bd12e4148989af1add1ef9972dbaf3c19b3dc9f616f36dfcd34d0dca143ecc923cc16ee05f5c5861d8ffe89892f450d2927fa62b416273b7987a361ba3739bb1477d528d21abf98cb0a8467476d0756fce2b3e40c8d2ccc285f67b299d7d46f228040c32f304c688d01c67e0cae4b5786f0ca5aa52e6f312d0ee9a15feea3d290dc2ad59c97f3db39220dd1b58291bb99610f2fc34f4ff44f56ac3e3a65184572d1d4cf206e8e9ab6726231b6330328a6883c9618645ca3bf06cd2cebff10391117178203e6b3d6a03ed93cf26e0c8c700e0327eded34f473bfde7d97c31e04c4d5ce3d307f6aaf2acfd7d19c5d34c24c5dc9fe1512bfaa67b326527f7b37dd3bde6d7d58248a1ad6ea465468be95072ee3855f92e40bab3cab122a0c4ea34140c066bfb6cc70ab091061423712789593db376786af79c4481f4b34932a77c1181745c81461e44b57778c887ce28809e1b42147ac1383a48896ab5b6acc16d38c67abbdefd74ce70b18aaa60ff07a78020864d7b56224cf8600f92ccf39220dd1b582916342a61b4eea9c5f7ef593c2e5a9dce490066baef8bd6b0cd2f6237deb94e4e428f2726c67e841cf617a33fb79cdf0e6b140bfe350072b73d727065ebae7011a8da948bac7c73223042d2adf210945fccfb03b2e8acf8555ddd9f9efa174a04afd96a703c9e31deed1920877323ecf36f2a6a835fca033c970dfeaf3b35768394827c5e25801ec37f76f24ebd1f5ae54469279a2896ffb618fc28d10069413e1a9190ae42fd74528ee75d8b7711abd25a305dd1b0260406d07fd8240ecaad612e521f479f55a20f951c9471940c7e61825c99f758ce95ce6457d1455e90c17531baacce11796f23fc405a0733b39953ceec7f0baf088005ce2e6a1a3653cb2468ce033a4a4c31b8771d1925f786ecd3bc98afea23a1fc9b51da33e1de92139375ff8211a6fd12bbcc94203034c555c5508ea728b67413f04fe523574604d28a68a5ad48c514d6ff310553f1db5e7db154da6c6570afe112db4b84868cf4ccbf0860f75ca9ca25f00fd77118ec89e1f9c2a6490242e310e69eb865bf6750c62c77e8ec96bbb15770c8236d84a302feb52beca12be7388a72427d5ee86d6fb16adaa98c3359d707126925a8469dff1805d29c8c1cfc65e27fc7afccea150165c3f3684ff3abe93040e479a4945f8845b015a150b00bdb8caa8bb0693e34a438954ec8e0945252c687d475ffb1f80a6ed94f502854dea6a37db9d65b9be428ded687a6e0cc4f84b669a5e7b4416170dc4e9e686f1b9799e0d8a0325b9f8ce39b4e898e86926c1b4ccb51c23607dd83b7a3e18adfd0e68697202aa1d51721d4e4777dcf13f1d3c971e40026938c2707084db095187810123b669f383bb6032510dcabd49cc0a7e04f5aac7c026bef1c1f9222a6665630212810f49da702c322696a17dde5abde9301396625ea1e44707851e8d8b9d9607d39c87f914ca5f9bd00d0dc419ee0ba46b7c5abb1d83077a445e383b13d625a092e8aa3955d393e030ff45913be6887eb8c4fd0ed815da6a2159e77b7550f9a2b17d52169242b9797f2ae69a986d59323cee2228095ee378c54822e104fad7717cd43883a8d3e9f134b7edc26a27528d8ede873246439c2a93575280457fa453b164717d4c7239d18804768f566917eb14c0154ed020af5e5655d300ed24a07d28e18257f64caf7b0dac85b482be946e3c72341cc14fd5dc6dc63d736870d9fa1902d41a303621bc2afbd08956128846b74ceef88bc84ca45876021bc5464c10130175172b92f1b76231c7e9384ecbdf796524a99a4940178067706ef052f84734a930a02a54aac8a97346b523bc6ac88e00b3da1832753a8286285128e5a7812a507fcaf77fdd72a2b4883af094f428a3021e4c8891529280f5594546192668def18b3b2829522255861058512acb83bc6ac0459a314c687342b20f68810179008a11243971c70a02ca822a44a0a693255baa24a0969d6548162673bc6aa8081c90006fbd47c9f0f5310712b7c285364850f618658e1c312265841bd35311f8af0018b3d4283060d9aeac3931dbdec18eb010a7b53fee0afdf0206e6095dbb7ef3357b66cf7c0cdac824cbec48b738bd27625488d832a96801428a9831307440494d0e6960986249540aa63099c2c3cd5ff672e6b216b28c264d61614a0c4f984ad20ef353232ebe179f6085fcdd4b8504fbde7befbd374c4eed18a342444c6c8a9a5d778c4d39d3c3162aa11a080948f1918278f0883f3507b6fc191b9e3ef383a4d458124d2985c8b62cde98cc355f5913d9bfbc77fd6f643c1b82284f9b466162d30ce36b6b0b241baa94995282982a8068932955c829503bef189bc2d405e60218ec53e2fb923c1d794904894d29e26534344111030f452041840a3a486142ca982ccbb22c3b42068dcb9318285e808cc1b12ceb0163dcad10d3746982099a294680f09283941aa4243da5a4b02045862731af7701910394233151b44059628cbb90811d6e58220463b4a449a23844391325cd939818941df6b6630c8a92a83ddf5b2287531271b0f581fda15b1ff85b9bc3293ad3e73ffe53025130fb0ffbbe492e0212e88748b0ef5fa926c1ea381510ca295bbebf954edfea56042450eb03fb0e731667b29c5172d298dcf1c996f5e77fe0f347fd49e7dfaba7aedfcaa144615567ef896842f0f101fdfa1ff8d7cf513f761fb43ea83fecd7568efbd8470eac8d80ae8ede23bf95237acf1011100940b1d3d1b23a87fcb863886af7ef43020673b966f5907072ff4d15a5016402bac42f44c490d44cd99c4e22311e80c478388ab1200496d21bf6fc2895d43a9d06159071c2b48b622a28b2a7d725cf77d9cf58b2f6716b2fff6a3788caad7632329ad9b8f76547e3a5ae0606040cf6c5be6ffac4e933df6a8c2db6d8628b2db68faf0eb238f419f623c5d32768fec5f75a5b2ba5ee73d2d0bf3ec6189c3f3f7641f3dd9f26b1c548a5044a428248d2972200ec184b7292a4e463cedec7e37d3cde7cd52a46377fd9cb39a359966519959de92bb8e9cb5ed2d1a5d40b2c662fb8884887234e78c195353b3ce9b0a4490a9a40c9b22ccbaa0a2688819035406a302a13842a6932439324576c93169ac070a5e9f5aea42245b1a42027ccdb044d0a4b530c69e284d7a3264094b0d4044b90a5a658132e9bee186b9265c6909e90c844b1c5d9c4040d93225e30c617e32018e326449a185d6902778c2145417272c39473cbcff45b37b694d47bb0620506b3e25971b9aac400dd617126468f31c8165d95fb0b723a7ced9b776431c9da67cfe197f7cc2bef6f3cbb7b8ed3dc9e52b61c3009f2806dc901d86f60e8dadbf621cfdebee973f35bfe2df5db8df72b30fcbdfa18be026f3c1c9cf7e11b477b600346255c98f774cd17c6da4b2d63d4f763f896d9a83995c1165ddbbdf75e7c6374da5107ddc7dbbd110c3dd833ce38e38c334e8f05597b5a238740b7be3152a743b6e8f2a044fbf2f35690a1605ec54a553ab14939a73ba5b5cad82c27ff7632bc26396a8f498e96871cbfa6bac9f946b59ae1e9137aad3a628fe108db5d8b01ec75a595ee3ad145a5434e9f3acf7c3975a7765e4f070bc2235d2f07c7a92fba88df63d32842b4628cb10db1906f51dc123ac1a11e42af3d9be4d2d46174dad303ea9247848a50d29d34c04bcaf263b4b65a5bf1520b1564f9f3f5eea5204beaae3d2959be87030f1878698bae942a620ca305e813b4a1d4e66717124ddf9d6c80d2eb07c6ecd140b9552990c52473efdd077620076ee07687e5703909b2ba93bfd83122073ba20bf9fb05a3c5f4e15e7bef79793ee4306f0ecbb089350f57535665ef915dc6817277208b494ea538fff13caf878d83317db2c79fbd7f039cfc6b6cdf384ef3f0802ec1ec9257daf5c3d7377f6a784f658d20df67b5905937e4398f28f197457a58ad6a90c524d7d81139d8bebea794c30805c205a60ff7b5e61e42218fd7960f983e97d3616cea645c2d44a593e882c52487f2e8084b7944a57e0fa16af5f449327d421e47d3e7c8f4b15f5f22f100468c8a358fb884e9f6264facf5a3d235da28e7e1e0524e2929952da86e6da4d7d20be280936c3168a5b5520f76d494564a2b8c0a783bd4fa723dc9f2eb4b199366d693ec94d2fa6195533c25edf0c9f6f7624828b9b6bfd53a8840b43db0c19e40f62df8dee3453d22c89fcf7a92a3f77898b78b403fa4da031b6cf9f25da9464dd3344dd3341b58cbb0165f04a28d27e8f9acf3a9bbfff49f58bbd7da5a29759f130cebdfcfb2d7344a3f86f54520daf46b266f095ab00489223b8c4a4a39b0ecd9b49a825ee0e75fc9e90a4cb64fe4f07ffafbea893c3f7c49a7c09c80c19ab8f8de1b3bc2867d2f13348aef8816bc04382b9265d9921392d30a32cda986cca904d90985d41735dc97289c1d634700d9e1c3322856517841e30585a8cf29cbb22c6ba5f065872f5bf4172317991c2f2b25160ef8f1cd5167440a4610592d118513d3d6d931e60483ce0802ec70044892154071668a28464c15196a78e107234878d9a20bb667485d73c25e4a2e2c2e17e7c59ff883992247543186e98b1440f379e2cf43a5b042112d2aa0b0022029a5119bfb36411cfe6d0e06d19f5ce73f411d34bfe5da06d126da4e9f9b60cbc67ce9208ef95287410e06d19f74be5fb1ada4c8e17ff8c977c15e3e9eaf4c399ab3e3ace4054e5a9cb030b18ac229e654858925a0603028a8ef83828a1ea3cb21df8bdc227469d5629715d8f75f99122a37d898eeecfeb595f6149139bc4ac281749181095dc070e9a2e568c5a58b148cb10973c7581728be436c6df9ab2f4d514d25188131be26e01f36f6026435c4170d768c7589a14b0b3bccaf82fa62be5c7e8475c9b1857318df0f298db6be5c2991a38ceec447c4f7c19860b0e84d1a2fae2ea0b24a292b15a3fa210169be9c14a493c6a32d30d89659575ba6cf07dd10a246410498bab9f5b7f689f6563b08c8355b6aae5b2de5b9b7cb61f00336564b99c698bb460ef0fff51b20d836e80eb25f27579dd618d3fe7b9e4faa8eee4363f4193b9831fafc187dc613d4a744346dfabe554a3f8073f5a77abace3ace9734407c229713862d99a07698b7071e54415365872ff68cd13eb53671beb8a79ff7542a829ae1377210b53acfd72ae64f564f563cac7458e5b082b282b2c261b5e487f9e4878d02ab64b2602d0b638e1809f1039216274056695b2e4ef64a490ddbacf6e20cc759edc5378699489c66b5d7c6596d8d686452984ae38e5109cd8cab2a92cea774c627c232231363f45a6badb6d6ea313a95814a9f2bbcf2e81e698cee91f2b05959278dd1a37b5ce1e0eed5dd7d8554bd56a71edd635512a34b77269224897131b281d5142e2c7049e15a25f9d1295c5088712982c97fd7ab05be18df1e32de3136841a2a4358f179f9f5ae21a8d8e1c3e6144794c0575286b8b28760f2c2102fbcb042015d2979b121846c89ba012aae6ec8f23dc4f2099625a7b4566b2fa618fb941867d5da7b31ce2ec659a66d38d3b46de3b82e954a651bc7755d2aa5ea5229952a671b7a73e353dedc646ad03861590a0306cb524a95b38d0d963dff66e9c697ecf9389ec4a39ee7537a8e248acc0c23e774a7b466cee6e60607c7f36e381ccf5bad58ac9c8f7e9f4ff979dc8ac5cac9f93e9d9cefd3d1d9d969f1501e1e9f92c77576765a2d9e261e161a500d34f02935884c3b5c8bc7795838a88117d180737003324fff7dcac7e2d4f4643a9949468e641e9940d4a0710a0306cb929244e2541ac9229288f49f617408cd5774d221e774a7b462ccf3a0d6000080cb150001500108c0a71400b6b9c1c1f1bcd58a954373727cca1c0c009cf297d39dd25a2dadd6de8b71a6514df32935ede22cd3b48deb68d7f9945da76d1cd775a9549752a972b6b1b9c1a138383e250e4eb6b9b9c1c1f1bc158bb2583e258bb562e5e47c9f8ece4e8bb65a3e65abb5ad380759b09ccf419d8e86dc3c3b7467c7a7dcd9c9525f74313f9cf25f45c971be5c6677a8092c896d51024366e524c7d816a8d816262d59c0ac5490636c4b524c0b546ccb123236d860c36a8658961c5634c4b2dc90454996255968d8f5c8cdd404595c58c9902585adaf50c1b124794ffccf2f389aff7ad70bca7bfeb34c08a79d655996bd2fb6648524e71d6342601142e9d610449520a6ecf061f8668940d000e2de5b83ac9c92a848a894209604c1e4098780c6100410efa956050b0414104e94000918dc2b0c94042438ba9244092f5c693ae10517ae44b9b2835c89206b3bc6ae2ca17105c95d8de0f5aea5132cc9b0c387113152c5d50a6668fca0a62b52b42482bd62613ef17d93aaf07dee2b14be5591efb362081543f0187c31b6122688153045415629ac4eb0524496ec7d3c2b2094523c24caa65409cda63ac469aeaddec7e35909c28a103466e5062b33ec3007419ac6db73253e22187f9f8b7502a52e9775efe677ad2930c4a9d46b291dd29d7a9c5781e16f1c2ec5b22187af17f55f2d60f5a5fd0d48e74b7b1bd09b2fed33f8d185f62ab00335199ab62f73e5e64bc9ad64a9c34ce767f3b116b3ac026563736deebdf76d3430fcad69391f7e5be3d99af61eebb5f7a6cfeab5d5cedbd87c0cb701573b3a3a3a3a1ff8009005c6f9b2f915c862d2005049ea61fe937fe24feaf0b78f3a7c6557e94d6b9628f32a450ce9e63a90e2346c8554a052406e367b2ba15e4ecff461a15487de9e990ea5751a378d513e738be822c79aac018c730e13a15e4ecf04833a9891400165c4055fa08a9428628771028325db6887cd76d0df6194bdbc675217d5de8b870524cb8f30fc44bf023b1cf494a8919c52ce59ed04adc62e1793f7b96a583f564db3fce9da5107fd44a5f813c444554e2e3b58254869c482180c88c49c9001ab496605a151af18b1a6416cf29d78ba3bc69cf0b2e7734e2c394166cf5964db549352ccd5f9b2421e058c991d634d346d04ec186be2051b840bb81ccb60ed90e37c6d19fae3a74332fdaa310b879c43c7f4911dc83d778c350166d34f9a1ccb84ac7dc8ed1d1609323717307fdba4512aa55b1fccef5e02f3bb27da1ca881e1081b673f3a5d4ffa1097dca21641caf021c16deb7edb01e9eb80f43dd04196917dbf75c3ff3ecf5f192d0743ff1cfa31bac0efaee50ffd3327fb3e6d22c9e6de7fbb9ced64b4dec16fc3913df7ae43a28ec67dd66720eb6fc020ee6f3e839ef72bb0d5fab8756c1e83add6ef7cdcb1a3c13dcf73cfa35b2d3d8368afbe7563e76d7e27763982482022311e00e7b32cfb9dd57f600e1874f33163e990fb6c057ada0562efa97f0306656f9335104650aad335d3f8673743db4490e0f62e14b5b510b417b27b83daae377fcd3ffb58134bfb3efeeb17cfc0fafeec52d1457d0ace17bbd6bfb922e5778939edbbbbcbea306058779fb3fef40f6f217729bfb084b84b272fa644d1a8285a8646ed8a849289b48c3432326222890b7430da5269c775bf8e75cb067efa34282d2304557a8af1b3f771e07c0dcc14c4db67a07cbbbd06e6e7c0f99beabbedb78dea905a7087bfef70b7bfc3ddfe0ef72319187435f7fa99fd8cdab876b5ee6b462fd5eeab2868a3bb90ba535a6ba532fc116e2f3483ba27615730f4bdeda0a13462bb97db4bfff07ead1a6bae85e6764dbfdbea7ff79283c0b5adfbf2b7faf5774c1fab65adaa0fa591aaa361bfeaa0fadda73a1cdca66feb6f54a54349f3ec3a1aa1e43a1c1cd5a14aca904a7b73bb2fa595de6e7b22d200f56b47c33efecdc61ddbcb94ecacb49d0ea2bfbdbd5af512055d43a1fa9b0ea29994990ee5b4b1c9a76fbbaf5fbf769ac5992ce45b6e5f3f7be2c0e83df58336ad3ded70705bdaec774c1fa38dadb5ba6624c86c6edbf78a640927506a369416a824504f7bdb5cd474450ef247a51a9e0b05508e7e074e07b3d7c01a35780dac2f77de82f341f80d588438ccaec16f1b77efbd60906ae3389e9757c5d132b283ce55be71aadf42588fb5d65a9d54a7fa3ee4f122e4f1e2d341f7556f3fa22112fc2999aafda99a9c49cdeca0693f2767ee9ca83d250b9bf6ecfa5127fe8c503f1c70569d13f27811f27891f3f543a159674493e323f80f7ee1bc715927f55196719eeffbfa1304caf3bf010bddd23950ee6fdfbe25233ba05176871bfcfc9046edaa83e4e778e5d13a3aa55b2acde43c55ebbc06e0175dd84f7534fc8354a9efdc5a6c7fb32cb495cfa35b5ac7e5a73ebb3f6ba57d89a3e64c4ac663bcfc4732711fe6e01a38bf4d0cff9149de435fa5439c94b399fc4786f11efa4caee9cd8738ccde87dfcfeac3677df882b90eabe6f16283acd7eabd0f4df41e7c7508db12fb8736202d8371cedf575d873c5e481527bfbe5f390295f7fbfe5faf11704eced5da69191e2f36f7218f175bf59ad0dcdc87748736835f7421b90f52713f82ffe848167a32c8e3c5be2f5a4676c0d13251b48c3480d57402a94429d73f7c69becf8a504a19ce7cdf1918ccfdccc72b5c6024892533208281704192159a2b9e9a36dd31964412f95287922651b45bd02b7bfe7b479f969e947684514a3fc60ae40e081f5fb0d6b0d66cf1468d136d29a5acaa6cbb1b730604ba1b16d0e00ea23febc4e193049b7c273bc6ce1ced173bc66260b47de41c636caa9899a82d34b78fbb4568516badb6d65a6badf5a66cad4db62e1721d1fa5a8973d925d086ff82dc7ce1cf39ca5bbe5f8454ed87588baeeaca39410e3f9e77bd2cf52c9fb0cd901bb7eebd17b39ec8b017303ca037efb055f5b7b95d84e43407869cbda834a16c3617214dff22a4f843fedb6e90a839521a63d49e8b90aa1ef240df54009843439656bc83280d10fef62accec183b43a4003bc6aa589a2de6cb9f35831cbe5e2d601fdf4aad84c6ce2cd9158cb1334ee6d4619b21b7ccf16e33e48ed9bf0849fe9007425ae5ee86cf5a6b9010f1bdd7cc399243bc7110ab8979647ff325a59cae654ad4669898d162e6893ad9e274313cd06b2bf539cd149911e7ec7d3c2d885171851921741e31c5e0c4ce62200391212aa8204505a61b7808c31443d6f294b56c0b8409270471d2449813c6a0e0062e45a8a0324411154ca8a8e1fbf27d302718ac09066bfa3e56d30cf2d46790164c61668a2147102142418a2a94666892822e2ad02d54b460440b62524421c50c64c822c55394145aa4208325cb8d129b22710426040cf605f17db1588c75250a48142eb096581881a989a72a98a89451d21265c4aac2ba32801d63514ea2987c56be0ff6030ca60483297d9f126c0a0c46250a2b4a1156024919a8288a5c9afd8fed07928e4dc73b84a423dbb6f9dbe3681da9773d243ff5d977cf224db6397bcf7dfa58fb6f93f52bd6733f84a4c3fbf94348ad08484a5f3e8ed691f3ae87fc73748ed54b3d045b3d4baff4500cad87a61e7aefb9efe9fb38f51db86d7a08090747ebd03e755fdbf4500fefb93f3fcbf4d4431288369a2ff5d010920ef9530f011942d291bdd44320643fd4bd0a963f02dd7c04ba361f81640402d2c00874030e21e9d8de460f49a0edb9cfe08fecf1abc01f483a322d9178cf7dfc3f2250c7220da7372d9390ecfb2caec8fac71092042210d63fea47a05026edfb19188162501c6d9d1d635024cdd47f20812a905422612392f4e2c0ea818cd198242c1fc824614961f530a6688c0c31e00c110366873bc6c43ce11d63629a6262ccd013b63837fa3ee2cb2a750836b41c9b7e08ef4392507dd8098966d8f4a5129bea185db80cafac224f346df9f1a9035ad07710876ef9d3185fd15b98726ed95e9ba57edddd350e2be599af39e9a44edf411f0c883c3edd65ac26a0fe298cb9fb99cdb2ec661acf177e7b310679b8f06f9b04af94944a1f0cb8af5d189c06992ea8a56ad9eeb05ec835fc07e39cbfefb11c1d914ba68fdc1ec0542304f768fa4c22ac1c72fc501e4d9ce7744d9f0ce47e8b1d966098b7fcf6ed9e5e99b7cf787cfbcacb738bc0a1ec7db782313c03abb5b682747e943678be24b7428e2e554a5d675dfb0707df2de78cfa9e4fe59a6c6ad87cbdaeb49b460eeaa696523c9f87f3e60f8f377d78e6cbad4441e4206ecab3fd43a0fe39ecb1b399b93de79641b96d5460ca661b0786dcb674dbde47dcb4375f5986f1b46004a38ba6e65d618bfe03042884451caa48dfff93564616921cc2b00b69a129f102ec8734c4d66e5672c0b583e44f1732cb088b868c67a5b4fab36ce0a1f9ed0c98a27a084dbc244fda23852cf70d89e876105bd09b3d84e64f9e727eac2539fc670a33637435a49452c2d8f463a0907bd03fa24f8d44171cc5a90ff10e954ac78ef9ca315f527e1fd3c7346b609cefebf0f582ddf9d3feec600021b90d0963631a581ad9f35948aca21c02dde1e7d269d47c39cf95d153df7c4d18dff765423cb1b4ebab3cc87d3e88fe7d1bd7856cc07cc9387d62e4407291832a5949b20bc67cbdf0a082fe5ce44004ff8b31e843aec1a0a67d96dd17b23b0b41c39fdd8f9d03ae0e6b572386ec6644e7a28b17d14598da52868de8427e2542d57159b66defe1485d0bd53ddf070326514ace2b5415df9c7959e420b3cf812cce64ee33954a0b398dd4fb487d74219f033d2559a3bbba9d1df51f0ab4a1c09a216329ebae0f5e30831c80edaa8360b26953d94881d9f3586ffa6023dbbf75237bfffc18ffe67d8c2e7070c030fbec6fc2ecf1134eb6bff744925d39dcc9b09f81dd7bdce397a1f7f3e97b87c3dfd3990e53dcec64bcc4f918336bd94f656ff3f96fc010ff7c1bb075a37efefa59b7ecb76ea45efbd46baf653f5ff5415c9bc0a8742d3845a974886800000000008315000020100a8703e270482898c6ca683e14000c788a3c82549809439120c7501404310cc420080311400c20c618c39c72c878009e3a49d06b239f4e6fc96794c4007ede770ffc09b1fcaadb95003a04b996ae8d0baf0977c373246d66ac1161ec605bc92043f7d8a4035843593d1aa5860ca9588e6beaefda424f6f9b554961eac8568a0b46adc95e8999120512214d29c8b1aac2f8309859aa3a49863cf3b1ce3f6358dbb7d4f40fc95c9cab2779e30eafaaa72c6c4782e48b9be2f833e3ac433339182465060eb76accf559521ed0d0b0226c46eb9bca082550985091107008fad6f59b027e52c1646786578beb5a2e97eb0e08fee0c24640195be0a26b2b898d4a396952d72571825e2d818bba389ec1bc3dfb6a1b0bc7d7c6019cf4486af3a10bfae6537c0f0853db4955f7b8efb6d80bbc79c5052f98a2969faf74c9a8b7a0ab83b773d8388c8014a87effc74a6c4ebda745dd59e635f045ce9a89f4c8a79a2cb43e0b3c74957bf9d39581b1ee12a15d81113e299ab0e905b5a0f994e82b359fedee9680b7f2d9426b7b78852656dcf74c9666b539e3742e564db2433602bb7ea33c60f036a8e23c442665922247eaa738711599a85a2839de3f42dce24b12b8c8c233a7cdf23b273a7227f664ac0d5ade691b789dc989212728d3ad1ea250e450b90f20086aad042cb3599e90e24d95a465ade152b632247139de59ccb8511a875b27b4bb66a314bb4ffbe7b21e4a3947b5a358b7abd78338bfadadf890366abd1b36b2abc7384b0b4bf606195eb949645c9c937fedf650ce1c7ea4eb6dcb3636001c0aca08c1200812cb2f3efaa2282b436e48c30af1b1df1b1d86a59cb18454e29dc0a4602b9b20f6508dca4f02a077f6f7eac732d06a4fac8d97654f2e0bd63eb7bd96d68f30c6142f093c54fec4305ae8470593bf4812142cfeda5ed362c53ab9cbffd0a1fe46fa6039dd805c96233a012b3a606fb9498384b10ccb4d46ccedc28e70f33c185aa7295905047328d50f08965be34b4e911c99f2fea067817ac89352ad1ec55a4a56a90fec443ad19215bc8c83810931b8d82c64dc599bb68e8e952a0ad4631b4e554bded344e9ac82ce677a9945ae28e09a30fe9a7178404112632e6a05ed5f7ff96c25ca8a373745a5b41bd402138d2288e108c014df897c325b664c9d37ac67d6590865f431774242bf91bdfe89afda21a9c2e0b5b1ca27601e0eecc5e594e6a6b236cec0c61a4c1b196f7c2f2f2ab3b948a87382dd6b2f45a10236777cd4ed93d572b1b85fe9a11db6a7d3850c5983065a6a6691cbeb3c76ec37ca9614101026ebfe7434b4ac730264ebb0665191a7b003cc0717fd9a0edf607ffb75a4e81c4be5065dbfdd18475b4fb407508d4bfded94cd11bee42e86d6cbcfd9d4438acea487213526c877d6650ee0525060523cca66236bae5cb3cb618e585ce7985e6cee6ef4381088c90d1be4e8302ec90a688a3bd417f9f26b0e1f74a94752d8e2eb1c5d744186d65007081b2239c4e1244b21d013c35072969058735232b442184bb8b1d0d1117b5976c29b5b5da8d7b35574fc181d6522762c40e2cf14807dad980e5e2419845fbc22b0be2bb5e59b45742f9f1dc36dab6bfd3096a04be62ca14b7619cab65e2dbb1efa6935d333099de01f1164654cbfac39aa1c80cbcc54831df49d3e3f3360f5615c829ec4514297ec6e886dc58d762274f3a63a11c78d34c0e8593f894f509a4c86af02ed161083c4655ef64eb31ae50325d6f4d3b03ea529f4666480d97c3c588b29053184fa9da9c779892f3720971415307b9e1cfbe4f39e5695c4f0a020d4791e1fd30c3cd2ae075151c5a561649fa2d8143315fee20d256be9908c280feb60b764a1c32a7dcc6dab9c129bd1d98fade83a5c363fcd413be3a605082fac8d618afa0dd3619c983cb57d8f4c48882f12ac4c900aaae11ec72afcf48922ac759983881f176ee38f5363b560cbcedec7a38d4646d4087b215f3e85d988dc7fb859187d19c6bc501b0a887c153da50a89dd6ce0f61804a1a5e35cd2cc845ed68b8f238b198610954c60f618edac8587e57e3dc4108c8f92b1bca59a6884d21e5a658ea887e94f576100da9d70121fa5ce7d5236d590d42be5bdf7121b423d5ddfa63f3b42610fdd15bc77ee53b78fc8ecdf7f34dd45d907e210f439162543b19cec88d00562290174558d166d1ab5240d229e0226e38770e68b38742579947e7542b64e1cc836fecabf2b943f584b4e61d6c4213aa40ad5679b54ebf406a921aab35db28b332d9f2a23d4bfcec65e3dbbbb76a506d3a9996e86674cff1a13beff720f054260f34dc476d93ee8319f69c863c24431ac8b6852b7d806574a6992fcb8280df933bb14ca9b0a8e883b124391ed3444d3a9b548f274c807d141503a907340a43d1ce0c0510341e1188879d4f2f224ec3b22a49a893e5e4b59853baa85e361cfd4545a53b3b5c4445aabdc31a7837580298e98e6e434b811f33fa68aaa76c2523d42374af45dcafbcaa65c9608c744206fa8c6d46c025d0013e5232db209b3e00a0ec0ef7ca71380673010ef2fd8877a4f0bf4cce566338b107f45218a74ff281b14a135351697a08d1a72ce98a49db45f5820f4905f2b4755f916a03e446ce6094d4ab029bc03e39965f5ed3ae24164a252609f56c820971ca464928e297d1fcf1b7e11336657d652693b2844930277a759cf54bce1dd17ba2c0f181463294f8c86ee3d79a25569e736d6c57db1cb58ff2a3f060a56252de31f5e188f0a1caf05d9945d085d9151a730e745a2c7b6ca7af4e9310091c49e062b999cc9b01e41a8eb4a90ef324a8aba37a90993a4b8cae5d4b4d832a17e7ed540bddd6f91d9878fbdb169a48b29b55769bf45d4263e72bcdf88dae08069d478eaa2b1fe0906b42385d81d84e983bd28681532645639acd4a046408dc77701b4621f313bd0b47c52217155fa3893b0109a96cd2c5c26e58ced380ebdd98284d1edc6ec49a397b66616a142913440c7f1ec38d1384128e3776b317692386f5b60be00caa95f14356c383f51d207f19856288e8c1e93cd727cd5e8b3d6f000231723107257168fd15a7fe591706d728049b1d18b8f90969a6a51cb6230c15501a822f0e02f5e2ea481cbb96af30a8ef34905cee87bd5fa4f595986ce0e339716408576e1d5ca05ec7f845a8aebe9b24b5177c6b208c663adad9ea96f122c902833496505b1ea15185fdb4d4d7616c541b5248d27e7c23d61e194476dd8c087dfa7c017b8605d0d33c9a14aeb2201709c24d13db449d41bb9f6bd002b407fe39158e3877f413538bd4d8d712a3df1e06e13865d18a0a6e08ee22201c8f46b22a549e1a07522125352e003573658e93d7aa90e7f2af9668e9378ac8c050f8489beb744efa75698e0802009f30173e102a3a4bcb29aefb2c9521229e89d1549c4d3949202b4f9446edf125d82800329408548d1fc2e60da39be98e48cc1046875476c2940b3f82ea5b8bb70d14e5b9b232a0bdebf4a7545ab5579bb00f9fd8e6ba9724747950fe7a330edddccebedd1a06ca51ee039cc0633d68b9e6ac028155be29e1a86c5f6accd2c095413ba36e23a98dc415199e23fa4057e1c180a848c5d7b6a1b8918808337f725723802a0a30873e6cd103214310ccd228ed7ab9f788a36d5b1c89de2c55153e9fd9891408700a3024e41d4432e1472867f881ed98f7cdc0f7d5068c65e51a5506fb0278fa57a9b2a09b1ec3f8512aad6a5aff93444deca039a67c46a40eff7d2ce1c3ef4ce080a12752355c37c9a71b792184cc584235fab2504ab9f4081c046656f3b03fc17c4fc8a22f2ac30e0b142a6aa00b4c3d6879cf185dcfb1d7395bc23fa6848e78e67d1fcb427492a38ab4828c9db329def85dbf98f60c13bda7cbf8233aec078945a8cba49013e96790f8c7010bbea3e42c59ea58ca7c7db9ba49da488bcb08df31dc7773b4aacde56297a82dca57cd26588b6a4cf542c3e005a2560717a8f07e078c44d6a16a4c1334e04dddd9cfbf0e3c3ec64924c03f12db8b7890d48d99b2e3a6f7b3a92214c0dbbcc1e9e1eb13bc6e966fe57cc28b20205973b0e365a31a9dc0c3281984f4701dbfbb4e401279e26b0f0c30391776e07a482861ec3c52f5005f58c27153585fb8460831203afb76812fc88d7d2e25660839e80e7fa26ce0f89db362c8c03da6d054914053519c4c15bb56503221c647936a5179743e1300e08405292f7bfa901776f32b9263c0c5e68e6ae6f2f49a5e6e20add4dfa1ca0c0bb4be4a6023d134420f341a1c98d166e3ba63e60ad7d7268f6d5814180154f4c8114f4a091ea7bd94ec7e86bc503fc41d7fbf474906b13935d897d7137d7700ebf7d509802258adba6f9186bb0309e3fd6480e57cf09087d41eff6822359f4fe1f6ff95c40703fd153e3596f89a591fa9ba07d3a9373f2d3497eab65ddc6b7a68473978d34b4ce234b6f3cb724bd87e42406a4c0dbe52af90bde4cd93aa10bad2d8f4c4556714594bb167058aa73d0d33c85d4a262471899b102d0c03ffb3087eeecbf180c0d3e2e92ac60cd841157cec0a170e850753dd24f70210c5fc21cd8394480d777206617e9b465422861f24cb6d104f69c310c824dcaf9eb659c24ad0940a021e5adc73008230eee4f4cbd604915f7d5da2110e0eb5a00cbf02466406022c2574d3dee0be3cb58c545dbc899138f6445139b463320692a483c5f360ae7acdd7b8c8d57f924dee442c67ea7739318cdbaf7c101f3cfa8cab89917aac6e0cd29771d0b773fd9935cf91fcaf5dc47d7ca90d93ba8a4fe23a3d13f3e7793070ea1072d97462e093d1b37550b15806fe41a4052169c7b0e447e928e72a9af63a05aa3511f71a8a132f18968a189b3427dbcb509eb34777d6cee9b5c43baeae89379ee85f1a470363e613666c427974b9fa5a2aeadf286c998d7ce2b25c3608e86a07c426e0d309423dadeda397cc0d2213d3d07ea638edb75f17a10234852db46dcbf200442b6627a67819fe61f614c19071dc7efb0cc3b2bd7f87544655c8762831f8a29208a45b22eb3abe440e54572d48a23f5786d9d0e9f779d404428992bb9438f1ee14985eaf20c1458ebdd9f9074d08c960a0012f2143925c7a3e6ee9b016f606806cdaa66c25fea44146fce439ce174e52a7d10906795f7cddca5ded10ceb78fd2c0fce16a94f089aa81b0ebe31a48f718e5eee96013262d132d73646ba57064ecb93e8c07aab53a831a578a982dce273391f48f55ab6c0cde71366eb7aaadc0c34b54bd9e1d46234a766c130161b0e7d2cfe411976177a58d552c58a3a66b5a57f0a285540b156a9d44141fb4931b9ff333a4445c5a4083730b902b6d0bd35f76935a03d0a3d4ef6e58ad58089ce8ec1f7847b9628ea5f51abe816895782741b3d41bc2b3d44aa31bc4340736c61a776cd6a063d15b28326f43d6232a12b580df8cfe7f9c4eec0beda98a1872df102fac440057f12d9643c556620bec80274ffced8193648aa5b051f15b67e20621a0f8b32387e1e03b48b83e4a8de77feb410f4d02de5adad155b8077516c614c2079bb7aa730d58ecf3fd9eb2cb952d14cd9bf0b7e97b034c07108e0f6004cf093a27ad64a0586657c64578732ebd896cb530665740daba5281542b66794f000c593546b89f0409b46d5d4d4be4f1f7cdeafdd6145c19c6afe6aaf286a62e47ba019ea3f840673e85c824ae12b69ce1a38b58f1c77843769a4078dcacb7ddcf5c1ca9bab2e893bd4330afa4ce4b2e966b61056ea3278c9de879dc2c3b1ce9c57b9aa57149dc9220d8ad14ddfe81285f9b6ffa9550147bcd7a2d79680e9ff24cbce045e28cfd65ff34fcc7946ac517a243af5142accd4cae01e735abe13deea7c001b96e2a6c57089abaa93a3b671e9a9253c88eac49236aa2e097c5effac0f92b1ff484e82b3ea08ad47292e8efb71d80bbdc98a235cc847ae4d2f6eb52582978dcba61d8333bcbe9fbb576aa00e7c1405159119f1c0af8134a18d8ba80309e63dda8c0fe05d4ea8bcbc19f034a027d7f663dc3422a7973edbc341de4e40d6d812fed46a9022c663fc10cb2275b45f8da4af80b08163c4c72dde40f9d3e89032f1823b97a5b975da9065e0dac265ca8be6d6a990ac47de172e61f529c9a330e24c4d461d8155032fb8389f370fd0cd018cd864c1aed51355f2f777a0367041c7c6ee223f3d9c8a266040c612b37f388139a8752da2084ab1d5cd78ef60f1aece08e894b55e70f411300f86829363060754fc09ee3a39102b879d668aac64e19f9984f6de80883e6cfe8dba28e56605e2378c0ea689c9ad5b1fc1fdf782da0f54233771c2b43425d7416d9578f704045aa6bd7a07c6b6b9b2b2d87ee056788b0ecb43be8afca4569383c2e269f2b6fbbeb21661457264bebecd44ba6fc8f52d8757e43663108429c1639e58a3d8b9ea0fe10e481b1d77d0fb27756cdd104cd2b96c31467be106e5b371a031395f94991e7b360c76a01710e1157f49ded9216b23d003fffb76b87d31e45e753eb6a69656995957f6876abb37032f2d9e4449e2d575e1515aa7bd1ed5164330a411445035f83b43c53149ba2ad61edee20064b7cd208ce5ae0e874e23fc405dd03041b5b7bd86db449fa159f1c21b4afc538a77db44543c27f4b6ffd82c751972664312f7729f8ffe058e03ee4f5b729f8366e13d52a31c7a328d4ef086e60f6cd01c3d420b22d9cbd63e9c0d224827779628825f66451e58db502e611edeb249f2eedbfb3bf232f82596c2b0d66461e5c2cb320f8e3bd6215a33962e8a82bae605284a565528af80b0825781bfa5837076092104425b8f6c22d3929f844285df30b1262eff116ecc7d31a0b18d5c62bd7dc138b5462fed37025e14a8c5cd52f6c77d5c0577053a291070dd604f25316048410df82c74b79aaddaafe539b1201c8216bed90e31f24e851df926df50ca37004c94515c26c7175146a1c8d52a2a2582918f75723ddf27c61dccf6d63c50eb52badd92707d719c8d575bb6ca19db761f2f874d573147eac19ee263b2baaa214b54855a3342ee3c4f040deaba1eff87b248223bfa1b390d534d233f1bfe2cea30bfbee52c6633d4a23b996b1d9da3a440f55876d4d7bfa43d54a0f2450b95004055405e5133eab9a1db3311061fecfe2dbf9d91c4b4e694c08661c91611f156a7a360f3817f6f15a58798d1ab10de163cbb22a5fd9ecbd741248ecf9a37fd7c1516738ffa48e05eb42cb7f08e5757bd005954f431f1bebf49c2425b16142805bc31a6e5c3647c18b38942d7320d30d59ddf9d1ad149b3a7aa9fd14d3d69e1189ce1f03bdf091b62fb9dc9733adafe7bcbd68931d222a213c34bc031ff1d47fcc65b98c7ac72e9c806bbfc921068003b71d71b2086b121ceb5ae40af754885ad5b89ed28170c66746276a00114f31b98b4b08cd1e1210860698629511e3a2543ef3886ed118ee2cce0e9299b545c3f0e2b121420e4fec777d19654fd912a825d199764442d9693445428941e313452c9ad99f0532cec05e45b2d42ae0439ba0c386be20e7b6b6d7e641ecdc1e03594353eee90f57a5ac246fddd45eb55dda63ef112d23a4b9f4eae580078710aba23f607cfab2e1ca64581b507c9c20c80488f14b003ea5b64fbf9af249d7fa43047f6ff127d1b64c15ba20ac42480d016bd32507ae731f895506970a40b3990e8a0fc8bde0ced26725d31972d9817c759068fbad8a5545a9c43f09b4330a8462889d164a10c3eb8ceb36b34147bdfb5708939dc7a65ce969993b96ff25ace26f345f0130ec5012dc5cc2d03b07ac7a8168752f4f05c384d5c29548c521b8d5ef8cc78ef4c8090e86e28bd7ee74417aaa14891f1309b4eb2370d00814a784b452ea2763dc380063662ba282b13ee89bcce724bbccb5b8abbdf65e066ec1de33acfe84e366f81dac6aff808360c81b847a2772d5b5ae13b1937ace60b5f4385ec84b09f839472e6f946596dbde1b08fef3aa44195695db3be31bc72442d22506f3273ad9dcca1d65d9360310781f08e7ed604c6905e38c41d30ceba634383752f7d91086a7aad3d07375be0f3aacb52deec21dec0f2c7d855d9d59620e2d37106bbd7487a742aa1d23cd851751933e80de3af8300a83074a13d1444312f8036d9f2e4256b6579bebba7672d0de46849bded2f48170c77b530312324b0249d2854ccb7df5e1ed697eb8fab4102090bf48b103dce625149bcc154849f751e82d03209c7188c306c7f4328ea51729cb558d1200599b5690079b6d5c8b6bfb69c9e009b1f16d41a8078dc1df14c8f20068fa246f75a7ae2304ace0d447121b83197e328831b953cd39f9344aaa8c50ffc806c70aefdc0c19d385bf78c0d29a9c87a94b3233bc6882249f81275f426e268ddc045a0f4a9ec206b61b6ded41b68ce8eecee4a903ab51d4cc7dfab9e87d5659b3b3d010034124ae467a363a371a43f7762733ea6082401149d6b68ecf5bed99c6e952716e6a6cffdbf7a3ccd53949410662549f0cbd5d89cdcf71534e7afbf6acdbb403c921c35f052e99cac04abf12767f02cc44dde369677fd1ba8ba95d719ab3d2afe300cb884a2f4eb9d5f835e072da4e9269419e03faf2d397e07bd8ed5dc1dfef70e2d7c10deab30114fc13b2c57e2394760edbaed8976e887fac0723054f1a3b7ba29b10eb61588a3cbf2aaefb3363f617b40ee0443b21c4ba5825749c78dab0209ab12f5df184df5ed6f8fc788816079394a55269a19457ac99f86bb8da5d2766b1fca1aee6ddc2b9decb59961e4a0f9925b9f6839fb67bba687128e4a1da3783649e6443bfde3f7d6173f32cabe3d2e335f6cb1ab970eb37b9a27ac7499ae5809aa5340a63aef294da64886b484811c351f5a099e63af2e5112523ef24fc0c3058d2cefae1dc53ee9edf0156d282a58ce7026c0d108c93d1bd2a801b1336e828d5c644054addab07eef509a662dae4c891328f17fc7faed91869aaa6280eeb16a4558bd6d7b85267c23f5f1cb1e14a34beb98dff0a3aa9642e978864808af94a645df95da37de95dab2ff279c3b313074531010907e2c0ed30da51fdb7b6e97c532179d5855c7a16bab1718bb4c09dfadabb30f4e62b949971ba86629f69d1fb9ebc601299698de33fe1b9b32ba3a3657f9a9338d58fe8c6cea67a8c4f3bec7320d306fb5fd022e895cdde67bace28e631416f0e198671d91ef782ff012efc9adf3998ffd554940003bcaebc92da7e6640f0e316a0617dd5a7868821eeff5af720c4012e686818cedd6bed7f23b735c80c4599e42ac419c832490bf1f60f12726f4b5fc626e0debd9d438a9e53a61e129b836b9b542e88138225277a692221ab4eb10d1e4e249b70e3a62691e64614e00a8aa7328c28f022954ca2bab62670ec45a563e6203f24ad0ba1cce71d8ae81d225b2019dc7c5cabfd94ba7bc2751b5b9d5a0b6705ece4c118ed26c9cb5385c8ad5f82b74de51e35cf9aae607ea47853f209352742c8a4656a5af0eb7fb81b088fbfe36e4ca2335c5e3248e23c6aedc34a683079288b3842550c611a0e526da7a050d1a4fd9fff28259b0f12aa1bec6895bc82009d36908aa3002b0a22dee98d66a2a003a8de487612a41d5ab31283d558835e29d8dee91de408c00419317939aea041bdcf06c1a8de43cead5ad0107d382fecfc4ea5ba8466bd2bd2a9b9912efbe9a202b7a8009340a5cadb59b09d1fc0109bb47d760d3393d962187f55ddc25aba1be53aa56fc1b08725ec9e83c156bfc0a1fdbc40d4a653b6f07621d74537c1ee8a6d6426f0c7f8e0f351bed1a67da1b9130d07ac0ff297a7ac2ad3fd3ab22695f75c26ded60a06ede5f09f44da195ebaed6d4ae5f614330703ac5ccfc9e140276cc84c62e9682ac5bb82e8658c180e37929c882e46c4186b4be19792a7bf0860e5e90b5614fc15eaa85c4d8b4ddcc394104627bd7dd5d5b53c3ba9cb9ef8853f47d2a055711d5f5c49668d95516310008b5c4f1f36e4541e87b3a2b9de45b70b4e6a5202e5af4f14a6519fc5ccd1e77652467b362f3938c37df243383cdbf92c3b1b2691e56d93b69be814e859a7dccfb6c3233a8f646e47d3d2a033b64f7f9dc427e43bd5f3b90b4ded87216fe2ff05ebe28c613836cdf30b71274e015b32ae0407ef1327c12586a0b24e4b961eb3c09cd7a364e999815f49d8870f21dbe35312b5df88046528cf6c8ebf4e5a86ee6ca3cbd762b16de2897362e1520016549755c8f4ed35a5b0fe9a5924e99a089a8ac7ae897f0aa438076e0503aa0cbd2cfc064ffbf741d3ad674464eff019e7424e229ab25083fc826b83ad606cd5a65471b7acebcda11032fbda7bea4b81e05b649983fe2030202fc94537cae88be4a6006b8fea2ba96152b2fc048c83ec8ccdbd546aa71a65847e8020621737de63a1616e35cbeb78ea1081ad632c2aadad5262edaf1fc8afeb28a02efe4e8ccc4e2b32caa57a54cded2b99cf48d14efc53d896fe665c79232f92034735bcd09828538efa9f40d8f5e0238c1b5c6c2bcc485f816cacb387a1c18f538c299ea9bc5feffcff3057098c067d6b7cc522208a35d92997a40a9b658e19fa775b90f9b7bb02d05276c185eb20b99833ac0f06855e39e7f6cb9e3bf9d689ac92fb1da4ed527c82e343aebc5493b70ccb0e2d0fa268267646bb22dff0eaaec208bed6606ae2d5a5aacc523d9d15361f3b321c30a93aa7586e549e84a5b62add0dba0dbfec5c48ea8c522ff3871759e6fc7e38e0c2a3d68efbae4f6b78414925f294a3eca1b270ee7888f9c503925718ff15501066d5cf596b90fea0f79627c22c43f211e1a1c83ef5e25a4fe096df4f3174ecc300af0466d4ca75848bb9b309d61310a38701f55d47154c6bf0318ab1f12a2d0f6917e7cbe80a0e60880fafbdcbeaf2a4d2c68ee63c43415304e925a87b48d0257b6eacac3688e6316545dedc7fc04d538ab3a99af405b75fc00dd71a6d21e58a15cb8fd7217362ffc44b9c7b86d2702d8175241f48e7b9e015767ea60e54b193575620d347dbd4fccd995bc36d9002d84c656a48eab359cb09295b3676f2da9b45aab9346af02ec4e2454dd060d850a8799fbdd9fc45df8110b6090d41332a3eb472332336c14257237150633338348ad092ce4bfdef00ce468f0f0891fb5fbfb6d727ea4583e148a79d20e772be98436a7f591eaffdbd293a3616c84ba323f8efc94fffc423c8c194c029e2a9bb6a86a07994f4f2514834fc09ec7932150a8bab55e55f3f78dbe88f40cc2453c97b63b6382ab2a959729815b3008d15d6d31d84af7dba237c0b44689bf62cb66e92aedd882da966a94e9dadd8a4ee699cdabea32bb16b3941085aa1cd77608ad4a244320af799509ae97435d021dfa1c027ca9f6374028951cd54ebf730f67608bbc3ee8a9b03d59121107e0510dd633b88654a1ecba6286b8e11cf6181aba45a3c196d99809b9a2e1668ca2ed0382b4812b5e3d7d2cd4fa890a3c725db5f90d36ab91e6d60df7d033cb344ccb8f06c33ad8adc5c94a67dca7553a569a55086a376e0398482aefc17eb4320caa90263b694efa0380a558155c8ad78468e384e5ba1cbd4010b61a335ca7b3b0eed8358ec2d5f7b96af7f401f3279eab9861ab938b56abe302f44592c19540b80532c0dc0284e151e5208b525c01b55a71e2a9417ea23d6edb8d358c70050e8223a87729d8ee6a05644212f854c9e2570506cb29405975d026af131cda706ec3bc2fad9bd34f8eefeaea63e6444abfff5d5ca587635ba708df63ac989a596767262573a45cbf51cd1e7ab4996b8586019ce9015153daf65b281679aa2c1ee1af6df90a4bba060fb33eea1999bfb584fcc1caeeec362c91907bd50ef361f7a2b75bd95e23f0a4da1509d8eda3bdb9f6ea64cb95ce3e08607ce7602dd0b5900f7d93fb984fad9e481ad46dbc83d284dc12d70ff9b693bbbb6dab1839fa7f7ce025584cde5349e2b3d3476812e6a2031c83de8e3bfe881b821825c59b03cab6ab752f06a9a30a7b65de4ab21336e42582e486c8d48c2da06f1a28ad314d4b177cbf51856e91580e8f4212f8d6d1334d709fde222f8181404b553be5a2660601c71a031bb6151b5e03d44ffe32937e9b8446826c5da200bf76d4b97e657ec5ae824e240532fd6dc723d3ffe25ed82447275cee2b16490ae89fb63e225d1794a77615d0ff743003c1254540de8c828e219ef227a7d556b51f9f3fba54bbf4d0081dac5f9369e940b9f31b2f4866580a50dd5ab9247ec4189ae0e401d85516a2534e002082702aae996527744b7db7a13e67d5d639e0c0d084aa323ec8331c75220fe16205411482da3d1e019827ce8fa109158198857ca736122193e8be6e608869dc76a25efd2715a31eba1c9118bf84d61f06f23ac6971d4e809c713ae185f6c4c3d80907e17098b739e615f0c8dceaffe8d346ec9348280cbfaec969d577aec1845980a3801a01b30032b52888d91a89c803f3d0fdaddcce2508e0452d80a71d28793d856d5d68e192b650a4f7a8006774739d203be4d08401843c0e8d974e6122b9ddf380ebf0c6f8d88d74619053a3a61deb9b9e14b170a88fd0080668e0f4518dd19a45671bfd6ba5bebe79bc486296723110693d09a35b3987c2c24a3c811e48327c1d68b7817dc4fdb9bbbeb1b3761262039a8dce37b52aad64b281dd2a016d6f60fb061173698dfd8d141859a3d896b9bf3736334600f23476c5098feb64513a539e5c3b37d1c7a739a827118b2dc9c3e0784a9a8ebbd4d33542cff285eebb95997db777e237138aebc7ac1cb6c5328101fb96681d2a2210ef63190223d909e2b1bcac4790ef748d5acecde4e0f7cbf243c3772a37b48c64ba6d435a47ebfe4fb9cad537fe49d4ba07b24e51fa1b0f1fa15d304773c41b422a893346246de80ca71bf3e91b5f968f6c9951419ec1849c92a86bf9fa69383019a11dc9e7e5a240d66efb76c31decfbeda93345b0dd395069d54d50a0a24ae401bf5132d85f252b358219613d4cacf7ae0227ec9aa5c32c8f304d8bc38124dae220e6ac7cdc14b17b44b1f1df61526638a1cb9a289a3578cefa650173c594f8eefa99d20f9447748389574108718098969bc2f03fbb94e3ae0ff6e26ad6a774b2e606f16f0f5eaf6235bf1adeab6a898100f1ef08639e018353d015bf9430f222bebf6bdea7625d180fdbc6c159ec2e99ce2b607d827dab9aca8d82d6db302cdd23784d8002d50381a76e772b0eda0952d8d943918ba06a22ddb3028217a07514dee8d4926486994896d31b334497da11aa28aca62499ac8d20fa0181672e057d6ad4ec7d5e92dc4ccc5d5168fb69ed4927422597ede5a4a1bcbdf6235f4768aadee99972e5c740d82784c1268735e830001033345de1ee965080f35e6668047b215da61b228af3955d0d3b2afe68c4a1c2d823e229bd0aa41568f084571eb4e175003b8b502390b628ee22102ca746a05dfbdac3b65e0c9fe3ef901935e3662f4223e432afffda521d27e39fa585e2bcb4de3ee496daefebe35951a642f22fbd06915f7f3d20855e89891656f95397582e1b8aee9aec7dd095133e45cc0b246e4adc52f71926aa0df1fc00e221a420e7b3e3cd19743c55514331e034388cc0ed3b66ca00b8c4cc573c5da5c0a0e29ee675e55006fccf03dcb4603c595f106c3dfe1a7f0c2ae038a936d32baae170d13716b3dc99f14b73f8277eb01b47ce3295bcad7cf25d7a549bc1187cfbb639dfbfd38392f6a0c425e6e0ce38d4650176458fd2cd6bb9a7041c81e53239d723331bc2da7133fe43664970341b52259c5e78e498e91fdf8aaa3094ef26cc0da971fdc4705be042651b252e5cd9faffb0ec4fcad2ae5b27147e723c9f079412aa69eec1863935d95d89203e3aed25924cb82e023e94b9a290ed16ecb0c4b6520563d101447413a2daf17b139a489cd7f34fbab38c811013ed83dae56fb7a085f9ab3379c86799ae0f84115853e7f614d62496d5bc29a62e3fc4665090244357176e5c65770ff50766962e886a72811d7e55cca0c3078c28fca0393ffc62988f58ba5745d72eee1fea3ebb22f1e83f40e712cc7c6305079ea6ca14299cb8e7db69ab6dfcd818497e01082d3bd4095e3b449e44c9f595383e3e1a42b220ee1bfcefee013e9a79a9b064a55c0e5ae851f4d2717dd6a02f0e27a2de44d8d7dbd4a8658a10e6b5fda32dc96a7d804d7744982be6e022cb2afcbc84dcf03f50d0c65d36bd4a7e665ca3ec52711c39599cce7bf1b03bd4178a6308efd531556e0f9d0fd7f74a487205e40090c8aec51dfc793a002195dc2e6188508362aeb34801c9bd3dd972ba1ac8f35c8ef334fbc293767ad0e1db06b69ce67691a16a1a5dcabee11bf218e36420b4935099d3609f7d7672ba95205b9c454911ffb7382db9b6ef7dc89d140390d24244106e3f3cbcfec265125fa15bfab0885025197b3f3c81b0f945810bc09d6f9393b30765cfba890030b4b7a00081bc068fd2b6f7e8bf9f971b50d036d391787e1cf8f3c97ef463e80589ec0155d48ccdf58608ea5ec0358e4a7efff6d7f7bd947cdc184b0fc9c22723e404ef915c035766e379cec645e6333ca0e2060e9eec14fa19655c6072c2130a6c64ca7c2a32c9551e5dc6786f913f03b77111f524af3f02dfda3562b5d46689031250778bddb48453a623096cdc0f67f7b4cd67cb95453b7dc622beb9d12d1f3f25410180b732eb9dcf6cc6c6d5b51878e476be95bc87df06d91728344e23897953a97414796f275000b9eb7f11e089dad1e3230722aba960128e47289563fda6d4ce1878ce3b1d8d8b07e95b76490370b9d45374ba0fc60dba5dea6b58462989af71908d794cc1d186f8808b077b1f4db582849812cdd38fc88adb81e86caa723eada2214179177c231e4aa42f4feca9629aac4d6fd45ccffaf145843731acb4113399c828ceefeeeca441aa6a2d68e8935282c02d903989393ee3067c130da2678a3908636bbda463f9ecbc0aad564bdfc4a460f5c9216c5699904346eea36ecee92f6bb1501a931f1ee19ea1152ea16cc4696e914c169a1bc70af06e169e05b99d056867aa155c41cdd26a37ee6e66ec4b53bf68e4fabed90932d7e240d1df92de2ee8926b22f4693344607207ae65c9e1ca986f7989eba6becff6d8c9e037e047fd95c7f5c77a86842845a1ae7c7855d584d72978bb094d8918b8c8f8e223329cca9e9af5cb4bccf66cd7215042a664041795451e10078d9d2cf735de32c24a4e7d6b1771962138c16c967a578469c9e0e2ae9b65ba095e4e17d9e44da139bf5fc41963be7e3d4419a30e954dfca49feb01727a710c4c82535078cdcd5d0de29370b1b4a5e242c67a6bc2cfb9f67caeb567fbb59999e39b9f0d6f61b90f45733c5ea4858b149e7d9a32c65fcb338461445820ae61c87b9364787ebe329f9b404850e1046cd380b36c7202226b55a9d2229c91808cd1679da2b80aa73137bca3535cd05f239a5c084895c29b23a8943d9d00eccddffd5b4859054c6f982e06bd4e8002795471c75b0363bf64e91a0a1d7770660177e9d90a7edcfde30bf721baeb5091173484a9f95e38e36d83acc9739326575cf70e4fd31610a795d55c992182fca28904b9594a09ffcedb4866bb2a23ac601ba1bea2f6a827bc55b0357956e750f05df09621dbc407c3dd636fe4607e1ee22c5755a3e3f83750f22592be26932cb32fa353670421922e4997e0c17e8bb1a606dd1607e0ba3600b8b0452080d6ddd1a6095bd5677790d8bf9eb103a24c22b1ad41e77b67f4ffec11c917ca10917162b34b4163cb7e4deedb6a674db396b5a5e1e54a1efa8f389da4d94e7eeafb7ed6dc694c04785ed5d4f8d6f51bd2643c22b20600a5a4d06c0efa8b4c3a1356a8987505db433711971d8c100a1f143c382e3b40acbb3f4dcc08061fbcf068dea547840c01c7ca885440c7298deeea68ec73c881049fbb517578da74d8f09825f2f55576da1f3fae2585bd013904e60c20b1f68cfe42d14394b90d214efab774964f57c2235d7a900c4ef0a26c5ceadd243304a9a8f773bd92c2ec5af7248e36c39be141840c49a37c703e98ec6cddab97ef15e85121c5677fe4454b940741cda6595c4ca762126e0ed559ff3789f986db23866e3f3d8f1de2154ca45fd30b31928a48ee18b3918b60b291cc232b903444d57d667ca5ed09433ead018aa31a3caa41e610e66d75a9e388328a59433e9b8db6cb8e0adebb52f91fb3f5848dba5f05f45f8d370c746399a94948d344ba8961fa72ad3a580c45e5d4ff394f293518e3308aea2f2f7ef2ab82a0a9a19e062f95be60454c83619e6e997b00b9d77ade6ceb7ab1f889af7a995bf77d03bf6880309b81def61f05d965b56f89d7cd85b82a7c62d7336e20fc17ed110b8cce3006921b3843e1b189f5ec328e57cfb13099004433d2ca48de41a41bf70ec8a986771a45b70fc16446ad2775cd3564f896845b151177abaf2aabdde14c0f7a12dd69d7d350e52d4c8e3989c6edc6398ee36cd8d2de624eb2a53d68d11ebb47641c347ac13e5794b54a7a3d719c14158d13ba424217fead28a72edb4ec378da6597907cf497ab8a7f78bb09ee5161916eb942c30c7587ef0d9564114fc1a1d51d1fcfba0836f7bbdc9dfed63589c48b2e9ee7efdf07b95486cfb8f4282b119a2f2f2084d4b97cde54c628b75ffe0e5c19b3e74383e1f89b4dcfd194677a3c6fb087d9b2b4de2ce384c39029c9aebdfa60b8635ffbfebf007d7ac7e3e4c86e94a67bbf488830e27bd08377e0f252706df0c557a7d78fb44adeb1bcb8489fde21ebaf43678fd28f7e957347d180efc1e42cf57f9e2099e8d0f09b5653d053ba8bb25582f530505b834c3f961d8f9b8a093d31f78c78ba8129a323531315aeb5b65b433ec95c11ffaf901077bd0ae21409758cb2d5c499ab2a861f7cf1abc8d663b753653cd7f2dd523c9f81af131b3e5ab8fa0b1552d7a7293004d0ea9d00f7e37dc82033a53369cdc6014cf51e7d9bbd769060e44f27669c466f2d241a6462895dccf6883e54277bb32a99c0f6625ea82b2eeeab5636d25a535fdbdbc333f024e1e8dc516f17128c3c69f8483db83bf062fb748689136ec437e589d58026b2f536a352a70b5920ff89e92bb964b110d7f1467588c9f6ddfbcca98eb3fa2f66c2f92ed4184bf698cacb29fb088c7a8e5274d1e4feb437eaf6d3748ae99429fb8d8c0e758599aa017233db8d2c1d3afe60165b57a031417dea11a0d0ee9ba3d70af2797ec130ed1d2c0955f5f12e72fdb830d90c9022d5bc41839182a39c9d980764f56f2ddda917fdef9009d2e0004bb17fb5bafad869f2be5e92d4d893b0b7661ab3bc8764761e4ce77e2d359e317600bf18dae87c0fe5954eafe0bf96621b760ce3940028071e2dd1f927ad766abbe4d3dc50cef5bb8a385a04678e0037fb08e7c360a03f5a326056d623232424f78fce65dfa24f13665dd12ca1177d1b74b63b4fe98d485dfba385a0524beac389dbc33b9efc7fab9d0f67cc07e598c3e42f77dfb0b0376785370ccb7df4a1ed273c0cf72729dd9b9f538099555ae882a3fe1b06e40765c632242163e686178fa517d029fa2051da816d5e11e5cfded2c5b7796802259c1a10b620658eb9461d85e0eef133db967d914f05479dff0d555a7237c9d38ac3d4b35135dcb67e6842ace1cab9f0321c0d5b178663f49ed65817be14a2c07480fa4895623e73fc816a4595a7f440a27030abf6d8b3047e0c36186de872b9246f71672c6fa4544a046e4790a958d8aa7a47d458c2b09a1089f11091a858a513b17f454ffbbd6dd3099072d2efab79885d5d46ca74b50531d218eea0d35ba4c30b400bdf3bbd21e4cd149e171e4ef88b45fc2a987aa801952db9d8007f4372ab805f07e4d0510cc4442e8cdf477e12bd9879a7661d00ee207e1fe95c405644a450bde0e2764ac4f2e4d8426af96a81faa1f78a8a54d164da04b9a5fa68a6b8c91dd04ce835ca403fe4fbc30561b261220e9c36497de1e735a58da203edfa808a1d3d5fd5f6cbfbd234d75ecba7a04ed314e2844479426f050f7793f6fa0571b4fa9dbcb50d251b7dfebe72cd0c3d6f0009f7f3b2e18ac6cdd09e1ed233b62216aaaac170d3d86418ac9f80b78cec8478ba57bd83e7d98be276bac7b48f092b30158ed37893dd7d616b802300a54ee84c6bc391735ffaadc808a210f30aca2e140306c171e85428fb85165d00a896026eebad59f77ae78ca7420a6b0b509505914ce4de2f6e49c574cc1ffb45ea1f198e697976a1f31b417b91e278b04d161d7e2221334e97f473c842e2e3ace5c6394fa49e42d8cc01e3c8208173740347b751c083bc6f51cbef46113464e7559eba343c73c46909f343c2f42b779c43bb5dfda93180cc62a1a37e07b00cc2305747ef3c371ab27015088276c6e71f4c72fa1b99fc3b34af8582aff0787ba861d2cd959269b8dbf9d2eb4fc513f44b96e1eb955b2ea93b84301199321ad575e9aeba6d1d9058dd5d12818da99c43047c6d38ec3cddfab03d190023a256981e2117f5845b4b980183491ec30c3434779e602619a255c2abebebd8d7718f8605b1a59416bee0dd78db8b6e9071e63133df69ff44ad9da466d8a50d4a034eb80869bec8bf65b9d4b97a8e04cce82860bcf19dc09fb3a00c519911c07ebd7fec10a7c0ed32d76033d082b053776b3c1a9d80db379060ebdf27ab659a18925b4e5a76a71baada13c698c669b3635c0ae1a8c1afd4318a60ebeb469bfda54ff16c61b981ca8ce1f621e9e73b40d7bf4bfd71957b7d6fe82e046b081d9158c4892de7aa4451337dc7380db0e54502bd5eef258be43f9fc5bc128fcf288987c003b83d0cb9c2618378f113f3901742a4e3fecbb682ee39834224f30eb7277e5a6514546fe2d454e055bc2e04d8fa0784da5c5957fa79846d1fe7b765aafd554c5766790ebca2a1f167f50f6ef411e2f9c60041254bdffcc8a4fb90b230b082d733aaacc97ff42e28fe33bceb00d7c916bf328cd529560574ea3c8740f51f0e21c365539b861a4da12a5e73927116a96adf7ac95016542dba9e5446b09a376d068db2b1b60da2539ffba1955061700782cfd2afaa72dac2a9fa4a7a4ccda5ead8daecee2b3214b06ca7bf9c8eddfb54a987783097241d2f05a47f327cd7bf6eb9eac9005df6cf0012fce5a1820f6d60587f921af7b0e5a1415d08c334b49e87b966ca3ac7b51719d658ad8b4fa00299e6ebca315c2061dc001249cb8be2a53a3f3cd724c20c451c11559ae41b9b391c831a360a96cdc574d7bf863c907397055f6574aa1ad02cb88162442a8ca6b19dfe244db4c63e3c3d71e246a572d8704009134a3cbd6a5c8a54c89ce300af9636373c910034762efe80d2044bcb16b98bc9ef3075e73e902453d2d951859caa553b905558b7693d50a9046b4b5174bab40b8fe88168f627234bff79e60e37867760b5c46d0cd3cc2ece7271a9b62f3a9775d9c6170d867b33bc1fb61941b24fa1a84e5c9da3fe10f3338f44187d2c3f3faa93aafce2420300cf003e5c0ce81d5b144e4e1131d624086fb212f5195cbe00a28f912f42843d2db70b5e166edb355f2e5643f56be8a17353cc1f917d7614672a219bf0f9c84110cd0ebae1e6f40d5dd84beaf594317962e1a95f627fd2af1873a57fba24d5e976cf77ba3016d305cc9bceaa7ec5f397ae12343c2bcb249631582680b3beb2a4f8967c80616c3643871503307577000ee16561ed64a4057c321e21ff258a797952375f7f052eebc4e67a14d6412c000e25c4f42d3ade106ae7772ae38aa293a78c6838f6c4773211eed8a53de7d30a5575209b8e8b8be55b409c03460733c53907bee0c8af473c79a3df9c134851bc476fb4ff247046c2d3c51506f91ef113d42e90d7d9641e52bb28b9639c44666c526612410c97137b31d4a0ef5b02d92ad195037d27403797045335f685049c4659babcdc0283c065768057c23a70ec5e0af87a4ac6805e1d4814a940f91ca07a3bdf2f05a36abd4703d770517bd4289ed4550f6a8b3bbd3a2ce40ec055c37422be3203a38e0d48ac1c0413ae74bdc5d694be13a9297d192db938789b3a4e6071eb395cd2a27f3761ae38da3e3a21124f6fe7ec67b4f449dab019a138e5c0629676af46484f70ebcc00ab40959815fe7cb3677d122e2239ddcb82081ad34b2841c5453231ef6b3b44aec98990b964848a4b733eca97c525f162d615b563e5f7c5ec63cf274ecb9bb54e3ff873883143fb74e49ac0982f566c7d0b09d3b8ac7d70239edc109da148868a3fc3dd44113c0d6704b3143b1e315cde031a9828ab27da665d35afdf48747ec091d33fb3ab43cad11bb2d8c59c42218369ad1263358c734c46e8934b3c717b526c3f8af06714fb37cfe1bc8f68c5ad4b6d4e8aca03c34d982431990bb007e3dc09e167dfe309b4cbe79d728622cb9fe6e611b251af214f7d0050359651223a8659b019d6e106ebe776e08b6f3b07565f9c160b8b98d7635c7bc9b0c6d5ba78023dc8022716832121e01b7236be5d8d9adeab3e46c2f34141efb2d9c4ce92472f92a53981c005f73fca32baa6b06dad563c20b32112fcd0c08fe08474aa192fe22350b1334e81b1fd3bf48bfae520af1f2589251e9829180646b6be40a8425a17310e6aa3d63bfc22fad3229b994697b31aeb74714028ade89cd9ceae04db4aad355383fa46c9f14b19f687972dabd46827161eeaf7bc699909ec60d5685f91ea8de29f26a64e8dbb497bd10e3c054526a170ca890f53b2127ea6eb289b8a3ad2addd7ba0f689cb6023eb5f0862a8b9a7c36bb1241cb97dee3e5e60eba21a9ce38ce4e59c8e939d91cced00a3e056eb43a3b497e63415c318a2deebc68c24faf8a5c039cff455a68a4e5f9be83cdbef03189dea07be516e353ef99d22e1ecc9f3a28ceaf1d1289e3094db1946d3b34fe426ba6600d75a0c198477ea64a6613ab712f8a6ffa4ff97f3688e12d47cea890a1db4f5045d715968120cb6bb291fe9451908dce6f404768e309f4fc776e25d2a9dd263105d21602178f5c046019de8543fa39492d0aadc672927da7c95200401bb00593e442aca1b3fd4c9637992e99d3139c776b6daa3dc2557e078c7b628dbd526b9240b8901404c916b97bd390590d6075b2cef26643a98eba23293470eb2e542c4f6bb56dc39a9d88d19cde1e410a111c5f6e646a1886c01100e073aababa56e2ffa8a87296d0f6a56845a3676917801b83a2e8a1b3d895e37d3f9d59ca3184949f15c295a85d577b2e9e5625fe9f1a104e6aafbb3616744773f48772548250e9a0eb9f5b3084a5cf26feb746a822bb5fbb7465d133e3435c614d05d86d574e1fb7c84a7209361c5e4c9335e1c53619a6066b3beadec2046e9e9a60aaf2e16f349fa1f693b44ed4479e68d211965ac643f8d2e60fd5dc00d5fce1612289fbe0e7a00e6689df4aecddfe453fb1d3a50d304c8b2f4c17223d9c85e38979a7745f119a9f0e71d6ea9120d2e6fd7530590e50891fc0514fdecad542cd3baaa7a00184172552fac9749a69bf7f6f63ee34f4c05c342521df69bbc34a0f4f7def17ea2f0830a55872515929f4605cf3508cc8c48d7960bc49f168cd801f76133c2080b1cc5be98bf8644b651fad74ab6c1a8c4b2cd15596c720641174f5abc9305e8f51d7d07e3f0ce3431a4b2df71a6047acb28a802ca2cb54560066f60f93025c87dc41a29744838239e116b25b351010c482aab3c05c19d4593604223fe6f845cf6c22d6ce1e2452cbd1c19163889e4b3f1adac55af085c1916cf7286b6681db47f53172eb865ca039819877c86316d655fe17c5544ad3a6902c46f333851252c9e57033b220539459cc370657e5406d34490a1c5a33cabb0fdee41c8d387cf643a60f1d52b176f5f1031359faeb2b29ea9220bf1a69c127751960ec80b6dfc01e61927e2854e6af457b8e4273e8940a2d6944b8e5711c4c7312a8a204174ddd5c545a3b3330087a3b4f11763e7ada0ebdedb90ceacca92ded66d828542d42f916bc79796abadc63276763d15da9744311fd4ec9e88d11b08a7105cb7962ff109eaa695b17c0ba6a9988290b1941a15282d875e2cd84651a77c568283bba4815dad6b8a76ac92279a6c7f95cfac51515b3ad3811a8209817ff523e8f81a3e3626fb66d96da1713eecfe534eb7cc42af1534779c8acccda32fb5b4078825a45f886bd9cbc7bedc6b2944c38d603ff75dec371d6c97c081b579de215e541ea5effa0c1d59a2a371168848ff6d9a6f80249c4016e700d17541a87e20abcd8733f927c44dbc5066ff40c68dcf3044679f333b9b7353234dff479d065335bbe9f089d6653a73cfd7c86744e546f64593858a5a2b5e2f42c4e24f6deb81bbe32938aef92e45245a1cf5aec8a85f1f5b1134be5afa21e3aa345b511416de19e32f8d17ccba3ec432a8894f00e75a14c7ae64698cd6ef91b7163d3888705ffc206336621616d00846fb5b41b3a361b5916f3822b24bc1551242192a2e91c176b2ba502c68386ae8461294da7524603d5434aac857de59ac5b59c8d621a5b2673af10e1c19a62f1213a9bb8b1aaabbe0d651aa3639868bb4ac4b4ae928e516731a829b38eaa097ea733bb1fc7297bc1c72c66027306eac99ee305bd1f52a6a340f578512a38d2d5f45811f1ed4b80769c1b2ee67607c840a631455ac3f21f880e2c22a2c1c49df475b83e2524c869bf155f8adef1564fbaba5940bbab3774a299b8835a5e4479f26a148e5df77314bf02ebcae32b8bcf8f0940ad847feb42f397227e6a3d51b562c83baaf8e5c038e87341557dea23b082b3f5f04f432b275feb46c00527e2426e90a9d21e86ff9f29290f1312bceba49257111271534d0a18e7508f5d1ad8bc3912e39da6ca36a8024a03b0376711301b6f2253f6bbd9f19002717e9b4b7c27f04bc7ac2eb9a55e80ba76b208c7a4807a35063ae9d7451bc24daaa0a752128c29c40880a9297dc414d39dfbe7180f5e18b26b1bc1ab6a8f8ae62086397d775f23d3495d979e04d9e6d4dfd50296a75c632e2b5246de87f6df2b8b0df35a038c72e6eaa1878d337dfd514fc2e2a7af9d10bbfca90f7925b41317eceeac3260093358c378f06af6f4a92a5e833b9c19963fe1587f5bb23e2c054e2fa38e23319aad264ee5af38aa7a8353eaf3787ac40fd1bc616f06dc9a362726a503abc2aba858292da11af494b2ddab8c26ce59e724b67b07e14217ac8bf2d67ed240c1582e18d615c6009e5c72d6a8ef82c86600d36e40dc971f0c7ef2dc88404d38daac2242b64654bcdbf862d9ff4e9e836666aa9a76f470d1455c4a8df81711ffb5de7f5ab475eba13383e06bfb7652d16ec7c37ce95270ba8710b68a402adae54498fc5e6e90f87e1caaae6becd217149af1b0e3d71ee0d60c4a3c0ece0b38cd8048a510f63c31f3ab9eb55fccef56c600d465283899dd63f042950d0a03b9684e98ad0162e07ab5d2afcb94c25b7baba54fae4295b097a85fcd740f2ba1d4fdc05e61b36a0910f313101bfb2ae1d201882274d4065c7b8aab76f0ff1a8219f4a05e37425b5761234842fa06b2f4ee542e93e7d8f20aecc82b792698476243e1856fedaeb8a7f5f152a2b0a2a8169573c3f4a0a0479595bf4111c99a8e2954ebc9b60e1d90e14ec83a2ec5e78ef7523dfc98507762cdc5dd7e78dd6190b818040ba9d2f01401fd304b203cfcaf3680127c65e8eaa51ac9d076c02cad8a8748197774f3e4548c33b7e586d973fae53a4df9502a543082dc8bf01e24b6d11a5663aea5aca6edf7a82d06c1c4e57286482661e25d865463cb6162268426da1ced0790f15f06a030234c3fcef95582014d6211d3bacf5da8a8eda61786189ac5148946db0b0c3902c3f680fece487dc6973a9725dc88f6c50a899d1336a46bfa59556848452dff88c108eb7be8ef802cd26664348cb097cf4ceaa7e9b646a2ce0dcd1223c2396f49ca0e82a0604120cb068bea222cad16ab6243bc533a4fe11c07a5b5120ed110414af8393c04d3e4f5ae5b29c4882f68cc00ca94abb18684ed7eaf766d485aec99e464ff666ab9705ae365e5c76a9a9e58da902cb091f313ba84b9a4a7a1882d2a65ff7de1df7418055f4d899513f214c0cbd7e262858de1b45940f35f39756e381e79173c34de8156fa87b627832ef63afe9109fd91f03d35270f2f4aca1116931372ca85360ead62cc29adf5a067c6eebcf47f8ad2d143fc75249c2c25f4b0d1dfb633e3dafe01649d8b456973979e23dbfae11b834e84605ea1df7a3402835cf901126f60abfcefc52744a1bd7220b2bee83b200c7d0892aa491befa37ef704261a29a81b0fb8957843f0cd1247620460ed7ba9214dd09b982dea13d9d4f27a23890065e074e6216807db2836a92038c6491c1941c3e8873e98690a29da5639670cb2d450debb4e6f5c1e3819f9cf2d067ca6a606be6ce0c7d6a5b57555fed45ecb002c541125958946bc029c3e392a2019dd8cb4cdc3adb61df303981d731cee39587116afa307c8c5b07812f97dcff6d59f168f2d78951e31f07d4d4e6d5c83ee534eb8e9a76a07081c14c05bcae01fa2a094060508c694d073258b0cac25c05c01967486bf61e6ffcae842eddb4f7dbff6e99f09daf1dfe75811d9582d0d1cc45772b51ec6e10580fa30000000044c8301cf5a44217559ab0fdd870a5a2ba08c546d41db6b52ada425a93b29bdc7b6f29659201260456048e039bc65aad564beb8c81a9805bcf965bcf15baa222e4e2c643240be2eaf3c6e3434422d544e68ae8027774a7664c75d1976b71a782a668a2904f44b2750d8e0e5bd02d6c174b7d0769afcfdb4e1011898ef19b559fb71d1f9dd5e76d67a8931c67079c14eca9ea5cc0c0439847109f1d4011869b0f939b0f944f148f50df371ea2bee7057878bcaa2d566e3b4eb79d19bedb4e922370521393c60020aef08928882970b47e801b9686a85e382a62443eb7a4b5d62a99735a1a7b266f0408389e791e3fb09ce32b2c30420499b36ce8e4b119819b62f6d85400fd0cfb2a09ca6f40cc6d30bec16f332b5f6191885ef1cb3b9d5ba361a47e0f0a3843b0a40cd2ec540412fdafc28dc8099c74ef8af1d79a1a8e8a277003685192a8e99afd2e13a845292fa8d5c0bc90c142f93b6c28b99404a0a95d994da21250fb22ddd37c5272b52fc645810a9411bc8c911204a4efe031a6dc3556ed996655d10a3a6ce8f15e6ee5ac024549091755b34b6d6a8418250d251101d482286f78212e33886610d3896dd53e8409e57dcc2ccf03131d7a88617af119b3844259a69c824309abf54c1760e408da11a6050f199052290750ad1fcdbaaeebbaaeeb3a1eff03e8811881809a0fe5eb306b78c00e4a254ecdca9772fe60a654408d06a47440cd05116ae616aa2665046a38ccf038a264e86a73ca4b9967861800cb016a7fe386a9728a812a19500b9a609094260420c99272872425044c54806725e6abcc909194b876653e4da9b20035a372c68f13aae01083069825495e18e93d9aa2f450fe8c0ba4e810228b121a12e527866ee401e5ec4cb928235484ca141746dde8c8938fe19316509b4d93872c357c90a166a41cfa1d1aa54d0d0633a50ae5d4624188da87f1c8bc15259306593997d4cacc1cb490a1928254c9a4acb5b0964329a2e67ac156de1917d8b88490c2cc8626193e656674a3b1c654ce3035d4b6b450fe0f0c2505784eed0b102595d2c9d74e285fb5149ca0754035eb910313a232555ccf14956e444259c2e7544aa0c6a25641ed6ddcd4e60bffc3c4e2746b40ed8fa44cdb192148509ce7f1744fea4b67adb65686e7793b4ba4a23e089518a4138568dbd1104cfa6be500a551ead94a27fd2cb6521f0060467f65599e35f81cc09f7382167682feb08f769c8d1960ec730919a63e0300ce39573419bca8a2b149e648ff0e014d726ccd9021f2f3e64b5065b92e6bf05f3950b9e5381637d2bea27b9a039c7409199e9af3e19f262c8d593b8ea0e3fcce7559878ff408be779cf3f11c05b5cf51d02d16e3fa7d5acf0268ca672531a21b79684373b40bc733a905555b8ee3382e64317e218bf92af0119000377af2d90d6084713d2d2880f9d14ac700e8e7340260057a5a10d358c7c352db686e03b5d65a6bad754408f5c66687489adcdb86dfc444e8370366e0bbb8f5b42100b4e62981fb700b7cd4020a819a9bef7b3d00dcdba541007e1f8d0e4b97cabab7b77793a8ac77fccbf9cb63c7f3ec4ffc489260cc33cff332adafeebd37cfaceb45dc0045264d451634e5f3c6d227429a37a2222d2276d3e9be11f13cf971449df65702be6b4a8b4bf67603861b2cd818938ac70a3b104902c60521dc0d2929a9aaaecfdb8da539ffe7ffd7d071246dfabcdd409af373fda729f4cf18ed355730a56bad1c05a55d174b3f127ff9c8fff951ae5a1859f9ffff7fb56bd27a73d6de6e04756bad75bae113fab8d1627399126de82eddde869c86985425f071702ea8961a6912a772fc4915377de33ce03624a4d73e6f4327f4f0470fcd24c218a13343412a0cb5d853bbca4b98430fa10e39e80065d3e064db600ab9a88014642b49f2d1218e6043cc51c21852f2cc40b50398b02a4b68260a880d3f326c2c4a6847422d436a9020c28eeda4dc446a31c2a89a4f7843102910838316a51d361051f68ba63069c90f0b620d14c41d20418e786e8434d8903165e367039d49610cd50f3b569448d9456ac00186508c4d29053b8709a10d3c421f70e8a021c2a801b459a811c29e21153e750965e041dc818308e4b47b9a84532e84608a8835a51de523449223a452838a906c4b09ed6c13ca84247ce981e54685e969470ce10a49b6cdc81321210b235015ed16b5ed038d99e882468f28a32a1c214c68820f5ba6431194183483f8e2051b565881080a3ff617a34dc290d40c5a0f335c943113a60044105bc45409c7dc008606d1e886a48532296c2825402185588836d28c5d838c17473258843190115970d9e1cabe61ca2e9f846498882520d9b254e484137a846144d85e8444192d28e4416b115a99da495ef6ac872d398834284b9cf860aa4185a320e12da98a0e3336c2c480b193c4e03142157e01b363c892254a880dfb8a0ce1192544fa1e7941df2122cf8f0dc3d1e681481ca211be300b0aabcc76f614aa2061c212b48c50c587941e4f441d4d760ca6adc54868648828f4a3c951988588050d2118414360ec6c2b545dc28837b4ec1eaa389122f63c097968121261125b18c131247cf263473932220242630fc9829ac876c424aa508530a14dcb5eaab289a4883d9ec0d0e40653e8c5c86632a4851fe109479b07d1121a620841413b84a01d17a8c432cc9e41cbfe51450422255c7ab24b68b261308960048521a2093f9c8ea410854c686c324041bb0868274c01151061b696304a952629628c27529a845798ba18d94786842efc08a18e441c443f68fcf022489cbdd8a1412523cc0e427f5a764d7f55441e53c22350c21f64d8429688346c220945a6fc08e9248e0c3f7a98e407a993383838b5d6fa83a3d75a712a025aa0a005e5cf3fa8fcc71122f8fa1ea0e307b6ea7f80c90c2aea45abcf9b4f969eaaa0ce850f07c30ec9aa9d3e3c7c82fcf8147111c46e5db3eaf3e663eba4e64250b438436f1f2da375a3872388f321c38eb1fda46fd30baa7ba2c8f4fe7aaef4d818bfc97dde76649de438d706b5dd77cb7dde788afc3fad566e3c50d65aaebbf154f188e91bd623eb1bc491697cac562b10b4f52cb56ed3c37aa2f43f1868eb5cbf31464a46453ba4b0f406f479db41c4abb5e31ed45af557f9ecc63a33ad7650fbfc3868e7f3999f4f1d8ecffe7335e7bfb52399853860efbdf7fbcd351781b9089d53707c6539a62e9c31c699e316a594ba5c2eeae22c976b246946dd62d18cc1d103afaff26ceb5f91ed55a2946959966999a6f47596525949785a73eab978cdbd2359d36f9953c33f1e023629895b039b94c40bb677d757c6da9bcaf6ceb33ccbb33cab4a9a7a4c3b908aaa8ab67403f4792b4a5244a43ba0cf5b118ba2eec1488b659d7cf2479276fc7d23fef9139f4e071ff42f83fab57f32f2470f2889f9ccf813d1cac9fcb2a8394f1b29c5948ee4ffb038f5f8d36a8e8b7be3c7b5a6e11873176c5212342369bb66b1bcee81377b9f53aceec59563a03ff18d3acf3dde719a3378ee75a30660e76a91a6dd982334ab1fa86e3938ab9af4e6e056d7d6d7e93adda7d7cbcb20e5bceb74ad5ca73be53e5da85e3535d1e21d6df2bab17efd68936d82e2e03ed58ce4e7a2b94ede85fa0be55da8fefc5e1a9afbf4259ed626d66bec78e55eefd17cb0dae4791d0f5179cd586db6da68c6fbb4fab94fd76976562d22b114f526140bdad46b4e2d2afa5b11ac02293dad74cfbb4f5ce6f87daabca8e67c45f6b134e57040da902aa6951a2c9ac632e740c5b4529b2cbf4f7fe2efd385ba4f35ca456d4670516a5b515a54acfb7fce5b755d47499ad547699dabd5d66a57a3f5eaf7f18f4fba5a511925298e8e613a1e07a15b1a4a31a7980aad68461dccbd1aded9101bd48c24a594f6728d765c61ee594edace76e3881506e0cdc0722afb139677238a4a734ee1e276c47983bfbce6f5e2a44d41f306b8538ec16b242da5b3ffa7b60e62d8ec2b4c29a674e55118957d89e71f07b334303a8be9bdf76a35f598b1d53a96efcced080fa7e66070c32b4eaad85f4eb1e23a78bc2b8e41c5b33fb1ba239d7d098eff533aab2bc0ea9a92c4d9bc740bfabce958d2f1d3637dde7244e9283b9869dd3675fb48fce65bf195868508c1bd5549ab3749d7f33cefc27432d7e2b8cbf1fbdecdb3f7ee67f072aff7dd4f6996d18c83d22cfb13340b557083cb29bd9996f44f7937d6ee41ded1aabf766fbf3c1b49ca2bade6d82216a5619b6534d33ed33ae5ab157d8da4aea11ca7cffdf71dafa9dc2ed5d738922ab6ce334a69b675f0decbf18ecb60e559b67ace16dd24d5a4b74bb668a9e87e77e719a59cf4c0eb97d351c5ee39c35e5f2aeb977e9e7d89ab625f4faa9334c92e556d9702bcc23e1ab318539eede77f98b70239981884aedcf29b58c56295e65f0f590f9e0dcc9a31780dcc3e62b5baac4a29ebe361eb3724a86e39de5d0a8f3e65ad78cec0f7cfd258adb15e0db056b0b6480c701cc771dcf3f8e51f5fe141ef3e8fe43837aac0ddd62a20cde1f6cb3fe2729d8ed7cef187d9af36a1f457fc7b0ef2150b966276d6cc1db0ac9104398bc562f18ec53bce1a3f3e5774905f1415afe817a662f76fccb3eae115e0531deed3c7711f77c7112966bfe3e5f672bbe295afe81c8cc41e746f767ce6baa27b3015b8776fe5cba292cb34cfb37154c6ddcff2eb8d644d07c12ccb33229d5bea5f02f1790684ad13017c6b4713502ca3318f528e13514b6cedf8d5e3dc37daf1e74bd84fea1548a7483456f997a2184df9072307f4252c87c5e889237f4a2ea24a1c23b5e1ef075b929b932627283bbde86ab3699bb6692e365b929b932627a82c54a12ad4942ccb33305ad76c9b1b1e137fb8dc05a375cdb6b9e1312efa6bb6cd0d8fe55916b2e9265dc36d49b42dcfb24cdb4a5db9cd56a90d83b6bdda3acfa29680f685fa8ff7f38f355a6fc11c7cf047fce5bf5aa7d845eb5cce75f29796a88915f778ed9c50134dd40438621aafb77af3c0ee35b0fd3e9024d82b7d123561f92b51131fffcbbd123501f2cac52dcf2f7747318cfef8ece416bbe8ef36fc2686833bf99d1c318dc63ade413d73e69603c727919f74cb21d42bb749d22b27ea75de4490ca790bfc12c63f5fa2837ae6cc5e922dd51c6fe9c191fcd56a5cea35a9e6d491fc3a18ae4df888e6c23fb874b93897cbc5f18f0b972e17a6b95c2e2cfb1fedfa1f8d35cdd769b44bd3600c8481301006b2658e9cfacbe8f36664b3e4ec977b718cbdc7de63efb1f71e7fc174c88e7f1c84fe30b2768cbdbffc3fee690c5b759c97f1485aad5f98bff4eba55f2ffdc2fca5398aaa359f1debd748aee8afae356f8d282a7e8d28280de62c16d7af166f751c6f912defc547f26968c696d57cd249f548babc174b73974b734b63f5f3d6e87116d600ecab91ecf8e52328ffbc8ed3ffe9a0b5386e61a056abc5f14f0b97ad16fec1b456ab8565ffd3d23887d5d2b3e6600c8481301006f28e20d1fa01fabc1d59e9600bc37440e8d7cb59ebfc91b6e7d9bd5c5faeb3e6f9729dc98c4307e4f55e9c39be6307b56b1284ae7339c867de00e499a3a01a733c5259c7bcd3917c166bc4ad9c716e699b6e7be6ac91d63c858df61bc95187221996e11f5ce21f4cc3328c8b68ceb8c5bdfce239e7170cd30f9108a8f44b9a935246a301000843170000280c0886c342410e0421164cee0314000c689a365c4026250d23511445510cc3300cc33008820008020008c02010c61802723d000a6a9b8dcc186e4bffe3fb4fdfaf9bca47bf4bcd91320bf9f1d0f5f159fa5ad8101ba38f2655d947b54f5d5e9ed3ae7f46cb0f7a3d2c5ac7158a3e99e2c1489b2f256d0ca989984cb813f5fa1c3d8ba414903c4d52524125f03e21e45c2eb89e75be867eba8d3541ea07d1ce73dd85949fdbb973b91812de62398ae7091aa09990b5426d1120221a3a707e1c8d8fcf47c239bb71105da9cbe53dfedd9f28eafc73b801ad076fd6b188f75756c702279fd3974351200aa8ef3361ea1263f4269c9ff05427289479fd78a3e321899542385a781b8857f42b1091bbdf6936d9d9e42824d1af065bfc393cc0003f66a0abac4d51d9e3e5ca8b0d8beeb09b027c1267a0a17661621a1b39a45f746aa9942c8d284597a3b666cd37d71a97b19699878710460018e6f3f66b9d4a384589404288ef7438ed1bf4fc85ee145c911a6c771876aa64fac9ce98903af46075c31cd862b8b1b733ff4de750b87c227894653dc09248cdd004af27ef299c81fbaa3e98815bfedfd1b48bb6f0420682e8430af8b953dab3406ac809f71525eb24213336854504be296a4e76dfc2799702a856e6a01114aea6e2293a1a5bf1d55f0b7b92c5a0f46fbc2319826ec663661891fae9b195847c95839e6036b081b56669729f08d34f7c822bcba9a91105047b5280955ecebfe43c2e8316002fa1b1646a4ed8e107c79e1cf0321aa517ba67f9d19151b6c46dcb6c8f8689d877b2f9bc69a148799db2e71b2e2d59766feeb6651912049309fe8e903016c9cff78c4ec40c19cd473ab158038e012ad1f94196475b1fc4469fb5d6718c3b9a0b7f02322b176a5f05f2d47f4ea038c9565a7a56c7077d2241eea8b4b8956b15ba593d00d137e744df6b1f11677877979614e9db64095adcc0cd8b9ec6121f9f37bd870b2af094ff4b7922cb67667951cd0b121009a39a61ebb8df0213196a6c9feae3f749f125956b92eb944edb2ae4fea8740273d78b7c1b8f07db27dd667502b4807b548a67fcbbc3c76bca12f6b6e5bf0998393c5cf0b42abb7b9c3f409d87a09703ed125e8b21a6c794aa794adc63657f3096f0301e3d2a307f035b0f099a6d8261e1d1b018513fe2fad02518982a8d4b5a55425ed685a4cffff87592ff7d9e5e53e1acc48705bafbf117d953213dfe9dccd4783a19f86cd39d5837b5ad6d275bf8a6f543ed949d92a0186053588ce380363ab655bf01d4501a8dbe8841327b1b5e7cd6829f89aae5cfb4985693f003db4b096e6408094d8aafca98d3c1030494a8d9fe0b9ac08443a78e764b7068f97ae767aedfd174236c6895c5a3adc79f261cfcbea4908bed05aa1ad9ef5a6e8361ecf67412baa8fd780280789c9daaf834a94a3b8e398745db7cbb6d338c5d589170423ab5d7d7063c1e0ea3c34161d7bea59afac356102d409200cf4a51537098635f47cf340531e732b96b8d26437c504b4c7ea0b7af91000b6bfed34bcd724ddffd1266bb1d8accbd94c952f6431f335d9a4294b9511247e73fc91b4d65446308fa67f1068f2283e5cd4ff2a3cf84671deb422ddfea0a916cdb93651553b33698954892afc1fbeb76d7cdef3b6198aff353173f59bb14caac93f1c2390d62206a1c8276bedf510cabc12c362986f7c90a8457e666a54f65bc26726ccfef864f4e161004781b4aa4aa470c5553a30879eee947bfd4f05f1cd383105d4a4f471f853818c49339d792e5e297c3af0826da51fc440418ddca167314e778cdfbff1ea1b5d4790d754a5b3c31a07bc4160db0b59c849efa43eaef11c3a64d5b9b3b1a4dd18e36927251006c4eecb92c762935552bc6c1de1798000c3a89a99ca518e094c8a589eb428b0b6e9b0568a79119d0502b980f0d71d584f2f693570621e0e0e448743d28fcce3182bc7573a4fd1d4099589b2f475443f5329b3721c41b18e8a53311a0bee939b4b0a3d978ec54cb0df71d33eb4504ad7ab0b983f6d28326b9546d154d0339b2467e890eb5e765932af06c5aedfd3de27c5f3bfbef8f7ca57aa2eaafaf699fbc89817cd9bd9bd47c61fbc623e24689d4f899b649dd31f7283069d4ee65ca4b1d4f48460dec0c2db0f38d3429809ebfa9456f60ef0287f58871575a0938b082cb7057bc1282bd981b9e9902f2b4577b88d017b13ebd5d2c377f014de0356a6022ca19e503f8818b58b895f5588aa20d33d2cd84cdf0e112b1af278bfa0186cdbdfef40c82139b6e4b5b0370f04c2d605f8bc70a541cc3c2e4fb773c24a81a6e29f556c8b1d3423589ba10302d55724a0e130df0a3676edbb73d4585155013fb6d58c8197733b8e6c2d6a39fceec87c70970ad58d404ea36f5f998242b9d6d8046745631dc84f0a77d7496f73ab586cb0e2855ac4fd4014aada02ca73f6f2bee9724345c4384771fccc976cc9e7decf29e9fdda1575b26dd05401a564f4a690bb971ff7d66d5ff1aabe0737e7eb7c9b4fbbdf8cd12dc8f060672e89ea2b46260ddfbff7a42e84f0cf250cd46024b30d1e2f5b1e21752b08e03877e4a88c1681b9b5fb7f5bb8282ac90f694b79345c1cfc15f13b87688a30dbe84ecb856eda06b707b8df589e6b54d4c2d51939b49fe0bce30dc4a899e79ef6bac3ee8722353a99ef01510f0d1dc4b5bd5ced8f6efb50492f95ddb3ad0ca8065ee4d17731fe4a618a83c1151afd8eb2476f99e6a621856477b804873d38f60e58e5ac03147388b7b63aa80017317421a1a8dba202db9fff721436bd18a5501a068c87df9b72819fea6e87aee222b1100b9a3b50ee85543b9d6e38f96b60d04d25b8841dce2e68833ec68c358ba953ff3bce1724fdf561405193df4d1571e32e6dcd71d51e706c69002dd98a7cdbde2243e9c8eddcd12334b9b6286c7083edd27f2648e3ccfcfbd8a48f5ac89f9c70f557a2a9dc72e8f6630b8fc0887e758890998478626bca34f7520bdc26110f8b7f15759476c8a8f6ddef1d83a242f51b6a00935230d5e77860b62fcdafaf027bc8ef430f8418cc9126e5aed0a0a934aa1cec7471a03e71bfe63da8184089bab18e7f14bae240428f3cc57d801d24395d4ee20a7239e59d1369208942929da3a8936e4c490fcad53c17a40b8c87f38706d64a04b922560ae86063268ba4309132f121b6490b32be37d0b8803641d396ce97656a933634f8201076a80ba20b572031758af09b267250e8dc568709882b29224db6907ad046bb45a03488623742b9c48808323dbcf6085d45611d8d3275d144cdac88cf302be21ac4ea61908c871e96022041ac067819cac2160469b3984a464522afc5ee4f80cd0d2b2a573450233a10bec21580f0313be0c02cfb0b6e346acf24613c5dbd2a9b64f64073ca05540601ab118e81e1c4149bcd64ce68e267268c96e3c5b1688c1b73b2cd009ff71bbd66c39777921cba5cf284cae8f62073115e21a924156dc83a385e4499b44bdcc85843a70bcf0a28906288294c79294eaa11eda3dd594e04541e9cb8a44f206a3083c2d9862c131ddf97029a53deb0008d4dcd054ee09500ffb1c08902d77ebe21888cd69a9d74613d499af2f110a1313450113ee21eaa1d805a7ae3feb4bc9424403fdb19f2d7481841fc213a1531fdfd0420a5ff8526e0f11320b1e6be37a1927356146232310fe9139351799c08e9a1475f2d1b5393f809a8f70e1cc85a610c523470024b831297e77e8646fe4d25d7cfe0f1aa83f0294225c7c2747f0e0db7c7f3ea2cf48a45c16fdba2540dd8132626e8931b88fd0641e3c306816c6b78a2d924e24b342e848798b68b0bacf741f42e0b831b95860453d1607778ab4ddf95e5cf42b11778a306620dcbd64b6bcf230f44da233f151efe2fcc258bed0668635e5f7513c45462f587bd4f645d657ac6f30e31514044dabfb788afdf4c4eea0de145abcc19dfc764eda1a715241cf2e0ab045fba8e294bb8a6c92160ee79b567a8c75a1819a9fcfb1f526958fb362ab1279e3921a46d360a56e41569ffe46ec7c8ca638747df6c25cf39e35366be10d81834602b2f516cbc13d6f54e2ae8ab1abe53e81b1ecf5d6cab6114fda37a60bff3693542ccafc88bcd7a02276c3397ecb0c682dad6c270d90008a0b8e3ca759ffb04cc827c135829772637977247a37e9dca834dbb683bb5b353b3fc240bdbb4452750113f960b5cb5057328779c66d416a0656ec6c7ee4720d5efb0c9f0faf50cfcb08987d035cf89c7f67b708616fb8ab45249de58e56fc598ac96f5c4cfb915ff9becce5bdcdcd1a1e40d6f0dec1e4c2ef5e52c21742d5dc3bd3574861c18aafd3d0e428e5ca33cd530f1a7b54c9908295312e5160cf002441e2f0b4f5398dbc4d1ca668362b96bd3277d582159ad7f306920fabeb24013de9c5c18eac2b286172908ff52aa78a7aecef18c2637a396ff98ee0735fc2fb144b052fea8b6b1805bdce0b828b682fc851e576bcfdd0b560472afc80b982682f1a03b920bb3cb2a4f60b0548ff90c1f1a41f7d4039a8cb2c52129dc061a68e91073ca020f1460ec0fb6b7b472bc4275567031680327176fc67961120b5e057c8ac0b859b032e2f22958e644d2fdceb5eb000064c36d00690bec8b08f6ca55be3be353b50baf84473ae7b1a8d32df8e44c1fd754fc33a3910b1aa5231003e09ba8ab826b30beef378e38000b8d6bb21437986684941b6524e7631f45362e31c062d05d8ad075b8cc8780491978a9a5164bdaa9c7394ab010b3d2b7e497dd66b9373fc8fb2ffcf396a3f34b00d2636e867b9600a06b2bdeb888d11e06f72685e3919b1819bbbb8b675a77f1f8cd95131d41cacb37fca570d6fab714757ec419ac71c6ddecb1c75d633473d7798a7e8e93d6b88544742e1b08d3b78b5860d52c053695a36e85c9163a095f5c60d01d31a3419585d394a18e0d6488e6eb776ef128df541bb1976309a760d342ecb2608ce89a8e957dc701ccd58504b7e7a8f5bc4452e6a76b11a171b4b5e1a4736daea1447edcab95ac120cbd803016a2e9a4f3810093be3665029c3d1a5f545d88cf069fc19d3d79cbf2d5070d4c2f0c25b9851625af763ef578f1c2480c96becd733a0d100f2460be854abfd46852e9b2aa6f51aec5310063dc99831e1530035db07a20102a17919e5fffe46b1c06b9720af43b63577a15dedc472c2bb5690a00020185fa39668068cba2828992290e08afb2f2b47b84e0b267b21e1e445e8bec2a7dc1c89005e5aa06e0e8eb030344c28a820401c6848a1001aa839b8ccd6b979efabd679bc85d92cdab851d2430230f9d6cb950c85e6095bb53c2ab620134434040608aa73af85ef8ef2cfd6cbc293fcfa9f14274a89973262a7dd61f5c11f3b0b7a899e136351aa3fbab414359cf59251c37c62362352e6fcd812f4271dc110d0cbf23df41fcbf5d828cffc0bc556e1812dec335eb17f2683a4af90795188bbc646c9a9613db35a545983f311ca0fe768bab1f9e418fa4708d89605afd05702f1ed081ca820f9602e9d42289fb6ef238dd08c2b6f30b52ed54e2f4e0869915e798f01c3149eae1a257ff54ac1d075dc88ca768a2881e0bc38712b3d561d883e5b0b9f1af543640ede3cbeab58a951c846cfe0ffbe7867a4119f7f1b245fd988d3373783862f9066c2529aabab0dc9a02454101d88f79cb4d5f60dc32cd907feab74acf441012288d9a5128650ab576bcba1a3244c9d92a36d659f33a1a8d90e7decb282efd121b7afe86a3110c7d66f5b2c9d95e89db185baf538b8de3d21fc004ad5437cf7b8b97fb6fc06ab91a5fad80d1806402f9b3a90f60ffe8ca0507f9a3265c680f40c075b2802f487b65821078d4f98a07088f980e1151439e0d74e2b6194b2a08361502b4ab49361c914f2029d3b299c21b634a7e7960c907e0b25e34f4448d2800f6d27e2797dfd40b9c766257d3c66031f4bc6df74dcd8da04551b133a0a757828c49cfd98e8325e8787fb7a282defd0f32bb2a1ceda2b2e8b60f1a3890edc7844cf25dc50439087bb2fe790e82a7741173d76ef805ddc1ba31bb4f88a78c0ddaf8be0e127f059c3bfeb110c1fcfb402d7126007b425a1582c40e1e110341721eee38ead5eef1e6f1db0bd02bc363fd0a8f0756610a792bb96da8f11f91b2823e2e3b3f2f63533b66906bbc7a19a06d8f72a7a0a854c60d21245de2fc9a9bcd429c166587d5f346019a418677e04cf4cddf01e3c1d735ea237133297a86bafcc7f29a1f12b9968a885b4d0c141ac6a209cfc54683ededbee3d24d2f770d0bda23947e82417b43f1a874f63de8f0ecc3f397da24b0842724121dd7f309d6682909a312bfb58112eb7a0880c13b954e01f2763ac06870acdfa7c7fbe9cfe91328d85d33cda84611ea3a7b8a4d0267856fd0926b8613893df5850d4bac7c50b4966f0906cb56ad42d1b003a7f2bd38763c2b0bdb65afa50c6596fb2d38c31af8a099726e5d7c79054251cee9f0f949fe32b908ff6029dc1c82624fd2f73f563631077810637cde1240d87197908613e843fd6901cb4deb42598b2be0a0ae0371167478550f8701ea63415c214a9031e383d4a3821d3a3aeecb3a56cd2fa5e3bc68759f6828961f32a684effb617319f289411475f2465deecbabeeb1789ea79ccefc05503c41ffb0dc1fd85e831cb6d793c706a8a437c5a935382d5fa1c09fc1658f46d82122a9f310e154037e0851b68fcc170c08ea2cbe77c77fb2b56a4cba7ea2b6db61770c400ae952c83478c5df3583e69ca65470b36ea9cace60e91d4e990b0555df73b08b94276a390374f6328acb77bfebe018ed981ec00297f792c9f851960266bb30b67481e89c3420ba85ed22025fbcbe4f8c5d7b795633d77efe41db3581efc3e4f063c880ddafa299f7e7da5977959a56d77f050b7e8533e39310cfb54721a6d08f6b24e72f700e8aa6f29412669eeb87bfb94cfde97634930b89d4c307014a56756b6424ab15786394404fd7fa027f96cda173870b784914ba0fa506cb8b8c1fe38c55c74dcbd99094f5ce9828d133ed19045ce2b9139f2f3e81ae9eb3a5fd022a7c7715e1690c7e34582995a554c04c946d266b5ebf5ec21270c235f2079c8c9a70d4b6202ddb71e50db00f96c6c4c6b7398dd4325d1f8769ca18cc71f64dac6e92b0b17b7e33366707b4606228b37e1cb2fe67f1bfaedf8248d8ed6a8fed3a1bc03c4871604f0fdb0338e4309922e80ee6b7c9e7a307051d628d1d297ebaef1a9b837f8ce758d894010b56fb4a9c5dd19c3aef1d94fb8c41e369e2139ca750ae2b7e3f379dbc0f2b84d6fa1c3dfe51aef8c0ecf96c6f8ec7b68fa509f413525dadfa1c1d46fc4971f3e63422ec469c68a4f4b59ca06587201a0c649ee38f129ae30d71120a7b74fe2b09088c00b44824ff7a10821ea3269f8a9794ec3905916d768da784c1ed96bd5a978f05f4e783e7c229aebeb55b0575428d9f44f3a0a832acc97cd3a7da4d2f63daf408b51bec6b03010e6d8f0b9140b34a02b0782af9f52bde144ca08eb86982f7d274e5e85cf45e480462501096838872a7c16044800dbe0c53c43fe5f8aa5f5c2228c3aecd0be94c75b2fa1dd64fc8dceef5179fb20921fc05d0d43e10e62b28f736c8d1c3830f5b2df3be0c7b49feefbd737fd14b940af7f8718490f0be2222810d889d4103545f1b1b9d5533c4178c7c486b3a0fafebbd7a740b0e94c0005f34da5fb807c87f9667b0bec78faa30239d88b1365b98099b0360201a9da6a1ad990df6209471c8d582a468625cef97ece84dbb1a34135ccc2f0fbccd88448f80cbe5e885ee3559282348adcf6f3d549a49b05e054cf963d0af5566902a1c2184645134a479219eecbf8154cb6f6c068c365a4989da7d8d06aee6dee65af5cfce5159b8201fbe90eca055fa2b544f964df80047877195ebc0a33804b4571339014883212309ab378af90e9cd86b77c3cd720e82da6f8935b980185259f9d068a3649e0ea01cc4c7a3e8c756b20690bd39c7ec972f8620809146ee58af297dcc31301d36150026645a433f14ef21d7f465d38c2883b2c4ea29400d10f86130b579a51e5f132564d4990008375b1fa1677ebf762943c144547172148b34a6904b8bdad3c5a02805c4e5991e46ad05c860f984941fd509fa40371b534c91de018e68ec9d8a592f2b32b7973916fac2fb4702eb613cb2a60b0a3f852fa78942e2fd3fa16028237098f769accd613f542ca94387185de2a647cb758310f69c93b6b281f2315a47188d5b9d8f16b3dbe04ecb4cc53fb6078be38992828a64d7aab40e4103d2a656da24bdc0075977ad8622f82011435f050ac8f9e947cb54a6abe89af0eb0b9f654d2e7c2cc660fb7f3bc2e577c3256645b27d43544dc0086c15df556f2b97c97107d9865c3a0c13016df578182f24ba307f2c5079ac087c36a588744c23a322a7ebe4a3e4c7d01f7eccaed7daacedca4e01b47c631d84e9e9730b789c57622501ad648a2b3d48385bcdd3534f456300820a8457f20051d84b5cf978232d2f0c71a9d173d89c71a6cb799a3ebc7282516fae5cc7eda21ead7edac638437c4b3027e9f8387d3a8549363bc6b8ee5b59bba7b5094cd6b2797cc0b47e9f03385478fc9de48ae2b186bccb8ef2231a4192efc559423128cf85363bb8ab5fdbd508358223ebbee8303a78be23ab9b8db77de115b75f21cd3e1349c6fdd8217b208bbdf43a5c7f57c7c4a5081b4524292149a8179bb39a7ba2716b37dcaf58a844d55a70a898648d5e8057988ebf9fa0dc3126911d5eb1b8b1a1cca7a469420981b56d466164caae9beb8c0fdbc90496f33395ab4c3de7a98565282384e192812f66adf1ea04548d8e32a4a0a84b8615d6d6301c701af539357955eafbdb1d82660c47f9792b6a999e3fde7f50d5e4a7120b708bdfe9f035e322ca3bbe2554a9ba62c52d6553e83d9adaf5b311b857bdbee70048222f35ba6f219cc6e7dd5ebbb03eeffef75475131f4aeea500f7271396e728bf0819dacf37500b4c64df73d1b9867d9535e6a290282d6ccd272811dfa7d435026eda4325f956a16b19b4d439408139cd891248602f9b07c8bfa5aab979e911a030899de8ea7f17410b8cf9a34c6683c16fa727ccdf1e8389e0db4a6fa3787ac5c044772b7386c531a394c691cc71a4ca07405953201308723504489e9edeef22cef82d7e9db16b3a8d91ce6b030c2e05d35c7b7050b2cb5376e507f13b39f74d9edd1c2f78093b0b9afb96c5c6ff44fe038f7cbcd6414bc1a721181d59e93ee8b3c4e56da0e5abc8906ab03f01e0ebbcca990c473ea4deefaa3f25c0349bb98df20becf945284062b969d18affd93b1232b0ab5c44a4db4bb89f19ff3fb05864210c0566a2696156006232171408e09c0320e12aeb34f5b75b09e3dc6e637635cd357e015d7ebdcc50e23c03b4b02bab5e42e074ed80ce550982842ddccc10e5a843a4cbc71ff982c210f7d386f60f0ed58e3dae42389cad953aa67fe4e0b4ffe3858b6a6352af75ea65a4dc536501a6d79088f43952a1b52c37d764141affdf03c84f956e881a0fd783c2029dbcb8216437de99a886cb044dd4473d7cea2aeefb07f377b166243bf3e1e2d46d0d4c2920906d3ed194fe33f11a185e230622856118c0edcda8236b37fe10d41c33574d51a9190f935c3f7a5d927f804a68f6d4e5439d38d041bbff16d3c9ca5d0472d42ccd5b099822551c5365e07caa7774ae615f6b09942286b621b1fa8ac1855d66db532e0f567d0d5f49b68ad4b1999b4b47c05088eec0c9d95e5a770ba9abc954117c6674932d6ee67234e50e074e00814614a3d67f1acfb69a22d662d2423526b89c2d243485fb48ad42e0e13bc5416ae0c692007994f4e08676e87dd4b6bd655213ca743fcc6edc9d3d3235e62cccc4260928c33cb591bb390a160976f800d1991b18eeecfad9b411d96306b7a06891f0cb6b7ed760f76421bbcb11995b15f4e0368e3c32e3849137003d2af8fb1a2f927d28f306b113096e71f0c8011c1eba609289319d2953d7df1e37e08a150d9f3a1b6ed64a8b9fc2f248742950bfb1686aee6cd612088602a67708cd6823c6103b6ef3009f6746f830f0b11ee2899a068522660d30a2c2e1756731ae62338a7dd838c7524b38d7e05e5111222ddc61c815ea31ed593de09b225fc6c14ff565de4fbe97b568addd63ae123128aa0c359c2e4eac06565dfa06e44c6f89474508499b578a978903035e2e53627706d78f77d9c45570b040304c029e0e8771da083e5bf88506d4ebd489aba9b21aabfd4588c951251552a9cd1608141bee7d4e62f7741bb9b6edcfb50a70139958bc23d580c03697fda6aef932b363e621c8eb12e078306801a4d0cf172aff583423a86dc213a8f0561a804767b0d9c3173c6305df725ab41683d05df6cfc5072de6cd3d2d651addf5e76a8e8da9f28756f237a77741435753e9e887d461eade37aa6940e169b093d773d111738ab6bdd5c971403002f5f49662e7db4e9f3c6ef946b6690381c62bd42fcfd3e9c94d098063a5f81d438c5cd322e05d0141b818a645b26a94afcbdf91b0ed8d716c1f8b184ba2e527e0b8661da6e0d6f8e1464c5cbe50adb3b370e8f610a65427d741ebbde65c4e01a48c8f4c0ff62dbed149b615ef022b90c963b9f438a33ba416a06e4499d8e53c8589638a9c37cb23e0281c28f42384e36bd1eb07b731cd2e264e12355af1796470b72970487234dc1d8b4875a1173fd35876c05b91331f0d8aeebd57a677059cf9f415b8b1c76b0a45d1f7147f286052351209f2d7c0b5a0b34f6a42b370e48a468b4a73a12a2a95b81bd0a1b1c5236b868c890e2dd6ae89088aaab34a7487757668167b11b8b0e362959b37a8bc1f6242839db23484c8def2a38fc24757754e946bb4d66f1bc528c366dfdfd480c9bbd0af4a78699d8b1aef05a48b1ff2684ed476452a3d195442ba5b260e71f99859191e086b248638b4488c64143ba5883ca4ee2d57457fc2dc616ab16288b050b2e15ee5a744491f06ffb16bf85b882629162b1a4c2bb253564e8e6a13f2779b99d85c858745848f7eda07292548ed01536d824437637ea24986b5d516b71b6d85b70abe85401a9f0f45305dc32374f47480e9af20abe15a22ba857a0592c2d3a16af05b48ab416260b9d85755a74a41bca57bbd13c1d0eb9a4953bda026a7692221b079d14e75855d42d9a2d90ae85a1a11bda721a15889e4a2226e906bd5106254cfa9a3bab627731da57fca64154df4262b6c016542ad215b4a8e0b4b809be491b1eb7d00224647237f624e4ad5ec5bea2c3a21e0ba85124ef358e1d12841bdde2862e298936a805540b297b378e4e92ca41cae27616d2271a478d04ee5a2cea15e62b7416d56da1c68b7499c6412485716d0bfa9293b66cf159d4a8428dca24674d6905df0af112d3e957fc1635aab0414972d0942d9a67d1214662deae6f01b59fa4aac68126dd3859159fb3f0544bb2756515388bdd58a4a79d94745db778f22e29b9452b2e4b5e8db798555c5be0a9a8b56055f863d1a97192321b87ecc1a879e1713d15332aea02b21a2137685e2149c6e0f2e01da17a4a4cd4c75d4220507a9215f1d8916f284a72eb78317667b5605b8b8e6187f94a7e7a1a0788168fed7f3d1131c986326d0db4a21f761c9149b8b4859652f246a782fa0aa8b924636d7605bec5c6a265f1b7105b34c5e2069a24e0bcad40c1428d6712c1360e3652cfd9cee2c63fc9d72e0d34e9769bad287cc5530dc96e9355c0b1d054c1b2f0af1859545ba4aaf065491a27bb462983486ab89d159f85b845c52265e197161d1c2418dd537312796d1c1cd2ad9a0d14c9ec5d1a72d27fb71a9d24754b5b3ccb621bfea475933269b959ed0f82309220a2414593a08deb9093bc699dc5cb2e416dc3cd305f4742724db7e8d893906f835808f69ae4d5f88a9aade0b890beddee2d3a649380e94ea82321ba7a85eca18d027276d7989584a68d83fd5e4b81cf1a9914426c6ed60aadb509b6cf0f772a10f1c1a332a30d15dd0ec3396877cfb0224d9d5f05aa16b54f2191a071b890fa9ded4bd000c289b87d3dc9f066839d945f9b7e851aff24950d5d45bb0adf626ca9e17c5f61c34752d1d02db0aaf02cc41694168f2a750c1cbe2c91ebb75d54960babd6d0fa307015aae2bfe80bcd4dcbef9545ce8d82d2f9780f5cfe02926333a10bcb883ddc716c005d7caeec8480216844abe5c1dff28dd24b1dc4a7ce30c6eae0d02184106e595ce952ff17f34fc491ff22b700e8e77539dd5f4f42a5cfe516ca700c7cf6ee5de4eacd224949947c3a41143494369ddfcb1d84e93fc6f9187baf5053b5fe42c820e91692043e20ace6e0761081bf8a536965ccbc79ec5b56f921e3744bc46824c710fe6b801ce303407ef7f78835c8f0bda98c4541c1ec9d9922df90876d5a03b094d5388002682b5f84988a40de5c8118c44162bee7a13467b4fc81f3e6da5a587887923445c2fea0b5983cb1a141fe2e4717afc59a13ac3c5ffac785653a1a0eea9f3128af83d290836c588693cccc699939e999c2a457fec8f64cdd4618736f906d462a3f607d814b5f81b3f13d66d59c0d2f1a91d402d47b1581cbdef453c6c586462161351a96a56345cd4077f3750d9a45a43959bc64fe9bb1d0a0929358a9871944cc804bebd2410a4e91acc020acd57ea716fccac0e79c284aec52f43dfdc42a01a334746429c49bae726a347f282b8eb46eb6f51f54a298e72a4f213e7b80a10e80075330fbc564f8df3eef71a92fb20415b902cad31bf4553a84c7f160a1ddeb1deec17ffd59a0117c33d2df4602b111c80f95309a284960ac0ab6e6f6aaf4daf2ee426c5c6408c1c87c05b24421a481f897f259fe1a9e72aa87d1682203d6ed190953217041754e9092af5182c74311809c27e1be9a67eb506b5b74165cf173755817819e9023aa5e779fca90c7a8c3197e3703a750d5b61e0514bf0ca3d342649f0ccf69386803d54fed7d90858d77b2a87051b40535cb9ea3b544cab124cda817ecb738bd04c8d8e50d6ef0d1229ee3084b517fd40b89ad2829f18bdc179f82dfdf2692102091c282df3aa0841350eb3c71b0d7b2089ba38928a1d3e2ab076519d90666079dfd41f65469a0eac9e3073d6cb3539dfcbd128bfcf5d218f40bec2545785a498910641dcadfd6442828c9847741d6ac548724a509efdf950fa603362e126cad60c78231eb6bec6c0b8a52916358a5244abd7078940abde6d037730cc6f310f113bca2f0ed9807a5bad2237f6da1c266c45c1f2e4b693d7f49d52afe4c672a8d7ed506ea3d1918a122c8561816374d8abcd98467c95ff22c43a0ccdf87d1e2044f400e531fb7c2e2c32df694c96feadda4c79dbfad6645731b3677775ee846e599ebc14874aaa5f94c1d21aad8566b2a405c2fab6abe603a73c6f7341e48b73052cc376c1fe8e617109daf7378c653df7b6b8be8f433713c139d7e66305a241828029bee1145465de43e5308ef2149cb1909a55618a700871b8a767f07bfe08ea5fde832cb3fec1dac4c1d58ab8bfb416b82a96d147ca0ce8b45de704ed47723b8483166f748b2adfb4596f1b838fa3d8c0c4e03fa215a6a5c4016d6a60d9d35c27473b419ed92b0dd585d575cc045bb3b66a6a966ac657422f1f607453175ce6863968a35c7bc9777f1736cbdfc80543257a998c6c1e70b2088150167b40dcbc088ffb54548c0426b5434b196104224b27b73e50e7e0694068c06b387a6ff6b5d39ede0120ded1217e4025cdfde79e7bd57c313fb994d3cafe7b3eb66d98cf69fcfe769a0fee49493afb97ff257a7f31ecfc907777017447b3a09e8ce96656fc3352ccb762cdd7b6992f82023205965add5567949979aedafebaa15c7482446095c1fef154b75462a670d30100b707dfbdb7befcedb81a2684a23608661da73279e9e538b5dcde7b70cdb4e7610dd79bacd743e45c6d7dcc7fe3ef6323e0b42447f6474309e749e871b3ee982e84f27018d3ddb964d6ddbe0679d0b5fe0cfbcd2bfd4e17ca832778841a25792945242e8c15a83e8e936644627a57452297330d6f0532247d3b711640459e263cfa284c408c402ac816280e13f9e0fa36108e6ff29a31094524aa5ec48d99112bf863bb2133bb2d3e9c80e9d9183e73bad156a6bbf73e7f6747d1b5ee3679226c9c1c979018e86df115ce8794416a84a6107ec435fe1362cbd0e4499eb2b110132ef0ba537233b09a597836d605f82a406488aa0ecd390c9477d1aa9ebcc6a75ec7134c006ac66d96758ad58ad17eb30c730af8efd25cae8a061b3629473aae786ab972ed41fa5e2ea412932fb5005857535488fc2482f3e8db4ddc6de6a31cab7e106e952ebd3408d7d2663ccda6b91ce2bbdecb34c6615467a18f695824080af8cf35791527635a3d169b41be7306b902e1bd7fa344a9610197d128e066458f658d623eb2a50c56ac9e751924272d329722252b236241e44db0f1d7a5400070ad8e00d3f56a6693283b244b33b9d73c648639ca50f8710b0a4b6f9670f8a19f6fe11cb8cdc8f1decba1c12332c62d8e390731c026569db7248c44adab36c843764c5c741cec49fc1a40d86fdb015c0210c1c9a2f6d0858acea2727582119a2a3151a7e3350a233090a02efebb307d7001cd24382443c7d8898e290483a19754087fb2e29e0374060fbd706e0e8c131e007bc43299e678c9dc7a6cc3edd8e272d1f66dd0c9e0e7e0f6809ecb903dadfc8d5237f2b9ccddde98c13e74ece39f3f8f46d47a40ef201d3b7e12fa11c66e86f3af3c55eebe836a3514ae9e3d9ed1f7a8a74e73dd83dddf6709b50cfcd8d5c1fb11c922e565e1b3de07d658a3fd4fb3acd349bd97fdb6143362b64816ffde4071664f271bfde4eea0c440df2017bbe87a66fed3cfd3bafe766cd1f74034c3f43e168d88713a35896659e14fc359eb78fb37dcff541f4bd9e4e0ba2b7ae87a6350cce0dcbb3466b43f488cf25def8d70f89727ddd66eed77b6fbc571663846f7febb2eebad16e3331deec6117df6af76f47358c30d26d067617c2ace3af9cc10e34c23ff4868ff76f950cbe6639140d6dd6304809de346a682a3d4a51e40bc4d765461878c3148a7cb1e12bf4e96f189d27087bfb0d506511c757977b3dbd386e246156d870830622026fa892807471678900e7cb2a2809867f63fe0f89a2e908df6197b197298375b75215d097f5af6b5f7615d65a3fab7546beac9dcd3aa8cd8fc3e0388ee38208228319449a734e381d44c2fbd290906a199d9041f9c560a5e10783d60703283e1920f1c9c046d3344d73bfaecdb9cd6079f7d0b40eba600ccb1a6e9d7675d8a5fdd651ad7136dc068137a7df632086fe68f8c500474b193a82446e33f1b71b20206a56b5209abef75ffac578d8c7b285d005d7c7d29335a39c00cfcb04064834fd0f06456030e46297587aae49cf2776ecffd2d05c83d5dcc79ed28c37c7cd88ce494e079c9c5b9b770df6f73b62c9114a7c5fbdd1d01cd8cbefa8be179cfa4a971ca4be3006662cd6486cda1bf5674c400e516bdf74c031c6d0d7d3941cf192ba6e396e1735d6499dcd8c074ce9eb33ecc62d47d431cf28b0cd8e5991417984066805d8aa6c33d2b7fa1746b12e7c81ef753954b12d90b08746350d339419a804f86509cb0fbdceb3d3f303514a996be4cf0932018610c226b0b4d045601009709e3106159c101a68365a53024a410689349b2f6c401fb021c285920f054ff85280c447448c23454040a4a2117b8d5ec6d22ccb1b890e118b44226e3b24667c81771c423b0f72c5e3103006465118d453f3872254bad3f02b020993f6cf20cda8fc48b366236f0f9788a78b5b176d641cc91952c03bf6a05dc33dbcddb66dcb299dafd99e7e677bfa5bd57ee8acb369590f4d63d9de0ca549935e850caa641804c201de9e9ef3358cc26d1ad8bd7f5d97e76ba847765bd3527b0cf374577a327bb86941b4d6f5d074765f6236fcba241f018889983140829ac09b0bd5c0cda06174cac614f0e6e07358e54a803e106d4c30638c93870309992e60c2880d0ea49448f85c20c6870228ae26f3e1cdb2ee422d035a481cf9b2256f24121803b5dcf3d2e9d947d424193280e25b52848a1ac74186a3e7cb1e7c7abeec014acfa73d58512d7651673be4cb07e2c36a4dbe3ffd8cfef061f5852cf1bd6e3be84fe931de8dc77c99c3214bfcd9c4c69fa025607f286be83b01cf8fb376d85f9d0f0f9677bcf62b8d3356810bedef592cd1f1ab121dbf2e19a25fd0f09bc20bbd7fc4eb77fcfbd98d353e8e51fb5b3f76da5fa8c1abdbd7cfeb3331b43fa7451acfd7f7749db71df6377bdb798ff6d78df88eed205367baeda8105a38fd6b4dfcfa36ef48b71cf16b9dfe90c6da8fdb8d1ad283ff23d6f0e1d1f1e6400c225a0a9b8f8b2c96488144e6a9215d760dedb30d675fb36e7bcfd76e7bcfd6a968addb94d6ac5a0c080dfd83d3dbff981a731b0dee4296ed6fd7f9acc39fcedf4ed4d8b6e37aadc3b61df5f3dd519fe60fbe301893830f0cd4f73c90a92bd5326d47ede87b687dfa9ecfe85f4a61e729842cdb67ddf59eee3eedb6ef742a7acb706e3bead5a477a1a6144b927d363abedc018d5d0dad4686fb837cfd0877d435f2e9571e33d7c41df165ae21bd28a1c085ce1a7e3bf852e80399da87474f38afcfae88451aed15ff66a8a26b4817aae918a33b087680d2311a7e51883185165350a1614c0ef12164a95ff30ea2b7fd2aedd4f16b85428570d6802cf099c88f39e6dba79937a286f0696276887d103d3390c883d659738d4bf943ad13cb344dfb2d4a6cc62d4bd9344dc37ed3321df5319a1a5bdcf811b57dd011f09d7fa3e022cb2696bd16b128e3bc91a23d90b9b38fd8bdf72f1f71479681c49981444dbf6e9e6fc0aff18ad1d68f30ba10e4fb14565abee7687945ed1e180335cc3448b2afac7947cd6342ffe9f9ca20f3faf0a4fde716252dffd2c148fb4f28723cf7fdefdb8d2605c8c43ec2f7e1d130675f371ef46ddecea33ecc40a2def573c8817506e45f6faf9797ddf57fe4141d7ebddc41c76e6e39e67b9e578cfa6e3e3c3a03908587f3907f4d2071bbd9e61af9b986fa887ae68bc579832cceb72b6dbf42f1418133b57b31e6b890f44258d3108f1874cc33804061e010132c85f6cb090d57fc370d311ac4d025be5f68e9c663fefd995d0f72e10b7cd129339028a50b5fc418eecb2e47fdfbbed9bc2590b8e347d4b326c9a074f111415de02dff0289daf39500164238220858d090459321543431f283228e788208fe44160ec2e2cb8192cf092620216c35c8c125e38915dcbfb30726c6c8c20745aa9002264432d791219e40c1133f686330410c2300b1e4cb8115a0205c10164f50f104147a7f485be29e6409668004245418c20623900235c25dc171ab261cd724146ac25dc9022414911773202aa80b54bc1af231f739f18920831a680a1cf5c3f7dc0e32c1839ea1e1c784496754dbba941cdb77b24ea7937aeb6860a675fe99dc3a1aa8cd4ede9c66a3829e7f2bc4b61bdb6b52c7ed06a66ddda681baa647fdeded6ff902f52db6cd6c340eb3bf1f738890e5fe8fa92164b9f6958c74d4df0d7234d459bedb8cfdbbcddc97716a710c7d757b072139a4087652d319f59c7b071d1fb3f302b95a66185b826cb14e21c48350880349c1712dc0411125251d4c492595b17b0a9a02cb5905863f1f04043c5d36fd0bc65c3f7f8331765f4db9a8a9a53536e5661d0bd0d4d25f80960fc7f82620265f13453e269280a8c0842802153a40c2a90a4d44461441f235c104e80331f996c8d19a86df125c44110a45c171d1dda3478135e752baf41897c822091531c627e2d76f41d79748ee0de00ad4dba3e943f88223091270056a28700b1a6e392ca0a3f46d86cad8828e119492d261266d2449c3995134944158f9504212b49e5554b4195be00d3f1c11067e94281e65a7428385c50c26ac804a12bcaa70873db68d113e9d50bac0951890935a457a51b4042ce5298efc45832bed1d476a02cb3edd482279f3c6f5ed6f3652c21312356e94807764e9f83b4299f831caf8a194a45468481b1469b305f11e4b075f12221f8a043370dce348b38150d220a474e934082025384eea0c3404a3462bd8b7888c73043de88203f503f4a0deaebd0a385e4425f12607c6c41c0d7fa5e187e4d3d0090d3f258668efb074f11b604cd4fe72bb01b278763c2975779f3ea7bbbbcfbc64088c89930ae805cc74e9fe6eafd59c9ccf90e3e754a807f512221ef9a016e0a84142602d640efd968da595f4621645e0fb201260491a01de1247e2482ea44b2bc6eb772c7935429757458063fc8f713aa8088e9a158378b51b51514944c51bcfdac7d66694cb769cf4ead7bf3aaaabe6990677dff39728133f3483b5d7aaca5a63487a1587fd98c3f46d46be0713bf460d3ad6f7fe6e41e93a7fd2dd8717bce0052f785dbf5b503acf9f74d757ec770bc420063188410c7e30e6b87fcf832d2d28d87f3e9fcfe7f3f9ddb2427769944e463ee93e9e0eb26c1d4eb672028c24b630e20a98962db49041c3cf8a1b197b70495b5abc97991dc9aefe65f7b55744554a0f302625c7189ae62d79c8141df3a996db8d4bcfcfa609fb89844d777d0629a493529791629d99e708b278f6293d6099c3c4ba3d8b6827ed79b367f62fd74c1bd2d6afb986667d95b0eeeeeeeeeeeeeeeeeeeeeea89bc21fa75ab1704237dee94d5e1ab96ac5c26979303ff2d1bd1873dc3f942a19599fe5382d0d45a452c9643a9d6e6e501aa6345cb134841042082584104208a3a99583d362e1ac58aad5a7faa0c3b02e0e6e7132e7378c76c780349dee0d4671a9ff5aaae9a7f8ad538e8e7e92a393249d6489ca4496bff8a36e0a7f9c2ab258baba2c89ee0893b8284b27eb5235f2975608c763fd8a8bf872f839ef43deedd86ca4ca5019aa9041955d5508f87d67f88d0ff09bd3d400d4d334e42dbf6f017e6396df5c8ddf4f80dfde00ec8af5ac006c006c0c56c5c2f0fbe6dfb8fbcdfdefd7d7d337a4ef45e3f5b53d7d85f415d2d86b0cdb5863107be8218d7f7b3a7b9d71d9ca5fa6df0b7fb819dfed150dbd09f857fe4540de17cf9037e60e900d7065b83a94a7c857e45f5c80bc31c79237f735f27e8f00797b03c83ba475907f57f2bed8cb1b7302c89bfb00e4fd316495bc437ab67c45fe8521ef8b73de98ebf2e63edfdcbc80e32ff4e42bf2af0b795f4c236fcc710fcafb6770798728cb57e4df16f2be9885bc31b742dedca3e4fd9e8cbcbd95bfd4d027ef9087f3f6feb94ede9c56b393fc5e8c39ee7ffbed6db9456f27c9f857ba267ce26e1ee5c94c11a5222aa2222aa2a290969928bf17638efbf7bc1d9a32b3e52fb06567cbce969d2d3b5b76b6b4cbd0d3bdf474e9e9d2d3a5a74b4f5abe94a12cf9a190e7fd731cc6176569995af27bb15ac22af6254fef5af25aba57c7ffd25a7721cbbde2dfb8d2b1aa642880121954d91a49bb15260dbf2a78d003d0f0ab62889e3ec0974bf2398231d7378142257173e46484898892764f11e273a3b9f495ed25b5b478de3fc7e1f936a47f294270fc991202bcb31569a4fdb395ffbd1873dcbfe785fc9de42f33ee4b1ad92bb45f293c60bf7a1b991a894a20f07ce81bcd7cea49afbe27bd5068daed019cafd4e76aa534b26e2e808151b4b52a74a3e1a457ed461321cbd4ee3663030f21c021b8be427566350cdb68aab6d9a5691aa66d1bcd46a3d1cfb4281d4e8a423fd3b48d066f345706d176a3d1f6b30b5e515e1dfb347646560804f68fd275901babe9e5ac17d3228c22c628e59c935221586befcd02c3b02c1bc2b66d9d0e0b63fcf91821c6181fa27c4dbeaf89164d92a0254a1819880a4d4c4d4a4d464d8468f99a155e80209b30ef2ab47f840289fff542fb472d80f8b09a066491d7cc368351a280f76bfdd265a3a878d23d8b5fdfc68d35eff67dbaedb81ffd47a40fbb1df7b563ee8876dbb1ed883fb7990b84221a42adbeed229d3ce2fba34817687fa00289861f93151324f4c4999c3e3aa0b7f3f0809e3f8ba8f53131c448a9aa5841ac06d3112bf615d36e482d371d396ebef7e97dd7108a0b97a4e45fff9b83da94fb37a496fadeaff7ab2a0b2ea6e06f6db4fd6bfffa53faf573f2f9601928db8d98d2f7ea6a3e9b8e782fae34a7607f1fde90da7e26b50db7186a9c4aa8061c37e0d043071e484490481729374dbb2e0b1a7d5973dffee6767db9e9881f1322dadfdac772dcb70f377cdd48b3cb19a1d34eaa9353858eefc50f7406371df0ebcbfbd7efa8f7a5adbe1ed357760ac487d510b2f8fff0616fde7207b63be8083fbe9441151a6ae8032db2acc3de359c61d97f5eb8c67f7ad43e3cd2ab4fb37fe6f9c2b9df49725543a5f2d148499496f42164894fa5921be98244a2a412d7dcb3a9cd5cf8a1f2e6fabaddf7a7bee9f09f28e92991dea5a2e174a821a5a13fb354223d9923064db3bc919efc2b07aa638eccf117c9922c95cf0ac380670481cb5cd7e4bb5fb1c27b4f862a420008d100049817603415365c48e5608283c6e700950d29aa08fc0002a0d5047c80c30c96057a50010ec7c7120cb4d0d2c0143ab0007384f040b482c80729462823213e920c12113b289d948c88c2f4311dd1c1099f9280e2c67393e4095407e5440e525b4a0a273eed63925265aa2b9a5861ab58042622eb8aacb8050e702e4e1790452a69d95604e30631a7c61c214b88a8c887247a3485802c92e42425608c24a2244b368031d208136491358031f20864912f4fa016de92c50a578ca82428144a060a85ba99567bcd155064b868d6cb29a594525a6badb5566badb5d6de7befbdf7baae6b659bb9590dcd4218cd539ec49338e24638111abe0b015f9c04efeab2300ed77a99e389423e42a5be297292936826d54cf22baf1051178ca8568b063b08534478fb37450a5899eabdf68331ebf7e61b3f18b3323aadf776d1fab4700b6b5d2d7b73ee07633630f7de5d61e1d26aa5f06f05ff50fcc3fc73ff26adf6c2dcdddd7dce39e79c94524a29adb5d65aebbdf7de7bef9571f2c10508f907533e7221607421b79045b802bedc6857d2a43a9d4ea7d3e98442a15028144a2412894422d1c5f2bdf7e5baeee9c8e9743aa1e0e0e0e0e0e0e06032e2cdcdcd0d2a090a8542a14e74f049abbd3f4530e6122212894422d1754d5aedb5d65a6bedc90763d1462a954aa5523268f7005225857422491247347c69047cb121ab34e1dc16cee1443ff248215942a53ed5ea743a9d4ea7d36ca15028140a85b2015330e5163e41cbf7884422914824ba17c6ba3eabd56ab53a1d399d4e272c4d2693c9648a1e29c327ad28187393a05028140a75eff549ab5dad6aadb5d67af2c157d661060d762e11c7244b42481fa4103030f8710bf8a283539c9b8bc229ee7b95b772d6e9743a9d4ea7d96ab55a3a5c1b8d68f91b2a5eb5544bbfbb9528128944229108bbe1dff77ddff79d8e9c4ea7d3dde44aca38f1495b30c6befcd9c56ccdd66ccdd66c596bad4f5a4522914824a294524a29ce585edd7c73737373731359f10a0d2313299cd0137e4c02bec49b3965ea15e11147fa9267a2acd3e9743a9d4e3757689a37fee0bf6e2311b47c9796cf1ab1930fbe2118ed445997c62ec61cf76f73cc228cf9a42718538f9c4ea7d3e9547355d55aab4f7777779f73ce3927cefb8a44379b4c2693c9648a38110746a3414b11d5a049533c4123221150080da30f508886af01e832f05e8c39eedf8b386e8b80b7d85c176068f9d7105a7e96002d4584efc598e3fe639e2d8c05638a405994455994455994524aa94f777777bf355ff96693c964329968d062b414119671f21f8cd5128c992fbf12015faeab85bc3f9f1933b26ad7d29c7664473863d973cd1bdbccfa9b63a694524a69adb5d65aadb5d65a7befbdf7deebbaaeebba12a081c6c03156c3c8b0d2cdd0f0822f9e87efc995095c91dfb9eef6c1da8cd5aeaa956b75f3f61eb48cb9aa9280b7ad2a140a8542a1502291482412f917a38950b375a2ac12680c6c47f762ec76a4adae2a7fb97756d5acaa595594524a29a52ccaa22ccaa22c3b5bd7755dd7856118866118dcee0559ae6b2b9d309a7f17d23882e3db140d7239c502755330e726e298320f0cdb03ae4ca6a281182a9dded91b0840865d777636070440338f6b8185155064d4cef6c0ca03e0051768a4806c67ef3080154f0001884105867c3b3b88ce08105fce11a484e19fa6fd55c36af7b3db712ca7f080218dfb46a33df5a4e730d33fab95baf6d9d4bc6a557b6da3a1da671567f0eb4643b5f699d5ae4bd3a457b5cfae866197966598a66d34db775edb681c4689cdce0ed2e9b08d46cb343617c0c0da6f345ade6e5c0f6a1b4d8597f63664dc720a10b8e68dcc8fd8a6a1f7bd3a65978002a5962204d31aaacc5172c025432fcb5762378b687f6aa2d5a6ded044ed1b85a4fdef4613b58d7694142178e394486f8c85ad46d8a37294930ff6a8608ca5b9341e8db6af700acac40ecb4b1d969b3a2c3f75587ed361a13aac548795f2947c85757170cb53caf1945ce429f9a8e4248f4a9e503c2a7923c3a3429d7854afddf3a856235f712ccafb4958c6a38c47ee2bf795fbca7de5ee2bf7955bb76eddba75ebd65530663e4e394e394e394eb9e314b6f2421eb6d238e52bfe598a0deeb05625edd153b272254d2aedd2a31a69773ca21127de4c5f4d195bd24e6dc9736cb7714afbd7141bdb6d6ca5fd2b944149754e9a64584b7b8a10bcad29e5071cdf864c1101de765f6bf297f9fe79db9376933561ad784371561f4a3422954ca7508ed77a1c8e8557572533a1359d6e50290cdc8846a412bd41a5e22ab252a211a9643a95ae54b94aa5ba1d9a8d4c87a9e2d21a6802680ca581c2d097df2d302673794f86972618a37d7c082f073d027cc481315b0cbf5bbce7f005c0ef160f761cbef1468719bf5b2008a6401ad005f802e47eb7e88ff7faf3c1f0f336600cfe78618c8c156a48400c0d302f79b7b82060860318a025d45200961a2d0358f104108016151872f72d2fb8402305d4d2d2020b8e72b24287727272727272e2a493936ebb103abe7f1225fb938e7eada22aaaa22aaaa2fabba5d3fea4ab6fadb5d6dadf2d28ddf6279d7df9f7de1ba28fa8d46e97243154430300140013160000281008860322c1609aa639a22a1f14800d6f8a546a58389288c4491083680c116314000240440000640430180501b8b2935b6114a098675414a452b03a0b9e18d70fb96bb191ec9d658996b6ac4f2cdcff62544b18c96e63ef707a2f08fdd292ec19ac8f873cbc63be8814209b51034ae06241c526b0cdb929bad1e04c3fcd9d14c3b37b991eb48c14231864be600a5e8318863b747faa28fd6ba2c7e7af2ffde5e5727a549c939b7bddcf80af4b4ad1651a2923fde6e5e7de1224ff86fb9b72c63b59dcdb174d061a943ffce41816c6a4b6a9b1de67a4816b577a99a59aaec28750ff8664e90a2d272a119532cb9536eea7f1ee3708ce6cbb974a6c3a19f771dcc3db92048016d6a8b7d2121369baf5be992c75c92ed197f805774ddd359657e6e5be7dac1ad96acf34c28aa8ddd94bc303b5937f68d245d5e4bd4bf1d662a1c4ca3a04b10c0e2156ad21c412339458118626dab7504226e5866dcf88a8e1f34a713eb926820f1b9cf9e9b7047d5c8330c3e9cdb2dca264c4193530e1c74ef4345cb11d6f2d097e29d298f00bbfdccec39d34c4e5f4c801ae2fafd937f08dd11313aeb92b0dfbe3662b96c15cde2713f047a812088b894cae7289cba7489f0af661f348c53fa02adb2fc727c51e714a2fd6804445cc261434ae421641a0ecc2bdd68cccb6474389569747390d0ef146bdafc2acd2ef012a7e1a6eb8d936712fe9927870910590ff096634c566451bf876c2eddf0e97054565235918e76406fc905c1505561b4a4f24acc40935398376901b790c120e834be5133ccee9557670a21483f7f32921c69b2fe18920cb52c6849f29cd0f302caa57f29aa2cd7afbd472de7689000aaf96e533ac99914fd5801a27c4488ea7113da8cd7e4ba5a269a1dad664998e1c621c4cac2030a4517d2c41637d7516e4808d3088c80bba387fa411acec3b9c104ea30c4682d5252272838cdc86e04f72434187462e6aa0a10ba62759e681066bb84bd695034b8077bf6127c98689f3903548ff1eb375cbf6364df2c6668885e1a68999017ceb24abc9041cffb177020e08c98902c923c03485993a13a1efa1ad3cf5c50814f71e32e78cc03bb43d43932549a9d55d0f2b59a080a4c304b35e8dfacfee6cc04e0f570d34afd0fbb03ad0037eb06fd11f9339a999dbddda73ae7272be654a302d0a71cb419dc1544a543206258eb09d04d31a4cc2c9341cd030c58f2ed1e8be1c612897fbda7f1e6fe4fc721d967e06fa5fa38a5c246d17d83dd591f7c22456ddca2faca6d51b824194bcc87d188426d68bc50063b36e95515e2ee7a5dfe4c790bbcfafee7732482ad7eb4902aa68f9c963ab740d504ab092e2a1e46ddebf2f7f3db24c2b9c66bc7157ee1eb090a681c58f1eb5205804d11092be56d55bea4206e4b00790a6db9a7b1c153105229c71e4f2f283f8c491ed6c0f0b0c475f393c7030384ae713577df81156044bd152b3166b2582da72c8dc09a471e6a49330645ee331d591af04759014f2edaf9685f9eb6a3e6d57d0c7371054482adfb1ea77fcf65e0e93d93a00c80926d245369449b29975b2d11b654fab730a5bd973ca2133f3ff0f1a35e50800b0e5e98468a7891908d0dfb211d93bede1c003ac2e7f821effae34bbc3f12e86242a8758f6dfe12c2a625be165ee50ef158b1637cbd82c49fb3c0fd191fabf143405f141042448595c4a82324e694a804b3e3da92f426df221e07a6765ce34d78be2c23fbd1d6fee39907ce4d9070131f6b376e9c5ae0837a84f8b3d0add3f232568b5454a9263c919570156dcf1f276bf25d1283603c67e9a4df2872df3a704910634363de75eebd5cb23e4f9bfb2cccf3fc2464a7f67587b3fc79a278355b49615c609cc726e288fbc6a5f514e5096b9c1f3c88bd592734399a8139c59c2debcdc5891f826ba6361e97b533f160dbfc5362149fd2ddec85a04b82a4bb6c535ab6bbf7839ee0bfcf0394e564b61c46a2db0acd64093d51a68582d266f1af8de16514cd3d98e5c74c60cce3431f620e8ef99959d76beeb3b955632ec7b5991eb0230702673647503bbd22b541df854c61936c6c1f9527adc5bbf5a66f7f9701ea375450f8c7c1a6fa5418d6d3e8d74d2bc97b1599a4cbf1ba475356cd36c7935f556862ec3d2e532ac34ae87bee0eacf82ac7c852e5ae182bb1ef7f364fad7014a389d025935e6f97b82608c01a925d6f8a0c75cf9fbac785f916143e98434f166fd74e68a6137f8ec97139b4ede4d7e3e05d26b7d71673d3af7d553163bcc6dceeb8a72272f2502136332fdc031946690a86c4ada129c922f089722b0125c4a12fed7b559f6cb5e77274411b7e0e1d2cf1fc307c4124239805882dae83ea834757a3a256cd63adece2c12be68c900abc504a4ad2ac8deb20f5e562dd22a43ebe98921ea31561608a5ac52d341e312182f12f0af84788d1a3778d6fc744d9a67c23fa9fe4c518533dd0fb9d26191384f200f78ae6433d31a5a333740a4f7961a79f668897612e8d2c8c3603acf6ccd3041ad7293a687ef00ec0c7b41a12f074ec9913e8e9fdb956b722eecaf532e80500364104ac00c428981eb8dd7970a84ea85c6550700650fc0dc63fe8179dc01cb8f5ceadd4b664d85a7e26082255b0b6f628878017c714d4cc71bcfca28d3989665a63bf31a1cca06a28f96b0be8fbe6e30a61500f99c031c9e58f554725f18bf6cfdc83e62d9ed6fe6f347b25a08170c2573ab8ad77ce950323e4ebff112743cdb9ee9de7c46d69dd2cfc761921607aad3d4345d4018cf4828dd9c10070dcb0a0736c28cae7d545cdc9e7b5c8b9a35357fe7641fd63db71956f5c044886ff92582c82adb6737d2eb23b63ad0274db685ac2a2d59f641d9e06b5992bd50999cd16db1a79fb102cb5997fbe53106d04e7ce57a62c8941b62c96117442aadee7e7b3f7b45135156b41359d55235ba3a795fc1dc86a48cbafc482ce73ff694c59990ce516cf9691529fd754d5630c3f285c74e80519c575d02b0b63515a991ed13d3bb79cde84e864ace72334939368fe1c2cfc068c4383d2871c7c0ec65a7042b504979496bf4ada18f8d0be97aff1c38032bb00abc905694f33deffc4b04a0b6e3f3e963a03c8d467ad4041cf87749068c7d70cd39090f844cdbb2517bdc8d1021c09193458e0cf1d39193a51d39f06a51a4d96d9ddfeb704108696661330649adabf924718cababb11e716c53979b2bf65f3b1e21f54aeeea638faf2fb0f6db6f388775c3f2cc0d8cf6bde546963558e3ee0447376f4333728136ba2023a90e299805e0b8b0a0623542a268dce5c25d8e10b4750a9a6bd5acc434e6b0c699d742b14dda9d4daeda58b2d355313253f9c0c20219777360304f088ddd074460141a8bea90bec774eb548b37abc94a69059d5bad41aa49db72102b5f508c2ea6d2a685f3cd4574e1aca29bc7adbd0c5a9c51422a0318c2510a8e64ff4a6618cbf68ccd74944ee0795a16cd849e3658034fc82408bc832516d788845ec3218f764d15f6f35e637a6ace2692c00a071fb8b78dc50bc63eb489affb0823e4a341d4d8ca97797eeb400124e00bc1c6c80ae6457078742a71b672786251a6a875531aa0d5a3a0f4fe1ea797b7f0134a786f1b42f7c64745804b408dd86148be7d8ad0d6d44390e8cc94247b3ba5627c2eadfc94433e314ba32c7f4ccad0179837015e82542bfa911740f26daff0f92a9368e3d4682a3bd59d90075878f6a24a0629e140139358d0a5e629ac4178bfa6602bb0cd99c5e51f5c390e4e8a7173752ed37f668c980ee44959ed6b286fc8d3a9f56907980b33b47e31630fd25def6324cb01a37008983dcc1f20c71de13cea02847c5db3196b172e51ee01e998dbb615a940d3dda7e04319d6d0602d7115d8d2dc8e910aab471be9292164dcf95b655bf98450fd219ad3501d9300246deef30da25c5d2b51d292a8966bf55405d5927c289572561ca2126062a6b24fb00e955a66401cdb8cbd34fbeece68fdb2c1be7f5371854da80d3532bc004c82558f404091aeca805e7fa3288fa1a9463d3c2f38b863d5111691b66eb077241a5485a49eb184819cd7584dfb8f6371fe19b7841a4816c46a1da20e2c79afc0d5f11981fe20dfc8e3fd9f7b07fe2dbb47056fdfd941c4e8ead7d8dcba9423cc555e182077caaf220dd3f2f49a91a4de35116fcf596e0543e9802229a0f9507581201dca996a755135f9aadad3aa2c5fb13a66e90bd6be00969a2af6e77a36266e861a0f363593765f7f23b0d07f02c3c01cb805caa210c01661eefc7758f60e496b833fb2f6eb597845d42f8e1c4e5e30c90023e51e39c067a34cc388223650cc483752fae0d7f8f133d2a735a6634652ae4673401bd0e2cffbf2bee506ce2658739d40c8ef2e9db156a135e50621bd77d989678fad991b18d57f4b8d2c6bb4c6bb0986686af376f4726d77793612dd6f4c508ed0867a572c01cddde8c80bd1e5270664576484e6e5bff4841a739f70a30e5e7364e187bdd3755a978fffa7049cc994ec0004efc2502f5a44a9cd402f3a8340a0a738ec38c3605e9428f4e9a178050253501e931d610d0a06ec5e14f757485ea9ff9d1abee70d3f2cdb6887639a8ebc54f9b04fa880ce3aa88f5cb6ab1aa86ac462eaef03d2f33efef8ac5acbea9366ea2760de5310638340639cf4037810a20a38db16491b471fe4b79d1eda17697358fc20f4bd921e5d510325d47fdc3c4ecb1305e7b95bfec4eb21899f9f73699f9be0b938a31530735c152d729dbd1e2d0357eb6e924fcf999a21a577afa9abb278695e82a6b930758c8f64c08ab7f5da296031b82b0971c4930b476c8b84230e1a1cf1ca65845760e5084880e5d5957bf3d45457f5ce1a486c9a59d9b6493d30020b682ab96d1308d91a1e686f00e51ded26375fada91dbf0c5dd25d2f95008bb0ac619e4635811551ff251dc80535ba01a449f53fb9702eace8ac609ad0fa8e04d2c4472bbdcfaf4d53a4424daedb56a4bff8739c263e810326a4c4776c499c06457ecf3a515a414b7e48310bcafd156ec4624aaad277009e4d6f9f8384a8dac43346eab7cd81b25046040b94451911fa2213ad354d3a4e27e76b379f0fed979ee48bea59df3e7e6517d35d68ce1f88879a75e6a50669c1fc1c4b7fce5000d0b147eebb7638ac95671b613c385cb2d60e0073c405ca92ee4162fcccb5f4532aba7fad621976704a96930705c9bf77805f2dbeca71b996c3edac5dc724af3e0deb6a6829a6ed6ec97731d345f72fe09518d518fd6b8c3a585c73f0b7ba9aa2a56fd615d19adc6e66ab2d35062345dcc87a7228c1d28aa34d0451948b53a53ab6ea47a0efd84fb81f3fc9090b8850e40e601e41d87f1642f2af1e1fb9d78945fc91bf237cde3ed63129e79bd5b4410ec3be685b86bf994169284bb7e48b44e65c62fb1ba8fe97dde0d1ad45b5cf7ab3fd851852d9ec873c9a991bbb3e519066d0f108edde2da17cc9096e204c1c644675c2814d6d224014045f9e4614b350be902866238313459082eb4c752d0ab8b306e4f62daa81a890c4e07373ef0ce8ae720c5483b872ba0e672d9c270e26a64e7b791ccf3dc86d2ccfd1ecc14ba3cec519c71789d9dfdbc1555aee88355b0b40d3384e88bd7cc6f0318e34bc52f137c7157718bd290fec98f904900736d81b4ff3fb389ed7ef4804df1c5f7762113188986ab74fb802ca2934193d3e2a1048278f6cfe82a148f07200daf0b8774030a0d7808c1eb96ce18db254ae8eb2742057e696c2f4226c0999b56101a14f5fd21da08a4e07f20de41f9652bdad33e1343a1ae47453716701cc88e83fd609724ce2319193bb2ba129928ddab7292110083409189b98a272a5f9173ba0b1b9e60371db2793d9820737bf2c7e56bf4a62fb69196f73bcd9b392e5a4977ae5125fede1a1d00a7a44d24b541b831b728dbccdb6940e843111a2bdcc7d9c18c987f7b89891cd04f670fe303af0752a7bee1c655ac9bca4e0859f8289f57a0d9bd5ad116c5f3561d4b0997e466ac6dfd3d47ab212bef4cc36b403b6d47713d86424874a19ca11b7e1ae1f1d5d10c1ab8df55b8fced81ab944339f7ed889f3345eec2f78579278ee781790db847f723c8f58c0f29b351a0ec0e72a96834494b94e04d18a842f0939a0d6a36ad788008adecd5ee81a19184326be2195946934a4b09fd29c844f2b5ee846bedef700040b00478b6e27549b038828b38cef5aacfd6b9461a429ba3e943e4ea025cf2eea80c5eeb04a053156cf252b7c6a421f801468253a70ca5cb888b6887d2248b35240e11c1f4dbea8c1258bd3210d4ca5beb45d58c1f042a5de9d5473d05f1902ed9383dba997b29cc264f6d8c54ed6610f083fb37b74491f1e6b83f2ad63ae9e5c85232ee8d4d8272ac25daca99b8ed2d366a6ade6c6f3cee072d8772a0a03159471984b5683574167a8e9e466735904f8be3b0a8888faa8f37d9d53c660446cb596bf672881343469c4faec11340f5a5e575708def15f93a4f7fb960c793d38bc960814d71c908cda98f4fb542f21265fff6961b2b77a70b8251144794741e5ce884f2a7c3f26f1417359688827d38558af784e29340676f738d4b753e496f7b213a80f39b910082d756e9f7dedfb64f5e0b6607f3728eed42964d923c7cedb4aaf7e412f76f9c44e22a70d4defc9fca35a1d3d2c241a517914638514d1adced6978707d8aec77a0b56883e9bc2a68a186429b807dc6a5d43b6ca92d674c5c0a4f19b0837fe3e0c9ae2fb9cafab62ff2f6f92efb88c3d2e6abdc3dadb91d30f70603882f5f37f4152f6313c98248c8167de28c9e899ee32ac4c01f60aa806dcc6557bde7c90222c23e698e105ae3edc3d0e798ee35fd650f48646b178dcaf60c76739131e03bf79dca1ecb156e76341a4c58a6998b16ada792e78905cd05b3361e5659533ad547ea7956438129a158a2db4a523c932d4d133e93e43476063f865570dec50fd1730b1719cbbc1aea08e993da6f7e17e6bb9bf7833e815c4534b40d2de069f790275f56e2a5d0c8b9299ca6ef5d9342e304145a138aed156975d86c9c0d185dd401967ca5359f902f44eeb9e57e5e850bbe24eb5e0a7a03b6902a822ccf621d94e7bc44d6e3cde9fcdce1b1891464200c1dbc6c52f72344f5447006e1ae437fe8d27b52d35764e6a1f29d04d82f4d52c6b21e5d2092946d538ebc18c1a41a3f0811148150af970f804c5289dc0ffd32614a16502708a43dfaa06559f0d5ecbf457e9368f54e64c9c54ab47395493190a867be40f4ce3ca68e044dc88fa5135791fdf112ed3f49620ddf39e3304e9d21756807b74e92f4da165cf7a1efa02e0ae87a894fe62908e68244bd901287451efc8d2363672683943dac3895877b7a9ee194c779e53dad76ca42c01721a9d6e8ffd8260eae459ab829ddb94c59d3ca9e67ec1bcac1b29cb008e4647c78f9f533075fc8603fae73ee5e071eb9cbb8424eb278d2a4b06a0b2a394150d75515d951408a6cd44294895768ede0a409754db8692377c0750dfe87c4a0cb53c4d76a13963447f81196860a965527d2da6d61d76e000e75d151f17869e2a199423aec14e87d555c185fe827b2a4dac71750c2b0b400be505f6568a5863ca0f2b6bc416fa05ec538aa8063b85528da316fa2a8ea3836121943ba8fb900307b931a614d6e6cafd4ead4a7427848624e8a9de7350fc354062fc7e780521cbcf93431008fa39f205c2ab9f9b6f408cdd73e703889f46f127c1cba0ff40a5eaee21a04eab4af7221da76354fc12fd4b880ad28f4c4822a562201420d4d293e065dcb8546a3700d2d6edff4f9d8a3cb54ba080b9a22dd7ddc8ea918715c5ac12e06169fc36259ca669cbbb58e717d432ae95ae14ab19c24a8bae0919d764b7090d9ea63148b3ae1eac7eb8e4aba6059c9cd24684ee14341f23b57399ea0c5317728d5f77435d38c071f45ad50d153e4045763bdd303daeca4d554fb0345afd00525256b01dd0c4bd96b9cd760795335e8a081022ecf1d78e2e491629e655dca554b5dfad6eefa3ef1ee45e7aa78d217269e93d8c6cf217a5668d19f489b1f51666c1a488f35f61871522c99f71bfe035f21a9abcf53afa4811f27d99b646fcd0e5fe207d4425eff2352ae42aaeff362a9e9b8121880e6b5bec1b65ea12cb67e5ca4e686c426229d2254aad44fa5d69bdfb3813e95b7fdc69c108453a3b3a15a248cb331f900ae980f2822c6d5d1917d5a55c7670ed97f87af322bf57b29ed05947776016e2d2c3f22fa8be611d521732b9558ca1ed3897075c81f89756cb61aa6a85400151ac7ea92c037c5f5de43022a252e39dc21a250482a190b2d946927a38e06117f95c5306f734c8b0b7efbb403738c6bace37fd089189c61d7cf8324a6a07108c81dc49858d66f6c19b529cb82c650a89f948eac71cc0fe6592f24f752aa25b002c7ae74859cfff9d9160bc292129f627d305cddcebfe397bd14bf482ba9c56278869d3d4345b99833426660cd58b0c4a8952304d1e91861387d1584f1e2c6479b2509179bccec089cc7c66024b500b945f2890df45455b444b06563c17c8dd9012dcfd10ce3e825c1da14ca7080e1f1111c121006a31a43a0410376b65a778a6820192c6cc47e85e7574572514650c5a50c7a1de7446ca289cb87d0edfc277e02683235de381212a1679e79316e231eb2bed0624a2a92c2f0532e4ccb796c9df48863eb1141ea88d6e22d40740d2f535153319826959d4658a22bb901874f0743d1269a8b9c8832a68b81aac9801108fee695c172f5c5ddde72aca9cec8ec18214b5b0df8b866a91156d27ede32c6367fb61dbccbddb9dd27d6a3fb822d38593c2723f6f2ca44ebaae772212d86e7dc84c3155dc90260b24c26d0aa8d5c2229c14b9165025c279616de7d5e8cebabd3275c20bdc2977b937e3dea9fa14742d0d025f1e6f9a790481c4a933cf3dd3db40f3c94a5181d1545c74b3c734b5ef69eda9a9a1b30fb201fa4b9f4e1bf0980be6a4041eaf099c5e31f045ba75f003df6a9520a25cf303f5e6e918e07412da37b719d5d6d9f2c68c5f022d85be6d8547fb9e744540d75bdda81a6453f73312b532b260ed2f3bf198f0e0118afc0686daec710a18225009f5384d4b13085a64771d4c4398e1ed319d21347afb8a7a84d2f8a644692c80df6ab1cc2ffaefcb8374ad14ae513b3da4d994c7002d1c85c790887a0774a078d95632c9266b4c82283d18801b2228d5ac576fe942550ee9fce8c185211000ca06ed0d31cfd6d792ec28a6ccb3b2de0a2caa64911f4ca48d5ea0b4a7c1f9cd31cd990bacfb84767ed278ce5c45fdaba8671bdbb78010bde0c263e9e9e845ec140ed222b6a4f3cf48d2cfa53175d3195d0b0b1fb9002094b7a1d17239270cc55e1771cfc373658b409294d5f195be8e8968de38eccfa74d4fbd3bd270190ec6bba79c9af64d258d5f1bedb59e493ee4a602519c7ac0a91c44686a8c0bcde257278c95183415ec99f51bbe8545b1a1bd51e313ef5b8dd9205cb4e4927c73c7952fca105fcddc7a9bcec432bb744c3a993408ae4e16830207818df2a87e2d6fab70319bb052d221c4072a448116b2e653340ed97371e936000fa9cc0ca5510027037c9b86666f1b4b938ef3e0fdcac5bb95618291be1257871758001b2dc0055c22bbf49dc279a11d0e05f6e8c812f3b4def78492b29c010e03767e67b6aa671a114db11c739448a45f280acb09e9924963e9f3ce31aa465772499443e545afd3c1e4134cb3a5ebb8bd75e9b44b253e19ea626859be5479950df1023de528f44ea9912b0587307f441d4d59377169c0b068350151f780d53be78bc6b73e9c90b3279b6d6fad6abed65dd21f968bddc59bf5d0c93e1ea9933ceab3849cfe307a0bd901a5b459ca14954a8dd8e0a5a2a1c720f6a10e3c1ac8530bce6bd528410ec152b981deec47bc57c38a8d54b889c2250aeee1060131884360ab4ecb7d10394324ccc7753a2c62611d62c30a51bf16aad7203d8682f262647a23a7cd7b7db26291bf8a947d3fe490be72326944593c43928def31d0554c49cc8ce240b48ab136d5dc735c872cb48708af447f5f7394e488edaae3e253b54bbf4192b33414c4a0280645d186a281d1b23a203dd1b507acb8f134eaa32dfa3f02017c36cad74190ec0dc17a5863b457d0dbc8e5c1d5817c015c0d00bc7cc1f596cb767f8d7b53b9d5dfc01adbf6b883b74f1e413c83c90c802be4c7e1357bc5e2eb0bef26e330e2010242b3d51cbe5242a355029984cecbcf32493f48874a43716bb379bcaf5e84168f56397e3a892d89d14db75bd0b8ab8932212576346f55399447ff01042cda16e132c5330709a839331ff8806eef84082c08e152996d9a9de69806d5c38918f93d5aab5dbb922e0b8a2cf826a1fe04afa0f26c52b3afb534671e03e4cabde8d99bd4d242a1a00004b49b50b31a8dc5185290e3f5e1242c1b6de1444697773b27225a5619481b67e291761354754d6da30ed01db5a8d355dbc5b4b698f6f17416c5fc167f4fbf7e6b1b53c5fb55e6e33cc99a4285b37fdd5706e0cc3342073a7943950dba7d00b64c8826e3cd545d0f38fa53da8cc81fbdca0ab04c0fc078b14b897fb910ca0dcbb6fd8e401ec6c14ba507218fc1f02ab3cc9de44bda15c7ad62f340d40e8f372f6ade9723858883acb9afc4eb60a4a0522acb5e7eb29fd20a0e1743a03a9f69733c13e4a5cbdeb5285813215060f250aabe37dd954261bbdfd1d9cd88b174b6c505abafa34d261d22a7f947c4f5459111eb5db62e18f25c9592a5754b49eddedfd7a3910281356fcf0cb9688bb4d331c6ca6303f7fa8108bfb5dafc9d57f0bd679a8ea30dd66865fb384554c284a51f58992d3da2dc6cfa909b623d506e52f287701d89ba8095d4bab38846b604cf487fe607e540ac6cd30c1d17d736f1548c4c608373212b71dc963dc586d06d1a72ae0f5a11010f8f38b0203dc11b5573acda71298ac9b399704a231050fe29fa088645fc300ae8b4b8cf80295a4251fa325fe519f23024c1b2953d7abe8ae4af27ddc5cf7a4e626a3a15235ada78d4c0dc5800b5eb4db3d592ecc9e3005d3aaa34fc0964b847e3dbf32ad872e6d7239a4082f6146a0e205fdfb8e7d2a85bda4c7dec9c10644e5bc349b407b7cf152951054b610822d6cdcc3a3f93a3c3e4f1b7c5a1e94f1e1e41964060c1ba5f3fe9e449bf30cf8cc911bdc5ea9161adff801f64f37cee571dfcc235109dbf2f061a6949a635bd9a5a9609f961e2f2b55217a1a87d00cf4455dc8d7502275f1970e66453cfe45639f99d120cbeed50cfb10c6bf5a0a8dc05ae195abf5187c16ddc889b71636ea7b8e91eea3b72050b4d46d3070a811307b9917ffa0478c0c0d95cbc44dd050a9dcc5c79392800d701c7b8e53b3b1dc2872e331777a38a52b14ead0fffc48b8b659d7fba97f152108d80867a1f2e8a47508ae2fea00bcc84af8fe55081abde8fc3f13019050afcd3adb290fb56b954ec5776e1db782c80c45686d35dc315a92977e10cc57e5c1a0f7890989c4eb75f4d8da35cbc352bbaf07cfc6af093a575a1ee101ce9a0af8f6383af1ea43f44b9c9955c846d97fcdd13401d01cb9191293b77e2a82871226e7ea92aca5b3ea20d64faf5b59d3f0bee2d2c1885c4bc68d36a9a800fe4a8d4402cd3270c4f754cd38d110af840af80a6d182e199e6bb1aadd1c866ceedf7bc2e8166bca2c8578e645098ee7a843623c14a744879e5fff2171fc08644628d02cf331e735e9720d18538e00c831a1b73136dd45b8399bb57f7d535c742c695b66286584f55807ee08f0097cf3c9090b453d5f1c9a21c3609d2e483aaa6b51952f9b9ae3be5430118b09cc1081ac75dccd144a9e50f8837137f07f2d98c0757e09136b7ab2f06853a37a7fce7a6349966f7ae1f39e1c3d1999405939904a5d64538e92f7d62284218dfa766f910e9a128c37ae643fd851c3a005f74396121b18098b2653e01dfd165ed2569c7d1679530ea575a6ecd47a70472b19a0460c47e57f903a3d2670b0ebe7a901d6d43a1a4857679a42f0aff0c51905b72f68ccdc6934de3cf2554b0f5045aa603f015522a158bfdad225d7bc2dc8b52271777855b9457b20bc1cbbb763565dc0a9055e572866ae2b2a01e0b246b882ee92ff459d929b32e430e4324eb2331f0bf927e489de282639d8c5752610baf597d6414610a96f59e465697b4003857313d4a5a3ce151d069ba17f9c44bbb349ee41ca853767adcd6ba3cde0579f76560cbe7303a8912e321ebab312524009b165450cb4b3e7eba4a7ca19d548cb09232446cc68df41548390fae45991231d078de707388249698b5a8e7f54540b7894e8ae173f1ed7d786eb2d81c0849c06af2d2a35d4d691c65499d51ad16735d9d8e66db88366ab15d72b26d948b9ae50ac41f680ff61780064006cce98f60f70c8aba881950dfd6de0d5fa03d855caab097f59738ea4976ad7344382dd37ce82146b7d4a78e611b4a39717e1a064ca9615b231ed32e5b01d80ae0685bf4719ba23249c81477fc559247672ac49b61b34a27067eb0d452b61422f3ae1bf77aa7b42d8de02dab2f1865afbc943c893782822bfa67f9d8f416e8621dbbdaefcfa43138dea3a45d06333cdf44bdf573fbe66359381db6bb5518e7548b5d01b4eda74c1d6b233a2d0047aa715ab40a309c00606d5364bce6b8b23163c953610da36171dced34bb58ca390c58baefa068364e66dcc88df569146378633a5d404608a8ab5d7f591c29c210b9cc554c21877c02d917a8c2bcbfe59b6e69322ce67fb181ce083414dfa56af112678c348261afd39c8272c40e8e124dac519d7f21ca8660d24c32695da0ed4301cd57bccff34cef4545750091b1d08f8b930023e7f449a8020415bb4a526e7a17f4f55e43711d60e30da0e83bfb43995b6a24e9748f4214b13bc7552b47ae0f76a48600dad9289d7c9469867fb3f58b86c46b5c96d4890fa728086604ebe03e851989f012881cefdf2c0665f41efc5d1aa7651be78c077916d1753397d3626961ec85b1c76796f6c9a9ef4056ce294a2e0b6ee07bccf271b1516d86f5b33244b46c587334e57545161ac67c305bf34015c86527c4e21c3fb2d44351cda5684110566bf72166851d028189f276dc64270af9514715b8530b60b36d33048404878d9c56af17b243337c1a17d45e3eb7b83c494cbcdb0d9210efabcc5005b50edb853847ae3251361d89b66c542cf79217e7c0042e08a4147034d4e83480a916d15e686cefdc0691313b49343fa083bbf8129a184639ae037a75e200c632d2776aa3986b64ad077f18d89344f2c4927b01228728284f3caef858f62cf7fe2ca73fa929e8eecce9d8c512404c75d032b8e8e5d5d89cf27f2d67bde1f748ec854483060c60c7f95255a5da00ca0e77d026239c26d10ef055f1b9469baa67ea675cf2af359b97376d4e6530e717e5a7f50ba7a0b414c2be2b0dd9dcffb6e064d6fd09242998d48a3818edfd1579844a8e6f90490ce6ea220a675bfbbcc563f02300197d4b668853c6ac9a35d6f21d546f9d065e1016d6aca19475607deb38d0c2b8b070cdbaac03ea7ac7c856431810ac798320634e327e25cf6ddd3324a0b9d46406f874809469cee2bdb21a712cd3878e751463b51c12a2bf152de95dc5d09dd485a42ac0aac1bb89e29eaf0e1a76df6d8047acfa21656610b5347bdeb76e2c756744bf444d2797f23a6bf4eb188b020eed71ba87c009900ebab1dc364af103b2fd5687be36b0eb1441d8600a55b4bb600f55dc8c5d4908b321c008ed817c84302c7654fe2aeb4c44d8909253dddb457a2622a0fc55d612b6d700cfb197bf8bb2cca1465833eb3e2af6cd4267370db5d2e7fcb4d9e7b48d66a29b61b29df95f86c27b48555d3f607337ae007d9145388fa45b3d6d61f7b0cfb08e066e9a3bae105d0cfa1fac0c34bde32454ec037c9b84c86787dd8a908bf47d4ecc1352c01582e57216c1482b9249c9547fced42f4e6f1b0eb157ae92aca29919a8b344229f76ac5abd16e811dc2f2e676e7d79f5e32ac2020398ca521b5d1389b2b3e1687ca4752ae0a951c389d7f91219c3d30c822a0d19f0f2b2b09736e9d5b242f9091777e6c3648b9ee3e14ded94e673a44d57f83f28654df0259daf57094ca0f1b7900855bae439f16848468e3d0c554c80d4061ebd48dc233d14c9deca9a266a573129a90353a015144300247a1a1961e3593c8758158605559a26a3db8812e8317d4ecee7537601de31528f0d5dffd9a6ad6af139ed6064b6ac3a19214b0283b87890c503e6821564ad08a6a5f638d67a628e42f7faef00534a2d62e5dae1f63328f3b6ae6b5844538a960442df15bab7ea9d731e20452835633d6a94ccdfb0ef2d7d2555f5224fc2b5b28376591ca0d60e6e4a4feb544d11924ae4b8130ce0bbea47e64bd7852b7aa5f4763aa6a72f0c3a2d43a04ded6ca3fc1cde2376896b5ee9e36d328eca74f3fcd9a9ce4bd92668690e879d6a48b28bc0b037c004a5a5749ff5037fe3bb4e7d387f1d3a29b20d1b20cc0998c8c3bc901e5dea8490de551f165d2d888db4b9cac9bc14d853693da52a588ede37751a877854b0814d09884e9a1e821d88fe4a9369fda302d7aeb6286a08734e77d1f3b47fc3fad29dd3b37c7111bd3131c0a7eeff1893ed00852b3f48dc754a386dd863f80eb2894ec21f8597323977d5e4efebfc5a7f8fb6d7f5e85bb8b0734072bc35f151d8dff16f5e60d7fb0f73a70a771d42411ae6f000f4f0a02022336d7501ae24e405a1d94ca14faecd9529c8ac1178e5149403d1578d65f57aeea6aeeb24f09999745ac7c85b8acca6a14372a2ccfe38bf7b2337deb6404dcbc235cc9a462b328ba13dc80bdb6b63ec45a5c83f11f4188264c95a57693cd3b0757425afc24a47996264d681e26940b34acf964662667b436b155b6ee9e6e2101a5601b68bbcca5174267e30331e8f62fff2364de0ebe8ba8330b7de4fc443d6c278d2e99d3f784e8076d28ce65c8c3acd00bd96b0fde1eada652e99cba830007d8cf14a78c8a4f653894513882afba88bd1526e873f73c94c4b0a5d1df615a0d14ff0612fd3d0bac14c4858179830f83596de989ede088055ed45501d5d0c239e27aa1971774ca0c2af8a9f54890c888587eae6aab7cdf44801443be6b5ade03554fa797c50c32f9a5f24801d28acb2dee21e0920725338a542baf9b779ab0c59f6cb91e652dc3fe03e50d43d49cfe0f364760590a1a8f2a4252c57631b3dedab0790135be781dd592723d933670aeea084c806091c2a46e54d1636ca0bff1b27fef158534d5d4bd4fa476e4f3d8503e6a61eb98a72a83313284573fc25d0c9c9ed906dc9e177251a6433d15d53b918b6ccfc67dde221acde358d88725ac384944e4b7c69ce84fec073e37e704418b0c8bc0b544375f23c4a47a9f44f633287a324acfa53b4e3c1e773ac0f0781456099124b1967f446c08c085737fc29de9d0d0bd19308b3c1dc3af26359deea17b91241b5aa6f81bc080ac9daff6b6503ed111e2586d2b89f57e0d0b84f4b3ab5e09172f5a45c24af129c172a97d5ee80b9b116c4eafb82bf2b4295c9e95fa3a35285ee6215751e04c7971d01796ca29625736517494bbebe44cb0630001952bc08d5369481475562ea14e0d10470efe601ccba8b64e00d8cf3da27eed162a8edd4c275e72c1ec24f599038ec39e79eba331d87b6661b8b4e65c2cda2c1316f97ce66068f813c2d41971efe1e9d4d3eab24e1e21cef8c09bcba0e250f71dded47bbdfaabe82321ae6bb5172ec9435abeeba8db46bf4dc93393e112f955142ea85ed7f77b8991c7c67114fdc484dcada16e584fc3bf610dc26cc962fbad8fcfa28ca2804981bdea9ec6235767dbb0e5ef12a268513e214cb793525382536bfe4c24c6dd5ac5c5a2d89db413c87450d0c8442953ed40574b12457e794a60bee336740bfe93b90dc6f0c4e0fbf9488028dd43e24568c9c6f30d925213cba02d9930f08e4f840fb1a87016de3d12cdd57c04ee8db1549625fd1c4c94080512831cbcc062302ce5d34524f298bb8237cca1cbb3dfcbc0ada7e7286985e45310169217813e5ac2ec3a0a086eff738540c34d21bf689538f4406ae31a3d58d1cf23ae0c40561325f8f2246123338403156ea237f3fe58751a044e8074bcc07a88909bfb6d58f7adf3681249e9e083b549e2b576a2f828845e0d24fc248dcb7861c685e8e376782069aa3313efe597ca6b9d831cd2c929bfa483695592bda123fa582caac07c123de39e686e5074e28a2066023a79dc9cfa178b18e512c3b8ab68e76dba277d6abefdaa0d08e2a63a1bcc6c1c571bf39b380eaee26e80f718b4632db449591965bfeea7e2679871176786386fa7c42aa333a8fb413f9e84c4efb625c8e6fe9d35a85ac46af99e337c7798546ac22995141ec1b833e7e4f208ea4dcf03029b2965dd7e2037cd98f239f71e890648fcdd118d75e614c313c0e5e609b2592d50e7f1484aa8e130bee0ea0b7448234dba773b15815a9e82f4231cc4e4cd736796890b1ac628c9d1036699c689938eee694ae16dd132d3a4c2c0168e80ece61d33ffa0d82733ea06478e5085f7c87f5eb47ccba9011b05bc132ece5b9ab8c7bd106ca769fb91f581745f6017cfd7a4bb2921a56751837660e192bd4c7407f6962d69f731c39d88e17beebbffbfaf5f9846ddeca9cc5bac43036a3050fdbddb7d3f76d1f6dd7fe1f5c2940e189b1d35dcc2708baeec122e2b0aadce79abfceadef858ded6fc3883f77133f84122651a00f7b6a9b6fc5e5b127270dbd76dd5ed00a95f906c400a08dc58f15aa71e6b51c77e507f44290714c4db8f6a7eb88e17f87861c9d83b8186698c937f4224c4d29e4246eae1512b3aa2e201c0ceace12769d769d71bb62febf11c2362af58e87defb4f2c0cf5b5cdad1f30be3bb637783717f38aff0d25cbcb1beae0dab718f99f954ef9b9ae4a04fec85c73777a42ed2a90929fcbeaf69399b7eb120a85a47c00b214ba78bf9ab10273530d781c0064c7bd7c8eb70616e8c7affda2fbfd7f7644f66fc5fe7f799585b75a62b08eeafa4f8edcc76f3de33e380853687d467a74d38c6dc7714f15b12ee675dc5affaf872813938955d711f8308e09864942e2fd2f6121941ad227567f804f2362a1e8a17de016cb04445297777bfc2eceef7622408a81f5d6d8b01aef73fa97819240e90d80f01beb4a43d7a5887a1f3a974260bd8f3beadbeb4d09bac7258e9b3beb50a4bb4b972e994a8216bf644d4c7c63e90dd03b6c5fe70d9b9d38e2e5d09f7776f97446087ad95bf999380935de9add302b08c68487bb31dd6445066fcc9e84df98330ffa13e5c83d667d2ce7305a3ac5cac47dd4654811d661551884c6090b8a902b13fc8e044c37ab40bd08923ca0ad1b1235cb122ff84e5b54dd1669716bd2e00d12c535630f3a7276844e96708ce1b846d96ef112aa00d89d31975ba3454e386da3642ca1a732e46195d1da0b8e46badf475155e6ce8af436e6d51463be0a43ce8e7d629e89204af9b03c2907bdf74c78708b916f35dee070fcc9b945c3fe1ad75399cae361e2c03b25e58855856423da2974b9c3c0842d81b61ec057fc2d2462fbd2258610768ecebbe6464c78b9177b928148e496b84b542ead516fe00667c8ceb0226695a9edbb2f13176c1d1605895e5cd7a04de012cf640a247150dcbd464a1afb67730bf3de0b32b827fc1b681fd6f2fc46df2e210eeec892652c46ba4300bc3f63910bf7648efbb5fdcba0f4ca5da0cbfbddfedca95262e4a8c06a32038f35b084c3428a3ca055c18c0058c20b5bdba9448fb76c914b615a96e17c96b63f75e4f574f6ae0784a42e6583fbfa292feb0e8ab91856af2843b01c405c8f189ca71466448fab481a62daf4a1c7041bc2b28418c4d55f6ff2ca31e94205446303cfbf695549389a92d84f11c578a146d6388d2c4dbbc1a662e8b9969938c5f3ed3a63f41683a30e6e487a3fd2a88c23533b14e4ab98a3390f01413ee76a3cb472bace30aa1f760c96e85543ee002e585fd87115f1c7ec357eb7b76b8f03d27f9666b7ae766140c6d4950eed40fc80e531a4f221d49c13fa2c5d4933e2c5326ff40c9d4bfd583f7ecf4de8e94ac158bdad006dd9c2d5826f61b3ff5ec5fd30bf52ffda3dd26c1519df8d9ce528dec1d8a8edcc257d2cb149301aa669094a0f7d981d9eb9dd3f71ff801aa6711df2efbc7d1efc902763e61ae8391dfb3dfd910ef1bed27f517d3cf2a37ed44143455544939ab69979c363a5456b308ea3eea3792cafcb133a38623619114e207aea126e451fed4de103cd1c59b52ad46c3a64a66c94e1c84b5222bc5eb2907142b18079fc730ce9f29866e956d0f7b012fb1a7b6e183ee5406e5efde5b3ea54280bff65cd013224c059d61ef4c0c2559150a1e35f3d980e4f82e6ea65c32ff3b64334ca5fd93d06508c1cc049280f746cd2065b64c03c513b937d1b751feff8bd2b93ee8de12851a1cc086470967f4a1b3da2152c783590e21390fab330b1a0d6e11dc3dca9de5e9bf151167ccefbd57c1925e12077e2ac2f2a7a090b24a4c363dfe7fddbd7978e1483520c19ee09495b5972dbc397aec4f1cf8c05662c87ead5b4934987e4cc6109649c03f4623c8fbc5ef29382bbd0fa0e63ba39393f0132435492fdf7e17ab52116e54721aae96ac930692755ef9bfe05cdcc98a8d753244548dfe5fd88204d2f04148615f94d7132ff9e2ce88b3d5d8db73b7c95dcd956d1dc4d83ea65073194a9ec82fa778729b0e8e0e2401db88fb85a86198f16a53a01ed2a8e4f10d19d51622ce1a71ccfd00a3ebec0d2ead09311b7df06772cad4f271fc3bef5b05c13e2b93074503ed5a955d1c7c4a8f448a4ae8a1258d05dba2c58451a4e1ef3296421e85c7de5e86eb42a2896bca3da7f9eb258b8f648855a9cbd167fe464e632e546733d91a784330f94be1f452aa7c29eb7006268ba6171be7ebbf3fa869aec67604ed3a4757a2eba1a57dc0b3ff26304ca276c52197f18308c773c032fb601903dcd003bef629eee2ec0d1d31719bac42071f57c4c97e82a6f651ab4f829381c2c698c7a10ed629e8b8c9f06f0d09e835a71875ba3fef25c57157cf5d8e98ae5ee69eca3e74e12ed899627e1c1036699a0c686d688f44a2a45de0eeb4a4e25fc557bd99bb3261cf0cbbafbcb93c5793c924ef2fbf297b519e768e4bd1e58dcea9150cedeb625fa93c8fa82114ab97e470dd19cfbb3f68d5da12560107ac1c4b9c70d72a4eb8d11e112a18f9cb141fa8e5108545e73d004b56260cd5264f20c5b71a517eace05a9db7af051e6eedcc6303330e05a45159c3143e952b9279d582fc7c9c334856c5fca0119ceedbe5e38f324c12854b33fff7c09b8b281aa3cd6ee6eda174b7ead099757282d24c0b87f6e434a6ac946ab583741f350a382e681fd7dad35afdc9e829ea50fbff638008cc4dcad550c46e83c36eecce6917f4393ad671cfee03a976596a4f0e7e7b93f1262927e7f8dd8e0c71a961b69a387fc00eb5b1e35ed422a4f974a95be6148463f26c19aec5d959800e89e1f5a27ed7452b9736d7c89c0945e8bb6c378cffe7f1f58836b8c9e9a7c043ae024171f14ef27bd47859373eed0334983a2365199c567080009436eb9dd6ea5f0428a4c4e5db683cf92ac86f0aca11c71c026e09e4c92e348681a714b5d974f00f10636f689b0c141e1f188959109534031631e098a02fac1516a46493264a138483001a1272d165c0ae52a6e44f9ae8112b9ceda027fb93a232ea42c46b580aa8bdf084f7e50ddae41414c5707dcf8463c3dd2396e0c8d783c65ce1d7b87a5599ce4c230564b8b34a7994490af7577e1f48151bc0c862676248d242460ce75c1741d6022832a3d6cb34b5d5dab51bc41581d7f554930006cb4987eaa56ff4288a2361cf909066dc928488b11d47ce29f2ec52df659aae58ba9c93ce910522a5d6a4daf3d6f82049df8e4e322d99f25767cd9686eaf9d2ad7c6261398290c20fc64f171da5e83220668f1715c09368570a12a8b35e01f39e8591cbe815bd9ca3e852579da56bea1af22bd196a433b83d0bb837506f08cc8c8a5f99241de3637043acd355255d93b57d7a0bdbd79dbf56c4d76363dfd42a6cce1b3643c2a1369c6562197fc4f3ea33f246576e1e0929aa38da16d8fab881516a3e6f23448128c84c1e618ddaee01c5711ad8675b30056a5b3146a8695e7e7c565d656e03dffd66b286462c6f2ce7dc13e1e8cd8d7d3ca79f2786210ebf5e2db9d71635a74cd3af8938659146530e4f9cbb7c3aaf8afbc52059ac2039013878541eb9894ca35804c5fa0e87c550a48776b422e207d78923007e959818871b7b2323f99b9205836f3c29e0ec753affcf831272f2a65cce9a04e085b041c5268ed7226080e7fd90b1f7a3e82e7bbae24ea1e4cb163d1015905bfbed36e3674883341dbe22bdbf29d7ef7b95a42ad63b84b71729746477933c95bb52feac84506995a0b88e47e4afcae66ad49b712ce3a9e512469d9e614245ae62434127789f7744861874e20872050fbf949c60d3aea5823d5a53a76bd9459d86a100f305d90456f5e505a7a19346866a1280622409e0429fb3202c9dc65f40c1d5ee11c8acc52c13766b28e2ddc2b0a7fd68cae3363136f2faf9d8b6bc76473082e6f606463d21742a935c1c540b7d02746c4640d2dc15eba963826bb5c6e199713849464299e70db4147ef8605ebc5823059b242821ebc3ef9c10330bd2864b1821b351bb81af060bbbb186dcbb1882e0fc938316754c36b8e11292b5d641bb91b784b7108c83183760f4e74191ca097d8ea062e65071fa7aab4699c727149531e2f42f74b39c2ac0d0ef747d23291613f6bc9e8b5e20e7b2f18eeaab005d843a1eff1782bac48da841670938d045df3a7942c5162fdf4f2b6f80ba6c65dab20ea26170390563fa4bc48dd3c9f0ee14a7dd356128c9a55305a60dce4fcea95d841cf78c126509ae3fbafe9493f5951898762ebcb94cb1a8785c49f22863745741403def0d9dcc86e18117e548dc6baf8e14601f63ce92e5870e529f33652355def93f7bf3696b37936dbca80194fa61866c1e7eaa47057095a4a387cafd1212fa79ebfb15b3262451f6d74badaad823722bc51486ab74714c5b856d9ad6939785b0296b86946b5601a05f45722caa778b65a5701a6f78d5ca2cd26b87391cace01fa3fd17f1f9031d0c17ef706cc66ffefe7f7486a761984fce0a984b75bf6db86f9b8d6b0f36ca8e192e97a853fbd6c48a8e1d5f9d23d03da2100a636bc205957aa80259d1da33465a60be9c09b4bd5aa6bfec513c6e112f7b8970fd83ef0a7cc5729c637f3b0af22a2e118e35ca8fbc274ec70c5fba7e4f71c571d4e11c19a7bbd9375e581b598735fc8fb6934e1f953cb78ac6984529c77c955eaf359820dcba5c3031a88141e338f7f81962828dd58204cb8bcab9b058aa76f234f3488824eaf54435b404244cb6df0c31b28820dc8307bca46e321817b8e5bf0da6f36d08a3ff54f85af98293cc784f2a70893ed945c5fd24ec83d5db7346a05df76b83ccd9d5c9ed57b78ebd01938c923fa63233c58e34153026f09b65d3bdd2c2a6e92b24a6ba9571caebab33925352ccca18bfdc904b11416924f7b8545fccb7be4b570a56e3228c41283238a6da5e1f2453a2706538f64bc723ca12d3d62c8c08ed223bcfc758c00c64c0d302fe76084b6358cadc38dbe4b9d998707b4b56acb70b37574242f602d7f269361e87c40ee8409e579b19ab948397c6d398b62bdcaee159f293f771a0720bd2655d50c67c292e8d0674a127afd07641652b26aa1461ecf927a3152b418a066038dffd2e9bf3d7854420dc1e9a23040fc4fc1d81f2c55c51609fd5cda0c8d4aec9489f640902585816176acd564ddc6b80e5424bff2ac339853d5059ee026f0e0d719d405b2935108389fe46104efcac2490ffaa742d473512fbcca325b3319e1f98eb3eab868a7a8606de71bb59db82351c2eb179bec0d604193ace31dac48253b90e7333bec911a83357f52a5984bf38867ea69de4d2755afa09a6dacfd96a2bc5123bc662af22144ef8477e7e015d32caae045955df4dc8d3f26794c1b88fa649375ebc1f2cab2c1cf5a36105cd254b0792ad8e4874bf974ceb04e2888ac03bf3ee76d37b586169faa939654e293010b94aad986c4ebec8e47845015a41e28879a89b52ca6cecfb8215597464fddc096ee0e2fea60cc4f52020b56378fd898aa8b36478f4781b512565d3f46e8bd0b094c39e355ff21e5524e11cde4c42d1d2bd802d2a0e6caa2cbf1d9a7e2dbc980e88e8259d2de50a7d510f887b62db722771ae051569448da7072397b567613e68b1183c3aa42cb38f60e476352b1b458cbc74764dd7a64da2c56cd44f0e4fed76043daae3a87483751106a05d1cbf010116841f79e5838144f713c0f6191d2de376b6b89f91f4990f9233021fb542ea78c660f0e6026177a969010182a54a96b207b04104fa9892dc488a097adc65ce1da2ba21a4403d0eee579315ffd88658aef34b73724c4e03b23bb22743f2fffc0d827614042d11ea35bcabf3a32c3afe568503ea01a3a2e7552801195d39213e1c642b4b23c70720332dd9eec7eee08aa6cae79a88502818f782f285740824a685c8fa34f08e1368ae4a3e6e2601c293b17f5599b2ce826503b5d737012367245582b045c4936d81549826253e1a9b6aabd58ab226b23e7802124a9a9823e409c9142cde16f48206661a97acd04647ac6db6e10964ca9da7ab6784e16e0801f9b45694a5731057070aada6fd414c3a07f7b400f5b7d724d9208755794804c724c321942adb6b9262ac1ddee91e849600ee3959c660fb6c1e228fdcfc543163e59d3ff671d7c09072ae630f06dd106eb83ca2d4484498ac4167343db829e9db12003d093866a0a350005592d575f6b3717bb818aedcd756a9b73e77abdc3e5bbb3f1f1942517af3447c24a6b90968934833f9442927a157c5fdd09bf3a40992971960c7805e93b656e9d78aa4894ce663c6adeea73af3f79447a51442a5f70680c3b0b7a1b09abb3b0a6121e8e8f7ed8037c1104ca932a73073ecdf6217f038d3a1391ed750e74a1bad8d96a4874b3254741ae0ef3edd35467dae3dec20e26a9a8e02254a6c4b739ea73761a464389bb244681051635ea862990ee6f516c713e539253c951fe394174c30e8a294a49be673d657a4fd4657277931b58e515a994a1a8b991eaeffa6751b5e7f42f89c644fa9067d71f3ad435023002bfed92bc6af2de5f6b1ac3e63ce5c226919540d3d53e487c29ec811327b9ddad96c2f0706b4f65a8028e63713d0d1da3c058bbd100fe01e39fa71f0c22278ca5460486bb705a1e77736268ae1fc68b7747e8d5fd127207594cb294eaae6a8cee9683d0babbe02492f71e8a795485f836b94d57940805291e612ca8d9f88c1f9eb5308cf01876b574577f90526be4565f4e4dcda73b6232deeadc53eaffc05a2b30a4a8103b655da00ceb526a0b4a21f0bd63421eac856f4e1f99f609d45c43a4c78045337b7a52dcb322e08e8810d19f09f969d7260a8e0dd731fe8e7191a118b5b50aed28dcabde0f140b4df449d8fb6847281a4c971b7b1234b90187ee6c165db11c730091e6745c969c66721015cc0616a44798f5211c886ef56dc9ecef9dcd10c3630fb3d00592c1d4634bf76dad52d1247d5ce4d1e8eb6db1df1d5ac492bf6f38a4a8565ebc918e00cc928b1db275e2bced9a173562ea336f304695f767eb27d63167377423133f7dad480be22e81ca91b95425b40d2c5eea57941a7326b0fddca94f5e0c079c600313e3ca9425c10671a798349236135b505e8d8025894026a864980573a93dfac1daf70748b38eb0297f5854d003323d5cbd5b1729401035e7e29098007d18a1cf16dc9676e1835d106ff3638621b072e7ca5e231382e8bcb2d3df044fb8b94face986b770351558d3340d4bd4f47207d05a3492e94b9098373049cd0aa54a94b254127c6ff5af440e30a0432d4b8edd51f0bb7a39c9eb7979fd7c6ada37f629fbdeaa4ebbff44c714837b40d016f90aedb789f8263b6c3076431d262e7f452e566c0a0b68cdc5c7d2b2676c5d920577a524030c9f0c64fcff52b264c9f2e9fcb979ed09cf0451fb543ee3fc185c09a19a6e662e60cf982e41f1ff47ead6c45f661d1c542b33372c03506071269b9c19e7560e93af690ceeea83a4d40ec8647312332f1c8aa7993da4461f28bd589c82deb66eb107ee0e68b87b312a40e3aa5d359131835f104ff5a6bf69de2158c149d337108c4a34d734805b880b8040571554853a91c4f8b39bd3f32841d708529b0e036617d7459d55005d8f2a89b95017e3a4da812748e5cc334382913047daae0bb6e6da1cf06307b49e79b54a551f7206ea5b07a7393a883b2b5454654392437db9abf09a746fc2235e3f1cbad4d582009c581c37635ce1eb5a73344e0672907a21f92131935b337625099a73b4b19b238735b771531c91718be21c918468b65b859700e8093c44c3cb0377708eb0dd9cb123e7e2b069803909f2af5c56019a0c7be49d8c2bdfa2586ccb4a3abe01f8744f5d1337b02e5dd44bf880c580e3dfbc47564ea620d9cd183a3e73b67a6c3fa6280089e87ece5b484f3a7e8bb3713641f9d2d733fd32af0f1a622f3c0568e09a017b25ddd8de2f5ee62875e81d72bed337d5d37c3d28d434a889d068bccba6ef92a675d2bac1ae7a43598c254a79660941d1179344f50ad4b6f578530f32109fc00f44c6d235cdc2cc6bf13d24bb2bd67dbd425d411721805e293b0e286123cc054b81c88689cae25213b24379047b71602c9855d8b0084b2b7d1f062c2dc71369d67091075fc8ad9e4c356e5a3be5ee4e2b0ebd409227fc5797221b3c2788092d53161fa472e8201195c288be2e4e98f96c8560ba9d99dea13b098fdc5c35d98300d9fb0bf82de521f02d3507855d800d23a5e431783e092294e97b72e9fb23c2f460b548c95f225772e08bacd631975fa64f1d32acb36ab2b0f4d0f866f579b61d6ed9090278760b6762ccc0c88898646939e9b520e6daee5bb118b0aa7e5f32f89f9b3e9f5e9a1f406cecc6b0621d11e54f90303cae686c4c1aa28bf690ddffb0f4965ced2c5ba06261a5193dcbe2568f6be719a9aab54a195cd4225f31ae92f9386927d20d4e86c464313412932fd6486aa54626d0b12cea25859560e9aeac4f13b0fa71001c8916593c706628c05c33598a7099c8d50a70a1b2a447f41a7cfb12710c93f18ac0e8f552985b5062850172dfcbfa76dccd8937d26304751343e6c4a533ed14122288870d333f012609d1ac17fb3fd06d4804ca85ac3d51261318fa16840cfb901d77fe93cadee73870f93f73c2c450746122e6a6a91cf138d8f722e8894b1a5ab91452ecf661e26ee29d6b21d86b44f7dd4182f4a832d9a3b41aea4132d8827c792c62104f445c1024493f3a47bd7a15d2d2b637675a1b97193c221fca896b45eb5015155466530ab80de515128837c469a1540894f9fc09f4681f365eb17da9473d3121081d4f88da3399be5eeeb2dc3872cfd29e27b3b5bd5eb299d34898338b9f1910f444fa6dea1799d62f01e97d0e16563818fc3b76536d96f728c72ee9254195ea4c85c00618ca204e937cf789bea8110e07913b047110da07c1e732bb3e5263aa05356c2dc83360e0225b39e95dc84b94c551da5653926ab7c9a6d4bcfb9299a0804f039d4a400e73d6ad494e7f3ec67b78c47681869f7e7e0b18b582b99a521c2c081d0b21ebffc419b86dc2e23d24551cc9f2086ac804ffb5a2a739a895bfc01c8b960490c7f03e5831ee0072c88d592c4ced204ab9df5d4f10e15a0615f31c9948c020eb21d007b717a478634ef7051504ef6b1201750799d7c7c3a9b46be4d633761e2d08ff7536d350196a166558b86a9fc51f830066ce6459670ff41ce6e40413feed238ea91fbcc69303352e92b5e40e61afaab20710f6f39713113fd349a10b2ace7f0d26354595947f3a368bd3094ca1c635e7d041bc4fd69d4e22fb6639e085e4cd3bf4aac0761fe2b7c6e34037ea48e99841780b6593ec7aa560d1e074d2a324534acdb20953edc1a6a8a30d6de9004a772d0d11ff2a6f06bdf2eabf28b692e7e2b1be24805150aedb44707427e64fef2e1dc206cd44bb104c9c4cf28ada283fa1540957f745e65d9572765fc2a310e55ff1583ef0f34474853dd1d163bbd2c0e81b88cfd4088b689695da0c3f30d220b98a75cb317179220c7c7e21ebe6c71ac947455c6aea11404655b6e75611d8d7095b78bbd7aa10271a3993e89c912b998b5041ddad20b2a729177158a1c6f5f4742ca783b165217c4814a474841d5b20acd4d59bb44bcfde204e1c4f6a6f87c124be1b2f82a2d38b1e82ac5b5c6fa992bd2a151f4157fa2fd146dceb84e60dd84327bc72d80195930ef7a2f12dcd6e7be3b450a25797f84022b5ea904d860e44a8a765b37c1928a611766fc7c7e93e6011b57765595edd63811f52da96fe91491df6988ba2e772490f7cd500ceef92cce111aec704ba55b7e2fe7695988b5cc4628246759a30d5263a6c612377cc7402595d7e42431dd5986510e3e124691a9e1c36305c5e6e84f1644ce8e3a5544b37b4e95ee8e80e3980bdc19c89cdb1b9669bb1647a2bff771c3819a1abe1c53bb6989915320b71dcc840749013227d795ff080e398694071152a363198bfa66c91eed344855f25111d1073407cb1ea3f2adec049b21debf9b4cb9c38bf576c411ef6859bcdc31f543ed8cd2ff4ecc56ea2094144d80e1444dfb396dfbc38e64ccd62e5dc10660c06fa21d64af86868e4efcc540895a4a3348cd0720920162615a892d757fe009f7f0501684c2451aedc8458d10bac20da535dd4d70b89c472c5530deaf7739a5763d21e615edbc540d33a2cf7c0ad3118209a2f7182855590a7830acea9fbeb7029b1c30d7302917569e61bef5ef8600722fc5f1db9af88a7ebb02e75f7e1d457d3992c0dbaa2bda188ef82d5752a2dd31805a2203d9d881838acbf5f76fc3326ac447c9509cb026d7188dd4af17aa0808b9745e8dec2dd2b0f46fccc08d25018c19d831144fcff3e81955a29b3c68fcf9e0a94dfab12bf8da41b2a1fd0ba74d14ab59e90509ac03869ef2c8b76e00d76d5ed76013112248142d603e1c0397be2dc150c283eb75acd89cd7f07359c70b7a7b299040aa03ccf04f659d88752ce7e3cfc80fe96d8dd3d92113bc65f974ebcfcdf128f0e431d50e29928bdc04055cbc38f4f8d525702c628ecebf5e12c2dbdb12f5b485b5af969447c12bc0f314a2e4417ec6ed2c3c29d89c7a729f1e4f8f48fdbc9a5e2e04cd2611016061823191beadcaea2b7e6ba475a3b495bb3c48c0a7cbefade57ae82209aa7da9c4279f20745941130f0e6f3385b69a60a54000ef0d98810d7a31e16ab0e98f8c1deea67b78158dbabe8a30f8ec9dc922aaf6f06b846c7e0c55dc7299a09a177f8624f96759c89a5b369b12882ade105f9c43b08d88732a152dcbf850c39abbec719944fb364a98112f25f4e9cd404c2399cfb0fa7f92048651f6fade5b552a73803bd5dfd7d1cf2fc9eeb21135a937951ed0ae166aad5ffbeb4aca57b39fa710685ed2363765297083da179cf385f71f3933d57fe21e276463cb3ca262892aa88988b13aa2619a5120a976dc6e821dd90b35f8b55d10cb628fd6608524e567d2e7523a2c9c60bcd6059b0a462993ff0d60b554002b4b43d2adf7505be7c0139ba834b4848aeefe3174a3d1f28caf30659b23a77acf77439056466c54521bacb200989a5e3ebec72f441c87b3dcc31f84bbbe372c87b825020f9631e7854a43f69db9ab61f9d5d66318db7464b1dec24ca80417c24242d96b2f35e546e719c01606ee134810d7b4718e99a3f292213c8cfbd57cef4f86beed349200fbef70ec645246dbf70a267b82f335e81b6c5e6a02db6bc2e710662b290eeca9387fcc1abac9985f0bb00fb7022f598afd81cf672d04e3a8697276565d5ca1a2f9b1e0d4c5b6e6157400bdc037e45213807de2979a776a48a3716003b7642d57a57dc1d7ceea907325736d4d71d240c4ae00a7062fc377e267d246b36b3e8af6b2d98cce012c1b7175029c9cbf44b778389141abc626d54e1feebe3357ea6c2977a04a2aa04d0bda1cc7785ce51e0a500dc4cfee0b565be31a75f364f0b08a94cbb1360acd931f3ad78334da363c8a4d1441c4d6ff4c01deb102a51bf04a221d828b19efc8361569f3f99414b929f7cdbed412544181e8e7f1d7addba4a652ebd1128dd9c11e9a65c1f994025b967afd1bd1d6af4374b1dd750b57bae1fc6895ed4a034dc9694574f25550fce2147e58450ba92b6a0a9a3ae0822365024719ed09c4f8107f9276b6c0616e8202b5089f65cf9f0c9762a503dcba82f0408d62b0df6b656d480396f12f40dbe41c884ba1d8485011ae6982e55809615758dcd43b0791007985caeff8f7930a247763a96d171fd03771cc0825f391d4cc3567b24dd810610e2332f87a8ff2494ea3f04535dd0142bc25db9017ee85125b1a4a4215fcf6fdc12bb9bc894929452ca1db702940212031ecce7eeeeee16638c31c6ffffffef2eae162fd996d3962cd059ed6dc78f69341a8d466b7d9446a3d16818638c31feffff7fd78731aeeeeeeedefa7038738b16414c8434c3e06816aab990e6d793f016d20c6b2117d6858b4aa70b17f8d4e549ab6dd94e4833ac565d74fbcc1a27007c6ad925491cffffff2f93c964325aabb5f7f6ffd37f7981f960f27769dda5d12eac61d561187697f8ab6b71f9f0b73efceac21f5d1f167fc2bef9315f002f607c0574659744c7a4af0d3b1a3a6bea40d7b27a61b5abaf66decc97f298ca81a4acbce63a2a9ec36f50192b4346a553860c7cb26066117aacd27830d634a0653deb1d2679a384341b7073ab0354bef9b2e9584833027d830b694ea0898c4fc55493024b15ab26cda5a1b195d2d0e0d3253b023a5cc224c8ca3f55beeed280429a597e5858aca090e6969b24a4d96bf9ba97cdadd5ccf0ea5c1a021f6e3b764f92244992a41d478b046dd934d53c7695558a4f5caa5298094992a493aa14e85f69b4b22ccbb26cd80c7fef80ef71b575369bcd66b34109696ea9f6f64f4f81258c11484006c984244992c429d0deee6eb01b638c31c615666117e6d28f3dd7f7b6855048f34bd00b0cccf7af6c8df2f72f1bfb13d2fcb23e300b83553a61307cb2e3379d756559966559d2d98c0611d29c31f6ae7ee5934c48922449f253a56a2f14655996657953edf8bbbbbbdb4551144511e30ab3b01917bf2eb0309c90661732173131b49066002c10003efcb2b1b190e600eccd0bfbe245a5f3c50b7cb2341ff659eb1c0390024b3e33aba986644292244992b384a22ccb52559629b054adca2a45656f3beeeeee6e777777ffffffff1438e303f8fc7581f55e7cfe92216560c0f004f8fc653340921836468c4a678c18f8f4dd4047036bac31ffc8d86ad0388ee3388ea2288aa228fefcfc0830df5360c91b7f77bfdadb3f5360c9c96a6fffe31458c24e7f062e263cc018eff020fae136221db6db102e25ae2588a88551bc2ec6c6bbbbdce7a019ccd9c4b153cc0083f93f34976edd03347f5d1353031d0134e33973777777ff5cb2f0ec9205689ae1359c71777777b7e9048238151553680e7ac3964c4c5c37934cdbbc09cd71eecc5a4700cdb89fd58631c6ffeac26e74fcddeeed76bbdd4a184c0c72b95c2ed7ef9f62c1521d898ce3388ea3bdd65a6badfdffffafd56ab55aade6b9640153a3b55aad56abd96b55d6df3ec618638c71b88ac3e170b813985279ca5a6badb5222896c42a8a62adb5d65ac1d4ccce66b3d96c468348b16dadb5d65a5b8ee3388ee3288aa2288ab5d65a6b4a754bb6d65a6bad305d6d361bc618638c6badb5d6fa62adb5d65aff4e39d30cd3f47ef6eeeeee81a94f456ff44948f38a962a51486ac4c2277aebe69c73b5f209695e1959581488d228103af3ffffac366bdb276ee26aabeab66396159515bef8de7befbdffffffb3d96c369bcd66d471c9f37f556a1cc7711c4711144b6215ad288a258fdeeaed76ab364cd55ebff7de7befedae561445511445eff3db0d964a6badb5d65e511445f1de7befbde3388ee338b6ebbbf7de7b6f5b6badb5f6aa3ed38cb932cdc01863ecadbe9515568b8b8b2556511445511c426ff376bbdd66b557956ac72c2b2aabc76f5db2a8365aa1f8ab52607777779765398ee3388ea378af78c52b5ef18a576caf9e024be3388ee368c7711c478b44777777bbbbbb3b49922449628c31c6b82ccbb2eceeeeeefbffffff18638c31bef7de7bef8a6946374d1dad6fade8b15a5aae162f301606a6d20903d375b4ab9ded463a8ee3388e2fede2c4e28ba228da2134dab3aca8bcaf52548ee7cf558a2ae5eeeeee0e96aabd7d9b567bdb31f66a6fffffff7f777777575b96a5bbbbbb638c31c6f8ffffff03b74891cd1ec9f99c7d52d4c4e218a5b4561c5b1ae1dedb6d34beceffe392d1cd94a3869dede806eb74b47314833dcd6e771454c424348a62f42406f59d4ea7130a75b4000b45c46b1531738c4c8c189918fe3214dd72a501c16c140bdd4196b788c0d2083e3a36231b11f00b3b9b116e083c859ded689604f4c2ce7604247444cad8906ec20f3bdb5194d026cf94ad23b62224477028f2e9a9960ea140f308094daffb0e3f39e408f16e14502c129b0f3faebbbb7b777777b7bbbb7b774f0f0839d69da7bbbbbbdddddd79aaa8366c361f34baef0e3faa8dd568022949121a357cf0820e4341e0286ac1a7fb4ecf38438e90128a74dce8ee3288bd3dc0ae4556d8415a1f78dea0431045717777f7eeee6e779e3c8371a8eedddddddd3c3c47b3e290a1c38d9013215c5062490e484c501b3848538070058d1e383d807a8696b49125eecee8a37df4bd512c31654e50f2739301881bdb13385c115cfc60042ea6038622166e20aa517b547724361f66c811d243e82d72ebb1c3dd57d841be7b4ff7f474f7f4dc668f904475e428da61050e1551a008717f888afcc87f6d0c8a1a55f820c3121a78d8704b2aa2862b8809585c21850ab9216e0db72124119a4867babb3bd8eeee0e448312da0165e2d3d7ddddbdbbbb9bc773e00fc14891cc861e1c724a8e7c3044c28da2dd799a87a79b8747083d3264454ef7f5196a2188ede93c73a7781bd7c8123b7ee4f8edeeee28c21ee2eeeeeedddddd3d3dddddddeeeeee7906fbb0f0a3babbbb777777bb7b4f9eb144f3de2261671085db8e9a0a8d5b0e3e46e86e222082d4e86e433d41de9da77978ba7978f24c89b4d17d890c2199b3529113391ce4f420c3e28e4ba628f58d063937129ce881c409204cb8340cdd28019bca70839274a3bb83288acd347677f7b6b6bdebeeeeb69e6d724cfe9bc19c15e8c0c80e209c5c5104504fce79e65b8875444436b0814511409c48826788051d28dde919dd3d70afc288189c2881040f280ef80ca1df7242177239702969a500b672b8bd40a46334041210d9d201b666201147dcb884326b05e62c936370d8d9885022b4c93348ae256c4b481b114e025d68a90b0778bb93a043170ed0e6df447988b71615a0cd875fcd315c8ed25a5a58c54ae3e162b9fa8961ad2fd22805d4018779b70aa366970da0cd1713431b1bda2f16d6fcc5a80c4a657c61ed4c3535673fd7595108af234d13549cba536bf5c7a7ca9a44c9e1704dc849abb5f776fbed76ffc7fe8f71a9e4e152c9f3becf34bdef33994e2754974fb9130aec3a4a76047499ea00fd0425a1354a7b426fd058ee49e92314f4e3431afdf88cf366e24cd914bb2ed3da65db45d09d68add6dedbf676bbff637f8c4b25cffb4adef7994ca713ca7442a1403095528129952a2565b5525159616161b15a5a5c668cb0cb2ba69a19caacb0b07cb3cbac2ee3f05a117461976bbab0eb26ec611f6a3027035ecd852d27e0ac945627a0cdb769867f5528acd95b4ec0cefbda7fefd451994ae9a44b3c5c3873474e60636373279c99d668adb370ce2ac33589926b42567b6bdabffd658f4d35b8f42a05799fa9e633a12c0a55e944fde9339d6a50e02b8502533f2995a94695b27aa5d028e1cc2b9a5ba9acdc8493a509ad511d0a447f68104da24369b927e1a4b12754a6e349f9e32314e4431af98cf366e24cd9a44d20f3668a13826baa99a1ad63557bbbfd1d974adee7994ea8130a44a55429aa9495a94626c50481ca0acb0a0b8ba5c5a5e56bb95abc986a64582b045eafeed5c25423e33241b0ea5e30a69a19be7c39b4af57a5f3f527983f7599763e3b241d91f444f8ff4352ce060e481021b401f3121227b4c96012492b81ec094222217ba841068536790689073008a4015c014c1aea4026c72089a024d647205c9c07168a161160528e9b241d6ec4841a188947ecff5f067648230d21cb025740a191ab8343ff501667d6f7591ac3ff430de6ac46781d4532216421f1a094d66aef0fa4d15227bc1613aa14666a870e0993746c520e354928e9879934e438afa5c42bb9de51e342d63791a0b0d6de9b2456e1eeff4834a41fa5a41c9787d7c275266ae37a5ffd5751312d54c22e833495aa19a49f875209a9a98341c19839e7cc5d57410e944fa8748f5bbba101048000a3190000002114858138cbb25049d80314800b26524a407632202a3a26924802413a1063281061000601180418830c428c3184652d72b8d54c76d73db0cee0fe7d9f5d3fb5f3e4f5fc1dbefcccc7088a44dc784af9ae9f93e91b5017e84586f0eca1dfcaf36287d334ae5970484ab91740695e20571ebbf66ceb7424ba793392972f06bec0345e01abfe02d3d7bb6b2365085b06a68977d7c64d39cca07305371076baeab87989577fd434dc15cf8fb36315afeda338d2507a11c9d894e12e83d07dfc38a652c59cf22f082444b417ad9cb4f6d54d65586b4cf8c649d82cb6f21236ebb2cf1b62e20e4597ae95de774f68a6dd0735a988d57b251ac2573d16a331e125866302fda0856d7242657c006bc496adf0f6c57188b34b23510bf7c0876730a56a61e296e166e39691afbda3e42d28821a991ccc30c091e48fc0f7244eb259220f8f1a35becb84cc05c9198eb70aac904474457b3635e8d13fab48d9749b43e16443d3651413f2c8d626632d2b03412803be32de01a7049c941af3013c9b023ee0413952759c383a52e83e1ed7dc28395efb77f07b2ff7c533f4fc0cb910cb2aacfb528361180834b4ae8dc30dc35c62b1f167ff3a2fc6379a0fcdee69cc221b41b3ec552db3babf16564c96f762a02fb7ae9bc4c26a2b1feb7a30f342675756789ac6a7819c08d2c44a99572afaecd952448328744eeeabc731ed8dad8a9f45bcf80c31b228f34aa83f198f8975edc23a88c4bebb7163268ef818856251f6badc64ecb87fef148f3bddc414222e5c6e5ed14179634368c777af519096a9a90221ea5ddbacd2712c28360ff2ad8fde90ee55375f45feaf6117cd5e43f391839eab58dc27c80fbd240568adc1b6ab0e760991fd0f4062beffc0cf3009bfb5647772324118a42fabca70bf468c3f211568851f52ccfe039431ee3f70be4cc2ae1ad91d18491026e6cbaa23bcad31c34b480552be8cfec0ad57be6ccd9171bbdd675eebd353387fef188bcb2fb3d4ad8d55976663a1d9324c29b8cf4f788ee770a94efa2af265314a32e294cc912ed546d8cf17571c35fb0173370e72d6d9b2f44861d4594f12baf9de7d14df111c80fbb92b2bf4f617c3bf964a9034de1c98b93d4ba83830a25499c571789d21d77f3cd8d4825a6a735cb6ed7ff3f44d85b42dedbe229e57f7f45bbbf96d25b66543517ada592ce13cb0197fd06ce12e7d15e2c55600c23c1d73660d357c9a9eeaf492205fa8da7fbcd3b71a0aef5c698840123f7cb6876b9ea82adaf33d76cc4632f4d45deaa060687068dc754c0bdfb1eac12c85050cd5a154c0eac67ad9f2f52842d76af6ad4f47c4259b02bea2697b5e5bc1cca882ff7aa29bea8c85c833c0b4e5e3259806f2bcd25a45c1b0572ba5eda7f823b852b5f229a57c261bd2b08aea4a1563e7da12b701fcd822f31a2015e7ef4f11c682740b93dbe8e3770d9b049e96f98a856df9fbed729833afbba53d7e7e966bf9332eac970a4d8c135f859c642b8516720779c7eae0acfdaf76c134f081322c7b859264eb699f48e1d2c93f4dfe34551d5ce2a35b803e50ed729c06309ae2638d143afbdf5ec23ab02e9d9e8372538eb58f0f918cffd69b3f649ba7ef1cc258d7fff7d3615e5a696bcbd56c966b42e085c8a8543dae4d8d7e2c81293db0bebddcda23d8df0f9b62806bf9a9c4dda6120ea71d990769197d746061a653afd40700e37d6aaa0b350a4b016db159ceb7288870d5ffe657a2fcbab1a9add1ecc624f7df44f1cd918a56a40a3f593b976ccbf85d53f131d4993c00d86805275a8133fd21ba1d451923f945f8141ac2e3ff2f37584a2a4850504ef6054758cad51f2bbe75a5a0192291c08cf1e70decc9a94cd3bf40812589585295acde0cc9271a32d5110b6cbb0fd437b2f25d35ce4de3e73ab1b008e6903b3bdafff65ae0446f1d92fa345a10db3564a709989d108d1ef358026eee0364699f0839554b3d07bbcd4147cbb930d0a86d64e57d42763ffd708fd96ee35b670831a4ff54969c538c7d1f8b9c8c09886ba94c9f9be09248997b6aaa3d35308c9e70d9df176f8608c455af51b53e0d2374f17eda6ae66eb19bba16d517ae213c85752cd1535ff6079867b7a2b9788b08a17d71862611478fa3c5d78a102c33e09ec504f3f46280533fdc15c54d0360a43afc384317548a85040fe6a7366fcded381d3c95940fb430ff8604589ef0c70f807f9441eb2ec304c5787ea00039575646f4ef6757564ab7399595fc3bdbd2ab7b2bc370de2a1dbc1bde5b1906a2737fabdb4d28797983ecadd2c409fcc452ff58e5399a1364dc9601388b2ad8f02c733eceb0a628722001854523d9a1c6fd99430d8fd99efc6bd80666f54bc6b79d6116f2cbc64a7c6eb8a11b93bd9cae44a6139d73e0c30f63386f54ae5a0144a0504fea498612942fc051141cc8e2cdcfff992e846252e50c303b99a5aafca1955ec7827ab9e0a7c86791380326673227692d291ada8add0be650b67d1f312793c656716a04b5495a94fa8aa7b8cb806ca4b6a3c7229ed43c1fb0a9161a30831a6d1c000f7db4512d4bdaeb73420968012fb84738d37cfa187a8b4f2e5edae4f01586a1ebfb4cea3a113b772fdda99e319b8b9f61e8892b1a09bc864064fdcfa54595de4fca517b5ce4b8dc1667d79929f23271e7055a53cc1e29e4d7c8ea0935ffbc9cdaa532e601e10982676485ce62ecb013be71653fa13cfc17acb6a05ff2752b98ee1a7879236bb32385bc97965a441355b137b6877db345a946d79b3d9d5112cb225ce4adb5d41fd46831e425313fb8afdd1290ac0f51c9b88ca0fbb709b8b9b13771df0a299cbf6ec7fc767d004d2b410aeef7a8a3aa281de8bbadda7aa8b9e23feb59acc1c07c4427d697796420d49ab71d0df60360dbb26b9efb955d8136ee04120e2baed7d3414fead29bc40d71af1784dde8878cbf58f1e0e1b350b9b618926a65ee2f62d337bc1e9d5eb1ea86495700665cf63e347fde6755e9fc51b799bb92c162ff9985c7734be70182c00f062aa263d9970dd1dab2279554a9ca0f61d675ad65c0d76afa2d8645c0b1bcd98ae42368e2a7cad669995f959be8bf5e1fd28a9d3dc6ae453646e3eb82403746cd446743ddcdeef6d2c96c586c1c193474baffd2059b9c00db15c2d1176a13d6b7726893cd50c6bbe93a6477b4225d6b872a140b086d0bc7c9358a39f621d1a0e8760571122e47586eb51a519adac2a1f3281307a2795d94f77d78a80712305085a12056ddfc081ee38bb83e12a4a0f25472e50f832d0c2feb2e3c37d4e2a7ca95ff7c5eaca6d981945008798022288efe93bd12ccaa01186a0b3d8a6aab59cf854d64f1861d78aceb3be76b959b0ce81a9402074a7ec74aea0908e900b8276c4645bcfcc1f59ad835c77261aed8ab7d2c6fc8352cb59b0902050754eaddf7a602d2390428757380aa3c4bf4397198b64e3fd13c6a4ce19f1d471351869a8af9677fa9b66e2bfce9b75a98a403b929a9a6ef91908fd8bc800d310853db1310baa37339bcdd775c4d92fb8461421eb451051c8893e22045ef97736de3eac8ddcc8c6455ad822dab3d0320051b26c7755ef77d095f064f3e56a3619ce1d47306dc8492e80d02d6c4ad485fe0a3f33ffbaf6416431b3573306ba190108a9f33842293480fb1194c750fbc6c48242ecd3b8e9c06252f0324b142abe57af26cd8183f3cd7ede6ad49b76e03f66863cef5e489963e6d49706b274f048992a05adf117a0c06d5b792a8a6adbafbf4aa96d60885afeb65dbeb18b7c70193ff3521576047eaa8ed57258cac82e879a215363c0b5afebf88a0121466ee2a13f2e6b65344d0424c9d3a52e3480161214f6fcb62d8af22d4153b52f2bef23a34e51c350b98b23168e152e3940c756200740d45c546937377df52d007e7b2bbf13f8d5e995d3313d11113c201b657350cd22c2c2e1edb354a001288e1df45d1862d822677aa0ca0b9320da2612d4710ca229632133de4e777c37f3bf868b8238c73380a80a26a02a91c4f4ccd6b260df9a8baee05da9b60543b6100e94a05fcfb33c65a9c2df7dd0293d61c288dcf7a7004a7a163e1c0f6489616dbe781e048ff1aaf73f676b3d3c67eb9996cac5a8bb20b923590d8d93d1581dcccc20d6ed1b86db26d2a8688199a341a33596c0a6aa8733faebae434ba27addc2a2a03499dc2827a71687d60e77bcb6bc0211c698d5ada47a4a4455365360842df58d26bcd0d71a9f52e500c6a8a2d2a091914e3faaa29f534cd782bbe401946c7f762795d62d466a1cef8b5f509fd8d41b9cb2fd6effeb87be5966adaf34683439aec99046e35d25e22cd5fb6f53fe8c41d0773a17430ab640ade5c8b8c8d4851f2fad6498585cc16a721936c6dfac82789b89060149fd04aaa8babbe5be2d5bf82fabd3865b395b1b9511ba2f7aab0ff23d9b86d6eb9f1a3d42490f57b8835f34b8815820b19704e45586969bfe92b0f0bb7480d2be1327cf261b2d3cc2e0bc341a2edb2aa6275b1cd89b8c43d2011501a1f40471e9f16208be9a52156751abd1c5c7e9cdbbf20d2b23d0a9cb88c64e0ef7a1ace61d111fd2916a428301801d1ec00e7c64d1e5510609daf634ab8599e19674c33d3b0b743146496524999b62455020c3a2db264bec2273cb7be9e511706e19af04dc3da2f21eacfe6788516ccfb0a47ba16341037298f43976528cb6d57429885f03365554cb64de0640550db9ba7fa71c1183c4b57a8f909142083e0f7d038f2c9b9b84cc7ae4e3c6116ffaadd942b79e5bc75417030e62cacdbec41ccee065ed39debae0a41e85192c69075fe78ff286a6d6cc1706a2a9e702a4a9f0f5db6079a3033fb80e24a77f7aa96e3c51bf95ab12c79e7655dc79ac569714f76e93ddc7baff6aedfdfb7eed01312f4313e38116b4dc0eb74b2e8b9c35e714635586b981650c2760d91341ab6d20cd0f78305c726f940b48965e53822eeb29705e018e918a94909471ae8299d3ca92b91c473c8e24aff8249ebc3aad4f9e0f0493b1165bf3f0075ff052d9a676eda94bd239145b32368e1e609133326cd142488eea5fc931cba1dbf3be3912bc29d8b5a28768c1d39ffb89e1728b813f7a245c40a73e30e7251a96c1149094d9946b66b91c50efde0ffff4f150f4f8b962d2b4961147370ea922ded5732756944638a6d49aa00aab6260ea150b2559f312a437b35634a8322627a54b880ead39ed5ecd2af41be46c19f9876be60208c97b21685858c51b92b4136d6a081f50e76bcd81d89e3efac0b009c23dc715083cf68671421112524a8501b67d16862c6b23d5ba68b3e92ae2c2c94e724fe2dddd0d41f494e334aac28292ba28a511eecf88ed2b9a4023cf262f7c23ca29a121bc8c863893bec292c28cbcd0e9a5580e2f58c58244d56ac1253cf36c90da245acab2f1131975d16c01764c3484d4ab8b197504268214b402ff9a1366666b54008f9e8b290172190e1595076140da26af688e19a06a9e51bc24edbffedf9d0164ed3a7de1a8f916091f585676262bf815665284dc3292598190ba6ad5c600c19e7654438112706596a0ab93a373ac855ba41ca08b3131f17df474a964c047cd077267a14923828f667876a6bf9b746cc5b5d6682e4a0315578357a62a3bf020e484f531434c9ed86ef91850ec3b3a58fb854b9ef121691cc6a9881e506feb3d8cbe54a9b07d9d627f7e41d10713776dac6230ae71f42bf6144f7caa0e1226454ee03e61a6627042a5026bb5a1eb8f902765d27dc44e40325610acfed099c243c1fe3e676aaeaf85840e99e3e35f82abc9fd45f658c028a0fea14f6dcc365ea83c5c041e26247f4a0a67e7df12c63e5eb6131cb6d92e31b5a1c41eb03a04ee6f04bdbe6352b3d2aa80ff3bce79c1b8a86dc3abd5d745a7c5f9e831825de1b1542d86f4abc0f827a5c9d6476c18dae75222d28aa0601a3b97092f4ee33db579f5bf838e5745930087208d8f833cbece0521d21c7ad544d9f99e5de4a7fa1dd76942e1897321dbace50fe951eb7874de9e129ea6a6b7026339486930bc4ab28eb9bfbfc9d3cde069494ddcb78a3fc8301cfe3eda03b8b51c01c4702bc0d1686f1b4ae858b0505fb5bb37d8120644fc2892804c76ea462b28fd60c8b9687fcf615a4c5ab4458e454913b0d8994234d519466ee89f9e24490f916bb1ac4d500491463f6b880857cde93151ea22c912b15e206554f1743940a77bc9b3868c491d3b664cba8def02ec12dd05b9803b62be7a2835f625f5d449e6aa987d88621cb63ab35a8d4b8ec9689d95012d18935b1dae908af41c62c90a90d87c2eeda951217a24901ccbf6b075fb5a964b9180d21517c289af6e11cfbc209a33a430243d6edea10da9b0651c3cc9ed10ba8289554fce84fbcbb86a270e410709d71405cbc8ad404e5a706f785a504726665660cb59ce406273522d64a6c123f606db9501c8e12a5ae39e27bc32b04aa46ec7f492969729d5acfc880d8b4597b5c0daf8aac10a53c5a6aaaac746c91a1cedd86ca5bc3aaae20f37bc28ac5f043752f1796141ece9c1a3d811a234fe4413459aa8345974393c74c4344947b697a2ce0b887095c4aa24296227190b000bf8a811a433f92481d3dc0c9c535b4c00751247ca01c7b6a71ca450ea4061742943de46556701174400ea0eeec2157646fa6696bb72fa79bc4bac85e3330638a2da6a32edf62d2c868d015adea3e697066109d7ef8eeebb02d4ba04a3556341e6b2877b8f18086b52e4caa5a7c3b1a1bc0e13d46ee78a87317b48e75b1ba0e49a0995e1257c7a37e31bcae94a0472f949dfe25ba8317785ffe6e52cd195402b8d03f982a3a3ecb14bf5186869ae102bc80c27b2b7227bae75a48103a4282018e4028860a9d0f840f3be54b682a67bbab0c1a6f25cde7954106f253c5a26e65d3cbebb1446e075609e748a1d87281efe5a3db795bec00c0d0225484b52ae46527b010de2d165a935608af9aea1ef5afcc13c5e9d0875291e871557463d361707a3369baa2aa2f4032499f8739879521544f482a7d5bd0d473298f24587d8453b7a60fdf00c092f87818783e073e41fa136687c85a70c3cb235818171d08e1f7c2b5d3f7ce7b46d23587b0cdc6e0c11981c06ea1fc4a20e8eb6fa2a945c0d3245a9a21360fb4e9275d11e3ef1e28da7eca8c419f9453d06fd39bb5f426213fe47909df7a82b1190f0b51dda427bcf39eefee73918721320708c8df87d3958fd08c7bbeba2f8ae4603cfd6935ce1b7c18a9010e234006736823b837fae44a848b29485d79c88a880f1dc168bed12b09844a0ccf7d8b1124b88de288e0bca8c6efd5d02b0c852d0d668f019620535d3a5bfa87e80db55760c206f163168d44485c6a611429a410dab99b62d1752d8540433674562d333aae380d0abe0c29731d7c7e7a0dcb98d4cd27856e28961e01ad94fdf4753f211242b02aa1733a8f8255ca7aa0b5a926c157f3535801c0f8955559858f57265731812a1559d93dc678bdd76459e0a7650a13b9427dbeec95b847e998693a1d414369470ca4e111141439e650fa689868b7c525f57b9a07b0e5b32903d70dad878f996aff6c7c1929c3d78c3ce67489acef24a52227539dd5744f1462424a0611821114c38cefa4c72901a00bddd7d02730e34756a0ed3128a4feaf37e9bbc6703446ade058cbc3618da6ea6f73e5bec7b23840878d4b8fc7cfc620d1bc3e65c0e1e8fbd2b3f078caa165e121f29b02b5972dcae2e873164c9460b20122725c2a9d3bdd9c59d8832b29dbb87f4be823ad31c0bcfee18395b2562ee0a5a39c7a64510acfc8555b6383493d4b9f8ad6a909915698f52a659b80d3c9ec8e82b7f35b8e707697ebc4fb68e6e489f793b7c403d50df148fff9117af9cb365efed098ea7e2e5e3a560e02437196e9b26e58dfb99a2e3771cf8addc25bf6cb42459c67a66e6daaa1c8f495786d166cf23bb77b0eb6fa5063b9baf973e8649cecb2367a3a09cdb324a363857943a74ec9a735232ba23da71025279e23851d2730c7f0a3695a2b87ef0898fd292259f03b2aaa92cab481c352466966e902bd575a83ee263efd4f199c1ea64d1743da3ba1f93bb23dcd4afcbe24f0eac366d3774b33595d4f66ffe6d6beee6b7f839b45db8a55d9eab6ea0703ac2aa61b26702d865cf07b590763c61eb9103cd47f429a3167654fda2bd7d5743fc4d5d4404a1e537993440a3d6209abb76a6cd2c25ca514cf2d620a55e1199a74980018d49957f2fe1147a50054262b74af08e0e65ef1a92b70a26eb5ad2ffa0eda39269c73021e3c0353186ac812e4cbe24ef25cce85bd34e9c5b0efc493fb2994258986feca93d4360c29524de17384ac1822be64281c3ad7ba7fd4a12505c309605c4b5762ecbc6a7d1e7883f7dd9d2bb3fe8b8b5c14a88d2d3aa904648a147463a0cc5e560afe32161524d845428779e5807d4a98389027a2979ac3f1f7c15b081d8a178b0df2a12612c6a646fdbc2e84acfde098e041c9df56c78a74d570dcfad2ec3a4a883f6bbe2af51c81b0aaf4f821d5a258caae6cd64ef0c041a109911cf3465c08565abb8b8d27382e0b42feee4ea7ec7a061184594c89304030866208a34a000792a66459a1ad88e9b7d40250f1fbe30ae56cfb41dcc7f86f35682a4e9d8fca836a9cfee623a1f1d966cc199fe661a5b2c9b18aaea7159ba9f86064d275a84e7fe7feaad4fdafc86be2fd1276545150b87ca956324097f22081164593f5c754715821a8090ee5c5c363bfbfcf6672078477438c3bffd47a03772cf603443cb2208850af4dd06b458d0f9357c405cb4b560a6d33a0a77a905e2bac0a24610621452383f01165106644144c0da854d001234a79e3e6d6a650aa232d13a3222ae782fead859eb24aa22c0db3d1861eac866e52a21b768028601595a6209c578ef3b4801f9aaece43244f58cc539977bd8f71695c20544e62bfcc51a5e56e4c71d7779e114d4cffb257e6f9c5026098c78b23a68a75a8aa12136eaa188f135572029e8aea244de5237600cb85901c477c826cc55c9135a3e735d091cf531add507165c58b17dd9fcc3c1bd3fa6fbc054348ca5ebcfed2f7af3f1e209429da7731e169321888374e23c6327e8995129e98376b8ae9e2ac98d6881643e957846bea6cf7d2ecb972c39bdb3a98c6afe5427e70f7a5fc4861d48d671d961e21445f6ce45b64834d1b510906388671540c998d2dfcc6accc6e4d309b8ad7ff775d00be77709a07e06470a96630b387a9486626b3bef45d8bacb1b3f8e0b2df4487b6df1df828bce6fd17ef82859dacf42bf69c76d6e3bc63f432b21e696b6264b6a8acc4c6f14a0def75cfc2057f21867f3ae18f86920413ff140c62122739be9cfcb3a6c8b3228a4c6210978a4ac99c80d25fb7c843a69f00fbe88185242fda1a175234ad6b24eb2873166224849363516b7911c2098a2afa0810ed24ed27215886b7d83128a98526e756cee491936c43c5c4b38264b9f713cacdc84a32b7d077f7144aa496fcef9b417e29b29fa4041e0a599bfee344baee935c57091fe517782ec1e4b0ac9a92e937dd27f40243b9adf4941e6016c359caa4f9d94b9c1305cd0f1356c6155a53de0f111a0a1e2bc5e1a0eccdc0a66b74a09bf31529c237c3e77fbfa4461381fefd2fb9282a2ac0c018a9b08536e85b8c070b21a2982653919ece341099d2f33b47d18802e3665e6f08d8a17e36199099bb31dfb82886160e8baa77ffdab2d3b9036fd18a4255ba706b3d46a3108314b1f468939560e4720c957c1afc995932bac77b5db7622bd5d0d54991a19df281028d1835e756295a14496761136b18b147b8a4ec9119cb1e8924003eda88b81f13d3f88d224922e16c2cc42f0980c6c4c9133571bb208d6c2d13964ca46e76502a626e3a089b32843d980dd8c372d1f7f19483dadf01742eace9fcd183c21af755f174b7a52c8ccf5a424c2d602183cc9c48baea3d63990328ba9e9a1f50254aefa093334f07fa3928e32ad0c9fb5b9bb83af31861c29b20c1335eea2321210d8260bbf69919f99661e49809f36596f72527e5b5abeb19dc47c8024ba25a50388a0b340977c128d6c3c817409de217f8ffbb1b2b19f8f90dbf5728187599e1138996054af99686b92a9151827ded7c4118317f8ea948cce8bdd186872550cfa5383549a0e5f333be428a28e424c8b73dfbe50a20c2c612f16a10e3b61fcd5b012b66d6ae46fa29000245d357b30352e469c4ab013d7f50ae09b28c5668611544dbe016817520ba497730794b5d2d221580f347b5894175e11b46500489100c61f8a155e196d37b63f0a421f082c5c6cce44b9267c8ed5599bf50082289957a4c37fedd87814c72559521d309f569ce3cb416f785890aee6826d5583baa4290a8a061bca81f9e18be205aa5fbc30ada591106584f940d2c26bab64047b9b6df8ad1ba969804cf6efd38544b1cc8a61c972556ec11560127b2955a92b9b1b2ff740b0eed8f6598ed4d16d99e96d504e43076b52e90155815b3cc9c481bfe8252caf882af526adaa14e06515d60a34aa08bb59a7d185f22caafbda190090801c4088e9042fd2783e34967162afa614579702e06f2329002db756c31a75827224ff0cd05ad858ff6c0f8aeaee39e6b9dae75509e2d156c54ce09b77fd4a8836e6f6745030d277170469ae1f6508388d301554d56345128d36a61c4a6c81e9b0275800de30705c63d07799d6e91f7380c816e83cda2dacb7d7c9ff709a822a234b6c35b9c5b1a04919be37e31f11089c52cb708f2e8ba3526413466358c0ab34ec7efce588ac154b560a89da766f65d23ddf28710a34140943cd2e5ca46b955cce2fced06c3dd480da279d92f25222cf0fe7c68ab85bfe2248221ba4881223e43c0ad0f127e2ad0f1847dc097e16de66f118c0e9eb2b1cf6018ee8ccbafcd45164199685c73dd214fba8179f8414f40bb788c8433290a8e06ca0095670f7e32e4aa39a09b7c46bcaea09624df6309ce6103060d870ffa3ee7e79a69700411234085fdda2b73541748efb84d031f45a0192a469250432299de9db5f74c6aff06602759b6c182b3a483c50966f29981d474ce842efc2642d0187463698e5de5b435e89940151f2ae042bb8d02e8d11da12156d533945f18f859325a083727e2c8942f1416b48389ee4eaec6c93dbc4cee10b0996f42c9e192380ba6ca9f9923730a135ad4f61c3be1e42103bbb6858f91fbf26cb67ec69d9fdea5b3cff49ce3216b66b5c500a376ecf7bda06cfa3d8aca5a39279dd002f23b7105cf7ca13907c893cb4b7a9f514c58b2b11257d06840c9b91d329e43664683e8dd86019a7e6a94812d83fba878a86de648850a4867afd6d30168a0532ea7022996e50eb1f7ffa52ffa9239405f195681f75a0ad798e5d46af1bd82891b498ed736f5024516f64301b218c1ffd9f13e8eae41c2583cf98cd53f8990f138005d133b77a66218699517e359a1e1a6f8cb157b72b8ccd078b357c892c122463f7b404d0fa634aaf7ae5a0174cf9324c73d6d9ee83fc62faee041361136bf22959a4ea14710667acd8d99b17fce732ca2406b1e44c0ca5ed28a947d7dce5ec1f949ce107fab84868b5840828064b99e2bf24d26a4334188f8603f4826540fc28f6e44e01cc4e1352224410da3b70af91d5584d1f5d8b61d45113b0a5b580d3a360f4d2e685e10a13ed7afd800588284b1d406a04e5aa1d461d0ea81566fb89256e2d1ecc7557695b0cab90ceecac6c3e168f87cb25dd15c896e8ea5c5a2e32c5ed7041d6f4c4476b50474574a407791047ca5a3cc6fb6616f9c1b1247693451f98f6081bb4ad7ac16bcd89c97a61cce01d2c5cfac00740f42e6ca4bb624dc099c10ea7ca608ed890af2fe0d2f019d286bd502b4270815d7379860815f8b1378c26c252fcefc506fe71d5f99aab7f3c25e3998b7f34eaf4c793b5f0ee7080ab5ef04489fbd36a915a9422a8ef20e242f5d1ed9be3eef62f06f444557d58223ddd4d4bcc0d6199e66ada3e8daf9e8d8bbb6d3897d302a6d3a69afc8fe4d99397380d2922fbf5651b5e039774ab6fa27aca885faceb1a55754375af706b44e15b9e9fd896af73fe319fc63556a6fcbf3cd10eed733062e43e3f539c06c22ddcd1ab9deb645da4d22576e68a3dcb635a936f2872456d8382f60203e59dde9b48e9a8aefdb6d42e15265febd82393c680785a534431eafc3b2ec5de4acc789f85b395428efc97311552726d9dc0f0f0533675f9924d7691ea6e1b9dcb410fe92a2e8db8983833927173c27d2c1b336e2947fc8147b2b8fa6592d874b7c6975d88eb48389a63d64d9512411f7df45aa8ef8d34e472113394444510a9e931e82a8882abef95b179243ddb8cdad5c6dd2c0923e0dac6c5d9efb394d66042a70504a66d41398f874ce4af8bfd82a8ec49709c99bc1f53216c372ed3ececeab6d6f32b00122966be2e3115b1793c71b9ddad14e038b72af2ba4b6c903c99451030947f4023f403e991736c9033eb385ed94a157372c1a3af2a2cb177f34deda91ae1ab524c0c47d3bb87e22cc1994c29f14ac0e6de0bac104ab3719ccbcf260e11d09d34912e0ae8126374650bb2fa3c4cdcd3fc9e788e0330ad15f62d3eb185e48adff71beb9bc28defd29a0a0ac5c5a4ab43b72828bf4a5fa1805aa2ad79cda7381a91d1794da9f9421f70c66e6380465b2af6146b3089d33544c05ead5de0d514e5d5fb1831ab78f30649a438a6a08fc6c27aea81533f4de46237a8f7b64a859887c2a7bbd1502804f2318072ef88ac525615f91cf06cfdf6b36d0d34a70564a7659451061aa9865950aae695021e1773624490039f312ee8fe91b434fba38cfacdc0e09f36f61cc441beae399435d0aa6e78cc4bdb6480608957597819e029622cd9cdcf4d529711c544817376941df57bdd4db44cae3f0c0b7f80320d720f7d85945910c6030a169aae9f90204cf6a8644983f9644e10f305b3996cbeb1e89840655a8c33ccb491092f009bba4fdff85e0de78c16c3cddac88fd3b179deb4b51bfc14010551dfeb1f1716e9dd18ef790fa8e1c771b14101bf2b39fea98d63151d05d85542897f13437a75ac8cf80f21cb3946986394005f069c9289b748227dc1903d1ea03c70874007ebd0deccf9481c14117881dad4d0580c1064c8378ab22a5658116f7d59720a7e5348845a2eb72786f912c42c67f54814be72b2cd3c51058f567b135b2af70be79d15f543000e5fe735a7fb43030001096fa66cd5d950a43ee3c5aa04f07b14c1939a526e818bc8abf574edc595c716034e1aa27065b9b42fd78fa32c64f15f5d03e1d414efd852c0f0c33052cc9017a0b89365e801211b10ea8bee70d8a94aacf8ae8ee4e1ab252b4aebba4e42ff3799e001077a83de30a04f416639d2c5a413367dca04094a5aa11466f29b7fb1c06c5bb4f5f025706ea503d0943b8aab0f78db124b54835701bc5c02fb7513699a494014903490362037ff9a992b02fa24057129a0cf777dc7eb33077d4b2df32992c53f77661ba31dbe2e82fee877d11988eb13386d8bef16e7f7143b00e28e812bbf7de6bebbd321fd98dd716ef77ff7ddd98f768ed14465b49841849159e1747ec1bbb116f11232ce4f98e5102b59288000ca2ddf19b672c094916ddf724d9bdc655ae0439dadde96c184c37fa1631b218c5b184c58fe377ff4f8ebf7108a87b24f5dbdd7d646754117e0a23c6ef10418608498eb15a15cacb194b58747fe20a228820429cdfba311489445b2412eded62ba11138944e077bfd9809f01372009d28d38d375a3dddf582f4df71d69b7d6546ede54794f9b8a303ff94a02d85af1dc4abb7a60b01b0dc3842ad2a0ed5b1c622b8f96004ecff3bc8df7791ef8f6451abacdd78d9beffbbeeffb3ecff33ccff3369b71fbcff33ccff3bccd88f9cff33ccff3bccdc8fde7799ee779de66ccfce7799ee779de66d4fce7799ee779de66d4ff799ee7799e0792dfe891dda8ed28f88007a04b088890c30e7c40b9a0e4c4070cf8aea80f17d89c5d511f549820a28828228a8822a28828228a8822a28828228a88d203f1443c114ff0756c658c0676658cb1851d3b76c78e2f76c78ead630739895d1f104d4413d14434114d4413d14434114d4413d164b5aa2aa209564deea697fc4c31a9a42b173dc84903409de9006e3e534c2ae8c9344dd334cdf33ccff33c2190d6f4964eb754a6699aa6699ee7799ee7a9324f930a7a42d994699aa6699a366553299b32324dd3344d73059282549f0a51fa743a9daaca3d6198d6e18340445397d8b50078d9fc371ff1fd0b0281808c5c171cc3b4f6125814ebfd10b3602b09ab85121d43f58f7defc8258a40831837e286be7f2dc702b6c98b1bc92a5692ec6b3521bbd8c5d86575a1f81e78f3101da3319c65d8414a38f7b594315105e3d16a8bb92a091b97c70df96b80fc5f57a8dbef88b12a36e1856b47a5c8047df106b17ad0c40f683f85f245dafed6d18e0ee8d235451b74e9a88996989842d7c7f5de6b3da3a5ecbd4ae8810225b6d9a59e00b6ab0e9d1446881d2242707036e0e775fa12c1e7755a93e1309b966157b6300d1e34190eb36919cec0952dfc43490d569f5271006b30141f941521dd98050a43051b7f00404014c6686750bbd4ef3d60ec3588b97b03b6add60a0a2693c9945de414b7322aab6474dfaf79259bb295e7c52385253af38abc22d7905dec9c6bc836e4157925a7e4151f9325e268a2344dd3344df39971c82af99457724a5e91cf7c86962805ccc599a8a10ff42e9b3b285005aad2344dd3344dd3344dd37cba8865029df9747c793ef399cf7ce6339ff9bca8c78647e59607c9b3f210798c3c4a3c693e3f387c583029f3b4785a3c303c36b6a7e58678ef81e1f1c1d3e251e251795a3a284cc2240e91069dcf7ca6699aa6699aad4c2693c904aa36251bd186b44101a6600d50c5a19e94c7b3baee31f228f1a83c2d9e5467a29ed4e7fce0f051f99c3e2b9f94cf8a8fca456ca863a393bea8f3828d6527d561b9a0db41852617b1a10e0ac3b40ec3ffc7e4947d4dd4503ef39966ab2bd561c8c956d98ae4f25b8e39349b30ad39c8320cff03551ccaa196c87a675aa00ad33a0cff412011a8ea4cffe84c8c8a5c768c91a00a7b522e82d1abc390c49e14a8f2a44095382289237144964f1247a1c93fa78b6012a67518fe8340d9189afc6309baf4a452ef49ed16b2efa05cc4519893a5d6982cc3f01f04eaa0c4917fd86c5f3b6f0b7f5cf8d6ac979f8fcadebefca0e5e7b47df959f99c1f93c5d8f6a45c380181bf46b0634305e659c0188b1bb1de6f355b395feb19cb603f123ba80eaab343c708df6141b141980eaa7c8f2cb10eea737ecebac23566fbda795b78f4a1cc971f175b7ff97ef7a7868f0d9600dfdf07096b01f4e73440f959d99f94cfb9afdd9f1537c4fb8b6d70cc2a09cdaaf09ed4c44afa0c5353aa624a612a9d862f02894e2c459b4295176df4a2fb3e265d4cdaf71d75513b6455b0a18203965d778c2d2b632be7ebc2b0ecc2b24cd3b60da36d180cc765321a2ea3d168dd759eee3ceffb4070b3e17070846188102236186ce43c070706f3c0c610185649d0a0b1169ee41f1886611f9a442c53805f644983be756771b4ef93fce386a61169df0f4d7585d12785492eeb9a690c965dd124882c8d5dd124a45ba9f493f7757bbf3957a28550a4211cfde41ff64515bad454254d5557e8debee6525748e1ed6b3f580270bc7dadc60df9defe26729112169d106f7f1bb9088b118f012cc421dd904d8acdbc21e0dbd75217114574bcc6e1db0f47cc3f6cf7dd08aab017998deb85ff56b76cdbfcda6dcb32f7c71ce7a9751075d8154575d07e9160fb0b0299081dc3ee86c90e20742986a18f54d2926cdc8191d9ea18b1ef80faf72b499273e8006204ff7d8d4b00266d107b73f7bf306012bf39049b0d626f1aebd3149360cb8d5cec7223ae71fe4d635924dbe24672c6fa9cc90e17fcef2f00fb92189cac1f0346fae3b748158ec791baad8b1c714367d2ba206bc286ee357143d7dd84872ec61887ae655996151a73ce39e790355ed7755dd715ba6eba994addf39e696a325991155594145de88c338185ee6f9a8a4b5a98458e64926457ceea48407eebed26d99563219375b3988bc71ac2985423b668d1e2c2b4d0db4d6bcb0e2fa8022143c60cd6daeb2a268cb19565a0649caeebc23219a90c95a6691b66c6688688e3b84c66c68c940d874d7c81b5324ebc438d193084b0892d7049e1e2019719760bb65bad55915427acb5f7a2334aae2a552fc226ae40f5427542a9545433d8e1059dc864c83206d4c0e4860e2728d016a18c879dc1b8b4cdac66df6698cdb22ccbb26f5774460eaa16c020460d13c458020862a44388e10415316c902006104788b152890185182fa80c0e6c6e575486e893daf7fd74939b4e4a5d54758c2d2be7cbcaf9ba30ecc2b02cd3b40d9369dab66130dc86c1705ce6acaa8aaa60b83425f2e84ce83d6f29bda454859a50269b624b56b4b2d7b1a5c160d85733dba10b035c3b6f0bfbd677872dc21b2c01fcef87a6d014b2ec50250b4da18b1b7261bf309b96751f462499a821f0054cdde236e646b419711bd20605b80a4d9d0b445267762b1d87822ab006580374015f3658e386780fba803f80353628c014acc1a15ea8c2c178680255a02a5b752bba925bb943bb94ce943b95ce4577822aae857bc96777d29d7426dd8add9ddc10ef3b936e04dd49e7a22b7527397f21064c71677a3ecff3ecccceecccceecccceeccccbb17027b7b81597e2545ccad5e0509da9a5d0567c4e6e855be174c0b16c6ee58678cfe980db01b7c2a15c0deec4ade49c73ce9f13ec4a1ccab570292ee56a70276e8513813151431cea229e148843fdc37128877228877228875e0d8526722bd54e8da499a956d24eb41187661c324b9abd642fd90d0dc5ce5e6e88f7d98d0c0ad98b76a289b29734dd642b2d8546d24ada8926ca5eb255b64ad3344dd354c470a77d4dd4d0e7fc9cd90a94add2344dd3d4d39cb355b6ca56d92a5b65ab6c754d01bb7e7511ebc30f2f15b96efb22b55c1066cca1bbbbb65376e9290c463a6a83d62ec2658ec276769576493c6320365cdf5a6b6db5d6566bfdb15fe213ee0dfdaa2b78dc1cb67a512944a02205fa8b010ab4dec1097e3082e9879406344e208186c9d62b3ae0346e90e16a1a39386169a0252094061168acecf2417a7010901d76f095afdcdd1dbfbbfbe5c1c3c3dd8a40b87884473cc840d7a0f5aea84b8b8b0bcce5052e2fb0cb0a0eb4cb0c2740efe1a242754206ab2a8d5c44bbd47f826518967900c358c0011ef80045097a10c2583686852d282c9a853eed0bf40cfada159df172036d037d997ea083a04df40af48c140dcc6801831cd8ab19b1fe3ad93182df3ec946807f7d3b03a75abf44932e2f5434692ca241713feefbd56c9a91872a3dd4b5628de8755b2debba36a919d94033b222fec24f1724b2a02bd7e97a8131a764adb4ec9c5bc8d855ad940b3624ca40677f65648a9dff4291359bb57bb3e6ee59c318e3ac5996655959cb39e79cb37695dc54a572ca3d57a98ac91a59d169e7bf381107396bbf69ae42233b1290fdf523d985daf9affc24fb00f722f1c87aaf1bbf8047f65ebb89b76aad65fc99cc39e7edeab0a11f8047db01f92bb0c21c068f5c04e47080258df92806413b66fcc0918b5ccd7390a3cd2141b0b473876b6387ffe6495e443654398e158773fe009763fc5a3ed50569501a1eb9c8adfea13f864f93e27c302a08749ff3dbc564cec407a37edcd7ec503fee733487f3fe7bce6f1626e346dcd01cffb5b08c7c1ca486c3f98f436adc840d6d326f398ed5d8e102fecd2f00ff465bc0e637d202db6fb69506e55f6ad4c6ea1fe00cb47fb9ad368fff43b9c8c696e1b62bffb8dd6b4e2e827291edafee204b6c6b2d822c5db5cbed5ae50f419658cecf4196617e0eb9dae4f25395b6dc5615586debbb725b6d4f77b97de9be9fe158ed1b5e2254f50f6d2c5fc0a3ed2edc10261d35e284f6bfc87a4372ad781462e1255c146530dc4b0383cd069aa57cc12d39b27bb35b6cb1e1addaebb88a98ebebd7ec2a4c6f6cacd64f1597b070cc5b6309063ec4627b1638e52b5fa1fb3eea27b7a40d5dd9b2175bc7999202dbc98de47e1961c3e20dda5fbc41a35ce486f055ea9041e3bf4a99bce4551a3b36a0ef3bd6d2abb2951871438b3a9410894ca69494a824d22fc790a91100000050006317000028140c0a44519885388e04827c1400095482426a6a38134d4471398c433186c418220418600c200400cccc0c910902919c1103bf40d0a12b72231362628c88420e07be6394428bdcec76158e1eb20c8b3c85649c37600d5403999316df13106f3719e503945c14072a79aa864c8a5ed70b4ae9e74c125f9a1e03e7a75b2b2c833b987ddd6f534aae089ec40930cafa62f5cbbcb0887a5ea8bd4411e2f8c0653f06592e29d40e315d22498fc186e4852830488e5fc9e9ed08d661f638d1f230a7c63413ac45c82ee43790f7a008ab22990ecef63be756104db94c971b1f8cd2bbd36109d1367250e1d2275cdfc7753394743c4430ab6549aa4111f43d2ce0803fafb27709692ec1d3bda9b3e385e062f765068cbd35bbc58dfac10652110cbb9e2caa6ece72ade85720860ad45422e1212216cba2ef0b286326f604af0717fc3e5cdd6f186b91a26cd339d690533b27af8d8ac4e3022ead05976b6ca0217d7b703d7f883873c95821f4204572d8d856b985039a0412151ff815e7678cdea1a438974b092609b6aa6a722446b10aaaf19e4c6a52d5c587d6240f0de50148888e0cea47f982a704460f4bce7304ec6579c9c1ff136d973233c4533239e889a5b31e04700b2469c0d8af1cda264c2ba4c13ccfdbdb3ae85ca6b71e1e314ed5f3def7d26f59e900f5dfd52a6635977ee3268db84ab26b66296662543333c29e140096615443cc71e20aba947483a7fda419a39f4f76b91d9239ead9a3a16de772e5ca88f89e3ad483e8b500330f94d8d27e5193730d64308d9fb5053e761b466b21207a8ed4d6a16a88fc4ba2fb94ca904695eefedb982ded61e2db8be0353e0014145f70fd7d0e319d3344515fb75e5698f1e1d60d6e6882ebad5227a271f7b4fb0dc79db5f86b74e4f14635536864c9c3a46b73a30e8a574d4e16ce65ebc5f6c741a953ef82cb9dc07fa7d677ca3b12ccee7ac11d70fb0911ddeb05aa462e1debf637913267e2d49b476dc35eda3747e6d9595aef602b843f72449cdc2ae0a56e0cd85efa9a8cac959c5ee75eee0f7da03dbb8459fd1b8569d59b8de01ed6f68834aea2285d10acf0d300c36feb716f7cdaeafcb3dbd07fe6fb116077b702d519f72d9a7dc407bf232e4f5a39096597441800eeafcde8453fea85ec6ea36372408a809eb4d64dd2d8d48434cd79c5e6bc41c153c17320d5d2dc3480e47c83747607b598d17e1ccb5869c3a254520d12b0d60068341b4400fc3703fc49f5ab49581ff248fa492d2f7e297976a908acd85b9f292da67776c32160c78aed53581cfa8e36e6d969d346c08aedcf2f655f4c2e695831be9401001b924c5a436435b45915f556d7ec1f0f9f12ddfc0a937ca037667bbc96f02112279eceb37aa2df71218d8c7e6e4ea34281ef24b2e0b41b060e7a3602918d3ae53461d1b335aa558dd2e26c7f56b126ba867d2300459836aa7e60317e1aa04a2d3e67e596c322305ebd163066b6c59d277eb63a7023d8602de81eccf91577d0c1c8e7fa55561e2b1239daf424adef0743da9c1d0e117658a923da62085c2c052823af76e5b0eb2068f96ddf8264235d3018293068663a40361256c976c7a2cba100ddf2dc60cf4b04f3c8849ff52c24d23d6f5adc79bd26d51de2897ea30453194fd6149c22d1436cc8509c4a22b54d26d818560b1321906a77db7e583b93b8c8e7a35ad10217239b04d37c912f47b5a2002e402619d248214abe1a7556e89b803cb2e44936392dd7c9a84d3ebf84c8264f8614c9a03ee533161569e19778469518eff424bbec91fe04396cd0421b5325caaba019e46e26845281a2fef431b6890026d837d19bb756c082a83d16475ade722a9d92c6ed49a32f6a89b18eb5c6cfe98124eaf17db09d72882f73d5f0908c3a2e7b289faeb38e6a67274c6b8d7f21bac674d428fb75d020f4f1a23c1970ee2253a552de6c3bb1e1887d0b3c7b8f6030cb1abdf3c60e5f4a0154294228318eae9c1e209fe9c84887e871938481f2d91149c16813a8c2d4aaaf9c4b6f22363fb3f0d619b38f6c13e32450a3221413eb4440500eb4e59bd3c462003ebe991d7252146975572aa17b5b1d93fc8e4ea63309808691a901bc8cb2087ee7bccfac9aebbcc653ad15d1b8d82b06b392994b138d8c3f681c053f4b7ed4aceae9bf80408c0f97fcbba7ef31b5e008a88fc3b7b1d7cabceb1449c8923010c63cede7fa8bbb20946629303aaf01cea64b4f363f195330cb5f57cf1e039df23d6731008c9007828e4ed8cc2aeb811c95f01656d9c8a66e23a14787c7a0f440a529afa1369756eb33b5114c36d4208ebc867260def48394efccdb1709034de4c41f1f9c016b6d108e85561712c5aa8348e3dccde12936747da8b47ce3b91a1a86b941cda95db949453382cfc4ec8217703ced06d7d26445d2f9fd6b6d2480a767502256c1c7fe7a410d6be8bfe0737bec7997886608fc0e134b8113a7b63a540d52285d4821d4ffc253ee711a3f2528b97010c93e9010ff4c1a580dc22152b332f28959bfd2392c1c503f972eeae079303a742036bdb8962df60541aa394398432f4ad10932c400f3ffc7a54e89b47740c2a18034d396175bc75a53d045558c279375e6bcbb88a9bf4d95cbeba85f1690112f11dfe7cf25fe71e157b97a40f58b4e26f854f3625728cab52b2225dc25e209b3bc8f82b88ed4a52d8d44b6e6fa40b2d5c55d66c91ffc3132063196c44644f3b74b778e08163d1cf2cecca4a43eacef9176eb478694f8aba419bf924ec3583b5c8d03cf670043ff8d4ef674c0e0ac2d702d6b38acf18e5a81b752cd954e0c907aaa8c9b2f729d9a763c74b9240c460ca401b8fb3cbb388cf6771c5014cd0068fb4fe776822a0b19fd3fbb8fc2b45f39ca8718841ad2190cc4614d050d394d4fd4212583cd8363edc09f6dc6323e69e09064b312e3e434e4e6835f6896e379e91c6f6daa17c5e0eb63f4f6d015e8783080a111a78b2313e5660aad138419df54f6e77709a3622caa987cda8e30ae807ab3ff5489d2660e4f6f02099f55d6e140793f0c1f146215356fdd92c6dc79ed11708a8c76cd6aa468c7d4ea2603af0542ef9f5d762132b86975f11cf6f8254bed96812282105eeaeb6e852e98a0b81b4d1cb1a57672f9933849758b12b4c8422be3c0de9f0efebc47a5cc4d2236e335be99a80422efced1cd66e12c4eba521d9a91b5ed94ffe014f4fa0241b1d5b657e65e95c42e0b9a853a5f54de691fe363d85aa96eeea85ded1543cbc0a392daa0fff4782619ca7a1eec7807b9e1c63378752defd9085825a45ebb9dec3a332527ed3818037dd3e18197d5ad9efe304a47ffb017310ad0ee6f0ca15feab5adc60ba39aa6e08a08d0a6497833219b9bd6dc1c180c9bbb6af630d6b94e343eba719379dab1220ce88964211fa232210bc7e64a928af9f9662a92d918760f60e61ea28bf71025e384a62029942356d56c6c4035b83ba353ba53b007e17a9f5a19f2a30ed55bdab0aea864e0acad6c46621a7712870edd0043c6c7e4b2fddf70e6d81de9d4d548705e2ff1196e453b80fd79cdffc81c3eabe324454efd3974a71e159c520b53840010b06a9276400cc7acbeea516731ce4ec7c8440681a2f5df222932f9c61811596455075f480a090bb413c521936ca242c871edc0a593f34292e753019b1e7c09c6a2685956909484c5575311fa06db4fae0e9ebd4c14f7c0228e13262ff9b90805e651010d819ad7f8311a6e40c7b0942f36bbec0affa3fb9669a2af6ecd49363ead09f1a1b3826020337578c962c80e934aab906bdd74d12aacd89646677a4838605bd51e6f9b52a0752c56b854610be6283a00106940abdd9de3089de7047949469bfb7ab94d5782f659e17eb995706839827450b20a2f055bdf4570e7ac3b32f15555b183b3f2cd96acc054450d62563b6488f74245bcddb36bf31d3495c7896cd4526785079d15468d91487588aed8908db13ad924a73ff216f164615678a5357ebc12bc34be93e7ca88e2b9c77f2937d27c0dbbe39deeacab8196fa95d21db94310346c57505d394da9d607b06d2222edfb04b4cde1ef621313b2dd1b33b0f8d9ef9cd5e50965fa3d712cde2841cb78c4eb811a05b8d57e1dcf42bad02b604c645057f8d63f139b8a64f46c81a554df87d1130af26da85b9b4284d183c321b60ba382ca92b7659f4fbd32eeb7911cf387d213b82950c994bddc9b42d101c346f6c039afb6bc476158d7c1d0703566d2825ecccec71812a15c33fe47a2034e229259382e75d9f69d1c453d5fe6f8f5a154871730c49cc719a770f2f0cef222fbe507a9e9e6ce9ed973d37b0081e403beca82a756953a35a5eaed56d437634c56d4ddefe350f2eaeacefb575435bf2b56096052f7097637926e6058616fe028e70d89c11b2a4eff4062807f7af2801cbc85fc74946395c778a429714820d7f303fa272f3eb41e29ca819a730e1e38778388c27473df01f4b886b25393527aeb1eb772f03360dad3e379c5fb84767b7ec3f7db895b0e72cfdae78d7126bae225185cb037131bf39cefb3ef9d89e1100c980ae6c35f2f151c3fe0472a2bd05924c44a6860bec559dadbefe55fd82ef65538b4906fe46c83be1d1cf8aa062c7dbb65fdb3afc2358f447b055672b991a7f3c2350a1de0fb07103fe31560c9ef569ea6fa040681245a2af0a5b7db65ba2e3dbca79e9d8d5f1b243352012e7def82b01bd59f3737a328fdfcf352a5ad323d70658eae001c134f6b7f536d3961567c7506390b1b20a7938754ae6579c5d522bd672de0d41188ebcfdf7bac1bb59f649d932549a5e2f54662a4576b55fdd7416c8eb5c643481fda9b757256096bffbccccce5b6b208c2f055676a3cb1f2ed3f52eff948233031c108fc448056885bf1b4386e8d8d465b686ba16288b7d580a57d5eae6886969024b27423460c4f9fd2ef94c6f17584bddc628bd689d685679b04f4a6f0a4a4c6a08afa1bea8a3ead8f5834d229103cfd4d32a06c3b9daef7d99517077509ec2d975217438987c4694247e1a9336e5b16cab2a21dd4c1cd289b967e1dab063e4c163dde0d15ae82e58039088e9e0115a2b4c3421e7ab734550dc51eab54acb73cfcb779ea04c289050d9816dd4a07d70cae326c94d1a94ce41fdc471f421df013c2f1cf512a27c6cd82593e0d9703e7680a5ec37db067267030d1dde8b77bf188864203bf6ce3e1018c8f2082bf8b5db5df3f43eb7df38f60cf782697b520389543b6794d189a1945c1e971004d8e2eab3d48cd419d1024703cb902bc442396830c28d69e04dde4c1a6e8ecf925e385e68969d5bc50977473f0e9304bd5d1a031e9d56c2963226742f12a873ef39a3073642c21a990d5f364c3d958b25dfb0c275d3b23573fa8a720a9206038f87c23febc7f5e34cc9053fb4c5a769b2ff8191e94095e8d4e3192771b055e6f3d006dd375f54b37ab01e69d714ad4481b83238779ee6292295c1c78984d5f7fe4fc8e7d8b91d662bf0b170d5a1f43d92790830deee6be57cc76bf8b6dbc838619ab6380059c4fbabf7ad5cfc0566c9cdaeae071f4a53eeaf12953955590d03cb27209efdf42fda66929098a0a1472120d04cd339e65e7cb8f3b22be9377e6e5aa747f9f7c08d8e599fbffcb4e0ba58400612405455c3869e3bfb8ce8d1a2543ba34cd2736c4dba1da59e3f360630eaabcd694b7e6e80a357b7dcff18ca909bd040062bd1b4c692685b56ba552ba330b509deeffc273c75b8a7f1176e428ce9e5e8b7f112054a559b43acdd647688ea6f07c6af99d734f4e7dc9bd99b75348fbf689491d7315b2fd7c50aabf1a9157b2b562499b87b927e4ec85a3d46744415dc5d9537d9790071b2f6ec41e8c021832bc4342e62c9fa4f2d99a08097d0a2b8bac83c7ce7b3fa2d76cdd452284646a932b687e4ced264a8fe34a05da65063d99be1902cb7a0d36792263fbafb0d06c88a00829b5520fa8f35ee5e2ba135122f23b9402cbfb443c82d892224117e61aee5dd07745a19e8436c80cebe6e99f88678f36c1655e8b4e84e862c0956a3817e04205c2594dac5c210409d287f043b7409f709192480e589c08eb2d48da62971545d4e372d501cda3fb60bd2261d61d41388bd3f9abae2a81b5b9d4b29059c5f32699a8a923e924ad0e4cb2cff35004deee0a8db20418396112862e9127603e0d1f5d71b564155911e8d395df40374a49e5b73351a328bb6447fc4a8c20de92a822ec786c43238812981d595948e75000d87173844318ea7b3baa6130a64f1a5629ec07a66b581db0c10266fcb1638dcb3ea5fc10d9841fa7004b861d656d30b2a1ad8b1cfa8781e7765c41dbc99ecfb37ba51405584f700d465a88c8a46b4cff0cdb2ba9bce346c919ed94bbda6871557fac406847efb28bd6ea44548491bf26c27c9e7c8e7dc30b73b1c259fbc564507a22f9c800021fe091314846921394d45b852f4b5437058dc51de6cd1b84475f1dadc289bc66c023d1c51a6c38a8eb6491d2fa90af82fc82de31cb7b7f962f66acd25092c61bf1481689219e19c3e8abe18d58e978ca5e1288f692a1aedaff6005d3fa6816a200df50a7d313cd34a808a717ba15fa2aa7a0dcc63462502f83502b4ca12b3543588e435154884248683e0642ca820f72d4a7be9709adf9b4c5a7e92daeb571329c10d71a8000eed555f6a8d3333e3fd8617321d9b982eccd67f0630a9f1df0f0ae150bebb99a2acfc91cfd63dd0919eac9fe8e6326481aa3e74715d4d1aec08011ed0973a3ecb44fa8e8d1e668ffa22ac000628df61fa582f30f6b683f79e4cf96ca796e53ab7ea4467b6f961a25197c2830926dacd35eca05dbd27412e90721f1018526edbf361ebab1dd481af0cbf073daaf536e92e6e661aa25fa845843320d063de8dcc47d015be36449018b45b7321ef862785eb6923ddd471b2deeeacf4802b4e7935b05fe5388abc437fc6ecd43a7af890daf0cb6c6b2a8232b91430ec6f3aad930015b740a680ccdb6bd2f100352e4af861770fae59ea71cd9c8a75f2d96deec8db657f20320d7676728dbfb2e0e74d946d74460a8f107e0e8fbc26cc522fa22c11eef52b7e788b6df908f041bf8237d45ac9b1d8236b5c29dd51586bf20e1349b90f2da2eb1d2b021741e0d4139dd7d5ef8c7b46a78946c95d0f5221cd984ea082c5cfb65688891d0b0741bfab0eae8911896d267e07dd500bc7f83f0490eb4945c3f84e31b2c7b8707be4ea1d1654801324005cd7cc8876cc933e1942f52963fa9317f248e0fbc19d7488aad0c2a74cfad705f6101fda185f02a175a68a1f1b98631d2f6aa925328412dccf7d75d04da303e5dd0fadd0b382dc2062994d887616a36480a9e7b0f03dbd5282404d281df5018ffe25542afae2d0f032a7747cca7621ae2a198f4a054d49fcff3610e6740c6f725722e99d525b0d5b0f5abd041888a28a2f60d7c1031ddc30847e12c27ce308e848420db33923f4f1fc69f8c35729251ac141fd58711ce39116b34e06150d16cab1a027c98d4106a5817084054bec8344a3fcc8f92ed00be7d122a0974e4f630792e26a42f2302fa8c1425ebbb874170c3a20df8c624f001a3ba3fcc84c926af6cb21a2f237dc18871e9c03bc9d14e74da39beab1258a071cbd0af28ff24656d34b86bdf0c0278989f59d86176a12370fe1ed08ec80c528f9e9a19050267281334f811312f35ab666815917f9869feaf23a6445012522161dd58b33d97f7ab04c353a0099541dcbcf423c6128fc9e69cd7a211c37531e04a359c0b70a182b437d98f6c576930b4d2c6904af0766ce2f26431622cacbfeb6ea0df399da785f44ce42dd0687f86567c520345f79c99e34ff43ed1211085176730cfc94d2807cc31581c181973023705a16c19b72be1c3e646ad1dcfa16710c901318e2e6765175c6497f3210165c7851d2e296601050d97ee5ba562503f03ec852671321ac1a13483c769a813095a0642c89174c539ebf4a5af494179fd26c8f2389e3356a0d2c0ed3784db1f23eebddab8782772e329cab510022a4fe9974415af520af6cf57bfcfd50469da442874ec3497dc31ee15cf50b7fa475024817ac9e4a325dc3679786ae69799f7fb85e893a12cf6b08cce0248c1136fc980bffb8784c09c3c8dc2809174afa95b6acceb76a791ed62c92e6898099ad9c96de68da9a6a9d7c980cb771fd023c91131f8ef170d40cf25c7760e04179f47ef9103e792a15fa29359fd881f5c12416bd0a9d9999a53f6854f4eda9c2e4e3f94003855d736c3ddc72f4bd6f422bf743f45bab3a484c0925932d11b03ddd8dc511af865f8e992ad61ed04cb4d533b66da07185f1419c8423cf8c42de12cab44e263c98a26cb8f9dca837ed62bada1b641ff411b0dee22bf440f4be6f35f76d356e58af0fe3615042d2ade51480a1ac8a7aa816c6a137a8e3f27d2c036022122e888994d2a341922883929a2ea61bad9fb8b9bb32cdc9344770118ba59929a2c7f0e9d04ce2ed564d6e9dd72c63a35d6c8a14fa51975f71e69191a99e6468eec1b89e81c9bc95a18273659ae8518cd0d650695603c6f898abb3059423013f51736616ffa61daae2a8c3f41c6283ba46a531cf70499ed1628955270ec8f09e30d5cec1cf138576cb116b02191ad984e47dbc49e03eeb5c4252f303c7ab5105b2595247cf18e4e0589ea9b2cdd970bbf1f0b644135ce705964b08d4db861b862d683a889a70dfd88a6a60bc65b9798a45d74c277d98c78a15e246919089523b82bb6b55a0fe2632b3266f8105c9cea36c309cdd1b6f4e21a51782f8361cdb3c3ce5710037f482c5ea1580ba9079ffd837c9a0e16ea62fea85b8ea92f813482a4b2b1f1696372332d781c165e7d03649292ed4ffc1df43926b3088a0daadd096285b70badb535f7947afc6bee56c35de0c4f53d39f1f885c00b651e0ebd1e7f126db97df34891df7299e1c9659aed345a128239fa8e245cf85f5f2600ba66ffbfcc79c656698cfd6dd3c309c3520cc4d7593ee61330f99d740b32c52415fd1062db3138b69739c72433d06eb10d60bef27b345ec9540971996ae03428eee1ccd499f3cbcced66460c1be7cb14d356885a6a45142a2cab10e2a799e2bbe0042ed36808986c13a5d03b6a21cb2f53d4c56ce9a38bcc5e27b1bcfaf832d16c18bd615caa84becca8d1977970a2c90b4ea1d2cc430f3095281ac8903c1e0a5fa06bdda0245c66d1309b080355128f9484a1e62c950aeeda7fc10d2ef307168e3ae0a9a0ffd3face18f13c775adb7c662249503d2aa3bc43ce1f22feefa8572e6766739014520ad00b5a8dfa61ec7379044d46434063bc7969cd4c4b3ca6cd29af513393eb63a02f6db8ac024309da9c59bf82f82463411f690b2a613eaf45ba2bd9c84c04dc643535e207b8e3d746976906c489b33f5bd374c8a6facf645e32d10c2867a16a14cb9d3031c50642b555863921c1542b54a5291ce3c29c6d16844aa371f6070957360786acf53ab198e807a866860a062abeff81b4ec67f272cca5e78a57486453c80f82f2ffa52b5133656f01421e6106234faf6ba97f320179ffe1b41caf03b61945361964fbc2493c4109de20a4fc0a5b0d3e5bedff020bdae03572e8006f809e12c58242f3d4d6a8af624ce4aeb80d201b58151050869560bbd08e1ba1c64d3a08b6029028892221eca48800ec898a502b7084fa4912ce9325a86df80c756956949814906d158c99c61aa890e016037089c1cb4be93b19763183ac8319b8010b42e02af4cde3cb70e875c2441dcb37b3e00a911834fa26cfa31a4cfe111af9ac9cfc3065fa9fd4f259a79f092ad08ab7d6fd231b1e8ee8dc0dc221814afc2d2180cb0e10fcd31269ad9dc4124ef69fbd2457d14fdb665606fee21cf5c9508fbbd270682285a7c9a337bf0249a7e15ad0c1f2b22091ec942457700acf2245cf60d3f37325b60c3b58c30a93ef0e0d52013d3a881ce9082a49f215170a5307af3206924303e4e8e2e22b8bb28587cefe4eb911ebfbbddaace48a5ef89705425e548044e98368e7fc1a5fa008a2dc66330739748a9effe2e571ccc091c35ba1fbb44ca322dd150b051edde59a0ee1908d3c6a8b6869598dbb0769e999e00fa385acbb641611a74f23e198b02550453c33d144b34a7588b09e87937c23767635e0889c977a3ecc36e2720c6612683de818a1bc4839135c6ed2edcd21b5b765d5e9e2493db9747d14fd4a3d02025e9f365ef8455f7753c98b21d604e8a1f207056b08b73681aaafb18245d69b893d8ca2656f738a94651b696da5f6fe3b3220b01da67ea07a7a5794dc2605502827d3feed0a48df33091081fc82713fcd08347996970e9c5a3c9ba30d5b70f1aec8a9136caa5413eced88b1151b003290a244d45465e7cd8239fba06e84292af205a86ab5f4fc717d2ef26e71554ade0839204b850f4a0c06e347ca5585a92d838f1e202f9486caa607eb7804c242a440287845e5203d2aa86ea366bbd6c8eef1ccd24d2f0d9c78c0139bdbcec3c0f33146fa45bb003eb06fb930917a9ae8ad36f78d6700b6d283413f7e704a555e117ce1a61a69853dcf3065bdd6555a9792da241566ccaa65c11e06c4ba6209fc1afc01c03bbf946b9c2ff7c1877d7dac46286b90b87f0c665f54c88e39abc40b845429ea2162e30801d6687c7175f16fe759928f818461e1922e6f2625b3836e2ace29c0be533e4902f1ef06405b0df0db6a0d2e9ccd7472673c0d8a2b9cf8f7c7fef8dcaa3fb9f2ab7503f495c8d50c2615106028e74f2ff805a7bb441d3c6af626d9bfa82785eae4c3e99aaf0bdc7eabe1b4969dc4fce6a6ccb43a24ba920d51535e5345242be6b5c37f485f025425056d36c9cce42cd939dcf82528e4f7d513b71685a8f6bddfaa4493df1fda26e13e2af123586272e7db66a4dc1887121937b6e93e1b2ff951ee0da5a0b3dae17eb88a1a4c82ae5297c4330a537d3d7308244f84dae6e5c56087d4bbd2b1696feab1c5d055e42272ac9217690168f453768981fe3e1072165d8c83ba22d9681ad139efc72e4b7142c279941fe21362c062ee55f3efca2c9028b46b884d81d8161541b625204b37109b6bcd09cf9e2cd2fac356f370ed8cbff061a30c49931f7fb4eeed9c98c41a982f278f5f449d1d7644bb59d1ab16fccc64f8e86635c7dae1dd72d8155603da553c891316c1135c7882583b97779dd581765447e684453422f32ecd1dded579ad5818884b08ca9a3a2c1b72b71e1ce64822726d480c44174ef060178f10bd7b96e91887311df182f624e6113bba5ee5336cf8934fe16e3c79b3de7a448482f394054138751d7cb6ee00f1a215b519435690f0a703d1b6826a0116789f8026fab499bf3a8e78adc489deb7e4be78ff2ea48024e2f639013f08a78814ee702189229ee2577b993667ae6611b7cdf96982ad5e261eaf1b253c88ac9d4ce037e931268278dd2891c7bf044dbd78b4ae4c77425c5367a3248971428048dd16dd9d95bfd6daaa4ed8be216a171dfa6bbe044834046eaaf6a86516c5ae044aae00c35031563ff088f72a5b1d0adb39791c89b43b475154af4801ff80a05a017483f0cd28c56fbaab76812db6a9a1645cab29dc01bad2534772d767a415c8182ecca488b85d14c8c2acd802893159b870a1ad84e452dcfa3aab45bbb2501f1cc0a6412d3cb23f6aac2f1820e35896bd19ec8ce48d72ddaf88e74700d5c772b4660e61c42fdf00a38d4229bf9ad109f1f0dd9171c373927a670d8082f99abfbb72ad18ced25af02d12fda57b2f1f57fb37682bcaccfb92dfb48896ae331cd7a8981ed97fcfa29b5434589d400a69c09a18f4ed1537a8d71290f3be1b1fd5472e94610b65b4823cf2c30c808955a2f0ada249af4b2543ea6116ffd30b340e4889c2250a1718a46a5980f88ca9531d18be332083b685447c33aad61bbf67a89c27e5b970f073edf53ff639afc0d250940fff21199a99e1e94f5271f860a5f5f22e610d301bdcc862eab433fcc77603fa5b95e3a9b94c745659c685e609893de5b64a6ba81e98086130e214d93a81839f889fd364ab570458f32d335f4429e2028210f3985ebe23f5fee94597be6ede50426fa319410cb05a193cce49af35cfaf19e601471f80908345e4ce756765b808df961388fe42a4c02dbab5f9f201c9fe83a7112a43d4fbc308e8d7fffba56be02cce3714f7744ca72f38e8638f560d23143b4a7f1927a6103243f2408d1249872c06ebdb5e01d59e15d47089fe582fb16605aa4f4c8a23e63db7c5ea6a2f893a6eb44a566414ea6ea60c228d7666a09bbe68c607056c6ca27e02a522364f9b3afd62cde94e4eab12c9d9f119632e97f0aeefd16f2e636147bfcbec0985f1cb7171028279639d0e9661992023d2720edf5e15a82f93a7321232085d215041a87fe680e0113f178445c4f665be4f2b5c186bed1fbc9a390b4312c43add649359fe3b7cb866b34fb0bec239199905de27435c017606315eb67ba53c6a97d1b86797fa19edde0b7d89846ff5e2000f0c523b71f1e71645c2f6fee8c86b1d91b31b6c42fda69dafcd78f29f400e32b8a44db9a8893902f01687cc78f0c77e9a1932f3ab874be6bcfb922c81ca081668cd30366ac46fff003116b1e81b3a785ebb52f206d0d033cc90c1c395eb0e11f207d0d033c8b0a1c319539f7b04dc18bb91483cdd782b8e3d026f8cdd48148f6eb8957913a837590c5dc346034cae04d2d53f60d0b0d18045a0697c9d838679b0a28f45e1753cdfa1480b8428e863f50d11871cfde3abfc353d9affa89b8a54a452c97769f45ec469bac875df1d7517398d4974b3e48e94927929335a74ff9b3a12ddd86c92f7464b808cde38287892b8a2d777c8241ac41306e169ab06889ce55a04f88fec4468b12098ee466ef967fe432a00bf68779c0f1275f64cb1c246460a132c2561db3c483967a92568e814f0f30151c6eecaac389c479f6802a9645432c4c9560568f423d58894e240760b34dcfc3ec967b4857a00c03bef2642968b0804cafc8dba5786ca0c5a1fb8514dbc03818afb6164d5a1958fd4c7f80096680ccd1c71fcea788b61dfe960c11bce1f95633362afc9a4bcc3185b8a4bcf7c7824c510d8e6c3f78590783befb77eba5418a6d5ca0146f4d4a6360205c4c133ecde2dbcdb96ad1d047353b50ea0185389d05ac130bd1bb9f19ff98f5002fca2dd711f4cd4dab31051615e8b0e68a2609ef09158b442456851ccb16c4203faaba3d6f428a66a37766ce85c4c752ff4eace96599829109ffb900dd44dff1f56ab69f0cd69d51bb0958197df855d29d5ef10020f49d8baf6f029a8b94f35e79654098198d59ad359ae390b107e5645d0e63dab89781485970cca44e2aa73480fcbab9ef2908896a06f92ab06c30db8bad02fc984d5ce87c2d44842fcebc1dc56987122c4b996a8a1c3c00225377cfc2291d9dbabc69ce9c35276fc6ff0bcc80329ac74ea71dcbb7955ec183c249c4f508f15166a49bdb668d912b7964b62ea5caa8ad8327b40cadf1c7d9da25ab7085b46f3dbc7bb6b89f1c36be908e4b5acac2e7d16e7db11cf14dcd1cce2638f0e85ca2e0eeb39e6513db740dfc571d921c1246f58053b261e92d46d8066154fae49971c9c57841468e2e81b387800744b81667c355a98172c47f0f4cd0fd896b5119055b8c7a4a98485f3355c0bc3338b2208f20f08e7a51fa8a73eb04f7aa09ef0a09b37b50c4853194b266fac1872665be191d4a900a45ff351aab7fa281194fb2809f385b79c20eb693340a1408db5c15386cc98668bf7ed0d17bb4025789d3ba5f9329bd28150d30a66034bc9eb0c9ea91dd8c65abf4719eb1d3e64d06060d2468874643a5df63d9d5cc7f142ba3f5c03bff071f8163eb95affa49c277c826ade8bcf2c59315d169e444cd6f4bcf9c4e98134982475e37192d43ba0dda456d3665bcc2ceff63cfd54df60dd9e6e3064f6e4131a409278abce7aeadf3c622ca092f25acddd0f430645b189547306cb505fd062b6a2130393cdae8ca7bd6c8b30ef27bc5671d08e4c9a1281a2708de63f63bc7ff0eddbd235cfefd1a4ce98dd95bb702275c37ee1f66b47c91e1dc1a209e26399bedb2b49b1264ba8092757d792b177b44ab5276d895c41cc65348f76b69208efb1260f090efc23e603c6b1357bedbaf39717a71e7fdbda71da0901d4cb8dca27e45c7290f5484700d3c268f88043dd7aa681208446aaf0011b473859e5e4c8021e5f30328a1cd98ac66e2c24c4223a55b5388283069ccd39a1160bf48b3a9e7adc186ee5c9de33f92fa00b28f1b81852f45a4a8dc752e943e828bdcc14084a6bf832758352324e4c1b1d93386a66b9c0a8bf9f6d8cf15256185f7f37f0c0b5467432af99dc95e84b75c39d75b12e8a2f61e6b0ce623d0017dce3ae1e858bb24c4594df4eac802101bb28b2cd89c764c12c7849d0bc72a010ce7604debb764cb760d217dea3030947e6857ec16e05b0de9b464f502e65ead0a3a3b693759290aaab1f0f604ec3e51bd90e1a0431eb4560894e786e9af30acf406e786301c6c682448d56160908dad75bd673a898c70daeb062baf92386b01d249d9c65b083613cd46b314e0a7a206a1d30182a10515388a992bf84f9de058095dca759cb14e4e31f471b4e299265fb86b39018de0ffd59b1ad71a371c5ba266cd7172e31966f667e0fc415fcde5f721cf594a244bda3d768bb16cad77c01a16d94a1acdd1ff327b13ab69857c30015f8f9b1e4907b5e5b5ef56047c7938e73b43eaf12a4b70d2387f03bae9d2d7b54f8a4bb4ff08185dc500ae35bd334cf06a8ba33449683101c02c8569be59de4d5011882630b9240f8dc0b7e8384d047a48a2afd0d6927e574c570b65add898e2ba8833df977f52e961682f61487cc3f99587f4d3e1dee086378a3df07b2d48f47240ab1841265f328efbea5dc5ba01c07e1ff7fdc4856f7f454dad92b064e390dc41628e4431aca29d7b6957e9fb953b557067276c424909b92be8a4147bdc65525fa0e01f1fb135e5d5a2b6f8fb5c5bd0aa876c7e7e44dea99a8a6dc282154c8ddc6139d59f692932e78f36a532b4f5b719d1ffebceceaf643160d3e00af095aca2c55329a5762eaa965512e9257222b1b71716fef6b37ce9adda889bac9e8740fbcb7ec975a12db7ea1fb6cf0dc8cc27c5a11a484efc90da3941d6e11071ddefd7a3d89f66d01af0d6f2448c4f9d22ac24b38898e0277a8b6ca177f8e8953ea380a4a1c45e13c50cb87b406afd7f04d93a917a6392c65ef701cbabe4c27d151c259b4c43219f751ea2c5a8a1c6c6ce1908db2401404fe391bc7d10f9dce4cf729521edc01deb1e40f054e08e89d8143d72e59029c158ff32892044f0676471161bc993c91d230fc137c43e69aa986249006000249a933919cf8278811cb7c02079960c5728f390019f443b0151307c988a6c1ccd75feeba64e646da8583231372d4f4860a7295318684c2fc2b41fc2cfcb18a92d20f12974d8a4217e4004161fc41575c3efa51b62fefa6cf0598ee9dad1886f63b02fec52af0124c1a62630b0c6d59f037a74957dd1ef5a13041245ec27cd263193c04d00fe80650b1e2f003fc10ad5495734f4c506c09f2a4d9898b54600ffb81265078b1effd0ecd3c9bf2ddeed009e41c0e8e8bce389f63ab747402bab861565b7016514d1b389217d7805ff0c1770b6062ac8b96f00820ccc07ec8626830a19401239c97fd48cb87fbfbeb81f24694d3f12df698d0b898d00cd3972da234f29630049cf23b2858e497a532c6052c7d33b39b88904d2485b6e4ca1da20515054605f649a27cf8171140e8eb65966599d691f2ad0750daf39ebc59c815142dff661dfb9d0d7fb65d2dd36b676fb76d5fcab79b8920609dfd7d12b758b8a0c1e6ed425fff2c1c70f47bba6d0ebcaf38ca15f902d26cc8aafe50840f628cee1ffd4a45dc545555515a844d113bb2109c7a3875301d8a23780a82a66918cbd3114aa79b13121f1e1e4271f4f1f1f1010272b2911efa958c8801c32d4288a6841296144c84e85732c20aa24e0700187a0840a8068fc1501cc12dc7126e0eac2807f85ee79d88fff03b61d2dbc40e99c03a0f015047fc4ab10545fc8002187c3082500cb0670845dca0e0e305451c51c40e1650083e3db4786250824e0e58701076d08ea04376ba51c13d2191028c8713d81798e08a9102ab0824a84a300135420a3a544658a1053347d783ccd1030bfc55f972d4c0258711489063092ba51c35f4d4af94030a2139885470947e9eeb14f0965dc8961d4ad31978dc1b94037ecbeea601bf1d47c56f3fb9691499303280378aaf7ffb0bc96f8761c06f9759c06fa751c00cbf234e3c459477297efbca489431402c11e063cb00de33e97700fd46fa6dfceebb037203b28abc3101de005e3cc5019c14bfeabc2b4966405e4056404e80c95360c049f16bc508c81b87427f80dce22920cc2c459802e4ce5344978ac653441b142846a3ff5008e318b28d4d75f214be426150a0188dfe43218c4fb5621c0afdd75cd7dbce0655c8168fff489638127afcf1250f201f5feaf0660041791ee663f378cf56691cfa4fa886260ed9a0309d134815a8f071edb1e1507e71f4d99e8e3a0452052a40fd01facef6c93040196f387bb6a755c8154fd172dd9f7745f6d57d77c5855adba0c69a7c912f2ff245bec817f96232994c269369b6cc96d9325b66cb6c992da5d2cd2cddccd22cddccd22cb9788a8ac649f13b97cea573e95c3a975a310e85bea2a94e4e8af4549d56aad329743a55ea35d46ba8d750afb126b880df676f5faabb6c69d2114a13bd89302d3ac6d95245983d4b3afa2ccd134da7a3ec24cdae68749c158deb6cdbd549c7eb4d700153986cdb1446c7bf1bd4efdd9c37b49bff650077b972a39f005050b880d60544714a72422a954aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542a95faf0803afb93dea303d4a0a819e1d75ebe9bd51f8f8fdf7933787c947152046900e4e3873c1f3fdfb37d3c68ab34c8c767dff9dbf978fbd1f9c8b34383ca5019a93fb61a7e733d26f76cef9d00e9e4174720b1e3e104670268831a647bfae3c693617cf2cda0ede94b634f31a3957203d05f8f8fef343edef3f1dd090f011bc09a096f06fc8ed3f9e8369bc777b64a7b3c1effc75f8f0f8fbf1e1f1e263adbf47c801ce7a5f620c0fe0b0af97defc49601179d27eafbde09fc9161773adae3734119c6a7a2d9fd9bdf3bd1d9de8579d56ee329e275e975d1d6ef91e3f88d1ab7b15e83c2bbe24c2c7588c5ee0aad93d55ab1ec66ffbabd0c633ebdd35d40149f201d32f00b7613e20c80820296f5984d1c39c05f9004caaf9e80a19e31daabda7cc915ed5badc14a71648f84c04a3afec84738058624f0bd68124f216b9c14670dce8a125bc017709436818fc997359e027b71527c982a4313aad1f1436a705c85cc180aefd1ae353a6ecca4e347eca65a55e8747ce9f34becc0da8db6909a2ad4d75b9baf7f5088b2827a05d3d6bbd12491246eecea60d113d330639d14f0d6503abe86a2262745acd3119312d41d61a1c718e10aacd54c18f1301347e0ed37464c59d58882268ec01bd78ac92e64e208bc2b366285891c6fc20818403d9c4ea7d3f3017c27dc1f0b3a58c815ed1e442e8289214c98620eb4070cfafdfb300103a1030e21e0f801870f100710f10720601ee028601c2d3fc0f142ef47c1851ba51b3537704a374c3f278e0e85a32509fba20e6cb003981b2fd03764a0f7a38853c84208bce2d0e169018916986fa8a8946ea8a07483458a40eaa96dc4e8ab349c93f44ec424dce8f8f684131072292cf0bab895eb026d2214ae573eb1b495374aad9c4a0857282eb024914a824612337401f42b25d19255b512e928a5282d4828524a84c522a14829919489c25bea57fd16e96aad740bb1d56f166ec5af79dbbc47259dd9bfd666dfc96cf616672bb398cdfbca27525b39845d44944b5697da69caad4c9fdc8ac5add0fca813ebba6467696a59d939154ec56b7744121dca842aa15e502d3b6a50196d45910ed67fdbc611ab1e6b8c22dd25d2dd571ad9bc5bfef5b36d64a3abf5781b9dc810118a859b342d6fcbadbfd6e7cb59b849d3ebabf74bbe65b97c87a41c528ecbe827002b2b176890a3e156b4bdb0d749968dda87e987d88b5510a6d00cab3284f4257c492b2b9b482c7bf89c8a35ad8c6656b5ed8b613bf34669c1755c8ac5bdd0d7bbd0536252cfe73a2e05ce203f72957503c6a9c019b2af629c1ab7a22b8bfdccfbc4cae25f310257954b44aee352b8953927b7a2a1f6339bdc1b302d5f836fed7c4a4ba055d99f4fa17cae8b2392a3b92e29a7bc32fa5c0a8963b2258edc6dce594d28a5cc5ce729edefd85394a76e7c4b9bc81ba0d581d2fe9c0a9ca1b2ac6ade1bb094de5687f6c7b6138b53e154a00cf3ade73aebe55d61712b9c0afec18e148d69d057323b84d8f142236103091948e8d05643914e67367ec37560badd0ddecfe0d7fb78f3ef6cf243acb76ea3b5d6469a5555fdf8a454b559f6b5da14f4f4833da8669f8f55fd6493f8d8d3af282de8c3147d28c2a2f7fd93f879179a5a128a941249b9d57e1e5e4b23a5f924ea8a7ef514f8e9c73f89d9a4facfd3df778b74fa8e6c34cdfb7ee8fd3ca4d5fa2d35a570b3c825b0877fad1ae89350f549293803fd2ad2514af749dc229d867f6df896803eaf81a065d1bfa017edc0d73de883ee9bd4bce1adaaf5dac6e256f441f04928196da3c668f5f4739f948232d0af6e49adde23a1ac6d3a2a8e78280c0d3dbf62f561c5ee572b6f520ef57cf51427526e98b349659fd2fa968e4a1ade1a2efc0ae612d66b4fe79372e00cf5e989d4f0f789d4f7b1dfa392d6b2680766719fe24dab8fd17b034643ef2ba5e767a49cfad8db27a1ec57778515e9f435b5655549ca8132d05c339b88621dc4837defbdf7de8c38366e503a4e1342392b5a51ebbd6a59082f8bdd875d4dc39df71146948e930c1a3635326e6ad4c8a081d15dca392b39ab8ad25a2d5a2debbaacc52e8b61f7669976334dc3b8d3f1783c1ec87b3084000107582687165c90630b39bca062adf6de8bfe830c9ad20c87f921e2b8947356159d554569ad16add5b2aecb62d675598b61d762d8bd59a6c51b9ee29db7380b8c4008a16134451a91068828938a2d5d2abe441f629742cda8612acdc0b1519a510359a04c0cd80259e0caa3f1503a9ec906c6e82e258cee524e39ab8ad25a69b5acebb297c5b07bb3ec669a8671c7f301813c3c3e3e40e07f507c401e09f08851d3e27bfe7c6631cb9004fb62d8f2457ef6d6ca1d92f7f5d79a64f8baa4cc9ebe99c76bbd7d09c0af54c40b2dff53448a0e1dfa7a10226c68f9181134b4fccf5b4b31782300b57c1ce567797f7cb5e1f3526aeff1326fd0d78cafcffefadb7989b3bf4aaebf36cbcbfe7bedf1b55d577665dfe9dcb79f7d672b81330dd7dbcedb8bc43bda93444f16edc059662157b4bfb289f6389b806c72db99966f06f9f7d23fb2bff2f6c8329fb8c63efb786dc0fe9337dc2e740df6afb7d766af0bbbb0960faf0dfbbefd7de21acbfb035ad6e0dadebcb33ff12b6b29b365a513b0943366dc1b2e6d330fa1a193374adeb8a4457b1e7b30c6375f355879b3b0c1d2013566510caa0af9f13d6618d2632ef118eb0b6b5f8c1686c14b5f3903f00b5b763696b0d66dc4917f7daf114715f48f12fbac2512bb7c085d4ba2b6f8b51741f6f7e92d3101fcda57006b15c8eadfecf5ad9559c7e0bd017bfb170d98cd6e7a27ae2c6a018ef4eb93f8d3f4c4d2337343687f1712c58a3208b5457690722bb4aa62fec8a5545c4cd1f3655ed1b58ba3a9021c658a5ca92d73051607ca29af975576c012e92a4b56524e6bcefc293aa3b4d11a2ae3343a66932805387e0ab09bbc86df546a23e5b4c918ef60315b02bca50b4c85912e1546bab060130ba6c2d41855a6021147aa2aa3d6c4115b2a0961339772711da7c275d587ea525f5ce288fc9738421f5eb3be8876807fcd2b5f26902e3160645830943ec817f9430c18194e8563a92e71644b974a13477675912ed20798ea4385a931a44b85e154aecca5585ce7c2a96c1c502a942e9c8a8da5615f0c8e33a1bd4218eb90fdbd591591006f3f790a6a72927fad58c403355d6aa235e80db51147aa1bf414472e0a95aa4f4a411950a49c4c85a0a58ddad0521c914f6de2087d684d6a23d2c19a96a805d37fb424e201437d721d8ef2944c5949d15b40e94d4f1a278e6c5af2d349fbbb8eee8817ed4f85a0a638f24a5ba8e1276a22e5905295843a698795422bd7bc71407198f7f6132947d68e3a0683b7a21db009fda92bfad5ccdc0a06aa2a595522155cbd77a27a92d8c55195626b68f9cfa44f589ae49287505a7342e85c47a9bb731d9d93fe9c16a494c29ac2a9702bb4b6685971dd932da2237055b568f87293ef28970bac7d188494ceac7a92484241586155ded3a431d6524cd5c3ad82b0d2b62ca3104239453a38e753ea35da453a6093fa73eafafe189aa875d70c445d4f71e43a5c74f573bee884270bc7d1f5028ea351a938aa77b332165213868972e04d4d222330f5902da157d41447aa0885ad6a3b8eaeefa9ecf5afafd5d268b74cda3f93f8dc2aafaa696b2cc774d0a1dc0ad771295cc7a9702b9d0ed7712a9af65c8af65cc7a9702b7144e33a4e05748210d614e864e2b403e8c4a978742094c70ab702d2014a79a4804e9c0a4b1c4998242401ef2a035f88380ad9c4910c95de09f9a013d691c24f123194968fe9d0f2f1163ac5510a053af140ca8a464807e844a3868d1b3a7e8081e15464d7e2f262e284c958fbb02db81c81041da3bc35b8fe885b5c119f84ba443a10100b3e7c128a9422a1483922dd24716bfbf877577c5c978dd5e3adfa1747aaa7f19350a41c6cdf754bb1e7293c2008e67d222fa795465c41e9c35ca2942a7521a52dc4443a6013f853ebcf4d1cf998e208ccffc18923343e35e2888d3822ff631347ea8b54b0952e222170f62221f0ae2b5ac2076d9df7d83ca21e60a8a5687c40603c85e7e585c17c6c3cb6122d4e92dad6525afe6703a18923f99e0d04660391d112fb8dc17c6ce248be4807b82ae1a2650c2dff6e1b4486968f7d6cb4fc1a2302216386105abe65716991ebbf7b6d149dfd24a3fc122f2ee29d181118be065fd3e06b58d328d6264a0b4c7b128a94c2341116ad83f346911eed3d22299ac793e77bbef3d55380be93f789c45ae73d0f7292a743b146ca21e59072483911458b540b321af6a05f890b3ee00e7c29b9171d296987fe49d4554e94169dce73291de9e974b88e63e9749e247a6447a3f869276f68c9e75438154e855391a9ebee8ecd99cdcf22a7827dcc322e258b5a9663e4bac8b164c0b59861dc8ae537db10fbbb619953e1543895ae1a42176e74a1465bcddd5d9b73def91723e59072505a5c12ea3e29754558b0ccda4828ec3591947bb1ab8974f3b5acf3998675e67bd51b07ec318c9443caa9f4cd0daabb63feb0f2870edf436901fd3de45ebcd716b563c1a1ffc3110581e116f221749c2f185a18514954129544315c6affde461111b0b6d11a27d9cf4adabe7d0d48ed3871047b6be7a5378bd02b401c6c739c3872bfc2937e85aad67aeffdf8d66efb95753d7d59343f15960741f354ed506f67e656240cde89f82f9b7c71c15bc280e58584c143c0d372c50518ca952a1387b02f864d6b3269594f4544c02a424438b07ca7327144060582d2e8f910abfcaeb87faf69bba9058c45d171cba41c6bdb239a3a7f73d38b614a5f827d1f2222025716b9a259fc637c51776dd15b761dd4b40635bd1344687101deb26b91126e2b5986bc441cefe1eba146947d31bceb04583e2efe03fc41f171fc076908a1b5bdea3dcfc1da701c4d44046c59d6c7a774d39fee36427c80440c2456b48559a47b27fc452bc09b6a8b4deb2dc0d87693beae9f15455f6e9a55962df14684027fa1a3f441c78f21343ffe14fd20ca02dea35a310e8d467a8fa0ef20f2210810cc0822071ad10b4439984002103140d9c92e4503b2a6bcebfd45607dbddebf0257ae80b5257419a3acee1357b74462d5969d0f5132315ae75b6bde50fd7cd10eb0ec42628864e08d759296666666666666666666666666666666666666666666666666666666666666666666666666e2f653d5af565a4324832549b4a13520f5f6530d1d55f8298e447d8231663bc0db4f34c42812029e5f553ff909ca171abe48081886bf05a20a87ef4f78efbdf7de7b3041e4f0a27368b1f40b2287141d44a723888e8850101d154a98a044032525250fc2c0947c8c2850402f8114f05b12a534e1255e52f234ac443588100a3131313131313131313131313131313131313131313131313131313131313131313131312f86a93d864d0fc9db7ed679bb61dadb3ca7f674a6557ecd07cdbfd67e68fe9d0f9a8fb55a79e827fe8f9f797b7cbd365cfbdadbcf3c3f3bb6c47e866512b79b7d0ffe8edd2cfeecabf9d6934b747ebe2dd179ecb5f76c253a9906fbd8636fdff3989dd4e24f66e138f86d36c1dfc926a1b7f6e7b6359c65e8df4bbf3584b4b779bf2c3df289ebfbdac76bc37d509e77621b66a7edccecb1b777be660396b34ededab43e5f6403c791dbbf30cd433c79a3e4dd097dbeb369efd9eea7d3f91deae4cdc271323ba7b53f352d7b6dcb5ed37e87f0d3ef78b06c32dfdaf9b6858bfefc276f16efb12dd3be3333f69eadf3dad6d938b3709ca9bdc55c4433c0f3336de264a21960cc3acef5247e529271d14f45741cd9d1506202f4e55780bea438383750c6eaf8e16f1f423fafdcf4627429a59c73caaaaa2af9966271a394525a61c080010386dc44302c18160c0b8605c38261c1b06058578c7705847185fb0a29e58a39e75c51555555ad10d1608588063737a7130d8d8806d8d69a95c4d869428b63967543768b4e7bdef72f0bd3fcfeb34eac2b9fac3936b47f278786f6b7f0b19c191a7b8f1c20b4bfcdf941fb77a27d07fdebbce7eaf1fef19ff7bc3dffe25f9e1dc3015e96ff85bdb66debdf43e0e3b5278912c0fcb12dfbec6f2ea1bd3ff6d7dfad84f6d6df125a16c90063d8e3b7b6dd82c427f6f1f7b32cda81b16cf2f15a36f178ccd2379f58fa234b8f1abcb3b3f4e413d7d706fb9dbca1b6efdb7661b1cdc21cd3fcadc7b2bd7f6599f7752cdac0fef1c50b8df17b08bc346879a364f7493cfb6bb3152219e09bf78985e52b9bd4b7aa75f9bfebf0ad9c146dbddf1632fe25714cc3fed65bbfed161d7ef8f8ba2ceb7140d1f72febdb6ed1896480fdd270eb76219201de2796c6f276b14fac0a4fba0e74bb45956e7d06dc03663b443610bd886c00e332ad50f2c24ae98897189f0663747729a59c73ce595555555554857cab8962109808a8344eb576b1753513000401c315000030140e878322914092c469968d3e14800e838a4a6c4c9749a3d21c48519051921062082006000000c0ccc8cc2611004d78b15e92695fa2c4ab911704f200c20f008b99a4688ce6017528ba74e8ff27f705b50c3db9bb3a1673d9ea59c06d02e65aa872dc27152c911ec067a1e8ef4ad0f5f083a97d2861aceab3e937365e31e4c96ad81701a0d3792b23d6f71c7924c8872464e491c20a1255e491c23fa911e9086625729386f85a5fee4f30b19e999ead3b64fede7816e8467ab3498541db33fbd211e373d0a0eecf3b454d9ba6c3d5a3638820aaa867f040d20a102458c714ee37889964bf21c35c56c9239b99e682c5eca24ad59cd3c41bb5e22f70a33f07ba8a8432c2201e5e25941f930b23bab0f388c4b8a53ca5f673d386779f10793269e0dd7ded17c6a9de77a1ac43789c5c843a94eb9b73c27960ed922d6d04bb47dd5816597cb7211c4bc509189217475a4700a2f3eaac684a7f84b8e50bd7f1c3fa7549ea8578ee172e1075dfaf3890bf0c7eb6c47afb2588a63c879c555b80e7d80ecc83ced46304c30f659566c818b0ac00fffb2db32a4326482f6a6f2ebbf2a05f5626449f4d2629e64e82f2720966cecd32ccbb6a4eb0a4d693cfb3e40847f1e1f38c4495e1565814c0f9e3184f67668734306cadb36feb8e59d7809678695d2cef0e09e393d407c5f07387751f32996425c9dc623b60d6c36c050eca2d1e78dd0a9c656680bd1dd98d06dfeea51b5b01cf9bf6e59f8c224fbb0ed4500d85b4c92c7c3d1531714ca095ef78a9845293e514a49a22cac29cbadeda5a03e044a927c775472895b663405d83a6d83a68e7cb4bf61abec5364141b3019f0fa9636b8d299f73646013011ab041f58e0e0bcf5de8cb912ab661c1961c570ca0e445b4f77ee8cf93cc9dbaed2372861b3fee3587d26421ee85087421772f0f8c8d8520e474a8560d01f767eeaf2fd95cbdd92ffd29903a4f172a9de3d0b18c9a81532024daa579a6710c63d8b971327cbce079d4611b080bc0b16f4070df22db5e5e799afd29a49fac91b5607203b7e0a7b95de70bdcf6a3a8f0c5c397e0fcc5a889d8868e5de4bc06ed9ec716ea2ae5721bf2d732050f4d6bf9f3a0e536e5ac0325c53e6ed07a079333986afb0349d37d5f01c0b8231f114335be3d2728d1813ef4bc2410793d0500e65b3d891af07bbfdd5aafab04f598a8d0d993ad39e9a70fbf3b48deaaba662cae422463f891d466274edd0945fcda48e685eeb0a304644dfaf8f923bef6d68cc55a7d6e802fbcd97690eca7ea4756a86ea601e0b67d39e846a9186200aadd5ccd94b32b83a7eb88791a4a3e959bd9408a9bf890084e57dc1b2b6c1008ec995b95d691a66aa18935d4770d36df2f19bfb99a76519aa2df288a3f6d70ef67d468fcc35dd69db0cbaa0c9c202d82e504d06a92b1c0ec39d0c7a29b53ecb30ede2fd4afde790c313d54c70cd2b9b2345e49a0722be179ed821a1dbde0ee0cc6687ab33d3a6de9d153ffb73d653f58997523899a062d5ddae81a4cee1ac3f8cd0a4be946b128ac4cf65c488c8a3f787d5a3531ef3b1802888d180cd251826d90fa46d087e0395b5f8abe67fc6f0edddb630bc003dfd8484e7e891e5ec9d9aa94d22abb9e5735954688239be7dc49ffaa717c64ed204f7885b7372d6b4f457d20153f788317b3acf114dba362a5fd089a00f7403d646d3755e238218b0e3c26f9750883c2b7000c7ff6263a0bbbc9490a59eb3e79d20f83d2348caba181b5cdeea66cb9f722b5475bd94549e44c412e2a22d9f9485776bcccd303c84d30d4cddf114ea26c2d494166765fda4ae27a644aa4e178bd18724e4eb97e98899f472f72ae965c9f06dfebcf6ea61595113d562a009252313fd13fe14ef71b3833676a70cb08ca3eebc8bb97edc3e18b251e06f1f953bb8f337c9cc6853a425a81444e8b4c8f988bba47525debc531d49dc69d9fae015e66b05f9675422d2eab615a4695c0c5bb34d96fa2646124d7b36921ca10cf133190fc3024d8543816a84f6b549d354284bb3731028e0450b2fe2a9f48d6f4969ea24cbdee9d00151415e4d2664b960bc4c8b48e974e857bbfb30c6673c053d7707d19d3748109e5cd4d90ed5b914cc7ed364f7537fce0198649580f3e699a3475d3331003acd3a1048c48d117ff04bc94bfa42a9a0fd0079960865fa02955921a6b28596545056bf62c5363c39615ab5459b060cb3a4bca58d8b3c6ce262b6a58b366cd8a0d4b61e56248eb3758062c36099df1c2058f2cc5a33252dc76e3bb0fbc7b033b9a91c6c58351db84d843e137784a20ae8ea5afc90f317839f86c90221abaf6eaa8f697b5ac344a9a56a2d210efcade284abc4e3dc05c71da2b50d30922cee7f751a202fc8e62763d6464fd83b08ab814f4129e0eea318933beac9cd52974dba00753461dc01b0e9c09fa8125567fd8826befb50b9a005651e7345028fef554965de6e7f5495a2a4a2083413f901248644663c04daef8ae586e00fc5946381405cb8ebb2c9b676726b7cd21008ccdc5e84a4ca3979df020da2a667941c7c0c835b151ec62ebe3a1511f5236d3a069984371d4907be9dc2ff5a601f6bef788fbfd8b071e1b05a515987c05f38671318d513e4d9c8490b05c91174e2117f1390168eccfa02f655e000ed63ff5324b3ab436bcfbbe50b6495a8cb60064903ad1d68a804942806cd4007c3f9f355fa8acf30dc0070662263fcbb102aa01d82f696a5c5fc96e53b9cc4d0d7b0e5ba43735a27e53ab3fadd6b1eb724827811303504e3c7ff57249a22e70ea1a0f2a197343b7654e8d736be644c4d200242d225eb4b446a44e2b6a8a2969884c3f3dbd74a2534a4d315d3ad1d3a74d2925757a51534d4b253dedb49e0617e371dc07d6d6f582353c4a3eedc2e2eee1e0e4138dd6c1b4b01018031f34a6f125e165019a5823ea879914ce8f7e797b06083ca8eb9c45830b945f822f05d5fb0165c737683ff0c582fc94c5bb338a6968c3385053580abf401012a814aafca6b3fa7ba751685246ddfa1b7ef3c5604b62ac5159d283f652f8c2d04fdc4f37692cee1a60f8115269fb44772bfcb28b6b5a0f774c379af511f9c70406692a7f6a8fcf33cc5154ba58c01a841a03badf8d0eab1c255b971610439f531f95723df996084dab904fbe399e130497423efb33d53bc13e609c8ef7d1d6af502034104527d8a357682fa3ee7fc5c38e74f418b967b91d77ab125fcce7086b300aaa47845e0db8e1f4fefd8c40c4e192de7a20d759160e4d1be0db8e48be189f8ded17f9bc57a211b3b7b313810f17cda6617b9708e023ca5356fc27e3b12e5ee74fcc5296f787746f76e0b4245100c02a98f0c560d2e8052dfbd049dac9676f9f4cc986fc08a40320403399f6eb6d327fd26913551549b8aef1fa993f9d20b8fa4240c581a16438b05a34014df0372b049058f946ef41f6ff13d2a2c3fa1728af14a60d018483663c12cf9797986defd07b81db5fa0118dff64e34a34febecb6721e22b246a8a5f67e930475d54df45af8bba7c0a48b1949b5fa037b577363a89e78b41eabf40776daf4052c8eacc9c02c586e04d30509e457727c8ef748d2d92638d5be40296d4dc9700be5893af6bfa15e2dad20ee7bf2edae76b0e2755dbbbdc99b13b3f906de44f77966c27c9d6b973382faa3623c99d691e32f454e3ceee1ad5ff6d883bddb7cdc167744d6f3234c551bff5cadebe9de4942c85dbd98cdea02332a4ed868298d100befea4b6bff9f0ffc8ff6cbaa834183fe1cbbf6ad4a7dd56d93f2b156e916704364ee30d4d3ec45f91271db8385248a60d14fe66459e2b33e2cccaf8e5177b1e4d621579f27a082b6cac39fb1779562f9afa1e3372dc781b35352bd3248b3c5391331442043dce93e23afd916ae1a5cf65231e787e07ba19bc41feddc90360456fe20639094c11c5b1ad67a89295c1f33703b479d9ee19ca0b1e30ed10aff92518a5568d5fb7cdda859c3161ee5252e71530edf485cf57c340c9e60700bdaf9cdb15f1c4e66006867cbca2ef7c85fc350245cd432f0aed5ad0083fc589d6ac990ac42e926b464c6767d7102ab9204540282070bb7852ac9e7ecd3bb2a396548380051f5dd0e8a366f2585b4a1115aa0f46fac835ec90fd8204cddddab49c8250e97c628541c76119eb687d83b0e4c564295329453fe3bd6c9874857d0f6a434c0a65513783b0e6e687f0c7d84f3ac632b35a7696bbf7f3da29ac1ac8fd25d41daab049f9e66983c8984bcdc3e93bda1e165d3d439a9d398fb541508a377620aa20bdb9477d2ed806ec8ffa74a9c3f65232e8bb4861110e9685751d1dfd9c048932fe111d88514177770c2ae2cc4d57322e67541eae48ff6b0cf4a8c2cd69743c7914c075e49e7c830e320fb943bd69a6ee1c4afc410ccffb032bd390934c109fe011132ecc83a0e9426abca49bc61092deffd1ca4a928f0963317f1cd4e10ad61631fa82a8a19094bbe6dc2c8aab1b9a474b67cd83f6c46c7fea0a6a9e45ab11cb43ec57b45bc6bf6ec51220dd11cf838c8562dd45f465fb54ed7fa3961615c8726d91a8abc220b61b88b1640909921d9f8cd6ba1b5bc47a65de5457ec416acedb5460a88d054e1e0f8116d2d418c37d0af2149fe5b385323efa9f4ff8679907dd820635fb493e453d64da304c7cd20a5dfab3fc617c23cd95b14388185725a2ed34bdfc109a4306f19b8e879072c93e5f3dfa47757c0fa10dc72ec1bff86e12cd7ba4fbf4788cc3291b836e3446b8deeedcc2696b8cb23f5ad5ed11daec3f84249e444e7960fee9015d27092f9e7b8fff9d0676405d6ed6a7c36e6c8cae6461f49498e2f890c2ad20d84b8a622a0051759ef723289aa3b8c36f88ec85a54a9ab1af8e08fb0bff297155c7513e28ebc1d59b813e781b648fc71cd9764d08e09ab8f5dd756d6809c1eca0f1ca029bdae99e79cee6afb09590bd11ca3eb318e917da0b25d14e9ea3c5de5ac2edf66e98e6236e158ede180da7b9930abac58a8a57005a3ac94816d5534ae9b106b6521ae10e2e1a806c661d90fb4a8ff5fff78a4a2dd8283228a1678209b255392c48fb5b251a47a503c28b1cbd3aac9cb2dc03d1985b3318c42b29425d0b80eb7d63efbf30ccd14e2684b7c7620c7d239120a4e961530f4b863fff41d75a51865fbcf946a23e4883812d5d2cacb072f2b31efc6164b20c921e222ddee32cb5e53242fdc1d1398507dfa5b4c76d5894ed926ad8ec6120dd08d793711d2c65427b397d353528836a042819e17bc4fc30004e4648bf650fbd57f7f867ba0bb8f39d4a6c978704767ff6773d6d24741be9c535636cde99b234cdc364b651fd10ca4105456d9c135e3320b57628acac2ab6fa3f8be4416927c19e4a8d2d777e8b5de8fb455e0419d5328a92466c6c02b3c8b566c7380b19c753dd6324a474277aab9f7827a375f521e34fe80907b8f237ffda63b74416de7bf41ee41cf3e372c6137eee11138f2df8c0e591ed71bd35420fcf7171e9ea08430931ca00254c4167dd6f2a4dc7cf4ed910a60af9259577e90e23ecab5a9413e49010bad336cbf2a3d89cd8bde392a8c25ade42720fccdca48eb473e0c1d49a601bf08a0612a943d4d1fa8c2bb919cd81874e8b5e400ceeffb5c2de362fd8a009565e6783d7dc89b91b0ad76eebb4df81a4c7de733ce0f98318ecaf002f7211b43ff1bdb9303072adf12f4cd3557bc8ea931236955abb701118343bd911cbbf3f40e44d2b06f6d3d6ea9544a9d27e18d6a78916fa8ad39a287add458cdeb71cb391a34103aab56fd815ea598d9c13bf736afaff9330f695579575df15b981953f985640ae8fd5d7803042f68deb7ad130a6413889dbe37a8bb38de5156b286dc51a170d71643450bae2c58fc6d67e81f7cba615ac0c0b5792d2350b3ae7bb03c844d1c1aa7e6a603a12907d0edced7fd99f300f4acaca03912f6423b9b9f05b28ad66282c4377349aede4a49ba1a0d8d7d80394c735d518edbd4278acce510b71904d52031a5193a9311a3b0ddf313e6cdf45766c5a429ede090023d9e5dc5193a82a72cedeecdb3b01f7b260abcfdcf28e16a34752918054392a7d24a2f99d3db94705e809997d4b6320dc873d363dc2317cdf293e45c314e31c3de1ea0c251a4a96fda447119da5c54d467d8f54720da871f165966f77f63ac4adb307dee735c53283235aecd7bd1366f1dabe31f6f34425d1ea9f07fe11667411b0f790145d7efc8c4326cd9eb4b47d8514c9c01d785d6a762b79192357e32aad1420e5a0325d062b66e8f1a50c86caa22091650f6cd014c1c290402be5e19893f616e878e0e083a872494f5a7d1526e660666a6697c0028810c3d9a09aaaa35a9131cc592fe66f7994343aab9f7dd6060922b6828c73cb555d9a2892f05211d616b5361a4d6d243bf3fa3c94b7bd6a49619879ba7553454cbcc4295b7bcec03844a3cb6a7c44553fdb8d320b6b96cf9c329c1d30195acd4f898722597f1529a5a54d45fd4ca4f2d83968eec4126d5704bd68efc355f8337a9209c6dc6dad51186a26440359f71d6aae14b39733e1eb256ef7e4738dd64174a2c2df58bac9b8eae991de400c8508d0cebc0721e3b3ffb7c9fef3cc4fbbabea79169196ea616f6ecb5845912b5dbf9ba0c7170cac943c2f22ce345d85b2ad45bb8ce9ca5dc0441d09106d665ce8b9b7b34d695400fc0447821cfacae8016a44e5fdca68da6a5ebac3b2321a9255466f45abf5f5af2c2e2766d9b541769302a7f3bddc490416f662dec2d14c1da6599612899d3a2f37a38f10bbb11a470c6da79e0beb4e8d362c481a4dfbe1809701313572290823725433d43efd2740683030cacc0185de351abc49379f92180114d804a1786fec7b98a569d575279df6362f97779abea567d50535cafd9513cfc8e207ae7119fdeffe6e44b76d3d895b626cf932ea84cab42cedf1d5a3b92da7398402defae46507a05fbf0a7dfa0e0c4508308dd8004396304d98bc846c1ca247b359fca79fe18ae52c9448d24dad1d0dcf9646f4b2149dc68484cd44b4308e1bc4dd3c901701fb61db76669352b46fd1e6cd9bca498ef888633235a1c2d3616de9d53837270ca539d2516b07a13bb9c753c1e875f4ccaf981614a24814446b7c584625ead3534cfd1454b67630b8871a9684e11477e8606a922387b9560ad1f0b9d99544f1d69eaedabe3d59cb9d7924f4fa844a00991c2d065428fb748b86536f9739dce0a4451b43d0f06359ae9741300972301813e54822e3d015a8f0f00f4c5a42159d2b54052d2a82f097f465152c6155faf1b53363a338a6b87c7977d898e6ebebc7048f12a5385bfc7709f4d97cbedcc96c8e45feccd24f1dcfafab804e62b2633ac43680a8a79f397891dd11e7e8d3d44f202113b1e0e94a52ccd09584064d298fd3b039523a5c2347c1049232f18cc427831ccc5e843b174e80e6388b20d352585f926445dc46290f980b515b5802b59f26700a8b6573eadf58253c189ed76e8e9b0db933db77ea61556d0fb7ddcaa4f223a28153b493073cd0ec5977a43638a1bbabe71302c34317a9341d3996d055d84d1bc9cdc1b46886929e91634e6eaca609c1071b0cb3d1abb0f44daf82b4971932b0d9ec8332422b3309f5b9bc5cf9c8cd8c3446585664e14de404b938504bf2e0bc5b20302e225a8e2c83f086c4909c5b7750d3c77e66f4b93d740c31b3df9951047213dcca252808217771e1c24ebd7f297e6665e9dad1a5becdbf9a27fa1aa2083b55a1d92cdc5aeb661dad86246bc4fb9f778b7b6477b47e510af18d3b04d246cef66aa44c003347a82fa0c7a7ad612fb3ea50ca904d30e95357cabc6a5cefbb8da2cc07c974eae77ac3d71996456b6c41bca4250bff744ffac7c7d62a1847018d10e7387cd373462c7b46e2f71ac515338f54814f0797f41930bba91d804904701089dcb7dc0a0240311ca86420f500157ca9d64fd96cd25a8d6c28227748c8f48d0536d39e5149b60c123be407859efeb0468683a7afa73289dc0c032467c40dc6dbb71391aa58f6630258e0a8bd4193579967f49ec10bd4b85d02eb11924ae6f592cac92f6797568716502750d637392cffd0dca2145781ae158ce427a787ab466fef6880549dd33452144dfff84932882f56a0fea439b23295cb24f3789873f0f561b38f49967a8fb042253b2dfef013c322e30ae0bab6d81d1bb190db0f074eeb2f61141fdbc2adc0eca65baccc085c2948c22013c0b923cdda082d1f9a79484049008cc87a5651e5edce0f679a98a98d5a13c2235faec9387804239a0ad06b83eb89639081d553f4e228a2ace32fc35af03b54aa9d0c5951a0347da145c6934d7ac0f436572756d6901a62877faffb031c0d5d9d2c5fe61cc734f4bb316e14bae8adf2e8c88cf765b92e67b4f3a0d049d2ab9f09efc198f2a96fae9fc3cdfb05d9090ac72b066da5495685961a9816a9371672e93ee66c5a3c5b40d49855f2c121749c7338a5b484a85042386847e74271a7ff483964c64f7b2b503844ff6fdb8303845c08bd4213c7bcff8bdb59fd803aae6b1ae106b9c09b73ca05c280b5e365a8c08f5294d602d71fe8de34c7945b27be9dd50ddf1c02ac52fb7ab48f4697a35acd30a4fd63351b3da996a03157d13b601f73f15a000b185c09e952e5d6666640642328da7a3de822c2aa264560bcf101ba561e55825c521755ad07261cf7828c7a91192508160e0f573ced51a7237b1916c36515c911ca3adc91daa39af651b72e7c4428f135b79b96139fbd18b541343e906ad49c9da66ecbb040998b2aa2546ee4f7bf10a75b7cc55322961d6a44d2541ef86d27bb266e25e9e13ea9ffc825a172e68031551451cf6b7726cb3ae3a61626b13cd097eed4da4c5f4c7b7333681a6ef459e2add8ef11bdcd9d994010566fa15e7f3edfb2938dc6014e093e4b8bffcf56ac57d11d317890458962128395979290680fa420a26110f968ecef4b9f02684d6b704fa2f6e0ab9775c34ff58d9fac57d46f9b3b9e81b79fceced2281b380a0d28c094ec0c7464318eac9408dbb442e102f871210c14b520455b35f378bc13f2bb98575ee8ec53d9c5bc48a29b53e43f14e04700e450f49b3ab71937890c4fbd1bd30da8326f9e97ce623244fe9de77d0d3d000ef542974b5a48746c9bc91e4ed8772c7726465b2c9175e9d7158a475352634e3ad82bd479e10b190b73a13074b3c36909850af5374aa1d4f93ce0e5628140aabac52c07733d582588861d87824db7036ba26f857db1cb1ea9df1851b6cb827689d92b06e9d648419e817b3501e85fd9454977e442636020d8e56b9b92956932b630d11f2022bce958bd08ecf2842ac74918d3527de0afdfea7519203464bc2e171766e275b92f5705dc11a2ab35f5e4bd3c4b779cf2d532085085765d06ff6ed68bd55d65ed6c7660ac88d60142ac509d955de8cf0bd7201b1251ebd2b8d0ca55dbd9b3ed7ab4f2375170455e4a5fe3b17008fa9878cbf1b1f9300399bc434557e68b81efd7659600f3e0ffbc0da836c1d4027a098f10f4340b8fb7db10bdaba17a6c3bcbe99b166328c26efb7fdc31732cead76f5b550fdfd94a92e5a147f9467fa81c3323221e757b2872ceb25987a157efbe1e9aa9d868a5e02ce06b55977b285edf69dfd03c9fc55150a9f89ac5e0a06a219899cf2409cb3bec78955bbf4ee45d011ea0bc2d5e7cc1fc65838c059decf8aa0a13efb23e9e3ecea4d5c55f9e28c4ac8fe1b263c72a6e539ee29a4d240c83ffc357413567711afeb2ea94f25ffaa169418a6c25a6f1f8adf7cb80ae37f95a6fba5f3e397c915d9d1fa4ee97f994aed665946619261b42cd3541d9e386c2bee10252ce75e17ef99422c9bdb7ef7496ff043583c0b532fc7af87e8cdaa3b5e52de5dca92a986fe251e1375797eabd44181a8f1a0713549fc83509051b4a62cdc7771e4e243eae9269e18c9f3f65b36e583e9180570ecb6061535521e52f3eaa6af3a17864d13324567237e88bcacbf32989d407a97081ca2f67ed5b194933f8c0f38214dd53bfc3a0bb8ad63b2b75ccfaed73c5e554758d2ccc327afe06f486de856a8a14ebbeee1f7bda551afedcb54ad4c424ecfde40329ae37d1d8723ab7117d2c231fb7af563c6d856bdf603de1206a6802441cac410f9727c9c588dbdb8dfe67e34b06684d1e1097833ca32a9255a67a415a85ee3c9fe3ae250bed6ca326020eb1a4601994655326416050d1482b72a693c96b3f59a69b6bc070ac3c67da442455f6722f08cbc87164929e56552c8bcd8ae444cc999d309a2c47da8633bf1c1031d34c8e09fdff10730066fa513c1e553ac40c567af24e17c0285e52b1f983cd748d0a0066262b69c436510cc6f22c6adca8ed0ea76709e9bbe5311102cd5d585242c61c6d15f5d534579d832bc44cbfc227a2ce1436f5c4029a6602e18610f5e067a9be245f36729753607d498b33dff35b621b0c4a153f723192ce3ada564139c9d9a0d4002d77402ce43909b89519b8fad074b0da627389494e6945c0902c738e99acbe0ec981935f167df71ea5f0a07c08124a3444d5017839e32bbd858058ac54295520f8b1484f26635fb5f9703a0ed833fead453bbc68167c64294006cf44028bcf1a9d787fc0160c3eec6e0e7c0a3d84e2c5af9859a98ddcf2e5a8cd847a7997ced2383fbd3c6046fb0a8a99e5f7b64163e0aa46e33d91484af0d58c8aaba5d0c86040c5efea77540462e6a544df4cf307b563612722c739efe73a35a4f9a556973d42dcf3100d6614f02046b809b67c297723423aa0990efb96caa878c1439bdd6e4743f2d00ed2c0b9e0a11053690f25f783a3b9d743981d47fd21cc3ba0d0d6f3197d0659b4ad662789ac50e11c9b1937f36a7bcc741a35e088b4fe81ae96d2d57b1264b57cd0cd1cd45805ae9ac95ac7da749520c1d4bba71002d5ab293ea8c43c23432d4b40c94317d30b686171fbc0ef6bdf051433127e232ce8e8b54cdcf5ae6f7b7040ccd30bb56720a572d7cd29400c7b3fb63dacb1330e1d7ed18eafc95677ae2c1c7f26db6b9c6c1f875a454d4cc899fc5095a6cd2e6591bceef8cbe6ee4aae41e9f6a80325919b24e8e08d4b918862686258002e73c7f372fb4f09c4c57bc1444ffd82fc3b5620a399a2e0c484fd739cac22c71fba8a390124c28be23e1e93a2143b85ee9752ce537c8bfdb6c929feba56f9619ea06d1c79dcd337e992cb9d203f4ce1b408752e16b316e1e84f1504256bf606392280c6cbe7858e76c60fc3e92a8a5c79ec14a205de85988cd38c661a3a6397c36f5f9543d3a95c8c8f39b24c0dbc53ed4ef143f5855619713e4441e4d1ce87adb639583a1fda80b459d25e795229815511076aacbc28aad3ee56a37181988eda023103d32c831ef5773f195ca7aa22ed5d133e5014df5481789076df32c893f2fe1b0ced578457011bc4001cd3bd75233ca4eee5021d552066a68d4b64e0a5caa5b492c21488b90775df796d812d43ee956cd7574ebe06623a9f7dea6f6f71ffb08ac26c0585ed81b6795f380e961b7d006ea4c3eaa2a6135ce8cf9da40f98b83d74af089ab3046b082f25b1d4e324596b0289da77d932e5396e39d0ff2ca0f40a215a5de9a059d45b8e20d9a88ec64963a789ec6788e9450a11c322b36cece61d72e8ba3a415201306623438ced4742827fa575597a7a314097110d71f746d8d631317e7a3fc2d5380baaab5be556abd1486c06d34d36eaf8bf64f8fe8903e80ef86e1d58440e9457a72a24a512e3c12a2aa9f9c27488570c2c02c35162639d8996855c39136719b69ca2837eabc399305e7b9c70564431386c175405dbfb613790a7b08171865c96979d9a857f5e12f175b80809a07c53b60f5b49282fd726d6e363f66b2ae1cdc4f37b0e17e5723c9ade4f0f82cd14c09d60f8675636c212a3fe989d0068485fe6f0e7df908e6bd68a56136a770e17fff2a87d271911a9d307b5bab8cd3ce41919ed7d0993d188421a41a0d9b3f745191f282501495ce4238053588bac0b0a0079c5a95ac43c2171119b21590b06a8ebd982de3131449a4e37fc4b48bbec4dfcc67e5e968254e13bd79e3f666fc2e21cf7aab4a4862107ea7563d159b8b1bcca1ab127d2934322dfa40926b42b06328f40c7423ef0ef1513089818b63b779d540f0f7b63b8a5c5a87f06705333851935b294d23ef26a510800ef43d052d0b608af50be48f271776aa78ef7b0d66ac95f88d8fb61d14f7c745931ee0615bbd0424bcc4a0b6af270d80aad4278a1dcceb1a8403308c6d41c8de8d5e93da623c4a668d0749e3cb8c899d80dd8a83e501c546d8813009983601b541c936314e9b56143a841d1a39b8c697e2af5d1318a56c831262685d47dd65cd7332b02ef1695563baace442043efe13cc907b93ffdf2b891d3a3834be70f9281da2255179d1248cada16d634aa72a7c94949cc5819d0919d6eba08c5323332ca695723a8c37c36336801eafc29b55d19a59739c43952863a81b439b0600f7170d72d604ac8a1e696c86ad4278159b7bf6afda5d4983d1afc166ef990246e1a9466bb76ec906ac027fb67e0341f3ff07271b0cc1b83e7daf8781638ac842dbb2da1e040ca4dd427d0296b29ea4fefe6570f62031a7d050574d66fa4afa783fe683fcd64d49c1b7c691c5ad32f76eb971c46fb8b94f3c3ffe7ed13997291b3e98f35f34d7f8dfc813a045f992378e2c4e5da0419b5d718ced10cefdbacfbe5de2bf92b9a516197c3578eccbf009269e083042aa925e03d2f81b90d1c155f474f0fffae7786a065dbaa43252734f19ac7df282826d5c583170303a4c4bcd37f7a85248e3a60cec54807af17202f0e47c2e7546262206f1065459a249c05100390997998ff34667d464953cc47ed12bf7fdb409180f4afdd72b9e36f7cef97f94535b2f28f97d04c8a658e5f86b0fd8d914c1a9d5ad52ba23dee8b3166e319b47aa8bcb91c990faa0126f858a3de779603052042ac7c17a7f96af2e826550b932c701cca41bcffcba05103e8b5ab8c715f398b512259521097a31437ed5e80cd2c38f2cfc8ac34c41010107fbe943e5355e8ca797dc42345fe70045f817031f306587f7b0258b77259782abe9c599c5ad380c11bb8f6111f0a28c65e6a30a13c8b26a658877e897485e2248f9d50f76bef27f9cb61b9558e1139b2ed0ebc5ed957e5a0486aa0980129cfcf662bdd869a599546e060da1e33f873aaa27d0e01a25d78a929b7303a67b6e566b5829e505c429baf0e04148da1dd39a901bf6c95675e964a4eb976850d6353aea033271c38b4b5ca190064e8aeebf5de832957d2da8b2f097a26a103777a20846829f7f8537d69cd2ae580850fb371e0815fbfd64f2e3b29574b84d2ccfa05e007529f51d1f24757317c24f3bef3f7aa16049f9b9aac980481cf82381596c674cd8f79d404627f934c4800e100d9b822e0a30e6223d2c9213a6f0cf884c36ec7a0fb3511ad7794c2cb1e852a82b59a7e1e80aa81e5b91473981a1630905844832eb4a2d01a6369ea5fd5a71a8881a561fd5c4dad5512163cb4f56bee0156c4d47fa3ba01b5ba084c6bf027b7f19a7cf97433cef27efab79f2159999b4001551f06e957d0f156030a61eab7fed9068113d0d64253b74786d53be5fdd91bff2fb56aaacd393d606d8a8395a0185e912626d564d06eb3e0f93f6edf6c003dc9bec134de55755e459337dfcc515be361cc6a3b58d54a934bad836bcdd4f86b5d6a93e027b5444c54ceaf1c5a6d1d57fe5f9acde2a7c4dbbb2b90f1c89138c5845f965c97999157312318fc86aa0da22beba22fdb3fb109f821a6a7b3f528d94ea6d631779a8ba85018387a0bc53da295cb01003fc4e49ba142f81adc62069e27ceb4b4658230b92588536f1cdd4b3f6dfa8d56fa5d69656d9dd8d830490323ce65a438d287a10f74e6d22636299c110978c5c66142a1e9231eaa289bade1b84427ed115c2deb45ef34413d80656392784527937dc63e870f68c8a45b39c66dd40374954ac10369b471493869afc970b31a893c19de5e8da00bb2052d9a6b1e11c48d4efc428151b3a479bc6ec9688378ae294596ee435bd78f058d6361ac5434f33e67da862efc65196e8ebbb1e32b4dc924b22b0054f27d0c12576e8c99e3003a5854a86461e1b895ba0b57006ce65b2347fcae46c4a686f8d4650f59c4c3cafb2ed294f33f605195338b9d02c60d9993be7c9746181ac23c51c6abf3c393bcec978ef001903cd26c65a55470f315826427290e829e236d3b0e4f25ef108b1a6c38e2c33440a331bb83ea3b39a7824d6e5f2a6d3e87c918275ab8be95b9c21149d45e20462865e402e2c893cdb0f8969e0d2df8084eaea639eafec9ea514ee3d2593208b8a43b4e470e0a9716d7edd7bcc147b12ac44e025806d2bcd63a4359c484ce1072bc0fa99ab145f31c6e73e5020242b4b952b3f58410ffc34252dbd25bfb836d13b0e61730019c2b698a4ea53cc779f9dbb8d737572e3e690cc82caae315f320d36122e7762d2db5a0a9e7ca823cc176073b64f6f7fd1d813020f647159179ce24142804b5accd9505eb59da5ca98512fd46ffc1ca94dd1cd28dcf49a2525a3f93b4ad3c8b29deacbb90fc01e449ebfb1a960d2abdc8e1cac63dd0b81a546a062621bee2dad272c37e05dbf069d74e868c3fea0fb600ca34264cb80e9a17c3cca7b8751dfe105802ef1f3e253bc944eae316009b17d7198f206494d09c30022e34310880f69840577f4a1a2f2c810350b117711ba40385cb3d56b292c604f41661c125d84ef321a35cda215844e1bfd54b35cd132b626dcb719eb2cb224ec1aa70684c79e6543dbb9144ddbd10cce1f6b25b53cd42d288d1c2eaf16da0e345b5f4a371d4953afe63b11e42d4ff1fcc92de1377ee5102866c105a556130232d3fd7b356fd5b949ccde19931f36d02c45499a24691dfaa7e7798a67d2a2573c6827adf589987147f5226098b52ed7754d9b1e8556755b49aaea4594079de038bb850d6a1d9844bd51dd632235accdc92ea214c79a56130572dde142f31a2f89b3d02ce6dee2fee809fc3f88ec31fef4b8c00722a34dfd0216b0f8c685ac266bbef4fff79c229f156025558b007ef0c98354bdc1a249f735aa7ed3c3f3aec6ef8112a7c06755ecc3a12bc6dd544458443e3f9c12583c12b872b3459baac3c16107fbcaaddc26ebca9b649c86645d93cdb81c455fe8d5d73f26b5cb5c237c8834fdf1ae0a97643621af102e8df1793d574ce9260cbc75c12a5776c4c2b99da16f6748719f9c4c68984cd99b4ee250951207e3a7aec247be86c72053c9b6b8bc3e3a6de2c62faaa2eb9c1c8fbe58638b9f4effd134c064472c0d9b8c2c9fa398eabdae1cb6990f4d3d5c0da5ea15b3deb56b11f61511150c26068388f69082d18aac41cd338aa39e561a35cec048bdcbfaee1a6ac7e871036c29a8b51efd78a75b495549b74506ba53ba601e28d768ac5900fad99313c23843e76e294ce8443bc825e7e7cb04eb9ccbced3a821fd6d2d10cfae236465428c2d7bf7736b9b4667048a6c10d176ab3ed4856c129dc95cc70848ce00d6e7db3381a4330d391de2c8bc612dca5b3d28c1b125382b9804be14c32f02952d66a4085e5ec9c031ab6023ba3e11c87cf3bd9f6c6d5cac9dc48958eac422da20a97d81d724924531927aa714b822bc7df4745ca4cede2609a1e35f2413d8bea6dfc2223cdbb327130d6de629fc2b8f247d116b634724086e83e6b4175ccc4bb7eaf1725f33de02b80888cd9735ceaead8044e34a1244e25603f9041b456a16e98ed954362f32b26e3e093e20441be02c06a8dc2e324d652598650e8aa324cf0706aacaa82fedb532a981be4b52088534459205255404cca9584e20f0c717d159894757e30097cc7c1a4210df806931a106417068a54be69d413378e03b156546c8992524284b5ba662985d10a26692607c9c2c4f1ab95ee5da48e891263167ee76ab528acc483ab95863152bf5bad4c9591cad156ab4f715eb5400d69b512e401e4b46d22be8a28dfb512bf99a442ad95fc19a953b95ad1a79152786a75c55a068341ad34312669d1b4d27e237533214f3c6d3e916a15ef182936aad5b772287b51adc230d62014aa95be17e119a856b4f918ea7f6a458aae4c93aad5dd2f0c78e439d9514818a75a1db3cf8667aa95865b203b94cf9d3c9e37e48236c7e4130d98892bbeb3f92f1c6018f66dbf2362e4f3829afb670761ed56974c62fae4cd671554421307d2dd131b413798b2d7241db0d91118a45d04d855dee12f0ed8237b7229f76f9b429f83707bd46467a1e8bfe41393f17921b03b6f58a693637c7be1e44491662a21085b3cf2a448c0bf27ceaec80858786207c01241357d1da4acf221c676747462722549fe1aa41210aea4502cd734728095e808905b495fde004fcb1170bc92fe3647f73e1de6f25d41e1fd8c8308065849c69ca06864a86860257d28014653218060257d32023c293549e54280c9120404aca4ff7e00170e08f05a491f75005bc207f85a493f9e003b7f0f80b5927e96007f7a0f90b5927e1b014eea1e4096597d090196e01e602db3faf3012cae3dc0ee4afadb0160d06fa646ee9f716256d12251625654e7fcc4ac42884913b35a8ddd7d9534b0af8e7a56eb0933cfef33460c203b6407c02ab3caa2cf2d3418566615ac048862a6c5b756924207186a9816f7aea41e8402d4702694ad6116fe7f9574369026667555a697985554413c312b2a19ef57490d6e6a1a809d72528279f038a8be1d367230ef53ea67f0e0ebbe97d567ae898528e403251d781f5ca9fea6559dd581ed038e1b9aad8b7157e1060530ced82b81bd97d06cdfb49cc831a2b674ec179c6994d267f53202cc4661cb75d9cd4de880310d260e5a7f9c180c95c2da16862b41253b6543fca9a7c8ff7059dbaec0c896e1c2eab0b382a8c35adcce4d8b8b223fb1ca4e71d541e195dd9021ac0c2457e1408324450c0faa2647347f598c5cf65871e1782d0c68582716117cd9b3219cfed048ac192a312ad91215ea1dddb67150a1dacb0749d55c54f8a1881fbcd6bf17847a0f22e7b469539ff2a6dbbc04e7a1e0c0e63168441beffc11d63cf1d4058585ef023e187aee2d37f183cc0b26355c859c17599ae018c7773807ba93b14cca2499c8bc8c1e5f99e698c0fc268fc944deac967fb3addafba9b19597f57eb128f9da710f6a8d8d4480ee5c4957b3373d944293fdb16a55fcacb490d19b74dd4a29f9265b587881721210ea3a8281ac94be341ea948c6d28b2700ca36f38b8ea730ef7e24cd0c8925f0f70fd7a994c794ff1f95e445850b55e88330d2b2250bdd954f975934c550bc1adeacda19c73dbe8ab87aeef2616a9b45a583735088c5532c2bcb6af235e213c67a9ba5b7820001c1f0739b005d3044748067794e365ebf1924d36d8e57565306fae7c1869055a8dfd48d34e48b119a1fbe7547dac3bd256b2a4a7798e6ef90e30f0db2250062af8fe4fbb107b92bdfcb6055c28047918d81a892d54fc3d2912c996d57a484c79a4d88db05684a27be658d7a90c4fd767973c01d18f780837e2d4f0726b611b0b2852114a2a7c87eb7a5958f5491e559b5cfcafad7f4782cab6371dd378d7dd8b362f1abd875d3c58b846e9a977603a3ecaff2003d8f0400903467f26e9296a37df1aea8494a3fa5913c1dbc36a73e2c383c1d3751d0f6ea0a7e7b420b48d4ef1327591d45df669bbf7ae0e8dbcefefc2334cf300f5e1f2520bbd0a730f484f4d2907ff320a4f569a5de70503131f14d9a4554aa4b7afec590dd1b05477aaf64fea36d28d5962d31517c566b564be7e36e7201e4df195ba8add8598cad82a75aeff22ee7888829d6ec088fff38b55c58a2f0ab5c10b8b3525e3d4b1e26e9cb701cf166721788cb155c1531e1100a6a33a86ec76b9f10f2f4f27001857077ab10e8686022582b3cce7ccd48b1b4dbad6a219d1c5e9ec991a3c44a44dea58848d510bf10afd871cac3ad7668c2bac543f230d62b20cdd75c04266a2555c74d18bb321a93b2cf2c3dbbe869adf28bc5ba6923c6a4e2e2cdb3512826c2bb31f17e5e63eb1611172d59a34cddb1e2ee09ffac505ae9166afac41bcf6be664f08792e4757c6155c89248723c8fbf40314c6ae09bef63b2c46a76832ded8a639e16d0d4d03a11dfec22690805a13a5bbb37c7638cf934323ad7096f2419fac7c9ca7a905d4ea6c6f3ed38b22ace8a106a6c733ce58d1c4553f279411f0cf9972e35a48baec55d24cac87c5f1b77f7329216874ad4ed4c75058f204684482b42fff8cb38781d5bfb0c2327a80f4352b8c25ccf2cf8cad9322244e16ec4507e59cf67f459a987fc1642b9113e9901bd3e90994f1786746433b889a8db63b0d2d419625fb1cc42336e97bffbf72d466225e6347da96345d66b2f410fb3f8535a89ca61ae2ac819c2d58fd5a2120efbe4c4639e076c501eb7362d59462ded4405e3d6d56af3989eb23bb1bf816ad5b941f67c85c60871d6ad078d05d40ade0d575a6e17c779345a12338bfb9790cdde60141aa39edc125ed0dce46e008766ff2a2f58be49819c05d3c3fb22aa34d9ec60d0ab0b0631e005cb625583e5af174cefd8649b6b5c79eceaae94013c3ef0f6a593f5d57bf1c8e71a7d2314bd5b68fd95d8c8f016ca3cb75ba6ff0d0ee1dd8840fd3d8801daca7b268e0fe0f2cd58bc24f7293b6d83eab70445a452bda4041d6f6822f3a36073d05f63cbf16d5a3ee0e21f195f19cb0ca05916e1941953df97c222cde9634a2149b0d4a73adb4ad79cd1113505aa253ce7f30a9e42d37984cd0e54e286d3bb959f0a2ef63ec0610f9a216ea751504ea7e0e468abd93aa8c487977482ced5ddae16bd4ed3c3224f60ce034b18db53d030d54668af72f59586b638bd484537fdceb58728bab201f092b5c22e25975ef53960501228e2c51782925ae0248a0a5f95141ae288a7c004973ff100d450c285de9848cbd24a6cd898086c3175e498f01f0b56148f09250403726c96a38d14e611d22dc8435bee90685f4cccf59760913cb66d1054b43972082373242e42bdecc643bf76f03725c7e210b6e951c5484ac0790fae98a854549021ba6348aea59e67cb6f898c7828f8fad9bd3d6de2a9547b833c1f6f68e64a87e47c7a5f9d8b0926bd909abc27b59fe2f7fbd42c7a3b8aebcd0c7c907099a1bb4af46ccc5fdf3a9cc09930b6fab39ce549450b9ba7e84fb8ca6546bd1c7a72d6c8daf094522a38e349a7372f61e70577de8ad24b5ba4c79bb18230637d276f2fd53d4e2058b083c348a8f55df5ec078ec53c4e141fe9c7309612a137bb62b2e753313f5094981c860e0f10395e5311b460dae31b188f13f7abb39df76f748852f1a337e049fbc6f4d7e3e66d005f5208120931c07dce29e9a051c85d65825226881614aea76444b2e09b76a7ac4e8b9b61c472d62034e765d1c80d9289644d8b64c227bd474a8904d52471af8a3d2a1093440a0ac725f828b8868447999040a030c8ba7373e8383193804549c03eb0feb68dd8c7a3bfdd3fd1878b04774ded80c0c00e52515947f3acddc2a08a0e23c1a897c2e57d248fc86056b1a0a3d12d11d8c492d37f57ff31f3d8230ff441e0c0b475883db19117b7046178cbf6251c0b22dab56581454e98173a8481fbef68a2ede3afb8e0c1314dc1d038569c3cf50141a26b0e2e265b880af3b554fa91db643ccc86f70dc752347ddbb4d8fad141f0d8c0d8772c23a1bfd3b18e8f3ed8f10bcb7bc052d631d0648a09fa5821f17b8143df1a6791712c41160f6af14d40df679a81637a8c5d7472da4b4e2d61c724964ed0477521edf333150212795c341ee31e617cbbcccb8d5ad4213c9256ff8084fd547460c5f99cc8210d316b023cc19b630a734b017c09e80609464f0bdb442aea6e0b9eefb489548c5a582d1513695b08231b527e673f97c3f3eb2ca272e1610225e9b7612e8b5ee2e27705b7109cf14f6ad8cb7e88892b5c470532419048ab2a88ec33b7330381fb12318790b560ec720d59510f71a5a53a93e01f1754d7416d2a5fec336fde80aca50a05859f0f74da8470bda7e0bee88dd946844bea112d11da82cb83602c10c515e384709604e739cc8500b93b9e8f7c3c0faa0f3456ee86a8aa3fe3cc7cef5f80c0cb6846fa4fbdfb649eff15661ce4e2d9635c3221d7eab8b538f79b09ed0b5414eed1ae0da1598faf631cf98922733fbe86de4baa972dfcbb908f6bb14fadd2d7f2fdce28049200bb1bf7a8097409d1f77146b012564c33079cf9033fc60763764310fb9c5e80d9983b4c64baae31be209b58164413dcada85c0ddaa314f4150bd1c42ea99d5539c1c4f40c706c795a700c3d289e270422c79b1086fcc5df3a3856f04b85115d38d2e04eadffe95f273bec714e2c011c6eafd09247fef4bea67cb66e0f1c43c0b15cc0d76f97d92adaaea339e44e3d6b3f8b30022d4ac2cdcbdc54e272a50e853b83d5e427644eb901649a042e2f44b20d54107066351d800341213804af51aa801208e32914855229a72804c1711e0d2e61ed8436b15b4ab22de5f65fba91b4bbc94d986ee9f081874b267c7e5fb5a5756afcb632d029e8546022fcd0f83a26e65ab4de64a7360f380c1c0de20fbd117df093849f29b6e4f7bcd17dfc49f263eca2cd1bce3265522dcd607933ae3ea238797818b55a237834824dba15d0dd39dd7153baf3d1b3e62da70ece2f8a93d4e96eef8e8b82337e190d5d9c8f7d26295dfe2249b3588e1ed6d216d94cd0dd47ba2b6de96e1cbae37afcbeec4ed1a7dbec4595de19769b3d7c7a8774c0188c870e1d3d7cc4660c06448720030079c4e68f1e3d401d80c08080af2304127b1f3b7a04993a60c6e5d5b9dd2dd45de902f87a302aeef078783b58f8730da6d3834710f007000b0730001e3f40f077b0460b7ab07296a9ac7633a6b2bf3a567627a8733f146909d3f9d1ce74f2b5b0d9dd32babbee8ed1dd32f44c77cb74774c77c37437aabb5f5ea6d0e8aee49da94862fff2fc6474b771d12d4e9e1add6d5374774d775b13cdc37d5c6977c3e83ed9d832be5e68471df08db6eeb6263bdd3d4377dbaabbeb8b2ec41fe6a158da197695639af2a30f2bf537b2e3df173969b84bb0eeb6e96ee31a5f2f8fb16bef7dafd3c3afb7cc7fbd5a9a67ae3fbe488ed4339d37bbacd29ce7786dcc67e9d4dd3574d748dd4dd35d3bd1dd342bc6ee1b59af650a4e7282f87ae01bbd68f3ea8017eb805614a74eedce0ba36277bb7497bafbc499babb44002958b8c0050580a941050a150c7cf024680935188a11c10715664422291c2904a9328386f2c0c0c4163fa2039c800992a302c18e2a33687880c791b807070210211d31029411601a2045a6a94489e26a0ee6015374dbb6335384112577c98952f2cd717a4746c651322f302687294931b98c6f3845a07c2ba166a044c14182003b9cc3e04841da76384782003b3f987cc68738198fc1e99d9919878971a46d07468a0c4a8a8ccff88653048c6fa8cd8b8871199cde8189c199b9f1e204701571fe44ade42e335262dc0547ca8c23e13b30becde444e17cf32d474a1146700e931385938284efcc38070308ce67708a3082f3989c289c977e18e2bc34038383b4edc0380a0769db41790c8e142408b003e348db4e8ccbe0dcf8c1e4330e04e732ee822305c504cace4c4e11510cc5f8e645c0384e1131be790f9c0b4eefc0e0e02011c5b6f385eb25a7e8895ac99fa899dce4dc8d1f4c4125df600499dc4f50361717149ddc94d32e28dc660099369d505216a080ade425d3e60299deb6a2cd4dcee16c3026938948c961fc05657a8131712f2f309c6f30a89c22ce64329938cef48468330014d78b0f2677796254ca1cd19313777a823ae564ce005050ce9d8a4e394425df5038452f272ff9e652c8949c3bc178fb707ecac1b9d9e42e39462577f1138e131b57918bb72b26c7c913178c97709cd8b85c7232e782f10d8691cd85e25c303944262742e53879e27ac9e1dcc585e35c45ed1dc35572d456ba01aa7b67c3414232494142c20605ec94709088c209015c4898a42045e18400aecd9130e544e184002ece9b8a8b632283e2803c796244c939376273938b3f9182e43ba721183fb911288ff1ce798284ef9c729e18e1e2313948bec3394c8e11a81c24dfd98c70d9fc94c379bb112e5b95b161013644b9f902c5a94e6e0303b64d0817db16ba9294238ee00ac021a1539b73311c12623ce6e60b27578ccba0bed0c5784c4e4c0c872587c372a385cd63884c515c31be798c0b8e09c9940491498aabe49c9b904c51601481c9312561427a9942c965b62ebae862ebe2a68b2851a8a0a28b2953bab8e9627369d1420515446ebad8b64d054b74443578134e4c8181e2742382ae51eeee2e45c90afdd22fa617d32aca0a89151211ca944429d5a6244c4c2075442629b6dea294548dea128e290994140d40828b23b2bc6871712f39a2b8bab435d72e2eed27180540394cabb6a8c690230a0c220d8383c2e1b44099a234a02b39920d0e4b49d59eb2c2844a59c101d9bc9d2855c5d539375ee84ebe715abc683955114247b449b9094257641b22e2380f924207c565bae1e3e22f4e6c378a70ae17df9cf84aa99294520ac9758a92a523eaa4cd65db729e389d4c505ccea54aa9552945b472955c2bd429ca4d968e0865c5490a0c74513a2d3a84d075900ca3630adde67af1514a959c8bde5c5a4a3f5c72885a0b14aaeb6c6cdc75f8682e4ea753149729474b7321840ea565089d1657898b192d5c6871e5cc68a9428bab8483abb4a1b4cca009974c8cd28c53957c0be98242a15059665110b76df36deb98d83627b6263ad031d135f1f282738a42d45b8e7acb4ce4b09480b8c0f8064513ae2d36284a279fa1524a9576d09ddca506e9a5344325277440f795522517a2942a6d2eae44e5880312850372f2d2290a1514165412d1cc0c9528418204091224488d248e83d142c94ba51b2a74250ecb1525202f59945425d722cb165ab878f1224a2fe12a212d51da3121e1e0da1a07242e07290b0724498babe43741e8362ff58c125c154a5b89e360385329e70859b2dc4081e3361f1c81c50747f4c007475001a493e10bb88201493180f8cd0eba195ee38e330367a689192a34b849896e2d112343a6460ca7e1260af40e319cdb5054361714150e08aa0aa7e2505c0d1c193132dce4362e23c365626464c8c839b5aae433b2a0aa7040382dadea969191c32575aa94a5779462702e19385c5277ca1443864c8d19a6d229c7e6031d0c279a69829b99320345a924030d8d93175769c6899929a514374385060e11a704171a7088562e6eca35d1f84c13251ae77cc6899929353433546c9b8dcd56ba1142131f25a7d2415895525c1057c955723591b9f94127d340e84a7e3ad580b273c36b7ce886d7d4f88d9c52ce500d7ec36fe43cb9e135e440d98911c4c5d5f80d270ae22272259628fd80e1363887aa12a4f42386732ea487265036e0d0f806e3c589669a082204460e0e37706e94fcc66bf01a9c1ba59c1b3fd4f80d5f5283dff80dafa901e7064e0d0eaa03a514876aa294e2504c348b3351096252820372c339140ac5255141d5e050e92188063a0ed5440dcf28d70c9ca33a40830de71cc50467e3338ed240ef60e3dc4c13311e84064e0d1b35bce434d000a3060d354a35336c6cd030d3c44c13346c6cd030438d19336ad8d8a081069b276a7c861aa7513323088d49868c1c27db174432706e36d0999ca673184e8303c5558281e2808bd31203e35c16130e1cd79d6c6040e686085dc965ba534e11510cb9b80c5ec4c963382aa7081797c1512eb3ddf8e1e4311c8893c7c801c2c5517873c538e785290ab7a5591c91f3a0e3b6e4984c318e42c5981cc6e42893f7c0714938a59713924ce3406493749ac198999999999999114d45332e830c3ee325199443d9e1bc3920308ef2211847c170a59ca11a8771989c2730507664500e5345e9c7e944c34f369cc64d584c3549382fbe790f2513161a3438262ca55416a6241a3082a4dcf4a0231224a5c669f01aaff1225039373847b98ddb7829a708989c1b5cce8d1f6c1ce54b6c50bea4a6c66b72aa205243a5943a79a9868a669dba2494141c10183f75326460a9a1a2c4838ea84b72956aa8e080c0c040e254279f314326a76b9260207139449c16a28ec60c381c0c2233b84c0ce7445d928cbfbcd4e0a0b84a3568b80c0def819b0187064c0d0c4e4d0e87855395905c307c860c2213961957378303c363e06c527236a42d4a2945840e95e43293d4753636251848441b0c24170c120c2418a49a18278241828144844a4225698182794125a1925e3822744435495d854a475493942404ee492ea54e47262c594a3f4a2f38642975326551fac17992ebb4856b564a9d5ec452eaf4522a954a3754e85e9c7bd9904aa9d316a5943a71a746fd50da41e5a06e96d06d2520286f189c99920af5827323848e0806e925c70585eaba524d92094be9c78b277157b8883a534c151d110c120c52e947124cc04c29fdb8513ac12011c174000669862be1dc044186a8b3eca043d9c092e43a113d918253a14e5e93a445894694d28f1b2514514d92ebe42f2527e272505b14ee74229a71895b6c4a314694a0702f375e70c1c201d976fa250ba7dafc458b6bcbd22e3336924e377eb0e1337cc8c68c9c214ee6b4256d7e4384cec4040c93121ae8367ff19817295164948b468d6fce6591512e1aba35e31c127a871abe350744c696a384ab0667062fe1b8b868c031426d6e6363b2e1b628a54edca97b4bab4ece995c3538dc169da281638472cd90c365e9d4c965e048e1b4f48e9333c088283b325c869b0187cb42038e11ca6593c369d1a993cb986c70382d9a753a39e784d639cd701a384f20a17666784d0e97e5c42535cb756384ee0443061964f0120e1187e566035dc94f1d0c37c580812ac12002c329c1c58812941826981cc898fc460859e8665cdecde1cc70eed29dcbe42ab96e6ad0b58b977eb8985c870fa219213139352e1797e92587339db65045072f53925ea8c821e29236e71cca8ecb9673e30793733e64722ee74914a61cd4d08c9bdc94f3c4e4333736e8aed0716e9a223345e947bb0c14ae928c14a617177fc11284d34946464606e766039d8b13bd547932e5e43138505cdbcba94f2f59e0bc5c514abd6039bd54e19270701002e71ce72693e948e987c94d28940b8753729d70da7583838e68e626075ab8e478079552dc02b498895995bc942afd184311ae1b24742eee330e65e7e59473e307199ff121199fc97912c5c99fe40ce53c91c981b263c2d2b938e735a5944b4ee73720e860728c702eeee2f2e28293e374429d4e279759a9861908ba6be29ce370724431f550fae1d26466e448e9e5a4a3072fb970701fedada53443812b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb9c1e2068b1b2c6eb0b8c1e2068b1b2c6eb0b8c1e2068b1b2c8e707385152b56ac58b162c58a152b56ac58b162c58a152b56ac58b162c58a152b56ac5829c97407dd10a16b6f1e6a24b938992a64a8c850d12cce6f88d0d9b8d14129c60c2a382031a890498a219314432629864c528c18fe22f3f2f2f2528a913423890a0e08979494258b16a21949584e319238153723892846928b93499a91342329694612a7e272886624b938ef1a495b89c31283ae944394616e3cb0422ac116979b1874442287e5a60339a2705b38184ee3e28292e19b0c2f2f3164a0b8c0e1b6f8c9a55d2ea6929f648081d3a1545b3614ca73a06670b69c19207439a2a8c68072140704c66de0c4c00092b9f141f7e2a6ada41a831125282e9c4b0e641a48d70512175818508593c941c5c8109313e328183ec4b86662fc0546015e4c4a2cc1449f4e2e3088ccc89c4e2ea7189d0c9a538cee743a9d6464e0d0c4f02e46c965885921f112835482412406c6f4836e85544a41e1c28a18d38c69850417e3a7182019574c4e0c8e8b8be3a2f423c60b33ce6d51fa3133136306870aaecd61b4e0dadac509aecd5f38174785ac5c7fac4df2f51a0206d8bc5fc5d2a8d2577e1cfea5f8c3577e1c560b7bd5c019d2b04ef0953195e54a5f6f345fbc7f1f885aa6e2ccd72229027fc653ed63d6b5e4bcb48e072de4bc34b779f2e8de7ee0210abe5eede6fa3ae41c75fe6f86e9e06a6946ddfda952e4bcb45ab65a405ff8347baf857da618f64cc4abe4c13aa928e2d28a25595e10c7e8d1dd0e170c08a9811027bce51b1072d4dd13c0e9070889d13895c6789ad6ed6044eff076b0c46a2f35aa3fc3d3c8acd502e9fd70be1191ce2248c297d53954bf680e3dbe1ff6d4c2a7b5705625b9be906b004b188010fd0abfacbdc06b637f3f16d6c741800c89e2e4a985f3938ce0d12bac8f811ca1035265e5afcfb6a6bad34105edad6b635eadce97cd8c1de320823aa6abf0a7e779ffe3d1a3fcdcb3d9bf888a347f9a7b31ebe38fd7c62af5a739ae0ffef58ced288a4f733c7d754beb7f671eed8dd118cdb6867ffd8de64c145dee39161d9796666bd191d2c3bf1f525c2d8884a709febeda9fafd26c2daaa563eaa1c72c129e26ee367b8f7b2a519c9ea7e31db84c79f824f9b04bf18f34bb77e9245df57d1efe2ae531eb3f74e0e13cbe688a30ff59ed7d700f93f366f7a73f1bc29fa738ceeab376df8848f7fc5b95fc2deb0b857f3f8bb4c88bb05995bc08a33ed9fe549af1f7d4323912b97606d6f949b2ad75f2e070ee544b33697f421bab948575741461048f583a72e898d101828e0eba4b32e81cc1d7cb475f299d31b7f98848778f2296514cb35822c1f7e90be1fcb23b876a319aed0f6e27ddad43771e108d133e3845f26fed0e858fadc813f684aef0b35d12be8f87316c52a3397b987fb6469ec572c63efc4ac7fbf943c7a4f8b31fe9256bb094c51efeb5197b77c6dc62c7eec92ab532ebf8b35de21e8e4c3d467d35c37326ce32832ef7b0cf9fe139cbf68722f96c97d4c43b89583b848f04c9aabd4c382ed810b4b2c10991e480841c50900313eda9527ef458957277daff18a996e2199e46c6cf3eb59b2b91eede418e1ee47822c712f87a3a16b75ad7be728e592bdb0ae6f001da23932ea932faf78dac5097a33b4856a908a3423356dda9aaf0707dd2563a6fcf0a72e8ee19bca0bb71ba7b04dd1da5bb9417f87af975f02b7c1bbe911d6162aab5d8fdeb8b9e676d8af78d80bcba52479a478ff0ab8c0aa5bcdf88e6f9835d95ce194f6d8a9f045f4f07bc983582473a2378a4e3031604880e1f03d009f23ce6fb781d42203c62417ae8f0c1baff1ac1a36a297ee18875388e747b2bacb4c857def2fbb8bc4f9642d81526094357c8e30a5f001ee86e01dc04804a7777901fdf4f1168c59def9be169e4f3d5f7799d2e4ff5630748c95a4e61eadfe7d36755566b53fc90f523cd4147138927ca2ac5fe342b8ad363762c477a34c798f5547dd153a5bc1c9c478fcf8b66feaecde02c22abb4fe8ce62b5cce86dcc3f4e8597fc94abf276b431f5867c6959622e93c7ab8acd2300c3f0ca7d78e2cf978ee78a18fabf645fea91eac539c3ba9987d2228fe88a0d8c81fdb19cdc7cf549cd5d24cc3707a9d7e6d0cd31a88274c55fba294d77e96e73886e2cf3cd7d28e329b7d7527163f743c67e444e29e3fcef627db9f1761b32a11c9b2878ef783ec4f5895d48eec0d8a892f647f5eafd7ab468aa11d5ff87a3a00a80000aa177e069fc47fa9fb9316c45ea95f9bc137f2e931ebb32cab2f0a0d816ff47a15cda7b55ae19318fc253b45f3993c58edcf7dd8f8e32b3ffecfd6e8b1154171624bda4bbedec85e929c98863648d11da4bb277063047cbd114f1a3863ac6abd7ed1cce25ca2530bc3597b7a642f894b3bd6aaadf3258ab4e873fd31834ff4377cb096b6d6f9aa1dd94b7637b79960daa5698ad084a6294296a629c2154d530424d4f044142df8aae1eb6e2cd2993f7cfdc7ba1a8e74db58adc147773f586d7de55a5a109c35d88416fcf0c696eec6b52f7a554b317efcfaa4be5f742ded158bd91b3aa896e6d7e70945e3ee9ed1dd0d251ae7faf7679576378eba2b8dddf8fa55134972763782669ee1cc3f7637821041c51bdeddafbfd175b59d0d2f1a3fcdb4e4d3d970a2b391447787af6c45dcd920a2bb6f7467e3e5ad901ad94bfacc33f45c92957a3877f0f5583a5807cf3b49911ce92bdb701689967c812f8a16ecee1bbaa3c18a760f7f86a7883dbfd46c8eba3bdf37aa1624c92f86699e18bf0d3d87a0cb2a7d983f59cb5eabd3f125dd5e708ebec37734471c5c88ab8ee688838e9394481f741d77f2e1eb6159a5b3fcba4fd2fc63dba0bb0fd09dcd4c77e3dbc3fbe1e960fdb5e02bacf376b71041749b82d8907457a336bede2cd33b7530695529d2da9f566b87d1fdf002fdabd51ac1a3f0430b56223da15025428e60935c5f084978278d5452249c3be1dc11e92c82f1836029d4ddb3ee686c81818189093f673abe07e13f1b82818189c9f58d887818094f934a5d56e9686fccc3774c3d08094f93fc7f63229d46d3f3d1d7e9f845586943b75874b9f77de1b5e05fbf6ff48ebfcf2735f2f0bd268ab3ac73acfd2cbb48732d9d9c636d66ecf865610973f7a3397af8e13f78f4201d67ad8558b437570b7a09e2ea72afbe1195f9f44a737dec0f734b276d3aa6fe97fa97373ba62e5a0bab328abd96e9b5f492ac998cce7c7a581f7f7d3c41afd443c7d477f86a3d4faf54f630c7e21cafad7e6dec07f7f0f899ba0e3d74d0e1c7fd3cffcadc56a7d92b73fc6389f1f467e2de07f4f95704f44d7f98675c8efeb796c9117f9e20f5fab3ec2b71964e1e3f48c34addd2b28f7bb9b49ef11433be34e62fab74b4e0c3c26bbd526755ab13facc3b83fc3ef930af89d57e9eb2bf32d9f4710f835e292ef3cc421ed617b24323d8249c3b471f561fa070ee643ad223f78d80badbeb8e26d5ed2b52a4b348973ae0a39b63c279347473acce8aeef616129e26ac20243c4d5c5629c60fda1bd4dd01e82e11b1d1bd85217c27be43f81997448ee70eb54c8eef0febee9b6e0e08fda3bb0ed5edc92a25497b43af89b9be48b17b5ea9fb1361bd55801f9f9f242e26dd3d761723020d030313e3e5174518189818950e0be7fa468f411bb22a9da38ea59e87411beae8b43099f32c35040ec2479b71c903030313d3c5f0d1dd1e4871a5371fbdd7298a13f487799de08bb03903f324310d739df44e23ff6a1d573a73b53ca23879bc8f66ebe77f6dec61feedf01c1c7ffe77922c717e98ebfcd1319d0db957044e98e3214c67d92bf5fcd8a7ff7ddafd59fe1913f78a402bc262d65d8e671015a751f5c92f846b7522b1766826a346ac1d0a3f2c45b0fad4c2f95774bd085625a10814fe8360891dd7264d9c2e8a94e6efb4af3e5d56e90c97a45b8c63d6efc3c6b28675fa2afcb09616e6987e7d99df277d622afacff26682f0f39d19fbd3bcce5976ff6b479f654a73b2f4b0be671c7582fe3497555acb4bfafd1c9bdb94eefeba43f13416b6982dcd8553778bddcdb03aac5f044e58a533708eaccf33631dfc4634d3915e327c5bc127f1eb28cb867c6468ba6b300f1f7f321aab96e7737f5c4ef061ee3fcb1eb39eef241d530f62912378f4e5974e5eb814cbb1046388d0dd367417b3822e86ec62e8f7b991bf6c5e9bb1e7faf796a06323ff3eaf74ce405605724ff59e23cf6474cce13390ce6829c7e2acf773a58eff4e11fcd07d025464a1890d3c015f4fa7d5c2d5525c3f1f7dabf51a3fe31aee6050d0edaddab57986758e1ece9dfb46f6f52035baffaf113c0aeb93b8c4a4bde158e2bfa16867f8ef2cd726f8e12b83f466fcf725ceb2d2d7d11c5fe4081ebd3ecf902c8f869850fcf50b003e295404fe8c474747871ee0f40102d1d9c163ea00d203f411f6e8e123888e07c2fa3c6fc6b012ebe05cda22f067a04ea6b2568ba4337ced2c97f395af25c912b37e9c37d66afd48732def4b17daaf8d5d191ddd563fa2034fc02f82b57ce5c7dd6def13e135987f488d68e8367b26c7cf797677f72904ddfdd3dd8bd88daf773f539d07a988ff5ad0003e4644718219dbf195e7ebd2d249019eace5972582e2d7cb26c63fbe8ee698eb5392827fef87f5f1b5456a775290c6be3eacbb89bc8ee678df88ca6e77f7f4081e75370ffeb0bb77321da9f8ea6e17fe8f75770f04c85f04d2dcdd43707e8c679ec9e8d35ef77534c7eee621a4afdafdd249770be91d5ab82aa996e2fb4b1e462f8861a51039d229f21cd1b03e49baf20bdd17c33a8dbc102e45f29642612d639fa45a9a4bf08f88d4ca1d59a5a1688d7c9e34d3ea23ab73061e11b9f65e2249c2fa20fe9e4a65f402ddf9228fac526c459ef033f920e8c25f3af924f54920f16b9d331edaff90e33592c1793f86ebbc438fab25f127a9dd2f7f083f5f4b7e3c7af80e41ca2068d08180090f6f87c783f5e204f10cfaa1030f234354292123d8640850abd56a8de0d1b5f71219c12641cad0e703f4033a3c90e401a41e42085fadb258e29a9831f51cbe077878a0460770d001b17b08215621ad962ca7cdab3b6d073c0e8c8103528034cfd1e672d69f0d71c0080e040d21c42a0821bc3a853850da00141b68d2dea7f255e8f319cd5919fac376f84471f27c1ba8a1812d3d84102b1768e0eba9811a98d802131d58e13963e24806ba30820c0865a03100457b5606b397ac6f54ef1b59992371af26c228c696f49f655cdafbb23a43552eadcd1ecebf9ef2d21bffd6445c5a8a69f58711c1c0033a0c34e99e4e9260e006064cdd3d84102b3c69ae0b30e10253f41042e472d22e90800bfc2cb1a58710c27b7c5673a47d1dadc59316ba96c8c1122358e248af42ea4108e189e2046d7d7dd1ccdfcce10ceb5c8286ce0255ba8710621584102e0b4cc002b8bb957467011b2a60c5104278487d1584105e2ead87d7fa2af44933f5556dd6c2f7e93330cf31f40a90dd8d597f2b6024d7c715e8308e8e0254bcf0f35ff21bea2870d4f4fb7c880241dddeb5310a787b147851428aee8e59af4d9adbbac293a6c4874b3ccb943aa63bba53c2bbbd5a9da35b3bd44d204b7b0f4e008a090c757f2c56c2c049628f592f02a7e8139373763fc83d95acd25cdaeb36749bbdf768caeddf9f0d75b74d7713587577507712c8c2535df2887a32ef53feb3a1214386a852438688e2e469b586e09a90e3e94342848c6093e7d1a3cc74a447866021477667889023bb93f1874c92a8411260123f10d802010f40c00210e8a183c04c777bd673fc68718e176b628827ad9623db9ac33115cb18c62eefc339da0a7afe59c6d452d8677fbc9a284e9aef24af7d911c6578fc6698ba579717fe4a9cfe009cee06eace01561c80030790ed3dad26e63bebbc2fab56745b9374f70fdd215d00a9eceea2ee9062904a0d80a201430de8babdc77306de9244c2d364c5fa6cc7bf2caf3691780dcc45985ecff3615e9b238df97cb54a96bef2907000123f90481dd1832352d0ddb0ee8e3822a50bdd0d7627c502527ca4d4d0dd4dba63800eba7ba83b06901d037c58c016cf6b936cb1bcffd824ebb33c1e3d62d65ddefa3e6779a91d4d6cf64fa5f2bc94af523c9a7cfe301745cac43d9c8fbef565fc6158a7c72c39413cbde2ff55f8b52cf17fccaf8d7de367fafa8f7d31fbe10f53ff2f12de49bb16fb0218d02d00c90286747792ee14b0457bf8fb90f034f99ce5618a84a789c7ec4c56da3bcb3e41904e51b4f98888028c1490f266209dd197d579a7ecafe3d26b36fbf422ec8aa282281880324577b3ba8b42bb7b4977516674b717565f21e169d2fa3e6779d9da2448bcf57dcef25433cf592a36b1d0105590d25741ca949087d5e6984bfb23cda2b5b017a637cf232da3c596d147b48cae62092da3655a46f368197d04080d1c8eb36d465459552107dd1591d4b53a63311afa0cff6beddaf1c769450be2d26b30ff6beb9643f796a366cc79868f29f84cba3755f796da0240831e9e5069b22cb25644d26d84d63d4935bedeebe9cd09e0e2e9cde3fc9bb13fbdb97bc3b109600b80c9012624d3024c504c46984a5997001b9dee36d25d00223480aff779caa8d1acaa1411473c979688547713f152fba29664b3afbc35da1bab51d1ddb45a086a11f0969dd17c85af97c919ce570d3cc2e2884a9e33daab4ef088088d0a2f0f874fcbdddec2a288319e22cffda07b89140111194a52cb4646f47ef8c25314e70bcfd70ccc1306623aea80988e47dd953d5867067eae657a27a9e3795e7f3c5f247d87f0efcb64f4e637a2b87eec439f65aa2b53ddde42fd404a151828d0a091c680d4dd4d33c593190c0f2b8200b1c1f2c50d9e69e3ebe197acd2abf3a5930f5fe01b75a99666bb9400878b8e0b134f56eda5f98f56c83d0c2bf10cacf3eeb82841c91204adc75ee1e3d2064e86890baad40b539cee0da77bf32e5e8072693f53b7d857199706e8de00d0bdd9b0dd746f35740145778574f787b6fea5fd0f086ea562a5feb0eaa1ad2e83cec9146f5e1bfb5aadf02b0de843fbf309e16a29acf0d9d2dd220c46eb86640322a75af02fe9a19de51fbd06db3250e204d0bd5de9ee21ba236b3a0b58580290eecec21ed13a03db8d2e6458509510131f3b0f423ca4a3b7f014613397634d0dcad6deaed6cc8c58c629ba7b06e6397ac651371bdd1b0ddd9b4df756a37b9ba17ba3d1bdd56c32ba379aeeadebde62746f32746f30bab799ee4d6683e9de50dddb4bf7e6d2bd9d36ae7b2b756f5b7fd1dd63e86e3174b717dd1d86ee0643777fc10bdddd85ee3675218641c4d2dfe734039df844f8b8d54a42ca37f30c5faffcf8eb360280ee8aa8b4f7b794556a79788a96e8199edd423a9c3f73b207d01535be1eae4af21caf2d42fba389c4c39e692d3dd52a958ad91cdc8738419fd73af6faa41dfac1e2b43f31a05c02e1a7d7669ffb950694ed4fa596fc910ed1ec91a38924fc6bf38495988a349742374ff2935425a150c6f648c6654ff8341b5622310fc46ebe073e4713493d72349178d5d2f0bd267ab63fee79e47f38165d4bcb5f75783a3c1e462f14fe387fdc0bebea71f853087bb5ee628bc810d08f7b35b15afc7d3e1d3f2e71edce0f2996552b4eff3ec72b1c8bd90fe7cdf8470be672c7bdef2bed018a701f3244c8ccb3c75737c8574384b45a31f185848c7426444e24ce83ffb559c8dd13e0ad96fb8b941c2d68ebf77d44fc06f7aacd5824c779f4feb35c624c1d675a4b1767b619d7320d69e984e6fa14a4b15889abcf1b51d145fefbf06219fe0c14922d2132bf071781f6c8ccb3e7d60f7d669e3dafee758517145e56ac56defafc17ac36dd9dbaa1c6eceee5a36b5ff4122768c56e09b40310f084ce6b048f5aad6ac7d182affbf4de0943400d773cc493ee577e6c44c5f922ff8b445146f18ed70bcf17d8322104d0e5080b9fde8c613a412c0173da6862ecf4c065e90ea95d725f14278f4552cb54a45949cf0836e119c126414744e62d5df3962e215710b6b1ea2384a5bbaf1ca1bbb1e8ee2b806084eeb652842add4d842174d72ebe59a746ba78c407ebe4a9f6a7565d07b0e9c6c100ddbd1d40064679b05a808205aad0dddb1411982068c60cac00d2dd1b012a100490120ef04015ddbd41c00a0050dd9310147477e90811024401023820e085eee6684ca00a1632c0441556badb650317d8b25dd11a430fddbd69d105059e7891012800e96e1307be170dcc8040d484eedeae80f1d881101170b2846e5c7b1f8460cc3c4377eed42449b6e2fcdb0d44c7640adabc3c76783a5895662f6c86e78c8912d967781a316d32587413e1a43d904577c7ba5bd28489a93dd0edcf922aa1053dd7f7960ddddd80ee66d2dd4f04c00f2df812024c07a1bb4d40e816c5f24714278f0e0d8c18c8d8ce7aa340b5747be243774349b4cb16c057b58cb991fda985f367d3adcccbde6eccda4bba7b6d8a7fb726422ee8849ad03d679e3d9d900fdd5de9944dc745778e33b03ecc6b79bdb435df61c887f8d11c439f57922a49729004a9bb55a9e9d8c8552977cf3fcf9166fc6e731257921949ba083f04e9c6e2a4b97ee9e4b1d77f5a7e980f092dbd1f349623ad1489900b564a84ee7e7517a44477ebe82e280b0d561b0e91e3cc38ba0bfafa06f50479bbafbcf5aa95b0560b2be92eada0bb11d01d900ea02b0065d101c90048054014f0167e2a8a936645f163bef216be31f7d2d62f9b24397fd6fad102e3eb7d68ab0ecf070f4f070b16b29ede8caf87040ced79d6bee8958fbeb65a488a80448af696e7e9aa55ed8b52cd6da0bbbf3b2441bafb024b74ab523c96ec58a263c9081ed119f45fa45aea614cd20c4e72a4fe5424c7f934cf25cc57df57ad87e458c2bc965fe62b2be4de47d26cb1381d3f154972fa7dfa335cfad3fcc14a71b63ffe7d9fefa0cac177f01c9e83ffc75e34e53c3849f32bbfb8838aa439058a137cf1e09e5fbcb688ebe8f85f5b6574957179bfef73cf7f96a9d760be529134bbad290f9f088a5935f14e918eb5bcac5ced8d7d3f9fcfece31e2e417182532c657feb574bd22cced9cc30eb36fbf71f7b7d46dfe797626b73489a2f35caf1cf25395af01327d097a9588efe1f7397fb00c0c6aacf0fed69ff63848702d0a0004bb4633164a85b9c3853b1c47f49ebe41c5f31cf88d6c4cf93863f8ef4fb1cd7e93f5ad0e622ee65f0efb520ce437c471349ab158457fca23fec431afea519cf23eeb9ab7c55cbb496e368c154f84734e62b8a695fc4da2125d9fee0d0274f0a5a8c5df627fc24d9fe74d1dd39baeb9942ed7d087b42b0ce12631f71663b8479f45012b3f606656c8dfc486fd0cb6650b6a25058ed0e4f488ed7c8b5e18bb089690fed7fc46969123c8fccf034125a1ea10f2d4f7ea190f6e09e0fe9c5e11351bb6f64414c7b669e3de17c23f783f0bf582629ba73bc9f271372bc46669e3dd5d22598878ae47f917cf43faefb8fe72ca8d26c4ff84a92643c8ff02809690fcdfe7c9e59485669aed3e8c54fd283c3f9464027489c8c3d19cf23a1cf0836f9d814aa7f048ba28b8950aea5e5897d9217497a87e695914abafbd45d0f2ae86e55773d207183e7e98ec7c778ce9b8f88fc2df3ac322a84ff86a1ab24127e55f2b2f78978555bc7be9302fa9ce591a5e792f46b551f0f17e2a90f7bd73a0064d000a06de8820d36a0b1e1c8866b430ddd1d035ae5c039f0d10c0a4a017939fc46a6862b6af0410db8061d35bcdcc0e2c6076ec4686ef8d0d8f0c2091b1cb0c143c316342c4143830f5fa0b1f981cd91cd0d3435aa34eec1527d3b82be948b7446abd5c9232805f4b9efc4807a38ebf395b752cec3593c825e3647fa97dc11f47d8c95aad4773e1e419e83eff01c7ce7969f0fe7810757a586f0e8510a69b562f6f585f36fabf5b239a991f3b8f7790e5e98c37fac264eb0c4d5d20b9bb1796dfd988f17d639c3b4d298db5c83d5c831c3173433d080668618ccf03433cca0a165c9e71ffdd8f497dd390361a5907bd562ea93e6d1a0c18486860f355da0a909024d8d12ddbdd3e3397c2eab34e8fb907c1ee439f837630032b2d0c888a2bb659a46860864fc74f7a96964f8d0c8b8c10a342da001010d0d066868461a9bae0add1234dd0368ba9d18588881849aa689b1039a18962606101a19a44023030fbe5aa77d0d45bb6306cef76b634648f01784f3a70a72577da63705f4f9ea5321d9e971d61744fbeadf8f2a7c168b8559a168fd43f2e3397810921b6ef0c05ac3f9656219fb3bc1af565dde101ffe82f09fe55c5a07a9cc8ab259e768c4fafc67437e834771fe7aae12b27c856288fd7fa4e183b4faef78a57dfd9ce591748603d7660debe3af4d1994a0984686264d9d46061ddd5e28838d4703438b07c38aa698d2c060a2bb457068884dd3c00062c88f1649ab3544b37506023309a099b98146e68a0868642a4023b343230323860a9a981178de971fbf66feaaf6f32f9ab9d5fa3c6653be63547daa1db02fbf5005fa52eef37d5f0de673cef09c91d5d23ca783b44ed27dee93e11759a34a6595ca2a8d09a289f15206a3a56960a4e876d1c090210d8ce3681a9496f6b0eaaf1d535eab13c54437100d2a287fcd572e1a54d79ef86077fbd0342f54744fdafdb0962e9a97284dfb18cd4b93f6ae751e2fa86e98671c7507a771a16287d246c154a443342e41de8cc6c506e6299d4c1268c810212607d0987a684c291ad30b0d4785ee66d2345c0568b849c3cd74125f793256b5bea2292580a6a4034de98566eb01cd7644b3e1f0d5fe783c40a4803c9282ace93e5f2ce10b157c1181ee0b295f00f9c2c462a9c4f00031b8bcf8c215bc188217485ee8e0850d2f640843953070200c621870008311c020050c3f80810730b87c61055f08e20b34b60c610b145b685b6ef08210bcc0022fc0bc00c30bdd85157421d68556175e74f1042ec52067a9bebf36e3cf6334e57835441042eead9d1e67798e1c9ce68f51d171a675357ec62d96c7f23eef6801e9f838cb5309c9ac9802fa523e03ef7cecb53b2b157a917504041029a02f6605e0e2acc11cf4fc139a650bf3d50ae3495ecbaa5689b3bc4f258a93c77370203c07175a8914d36a81dcfb767c5e135f9c46b474e2cdbbfabec7655853fefd6885bedcfab29dd15c9572dc12c5077ddcc31f2e45d257f4f396f7bdbe1dcef2cf6336463d633a7d8890fa339a10f097cc6b6dfebfb1d1de98107e71c1052e9a206b19bf382b2de271d1c4662e7070010bb6a2e7d2ae7209e30213cd85a3e742eab790e4a9301dfddad816a6747bdd16a2587bb7d083a70a539326b4854e2787eeb480c5b53065470bb3c62e33722d04e9a6332d5ba61629b440c0bab539a47dfd529c46add6d0ff8dbd685fb380832ce42cec6c81050d6081070b37ae60852b28e10a0fb8428f2d94b0c5115bf4f40dee5ec697621cf77139ffbaeacb9b53fe4694fc2f72b7d96bf78dde558fc5194be13973519caff9a2b52cec79607e5fbd6cdeafd55983917fc9d5cffbb095eafb927e5efffe17d5895f2fc2a67bf5b7e8aca0457b4340404978bc07614aacb084155c560052052ddacb25cc595ef8344661e02d2d3e7a3183f38808158e40051750c1082ae0c852258b07b20865e92960610a495358620a760a35a460450a2590024c0a3851d8a2db1b777adc56b7b8522067b9e3e9b549f3ef0b6b29ce8ccb9e24df8bf6f5556dab45fb9f0ae4d86667b97bdfab4ef0f539cbbd95c42bfda8c6ecf47196f7427e9fb42b718234d35bcaeeec719677ed0ac7fdbc28241105044401480b2fbc1bc431cf3ccf5b23cd0118c0008a3cdb3a87f8be207e9c425a44408b1f2d60a040032818412189b5f7734c555fcaffae9e66c56b9de6e3d54452f57d292f31a6dee7619dffb7c837bd24b85a3cff82988eff37569f087b63afff58486ba238c3214f20bdfc582cef136c54f8b14e0a0b39c18abed40964f8f9c50ff187ee851f3ac126294bbb92a4486ad29d645304d2a2266069c294226ef390ee9af035a107af09364cc072951c49a2e4081398604290f7e1a389e4638277b635c912b27c18c9d144f2fd2cc18af696d04477376d094dba9b2e41c7126e1653b288d2dd338ba06e2f0bf169cc6b5324310d9550a53d8ca9387ef6518212ddedd9ac84991252fd4a8091042ada0b1fe6d78a4f1bffc3247cf4e6af799893a0a35b86842dddedc9c292c8436b656e6b2d631c48a0d29e2ae5a1572468c0e637a20d19e2e3ab212131a0f1b38f10f0978494e7c5f20ea989e21c224e6cc921437c84601131161ddd5eb51e7eb64657a2f0832b2ab842b637946dbdefe1f04e0babf68a91ee6e91c8159bf17dfcef39c2963e8214dd4710bb08a43e1cc13b820b1653747b5eccaea8af7cf5d54471be3e7f6279736961d37f0916140beff6feed57af268a2e4be4f6475be968abeb8a2c5c31c5cb8ff1d74c9978d888e6150cd39e2b1a70858ef6fed25ca963ec5466842c2ef762e2e38795424658c2abcdaf85a1cb083eac70e1857f2979f44ebf0773fdf1f54654f63d58430febfc4bf35f5f4dc72e2b505869d2edd1ac28fa0c3facef78ceacafa65bb9a15b2caff7f8f0b85091201fa77d15af92227cd143f091ddc113fc2545004011ba0a145586aa7044b88208503a2218f13e58895fe1cf6fc563470e0f0ae7675ce9a762d5d04b5bcb60696be1b36a89ebc77cbc4eefaf37d6aa0dcbc7a4873f84150c61034358c010123004030cc1c653a5f07cf9b45a439e03136779aa9d1eff0ae42c0f87f36ff8cef2543b5240cef25ed9da242f7fd80b6114828d1d04a116041c3e1eff592e63f7692e8a1fce71f585ef3303f3dcf97e96ebf4951d720f8f25782958a97740800284cfcb6479338e6a7155e2fd40053f28e20702f001161f28c007a00f6e5891d41e8f8a2705f41511c5c9f378eeb45a93acc170ca3df04e4c633e9eca739d19d3947fad5ca7675b453a45d15ed1ce68a3cdd38a29f6c78a285f14be1541dde3e3e18f876b5fe423758cc3888aef430fb2f84ab33de0a107347890041e4cc103920742ba1d74b1832a7ae5318bf3bbbc0fd7bee85f680734e8400b3a78810e22a0031d74d0e5a08a1c7c0e3a1c24e12005dd5fed7df8bc1552af7d510b7fa69709acc759dfeac3b5f7211ffdcfe7ab2f0614fad0a1cf5b389c9f04d6e32c4f95c2217dd5bea8d5c2b5f7a1d51ac2617df243cfd8824fd6543b789ce5a9667866ec54258af6ce94acd2e918478f8f1b3dec33f8b1d8ab70aaf645b52ace213ba365b17c3d0e52dddd0db2dc8005dd0d8ebabd59a6b4af37e8a1bd9a98c11bf8a4b9a85479d98bd4885ef2f31427889f878a1262aed6e69528529951493595eeae36c0523bf2309c8e147eb6410f8ce3c95a9ee468c14a5d3f7694435aada1199e464471f20c191212033a726477447182add6500d64d0a00a1a34d1edd55be6dae7fa63155734ae22a79b411466d08119f4ccc0a6bbbd3c65ef35d5f7a5f0a5d5ba2a4c4dafc190783218c014627081181489814b0ba8f8a8f8018324181801060a80c15077e339cbdfd02b1ffde72c8ffccf594378925e13efe7acf9304a9b247e010a5e007b4190f6fe5d507301ce145e98c20a5330d1ddb83c3a7a219cc2def7cd4f14670bb4d082285a208487abfdee5b16408005cf022444ba6301aa5bc10e562083153859410e5250410a12482184142715e8a0bd5690b3bc96cb592def739617b31e13ab1d59ad20ef13e7df8be7ce37473a3f92cea6bbfd5be632c69a612ac2caa0144c210529e8528094021f29d089228b2882104519054e141c1452402104142e284a2898a27b87cb2a45e22da01ea0212fe613dfcf3fce3bc9d538f10ad3af8867ef13e1a1a5f7491d75d2322e89bebf384a5bab4adc537ddf8f13af8e3e2c6514364e4cc3cf591e8c1ebd18b3d9ff8d48717a6f6459def77d1eb3993aa63458aef3ce5236c37f633ebdd2262984829c1304e104b413f49ca046777baaa0d46332470e2f632b622c8aae1c39dc7b11462b0dfd67f9ab0d3d466976e6abeff31accadf77a615a9588f3ef0c4f23a238c1d90c4f23add6d00ccfd9db58f5c1a1cfd0ac4d60849c7f5d2648b53e13d427c939f30a34054bf7a4b9a64ce9ee764d0992dd92747b9f08561dea9ee0c2135474b7b7e4bb9647142748896470de7cf4459e803d81c3389fe81248e1e50b7e083ed99520fcd18278ce420ad2526848ed8b86d4de0721e02f11450abb1f547b1f7cfc283fb42009923ad3f14990c4892f9cd88213217042891342bcda7d23d5d76a59fa2271ca3f95500ae8f396cdaffcf85527f879ece813fa843c071f81134690c4081630823b821f46e089208b7ba258c6fee6b0beb7c3599e2ae59fe9a5ed70967f3c1fcd3f158ff77d68c12ff621ed3b1150e96e4f044988408a088810c1d74384f80d9f6a470ae873d610217e835774e7f8f78b261211d8747be4fc99631c5e73c19ec90b85c08a982b044d74b76cbe5008749a7042131ee8f66e09827fef87b5745cfb2258894bb7395b9ba426fef567e23972e4c8e11dd1d85fd2070c52d266228fe72ce8f19c9118df1f4b5c2d88efcc339c9748ab35f4ca2569ed7d0d191202fe9221414a21e02f098f3eac43e8e03144a389a8e4efaad7a99e059d424423a2010200431100203020168c478462d9704a89caee1480037ac85c904c9b49b330c729440c41c4100000000010000084410001d4430040b59b41698cd39138229bd43c3125ab1b7187a0399ae379821afb001729652652c303328dabc4df413e69ecb0b89e51127fae4883f5fb04ec9952bd58b11dfde5609c2ecfa7c0162ee9312791709cee7e4ad0e101ce8d81e8474108e19169e85ebd5ac9972f6ae5d8392aee7c27730bc707ee12ad0c876ff670428c7f13f25a64e6b1bffb2ff8ebfca1d9c75c26e23e643e6dfca3cae320781fab8735f630b4bf75fe61907b2c74900fbee792bdc54b827b4c7c82adf64a82f1a595abe05d9be3829c2d4f18269c20ee4974ecd0bddb5a56188a5b194d46896994c9e4f041e98baa91c6b01500afba8b323007336cc45214391eac7808591385b5a906526455ae465445279e2a298dcb020b37dbda388f10d6201b23eed9089ea264c0c422530bc8663a31ef01381b614a9d344bcb8b9568dddf3088fc6779bacd8f1f7bee529ccb2d2ea676ea1da348621d2112ee9dd1dfcbc11c58aa6f6fd00f2f502eff5bd07db3102a04c9c46ae5c765a03b7024630e9c712c4be8fe2dd01a86f4bda6a98bb439d42c3b4b8167e3870955a26153f01c84ea8e0676c8614ab438d2a65f7e7dd4cc4381b07dca81cc6725f13654e688d05049414c9b1e08c8e2779c2cb765d82029b1e2e1a6dc8119886a39c21bc819302c9e588c856db05f91b5aa08925b5393d52423c3ddd3b6a8f903632ca34ac30a655ce7b07e32bbfe84b43943bd11032128014947fdd2f11f7658845ef1fbdd2b427e7cd26c5ad6023255e2d65b37db9fec93e08c4c3ec9554f153952802f0eb316c3132030047880e8f66e39829cd893b4f43f175d2f5934fb03c078332bcf8137fe53e90286252545af6142610ce025d6e9959bdac97e77bab650124b6d51443e55e2ec608371faaeb44ce4741ead369fdbe1656e8e865f35f7af61ff189ad963ae02d4bd99bc5bc6c970f0fb4f22cbc13641cee172597afa3f15b3ca545c667ec432ed2e904ec43493b4b0b010ade5b87ba35e869a5bce7ad27a215c67feab1269d37bd59d4355c8ae2913095d95f89984c77d66cf209fdaaeb92fd966a073540477c1f0996cde4b6703e180cec319d9f834c73fcdd1d0347ea2e709c03f37a8de3af2f82922696117e9b2a9f78697c568c41d05d9c5ac9fe431df029f667d0736e7396edd91bbfd15d60def24406a2f5f136ce4a9b4c2e875ad912b949f4501d428caf180251ceccd1f8d4111543598b451d4564d7d21c7fc64cd4af6c834aac34ee021862f1fcb40a4cca07cefcbdd13a29740df9cebddf185a1a2726cded036952996199763ac01f53a40dd436c728c733709701d99d3a300646058c5ba28bae1d39857d668e775ed2ac3638a61aa1969b28d35731ad6c20502c775ecea9efd4506a70e84aafe64e493b8d17b4c41aeb49377538b615a1476c11edfa329ea5e94991294eefd8770e80b35845f357f87f0589798aa0e63eb84b4ea9203f65591d66ce78d9c9eebae08ff157e9c8ae9e44aaac45f814542385b3eccef02de7c2fc975ca4cf95520b89fd5fa7df3e206519ad821730d00c319cbc0c65086e1554de67a02c4f462e99c968e6cf8cdc683c013ca0498489fccd7b8d6593661638598adf0f2fa729b812c05b34d7589cf4f3bce3898010e08e659e4874a7bf61ee7bda68727c952abfd072e40221c9ce8bf0e749724de524cb08f96fddb6b4e1a9686bc43322da7bcf1591e605f9090de95734edfc9b30816249561d2d11580dfb9d2a3936b2701206fc146d9b60a0f9585031e3f1c1dcff6daa6ef08c199ad26f4e30fb99652f929a076da07ce47b0d000fef0e50f00b20b0986135e25239a5407921f1cafb08921ae9a0cf282889544163877bdb98e668211ea9b8833a827abd1211590b49036b0fcfc5f4caffc13a9faa0e70310b24a036ae97f900ffb5b9d05f178936e67267174125260af13ad0da4d6c70baca51dd0b988268c32f936cc33a488ac9473d5c73a7318adc5be55f58cefadc996bf9c03e72f7ea9f27a209e48cc9d5a97af7426e6482da73acb5c4da8cbd91e4f8ce700686e13c119b73bab30b4c84e3ef79a3d883c501957a56bd0ded52c08bc9cf4b0a7819bce8d75d5c3c5def229560d0c09bcf99188fe0619e63975b67032ffa3fe03c2f267dde6488b33e5f4dfa65474a78165dcd877788c9c30d6d9c27eac92e38838bc48d5560d66dfbe948e1ee313a543cfaa9af3eef17f313f0d36910051713a80e52ad2eadead110a3929da5deedad8214d20a4a49ae9bede14cc43d6360241b44585eb146d64dd47e3b9497612849a5f51122002783dcea407a6bbb9d155587a1639f7515061aa8d12a1888d3228f54507c011dffc6e1823ad15d5b7409ce7d36f6e822464d09bfbfbb7cf925caa68fbb27ec4ecdbec2ed63150d07239527babe0367c36026396fd49f1919204f78802ca55733fb043a4bc76a9b401bdaa660c8457a50876f6357acf3968ffac192ff0fd725490363fb70d5589a6c5681df2ae8bef667f3c7c45f64c0ae08f404e504c3b6028bd4a9a7de4fb0a0b7e52a1af52261f4cab4f66ca740576da9a5d4995fa958e973eed1af75a3a03daf9ee98d8f452eced374c0756a10eaca34d77615037d7b569c97ff820d3201d895ee1a588e49f1d342c3ea83cfdafc1a8422856471433a5c88e8e4bb53125128b99240818ab1330c111869805c67b701cf41bd8ece0a59b134e3749f2b2d06708dfd72e4cf5d9971b9171b77d6e36c3ad2ee2ea127a111fbee1ab7ff751fa3be05f91bd43a0c9aaee47edd80174ca7efa44e192f8eb4327a05d4891437333a4b8e937e73c223b8b97ddacd20049a289a3ccc8f1291698ee6ae89e23267451b8f112836d42b962ea9c31f90e7d1690ee609cc5f8bc90ef2811b8c70cbc3913fd92e24f78d43718950b8550181ea53a5f79a4e81af012a2a2a9a55e3781cd5ff79f118f8ca435ca3d644b27ac5d9d07a68749e2cd84df9d78e6940b622e98bd92269f53a84b8bd91dbf19f3d3db55b18303edfff8d241b14b8bd2631571ba60668066769684f3aa598ef43925f7966498acb0923c1ae60fd3f08b197231421b9373e0a60ec5e5d3d155d32b601655b8e585ef319af6c7d5816c78c043eb88a156051881842574a1121072263163421fff9ca25d221b8ee5baab2468cb04cd688a0bc989e707429ab4232dbfea5614b6fe348e696d79a9d33684f31496891233ad336bd515954c6ad0fbe8355e1262cdd438b8ab79013c642ff1a6c68d617cd6a3453e9b6f1d86d8c24f692adea1eb4deff5dc516a8c9159e81d8ab35f99936b898383a4a18fe9f17fe631caaf9247e77fbdc20be8f81519215fcc82fb97a567d5db9734fd93ae4e3314f4a86b2a77ea32bf5ebdc59a10780ff88ec7dbf126545aa981272106a335769489af2f1f20c2e654dbfaabd60a95cde7b2dcf1c62894b8d16f11716048c9b7832393d54f34e6dbf0952c3e402e6e8b32469fb134221ceb1a2f8ae4749e3a3bce35aaa713369319a7b1beaf36bf975c2c9c85d01999be8d6e9b217f49ac1da655896bbb95f7724770875db02cf144f6f62aa73fa3e5904522de89bf9cbcb8aaadd5cd8d00c1d4ee89ab4d296001e340941a290a77de10d97c41fe90ab1127eac089b6be1a7da138715768d0ce3127212c194086801cb8b28ab3750f62dcf71c9b58b80d6bf13c048d0d8cafaf796332875e8c13bbf406027674e7b4dc17e855749b426aed7622b21158d91b211f11904c5661bb9b21c6dd8d96755900ebb09bd7da6a8d6b41dfbeff9b174117f06cd22594623641540cd86a5f8b635121ea1d8f279b26bb62da52dafa01bc8267e85bb592985269dd12b5324bbb81621008b2904faab1cac18b947511ca9272758ca414737f66fe0f6f67c9afd2e436ffa0d7349bb7ee07f242a0a0a5345cbeecc43d61dc03d1d63340fa0e7591b3da4b23408d7f8068e840b21a08be617ce04adbcb57334a4c90b33a3c8ef4c38f37bae2b309afe12f4c5df8b50388cdefeb33c62897c149c48b735fa80ecfd0074b9e54f1fc67dcd6c49f7a3a22c2c59e1915256ff04d7b79b64857d61a4b8493845b3a8ab905320f4a4f20377e1c6beb27198977d0112ef391ed7d540f748260696e2dcdc6efaf952874ef71c620bad516a43a0bc57173512b09caf1f79a62957cff04d7d9b14d3fce64a51e35aa9b549e1bc4955bc420108d40b7189b43f3ea2f6b4f3dd34e4ed681887216d6e48d51466f460dac63fa82588890b386941c6d846e9d7ae642b6d353a52d104a5190b09120ff43e8eab3125460f1c50247471a269c629679ca6865ddfc50c06ae1ae8c79dd3657986262ded226f9813b6868c46056c1edba61fb71f5585021c59cbd219fac94f9a520b707e165a99607cf493fa3e8d15f4be03b97fea6c3c372cec686f4d1c76cef25ce52d99be7bd07a0174f8817e200091ff33e3fd09e675a52e1727b52f64c04f21a1b4019505f8f12bf85a8ccc8aa407e13764b6f63c14ec5c48872ba456cab454660705da1d29f07273a56b4d384e0eee0e98b189d25776440e961319c21c743341f7dc21c697d074f0dc9b0b3b18125718e34b49509538789eb09c284e5322bdcbc64d181be8a09d7314d82366cd85ce12a1abd687b7e83f801588b76d0207c92d23f1d128460ba8cf83b107bad61fbfd966f50de177ee290b21741d2349bf7137577e2be89261b6709014509ce72bdd85778159cb83fc2f3909df811fa57d19ebc565bc3d7387b605c53394cddc1cffae7649279b1f4c2c158ba7df20262815f8a76f061d8db64fab80d147eb2c20b7a658c9f606d1b362821bb2cdb027fa9552cde24ca085640ef475469d841ee1463674be609c58baa64d673d9d951878b7282389b67792007c38e55eca9cd9a379b9fcbf2c8e321c1ac6566b38c0f5b99c7f087e1e771800deb27e41c4ef6706470b4c7af0cb98dbbec7c8993f5a6ea04277b37c23be6656adb134303a952ae59a9b062ae31a7cdc365c8f0dc949805c20a31028f6730aece9c32ea533d7f26a44d448288e70b790d99d506c4cb03dda40f27442f740e56376f87562c51e716c2591e0f8013f1fa82887a8c4b60e78501f7802fc2d5b4040c079fb008d91aa8b775fc6e8879829ce9e6623c745607ddd36dfa27a0938b3e9c49a92d1989b07c11850a7f0ad67a432c4701f3696d6c5a502806d53d836443ada7246744fcb0354441c392bc26214341b925257b11116978650c653de232d0c4b7f4839934cebac619b4641ed205415eb51438c40d36f54e8a8bb166b5fb73820c49dcbb7e063b43e4e5d5119eb8e8492a92773728c12937e45cd9e1e2871f4989d9996dd3daeae41ec1d3001a2f50c1f4caa8d65f59e1653a0482eec5a3779e9c1f05f9efc5e7db0b7ce216a076333bb663c3668337387a0139cf4d3444c40bf445647d3b2ee0d236bcc289b8d0365822adc69a08f39f5adc97661e24c2516fbeadb0df1cbd84951787393e7ecdacdfe941540fbe8c0c4255c4a1fc041703980801eb2260e2fecd1159740a4a340e52da78e0d0b5b7204806404dfddba3140aaee55128c67d15f7b9d359004a46c15f5a9024b3c5741860057e1db93050666561419f21db971e3a6458757b0720db74d083b6fc3f677cd943e5ec2ea050e203f2241d0b8651df299e5d1d0a25fc938935ab5bef62e80ebd50d080bb9963ac46c5f086d360d193913293601d18f8e2a4c3e1dd32355c92111df445212f937aa94a821f108a7f624f730400ad3d4838d96153c518caffe7b92d0f64133765e6f04cebd97a64b80ffd015b656a7a3e7aeb2483bf8bc7dd4f5f8986ae52c20c999dc9edd573c9cfb516865907f6f5fc0c4176cc1a159e523ae9d67e771899bd5071f68bb97197c20a35d35491cf1bd460a1a63e0dfbab414086dcb8434b36a94c36ba403588cf026179609cf38d68cfef94742a34caf07fe0da6c1bec9af700b26ea1db810baf7ff8a2f0fb26073ee41c6a6657e4ddb0b766204c4c65fbee3a329f4d885d9e170116cce4e441ede7a02a6345d46c6580135739b4fd9ecfb2fd5f861787cfdccc5fe1334bfdc36210588a8e655e14fcc6c8df2d89c88b162e22297b43cde44e2dd6c07170357733a3814e08c55032a592a85fde5e9b16535444dad3c73ada77dade134fc90b8ae3dafd722807c8011ef4a94b3e8584c00dc36174d234c57381be86cd7cb79e816d3997170a2524fde460a8ab814bc8d41287a2d178b35434448c8e4cfd9291fcf83e58fc56d86d4ce30882833320ebc003c5cc6230f4b8847ab175311f43832537ad181734181c08dff18f6eb0fd689bcf074817883f64b3cba0c01379a673268837749a7c05bc3b8a1696b67561ced492c7cc8d3a6605434a47477581927c8d49b07bd0ad50a3104b2bff4687688db972dc6737d372d2c9c983ff27e4d80b92ab8cdf30170eb298d2756b30f79ccc0049d9e71632b1b32be022d0a08f4948be36673d9f7d88f2ab23b89b345ae959906fff400eded03875f39faab7127233dd8717b3a705a8ec6208aca66837a703939f26b72331482b7e1191ba8db3cc32be857b5db7d1216942b348975288f619214b30dbf62e84bc5ca520c45c145b44201b1d7c420306281f9c7017093c09c8515f6906c0cc776ac2d64d8f92e010937f779e6c9853415c087383553bbe8ab8ac29ef3daa83e0ee986e14b070d035b996725a564429f630acdbd4ef87a1db09b71fb4414a21ce76123f647ccea1598407d21bc5fe38d3b16277bca8c5d89dc9bfec63d57d02d851666a223907c84135b23685949340fc4b3e5af27492884a20b24536fca8eef0e41744fa9ee87d16972729d6e53241988e10ff09ee01acb9dbbe91fed3463e8fd5bec61e50513d2260b543c23653e0cdfc576f3f5bdda7cebe6d734e14b173860fe334ed7e3938d0793216ec646029accc668c67a89c8167f7b30e69cbd1b668c775c49251e087461cf229e0f9afb65d38460aebc5fc4cf75a0d149117bf61a4c9c1dd4e4a45700aa1d3d74ec9be996350f988a372d3d7e2cc5a71247b46d6e20f9e59f8d0cb9c2e745698d356c5d5813fef4f499d6af61b03032ec65f5b479553d1a267f08763795726c71139d0943f0a7feeeba3194d1218dbde799f4531c629c50d90efd4849a616f131c0a4e3e3b4aad86e143742a989bd8aa19858d2814e0356047967de595fafa6877332b66695feec06932d05a2240296b693c8a3eabae29519214261146ac3a427b38230922b129de48ee646ca4c601c9285f69737fb56c09dcd221f835210dbfee0395e90e55e2816a152024073a2df0199da0b7720c738bdcdd6c536f9406fe007f85960e10f5aa63779b5cfe45be0291e7a3cd7299bf2628bbd0538aea5252018569d41fa58e3b563297e37198a1c1211a5931383a01e090d9391b41576568353379cce2eea6a959bcd31a6d0fd8f51cfc5bcdd919636c966cb821f4f523c706eac5dbaa90f349e3409c5bf18b4d93e31833953b78c1979da46a784c792754423df2eea1edae268f27a8dc4622f5ab17bfe13d9dacf5128df7f41d4e698f41fd0d8d5236e6ad29b161124f821bf2dd75961762618b786c2eaf896afdf3f4fcf3189199d73f2dd274582bceb3be997ab8f12998ed9d9ee5b498f62654a69ec2ae05ac4c02750049ab699da51cfb00687ef245d2d92b029ae6dfe719371371f9dcb8be203d9df49a08cdd2486e54c650c74b7018a1c63e0e7c068277178e256460c3865747d6ab61c9385200e7c95aebb87bc9f7904ae198d10978ee4966697ffa54bc023320d492780e02e5139cb7f2ca9dba02f4599b11b89b4c583c27c830ea745ce7ffb4a23acf35efa5b03dc42d59ceaea691f3d9cea38e196f68bf50bf76169f313eef6f294eb7c8139eed09ff597774a496117110f7a7a52d42f871dffa2f3bf76957c9436e4331058e97f065137bc371a901bdeba5a0b5d4b0d84a3ac70c36e893531b5a4621851e3d2933dce9eb234854ccfee7c2ee6cb77abb88bb155a6ffebd5ef426dced57e8b34ba3ad7832e717862152a0fcb0aeba8823c411c6637ddbab380a9146e74f157b456ea55ebdf9bcc00a03e98a6f94be77e2920e9626e2adfa4702d789d26108f4f105f23075135abc5467de298e22e9e1c51b891e922c7afc63154d395ad9ca93496445ba613e2adda63204588df54fa2f6095f9b2e2aab68554c053c29653357e6f80a0626032f48ca6b5f2dee62bb19177d526db3a95655804d610583f8424657cc213c9adc9b2c851b58ed0f5ce2e0155d17b8735c28b62da95a7c40cd17a10c8ded6030f67bc2fc1b23e3f9243213ed14b1e6608cbe1f272464728cfe81a1249efc4eb025cc08d73eb8c46dbfbc19c7ddfd8ccb98bb726bb185c85027c41a24a091ed100585aa0ec38db61dc6a4c7ff676c49ce591b7ef8cb2b61de06bafe28d1f355362ac9b63352fb28f274d5b9565c07a714d13f2b2b0a68a1c9044e69ec70258a29d3f66fef007f08391e934219f3581a0ee402bb1c3f873d6f4463929ef87151fbb9de98a79f8925f2f9974b180555da0b1fd1c8d13ff40a40f3b80cf96ecd065a79d06888e0cc9ecf067d9e198892f6f348c8b6be82e8fc1b104198247819841163db7b415f737d11c698b791cb8415f27d5fd1a014d5105bee3184eba83f921f35e72daac3d9941edf555eda16025d5d13211fd77fb23ed0ecb5929fb20da1b54064b44c0216013a062222b49ae407274958ba9f6417b6df1ee9e12197de3f4b3c20d31ca697fed0cc44c2feb80e40218335b2bf4322e3a895111a5df6728bf30e51bc34bdb9669bd6ba4c673144e4290925ef9062ffa6b456ff604aa7eb9965b974b0549e55ceb679ff85802b8df50654b82f679997b5736b58d291807e25520dfd90fb6ef9ec236711bffcb7a3ad7f6ba1db1d6d7e8351e426bb2ebffc64ce5e12a279a802366c0db559027cf84f5c9d53cc2ab09e3da5b2de91c734b7224a5239b69f8a956e9ca8e513e58b6eb7ccd9a206286ddd7b1cb2c37b0db8688a4093c0989f537c1b45401b8a53fab88da9148493402c044895799e3ce94734b0a1501a3eea3b7110c929ed51a0f05f81fec98da8b74713cdc14c3fc3fa415c9c4c765853f1a6b7ed8d4791047ad9c9151c9ac066c9d09ef3d1ae4808273f391f78eccdddf81d3f58bd3eed7845b9243e64c456196479ead7aec5db9b456759bcf6eaba43ffe256216913ab5d52aee391ea13e9828ba078e70c0e3194a962505f69b5deb58385e8f3c56c29c78127157526e317354562dc779f4bdb8d0e62ed4c8ca89b1cb65e18d497b09bfbf91b2a1868e3737c9f5578277537fc9714a6c53bc9378e4cac16fa37ff7e9df7c53320d789f5070a455e5c660c352957a871c6f54bc3025d0c7708f3dd80c2d04dc3b8aad5cb6281e9a456e635dbe1e315ff42e75053d9b379cb9741cd42c2ef112ff7566e407912faf7dffac2026b64e7cfcbe7ce627be4449553a9a9332e7991443c6fcb46c4e072b9d83277b81fe1a72c3699cb4180fa7ae51c186d16fedb6127d5119587cf3d4a37155cb4dc57579b118ec247bfc963039c108061f5ff728e014b28127946cc179c4da2031fe5d3cb13cd527aa21d0b3ce4a3a3ddd6256b6ee869842e9985ccb3e54f02ffc1a0c12fec97cabb2e1b306284a7d6df906de5d3c39b8fdde23047341370f7922d4b41039ccfc555f486338f843bc8379c934df4907a972ef49a50d8043483bc0d78ad6ae492eb632fb06bf168a6720077f6a7fb6c314f1c8cc6ee1e8cf3a4a03410e70c6162a23c150c7da6330ee64bba23b58253c598419a8fb4ff5589d2cb328fca2b2102b98535b720615ed05e4eb4758da2398c4dbbe87a8e93a7e87ed0af4f25feebfba1e7195bfeda4cbad2ff81240eff0c157d325063ae9b21719d20ee7f1fce780cecc1d47da53abddaf33e95d756a176db713cf73387e2db7919707a711b57677ed79f1c5e66b23127cf36a317ad1d7e7eba52ef4c0f7cbf5321ed2b0cd6a60f39b76aa6c55300d159fbc8c3ac4879d70d24009a28882eb8fce680939e0b5b88e8949259a0c74b550b05680a088a0c3dc5ff19bd3f5706cb426669dc7b7a1a7b6f59d03a5313303fed6486d3f0d687a38de3cc2de2b15f859c3e3bcb3b686da8757c1374e6c5964fb6d17d61c1ceb31904117de7623d342df9c09718541119cc160a914e1d5f28c88bf9352df9bb347195306b8743e1ab2d82caac5c70e56212f0fea09429a08fd0706348fa38f1558d26f672d4d14c2d9e415a5d0e7015f66e426cd836f2fdde7b7663bd80a0bf86b1cbdcc27761466fbcb36e15d7cea1d9fbd32edd93ebfe62d9781e28cd6f23b578e2b9c3fd2ba054178c2f8ab29e2854aaaa9e789d95c2bf4c254b4f0903001b00823e79caab894c5720e673f56e404bfb877c82872bb0eed7263dc3fb96abca3bdba817d0538310290c98419849c60950affe4a6b84d37ec5f58f5815efa12fb524798af56c696e435370fa8c723947c7d5e5daaee86507bd908082a67b868867d66f7c5b4698802708fd0a2d00234b1fd3d3c50309568711d4be1aa831d05061c94231cb88a112c8e6cb4c2026fc252b39100ab2d384e54b730b137a54d018e5960ef4d0130cf6231c36e1910755170c77e0fa67b71d71500b390062ce8511b685a1b8a72ff43523d97fc56f23000c820fb97be4b031b3e491e9ba13edffd4dd63d9567e718ead717f7e9f71dec372451ee22887b6eb0e050fa70d04a4bcb9b15d94479c1fd80586ed487472e6532ace0626cb7f4f11c4046d76c6d107db8a97dd61431dae824e18299b43bdb3c2cc4a721ade6a007b7b5624357e265595cd113552c9525ee575f39bd2f6121884b378d48d50af813e8f1a98418061d670aaf2a9598c798f0e4a834056f964318b4f0f305b0ee6283e960140392c5022d3d0c73303fc8b34e355844833ad01b5c1a48db9025bae15946e0b19a7141df339b9650a80ce13b47bdfab75d7ecadfbade89d8c7de3a523dd437600848d990b6db0dbf3d40b79d06a7bf876680770b58eec7ada595578cb1e1c7d4f327a61eb6f928784ca8f8613ea50a25ac54ea7c3c745f78c1207c23fcbf157d7fb15ae6924e995a1bc101dd046c63cc52e2ff9eb21cdebfdb688523fa07771f28f4cba6bd3fe82f80d34379e1d017da5cedcabd0a88b14a6b76e9cb41fec14a72c3230cf4e41311dca7b5479a1c98a8b06bb932b7683893c802c275c9002027115a534509cd421a701892300ef3f07a8ed78bf240186155010609d39f87ce4ed8eaabd15297d0af4fa353b1ccb8a68348f03bc73f7f2d9b8d9db4323b3e430a3f4fbd72ad70e10fbeed6553b7c499ae60f4122a6777075754793d058f326874cfd341f41e82029bf997575015ca5925d75717427c7d6f84bb29ce5bfebf1c2ddcdd793a2e92f63cd5c1d350986009879553724928371c60306c4d0562d8269f6e7f86a8671ed7fe09fb2ba82cf4e955a4fed8426d6039e9f4495b72804cab9e557ae41e8b2840d815bac02627a317792b732a6cfae2789c1c4f222e9f5c02b3f0b60bb02b7e3d70325fe50008d2f69561862fdec58ba68daef3644c0f2233055876f28bcb0f7ef78b41b9233a39b6557540c134c6bacf8a333d6415ec8a5334e1baa0e0cda3b0050e96091a34abd5c32475dde1b426a334f8911e561ad650f0e2e53853423054ae9810ea5b8395588941186bf4e497768c255c9526b800e52ea7d58b3f83be564811f01564aacf0535d7dbcca5ab2ea51f5e4ee7e9c0d1c151ab75bfdef0f2cb7ff43a6f2801ee36b4b9aedaf54caf49a829cc45117a00a6d0dd079e50893d6197e7f68a66c15e3926d8a9a470f6d5350a56ebc1ad174732ed29122588c9051ab1c7c13614398c164b9c255c5657e1e827394e4806bc62030174bd5f1bfb89a125c62b93ec992db0e455ecbecfd09617559bc30de041567c90fda6dfa73c7b124dac044ccd7b2637ca69e5f1bc4c2c703e3e8b635b85624e272362a773bf38eac8499911c0b870d0f7e267fee8cd7172de44dce4b26a7c6ed5831ae5cc8f9f8654520ae4326a7699339ab16b5ef4ea5e8bf4cfeca9978516a8b784b374eebe1aeadf1063f929ba5cfa02e0f6a680d38da0a48fe65910321f0c68d4ce9d99c034dd4a2fc60d887b332bf281db152eb39907ccc6e7b43b794bb7d5ba4ed1905a0e0732f1be980f84fbcccc23ad4e0c551a263dee45c7b1c66193eb787e8ad8d48f7a97edab4f8c008910623e3c524bff9d2213bc26e37c5a6ce24b88c16dbeb80208e72c4ef27358c8567000a4ee1a381aa7cc2d990ac043eadc9ef8626afc5942b42ee4572a89a0f1e5f6aff9a88cd80632455e5c7a40b17f1d73d8ed45707fd4c3b72df429da44b2e80024622421a096a30a9a0181892ff11b164af4f84ddefbc2241600ad833a2d6de7aabeb1a74e5aea47c19e6d63e7c0d205028e446e805653a4daf627e314eb3edb93d0673a63728bbf635730e6e618bdfded5d61159a2cc6fceb2dc7bdb3db7185f920349eaaac446af16c820c42132988b8bbb800ece575b47c14f0e0875440956d22915a11952c059f82a9d4f3aa4f135451a02d176621d1085b030a212f164d5f56f3f707ed963d78407a5d8aef7f2cf1d570a73c6303e9c87b9c79ccbb85feabc318486b8ac06ee1fb90adc90f2721919ca1f3eec41db8a072a85d00c1a3cac6e4369244fa38e69c6e75ec0ef1d30f05f82be2bd575611e42983ca34436bca095e744c19706f2d2b1f6c1c42a28a8129775810ecf0e533630f1571c7be8b49cdc441734ebad2aa65656450e4884e16c2ceed88008fbc8dd4ff9872b5c48fa23931efa13fe93b62d687c3318c83a4f6b005f365f30f5eaca6f0ce38031243445c65fdc1be7ec5109fec0efe4503938a3a0c8ba2deb4500299f748993735cf944020ae13be4c05c126cd074ca414965d008908ad92711e2030653e6443dfee6f3d4b10f5e8ae7c57a86f672b0db659b40d0878170d94118e44e8228a1979d08f94f3c88bc67a66d446c1d12a1e196f138bd386b066a87da434ec4b5debef30d7856e8073a33d7a76ce6be64ec02437897fdc4a11645cce863c6781b831980b2243dd4b36e53f04825bc83bc069acd5ea46deab0cd9916a34a544138835534ab23fd931fb26f0d4e69abe6f9a6bf3e347dc7f9b7679da15a4a37ad2f7d8be7f6e3fe4aaab5e42b4146df266373be42447012cf2b1210e757d179a829594a310b4c4b590ef5ab9be3467596c8e00bd5be0106c0b06da50aac0cb1450ed13fde4a9f3ba7ab6f1587ee6d1a611b169e175b7d625c0b47633081f7b6cd910381850482b879e0e6f37a64bbae739125e502961ea457963ed7b81d6c8136ab488aae71801cbab8af29dbc54fc1d9c761f720a1216f20da811ccd16c093349275798538608b8677b9a52ad956cc3a41820e32e112980df24ae5d75c853f71602dbe48febd55e29f416026276168067f0de10f542fb84ac68566eaa2b2515675be0b2438763d83ab29ce45eb17d8b1c8c0c114093d083839db40184e63b500f3b457064456e3307da9b91053112b90c07b33de3a0e3e0708f4887314480cfecec9e29157466055f10a33062956c4da531fcc59f9cb58a071f9da5f1df761bc0829f9525b80d3ac6ecf8eb04a0b2b58285b1407bc2cd3202a8a76872dded71edd1589f67ee46b574b7434f0ff6396ef8bc229b96ef70148ecc7fb9cbf3e47eff70ccdb5c0b3b2fdc77bb806b7cc2dd0f02195f6d8699fe18c782b386227fd85f1cc7202e20ccb903c5c34f51e46443840c2d24510bfac9da41f0fd4461736dee27b4579f5ee19c859678ac4b1df8b7cb1fd410f3209a10dad99f40286237fcd4f45004a1139a044b8498ad71a5f6820eba8bb6e7e8f18c912d2ccecc072896bc58e853c4f1380a14645a84e51b2b3bf98e78bb11fe8148bc667b1024c0f403d202a353e9be2eb93c1062c4078de3430511bac13085e9f29fe99706e2d71eb38bae9a4c63d2cb85a0a82d91497a3deae27ba3a8040a774fb447ce3aa9bfe38c4fbcb489323fed546945f499c6a297b303e49a5a4a977f44db5c846c0a85bb6ac697e45f92b53782f3020b21c55a85c88553830426b4d19f92a3730804cb4dd8c1160209e29c756b23ef3dd023fcefbede10104186e69e09f88fd60f6fdc57750293134399bc9f5d9e6992017c8328467df1fa224c24aeb969024a099deac706b66a2806d95c94efe6a89a098311d44915659cd69aa710957ff59914cb15acc9bd4435d92843bf7e547888c11ace521a18dde38b8128529c1d4790d24c1afc603f3a488991b9310a43049c264c5db23359351c9a3cbe7bde063dc881be092b89063059ba85d8a57c47b722fef8aa55c8ea3e360428f9df8b61df42fab37be627b98928cee76a2828fc2de8dc97672b7d43a60bba3d61dda693d0b7fa9956984193abfd7ea6ba373174b3c37ce63905efc4b9b5687e01e507d115e9d9749c381564108da740029a9bcef1d6125b6629e3904e4ed3bf4910e69104028acd87cea966629773eaaabfa13bef59dae42e69297f3de5b9a0e1208fc87eaf9deef96dd1181545a69938efbc70612abf2db344c872fc428eb0f4905c8defefbf85304348b10a953f94c28a390b093e715e25fb9014a14111633948a63366fbc13145a0b3421c06f53a7b1a45c093b0be28fdf36fc7baffbbf346abb741d1fdfc68fa1d38f21476f574cc80488b70a8663992f3aee1e60b2a2ce460085725b3c91edc5224ff19a9baab9c6ae191b0831b0ea0397682c583a0e107c7945f7d033f5a11f98b98208cdcc7ad5c20ee5ec59c12b064e4e1fcaeff073eae9d44e7e0bf2d34344845da36fb134a37eb039e71d0a8b69afe1ce6548487a5e373670a2f3fb6596b91dcad415035e39e83c76e833c3b4f86b58b2ce47cb97d902f04188cbe9e227be99b1a1125709f7f7490171289e388a09a2da2c4f709c79cc4bfaebc4089a7e3bbbff4510981f4f117e5e8ac95f9738b236506d80f6536ebe5484bbc8cacb38cc310ca7e974c5d11dd3410f918ea93478a2675eba9f71e1e2f39028289c932f68df5118f54cf5233431d364c6f56106d687ee9414c0bdf1bb4272eec16faa715d729818fa7487e1d8c24bb9b160435ecdca71119609a0e05d827b60918bb43a435cfb96cacd45ff9fd6f6e738641d836e74f11765f68ac45e81452ab0c64f0f0aaef4868692ca95169bd5d8c6f5579732121bb9afafda46e016fef6c749bfd42b669ebc62fbc99b4448dc611858a64a8b9cd2192731b681a495678ce4fc6bf85f15be7148fa98a863513c4e8d2cfd8a4786b2b0a37e62eaf5e280a5ac57a5366a5c463ef10b9b3d5cd17943786ed1cd370140f4f8a2408bdd3a1575dfd33449cd4c1b5479609de5f1787a0c7cf3e45cc46eb4c32ead5d33b3db7ecf33a996e508af8dc268725c107eb4d3e391c2e0019ef539df631b0da9e1802e3d07da7e4cce69d61afe548912327701ce3b1b2a813f19e001f8e698e68960092e6067931cd809b5c6b4ce71677fb2f7cc2c2bba18a302cff2fccd23e6a815f2646c80788335abb67f9f19c4cfd18af1424d2ffe25b15efaed5023848378aa2fad0c09cfadbc3c1bff38c3f8add7e1320486bbc89cc3694ae101f32bea26ddf52a5e1ea4aeaff6aebfb1e1a4aabf1c91f049c632ed57e7d9410d0e823b01cf84f46ef73561286786c1f0e87d86301485bb772024bef67c93a4d467e1ec24a227eb80e782fbc9d8e1c9369bc04f4ad13874c4920c7a4e5fd44cd811243aafaa7937d7f176bd20de91e41a80985aee13ee4d9cf776519bad2377a26ec35d4f6bda3240a67da315c9bc48f528222cb607381ccd37ad9b566a38011083ffc433d070eb12485c4aa55b3fe871b0b9704a7aa46adf36613701920bef1fb71f9795f7f273b87e9f205d6fba74ac44d6084fef0c0c79a9ee6ff555b016638e51569684c7e9a3d13d3a6337bd0137dbd8875a6d811c8e98d33487865a156bb93cb1a86137ddcf921e106208f28ae157e35042640d73f15df800c54d4d9dd78cac769bee700a05dffc269ce29dbc03a4ef979374514bc61a8271045a50bb5d5cfa7bf2ef3dce74a903fb6dd7f8942a7e43b185aa8f3dfa390c1f47dead53b021dd1d29a12d2e08c00b6e40191cac476ffcbef92e6ac22562bc0f424f826792b5485e43708b0ec78f6a61e52dc6810ad81ca8b73a82f20359d74833835222dd353cf481c8ceaf0447d941539e1f3b6a12c367c01c28ce8b4f9c062d81effe2280e20d266589c3c8142eb263dd7907899e28642b4ba10f64f5e4f0dbe0c8253c31553efd0e8f09371bb79883d6fb868967ec869f8f4c9c35e1c62f8c78c14902cb89c3bd48cb93244ce1781b750e51c025c592c1983a1e1b5c2fb2667c03c6d8d0c044fa4e7d252182357a823ef590196d2be4b1f8e994b996d3bdd431ff603e6c956fc986a59f16cbc28690253f3a84e8e7a2b4557a2c457c3d442bbcc52eef637572a17101349f68b434fc7a08f78499fc15cc58907eec415859bcff419a3b824b60661b2f14b7734c0559e86e5b80fb83e299e0766b70361ad7ae6210c19a1b7e26d7d138cb65f413b5356204c46d6ef36f91329855f8c0bd041d91a4a9d8249d4302f901bbdd3696eb81d6ecd9a79a5621a5d866dc1175d9a9dc20d47922c6add36fb5fa24df5c1687237de27486e8f501851d7c1569ed4c08742972e124a097c661e5beb161695929e2401c79e7cd49e2d082da3ed04e401d7cee4a7ddba81029007e931e2d9621f672f832fb0c60d68fef7ba411c4a6f0d0700be2d0a092e7a377277de649c698c8f99cc7050e23ebd4820493f3cbe76be637f8023c8836ca6a3b62255ebfd0fccfe7792d8ae16cf8b03b1ce82ebb9add6beeb3dafcd97ab2370740ba7e5e71330845ab4e9e7daa3a58325e74c4aab5c587eaba0527b0a6f240d7263c523d48532f20378b3a6687c3bb0ef64742fe43bc8124b06001dd565dc236b3137109ae96af2ee6c4dd409879c11b76e5b581df40dc0d11951e9acc86b99a416b7e6920cc67f2ca783f2c63f9b5038c4869ec68823ea13a7e6052805705cfa75bfe7d184bec2197b9efc31fd1b876cae8ed1d46ee850e51134ba63524df94327e5b16840d8f68e74464c93cfbc64aace6ace0755dc2afae946cda1fc3496a1e88f485841b05abf307a0c2a73f6b166c1248bc9f1a796aefb714025869ad6d1e72075ed436ecc9d9865e1d857eb8c914b9c9671c8bff33e73a7917e0eff939c6f25ffba07ebd9d9384175846fde9b99067450616275d3eee6c99d9bf8a0f99a504cd0303b981bb04488f3bb036b259e74480bf1332393a33f550baf2b4194c2de60c23f88b079599f255927fa65021e97f63b64fb95185bdfff9119693fc5ab998f6d9a00f9081c360e49f55c57eebf0f50feff983b640a6547af1931b967d915db39782bf6f950763006100eceb6761f416e5c3e7ca06ac6e71e789b2d71e5d29b63b802254800bba303bc8eee9d1385580cde8952101e201a09d9d607e6d38b7a012a47f217bb9d2d5b758b6905923046c47b5a569721dbe0d7d287d760b570c4b4763bbd3e5fc2c3140d45dc6cf17e0387ebc5934669d23bb3de377682b2b97ffba5e123e1b8d77417739f9a27df2ddd3d0b53cdd6a849abd1676933d7eed1c0b22623de842f89093310e3814d422e0043bed77fb1cd21fd5eec4e0558506c9bf38beb059f6f86dcf3132033b61451a9f103190931a2d88191aabc22a96de279cfb1434afb959c07274922f3de3717ad23f25add0c26bbb7826167eb8376141aac18ecf7b164018d116ffcc51a41145c8632a3bda1c05003a50238415cdc475ce941150ccb063ee178e7258afe9020e1072653e8c2e83ff63fda6e5ce2aa5d1b804bf0b95e1316308671ba5ad7d3d7a97a543c48fcf2bac8f5833af9f9a5d16ca2b3987e85b24ef71ade239f151a7540516d5e74148e6cb13032d72493ded5a8289cf010c147ca0d978ea3b614356c4ee74b81d92fa6e88142da23c18f498f215d6f61ccc43737c1831f47d90c325c01d276a6ff4961003176b4972c194be3c8eb331327e93f59c8010daf12eb00662f87ff1f1edb1676210e47ed12b9af234d580a79fe1b88682a94525e4d6dab7bbd2f0c9c0d618051b9098a13fb2967ecff64cd679b7679fafe9e65c8f3cc9ab92d32b01a3684c74aa151eaec1b2e7c324cd0ef95ff305683df46160ab2177010682b9d623996f414133b7a47241afa932a8f2aaef1e71a27967dd7c29a259155b84643e13884f58bd530f1784866e866c26119023f69000c25597da5b82834ed9d95499faa45367488ffabba35cf1a3845575773a08ac8679c8ac25fe3ceb206f71e63ee66fb8be6445fa8ae888a2fb736f659f2aa0d2f61a9d6f63e46bb23c7a28dfccaf41c31e66dc2cfd679c4f9407e22941e2afaaad138a876214086674ad4ad06db4ea26fc56e0bc9d0f15acb6e12f1e211cd7c798a3501cfa67ddf5b9f6362fea32b04ed88ebeab4ab230455043b9eb1c5586f3935d120dbfc96fdd93066cea2765ebf0332380383fff8d2037f41ffcdae059cbb90e9b5ee6a1c015e14bc99f14e798abd74ae6075f1af84d7fac8b3d37598fb4fe9fbdfe5689d1cf8674e5039157fcb0698de57bb4059fb35b5c4516b1ca7fbce564527529d10c191dbbe041de448a4ea1b813eef3ab7064a5bc8848eedf7189a26b2723fef1b5a99415d97ddf4a08773b6e339446c6d68b862d805dec0d32468bfa77d36fb2e0f3e015016b6709a608a2977832c85b9bfa3cd524df608a50a4460723254a90f38922e687f52471a4c370da07a79bbf192382364fd81fca3f9b27ef2dcb4ed8fbd50dd993cedb58374d532d17298214ccef3042db7f0e5ebc7451013475affcd04d1396c17090277593a7ae3614ae7a12172a107168854a813153d8312a6f290966d84a389829684d224e88c41bab0f98b0a8a249061efa37de28018bd38126e1ba90f61736ee8be8a2ea128094ec5804bd33a10759f0421849196037a30142f1de77bd28cd2563edd3da75a761fd73b4dc5aef1175a3769383590778337712df93e46b832ae40f63490534afe946b46a573af9f13a298377ccc301ac86cc3f4bcbdcc168f381881e1773f120567f527570ed15a8c6fb18f757f2dd6d008aa3d41f2deaaa01eaf24b59ad53820b91ff34d23167457b5847d9af62fa105357f298c7da198c3e96851cdcbc9bada59e4ab40d3c0951d198ea00c3908c56ef5174e14c84ac08dfe91210f2de94fc3312c75acb9acd8c2a00af89313e675dc24b377bdb382049507af6a793857ac651e224cfe2ab7fb5af5863cf3fb89f73a33443d5833eb71994a7b1e1b340f32fc53e8c5549a74780c4830549fbd9d1f63a213bcf4bec8c57a05fa79c969aad1c1082bdea9b188dc619205ce98b245c5889766670d70b08726b2150787f9ffcbb65642262dc4053e4b8364cccc66aceda35675ae213f5d2901b2b73cae1c9afb67260f0bafd2f84719b0dd08e1ecbc87e7c413be6c660b4fd0a25ac5a6cc84f2ba6e329786ad82eb7206e39acc2c07e7c18b1ad50e2f3619107bac81bcad6ad8fb6ba61fa5443fe849167e7c27d13ae8223a0ed9b579796a4372387a0eb0b1dc03119255b626053a360bdee8b997e84d4afa7c8ee602e53c3dbc3496466496e1e9d8fcdc0f2f0ce552d86634bc1a465f111e5853d87e67aadd2e9fbbf8ca2eb6c91b55db61ddd1d334ee4699138194c554f325cfe22972a2a471695f18714ed4faa4a36b3c02dd541aaa0d747cd49fa256690e4ee12ccf4490e4ad84951aa76a9b910fc9c17fe6c7a7084cf14d661f4f9c9b7778472a99ee42b95c0b05774b2fce073e9602c9261029e7d0e0bd08aa5c115c06eaad10f31bf4248086e25a2a56393129088dcc02d34e2382caee1b83cc1cdd2f17389141692ba999a1510128ecaea5405273098e5472d108d8e65b8f3b6f67376088d825fed8b7f3fe8d180f568e7dfe5cb2dbf07d8670778271cc27c1df3fd9cca6abc3a98196e5a922afc640917fc1f19a9a48f7a772b6cef6c6e51305977034ba8cca02cbfc1c2ac9acf21a02fbcd97479768f42786941326c9149c7eaa9dfdc1bb241a0805bc78fc57a2952f8896442d6a69982f9d02a7dcf1eac840eecc11ee61eec10c7218cf19d9c2c26c7cf95e78ab2a18a9511311636069307891e7cb88a9f3e49c3289cef0513bc643d16d0f447acc55323f283750fd2537fa2d0189c57a38731dfbc4787578f317444abfcc606b6e61e10296473457e230c24336e44e6a19248b848881cc6da9f06b5b1538a3ba8760bcdac4d7f95b517e5bc12afd2f67425cb2b267a4ab97c31cb19ce9eee1b5788f0e91fa9250cfcd092fdc294507396923207139704dd3f0f9b0c1b0fa92bd7a1cf978453393013bd56b6041c5b300da1e38751aef1f47fff0469d2206a4df1785398e5bb79be613147621eb92dad92aaa1d23f4b37c042e5a0dfcf200c7de92a21d2e9c90714d8e138cc2822c65f16b2e8c82f2573187d66ef4e1a9e0de534904f2837d208fe8aab42c7ef4c7f5971418caf4280e2a98b7632bb5fdabb96b313d36cecaf022b7d9d3aa845b475c0c41a64fb244fe14cd5c07502e7ead5f83b730fbd6c87f1a5779e668e3db8e371760fe6b5c87e54a367a574c3b99d8a81030ea6711ca6de76c7e24b3ac3d2b23dc8691613aaa878338a9ae154071dff797c5d385fb4a0ddcd8b4efefc795b4cd2d9d37632f2084b61a243245f24a34b08fbfaed18ca2d4b5abec1990f8144dceb923eec16dc46ca85ed4062ff46271d85770e672a2d192adae02023ebee9664904f7c90e617d390947a7bbc34eb00212c63ec2c42c13bcfaed0b059d94d96c469da7250e782908cce5a0bf0c063b530d2d6c1dbce29716cd850d6a1ddd391e1c2828b6dbecf82288556b23cf67ee41fdc4f38a8858d0b2f112551c27823546f862dc5c60171455aa4a03f5173a5b046a968682ba0553ef8b9777315408a42056fc857ee49a3defd683b14762dd2a1a349839e65ea5bec53c729ad093e334526a9b64df952abaf71c6238485a555458c89f5f4b7753a334b6925f22ba5608a5adec6121463f2d8c9e5b4923202d8a97b966c278e205639fa511c4f72c209a33d4cf6e78a5465d90b6c3195912c29349398517424626b645be0e81ed2e3c6dc1b99f1a78a789a240a3d8a15442f70d285d89edd8787785f5dda367f64c9957bae68b96f03048889ac0eb2a51666e198b77c2525ae6d27d412ce8021228ac598f3bef7dce9ebf31b032abc50131be8082ece720cafa4d4a0292c944e5b593322e533c9c05c931f3c52c2ddfbc4539adc74e01fd61c719ed5ebabb335bf6be8fae63224edd60d04ef5cd8749cbb1f4037cd124b338cdf009fddc0951cc3094e51ef2b79943ae3583a92ab9de03231cae763610edd8d8f432615a3481b1ea868122a9aa06860649483c0015b69bd2065eb694f887ead3eaa29bef13f86e9c1ca23d846d4cd118ed198b34c00f0340d92621f66936aa65f8358bdd6ef3751b3f1de43b96ef7f2ef91c93b6427b44609edecf4b7cb2bcc2efe5f125bc1ec447acfe9ff923dc14fa26b003019c70d7d18b48c3310ac8e22ce2c32c61b1f1ab659bca6d02f6640f4f3f9cbf4b591f34ddfd90c3feddf97373971f95d9e63faf92cffb498de854e0b029343a838b3e56246eaddfe6e9ce241855977f1cb0ad95371118bc231a1b11e9f48da2a007a1bbda9fd30c75bcecb08db3bfe4778cb85ab33f7a9dc2e01193002f4899b38c97a936a87aa466ebb21c4c9bf75ef08231493d76142c72b39f88fd8fbefd580154fb0c020c61e7b774c93f20948903462d8159d6b22de56b60f9dc325f6d0eaff800b16008cef50c8bdbb2a1a6c34a01a87ac5e4898d540c8c16873a2972f0eb0fcf7ff7c057a2eb7db318da7f42ae8aff8c4fffd6b573bd0f8583908039091ece267ba0b00f10f0189e5a259898b0c134cc235f722b074cba41ae2d8c4841289e0eba6c9620b44036ae133cd3780968f89302bab6004c6a130768d2c7486c188b89050732bba207b46a3a31e51bd9f66a33771c738dd136bfae35f5833e7e939ad34cf6f5be696ac544d50896eaf96f0322a1dac42b1297ac67ebeabebf4fdc7f0167d092842b203b4e0aa38558eba1cc7b498865d3e21793adfb49114e7fc6c655560e05ceb0b13136a6574e14e1edb23cfe7619794b366c23664ecbdd80f35697ddd24cf8d2e0c8a7a50d9007a19c609294ac70df450f68015db6cb6accfcdfc0dba386f6c71385400318c21396cf74e4cc95c219352a15fcbda656b646370c5fd3f124f942155e1ffed35b098669677d76eba7a93a015f5d9954fa0adc3d34f2f4b99fab8563e7af73056af1e27e8f41e8d0f23285da3027f496d0fb653f7206bd98b50fbf76b280fb9b7faf681022a8aa558857793c17096bd995216f10ee82ff6e8558d9d9aa8ffc060b4a07d7fd7837f5ad5af14e03feac52c5c693900baa040349fb662514d0f2d9da6985654ef542fb682ad4ff7588808745a79171d544a48ddfed98586d9b15ac3ee1233aabebe1e1d038f812a1317ffda3f88fdc0e968b5955498426c8115bb2b3fdf40b3fb108372c3cab8d839222a3ddc94ed7fd9161060295df476c4e74bca499c5fda6383e572832e425bc517e36e97140525a336327c8f16edfc23955c018ec4bf0da5026aa4088709f400c598893f5e89a189eb6c7b8268ec114c932fe2fbcb34b36cfe1d12942815c67f49033d12f95bd89038533beeae62cc2505f52556bae3b3cb89eaac18cdd0c03fea04215ae43458380306605b5235a2189d8e81e252ab85d8175faf27ea5d945c20217ed4b7a2cb63145e700aa338b3f8566cc1d542b846646ca502a656f283efbfae30511863fd3ea677677a2bb8e3c6eefdb0b145ba2c5f42556fe5dc17cb0b35dfc0ae4f829a982e3645206483ebff8869f996545fe39565e29a05d7d9e285467dbc621fd9bdd18027025db74b7d1b6d3cacabceeb51da8f476a80aa9be9b19c55c2dfa4f981c8c0f1373480d1e6a643aa380dc317e9decb632d7c541c3339ef39735a01af7a43500a7ccf250fedd000288fb651ff158ef4ead3fdd75479741fa687887edf05492fbf4c36ca1603008555ffc317fb6fe5df0f2ffe67a3158bcc81667e593f4aaabae605e18e3c2334cf5e5352e657da5275cde2dc85d1a734f8bff392bc7ca96791df99b6f48e3feb47b6a7f34d10a043cb789dfd5fc1df43796f5c9a7a03fafdf61221c97251ad805026f45e6eeb8a2c2c5f9afa416156506828806280fe86f0142f41876a9b126d11d3c891c494acc046f9188dd8e40edb71e8082f5e3122152faec87a5ddc3acd6946209c70edad638dd49d73be015093591e7f2786ed5a4b414ace50b8d2a541f17de069ab0fb26a41e408c44ebc53a0665a871274f866c22146ed8d82bf329c6daac78a52407a0999c21e38eb94180cff546c1df73ebcfc2944a6bcd212004f97fc2ae4db5268ff23a144885e823cfaf3bd556c40557fac31ee423a50967d13ba4960d0228db6b678fd9e391ac01fc94c6c1c9abc6d80e16b5a517fa4a862a86e021ed5bc6b525ca50fdea6e37458042002c743b0107ecf02b6ac837ea5cd6c5fea2bf352fe9cd4769d73ef8bf390c1b12046b8a8b454eafbb3a7b457cf0720438b7aa849bfcbc6cffb12230a0a2cce887f1b6c4c4d9b3864a8d839bf5e75bdade3a0230e53e7739c5dfc19851cff520bc1826b988102c5298e698aadacd37804f59b4e0f61407373437f60a79e2bc67c9f0184a2ee055553d24120e379eff269abf79f90f477c3a630be7b7bcd2c2774454df0c0b2ff460f3dc0406d0e4147187f23d66e66761f2cbe9c22a2404945aa172a8dcc634454831735719a2bbd322f583549fc8c0bdcd3ade5b49956532056d381aaea2617a3f48b4f76bd7e3129f75216118f79512a5b6b705381d300333e516595a528b37c81f5cdee7bfa5bf39a860fb0806e7d4ea0252cdd7ac448956d79c96d000cb65b3b4c05fe4de0c5d7829235afefcc5fb4f3d693134a53c9dee8f9f9f7c6584edfd3ad8447ef01e026cb92aa255993a590b73118c8df5625f9f192807b67189b64f800f1af4b425f9a38c47cecdd69fe205762b2e85bbd4dcbd39499c755737ddcf8f27c4bcce992711394ffce14a43fd7f191460d0bf6a22385cb1e4a92b62116db90babc79cb15ad8241f7be88e659d9e4ef59a7339ee338fbb4917d81eabdcf26573f279f7ca06046099c65dd78dd5ca1b520fdb349d73594fc3d01f5f7f0e07e3c516dbf977e60019d469d8008133dada766013509692aad2b1aac661cd70b857d5bec9fefa7225d382b475c9e97e565e60d8e1a85db2bdead22c8c03661f20ee5c09d850b642051aa79b7868eda4c4176be09d2fb2c5217e9a4457ab7b1dede5252308659199a443468cb538cca8adb27106a28f6bc9a4cc5be7a92769f8bcf13a23c9771729894c1e560c72c6701e9dc840d3c403d77956e8206421e561b426610ed38fc7eef24f8142239b425106597b8d3278dd373a20131811bf9a68e82eee1197ab8dfe4e60f7490d98fa01280c878cbd7b0f583c43bd415d67777c24b6fb6bdfdcc6600af5cf860a0f0783aa631323c8aa44a21ade3fc5cdb5bd77216d2b954227c45b38a2214ece129bb33512889d520d810e8ec9e8db679a47d17c3fc87c4e27963bf4cd2bdbc462cae07f6d724f1c8d1242eec9e5495be07cef1044620e677d2dba749dab7007f735d93a9bb355a731e9d88d49d173401aee0c43bbed7ffba5c2813e673139a7a4858a50aaff525ff61ee41394f1fe4dcf6f991e338b81860fa46480003a26d6cc6a313e897b5a7c677a1b18944f5e6f9726c0e1ff17f4137689cc778326475ff0be81af8c0279bfc202c9b8b7784f0cc4ae8506f0c25cd67c6b28939da85208393ec742b9ca9461680044279860caebe086dad866548b01944b6c476cbab8b484f584595fb2b9adaf9e9adb4e4a4c4fc7eceac0bbdc10ff62312d8377206290122fbb6af42d4e974a82aa9ea21811aac06b144ead456039ca2188f04077f666d5e4f18e946ad56952f6411db4a22e91956e38ea98be44e048a83e1280e0caeb044c16da93f93b5675a49a0c05f6d110764ca6d18afef4db07818f9b84b927859ca33937071dce151c043c111d9a07fdee6ea51c072390034c9bdeeaa47fae27ecc5ec3e2065dfaf8f53fc036a24d00f442832405f0caaa833ec116c4a2b6d7a3ea3cd044a00a4b70c1257424776f89c328d0b2475690c6c1359df432038d99b5fb23e7439f1897e98c02516a3f00ad32b63199c017339c6091c52d00b4edfb2f19f994b5fc780027126be061dd073353acf6b0484236004a1af20c2165bda11376b73613115fe904ce3a6f39717c7b22058affdc940e49e0798bbdc1ae822104b63ccc34b4a2b4a5c2c655b0bc03721169b1c6aa976d9e90b193c548fc38b393be5ee275be4336769e6aa42e6ca224288c741bc5eb5d518ebb36b4b28395f28ce0f35040ec90ce90c2913163e5debf69bb1f82a6dcbd2ceaafa9cf0fcd4400ec67f48202740681fb6022a5f1c08dfd44eef7f993426d100ec838e9b637116880c4b5ac7542e92586260570d2191bef0bd18db7760bdb176265b29de7380e8402c0c512c6e7c4b68bd1e6a3ed27775210793026797aa5bd5dbdfc414f21b8598bf569cd516dd43b4432819b329cee45c345e015025e51cd134aa540105d6735b72a5006663f0809f5861804c5ba02090531d8f5bfdc99935c7445f0cd2be09b1e7f2a828dc5fdc51a06a77ad192d4b3870b3696f94c2d6fa0389e096c25f595259e93ebfea6f89e673c16e73b8327815515d47d28740858f77eab1c540981562f433cf60e100b32900826601704f3ca2d389812b69fcd2319fd5502a4899823e44db0f74110067807a495b6f28c061d2ed613da70152e307b7783b2b819cdae5b3bb882c0c8a2f425b94b5ca445bdd70d6dfdc272f6eeaa1b8ec23f9ab2f3deb390445427419b8c9c4707a5b76a38bcd9a56ea3229c86871b35843ad5f065de791bbaae5115a0d3a22b3408e569814ea763f8d34a4a360b80fe0095acb358e3da0a4ec0cc7e2f48eb5b056343c414c2f2b3dd900a2e599066fae103127fd007fdc69488299f07c256101b024b76e8cabccc0c931609796dcf98c19e875d68f315065861b2cb077da0137cb75f2ad29135e2163a0a636306c26653c79c244ae1bc95bf304c84a0cbc888ea5105be571a3242701ef0b379190901917c9f59c74a089af13e83bc98109cc4d74a07e0ca57809487442422a1de0bbb2925a673d9a6f7020819dff40238ef845e6d0c0e031c67f4deb8ad669b2cfad589ce9aa723d8d8e337b144606e58af341cd06f22fb21a498f4813056bd39363a7f534c21ce790f3aa047422b8768109d48abae397c4e17a89c5b1ff3118727de6d56f7a09595fa61525204b657f5aa340d87782f350038a3ce0cb97721ae8636941cc4926ab15f0a31a0017e318299e331afbac14bac071d74d01b8212f3aff99ce37e6a2ce59cab996f0b9a2a50aecc078907775ebf4479845331c2d17926d55b7cad2481117d64c2a8164a28e4bc101b92d9d4398b7cf6455b9401f1a0bcaf501e0492309aa70a3e4590b5c8cd67ee51ace4039808a680359274ceb3131a627cc5ef46b822a5301d5604b874a11535bcecdbc40c2427eccc8bc40b3448ed14ec4e185add980868cef413b8117abf41587b69446b655562e405d52e572d362824d1c86254749ba9d17ea16f708b0a6465db96cefa57e0ccd9ebe726b1ef2bdc334c79abebf20d3a66e67a4f3f2a3d6fc60dc7e843372037820c3c5206fe4cca07af3daa37647acdfd50d17b5437f45b7a5f9dfdf4fd6af43d6d43ef3b105d29bf9225a9c90168004af10148dacbf31eba49f87815f1c877ef1f013568a0b7011b9d650f71cf0c75eefabf7bfb66361cf4f7a294194b59aa614940c1077837a01a6ba65781ada2a1b730f5c3882a71009b54485886f107601bb21ae334ccb93264895000830c81070ef102233acbc05d91847cb3005dc16518c47deb7d6d542717e2a92fdfe650bb1c22d2fad1c8c26c283c86f4a4914367fd17a00b289bbacd7ebe6e2cb638c0004df0fa705bac2c9af65c09393f17a00b03b24d5b25435717e2d56e7d814b00edfe6a5d22e854f8679122d8adab75d0f2b5df3c108b71b608e84846f4eec492016ccdfe40b74062fc15cf6904d056b2535468075bc38c6786656ba8910efd2fd4a4502129eeba3a6e256510c8256731c0ad18a0dc4b69813cdae4e7022be15a34870a1d5c8cd2b2473b9e22403caf07106c0c9cdf914f0dfe3c1c1fe41ca916062d5e131027c504dfceea166390b70f48e108256f7cca7d50b086b90618066825b6790e39af8b0be8047e2266fc85c301e23cd1b91a62219bede9e899a8cd7aaf33f9b3916fd9c35cc49a9d1c2abaa880638341ed0263ef5b3fe1ebd06b5b3d12e01ebba2cb47ae4733d4a3a4b97bae6e4ac4f3999ecb4c203879765046a52311020f95143848f8e0a1eebdbe10f7833b40936e3695a31def5bc74417400d45597e72e52006845f04e24ecb4d95a1373b69f04b30146ebcdaa27f1e102752b936e1cf0ae074e9fd1a0195fb7476e938f7e2c917ec140e0269dbc5fdcf29500bcbcb5618df0aef2835ac41fefca280d51131468c82586bee8379d03ca52389a6d0300452192bfab15b9fc9c50854708330b6e7531042faf22155b89226252bad5b3ce2183b9dafa3756a09e23ce6b05f30d1048f65a08e35419ef53aac74d6fa63abeba3481c2b6835dc15f5fa414e3ab881fbfae8dbb80a009f6be751a0a51c931190ccdf2440ee1fcc54b8ce4043d90d9e8e56e26621802348c6afb2f590db40a316bed4501ac056546aab32d0ccd6d4485a711f1b83c74c9ac03140f3fc71362b6712e10e0de928f1b34c7826cbce047d6030b8c805b431104c37814023bd6b2a007e8206d81ac6d2f5623678aff9e467eaf1f0ef555f6507b43d59e48ff24b14b4e022e5cf795c4c84887cfd0c4f129a3dfd6bdb3f98da93eba9f404e45f31b66033b7b79f5fd35d6ee8ec95c9078a31f9d7c50bb5ecb1a3da93c5a160645c7c8c2e5430e858b218acd2e9336edd981a7ff813a598e8fbb23dc298ab40221484b1c074def10beb70f39d51d71e83bd4746e731d9bc1043933597cbc86af2b26644ba2a4f8ee3bc444140a2d3b208963c63e020ef69eeaeb912a0baa48724594c6805fdb98e6e9de265cae550620778387a48899d337957b722158a2d2fa1eb9739e466ef78f7057f4fef156202bf0ed2fb690cf64def4849080c5679838f80be3e3e50bda49fb4849df623533687fcbf42b39bc8dd0815fc527261b3e1d2b4e80a6b4f2f48e5fa30fd49a305ed179f329ceb159eb640110c1da06603e54fdebe48c931c06d7cd1f48f1f183628bed66a1832a7a2e6c23eb4c7383b7bd23f91185df28031f756fa8f284500670390cc24e1122704c0f9b4c3419b7aabe237c196a8719bff50d7ac053644dfd96240bd14f5ebd71719614bb5339e5475d2b8a30d8b181b51d92f6785fcd98942ea1b5cbaab45d53af55b036186abcd5363811e23b1901e2d5668318601d120c6555ec40e73e8f45038897a879da857b5d0b8b2104a25da8084871c6ab968607c756896f1f122b332a7e44be3ffa3f012b319bb78254235d200d978c0ba246e00f3c44a3d295399bd9ccdcc385bb51d259af310b4734473db012eed66282ee277588211a32d3692ca564a6b595367cd23a92573441251262a210c2fc75cac78432a16c727464a2edce7588d470849203b13aeaa25355899e579eee90b017d9c6c0c56bb4914239279cfaa5896c80f9d130ff1152ad43d602136c835560854be98c8c0540d5a72b829d052ba92bca4dcf4d9f48832bcb33f62a396f113bf0d0db340eef0a2784672ffa3d71fda27cb842c3318ebd456d41cd8d24b4510a51fcea83a65ecca131335a80573bdf558ced5c0369045b2984a4110a031611156686dae224d4339196a90369b17c69570d1afc07646591850446749a6d108d2e9ae96c021e1be5bd591f2f5d62d5e85baaaf0589476bc5473a2c905593ef4820758070907b1c1a1122be7f6cad640974050626e3d4939e4e81acab794045171460dee07b101e10cd54fa35414e32f2b6fce386841dc6d8f06b849dbfe7b2840588f571602bc07d6ab0c6af92324e2f8e36fc9e337bfefb3d4ccb8f488992fbf012e096aa03db03d8c4ff36f129be939442bd1276e987d0fd6ab4f1700864b3e42255bc93e24e25731657a0916a9038255ef2b945d296df8766d035af39c9a3be40b8ce289d07411c1492022c8ee0324a12ad796c9c3f67c0ca13795329a016dfa60076a05b88161facf3bc879517f2ec4ab03ad99dc209afc248db66581e7f2dedfd0f5b6de41ad2d9f853f84680d3a5bca45304002479d783f42bc78e5cf8d081705c60bfafef714a0eb4d096d545c76236e84c68097ff62a0f2710a9c160b371bd31955c119d57b23e4e78103048a4807796de64f3eb174c29d576779ea97d1b9bbeca53f8a7f118b7a2a605f7142904197cda018b218b5b011a7991e00226fa2ac49ecd15b3017d49c2798f184eaa7f5bce32aa5561f800af4cda5163c7548296ecebf8b36f8da7659b6d85f4e23e86448be4dc6035d54b54ab829c6423b086cbdf5ad94dd43b212ccf4c66facc3fe4db9b482979da4fc35ec1ebc9e167ebdd2bd8b4c0c944c4f47a02b2c436e1d5637940081f89fd90975209657bd8e32cc39b444537456a570574b3bb9ca97458a5f8da924da2b5c377b8c0bb0e08b0b6218c27e58f0a20d5190e28a70c886d424511e4e15c019739446ad3ec8ba8fc958f5f004be2c3732e6c62258aa8b6082f43019d48cdcb39cad76c4a5e02af56ddc47ab2a4fbf88031ff0deb1a20f504e07594a0c91e194d6afb3d17882ede30e89d51acd924bcf613c4483f21d7f2736802bd723a29cbeba1e0c1cec920403760f6f5227b808e89b4bcefdd03926ef96e3450eb3df8ae94833078f2c2fcc8ff1f09c59945cb2bc57433d9148b71bd4e6bf47f07ec5f709b32b12efe1c25b4b8d58c9c20027de9fff425ab5053b389231e71832312b3e0b444b24faa459c4bce057cfc805ce8498efbd3a86aaba9b6fcb7494d43196cd3a67e6fd72c835b2cae337e6070e7aaf2c97d662b9983f7d99e956e4812661226c476eda0c82b76b69e0c1f8427aeeb77b0ee8891ad6c5945583e014304fd8a12067616cd55e88c48b02810ec8e7f9b91ee937971280dbac797c1540282773c973bb067227543fc0cc43f169b10091c372e1a408bf99f291fee8898f840778b36d24089f13d2e709b72b331d56444929bf16b3472d82e4c43b0b22a83876a38b11887627d77332ab6beb64fbcbdf66734263453b6983e7d07bcd5d58c9bb82aace2f6aeb345ff64d25912375304d9c70cf119b093d0acfa5cee20cfa16ba3aad6e69ffd99cf7b2cc27b0a292f9981fa4a2ab6a17de2021acf20ddccb73e655c59a8bd680556fbb4981fbfcb50b117d211690e3e4e8e1d715478599a9ff4145d474651474e524dbf3e7039d46d1e75c64b0cff146f65849dbd23db8e6104f414bd0c8395fd88dac2f0f00f115dd7622d6cfae44e2e94a99974c32380f57d97865362e401bd9d7786895ebf70fbaec09131644e92c5088f51ecaff35503761ecdee105266b64c28ac3cad35dabcd2f5b21eeeb41661dc5616383ac42ba3a38515814c72ccd288ca109bea6b57143b6d5d8212b984c160de6136328065c7d1b78d977581dcf437c5d11b173032207ff1864315c98400b761e790cae372a544f441a5027065d7fcd05c982b0b4377b5e40f1abea69b423bf6f2dfd773e5893313c41c24ce88cb3f36dd6edb60fed086f6e7f6c42eb59100ba95fcae70bd30c536ad5fc462ea65e382765660b347dc61a23b7d97adaa24f487c30dcbb32670373a6f5fa72a23195606405c32e27ad1c51b5702f7b61f641fb3656b8e772349d93df74e9aa3f175ea3b0395c9341a363152c173bcfecf462b7af63a00acb4e3fc6637fc33e617e668f00519ba3203594e616227f2f79090fbc6702ec6f27b76afb474b54a4b1ed9cf98c65360ef2bf758abb10cb4eb902528c30a4fb3334a9bba165bd74122fed4d4929cd24f2dd5939b12c74c9a0fd1c7a9781a345fe25a6dffde5685fc987f1042b145edd946c42b411a67d617e4a84991f709003ca0fc1e04815f1be81ce8199a0f19476a86c84f22aaf875e9025299587cedc17f68e6c8cfb2b4acdbf8aae7eafa8b5dfabd46e8842bc393791d978757a7e21a8b2559dbfeb4810821384e8c94342e8566f89a18390804887d4cdfb86104aea92ca7a696506b682d5012962c271c645e7a07fdada3b0745da42c21be97d748fc810fab636d98fe653794ae4312799ba9b0f4b1a8b1ed1c57e3c3f4c7d3e94bbdcc2b45cf588f4f37494709916f0bfcef593dc9b26c448394d6f9d555be23db2998862642e182561f56466686eec99c2872733fcc9b83d99a30fce15c43e99e14fc67dc4461ff04ce1f370c362d9e7e136cac43f02f7110b7f32ee237694897f04ee2316fe64dc476ce483961d80bf7f54777df7064b27fb09c70766cd2dc9fa7d6b2727d5b90f22f4ad6631627763f0729d5930c9ee439b9311154f03fda0041a90891bd0c8ec999e93043fb0a875ba5e6687f93bf45e0d69bfb314c4ee957e742fce3a45792fbd9d2bfcad31f6481955b9300a260a730d2e248ea6fc1f13f38767d9626446bf7c8edf3871786a3f32ab14cbe7f88d138767d9b1c514cde1fe5c65359ff62e83183abca13be94aba5b4f27bae9ae3947ef799dde5fe1b18b63d982d68be91dd3cbee1c50057977453496137b77d2b226746ec56a4917b4a633b45513fcbaa76d1520d1ba0e27a690e27782960aa85fc72bd98c7e844e4707d182c875b4964ab69107732941c18c1dfa88020c0fb54229aaffc09fdc02b91fb7798ebf59999b4196aa02bcb742662f2245d84012ef7f46ba532075402f919127e988721834b99526c25a656b0efa38a3563416855abc493c85deb74542cbac892a3ac2458df96daa0b7a49a8cdd16b58bc5791aeb42328b06e89013648da1d352061aea0a025a1b3b0727a492c219d27eac781e656606facda8b71591dc5bced878ec102ea4b8552bff43f6dd3eb06b84225e60852541f99738e50e2039a98fbd3bdee873e68bf920e29c9e0092684fb72c81714f479c56a444283ac63353ab32f99ab68fc27fcaf8ad43ef46adac4ec5c7c98f0381cbabad4ae82f58e38cbf3dc3a666fa16b1a9b4e7a3d96dd454474c005e8174483f804e39452fabfc5e4ddaf5587d8b98dacd4d6afbb7c9e6aca6bbc0f7e155a6a79fecd2b1a8cb549bd79e5fe4a717a148f15a679c895ab20580240d2dbd8dfae5ca7c2d669d1f97fe435b816450f57be587af40f707837d46ee21f53d78dcd8d4ae12d34061b0068213b9dbba8f85e35a1c197cc4af2afebd6d64eca974cdf02d75c4d166d45f645803597e480d669f88264b23059c8817cc9b5460f77c01b86c177abd58c4042c59db5016433264e111bda366ae19b2c1aeca359e896624b41a7ef19dddbdbea1c9e69b85a0db2630d00a9e3d4d3bcd225eff724ca94d7c24a8b21ae2d7d081c84a7b4d6057b7d7539d6b54ef7b73e54bc3baf1474209987a59ae4b1fe71aea8aec7c04047f4ef59396c19787af9575af41e62bc4df97c6ca010c84f1c65f3257b53d26c19b3bb72168fe2a746928417f091d7b128a6f70403a51320bf35082a425573a280d4da047e64f95b327cb036541fa134d6d5c79d4d57a56cf80f1785ea7d381b49dc62060246523df990b9c994b11e2b1e316b4006b125c0498fd268dcced5d57d2afb2f1cc891731dae907aa2410f58bde0ffa1e48e3797b3092ca35e788d4e84b72864eeff7535cee8a155d40a76f996198d1ff39b04b49fb7a5555a16c9d13d47bd8e141d8a405533bf00a52ebeea4b65381341f0ff963f1d773c35e1c5f8e59eee99c4ea6624c334ee1f6aa9691d47d140e439022b282a86319693acb8ff9ae0dba759da7d112d104211665986d2ca17e968e83cd4f8f4c89da6e52b53b646d7d87c7e3e6c494486ce044459045e0fc55a105010705a9303003088e5fb06d14304648c31495b2110e8924ad162519917daaf2dd96f48969876449d999929c75bff7bf5e52d283ed72d5aacae88888888a4e87aeac337fc5af0048a88989a594bc86e193b129c12df0d7244d143097b7be861041fc0e1461b6bcc60e543650b2d98241902c9d5524d60829121342ec8c4281180283b7be0600739d8210be845174444408e37d890810ad23043034648403c60d565c16d5270021e41e0c10e602082270c208025028025ca4e114d76d06106194e608227cc28c3000528e5808396daa10539e260e2a7cb1e7a50610a4b2831830ca33764100316a8208d117c200b2c125012401257a2ece8b0818318dc00055e3801c20fd8c0810c60a0821464e0020ba0420a27e0f1060f5490821380608a2ebeeb301905c1c38e3ae45803062628011a646c7185ef25012ca1c4151d26473222a3206ce0608d30bed8620adf0560844e132647b21682889e1d75b081031ac4c0042540e303647081c514598cd0417224bb3412113212bd3deca8230e1aac11031898a0041f20838b2db0b8628a2194b22c3184115216b0f0e408175a10020e5a58b1002c576005ae584010170ff8d823a4c795c70b16ae2bc87040b4818b8c4b0396bc62085aa41f45424284301976b870b06e88b1215483458368064b061f2f081112a211b910a4059a203600a9e1070e33231f31323031170ccccb4bc87acf0612c0973a6d2a23be6bfc945a3da1c613d440821a2fe8c16a30ec8471a7a04debf70aa0a9b1a99152a3e73d0cc90d5683e406d3924614d4d8410d18de7b5dd0ce42229194d0710263431a17486dbeebb4cac8d6a5a1d37842648934744843e6619dee34c6613a238003e3e2bb7f7404633c6e23191901d0083ab6697fd31db7bd67e9f19e95c77b5616a860d92102fcdecb11c3c1b66dc583c819e79b6dae99e699658e19e68c31bed8e28a299e58e28821ce17df7bedad97de79e58d17de6cb1bdd6da6aa99d56da68a1cd15d75b6dad95d659658d15d64c31bdd4d24a299d54d24821cd13cf3bedac93ce39e58c13ce2cb1bcd2ca2aa99c52ca28a1cc11c71b6dac91c619658c11c60c31bcd0c20a299c50c20821e402b98df4b34a19e97e7e1625666c6a666a0a801500230086d9ccd8cc10c0bac27b9615a8804614b0ac8d9e0da0210134ac40837bef61594f0f96cdd8f4f46059f73d0ac3667a8860ddf7a89a1e244890f08006942798cd90215adeb3aa40053466c842b04608c8781877f2286e05254908a6788f440a819610f451083a11ece6068b35980e365f14f12c18aec4d0c40202044bdc4882453a4ddb54de1fb15d795c705b7744c3f6cf6ae398c6b892d6a54ea50e34fac0933b7e70c60e1eb7c5b184f72c25bc6725e13d0b09ef594778cfbae38dce308dce58c232c27b5611e23883863380c421c38619aaf79ec482c0545aa5b965c77b561d4418021d735872c4312a438bf760c7adb4890b130fbc74808a0e901e7f6f0d32b4973a59d1a4685d476998dfb4d3160ef35bbaeeb46dd974ea8499b8e6409ba7824921a3c87bd9064658a729e136524fadb25269278a0e95294cac9498149133250a0f955229e3e24b7a5be9317e60757101137ce0c8cf09e3f496aefd1c09ea543f5e9fb64ea5755877e2e2b1f05d102ab5691ddfb59d244bfc69e3c17a4a67d9fe596d4aa0d080d6e9cd77272030f034de88bbe08df80ede88cff1463c8f37ea33bc51cfe18d7a7cefc9f0020d0d131f1e0d93ecd13041e2d130e98f86099747c3648a47c3a4018f8689041e0d130c3c1a262278ef0119f53c9a91f66846503c9a51158f66c4001a2133231b298fc6863f1a1ba047637380476383c5a3b111e3d1d878e0d1d8a4f1686c62f0686cde8001080d4d10213c9a20763c9a205678342dbc3c9a16468fa6051d1e4d0ba4f75e901684b8e0438047e3838047e3d3c5a3f1d9c0a3f151e3d1f8b8e0d1f8d4e0d1f8e8e0d1f814e1d1f860e1d198823c1a930e8fc664e4d19870de7b2ecc2024861ea047d343c5a3e9d1e2d1f468e0d1f49cf1687a5af0687a78f0687a90f0de73818699f75a78011bcd30f39e0f1bb6e86fb405f7465b58f1465b5ce08db608c11b6d818237dac28d37da428e37dae2096fc4c5cb1b7141c31b7141df880b9e37e2c2bf1117406fc405166fc40506de880b34de880b19bc11173d78232eea78232e98f0465c48e18db8d0e38d18f0e38d18f003cc0c58e41b6139f2465872de08cbce1b61f1efbd1f40de0f191aec008f06dbe2d160603c1a6c8c47837de0d160277834d80b1e0d6683f71e90179e0d415dde28c88a370afae28d82ca78a3a01abc51901d2d04792f427ec4fc68a2118f26627934913f9af8f36862138f2656f168a2031e4d8cc0a389207834f1058f26dae0d1c4373afd319fd28a508117a060059709d0b862c6bb3440e2d299563e18a6d234d4151f33240ec33addc4c70ce9e747e31af35bea07698b88f57478cf92f2acfcac17903012038627703095e6a52d3e65c1f7ac1c0964e1e174af529db68ecb7e38bde5e63dcb07ef5970583dc8a458847b20144aff70160fa630d9411bef8974d0c6b631e9c152397837f0f17e2c37da78ef3d800d6e234920237ce3b89486100611ef89c2108dc020e2bd178130addb561d437129bd759bf637afc2c000c2c41770bc6ed92f4c0f08a30854e17a611401d8b34567814014de3ba1a8bc32a680030230bcb7a4f79c1fdfe974af859f8ea0923a694604a150395bfc0ef7d33b4fc5a35653b6f89d2e84d045962e601ea987e3a2a170d1507e561cc9a3b46df32a128742e590304e777af3c1525a8a07db569d66da92839d388ff29d0654c4a7340ca54f3aa83b6dda00f44f91cdab561ce64d3ca8243a6da707a1503953b49ddee9ad082ee749a7ed703fbed3f149694f348d87eba955939eca59624450d735ad882b264e3bb1d2693b3a49ca039d8ae8b49d9dee394e4be9b41d6b678400d316ef3d26180f29ede4936881079669d1012dc8d0c28947c270301c1eae6841b18c07affad122940514b2b8e385c1e5bd770dc962e6f994b6d369da941516556071002c50232cfadb7cc90896756f842bd96091048b225886751aeb3e752afd702e9ccb15565c1134ba82e7bd47a484d258963a51b1e28e97d2be5f62e2b4930ec40af91e29486f2bbdadf468015a16a0f352abadc36cb4cd37c19d804e5d8f040479af891387d22b26bcafe3bd97e58d1450e43dadf340a7d42975d206a0859fb4f4ae4b25bdadb4de560888c1a88a9e2d1da8c21ba3030441a57f86704103d438c093d785e58267b5a0052c78cf5a810adeb352f09e8582f72c354ef09e65028b046abc67a5a13bbde447e1547ae3f951381f2d0589ee39fdc42775e241651ac5888bc712811456785c6a5b75259fd300fc861d81180e36e588eebba6440a2aa4c842458a1829b852a1923aad3446e25ec561a8ae8726b8725c0fb852a192f2c14845607b0989fb9a89d34e3a6eeb38df515a0df78341217119070486914c3d5c47a406f31c4a37c1483d3f3ad563ea308d8bef52fca44afd1e2236353d26ce7fcdffaffd70a7943671ff83e9adf3401e7542f1229dc9e784f2499df8499573a379fc5683611a0ad683c373d363ea4e5b7ebca9fb5a916ea5611a172d09462a923a61563429bfa3565d4fad30d2e66d9c60a49e1e2a1889083744a57f6a308cc4f9af612a0dc5a65ba950ba26c5839196e8acbeffd13bdcaba8a474341eae7bbfd3718d47c99294b6a36d3e00296da7fbf7b2814660e2b4695b693b3ee0e28211a0c185025c1ac0e50a2e5370d1465c7eb8a09e4ac388fc50630423f20366f30396a934cce6072c558361990d87655162c4c50a971b22353a0b6f8b099e37f52da955dfa2a17e152cdbb46df34f32265374a79768dfff68547c4adbe1b172844a43f17ee349320242a150a75f52715cb7d23cd7a53c902f597bbc6b889513cf2a41ecc58404074b7954a9fb1e55ea286d02523c519397f76046d0711d438204e31b3745978815418284e47dbabfb8116782f792e0d1519223254709768371e9a79c3d5ede680f1fde680f1fc4dbe1bd21efbd9cc7cd1be541e58df2c0c01be531c71be5b1c71be941e48df488f2467aa4de480f2ade488f0ebc911e76bc6785f12c2a44607cf1b252479d4c3c7bcf8a80ccb31a2085cb8fb635e93e769c7e129a001224d8b6e23d446ab46825ee4422c2614e102961365c0d104e6036a5a05d2a91b8d429c4a46f9a73a725394d469a1d23ad3f52d7de94653d4af4f4605fe3580e463a2dd1b690b668d31614ead455d9b690308e71409ac37a4a6b0db535bf85d35bf4a69938954e711a87d21d67a3376f3ae9cdff7893ca934e3fd8294b4f8f12dc89eb9b96d2c148284ea561a91cecb4759dcfd2d3a304e6ff698b4f7d0deb29a534bfb12c53715886695ce39ce728d4290b9325519464590985f25b94c8a204e64d9d4d11cd87f340279f1c8cd4fd0995d24e3a558292742fc5e79444d378723a6d874aa7ede4683b3d55850fd1532a75de67c78904ca32eec46d5e8a0a360cde7b3c046d27bfa930bf7fb42ea54d524a9cce163de53dcb8bf7ac2eacb01c20c67b5603de7b37bca037d272701bc9f394e7385f2271584ab3d1db2a07dbb42658ca6bd9346ec5a5bce73413c7b695960446e236ad52696cd5b54d85051184dee29360246e88cefbf4d3128c14821e21bc2406290855daa524de1b32a44b796cc810ac7b2dfc74c4a6355155e136529609408b478a4025ad2b41a02922b0b210007def69ccaa42008fd318c83283cd03511192c50ad2a6c9f2e49ac90264c9752d01c633b244cf7ba4ce6d24af0497a70494f70280c7eb3d5dc71fd1e3b5784d733da594d6b3698fe218d7799f94e61a87a9bc16ee81303f84f3a60eb3e1ae602793df984fea74e2a71f2da5718fe2c1301217e48fe841fe086d67e78a15ded39db6bd2b686cd15247580c78cfe2c2d2e23d2b8b37baa21a5de91616ef595758565cc1410aca03f9272a8dc70a1caf9fb42a55c54a17ef6159136e64656764058eaa346154e58e52a9afb852f74d9cb84ef97731a08a8f01a44edc9d339eb8206e23713c537896f0641eec61192f9dbadf94782d9ac7caf2dedbde884a188fdb4850cab9454fe93a5c7c4f8da6a8a1002904300572dae69be8daa330adc3fec9c45957a45848bcf1deeb9e09ec089c0290413f9b96d279ee0e23e891071233ef3da8d21df773eab820af25c86b29711ba9e3951449b348911f8e05b3b9d9b426a8ad67fa49b39265a55229e57b3f994a27952ea9380e277aaed34b5986c34fa8bd92a252e5683c59e63bbd711f304e637a5be5dce86da5716eb8b772dab413c779ff535aa9436993073af974db77eeadfc702e3838446a706eb86849b2ac7b2edaceb29e3a1d8173c3bd954deb70a004baf9e158b22c02f59f55aa54eada9b4a4cfcf425442c79a4ae048e1c255ef491929ead8b0469949297e48c51922eef3d6d2709f6b8ae3bed9349db543933786fb5adb81c2d1e298788f79ed661a31c1e8868e3a5561ba675a72ddc09dbaa138a882c8250276dc7c46993eef49221b030440846433c311a22cb1041709640f23f36244c75ea704880c3493d9a694bcf49ab6cbcff984d4f0e17fdd353da1e2101c20889132324f83d5290deb2f9748f753a87e4b795cfe963dcc9e7644aadb613d7d560be9f90d460375edc387924d426b26bba07d22622bae6067b8fb4b123691ce93992433683f7485c4f0fa6753d5cea04a507eb21a534cc03698ff27e49a9a7b4dd4f3899eabd9749c9e0cb68f0198fdcc67b5c16a3f3414b74b0cce56129cd55c95878f290f75e0a07e19aebc6c5e22671f123f560454858104aff643d3d5811cea6c06af1deeb569a118e34c5f6707aa34a826ae222f6b51c8c94d27c3a4effcd6fd150580ec9c4b58aab33548dd7c3f9a44e2aade3308e36194d248ca618ef917a8250dd899f502a2e1eeb5af3d91a2305a5f43c329a3c8ce409deebd9bca9db565fa56d5d363192354fc990f88258c6283a79af47ebb08ed2ba0e89006330820b78eff53782437a48bad34b7ab04dfb53fccf8fa67f3acd57dd6fde47abb855a74b5dca7338264e9b8ca861a4676484886f4486c4617a8a132c45c283443ae3bdd791b8bc4752ad4624295ab4110993ba4e322a824711385ed7498a2ce03d2959c63d5096f58e2ba9b8aee3933a75cfad4a5de7643303ae633ea9938de93d1277b2a9215541080b7027215a10226614440b82e86214841641e88c827081881c23222678ef91a260590fb72ad283653da420fdd3d383719c5639e9da0369aa1217fdb3532a65c14420098a122c35783c52cd0d6ac0789c0fd252a39a5d43f388d46043ce783a673484cb101e4640ccf11e89488f073a6929acfba09a0ed31e15b489d400a10569d3b6cd1f0142ca0f96f3031eef3d926a8571dd69d3f429e707387eb81394d10f6afca022d904a136ed79463f48793fd08c7c98c123713ddcd7b40f08e019f9d0e3037e231f6a781d03000e3d2c61d44309de7bf98d7a8062d4c3113de4c0031078f8000f2b1e9c8c78f081d900fb0253614a603f7640c268870ebc243fca4d4a3b4d8912b4fd14264e787498f818e4b594b28c3b490c098e0cda2bd44f9d306ef7100946b6ac9feff8a5a7716f0d4d59d66d599665484878f7fb71c5926a6f75f426ad94799e8a926a926559c6a9b45cc4d22ef99491f62e3387d09465280de44b1d973a599b3ae7f51f4e992df65c4753966d3e25c4c73b6fada5aeb05738a529cbb8ee3d57eabc4f96e1609ca63225cb4a3f5a4fe9cda46fb8204adc6a2b956c2082d5f430a4fb92ad3208207e74f861d33a8d830f3d00e077ab1c7a88256f2af1b0e96e0856c30e36e810440e36e0a0c30d35d880430d3534f430c30d32e01003b539c0c045dbd2e9f082ad520896b154d2266cc445ffec40134b1aaae4933af9f868a81a5c98b0056e4810d9691a90aefd56f3c366a6f33e437c442e08190963628908cc9017090051e98790fcd178c96fa552d462ab5471cfddab5463c552a954eab878003c1da690018b2158fe47a74432609184f71ee7815cc8b8934a9780585400f9f1d6508015392f0a28ba3c41802682b86c015a75dcc6844a4bfda0b40ce064f2f9bef3ad7b4a02c8b2841201b892b8b05c41e28de2c0e38de4e8b14208f8f1d6a8628a9c2744c90b33a0c27b2f482524c97bef6dab4e732594e63612370599f72e29e474621041847745e18282134a4f70c2db3423428640809021ba9775df693e386a08c1a9c982908d9193f09e9294ced6a5aaa050ab26a8ad3b6da7a334274f7c13272a1c133c54da96aaf273d228255ee3e1bc6fd2693b4c348d47a5379eaeed08b17734e1bd4b074c70a37b146ab5f3de7584c72de1bd4b074a7891ca0fc7e2af33debb92808423f8f7ae3b3aea740565841f0585ca79ef2a0277d9915afdf7ae3afae9bd8b081ea5edf4f7ae21743ce7fb8e83c7c5773ae81c0fcb61630e9e9c417a8b43085b432541a1563b188b1547d4e275cfc429a5753aa58f780edb29e27ffc164c7f94e77ab88d04817ee08347a486935698088166402bd1ca0fe7f2de05c71bef5d3de0c17b7276cf4f9a156e6bd271da3fe972b489c76f1a94ae73d2c16382d2fc943271cfe3814e3efe094a9ff8a9af8c8041a99cf7ae1bec40ff686e75c400debb7470e540ceee06b56d5c6c4019e48fb8ce40a170f0de7583207f04aa888e3a99945c36e836ad7aefaa413f6d2b9494f72e1aacf1dee3706eb8b722235096c1089465100887888d9c59c675d4e94a479daef8a4564d52abdfb3d888376ddb98749b9612d4b524dda6555d27a86b49b08c2bbc0af25aa85df553d7d9f9d152beff682939573838720a3185117ef34e2216896562a1582a168be56279ef0201c6926511e8fac07bd719667049a8ec44d1e151b253c58812961c28254b4810382f0271446adebbca78efc95c1e78ef0191e4190001419e20b2e489a0105273c77ba920eeea0007966031e1593fb04e80022135a21d86a86248e74366891020aa705981e601044f0ade0f4e08f901c8ce04240006185654514502a6a0828a0da70b727a5092a45227ec88c47ec0521e0531243c60298f7aef0901800c5014904cc10c0f2481801641bcf7b290f2ac0c218487391ecf164d898ac32beead7027550e7752699f144af573c286c0f38ac011821171821dd8e83c95aea584ec6084101dd0d041c97b4272c0e23d5589c3210f213864ef85e1854feab48003707eb38284d8607acf771eeb6e5839b0c07b2fe55551b41dcb6fdae74e9b8d0f1f3e7ccca47492a06e3b61394268a8820484d08085ccf0ae0af850b790a1a68b134f87189c784f771c057e20000c6d9484c0e0440c19bc1a84bc80434a889036de4988901e2142b0f7b8f494080a5b7cea251720b5848d0d121c2418112efd54d37dff24cbb628ddf74f300cc3524b1000e3d24f25efd37de90d0d64e0a50b1f243798104d442a10e28290166c20a40517debb2020864f693bfe47a32286902053bc774de0bd4b02ef5d613c21419600e3d92ab52d3c5e8b462541e9151328eda96c52f4e6f5c6a4d65a6bad94524a29a594ce39e79c73ce29a594524a29658c31c618638c5042092594504209259450429973ce39e79c33c618638c31c6f7de7befbdf75a6badb5d65a5b6badb5d65a2ba594524a29a573ce39e79c734a29a594524a19638c31c608218410420861cc39e79c73ce19638c31c618e37befbdf7de7badb5d65a6badadb5d65a6bad95524a29a594d239e79c73ce39a594524a29a58c31c618638c30667c6da55346283f3aef25f1de1bc01312e2f2dedbbc117eda7ccafb54d1361f80a024da8e3f2de9a89576658b86f24994f826b4adc97b1704366fea3a2d95ea3ac97b971753b41dae8bf7def580f72e074c09d24fb49df7ae065c0c78efe2620bcd75ce84c98f126ed3765239db8a732d9573023a2dd1a9953fed4e7329df84e738cd75dcc96f3e48a33094ee522b229cf77feb948edf56ddc64cdd76da1829a531d48ad3d8d62812e78ff89c38eccae2bd0b8bf7ae2bacc8c224003a544a4b982c89a2648749694a9429539894983ca9b2240a9412961c28599693f25a341e8f5a750d0ac6f9f19d8e8f86f2a9934f8a89122c4c61d3760e46f25840e3bde7e35d0570e23d2235d67b6fb3c6b8c20bb88d14b44b1ca7555d4aa74e3fa78d73a78efdac521ee37e38bd05d39c70ef5d56debbaaf02ce97ed3b68d094a77bac97b179529ddfb4deb54411b97b3d36aa9156678ef69ae734fedaa0a516828aed350544a2a95ceb2928acbb156b97154c80096b18a4c1853b0c17b54c83ede53bdd114869c3696b1c46d5e85f226395758c6951444906525151745c97bd711a86d63c235142a270a4600c016852844210a50d001148078ef5179efd229e2058d9e30851376f05a183d8106ad3212d475dc6a0af6e3e339ccd469158642e564d97b9793ab08110e3cbc78f162851396e0f182d7842d2f8b9c4c20c1c34258890944308188f7b8c0032c6105a5d112c0580256c20c94d001291228cb704c9c76e2c3a5b6681da569bcb4994a3fab949cab2fe45ce1e015125ee0a86c0d95a433f9e1587ca7794a53d275b2ec8623c8f0b88d7452e9521749bc926755607487ea873b649e119c3032421bef3d0cc90d86653d3d58c76915e6794a03719c9bf7ae21de8583e48763e9a828a91cce53f13ebaa35204931d4ab0a38c9cee7f7ca7d39daed4f1c61bd581005d0726c21d8f8469227044d8deeb72ae88408720c77b244e63363a182988f349a495544eb4b2c5ef8c8680e9b8c1888e27481de77d7c561ca74d3bb0044bd20a2cc152b4c2f92928540ee74e50bc6f4285a79f94442bd04a96c9b93271da64e2b409080707db1b39ab745c4a5382d9e0d50db52bdf358e33c78ff71e0a95e3511a0c9603c87bcf7fac874bad4a405a7a4e5b9120afe5bd1b4994048bf868a87acd378aa30e19070fde7bda4fe904a154aa1ccf6993141e9fd469eba86419f75de372ae704a9b5771d13f28dd69dd0d17fde339bdb9e81f94e609c213384ea3b2ccea001066f0b8d3919ed2a6957a92701b89eb4e3f4580a0e53d13a74da61ff4bcd76d9a89c334adcb3cb77920bf5d1f6481db48fd880fac78afe37caab4f9ee54fad1b66f847ba0910f5446501a8e2d8f4422f1536a48e7519df69b0fc6a13c5086f2401e55ca9ef75b9394d7a2753fa50325484be17c12da4ed77ee382b414ef7f890bd22a8ed3284eedea8d1c2e207eb072f9008027814a3da0400fb4788f0856fa7eabe9c10e6f07637813a79de0e0dca07497d2704a59e64f5b5752713edc8fee74df917395832a1e0ab56aa2ede84e2fe15027ddf9255aa2c8b9d2a8124ad37689f33844301b36ea78416c2cc186e8bdc703376584032f4638e86e90850b86f7ae172e2137e0327a3668c3063d1e87884f3f6d3b07b3e93a37dc5b2122e70ab3917355c399f82931f1d34735c05b6840c60d6fcbd5c2688d138cd6c0f1399da675eda7a0744751f14d9ca8a474543f9b13254c543f9b93f7ae201790ebc77b254f6509187821083c18a20247b0638d317c70a3440c304fc8886066240236b6c04cd0c49582c20870a082086afce002154f20c0831641a403c240038d224fa0e10134e08007642c31400e781480240e98910c4ca3185871c5bc77c15ca22b34828113231838c90215485ab8d6366d0788173841ea3c87d24c5c60c6d39d5ea23bbda4a7fce6bd8f96326ac10bdef5523e2794f64d04e9270f8f2e3d2fe627e68990582fe6bd8cac98e782f52283d582252345f7851a20d221e692917911852cebcd7091def52c244443582fe6c8cbbb9e6559a1cb8965c558976585609ab8accb8ab9649862593056ccbbac20a4d0050353338359a2eb126961892ceb9ab1a470593ede8b25ba42deb2067059d62553e5bae1b22e18d16525e1b22c98cb42c29ac1b242978c0b5e42312d583258560c32214b0c0be6b2ac2b54b22ed18c0f7a01b17064ac171f4248ac98eb12c5d0cc7559445cb0160144f10704ae277a17062c51a846f47259a1f7e2006b08d6bb1e0d0dcdb39e25b22e8b0996cc1584655d2fd715b2ac6919b1642c20d7755d304aac21d725ba2c1822fda84106082b88101bae2eac97ab064b6485ac7749b9b0194bf4ae13ccc37aac2b428f0717588f88185c210bc612c55841ac9017d72593852c1cb2ae4b845d407cd4582f961503457107685d333032976559568c6565d67501210463f9b8442120ab876b6559a122968f1f972513635d445c3a5c3a5c39845ee8592e5830d7650511d18444570dd775593096e85b3e7cb07ebc5cd68bd5c2b52ccbb26eb88c80f9e1e3b2b60c9098cb42c292b1acd065892c27560e57be70b87e5c31d78b15b22eebfa71c588acd04bc8b2ae15b26a2c1f1610cbb28e583a5c33a1184b46645d969559168c0c170c96e8b25e4456be7e58a14b072b14ba2ed125b2f27559365c33960f4b467459969559395c3331214b2423b22ceb62160d41c8dc848478b142960f4b4483e5c347f643891b74b00020b2ae0be68af1164d0cf08713cbbaaccbb2ac222fe6a9de953d2c3caea41e66858e3bdab0428121945145d301a9d031c79bc2c30f1e121470c323a1d9785228708230a4f0a0458942c700f078c2830e5028820e1c60a6000d46b26e8103978e203e5c1e662c4b879587edd9430216d3e3917ab0a043919e312e9b3932a0d960300821c4b069c20e3d18901db019843c315ec8f27a5eb67898488af742efbd67ed71e58814b80133c5cc0f35e8e223464606666606e6e54728071f31a197500c4078a0d8e941a6066646068b80b8608980c42401a40b0509d1bcc0214504bac0b470c5f810d904c90197d165c60a902eb269018a8bdef0524564c1dcb4a00b92274b46525ca219d1132254e832c714d64b36da8108282e910da1223ce822041d5d769032450c2e24a1225404145574a9c1c715203044a04b93185432dccc14badc743e8ae8e18226c64728c88b165102ac804246340a15995018a1023e82e8c1143255e8a285ebc70b11a3982c3ac22b7146142fbcd4cc349901026609511031390a1250a08828dcc8c2c81441f81305bca0cb8fd5ff428a20d2052b8d2e355828666232cc8c4c0ba1ab5344288799263150e804a122e3e406264d667c380142a5df90a0cb0c221b3b0393bd100466e607931e0490812e33324e74d80be8f212a279b1609080997939021344ce103f563e86c838819989a921c8121f3e88767ccc00030e40d820431032353b538080624686143383ccab2325068828c686972c647d00110dc18888f111332332f27284081361bddc10e2e14506e843868732932334c8ccc8e0e342a164e70795a911f920f20166035d826841b4e44588171d7cf820c2c18518ca218a2e242356e8878a88422f04e841000cd0526694d1c60ace3063031750c01305e0c269f99ef70860890060b152858a94274638c9f0ac01e2070060a218c0608f2628c10843e0fcd0830d35c48871031b68200348301922cb2106203f605e70821278600c0d5cc0021410238c2a35438c90be88c01e5988c20e401398a08292c64516a78f736426668c2db4b83e7c0007196364d9ce00c38f1999181c6e4863044bf81e65c7089d264c24804502aa103247458119656ce0892b56aea50106911b6d40c10a0e12eb2306e603072801082af000062c800013908004b288b283736408100b0bd715ae2a88f0c09870dd2132c245c7cb1cd60fae37ae1ef8e001901d5c6e5c6c5c2708997169110dc0f2412687171c82d470cd70c560c1307ae145c835b268442d5c3f5e662e1f3232574ccccb25b2429605f382b810ba2194822ea22bba889ec00481593152808226035d5e5e80c400f10328441488a219805c8003300ae8227ae24386191c6890a28b8f24440108e9f0a3830122d34406c3cc848ed030f352832e326a74816109287cdc50184f00224797973dbabc00b1a1075d80743da4a08b0f1a5ab8628ebc187969000262f85143175188ace8e2020f2ef0102a32322243c3688f285e8490c13137211742373217e81282128dc0ccc074a04be8078c0d229b1f31648980886c669abc081193048c0d3033300300020310187cd0e043869824427944016343e88c285e66d0e58701887eb0d20f398832202ec08c4456a8484889484a101960ae982b3137c4ecbcc4d08205f323f42202120a85ae504c4826e46306075128a64a8c1017a4cc8c626062ac508c888a8c882c991a423740e16387170e7469a103508c604437c82c894214b6e60fbb0a7ccfdf6a8a65ae9e6bca533023dd5cc3a8e38f5a7b14505fabf6db62de21fc729f20ebff35e531eeef23d5d80411e359e1b4b5622ebfbe2590ba67cbaf9f74f66c3909348e52d67d7bdf95436ad5e071ff7921bfdb477b314d8376ac29f7b24e4f7fa67304bd6e6bf1fcd6eaceab9422e0f1cf8f35e411fbdc6b442353db7187956f0eebec2188b77abe75dd18430d3708fcecf9631d2df7b0620d7178ae0f60abe9cd3bd33eef9d5a9f41e3fef0de7ca7197f46b8f1a7d56218bdc4654ce8b7afba66ddb997df037ce6c9a3943552c8b7b71db8926b88b98d599a7054dab6c4c9c581eeed8ff26f196fbe7d6f00fbfa69d738eaebabd5990cbba18716626827859eda31b4e4f37e5e3194f8432d35b077dc9c7bbe2d9c96e2d8e4ca00d41542fa25fe1ec37927940b03145aee2bbd74e68ce1f4179810c67f73c4944789a3b6008ddbfe6e7bcc106abf6192ab02d4736d31f535e31bf3c7445c14c0fd475da7d5114eaf693565e151e226cb7a2e317a8c11e6bbf59f36fbea27c0a18d555a6e3b9d326209dc3b3db4356e3d3f853787b16fc630eadcbdc63a6330b096dcc208f9aff2c78bbff0bdeb2829fdbdea787704e6aef4677bff9512e64b21c0af8f704778e1de965368ca321c1c1c1dab8acb8b9c279df6f318ffedd3ea2ee8d7d1ca8fb1971e73291f702b85fa732c67ad5edf68eafce6802a35ecf6d78f23cc50479391ab0153c2497dacb45f79bfd5a62cbb18e061ef34767cb5f51bd7dae4e282620b7ff77c7ebdb9967f8b5b219e74e7daf5ad7d622db09db7560fbbc6f9563d955c5970697ba5d1db1aadc41e0bc9e59f9ed34877f4d8da2bfe9ddafba969bc73ce1b2f2b24cfd8634af9b711e70caf05583b758434d73ce3ff325fb914a02bb53f632a259656ff4ae54a40ed5b56d9fdadbc478cb909c7a7349412242e04c83fe98f3edfef738c5266190ef756ba2cd3c2b529cb88b8aaf0ffd238e1ef34f3d0eb003fc77d21dd3d6fcfe9a7918a3d6bcd9dc33e35c73573f8af29b8ceb5724eebe6b4d7ef995c52f408f39f3857af77be749bb20ca7ca1585d772d6f93be737cb2baf12171413e6c8618edfef58e3fe3d57976cefee734a6ab9be3f475396e16c6b8f8bfbc5bb7388e9d4512c3da2b6706faf33c5d5d7a86d1b932ccba34308bdbcd57b99a5b63166a157ff25c6d7636eebf4446ab00031c7197f9ff9be9d6348c5ba82bfd37b3b7ddf52fa3c21b442fd3c671cab97f0fbf869095661e62df1bcb0527d39a6b3894585ff71ce14c30b2fd4145f130e8e9cab52add2dbc8d9756e7e7ca753e5867b2bd60eac29688c7df4f17a08a38fd943296cabbfbcffc2782b94159ab2cc5b51a8316fbbabdfda574be1ca8282853f5b2fb5d5f6dfecfb13e4dc5947eeadef96ffba9d00fb9f72564bedc6f37a8d07ee73dba96f84b576cc7113f8b593434e3fc4945acf84deb9c6777bdaa1cf99cf25ec6e2bcdb9cacd67c65e9a707c56db2fe101e2065a4ac015639d7fbfbec71d234f42ef37fe18a3defe4b3b2d1220b45457c96bd5fbc61d8f10f1be927258358ef2d26bca329c27d61d7b7f19a7ce38e7db25ce502c23dc1c39fc1d42ee7785379bb20c07c72a4295995e9a2796dbf7eb61cab2034ebe71df1cf3ecaf87b40e3be3b67b570cb5cc986b22482a2f9793c2d9bbcff90ee1465c21ce5bd23971d694098b0ee9e3d5d6636b23fcf2fb3978a6f376fffdad36ca8ee5e8196efd7b977b6a2e7d1c53d75a61d493fa7ae18edf1242c7f656f837bd3a625f7910fccd9b529f798cd3fa798110f9b432dbed6de694caff03ee39e736f389a9ef965a1ff8bc2dfcd1f64dadc6757a0b0e2c6f9f15db5a2b9c51da37beee957f3e77ce50ef1997b07a50bdf6f9c36b6fec5e57cd03eef7f4b7eabce1d776df92b503aa2bb49ddb08e7bf306a1ccdd2c1b593f34d6da754e26abba05d32712b5596e5e0c65865c551f6cfb7bdde8d68b984ff7f18fbaef8661c93d5869f1f6f0fa3841243f9331b5c6eb839e5fc760d658f4f583880bdda1a719470f3dde7bec1e655db1c31957c6aefb129cb7088c02936100994eae754f228d5aa2b3961d9005b5db385755bfaada6bd06d4f3e9a7de15d6ada3bda61f6d6b32854583de67e730779c2bb69377130e0e0ecfcde63b1dad4be9d8f0dcf494efb830e15e4525cb726c6e2c29ac352e86725b0c6dfd5c67db4d598653ca62cdc046ef2da77142b8a9c7560637777e3bdff4525d7da6a62cc39962c5e0eacfab87137f88e7bdd5946538482c184cd82396d1d2ffe996389ab22c68ebb20c27cb7eb4ad49d0c693dda8ac1774fb7d97f56b4c79ff1836b1a962a373a3d2503a8d6a926529df751af537cb0595d748eb8f3d734a63ff2df0f8fb3de187fff26ef16781867a6f783f95bd437aff0a7aedd456ede1e774d7ee5550e1ed57662ae3febd739f0219f384d77fce27de3c7b14e06f278dfe4a197feed89f007e5965e7d97ead658ede04fada9965c4b64e4a2de72598dccfcca99efad65fff2681cc9bf36db98c9ffa5bb51a784fbc3d8e597b5d35d469f8bb37d6327a7fadfd368fe05fbf3df7546b4eedac5904fed22e35f5b77a18a9cc68481cf1c5b262bc33c63187c0cecbaff75cde2e3fec170496db4d319472faa861bf1fe8bee74c27dc96538af93dc3e28aa7949446e8e9dfd60c0c3dce7a53ea6ff6bbd73268b711f2b973f45b4a5c3db0ebd591fa0ab3f533d7da812e2bf47b52eb27d6bf530e7c6fffdcb66bbbafde7f6e607bedafe59eeb1c35f5930ccf7bae33d6e87b8531c252b7c6d053725aefc497eec9e7d440c4b3768c79cc1c76ce3310fb9e3153893b8d78660c70acb1dffae208bfd6585e60db9b7bc61bc6caa3ee16d839d22b73c53f57fe7705a4b7705b5f25cf36d61b2960ad95dd57796fc6f87e31bcb67dd708bbcc594a3f01df25ec5a6b59bf8e504309c47c23e6d7475d71ed1886b1e1c77e73fefda7df5e0e06e61d5ec9218cd75639370eb7be8074d36e6dacd3ca6bff34e11049629353a30ae2c150aa9fd34d9671252b5604aa965b62ad7bd550f7a94d5986c365d98e05816aa5c5fd66dba3cf5b4b532acb70b20c27894dce4d96a54e3acb36df9d6e5096171f676d37c698d34c3feee2726b6f8497cb8d71beff0137fe0c73c49d6e0f6dbf3818a7312c3746580ed059dae86184fe4f6f236f80a5516a2a2bbdd794655a571ac262c0a7bfde78ebac35f37ca329cb98dc585ce069ff8fddf7cb399e329ab22ccb9828b1b6f8596f8cb5bf5ce7eaf3d7627e3d619d194fa873cd3c8b5c37e7de5a4a3fd7ff5e2c2cdefbfaa9fbae57631db554e90a6fe18e10e76bb5aeda5b216bf5936f6a2ded58f205cc4cb7fc1feb5dfb9c5b01fefe3c29f5345ad8614d40fcda767aabee55ca1d3f022aa414dbaf73cf37c35ec5e537c7eff5c772d6c90fc0a59ef7d38d37e4964f2abcfdbc5bcc679f9d72e9a7f810c78feb867edf7ebf145fdeae318f5562dfa58e42533c27bd5ff60c7785c2d20dfbf676f3da2bcdddea02addf73e3ca7d94b2df2728a79bee4b61ef3f7edb0db0b3b792f3acf38c18db02e01c6bb670ffada7e6923b41b9d452728fa7fe3d7f02e08ae196f5d36ae7cdbd09993b8f98e62d27cd7807cd4bf3b5b5f7cd21b5984bc4135ffe61bdfacb29b74cebe38c585adbbbbf7103794cf1ee16674dfdfe7e15b59610f61d7bbf98f38e73db3dfcb4532b69d45ce49bfef969ed7c738937aef9f7deea0e2dae796a263ecd5c436eebe5f6daacca32d20aede79e6b0db156a7ffb3ee1939ced1de9484b95bacf18756565ff34fa5f672dda7fdb64af851bbc7bbabc7f7d24ab3d632f9b55b5a8e7196b9533c0079fdde1a6e6fa18614df93debe5e6df7b5167b8b4d38ce5e29d5d97278f7b43e104a2ffb8e79f3ba61fe7963bfe3c7fb4ffcbfaf72c6ec69b713cfcbbbdc9077d8359e1c7b89b9e49ad68d279ff3ea5f77ef31ffeaf3d7f6df19abc6d74b3d2fbd3e5b597d8fad386ab927ad1e67de4b707e5b27a7d14fea631600ce5b5e9fff8cfe6349b37cac37bf784ffde7e4932ef16d8779ef7b6b8d547725eae433d28aa9c51dd21c005ffd873cebfd3dddf92651359e9ace0de3aed2532cd4434837cd7043aee995cd29a5dd479c63ed724e2bbdfa6b7fe5d3f6da2d9755f2ae3e624afdf5dc7b1e5d719d17739eef8c9b539918e60ae7c6f157bc659c727f9ed06b9ceb95757624ecd47eebfd2bb533532b05df0eebc51bea1823ac304abf567fecb9fe1befcaed4eedd2ea4efdd5b0e72fa129cb521e55e21ea86719cf4aa51c287e7efbb7ddd6caccfb3cfd92d6959e705ea3e4f84eacb7b75a9ab26c87233abf14decf3be67dfa6e63c4ecd36b7a2fa7f6d7dca9df483a7c73bbb9a6f06e3c3fd626ae88939a2d9c5cc34eabd67be2de355a44b5587a1eb7f534fb5a61ef9a6d92ef86f2e38c21977477ddbb56996cba3f9ff252bb3d9498d62596ea98ef9697533a77f557c9beb2cefbb1e53b421ba5492691d0763a31be3aeafcabd57eb44d657320ddd7ca2a2db61cceff4d59a6d2b66e4304ae3eef0bb59dbe5b0ca9a9a475a421e4acf9f3cb67e4f243be4d59e6531a8a97f8a9d31d97654570e4f7f9dabbe7be5ed638ffd74add09a5e272904c1da1cd94d2ac71eef8de400be19e944ed9699f70e31c899a6ffa69859d7e9be534655929cb9464f45aedf5f5b0d70aa7fda62cfb21ff685ac9672b9564f0ccbb7eb97fed54c329ad29cb4af4daaeb59d1ac3bd65c4f59ba6dd53fa2bbfa5345fdc3d3765d9166df321d5eb2dd63163ae7fe5136b53966d1d4765e5f0ca0fef8dd4fb484dd9dc16f74879b4f56bed3f3765594fe992d6b36c476ebfb3b6337e9f7bc7389bb2ccc4ad54a54dfba52cc3c9b1d9a2a764191191660f73e6b5ef4f7bc7d394659b36f15296e16459f7f3af60ddea07889b239052befbcd714a9efbf7d09465387805c44d2975cab2ad53c177fc7c23ae31c23ab7b5d91a21c71c39adfb4b5dbdefb508f0e60d21c619431f7d851d755aed2cc3b18620b2c3c6cfb7c65df66f7187515447ceb0c3bfa594d24a4d271130e497438e31a77cfa3c042b33af3edbb975d533563a26febd6be9219e1a571aaf10cda12dcd3aeeeae5e75d632f0795f26b1abfce59fe48a1024471f038e18d7ac379a5a6989ab20c47c7e6089110baadf34748bd9c11f30883202dd57e5f38e1d41553da4504841c2f847ac30dad8db8a4f52ca21f780871af5e5bd927fd306a4025ad2f21f281ad5af7dc358f5acb8b79e77d522238ee8dfedb8fe7be79c36eb588dee0f7fe5aabef91e6a9af366559f73de835637cfb8757d29d6737659949c4831d682f6fcf3b632cfddf979bb28cd3543e221dc02fb3ae7067df4d3710e5a0de3d6def7072bcb5f6fe0b911b70de9eb186b2db9dfffe6dd4bb23e7f95ffeebdcd012a974ca68039978946ac55373639d216283ce5deb19221cf09b61c734fa6e7bbd4159868313c50607af541a8af500d10d748539c619b9b772527cbb10d9c0737c3d9e1dea2cebaef3860c510d62863d7ac871bfbd7fde6d6e3220a241e55dd7da399cfc4e8913e526cb6e2c0888d6d8d1f399e3e450e2e96d9e019f18664b67d6dad27ab30c74fef7fa9b69cd300679c33cebd6b2ff4839e7a62c838194374a2fbdbf2f8898f6ca3dff9fca8ca17641c694e39cf1fc15c21d730bf2f4b2ce8ca1b5d4decd827ba9eddfc72fe3fc98c215609e73fddef20fbddcdaaaa05618a3c591f74cf7d733052214d09be7ae5e6accbddf1146407402d9a99471471b79cd326bd19d17221344f83fb6daf75bbba7599620d3c933fd31ea183bc49304ff5edcfb84fd5fc92bdc6ae8fbbbcfb6c2e869e6719ab2acf33e5d88d2d8fbde3eebcd384a2a3d1f0196d8573bbda618735ab108b086f5737babcfba56fdd1b89647ebe1fcbe4e0bf71485605feb3986dc5efbb3f63775d21c170dc52615c5a6a74e47d8f8154a5bb1913206f9236ce2e66fc4108160525a7b8dd9eaabe7bcf60319c279add4d0eb5a7790d7522aa94467e4eda994dd46effffe549bb24c55c229c28a8d3cc2261e71a3d250a878d4de340788ccc0fc66cc7daf7c471f2b2f43e48149edff58e309bbbd954b539631014412206e98602245f5c3451d80ba7adc739d5d577d2f356559c6248a88037362fa65f61b7f5d63ed36106d60f60871ff96de7a6de6119151f3c4307f9c719c11de3d46c593c6dcf7ad7ceeae2b14220dc47d75d41fe27dfd863367a043c8a3941ef3cf75951b0392cb1f77ec5156ef79a6a20becbee7dd76f219a5f53f1b406481fb2dc71877bd258dd4ca0af04ca7b6b5efaf6f94b44721a2c0dff47bfd6bbeffdac8411189d1e9fcf8fb9af3ed95e2b94434810bb9e510ea4cabbd7fd7954802fcebd9a5dc764351183d762ca5e75a5e8b25c526244460507dffbcfb573c4d3d75fa59864345f4c5fedc46aafdc6fc5b696704f2af7b7b8e21854e8820f0a3e43d623b29c45ac26885c88b4fa7bf7073396b13a22eb2ce79464cbdbc14de9c653829edc4dd1840f400286ff67e479ca39e1e662a440ed0facf1c75ddf6f74bafb52a206a40fed556692fed1c63adb3e72930440c9097cfeff3aef14668e7e7c272b97faf7652bbe3cc5bcc1e21dd724b9f3dedb06bb135d752567b33fdf5739ec59f73d6bf7d95127a593716926ab929a717c66fe3d7574c9afbeebed77ba5fd305b01efc77d42293bc5b6e705d05c318637768da9b4b82aa0d36ae9e4fd6e9b7fa63401b26a7ea5c49ddaba7384088872d7cd67c51beb5921e6f1a22ab684557e3a7b9c3b579b6d4c9c76626361213a0085d4ef3badb53c4f1e21151b9e9b2cbb4189a8f877d3fa35af78d2c93ddd229a42fb291d254a84104931441445e9a4ca918289a038a9723c4f693988baec10da830bf25a7808e97152e55c89c243280f1f1fcd2344280b1c16b81216bac20d212b9470085501ca284485184253d0c235d4161292029050145e0841a17452c5107ac294b1c6d97da7bfe67cad29cb747cfc4e96e1e004712537555251b2ece7a4faf13c369ce7dc046d2b4efb8d47e3b9b9901072c2975c5e7fff87dd63ec3d1edecbedb7afba476e879a702bce344fbfa3e59c637db3448809d44afea18f787e6e25c5a62cdbbdf4356d93c224b4045ab1cc387e19bbdef87f53112125f48e21a7dcfeccbf97309ab24ca57fb20c27cb0e7684478920bd6d5a8692502584844ee795d672c8f186184b2e89d0119408ddb14346a83bf25fe58d35631d3fec382062a808d18e2ca13a4244b05f5fcb299cbc4708ff265273034343b0f2ef1a37c5dfd3e171f41042ac3b87b26a3d47f7d2563a73b7dc46cdad1c527f0ea9fe1c4ea923ae7174aa21d5dff64caddc740ae1c6d8adbf70e33e37a53d08726e7e3bdddc47e83dc74098f5536a39b47f6a79a1fdc19e15d70c25deb67f3c6350c807537f5d2395704269a1e7706c9c69eeb6c24aa5f711bfd16fed19f6ef2daf747adb83100fa68478cb4a6bd51ee61d81423bf032f32fabec114fae6bd581e47dd27ced96d5df98650e309f79cfbfab8f12568edd88dc7e0a7186b9db7eff6fc3eeb9e9b4f1738eb9ff4f84d8889ae23af1fef3f7a87bc4c1a6f5761ae3f632fbde6f806dd77dee19e586f3cb1e45c80653f2ae2ff511eb1d799d0808d5a057cdb78e1a5a8f6bbf34e8df434dfbcdb7fa1f235fe3ee5ee5bc5042d9f39eb83b119a41bf71e33bb3fcbec399ad0c4231c890db6fffa7bfef1cb9244008067ef688fdeeb3734933ec2f88bbfede31eede7baaf776419594c30fa5cfb1cb7e6f0ba09dd75fecb7d5f1db0c2d2a422ce850ff4d6f8497ce8dbffc406805b2cbaaefde924a6cafff2ad8747699a5b418c3ade94d41965ede3dabec917349231b2114444d6d96d2c21c69b5f082113a41c45d7f8ba5ffd57a1bed172113744bf1b73febde39a5df97a0da0a3dd65c768afdacd48b100966c774d27aafcfde66e9bb94075283f3a9a3fe32faecabad1789501a157e986b9efbfe6ead855984466073b53c632dffbebafe8c45480431d6ccf9cf9fd3b9efdf213472b47eee5df5fcffff5e4d591602ddb7a7f7622ea7ce796b5396a17a2a150201f435dadae9fd57daadad29cb362765843e60e39cd55aaee5f5fe7f6fcab231426740334265503fa3be77eeeb4d59f6c3b1f494a7622120e4811f61dc98d36b758c3a625396dd843ae07fd652e65ae7f7d9d21be200e692f7c92f9e36e7babf0d946203a3d8c01d1b08c5063ea9b1b0086d205a7831bfbee33a73aeda94653a213234d69fd3fd71acfdf31a9f088dd16ddf76e7ff3fcd77d36a80900636de75d289f7cea62ceb364df5732af594ce321c2da10cd0fae3957e729ef5bf369bb20c6715c280f693deabfbb59afeeae1054217e052ebe8fde6dbde5bfb3765d918210b50eb7da53272bda3ce389b7c97d23e5242158830e3d9b7a7b2dfedb72f410951a0df5ea3c5127a7ab1c4db9465abef242446ec36ef5db3bd38729c532bad88d004a4a598d7eea5a694f7da4d599624cbb2ccff947ca7734212c09f7f08bbf7dbfb2d51fd8473e3515dc7022314469ef24e88f1d557cb3a2f1891e35b35975bce3d2185a62c43e98d6f5e4a962d097db1bdb4956b6efdd4b1b1627344f7dda65151adba5f5252adbaef59968050046e9c7f563ef9ed93634b4d59562aa1b64e55e1220401fce7def7e73d799f196a2fa084ba083de052dc6d9d9bf7cb44c801b75b0db19f1d6ea827a5a62cc38992659c164d335955841a1062c04e888b1965af9d625b79b67ff7d016ddd73b6f8e17577dfddea62cb312d28246bf358553ceebb3fcd894657e53052094859cfd7fb879dc9ac20e61b7811016d9ce0a7dcd7ef69ffdb413085dc1f3a799c6bd219cbce70a84aca0f5fb0c39bfd35e083db4ce082d004aaae985d976ceed96500112ea5de9ec53d20da7f7a85002aea69cd65829dfdbde6eb59fd2f14564d94d014208a8d45bf9effedc7fcef5af2267da2bc697e3ccadbdfb0017c758bbbe515be86dcd54dc6abfe4b94a2d6b841b4f11ed95de6e59adb73bcf2b059d90e2b923fcddc61d05d7bd432b65c7fdeeca2d14f7f2ede7bcf0d74c73aea12eb5538ce1ec53c2dde7a47b64eda3a6d667e979f577ea51b18edf576c3bc5dfd63cb8c55b5fda71849d7e2ab3d033aff7479f25f6356e2cf43825ffd9e26ea39cf50afbe7f8a1de387adae98c56e091da6b7bee315b9a7315fad75bff4cb19c3ad70b772e2ac0aaabb6b6431a7596fb4f81c38a739cbc73b9e3fc5c0af9625d67b693f73b29e551b0fb4b4fefffbdd75cbd8642a5317bde71b690572cf313fc85fc6f5a21adf97b7e9dc039e7dd6b4ef1eddad28bc7ff39e22e398fd7fbeb6d132abd95f3b8abdff0636b9930af9cf6f2ba2b851dfbba045be3d73b5ea9efacb45725709ceba5fdda24eccaf9be9efb6fa1afb522816a2c219db2f6de67f447b8327b19edcf9fde18f31d9372eea3e658726da1a446a81566af778554fa997911fa85b943de71f696663aed98bf668f3fd7f84ecaeb9878d73a63cd90f76a8940fbc4985f0a37debeee2148e8a1bcb463d9b79e938e1a79fe9c66bb73fd1fca39628d54ca6b3de774722f07d6f9f3f8bfedd056cce3e8d9fa7c3fdc19d70db710babd9063d9edecb9df1c83c065d5f87f69efa79057205ce86bc5bc7a6b21edf407bf5beae7e7d56eb8a184445c3e88374e5b29c6345f3c778703ca8ce1dcd366ce33f4d69465a953c977fac8f506c7b766a92fff7c5e9af1d503dba1fef4d39fbf9f527f1e60ecebbe30d7ca6b9df8ef20779fb1a697672c65fe5d075957a861f733e22f2be539f0136e0de3a437f61d297743f78f27e7967fedf5cdbb8d4b73941cd73ce5b4916b36a2f7b6ef7e6b86146aaa71e03fce5bdf4f67ef5ff27c037925f57e6ee9e5f69a631b5cfb35bdde6a3937f5fed680c7be65deb577bfbfed970650f69c79bc7ac635f28db16abde1e7f8773e8359efdf1af7bbffeef85619c4a9bdb4355aecfdfe98c600eeaaabf7f67faafbce30f85142b825ad5af71af17cc1f69a7e9d3f9676729ca50bbcfc9c7b2f3bbcf963c9af16fc6bb9cff44a783b945aebec8b0578472971cc7ef2eca35f81edb8560d6f0d9c45a8347169c59994c328c610020061291a0100007312003048241e8dc582d1905cb691bb001480014c8c6ab44c2e954983b11c85411404410c8340000084186400214649c6b207a5e84a4baf2e4dbb773186425f343b46284b55f1c9f21b886bb008b38f7d08ac36da0b9b2ddcccf4626a462c3321d4c0a5e907996084247703f2563bcc669aeb9d820fc2d01f4f3d2ec45cdc4b1dd1addfbc9d4540101631ed342da08654c64a3cd2aa43f32a011268a733781105e54ec87e1012ea6a2010a35e4dc1e5f48590b21f8c13d7c8d813cffa9761380a90f9ade8e748b6fca7e817c810bbdff1d0c0574eb00664067eee8114798bb792fd313f41cc0c3ffcb6c0c88d100cef1dbbdf2e2ea3087dc36a3a3bdeb0e73c199b6325f1546c2864b24bae768e9372faf7db8eeb0265e490328516ade0d230a22bb277bb6ae45c6b4936bc946b895e379b8c516fba82afd5d83e1d4b92286c458a7eba4909414a92a32ebd161e74733df7192d49bde98f25774a3e18c401f59dea3ca4021ba0e18e660a50f3212a7db52534d9cb47584105ee9269629d41ea95899d4c0da4657b898e08f00f8bd7be30d6516a27b1d2a9d802ea16929b27f190cd8f2308d461c755516b29724404d358113e20573fb7d42feddc2a0d2bd3d3361896ab13ad0c8a1ee4fe3f8cb792ebf2ccf73c6f1b9ffffffeb816393df14870b5e0ffd1731d01b43925847d740bd3f3af2fc2ad08a18b72d456cf59bd09846a598ad0314420143a9b6ddc9f8bd0eeed0a8aefafcfa6368e8b13f762f7c810dfcffbae72e179ce3356119abd2beeef63615dbcdfc8a4defccf5da55f44efaff42eff60d9b7c952fa11b1f47f94f3db7863678a40c898bd08e76c595423fe4159475df1c41c4df7131c99b3202107efb1818a0134eee626fd50ac14c4bf2e88d5c4b77994bcc860f5e083ded4726bc2db8c356f50c6dda8bcdf70fccc2bfdcdfb0cc9b9decc4f9c71857f9f8d0f4594810f4acbeb8e5fa254748bdd4a12e1188f6f0abcfe49bdab3cbcf7d81aeaf4beca0a1f2872e326a95bce12184c68464aaca381a13d2a88dd9a93c9f4d388df0f93b14f5a0942a1df1af61d6e7239685210eeec32e95126aa6fdd07bf90bcd60faf29bdc2005231873b8ceac2fb8766853079d8884604dd88959a2492d67c44ce0a47b02975e59bbb62a27cd61eaf32e700e5be0700e621484a58fd100cfd1cea9845443f6d2c43fa204a10891952715d05a0608ee588e839ccc4380b9907e68aabcb40e5113f65b94f97a280a17a5f17613a6aab440a22f57b8f42b682d832f5c3bef15a77e875b65a5946853250a1dc18b94428a0d292026c066c91c2624b707e6a72a3f10cadf55e1b64500427915942984ab1c41997a2e3cf43f173f57a3101adc9c6e539efbcff33a303a9687038eb31a624a2134339de4d6a6b430666d1b5dfd8d865627031d26c678371bf463d0b0ca1fba37145a1b12d15f33c1c58a7c8d76d13f31e7c82bdf6c7b535c40fac7e24e1b3c4a752bf4efe2eea1b6b9f277e29fda324df57c26f6028e21cbc94f1cb8e15e27ef9dbe0a20ffdd4885ddeb81ca9cc7b9f0c4e515316f569a725758065e530691fff7b3e673f83288686d032ecfec2c4d96dcde4c8cf4e4f0094a6ca7c34bd45bd20e185aa7bc44d52f3681dca9af9c7eb68e54b0b60b99a07ca669db7a10242b8df6a05bfd16eb69f0e77619dc60968374c49c7da6877fe1c9208d1681de868345d851aeda6f1aba163c4dc68d6a6592e1b7354e6f8d6745ceb088e4e81919a03c1555d44ae1e8ca68616a2e3c649d11fac461f60ec5d2fc3d31c36dbbd9a4536f483440aba0681664f9e5147bba825305267770cd0af99b6ce0dc9617b21fd429e3644712c12e3183d09d848099612c4dce3fce6aa2da1265f0e4a0a66af8300368ffe9c97800e022540a822bb5461a2f8f1f474bd416453927ab2f25148b24e654690c6f7472a066fcd1de881d6898a959f314a8e827fd4ef6f0c3ee6c4317cc6b5b8806724fcb17cddfe18ae2bd3db821f2501cc04b9e334a6fbf5a85e73f03a84f9fc9f22601b5e30feb1fbfb6eccca6697dd3d7dc9caa2a170dd5569f913b3c14aec7e8688b5248e28796267978cb8f1d5d6ad5127968ccca20d25684aff17c3a3febf7318df70d4d95bec770b33ff58b1a7c83745e2bee8a71297009acbaf97e970fda56eb9f0ce6d89b6eca0ebdc6d8343c93b35a36c472b129e9b327e341cfac8dfb19a9dd01c09799411f36e61dd1ba06b936d180679e2d2e1240cf432f88fd4e45b932c2783b6b92256a49747f23185b9b4c8204ce65bc7578d1de21e4506abb690dc7160f788718a6a2c34707838bed73b046e50ea2394707299c139a34230370cc0ae85dc4cccd1a24a1c7ee6d51928f44fd86d2ac56c37917142f1d173bddb6b9660656c3295b27cd63824d3e6f1682ae81de04a80e9ecdd3f1b96378ada8903d1335d8d60c336f8a38416b2d8bbf11709308fd6b0ec4ac293fd72a4065432d0dd53fd9323003469b7e20bc8e7f8b85bd768eb7aa061914420cbc788f8f9495bba5783af4d6c111f377de5560e2958cf66eacabf1de921422d40d801d1a4f6d832acfd62e2cb19a10f7753817400ef10344ff79077d52f3deee9e8f82fd5255c3fa37237c5e5abb836263653995b9b7be5da891f8b8cc8a44f8e6d0037956ab689ff1ab6624564e14772dc616a48062f8cce7cb323b92e3bc8d14d08616b025424c7e5e600741c9c4b2e09fcc1f6a70fd9f3c0906a72d3975e0f182bec51d200051f45a0856d99652e048876622e0ed5b2c07faa1888c749ddb9cce9a0391d300c5e94e5a49fd43560c8c2352ebd6aa416765b58531628145da39a7bd322605cf2f0061efced91b802e63d50382bc7d0856abd4f017813242b602f534a1bb4f03e90b9d413cd984115931088e805d7c0be2dbdaaa90adb341ddb1d3e801531ee124f332f53ae841f701089710c1e2ed219d8e4c863448a2f67ac4e72634710422847286d48bef2366b78f606ef3aed1ee3f56c2e44615b294fda7275833991081c525e11c4bf6e5f1d9fe5f77d03f76809872de4be4927593c6b64d0f554a3630b2277ef66cafa8e39cf6f7702ea0add7c13ce53013d2cd1ba5c8884a7483a426264dcd4887ff6d7b07469ec651d060842b44afe989f25010c96471a4df8948ef043f3770d3a22f421d61687e40774ec0d452b537cca76e657f0526e956494ba992b8b485f6aa22f38168185d158d23156b0d916bb8c5d62544d67a09aa92bd41b10ddff32922af77392dbb4c1f91863141b921ed0959ff2b53d1d8846f48454592b27206a3f6a4f04cdc1a7e34206f68108c0fe73cff22f829590ef3e61758a4d20c1b64e8c361b2ad539d14fb779cbe4d921b6da26b605eaecde9f5110ad29324faca5cf79869035924ea917f4f69625f55bbed36ab94fb16800f3255f353668565700a617e378e578bfdb9b19704c5ab5f6b67baf2d84c12b49a736f1feae2feb7db3d462be6b09bb09d0bb18c871333de939497339b017d99946dcbfc94266cb5e6deb46f53b7eb2deed2f642df66f5265afbbdfeadab977eac94879ff9a823a0fd0b08c9b2beff20e8a3e947e29e0a69047b18fa24e4aff947ba1ccb998385d6423c7bbd07006607ad4946c8722d3fbe7440dcd28371b346fd4346cc72133c14c0a9a9eef6c10d3c3a0e91be86ceaf7e7a60143b0c2fc67094ce811be0fd783cca5162bb5aec0d205ab4b2d506c91926565962ab4badcba45ac71d28c02cd9f3f62681c212f8512314427e895096d921ad4bf51cee2b3fb2d8e0dac0673529ee29b425140d3904490761043a5a5fbeaa8ec53ff1a2b47caf733653af4e95cf98efe36553a723f252d94b60ee7495096518e8caa46ec2ffc67f6186dbc9b73ace2ebe60ef4e14e6f15ceef95534dd4201024ea757bd9f95e9796d1ae33d184e76e93b9a5da10ddfaa63cc3ce799eb35a0ff234db89946f58f31b0b4c4a42e6ab4aeb0e87ac6536d43079be3b43e32fde7467756cc9ee5c16bb3c375ac75bdb650cc47713ae4379c9509965cc8763049d4d475fe5ff768bc3ea77cc12275a91949787e2d3db165c9596cdb55d5eed1b171f3473bc80f3470ef6a0fa4c5d3cab6733768ccd76fb64dba952c95e2563990e4d442d2875fb1b48b5067973e0c490ccceca915e163804246ac9d6daa740b6e5eaea0a0ff08b2791e596c3d2384236580b9f39b1622c58cdfed790f726071c8cb872fde1fc83f5d2e0b57b56cbb216a9f17fe08a9569413f61cd7529876bbd6941b80a553de28ce35a32409d412b0507d24f63c66fffa65321caa79d3ae7872a56155de729ddbacf99f39b485f3451b618d689eb5ccf3d8620741166b41bc1da3406401c9d1024831faa2d95e0c6042edf66c9928107ed3ea82b80783ba585e56eb5592bcc04234f97b6729ba6050acb159a186ef2b5814c248c0a2cd346c728fb0d4c7fda47336a1e9f24035bfbaf506a2592ab3ec849db155954846f9135ae0c1fdbe078b4b34042cf6402e21d67bdce431b8be6545a21953270f733fdf6cd5950e1132c841290bcd96913cfa0d5fb1bda346bde371536ee4e44ae27c4b42e53817dc6f9a291c4c8743695efcb2ae4ef2cec7a13ae3d5df1414b19005dc13d56a86a8403119f195de5aa47ca2a3b3533dd58cb15a8f8edeed650e7e792751da58225887c046ae3daa29e6ee23aad9767029bbacc1a923fa2874be82523c4aea85ea5a44dc4defd03811863f22216d4587a43be03a1a41af2c3985676b39b31d3ad452f36a8f651337268229c96554355c3bc5082169f04bd3eba4cbe19a48988f3bbe2697407a2d280f0b3535510f5d645070ca24e1ea0c2c2ccc89383bea5a2c3e719b84df9588283ee8f049f08fa2582bab5f9fbec701ca3e96c7281cd421747078242635ed6fb8b5eee90ee20e45d88e278ec811c6e087b497adfa6f01cb4edcefcb4cbcd96768010e4896083694a81309234e4d3d24b735eec2f184a8a1d5e4c7617c3bded87014fed40edd08b43affa796b16cd7f789b6793c4bedb4e1aa5c5aa49cc1d0c3738d1d341d0f80e880d5402ed72c8cba15484a8147ac5d02e415e06a54288ca41ef90396897425e0ea52244a540af643eb4cb909742a918a212f4caa05d087939948a4054cc30f44a401723a4e5133b5c3dc42ed75e8202c804103340770a6962a84d103883082164e62075520d754119ba8542c71216613ada9a2804e4822719eee007117b28e53a207327e4ab653afafe3423f801629f5d80931ebbdf1db53c4788da5cbaaf221df02b05be8720a38ee74150c4404dfaf6dde58188dd6bd2ee54ba54d43710bd3511214cb5b4ba2d9636c94b6144210ce99851d56215e5179ec891329405aaad67b10b045f3b80ae79d7fc4583acbbd8983eeed4f2b5f46af105a48bcc2e035e4a7eb578dde935c0974b57dacc2bd661d7be4611dd383dccc5e3e3e45304b20fca6e30eb109b622c32a9076737c83a944d611639eac1d80d643dce4a962228fbc2acfd28ee5129c8229f7a0fd9a8291bc56c43ec8db18649399c4d204b50f68559db510e6313902538fb1eb271caea9b72fda828633bc8ba3e3540d6a3ac74a7506223eceaee61fd265e28c6a761145cdb2b29e17a3c2807bbb3ea8325231e105c9a8cc02e5a243cc89841d170cf89c25010e655178540dea84d3915efdaa6c74bf99af6775bb86a9e02eb96dfbcca6b27d4fc72002b3481c94015b76d551e4771b7586cfab3b0a5958c2c124256d170899ec46db059b04e87d358d6ce8441624895dca4c8e117f9c40b72549d9d1c480bb189584054e11b786b80d9e543e87d37dd888cf60bb7d6c5ea23a78c58ce1d3d3fa90ccb5e4b1b6aff0b947d576aef7001ecc9e014881119df5672e3a56ad1b1d4b541a1e8e44aa2c48c0cb75db46ab03c92b667a194a8292e32d6a55675f5bf9cb10e838348c16b4ee8ee31865bb0525b01c61cad4b7a4c00ca170db011f3056ef7d2a9cf1117cf17a54dd9854d5a75755f97ea5a012b5daff5403a9bb27a5ce52cf500fcc4209aee76e1e881c3ca65dccf0c0256cdc5cb33733820c1922cf2c0de74ad71439c7cc700ed365a9b80466b86ad788709f3c0df47df32827e3d43e0930066820e10ec62cb015588cb6d970dc63c1f624904208121fe89e5874552478d33c3539e5c9e384318aa100c8fe1377aed30abb984a9df34bfa19639d02e05a61804625ef4a4c3304cfc202c4f283a6fe10c2024a5411a8a5261a17bdbdbbcb4149298850eced821602a4804c611ec07f6bd22ca9151253c7999144aaffc4b8ee9d220139deb787e6e2397008f153a7f8657e063d969067f9870037f90a08abd891e595cfe3fe6689335fb671435361907ca5901c620bdd72e7f2093ae821ca231d192aa388f134b8fc65c0deb56416b3be01f314cacc52cadaf64de5e402d2ca1ac11d1306b9a884aac884e0c035cd89fbbaf220a149c78c18abf802561df182d28208ccd1965333f559311be7156cc7e6c115aef44fb982b369ced12a1761e43e6917b5cd7c6a8be51468ed995e42b4afb1c5e390bce4ca88fcd019551c533f4bc94ce907791d4549db1f2f69b12048d53a1057c2299354d719cb5d2a55a218e0900962173b63518f0ef214feb70474ea6c17c9903a5f95ee475074b5699c278bfb4f205450b70fc6dbecea019155a4004ca7d77d1656cac4c0f58bd6d17e6740c4970ea09baaad5f51a479019663732e40c079e1bee21db47d5f3f87cbf57aa99fd1fa37893df853f73d16f31b62051e17ef5e2422b7acb67dbf2bb897deacaf308d48ce93d0ea62bfdb13a556182d57399fb3e5f915d82b5fd243138593d433556ad2dc414c766b35439efbd778083b3015da8285ff019c5f8ce9ec1c5ac104701c3056052624eff2174b2efe57773a7f05d54d5126557fe2dd6e57d258184fe5161990141d84f75d52bb6ddcde9344d9b7ed5f51ad16f25ae67e15801a9190b9070b6788d0ed5a803fa4d0f04c2a6686c6eecf252560889526b74cf027ec65cdef8d3578d36a04d75ccef31d4911baa4aaeca9f0c89f6f2ab818ee5eefd6047e622efa3ad70fc7bd1fb47942a64ce085dccb5cb50a912262bdc48adac52005f50dbd3b1d69e08f6ba2653dc09c282cfa0fa19cc6065ff5e75c7e963a9add3bb78bd19b038367bed94aaf6fa7c6789ff77d0183dd284b4cba069e12efbc36c03066caf7241f1b72bdeeb28b864fdda8ba9796b3c6cc185e7a76abb46f4a165db664e073d29249619d5af5935ef9c9492154f82243a9f2f466212cbd030abf72cd91346a405fa790d131b3f763087a13e55ab9683d607802535a71908e6709cfe89116d5af1a4137652e9ecc374e9f2a0fb7bf060572caa0a0fe55d097367ecde0b36ef30cadbd3b0e5619d837a74c96e54e750de95623cabb2b7930db7231c264d41be6cc02c0d889efd9e7ebad53c0e415d66f557e70b73a6305d97cb7c9fe79e3b868c58991ac030fad5fd0e96e8e42317b0b179025e39943fe6226b94dc488532b99eb0650460dc07412af3213a4665eb9785347345d004493ced526e8a30c008e1bff16ca18b164992b1f275ac201c6d1e559fe9c928200e235c74b21b90ad02b16b284734f2f4b198488fba7670bb61997e923cc3d74760670df3563a2bb0a2ebc90984f0117bfcadd0b0349ba2994175816540bf429ba4dc3ce0fcc5c2a23a37b2dcad2b27a3c85e99ea2e45c878bf94f27d46809ca75c54897c22f2cf9146baf0738788a6ad97ac5d1bb975036e949e0efe2561c20d83c28800b9d1d3ca525aaf3436d387d73590bb2c4e3efbe79e233e7a333e50c639ba07f116fee5f6f20c1e9fad2815d848c89289677525fcb9c21a662bcb7e70dce7d688ab492a732500c526b47c7068f59e2d1cf60bbc60b7e073496b7a5633e301e18bdc2f9c1528b6e4c50bdce3d0699dcf6b50a199711cea0de8b060c894fc8173de47e4e9f39f8a11086ee6948333ed7a1dab80e7254e963eee0a4cd300279040c1ab65e87b748634cc12d95e90d1db63afdd4a2677c7941dee18c91f2d60b925cf036670d85b6cf70fb960d105ffc4851de55f05ea8b9553f501ee8d4b8ff6d787f32b6e9ac1a287f31e4efa31fe3b065fe8580d8397f1b8fe7a1ce09c3275897b64d10f86e82799cbe34a5030e12b46f53d7874360c6ca23fe5c94c812a7af117f1ebcf81c0ba8edccffe3fa11f304cda6141f274dca1cafbc92d3ad9d9915d2239e5e23ab6f98d5663d278f57a0897e2a44587716e7ca993638decb3a9b46850993c005ad0449168d7714cb4a4ddf8f21590d1325843cf60ed1f955ec0edd5cacbba4fffc6945f6c30a5e378593b2d291df7d47eb48536cda03903d8e11025cf14c31309850e69da5db39fa66486f86727adcfaf3dcfd3eebbe13ae3f3f40935fd0715ea8340aa8ce5462c2384d5bbd97380fe612a90f572ac2123f1652026d168277eee51977d8f9ec0bbef5cf41d7f0eba7c33a1bfeecc9a375e0d3ae7f2a87e82ced72b3cd523b58e7fc8198d5067b23f1fd3ce4f4efc39b52a71e527998792ff06a8afa95ec28f113ff82fd9e9f078bc2bfa1c2fbb35441d854a59ed4ed0b6979b51fa850c7bda0ddedc14eaaa5dc26f9ca8780dbb9b023eca119d1105542e50645f217ff00838f4d901d22cd8dcb00c5c9e8fd4b66a6a4878c5501232249d138836ad0d31b9780b2679a915a65537c2f564181bedd77d8a95c7d42a74754264f8a491250f38adb64bccae2778cb269fc8c6d8ca991dd15e5812b174e1ff9ccaa7f63963fee46c0e49d63386a16d850ef0f40b5569a1e931292fc329cadf3f7152e635a1ffc6239c3cb6cb8d67a544dca7d6d0d7d062afb7b050fdf800da9be294e82c50402749be5341dee9fe9cc6b71f98be7a4d6c0ab4eec780e1b6a8bf9799d540da005b7e28ac067b13ba017c2af50b162f4fc2406e927427fa761b67b6e15f3e7d3eea1d8056f61d51cadbeec76739ffa6b64d9f25075638fdf5f17a9fb9d61f208f580e350c9fb53899fc8bebf7580b788dba697b248a8119251f5061ba614469cb3335f63c1ea128401420610bfd5e211bd86ca202abfa608f0702fdd17d0804f5094782364c728001ef3dfe78d07ede11d6f1f49eba3fded30707c3a024e4fccf7b653d0d4df627aab87d6fcb011ea1da6ebf2c3cc31d6f25a9d2356dfcff531bafad9f9c15069e24f4a1b186f8d01e3446dd7d542a9c690e3adb69667def8f147e99c0f85452fc37f31f8e6a6622cf58f787740e44e7e81863e9bf5d3102b66292b23997a74dbc6f0d830cc221be41e81be594b153af73b58b34663b957db8f6c8bfc64c89a619118f9fceef93827118bbaebe17dce2273183cf7a5eaf1bbfe2d993649a7021755c302a74a2c134f225afb3d08ea428763efd5fbb3626ffddd45dfb59f6bed167ce3fd5f91e7a9d53a218ee3373ae703111c54404e53fd367e825b89eab7ef0903ad8bf617f877c3372bfe8097f9b71b643cf94c0f94671f3d36775a63fce5f36d6d5bd0675d9d0f73892eb9a04bb261fdd6bc3554bda6568a7a31bef3caf6ba6db9d4dc9759e6738e26bee0790a7250330f67f863e433917fd91c0b56dda19893a4c1eee01d683c54e579a79c39b7e377d04a21ab39dd8e6aa2afdeee8e7c0eabd50afc3545107dcc663d7a17e958e5dd194d8d38b582cc55693c89513ee2713813356da0b47d9043c38661a89c32a5ca2e2bbbc45a7883f9976db1476123f6aea99f5cf881c8935ddf4f6d1bf496ad94547c8bdc9d7cc74ad31fee869ef6efb61687e216eff660a0ed27ce974192bd7f0fdd3b79964cd919ec8b599cfc6f07a33f6d8abed273d51d533f6cc113b17b5b8eaedd2bc93d5b7c50c917bcad499eb5f31f9d26bfa892da3bf93f4b20b8e107bb3eff949ad23ded195338fad90ba13eae8bad4a0a541b881dc36506d86b341846db86bc6b506546dfca859975d42e49de342fb718bd17c15d1c75ce170769709b67a10328ff471bd764676473072cc5ab9b1ba0d096fc834665b3f1cbf938605dc241b64ff99584dd30273d81df52fe758e02a0547ec3a1acf1bc7e0ad4531fea28b3336814e326144109ae2c189e3b0a62db3fca2d921c67fc226b26f16055e537a5b88679c10633d0f8135143e9b2e8b672f30ec841defd766fa955685cca188e448c3f82ed5960e84aa9787e1145ba19bd97d74e76da1ba7fb9de8d0ec184da7c0f8a20ea2ca0a7b51d5a77786b71defa251674eb089401d7622c4befea7cef43d2d734fc2854cb30aacfe307cdd868fdb29841f48934db6ae3ed18d1b36c1c05e38049b63b87305e22100cb34b383b67f068d3df3b1aeeaa4153e451834d3bf376a81a8ddec8a8c82c4b6c6a56ff94c142c1727635b45004badb22592a85235f9a6340d8e1734a6ea432a0cb0e2a462f6cbfdf11ed7ac2e4a73553c304124efc168df4cb76c620dfe131c8c329425245c5008306b881bfc503b76e508b8a9d0255a72d64750b6fd2c804246bea28b440569e48ae4d776905f0f5381e4357aaef7b301e1dd5759551703341051804fef7619da525830ad1a6d96582bfbfa0e53e82778c2849d581b36867b8f5962d712816527ca2e9ea456cd5ce0834b1e818527140c59bd0bfd8a30363411fa39ce54f029b9e07ea1453bc94d7f502e5cd14e32f6dbb8c28b6e8779a3ac6d25c0d3c8cb4fd4453a0de6ccd026d1388702191f60512567da2a4c58e552e32fcd858c26c756d2855c721fb53707c3530399064d317894a50d51dcb4358a69bca0258a54b2d00298804dc426531aec7c7ec3d6db78ee680bfcaae892ecd827df6d433a9f3c020c83a8dd08c4b689f9e876aadfec7f0d5112836b9dc7dd6144551ff2257d12c54b1dfee77cc83ab786c0e1487eab50fb168965fa99f89c870f662f284915e8a92cbd13b0670b13e099df5ff408f319d6637ef77f945f7136de9b9793f64393a52cd0d2223e25c5fc3ba77bb8b343dfe81be7765206a6418c76988f1ecab92133ba458b370f572bd8a32b02739d6c070c2b01359171293f1c81f370523de63ff099d4b676d1793e992e5246372c4bd7324c2686f9c8d57b5262876855793ab2f70fc0a884c774e9ec3f35b96e3fa9ebe6174318839ff2d41f482aba8b65d5e0e7c0a8aa94cf89bd75e119adad3b68c0e19d3b2879cb1cbbf88f85ac092bc6d68d106b7951a049746513bf5df984b513dec29387fb919bade65b73b91aecbc8ef99dd2a6cc1dcca60b902d69378395b8ed8789a1d68240d794c5a6edb6039ac041a1ec5377b2140e2d17fcb1f14d219f6c07f7570d7ee6c214d47f910f8a978efc83ab8dee9c4750b497ff4e7bacfe14c76f39593c0ab0d17c452ecda0b4da0c685969737fbf789270a2b076b35f032d31235d7c22ef36b261ff522ee74c84fe7f61f0ec51da8b4e3702ced1072b16baa38d5fdb201cc8b9c1aa1027378dc4b0f78f8c6b4fac28bb45aef95fed4b193ef71f184ff4190adec898be568b03dd61532c8eb6ace2999b7f7a4bca5fd58f14bc87077191c65388d0fcc312b77baf78386318258b14bd586cde2e47110936b0585b9cc47d2bc7a7f10d92feee367b2fad110d74d3cdcecf0402150f3e59288e697052c0570565ce3d8c08025440e0f2cb318324f636e8ba9e36ec66d82dcacde64b6b85321523f4321fab13cc7d7e0b82a9cbc19945a40610d95b4395537ec95adae98252f7d24ec7a41ad42499173efa71b7232be33b010a64280e9ac05d0dfa0af052d943c25114029a8d741ad523bcd9e96a44ace936f492f549fa6d5ff1bce77e67d1543e86b18905916854f1f95dd43f0b62e46350b532b589d8338d7c790095956dab88cc90cd84674e03e8cbb904cde1e3ab2d6bd97e8f9da08696717736abbf2b3d387c6ee9edff09fcefe33ea82fb27d8841b6aa6a3fbac33eb9da8d9043906832dde47bff7bd4e9f00c47a545133e28e7b1d481c581147e3f5c4da4abae8cce0b849dc419b45d788bac1d7fe194b0618ce301a7530b343f144dc2bf177e3aaa03b811c72094fedc967da5de43f370e63d99b1c1e8860503d197967abd62158e8bf18bc1023b5471ddd8011aabf45694c8f08cf27e03e20be8e094eb04a705b7a8c6ecf71130b964e0a8b710b48200a6425236341820a6de6654fe30e4fd8cad4342df56ebf9bfbfa3b78c3c5615458c80298fad83a6084a5a807cd51f2e4f42e83f7d6e90edf00a961d77a4902abd108ffd84cd76a7c921c5fa730e74641ce40ae96050dfa7e466e1282a0d20da3782098fb905312f54e0b109521e6b9370fd0031a20bd544b5616f629885edcd13241d61b50eefa1745dd18c501966fd3b48989540bb5b1de25462cdbd45353a2fe7030b6fd066dfd0fb0d5fea33b12fc3a632f13a821551e5cc27a695cf89bc483e01352d094837b3c50a65a96ef2f0b1a7f4fe100179d9ca8beb1793b1a65eb4180c74b8d2b7c3c01e2a8554ace7b20613b24e4aa3b856d386cfd3e7318ea108097a8c97699d0def0cb8b62def6231170e8bca3e51c198093e7d9799dd2adcc4c35995dc0a39e66459bd5afecef98d85c86d9db7a82ca9eb340c8a318338f549769da01756361c6663105987f3a740694d2e4c822b180adf34a8bbe4099dc7aa77905cd312a7ab828a97852e2d8eec16aff44fb618c3bda8d4ab889216961ec4ca7e1264c7f5d32d3a26efaf424a3d9a4495f131720ec5050f54638d23442e5d6f136ff5f893e6ef3b3d28dfad7fd7cae8e8a0ba2c93a073851aed5e88a1f91beb8f3afbc0e92a180ac9f98e35696e67b88ee43c660ebf51caf729a3e771942fb8e819f9efb8ad3d8154d0f71cadc285010fa81baf83a014ad337944f4ede666c2d061ee766a7557df2e1b7b3928fafd9d0a008e31c6e10e1d3f3c95fc3fd009e4503c4e1f2fe2dcfd830be5e615e4c67d5f69355c58e230c97043abed702ab8af1788ca0d4bb45cf663ce00ec1be736ec3b43efc0faf79482062dd07c58d9fa08d6feb50319de6fe25d7be58d8971e17f7a2e0a11ccba66144801a7efb1c5b2ceab3190f23fab44182cdd0b62c2507569ee5fe83e8d4a5734979b3eef8ef432b2b66289eeef77e2fe8413dbd720efb20bd1d0355f70cb71e3aaf5e2b388ac9f5ae3e2b8ae9eb108ecdcc2f86c572cf5eaf80810637d2421ebdf80d6e63c064b1011dc59fd2c08343efe6f88f9d1133b58991a2a87a5aa1dbf76eb26be09e7068009d541b5219a3120c380099f45f3476463e06812fc5d820488a429f2385068ed054b2de1c7804034cd8bb33b209fa798f6acee6a58c66b8a846e4bf4e95b164cae763ea5cabd495c4147aeed42d9529754f79cf450a61aa2b8c96cdc5b1902b0ecb2a168a803f63d2569be96d9ce2f64af09b52aafa83f42f16180a590388014f600a19a02da5824fb8f66f86d41c6119d724dbeb7214f06baef17f889765e7bbbb79e67b1000f059232223d31517585d2f47d3ceee75d1679439722a1e3854c14550473e1297011d13040d610452861e39225506d2c777467f6abfe41376f7331870a9d00d96c92ce3d620611e142417d2ff3178fab844f90ec0eda87ac23f72144953b5f06962f8b027377a77d37a07f18739b839b7db41cd62a5b971f9be17f70faecb972332a16d7863165ce1dc43ea61d0aed9a5f400ffbb1bbaa83db7b615f7c240c59de73908138ed2946d6de3f144f046404349d7962f51b13ea836e712467539e8b3861cdddabfef56bc5d39d873eab759fc690b3ac8edf77ccd1ff4dd9f73e59853c7595c39d50a9bfdf096d2ead66d508296f37144b3058b6a534c40f935e24d35a11f3cdc98d64d8ab8b213a0e15ba223317e4f22d4e833c902833b59ca4715f55d4a4674c7aad7f00a5bc12abfb943942c26aba1e976742f485d4ba9c7e1853142bcbc945983d7494e7dd8ea060f364f365036c2e018b8aee4d42909d81d69b540a1a144f6691309b0f5bb999953c6b871b8b0dd573061975e91029a29be6f2bf50aae7e91d030ab84f7a12d40907b6e23481754c1cf5ac6abe763c3fcfc00e2eea343a0b1569207d884cc03d3ff1956f9cb52a3b25224bb372e7643e4a64a33a648d58b21a21d7bc2c4c6405d40ce609d6de10d097a68b541bd054fe182d6f259458bc43f6ea23e3a02554c26418a6fa1f267489e0e043578cc06f3facaf55c429a35c0932e21bc8d8051c18d9c6f3c6621f397b76a9838d6ccad4a0cf94bdd7b80abd80b9d7a6d597ffc0ec60296e6f66964eebb1f71320ec7164fc030535d0db177b3250f71c84bd360eb238eb543d3a007692af60535a2b5cf0939de66d696575d44ae5a77c31ee4a7b9aeff5b3d67023caeccb33ff987876dc0b5be9e3ca954287369ec39484a520f67e3b7cd8d6a75b2f51b81173d5e831f84286b82842a6ed27e993acd9c8da3514ff1e463e47a21e32b2d2e7cece120948531ef905b25be4d0972444884d378f9cd8d5b7b44c5a519c680fff3085e5f5dcb5a4a7376334f21b30e02c5e34928e5579d720b73da7c7c34e3b58d011fb5f22e8eb5b305605e32fc98d953c2746ca89de1a49d8107cd9a00e749cfa84d9cabc80427334ed6208742cc0ea67e6094eaa1c01253107f871f9a9acf20c0742c333a2ab5d5d49e547b96d68d26d1e1adce22bfb2b37bf5b1c1d5a7d2e4f038efba092abace9e3d40e03244468781cf04155ba0b8b0d8b239849e99598331f794eadf09eb721575aae1351d7c37ab7fe7b416073c067ccf111a9d483c26601c8408dc2cafa62a2a34d7625bf413a8b3ecccef4fc96c6158b9a7a17a889855cbf09a8634fe85040f47d2e1b22511db9304873c736d4b86824d30315369c25836effc136ec4062553021e0276d2c5620ce8ceffc3989ffc9faf94f5a7d563b43c0365fe7296b8b92823625b19178df491d6730dd0f40ee20f205d01a9b3efb0ac2796198e9393da8fe189fc759203db41823017e573be77e4c8ec3ddd76a7f2ea7c12bfd700ab98b2ce338941cc8bfb60103a40a3f80d8be317591e53ae1241f2da01b72715aeb0f39ba72fd13c30bbd41c1d5347d363a0f49153f2c7878d3ab924b3e43279720af7de1ede2bdc6af63cd57b6fa221e0d8704c79e2d250a40989645fe3d2c34155883ba69aa071af94af989a118ba536456e4a07387dba36efe7dd5207ff677682aca151f3d6aae1ee2f0498fefb2a9ecb075cb3f9de8d0e26bde5bcef9e87a5377e10e9ea97689f9f2e1c12b6812972a5099f1a0c08d3790dcb4d4ae199bd2cbc21e58d5eb29da4e12a941cf958c6598f2cedf510bdd6bcc4bcb8dc1c4cbb7b78db6e5f334e0a1dd054beed0ee0bde50afeeb8423eee385b3d6dee8b0f1a7be1d4b15b5b42ab97ded68dea7e009162cc7d5d904d509082a26445405eb9af5dae352446de141043b21962a8ea4fbe66f1a9d5bac59b27f17c03ab7935cce7182bf373849dae0ff59533eab4e295264e61ca3f68be245d5956536d16b517d742961418151bcc6b531d740be1b0b5f062d5f7bbacecd9d8b1dfa08cf99b9acf2bf0c98945981d78179ae8e26c580674b305be76d6c622d9bf2da6af5b8e88b5504e722fd0d9d02d24f9e1b52c11c1d405c69b6c65b09e041a2538b18c9b359b9a1645cf7fb648b657d4cc3c178699dda0789f14aac0f430f552b19459f8388784fdcec533e6f9c7d3ef4fb86e92a4faec977679ae8616d5c3be23ba8f141fa685667e36589c16658fa89c07d7fdde08c833bb94f95fc717a24caa1a16cff639d39049dcfe56fb424b78ad1e344b2bb7c3cfa8f3e9bc49d5c9e30e7322ea6ebdae2c5f05f4219ec019df9636078886f1a86e3cade0f035c618c091914d261db5c3cb5287c05f4703724058bc8df0b5c89884e7b1bdd72328481537c95d18cdee446ff399544651f1956b32ae3912f3066eec5efaddfcd578f1bed8e563d044f9d3d3ec292e001580a9a7ba92d5c77f8f32b0ba24c8c5ce4c78a1ba92b472178d7b94739c519fca33a143e4c05e50d1bf0264f46d628ca6786c674323e0989b76eebf39cc42897ea23da4d544ff8a0ec8a4fb44d4ee751522ed652de048386cdf651a655fbc67388707c6c03290578c837db8f79aa37f3aea33b4a49074665196e75c97dbdac9808cf29cfd53b1f1d59fe701aff68f91924a02f67c1b3d75d68964ad62dc71bec056404fe80e96fe3019ea81bdc337e582e2c954ad8eb852b0795f39c204af63b8570ad88d4eb47460b797ef2195909ff2c792ec8277524fa0b3f5f9ef5497890338f7ced30b856fefe3ff8606da0fb1a92416629d5ba6b3f37bb54a0271918ae5afd0faa15aca23717bc2cf5ef1fb06f21b901a422913be8fc964973641e57045cf1d6339298247dd4d9fa0c391579bbb88ee80488be360e7af9f68734f4b5fea9ea39d8a527434a46da78e5ebfc783aa59969b5e4e7b5ba459d832b491b59eab717f8ba1c227b562851e26cf66fbbf6b5e9c53f697c6da00686f408568ab5dcc415622a1cfde465fe9e636f84cc94a839da3636c13a24c0b216df6630e1333512369c23e8c208f27400de1f467cf8996be50d5ee169f02f3e90b159f2c3531030a0f57031e4cd887a4cde7d3a87d83d17616b0a9e2e6178447b23a80dca11ea318e7e73ff7085fc27a31da077b1500ccec6e3e634b939b0dccbdc7d1cf9e0a533bdffbeb3872a53230e20fe823176249ceeede4ae16fa1392badb1d732bd803a93e2d8ff8949781f91849dbb0146ecd276e8e9ae9f5bffd30a75b8f97def07ec1fcf93a446650fa02811422ecbffae1b8d457f7cfa738585f05a197a6eeb523ebda9d1415d7cda62b7bd9c917d431478e7263dd8713db6d8af75c0698ee476850b9d707c4b4210474b0ab0c21b2423800803eafffd66cb7fbbdfb6526fe452b19e0adb16826f5acb09a2e6a9b0a3e04d21b5939b8731deee4bda41e081dc4a0dce2a11388139a2df4ea33131d34832479c1b2887d71019fe0d548cee042625df4d47500f70a517eb43282f29b4821183942bc1dccaca1b889941cd4c214d4c209318b99ac1c71ac7424aee55553c3c4dd71c365d137cf4a44c5d5b93ebe3eeef99308361aa1a6a6ba59b132c6fbac66be21b6ab3dffd74fe02ac6ee42fae30b28b824892407b08423b1588d9451605ecc1de724d8eb20b54e706f23a7ac78290e4abdd4e579b601346e35838225c3af6b3d3b26a343419ce5199f5e8b7f5573af014f7a50e9cf15cb3ccb522f6bf0e6ebd5f3174638d1d206e6434ab51d3e219b4ab64f86b76b367ec0bf97be1fb5c79d21a349df2d93f11ac1b5feabfe7fd4c21d8b763b76d82f5dff6477ea539a83348b812030ce44816f6055e9addfb77581f4f3f13b687b29dc34bd58f8c48a1ba2f1f39737908702bc35c1f99325d4fe0a1f4a5baf0dbdc78bbedbc14754a144f4f6127cbcc91f9056aadf772d8896234d77b05ad9178f9080a49f5f5a27fd48d464391941ae7e1e44e0986efa48efbc6f80eafc2872af25842a3d16188d151d8715180832a94447b170b3c016794c19738dfb7146a568fe833b61886676ab1822073ec8a59b58b4e9be47e5bf6230321f1400829ff1b9ae799352e96a5cb05034c7ed3b83d09bb12c9528b8d84967f91a94fb5ae1f89ebdcd222b470b816b004884a53c2b16b6a393d8ea4f116705d4ba881c21e8d09d09e3b4c05b0015fbc13a62c7edb6bd5f2704efd6576ec07d422af0f40129c4c41c0144b29ee06e88e3df3760f86cd242deaca3d121a2b571a2f68db03ab1c6ea20f5163b1e43a2d4363409a2b335847a4e767e66ffba6299cf6e20ca26f94d41f3834a0e9b67f384a0d0370568f1c60e52d092368ea2aeb925fbdf25a4b73151304175cedffa6422fdfa2131fc5f52b0ff427542bce83d3c3b8378466968f2ef7d9c3e2fc8320b1c0e53c350a9ed82ff194955358f40e03a60c80dede2a8e0eae44a53c87847ec7f126c4fcc05f0afeca9d96109a322f4039abe36dd81807c5963c4adc28399fba5e28ab16994688c98ba357cce0cdb0c469564604157d7134a8293b4098098fff09910cf91f901590151cecbe964c05e230ad8d07c913771b32a6bf14ed71730993d6e420413de0438fc60764ea21c3c57dfa600456a96b52a2f8bc6afcdc3270d15fd6d3649641192f31015d344d5d68311363c167b0a60dc25911473a30a1da09e89c57282f8b3265054aa815aa3745aee48b18feb2bb205349097a9aa642018275ce4c4b0ef4395783b61d624f5436bd7cb27a8007dae2dd379bba0cd6f164a1f674f280337f4a9b5149a13df4b3994e4fb83c36c34c9dae22991deb349c29bf807e78bf632cb49b955326eeafaa9ec527aa6a02f59426f1107d60afa3df206f8083182be626609235dcf4f8efa15d8a62821c14e0ed9c1171b474f13456681cca9dfa42aa34c1f9f1bb436008467a1d025c27e8ef064b94897dc696b48871ba4a82b47b601d91a50eecad0d888d7b744d0e96e2216eceb95b3f2c90409aba9e8e469c315b4b124bf82bc12f5a8d37fc4e858722f94d5e834d8d6ce11f88c83d686a6d931e312db72aced5e1e4bcd39127aa1b7dbc93f6a2ad3f1371af0396ff30b055760c7ddd61865b1df175ba7ddcd27eb2b99bb696e8765448a580b1cf8f2411babaee0deca60b29829b63ad6d87485607005328e662dd611675cf4e67f69701c33e1f4fbc732f81c43243cfdf7735a138316653c99e4a60968ed7c43d082cfe2dc23f8abc75396ef506ba7d130346d600b86472c490662752309f2e63110bf684436b161601abe8bb8666e931bd4f3591d5acb3daed88fd1d8d431d2b98c0496eae4a4aac335a954c7a0fa4b8d04203b5a96188847b666951d09989b4facd3b42ea194a48511c40fcce9bfb69502807549606cc9b69657cc0e7aa6d9e2f328b3bd94d0e29dedc8904253ec9448e274185eebdb529081538e9f1b0711d53e88e7294f933118c4ba0d9243109d60ae5a3a0f1bd1a31f2e8eb9936d9c5b7c6bfb0ead3510c326d838814e16c1aab65c92c09b1d08b80e83e019bec808a8b4c2e365161911db588f6c2a50d9c7340cee58ed3a89959c43373cbeb1a667b17dcb4441b3945b0b0577460afa2c148b79ba2a6fa5024fbc95b6d02338b63fbaefa876b9350b4b528b001fe9cac067ed922f5cf8350708da5c4e2055d3aee84f309d641227d0a2d13b383962c1cb8f62da5de0d7efac641bc25da71ec2b56f1334203f8a26a6e8c47ed63c52326ebd90e562efe8179c7d2f9167c3532ffe43dfe755c0f92c71b0e65a932673bd13ae26dbc4b6a9d814f9f0332300985756c0b4ee5617162e09db27552dfb1c7372cbd637e1cc21b0b846c6aab10a2db9916b029fd03522db1079f9c09ff17a2c25d066994ef93c523f1a14fd76b18fce5f1696e52a6d0215fe838899f3272823608caea61844c109889c561063aab13bad762586975a49f980feee1c18f110657da1e38e74534fbddd26ba791e03687123654caf61600f9a9368327ffd4c3cd18c6aa58fe99e76ce2e6d33e37a8fe5d937648c5381cef53243fd8df8fbcb626eaea7bf10ebb383339584973cffd2e6ab0819c7341f94b45c04ab514fdbd5896cdca086f722f48b5f86b76814f2de2d08d06035ba3155e29046ae49a3350fbb0e2dece5affce0ac6a4aa01494927ce5f2f129c4d8a8fe64d7173aed875b9cac7b2d8705a6c373a36ee18739d51eb3209c811bbe02d3b1314e1ed2d3163af23a33aaa00f2439e2302fec29f7b399479e975edaa630f4dbf68da5e0e6dc5619ff02fff9332fb155c55699361eb2ed6960eae5d457d42de25caf41726f32de3241b3d9f1dd17d5cd28ffae077c342dbc18c5ede1b403d65c85cb1a2127ac96dc22dc7c2eadf1a49dac232cfdb1cb6ccacb55402e25e016d4fe3a875d423b310817a51a34031d5e06f23b98984a538789a3aa07e00d51002c535f1504760e42d32308e497ae442318247df1fa1a8b2780dac5c497bed29810b93b484b419c9bba13ec689c076c795b6e465921dc8e63878b509cb26fb2b6a8159c797dc8aa65ae8bcd60ddc4341b230e85561485947dbdf5eee9df0d225f10f1065ce1b3bf400061dfd27d80f14123017e4ced1158713387edfc662b6d1675b32b6af5e5e258e95d5d91bcc058b248da7e1587fbb17f60ba17bde7a80191a8f83eeb516301914958f11fb3aba753293f85973e4cc6095758993be2130a9c3a6d23196a6e567714e4cb952168dc392bb09842b13a0dd669efcb590ac2f45365922deef14aead0703da9932aba739b14aedff179e783a430d974b92e352eb9e46d7f2fba1cc4083b1f128edc57652ea92470be2b78af11eddb02220a62bff3c88a53818aa2045b7d17887b88720a9107fabfa621aa6ebed73af14f78ecdca0f5aa1e042802ae9d2d0d35af0b1b5232588a69dc3b30e3d4f44374781ea21154d59f77108ac5ff360bee8fcfb7fa0a7713a05065541df969af0a02891830050a15fec2b6016cfd05ea103ffc1bee73995ca5ff74b157bb852700dfd44b387c18c0812168f5dfb21c36e2b1bd81ab6047ba6df3a565a0922054c870953f116fceb18c8384cb00bdbf565189332899924c907c4afd1e1940c743fec979ae809c93ea24d3eb5f37e5e3f22950a3f141572b077b6053ad5daefa2280b53ebf64cfcde8f304f09857ac3eb61aef7fc51035c39e02491a54fac70e87cb51cbc11875f5a360b37baaf9ce4926bf68707f43af603b820aebe1f5e7d829a682aab01d25599209e6781c42b900d3f3938e5b48385213327be0b9995a8d84a0a1874aadce107b39d2c722aed8a51a3e7edc90487f800298b220958f8dc4fc030b01d786a62ad84db3f14926906bb6f1ff14b6107b91549012a5c3b009f5411cf8a0f719209b742174491df15d09fad72746edf9477d81e498b4a32755de9e77a7c7e0db35f4df60c55b631098733becd52f18ae3fcbd8de11ddbb7c09218650afc15c689110120ca16694b4c70148cd51de211b826cc42e40c5c6eea41adac08eeda138bd2c0462bf177421b91f667d8c086488729869a287f0beb652242321f1322cb97a88d591ef947f2cfc5cac5ccedaadc240484d59b80e42bd9977246bd9cd637dc3a25fb1cf7fee553c37a14173e46cf5314be769908b3551520596344984c6cc8d0d95572f1a04a463effb9fa6ab74abe0c3e5222c654c5be458977c392064159f1c0e70762808acb85b72a5c0be70eab5f78c2468c2284b74ff3b699be85ed1cc95647302821d437785c67eb4d30f72b9b87c7c42db51e92d2a0f2e111b8c7db580670951b925432a5972006a30b890558530971b3131f4a6be9785d58c6cf7cbc5d7f2c166108c04863337c6273fcb1bb33b062e4de86b3a99289265d6113679a02e9ace4ca72d68dcd514d4fe2b3cf9c67c62e2a33b5d64fd1dc615800c15001effafbc7e8135b0c2e35ab92b67a72720ee9126b0a1b12670576bc105fac4aca34d84f2a0a02b48fcb6039ecb0e1d15d7fd24563caddcaf83b899f80d4537fbc7f9ad46396fb8944c7cb592951560c30b0df312709653e22bf679576bf39a7d82e3d81edffd59534eb4b5c007b9a18e2d842dea575d580745a871c63d0dafc377f83d981d2efa2f1dabacac6b80697c4d8b61878385f3791524f866e6c8bd6ebbc9d242fb2b507d01a45081b903373e58611af65099ddcd6268f9945998e0ea1e07f845556ce20aafc4ec9a999602aa10a7b3799ec44c4c5228c48df3e608754523ed846a114387a23aab1add4458dc30c5a137173ab0ebaf45f12390ec4274ace4b3a030f6538ce3beadb278f1dbdf740760292bfb728ffaaabbc459227e388eeff3d69fc5ce865deb93c0fab797a9233046e9ecf88de45e31f107b8e66923f843cfc6c6f8cf039d8d89c823b5ffa1ce59fbedf48f2c49e556d11dbe7184a035d2ca9e8b2ccb9017a39171fda83b20279948d2e3b24560ca9afa0148268228318280da2fff54f7b13cea8ded014749336cacd9f758d283178b67cd8e197f77a7a34c0e9b9ebf2f3423b120722766ff229a0a110dae02a0c8135a494613c26e3d51f1e819536f88b28be441280091f5f7f16282a659a117501e3c2d3c522c3f3b4956a3ed64103a8fd7051bc9f8ba97bb6b57491871a8e2c6191dbf47c5a3c0c05a25c2a714afecbd9fa1b0e4bb7af9276333581fe83c6ad71a87a44c90316122af10876149a1c921fb5409bc1452cfefbda08e03441a48ac5387451d919572628215d06972573f1dab312b48499d52a2e6900c5b13edff8199e738eae2098b10bdd11db83e6f288c71e81a93f581af731350612497414d9f7a9dcaa8dd0eb7f0fa194802767a24bbce8f5b9d3376bd2e57ce7f26a63fd8cafb022b0a3ec10347109c616be79b71b4b4e162d3abbb4dd98ca24687299f41e7a1a942ea27b1581a93a191c4926f6858244a3f18c72959a938eefc3e1fea0e63257dc17d2b21af87ca65361c17ee040dd4706ed6c3fd70f1c91f059f7d269e2f7652279a738f040b402b936e18e171e00032777135bf0e80ece8cb70c9f6812ec652681d2eec7808e0c1aa84afbca326baf3499a413f0fc0489b92560e1ec09214957a7752da9101fae5794b3c9e9599ce606043ffb0cb00a56011a72818b69d8df75a0ffdb35918f40851d94a2dc769772a73285375a54fca8c888a6a6192e09996160604d53a4aadb0a876029aee17051f3cb80789965bf188b780c598c6ea8857a3996f82809bcff23941cc4b3f2b5d11eb1fe4db22deba363e44912f162a1e3e210b59870349c05908b51f88f22bb19706dda0b4279be8ceb240a758eb8cecfda00467f75da4c62f7bb09dd92099576ab28cbe9bfbdd7d67a59d1188c80aa514bd672aa2dc717b89ea088ceabe69208400f5eb7a4399fd5ec64e52995fa7267ae7f75ffaedf87d51046bd7c3629dec153579bf339259926ca4661f7a510d165c34c9c3b79c9c90c62265ca6c988ec065896dd942980f72ce19e0bb28ee57de41e905655a3633f9e8b87e3d85cf2b166beb79588fa2f71341a022fa8d204f354e68e7f80712d9fe97a1e14868d8ac80c015e054904f0ed1ca5cc6699e9a3e43385c46afc696b8b07d5c4bd1a74eef9f547901d971947f52a9fa95395f3ebcdea2e55c464a01d3f70c9ffc0d912ea7e21d864aa40e1fed0c1faa6722db54580290c6fe0f236653a7e52d01724bc1dcf5a9f9b4ff76577861b241e9c48946f465b1239daa496fdf588ddfb2dc835a118d4d3d4337ef096312d22a87fd28385ffb3879204a301b94240af5c1269b91ab1971fc9f484b26585630c61d5714c889105265752bfe75123db9b92194261a1c90916bb58e4443d6899018543514d3d0928d41b470dee205901b5ec3eb83a547e8a9b76ba8b1e5e44c1722ed5c185d1b966b58dd80917a6a64dd43d2f6cc37c4f94bb61330d50c67ec8059357ed93a174481d479623196181bb8e37393dc8a3332af2ac5eb3dc540b3d013fec2f67203f45dd0e3dc0c48d6dcbe64616c50debcc154c79808ad1b90824aa671311f1ff052edb397f934426102868fe990fae7dc48c932fb8ca48b08303d21154ef4b1eba804d8097383f76f24fa3c8fdf3c4a9d9676641cbd8ad37df2d48c615e998af5b4c5e99179df42bb67daa3c05157041a2911aafb623c606fb58486f212ce3cf0b7d0704d55e033a1899a37cc9ecf2f3f740a9ba223c4c5e7b380f452b189c6e2ba5bb0fe2611bdcb2fa71159a38c4fe367aefecea2ccea4d47efa2b83b9bdc23345b213a0a915e366ee7da8224fe1c0779bb1a3ad473e93dc828d8da0535ace7ac01f5ee4fdbf02dc3562ad30df98e90b463ba8ab84f34b30b64f838c95639a44d850943d80d5f16b1f12d0335c21e9f903573a0f42e8b940350fbeedeb899c8ef0df1f6e089c82bb9871b8717bfce6dc774f218715d86b9ce34fda111af8881a56ca37b4cee29da85dbb9389a97e74caf86c1020aba77a131636586d4c805f36db57655793ab43cf8475dcd0a973ced973ebf7e9ccfd57a6eb2ebe584f9de403e8e3634f8c02ab7b2a0c08e78c34b16aea9ad94f5740593a8d83cce98e824de7e2550a2d785be928e093678c99fea016b255a7387fa9dae875d144dd7dc7015bd75b43d9b115180b47082ca3e29be3f37ae3ee4c3c30cb93ee61168ee758f7668953a81d95f6793eaf0dbbade40cfe37453f825016c1d5a58d981ca1a6902b8ee00650c05307914ef3ad7f8b211744690eec2024bb8695851daacb51c6f7a6d43752cdb702fa3e54c54cecc778a06c6fb62de7d741caf816288396c5b0893235fc00021644cd68488a352e592aa07d764b1f9bf51bbd2f5f5f25a2c5e795872fdc08fb7f857fc70090f5c8e579f376e4962c91d68d88e63214aa2db3cb4336a3589b62831bd31aab622342f75a557736cc6249db158a200cd444da2ae46cc32f00639e32388df4597d44f360d20359598e1de992cdb4e036b3d08f77ff85e04ee8e026b8e684d98d0c4e5994a388482049bee6059642d6109b8b2a5a8d10fd682c64f3c7077bbbef9d0e0ba1a12d5b25cf9765c9f0c8e2002b6afc82640570832ae3eed0cc907479a60db85140a86132c182ead419a6b2798b2b15687ebc7985cfd4cc0351f41b1bcda39f5d2fdeee74cb67a9cd11757ab2f071db71c2e7c37782b3c9ab22d256b36b8b45dba9cd4f32217975f7247d272456091d5c118f2a15b40fdb7b0a23429f2ed38956d4a87135f1281cbe426709280af505d6b65f2b1c2f1b959e6a4f676d43ac422db652c4054206cf5da7b21a1d18bfcdda6b690596aa3ac6c79e97387719bea86cfb77709c72abb3ffd762460ed0f1cc7d6c4c583c95137ec28632354d31af19f4a71925f5b737c4c1bb3dbddce712d8903f20d250394ec8845bf06b35dd5bda0f83f4e19b26c8f9752ee48a95cf724e164b6a4fd9bee67f38826b9ef13cb8d015796d21c061327c5b20010552d0c1375a502b2d8ea6bb8001ceb829a1e28c32f31dd795a1cdeaf74fa448dd39525af8c92a060e6976f2bd0b42fc13828e844ee5aee7d1ac111b90cfe79e90d0f8aa014cc6373a6933c3d58aa3094e289521d06c6680edeadf43ef739d738ff2bd02232c9b6f565cce33294051c15699276c300e1d65b7baf73c43e0b5c791fe644c55d4a41cd11ed7fd381ba1bc93487fc8cbe7f222d48093fda4aa2f134aeb95fc625d32524167cb687e90ec12bca2af2550d5e0b8cca6de823b3c79ecdcdcec698d283f8b8e9b88a117da3f7b93c0aef7c555764f9604ea9bccf8e81aede2af2c8d8482301b92a5a2ca7f6102729e8e3dbc063b395769de0b0ffa33be1d998263591aa2ad41f96ec59485c0040064f03185d96b43ebc5ae9f89009f6f0a7b7d2b055b0823af89d0cdc97809c7754d04fe2713c7cf3981839a35eccf9877ae0df5225bd4fe0d3f37648894f8bed92009416d535f00e933cb84f5f2e550e5863bca9ea793aebf50ca0db1e770e8e3a0179e885035cd5b39ef8e077a0298963120c11c99e21c627f4e00351a670ccfcff8f7149565a1f4fefd2eb3e4fecd933228217032e0ab32e38f4d845056064a25948f9c7f199844d24eecb5a0573daeeef157ccb41ca6dd6fd93b1d57851d1455004ce84051a1551e298cc05fccfcf6d886ca286c7c05d2c44fa6212be62019fc268312390ccaf8f4c29964123ba87a28dc0203fbf04ec2fc1826bc8da6defcd725b22b4b78a88f7290aabb7c221157ea6785d26be66ee3d8d778de170437f2899c69daadf99c39e4038c5f71e041d76d17c5f507e2b4cf612e14c013f97c0943acda07302b396f23bed05744c5550366cc5df0fd7637b579503b241653bba0fef2dd2c45d0e873913f5a6db93a0d6a19368e9c1328dbbdef245bf0377fa2e338345ab4039812fd0f29b98af87c937c9b17f1541658d17610fb8e57e7b3f19473e533b0cc97770a46144670aafb2b4bccd220263d82b9d5f3d1141f625c98f8ba2ab70f04c4ca8f569605d943690645007a08ff373459eac7775f8d9aec124459e14cc3dfb98650ef6119ee513a70b455be99f485e7a32f43a7db2b6586ab8ebfd69dd43e5f383be27cb10fb404fbc1bcf216c2160448be361002ae27f61238ada2f5acf54e850519300417b282e3e2e17e96bc2c05c765d94261448511fdd637e24db0b06dad8703836f1a792678f19592cf5ba146fac37ea588af2a790c4d8528e1dc4121e2e73a6ab604f3ce46282df6fa66d1e59792deadc357228d5fbaae491447245cbeec3e75402cb373cdf95c6f77f6087118675c2bcdb70162345f65befe7f953035bb559af631387b7b8cdd779a0b278abc62c6fe4e916c5c39268692fa1a3385e80167fb3352f29e25d8a43360603f9219e6426d8ea9ab5bd300dca2635b5787314d836d8225f18c753c34589e277d9fd49fbd18bca1e2ad6cfb6a372d204c4586b881aa9c1b7fb3fd3be4b2a58d48fb1004423e4405f26658443e4acc085bd3b8028603162ea5c08cf724965e5fc909d09fa74475585118721077bac4099b5284eade909cececf46259fad55024ceb020e4945c70d3a50ac26c90103c00030000c0003c00030000caa38fe5ae8af5453999b32d4048828e15b4bbb222252eedbeb010087510000000040e207faf8f94ae50d530ecf0c8cbfdbbee4f796dcc51dac132a2a25d75bedc20ef9aa09bb1bf11f2a8744223a0080882eea606c68cb9a133bfc4542177448f21ad77a13ae559f4361ac4a081fbdce5c0ead85c9f5395d4fb57178f7f2e47c2997c4281cae72cfab1b3bd46ef60de8d7df9bfbedc966dd906859e5a2c4d406ea4ed68f9627d225cb86634aa973ea4e26afaa6bc84266448923155fa36a48be3c4564d234f49792bc78c50f9ea3c1387eb924e146bf3f43a59a51dae629a58f19bc68ab2af38fe9da32b49aa49f9ed4e9960cebe5fca9613fae9531e89a443f4fad9f534e0c6c948ee5515ecec44c182a494ef7e46cb1d7070327e6d42016ee1a53ca17ca315e94dcf97cfaf18252f729254fbb4064ac9d145f72e18ccea0f5e516eaf23b498c575151d782256a56e612f4cfc35930c378fe3bdd146c462c707218cb1b5593ff825730af921452e9d337875638577e5d93990ebd6115ccc15a3e7f7bfb932015fccd268931a6b097d729901416d04514d0b72d413c7488d51c14d064ab621f92192bf7046b273d364997a4cf7342d572d6d59bae235e13f630bb1a7bf19bed9880b86a7fd0ec9660ea5dcaaa9d4ad14d0998fc1d2ec89564256b49307fb5a4bc716f52352460d1bace433e49a5b123dc316c45fb8f963f6346e8a2084f67ff50fd1dd522113c394f3272a9343304c5634e45ab965f2784fe4555c26312e5b620183ae45c46e7e6990c0877a67872ca26a942ff019b33db1a2a8587ec03538a789eaa98e7d383f36b85da7729a15c1e745963cebffcd889ee80b173f7cf705331aa2e74e08d5ffe6e9d8b2d89c16a738eba3de3c2181d294992f23829b7b02d99a429f753ca650bedca66c53b66c844b5b83bddc6f8668f2e2d4ac9a3a6cb8bf6a4cfe2bd4ef1c5a2eccd461666aecf29a6e85c6d89857dc25d0aff5d111116764c8274756ebe8892904824e48718328844c6d80cd478c5415a4454fda3c5898744221b8980b1e30c1f3fcaf0e6e1001d3edc023b9250c315754ae26e5c831aada8c10aca6f442e9e28d71e0e8944de7d3c2087037414e5a0c62adcdfbcceb13da63b1a12898001011d35a8a18ad39bf4df558c96442e418d54b0255ff83fc92e4ca6432211303490030239c2d001821aa828d786cc91269ad0ef9ea2ae1e1b934eea5039690af62d2a552da5b4180f0ee40843c70c6a948214a3c043d3594ffae99b4614c6c73371dec2754c01c00e6a8422f17553c9b7b61f75058596735bfe79ccb1800e0018a1c6272c6d89fd2ad74bb3a1a4862756d578ea6693c95dd389c2529e596d4a1d6585ec18638cdd11f2e3057eba0627d86e9bf9ccbe27a6b6c70f1e168000066a6c82d2ac194d08ab8a9fa48626ec98e9fa7eee4fcace84b122934d6cee7cb060a2bd750d9b97798811021d3d7ef0b0808e05d4b8440d4bd4a8440d4ad498440d49d488c4026a40a2c6236a38a24623f83129b8a9a6e6ae6480310107e8f8618606784c20a406236a2ca2d512f914a6e29ba58a2832685bc8d95a502311c5a81c2b8e8941d4f388304d78fa5789f2546287787d73e668d9bbf79421f0099373905bfd300b6a14c2ca5a4247c449f651e7518310e9c5134bacdcf4eb778c1a83f0a2b8ab64e793b6e282c0934973327da1a261204a721a957fbe35658b183500a16a9b5c99ec7d8d3ff45771f7637c7f09b91f0cad49e8a4be163cc614d4e8836952c7fed01cc4738f851a7cd8473d57a6f5434c6c0935f6b06abe9c43fc8d86664e50430f4962728987fb6492d31fa891873298b45e8cf3b94d432211ff61c60bc898410d3c7029d5a9b34a6a491b2bd4b84353c2a64959593185ac0a35ecd0f4e55652d5247bee52a85187b2749abaf01257e2a5436daee561f43ef83bcef0f1230435e650f8513191283d50430e74be9cbd6346fec7ab461cd00a9da16365cc24546ac0e17b759b2e9dced2ef0d5be80cf5b638de41e306f65467f457ceafa46bb4e1245b66b14ed241d584400d362c126635d7256e4c768d355019aace374dc99ee2851a6ac8356515adbc79ad7c1a52eda8bd9e5575fd45c3a993557a68a96469ce807d68afed1c9a21399a6fea49c9b65f86a2a4540d561e36858c0cea6ec6ed939593eb312454902ccff1ef3c586230ef8579ff4f1d93fc861a61d856366c35c34cb92524120143f595a7938934861a5fb804fb0cff69693567470d2f541a9f66426cd0f12d241261438d2e949baba52725ad774a482452460f34d4e04225058d2795bca6cef70079861a5b48ee3e134b91fda84c991904f0d1e30960060f0ad4d0821baebd7ce22c2503307c682012d1428d2c30b5d9fced3ebd430b89445cd01ea2c3c7e0cd420d2ca425d9eda8465914b5c615b0d7d2afd0bbed5ba1134f5cefe49b2ad4a002dd921a2cb6878f6656a8318534e5d12445935cb73d07e888449850430ae61c735f4d4cb9c763c288418d2860ded697e4fe637f5e50030a9468d1296fd45451fa271075e9335e8adf4fe24ee8b2ffd9dac598627a9a608b49962a675e13b6c3045330a9bbd54a33787a0949874af24d57ce9dc34a28bcf4669bd9749db349b082684fe7934542f1c2ad4432658b8d39025956f99759bf522a8d902cfb52d26f6b4ab71581fed35892f09fe3844584e7a4933ccfe4b4c933842fdbd967d90c76292484c2c7e624b72597d341d8c3ffc5f78ee13d0508357e50c3078a4929c7ae3576ca9d1e741f3ddcb8db87e834241221a3060fb0a0f9df13a126577690581653a7d01a2d945e43077ce676cf1f32cd3e85462e8c5d16acc2ebc999352e4ac1353fb2fa72ccf12dec922f3eaa6dfe4f638ba36fce484f9e1fafd5624d39494e12b9e64912335e408b4dfccd3673f5e777165c9b4931a7743b16d516d090452925e1d27ca4dec22716945a8e31a578c3424d51e1f42a37afe65eb14699f45e9613d53257dc9d2aa5533bc992a65a5170cb249e548dff95ec38c3c70f562c55d7799d319572c380c62a0af924c798f8af59351368a86213aa636aa6ec6be791038d54bc312769d3c34f2ac916030d5468728eb7922794b8bf14c831811c12c811811c10c8b1021aa7388b7b8e4fa9ef593105256f9d10a6d96726edf13c2cb0230c344a41b44dde9a1463d27092e220e937267d70cff293416314873dcb71b9188b9e432211ffd183470e31688802078d50289d9bab57275f2ce2410314cb89f9cfa7de3dc6cd27145ffdcc24ff4edde9893b76d42c4acc61d247021a9d30d4b5e4e217ac8f11442261d0e08439875f5a4b25b48935ee4a98e86a22c9040d4c2455986587097abbf225dc9d137d736c2b69244b5cd9f2afbb62b831f9c1637b45f0011a95c82cf6844ed3944c3443223b7cf48844c010410e0ce888443a408312573e9ddc24fce5381e1a9330cb78ef4b49a2572402460a948624ccec294fcc2565cc6f262134225146aaeaad56925445828467e69f1b2a76820ad07844d16a2b25ad2ce57c0ac03880014ee08810d068040d46d058040d45d0488469eec3c66d8c31bc29400311748814d030041502f774d2c56cbf2533134293f24a89712f2a9b86c620ccd99a52565df7f9bc20deb4dbc95d9b0cead141231009e69633eb7aa6ab3c20124f0e778dff1f32a99fabe898b2cfe3075ca44bc3626325ebfac0a4c9861e8ff18154aff99c613487a6f6705e2a39689c8d7b238644225ba0a107fa828dfe09591353f2041a79d8c3eefb77e79c84b19240030f55dc89fdeb77127632028d3b981d5db94a7c5940c30e9d9770b15d3c6b0a0934ea50d28aeb9e4ffcac27191289e418638c85400e1d0028020d3aa07de9f3758aae3b7f4824e23da031072dbca84949e23d853c2412f9e1637d9841430e69ee89ff0d5d7f731c8cfd295a6cc75250b50a34e090bc267eecb4513473f60d5e4caf296a9f5b4327051a6ed0b26a2ec94ed0bb126d8321b63bc8863c3dc10a89444040830ddb98f82af723b2b9b2062e099f45ead2e57e510dce6c9a9c9b33854e4b230d7ab0123cd2c4bddfca183e4290830734d090fab5e7ef20a992930e24d03883a92dd473adefece77140c30c58275593f7f2e5f7b60c2629f4673aa66e7fe90634c8a0b96ef419bda99263c660060d31d008030d309c3f7d666ffc2c99121ad0f802e227e7e50d992f74e80c1a5e7893e4e33154ca4bdae982319464c1921ce33ae5148106170a9b243c63b488125334b6c0c8c7bc6692c40c992442430b44e6106bda9fbac9008d2ca463b97a62ad57d41c0f332e40030b6ee6f8c7f709a9b38544223c765480c61568588146155c4d959b921cbeb9bd9048a4c7a14105c7e4ca277e1293f7851f40630a67a63026a5d41d3589c18086140e9f3676c2a4dd36e117d08842fb9924dd4ed5cab11ed0804226758e399dc62017cb27ecadb9357aafd459e604b3d533c5e093551f35c18f3b29a5fdc5cb4b1212899c317abc8006138e54b79061272fbf4886185b860f1a4b30b4c6d85c2759844e4309dcbaa7b85021ffad19d04882a9726e975acbb8cd85b0808718349090099a83e65c5e2eb7d33882261d65762dfec48f1b21a1624ac124b9643ee700392ecdc861ccc861cc30c005681481061176135b356e491a5af107680c6103348400021a41f83fe5a85bcd133dea011a4060d2de3f8da7f3ef93101e3d7e50be54ef49fde622341a3e38555a3386fc3c29fd212fe8e123029148193da8c4248fdbf4ab05cf5f40830775a885cf10f1359592d0d8015b71e3a1639e336b34748006fbce396ab3975f1310402e12f32dc9d9a73d76cac18531a34ef6a64c6ff1dcc229c9e4d8e28aacf7db683e22732d0e79e15d726f86932ab4507ebbebb4b2ca49e62cb28bbd7b628c25e624c922e935e6243973b61426b110002c04f00a01b88205d00a0d088015b48a0508401502488500502180537ce97d29f92575644000a630e7ca5f17bbee5b3a1304500a2a6a89d93d6d3fdc8714c6e576534bd198e1512494247d3eb18ed9ac440206cb4244704314648893b3567a2314c9bf2a72952463ba68106e80e2e89dbfa975ed7336156e7c6257db8a323bb6e2fd0d4fa8d9e454b7624c78ef831b9df8bedb9224db94d0dfcde0062738ff6ed91cd221d64b2047182db8b189ff2c9b7caf5b060b6e68223159bc7ecebc6e64e206268a153e3e6365676e7be3127a9949527a6c422211bc61892336665a4b25df4954c68d4aecff571772f343771912898ce00625c850391d27cabb7ef8fd0393384d12db4bcc399d9329c10d4958e5a6e936da891a321c043722d17df04ca2152db74972e00624ec9b4a41a6ba3bc594471c5e3c76348f92a3578ea0e49225af635790971b6165ae5effd4956f75317c84c188677dc3e2a4c9e31713024604427063115b4ee1352f378a38b2c7d44b7037391cc68d44101773cc5167ac529ec5308311b1b94fe5d08df325e70e9159c54e295ac8acad420cb1554a7ba3194d9c4e62e046214af25f67cea7593f9a10225dd37c9672f01ced0ee2f99252123b2fc7cc193d7cfc28c3cf0604b1d494a8bae7b5212a2191c88e1988f18120e4666633fbee330b08a65370cbdec152f22a2412f9c373eab1e35b82a49884a1e38783406ff8e1b28df274b29be5b57dd0d32f98eb7d788f9a0f59cc8ad9afc4c64fee8cd163c71ebad160e772e298dc181289fc583dec73a9d3f2c9eb1e1f3dc4d821811b79403f3337be096b1d3e78204d67cd7274cfab5d88036edca1964b9f3dab520e936be0861df8fe4ec256786a125375b8a4de9382f489ffd9840ec96f551626f97bf2650ee60fde2587d73bad0c10dc9043f17e6d26b2d6d33f71c864694fff6dc2cfd52170f0525aea9f6f8c31fa6f703bf47eb4da5482d66e28a5d7d849da8a4a761bdc12644fa8eca6d5dd026eb0e19ecbdf1bd768b25ad6f07d9a4929c9456506dc5083ea9ef1273d5e564d1a742f57d3f893a65502230368f0246dd47bbc36537c866f2cc5985ed54f2e49cc50124d716314bfdcaa96e1ddd81ebf637bde4fc9608acbace9333a86b2bf72f7538a9fd712c37163a5b0bf7031a7948f1e3bc0b81106f398e0167979e562320337c0e049f953ad6bce78921c1289b8c0bd8c1d3c3ce4c78e0edcf882b57175825bce59d332811b5ed8f2957872f7e5f04b8544223b7cf4d82183edc2b17bf7cf7e57aaabc80d2ee4499efda81773824a6114e0c616b21832d55b88544bab853c34b3e7fc379e52921e3fb2704ca7e1a35c7e69562d70030b7bd44fd1ad98addb0b29632b1052c686682047181fb871053ca35e28ff781687808e337cfce0210117f4fe00818f0878e086154a4928f9dab3cb36d9d1801b5550baf28e5a36b73c2f156831bf8ab410bd8f86ecd8c1e3779051c6ca60c78e1e3f1670630aab9f1c3435b2c413062e05cc24fb244a499139f6904824033a5c0c1f6168e04614921b50305da60917a1ff8e1e3f7664e0c613384bedf9a153499eb71b4ee8422463c79655e78c1d6359c0430c17b4183cb6dc6802277790509d33b17a64c10d26dc58c20d259ce04612f80612e80820b861841b45b841044c2fdf44c3eec92b86442225b83104f3bd3b8973d9d56d211ddc108296627e931c9f193b69702308c6f2d499dae277339e88e08c1b40b8f18314dcf08119377a60f624cde5a5720b91dde041e69bbfcb624ea2a6ce0eb6e91819a74a263d764307ae78a6fccef6a9f1f390de0cd8c88517f374dceac8062e9270919fbdee16ef8ec660e561a756dba2b08a91c944d10a366fc0462d0ed5e513265694ec9191011d3fccd040056cd0e212e2374af093c284fb430c1e6294b121703e63351089fc108387183cccd8e17cc692118990e16464c0c62c32604316975a9db9e9e7d8d4b1110b7d4d2e7b57b8974f12c236606149ddf59b92c6eb98ee1318838d5738d5619697935cc173aef04a32f7ce4884c9263a6cb482f45b19cf2727d1666745c99394c4fd84aa4df12a3041a7a23693fa9e50c1862aca9f2f6ac650ffe5978d5498fc8413edbdeeb3a78c600315859f1426d2298651e914a6dc5a5315639d078b0d532445cdac29e5246795dc0e6c940213af429f249fdac8860a3648516fe650e39bad75338a622c495dd484becc4a083644e15ffc24a7f07413431f0a2af7c450d6d920d800c55127d97c7ed6d4e2f9c4ba49b03bf14f88aacc13d8894992247736f5bb3b60a31398249f61d26ac9f2b11ad8e0849a241f2f312729a5f36d6c82bb349fe424f5e44860431399306dd88bea1d453bc711d8c0041997eeaa745ba32d021b97a0e4100d6fd5a51d16d8b044b77e19e6a6ef24eddd462516559fec6c273596131289f8581fa3043628416df08cf48b89de7e125ace4a62926a743a456d482229b6e7d87a6a2412bd84f7080b736727244c93a2f74bc6558ece234c1dd910bbb5996704820d471cb52b977491ba49f47cc04623dadfacacf1fcc2b262011b8c48361d3bab4b49d8136d2c8253998a9e3ac5063614714cd57e25f9b2ab5d861967878d44b89fcea6346fd64c794824620311f84c499f5d4ea80c246c1c623f49f5dfbcf0f738c286215c8f53b1faba9048e4f818bc3e066f256c14824a23221563ce889884304d74cadb60523a4bf1818d41b49b2e6a77da915c1098dc19d253aa277c272412c9838d40e49b64972fbbf0379a904884103600c15d0a1953dee6b57648243206f3b04024f27fb0e107553b548c7bf199732e241251838d3e983eb7da56f5dcc92963830f6ae5cae57d60544007080020041b7b6073964c4bf93161333d6cc0461ef8557b8b99e3f2e52436f0a09a58e733171f0d848d3b50567da2e6f63289dd0e6b5a4fa9888a8893ad43fa1b4aec68cf8e5ea1836ac2863a970c4d85fc104306dd230360d89843a331ebf9427806af42c0884464d0638c311c90e30c1e1e011d67f8088387878471060f8f402462430eb5eb54b81cc3574de54005747c2012a1818d3860b51a2e45f794a4b1e1e09b10a1157f4363d32120c821821c21656c052236de40b46eb86bda6a851f1289f42883470f084c0003392aa0e30111d0808e336cb821b913f35afe7cc2cc4a041b6df8444d4cb5ea11820d3618427f5b374d27d9cb21d858439f5d73564f1afa332e031b6ad035564d65b7db24e521395c0c1f611c000c30c030669c1e1be80f4422eda35d041b88440ca0231211848d34dc6ae2f569d9cb7d340367380622111d2db08186c7daa45d37f6e97a66d83803e749ce71c16ccbb22311e0c186193861d5e4254de8b33d453046fb7941197ab05106ccc773dff6c364b3c950308ffa175636efde43b031067d3ec554af269660ae18b87c62ca90f11573fe9a60230c9626f32454c893b33c146c80e14e92a0211e2d2bb6f2c0c617e8f64d5abbeda33a25c1861734c1cf76ab4dcad9dd0736bac0e55c5d41f3dada2609f9c0036c7041ab60ba317b5432670bafbbf527c9c4132ffb5a3844a23377ce63c2db5960cdbb525d5fc6b83116ceb06143e6fa5379642c8f48048c1e7f05fde2d66ffed86d726785b29689491acfe93cba21111b5568df4d92e47052126c508117fbb0e61219d59982eac12ecdf799a8e1337cfca0810d29785615a6ff5ae3a5310aa5925a37e77c52563cb00105cc7e4e52936578f42191888d2798e25ae54e1d321e4320d870c2fdd51de3a794772617828d26d4f291e51ee59e921912891cc0001a00e30006c871860f07e38c17c3878b40870e30cc580f7141f71883cbb811071b4c2873ce98ff1ca305dd2ca16499c16dd317e23e1a6043094a96fc67d8601d3713128994e163f0862183f5118930c04612927e6663928dfffa186d03098d544e5e3c93332ce708a8f8dd05132d79c6d6088cb7c7dfb41053932bc26fa1e9b33afb4a36229cde9d63eb5ba3bc830c1b43d02c3bf5573e93c91662430895cf5ee5cbb62f4b1204fc7b5f4fade4263d40e0c4fc3dff52524ee50756b2d5b0b396cd261682367ca06888cfe96c982448ce43063d76f4f811892cc0460f28cf0ca231fd630e8f1de30515d0d17e7a404087dbe0818d1d242bf351dd21277e116ce8e0cb9f743fd5bc885e5210c6097454a08b5c9825da83c64b21b752d9052e700d97933019dd92a8dd22ed58c296c966b9518544223bcef0f1e3bab04561d5c49b4fe2769f36461961e8681f0e88449ac719d4452dbaa04509ba98c509ba904517b1f0f6de5eed24643e1a8908a10b58b051d32a87b5f94b61081837b881fb30a38c1e63740d6a10899c318373361201e38718eb238c001ca18b57f09dfd996eb129c419128980d1862e5c918a65e8f9e5e4317d4222111474d18aaf82a8daf8ab9cdc219108182948228002c00023b12a1089e8383d361089f8e9c12312e173021c74c18a2e5661ac6426aeefabe2934a4eaafd1aefd949859562be127b432cd78d0a2e57a9ffcc673af14222911bdc800c3142ca48400c6a50830a74710aabe3dddd6fc65c96fd6186064a17a638e64f617d55235f9e904824e9a2148d26f5ef8f19f3342705776327768ae6132a338a840f9bc4ec68794e3751541e4f324952ceb691cee822149d74f2ac39a549080f28fc112fd9f2b098be7ec29534b38ff24de1e43cd14527fe3d51f3e6effb30931874c1092c49164ace7192e72ec142179bf82f67aea8daf949fc7474a109339b27394e8aeeb55e269edfacfa312553eda80b4cf43219bf4eea52df5c7671097ff34489bd1b12899cf511468e1c398e0572b84f408718bab004ea2ee9d51662ab5309b3798c663a13de6f4a9cb5a48c269918273393e8d3e5bc7ddee5952e09c2829fef57ea8ba34782d318d18d1e6ffa73489865fc56dff347d4f9b24eae92c92eb923ecce27baac6594d11bd1650d993aeb6b680f23aa7839bf999492a4bb08cba3c9d932e528e292720e5652760c194f224e4d594eb6fa9cb53a8840a5e72b776bf80c9dc410d445217839e1624c5f25779a10dc455d3be9132ac50c828a5b9fde4fdaca600ba2cfafcf7ed63fed09841e35aef37fc6cb1810f466ac9c0c19259691c3145dfc81cc731aaa37e34c7a3f64959314f2efdae93e58fd61528e4e95936788d0051f4ae69a72fecfe99caa195dec01bf0c2677326d2f131241177a38aa7c499eed440d16ee220f5e5e8c299d184bf493bbc04309fcc49bdc7b1d4acb2e4d27ed78e8d0814bcf9836f557a8f41cbaba7811b11c92becc3194892726e1385c152be84e94a678e14088a7c58d4af5297d83926973328b7183a65f52e6478d6199363467929d8bc906e37e9e18aed364b6863c57789e9aa8944e0d59d0502e9e3f2c6d69d0838ccae62bd91f0d865a341dd70d13277e86fe84e8a0b219303196760a76194cd5f162c65dd4d764b8d4ac464c760ca5b3acb1af37e64f1143aa22257166189a92b64b434db58b6028ee8cd69afc51f7173ee15363b494ada879210b271fe326c227eb82dd31ee3c9a1c2e1ca3677e4994705372b6d085454fdfb9164c711dd367935f2d9c8537a7eacd9d0b3e3216cca751db84b7af9050b59bea4eac60d1b6c2fe6d1ab332b763da5538a4c6971c5328b74d53814c51ccd3f465b8949ec2a12e26b97b978211963ef8a978a560145cc9ae3c9ea79b0205b353feecf172fd9ea0c6349375374858e784322afc4eba7cd142dd04baa5424ca887db30c1fc239e935c1974f32550e9f6f25446b7aa84e3b4db4459dd6c7292c0dea5ff999872dc1b098d4b6ce9edabe78f506aabb5aaffcdc84658c3092e59a563f12d4226e639297126936b8890249ebc96d1b4e26708c5a9872eef6e0fa710c85062c8935d3eda41686743a47aba7f3e2094d3a498d2db89afd90f8eca29e9bc5ab4b97ca046c5fdc9f6b361e21eb876f132ebb6739807d7e56fcc214334f63bb85657a6e35fe8609335ff2edada499d5ca0677672924eae17e362933b861234e6afe8dea21c63665b0a3fc135b6c024317db8122e67ce5ab4714dfa2a51ae2e498b2ae3c7c2e44a49e52cfe0a62f2395c5924bd6b4a9ae7a7f4db58e41ae773c52496696e61e1977b999462cc9e6c5fb18929a70ee6e1624deb0a53844b7e2569cda26dc5a2a31725ac983427cb8a725f3acafdab4828b35afb348fba2a4e1fe39438bdf7de49c5e9042b4136ab55dea8f8d2e54a42b8f6a69c02cfd96b326ffd86d614f988895ec45dcc4b51cc94eea3bac58a2a294e9ec3a56dbdb87c14b8ea89d9da7f6e445164e5f2d831a148d67c7279b02828f0d44c89ce27cc8a76314fa7f8d63ce1cb592ebbdc955aebc47352aecf7a498a9a13495216b6263474b43651e77839ad1b63d094263ad953846c4e0f93341377ee910ff59c3d4d1413e8bd9fe5bdc52fff12eea65c72f26837d95b228f1119be792594f1b6f1b0ee4a3925de96914c5f9b49a027e9d55ff6b20d1b496051a22475999e8c4d244e9deef324a571ad8104be1f5f974d4c55d53cc2ac529e9d72698951e388c7522e3fc534a26d4b8b373e1177318c304a73b4624c29a26216c169ce2a12fe317e1a452856d14f1c3d492e691241459e96381bad5c348830674d3c6263a482e610fe055d0b4b9bbecf186289381b2931954f640a61bd05b30d99ecbdc41022df9872b7561233ff412495c999faeb926d5e10f798a64b748d863d10a4266d51df4ef51c406cc1935dce4d5e61ffe1dc5592497b9b2bd77e502ac7bc244b89d9e13e9ce64dde642c5a74f960704fbfaaf3a1325bf670add9bc7492d3f55af4506ecd9d6ea62c845af29009699595fff2a5b4e0a174c2ad56ee76f24cb9c3792a45114b79d5946287a724a9648b1531b3943abc51d573d91635540a1daed8355f1baf3386650efc2539a6d0d40bbb15399c7c3ebc49716328b11287ec376c38986622ee7ca2e2a5f206475ba3b362099e4d8a1b12e53c7f4999c136496983653e7e2959be127c36e8a296d2a1b3e9f66b48aa9472f2cf13cb1e3598b1eb19b2a36677d3e0a7bcc6aeff286bd140dfbdc87ace7c5dcfa06b4a4b8f922b4b3543775e196931c4322d4352d29885b9907f1a32f49e2bfd7162e63263a8ba93dce9a6da7411032756783ab91286ea84194ba2892e6a82818d317f542b49cc5f7e810e936f39eea549985e703b55a478545a13cc2ebc63a627bae16c73c98523bc444f15992c77b9857c57bf04ef38bea9d442f561d7fb399f2b6516b8906526f49eba9a2416708f2aeaf2ee15ce925a82580aabd1add0547c088d774284a70afec968b4685625ca542876d96cea58629284a760bcb8a1af29f22f2b8583a674afc66c15d5281424c3d726ebb2325048fa8dfe74e713e8ae0fbf8c27d8974e28c5cfd22ca5cbf29a700cfea1116769b263c2ab59343c6a6b32b684e463fa2737aa4fa604a72429c25536947c12ecf827cd9c1412d0c9d8deca749b2a3c42e639469b8fca084ba94459e59aa8131681d3efbf0e33e76e824428471f1793e344e7ce10cc5e62b59712c2de39ae256ace9fc241a0df553ac9d96b1b20d49be6c4f18a3e17fd41e246cb8d3f9f63333ed8a3a4a5545f4fbe07c9d9abfc53ab870f0ff42425eff0269820ef00d3949473cb0074a05e447bc7e482d02cd55963876578b8304ae5f3cf47a457778b44cb5393b01a254b670b72b3a7e82d17aaf3b5b8fa7a3d7e4e25984f0ba3e5bce94cc1cffb59146c73672fb563e4b230e537d5dc27168ba789c59818d7c302d1f47956625c65fd0aabaec39f20bb82affc9db3b5565426fc58be9c537d31566839c8acb47b4c7bda2a8cae134e8cb3fe699a2a8e2d3529b35ca6312d157ba82cea6296a4933454fcfb35fd3326b88a760a4bb8c88b7f82be84668ac2db4bf3224d8c9a9522c99fa9bbbc8c971929c8f1247249ce280a9792580cee1f991605bfa963bf8576ac43518e6a2eefbc63515030a32a75b1963de513fd9fd027ab498c26eb095efe643d86d0fa742231a62476855e8929e584e16c72fbddabdd4d987d2dd2cf4cc8531325134ec37b69c99bc944492fa9645a0a13d889299f5096ba441a4d70cd26799858294b2c5e95251a1b7f2a5589d2be539e74b245c915259c8ab9f12fad6b8ed524d2a896cf52e79b182b49e4a37133a5962459ac22a1e6fdb4b61a5c3b2b4824d6b947d3cf55b8ea11858bb5693efe4aaaca11668ff9ebab3fceffd4884b46fce24d2ed97c6204beaada15db84f2382d023dcb139ec2dcde4e8a703b3ee8673a39859d12b175ec4db9ff728c7142445f5b52e668fd191e3ac41661154d0e29b31d32045aa1ef92501722513e4ea667b28999109cacc13377ce3c130f62fbae901f6edaea1504ebbed1c4e0a3e16b20ea3c61e355f874290a88e592446aa9da96fa877289966297462ea87e483c6dea54a51e2ca60fd54b69e793e2e4d0f081feaf91f1949d97b2072b548e116b99b356f4c0a6f7d7cb394985310f6e9233fb98f7c9ed111e08b1084f4ba20916a33bdc298772f3b6d854911df8124a3d7deee4724275d85b3cc5f384c5ced3a14dc994a657b6be9f4382fa469d6cbd6c8e1c28f943a714f9ad76c7418ba29abe73b3d78643153a4ce72fe63b7e43a2874af6a72f63af1bd0cad99226f92d54d306d3a6fcb24cc29b56d8a094dfef5996341d5c4397525d2eb152a58b6a587a62d37353f4bd347c967be282c614ebd0a0fa499a4bcef9fbb13324f98e7c753a1bd5cce058f40e1eb6c6f365a093943945ff3cc12743493368b6e8bd274c6378263fe7b2b23a411283a59f83668e997aa2303c267487971018ce37e9c9c8a81efd021d97e409ad34315e387dc99c20a3992b5d38fa7e969c3f4a4d922424128941245286088a175c7832dae7cc5dcfafedc5165aff24485e5732e801811178a1054c36e9434e30a942be9048c478918524f1ee4e4e713273c70b2c147cc3495e76035e5ca137ef150b96b4fcf4b35e58c19b28f97c39e6bbb75e54c17c9ee52262c122d790157841853f06a98d5bd51be90989442211304040c6ba8f1f65a0c08b29785379bdb14b7450c00b2968c08b28dcd99e243937099997175038a355563c85cef5e6c51312cdd7976b7ab6b613f4fb0cd3494a4c52b49b805c745ede4da5a82b134ebdb2e994c6e6374b58f6df44acce4efc8a1256bf987325493e8d79124aba37ea1b7d766e44c271a399611db5acb62394c376e61e934bad848cb0ed6849cdfe9895494824c2021f4e0602bc2802b7dd2d65ebd5a31e193e7a3c1822c881811cfe8233c2d0e12ce0b11ff8f50c44222cf08208fe9c7049c8f28bdfb91743c02d8d055fb9aee4792184a735db889d1c56e57a1184e20510bcf801ff297ec66d6b133bf5812e9ea14e2a786d6a767848bfc08c1d60782047067494c08b1ed8e27d5207139354375ef0a04bbbde9af33d1f3a2f764067467dca60f142074d8613eba3e887ec7c2e38a98c9ec77f63ad8b8ba3e424caf79c68c6945b6472bcdacdb9daa20d1bf75765ac05e3ba62de31ba9294a28526c79578e7b652d1c20119dc9845f1a7366ceaa8d4ad0471431664d8bdf093f6f9ac92e3878f1c3a1cb023103762d107c98e19de24692ee6062c92eddc52a8eb4f89d11baf58eee26e3d7bca98a219375cd14ac5f767af2e4bbf15c7cb762764500b75eb062b12724cf8fb2dc9365b53b8b18a43977cbaf29bd733a707375491f579a9a58c27afe95424f5ee6a31a4c4ddcb0f6ea042b9f419cbe1aab7ea5360c95693f49231aac6dc30c5f973537d3c75faa68970a314e9645b55cc9f374f38448706cad8518687f48f2503004bb8418a1ba3c8c2d3ed771c4bcb7c0c972a5b0ef5c0a2a8921edaf24df6b2bc22bb0a0bffea30ff0cc7400e1f1e52c656c01575254990d24a5ba168d8e9d2d8e89c151cac28687897300fc9988457b145eb5f7ed3cff3bd2a38c1d259aed7ac686a07385261e8f0964297d4e13e2a3ea1242c53be4bcd491ce038c57e639a25b9c76d9ca6303cefec9c766592523cc0518a73484d396be7b324896a000729f2f7fe9099ab3911e1188517e72cc96b65047088c224af6e6b87d911d5ccc0118ac2c79252897a6692f11f384051dc4a9dc4d9df4d5a0103c727dca84935ebb2675c3d51de1bdfdaf06db58e0c31c6e8045f49ac9b2a21638b1e128978000727682f295696cb581c9bc0a109a38f54ce497f2978161289ecc091892d5e8cd8933a211dc08109bd4cd37f4c7125e57b89d35fe5134e3a4322114b9457e953856bd84e7748250a2d26b7be9a64c594c82ef26a723dc99b7242229110e09844e94e9e9ece581279fa2e79d4e2e2538c4462d12413644acc122b1c90e83c3579c84080e311e5bb90717b2d273bdd11c6b7122cd964fa0d7a2336f9e7ad734aa6c40f23d6d73539ff36774367115cdad4f09b62be30e11f3c3c06ae021c8aa0a44df6b0a7aa41d7445067219f9225c95b1a44247dcc90ad394cc54987e87248af13dde03084f92aeb55bfcfc478fb29c4a3596d3c4569876547f310430438087149f1bab47d5bf7c459b028c031885a4b52324cf41a739c17ac0640b0e3b88f1e3fca30050e41709234bf66f1f2d16347e20884f6212f7c2cc43b833924a0830c1c80d02ede3b669a0c7d2f878e1ecfa30638feb09f94a424a59d2109c0e187f373bb4948542c31a70f38f850e9b7491b542dabc684f0d881630ffd599a8a16935f923afc038c21e0d0c31996ba83798e49bbffe8d1e30338f270aaeb3013664bca193c70f19349ec4e276d4adf819eec246ed4ec61826b872ea989b9e4e3ca73b20ea544589adb998b71a343df57b92b6b3ea1de9ac372a29847e70c337939381d26dcd692cb799238147d3c26d94aa9f8e90f70c0e1abd14d1634e5903fc1f186b4d5a7eb3c555d7b379c2f553586bcdf5ce26db8eb438ce7cb6103e335b9712be4bcd86b387fcec94b32ac86e44a974ffe2ffc4a9306b4645d194d6d51dd82862aa3462ffbda7237cf4064ce7cb8643daf55080e331c6347bc9abc61234338c05186fb84794dd22193894e86c3e72c6163593777d6078e31e8d1296d86c9a5b9490c78ac3df1f2ce30301f63496ccf83a1109dbaae515267927cc1d1b7ec0e2727c13aa6070e2ff8ab2126ed962ef82945b18d492b896a73a1ec396636d94c1237698b630b5976d52bef3f593e80087260c0003a7cf4f8b122c881011d3bc0a105cdf6c27530694f4c380b76a578f7715f2cdc26a58cfa7f8c31ad5730495bec3d8f66f2c658a17829996931a13459aac0c794dcb7fab1a98c0acb487ffd7ac820c3026ac03105c3b9f5a6760956f24b61cbb549d00cd96f4f147e4dd27dcc490a27c550784bb47099dbefb1fa13dc2c96379bd8dbc5dc0975aeae4fb97c667769c292ea39a3e61ad992c2842a666dcf67e199525bc2995af6ae235202995e2c4acbf2c97a12bc98f559b765010f31ce88c01d702041ffcc9ffcfb3e8217e34bf95427d52487eca0030e2360e25710db8ca9c7f245782acfc6d774255b5689706c782649b70df596212476b9cf8652fd4c08cc091ef2b9673d5512178c610603c0123882b07526cfead6f17e7220e06b163d4be426b7f507bd5eb4f714199eb5f9c08ea9b72ae75dbd6c8594e1c38c761f3b9c0547023fccd040007c80a3075b48cffa13f3cdfd8444226398f162fce0e163bc60c7f7d8c13b660086057c70e0d733904304393090c387bbc0c792f1fe8153e0e001b266514c68db69fb71ecc0934377879aa4d135c4a1032a76c9b1937c9ea6d90e905cd826c6cde96ed5ef1f128924082ef0b5942ce93ba9a72cc82d92c7ff52988e17cff3b638c63093da53c911d1d742cb31f64b8e8e16e530265a2a8deb64726661d6a85462cffc981495c55272a84ac79458a4596308f36cd2769282851ea3a535ff04f20abae44e1ffb7153ec9009405c01d20a105680ac02441520a9004105c82996fac9b01c3d668c38e405653400c414608094a258e2febf8798564b482f045c0c1f61e400e30cc74048195b811c8f002105c828404401128abc5536b6c3562ce54141869ccf5eaadb96ee273051d793675cbff2c813c5935c67563ffbe41331403a818ee79f1c724ea3ee9c2889261fe5af82fba89b48b0d1d89be731e9a568c291da144f281f2413c5b0196bea345fa70e01c1847eb12693d093e1fab9c4976747bc4b4fd47c1dc412556ce51e718d4a165525d81dd5ac52f9ea634e088412d6d988d96db2501a0e89444026c149163c86cc1b13df21c60e2580488268eb97133f73ba135f22804422d14a480fbf2327fb8644223f0081c429ddad76922cf3cec903904718fe39fd4458ba5f2c0610479ce264dc588d39fb6223fe689a317c95a79493308030e298ee244912be345c6b8b404f1253bb9ebc993279014411b8647dcca82645893a02904498620ceb3985150411df06bbec9a673f2c05e410c9e7342a57aaa9cf0a89440e0f07411b400c91da9bd431fa335bce844422659c01a410b46aa7689f192c193b7afc0fa700194008b16ef68dae5ff2687856001984d9267f8a915fa7eb4e01441059b42bab09d3ce5169024820deac9dc47aebf41425800002d7384136f64c877dfe70ce187fe65556b12a7ed08377aca871e39c1481f4e1347671db57c7524807081faaa8d0954cd65793fa3d9483543e3359cee3ba7a70bd829d7eaa943d2f1000c983514dde9cd8ec612ee321a136675647e8c7fce500e40e9acc742739c9fa71317000b1c3fb61fba4d04a622e31241299001b40eae055e59cad4e103a244a899a69aa1301640e4911e5266a789cbde40191431c8c258ce61493a161952f80c0a1acc184ee1bb1b5f8435200f206d7f2c6b4615b71352606206e285efcd292b2a38c33dc053b7afc1003a40d85f1cdcc65f2c99e3936f82e25f6c965c9fbacc178d27676d9f897581202a206b6baf723f27f4f4bdc053c5e009206bc53467c7449c9c78444220d8206b3e8699de4c99bbe9dc1947e3b77bebce627cc20660029c3275d12b27e5d2a3719b202103218d2f14c0acd2dc90bc818e858e9ae28a152be28881812dfee927ce7b53e1648180ab99a97ac70fd11a70002864cc2f7cadd837cce1740bc60de13268074e13ac1a32f49967d72b8501acf795ba962c9311812896ce11213aac2f698466504102d70f1b2f63d4f867141b2b0a650a2949ce358af068285b4d26235de258d7f8f1e21631c319c0072854bccf4ba463a49621f12891c01c40a7cf0d9501136d6d12404092055389c97ed094320e487182328638c311c9023c78f19f80f1e3d2090c36320461140a8003285bc22bb722c5924dea40b2052d0d34a305bcf71b4fe238044c110f1d4e8fe4e6332047254200708744840082050a02aba5f6892077942bb1596212c66e5392700e204422a95349fc1739a0ca409e87f3a51ad6b10265426e48969244dc6f2d1a301204bc0b25cdda492d537018812eebcf6d1e9fcbf630e89444092d0695cf8b42f7140c78e1c3b725860092048d8d4c468f92b5c4bde2e00720453bd546a7f3a29561f041023bc715a9f3ce684ec2863cb7000007a005284f3f633c63d314eba730042043fdcf37396879ae8e10064088cabc4c50f16635516c2714b922ae6d659cbfe062041e88470b9f8525a524e56200708744840070d408060b2b297ecb6785a412980fca01777adb463bbdfd611407c70872c9352fb9b31411f80f4e0fc1e4f6e1e4be52b203cd82fc79f7dad0c901d6c0044075fe4c24b9e799f24496aaf784824f23d768494b115b82f70f1f77a2ceb183d54fc849801060fbeb84569423febc439045ec60f3124f0852d5449b7934d4c9249f39ff1430c1e3dc420c317b53876dbc9f406bfa045d249b9e12fe5b38e3f8c59f8f1e6e46a5b2ce73418be90c566924ac7099b2e9a7c2cfecd1c9e520e3e96db2e7c018bfea35b861c8b5591f9e2159c24ad5fbc6adf5a8e2bacf469f3cbebe49cd75678521a938b7812432d168851c617acc83be6289299829df059859ee94da30679b1d6bf50c5fe19bc5389713ec3938a524531b1824e9d4679067e784ce10b54f4f1ace4133d750add2a2739c85b3690a3023a92f08529088ddccb1e6fa2a296c22f2bb9cf04c993aa26457b6197ffadaebf4a4661dafe4aed92a74dce4551d584c97d710f453909f3d7974992a663a028e54c2917e261cdac4f1c196ea67f53fe9c224f6c269add9909a21b4f66f045270e9ef33b69aeac6acf09d445bf921c19ce4a7e136a8961334b43f35f471385cf84d598a6cbce45f045267091acb74a1d3c9e184c1c4b54cf0ea3ddea9613beb8c41ab6e4fcb1c4f24a1f147c618953a44e924d4e315bc548040c00f8e08b4a64e9a77c4b653ca59e12cd2771a66b2e7cbde8e38b491c6791e13486dd664612a54d139ba4892271e612f6faa5c43cbcef1f80c1179068bcc34b9c6cc8becc23ee3ca2963d86924d8c99a231be7044276ec133423bcd2d667cd108efda3f562b0922ff09d9d1811f5f3082fb8dbb8cf166ee2da22d69ca84b874c16274a9084df0aa9ff7f413d24ec479cbd6f2af09de6b410453a231bcd44d4c387ff4be800c177c7188c2e74e48c99ae77d43acde95b2654f32fc422853bbd6eb6f1d3e8448d3d3de489f24d919841fbeac4c644198bf76b2740e9ac30d44755203e2cdf559bf12fa37fa877b2e5b9213dbd3523ff0d1fab52e9b654abf0f58d5b7c9696ddb449f0f64cc93d462a7cad8fc1e6ebbfef0acd1831d673a52c46a2de5f3a0b59494d484b83ccbe301db649b57aa6227f777e8926568918cfb63f27658daa4688de1a87410230261180a0582a140180800886a7c2600831308303044208d0563e1a05cdd7d0014000044321e504a2622261a1216121288c3a17030141005c38030201008864381906a10e76a62e305d72d1b211327c7bcf8ca84c08d040e1ae2cc94d42194d2169d7c484dacfe9d0c211dc1acb9e826198e76c5fcf9113288c78850643b891854103900fa3a02b39628ec340200dfa098f060433e91e90e826416daecd7233056d942e0c21329155dcf86002ab254246a4e64b4a5ef1e5adfefc5a05743283ea1268afc7d1ab3177c72f54f51292536d601df875dc1dc97399480e956ba1a712319615588a18a904dc18e27617a90ceabc86568f6750091a4d555bb7738da78049007eb138b9d0e6a900b8f98603088353bef28bcbcb107ea090bd91aa299828e8d69f14c89679de6c05c0940eac1cbf23859215fe5eca9b1003d2eb1438500e4568ea26e24e451256f747b71ddb996598ce06e344e38395cd7ede08f7fc3bfc88860606580a52e4da65449c3303118afa58ba4534e9c5546b7d391e0a15c14cb1d476cee12934bc4225b1d0e49e733bd4430bacd7b732ea0c89d2f54cb8d72f8ebb9ec5e70b0e88e63cae9510bd123d2e4b2cbadf2cf8796775f60f72268121323a01d530640daa954d1646f8aaaeec66f60e4674e544bfdc8097793e17bf807eea8e8c6fde7a978eabea8b0fc3f6a1aecd434ba0cd30dc54bc1e5892bc2d35af914c130bac09ff7274835308b64ae16e0da47549690e013ac02184ad4ee00d242ce8847342496f6bee0576244e99af3373d976cde4e19a42185693368592e5645922c865beab82d1bd969fab4064174188e4769d4784e41c19b7891cf706e88bb4ef074d55908754bfb812dc708ac3e8a8267d789a3b8eaa314f1a8446acf90fad7dd95177a064887b30f7a060985cc2a70ecd37093b53f64623793ca75d858fd164bbe9445ec20476c42209ce07d99d8652d5fed200d3e17f5bd66a4369de878ca3fa5efe59e9b32d0e5c11882605d8e13fa04b3a4660534a82c949331f8380fca014f1f28dac9aa8cd39fefbee0d3652a7486168c7aa4c92a71efae6fead18b151bbfef42d8a267b70328bb2b140acb3e1cdfb61e231b53532b89aa647e440ed2e193409a69e5b122dcce2b93b34cfb9c578a69b4a80685d677d8e5638ed4e8a1809f4ea3e011c881ac2f29e7260651cf20eb2d887a0af2f532203750c1bce16670f90e4ae04db83f8e1df1c65aee0d177aed726fb7d8fb167bb525bdd992bdd39642d416dcede5b4b05eb90b51d61e203f840e462d06993d7cdc94560924d0735312f12ceaa0a928e112dece640a1cc13d3897750f18a60ad6aae10e3b090ac954c4d04121d631165cf07b6a321591a928314da4732ce4a37c6443cd4547d7fd6a3f864b373efdc78bbe80901b8e481f12d7c848378f19534e6fbcf6f26f8ea9386c8d0b538690979f56c766ec21de8d715a966e6a9b84484d1b1089261bc8673abbfa3399f9e276a09b88110a52f3b0ee0ef1849f6190dab540ec392d6d9bd52540e6ec70d9097271c9e2a8a0abbdca200e4ccd948a50d5f0391881a23639763936860c13978ebf162c6d8cac2e907f4dceb20b0e9b36231d29734479da57d4479d9632ea458c7a844b9a7abaf494e9094403e569557994330df13ca904a7a4e9a8534b5230c15ccd373726ad1df80331bb474bebfbc3cede504e0ad936bc4cf3398167beb159aaf66c2998264d9294fdcb4632f895f5d2350a142e2868fa0d324dbc962bd797ccb6a0f6b1fd117af1b57e426ab14a9055775d6b2cd68062af9e97f2e63e6f1cb0e2fadc98d615c9101df28ff934fad23aa05b4994edfbe2d7103762db7dbd328553add2c39c488af4496fc0177aa22483907dd063298587c7c37ebfa157e335e88da74c503d6ac4ee9dee63a4637d14a592604c062e0d9426982abe230156c154ae5262c2659e6b5a30861baafdf1f0c56567b58e10136ce7bbab96b2ca049fa84fe7d9e0701471696aaed3b47794d5239463c769887fd2ac4293916816d87a7fbce8855265bd30e33c6ea32c544b698b2f559b75f957b2963b9f4d707bca2b1f02985a8169b47b57ae3846124b0f67ed003496c938a77632fba84d8cb29e4efc9591da43b0bd1945852dc63da9fc02e98a04dffccb81cadb6023700bfdbb5c95d3380d90a329f2efc3bbf0f35163c6ef39a783c6e645aa8c629b23c586c35161cfc817d055ea29b413cb6a9dc54a8853610897674357f0af27b2420d06c1fbb5b35c671fccd5d54de5683b59aa3decd1f034220ac33e1d4d4ae52d008a2013bdbb07d9a8b99f578951316640e3d447f4cd3a39c7205a3c007cbcb288f78a4a0a392ae9dd3d21cef3dc9987e8fbec9708314ab025dc1f5e512f6ffa842ecf7da0d129f530c728680b06c702a24c75d51a9d75e03d67b4196828ac2de15ba3b655091392d6a0dd22319199df13e63d36d728cb58700898732dc9fe68703b3136f36c125c41633387f9f085a61e05d2b26faee98c016538856b2b2a13048de0afd90421213cefd0a40d744b15a5f5d2bd9064fd06ed1c27afd38c4c9b100018091f3337c046c99e2a1fe362457afb949514f03e15a40d872358a9f1237f1fcecaba7ff3219074317d01495732e506fb772e02c551cf6e4b221331bf0a50af3c0849cc6e6290b90d47f1c1e58f0dfe3e5c8226eee096798b913d4967d90922b0b1f8d5a9ad3352a6c6b4ce30f5e3bcf797b1353cc5b47f7423219c0fcb1c82ffe09e1d324dccc39536eff5255021b12f7ead9f24584a948226f91280912a3eaf7f1d812a150b2609b3201b23ab058eeb858dc9533a6098806fa74c0d5c031f708db012d5affe4ac27cd68d97e9237fc28f5239ce6999c397287f2f55a2174d7e19e5480bbb55113ede2a7d4f8ed1be0720d97234e55957f4df582eea4d036703239de1a962b6b33cc4c4fef6d49b0b75574f7558ee1e3923deac039e443daa0b88b59fcd147deb23cff83f31790d016b49850215bc7783e8a77a03bd6b0dd29c1c4caab1ccc93c5302fcb2a2939dbc9956d56ab4e14c1a81850b3656498e283ae39e4859ab8853369ede65ad57074ce7aa4a3acd005298f33d9337ce78ca9a80a69af86791840850c41e0eaeaa2120de120598f0382fd029f082fc2446deed69a4a14bf76a38bd61d80f78f7a203c13f89173a0d03381c5f78c740566da12f0d00f485dec61a1d13b86d8594296ff65c45e6a6a7dfc63b78b47909eb958151198a9d32bf3935e06892b4db3c2d56ae870d1b8fdc9e31741cf1255e34fb0c7e776fe1382cd362ef73249118119fa8980f7f0f11c37f150105650e5c465b971104768adad7c5c20a4fae3d10e624548721590e534a72a26ae95bb52ca8c1505a61d82de060e87a84d8ea3792936a390d22ecf5b0a7a680ed19284d58e789a9305034c8721d2a719040a99c65c9b0ec959bb917905211a5db38593c3154ecce7bf3e274864cba75a21271a5da42c1d021f355c2b0a8c6d4e4a48978f08b34f0958d9ae8e6bcf36c04016d3dd24c2cf92554f06d02dc910c49152da55ccf4fdb4ba08875db45204c18bb6634ac6136a1508a121863e862cfa048239922026fca18e2e1814670922a4820318203e2fb22d3ab570a99353e95c6a8c52f305b2021cedd90753b3da4227871c27fa741a4e2a0c7c8af45ec87f18ca751730907535cbdabce24dcb24c027409462f61536840981f8a0c44389f323df77880f4f8cec41e49a137d679fc124ef4a2d3e284a9740b8db0dc75917a7e04a9ab6f6e847192bfc9929fafe189e3f900b023fc6886fc29d868e94104307c86b0aff9028adc1d8ee179bed3f9abdcfc8303c70a19227f76083da38d99a0455b102d209045b8dd56b8fc04bc1c941b2f054006ee841d85c31dd41d152682952db8f9fc5d873defe0617f35d645e42b3b9ad73d08bb5305c7cee13668202874d244a114d7f0dcb7936d5f42f5fa61a13c47753c60999446d6d570addda33258bfb6c6591fdcd86203d094ec8a04b768222174422f0a3ac3fff19d2ceca51297c02f338de2e00f9c3b64f0f69c9d666c352db68fb4cfd4ab4c6b06dc19bf89d1b5f1229920912acf1540f176ae4c4ab0b3eb1740ffcc0765f35046b5b420a6beface53ca3052889b04d7a1417486befdb5580e33355822bcb1ba83bc6b4408aa61fa2e4119beb7c4b862cf00fd2aeb9a637ac9338de99f6b31ec11bb2d311737cae334b14f06a841e08788bca1b20e20714bd4d67029ddfc3a31046a61106ab071f76106c3bcbc6f0e94dbae823d528eb7259585e792990cf0ea8892d9564f63115e07774794bca301f7a905f6fd458106901d02e12b549282003d085c624f648ff63a46ef7764b451a65488d046fa4843a5f3b50b4672ad46ef02025b21caea5fb71470efa3e6b186afa3ac6695ce0ede2cc6e4c2de512ee928b078f9ca847be35ba67ab5156b92f5f6902199c5aa3417e9255e58f564029156f38f66c961357dbe53ea14f8053b4fff9acdd63ccd54a18609b98f58d4542b50db8eda54fa756796fcb44be9318d81077f0f3f229cacaea2866dbe9a69d1610043a3dcaf9061eca116f6dcfd68b4df4f98b41624d9766dc981599bd36fc5f4d3c43e1954fd4c310e583e47f2747a9ad9ecb0a01e34ca9d3bc6cc7343bf818cd11e3256f12211d38e346ee59d735dc49f148fe41e4f28d3b55c406ac94ea0a4c548339b225096cad46fe58b2702043852c0f8260be559452012cc3efb5e484730c0720134c6a50b95e85fc84da43781c2d63743eed25f7269d34a5c06a5a62903fe0dd70469929e1f3428d35896ea423dc50dcb9e0d724d5f894853bbe29a99bedd9a2aa73613d8a24e45ca358f2f107809ee5a98805f23d4981d01c7e1c0f12f45017a64e7faaf1f0b83ff0b7a8d235a149d424f448be62d48ab6701b265f3c04a994b002b169f4bc8a3dd1043b7cfa33babfe36d71905aba66ce4fbf52bdbb475b70ecfe5a574c280198035e012549fe8f13c35c24c98b0c15773aa207d4ff59d74917897bb2649e4797236637bb31be66d98aaff1d29b79d648ca4fae5a8cdaa37b2341b63669e6f3e1d32a73f1f668a2c6464b6e81c425e1ddab0eab07c065fdabd7c08cfc96df6366670910cfde4f6f4d9587adb610142a753c59e01df713dff10cce8dd77820c0e6cb7d7ba6129ef2236392e1ad20dd438e458febe4c97528335454bbee476210080ba5715b4af00359e015cbd55b62d8e4d36ccf502704dabb01d07e3ab536cc854ed3bd7bf348defee9125c478df615b6ebe3b78796cc974c81638e7e249338668f792c5f60a7c4e20770f6adf25a75697e168ea045fdba81f4866882837e9eb63c567f53524e353b643e686a63cb9e9b6207884a0722e53240aa1ff98f88c97cbe3249801d18205ee68bb866e5e12b53bc4214beeb766cd7509fa4735e8ae6d778d9488159526f07fb071ded25919cf618a08c1cea20b50cb84df45fdc89ba751489ca6c192b50d1ae3cb09285dee383dfb411fa20e9447aa935ffbec3bee8f151dcb9be787f724c639647e050d023b9ac477aaf839c0020f27a21f049f2541939936aa7454e39ee0561aac2cb2ca1ef8fef7c9ac5f7daeb6e0ab12d51c0d2bb8da5601818f0fa51f41835b568c1eef83c261120748a7a4e76df806031d6943661459e8cedf493a77d40121665e8406aff8c97f68476585db25c6b40879c405f057139c9dbc2a5524734d6d92049dbe777819a16008191ac7d6dec4c42a14031443557072d959a3056435b9e4d2fb821b29e2cd917b3b8732e7180fb3460fd2498daf67d27639fd81ab129eca6a2529447f9f96c322aa953dbfb9d1fe4a11033a82d2cf84c409347f3ae7f378252c1f125143c2f7f4b92606410da9f08eb301d7c21aec7d193aa98b757f7939c2d6e34252080a0b4c60662bcc9ee4d5d583920d36d257d4bcada6ad5531321f17e9962f198de578e6896794915c59826ca580a1cee5cb2dab1e8e508fb587672ffae77e8c969c68a996b70d4ab304b932ae8c1ed78e0a90e558389c43fc49c240442d3d9d38f73004598eef51a0ea443ab29f2be4a81317458276782ce1dc3c730dde153823721fe162decdcc3224402a66d0450c8ded923924640d37f7ea60698e46678cb6b31a25d1010c984e39aa0e660afade5a84355d2bc46c48f2aa1ec3bb13fe485c7a6885638881205c510f1224e1c2bd85ab19b637e4d8c38f6030913b73c99c9bb8ae73a15b7cf59213027d4db348ac33b42a4a18d0455966f231381bccb7d96ea5ab8fc4ac7670cb4218ebb8d357d1d257bf315632cae2850aa256c9edcfdc6abfcea5ff3011329dc1e737c099f784a178b03ea3191f4c9cd82a4b056b180e4b998e2d047c1032af3050245b5b9eeebe0ba9abe6e027f0609ef442f5d88aa6e355da4664b939466f0cba42e9020ae84024b982438ea10f93967e8a380aade9be8e41fa953144b6d0e58a7fa85ec24ce632bc78ca3211ae0c4ff32573a143f3aab00e93d7d761c92231b2a2a74c2f63ca797653835ca393419c98f4650baad1da2a56b194e1800ffc42092616728be0ade4874f804e31180b39925c9203d2ec1af2204011c441e3490151e13c16b7297ddb103a20c54d65a6638796d2229443e228b6ec4b0a5d53a247aba7021219375105566a25920912847839975c8c37ea97ea7b4820bfc8ca9d133a6fa936d676127b29c727b108f2005a3c84bd1fba200f9dd2be4bd74aa95a815967b2655a2184e5680c4c6045101c0d5270193feb02ebfecdd4355090728272a6bb8f03853565f9b604d8c5614cf12d3a669ea2e9ae1109f888a6b5045a3af05e2a418c1db031c56110e181f867d7707ff22186c2d0811a706d052a97309b3a95d2036a10599bf5bfab1822ee3e4c54a0191730ce141d2bb65e76022c7ccd3532d4764d5c4253d53babc01d0ac9c93f2c847a1ba9154593db78bac759a578689e971ffea31c4ac8d770c3a95385bc7d14f2fcae8a04b5a60434cebfcb8d1f3bf56d79981807e79b67de3a20bbc2072e47a878a623732ca9ba19f48597c249486329339c671db51e640cf0fbee7b9e01c2fc70a32d95019cbbf255dee825b49a59b0132f60a946545228b3e982b33584998aa99228a3334cfd5d6cfa69a0aae97d9bc9fcae8352690f9ee564917fa214e365b839b86b2033235ca087f25d8d476143cb3ad6246d2759e481f0d08401014db3ec54e89b058cea9112501f6d4e999aadc1d16726a3f9f4ae06c42ae07e379c0a2d07045926c3de871aace863b55f87a7676fafa978d0d0eaaf112f98e9e2dc44025fc92544dd38a6ca291a5a0d52895607a022a4d775ca030ca4aa59fe64780a8bff786dd77af6f152db82ccb96c0bbad7879f511583d8b6ab97f3c8c1dc4a2263154173970ebe3c5a08c6965605b1865293c6854b605bb4430171bc53750c0bde1bb62d08cfd010c7c1c9fcf4e443edf91616456cd4391a2803496d6f8c2e1f153729e7594346690ccdf5291aa0064df8d90b2913f8b0a9bd38b063608b614959846da0ecdaa119825cc823585f557044cc1a285d6f1b4fb77f8ad8116d3fa11d7fa80e6112d2ea6407fc3ed8af5cb434d5b3409f70f9e751e5147ba13de84a502abdd683207379583aeb29d7466971f2cc93156fe6434fd136bd81c33719280b458e30c7db439ccee27f5c6cb9ba4391032e5f708cc04598ce95ed70bdef4b537c76ed6a88334af682adb91a2876a9cd70db3c29bb0d5c833189215d420ebcad8ea0e0be22e288e8cc1db074b9372772ec54458d25b18b3fc8bdf7a4eca871b2355537fc062197cae18ee2f989cb89b61ab9111565543df92fb31ec9988b8637cc93286a454dc226e3f01ead2d24fba1b37937f64db88d47243dbea33982b31123d37decef124a862ce55810eaf5771b5e702d5290cf96ec9c4243af5da908e3919ce0ceeac5fa3b1efb22e6029b2521b4dc016ee52c9547e547759455cdcd21b148b608b55022808f990218f1efaea44458f3fd36116a4e616ba28069e2a8d97157265b330567f7466eaa93184cab6aaeea0ab4eee2db981f2c1e720b9f13803d2395e3644d321540c1bcf0f2d8b197b588e28cbc2f38344f40bd34d9d1c9b95826897c43dcacc64529a9791f8a4a494c1d8d1816b4daa1458c9bddff24ba29e41db7c1877019894ce8e8b086b83b5241cb249ba50cc8cfa32fbce8d085897be9ca1a0ea48852319c3f60981a029ec1383833013435fd0c71e2f448097cbb04460ceb023dcc57da6e449dd1ceda35d80060dab3b5cb6234fefb8c0844446e33858e83f5702c2999a82cc475b7a28a259d6374c2e2292ca2965c7292fc7ef12fde28e04a26281623166ee91a237c92bbcae19075da3045cfec416ba5c6000d5b9abd9984765a5f0428b2efef04b791284190a53b6c7ae94b119d65a3196f65574b05dfd29ef2ac0d58a18058ed0213fb840640b5ded6a06c8239aa66c987c173f5ae40fbae9aaf3151d0870876c30109a1cd0ad791af057090ad6d2bde43cb095f4a88e4e301c25cdcce0841557a626dc31c6e514a761dd75247b8c2f3658f32fc12fe74c89c1b2c3c189c1cfe64f1630e1917e6c13a445865884042b11e4b9181b79b1b2fdb1afbb66608296f48f98f139579483dbd3ad825f7b0edc332d9249830cabeba1e3bd05885a8303aaa41a8fe0eb6b7af862cb408ddc76910ac4f3cb5c7813ce13416034b3e0ee8131062b7dea333db3e9bea4fe47951c57922e89d403cb0c722bf58b3cc5b9b887aca5500396c3f3847c0354d102d32f27a4f79ed405939a3487bd2f58e02da52e238ab2621268e3782788e9ab5bc19b186130779a92003f92882b7b2cb14ed930509150561026b16f65fba791aa483298602bc331aaa45327e65b0313be4175ffd3f9509123367f8e6075878cd2140278d0037c452d0092d1b2c668688b3fc900e67b0e91b46be16cdcd7edcb86ab26a0887a5844508bd7b49b23fcca749e4899bd0236b572293bf93fb43a0177a0f01a15278cc0d1da2b4fcb08798c73e4c3c86078eed4ba6acb7980039f3edbfdbea3dce951c88940fb9b64e0ca311423f2443328be296d46aebb6643facadc209f4ce857b0f479750968865441090c8e743d89df0207dd0b589e5232e47223847e8bbf7bab2b8dcd4e9c37eb2234c247f9857a229ee0b258f45f0591b3e2a7427841f5a5c889f27d6db38b0524764fb8eed8061fd9736823af47f35f8f98bdb50fa77c1d2c3d4f02a13ab11cfe06f4eb8c73b1bd757b49cc07dce24714228afc9eae6d730cfd14c90badedc299895ff69b01b4b362a36693d307e3d5eaa8ab52d66b1cad28e57f011d2c9d6c146da6e1754b6b36661dda3f3b3921e249a348933eaaf8841c98fbab00b54a403e1b635a88b5fdffac9dea3f0a54f28685d97291a18ac167ded10b9e212dd3a45c34059b4765cd4bb51d43f53e7afad1633cf21afdd4b9dae3e69ffe9f83c5b2f1350414d84b73123272d36cccd0f78b5bff95089024e7421b632b9bade492080f705f7d31f018a9b3bd10da6daeb80c3302543d73bb118aa60f6acf24f5b016aaa12f99f660f87dd2be59c83394b686ef244e668c4a247ff95a0617d56cbbae0a7a4c791e72c41ffc419a0d0057ce5cd618bb91c85a2b19479aef8b9f54d551128c3d8d0b6b9973e65873fe9adcf134e4c8762b5bf0bd9e4e889b0cc825d710b899d66d71efca6897d2b3d407cdf71fbab5a72dbdd9818b4cf17ff74ec97f9b251086c3f40b7bba8b4f61f11244a5ff463322b409c1c58e06df8b9ccf7c25b8bc2bc92c796c71a9271490c395a96412c73097dae31e23e2803d427c81b8f167d2ae7a2bfbaaa87068c95a11eafe6cbbbbf28ab2b292b73e565119d499da812e131a2ecca369b0b1d2228d19c6e1357745f7d1278fc92b5fb7a42f95060a6dba62995268b5a87a8914dd11542e15f93cd61b893b639323527475977dc24a1206876e20f1ee57d6c8fc5f93edbfb1703cf69cba5c88e12e133a9aa1a615b7a195bf237f3354a6a20528b0ea8f5f02db0d2aa0c6eb9c090a0a4d4960c54e799ef3dc49decd1abf18a1b2bab65d08ab7dbef26a9c1372aef23041f9ae59c1adc4351794e2e0ba5bf43524cdb9dcc9b024aaff40fd6ba4d5f86f5957eba3c7502d9dd00507bfb16bbc78ee0521ce6e38447738bde91c594861947771b5bcdeebe88a2fe6155cc04e417f737be578503616e690bfb0061b23286bade1eb6e4dada902c8e87acf2d7d9beec472c3fa4dcb9b90d67a46db71f9fa861de1a014e52c0f1a5e943dd634c99ac594843667429c9c1f8bbb68312776a0831f8ef0778add4db9818649bf77e8e2c37c34b7656cd064c0721f9f0b7641f19f02a3274f83df7165dcbc3e4969d555db704c23bd1f3246fb07375795dee9b6e32d858d131c92e251e21724073435f99d93453549e5685921843d8e88d25e340649f3f60ae5513461eabd1c20aa532e5a4c7849429304b526315c25845b14b37444e00b6e31cf6fedf73f1958099f70413e694241c00f67c83cdcdd28f1f12f0b8ca257d6d43c8fcf24d5b869232dffb948f1a7fe59b944404761f677f8fa2679110aaa3bedeed5e3cdae0742600e2af488d9d162825d4da9191f9655143d4b56859bf4ad0991568054ae03ff548d3f14789b80907349f02a8b494d5aa09bcdda2b0d00ea74b48fe1679dbb0f73111eb562b2406ce09b45ba240e4f927165a35f1806aa8200630f975c052050ae1abe319d7ce6e82cbb4d4c53ffec2ca497ed471bafb6a24a6af382b52724929246935cff9e7473dbf5822c3a0a2783fb7a2bb44cbc5ff7896cf7600947e6dfff440174d1eb446b23feaf51079c09a45765e068b364a7c3b8c2cf8b90438041466a8b67bb54f35b9f548b40d3e7b5d7b56ad0f5d716f57a88dcbd8e9b2ee95eb5f779e3137336175e73d9c9b6b1b8a2f9f638f327d3fe1524b38a8b257667d9ac924bc0f52b36358412f0ee9356c8bba19c5ac2d05d9ff4b4f9af98427ef35d4ef8edcb3c9a7767e25408c1f31d0a27a810b51dbcfc61829620b68de893115215682ff61e9a4c39cd52e0c058d272d916fa05e90c3378a2625a0f2383b95a1599574b2d4c05170fe67f817c28e4a9263815983be184a256df4d8b992322e3ec95a94ba15d602275ed4c6516a51f0c7240bb266151e7b716c0659839430d667a683410ea27bf15056b81bd8018c51456571fac3368c4c9a5ff11158b1882f2e1fe99db7a5bc1bbdeafc5974e075fa562b2bf24a94cead0b527c918f7046d8520b2fda86e08a2464fa2440c83b82499eac1797cf72d27e170be1288661151a8e9b5ecbd44e7d82c182575660a42e7b5b0ccc79f081c7585e47990618ed0153363fbb2804cd88c87e84abfc95e56b7b75aaff53b9a3addf7592d668d08fc68ea5ee96fe5d4aa07573938e484add69f24629b79bf25689e79b4e9212644953e0b214e9ade55795111cb23dc0011b38fbe9d9c5aade80b1a199f01dc106082ff8c392be67bcddf72ea6ba5960209e44bbbadbf540ee48c3a83d6abb9830b0412bb1c135ae5647a5fb9df9e09463a86365811a12432e8b65b73e055c044dd99527c308b3ef3cd02897d2b6e78b04c7b5e4c499fb67834de805d3d44183184b1900435f39a181a5ac068be224f4875de34d3de6e3b880302a02280d3dca08179fc32646dd44e98aede20d1216c2c01fdb991b7cf45fb87384eee469549a59dbee798ac2dea2a07ce3741215244e5ecb57492a60cddf552598d034cc9b528e48c25096b4a32661060cd35b1c4b2ee54b1ee8b25a598dac2e473fa7958d26f060a96008f09ebd9dd96576f33bd8cd761be756cf78af443e3e1a4a6764caa1c4f2912016cf4cc3292c23b0b3c2d709e5efd3e2bd72cc46a6bb99ddd93ee59fb14785e9e1a1081ec2ec60baa1eff45109f805b606a620b8c9532a1b746e5fbae3cb3345418d18b6676c206a08c2ccc4dd7774996700935f76092e7a05813bb0368f1ad9152a2ac07fe5b5f1bb8596458a213afd77b054ce0091e2e23d2a4ddb38e337d9728d078baba585a92dde8ad7bd6d4442dc0b6a1349dda4552f1b8849bcd726bdc456d24aaa109e8ae37e3cd339cfffde59ea1d65feade892a01703a93768c7db699458c8639701cbea8304184b4fb957375636b64758777c21b5e4415aba5b389bc16b765ff9b5953f687fded40e645e58df53b50a2cf3d426c4735e35601a8f025feae588751201e8dfa54e6935bf1ecb15f429aedf59dfdb52322951c42c446dc9524995c995a4902f7fcb82c85c8dfe2530e44a8b4333c7cbb3acde6757db032e4f96f2614ef3f2857a244006b5b86242e591f66e3f641e5d83ea90f545007d080f0f9e7624396a1d16491576c6d16e158db32df903eb7f233e7545a237ed7cb076425a75c01c66173aa600d0c43c9907e88decc2a45a563168f21f31d7edd2bbec8a2578df744dc0bf99f7ab44b6b6c13462d44b6f4667dda86a476309f427570f28dd20e74f376f1db407023ff1285ce0aaef4a257c5855872a48d9721cad247925a8d6f77ace2ab92c93eaffedc12ea5e1c6602eeccaed87f3e064030c749456f9aed2bdd0a635efabb5afe4ac07cf7a4278dea4e91e1ed1737470d36541284b2831cc71c8dd033aaa2bf404d8825b75ac53e80ab0756f4f94c064abc224fdafffd8051597d3248bfc50ed10e68440c2ef999067072cb2a54a782ca966ca984654ae3f99cddddd244666e8a46df053d698405601a0cea568115375e221e6e7d66b27d40c1ac7c5595c13c179ba0e563143848566a7d87961bd7df4457c267254f27ab6073b46f7630e1e1b4d581c2fd5b9616bd9f5a70358a80b4beb242020c5806e12d47cce56341767350892ba764fb4084322a383a59f757f1380e859f5189cc4c402c2222b7826e82e6d5d7052a0006608c4de509204b87c9d49aa9a8193fc1f7a62f8b3017af83daec101849f052881922c02455d78fc3aca286b93e854ce346535740a6eda202dd77fcdf2394181bf6a7829f9051d1455da4ca360ede755ef0de4727356de37ce17cbbcbcaf8b8212b443742a7ae23296365d3c0acd6770121688101e5b353db83fad635a7834fd8e65c80a553f21ad45854aa7e3f83abc29406f714425605732434d4ccfa2eeb39e83ff84e8db5fb04f4991345ce53d560b9aeb6ac2ce5b349a1c8a441e749eadfc8f5e8f0fb223e9fa25753804489876dd8e934609ee4902a40a705a7503c63ed26f72f2ed4a57ecccf4916790ff46fe9f0abbf29d1f3856eaf2a6dc830ade1cf15a2a25264ee96de8b5be1c5aa39b24f4291aaecc2277e5a57625a9862f5b230bf2956ce80e606222869f481d7b1314a3034133239e8d71c27d85df2f6fcf662751c931667f732cf65139b4082b1d13fa7bb24869d1c7321a1c97370a8bf442a6bfded79b25c76295241a15d1f5fc153cd94d018e538055f4843a4d13b571f5fa3e12e9bb034f3571516961d82534f450940d64a015e2fc6af0998a81ab53989ada7896cf1682aaa056a2b15e975808f07a2b1169f910cbed8aa0be7ff789ce739b7e327e3fc1edd293ac8d4c7aee21b31334132695adfea88a1b50980d1de600b5441e5354a8e145d3ba59251586f6945f4d71df71a747cdcd532032cf5bda9225ebb7bef18a1bd6a70ebf3c6194d13859d89b439bf1658ce5de35a5fbc731e6d018d64a06eccf387497200b469c56c13e3936414d50bc546dd0f0d4f9500aa53a590afc147166439a9bd35d26b931cd17641703eece45e70e3440aea69003033ccff33ccff33ccff3d819df570409bd3b2525c105da07554b4a922d5b041502665f6003cdfeff7fc17ec2890a02040f1e0fe90eb7a7f8d57292ad82b45c6e4d51bc889638a96392b5a5f02737c54fb775269f90e27edfd2a824c928b4da0da2959e2d8926a248cc635693523ab3c95070e55f529f78c28509419194fd7163e53bf90b7ee22bc16dd4a429b1b5f304df29ca86f25c270c3a5ad2eb6f68cec6893e732a648354a46c9b58f53cc6d52474c91ed30463f11aee2e9a3e6399284cee4d8247a765fe60c258ea9bf2ec32b3752ef10966f9377ed2287f59028ff927459b58e16255893d2bc58572effbb4a1c4193759d60c4d52d4cc244ec93de50df929749024c1e7d7ecbf28126cab6fb63651f919125efcb04b52863bd17bc431e5a4cd4c56371a47dca14dd68c2d4f67298de054b367e6a8bb49533d326083116b26bdb0986c2c42cf694d2b6f6efe9d4644d2f81124053614f15d12c5b385e8cf662326b09108ae843949d8bc41449967492a44b8fec687c824e55bca92ae6bb035e0041b8678727e767ee4263e6da3109410a6a1a2c48bbb2c21f49433d9dd4ac8cd19326c0c620dd33995a6d08620ba92f4c9cc7e201693d9ac492eae6d1410e71e9fb012cc3f6471a2c3f32559cf4b16d8f003b6e7264a8d8d7d0567a08218a8c0461f123ef4c526f19ecb5919d8e0c3d21e3cbf6d453f49923d989b97d5c349655e1d2036f4d0257dab50211b794033d6f677a3b5648307b23cd3642bc6a5fd55f0031b7758ee42fa6fae6dd8414d63be212eec99b6a50e5589ffb99fa43a474d0727b453b666f09eb750b131077f63873c4b9a5672921c4c42f4c60c2d6f15bf387c1d4ed8b8794a8ea1c1818e31ae728e11b71767c002e80d36dc60a30d5c122646f3e6b021d9ed45d24c4e986b0d67eeeec890e94fba940d35944cf490e12e5c3491478060230d47669993b59c4ada4643925cb9499aaad3c619b2dd0bb1d5f9fcc46bc48619c8d20dfd17438d7e090ed847ca50ff966c455f7bdac98888480f3690044934202202840cace6f8953ac93d7c70a4878d311c4eceb1f3c466ced41964f0600636c4a075bcd0912a9d31ad2322223db01186248d7aaac9b7a413346c80814d5207ddf51e4d511e11110162e30bd707b1da2a4912cc922322225eb84f784d1542a225a61111912e24c6d5899292a6eb587ed8e0421d3e229f625276ce16caf7ca870d2d7897bcb2de7420592835763eb1d6e536577260030be7fd98ac7246fb14f4326c5cc1eddc9ce9ad3c367d464444ac40d709766d975ee3d955382bff52fce6cb19aa1ad8a00226acaae76aaf1e19a7b087abb9a5fc9ce4b4e3c08614940bff19c777733c310a7994a84ae9c32423c306140c1adc73cfe6496c3ff2843edc9d14bd2bad47d706369cd06dcce5e5eba9c41c036942ff296b7d762ad32440c828c3839031c2831e41dc064c286e2ecf2699a53be1c4c6129a1ed32d29ccf6c99a12dcd0be2979eec94193842cc51c353ddfcb62030989317322b222db38c2bfb184db641d1b46e03a5512234a4ef8b247c828a38ce4cd204301368a70c7f84ee37539c78ebb0d2224573e09bff898d0e0860ca3967b0be5a7fa5af9910b8cf1830132081106561574a292c99df2d9c3db8719272418e57a8a7f861e18e798a41cd54ffe40c82fc81721bd08e185f26ff2a99ce7924493110a8c00493ca081905d5cc28925e5096dd72415a28b04b98b3ab35cb35e2e5a37d7cfd86fc9a4181774169ff4702715fade62eba0f7f526d7d9545b98b1692e874e6932adc5c1432beeacd7b7420b379c695d7a679de5233d7e0439c3c70f13320bb32abbb56aeddc47cda040882c8ae925c5fa13377bb623222269ec06426211028b905784b862435a11c28a0984acc2ee0ab249b0f89f0c5185f14c5c4bfab2dcc13292000a4945082a424e814688295ecd954d10138db7d15228a751734a6d95793f529cc5834bd66dbc7e276414f5a5b01e8d32e9045f14bb585ba84693343f0f452171974a2ef55c5382025171b9cd49d27c267e22afcab424a7784c2dc413e6d0bc1223ad3cdfea44a27a995ef4138b17e644a9f6fe4c0e1d4b737213cd9f60172a5f58b7146922c136dd4c26e9e4e3434c08c984ee56be9fd54bd83862c23a7963767989c1d58284904b789ace53453c689a6589904a109dfa3dcb9c249467005084104a248d99749d3b7dcacc43266196b4761a57cb1022094bd4f8a1736fc9a1f6911e3e82f470108444a2d8b0bc4ff5a36b9721041269bc4d29bfda63087944a1666ee346257cea1f6e86191f70800ac6e881770e7cfce0801f421c4157aa2ba411079796bff7123b9c68064218e19669ccd5b52f2164119a24ee6c0ebe9f6de30eae10a2885776fdbfa4f4cc2a552124118a7d7dacc949db2735c23d4210913c79f7717299f82e1016841ca26ecb2d49d66c374f7520c41049d9ae3eef718f200e64032185e85eaec4caf4022184e0c37f884ae9e69f6c4444444484021f320863b54f73ce37cc07472a102208a3cbfcad5289b173de0c218170329649456d9afb5b0b2180f8f72fc8f59a14b5da1f8e12fe2eb6dd42a6a81f9e8b9aad3e635627e1903e14a531a685ae9d861cc287f3b5e3e6f857624c1db287e37a554c42e798b358881e12db37254146d334e72179e8d393ac5f98a44975081ef8a0a36db3b796ab0ab903eed9db3aa2834cdd217638cdbea264fd42ea90647df617ad332793103af023a6f94dad4e8a61c81ce8f7d02dd29229351a111149a38c32921e40c80891439969794633c571130b89439b1697763e262b407a00494636040ea58f7fd2a61a4744448090518390375c425bb887d733dbb8a1d8b4bda3d5f13cc85e868f1f3dda50c8dd74fe7d7fa903848c1036906e62548e09bf31df0308196b48b078af90ee4dbddb87a86199540bbf25edddbe232222dd49481ad0107286effe44347d39222232460ed8056e76300600c0106286ad63e47fa494a8259721137f47e7c2774a0d3d21840cdb9a984b0aff17e1a990319472f09d8ad58e6f133150619e34f224e1e4670b094352126c636731e14aa3400e3cc8074444289046f2e3c7052e30c6183d063b0bca2823c9410a4444c6e0410818f21aa9fecb8ff52eb220e40b215ee84d3ebdfc960ce942081742b6d081102d942fb5492a7f5132e573c02e9840481612a52f3bea4dbce93c1a675820040b8de6a70f15d3a9b4845cc1109784d0eb8d1742ac60a8fa94d258ba4865ad105205ddc35a54e3433ae44b08a1c2952dac745647c7306720640ac692888cf9da05da0c32382022122285648d0f711fa6902814f79dd35212337841cc2063a487fb800c203e08814272876492d22b7cc7840368843c41f7cb8c3dba9b463641429c4096a471aebd0412d204747a3e8698af0cdd9980d4beba749be0fded12308f7d6238918d29a42d085102f3ed7731e7e53b3133e000178424c18dab7f9f0f7565d24828b4956eb29c34c670861c813e394bd4dd9d98311462844a66b5e2971c327815528433b985e474524b8b0921428d61f0225fc96367c9adbd8630fabd14e2f2332549b082b19fb879538e72b125a74727a10630ba9d0be17f1bb37964f4d81e1410110182010778608c203dd8408d5f3026c45c4e72a8862fb2974ea1f15dda537d468d5e9c3bdd634da6943d2abca8f2676b976f7ec69c5df449f64ed0cc1553ba75712c2d9d3d399b8b3236bea794afc4dc4970e19ce5acb868366626b738f97ab424f161d93a5bac1e4cd294e44f397d925a785671ca520ef71dd3824f297fdae4f7dbb3b32879aeb524768c8a5522224180b80dc868326ac8a29c3a2d8917357694198bc2f9c7531f71040d203dcca8018bdfce4fb82454dce82b0c95842c131719d15c71cce961fe613352d30a2dccc7d206b3ff4bb362170dbf71fd24e79157c18ea5ad2a3b37b15e557492fcb77392bcf2394c85593448caa59a4be64105e76d62a6fcdd299a4b424acd4ed7254906354cf17f8f584a6531f6fca5e03f894977c57facb3a450dfbc930917556c3a2fa8310ad2635cede59a94f8c6d8400d51d4dab999677c1568a046284c490ecfba15f4400d50945abeaa43fc26f1e4d4f8440d4fd4e8440d4e503a9636bd5bec586b6c626b686204353251031329a871891a96a851891a94a831092d444ba6640118a18624f6f4ae26566da64d91a83fc951cd5c531e17755103129c144c37c9f7a3521f06281111111169e2d9a90008a3c623ee0de6194accaeca51106a38224d3989291e4f73b9d688b453ee2ea16255a78a1189c9ab376a6846cb7a11c9df3979acb81a3c4720d450445b5567da131583fb89c87abc5ceaf7d2e7434451e52d658f99aa3c3f849bc32eac5518e44762821a8630346612c574f3e45f28e0831a85687d73de6039864d138d8888384044640c163820050ec841102068dca02fe0ce817644d42084694cec3831f5f6db0791860c3f9724614bba5d1089f717a5f285c5ce3810ecbf5c4e1219df1b06847a593fce43fb07f2dc733a398931733ef183f9e73f675d3b553ae903e6e15d296a273109257c28f77b65ce5eeb6e49f6a079fa18eba71e0c97d3c6964f8b0d691e703be97fb3968bfe89874cb2e8992edd6fbcf10ec95172e2ae8ca787ed700aa3ba31c77392d6abc359ade4f2b687757428b7b52449960b96f23687a36b062dc14c7d4a8e1c281d4d169d6bf3421387672f7cea8ff54e471135e050f4bac5142b2656ccdf409dfe5ef59cd470839a236d354aeab49ea4461b4cf5595ede5683af63d46043521e9150a9acfa8daec1f094e864fd9d573c3524853c978d5927c7aab750230d977e2e4d1706a98106caebe54b4a16262bc91914cb94a379864fcf9a19fccecded6ca1a9e25486af4ece2147dd5c3c4f8634c4e76c7af31832edf49f433a35c4d06494b6bbc78ae57518cae1175ba72e5b8a070c499ee2c6ca1dcf2ae22f9c755d9ea3bddc752f1026a6a4f9a1eb266e1756135df1d0b53279e542d29a4445da735ae8b750466ecab1552d94a04616ced20c7a99fd93540e0b35aea0776ffd8c4911420d2b605aa9bff4a4d09255c13cdd5cf558154502420d2a9439256f73132d7938853f6fec1469c2a546470acdaa87e5eadbf3e0d68842f9a772379e673767a0e0753e9d12243fc8983cc1202e6dd5b3f1d9a1130ada49be14bdc465c526783f2399744f7e5083095bfe6b7e7797eff0975067cea39ab48347754a404a736d4837edb72d099f64be75fde726a1470216d2e4ff937e4e74b3c611ea24974763de566adf08456b798494a0da9a1641cf39dc5cb387cfd4d42082d993f867e6f1b373c34818cd6a2568495d0e09a3afeef2a974d958371889afb261ed5a32b70b8c2b68364b4f51a36f4502017e714cd1ef43b389871b7d516c7bb599cdc70fb9175675c558df60e279f2e2fbb2b6bb789aa9c75d74f95ae51c8d1c7f7847a62bc5c6cf4843056904f1437193c96dc9c1377797a30f7c9c56be7e8f0a39f860b4859e19ab9876da1c7bf83d7f925cd34acbc51c7ad8ea93d86692a8e98236222272460f1f417ef830411a3f72e4c1fc2589dd59a493a5ff100b2a90030fe518735d8e7fe61c678e3b1cf2b397c9e92b8cc7cc48aa90c30e26d93acc78b4ec249639eac05d69cc7d52a7a4961fdac11472d0a1d196eedb78fb54e273b02f7ed7cb4a98f8b70772c881c84e098f69ba973c5d8693c10125e488437b65659e97d3f2db09193f1216a41104004ec8018775cd4f638ce75be97e83495c3d4b927a3d794e0739dc70b8d470f91b1f89418e3618175cfea73bba3e9d830d468bd6edd3299a753ac71a887eb11c3ffcdaa4d4600c655b52a98935ab9221471ada541d3f68673641939820071af64ed9f2cf5476db739ca1d4246566cf7eb3cf7398a150e2e67e665a0636c53cd5fd52410e326421773733bd9a145e8e31f8d953a62bf9a4cb9ee7104362aca0e331da74f270214718caa3f3275766127e2b58c80106638808bbf7a4296cfa0bc9a9a4a757f1b024e885dc5376c459122c74b80b073f4f726bbd5c304dcc8e25dbb485eda2d47f6b460babe87a5eca1aa7269385aba412f37cfb58d0a72fe564598cefe71572dfd8565552e7ec94127258c1cc49a622f38c428e2abc25a51376f523324950c84185a7a44de9d672eee4981c53a83b8913e1c1aa3bf423e490829dae6bc28a1a85c7d324db7299030a467d84c49998f75fccf184e3c6b7e5d8b9db258605399c60fc6871c3757a23f626147f59fedc42b78fcb04f4e244f7d51b49cd12e8b0254efb4709870d1eed7b3e772a4b427e2362b27b7220e192d0b6cc9aae536d24c871842b4cc60f390da9241b81d616ad4d621bff9a1c45484a4153446b98f34e92830885878bc12f598671b4cdf321d91d6f34611c2a2a3387a54f92e10886337d2f0e60e0c93b4d8d8f6892022bc0f18b34c599e5b64c3a1ac7e10bbc354bacbdae38276f70f4e2f4a956ef20d57125bc28d8546d7cca76a18b5c58d9152b72bdc72a830317b5e999b89b7370dc22d93dca788e3fbf9b9b000e5b2c1ef65bad5dcd4d08472db6932eef475687b611072df0d09ea34952ef963642c0310b3b7389b9566a34991dc0218b47acb2db7a16ed13138b3eaba7d4b93c94ab05072c3431f9337cc6385e710e25aa7bbf8ec315e7f9cdfd27599279c3d18ac535648e27a6a0177370b0823e9988cf796bf53c3856d16cecfed418aca7c48c6800872adad87fb71aa7474d3e15c5a451a3d52d6a668f0a435b434d93a7e0193fc59617433a33835ad9a638f3c94675e6122aa64b517d8eaba74fa1bd6252f82997873e39c5e0d78e82d58e21729d4c12cd44145645fb88096928ba7839cf5286cecaa03074e56d30f5f268e627923a4acda7f31ccff744e1bbfaba52ed44ec446927ae227d3b6b0a39918b96c7768ef2dad626369796f3dead93324613aecc5b4c92878f3766c25072e5af31ed5462840942e5e4d0bb6b9a3e9748f2cd8d7a62b650a9e0b0847ef627c7f7084d15bd018e4ab0e9b97f629079cff944e0a0845d413bbab24e7c24e9e1c3063d80806312491e6d2d4bc5ec26562322223d1222e090c451eb6d7ff25373ec8c888804014724cace41d39af4320e489c2e7ea6beac1f816da8bf8bfeaaa5f650010e471cf216e7e67b29646e2401381a41e660bee2597e5f3d8c384ce8978eef9b9e7811be5b6ee40991f69ea308f2d7735e13e924f9611c89a04b8c1bb5935827443810e1874eb914e5b26a26711c82ceefef5c29da48a7380c917431e55a594ba7cce028447135524ee2db63ff3808b1866ad83239bd76a7471c00081c83484a57961d3fe11084d966ee841283ad25393802d14e5abaf83d169d96077000e22fdd64ab17c2f187b36398cf992b9f2425191111e9212222820b60a00422e8000a70f8a198138fdd2598e059c3d1872b5734263964a9a59c0f898916ab744f2ae9a4e0d843a12ca7bcde1a3de43f6d31f7d46ef4110738f2d066f9d6c8afb8f5141ee0c04329fa7fce991c2adc7b872b4df766624b0c1db4831dc42f8a8672cdfba9c32966be4c79f33d96659081831fe0a083b1d337a7d706c13187b3f689277a5481c8e19839899c78551cce372ee96ede36610207bd35697f4a162038dee0a55ff10a11df70133470b8e1a43a6d96d7e4afcb7fe068c37267dbd1bc43060e369453cdd6ecdf6b284ac9c65cce9eb99b031c6a783ed33b6359dbdb9986e773f7a675fc7cf2674444e471a0410b15d359ffb464fa6c80e30cc9f93b8cae6a5a4a9f0dcc505b7774dc283943a78c348e326ca13289a9c2e8a5c546444480f818711c64308a9675c6dce118035349b29b170f87184e5373b2dd95901a33053c00003de008c31b2f47554c25edf63138c070b44af99d49f6c990491c5fa063f273efeae0f002f62166eafedb3e8aa30bf77c56faf052ae591c5cb832677a59ee3f3b7f0b6f6fe9690c570b6488cd6da7104716ea8ecf9ff973ada5c281854258989e9ed1ec1f8e2ba02af1ae73b17a43c76105c64fcfb29c45255909e0a8c29ac757c3ba26cf09a9d0f69cd0bd11ff572e8e2970aa953a45d5ffb89e21e09082b65ab26d118e2898ea511e3be6bf4c0a0e2858b379f753e6bd7be7094c9da75ae6121c4e386bfecc61b358bcba58004713d0607fd2559a92b25c389870a985ccb1e5e358026f1be3c768d5d86f7d0087128ce87b8d127912eeb8122c53c481044adea9edbfacbb6442011c47a02b85b0babcae1e5c12e030c21a5334754b0f13971c018e22a89a32858ba99e72da8c88889c8b000e22dcdf293a49f2592a95ac4044c4c70ff781193ecc20c18d61e021dbcccc3ff355f087a7e0479014888898718630d6d4a8a466f223222240c8c8410f33bc8c337c7030bca94e727d7ef408188826417253b67db0724444a402377ea16ff46c9bcbbcab9b6484c730377c617bafaa56a5201dc32040c6a01bbd40b4ce773f07dce08599664dd812db7d539a811bbba8e3caaaf38ea78cd60d5d186b293d25ad73711ccb917bbf8df5f2062edc363d13ecfa6398f3c62d4a132e65373b19b1051b3a967fca96cebd47e0462df4ceb1c755a79294ef1f36f0e48c20490e7ef8e080dda045ed5ac172d608bb943322229286d0e8112407df801bb3a8b3491f6a4cbaba74cfa1d1c381fc48ce9045c952899f323e496d4e2c4c16d95d662d2c1add90a788480a446ebce2dc9aac69df9cac6a4444c415ce499576aae7afb9c08d56309f9dd3ee7db678ba1313888800f9e129b8c18af38dc9397b9fb627fdc72a98943fa93446549779813134704315775a4d4d92955871bb54b0b17e5377d2d7c87e046fa0a2f4354bb75a3f39993d809c22d1a283d4acc9259a670a3b263a95c6d768934ab1f9fe44798e592c0cb8410ab4a3d4e9ab360aadc59220d96be2b896033244447280861924b8218aa43e5fadfd122faca168df3a7eeeb6427f0e8a2ec646e7af389bd46232cc484c30060a6e7c82faacd935f51ae9f1801b9e385acb7555082170a3135db6bc6de95df3f8991b9c687d2cd4c90f1bf4d8c4352e3e3efa9319dd480f1ba0b1de3dfc8c8481b88808057e2423dc3e4682780e44447e24237c431387a6abe76728d9e7f6c08d4c189f362b225e4d9ce806260ef6b71afda2e57d342222d269987101119134cc48e8c625cefeb768e9e92e21e086256e5402336dcd193eab2ae41ef4074444c600c10d4ae4155e2ed555489cfc24961bf5a8d614c2bd95046a172515eeb9965a24ee709d41e43e3720d186126fb3a27af6cf474444c6c88088483b1967f8e004f8b8f188630a8b3aff18644c331c03371c818d470b6f4f722c971b815f7994caf33de9638ce8dea42ff32a7f04a11b8b286795d6fd8b4c25c728825ff1f97fb31c2ba43fbc7ff8b0c08d44244972af4f59f28a332142f78bec8ffddfdb7ff430c3cbe8a1811b876063995fb987fc88cb888888218e1ffb46212eb92fb4a39d1c3509bbe00621740b7ba23925837873dc8b26e7f9687249c10d412c97eee55f6236f94c20ec907937348e5d8f090a6e00c29f2f2949e55e103446f087d44c14f90ab657158d8888a8e0861f1ccb1a37952407031a1803031a68e7e48c14a4e12128c18d3ed0ae2e799e53924d1d72c10d3e7c75b939c36e492e5e066eec61dbb312dd7f335db52322223c70336ee8c19cee2db7cee7461e4c13d6317b727633ef811b786864dfb5e27c0aafd911119105dcb8c3396c0cefa61e3327d934829c9103b74353721d63349ff3bdeb40577e56ae7cd241ab1caa4c8acd41dd4ea79926ecdf69e8861c722bb9f1de2c72e98b4325a6860d7926ccb9950429c3bb0137e070e30da564e749abf10d377c52d2eeeabcf95f62d0d0816b600337dae0776987ece828d96783daa1d22235e6c61a4eb9b2bb9a50dd50c38d344ce0061a6e9c6193e7d644cb29dbf7bf61062b499efc2b1f9541dbca6af184a8fa3811c20d32dc18c3b9fb4dda37b92dc9470cca9b9c73c44647fa0324b81186caa662092b13972d9be1e30637c070ec8d8f3b26674885cc8d2f1451f6ff9943bfc7df0b4fb5a711ddbad44ab9d105f272ecf5b7cf05eea42ceebd4929bb06c28d2da03b3da13b92b1bbd4029ac4848eaef39db7a471230b495317a32feeb22c8f05d5c4d7943db4956dee0a64d26072fab415ee4a2579a26c974945c68d2a2827c9c9d3e79cde3a4a854327d3a5cb583d710a8ec9da593fa53559298514dc8882313753dee6f3dbebfe06149cd6ef35314fbf49f92778a2cd6613a4b5e5351bdc70421bbe2d5c93e6dee534a1923afce4f8ece7280a3798e0654cbce5c877557f099406ff31f9183b7a2b3794704a3595c3c74e57a2e2841b496037c71ee99833ef9c48f04efd52ccb91b47b8373e4379c865704d176e18a17c2d958996db386f14a1dbfc124e4e69d9ac45e10611f8fca61bf382d4758c8d611463e36ff8c68926e64b604318b698b0c1f2c9631eb30bb0118c4cf44da2a7c4e6fbef061bc03047d728b117e6669367b0f10b254aed848bcf0c367cb1947d96a0e341fb62bd3098fc896dbfd9939c106cf0c2c62ebacc16c74e568b6a1aed030369b40f0c7c09d20842c60f1f37484600e4035fb0a18bc4a4986e1e55af76511bb928091e63b2f74646066ce0a2e4399cdb5594927eb2710bb425eaf472a6d795b630687e12a6ac4247ac5a2445d5379b9f12d70c1a67d0c24cd2b47f9e9db8e3cfe2123d4d983ed59c722f8b3da5b7d54cf499d36351bc2c6a9f938592731c1689264a6d45fd15a5ff080fb617615157601d6156c29fe798ba159a3457da93ad517956283a3d9226f468b8ab3885ffc669c5e89bc3aae83ee9a73d53b1540ae7d2d6a282527bb76806c9e6d39b400c2a988268cadf4d7258f2814c4193342731a7735238eaeeac56a85220461452936a2f06ab984b6606c480022126640917dede997a823b55a24b06dfdd11c57082727963963c254d3879e82467ae9c436f2e0613eedc1aef2eae8f592704622cc198f1977365992f4948036228a1b95c9264b82b3155b8013192b069e9a7b2eb943f392006121e3951db132d42ee801847e8241f932c2b7fd6d2474444ce8c11fe4b29dd83234092910f885104c2e414b3358979da1e3188507f68b6ec713da6941bec18069ec2bfe9954617bb760863d5f48e413f3f460c76042339d2846d998a59f2c00e6024d5a6a67aff707d5911111f64fc62954da13a35469ff97c41a69093c352896ba301e9c59b42744cf4a25e89f2420b92529ea2df85f9c49fcc51297f49c22bd8a10bd5be52dfacbb06b972518c1f43e79bce3377a560072e4ae2e7764f31a7fe2f5fb0e316b5c9591f22230a76d8a20ad14e62945cf761ac45425748c9e9774edc043b6851684bb158d65a9659f0e927c9e6fb9c4b7a9060872c8893b3c6b497e2d7a223222235d8118b04a98bc1ffc711119113ec8085bedd939f43752a497a4444a4870876bc82dbe8947b7b5f324e3b5cb156a5358beaec68052747ffbeaa32614a9a15bc274d692b136149cc2adc143ce7a48990f2fa023b54b19418c5eae75374149841da8e54ac6a397eb92a6dc20415f9479fb4b14f769ca2d8579aa2597efafc233b4c91c9276fbc0e36268ac7cff0c14030b0a31445f52593bdab2c1ff4c18216ec2085b5ee6963a3edc939368a76ee3dc6cf753c5a51a4d939db57baae2e83831da1386eb45bd44f69ed2f65ec00c515fd042929da66ecf884531eae5d3bc91b5bf384b92bc5faedea44e1dad5517beca7264eb8276da96a98cbdfd226ced9263f54cc5b59464d28e9d942b9949948b45cb17d82c5676730518aa11b276a697e7f893cc68d4887966edb96c8a7b62cc78b924f629530672c299524c5fdd0d70e4a309e71163f6c1262ea1d9328f58a9f667dc7f8c90448b3df608724ee4c62a936af417c9491821cec88045be9e1fa2df85709422239fd8995e35faad1ea116efa57f8609289976e479cc44dd95d3732891636c29cf94ab629d94c73ca08358ba5e69a0a9f6e2da294a3c465ebe31d8ad86476c66267546e34115a86aacfa4911ff34484fe9ff251bfa4ebe41ec2b4b1aff6d162564d3184de976309262741d35f85e82ec604ed6413a20da71317173753390832675ee7a32aef5304d159a79f9cf953c73809c49d5a3e5ee5ce6459020873ead7790cfe81abd41b2d4e97e417f3c321531c93cb739db104801176f4a1cedfe79de353f0243c2222b203325a0321d8c187e23a347994f8c5380b61c71eb8dc6d7337a3f9bdeed043d96a5e5bab2978bce48193a4ecb29304ed9b320320d881876f43e34b43848729f0811d77b073f5bc7b9ca8d9230810347ef400428688089032c8088246eeb083575749721313b3a30e599ed0a92eb3fac23be890fc2549b1257bfa1cdd1caa289725bce4a6f34a1a415060811d72304c7928094dd36a7d471cfac8983b7c9c5360831d70a8c44d733125b1fac3fbae013f230d15243bde909b7aee0a99ea5ebb1bae53e9f4f9c1edcbb3a30d9c4b75ace01fca2c638231829051c61929a0c10e36987f3774ff0793ea6e0dcb493a65326fb1f36584033bd490b8dfda7d096bb9ef1d697866f32c78417a9046d2021f3c50810476a001134da235ed9ea124e7d63be14cb69eca0e33944bb69370a26ebc4f193bcab0cf9f70f163395c98c990943e9a82c6a8bb4ad9310693a6ce147e532ecb80058821b92bbd24c9e58c69c3a069b69d4c093b1a27306c57b95a99a4cee48fa92f982b5612436f2c417edde1053d6783c5fe7e9a3449c18e2e94d17e42bc9bac69cf327cf8d815ece042dbd3b9e9f1a949aeb670a8e4f1637ca473857668c1941a2c58b69c6b5edd91852429fec44af7ce86754444a487193e7a04711bfcf0f122222fd88185d76635254a70c715aad3b98b724952596b87154ce28484ce88f49c35821d552023e5754a3629e76431c37360031f630715b04b8289276a9f58139b1d53b0d5c28479d17ef8e84101158cf1c333b0430a76b2def124f92341121388888c0449ce10114923c88e286826a74d51a2bd67d43d82fc20e347901f417640e14b67f2d459563bb17f0236b6b9bc72a86a779d60ca8ea7280b7de76a134c6269d2a7de4813333b9860d4ce398bc79790b9099a523831f52fdfa1844bd6fbd974525ab9b823096ece326a6a61a2fcdf8104b35334bb5ce9239416eee2c5ac3b8c704927d2d93e3db3293b8ae0c9aa58bbe7e99c991d44e0d3df65f4d87d1d2f3a8661a53799198f55d5be30d679edff97cfa4a709465ec2887b32314dc2a70318a7dec7244489c9793fbf58a3e6eb94a7a13d73be384b344c6dc6f4c2b8be3bb3f73d5162bc28ad7430d7cc39475776f1fe6fa67fde3d6ca043172639e5c5b4186e628af7c03df0c379e04304a523170957a29ba96c8a593f2eba984ede2dd9a38a949020881964f830c10b74dc22b768b136560e95abd1610b74c6364c4a928e5a24eaa7d16467426fedb4305f38d1aa68ce22d9c5d2e2671232643c093a64d15b4b4989be39c91da3041db1f8734e2bbe17ff4349ea80c52587cea1f63a62c2d8021dafd893d4d9e5dd84053a5c61598a4e7889584e738c76337c9491011191d6818e5664e7ee614dee74b0822faf1867ac5b0517edd69d664f10ab55e1ccbd8c7e4c97dc642a38b3b4dfd984fe2c295478c2a68e5315ab4ed3294e297b123654980a1337c5f9aaa5a33aee3a594a8106bf28d5f2e82045d7d1156e345a8e68758c823651e53fcb736ed245614af6a6a4dfafaf6528bc1c16c37375ca12962fe80045752544068930c1f6b3828e4fe8d57652bd0996fee7078ea0c313edb8ab6659b1093a3a71e8306fcdb1a7ca541d9c28d37f382bb19a0f3751479f8ba72b9bc79268c237213ecb7d9889c25da3a768cca4291d9838a2d2c68bb28cfad925f00ff64912f3abc3126c86dbfacbcf76925702d3cd2144ff3aeea39450b4427a524ff7dcce24daf3bba0db1f163949a22c265db9bc2a93f047c2368d96d1ad2f2ac6464444120d15e880c471e9355fcc8c92df3fe264177276498ef9d47684553a9deb4f8a043a1a8105bd60b94c8a283933810e4678b6b72925fd4d696d1d8b60935872e5c98707597528a2fc49db52ca1546fd2411e55776d6784ef1b9bb810e44e8aab6f5d1395ee936d2a3471034ce30e3033f7c00f9814606807890343000041d876035bad4ee49619f53f7011940d0f8800e439445e236ee422f874e54884a2c0b6352d684f0d36f4cd00ff14b2beb18c45a312726fb389e2e17046ad179a29ffaa7e804a2b0f13cac233f2a3a80d884e9682949795913fdc1b1101395c37a820e3f50139e3506cb4d9a1a1d7d7883bf86e53c81a0830f7f5ccfd456ff2eb5ebd8c3626539c9a9eec434d38321b764d14a7eb731a4230f9698a162495b999227c18391d39d476fc6f37750f7cdb269882701a4c30ea47c860af1de1bb175d4a1cf2bafdc8cc9df8d0f1d74c03409fe6e3926ef9cd331074cb3586e4979b30c02c4832422d02187c2ef04b77c313ae250b654d163653c4fe1d60187dcd34b0531fb0dc98974e4dfafc30d546e7e4b3dd136944b74d1f7ecf46c396c7835ee7aa5d4d7b057f470129b4fa898a9c1ab365fcf9a4c2eee693086c547cd98dc1a4b6ea0030df49f986ecdae34a5fc1912cb674bd5dbfb2e378319d2fcd7372a8339e547ef4a4f6fdf92c18d1735dc77f55878633886cfcffde311c31e3c46ff46eaefa784c1d9bd0c9ead3567d7c05094764dbfac693fc45f503556a95e0e7961731fd9cd77ed9bcc2e70628917b25e672a2f174e51355416d5fa924cb690ac57dda7e8b4f054cc262f13ff1db42c1865a97da6abd4333ab0a0e798b2ee437b73c53bd07185b28a9cac494a269b9d5670a3735af5c77454813a299a7472ec091b722a1c2cbb47d405fb6e7f0a7cb88fd7ef8ecd572285744ac8cddb4c92073d0aeb66a5d9937d12e88042394f9e379b8bb22beb7802e5fd751b7312b35cd4e1842c76b4bfee7b2ce96fc297f2c994fc25ece8a8830979942df92fcfa03ddd40c712c8f1244b74e7752861d7d7b0304bd1aa4e7424413529e1729e930f9b1d820e247c16ee6249f34a6b8e8e23a039e57c4c330f298d0e2350d1c49336ee454711dceca1e56e96e43b131d44306c5efbaf96c5df358ca22e4aae0d353b8b0b038df9b7a4d82f912ac9418e60fca395162ff3c0d8c2a7cbeec77ed12529e755f0cd17650b16a36bae62de7b91b86faf66d3a4397b7841fe9414a34d70a4c7193d7a3020c72ed0f8a8a16312f1b09932fe72e8a23b4b492b06cf33591b393972d1586e1354fe63650f4744446ce043040700921c2073e082de4f5249d5741bd8c08708cef0410211111bf8284302396ee1e776984b1dcbd24573d882f29c6d75edacad5120396a81550aafe1db3d62de1cb4c0463ce566c7149390e5608ccd318b3f655916c6c8d03d6262b148d4e4bae7b9d5f3c9c9018b4d922db69a58399724af38e693e24c37f304b5b8824dbd3661b3c9c39eb48250fd18ab1262c5f796cac3587efe93ed418e555c59f3335af4c9d1d3c8a18ae32b7cf6e3829f89e64805e3b9baa33295f67415e4400519362649a2a4b8d9570f729ce25c9d6e6b533822228201535829946c314b5aa5284c878ac7b0964f280024072992247d75fffcc4b31b8527de6ef93d5fb25ba2f0fdd2a3753299185d288c5223995b2d57a70814cfc6e8191f4e6c3fa14f1c1dfc3ddbc560f1724f9862887dd92739fa4f9d602cc95a576a0e4e7819ad84cda9dc52d71c9b48f0bb8b96951ef4a4736822e9c684ee36933e939709538c716d23ccee5208136e922429a1c265bbd4e5b8849d37a6e76a7da57a23222219c86109357649628d86f020191772542231aa53ee128ffdd721420e4aa49faa6b7669ebde24083926614e269f681dfaaec30824292303392461d20b7eb949aa50aa03492331418e4818a531d3fa3266caa91c9050e4845ded486790e311c9e935eb976b5c474768242087233c7945e3c46062703d0a391ae14d49e273b27c962c23de984bbc8b551a4ae54598f249954a2e8dcd495184257476d46f0c0df32622d16ece9327c9d01444046751bda17e94408e4378577662509bf29bd110578e3d93a3618e42f0167e5359fb84f8af4fb3ab6bcaee7910e5143266c959c5f27604816dea4cf23d26e58fc911883b8949b25d4d27db09fb1866e400049b367fe57c6594918cf1c3004948ce67629e2499b82f1e128c172e2a85b48c84057530c011ac746d3691e9fcc28911124deea63374bca7b508e598a149efd55e4dce0044b0e494b34982cca94589c7300c6e7d5752b6a6931e1428050f6158ddebbe71a354873e18b5c9e6f961ce1fce031f65f81969a8c00a3c80d10965c2fc7a8a9dcffd42b5132c4b7c5aa2c417f89944a75abca063f5e24e15c3a69b31bfa0e1c18b4c0ae9a541db63f2985db496c33e9ce749db0e70c0071eba40bc2bbe89279a0b3e3479b4f11739d9010e7a7ce265f4a0000558100237f0c0c51e5bf9f2b57e63bfb760aa2ec5ac4ca5296e83f6e6618bc23c9c14c6c39a5ce95adcfb316dcc9f112ed28888488f1af0a085791bbe9652acb7f6b3f8ec92744c668e8888c480872c2c297864ed89b12809953c7cda764c65241e04880dcc2003063c6061da05cde37bbfa2d0e17259ce2b155676c52a121df16bd28a572ca4d27c7bd2342b8e177d92d03e7ab25a3c5661d558af77accd5a29aa28ca82492789e6c13b4ac18f2040121ea9305bd2fa94a316ea5378a082cc2785889929b724798a742e83e895679362e7043c4cd1f99f14d7744e92c49412f028c5c13b87bc546b0a7890c2b09c5c4b925ceb67192ce0318a74d6efc48b16e463c54314e8c6b8d1dc4fde107e284a29e9b7af696aca37280c6e65728e316adcea7ca2f91825d77f33a85c3c3c71f449aa7f873c3ae1b5f84eb895eecb56041e9c68bbe64b8a9591a0a1032f234143071bc0018f4ddc953cba790ce21a0f4d6cb697d9534a77fbf68888080acae09109c3d87ec7545c860ef6e081092f4ff3ef7e8ea5bb59018f4be049ce2ed9b721621191e4c7064444921f8e3c2c618a48cfb1f3b77ee9088f4a9c52f2fd9996b3d9661e94784bfe8edb966f3ec6e7318937f3523ef788fbb61de02109f3aad42a3e2ce6d79491e080472454fd547234314d6b89360f481c2a661ebe922421b50d783ce2e4bd494d7fdaf7f32309303c1c614656dc901293feeb22221ae0d10872fd6eabd7deb26c466452f29cc9fe93c58b1671cede70ba6e9e53a5085d3f45973c9fe2560a8f44ace1b76d3ea34949d68c50e0fd876bc043c003119694b26fb3436a1cf3108cda788aea3c0f435c9e755fbbd7fdbdf12844ff490e91edccb0241202bf247b39e7247f09161e83a8dd4acc79622ff4f43c04f16670d168521acbea7804e2fe9610f70b2556ecdc0c3236073e584484072074d5a041ca3e4687cac81fb89462c5ce704f61353cfc704c32d2d773d61f551e7d386a53563473d74f2f0f3e1cec83e668bf9bc71e0e7149455cff6292e4f5a0448e985c92f4b9269e07afca4ef8d49d3f7742021e782849a2749f749736647d8753ca4e2f699ad33bda81f4b4f694e1c2a30ee78e95fd7c729e685278d081b7fbf46bf5caab180478cc41577f8d79b525efcba10e67b2b9751cfcd0b313d22439ae091cb029c9c3447d4d55df9054d94bca54dd607cf16cbaa627a5b6c1d0d997254afde2c986d2e5c9a5b9ccc1b53564996afe5316d5f2a8818f9262d0a824da6ed2b05ddeea58f2b5be060d649b701f3ea7249d9c014dd24b9b341b3b496f862da4442f3a5c4ea12fc3971a9de6c49001cb74223195f9c71e439edba492832d06faa4bf15f3e849c3906435975ad55ae382c1e05d929463af98e07ee136e1c3f49e78819293f3af4e0cd5245da8adfc4349a25c602f4df95aa9664fb76065df94a1452dd815b38d59f4cffab2d05ed818dabb93760e0be62b9363c89c5f614d8bcbaf5421bdb9154c318728f1afccae79150c9725d6c9c4509939155ad3ace9a88f3e954fc1ece4314e27974277bff66a278cf5517034465cc7f2bdbda150dc94502577d1357d42257c7b9a984453ef84773b2e7bcae136be26e4a9c2a2b38afbc530e1dc714343a96d892fe110f17d1a53c241b5e593863a0966ceaa26af3412eec93131d453defc1f41df1e0d2a5e266f845f63f4a6db7914e17ced9bf5a6d5e2e641845bb3c74cf1ee4eae876132cdefd8679772164665d1297abe2c266583a107c912e42401c6d253b133a7c9e9fa0b634b8c75ee1de3555f90a31627f5f3fa077b71c99e1dee355ed4513585cf10311ddb0527556dccf36fc93eba404ed0ca984bde1c4f2e36f10f2755258929830b3e75852679e25bac1f397d524c985fd816b665779cfb88320bd7c26b69352997450ba43b9f099ec349a6cf2249f7d89c2257f496c51ed3668a65ca3ee958944b9a79ff1a169a5758bdb994f5db576c5d826812db4336ea0a77ad3b9c099ee2275bc109369d84cf3e7382acb83d65a83e49b8f66f15a7dcf1b2ea946ce5a8e2cce3aff1747ee3a9e8b3b2797a8e37372accd615fc63730a3f097dff1b53fc96ad95b1346ac894c2935e4f4e5249cc9d14c7a5cc6cf796a96414644e9bb4dedf1c912896b034ea256543c1b9540ee182c22a0fef9997a4b0fe13961021259b30efb1f64497c49eb314dc737c3bb17d25b1a24a38818999c4f25c37c14d6870d998ee3daa092a53f87c5666c213ee52478d63ab494c50f115cd37599e944c2e81995ad8d82cb713134b5c1a53e70953492c4c2a816fa6a8923a7fa52da184d17aae3d3cc924acf866c2e7c6d968259248b828a7bd1dbc629544a214c5b4356f98852881c4e9b3c3d6f343e32579c479ad43760e558249491c714992c8ec6876664ad288feab4c537891dc9f11c5dd7d5459592ef945b82ef9c1a39820db2bc2e9b0599df5c2e47c22b23cffcf318f082eaa93e5d12477d00f910693d64ef4114b6143f45d95f37c2f4f302944a9844eb9bd2666af84d8375a32e9533ab9741064d068db252b51828228eea6eb92f1fb140c44995f92e42702a28c7d526eeba656ef0fc7d58d3639e927c9a37e3086e6944e4ab48b39da8752c8145af163a129e5831fce375b2add43d1ae715275bc4549f550f0d4896e4b5dfae7218dc88b131e65dde3a16abb5fafca517abfc3e92a5253743b64f919b3c22495933a30321e1bf33c9ec4743865bff98dc7dc53cea1ccfa0d4bea52ad1c8c29ae899d581cf2b89649f02ce14057ba13bb6ec5ef936f48d2cdb9169d74839a73b1e2d59caf26dbd05e66f6932b9de529d9806a051337c65d8bf935606fdaf1e29d901557439b7df66e3f2cd54e439227fb77c74fa6180d49e9b35c48545e74cf605c0e65bbef51c935c39aea92ac9a512d4aca90d89f4dcaea7176563270f2d58b56fb5a9b632827df3f31c978124a316042ae499bc478756218e8b5fcb37a8260286627d1fb84bff31cfc82993cc9619b553c58d00b7b4a29ef27f92eb8b21f374d997c1de78227e47b7e5e0c7bf12dbce6d983c9e95e096be1338ba9e07116ccf338f9a931f99260e170797165df83977a854ede5bd792c4c84bada04b6aba5adead18ad02726fb2e5db14fd2515ee7acb65625bbcf2a6406aced5a999140ef73497648fb9b8a250d8a731ddda24a5eaa0f04875104dbd69b3b92798f42fe59274d173e69c60b23f5bfde89a80a70bb2da6f41f5724c70f7b563ab7c72b3dc12e83bc132c7e83af62b2151353e2dc5e46d3f09867af95c7298389723a15815de363f82c133272977ac19d1087e45d5467ebda67011123627d3af9c3dc40520422edd31f9591b466995275f2d877cd68491e49673ca923eada8168cac3f362f7e88aece8091a51426a5e4999ec4ec17c52ce127e3ed6bcccc1747a7bb4fcf7a51f0963e170f1a4e0e2f7e493bd1dbbf525ab60bbafda362c911e619d3c591d9b2c2d88a5ac672518e51375d5b52521f175cf64af2e632b3a0dfc24c3153865f8fbbb52da864a2d5ab5d850cd782d050e298afee569816c6a0ea9e2932ccb2b3383bcd45b6e25497c8a24d616376990b25afb1385690f832fd0eb5c222e9fd779592d4f77c0575629597c7c5acd315a757c54ea12f9a5cb602cf4d214faa7c493f563cf6fb96af9d5594f5f156bd957b324715969860a772f56797930a4fb8b859d3725051b67cf18a29795dca3945736e173e9a8931e4a648f079ff68dd936d97224d3d3e9642a39b2c29d4d01323a2427d4f46c1469974264645415a387965baa7a2190a73f0ef3cff28a62528923cf24db4f38937a5dbf0bbcead95270c935da6a6f324a93a91e07b69d57739bc8613fdba7f74926a137a6be53eb9fb3ba794269293ece1f3fb99b8644bccd4f13f1913d8e4e68e758973bde524e6ff984c5b2259338485f954023b39b7b8b1987ba68441fde6d2633389844e49decffe245fd64842935f4a0ca196a49cc44482fb2417264a875b8981c4aba9dc73a7645b92e61175640cf19d6282891947a826a57c1f45ca3c338d68cf2ee550c9ae2b6618b126693cc87dcc228c490a255ffa2b9bcb2882cafb17aa59b3f2c624820a6ad597a454f13c22ae93cbc28c09e6a93f442b955d2f34f64636c439db9669f2ca3172218c529aefb62f782c2184521fed34c93f26940cc2cb5b226a42ab9a2a08672f63cae431d2c540d86f9a84125c635e1110858e1bd314d5b73b7f48c8d47c9a2a3fb469fd4e73ba856dfa704a72a5d2d928f788f870e757d77429ad2ea23d247e5cab545c0fc55ea6d8a99097fd3cb8991d76a28f87a478b131f97f52fa3b9c314f8b77c94ce47638e6f7c855374d61ae43219e2646534ae1b374387de6c6acab59373b87e28b65097afbb52772787e35dac6e370b8bafc999c9b32091c3ec125aba26db25cdf9028a15e7d49923e9a6e58835898c9b8283db6e19452d6ab1c73d42a366899227f728ee953660d4fe7fc9375f52f4e450c351ccade73ca39bed9a58891062c3f6a2ec1c3bd253968a03a8c6712b39c01b1f3dc147eb2538f6298e19c26899a92bf568c9b11111131ca9067c99673c57fb1b0c9a077bfd5aa948c21073e7c0c400c31b41964f0c00c346c88118643c6ca4ba12c4d3b2ba30c3242700331c060a8310b16ebee9953231110e30b6278014f0d1d4d88c8ed9bbb70bedc2f612bc74e192ee38c1c7c200d0c0001929840052222692c10c4e00261c1b635bc05a24f52ab4a92f1cf820f708003cec9f3400c2d7c56d933d56d23222239c8021f2265a2cd57979efc0f1f41122cd89bb15212770ba2962bd47772fc93db6ccefc206858215963fa9dc538b1a902de1d0d8dc3a894cee2a1c1a1482c1007c481300014b23c2b004313082040541e0c0623b168246aeb1e140000562c1c463e202024181220121009c3c16020100c85016130181408878381e06a9e86b1a0f321382943932685b316d3b89deeea1e35b62da4872d44e9014be98d0520430115105ce06db4bed536c8ef4910ab4e10f1e807afad1fc2607b13e892d5f4104481b8cc3551e1241a12bda36798d7fd1fc98b9f0f2a575d9ddbaa20c420554b99f463949f5792a651368dbc69eabbe8b8c571dfb1c096859c1aec77036ee11c2ec459637e885c46309546ccd52ce75b2cde47d7d988b93bb1b0a224b305ecc8b1faa84cd0e98b79e108d649bec69b7a51dd360b737bcc66811ae0f7786bc828c1d6b20f56f290018c23b58b71976022a6f09155d347e34c17ceec6bb04da2986986cd07e154aa9b6491bca55797a74f50560c8e1f4777f7d617b082f92d223b3a86ce6793c9959516497acc9a095c481e9d8e6351b6ea75bf0bbdf4c511a70900e9b93fe82a165726269eb3dd43ad46ff6cae6913edc19d5598b95b83c68725e6d2264181cb78d2e57af7f017e37297be88babd721615899b3ce61881211bd13f7df66d7f9b7243d59b296174d39fd26509917f1501ae8c1b4039179cd18194a05bda0084a0e023954fb6601b16c0fdb905ba617ec722307d9d2f13d253501de36613da5a05e5af05579f1b2f49ff96f0ab46c3e9edda2b381b7a79f265248fb807dff8148db979409dc2a20538c69534978162f027a60c3d6d472c4352925ec47e576b94ac36bce049efcb0a16346bf070738a71d0ab9a87671a571550b3b4a7fd675a687c71855258513a29030cd57604df50085341e823d93d5d34bf06b8543ab6cccca759dd3ae0b78885a22c6bf25efaf0a9e49ca416f2dc6a9773d9b03396714495d0f46d8991a6fc99be59db4afa23e290d272a56571bc146da35eca8b612fcb2e24cebb009b95355bbb8a96adb2791e881150586f0da9c94e4b4c85dc4bc7adb08d114cc5f58f82eb33f413d6cb32daba5fca832f220df42037a56c182ef4abeae3b846ca920aa909c014b78aabb2dbc61c9688696c40c8e523f9d3a85ea0bfe8f4b9cefda2843fb27efaee86f98bc6a3eaba266256ad582716d8f7bfdf9c5ea8a94f51f1d690de0d68f14d8c4948ed510a15859d2d01a75fc559e1460d9cd135ad882b3c765159cca94096101fcd90a732e90b81bd119750fa50cedaccd46252e2b808e5ce76a65fdf3fb2573da98fd03bcec835eacffdaa68ef40a1b325c3b42e6f369830fc39b98d61438f4b627db962ace7d92086f46bc1797b03aae835cea9ba583294c643d7a22613fe32e9f2bc76e1872534c4aafe6178b11a20b680c6b5b3f2762cceaca53745b53368b9a35ac0ce7661cd31bed32c0146d924f897e26ab3ec257d4ea3364ecf05b2dbf4cd99d54473eb772d7df3ee3eddf46fa7651afc05b3cace17d57da7abafcb5e22ce588800d47941fa79ac12b13918179d040685ea45b224e4601846591a6c17dbbd0ad001b481cd857aef365641847a5df5321dcf2a8f722a36031fb8af63fd7e68dfa77edd587d3ad6adb10dbfd035f0d61d9201298689eef14ace8c635455913a5c16b767e754f3965447cc5325d4c1911420f81a62e44949928e1072047af35fef3b16870c81a2c0a859a47babf3e508f5d67033ed4ef970c19f276693f47cb5bda9c1e7d5765ce1dfa9f5abd27fd3fa75b5f3690c9ab48a75336a3deccb718a827394c4164faead868fb54b6199a5341cc0eb567b921c643bc71eaf6fbf5aec56ce3ebb59ecf2d2ef3b276ec267950c8f86e74d72aec633d34feb3db4a292590b116d11bbd5f2b4b37a567c5f7c5443b119fbd07d9deaf5637b3ef3df39e41a5f1eeeac0566c9ce75db98092c41fdccbaef350c715f63e76ba8be27c5cc3395364086ae92a55bb2fb9cd23d8fd570958772f5f1fb4c36c898e2772bbdb42fb5e616dfc0f3b67aa1470b48652e225ac41195ae5f26e90e4052268c569b058bc60175694bf3e0577874ae6a4e23568b6d717530ccf5c518d7f3277de289225dbce9886a39a5066cc51c99832cf1ea78aaa03a2cd5d28c073d39f9fe01ef0737e01901f1891ce3a7ecc15e0bbde6fbbf90ed34a541cb15222d6b954844421564a8c7d9e159b1b0fe035cb5bbc1b427fb8d768afa69f441022c976b55a1b37c766375226fef68be7cbd99652cbb534a0457123dcf9cc387b2c576d051e68e4cf32a43f6755832c8158272b1e558f053b0120840a3d8042fc644a71454202f1a3858ea7013ce79dd9a9b2e7f2f47e6fd2f1f810f328a805d44aa01b32718c610b7aea189bc4216fb308827a762cfb482e3e3567cc3116b9d8a09f7c29e06c82b86f71b75ae95508781a95b124c1f9c2aabd8a2ab96f64bc5044245c62cad0dfe9b07b9cc2da1914eb565d8e49639be1ec34a492577b4cf1756c60fa539da8ba06e25f5e247c7a02528e1e72e6c0426aa7aed46429ff6073571d4c9fb3846b50e711f02bcb2fc1d7290c6a8ebe56c99b338c06c0907ecc62af3b24abb4817e5bb7662e331e80c57fe53863835f579de8a09172b4e28c058927d3655f7fdd7ffe62983496c2af84250ba9ddc33200a914129b50bf4b1661796750d123086b10593284c6d7158b130d0c2aa6500448b263319364d8429051a64dac2218c281397563f807c5be4609c352029a72e18d42236cd4a58b78ffbe6e995c95bb56c41e600a3325ea8f97f6a4130f1ab56ef3d0e9f0d721d3d52b48f54168bb63c22c7fc4d4d64fe2e118f7ee66c1a164f6cc5dce2787bb83b83a54a3056841736dd420117c17418ebadc8462a71f21f6b0671f2ebca612f5f53e831ed58fddd9ab8167d2f46e9dc238c784b01d9ea59ec0b1db9732a2ac882a0375eb73136d3d144bd7cc8a21bac4491381fcb55e487d47b677fe1632cad7d315826b9f61e9f7fc7c0559c7156374d1eb92ddfad936baa42782325f5dbc31502d17453c54e6f53e64bce18b85065b8e0b99f9710d64e1d5216c8629da440a4b35eeed7c13ffc6b2cdd04056f6874bdb24e756847c9264ec68f86f27ca62e937a9d2c8832e0d4a40bfca4a1356f8d5725f7ebdcbba65704560ab35f179997e2c3221707509c387389802a31ae650e845f937339e909ae2f156bb2177109a51ae0fdecb61a3e8edc2b7e3c51f1c7881293c0c852be80631470acc57ad2256dd5b217ad8691ff58945c0c93316dc1f184a114372d9f84df4d2d38d99a2175139f6c73f9d20b01fea09c4bfb9dce858c913449279b126c48749988a4681033a0cd06dbe202a03c3d3e29bdbad81ab963d6ef2a48e9ebd53ddf0b8e673d6925624c56f061843f2c67f5c803f4fc83f99f032bd44d4f4baa1904e671af07e7bc689e3f5de2b675da8132e2e89399aca60782dcf6aaedfcfcecd87c9b09dcb135ec426b82e642d56a0d30aa7431cf4ef6eaf680ebf1ee68cfa54b66396596b86759009480083bb66507864e93ab45205e5a1616711d16004db07ea757c3e200e19b4aca5104301d4146ee8274603f061fdb2d6cb39942533a50a4faf3e32671914228f69bd301881fe9c676293af18741e33611b928d82fdfea88b043de9b1ed6a6d2cc7162178b13a8fefdf1c4b7cd077547878993299a873e1fba144ea00f6c34df5b28d24b92141df6e0ebb7e044ed92a3a1b44f267a26e780e9ccb3350ffa4371261572335a185e0a4b9c37a15e88ec422e0c3839e44a80f5a47e8c2fbe37f95aa1f06d217a6db2fa5008162e953d49b977b21be60bbf8a7924e4cee9a270532f26544d4ec8c672f5f952ba416e72207701edf7bdc39fa0610ec3a1558f54295e7db6c5af7beb6b58714d94d78f0e49df704e6d8d3499004b8a5fd045da371f91b158da06ecac64dcbe48327019fcd90ad3c73c3b056b8a53a85e0f345d7867b5e9e84e6b932806650e2a5247396f03ea0c8ae89bc4952f40cdfff5a8b1075191c72b13995ec82da97df58fea95e43c46bce9a64a363dd3758455ea51ed2cf76f34c6a69da0fadb8f8a966322b462eca1aa9333016592d77ec9073c85293c36b0ddd3a1852574e8fcad0c2e468a59c2ea622a359fc91071c63eb57073a91e2cc967f046ed7799cb26803ed3a58a341bc7cd7dcb1baa24b8cce8dd91a69e4978a16e89e06f7213c46053e588a62c03e3cab02778e8be2950fcd7c87e881580208d55277884d16c53c89f154a1d1e3f18bad42d3490d33063dca7e639eaba30d4a2a117c7ad038b9884ae77f6e62fef21c1bee81f2380821ca0d3ef188fd5a42459e526f2a52e61c59af186272f1b07d2c4c529c7412c2ceb6b6c25b3f6d66537db56b2c784b0c4ebd5f00e009eb3b54e027e5254095259bf0892a0113c36541aa89c33fdebfdc69865545307478cf349d4c5b31eb0252b143f8de0d622812d71b6820bc842fea0322b630794639c9b6dec7ae70e0f9fe7b901e59de24311d74939d52626b896e4c7698bddb2a496593129f15913927068a74beab69d42d248d0c2aef82d8a62b95a5cf085444c1db33e2dbb170d9024de7eb462772beb02a96800c22a6d56ff1172336520630d6fb9fd4b17fff217b8f60a19f5f5f375b241f7553ddc6c6466a84c710cc502778818e508828763ce867e0a8b514027f2e8376e3c1c9e7739889fb76e643cbf6326d2cc6a8d8a2d1954fcd49a803184aedd1fec8701595c94c6f2ba8140f5916e65a0047e59d7fc76cfeb3de3d31ff1d2a681c074978a3a8a0be88d13abe73d7d34bfd9f0e932707f6d3b751c5dd773ab65caf6ae34af8f47b69b6dc6f0ecd883c72eb25f31dfd6c17a3fa44034567d611870f3ae94177aaedbe0839fc1c6e0e6b6de1ce24f0cf067cbe6d1418f41b904444abb2474c844e1269f8306765d1ebbc2b7251f03426180d8894f0a94f90cf7789eaf109da85349b89b0542171878c36c00ff420dbf1d1749715510a6cdb3017517b8538bd7d63155c3cb98814970782cf8427a174c777634c8dc43715003467d00909a65d40affd57481e7064bbbf592f1d92bef2ec0fe8dbfbf92baa51684eee88f24cb6aa082755902e0810838bc00d5a8cdb20044f637d0baf132f5b1be80ff09ca239322a1506d4e489768c93e83339d34ee3674d23a9eee2b16ac050209afcefa953a1603048d4c25f46325a08ff610c3722209c55998b628cbf2d71a505248fa72b93a21fc6dca31496f2426d7c53301af819a7e2d6cee1f23c98346d2d9aa6156145a2c9a8e3922c99edbcdcf3582cb506decac35b7468432258e7c811c9ae17014dba2d0e747c73fbeba8f2942691ab52b9330d9729ec2391657cb12f0c77238029502d13364c89ce974f1b292072d80cc34bf6dc989d785109d0e1b7fe8e2f06785233f94ff3ddff9a4b0b81d6ccd11ceac07d54ab2aa240fa610a886567b2e2b5a5e6f35dd4c34eb19e39638fa86e8a1c378ae83e3bfddc5031ddac03fd01dc649aaeaee22a86b63ea433462a3e0379cb66fa294526098efd0cd0818d0927cfd7ebe4205d2b660ae719af7d2d819ad4081f1fa1999b71bbe8d65af00d71b94fdcb307636c77683655ad028507c0f03980055081715124f93e14ebac08cd417f161daa2c33626673ee936d893d48f48c23463a70ae552aa017b20074861be9d11a30754113b28c18c7abe4fd34f0d46435a73f9c1169e9b2241a80fb50cec0caf24c1402d04ae3f3152719f560306d322e8e9ea4eb22573bf0e3946409aa4b3c55a18a606f6b69e3a61894ef9354358ba52778f690250fe7e9611c9117dc76f4defa10e31f4d179f61391110518cb5cba4d0edbc5bc14bb5d98eae08d84c3bb552f99ac355e682cb6d64b01944ae041419dbe72f5d06a0ce3d9f3d4f75ca8665e90325473b2557982929629a1393398a381f280bc6903d56c30766ccb036afb6d20d8eb0bac41b6aaf009386e3984915570e515e5420d49fc5b0323977449180e4c56a2007bbd6b065e6eb1563406c29938564a3ec6d5c0b0cefd6b1cabe652f02c01a2a29392c97dabe98e8caf217d09f109dda2d646e1d5dce4276b6f304794282be5b8e4b058e6838a5319876b89436030ded2dbd89e8608269d4812cffb0358cc45bd600a2c5852d0e7cb1195b615deb7c5eb5bfb03d13b17d7045cbdcffe85921a4215b24348fe7fb1fa718429465e8963eb9a4327012ea7d27da92b54ded76397bd0fe2611632bb3d1e700ac02cd06d3a0fcb13137b0571f868cae00f636010f9604dc06e69c5cc3ecd3d5e0141dcb7db708e0bb55757c9d909627eafd0cf56b1b918c9eb0050b0cbc92ca461eb3bf4339bd03949010a88c5bb4bfed7943a0f0df2e9d2f4bc79f5cbd35a8cdaeceb4b3215107ae6a77cfddb0b36af22d4ec1cb17ef5a1adfe07bd7a2aa2ecdd60fc186268361280adabf0d6c24df43423add2e922b6a68de1b4246d940d5bc24ad2db909756e24b522b84ad23b994e98646f5d66d04ffe9d8e5fdc9231d1129621f6c069e90f67ea86481b77258b1218216dba4dcb2441141fb61216e1da3586d0a81430233ed55f5b416148b493e07e5ae5ff7352fe3efab7898c2815bba205e7c558033294750245ecdbb64e75dfc3593ac25c0150c40517ea9f4ebc23bfc5484b63edd4fb99c9a5cdfeb3983ada01baad3f003255b3e866e9d3755a580f0c0d80b3901070e7b06f736712b4ac494e7357194a5000e5baa07ba3bfc80ae082a923975742e8e35ce886409a07dc8e9f542346dc530c2563828806d6126e210d9bf8aa8fe9ac58ad34599025532ab51626f194931fb30542d9013626932613f8d2b2257f4cd228648ae5814b46b510aeeb8c0f4fb22d43a54c1ba99aad0cfd2c43524b2165e70e2c2e926aba958fa0abd395999eee886a23b1bf76b63aa77ec75de0df77e5315390304b5201a55b1e1e8236fde6da7eac4e9c7ad41db2e81ea380551789fbee867c2970b2952b7a060d44d15e717e0f6a557500d7ea60ed86662e409fff19042287fc0e8732f280161587972d33f8142d4d912f373a727c27565706002e9ee41344c0e71a8f127672dc5074d3b8be0c14c3b6f045e714f5ff4115a50734ebe7672a3c5f006c0630277a2ac1488f55a60a176de723deb14b51ad1f8ae2266234b3e81df4d714d17733aedb18586ec43810b0e59546a3ee7cb93da21966aa03db07dd1d2563eae1761f9e172d78fc56886cf711aff27407c64a59b72fc79f824cfb5f166ba8ed29b9d0a9a14e1c0c803129b69560356a52642b39417882fda1f02c9d3c8e5702c199d24339bac1f9e238604998820f07d28786d0f719464a6b8f18ceed641bc20f6c7a2d478bf3b387928b6bdf86a226f25f3458d8a2b72555d3c53086253f7fa87e6117b680d91f7386993d6e46cc73c6cf56edeb892856afcadcae80eec15a5155e2f4a3dd31ac822d6b990132f38e908d81273ebe6b26fae17b46fe29eb1dc4d73c159c23d3f83ecf44e99f1a4ca0fc12e620fba7b52765efa77f1524f60f5c6be2f1a6adfe12da3efcb06c8b6e43fc907ce6df7a3edda3c0bc831776ddf2a08b0710641fd99895caaab3e6abc3716f86ab52651e97cedfa3909d39288baef5fee2e59a370b47c2f434faef9ef0166028271cfb7a946e945e80b395fa413ba35393372c6df2968269bac0c197bab01d6b326d33e10ed0cb267d9ea6b042fc02307ece29b3c67802df619eee6c60ce7c0a2a49860306117595dd40bfb12dc9803b0e0497acc951d605404879ea263d02c57cb63926029bb0a1238b12b3ee2e99adfa7255a887fb9afc9443fb4e36d4cb7132b26ec02ed625832a9aa6d172c9f9f28d0aef830c35cb8c7a94a5c17df4db8df653e7c0819a22867d8366b348f4d7aba6e835272ff96af12e2d174bd189a39b6c41e2f5eea66d0ae8a4e238f81209e18a22124726d6b5e35ebe5576ba45ba154f565367cf6cc5627084787d2cc5e8064c6619f11b5fc0477ba02539f669a49080c96cc8a86fb71bc2f880a19242c6197c9d31d7f603847a5ea3b6056519a8a94fa6b41bc3af71712f81248918a9181426249aa5f3502235a2fc7e2643f414e091c3143a8679efa0c795358b9e53d86331db70f8db8b1489114169d8e23dfb5808af84a0f3b21f407a8a0614bc6bb8fc894bfda2ae89cbb7efeb16399d51b469e9ade7179b6dd05d987274d72a653b3b49997c2a073b5f2a9e834381f78ad8bf3cd41f3efe63d59216909f9f986fee309ddb21a17dfafce3cfe12e236b63fc66a0f8cfe4d23c8edacff2106174ef373022d4f20053e782910c3c6c270f1d6861e6dfce10a5ca23cfc22d06b4e7a5404c806313475baf222bc4a50008c0f0bc7b469f9cc0799f72b5fd15af7eeffb9830e571449d06d937ac1f1349196630540f105943ecc68aadb354624759257f9e0b0703981e58717be48fe5248393aa7449086f3522db55c97ca934a3e6de72e9d0c9a3628e808dabd70033f61ea619efcdb841b9ec4e9e3f0c7268611aef43b0cbec896dd7f10807110a8f2f3cf439e56948cacfe42be06851054371d809897fe1e695d941d5ad4a2b78f0bfd26a108f2ec975c05d7d61cde0521d579a7a2574ad1335a8bdd0de184d903d09aff8627410f081e52de49c9cdb15770ea7f98ab53773193daba1cf8db4383ad97158732c9d0285d34dc2ef0b1913e94cf8281561c21e245aee6dc6fe989abf390db4a096be5e64e31453d519e4372b13d990fd7435dc97953debdc7930ee5eda23ed4c9d165e0b9dc5b2304be7df81ef164693c0c2a94af274f62d928b1802ac587937ca735f21f7073cc673e0ec6b7357f746fe5902c8036e025bf390c73243370eced38d75a5e6adbd2a21464f41ca2d2a9b2c99d08c89fa251ad7cd437e2e528cce8a903859e0fac35076b7ff084caabac03bf83ecb975bed5d03a1971d1c7b4ae3a50b28e10b293d58d1da14bf1476075750b4833579acb027effadf2cb6933163f57b963a8abdf9d2b6e7f47a3c5a5e51f04841db0bf5b302aa894d68c87a7843c873f49869f8f4cd768e0c5255f6b38199df465cbe281b05f5b4614e630896e4ebf41f11aa055fb56cf4a51db8a8acd2a5e46a3d3e9009fb9c08b33284c05ec54f40f571bd9796dc2b83e06a99356abcb7109109a8b64abfdf8aed6e9e6f34f72118ced25103aaf3cfd21e6a0002223e24288df8068892a0e809f70d68dec7f7566f2fcd5d56bfc032c442554baf2274a60e363541c855eab1dd56641eb81148779a0e90e6ffa068d20ee58c5899476d8b19379e7299b9ef7568c5ae1b0020c2c683688bfcc92c13550522c4d8a1dd44fdfab2ad30306d14129e89be90952e5ca4cc8932cf0ba224af7e1554a0b55af4e2450a7d2f02f957611f8c8e06c6e63eb5f8252fa32fd56b5969b2b13fdc09e246425a3bb20b01659d7743cded222fd81af44d55292982f5dce496391782b5a70054963712025c495a7cf91629ce06d99fd448977c2f78313684c6cad5312e0ccacca6ced253846d58726875cf4d729c651c9818e5b57fd2299bde6428c432dcc1da190731161a7afe59c329d0d2cf2d0decc72533b2224d8928d68a465c557a0561496f3d1185f0643b0e883124a571cb3591f189e3a613f02f05df76dfda008c5138a8f264da2a6c57fe0df0b411209ed8e5b7e2c8c5811f0dc7fdfea97d5f6e01d39a633c70e662ee61b9259c707565618a7797e8e87c08eeddc48d479e3110a6921072a9a417b8093298958d54356de3716091ed587515ac3b921eba5f880c4001dfee51a01361976578458b5555d996506afe40a2c82ec82d92c49793ebc2d3449b87226b155017c801d0f01c01c2eef4af242595cdfc1ab37ed745c3253cb1178803cf31c11da30e5ff1abfddc146b0d368a2a500070ac5d9f12c7f8af87fef7ee2b127f9cb4ed649f707e30c72190c15dd6ecfcfb0dc50069c6f489417717fd3c563f0c4bf567d3a5e76f5b76a3727bef7d373af418fd98955b14b472dfc89c39e7ce8d1172df58383ecb7c133abaf6b408119ee703c02bebc1c4268e2e1202ae61c6c1a1d29f938d39d9450ee2e9f3f2d5d1baeeb5cd7317fe9b18fa7405a0bb30bf6851e9fc4aa68b965b8e4a6a3bd84737862d1ea725023d285b4ed4b14240260462bc38d59eda7c75484d4a1ef53f29586704c80e7ed07e8e8995d31eeded9b015ea818cda1797d4d40efef13ee1fc2bc14e7712a59f279a8cc5208a6c1943f4f2d807f8c63cb96fc96cab6f3bb91b7d1a451ee230c085b6ce9f6c4e1b70e456344b4785b21a19849ccf186ea3849988a8d01f98c157a45c7c2dc8012d09119148af7396427c3e554044c5a3d5191fcdc244c79a0242d2d7b8a695027df393d19074db339ebbd4b9ec56d2bb7904e62b467ff107a9f1aff03e8ec9e8d61d95d308a5efb8eb5b99effeef53a06d8594a4683f980f8fbe5abcfaa15beb49d26e42ceca45966548dec1b84f5edc4388e2e672123c09852bb80c4c182d1ba4d4324675de4422dd2ee5a03c881e6b7d16e9e5b99b2f2d035424fe75fa511b7d4ea4505fc3722cb19247c9cce9483252841e173b89030c0040ea1cdd74f4d12ba2703e2f9c48973fb4c70dd02e17e1979b9b1a9fea555265fc07ed863ef26a9201f128ef37c90f622b680599b0b98a335a91082c3e445eac51b0c61938c59a7ba2eb0082e12efc39326d6bddd467a7b2ad00ab5641352684c2fd7dd3a79184b98bd8698c54e7006662c570d4aa86598698dd9bc394d370799f784fa53171b0d71ecaaee6be62a6919da2c4dcb46b5437bd77c60fb6c6577962554f859fa9a3a1f33297db5a8c6abdac2e702c55ea8516d312ebfe61c1d3b6d5325c76cb3347a43ed9c479c53e25837c912fd690a0893d213bddd91b0baad71038c34d2e308a5c2b91659e9141a839814f0aca6353beb9779fb4e8347699b0d139964f2bc787a0b03127e5c0efcf3cd87f6c5b942e15f5482623beb44f34e913f15aba358d1787bdb2a8cbca3edd34e895b738a379a5757a1c485da3f191a7e286aeccb56a22683aefda49b078f884e762ba90c6de17706a6771822d6225421da829f976f5160cdc75ce42dc1a926290bfd84105e02334a1b4ad312e25e53c30efbb9a433da7414f022f71e4fcc5fa1043e4d6115393a262550c976f9ffc4217038927d21cd0dcdbfc69a88e6ba48d110512ada2f6d0cf5141e4a02fbb6cdcf2d7dbcab105f5e576c00928974defec736369b7331ab4bfe5828407ebb76b4e3bf289bde93d171358508270ab432848fb9da5b854d2808af650ee2ecc3b2b35aa839cd14b95424bd7125f146dfa12167701fda193317c718d1e82b4ab84eeb40e96b35c141cede4e96292f037121b85826f1b08d31ebda52e7cea07fc217b8e073415a81a892f051eaf2e07caa08787cdf891a40d9bbdf18082ca1edb404e67d2b311acb72260c63679a7cc5e81385359aaff1e94009d45c81f3dcb8ebda8f38e223950f8a9f4a296abd26ba2d4c45f0fdda50b3df123b8d96bbddea882c37d043ddf8bf89ec7f48b2812f2d1136e2f100b87f279991f257195e319d4fdb0f0726b59459f330a33935417f1a685945a9173c25c139f6796890cb423b3674688a0f5d8abd105391b2cd4ae378ffa9e84257cc56e114711003c5d4efce54ec91a2a785dde35821723422988ec588c5226ecb819ee808091ce1a442ff17e748c3b353bb55d13fc28a3740964990d0e38eee0983106d9a269e5d194bfc5ec3045a1af626748a3437904c19015d6934be8c5aa5cf9a99b2c14f59e2b3da5c2464a976ff7a64e422a2890987ee09dbf9dad1121dcab8fae93258fa12d1d34a87faaa8cf9141f54e152ec4a30ec83006ed462c903f384be5843c8a91e807fb63411d0eacaad772f5c87afe1409885894047dc1ba7d102040b1bb96bb991871c5da472f5c0ca78544fbefb0e0d8ac0b68cd9fc3a263bcce26a1bfa43e5042accf070ba83870e78afbc36cc0178ec42a30d470212452e3c20bc08c42fd3e79ae7d0eb97894ad2495f8ea086705fc58fb29d29146289f0ac3237fc1bb39f98f12d71bd99ad2b6c6829f961718af78377b4ae9d3d9dd93b793f98d0dd94458971869c5ed51d31cc4ff8ec2bd65c84d337bcc507e69199090dc3e1318ba512974117fe26ca53834484ae7ca235be57a46752ec147d90b4381be448781dcd2b31f7ee96fdd5b525b0cab02d56a3e86cf4f48d1d2a9edff5960572c3c1b751f6798c0d97c05839479d7fac9966b5a32f094970b90f31a4d58915fa96c4715f01b616b273d45f945f2af5054843e9772a64a2511911aa45c91b03499b3adec69807445a1e12637282fe9ee70923b4a7bea50a2510a272850d7d6adc3038bd5bfc612ddbe61003b0280aaa296851a3dc856c28beebfd79e01c0472d30c0b0094331a8388a87f5772edb6dcd7a8d7659200e10df4a5d48830bb7d05358dc4b5a6d692afb71dafc5b5050c85a3f9d6dcf39e0601c905b36eaa9bbafa5e386b9ae007e6f1063b128a278c72bb3e0d13a42150d1a643fc9a26cf38d82e82f9d455bf0fc1684af54d7a907676443355eb31a42710190714d86a22616f0742daff1cfcdc4eb005249eab02873345814df6eb62458183c1ac1e6c3a89f91893f9adfa2a679b4a9b8c2606c198c22c8b15d6b05e509ac0d29c2359162c5bf6893413fd8dffbfdb495ed9f28c43705e32012e5da2d22209f86689407f2a56498d0dffd5e2f3379ec1479bee109cfd313f34d2444b11b0e139cfa5c169db120bf46e11b5ba5a09d758b39f50cf97a593baea00fcb6b12f66e016ae4b78ee1edaab492a76cf3b3307e9b6c62267ceb12591c94a0686dc1a548ddb1cce6610b2c7bdec910a61a571d87859adc19f40d7b7c889aabe87cb115b3ef08df15597ae3cc7c6e91f5fef6509ed26ebe74e6fbaf1016d5b28fe28385dd3cb52836dfc9867643367127d0c038b3d1377e1654548aa1f7b762f6799666ccff9b4d68a8814900beeec9837e8a62c89fba3040ee17ab66d26bf4866f163ee5d92aaeefe94e7d8cdf8f70813a43cb63277e833b6159307851a5016c7cab263e221004f0797fe9eade7ed1eda218c3e1f02d17f1b8bf72f6710421bb2d49af0ebdcc66bb9a536d78bea5034e686c227aed950c24a4c437d35eb38db46388c01541a5ba2453f7070d7e92a69bdee32bb0f561b2c88cb40564402b2129d4e6ee1114453d825c3152c7c07ff256aefd35fe9ebeb1362b4a5f3e36be62c03bdb20ca7c22e8f1c3d6ad8d15f62b38aa79f5252a6f35c28cee211462798bee1399cd71ef0ebcc353190e0018dbe4fa450fc09e92536cf722dae3cceb50e0691b3792e942a40183a1e66baa62bb2fe9e0d8fda3c0ac9217476b9bb72fad3a1999e80d159ffdfc590904d5168ccd2bcd190239fd698780ec45c921ae554c9ed5a24050ffc6df14f8f1fb12538ef4cf3aaa446f511e42ab1fe7f94685e985239246ca51cc46f1cc80c7d48418e2e292396a41ee578c134a716442ee9ce8780eea6e3870ba0b1b1d5e15d6f4e147c80c442233f6f71c54f8e8ee02a0239be34dcbec97ca74f36f4d137c09e02fe7839d8d8bf9dbfaffce28a3cbc983f97653751ffd26ec449831f219c6954280d539c085c132ba24fdbb49ca515e6ae350170622c8c622f0e1d4386dcc235b0bb129211dbda777293e750e3182a85f4da0c0b3ef8a60c488d8902b08e86b63bdc858b3cde2f634c42c6da5bfad9bb65971b6fa240c0602d56dd2d9c65d1b576c0317b09d5f21c60c1d79fb56dbabb4edc6b698dfa4736cdec47df5b6dcdb2666b666e92032c451e573357b44d9191707be01d3d2c43d7fa130345f25d1600df5467fc2d2ab04bb2cf03032b170b859e57c022b5f53b0afaa68f5fd11bd81e6fa8f6a263f5e3d875b69fc2795d7ecfd68c32a65db2c6c930925332988a9159137497e3542953b554892922e351045278d088d7862de46d81675c7096a0392c94e712354e636a6df5cf449775756e8ace752f692511b5d2144dd0d4b447f3900a8977ef518698131513c4c30713ee2c47a6fbee02a53f9ee16626b096497dfebeabeb66c3fe2d588ff330250a914598d20dfad5f9a6b3157341ab5a4cd5cdb59c90769c2a86e7173629541a60b3c7118f4364caa8ed7fbeca00a4418125d980e1ef77c7988173d912574018c01a515015ae9654f3650ae24c901cfcff033fc0c3fc3cff033711f11fabf087d42f021735332bd491553804f49b2256da0528702c06acd750b000000b2521fef04ba04d4046626715f6f3d414a74001831b8e4010d100103aaf098c596924bf6e7cc24a54a16dccd5654f7f4f9eb138b8428d19aaf5b0312b8a1811b9fe3010b4a92c49c623c6be6ccd9a041438cc5f17845afa169af2aa3862bd0904b57393f7cbe8f058f569c243954b4606d52ec30c78a0183072b4e1a3d2324530cb7a4e0b18ac7c259464fc971a62ae3860a1eaab0fa3f336e9c5708cd06182710018e11e4b821c6231586f3ae2cef168d1f04a35d05220840131ea848772643bf899939666ce43845628979bae0618aafd24dea34887abc67f02845656a72ee4aba393ffa82072912bc35df945cee713119638c4146e7b8d18f512c7a177ab36c1b354e20821c37fc218a44ff7431544cd2b9651b346880710211dc7884e224670cd90f1f3ddffe0728344bbf8bd0c814bbf3893e4ccaaf62954992b48287270a636299bab935a5a5824727486f2d490ef331d9e99c287a5434d1040b1695df846aaf6e25979cd4414d60ad67492eff3caf990953d0d4bfbe1126ae9bbcdddb0b19837a094dcaf61534bac9a66e09d33c6ed24fb933eff5e0510993ece13c7d44094e54cac4564d92a4ca63125e4a7b6ecf6dc1f3e721898305fd8c317ba7bbf688c49b1e97c9ea2fff49f280c49db39470827f8f4760192bacb36f6ed5ac2334a9d28cd1ba182f783422a9d5a498b346060fd7070f46545b62d6b9fa2292cef1a44d62ac0873c8edc8141ab5649388d3b4e593a05142878e88ae844ee1ee2fc54c8287583ecb49fb39b64a5d0cf1e6d458d3599ec287856826632bdd4d0841774e4d7e39ea06eb06a1668a964a9a3b00c64310b7cbc7f5f84134cb1488dbd5c42e59bc73a70610c6d1df0e5f7fb96efe439549aa0c156366932c7ed8ede4641932e46a82471f14937d7783e7ec489f0f5ccee2a1f355698c13123cf6b08951299ed7bbe43c2278e8610b6e7782c48496e77958f3cf5a2eb94d755b81071e1893ae3be935dac9dde30ec60ed50db1e36f96b643db274d5f788c9c9f6ce070336e781d28ed99e813f3e692e4d0a1fbdd6cd1f26bffa30c1e73504deaf8ef97c3d34be470a5989864f3d98d593078c481d1dbaafb7c154f1e1f70f0734e1a2696f882c71b0cb96f7d5a75c2698e1b922e55366e4dc1a30d5cf494d2cad53668d058c1830d9ac5fc1a4226e3835482c71a8e7b13736c68aad0c678a8c1e851dbe0f2193c7be391864eb69c72fe7e678ffa030d6a92429574827b8eb939c339a6c4b4daa525ff38dc060e6a6ce161066caf476c335450f994e1faac94e6277d8ef43668d0a0c1830cccdc96bc7ffeff92338682d5d749ee7be11b13c3499a0c5d52f0ac50d50d1c6c19fb08c35125e512bf23d35609860a5af000835e1bf6dd15eaa5ce2f24c45efac73c9eab752f909db26cba2e78a9e7e24ea5f34d9a0e3cb8502c295e56aa8d75cd630b68b4ccb40a3b2945c9430b776a55f579ef9185448bafb9c2e4246e4f36c2a8a1831b5bc36fd4c041468d143cb040bccc796e8d785dcbe30aa906cf99c49c7e58a14f52e85509bf9b6e03c1a30a986852cdc54691cbd90868d0a8f1a0c22e7d9b647de557330b50e03185e432f9723db7d3461f5238442b25393269755751f87373924b9e0a145e8ffba49fc34fe8c3de87137895b8b87cc184b9cfa309497256cc9ee52e554699b069be24f9a75b476e3696c079672a4b622765e84aa8aeadbc2e7892b09ef6d87f2c794cd60712e8e990e1545ef3e8477054d4d75ac34f760f8e8711f892d4932465621a0b9111a7cb4a39a1323a5e71926437394a345e9e6ad0e18a5678a2b525490cd7b1abf740072b928412e5c3fd0995ddb30acf54cbe5ebf3ec2fa40af44f663ca5cc96fa549c26c5ca9cfca9e72bb4810e54a8a9f7c4312d217bcc5314d333db751f961f7698a2f23519cd34be7549ce6000133a4a719bcb49f3d353b92d292ebff93ad0318a46cf2ac6287a6d53768822b1356f787d4f22f293d1118ad54e667366b2d1010a7a6ed3eb7a7ed7f73fb189c1c46a37c790d1f7041d1927c473f892f44eb8599ed22594568a73c29c67d7621bceecddc46bf3a929b49a30fedc4f68fee9707a268a6a61a4bc5cd63dc784153bc6a764fc126634bf8de2294e4e5a428f2b556252fe1faf129f6be7fa5c0e25feac9fd4453a935025634a93caa4b48e24fc78f213a9155172249428b9bc820809c7a44e19db7b44ef92c12a87da11e5e98e0e17ea461c34ab7ecc9ec9d3cc8ce8afa2f53d851791dc51fd4493a02b1f459817523b5abeada913c164e731e1241711e615d1981fe2dfca9a2fbd1a22394ccabb2b16c21013a16653532124c4196d378b6cef576510274136ffab8b4f452a08fb2d443ec67d0b4f209455cdb7613ee99980f844c33b6d93c9b9fd8134593e78949824e9c40f875aa7b534dbedf48136fdec71c345c6c287a2cec97aae96e48a720f666fcc641dc674f37af05737d8e807f370ccfda1b44dc4c3e59f1f932396cec33b589b529d31496515433b1426c4d96cfe8f4b5887d33eaddeb86f3e3974a8a34faaf41e56639d03121fa6521a8fe1bd9343496343956b170763b40b5b7b2a9725070777531893a5f23259ee0d89de79b3b92a99749d1b125736964979f196356d30850f1f63af6c68beddbf2fb69e46cd1a28d97c46befeaf47a386e345776bde0dba9a4983a12a77fc731acf914143a7b9259d669c6cf719aad18dad922709729b194c3b3b6fe265c04a78b994c25946930c768c5bedd4bdf3958d01b1ccf41b24e7245b0c7745ad1e59933050eaaa9b4a0483963263cc5b291734c9172c317b5ecf2f66cf122f383e9f633a29ba4fdf854f93f019e6399ee8295ce8243fabd30adada295b2844b44e36b7b440c6f4349d2bdea45859382dac8d4509160e99b62544fb2fa5ea0abd54fcc9ce29dbd35660a72f9b468f67265a85928da89c581b3f27a9806487bfbbe0714e6e0acc05d1147a518714126c24742c6e4af2af3be88842994af2784f21952aff830e281027ca9af831ef78025a194ff64b9b0018a1c309ca758c5464dc5039273b9ad0c18424d30993f22671d330722c81f8f46f1afb9ada7d184a2854a527d3d42a1dc771818e24984bbc8adbfc31e30619387e031d48487386314f33ff6953560c0a741ce1fd91880cbe69b2f58ea30c0d7418a1a4595749fcf24f5fe236729c5186053a8ab0864afe5152c36db06654a083082531495cde3c5f72ba876066938fb4d8c97c7331cac891810e2198d6627fde29cd59d18e20109fc4d10aefab030849258b49db65f2f8451dd3ea2d8baabb770f5fd8e9225d729eeb3069048f5ea0e1b9c65f462f75c38b2be956de548fad551ebbb8a2eea6942755e3a18bc3688ad96378bbe8a50d7de4a2f19eaa28b936a87b0f5c24e6789876fc8afc718b2c79a50d936a52f09f047ec810413d6c51dde68aca38ddc04d4083c60d1cc73f6a91f6465d5ed8899f6579d022640c1af3c9278416488961f9ca4467b1c67cf94a726fd55b21b210012416b0784539ee79d6726833ad5c911c6761937ad48a2b93d499673e9ddc291056f4a2feb2392c34570a64150595cdf1495315c674aa1e3459e80e995474b9375af55f3f5f0c828a246966a5be249101e41497247adfa5e9b0b5e90b404c619e2494e593b1c8b24b29c5e1db969645eae53a148090a27c25cc857eb2b23e29096414095d1763196c656fae12c59d31d346cfdef51f8784e290f1bafee2cc778762000185b9e27e7677b9fc97b200e413ea746da5f1db24cff8038827922d33e74c41cf33a5a9139f69ce5d9337837002b2092cdc764e6f6dadc40907104d249e1e3e553bd826e94c606296c27e0a236dc2983894bb79cca5b1d9ee259c34d18b2657209658cc43e4475f89b42c57c52be973a74e892e6bb6e5543efbb5491c2693662da182480293bcbe82680793b5038944af9d56ce3abec694f2000289c2a6a5fba7cfddaa90479c2c6992a63479f5ac038823f692b2efe6587177e39046ec27c78a9a26c9887b4acc97c4ba642f9645a0277beaf93c6537a11b4014c1babbaf2635cbc9e38303928852cef09b39fa398020a20e71e7277932041502b5a8412bce9f9016a7284008f159dafdcf91b7bf181b350671d699c5ee70712aa5b6c310a304104120ef299d49ee61f95e110112086eaba693b47a39649e0910406c6288dcfb68fc97493b80fce1d5932c6c850606c40f6ad2136d54c23e247d521e3fc93d2d3605e18319d37a7bafbcc99f7f00b2073de421e93439e51425bf29b201c183a1648dbfbf30c003903b9c736e75ec8f1edebb1d52cf9da28a8c75481236cb895bb962799c0e59e8f4888a2beb1803990361c1e3d45ccedd4ecb618bb15ed163300e27b153844474bba7050207adca728ad84f0f6a027983a7da26e655e6ccafb8214912cd3f26614e9ab0da7099d54e795aea0c081b8ab74e3165b856ee3010206bd04afeac24ef9a264b11440dc963d147b33c9ea7c3b841c68ded0d40d2405aa76aaf244d0082863caaad411a809ce19416f45ac4e7a40f310031431992da6edfe42d91b21e4206c8186cebb4e1bf6290de4a0d8818125d56bb4b0806903070e2fb540c92a22dfb42c000f94279a1ba505cd0378ba69c53df85a62b806c21bd986a6fb4e2df665800d182eaa511755aa167395950672be4539746454e21806001720533cb4ce89f3387054800b1423a369a621493a4f8da04902a502159637378ac163285bfcb3a564796426e17f6a6d52858a659552532a5ab640e2050803ce1ab0caba949d6c61910271ce3fae5566c4c39be0d4813204ca82de36d9d6674057709dfb5d7e5ea0ad7a32a81fd533d317c2da7924930c6fcbd34594173ee90c0e5587cf3db8eb0fa9dd86e494393746284e40f13bf7b290299bd7d35931411ba9c625ab7d455f186607fc689afc76930110297efc2f64c0409426af197573ee2a434438060760f6a969320a2e95f70217652cce4b8bfbd2fccd123fb3fcf5bcc6b2fa89256b6c48af2f9125e247c8e697f3d8d392d1dbb384b4e5e483bab1c950e5dd0f2e9c41ad5ed0fa93b72c16564b2bc1caa64773b706187c72713ad63123f07a3e316b7adc64a79e5c131021a34ca18e33b6c410697e8d82d75d4a2cc97c19264a7fffc5f408b7385c74a6289155f9f8e599416cb4b924f6551aa1265726cb6c43413c522c1528ca35ea1f29b58072c36290ec0028123089442650107dfad92dc062c8022502e02156933729c81830001d001432001003023c719261840009c067b060d6eac180710400e1c8e801000e04f495a0d15c6e4dbd846963a83068d311c478d1b84716a9c30dacbc80102050c81566bc9b513db9dcd86105ec9cf49d35a5f46b6a180201c3e5acdbdee3475aa2800085fb0a0d16673bcce0c31c238836be0a8c82f9230ccb84118c717491866e0b091438c1a351010e985199e8317491866886123c7d6a88180c82e921a350e10d1451963e4c26f40c61863f8180688e0420765f4183e460122b748c230e39031c619356a2020628baa05d1c25861d453cc9b434c27099159c8a2fc14da396b0eb67e2c60d1a5e42fbaf18ebc22eb3acd952d476e1e5de1c6f8d3f84fb5c2b43393b369e878f964857ec244e5cff874f32abcefec361193882a5251abed5a64b92631d5082ace49c64646e3c78aef2996540daf1eb64a3534853968f4f446568af24931f26f6166831a214572852f3d8b98ed0f23a3706dd66f4c3af136daa2b03a653777e3814828f8b0494e29c5ce5c6e8e611150109b52b62d66f8cb67e4887ca28a2925e9cbdbc46c02114f147f27eb52e5b4942f158874a23359cb344ab4d7ccdaa04143239c28ed6f9b9c327b1ad76dd0a091914d54a6d3e1cae40fe6711b7c460e1a34725020a2894e7c2c2599bd31f9ae48263051976883594ad1a4762f899225aa1294988424faee8a3a13f124b81c890426e533296ab2d662c786db60511081c4236cdd76f9dc2ee2882b9dece59e3fd2887e93143784c4554a7236c208fb63bc799efb786917416d7694949373b4d6228a8824a22288687e7b3ac99fa9eedf21ead6135aeb73fb55c5109618364b86ddbb4ff28530deefece325612aa508a1c91ba236f37ec71a07517b0cb32fcb392a78362282403327837eeadc64171b1b8804e2be95ad64678900e20f59b01cc6c32789f8c199fc1b7119ffcf5d1f3eedd5ecf1bca3678af0a19bb5b839a4b9873f7ad0db0ea31ef260b88a2f267c46d87df09064272639947e3ea1a4ef60873ad0e128f2298a6529f1d099831c164d694becf98ce676400234c0e12188c4010e89de6ed67862fe289f0e44de60875ef5f470b2f61e379c2f69e645bc8c56d6067c2fa5937dfa0e138cb0c13895dc6c25165903a9210d8486c8192a628632d87329bb09f7a7f769329cd4a3df26b39881838c1c913194dd4ccc9ac5124318280206ef6ceb53c61287c817ec1c2f6ad72f42f28343c40ba709237a93267c5eda85af2bc5cdf868e32f45b8f06a063f29670bdac5a429e7def3f92007225ae0d4c4948a7b6662362359486a5bf3e40ff5151d2c982b76bb87c944aeb066bbcd293bc98b3e6205f77e3454599f9fe045aa80fa6f86fa4ae1c3d30815cef9e5be96e66e3786139129246d8594bf9770994ac110715225f554ce256d9811468d00ac2212053f9cec7dbf1e359f5c040a98ac9bbac7ff3be1137942ee1e4bdc4c594389bf130e9e96c455b619449aa009a51a66c2af989832c1d553df38b1224b20ca4b9af831e924d288129a7af3cd14522afc154982ae75a9a4f57d77759140c6fd283932ee5fa5c811f8507a62b96a1b11daaf2d5aecfe1a448a60b9d9ec9cf4c6d8c973c34f702244a8e4fb924eecca4c114686101102ae7a29336b125c43c2402408d56a64ea8dceafe34780b05fdcce296b49da4c7e51458f7ec9b8f645df06c4179a7912be2d724ce83ca417c48b2a2426f6c31b80354076a10bbc36967df654e2dd950b5cbc412a09256ccaa50f728b34d7f64e995cc9dc93c00520b6d0c64ed670558266abb56844c20a852aa833976120864110055110832008629f3543135080b840180c46c3012d91663f13c0c0ca42d170280e8a420181300c463110053110835010c3401cc44044e224b3ac1bd1a3b4bb7862d3e55c44ae5e0b5dc3629e52e2d6b0480673e51de4bcc7f666fe27e6eb55dbcbbec433741adecc82357ed3a223bb8e58837bad264dc261d956e063aeb42b33186f49fda99e4347facc4d80688ec7d7458350310a38ffc72578f8e1a0ef2195131f5a30d5d47effc3644ac31b6eb58195ad1185a9755032ce6b0f7bfc4854445acc262d27c52b133f126f022dbade01c257af5fe2a1a8cc3963f8661b97c2c1e868121a49cf74f8b54b91cb24ab63361549521f874232b81958359b539d7e772b98b28420ebb1fa2c423c16803213309f88fc647f2a3b8154170f2a6bde166f60b5c6e0d7d078a82c206352e9ad3ef357e30620b69d274447210d9e71a495fbb9e33749f275ff9345652e9715cfeaeb2ace2200010b6c05db6fd8ae90e95955d3334adeca76c4e7e65b46071f245bfb96df60b37ec7be078000c94aa8fdd7f8be270c5706361a33694296fbf49bd35abf59792d843953325e5d9558a47384f12856efb4e0eddf5be58b5200a88bfac9959c89da14da347287413453eca907e02d294763cda4b3f4439991806b804917db384ed08c1534196cead8e94ccd788d7c53562d7267baadbc3a9bc2083a3764b6d3a2e78e834b0b95038fca587ad1546943e04591197967abd948364862b0603452052202ebe8034e11035397cae42c8ffc55134e86663f6c94b1264cb5b5ecdac72076a7ed829a6c9e88516cbb02f0e2f41ee4b8451ecf9ce1b08f7bfd800c0dbe61b24700258c1fd964aa2df4af91eb3e1a44f5549db0730eedd8514a63e1b77272ddc9f9b0728c8c0122bd44579c7e16d050c109419a43b709276f0374c13870d20ebd2dff536c312ed182d10187fa74f71b1fca900372737603b03f8bb970c899cd1ac2de8c816155aa74143ded8841f8e4814dd4009b9bc0ad064677bb5d6f1af9583d9f4646c7512eeb5ef04126125aeae72875b78568bb021699c7f4594c2fd158c500174dea61ee981d689efc28037aa9fe89bb68517ed26a484c604edc3519d115193796ba6099036accdbf1894eb8720b8beb56c4f7ee80ba25d6c950c9cfc428f2a56ac3e28cbf8c385342497225bf59f88c3b54cb94ac7f33121a8a3ed55792b259084d9829e9e7a42f80eecc23231789c8ee41778331403a55bbd137e5a02bfa7d9f3b7ecd50e1ec4341fed85b965bb5bb86b1cfadda7922a51c38b01feb6397eacc2771750ac086cd1daca1c0ee53a4e4b888bc2a114b5c34fa4de42db36e5366854bd99f090b450bd92a6e42e61ae312707d17009e025370dd58237a87c6cb44a338b35da5a2e0e2543c8633ed395b0867f7bc014057317047e6cc792d00a59e92d9b100fcd73f04e9ddaf4391a45e3d44f9ebb03bd9d783f2935ad1d78c2738e1c668ad1d99b0bafc8f29eea804f90ee37abde857561e150216e38775e961f24914135c6e2a5deb43e264ffc5b994b40b35fcace963c0a63a47af32c683c9a621143a94d9a36875526f79e59ecabcc9dffe528fb76300997ae1464eb586e179546b54189fc8e2e14085208dfb6672507c23514208bdfdeb70ef3fb22941d049a23be02c96c23a7788e58d00a00227c026ffa24d6629ce3d620d2b07be1c609a5fc1a8d4963701592f2382f93e27111304a9e385354bfd026ea5bc45a63f1685649531398964f5efe05bc1062084b8f6911521c8d7cdaf473f847c0677191b55ca7059d4ed8799f96d3c9faa13ccbc9d93661da50ae99bd93e3c57cb21f4b26d58788cc4515fa6134af11a2b29efbcd5c0b33b29cf4e65c09526fff27f6882d1cfcc1124d0df15737a85a09623bd4594795b6aef8a370f5e1ca16da384cea5dc3e295d7c27608332b7984139a48d1dc88f54bed80e45b9c4c50a40b030e937883c5aaac241d11205e2fa5d9c1d29ffe37a2cae7fddc58c73ef5d530c32606cd21dbefedbdf774d68d6d9b8ededd24887cc44588b591364a605116c21ee81652de57834ddf864949b3725a51192e530ebee788de475586014797b51c45e59c15d761133a9abe65b3ae5e07c04254cf62d8d93aef9c1d6d517a4b379b8624d9343e6f5ef8455344ea09c81f2b3735434220d0a6211843de10ed8f247d4b539585a06d396dca98d2f11619bfa94264d182c0020b7f726897b9f98c5c49adf0cfef1926e23cddabc2a7f69eb3273edb31eb1d3593b4de0a33b7ba01b45372a2685be4afa4fef228c9c9e2b3fbbbba8d5519ad108c6d21d25a133f1059cb68be3fa714e6b26655df3bdb0ea85ad4b308cc07ae9057fc0285e05f513366081247a71dd9dc6dd28bd78c3873e92161e0f1797a2934e8b36e93ce213fc760d03e876646a252ecade956b8f023afea30b608be4f2909af8655e8f4ddbbdeb919823597a4a43a0093e4efcb9cea82f4dd08c77f57c27989a08ad507d8a480b09ee37d9443008d4836a7b887beab566d3a080dfa0f2f0b2265957553e6f9327a29b577e907b80e59e9ecb7deb6b27655b243c2b301723d728fa7546426ee7a65e35081c7b68daeedb32802a5b9df058f058d7efd209e8a50b6268dfcb138de5c324c65baa14e425d534705f885c1c9f2eef6eccdae34f84f48e4d58f6d69a4134c619c8dcb9bad4c51a88f269275b462c2867b4362204af1c9241b11cc1d6afb36230df62eea6e82095b5fbbe4fb708ec5f81833a0981f3e384a1837d01ab3f5844a043a5b4e8e2bf3a3dd40553cc1c0b0a0da81cab1a7fcf56e3a87150eb664ac5b4b58a36f76a53933c32fb1a654c2236395b7f753d3c8e4fd2072c8f0f1987de535083774c10d5038ca0d50f6049c8690bad5853ec4bcd90227d88db44fde2996570e5936415923a4cbd2140e8ea99efffd48ced8e8bcbd5c77cf1266d799b7c15654f131d6937ed9351503f1c338921b0f8d53616c611f8fa71a087d18e8ebcd389884f36b17194f6ee7743dca03eb195223b90ad124e0abcf8b6ca6fd0a93f5b06b6a0f040b0ec74a7808c417431d0abc141ca159c35a338971dbcfb716c9457a2bf751535f7f0c3adaed15cd0adc31696d55caebfd603cd7fa15daeb07eed15b9f867c7980d49d9c216760de9dcca87b3f9b7c3d5e6d1cde609ad521baed2abc0b70f9188749d70fc04e22649a24577784e524704f3446a5e8d9219fc412029152cae13ee4b81f62c2f396ac8ea99594515d5c4f0f786f1cdf9d4df6376354f416ca32dacc510514c2a22923be7ddf7b0d579cfc4d8b1a53440312f4e3bc62a1110b1775121cb50df773a58238510dd4ff1ad27956d272624d6223dd2c1c9b3bd0f038971b0ba84b08f1a2550743406af8812b28b770ebb9bdfd5fbbef8d5afffda77fe5358f670e8dc3ba342bd43e164464155dd2bfbebdf7ffebbfffa5752effe3a18a850a0622a4855e6e4317e0a4edaa639cd299f1ed359ff84331b1f09250f854e75676486b4b154be20cf78f9f35df963bffde59fdcf08dd3b5e154a4be0c47435fb295c35cce65ee9d7747b76198475df03405e848189413f80695ebfb2f5109877604de82a23d6ce73a6bb6abf718ced8184ed4173d8d6471d69a852216c4fdc95e5372f0ef4a5198fbd7e76e6c69afbb94bc0ef54e5a9335c12bc271c208fb1bd8ca1005e8ec51a13e203744af8871daece8b57f2cd385cd83edaab80e9916b897fa9d9ac5e7142376cf8c48cdcb4a77ed6fab607e605c6229164fe82415a5ace5a5c9135cc0d0533559e606cda733cf2596e8f964374d6f16c853dddc583236b6e359829ffe8b513e2ff7cc18a08e669e97f892f1067762f40cfa711673a64f2695791917f0e13bf2e579bdf6bb87fac2caaa2b8438eb64f9e54a2e401d2983b868e503ca5e8239809a7fb12e3fa471ac7cb72a5f60de7d160d84402b0c2c02c6a01a4290e72bf6b8c22fa3cb6a394ddde3cb792c6428a21962b7c62485e20b577c4762781e203782f14a65b41008d1a81bd63db67ef3e01983d7a5b06908b58f0e365ff6001b796498fda6b9e7929da8ce0e9970de7a3b2a33c4ad95def7b9ad20abc0eb29c68493c5e663ad0562c9845af588d86dbcd13218c4c0a552b4c2fd2f1ca3efc9e2568f483dccb91c2c1d04e8279f4528daa56656e3cf687393ac9a0289685cf39568b5ba31390b885867f312b5747e98651bd9f7f8af63eb63397f7f8f88a0605695a43afbda70c218b08695385d4dde3db5e55917a68d8d16e09282191e46252bac10fa8ad6b590ae1f42ffb00f6b4cbc3f291eacf537c42c4283652d1fba90c71fd96c6a09799204144865866368b595c3063871677beaaa8651325c219a224c071e3ca901daed028f547e8dffdf6d8c637c2058db85c87034bfe1bdd1be75d9c964949a25c3f05ceb6023d72dd2496a09a08ba7b1d2331a2ee5f5cc7324bf3b79e7e254102157b6639982ccb17f823f154574594f4c3330244c38ff78dda9a1c5f0cc2d36fb1fbc5da228532d67ce05b0b0c80e8609e33b09f48b6002c88189c1836c3285c949809076ea8690a106aa7e9716b1269cfbb6bfcf210b7547ad0a99237b6bf37228e586c3f80ad3f8eb7f91cc6529b5ea5d092c15f0ed43ecdd78ce3e0f5aad7172ee2d4a3b65cff321b28a1b63c97ea6fd2a52c6176059f448f10bd1c3e24b277190d993e36555b4a7c32a7770e80cac33d96d64055b941856cac552f25bf8ec695ef2fd05a93382a9fbece87ec3f4be21e0344235f79c33466a2c77f045b95bea6ca690240eb8bf0f89e9b426b719c29e599f283c0824c9c3f331b509906c5770ec4dd2a81c493647a8b0492066d8f5f8f3ebf9859aad890e5ec20708657a8299955afc5d9d87ece8072f4e0fc3c80822af533492ab56454c01ad0ea9071b6386fc8b3013944934434427eab886ede78d9a2aef1134d175822a7cb178b710e57b2a6110584db2ee4e0dc445594b5f2c153a5a820c8533c70fc4ffbca131bc08e30b21cce1102868f647092eca610529e6090a03b1c74e475c7db706b78634e1c9c7984b2ff55c0595226fa27f2be5342ae7bf13666c4e59a2a9c86954862d7b3bc60d6b89debaf0db8a4f38f1f9ab63f2dc69e88235eb22125dce3b73b9691278784b70a7a5a7adc56f89c8bf887676ef09cae8279d12a432cf1a0e9df6ba903e1dfd291746aeec5df864fbdaf006ad580003952ddd4220e08c26eab5516f596bc1e9c66bc628368e23ea3498e310d0b6cec4b04f386ab628363726e68c4a669a860ec69ad2bc23150447debdd3849e58067ca1cbe04318b4735ef31f0289df26b03956e335" + "raw": { + "top": { + "0x0d715f2646c8f85767b5d2764bb2782604a74d81251e398fd8a0a4d55023bb3f": "0xe9030000", + "0x0d715f2646c8f85767b5d2764bb278264e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c84476f594316a7dfe49c1f352d95abdaf1": "0x00000000", + "0x15464cac3378d46f113cd5b7a4d71c844e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x15464cac3378d46f113cd5b7a4d71c845579297f4dfb9609e7e4c2ebab9ce40a": "0x20dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d905973883670b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe04367684c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0x15464cac3378d46f113cd5b7a4d71c84579f5a43435b04a98d64da0cefe18505": "0x00a0acb9030000000000000000000000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef734abf5cb34d6244378cddbf18e849d96": "0x000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da918b763ecdbfa0e9efe579ab017a80803b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da94f314a8c00e8b0528b8f220f6b1a0b6bb447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9784d118b107450ca9b35a386b83111338eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da986d8ea84569c9b399ccbfa6db93abd715cf3f25f6fd01ed667f9a977a21c7d55ccd118245b028f066ca98c34c442dc73": "0x000000000000000001000000000000000000a0acb90300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da991900d6fe6db15f208663354a53d481584c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da997e66c699225226d9a1f5d2af16a1dbfdc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d9059738836": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9a6c3ff8820b374aba7da18a0926ac4088012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b092f79eb1087906d0daba3075dd7eef70b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f1513d64708f86b3fefadc2d3a952c84040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe043676": "0x0000000000000000010000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x29912c636f6c6c65637469766573", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd005844d8023a5443ab5620d0ba4a075a9f151f05dd81c3978c0677fad5133d27a7814bf49e9d61daa9fabb0e7c6c761c13f4eed9b4fbbffb2c93b4b961bacff04e6f9db0e7fce82bd44b87e0b37d1765514949232458fb7b6f42e4de32c99452cd0bbb09970a5d74aad0a9a273858e153a5f74b8e880a143039d2d749cd06942e7091d2674b2e85c898511f3a233a593450c8b8e94ce173134b1333951724c104b236704392488bd11bb41ec2ae646ac8d181b3133b135626ac4ac626562646268c4c6c4cec889cad12127871c1c729ce4dc90d32487490e54ce921c253949724490d3430e929c233936e4d490c343ce0e3921c8f921162606264646ac2a36464c8c980d62596235884dc5bac460107b416c4a2c04311c70d0e09cc10983c305ce163853e02481b3040e0c705c8023050e11b0387092e0d48063038e12581b30366066606be890010b032303060646051b03530386066c0b2c0b18169817b02bb02f6034809900f6034c08d80960516050604f6040c04a00d30176032c0758131c305e66bcaa5e6fbccebcc8e0a0f12ae355e585c6cbcaab8ad7d52bcc2b06af285e53bca07849f1bac1cb8957921712171b2e33ae355c6ab8d27055b96ce0c2c295c695c54586ab8b8b8bab8aeb0dd7942b0cd710ae285c317041e192c2f5844b062e290084c0645869260da6151ee312e265c34b87570e374e806440344027e00d2e282c38624aeca860470a48065886978677860d0e2011e010ad273d4ef41c61e325968567c6860bbfc24ae3e68c24e2e60d100a59826d0a1533a5f8526083022f0ccfca13c37b80c1e1a1c12a9827b891ba89c14c62270cd814ec0bac0c8e414d152e12bc6aa8a102bdc0ac280a280d6e9a68219a88cf0ceb0b96172e275c4d7c3f7c3e7c623ea88fc9b7e46bf229f99c7c377c636a588033e635b573a526096fccc7c407859760281809568289e026780a8e17dc0266011fc1427863f0101e158c08d612638265e051b02c312a5e81eb3013a34609cf6116c60303220195f0131f153088591c332170c8dc488133c543c02e6018c82a66542c319c093bc126988d5133a5e608af8c1919ee04070997c00bd39384a7702898168e438d0b6a5ef08a83bbf850e037300a6a5a30bbc22f984dd5185183044f94efe04d6627e009014bcd58c05138053323680fde971692d691960dad12b46a60c50172692581598925a1a3050b0a568d6503ab069a86c6e1dae2e6c9cd911b263750373fdce07063829b206e4a7003e586043740dc8ce0e6861b1d6e94dcf0004a7113821b24373bdcf870e3e4a6879b26e014a01428033006374b6e72b84972137523021b343670d89c6135792df182c14b89d70b5e2e7825f19af242e2d582d7112f235e2c78ade0a58297945711af14bc50f022e235c44b88d7095e516223c08192637096805074045c19ee0c6e0c8706fd8123c3b1417de0acb8366265bcb27066e810db1307c3bf3817700ad804988497c085f020a818d40c3a066b0c1c2158606ed2b890b86a140d7ac6fc610e319f4818482a72896f071c1e3e1eb62536273626641152ca26033a45bda059be223e2c1e1b5f163565d48ca909e32a83ebd223c69706c74a0fb165d9b6e0f4106bc213e355b1117c028e0296060c05385fb014ac2fb120c02e5b148f8c0e16130dd6191d1bcc32f20699837432c9380f128759141717134b4d2dc6055c4279d0d9a2e3050e125e991d11b81a738aa7c60d14730c98e4260a0ec25b631686c3c05fe0556225e0243c32e418b20c9c2a3a586240c076c0618347873e01e8835422f6c43383e585d5a5a7065618302c2415a721c5708d000483f5065bc930180de9a59580506417161a2ec36a301ccc0417315b308fd8aa6021008ff89289c40d952dcc14c35470da904c7804740a4d226605ce1157028b9a67dc3cc140b0148f8b6ce275016d006bd8c8987de1798981b1951123410c0a9360013c14a0420a46094040253a80015e47041064c2082e2fd38d8eeb72f785d512a9880f0e1c0df181f4c2d151c712c812d2d1516b86a9f1233f8e84b4b0c443494908029a7e20292909410000dc862da294e4a30909c81112520b20780d2ba485a5a4a30e3021c540e42869486d5a4282a1033e1ef05e5ba41f4b42968e7c1c250da9483f968438a0692906213f7ed41e990688901f48403a90716c910e2005392a52a403482b2c09492a52044902a1846367481a529990823009b1000ba144b3484d3e802429f990e1082906a41820300120482eb8e06302009067b648901f482ffc78638b342d213121bdb094f4f2064b492df0c8abfd9154642989a9c908d2510794860cf171c4840444292986a2203f842815cda41b0bc3918f261f407c342135e046b6e18124251f494d494b4938928d0df2438812078e909a62f8816404c925cd2c1293100478728d2d8294d494c424e485a6187cbca41abb2424a9c907530c408e9a842815394a1a527d30c5507196919438e0a3692986168e9a7e20312501594a3a3ad2894d275c142b4d9ed47dea56aa56abfc2475b67935af7808738e0029a544400264021020a54400a53953f62d9a73b666d3288d79a240dde76477a734a7ce94a9531aa5514a27754aeb3951604add9d2953673a9d3a6d4ea693a9bb333375ea3ee59ccc3d594e9d67fbec5dbabbbbcca2edb3d54ca9fc80d256cb5b939dd6f8646e4a27339d9252cad475ccb93cddbbf68e9b93762d9fd27d6bb5b8065b2d564dd38e35e7c69a4e67bb579e9432a59469134daf716fb9b740e0d6ec11da9d29059a937bce964eddb935d9b9bbdba7b733738b9d76bbd3397d8630db9967f39ceeeddc92cc9272b76ce6edd9744a2a67cfdea694cea52da6eedc6ab950c7ee0e76ab6b58ade6c056d7757436e7d39936a5216dcd39a9942c4aa9a4947600034cf9416bca16a535d37dce59809d947e925267dab2a7f40fba5948484808047db27bcf5dcf73e79d4e1746009d393d97ce5232b3f4c9debbdc726eb5585d63d3ddf29ed2bd351b9ccc94e63e5b73720ef7d96a7d9e3bbbefb6cbbb2d4f4a5160ca949d4e14a6ef000104f7392953e78fbd1c3c9e730fbb4f9e01b45c870e771deb3ba72f77d4d979bbe93d999777636fa7b435e49aee1fbb33fd5ad6b45a2daed5cd93993de6cec1cc3448b6fb74973d5b3d73f8746ff756cb855ace519fb30329a5d36b9e3e5db6eceee63866f656abd56acd56b7d7d4744d4db773dc9cad5677f79c94ced9ad39bbc535d73d7db67c7e1f6d9a4f8ee338a639d8d963f779c23481190808885d0025903029a5bdec4074fa0c726766a7ee943af36cb5b85b5cabd5ea39674b3ac264e600b83b7b1c737ff001f5e9be5f0f33730ef7c9ec72669e944673ba747d7a7bbb7f9e3bacd50cd422b8b38bd0dd72e6783965a6cc0c007739cd7d99ba7308ad9f6db578d23c97b3e7f439198496b77c4e77a6ceb5fbfa3acf769fdc07d30573a61eb88f334f760ebccfb9e5eec5a84f67f61ccc2e864d29a573ba4fca94dda7b333bbb3cf9deeb3a7773d9bebd9edd3ddbdf329e974caeebeeb3d60f474f91e23484096928e96927cbcf0a3851684880f0489090908939023a1134a404a626a0a6161e0250189a9852326214d3e7e085152f2318321a969290626b1a785a6187a905e386a5a4a621a72f4a348120c3310603adf4e901f3e38a0a42424840e7638e080039dd9ac5b1292d4f4c34791251f4c4d474d4930c020849623f6f0c09690860cf1313341a8c78890199a38103aa184998e1248382a0129880f250e1cb9b094f442111f2f3c920c484a47467cc0d001cf92e08210a5231796925c704188928e009494928204ed140141674b68122284265b127c2031e52005396a3282b424424e13920b20c49684224d45928c208580b32518496a01896948108cc90792d28f2324177c3009692a72044429e9851f474d4a31f8680109c84fd7c4e4a3a90808259080d4e483096909c905a6221eb8b6042048458a20310d8141c88f2326241984fc40623af25104c80fa4231282089d50c2901f484586b6177e34f9e0c0d10b459296925aa0c9b084246f9684a32521494598906438ea400b494c48321c0d8084134e280108d29190a6211d60fa71d4640429870c4b48f2b5dd0126213020c1b0c9b0842443f8a668777ae2a493f758cee969ce27a7eeb1ad1eebb4393d6d4e4e4f4f9cd3d313e74fd4c9699ff8699d9e640f272727d9e349f670e21e4fecc43dd6c9e9c9493a3939790f2776ea1e4eece4e4247bac9353f7787262a727d9639f688f7d62f5d8a727ae87133f710f27767aea1ebbb3c713778f7dda7a3cf1f6d8eef1c44f4f4fb2c73e3d3d3d798f7de21e4ffcc43d8c641bbcbb0c43111f1b2fd4f9ae24db29d24da4352d0b907fa44dda3a95b96c6349465a8db22a7f5cabeaff821ce2de457e52e58f4a6c65c603b95655c7ae3d6171748aaafc1c073832d4c856d5ddeb2e90ff7e10e8a2953fe35655175b89adaa7f87d4453002b28813bb4afec827ea0d0ac83f76adca5fab3a768d7a205b51b69256d22a09955bda66a87f7ff6cbe9fd5bfd657f77ffc7a35f8afe24999f38e8ef3d44bdeafe05e84edd9ff3e9cf4dfff929c03d9fcfef217b15ac3ecaaabbcf7054f22aaf87a3e7fcfb1971f3e7bf1f0f173d0ac264dc9e7bb3fd8b6e7dc6202a6912942b87e450a714c4c50b7f7fe677e1eecf48abf3e79c33a8ce2160f5194483aa8beed44fb465189c150d51d2aafa7315d24a5a59c9325feda3aad5a495b4e2acb66e3d4ab91f6975306028933ff2bb8ef3f65381bf7f863d7bcec96de43c82959bc50d89ece6228c1303e41f4139bd06509fdee4d5bd7d4ab73e1d535056e7bf7ea4b97e0cbaf951c756b9dfbee342ba541fed258eb420973806e9b811471dad07c591765fc312c7af23f8899e4cd6892d71f78752fabbac1f6595ee0feb29abc7d370fca6adce6d6ed5a3eae678da9cfc8993b30b314ca8d407aafc09127fe24fbef80fb46ea24be1c0b81497e24ffc09957a98ec9bbcceefad1bac3d5bdc4222ebd3f36f8ab26e4ad910eb475ae76c7230acd009acd56a35141d31ff6990f95c8f1be07cdaedf4a001e76fdd5e7e46dbf62960b9f2c7638a9ecf91863af7e3e175fa66e4dde4db6fa20c5ea7875ed7473af1d3d613889d7af9fd4800ef47134498c17c3a48fe6c21d1d2e607cdcfeb66d00c9a54d42955e77e9d3dbe4e75ec67cc6ebea4ac1fc1bab57e7708943f4db3cee7c480db6fdfda9eb53ddd7a547fc9c2cfba719b0c334888ed23ec49cfb7e72ddce68f3729cceac664cc6f05ea2db45374eb33f2144e047fdc61f36309353f86f0fdf8ddef0eadfca13f82756e3fca3a5fdc2130dc1ddecfa72bc4da1dad9fcf8b02037884a5a2725c1890e39ea84139f48020393484018c023be111e483a00d5823ca3e719475e208d631a8527113c7aee35ea9dbb742aeacd097367f881ca2fb335f3e3b61147647a0ffb26935d7aacadfddb10b3476a53f761dd94995ff0039c451f2473ea53b257f46d928abe34e55f99d1772e5a8ee653210dc9f91d6ee475a478eaa72a7a83306ef8961278ee206c23a8fe6c7e35bbcb4393f1e5eb7ef38deae592a8ebc11c975ba542c15536a9856c154557e4741708455f9a3570aaa01fa8fb47ae0828151efe9c956c5b15514b4a95334d234ba82bdf23aee15f5c0adda2aa6caa15b2190d6ed6da654f9ddc8d57f77c77c17474f03f47717e94e8f1b20a745dd7ebca9f23be9adfc8cbcc5d1c89491cd80fe44b243256eaaf67bd8b33a458e6a81e413359f01f233711d39aa2aa7cf6d1395b8a9eab4eee7fe2e2e7153d5668a64d2adcf08eedcfda638729defbb636b9275fed230c0f9fe44eddf0a5d37d11768fbed89db7c7371a4c18924f7f2e5d3c9cd2936c9ba719b0c126c32baf51957aa4ab069b06e3e8753369be148ab2c3b1c956095fbd9356d3e8723ac4e0ea708864424f744bd1c58e510287f3af7f663c1f9336a717caa9c387295356df4ea7c7077f8cff9de432f7fe44f715482d5f9e00c9b0d70fe08aa006b9afc29ca5e0e05c91ff9f2b7853871a4b59b1e17caf80b6a9a7c07805ed3e4f38f4155fe7eb469d2c30272e721d76e5bee1a177d81e613f538ebfcc016eed2e6fb67b4fdce4d1c69a8febc557e3cbcf61335d8425b95cf855b378e1395605ef79b22cf0afdf3a7b804ab2ef6af54dd1c4f93e70af89558b592aadafdb2ab9ddd4e8f1b20cf0afcf2e5f3fbcf979fd15c679e41b72e2a70a59254d559572a49545dd7137301e69c73fe7c6a66312477bb02b8df029eaa3f51b3f8c49c000a74db42ec1ecae7b05f8673861ebaf4e4a702577fef50b6d78eba6eb94a29ee7736449cea5e606786cedbb419cadf2f05aefd549b3b97fb19c9276a0f99b6108f8b2970f57791368d7f86417aae44224e957f94df2c6ed3b891ac10e8d5ab9dcd3625cb97ef7353a15f3e516f0bf1a4d02f5f6ecfef2d34ce0f22df7fdb9eb6501b6d5e256a96ea7605b0b3f14f82a42e8bb469fefe9d4d1111a7eaefcf4644b8bac8816e5b3eedf7df16f2fe8c5c3e7f0ad8caf5895903ddb6504b8faaee6f88640a0995fe9156295fca97522281aa524a29e5af8f8401cc912b47a2be85fafb692d347aed7e9f16e2da3670a9fd5e0fc9a2aea308b5eb38abfddb1f34a45b571870a56c00a2ae54ed4a0075a56a98aa1f51fff6fbde42dcd7fd8e0bb76e21d76e8540aedc4b8f3fa38d014fdc77fcf1d89e13c7edb7effae301d6edf7f3a6f9ef67349fa8b7df4f76fb51717caaf4b970a4dc13492e1cbd72bf9f11fd8e0bc70454eebbfd58e268a4b29e0bc795aadc6fe1b84d3332e4851e17a8dc8fdbb4f10195fb715380dcc2adac90884c9326cd55dd9e0b470254ff8e3d2ef46781ab1c0d8970751347ae9c4884d3a44993a68e4f756e4d92f9475865ca324db73941b4ba758901ae540d5275a475a56aa052f7bd1ee2a27d590bad54edaa6e1d67757f7d96a85b113ae4ca21576f21feddea2dd4bfdf71c71e7fd7def20d0f28244ddb2adfbf5f7e462deedef08072d2b4adfc1e6ed33ae4da1fff7e52f4fd8c68d37a6b875cf773c07214ddd6feede71ff7bbeddf97fd41568afbd40c818e9f43570d40a91a551dbdf6537e4a570e6dff8c60e51fc1eacc4064b79452ca5ac85f7e27e74b9f53f4906b8b63bf1c023b9bf519bff66f0bb5107fd8ad10b8ef4debe7cf68c56dda488db669fd447d02c8df2f6b211972055ba81fd6422ec3adfbf913355173c8b302adfcb4b2c8b3827c7ef92c367175f1a53872e527eaf56931c8d7cdf124999fe8b6aecf08d6fe6e5b68e497efbfd3e306c83f7ab5b769fe2580fc2cf00791e236cdc591d67d0eddaacae0b2618fc3ae525586edeba4b7bb837f944f5b68e42a7fbf932109a0fcfdfd54d8a68d5ef7a5489bb64fd49df43894f59361f3a8aa0c5ecdee60e25a257280cadfdf1f0b5eab557efe7880b5caefb5d0d6fefd7870adf213f5863e2d0601ebe67892dc61baed6e7f40fefd65751b00907f7f59dd0281fcfbcbeaf8b785c67d16b769fbfb4fcc38dd4ad5a2d4e5bad501f2ef2fab070c76228e255a3d597ac6e899eaa1d2f3440f133d2d98d9d053ebb18107cceccbec881918b3256649cca6ccc8cc5a3073c14c899d33b325b32333243334664cccc4cc68301b6246c4ccc90c87591bb31c78d0983199dd306b3283e23963a66456038f193c61666978c8e0896316c5836696c5ccca0c8e19169e333c543c69f058cdaaccaa6666cc42c09366569bedc0a3068f183c70f094e1196307cd2cc94e1c3c5f786aaf253b6eec70d9a1daf1b2d365478b9da91d2e7656b043829d1f74c0e88ca123860e954e183a5e74a4d009610755fbbbcd63855bb485aeba5df5d0367f55cd0a4a5e45d59e5477a8ca3f7251aa8b3d6e80524a1d3dca959534aaf273e1ca9fd19f6ca14d0553476944ed9f21b83b66b2e7c69c2fb5895237879364af69d26d95ca3ad6dd89287f2a6c5454fe294a55d6d134666f5b88bebf0fad855acf2f420bc9e737a185baf73c5184a6b542ea35ad5faca102f277d7deb69009efd300505f440dc0127d68dccf90e3880ca9db73bf1f0fb0528e2302562a8e4366c805e17efba8082dc4893c7f3f1536714511a40caafc320439c9553df9f0c5136d584146131e94180a62aa07294796b8720515212b422019830c2ae068e204234f3c2089c1161fa25460821a9890021d8e20c1151938944c11809136ae585245072492c8e282128cd0c240b1840b291c68f00609337481a2c5064feca0461041335029e34b1c265802c5ca04232839628583551146f46044003c29cf051e1015a0628225d41023268e24403833bc66d82c56664055a140c992232200a165872b6cf0218a1b006064ea8a2c4cc8e088114f3409c188074cdcd0851753392cf99161026d10d143933367a4e00b6d860754e17215458c183e34016186a71bd0105104972353cabcf1c1185692cce0055610c102280f6248c820e1860e6f90c1e233c39a71a40b1914c4808c1ab420c7134d6c50c20609d83862073188323e0c31954409c26011babc00f70a3154d49bba5798d145955566a1d11bc1ea5c5db63dd43f8a50f769fc19c98f0901cee79fb5d0e853c7292af9541ac70e3cad2fc89401bdae54133167c0565da92654dba48b26394b9da2a0091664409bba524da0d8c42648e000ab6a32c41a4d7ee8d280605da9264b3c28c01c2b2f09f87de9c264ca09d0ab2bc5848aee056057578a491346303162e510287ff899b968f4ea9c524c4e50e77bdf50341fd6435e34ff7747abfa301a2cca5a00baea4a31d1a11507f8428305a8f3a55302a460cc00845dd10203fc9ca802bf23bc1a18ab2b05f5436b0910a7ae14940d95bf5506f8d5955ac246e507e59017314b2d29a37a759755a2266a198221ac7ff8633a805c5da92561d4aeaed41231d587a7133fb1645d8122451b5d08d1c40830a27823ac229644d1a0066a8819a38319f60c1251643943860b17553830f28113b8c00625980a02aa4bcf0c4cc6c491e4cc1b4bca283333f224ca1448a8a2cec042043c46464852658c2ba60c21032d76664840185a5ca191aa0295864e1216f080450d2eba605181cc4806b264d1061333a4be3822270425620c31c6042b980195d80c4e362023831a7001a3a50b9c7e6ac205424cf1e26a8d358c2882d5116436d2adcfee0eaffba37fad56b3a188283604c83f9a50f7570ed1227e2a87b856abd5a08af8693de445fb4b4139546408328668a2862790a815bd6affd7fd7a7db8999be8564a91549ec8a8baef73e3a8532a9be9c6d1cddb7029abd579ee79b2d9f36579dbeabcafc66b6a6473cdaef7ade76db8355675bfabb1b1f1361c656dc3b1a9eafe8dcb5d2ed9ecda52f7a95469291da56b1d655555650b159ec2511c856b57bb45baacda2ae2b85295bba5749f9b6f9b6cdeb8a5749f73e39ce36433e773db388e5256cb5b2dd9dce2288bd56a759df7f9f7c9e6afd579def7d5d4d8800e82b219fc3caef1d8c6c66310f4f8c6f5f2d74b36bf5cdebebc856d38821b8b799b2373994c36cb6e3c0e5d1e87afaffbdd0b06f3381c83ea3ecea702d76d5a87e37118fb54e06e733c274736e7d01aba40dc365d36e3d01a2032ddfa8c5e54edef2498a6b5acaa2da916a87fbf07d0ed975be490ff166d5125550f715cfaa71f4cd5182b33f28a43537b7f47da43455399bc8eb487da5dc45dd30438fa545e9fa6f18efc955be48f147bdc001daa8e0e55d5cf51c9a12dea91b3aadd95bfb3b14a41d61a2640de2287ba48d66d9a17553787f320dee06b67d36fd401073d339e1d1d594e0c07f672dd8036359fd7b55894dba6cbe605dadf8f08a7a945c8276a5e5efe513624c5dd1ffefd5ad9899fbabb8b94521cf7e7fb8ffb1f0bfb41a694522e9be97685dc65d31685fe71bfeee3600176dd15b80659717984fda76616787b1647ea4fdb9d86ebce713f15bd6efff2168ebcfdd2794526af4db28500fd86071418f9fd748ef3b769eef37d36cddddfbf6bf6ea6210b08ae3e873db8f9472949b348c4efe8a23aceebb5600f6ef50612b114e53a97fc7210e16bd0b3482db8fd42b7dff8e869412f5e6321c95605bfc571cc1bae2c8cffda43f72cff173df9c7703b07ff4aa7caf85785f3e0d5788fbb139c4c102f4ca5f83f01335e7fccb62ba9fb435ba305c9a0775fab782d74dfc059a1fae531aadbae8687899793233f39c1b23516273c2861326bb6ddbe673dbb66dfba9c5b662d050b9051332bcba890ed534f9e014f5c0add2b17bf4993fa3ed25d7e23817b7906e5bd762cd9f3deaf6f3896437bdf9ed9bc873ce27164b333ac92f59e8e7ef3864d19b269be8a228fd7ed441c24f589d7aabc3fd282322c019a007ca88e4d005e48ffc4fe689a36c3b9628b505f42f85ae9ca864c5962a7f734783876f9300046063298c0d4a6d6ce49c73e3388ee366dd449a4d191a6d526143874d6e3e43af1d7bfeb1e02f7f0ba737f50a526ceada4f44b6336351c51866666c86a452b831a448994e4559ad8d4e3ae59c739b2de7dc441d330a1d3eeec34da7656ed6a3acaa582dfdea14bdf685616565c567ca584937984ddd44234d934f6b4b3d7097afd86ddb422559ddb6b96d1ced8a37cb642ea5ab9b2b8739bfa04bdbdeab1b0d3f9b6f4628b74d6ece8ddbbac16cefe1b6f1f6cccc2c829341b05bcf3f238ec5a2bfcddf9ea322f71dc782ff0cb9f7cf8893dc26ee96857f46fd735b17c7ad52fd69228c3eeeaee4b340ed537b721c37c57d9d9bce078d0ea4600775d4d1411dc1caf500ad97af430ef9d81df29ef5bb42fe43e49027726dfb8cbe1ab6ea9043bb3ab6f7a3ca3d7deee3f1b5fb8e6e5b27fa13c96ef3c6adaaf259e1b860aa7c1a8e6ec489f333eae77e9b9c8f4ff5a6b9b8ace66e406b66e41518d20c0d50f2ea4a5e815e9da2438135702887a21e7875559dd674a0544ba98c0abd96267ff4a9fee10a81ffb42e2f2a5f268774c81ff95447955bbfeba84e80ea3b05d236186d994ef102373700f9471d55caca89e37a41a334aaf90347154656799161fafdf90660d55215ba3a4579b540aea82b79b54eabaaaa73544cba6034546aa151b61fbd26e595ac925b56caa1aa64f3655256657594d54d56fd89541d1d6aabbb40a39107acfc19e5161a80a84e4394ea50c0918628dbb4298e343ca9fed2c35156d5f91d8e4a0e55fda7e89ccce24f467f0205553d8a133fb99c49d01ddbcf67ed0e96f705122541457405301f097d255fd46a39b5c26d0530a95357ff8ec512e756a777db26faa4e1ee09737a756e73c963277e9aee3574dbddb3bb7b4eafe3bcede322e8f33781afd56ab55a1115b9cf683a1ab65aab363c90fb2de45ad3b8f7df42dfb6d9ddb37f6e38d23a371cbdcef9d39bb63d8744e4f644adb4893e4546d2b40903ae715ce3b6722bb6aac1ba8b23adfacf64cbcc23acfab685a357ef24efeef6cd1db737c36e2eb7f49a5da0fe11567b6b7179db96fb11acce7a5e181b2bb44b1b6daa4d1dc159a7485b20f9366468eb14e6b0994615312805c15146e5104755c603b744a18202f21b20ff7e11d8a2953f23ad54b5dfbb8b38515a2521ad681da595a49254dc14124b37086c24d8a807aac066dd3759752703ba83f39b5b9fe218dc6ca6e598ba2fad786c55822ea9a04cdf685f716c0548a9d75e9359018ed4c6fbfa08cc46069bd97c2a70056f5c2fd7eb067cbd5eaf974e0dcc88915636c091d66eee9a6d1aaf08aeccc0f0b71b65c336badd70d634269c6be7dcf2371c5d68806b851727445289a8dd97906168c5891329209d9501f2afd7f1b76fb4e595714695d5b8e2b0a1f2aa42854ea12099ee96920a753137665cd6b45695358de3388ed20e8bce6bb55aadaef32648c49c40e14d89721205889c0d8c2b740af57e90f9151d2792cacc15b8c3d595729266cacff0784d36eba2e0a0c49d4c6d607854f4dc5085ca9a168bc56239393818413f23ba133c0b0b0f8a9055570a072c5e68440f8c076e417188c2a10a9d2f39b6df1728072e39089183131cac9a82e1e3048cac2be584caeb4a39b9f2b02b3cb8014d57570a8728603630dc890f3c0e55d8da710bbaae156290a83216771728f4056a4d05e52095039533a8d0ba52374cf1ddb13b56d6b4300c43518cfde081e7e3e3e3e38107340f84cf88eb5a2146892a6b1a081f11af207c4644384d652d503f089f0ab46f9f43ae1b12e134959fb640fd3bae31e04add0086b53be8ee5879e3354dd6b4159b04187816cfe29e454b992e5ddcc1c8e259ac68f12ccc5eb45861f6a2c50a73192b5eb460b1a2058b15cfa2c5b36c995826162ccc58269689058b4f2146e1593c8b7b162d65bc787107238b67b1a2c5b3307bd16285d98b162bcc65ac78d182c58a162c563c8b16cfb265629958b03063995826162c4e8567b9c18b96325acaf8cc32bdf02c65ca94914efcd49ec38630c24801ac3210a7e8767793bace488bae5b2eddfa8cae5a18709c532dd90a70e33aca6a75de576303deb85e309c58ce4ca6e3ed773b3cde4e95fce9ef6645301555ed2bab99d7e3f1169ee2a91e0e64b0cfc88a83fdae838f7d88c354e15681395c87e52af2a7a7c852cc45aaf6777533a505cfccf3c0c5fc15c151e44f3f47a99a54f20a19959caf089ec2537a38f8e0a683f7764e4daa0fbe2b10586eb0acf6596bec50d75867bad6b5497585e8311430874f0863ea38a9bac6b29a54e0543f03f1e4c977e5e381f779d5f2e41e388aa3aa52e87ac58fc75042f024959121563920171cfb8ae05a0800d0a28e93aaab12a64a1700d8ef446069e0025b80f4a052faf95e00f226d0b4a6f5ef54edef02e06d0b496702e8d0910022290634ad5f844f014debdf2ab5bf1bc19343735a2d4faafde5a149c53ffd63d7dd217f7f8ec1f2679c545d6b902cd00c8278be2268342912e134d5d504e4ef46f0180a18e44daa5ed2b5655981a9fd7d6487e6d4d83754593353b1ac6a7f57f2878b39257b4e7d24781c062ce14bf35d7d6776886535d6b08a2695fce18265c5b23292565d091e97010ac0db9106d5f51f9ff65d81e05704953f53df951c9a7413a73882558aa3acee7c29789d545b40fe7152e97c4578530230a14d38814ff084bc9d616a3fefd0a4da9ffef96587be2bf9d3df3ca37e575620fff85dd5fe8e67e6aa49cfb1040c186ac4972f32287cd7777cd7414f8b8e9432e92e3dc7777d9b316e8c0d47ba4b0e463d4f0b3fc1b902721d3dcfa3e4cf3e51cf97a785a32c178b725568d7baf13acfb94daaee04af3e2c9ee7320b9b2add6557f3b9bbfbac52e33519c751a92bb300f9b74f5ab9a785fba62b7d7a950b9d76bb3b5abeeb2ed6cb77dd65bfb78573eac929b9dfa6f102adb86dd25de67c89cdd1a5bbdcaa7ee678e01520bff45d9f724bdd9758a4cbbc294fcbb8dfadeffa16b4a3d33c3bdccddc9d474a7f39f3914137ceeadf7593d5490f043d97ebb56270532f983fa9fb7d0587ab52f73be6755f8e4d0d087a71e3c95c372f8f757060b170cee935d98e275f6e95e128adeabec402641e4955f77bd6e331071dc8f7e4f37695e1e873be8ff2e777329cd5eb7edbcbb0eb36c3916bc781e7614fd781e7e1c82b1ca03bf4c4cf6845cfc36f0599264d0e6fd3a4d9e694524a39e79452ce2dcce1815e80fcd3ddc519763e5e107f01f27b5d7cf0010820d0dc9d26bfa3f1ece8c8726238b097eb06b4a9f966cdc3820880200b0c0cc9df07e59014bf59782ccd35cc6d6e73cab748361fa172687611953ffd1ef26c51177959b6b7483e81dd4e5d38cefeaf762b999777ab1983d47d9cba329cb5c3b13b975740fefe8cf6e5f3c8c383797878ad56abd5fdadce2a79ac54dd91ebd5cb67df36357881e67c76aaf2999919062c738bce9d7fe57e7b0f4d994cfef47733a4c99f7e991c32a17ffafbbf1476aa14839ad6cf5a63b96b76aadcf721af7f7a360538ca6acb2111faa7bf694c689d7bf3e82fbdae946cd9060a4d9081f2d2250837b80c600a299498220656f0e8dce8d51d7554135ac89f0b5daa56abf95034ceeae653b75f39c4230495346590d00283a9221d75dbaa70b245dda6c805dccaebb2aed4122e606fa98243617984d15d55fef250ad55e5370fc92b7e8387baef9775e1f2cfc843cb3f2d19963e325546b73ee36b4a1590b93ab47d2c709508a709bb96ee6da11cd33ffd5eabe6033df093a2ac7275e3eeeefaeefa2efd399fe2785bd8edeee0a9bb63a74af92098e3b17607ad72777055d29773776c3bfcf7ca435e20fe2d9c5559e5fb0ad1974fd75ba1f972687b49af24fd8c5c945b9ad6cfc1014a33acaf6aa1312dd4fa7e69d5422eb6585f39ea2def991ddac02a3b9607b6108f3f5759a57c2a87b69c33c4a815c99f379f919caadbf7790d823657bca4bc9e70ed3a722f205e515e4480b0d76724c734addd5f86239b01e5134919ce7729ad9ad6b2aa69fdaecf486e59a0fede021ce555edefb6b4505745de6087a8bcda1d5bbbbb327653b57fc76e8b6ab33ffd72cbee586923d3503924aff6e78c77c4eb5a2cca7d35527c4d71e227771711ddfa8cdd14db80c5a8fddc16cac475e414beca22b765816a00abfa87bc7ff8b700476e4b6dabca6de16d59d34db1986ebb8dfce7affb86de4292fb8e86740559e75323ae27ad5aec8f523e4be96ef305e4f75d2abdfd561c3f70354a2c207fa8e45075bf3fa3fd76f7ada37c1c2c7865f37acdca2dadda3dca64b316029f433a058e146ca1910e6d5c832d24c5fe513e6d5a8760d39a3d1972f590b5407481f8e553af87c096adda519cfbd11d070b766ed16bda6ebf237fe49edb9e7b0ec26d2c5289e5084b17fd9dd1fcfdfed17b7f58d3fa3d6c1009d8fd596c096a34414192e7f6ddbff3b96fff514956b9a74b9ad67ecac9c095455f92d54d0ce2ef4bb21a44bed7348e7b49c7bdfce6ede78f4db3f615c871a20cb36e62902952b19554e138407efe52b0a98ba6ee839d444c95e6953536deb4fea1dba6b10805e47e8602fa6744e766b3cf2df3331a9079653b3a33733333bfac6a8f7294d2ed6a7681f63f2d6ca2c821d68f5c1529517ef4a8baa3cb9fbd85359515b6ace44f15192239825fc917b19e0b39294f68075559610b4d9fd0baaabcd10df49a6cce2d046be71e5b013214f0a6ee70535c95da4f39a9dacf45f5102745fef4d327fd4cde41852d34fdd3ad2b0e0e70b489aafd63ebaaf6db00d142a352540bf5d042dbf7db3cf18d4ed5515e49a92daba4b7855fe5a0b66ddba270f19a315b8d55eddf6aaa1e5043257fba73d2b4eea26a17d54175fbed3ef37315203f91e4d07f432569556734e4a22d7c55a2f63a28f9d33fa354f6b69690a8646a982b23350b428866466620000009331640302820120cc7237a202af20314800f70944e545026164623a118c86118c4400cc430c6108008300419641c6264360180381b45eca1e095fc8927e9af412af5625bc53816059fcb725559bcc2904e5bfaa2521c68ba2ae94bcfe067ee4c820f64d6d1e31607446acd0360794df23572b5192353a9bdf30af7540f389a1034250cf8a4f37e499709eb22cb633536f009c042ff6c043cb0128201b571d654b8e3b53a6da8a97cbcd4fe16d8fa21277cc899819a8220285a2f6bde2b48cb3bcd3d07c9a2e9b56ec09bb28cec8af1144acc58d42c7511c68e8840e9fa1f8672baeab351cee973fa0daf2ac9f0a22eb95010ea73e7f0f776e9d09174d6a25af5c6aa9bfeaca2b229f84e07952ebbd9fe5fc86774144aed8f9601d3232c267bc27241eb81278fd9a6dec4c4881f0f65b19c17c1b71d67279970f44341f8c44c75356a308b64da7b7107369d8254a5307f038f4644cc8cccc78240bfa1ca9fa2a3995b1eb8db5796567aa1db1b1b177ddce219e9b1db3af69f5d39a6f29dc5f6bb0d8f915a149a1f48099719e5518fea284fd4dd46da67ff14cca4527b9b8de8eb56b95fb549143de744d3a3a9dced50cc0e6a5c12b250a60202e0bb0059a5574f94f2c09eadf4fc84f587209a04798b73acb72bc0d18b4bf72609883b7df704933e17b92659ec2a27744d610c3f32bf7803c2b57e4419d8110e4b54b62c5ae94d2183ae48780e8a7058b19fad4d3f3f1bb25eddb585a216d63c4a8986bd2d45b3b7248a95a9e98f06e3e1bccbe3eb21d32489c1e6369fabeb6b4a5c8a1349cf075224af9c30965a7693c33f60ec98a7c19302715205782fdd39fd10131f907198bb2d5ea04822a77284f0a44d9126531a7f8303cfe53700e7f32fc18bcbc4e9459436a4014b4ca9b28fbf5ea3a15775ffe6036a99e5f01725653daf90fad96838bd5278739b7c501230868f995edc7d02c28a2db5c3846460c8e34f444c9df8ad25d5410152968805347e1bd35681758d86400e499d76e639b3def4bd214207c16ca9cb5f06e933bf0c66d10e261c6ebc4d9ce10dba04f069e39ce03c1f89c5eb159d841b8c896c91cb59d801b65f7e357a40f59aa823c9168732d0f11d22e52ac712873a88d512189c786227d82623a4882ca18aeb26fbc8861fb4a566c9cb05c8801188092e0fe102578817d2135988c39f185e8905d25428739851dea35e3647830d7d4300cb735692a19536c123f317bde7d9a9342b1db66067329961b9baa018b24683f0679faeaeaad7e49a1c4b574dd52b9f331a8a6aa11d0bcfc0c742779fa0e3856680e83d414fb9cf1064174ccb440e1fdb007f0e0ed0c22d8dcc99c5ada785c44db35dc4f728d4728e636f2dd7d1673471a3df16f0bd22cab55b19d86f0b15188a76dbd282a2c45b8f463b441361429d21a0acb44339e5f0270ace1c48a1d266b36303b853a015f4bc4b48f5a911a4b932c26b427220c25834fe5c7418f64b525f7a3cd126373c2bf7612ced6724563a3814851cc8b23a88067b19ec6f0b15088a766df982a6c45a8b861d441361a2ae21a0acb4433972f8270a8e1c4a516967b36203b829f035b4bc4aa0f2a911d2ba32c26b822a2d91a148ab5af4ab43b2f2924b43d4fea27ab2af230f0b516c546af8a82695a5762470ab2327eba4aa23934e28e6753119bdd163c48798009be4ef9c1b02a958fa0568df8a5ded06b3ef43b01c958e9e3b2d9fd1839d71eea3edc967318a70495102e4e2ca0728cc73f968ff71ccb05bb60dc3e9f4306a1bbc746218d0a89d8010b369ad34a01108de190dadfa2b246a74bdac52257579fa3ab6226c24c7f29e1be69926bacd4ef4ac41e9650f5e7db45077d0b1062f4d64e0701407e77316ae8204841c144232327a5283d5f8c530b66bb5c10cbedac3b656090db0cf2a2b9491165347a60f1921cbc7b9a362560a7f7ea989835e202ed4c49c55838d38d41ebeaa7d1fb08188f11783a8af1a2d757028c20b89804c7b5a908d815534ed131ce9a2d2583a9af1b2531ee54360da9ab04b9f0467047986c57d4e00f8920a68ac4483a4b48c09c9b89410004fd9537061f007da58568e4fae0ae9a905a74e1a14ac284bbc71297f165ae1ee4bc170d96381bb4df59922fbe735450b6d867dfed1cfd9c7c63cded7f6f548aab414cbe5ccfc5753b36499f2990b8f1a164dc30f9ac8a315da00bdaf3f368ee762aa520cc7ee549f8d05fbfbdc1fa5ae1ecbe6c1e36e69bd8d1ecbf283e21f55521f6fc3ef11fefa4b2dbbe0c3c805bbc5070272be5672f971c6e08754884aff3f8c7c233080add570b2d0040969f6d2759b3b52802925d5da40750ae04ee6868eb477626fa9e2e8e38ae58eb938d2a6c12a61a4b872f949d299f141710f1a62a2cb1d5ecacb20b0aaf6f91c002b4de1b54b612e9359d1025af0c9810ce56da523fbcedb9eb630a55d99b8140c89731929c6fd753a597dbb16665504d755eca86c10114bd0c9281d2b2d57b9380a54251c311659b3c67d2416313857cf5f44de444518435b3c868206a82c977146984a589541269d1ad9743098fa89fbf9474e65699161bf046b6549d2b3a81c4b5f7351341b11d85a8107767c7ba3c9a06745c5b2d1c127faad728c85b818e3028bc82c8a76eefe5c60788703d1eb89123789ed993242e179cd6637ed35c94f47dfc1532ee25e0e5e5fe8e9bafb7242662fe96a8d8c1a6f1d84d14f2d252261df16e8dec0d9f53b73cb05a29da9e9aa7a647cde4f4fd8de515d1fb902a6a4dff0cc8c749259ee159e18402a60c62a01e8e6a11ab7917b861be113f0c222f1ec1e9317a4af5aa73db23cfb9c13e0d1739bfc310842806e78d5a1a5c1dc05017a33f18633fb359a285d0c5cc8690ebb43740d6bd30398198053a8660515309afe0deeeb366f8b503b2095d171a01ce9e066049b0003d188a11837ed1a60995cd8ba78a63172b28938fd081bb27b002647c2c5e9250802923d06e5c6a832728dd32002a754418cd43f173d13e326748244b9c0e1faeb2634fd44f010bb37d18d24fd5af921e9e463b8aa8e64627fd177430a43cad526942f1854b95af0b8da812b9b3b2eaa91e5363980c0daeb24149fb015f79a6a7c448de466a45ecbaad48a420a745053b124ca5722e70c778e781c1b540e3b3e796fdffd66de3fe8d753e07a1c7feb52d1869e8c1bab1379cdaeae7f180dc2140d8cc78cf0b989534953edc20ed92801aea59a0f07b80a781e27ce79512e525354d539e9d3079a113dc1e05ad35c0807528d1b2a17a65d15d57b2141b257efe4e68256a73e19b01e01453aaaafc8741a183f329cb87302907a9115780ef0644331548b1046a44057d991d6786c7e3a5313c22bc3e47ba06784133f85819bcf6b3630cd54e82ca8105c869b85db87e7a8f71325ce83d465deda927f78491fc6b1ffec50774f0a252817de5ec20b0d224293511ec751ff6347a01b6619bcde9cf7072657e9c0a38f4139adf428ae9e6bad76e0d583307a2f09aa4b5a087baeb2b699240bf1d3c23858a289c833c26ebc9f38d5731bb61fb75f5a14db69b6f99f5aa6749ae2006575743eb8744fbbf0badf62a5f856593427d1069ea4cce7dd1da167f6c89be17b62b935f0e039dc3eb60854d55042857867560968430fbb36f9932ded93f55bd6fd00e1f8573d8af6206469e2ceb4fdc5d47ca3bc7148daf847249aca6281dd7836fd01ab902e92c48c2206fc888e38fea2f8a95086ad6251eb478e5ad058049f94df0651752dd004452055a29cd3ae3cb2f93216b7d08d212f48ce09911397ec07a782e8c8b58ced4c152422b548c1e49c24300b21b0ccf8854e7f703991496f2785af6ac06d0185d198be88cf0cfd9d732da93d0cb6ea7c06a802dd9d889fb80c7466f9c5d8c9a547a149b9d6a2cdd209237c6052be0ca715b8170d8a28137282ac72f2148b7219de1fee3e28ac7d5ad8e0516e3f72a659a313e963d3efe59d409908426b8b0cf40fda5b37f369dadc7b8f4ff59bce7672f6bcb86b85b5174245a8ec60ca2a74ead222f52914906d90d870860c56ef368841c5ae0cab5f273c8767486b83603c251d92a03818ab08c6edfb9e5ccab1c22ccafbe953ae988b6e01d7a884ac92f6ecc426eab2b49f3280848fe9ae1b7b4e251c8379e908ec38ca5c1fdaefa00d1eeea6396c5fc51aa042d9ceb1268b77264cba71dab64eb47b19661128b81396f502acff0107781bbe263cc4015e83a7c395c14d5cbe680f63ea480c2c2e95cce656fa519cbd5711196f8be522385843f173a8d18224bb4b8c2de45775f156ab0a88fb73730034361bed4103fde435dd46c26b4282495fcc7c1a7c06e52a1c25593d79d6980c07ddfb981d8795edde21f958e98d450e2174b4c3801bd924d7852cbb586307076a29ee268645526170709c52c54d0ea7094733c8d1078961afdb8deb8f8bacd10ef7f49de2feb74c7e8dd6073936c75fac95a2c5da108059e8a0c5b20ad4e827149e74b0938231b270ce9899971077c075940c6ae5788400c17d56333aa20b5eeef6f9c0823e40b10056b19e0ff0f45784450ebd25bc1361f6e0fa76d39521cc18e3a4dd60e6d1b24ea59c13b5845b4d52dc0aa9be62f2abffc1d05d150193a98559c6d2904e2377a22b9ce6db42da50682640e2e213050f1a371d0f2dd95d5c5bb4aa610d811a898b6001696d0914b425d32d49e8a4d9ec62feb6d89a05adf3c643bf1b94740253f45dd57909a5db71b5390e75d5ee9f6570dbe21fbcd147977701871f0a080f611784a6db6764f66a2b00332ea173362a70289cfceebfa4be6dbd6def6e4eb919831227997bd8ba44f370acdc5e53f951dfd30ec46f7f830983e6537d7cd6b0ecd77941c30c103a57995859b97d6b310b082ecee9e858038078230b4800b83635ce98205df8ea5286d037f6f896b2c7699e69c81a104f07d31189c4f5b8d6305d1d8d4ba72b9959115709ea7f80a8acbde05cfe052984ebf90ea17c507920b146185ca82c5abab68a4a880092a332a79017b1b5450b453df9cc4550620f91e6872994fd781cd84d2425107b7f6b234fad59419e9c008192a42c73ab145a271a1c86435c1511805eedb9b4f34f12612c2a6ae18b59e7ea26dc076c1e3b504ea8b568ba4ade91cf7aa9c147c458bb06432c507d8e41d3ee25ecff9b07b9554caea4624fb87a8543470d72ac2c079c0235007a6ad0a22725aadbb8406bff6ffdc46246ce62d51455c5455084f10c5a4e442b2687a2ba673b03bdf1c41a823c9d210f4bf09e16bc7582ce6524a18006f4d9c3dc355c9904d7a77c2716c6a7df9d1fe15db3cf84275cda6923b50842332ad8213a6d718a65b877d99744b3df423c1f630092d32fb0be69a21eabcd5e483bb449ad189cf79d04dc8133c14d5d219575ac5aa14e1d5ab773871e16358782aa63d9cf024195c96c096d66f710880670e016e19c049d16f4f29053361dbd5f26ca281e360742f572685ee3cac9f8e14f76c7f2fb16b6b90bbeb1bc6a48c88e675f15bec917bc5092a1b4d01eea0b63328017051c511681152258e737e20424b53dda9b0012e28e2edb7767fa9de29bb74acec2253d22d19eb8cbb1eb536c1512e04ff1f05948baab44adfd0fc7ee72b8f52837500d67da737223a92c63484a4e5e4e1e1812a78f9d5bf055ebfb400d5161f26e60ac81955ac0c6c21d0a4cf6d31088d1b9738099b08459e8bba7212c02e8fdcec6b499320b82474050f463cec74560327e4ef59b7507563af859eb2062c7236b8cf42af8c1bce7f16e709a3e42d6234352dfd9b6f5f58d3a9fb171bdbb8427ce81cc5a1774d3d7a01fdf068f8c5f713d411b08e2adf2185f4032966f600d91969f0f400a4c450fc240966f42ac9bc2b101970b74bd6e868019219e3d6a90c66dc888f2d1e08b9b1188ce385a312ee0916644e1dd1fb39ab78a8960866744a56aa108691b33214dd8e5cec4dda4824d14cfc6dc987d3eac4898e1c251efabb1fa19d812d926be5bec1c786ce65bb875a80e0525753b99733cf25f57134287593c1095e31610dc4cd22459d77c278a457e23083494ae318c1499d3127707d0daeaa890a7d174f0e57e80f20dca951cebbe1f6c0e823b2ac2541e1e232a33e45ecbbae8c82b10a3d761ea2dd1f12e32f8b534922d83172d945b0376ce32f705525c706ce70281fc8f8d72d5b449edf2fea405db0b7417802bf60c8483fa171fdefdf01fbca21d2edf811a7f689e012396f801724eb44e1d8348edc27eee4b514a00a92fd03f69ff1763d00a0d4a8afdcfce92a60916c8dbbaef0d3b6118da2554092cb52b130fe190dc1d539dff7e8817a4b21657571d78be7a785ee2b4e72b077a78a1ec9259625b732783869770e20627d4c0362ff78113a5815eaf6ae0b1aced869183cb18c49af3c1a15b1d3cc5b0c69ced2de7611fe46ecf5476214536820d60c6879f5f67331b4158f82ee72f812c079a22d9c65502927dc23db45f3d4b9da6de2bea9afa1d594b7fffa151aeded3e2106c675c1f029887835d68aa9cc7c0df29dc36d367b4abf810455a5077863a4ec9611ca25034fa41dc30fb8397d69a7700938d84e0f9e1a811492a562da33eef51c57430c7a855dbcb03d39b8dbb1372977bbd81bb6aafaff4b03376def93e011d7f3fd1bb1f5d36e9c872bdae50ba71a9115fb7f252a342d2059b4ab063e265a7f80f1a98b872822775c5d2d165c4b960782fdfac4bf18c7f12066f3f9b0b94854f1fe73295894f8ff60d8e5e2c664be2668f6e5ca9fbdbcef7eb915eccb65bc5a69dc3cb2f0289c3e12de7a555322570e81a5b1f35d79fb9c766443181a97565264025f073d77f26fce32232bd3b5c83f75e67270df5c0d43b2e9a4ad097e09a4ae2668913ee45271edc88655485ae68a2d459f7dcb9646f56b0c4858a4bb16202b6a28ca524c550648a33562000aef2fc91cd434af1712a1ec49876d2682c78e9bbbb77f9976876d2a056588db66dc8cad052c74d2aad45dfedda9aaa93e784978bcdf2eb43f3d15183ca07d6dc26369433a426b1b2f1058f94fd380094ccd05e590e03632e951499ea96fdf31b381eea5f8802a4afb4f2ff288a587e904f3a29f71a736386d0a64b2bec0b8fb19af88027a6ba0ee85bc3eb623a03229ee15bf2b5a05618bed9bbd6152cf17de95a01b0697bcb573d742a2a9f6e9e357618fc610ba2a2074aa27aad105df74a1c29018674107d440a82acc9927307a578a16d7d59d67bed095d4c51f297324cacdf4c2ba5c9b440385bb7fd5bbcd476a119360072d761dfc13d5e604ad0c63ddc805810ca0a20350c21144d804e9f39db5ace41957378ed07bc83d810c56fe88538e88aa19c4c10df334cfffab03b85aa08e2b6ee386af05db79ee353a02262c7feb3f615bd69e51c9a696eda6333d64c556ad6344e0231805e0daebbc1a104ff3227c2c19cb83c2090c221746bc8bf41f19f84b99040ee6a04c893ac1103f59a310423036a5d5e687b02d453c28dca2c82425f9d41e83afdd45e2c52e5ae78968fab23667ea9a164445cea43b64bd100b2fcae7d1c719d45426c209476e313672b2b03f7a1143bee9ea64682ccc1494f0a01f2e55e225e76278467f153252a21c080a45855984a8548b56e3eea584c354d84fafad84b9c4c49209bcbd3273402b1e963d2af5214a656054aead00c3ec28c3472cb2f04f1d065d44d91ee38388809254093df84ca418e839308feeb9acbe6aadcbf80c8335c8af92e7b90ada61088355efa7db2f1cd261a2bed36a4e524a6efe11895e10dc39caf7f3a5c4a0012fc234b44c62976c9daf7f8c209d378c60d8e7b2e0474be19834f8c5f418bb0e72454a0b41d8812fe8899ebf88de834ffa8132123e065623a3f99fbb3b26b7a3efa4d6475dde6574db7ef4e3d3cb2f491f10de0555b8213f09ee324e8189b2f5044614583d49881075d9cb1792a4afd8876d872b13a9f7228cc389ce7e9032b03e1886827261ac406a0de551082e90303c7749b5873a9c0abf77024b5d3487da49e4955fd5b0e782d3cfc61bdf88541f7c092e7f907fafac62fecd2a1aeabe5d78d7cd9796b659b1cf14a6791255b603fc5681170dd29ef18420b281f7c4b6324cf6b6154064d44ddf7b217d94f1acd7f62a1581a9e25a8b8a628738fd78900ffe3b68256f2c6e2ccfb4076f7812f9f3cfc41c30f46d4c876060e2ba14fd9288998f916f7d0c6fd8f91361082baa49c4d2a20a5cb4a2b2f90f228b544292d97687e08143b0aeb3b65112f95f6aa2976eea94747960711be3a703640c257473117607c8122252c810e13ed09f6f123f09aba11f6b4b4366eb4efc04f22ec7db3b17cfa10667ecb18b205f724410fe59fb7e1022a43a6e148e3c8e1c1af5b96e8a4e1229449c636c9bcb944570189951c612b97d7da672c26c4a5d55bf227f589e7e034ec213c7955394ffd7b155e0a0ba79ac0596f87eb77292c5ff4b7b93729140b968381a6b3aa82c39b70d21109f320d9376545a781517cdaf425d0ffacbcd82f2c9257af26425a2efc8903e3789f24cc5728db570b5dbea9aedf2cd19e644bd680347e4647b7513b2ff5d26629800d9d7fd8349f4657c661ff856633734b9021e9aed6ac68429127fd7ec819dd8fb44a1b265795c0b49f24e88a9f5b75aa20fb37f849db1f38c7edce0954a6c07927411ad901078277b15f29c89a916ee3fa5538d684f183909f09b7989a215dd11514c8d5582ab953b9351785465b3b849abb4f6ea3394c86e2bdf3760a9e3a2982114e6981d4b4e73295a4a6e1bf050e1c46819d603bb209bcaf344392d62869cba1e7fac8511e634dc616e0cebd49432e5b45ce2680cefc6de7d4546bf49e9ce8744b60e50fef3c42086a10b5fd97b6e3b4a98b2e1655961947c6ecca1f95977695a274442b198c785659e85b0e13d9c609a105b37f0c55515f2ae221d43803450a10be23b0f533d3195ba8147ad1f03a89a6e2af491acd815319a6d444309870044c8fb3901da061f80959f1c5d006ecb5172f17d31a79512c430a28048d0d9abfd7b13c22dec166c19602859fdacc515bf2783e7cc8252a7b605b17b986a0f7f791d5dd7f2a817148777ab44a698cdcb083297385342319280109e8a8900a026c91bbb80b0bffc3b73ec4b17ece12e50f44fa4e6269f02893ac633db65a004ec2ad0a311cbaf3ec4e7f9fde2a493745a75771e3c849418360f9300851097b6d2edef534e07ae478e7e6b42d0c560c1036b9ac855fe71e8baa1578cf4da4b5b8bddc6b97f685cbd2761366449ac16dbaa4c61cad8ef9c4778f2022858e49d9bd5b465b6f656ec283a364b75195f2afaf3d109b2210758f22835e347d1c633e8e03572f230bd912c4857e8e62623bcd82d038c2d63ab45dd163b3a42f85ddac08604489040801106b1e629a0cf5776e0e7f96230ee16d34b8bf332b2cba988c8099e3a1fa2b5fda77853925543d7a306bbfa262977616ff1ff12172f9ca0cd260d05db3d3fbadeca1b1bef3076df4cb72cd9af42f5de8cd2823501595d58d5d36ebde10afc5115ad7c7cf3db9fe89b10dd3de5439f91f41681cfc0b129cec510edd6f03b3efc3420c10778ea8aa997ca39b2074d806251cd7b83050ddb1881e36b606607e9cfaa64b3d5b373fcd9d8fdc20fbc781a409f4907e035003b0c82707d4338c752a1b91b3f18057453edac8cf199085ad937030c9809d12995e2d530a60d7ec7ea5fe98615c90571e1de8c09b2256b2efeee6abaf60d4a438ea6c42764e6a924214e3a9e79a61ebf68fa8c6cec85f15251e2c1be537f2fd5f5b7ef582d8cfcd475df5eba709fb7f0ca4324e62d2d0008aff0d258c339f5c72939573cac01821330d07b0b9b0be8e429b6afb01e044701f9d53a8c0d43d6ba8e591bda0201429761ca347acff0399e042620e84ddcc8879767890c608218fd1f977c8621e3702edcc474f7bb8c023d197accaa02fd2af80b6d4d6d846db85e2df5eb5ec81826d9d0c33d48596672d4de00eed76e039df1fcdd67b65f699633727615ad719b39e9b769bc45a07f9ead0750c5171dff7d601ee05cfff7542b268ec27e2b4150da6d67743a55099d46b1ae99c163b1129d88bf294632636394139cb34238af412d1c5df0245f6e8bd2e383ff9d487b53ecb210f9bef468732d28ea067d1ba346595fb1d43bf92392321b0baadb2f23c9e365542d15cb12a6bc2347b1566dd2822d607617174048ab7091d62995777ebf4cc3c144ee81555e980d0d9f5e58f03251208f7e62dc88725009425ad51d24fe5ba5b4097267ba8dc921695c1ead522b4048f844c0d873890cf1228f935e958fda65b2954d3c0422f7f88ba70fda89a38900bacc07ebe289a75656beb4be40606152209106775f9985085e1eaf2d73d15f7169666789df40435f243b8f6a0d91f07386787b577b72997cdcc052e9610da51cceb343fe74bc1e3fbf44ea41adaed572d0a84640c1a4b6b42680346fcb70308e54000d5a6c90bdd1f546b792790d33f86f1b0e45e2624f0fade9eb349af0b367e6497388373722bbd523d556aefd7467ca786da5e7d6edc74f0a2fdfd46e981c484edb0b7e47bdd86848d5274fd2405a30f12f150b35f09e28cb7bb334217a56d6fa89d15df9f816a07f58ac8e0f2a207ba26a70fa6b09c70058414e73469ecbc90017597657f1c9dea0ad14022c766dffff4396dbb6576cdd932fe57cd88b69d4ee4797e50c895bc216f446b6e5a629eb021f48358d83f39b8a14e985c6fc313a4f2e801767fb8cbc5bf5b68b84af4eac81cfd988c604e6cf0c5796683716e2028c7cd27a47bf3f758aa5a3de1fa7a603c7387ea0b72f081c8309ed3a8f8c7f4c482644c2d1a99a40376c9e1d1ba1f260b06138d7bbc79c744e237de699f2587bbf4d87fa6ad18954efe5ea9b93fbc48a1ba1940bbea00091bb07059cbb9c61b97295b6a0a57101afa87895cd7a0aab2b3c1677e55142f83eae920538266c2a8f80b13943b20304d52d1c34b44d6e0af1ca6672779b521b469d2f18a564d94cace60818508a348d45e2a076368c89ec0b3d0ba45bf3c424f952244d94881b7f0db7a39c9737b5f9370ccb9e7632ff79dc7d7d6eb021003c281e116341060a4025a0bc590630a7a2859dd6550e0936830142f3676863ac09f34eac5e0285b7d1d9f240abd248cd2398fc1800f06f928bc8729bba81aba3d2f62ccc3468dd207e43a5c8faf5ef382e1b93f9db7b61f5087b66e93fc67a4b7cc6ebb485934020c9e9e667744d80144c78e62e47e9f091da519d5103015319b5f94dbbe95906a306a71c2435f0a230e10a725b5963b805c2decb285efd0b32732458083ecf4ab9f7d528a53810dd14a9ce84bb4958c989bf317c751ccf3857cc23e416970cb2424b2412b80d32a67be09475a8e4619a817736fea25473f709f59e4b32b43b35333a8e241b8beffb95ee8197eb6f414345b0e3520f0254e58a6138f841a22e2156d463188ceacc1afd35a36b7e9866517403e6a23b45db4d41f213e02c4fdee13e0a3abc38d2315e8d1200fcf1f03313164ecd036647819674c31f6624dfc85d11d80b8af4951f9f68d144caac28faf97fa2d2c21f06f93f540cc3579f29e91fcd563bd2e4e5d7c784286de5207b97827fa023942b625b213cc4ea59a175d789faf1a401249c53ba5030df88eb92477e4409b04b113491bb3a5aaae346684f074fab67f20e9778106eaa19fd9849d56616230e5b2ceec70f5620e913d0edab5fc166427ab9ad43041950e0e334c38e29dc95638485030e4055a9e6c8086cbb90a806a7ac19454ab9149c3fd377b23561205ca390ad38f42d21d8a08dc36a5a0dbf657c9ed49bed7a6196d70a01d1808da5212eb746c25e77f8c388a2e3207ac81fd59fe3506c02c7c5d846dcae9c1b637bfa559fc883b0fa095fa60b5cb22837b63c1e4438dabca0fe6aaaee6ce69cd1a505fbae4d737a3ae0e00636924a918d351bcb493cba23629c7a20ca2f53cf1f2447f6968bf9ac662dd749892074f74e8b2121d9020fdd5ecce3212f7b8f38f1b090e00a2aa2548e70f6aca6643dda8fc1bfa13f3b46cfb34f76456a151523aad8107090c5e28c943cad75e80d0eeb27d4e98c0f60d3477a92b83bfd716281e1bb4d2982f2fcb82b5f0001afe734f6723b890d642178a3ad08f3bfbca70ac789fe024f54e872e17827c5014c2bf781a3cf2b8a2810ba159248fc7cf26e999a7835f356c4a93981cd6e15cd9f79f6d014fa6e3a0ae4b4f043f5b44b043b484c169489f2dd2767a77b2e1915ac084296c900e695e98b774322659e692fd43147a5fc8be75a16352ad240fbdb08a680c6cf42ee016ede041f67dba5f2797010e0962db3464cd722a1145e22c05b0168722a92da98337e224bf4f1d64360363d65560a572b4b1e5c9ca42b824651fd8687dd3c881aa184789ab56259dfe03e78d8ba75c64637c652ce375a1864a6edc14dddf5b6a60f2a53d9a648ae7723723aaa47c89aa2330807d082a9b3246684ac3979a92f6aeed893441be27777adae5a2b310ea4f85ecb88e7529b814ef73aa5b5ad8ec668e19846df1af292f86627ff883c9243a1d1c47d4eca472aacbe23a86822230374e0cd21a67ed29d77103c407443f53140cbcfb7cd06ca1ddd54fde1b104b97dbe7fcc1ea89031c31c8f258c3af09b5d93f11a4c4036000e95373b983b2948d8e6e0ca0fd9e9a2acb6e279faf0b182f25883ae5c46b021f651c28c683270bb87e207410ee200f94c1c98a2fc96544ac5088f4f37d0ff0136e7f553a5cb6031b44010a0b0780e4b7637423dc6ae8afd0385a2d3fd4e3826a517375ba9ff6c914a1d06038b4d96205b3fd72d52bf47b4e1ab1f7f5421d6a95b02db676fd19ee5d28855d0a3dda563a6c8284b3ddf17ba0f0f9f0860f1ffff854abe3eaa159773f990dce9e15ef942e7995f907f3549e412a6a1b6eccbae712fa3729e3c7463454d24e880835a5390ca7263984a186d4d30e1ef76c152a88f6589bde4d6f20454fd42652eceff7c43ee6649348a813211083848a621af82d2d3e12fb987a509829774984bbe0519dc74a0725e995a51bbcd009dbfe952b662dfc5f80aac0b5353443986a2f355b307e8d6d4792be1a91afc2609448e09028ca0f7034821bbc99ebd5cbde35f45664c5c9d25decf8f71587e5e6e89e3196fa604221987e5fb2a11d8ed4f5dcfb44f2943fd6132e52f4369b063f45620343b7a1ee743639d60ffb54abc82585b307adcc239ef29886695bbc0a91b927032845ab01766d003e768b204a3b2bd92e92ae49b9f8669810f5ebb3ffecc9d62381c463ec141020d3335686f1c1ddb3c2d24b54bf894b0da99ea01169fecb36365f7fe7d86ccd275e9d282fab4d8d914305a93bc0309adac476f9755de8bf1369b090f1247ab835b7cbde6c031dd2c57c201eda0d228aab80683a0487e46eb0d7c5681a6bdfbb5a18e24a4684b3680e60b80bf59b78e066f69d6f21a4c9f43322c7d01f16d24ca1aef54223f538ed818b04ec5238c2fc7f25d163c92fb094dafda6581943ff9b585dc8f47617238506a52ab8ad036b11b7a1a40657c47279d7cf39ff50a6d892b2d2b20001d42f75173b93de172d8ccf7d248ae435326ca0e67d2b977aec5211706fb1411608dc02d14bdfe961e4cd589a3ae54266c03c7860c1e3915182e7c5f348951d525e8601c62bd8126ac7fcc6d8deacb292281530386a1a1d62ed8622f63412998c578c8cee102f6d56913ede6e135876efea8a329b12dc6bd937386752a136147f846d68b50b23cef8db29f03331079f6c3b48cf86711e1d2fecd65b891128d2d244fb50dba8778428c5e0d429044c1ad884c19157aa09c1ea049c1deec6811dcbea257c776944d17e0edca581b61c82b628cd95451e5a36f011823d58065641a279118482621efe3fdd3e48d155b338b522c56fa3905e74a6483e780749d4422091e2730a5d6dea09c41c871d3bb0ed6d8988a9be898c109e002b8acd43b939f830c90150ccba212f8f1d00a99f00ccca55a65082f1923b2016e5ed396cb5d25d6d1e1b61996577fa2f6dbd0d6e2862db2a7a6de056237b02db4243dbaed7a0af5dc19b75050bc614b2d100ade5fc253848167fc3d4b073d40450f3cdd13140e94f98220a28ff5571454173a8dcc120984a000bebe00d340c17ce7ebe8e8add89511329fc5e7cfea6df37d853fff026cf0f114a0e79097e80a63ebd905fbb646076488345f00d153748045c752e73a5241abd70134d0e7f72321eb7233585abb9bbaf9aec16477575b489352f9bc8924d21ef45ef5cb7f4b825b9ae8baa150cb5ed40d2a64826f69186a357ba38a9174c5a0a9278848482e3269bca0642220296860dbc6adbd1cc3aafd039c706d01bfb0ddc8cbe368cb5c503419723e22908b181e703586cfd233d38b444c69bfc16c5e4c986174dc55692538fb493005144aef7d97492367fcf623a3d23f4fdafe64a2e7e0f16fe4c18471fe28fb91ccd4dd259925429a6c466b1f319119f8523792d0f7e5fc86e86d9f79223670601c81c73cc2168369ade2f71d211551457a528c81dbc9209d765e5448904a45de86ddc2ede5e623292517aa64656526528b7eaa96986c69c041c830870a11bb7b2f7bad5237b91248febee9314edb10b7e3e7f97751d66027d8642fa3e0669a9a636945c614009f84bed362100354063c0300c92a0ad49d35611b4224123ae29dd6d705abbd65c0a412ba12123ff3a4c59340409a8e02d4412300d998226859c30c2c06a0115f041ff8755453d2861583ff7f17e499f438768f74df3c4b20bae24e557e8cf872572301f028f82c7aea98d6e0a98a541c469dfe8061a78922d6fffe1adf093dd583700586e6f6099dc1a01d3b51764348a996111068e69795413e1acb8effe92dd3f9c81b6d0a4ad7dd829e84ba20fe3352b2bd0c9f2e976d1ba0a0a41d4e919ec9a826b5228f5486937254452240a02343471db59d656aaa9092977ab10ee5825e873c11e0e85d5ff2d6cef6c594b650ca05ea861942196acc1e64c1a9a57913f73d73aa260740ab1878af5e949e7d79e18c416a5c25123bee3b7436bd8fce14284fc2f75b29e8be0129e7ee24148f8730ea7ce955b814667d9e4b067c8255e11b3e99e4d050377311b56a6e0cb2505973fcf9c42fa60f64c61215423a4745bda23f06e8e81f9d5b50c4cac38772b7c75097f8f10b2c4e7d02dffa5d6a9dd7d9859e80a72a2055c50cebea48cb131be5d45779a50dedc230b170cf09da3561426fbf5d5efcd83f1abd2e43faf85cbea6ded7b977132d3c5da7f63cac6ad9fbdec24a9a7407b4ed11a0213c244584e67ecca9d0d6cd5bab19eeac95874b493bbec72c640ae53b4c3340832137d8b343823a0c4407eb1bfaae1f4c734a5ed2a96cd2cab110ec3858b1ae34e62b4c680c6df26252bf10c88d34db4dd7ee2cbe818b1116a5db367922cca8393f15c355d8a809c937309980e3e3859e765ffd0f067019823764ac496541302ca424b86a01db24cd44bccd36299c2f980cfacb70f9d889bba537974ded280ee3bcd9b122cd416df1087744254fb77e6bc277725792374bd327dd214ff11724a07bdc1af18d50addb6cf91ddc84ff05f93b68325d2c096a4ae4c6a0682d76d34e9e38dec94971e3397ffa5139dbe117a03650ed6e28a591f5dbf3c56202ed8603d3fec713801f12bdcac0c14726f75c67daea9af598da2263554c8174e454a0ec2ed2e02c11e80c47cfd1c7e96a01bd180cb3cca01de058c9c23c263bd81cdec15b332bcb086a436c963cea3358e930f2f4cb9d2f2798102b5267adc5f52eec9d0b520b07002069be6e369d6c46cf9a08caed4e25f91237bbfebc0519d896b2b85ef363f19bd6f4eb67539248e962841d481111663ff4ea37e9d3e2b068fdd1c04466d60c9c049ab67c5b88e507b4a6140b31c44c2ad300094e60368fe3f15dfad680cbb8a9b8a4341fb4c1ecd380713f70e1687e96ff53ffcddbf31ced7718ab17db7c95e2918b78bdd25c7ab9596d955b70745896607f4f3e657557515250339c7ca6e2606115b725f4a69430d654609397e5b770e2231fb74c652ec0faddd4070ad9108f71d2bc687738bae438ead6f51ee75874b02f157da5f9abf95c21cfdffd9eab1347d002ef316c1f675e5f32ecd5cc6c3cc3b9217b5e3c69ae91e402167d904436b96709aaefe7127552f8a5bb8341c8517b4ab5835beb175db2760ca9243156df5391a640f57a03d5074506c98647a22673872d7d1bf23b53e8b08d1aab173ce2d99e1c1b534331ed46eae780fdab4ad2cf9013ff420e291bc90394883b9e2d847ed7a262ae03dfc14d7b3b24487cd3402a307f91a4afa32e9dc2783c38a97383753c4f5b020203008b4dfade6355f3f7ceeacdeac855948eb776a357858262bcd3749bfebae9abfcc37f5dcdb83d3295fcfe33c0ab88d9848878439eeea4dd09121a5112c77c7f5343c74be94b041db7be6766703b44d64783604911b40870a9ca4e2197daf021df03ecb1e14f0a730c8eaf2974dd7dfde4c02e81f4ce9f3b5246fd6b5e9252fbd1ecb99994d64c1f0245cc65fdd09b6de60f603e70b003490e523ed034d5472e10b2acd6582731080d755e79b3e73c5c1dbeefb5d76a0b35b6d13f0608724ec088e8a4d2cdee36df0cc9db9a67841367d42c9328ab783984705b3d04a81378366c0c962a9c676c7b67bc35370028a4412db7042077c2b3c859dbb55c26d3859e8ad1ea7ff0bc7e093ab258cc2d6e725c3aa3f00cefddc1595f752674ca4573a070e3e833ac362216d85a1302f55bcd499c1b519866e9b33633f957df578660094964a828ed40513f459e52907236a942801305b4bb46ab5d7cd3e879e13108521385883feda5764ea4813b5680633fbcad7829f3bdca6399e634644da70a05d33055014cd7590538d761e38ec5f99730c9019364679afac5dad1e60ebb540e8c09e718919d36d4df647085f2fa0b269400c55b165597594032fb16b2e576bf63619016d6147c55d5989fb3c16d28d4c574c75c918b093f9ce9611500f208fd50a0baeb254ea3c8563ce198986fe6aa606ed62ec2668ad211774114b8894d86c42b212136c437d3db933df357ded62b002fba300d69459f41a17364b3551632259e5b85e481904462de20e5b62291841948f989ad895108d10ac96aa119954416cd0222aae922a6b652f2418e6773bbb030f5e918deb68aeba471fcb8105238623842aa98b4c6a20127fd5366efb62a39daf373d8d527500db6ebd60d808b3c70b2fe6e2fe4bcd80593464e89aa43462753e9b4957a14ef249a1532accf949ef1cd5be12e44c1453f6a7bc21640be6d4e9db27ec0fd46f031a4bdba356209e15a703695cda02fa82305b44d0b332a943de4c57cb6ce5209ac25680dc63e6d2569c26a9969b35002c7e1da0694245780f78129d6b7e8dc0585af7e144eca8444c4af00cf238b3e2a7256defb626f7de32252903f709020a1e0a6013d3a503f072312e365d9c13ba30a62be5a751005e94ebd96fcacfa35c5c6cbab858ca8f4b0f1a48af87694ed034cd0e9175f3ce7a5ee722111b40e9a3738f43debc3f1fa3d855f9221a229188f4fa19021a9a1340ad8996bdb44334df687f3e462f437e6708ba65419f15c0dbc99e5d76b2b883f4eea5ed190e053d7b2723c1e48683d69f4e21873c38649b836f9676a845edf5d7a326756fde79d7d5538d890294bf390b87ec31ac22d92b33b237260c3d7b3dc6b04ade481bf939489bb03b7c2efcced959baaeebc2ef62be93f9ce635ccdb8fc68bad653b992218829f62c9e5d64af0c109e3d646f8c0e9e9dda1bdae0d9397b3d06cf2b902678f66629ed75791361d8c11878250cd62b4aaf843df768eb599d19dac86de5ac0b29a18b2f97a5f5ec1d83b1df7c13d92b5fe45d27f29077a14ab90da07c910fd1945c941fb261b1cf0879c8e347130263ef45f1ec77c66b53009be0603f44f3cdb5d20dc03b7be20eb46edec5cf0707f3117ae9d4af1785a671d282aead09784d3dae37f5f4a03f7b220cdfd9f3ec334d4117c8e166bdc9d212492d8ce9dc53e4d2a528c485ea90766f6ad9bbeb954f7d0241051172918bec90908dcf75d31a9f7a1ccaf85d1392fc054dbb324fa7df98a737bc3e2ff8944ea7344698ed824cbce69b77f2230294bf6d533a27c51652e448d17a36fd36650610038030e5f534e396fe865ebae45c4afe6284d944a0843068e1630c6f067edb2ef5cda68beddb65a266c96bf7e5e390e9edb363e2cdaa55f95f8d30407fe95789fb32db0c5de4016cf6c99399468d20b088f643a4b74fe93188ca2b3f9fab145e99fc9ede9fbf1a39c56eaa91532935720aac9153f2d6fcd55c7a2792214532ba7a6b26dd4c4eb77ba20989ec45f2229f35fec42c060080d40d5d86977ce49d0cbf3ee3a7dfd24fbfa19fd369af4c277b5d9e7319f6ba7ca0afd01457b1269b62634ca1d892b531a6487664a36745950892a792887c3a2b7f341c14bff9ac975fec9afdc89ca0f0e724020510ee2f929a97b24794483fb591e371256b1a8b014ad734ae611127d209f29d879cc695c8bb520d24896aec947f74ed441d0c43d1a9addce62e3f243a57998889ecd3316a9a04a526656bde334a39a7a52060f0a5bdedd363d3f6d93e645a1a466fc6d9dd54ce969c051543e3b63935bf3db539a78cdafcd98618b718639c73c6186344c2dcb8397b72536eb6264173f9c379a6ea23fefc742cc2684ea37ddb34f91cb745ffe0c41d34678db9cadf498fb3b7e635cdb7fe79f6cdf9e6a7ebd4993e67378c7b9ea05fb471dad539bdd33d3eaf9d9d9d9d9d9d1d276266a1cc63272099c691e18062b25950b7fa66676767676767c70919191919a01d19de388777b8c7e7f50373b95c2e97cbb5b3b3b3b3b3b3e3449cc5599cc519e7ecb4269b05718b6f18875d2e97cbe572b9646c6767676767674716c42d7b7c5e3f30201973b95c2e97cb2563322663322663322663b2877e106d8137271c7785397287c53097cbe572b95c41aee75e312b6616ca3c76028a37be18c63086318c610c63587c318cf6aa29089e4eee61d8324c839be75e4556f42e8646fddaf1c423c51718ac5341e08c7af4d9d12a592deb950d8fe7a2cfd9bb09ab9e2022c778926fcede5c883b60007c2d441e46cedeb05e713d9de2b843a8b99e67873d77ecab9e87eaf65b0d3040cf372779b77d3424cff34e7a24cff6175bed261c86aac6f5f87ca8ceff6a7fc121006ecf44fdde46b2dd64e327d56e1261a48fea1345c0e7c24b6f2d441cb6ff3a512582a4f59ed5e92cc78d3617d5cd762cc2480fd5f89df45ac61deb94f4066275b3f6e69c73f2b75837e9d80e37378d33431757e028f6ed9386bd354fc3b99f5ee1e031e7ce56af7a67e2f40ac6a34f57af6ef0e81deb550e8fdeb25e851ebd67bde2e1d13ba8573b3c5e992df6f2363c2c2e1e3da657385cf3e8a75eddf0e8ce2af718e30e28df5cc61d52bef964550ddfec6582bbb2baa36ae3a8319d92da8bdfa8363c361c04cee2b1bec5bc56ef6c54cbe279a88afaeef3509506aaceb0a4d383409ec9047aa82ae3bb9287aa2b281eaaaad4b0222f3895e2a1aae93b9387aa293d3eaf1f1e23222b070aca4e8e1b3cef46c5435594195d270212c5443251a984831c4d01de8e898050b5f4a00c0fe766a767e4330341916809a7da6bd4f6e1d09b412f1055c1ef4ea4cf51452fd18f08d6a91387d3a92d886b71381a996ad4e029c00b76333c541d3d0e55e423c35bab3638dcb47276463d239f6d569ac5be0f87daaf96da3eb3f573a2e1a1eab7e2ed3754ce0553399c518f4fa7da79eca85bd04e37c977be77443ede26bd469d02e5a1aaf72c55a725478ddd5251b57b96aad3e22ed5f52a2d386ad78acd3c8f76353c540da12a4555ee6bb0b878bebd566d78745822485aafc33516dfbc86772c7ee3fb115fa66e54ed73d491ab53ed611de574aafd46b5f18013ad56abc5bae1394c32200ebb2e47dd82588776ad6eb34eb5b314e0dd66ef281c383aebb9549614bfedf3ed38aa28a853ed5e45320edb6f5451ac8a8062bd8a3cca893b6ca2d8b773084077a7d4c5857a6571179a2387163f9a1a953eaaceefaaa7d566bd68955936aa8ee6b6fa36eb95084804d43c624fe3dd4a1b5efc286561b1f1d16cd659ea8bb37c342fa91b9eba612b7dafd56dd4f8b6c68f9fb5acee06cb78638ebc56d76a64b5bc702a7543ead081c373a92c8eaaf1bb2e7e2ef6d6bc8ba350bed5bb81a0df9cd63b6f5ee47c03a25cb64b65715a6b38eaa3a981aa3b5a7c478b45326f583c2cde49af46a51f3f169b0355452fbf1e21971e2bf599a651d967d4dbb9befd546f28a35e5fa937e6efa6526f8ca95ed1ecdb53ea0d51ea1dd5eb60bd94542fd7faf6d156afa8c9b77bf58a9c7c7b579f98a27a4d7f45409c479f517e349c8ee6fce9dc384bb34838188b675656f4f88d621f6d20d16a18c9acd990c89a131259c334c717383f6950a2f1c69ca4d463ea99000961f00cd3e7a1c615656d88b2aa804eb6018c33ba8ee4813ee4afc0434307c0004d51506ef3b4c931c2b0e5d66c9653e2107d86b5982dd2de368e0b79d0d0301412893a1a230f1f1ca214a40991449df7bdbcd0443fa9010cd15289db4adaec12974a25094e4a3566cbf2cc92794a9f779aa46c8d9d432111d72ea6f3bc8feb057db0a7893c11897406f0c62e7e70b80577b4c89c148c302a80b7878fde799e9c11a6f3989979cee9fde43abd0f5c824f9e348d68684a2812858e6ecd8f21c700af177d1443ba351f238cb671f40b7da26ef6c772c4c919ae2e72d7915620a5162c994e0f8a1e0ef6446e383324cc9c7c90cc743a6d36e866a4537a92654b709a36209b2e31a404e5e6c9c290d5a04d9b4a624033d98f0f904fc80b8d4228a199ecc707c8473277cfb985b8a96d1bc7512a0a7d21100ca5844e2119a11baae862189c93ce4423b98b8fce71304abb510bbac9cc2c995932cb2337370864efa0ca4a9abbbbdb4632745d94520cb90690d7d053e34d3adb8052ca34ac01bc9452d12846185a82ae23c999ce5d8802227f888d09022f7dd9f302f0462026cf4824a144049cb8d1c9f3f098c821b5377ef1ec9ddc86689bc468084094528ef94b65422dca8174a259b16ddb36a715dddd564c59ebd9e70f5675d36d52ef3533d31ef290bdb23ac1612814aa457c1480436e16910e05874582b0aa9f524a435da3748a9cbd0bd22bc99a5108121c6e4e38c1210779620681c16011a60a397b017e84a24c13a71f32e547335d56393d073a3dca9e03c8aae638ceb72a39ce27c771939373cec96d9393b14792678fd6ac87e15f50b6344f0b73b6c44665a8d325647e74e0f39383255a8c60c9eff8a8051538dfa3070ed96594538b2167ef7ef44ab23a6e9b104138e41f4bb08afd89f93f9a52106c5025d303ab28a53e2b5764fa9032866a366abe7d34d5e350d32c8501f8c4fc0b7660af24cba3a2a747c54c13e14c21197b04c6b08a411004e32c54852eaec09077b36af24d9c027293648bacf8450b96660052bb61c1a7fc66d3f6583c9bc76f8821d2d99d79098e1837e366a42e485e908048b0d6730b17440a0337e3669c1352186400c1e5c68514e3669c13194070b9910104ce0bae0917e38038a42d971bda3a01c8c97000d11627c311d3b4c88989410378e3ebe6bebce732279691170306c9494ac440e1490e39244a0249a41a72b0f2ce1539601539a95ecec959a29dbe7ccb9b9c1b65f1b5d23a260719cd5eea356739ce2773fcc2e299d3678806f0d2ef9c2984a317736a73c7fbcb39cf3b39371c52c1320911c04b993265da39a2d02cb6386979d212f4cc1ea8a20a49bae2b91d8b676f528fb4ec812ab624323dfc808111c3aa6d234950daab39f528ccfeb60fabe22b0a4bfa270840bdc5e63754c29ba1af715825bf2439ac1a39149f93ac685459c621c79c8338eca0f86c9057e51772c6a10c8a31254bdaa77d56edc3dddbe61b18edc3213313c02b6f3c79c32a2aa48b55343bac42498fafc924cfecedd32b2562ece013f07a7f39f64d2ac7389449ef64d07f01f4976dd895e895bc61199bfc9575f64a9680de308a44d6682db202472905b8e04221ce43d44321ca51808b6deb4e43b756610c496600afcc4808608ce7d7a444a7d8edddc235809f7f4870c8af2850f1f1c9c7d7135adfb127bf1e3ce647a37d4ad8d8e779fc683aaf86fcab7cc35470c822f76aa7cdd377f5cabc0ccb9007abb4f77825339b3967ce2239b17834cdb59aefa4473203c8d3413140998f46b31e131e6bb48fe6c67b6e3ddf682f2d7b7fe3cc895a8453dc1a090164bf9199d9bb2535aa832ebe5c098b404828d9b92247e2709ca422ca969849b412d34a9f297d9ea54fa734242e4a52f157a2648edcb98243f6697afe68e4eb08e08db24b9148420956c9672a5ba2378fdbb4573e2a887ee9fdd25e140fd4cc6360fe908fa6ed0c875ca79c524a4df319a79cd15e275e1b327378761ea3184c27e411c04bb780c94e0812e73b92e7a17a5f3e34996b91df23df1d18a0fce963fa0c7773cd893af6a4a83951f85e9c2c4f4d4fa94fea9155380f7627b217a4fff2d465125c102ecf858ed8a9cd800b2ea650b5482fd2ab53dc05f0b6ccbe652623870423fdb84cf1ec5ccd935e97f47a66e23205cb56b927dcb01361d85d5aa4178989cf1b7054e1b52e8097b4f3a41d0ebba5ede5809cb03c91966f79e92e2f2d8d309f0f16d20d3b355e5a122cc2b06b2800493e1cb25f1d829e9d0423f9a85a4490b47a1cfa8bbcfbd2cf2f38a24eed0d025140424e725288faa5af753ec3db672ff89b67e3f692cdb43f27e38f66669626d8ee511adaec13f243a1a83df5f8f9a04e048831c618e3a94505f19bb54b70d85ef39a0567c415139c6a6f5fa257339d6a97360078f2ed37159d7cfbadef7e3a510aca52e490e90c87edb334adf7498e043013bd1ee531baaeeb4c1e6ca35050aed97a46d1c597abf504e914a701bcd26606de184382c66ddfbcdb6a900f80353fb78a0262af5452f31ca37af4732e9570c8ae840d873c6f9ebf2298a5b55ce08db12042906095dca28cd3a28298d2d6fc0ca380486f6f7b6b3ec6a79507879c06f0f2f87e1ea419a55a4bbaf8e7b59e6e2d055d54894e50fc76e4b7cd769c0740f9dd49af0920a594f6e945268e73caab90732e5f1fa2b6019246ce6e9c6f1cd73d46ccc78060c8bb9e5e24b2b79d7a472bd80150bee41996df9cf2bb7a1faa43dae7956fa23e79c539a531cfd5174eb166bd8d6e967218a37553d175d16fe7b705caf7e8a4af044b7ec6c7570960df69de5751403e1ff9c8de917f5ef3dd68e49c8f4695ff63ea5e6deff8ab3ee28f46f663fe7c7cce869f4ef937fe6cc8137d3dbe1a9ff253f75e7e3d6afc4ee47df5fa883f8489cd3fe7fcb34d7c349b8b3e1ace451f0d751f22efeced9cba7c424618ea45e6c708439dab433ae7bce7e5cbef220a17c0984518391f3ffea8b3a82036e79c73fad1704ef9934e443ef3c7cf0773a8c6f7eaadf910bf57e5181faa1749141f6a7d8826d4f9acf1bb4a44febc485ebaa8829b362906e8b38d12879a4f6e6220800b203e3033c5cc112e8040c205089a68356126034db89971820b0960a0091a78820b308908448c31c618bb79f6ecd9b3af29b20fba18638c31c618e5133a965272dc41d7dd8b438e4994524a29a59cd3b54dd35ee636a7895f9c46dbb4b96ddbb6ad01044fdc130cf0f2882fce932b00a5735f112156ec94b4d463e1509b736a939e3c11382713de34c94e21ca6d5a37bbebba8e65248d6ecdf3a5dcddddb23b8a46f748d75b84454fba18638c315aa0ebba686f6c220618bd8bd5e330f2f8e8cca3238d30d1a54c032131258f72e0c4e81e38e4c4006ff4e2a3cf6893e050f2a8fdebd1df5626c244cfe1c64f8b92f6bec8d869a01387d22d4a49278e64c2f450bd3d7cc8635c4dbf007889e237f5b2be9cf1529246a697ce79ec95c9c64ea1d8d8a9dbc36fde95aa7cef558cd1a3db1bf2eba5135849a34a39dcfcab1e879b7b15e470f3ae9a38dc5c546fcd8b5c6b5aef8cdf9ca5eca1e76c75b2e6434eeb353d05bbcfafe7f90579207924f9ed97d27ed5abd43def64eddcabd7ebce450e829d873ab0b39245f5d2274a23cfbf4e4af9a5d1e7795554e383f589911341d27ad03d567dde3949e49e77a18fa693528e6a8c305ff56a8c385c295fa435cba851df7cbefc7ad0506dae464d33b1787af6b7bdda95f876ea92ae38ae6e556a4048245d33598a814edaf53af1ed52457df390cfda691f4d68d210b51e8753ab2ca32d32235356b1cf1a2a7905244e49bfa6edd9b5e79eace2f901f089b98da4f6d14c4eca8e3bc452e9c4e22fddbdb09cb6a9b107d28ef36ee863e9a5dfd2c7192ffdce780979c4c89892f2451fcdfc64dbc8aa18a227b8a2e65b2e59a2c4f52445b4aef4083865a01cae5081062e2ad0c0b5c516f2e5dc1c0781f2356d8b59a24994458055b429c7711cc7c9980ac4147b14318c6886982536288057e2449c5e510a82a793e3bc382e28e7853383cd665f90cdda66e6c9ca00fb64b0d917727e46813383cd66b399f78528669dac9403f076305919609f0cf67ab92e3db1e5c5c5680c6396e22cb5bc6e1746490a013dc3aae87ddb21ec9ba380018caf157cf1db109bf392e79ceb95ff11117d3a6f16d51e593df0aca8f6f9252d80fe17dc3e66e10127c42c7ad083f822ed90189bdf1ab658a2795784ab1cc781af3953faf1f44af378c3b682551c054f4e70e85d7bf1e3accce1100a0e398e611c07fa0537eb0457a12003c815b150ac38d629cd6957f2ee9e52fc82f6966ce4b0b3310eb5bf1c23d94b9f4bb1177c0ec5ded3cb9d4e69ceb18c55b19f5e316c732cc00bd23002c8691efb905f9e495984d15ceef44afe744a73cd5e5ab29782f682e0cf49f36f07e0f4cbb308f49c4be7193be120567dae79b7da86559e6bde37ac1ab9e68dd38d6afb57dbb7d855da71d68382434df3191e2501457e69ab5792a5b9bc915474de858038ac89dcd75bf39cb4e150bbe916875a0ef7c40cd51b6a4eeb955dbcc6b52805c1d389b3dd7acd9d682858155ff327802f9a1dd224e94de18a152479d2c797eb051f51bac88ab375a2f747d3563a47db9a0ce0164bdad6b4a823246bba644d7b84c788c8e20092d884655bb109eb8820cc320d39c801ec77c084073e1f5f39f8e2a583264f59155f3c50f2a567ef48ed5d9b78f24cc4262f2db76d82086ebdb44db4450521dbc6266f9b884d5e36f959173bd9de35fe74ea3a37ce0a9d7815b293ae244bfa895721971e39e459593834712875369f75726a7a7f349af4fe7a70c719ee4a03229135cc44e8a490361c83e67a303735682f68e7507249e0bcd3c7c88aac927e5f2e8f1e38d52eab0c873e442fb33da1328631217a3abd740fc32e44c166cdca74aa725a8053c6aa1b67ff05ab6e0c7a277a35bd1d0a8f0b3f3f2fe8489d824e41a780468e0ac02ba251030c7007c4d9e9544b9bdda4f36622e23ac4ac4d9a11053d7e5cd7d97da0df669262efb6cdbb28254a6ce4f1f3367e91a86b3dbb2848347b76aae45b11018980508056ba601dd8b99a02301412752211e7f193ddf3128b97de499426285c959674e3d51150a75aa399ec5be124b8026390e340e7c0100d8568884234b46d73d421ba89b650a8c9b37728324ff61c7be4a178e1f1ebda4f779e7db472c5b3772b3ecd44e48508e8056e23b96d1e0d795d0518fa36bb22e547b3d205870c45cf879e842a131c6c0588c315180d18700b56603460404774ba9c060c3caf53008e7c86a318d463f7674488e5d9118c04e05d81a10081b509271ab57338310605456e7baeea90a424b99e475de0dc3cfb3792915a200a10b52318872c4c4440222f443114a05e919c7d04430122d9110c4502f08a4e5b57ee6945c941f92a4af579f6de793d3b0aecd963cf08c66404237d343aa218378f3a37ce12f90cc7b803ed2cca0e4b11c08b32823d8b8050be8f66b32840a3908f3e1a142f38642ee45c65a26728310e190588c31558846101784730a0671fc558755760cfb02e4640ace29c7de405ab2e139cb3afc0e20e91566ede043d7bf77d74f434722492c9e1a0a2d31c6c02d8c559327188921e933084d9b3a3a4edc13f3d268108b16f0f79b02abe70acf8e848448057b427be5000bb91498ccdc441c1ec6f84d94c9ef84a81093ece0a640a9c0a448a9c0a440a25aae8d14156451c1f3d3a0ec9837c913cb04726fc6529fd803754f9a84514aa7869afccc7d0df901fc8145670183f8b1e6ce14371d61ee83a525711639c72d3a28cdac6e27e3a9922c79730746739c518230e4069afd7557415336e48a6d309043d4aa547c1d97a09437796e81df3b6d90876d36c1b7b008c1ebb0af076108bfbcb93696a5a5701ca22e3008cf6769398e649df6441a404b94edbb82adbeb1380d2fb03c2fdcece47bf8d45732e7f7baec5f406c439b93c27fccd2fb7c35b17eb601dd016dc0ff73323730e0267693ea3a19f9c9d9ece85c5ebc0ded5e7398ee3e689eb397f36e3007c6256ed2f173493fd748a9d72b11e6e09a798f379025e520ee77305e75b0eab3625acea1d566dcdfd8055803bddce737739cf5c8c31c618638ced5cec947c9784c32fc8666fc7b81f8dc361d7f39d3b5e68a11cafe5774f386452d08f664938747515e0a57f3b978bf3b41a59a11a595ce57eda742e2c5c1cb22b0875d1ef388fabbd6953fed436c93537ba17f818617a5c70baf8721b274a58dca11461a64fe7c16bf5aa8675c18f37e675fd63f842a4c74e697c65ec279f7efa953030c24c376d0194b0e91268ba8c4def9b29653f65d04f6efde49b9f8cf3935d3f39e727fbfce4d74ffef9c93020d94f0efae9dd6928205bfb6651736a8da355a17bc26bfde6f1e5ced9b777c1de5663174900c2cdc724fcc027f631093e3adf3d7107698608d3de5a84a0c907e02312d0e0e43bcedb2a7f280d726e31e4ed32885bbdf2bcfde58c55ecd2d3e82724baa43ddfb75fdfde3d5487f3f821d1282122fffcb3473c2b631625e44867a5ccca1a560d6b863bed3b621a215921941091d31a96b7f9f6091139b547a88b6cec94947dfb95b3cf08c9e23c7e454856c89e3a357d86c34e4def668feca06f8f5ec342098947fa25a38c71b25ea136a71e59ed72d62bd46683883ce491d53d325425ad1cdf7c7ba90ba07ff7318b0e78e0a735b10b7cfecaa06fbfa19c459876d316c0eee9150a4c054d5aac8eacf67eb54f59af980d4b705aad562b0ad60f90c8091bc0d8a2c5ba1d6b59cf3aa815637fbb67a405149680d362dde9fabe33e7fb095d4081498b75e7ce771376f062ddd9e3f3f3ed77027d3bf705d1c918658f88c8311e054473d62ceaf42ca52d40ffdb3de0c72c3aa082d74a40a470c261fc97760edb5d00ce6a2a03c8af56ebb90bb01cb4e6eca30d245ccde411163a3ebe54f0f3a325e0f8f83a4114be2b82ccf1f1a58218bcf7f165021efc057dcea40c3025c6887ae972099b4fc984138b0a722468e2f1f1a582333cf8f1658219fc057df24ca4448233e4daa6692faca273e2e0205603d0eb220920c8640d38e0f9eb63c041ce5fd07b808311fcf52f80dec7170ea2f80b7ac8ce79fac9c38697adc821758fdeab49edc9042e017c7156cdf9821e7f197d7cf19481270c7f3d86d344d0c55eb147a79207f943089290c3fa01278b19ab638f2b4a081ff1c1e6c5625bc3ea2277c7d0e8d6e0400523b45848584ee074aa4277b3ec9b9beee64905cfdb3617962c5f72374f22984cddcd1d86a75357a1bbbbbbbb793a77b3bc024bdebab58d35d9dddddd2fddfcc2967bc6599c6926939461186551c6c138d86cd6b18e9d4e2f2f55b8b9d17ae841d380888991dabc993772462691c915a413e9e40a2d5b3e11e68cd3355d11280231b7b6fd9c45b61ed289b8cc28b4ec8d8bf4cb1ed289c8313429a920935d210c6362a6262b7d13ff80a483a4cee65d8bf4d374108b479bb6887c7905cf939be4298017d4bc33f10f4864583cd2d9411dee6964583c5bfbfcb6a8205a93b20a52fe8812e8227b5f7bfc2a1120da48c7debd79bbd4ba393f9ae64fb35302fde814fb4f90e9db83b85cae76cf3baffe400199be391428209bcfcd4a1b2b5b4248d7c72e7b2416d287552367974b58c5bd98c81fb9c591903d225bac621f55e9239930cd36b59095d44a1b8905874ba4e9bf7aa515cf118852103c9ddcc3302686fe6095e7ec42046195fc1eafc7ebf1ba598881091e2c0b3178e16f7bf13c6933d04d8c55977718c6aa988518963c3b77c1aab88513feb217cf5cfce526bcc3aaf862c115ac922378f66e4a669ed327f5aed3ca245553c221d350e9db6bdc217ef7ac53ce61d87eddc74b10a26f1b824800b72779fc689ee896aef894f6477379a72f2d797b4f972e915f8675121808eb55645116e8f1e3598461ef9c1e35012f6fc1ce5bd020a6454d8f8fe2d44a170fc02b5dec2875c691d35288763746d36ae7602535cfdab5daf957675b1a8632f115d32eb2211b8067bfbc922e4e314af3c8434cc481bd2df5f62f809beb704e5dfb82103db5ee2fbce26c642dc43cb756c1d216a0ff07b8f8b657ee3cb35ce93a71c87e9a69d3fea09b1e5f2e2ae7a564e24e264ccf795567736a86219f73ae79ccc47f4eaffccfe3f70d69ff2ccbe7afbd73a2c8730fe15c3e13cfe43edfce9b173f203139ea0d8f29c2618c16c0f61b3e8f1cf586c7c8e722a2dfc04133f26e547b07a0fc06238c1744e7239ff5c8741cdec51ec0f892c1cdc7079d468d20b048ffc8de9a1f79c982258f1f8d4e0ef776f12ea28801c6970c5c3f7217efdad3e611c091b7388a778b4ba7496892110cbc29b2ede30edb374aaf74782a65c6a17432026dce00de58903405a8c353507ce42e2e2ec156af8e48960e8b6af1c8d2e13a2ad829e92526a03fe963165244e16dd4000374f1167f79217d3f8658f191cff04b953fbf2046ee6251418cdcc55dec90154b471e676984726971930dab4c1ca25c6c0f7e97919b707a65d3aaf8caf9913fe3a59b6e4c2e53925594c22cbe6400f4d253825c5a461588144a5cacba602b09ab62135ebafc68804c61454b82ad0f89d0532ebf23449eb2d3a753327ef6a084e0f094a7ec91d9d329e938bc86d53c003980c3c3b9d3524b61451d71e38647567f3dfa372e40ea7ab9922de962557c95e08b974e93b02a3e4dc2e18866040190c5e571015eeada3e9a91e3a891d5dfe2339c8455232b9dba585572e99dcb17a58a1ab9fc91e7a8a891a539acd20cc014179b22e350fa04028862238723d98c30231b39747be77b386a648d2287a0bdde7bae0516623fe3a31658987dd073fe790c64dfde8d8a3a22fa117a2487b742ce811c1e8b88ac90779af701e19cfd468dae7d4544cfe137ea05e48f3cc547a451c94b5eb2773ee81d38c31e87a0530e41975fc947357e6455c9820e5aefa60a5006dd893039bd92aceab60a1074fe8a08b1e84ea7a48faa7c9ad3abc8920ed6ea3645465de0055bd773b546557efc7cccf75c11a608a0e77a49da99fd7402c829b294598a13ef73cda5cb8f08ce3f1b390c87606f1bf309a18e3a223a0ec76139303d7a64cd3447568e1a59b65e2aa35eeaf3d24973e7a5d77aa98d7a414e67f38e93a6daceb50767f2192ec25ee8d95b84dfe46d43223e22a49b9cab139cb3abc8545c3a17e1577193153aba08adb8d105151c4a2a7698b64851c1aabb05abd8aed8ec30e930fdb0eaeaa43cbc61d5d5c981c3aaab73c3f90787b75d69a9c0587575a6b35db94991fd70e9295f0071e9293303b8f4142741b8f494a017979ef2c4864b37b5ac4b37d954976e72b1ea06c07db8745312565d00788f1c565d1a5f712961d52d80af24e150ee20e00a237a8ac022888f2f7171e9a6578b4b37314171e92620565d9613c0a59bbc60d59df177e9a618102eddd4e407976e9211e1d24d5f1cc0a59b6643b8749313215cba29a8e4d24d4fc016c966e462d5edc17d48c2aabb83f390330025322e5d65875577c5a5ab5cc1aa2bc3a5abf4b0ea9e5cba0a16acba335cba8a0fab6e0dff5cbaca12565d16f75cbaca8b5517a5c2845597860a10abaeca572e5dc50b56dd1c5c0797ae1263d5c5c1635cba4a13565d18bfc1a5afe0f4eac86409c0a5abc8546afc2e7e2af6d6bc8adbfaf2006fa99e84936a8901def5ab463824dc860374d8f002e870f7a1c3fed0014447c986bd3fdceaf0a1a3002d0ed0e1f5013676b8f7d8414363007baddb08a2d2ecd841e3363cd6de1edc0fa7b146a80f7b69a80e1f3ddceab0f6be78d561abdbf0fcb0574787fbd841a3c30bb083a6006ec3d3c35eeb0678b1b77a106ec301ee2d3b76b4bcecb0b1e3c586dbf0b8bd3a3bbcc5013b1ce0a3c78bffb0e140dca501e10fd7c509608dd0d0860701a11161c943177b11e02de10f46941a103a4a122e296bc37309e06f8dd05b7220806871972028ef405823209802c26d785aec2580a358235c0b4a110e84354211602f10340c42006f095b5aec7547095b50dc86a7087b75420f920222f41fac1110881f5abc08b717c583b84b03de5e02b811a99293ac119a7a92a75c52f603363c6ec343007b7552fe0d28a59cd40002bc3b025cdc08076bdfb0363c57c895711fac117ac387d277007b1b24f97043c6de0478c91a016fc81c005c00e9868f1800e6b0363c9788cb03f561087b490e5a239e10231f78b0d7071f000f6ec343b257084e880fc01aa109b07700f4c6104238e90689646fc94737ec076c784823b7e11162afce0d1fc21a010760afcb5823e00064dc8647087b493e44c9de910be1e00288f003e4f081e638c0e7a51c608e12e8363c44d8ab93c30fb0001f72380f0bf08107b7e1f9ec2d3911f6827e00f778cc1bac114a85acbc9e5f1fb1b246c0a900219f35c2bdbd9ff774ae46b8d741c2c3616d786e02ae0e1e638dd0558c378379a583bd2b8fb146401c3ab4bd27ee089f316f7005582374ce3879cf6e9ecd6ec37384bd3ad36370dc307d068e981bdc86e7646ffb897d867bd608f73a3c642480be0e8e15c52164c565e0b057867bd688f7f603363c9fe7363c09b05707870be1b1b257e7c659385c076b04fc0fd8f0ac74701b9e157b3f5f9161afe7327ca611604411418838c01042046100203f7cd400788f0a00a7a93878012a8c13a0b2bece4896001c888a83ff5061dc87da030f75076609c007507170990ae3abaad2a1e670a45902b0363c01b02b381c4a00d8152b38941e5371b03a3cfc860ac3c3aeb83a257d47c5e13aeaf454c5e1619d9ea3e2b02bad4e49bf51a75db9e994f4975ac36d5416b715e5b5d270af35dca5b2784b45394aa5e1a55ac3c1cae2a48af251a5e15fad615566cc62559ca0ac4a100dabf28443e92a55f433ea56852896e0e44f9563c28d1576f0326aaf208a1f32fc4add4490c5ac0bffea917d7cbd8a4b15ab22638faf37d5f8312995c8c83fcfde9af7bceb95edf90c7fd507ffe8f3b65cafcbc9b4bf9bfbf66e22503c77bd4a847bce7984a34a448ef1edd922fc1ce7449a731519ab545c2a4e5482549efc4aebaed894fcaedc3c8adf152a5eaee0bc741a359e80dcfa980286184af76aca186228fd33c34b1fa5e1a593c278e9600a1b5e7a298a978e52630cafe90329b208237d86516afc528d0fd6f8a41a7f54a317bf04051070f197f6bcbc348786ad7328bda6cc3a255d646ae11c91ac14591797f0ca024e8b15aacda2751b410e2b7e34415264a525807e53642fa308c35f90e6bca44a38259de670289d55da424ee9631621e0792e8101f4bf29b2d1c72ca2f0e2d9de94a097293254ce0b1259b321a1353490748df43e045dd300941eb92eb26420289d5219a9a43d1dad6d737773b76f9123478e1ddbef89fa052f6df790bd9452dbb6c108231d5c02c8595b02bab9a04caf4a31d5b2bef44ec11e2c4141060481ecdbfe957999b8437cf9310b2954f02c787d7ce5e0c9113ebe56f0e4756438ec618643e95eb3643e01ec5b87b465e2ca484f42269e33a8e44bd675510f33a6d00c08460000007315003028140e0ac7a3b1248f036d1f14800e7f9a4c6a4a1ac7635116c3300a840c22c400030020000001323443430502809e240e7b273028cb9cfa7abafa8f94f3785a5f7f5f9ae4c797ba2f0a9ee60a11d611b88f3e380b77fa10ca33e5b894251a2eb17a3c88259c1adae6e7be465a458356b07cf87ec2535617daf6b7610201ff417363c0430d1f8a9dc8314f167feefa4bb8151f98804770a3b5012f4735bbefe1909f351f981a7aca3aa99a0c471daca85813d10a2702048d4dd2bb7d3b67e9daa4b65c3c651237bbdb19746fe966fde74ea7dc13766e9d6deeaa61aac924e3518324cbccabc37b230a35c1e98b912a63f89e2ce401f842ec44f958bb25e1a9c4ea394f81102312a6d7efeba2c288066c269e9dca8c58764a3b5535cc259d404fbbe5422a3a885f0102d360141f9b7030a79d2f1f7950d9ccf08015d6cccc02876ec8f18c26a814480566cfa5d90646e43d2f1f54f8243d2f9aee120034b0cb68c84d126750f84e801c2fb79562c031cd6009429a8f731a27c1b1b9d6f9f8b66d330205a252c488cca63e20e3885d84f7eb5c765e332358a0e4b237e93aee2505fe8a5c6c702c604c1f66ac02eab6f614d1da101d71cb98a25ac075e27410ae7959b0b6ec15bf59793188b1ea47eaa8747f8a9774083a04c6c6d0ed25d75e4039ffb110fab2f1f0ea80398104958d9ff57bbee2a01a830245a47f1bdc877a3f8f6bc9fa799f9c461688ee06ff133f33154976181e4175358147691997bec5c9630aba5954866a19e20f1124bac80f681a7ca7bd6d5e77a4c2ecd97e3eb7e6e3f72b0c9089c42390a4a9eb0c78c9eb23c2b42ecd2901d610c0acc0fa0b3f3c4cc02952760fb27a972d28609820348bd6ad7c797ebeed80237a255894e5af12e8d7529b8b4de731fa2ada1d89f9588aa68e5e22075e4ef7c1d3e113d31ecfcabab4a7f68198780f51b3801665125f5b14badce6336f84dd798ef4c14de5e1598ab35f8b09d03b519c5b7a2ab92baa0912053623ea139a714be31341956ecbf25535e83272ba138d5722e205eb28e9a5ae1c83e1275a31d35038c9b4c3b59cdf5480641a10bf11991f9059064cf7817c7ebd68d541d53e1e1fd60be2731910be8644dc47228a16947e330e7e6e9e0993d0e64436421fcb6d1773f614e8c7dd61693e32e818eea52e81bb1c38aadfc0605b5a2e29db75098bbce0f616ff1f0eff01c6762e894facefd7d58860bfd10bdad0eda62b80fd9260091489403c9f076c65d95c896efec9257afc9cc280a3f09a247c33fb99c46f70e5343c160b5f9ed4c41094bb5f0700351294b20a6331e61c23586bb6c6d810f8fc58255c5cc06e6ec2f260c5f418c3e63c9ea94a838e7316e23a5640ec898cbc2718bbe8b9b29b01afbb8af625763b0a3a8f5b0e783e8383507ec38b8c94d7fff2c50a7bad38d3011de1b5ee0454e164ae1184d257325e57b424082935ae0ef05845329f749c5e97d62c69aaa854c96affa5810d8f3f8cc640400a1bb2a7315e72233f490753dc523495ab60e7a26114fb087c63b45d69acaee1b08ba77c8d73199f037509c966a87c975c5f628c5e6acda9c5e488df01f44428108f738c3063f2910434537d3061d139af069d6770cf98b860626a53ea3a267f35a6aada4ba60b3d4e488b4c569b9ec77c03d8ac1afd38e29b731e780408eeb2e9d7771053e71e5534a06d944f261e291c64a7818b69c35fab0a8fff76a6a43a542adbf1780ab4df2e75cb67fe2b4fa28f2ac19aa259b42f93ccc665f663bf244d356ece7b0afc64921285188fe156459b65cc70c9eb565aa47d674864a6214ca41f0903efda5ce8ff2ac08d7b03c245b98d57d80913552433767388c0b090a0a64853919c06680df1cf0ad8a97956536549bed835791015801f7a6bd42a20eabfd73e721332faa617a5c732ff3b6231f3462351483c1e04e51a783d8ed7399686cba38fb4a91d21f093ae439f75ef99caa58afbc8061791376e2005b8418b6d5eaaca8ecbe2b5f5bd0fb1d1fed9c1a57e63cc2c72a03c67174d43a9860d18438f1a600c30705bf93882097fe66ced31b0d01c6133dfb52d6b4203dfa7c86d11acd54c2b80079ce99ba637de86f528cf691b5487a3e8538be9b1e0d569ffb601928a6609a16e55fe7fa918553e483cdcd6bdcb8756d53ecb35ffcc03620cab5fdfe8dd44446fd387329bb355967edfd058e0147687b755a130c461745be0d32b2a0c7a114a040947a621e18767b9bd5c6981b4a15332ed5a572594201dd962f21df160da67c2005ba51296c003430214e51cc2091a7672d976c9ffcbdfa67302cd2ea098887338c4628eaf4bd35a8633fab1d930dffc3a9957b5432f91213f778f3b8b98c7c7a59cb71e10bad2717ef5a05a18820012c7f35338cbf16e3b86bc89be8df7b93460e0b9e123189607f91214ef670aa6f9cdae21cf44d313dc9eb369fa111d7dd6b1777e7ae8dbcf36400a151b66b415ba5d12972a560e35c93c664a24eecf63bbb5f4fb7d73000c5cd3c344854c2441a8724a7777be5e1cb62d7e1cd495b8f63fff6e4882252827c697c937024d8c20a4c5100f6ea2e0933258e112349621cfae133ecdbdf5cbd406493cacb4d28ac1a6805f949f7694c88608b4e10de64fe69c3c99a323c26a4afac079df3e15066d950dbbc0ab961bb35048dbe1c7474e3b3fdf286c815202f5a34526215cf1cca73d572f5c3a810ed0409796f0d68295b893da01ae464f7757adf22a89d641eb5a18d0cad4ceec072f64b6b07d60d99e4ecfe61edf6b942fda110f7434f5e8a24081f1ad24c4bb43019e75a73ec70fb983c2ee787ae0e847316728d4d0fb1fade96a6778daa3311fea7ec84a4d265841ff1cf393742a578b0c6a8175edfb833a5136da1d32070071eda7302611b6e1e318b5b5ac5a6fa5233fc155e71bbdaefd73007a6e6ae5546c489db6f86488c8b33f7220ef218d68878c0339e4b6c092a904221938a0212c10bf821b559fb5e7bd7867e2d2cd19cef70e44ff3c6c072b16dc20100fab1019c48bacd007e0b81f5757acec2c1882759a5459bdc1f7a2e0a58974229d67ea4cd5b891deb660b43e192647e9ea3b700a5af5f1a218c4fe6c36214c8a947249480219c98dfcb5361200f4dfa8684a09e911195cd7cdf0eb190ca228ff4395e060185d707ef066909be04ad8e09cceed1f5c067338902f187d46eb7f3ec48f2fc81317912f62846e0ed3c6e13a6e696dad8b11a23c84e8057b9c669f3ea607f493a3f2b8f99649bc1ddbbb3faca517fcf293d66061ea88d8430d62ebf4716d6e5c524f7da675abf9f659fc67cbb52125e1fc41a8057e9ae460de41c895c7ab2e5f34e608c89cc2c6ef1fe23eba42a5ef9ff0bf51340d89fcc7e5174d7ac6629e9ba98727b9d090525ad8ea5dbe04c7ea255e21ec7121bcf5f92d678345b40fd1fcbf8992a14a0325ff2d7ead00b660dbd9921204d6c353e108ec8f3d6187cc8e4a07a0a7e784284777f4a34e363d0c77ad694e6064b4368503630d130aa917d56db09408f54cfa8b442898a04490a979a8d9e849bc444a4af289e6f7d3f91b958fca8b22a5f5dadd4f537973a08e101e9925135cd03561cee159f0c40cb0880ef0aea12678e62df434751e4838630d5a4735af0624417edd7ed0e2e4ba81371e77393252e9952c7c06830ee722f9bea2b87603723000dea28d0e02bd4d9d30611621e43971fd274f8ddef6f39916a9adcf277d9a3e725dc6f2280c6a74130c5fc4804616e5d78ea55abf0294fe76570cbadb890d4327dd72624ce3e21559dba363e2b72c6ba414ac3c66dba807152216b41bf4e8a07a19ab57dd6e0b62f5e9b9d9381a33e14ea797c10e04939f219b7341b2937c9732759e00ea220bacebb588fb49c2214d0c9b6e0b52ba300cc05364d131911f48d0ff35613d8384bb57ea8c98db50a4dcb1f43a1a6364725ef284bbc2aab752564c3a3ca9cd47c91ad8de805cfc3dbae548766f94a9adf8e9cb52256c6a2ce0492bbc79ecf229735668843b58ba5d28f1719b65f55f7a48eb48501fe959af661ee79b842a2c62849bc6c5c6dd0eceb0d5c9b7d9bf8e311d1614e489ce7d30745d6e06dcc4d6f64f7e0580b3ecdbf5f7bf0f28a61b5f08441917ff20b0e9c16a14a20b007ff2d7783a0eb8ffe54a1ceaac6c94dbc50d742db975a2c7dc51eef145dc4950b3f7504cbbd0f19f8fdbca4e0d818fcdd21d3e74a60dd643b86bd96a694a73b2d713062941fc4d1496934f0f83ee1ec1ef840e780b300b96e250466ac817ed2d77ab8aa6aa9c7a4f995dd4d44014a25c719db18db3439e052a5d03d70eecd11a47effafa138df44263eef0cbfde85f582dfdd6f70f152bac1286f7f55f8cccf61cf72cb123fa47af751f9a32d2c0db429e68dbe4342f40f46b0ca8c342228e44d213c3753bf7ca1c8031604c7d528456b3b06dd14f54ea31e5c0a26d7814db647ad12a0f3c4cba34e563cffd7fb3d882a7ea906cdf754e745a3a7959600ff5afa9b734f27d83842eca678ad1ec622ccdea8823c3f3176b8efb7115a05e93f0ad50fb7bbdc2e14895624dd18aaa35a7982ba641340a46115a234cfc353c2f3ab336c6dbb235179d2795823391c08c81616f4c1562273cdcc3953e44d68a3ac44324b9713975a9d9666018db023b767327221a197b372351a24effd980b2f79843c50ae1aa0a8973b25d54452f0b5e32d2c4d255be2e0826ed19e6935fd1a5f86b5873543097bf1a29f4d57cc30b8d8fc7dbf267a0ea907015b2de5e74da2d229729db0a126756aa208e4aea62a10c6002f7cb3d7ea953f9be3e910181139440cf6efa64bc77d83ef51da0956b0fa8d6a78ca2d1a881ae2ef19a1ddfa1daa0e0df668541cd1a610e1abaeefb716a6c41a5e91d1ef766b87db8d5c984873f21a4a2e3ffa1e70dc202d20c6e057413f53e0e3b165a6e8feaaa5d5959e90e19533512710b8ad009060237fdfe9ac1d18833c6433fcd360c4defd6216e0488da0d6ab156fd23c411eaba2a67c67daa8e61a82dfefc82eb6666112106d5ffc12ac5947ce14afea363a3dd18587b0fd5ad4f0864d038248e836ff29ec94eb42d1145aba7642f76effff1be747288c3bf95325e68c0d8db37e235012f0594144fed435d481c6e6071c585c515c2b7c52eafc6617b1c311d0e7e712907e0a6123b5add121b6bef703510ffc581af6cf215b6cf17e6312bed4ea02c502d4098e382062fb1e76ab251fea322a831835bca9360252b327a2d74b92ca0ce5b9e361e7b5b94f188a6c8c0db6343b938abe5ebc2393a56cde099717257df680af80bda3a3c137026753674766a877961d68df95dac7ff740e1b0e8c04d974be7a3b6bc26ba89c2e82ef09e16c943e505eaabc79f41787dae76b89e39fe537b18a2544108d30269339c5634cc1552b23bbfb9b305d2e840621c48924aff6cd9596a3f9967b038f4adbb4f56098986f5ee3c29798c1221c3d785ac70188b3469da04a8433aa4c7cde3a917406fd3fae23ada1a48f54656f79b39272e9739aedfb458deded0df9262375d4d4bd2ca67de5d0605cd3ba88ffd93dbf61acd05b80c2630fbb080770cb2f129dd642e9a0dcfe8a38d547b879454120296ca3d12c61ec35581988846555f2b083092cc13a85ced8bda97f6bcb1b7616011da6778619ae78ee017fb0c92b3a701a33043667a8e24d78e152325d1cc50141819436286990b197292fce22a26fa396c0828c486c154ed1cda8e9ae76b525161d05e0c8a00f92bb87d822e38d2b8e638966aa6288bf478cc802e84d1c0279c3284c6e2a33d93a8b5dfe980d1b17dda7bc8182d1afe2524c7736a28fedac880d3e2a8672d5e98818fdfe2dd2bbc8bcf994050363f6f2c146fb6286c408e3c7090c3d513eb82d687b8f244342ea1b1c72eb41562125eb46f73df31d05e88c8229b38743c801665012cca49255865c14aa39a95a4146e48aceac6453064e6dfd03f04cb075dd6822194c68336bea0400c1d7178157d5851ec45b2f17470978d022ff3f7a05e2e476bf494a79928509f286a1cae8876a8e454b92cae3564232877597626300cd44083a4e39b8ee40a3f388c2123f3e0db90f81f4dc16cd1d6463229b0e1cab1e10dea415a74e9d85e4c27edc97c6978eea14e94d413cf18646d82d19f878fa2578e4a83f562315e5295ed549d5cd21b4103a24b291f6d8943bff8752025c53baaf59bef097a794e50d07b8314993f8d3c8a394ff6ff45bcfdaa3855390ec23fa29a4351621a57b2936e411d0bd25ca9a137e1fcc8dbcd782f015bfa12daed274287ac03614ff1d7f2625e21c2a13b2229b2b17ef07a7ac77373999a8c66702ab970e927d7827f23569319de6813b7ce4f281ce6230b78758d8f40b1798c16b81b08b0cab9bc428b9db4e0f7ce05b4448cfda0f86ea49fcbbc64683e617115bd2a77b138e597a3a3c2112da629dea33e01577c731d4565292e9531f27afa3cd5f34ee87bde77a8d395b251f828688ba4bfee7a278ca47a3b1fa1bb0801c4edcea6cfddf3ebdb54f7f86ee04c769c3ee5a1af821220775aa1d710567eb8f5eb9bc859428be2adf4d3b15e33878db4af91a3352f1ab3deb99afcec144bd581a7421accb999e2e07a7db1d58075683b4e9c6a1df076d4a37ab5504be94a0aeb9befbc5c28506cabf43088ddcf6fe345df9b40666ad3f9d371b701e4a067160501ade5fb513119c29d91cea6233cda84a00e64419d8422f00e9ada659d2a3ca0012028a0b1da824eaf56cb4208d769a93fc346136ff6dc3515dc39f1a96be2fb81fc51c139d49f45455b0387e77c4df82c9aa60526bcab18f23209b163015d577364ce19dccc1adda7692c67f62296af3815432995fa87eae8297acba443292cec3b6693e580b5b757e3f9b905d4394183dcee753d5f33ea83128fdac645a9b5550a2412e163d88d04b326ebe7ac61d0e01a94d1bf7b5a1d0cd418cf7554031c8dbc874eca983d83735c5472c99ac4b4ce4350e6d31023666504cc97b908cf8d852ebc339b16dcc5faffdd2d1b021c4733e6a9c80f75d7f2b09990337101d522d2322da98b4686d59887d60b052ca1e01bd76ee881730fa8b012a1c239b74d71ebb8bec23225ebe3fd3adfe6f09b6f7366653003ea06fe0ab671622d4713990efc481912382a0f8c080dfa73b28b82b9b2545b8fce8ac4185c51321ebd0401a9588e6649d0b190e1601480fd6471c4b4c2e17850f72b9e81de177c2fb9058ae4c0d13f59c22c5666b485c703810e07a2b90e05b3224ee286f59bfe59fc8016a1434dda2aae7f11b364083c127c73d71f85b52fdcbf76f59796eadb974a67e81219f101c0cd734009baa7a8bbbeb39897c37648eca284f063890afa16bb556d97afe0b9f5e2b995fd2767a936a27220192684821976434a4bffc4d1cb87fbe57239a0e82579c565824f06e753233a990b2e216258af209262059a978196f54a3bcaf375b13f0455af40e410a096b020f032046cd22be7ca88337d2845e2da2389dcba5f093c8e45b5e5f54c2aa08c4766080416576d6516dc19ed8cbf4694b1905414f4a249e754530d13e96239b1716169118139b4ac9372372b17321442b7f3e007ebe031742c0d71603171e1f19f92368b1490a41addea0e659fac700a8d9d06bc8b384d576cbf1e6439e179e23ba2b45646b42181647bc455f878a66ba255a26cbc09b68680928c1ac6b6ed50e55c3a47a240efc690aa5a18b30cd5b265500a5b405095a75d626cbc742813f2d2bd9efc5f7d44c13bc4168772333d92acac92ba6e6a14c994838d5b4c01840751de368b344037c7c654a9a2b5c603028b5004f9376695ae9df52355432759bf17b7e90c478578ab33745d587dbfa7d960e234235dacc518511be34ec5a087afbde203b8da3a9d5dfcc03e3c8bc18bf36e97d182e0dd53aa1e72ae908f6ccdc3ce8f760e34a98dfb585ebffb211cf7c8ccdb3566f120caac6007e1d753cf3e0e3ae1bf11c5393997e62e9a84598363ed991a89a28c3b0709167c4b3e8395112b174d8e74cb3c7a5b7b5976791ffbb064ae1f4f68a27a30d5144f03af3fa5b41e14b080fe2090448d1c287f4d3d12f00224741df08135cdfa1e54409fb2f6bc7073dede047201bc66ac74368298a350adb1d922dfa76a0a908325a4c48c2942e838a875b55ba589cdf56a712fd2ffcf90e2ad92689dcd82bab0644db5c8e32b2350957732a37debd1431686a0789f5d3c29661c10bfc40a6ec2272787eb389b1818669b678f0cb4afa1ac610ffcb8010cc0f2b64b5f5de43aeaef0205d450e02b4bdd94cc47c6477f981d8556cfe77e12b8987572ff8fa4d698d297300231ae02a34cdd374c8d001d93db26791cedc04780540527f81b439e4491a983c6071692e7a915efa82d3175d7cb904ae4c80b3701a56ef469aaf144c33441d6b00dd61325513bb468e47d3fdf1f79718420f2850c04c0a7a8485d955e6121e57da7b5b8c9b705535309c00ce9fd0aa8a4239183e1f473b765a2b51646124863cc5a393e41b39bd6e261f66ed238c3a8adc5bbcf567fd42abe68396008ca25caf4281e7eb528910bc1292e8718722177566290cb728b5297f219486e00ae25c223d070379b1cbc31735a72a175f1040416a2e5a69537d86d1364b30b42dbe45aa2ada5804c6ff891b9a406d2ef5a622deeaa719f0e2ff1590953a4c9b246372de2d82f007e458d9c4dd1454b7f0a7bbe87bd08414f73fc20a3fa3afe71dada26bf54512093d3fa45c8a660020a8be8ae57236756c20e2bd9638ae22017dc6cc236d423e40758ccd85f87105e6e68f17fc8ee137005ca53eec5e62d1888a5d1e03ecf52c72f6128a1393ea257e816026d9eab7b8822979e6e4d3ca7d603659a90617610a974ed219bb8c071524b7187999d52ba129afb43bcf0afb5d7704001c0888d510981d8a1ac1420ae88159486c549573f956965442cb53f56612cf721f2e2e6969295400287b686832b81be48df362b3d691f0083a0255b4674b7cad2ab2e34d312d6d3322fb66e45f7275630cf85b6230e1475026331aa24118ef0877a4b5c48ca051ca6aa0df3c21f673e513d273a22cf139764db390a67969062d9ffbdea4c898010e1d84a18fbe20375a28fb086b1f90f69377741ecfb50d4cdcd2f292ba596fe5c5c113ba0e46dd4d854efa804c07e42b002e730b8486ebea45da9e4f5f4fc527afcf05cfa928ed21cf121d63076c921bd191776ec7b881037aed4a954b37beab1c32360ad18bbe2e1c11a6b000bb9590b20b6057738cfcd5eb0588204a3f4fc1d831cb550d4064b2ddfb150ee8ce95459fa3361050407008e5b3176ac43380b3754acdd8da8d8c4f474d864647367242ac13ce57724ab33bd822dffdc7607008152fddc28d405cef33ca9986df47421e3269d3a8f44a96c594df2182393c2c21c2a7a13ec388977a0e8195d39070f07afd812079f957865e361c9abb7fcee4680db27ebc2da76f7bf785a5d4b6ee17718db3e8ed6a3001edc00ab36bd96e27f1f34ce3bc21e6fa83cf4f543f2ca9519a918477a47c0cead2e6c6feb0ceeb412ba1bb32328cafe3a49becb488401c5fa6e7edc7873276948737904403f2f602dbaa8c8b847cb29cbf92e8ca105b83de761d4b5cda24cc79b89b050f7d6758cebbdb26d2050abee65872c1c44c34b81c28a7e246db610936670df3deebe3b3eb522c78f940b6eeb16d3f6bc968cc2bb0451634e901c2943ebc3163c67a81002b3d838d310e5ba881ed830afcefccf909f77825736d7a124614a7ddc0353990b88f1583aa58f2cbde201aca960e1ca1c9b8ddde932cc5bc5d051c38e5861b876ea7338343e02650e1b604b8ceee67420db0efb3ebd2daa5d916880160e577ef46df0957c66708e92de6f92bf720dbf9d0f24dee86c784cf52d829827d2fe5788e17335c9634dc5d3296bb810747b10430a6a5841d868d627662902af3cba5b85090bd0308e5708e82de033ce1b06819bda6228526ed24827cc8fb61c5b1026588ce4923ccb739906ab80cafe527c4935afe14a1398c54938c350478ea7bf41e10fb65e7549b5c2d7d58cf616dd3c7794ae103457ad3921b3edae534faf54c5fd9e6d68ddf0f3e4b41b221a8af34d08924fe3833ce88974795a2fd801d369b9db7b7ad53a2f8370ed11ce787acee7c43025faadff46c721d22836fc53a6e1d3b70cd20a30bf2a07f696ca1d798bab37bae6dd94b137d5332bf06a8e186447ba56e03987ab91b7f1750dbd911e099a4a69b42282f6d01cdbee7bd97ace855f37cb7c04eb2328421369ba2bae7936b6b72bcf5014d35ad97705f008e3bde60626f207197bf7573501c2124a451d225c8c6b077b81c5eb82076c2ae7967ad752c3d177d42d388b3d31607d86e82473ad1d78cee801a50873080652cb6bde701d7652b0a19e69809181ee6d05a41522805a843dfd3812318b1e9d5bae0369ecbec7515882f2e42043cd333d3f46aef3e4c85b4ae63ba797c891388c7bb2420b1c0200801c8a451cb06d97a3f5da7bd1fb7642da1e52805757dd168f2f588e36e20abde34e1e9fcb466895405933a73620626528d7c331da979dc7afe18af33eff5843c7afbfd0442ec3d0e5da81384de5df609f4bdf659c7f66e29646d5f148376a17d3925b55fc00f632f3184f966786848c01f38cb6e1c02fb3a9825c6c6fe171cfa031ecf3e656072da1b4680fd626fa937870c8d35138b56e6532e279f20c7abc4807f33d34a26443ccc8d9e37cb8bbd79fd599229dc5b2e450ddd45229fb408e99c2ec7aa598e53733b7bb42d281d40dfab01d20961db416cee17b9d0fa4a97bc8ec17d2e5800bcc7752c8ae8a6ef3539188a007bb6515f24946e1d2f1016489194f534e0355a0cc6f490882fdcb896c2cdaa2b719220c814406527ae1bb4af44bb98745cd0b5982ff28bb36bb5a103f873002990fa2540e922249670dc3f4a89f46dd397c62f20e2509887292095dd9324908ddc50245f3e777994d501c603f47abfda16be925a2fe4c9db91100560722bb5a9b9303befb010b72c0cc6189d7160f8abd578d508011d6c0ae87a3d19d7f13541f3e50037159bf5c8286604edf6f442ea096ec0168eb253eaf5410b39c30a2e04bb8dd4144a10762046821569055fb539f4208d0feef2192659f1734abd03277892ae29455a87cc921a836e15188e1fb8713dd24e12568449929ccb4b8608d09b3c7f6e8b1c73e1d05e59efe19c082c84d760235fd4131084cbe1f04ee4053769a0f972dfe3718e4d8464d97277a4c441b21a6a0cc502980d54cde0c204071417d4b16ebba638fa048662e4e08bd6d9c40bec96f184df22388571c28b51124839b63d9f0c949ff6c3fed24c4edb5555ccbed5af1c8aecc1952b30261df1560988de8b62ef2e217de28ea80a712b597a66b022aa12688c58f6d4769455b10ae6df45e82e9edbd034c4ddff5001df88df4a9d210b30c6ff9fc5f38dd5dd4c9c98281f069829825806344f2ac8b22325eb313405491a3d39009defd89e9c6c974f46d4f9c687fcc0c10470005e972d266604aba4c13b8dacd46bfce08c5662f5b0324e502e700addaa36fb237f4765832211ab8ff3adc3a4b4d00bcb0fad674870c4453c643a88e9969fae768124061ac95c2f81f647a7e50f7b249ff621d240153bf9bd40dceb873c62df9a35d32af42e254414a9b3a332f3408e8c811f620805b8c8265df26f000558ff1c8c52b51f1dd1b7ec194a3fbb8d4a3476802bff922677957446926381e7151da44185e4d374a3d7c910515a07fb573a3a8f9a42efce8a29ed22bf6d735bd5b7452b075edd79ab4524514944999ea9d6a027a3cee93c050e51eaa2a06c20c4adc83da7f11e416478aeeeb1bc4e22ea795b81ce195a982dcf4329a5a0026857ecbcbe3b65b008b2d3a341681b61d145729bd23c22f330f091a46a0b380c72468de105c13d7e6daea26090340c8c78f838ca4d154a2d02dc1471974f36e3d18d98a1333d059ddc60d6d86ac8b300f7c4e16bccab86c6560bf1c04142e1949b80c7243dc60cd68fbadb110548fc81ac943abc4befb33314e6f66f52cce6709b86b68157c66d9f4a28d4ae3e4b08bedf9e3625d3ca683386b71f263d5fe0a26b07d518795518028e84c107cff0156780de7245af19ee30bcca1e34cd34c5d5fde9b9a2c443e59b24bf9b543c3e9390f1b05a47288dd1a8beadab6c53fcc95de41736f3910fdba79080dc76c779de824738b40e88c0a8515f6e3493b544d4526a2451fe47b3f6f8543848185696918f6a372f97d0c4cea59360d41a84ad7c92680793e35bec91ae630d57d7a62128bdc79c82844535cc6ad370f3dba3332d3c5ec388204399faa4fdde3c41efdc4f30f09502206a7d4736959841bd68dc71fd4baf97e6b3b2d0602c0f78c58bb4f69f7273eff8fa59868c174d84f71204f186e4530aad987ebc5327b60bffe9ec1de5565f505d230d6caddc213962100fd2060616a712dac98215bd3aac9c2c449c49af7e44454ad24081b3c5879375aed6da3635ff5ac6def1088b75144732ed7a3037f3176e0f466eedf032e80dfcebe5a8e4f46213f0055b126141f1cd4c1009b9cfd9016a7171d0e74fdbdc8747463bfa4031d5dae58ec79ca46c81199dfe66b40d7a644d6d539d51e00d10d1e2a4b971a354321e09a27dcae6d3b2842448bb1a1711dc0c835b4fd6e613d370e13bc424340d9e24179a08b0cf68a682f9fa3b581bb7a15dc245a3b34291231752182fbdeeaf0ad701b5964612437b483291b8e5031ae8a7139ee1e9fd95ea02b5016b185c5930cc14fb59a6557f3d9656b87841a9c73d2631e41bbd626e98b474d7c05bf6cb2bbb8d947bb3c7d0a52e2433f24d5cf8cb4c1c25c291031630fb7d24cf9f67ea31619d7bb6ece7128151c8ea8dfe20532cde6bc7b94609dc15a6c6b14f438cbccf54048bd6bfd43adc4711066f2b12eefe784e67e74e04f412891660db4e4f360fbe2c49c037f166e74fc8a6b591277c7ecd498fdc3ce5628ba49899c440d74bb215abd00f6c990b05ee4f66895e350329876195cd02abd3072ecca6abc21ff45e4d1d7de028774edc2d51a1058185a88810f5f510f03b67a62268d03b0129d2231896ecd5f7be7f2c141cea791b0669035ff18098d1a824323f2af55336fd88dfae17afaad8fc62cd392b2a35d13f74c0f0c3bd413ede5f563a350c8d2ebac46d9ce49e8639c4fcc70ffc90734b9bc251489959ed79b6be7bb4318700612e34d4d88c7148ca13a1ae03db2f90736be5c922a05c622c27d67f9b6f55c1f91cc56932a36b740a8781ed3466c6179db00e1d5890edba24898d06a3c8d5653b395b924a8dad5b95195938cd2d84e5e27fa6674d44c71414b53931f12797c4090d90bb50b11fc6370d985988e0c476a135f9420c5d912f9137e4eeb3893794e3482684ceb560d3e372caa872231ef913d1291b8f6416a956a2bd10ea9c424c5b89e471183f5f8a9622db77643de0dd76599497e83fa8995841e455775d8e82bade94975f89d91040b206d420a0c9cec19359bb6f8b42b9fc39989278ae3d7e776e0deb6ee6c02919909a4ed89da247308cc15884ccfadb0698b1cde69a521025106363c97bd2523f9f05739982eb0957d5e75e8aca63897a54637666ed9631ec5854cbe97655f2b033c28dc6c76a2cd1ed651ade8118b271ecaf34896a1ef3222c344a06c0425c8d52dd20edb8344be1620ddea44beb80a39e66a6203fbd1d6bca57f503fd98dff73322a2078832fe09163803cd1410b1485f60ea3bae971f7f7001b0614aa7f90f838f619a382abaf7c0822da6857e2efb4ee4459ee2b71998f88821e1739a5e2960c8cfeead96ca798531089181c8061a47179090b23d1bccd40dfa7abda93d09281c9306a297e292ab0795a5ab069d1bd246769c1590c032c768da33028e009fe37895f443445e076b2c4e83472a3eda0a431245ad1115c397aa9e826651531a1066fc64e0fe7e80d2494913a7b7e1af0745ebae39c77e30e217b3481cb4e0f80d88f44b1b64870a1bbb920484b56375fd2d58a42016a5c3f26d6bac4939456c0945224b9663115f8a9bda32d189b5d0004325c85647155e9f8369686300d6fe49388e9d901e94608959232c6607842b82aaba4183ac9b1fad93876d2219c2a293f9658835eb7134e8483cdea2b6f64ac7e047439a10c2919e32ee37a00dd8152c4a9bb38d8a93b3afa6802b1debd8c1db9e8e646c1e6c225e53f99d9b3d904aca0ade3376fd9fb4ed7e8b716356ddb8f0906e3d7832033a41b07a895c2f49e18e5086f8c3caff827281a920850f2d130d967df6b11ca699b83f3b4a794718d1b4812b60f670a36ad084c675a19715205c6d9e4534e08a1bb529946afe6332db92c1c2da84cb46f0b148f27c24ad7355df3004eb080ab245484bd63288b4f45194954b390d21364065818988638b0387e40711775c62052b8158d55cc04e40f783bd901159356dce33c03776baeef32d84d44e0191a6d0de1f27694bb70498694bf83fab9cafafd570342026c09574fda25d4e14a38d3de76ed27f794677c44d89378b2063e56a5f94c49d080e0a880e50a5df8b56753d9740194c8d86bd98c6731300ad0d441d08407aea4d39d541d8a6c2acc2442427a8b481f1eb7d8f62f3022b1cc5b5ca82f385161d32cd192984dcd2ddb460003c0272c1c3a1a3ad2d7a1bf0d279f6198d21a8ce889d0778867b56e0749369abf441344e1d81f59be1a88ff6610a757deed061e524fb6720b90eac453de73abb525c9ecb1cadd4f1dacfcb097e6654a56c1624b48e51b5bbd5221e1080795ab84b6e248d7f1e3013b2793f7138d479bd49e9916d388354d1838dd7e2aba8e6576483d1f6df894bb62db5afe3525a9b6722b01dd1a2963995245046b1df8f4ee0297d051a4ee9361d7a4f139154a92aef26cc0f149e38bc366c64e743e733f3b5028fecdd72299a92e74bfc341f17a2e955365657b4ab4d658441dd55f84fda0ad73f4a913c37e5461014038ebabe42230f5a4b576f6579458db46ba4e90d422a8966aec45b15a86bed4a1286a1eb4f0aa22dd354d097ddf8e477188ddff4537efa28b842872b279b987aa7658f1b007d570ab1359e2503dda199158148c50340764e020385e55448b35ae0f662b4bc86acd10c1fdaf13ee952d5594080c1cd73d3e94b9eb848f6772ae0fb8446431865832727ff775c6dce9014bf79ac8074fcea82768bc5be04473e828a91c31ecaa9b2e81278f7a09247a80117b63e4004689b4d526e7be17f5d244b7923a4f8f3f713a850f7d6d3fb7904d5996c0560713c5ce58a65f76410481e5008a3b4013149864ba2967bae630b88610c5c6f4c891e5089dd7f73b2a58e7316706c5696938eba65871b07f1285248076d5d9c3cb512fb7fe49c785b9cf5118a7077580cfcc671468488c03cb68900f784a746910072022d67617b1dc3b8964851beb6dc2530c80747b7ba4f6a80ad5977abe350b193c8f7177cc0a40b0198b27b8d86a996eeab8edb8040a3b58252ff156bc826800fc6ab0224f1c81440895efed5148944c07c945aca865e7f3a80340883878758830ae7d72b59327defe294278616c4b919b88c5e7eeebd8bd6d0509affd48b83985fbe0265be456557197daca1e1d2a3fe0a033afa1d018c850b522d8067123ae9c5d083b5a0ac469ef687fc249544e24d748ab508daff3f074a30827bb694820af853f0816d76473f730733bf088070782f99d46dd938ca897290ad7e35078277208d2a44fdc686451293bc8d5d606784d954780eb44a0d02a86cf979583db73dc08ac3117587ec40c5d9c6ff51a092137070e826b480a7a1a3363857812496dc94387038a22e90e98f70e0c3878c0b007023cda36e2cf03bb9707aa4ed71b08c66006ebb1e40971903080ff90943ea8bdddc1c7001d5c7dd72fc3dc922c19b94943c80c8344ca00aefca14a6d327b0cb16ab903867bbf3ae67eb952304013c72f12c57d035dc5fd653206b9e40540b5c4b718345310d40c696ca1b023b3cdcdec6149257cee1e116865e0e7aef98492e8a6e82b6b22c28ed0a98541e18512a5a0a8500c454a4d7d760841e66fcc54145180c3aafa08f2e912b809c2b80d2d263d004419f8f1fad5e038bfb05ea1323f2146abc037e8adfe133bb1d06261302ee68599317bc83d30fd0b7612208f5c798ca94f00b0e0136951c1505a34f2aae5be9fb687de715575206c03366ccad3c67cda76fd64c4ef4b554897b10c98906dfb54c05d8d706d4dfd50a6bb11a88787510ead40d2d46eb7aa131425c02719366f0b3e0ea72ea0117892bb38e891aa7cef30902d09bfdbdcb8315dc7cac6f53319dc2c709f86f27846a12860d2f7ef20e9f747209066819ce2616848334556f60a59b98aa0212073ae8cef17087e5a4574548fea56900ac470f6f6584462b7c6288167f55e75378702d7323dc0098a1acebc0289fe3b636bf40a5589749445e2111e9231d850eda0bb3fedad31baefd4a5be0a52caefd4b926edfad88e7756d91c9d17fcdc3febd09df8938aa85c7aa73f297b9a8776ca5c6bec93f991626aee9ebe227db78c8972254b807094bb7b80423843dbaf7edc81301cc14400943da6d148da4148260d4a941b1196632e2b0d738837a9dbe8af36e13f8434464b3b625a926183339eb0fb10b8fc3187d03ec48cb48dc63112984fa9d6a8df2d7bd7c2a4914abb2aa9625f311f8e92a5427d0eb4392875e420bdf4f9f6f355a2b53a8acdec346d67948e906dc9c759bee3a6056806629b1df60d4c1b95be30489b66d2a201fa1696a5c4169c71c63193f26da6278340d928d380d739ae9f37509e3e5c087c411b64f0327fe4be62ce0f9d6323086f31e19513d6374494f8fd136b015ded1a69a59264b8b1845c723fbf0783122b40127ac3e148ecadc06de4aa6d391cced588cb60a3db1b872372f99c6da06d98a94d05676ffaacad59814264b96297f876695b085316da1137fa40bdaf37acd846d7945ec6e667ad67cf5921269fb89d1493aa9ec9f1c66584a908a03b7000bab0028026817119842b7dcd70d8ed32f02106001b7e1880b6c1c1007c51fabbddb270dd3a79fb97657597ae1e6a500bdc5ec4c8ad39589f27d343915bc238ca11c8f69e369c8e9f92d0941cd64a977c6ff38f307deacb4991cf17947c8b55193698c1f1a199dc22e186bb91d2d25c9459a03ea621bd1d31c6950161b023c32cd3bd11f8235e1463f2702fc0e00bcdbdb361c6845dfb8f6e89c991226e41d12aeecd86a60fb971d9fc57b4c5a5415257cfb677e0d47ace3f12458aa44f3d1871c936489658625044dc375d86f98c0f08dbcb7d275f52c75c16a00ef19e4560c339d4e64fb74bf6ff8e92a60cb52c7421eec975368f1a3a3abfd40b00333133e5048b89c403cd780f265f816731ebdec1c959c484fc79bac37cc58f28d07328d351407fae051d765113edaf60d147bd9a8a1a9f43e662a17427a4ffcd3fdc942c8a324472bea4c3cfd3e6b8af7085d14b56902d9e9c0bfc8baf0b0d7877fad178fe2828e85a7ce5c7005aaf4433e8c27cff05675d5ed56c431bdcf64736b35760fdeffd176eeeedf9708ce1932ea88b3eb3df486605f5da3a37d40341a716531a75b98b8c15da97bf729024c8beae373a58bdcb2f0ff66c202ef5a85e8e1d548130c79a00d9e4e1b5b823cf181c6b55fcb94b569be477ff57c69f36f5c45dcdd121104c12c320fb863cbccc178eb2fcf9e7de88a588d819f143fc899b003f07ad06316728649024d6fb2d20982fac8eae314209301898bade65b5f64263241df98f34e40a26c8b4de1ec4a4215a03a92ce49a44708880fa0d7165fe1ca47100ee52ba009d992182c1ede62a3a22881e6620495700015bdf1d3a3f911844a7239a280241b441c52df96b89d9aa850889b4235a97dff5fb1ff38e41146979f4cce975e1d48a71f8bfd004cee8599d39195e4ebcc2df8a3ba1f0a9ed019f6a6e9c7b20bee73e70655f43164f012d13f452f7c6c819a4010d36bfb8711e241c05baeee036405881a54be8bbf019f0f65cbf05845cc6ad07d7f71168247bad56c3d2162dcf88f01ba269d4ff8dbd560966e7a2282df5742544b79d0c9155326f163ca89afec3f6e86b18f55ad48a02e2e8e54fe8c90e8c7806a7f614ee3a4e73fa3a37f7f1d7a3798b5df46cb869e85399c43c7d763dded14e130ea1672e8fc02e0f71408b0533fa7c4ea81cd417bd46124b8e7a91d0478d431bf950db6804313ab1be18395d218f7af332e243fa8ab3315b6f86afa6f101bfa4843d9749eecc1597ea7db800e639d7d90aa6456081ca45eab1509040c1fcaf195d89f33b949d40c3f265bf3ce3cf7d957a4dd208a798f63c5759ff744d766d9c69122682f8c07e45d3c2c728dc1401c2933cad3a69fc0e75e56044102e3e098b4691a995637e4344a10c4cb7a1663161da2861395b4cfcf2e36d4ede5030ec36ba703da8201bd93f067a1180eff2574f6afb306d1755db964807886a34c25e5b48fe0e5fcd744963c0b66bccf479d7e965e4fceb2553e4aa05cd6d26d3017733ad6e766508ad313ed1981e45330fa0b3b70a8f70b31ddb6deb15719f860c6f4c90653eb4eee8f8065b73bdc70e10e14e60fe462c214ac85af9f60e900ad70e10a89a2ca1b9438c5ecbfaeca0898e7e8ce5c581dda9ff9cf6bcc5de8f11b4f9f27249a874adf6cdbf5d687e77a01d0038fc7274322cf90469a91316f0dcaf0b9e19540c060bf6a96ffd6127ba4c7440f2d4e32581070360fb4ea5a3d4cb0066d2ca31b7112f18fd32111a5b0ab600fc171fc0a3bf8e048a9a865d61e67a8ce1167d182472b9ef99424f6b0ad007747a1cae5d94bd8f44758a6ebb3046272621b2f9ae894adf0ed458d09af395c58c9730f428000897fcba520bd50ae2bd6f341cd5e32ebf7a0e21818e419d96bf3de2c1261406c246678b7d43bd6d6a8235cca04ec61c98d68b21c4b6852765d2a6852c17d8963c0d49c32318a518644463bed048a491584cf46a6faa21267ae150122bda7fa070f3587f4158e5714017c1151883b7186278385a5a76c48042ecffdcb2361c454ed163adb55183b52c8ccb4cc23fe05a067d6de73d5e8863038dc72a62be3e46a00f14ffda0881cb2e93685bb80b9744a3894b242551664a5e9cd31153502f3b8439a73134c8de46f1c36c2ed5a6754c0d875f4f15c72d38da812f9a528fbd0a16a94dbe214f147e87edf9b3aa94afb840d011f47fb2444c60e675f91096fc00d7021bffffe3f66985dde6d247e288afdb2c989343a8e4f8e126be960f30dd4606a8f80d50c44a10afc91d8c25bdb06f60af4f991eac698f67aedae0b043c11ade3f02431de9f9c801b8775fde41f28b39634d8bb9572543ee45c9d3fa722f2788fb9cc64e6db5d19904e723afa51e6cd7db2f86bcd303738bd08cbccc55f0926b4365406519c8619aaeff0294b68d52d748482c72fe6c5ecc2d2de8b390536b00477701535b97326a721966ee047b2c119c319936d4f145e2a21b13b6ac84813b9693026caf8bf277f856a8aa0d23d187cd65864a5020089ad8340ae1f152420c1782269798b675ef9bc8863da0208d6cb6e8ad5d08aab56806839ae2d57828b794d2d925a001ac4b11af02e4c45ecc552a8f6e5888083fd87a0f35747f2dbbfdf8690ec2186b3ef3354ee9312908e2ac9a65a6cfaa60f37de3f9c0915c94a0e7e3cb15438454592433f049218937c3cfa1598bf633c01472a373b96ce2977c8e7e9389161b7680549e41003782ddfb856c9962f66fad75797cf340f263fc0d8226eec440f2b2f46a68c964503fa038060887273e2b5964c4c867e59ea1ecec2ad4c912a7578ec6b3cce5eebd3bb15e8b9f991e36d4551c2417c70dd85f48c4c124a60ffe10f6a70887fee289b21073f88821837ad4116262e002c609407092cd79725628897924528e90709961cd01eb81d77773d6d5c06704f88ed2eea5ee6960f667993e7498e42f4c61c51545d663f7eb36e283f5e02ab0fc6871f4cff867a10ac5994fe7814d5035805f3ae4b61f0520a125fcf55c76834a8cc3c106f668cb0b9f6e13ace8871f249e819220588461a60748d6ffde284d015c874843771710446738f370644e16691c5a275581d949b25dde575fa33dffdab7d84f2066991b1f340abf3ccb5cdff848e799b15d2ddd32ff11962e94019dce5d5354b6052ba34fc8e458f9ad8539b6636dab8859ff32988537a46c1f8494fc17224647da507716a6a28d33e2054c9313da42e06208e2ff0aedf37fd103bfe20d6a188f9a42521e094e784be0b97695f9155992029ab7c3f666a2bf66cbc1e7d67a0dfd2538dec3b254378b333a03f384e3bc1eb167e7774cb81a0356c93e664587079eb2df28716e64acb412703e0d8abc6b7fdb535efc3875243f0a5fca2dc8172c728c18956c368c15af5c9a6f549717310706cb5b86111d3125bfe524425d0df92e4649436ce8610553f3ac871c38492df453c8cd9209e3073f50081e288201811f8424a3e5af625124e82587bcdf17a2f0c8a80185e882a572a1a6371a54c822f02e7e8dd4bf31ca132ac067d050ee59f93a139c1e848ab0cfbd4a9f4bc2cd861e52f9dd01bfc5b9114a5fac22f8b320f207b230de0b83f53e07b87ef67e96b0fb129b85a26231e83d85b0d6d341bf798b1a12a1d7bda88f555062f4fa5f9865140518d5c7ce606fd4b1b7fd3c186c03815a7adc436b00df54724750d40246c558863ec5ef91eaa53175343f74e27b212744f1f7091af063c76b367d6dd52349b3155559cceffc506c51ae888a59e7383e4505eadc8c287b8a90b709e26318f23e08f28e4f8f0c1035a48f91e98b724aed6679e6372c54c226f6abfcd6e9971b0ed1f3d309bea5f311545fee3bfe09d59cc395427b02ade9cbc6a213acd6beb2bc94b3cd36dbec33b638390c8a07ba11002585afcf13b55d8de881b3fe86882c5a288f086b062605cfa3c308987c139e567bf26a492c4851ffc93bd7e9044454dc42ee92d853e23633f9de2974f7443ec4f240ac1b90ef8c0b3ce0fe7f6b01b7e5db662ecb8b413dcfd4715b08c2ada7f8db45f885e3306868fe489ff26ebea1b79cf158f8c2c2d2ce36d3d9b398e14ccadb9032083a7f68e3872d465991b57311ddb631fab97ec7a77bf564d1729bda6d347efb460d159b206d2f3c9924de228955179ea36fbf4283c3a7edb8b458bd8532bee74a5c4665b94297840dbae25ceb1e4e1420fb4b263db4cec0e11f213bb2af13a3d53ca31a8a2372d4c668f782d3177beb289cfd2e3b6ee39d5ee6861ca9fc6cd97730449a8a2abe09e9fe8227476f6d2d4cd53dde3c83cca6c264f1846b7208b76cdea7bf6f42cd416a87ef61cff1b43493b199f7c0c04e19026e3cfc889972b2e58252fab0d5ae78f35c4715982cd614ea4cbf80baca4c6f16a86607ec12ee2e509b92339db3ac69d76ccdbb9502284ad5855f0c40c60ea4b1708daa53ab2dce1350a181a234b04081d40b5bfa060dcafdc45a2e550e33cdbff3799fc0ee35c8a89ccda0ea134832a18ab427a34d93cc431f93e7337d255597d7d710e1cba6630231a081a543403e5c73a300776fcca85ddf4a55be2b5a920a9425956cf04828349847a15fa8a12b7f78795e6b921eae9fca00242af27060bdf1456f7d383abaad85e4cb0db80ae206427d6f88e0263cad27b9805a304cbc925b020a0fed33f341df0fcfb3ee59106006f74dc164a9f80df78012dc6f0c34a3a932e5d7ca9833e86652195e202cd65ced84076729588be0dbe43a55cf77eb4054aeeb09701dce436e0e682ba95545460c1903245ec1cfd321efaca98e8cc5f27cd7ca34c9f781a48f6378452a5cb17e3c4f4191ac329a4199c1d67519ea255d7f5aff5141ca3aca8d280c399fd30ff751823c6f44763646c4200c1e083b091da7a67e9c514566eb02c0772ad402c7ad0c7f49c4b697be890bb20a241264ebabd300dfb340d89d7a8a84945b4568b6c2fe5f21d61f5df95a69316436f670fecde4093484db9bd90e5e85cbf9a02d4512a92afffeb7cce1c1ea22a8f256e87c5c06c218d166c0c30d06af34aecece1ab08e43e754b3de2932b1c595b3e3549072bd8f7e4bb249490c4d033f3bf19eb130feda39b44882ab31996a77a6776ddf645b6af2409d5340b8331b060917d622564cf17a0d7444c913f2d434a03987578b62ea9dd38e7ac20d79491a3fa726077b3a70f330a9d76005982db370cb27b818a8f21cc5968f5cfc1b2714b3b2fe71730478475d55c1e7c128d191d060058e5e24ed2873261f8cdc4c03ee88de299c5027c66784470f30f44d50f021f86170dfa7207057f55b57113e1a4bf09056fcfd866b6f67d39cf6e18f3d5ef4ed1cbe890477b91bea9c7775221b130cca2df48c0d394d7762272660df433e656875fe927be677167fbe82bac7220f747c7c24beef07b02f93ea411302e448c176f407e65dc4a40ec334891f9b3cb96b16ae61bb0a64d52b359ed546712081f5f9c9c3c9f06e11405b40da9380ebc900511184c38f280fb10b57035eb7c4bc07598013b805a4d13661c14c5c5a801c06557876a89596d5ff588c57b7ef230d8b58196a27f881d8b28418e7a5a61455f39b75b9896c5066ddef82856155b9fddfe1e5ebb156129fcb4df838cade301d73115e068aeac04bb63254ff2e8367e0ca160654f02a2a6477060ad15f6bc87b1d9823a97d103302317b2e8997f147c633a337c3d4ca2e9509ead0f097709890a2df0ea9e2de2eb5012e989e7fe700bdeaab96320df63542ea39e959e0c8921461adf5be8d8b9899459086b90ca6215574994de68247723022f84d887e51038f2a79635140b35393f5e40b2b20d21efebc5e9c7e2563c595cc599829202e95ab9f3ee469d51f9cf120461ba28dca06227b217248b043c00af3a5f9d8cfdf2c07b546fe1e4cd8589b939b39ce6e40a84ec5d0ae09e4e9ce0262f8bed37e26d33cd39d1c04bcdd8922cf970b62bf0578013b9e69f6e7aa8290dee2702d27a267f932e53076c68eda3e0f2051d88b9b1f755b0bec88cbc6bd0c334fa8a387d54792e5b02b0dc8ec577be888423ea456609fbccd4e35908efa7114f33625404715768906012ee8a79a0f8be89c1c490409663df32cf6e94b11c06831f5140eb7a010990d1951df883800b97224fe01afaaf1d00f4cb090e9788a75061d3bd017488ec70f289c7c087a57e8c0410d154095df2bb4e302e879a04b9872acf3877e01b3ce5368fb9c4390d91662655a5f1193ae066c6a4a3e4adb7f83760da01f821dbca6059a091833eba2eb17454816813eb1344bc41ccbf48fbb8e857d5ca9be2dba03078bb585a1805d04349ba746dd8c7cffdacc658dbf305f60cd18fe75c0d92d650242b0bd08b45f97f9ccbd46f00cad29b5bf7866035080e2bf500b716a2f994e6e4a2e5714e055b12c20011f0e9fbd0bf6470346b3046c1fe605b0eb90254675c9b0b08fcd08b6b0a9aa5a0239aded990c10b924e61b49eadd55ff50e0d4d421175d31dc88a52479d3ab603e5dadbc3ab9b109c73bc4f6b2de2e6ff8de606c2015ab205434ca091b46bd6c0456d573595185091b6bd1ebe44f19eb373d4ae54e127547365c70030a208dbd1c615509a7405ae3364c7abcc90aaeb9e1a6f5e7a1655164d529d6190a17f55b8ee198ec3ac03b9d6aa149fc88a527aad1e1859067eb125eb1087988b0bfe4d7826072be941f28fb7f46836bafdca0b1051026cdc972d0cb6a70e7279f04cf97ac5bfaf19f541341cddaeb73c6dafeb6812032a5ae3d87bbb4613ff18e5f65ed6c0bfcd9429d4208202d8f49e0a6370cfc295071e4b37d2767cc21e89207838c9b9d8497090cbec1507c8468dc14dcacbfb70a1e607c03c952d45735784b64e54eccf8e8662702446f3122d43ad075e81a61d2cd022045f9868efcb87e1341a8cade330311eb6178f65b0cd7595813e102101722b0270b2a29348c7e0bbbb0ef3cbf5caa03ba547d0aece59e12ebf2fa7c7ee56d83daa261382d1a4d2945dfba625e139ac139873c15acc64c3bbf18c47a5c2440238c09f3c7f41c605d84276e8f5b5e12ca7d891c552264a3498cdd7ae6119431ca4cec134427d11983dc2871bee8dcf42b8e6a99aeb9893bc639cd672d50f77b74d17ccbff26d075a9721bd5096430b25bb3242dc350d6fefb8b50e52660d1c78dd37193df208c9bf6861e6355dcb4482cfce8c144dce4dd70d3feeba794ee300537991eb8a9a84377ba7b8cdea6af972c95f2367de775ee77fb5392a109b7497486dba67b5fbdb46d6ac55d34bffaba2de85da04e41db546e66519d62b669dd44a9060aa491ba714583fd1963e35e89770e2a0d8866e0f515788c0511dbb45765a42bf035eee258d1fe66fc216b09af4deb75ae4d57851ef5c4370d61b8888e05426b537b4d606d5a0f84d5a6eb6da4dab4243666cb66d8fde23a885e68e23a52ef38c2ed503dc5d141969cab51fc87c462cac9e14d29a77674267e6bcd1bdaf28c3a3453eba71a822d6e8a48f61d8c5ce1163868e47753a6e5ce293ec40f89beba0df20c3f6d784254ba02d9ba0dba8813d616bd6ffc54a1b6d800386e3609f0d6911140a825ec6f9441bc8c1babcf1a59080cb2b23afa8f1e81fc2673170c0adf6fc2612ba943500c46ee72ca27bc489862f0132bab73c8b68ca80743659860f78fd9f08241c6df41b4ddd93980b4c845816e2a1143c18d2eb6c5e800b41084c3b693fa6770a5686e24883bb095d9f0617ae32be09560da1666f6705f4ea8d8f75c3d577ecf0b6de79464546d4a61f4548260c0fc3551fc748b6cf570016c34032a80c27b5a405616a50305f48768813b4ef3aa5156a5e2337c1358f2cc9112ce77c0a385543b3d16d3859678af08deb7da49b063ba00d341a4201f197aa8d3184e66b900f8f08d6faefabaa2a5fb4e5549d78a5648237b932df796292599028e078f07d507de9dc6921fe4f875d6d11f140ae5839220c6f8752567fcbab62e5ff0c4afbb904af02b860a06673c945fd592172816bffd0328aac5ef3621bb9f7949fc017e5d65d455e6c4e5821f14ec60e502221c99b2a3c40e3e4ce951e207233b0052220546a6e0b89060b021744f8a8d695008e193a140c2bcaa8450423645024005531c61f2854ce15575c4069a12497a551df1d1150a85ea013b12f418e62e18e68e6d1df6ba21e0ac8c22893952676574083b2bd3bdb349d2a05028222928a282a7646594497c2c0d272ba33fa5868214ace063bc2cb8bdaa54101479a07952cabfd72853a8c4bc5c15e3d7b51744a63153433d7496956c23bc52f3449f9d8487de3a7826202c03675f81a88730d56b3c747d683c549f5dc6436fe8edc5f3e6d912cdebd8d43d3f69fa67f390acc7c190ab67da16f22cb43d15c6bdd754ab85b61a3e412ddbde498553f770f7740fef63169aeda04b17483db5cfe699347a6a1e36fde059f53603cb40bfde75595a5031440a2b2da668e3e10b52f2b383329416543821ffb21e50cd96a6eacf4387618041f35ffc54283eba06dda10f1d48efccc0a676e83fd8e42c031dae1ec22f2447cb67f73cf497182fef9e2d5d8145d6a438d881de606c49552df879a840541ebace0e7ae82d05f66a761b0f1ff478599b8f1f9494a04307b225e841b6a43a80005b3490ec1aead5003af490ded0934c632211a2bfb749924b8e9ca3279130ddf1fe5d3ee3d3f8e366cb322443b7599a8b9b3a30f76bc3b8a9fd25c486b79943106d5b6239dc366665b65fae93d6695c553423ddf17cc55c64cb2f9021b7d96ce4bd8d4830a30ddb4422d7168d448e8ddc666311462e8a1247caed18a60839aaf2ec41b644da5c0a191df31e5bca9c1d862d859c3d7b3954be5de4d9d34623d10dcf443d90a21746a3d93fe2a6740888bc25c03490dae2abb5f88a7c406fb95220ba09b9a50249cab45ff6df67bda9e2c87abbe28f462397ba437f34f238dae40b234e6ed7deba43f307b48f5cb4d1d03ef2ac31bfe12af281790b372517c4e545dc6c0fc17b91b38c3691b728c3b415853c0be95b66d1382e6ed8d6f1a59d1d3edc5e9afb4162997dd71eedd9529b60581976d95c0f34a43fcb87fd3ce181ce1be0f589193cd6e5364bb22411a48fe668801edd664541843c74b67a62cfec96f74603bb10237c39660e3914070f799ed85b1e12424ed2878490df2b7ade304ce450e442e622e7cd5168f1494201859193b6b4bf6e03b3ee353d60588f614daf879f18d5af773ab6b48ec2a845453e1e8fc7e3797b7c3c5473ddd248fbd1c87b4b2c3e1a8db6a52247ae236f5972c3dff622fdb93e6f2f9273e1f1d09ffdfad847cb7b1268e13ec0725772a4edd466473dc816dd2cb9e14ff480961b2e9d657b69f1f72d0eb3ddbeb4b428211d0ac90ebd451060ff003fe109cfa26d723b7ecc12b75b1c48c8cd88f5cbd1fe36ebe5688f8ac3726ddb6610eda35bda58bf80712f0f7881aea717e8fd90f7e9f0206449828960229a208299e023a867cfd459565207cf74ad58a6674b16d01a68accaf8ede167fcb7bbcb127bb8053aaf8057558e95cf9ed649545230f9e584ecc3268c6c1789203da6b6c3d9cec876cc440819773828e47afb8c3a114912c8f1e5b3e31c9484fe68e8f8bab2ddcbd981443fe66ce96d171b8aa3b3181275d860b2a5795d893b5b9ab1c8b37344623d1ef3fdf6cbf17c39ebe57841521e71968b38db3d1e91c9cbc11e75b65b6e429c98b27cc6d4b3db6cd461f278e8b3f6789b4282687f79666d4ba25fd1a39135a5b60463929561cf1edcfa638a4d7d628f38110918d2f9c6eb131eb0f819799e596326e48cab5f3d2f9128653b8e603cbf5e96d8935dd98edbd88e21b01e519b7e2cb2a5e517dd40b6c79e2bcf7eb12145618b8f1faaacb6639f4ec8c93e6b43bfcfb32f177bd09033eaf43c7bd4e1a8f32aa5e258adfea1443f368a43434048f539f35dcc962c4b7dbbc7705ad02d9700a4c1f2de2e006ac829dfda60b43cb277ef06400df97cfb87b5395114d91886612c3ce68d45aca3f38561dcbc386eca6fc8b9caa8b7421e55552f004d8daabac793d4dceceef619999b72b9a832ea107e6ffdebb321d7afcbd057182cc1094408a1065758e185f64311af73008085f79a2db5f30fdda11c80df28bffe5ae879f61f355c01223f2c018c25786042c56965fdd4f1ec4ab3259f67464332cceb3fd5af95e351a57421c1608d757392846d2edb9991b29048c523d2180226595d4728c1481f0164f56084357644020a618295241752129d6601cefbee6e7f497058d924434998388279bb7333484c48ca168e5061bea21b4c927262bcb6d8ea4282912e49a47e4a8f5cc4d2e50aa5612f86615a1132f45d122896d17f0bb6c774332f00af2a9c25be5f552cd8e128d9d26cb73ab6db758f9163a4d952a4e19a2da9dbecf327ba81db0d67d966901b1ec3dbfb87e42579603c2534cfc9cb793c4ff5a43c1d25a5c9343a585028cc221667871b7bc61c99393247292564890e3b4003748d85c5339666699666e9569bb554758350130a5c8939d56e4a232e4e758ffc3a7122b390fd23cf58935948f823cf5a9359c8f723cfa026b390d78f3c0b6970d33487fe9a23738c9e458eccd16fb4b478d6b2cdf82dd26416925fbdd95f3a3aeb301328bfce3e5bd2376da87576b2257db20693e59d58afb644c62f1036fd609955e87f5c476494b2a5d92b55840281565b52e8d0a3b2e939fbac589d53af6a92796ca3c15cc796306f51130dcbac631e2586f913dd609179a53b5efbfc45859cedd364a849b68fee78df456820fcf6194724760289f9120bdb666c1f3659dc0be63ebc53939790c760f9f3e8efb4de3f6c7ac13c87cbd517e35e42dc049e5b1ec3cba109c6e5f0dcf21c9a442e868bd31c2cce0a096920f589131f5e426ec68bc8939f209e2427f8e1c4dcece24a871dd21c9d70c1824c62219f0e1a0ed02091c16b61bb90605e6ba6aa425996b1e8a6c5597433f20f64fc286431c618b90e79dcde87b897ccf71fb08f826fef331436ddcec533155160c8113b3b1c81082d9a84d18393aa0c0a1e37170e852db44d211f8adbc4e16f702e5b10ed5f46dec2c929b92deb85fd112773a276996b2644b435dff0d1bbcc57e4a33fe49a61ef490d48149eb5ca3466eeea39a361890e34a7269d8adae14604ba454308f8978c00bafec361c8097a6f73c8afc3ad874c4513e0a0eb96030a12198252e5e0a48af0b003ead4c390d39c79d655099e77d8978719089b9e172ac3eecd9df1eccb643cfbe33820a4de4ae404b9be1d3b36456adc559f91316b5f166cde5f9e4c6366ab6af036bc7f3e637a04c171e2a33b3607ca0219d901e37927d11ddbaa259868628934333333334f060ab28f1f330f1f6122580bdd34de1a59c65a50e13498ca8d2b725f554c54f9e7ca0224e895d32c387d92c1e40006073d40413d4054a8f8a0bd0c9602af32e4736e35d4db55f8141e8597126a86d96575642d8465da22d18dbaa68d0a82a3c884c969a8655956e7b04c3461d8d6485846af2baa3686157f222f6cbedcb22ccb820dbb68264342d8d3a825c928eadacc6d596c59accaaa7ced48891333804ff41b6265a21bd8f186f839880233a055a6b5c0283d056c12290a845c4499224a18ddce517a8730bb5811f47b55f9a077fd688f97c41994ed36ebf16165aa1f190fcb50d96e812e20dd8185ae46d23904f8672209e0991af5b85f149b80b68a0c8ba1c8bd2ccc49c50155067a26bab91cd620f211fff21ba2177c64b4e22dae9f4ce7f2914b62a6b5401150648937ba9b889aae2ec1ef8aaf5c2b3691385206c4a61dc8cd3833a0e6481c869cd74fbc118baccca24c59950c48d7925abc1153882a64401990e9fae1eb278ad5f543ba7e6e441462bc7e3603ca987f32a018593806bd1a60a10b11666eeee6e71a00921700323794ca9c1c35c77835736bfdb4539fcc6fbbb5325e6faacc7aa1a00bec8a16b66d1ae86ecc82ecafa143f6d710725f315e6170707b0916ec7782ad8313ec30de0d7659af4d65d663d464336303a32231bc1cb604e055c66770eec654659eac4136e4784384fb2c36414b2fcdba2ec8b3ab3e6cbafc39ffb0c9f2b7facbe7398865ae1e36adf7d5733df34a4f4b140cf95cf771508fbc7e78d989ec8ba7dd5ac66a37e4b61e436831e1db0baa0f42d6b6d3c7d6e56a41e6e2333367fb226bf7c22064aaddaedcded0c800d23432e47beab39d21841a912cd32d4df5b9f12fd84fc6ee6e3a8406bab02c9fa738a043e96eee063af47b8fa70be83d5cbce29e9e229357abaaef811c4b3170760c9cdf7d108cb7a17f2010e4dec5c3d3237797f5674bec5715178fea2e4e23f1de3b227db00603414e1706e223ef4578bd177fd0578c266291db847c5cdc1ef3dbf7debeb797cbee7befbdf7debef756eebe7defed7bbb2226fc03fe8100885c3f25cd74f9fea1bb3b0b2056df58d40008dfdc8c5c109a276d3725ba9060a44b93315ef4aa6a72839fd2896800084d773c57772e82e8e203f2472fa30d2c4b48816e6db37d5edc3146bf9883f07b832f649bd1a7e598c32d8bd84714ca7ac5386dbb86ef2acaacd55874c3dc42669bedd46f2cd1f1ea3b1b26cebcba0bafdaac3613328d795d5683452b54c326203c5d228ccefc0ddc680cf9208c8e611816319616c8f952d9f68c6c093a0ebc617160c9d15edbb4ed8cbc140fd2450261d30d5780c610811372bed4105b9acac6afaf3e260298ed48a4e83dd8f4485a84fe1e9012711a97cab80c3c8cd0c74bc5b8bf1ded85589003d5dfa6a21bb7144257058324e595854e0714eed8f4723872bb5b13c40a0988922040a4b65cbc1c36bd1d96d12dcd21a331e47c3baf09c5b1dee2444e0512b2a5f99a0012a409171964bbf59a7d48bace9d040424ea017a171ab13518a879ecd4865bb861ce8688dc18eda07732fce6da41851978f6e70f42657fde55a72093f18a2c73915826c68b6562a9d9821036c3557d570dcba86356e4f3e586b0dfec54553b96511f01413e089b5f0c1dc93e8befb21ac2b6342d69f376ac3b9655777725cb687c5513f478a9f7ce218ffda027c3222682a82a8389205ab07b79a4fea0632ad3f2ed01b83d958913fb160126f211b1edc530ec0a0f104d60a0469322b42864cbabaa890f9a0f127b55316942d6830cbdaa981c210cd9af2a264458435eaf2a26404c7e62ba19191ca1bf884f3a4df482e5a78e1da684742503259e1d13dd703c4d610119394834a97284cfe8a78ec9c2efee9eba8c6719f0b03dbbeadcf08f66a08a0191df27bf1eb58d01945f77512d714485df25b909d0488309448410450f4e637c0ba4dd4eaecf6845ceae639365829cd3731a36ede9b90d9b74f574ae78cee279c4448788ee370c855093a5e90efd8529cd6193c5c1149733616af48a03a6d8d4403492229e8578f609719e83443f188865427f5521274c017154818c511c54c8095340c0163cafe0190aa1f590b54c81e49f1d13f0ea32ca437b39ba9fe9c69369d7e962ed8d67aa7932edcf213743d043f23be4163705f053eaeb2c5f6e72af3d1e197839daf76b9e89c5db33f0785cde3e039b583cf3103705a039e4e68d9f2593c81f374308f8e73be5dbf595d62d6e723f4bdf07d01c4f14a3c6c98c23f58a6e966578cbdf363b910b214f716fefa6522ec0879cb505e95c801fe23ef09e604307e9def297e77d396c37b2bd3ceea5da5b72201f4f3bcb95f6a7baf69a82c4851a995aed2f96059d04e3e455d8a981121d5eb39aaa6209aa01153f2dd82a150edef211c410db2f49f989399825917e388d0cdbdee9c1863dc39524466c555045ca48155b6a6713b6a5e524a0946729ba23863b67c2543b54c586362882da52bbc7cb821d2f0bb6051bf60ceff24142232a880351dbce33d481390f913cbbae5280428376280f0bf5574782f17f8f857c62ebd8629b391663cc307f1816a1e80693c08b97635b3fe69967d876b9e6578c526adce521ac4f97b3e8065bd1cd25f211fd71ba81edac971f91652cff963524106e86ed2c67d9425aae31164783065991d9a02e24fef39707a85fbecfbfaf2316e84bb2a6a8e4a13f245b822e039b485192bcf3519feb39c9ae2de7a19295810e993cf42849dea90fcd43f290f490c4263d41d8d1d4a84e32b00c5c433e9eeda05b103acb164fa53113a29eddcad68a36faca96fab1aacad650e929afb9c0c4f012db970ebb6811468b8de83b333a5880e2dcb545040c9f294f7e5e775cce7e7a3cb604fd821bbc4ee0844777406f61fff94ce421bb302162888c8e3e3dc633cd72c5e102b9c3ed0c5de371f9c7303db3570f5bb110cb1c0251377640e30309acd8800a2cae084a82133c08da7f2de39d10be7d86e68a28574871b511a921462441032858787185052f38b519aa2baea8225d0ef0aa5279f1a157d5154dfc948e840cc60531062f382d3c36b07e3045e3014c4e0b151614162da4ba5edaf3d9e8bd78c5501412beaac6488112c628c2af531083089f7d3ba9ddb734f3ed9d184bf8f6199af69a2d01e05b258613bebd852d59df3d1e23060fc458fd741a4b88e8bc0f88eed01d0650a180768587c31249c213d4490706a84edaaeb0cf640d1e5c39e1f0d458ad56271d1090ea58ebed2586c6417148e1491524271d46ab53fb90d3f544ae30e3f786838e299814519d70d0e1f2d999f9e73af411785427dd1526cdbf7e6a91a1043380564a76390b302ea4d851c268cc4249aae1062a724a31e4d4202986d08234958f0a88955fd764c8409595114fcaaa678b1ec5b1de2a1bedd9b99ec8c74d5eb54a7d567b7674d5f3eb3f62e8d50ebdb3a5d6791d26343aa0b493c656202d2324af92d5d91cc53101c9a6f5fe61a03f4dd25bdbead52f1f72f27951ee650296438fc172e8ea90c3a189723140bf38d5e3d0c3f3eb434e434ead7385d4939eba058a637db6ceafeb0e0a6c23d93a4771ac5f4f247348687226cde7a458c6f2819c5d37d341bb16109107caaf6b2498191755fddb58762049bc4ae2fc97d0bd15b1bc5dba702b6bb3fbe0a76e57587f3872baa604d91591be2bacc7d8005f866d31263d430a2498e0a050a89c937654a4fe748bf42aa3021452df2fd06dd35353c3c3e4d759c8148605ad7171498a21c1f0f5054dc783f3eb33d22546c7eb15d65708393b26724ab9a4653839bbd9fd7633daa8164411d4d3413244e1d303069de282f3eb3333ec6f635655cdf2f9d915d6338d09525b829cebb33fd167ca96deaf4809393b28884dcb1365072d0f9b7a0b9559f7e2978c5f576e79ce782fe8e7fab04ad4043955e5f3eb362d409c18e5e5f0ce4e1455fcbacbcb794a9c288bceeaf06c0f932db1ef6c15bfaa97b3b32bacebb63a3b90cf5767db9d65f29aecec8ece76fbb6c7446777b6a45106f2e1f08e64d3265999f555f270648a091172c68f1aab6011b2224dac667eefbdc7a9b7f3ebb6db15d6ad27e4e3620f6698961c39492498ae260a25dd0c0b2c3ab2abf9992da9d34c167ed9a583819c24128c7459bd22a048576e8822f5eb38440de61581efe2c7fcf8f10ce272c52b5ef1baae8bd3f606548f9c519423677c38cd84ac880f7e6ab8e29f5d01685758c79220e70b122591ddc3a6f6d40be29f2bf3050559d9924a612a6ca50d23e45c2bdb5d79418ac36d767dd8d48fe31ffe79417c6aae7bac23e48cf00989c6c7637434fb8f4be7dbb57b778c0a3990d37d9c4d2a84215daa90d3a30be474274fc876373728332bbb2a54a85055593921a223e4d4a087ceae579ea5413f2f25143dbfee52839035ede91581814fdf7bfa9e3a5b6cb1c5cc0eb70fb06adbadc5cd87aae1864ddb10e244cef7f37eb634239535396a3d6af189ec9d344664848c48daf8f990cc45927aa99d5f7f46a206f386f8242115c8f5456d2fcfd537e78ba93e3da040f2eb302818eb3ef8a99d9d46c70c49f6d6e3c7aec0ce4c243ba74f9cc0f9fde1152021e515f0aa45113993f4351f2314a95fd74830332e4d5863963469bb5d611d4691ad6d8b1a455239729d95fc135596a47a22c9afc33869c3b4a7f51953e4a1d8cdf839b1e8f91055bc907d10f45b2d3e822892653e82c0e1ec699bb325ed39a2c8ebfbf841c996b4c708201f41e06ce9c5471038ff16894eb14f5cfdfab40f4cc121d684ad9a4a955f572bbf3b13a27ebda758f98d57309493227e4223bf92034ab2422ace76dc43e46cc74ab6e3cbd5593d6e27d56754d7b6b3f43d0ee22095617f5a547eda3a8da4713a67923a07e7d93b47674bb393bc922d4dc9e4b99374922da933077150eff868cc425c6419c932ec2d50e4f3e5b21fdb313f7ea82d2d17a3e4e89bda1eea15d98e9fefa658861e363f365004c80c4130ff500f15947a45aefc3c23cf33c823380c8eb59614e9032850a0a0b0eaeeeeb576bbbb6177b7d3482abbfb54aa76565577ab7840e4091428b06c90b11732aa378f649625f8f1181a1d5ad339cd763fb4783f550b171e8ff5158d0c3d316ca947a750e9e9a1f353ea8f12d243ed1a0a347c1033434de45a215777639f578ed019e872e8d97b4ffaecd6a2389edf981df87518373ded3c74eebad1839c51e7e9b248c5e18117b9207f9f4b1b18d6248360520f7766cdc3284fe03c24fd447942899f0ac51f4671f2f373e6a1f7db170a9202e68cf7bbbb8bc6a3d1f1de7bb1d79f947257eebe87ed0df65e0d0d8ca1861ff98f0a27c376ec8ffbb15d0a4c481731640d3f376c69aaeaea07b37c2838c6720b712f6f9fbb97afabe5ef3d4649cb9fe534bc18e3736c751d5bdf8beb41b31d7b67e344ae33333333abcc38c277196bb2f97975987e3ddcb2b1b61ecf2d779bede11ba305b71e36dba16678ab7dd9a647e72246f73553470b5b9ada860e1daf2a33aaf8497a22083fe3fbe0a7bb530c3bd59dea54a73ac526766f772fb176eb93a5bc3a6fa125d5d3dbf4bb1b45e38a63bde110082fa046d2a9eed475a575875e5a525d32b45b6f24bf382cb32996d915c8795dc9ae24ebd96e2ec4f7f0df8e6c70e185d77d0353294ba58a3b3ba3ae2227e7fcf3c9394040bf3b7fe58a4af5522f3575d5556428b2bcdfee86452f30f71487aeebabc885e5d2c876e45b02dd66f987c9602fb678ee71e8eb56cf4ffed9e2070064fce41ff9cb5efce41f7f3daacc978a835e78ddefbdee0dc974ba899c97cfd5a33896899c57cf4585cc76da88a4ed2c18f8fa24f5825f48c6f5faa487347eb95963796733fce5a324e424bd6545e51502335f7f4b32ee654fbd3296b7fc48b77838c1470b8a241f3281640fb95b334c2791ae6b0b39694b21b71c664537a12744f402fb071af09ec4a677c22c7fc1b06ec6ca5b2ec306d6a44ab05cc7965435c694b72c9ab7d65a1c9f1f5eab6265d5bce558bc2c2a6fbd65693710502a5613b24ca315cab46ecbb2ac1717308f1e5dbf7b091227af0d6e1987324dcb4211d01f8012e41402ff05f6ebc505f6cb2fd7b7367dd2967a5508ec35babb6384ecf1da5ed8d75fd8f55755571130a4f07470a738983953e1cd65def89ba6d91ffc9ed96ebbe70761777f368aaaaaa30b8a0bf0dfbf6daaf0d6e7ee6e737f27f73b9a010c1776bd17f782ef716a59584368c5683e9acff2e8665e216b96b56f5f0e6e0839ab21b418428550d7b2a06575db4108a1c516b42c784d219f776a6857e4f3b62c6859b06ffc30626646ad2fb1206ceb8ab0ad2bc2e0c7ba42d615d9801db22e36baa1854108ad2b5e3064b171c10b862c51a689b4acbbfb82218b8dc62cc805a69a83c3bcfbba2ed1cdd511f67b8f61731c49d2334dd3d8c8b6df8ba427fd357729a76c849a9bb9864108c39c2fe7887968838f45aed9c0960028c8d49f03cd7e057a1b7af4cb01519f0af4563fbc50d7e8606167021ee99174ccd0c42023f2d99174b0c2b8a2b61ee3ce902f033598afc750e360b8005fc4c9a038d675446eaa955f8b23e9e86e68611042eb8a9615b564cd5c355fc3323b26020ea0853218daa03fecc85dd6057d6e37b32ba3a6c5e822924f7358ae560e0fa3e801ef31bf2ceb75477d3c9ecfb534078c37ac76d02f918ffdb6460001fef6eb290eb83a5c9816e22bd3342ddb8ba45d8c2d1289b0bf38ac64953ae92f0ae0e2417a39d62714b1b0886e206b2b910f3ec6c5083fbe1a2a8f870534c7ba15ad8201c52183968450bcac90461e40122fe842b5842ea0f8291d8b2e9a8484d005123a90a2575517385da462ba198fe102c94fa72922eb2e35b7b01d3bec56b7385e4eb9a94f5e9db7d4bb3cd4774f2f87fa7bc5a1ccbc7057e7b6bbbb2b8178aa3856b986afc507971edfdb9ccf46faa3ae515221c1d0d4d8f4f0cf5bd8d28d7fde03861864783e03901abef8e7426ec02185f352f8e72f87897ffe946c29f4cf9fce962213275bc2fcf9e351f5bc150fc0d81200b634e551794012b0f284173b04e1044ac0e2f4fc5dd992f6e09f2f4a892d05e09f6f6a4b9a3f5f236bdae73bc49644fe7c916c818417796f69851789442e6fb0c48bdc458403d48b1c664b0678916ba21b91f3913554274df34c74a36559b64591cf74f0d916627ce6305b8a9ff5f07ce621d14dc60425a85328e498e826849911fd12dd4416fe8a52c45f6e896e2e2df95b10bab625251eba0bcc22e8a1c3402d7a4a0b8062e5a1aae96df144cea97b4b915d933b7876178672c4f316362842d57451718329d4a427d1cdcb79d10b1169288af891153b6051250135904fbef0020b25dff3450869f4e1ba823d11a2043d4f921871000f489ee800e1801d524f665002d4932a523f4fa0a41c80ca7922e587d31356242ea20b0946ba4841f253ba88093421c6ba0d29a678118423a4704216320ab144b2ac208b25cf497f3928142a8829764ec0036043eaea150b31a8bc36c515d91053dca08b29be908213e365c1986ec60a357050c54fa7b172541f9de1a8f40cd7653d2c15d18800004000f314002028100e098522b1503c4fe5ed0714000f80984e6c5017cab324086218a410328600420c00048000c00ccdcc28082d636b65f9deedbd57949df6abd2e669f4d6fc3305bf2addea4b43cb9def4170a7fd56502dcfd0435c40c3ee223966a3be56faf2c2cf296aebd855eefccb9cfb8581d3bd14e8b5e56d2d1db7b39ca3d93a213709bacb5ecaca3629ede587eeddb6209bbb141a5013c4e59a8db1a6f82a92546ecc00a7fac64b8655cff8ffa5674785ee1fb1f7331aee93e2808d8738968c725d25aafc3ac3cbd6cd8d67ee5e4ff822c620e3d4bdf9e9ee94a4fbe40e4f3ae81e5c52d1cabf0182f746ac89a96c20f91fc05fede07379303921281829b312f12476f7c8f6d0b3759d9367b0a34c9600f3ba83a8d6e3acada0d4d3dfe60ae48fb158a4b19d06a3c94ba9505a1d4ae8af35a4da3d8c682cfeeb53da5433d6998304a18a5f11dc3e16f0c040b3ae21f78e72a022ceea207d9d0606287ab0c0adfd59d437a095a7901666bf01b2f4085a94918e691c7e412bd85af0d2b0c094e22f9958e7715d415b226c3857172006ae2d4629f391676605f5259d37c83714c7286bd324fc38a10b3c7875d78654d86cf292b62cb0888bf1b01ad514b8d5000b53f1ebf564de95c0006bcd9a3004c2f74bce5a2f18df3348083f7e18ae43108844303a7cbec94d30aba69a0859af89620b81adb7ffd14461a3196300dd137941684ff304dce8996130fdb805a1308f79e155dac436d86c79d25698425379a4dbeae8e250a37167ca4e3b7bb9740242907856931ad74c0f888856a9b24916541ab016e4ad04a424b7a5d68cb702fc6fdb391e8f3fb50eaf440585b14da5d3dc582e45e93a02eb0b6c0a378237a3fcee37af7ee021d9c1836df6ef08e60ca81390869b97a558e705de492ebea259d4adfb50b2b321e1d42222ebbc855a856508f88f9b48c98faf925e0c6daf3101c0ae03cf967fd849ab690225e0548dad435cfba280959d28c4c8c9e93363070eb69c804bac7d6da8744c054284daf9b9b7fab428f30290d56a332727b0015eb5a26d020df72e0d0c058e721ba90bd9177cf4f7270e3f946d7e973e2c86a24def7129eda49725ca5215adc2c03d23cdb01c514a2750e08a4c687a592b996016275e83454b2df232b8c1cf1ff6f2341ac5c370dea8277f5364c508292ca1a4c221ac015e90b32af0cd120e712659b75d293da407770a88f5e6e87b03470b3a77f83313dc9f92e20149e851e4d84b60722a01457c14ead2f9bd3fb3f55e7af60fb5556b3497044f5bda72dc946ccf4181b1c0c1bc6e9e8ae70a16d14aa8c4a20033944be4b100c64cad09bd5a768f88d0b19a27d82b575aae340f02ce3528b45541f0bda5f21538ce37dfab9cde897b591c4e4a035dcbe95203070ea79b769d1f132b68b2c473c4b842c58892878d9bec09ade2088b80bd2b143a41a568efc5f6cb6523c1b69b8536fd5954cb2ae566412f854b5b7875b06be16d6cbbb2054823b086db67413b8cb8dd35d0a890cbc245976eda2afeeee4b8993941a546a14d5553b2bb66450dcdbdb1bf14ace27f553cde422bc6fc1e859a4d7ef5678db0eb1e8c7cfbcb77e64343195e01980c391312a66f182d7365e422c19d5cb82f76cf7c9c7433e32c9fbfcf93e9d4be08c1f73c4cb34b0c5420a7ff89cf2ef2e693160d15987571ae068fb281e414c2128b459ab55f34ed0150d149c10dddacf868aec849596a4e709e96176a80b68f2cf0f4aebfbe38d8e963fd28eb94bc008151164decc5db5b3289309237b7646fc5eefc2a152bad2944336b5ff4bee614e93ab4a1a10cf72b4f676a73a63e79012b10e9e72d1e5d238b751ed2d0f9133d9ac3b670aff6a8a788d0784b782874701531e29e8cae834e7121d23fc9368404235c27d6e59f85dde1626994c294dc483922a6392fc8656d3ee550280ea84bcf6e27043b60b9db66629123ef175d9891ab8561da92943008b078f55e8c5dac6290b0ef45a8e48746bf17145e5a79e2ed0de6b12567667fae12c2f94afd2951cc8d3e1a297e197cbc07ee0f5936fe143a584975b9d5c35b4762f748cb4736b54b853188f7c15249d2ca4b26a43f2c695b565121596f080aaa25d596fdba60d59bfa67846e05c3ae643ba20e9a5769d0841679dc5fe821b8e2bb77aa31fda565bcc9b0770fbeee65ad28754df0bd1381738aff807efe9e7b273ef8de9f7c3fe6ad3f4ddf0fd601d7daf7a39edff115ed8db47e5fe1fd1875c9b61f51134876cbd21574fc21fe16f3dceaf7534e4cb9357decaf1ecd6307c0424eb81425a05c13170b40aa25a0bc670f14d90a05ed839877312bef5cadb75992e690941b9ee96be870ac99dedf60d4592a63c2efc4d297caec35f7f926e5e784e10396e3faa7b8fc306727c86a771b87e795768aadd05d0a26b9ca7663deb50069b72d5a6f1ef78a816b76619b82a5b67e98f2d31885ce538c26e14b1981d3d3f9a79be5c9435ea8f4f515202228c6b2c981375a40d85941516e3ee14713fa084b5a95fe56fcd911c4d6c52e845b5af075792598e95dc24cf9565ade18a60d9833f664f02f7a657077cfa3e12f15f53a63dc1026502fcbbb5a84dabe9dadc8188bf824e6bd8d91d25f0a909fe09c7db9c7bd19ee7e8c3175f350212fd08e195f0a6c9541f12c0661eea5551dfb5dcafd4ecad3e5379efff3d5f6caa5e5b27d9548875891bc52a6ca694c366a11caab7e5fb8025e7ee824145c6e35d2cc73096e11880e80f2212b261e2c0759d91a209b654c89fb478e2b93fd0c5b2c1abb093e83d92d39a6828bb243b57db980a4d6e66fa6e1d4a9a34b8e4ba9db89c699dd812570e8a91f48854e91fb670b64d8964ac8c9835867ab82ade6ca10511d888180a93654e77ab9b638791b1f79c676d9eb0c042ec65d568f91b7ab729022f99f5d252b2c98d03cbbdc319998f8f6fa2cbf208f3006a235573b5d944c926affd3e31c17ba797714c9fafad8dc2a9a1e28edde943c0182f385bcb02c27efcf510584ac1f510eae09852c6fc7fc0971cfebabfd50f385fa72cfe52081e320728f682699f88932cfb1b72ea9a2b2652a4284be50d263479e7fca3f9d812556f68bec0336f1968401851197146033e454acdce2dd1d8fa17cb77e75cccd4dde28c69174bc550e21a4e568fd64576bbcc8bfac8c780d7d79af70431155dc8163fc158e98345e38d9d05fcbeb3a2e84576370558b31064ad107fbf2909949d371bf4fc1b277d708fd850e40ef05f690fcd7589919423a101fe965ddaa90cba2b65899d9e7e6ffb3c99ad1bdb6a8182f44c840a0defedf3f98eda1ebd1e945ca95303fe9cadeef14f81be7168d9fa2ce5176de1391b42315091c28605b0003e86c43e4c2223e254db08f581132f9ffca84bc10864bdf667bed6c10c9517f8d441a12d60fb4a5f911dd889dcb5e239ff06d93a06599f2ad8cc00cb7327b63caad73005d0415d44037550a890d20d2808f8e62adc42a76d02b167d36e890ff30c6da8ffa5fc6292d3a1a0b360343825aa35d657b641e5ceeabeb3d7bb964515be0ea8518fa109afcd30836940075bd0fa71bffaad7cfb280be22ed8e8c2314b22ad018436ab1867042ecc835ae71a11d36b9f76d1cdd005f384754a9079a009ccfe3b5fc714bb64b658dc4215ceb05e598583d995add72f7b892215f70b117ccb40c3aa35cd0286e98d0f09e34ca42a52e9ec016d260d4f7cb4161f97b682f8e7eb08ac5446460e8cda2c0b487515cc6511226d676a3524a2b785dd3320840e121c59bae2f29f4b6a2df571701374cf1ab840bbdda64f4da172e1da645f272118f03cdb9314dd0d9860980a3279888e394df6e29072d1ea211759ab6853e046755ad961fa9f381cef5d5827ae84f8810565a36529e60582f42440ddee7e0d17a0a566022faae8e2cc7f01f32a9a3c277613f627a124f2c8311b48cf09274f2ff15894a396eb20c24cd543f9067715ea65b7eb24579a4931e083e8ea8a122070f57c0479ee537838ff2a027ca4b9ea7b651acdc983ab27aac47f9c376103a8755784f835a4ff5798f842ba059ad315342bcadbe3cbed77af7cbcf576aeded3370615a7fe445b7262b536c9365d46bc37b4a988342aed0cbfe9a92bfe990064ca7da006e927e4308a33bd485e8243d4a10b8d47d7a773d35bd750b1ac84ae520cba9168ec43cca5f128584de6101e4a72ad34ca0bc514f481195d965fb8bb82c358be31a19a74eabc882678640e384f7f8ccad5ab6b7c495d75fe4406ceaf4b3e63fc6f552b7873a39500069c4597684b80745bd57ce88402afc27e6c71a6ffc295d62b96aab337d250623e9daec6747a3b874d0a4a6ecf7c6cb82247fa74806be67f72dcc0450744dd301adaf5769e66b637d264d5e3dab310624817c23661f52ace288bf53cba1d71c70cfb68327fb3e5b96bc947d5c1a024e3babe5c70634d83fc1ebc6b062e015835e44243f9aeaca0f18949fa8729929c211aa4dd77ba6fef5e7e19f7234d379b3816e8fd27ef1fc89abfa29e1f2daa9c67ce4f227b0463b3fffd6369c2e743993bfb6e2cc8193ef2b0aaa5d4c6dd54ebeae8f3170e674a3c8ffffad79b11787eb2c723c9f846b82a922cfc88676d37da014413ff12193c5e6b6fd753cb529e7470ebf9cbe67b028ae33d52314c75dbe79c5ae2d2798de5e5f7bd7dbc67392a235e0e4b6ed60e0f634bbf9207b9ac18d3d85bd63e8d5555ebdaeb6cd93ca114e0c4ecfdb248c998919e2504a5f9c2439681e0d9b135e202494b382bd36ced7d969fcd3c225b9345a1ca825a50ef4a9978690de31d8e150364f66c9773faf6a8c0db442d9409a6b16507def6ed777f3d976dfe9be4b2085729c79726003a2bd239866d8173c86137b75d9dae520612ff924695ba31f390ed82fd2e389785a03c4d488d2f65cf97658672f291087d907540c70b2fc979227db772bac7b8d196370440c3951921535183144c4c36eb556eb91c519cdaf8e84ec795713f0b4a3d0e4be5e9ebec79c17f542d8a66234b84451d47fd027b40f13292431ed6c7c2924c0e6e0a2982b20ea7f6af0628635d6826cf7ba749609ba4d0e96235b71fefa4c2c168d6bc7cd03b97e151d6b788672ed239cb02802f2560a84940cc811b4a05b95d1663d38553d598ed70a254869d19c5eca0d52e6534078bcd6d42b00613cc9592ce9c8188322985137ea98a64b3a264bae2e291e2cbaf905a8578875d24c6a8ec22bbcad4add43059b51453517c5daeb3827f72756c915df2274511c818b2c798a7a5eaed70428a8e5e3596681644c7ce5b3b803d28c5bc72c2c049c6b15932d857cc96b86641968b11c92ebc6ed0d1c07becda4fc01bc66a493b9a20b46c3a71f7c6a3abfa214321d78c461aba60858054668f03336373458a865b8f804df505afe53474c340d8adae4c9cc617413a10d0ac46b53472b4e0e81afd1739a611f8a881955f2631c979282332ec93a51d976103d7da742e89e7f882304a5cd3e4176a807eab17a527a28bd6821112b80217d9aa796523c8b6553fdc4f47bf9896ac069415e8251b2c5f45980378ca0374c78537862f74709f6e35650eb7442324a19ea2fe0c0fa477a450b45038eb18cfb0a59884589f58929c738cb008dce9a0b151ebfc05b5d70d13a38541bd4339283108efe1fb3adb91216a394028b203dda64f074dc184c2aa587a22daf4e740b341deb3e1432599ae3200e96c3be40358822cc523e4e00cd5167f7e8e9430c3d01be53254b7a62927640b283c8eac709c219da51cd806ba79266129c0b42ed6736c85f5cdaa03651af2a902ffff684c6f280517a2881e1538d878eb837b8ca44ff14c1e5cf100d4a7720e900585560ff6c97dfe8915545f3cb106576156354ba8a1b2f1efc8495a3c59eacf36914915a3c3f5081fb2e4a80c90a6c76d8300201862b0a41960c5877e2ffb83438aa56e2cf8ccbd69a7a5abc890f0626220c6b4fa397e191f51c709e2f084a602913aae19c4ac7ef9a9f5bcb9166fa1a8f89abd59c8c7a52358b315f54f414d7e6d34575201bd1a4a640f9bed2d2b54d33ee1642ffe777d4d059400fa7f2b50acb5e732afa16948a2aee3231475d67a85d72a052f1a51563e4bb641d562bbdd5a636b3c3c750119c0b11dc5110fccbc43877f9d853b836d206b766d969cd8270d6368cf828b3c87f8004bc7cd674e8b739e8a5462a874e4b0ab0e6797e9b9638219c2423083e5111bd47c173fb266ec8a02ed32a18a26ffda3f317fa6cb505bc689c6d93fb7113827fbf0d20a1e5c46148aa6eacb96171981a42ffdf41daf951bca5a7305ec14d00595d8d5584c5f395b5bfddacfb55925f40a322c5d80412cf79b088305ae52e8e782e862a7d707d6832e41c6e8c984f804e88438641704812ece4be3532aed6cbebfe0b1367bd83be0ab5b1bad84abed07be2f85d6c05c5dafbcc3064052a46ddc964fb86aa298c197a1dc1e16eb63cbc9da1da5c0a3b2bb8f75f59894d2b00619330b649b94e9fa0e08bf437e43f48f14409f1152739e89b154dd70af1d08b2cd777208d0930b3f2bb3d45929455ebe5dd3f8cfbe9b99db3118349b7520173b0e0e51c5abd72b88eca207fcb941daf8b89f8521607730f49733704899c39a683082a8f972ae331a7ead77e6360d32a07c12435830f6d6c582b0826e64241a324413e7cd498b38dbefef8dac596719d445bf2a9996ab10cee8b384f882c156e59247f2f9efbc49330513e1df6b61fb20222da2841c020a8a60ac6649f5807b7890c53b09fdb368d606843598e62b57601bf91fec5c7f347509c44c0b898ab00a3241f249c4c4f54419c526aac30143896814c88f8ab94ee39952f73ca8ae235ac251f8d1760e97d40bc823565e189245e8731c99cf877bc0cdbe4e3f68270a4335f9363c81580bbf930cb7086f5dafc0cdaac8af3d233b99b2d1cd276e689b031ab92566a8587de6c426a7f9cd6513e18374be575c47598741d81452b10652562915256372d18cecfcdd067cd004bddccf1849b846bae9e6f4f55aaf6669626c4ef74cb23e028e767ac2474def7e2b1ffe30d13421fe0e2004e7fab82355c1cd6d73fd10dc7e932d3bef32b70f5bbea64bbb462cda93cae13c254331e9652b61d4b51420dcd1a3491c9634700403828645dc9eff36018ad4fec30193c1ac1fab12e03d85c46657fe11abab4b4b1a4f5201c3d9498052e5ae554d21854ea14161c5367303d03b29adfc37478577841ee51b90ec64703d1ec225e75100bb8cf8a7f2021086dd8912ba1350c9cc744857bfdfc09e7d4d624768d72eab65928c0436910a544e8bf8118d93616b03c80636190bef6998bf1d0abb9f1aa031a6e94a9b8a4126606f41148f31be3837d3efa207176aa6c63ef180fc1ec6e8973532ae7ede5201519e22beed58e055ad0fd207af04e37c0ed40a3ffd4f1b851c3a0823b62669335d8e9e9f162efd86111e994e6357db66c5f888297b354c3ec9a761258ed21bcc4f7d83a0a601f46f5d2314b44c6c261c798e802a9ccb0856655ea96616360a3d89ee057b9fcb0f0e48505e8ef0669e89eb143bd3266c6230cdc1a2fb724a7cc87d2d5edac572436c22ce6816dea436dfff3669e0558a90a0c14546754a72ffa3619f272bda7974c86316601a97080318793b5fae067fa452913b5486212f6b8d2ec53c885eeb505d1459929a9baebeb8185445e67aaf220ab15e8188643acc570e09205d2f1233ccb13b7ef94a55aaa226d5438a6339b2afb9e14d10b64a64e3b7b9630f757e6d854066282b25db01946593f16fe5b743764871c091a433296f706b44ab97a1a0b755ffc00a2af384e6440c2258d33f11885f442560a884647199ec34b0ee47e1ce7e41044488b414605ab685125a4f2da50a70e73b395eb767e6ecaa044486b3cd72be14d27de408990c99c53438ddedc623ba09698e7fabd7f0fab477b0f5d44aa7738c5ba021145cd0d99b9ca891ecf2e3abbde09f7315a2c0b3d51d103e69261285e7d391ace595a4dd130c264b0a608904f389e6c0787ae71332fd7c7fc5943ca2b98f861c467e7bc517871b9a42de1683978c90e602dbdacbb5b5ad02fa2df31c7c7a50f83a9f5566bf26687a1aa49d2fb50d593795935c9540f15cc103756dc1093e79ca5de159d5a226c50686a40a35e19731296a6be8c808bc447d20cc389ba245ace28e0948e60e3024d6ef858ed3d0a1ba18a5373b90583ef7a4738e512c7f64146cdee440810532bce069d63e317bcead1adae1ef912acc720abff667b1c8631e6d798eaa51c3883a78a61b5dae17248f2edde92c22c9eea7ec3bb0c3f8d9d9cced7890d6e8a706950891ddbdd09780f1fe8cefa540af291a646a46360f57906c9cde32311a83269b4106c64aa8b1ce350c2199fa0d353be3ba41e47ad173fa6a98dc765694939616ce56da7e3e3ee182ed3dcb9afed410f30d1426803e8a24d4cb0761b79bef18637982974e303aee6bf4a8f9805f1c9e606e7a723dcafa7d8b7be398f1548d90eb244bf379aa8bdcef802af2ce777d494deb2f1bf0860b6ffeec8e5374fcc7240a22d351a55ff3ea193fbb6dd2af0b91d842d5f4aa0dcd5904ad9e4ab89ae9d70e98896267b51f87779dec0e4dc51d8f893ff1b80dcbead8def971f1b193d55f514d1f5e54b680542648428bd06b47461c12063272b498a4919a8e5c90f8c051bd1055345dc164b97ea33715668f5dbfeff934ef2b4a62c44d6c60b497a614bcd6df20dcca1a23af93512707a81f7a550322ae8b734cc3585fa9185ee81a1e67281bd430c638f20b81624dff320dad5ae20a0b8651972ba263a6cb4f3581aec95c9c8af1159f3bc0c6b70c6bcc9c939b51800d1ab09f1ef524f320560e0f6503e645d855232c7fab30d873aed6e526a58d47797f85d5524134dc4ad2a32027e165c2dc3698e0b3d427e02492f774b569373fe0f2fe200d1727a908968cfa53d22e0f620fff46a14919bb391b594894ec6fe8ec0eae3a695b39661139f2eb1aa22bd8aef38fb16d401eea1149c5da2340e0d2ac67dbaca984230b173120be04adc26938e933b971be79746641bb1dd8481d6a221fd28c1e6b84c2325c7f9e2c5e30a80441614cc1b5a1d35536f283904d28c3ff33d3cfccc0bae738adb53817a0c203a938d03f45e95a9207b9b396d421a22763507c6bb070a8b051acb1072dbe6bebf31f7707ccd99fcb171124c640d3df9a11f3e08b28200521007224d300db92150d953e7e9679b187e41c24728b6c228e0f0faf4c3af0dc330481151bef0fb407edf6b557e1d5437f9df6e090cc8ec73196eaefcea2d25f3392c4d263c41fc4fc7ce0f2dffa706f0938085a11fa646c75854f072eed0c5281efcb94d4b29ff967c50ccbd44d14ba29bc8ae4bdf0609d2e2c364f7df162bdde8e408f279514830610c391528fc11061d6a3c8abd6a288d538a7d8b78495547fa452bfc27a17021d15947abe07079cd64e8716b3d90caf23629af0e23dcf3b0a21be900a3a15178be54d40e00a982e2f5dd7d70ec202f1e77044df64640f5a10a356f714b57b8e8cb2de1df0e82a21a79570dd3ac40942acb1593592ce23ccf1834c622b0c70366522ade85612e5be99efd0f4bbed686760b7fa8bb684e362836490a1eeb3297f94e74f47b07d7314543370129026bae7fa244d3c1c3fd1f185e9396382ce1b8bc1e6902bd7850178cf405d48ed50851a392faf618ae1d4538e4288a18828cd5816b32f23d33b86c5189d362ee726e9d465932ac72f22bb4c30898d3ae6c9d57d4c6ba46e4dc2cea145e129481390a0f50e1450784ed1064c5224a0cc3a6d55877022568dcf8b3f41c2dd76468a240556d68c2938240b801f3b2ce624591edcde940114838325b240032b73a0fdb1c0ef7ec7bb00f13d0c2459152801305eab725eccb3391e778c2d7a1eee9b161ae28443d1c6c7d4c13053bd9782fa3f2c01b91d042617aad81a1c6845f950073c714e2ebf7b645e1a90745a7c9abfa9ee4fcbbbd37b4f9072c8b8135ca27c170677d0cd8dcb096d4e4743cb023bdc2b7b1a3ab8052875043ddb08b25ea8b1a429bd012caf6f99fca7442eb60a9b0bfa4498c70ebf7c1df7bc3f674742d338021ff1c7d9182298d60c1da6bb2283709fc3b5332e89c521b8ed8a83301cccc670458e427c20a1532ebc1314b4001487bc4391c20dc04585c9f8ab90742f845cde27f0799bf0b446316fe2b27d29d85c081b410309675cebc61c6e651b8d11c73e8b4ca97435a51e5cc5f4515b6e331ded9b8b6a5e5fa960b7c02b968a83cee0bf33b0e78f3d39c72c10e20ddcabd758eb08f2a167c1de10f70289e26708fc257a90d6941435385f3e643c5a7890f7f27d0a0cb6738f3b80ddae380b53858b41e71e0451aa135d1a16cf26c2badcfef89c75adaa1c385f4db3acebf00476703e92cc2e15bf02dc18f1d4a97df4cce5c51bdaeb871b0f9b10a7e8842ba32e3cab45e71083ae88f2d2b4585423364ea0c0135d5ff6f120d1debff8966c1919c390e3922ca323f160e676fe9005db4c81bc81c1f094a22e9f04954ea7f44ff38c6b19b64f9199e082e84ae18a3c2e1f7c8ff873516d382b6dfd6a8aa07173bb7685664c308152e26b84a838d74c0b41582f2722dc1532e147feefe724baa04642b384ffef511ad1f9e3bd31987964148b6619647fe10a5cc2c33e469b79a55d5fb8d57cef34d3ba4445d701108d1c9977eaeadcf8f1165e111d1e441f77c38629596aaa97db17952e9af73ef49409bff0d588e97e4a3ecb229d7a3a951c00167226e64f1edd719cb21b3faab93b017f3c3297553ddf833c3b9db9ff32a0ab599a164fa74425b2dfcd3c07650a362df9c252be59bb6b582fd867cb68e53141e8b8c6e5e7955a8fe8039a1306bb5d1e8e82c82ff5717ed8ad65456ee26991310cc3459f44fcaa82d0e1dd4ed15e93f28553a474efe83e0eb5c6d800cbf0d27ad520b48926daa29f5c4a94a8fafe9238fac31bd05c6c3126eb4bd8fc761a712c754f27887f54a8f546edae7b99e85a9ee1f1278ca88fa576aeeac4cba101f3b8be68c43f374fee1957d2fbd946f9203334c1fe845a2dedf40ce077571e92c06a571e38cc9843a0e2d81dfb72e2affd13abc1adbe59da3f9f65b03f866b27c168aa045540c2a6fb00d0bf2e6e67872133d4ea5af7c206fdd3930398eb65b98a26c8878f856c1c4f9a4377767e32e665f99797a617784a8432351f2b053ce6aa1a1eab752dfc56b0fd413acf48efdf19549e80688cb2f55ab222273f7d85b3633d56e072160d5202df7348de13f5a7e485a9d4973e518d8f15fa0b090e214970e46c1669d1ec0fba48c9498e20728756bb4151df1044b7f9063c88113132ac016017c2825984297695db30fe422e0b4ecb784a0cf234dd530b385b3f889d4f03938db0b04641d45f746fddad7894156d03b949808f04a3ed0593584a94d004f1858aa9908c720060473d462841b7daacab876741eba3ae7952bda29b44bf987164e05508fe0f7e4a5c9fb0cbe11ad2c06d30892fb74ef0008341c1415bdfe2dfaa52c190a5217d9a3d0418521d5a02cc0878b7c3bbdd5d1a93bd0cca63ec4e196ec909bccca1a791c8437368dd0f26f8368be5164d9ffc495ccb4d3cbac040bba30486d8c4a415c1e7cd053e9688843f817393c1f2c2029029c7c9508d70f82c64e86b972262908ba30a040c3decef16a797d69a3fe89efbc06320e91bb9f6db3dd7defcb8902e029beeee9f081275ea82e88a2401e529a4cda78ce32965b3f3ba64da14655b6725f3e92dee39e171c9c05eee486a0b971b12dd408ec7efd6033f22d3bffe875c3eefe9f0d5b478fc1cc111a4397c7bd92c284d2ac44abe8d9a1cb0f3bfeab315976995c56d6a39f4fd806e068140884cdfde50501adf9d00dff533b14ba273da2b31fab317ac174def4dc57556cf7921caff733f080327ad36cacd5e1a068c0a8b48002a4b8e4debc8c58f7d24fc804aba91402f747211af62170cf8e5b7d8caa3edceec3e44124b0dfb0d0394331cba99ec344cf2e47ca3391ab5076af2ea320f765a4c04c56d56f00e58479441752e26dae2d37861716220f73026645dab2c68570a039540bd7ac8360a091f99273d9346e0ceee49e731015c6bc381496bd830714dac4d1b4253aa533577d134f49cd231fa522704b5011d06e71713d2fde8f307b4e077a94103ca230806347c640444860630b18f44f034bd65186290e9352b0a157a8e2450fd575ff48104f8a30975e0445b6b68c68eb08dcb8b19300c3a01a79650469f29b8653fbea0c954e3d591d15712ae1a015688710e7120359e094cf18d4bc5299840bf6a58a80717daa19a1944eb4bc923329d92550bc79e5802cb4d1d300ca9abe8ec99868dabfb9ed150d93e2b5345696be4de50052a35b3e2396efefc12c50799e1298c29a7e7d67a9df51179db2f19a926854bf7c42fec93a275dbd80edf4b8acb0cd35603e1fd4b540346a1a81d363aa8df80b2d283e64018efc08f3d3af5dd11355426d014a2ac9f4ea4c54ca8c440adf0578fab9fabf955ca16bd054e7de6bfce1b29e6b21ed290300114bd0c2404966914d696ac5f238389af9e7a22ec20d341518a063dbb2703c786d0d8e46bbdd21a349be27bfde0f31ea77d8e9f97acc4f7e35485e285cafa8a825e1d4befe43959054b4f0b462525bfadb667e675accf11fb3151d753b729ef48b40f256323600bcf53d4f4d0ac28689cbfa8205cf97524f3fb1f4fdfcb1f12e1badc02d796c3645771699551260e5d173fe241f7a572b0035339e13942bee08c0ee07cf1fde6b4066cf471268dc90d1d3236ea709a19382dbecbbd5bb731781b6c6873e99f0735bcb61a911b475a06e325d0845552411a8eb89cb499f49a48baae83bb471fa617977c9f40daf71238bf1abb41ebc015b3fa0f818e6203c1f2aacd9427d3ab207fd56f5038b858429f0ab556c94035c9488284d08a78fb150910729f3711aa360adb29db85eaefe8c596a61020eccc7ff17cadd054e621a87afbad11f87709c77472240e3176ce1579dbd9920883dbde10b70f8d180205dc10dec95414c4fc7340d52d8945eeea3ed08806e5441e2a0ca6546e6cccc104432153d67792498a678ab0d511b325050d691e767a16642d243fe54bdbf6585e14cdb29b571820b8b705ddc7a3e1de5ae16a98c9020fff0386582e70393233e5bdea631a28d47c7190611bb11e0e634c651e1078a4760c624babfe3a6b394b923b8060d9a7e479d47f88d8c754411f2efced384c34bd13dde13493b74926bfa69f22e156406159fb36c6e1bb668202ca62f772f2d077868d44aee23bd4a1a2498af8b38874523367d957bed2e9ceec8c28e14bd43bebeecfc207c0c1d2ca5b4effc7421e890ede6ca22cddf3683cc68e64a1b2dd696357cb5379c2dc56e5bb658a5ed9dcb9f0fdc5896a704e0a3a16a5ddb29e8922ba0ecc217481d312bd686440f69740a342140ef1e3827dc490f5a0075c431619c2c81b21b3e68f13372bbf9eb3c83b1b0f529455a0e8afcebf3665cd2c7bcc882ef7aa02bd26d97fdca88ef089b9a30c5a7ba9179e8af2b4d58f5075df584d10d0c9722b83984cdb5996dd00a231c130f1614b044b9d38ec58ede7d993e507f0deda011a9d49943f81cffba678f403078470089e669631b65ab790202e7d616030d00400e48387a479fe0c270b1bf3e245af889c7a5f464c36efe63beb85c354e329786a095541c3a87407e82bded3ff8f5545d5b15fd8199fc9942b7e3ff704bb60ea3fb5012027ebee2dc645e16017de79dde8d2fdc3451d0c4963a0242043b161b479cdc4e9c9c69b815a220abc9133a74ad47077486e240b26fd4ef5ea014ae8200d33d10a5aea61bbd5df2943640cd8be40e13c0617d309771b8ac56a5fc40d4d2b92ae4dd2bf6f4a0912a761daba652bed351c7f7fb77d9015cfc0d11ff16c6e7d56e994b9d3e9b9a535397520b7b7eab3536b8ede81af676206228703101126ca3856f6d15d37a5cdc8c60778a16ef25489646f0b9cfc01adc5e590edca0bd94b65e8193873f502fc8ace70d48dc73c48dc356bf05801b1ac67ee81775cb9c6d405490dba3dced9b8a3392e0994332648f7f8c76830ccb6089dd890192c23655badc4ba3ee73e1ed4138a03da94fde87c24721fbc46edcf42f087d9f57403818c5016844ac6f3af66455b24cdcd8b7d9fa8d211ab6e78ac914cb249e91087133a0d9d0ea77a3da7d507a1112531e33337c34d2b0da4134feab903e33d7c536b43b1ec6d3750512b7a85832641aeed96d511df3a30dd4652ff20deec72bdf1cf8e8ba7838add156d5303ca1470ace055c263ef6ae300b1385e8fb9cf1c310e33ba941b1f8ff86f1aecce5be806185c73b52316315d3cde00fd9909649848bf3b2b11234bed850b286776e0a608a2b0b198f40320c8b14c7707675bb6bc8fddf39153d024120afdbe88164384576c705d2a1efe50609b7214b2684e8d22129c547daced52ee9d83bb5172698233b91c0215990880a3fbb4ec4a45c205a347c3b5d29ca45ac69ce7805270e3e689adcf9e96ad325f00aa90869e41804fb05873f1cc2aeb0f0df693001ed075465fcf042e2afee73f2bc133be8bd2c63533f1f31018870e66b17dd45beda74b0ad8419caee28399c7c88eedfbfaf01e3dd37a1f513867f75b9b54edf52c36980214206d8f01a87f60524ff51c012c2882c1f5625a9bfaddd4cdd2be07dfd7f55cbc22608205be56b434cfd26330ae385283d5d1f10be545778184c74a77d035211dcb0b42ed8f444c8442fbf332b9e5c1134bd773c105ccff556b52268fdef9afc654933abbaadac760434eee14e4030d909c1d91a330c5136afdf420faa09db4fdd2d77ffe89fbffd5bc87dba1752fb82eb61c17adddac016b2ea3fdf6a99ad25fd81d302b472d200acd436875cc3596603bcaab41a07c1c2b374241b32f37827cdf8bdfbf14cb336935437ab08e718872fb036ea0d913fc32d3d9d6e56661a539d4daa8e1ad4ea7c95c032391f5a4158dc32a59f5d2bf0fd88c58ade5826db1dd8135094468e6f1ac36c08d3ed9ce2c958e6ac81f1fd3e2296eb1d9fc882ea6e1f6ad0b128c11fbe9299730ad198a31e395d43adf92e324d5cf4fd141b16e697c14c43fbf6d22be6349836612e770ee0f70756f9092707c3a5b4274027289ca82951b560946ae6e80b3ecde60b194f5c2ff292b1d0bd986c0ffd96e5350597a2c40be8f24020549ad8705b2c0460a1c533d512c3138a4f846473f93c888708d591d14d94cb94750190ecc3f17aad80a424075ca435888e14d2b60ad8491135eba76b1e7daa6ec87b8f19e597b8b1f78719444723759f2a608cf3ec59b8b7584653e3311fced03fc61805884b3d0606a618383d5145e9a30c085d9d482baffc3476131f933b63a1b88f8f7104667d2b28457c42fdc34ff23e23e36dbf1103deaa1111b72e6832a3461ce17cd020d64809b526ead509f9588addb2b8ffe9eb51bf8b0786f6e0a6da650f6960b129f001a69bd499538ee0ebed6cb585d9eb1d56ad194736f3e21389089bfe72b2b1f31d37541ec2bbded7452fc083413631def304422655986ecac19555c224b1b1b7c0722ad379d7e7e15a8d916676e70ccb41c78c22b6c69065e78be41f532bcf7b204f8e9802a70930cd24576be5c0dc89e5c23d55b141318b71d4eb9ce369c8fffe5ec01826c2904ffc53e8d46a471c800274a29149b6086fa8d8c1a0c397ed685282843fc4a35f491f70a9dffe2c4f8edaaa808d02d984c90c1dadc3aff9ebced30772c285393329ca4cb79a295ba6b1c4834dc2ba628f981f712acfd98d20dbfa1e97c5001995d001d8a840a60fb06f3d402b26309d51b538253fcf5f1ef25949c90890b847992d9aceed4d1522807f5dd539d902af9d13c1d4103cf72d45059d9af2a6a90139860d3e736c52c542303d7cefbc66797066a6a4532a2c812155619df5633875c325efe4a557772f023bb92ea72c4a44b12c1934a8c6e1af196ffc9d7a434f1457494e8a567fa012b7a592a9809af5dd51ea307495be4031196b6afbf47106e5b9b3073e2b4ccbea232a913d08382d63a0362f03c0307e581c927d8594d228c6b0a2748c5260c0cbd535685d3ac304a2cef59b8c0a12a7fd77be35276d30e11a0ffbc1f3d09aecd8d29f4f7a01cd0eacc2fb0c52fc250283f3e877bca7ac813560f84e2789df495dfff0e330cf9dc66431d3a1f9f3cae6091e8810224e08c3bcdc1278ff40f72904165d901bd470ab01347e797fe20b810d3aa208a426d4c0fd1a61c169bea1e10ae4465894bfe5274d4a858a170e572c9637688ab5adb641b96120d2616815f567631ae4971c8bef7ac1378651a227506047e9af2f32c1c48910f8a258e2ebbcd2058a9655bd56fac6381469715a67f8459c501379bb47d888ff8453b5ed1f76d7cc5adc030b1e81876806d4115af28210580ea51069906dbf3e40cec3925e0cf4afc5f76d88eaa3e2503468b46986aee7105029e98a02532fbd086819921c438d2db4bb193a5b054d91256336484a65c048584caee22f833e1421cce20b0e13dcf1f16927625c9fbd1cdf6bd5db47bbaff3b3c9989cec607ec3fa049e5e2c4c84a875e287f87b62843c37555294dfee16c9da0457d36f3b7a48d12d765620bc2462060efd479e5525616c990e54e3da3406dd3e0f7afa872ecc4d4f50ff09f798148ef4f5ce2d9dae0ac96520f091b5d5a3204c0502e14ac617c91c51027be55d2b96a1077739b8ef88b16848aeaef2ddae67058bf45f053f0138da7bc5c0b98a244d740f49c13f927675f5bf3bde3fe7ce502bda68096fe7e96f8b3b3be09bd30f7c9f4ea1f538dc3cd8bf2bc3536ff9d172ec4df0d0f796bf92c62ce3de1d395b397d623a5f2c6e07e9d55d8f73a1a8a021f4f7e7c098b7d7b5b69eb7944ff7248467918702efe0a4efe8a460b60eadd5dbc8a262c8f959a8460dcab2520a450b36818e1cca75890a177a64c1b86f276c137c533515076c411c6a1d11f7f0c049351a45be1857034b35b2b3978a44907485f9a4c1bd1837fc74f0774ce4c085c1162df02451b2483a9b3394d249c5c63b75e7258d02618484ad5673600a1f0a0c60d616e120d325bc599101138b4eec64804d33e1126029114a17a810ce98e0f34c07917c0521496419de8687fe8c886ab734ed040502c960ddb27285380c04607c03ecdc9413c2ba40955e58aae80547cc382b869d23f15ab07b8b29983ff8819616eaeff5ab8168bcef231435a772402240812153bc21769d1854d935a55014914119f74367aba18ee68cda88718f9ec49f74bc08be6ed85badf19948da9e891c1cc4412aa29a2f1b951a1c3ba42e702eaec1c855504b29fe874295afdb38342fae937404f58d3ba38fc3500b628fcefaeb44511390a0ae32e2283ee95a5c7a853ab759fb0f8c5c8ba8a7047c9f08311930f0c1e1c46d049bdf04f737161e1da288bb4def1f03684f963d0d5aafd790f674a72e4a94dd6adac625e67779defd5e828bd4e2cbeae9712d9b78214ad953c10f7b77bb21acbd400498ab6af7adefc7cca990aed5e9129a1c21518df1df3d2c262580d1e575bb37ccf354b8d104923ea88be44fecab0282e13d2858682124594ee5371ffe10ae4fc21c0805ad8329118354769b9710967315daef3c217cf2fb0328301cea49a352eb66c64a6503d3881993b42a9b62c8f5701bbf235e0053310ab64f38b507e41871f6089f4d558a58279e1a89baa6bec99223d982fefdac35d0ea42080d2b4714bd201b837220c4b819557953f4f7683a2db7e035771f05bbdd94fc2162dc3c330394fc75538275d3f9a658cfb99c9a4661e7e5024501616654de947a2d0617549085d1851bec328396f55c126a3b0fe6fd502e555d7e2805a62a51643e0d627eb47c3565142c1bf01424219279a0bcf6e7ecd9ffec13808edd86931c2f09e8f428e7988b0c2d7cd4c7a6d24204f675f723fd37fe723502d8ba0d2c09512c8d1f5f57314e41e7da7c4d9b6c24ed9d8bd0ea95002396fd0bcdf9cea01789f9a6f8d0b78da3b4eff744b2a6e10aa21bf8457a883863fdf1d65d5a1667a7aff59fe0e7a1488890740f797a9213e402b47711f95a82eaf7a5e89c0fbc42fa68c73cb83a285c181ac9ff3e3a086b0a8928dfe9e9f26aea0a4592aa33fbe835cddc47be8f2bd8a490ff650fd45d83d2405fd71c8a24bb56151c2c97837d6e6efb72f54c910d33d59650245566241a3f4b8272ba897949ee67c0af1390d3b47f4c9d5e3e86cdfe138a64cbe830e0bcbc0625e48f204292c6729bc1ffbf2384c37d8c16fbf0b336b30ecc78c23facd5560b2dbb610ff06362078d700ee66cf3013321d385a5254aff75b38f6ec958c43a5e2ff6039b67e1e6649b1e818060dae458b7fea82b1ac0898a289db506b2a4f66fea9be7e6c1af95e164dedde469578b6728ff369265a3e07d60b0d36af569fdbb9b0754796a793814618304d567fdf4dda3ba20162c4774769fcbe92495f029601d33350c9fa8f2d6ae92654d331b456e4a2818b30d62530a30fb5449bc13495612477091fbb9558b2ac1c5488fb4da526853e1a4a9baae968e4bf07809533d0beaefe5008246b4ae649d6e3f72400219605d5199f743a3a9983011ca6a1c4804127fbdd2596c981f3c2b43cdea466f66497f981888a497f827f02be17c0169da9613f23b524aedcb06c5c1921136276f6f6c1186196b567a929eab674adf6795bfc692a5e3b665a2da03df9ccb894f4f0b3bd6ffb639d70274bbad3d2177517ca0b2714a046e7e49ed118c869f152cd2baae5f692dfba7a07e80b8cae6da0c5dd8541d104a56ae90a72207f5145719c88cdd6e6337e4b8edb39cf10b0a01dc858e4de50a5455669447d96765ba47982330d834a1809d3a61ef7f1490c84f8ee55d4af9599d53b2180467e4a289a9acf550e497a47e71ea3141672e1a3ff3401841f4bdc1bbc62e3405a4666affd2c805dee24a1d5e4d5a7fdfa666867f3ceebfe78ce1a926447d15de689dc7c4fd614660dffa5ac982db37428de95af6c4317a7eea3c3d89179759a0814e19fa3e9d8de1cdf41a43e162c80712b5e47a4dec3a2b96aec3a45d17166ea24242249b48ab0904b145a71f39ba14b6b8fc2fdc66b045c407bec3af451ba77b0d520ce43261b95b34f42f413f4658f6f95fad04e71647e5017a4e08dd501849cd69cc961e242a6d496e48bb4561030c9e0e76d20d835626a3de74f5f9f26b9cddec9af5892612625189fbd21b7d9a48a961c26a7e9420c2e5b289c66f2bf2080db0c4282589ff17bc4ea612a2c3a52da8396787d71a0062c6c54186d199f235d98a96a317636cfdd31cdc6d51645a743b7e0509f587d828eceb349591951e049d077cf0ccebb31b0c3bbbb0091c049cf06bb5a881d4c68e1b7481b3aec93b2ba08d2b0c96da13cebc5a6849a83f8ba7b61d820b69f391481c24fa58192b8dc73b9caa715731037d913226f09242ff7a357e75e5696447590a2e191c1b51a08ee15b4e48a18d4138630765a7da5613bd8b7e4aeb38e91f225970ab5a7f004cd588842cd2ae191bd303f5fdef385feccd8ee713b43dc68434448e234eb9c3193e63efdc77af2c07151d26d0fcc102b3c15c40e85c5fc939bad9d617cd1f671793ffd8a0f3bc70cc2083c3775a2dbf6ef3cd92397319aa263101c0a5c582c0402b19710556302945fe2dcb910edb4eee09d387cb3acffa21045c9c6f136f33702adc147422d59049bb094fc3271b5699305af2e8d27ee5dd521e2dada916a607f237a2574bb404c4b29be8c88a157d96533b5e32610d61980f1c2c4839ff82f047544b4f98a5a144cf6d2eb8ce8e1843b112de12dfb6571ae1fe0e42a624ac51491a3dcc68a105f059575242e6166f0c018d91a9c88ea2d7b5522439cfd7a21429107b5d1989a10b72a5e0aafe364eb2d689cab1b690dd724bcec804d187859e977002e18975fb3d13a4be88dc0f818f0c21014af9ab66ccedb29740b6d47233f3419e008c577586f8313a38ad770bb684b9beb6f5f5779198be549d72ed3759d1944bf16993caf70ad22f119df3393b90210174ca727cd8a052791e78c66765b9bff7ce70ed10b19bb45198b62d10dbc0b69730cebc8656ac4cba319d4d9af85ac80ac83456c395ce0a582b70e49a5296b2b2d49177912a21c834ec703c81b17b70610c3848c83dfe3d81193f3b7e35086a4ae0d6f5f3086210a6c4ac70d946c8646f7855ebe1f02f272d2921934addb97ca854db09ecb607c9650dc615a49165e9357984dde4436ff96600c887212d342e55f5232c61aaaf43125a3a9a9cfb52d062340cc9baad7f3664b867acd1e891f203a3520a91ce7f5371eb89728e71c2977e243b4a011e4bdeeef627898adf186728da2b1f9be9938354500c84a7c6232e9e7b4df368a6f3f6779248b03baa8194fe49715a17b5c3ab797eaaf03ead0a92da8381c279bae8acbba02be800e81abb1c586845a1c3cfe0513a688ee8b774e95dc7988b53f97a8360a2394b28c8997faaef979b97a3c9719f57b6dc0917518aa57220aabb8e3a1ed5708f09a4df5341e7e79b703d595d81db8e5abcdd869962cf5e9b2b4e7b077db67e4f1efcf5ce82599d0a40a0b311873c72a2853f6707f1f20be872eedbddcd2e22d8c1e9bf8dcd79254948993dfeae8058849517459c1da16d846623548bf97d5d696af8bdc0b291f487a70434f6d94dbf9a5d0c13127f71ef07577026a1e0119d1605446abffcc53a045b49c837c08349187a6b22f667e7f34e2efacaab56aeb3d57708656497bb49e238539278857620522920674b5315c1ee9fe35b6879547d484a22b2969d22aa5e5cb5765e726052f0f945783381245c4a5cfd05bf39b7587755e548670439d29e1e7d3bc1647c4992f0b8cf5218f247bd8b5f5fad8fe2580b9c27e23629e35235c46541a6421a531ffb12088af0087401ab708b7b3ffc4ee229bc33261808e9da6a600aecc5eb3451192705776407fe9daa5b488c841b0b92dc369e798ee9751dffc1753a1d169b80e4b49d1b6111ace0d20e6bb0dc3fb24a09a99de86db468779e460347adfd04204b30e6f78010c2fdd7d1563b42ea3f315474f807b1b2ee89424c1c7cb8a1cbffabe83d46488175e944218a04d099db51709a7adc7f0b6eab5ead2eef51f6a30ffd0aa1f90712053be93a848d5a60177f2099bb96365086b0eb023cb6f324afd931a1d24d5b843fa0ae177fc286af452d8f916d3b9aa24ae51b0ebc99405d8d6cc9214bd954db30ae65bd86c2fbf407e661fe9507302b4ea5c5ff6d3f3ae801b92e257505558325d06ab3949db258a5a054c9520d22b22b5e0a5da479d5d94499e1e7f32a07912e0f2e1e73cdc0d94782202efa0bdf60721cc17d7dcc6683233d2746d3873ecc3c986f1e6b8301dd6287dfbcc905b04e4e0d29cf5c963014c5fdc8bcc2937af95bb7a7b7f262a284c0d59c0cfc2c88d23661c542482f68e7d723bf8cbf41555bbd2fb269ad7d0d17df58630cb03a6a7e0b0b6fb2ec935ef3f409e3d2e7b4b7042709d12381fd2109c0bf7364c9e9f797cff9353257a73b8f1c9e3f2d6e7e13cfa7a8f36d205c01a5d99c852b1c57565f64fe590bc5a3160d90c8141bc5cca32b3482231c4878a7b9de71ae7857765ff551401f81cb5be6469de481593fa519b301b9a6b2ee0a50ae58748dd4b3bbf09315ccd8df881322ed05988da3f6ec4929687428aabb260537e869466ded336e61a0be87d6c34b071372f5f069517af468e805a47f38f48144a0f2499545ad8f19e36684d9b400826ccb158a6eb4c2be6c4c9eabd0937ce73f99baa2128b034d394e69244d64637e1f5efcf3be515c606acb6fedd79d8b2531d236a1cb9a83b01521233b523f3fb5a56dc66bd40a3cdd3a9b247f28c42b31c164a04232c811a8c95ef38674dba740026a2f3c7d4da4c21240514718aa73bb088f9cb7826a7a4dbe72cbe49ea9846181f112c61de114868c50c70b1a56b68f103d18955c85a32a28f0eb9ed80472647cc4f25de499d61b9a5fb12083504a71d4542806cf2a7fd6735f45094de6b44cebee1231d764a09697aaff0d8b259ecdc9b4575009826269ed69939b0354ae14aca08c535cbd4dfe08b9230044a8d4a6366cac13723ce91a5cf50b8ac3274ee31dd16d5c0930cbf495a094814ce91ac4e2b19b2bc2620d3b0037ba989915d089339fd0fed473c95511610a1a7c976eb883a152c8f667e3603153e9c5357a4a4de1e8818fb1507dc76960baa5370c21719ddcd770707c3a7958f2b1f3e298691bf676c7a0061c4992adf77fe28d53064cd0c3888a858481a87d89ea4edd8c36a640ef87c372a52e9e853c1f59259087e7a3baace3dfd6cd0c1f081f6e8e1adb3bdbfffde6ae2a0d4b8aecbc8ae6fc9fe83a304b655ef8bbaaeb4b1ece6491c44fdfc9733c08d740a01075882d1eaa5aeabc05aa6577aef0116eca34b3e1ced5e662d0b79ffb9deb5d83973255e976ffb2a81befb51a8475b5b0edd5149c51fb2a7ee063e7ed1178947a3f9729675fa0aab071014201239db158fe056bb3e34ccd5af9e9ec81a6920b240a2c63c7ec1b9cf5615282ec6fb5eb6c6b40831f2e4990e897fef3d1d0a07a739ad07464efc6fa3f8ca9a5375c4daea4b1ad758c8d45a882753944d0c893e0caa55fe3a00ff2f763076c08243108b9b6f1f0e41620309525cf43953fbe056263df1fcf11bd06ffc824388ec584bd49414eea8ca4aaa699d18e82ffd5215f4c55b0b9a212eb2c93d71880ed5447c90061851f46d0aeb55a1ec4dc0720b92f91e8fcf731c1c415fbb96919f5d99c906233723d1173efc9a346e0f11975956bf2387933fbf732abe0d3a095e1191bbc939380e3c384a3733f5481faccc8a81e0133f356317a0cf0cd20c15dfd25cc993b96a942a7ce90e338aa51f7c5bd280f2b3c982dc5258b37ca7ee23be4302c2b9b90576f4f495b46a5aaabe688e79ce70dc2468ba64901985589fc3422843bd7c4f0b78b56113a8eed389485d605e3df107aeb77dc42cbab641ea66b460b12c2946e5d5ba9af5e51e130908efc8ebebc776378405c33247c30285e605a66da7854834311be1d0b508f21db9766b0dbc8b92342075e0390d75964c8ee2cf38e19b0f96ebff928c10af5b7c358acb18cd0cf65c2f07aa2e77d56a9b6f71ecfad343463e875651ec9bbefc86c1ee59e6941a2292098c854ba2cc6a0cdebc80e01a462dd412fd977743d556ea4226a7c4416a45809c0fad55ea9fa38f944cb2d52832d0f7243bb2b523ec38891a14cb5a1392044d71e859e50383cd850979c35155c7ce01ced8dec8615fcf20767a8b8346de9dbe978e0cc63051b6be72c89a488025c6442552df2c20db1518be4279548f319bc178f591c800988c493fade7abc8b3953216dd12d58d4b5cc1369400a60651586beeec192ba9c95e5ac2b86b9315a3f4bc588f0aae42fcc5dbb8c20d505471b0e861be1b9fd33fbc5848f6d1d2e8c4f38f96b7e597ef9b601cbffe809631c1cc3f686a83cbe7d15a7af982bded1e9342958e56d8b42021f02895d52ba86317928e01fdcae84110c785604f011e0d3fdabf4dbf7c6220634f7e7a5d4e507d79414326da7567a7e246b28c4997b65a6254b0b2608cc1c5915e99e2a3972031254a8b673e8a12972bc15d6fe3ef4f2ed929f16286f06976ae3d03a20c10d821b398deee66fa16d838dab9e582529668cde72b13a7be3b594cefb47a2632c7505d32776aa78d84ccadb9d5d090314bae44bc1c10f0eca9d2dac77f08712a49dd2383e1ca4c7eafa354846101fb876e6068f00190d39878dddce6959e455830e05fcac1be5599d3c3a5a4dda91dec37beefc6a7462975c0cf302dd5141e2fb5017a54118c152eb822484230880344bac4d1ce6ad5121ee0d9c5f1146f159a0cc433a24ed478b4554f1d9efbb122bfc03059b03b87cb815c89293e1063fb21ab3c83b49c643409094be68e084d4d8a2cc58ed2a0fca6af9421d16b103c892dd43a41d33dd18d68831975f369e766186a2ced63a7dcdbcf47100df1f98ed0140d946b28ed3654cf3b1cdba4f0e07e2932b6b10c9ef2b8fb3c6d01b0f840d2715d90008f9c0f30fab068409312a8578d2062b1e933702bc085ddee30bba042d93e9a95e6f320b365ce451723580874eeb31bfb9def014787e96ac2120c730ec95f13b8f63bb9af2dccdc21938bc1b0e24dacdc7ce30b3ca688665fc1b68f3f3af7377bd5a86611a073010588a4ab9d23afa199b66f7e0a85f333028749775deda278d84246b681bbf9f59af6c93c552e8f666653129c781f34efa0b8515c8b0cb5b05a43a1039217fbc75d3ceda6b19121382256f58fd88f4a67e2fdb2dc10a6dfa1cb976f313f79dc80c66fb672b89137b9bac937bedac45444d8330ba4e9b59569aef83df01cf65d84520262a7bcbb2802a2f634a928c2f7d634fa80069a5768aa0d54b0691941d76a616f26535448ab11a45b49959602ccaed9806170a7af57cf649df5bbe5cf67c905d89084e48e31aa189af0462027079727b8de519b4403363d0299b84e95a9cebf06a23cc3821d8b71222e05cc168564e3c0278f2097fab095d7a2ded0e57ddbc69ca5029229f305c3e74c6c986fb855682464b46264b9d6e29c1f62d6e0b4f1334c8b7c1fa125321eb22bf01a601b664846e41da6a2f0bd7045dc99ab37439113f103464dfed1ccbd0b21c12008664b45d9d3c2741c45544e3709e59714f92b4e64cc723a9c42fec282a30e10333c0517435c94c98e2e991a107d0e10bd49f482618105eb3707615be5168b5e768f26da75af8b8edca3f731b39b7b7d95d705216576caa88a842fbd952c3c050c36ac3cfe1fea4fee1e0c2dad868896e8017e730474689782461ffeea45350aa85a296bed8c754c1f33bcae140e9e401793854a3f3272df4c38468026398ed83ab43253857a5f908aa42fe699da16074643c59ac9abd645f6ce56ffd387ce9425bbdd0904eb964535ef0264baa96a761127d9661fa9656b01dcedca5403684017c3cea522b9d0d7d2c1c5ce6705b3a229ea397ebbb6e739db9a633bba95245b066d97817abb59f1a2d0ae3660624a7546bdfdc595f569eff56a9092f91fb0174d3668c82cd6b7bd000b459b6e85525a13051fe79d9600a65076e8e6e8401a09f84d98a892cea509dbcc49dff007165c56a9a3dec4a836ae8cfe3a79d75cb9ea42c86cdbc65a02395f28d9c40d4af37c7fb230f89c4c7214e0ca64ef3dc8a1d018585af8cd37f1b3d02133d6fe80bcec3dd2e46bae80d079e19905d57755c19ef48fa631cd0ca9dff2ce59c3fbd106371b739ae23c11d2e4b5050df3aa57bc3ab110091e8f197d7ea7f982d7b6de1431ba17c016eb5c90c6488ef4af55d1c8e90b036442567f88cc22f09456b5392c1a01d7906f9c1ba1c60d56b02c32604b171d78d18a66c427a762bf343848bb470418517214a4955021b896f5c2491aa420e10ddd79d73504d43dc7f3d3a7cad4ee8800b79799c5087280eaf581739782871d9bd011e1bb99e680c12fc8ce5ec622805e369b70f9d3fbde89356f20134208bcc53f5685defc85562ccc6ef8e563512e2ef3903f69b351b27917cd40cb4755cc025b63e8ce8a119934ddb1a05f892de3104bc0eea57a79a1d11fd8793d3402519bcd547ac86d5d08844c8e0e06ed90712219973299ec61efbaf47fa228b9c3ac73ef0bdf392e8af9da1670deba8422424c79a1d409a36a7b5631d6ef8ea610f8aba85ef148444033a63aa785b4094aa4d0739ee113297af9f2e38a86863c0cda75e0178488e1f0af10ad4547106f833c1a240e531c6992493711981d1e786d5bb9f038b3ecc0152d0ada8e31e942f0cf0f417d8b27dbbb0bf8645bf6da146f6de5bee2d534a32054e078807ad07718a24a8ac4e35d890ad5c2724f16d609dd60909e8434a2ac2a836451c164631aabb4afadbe7234eb348ae7bd187c34518c544b606abf2a35fc832a8f20bb9882abf9083a85272922a9f3f10f83ccc0ba0e7e76f06ee41bf357e20f0f98e430f0a7d91089e91118741c94c8441f99dc738f2b767148392816022aa7c54957cc3a07c94a6dafc460b74aa7cb95ba37ddc9af91b72010db787046ddaeee9913df263116bda45011424a821e2a0ca88a4ca288320629129a3922a5feb9edb1a8ebb491fd07d7ff4f33131a01f81bc18d087a32a3f21ce3ffe9a27ebf4d644450b448a68f71702912306e5279f3f0fd8bebf180643dc4fcea344a0dc73fbf984b6aded8d4031557eb42f8c55fbeedbd35a7eac1f2fd6ee38d73caff2734413f6f9781269665f3857850a848cb0a68e6643bc21fa5603ce9f8badaab2732754c3f6c5438119ff971656c365c35b0cfa8750347ec8ad17f8b7cf33910b28260cd66d07872b843455fe9c916767fca59cdba679231fcc495af94b7630420d294fab9670fb589123682806b3f9412c0aaaf1bbade91ac3007c386afcc21b996a0a6e65c29943fb3db0f2639135813df3636b961475d8247caa8c32a832161183a8f243435019b8d41f8cf6fbe30330fdec829c1ab20b722ae8e9b603560ff2baf6a674f9fdf24340d0fe8ffb42fa759f03b804b37dac9c17b37924d233287f7a320ccafdd495228723d5bfe652f693cae0fd588382200fc8034a1918940c4a1918949fede0035cc23e199647062eedcc9947904740df7de8b7080d252a74048d01ddfd843c1e1bacc973a4aa4ae984d74da7ca28a5942fa5941fca9b2a41f2773048bebbfc8c8aadd9ce932829a87f2851b2c89a24a84a9632a892ca223a88aacadc89e0541c4911aab81a341c3915479286a7e169c8849a4d6d7742e3735c435f42b71a3acd872a7c0e92cc8a67fa99b009a45101ccf132a4981ac61583bf42634d31f44c89bf68258b2d816a7f64b2355ef9b78f44060d8217b5579f2bdb75615b118cdd22b268408eab8c0a30079762ed975fdc00cf740c0cf6c715c715a80d1ac6d59cab5e31d831b256d90e58f1f402bf7f51090de36aa5f9dc69a96a485b3b2f43f384e30f05424b58c2129670920f033d223f77118b7e6ddac3aff77500f300b4a6ee57f7a37b94deead89f8f4d4d7482b3fbca259a67accd2c622ca574d17159b9b06abbecd47ed9acad5e6c466bacea8b2455d6d025874b61a693e2521872d9e18cb87811a45d9ee096d09943d0d02515b2d953d7900d162c2d2b389d26aecf95e9c453a6d3335750fed025f5a2e3927299c19a3e5b13ab73fc7c2e337091a287bfd0c58957fc42171bb88484d4eed4ea4883862cadda5cceea68cd25a569fe2e2997255c5a2e52d8246d5c923869856c5c9460d97481225ff318b2d1417129e47242414244a2c70fead91a1d6ea74d2e35d81997d40a60d0680156f13da8cde9b8e8a036a753b52f7411c300994bca25555d74a48bc7e5845e6c382170f2f7e448688c359e78f4d4170f0fcb8d1323aa2f9620a20746aaa8ee921edcd425402a3192d455854184a6ae2a0c226a2894a186daff2055fad88786ecc343d334eeb70f79b12e97247dfae204a5bfbfb487fc1008d36f54b9ef2ab77db6d14de46d0d79b1723faa1d9bfc4443bfcf6d89d2d73e3d486063638343a59f8b72a0b16a8f711efd0d7994d2fdf0a0f43f3c44cf7527f2b40f79f497f364e5360ff414f4a19fcf711f1e73034dd03743df323843212f9ca18f1f1e30a1ef0559e9d3177da2a7def460e8c74a7ff340de11960f867eda0707b41379b1863c10cc173d17f234fa212f9c55f3b8e9710d41ac212814480d41ffa3abf42797b20f3df6ee516f2bfd3a06f7073424d598df3a6ec411a92110aea1e7bef3f8c3a37bfac138602bfd16b6d20f46f4337c38ac501817e8cfa73f5ff4dbdf50b5077921900afa9017c61a7a11f538ee42dee7f703fa1d1cf26ea820ef47573f5fb7432c00f79a177ae57e47efe0ce5b06b9c4a5ed4715c364b8cfb7ecb5e7626758c79f1cfa257efc44209eb29d6c277382ff841344a230db7122186c9c8ddb20ff1c08069bbfb05f47e4d73c3d13b6cbb5353c432e97941b2eadc904d71456b6d357786c5040bcb21d2e85345371290c654f644a42998bcf2082f6ef8d1cd6134470739b676bb647acacd5d1b3679abd6c75f4cbdadf5a98325653e1d2aa9abc6a7f2b48ed7eb984a8a1df04f9a8b44852639835948e52c39652b7869f63cf80f9a30bee4c83a086ea150424a89e469cbb433972e478d3cb3e1864ecdb47f7f7c3c020f7ca0ff77dac5781656d05b8b41f6ff615e8676f1f1568ec5b81a6b9bbbb979b9b8bc0cdf7628d3dc48f5e883d7ffc48db87747eb83df6336c7f44fb65d01ffb648f8debf61d41fd88a9e6c9f04c3ffdeccb413bd68de351bc05315cf2f78f1ec9091a7f670776638c31464dd334ede3b66d9ab67da1f6db73da16e316372dc6eeee66c36d62c01c342008e658ef4953d0102435751ecedd7df2cc66cf4cd3cc6e681b224733469565685450d190864605368d4ebd83d97bd00634fef66c17b732fde9a1eb0a67ed0af8d8a131f49cbd72b20158f46a7564c1711b43c590494854aa0b798486239984447121b9905cb04ae53a3af283e5e44c29041af64ddf4821700ee7f0f0e8f4f4c4ba1f1e5208349c73466c092751343e179242689c1f29c4a3518cf9b42071e0e2fb73214927b63e4e984bd88f5623d60e68e8a11f68385a71464509834ea98a41974568485574a5622f7b79590f832f5dab1515c0388423d60e96445eaf9ef1cf5ed844d13073c2a0b7aa3f334143ce49e5580c66ad393d6331a8d5112b7a3047b6cfbe9fe315c81d46ac51cbc553dddbd3688b1117cec3c7e8a667fc376f84d333feed654fd09bea2db7994374ad51fc50a03fcba4a021246874ee15b5a021a77a557f4ed5a6f8fedc6a6bacd81af9fe1cab4d194b455ded3ed0ad612aa4293466b4e219ffb0eba0b0ffece828c603a9e8a8a77a387ad5d18a1f7baa6a13f78d563de3bff117cef9a9ea8e56a31597bafa8f98702973c2a0ff68c5259652bd358252fd69e675adf6f76cca4b1dad98069406a7c147abeca533472b3984eeac0eff5e3955f58cbf0a86071a8e56aaea3285ea3fbfea8ff99c9476c6eaee248a0aa1ecde491550f9dcca8deca0b927c776577bcc0b7f681af63b18c4a2a41418e1688bea591db1aa87590dbb56f59741e8ce5f1d4e228d9888c0a023d668151242e387a3558ccdcb116e6578fba6713aa753ade9a23ca41768b3af54746dcfb4a128d2cde38039383145f30279de456a5116cd0add28d2f7cac3a0f167dfc470858c5b9cc3fbc23887a75392c73dea489ceec198c5a7e8c93032543c454f03f56a75c48f9f29dc9ed4d8ddf83a4fa8bad08b869edaf155f525fc890862d1d0534e7c8b3579103b6383357d56d948650fe2c90a5654a691a2ba13957142ae861e44e5946421c2ac8b98d0fd1cb0233484869efa14834b30c8aed053ae837dee2bef62a4781c53a833e1526a629f7da951ed2f85fdb29c547657e5f86d751e34cc27ed5cf4e2ca911bd41024af13d742ca70e2e6c479c499e2879e1327af48b9784e1cd652a20aeac4655634c941eac4cd0e4915d5090686ee82d545ead4dff60cef6ecb840723784ed159090e043de4f3f7f01efeb1d741e10db5de10e305a4440182390a81c6df6e66fe3c0f7dca60e9c18af7ee6eaf826e1363bc76570cd4b6d862b2e5fcdb98d4613f67ce811052aff8aafdfa54fefab53ae27f5c743f73a5b8fd95e911cfc48f1dafe87e48a30f1b7f77f6ddab48bf581d18f6cc7b52c5c822846efc361603c1d1f097237128dc091a2f3f822371278ec491b81387c2a1702338147e0437428f6710a4a19191891d819e9352feb4c0a31a468f8961fe16ba475c1dee2308d5a10559f9b985afc33e2d6012071ae3078715cacff1d323bca1720b73a706e297677012c37c7db35d2cfbf57ec497bbbf96caf65cd97ef38064803a6b1e10d600ed5cf5030c46d7646cc8038ee0a288114e48c13172460d49468048c2430b0b29372083085a182948b5681acc476ed0284910018a22a87001146490b164082dac9e358e14016709393c9f23a891460f4aacaef062cd18b9b377ef2ac075a8cc472a1307c2122492ec08c1c50f7c3885b47a193524557715aa3f0bfbae0a42aafa18dc035d056c39d4ca37e03adb1c0c82ddbd9fcc19743f16a19d15bab1633066d9fa8f2ec676d13041b1ba2a284e94a0a0251c9228ba1f2877033194b80225896d099d755550600006e82ed3dd8d49c6dabbddd77d334c66187bbb77776b2ef213dabb7dbbbdbfe69f53bab3bb3befee3a80c1edeef66ac60283fbfe3d0036237591492c9398ecc0c8366dfaa6cd4c82de9ad7d33377776d76d632759bbb3decb21dd0d8eedd340c7eddeab2d47da95bb7bdbbbd63c750a563984f20d28acc867ae06062f56a7f0422ab7f63b51febc0ee0b6f89c9b9bb32cedd53ba6f5d7c1efeed855d8e0ecbd4e8d576c340dd07f4e99a6cd1644ad904c3b0d9750c8934b5265846837ed1b61a390d8b71f3884da009f60102b732bd18a8fb80bc4f17b78e93a151818666c76705065798b3f36454da8a152bd77ddd397afb807187f4316c1f17be7e66d731249226b56e99ecf3de88411aa578f708d56943b3cf0b73a34c29fb30c70bf73e3a6edbb6b176766adce99dc6be27f7edead0b6afe58e0e346218b631c88c38dd73400448a264309f004149e5cf3e3cd801537ea0c2065d98a1841064643a90d1fb832a95dfe58d4f0d55a8417238124bee2c3f9052390a1de808edf40f825404d4ee700895269018c2c80e7690a2e5c0437ce22ac9684b683a9666858a6b45f9618e48ab6d5b556eae403d51014ae7090f3eb06085cd939c223a4f90ecc0f344072c60010bd693253db0b06a3d0163080b57f08c48314e439140e30228d8e0a25059a4864f73a8fb5043fa6408d1451445703950aeae2a0a2332608e05a11451fd73d0a89ad054553eb7597f86715056e0d2e142a7a7e0cc05bd779d33758f4d7e5083575371c39c04029fe72fec7efb1d1c72fc5ca47486b0fbcf03400f24d68e7a2d6ca5229187c34a1843a5dfc61ef69b0744d68e7bc871011f512565d4ea9021dd1e866e1d318a921894efa61018431f13e1fe96674206a2caaf4d3030f4873ef4d5d05f0db1c9132b38a71a6cd0ae589d5abe061b04803af5dbe029609d90803ef4379c628b077202e487bcf782760ffaf0fbd3dc43837f18c5608be435fcba3504dbcb8c446a83eba4cf0d086d7c406d80426d84a83b2f284d4045524a2912b14829e5e7b2b308896e741b2296918b74ef916ddc70e9641271b1688312915948263c99cba6c66d8f4d12a9bb6edf19cb284d3d12a160983b2834435db7dd32e7de55c452d7bd06ef952a6361d5f86956f554aac5634bd753e3a7d79b2c657169964e1ea1a1a75aba1bdc6198a7a212687c1a2ead4135ee462793a06b42473f3cbca77a8ac90b3387af41678e6cd114dccac43d2d6bceb852ca133fb149a9b2039c2a4930a9c2826d08f4061bdc16f453846e09fa7175395013ac688252277ea02c47a6a80104d7841a41362be8bcc201817e8e90a2120423a83ce96840b5ba2a2a2c2aabcd414ca3950628f2c4293cdc2d85c1293da572bb18acbfed22b99a0aead1e3d8c23a328362efd664317236bcf56c3dcdfb21d76d7563f3398d0620b3f2eaf0df7af3e2ea701bb4afffb1e79a79d1797548d91f258f64d181462c2e836273cb6f908a7302c90bc9e6e405831ad247e3d5821b2f22dccb7075552f1c6af83458175cdccf0e0d339cfd0ca7258c94990e97648d9f25a152e367ae296c8a3ae8644f1c414a8d384c6acc76b2568d99941a33cc71b81466a91a9758824b292e7d4604971a50e36f9819a9518bc8f5d01f19eb5b2bed990e6a9443e8aaa6a0bec8d9781127b038468e31f627c61837c6b8317631eec6e82d7f268a8631c6b831c68d5df7dbc7996270b65a5df7b3d47e61b644a99bddea3e9014900be4ea960bca05c5b2d32d908b65876587bb61d9e16ee604750be4ead6092c8e070e4710ba1d9dcb692928ce0897e272fa432e277e5c0e779303044c8d91ce9ee1010d297fc82636e156266471f5c7974268f3703882d010843de8c5257feca3c16bf652f7433fd010f46271c260a6245ba91894456896b1b0585a42a8fc908515060da0575440accc2344e58f12f4f2403d2dc8cab2434316160b8bc5093f77d3261818643cc90f06fb3dc9bfe134f903bd4054768a5c4025e901bd7468d8b579482e8c859a9be728af7bbc569bba795a41b884d52b6ec325e998ac2f4aad78a8d9d444a957b8a48016c216a0c7ca96e28298dbb4e9e5dd83752b0bdb25b1efea0c06a1923122b8950907a0aa1345f7b9dedd0f0fee254a0ae9fe70df71d1658c516e1e7be86e1f7737e9adec6295284a6de8f6994acaed777b6a43a7b6815cd486621c113464517d3cdf1466827e3d29d84814e55ea050a1fbd26270beb8a80df5ba363493281a825e5b0a3da480e25256670a3aa419d479449da1c8458b35a130c1a062d4f9b99851e75324a8f6da872eab14502eab36bdb4e277a379337e8eecfc97d60b14e65635baaca2cb2a8a6afcccc966adcd5c5ce2e11247172cd6f4f17c3c5dd4f9dd8747e46eb2cc49d6ca5c2caaef0a0974ea16a9d01f19ab6e2fbdaf87c1ed4bc1667e7f8ed09e998fbd68f8f5d4f9f57c575c557e8b4ecb8ecb6b6b3e55be0b152ec597efd263820d97b84a16848ea8724d2fad9d99bf55f9a19cad69a952baac3220ac2905d44b943a9f6940c38fa7cee73e3ca41c82862caa4c85fd0e8e91e2e3014d90abce9797168baa4e14747a26260a1a825e7208ba7d8882eb01f223151a825e753e8867fbf920295ce27efe4d9dd5850983d365c5e07cce65e5b28a51a5806ad3fc4c55e773a3e0c2ea44c1d533f3b91005579de14bab4e4ffb39b5cf65d533f3773013347459d59902aace5f99f9cd300095093b241a3f9ec1ed007c3882891d7c38627573043a240a4e0067a02abbbbbbd0022268d8a4a6a096b811fc86bb0e48aabbbbeb547e9f441852f93b229091020ff632786a0065082ba801a84330c308d59dc7cd68a2fafb6393827248e2eeb2554694d5a28c15f06027b278a9fe534af5efa49851fd476428a95e45f5ef501297b2536ff0f0493bf72bd57f05167c6c4d1c637e5284a8fccb599994d290133d7447a44057f0c0e17cc668ad601b9160a004064c3a1a6507cd088a1ba308452612af6d0c368a64a79c961645080fd84906aa1925081da4119e2cca0b70fc14831d2c4a133ef4c9884a4651826224561e85c90aa2112d235c340a182ba045a0ab9d90a069b046a418248071a305ac699a1290a05a420150578584233624d0afab42020e5d1114852859a0718510683831058d263628d01842070d225ea08142c32656faca41f51f915c63bc9a6883f322167185739eca79cedd91ce8644c77a9a39a9045303cbae90f2921f30327d051ffaa5d484a0fe3c23436d3051051355b4c4b216ab99c3404115c6903d665bac4809eacfb9f698a77df6690147c5b22deaf68d7da19cd5b1fd0e8e4a6818caa9dbbf6cbb3ab60fc71ad435ec632827fb5235867270546eb706009f167054f9196b6b70a050e3ab474c9538a4fc160555f370d9c708b2ef30a8c36033883f9859454ca8efb80e83432808b60acc5fa602839d6519cd0a0c760ed7f12498159406a755307fbec320d8998eef80edd9ccb22ccbb22ccbbe797e649e49af9b314250703a587bc6f5cabdca7e829cf94f4f1ec13e62ae6a2e0b6e7269270fed9f1cf7ebc9385c01c098c2e6b432b46350ded01f124575319136ae2538c73506c7725159ee8c333824705cc45c08755601650681a0ab8b00850a0485ea2b7524111a663a9de93433c85f7ab1eed6ce9230c8d9ce97e9d87412380e5bc235d86e73941826e796dc0c7a058dfb72bb0a1658a85458f0d0d151a9b0e09193d3d383050f89050f4f4f8f0c5288142299482162d475ae8a97119514e3bbbb7377777777777777e3ee2e1645e4b88b496f1548ac847dd84b190b1043f815931826a5dcd14cb16f7f5daa7f40640cb0f5300cc3b22cc3b2176cc48f51e60e63969344cabef9fd0b4efc52d973e86729a5bc8185c79f9f87fbef588d0e054bc80a88ccb59fa34c2c40c791ef8ca495997ff908cd0e1e7d414be1f7b373fc28831c4e2a6b386ba8fd936292277d712981b62cc1a62029e8483ffde17144caff7c44a2cf8efe78f4f9e3c2925141df0c9fdfca61deaef102326ce2a785971a5a15415922d1872da97056d18bbe503ead21a7fef87833c8076d3e50d94f9f6b0f069e894fe9e7230bca2da9e50803833e188c0f039b5cd53ec2ae87d7cf176231a8ea1094eafea13f0241aca31779b12e60c70e061b068e85a585f3b4efeeb9b259e0a64d9a181514e2662751b4432d18bc0714a725d526ed5b765a9ee012fdf8a2e77ab6a767e2733da15568257a6269e6a439b6a60654f42115795b475eac212fcc6a185ac996548b0d6afc168f85db96d4d6446075445761134217c060e4384f8b2fb8920313506dd23e827842df12bf45676b441fbf250997d803551c415c350cad4451f4d1296848b917799d14b4496dda9e5d155a513a8a1347a4bd48f4346dda5ef4fce1218a128011bdf6379c3e1f0f067f2d0cad4435706abc542767d11701ed145ac91818d0cfcb1ef9312fa09f97aeda3cd789212f6cd9094db889009f7c9c41439a05ec885b03ca959bcfcd19b5f821169736e4a49b78826a26d8f44cc76d5ac76d5a134c580cc6ef3e86536a1db769b1326150c56054c26094407f2c80bd7f3030780d379c385742e587cb0aad56314150aee18656ad659960c360dc534baa67b029d4556de2542aff9e36715fcb36a746694f8def49e8729cc76d907c6770da6c271fa33168d8926a49c56fd189dfb2137fe48a2daa1a5b5835b6b46a6c71d5d8f2aa717453e308a7c6514e8da3948eaac68def3df6249a423ff217d296d48bcb6f887c03673355e4efaeaf4be97dc2cb95d2bb73e066ccb26fc433912373153e67fc1d1c3f18893d0c5a3cc1c8ed51b0c90f06d3b4978f022472d31e0548fc8361d3bea658f6edd819feafb1ffbc0080c5e47f955f38c9c0418b092a86d8220cd629ec6f051a156822e6030d571524feb6699f3f6367429ef004a5377e41f4b75946cfbfc30797b2978f012e69cf39a952864b6f7ce11c7d21583fdff2859fe80b7da0ef03ae942a3fb9bdbfa6691fb5f5b2acab59f6eb81a0bb24b097aa27581df2c32ec116a004ab00c6a1caf7a87911882a3f437d48b03ae4c700fb92a0fefdafd337603d69c0ad4c88e5548f71524a22fd8320cd8721415731b4699b19b0edcbe289616b3609f049faaa4df2a3e9197fb0baec9156d6245bb2676be2937aa043240ed53ff324c027295b6d9a33942dd9fa0af68c6f5f38b3cf77a05c1c41d7d57a7457e88e6601eddfd511ce1906db1443cff8fb8cda871d1157adf9c7d0fd3d131fcb9156b8425ea2b6b814469c1a597c6235e2f354afaeaa474955f524a929d455ad31c58b9b7a80ba4b9c40b1024465716955568870bbe273a1b89f175066b1222a24692217868440e4d7907598071afe18d58ec11394508ea99d89aff3da51b14d188fa05837ade83a22040de3111abc1e91efde479c48049be4c74ebc58234ecc89cc129541bf79ec1114d5a656c59b56b5c9553164d6ab6e0c9bc5ca82702b137239d59fc311847aa68a9fca7b40c34cc53553b589dffbfd331697b8ba2771ec31ec69dad48fed601904cb321583ce35cc5435478b1f357bcd0b47557b6ece656d5773f9e01536bea6c519490f626470dccf13bed8d172a9a8fe1f1efed1dfe54e517d77f7c3e75d9a287949fddec49c118726599665bda33ad6ddfbb5bf8db14977b7dc6119b127f1b868e8d260cb01ea2f1fcba2a1a1915ee7c2d759dd5d62f1fca34ae7189ffb23c52fe8fc90c61fa31abf968bc707377f7345d3b5e8ccb8657bd3eeb946539a9de1a795431a1c5728cc0b0098a1bf86fdc1b850637f6095c1a2f41046116affee60eee2d758c272811a62a8a0ca89a9340065842d7218020f6c10441a2cc3ab891554809103173f9c18093ba0e1a460430919b061847413d83042c3c146aad9b861c3a6864f837519343402f814d64409f02f03e600737cc454703a43892ca0c829220934706050fd0bb5ef074d7577770fd5c066eb41159bc55440c40728dbcfa76ddabe1a8eaa1399d4884d75ed833231c93455a860340ca9428732525beca0015661a3fae7a081a9abaaf2a462755555baa8e1d7986950b65d57b86b5440fc69f7eeb8efe4264955ca5fae7bd3324cb6e4a4dc304d868830e766da625b47ea999e19ed9996717560ed5d1759d367cf34fd74bba63967d6ea1916cfd04b2c4b552ceb342bebbb4eb14681ca17d1bb2fc277777729dddddddddda574777797ceedee218c57299d3ee1296d328f4bbba091fbebe813e734e94ba0f1fd5986d0f8f21329c17560440d0ceabbd9bb6733c3aea0f1b11019beebed3de787ee3eb3afdddbbde59ae6cc24a645675c72df959815347ee7ee180bbb62bb3f56b02d9ecca8a46d5546452b158d8800000000c314002028140e0a8622a140280dd5791f14800c7b94427c521b8aa35190c3300c4206114388010400000c01a1a1a1e10401e983ce4a612bb7abf4b571a5eadbcbe7015879ffe8231666ae0086786053be3f38aab5257370cec2c695011eadb50640a97db3fab45c2045cf27117d8e43aaebf24938006dad624fb9fae99f6da2cf83e8583bc05634c1bc8adffd1fd4778e22de9b3d992d02631d5616977f525a6edab730a66003e5237e1d81414fc48e7e9d0e18728e5c718bc5edaa06bb7e23043d7bae8773e749086211280532662ecba64e1fb9a9319e8016e651f525ef0e62ecff85ad35a7eb5d14cedcdd668db44d44352b463136bce7dd7b641c5bca20481af63947911301f3e79c234e011a746a08ca48b171d2a0bab992366c55ed6151514ccc429fa8d3d99a3aa2dd4d1a0747d6b38790970ed1400adafd438c3e8e7fbbe1a172cb5aa5d3262b86bcc46a8bd548b5c037f1f04808867c92ff89fc5fd9d0ddf096d2ced9c33b6f8f038c5f5592ab69bae8881d1a416198029dc8672db87053c7c3aa30f90337e990caa2482ae7c32956d0f88ecd735a439e8f2b9c2853763b2d864d7b69ae726e2402b0fe968c5648e0378c863c37cda40c4fdb06e31a2e922da6186fbe3c0b05fd7282bf0f32e519c9bb1e4db1c9eb1a4b2cd74c0e8816673def172df64e8828505cab8fb6f9d44bd584221146948c9e64ae6f1e20e933b58825ab0939498fdbc91a7597a068b97fdc9137d6d2a3cfc79b1338f8fadb2d1b714a1309ad6cb366423df74f024df94aa5f2dbc450b1059f734962909002663d22399265f405177194a46f26b1347e7d189b543619d296f1693a600fd703092ad935dc1610e0519230a94dd80b54117bafb884a0420588997905b7a7fb71025c688bf6158ce3bed5899b8847f67f9f3b6591f2e4d66d58c30a7e0f47fc3a8b0b7f9d21ef3710ddd035999d290a6019dbf12d61c2c09446315b51571778d51b72f3336acc41445ff004ce046a23dd83f00c25f0402ba6bbacd4db6311109d94b302d00437f22dbe635a07a25a9f4d72e622cc4e640148ba9c39d0477cdb3f467090a260dd3b8fe4f73995f8181da62b96c74c913a048dda5d6ebdb1a412e2196ba7996b592f24045ae40deb859ed3a108a884e0868fe80881e46c32ecb16e576cb6a2d57f827af8454260f120ba075f2130b713e97c9588be24c0f74820043265611c30e8ce6ef221f67171a861c667d66db6a671571a4d7c8976d8cef2ba3619d248d6148b64116c7573e572ff81323fcbbbe9e969ae8620c0b14ec4cefdddb7ce8cb5fc61681c1a6df5e1a94c0a3bc7da83422ab25e5d4ebeb1e463703971bbefd202455f9d2decd6983216f82311fb0c1662e62c3a08167790500e344e8cdfcdcfb01629719df04811d8de3f1f2f42f5ae089ea5b6c8e93722d424740a23a92f85a34088b310a560ea1aed6ab8627945099d3969c70d2113c2400d1ce03418302a5ff7a094a7973ec890874050d80ca3bfaf0de7e6e5232610143cebfcd4df05c26fc7d2e9be5db5a7486629f9a529161f67427adcbd0d4947e1cbd83bf3414482bd562c2614d2eb7c119b51a94380502ab7987829d7d08afa3f3069745c96c3e60a239d63bb3fd1a011e684e4c99a524749c56aa5ebf023a7a0084b2d24b7c26886d675afe3c36bfd4b515591be86d319b00d254d3312568041da42d69f4e598238f5eabb8e224c90f574e961952e927a42f37d0331e22943bf67634915179befb1bd85e237c937face06f4314109d1e51931fff3cc015af25794d3f368af97addfa3d2c0729f90fae10f62cc22c342999243d1f20c43468bafd77d67850c39155ab685374f54042211e42f255e6c36f1fb3e919420d3c79f49f181ecfa0f9716be10d541736f5e950d8030bf7bf92ecde92e77b184c718450f22329482cefc344d20fff924ae289e0ce046e2478c8f6aa454c86b09e733011fc0d506464d04ab04a7e03a2a9c02406ce431186d3a655539904e30ae73cdee548781ce5aab0c0d87fdefa532610c067ff76d37f2bbe0fd8231e014dfd152580a4e1d1c84698eb3cf613cb5ea78e32c4cf3b101649096efd3439a946e7841cce35451f012d13f5c433c80956fcc4de55653dc3cee9cf84118cb42af4c9e48fcdca52891331ed8a91baf49353457f119380c467c13f27a974195a2ec5a8b190ba26ebe7264ad7a1016c04f66bf1200b3b6ed7e38484ad1f16fd8b72c546c025170668a1f531ba6a05397cc157d4ddad01d7e8cf4068d47617adad5fe3eb552fc22e71398cb824a888ce8c24e691244efd2e8d51f0709af78f9e04e17fb5fac8e78dfc85a1bb9718cd96b50fa76e2dcb65482af0d771d7dbf2a6ee11e100e45c937658339c834cec723b2da0f29e2d807a4e11c3bf5fac0dbdbb6bdb9d47a2376d6c9329c9839443c69529e2a3102193e2191a43413599b842bf1ea8f225cd201ccf1c6f005cfdbee4f91e106560225b6ad437135e1f7cd075c4ab8721ed112fb6b7b1ff1e8d22ba7a5a7b8e65935b0ea13b71f5d17d4618600ecdde294a9ef2432c068ff6d21304ef9fde2dd20e039cd0adfa7649afb03e4c9f6b8fb6d53a1586490d2ed7c4746615ef8eee200e532dda1ecb58ad0544c911fa46aa7c4a191fe72a3b5c9b093c7ca18221e4c39b4adc7f4a6f448af8921f0624ef2f037e98beef6edb94eb1fb66017d54610aa9c32c4bf4e05d1dcaa339f8dcd8ee645b5605a150c2c5bfae162064591ce2d5f57fdc288848b25f8ec3552cbf08b4d98f0e6f120fad2509110f1153070769e6617409fef9868b8b538a953f6b9a029e61b1391af099489a927a1a60eab2b2693c38ba8f708eb8a0e7e6887e0d7a13aaa40824d73fcb3875fa0c0dda95eb9ecbd715c5fe46017e3d2f3b3f3d2c99faf4a27c08662949eb81091eec0520601a8c3f7146781b7e32cb09bd2dec205655d05586a07a3f62806a870a466fc3e9cffaaf4080bdad0a6e9cce0dcfec4b79c0d7aeee25ed6a7464a130f1b4fc890aee223f44487fd354a3334c6aa031af351e30f366cee53610387e7476a264f8a296cc0b439023b23d3c954736444ed528b61c938b966b0d1861bf13557be668db291fa8bed60a537355fa2645a9bb3d05f2fe771adac4d3c25384a961b424fb8086291edac3dc3fb1fcbc2c7f5b91e880715bef623cc7079439f8f24de79009efd72356ecdeb65f24fc6fe8988cb80bd0c2504873231c22e18e590069143ad198c7ae545b3052e8af26740f34523f3a7ef348cb00a8d5f94dd3db892b23bf4c96790a17f8a191e73fcfe845a5a32ea5cf617c6bb6ace4c2f6e0d967bebe8050590a24e8392b75b3b297497463e418a79ba8af6af1898ea83aeb9ae3342105aed0a1d528513182c1138c5346f3f7c5732cb0be92e5d764c04d6059452bb0f5035d546a8a0354c0898397a00894461c3ba3b3a713d1b17cc771638e23a7e15b4ff8b529dce4e6eb8d10e9485a399bbe10de375ddae7f9d7d3b51ebb2a3da2dd8b3d78948ace0aefb7cb6dbae464a96faf2b280d16833d355ad70a426c59f10ebb1ebdac95827fdb50e9c83d1295b0181a3a25aba61a41f407dc1c1d53a89bdb570b854def04ba892110794dd3557dd51ba752f47acae29974429b495c0e7c71caf1b75f36234c5ac932bb32663b433f9e4822f8272f0b126b31f9995bcb10db2614d54a952e0c2a53d8be87a20009643f208c012cbf5f70b5b3c0b416d8179442b7f0c06b49a47bfb4d383a0fada0296f5b9592ca44ddca15fa1fd1982e61277dccb7d6de92aceb39878041988da1dbfe7a5911ac4be44679757d71923d3e92c838bc548018afd6828035022487fafbfe0fb6023c2d4067c77222621e8e8450fa36b546071a28d4def58309ce5ef0caa0f586230f05ee9a76a35348fbf18b1b8092b912765fcfbcd5b735fc9b7130b9f84776cbe5d5ac753b337e2a132f7e7b81aff8514becf81128417a6b2fa618c16c58b58163b25c72a9402da1b2ac4ec97ff4924bb392e33cd130ed6f87c53cc9796493a497df3c1bd7e818333c83212f92b6106ce3fcd563a4f00097d5c0131548348810b3dffd4bc545a3106735c9849ea51d4e89684c85912748d653d463e7331c00c429c1528d3381f397a776cb4185e1bd0da327e429e38ac727572b5ffc99d4d14a4c50cd452982d40102a2e7ec569ddb32b06e2e461ba198cf9160f8569b6d7bf886d6c4534a90c8c359b16fb8a5b0b95313c6b3ec754a6d71c3fded2a2a34c3422504cabcaa09646cd38d88856ecb5a4f6bcf0cbbc8af96cc49b9ecf37fdf733852ea52f2270dd774c093da7f1d5638f17360271e82347cce777595923972350c4fa609a666dcad1ab8ff5bd5a6d53728a7d96ad6dfcf6b62e2ed387a6ae846d33f4f41f746bfde5eeb9ab98ddf9901e4eaa19d5e2c7c3bba841a2b6d1ebda30d9e56aa1ce3440578f9123dcae6de9d38ea8b663f720a22ea795fe61d83b525ff0b4e09d1365807c3b342a400a587322e7a2df44f39eea45ec199b219f7e42c1a07b81c818ffda263c6546db434eb16e46ee479ee718a76c70f1a17fd91c50809ba34afb264e2cd3f3b0b67ea3b2e6f8552507ad558587d3f98320fb0d15603a85cab8e84c507a39f6ea6d52cd48017fbba7c6d3979daa97779c64bb5b14eeb1a43ad55c7814db431714c371b9a02217e3046f707da3b5292285aabb9c1681326424dbde4901a1269bdad18270f48521f8d627161790ed92565e55b02ae603dc4d07e844f6df358ea1d4018712c737cf467bf81ebf2ba1c8a0f891d83f2fe236cd8c6825d6cbad69ad64b8a30e6a64daa5596cb7d6164edebc744889e31de316322b2e5bada3e12eb16702e8e058f9f56c0034fd6646094aadbad86dc0f1c676b22ee7ff5cb182932d649c49e674140925fa59b0fa0fe2512ba3173426b62b0e062e54dc82d4de7b18f59ea364a44eea86bead66ea0d4edb8d36bdd72da5a0cce07aff9a1e1c6baa45848391261f294c9de95b90678c40095a0a197af1a49650c4b84d5ff26216fd90bf045aafbd09e21e149ae844745328e38635a1c825caf8b616fa76279363b09b0d4b6b3656dc76df3906c1b2699de32db3e41f234db3f834ed7869ae4cb675a712187605c9077f3c8ad8e96a98cb3c527d610a3ce964f739c205af6f8d52e50f4c66cebc912716b8e37739270f244c74e68a49eab004c3d27ee36fa3a10c084902bbefc7782fd0a94917ab34ed1131240bff2ddabda8d68217547257e39a4806e4cd82f4e158df5c701a79d847b6e931c4ff9837dc6710b929915bdd0c33d2468414ac5d0e84d653bee59b3ccfd9f7618419ff68763153020666a7aae1b6caf11103bbb56abe1995ca62145591e288e74e6b2575eefa46735473a47ae0963581acb042e176021ea84cbc9ae20aa0e5043da79bdd74260b20e4e3723b3778875b7ce126c7bf9e2c515d6aea2a5d0575db23515af83a76d2acc32674b8a0e554727d292c5348996cbcf33c3f1890c3f3f7e06371de462d29d8da90b6891310d2ed5323da0d235fe3518ef135c750e282492a1681da55dce8ab7e8c6595c5ee7dcdcae66e200b93e1c3f0e39861d0f9ab1a464b5e4a352701fea36e854728547420b281b95a52375450a6715d2a8811e698ce910403277c1b19a24cfbe71aa8ea8fd5d41219541bb88eb82bfbe3cb1f16714c82d7e5a6ed8eb16112055bf0d722bdb595672558b4c3b0f8ca8878f1a8365fb554203a7bf62f2cf2873eb642ddd04d15d7ade6aa728a7f5a4344339896ce6e2fac5d8db613f6c469b0a794bd402aa86ebf0a3c3b1cc6d7456a741d2b5082da36a9bcadcbe1f494df4d23820adb0325b80e7134b35946dfd4516f0fa8ea8a511c4bad8af11c656abcb1b7d8677c56f56000f46565c2a392da82c07f09bd702a4c0a165be362b2320ba9060faf2140e6414539e923b6097a79337861534f426b52429698e3757634c09a89e3c44027a27fe08854b634abe7dda607c8a725f1ce5ce61bbb526a1574f2332c2e91e5686d094f06e0ea255282d48566f548ac841a6ed628eae9f30a7f348b5798ec716e1e63e146bbe04ec69a5a92b70691821e4306dc3197fedfdafbf45d60a7d540b7dc06983562a254f91f3d971e0d461838c4f4663e5c48803f7ba934a7feefc92df8f723d771af2881cc0044b5182b1f094692343589c5c3ce6266b719646ec2033452631fb81ddfa735cadb7b5fb06e4c1ac46b238362c2f74b29161092031c1ea93812d64392b95ec841cda9f70e85d9afde7957c8c67c1b7ac622276d091f163e318de860612ace18ac7250a22dcb1ca3a6747a9d6d577eb625cd0d1864e6ac8bd917a17b9211c7e6b8cbe0b1601adbc75e0d37437e1b9f6fea88374cf954b29d057c45c1f599e78788e96debd386871dcf6e3ac77d3d952499c186ef771925e6c145b117b2947dc579b68852680da0cd5d210cc2dd92a535bd98998dccf716d512f41098ad9dfd6bee39c028ad516d4b864a352130fc2a390bc2ce6e28082e1c5d631f544ec6526b86b10a86831662bfaa3f4b6fa8e6a7d078c0c6c615761ad0610615a0ab913901fccebab4575b6dd5cdaaae089ac29779e3e7ec365cb43292bd57b18d4ff63953331587261a9a43628c81633da2c6c1917400293bc1836fad3d25cd36d1e4a6bb00d74134c924aa50e47a0d95557059560ac886bdf7baa6011dbbf4fc52d830dec9b9fa43b49f593d412e885b8e762b7871f856907ee0f5f13fb96566ffef0d718066111d112a813fcf6495e28f86b1b27fab02ad3402f7e94db45fff46e04785068081d15258251248b59ac3b61a8685a457a28015e3a25f3596b2f4591cee02ce02e55994066a2952dc62b0d262d02673170cd3e668e706fd68ea1bd4f550e6883891cc822be931693c924691d1c1e1d4f7d7f41723c1734502a4adee28618fd37187cc9eeeb3769885db90f15077649de0ad8004ebc9c7759ae0b1631e8b4342c45013b258df5ad9a70004c307e4b416c11db374c206c4cf6b138e97b6c8f1ed696881f03a4d929c8be5910997b27fd6dd0abd1c324c8b711eda062958e807290b1232b35591edea0458ecc2930c808f38f337d8b7873d07de16e1926859cf88397d263b74f85dc8fe116f164fbd55c7c9f0648e1efc661a58a182a41000247942f93a333a81d70b46f1dfd4dfaec0fe6e96df77318443d636818233b9a1aafd8a0918124f3968280b5e8db6d68d5fb76d0b757601591861859a30b41f7b864311dd77d64ec09e52b8a6200d5b96483ff1a08c64e1abdb53aa4c189bec174401364027322b1a594c4171c011fd9acbe685d13fafd1155b5d3731348744189c34c5a868ea5034d5ab76124a44453e7ae94e8b716648abd3313f2245fe75a518790ee6bd860d4110b4620ef99096f29bca515ec7a8a7e218efb24bcfe250e557a1b160daa4e839ae821299fba3c346e181ba6ee54ef50f62218191c2e646110c7fb9552613a754b6ef50829eb2c7acd6d7da258b980d6b79c68202992a525964545cac668f22201ccec1875d17c5400f6954336b07f5f6d9448bb4a56032916054331e39ff222329fe615d63d029c43c95b5b776a848f77b552177345d3a70c51132182a70b93ea3a35b5db59d93a874cf153ca06250b83d4e85ac4fd21f48f1d964c003d899cd06e67d868b910092b56856fc4beb8aa1d048058def25e544fcf0ad42edb2390f8d8b386be9ca38572f439313d554e0a644d818e801293250a5752568cf06bdf9d403a9b2581581e2b2620cef6817e2513d9d236062c4c7e71d47a2cdb96e2ae515b6138f6b7eb878da5f8f77bc3a47d40d74fa1870786a6d2d5aec1881e9ccc1b5b5382c61873206b30aa2de3b1cd2946eb9155a11eb75be095605a36fe24beca3f46dbf8200076565936a9bd07318ef951a56840d2760b5d3f06f5390652797e43d1804382304ca9cfdc1a520d2c6d16470406e7b00f5c1bf2ee865e265b57933c07e7ac49333b57ed6d2e987bf0648c3bebd10568f594a54fef63bbdd46ae06bea6c02e1361b26425dd313653747476642519fbafa0ca5c619ecd0d8d30536544bc764662ff785e47da3df2824bf13d3124000d93ac62b01e378b39e44339b14cb3f6f19e8de21e0db5d25fdc9f6b5425f0de23f7b133b1a0c2796081547af54364e5c780fc9b61b3030a368e0f0742a59ddd5ccd2db189427325b4e6108d824132fd0a0b23fa5eed64c0154de9447d8081e891ca74063a0f1c6cba14c6f1d01b72461be709b4225cec100126bb5b8cfeff18490f953011c59332fe5002a225906bd62bec6cc01ba57bb67c947405928ad1d409516e6cc2111a7f4b245ed93e33157d7aac60c29f5ac566a04a28d8ae912095c09e1d8a717195eed3400fa6b2a33857c25430d8e25cbb485a7734f23decfe4cb0136246d696d7bd5a8f7cb27d9e0e9f88e3d38e217f0932f622aabacbef167c12c5c2f45b577e565371c1aea455600e61d7746785dee841877ed4ab20ce73191eb755c71b1b5e87860bf360fe885172148413ed7c284c178886462c6c9ad96c36f9d58a8ddf4e7db5ad1c414036d614ab6706a055bb10b1024ad7b0ba9c09bc16855ff0b6a066a04116da4bee142b273415f387ad5ab2999af931fed38d15a5015c51e52eeac9adc4b1460e10bb53430db97b4c95801a6ee0064f9f4e04cc9348f17849ca2d9bf7fa0e54eaef7573a32c0759844aa6d28ee7c5ef3820b3c29d312e928793d14a8d767fab1c6cf70124da423957d6998b08d8e70fd1e9acd0448d62c4ec4ece6943059b5c311466988aac91a2a6000e0cf33c32c2ed938b24b688a4f47ec8f9ddde2529d0908db7ea33852b9508ee3df6bf4bafd63ca58c212c3b7c9c5dab7ee926103b0ff86755c750d42554a784b67cfab4149af0e84147862ecb33f3c2d4e6cb6d3f193016d57f9647e9f72632fdf109a9a03e6f33102644f2936bfd32c36132e3c732519f94f183439145d9aeff32c6b33f1f6d9ddf2782c7ff7cfe8315a58d583bd1da523b74bc197e425fd347455781657d21a604ea2d1c6a61498e7795011fb7cb9c9a0582e61dc235de60aca23336dd7c3919c8a60e40b2278759087bb27764f8ba442cb286006859b88895afa669777c957970595b0634849a644d3abb20743687f6224aee60217e063a984ff0041d3cd96427aded2c134c177835c94d979c500c7ebbd45c7e298c3024e87f2fae3cf9b387df1aff2debc4c36266a35abfafda06677ee4aed45ea1d162ea4b07ffe0d896b3251f3fd6f8b4ae8326341c22c80f67e96f8b69a2605b85f9c41aebe7c1726168061f9466f741d8dc2c2b9c7419afe0ad1ede1c63589d7ebf3c7367cf0e989410d99b1cb864bb89e530cda1fcf48140603b4e951025008a02d7f3f9fcbddde94c04116ba185ccaea1b612aa3b4e455c6a4313e25d355f1f19a4ebca2e838295b115369c9c29250f19602f14c6b0244e4c3cb24b2ce00c941a8041e75fda9162cb1ede9c952250f2e490f1d9ee8749f6a125c14528a91335c3586361713873f476bc0e95d9c3e63185597be638b303e0dd98410ac0ae2123d103c86f65a063575d65d966a1bb4f3989255a66f416e4c24fa0fb966400406cbdbe6f5c5e0cfcdc27aa29cac46a271ab15ea0edd8082bc2fe04e96a76b8de668367494d6faacd0f599f49a1b663b9b6d788d65b2a5d50806c2b61f14ad00e7109af9ae52f9e1a72baecc97105978cbccfd285039611c331721a1c5b03ceefc1d462466cc4c82b7118388381beaa33698df33dea7705a72313a0a11b1794cfdd34aa5c5193ae19d430e266f5d44b75e90d8687c5df4330b5d85a7fc2333b1f4de42e81f4010680e685460ef1ce6a69059c23cead98e7389fa73de605378ea7be2081e644893be419ada6587a5c49e5429ef3c71f9b5db7274a10e5d6395b5ce7a840fdc46a1dba8809ac298c9ae2fce712afd061268584647a2898d835c9b46a0a12313a1104733787ad0c5d6802643b91ff62acf2c82d77ed5132ca3285625090c1e8dae7eec8c7de3cd1a9fa2bb18e2fef8e027c81c605442e72202d737afaea1c9238d1c50e7a9521401a9adab010825ba62cfceaedfcb5caeb9f21d40698a7d1962e7ce6d4408558f08810790d35b41d08538af3a405f1c74c11c6fabc5a1b7873471fbaff66082cea7f23a77f0ac8b2750613001fa7b996e2506e68ce1342aff3707f7bc4121f1f4836702d2f9c2f72b0a3c31f12815bf6d85abbf801a1e8f0872c3a15949140dcf51aab5161b952f270a767bb4028b4355eb3c5df3ea566b519fae499b336dbdd0034d27e0412cd9bffa2e104e5ac111fc0af6829abe99e0dc69ace021fbde38884de330553da831f514f9620980d53bcc89e6fcb3f7aa069f7274e4d1fc423c3192d0762f3026d8059c93268166a3ed3226d87e8cae95f521d717d476df19c6c32b517928a497981816204b4da97c49a43d0df781361e537597294c62ec21b80fa33f0cf943d490cde9fd8caa75f047cc2846a06e3b0590bc61317cbf74557bcca8c5c1927917fbfe544ab58132483070fed596a803f145812c8451e061a0fd1cec5be1e0f3ea6a4eea431c73fb42b3f6e92cd8e6026e1c9e1d4f63b5eb577cbd1c4caae1abff084adc201354d66aa480b5b5ac09de92bd7453364b4d02e202bdf9414f209319fb9783bdc67dbac2a279d0841840224fc9f36e85ad20ab3ee48c4f727acca6d90c5e3e08e7f1c0d434ac31992067e52589bd70baf8f2bd1bcfb4cd05872ba2b8115cb4261c5d4f8561e99ea37e54f3b5628e0eab2c010a4be4d4e092eab06202e01b5d9fa330b80bebef90a93601529de5716a3117d6c21553cc7831f5d625c930af459030a6c6a6f19cb629730a10141ebb17f079a22695cb13b7eaeca37db1fc789c74e5dabf39d6f3e241bd10366ff7aa30c0adfc24ace38952d022c989cc49f3eae24ddbb76bbd5258308b788d5b514f1f55408c1a082f3228999069891d4ac10c4443dce6bccd78e2c0f922c021837a8fc394fb3d3dd276ca5761ba6992975a0bafe0921e02059bc8af0af858daea96088a5d8b705513da8abe3e195ce4e735d93918cf241bd939dcc29b0405342e14138ed38395ab5b7f11f47c2058611cd78fa78316230a44a318ca97a3c62ce9f51ad3567f5405537983805ed53a43263f8258a5c9a4bf4193aea2100516212dd099a17c8df11034c1c5799c2c3bf58965c0f698f2eaa5f7112e8aa3406fe720e24d32aa87623608bf199bddb26cd1ff61206386447a7ab103aa8533f7e85d82d8774d45b98490c49533b533e4fb07337c233c8b92713d60a399eb8fe2835fbae799ef466705fb509b1685db18a03bf4aeeffb3b8789f41fa07e582b62f09849afcfb38308591b8d039e06199bb7d379da4e00e2ca53a562d68f968b65f34848dd90323ee0b662ff43d96a80ae1836bb5782faa0ca1a85d764cb0b160fb1e52fcf4c9180e9918d0f592390d22d15c02e13b4f479c5d5cc7bbefc54516a0cd42c5b5c321fcd2e4f2342f6c2f23e372e2870049a4a5c34ed31f9681804b87f4a0d9a58382204a7cea0340052b2e04e79ab655b2c33e439aa1eb21440bda954b6299ac24ea2c2acec0e7a25fd946597a417b6ceeb362445101f3c1aca876831b90ab82f7c54f719020c339d4002dcabce40e53a0885c8ddeebf7a6076b20067d441abd189c73ca658d03b0ac75b8eeee3c0058cff9eecba2bb104f2dc58aa28de0b948f70d766c2bdca580fddab47c956f2ee0e7320c0f7240158e0a47740cac8135253114c320f0bcb5dcb0d255622bb829f1d336807c36d80300817fb4bde85e5b8ca934fc86761569d600868172fdc812dc691d05c8771a4af19205d0b2208a39817cbd4f27fd5e39654672c7c3dad964a4ba81997acdaa0da28b09d24e2edfabb076ea51a57db8f62d5856622aac54779df9e772e1950e7760f4c6a92d6097547851bca91341e00083c9f4bdd38ae9c0e35ee66c3a782c57a33ccba9ee290cb6d419028bbe604c94e5b3376c74c8674315f677cc3fdd9c911135be6c851c69a849b412aa9431b2df2c379161043b07958a2504981216c88c4a19958b24f12505ebac44a867e372b25564c8c6dd2bdf4107aeabb013d905aa9d8402e2f240c71843b3338d51bf0fea21c56384eccc21d851265d5b153c629fb42d61a7c44acf4a775cd51cb542092f1a7d277c0a8ed8faaf6ca757907baf79c4d27bc59dccab6b8aa013bb33e935aac0297b7ab84c3ef8424a0483a0514c666d4353269f1f337080255f4f6988711e7ef29540ae26fa8b6ea3e426b7fd1fcbafe8b0b9f8f32df2688fd4e12dadac434da654e79ffcdc7840f941ba79780e1b26eebe4900f90e568eaa00b4190b08137781db84e2f7e054b622d8947fbb61d9110ab1fa869511c3ac8fdef0ab9849e713c3afa2698579f5fe3fb00cdf675d01097db1e5e253c9ecf4b8865f26020b493a808fcba393e7639c1ba8823dd8a2544535ff8f631fe109b6e93e2ab866abb17d2facec2281ef5a8f44d4eaee616cc86e898821961d5c087ff70cb129e21d1ab9cd0bf2aa5f266a7db9773fc56941e7bbd0e2fdab9294b0017607d546ef1f207ad150db4d55bd2b692a6267b60060080f3a744d370d865a551f622f4cd33f30c41e4fb7ec890af5eb34833e2625bb6e6c6cc3731dc9454b6649992891d02b37d9e232518f9be80964a5b5f507d48f004c2572b691494912209bce16c6edc8a72c09384770937090c304a3de453f1068c5de2a46f5911e2e65b263beab8ca3d21eb5f687a182399c6dabcbbb5c7a606f61cb1ad273c12ba3193f6a3555b627e9267b7c8d54d4564357096134831a58b456c2f18759e5c30dd4f27ae12419711f06fed87f5e6373a97371addef54496d8a0b0c96f6ef3dbfd8fcdd996a38b5c28144ea25ab65d120b50164f271481de311bda1f0adacb7099c20b8f1f867ae79e7d3ef0989b95c00200ee8ace2b262f8e8cb24aeaf79236283d16a6046ee47d60910dc6dbc74986157c9dba197942cf88d1a4d67e834ca082254c518b5ace8e699d6a27830a9e4598b4bb8b847e443c9167cdd3d5e215d1fb87694655d02026bffa14c702070a35513ce47185dd84bcb2ccc312c86b138fc017a04047ca3ffa1cc1e04b0471a7df0cecd238f8b61045b5b7b85b2778e44c0400d26bc63e793a5e56dd818035414a8e1d1e9c20448b0285146a5ebcc8b9ff63fbd1eb9a18902861af74c263b495674d326d4f1b5ae24dc04235d6a5871e282cc6c3ca117b0ac0ab3fa9471a8ada79b98f6a7479546846354009887cf5a2b780c46c9e88fdc6f4d260b4f6bbb07055fc12f563ceb821d24a6001bdda50b8514b830dfeee4c0febdd52e3498ccca428447e7596251fda847449031dc08be8b1f11f31136b1f7c892d119ffc901369d78e4775486dbb1f808fa9a90d74f60f35af8b1ea6e30085cf5464162ff287a3cd9037db1309ab7e450ac951da4e144b979e7afdb6eb3c59c3e42c3c4eb4b7c46810138a84dad981f10fd45b2b0cecff61ca374e214391e3651d174f963a3c22edbbc2b4762be553992d823064aaadfdace5e3383e3342f7c28e790621370ad7e19fa8b6514dfb04afa1770fd3f625f37d92b42a0c2ac069fd52cc9ed1a4cc630ebfb903fa144e45fe2f2f269c9e42994e7880b660b6059b2f952316c952d1320cb2e904a6095fc03426c9e33d750fd49af5865802da8fbe05bb61e10e59e64ba7f22e33234c233067a9c902da28e705e8fce2632b2234d762d8427875ae20655a404e5189fd0c32cd198bd1e67cbe65776ec541f75725fdd595c0a38d819f57f0c865bdfef0a123fc932ae652846fb71329e4301403fed976f052fb366908101d1420cb5ab3a2e8a008e5b2e8ab10f7b54a4f157930783e4ee80b3b4e8b4351b7d96b1ca512a52e2777dde069aaaeabae1415234b755bbdf038b4c9c636f1781e0c9d5702619bffed4b1ee09ab492b2c2ae486141478c759ac8fbb8fdd708d88eaa37b93309361e14f149e8751b6e9cf0d21aaec2a4fd22424b030d1b711373378d3f2b108205bc89a0fc22d94a6caf89130e24a4b664e6482aaeab2071d7eb8447991e4998fb0a544ffc4e2236bd7132fdcdda54d5d287473e4d92b0a0f01ca0207ce22b5959845c1a37cf08a7876ca87a073df705bb6f097abfe25f69a3c0d28aa85f587235563171dba4017b05be22407833d8b888ce31ee2c7c49b70dde9330715f074d7fc99f13d2d4517dbfcadbd92d1a08e9de9c09894dcba5afa9a8496fa59c10369d02e1fa85f9cc92ab9a0bb569bb10644932719f5bdcf58f59b038c5f00844a71b212c983244e8e4d2f89992d7efa1e525514f8ac07add484109b0b505bddfa80ef11366ac550f3cfcae6505d398897e6e9774e34889d7e29062651a18dc9049de8fd8f728638bce4c7f4034f87af9fdc8f5276d7c92b95c5965370be9980fe5013f7deb40c3c99156c0140ffc692660e676f346d2fd250e891edec77a20d6ac865af5e16ef8f2d5c29a60122e24ed8ac078ce6a4774a16453e6c3515919a19e9a082cd38a234950bacdb7bb65940f5e49264adc169e6dbd166b9ebde956c105ef3eeeaf18f3db1e9fe6d01c8ef5d021fc6a5327a995ccd897101f80cbeb40403d29ac26c1238757ce5a1a20d53862eb104bd175d6a784d29452619a3df71509de1e6f1cabf1ac30c824358d0ef11de2bd2e1a4f622388de9359690ba68eb3a64ac585a6462100e33a8547e289aaf8dd0caa1f46a5d531b4bcbef302e3b89990e61bda4ecca0e8b21a04a14200b3bedf0bdd84ba6c8b0b555f6409df77d275a220b8b9ec24d6221ff2a41ab7f2a22e794074b32aaf49fbb64fba0d638d9a898bb53cea21a4aa0e9ff84b16a683a09b813d5806d77e0257e3c25e24403e5b9dfdbd085a0848d39bf06488230c2207e14559d14d5aaed34b2c329e2e976e3a89871c6e99454b47dc74bd644319ee318f16086d529ad4a0c43cacba8588dadb42787e7350346c1a756f850427d29d0ffdec9595d5c7781ce1bfb0b162d2316869d3b543797278f1b12fb4008544dde7b50f4037123fcce415959a57069de6ee7798652b2bd880ffe3ef5420a107ebda829520ae1485f39718f1e4c37a76c0f89d5ddb8c0e0151365c55a882af011f68f1ae2e2c234ab47de764e1a4f0e56d9875fc1285374a7c932a148e19d07f2b166100373d7cca9a35e84b853ab5a466883524aafa1ed5658def66d2c47d900958a0999aaf136d0dc2823c844678758319fe0ff8cf83606ce97803e2a8f2e17b91d8a32d578826b569971ceeb4ec02ee42bb33cc0e28dc11c31b0720bef887e1d5fb6ae55f4eb868cb08bf90af4b177cb2b87372d05c8a8e4e36b41272f5db78f588a00c41a03bc91cc2c36f99a34289fa8cf87d79849b02b65f60e86a86f99564ed68387b13dd1bdd03a46182898608e64a184cb5bd6595cde5a7640fdbd1bed3f31429a13b670c2c5cc560094ab5f33d0985d002c2073b4d6708a762866ac31e59cc85688880200f7b96c3ec3253b3ec0d4cb473cf64d086966c43ea795eeb3969a3206e04aa27c26b78608b792d58b28b6a00708f411f2866305c1366ec64073a9279b897130ae54d0c6613659337c18e24f898e5764ad4d0a5969405af3de882a36cb9db293fa708f06bd7e6ef564437495b323a059acbb6475c61ab6c790405c2b73d44b7e36b3817d50c205e683597a635e046dd05c7ab7f5f78af0bb56e20267a61588215a7c0747783b33c163c6826b63d16153a7c69bd85b0a0a5e774840686ee3e16a40c1c8d988141d38fc59961dd4ddbd070d2b6a821d5c2b5399bd5282a254991490794b29885002944bfdc2a5d20771c16e2159a1218245b9dce9fd7cd68e43a68f6adca3335f95d8f4f039110e35570596fa1bb337e5483c07cea00464c0f6340f2b745176a1cc27b1a1e475554e68745c707a7b1ac7d52d53c3a75cf473e373008d059e66a6af6e14efef834deb1e49c8363aea50c3128860a73108b8653051b7b1e92db628c0911205293157aa66742ee260d84aa97da890659795ff8fa3ea354233100f79661c877002a330269667e22abc6f6f402d03820e72b032dffa4176ca95388544e597ff450acb3768a3a6ff07a2ee61c022b280008dc3341cff227e82a92a48b73d4f1d6f94703bb6f6180ad372da8b700cfd304e00c673b00ea4c97d71207c3f715829bd40c52de64a26575c97194d987472c6bb0c0c3df644584bc3b2b150562c93c3e28e7c2994da751cf6c2e24a9a47299ee0e81064a86458fe45153fdc55ec7d0abd71e6041b94c968fb921e379638866031bcb6494e255086180486a00514cf3cbc211ccb7f9edec5c9b3cb00670064e2620fa6f7325ac078a723352b5c9c0aa3ca05bec01c8c0e0e4cc2bdbc084d97d202022022c6da2f0cfd9847b83e42e8efb1caf1bb12f58aff937c8b7071affae6f9770b294916f334f848594f47f1d80cdc5a8aa8066cae49ab879780c32be8dd184955bec8ad84c6314f0224bf62b8c273b4780acb813cfec13e1c2e54f46aae5b88395d0ea6ba0ab48a28fe254591e152981f6bbb7c499156f972a225890122309b26760760df423f1b2ee9a8c257355f6de3106032dfd3402bf5826624b21fc5f2795b8169d430b733828dbf3c9bc5058243247b3fd2c9ff7e3578b1ba42407a8ec77a0a616280ae656e2cb30a5602b9fc8cd0f31f05e81127a1ffd6122378bad9b7be1e5fb6d3add0a036c05d05cc8a7792ba6e393586225161338b0c5e73b1a8a8ae82676c5d90cc69ea8b41a7f8f622a419d523aeeba319ee25c182e84cb0a876f46e38dc927a6607249472599449c43cad37017edd06c44854f32c6a530a2ba1684afb5bb7f990683c25e0af842773ca1dc544664d9ea1a33a9c34d749e350437e28948d25fe8bce22205e9e64779965a90371e83f18070a0be16ca1c52a9e0942389612e78fe49197066b667bff481b5235a034ac3e20ff38397c234c9639b011580640fe2fa70d9d05b07103d48f5db969bb6ee9210cb22b9288894f5a1858c83d1fda6853dd465cd8746e9ae38b76b3ea6b26a12c807852e801755a3912eed950f8e9e6a8b2942811fa52a5694cfe43ba71842108c628c75d8e76d1565917349dab0f5de87d07ada48e63a86d5873d7041e2544c040addc9e4f24547190a1c37ebaa53f1d40f74e070affde7556a8455ab16f110e175c8c012dbceb8bf6c4fe01e6bb653d105c4a0dbbc0077f194fda64173a13b16a16285c322486a4686740b10f6edcc097de6b01b65a96a79e65806f1851588146f64c1147e91697e9d533f67659563ed5f532ef74255f5a3f0fb5d0fbd90c8df91f400f3ce1c0ad5d88b30507b91deaceabd55e2d7829e5cf48eadbcaa6049d675f187d54708400b6e25143cd806ae541d4ea1d75078e2629f8af197102a8704802f8cda3a3bbe9b42e42e42406afec569b68da2011f0b26f270771d1eacd0e1c51864849c35304f3b3675281381949c71af2defcba6573da0332552d5ab10700b10df5c632b44807397e502cd30e4453aaeac10a82bbcdb6d38bf6664d7923d161c5fd6893c1f27fe55ad050a6a85cd2d02b3afb01bc95d3fe53c8364cbce9f999b953b37e37211bf006a221b9d5cba4ef87cf1e7291801cdccce8151331ced351d958fe36157e3198df6f7006c0680c7c543c7444b59f1466620081cd43ea411948803fd2676471a475f185535f742f8e59ca83014c7e29a0b6457819cf97e58e2ee61818caaa0bfb9f91b9408421b3d52bef5e83b5cc09d14a6a882b59338c54387f814ab5b3a05b0350113f5f896e6b45d9a237bcf787512753835e730551328fb8847a3854c05070d8cbc7bb8d010678944c2cae247fa84a0506c6bb94f2b9ab0587092b8a0659a98d7746884568947620299e044056fa3874491c000a8f5565ef4aad64239eebd058661a007b3da4858b3829d328436f4c2ed70d4d34eb049f43134eb139e3721314321e05c38c7e03885225716bde74a31f1c1098520c43c16ce6e26e64b2bdf0473d2424a8189c56e5c775c79c748a0b262e6dca406946198cec722c2657160bfc70f5cf9f0842de350ca281c4a834a00e7d48243e10891d41236c203d409cde66bdbe819b14fe2ee1472a2081da8e12ac5d3649929042f7af67079de41709f5963eaaaf79e9f1594f165fffb4a57d045888440c94d9755307aa21d54f019e27d0c8216e3ab4bf117534fa427c7f1446312cb9c372755e2b66083c850e9d2001cc60aa974793f752a42b4557e4ec03640c22959418c919d3821fa258fc174ce09ae7250109ba504f1de5f7e79a37a52f914bfa5a7e0cefbd7154f5d0889ba72ac6aa4964d5bc9e58f48d3562d72b5297f64ff6750e123ac4e6acd28860023519840909fb43fada223b66311d388d094404322a6d81752ee818253a9475a2fb0b6b2ae3549f32b2811898298450f86ff0cb3fdc48f53bb8230702f67e12ed94b7ad29b8c917adc1306050403c989e093c80bce848b458a84a13f358877bf01f884de93e85512e2c7153e1ad916bf64c1df46668851f33a4bdcde32062c47cffe8a411aa31293889b08094b2ce29617d72e6e04ffcb778e5810608d2775c6788c49f3ccf212632cc670202d8cd64c836584edddbf866d5a0a1bc51401eff4cc7f351687cc147b15661266053ae7f6c8758d154d1f059bcf321eb6727e4ae69830d0b043e9d8f75ea822d4b700d0ba5e5fdab12608d61963078f0078fd33cb595f1300aa5ea9ce52296a2e039553ba9d8991e8f27c20e8816e6c1fb57e3157e301ba114ef298cb44f7fd4bb61d338feb444b042b57e7eedfb53ee0a3ab66f535a028bb72844cef7f5a0b8c22614c858bea2d218984b811260a63091f0aef29d9eeb7a11815f0c2905cf5eadb94e33714d9886953569ac27a6fb49e10f57571d9bafbb59e0a5d5621967e02475a8c2e75bf1ce78830441babba6eac0b78749ee37e7f0d68a7730c56dc53fe8eaa8ac4f48b90f7420ffc94eed65e7298b2d9fcbe137a03422cf1b724d06af5551c167a9f7a53f8a590381853a2d9a2ea00d2d50c025a428b41463159ef5cfe4c7984ba8db0e18d69d9cf0e72f6dfcf9e917b8febe5142629084316c0af9b2eaced12e01d56e8fd3d44f6e52f55936e5d97d6851ca352de91c81493f91fd0e64d93f3d6c7daf0a656f602c4b8081f0528030b13d18456ee6464e448f8c13cd3b331461eff815ad05d282e07149ad290b601d055f8e0111f93049a2954da61346a0fec500c8eadbcdfe0e0526d191cc2ea3be1fe87891c06b944c7b0b125a07fca4756f2baca4f08e4e56030db3349397af129be3fc727ca4bb8595889c6ec668213e8bc1ed7601ec83d3dccb74c98408e2fa004471da85a0006f66f129137092f1cdac0b76ebb385bcb05dd286d28b860576031f4cfa9e88f1048f3fb9cf46ccc22c59943d6d92ce16c059de43c51cef8609baccee8f78cea9af5a1273d3444b197fb00066485f965a7cf34029c64ee9f45c2060eb133ae04852df3418c4ea30864b06a977140c5a1c044fcfea0b6fe884108ebc68f7bccc8bff275ee807813e4de89913b1dee7782cbcf40ea551612d4b79302bacb1caffe4fffeb96de05a8854900b5ba20a5fb6bf1584be07c3bf0d02e5c812ad2d116ae18c23a1089e5affd38d0ac94707b71ef49fac74b0724f1211c6767ed483039a1410930a174526e59327a7f5e2f3ee385cfdf8e2da109c8d2876de7e698397bdf3850b84a6bd0016e7b09068f770f89b05b6a3dbba8e655024d92742890112a7b79d42e3bb80cd87fdf4175f1b579516260fc2e4192c67711a730a0f56db68958fe5d10bca0f12d0f76c9b1073818ccd3d9aee9487a7c5d856fd330c4fde9b739a8fad795cb67c55e2f12437b75fc936224bfea1f595484495d23c3d38511b4d9aa91314dd4db93640c24631901099ec6187349d5eb5a046337edc560176394477350dd4cfe8ddb7522552ec1e7eb27030b5d0eaf75916c871985d8a599455baea984c8509597bd51b0b394997e3ec15d0b8470f6b9c48323805a40d99ea0712ee671de2931f48d1c4ce2f678656c4272f546e417d4bb1ed47aeb9dd636f57e448effbe41ef4872ac6d4188ac656f06620d33684baf83ae163074f9c0b3bf89668a1938eeba77a9617225fa2a48f7d070530ea2b3870c738ca7d9f8d6bbdf50316c2b9feb501a7363c141db6f6f17085974c80a4bb6f113addfdb706abfee03fc750c0e7d5b839e99032044c39c00c6abff8630149cf357ef7e2e911688e86ad65d72623901887a88be3b5e57f352b2dd49f6017998e92d6f2293f96a9424dddac370d836728eeaa65b3dd9e291028da4c372102a4bcd78449a80e8a8065c9e1082af5c9822f7376f4144d2618735d662042b620d952883594c635fd48598c935a64ffae196a05363467158fab00ff2c46f0ed5bcb6c0d7694cbf3603eeaf4df65f57de22899fb2252a56ffd87334ea66c268fe4dee7691ff316bdb3e8f5d2068d03019e46d575624748de53eae6cf657e062f68b285dff153220dfbe8175298e486c8902c34e86a817486ab2b633665da1405b7e8049858838486c0f2bc9980a26dc256ab2b9b23f674edfa2fce7235d4359ea7658298f414f35cbd01640261e685d312c712108b5222968d3c3987024f1b2a13ed8d435b48a84964f13defb8c2d3e3298cdb00214e9256f6695d5e90eb07291830191623f0af066c90ee6d67e442f72d2b595d051eccd5dd13fea3f49bd8e59c8c14e54e07c69a4daf75c65d6a6d2fae2228c1b54becd429455926636a0ace266e5cf4f8858c594513daf01a9cabc4c0564558d66727d3072cceacf30b07f3e41001731226a910b6f8276d68b44a9d65ff07fe6bf78e6161bc560e7030658f74ca8b837e5e83bf40eef8f01580e61c01bc4ff4fb9331bb1afaa942c46aeca2954f37c91e34b09d336d8981d37b9f6f61b022d73c6b97a7974149990735b37f23909c0f09186d4158a94a58b36baf38f31732d504c915688541ac72b56c2c87b1a5fa209d10953532cada4a532da955deb38c9814f23dd2c1453f80c22f3c9c18b3421054ad533db055a0aae0e7aae0d5e951214edada2a811d1851ba1c8b7cabb5563d6056f5769aabe79506acd399fe2c875212435e645d02787b8e7d7fade0b24b4bde5b9e52b71e227e41d4b07f3430fcf261b8b99be508bea32967486ec4396a98e13b64bad948190c46aac272f97caf07ed42c51ec9776bbfcb3c4a699d73c2b80c885eca8e7463523a0b889de55d7185a86e9885e770afb57511084999f110c09b3c63a7f6cd78f01f42b069ca42bc9fa2d11fe1210ae06b41501874b81d31b006bac794b47a1d201387f46ca7e2e1167a5265b7f3e353366f14531bff649b245ebbeded86883ca460ec39f0860a5aa7281f847e09979cfafcf47f8006ad47d16524db1cbf1d310963ae63b1240d5f325aaa5026c4787616ac1a09f81f42c24d07ea2c05980f7c681cac3ac5e847e0414346aed0d876f7cc9c33c2a63c764e58fc93e4f7ae519d9b1974dced44df90761c450b14122b05f36092138d1aeec66293ac44530db8618f03d71ccbcd36c92d20b5e07c41e6253add0700279ef9b2d7cef8d4c3a923611012b10a89b80419e26544ca2fea672cc2c28e163542330a68908587ac90ac57adcc862c432134ef64b084392fb386aad160b4b703844c19d21804f2b98763f552238065ea0b7fd7186d1fe20f7d79f736ff1a05f9c2e06bb41ee331069e9404784803eb505bc46a8f24aa40338824c1fa000b77c9d44240c71d4d7b68b1ea24d264c7da65561c885d65671c103c7e56d801dec5127a3adb15e303839db0c82ee7ecd17ed56f2d0f20e06057ce49c57769103694b1010a433c147bd771e300378834c29198f197d8d0e9ffac14e907e436d1d8ae8624ef204eff905f469d5729333409bcfedacce25d0903d30ce8b54c7e76279adeebdb84cf8f5d66380a53006eea85a178a9cf05e129cc31f756f8893105df9953a6166a3c33351207e60432db7243c1ec41b3b73d601984a5a7f0ee4696610c95f373d4b8aa9caf945ea1791710abe924e452be6fc9dcbdc0b251f924bb820eb7e98833190365658e4293f1a5f6af0ff2f2e15fe9341e8849a4d6b70f2fc15a4824457cac95e7a2d30d39ba5560deccfcd58bd7a50b5c8855b769b5fe6e2c7b72ccef80220646beb053f334f22cf764e10dec45ccb17cd0c0540b2a97f8ea3741ef1db376b805527201b7645ef7faa321831c0b03d98259d82eb724e0cd2b0a138860b8acb35d5d9b9eb09de88b95fbfd7be3c1466e75bedb81a699c2d5889bb2554854abd8c9d1c189e6243dd99cb9d6c8b73ffabb7989c34b63b7887a3ac6928db3dca0fa63c8c56381a3fe0686887c0e47e645506c321425b54040c153e555231a09b9376a81e79de082b82a254f0a6693db3949fcebd7b1dbfc6fd33d321bf5f0d0353bece660bfa19d4fe1175da9f69e559682a219de1df66a5bab7e28a921014a9f8bfe681b583b0d702c90188ac48c1e9ccd5f3307889c4e2105e92fb2a0e018d613836e00e3571c32d4ff8f274cbc8a04c1c0904f06542e9336e08e1dc27a1519f1493dc9e73620b81ba39c593b322c67022931ac76765c0e6dd4a9940b9f59f24295e81dcb8d12e8a5863b7b54cb915579de039814d4c7adaf18099c5d668c724afcfe10b53132a61cc41ac3bc06aaeb1ee2c2c77c87035c1616fd62db4071a3d152df9a0b0d9177a6240975f44f56ab707943e36c17f189b5af8e73504a39d0dda3981f048c9ac48b4e5fc38a8d4176680e6f89069d7f71c789ac227b2de79c4e2efaaf1d1414787fc87ca298095c170fb3aea2f083818f3274d873b111dc7411d6208ead0d47d1d9be8d2b8076ce138704d7f60214f1d1daafebc96461478ed828977aeeb4204bac214d937098be2c02bcdc97bdbe28d6f46d4c23e9135a4a277cd71083b9159341509b3d4de4f0350229ff097076f753f06b1e66f89ca0e039ea6865b32227eb63b76c49ab9057873ff92c391da1ee4eefd8c029c51af368649cfcd8623e08e9fdb05055a838870b0abe6a4bda39a8aed0e5bb24601876032a741fa37852f0ef039bb4d455304f46c9644476b1d00b41c02381a3b9cc992b6ef9aad63473f53756d0537340e8d5642b1fa9e4196606c700fa70146945eacc5571e38c495859754dbc3232553d8f5c0699cfcfd4a5a35dd3511225cf8450642ba9f3321bde972e9351531e9bd9413844da740b8bf309f19e45a1610b4e176226b1169a670e826dc16d676ad84255e50844b413fc7ba54358fea8bb49d00625e6ca0c0ebeb282bb681705f83e8048130d6b18e91ed12b39dba076bc84b58ba4662e3a2e2532e6630ddf0a7acaf3910e9588875f7dda762d42824c8cb5ef7c91c72fc55b3da33dbae9e889d9b93172692ade1f5ce045f148dab01cc73776b06a7d3c3cd96da8234740bf7db378e6102309e6b8f0d86ddbbc4819bad68017438d0db7aec077aef7a0ddfad8014df250ac238a405e462996acc1a43d725d462c88bd1a175d717c1a6cf89966cdf1180b314116431543e5e4d40970fba20b1e48495278d860d9ffb443511023eddf5e048d6aca4a5272f4a6d592e937641c4b4f459df1330c850d078f8c0ce221a9f19b63c5a43c6b6664a141cf9ed8d00f23c0d37329b564aff1dac36a89f2d163327e7f4836759869728bba09862a666a3e05815ffadd58a714b00f158b87dc75ebe3f97282e2917ba40228bed2c9a203c042d40a950698de91388ea1c8a2b9e0d9033d841c033128e3ed30087cbd016357ee214d3e2f9514d6fe078b979ebda8c7bd24d56a2dcd4d6b6965352d3980705d8aae2c062e36b67a0c808b2ca59212cf4e8336e54804f0920662c18faf3065665067cfc5b082176fc9269c74f6030cf63ad2e2eb780a6bcb131f572dd14f16a6aa58862c7561b7c0d5d3025f54e31984535a99d7850359306ed70fc8e0c2e24d475a2552f3543c6b181f77a72b761d57955617905f75c041b9e9ae9db88b65e302844c1a07e888043ab5e2e9a78a0e1cdf373cc917b6b8945e7c931782a30da6f0111a1c1d90c94bcda1a77df52d099bec8402db00b8abb87b2b07808fbd728f9bbc3aff50260b602c5ab2af1324a9ddb96a52ef2eacc93801b4bd9a2700007c1bd444add0a132a0a0a0ba86fc5a05ca2c757a2a23b97eea31a38f80b07913250cb407f33b1baa77a34d92024cb275ee28e75903a3341fabdb9a12ad56308d0efae3ab4801f82816985621dbc7556f0c65aa6cd1586a9e52c5110242d65343baae0145546b39b702c4a1d569adb74e207bb743933f63e9413c512f94c64487e0b142521fea3c761813c05f4ebbe99ef18ca375a5fd5e04452779900d1c7522b8de91ce200fbd0c59faa87a81e548af11c18d2af48ea9c109212f7c679645a01332578b2d2242db7100a5eb8e0417f29f68fc8d164ff316b71aa416d9950cf7a29563f613e3f16672d967d62c24bc3b4c65b21cdef234a916ead7d8c1e9a294061427ceccca4d076e68e48e56ae01e8647b3c1f5ec022de731009d17f2813eefc80f16694a2e40e45b405b2d1fcd6b57296ddde3e18c6170fc189b8bbf3b048928ef7b2c601df936529917932e1e0c52a53ec169527e3a7aabbf1ad5bd99a37f50c9bbd59826c0981a4860e61f9a3b5368c3015b7b2637e451c1144b46997315ada4641ae75c9f17536f00ee9d1990d12db08d629a81c497f4846b3848eef90b9d7b67dd7c27727260e6a435e639d97fd15a07702654a0d1e831e8c451887b89ed8cf13f9dae7ff5566f404be0121650b965f0fb5c65812550484d95520764075359f4ac27497061432a090e94a0fc0ea218750d0bb567d8dd719a0375e0edfe92feaf5b827ba19fa1537951c905798cac56e09c3de108508439417fe50c3c94a08e63bce4dbe5a4d05b69d7accb6ad45ea35319c8b76c4fbe0179d380187c8ba1f838fed08deb2f8b202003743566e3b65c8d33c6288a8374eb0360091f98a642b48737ae2f6420da0ab5a1b1a3a6f19fd241716c56e951bf5ae5276caadfea6c1217dd341ca5646ce42734f97faad047be255d12ad393ea004e35f765c104e334ebb4f58dc8f2bb3bdaa20f2c0fd8e2274a1102785ee0bece23fd287fb7f08de82d8f227447ffc966aa6c79691a4b1cfff6c815fdb2aac31d6822f8d3f741774463953d2183f823b048f2cacc90b8aa3d096ca412cb493a83232d379b687b90c7614c7768022fc51845be31c018c2e0142122e4db06e546280327cb0f54b267516ae8a8bfd0083bb3011e938aaa404e3ae36eceed60cb012231528cde08c23755ab41cadf38dc00f968ff95bc66dc43e34ae366b560ba055b695e5b7f55fd76b38bc1d03583bd4198879a84f9758ee8c00d7414e807c36de7a2f1b0f326a01d41a01cb872e0ccd630c2b74a1f9da7d57b5d262152048d5352f15f535e9a9da88b6fdfc496440b870899a10d4320ead191deed54ea74da287c68e070d5189a4cbed827ebd794a0dcca362ad821a684b729e48bf08e6bf29523122cf60571ba80c3442d91c398fad4cd7263dcbc1cb2800f30a59a0da744a2cfc18c3c3436b94144e4f40b39ed86c524daa63669758c8a37c4e6ce59e6b6365153878b9c52c5d4308f04f761a5a17d3fa8491202d1fb7f9d3ad59695cc1b9cf7e6457fc8d695a8d56a9b7e7e00b48f9bfe7fb6f33c9f7bc9f1680f597543902a72e80fe45cee91102dbbb63d7985be4805a3ca15194736d14819c4e9a5d221acfe25677a54aa0a62235ed0459c7c8054ee379c0e77f7890dc8f5f73ad6b6238bcf4d1d4b6671a872e5c03e0caa50ac2dc316ef302825325d42e8505d842064cc2032889494ed272f680eb0b23fdee6fc00789772ea23c2548567496592a912667c9735e1c095f1f145bf52509e45ac1d8d48fda7ce244df0b6ae12c9563ef6b49c108573af7a268ba901c116fb399801325a5f2d1714746f1f24787e2bc9bfc9f5c5724f457dd8adf441f3afbe24b774d2056f4943caa088f328449b30c808c2d92511f3aec150614012a8ffecc2144eab0afd0d3add672a69dd8cc132451d8e663080753f9ef83222969b14c13c571d3b81b363fef25bb62d7311e8a9f4cb4f761e9c3edd77e076e725752be56b5f314d3d9347b09a9e96c092cd0f4a1ec3ec097d32ce72bd6fb68078730385c5831d5c3b0f8755b61be951e11546802a798a40372b4aef37f8b28d81dd4e3f168ca4f592c5f591ea7e4eeff1eb9e010af1bdfeb61bb6273d82d9557534c3e8a81a6370af7593625c017d34d00edf161f6d2e552c08773d73d1ab09aeee2f356efebd36937d22efdcc07e03f4e1c76d26075c03d72f9999d6940c6a0888b93c88bc4655dc77e164a37ed7f67a815ab1b9c70d976cfc2e031e26982cbd66748c4eab2d3b2cfdf62765b37cde94d7d2bac2e8c2d59bf9c529750cf3e78e7789f1de221757979fd9af9a1213b2933feb0bd25b5562d111f3c380d24f73c0ff63d60cee1508a963bb04b4e4e656780ef2b5b698b827b115f910cfbacd7816de0bcd22e2e6ef56ec7843d76d1e9a6c0f675f5679c6c0ed91eb91d92220d7b56e60c1598e124c34f0fb21301b9a43a5bd514c633e8600b73b57fe5052fb0028f685ed39632f0ee6f5fef163f051889171a1f7b87239c4c70c13c83f7f71adc86016dd486d40deb844d180cc6532bd5c221cd8382cfff4b2b44c002faf299625b408ec24d07a63688fad22bf043ab5c5c187ceaae8193f607f0691ba76d217fdd27fc45a196f82370fe87723ba0e012ddc817ccd51e8f2887ddaf844c49a1b45c0ba17ca7d2d202e2d465af90cf88a2ec4dfa93ddd6e49652a69452f805d8053906b1c2df7e761fabcedfba8f06a9a522ac1a7f9b9d7cad13227decb86e91be7f92ba1dbdea59b559a7b7a6f45864e8d76f63443d41542b465456b7a3554c6a6263530cf4b92e91952eb5022f9d2134dc3eed2c20911c7a71198c3a4352d06f675c53848eba44af9e3aa3ee101a195c38014d0b473c0c490146077e0d2d7183c2217ab9406f567587d254516bea0ea179d58fbe1fc9ea76eafa0158897025f8aadf842043747eb46a278b47ab9af5db25c6440ac25c2102315e2ee8bd2f9aaad3dda3071d4450c30b8a9e6892a676ac478c2d70c801cc13495c5dc65e41030e5ac400cc92277870359adacff2164f09b2bca0c40b8aa32f4ae0da337503301461051193166e08729181802c8e82c8b081872021d718750063ca583942872860f4e06a33b56555a7e1170d660c002d09164874810489255c9814456f28f5170080c4911f236237281c002c216141340350858fa38c1f6668a17ef46316395cf86051a424899433ae9e69508279e081e6af79aee567a5f6d757d1737941ded56fa305fd1dcac1ce258aa1df1a31185442a0c5c56f02878145a356c57ce8c730d210b26ac2cc42b7c2d8a57d0f9207c0d8955a2f45827fe9a2491a97f624c89f9e0a5484f8972e9cbc5cda4b2fb52f7f5d24683b3b3b3819f372695e6abd20f3b55fd7ba3eca0c73fee96cb8a027d4b0c0c884cd046f31cc796b7424b2ff756b2a04f7d61be20569150b09b24be79445d7b66491e2a86e96161ccda89b458a9e7afa22b26d1a8170d2227b5442ab360c2fef6e74ae8456b551152202bf18d60be8d7c00bfd180b6311837efc7a796bd670a5095f93f33e8a7a7ebd58f59b95f95579540dbed01f22f090a9b5208d9df4abcdf78ec725a59c7472a847996c389b5289a462a99a0b4f2655a9526302815193068d86314628e1151a3538ef52f2fd795cdb7492823f9fc7c5ccf3a7553d817808f19fde8e7b3abeeaf9337f3ac7490bb5f6a55b7406edaa9f6bcc1d76a7d47eba260ad440771387e2a4a9f49b348d407209b937837cd55dc3c68c9248ac7131ce19a18c124a19238c304219531cc9247f23994620b9e6901618e4ab8655a257a57acb8593c3130a7f5d906150c32af01b6ecf2a0eabe098a1f2359c3254be264b2610a20d6f1b366cd880bc36aa74643ac6eeeed831c618db3dc6f81d9d061a67ee8e31c68edddddddd104a8fb1bd638cdddd1d638c1dbbbbbb3b7677c7eeeeee8edddd1d638c1dbbbbbb3b76777777c7eeeea884fa73dede1d638c1d3b76cfd8dd7ea236b1db04828c31cad8de9e5624d9f3d998999bb999390061b53d22ecf138731532fe3c33c40d55cef86083c280a642a8f1a86b61882a9950a3d843f937c952c62e624c83cc0b8a000ca1c8c837389df3801a6fbc552e732398829894818f66b1d87db053da10421c14cac708ebf2b19563ccdcc5470a3e7cf8586ed24e384c5118ff8c78757776e7304eeaec66f3731cbc51e3028f2167e8b32dda2b5612a67ac7c12f8c857dea766286710f29ff639fba1ad4e04aef63c94ab497bf0c83cd4ad8a77320967ac33847e8c75aae57fb9095700ff6a9dda15ab53b34024fc29dd4ed04e3b3b807c949ddff8ca09cf83689cf83aadd6824ef650258c75c16f7584e00f770b249d4d9b5475bb55cab3c4042b76791b3ceeeb7a342b82301dc8341804eaa77340e19d5afabc416382861e4a5b2ea2a612465888c583540dda1318ef0a9dba98766d43ebef61fe753fb6f2a7f46b40a1b56293dad5461bf34f990af2d07e31ebdb59ff3c15219a82baa55dc43837888ab7495282c65e7c3bab5aee594700fae3e754dd0bb6e19dc5d3284504a97efd2a5bbfb426f27b60e9a80c4f8907d709a8a02a791df5ecac7d6f66c98f98cc4fa01aefdddff240c6e676766666666e631ccee0e7d32ce3fea067583e3eceeeeeeeeccccccccccecec1edddddd238450fec89470e8eeeeee349a803b2187e26e7748e10d24030251d4c72414369bcd24f3eb3884cf0e5be0fe106846b13973373373944e0859f27a4df430636294504ec8691ace3fea06758333e7e4267cdd50a91ee771d684628e296772f78f30caecbc516a63e333664076e6f7b6332216c528a2929824090e4551c427222c2a89b0088b4a6a9f02e21109da3c0e6a293bdc83a1b08efe662875cf745afff8aaff4bfdd80796d27194563114eec122581d3b700e2678cb5d5d23349f4d24b06b7a3b2bb834af4d2aa022f0540fa0aa11548ded4261d3d4e8c5159c077afcb231150d17e414ca20c182a231313082869e0a9fbebca8f06f503a5e4705e0d2240a3050b850c5071774a1c2d799555285ffc35b3c301c8922c4183060a14516176ca1c21fc242856f81ce8915c65475895e4abc84a81ffd325befcefebb56ce2f68bfeae351bbe1deec4a3eecb85dc98fddae4ad6cfc84e0810c76b9e108437a017c402ed3c6c3bc9d0afb355bb3d28ebe05f6f32e51ecf3af8b9b7fb8cd4dde19b5ef14e3a244647b9553cdc99d1cf4825b24f324580f424efdb87afe3cb35c21a2117f7bedff6b2fef24980af792a680f5f7a2a5011a2bd0af299f0ff9c52beeca8552c6b15ff9cb32be23197c97cd639cb9b93692d60aa54555d2d6060553b42b5e75408fbf3eb7a9f7b31bd2897c665bee2f79904368b1a5fd3d2398c926dc2c1816a20e0e840b5ff6610d26f91635310d2af0984203e84481eca57fc42d0fbf9cdda09c16fc1f7a359a9cb3e2d56b72a50dbd2f18a6da94ded4b6a7fa428e00f5f08842fbd1d085ffb1df752f1d7e59d77b07fb68f35939986d323229fb74951a8d73c227376df13d17eabe67dcc44e273add1143df6a6ce65eba762e0e0496d94a0fc8d9a1409faf563c1a0d48fbeeac76a1b1a40b75f22254eeaf6fb73772757a7cf8681abad1e2a722bcddf6efa76f17d3f7e45b68f1de94b5d693dceb8f9e611d9df4a5de9b7680221caf5844c2f4dd2132ab58f17553301d966073f76f3b90e48fce911d9f7875ed79f915a84abdbcbeebb01425a2f0564a68010716fa7b745b8ba79a9999a0febf4d68b2467aae67d1fbbc951129c571a46a9cd9df1050da3d496fa4a93b1ab8c5dbb602763086ae771efd8169fff87b7e6f3b8a6f647785cf0f763c7e34a5140fbf942b49fde0e152904a6dc9bd45756c0d058c1a17e5f61036d24271e7840bdd5ff3dabf28ecabf759167ac1276ed5a130841a6af7630417fb9b9c190a0c2cecd51347fea3a841036f4eeee7ee81042d8d0bb658f3c227b644f64c51d2c96dcc16a150ed9237b5ef67477b7ec913dcfff3f5fded264bedadff9aafb7c9a42777b8aa89f16abebd928437ffe6c5026f747e7e6d8ff20ded2f15517028c031750af423a876b1573d7da6d15d23929b0f3176f6e0efed9ec697aa2b012ddbb1d3b76dcf7dd85be4b37a7dd4b16f91be10c58773c917b895d0877631a8f3511aa6fee336a5e60bbb87b03e98d8aa1aa55436c8ef663574405c9e087346ccc5fa5f458d334cdfb1badf2879dca48acfbaa56e160175bb1a2f2afc760fbf855df84aaf2be4eb74e2f111219d48f0e21866fd3cb105ff174459bd92a117c48e758c00776d22d1fd240e7ec125ca2d4a39d557e71c1c2a6a025b608d58f7d2ad39c4f25a4739885ca437c4e4afd835609b5c762181615ff0c8a49b614ff8d661893edce00a3a6c90c6b284ae94d1c143317d4df0703d92caa7bdc09c98fecd18b9164189249641b372e8c2a954aa5da36ee628c1eb9771d274428922f3d944ab584721f6afaa38228e3a070a0bc055dfdaf920155c5b648d65386ed0f5ad59bf79550b71fa552c9d3f9a03312abce0f1f12a173dc7b9d1fff46e2f61cf3b6711b7f5f8d44fec9fa2963c03de9bf7eacd80de91c0d85627e9217a455ad692f04be6624d6186448b4808f524571a8520c343ef4a6f6f1db48acdacf19e37b989a0ae18baf793c959ba82da89e584c2ed94acf1b3397f8b7d297a18fe359b105b78352ed87ddce099be4ea37bf033c95fb8faba637bd29c22f6da9e3189f3b147c525aaa1408ba5520fedb973a22fedb6fde7969ebb852a9e4a54e4f84bff427fed2b3e9495fe36dab4c9cf7f97f806be9e3f3d4f9a56ebe4bad4bb90ce813c1c4085146fd58b568f6c0b3b7641a837e1522798be4cd923763f34ba881d5af06b6754382f8b036548c55ea9affbe964effa9aaac79daaafe42e3476d0b1bdbc2c0e26c07a59f04a82d46f6809257c2e67082aeaf50140a1a557bc9ec7dda7b11168e5ef5541979f98963280a055946d860614a4266aea40788014c510c4354940d1224104208a17b00ce70e952fb6f9a883e99e006910f50ed20d0a3040a2d4c00c5a70726b02708d31162d81f03644481c689155cf9a9f2037ba2ccadfc9c190ac312036001818a5203098c4d490a6c985f14955ad004288c930fc030225232d3d2f3f3e344c991941c927c10c68b879f0fbe9011c16085c9074746f5a70ad1922bb40ad64334413e241289442a23ebd59699cdd98bce60a8d9cfcf807ab52c343ed0e03be13413336364466666d6abad1f0a084a8406cd96cacfb1406dea0ea11153673082479a0e103e73fceef627d2120ae5f76f0e635b4839cbec7e6766a960cb82eeeeee6a4177777706babbbbfb023318daefdccc1dc6bd194ddc9bdc446c8cbbee857b052dc8bd68405b8a390e569830a1849929bab0c28b25362f5049400f689a8009fde033830c37498cd062742bac50e0282181e24b305814698aa012861831c89e22a8501c47b9ba8a10439040cc14a1218270c2675d5081bb3b6fd971021b5ef8c122cd0f6438c3e05848ef9b147a65a84851c3141ece60f941c9d60297fe30b59b0ba4be1fb4bb1ba165062a8a78c2ccd0172e7e6146fd761cd1d005bb59e04932d352032c8a0a6430050cee70a1769c0dbd49863ca986d09ae8a250ed356f8205ab436ad91cf2fd87c6d7de59b03d66bcaa7cad9bf1aadec476b05576bffad5afd2ec97fc8e798bf4f2dd49b74853aa5036336233bcf595d4a4bc513df99f63712dd0061a1f76156f7191afe4cf4929eaff53c9a22a532490fef4274f855398f6f2b916d446ea546881f4f477a89722e1f4f4a9a702fdd3af6b87f4d40b42f2a6af98a948c9411cc44127c8643ab3869a50533eb743bfee3ff2e5a4534b95ef5a8adc8b6cd352d272f3aafb1dab32d6393fde5a977c07f2168f4b3ea9e37179907cbf22a7f7a1b41ff8a23eaaba9dcc18b1557e39c60a808864a07941fec94f7108818689e69fcc4c7698eedb8d84320ab2319e3c71f24344191727a9fc373a6706a7c586f338db42082184ed9c9360db1b9b8c428bd81cf03f77225607fc8d39c042bfeea02ef296e9e17b4fb74c9e0a456dde86fa506f7d053d8752e345a9f08aff7490b7784e4a51a87f19940d0d0d0d0d0d0df10ffff0cf0ffffcf0cfe4e816631b9b1cdd58a5f797b738ef9b30420eb050f87e65484b8c74655ea9f0fd05f3168f0bbeffbc4bd90e98abf43ed4ab461e526f28d852a0af6db9bb53ddfb289c246afc1f42ba6563e806961ae329c6d8b74335afa12666eab74ea86afcde9c88a4c6ad5ce7b444c2232cca5bd24b51805d9b2241aa203d572c71c72d5b0a466685f9540eea6a4922ab5b731f9815052d4d19afeadfeef9120a7f738e4915d640e1a34c1458d7f455fcbec65265ae81f2f7936d7f6788a1fbfc6acd905122fefbf9f796ca9559a8eb7dfcaaf0b7fb4007e4c4f3c14f8550aad043e154f7b74b65d56fd3d4cfb7a3f1a2bd807d36a1f0b47a16a2253d75899e48a9457589643041dd4e7b83c78e9d151410f484914bfb15b68b172780b9a810d97e7eff8eeda06bd7fc67246e359d0e8faff9ed759abb8d33bd4eeb6ca78e796c907b1b6a4365cd7bc73d77a7e7d139a7aff993e7a3e66b5c1ce77d089a98ba797f230494558455a727a479ee00e992afc35f034bcde97f83cc3ba7183e0f138c74eb011f0c51fbb7bf8dd5dea13874864bfd760c7f84391f4ef391fae1a8cd1e0f0974c5892b340f94a424b695396c61ce5dcf7ce57fc2ca9c5ff4c7e74bbb827efc83b7560b132e7f2f0523b4d23ffde723a8ee4754ff1a63a0bf66b4b29df16bb25fa9ee4254f72913e63b54772fdc7fbec59bf81c89adb9d2abae7c42bf38ab4143d9134a09f138908252e1f7968cf9ca65cd10a59de6c2e6f03f751a0babc37fc2bca5f5f4ca6bbc8f831070de77533fed0573cda7460bba757a297095316fadc759f5e72f2a19dbe27625e31ebc3af8fd198ce5322b6b17aad78d9a36f788faf10fed1ae24a4e6c9c97ed0153219c2afc53855e0a0857f85ca1f7f1188155e89522815df2d9253d18e78adef4d5d26e81650cf9e3677e67ae7338044a68ff77a3f273b31e1356e66a9755bf412b492f49d7e2a780c085af294b4e22cd15b894f1a76318d943b77c9156d0ef4656217b2415920affa9cd26784bfe7275b78c1dd6d1bf35a494dea3fced0985011b163a9c000a8704f5a1b12ed1096cc04297d070021810941301ddbad862940466eba15a111704b53182238296aca88086418f7c41b9a02aa220c8548884846290a28c0c21e47a7a8011f990438908221f64d8c8104d29d304d1142e484034a54b1744539a989285680a124453ac104da902030a3ad95286d4c29824aa08832a2141081a85aa4b44822395465d221ebec0b2fd0761f0a7ee0d9ea81bb5bbdda33b3b843c81dcddddb51997567507d1b62331d4655a5d6f69335404323263e483ab42a4d7665a6a532fa8ca4d20ae6e46382f308a13080a94d059965ca894444d01ded0ce4831545bf69a93516d6de63259ed97b136d366da8c0619977d34c8b8cc8f220d32dbc19ec29c62b1d39852c9db707aa09fcbe877723ff299f45c165db6196d46d1a3d176b0db985e75257daa6d4c2f004bfdb6a34dd6aa9d920bfa4d2019a3fcd81581409bd10c286a314e206f919e144bcccccbcccb1ce366f49ae647da439fb96c33da8cbc3581269036816ea886c2919bb63b77e7082417c9db8c7cd58fd383cadddd519de4a49809bd09844306edb88d69553f0e994db619010101e11cd1ef143bc93a2716e664741ad3399f36e3228e344b5bf37293864c362b87387b42e7e6f013bc355b77a0ea4e805af5b339bc67be9a00ac0e5f46fd7a754fc3a2ccccabba4fe623daffccafd3903d9fb54a424167da51e7ec7cc140434ed100d8bbe27f260f602c57fcef0449eb80f85b19365dd2d3c2f4cab558ccf7e4458bb991cb9c8c7bb10a10b30bf06f37325941bfcdc8c88d649ca90afa6d469a0cf62079570f12ead25e7e8c69dd098b4580bfec4e2f5805f8c7ee44c52ec0df4f5e3687ffe6469a4c9bb999ea1f37a3cde16fb2827edae65acc0608eadd5de837b5eede65ad9fc650f73cc2a160b8ebdeb7b3fb3aeeee0e7721162cb8c8b62be8e7339fbdaca031df623640d0cf67b2ba7093ad7c017c41d876c0ff82d16634d705b47e1c7b1f945de414b2471e914fba4ce1821ef9a447f6c827f2883c22b9c8232ea0920bfd6637336f0a422943748b0145afd78b0517d1922ad57f3f7652dd7fc781aa3bb797a582b91041599a80c40a5fe8835e39c3aac356c14f0121114995bed43f4e3e20a0d4573c0479dae511db8c59942cb498619bb78b0a305832012c7cdc47782226030b1b7705d68f58263399c08c8111d8aa26db1cdd7e66a3593e46084f336094c5587608bd9772e1890266285280c2fd0766bf71d60bac6e5f1e2c16120a211cb212638cd17405e5871be37a8c4fb950fe58c423d3e03debce5ef507c1f966102a68bb9bbef8f24c81c6779918db16b252118a1362044c04d58f724a68d7257a9243551d795da227383c5992c4b6db9abf4d4fddd264f7d4dae1171f7ad0bb57689ed87e24083aa32ed10d68aa17052b8b940af7460b54f55617cd20abfed07f2e51fdb9ced9aa3fbd41356941f5c7f928d5dd090caa6fa161081e1ee8f49caaff8f2675870154ff2116e81296a8fe1ae81c0daa13d56045f52f72820ed5df48e720a0fa83a0a8faef740edc4a640397ea5c7ea4545fa0ce5922a034d59fa138d10d5daa3f47e99c9aea52ea32b4f23bcc601e2433783283a22d8c0803c89b788d23990251eda1f88c941830b1040c28a63833834d4f13e8f22dba683b60269b437b4df2f0968d5f9cd47fff3cae1a29e805e9413d07cfe3dac04637e9b4f1fd361c05fb01aadad7459f5fe922239c0ee52bed531bc31ed51c745dd4756c7d055d5478832b745da91fe22bed7f878a900dbec6ef50d9a1228483efd71ee5ed501182fa94b7f3c357daa3be86b74345488d47793b3c6a6ce0ed68d95171e075918a870ba5bd8d31e8ba36f875a1bc14003c135aa5bd4946658a1414f1f37ab94ef095f63656141955ada749fd68b5b243dda0e397afb4ef8e4403fdbaa86a2921fd1b7cff061eff6c0eed6fc050edbb48fbf6a27dc7b48730edd7db4803efeb59d56ebccf5f34bccf6133bccf7f6cbccf81a8f779d0c9fb36a6d5789f5fa99ac9fb7ca86a9cf7b996aa6d9a7b21799f1b550d6af204b92c207cc8ae72ef05e0d3045b07707777e1b6480f7f7a949e48d09b2357c2aecbdfb6737fb891c6196c27f046aebca809631956bee882d684d96ee0b20dd19bba444c864a46505a97884995ca440ad1cf955dc7d1b2a6006b8a280616d636537b06b57fd7668aa0b56010ef879721f3090e5289685f8445224540f33e5699aea874ee353531ea14cd8800000000d314000020140a8844229140241e57b6f10314800b76924676541a4b845110e4388a52c81842082000000300103243334327089d468be4be765352a73dd5ed262642eae596a9725c95dca7054125919e68e3a3cc940bc95f5c8f91f97771b40249f677a9e9704ecf67ed24ff31a3d784e96706897c95934c7360d6b90e99f7f7d9ae0cb02eff6d3be1b40078aa9dbc0ce74ba6effca33574d15c33ab308fb3e186b4120c1287f08388d6d210665b805380457b04bc0b0905a8b4127cabe81854421bcf39245a825a188d4f9e4ec79544fb6a8a239f877bb05dec2c5709a30a92853f79cd9cc30953432b1356a17264ed65cba4015c2f4f8954133b6b96d3072df603e9f2d399495755285072e6e1a409f314c8e2b47a50e56b1397a7203ff554151538c5ab50b29444fd23f53d1e73ee33da0631f7c8164db75aa10e4acb4fd5af6acfdc2a19aa6ee639a6cbf897ac9de862103cf57abb70112e47aeee7cd94fc876f49088b019d71b1a7e4fd1aaa92c88fdf77367de7512329aa8f60d60bc049bf96da3dece087041e8357e2c3e25fe6fbc96378406544fc50a4eeda8d5fe5df1bc815af362af772ec70b1cbf24ee92091edc1641fdb788d99ed7e8d3fd894c2ebae832755322153daff39ffe3de63acab2e4938b146e932cd313151bf4f435d08b0f7a5a1c5a56568cd44b702cc62b5801921c7dec94faa3065019fb4878fff5313e8602e027ca77481fdb354d14409322bcd95c582c87c34a4e6ab8075346a6c56b94c5f1f2a29703ab2a3ac0d397d20328be874ea0fac8c07b0c3b8195fa14c78da6577adb8233ab4a6e4c27dd34bbf63629458b4a5c7c540c44c10511813db558e3e3a156ad12d54cd1e73d552fc0e28c31b6f4e53124ef7e51350682611627ab8ac03e2a88846306e6ef1873bf1956434541a516ecc108f914115adb91abc39f88a8a08f8112c5ceb2fdb483c8c68455a9175d2ad11ab8d7ca5aa0c65d96c8a8342919aaa072d09393a986ba297232e42434329867ef7c962d09cc9f12104343c7a33dab3931dcd8d33e1cd4f5d292635a7a534dcdfd6d6331c01fa821e45f9935f1a428b65a58792614e2fd65add6882ad0bcbb590734e5831c672d8e4960832b438a93b933800e458dd8482cae12ea52f94bb8b8c55f49c010c131d7ae1d09f39d1cffdc45e571976ce4f06f1d67701295f0fa093b047949c7017c7e45a68c2906c6303a65ee58765a658719a529e85d843c735b03c12e310ef3c719390d6e2fd8779f0e5b4a29c0701d1ccad155ed83740b476a8f73c970dea7c3a4f7dab3f76923cab0a34d4afe7ef4bf13f371a44b14d655c117e3877516ad9e1b25c6be3f2e782867974b31b13ee26991353b2f4263f01a9c856ee690f05c0405aea9d7b1b325e5cf875ef49615517dc50e828b0d27b28c68c54a73bee3fb129e022508e0e9ec06f1ecd8981d6607fcccd9e41a98dca96049207b527c467f0c71f42850dec2243511683aaaddc22da60d7d04a54da83e6280e1bcd25ad3fd499c966e0813bd2a0479ece3fb115f503c9900b7a1a329e255471b5ea55c29fed3e880c84a9efeb5c33205131c2d457581d6f9a2b12e523f6552d19b68253833bc4e9dd95240a83ac8c387de693e6bddffe03761595868b4e3b2c3b5b7d62fcc22d69591c8d1a08f9db1e396e61ec8a0b77234ea2aec4a8f43118b18b0ad36f6e68e90731f22e694911fcb9a9f675a36f2dfd9f06e4b629aeba8462f26175f1e252c71714ce67e30cb708d5ee94170ddc782c537d1d8fa01dd5e0495a154e45a8cb2ec513f3312c5932370823c4852220a53e4072bca48bf343be65217b7f6fc15d542f82d52f44ee7e47ad0aed11355bea84c924373565adff25ba0945359bc3fc6082641321dc25c42ded3eafc0ea668828760731d2f32b5e4ea95123752321d39a6972bcfdc92a8eb434e2b23090b90a8afa6953ad4b40ff19c11daa36b77e3667210fbc2be744b64d0e24d926ed184607c9b471e83bd0e45027a9650df2bd452bdc24b1064718257c7fd5ff7e3f0ba56a5bce115f0023c270b98891b72b444e5ba82df42e1820c2c0930392d7ea4a8a84362ce5a39c4896f4dbc30210997fc674fed0c25996c5cdca64683600f4fa9634ebe690709aac3c13a3b3afbd7f50a6e7e06ee61c10710cd0f97de0c55b73aa02b2fcc9bdbfabe47debef3e27a1a584f5b65bfec08814de69633117bc3f11ff4b149b24b3d3082d3c6c5262d2b579d4479209d86c01478b47a8575e99d7c8b2563bec376b729cdb46d164f4abdda37dc6ec1071ec5d523d0cbc68e6246945c46ada35c8a763187c899c189c82fa0f8ad01e203f566c73ed7353051e0df45762ab5c8a188b6f67fdb74e4e6d917e0a44959c804b84e3ec19dba0a6e989193e664735b9d1c061443fef0298dad56a0704d5f54a2aa92ac7ce0b8e9dfab15beef972da607f8f0a600d674f325bbed2a4298c376d075a578ec6d0907e66c0f31074a285caeee7f0986beee279a715290f4963d68b8786691fb216f431d29e950a4161402c15aa902d5bd9f82ca739e5d2d11d8011f8e3460cc1ef0e827b13794f40947af72266211d03e3f8c5c002724600cf0430c4270990b5d2940abec8510abe8eb803d9cf33d21a72c883152b48bdbb6ab6c15251bf22d9b79dd9c40887c38303328eb2491158c2df97d2bed738a37cefc71860f62df3bddfa2b5f154bbe8d5fe506d1075987eef2a520b6cee262c363ef5734515ec61da71af9c043273838c64437aa7a321f9fc516b1a1d23bb0f41ecf07445a153a5c11d612b66351087b9b8969df19ac7fdb18611c6cca5a9bbe5f4db9ec05aeee7add44223e077301f6ce9be123c05060a528f6d7c54a160bd6f4a655deb7d0addd87c436deddeb1f9491d836fa1418e5ca9000456318106ffaba28bcfa945b866d22fdea8b21a2e343a465dac29c3fdfffb2a3657339d2b486cd3c490a29f11e225c8d65e1f9c75fd7c291ba7dc45b911c0cf0b8a4bc0820ea2019d0b40d8d0582038acaae9874085eb80fed52ddd30c5b3fed91a7fa1ed5d54974e691edca8c4e37eedf4c0c0e15c6605dad622fcf712ffcdcc98435e4d6bc0b9cb25be4f0680bfb68fc54cd0e61acd3d497565ae87c8dfd9a4ec204af576c1b9843ea6ce86e607e948d5cf434cd307491117748721811238aaa101666b135fc2ecc5179692eedf5b603be39af3ad305e12b8eb51dec118b3cfa84d1b7f06b4d39d160bb0a960e37031b6246fc0c7b880c45e0a4b9a9311f508008e96176a504328e878fba0d20837c4bf2f1e3156fd8d0680cdab23267ff44e4e4e4f5a472c2e684f4948e6469731d5ef8344feeea350ee42297a492d58eaecfcc8c0b142b885cab8050609133ef99a6e33d09c0a2f988a8181807dda500fd86a0127127b4240e643cc623727c0592608ec9e6341a75b04e6c50da29f92d0da2bf70fb8b157ea924f807f9ffa1c1354769d8680d19366cba8f1d2f8ddd855b1d9a9f039189d086de3cc6cb16669e364434a19cb682c620f3209f610ec31b7fd57a284736806f0809bf1072c3c57285654a793c7300425cd96f960c43dbe4d90e0e335de4e26915d408d1af0df3d9e42b6aa76c8993c59345aa8bfa8b46d875870d20eeb6ed6e30da6c547979a46bc61b7e5136391e38811ec43cb51c715ba512f4f251f145a1dcce0807a1e8ff2c58a7ef9686cad3d52068d6950fe22152c1a1ee86bd682c5f140fcbe1825dd6dfe1b99f90aafcd2cd9c663798806bbd563466ea4fcd466753529d35489d9ada72e593f6750ddb48dfb7a4a61c50fb36afdafb9dfb694252e8834bbc3a10e87d258a6f5ea33344583039078d056dd7f0d8a08cb736a9256678b7d0accae65e4b1357520284a2c9caec892eb9a0d980cc938196fd779a4b034596c566b2b47c62fc383da106ec6a738fd0e7f29fc205a352fce1ebbfe698650f0e4a1558c9237af033d6ac195b45dad555db8f62abeddac6c16ab5adec672833a5cd29e529dc903b6c788cd46edada86c90d0b6ab411492185275b2c2ceb48f6462496d558f02d37a444f7faf4e7de9cef057adedb94a79b44a162c3aa59c9190b6fef4b49ee2e24e78fcabf03b62e5633f955d3a0e1b33b38e84a2294ae844fc0bc1d7ae0f9f083b0c1ee8e1aa606e5640ed2d3824ceb14091e277bb60aaf66bfc8d9be00348715c64aa8eb5776ceb8089ea650d875c5e31e83d4834bcaa8a77016d8ef5e354383c96e464d0209a981933aa2b0cb72679aad1180d493c7c9949f83af251ab334545c3a36825071adeda622ad8b2df044a6d4340c944a0b683a16137b9b3f18ea8be3649c267388b8e831433f095e9da76c0312e9324432b84ac7259b23dd90212caf534a8346810e5eeae484b56d76b508161713dde5f1732bf009e17dde607d6fde1b13eb22fc181dcfe7241150dab927d341c1d694ddbe8ab5d47f83183d2556c659c0df1f635f79581ea9c83263f72cbef8f9ef6e0ee9d36b9c68f8f05b95c071555ca7f8c6f01c14d506ead5c368ebf446216883cc3d42da9d131d10ce2a2d4cb7adbe1e039fd1c3c9034ecef011d695cdb43f4310da96aff8d6843ebe1113e57a6e1274131dc56174263a9579017dcb67b58c0092419ba81b0efef6be03d98da4d2431b5698799246325798b3cdf9e57376b335dc8c3be458c46147f46663800aa4e4a237c5fb322644ffd0cc33d297156a967042550a9bc1ff65c7f6c5c0d7fd81b744be7358c253fc79222ee95d6dc1fa6ed875a4cec9f008945d15e558c1366cdd37f5884e3309f0ff38a0bbc793663edb01f2a47b1c7af644a12c6463344a471eea14fc053bc08e6a10534ef5365a635ea0a04c47a62c37299f2c31bd1865cf5ea07a034bbbb83bd884756e7350af0f5fc87da625c47313149fd942e1d0779246264855554586ff74d2c56d0abcb66efe148bd01c9852997e48a181fd0efccd46802749108710fff4de68e8af2d1fc5722a9b4e23d89dd5570bee57b4778ed5038da229fd839190b9be1ef8bda563a8df516e8de8288f9040587b7b342be5f42f4f8e7643eadb5b080f7565a06abf9551ccb888c19e1b8090a836e178e4ef9662a0630f79b9915793fc66f2fc27ff96f27a955f6a79b5cbcfc1fca2f16b86439664b443a4401e1084f7fff1afaa5ee9da7fe080b66c5f4923de68a7ccde4647bab9691c4dfc7c34a7971531a24f994beeb5a34473a45df9491b74ed750a11866543ae205a039a8f54c4f366cfab291e4252e134969b0ad7c99c678ba23172be2afb7cf4962ee73352b5e1074c193212562befa44f635dcd637063e58651b45b91d13e158cdc54987e4e1717e37aba0ca64f8802d837536d60f87fb12510e8859877c9c53ca04b9e7f1e3152040831fb7a1c4e94881e34499c2cc0b8211d7b8a42f3c894213c1608606f983e7b25a11091bd3b215210ed49923be2e0159deba1806eefd0a8b640d6df80f008a83076fdac8a2feb30eb3e624f04b673de1fb8d500e569423a253be543cd3a3f3fe64934c4dc98f6e43be1f1075ec559e54f97bc0014cdffb2e3e7ee166beef294c7df099b6ff4c8a44c76738535279dbc9ba0e593597cfdb20c8618ceac5d118d4cc1568e9b3760e89c7b3495a1bd1fe1bc5684800f97d9ebc742b2ef6ce320057c4027395fdc1d4356e90ec8f00c998039c19df618a879f377f5175eacda8576f6a299d302ed0b26ab58a89491c0130a945c77e8b70ba28f72775ebf08d5045c99958d2840d1a5152a74943d676e5dfccb54781ba9ab180d84817f6733467aab2e2675d0a5e7d881468f6c3af6a2c963d694d55c5a07ca96fba427686315c0c54d661409ebb5b658a621baaa5c6154d87dc7a3fd17f0a8091f77410dff36ce6872fa830fcff5b506a07eb05c684a739d0a0826089b9a71cbef2c288adc1e231bf8a6452e33b1893d4cfc3ff3cc9bf31ad2deff8c219236fd87ac2c25400e8ceb05c5cf52f30aff99db8e70389dd2dd8ddd2874a0d7adcc779ddf65b06296b6a4dd14ce722e5e7a6c95e0bb6846513232522cf9aa242009ab841ccf203502cc1774ce9d864eedcb689f5fa870081c0f8fb588f5fd0c12d97c7a94dee9cbfcdd0e583e43a5e1a8f53430a6057e6de3c5ae56528428dd1d70399f8c02039a6a52863cdddff01224587e16f37152d9a5204be9c0d8b705f7666d8d96c29fa6340d9d284353ae925b04dd92e455d30a17489c8dfb9d9918ea48a0d26431541277f344d6dcf6abdad4c7faa07acb5d51c329aa412122cad1424cc6a7e558c5f1c423bf06b14cfcb947d5a72e4ec07781d4123c17c002152a98d587db1b68dc3f65bae2094c843470546ec93909cb644875d33fab9c7ce442e2e7a5d630bb41342d470ac3ff76fd561008c6880b2b9d7b2eea6b07fc40cb9995363511d9d4cc557ba1210bef0f820a4d1c60fdaadf7206f7fada7aa8dd0243c853059b859a211d7b056ec68e13167876205dda4c79104423045d39998b639c4dfa167a91111c0a5161fbc1180e57d44eec3444ee6151015ebf8b6bfcaf0f51d05e93901854a49754b512031d008f5f846990d4cee1bfe4d42c47b126c41299e4783c992cbd977b96ce54169af2436ff3dd1b31d44ca9264ca42662b33313e1f34406fa6ca76258d441557268f14f1080fbd1ac2a2cbe31d5d2e83eedd4b08c834fc9a3996fa962117f906a4934f913e71f082583e67ce22b396e3e94d66d5e01ba08768ace1ff428c9912682ae49f3b4aabaad61d16f76dccd8f11bba92684ed34e76406d921766571212de25357189e790754414bbd63cb11bc042600472688a27ac436f68dd5d9235c9c1e8a36d2cd20d05b602d4f6745455eec19cc8e7d04ad88f02583719e17d3e19aaadb5025f4887ce8f2112d2f67fd9950e4932433a0915cc8fbffa87c5f2135230174924b9159ccd3b0e1fe68fe43f8183c4ea1f7c300b2145bdad9db0ee04459ce13ae286d2f0d3c006303854e0a8e2b81d2cd647e1abdc5661fef8f4f09c8db663ad1899585ebaac986e4e8e9b245ee3b30df1fe65c97a8246a01b339953b1754e908b1550105f9c35309525aa81a7c979916dd7e53a1128d44bd0594c827069152d27d3f670abb7c9e1a2c7e3bd2ee25fa82e79022a23fd940e015180d09119ff8d6bc650152b6f8e3633e52ca8c8f714a5906d7db9bffee6f4b6f5d374a8868365bce4ec26e7532c385f5c99b17d113ae12a414178d8e7d2624d67f8cfab050ce8c983cf143b9c9784f414b3b5e3c467587f86db44a5a6227c5d92ec1fe2b1e921c46911dfc8606a5fe0c274963fbe8878aa0cf624e131907fd27ab385944ed75992e1eb0c0266f309f89b1b31f9aef24be994d40ce3d3839b25fe65de12fe5c17b6013c0bf9ba72c8429c90b80cf520af7b67c126cc0d2a163b9e327420a7c3873a1487ec4cec3830988e5306279c06b5a9f79b0b47484bcb3c8a8b81284408b079a1901ef285629b89960aff95ec6c1a8329fa75c7b2369704eebc5affdb0418f7ee3fbe319759cd648437e9f3351a6281d1185df1330ad052492923742a231beaeff8df13cbf08a72a055795fcb09b3950aec024503c258133c05276b620ae1cc1eea1e4c226112238a3c4dc352c9ff5a5586b38bea9c9286ab3f973bccddb4c1a9cda6609b730ba69a3fbddaa1ef086e8260a4133f35d130ed69857cc2a93431e08614659205b41205c2f54359bc0d0b0d1294954890f6ab886d022e0d609089ce27db349be210d453524a56e0a75d296b81c2d25fd544f9264eb82f3207a46e6a426a2c083c0ce8ca50da08e482b7fd84a90a21e9c13d8219f88bcb17a8180fd7fad129601b3cb1be4ec9b77fb7fe2734c7e852ee4892f3b1cb4366faa77ddd59e83d3b309d3a81c3835e4270d5e961c17684a455d19cfead64363a03e50c78f9f252184d9013dfa47c07d1687ab808c2867668e0d882390346dd4e4da19f178744b86a8957ca7ebf60c00b6689ec280146b706c86b60fb991b282c21d2422881c1ae605bfa7f0897b6de9993d860ee009eb06a25f3266b8363a710f4a4b9bc3166482e36b5a54b9efa7c13a7785d3d6d89beee61436bee22c1687b50c2da168b10824f86a9e6e93575b782d9597e9f0624f544779818597dc867422b85d5c7b7bf3a8800b14cff05570cdd1e654339fc404943c16dbe5ee1f1d3f45dfd5c1875a5fa94dd6971c30931c2a77be5ac3591cd6beb8446c7f0a452d4aadac2f486c21e482f356a21ca3f30f1621b41ad34250b21f2cb84febd5840a27d56532bf022fa668d7bfafb08b832a8f3a75dbb543c0458281bc3f197eba1b1f7504ba073ebf6eb34a8f7aeff144bdf595c9642a88b52f492d77e9fe9c3ba54592344813e6c0bd80dec7a1ed7a40090170778d0ab7a73c53f3140eff586914f26bc102a92a2ef495dedf582886103c0846e4516ad0090b307e4d4a84da4a102f137e2f357226ae100249e6b85481c3165ce9c1a0b16d2e39a41fc3aeaaf73f48549c49344103e1e6591fc6382f701d6f95fc01cce112aecdea9a36f191b60a824ebf4c76d2b601836a5a23b9b2361d7d1978138eced9c7d22a85389052296b0b08d8f8bd3ba33c415dda683ce0df805bebc85816c40e785b9384913f32053b4afd8827dd2020a60470a3f7da2f23b056662cb6ca6853fb1f3296525fccf321a2c3412a7114dfc7f3c47927f69314e165968e4dad23c1899a603f3c16faf65b608387aff87a96de8b5461cefb854d57323d85dfa49ea2ed62dbe90bcb2bce6449f890e698ef0e050c011d481d659bb9bb7be54365e47a3163e2abb72bf21e0cca328ccbb68037ffd1f023c072cfcffa68eabd1586814fc0eab93b3ed6e96a5eb3b9aa3f4841724e509002ce09a29c5099ad13eb986c24f334b1fa49dd4c8fa2e17c48025c3e7bc3b4a69ee6ddafb508006733769134d14028cf2fb85bcb384add6cfc707b67620b5d7bc252c2468fecb027c295254d732829a8ea9018aac16303719536a3e0ac95c695b965a7da25d8337d9721d2b3a4ab6aaf9a77475177845e786b789c3afe0c0fa02a994925d345f492ff8056bc4ccb4f588fa16b58f2d497e4c3aa5bc2d2246258bf9f534317f5745b879c85b37aa6cb4d90ff01e7b950e0108163cadebe66011da4e50dfbfe02715103124a067870a5acc8e4c721cb1882d2a00ee81888a93c737670f7c9cbd11ce0dc284dfdf23d8e4fc676398598608507889ee357735770748b1656b65da0bdbd9636570cbf4b639df5f926032fd3f6ac04fe1e46c6153020edf0cc1bd1f5534aa3187e0f33d08c1ea7f01e197c60c781717daddd1fb656f3a5ae291e8aebda3deda97dbaca9a16817e4b0f6329d83b114bfd6b9a59ce364b215bff3a7a3957a6d8348c13396280bd5da7c42a18423b361ef5c0debed5eaaedfbccfcb2ce2912eec9cf115b2dbcca61bffe31e79f402caa492b2f39c2433eadd01cf15a601d634d8a2f3308a6596291a2dd5e428b583677c14c0fa5411c2f6228a34a162e3e525b275a68ccf283d1cfdb1c671dab75dc41afc7967c3da7f6f1357335377c61dcfad4ad56d2ed6479787763a7ef7537165858eb3f8f1e994597d5a0647ac14f24c5f1328974a21a53de7894a15926048d58e2dee9491b6a3c07851c556955537ed5e672043032cfa2456b2acfc5f96925abf273d2ba158d8e0e78fbe8d3cdda6ff3787778e309f98229ac8adb608f244cd8dc721fceaa7f678487b904ad98fc03bae7ed439e439838d4f78361e05f500c7cd189f084a4a4df5349291f4702de37105e4d0f2d03ff091ba8a74da3033dff71478ba6999745a35c13bacfe2c7808089e49b82be24dcc7afb193da0012a3b7a9261f318388296d461164e0b53d2296b6252d18cc4860acf58a8389e9d60e9f5065d0a16d3b04f816a07031b82c39179c8b3740eec5ffc5a103500c14e9367d148e323a619c75c24b7e18e630a8ca09101434b392c04f642f3b4c30f563d1205f184c130afda38e2c0a9a14037a634cf061cc2d164eb62992ce5b40a2ad86b15a142a5ca42fe087a9d5d391646127e432ced972ddd23c16236bc52c7e31862bf10ec710f1945c33cf104ca746a1defe9a44d1dab1c20f0bd27ad86e08867f2d37c51854bf743f85be48337576c5fc0389e05574f89780977e0a02eed4e0f4819abaf43de761efeef438bc038cebfbb9d6b99d63e323c97257b200fc35bb791ad7c035c2386cd3a20360e624e0d8b60a8b5d59d5a6d001397ba48df653ccd072612878993d4fdc72b39649c27d7dd02057145e42c78b137d5f7a932b5e145c7a5304a659d90bed42fbf7173beb6a58324cf4daf9f3e514320e756517d45cca23aff9af3e66e45c35de69b71df5db0f50b85590ec4d81e40ee067e5d75badc30a196c48bb4375c6299347d2f06b7db72300c0c03ef9d93eecef89019cbaf9024110ed22527f77b7bb0ec045e2b61ec435239d3fb77d2023e7f1e3c6d3b1cf679342395047ea2d25e064a75590535eae5ea7b105e55221fa4fe612e0752bbf76b42727429d6b0f5bdad01a4b86259c17c4851a958534228af66092a344fb64ad211e699328de8f65fd2591d19d86b0c88d7c003366100dde18d43cc66ac58ed6e3423c59769a891fd2fc46e806cbe749c3c715a03506336d64450ea32677475a86cafca67efc479d4cef6fe308d9ff80d4d5de4ac0e886abba94da86c074b9723d268434d3bdbe72b8429f65313e66e65470678268a1a5b1fb5a2ea6330fc7fc8aec927bcd2d1b9a1ae814551129dc98f410c7b38009d4fc566135fefbe4ea7cd62eca8363eacdf9e386c9959f0fd49ca0c27492c52f4e05d519841610d780a831efba7966d781931d84be7a47cab132a7d18291399952cf2d45c556004a8d8417d1166803d8e9a240810c42be041101c953de5cc43b406c695729a1210c792620afdb8ec25a526b07efda13f9850bc738f6427ee2fd3bc037d6ec49db799d77229e4b114f2be8bcc325c46fde28df6c6ecc341dcef1ac6279656e45b431162bbb806a88117247bcc78aa9b6d0ff6c6a0d8af3f2b43b61ee62fdd6faea09424fbe9bf0f403d429d94d24fd9ecfaf3cb71cd2ca04544a007519ad06f25c6a5e2fedaf07eaccc92aefebd9c45a69a162aae391893db947a6298ef1488f8eef3087e1e7abcdbcc761ca6a62dabb64504dee2ed57e0c272b9b4c30e7d88f69a5d34eec54dc3ee4e2d1adec1a1c374c441ae6307d3097a740c8d340609726b0d950609b6f762fad9048ae93484a2facbd02168d97914a6aecdf40131d268dc5fd2a5a19dee6ebd5fb76db349316603ea187dc4a2f97f77f1e3318dc8f1b13d09973ebb27833ccac3c134e1931a7a9e86b60c50bd880e9ab9586e56e70f373ef5f762a2e13ab10119086e8fc8d9fb592aff4b8b3e2e9edc575ff9b51f160e13ff207b6d5eff1fb790fb6e0c6255a6c028c51d1564523cca4c76f6e9486d99d7b03e126974f2ddbe8d1591d3e2eda566ca7c1214c8e4dfefd5ec3e15fe4838693db4a19a639a84001f6fa08f702b0d9f2691a8003307885f1e51f70337c23ee440c0d91f0f53e9e6046efe9cf610cea878e05a3ca828e3e17d4d59f7a07bf927f62c40b46cec9defe93c5360ea2e2273d0510d8b79d16a39c9d4c7867172cc3d24c0a2c1a76c3af9093f77dae2533b632d3afc1245044fb7ba6197fe7e205d098b68291f39da6410a7d45c4921d2346af9ed1ea57658f6a4283d245af6b056cd0a6bdc71ac3874d629177dc0e80b6f849dfbf3ce1aec3c798740fa1f6da3cab102aa7d1ab1eb539c2dc0d3691a255548c7ba4b103dd09c199485bfc25a45d903e9a81dee701d9eefb2a5b88a7473c5ae8b6fdd66678a45f42e86dc808ef5e7f300e3be5c0a3ad3e9b071490482481b6ee260da3c1eb0caec37f30a892e2fb95ee7b7c284d2244baa78d9dc1ca58932f416993a2c12a73ed89981754408b3edd21c5736682a45c874ba448334a0e97c0a55ee7bd890d595cae60a13cf36e78c0512598522175d6086d3c98119a19eb96046bebfecbf018fe9c488d90b13d72a8c0b9cef543462fd1f7c45d026174ecb58328d2895c14fa5ce7d3df845d30ae43f608313576857834bbd64a2dc63b6cd2566ff35af0853c50d4f8d9999d0d577b3e25461cf5854a053e6ea518b4ba1666847a649db99c0e277a6eaec35f4c9e0b165757bf487425c0de386987b8ec184adfc1936e561b425e951f30ba98d405cdf1f7a15931a0f483e6eef6739b154b6ff70f73567680c0ca52a5c3105bef34a26f2ea287649b6aaf8f789289344893a071eb1a95b9e2b446d647a9fddb6a948a1aea010aca943f381771f4132b75341426723265bd4c659e71af5f50e47004bbf6b1ac45c5069e75ba9e246d44e138615b33731cc26290bf66e760c8f81b714218b3e2a9bf38798fafe4f731329772b4c1c8d9e03d98968644304bc20ce66fbff20eaaeee63b87615cb0598e6474e3c40d5ebd84443d1f3111d390a1df953c8af788b6591590c908e70dd1df12855cf370b24cf9ff068a89688b0e811611fd5ed25c7eea59771412333368c0c54c31827c2098d71cd5d8ce8c1331fbd62f79ffe3091e8e71cec8f3c2755d093e3e3987b92a33196ad12f686d31ec9f1ccd91b19dfe84d18189171a4d2ce65134d86268f95b2c3f86b10ad9c33e7aebc544bdabd15c3fd8471fdd3a1d05b317c98286e25d5065634f690728b502d9fb460636f226847feba1d4de1b0c516ee0233722aef94332e4c707526e8d5e581b956d957877efccbcdfa90d79ae373ca481bacec873b70776cec22a0c78ab59b4c1b6a91a0a68d6d45d0c1a29d6b61be83cda63289ed933a1caec5fcca387c3167cf56de52375ba0f5686eb0f7a0531c1725b6b1b01d922a041b127a7a47e2e8f59b9751476fa3a2ad7083966dcc42c8e9c97d830b8b94492933519af3e0e24b75695e630f30750235179ecf5ecf215c7e8a9d037a2d03fa7543f556b4855c302e0e16b5c0b6c2f9f0d3d4c145a2e4a40c3454023e2eed7834ac55127d765073105518097e12ae00fba16ee71669c6f1b82b03ad6098be244e9280cf2c9d21eda4dec39bc279b764a07ec6c5f786dc6743feb1396c452f8cfb8aa7caa1630a0f980ac66dba1ced129f0291081e9213ce34c08b187505e85158a20259f38bb05241f9a15f612101fb729f499ea646211357b13d09f7206f8b8ac1bee12a76db95c12e4da6f1af1cc85f4689b93dacb23efbf1d79f9d3594120b5fc2c639706f7b951622d693110080ee39bfcaeeac8d9eedd059bbdc489d923a6b5bf65f5801e392e71ffa5838cf0a14d8b57e7a1a4939c9fdb8f89b9eb3f796eb8464055947162a9bae3ed48f58457b197439aff28523e2fc240a10fea6083da94bdbc7e86786d148763fcf4a84599a38adfc9c2a2dca1ca2304277aefc37baf6577b19f76cb87b2107aca6a947f6fc1b10e1ec02fa4bac77cbf9b83db74a47f7c367de1e6be77b41ce5c78d1ef599ad1119de2e13a1c7575792306aecc1ca7b4cb52eb44137ce1d20f371689aaa2b000687f0be373ebee6586515cd262d1507e7943d7ede3deed0c7c545083c8fbc9963ae07d85b2f40aae9c9e800faba05cb144bfd0209dd01f52f541132ca5e1b3b7d4ee4362c666bad2a0c8dc5a87c6a8b87c71930052ecb0d39dbf8c037211ee5bffd1a3d6d15b6015559b67a4acd1e9ce0fb2741cf0a4627838d752674470fdcf5ffb3e8e966782ebbd259b75df8ca5e46d157e5241a3944ca8d59623935884f445576dbd4f971b740647786727a3a504809b739186eea5ca0c12f6c7dd586f2ef70eda801cee5984bca8e4a399c772252dd9092f6618e8ebf44a132bb2e727e9c07fe56dfd093763d6a0c0218adc54e17795d95abdab986a2bca1d5158ae8ba2b04dabecab4fb68ef017ff321315ec635ab145cd0cd71e5706d78a555c8758c401d6affd30de2ac3b2fd70fdc97f06e83cb4ea7d5e547a0bead0e7f83eebe9620895792c6970fd47d8dc3a4141bebdeefaa3c97c02a4f85a823bd6cb183ba1b9b871cd96681a545c23f44733efd38ab8aacee93e7fcfbf2a5042434134d625caea1a87966937424ffbe3a5fbd25f933c293b5d20d3c0833f737577ac1327f0f776e379c19469c12e8d042e91faba6cf2d67ab89dccf1314706b87e1350d5ba344800b9f8480bbaa34567302a490bafe8cbb6d4855ef312c54ccb92b317a4de15a3c45c9dae8083de461643c8091c3bc9633043cf00bad89e76befaa63d217213b3ee8348dcdb9d16e4f9b953f06fe4f8db292cfd38bb08831194058995cb869a230178b364afcc12c88e0f8cd1be36332a7333ad98f12bbd1bf81a04ee63eadb78eb3707329982f9a4842e102bcfe0f394440487a82d4e57e805642c29ec283dcbe2e7ce7abcf7e44226b1e294af8a4281ec68a1d0608e09827449ccf84f5882a7a0711af2512064fefb5d96c09857cc01253b5eda9065de8afc5f4315d917d2ad0bd3af5d392b425dcf9bef2c7443ee3ded224d7b114634c302f2492fc606cecf97e098b651f7e089c12a487064f183d78f0846bf59f5072286a41b5342c46fff63189730e9a73ee43c282aadaf352563bb127e391b2ba311c836782108dcc3324df0bd60e2a69e0d5aa600bf1e8fefad47664e4bbeab7b955ac495d26653357d795747f9afb50a58850cf87ef7f17d39452a27dcd6fc4a94d497beb9b37d12d3895474400caf9bc66fd4cce470655c645e8bb9b84796ae1bae03e8bdc861dcf4d24ddb6838668f13b8ec3f29b56bb8cb337c6d9dc08dc7a37cd390e234e44ee03d9b31896bc13022b03f10ef0317e81d0dad119693aa16496eed55290b4e7228137389fce33c416aed94ab3cf95908f3a92ee2a07dd321d4a72beb7468ecaf738ea32ef6bf820025d5d79d67bd275d58988c0ccef5a409de74216e99786ff36853f3a4784c173bcf8637ad95720c69e54e7aa58180f88d00cb06dbbc66faf7ad915d22ac4b88347fcf487c7f7663dab296cb56e14bccba4921e32dcb69fc7caeba369bf20c5867389d344ee610176c916ddc865cfa332b28d2cfe911e8c1b16045c40ac2d6edb5d766f3a631cc34e23afe158ca0dadfc548c7bdbbbc224e3d101f29d7382a2a11b1076adfc1a1a6ef6164f5d6ec10068a1ef63c5050fe08f66de31a5d4d980379a7066d3832874de19babfb18b46b8f90d58786a58bdb5ab39a6fd9b82f228a36e7fadb696a4041e97a891a204c3e740f224df35796dc12a997ebe60a14f4017b13bf80f21e1b3b8cbfef513de9dfd18023e749dd9a6254a25516000d42b9634db7d12d37e6d47d89157359f4218431dc574147382401c1af2cd8e1445d65d33a1776e093b613a0c7a3c7249cba9405839e8d018b1ca50b720d13cc6a392865e31635b60de9f4f10ec40eea42a1a0dbcb2abdd70df909d2bfc88eb1c8683c78ee789fa33c74be264c1fc015b0da86122daf394162ed9e6e2e39539e4ba017a631d3709662d95b1a251cd2c333858e735db5158b7f4952ad06459712208c316b91a401637f68b88d1926fe1485588d71fea67bf78194c89e4c9c24a4b798015694fe84dccac33a73a6710cf42517b54d424c8a236f174f9dbec5c7ce9db1bd0166ecce8df03d116ccc6183a8935c646a67a704b98a2f98e67130343168c378c933efd6ee3e9a92ece5e6371ebf9ea5a16fb92e87e32541ae8b8ba31202cbeec7821be798d60f496a1d4307bb3a53c9e14006aff2117c498c341ab5466bfde49c46329089677e9d1b7e8e01da2c4439b66e44a119135d5edced3de7f2f4c231f334b04bc0cf6818683dde76ab6234a30bd20cec33f814ae38fab47a35fcecbf1d0d774497ac089dfdaaece168f2ef98ed4c664a2bd8e410724697a0122f38473b49ed66a6745a1ac654678951827d5203e862a10272188fc4e2308a326ce097c9e6c23db6f8f96bd55bda215f21c9c91472f887db5ec9e0471c60a7c4cf3e3775b760b3cb3a71101b180ea9ab5ce4387e5dff2bc14912fc6ac3b9914469efffd98f69cf1f5a9c4220805673dce33cfeb568ed443c92860e512c2f9ee11c189fb261ae09b07a0f742b571d08b6ede5d9f1b3c43f227df798561aa17db5b2dd0c5f4230e6fb6fb2e0c4015a59cba327dcd7f16523149f0cd6784eba4995ef0d42628d3a60a51a646c4741cae6f2bde451db8a33be0245c1a515eb1959de0d794651ee99580ccccc7fdad0b38de275c447ef509a11ec70b9fb09247b1a1e0f16ab605cfc30bdc95a69aeb0cf9f6c0c692ece0db1b66be74dfd99016b63b82c9d6a2a794a225a666275b0a21d07cd607a6d0c61f2901b83b0e8f74b815605db9b6a0d1b53866854ea78666a85f523bc2e8e061cd9fd632172a3e9524d47191c564ce264b9e1f589f58388430e5af8adcafbe2be09b49ca73275eb9d53ee8c5ea321dad47534f48e3f8279607007a679b9064b3dbeefa5da2fbc3ade63ede1d7c44ee414532a7983711aa43e57ffa855265f88793348ec8d2f515d83a16883695def7a05a2008c20a96028d4ec541b064e5ac430023c8bb49d764475058aaeed07da2f7b42be21b1b9fec700e5b2743caa6f75a45591dd92c858e7520b6d19fdbc09b00125e5715e3e96cf01912b786d0635745f28db22ab5f71bb1e20438497a91a92c158078658f09651e68fdd828be44e6157f579082535d64ba565d3b87514bf54ca10638bd0084b6e918df243ec0e86dcb8ed76894a94ea4edbca73ab8178355f7bec6ad86062a865c488b2d4e347a5665e6f25f1b5d8eb513d436d900a459adbc3fae92fb5aabdfff1f25ba50b0cfa24399a2b8708748428f69b4c02fd84131e7edd8c6f2428c0c1bfb79e9c32942d5a82b692d4928769ad34b802efc78463add301124cfdbb3125eec2c5191bfd8ca9e4f0c8cf2a3a7ed0ccb88b6339a25b48a8ba4b2e93464bcd915a8e1d1c5ced98312476c6d4d9d14f234c3144689b86310f2f52a91a9a180edb4f054f8996c6087eec83943d2991112945ecf31cdc41ada670b6e3a960b60b44105bcc57c11a769ba58515634557248faa9c0f2f91c214c0da67b2ed2ba9db0c9eecaccf145f291550d8fcedfd3b8ce8e5bc2820f913651aff08a243095c132933ec5f9d5cbd41f5141d9b85d8ec01c3899ea8c4b6789984bdbed8d11ed995bcac2cdc2e96278b5ea0bbad0a296a0c0adc84b0daea90e38d90c33d11597ed904e6bcaf35439f82247359d80b8c330a42996c726eaf76955d438f6cab109fab17c3d7b89d8398c174e52fa3f24ca1726778866f8d1ed996dc0654e755b3ff15eb12cb90a9ed26ff0f27fc92e22aef8c9756167c52415d23620d6a5e7da33241e81ce3a4bda7e31f33adb016d4cceee615ca0ffd300e5c82a982a01bb36e022fcba32345acf4eaa76c3168695bd3724a2e6d21fc4a6711a828cbbd9e0264092a64a78c85f8216857f53e8ff5c75c5a389334764627ae9e890793b1ea603c3382ab6e9fed04b5139d6f29285c7a5def72df4aed58591b7b8229b0b58780e5043465b59ef0caed0a814d129eabc66c515d227766ee28bec6dc4bf4be57f5b27021b556d48a5eb95cf29fdde9fdfa64363499908bb6ef07d5f0189a5f2d6bf66f3728a5d88d494fe7988532b82b7014819e2a18dff44d2c89b4d39c2042a8a94dc88ed6ef16737a814854225d216e7d720a211a3bc4cd9cc446b3d2d80a01e24b40e65ba9d31d8cdbd942b31de500b492a65f0856c8448805e47c3556509c3f35c1a8cea1d7afbfe1402ddfee41974b3d6e75a41adb360e67fba9d27bf93928ad88b1848a2b2ea136aace5460b8ea52e49c4acdf2c7591d328bb2a200d67b417114cf980b4453ea57380acfa45c72ea23e1443ee9bbdc418ef9524fa308f1f8222ee5efc0111ca92c8022218647c1505f7c3d6ac6f7dca6575ba498cc0849f59d0a7b5f80863c2ad78bf36d21207e8409f7fc13d06eb93052fc5c1973da5f18faeea53639f572bf2153aa19a49bd856446f6d1c7dbf38e4cb60e09711ab52b6aed8d7bef6764f72a6a7c0ba6437e76eff030d7cc0bc8f7c386d1cc191268527332f85adb36c4ece43183a40933e276ef87ec2e398f59ea3f75a57d1736050822df9e1d9186d4ebc7e9a28ceceb8e4f35c40875d12900e05fbbc10f0b2cc758240b4c160673e4567f04c02c603cce81bf8495b010d0efe11c6d36fda7759dfd981ea02225e96250321b6706d7084aa85e6306f398fa17513b72f48518ec4e1c0110c67040c8970c1974897f27ce53b884196eb79510a18210c29dba34befb05295cfd854a2cb131edf78959a05f25837278f92ee45c515828c3105bd1321a71de532051a42dea44c1f74e27e1753863f27122535947ffe5c99a3a10a2ad2e5b014adcdf768f9882c58de56d459445c27b6bcfaa997a77bae50b00c125ecc2055f38b715732b62ed3f7087f49e118224c676244ea600fda38ba018a1812b066ae40931bad1c2da21695a5b869aa7a3787fa4e6e432dc3b8b3ab04b1116fa7629375bfbfdf241fb087cbc3c8e31826ca3beab1070a8819b60efae6b41a28e6b21b05866664197d41a9c138572dea1ddfeb1932eb9a849511c5dccc2afbefa7b18b2912b50d420c219c91ee472830733ea1aeb6de150479b239f5514e15fc1597b6fdaed06dcf31260a7300bfe8b94e450e76ee7e1a596b7c42bc3919d341f33ddc53a8f6132b9b4369944ed19fb05391d62acdb66954671edc873a33b8aa93ebcc4318615c0659100a51703287fe3993420d8fb165e835898b203e215aa5cb1a0059bf95412c18820f13f33f34b8d443b5d307b0e27c6ac0182e55204021213ff0b3e586b227121ea8346ce3c222d7a4c206c90904d04401c9a7f0a39448209153c960d09f8ea8d5d97dfcc10b021c786faeef6b65f17dfc448de6c410f0fc7c68e1fc8e268e73bdc2456d868a31a91608188e8911e3ab8a1ae75cc2bb2e088259561cd4a35e55c28e40fc236fc44fe6da1da41629e6186ab8c89218f42f5a6d50e301c4349069c53ba9865a599ccf67756059350e759dc6b4b6d7546af168c0dd6f1d50d90bd5d0c81cbab9a065d6fb6443a215f59355a8dca27b65b869ce86bd408635287683d5ac8f83120cf5182a4b12d7c5e06676a19b401f953fda10d1d934985b286acb40dcf45f01cf3843669624e19458006ba54c38a9a7ba479e375c5d1a28f9d865c801203fe5fee8e0ea739e1cbf53bb48018d5fa38af8e04cbc909dcabedc796bc8362e645d7f551c46bbf94c571cd859e2b23d80da3aebc0b02bf5a6826a9d269145f142742e500b808ca8302c156d3324c52357ad4b64779983ec905dda34d8417880f1ce4cc4fd19200371bb856af42cc509df3311627ee9e9cf21a9d49f02c70f0b0b4b62073f4526cc14c33557b95485153d52c902607ec428be07ca7bc7123ecf6b684368c6dcaccb8c4f7e8f13aaf5b7025a73c1b9f7750f2013b61126a0f4d1cce1181c27354da901dbf83ffbaf27fe81d85ec93b97188ed8850a6c8303a14e1bbf1c0ee0d1cb4bf7b6b36bb28e0b5f9289c2c788e3a8bc50d50a6c03d0e4c3b75c8678342cf7b671a09dbf7165f8e1e7b063acbfc5bd35960e30221611d9f80bcf3038c0a787225fd3038f080f48031ce7039b86d31eb7aa4a9b701f9d44a3af9d1cf45c6d71b6d8e42b9633c8d1d546b5a486e7f9ae9e24d46f0ffbc6f6c7083889471c85ddf70a03283760eea35a0307f006720525967a16bd9967a1ef8a1fbcb4593b6c9030116fd583635b44ac308128c22ea6fe0f5acb1465124e001bba8191edd183194289f5c52c33ac4967f92b9967a2d202f76c1f2d5b9f978651b0d8dc755b5302d8670865cf3cb69c9e478b4d5bc670e551e0e4119a3781d5128be2546c9e018f0e6e40d8b7f734c2857d4d2190caabcf10df0164d08e3ec8625f73c69176fed57364bbd0d309251c9ccbe1e766cf30861b19829586ca16f36cdbd78f26aabb837607d1dc621140934713460a162eae3999113ed960096c050c9462bf68ee3da9beed52cabf72408eb85ff08b720281aafe234970a8b76cda24cead1605c8b8c8d3349cb41ec9562b6222d7976452995b9782865b86e96312bc8baf9998842a6d7ae2e6712cd9204e6a0eeed08995992c0f0487b648677e1d53ea3515a8fa90f7fb0216de20e8e6e9f57434bc0c818c92ccc2e13dcdafaf4052d66a5c6e48790e521ffa50b24be82d3685b00bd58231fa50a4984a577349d83ec93079bcc7d32c08bddf0e719fbc79895b22558de3a91a7c59bdfad8c4d24e4a5583d9464b30d388cfab0a3183bdf89985f916535cd151e9bcaac6cf31f27cd51b0132845a316845df20ec1b5df0ca2e1ba53f2c43ac40dd304a568f19953a0c1f867b1448f64838c3511820f5e710aa98a2f69afb504cab7fa786bf0bde2f1af52fcb7743632a23a5b66c4c0ce6f1f3c2ccbd6bf08b11cda48e69c154e9d47c15398d234dff854c87972dfbaf4a97e56a5e490020b81432add31d90e9fde15a359217d8745b133b3bf3e10d07697c4c915114e4709626722535fafd76e6081637cc17525681ef8fe6582d2bad4e2b8052c834c41f8e614219c95a33dd688d4b364aa43bb2a8a0623f777a200d4a98a18429a2a5a356cab4b7c3b2241d8058c830a118d0776d875332e855b8d845c9ca85307b4de1d9402411bf1a0e05aacd8fb9c4a8dead1f30e75d648617424e63c44599763aa7035174605344ef88fb06769f4f485fdf3b8d00e6aebae784d4ac8f72c24a036b3b7104cba00bcad7edfb1e4159cdd3d8b10e1efd23563ca6ef9461196a7d5649959fb545a59e297f60d75d00280364a2408229cf177f93f6b8fbab62a082a0c2cc269a1642f68bf11d02f0b264976bcd5528a1bfa4074265ab68b1c575e96cc3ace7a88797aeaf5261b0ba785f4faf9b2f327aa05afea5e7d576a64c9fabe20a3fce15d8ea80c5a4351d35bd2dd0e2a4a43567f1c097390e075c662d968b87a1c3e29aaa74eb9a6163ec92012d51a96bd008a3e16efeb29dcb11c93217305eb00f6ac59a91960535b822edde1e5e7b12ec164f1a65c6ee87a2593da49c6096ead7b50a4c866a9083904f4e94a0d6886b8a00df3466c7b64eb2902da456241c48a237ddeb9364f35201221ba86ca39c9fe4808f5508f1680040a261d128949eccd6a0380d559a7ae170bdd39025e36873ef5cc9a864aa8334bb50d10803fd7f5c63b3fc31d6317cd4681b61e45c2f89e499d37d424344017d77fd0bc1eac4d394f7ae76cb8be61f72c0c4aa2ddc9605910346c676a440d86b9083434c03768119d5a520b61f8081e5858a526ce37ab7f52c1c59aef26779b36416afb3ac36cd1e1478915a372e034cdba610a1c7610affaf3e300876ddb017c1ec01bb0c049bb0ed432b34f54a8fd523d1fea8848969d5b02e23c4b232a8268c74ebc591db4375f516337d8cba9e526a371f300386467d0a51854f997d66e824d5432263d1fdbd2108a1d6a5658229a86f30afca70d9631b56d5ca1a1b29df8b72601675bd659c07ea1312b6e904942a21d14c8abb96b41317702dbee9692143d762057fc888e9bdbc9cc4b5cb3e79c64ee8a0b810938fef5d0b011cdfbd5fbab1d76cfeae85e04f9b887f5ad46758da810a8c503423feefc651824a2bc1fe3060e8055a6192d1bfc74c6899a5daf93fef91d12f50c5420dfd0d10f568ba816532d33648d1476a6cd2dcfbff53b91e541e4f9bbbc0ef42bc0ae82cc9ebd7dea300ee6de1de7318f2b17fb6fed5055ffc430e4f88b50682080caf3c10007c3559e806bad12d0886b786018195166ce9846884600913b035019e3a29025d27f2f319deefcceac033b3431b8f49fa7ee29b6dfa2eced5100e944e9dd1a3060f2f924e73a6e6f23d4e2861a2955adc07bdd9d9f871502fd4435772f94a970b3066b626f5bda72902ad5f0cc6be7ae0b4b295706392109af0c1fe67fe52e2e053f93b6f53d5e8eeb25fc52e24ff97ba71b3c9fa6ae45baf77ea07acf182c6a46b80a4a0a3e1689773f9121c6f32110f8f1650d28a02860a3b066d5b021bddaedf8a524c7b1a116f7b58717ecd5afbd6eaf1ed960de901fe6bfe7b7802182b4b109e248bc80d09313fd3c43c6404f3cedef94fab99bdfe46ea098e4c4168d009cfb838215951f15c475f5d2e6478157bf4e1510e85c98832feac05a6725e8f7864eb2cdf30e00b318cf45668bee41dc7ab5e214294af11355e729e120de2b4b8ba01afbb2d0684d2b8bda823127c2742f51d3cc998ee55e45b60cebd45dff0e0871b5ad3d6f9f71040376143a35a043621cbedbbe92b04155f20c316f3a4846b069cb90c3a2559eded7dc5f6745a7bb467bcefe5b15dedc58eb7e51294995468babe80068aeca0ff922064dd4e95672afe5978d8c71df85742df558e888e2d744d2ffcd01fcc2a9889d91888e08bb0ded039170c3c3f719930578b4cb0a031e9ef0b5f7b594403467d3f0a8271934964c20f0de67be803c17ecd4ca8e846be89ffbd0481ca27d76b2a4ed1d7af79de0d6fc53ff2b9132e159cd0c8b9145d691ecd6f6c037ab49335260ac1f72b0dc49e543c8baaa4805d7061a3398374e8c7b9a00e191e7b7d2d9d97d6021251f193e2f841b03d5cb8385d06afcd76a8d0df43384c5651c59e640296ddb8ac7bc2a57fbfa028aa0739c13fdae4e07689c35582faab9e3935596f37975ca3febb31e92e14700718c3990c225c4f598e72449c2c37ad5f4116a35f0330960f374b2d85fd6ad045af70bdebed2612f139923bb074aaedeac0f6f95b0416dfb34ecfad729fa15bab08248b030a841a7e59409cd1360791e7a8662800b870566342397e40615c999f390da6b31194a703ec42183a8e4f3717c77de90ebfe85a31bef7bea5ed2fb0ef8019e4b3cc50ae006a9be7d2d95d74e500bfa71ab073aae3e56d77f7cade32c99464b707dc07d107afd2a4d9851010e48a8532225cd36b87fef9c87fb8c85724336797992f717e28af1a0911121f096e306005f2a79d7ca1052b5d80105ecf43d20508a3fb6150bb8c46be43769d9d20f6e7952e3eb0dce9211f78dcd979885dace721eba1d1431eb2b534e79c52ded01fec3fda46d2e0976f80dbf7f4827a674781b8d82e5a318586d111b4421baa718fbd0deeb1e7c7b0d7ba1b3c68bf3d96f91b3cf8e001fbec39ee7380e6ecf4b4566a58a008459ef4f61ab6bd564306bf0d4d06771fc03efb106021d07eeb2848c3f991c1bf7d0e503f25cd8f0cee647c80e4b3b7419275377c706723fbadbbc143e6b9cfecdfe0c1070fdb674f42f239401bbb21d9945c619f5596071f36b8cf3c0fd96fcf03f799eff936b6cfde4646c6ec3eb07df621d8ba10643a393b5c47bf0d8a9668090ad6a3e027d21105e747fb06d14f4a10b6a1a2f9d9be33191eb8e1c306f6dadfd83a393bd786d6ddc83aac939e0516570be9f12da4c8349c08e3d005154e66e86bbd7671b4f6cc589925581437350708385a39b13891216eff8f540baa0827c260cd717549b8f2d17da421fd414797df63688882b4857e74c7e5f79652d66aad46c33d457e14140ee75fa3f191384753bcc13f9c010c2a900f14141f89a34fc8651a0a729bc78dc73c613d4fb9fbc8437e0b05db93039b09d31d9ea2f5d4fcccc9856a8a291dab298ee338562d8acccab5cf5dfbb4921644dba1a289b45003a2811acbe5f7eeeeeebf4a7206b326ced7a1a7383ff3f903196876576976f82b12aca77d97b52f43632ac94fa791a6f80bbf0b7194189322d252ca4986cb9fd937bbd3dd457eacf2244376bbf393c87a1ef2d0fcf8113eaa4c849eb83e0a623d3f8dfcd422498a6d759bd212a5b444456a8406690aa4a9e9364ddda630b7e9e9367db9fd945b32fda6d682427d28bf9ea35a98d947281d1c2567b814e4873e812a394acee8928ba4a5f670b7a915540ab7dfa353dca6abdb74e4c2cad9a94eb0b4761b9220ac474b4fbfda69614b127602b4249920126f8f4af3436bb5d60ac17a34bc7d67474b46686907b73dac47bfdb4f6d40697081909e1c482a84fc98064d611cfa5b0cb7db57455c4749e799e1af26ebd1d295265af2509e38c9c51f34c57bdcfe76213414e4760359dd76256ed3944b4bb4c4366c2b6f6e0bb25b4a29533d7be35daa943ce166feae82f5ae544acef0cb57bafc400852ca6eac2fcf6b8b39e75cf9c85b66cc34324717398b875ce5f24f664e7e76b5ed3dfdec2129ced55c59447023a7a23b152d90c5085b22bab23e6b858e56cae5f7165bba5d9c1f17893b64d745cfef41c80f950245a1449e593ea45584cbd6112e5b515c7eeb06f2e3a72fc80f15511839a33541b03eb07670d99ac1657a864bc570f9bba3a88c184ea8cb6fb5582afda12498feb8383b627b482c96cb6fad583bac141a43c58cc95292383f54a4d1745ea5a4cb1a6b5d2211cca76237edb67e6e58d0ef32fae59d0ed31c8691d11d154ba2607dd5b9d89ccc683d2ad20113ae10d2d303e929427e3c9c1d11d3f0208c8317818a42242e4f39a3af48cee0cb926711d9e1e7a21ea13a2e8bf22413c47ad4452aba4a7336a1911b6416b9fc9e6267cce59f5a5cf620978a547411372ae101774d691fb5b7dc6e96522b912d9737d9b57eb02d35b7ab3c6939c5f7c25c8dcc12ac37479e23fb117e6dca98f33a5d637b52fa53552f2f282686f05f42da23a56062c8e54b5c0d41c7f5ae181291299b378d6577e6a539f216b1fd5a8b56113b45d9dd39a6aa8865c934b096e6c89b415da7f65cdcbd5e2e0b097239c875ba5046b84e9925d8d314278c569281ef3ab5c76346c3ed2e461516c695529088dc0190c15a55982f89740f2f1c0ed8870be3f2a614ae24d1b21b38dc4495d8f72cf800035cf9d26bc0952fbdcd95af611a4cc3eababe19ac4a898387c476927b1dda96bce4d8921e8c2b5f566b3d3024a7dff313393b3136afe47a1a18d22300c9e937919c7e18d7d3f4f5b6929737d3c819f2b634e9d01e9212ee68c8eb15200024575e9e172fdfa33fcc9f2afe29680ff7fd27a0df3f02ebfb3320694889c3f5fd25d8800e72867d4f6a21afb84eb8fd62dbbea493b3c3249bcc4600bd006dc38f558e8779269dcbefcd292ebf8b70f0a56da1eaa83aaa0eeb16b1365cb25e56edd86abce36e8af2a4a76a7642791206cb8f79d5ab252e96057cdf446333fc91a07e0410e0f64ba6313db4bb4180911c79677783b09238c8eb790db6eeec480c067ad1ebadee869d9d860189c716d6e3dcbf3616886e2488bd43c1ec88dc8d009ad3cf59c077fb456082fe3809023f08f50f84b89e14adb45c4f0eb9ddefec40d0a80f1bfed4676732c839084ddee0d90ba469922301f6b5bb913df60c03928dfa5977a33930d8fe666e5992f1647025b6a90fba3612c49be638e06f7528a01d73f1da5535adf655350290f2c4fb8b811b9ea383076c9460012875c69875629d1580bde1dffbd5184c2a2ad0c81c452396961913124b2a2230aab95acd18d36b5e525f867679735535adbe87295f7b6ab8fd3e9a9ffee140fa23bb709597dbefa2a96d326003d188c5e3f9e9f6730f6ebb1431bada57eeca4ae6678f82fada7bb576727ac9fc7e1959f5d02646736464dd0e7db394561541a4082235a040a03f299b0b11a58fe4c26585e56675863ca53dcc83dbef9a6f9313803ce1a79fbdd6f1c0bed69e13eb3ce42157c9defa8d07f65a7d0d6458e7dde9a741388ebaba90018d9910b945ac67229aa49ad32f482f46d6aba16b60afb7deab41a4894e2f7e90b2eb3ab5975159dd0bd215ac679232496554262f48a28caa065146558328a33a852c76bd8cbf97d13180913c7941b2c260bd397e477a417225ac67927a4132314999a436224a72054a6c16666ee76ed9c6f9a9d55acd481a4923c9034eb282ad55249550a3b812c5c6c6e0eece52cad56ad5b29a1f0741bb04286a2a2867b40f213fb487ecf46319154ca5c0a82c18b50546512b4cb1a22e4fd090867609d05732fcd0151ace0f5330a4a53074410633f8ca8725ec753d0741db623d47adc295cf1d1a12494818d64c1236150d290d698a12f9d1b4a587dce67e81f1a2c46a188c17d696683456e3703014e69e355c8f8638343f315e6ab6e4058c189dc3404179c1e194fcdb2eece4eca830d5b5a243bbcac5fec10d5442a01b38e4aa085308817c587f03c746c50e4220ed716c50180204f9a8efd9316cfae3b6a540443960120d7b60a58b1138b81e0d2bbf8339c893dee866d62758cdec70ecec88acc6f477e0e7deb91a4c3f733d6fb227a1dc06c33eeb64f0f365eaa1b7505247c3e6d48e8e3a0a5a1b796d12d6a394d3c06ca9c15940c809c116faf4d20e0228145ca121257561fb7a34d480f461275783051ee610de5173421aae7250390ebeac92268c4a42c21f234b29254b9652327b3747231e0a79881261ad6f1087628c34671c6ba86a21f291fb0835a4e5c4129a5e48406ebf8f46da388ea37134ba8b9aea2fafd1383fb5cba4c18edae3612ab75fce089986bf300e51dc4aa1b8fdd2a3449874892a5c4ca53de3fc788f3d4acd8f1f919dfe5410e368dc01ca93d24ba9f472e9888e2a26d2be0cca7a73d421e7e841ccf1ada9a9cccd19bcdc39ceb9aa9a355a96252d29a5e56f6dacafcdb12c4d0aa98e75c442ec0796828db01006622dd887ed60296518862f1d4e51280a45f47a2ea2948e1c8d8bea913a8a44d8113024dc7ecc0767909f6a9a9d4dcee022f8180541b3037b03133603509e68158673b17555c5e6c460dffc741d41d71184d86204f2ea28dc04e0cfeff25347f3f24d0577708d612c54c7e654538d698f57eb8885da93827d2a4c8385587b651460c0c2f5eaad638f8c4315cd4f75919dfe2942295851aa2679d25fc76aaae36d4dada3c692323d489672cac9cc73f2026ef09fd77aba8279e76f97c3c9dddd30ddcdcda0041dd468acd556dc2b07e747823428281c8e051dd5dde027aa40831408471686201f3c3b2ee4877efe83a5a3e434a2a7d9b1f8a9c73cb81206eb51d1faee4a7ba6383ff5fbe96a7ee87747c5f9a9b493c1dd155d832ddc470e360dac47433983f6d31ef243359a92925082c4011cb9ba1df8ad7701bd9d83205f9982f50ec8d0d08006d73b8f8e2cbf3d1e9591017af9e9e58e43397708d9e93fe2f63be88d726114c14519ae23d68b718d56918b0c171926382778f21716d3caa82424c452580a4b6129cd2e614bae87a5ac9b92339af9454dbd80b05e0d61291bbc0aeb3908824bd817d7c35256c68b410d35c7c3520e56f136966a4e6741acb0d929c352b73f1363bdcc74fb335467a86b79d85a4476fab9b8fd476ebf8e2a56f1f6830e3a98adb01e6a18cdcdca42ca6eae9a236a2acfcec839ce51c60ed79d8f5dee7a73cc6cb8b3d348d407b655a3469a59d8694356bbde1c4180814848be172992ef45aa86118c9c915d5a9f609be004190579f229c88f87ae0afd8a392747e37c7d66a89f586818a42f2be4c0a57b73c8de216ef1864272d8447a1c0a1f72797e5c09b2e356480e09892be172d536377078172513487b1c578a04f2d1afd56ad9553464f5b0977f76036da3db867503484178d9307a3dbf8fda43bf0357c743ebae972067e90ecbb89eefd5f90815a2a16e1a6a0f0f2101e90f8a48a53dd28525c8651fad5ca61f1d4d11cb161c4262c41eafc25c2ef13b4b85694f3f7f370db1eac8e5e71f441aa2a1519d56474644ad14a556eafaae1d16910e592a6bbc542cd13272fb294b2965ec905dbaaa2ba65058b75058a629cde168e84ace68cb922b2b75f9405a67901f2f5957901f4dce983508d687bc8aa0d981bdc135038d182e687dc1ea42b582b5de9960adf7bc246787350b85add7a32bba32b2aa2b0b85a5efd115e831b79fc248f1da60a5accf09eb5925ab346bb5d66282f5ac9497da235da0a0c5edb786584498865396e634a54356a9f9b1a0b56a2323d781f9cd3838a54c3c31b252d44add1da2e6a43427d41c95dbcf56ca4a854499294418cadd9da594222a7a612a9a1f2f79898abc242a75f6d87bd8080bd29ca64032f6eb1b79315af20e3b61be327968e468bc2484b52eaf3c6c74a5c93486db4f4dede13f512194312080e122213d3cb011d370184c09f971945f011ba58830bd546a5fcd0f0d820eb13a62d56345451a96b0392d2179f2390a6665870f3ec250dbcae9d49e4e7911d29d22723ab16c8d3ce9fa045b4373633d6f5cc8c9eafc5412054b3b0f7dd49cccd8df83091bf2d1a97be37eb2629c080d0d518d5445746626919cf432c771b43d52cab9cf51cef8b815768eae43ced082fcb8687652ede1c2234528893b3f623d1791f8c0e72673ab102b418d444a174d30854017f01ed673d165ce7f6eb2d4903f62ff75983a346feac77f74a7bf532ab6a175d1fc3813b2d3ff447599e23a29487fca539eb24dc04220787a6131ad8c4a42c21f20283bbe9a9fab7390e47abe3232e7ca411ae2717b76be92c2f24511e15028c2082424d370218cc31140aa843b95b46706353fce457fff0fb71f058277c75cf53ba9b9b81df435feebba2ecbb2b04ccbacccb2fa7a6cd68d9702b99a62c7cccc3ce7b451d89ed7368560fb22d21effc93f55dc0ab84b8a58ab9ba306e678e97cdecc3979724b645d8821b32887012ddbec12566b294f5809fb62a294d2d108ec1df2e4c5a218a6041636e73125dc0a12d3654913568ac2ed77eeb070f45120787848cff571151d310d8f71151dd151bdace78bd900881c08213f34343b4c83ae70d7a3a14f86ae877d5d528524ef418c4f1aa22b211aa22b25ccc41b164a8c1c70a54b12307703bd7a931812812b5d92601925b1a3bbd2a5c7ea6ee37644ceb0be3f0669e3388edb388ee3389fdbc693b36f767a2b42725af256044cf6cd8f53213bfd5e645281917edcc83cc967a50c48b5fedaf870bd75bf5edacd8d1ca0ebad8d97e35a7f5d9d0fd7f3c63baff210baf37598d75fb5762dd98fdb9f85cd8159a934221bce0a8b01690e368e77a3a9b894c5c4395dcef95c12c02f0910d4aaa5d29cee3c4da8393d95b07fbd2d55c3952e3ee0e07af6a6e6e7fa0d7c0e4a0e5e8ceb69a91e7603b5d4ecf4bf771ecaecbc1c4abaf8a2b875a5b7517366a8607b3c8c745358e7d5d47b1aeebc67e1b4dcfe4d4b5deec7edd7b42758d2fc6c5c4af5b65123619dc7edb8cdad6850b0b40c7605bcad34a72f202567c372a1cbccdd16b3c1c8c26e23006861b5980d1c723770035d422157bab4946e01ae74095b6ef6cdcf16c3a5886e3f0e4e5218f149f183172988285176154ec4d285d772cbc2c02a6c4dd521477c1ce8991fe2543851103f951c88f3e46a493bbd34a7c7f450f548b1c7a5dc7e1edf83aee7a75746a1052cae766db695ee30771bd89ce62e83b27cb9100d9eb81ef7dd760957ee36863b6eff16c37d9c4a3777db116e831105eb655f78c78bdb6008b1de067e2f896ce34a7f248804c6cea7fd95ab31b36f7eb020dde917525fec90b6b2eff6675f7bf8ad0d068403d69708b12657bafc0085cb1890e6f4db5081580f9ba20629171be70763e916717e301153690eb60323cd4f5555d1ae34a4fba9b6f1a6b85ceeb6cdc57adb665a6d1bbbc9c698d41360064fa5be1d4ec4873033b36ce6176666beb82d6b9c9f3aa43b0c43e48652f2c48a94944e92cd043393524e620c89d0e8323733333333f36c905b48325cb59ae77cf3f3a22ba9d55abb6934da7ff699fc335dc182982874f9e90f2129286770c54a2e269a1fbe44971f0b61298d7dbdf18fa4fb329dfb0ff273f66f84f1959b4efcd910736de66889bce21e5dbe350182a71716d3caa82424fc0182231ee09c9a4aa2c37a58c8fa15b80229490889240404455812b61f4896924acacca552a9343f3e1a9546a512e9d61f13b0328a5074e95b234ae9eaed74facccccc17bd38775e9b15b05dc2c2b89e8f463ae4a79e2416fe119a216c10f5f443146aada26641562fdceeb6b8fd3466fec7bf39d76b418ecbc13697d501fa562704cb9e97847432eaa9395dc285c6be3a8ea252ad6cb72634510459a61198b9fa56e6386573775b16a7d828ba042330d26da6ddf2a2c4f20b0062c020c97000e862d40ac35a128d0675053b42f5c85e5e0f46b1d1ecfa226c0706b6673ee360917cbfe84a3adb791a922e7344e5baad7367f60bd436be63e3a2946984b20823798ecc37115b8d63f82325a6bbbb9f626188bd60e1fcf86824676428d4fcd45a2b8642b5f4070b61426e63416e63406e877eec90b2b91d321e5d8f85349ec542b71d0b2f4b7b8c1761adaaaa5be082f442d5a2aa54b58b4bdf473e923398623d3026b0275c382c94275868d171e415a7450deaaa050585c3f9d768acadb5566b359a7f0e0705c54925ba23055e4a612e20ec849140587fcd512f97554cda46868dfada6bdd8df0c667418408ba81830405921d011cb3082650fd1c20fa4d61f29110162ad00d1c191a46201ffd377054c004f2613d8e468338ce18af8295cdf932d0b747b74560d667595f2908dd4155a82804424196cb6fc9a65ff70ba97442c9eee6a4c456b01d2addb14cb07c3d47592d28281c0e4943ca24cb2a20a1851308875b710255fe419e30f65961a53ca1ff5d7efacd5a5dec8df7fd19f63a4c19d6f3b51eab9dd5cd113463baf37df388ece858d110fd60e847bf119d991e76748729223f5ababbfb3d0cfda3d49d524aa97f9e12f2904824121961e75b545409f9d79c6efe986229974a324b29f92b4b13b248817064529c403e98375ec5385aa0260adb89f80f47b5b0b7733b9d9d8b98f6901d7e264a46ec90c913feed0aebcd718ea1aec07c0fc3b0c77ed946966859d9bb08b2b81198eeee7e2b6366abb5382872d75d1c633a14a25996dd9075679c6d366b73939f86901feefbb5f723ee679dd6895ce72192acf348e618ace7a653738a7031e66007d188f59c546a4eb684cdb2ec2dcdb2322d47965d9b5dc2721a6f5e09aea5bd6b9de7a6e6f8497bcf4d41b4ce4fdb660064b0d96bbfbd767135b62d7be634c069b859a93d1a4d6a4eca365eca3eebbce4225fc6ac1216dba4e086eb0e22955ca4a2b88db48e81056e9eec4edcf6509bdf4cd184a1c8091aaa717d7d154d020b5709e9f125a46708e34004f984d054a3b0529e58ef39d5f1832a08d510aa504893a23264644193d76048188a3418151758a448912cb2b87a90c54664923249d9f0d9b0c384880da1db6f32c4446532daa062229a18a119554695516554afd18df5d8c686acd6524ad94d231768af1e58e76a4c3ae96b4cb58c4ace689a510dc074fb5126abdb6f926acfc52629132226a209cced3751ddc6b0f6c1d2d76162d8d38dc990e6042b27b455c4ce5516aca769e135ce0ebf268ea22692a85823e205eab66ba076d25e34965ed1465a4913a285da8fdbef607b1c740dbc50de7956fb1312ac066a20bf40f5e50487ba8c89738a1998b16046388361cebecbd9ca656cbc9ca55c6eee97e983e470888afc6b0ee683f43810241d10b6af958f2e206a91aa05c9e1e7310d974f15c882184610fd1c208d6e648480a66a6976b8a2668759e462fbe79c734e0e73d10585f5b0101602356eadfa5409d6c3444c6c8f740143eaf2672a4c03a63fd9b38719b98cc55c7e2f4b611ce65fe3fc641da64376f86be7613f5cbeb0202c36c4e5c742f2845fbc4cd67311263663224f8bdb820c80ca8636b42922f647db164bb2273bc4966c905aadd568fe399c17bf359c9f3986ff359c63a83ef6589d366c8f75d910b361c52cc986cdb16125b11502d6900856ceceace168c316da30dcb6603d3bbafdf57a5b78fbed88a574db86b6a539f687250db19554c3e690d8c0cad9e11028b2a10d6d68435e0540c59db6d9c4756713d543af5830b6855f54898ab93401735dd0596bf21d01f70006b8ddf58dc75c675e4cbb91cc18579670b409cb3f6b48f6e7af55d46de3a6e0992d2c07e14cd647adcf2a5941ac1d4c62d165067219bc4c65778f66e7a5d60b08abf1a4a3f99955f3cfe1cc150feba29d0c1bd70d186313a38f7e1cad43045d9f03a459dddddda26f234193e3917d06653deb63427ee8c8325d7ec2fa2c1539835eb64874343fd657e9e8a33f803db86c89b2979c075cccf8e926bb17107b45613d2fc2e154690e8bbee65c461059dffc30a83bebb3bef648fad8d7d761caa07f599d0cdad11165b1accf4447d6677dd7b2be5e7126f7121f68f2068f8ec01bec0035841316d4ea392fd29c200f86e841b5d51be60266762d5189b0b9b4d260fdd49ee9298ddbb81958e6ae093b6dd57055689e425206da83c5aec88eb09ee790148bf919e9b11282b8871b984ab2a9d0a3082a50db60940610e481020b14e8c60c296248201c5c0e8e08635c7e49335e8eebf971041148561f16e041c408925f9946bb3471bafc020f06973b17ccebf284df7be8e1921cb1389a67125a3599ae7741bdd87b7d2d4d4ac97540fb6debb4b999779a6a0abb70f0e800ba20af8ead0bc88b95ae37b3b719b67941bdd74fd3fccc54ca3453a62b65df6a52f2e422d569f5c856b3344b72069940a669a626cc3ccd97db2f2f66d6a0501a45524754844038780c4288201ff37380bc56310a4aa7ec73967575da079490f9ee6e142a8fe06accc6b81afeb3fed5611b191a0adf0cca9a7adb1a35274fde6c604fd2dd2079ec35924d875d7fb3d33dba8080a32cf3bcb9196f025cb6b92e6a836b930229de4b0552bc2cdef9940a49dc79758d9a256bbd374bb3344b93fa0b1710ac3b64a4b09e8320088a191486612d6eca90b0af39a4f9e1c00c89cb90b80ce9f667bef9e14ab3d35f355e9252343f6e32611ff635478421224ffa839c6a9b325f0fd6c344d7e3655256dae371a5517bbc6dcca4b42763b2fd1b1aac877d5c89992bddff76930913b1c0af878930956de4400e09d9058e082f704548ce08e9e13f03078e1c388954b19ff341c8585d6e19ea126e9b41a6417a58235fb89ae4490d524f990ffb2a262aa59a3328d728a594d2d7e866aa8a88aca504eb49f17635642d89419f7653d59c6601cb1379d28f0202c954b5e9d6f6b047bafc60fe4d8ee626826be101d60907380f05542f743030705ef4b049a2005010a0d68ddb410d0e04003387c89f3a215757c6d86a15b24d76e5a8e0cc96599164365116b240f0f462b198ac9155b28458a1f58344a2244aa22f94dd8a91a16fe42c6125cd8fd76aad46f3cfe14c14140f641f9a1f064921493dee8fdbbe91973a213fd6c80a9370db22494145f2a49f44a5b0403aa261e8ebba916103fb8a7537b2901024108e4b04f9f0cf3a1f6707740119fd88fc786a764639833541d81f525407d89c5eb146cdf12cd002ad517b249802575898065bf447739a020149e0fc78c9024b6029864a22d7297599a24402491678639a63c4022d90c7d09506a013461328a5b4994eabad49329b7a6885ed4ddf306c161d31e59c3d5b4af98282c2e13cc949a5d2a925c8ba28a575353f56f79fd58a595b351aab7a807eb353e95b4fa728766f5a68a29aaaa96f472512aaaa3a622a55ac46b4203f354c7d8fe9b86daa47c2ca4558e4f612f2533f27444900a588c2ed2f59d94f19725353bc2151534537555315aca99ae22aba8ed8405b79c94ba2110fe240dc9482f1d34bc9457e34cc6cc56593924b3d88212e77a292c84b5eead56505e6ee9e1ba719f8589a23b9ab2a2b8acd74dbd9e90eaad2ddddef52a552a924ea2508f9f123dc35b5dc90c6482d06196c7fcae7b9e9b6a7a58b114126a8dfa33bc0ebc5b81efda653e1a9e670483e8545794427d21c517bb87355f3b0aada55842293f659f3b01ff6243cb0cdc37a3eaa7f49fe022c55df867ed7cadef2b07715b7a9f55d40ddd49eec5bcb324bc3dee34f330ba3f5db6db89eab4435341923a5946f55312cae3677c1865687fee6d876335925845cba7357554b29a564d933f8e589ddeaea4f409e504076fa8544f1f32301d9e977f170b8fd33872b6cf3cc81abc2cecf21075a639abbbbbbbbbb9bbbb9bbbbfba59bfdbf49d2a2408a09647d0ed0ec48dc61b779f6f4d5ec5827d8f6808bb3d35fc204ebef62735630cde99829ac874880b072763a1386d54684266fb0645856cf39e79c73ce39dfea3979cee91da248a8248e5407450bd58800004000002315000028100a874402a168442c4b8afb14800c7788448250a10a644990c2300c52ca10631c3100040060448066340a0280c7932054502e9c53bf2005f3f61a83cf1d9a062621cbc7dbb7ef09e3ec809cc1dec87e692b5094c0481f981b0f1c452ef0380461b1dd1ee04993023067948ee0663181101e7b5d9b09e33b55f7e15be30ddaa81759d2713b1dfdbc0f50dc30932582f06cac59ed6205eafdeb8b31ecb2800a526f42d309cb80d0c90fb3db22242d2df4dba7977c9ffdb1a427554cc580b4ce99f244be8fa45e8ac58e5a91d5a6c0cb5b43d9a4042e9749c8d7bef6a2ba5398044c0a28ea75b154eabb8e528487c3c24491a9d9b754aa1b279125286cbdae3e5ed85fa45ec48d630881d3f9afab62744ea6b7b330557dc53a2a5a520d995a812de4b8ec71f1098b80b110435c9e0e6f64832f0ce81e39b4545dfa2a0f3137e6219741c24933fd8a2e4c997186ca730f9bb5003af5bff8ed23746488156ef214a25c74791750ac3459b5d25a247f412ba46ea244305447ec6ec1fa75ee58915a50bc0208ee884dd709a9db262792cc455aa38e1c382a2bdc4ffbd74667bd07573bb928e2e459bf30d49e0e10464ebc074b1e1aa4bb01fef825884c5a8f171fae7ea9bbf88c26426a0bfaeb832166e18babb2bde5013b0a2782e986b98ce37523e8585f362841dff01085944994b14af8e62a4c5ac13945b63076e32b9f84e43a6a1b5be880c63d889f7f1f2022646a7598ebf08361d1381143a3c5e2319a11335c052798c67fd7e5856e62c9e666ff8714900909df056aa33cabc84a1cd53900eeb50f70e8c93fd0f692acdc7f1d2f4735934e8b027defa87aa68abe9bf59c0e886cdf0fa1552527301ef5102a1ad32813c8d6c3969568a91fb1d5db71d4ce6d6607c86771b13f6bf37f79306013a280dc701d7663971ac81e7306247e3a70a833edae80d5f78e9aefbe29d10b7e982e62b1b4761fe1a7f8e04b897e23e59c1c0ceba41b79d65da923eda41a2ecfb69badbcb5844a88e2b1fac6e372a866b4ba848b59b7bc8f9be1a48608a48c860b75a957a1cb5ec8681742b8d4597a50f869d0d3a3e0465b69689a4086d472b283dad138a63ef7dea04204ddfa1bcc87fc8b3076680a93cc31d10f0410643de8d820d15a2c5a70f9044353d9f9a00583003da8d034e81298922bb267f589279aa3b0d2333cb532ce42710035df28370adeb68e0e04303eaea1951e4825be4fdb3440ca47054dbb578ddfb186c31719459dfc9fda806b0e0e55b5a5774411463c4243f2f1eed73c8a77a9451ed794bdede391ca92552c877994eae22a39c7e36a9923711a259ef7b589f80b77128f6576938bb5897bbe68b62f4c54e3381b6b67ea850a94fdb8396c0473df04d66de2e93a8a4ad9e39202daf69a9afc72f974c484c2c09fc8662888006fe37286c2f541cdf436149b62a0756040db5a3e29c8c67603426c8f19a332b971811102d2bef48575959c3d73613d17535fc79b28f6695a3e31162a9dfc1a98f785c7b8d38edd3ad6b5be44c4184c01e174a183f269872d8d25bb8da0d54cd684668c5e34fcb8ed6226c66d4370e7e7f4da31a996d868470c7b26130b62a2183af2b678b719e9c697f6c8a3526060b52dd59108e976e24a9bd128a0dfd4ca3d7819dffe740abd0533102cc988f139261ad049d790d67f28a34c9cc655bc69bb793ce750c87cbe1685bc3085b0a0f71dbf3aed5e4a333c2c74d8fcb969cb10fe84c2ec3452119c5aa6281443268bb3172086b9b4e4e904985572c7b9bf72fadcedb01982fd682c3c531e97f4e848f8c14c8c7a8341a2b050b895d4ede4ea9d2c0f49a36f4d8c5714b1b08ea6d254ee3fa1630a2464c6ff817c3a2b13aa3615d6055a4633502f2789b063e32d3edb21f1cecee3f9c252873d81c3a44ff606d6c6d405df2ef5a277da2d37ee7f044c6ed967dc58663f64d974aa40d47bfea7cc0d1e6f4d79379a362ec9e868b5bfcb9c02a7ab74256a94ec8548f5a4baea3785f0996ff65b9f99c55077b7d11b7f921a1368cd9d3cc82321f9c2ab721f270d93ef0ca8082f859d9748894f040896295cbc148fade996cb808954eeeaead31677f5d78286bb60d152b1ed6412a0888c7011eceffe55363df5084a5a850126439bda71206ea3a96a355200f9dac53650d1f9a5e3e12e238f3f5470b41d6fa2867b46c9f1b2e362a7b0e0a2ff445e7019dd4a9f9e5d1b18aa33487e987be0302148817c29ac65c47da17d0786dafafff0d0eacbc503880f0d432d02b682c5cdfb1dd5118714108ac92ed49762c3670ae95ea8ae9f3050e28369b97daa2832be28a815a165c36427d3a262167fc7069d3a9189bf5696a64d1f21332f0d9dc8b473ff9a83072937645f47291f8169f23ddf142e73a86982213caca7cfef6ab801f91d90b7515603e691c7a086e805fc0bf4e1eb3b162b7e5bc65a95121ded129a941cced0757611b6058282105a682b11116da504a61fd9fe3394eec22df8172091ff40060c162942fc41790d9bbd8f47879b4e0588e6415ecb02beb0f43f22d449791eb8b1e657cf3573d6566ef50b1a43863b95e3ae2e2dcfc1b278c8f56d29c5764c9d5b9b9f0e0944c990842986259e6b876a9752b60de1c4d13316afeb897c0b74ea048eb942356e0d46ea50f53d8b6d46e2021c122648fa365c50e628f82a2d880a565f4cc63317bc49581a156d250c7a65473aa1c05c433df64be1a604fdb772bccf6d85b477666620c998ace9da13e24aa12aacae234e10d2622573dedff0fd600525c6b295137c52450f6dac5670051bece81dfe0f989240481d86d8bf916ef17b4b23ea2b52401cfc2c78fca489d717d24a1e6c3ea20b16216795c16dddd471dba6f2c1c90503f68fe7deb8ba973ff439f138cb92ad68ce1299a5182b577c57499934de90080a623819861d5c140f6148a5f2e13f546e60f6154cf837bb8aa02616f66f5ce6064f4d4a35a9e854eeadba012405cba2bcca72348e2b8e599a691fc73641f8df29d3f8d3f94de6d213773e335ce46efd1781fc061064bcecf4a435d6045a383ce8b0a01e784c258f483bfbaf506f42906c8630e27ba41c229958b483d50cc531ef0237c87a55a9d769a597418e400fe7c81dfe96748cf90d5cdfefc591b5bed321c82dd8f6c94869442e7260849941b52af5e5ac4666625cc8343c87daa2a732c1b50852b48992bd7283254ef9f7dd5a4f0a18a053cb29b08db9d02e584c2c33b99961a400c65060770c2dfc7bc29c382e0ac90be7239c37c83d8fd1e5daae09b77ac622939c57cadf356a4f45153199415326eb9ee26c6e6f51cdb7c701fc5018c7c45b12e12b6ea5ef5741e2fd10c82e1f2774e5fbfa303db9228fc1d928cea3c8c77801ff24c271e15a762054842cf5dd623d60b12b0ac9fc7874fa5256fba58ca398e991cecbc74ce8dffb123798772bd14ea427f009ec59ac33cef4d999dca50aa4bd54e8750f54ede3998108a782958c53e99a983596c1ba753bf419ef110f23bf79f289ba54747dc86c8e14e9f06d38d1dd72b70810e25ff2ce136b50bf2890d290ac7af7469b088a68e51c513d6462b2590624217886a685f14bd36aa4ba11d4d0e06ea6b678c27f68fc9d2002f4b9dcd7db065586e4530408b31f09d131204891c3fde482221f385aae35e908f9f1ee501ae162c8c8d0dfe358f3a39d3d922ea54782a028522b6821a7dc76df48c009ed8332c3f9bb799e922679129d851070dbed3f654ed4ba2f8b8066343a6cb207767d8e02d4a90afa9735885ff4f6952c49fb3876ae6306ca50b1ded14dd89ef58aac8412441e94beaecad23704aab68103d2c4c8ee296e33374822668b892b976e9ac62c8dcaf51b06c7f4c29279546df784f527c22a3dd461792269d5c8f7a17ed6e4fa9ed2af9ec15c81d7e3025a178874b121f1e97a6432a63b1301c33bdbf5f965c09d0aed4c3d56e19f61cadc9f1ba395a7b9e3fdf4e0e53639064a8cc017943e84e6d0ef19b7d2288d0df6f64fbd048f0ed13e4e1e5a13169c6f34c15c9239ed6527a1ad2f4b0d898bd8e503ecfbe3ae6abd18684b679594b075b1bdc44b9c4d8845489d010cc7ff8d60262dc210be76d5a2ed192e04859e30a41d0acb4dc488d4456b16fd06a7591ee15ee862ed9c577a2d2e9ecad9d5c836b69440a484ea556c644ff5bef8175c4f067d6601ae00dfa7e2d36d22626608e841e2f9731cc7616b6cd143add933d793efa8873766757407ec74714ef507e50e82464d8c3332dd699526ea11283165f35c87828c2a7d7b8d515de78a281231138740c300bb7a289dc8ef1573a66166877efaae5bdd5b4e4bd23adc2d3071ba9a9792db486b15b2a3f29eb3e4284272829d24b742cc448aa6b60109fa087cc470d71a8d1fe760b3d5d0158c1176718f4f35826461b5491c5609521d1a6320f6693a7fa60dc37bd99705f00e16bea46b063d73abae6975de91d3d49f57cd50eb9329779fda176e75ee74bb5f4c8bab2a25a1c630019d453b1a5c556552e34283b98c9ab295356304bbe4cb97c0de7281828944f06653fecdbdabb21d7e82cec5501cc3239c20e31e258846d09286195969a71bfe0605e172de10aa4dac9c27fdaba4b1128b6080b39520d04fc12da43a0c49ba22b2b221cee21f1ba2bb417935b9bf1b9e7cf297d4692a91ed633adc46549d06c93959d621cd2c6f9d17b32d124b16042ad079ce27a10de7fee524bb80bd904ed8d24bc015f952299ae5e61714de645573f20763fe08ecad1ced315300a39a4e0f1efe216964347a20792390a31f0d9029019346b68b40fcaa35bea6a82eaa21f6075bab80890cf8d400e4b7f5042b2526b58083a94131758adde0cc658ac8b091c18378d81a4ffc56ca5a040c2df74763b7f3847b5ee69d89291710fed33a0a28378381691d6e51fe4aed0ec5e293731a15141d8bc8a8bfe069c5e248c849a340a7f348814b3f3d8cef33174c6b89c1d01789b825e672033474ef380b9688172e282f70186c1b704b40efba1a588fa684a812d891e83398690c0aa2a2a533c77db44c4678537d77612a1a56421fb7e69898605c51c1170112e2b541d275db11a1ce3af90775c95f0729ea791e23e3259b4ebb81aa876e90755b956f22a78e2e7fe8e6acc275aac7c9c251c0cd4d8057061c8c88c9a03493f5c28e80e91a57b11b77cffcd2d4b89b145cf8ca15752a5a2648388a92cbe2083823825101220815a6a9ce5cdcf15e9dcfccd18010213b228c46c01a72f2cc62a58447b40a5a65b5465a2bd6af3e2fe5427322296874fd6e7aded1210c28c72a505a23c6b11ca1e63e79910c5a86ec8c4258463d61868e758ece0b8d392903455e52821c2eb33a1b26728c6e1dcc0d0751f3ff1fc1585792b159e4f164c7c3724ffe547f24e920917758ae503a1a2535c3c939df55aa2412435cd56a7993ee0f79b0b85e86e9458f331c5a919c48f5efdb7548e2aea6c09a67334fefebde102bcf2e17ab8b8e063201de840dc91f3bc70c9ad166a29e544499fea3229253f44f09af95771001e68aef4456031c031288b46a6dea0310dea586951af28aece5ba70667070256128b219a4417746d550e52a09d125f1220de0fbf14c6b72c31da6bc48662c2089ca193d50feda734239abfbf028f9541c1e392fb516895ec43701401034184dcadf9c972366cbd9f00298dfcd03255103a96f3d769493551082ce5e4ee190b4f1c4fe0fccda07c54cbf0cf4e2fb57191358ddcf09a39e3599db2401e43074cee9cc312db3060c50b65e12bd1558d2fc0459241139cc951d92b4bcf9119c4dd0676bec2f720ba6c7f4dcc586c425250c2149e82528ab2139a4fcb67f09b7e8406a3dda7bf89e28117f486c9381ba640d133190bef62c236a2b212049dc569ecea9a7c18ff600eee857eb637173984c962678c660028035d119349992bfc2fdcad5e6adff068b85230d87875a69220db701b7c70fc9aee8b0454168747c3aee4722c993f62a44a5f81088262c9d1f5d0b88547a43769a5d92c535743d1f9a893b5e85fa649d23edc7227ffe4cc379615cc57fbc041676f8809fe88fe7a69bd86692da91489e80c866a1cafc99eb6724fac5db86ee9f4a6868b58fa9fb09307c63d6267e4586caeddd6bd9fbea9dbf464c4ca7a50f8c83855fef853430b15af87019510c2925464fabe8cbb823a9e9462e30343c44f02247ed064170b59612ab0f9f5b3401b923158fb79a4e72f4cf0f330187fcdc4f099d5f76ca67aa5748140511f0642c4f0c9a8f3457b65bbc7c7c95758cce948fe25f450c4f7ed8b5ad4b130c44445b805a755951d72ef8987879c33222d033231dbe57b9442a723b055cbe8706eaad13b8ae4ea8f2cac5035d5f8d962e4bee97b6b0d4f1dc704ca6a5429b02f68b889e36e78ad57db0679e17e0f9ecce49d6a75f1eaf3de7fd9e0d9cfe2422d1b54eeedd9a323b02218749df3ef5de03c1620f8ff141540ad18640b7a063e06dea00c4fe7b9677e6b78ee8ac0e39eb4cd04aa4c75b115c1bc899bca4cd76b7d2de5a78492045bd8ae4e7f449c2ef464eef27c5a121c11f216ea539f5ab73b253ea70bd38256c2b285bff62d54b1f22e025242f32422ffb8bac209a6fe2b8de523d6e68db5809168453a88bf5c70a63a52db8f95464a7068ec6919c32a2688f48d9b5b091a9cd41e445905362154f8ac50d9543c906757be7968c973a6da85a184740b0a0d598e5295948d1547c303145aa33cd8e0235083e5165bcccfe4faaf55d2902054fcac2580dc58183d5dc80bbd21f7b1cea5d01cded894c0c35f57539713e221c7d37e34ce468a78f0785c41bbd711cf497824868450e1dfaff98a4af9e70b5ad08e446a58f63e1b4e3f510d0ca5a4c9fcf6b0c1a370e641c2a1c8986ad63ac7cc72c8d8114baeb5f1b94af02ca1b7b2289af8bebfb5756fd48186143f0f3ba73908e38995b26c68255086d3b4cc4ddbeefbc0e51c075ac57fb1a4f2d7bc31580f9e3dccc23b9061871ed07a1f3436b775fc826c291cb6fc22a2cb1be8daa52903dc689183f7a4a4148052970498874bf237449d2260688e2f839a4c2e323077cc75d56c2ac0a340d0f49921acf0ea905695dcb44fbac700badf74529ca295dc0f3f18e7688291b3edbe5645213de3dc17263b542b2e807e0acd6a2dc40b5ee2844304f4e9ac71d814c58481999a58a47575de4976d986eac463e0188901a44d4f1769c5983839084fa53c0651c831e8f2871894536ea45081a459e0d92122522e38bcd70453c48bab79fe7137e95e24b6d0c7ba7edf1e2c80f497ee369839eec850574d0aa87ec1c24088d5f7ee6a939fdd94073e6b4bd6b3292ae3c4580fb47ef433c5c6db538d460515b6de41577f5c0690e2027c1f246ae4357a27b7e3f8f0e7b0db4ea3f7c286e9c14849ff13b9273314f494b71b02f9367ed3d72bbec0cbf6d5ec404a554dd323246272e16426db9ae9095c750f6b7a52faec1bd3230190e13575730919837b62640dc27e520cf31eed00080c8d1f4df44c44a84929f0ff94a28d2ad646c642170e617572c6b638e18e9dea2955861ca29dbdc224b6078f60fb393da320d5af75d3764c667fcf8f23c2cb56ff699e751e532e77c5c9a70ddc9ef49f7de620a9e42476bb1b8b47071a128ca442d2a46c258114305d0dd5c9a05dcdbb025df615613ee130af9f615a7741dc6d48a571f982c35b4b2ff45300c2288c91fee834538fcc6331a7d0d8fe0eb48d1ff8910521f3635ef664e72b00ace4d4ae5e7384eb7b84b6ff2fc5a57a2e3a8d196b28c0236520cc84c621a15f4018c8521c4d56a45b30d0836df17ece905a52143155fd872806328da1944f6440273583c0f43cdb1d83a6666dcc73b4842de0916adae873a76a86e2695d3910ffcb16ab58b2b88a98fc35743e479ffee2275c025888bd05a6ab61defdc2e6f68268417a14a4d885340cd198b0cec13e8e869e53301583b7912f5b5c06fea5f3a4cf9e533140a8485b17140c1174301753133da51a86539fe46a1724edd05ce3948385e9b80ecf6eb8e52245958b069161197d5c2a5c6596e3498e55cecc723a9f306ff1d14bbe0c41e1a399d2545ba01548880bfe18309671502671e66c62f1a33c5ab067f650fc9c405c6346636ed89133e03dad7e96330185557e8bce471a871f5ef088ee84b4786157069e284dcbc7a56f6ed4da959737ca4c6e998f11c1212c8ee8b16f5ddfad1170704994a19e64c73def64ae671d3424956814f0192afb7793bb941d867b4bdf4d3f56291b7c29366dfa72d37cd506b4bfff0a984423860ffc87909591ca7fa710def943d891a824170b9802e1b8b4b20f0e658595f8f5f77880e2000923e9a3813b200e0e0d65f5e02fd3ff56adaa0e6e8ca19c7667f2fa546cc6249da1e44fd8a3eeb00682158135abd98c44427112dffc027c8612800b32d95a2f8fa9fa6f072ac7e23b8d270f6533f5e816c0cf0968e77856c4888af9e09634ca0f64fb1d599b63fc4cd9787c62f6863579d642815094dbf24ad9404cdbc339d7cadf6b36988af343def6e9e4f4a00377bdf8228f44d1f00e573fd7eaefe17c12b051a42826d0f5706283b2a93e087567e44a85937a7950c41b02fdddb9954b5c7dedcc48853183f3c7d6ef8a5586e574e2d6791b0d55f420acd2572e0ea96e7a4f7c17529730458665b793a90f6d3d49d0d5b951813ab9a2c359f3c43d7cc3ec1d3157e15825fc26ad6edac6aa499b881637734eba8ce23dc27eed681da6d0c787f89ddfa72b3220228142388eceeff2b7eac9d586dae3b245518bb4b37a14a9e536942718bf29194900ffb3dce973bbebb018c86429840d84556a73504de138500c18414b9f0b1e90bef422f5d11924f846af1b9e89906b1ec10361d68d8b4d6676bb22558ddebc2c87e453ea08967d0d0b5eab812c0d33376bb28ce6780fd1b55bc437efe9019aa22056cfc6ca70021e7b160c344409b2c990aad06850d839098d9e6c759609d90e051dbd895cb1160ffcdb8261925a45088b7a8d6c22580f974573b0c984ab505c697fd8070fa78b536ea65410b9138db98f701d90f6874458e5f97e476194b0680e49a4724f305f013bc1908ba7d7302ed01c3effe395bcb706d2189dfd6ed00fbd2de0dda679032b63bc786b2bcecf12040cb1027c8ff6311b8c5f33025a80b2d9659e032bf2465546aeac3f2fa93ca38093b1b2113b5e1afbc40f0367311cbaafd93847d24d0a00fb431cb854b0a6a7a66e94a6e25b8bfd9eedbac48e2b2e09ef6a94ca33d42b5392953e5d635e2bd952c3d2bfef7757ba011df15f7380cb31b318223b6449006595e23204cb6dd3b16935d272d564df49b2fc4f8ee54596fd06727565ee1570593aa3f9454329d6962e44627fe549bccd296150131d17b7406bff15480ad41acc0d61e9d27b94844c34567a6841a4c7077b9279cc6547591a9b8a3d39a0d69d5872daf280d59fecf9e940d9c7d12e32ec52051046a66e74436b57726fff955e839850024f77c8d193862ca460b74c7688651b873962d00ad3a50d45ce53cdba5f9cabce181de0bb44f574d4a7a99e6ab0771aea3242981f4368d15c131526c9603969a3bb2a777aebe2b05bcde535860fca20835b30079ead7b09d3bf66674fc730f978a40a5461345af20fdb9efb0439302402f16ff7dff49eb69f18e84ea2061fc6b58877a8165a6922a8f6750eee686c618f41facb9a36ac517c84be2f82b36425f80f1a26ffd77d24c109739b63457cd3de2ce89096e04e7e2304e7a3427c5ec841eabf419fdafd22622ae49c832d83a40f27ae7db0485dd6599f6f5c9fcf934fe0871345926f8b614c0cfc6c5e678a2293fb03cfe7416100c81aa56e3a11c9acd5bee81119a3416736f73210e9498031a8db72405f0026c2a09ba4d9e49c9aa8d973aaacd2f4aa0d0b77088d06090a74cef71634f1554269d3157bfda94ff6cfab437e676a2e17576a04e66bf1590cb02a5f0e7f963d7625df4d2a8a7c5a28f5aac40824764c174c5da3205e68d36be0c0afc2b628184f50ffc142952ee56bed54216b16ade1c69d2664d971dc091b993e5ec56beaf17cf0fdb7efb9eb233f8e1e39f1f2a6798400140296ec3c1b4b53b93fa6848c32e9534b0c2d72f91b900679e969d56f396bbbeb2e11d0e7a7217c9b83a86e26d021930ea49d9df907da84380f51cd61801331a55f94fa725f4f906b033865e63674691dec255f8e6ea42bcdc8332c86ce6d5f4c2c2d96e7f8e8e9d2b2335368eb2905e8d4f023b6811321b45905f2339951ed7c2eecd306822e155bd8db9636a8d90af5d82658b2411dbe762a058a767b9b0d21e3ba62761cdb9847e903c7bfc215129a5acffcd5b190f1bae8c245ffbf7318ed3b32fabee93d84055fd59f5d9b604b04339a5eebbb30f308c3a4f2d6653f60a5479a13b2a2f7484381a7bf2848355714c78a370bcbb4c0fc01b622363a66238227b03d0dc408140bb8b6f44149e7527311ae500207dc7b23097adb6d03cc5ee5c7f708140d504bc51438da64cc673731af23470ae7cfc3dbc41a24ccdfcaa43df668a7a1ed68d82b2c48cf68f354ede69978b15895e42dc68d0270e5c20facde2d3104dacbcc051222ffa6b82ec4f29bc299552f2ce322c99ddc788e081880cf94cdab68f0203a5457d5062b0e9112b0cc25b82549f2ab0ff261678005291ebf608b93e83d251fb9e7631074c97b4557f53ca5b1f8d4298cba41cec8099827a6dd5c8f9f1181d90b8e69bd520b462ae6ebfa73e712d4dac070d8211d0be05d6e84ee3e5ab7ada98537a9afd701151e94153134d5f7e76b45431c63a72bfddc84e0c289c2ad1951c400689195cc3a338a4ce901608c0cd8526a5c2973172d715083e896c52df0f6c7419dd4cfff461d6f2cb8d6df9f7423697377df78f84a1ef35c1a01952bac3c1686b36c6041adb74fef5c9ee474d1748ac4d3821eeb33935e3fe3b98a65b42b96561effe8f6e7a7ed8cdd74bdf02faf30a414ebf3c4501a9bf2e375750735ab797e6ca9ce550fcd53eeec930e7c9ded4620c07aeceefd85fce80881677685bceb688bf49bcc61515e6533c8ac534cc616a8734d3f6b572ac1417c0fa0a62fc311592bb143c41f0673ccc6c64a79cc686974e5102bf425212676e85c35e40bec86802ed186fe77b5eeb37a2ab1b87eff8d0e9d7a9d8195006bac7786ba1ec7773f6a90f456f8108499d1d3c0dcf36946314ddec2efde3c248e484fda99cf4b3fa87e87c4493291da8743df52c924c894523b3475855b8b220ac1d1ff3c27e3cec4226f60aa313ae436527c75fad2a1e7dd6f04a121b7c2c681f7c9f70ed7cf19aa413a4e6f02f1f19d9cf972942db5f9aecd56d13f7a6db6648fb35e4f45c6d3c648dfbda35ad6c09ed4db19db578922cfdd08c4126a2ceaac3898546d8b1871182a657f7a42ee86dfb19957b82893e5d14b0946b9d5692ed314e3d53f53f88aa49c793ecd721f0e364b445b88b63ec69af54388e5e56c39a01790c2b39349e0e2fe95d039429db0b0ef5bbe7b11643b61ef887567f5c9caf6d5a5388470900bfb68495016e0ed65c6a0e98a0968a0d65fb95d9d02494db6858eeb7b531464ee5bb8da05624bdc043d00b0dc9bd95f76a2ee68a58d15958ed8a85df73585d96670afd4b7ee23797887b435c736421ea8d6811bfe78bc64ed032fee46fed7c552fb48639a1e1e8eb5dc32e82530911f33d14fd0994b413423443c2d94d7ff13ea78f6f499c01cd6bdbd860090a2bd11334c5e7ce9f8ab35fa560a81256824ef38766796aae0f95c48df135b6fc3572c11faa029546389d5349752304b0c08790764433c24c4e3823d9008dd6468889fa406f01828e81bb4aa6bceb7fc8505b5f7c7520ffc91b08985618fdd816387c431014c950e4448d0de443cd4831502cf2656173bbbb667bc14a037cfd05a88ebd9f31e678e38dda0cdf3838099cd462a9fd17af6be9277c6872f047d07efef66b2ea879b3c989548e0a63e0f7faf3959a39a8ad910b755d2fabb8627a743310a720bf32e37ea4d1d0c8b8609ea7c0fd8e79ed084de7926ce0de3480374de83686439284fd513b84cec232a81754a8f8ea8c1a2f825147213978e5ff3c5ab9fbb725f499c455240900593634c3e421581d2e386738de9d2fdbee9451400feccea51f04275ec6a59a59d73b9336ce8fc61e1c5465dae2e339637ffb6a91641260427b98cde0792e819de2917d9d158904fb3f1769e1858813b2037f5a0cea192deb455ecad19dd65d3e3e6b4f877f1d91fe807aa07b8cb71662bf9bb24f65c6faadacd802f6464549973983637a14fed8a74715e60d9dc3d4d67c778cabf50f0327a2a4bf9e9ae2e5fec6810fead6e9ef4c967352aaf69c76cfaa182177cb89b42549d4d6400a3ad0a89abc51b43f5165e88ce0a04cc62be224d3a408390f14ee3cd0019969c74f30b298b15e146ee81f08477d67d027d6f92802a564297ae6b6484d5d08797776a0aa816927681b2e392b45780f3a5375dec6c493523199081752a54fc973868b8f953d39c6294ee3791ad1d8508fd8b1e31fbd5c32089b9f9561a5602f51ce108c12e5688b4787ab62f094af760bcff2372ee856011eb0651a89ecda4d45c4be221b9bde38d7b49700027bce48c460cb398101b0f47d7139e868cf4243d377b8b4518e62a04d9b7548f9f0f938ada9793687ad7cb66d896b68c0907e128623525a8bd68e7059a136f8d2ec7122e65de0d1ad11ed93ae8f76fc70a351237ebcd3d4df3e055d4bb4c4b52d3db5c891540bbabf8e695ef4eb0e113f10fe2b276d32a6cddf16c70fbedcc860e66010d10faf5c5309eaa92c1643c9e21cdf8aeb750566c2b106b382535e9b4f7236ca06ca20eb1c0c415da7df7ca7c6e2346308fe0573002cade0e7b49faa157d9c271ac76816434d32ba6686e516d1366d11e88f03fab9a8210fe11275080fadb8f30dd44149b1663af3d2931fed191b00bec84c4e0ed4d2cf082f075bac830115e9e8c17f7f88260766fb37b839729be6a277fc3203ca8672543dea7484dcf06f8287bdaf5d7a1aa87eb8e1ebe140eadd8df2e2911cd10186213d3acc5c1692a352323037d2889c882d814b010162e095cdc069661a20a5a297229f715749c60b82c9ddd94d381a281a2a2a1621cc083e829ff2798d9ebcb23d99fe197e59be675f369582130bd7a878202100ac20e6d0a7076e80102d42cddac635f3924d03da009091f96bb27fd0dd19b675731a690f6b9a275228d145cba9bffc3bac6674635e0d9b016b8b062dec647dbc0a8340785b720ad03a435e6b0e25b8d445ff0c8ff5d815d5c7ff7de261ac8bbda01e0d83a837f02e8bb25bca6b7c6bd061d20c208b448474c4addc1983312fafe5c32d10b6696acf51bad3a0c3acfc78b289f5268e5668f35b8b6fb9459b951d2343b3b67276cfa3e2b1baa5304b51713162044deb617be95bbad2fb54465e1857f227efa74f4bd529635c2f590ebe0deb10528870d1267dfcaca2477adeff0b734fc2a139383cfe3ab7e94ab04e54036d11f1c532e09888d73f29c1c46ab20c319823614024d377544cebc075d737540beecfc30f77ead54a5e7c9c833f651934eb24aa9037661418f9c074e5bb803f105c5577dc5db00b22023a57334bba66535dac6016529018ae030b2bd9a72ab5d37982dc6e79653a4b3b82b20a08155c268f307c4a7b0b9e91cdd26d61d242f0a02ae68a953c71d0ae662f1301eda8b05873782b1b6ba8ede59160d2b38cdc74639187449f4ebfd936ca32b11b693b4cdcb0358f29b891c206a52e94f3f18d749dd7c555f4c084c1bb888aaae6e15d7428395b91bb9825f45310a0408a43807e5a040187f1c92954464c6118aa557148c2086f2c23f822172ec8ab852821ff726cd3316db3bf25326d547666ba151fd09e147b15311bd49111233ecc0966a4165db0c46d841f61f40438af241daa80905f42fa7b044d1188e62bb81250445a41e4d880e1f8b077c3537a054ded8f5b09671c1eb88c9ba61fa6df4fe24e63c80e5cb33cc08e923163f66bc7c45ae200636e19e8aec4e1645bfd5b8a7910f2b5610c35896e65b822f93eb79161868077fc2fd3cafbf1415682243e2f8ea905dec1d53e31a300128a1a467768345049c6b0d474d460a2e1ac1474000a9cb2327b3259266f8bb508d5dfee44feb1b285c0858f8bffb703e35d2d2a75f5ad20cffbc952b93c9e8d77ac4ad742215e5263c83a3df0050cd379743a8db93f1c6335e1dc63241e7e7faf1e3b1f10f3a611d43b9958511e29997265565a2b5ebba6a118e71f059978ab4685fe3ee8bd941e5e2b0f65c6764cc2915eba4fbaefab9bec7172414e29673d7293d41e8f94293a90de0a7bb7f0142c4b34cdf7f69b50ef175f65bb0527b356e46daaf18b4239a70d7bb572b3fe60a815ec888a6593a12550f3a8da6c5a6b9504381b220c40e051bdfda7ccca63fd3dc126141315cbb23e5b3990687812dc76e8a682e4ab8600c453e2b4596f0decd92f97ec24ea0a2473eb2e3d29e6e62c734a278682f54c7188cd4d2a4087ddb8c9f1c88677f0dcf5dfd9f1114ab440dab4dbd02a561f511f94324c64206a55ea83ab6e20b05ce66eaae89aa89c2dba92aa1252b2489f022820a948bca04313cbd3b2066b56e3b74991d02a6667620d04fb0a2e8cc3053fb45278d7b155d6d25272ca1e1c048b896391a556a5beb0872ace2ded7ea110acd2415fb372e58a132149c35b472d1af3585f94db518ee8a4211a3dabc3c9d1ebb628ed89165385414d1592219ee00459c83832439425d5c56c67ef744a9e76b96d02fbca4307ecf6dae1f96324d2ab17f4ad9f72bd4289ec623a70073a612b9f1980aa59508ed08bbef9b07a24a744888e47c2c91b89a35f9bc41515a65869eaa9834e7bd02ae173008586d5cb03a29b8687263810af2da3f22a865b729ce42bd8d4eb4a58c0b0f9a3704cded78010898dc3ebb98ae2e9368a4773449b8c4ecd0683b3eb0c841e695aba70019965b8a46dfeba64f401720c1c28b93d032c882ab46d19536c40719f8c2c9966476a46e7e0e081d4ae8a5fbc0c6b088d35c320a6e2a3d5d0b52aa5935c2e77793b4b4326c73609ffc2de7ac9965efbf7321fcd56cd7da12e3af2a3bfe98d1ce7588caa96cd4265c1c9e5a547f94802a24f6f6277b906a364c529ca11d9b4e2e5916f87e6be721750e638a23bf6b0980528ccfa2cf0b0612a59ec3385f6f464d103d91ac8b516531e8eafb262d8946bd58a79af6f36d7d2c62bea11db905fa2470c5e5b0a30661c73d629761b7d2dabb1515c61d00ede0cdfa1efc3ff0ae1976ee23efdacc0f4bebdfea2e6214840a7d90fbd6fc5eacb474f2eb71180a2b3d9c5c8405c62b57c6778ee7497e74cfc514afe82c6a8037123a6cf9ef885c5f6241aceb646a69f3b8685b418228f2382fb580a67f0685ca1179decb1afdf8839f77b56165b385e40c24033312c914a27b365e8eb5299ee86b29262ba154bb51f61cafb06a77fdf6f67d44b9df3d63ef1c16a90598881ec5780de659768df2575b6cf499394e349a7ab6c89c23f91fca7174042f489969436fc7a6a486dcad7d010b2b6926d66798842dbb12ff74985593d04060f65aaa847b3fde62a893651c52bf532bd42bc4bc8586b1f6f57373db4973ec92ac7593612768784eaede420f1d7a10e038352e950f727fbc34df22b3318b69a36ff77b7dff2bfa4bce0f0f8cb70d9bb226acd103ee1ed40607c5f1c2ac2626736347f3e19f2c6f88dcae325b998189b6a3034fdffdeb92fc94c30a41cfe0913b9b4cd223aed55121661887b6f81f75fa03ef6d662e031e7de5952b9bec1d5b54a612cbcc9d30d9ea01878f1a0a1b88d7bccb3416f400b1e16c4f8dd356813664ae0c14a454c6c41697a4349810ba89e0c4f1c16e20b15b229cc5ffced28256471299d43740471be8007801a518969de0156ef0a4b02349bb5428e4d15c8d75c37fca3b37ec636977a52e1b6a9071c9ec611895b748e203b8d04aee3f02e4c8e25e49af60565968d2fef5206b291b46d096ee8b87a7de26410d6c8ef15ab142712246ed47bd0dd16e88944a23aa480b26b6d84c43b5a58e2628b37a8406c24a4928d2528c843edb7f70f306104f36b512bca1f57d56f7416ffb642f80a7e73db0f19c38a9e52d7c349f5012f024b88dd29e1d739d3fcc5fdb85339dc5bc24cbc9f84646ed6e86b8a2b97e7d84ff085ee6ff60e15b5d85f44930fe43f2f9f3f483089ac7d89f8494072962d5f71851ab019bd678eaa1f3760af050c268e510fd152cf9d8168fb0bf9415f84362932f6aa7066eced27535c6aac149c35f1e6a920c6111e64a3ad854ed9f5401190bd9ef29ab6975139e7aa10cdd9d76c9af9bb5077620ba8d1a1a7470c0996f596ac6164004619445e9869b77b485c32188a918cae47177295a717e80ff0c2229713211352d163c08f23014b2a078b149ec3573c05011745dcbbede69ea7af389ee7c6a44763828ac3fafcc8ee2f3862516c0009d33a093881a2ad4698f4c78d6d2230764161e53091fa57cc78ade606802c2417c4befe9821b03e5ae55da657c13f463f200314346ad8f09b3376a821be1f42d6980f3c77d8127d31580c428257c3692a7a20bf0f7b51efdaf0617bd4e260646f7dcd78e4f3610b4110fb529350ac6b807184414029985a95ffc52a78e6014554da8324d0c9e1bad8678a4473ec734eb0e83cc85ab25470084cb46756b0ec3b20bf0920024f8def5cb81b402c17407678215c8cc65de042599bc4f7a428aba6e848f03f29493a81bd9a0000289418c4f61eed48414f2e590b84e9490e75bb139a3720de104fa50e979b7664be282bf97b98b4b450ae608b9beb1dc4084ccb2a45379fbe2a392bb1b2b8e27d24ad196116006a8990fc261835a96e33b4fc0f568ecf391da586e5843d15de7d2a8c46fa5d775ecd179619e68a119aa8ef899b7d4862a30ecee2833921b47a7dbc4d82ac9f5537ebabe4fd97f827aa4a719b9c1eb081bbda1dd2615670651ddcddf805624e9ad21af152a7fac0cf7ca8770ea9be7edc83b2685581bbf42762b82169dad32c25b22f876ed036461acd23ad19a0e44d604fb3dd4c3f9071a219af9d03e7476ac473f89efbf3c6881ac65bfde430d251dae088ce2794932c7512cdc6072a45c0f88be8d65e4f03fd1068aec290b05effa38e12cc23a56322f55e901192851b1f43dd4b1f25498fa80bc121896908082be096145c495027c8d65ab79b920dfb06a50175a6066c660a25460d18f96b4d4e506ab8f83f5030654c1bc3aabf67f46424923aac1a60d19a86ed4ad432e380d21af2aa120223708910b307e92be48d1d150f15dabe3de78bebbc9c92169ee1f4459e77987e8270e4ad90935650c9e18a01eb5b6dee2416415f26cf5a62c3123c4af2589cc6d9ba23907d0265d771b6408c515452e71894ad906e9fc32f702c437374cba687c0aa4526326226e8b783b4f5fb735880a4802c23bcf0e1bf66f2557f12cf9e6edba500b6cf0833c855e8b669052d382b2ced3ce698b53a6476878d5fb5e868f27cbb6a509464da7023699d72c091f80d32ffa475cc6cc7791293d16f9201c57323ebf671d68ae4943cf79921caea7cade607d1a04cff152df2082de7694fd704e2612544f84a5aae3ba5ea43af36b25b6d60f0c9a671fa6d513e0be1a14b12be0488cd2a57dc2181916286dfe93fd641c752b9c9c4b65d10f39065ec3762af099bf1c5e7a27e05c8215a9c95695a1596636b39321fe68128d1635960d354df1f86bc8749287f0a61ac458af7bbdd3f4d03adeefb226dac4ccb0f400065fd8b74ee88715dd0686b89c686ee10f10a6bcb509e6a0f6c8285c23b6bcb166970cd6e707eb988360dd72607b9d15a45ec2a44dd03e28b0db1f1a207e028aa7fc80376920e3c49ca245a07fb1b33552038ed40090ae622a933c60916dfa51f1c7862630b76a29693944839d324c52ec074506ef8288c11211321a0e4614d39edd5dd7e82a568c5b79d59e85e3ad59832abef4e3e46974636ac7098ec49626041d1ee384f0d29a72a5e96e1b3fd8025a02339669ef0357decedf13400a3cd0af3f937aeab230c73a1f2fa409bc87a8caa6dea20259edea81877c350ef0f20661dff4ffc10c4c1379a6210fecdc7b45f1b456ea63720978a0a6062e44a97e66dd850c5a36815bffb083b8a77cbe572cc466f31ffbe6bbbdde8a6403bbf2d261b7802fc5405fdde21b19a3ea60a4b14383e068169653d2d09aabaacf192f259894cc2a797af6b928d8a3a626edf5578cb7f7cc5f6834816643ede862f2ff296794687768edbbc5870381df081f102e65a37f7480300815f06e8685b6fafc188634a88b0019ef572d351f82a655becfd0100da5c4b49f5df9b7d415c2cafc114255219585c8e462014e18342734396642fb6179ac5b0df4be49f2b5def1b502b354ceadbbc4190416c3161e5092787cc84eed4bd894822e74568d092cc9477d802aa206fdf6775263586ac80d553518100df07b6c57e1b241709da65afdcc7f99e7cc9c5ab4482e0123e2e1088ef9bb3b2973d29a16ba0adb70dc65a7de0dd0d735d3c656efacba83ef3006ed108370c499241ea3cdc00c2b93e63e5000767f7bc803a8c5c68068f02eccf16742e5f56b25025332a639e04d0a2048e18cbe146a7535ce9c9fdb48d8034e857be080737e1014a50309b5b85174736a2750c3ab5fe97e64d8009219c134d587df3d77181d6e0dac4d67c7d70dcb5262f9a0d702c002cdb8e698f91e4638d3424a81c625b6b39a5164d487d9758b2ca5075285942205ddf00b93e250d1cfc951b579eb591b3695c2ad7d74a0e80ece92d3db9e8954a393949b4356fb307d02af0f711622ab37b3a09329ad5fb9111fe84ba7cdae104d401a78134af9d5c0995c8182b0ee6692b1278d398259257eeba0758b487376f56fc3ed3b4b19491ccd45f3ca39e79414a0a69965a38b7e0f98ef5f656c69ce92bc800d7dab7b29971adba085c15f80f4eb801851365d601ab8faf2f2be33a2eb6b02d52a632797eceb01a863f335f217849c80964962e2f12cfd400222287a4ba98eb0e2ec919b19a3f4f668282131cadaa2a82f0bac1751a09fbbfb7e83dd940e932b0368e8421c7e4069a4759df359858d5fd5ce0107d331c06c1c3441cd0264073be21cd1f995dd8cf0c190d69f32746fe1a68398a88541ba1de2bc71ab3a2fad5fd3c28f4b4484068bb45f8c7be2f61d1671b9968b2fe03ef195fd219d891f89e51b1c785c3862d568bf19d5e46df0058326f01fe97fc736b639bb1b6a9053857ddab8d0608e7e20c2064452571846827e4a77d3586de17d89876b1976d5d328242967bd110a0b2342b453d64db85253ccca562a603e2ebab1cb781bbde441e1e3d3b23a19148486f94e9cfa786623d0a30c49baf8932d244287d31e125f69f500ae80439562062081bb16e02cffcc9d3c30f766146c22d9f4f106cf50b1297b3271b2a886b4e31e0da8f76d1baa3ce0bd4f1dcbcdc59a81039885398eb9d76e0e677a0021e7df3cd70adf57ca06cfd78b35fe2ccab1becf37c12b5d44ab2b751cc1d0560e7e0812960406529e340884da26d2f8d84ada410c34281c2186ac8a110b603ac42895edae01c3576910459a95b60d4c7b46113041eb3a3e68849eabf75c72ef384ca766a1610603f773368ad5cb19d2a0080c4297209268a24e77d9ae5022fa178036830b57474305f30a70ad854f7eed013743b2430bad7158640dcf8fe625f976b66bae118242ab70fe56cfdfc0513441a144f5fda125419881955bef5e96bf29e6a8e88883eb7c84bbe9c0d29691514afd93213d14aff18363a05c8e46fce73f47cedf174d276bcdf9e343bac213b4ca3738bc01b36054b1dbeed154c46f8580742e3a463d180fe79ac7c36bfbf9264ea7127bda6b319854c0bc6404decc40d7a8079b2fe4491b69dbe75c7a0048295272f18e8c035cbb5a780539f73f214dc07b8afccbb68e89c9648865aee048420bcd9256700a8c0ffa23afef661281caedf7f4244fad1e60618992801d200b222307c02b17116a41882aabc71959ab4178abb4900443dc0c133dfa43c43cee0664612df23d3a54929a780830e0af2c2efae20a097167ac12561c7a3c7a226bfb7d068bfd88c1109384ef83dbdf9fc4f4824f13a68f101f7fd9102a61702bd4ad99224e0c5c397bb5767e891044d76647769b77512e5e28c6c0770ce3eaef4e6ea9c2916d02caf82ff2a6398c327dbbd519ccc1403f75e721266c4ffa14a93d93b6bb064bf53c1f24bb51328f046f1ca3404229a12fbb0210dcb37b374608ede7ce272aa687e71a47991dce23f60e040e1a8e86bb596d40edebb9e7d3d930dcc37c6f5ecab19d82999a2b580ad072c282ee51e4258ec5aaa8b6911e4d1239bcce4ebdc65e56e70703c85749456ab61b02a276db749d907cb5cbf547b8b9df00d1c2f5fdbbd7d1883c1d79297bec550beffed378729c059d783242b118e1b00dbb2c31ca6d1a4e8286efb59b554829c1772b27b1e6335b42175486af92b97b3322460f8ff75d3979ab8ffdb8829bb5fe4a84c1d9f611c3faf4011ad6ed630750489a3cf17dee3643c422075bd8a304775f4486d88e62883f9f7fc740550a13f6fc4597d6de0d2faf040eade66649acb68bd1c24062a45c78821df8759f924fd428f22db95d0d475b6415953939848191ca3d928855a1d3444d9f0fcd4d3b0fe1265565108b7136c91debbc0b8c34fef8cad3bed899485380fc55991adb31f272be06f4556617a032f3a8eb4828b0e86989012ea3002b36c1562822ded8ced4a91eec6c8d1e80b21241e8f6de141b2c7419987e85d5cdeffe4171462ce827e10c84662283fd5e2872fb33d1d967f169d98ea7eb9a0b63199b692d412471e0f9dc0a30b3305ba6e94c5fc01357250ef2bb9427fcb719f6b4c5ab463996540b596504c8ede3899698b32c06f848ae17c7b82da88ba915527d29594767e08442fc25874f9c21296869498330619ffc1d948fc060513a162c46f4238f60ba343342edc608d92473b52569b6ba75e34038c926a92cc46cdef91db8b8bd9e35aaf9945664a9792dfef9bea69011392ebee119c8dede5f4736b83ddc24e8d0fac291bf9bc57a79812edb44f0ed70775be212de2aa2a966e2163296151a0ab5d2f052661ebe846239b8769cd7ed0727af63efb619debb0c5a86d4010dff2a61b11911768c132f7285686bc8dc961946774fe92c9e082cc04353b961592d891194d32ae29e08e6a1293665e85c0f2f719740f54df025d2ab46c346d5d98db846c9e1f262cecfcea2e5138831c42669d4e77a1eb09547045d2da81d4fe48c73b0a565a03e980c5c3477dd8f9f01120c25b611a5fb47f8e81303fc662d4a18c92c5054f64cade6038f82d5d5b4588428443d1264f3b3a9db1991653c2322e6199f241e5fbf1e9e3290c871d16535be3ad3f32ea5e0e4853a7b8abbb0d7718ebd2947503da0c7f3bb6193886cd4cda0c197070aa10bd2221ac68edbfd843c9182e47cb53a48181a4978037935bb7bd656988012de2f6a447f4f993c1c5dae449983dbb3775aa2eff174b5c3cf64fc4745329ed7a13725223ab85df23b136385b1dfb0c3dfb18a7c3e3c9bc73a2e64dd83c88d388fdbf674cfc315dc4a5517dd42d14230d624c759c20f72614eb403f754831c03bd13462698503de338cafff8fb7a0f6994935ef6f78cb16a3b159798cf6540970c9e14a1c110b5b2c4cd49a8b54a700d73a83f00d56f0a92cdd01ae4e6cacc520286a893c0d98e42c8c094eda002b4d5bae3d71200d4e2c1566857e4b031d52d9ab88a5a1abfc738460ac48b6a84a5ed6b8c6845ac47c04da1c03d7f3297c6603824fcaff6cd38d7ca2260438398800705232f211d0e63fdc8bdc08c04c442d7ca65e93044d7d19c4c495d96730cd263c82ad5810c49f7217cf707021b04450445fac44d73f5dabfa1936eba5963d32444e41b09591718834ea810d40460161939941782a004df83ab58537b8cc30a5d25263c6dd49288489874c3466bd3a63b3dacd8325a8feaf08380ff5b5fb91fc69d4e34c87b873479c32405c9e5add7384020ee33ca5d214db9d5d316b85f7f0de99d6dd59f16a83045c5d31ad7505fbc15784da7a946ec3203a46a90c214754d9478e70294756eb8be9d7f43aadaa00f494a0b7c09853796fbae6980e9904cc6b371ead79e09d22f54585150e2e4de9966ce0402a01869aae90a54f5409bac36b5f04e6aa8962d5680257883a5c3f2cb79d980c4c9f646a09c05f2df8160b2468e2ea2c7b1891c0fa11d612ec339615ddf5b1b0a5ff27f17c98051ee75ab19b5210d1deb02db70573f9c4fb21be813767e1538e22288e21dbe5355b92144b0669c260fca5e867ff31d14aaa2f15d9478068cba8a1fb934e82a0f0392ba702a0494977c681ffe0070ae317f9132f5a4d66818d9a60bbed3209fca10a882dc54a6c623c75e33bb7d2f5994a38e782f612c17482dd669c26cd2f3503a94095407e020e771e125796ec07be4c66927f1d4863d542cc9d7cff5f10c3b0e4e20144611a87e15bcaff67fac69ff6d173bf5a7e3da7fee73a0acc87d90927b61a5066f362ae1bc6f4b8ed1fd56111480d5dbb00a89b57edd6f0bf1f82e7996fa4d037e64494d9a170716fa199110050115d8b8ba4002680f6989aadef9c8e4b908b81f4b8f8d27a4647c208119e42873928e75e0828ef878a63accf42b966871281a4c2eacb01567aa8ba2b39e3130a2925514ee40a6dcf659b4e7dea79d4b3f1c73a3830e690424fcc2cbd1274262b569502a8f1db501361a959b8f687cd2587a3f79c072b7af7d70ff8a33e432143cb48e8b4c8cc4564c1822a4f77750f2cdacb0e16d6e32e4370b1a1638575373db44a98670a885cb9fc2279e40a86d89e505036bc950c8577f26bf831eb0854fab988de76d44c221d49101ed946e412a1ebbb166c0a02288bb9e8233d0b232acbfc3253198ee0a9096c4ddb8ec5217b060c7e4b559762815d4222c435e25e4e0d126080593af1229e3493db5112fb44d0352c4869c2524bfe5d2bb77d82b8c3a31e107027870f428c5ad09f88da16baaa6a46837a80313f9fd334d291710a30f5398340db6cf71b949400089b90ad892fa05dd601e6b6901553d341f37c8232982d3c5f1b0727e8c4a72a6d3b5960bc2e35a7c5576e05eae19345a68df29dcafe0747f36e4d6e7fc7ee73043df21da6bacf908fe72681f86e81b9a0bc7878bfcf3de804aac6b5e8959c87f327a46b513ef633d4a5070ca221151ef118019ce03e10767ee2fc385e75a830153adc0b29f685da8688b5244fd09ed6994ddc64be7cf9b9867b0aaa88b88797b2f064a510fb63e983008ff3913636fdeda18adf9be0c8aeb7182cb749b0ed59ae4bac29779f4350fa7c6065ce35fb950afdf334584c1c409bb8abd708f0ab2ee65e6792f182c43cf22fb0044cbe86dece4cc28348bda35cb96098cd135a9217772c11e04f538fffb253f77520d812e753b4d862f2001679e9bac034215dad532be0dab578ae1c29369fb246705b2765133f7d14d9ae82f5e62e45cbacacc22c00447f98b81a73e0802efb96ec31c10d988290a7651c7a912aaa4464ddf75c7e149622e2f61e11b216ffaeb2534ab674f9685880ea3f0b30acb420f31c9378302fc6e13b0912b5d92d6e1a5d46bf7eba01661c3406ff4fa9d631e73df184453c60a5f5d3f42e7b7bbf05ebdf84bf3fb9bba87d2eca34b0a8ed91524c9a44a7a59fd3da59529c23b405bb6bb91c41354740203c3ae0fbb7091090e913686ecb3e12214d9eaaac0a2e2e2a692dd8d1e9a2890d26534f5bfe4ab190c6a818bd7a514323249657b4a5f675c4bbf29cb437c1f34a4d4d008684bbb9f45830305362d05ecb2b3fa56a6b61a8649ae7df05ffab0ef9908cd53d54f33f8ef141880751af10888bb782550e162f9c892c7826b1709b5c8f82b59cddc6a0df89346345aadba4ebf291f61e20a62d326ff22f76de17b08f3a20c9cbe38f7d0d080efee4fc05074601e278db09c3a42273e44e6c458519f386fca2e24279823a40a183ffc12ab61cc91259f5bd7d9111e69d77282b0293e1aedca9e24f2a9dac227e52c49823f2a6874164ab489ef24b3a762e88f9ccf47a59b09737b71e4031092634b2a083f49feeb85d73f9251b6293988a12bec48cc7b912472f9b00628fd40b2f4e2a35ba4406e3958ec6999dbad17740aa918f03ffc922e2d780e4e22631e656672d8008d0d34d14ab5a7db2ca367844c8035f2b856a07e0ffd67ac0ca32e10afe74c6ee1903f511a581f0f9f94f13eb0a9b778ed47ab97362180bcbdcd882a87d30e164308cae82fcfb953e73e3748d9d4622a229e5d8f627790e021cd9d413760a77bf9372a5190410bfe7aebcf43f2c0aa1583359222e8d470e784290e25b75268deb5ceac9d098d46b399f5cfb1c0fdb421bac2d121ddea38a7988500d3dbdbec6f0805ac85b429f51125664d4333ae1f252cae9164438231016e6128e20beaee1e0b780819da8a410ee456526aa3422a3d8ec3c318adaad50882951ea48c5c9afced15a99a50024b8939a34cbe09a674a159dcc3f00157033e09a0a15f786a32fc63a0d3aed53677c2ed2532251a1778df5717a4b2a4a93e74c27379c798fec7d96e3a0194686def323dcdb695199af71bc8d26dfa00d8e16fd6e35d00fc4dde4f255a09a6f6eebd781756b34982d7a2454b1a81972550ab67a89fb7ba804540da22180ef4c13aa650ddea1ccf979df9277aadbbe8903840401e1bb86815a54837888bb847853450d80efa68373e2eaaccbd206c3c83d18c8489ae0748aa406671f4c8633670cf837332fa0fc7b1cb32bfa0298f2472708c2b1da1c83e419042c694e388435a5b6b4719c38da1d084fb2cf66198668fd28ded77b9162c6cef92788ad13f6e7233ca75b0b4ba41fe32750f7f05cd282b8e65cbbc51d5f196cb98cbe88db2ce75c11fe677e198f2132339ab844d1170634bb8fccc4e832c40e36804a78c4ac58cf05e5fd8fa14c85472e744bdfc6529a6c4c495c1e4762b06e72404ff38d0b960e6e1e211febf24994fca75fd5bd448d6a33fa318f1855345eb90f27f3e605ab166d7befbc63e6ceea157ae2e70afd078b5e903e7dcfb52182631d1b069ea255c8403b05f6ebfc0bd2315b5e2551fcab687e8c2c093214f12ee71e7c21ca040445b5e8e3e9556ba1b5ed5d49fff41aa844ce782cfe3ded80bae4abfc70cf2dcf012e9281d785d81802b7f7ce8a1f4f84e866839e96a1b002384c888029fb79fe463d1a4b3bf414b09f76f3fb4c573cf6d7e97d881bd40d791ce3b653ea807da0cae78947e854b2292db984c42bbd00216ce2270a935a6be8bd63d377e71e3c6eb1bd90f996108606c1bf8e07b5d051e0aecddbcfd2c419a5e6e06c2e8aff994aa8cf35d38f28d309c8ff59c2a375ef43570d10c899024ef55c0094bc4e0e7ecaef2b1f8ddb1d256b59806716ec66e95a5c45e3285a25536a0401f159337e12c75e7e542c90e08f6352b53564537ce80139d8f975dcdb3557acf60304e0978b1c49f61596b23f30609dbafe764928559cf914fe1df68bb1e27789bcbca64f2c19128f0897764929e1824aa5ec1dcd6baaab500f3e61bcc723a20f47b53990e9de7dda2d32654fa10cdee710cfcddb96df08e826cebb4f1b6d210ec05089dbcc033579b819b90e777d6efd57d7789860c459b5a95e7971815852fba5222b19c4dbdb326f17023d076c212b2285b0f6889534776c0c9b22bb01370d9378321c08ac082219b7258b3b59a907bce81d54d8c56c6cf67aa32142a3853ca51f4fb95de59031c5db7998e06e68f4bb08d4603009fa3f67209a80cb8ff17a9109fd1bb3cac7f8a10f5506332af402ccab34deda91d773e8a7c1bc0815eb25ce3a786b611787db51829b5eb8b243b037660cb6267fa72a7e0e2cffcb1ed61e4f37ee3129546651f0da97018322b694ccc7f3c48caac14d608badc58bcd5d50e30537c798d864411c69945770d4ca623a403fc455342ea2fd7913b406ce6151572a442dea91505917b6d8aa1477139ba26836876c189f30e7f7a8542e95f9692b723c8c5008f82fb672840cf6f15660d5eac6b652d511b988b75d22bc072c6b662e4e8def5059241d54f90ef114f63c28a4c34620fe1205ea90aff98921899aba0cfc397aa8ab59903720f33f903082cfde8529d5152428f7b0d158ecb5a88a14fb0f9348dc08fb3d5fb8cb68e77906828f59c114c35f32ea132af602f59b807a98a569b4489648ad9ab8d39432ed2c8dd23d179ed18a4ccd7606dfc49b66815bbb44d004cbb108083e9bfc257fa614b4b9bf174b0d66719e466d7db1fcd518ed24a07817175da13b95d61dba7bfe2ae8bc7eb9c676be04cc4323ee582fbaf959b2d3976d33321a8a0de119942c23f5ca882136564a12004596a453af46ff8db315e10d0c0d31f3c438cd61e792287f9a5d872b8d42c81a74c32512f21458bfb2fcc6431e0ab29ce6b96c8dd03d7a767c70484e063744231642803d0479adccc6cb1a8d247d338db605128a9650c0354f6dbe4294c08d61867d6f6d541b5e93e5cf3440df4232d434c94dfc4924dd05b013b06e932a0a5738e3c81c31835b3c7cefc84574efd7f44ccebbef905e946e69d02319b91f912fada3f46df24cce9eb63bda1761fb2ede049731c0f26f256929e9193dc82f3c409c544c5015374193af523694336c1952383d91416579e143786469aaccd060e0390130f9416d5d5e9fefcf35196936d28f82f189e347de54b596ab05e112000c85c4b28a1f005be0ca21a0fff7fcdb00a5aebf7af9d17fdae0d87dda8fbad2092da619a9fc4c1c13c9d5172e82b86608f8e8c8a0c264bc5b6ebac7372cb2082f7bea2c2d9f577bf96978997c25669ba84e578696c93e2e08ed62d3b14883f4e77dca15680dfa5447577a0aae987e5d95334c37fc432a1c196e0cd3e2ca135966c6cd150e2cbf014f6d5980a36a0163e0dd3d8157b155a5722e61066f211eb66d2b6d8ea3fb82c64f0e164c42ec40d945f517a114a8d8acc75d909154aca6b797ec1f7f9c7e8264a0f2cb194fdad5a1fd84a5bf7901a20b656337899af402d33978706593e09832c987892e09472138d46853c910a4e69f08bf0e11fd81c5a3c3271b099c85160168736e27c2612adaa368f8aff23c4487aa65627733042a7fd1c89afd2fb4967618908d7b3e07419ccacaae1765894917a59830a8b6c21a1a7551e0f2b5e29c0d2698ec3aaf3ceabd069573330e7e35d9992ec5578b2d8d0d7430f88dc25923fb0e4b20dbd0adfac0deb62305850fc32b991d107c4cd132c75459798e7803e0231b35193d3b9435b4307025b800b153473c09ba706b9dbc660f1abc42227b24374cd8ee497bb3cb667e68a35e1e130e636a8bd04f74ffc4899c4019af8738681269a4ef7e70f26b7e6c1c0d1b4a92c5b326575bc30bff580943c5ed8a9b249336344a6075995f8584da2a5e0056110ffa596bf1d48431b510160eef825eece201875b9b3e4bcd0fbd3faeda7fbb19dd06293bc8ead05d432c25a8bc1644beb7e8c1fa185f07f8f172b642bc7f3b35773c6422bc721c406d8aebb30b6cdab86f3fe46994b5b258c09eb2d6f441ad7946ee2fa43b20adce6b807031a97941b1f1b76977ea748dbbc0a6cfca7b3c2cd57a29ee8137a0f797120906d68af395b7dd4df0d6d4689f66ae9296b966d9ea1cee4d62227e600bc73629811619889367da81dddd2118effa81b2061a57b8f1539f3fa5134f9ecaf1653444c67200c332f64a124baa85727094de60831289783d998cb60d8aeeea253d705d1ff7cd7bf9f3d9b37db35887359e4079523eef70ad618220b1fb2be97002600d19a899b5921b488d1720717d9a4c2f1ff5b982296a6bff9cfb1248b846e5a38741afea0d9a1334b94c270b1265e8b3392a7c5cf5387014eb3d9a9439ef818180d3cb5cfa32a063851222879b54dad096144d10976f8f53749704f8fc615ad952049b950be11f06466217a2f3035e612dc4fd0333300bee1db01b2bbfb7fb08de55cc37a3c067413264ed61997784ac3844d67c5daec6d8ccbd98c62e5b29164e4ba751c02d62d2ee2b89095d73293e8843d58d2ff6423c909a00a56b9306ac6c58f5226c0607ecca7e736058f4800fa8fb1bcc58661867ca1ff5d897ff00239525eae547704520f0c112fc1c90deca5fd070d74ec22d6c5ef859082f82581a303cea8d3694486d8322193c3921ec4a57d601f260267fb9067e557adbc77526f4202dc5c2e2aad0f0926ecf7ca47ad36122a3713b3e0cb418a8d7f5c57cd62dc9463537ebf32bf9fb4377078a2c7e9b54f4000f42b67ecabcda6ba1b66579126a8e2387ca3878840edd0260363931ce5bcf63a105e4e7ca98969f4672a76a1cc9325c090142b429f8e9b170a1cf0ac1450c99551ed63b29a48953905a9ded680f8c6265c6034de7049bbdffd26137a50eb4e85fc16c5d1e6e07c0f97be7da6e18d2a6ff5475e66feb53e74dcea1fc575ddb8e49f614212ba425fd73a734fc36a669aa1fad223052f232a9f16e81aeb1d4753b658cd85e2e93cd008870cdee912cab174844a44ab98a9321e767b844ca20a2cfac6662660e267e4b1088262bacce3b37db66aaf7f94a0e12971d8eb3635b9f3c03a89a64ce49c903a03c3a1567dd71cb6be4c9b41c11fd9db93e422e303592027f56f6b2e86cb5b7fdd01d3b33cd36c3fccfc79fce947fb05afd25f867c367a04222b7f708023fcdfa6f01cc9a86c0f04e57ce4e23a7821589ba0fbf9f97ec2384a9e4f7f87a454459d4ad1b29dacff28fd7d29c3ed202fbc6799fb99077943220fee02f65f4ea62fc5612fdf51ffd0af367d6a881b14249f8c52df3a343383ffe74d885a6184e1e9f4d772b53a31d884c7d0e9df2f179ad28f5e766b1f010b201dad16399849db7ee080085a492691f8b34fc314a77aa394046f62aabb26e0dbb1147c641b7ff38f0bff47c47ac5ef2847b314ea1cd28107ab046c14a6a6f8172e1ddd3e4e30dd30506d52a4af0a1cf059eab9606739a17794975a3c97d83cdd77508693c485adb8aef239c1a56b26cb6db8caac6f7f37b2d2e3388c8651f6c6c73e8feb1963ec5f116752c90590276c1d0d4479524075796900fa176a633a2b8dbefa1ce2ddd72f6e78b0183fa0832ef631f48e8b8f5e435900fb7fb8f514739998006429df444ed609c2efc576770217be0c3ee1d5a4ef5fa9260f18b5437a58d772fc1f0e673cc5441c4289f26bd4debee1147b4901946bc9e8717e62f2b2333b3c2a5a7270c3688994ec09579a7013b8b1804a442e9ae7b0ed45516fadee5187f8da19636ea731f9c7478b640df28e5b70ffe1aba3d9da4496671c9a3725a5e4c05cb65f36e0869dcf54186555517ed0b8114d8e7c07d092d0038b0af3a3934b5038a685fb05510402939e955bd76b5ae70b2b3f509f747989f603fd14e0e67174a7eba8f6e36bac9e866e3bff7c7eaa71cad5b061e728b14dbdbfd44e2f60e2e318ae082ce19ba73023d72aa73044432a4d608516b8410b2f79632e20ae30a9a0a4b62a408d1209d628ea385e5532c38c6aa4d272ba6e5b36a33c64242424242eac64ba19026174996a5c45a624d41e3d032281d49d3f0bc7ed7631269a5abfbad989a9309ead8f9ee1f072e0162554af2d5c900c936aa947ac28857a5e45229d12b6420aaeea6c4cc502c9fe2e158187587d7b85c2e97cb1546cd18abc6aa856114ab1646cdd0037b59350f2c85fae118cbe34004c135e425b0aca8cdd80e0e92af4e414f224091105563815195dc76a23752f1c776631229ad4a898564e5bd6621495816263ad3c3245e9717d765b9d14e31c4ab5232e286cd1526b8a28857eca61079091d88cb8788c37268198a5bc0319552d4a15c4cb4fdf51ab866208aa1f4022bed8e6df4a94a6e65ccfb35a18e57f188ed237eb76d18e2cf136abb3b69d94ea5f4c27c373e69bbfdc8e49a6c53a52461ec8589d84818334f3ae5326353b22c266aaa64b7589ab5d21d5139d6d138484e1a22e9aa708cbbec8ab0f2dcc832a8479fda59912f493b122fc8443b4304996e4b31c9e93420ce71c78cf2fc05b23ce7afcfed2c73d0e4d7dcb8046621f37c4ac476d844ecfc5421c92d6d24c98df91888137d2ce57f2d276de176851e5be772bd24d327392e8defab55e8aad93b64a7685bfe7b49185572db1d6cd9fe66c1cb7a87ec1c3241851868c0e18723a42d4b636a6ca0da0b0963d523319fecba05baf25a00922f9f3104b310efbbefa084ad93b98691ddaea42d272db8ea279ebecb70850cd8d55f12f6ad40ff8d57da151d81ee93279888df9e93f6c6d972cad91b8b7b576f06c62122f235c442f379c4fb03bd7a4af506a859d4052d67d42b2412c4de97fd40f07bbd8686ac386652f0892e4137369f9393f7c536d442547538d5ec4f1f6c7bb4f57abd5e9ee50701b2f7653dd0e5fab7253c5537cdb4b8a9574fadb2c820f9ea46026af3e29747bb7fb23deb75e3eadbb8117c200df2aa22f690af97cb054ecb483c58c87b136e74b25a200b3dd55e2f19241f44c67a0a7c35524fc9d718622b6481df8aa562791d8bdb286bb264339116d5b1e6db802886f0b10d35444e63e6c8ceefa04a6e79e011e7132b5881135e8fbec2cb3195c646bbb1097df7cd8dc8d6b39b9b1e29c41e5cd7b5ed7aec9eb088b7a5d43d754f4a3d2cb310bd5777687bbba71c33ca773f2bcfb4c8f69824e908d955911f6f4996cf762c9fbaa14f948986b14293f2e28a9ad29634ee40b919c38424add49172bac28b521b0121470623449ad22b2cdf8b12354a430e54d3982c485375d8382d793992465172ce342565b1a3c3130b415ede642866a16f09104bfb345432026d1bab078b8fa912dd92c61d2837639826d2b45247cae90a2f52491aa52107aa694c6769a4291c988d0a2fa0af9b016de6eeee89ee1d944cab6465657799efff580e5fd86c8f4eda3e71c25cd80e5fe86c8f1703962a99a11295a51b774fd67d62e9e994dc746339e9ac0c39b043245d88a49b33f442256d6792ed4e3acf74d279e61684fd49025a7ab6520948596846b5659a659ee3b61791648303529452ba75146906c53aafa3b419c49d688326c2e14497dce8a494524a299d1c06a43a29fe4629a594cadba07d9f9b9e944e96309e21199339ae0383638eb38145ea9bb3674a0a725ba7f2561fc802bf70ced90a9170a72c0639ee36a8702a109be3388ee34419ce194302ee39e59c66a6f783679fe61cc19427231f28f66c44868642568f0d2ace4967d786cea62914a90deda6ef39e99ce2d1846843e57c5f8b0b830b83bb25ed5e205eea799e07522446810a01e84ec11db1cc6a2527a51ca4839dbdd18dc324a0f5c41450a419e3b25061058e81463348b20a40a319f368a09195520a1854b3f08b11231f28f66c44868642568f0d1ae4f512c549f37a74402810412e0cf1321b76b2d7a3b990a8a048ec44916816a6483ea1682344b2dd0041271b5244cfa3ed20821e920d293e06ba4356b2ddcee38f4ee95009e8b6512a670f94522244ba31d19f7d296976ea36594e96f3b652b5ad040307cdc731e2c2cecf3b4c5888caa53c579046761b9b1027978438df89409cb349bb37b1189f8b2cad346f46cfd51864bd41d8fb845aee3f4b5ac972db1c6f107672dce8a465b7f10b65a336b23368caf9ac197376677d721ba536fc206134090b4fbf5556c541c2b6d3d148d8894345b36d8e3f3078978fc1bb1c8110330f84bc378a9e4a9c45b3f631225f2b900ec91711f9a2f7b18578598a9f6c90b01aa5f44ca89c544e7aafcaaa3242bc2c65c38cc9d31944dffd749d0d3824b51719ab4c3d3c597ac45354d2cd035aec35c152914ecd223a3b321c17664e4eb59281bfd38d0de5efbc422a895e920784ea57e438aee366084315dfc671dc6ac5711c37aec083231020f85300f0e143f04c7fdcaf0996db42249c52c771dd83a636679d773a998684cd918e912f7a0547572042414141c917126592b3e6846a63da98a2ea6c671aaabdb0dd92a93b69c628a5928985da1bc522448f858678555bc648d8a552504cb4bd3df178545b24ecdb104554b942bd402229a97b4a26262ad5df682cd467da681c120b3979e1c5c6b43149a5cf0c2a61f75be228c76daf292b4869be6449f3254b4dc304176ea31e1addb2e91a2bbb9b6a6b3abc22de2d694b9a4a9a76e0b0a2baa56e09ca8b6e4c988ea973eae4744ddd155050505050505050524343af175454b7c4715242cd98e789a2cbf5bfeed09c126ac6c44bcf0c134a332082e83c2e609a89b92d45b0b2f51b64e5d82d55db49a8b9a4c35ed9dd755d87c484b41476d8db4169c6136f3fe630f45ef65d3f56189ef52482dd12cfa452ab5bfa74e8584262eaa492845ae26a12d6b158acb358ac8ef52e44d2b1584bbab3ce12c61ab926f992507cc55218daaf5e1922e9e6b0eb464e42754b50dd52b7c48af2f98007ac2c1dd194c6206de13632eae6c237e2a546974d29fbd4a88d8c7afb82529ae4c54e9ddeb2499692627672720ad3484e9fa474a8945419dc78585cc2a9a5ec846218cf7e1cc731333377283e215eeab4596a027a02ce82a90a9892a12dd8b68d632929f9797143c9ca56cbffb45a524a59474a29e55bdcdd341a8d46a379b4a1a1d70b4a8ed18c716ba446f4b3237e69d068348fe6d13c1a929ef116d91e513c73ebd765c5f1f6b7b35aa7ad564f55bd916cf583922fa94475956afca2e40b8a3869494a9f54eb4cad35d2a68fc6443d975e78e618ebe0f7d50fdb57bda78a9559486b4758c17a45578fbb019484c991b1233193a325cd70db26474754d1260f86d58c1b3d9a944793776e28752d3c524a29b9ddcca98bb4eab01f07c54c12f6b364066d1165e7f8338b2c947c45214d0a45c7801e85a24c509e274e28cab4854aa06e06ac93cef6d8b2c11a3383dddd7d069190be304b1b1586d15a5bc1afbe4a9c502faed3102f558d630b6cff02591006ba2cf8ca300ac5af3e08de9bb179f067a2efe0489daa9c2386bfd4692e8961124a5577907c4520b881971594524af02a9554813f22655589508838e83f0f54854ac2835f5531f25f58291b70a44f3ed050bd0b91a8a47ca24e33e6cd566087f25fa77a6c35d22c14e9055050534af6b7a65634f3ab5b22752c2c0c3e6ddbb66ddbb66ddbc6b227c8ec46aeba70cc3b3fdd8d690363e5bb53a619f3c62da91b936c4db254cbd2972ed4686539645285c8e4711cc771dbb6c99944b7cd7b5a196ddbb6b1e8862ed196684b51d3139758e8486d426d524b53cda98dc8d5bed1f56d6c5de9a634fa3344a4eeb03d6cac6c266c481b4dbe64eb48a45c70903c1d2b6b2e3b431a45ab7d627c5f57258c303a36619ca0abd28adaa4b68ded3458e79b0269e096ef0e7824b963b3b111af2737e68db7d619dbad26f9ea4f6ab69a66ec739235db9fd30c97b968522fd3b9f5721937d4cb786ca8b7a148a0dea612817a1b0b04ea6d2d0fa8b7bb38a0de06d3807a3b8a1aea6d3334d4db6918506f63b1807a5b0b05d4db7112506f7381807a9bce01eaed3266a8b7f1c850af8462807a259502d42bb110a05ea925867a659701d42bc108a05e19050cf54a334cea95695ea85762e142bd528b16ea957158a85772b142bd924e00ea95652ca957e251a1de094549bd934a927a271624f54e2d29d43bbba050ef0433ab774661eb9d668ed43bd3847c02edad1364275cde63a21f2e2f32910f26fc8626fcb67a58664209bf384af8d5b183652510fdfa20fafd51594644c22f10127e3d08621909467e858cfc0a1181654662bf4562bf3112581683fd9e00fb058065194c4d915f5eb3846545da10f9e52c6060199137437e19ce0c2c1b3267845fdea206968df08508bf0cc60d2c13618ca15f26c309cb86cc10f2cb6858806542d408e197f34061590852847e7b0a1596091111e4b7af606159102340f8ed23b4b00c84243ef86d2e5d58f6c11241bffd050ccb82c4bc7e1b8a2858f622e3c16f4f6186651e50d1c16fa349c3b20ed400f9ed3558b00c481ba0dfce420b9601bde1e0b7e1c461190773c6dfde820b968d5fd4df06830ecbea18ff6d32ba0c96dd8c1fbf8d46e361d90f3536f8ed3c5058b681141fbf720a1596f920a2c7afbc8285653d8cf8f995476861d94f123c7e25972e2ce3b1c48e5ff9050ccb768871fd4a28a260998b8c8e5f39851996e9a022c7af4493866539d4e0f8956bb060198e363ebf320b2d58e6f3e6c6af8413876537e6d8f8955b70c1321b5ff4fc4a30e8b0ac670cf1579221cb60996846eb57a221f1b0aca506eb57e681c2329694f0774ea1c2b29008f0775ec1c232d088ef771ea185655f12abdfc9a50bcb564ba87ee717302c5389f17e271451b0cc23d3fdce29ccb0aca382fb9d68d2b08cbb9c6ae61a2c58b6b5a1bf330b2d58462fdfccdf09c7ce382c9b7ff29662bc6205de518cd7d5c39b69bce7e10dc5785f3bbc9f18ef9093b798f11ad1e11d66bc5ca3c0db89f1b2530eef26c6cb4f137883192f43e1f05e1a2f4735797f192f4bdd3713e3e5a91bde4b8c97efd8f0f632de3692c05b89f1362d026f108cb79120f0ee32de4e7ac05b69bcade4803797f1f65203de1f186f33d5f04e62bcdd44c37bcb78bbc6803712e36da705bc3d30de7e52c05bcb781b2a01efa4f1761402de478cb7a50ef0eec0787b6a86b711e3ed3b32bcb38c571a19e05dc47825ad006f0e8c572211e08d65bc32298637d278a5d200de57c62b9704f0dec07825130c6f22c62b9b98bcad8c57d65e785719af7472e13dc478e5530b6f2ae395502cbc69e395512bbca78c574a05e02dc478e5d492b794f1ca3b2abc8fc63b8d94bca38c77d292bc3530de8984e40d65bc332985b7d178a7120a2f1aef5c9a3d88f14e26fb0c8c77361d3910e39d35001c03b25fc00223b3d00f9559c887ca2cf4a4029559a8071e2ab3d00e9559c8890e14c801caf6278043931b6c900092ed4720c9f621f08025db7740039a6cbf869aedd3e064fb0c580094ed2b200152b68f8003f41ddb9fc1c8f665a0d9be01906cbf00048861c9f607208026db87a166fb4c9c6cff05175a88b27d165698b2fd00c83bb6bfc4c8f655a0d9be1224db4f9264fb485258b27d14986c7fd664fbb666fb472ab3100064f5845668820e1c25fcf041e401101284081989158901e004126c1fb6464d1adb2f92451b2c6c9f089c375ad8fe902de6c4b1fd11c0f8820bdb17818c31e8d8fe101a669461fb42380fabc1786c3f84295284ae1041c5f6831c610416db07814b125a6cff832f4b74b1fd2028c480b1fdd71464a2b07d0fd05061c6f63b58a3268ded03c9a20d16b60f04e78d16b6cfc11673e2d8fe08c6175cd87e25630c3ab67f34cc28c3f67f749e56a3f1d8fe0653a440b17d1f5788a062fb3d8e30028bedff7049428bedf3f8b24417dbdf01851830b6ef9a824c14b6af030d15666c3fc71a35696c1f47166db0b07d1f386fb4b0fd1b5bcc8963fb36c0f8820bdbef21630c3ab62fa2614619b6df9279a41a128fedb3a6488162fbe11522a8d83e788411586cffe3928416db5f7d59a28bedaba01003c6f6bd29c84461fb1d1a2accd83eb7464d1adbdfb26843e1bcd1c2f6e71643ee9c53e4ce38b6e70a453f04514251532098f8e43ff964bea5644ec96f4b43be0c956c2d93f0e9c842f2df94538e3f49ec9cb365994f12f13c4b29a594a2b764e72513f529a54be6ec46e32c8a3eae1e5ee7796bd0e819b42986145ddc455589d199d7d6f33cef2d7aa3e779694230c77a9ef5c68b03901802371df86eb035817845d1c7d5c3f3bc8e7a51789e774fc23cb0de453cd653c37ae3edb88dba449f28bcb0577c156e2ca709e36483584e13c592f5e6276b4905b641248cbb096017b1df4306cd4fcfe50346bc2f3b5f4333c6cd6614494c4af615c444f2b6ad0c0fd0464646461b730c9f04a51c83bce46bfe96d75ce9396b92098f773c3a1e1d8f8ec7ef6dc7e3f76599d8afca21fef9f17eea156d6bbc380c0d316939f4ca7129608e712864c21b3787a807ba7a6c36bcf8b61f8c8c8ca058fa02e288f3a0d9820c346aa0c61a7966e0a3f44c4ad18cd6cdc0b1fb28e8495813eeabb7eb2c964bbae48e7f0df278e7ca6377fc538d975ad5b472da4eda4e86a763375e15ab88c97e5d1e1b52f14e3c3a3ed911566621d578e5c5775574e29d8726aabbde4475297aa2f7eea2eaaa8baad109f5fed363031fbfe1a3d5dac047ed512fb3b1adffd4cb6d6ccb75b63acea3ba2e9e43256d649985768cd735ca8b52bc0eb1e88ea8ba28feaa2e5e152e5175e7704967a5ca765edffb38442293f05064e5e99d84bf3f3cd96159bf1cb250244727e16f77f09449f8ee54beb3e0188539e876a313d6f8850a7829cff1f03407b30897db5879107c0e6f066d3d4343dcfeedde8ce500738c545c3329360e8e54bc99141c97227290fc8d4bf1b9949e4b192f0efc64c5fbdce73ddfce1ce4ce7f3f2271f854d70c9abf51a5d818815871e942468b11684ea0340b82a196d490e2c68b376b8899f58ce20c2a62b2df98a4c87a6fd526dcc35b64bfd3ea230d91f5ce636ff8ee1dc33ccf76d849b9b1c670fc02826310fc3413f3d59f25945a5a6fdb2712b8453687cef630ad5422efa4f3e459e25939feacd05dbe1b5b78d27635fee0d0d927d34a2624bb411146dc5ee0b8f1963928f282e0bacda7ced79f35cafc36cf560251748b2afd9c639479ae54ca299b76179e846ddb397ca1c9f67dbd711dd771455bb7755c6d22e5462de5b84dde2ba594f45bf76d3bb735d7719be43aaee36a130ee4ba8d485aca711b156aac3ebdfee657dff7afbdd70e5e0f6dfb9fbc6ab552ad56aa2d88e51e843b1dbdc93acff03c41d5bb1d53a5ea542a4ea51a2fbd5e585df65f7fb55a558e7b87dd65a55bb7f23eeffb5ab6c7a9549e4ae5755e5579aa95ca6ba2eaba52ad54aaafeed5262a956ac5712a95d78ddcd86408091aa45183ee3d65fb2b288cec376e755ed2efc6eefaf5b70377fa597be88fd6798f7aa7d41b0a5fa856fec89c54b65a72bc9e77f63e9b27cbc9b4de832499d61b3d16daeed540ecdef60e71ed7ab689ba6f4f8189e437eff78755a9542ad58724acc7c6b71b91b0ed5f4f05e52bbc8d2aca576863a4f215b2eed5db95ed138f93728a95db61b3ad7a55361cc16fa4f2f5bd3b8847c242ee9dfc42ec73f317e26ad5b28f30d1b42da1705d552c54e45527add0f63b597f56904dbccbb3fd3e0a72d88d5dbb55747a57bdab4d3c097a3d4622dbed294858f7cd93e3a5f649db6efc5932f3e4c93325154529a594524ae9134a2fd7eb89243b1fc4c844c2ce3462d2b0735e9f5a10013448c11370ce30c1a6ccacb758f921cecad339a21802519442bc9b9148b98897be40bc34e96e462d2868189b977e42819da71b6dbb9802bbdd47c26ed86dfb6bbb6b4b43c6d207769ef3de344143249b0d28e29d51e29c42ec5943bc52caf6c52b629845e49a702889961ee8256343f4ae1ef47cc50e49a20a1292a8819df791302076ba2c336c8211b99ac8a1113d15885e0ac4cd880323decd88ce8c66cc0bc188e1921866215e0e43644919d923725b7507715ad0c1a11b08c974a19ab27c7a837aad061faad1f8da32edba9847e3c20be1cdbcdfd606ddaf2a94758f79a685c8ef7d1d4c04da78ebaa1b513acfacbbd7a24d353c240d1791b751e71b1e22dfaa5f8d8582cef43c636537f976601987ed2e90d5c1b1d6f93f9888757e084c049e2f844bf8ceeff9e497f05ffdd27a4f9d7038485eac738d370b3f6bb3ab346fd66a1d45e93c33ef42783315eb127c09dfe5aabb3cb7ea64d5095567ad4ea73ab16021f25d3d12e233e621ab515569e2ac3b871dcd9b75236fb5b96603dbd701a77b166d9c87f431d0ccdb6c77b643db6d429bd02574094dd4444d4293d046da48c73ad6b08675912ed2449a480fe9213d428fd022b4083dd4432da48574081d420bb55007e9200d4283d01ff4071dd441fdea577bd01e7407dd410369200dd440cd4173d0638f5dbbf6fbfda37ff406bd41fb681fdda37bf44fff348fe6d13b7a47bbdad53a5a47e7e81c8da371b44ffbf48dbed136da46f7744f8b2d76ab5bcd6a56871d36d8607ffdf5aa57ad6a557bed75d75d73cdf5d65bd3a63dc7369105dedd77fd7f7de8467ee42a30910e14785f86d3c0441378df86ebf01fde466fda1be99dc4441150622208bc99de4d4cd40026aae1fd767a3fbda1de514ca480f7d4fbcea5d125ed12e932e952e972e992e9b2e9b276e974f9c4442f5c465d4a5d4e5ddef934faa47d227d267d2a7d2e7d3231110aefcf26269abd3f6b4c64df47de00787f423191ecfdeeeeeeee86bd8bbc89bc87bc47788bf01e7a0b7987f0167a077983f0fee01df47ebd3d7877f006f2067a73f01edff5fdf78ff7066f1fef1eef9f378ff78eb7ebade39de38de3edf3bef1b6f1ee798befd69bf50edfe0fb7b77777777997ad4d9de8a58a0b6fde691233f32c32397b0233ff8f0273c3033df4eb2ccccb7a12cdf8eb2ccb7ef5866e62b932c335fc96499af74b2cc574e59bef28e65be9366f94e24cbcc77d62cdfe964f9cea7b0cbfcb64eb83a2cfbb0fcc33210cb1e5816b22cc47211cb31cb27580680e518c798db588671112ec244780bcb43180ccb23f0082c028bc0433cc442580887c021b0100b71100ec2203008fc014361998ce5292c5361f9c56a2c7bc01d70070c848130106f61990306c3f2c82357ae7c3effe01fbc016fc03ed807f7e01efcc33fcc8379f00edec12e76b10ed6c1393807e3601cecc33e7c836fb00db6c13ddcc3228bdce216b398c546580e1964903ffe78c5505856b18a3df6588de58e39cec2f2c69b05ce57b1accb9cdfc3b213cedfc13213ceaf2c2be1fc2096119d2f02cb48389f04961939dfb22c76fe1296c1ce87816545ce9f816544ceaf816543cebf8165239cef8465229c6f01960d9d859c43380b9d839c41387f700e3abfce1e9c3b38bfb560199033d09983f378aee79f7f9c3738fb38f738ff9c799c779c5d671de71c671c679ff38db38d73cf593cb7ceac7378fed4c232f0fc9d5767d5d93b7767eebcbdc77cab479de7d2e85c3d6a35de6bbcab475d83771af7ea51e379d3e0aa7ad468bcef7c558fda8cf719ffea51cfe06de7603dea32de3278588f9a8cf7d459f5a8c778c7e0ad7ad462bceb5cac474de71dc67bea5183f196ba8d7ad45fbc61f01bf5a85ff0f6e23ef5a8b97877711cf5a8b778473d473dea396f175c473dea16bce5dc558f3ace9b05df518f1ace1bea3cea51bf79afe03ff5a855f076f31ef5a8b578a7e03eea5167f17efa06f5a8dbbc51f01ff5a84ff066f3d7a3c6e26d82d77ad46bde4e1feb51ab7997e01cd4a3b6e27dc581ea51a779577120f5a8d1bc6befa01e35156f12dc837ad423789ff9ab1eb599b7081e548f7a8a77d33fa84741ffe020d4230ffe7a907a04e41d5ca81e7170a087508feac70ba9473ffe0fd5231fdfe022d4a39ff7f808f568c7797c483dd271d789d4231ccff122f5e8c67d0eab473db7f1583d6a5dbc917a149e7512ead177f044f548f5d54ba847ddbd9b508f363a6287e01c32f17c20f32752bc0251bc07a6f300c57778e24ec45c8730a78013cfa1894f00cc71587a932fbf4cfc86256e83974b40894700048740973f40e90ee0f2067ce03524711ab69c01487c011eb802b43c014947c0113f40073e83119721cb0d50c40bc0811300cb6340fa00ae5c001b380c449c8995bf50e52e0cf116a89c05da5798f20008f12552aec2d1954479120d1c0994a7d04647a1320b157d56998582c80010974647de798e1c79af61df6a58fb4e63f6aec16cf6a6010a6f3c28a0f0be93c21b8d1452789f81e46d0612246f3b49de334892e42d0325ef329428794fa9f026430515de3158f21e63c992779d00bcc5084000de61acf0a6b3c20a6f2916de60b0c0c21b062dbcbf68a185b7172ebc5fe0820bef2e5e7873f1c20bef2826ef2d983079bb0086f71c186078cb11c0bb050210c09b050378c719c000de5031bce1c410c37b050478bf210001de6e0af05641010af04e8101de5a18c000ef2719de59c820c31b0533bcdbcc30c39bcd01de2738c001de2640c01b0b0420e0ed9480f79a0424e05d0205bcd5284001ef2b16f0b662010b7857c180771a0630e05da3e18d86061ade24a8e14d450d35bccf34e03d820634e02d82ca5cc4016f330e70c0bba9321779c07b8a073ce01f40e0411080c05f11b8071188c03b90c08148400207b2e11cd860c3c71b5e6fb8e1bfff71ef3768721f4d9abc070effc10187f398c0774c600277e5701d39e4f01c14380e0a50e03e3afc860e3adc8693f73871727187b776d8e12c1e1ef2c0c3c11efef5d0c35715b8aa0215b8f7e4dd9327457cf85639eb03b53efc3b52efd4028b2347a1daa7506747525178929ac295542457a126f992aae401a82a7c85bae42cd400bc85bac25da82cfc85dac29954170e437de102a84c3e800ac363a8023801ea005e801ac30d500970196a013e4335c00f50653802ea0ccf40c5c081a8177802ea01ae808a802fa026e00ca80a380d7501afa132e00da834dc01b5863fa036e010a80e7804ea032e810a81db5023f01baa047eab0d6f526f380ef57e02b5c973a8389c027502d7a1e670279502dfa1ea701eaa93f7507778052a0f7f527bb80fb5020fa202f1a29a81b7510de20da516bd3550dbe81da53694f7516d0dbca5d48ef216a2f6d17b4a6d296f5a6d21de546a4f790f519bf6ae529bcadb4aed21de44d4aef2de406d2bef2bb5897823d5dec01b4bed2b6f0ed4467a17511bcb3b4b6d0ebc8da85dc4bb03b5b3bc8fa86dc43ba97607de5a6a1ff1f640eda43712b5b5bcb7d4f6c03b89da48bc3f507bcb9b4bed24de4ab53ff0ee529bcb1b04b595de4ad4eef2f6521b04ef256a2bf166a2b697f797da4bbc976a33f10653fbcbbb89da4b6f276a837987a9ddc45b4c6d27de4fd40ef386a2b6983753ed27de51d486e22d456da63799da51dc02f587da656411f913641132b5437000d429abf384cab31f2a5b0bd4b614ce9b22521691f7a15ed5937a7b7accd87386d82118af672b50ef8e1eeaad3cd41bb443bd22d44b820ef5721a0ad4cb58e4502f6b31817a390e0e35f6baac3ccfcde5cd0ad6ec4c8fcba4948add67cf0629adcd20797a6f498a526eecbaaedb3ee946f976aded1c7b4c5043438ee51a0da6a4b024f0d2d49a07e9b65191167d594009934af2352fbdc8a0297fc0b3fd58ad1f0e48c27eba53db7dd54a3228fc1cc3f1878ed725c508efab6016ab6e0553d048affab089f2468e9141f35c954c634c3aa708613733dc797074a39ee442ec3aa674eb10942b7479f2e459c352d03583e6b72f498996d3cc41b268922ca771419375594e3347c97e1204a9e7f5202db7c922fa4297274f9e3c96ca1afda0f8c033d007d630499cff56bfdef779a01b4b6f240519f3948c8c8ca0cc689a336c2ca54f51f60e6d4a67d498c2c97edceafb2ab310f755bd3f30adbe74e76db50a917ce7daf7de40192ae9efa09c3d19645d0c5866a1ef6c3dafe32af3d336676f7d1922e919aac076ced73cfde5e863b367f33190284a97bc7c31b17cb6419af45ff245b73be1f89ee7799e373ae9ce8d972f0f8b2839a43d6e412e8f4eb8dffec6bdebe5f78f4c9e3d3ae9c62ff3dc38241ab9bfaf8d8920403d7c449708413e4c2ce8646e67ab8a420f44d18c7eab17a04ee6ef6aec84e8d9f78f3e0a1041e499d14b299ad1518af76f54051185f3cc683b66dcbbeae40b3752a1dfe848bfb514ea92b28de20c6ad758d4dddde604f71dac6137dbed8b028294d27b65c4db48361e0b6998e2eaaad65dfdbe6c657d1d38437a1b97adabde23fe6bf560c5eb60c573e802dbd6088415c7218f8c781ac6eba9c62bb6c6ebb2977bb0adb767637ced1945c9c4b6c2b3dd5867d528e081289ab16a94f04014cdc21104c177f5c06d030fd6f9d50ee4c1dc23ca17730f285fed7dd543970c6145c27ebcf73d2e810be4d836f2e89221868858a5d55459b1d1c4e65a0a47e8112dd48ecc22e5919d340d8f899a85e4cc42e575dca6f23a6ee3366e3b521323dea6d59ab24c6d63b630148a9fe8c6adb1fafc3eeb8adbb8cd68dea10121d16a4e43947bba91c6c7407753a9542a9514f1b692912d3a7409d4c87c1a6a0926698b122d4899a6eee9d261aa36caa9c4529930536dd464e7e7b72db2871509e4c566b14d5d421926329a9bd7711bf53a6ea374a31b35236eb449698d7545f471f5a0947a513cd125fa8822162b4e3d96def5571009eb869ef8e26c451350525df27881c414cd82125c7102d55f07fab9296ad4882237e002099e30e3ce9d1a9c2d3a4e098628c36d407f05a9c5b1d495a666a62686bd1fe2c6f8a8881748ca095296454c230f0a51fe05615ed0d4815d3391eadba9f77d2a90c71e32625f4e2421f7237282deb9da6db77faaea4407cb2ce4852dd8102ea1efd1c9e98ced17e86d902fae6377d85600b23dd2d056be4e464937f22563205e3965e5edbeba6cd25d757939c544df89bccb7f5e75d25abdab5f6deb852fa8ee39a971b22acfbbeab6b32429f516f9e2a6dc9ab26e916d24f912af8f9ddceb77b9362903dd81c988462b244e4367caf630f9c7ac4d973883e4dc7aba7355b008830b7b452b3f44640e2da16285e3daca197c0cf435a5cc3368e41f913da5837c4929a59452524a39ca518e8e1b6b4972f5e4eb229501d7adbe6fd5715b70ddeafb561d4746092fc65871d0b67a22b9aee3c0745cc7898053718d245ff20c400175f1cb63bbfa54dca6aa9b9d96ab9283b6772bbb6d392c11adf76f82aa2a2d77014b83c82039be7ab85c736b8134c80da28f1b6f7e612d3aaee3622075a8604804372052a739226b0b9bafcc17a74c1565ca38f1217dab8debbaa61903c7aea90b2ba35a085729bf54973eaaa8de367eb5eafa6069f3aba7b7cd6ef6e7c641754d3368f3d264e55d2b292dedcf8d72e3e6492fea8ba96293c23870ec681dcdc9a339755eb7f16b3b5755b4190b3968bbbcf75d6e38ecf6db217dde8ae3d7eac9fc5a0eb1dcc675ddc6417553e98d1d8d45292bf148b26179ae6833a8a3cd8e36c5710176bee9d82cb4c9e6cae24666a1ed1b1de9ea89a3ab21bed0cc102f065f23e594f21e0bf17f885c9879da59fa985655acd2706006ab27c4d5192b17889f186e4455175f1262f7b45a23f6a079126d287186e821b1720254a24c14b48b2162d308b4cb07542a88aaa65ed44694ead5f916e6c73cb30185d149670e49392a7070557c1ed42a74d32d9618737e5cbe1f57135278d4c86e35db30a8a28509c698f17dc6886d025b3482273450a60a0bd8ac51c1ec6e4a631877a6382171c1040b668d0513519bc3cb3651fdaeceddcfcdab7e64aec66d49be7adc94eae66509f131d967e161d8a665d3c262b1865879169494956729cd580e726a543ad0e58b1d373379d69284b553910792d89440a9060225dacce4596bac3cab36639b07a478c1115348c869c14c9e55022bcf7223612c2bcfd2c2304a87ce162bcf4a62a211ac3ccb8a8c51cacac232b2616dc654f040133058811431599a98c9874e12d66aac7cf8346331bc69c11466d2cc19c365261f4249585f61a54bce0698c2f880185ea898c9875212d65658f9704a3eb42361661846cd983963e5c32626fac0ca8761648cd6c2a419a34a61d48c51248a48a34d1d341c5063260f4a49585761e5c1a9192b12e20e0bbcb0d140131318b334563e349ab1a2326a8e88828402178860aa6b563e44920fb348581c86512c148b1c2b0f423151909507d924b9b1f2600d74b23246c41b33ea8051a74a9e993c4893b04663e541a41913d28239456cd1040dc07862269b04561e549a3186928325cf962a63c01c3193079724aca9601a03365db1f2e0990f0fc3261e3c694cc9987887895e961a7961e53fa5192bb2a2f4654b124bac81e68c99fcb724617d86e7542102323cf0e48406accce4bf2609eb1158f9af3663498cb278c102355858d1c54cfe7392b0168195ff9e68dd4cfed3c2b01927ce16183351b5f2ab3b3336a3a23ea3556dc6363a5b8e58a0e58a193833f9959384b5991288a001ad882eea8400895947cd18c389521bc2898a1564916626bf9292b09ec2caafa6244c7e6547c2cc306ca65985598d593531d1adfc6a8b8c4d2719d42b2f56721a130cd18604429cd1812a3379d51d09eb32567e653463322c45c4b1435303c6163332567e857486955f6591b1d54c5e158761b38b8a8dca8d0a8a897e587955d38ccda525556dc968c6188e16567c61461a12ac19c14cf6182bd988096304493580b26606b30ec18c711d19345144194a6d8cbecc5a0a2baf6212c3c3c3b039a1a451c78e84f11d26dac0ca7b5033366993163583b17559794f69c68a8838e3022b456c91c3549b31cd18d7ba68b3e45403830e9899bcd724615e6dc6f84d15a82ba4aea0428b9599f724619e1b2925e51949d998d7c4443a248ce53b3bf249a963c3b98162a21c569e9392b03b12c648302a9b9ab85a13b7d9b9c34438ac3c673463b6042b1043cd192bc8126626cfd124ac9fb0f21cd28c010983052880228618366c662dc6ca734a3306003370e2905933022a8e66f2dc928475182bcf3149983c3746c2ba19934a4a514565c450a38a295d98a9c11a33d94e5816e30452a4d0b860cc0ba6ccba0913c038538416a53388e862d660acfcf68466d3c230094542f1b19246db8c588d140ea4408a285290e1c44cf69265039441c118a42eb8987367d65fa6c8d891b09595a76618d65ad02626fa6caca1644b29edc8c3654d1934a820a366c6849548f2348b84d98075970935d9c8582f2db9e9a66e9a35f96934634557f07c9962c454139e2a66f2932661bd8495564861c419222883036b2c31939f4912d65eacfc549a3119cd0e9ea9139cc942652695b0f29309092b3fc74818aca934953ad2ce1d269a5636529384b19384f1931ba8103603c7d962e56592b4226334cca07e5416db77fa3012483863e5bb36634fb2e8428d242e508caacc6483004a6a4a4a8791316f26df63ba368fccc03015bffaf2aa3a8b84b5ac7c239dd1c5ca211584200d0aa0349569c14c2a59791d666c88121825bec0019344c54c7261010c2e43c0c00c9d28303329caa82943849167032420a2ca4c7ec0ca1384e00b284d8881a2a993b002089ff0a8a44b17094455889899010100000020000316000028140806c3e170602c8b5451f70114800d888c5e7046170844698cc2300821848801060000004144046068664600361bc90fc54ccc6f73f94ded1658190351bd2d5a70dca9c95f32f0333690455aeb2b00490be5b8980e8da8013d086950b11ec2e471a7f66c39fc3c46dbcca0647e3cbf1b1f34b6f6565bd91b3c7f66ecea2d2c8b2f680b11b2eb4337b4f931e0648a0f49b27d26e41aa33848f698a3cdd8a3f57805d99d11401927edf2c8b1d36e40052338c93c0754aae63196a18730b4acd69f31e8b6c8057186fa41b6fec2bbf854408c3382ac28c0a73a9e806d0093add63d7d4e27b82615c27c5136dbfb6d5d8eb74d21b4ecf7fd2a97c95c6258c528f6981c36d8e2af66f2d0f3d67c735cbd2d7ac11bdcbe67cf8dd61dcc8de4e4dd8947d0070bca6ad858f2af22194f5da6ea15e323b94e3643fb46e867f7c75084c5c3cca17248a923221892c814bc74cd5c0ecede8ba6be981d9354e56968dc9284c882aa93c0645def86e496cb88a1002301f954b71561f5e18ed002df49e27bf41782400b86940ce60b6e32999a4eca91a938f6c187973c86160f77af973e52ab90b7d2738b73d60996f5d852dfe60ea0116c90ef9dd15c5ed42781836203f821f20bcdfae753dda56904dd721ea8dac9d15d985be90ce8c54a2bacc3784364d4e17c16e8fda9ca534163bd870e8669861d9d99a717fa022000d57b4258df0ccd5451977943ca696b19d51fe5653a8fc6be837b0cd09cebd543eafdd1f3e3d6aa18359cc4c5967443fe1913aec4b28b6b81ab6cabdf6e6d36f24b563717ac0647b3f01f3dd7f5080318043f990c643a2ddd4df258ee283ebe378581455e0366b100dfbc05e895ed2cb1212996544e900463e0541281b3d781380a000414267fb388ab5aa9201a6aaddc73e8728ca33ff365f57edbd8e71eaccdd72a26848de3cd0e0591240510088006b37ffb5531119dd15bb68e7b760efb5921a6e8e2b4e78e911c1971136015a13be2e380a4e598ba6f0b49278bb89008ca85b9249e54ea3b568a1ea1023b632a6203b040a94d8216f4339f7664b41ae2587f49b0a0f6b5ab942094a1ec49e05260a56103f474b20323f417ddac61582ee55c5d42df8b373afa591a104ed3730a7d5cb4e6fcf8143f7f5e199755b2c3a3dbf4c60eab2017713416033e3e9fe7eac72edfb6f80182c83b089a261ac3b04cb05d602a29b5cd68997a6ca14afefecefac56b876adb73032f341205eb53f62ccf2ee4d0b411e3df5f31d0d7618ce276b693ba387620992fab45dadf370b9541c642ac6e129c4115b10d40789dc232ef233b732e6b1abea3c8721cd6154fedfd8a04c02388ac3fca5a19e307b70984cf008a9ea221a51bd2d57cf44a8339381dccc1b4c7123a0bdb082497dfd74f75ab1b8ec4005def07ea5caf507c755e35e074c5189c5d1d5db3670be19e3743f2894316cb7acae04c605038f180d11f794f5aa18a27ab8bc3670c9f7b8030340584b952945acc4dd0d01f33b99cdc2a213049a07c5eab21246367b806bff7bc7cd457eef6d3105c148dcbd1252827918d207ec0aff7ec9df93420324cd83fad6c20be12bbf2b01b9bb595788ed6861dcc0c8414f0a4f64c408019cd35009ae0ac913248386603a97e3c570c667e1b347c222be962566d9881fecd576b0006098aad58393a044166e15ce0378712d600ce033228da4ac2661279d67222fa0575d71a247ce21a6361d9a5e3c8f5fefcd332e58aee1571b1a52349d2cd20946bea39ae0ea448aaf6b8a321f60af11e1069dfdd4583a8ca68a9b5f4fb6d3032ddd35b641dc9e3a9a65bc783ee481cc06b030e56cb73c176f0511306e529fed41b913db13e11959f9ba75f54e77a04aec7c63fd91ab67587777d0c6483bdc75dd0fff083bba9f51680dc69c2f87d990f229b62670481558746859b24384a3d9a99d7b7daa59deba0bf6649eb6a8296ce95bfec8d539d3634dbeb0b085552b7ec18d14868d248ca46b8afba2af3812a488c8f142349eccb5305eeffd824231230f202d35fad30d24bc64694494e2026422901f9a718d7ece3c7f6fd08157401ce077b0e2c752cb53d15249cb72e654bb1caf3fe6178c235e4450e68f6b0415b69e03a74af88d253b1dd64023f9a03e6b517ae5e90adf489aa04bb82f571097d1401c7a218f692335860981c135cccec562970358710f268c66fae342cb7baf1e8d1194b27bc7429147a366d3123bb556fc0ebfe0887d384083b000a0e2dfe38759638a8102177109117088a0fbd4c6949c13e83c7dc661bd2275490569695c2ef2179f4b8be02a221b12c69eea14f3989c72a7783a1076de9c383b82db80c565677088adbbae745bbe509e7a45104ec6c987edcb16374f1167c1ae657672c9a90c6f780fa1443b616c1b5e81e8b69ca1cb43178954b55e2176ce541db81c1348b115415d300eb8af82402c65f3ff9485cc81cb723bc4c77f7f8b95fbc51675e0b1ede5ced55ef4f0c01e73134ca230a0fae9a5e324fcff84f6b2df8e07e237ae9a9c87817b2da642a6fb4d321a73439a45342d0897821fcb71526700ada0963f0d2e1694349d70be3fb2493cffab09f14547b13b8a72f30d4972bf422884b2cf921efb9bd8151445a0326e8a6f77549cf8fb67418f83acd65ab9bf4eed3007cd32650bb7bf2430a674a7ee34cd9360d3898ed608ad5ccb55ede1a88849f4f69c55888de418ef52c2ca3a0c2532fd41a494705290368b37a5be52aebedcc312ce5baaca8da39bbb9b3e0118b5d5a8dc90321bfa164c5827497822be7116045014a53d01c03442122a0db8006454d4c730aeab1453e776bde500bcd05855045e9f84701d73c34270934a1b8fe262ba08202e638e3080ecf5f9146b20ee02642bb83176152eec5a203f4dfeccded4fe0c47e893ae811f12980b0c750ab772d3414688d8fe67df95d2591d95446e23e79d3b8a261da3a215dea57d69ca8a7b1b997741d001e97727e8c3f4a74d52501ada13684bd3509adceccda86b21f34144b2a415fd8631ef86a0c4d0d32de425637263c48ec9d06fc3441cf36fa642101777b18199e49fa732bc03996acd81402c86fd5761d5ca01530592e4eac0d5d058840a3ee83d57d3d2c1b5fb2385ee9ce7d3f2ef2fb84b41400059c623f84caa6e43b16f25001cb90534c8275ab1ab9f0fda87db940f4a429ddfe05baa88ca24061f427a2e65f652334f5f27eb9a0c2ab0372ff9764ff787be6706c143ee8e143b7e9a05c89d7abeca4531289bb8fdee99b0f3d0a2fe914e61c353228f48634a6194ee78ac2739da4765353fe4daf891070c048fdf0c989d2eee423fa4716cb1408c0ed23c287f7d79208228ec084210ee3887ea85d6e26f043801c0b4b1c413dfb79936e9f1974a85c417df72904b1cdbc3679f104b6e9917eb672478433f143cbd70f6a9cdac6a63cc7be4c19d4503cade1ded0b25fae22fa422194154fe7db51caa829368f01e51f228568bb692d341aaf0400093fbb46033cdcd5fa64fb01984ef7a0f1196b9f0e9ac356d9e2ecab191a653595625f2a412c717f873c9b7f32f4195b3b9fed5718dad1606f50b53e716df61a16fb8576e4a6b906d828c575b251d88d1110f3961b3fb7e74008556ed50233bcae854f78e96837bb9c2777fbe314718d4759463e0a1d136dccc4e054cbb8c889b1c72846e6abb60b69ab3623c60406258b6469cdde28832b060e3f541dc24171a7c2fb9a4eb2f40ef628b79ad5ca6241f16bac76f4c8c6d752b0a3144fcd1b62a0db0fd4fc99147aa72e81650174f4d2ba19542a2ef2e5713874477722ba0fc5ff81cfccf0885b3a015ec400b12b769e2f469bbf5a78314af64f4c1f0460ab7a30e60f1e82bebefad895ae45a931daeeeaf2d0c519b6816c090d1bf1f373df338fdeca5bc567e5575ac8e1e75273afd52adc609b15b0e552fdf1b01ee6ee32f1996453eda38bb0c0c50300ed6866dba9281815000154fab51f248b10bec2b643dc32fc967c6b48fe21bd11f592b3851de809e10034df75cd0538c0ff178be88fcef82908a3fb83a8ae88e82b9b455e44311d9cfc70d0d9c9da2bc65fe53f054e98b8739860b004dce1ac54a952430d3207bc26c653c055b191a633d4dfba733c4e49418d4a29348acdf4bf79bf84e929bbf03b3812533968a3a96d9aa184172e9f8adac2af0a48a59f6dd7fd00b22e24858f36a0d9ae026d9e40afbc46f701a9aead557924ac6ccb5e1b4f5617d9fc9cdc3113ca6950d9068d6763b8feea4a98d39e009cacb1a129c103f951151d05a96c6267cbd8c1b4040a265f428e070a0e059025fa4ee733436441e4c416071c474cae3a839597ac7601da3512b2693905ef8fbfc49372c10d8935702b0829d46806d75d74dc59ed6ab6118f3b1978e79dbebf3a705e7ebed564f48e77f838379e9bd3c7b6f093b2a91d08e1230c88e10fdcd4bf28284091de464d6c09b5578786c1d07ee3e9104ed48bff99fe9e8f69dacbcfdef5f94c783a748be18620c1bf2c29d1d06909c6701c83f5d0d30a0a560762b83bc3bd362d83580ddc8500a622663d11eff243131ff48545fd73cdfdc100876950259222c9bfce8fc28f70bf04e2ec11964148439a2cd064b53c12bee17dcbccc7445466ba9e7ba2e9106673c9898d2e95dee0d645d73e9418e0d7258edbafa079da67a4ef663fb4d1168a977b01b85d67ffe36e52865d430dc2786c378487ba6e846e9bfc0ac8bb6fae5b25dc8a6e2279a3669b92de64609573118b10c051033eaa187a273c6ccc8488641b3119e9434fe17ef719b6a7c2534ae1847a8ceaaaf0e665e5fb3e1902ef303cc28526ccbb86bbd85ff495d5bc149f956be105457c77c879d66760cdd3140efe14bdb00c429822568c74bee0a5985038da6d2f7462a506a090ce637fcaaa940429ed3a2e7bc67fa04e065893954cf0890eff1b9df22f93dd6d1b389cd9d0bd1c9db58323785a586999e4401de03c53b8f9fbca20381aff7b6d5435575a9d6219a8428623460334fc499fc2db46d0c4897ef9e3fe5d13dd43209e6896752f87e846a3642515818d533b848bece6786a6a342b6074e5c23912f9dd4d38912366bf0baa8b085b1cc8b7100f68550c733d2b9b412c8ff9031f29d884fa33529b18859e36e89709392543fa31e035e4dd98b90d1c128059dfa572cbcf897de0daefc91e3beb0422ea402a8ad8324ad8afd9f96fa023e1091ccf58848c3fa1fd98eb0287d40132ab6af31c444aa56a4dd404154c58045fc3ab2100fe398341ffd4447725a2db79be6b5ae8ba4ba265055aa8582a69abf241c5416faf74f537a16bf1ab45e99ec30d8a8f78a4b4b59e6a4c00ae6dc0a3b2181b3dd707b2262b81230acd56b0a6a3a11f734acc6c044e2ad710b180ca40c493beca3b78ea2b3e88503749fa468d7bb89445baa167178c52f69802bf08ad7c0bbb711cbc67242ca8bc8e5e3b22400097af79d7171446daa115138a8acb9c756c4a4a9a0c4c0afc1ef70e7782326d8ee14c1f873f6d9a0e27ef845660f2354340317999aaba7c72353baccc05821c29829af1cf36e13cab2893e7296413c667b4fdb9e247c2de009762c61ba0727692cb0f76f90cecaea812add80aea8d7506c147798938c657347be5a1c8c40a3c7be480e686bbd35110d4209b07fc40a24f5168fdf85382533f27bda9e0f70363380ad823cec60db5efd9448af601c801f9232434ddf261a3677a73ce61d40c27535aae3e4c14eae0ea93386cd20031e3836bc27bffe9acc556972afdc523afca44562d66c1cccd5fae7a71ed8faa3dd3855c527623a934230bedcd390f5f38f03f15fd18c456e5bc9840c72db92d7c331f830fd180b7d5f22849786b9694c414492a87d27365484acb8a0f511cc54a39292628472dac94ab62b9c28632f16994263129313ee2282f82832b9135deacade795b5cae318751710dea6ea23ee61fc5014bbb384cfcfe531e0e67567b152667c1465218642c9b8f08909e357d029a1d200518d5a430d5baac6a68e796e3dd26037197d57e777e499329170d8e56bb119f3dd7dfeb30e9e22b76fb2bfe30e3a3e01dd8c70b3b90cf29a5ee361ac1d438257ae2b81b2f6638d83502d6e3e49534a80d206284501996253e351257c4a568ec617a74730219a69e2f80980d33b407ddba9be169e9ec67c2ad6a7734dfb7c417cb3fa7f1674c51ae3312352a1f390f1c62199a879c8a7371873d7965360e95b76c53a23520d1aa536aa72c18a0bf85dc414c4d2bfdf44815fed07306a410711cbd735383dcc010dff3a78ebffa88f755a5c82c96aed69efec07ff3702190ef6e619f299908b0e54cf68f02e5719fc3656374427b8413fe3ad39df85f5f75e42bde3385486a60213c025c122dfbe20bc65ea228696919c59f69b6feaa95d58fbd290c8f6398670599f40689a450e157096903413a893d41b7b08594ff67725f55bafa2703c64788a72d827b95339c26cf6ce1bf471be074f013b97b49535a94cee7736317de496e7a2a1c3dbf5b70912fed8fdd14cf412f7e9090d440973c744972a4dd9516bd921a57d3896ccb396762c294e484994bf96309476866244cd15c5ee05c1c53975a556573e2fa236a9e3882b91e75e3e777a26fe1b99ed2125559a14840c61a5bde10807d4daa79adb4ff8d08c8483735e3feed1a9f3946aac120f13d63dac04b0ccabc403c03b70ea1bbb3da0188d9159c2c6a5b78647d5e28f1bd0ec47ebefcee6862ef30537ba7d9b9bfcefcb324829319455a173d6fcefcaa52e619efe379808073e8a822be124c66a946c7a33683c447db4cab8783dd31691656c94d56114601f8b5c4b50ada84971737a0419956b5c251e77e9c5cc414170a00cd2a36e64109baef8aac8d39dc9da209766a40c9f646b661c5d9047788ef7a857b40b4f6437d818b5dd7882707de9bb8ff643bd7dfb3756a998442ba1ab438cac53701903f06b8122e8fed93b5404b70b964085f4bb2a5460108481e82d303ae214ee4d01596caebae0445281d4abeff00a527c275ded3579414503c38f7a82189a0d582b2e9f42afe3b84528c62a25a7e418b63c876ef84f3fdb1186baa986b4ceacc63d8226a68de07daa2e7da59086a021387ff4c0c9bf6a4746caf7a2334490cd475df4aa2324455b698095b270ba1dab491751c29899ea85239296e60e70124e274d5c3f7a1ae4aaa158f3c00bf7f6d13a7ece60316b1fc3ccedd87897f69c71cc3599948b322e653546594a926224114ab72fe51ad827df1d22509112903f25f5aff5d21cd58342f44bd775c006f88df50ffcb90ee5f8952c18db9cd39c168f83f0dbcb5000c08d9e1f60a50cf20d22a153b749e5b174adf9bd17fb8411ce078d8c84c22e2b350bef04872a97b49aac80ab134a809495f4bfccce32ef10a83d9fb74765e41c0d6d4b15fa50f15cd23d9557c2384e0f696ec85fe96faf1cbb58fe9c72ee0219999797b7c2992abd30a793ebb20b49b250e7a54732d72d0cfb411500a35ab32260ca0501ee27a04f8b081b6a04da0d583a0f17c6d4f291658dfba3085e022e519a1b17ee31c997d3874e48cbce1566b32174dc64b587eae45031acbc12f5b5be332ae03c93f987570d10dfb30d08ce1a7f2566aac08fab95d7900ac5cd88d0f703aac7342ac5917243485b2421dcd7538d8150bb0abfbff32dd93166fff91deb4b9fa0d7a8cddfa8e4dc9d82892d4c3db4149d87bb11f48705d0628ba9e409e80a15c991acefc05ed90bd6630cc4bf6358416b9e5a872871c8f8e9a37a9dff043dd0bc055e7033ec715b9ccb16dcd9ec190f4213f58467e50865e85ca358cfbe4bcb2c28cb174b5cff0da6de42a73b6d2353a605444e732f8664a81bd5b3571ca5c891e6be6b743b4f5489675c025aa9785e8da4a2d6ebb495d1562b78d0b802239e683c5188510b3f15e98ae99ab843a7fb8d467c85a036044febeb01a40212e9877e99e56cdbfaa6fee4f5593145cdadc8fd64a17904abf963e5168b3e51999510d4a2ae1652e5ad94989b8f3e1bd31a43376c8c9e4e87462fe35d0b51fcb580d38096b349617eaaf3d2bf3b2a09ab434eafe4f56b46869faf2024a493c5d1e0a34acead44b7142eeb7f924e239cd9adc458c15cdceab6b8e595ec4a418e75ce4a532bf54fff27c42518b2cc55a8f42d262a2cf183951e58d741e79c0853ddc63c39aee43a54151a48d1c1f1c270d8fbc0a288ce01a23f3c1aa84934291dd0c53e1a0e259968bd4c9319c30ee3747dd3653d3d5ad4537c38710f152fac83257ddf5ff51b82c018381d65f7cdd1ee1932fc2280e24f72f784d52ff1e577f69f477d48fc4b17fb6d10184386b616bd4f939c05d572511beba4ff5c7ceeac8a515356d22955564a16c21cf0e2a769d775d07c4250fb883fac6a101a04b6c80799253f598ab55738b51b160a0c4653e503c561d388a9bc0081d8fca412e1d018a6cf1482744b0403749aa93e6d0411a2d971bb870400a5c6490f2615295762689da1c9b25303088e598bc50b000aed5d66e92c00c3b45e8764068986860646bad696644a2160f3b34e0b450090be4b0bc42a518cf45325e2b1314c136904e99e0a068814a77dda49224483e17d0f29084a8d103e4c2a56afc410324793e5b7061010721d8b1f489128d00814f11e4556c7d7b5238df96064220644912d5791486811a35e64e7c648baad74e0bac6d1dfefd14a01a9ee42fa328ab4a68e547126e970f7cc52d9094a9354291922b952ea2f4b3cb925eb7497041540e06662fabb645af966aa4e9abede9ad66e9b2aff4d3f474e2b8f4e856ba7bf8fa795b3a7d2af4f0f21bbedfc40b9845059cd504c88285bae2851d0280e7a94e58d94189e14f758ca6a963025604aaa8ac06db1902d1b97d5900f7bf9699f3f6e31e75defc0153af10a6ce7a104542eb706e18410f40b7832debd9d4e6e9fa7ebe8f079b91cdc5e0f97a3ebf7723a3abd1e4e779381f841f806113bc688408584d729b12f9908be4e381a8a31679bcd446a9a8018a899480797a622324ae15efc3b231f9a0fb1032a10f7fef80dfbf05533f6eda04892199977fbc9d908baaf0ec00addbce3117baf2d621f6186b2654122c199008a48fc2c9b6c8e44a461d34449cadc26c46912e1cd954c50f211471ec994f0bbc1f1cc4a56df4ca065c9f354a214e312a62f31e448741113669518d35626fba65d9e4213010688b9d6e4cd83f43bdcc425339634e2a44adce10aa29359ed4e9cf424e751977d7df2ad259b2e409967502cdd1c14321412cd769f4491a1f300218ce2f628c957393724c52e0e873a550a134cb1c67644379b62417c55b5f314be503197aeed432acc985d3e399585565c9e52151488e9759b56716cb0926b56c84c4bbc205b5922b952c52b7fa55bddf02b2e112c14090baf77ab0f8a653d79ab65c882f6fc78d7ca528a9ae59b3fcb6a6f6a98e5dcca5df0f5500c50be429c9986348e0de17b3b5cb13c3cfe0651d20db1568744853e89cdbc13033a281a59f11161db478ab516491e84a41d49641a589161e847869ed0a8b0614992d18d044b4e828f3c9909186538949415e1a92c04adb23c109649305986a16f590f91cb32a62f8361c04c8516b31e77ccd2786626a29c59089e66186b95346358c20564b9eadf720133ce03a32ffd40eaa4007fa7062b9e32d8f62420e05300d84f19a29a4db504f53a701382ba50148c8652f012858251140932a308908d0280825406245208f24941a052aa8074a901064c15e03585c06eaa05ce53118c4f018043a50029aa0e5ea932584ca5204755003055034cac32f0b4aa03fe2a0928ac2050b36a80a05500db5630d05b69a0e9aac1b2ab04e65e09087d15800bd6044758167c62b500164b00842c0044b27ae09795606556e0a56b4f05b42af3a5bd619cf60497b50b34d71e80b33de32cd60454b71430de2ac1069706345c61d7b33d0ae5aa983ff794715a08a47551b0b02b766ab147e54943185911cd7804234dda87970ee24db202545d444aa944d5049b55f0548b1ee682897b6d85b0a3c898ac54560b3b5325a675a16b01e036fafd0d0620b7bed01d8ceca433bcca514fe9cad738fb85dc01298741984be1e27478764b94fc70b1aafca8708fec1c2803174bd20913e2a6b939725e17a5b97432796a51150eb7c37f37952b6554a1ac08fc13f065bdbb5d9e5e5fa7c3dbe7eb76bc7dfe0eb7b7d7c7e9f6f27ddd2e2f9f8fdbe5e949f82cbfd800b28f2764c9585f4d7a5b85a20dc3e0ba7a0b6c03a690746f18d8e6ff216d6e3cd8ce1c036c962db41d9802a4bd63689b9f0fb4bbf3601b660cb15bb6806de00a91f60683edfe3ed0c6cdc3ed9831806df942b6815140fa3b0cb6f1fb503b370f6c63ce10b66516d80e4e0169de30dcceef03dadc3db48d1906d8975b601bb0a140253190af32949b6f035863429e912cf2f45d6997b785981346b1b0cd7ae02a643ca15edfe7974a4ecfb731a1867af9882d805449fe826839efdf8a1c9cdbc9980ccd723c431a5eb93098d852b718ea104527810797a21072a0d8061fa66c32e309bbfae1bb665acba2ddeac65eac90d275499bc0aeabc87b07b6e4155b1b52164c3ff1b349bc1ddb7fb110e376c8fa202784aa0b418d7c802e3edbda70dedb1bfb66177cfb3563ddb91fef9636dc76f7c5bcbd13cf7e6d9877edc67fb305b77dbdb16eee8ebb4f1bb61defb63f304070ddc7e7d53f87c51d8f4a1c6fe29498c48a1f94d4fd5d1d268009f93121bbc96331df65f5fec4c2e2172719a98c4719f50870d497d2d57bed439dc03bf54759529cf5a652c54ef6a14600b6590089384af8a34ca58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20471d6972295faed45a580f7e88d9ae4f1d5931a55bad98b8ac176e88ff2a471d593e21576da87228176ec9fda28e8f74abd082def439148ebf54e25c668ea454defebec498d24a3e98d8a6438ea4ff9aabbec41f10077ea8b2244f8eb4da58a7bec45cde0f7e9891a24b8d59b8ad53aec47f9a077e989e20438ee4369ebb5f4a58ee2abf44c118628eb43114ff5f6a652c263f4464df2f8ea498d2addec45c5603bf44779d2b8ea49f10a6077157703e8960d09a0d11b4e93c399239a68eee74fd4129cc879b59f790434254ad51a278295d689016b75374f74e97f9d3894e44bc4a7347d4cec4bdd17c4a7443e238e4aedfbc5ae04be222ea5e7436256eabf271e4af21171534adf26f625f705e2292d9f11a352f67df17e25eae1a38e58b13213c8fad98c4f40f3794bd2f062d77c3484f6e15afe7328721032e9cb7df1527a6a7a985ad20de9c3371be0f9387ab05185611dc879da7b2028bd5d9e68e49af4c367556286ee33142e817608988a5a8d10a726295ab31430c7de54f6811a6b22d71d54fee78b4fa5524e0810326d93f5991af62eae8fa9ad05e0d824f15806cb652635da6e60d5174bc6000374f1795f98ea65a912bc77df5e3dea0d1adfffc808ab330d878aea1c1d98a12027d183d84a6f121d849e2432a30b022e82395d38aeb6315bb4258126213af38a855a6e8fa5104c2ab13278422ee8d1a80054f120053846e6fee50da72cbedf3644783a25f4c16ae12059bb83710d8670cf342e4ffd105c3581685852104873a32046c140ca9fb60858720e80a22eea06270805391b0a84741cc618d070ffeb21e0ab66e26051b9a16d0b82f0ce06284efaae5f3d00d0d535498b873d5a10a1d420cd488bf3b10f01a022ea07a7c807b98d0b84f51ec63901a89275758e424153263724b68b4b4d5f92aaf9f2dd0e1471b31744f884fcc6f612aec318e1ddc983b5782ff6a777e8f7e4d613349df7ba758bb013ba27fb2694312fb4c639dcb201564363c86b95bf2417629950bac2ec2f897fae30c745b905268e3ce6f93f449daed8d867f666fbed18d620939acdec110ea645cceab8748d48aa3f5bd1f2fbd4b5524884bd5dc7f19f7c902fbc338042798c1f18b476d04e963502d14392834d48e6bab936a8a21560b9c71951e3b916b7167d5b967a1fb9f815a2cbef95a5edd0f138bc32aa4fd1808cafa0299518f58413d3e2e23f29da2391e0e63021a9c3e088789536fb69b877c30bf2099bf46a5f69f77172477b6eb70bd74da74482fbc91ecc7c254a0ed764c22f8f603c2d9d63ebef619ad59e78ada5d2d14e885c5a38fa0001cc380ef4c863e8cccd490037ef79dae9076aa579bfb3bf566d8b53cbb5e376dd8df4ca920cc8981e02f6b3de07079806a8df9e4a4fe4baa16de681a470bab6fd38c14a8c2e51fd211f0b765e04a1dfdc5d32e4dd6bb768d5382582f75e9238e99082f5a41496e606a20956e3db2a60e8f6f163b592489b1c1a89fe780c669f66556d01ae76960e21358f732be9f42e0c13f54bc93524bf6abd48f5101ae29138a478d84060ab2d6d5bfd2a994688c980ad382faeb983eabaa29e5fb1fac29c6bb941524103ce6d11be19e19a47c43ceafa194a670aab581a4f42ec66e4427742ee48e022055b244c90523ae9e88d82c298b810db5dc93dabad90d7f38c2768c1a2ced262a3869f9c01c6ceb08bcfb908ec7585c218b13ae665d00017c04661be2149eaf78c536c1fb11f0f15163e52b91a84a92c8617dc5f1a51617a67e53fc75b7b1a08c89942acc7a2a4855b64b8315d3438d05f46e2f3286583af2cd46c74e907a6e8bdf19e6b652bbebb25e25b52bbc90d9cc1e5bb51cbac50f51d7d873391d40da8d51ae03ec29c73a5e6ed79453d6902507c70627d9cd21c7257d3774f515af834bc95cb397862f285cd6ae45ca75489e0cd8a9c06d19c806b720a560c9c00fa74e2216cc40fd1233f6c9c525477afb997015b3d3fa20a45efd05e4e1f572470abc87b14ff418f974bd6dfad1491fef1fcf79dd07516850fe893dfa930f89d9c0ba6a61fc88b93417f2a5eb81ab79be5fddef779428f1b80e6f1adba3dfb410137c50d54d23738ac93a760030d7914767c851e7a8197a46062860e56a169ad4bc8d3a7414cbefe653701a15024f7e10153255bb097e84fac1a2291b5c8749ed90497d6f6ba2ef1d5b00809c26626cf37fdde48b6fbd5ddabdc28231fa3aab18546b5bffe5fee68ba0574f9fe703857195ce1365a247049531c01ce88bd8773259f0bf3a8e020a1ae6d7ab995fe632edcb6d87cc3e8054375bfd28a79514bdaf9e77c2c3c65501633b82e60e15c8ca691c676248f31d2e2d0be07960255a45b4800d093b2d23c35050259996252a35ad388c8afd3caea1ef8899c262b3185b9c25d2155797f455156ae70ac3552f8b01f4af3c121a0cc672a41aed59b57d02a1745a24b60316ca9dd6f02e5cc80d98ec45cee12fa86a35cfb9468f9f3bb5c3fa245a9b84f4db6ad84402570ad2c03c31c5bd8aabeca94b200cd7c9ec61f12922e29614045b1954e39001a74b202c2124417f04a04aaed8c7c219458f946890f2214f0e55dd73a30fb26d665cd83b496ab3cab83a9e8b4fcc2488b9ccbb66e070700c377d9668ac44e4df1ed689eabb2211c9c050e139d01d7e5db66e4eeeee01a5769165bf69dce06f31b50ea42658d453f2311e751a769232e7ecd68f90e63d2e60f04d395958287586ee37cd7f7a05b0e9e2d67085064005a2a81fac20a0a92036e95bcc1875f3b00d8e11405d1b921ae804d203118c9df4fe495106981f9e49f437d646a8dda1513ca3ad71b7a727a8869ce0d373e13cafa9b180c0a94df546d14dc8a5e062794b5c8857257f6bc035cce915f45a58c2394951a00a43a397f872f59f10f17ca1eec810d185672e26d6c6f3133f4f5e93f8c7355e53631741fa473b411b1a8c448c4b9b66c8ab95945d34b8a26898dbf6d5ae2be0e09030c27f69e9f97e0425083fed83f3ea34e007232d3799364f214cf30fffc455d02fe86b6ac8c5f437e3290e712cd336d2e2415bc0ae8ff492d1dbe98d043f2af4320b98c4182182805a45a669f370c0183321e8631d2b76a5958f144e379e48a955ff8c0533d4c9d54fb8efc8720d58bcec1a8a57aec326ed03d05b2a5f657735a9dbb1422b0032801b7ca82f649dc2b99bbd809a34b94d801f7b0d6c5eab28ebe5472c3a9ff7ac6ec91b2ee6a8affa968bfd1e9348d6fd319f05264fa848942c7966e45b431d796644e1bd7f1f3b721aede7db50c0fe7897c180e161c567e0d99ce26a171f8772669897c25911cfe0d54405c17a43cec60e8fa5f668149880d2ebbd2825e3a58cc6cdda8c6d10dc84c480971cf7d2415a9a9c3fdcc5ab2455ec50335c4115226aeef01154829f7841076863aaa7345a46ba8f2cfa0bb86cdf8b7fedb5af3141797572b8c74eaba3ff5ba3763ee3ec8f623fe10b172301a77dfab931c3f30d6bf2bfd8dc3cde9acc3b64c3f7df54888e3ceab3976a16d214a716afeaad3798797360e423dadba63bafdd586e5d2fd9d1bb011921935b24a0bf2a1835848995ff527bf8e593e01a3b80b09388bf81509589558ea6cd947c5e91517649f39347db76d47da0eb3da51d56c98fd2fe36be3e97a9fd431258e39023c3443851ddde026cb76caf8a780909cff3c556d7392b04e3f5bbf709a7953406b1658d86c3e759372da61e36af940983583504b7d6c9c5aa91842752aafd8d1a0482b44612c4a94162f5918a959baa92bf015bcd1cd4d66c40da0519cf87985041963a8a56472c6d5d966b8a497934ef279f052d420878c789d5700da812aa779d8406044ff068c8762492111fd62b4bdaa4cce6070c1bf979161cd5854655442111435b9d70565da6bdffbeb4fed996da58a46690f4cb336f49f63009f688a8c2ab318a28fefaedc8ee48ad4ea90ec8a36945e3106f8387941d2a8522b69c783d62964dea30cdd183a2df8d122d1c8caabe834cc4a54ed02c549d51d65806f2b25a57701ffe3af6084b3ff998556476f75ac59103558f2831aa73c6f052cd90ebb31252bcd1b5bac82dd16fb526a315d6cf40ed7d8f5d7dcbf178b764ea8aacd4919df54bab883dad176ded024a8a1dab5a7bd2f217806e80ea412a2bc6e8ddc9cb709786cebfe7133fa7417ff40ac8f57209c8083eee720ad6dadd2fac083eeadbbc0c2dc6ffdbe72748b72fc4294f24e0653bf2432ca020450717ce65f2a5f35d95ade716b2d547daa37a5cc3a7cd96b112e3064922fd043d4886f0ebf7f47eaa9904cbbeff230e2c2049b2123a0ddf57caa3afd31c35dd104cdf78db6454d0d4fef1b3d5fd206cea6215135328ff37740c2141be070fb2c5aba35814970b4839a345cbda187555c76c0753cfbd229f4e0b6e2482e125dad262ac51090202305a562a340dd4e5ab450bd72161fc8d61a899f5758ef50f8b5d9d5666b03b86d0ce8e6a0555ab7c157611085eb44ed23c2fa90df5799b7be69d8ef3d782a37e5c68c1f7fb987fa0d529b3e7afff86f1ea908b9a2b8dcc215bca87f03e06a26b01056ed13d04a2cc31192c65ee0e3054203b7c4be84bf0e88e43d874ff46607023ef425d0c60566dd1bfdb362acc3433aa690b8b08ae092aefc1623794498ca4b9d0cfb71d0080d031760e52d5c1d63ac067eff13224ec391dc16a2aba684da81c5f39a2c8c01fd83631f16106516d62a0cd0c9c2e176dc333ac4a81a293c756db166aa5784ccf42fe8f59d999883572993a07039a5c0282626277179a3a01e01effc84204f2ef5b02b26d2fb1a5a902f9e1cc7402f4cbe758465c2c0666d1ac1f6c1cf53cd47d394656854e59ce25881a90348746a2e5cd5346f35170e6b9adf9a0b714d97af39d89e67d2ca5de1c74ad00558dd5682708181add4dc3e9f4a0c04d156fb50ad69c4e078d3d6752473a9e2723ff30cea21741f58d7d8bce03cda24cf90316254a090f5b5ae71e308c78b063a08c299c2553d548975e100884afa9b8a3c7322b8d1d4ad6ce99a8551fb5e80309542840b4f059eb9d115cb3a9efe03a891260dd5b35edb0f8123336d301010bd362f2a5ccf72fda11d6a53b861c9126b40492573e256899949cc12b1fad906cb73880f6b6a16d6641411a5388d8e84a50bf8540734151fc9f8ac909e87233b6475981489892e32052ec5ca16b4c38668ee9eac990809ba0a252854800422166e03ac324429756cc6d73b1321a5a0e3eef8540d8750b57423e9293954b8daaab775fe71b538d850b9ea6ff426de4d45813a5313c621170a1a662964f2520c764b0531d4ea20ebfdbce53c1c4d1cbb352145d70bd51e95bbd9e93620111d121d6825a43e3174a4f4119af4c2a2819c46906d7486a621fe0946559a9847b65c4e6d0a0fa72ad46dab90172bf00d3c6c440c773e04b1fe97a8856eaa5175e8f488610320fe37b7babae768ad899cb9f3d07112d45e10b48b5e2aa37a74b34ae6fad2f11dfd4bed5fe714485c27c44f3f38a5da983df7f005433d494ba8a8cd095ac796154096dfaf1d9206429e9556b11ce1c66233e1f39d85e2363ff4643b772747bc7e33ce93923f2b075d954e5b8ad0d1cc1bc78884d45e0231dcc4c3011ae2c4a45129cf450940b6cab3f9e250f8a70af0ea69e04e85ff395d8f50cc3a53ec229fd3dd2e0add0caee00aad060a2c81d16266c428068df0bdc0a2f6530a6022fb75e46a676ef435123cb6fa3a4aeff571d8d256df8556a98f935d821a16c880fd34dd620006ad985ee7dd1cf7f547c77729e01a20db8e9643f283a5d00a79542d4c465dbad0b2b266aaacd74fa25d23268da5849436a0aaf6cdf456f3f561a8b2b8edf7e9a1936aa771852d7c47768ae88b0bd1ea96c2f8583bad27ade19a7482d763d371d32d4eb6c1ac951cb324d5e76820472ec26b0b86c2fd558e6eb731a1b199cc4dbdbc8bf4093baa52ffe367988734b306f1e72632354db70ebd7a98c9471507b6344e4cae206e1c68796853e022e6432f6bfb6f916537db46968543d6d0796d9220de2f723e0a7169a7bcccf6c63a96f029ba05f3b67fa567e6a98b9199bb23c80622abd2cc0d9234bc2c49cf67e1f922eabe14a46204dd4e5f378191f6f82e0e86bb51a6b71edfe2c449210031f6e4fbbc9cf99f6a8b0a96bdeab57c65d3365d77179d6f93b9dae1b193338a17e4d0a6f86464499646fcd3035075123f867654e6cfdb43c5db9cf4b640a91c94df7e1d6dc3275eb0125b8753633879f43ff6be28ab445b840b5f647218f7bac84f8d8800a220f045a1b7382f1ce1659d8d26dde52704f10f0f3b4442b74f135e07d025e82a8d0a283dc257d9087adf773567054f932bd1b241f54b22ee3b5220e7a1ff7da833184a5150a8148c4a6578d3db732de024b03e7edf77dd038284073416d201cc58dc9476f7b1ddb771cde246012a252cf909ab331de3ed67a6de273eaf81d6b84209ab0a779b7f4a5047603bd5d4a2da10d971a7cb917ba55f3e2bbf4c65ca4ad5f0efdd724cd4a01d9f5737a512fe155366d42d555e6fe297f61ba981fa6d8799529e7446e30b19ffdfe6a3409e584381b4b4d4042286b001ac114053f307fd03666efed038af32e1697786310c2e0e5cd4136a87423c9cce3056928351636f7aa77b10a3ffce918f4c9292b8ecd68cfb2f215594768e212d4e0f52d50a229ccd01d8fc7728acdbb56a2c27d011188a58a5012d685c064a19f32c2ad762e16a33c0f55c09f2f5ab7d30db742a351c0fbd37723a9a007d1e715420f5b577d45d6e7014bd8bb9b115b14c1659ceb6c29e4419b2b127cd3ba61bf12cda19009841c21db53cfaaac52e4f3e15431c64845b98758341e60cfd80bd8d61a50bb5851639cc86cf505ec63154f42a523f74b568422b11d72fbf14708246a9621aaa5255287e9db6f47c40a710df93459d850948ce90cde2f799f6c4a27df21474cf3111904750daf99dbd320f68b83ad02e8991f46465de9774e6cef2ca557a50eba0a97891da70398e309705a0ac2c31bd53e120e7852481b8c83bd8b61e238f5a4f22ecc14288b165e220e44e0f1c06d3421cb32b6e855eea59908c203ba3063b5332b47c3fdc79575ba122d6834bf3f52f4e131d0a7ae0faa90d5fd251e087f003a503bf47a6cb2306f9ed13abe804f558ecfb5606f44bb9cd81e4ffd0e94a7cca5e82c1dbd94eaaa0997e314ea867570a4416f1ed66888df1cb597612bfd4ad0aa3304bc34cb50fbf419393112803497005224a8d3b5fd07ad515b4d09ff23c384a85a8ec8855d8921ec92282ae263b0b3b12263ad343df9f532e2bd7c1048a7915bd39d9ff88172899fe09a3dc6505645ac482e368c8d781a73c4df29e8e0af6b696e2a918d1ce0a6134043f8f5ef8b151c1d856b68f67fa8733715c6a7b1b44decbc45f5feb0922cf8dda125209faae65f887620c63b7aceda27d1c03f56d8e43cbbe3d0486ec6fde318f8a0ff8a7863a19ffb254190f8cda86724a553ef00990ee2aff00e525346f5a96241ac4c8ca4175b3260f3a01293e207f7d5fcfb76474f0aa8266238fc6f4f88c818357490fba72d20bc9baf003587bef4e97bb470d187127882cfe95005389a6cdd77181649ad869f83256604d2712507c353ed04d3c3130a46c88f00adf21cc5d4c9018d0d9a77d05242c9b9f0b0e67012a3017baa6bdff3691ef4bc367e303d9141169f271fc4098222ecdbe5b231fc60ba4c9c4a5e193c67dd7a87da089f75f121949996fa1f991bed10551706e072abb0bb7d4f02ae70156913924a71b95f6f6a188b6006421ab3781bd001219660ad1576cb6ae70ce5ee5968672bdfb5b04926d125e4655924445837d8d171813894e5bf608543e8f1d3853c40bf4dd3f6dbec614383101fed99f5a01ddfb063586fd7ed0b26f40fe54f8e023ecaab8279ac15ea8ed63046382f279d7dce47dd5b8d8e56d9c99c05f427dc326c0b9e5c14c826489e5b6218af154f833de7bed3758f57dca67d5629b05889899225d2883e4510db2db200d9c4effbdd64b7b2771159e5eb40228bb9e37bd2b6e34ee7610f08c6cead879dd0c61420937b117d3dce2c56159333d595b7c2d78f8c199535c9f2126d402251aa5115cce52b3d30e12610624b6e251e7c0e9cdd02bdf137f96c9e1dde78f94cc4f08e3ad092501006d03aa88c27dbbd235a6ac3e94f730f06f8c9d1ee3bb9e1f37ccef4391b7380ebb379d7033033d35a6661110537a0ffd434bef75f05f80ebf89f5f07515111a667df964cb5cab84a402541d3a36330818b4180831f9ce72cfe19c8ef8dedacfc96cd69344b7d5a8c84aacf9db0f224718b56543b2354b80be9f8d9dff9fcd06af2820923967fa59b4f2d7e2a2381fa80e0f46c63c2f8ed2181f64e9e99fcbd836ccca51afdce3df244da96aff7955b0643d29378982dd8a6b3b4568799f70b790e8b54976cc709fb2d21cbf4562d3723a9879efa245709249129e68a2e9778c0501a47dd10205f2b125dea9e4d54385624b481b25a61675bcb32b7bc9ef3b864ed43fb2e8d77f089de1c1978ce72f2eae37e0e4d49d0ba7790bae58d18680b4028c9d28932f73fc685eac7db735e9ac9238291482b9c089b78bae73cb37a93fb2ddbaa8072c37367259ce6f10b492fa87c6dfad183cac987ad0529df118dbcd8821f0e479612eaba49c8ffdd94666b2eb773e1432d929183667d44ba5f80aaa0dc37e0518db51a80b55ece22af2d77f868fcd0a506c20a67eefbdb36b70974b8548376b8cfa5f3c0f13496c3e7a05dd919b952a8bd3cab308e8f0cb29cc9207c37df990619b167951a62a41926e4057432dbecb766650d5fae9004a9ec88d11544bb0064ff07a5665f3faa59fbefb57e610115618960de323f5d3bbc534ccaa97850881003cdbc3d21bd308cbeb1dd1779a5581f63bbff6cd9b9c6f565027615e285797ee6dbdcaee6e733beeeb59f2c43656e8552a8074303d4165a214fa918fdc16efeeef9d950363db441764122c60343c93a31e11b634dab351e35fad2f2d01930bf1bd037d738022a93fd06f15d81b275f79ccdad1555047bfc6cfcfe862e19d181a95c0279ce83e080defe46ac71a3af4855ea4ddfcfb6344a53f3a2e4bfa29648757a1eb9e5c9c52c1f40c7fb2da5a025cecf2a06c023fccea567fe521d8d9978ffbdce122923d63504442a6535f8c86a4b19f5d8c49c27076a145cd9bb1f2f80958fc005666be5751545624d5398b0fad8d191cc89a05396fe37b142c003dc77a076eb0e9ee2002798720ce66336d138d17ce5d6678177c8ad6f52a357f50bcf22c5c071ebdf0b268c7cedd61bf57a2ec5d607dae30efcc619373909684cee288f236a68b77e23c1680ca5047f47912a4dcdd848886f1dd118ddd2c58295a05c81b2a500ce8dbcfce65a6704bfe6a1f9094ae7c074032017ad306dc550960c924d74cf50887deab5c6ea8eef44d99043b3d53142dc42d8adc722263f1d43d1d0e68a233c25b97f38b61b68b6ee715e4874d03e70226de0b6b49c3ecea5fb6210e64295721453538d187b3bbabf2d974d8f7f38abb129d0703b8ff4ed38fec434f3857ce49db3d359030d633b02f219c0cc751f7499904c74185012006adaac4131de844287bc2e7b46c80a4314c5a9f61b41806a2858ed8e665a50d296358c39f727466a82442f37fdd556ae07b615720c0e9e7f4a55241e4941ca346953fd2853b6e8014c9e9e1b78be4a568be8480118cf1fb559c6f0141a54cef4311b878b7b41733ff64be58fe136ab9821b0953a2abab81e1a51df19773bca4930e2d267b9fc9492d257028fb72536e0d61a9f2dc1f5283c27e668e07da533857c9e2130bcadf6b23dabab588abca7bbb35cfe4ee59b768da6e013a2c11c65d2de29532726082339347db743e70a0d7ab17c28d62715e07bc451106c5d6555aa4e2c359b5e057198712ba0a9ed149321f4bc4debde59414ac18240255641069b6367ab9b15349d4f09bc1f6d0a927c6a4607047d45d454c23a4599424c70d3427dea15b496889dd5599b1085ce83b1e99af2613e38a7bb46e879cd35dbde6643535bf2ea61876fb76d72d6755a82b1615370aed8ee6b99fcd36645a4dda77045556b16683be759685af4be6a62a38d156c296f3b6240ad8e34080b739a5674b6eb3ec97ae127a6dcb41f7392392726126716e9010c2115ee8bbf6d0dda79d7d2d2a4f7fc7f45c6382f476f6a45ccdc04d6a1de030a50c4bbf9b67e43d702c3b5226e421e9f35e374c5d909e158ee34870ae37d87359f4be9ff8895039e8d1a147e233edbe537f1393119584b7c5ea40e03af700df603e8e5f54cc09cbae0d97a150ec56719ea421dd292914b9cefe90fdf331ffa20a9f9a7831d1eb667cd035acd5e360f4c6faffad8da3da9b0554ac0b1a3874a69a6e35135cf284dbe95b03d716a08722a1b2643b2ee895d2e8ddea05b92a7da6020d482064206072d175f9fc2d4098e02baff4f0f29bc99ed2b6615cad1ceb265bf55778d623dcf4078fabd22062da3d1944b81f35f40f7c306264648d1bee689f51e8a4fb8f0ff6ba2d92e5d1d20e0ec91c515a13a1fd591dba6041ef77b07c9c363d4006b01f10b8a025d6bb9c5910e0dc2f111f5298705aff0aca5894310fc5c7b19722b78641a7c16cbf2e2b73e0faad6f6a7b0aac997dda79a008f011dccecdf3dd607bae52aa895c74bce32c98b5b70d0c9b241be7d3cb0a0cdbc88b19001ce5d5e17356781b4f7fa3530184f084f3163a2398ada27bd966b8c6e92e46203a06edc8a8adb28fc3f0d70c54a41e3c14cb53b3df28a4b2556fcdae169b12cdc2609516305d5a6743f19955e29684ed910f600e6562700f5db7b4594390067f075714d94665e9ee0b028152108df0bdccad92cb5b74c1cc77e58a662af6f0e56b673926fdf6defc2cc1b2c8fa0fb8e30c1b167e1cd33a512a70ac1e81334006e6481911341c33a2741e59d7ef69d467b982f3017636ed6973b3e1581218cb9013a447b02f62813496a388ffb5c8d477969c867406c1167df8100c7e393a2799c14194d68d6392673536a4c3bd81a15c757cdbb64a4605a8d8a97cd7cca863f1f508451b1a505464f8afb9b53e793a9977e01b22f5a1ebaf1b4779753e315ee145ffe1382155fe760241a9b57dea5ee50c8832b5a4a91f91624ff23b416e96526aaa5f1ae2134e17f269a8dc9ced28e920c2f0de0e048661a5b1a4606e47344b37450e02d782d4780fd188598f12892f9c166809a75f082a6bbe5dd58aa59198d00d2599d84bfc1bca31186ae50c118569049d278cc6e6369f54bcc7216411a89cc942364097f03264b79a366a5302eac2de0e3fb04bc82123709da482912d8ca3661be1e3b4222270b0c742005504d47a8ef873434e5e484b23e21630ea656aea2960d4dc2ab907cd896a60e698aca24c4fa2b8d48bdde92fd93704b043460046c25debfa12e4a7fb0112f0325799c6b37b86c5febcb72acb71b155aa7c5ab582505c446464e524e2bed3f5b209697a0e2a40a835fa017192127a93bee1a2b367721086c60b0d68a86005e037e6aa0732b204bde4ebc4877c6753f47e4a2fcc1386b1d60e8bb6d2bd29329db813ffddd9a4924d3ece011487747904848470988adde7db9a01f98cc811bd23f4d323e1fd2518020079df253d0dfbf2acf39db5ef08bc32795a80862d7ae0d9b2cc66155c76c492b5abbfbcfc517790d5c2830d88206582a5ff711817d85c7356aada9eca9ebed680afbe535ec50ee0290e7d0b3476bf8e046c187c164f3b2eefb15f38b646f9dd4c1042306a765fd0b1ae307d37d152673a88f042403aa9481d14a8f54576cb769434bb24090c913ffa39e0a6d5e0dda80518c479562ff55c313ce4275835057f05d0d21f9770c3b19c00dac08ef2122531888e9d8438e53e017ace408b070b74baca8869eb4225a97bb3ed958d2a0ae3500fdf4531a23d1997bb0fb7923b7bd139fdb3c5a00509c121e5da12c44d1829c1067a42dc3d7abea09b2142d0936457dc4637f8b5bbe31e27b5a919aebf4cdd77e843cd932e2e4d614268b4a0d37d39955dacfab19c605a2764fc758e08b73078da522578b554e7c17c8c83fc45a415987853ad991e2a139eb789fef1fe61cb7d95a99b72429aad52ba1f3abe267645276009f4b54546f04413d0dfe57c4a544bf18021417a8920c355eab53953eaf7ee65a5db3370f194520abd2fb99584156fdae8055dc892e55fd72adac4be9fd457455b66d8c8f371d9b3a46a86f42c061dc5b0541b858b8e31ecb57e761cd1ba01f9aaef345ba33cece53433bb3c8f835242ba834616d06c3b6d75969756624281eb6059fe3c60683ca211358c8d3c8f6399d720588490fc59e3c9178397c4e2cbb7facdb1666f7c6eae04cbb08edbf8b80b86263dc99fd7e0273269a40bb6c44c8fe59e95024799fba17a3720d378103a7a002d68c99eaabb23330b586f5c2a1331ecd5bf799ed55ef49e770d4070884a2f7f28bb7e4720d4ae2b49f747090d4f04a483b137ffe3b9f8339426f68ea39b03b4f71b27fd0e6184c0ba8a99e2c800cfd6a6ac818922c0f8b65aa175826fc317dad0b1e4f03602e1ea331a52e3d6fa3e69154d223b16ed8e95df075fcb6e7b11dfaa8d261a8b75cac765c81139480087d02c6e66ddf58dbc86d2b6072136d7169804500c0f64cec47e84f315e1ed4e15c44b01a7a97773fd9d916738ed06beb897de8e8658e199bf6c3dc3cd97bf767e79a7291b937f22e97cb95b314791e992c9eb325c32c8ebb0a81f5073cb783548755cadf758773fa6eed12fb869ddb4176dbd74c9a71a46c44a88a11bb7f23f279a6e2919ea6dc03325413ced8fff3aa66ef7ed61f64af0a73e2cc1252a7906a7ec29fc755df1d74e8d1ba63dff436cbf53d0f148683da034d88baf31b682c51b9ad5174c1b9603c7f756942ce763ecf557acae10200ded9059d9f2f337bed276055b28a20ae621797bbd57a992db8961e8ac8df332e434583b3fe3f9848a6093d58279348fbab0d6215485e6755cf11c6cff5fd928f30e67f9b908102f7fcf7cec99bee70233a6b3782d58d3cb4b553e73f62ce14a15c3c1e826ecaa61148d3511ba1084db588c10aa385b7b877ac572e0162226b64b11bc4ed455cb33819dde332ad2ea60d26b349fb964ca38d87ebe7d49ca94f1c1057c85cf35f9c6ef31094534a64e24f561ab9fbf706cc4164960c286bcbcac5d4e98d2d19475bd2c7774ae211a01f93de9fb664b5b301a8ebab9f62158138fdc32f3b2374f14ab136a3ba839f7f095942ff74789b7ae0dfdba0b2db177ed7d651ed3b363bc96108cb108921102e2b31a93b1d6452c253188f923431013a283577fa344dc500b3ff0f1740d1022ad282d5a11e86bed58683807c97486f258cac3f8ba08eda568aa3556335a146499bccf78f34d5721963a08f3d000e380d38247a5171cc67030b73b12fd16642fa01cf1e8097f1821ec9a6e0b88757b1df42808287419b862f25aef848c45daca1d03d0e082bca82a1967176045870f008aa64bd119bef934cc987747f608e2077dbe13b7fd8ad6924fb3a5a22b9f5a770883a4521c7184d2e0e0c25bea6ff8d0f74ffd2d6ce29272ce6339db953b3c96d02a5c1d0de81d881ea3bc703c5f12d0f72606104964397818d50376053d220e1e4009c0d3a996d43a20d85a7002c1ca91915101198bd5735e794221267611d59379d5203ba3da6f9b502deed70cc930669ba33141e8914c000e264696886134b63651c33bc30130f8eb92671229ba7cfca9255faa55164f667a1594999ef477366833429fdbb7f4070b6005ee6fc73f3538c4882694f5bac8e7e3d5a5e74f5711e348479e16fb4c00b4bc9083548fa381d4c220f38bb53d0b540fde9b746a7e5419580757c78e6ed40a83385a442ae3c425205213fcc9b62721b4b2749bec6d56993b23c597dd3db0de52b7a6dfa22a39cdfa8713211ff1b98b6d7cde8aa776ba27348a7dcd6218c28046cace6779f284b5d7f352b83537e484b00bb3bde41af46b105fff152a1400f0ccac7ab5a340428b89d4db15f0790de0a5866933abe5564ec7de4a0244991fdb05a2b8006ac4cea019f36e42e8f160c2c084aa8b71ca41f5de42aacbdf921c5be7be8fc4919c4bb7c56a8f8519e3fb08dda2f123c8b9dcc80949b9c7788b503ffb80ce41df866f8516bf8b2ea2722c1632ce0854c4d7af186e40e8e55962dac76a5977aa920de7327aa8fbdc29b31aa2118622e17d5112f1d0937432a9b9aa639afd5441957f76402df3fd0c47b3dd0163e7021ae659c12ca6b21bc018e7b026d1bb406fa75037741976b19ba2bfdd83262a7083341f1469b5e6390604efd157c9b64006cbee9a9f6d11d8f19e896375a8e75f40d6f3e447806119b95d4886d83228caa97359b04de5ad15793802d29eaf5379ca51aa51f5394f8226a34fcb729a61b7fda493146e6786f916e51e08f503ee0e25f76c0676380f0d3cebf4708fc7644c1928fe1b2aca6bfb0bf405b65de3b28f381e4d81d825dc0c661c01c58ebe274f2b36a3212e2ab4d4f7fb70f5877484fd83a1a563cc749916dcbce5890ef6314aca041c88ba1430d9c79bd7ac4362da9e0baa9499684d6b6f370622bdbb65ce879db96898e56de8afe112c75fda7ce797ef0e83cd113d8b663b00763028ccb2a66995e9e205919e46e9923ef2da929938102dcb538aacc1080ed2eb33e62abf2c4eb5e2a0b1cc67b47458a4ee9d20b5578076af8718f96fbcd42c4453c79a6e6818241fadb1bae032bdb9da1b32bfc3aa856edc5d6e13a8e4dec08d1d98fb03df2f711d269f3286ed394ff8ce902edb91435e0d093f01007e00fcf07bfb1868d5cc41b768f06fca5d56ad3c349d082d34923763de7478401152887482b80662ebfa9f6261d64fb4ee8d46a47cea5e5c5ece50320e8ec97793a53e0419756b500d85958cb9b6c93afbd8813a1eebda4fcbc5121a7e5928d0ddb707b4df22fa98f29ccef861398ab41b8e5082a5fd85f0c634cdc28598f4545df39294b3f3764babc6f0232db5c9f0aaf3646be36da3bc453d71ac40a11b87029b380af08dd38b5e8772d4c8a1611f81f5736a8a68aa9cab234b0f428cd8bdb6a5475582d2be6457dd70769092c3c4d7b1a6faa023ef7f8e4d06b8621c4750656abf5552a87c1bf8a1a4aa501b466254e7326e8c6555aaf39693495ff8f391f63ea14d9bfd36d047d72c027f2c611b10f7e3548ef8cc2603a5f21c5feee0ade5048b17235875bc53a50816754bd0340f0064d7ea128ae197e0ee1f2e826f9ec1109810adfb2cc9b60490b0876a67b4e3815d43fbb9d2dc753df9f228e1a0645e900acb66f45de210172890a936975820d8039f5e93f4bc8c3897b2b66e0e683e49e282f37c0b17b5f406b2a368730e26008f6355e9596c764f64e3596dc9b8a30f135db96e24a8e5919cc85803e380f35951404f987876a309829d00d0a56612e27d908b4a6d233ab7d0e84184ffcc4051a52ce45fe7730e480aa17fdbe146cb7c391b8272f41f7a031f96e6502c1ba42655d08f46d3883c6d2a6768a9927079fb8a2cde2346eae4d257a8a1088fbcf7596c9e4cdbb1ac3266885e0c17d4da268e3b22ea3905888ab84fc1d80b244539f1a8f0d3c68dc5481d611ff4f28cd64b961db2e7688f5b73e17a9ea187d019a9d1cafbc84286f65d0f3ac5c6ced68449e6d4e16fec6451c5e706ed6005ce47eaaf23da6bee3f0e85b9f1feb2c560c9a1cb150df69cb8f3d08c6cfe8d060899f1235b2ee95d31ddf2c1409fa2ec2fa67ee65d2df26580a344c133a2bb111252e825401c86a19722001fc800e41d37780828acc73a1375aac2bfc56d02a1b57c02cc01fef234472f397f81704e3e082abcbfa6c6fb106f9a3ff093dd603f086c2b80e987a6b45ed690e2f8640ac2eed2d0a46106b05c16058999bc0153bd64d84c2592e6ec714895a973f6346029414033a5ec2765c40d855a503f9594dbcb836f0f782ddac1138a3a18c1ec762a9708a0254efe4431b48cdca032c42687673731dd80db7da7b8fb08de5cfd0bedbce85a3e316ac65151741f14ca5d3750b7b3d3b3ec941364424d97bcbbda59432c9246545076d076d07eed4e7ec76da0dbbf1a8bbac3bce786473f49ccdd9ee6963a3208a7eec6677a516e76e77977d5dc6c002430861cced22cf095ff017f193ffcd77779f5f37a54bf78fbabbfbe7d58010e2762f62423084104e3b63467d4a39a54b4f3664b9d309e784744e3827d4c25d3a75af743a719f7376d09db8573a7dbcd2e9844ea7d387ce4aa713af743a711f1f77e25ee9f4f14aa7932c7a832b0869a0d6ddd229c417773790efc72bbdbec71871224e0c41ee586154cd3969751c9a0d14c9001ccaa6676f2f19715eb031e0f0102100fe9b17221ecd0d0d45744ca744707062763b9ac873333bef686e349922ff30d20517a95123f2d88fd25247459c488371b8a3121c196188474017fa69129126ea401afd5107421af26550f512102c4ee53b8a5fea134a7ea90183846c73fc1c32ece8d3fcf8341891e3df5079e0845c97c8f5a926536d027890e484cad3499e109e0e800025ac0442c210678169955160310692040653b022891d04f9011640db155260a1891318d1f30397ec4a2015b900d97b8234911d89a4a1a1a1b9514205d995c8fe36c32513cb6b33b22fd1823c82ec5f23069806e49041872afbefe8136422fbd340810a04657f0cf409cbfe19c8aec411b26bd9957092fd7df46906cd136afa24c3c648f68f4222cf91ec4e24e230f143f68f44f80e1345c8fef1489f2015d93faafa047774b0939d07d93fee4087ec1f95f409ae6ca61005b05304d31113c10bb6ea41043ab0524230000b9c22411820a4a3faa1a504100cb022478a20543b3b47e081015704e51d26371b102f1fe4e9ebba749040a2029c65b88384121b20d113041254602d24b4600112449949aa5f9c60c2091dc46f5142933dc31d2776f2f72fbe046c5c82f2a58635e5902e3920840fd31290300859f6cc4ae594db133866393a13824eb7a6bf9fb9bbbb7be6d7357777f71b0f8766edf96b1977b1cb56df7a7066c30524b613f9d18fbde4b0ee87fcd9129b73ce88531fa6e79c73625b0ff0c72201185353639f3ed474603fb18bdb80add4660e755bcf3a60737c538ed1658c5d8bc43410bfe5bb440bd0e05afca4e4f7f603fc79053cf61ca2ba0fe1e3f8d88a04ea5f3f837dacfbd16fffea7e20d9d16fff87fca22ac678d9ca792cca89aa0802d82613441ffc253bc6bd48177716980cd0205dfc2d97e3be7056baf8cf280305fe609107faf4997c441ad75153737dfd1aeced5f1d97f380dbeab5e731322aaf2c306129c8c1dddd8bb8aeebbaec13bc480e16974cdf1294bf7fb13f5c38e79c2f35e6ece67c88b144f5d349e98c10876e497361cb676346e196f6b08fd87d98a694524a695349ffd2c7e85fb652dbdc1605a52b37f4e953f1c00628c556a2fae9afa8401b6e71da9da07f3da3407b9409b18364da20c8346e1163ec9baf712e6907264aa3ada41de0ebfd8340e567d3690f94f4255703c7445f85297d687b7a249c144e1a7bb04ec7c6c2110a888230d2a845a6d18a18844ce943dfd11eb51cfd4a03dd7c80bf48e9d30f864f9f3ee893e9d33e457ffa1006b4319ffe4513a5e5b9b00523811b5b9100fdfe1964fffd19e467df7fefed951b2b3c3ac3bc121f7b18d3dc4afceb614cc6adc4dcb658953a6cb5b556d833b8d77ef633d0a79f753f90ecb8dd4afcfb6325762b3ab2bf9f753f7c2099e107fdec7f20d9413feb56e2cf0712f3c37ef6f777647f3ffebd3f3b1f188c8131f661cc8d9a4cf7e0e18098fd7bc86caf63255a6e256a72e376b4077f5624903dfd19b2f9f77facc4b74f3ffb19eed7eec7ececd39fa1fefcd7fcde8cab924a18733918036364062ab035815b16484bd7812db245b6c816d9225b648b6c912db245b6c816c5872d97077f5eb63c38727609964f866cab9d254f72e3219fd3f81119e19779b2c52245fe5a240bee4aff4a7d9831acdb767dfdf5304dff93f6d3916bc7a388c308638411422881f4f41ebc61f6ce1173d63972b13bab049652ca187470e3c3dcdd57a7bd588772fc89f507d2e001c7d8c187dd156285f5d825f89345f5672872b27583ebcf1503351cfe4bf027575a784c937680e7d38f346a3aeadf8d8579b42948761064b7feeefe96736769cf9f72d3fd371ffcc1a1fc9fdd409f3e161bfa144f51478d7c6c2d4ec44418ee0c81a6a80918ee0065403af80918ee00d5e4fe4c052b77770e86c01a1d13ce7c209356da7d25aae1c84c32b6c0f4617bd6b637bbac3d20b63d6d663ebda1f3ecffe25722b224a5ab22507b92e5d3de11b80912d4a43e4984489fbec892421a15573d59fe27877c9047b64b93e9dff35e5ebec8e2a173ce3929a6efd4622ba555d92b7e7e32dc21c24ffe4c3f3ad92451912732d9a28585504927083d19ee04611559d147f6b4d792c90a509f3ef983aaa9ad9fa1050449548c41d5d81510689e340a45c5a44f70470835b93fb2e894722581fa14a9c8fd72d52b198984cce953aa4fb2a64f387da272c84d118eab3ef1f409eefc0c2d20c72947b0454a295dca77e9b78656ffe272b81ea3f47a88713e80c45c22904077bde468f7d979cd4ec6559fe44fae79fa34bf27fae4f8d36a4f36517b32fde407fc99be6ec59eb8aa0f8556b266b649067d8a45c83093b8191b9e9e51cf903ec52c32cc989bb11972836f88e85314ca308fb8191b22724839407d8a586498376ec60628082588489fe21519668d9bb12182938293a44fd18a0c73c6cdd824d129e928e9530cca305f6ec646c9cac54aa84fb18a0c33c6cdd8080dbd188234609eb161d2a748840cf3c5cdd8b0320c8d47cc33362c4803e69821133228cadf2c923348ce21e937eeb3ce5a5dd2b4d7fdc4ae74daeb4f02a6dd1775644e0df0d743f2a6077fb148a232a12189ca7e660b35ea4ad22e3f1275c59a2fd6c8d6b401b44a90a0f21a470f17f68936ceb57dc2d6a2dcd66f0959da718840ba65eada3ec5f852e3bd5abb6fbeff857176b3b3300688e3d0dd42dd1d21b616356dfdeeee865842d143c9880b03a4d1859e1d3dba30e505694c1c305b48c37d4eef2774df0db685fdb31c2710ee67e9ee0d616b71d3ca72c02844b853600d0a95265e9670af2dda5dba4b6babbb7497ed03d3bf6081ac954e57c97027892664cd1652ac5aa0ca8114383b4811847429bde7a4b0096dcf8d81f6a494d1bd2d36c1873bdedd33a248414a395dbabfb40767b47c52ba944e6d85912e50ca39a3e5a56bf7abca775a650b8b108e6f290cfee1185d802fa5745a91707777ace4561e1c1fd3efebfe152cb998bf95977ce5cf5ed8a71b66eeb730b6ec763967d4cc7a73f59a19f77573df7440739fcc2d65e7ee43e755e9bca4112655a062747a74f7b087eee3fa347907572d355e7899e18de8acf5c2bc5620d7f7899dc554c2d65daeebaad8e5dd75612423346e420fc3deeb3b867d20d7f70eda3aa90b2d299deed5d238804e298227b4c6455a2d33eb2f2f642c926240e8625d489c478343efbad7ed3e0f4078f96031993ab8c230ce192f2fd478e8e2d190b1cf3407d44cf1d6d9eec2302eda2bdbcc5ef6c22e369a257c1b3ff43cd79bd18bc445e8321a594da6e6ed2fe662be5b06bd656f783402d239e906d9757da4117ad7fc805f344e20ba0bf247679f693253dbe2d792fb61a6c9441bda451b21edc5547628bd35ea910e6dc22f5194e0c67fa9e1b3448b5f0189ca400a92d06471850f8d504c1c821424d87c986418608042d9e79c514021cf2676a218c2b4440e0d144d703b501c21cb67e9d3ff00069049963f8042962c27bc541c2cc1081398700fa4b08326a46864d3430644ce260410d7879406031eb0944da6a3c3f5c3d05dc2fa3084f9c0099b9aeab9a2008207561182e08166c70752f86107d50e3ef4a052810f3fdcc8a007213dac1c603c14b5e98994b52513cb8b1bd36572c410121cd1029d236ad08323928826531234785989a5686a2f9ae28c3109bb24071fae14fe4a570f76c9c5c3c5c375dfe1d6b2b21ddc28dfaa03fe60900ced750fb434f8832c1df273f429feecb21a3bdb9e8c4cda9391157ba280e3b74aa8c2c9c5cc390062713d734d66fb0b3515d8441556d8c4f8c0a10e2949713860d6be6a330a21f2448bf438502a5431483810b3cab7d6d7cc224ee9573604ff1783646b3cb0c701f3b57130df1b3b766e4d4546e53be6db19ed7c888a237bc8f5a1e3401a54601833d424460de561fa5a087158913f62c5d4a118d2fb58911f853842958a8142b0620a3d313820b1bf229f1269c5d02439311fce17cb02e63a8330d5ea39c0dfb449f9faf3a64f285fe7d377f1b3e4822bb968751231393fd23c4aeadb205cbf53b753d8d52929b38fb60afc491a2dcb324de67ea6c9647f214ce318ccadeca08f1fd3ce476472c54e0e7e1cea12866290d807121333b78028c731fd474110a3ce5686f1df24ca75163d01513aa4c8750e21d72c72fd89e4bfc944ae1307b94e1be4fa7307386dfa7473fd2904da6817cc14cc207235d518b5d65a697d98aed3a64a2d20ea25aa749fc94180b7c8f521d45e9890aba4b14fe0d8d3e483ac1de8902ef53bd97d266d06fa920673b011f0d51411f0075bddb16fee4e665128d7c749602c7f9fe1bd1ca77de894cb20d7a79da2e29334ac692369644da3f05b8b65181733fd5490fa5e57906b77d306d2a86f99e0942c6a289fc2f940b223e5694a57739055a8420c92c63ad5a751ae9f4ac763a63b7f1c307bedd5f78fc1cd68affefcc1712806b557fff360744038b02efed4875c11dc434850e0bee9547bae835f7cfd8b5d7f43a3f0d7df409fb2afaf43a25e74d346bad477d14169b18b428ad065fe9522dde43a5bbc19b1e78cb153b97a8e8dc2e180f92a42ea6c3e067717e79af62251d3a69ab0ff6c9e3ac09daadf43fa34fafa4d24c2d05fb5975aa7daab3fe27a487b55eb3e9bb32692eb5b205c7fdac8db7d164359df716afdd6220085b2fd6879642bbfa6cb932b93c0f13f8701fba32e94aca1c6eea3f9ebfbc7bf5ccd50bb2010f3d5458ee6a7587e91d9f665880b5b3ed3c7dc36bac12c2f51f07548d415c30b996a38b05cbb8734e85b26d83b1f4876d8bfde07921dfef67d5c9d8f8a8325184113633b1f56bad0f7b8440e4d0c8c41d281993f165adafbf6e86f51c0fd2c7d6a18247352f609ec3f9fa55d647ca1013b684caca27f9309dfd6419202cb2e4707d3de16050cff83aba6c209218c085b20ac075729b2144659a2e788d50c321d3056a4c80aa6d00321787a90cab907362dde8c276e80b8d7bdfdea68bbdbdb9fcb90060eb95b59eb25b6704bcae8044465a52872472625a0f68ae476f7e720aa71a27ce73eefcbe2d792bd947524aab7fbbe56dbf540d7bc05101589e29322727fb437c05f479ce8b0b7ca0dd9e065f931a8bd51965d048a114ab97d386455142e18b3d1e32771f8af8ffcc1a4bf31289348230eff68347a12f745a23c7a38eae28b92d193b627ed585193498f474fda9ef4b7667595f5e417ffb56059d470cc8f99f497c47d1130e93f5366694ffe0af0e75d425e9a48f2ca24920e7e4f3d00772ea4f31b9526b8861b626e826bc07f43cca4574102fe3cccb512ae75da9348c0dd726edded91bacf86489449ff7d2275df9eca73a80a531d686334e262a647d0d15f6c7447a36dfbd1b65d2ac0a4ff5cc77388720ada8030636f53570ab0e3b427df7594f489f4f27d056d6c2fffee901e937efb7b1f73f4459b21fdd66d2e9ef4518b00e95d5cccbd702fb4275d745e7bf431d7819871b7a33de944da93f123a4e63a9086fc8b08fe5aa51344946126fdc5b218351992cc9c23bdc67d9db57722fddbc3f48b776e7ba8911ea69d880be913cca5ab922ef2efe8e5371018bb0e0b2c984c18a7a08bfceae2257e59eab88bfda3e6a2b3c1cb38df51e67d223d894422919e8328d7812ef2494f8a21fd9531b694731b3de662cee48fb84ed29efc9195d7933c0948facf974879fba4cea6242aa5939d0c01c65d0da4c73f92a4c724eec6087776c4c12cbbcd1c66533d3c57d7e9313b9fb1e36a3590917421d476659f10616c1995706b90409c6574efe4c7517c37411ad663126e86329d634b8b0669e0689b1d47a75d191bca0d768c4410aac2c72f0c05f883ab8769408efbee6fb31af2457ad9fd62dcc6797b539b9172f6669cb767b1eba2dde740727b758576387fa51ce5123778dcb87123422b514876743e907c45fa67884ab0010f68fafb070e1d0e7389218cc4c88ea63b1c64bc809412626b51d4be95d259bc7329256c913ff16fb09a49e9000b2515c3300cc32e2edd8744fda45b2c685969036d408b311c9f6b7dece7df4c9399138031d7df58e4faca15b937cbe2e9c6783527c309866199c52c8661d85f8b59ac5e4ca85dfa47ba5c2cbb1986610fd3d9c55c50a4e6c3b5c3a5835d7209b155ece0c216e0071d629411c935611d2fb91fbee4f89dc527eef51b2d16b831eb19324a01e3d070fcccd81b8e1832bc71218dbddd780143f72dca282e11d825b60abbc42eb1555c422e2157cd25e412c155133b06517385a0b5e8337a6619e30f2a593cc950890c77b2d0c9376a38688edf9c0c2778ae20f798993e8134ba9b3eb123c0df4633379a3ec51b33c78f3fee2fffcb70369a1804d322498b6891cb0e4a26d82ae02fcbfae42581832496dc0bdbc32e8b5db6b978efbdf1c61b6fccb218b3786f37c39322fbce3e07b8fee7c1ee8e306b82e5d7bf90c09ff7f13d89b2d6629be95fdbb623c4482ded5d2fd046f6f46fc623b60c90e9bbf680feecafcff4675dcdeebddcccb5f2881d883976182703675d6509b56ba173090ded41a07cfd25674366cafa61a4e4a08c96e57b88ab04a3f855c8a08626a60019fe17e0e98550c2bcd9e992092c8864ba592c9bd483bf2dc36f850cb717212004b164b803049e3c454d863b44e849c97007082d558e9255fe0c5749d4206baadc4264275dcaebd2a59cfe73d659679da52844c621f3c8cd24929b883c6fdaeb160b2c14adb0428f0c193f2c2caa95151d1595a11831724ca6201830582f5e0459b970a12a957e52525a28283d24d20dc639a351d0b6e1689a4e96adee1d823660c61ee6191b16b401f3f5306f43e0cfeaf8734decca32b12c2a447fda6b0a944ba6773b27a63fee348832c18ab027d810d60423c286b02649e0ef0ec18fb6be1b1424747f80220c58939b036d9874746c4ecb23b9adc5d8f4de4ba44974daeb6f31657f539eb3c392f08898122810b5a0d01a72c29c42d29f643417507705b5e7c43dd77ab1dabb7ceecd6e184d91e5cb01333301cb975f69b2ff6de5a629b24f6e72669309a1df0297430b4f80395b784880169ed2f92db4d0420b2fb9d9827b0b2db86743329bf632211609fcd1564ea6ad3e7d9745d4a78f1ec9fdf2863229fab01e9f211963d2278cd5a7ef0ef9441884f4a907da803f9e5b67c50acaad211974f9604732a6b24fae9e9bef0eedfce4641a19ee4c5194e76cb5f864eebf3bd4f2274abdb7df03f8cf2480ff70005a7f2f9b246097d7d13dddf1d32fc000f86b5bd2e56bb4e7ff5f3519972e068fc3a596440da0fb4c02e85a5d005ab9bf8593e104d3b7dfd29203b66476e586771d03a50b8c0400f7c155c77d574deee7b81e9e9ffb6c13cb240bc96e3313a4499f22518699056e264893d61443f9bb433b5304a1e27d32849bfcd92128695464925b447d8a4ec830afc0cd04212aea229e3ec526649865703341787a648f4f9f221332cc2cdc4c109f1fff39d2a7d8ca30af7033418ea8a62a499fe21232cc2adc4c90243a5447a84f510919e618dc4c10a1a13a44449f621232cc266e260811393607a84fb14986190637130428e80a62d2a788840cf30b6e26081316c60aa2a44ff108196617dc4c1025415637c8ea489fa21619e6123763734495a97cfa148732cc29dc8c8dcf8ff6d3a44fd1081966146ec6a6496b6bf104488a28a288228e1c3972e4c89123478e1c3972a488228a28e2060b9b8cf3cdbabb1e6eaf2218b6a7434aef0efa5cff2b80ec28f786a125bae0ffcd6ed8d227fab33fe6e624f4688b53da929bbb628065ce470ee678448b392fc0d1a62927c3099e4fbf7bf69cb355d3c89d7fa1500d1310f6c161624b98e56bb93a38d265e2d34d4997ce9ec9b4719167f526e993567b6137d3b61126a1acf22db97801c31443658545c60a2c3cd765d97fbe2dd90694e7b7f8b437bfd3645a2da256006e0032cac97c53d6ae6ea502feb2562b236a54fdf9770019e53c93b82f6b65445cd692383795b55aadb8a202feb016d6c2885ad086cc1325aee26adbb62dc66fdbb66ddc6fdbb66d307edbb66d63f96ddbb62dfb6ddbb64de5b76ddbb66ddbb6cdf4dbb66d9bffb66ddbf6e2b76ddbb66ddbb68f495cfcb66ddbb66ddb564af98dfeb66ddbb66d1afe6d236d5fd264b66d658518cf828c182e8c70cfc20a3256626c294660acc480b1a11861598901632319c962c0d8326c4425068c2d1b1981b16577336282b1655733e25b763d33f262cbae5f2331bb1e31232eb2ebf132925d2fa55cd9bd7465873ae5b65ec315a8bd799b34a2d848c3b8a64fda4f9b9c5d94213779aea00d8903a75192c5ca61a95ebc7cf9a451d24ef9b2a84f2bbc7cf9d3287719e472c8a54f9f4a2f5f266994bb54e292c725932c5faafa14e3e5cb54a3dcde609c7c4279f9dd84a8f5a4256b86fa04a3a751339562a57e523c7dba2fbf8968d4b447721225597ee3f4c945a3a6b5c1f2e3933e01356a5aa1dc6ad2224a79f951a751d4ae704fa6964826e24896f425f6261b1c6972a3284bbacc37097d32348ab66ce8530f3cea713dae917a31b1e0d297a16aea5ba44abacc1ed9cb178026235759b6242ac32b9f9228acd54ab552ad549e188ba562a95813c31c73ccbd255198b5de4a49d4d56aa55aa9d675cd6b5e73b224eabae635af395b12755df39ad7b4ad56aa956aa5541265592c154bc552b124caaa542c154bc5cad3a6a4cb7c6b53f36b4aa26a4bbaccb716e3562acf7fc1451e954455968c9fb3aa5855a562f9cf84ed7c395a216bc96059e93e93a9fb30ee02b0955aa617ad52ab458bc132bd60955800c85030d58b12a642c154f3bb0b034bbd286129142c85a5f27c0ebbad124aebb6642bcfffcb05ab84c2ba2c399f051b55a64b65e7af5053ae14cabd52f24acd974169abd59af98b3cac186462759695e7afe460cf9f5c59d5b52a6955d4aaf06885e8499e44eda56e4ada14b5a9cb55e836843bd79644612ddb226d314aedcd0da85de66f4279c274654914d6b2b8b2f206c403079adc1dd69a4158cb84b530d6caf34d5a5cb537ff2a82fd31cca74fd8fcac2521bc1ea6b3ce240e66b9ead3b7b164cfec2c79286762613f7f03ead3fdf96d2e378523e79b4c18e3e469b1e9626ec455e8f56f5c8f986fb0b95db8336585e3733652d90267dff7592a4cc01ff6d75f4fbb1eee4300ba5591e77f2f99ba64fa1c446d2c4a23849700b26b24c0dce86b9c8d903c9f729187a54d37ae567165a170537366ad3ce9160544d99f1b15797ee46994ed6a079b499eacf6e6f7f06c4380e54fac8a61838a524a29a594524a29a536a0f429a594524a29a594524a99e0a6f65c47ee8f52daf092e1c796a13d6b313699decbd146ef0ee506587ecb90d90ff2d488e1e5056fc67f2ca51ceda11881539e04fab789258a4f32ac1192e1a908b6d92b8a62d6df296823663e58130c9169d72366235fcb8c79b5c4c89594eb95ebc76ee5fa16e8c119f0e45fff059eecd7a87d7bb1b5eb997495d8a7daa34f9dda10e0da15917f41148cfde1700cbfa1ff9172e7744ad617da853e8c44754abad03799308c91656ce993fd0a6d263519ebb27b21d5b7fed65311861fa08dfaf41b0878ca9e7e0b0151dad3118caf5315bad8cf38093d6bff72f631ce7eed5c6bb00e497d153aa5e5643891f269ad37feea5cb666b6e4c22b8630ccf6b6b438296bcffe37a04910431b0db35be7b2bb645780cdc7cc68796f17efee9632116ab3237d78be3f76ec514af944500dd10aa0a6699aa6699aa6699ae622e51f638c354dd3344dd3344dd3344dd3344dd3344dd3344dd334adf49af6a55249d3fedeac3519cdb314eeebbcbde310d12cd43e8573d17d316f9f524a29a57cd44a2958d3344dd3344d4b49d1344dd3344dd31e6a9aa6695f35194dd35048afa19034ad6a339af6303d1f73fe236edaf6b41f7150bbe11d6c0f4672306b9ccce436f9020558e8c09714420a299554aa2801f747f9f4bb5bfee4788c24572330dfe77b9e1dc88e8023507b30c2ee39b7165c6849105fc6b7a227b764b863051179488619ea7c963f3599197daa5fbb18f451089e4f236bc66a6d700d37c49c99a876a3338434a64a16f8b3de3c6013cb67d97db86b987f43cc157bfbf2bd17a08dab06ec2b02b21cc54cb508d4a79d515a1fa6aff91d8879f6bc50ce95fece315725388ff5c93106e812219c027f70f53954601ad0279f9a0cb576769c8c8c2db0ff0b95e1c47d46b91afac9f4e5b72af7dfe883d8d334402d5e149d39a8842c99aa82d4291a0106800002d315000030100c064422814096c7a922fa0114800c799a42725c1d49a3590ec528ca1963102186004080000000111a9a51003875e8b5b2974b7b89aad7caa94fe08db58213cb46cfc7ded1e1636de8b9d857f45c6c1d3798da8bd15eae562f8561dc1ac203a5ac6cd52632a0caa91f725cbe89c4ec7744e94b9181b89dcf3121fcacdc56d09830fc4f190fcbaddc8ed2f9e9b4cd009e49ea545ab955ff0fb91889b37c9241d725cac10d0c4be9354438779d041e52002c824a42718eb331150059d20175e5a70f22d18118d36670a4f035ab2056f5b1cf604e6d3aa16875fd2c2840868bf74419770abd730b7e70fcea5f6e217a44a4170d1b751ce76c3006be87d6d47eddf4528c88579a0ed4eed84265b24f89117a0c1a89d3c76360e6678813ae4e7caf3d3916889011f5a60a05df64607d21c83b29c31a5869529c9838e0685b0831df40c630a083d64e788afbde61f0713c18939e07f75c48c661fd3e749700579375511680b3b928c0c0bb7c15935a6b76a603c569739eb8072675ca71037782a6a873808c7a91afd7210ab6f7c25d7557d2d28600fa6fa2007703eee346ec0abffcc68191012032e897ef06898a680c74f545dca4cd1595baddfd2042627f3912e5f5fe4f1067f064b1077acb2da7dd3165e100fb2e3d9ea88faa11a038f4f017dda67eee82f807d3487367a6c00723f8386e2a8bae4544deb21fcce77169068f9771f97712e12d166dc38cc76a97488fa15026d2404f8f620dd2e467ee147c58444e66279648de65e55d2cbec7daf758793feb77b35cefd52cac9598215747a64c58790feb77b2fc3eebde63f51dcec2f4dd6b3856480d4170e1ef39d0c9433c1c0b19ae3122560ce047a19bdf69dcb1f252045c2699f83d8f151a38447173cd2575295b63283a4c63d7ac857a1ca08aae320191584f190f8a962935cadc2ce6638f80c2abf8f9e6d87197b125549d05f288fdb8c285ac325592b3cecf12f81182871ce3d0d0eab2386ae48a5c21b37c2c5ffb1ee6b489802ecd60984d5f4092d91079aa256fccbe57215c43d6f75a142430cf47892036302c84a8b2ec14a48a383b180c62a9986c0b528d1813004e441420f785a7468894991715c7efe9d36b5161dc14821a2164307c882822b5e13c8bc8293ab98c5ba75bb88660f50a8588463e654e9111af822ce1bfd8a28a04709c53a4c092f339a576032462b917b6349668ffb8fdbf872ce18c2ec77db9b9dc6328e17a2be74eb63961507c9933e8d75949ddabf2245c6d98e9bec92168ead225edcd3888f16ab99075f6715fbf937053e492bcb56152fb9653d0a9a34abcaf734ad87ab0d0bfcc3168ebd624e5e141f2abdcd12bbd21a8e554ab788fcc0f05ba6c3df8bcafbee03e893c90db80362520e8310190e0b015de98a2a1f17e6f54becefa4e4ce96e79b24b4bbb4cc4952b773ed36a90a458610d60969752135a86fea6947aff89af25892a273e0def14ee419cb9a9ab236d50d93b42523040b69a41f4460c8e88d80d648207934f9e23e2fe0a7fa6b2f02e42ca19a076adaa0d79261dbc86068bb036797921c58bb89599aa1d4039d930a421f6d9a4bc2021330c61c0fb0c2aed42e4bb680d5dcc0aea3e211d929941b099517f32a07271697d76fb07b72c838acb29810f22cd2ab3045c7d496640d1a3b0586741b75905d5a3b7496f1751ef22404d952e02f72cc14fc1e2d8d16807e78221d56d1f91254820e2a90c1213030529c298b76cace6150820c54081c0d0015a8774374151af1b8446f016627082b249b220dce6319f4c896a93fc0acdea7c438cd1cd47ba4a8486847517948422a8870971f2031402812d2042b019cda08d58f137c44ec21de9d8b48fd6d60409efd82c9a2a043202a369264f567ae2d44d0874798e7ae903408f30c5b3492da78ce00b0eae68b0bcc67da377889dd128c625547f60ecab455a24c30044afbc0ce50094c085038ab63a3d0677b5c52e32e392c635346fa5c712e4afbafb4cc1ade4a0141892d9650bebc2428d2a4773b1d7713797e866ac4a353eaa9c17fd54cf2d7f61d8cc85e3c00116972d7829844138073b7c39873958470be472622a9d9b26427d1ac89ced710ad5a2b495eca08be572b7c7ed2445a6f2fabcde2a92e27fc1f9a6219e8a28537af6ef23407876a5bbb93449e833e8f63e2ca4edb565591c0c1e0a0e8505a4b981648510e8eb9f4e471b58c089a84adf2ebc34108697747de3e696dcf7268d1ef5852164884312193af5fc413ddba42bb7d2a59054ec50122470260e703645a4f366ecef40ab6087ccc12a22863c9310824d715523ae57766572c5f5758475336724b9496127301a4515e01c8390b3c50480a048db635b21d6085dae4baaa93a762a511202681128183fea6b1634e589cf3c32a04f22e6da3d88685422cef206d70cf631df2b1d7a926992eb1d6c0436a38a5eb84f6005733584f9c380bf6476e4dc390ab45275c1847452932742c5ba4a08f58676201f04033ad695737d935a1093b012ab1745f5cba4037def88e52ba82b0ab15901bd9ad40ebd2caf64c09d275e953aaa35164e31cdca18cd29fdac35be5246a843b0b837296a95d2b10e04e51ea4bc6cec1657f05e4064f5d14b014b28a89fa5d478f16aebac00ea736b108d08e6941a5f5d3800dd0ab79e3c3277472170012963ce51115e8c63f4993e6e6dc90c9625735a9b4ff0a5f182a2e36b4c9ca42bbba0b5ea7ae2cf3757f53c8ccdd7b1d473aeed93f73a825c794d3bb1a7848a50ef38e2421bb1e7a9c117580e7ce16b0f1a2c0c680fc088456395faa3acb399f9ac3ac15521602a8373d9d820e903536acf2c31cd1121471d35494fce596cbba005becdace5aeec793f2b0b3c7aac556f89505c2b44986ae78eb41b3b8558c8901a44916fd3a9859d25c67648032abffb15379a3bbc5adab3804e0c90d004c4e54d07b90cdabc8253b95c769254f86054d01160b141316ff0709ece641ff18905c70d7d21640b12bc2032666cc588cab191c8bc37a4df83a2f8d734c2cc2ee51d1df8544a08f72028e1e6f93560c90f69c0a08c7db49266a5f431f6722510da77125141fd9b9a41ff7851173e8c7ec3766d7a8f203fa0bed45ef4e14f39c7c3ad93c71ec5a666376058fafb52a62d3a5738f2b84b0ed525b5137752430f18cd2695299300e1dc90c6cc5b6fb9a556ad6ce1859d1d44bddb6c0b0fbd4b217da8c000db9e6f9b65c7690346f66cc10221e4083758b00cbbcc915710bc0e1a2fe3984717279fd2dbf85900cdc6ac06ac8057fdca00ac44ef86a2bd5bfe2f53a251f7b6ba0bbe27a6c55fabbc306516f595fb754015907f37dbbbd28ade57f71c6be54a26a59b360b66adda8490e3a8af70f06b71a914c1cc6ec43b3d838bb40995f41ec44d42876fc42bed1e13f9df11f786b6f88f7e870b3ae356729ea7aa6c656c9f8e498a82b62d05567db27e5a20b39e740a0e55a019e793cab698be2dcf72e7cc105c0b22d907033df67a46c46981fc0ccba3d6cb7d16ce470b24d96b083c6d12ec72504ea205b22d825fbc082a5e4c14f277501f6ed91467c1b2d4662d91ffdcc82ebb2b994ae061f04c0c5e335381369822ce6070b265cda044ad1aa425a6d8d2559135593cbb2acf1a0d4284688e6293c34135fb0a12539b8d23d111cf0eefc7840eb8f5d47deb8bf7fb00f82958345fd89e203f907420b5924b92a21fd7ea7f4b8971b7bd853bf10e1dda2d06c4ff979617c17431c84a072391221de90b82563ae28557562148a2544370100e0f17635dd980b36f6e7f64c7f9770328488afe0e4f297fd3bd3aaa93a88039913c1e375ed6749d6ef3a5e72f1ebf2f16130e9160ed60265830f2b2cbde5b02b6ce628ca0cb262785205c2f00a242f3b517ef9caba4ac75673d10d6d94baa640c9fc69d6975d4f1c5efdc7b37afbff91bedbe1d6da5c49a1d5713e252a65ff867847b02bf0d80b1b495e783cf7a3ae0e0a1e736e0493602663ae257ed24340f03a5854b1be4a3c2033a9c891a56f1a3e4cf1ad5e3f4e7335f1732cc1ad20307208538bcb8f5e223488f4d20030065ca79bdb2f8db7bd6c0d523c282f34ed61bc14268d3cd74a0487836560a4b70d34f8c03ee9a5d7c656ec76dace14e6bb3a5f10830863cda5cf6bc84df634b0a544a1ab92d86a577ee4f1ee7ac7b2dfe4bcb2f99731e595a420ceeb66e7f1c21709610af928b2c8ed957d9d3e82b8867fb98cd985d5a7c4d0a6b688897c6397aa5f3d2a348836eb12211d77d755f43fb2cca819d5983d03d83fd6d5ad54c3724fc0fb896ad3c48e0d6088457d837a3d10d50b3f243849bc807575da6747e8b8d0e53f7b51904fe79e364efce4336a8e23317bb07d94f4e651419db5e8db2c3e46c6a698cd9af97430756abc43d0d55e734015fd2c8717df232db19821010019cba4a1f2c4d2d7b72c5c05bc5482b0f427cccc902deb475d1605be639ff9c629cae0afdfa8d4cfedbd4d2fd7e076d4549ea2ff67f64d617a8232e36d6a9bfca18ccc8fa0a7b05a0bada8931cebd16361cbcd626131df56c02ff6c23277b2140cc2981da1d7eb87ac0a9693e8de4f414cce08b88d4af5428d649df1ab71543a1cd5c58bc4a0c0e1e15c6ae0eb49676301ca965c872a5f49051e2170a71008aef87a977bce10697e35ba55397b6bedff7c2bbf1756d5e72f82dd79ac96651fc2e20c02ce8bc36fd7da6853141755a88469d9de9f9abc0a66b237722cb1af929d756b1c91d19aa19efd49df1b590415548aaee022257651fbd080c21d59b9943b57979d6c471832da50d708463882495c19ef7160f8272ec8f9f32f9e9a55c08f9ce88d5f00e923b3d945b7d2de91f042620c11a14e16861a50c733111b2be5bd67425a7efe46bdf8751ea16a0bbab0604f73c0206375c00549981c74b46de4d23a87ca16925ae9beccd84c35d60721e5490949d2c1e3c845c8616dbe029290bdabc13be3ec12257f21b7f18ab4d52ed69b402259db5b02bb1ac6fd982c5fc25f7a724a5f16d52f4438d5f004c573a6472146e77ee02ca3b129db922dcd0f458bcb91d9c9d6920ed79bce2dee71ae997381c6d2de70e5c9bf727c402d236c8fa61b4d92350017fb09e11d6e92086ced57cd7aebb6f492845c60b8a32734d65e140643511a754c8c1b15fa1a80f429b5081546cdbed54fdec2c5aafed643b744b0998dd87f8519b2f7b10ae3573100454fbadc8a4fbb7ed95c28340e01e60147a9719a65477878ca1241deee04f77916a83b52370305ce4b3876290268211b57a01a005595deaaeda07e2193c9beda4c280adccd224a407dd0211d253e8001a973fa4f6228d9fc0559d4231dc8af50ef01ed4b273c04b374f0b0fc7923684f740534b9735b06558039db9b83d7b7ce463a2826b3a79c98412fa8e000940f5f95351c01de81ab25a263378ee93271c350b90a0bf5d52db93ba78e0e21c64f5780a052e01485021c115f4abf86702b6cb15a1d0213da3b2bcfb019776ab1b01eb32d3837002c873e28d10e26ccaaac26369899f0a80c21da782fa452c12203c1af3a63d9f3100bad2949fd361c69ea5784c351b63029cd0f5f2369d49710719b9e2ec0206efd580020b63368000c093cd4e1307426d69262d84ca2e5e2a20b4d9009f9a695f3fe76125cda0b2a61d8b7fdd8083a98443f3e63272fa4a4b9a953cfdb7717cdc5713f4f172837b79b8b479087550222a05b255c856c94ef1b1a05ca62578b9cf7f083e8ec8fb9a3696228f2da4f624dbc55449675e7cdb4c43cc6f4ec8515d14a44a58a3ab03b87a04ede05de15abb1cfb9d409a130fb0ca321dd67954a8f89e08eb3efe418552f9bbb50147fdfd76efcff9e10b069298747bc1bfcd74462b69a3007ae92489cb6fc97482e8332a37e0631ea007d2f958b4865a6b66438c834aec9bede07de13cdcb1a14e72f67c6a3e497ff6f08d2b8e493412edd15083e6dbde28cb7bc86acc8ffd6700f948b7cef31bdcab0045bcf6f38d0ab826c0d906ce7acd450a69af131d064afbc6ef56d4e64d99f861ecb946492a57ba93a75688b3c020af5d81a2490976197831221843e416998235e2a723b327db8534bc659ffda1c3c7b786da4e25406891bf905c317f6cb6a47f06564b9beaa1b1b474203f54d7938b96dd67b641484444f13981d1cf003e890e2a4028c2f5b1f34f5307c064de18020baa5fdacc5aac3a4ac36e3d4a468b725c79443d9f94b777574523af3f0f9fc8e3719863cec627044f95a401c858bd9187d4499b79930c0b684e8c8d18a043b43a6be97719de5d4f81f314984e74eb78872d0b4a9cd03de5aa77faadde10111f43873afc026d31ab54aa0e20beb16c28c91bdac953134f94878ed737b00799816da71f05130ce285e9f258cfe58ab05d5c9d91126954244deb3c5d0ae3c8bc61057afd97fca7e4fd08b0c407577215e1d88e3ea5accae7933bf100fd711a9e37879cd8ce180583aab93f26e10af65fcf1d8cdb716682138aca457d78c4be525a891702dfb0113b95476963d9ea1445e859f5e02e0b5b3d3dbba0498176dd401755d40b0156017914239d6af6c7d05e4b2250bfb7fef593b9b8d69179c0ad3f7111ec0dea9bece9f2148862166ce702f9334118f7c4583d34fee60e26c08f1f01aed7dc21d56b74dbe906afcd81bbaf08ee00221a93fe23df212a018d18d78c2582ed376d5099e4b7a80824563ca18b723d520288dd7470c9222a8535530cdc7294e6818344b950086ef8c3a7208ebc53dd88c04d7bd8d9b47c0c6923b95a5775a59f55fcfcd39d9fe3ec2a30a0e3a64e610c935f2aa03a051f6a51b2db6b32cfa74ba2d48c002774ab977c6928fc930388094a96a6b10092149e95b6672ff3d9396331e9d6cf6f91809422f2be931a31eb13172a60dd2409aa4c6cc9786bc8bbf33d38892907ad4d69305b957087629e7e811a589132ed99220a2c912cdab8dc58a61e93e4400bb43e062625734f44007293cefcd87133d2219c944d295b888a646a19d27a1a8fe6b0fe98fa2c28e04060c3c2a460b0d7d0e4cca8b56eefb7841b4dc57c828c52d827c29f710ec0f0b00af78bc5c9db54f0deaf2dafbed2750e5433f36348feb8cadb1730613e1b7c0eca577e39b4869c7fc00e141f3acd97f12ff4e1765ff8966fbc04ac2d33a34d994057b17005ef1d9fc6e51637e623feef253c37a1112bcf105653e766e14660168b70356e2ccca2b10b644ce66771b4ea09eec5f1f96f09a20d08bcb4cd27abd7b442a933a0c2c2177621e6dc1f3c52552d5aa54d8add2b2902618571e023779df1d22ffa81026c9e6c70eb6298ae13703f81339d4e188ae2e71a85e7577aea2ab8be3f8fecbcb74e1425ca8cfce472d9a465bcacbe9ce2604a048a831af1740fa9dc7129cea8704b5a7f10ada12b9d9214ab0459a7e1caad30611644c16ed9a901c81682f1ebb92caa09f56bc75b1233b05cb0628ce97645bbc82587f161724816bb0940c19d83d497a8ff0b77921343e430034f07c2b223b60777a5d86bbe82924d5803afecebdb451e2307499990772f37f099d4e977a2324d0f04eab584c051fd8d07d2f04c9ce55218529a6f6bf04a187c2b8fa984217d6fdb7a56dea41919613ce43d7afd499c78349772fc00174be9ec7bbdcde6dd27d57a218a719dedfc892cc5745742e20de7a8d7397c6cc13c739cd6b11e360956178329527d9c70379b81056eb85180f5e8afc7922c70c929d55b051010732309a808325cf2a3b696ad3eced396cd5dc8a9764be5db58e71c0408c3d492aa31447e0e76eaf1bc2b49b0e1e080a89074d6ab915898c03cd65f6ab2a78c38b30fcae9ad15ed27a070716e5c13404d92a41c6cf956e42c8d20c39e30b221da15259a6081a28b9faa71dbfbf1803bef12c4256fae6a5c3c3f28520b34887da1e1648e8a6fa0cb54273760c09d8a2cc234966f760c1ecf002a95e7f290b5995ed99802f3a6a2a6bf64cf546b876eb191693a0bacea08344435ce13d516b9002386080b239230e385ffe36c7afe470086d92418618205b6681f65e71e61a76c4f83b289ee98656f5fc903d914dd686c16242d49498fd679a803fc88e0cb4ed0a8e54f86a9d9b25c1be26f4d6cf15ea8b253c5d9cf6b0e3b75c437e3943b1cc484ab72d37763cd724aa7ab84a3403d6e80c47d87b9715df80a488b68588c6ae01c0f9ba5578e441c192914eb6c1989a2c14699ce0de770142be3d5b1eb6e9399b1ba35782250162fb7abc3531e850104d9c94fef3253cf35b364813ab248b090b1b62220af5b18e3fc945f89cd482bc1e133b18fc4aed842c0a69489c919320cd70949d2d1b5e1e7f901fe65303e4bc7aa7fce219a8ec318931132a0059b1c6db649a5367bfa3a1a42c21d5064b5e18630de7f56b331783d74fe774252a6ed1daa18339563e114e8235e044b01b778072d3ff1b0773cdf18c122d39ffd515d572e998581935b320a0f059a89c57cac9226311cf949c8daf9825e58b941abdae3e28dfc958ded8d786769e64047971582d73fec64f6d31e294eccddabd3eac505deebac6de650919c67bfeea4f73f4a255722bcb529c795648413ffeac1f676850a70e07b2f4a230f729775ca7b6aeaf7686903f2886ab9f79b21c87d581b2416b1054e43d34c2e46c992a221ac71d3938343f6f65b316bd14bd2258cd14a7abdb01fadb6cf647a1dda352e13274a28f90c9c58c8102514b0bbdf8bd7abe6cd328a1f0f1f4eff2f06d87f79db7e939963e3bad19b6cda314ebb833264f2eed3443429ccd19854ae11849aacd1e94d3f853bea4fdc26a5ce67db4d3a961555071fe67acb462428f2492448d0923b47a6e860b06338cadd10373754e0de18bb016f33dd8bd788b54a1f1b6de8fb82db350680a954234a0d51bb8817ad28ea53d294b444f3e44d6e9d65a1153949225c5918505d3e3c427368631383243ddeb958cd87f679c280ab747c51359951685cc6571dd35dacb09ec46ab5cfd02a0d291df8e92f9d48b8039f769331fb8bab898766374218a458e329ac5181e5aaab9ea478064393e297bc48da25208f1735a4544ad31bb6507f98c7aae00106575be7865747d0f3ce8ed9a95cb27db298f66c7e0721a9566beb48026a90b4a4588e83bb50839c62bf88f5bba0329b7b6fc30b70a0159f4fd585f170e07ba4cbeaee74f2b8bcb531339bed6bcab3e599b955b907fcf2e7e1dabc556e0109f5d34c6fdb39ed956eabe29a1253817764fcbbf33d8324381a33552820a36c4ae909415006978089b999258f6260656db2a468bd631b67a815a457993ce7e158faa018a20d18f42db5512b4304e3c39b7c9dbc3ba816373b459a3062b5d51ae36fb10625041738aed873d4aa6a506162aa0be670e15721552b191f9194c26554316cd9512386addae77899839a1049674605877f38a68d40eec3cb36851aa4e4e6bb8308d316bed512f4d8136f345951e6bb91fbd65f0761b2208b537d01c71c1145773360bd1033a3cd21aa3dad2bec46a4afe9eb15c552bc7f64b0d47fbce7f0f3fa161158b8ba145c9c2737f21eac133ff230c8324da9d3b59ee3ba336b1170fb4e2793aa022484dfa41b75bb4cabd0bb0de6b53ef3f895e9c305df2e64249f7ef04387e34a20c116716ebd3947e029b3bffaae6ce28fbba7f8544284fc7a472508237e8330072c103eb65c0b4ff678eec8b6b849b64ab6c349bf1258057384d25e72fab8111496c46a002bcb06c900ca1db34d8f6cf983f8b20fc0860362c8ee3ab7299ff79b529961a7ecb4c6907dd22b1ecfa4a5f84405c0f1981af07663f7aa8930747b00311c731127bb83a91e00fdf5c96b773df0cbaf1d724b8c7d163e0af701ad35e52a711c718cc318f2ac0c7299a7e98ce368b29306dfc113630de2d0049f0dbeb2c7d98dcc4984150e9f7b67508e868790fcd1416fe634d9f13845d6e0c12be044e8411984e0df836ed6f1ee237882b0fee166ef8c0ca43004011bc455c3b955485019a93904fc77a6ba91e852d079ad28f915758ee6b5b8216603b5fb3945add080041b86cd2848c1ce09131108ab9f7448d21922eff4899cceb00c1b760742a7b2a9f71a41908854908bb05eedf1995735ed7813e4d88929ec6b62e0de29377683a28a72799514c5035418506dafd33d9966515223a8a76aef1bac1128a9934d1949f7f23b57906fb000520539b0b00f1e8588f94f94d4c1f55c9a2d92316731ee2d087c0e833520c7342782b283f0f694f7b6097e75bf8c267600f5cb575ee2c435c007f98256c4f882c4229c2589c686ca58eb0a844c6323758b9fc35479c738d006efae84de0a2345c72ce01092c5268b721d3b1e45299cc41e6887f7374eadb26d610b62eca056f5310a23d7529f6302d1c031bb45830fd2e4a0b1f179d07a67c6a3f38b4281ee089565b4694172bcf9e3611a7b037c00ea4e91e0792b7ab539da0582e8bfe410df66f10f1383d6415a3f71b7fba45363b008529336f01a252777932928d39b60d7d5185c5c190049307fcc81821275865288bde7cd2dfef52dfb4726252d604554fd82a9fc0b4cdf641e8d0001b2164111b4b47ee322f0b51dc68d0aa2f010c5b4452d8bc014bd338e82d8c80ac3cd51d825b7974560786d9ebb2e0c21a74ed498ea64e4d9f8dfda4eefa38510b0d0a8e5355d158cadb292f5ea467fb4192076521645ca24aed9b30a70e7cec7edb954f66ec3de65671712479d398c386ba02b0bfb4e59984e856a6db6a649f62880e8ce3c09252cf8317a39fffd69977d5ed01b526fbfddfa7fc7eb886e35f6252652dab31a909fe8a303585521b1c7cf5ff4ac76597d301131ff67fefe15a63832e513b05010cfa352c734064d9d68b6e0cd26ccdb2e5a0e76143829f1999781bf4a736c3b7466814ae64e00ed7e3b8e121b1da0983ec4893b6fad39a5f0b459cfb379da3f364902969a163f50db1a90dca915020c1904ce9d8f78a34929109fd8cc126fe322bf005c5fe49fdf63dde5bb9378a8906063aeb8f79e9f9aa5d440faf3a63f34339ff4786274b9f5f40d1e223358f5c8531d424447c418020f419e0fffd08e1daf07c66008e6b2c097126ed6510388f43cda197b1192cf60c8873e269f4d0b17fec3ecdb19bd14f322e569341830bdc7d5d311b1741a276b4c6782e96946ac4caf4bc46915c132ed7d4e0b427420519e6b0f6554d9a484ae389465c69592a4b228af2913a594c1a13c876d94aa8690725d6ba75de15d5b052e24a00546afc26ae3872dd9e5ca2c8a412c1deb1ed35ace47559f865dbbe5dd5c0a839d0facdfef56e9aec2a9cefa92d9d52c1ff7ec336337facab46241f6ef8ae1702fb9942ecac0db2c291fe2e5a1eee708bc0821ae408476217841bfa82729adcc3f9a83598c200ec5c4ac9c0206113d3b244796d10a7ca019abed7c02e3a03331e0104d9defd934cb60206738108b642e0dcc8b36cfd656f78d08e25a1968fdf55b5dd6db78e7d345436263e65be2b28223afc79acb0968bab1a85c5ba68ed7a9800fd6bdbb8b3f602f82aa8fd98e6419e4c86290042f7a23c32b2832f0b2dc9f2005f66af0504169d331ec9d195a8206fc7c85e99146d845ec79cb279c5c8c0981e3f8bd76ed6b98ba01c4adce425336a888d4663b6508c09a6861b8012b368123e16b26966b8852a73d6ec26f9964ba10e0795cd50323e0b79ae83ad40958a21f0f552d07791c1157ff315c0c5e04617f3e1d7ed6b0025a1b5ffaa7fb35aa4bcc012179fdb6df006a89142c668e093fc98c95b0021e81fe2075794906769d43fa097e36a484f0c0244569d33dd308732090dd8cae7a158e17829caa29da62f12f1e1126d29720597112fb511e285169beda042542d507e282c46f49889cf89152b0a3c4bfe5147f1b2133c62d6b26c128ec3a5554bd9d0183182a01e715f9374c584e66204e7b965127c03f9ef284b5098b2b2a1ff866d4bf37f260b955cb868dfb653824f72b0a96256c877f50c8c019d37ec7a958443ecd02d239173cb1c9acc45a72f30d628eb5b8202a11776e2d9e8a4e95d6048410e3b8b6287f1e23c131c0229b7871dacb9e982884407e49ad09b1a3c1ef15b7bf2c96c1fe55773a0c2eb54b4e8ffa81cc416bc7fbe6429e329a0a470938e657f7181873397329fe5b4b5d06f0d14c6c3939209b325489c24a37181a53c1109cd1202c449650d2de506f74574a3ba1866628b86a726c12ebf6259d699ec749d0eede4bbf19f67deddd5802dba006aba138ad3c25cca227e871b69dc4eab5483159a32d3fe51485f5e6ff9bb660e62f67528974e01bf3ce3ab9894ad24627848a804c4eb54de8b965509a706394da0c885e188a198028134ef27879a413ceb8dc21591fe3e0664d595ff1bf34a360f407d1c695f44fd74d38799d124835ee8526a0e4765d68d368317efea2ec568b198029ab42a85bbbc5ac2adaa74a0c97d00b4796d534c4227a7cc71924a730a523e981545e401a938da0ffb5232407eddab0bd283caa4ddad0aebf6a917b910473eb9d14d163c69d1bc7c7986c9c945af4eea62a965c640148b4c8d30129c6ab85f39e2a326d84bb295ffb85bba4adf2db17024784cb5e6eb5ef7e3178b1544b2f7fd05bd366705258ab378630f7eda5f0a246c0467d2c4b5d278932fcd824c0703c6ccdd67701ce923217b71ae9bbcfd2447289690fac045a57f4b906a04d279b34783266295e9ecdbc3992dc14e248eb84bc80ba8f6ea19dd0db83188330fe52b1f082ad4e4c001658ae03ee0c09c927da102acb9f5b51230fc48c58f7ab85bb2b170039fc9ba55c3959cdc7af8698c6adad6bfd5d796380200b6cd946c9be325a8d611e2e890c8dd5a2c6f6c6648dbdbe5cd52d62f62bd7aebdbab0ad7ac095993192c5623bc5f751a10138c90dd7b57f0b298e1c70786a390b6c67f210d92c941bef6635acbcfe490287fa717dc259218dfc18856d98a450deb9e63425e8f001875f6c4c47a2c04398e20bbc58da12844e65e9414289cb61c202abe9eded57a89661c69c26b2ecbb5192f3c80849918a71ac9f2fde82c319565d632262f4fabaf88e60dca3bffcad93783bab1b03c84adb814f94c55fb7a4f82d49f2878053c84788465a8c0dd58be9b3fbf6b53f58f695a986eb9e33754adf2bc4920d3bf6fc76527b77e49576a4ae02d186c491f3c1e000e20d257a1c79b255b22e4f9b061e34ad2706d5e3e728161a0b822ae1a2323f30ab6698681f77854a39ebc8797a40b4a4d15e1eba63eb7d49432943b3cf33bd3a9c8f3347b1404ce52480b339ade2270802805f5bca80eb0ab8fc3b1e3bccc3c20038c148c7e0270ae73151d078936ffbf092522f10a98abb89487b79b1291b88722bb10f4bd2cd80d94fe75af0279483fc910e23defb27c636826b9aa191abd14c69e04aae3998b7ff95c728f41e1205212d001ea05611200f030a1de11e60ebefdb83521203f5af31f1418cfe4389d9590522856e52a58099c19fd65360a7a4e01ef631c9ef3b1197d1fd973009f55a41477605bc42f41928a3b8a1e2f885478eba85b6c0b4116a5659d4d47f0a22c0fd21d507ccd76132b1f4e3ec90722876f5edf4050650cf288d31ade7fbef0933e3a530006addc6d82bd76c17763871cb188836e55f90f953ce010e30538f011606f5ab1f0252901eb90d2180d5e7f9553ee551eb4cfe8ef5307071118c87e0aa3894a82d894051e2b5e10dece4a3bb69cceea908cd5b169d35efb67e8fe4d64fc20b216b31da4b8df9df529589868e3dc8d68d698d1a6ff214deb8a9fb35116e34dc1ef249ef47a1ef19475d48a16eff2d73c0966550712a5fbb20b6d23effe869965855d90ffb0bd84f445907377b245b821081491e28a6b9571d407c5f2f45d8583f155d94a6fa6a34342940428a85a739c3e07314fb34c4c660db8028f0c50c3686699adbaa7d251c1a536b44e9f9ae2b9f983ed65cb27cac4757f0095571ddec284e37cfb441d2be2c0f7a489efdeccd271fa10db6b9c1d31adbf65dc2769c3a159950fc67b751fe330877f10b91127bb1755563d352162695d7a1494724fde4e2ba5708f133cdd3b0866986f9e63425cd20048e2a8736a930c6f2ad0de4fd705d7cf97c9a02493a44ced2734b8352ca6846943f6fe5546b7287bcd5a8547916832c228368c476036040279437ac4cef2e56a6e990eb906b25f1ba3898e09644df5bd79363076c571ff98df33240fbc4f5e672511312c14a9d7edb861a5cb2756f235f9075031a6c417b2c092364a49091c331b519252bfbfc0e14cdfa21d7aff5bd69c99182583279f15abffdeb030ffb68ee2553bad4eec1aa6f4eb18e3a978503b438c0bb79d22bbb4101423fb30af8ccb0a14aa1a4c7b33ac3ccba055ec310defb2e20c5280510f66a9caaad541d6da318b477239fd679cbb80ebb4b551f0d02cbb7e414e089779bd47d9887763805105cd3076bd46c4e39a107b075ee98bf8807305510c771f1319bf1c77417c4b430379087fec2f872a21e333fd2278c33798bba846bf1984da88a94bd533f227c4ce1f6b089b51ed370f633240c17818a507b705ed7155badc722c2e35661910cc1bc616ab07e9ff2050ad5ea3b0508537617f83836ac15cba8156de15b0a6b55aa19b964d3be159912263dab3e8f9d4f16473c5c4900f5e8a73a332785a9edef217b3196df8a05b75e6615edfb905d0ce3b7d2c02def5945fb3d0453bad3442d0b0547fd9fada8d7648866124aabbe6e07fe9838d1e97b3b7b268048bc0a3ec24c747ab58dca2c82952aef6d809f512716f2deee46a6cd55d1688b4b5b018c4eb3b63b7fc422deafaaa910a6f405c7a447fc952b3806e7f1d24b4126565660a09be3600d85619b1f61011d1493c06d6d2e012507f62121b2481f4145fe3f88422445a36cbe2e698301508c56e265d0276c4a6a7f7f456bc89b9bd04565a8704e6bbe1069c19c35426c76d505a9bb800a09bbb9491bb255c02e0050ce78f3e855860c1686c1dbe1e66f2de55dcd3c49556c827a245888ac97c531d76c180fb9a6868263e2c013f3e347ad8ff80a8c10b5bf78d01436cb9356a07ad258776de09c67fa57297fcec20d71951e5f331b93d4a56327ac350a80cb599b7fc579eaf17622dbb1589e35e5b2b1851697f59228b256861e9bfb41bb5ad963b0c5e58e150afddc476ec2e81fcef15dc6d47d86f4316a6f1e7123cecf542d3ccd082e4c4e6d2b212450e493975ddb89a29cd96693e5322da19d218c66cd54ba9ab2d28125d21cc644b78c05458231e2354cda7b9b48264a23656725f8cafcb2c3fca34f99d9221d25466fccdab1d14f311d2b4954b9db7fd42f921dd789b44a23b98bc24d950f15fe5105fb2ec2f098e9fb13804047249056cef2776ca7464d94ca4d43f11df3d35164c2282e0d8b2ff1a76cc2bcb5c59f0354ae280c1f7210ad1517efba2ec5719534156c9d0b0224f04833db4710049202bcd2896da80103dc2153c15e719644263e0794d89ff72c2b3b82a4b014fa4026d6e1ba260e37977620c74ffc864c319af1c04682b3d1219e80ae8d6c37b122cc6e6986e2bb75cfa0fd674e97b2dd8ab9600f50eb46e41f131d774b8de03101f7c8ea3ef7e652773df37299701c23804a5419ac188837415c0854ed3f0d5b9f50a710d7f0e55563128dbf9f3291591195a938c77bd0f91c9a311845e3169ea8876936e811b7fa672c510a29a3e04a24be0b09f823513fa48cd091062ee43ba6ab004a3dcc89cdab8fe22efbafc7bbd6b9f929b6992f246bbe9b91970c06495730863ec176a45b0bb0eb3f86fb11cc37b75d109e9f8c9d87be3a156ace227c711961e4d8a9b22bd2894652c6d1d7e4ef53c798b2f062521fcdb1e128f46f5d097ef1037e3890a148fd78de95105b54505729425158e4cc2525ada19f140035abddfb7cfe21731e35b6f8a13ecc215521d33e7b8c08f6c805722c046eee62f4a3f6958ea7c1691185ab6ea1a4600919ac2f08aadbe2796054353124027a8b5d899aa25168c8d7a1a26b3025332f13c04f5a8925b74278b337fdc852b4a8f0c22783d8745c12a3552693098ddaaf20e8b1a18b58159493914a5396828d9b061a59b004c6f01a9c7e5edcf56b7a2be8ce1da1e524a340cf789c2c27c80211b9b446d5c64f6f05054ac8edc0dde5008013bb22500a4258551959a2450442c0a2b71294a02c4d9d44305d566cbe90d34a1cda8ae7475634215d08742927fe7460836c66cba4aba249e581eaaea098dfa6aac0779f9250a27bd2f7270c2e343c7508873259f84c28d046d728286d1c97c25dfe0b9a80f45b69fdc50e4151febe9b459abe536a4198b58a1aad70261af924be7c3895698b4bf86aa1b6c6ad77ac7068c63cfb03736c41330370ede7a1f907ce0f7023ab49ed522cae580309cae92461d6cbd0e415a95009eae266bffb6e09c406e19a21c4e37ed32475245e1df2a9a7e883d5542d6b1271836dcbed50078202618c05f41ac48fc8e3eaf911b9180101d5fcb40a0c8c8b479257ffbff715ad22e68925b41ec301753c87044ed47fca7ffa74bcdbc40bfd989f8d75ed28f7794d0f45db7d34a9ebd54796942433bb40e488b813680f92a5a27136ba0c4c7a6a4821e50593e0e5b6780554ec2a548a0faa6297ca19bd846fbaf63ce9ac576013c22b3493810a7444164c54cbf5cef03d4b1d72f0d9025e8ff4c445bae1531d3efbdf2f3f1065d82d1fc16763c38bab5a8507e5d6007fbaf2fef33aac7fc22744fd012ec318d0adf87379bc74067d07b1e23070d047fdda82d471a26c395b9f63ac1203458377c4d74efc0aa48a158c586411992c67ad81dc7b3b10b0c2390a59ad5f4a45cac782e885049373be84e14c1d4e08ec237ae717793e13304047aec0a1e111e7194ec147edf14c12c12f4b5455696bc44f7122cfac12ac12d77b06ba92b69db9f96930911bd2846b39d427507c789c7692aa38beabfa828b4caa73360a42f6570c813bd609950d8bf73051b451b97eb4f988185adfc28931b3fbc51ed893a4ede7c77f291ac13a22aae28f5cf6050da3bc67a38aac63c3a1e56a933e228fcebcec44ca4ee92c6e777878389d8d42876069244729955dc15741568357f30bc700ac96f76eb4a11d40e5c882e22e6ed157fe5310ebbe53e439c2a4a9283718bb29bcb647e630c54de26358803895c6b1aa89016c14169bc11b2d0315745766ef75709a9fa1196830e445a5023e0652241d409934cf0ce6827639e2359a494cff156d2853817ea1d576bdfaffedac3aed08b5051c9dec746026ddd0b51564c5584fea1e4b820a5721f4ab6eb52119aca67cce3683793a25cbbd30e9670a17071eb81c09e419293dd1ae0581ee1e34b96128f1adac46f391ae35330d3c241f7b5c7374a0da8c85894d144d2767c49f140f04e6cc0fe968b87d28fc49001009b1d157dd41c362c9af2a2dde0d538e3b8089301d0321f87467249e2810b4358cd70681d62e59a47614719754de4eec593f05af4fd83031c5bf5c53b9d293d2bd59503d7b26a0ce4eac2ce2b821f4b022d8b2fdeb9ca361962995f8a6b1bf6993139b41cdfb75a5e38f6a145521feb7849e57dc0b9d3ec5a2310f4e1755540e6d0b1a0202314b6f408cd1ebc9074e0e0c85f978808b1eee0815a9b10f88c8347d070abb6089f7bb1636dfeca6e57acd95b63bd6ebc8f053560250c2a88cc8ae96da1afa9a90f2eccea482cb8c506eae8d92cace4a047f72aeb3c31dbcb0d2b47d454b286c8978305c93f44c968a298a6ff0c61586fe8defa6541eb64739dcb7df5d04769ab86edb4c005cf0eddd5ed6582ad551115b80319c5d41218aa68f57a1dddcaa302919f9ef9336b3873465e25450c1df1e4b91f45ae8b96e6c26028afaeeed0d4a3bb474e53c2b4f02b026bcb48a23ea0591da1dd00f0e0f812d2169be9541b87b6655448c2c0f321e44775d38ab5068b9b51de9f92a91909be8a2622d78f0a28566be2a437b528f253ea61411bfc3b05ce8170f8535ed4e8bfd26d059da2717c30819b9e5374fb630a0143b5850b8904ec6f1275cecd6b1f4fbd89dab8e63515c3fdeb68f494ba8486c9a72d94d07456080a9b6a53acc37bf444dec6afaaf20de0e4a12cb875816c0cb8fa7ea83b4f24d06b5520e8311121cf29cbf9585008a5665deeaa5bdcf5a58eecf7cadaba2a92c62d8fb9757f4221058b41df7c47aae0039e1aec2d7aa54989c250ca62a038e3f5ef60b48806e3a23e7943e92442449137649f87ce99133a809604b8288de67e1bfe7a9d92844318bec8ed31c5b4d999249a2d8db19b414dce408541dbb2a2499e249d2397b97a4e13ccb7e2e02ec66f094f6269ef84a741652c3af0c6baecb94e4cdaa49e510d342ec3436198ea0f7e8c376cf8d3f9cd4ddc498d1e35ae85b8c21db70c5a70f6ba30dd383682fbb4392b4fac7bb8e0c5591356c57648ebc09dfeaa88932f309b199963cfd4bf3944db74048d1819f19ea264c48ab5c4795085f6bf00e019a7bc5daaf61ea6c3a6a00faaa5639173839f4805175f6473a5ba97448bb26c596f5363580d8172d36ac7335a4471d4b0055097aef591f09c48984b81d7fd0fd33279dab6827ddc5d80a7023fab7ad26b8c3dab86f0cc0879b883858f72f664389c7e1b57951bfa63f0d4d1498fdd346530408ad758af8516a8a572e91633a0dcd716b08499b7442e0de97131ac2156a7a3671e185d48ab1f22130e8cb5665bf66655a10b1afd6d5f318394e8d84768bef4f64ffa8932d53486ab571f81868f073b164946267b97d465fd4bc89f10b0914f7191fd057ffb83b2796582c7b2ff4fa883ae1cc13b2d5c6e1c30480a93e6b95cf9574dcc238eba8b65481837cb08bcbcf9a219fbe5b1f65fee63e7a141be0de047d804d4c274882608f421bca37bdea909f1e31892a9deeba4a500f1cc8176d727685898c185c38e13ffb987323d63d47ec9555d873a73b82302e3e12b6b291701e5b4f8ed524da791c9ae9b9a0649a008708d37c4a4e14ac078316c5b357968ffa6cc7657d0ee7bc7bdfc829402013429013ab8495610794c88869d91d35038c1518cd1d50cfe2e5c98e696586920340eb7a9de3b4a12a46e92da5983431584a0ba42e043f70e6cb19586d778b717b432acd1f3f663dd611c1bbcaba199f995b282389cfee63fe80ba276018c4a52b1e88aa9eca544612eda6fb347978d872e420fba1862039b69c3247956cf60b905d259b6b960d07aa96cb9d59ce110ae728da9c1c5b26866e10e22cfe112b4850c1965cc000b42a0b52daa7bc341602d707034c898cddb755f017a994e1a33dc6b4796a8360817c042ea1b0c557d944fecba66a4bd9ca07f682ffc0aca618970399029b65b6324deab1e5bacc90f10ad0bed90514cda481da16ddd95d9f3b982c38c90022fb4b873b13a5956c8768aa56c17afa4bfe91258a0762c21fe6f4c58762496e6aba168c0490a947dee009601b4f627ed48aaee0195fb5f5520d36174c41332d2364bee2c738244b8e5a563c43dfccbd1de620250e9bb8fa1d13da5fd4307a049769a3da8368ebfaf3feef5d94796f288fae9c080f280241cd8932ceb4e6216efa22e896f151bcf0291c8ddde81d0587c959377d54981cd3c8c78d0ee4ba8c4f7a9ebfa98c184829b838e3a3505b1c4dd8238d71a846b225cbea8a2e3e904b251f6d3558ba408b534971e404839597c8d258cf9bcd9e53855a38d18070ec61c3495b3c4c86c4db3eb8c7f46f03b1d0f0d3e05ff24926f4d761390d7919bb799dd8bbf46325ece63e2b0718fdebdb96995294a69e877e777b5e4dc0388f0a806e8f0f4c7e05ec46f4b93d6377f2c2aef7ba517113219099a839e97523f311d0795beb2fd804d6a34747a57367d94dba901e92b96178472503991773735a1dfff33d956e3ab09ef0c66d0fc189d9b2e4db319117f86028bfa2e1c90d789b8d2d72ce16c8f9dad8689ca2fabaaf1a41711e8997fa29cff8984f592066dbd1cc8310164eff1bec7114b3c2f0efc51fd6793627371bb0e7fd282c6ac8bfc18fbdf0f6b42bac8cc4834bc5b1ca47890176ecfe01980d443adc0f57b882701a38ff065ce1b0d7c2151bfd4a9ef0f6a106a049fedf1211f00c0579208fffcd1127dc668fb14880fc02223feec403292676a06e746c9e8ddb53929d77acf585944eac7ab6cd8c7d2a24ce44a7a76d4d99225859e5b9bd3e53542b4f9eb72fb4ab0ac59958f5683b2f930856843cb74f58cbe7abbef32ead78be5d1f004b34a2e227977434c5fb7d48ea7d68818644c644d2454f8e7ca72e394322052c218763a89423c918086e0e1299fda825dc1c0408c65190758e372f8a8e31474157ab438ac6863ba2d17281c007639f39eee998ed49c719be8223ed71f90aa92eb2fc39393c5d1036704053f0978506c08b855880cc862940151f174ab2b60689c7dee7bce5349698026010fbc080b24c34bf3cdd4478c0ac08fac758bc2b106ab9fb26a9c998a69d15af84f61ae87bec1e8b9bb749e788eedc62a15df9e05c32fbf96da6e2fbf6586ca4232b5041445c1e5c4de2d77c6b14a0884e487481247b96bbea488e1805d5554389f8702169f39136020768251b6df481bba944594e6d6ff108764bc6ba2997bce48e301bd20389627309600f55e099395160162cb0b38226215392bc91fd8969350fb2d2c76b1f41821bda2e91d4c33a8c796634a9c96d7857e5f69ab5023db4c15e92979f7ee27a79979beb6299ee6e52eb4c6b8973e2c377c1f6bfe4fcc7de6ee94edd4e1175b691814d1da0d641d97e7560decc04b7f455bbf122b38e698ae0da89cc74d1a278251e57cfff494143b59998152caa795c7f3002879e6b1b4c522b01684a2028cffecc478fb8bf1d4640fa112b50d8729f7749b71fc357c7d85b4266ab51986f394edc65c40bc46b500dc407128d1903f8c5a6005a9321e3dc6f0632d00e435348ddfe1157d2a310e712a1d9fca90623c8e5f6a7a3ac1147c594e418b645ae5d1d3c1e326ce67c5921fabe9b1443faba441302c49bb93389c59b5ce7d328f72a0d8019e95312996ada084caea59347e6e1b625e616c1fcbb5d69125d1e4c679fb87b5bd38ab6b61c76ab89cb243ccc89a2ea8d22effa0e875d74ab2cd79f9b4653f4c58eb7e7854ae5759b8cf47c60e5345a98914cb151c7508e0630662346db2fe8ed083e982dda421e62d5b3d78f1fc718da91ae0bbc60bfaccd92e94ba0fbc9c4d006512add2c14ab4881118d014ddd0ac428d9aa225c5b28b77852f4ef14929102264ad60ff6566641c74390eceab590f993e76ae2fd111ced8be203023e6d4ec6fd7592ba08ee008340405db3a7e159117e28fb7215d2461e0ca47e61ea59ba0e9f54ae5f5d4fb137f8e89eeba8d66d438f27b00321c18f94f932195d2332d2410fce72b4f538c930247d2ce53b0a77db6c7ca284f3cae0f4651e3d6e7670d6c7b2b7c37994a5ec4672e07f1773dd9b49936cc62ed94428b4417319f5ab9407a78188b4720c4357dfd910ff8882175d73cd1d9460236da97b8e2107ce96c28ca6ed250ddee897547096e3c49dad9d84953a40643499af8e99c71ed89604459b5c8ae72dcc6f10899ab486cbc95da258c313b690dea3d3737c48d9548ccccd4a689c56c35a66004c2a6cbe89482a15bd438e351f2ad4ff21f85956f9d89241ebf3f0e06f53a091e9861f17b559d09c610aa0a4e896156f43c60d04ca539b2530c360e47f0392df0ddf971865bd0e1c7bc19316cca9e0e8de14ca239aa1ace175a8778c12595053065aeafbef499e9369bb21f0769986d0eb27bfc9f64023878bb8c33decee8919bc7cbf5a49253c4d9839179a4bb8a2da791c5c37e5979e1261f8ad04f00e4079c2b4ce1f76d2b3a9dafaf613680baa60594eb0c6110c62aa65decde9528c2d6f1e60527cf8cd3cbdc125b8d0f9265d984862b5b2bc565f7326b512828326219a453193fec1bc47500a5e788e4861439bdae1e87cfffeba9684cab09bcfbd921c8851729ce0aa15ce36257f0fa6ee02eec83ee8f3da877019af2198ebf8f085c6b9190f4cd5a076e3841991aa385e3128fb6aa2d6e38001094eee9a87ed1a7169148193ee121fddbb9990c3475ecda5000611061cac99669c8095cace984dd3cd9c7f19cbe913db010354e90ed5620cff1374bd78ce2439a65a77cb60b565ef5d64d87847119c4dd0e0a9a52d90775f48da932e11516306ef866bf1b142200da74d18b2259621e5fcf3acab4603ce61a3bd718816f33b0532270a0e3a0cda258e2764e2501da92e4fbf7cc7f1cc1e3c07319a161e471389c12365a685ba51141191f2b0f07ddda158db3d114b47383b3996eee3c4e246718e9271524038af52ceb05a049d44f4f76ea5a049c45bad1685ee1ba50e17ea566bdb91be0577fde0e9226b008ed099a37b2b4ce0d9ad26a142297f1d582734ffd9e63d96c7460f86a014570be4ba68244a7a92ca0484ee52be550a4f985dc460810d555b5df228ce8b8a8c25321ca9928259ca96dd829f31882f4ac2270a7ae0b7d445bd6e8430200c9ca57d28dfd3087f76c8fff0a5abc399663f7990afa37a5b7295bd4141b4e4bffced78e98751b642c3b7f1b85d1139676039c6c13a4a3795e086bd4b4f3cd79d6384cf421714bd3d97762f9e4a90422f12b4893d45f9f56e2ce78120a3fdd298e76c10ee36c99353a23579044b01f958ffd27e3b640f4289829f7b9680ba3da1aa2be7e156393542a3f3a006cd5cccd49e418f1b25779c1daca3c681910c4bdd55fb696b6980b9f14684ff7b6442ee264a62d5dfab72beda94eb00caff16888141e4c6202de5652c574fabdd698430e1f0a50338d61d341b5b23933c48966e81b7eced292e76c38da7ce4f940bb29190888ef27798c6ffd2e6a51774cc2b429226e0f845c2dba12612bc8140b6226eb8138e136e16b9918f13509bdd7a3c11e96750c391c4d504054552d66dab88581434d92631ea89aa83e7bac07baa6cbe07f9b703c9a91157f40561220903e61357e9a29ce11f7b2f80e270e39216a59cdda6f80a5d3ffa7fe8f191439bb87b4f97784aedc697685f2a41e3a897e47e1587877e25db50e951b7cf700568221227a7d01ff3001312d21b8e80caf70d5e99524c99a3105beac641d95b28c4e47380f2201b06b0c9415258ee94390035e206919600751a999afe1383d5eff9f5630bfe90b09491af8e01a1ac00472165294619a7db903616fc1c0463e21a5409a7edaa15511dc2d0b777fd37a0b40d7505a447c94869d4ba1972950691034aea6c539ed080344abc923a495827570601c44b64dc24e13f934d9838aa30f804435395e4fdb65bc911f4c3a43ca891cd4c33abb0630605866e8313c8ad88129b2ca7ed46ee027edb9508ef084e190466c2de11869cd9701b89a7a47d0a99181b601f8a636bf3bd948c9c24173737e3ddf3e8db25eaf855c93b033026cf8f00817e1439104fd114dae352132d0fba1cc3b9762918e4b42c59c1b615cece5338591450de8b5f77c92e765f1ced225c3205b0bdb9171babe3a606c539034eaa70a9a2221cbb3afa74fd5ba77e798b897d1bc524ecb2b55dca0c94bde51c96d53f630e280adeb7a300ee973c883bc5ddff5e8fc5f0f88aa720a454bb55e5cafaba6285b0a8ae2fb341b8b69906c26f8b1e624a1933d5b901a5365d4fcee7456517932448284bd3506f7ca58e97cda26d97e69d243ae09570f04d34bcea1349cff5ef12da7e728fbe69b3c1a96db2954eef79874893cecca13195af035a091c66efdaa386089983363e748ea6fd3a35b44f41f2eab35b308c87dfb152837f4ec3c0a9bda5134f9cdd6266aa3b3432382d79393efffeec16d96c6d412d40d9ec016a1ee1eb3fdae36c7b2556f4fba2d5fbfbe094db0475eedc4bafb5eed072788ade31689c9819049cfa6ed39edb548e90f183af1c16271aa7b547547578bea11a80149c7c2dd906987aed19fe33ea2d047b9e81c54c6995aac2a5483b46771c9d91505b2089c04b1cd65951b978230cb525ba41e204b267979aaf993754388c429b4278c96330288178531fd78b1b8f75d317e2b812ae4956c877b602344f753e88de0bf19b078b12a2b7d06b4a11d104ffb798b4b5c11263a34aba03e581f650885eec7f24835fac10d3ffdf132b7aade77addaf2228e1a2710bb56778d4f80f1aef1b90ef374553d95eb9d293dc6c021aee319a72bb20ba782819bc43ae1426e5ab79f02bd7a847da10e3656813ea6514cc9b355f25f4858f0e6f1606863761401517b7822a89c747cfebf148c7d9ad6642f2f77db3550bce82f4ede12c3cfea27578bc4bda2e997469a54c4c8bd360fd5f05b135ff286546dfdd977ee8fef6856f439a80190990545e5c72ec6d5456ce7034de229d6c47f682e6a8a50e555f28e8a43c6b6da29ca36aa8651fdbb840c5117f86953b89f9e47551a8d8811d97968ed51cbd9405df88e9049c17607aec5d1476957d23622fb361c4efe3a85f6b053552d6aba5137a65f8bd7fb69e1d3de5f424cf87ec1466dcbd84fb90dfb32e2291fa932f9b7c610005301d34cec92e09e1c0cec95e12cd4ab10da43ff86502f383074e3ef041396be4f77e6aa41ae11ba1f2f99cb7e8ba71ec0f1c0a854fb0c4c24d2a398e5340c399461649423a7ea7d2cb804d86aeb120bc6e2421a669a6dade65cb2c7eff0044999212b64e018c8a2a7f76ebd073428f2b0240425cf363fb7331ef79ce3b98dff307e559388443e252ea4e45b0d3127d04b5f24ec193b3fc181651dae6c693ea9daaa7112d1108fc2ec05fb21345ba9552e56cd0fd186ca96e9a5fc313b494025afef56359405a554d07c8bbbc99b976be40a95760b662685c32a1767ee038b887004852f0556d59798b989dc4fe17c36ec47bfa87aad6711bfdcaafa4b16b6a2df769f94d6f2596b064be974a70df5ef3f1ef55b37bef2df7de52a624657e06fd05f10551878d404d9ad1ca7e68e34f175fbe88df4041b88bea247dd08159c650491e7e8c0e3b1e48a03562925c52105eda9e9baace4297ebb71c70dbee5ab4146ec48db811f872fde65cb4d209dc36b7c80ec2977855ae875876d107be5c2f1ac7785d97ec78f9753d29cb6a1d8d26e94563ed4af8223f5a89a995389bff1dc3699e89102cd4e04c8a134e38a154d9d124f8fe432effa670c40c6510c2c15088d00f2ce136618c106758d881a110a116ee2e42a8e1f8e198c2a27164e1250a5de47bdfd96553549959b47816410891cd2bdd26672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276727672767276707424a6750a1102886301402c58ac80a02b984a69f951f7a89006882d98fb4b185e5111c1f5bedc0524c25b02ecc13c61a038e9f1be339519934025faead81250545c5c9906bad8df84a1c2b4f35b0d420c4d293828262234ef11e282d15272736621541273a4dc3f2893e8e40558b15d94ade307c13493339c4091cdfa320554f481f74e0eca1740caff4913f6089c5073e4b1c0f7c963c1db8e1fb650ea0c987213ecb1dc09987252038f0599e36f059d668e0b344d9ef773240930d213efb14b8df5b70e6c2521119f8ec4218f8ec452ef0d98da83ac686284053a409e2b34b2108ceaca46029d658e0b3f754e0b3ff50e0b30f617953c49940d7f0fd6e034b5147029fbd47043efb0f087c761cacf2fdae04344520203e3b0d9c1995e290199fbbf580cfbee387cf7e8a41d10234c5223e7c6e2eb0e04c0a102cc521199f3bc8019f9b488ccf2d448313d0d4343d7cee277ce08cc90d2c750d8ccfadf3e273a778e8ef1f1d73f2a6c669c0e7f6019c51f1fdcd03965a87019f9b6687cf6d8377744c8919a0a98174f81ccf7004ced4152cf590057c8e2c057c8e430978ef4d5dc4c5e74805159cf982c0520f993e479f99cf1108011f53910968729a08e3329f230f9ce160c96b4a9fa38f98cff1268798ee5b7c8e3330390e0e58f2027c86470c7080cf9106b3e8170134395084a929c2069cc1603e4316013ec3d50b10b0e443dcc5577c864e30799108e3eff219fa08e0b38b017c6e81fb5740a7affdf5a4cf01c001f8fca3daf2384093ac89307006963268923611868597b00f78e076e0fa104d189108e33f04101cb839f30ddc5c35706d4413a6120216c15219b839c3c0bd001ca289262c28889bdb3194056ece2a5043811a9c68c2782680a3e3a5ab25019d08e8404007289a301b20802ed58c210f18f2439168ba8cf8708b60bf321937670eb83168a2e90aea81a6c64b170ac6cdd98b1a1e6a70a2e9e269000ef6d96280ce0e3a5807289a2e1b1d80b04f95bb2c6088028624e01689a6e9a28b60ff1ef2d24cb94b344d2f4dc789a669ba333757045c191a5caa89c9a1a6058e6cb90b50344d9b0833c48b4493341261fc0fa063009d02e8b00082b9794480fb7257dcdc9eaa89261994fdb84d34499e08e303b82e80eb72493737002e0eb7e5daac3022d1e443d80a5b612b1fc288dcf0ff36e21bfedfdf87feffffb3834105876fc1a1e562aa51ad59a6b2d75e1bb1b5d65a6badbd2a2d7f43cb0d37fb916b1bbf6dbc61a9a0540a4b05d9b0b2b26223b66165656565656545c5fedbbfd955180ae3c150180a43613c2c35b0d46023666161616161616161b92aff36bc0d373b4f0db6f14a0bb369b55a988dca6834b211ab8c46a3d168345261f91596959bbd466544a5521941494149b111a3a0a0a0a0a0a0a0a05c9595575951b9b98ba4d8c623db78bb5241a9d495ba8268303131b111d360626262626262a282f22394d1cdfd83238a0775f19ca8385161233e3939393939393939b92aa3a76144c3cdfd43856d6cd2ba6c5aadd66553526bc425b5d65a6b5539799313939b7b87ca884aa532e27dde6723f63ccff33ccff3ae8ac997989434de662a28959aa92011c7452ce2388ee3384ec5fbead59b636aa226cf444dd4e4e948ba88bbaeebbaaeebbaab525f54ef8b8e8db956abd59a361b866118866118865d95eeb98ebb190ea98ca8542a2354a394524a29a5f4aa70bf71f74537c65241a9542ae892f292524a29257d8cde178d493fee124dd8cabdfdb76c66d98f97b276c92284c9deb3ef2c832f59673f2e329f9cfd04b9fb8a1ca0095b4518ffec073bd5a9fdd82afb59390cf28c5d017b0b38d309a04e3ce1e6169848d6f9a003cb57c530d48b847620c61a30c1fac1ed9f6d5dc49f22511ddf80e1cd36e2e9468e37aa86b0841086000408102040800001020408901c9c0b97d9c6d4de8867c02588ddc71b51aeb54f93e00b4af4117b74cf10b0f7209064ffe3be91b8cd764f93b0ae7d4a3e7ffd3c127536a2fc26097e33b2a934d979e43e82b196a2fb52bc69172cf718ba318433d9e73642f26eee225f72730b8d2a26c2bca7373750c9639f899e7eae4f3f4bef8eba18f5e688b8e4e67eed450dede9f700b8ed2191235135002eb34eda6eb49176f3c265d6f1cda5b3836f3ae651ba19f2fbc67174469d0c7b936ddd135551d53d70464a16c6be85b4100c978deabfcc567b732d6a5a7f0eb9bd66557433b4ef6e0e4de52a954a2557703c18fb15384dc2220dc620bc34e00bd63e2bb8ce4a6b03b26ac017ec4300613059b3dff8cd0a9621abce798330e962c83b8410ae1355dd63850b9d077b932ec67573444c6f7669671dcf9f9a168968128639cb57ddd3249f6b1d8dde5518c3d9ad803128b24c3f760f24b99af6f19e7431e8cdd4a49b315f8b249608e72c12bf0310f92452f69b2bd47e18fd35e29d5776282da766bfd15472487c230ef9fb8dc41886611886612a954a9559e01ee04c0d4f77b36874ba05ceb4fb07b1dd9bfb876812e6afc2be76312e0ac391bcd43dee823de97f84f55021354794350247c5df7bbfd91bd187e873e401aedd8ced5b24ea646cdfb9e469d45a47a312b743649f8d54802fd87b364e01c2603f2d89ed9eeee99e9e6dde20eae5ba187d73fc96d921ac1014557354d1802fd847159ce91e7bd8d9de81b18f538847bab8c2988cefd158bf62d17017cc6fda05fbcc65267565d4f22b52ac503354ddb84f935eeba13df5fae841c0b6c7fe51503caf219ce9ae4a0e89b7bf21c2db6b9f6def7533e8953922ee6eeecf6274dfb7467687d8ae100d5541083144cfcf10d54a4814405800180a89c207f60e86f654b3d1078e88456d451a0d129bd9cee61c5c68229be1173066a349d867191a2cd85ad981e5fec1d8b74fc77432be46261feb60f4ad416ff4d124ec7144dcddd823050aecb18fa88ed91efbd8a3637c744cbcd9b69b0dc3a1d102f763994f051a05c51b2f71d9ca6805f61b013869bbe739cb03887c247e87a8ea1cb0d72c8e88653c9edfef38ed820d01c2980fc63ec39e2018fb2c83311e8c7dca176af6d7ae11d271308c7631fcf69536629518164f0c832dd8ad21756a0aa28e298960c208491081085310415e1faff8fd91a5c2fe14899a5760f99bcc3a1e369a3dc4fa479322f48a50513423c903cb9691d87217f959d00116a0a97b4418f95956518002a9f9e59f5d0b583ed7fdc0755d8cf8975f1ee36f7fb9bbfb8a2679f41574914fe567cf5bb053588ed41afd8f21ceede3f60decbe991235fb101fd231415de2563837ac226d04ce6cf1bbfbdc52907cd7bd6633c9edae96e33bca87f770ce3a4ebbc847a5260cc79df22cabd547fe4ff2234652db8a7b1dda575ee26e77affc49beaa89d8699ad466c87e5a653fb9100dcb59233ff909d658d94158deddcd6aa10e026a1f1c644bdcdf1da449b28960d929f8221f06b586bf0f91ef371d83d3313c513a13767bedb279bb397a3723fe85ea62f4c7f71eee83a766f98e92abec5a70a10ed2d7c74ec54ec54ee5166ae934dfd2bee2fa473f6d9de6e918196dac8ff5950bc117195b45b07ce9588030f2a5943c6ab0949f5b7e0bcb2cc017f9b975e0859a7b958233d8cbef23d4e89e88f5c718b11c11fb8d36978d3ee4536c84c4f2860a8c23d6e015be922f49ffa39a92fef1a30c0267a047d9283076714793ba0cbe4879b38d1ffafd5e7fd92f0835ab71a3860bec5ef0a7df6bec0ab6130c3b0caf942b600d9ca2e63a7f7a3d82338d2f17d6876d8bd0f6d0a4eb61375f879ef7c57c7f9f0fa5f7d0311005420b5d6026b196ee4e428757454209a1aa6b015fe284f32291af4343082184f22ff872098982e6afefa16372f561e45926b19a42862adfb121178f1fde9dc119f9fe5ee5dce616594608658bc7203f7ecc0cc60e4663ad070c3ffa95d1860ceeb62390c1f0d6884f7f8b36cbe0d837cbc4da24ef21841042cf8a60bcb94f2bb95e1b3238de9f339e7a0067e2cfbf80101d93a30f9e3fb3c49b94579c1368d224fd8f46b7f6a8f183b0f361845bc6219ee01861e20f8499a72ebeccb89b6dc8e0d1142adc525a35c79f4363f8be0ffb1fb0ffb0ef7bd16f9fa8c4c4e4137dff5dd8a4922b7a1d5a45fef5f23dab22dffbefb74dda29330307fc25009668f8f9322ee08cfcd9c2a2e2f389cca4812ff33f3b4f4da2e14e25a0cb7c1527f33494e7a9a505b8e4f3f7f4374f0555e6a046fcbd0e5d628da85ff29b5b93a7b666dae069f2d29adc796a520b2eb1378ac0dfd71e799ef0fc799a349ff797c521717d179ef7592743bee779ffbd0e7d79b606c9e3885845460beebe7bed256bbea3a6644d583f7b1a3a18fe5996d53aafcf01c01bfc5e5aef3f9be5671fbb1752087b37b76029ad8d968aab15e1287bc097ec45b85a921609aeb60bea70b59c0e87abdd9c66c3d56a2c0d574b7d28ae366b1f19ae163b82e16a2fd585ab9d3c13572b638dc4d5ba0df892bd0edd838b6e0b7cc95e462cba2f544622209a3a08d33fe714614c1bcb26f56f2a5c5f574d7512f4600921e8d4744c2c12051168848c34f1d4a448c33397d915e50542e4c1f2b3ab65c7c479b2d12e72a7ce2b89930cb09438d826d2748c0e9a788a34dacb9025af8799376a929c71c6ef9aec081d3a383ec4b7c6f6a44ffb1bd86713cc7cf706ccd17edff77ddf7d585323867083db16b5ed33d5ee0decb7d7727cfa3a78f4d5bcdf65f2f5494c7eabd5e4b337b0cfde7fdf1d0ff2250f40f865813f0a74ecf0e2ea7880f085850c55f426304a5ef49b892dc938e05872ff06f6f9fb1c8e817002ef80f0eb7e8fe85e7eaffd67e97b19079caba8e3ee096507ff4d6bb9915d20f84dc2ff88b77e87709766413cc30e402e1aeed24e24c35512a31d8ea0e125e9fef2083fe288ea2e5e8497e4ad3a18de80a5a075c42962c1124d34b184b851d7b828e5f51cf79da669de57e9514e8bdfc5e7342d7b4dd3342d6e525e4eb5af7a4d504a29a55dc6695fedbc8ceb5ecbb8d7b48e8b9b949753ad2b69826a99573f8d769b4697a05d4729a5947ed5ebb2fa79dc77da679a5bf9979d9146ea24a7ce451aa9ab384efbfe94b8c5e8947b4da34d50aa518e524a29a5dd129da6691ac7957cf5b392ac7e9ec6699ac6d1cf2817b5295ff328a71238aed3344dd3bce4f344748926344dd338ae2bf9bcef4535fbec7df67995d2cf344ea323ca754ffb689a1228a59c4639fa1cd5a8c74de396d08926adebb2ab1d6bbe846794feb5627124dd3b47b9f7eee68898e466936e467cae9fd208315da252eea2d7755dd7755dd7755dd7755d97a6719cd6c1a0b4aed3b44e139188ba9e2c48057a52d791681a1755947baa048ea39a96691cc7699aa66954a39fd18c769c46359a699c0d9d0cedfb674629a594669ca6659ca6699a46356e5a20528b5e0aa20e293970848c59d682a3971a937dc986b2493e553efcf7121011c6a5cc70025eb76963c7ac03cfb9433ee1737ecf0b6a4648c7810da009cef4631f691c85723f39993fa84ff51bc0991cd551d1441f7bec461158bed6cdd8de9f6eef99cd810358ca321f8c86005930867dc7d69119f69687e83e508eba4e92fecc220f9cd1fe4ccaf939e299699aa4f3ca0b7f6cdb748d13f5e6c7a4dd8cf92d7fc89bac9331a7a3dafd1ada6cb061150205552250e649a40e9232bccde4a84ac0d0d42ff10623b510432336a4bcaeae7b5abf44f42dfaaafd25a5fcd6beebf9f4e76bbfbd5f42aea0c2f43728582a275adbb7cf0fb6c1fa4df69b4ce495d41e47d5e4eec9b04786e47317c15813e90ee2fce692dc7b6f0d1d0f7d43bbdf3ef76f37a2b2cbd2c5e8ef7efbbba292327a12cae84445f7c8745fbfe4bd875efa27f1d25fed66920d17b64b564390ca72b7d744d9df10e1ec7be56679923bbca572b30fe1940b516e96c1d96f4697869bab77efc9bd26b7bbdff5ea779f4bbe23a1df5d961c7dac7433ba17ddbc3d7d15c8653662ad7de08b8bec69a0279c80301809fbc748b547f5ef98c2d8efc87ba35a4d1555c74c22ab944e86dcbedf6fb24cd3ecec5a486c8d3c55ec311eae058b0d61ac881069a57ad2c86f7ca43d6ced6a4d60edb32ef98dbb60af691fa1a97b220cf699f6392416fd0d1116414cd2185bb990dce12d1f7228b25be1ebf6bee4e9e7f6f96e4a17a3e4e688d8f371837df7c48a5bbabbbbbbbbbb471d0f2db234743344df77c3c1710010a5f6e12ed35f351a527f3a188d69e85cd5042bc0526c792b3843f2d34796f363cb4bd715fd77453550f4dbcd5d033c5f23113d89c8bb24f73bdacdf0aef4cf647ad5a4d6e3d812b5ba94286af6d56ae5590ac7d9883feb73a393f21c4098f9d5b6d00e7ae0495a795d688173af5c89378314bd821d7f9c484b3c5bb4ea8f8c8c542fe22a1c5722d1ddba19a27755c7c0950cd195a26c9565243a4574786c2c4444ecc15508a0cbfc58238524864415fc90e10b8e4bec4f1cfa812ff33d3a81091006a8898c6688ba17f3bac837918b44ed23bba93aa3d4ebe88874747474b4d7a13faeb60e0f7c893f4cfcfc34918ec213464e2001cf7f51a3594d9a42b7572dd43ade369b27fec41f1d1d1d9d1e327f43e1361b71f5523716a04b579dda854c8ada66c0f3e711783e8d1470af5a08becc1428eafc1c5bb8c6f5f4b75b43f438223e125ba2dbab12ebd608d17bb7165ac8e698c251b1e85ba7079e3f79463878fe8ff9221ce0f91e6d80e74b4744bbcce73223bd3a8267af268d4a7b842a93648826cde71a471f38a3dd17f4e288f3331b312b650f493f003584a7fb753d142cd56f9a3cc2414897a8928711383258b3651273ccdd5dbabb4fd6759a2cd67cd61658d1d43f2f9eec3a5d3424dd8cebe577d74bec7a497f7201966018e61478badf489b796c27f1cf761c69d97242f5ffc9c2ec6c9aabeb93d7386a66b70176ecbbe6dda6938161d864cdbe9efe45b1c6b00cc3b20bcbb06b88440c4c5862094c58428cb11d93355e3548c0087d154651a84f804ec860170980a52c86e39c020c4f92932d62b20e96248b99b16e300c8642b2a0c21be5289d0f5710ca547f7799924158f00b36e649a652344a4c463c227da2469c65648874ffa8a68f2a48c6f538e1ccd3294b2132d5a4994ab1583e75d654cf10d1e71984b32248542781005132e52829aff2d083f094c192c5557a69694ebd68240bbab05a13aa56190b4f2028f353656458c84097f999f4a954ed9280a6c923c2e48983e7d3a8f4f2eca6b20ae1842d4f652aa72d56866522969347344939925284bd94dfd9efdd6699c23278e64a8242a1ee94ac08339fc747378f6abd19aba5badaf53c47495634394f84999fe249354bd5ad542aa552b55a1be57c62e080fbd434f27b1a5e6a958c97bae5a89ab55027479d5037e219b4dfa4f4bc0feb3aeff37e823449665f7f7e117046f4f3a70b9a078e012c45d60be03c4553f38830f37700a1b5033cc4039224119024dfb30d80241a3d4017f971c7a83594ad462a5593b4fbd91648927f91785ade62d1ead1a87a76f1fc705ddee7615df779988a57ad8af7f2bfdfbcfedaeb138ca68133decf6f25604b61ce39e97bf43def3f918501b1e8b7130d1b228834f10868062952dfc322be9fdd0fded3df3e6bc48ce13dbdb4d6dfbe2abadee469d27cfaa29f4f230470a6067def331caa3662ef6678ff79ff7d6f632a0ab93148ca166a8a172ac4f36d744c068778ba9b11bffb41ec4d25a00b8e147e3024073f34e8f9e8df2802d7cfa2ef7eeb44df3c05e1c7700949e0c11bfca650a530c43a300b15c511fc3d3685ea331519df7bdd6f94eb8e074db3df6f1a27fa29faeeb5df362e7630bef73eac93e1b58844572546e3ef7380400786f8bb39624f64bdffba96ee85f7dd3c6dbc3b4fb547f53eab76e338918dd8c32131fda6f15e7a2fffea64782fbd97de4b7b4384650974e098fa1e47cc3125b30e9c6193e48d3ff246f99fcd3c99c872d13c66d008a84656098939371209a110a110128b796a9789a56290a6e1f17e3707e0c526e2e81315c6d49c4880a5085d681a4f222851f09e90a7139367c7fc31a78d37bd875ef634e2842c1b15fb2c7399a2d49250db51cbe96cd46ad4526a336a316a2f6a27a536a8c9eaa7308242650214f25809ca94742fb613eee404f6c907cf27320af239b990c9e664c19407f14fa6be4c6590264d9962a466f7201d935bd52a38537fbea7b269535be611929f6f832b431870b722ccfc4cb998b3fadd5c47a3ff2cfc60128642b2e0036fb0218c9284fad4789a9f912a8b914ccf4f64c29341e69c382b21d24573f13862a4888af4f35086c5361a753170c0dd6f3d324d9aef02be4cf9d0c620cd7d76d234699e7c525e9ab30849e8898c82f07ca01489f43f1ad5536a6ef4a7c6204d9a1f534eccf9f3656abeec9142f0fc4c025892ac1a904634392ac2cc9f33982fa8842c587541f154cd084000002315000038140c0644a3c178288b535dcd0114800c81884672663a92474192a3200e0308110000000400030000080464860c00f15574c39282b5f117c87c884521baef4cd67316a23120203acc43381a1707cd4ebdff2ec356b11f98f8bb54870108f72e45faa5756116341a717da3c9d55f27fc7a2f2aceaf0df9b692974f426938c16ca663cd5f4ca4c56468759f92fb7abb801c47d1e8b4a43e76da9a72cd70ff5a9359fcbf7066ca3d845788994ef45a9b877cc2946109507e67876f59599423f3056b9490243415d456f44296e75faac4c4ba7dffa1816bd722ce29a58ecf9eae4391eb8d9e350d4e45348a915d86e9d1fd7d825f3ea9059a2508fbfb4ec901015443765a1ab8307b276dda42a338db62b9eb72f43c84b216790af1caacad850e8623b7ca5a146553aec69809828cc9e4770b857573223298304f2b1e600d12ab9a367c9254b1be39ced81a0e04225e6e0fdfe826ff4fc1b0efc84deaa3e6d6816b28b8d3880ab41f47d049b5367d03ab74ea5cf767cf05aecbb3f8cdfd0e4c2c85970729d663c06750bd946ea1d114f0e4ecc169a8c3a12bce618de48336a3624b188b9cb35bbb1ded9dcc7c0bfe23061eae79b3f4a3d294004b686243a9def891f9bb771a42c847f4edaf1d12b59675f156b87fc59bc0f575756c6054c8b837b5759da4ec37e7e2de5db361ba3fbf047bec875e96f20b9ad80e8e7f25f4ee6cec6816a1bf835c2ee5457167c0f7b2285b3428885444639aa1f4893c705058339ffefeb7a79b3e56b027b703459203b52683a83a0f75e9eb78e65c5bfd7d763f8f157618075428364bf79b1289a990db9daba20d3f2a0508272f78a5f2913f7784b3da612f4de8d2da67b8bb763738909e44417c523814736483e6c3c0083a3f469a494b57a0e88625844d5b2537ce115c309c7cf88ded6da10b53d0475686f48ac76194320d9adfdcf3f4a960c06f4db75c7fe1d0d17d81a2a168fdc799fb91ed22617d2b6833c947395aac1ddd6718fafc77673e2e5d5ba48cc57223569eadaec40dac37d075047a2abc4fc8c9d74d40c24102c3677dd5335533460c720517ccd61ae6490fb20de8cbe56bc01e4e84af591e3002f50532de8e34a8e4918d74a19e0f21d03352b60d24cd5fa36ef510a4fef2a629fbe4f4b4085466222212b7ce817bdbee963ed7b8fbb35c26f2afaf3aa02c7acba0517f1a811535e843f79a76d7c682e61d44219142c2420047b7885d429cd2fed3bd144f0e63163a33787e2954a373248afc0885e6c86f3ef8a1e16b7cf276119b81aedc842665ee1944418adb295f67b3a157e5542673d6ad0db6416fd0ea450a635798e37670c75e181ca342984a664e0ae883f14cbdb67951e6a473180acb8d2110316b89963683741b4f0cd10d1eae58ee3a34a55afd3eb85ba8625f2939743f496ad8b69fb4c61c12dbed15c13f1ee17bbc2f258ac69a24e77eeeeb7c1a6145729f8a157851a25bdead6186d0d855ac26852756910439de2241d3ff47c6fabffeefdcd59a2ca19a3041f7cfd6a7550077f487979d6c56987804987ac7067bb7965844b57c97d10266e0d6c98c406a98a538dd54c7b4678fe4ca176f939fcf027d38d86a2f99ee458988e23ba27ce11ba9eaaf02ba0dab4f621feb274cd7b61bf60ea510f4567a078dd9c517be2f2aee163f8c5f0fc2a24a0f3ab7f698a407c10895b36b01a5317cd4a1f44440e8844dac8ae1b92d7484dc387aa3ac0c664c9a6713652cbd799ae84b6307fdd33d854c37ece5a621b66901af377c3855c1fd109141a192bef12571297dd11b7393a5b7ca9c895ef746044c379cb468d92cbdbfc2505ca33b9d87111ee51da3b1fc42e857032d939e6073d973209f0163fee8c5e6b52657e4eeea9eea0539a88e6ee612ba73cc6061043cf72e125db9d123833d95686c229a596f2f80c06c71109e28cfb54de7fbe19dd205f697a9c0cf9133619d3313c38cd442051d05730533a16d174e0008563b4b84a9fdc6dd04422f5b0606b05896a142a63506cdb4eefe1bc55a61c087bea2bf01e4ec06f72bec2db940214c19db2fda092c6c8cf88a78837ca71eb483e2b33ffc5ef3ed2ab0bc0251b943a85ec18af93077a65455c4d05a19f1e916d4dc1d67302a8b1b7b7ca322afe4b4ff16edcac5e0aae3bdf3c36fa5dc93a4ee9fb4b9bf842d8cac7967ac702ccc59c9f27cef29ac1fa63a87c220893f90c4c2408425786b6812a21e32571b1f9298a74535a7b18761e054ef524ff2ede3ce4610ef34ee3cf529bfd97ec88d6514e1010861d643a3d937e15de87d6734b79200fe63716b64200de9a30d4e3bbeb9c8f5bb8a33efa876a4b00033824f5bc1f5f4dc8539160c8ed7850633d8ea346e43724675581fc0b9e66df1fa79b5e4d211672664f9c5ed49d383c15c2f30da6995a75d78f196dac1f2067dd73c84510f15b24301071a2ea9da0fd9b0937ab7e864faceb467b9ac13709d5b25086ff70b9886e46546ba96439161ce6b962ea74115960cafa01baf856c7abc03fde711141cb77a464209d8095313b4a1b52d5d06572b1dd95395d2514ba29f2525252f18b6baebb2ae77367ed75055af6c8e1d1422613e80be3bba82ad95fede01bff96ac4363001b980f5dc2fc097a266f64956638a5620cd0ce64f89eb2a5c768d99cc6c033b984540eef0ecf1f166adb0eae6fe094cdd6a56f25a1941ffedbf40c6967f0d56615f4191904974a1fa19a275855fcd2cadc306b50a82566867232444155d64cf1c9811e91f3118bc153fe50f8da3c73866c5cdde285eaeb674c72b588018e42ece0a2589db63862d71aab912e7786e6d46b1b5b18a1ea98ca40937a6812f050e74a81a0ee48a51c8b7cf1c4051f85373616427a307f23b7b892bd14f28c73778dc2801a8c97c2ab851b6f68253dd3c5b54367f21344e528f247b76846161ab81896570a57be2f9c0bbf7c3bddb0ec68701d78b573622d6df09a8e9e6265142994e285a9f94fe54479096ec302a05022903674e00bc557b6d2957f75edd734f82c020fbd7dbb9cacf967996c2f02ff98c8684aa45504fa3fb95589546c3095cb26c9251f11d82897c3c84b09dde6ad1ff43ef65619d9246d1c4e1aa8f58d3f0ef6c2cba0721fb5fa9a0109b179e988b6fedd1366da724f99f0f45df55f5878cfa4e39c52422be250485c636c12b9c6b8b4d140dbbabeae0583ddba0e7fe939a9c6345135f798bfbc675a97cc4fdd490cacadbb790a54a62db0f866c4b58fc2f950e00aa71c62e1a39d6d3b1d3fda1aef7e7dbf841a2a26c72b227e831c6988829b3bfc2df03be788d5183009510a01da47d123dd1e2762de0a22a3f399e400dc39e6da837d0e0afb94172aba35c7a16cdb9327d29d7f00b220fa6aa33eddf9a7bed9ff319fa9518cad20eeffdfedda82ff4f498877f4134ba4dafcf505e90b69c84bb78f7ee22f599e1382556fac8fd9f5f7ecd1e1ed39fc78228d79734f352f303500b3f29d2b028fe43a709ce96332928aa51ff7ba1dcd3ae1bd722f918a49f2965d94a67738a917dfb9db517b00fc4686ba7ac9b34fcb7182835925c26a03b6948d556568cda2d2badf8241b055015b5befa7bec815879a71d3edb348c26ee9ef659c5c65edef46f597f04962f8a74f31a64bec72fbd15f317f56fac8ea6799c72c744a992cf1e71f5855445516942a0417e136c0623b98e93f7a1ccaeec13a98ea3c873240272c97b12d14103437463d731abf0883fe71751f6368a5ab79f1f8011f33a6c9a4f6ea7fe4a65a0b13c7f450012657e75b0c29d23ca6ea182cf4ea94d2c07cb285c6b5eb667ea8e0cfac72077fd5cb351cf6c71f7c5909325c04a6e1f709c5c0c63451f120e0c45671f3e6f2160961e94ace87c18eec93633003ba2befac7a762d8282bdeb93774a49abd4761f28971fb2cab14bba48acd72b26acbcb5a2ec65db7a37507530f9ad5edf7a4516d8b42a832a0a507ad88b44afc08cddafb5fdd40a85e9ede0d9ac84e45fb33299b54c41aa94e9160e34051bdfd9bbd2670f17f622cbee8a6ee5738b5f165498232d2766da020bb07ee90d6fdbd21fd2a97080ad741bbcb80b64f29f418f60c62a6e7559e6448ab4df93a2ca045eb8c6ba75ce4a8e71755a0eecd4731c088d32ef89cc8e842cc8e615ccc04ed8e51310be083a52231d89637a121918503c3e8554bbd590843139c2e521de80d8c3da09b5eda2bf2cd25bb382b7acc3525823df6e971894dd33201b6a1e32a22d7235b2e529d743db841e98e7bf7edf2c4c429b5adf666c986ac2373e4d0b1f22a383c165aedc8b777327ceb26ac91b81728956ea783a538e040738414691550bbc9d5c250fe02d337ec6f32ee9a5c31866016969a6dad665d109be622704a2cfb362f2036feb59f0fb515e3466ce66d67eb6aaf658173e71cbe05a1f4fc73f90b02faeeebea1ced5d284019b2398ca1bcbfc4c067ea1c53f2f8eb34ba05da9f09c65ec139afacfd76d59083916229c84a276eea7e18e74c4a9e8ce43efb60543c4affcbaaa0d681b442bc809526282f79c956e68b5d5a009f557f6db5fc5593cbd124d0fbeec4dd7a530ebeecae98e7d82f7b744963018d394f366e38f3fa2b84457a74c911fce17f31471a9b3784ee91862a41c5cd09a558a1d186258c06bf7938705687a33024d93159c0b6f4555bb69806aed278eab7f6841292712dbe9edefdce870e66200a8c360b69858c7a4bd9896f401fd506ee45b553546ec89ea376992a44d5073af4c261c05a5111f7db4a847b95f77cbc3bcfa6a62a00b42121e6dc959ce32cd6c1e92e403e4dd1d9ab055dfd520c095189be2b2215bfce3cd6e8f0e576ebfec4e0ccb5035970c7988faff832b42b48faf936e3ad39ac12157b6c7adc6fd5e9b61079c9c91f14319c2b88e1aec790edb2cadec2530d16c31a4b6036a0040826bb06bbb0719f1a95152a5101e8312ba6eddb4e6c56403195b5ee817bf9551ef7cc1bb34e2a284b335ab025715b84076eb97c07ed7de576452ac51f06ed23649ae0f82372cd09f3bb056d71519a763be286bda420b43de0a8c51980ca7882388a846742d7e41d28a8fe8e152505fec7a8a723a8c3a8ea0f2eaa173e0100b58e3a147b608f8392713e60ceca22acce80454257295f9910a51618e3ae40f80d43e4b8c32f61bb3f89d7833e1816205a85c2b430dddd4cd38a46cf09a08b12a8864a18cae7cf8ab643bda57c31a71f6f9795a4cc0e8db3f2cdce80ca3b634039099cfe0daaebd5561c33c74698f36b3d8eb65d5317ad4ac958b354f5456c56f37ac3bb5f5457850a5c5668c6253122273c66f9713178683622e2566e185fdd88712a7a8a31d90b19839a8824edb57c90838c93ea930cd6444819ce346a19a3b58b19c42d573396de5c353983dcaa672c3c8ccc355c130d6ba4e17eb54a22151be417c23980882669be2f624609868903ab09011213eb0b3ac807512a0e32005fdb72e829438cb583ccc37b93402ec4fa0c0037bce6c4047644f4f5927f304a9e63145d4358d0a0848d2fcbfa54029355b885f4ff14068fdbb1b50f1311278836e8695b482fa64852d26e6a7116b3256d138ad986d34ba680b67a6b5ea9247c466a563c86f4bb0b535a323fdba89f3820d92fe06bf70c39d20aa079d074022fef1af042381df2936d2f8ceee67c1f36ee5dc7e2e7467044a273717ac78128dc6b0f45ff761620bb045de5ce14c022a75bb11d2db01ef710eeca04e05eba1562a0ac7f54e8c7c25ba27ea00482d4f1c0cefa0a8a930b6fd9886796717feff002e5635dd81602c9899f82b97cb05e87fb0ee8ceb52e75126a07f4fd4625dadb21cbff17f8c9d19702206c7057a82f47c502aefc85db4bfed1738ad0e79a3d145f031c67c0d19137aa52a690d0972e0c81b9aac918f89f84c246128cc0347d0851435312755b954367bedeb2a47c1122f196a55e4598fb628da19c5caac755e3987a1a9fed6672a90ecccfe8f39ee02b76d5c35334f0e2d7db30365a5feea4b85762eaef96672daa6ad137c4b047938b743d5336798984c4eee56e50e4759ba12e5815bb36df1672e083321fa00bf2f02e4cde9385f186abaa1a2724ca607aefc46b6af853c41f5d504c563999f3ed6015f0a260676ec381d999ef01b21c337ad76cd64681c0b36b6ae88830d1587c80441a899bb71aa9d783e66697927ada2950807b2013090340340c2096d309cbb7ed7f34d9f99a742415ca93e7463472f1fc4eac1e701bb5287f758ea6695d25b46fb44d840f2ab8db7accc145da5ff2eee7ee1730779d47b0de739f5270b8db1073b895a236a83c4b857b94ed39d813788fcb82486ed4d163bbd198cf4c3f1172fbfe2bb0c678729aab0994b53ec749d008d77ea1c9153dc71d7b4c61911ddd624b33bcb2f4897a82c7d6fbf76aa4843e25ae9dd239fcad4c451446eadf066504e7ff136fc77fef01bdc259a937637fe53ab632efcd3bd662e5d008da1e2ceb6015ea1606d004ae49089b3585c47f758a4bc6d5ef6240915dbcd6b288c64931cd3c2192e9e69617164fec8c812d4bdf22212867c04aea13e610edad3d316a58f7be73863ac1c9a7bdb545974443c01e67d492cccf66b1d71073aa78d9539d2059d8ea6b6fd8446693978227fa808940cd1e94eb67027444b02ca6f2e071983fa4e6cbb587ae0b8f9c52a49aa22ac4c1696d91e3684cf26fd32c1903d4a9e7439c8868748bb0ea29aa858995f3194698e6dad3e244bf7522ede5f8f69ea0f10984f2d9130bb22ac8f33228b6cb7256466f7b6b7fa6ec9dd74ef841f8582514cdc4ba51c6be2a788ad48fe4b1cbb033cb851f4b83e3d4382be8aa8d0e0e4be0dd5420d86a30d3a5e7575beaf8da06ee1d2465dc4e39e6a1df59ab078c0a9676ac189c589aec6cc7beee4036350a8ba37162adbe8dc431dc033cfa27b9fc5d4332d65cd59d63fe05d0e3c56d4c01f42a4ac586174f4a83402f3710e6807ce9a551873e9d255636318e5de5ef56cfd78e0192ae5f77e50f887333042112e9bd71f738c29c9507f83e25b3604a91fcbe31701c789e4fc544c0878646e16be31c909b316c152cb4fe5a6521493fa79af62d053965c32d464ec590d74532686a29b3687292623a25df38c4c8350c008223c2cf9a8a52a4b6e5baf3b2c56c9d8075fefd2d9da2262d0a629b02cd943d71a6be97e9579325d37b0b27b48413396da17f9e0a73b3149369be21cbc9f68e25b45a95b053b5ec29f9d94c42be943bd973c0a472a27d6725471e720ca8cba4a603accb9d2fa6dc58f8b52473510d99ee2a297e598d7b2751f27c3a1633004c1dda161493a616d224d3c994d136fbada6b4253bac3dd60e6809d149e332819e69526920190ddd801d032882a28e3f28efb9115a94371e0bb454fe4f6ad50671c84610d0069421aa3790689db7bdd3ec4c0cba8b1f3335e4fe285bccbb428d0eb6372bba73f36704dc25342dc6f07bbe7b314fb0bdd5257c9194ff2178a27790ea5a4f1a484902afce31217677b8940fecec37897d5cc32407f35fa3bb4ea148400338aafdbde323ac4c61d5608f8d88b4f108ae6deada15cc1f4791b4f5531a48926cb02bba4daa64281efd0173a0cfbe595a369ff51c2a4fec65ebf7b951d48279162af4d8889d66b81d0f2328e0c94b804e2c7362360ffc1ea4d95c2c7fd526a6697306f412b702df6ba47f5a210e0a9ee73dddbc49fd1446064516defa0e96fac6d2e5bd955d2cec0a7acb532fcc9f4c948be2d245e8a14853e05422437484137b8eef3dac68291ab9eb35e8973f42439f3b0034c9fae498f187a1e1966f34b3724b036c1b59eeb0f6a6bd806e4510186ecfee30d75bdbfb4abe33cfd4fdcfea1ebaf6f0cc8a90f726981d7e5a4b5df386fced8e422fcfd70af7ce11c88063c900f1be3ed01dfe8521a2a7003c10ee2cc5b221ab6a14404cade73e77bbe5cc81aa95778c4125e90eeb84b62c0fb8f7809cddc42a112cf04c955ab2af6a63d569b341fa5e437f61a993bb78c0c904b5ac2233286e2fd5b342567b87d1558195ac9e3e324eb40401a950bae283f3ac7e4699fde24b16ca38be938c731da8e4687b53d0fa318da4ba202bf44f5ec4f14ca96166f4b18e9160c3234a532fa3444558fcf39766ca170360fb1417626b4213762bc15fe53bbb3d464b77367bb79b977db313309e8a7f25083b767a44e7d45ec595e0e9751c460102b1081eebec6adc19ac8a18138eb066a8b1337aae87080defc44628ca70d6753575b96a3e7234999369f82286902a3c0526b3e725f6fab0ee4e147a10139df3f3dd45799b5cef0a187f7eb312ae9164e1d0c08cf37f0840370e334ae1bbf21627359217885b298a04631282e3a60910abfd0409452ca85aba2c835280548b9a3dfff84a1632f399af96cf914e6d5207ba21bf70187c8fd7395dba36c951577eec6559cbc49500042ebaad12a2b8f1d15da14bde7e29573e20a6e22a32dbb7abd084c8cb59f02a912e37c28f3cb46cf48f40d667810c6bae553a963279b9a917d545e28b55d32aa69bb32c7f2142a4bafd58e6a2e338d6b928d01334f78bd2c02959e31feac74b9da5a44f42605abf24ba647c117335bb3452d62b75e52770cb751d1ad2a19fbaf787d94ed3f94db31d693f04555ed3afbf0bcf85594c44df674040781a5865e04e8bbf9f4de16c27c062b299b130b80ea3a89c2e51914441432f76177702f95458f90f74193ce1ca69d5993938d17f39332e0745a1ad6778a081c754071fcdbc7e76dc7cd37489875ccbdb2964734f2c41ff0e6fed4277afe31c927ca140cd41a484a4e1866c7d7ea0ccfc31bd8df3eb64abd9d2575827b2414076c4f497d0a8829a57fae97b806913dd12105a27803a1b0a8b927d840f83994cee873e971ca699a8799a4619327f96c1f362b9b56c3d8547ba92459069390efdfdab9a647953ff04a096858f5ad19ad772fd0caf23ed6f8b683a3b14bd213752daae8c4b81b3adfe8345bf1d67bf3ac50016ae1cadfe9816f77a7da3f578fe0c2415ef6bf019b302cb97686dabfb9554225dab6f6b7bfd74bce05a84dbd49d962afe306505a07b434e999631d8e2ff8c15d8ca2ba86848095ca9a0885e3c7a169f1ddc10b0f4678369817eb0bfe1bf7f297fa0756690e2a1d9713d8d1db0d25212f85638aa742a2c5c2daed48a42d47a36d804207bd38e4259372a0275491c53816a4a70df953e9ae7f09314889290fb40a9e1930e21b00136551499c6aa53a6000535fb6de3138db560b855bfc5854211976db5e9ca1e6c92c1dd564bc4db09cc597037b4a49fafdc7ee6e6afda63b12b18a3bd63a0739947091021d7fa11d9ee0cf9f2ca9c6c3c069b8dde0611d9943572ff37a7daf2d812d59dfadf9cd25e1c5bb61e3268f54214b445693bddcfcad4610b9fabd6f14894c01e1d1da3fee20d36d1471c058b103d51a93538a93f42f9164c2458f1f4d9da519226ac4acc5d3e8e2211a41add6ee86eb33d0eeac80377c203d7ac1bac48ac56272bcec40fdb60218b74a49c799c6752b40af944840ce53b78d89628a92ace322214ab4187fca0745043d45849d73dc81ac9402e0c1c84a91c628a76096d65a82bdcba05b94a2cfab8cb89627ade6a3c3daf5d130bc1284acaec4fafb84345b41089180775ac9f61b909d30a842ef5e6179977bef020785365db17aebc2eb6f942165b3b374d092f552a3e72771a1257ca4d80e2717d2a491be1ec63fd623fd45a8c827027d1d29173e20812c1ef54ed075c2d42160155a26d565539069d4caca77987de3d369488fcf8e61d0c4c306c666754453e3256aa1aaca40930a2b454f5040931405280deaf11475dd14e6c5c6b7f42f9e72250472e52245415ea4ed78be3997555d0138c68d754a8ae9935cc4281d21b44524388d9cc8a654f1e88106f5fb7c3228b5e9f08bdfbe7ff934ca4b57be7b8e50bf3696cd00ff80a7b1390b9f685ed81ae97d7f2c192d49059026c2d31f55a26ec672a005855edea4cfe7728f271f3603a20cf188d64e772a9a60f489ba8b93f4152798289643e6bd41893c9816d5a4abfa4811cdb536a238a2a563f3145a39e328454a3a6caa85d164b7bfe6096d05740367701e2cc0a087799d8298ee97f7534bba15935cf5cf73adfc97a86c780f77736cf89a9a0cc62da5387457cd860bcebe58846af5a724c591583911e8e310298fb90948abed17c6b9101b576896aba07161187194fcdb7658756704429bbcec8724a108cd2124da64ddb392ffc09ea84b698d3bc597ad1d5f3f0e40a1d150339fd5e58e57717deaa7feaa646099e374ac5b8306be4bd2981c63e8e01661833cf7963f9ed18bd65b279965fac8abcbdf59d05330ae0f80e60621c5357292e47625226445d1d1aa31361acf5caa413b0635b675ac60c6fe2caf56f5432b9909e1b1c6ec67508c47621718f186dd42531b317ed27cd1b51298e3ee7cf4ac5008f6f937a8673e35cf3e73b7fce4c85e81a5491d1be85aa863d159147b0c2b0458f3c7d79e44954fc4ee4703e57744ef685b7349e3d654a25f45631de496dbe1d46860cf45220410a15f0b6ee12d4769740c8d8df9c1927414d2da171f84a0d6157b1d1fa59e4b4699f3651ff5645b521066f43010de5c90477e0394328cef650376a3fd99d69592d19ed60ae5e69b0fd2c1057ac1efe9e5ebc8a5f19ed6f31e1dd751f08ec3617a1f8762625fd41c5e33fba4f805c9109a2f8d72513a44667d9c4472343af20f896f223c5bd2989d27880366f5bf565588972f54197d239f546d7a595ab8890cb728c79fa274260d59a6ee7515a5cc8816eacb208401192990f2fd7f8c93fe6a11a89ecd0c5289298231282e610de805483da9a1cf819301e5a6f32c4a0604cb0bca5caf091d1b75537b7425e6b7468059a7ce3628bd0fd97b7fd628743af6ad13a2cbbc3b0679c2c8964696fd7200415eb59f25caaf4dd2e6baaf102a3486a243082f627ce82f083aa9c841324cd5add0c04c25260dea10b33649d77688ca47b795d219bdca171529d82f503262d210e509723f76686c04a965966d92629582829c240aeea0c05f3c124a362cbdaccef1b5351322ec4b92d59647179c790fc236168be90b36afebb3ce0fe65947a2bdcb4d4c0ce89a4408a67120a97218d20c91c8c969785f2c9674d468db8a68e7eaa0faff20559f74faaf7eb4e0950147ead0f407ea9b57edfe5b58ddc721d6df4c15b719efe2ee2bcd10adf0f07a3d911454354621f4132bd14e68d42c7767494a0e7786094e77555932db49ec0b043647e10fc665ee75a6a8b3f10c88335ce30c7224870000306e01dcb03522913273be1d750f56dcc384506c3034c6f9d461b65fff35778f09f3784769848972b952f605c7f4cf8bb317e12997267f190b77801ba54e8d113ac4b79ea8d714f846f6730c8e28924e50a32b9b8123289046204df779453341c9a05e05813c494b23998a228dc9aa498cb098b912449b3234aa307af70d7f9005afba312a4fa0512a69cabf305b554ec6e48fd497fe9edf872037e9a59b4414e1394741f8054bbbd4641f9642dca08049d14e7247e93f24012b9da9148bf3551f6d0200063c63b7d83ae04763085454e8a237431412d3c3929b028e28b668f1bb281d7376b21f6bd4181c7ca674fc4e59ca5ab200d1287300e88d0a816b47fc08f22d2a262215fae07649c92fe1ed383b92b310ffa1ed77c42b2b68e073a88545d7d245787fa55989f54bb416de462455d10f411a98a6a7cf24f96ff49b6d06eee9a7374964852ac1c9cce4d307affcf6252adf069035b6af568cd448f44d8aa7a5954d8807343f412a61f84359b67231de282fd8f2bc738bde6743fc8800741da92961da0104df4cb576723d4ee1a5ef241e27a349739d595188425f480c2ac9573716c606966fda62b81e6c2168655a3cead19675ce6099952facbbd70dc1757b8bfaf3a894a11fce0b9d9899065720f7c4c79223fececb3cd086cd934427564ba8c269f8d3a31eee14629d4bd70471ad80ab18f1421c50324ee97c9cbd8375ab1f1899e74db4fcda824e090ec6489b0a7540131895b3ca11461b2dbdd7bc0d7d8f039326871ae66fe4074bde6bf41a0e06367e25c604bd2603cb6b8234228188f9a71d488a7a50a74d0eae48a90e15f5ad968f517888265f16a450a64ae684b9229efcbfd3bc6b9d68ea91859fcd6e309223f889c71bdea373da2550dcb9a69215ddee73dcb0b38a2ba878959e603211f140d03431e01e4586877c832647260c22f639d34c75b3d7572d472ec7a2846a0a69aaa1437ee76e88502947b71e0b97109a2bd75c4619c7fc2d557a2882b17e9455f80a160bbf32e0acb3c22d6fe9ee88efbf3836d1c246b5c9731d94a196880f4e4c09c916b5a40a3897895b7c7c4830532b035fa5479ca6193c9213fb8f529795f309f4078d476207f33d201fdbd832f2020063bc631ecc00d2051fb1c729debc398c75578576e0934cb63e67f182d43a1cf19520bc4bbcff0f524f25151a39465acbc87d458a8aaff218b463b925c892852fef597866c2086bdf4a36b7a8fa05d23f38f40a5642b96bb97f8c88388a0d638f9c6133979b937955f22dc7582261d92eb1ef40389ed4f2c6bf818ee5c60118d0a179c17e2dad7bba8e685f7d3549df6e729433efa240156624c34f71016f2b7e5479036b3209e4d4e0f03207f35a1fcb16b8a67410855a1579533d6f35575dcb19444fd1e20a2dfa927424641df175c8a29cf695826202685a3c53b8346e3449f894c9fa6252bcdba92285064012652be64e3219ab991db436ef4c8b72a616da81942a5cc4933b1290dbf112383ca5a3666fe0785a2ed96d2318d27981ad2e01d6d9206016315cf08e04a9afcc5a2c9bfb020472e1a98bca5017410c65579da2019aae52f78cdd0cfe5dc3e66458617c46f9767588657e19804506c28d51045efaa90686146e599e02dae1abbfab0e087147244348631e4230cff24753e24828600a3149947111079831d4d78b18edf47bad25bf44d8bae2534c01dbe7d39845435d69cb7acc480ce3ad017a9d36f784ddf898ee3364d1c56c499313cc1b26fde218291c0ab0a0c581024d8483f585af7b8e853aa3dd488cd5db814452faadcaef1c19273887069b7f19aafbdb2446ff15b0872483deef982c0b69085d598a59d574fc7ebad6f7736095f0fe0c4126639259baf8a122d4f0f170025f0796c00c9a4541c48dbba94b6f3b80b2a4160daffd3cea21edf5455c4f098f76c1b90905a1e6f06c0ba36e22f3dfc70a21804027ea825065df2be8fe0f4eefdcc313dbde9ee467344b17dcc04315ed3c50990a9879b440cb8a7bd000d885e5f499da2440c308b5180f1f6a3049c3cf4c63fdcaa0658cae59cfe4c6fd8b5f28a39988517e0a13245f2563aadaedf9bb213ff563c425f5784744054cfd020a38849f261794abc30c5fa0ca84c21541437135506f8071906138d3d2abc2fbb6c7ecde8a26423d5a4250d1afc01ed81b7515c4c75825a84ed1737346360f3f2daa1adae99bc23d3bd38f1a45e346a6a388f9fd25a14a237f14709d79ec8f0c5894cb268bcf90896b8f2dc520cb2e9437bd00fa6f767cc8cceb50275a9eeb399dc35aa1c78c1eb1e4ef5f72a1b56e358b14465bf583a1befd8d37605e29355008118b7f18d4f3954290dc67416f39557580ef42fb9e35f24d1d469cde6b17061e286c5137099a82f3818a544d92619413e8f9cc15cd741199f3633a82d8977a5b52574f65c90acc8d65763505a0b943289958e2a8a708632ac415c2a9d9deaca7f2983ee1ca23ddb79bcfe74b11f8b3bcaf729c0c19f732920e6b864a76d82865ef5d1506796b518f0e2c15ada58eb606e56b5d133e5d5c31447087d01704b32ce0d66da1215a9747df1c4aabb29c2bb50fa2128b004df8b96dc96958ae85d3dd52743d6036b897da4160d67303ebebf58dfdbd32f0155e18a5d490ed81370bfb5dfaf9fc5c45ac40e1dfbfe6ed60acfab164c760e26328c68738ed7c5812ce9498ded59dbdd64f425cdec827e009fc15c77325001035f05c7b8fe0f9c74a62f005e59808cb3cfcfed242e843a4fb5b83153f016d05b7b9363a58505dfbf0e013ea9da9d2e448d8cf4b4e3fa9f6db018f22979a09671c4091690b62ee3e3da0a36a969ea1ad77f3291186b5347a308229c2ebaa609548b071653bb58ea2f5218480d57edada859dc3c3e6f092003610ed1e9ea2ac49537541fac198424c7dfd95b9c153f329045421c7ba24e86d37c19bd4b1589ad778e2e29b46e0615763aba4f81032e29bffa9674a26af8f172130bba438f526b8470b27b0866d1955a561b95b6012188de32aa42cc956c9d5f50a14e6f7613c376827174e9ce7424ff6f80be46dd7fb85723bd66f20b54b1c54044559454b0154f25fef75993264effa23d6ecf65dbd19f23db0f3997974c4298822c241efef7462d393e40d64b83286e44d65e9242cea185ab7ffd17e2361ee08cf09593f875a14f51159246040df2a6567c60d00b02d661c3d928fd859ea59f1b7ce5fd9a587e139aad58ec6ac220d5c9d8ad7b0a97ff8095d98b8328683393f7948a716dcb9090b847239baacf70659d113d4fd6a482dd97b2aef3eea4e31d71c4fde1f1831370b67061ec94ab8c1dd8ec0478ea090a4e4be01309c149012cc521107058e2a594ab4672ca250987402692f05255483b920204f0fa3c4c7e965b01d20c0382286ce3c6a9de21c14e94a484a18ed6091ccc7d43c58602b2a184a3f189f7470a15614528d20276d8202b45122d1404fbdc9a3c80e696abd84702ec54cb7024e5b32d159c98e26ac8f9c46b41588fe5498042a49734a95ed558d121e53400e0662999b0a1c93627f541eb4a81429d40091e24a9db45df10881e3d3c10c1a424296ff0e3c4e246273e0797dd31fb2164082af8ae4f416b13503c912b738747c1e83c40c4a42114dfb55de2e58884e50069e0eb1440d7de7d625d8f974488d34fc16cef8bc9dd01eed01fc447dfa378148cc4e23202c5774872cf67834c0132398f4d54b4c8fb76d17a46e32fc50fe891938afc26406aca3ef41c5060ad8ab9afa817ce9039e81471bf404bd5853302602192782fe27533b1228c94beea393cd10008217ed18fe6420ca0cb38b0f867a80fde3ca08bf018426f57a7a175feea45b4d6cfeca7296195e3017e9751ad6ac53aa0a0785356aa093c81b65a35aa06fb6e09f9725e0ecdffca03bf2088ac5bd952659db96cd577b8a6c52e0e6c8e06cf2bc07f4d0b620b9adffdb411ec2fb527b84677c22c3b1152328ac7ee4ddb51ac4771a39ec1920f71b2ebbc73a69fbea37e208e6507fc656a52f1f8beb0213189dacaec9ab779cbc411fb70d63f7dbcbdc906502a136e8aa0324e4b48abb3627a6a087e118777c822fa562aacdccd9f98349ce713490bb5cfea577cc10e5ae633a010f7d30437a089e486224be9bd3dc8e0b0a0baa60fcb85d81427a55322a996ebfad86bca9d145ca92a749c8abeb5ce75f20472f6e3cfc995e3248b6682a99c1ec95393e7ecae5baa430e9a6c41207932df9e60a9ef964af9590d13f9c9dcb34f40b7956f8f3685069c6c4c22d1a65087fcde6b6cf3b5216f0a5d707cbd8219a2e77b5075f380e50d03a261bf7ba0fa4ef3ce36a23ea2a2e8e2202f401fd0d4d896c2f95f29dd384f11d61c00c23290909d45324a4e92602e50c06b3b253e33c571bb1d6f101b6cee388c991585813d2b50ac5c45d3b11b1529353091ebf27b18f973673a099e25544b878a822ddcdbcd25b6697fbdaa0d4aa88706c23a38b0ce6493c37063d98585b78ab90dcec9db55b4938cb67608b946356e8c8589e4230766c999e2136811b96fed8b46bd8cc367be81fd0918d41549951a0a2a7941685e0e04a3b485218e77009a63d2160dd102c32209163795c27a297b517dcf5295b251164c1838d4b41b827a6ea558abaad1011ddb51d1a06e061dbc42c401b74768a61978db5b7d0a33ec2aa5e178a9dce0a948d1ce0b5670f9adb23afe554c0b0d1102257f30fa149204b449a8ebad40c88cfed556e6316753df439ec24aa14184ada382eed8875625edf034d0dc0dac76a22167b8ff62713250606cc27021a7fb6e7f84483d1ad0a19c8d48d089ebd8feef0a39ba045fb5ff97262068ae27c13131293d68f8d4ae5a9b64d0ea68833681ce0c8ddeb415d4a985a276d1a4d368c9681bcb029b5984d311da69dca15700342d9a0e9926d06402921972637ed5ba21cb4cc50ee25660191247d25574a27f1234818c534ba543a2c559b5e29eea0b399453a5dd17720dad0dfe3af7e10ce839d86b111721dae0b50f22791f965952a49793a71706221fb331a0a55e611df0d796efc5bce2dda8684419bf441a2c23405efe798a02f5d0c3f1672195225f7d8b012356585c6ac0ad69c64eb9712cbdfecf20a7b5c8756f04c2128066218d8a86a96045084566bd278a06bd0085f88d037dd4df371ea79930bc8f5ebbc5c365756a886e562bddbf8e867dff9f7e1725b06de63567ce786a284205d2b2864d1a922c77b2d7694a6e1ffc7279027c3188448b7509754e1a61dcde6263c74aa05c608e0989a4088b9348ec73282705fae615c4a1d8dde603b6996711dbfa6b3af5fe25d29dada993d9cd437a845f4bc00c6c15b7381a624c76f2a67a0b860dc8496a557c5c86b795e1f38f9474e239029269d6e5e2c8c9d143b51cac8df4b8d54e1fbc0d876bcc1b0503eb29b2b5835ee3a0217b8d1617992934a005ecfb4548a50ac02ebad1401b38809fd50b454c713d6864380cf33dc3822300a18711d538041c91a3f244cca3c076b74970088335d5034192e25c76f50ce81f1f8f685f4e5f1746d0e0b9ad7ccd115ccdbf1a98e1f03227a196b3a8ca5fca32171d5f0d4bb73ce9422da35e035401d9eec1b77a73cd6b8b379b87640cbb1ff4b907f2cebff9f19442f33877e858f11b815a602dd1d345f94501f5c8f22ea08963f1cf0fe6901a97a3cb333fd2022915011abd02e00be9423d80681251cfe9ad600d1fed5da7601ad4d7e7c8d9760b028d883f1f88e0a04222083c7d68d63d6727db25ffd2620d7295e0dd51b934d53d9f8010324c3569cec8f06403d06269eb9cf00c67f55b07b12409bda4476e747265a5f669ea7c7c29bcac658a6775cb8f41b6a065a29cb2d7c9729f1333f03c44b5549d269cbf1042519ee8126bae30597160d9cb260fac29f05e85b09a6cf7e771fedaeb1a31aa88e4abc216df535e6686c07a86a2e0bae76d80725a93b02e6931a7a5c34a912268c477da2818f0ff7966b4e6c8a49c229c2cb9907ce2bbb16c630af0677335a7a9c84eeb59a91e89e3cf2b192512f6b9b3f858516d7fc00a06dc239b009fe3e7a5e4ee7ce8912ef29398efba8ac4df4982337ed38c4f69be20a02ff95db2ebf999586e733c9b577c11998481ac64585243556cbc722d8091282efd1caa19e355d2eed1842ac99d8305b4870e781842731b8f688c87e26805680dac6a3504000e025b350d2401cac23c34824906c6c2e1f94523ec7160717240e46825f98e6aaa4c0ee8e229a4f5d0e0be1bc01c2acb387f4d631ff72b90d9c68783f8ec1abd4d769adc1688315572fd12960f31d60561a9dec5299b750bbd45376730b04a1a31b85d1a1eba9993247a243447fa804a125da0704497d024e8241447fa014d127da0714497d048d027348e740145129d4071442fa148d025748ef4015d2aa87d1a1eba9d93247a263447ba804a127da07244975049d02514477a014d12fd4073449f5048d025748ef4014d12bd4073443fa149d025f48d7401dd31fa187a70775166f4b22e1032fb0a8e5c5619ceca74068200460444b3da334382f14692dae483901dccabe3eae0bd31ddaa9af93596f8b5fb7493a0cd99362728251fb46d235d6c6871808b4910b162fb48ed666de3232c24508f918d6f8cd4de2c3179117fc0c958d60743b04e0c8e64f83887884a23404b2dae7f9177f05e322114363a216622c210e488d399d348988691394a2bc737a3db871a564e89865bfd40593a645023e475ff2edcbfc5ebca98b020a54aa958b9e2ba28e9cd01d73430772ce9c529992967820559f592d8b962bb29261c24eaa5628d247d949b24f581da2309df0c6543d443aa5d43ae6b2dd7876a97c9c0e711f18abf4da0bf1022aa4506431e40eb239a593059e6d993c7c06e371b21b17371c6b3e37da0c4895cbad783f19cac014c86f04b78ef075490e73d47633f084d38b4b381e899a8df1ab9d2f0750d50a81819cbc20a6de9c248ee7ea02650e8f2a9d5ccc9b0928db2f51dfe84a6ba19762ca1a2a17eaf014224ca715c40a564423000e5ac80f4b185c0abfcc0c4b771afb717149dd73057a42ecde5a82df8a9622294e3e923cd1fc7e6a6d7575947b8103492ad547d2c7047dec24f142e6365997330b278fc312cd599f1036e826834d075eaf1a052aa45d28ce381b275aed73f5e1168b06b518213858c38754080c3dfbdf34735c746d5ce0969c71624ba694e1db5507991367724a3e5adbfb5d0ff1c5f5802c7602268f7ab0454684b2f9dea80cabd65f758ae3ea27674cdd6874b4a9c241d5a82db6d16756e8ecb5c58950bbc5c8f9503779e414c78b0d81c6f9188ac79d68a05c78c3a496418a21ebda9d00a91da9b3d5b868c15a0c6fea2b303648d8dc2b5e7284ca01695c07d9d7e71c7158ef8755a945732f87558b545685078a3092c4344adfa66d4d035de30a0b8ad15e8ac869bf18fb18ed668bc49654286538c77b3f035909f6b348d75f4082028ef4c233e64d32b2e623d54d3fb17620704d0e316c16798cde9a4a4d8cee6a6e45ae239046a018497cedc6ba931c228b0272498ac7f10f0c85b5e3a335813f951aa48a7970c60eaf820573813a8e671cfb35445063f08c05ce3560f47ea0094d3354d80296bf2059c09e2719a6db3ce316ee0aafcf98c65c0bbbe32d4956ba23f20df2089784c5f9dc7f400c4cbc0d41648ea23768956adac880fd228a8e6379d2278863ea3ad7c008f2f4f6bbb553c8f153805b36b0d9a202071dddd3ad86d89411bdc5b2b1d0f327ed38bcd84d8f16c83a435113a98a9f61ab32de88036c078a53ac959e44d4786afc3eb9d8646cb05c59ae9a15c5ab4a67037a39f2ea484cbce7c000c3b3308ef51ca0fc8aae72904c8ed312344da1a025a61cc6f9fe3ee7df98473389531c0a7ad4c0227416fd30f9ba47a28d1d85e4b10a017e1389b9ef1c0dd66e0ca8f27ce38e0fbdc29b28ebb5d20ae6823be8d908d977f860dd369d1351a59b5e36932acd4cc5c0ab4f2780be91caa94e2301ee68d994e4a8e56332c3a40d9d4965e9e4b2506c7b492fd4c09d5877548692e56a0e6ae2b75c2b7e29bbc753bd3d146c5db5b6f00d45056ed8f823ef4b3335ea09f8543ec244431ac8f6d08e266b69333a269482285221033a8bec1e37feb9a6d1bcc0a74dd0103324462082d5d49e08c57119472df01bd1a394484057a32f95a7b5e0ab2f3faddbc35ecc31df755420c96e4144d9d2a84db012f309676b36562a870417d5b61c777d8180b2b31492367cab3bc8afcb83a3449a31fd587e5496249a3da2ba7cd939f4e169e78cac5f450a6b02022eebe8337afeb4e1831e1329369724a3dccabc0f3dba526156ea270f1c91e8e719d1246c2244e6ac6999a1c1df95861d9329b27861217ae27d3bc5d396ec8c0924ca5a91391695e22f9897c3900948b58510797610e70801cc4f3d35df952025b9ab5b774ec3efc73b6ec44250e290b728305f170e96bdc79bbf0120515bc750f0dfd70b6e4761d2f09ab9f4a9522a4441237ac7ddb8435cea3023904a9294d39554b57be7ec5ea5b544f11169a1ddfd52983182a5c54df5af8f13b6edcb19f1ee6e3e2bc861ac8075e8b5e2a7d016bea1f85697fd7c8500defaedc42a423f3fb93463f1c5a38539da7943c0ee6fa6b3b4b28f1689412018c83040222e3eec3b87375f5ae028cce2102a2bb2cbb8628655f16bf1c529f531d715cf37509ebf817a7cda8b07f5093af9913c5c153583be62d12b49d796dcae1e2c7339a656270e5f32ebc719ce38cf38f2bef028a7725658867502026eb691d165da29fc17002cb454387baae42d0af6d79220ed6c3e019712e5283edc4c1ff610e06aea4b2573e97dd0561cc9be8b019c416a0e5c1ac95cb8e2a11580ce6e3633d9a3d18f4b7415d31f4bbf5b29596c87cf3a9259327e1bd718eb43d34429d965b260c3871623f5f22b7426adb8c88bf803c5428903f7a5d9033795d6466fb89125a59bcdc16817f1687d540049c329e08093f819ef1a732598c490e960529ed3d327c580451e329230e34ca1e03b133bca0345230b41401f61d60912d6ac062ae71926df895a496eb7ee25c5ac8841685b4870992d50309c246284eb4fe681dcafb5f97a1aee85f672bc2f14f94c0463690c9c77749491a814980d6db5a1c6b039466347cdf249eb002578c4cd9ed26a840f59db547a699218fc3028577cc3bc5631bb2695a82612f4acf72c3e6951f040d8d839eba7bdf94936ab1813b149a5cce6022d5b5cbf09bf149558a04487c8f81008f8f1a4a334de9a3e188ff9aa0f3a38ba37d4d47a9d4b16d30e454b5969a74fbe7ae54c3a3137750d45feb377f31ff832a0ffedd36d45a4ab367751c60bf86e6bd9daf72966427b848113b8df0379987b1f78eca3d416ed70f5ce9eb47bed4e523afd4fa90577afdb095323012fccc031a10539656309c11b5c509d9130914c7b78e9b62e31c5596cdb934b3b85d8a94c5d7b95d3a37789af12d83a8e80f031033dd470009c70841d24d340cbf28e0769466a8914ffc568edc4b7dd034eca3511309b5c8761391c8eede01bc09da0880085d18220a90f201bc940743444182173e1fbc4b708895284c39903c1bd219218b9f9c735373ce20a8385ad9916777612301f7d4931a322587710e98438a39e65f9279b3326fa49cf147a4927d41842df306aa44988305b06545063b2ab10273f85037f551cf464f7ca9be903bf145ee4048c5e1f4aabffa24178f45d279a378e9095d041132042787880e4f8fcf8fb401723304278788ce0e129f9f6803e426480f12b8037520911c1904df84825cc868c80acecefb193d842920a31b5f098d9698629e7a474920f866a96649470749179145928e44961d4aa9a5d28d14648b47251d69477a827444dae2e5905e783ec02d1e0b7c232aed483a0f07dc11890e7da1b9933c32a89c704f338e5e268ac23814fa47234944fe50f8060f8ac23814f2c1793e3870483c4561dc3364f60c993d4366cf102a240689a7288c85f008813c4278280ae350e81f8de88a742381c816e9e6e6e6267443511888a40344d20122e9c0a0ce4c6d297792c88ea7b9934178368c50fe4c3c31e24871889c3dd4670a993991522412da48373bd26cc1007758ca9da45355d7d436d2a4f18439e77b46706771f0fcf9f1c1398d53c4fba097f4688708cb87744bd7bc44dd8d7436d49d19b0c5994b364e6489395e4c2216278e2c0e8d22b8a3904c247bf25463c02973c23f2dc6f0623f2dc6d8c1965904b50f9b65e310a4e14404bbca1e72577789314012879f0d354ddc3da6bd811904cb845da9955993c216517f3a22f0c2a62eb3883ab7a7d7c9ca6cad615397797a7dd42455cfba7a601b3ed3dc1df3d311c118fbf1d042fa1012783b6fa7879587a3c707f05a90802af3136577cf2714750745f09eeeacbd52e9a86189ddd93d794868c0a338a2f9f90c111f0e1e707e6e34f880708a28b9d9d3e238f17e6e98983869c0c1ee60147bca881359ba949cc8d28d884496ae075b45647945acd89301bbb346f64c892cf01807ceeb444551d484b1140ad17f8e462149e39725e08ea22c051370e34614648b09fe3255a2b4829c3ab88336ddf3993611fa002f6fc19787472b1535fdf43ac61879aa2f70076fa04d9cb480bbe7c383266e1fe803fc0fa9064aec83fae07bf0c1f7a02449f230f790f1e7d9d8c00b44204e2c1147b40a0c3f9b4051894ea79fd59c3d4e84e2a801510441438e0f91dde103a1d241f5d153fe2a831030d10226625013821b1bbc20470c57d8e0e06546110616610821348327d4208061051880e1058b83ef7e45c020436502a6fb1501430c9f1c93fd8a9841087bee57e40c61084315fb4664818739d8508b3044b1e17b48c08687a18fe2e14d7040cda46cfde61458ee57240c2a7617da46c071bf22614cb1573e23b4b2b2e3a978fc831dcf85644b07747a7eb490061468810811073b8621c58e3fc4996798dce06e148a61e840da905211548905f8fd4d55fbc1338e322560686dc0f0d93d13f65a7bad33515955f5fb775c2d6bfd5e67a25ef7d55e4b7f6f7f5fe70d9000a92255a8fc4b2aa549527a792aa994306aa1be94ee3ee04d165af0f3f2638a81cfcbbcd43e20174ae022e7e50715061b1105e8756af003212f3f261d9e178985289e40f2f2636201901ea2955a4481294fb588029a8a28305dfaa47df898fa07b6f332ff4382c2e7455ed23e7c50fd63ea7999fac503fc90aa8807e8ecfcd43e9ef6f1b28042163ef2352fa1788029a550e1211658fe3d092504824d09e58c17bdbf0d9f6da69e0d79ad8a9622601ed287cb34fab47fb1bedcf18800dc3e36d5433c22e0c3d0a65f89a377896a30d49722658cf70778f9ee03deb671e41263159c40c4eaec7429371e6502e2685e078d379e8df9996829253411714427d4507b4189a7325fc4cd401c4d1f1f48f1c0cb910295088243f8c91b0f87dcf3a31e228ba454ca04009d520e91141b471294a474490a3d23e2487a1c4977891d25c54bf2d26110192bcc68e0e52002fa205d7a061e0eead2b1241dfeecf844f8ac304178897e0a2901f6648b09ea99b0aa25bd526762a2a6e9b53a13544559d4ab3d1395adafac6ac9faea2b457a7a76a5e2e899953acb38e98c324629e35443233502154638811b86e0063758d6ed2d7bab161187c41ebc16fce29018840d0bb0e1bb78c4b21a2e7968a831c663b96629574508425df885ee833c4d440c859ed61d656922e2c83ad5d106fec4d161ae401255de8657f044cb3ef9f36c34813b99c39343af439dd9839363e4e1c86616db35ed37779ba6e7906c0e79d7c4f9be641b9e0d388758dafaa1288c6548fea31f9d5a11013f49439ec9233371e2084a114790da483987c89c21524c1c4a79201d892d92865ec02371042d4bcb9f6703cad8d3c09933adc8e199604c336ced59ee81edec2f775aa6eddd11ad757963ac24e0b6af57fe9e3212105a3a2d89232889c4117cccd28a6f8a44acb20d6e802d93a79b22984db040c6c1664ff3084f053e5a3d7f66ce121c733a89237320754288754bf7907bca892cd62191c862e111b9244e7f4a680617ed3e12e125844b7ee06565891359a014d10b1d259105ca20038e7a87bda5938032514729340ddcf630486481021ac9c9d18a3882531c1271e2a887c9a6b9f476897108140f87dd367c2cc18e9610d66db46c9ce8f52c11ab9f17d3fafcdb32682cc15db5e7e1185bd2883384663dc451f66b0f0f8fc01d982376017d808f38356c9e9ee521e2e8fd6608c4d1e3614f0fed09ef38244af170dcc34f1ed92221056748771436d15dc8e21c26afa4b0eda99b3c286c7b50b6e7b23dcef6988d6d5f6b6c7ba9235beae1a63b0a675aa5e62bbf0667db577a298f60882dfd6dabe64592a448c4b6bafe6d6b04f53e6a5eea69ee6ab27dcd4cd47725a0a5c76c754759b9fb80cdb6ee2225090712744bf68fde485aa9c8603e528f88227c449647df211027e0cde3cec4c66dd8b99b203b1338c3db3913686722d3b2ec9c094067420371d7b673db14f6dcb773d7fe560cb09f7cf2492fc48fc16777295cde322555e0b57ca9026ff3757b982f6bef755d6b0f6fa5b5effe502dfbc3a43bdc85b60c85a4d4d46f9ccea0c5112db438a2c5112db4000214a090050563d3197b7eb050cc172f391f8c5707827d84110a53bcbd7b3c3bef5eef1e110c4bfa2affaa94550970079fcd72c4c97257c9ce39afcbebf2baac56bd844f90197699a51735c350150e85ec1876895d561007062809d49148e04ef60e72b175aebb03fbd4892cd9cec3f182c03e5fabee64ea69e0c69f975d905b78396e279750f8072e893654c4f2c46a8ebbe224a87dfd0a9468454c8d3d7bc8f745185e0e79fafb705c3650077b7d56b39a7f98c72e19189d93461ce905676b864140c2c516458e304346c4c1c1b9aeeceeb82e83b8ae6b06cc1890bb9ed820118c27228fd4912a546eec1f852e91481c7164d4c15a86a223351d88a4833cf08b4d0f2f29df03db52bf5f77070ecf68848138e22c16d99824f2f0749127f2481da923039f6e45f8f7d931ec7a17da1826c23ae66aab3b23f674ec3a8581ba2cd3978e6919d0ed675236f62977999e49d9a0184d3f144d23b7c9437a9e681ab9b9d3cf2b042784c9f4cae5ee47c572866176ba9e1de3a653ecfe503f4d99d51d9d303a4d739aa6c9be5ec9bb57eee0be8e7367c4c6af2fcee042f85ac67670346fd732762eff4ad9f49426c0451e031d8838cab479f95008e3d89265592633d04ccaae7f57cbd4db0ce76e26e5cacf25debbc4ecef66d63ebb745763c44ef9c6bee98c4d8f8f717f9125b4e510b7e941d82905e9ed5cc65363aa9dfab55d2d93dddaec1604ca31dc3bdcdb6fee8cd8f43acdf75bc638c77d73a7699be5ce7e03359bfe629d113bfbcd3197c64e7307e9f15d6496bb99149cbb1f98b67f33299bfe7535f52e32c327ba9a1c235ecacb1420d0925fb93b625fc7b4acded2d6b15b6fbd47b85cb7f2abecefdfb3b4a6b37395c572cdbef269e8a42e0f92cf5eab94b2ea2ef42704e8326e97da4f2e75677221b2eaf7d52f73bdf79b94070581fdbeca568bac8bac5fbf14f5de115b6469acbb238e9036775295d6e5abee7a7c2721636fa0665bcfdd77b5b5beba7cad8ee5ce828076ecf40201b7f64ad31003bf4ef04600eeea95b255c66eeeee314d430c7cb5575a463ba665b6dfcbdc594d43b7a6e71604fc7dbc319ba6911bf4faabbb13a93b930ad2d2da7bad4b37666ef9eaf657ba31d25696eeea69e4ad32cacf2e60f9ead40e6b5bbf993a96bb233666dfa3b610a635cb55e62bcbf538eb11b582bde6b86fc63dbebea7419bd67417baf7ea8e864a6d6919ea550ca5bb1a1789659b65eeabfb776f55fd5addd57447ecaa830e39e44083c68c1922910c192828a1d0c989890908c471dba669598631865dd7bdd6d66a59d5aed596589d76a5b6cc28dd49bb5efb96dfb3a1e94edaf25796d97b362eddcd5d8fe55dff1e0bf62a6beeaed35bccd232f755755fbd7bec367747ecabb16c59dda5a59bbbaadeaaf7661a6dc0f0eaa8b77791140db5b9fbb12b1abaabee7e745dcdae2014e272847c529332c68834dba7b59be6a12dcf38ea1e45edf99a8df1676c8c1125c6508c49e8603745d150140dcd8c9db133162514638c31d298b0dcd02df790499e71445133d6d2ecfbed4a1a6ac6ce581a6ac652d48c9db146648026461ec8bffbc3be4c61b2ed00eb786cee75cea91dd31dd61d8f3d7587fdba8bb4f6da9f39197c38adfd8bf6d665eeb15b989d5c7efbea6ab61225fb25c0c89eaf60a862cf676f80c74ba2d8f8274fecf94c8c25f67cb5ee0f15d5f1d83472cb649f577722ea0a51a7c9657cea0ef4174732f831d6a7c58e75d703ef24441bffe60e77d4be5a04c4db568bb8cb68b7e7b4bd66e7e7ef5d24cef856eeecdf1f6012013a8ff316c4764c8bb8cf631117b588d340bc2dba2e639dfb659dbba5397d7ced36773c3636ed2520e036e9b06f9a861818d33b4c8eb58cc9352d73723c7387699ab94df43d09021e9fde9813fd449a46eefa7bac3b3d419a46eeecf7335e21aaee60861d8337466e8c81aded987b0ad1d977347267ba030165b3fb43f5b943ee794c4fade9ee9e46ee29f79d73ce49c11b6355d772c7636bafd8b153b125740c02d767c69e652e77297bd35dcdde8e758777a432ee19a7b95f7ffdbb31b2a336f7507eb185bb689bdfe6af9e97ee686eb58c75632aed22b5dcd14c4a880a1fde624392aa692c7798470b4a4be8f7dc51f28b2a9ceea88dfdc5630fe51755b00e74e9268f37266eab65f0ad5b7f3706df02e2a4da72c7639b68bfd77ecfddfe24cb687ac611f77bdd2467c7f296e5b8b7dc81f48473677d03355bbbadef46e06d11f7ebdc6dde7e33768dcbd8efb1df6fdafeca3298c63ae4ae686696bb1fdbbac7f7f857cf38c28eb14b773fb6f55bffaaae2e2195bb21f6fb94bb23f6fbecf1928031a00d4172bb011b80ace1670b60bf224ac2d8f11415638cb9fbb1a7ec66ec443bb8239e660b04fa00638c6d02fa204f0f03afdc00ccdb13e66da92728a7986f9a12ce19d1dbd4eee69e3f2b9061041ca4804314fbbd3308d9efeda82f523cd567f5392d94940a159ad1c986e6e0b5c02451253ec61fec481fdc100c890438fe559208e4a142a8109b4af374934d9238c236324a39271b0d79e228eb200f9038bd9b4cb0ab4f9bc8b2446401f270bc202a2a4f9a8a238a2707d51ac1934f3e09678806e8522ac96803e60190bf48388ee2ef0658c40d50ecaaa25edd7a8cd986d586f207f8fa666657561e8eb8a9138181c8224f7d008fa2a89e0e01b848f7b6d8d4a79438a20eb37e1c512bd45724758ab2288bb2e285f9ae5ee1ab2a285515a5659e0f1582942def49dd419b1b0496c4dc53f778f23dbefd06c0454b8b74e9723acd4b00a15e32106a22c18d97394d9388d243ccbf4d047ea11435691ed04767d6ce20a784f20b778929d18a08638442ad94c4f7946078e9105373ce19319f2d1fa6f3f3e35355f3d527b2c4fae3859436d5278ea44f5db2e56914c12b41b6942bd51830c502dc551fb944f54282bf4c01a788ef70a4f086271b52a10d639431db0db50d61164dd18cd9da10e6f9688067433e1fe0d9908ff96ea8835706f06cc816026c31c222e340792b766505aeac502b2b06386226b66c4412b0537d8edcd841928448ad3f4aea12ca623e71d6799302ec225ba87479295357fc0fc7ceafe505aac84b2cdc98c296ef06b0e5df73c296ef549ecbb3211f10e922437124a7684e177907c8f3f0115b3421af881a866c29a3942ff3b29b91227bd832346f661830fb06fc4e51f31d1ecef72015a74cd46f9fe051f9a894543eaa8592b189075160489ec4f9de7b99daefb5502929276d93466515b6b07ad97bed55310b5719a54d9bc451d03491ef9dc4f7a09412e5bd88129271c9786da11f182a155964506418b21fdc15a3228b0c941dda2792c906a9ccbb01eac6505be2f6b66b95ed5aabb53263bb5ed7ae9795f9ee8a556c65aebb6675b353b5eb56392bf3b42bc8ca2ced7a524faccc73d7909559ee8a6267a088645c7b7e60c7c3d1f4b1638435344a2ed4f7f26695f2bd37df9bd204f3cdf96484efcd48e3881ea955ca7864d3c42d4572ca8ec8a6891b3e1b9ad22ad9183f19c1f0f15d4e31d4f9a81d60783a299d53c6285d4658136442c2eb8953ce291fa501140e0e121387239afe424f05fe1d85250f45e79ca45b3a4e800bf928f5a8f7e8ebe113c628d497f2b9236a99296df07c8cfac5d19334cd738a7b3e781a8804bc28c336dc6ce9f83f292bd2674892f42d496fc722f82b9145fa230bdcd253546c3c1cd525eac796ba1b94ee01f785af6bc7ebb02bcce139e4b0e319b06bec5cb6c8fadb325964e92016b0a9235163b32b2d8a59c002767ccd12b64847dcd345937e7b6eb85d229114c0fd9a208632ec501cbd07611745c2a0024218631131928460646cb9136db694e87b3670090b56d410eb3ce2ad436bd344967bcb5ad7b2a2bd4b9cde7bef5959c9cf9687b0aa3e1d52aa7ad411c61861ece6b4a635ad39e39caf7c7680bb077d78289104f6d0602003d1c632428cf0bdf734bcf548c117df8b2fbe0769841042f828b57ea664f9544aa03e2267e0f160208eaa30e0eef1c024903a815ed772376331dd68f64a2f973b586fefed8ad05ef3cb7ecd5fec4fb6745b965dd755b3b5dc71dc86bf280bc213534a08d0a9c69c09a5713dcd17c330cdb2d7dccdecfa6e0cd5a2ebf4dbafe8baf65abb992dbaf486dd7ebaafd4d29c840e7b0335dbd64aa30d98aacf72674d9e9d567d2f5d39bb726692d5aa654c9e6919ee98c52e13eeef32a25c3d4ff02f3ea5186358c570c5300a630a5b0c9b79c8e4f8d564fbcd9ac968dfb8bb103edc214c03694e77185f8d6118762fdeaebb6d17fef44cc3b6cc5ebfd95ecb59c5b02bdf77dcbe10bb95da5737c371201d5010973bb8398aab34d3dc69be9452a8e1c360c7dcd67e43165475f7bed59b1d06d3d9bd87a91794bb9a0d3acd16a4bb90bdae9fd89095113a4131b1d82fee945edaafdfec6637cbb4c3604dd7ec4c8b62b46787d174a66bf675fa7b9dcb5df677edda2ee9f457aeaf15db57f6ab9dbbb88b1361ee30204ed76cac4531dcf161388db54d7f6557d534c4c0d7a565b68b72f73a9111fafd8562626dc8da7a59ecbab4cbd24cbbb22c5bdfb26685a81859b0eb0e6efcdf7b0f39d061b28334b7b9d76c1779f3769ce1c6d7c9c9c9af8b60328d5fb32f2d8ac17e1de6e4fdbad996bb194eabd5b256ad377733fb1e6bf74e8cb54fcde4d3af2dabf627d643a0cc85ac139b63b40b6f1904ea4cf40c57bf819a2dd22ec2e75eb3352d025d59fbcd57360373c55c1a468bd1f47bdb9ae13611a61de6d274cdc634ccc5d775401133744a9010e83d86d5ed945a78755c1abf5e099d4ddfd1f4bc4cbb1aa699a6b926e76a1cbd462d4ab5d310dd7e727a6ba5d929d63becebf1af4cc758fd4a7f7575bbbdf8ba747a9c31acf3216407d5227c7a2bc217611d437f9fdddb5a3f6d186b99ed7686e6ee6e7a6a4ebf90c9899e20ed573ba5af1abd2e4c31adbf8e35fa6b9dd2ab5e8a29b52ca5942a79f6375bcf32b9fd827e3512ee26af5cbeaff5d9a871f93aa6e92eee20dbc4c26d02ba9bd616d6d6ab95e56e46f25cb55ad6aaf517e7eec299861818e3cefaf4ccd65aafeb196671ceee223b4b53b5dedb9bfdcaf6183fcb31f6bac76e7edbaaffb12f6d75f7a39b913cfbc26d592e112aa104111f42a8e4799942fa703f600d94380db26e734eddc9dcebd667b6ba9a7d35f67a8476ecfae3084f8cb74b77355aeef03cd9b2ed84da3eadee649c6428a14d62b5cebba3defab55a74e9986ae9f779eb5aeeeadf1fc0599875ab7dce5bb7c7eab15bb5a56fb538cdb2b40c77ac6297b31996c938b93d8612da6eb7133d5fb779efb42aa6375b5d6d55dd59ccd6eaf7f2a84eded96d6df6ed35e3348b5dcbddb7bdf62f5aee8fa30d74b96d07e51955b6bfc872a2b90dab5aa6ba55593433cb60b72cac629835b906d2ae9b5cd61e64b156b50c6671bf793b9763b6f76bb57a2d5fb7195f59ad37d763b9e31153affd65b1cbba96f55d559f32d668329342d342efb63d9fbd1c0ffa304d3eb94fd0a7454d6de50bcfd768ed9cdbb6d5b9dd1e66b314c3aa4f8cabf5f3301584ed27beae1cb795e1a6b48c06734c6ce6ecf9306f9267287be53228e36763d6f9ea75dee27e72abe27ef213ce823e2f8a017d1e06a4f1fbbc37c3282dcf3cc36ded2e3294bbb8a3465140f3fe30e7047dcef8bb42a044eea24fddc9b8df7e8ffde6895daff8f5efeed87e61b88d6118d63a6a8e699aa669d6abc358afb26cc651566f4d8d9f8d3ae7df8500773c8f9dce09a2f6e6aafa767877542d9aafb78e7dcba279edd2a2a975d458fb9a737ec264530413bac96bf6bbf76ab7d6eff69012bbfedd395f3f7d4c2d8ab19f87b17a6aafd9170858717789db7cddc17d6a19ee58cb9c7c723b7756cf70bb1e3b8939d133348ddc28af9fba7b7aca805708d0e7df1502457770834018db6937ecf816a43b10ecb9e9aeda4a59baa22e51eab3aa71325e6f234be8f5f8e13879053dfbeb6faea08c61331b7b8dd5565ba909877d33b9897e7114b2f6f530f604c3afd8b3d7ecb841196e5086dbc21cb5e6ecf990c9c82f8e6a7694ec35944fb2ad15c3b0cbda7aee56d7834247f9bb18d7fc36e8dee4387494a3dc874e4e5e0f73f27ab5d7c368d724777353d583a8b6f567e55a5f71ad87b92a4c76edd6e2aa453ab6edf530db5571ad16572abf2458dbdccd70bb5e97ad75c3b84fc73909b8b58a7aa5038e61bfcde0dc511b7fcb1db5b7579b453ab2db3f1b1626d32fc63ae8ef5ed7b61de7cb3ae8a0ed96d5221dd7ed4531d7ed612e8d67b8cddac3607a666fba9be1ec6b76cd7dcdf81ab6e5b871ee383dc3edea52cdc6aff5e58ec259a4e33afeb381f5757c984b635db3e5dfb5d7b7dcc12d0a425fd7815f2f8ac1af87c11a3f1bd7abaed95a1483bd1e06bb6e9de16a2afc9c29627218450bf9cd5bee8cd81b07d2f4f54ab30c7ddcb54ec77297b2b1d768fb4bb5ee6a723686e5ed76073e10717465f4baaeeb9aa66bd34193e6b0119bd23f9ab7dca5ecee7d2665c36759a237a1e730ecda746eba09757fa8d344b953149353d043a7ba3be14eaf67bf4eb74ff8d38e7bfb0ba318c52846b1ab9f7e9fae8c7dcbddf5f707806e1f01ecf4d2f42b8377c7a445383fc01309a669f2624f3388c29e24499224c932811ab210c448167040c5a8a212c513555e0fe58391f013555e126ca28a64b9400a5f245183185b8cb1c4132f533cc29eb05042135555555535954092a42bc2b0a5699aa66942810fc610853158a0862a9e98424e16f8ed4495e700387414963ccf72c2081cc060640d4024133749783f2bd0c7c6c64605f0fdec87850c8efcec945f2300031a3a2a060ae042073837325043183b30021435f8e8297f55c30c8a3003249216b219e0116480061c1c0745c842054cc8c1633c01a88a22e010e630a656f0a2862a0871c20ee0d0f38648042e88015f6ea1bae05d410842728ad0040daa708358851324c801a4020ac902054ed838d03651b6502f73ce39a10a6255821eb614021250010b5458158d5fdc4895b729b5aaa989699aa698c489699a9840862eb0a0820abe427f10a7143c306a9086244a78820a2986c42134d1041c5010f3f3042cc030053604b98942b80289a4021d4350029227aef0c5156010042ca008d2840fa80842922445515f4ab7524dd234a53c8e6c0a02508630d83c818a230cc10a384e00810977092eb050640c2a7cf4944f2e3e7aca2f8de02131c2d304164780f0d1538e3f8120052d9e20831b98810652885498218b13a0e1ff0a9cb024612eb6cc17e9972449a2a6c7b5200d516ca1041a6091c58b04842d499244351561a033a51b1b1b9b18bc4ca7b8c8627d9aa669fa0475f663421750ec4967bbc42a73388e68133b40c282306e50248c28c429c8c0041e9ee3380a7981a577589a58aa4c694e4f4cd3b4c49eb09841177bc2020e3a7b92e89cf34f7faee058926fea420b6b0082900925317c72a818c7e0020e950be8c21a7e5ea4f86c508799d23aa6431fd27f4036b420bbc8d7e13d51cf2b171121f978b2e6c5455279c9a6e00eb93b7a9ad9436e4af7783541bad723e5e318638c31f37ae8a56ee6f5dc1fa8b6b7047573980398ca40ad5317547c7a8a9876262a68931636adb1c3a1a63eb2a5867e5165da41478ada0733eda45415dc29f5bde9daa54f3b9392e987fa5014f5a14a66a63e294f39f5a14a262e5ecbbc99b0b0e9e4854da7316cfa97f2144d95c428e6cd1373881353486449f97bad962a8923ea431de7d2631471f4a3840d946ecaebce64b9d0a7b1aaf4bb6ceb7728bb9b76262529efa69f69c9a64296d8d4c8747fd03edd1fa6a7e414fd0af3acb40ef84f178807754a1ce917293ded4c5dd4005bd7d6544464e9a29068c444a4e9b7a91805c614471c1c1c8baa2c3ded88727811304775fa0a58e0b1e81db61a1bb56dd7155563076d551235ed58afa60ea75e6bacc2469c69a767f2997e262fe004c6a464e29992d82186b8346648b18a2ae2441ce97556184ed9210583734e1d262f269ec832934c547fe69987c094bc6696fac4910dae0f1d05006fa971faa8135976220b8a1591e5864ec4080070c48938b18a98436386d6dd8ca5de03db94ceefa61d1d4e51941ee2d51337d5129125e5f41510d9b2c341d444326f2add51738959311a339e0e1de24aa80f8dd3ceb433753121d994c68cea2959ee90e592a8627224eae468248e6814a2a310ea7333bda33ea2e70c441cd13fd3c0ad8386c0b423fab433ed3c1c4a7ea625459c9c9c9c501acf21c72a228d2c9aa1bfeb8e6c2902091224221d7142efa61d94771167c2c2d44564813b91e54e3bf69685331741d3ce344d99c640606a55230a6f58e1c01ca88a082211d8835dc653299d883739d35de20473e2c88a9823cc1145ad237eea629e391a45a12465232903b2c5e4a05f930cca9434bd2974f24c8b37b02756f12e8600b621349d6849ba74e956866552ed0172443c228ea8b5a83ab3a80214e6162e23d7352190c802248ee8e98fa82a49ca7044e168430b0a0ccf5dfa133d63782df0e68928240e914e21fe067b1e0e2d65d308c5a6516caa67ac62534dc4cd1ab6f4a8d8f482374c6ce957dfc081a2b4744c7731041702356f47e99914238cb18838a2938e4906ea23a236e2ba30db0306263d8b4e4416098b5a04a326228ee893f2c47f45de7044e67461052462846620e44464e19080f197eea8d14a11b28522a20242b650fa4515498a44f6dbe1c7acb13f608d9c34c07815b35e6d4a4759cfe5e188db3a0668228bbcf5fd5a30b41e187b3ebcc5b9b01eef12df60c57e60ec57c40d3bbbc6a7044e7082503e295d9625fd15718315bb5bb10c1059acdf70f9ad6a67168a6559704667a34b6499521c1059a2b67ecbfa4bb1b40cb491c4b05ea925ace0a874198583430e617b127838d4d24e54e11ee1ac2419873afbc91d932e0716fd2e4a22d226c283a670789052533834743a8a087c4f12912dd28e2489549208a56aa89dc8226ae1419f075d4dad8f8cb0916d45aeb18b0d0377759758493b5217334b3bd5ab39458779ee485d44967c08ed0ed3060a37595c21fab4912d5348c8daba235b54aec3437fdc55327c2af0a35c5dbf5676da84de611b7c43b6846e3c2eb608bd22a1d973a3278e6e5822e470c59c73f64c30de0b71ba43c0a673d05da8d23a84b47d48bcb8b6a75bb9eeac55cd0267b1c5f4c2c4029e3d130c23189b9367f2c4113ded60b5666559eb2344880fade026b76dcbfa0db80bf984e2e8068490082cfa34048597c5a6576c7a51a62084a2d3cf882cf9740d1bfe065d41c8041b3e135d44a15002753793b24549cc0ddf03db507fee18a0bad649c0adffae0ead5f1c8974b7a2279238a25d60988c2fb045025c330ba768fefe30f53cf26094933ee9cab9833bcfb7fdbdedb3eaf0aef43c1247147339fc15818315f3c8cecf92c8d2cd6e26d93449749139bf9d43e6e268876fd366d3eba03b4adae1f491c8428447b6483b3b3c7a87cbc727331c474a36e5818787878787670708af89634efdae127d3e25b2e4cff7802355e88cc3fb038d87600e7d7a190f073cbde8b1e4536a83f006bd077ad6551e651ef2cc59942d12fc36d452a5e31b5216de1fa628d7989762a7fc71c0d939bc7abd281c690707675eda99b38767be9390cc6f58c90a82e18de01790078e21f54031241e78060909fc4215a92454105e0be4a15eec9e1eea0854116a8b4d5f419eea565ff6600926d19007f2ec9a694284682d446bad355543080e748d1ad73beca0c139e7d44940ca0a2291651aa1b29402278ef2679eb06a5bdea377283ca8a8e8e923557468a47978d04faaec401fde1bd5989e4a8d1aa7355ea3468d77df2952a2c21b4957787307e69076a43300f96253a90b9b4e614e61d3b8447c027ae1b548359ef22e3ab169102463e041c3a6126c43ca6bbc937600709708808da330094cdc5977337643fd7714ce8e1c5ec1ab035ea6d2322f8e74145a0618709524b2ec70faaa47b6f0f093579f36f99a077a00645923cb9c38a24fc9d28a797548970106dc491ed97349cb484ae2887eda48153a370ae7e1989b9eaa821e4639e1a397fe0e590e09bdbbb197c01fa824c324d306663d29f7197f963a641ab873d032898cdcc12de3d2a5704480e167d4790a87ea8242125966782155e8512894099364285d88235b42149e7a063d8563a923e044960baf20aee3505550390fc70be23afcb42e12e5b765e4b75132127077144e677717a23fa8348cb7b5454d15d58c000000b314000028140a07c482e16840ca2259f60d14800f8ba04a6e4c99c8c22487619432c618630001000000080080d0d0300020920a5694c3a3df35811a3266c07df9a64927ad46db93ba48650db7d00b97d9251a065bc4d39f0b9bc78751861155ee7172885b89267b1aed20da221d12422fcbc1f7ebd2dfa891fe21342c1a06150d62fefc68d6442c0d35346cc626ada7c341854b0b4dec8323bc66e620764598da3092af118ac061ac31970929d1bd82dd0f86096064f6d521332b114b69afed33b330d2bacf489e9cfd4289bf2ead9bc58d29230bb9fef87fc094c7eaba5d585e46e97d14bb594f4e55d4821bbc270e0efbbdadeb9848343024aea0bbb051b290ae3a375a71edbe65f481810f5f8ba3ed019760b3635dced0110b439b0466e99f9bd638dae9b61c8cddd5629303feb992f63c32ee93461353b9a1f14f890f35e713bab36088302a27adc00c62169c82519a9fae4e169ef07f4e4c33ca4bc57b05a33092e60b524662783db3cbb12408589af2e8b5befdeae0a827f07f3fb4d351b1399f845b1965e31abc854ee4b6c1f9160d441cdb18e55563b90423d4b0f61e0e3fa0c55ec646340bea621571fb5e7791e17e6d970c2daeaac587b5f2378020e52ac14c26b800f7fc450682aada486d5bbbf30c4d48ab8c5a64bdbc947606a76a69307b8ee283dc81b49c42e2e60bf19b1125dcbc3c8816825452d1acb6705436d4c39361939690ea07e0054c939f9df0de4adbe7d7fbdc7ee05a2a858aa1a0a18a6100d0c8fbfd892c85cdbee36b7ba85455b181f96a2d1ff548040181268462a4fb560aec65e0c490217d1b35f8180dbac248d3f0d76bf403b8493ea5d5b8cb884c708a48d88a66f94eba0c84a989f69c05c175d5cad1afc1161f3ae06b838d4289b0a3dcdaf3c4294102834de374b035c93e324879c43e26e9455283d3f3933e54dcb0ca53abe43c5f19862b18bd0d1905b3ea8732c7afbb46fa5a42fcd1d58d8e672c11c9bbe99e9e57b397cc20a41935d33feb61346f86170513ea996cbbfe3a20ef1176c5a8555d98335c2b55e10cc797cfd5cedf0631be9dbca84c06b6745a3ba75bd0625851e428e3a25f0165ad43b44d50a3f138d9025d3a65de0b26ac10a49321a73da809d7a0cd91efe27468042d74a3561837e68ba878f5a8f5184e056484268d2404eacf80c181304f874c7ad9b84fc078d10cc951bf70abede43d7d94a5b3cb2bb1ca02d56e7a32aa4cb06ab5d50abe77dd890d5fc3b11b97e477a97eab0208c6f9e10d5c2d004d2e253394b83f4c27dc2f974c12929b8952ce3ee6aa95f68f5024666ae53e1f7189a5692945ec0986d04bca0709f0c734d1b2fedcaaa3c4a728abd956fff45d7e6961efddbe42051c0e9718c8fe0ce34fdb4165cae2954ad10276ce7fff9528d78b2a70838544b39e3bb665212ffb10cd222ee5cd81515eb98ab386fce9109fa41e36db731ce8e7ab14f5b045adb3ca673c214ad0990f154a1cc9c14fb69f9613ba828284dc5c070b185c610522c9e18ff67669518fbfdcac1bc789f3da9643707b8766c9786dd6b57fe161e5dea173293280aef45733101a54f79d1aa34aa97fa81aed9eda5cfbabebfd374a652d07a3407069d28ae3f8ffaaace3b3a8c1f88a03ef66dbb63604a56e0825e64b4a53e10340d149b84bfbdd6a63efec352e08d71c54740249e42c6b23c85fd934a18c500a659f3bc121e8e68400857c905dd7ce0eab0461306fa70ccf6085873296371291883ef97eb01a2cd49057720298b19e6a1dc60c6b8baadb108722d9e0582cda27c5b021ebfe8607b7865cc10b1f63a01990235243a55ff87c00968f92130a29caaf260cd6375f83a9e37f62b4a1e55d6aaf9efa0db30a0d1f1b45e3f6063e7a6a2b68b7016086a12d947c04a344a079242068089caf36a4bbe93b1effe9e9da94b5182e5938478c2b31529967e6f615003b9462cf9328edc8c6f472d2620ae52dc4eeae38902a196f2637d0d8cca94e265575bbf7e106dc9e7f4351ac20ba27d55b9afd0f0b37f1e690a1298cbab094793bb8e01a9b637c294fcc264add20f7832dcd518b0ab64a96dab9df31efa5c2f079530bd04667ae3002995c33fc55a5e2c62164367b7756652edf00789885998719ce3f3f9c8443a486a4dd9668531d9ec1e54d35044819cc66f61cf6759e0b23e41f038c115f864ab3142bf7c00c2ccfac8978b38793436908d9ab881415d0fdeef6bc409197dbde424729fda602015c69600a97f73d38e83aaf4a3772dd06513f129e441a515e0160e127bd6e5a42aefc783d2a4e7aa222fd492f93edcfb62d569957352ac25ca0cef54b8423e2393dfc809e0f4e64075bb19c697afbef065c88e7a31e133ffb533510126d18ccb353f98841e16efb25aa87bd74ff7f0280b7f5898336bdced43a3351bd25710310a4291c40972e6d50f445e419f77e687c0e9f10203b259804a77c0c1aa3a018e48de56311dd2c373100adc6516428f55fd012748b605f5c44cef2c0126845ff4163b9839c3a5b3be58a78d47b6c9270fab941cf8050fa99d5d8b23339f6fabdf576202f96b8671f4ca4368f71942d476e98fbfd04068f43d9ad235ebf97fb2120691e15a426875a8cc0af1424e5bd4232115a24c7078e9eac15559e2f35219a714c2ae44d72a4f5d7622ab41e9bd88c1fb1cd1d3f6e99cafe47abbfed2ab917230ec642828f329509b96bdd37a07e240285c35957143e71fc7bd68b5294f346c5f93306f224163c0ed05ab53a55bafcf7fbc700977762b7a3e3310b433c48afdfca237b741beb1f0c2a30b8e556a373c3e63101cbd1601cdeabf3306f341a0f9a162fa7808daf4c435836ddcbd8edf17e2277c167e315e819c11b7f9dff5ff7f625caa1ec3b98a8f55feb9979522b600b67ccbd1c9f3791d9c7eb49b3421c992473f48e01e1c7efdf813c8a96b04f0de2dbc7629cc66c9f5120df7a8bb0534370c173417dec3e02f2abbe3012dbbc6a3ed3aeccf154acef74fdb276f9e890f9ffa5911fa3c310de3c653f87670e90f6d36cb4ed4085e20b6d66819f7569e3eb621cdf0ad170a22ac946db667f2f48fc46727409150fbbc4c39f169bc5f1bf8c353be22c337f254bcaf8a5bfcc58982de5112f665d392edbc63e74839fad6404990053294d1ab1112c820c3d0d574272bf7a70109f13dd0b346ab80f5fc20dce968c31097104e12d37021156627ef862b959ef0c153643bfc2227cce898f970fb86184cf2d3f10ac99f8feb14db3cf7f0169e7ba65bd6f109f5b6908dcbef609ea01785345c912058a436d5afa6d6a6f3524de829b96a7f655b2ea494e3e5ade2dae4da0ec3ddacc2dcefe6b7e78bc2deec026afb4072651e3227b3058537359f93d4abda60f5901c8dc04d0bfdd42a845eb495c0203b8789eb762ad8c8ff30378d99742c6c70efaebcbe30260b73246dc7e0b4dfbba830023020af617a1524177f79109fc9c3fb342230dce8431eb402650ad9593f31d969c6402bf9e2ace952601a75b6e10b7b25f4d5b99ca6f32e42efda58971f793d6d808f291d01e670c458df55b595cd81774a820449d94ef1984ba427385076b6563d491b100604b4a7bd67ef725147e0753646646b58d588b9389ddc0a55f2a131bf3ec82f5201d3d2b016c3d1381765504d9e0000aab408036a3a50a504ba906f07e33da343f0819405f742f111f2b75f7085784e60011aeedad6762f5b6e8364264d7dc485a48332fda5774bac54155fe47f647b40a91a914d2e83b81cdce7aa404cad8c954dd4897424ee9d4953ab01c53086b67d4d1a836033024b062a01b4f451d89bfeee1fd8ab9bc82d2cac6fc93adfb29cc3a812448625707b1c12981ee272c4c598ee611636075b97509178a686e845d39c65a2bec1ea0a2a34aa3d56ae30e19e82613c2f90a20ff6c4d3b24f61bb153f82c97a4eaa94e2d846e0556aafcd7cbb364393bf82067d8a69f9ca20c4e9892f1d744a5cf882a8101ec6aff062c5d688e43dc38a0b67f56342380ff98441c5855a6f547985cf87b0e5519b96ec9ff36df807a222a852f2a8f0771f3cf55d7042862176cf9da2cfb860b3e461784855fb7cba045ecb35af2cbc764e6edb55a31d7fd56bb0c3d8eae05cbb2de18f1d3ff5716491aabb23ae7f6dc87c0491662003c3a60ec22e24902a2bd93c701a70a89595a9baccee05a0c9020a84a1f8b8a45bb9a8cb05a24bfc0f0c948fa9b01aa6e3f2de4fd2cc122ded37b2cc191dfd5fcfd74031451f27a2e03f4769d021e407880426729bfcc66ae39eb22b03d9d7d73590dc6dd508132957db78412c5c6ba0dc259ddc5f6e7b210927fb3e069240c6af3eed610de34944ba0d400af8842dba19414b755c52a7a57aad8b7e05148421b16f80f792f9cc7c8216aee864c1cc43ce5fa1e6acfddb8f418b579d86af4dc06131e90c74874b786d87ea29bb462beecd95dddf61226f8d66752bd7f73bbfb215b494676351afcccfbbda75dbd8262fdb09d16ccb89201cbe0126f0bb44c6e96287b00848cfac648fd5c21a2f2532a2f65373fd1ab44a62db6120f66e87f75e5c2406c364092536b652509a8140434b1d016fca18317ee34dbeb09798b510876e4a5ee8e87777d6e55735c5c1585a064408a71ace37bcdb5d13a03ca5c9a897818825ecec936bf85adca365c6b0c0577f60efb218dfb3b2eca5b6cab639cf815b63534443a31fb0a4cb21379d1a22d66f3876db500dcff96c9011408405fac559e477199e1bba9ed368ee13f4a421912a1025a91a83d78c78e1e01856f54513ee1fe56332b8741b6572929368a1d7631a9cc63357efb70edea66e3b7a8a362b73495e723e4c7196eb2039455c8d4c9a934dd13fd374d00a3ad298b5d9a3a1ebefeb7cf48b43714c8e430419c082ba32fe947cee5a17a86703496aa4cbe2e855bf17e3a652c7a7df7c09997becedc3d8a423c2bb889cd63e2fe0cd031053f673652d7d69c0343685f744bf4d07bd6dacdd11faa2b9196aa4f2fc4d2a1541bdcae5d81564b79fbc499aa2256517bf6b40062479f1647448872e00b4b6ac2e0592190df582baa70930d1bee0d6fc3c1027e6a0e25d8e695f9b4ef57dd3c3272a6b6483212a6d8fad039b6208b8b2e3eb2d7c5cacd54aab74221def02f481c49a03925ef402404317338052b24a032e998cf3771db1484c32b961d04776c8c6a07b9cd5f868fd15f204f64778fd2e7f4f98376cb2c2dad16e9b8b7a95119de18ee3bda617787da3ed27c0bd0d78e3a829c00c39fc4f2797f3fa24541bf659995bd9c39501e51aa9c3058e6dfdc3df33e5ffdda0c752ad09274a9a52f0cd8a9005fffbf4022e8b53d2846851c8712bee422101546c267bd3cc763a8ea66c8c14ef3bb93a8650b640b7220736ae9061f87c907b4c4498107102f68889c3844f55dce74f2b758ea60b0129a696ec522f6b2a079328507d5f7bbed03c9a0a5aa9f6875f5b7caf7fdadb0a1698e3fd866eb506388bae8ea2af4963bfe42aa0c35bcf0d1d5e958f0b9b5d95076ef2f4e730a622c06adb93027ea67a67d68a50f42b71451a5b285acc3a577505e9f2f98c97e44e4d5840574ae0d7069a68d92d4f9b16733995e30a8fd4580871b9af5ae166d3a53962ad5304c288e151194ae352682ee7293ad1a88cbe3ee5799cdb44e571a53a4bf4a47bce41656e15719258797f36d02efa6e3551936158291e625ffa0813f14f06aa11d5636e4ac150d0e92d22ad978aec4aad20185570e6a006faf20da9d807baf2f8a7dbbe465d4f03d6059f115fd0790c756cf04b421a2da7d9bad04a2e07dbed8800fb754a6a18ef38aeec82f4f4b8bfb61a7ce2b78abc8f8194800af27d72ea4012803fc6d9129e3113b8bc19b85dbb26835f34d0ab80702b60dee16df9dc40fce30e65733f417e1154489a7582a6428eb787ec85e81e82d42e970649991e3464750c675c3f09e37abd8cd743c42fdd0720187cc051523ca294bf993dc54a9af491717901607c6be1480ce904123766aa2d865aca3737d2ef23eb7ed81a8cd21e0decd3a4a071274ba84a1c248cdedc74cc909569cbf6df039008320fe907102ea671b889af2c5c85aa0a1010f9d96cf960c132234b7843065a0600a55185ea0b9e6debca01b996a361ec5e907f7fee2e080de0fcf2d8c94611a6434a2533932c6b9135e29b088ae541faeec55a3af0ddb3ebc7f87e77656b7048d11e15bdb97fcee02c1e6289fb8eaef470320ff3cff4c40611114309aa0d3b60dd6124a490765bef5ee8235cabca83fdab3d7b72e76061e6dd6cea0ebe037fe53e6e89d14c803ce4d131ce4356ff5fcd2cecb8d208f4f0e6b3512e09fa016382ca1da9f2221bf8f759d8f88600124c6209f0862eb3cfe93c0a911152c9bf41efa87246ba209c7a2e416ac41ac6edd493155c7f49da7595aeeefde903c63507824ac2c1a47452b70a24cac17d8fef0116c7b95b5470730301417364103327b8234aac8cd1443c71c03a9d16ef50aecee4998db2ae5181c05b11c71e360a1affaa0ed0f6c8b43c192bf047d7aecb81248bf5ff87508a06f8f5c542feda21a672881595860c68664ad24752b680812243f0b3c5130c8e655d294dc8e3ba8dd426fa61d6297fb506f7f17c30e5796d80b3ad2a9d1630b9e8954402abb23f5cd96ab12767f935301f5144c76d0afa90ff879c13347cf2acaba2a058dcb585ec22e0299dcd0184b1a3cf7e4221562a2494921bc726978f60c435d728c5e5371b23b447976f57b3bbc1aee474981fbe712c3917a82b724afd27a13ff47190a23514a9dd48cf86415093ba0f08551ced409505a11a3dc416a12e2232151eb67e5f01a70e94897f483d4a6a098e007c73830850fa428ccd87943134400340c9e480cab0029a0f981b8c86d75a41df4b95c536ed68596830a96ac9aaf85e785169e868bfdc5167155e5bb5a147c8071bfa17dc99b6ab02b0a1e3684d5b8ca11e14b44cb117b1a713ff8cd2373a1e6d53e64870081b612acc03eb32056ab28b5a26da4ed8985cb3af51c0b6f7951d482adff584b6296947c74838a1065c4696bf0efdad4f31b75fa0c51ed73ceefd5391dd9a9bdca06be520f12ae3015f5d427a43e84a8de6303100b381aa7cb72beea74523eef111d3f33c0c1a88b631c995e540f9ba6a1189ed0693b8359e7b65a42bb52c02023c97caf64ee96afb83992064987737aae553544e84376c5130df32a2803b70a92287dba1a5e4bfbdcf59685367c913aabdb7fee148080d83ff5880079d013c8cec2e3f3a831de10883e160b2261627370789dc8b657aa43f1e10dcc4d4374c0081c8a4225e3e849265ab4c824ff8ab41080e2b8bf2e32940aaf411daf4d5b30343dc048e92e93cc48dc123cdb455220be644a1aa6f541d9829aad75a1d6e6cc41171a2fa209a3be2814069d05cbedde23ba19ef669761b6bc061af86d26f75a3b273dddf7365a908cda5b0ba97bdc2c612d47d8631c54875593ae5cca13b08f80619280fd410c818d09bd9b0bb8b24052c65c1f6429073852bde5d4d7cfc971906f2ef03b4160742a9a40ce71a1387812d44ccb4b58121a9d6541400e85c07c02c03742e3c7738572c1abcd5108a3c9dc7382339ef5ea6962941ca1e708cca6bb1a08162639ac5180ca4878fc4c7af7461bb05ea87ca17a36f06927fab9980672f2a73056566040616fa082ebcf8522e76cb9261c4cf5df89a4fa59bbc3b1082347ffd55c80fea1e1223f8d861251cad9450efc63d3254bd8234769cf7aa650a558f2ef8b6ab726aa5a66cb5d33756c1192048f305be0d19789a8806cc7ae39ca4a15a1036ad3a13412a5923cd73df0963cb89e9cedfc849041a838fc1199738db0e9323224a05de1d45fe4c230d30a0a7ec764e99551cffb24c62609ca8e778e926b518e53a78282fc5104bdde88f84ab28705705eb2600c9185a1fc2d8431cab96859e686c62476297c3f8b09ae58a0dcdb5362b018903ad26200ae76a685c49c2e281a7c085c6cedb2fab92f20b36e69388ee3adcffe32258db6bf1155a60024b7d9fb473937100fe3e1cebcb85ce86580e24cc259703fc9bac7b13e471af70344f8c35ccc02f410dfacf8c0c7e05154a35182998f693b48f2302564d67be83e045e0e3575e2970b3b03ab16e5d80c9900e2d18207f4e5a3b0066222e0c18c8c60e6f05d6d089e11cc800d0fbecf378d096267c348f7c4604e877700dd211614a70c351207be7e75e86b8c9e1ca604d7e1388d8190cdcf1f965b0dd9efea6516aa1c91bae347e8861126ece4cc5fbba1ccb3452fea09917ef829b809dc2536e04b05e74c3ba901ca2f83a420fa2e194a62068a008587d182e0d9649ce0462c3509365f4a6e98e32b4caa7dc13bc6836e2b707b4eb869ff698bec12e35211820f971f80bf42b9878384824df4c5b324fbf4edb48f52f26bc04a41b74c0a3d2c716edd08a821d40613560aa5fc2cdce3ccc4fae560c416ea9d95d080e83f326def8c9d5821a729f06c981320dc1dc6fc4c07a0c90572f3ac2c6cc1fbc2a9487eb91b8414b6fc473a816aa3c30c8753c87a23227521e4cdbe9df98e2366d67d72684712bf928cec970e89f99719e66d52426813df655a9625d935ca644abf974e690958ce834b2d0ff9c209d4545c91fcf31496bfb1bb89d0d3ef5ec81e5a148a9d94d92ca2d83eda6532fb33786b6bc838657884ab7a7d3bbc2b7fef6214707392bd5950ea2000d392bad4d170f7fdf12f0e00feb95a854d1e0bd822f1b08c62eaccaf59c785508b75db03858db4c34c2a39e83db654cd478c3e5cabb0e7c73d4a9a8208a04ac0d0d6dc7e6f871810f1a445f16e02e763d22b7a1d7e4142f7c362ee60e183820efe01fd0a6243a7d310ee819dc1d244b3cb79712e866692503466623e0c9820d1ba31d759be0010d4bc8e732b905af195a8706ece40dabfc5e85f2347596a03cc0d1be1a092373a2e5801e90c93371abdec861e3df4f3ae35c5e56ec3b46aa6882c9360076742129155bb19b584711951efda47b0281d58945e7c6b3f74b9b5483b2e0ec339375996190c6cfdb9d56dcaba0f5409649521278fcec896f154d45bebf5df3d8769c79452f200316a5f8c0b0cfc0046eec4c15f5bb90945e6a0e733ea49c6a7d94224e703a1a73e4f68526b158cafdc3ea21457a70b3c449cad3df8a07b2ff998179522ce6a6e0e83c1622a40c541f60f403e88e4d658f40581797a6116999a37d6c57b5783443b7f4c9f1b4ba1c4d85424e30cc7f4d88b6361efbcb9413f83d6ecee174549f0d1ddf95e7e48dcfe8449dcb9f8c3b07d50230355ff9dfe4c5d66e9a03bb669df19c7ce3cf9b3b87cbd33c655ba67b2e2f2929421a8afc8387d8f1bb4da114e4bb21b94699b6363c800e49a3d084608a84a227c21c891fd21c067420ab908605ead1c7e5514111d31c6802b336ff7353dabd52e0de5163ddd60ec0dd511befb7f494d3894456741e43ba55db5eefde71493dc177a00aec08cad8d20385cb3a1d49c19715614bd6ba1f9abb5d880ad04996bf20226d2c25b944f16642ad756a01d54bef4ce8259e532dedd0fab772911bcd0fa6191344beaa8e2c5a811b87025d96a18c9332d32c290c12fb832b6298ffd0b1b8b9968774dc3539ae9ca66cd36396e558d71a86f56e369a65fc6dc624fc6629a56d5dc1f286345b98cd033a7ea5b326c1b5d1a95c69bb51bdd1c7b4efffcca3ec7bc741ac9f91f65d3ec8fe001904ac0060e1158d08495bec70cdb6c11dd126673404ed2e752a4998034100452c4a662a46f5424305c1e7a5069f8d061fe6b962941dc3ee0901c6ae60233dc2b4434236f9426a5b5e21164effc0484379ae9324afa2eeec38f4201a53fbf50922b16c686de1ab2b2e2f25895b5992e605d8a299803b25b7d1555bfe98223fbe47532a212c3d9b7269e98261eec614114472cfdda39bf23eb67200f03572fce11534e2ca68ba9d2e1da1a59470c03daee802d630988d10e36d280031a3cd69f3ae1ff12b9675da2d3d2b1359dad3c9d9f30355aa870d43b2f3ecaf70c32fb1dd480cc7f2c974b3131d9fb71069ec75a47424e90e92c662b5503c8ca4e109ca7afb77115a81ee683c89249122385186e8345f2bb6825c0f515ca77d5c8ff2489294ce1f5bc8091039303a14c5bc4f067203a180464acf2be2919fb4003f36845d2c855ab605843ac77492ed6cd240cca26828f50b8ae7b9e9c2387498bd01499d12172acf5567271dd639937d408ceb3f6e9fd858a519479f73788e71c8001e0482b32afc397691001db4046bbdf7b3241b3dbfb4a9d3dfdb63079f2993caa9e188f593399e76d3f1b382b5a3b9b79265e2b8606725634e7ca18d89c4baead8c7aa769bd76681b06fa5bd823a6bd6843d8dd3af49e3c7ed537141e5b7006d10e066d26e562095b3116e6a0d36f4b147888ce13cfd66f433ed45a1ff83851462795700fd707adbb9b99b802579ec7d55f02279781411ddd188c91d36a81146f4574da6346dca06a15aa4334358c19096a01a8b6a994948b03289a405787c3e79f230e6abe716e79de25f6e834c3bf427e4d8d1763399364fd80092d8c7ff2d1879461c58ae08086795e24030b01c34d4c8ce2f18b4f28b6bdb8e2ebc30018309105bf2160f4e318f9f40928b7f9d4320f4ec471988eb53bf17ef6b254b523d94fcc12124ed3602b7720e99901d5c9941a86b57a8169b017d50c1fc3be03e5748aa32cb1639f35b8ce6e2442885b67973198172bc3aef85d11531a85ae2ca6deb7975e6d8de1fdc2651ac3a45c3d2a2e4246213dd61abd343f015d05fe8fecc4f7a592e69a041abf698bd98462268a79a008ade3918495cc8fd6cbcca49bd7ea10afc81d9b1e016e4321f4601ee422106e2405c3d6ea6dc18eb944df77707c830250d9c0e871630184763070907ebd624ba0518720764f6f999828b5c0c83b513e31d16a4103258a82c74ee0e15e3d8182bd1e2ecb593d3097d9d52d0c5ce2e6bfaaa061c17455784470922fd9c1df3aa8e37e98e671603064dcfb269a164d5e78bf6be97cb73339145ae6fa17892e5aa96b85c8758dd42a23cd199b11975277b5730a5cfa4f7e9b103f3bac22735578207a88024f60910576fed52f5ec394b5919c917fe7fa245538e926d2d6d4342195c0dc867a08ad0497d91fd4a0017fc30e7b992e282e25620fc861730edae9104610df6eeffb3d120895a1f755d0e350b09f74d79e9c8ae2e78b0cfc3961a9ef25c62b214136a656f3c9b058eecefda873b522399d750071514a5c4da1e4933f91b2ee14e473d0886db2e37328d094329dbf8fd606d3d6938a827cff5cd232e1d6d148048267ba7090e49c37832c631067829d10cb9c9e3087a9e281e82c533fb0c39c9f8865eb427b6301054cb511e688450cdf622b6d9a90d9257f8202235f68556f30ca98e5b71fab4870b68b9069ca3c3a446a9e67b240122cacccca92403931952b691c4592ecd23314a404627e424e52cb7ced7eaa636d3fa7f63aafc7bf65bf062d463fa22427a1011389371123e4abdaf4f09d698eb90e6b262ccd75d2f0ec680d502e7099b6a3f12aaa4389cf75aac3c961a1e7432374b4d84a6fc4085048ee2c55023856c3bd3793e9abd812d7e47595d66620aea3dd0c6e2195b0756e411ed1d1e2e8f456b44b7be31b847ea6f24d50d551238ac722ff574cd08019133c8e7c4aab3904e23004fec37bbfaafba289e23ef67663a0d1de1028739138217910c21f99f804f607cf8a4fedf3f09a01866ce7370b9def3d5ea618762f7084a12406429162590c56e7d1aec90484e518c2bbb53c61e64a472ddae02ed622c99468e80f9e666a310cc6cd9b28386537f317f933b8701c2ebdf7601624b4f6df79c4e06b1414615faca754659cf97223e0327d6191d48f486a5ad2cc24f5c6e0f89cdd1fc00b288be987443c932c745e5c245af448d6a36899d0cd60cf03f3107f7bceed4f160e3b8db1d0b4e15c1940f1058146c4611928e56ac3f01eec005feaa953393ae348918ea3cbe46d8c6a24f291d1c7aa90c5df32a3dbe9c4787458eb0620a411fcd9235524ba7d4f6682fad06e48a540c2e7bdff635976cca3cf90de85f6d877d5eabf94a63657b6a615e2f455835eb78b5766b22baa85e305243b50f654b70bae68a068dfbb2421fc96cc306cf72eaa2362122d3e125db542d977089c21c66ea35be3848e875fc36b10e3164f523854f38fe89dbf8232b291712e66fa44d9e27916db1611f822d1b3d5207a4fe2588ac1b2f187ee1da14f8c2f7ee106e40edb62600f70fe90a6083c1450947162e0a44f6296b9e84c0a03238be42b09e33db996cd02d6de896d16c9959c27c71192f748c90a8ff9f08961ee2b119e9e663c54434d0aeb170972e4edfced661fd3a27096b968b246b694c8c4e847df94043010df28037293012a1890dfea734d14179185899697d07c164f3df509827ec6714e4996c25b1da418294704e4b11353b2e2a328a614157c3642b4939b837ee0b6f64a5cfa1498a542222a3c3c9c4a5d9946c114660fe31959d5a21d1f812baeefa9ef20f015817345eac7d9b82077436424d7952d2b90bc031b2f6be67ad26940616ce68ea70b4bcd48aed597420d76514aae96286a2e0ffe9f0bca8bdf2d99f8a431f8706930c219f5b34c1a326be9609a38a4e736ee41923e1f3202eee17fc472e8729e234140f24f7751fa43ccd92ffca960e15024188d0390e34b5522f124586b3e0ed1b6648292d55d3e63be05cc38650a0de6ee462e16e04f499fce04f63439f1d04d48a9f36856d418325a1fa22bd4fd496394677988c675f4154799c9a2850f2e5288995106b24f649b80ae9b10b40c67e4ec2263ad35374c912a154325717c41a7820796b38299c1e43a02121f48acf3326f99031190b65eeb623b8bdfaadcaac8ec0ad974fc7189ae49a07b25831ab2f8bb3cb43145fc72badbf77fac217d4d55cc12e807d8e6d4af0fee45518489d594ec22bb76d7a321b897cd43a65b223c5f9436abeeda099b90d81555a1c42662b7f2b632b9d5587b7947203932caceab8c7a434e7b29276dfe55cfa17fb2e0f744983880454b85ab5c32bd14683f7a496c4c5bfbaa2d803c533d1a6b695fb367955fed964c01c9af8772b1b56444f7ddac201b348e8a30cac8f0cd06c92b258e52b47dd7e5a251f636c21af25f0f0cce80661b32bfcd020b5b3610438ad9b4f457905bfc13a7880832a07130ebb23e6cde5aeec5cd345da94b18be456ea5a128ea9b38609062dda05ebe2df9d25fdca442bb980a2219528ffc7919ec755813927ba61b9816e266ce4a85bb71e6675acd2899a5d2d3153107faa96fd7f760cc7617db80ce6c625e28ec080af0270139c2e0768c99ea484438f3525c8cf9c3911c64bfc235756b989dd1e4db5fdecf2be2c229f94591f0b7c6bc7408cd6c6e8f8117c9a0180e4325c1e0ba08dbb3a9958e628d3078b46da148a857731b2be7b06014007d79b7b702201aa277aa8d37c8f6aec9252f9f6667da52f8d2d813383f13604963a8b13e10f34def24fb2b7dbb612214f6fc96d12ec8c2654c0932277e20e39b7b7d441d2d421f6911c164cb4821c949fdd328cb9968300ac342d9074953fe61f119c4df7db8092247da7e42510fa258b4ad6be26d2f8e3eaea7fe1e6d195b9f16bf6d2429573fb874e85fa242a6bd0e8e064d35c16ad5739a91a4ccdfc3366619a8df80357d36b45cc6fe7251362cab354ab5b9b3278165dd9938f60648114b7ab0ac142bb01a43b2375f25b77f4993e951acdeefe7a2963faa1509534c3e2793d4865821f52314049c23134e554b2ae4589b3f75c075d3259eb9d3ced8baf811766e40fe5984ac1306da55190a99b3a0adaf2c25895ac5f897b4d859211e4693dedb3d9524981cc0cba6e96d8f179ddf1e9f57721a585eb65080a55969d1a22a3c0d61e0e46843ccf8b20249d341c67b8b596bbd0bfce8fd6eb921ae1f46e0128e905eac4beb8fcd675395bdc4d01522af95f075ac7e2b8e85502d1138c766f4fb5008f8db51b4e451520bd0f3f36fba7b0ef43d4a73d98d6d7c30b9819cbcbc9584bb574beea53eb9eb8b9980c65b8629abab9dd373c1b16299df106ff42d681a8534fa04de806d06f6ce694491b98f1e8bbc15c26b6c7022188e058e1897ed659c7e54392f6d5329031ddfabe912954645dc477932714acf8be2ded944bfe7a03f084214e2982460a6c9dd07eb7925a1c5d40e2b4ddc98acca63f8e0ab14cb1823ec56e51b811fafe9beb94eb8a15f75d4caa2080b8263754e21281ba91ee952c6ac7996828a70208d0c742dda9142e9c7120f61d5e2714e4ed5c862787217a571ad8631c24b29a8010405e82d587d3b0bf127065a8c39bbcd068a14f702b5adc7e2a767417a692841400bacc8bf520c95d3bbd44808c634fcced027a06838d7808088a50a9cd68f1a16b1a1a2bcfd6ce3c1dc4d179e4a3e27f6004d0b649a35325d2a5f4e95d7d2f6f67ad4b4606f8940a8b8e41d33789959e53fc3341ad36115a25ab943edda2beffcf4c13f83055069acc8b7afae750f3289b986f8436f3fa61b1cff73731cecdc8465d7f789f7622e10bc99b08f5a990ba8a4b870283db66c357f061a8dc6315c1c9b211739ed482a9fa15e4407938cca5b17a43f439af359aca317af6837f359a64f45637dbcf3bad9c1ca189c650783aa0693e7345368906407fb57bac86496423e64017e777ff301a26d28e4eca5f0e27831a7d0cf7c015f6e5612f87d7b329961c46aa2c70d1a55e46e05163c416e0db3947fccae8052c9a272f8435a10d3433318f34f4c2e3f061a5a858033f36bb60f622f064c2c12e9dabc6e050cbb1444652560ebbc84d32434200ef7ab8a5706ca6d6aa52ef2c462a90ec6336a5477cca9d64a0d6bc3d954cff06a0586a3b09806798085ce567af0351e58974174028b66c73ae727f5148998d014c7879dc806647faf5d159f45ccb88a54d435ae16834cbf5de97cb17fa72d85b0b34f8fd7b2e1c08ecc6c8b7a7cd176de4e76095ea9842b9240c7411811cbe824b0c5d205227fd69acd8834d053315b706b2cb0debc12457481cb75cb25300b0a1a311f50624eddaad7f2b8733160f97385e12bfc9a900e13965c675005c05698fcfcff0d1a97f485e66a3a7d19f810f11576d130f8b6b5a2094a70830e622fbc43b46ae9fdc672b8e95144ebb374c4263cf5251eccfc3a92c1b4bd21db2267bca6efb68dc212386029e7f7cb8ba110f5b385126010a32d0b22a9e15a3d727829cfe04bfdadb6de92209904017d969d4f96c07b900942134093f69a3147102ee824688baf64032d5f45ace92890cb8e7e40a022db35952647ae17ce88b36b71110613ad180951dd3b79c7c9fb84b561c2f22cd03436380897ff15d7e6d9dd4a9ceea60d6ba5e2e09b6e66b3acf93371ca830929240a8f772c9641c85235a377a51b3d6028d077d559a449e403940ed9795a54d8d38e9dd2422b1130c920229c3e731874335ba0b51d152aa6401d7107d81e39c9c88cefa40df024fe30fc2d89595fdce6ea1af1b3126a33c97168fc220497eb479b829dfdd0f2bb6bc9690be1d14683ce95cbc115b3a2a09d49dc4398eadc5f3caec085cd1958814a4bf4e9ace923ee9ceb21bcfbd1428fa33b44bdc5ef225bb909c9b11c0cffd2fcbddcac0c7a5eabfef6386a8a325c5eabdcb6046a25e5784d735148d91a0ffb18e030acab7aaa806d03e9109856647f9540a9af6a878dacc2f68789a347e3da5b892add4b802c2ddc4fc0ebd7a0e22c1a8e7587dcfa35b99f5d8165b44c26ed984f60d014fea2a5d9521ee29c81f699ff66f4c1e2e939e0728b142abd2a82aea114abd43cbcd57346cb458392d8acb208c010a8d31c74fdd1c1fa3ffe153b43d22c43334f2347f7f3e49c34ac3b5566333fd779463b16f7eca5975726895900b194256afc825ad61f9ea69e8387ec666b1ae3a6735069f3a9ccc110742a38c24962be7ac40b4321620d1890b248084ea264ce60882d49924fb2bfb99f4424cdfb2fcc46298985f5c77928983b1f53f74c5e6f70650b41f7928f41854bd5102ba8639a033f7530636862025e9a4147a16502a814078d40830150e9063196160660a41b741c0d66804935d838341a00916270636933011a947c51774560d62d39483d1ea86eabb744c6ab2132c088206af153f2fe3a4130dc71e95354478e745b0b02a8eaae439b11d16b2f146f3aae4316f208f12b61b139baa8972016e5c91604408c82ac7b726bd19e9675398b86d39c20752151c48cf2f7ae61dba23bf1885a5deab8e2cd40c370a473d59c60e39ae6c4f612cb3f9abb082bd91f3d9446fd59cec76e43e5fb30e7806616227838bf33fafd38986314d469184b6ac06bd46ced486f2ee9a82ea3bb1095ae6f9a46030f9986563ce3da45ea533a2b5106cb5090c85e0d6d84252a6eefe0bc1a15b492dc37ad07145a51df64597769806b84e54131fb1d4560791118201072e6dad4db0b0611cdccef7455122d1c899868e8b032278d995c982f0357c12a94c926d030fb82bfb743836011c1b756af696a9b4f6be5310b025140a09946176a18a4f803d6e25c348973e33813924c9881349dcec523094304ad34abd2f7a2d92180b6dc219c59b1232518b4c6626d651272eeec13f4c54a99589fb92826ff438a596d70140d8061f6223b34cdcaf72ed66f65a5b52247801e6817d029ff64aea0361edbd9589e307c59f1b2e541d661b0e0819421a334b30686001fd32b30ec89dd2d9c6c42b3e22d4bbf8cef0f84055e2738b13bdad6d389155bf316b9f80a4eb06a48661b0a469fd6e292661d4516c9ef6cc988700c0f9054f17cd6f1ac39c09a4b82c9106c329c52feaead4d80000a21a303a62602b5097edfb2f24ea2bf4ddb9cad8f48913ee0078d2eb28a13ea7bc7d1cf940c9d8728bf92fd9b6479779abb1f5a89e875fb2c7ed2af699cf265c8d41822b341780c27e83710192ce1a982e1d23ba47fc84bf3509471bb929ccab794ebd530448310f3933c0a77f0188d019baed0638a9876b324978c34d426b0234f3050febe941c163493863c759387221bc76d94a376404ac9240d0a18babbcf072fc10e76a7ad0082237f0abf5284196e7058061aff7c0f7b632c786bdabe68e6652b1017b62465e9c4f4e18870b63275dd902243929c65b7b7c738cd580b872d002cdc486903e2780ad865daedf76ebf621d45c3738fb643b52a2d995d45665568d7b0a21af2a83049613da86a254c44f15abad62ca174e41847d143ee797641a03ec4f85f1ac79d6d9bbd8cc0bed6866ae30279609ef0bbd2216651177fcbffb6f136e6037ac49c402800960a1a46d89c99b349e7a6582ab39003395a5f09d4023a99dc4426d0373ab825a1df78b19be206358a20ec18176c2816416c82865e6e395654ce88f15f3a1d6798d1e299890ca1bb901e0fb1c7f7118d05b1e5ffb55d380ad1fc87edd00eed728b5704ed0ba23aab1b501bab02ec3a71bf92ee50018f2dac78e8ca7fa003526924d175ab947af6ecca4dc5d2fd2af587e2b6f3afcb85543c6d9ebfd2413b043605d4406cef7bb92534bd3e2496394aad1b69356f36e6f6df83c367d1a88b213257ff8b06a70e3c7104a9b911980b0acbdf6c32d10174d663d77a97c70e70bb9a79d99f5be2c59a502b57944a4da8c4b10396aefd3ffa5b9055ecbf1a94f30a3ddb0ec1bfbe0202f1779d1e0213d2c31d727e43343beaaf0981fd5404449f7bb3ac3ced9250910cf0d5418f4f7e83772e4740d4b61a5965c85546571d01bae97201ca1c1e8b244e0936bfe374369f18abccdae0fc25a061789556963b852f5cad31dfc2072a572dcb8100e4bfb0833f73aa8ce9456282110764899be5a6c18302f0e931bbb4ea274f9adcc5637f7fc259e80d63375f5fee307e6705d7e45288c1b1643648391b4862fe03f165afd6489d013521869c797745ad75aea64e1e9859098c8e7fc46bf83453d21e200732004a5d937865bc183f80c3aa6aa061fe7138f66e3794629a0171c765a63ddae13980afb746e5c9d8d2df47f5cd0734fc045aafe1679d53f7a992024127bcafd1ddccd112c0bea3d7e03ef50ea71f6025a0a4b594dd83e405211cdffa97bd134e407253aa66df9490d76b2e844c04c45d7dc4b7c95d70532f50f432c4b7c6ec0047f708c863f4c538c73c47a46716afac09d5814b3c3726dfce788cfcc62ed09b01a29b8a620f2b338db21c01a207d6ebbd10b03472426ccfd9aa3983b1998078cae17bcd38386cd291206a637bfb9ffeacffde949464c91df15b6ea21ecb7d99e7fe47f0274374efe092dda2870727093d3fd6de405ad1c367f555b125a387ab72d7b7c441d54c595c4ab8c0057664713db2fbfaa8bbd18cd3e686bce993a66bb931b89e9e4edeae687d557f265a76964d1a65576508951bfcbc453b43287308f5db17580336d1c2bffb2bea1f8dd930e11c31b2c472fc3afde0e5a691e338be346ace794b344663cfe58b029bf6e5f929fbea221dd50a8362885d120fafaaa0b3a595ef5d9e454509564ef707a899bae4ad63e23d98c7d702c4385afd890193f67386f6a2c16d293ad0d93bfae6eac401afcc2eeea2144fe67a0aee3ca8e4d6c5d99f02e067a60e291bc64059e5f92ade00ebb86d319215400fd6812010684da1607e4562649306953b8036f210a8006e1019bad049d6c8e32cea469b3ba33bd9b39030c8ca9aff1e9b36763eedfdc3029afcbf2a1690c73b7bf492c3143377997165426aa44da207f1f2eb54ac21e8c37c020a1eaf515b9e6fd2fdee74506089366aae7d32335afada6a29c6c259d2bb73aaed2397fc19acfef998f20a5d361052baf363b7a67b466f43982bc134d1d795753fb6244fcfb43991500d84f68104fe77d99ed11bff8f7762674147e7c078b51a81580d5de685133ca4ae90c6a0e2658cadae2d3d4363e5e384696c2f4853fa0bc0786a6d2f62bdf45972a629025d731184ff32014c4e8df21dc5565999c9c472fb26fd637a12b9ddf05c627c8209117bf861b62ed67ae1ddcb29709d1042f529cae024c8ff1dfa56750449f7e173990fe838b3d3defa80c4fba2a85110e0975047efb1be6869eb459e8be8b49d215ff4d88a5b69eaef87f396ea45d7ee44f89a171d4ff8360bfb481d0e77d149cf9d319c1eb65754c78b0eadede220683a6cf8db1c256806ada5bceffe34f446ff0c8a2ad989765d53a83bd2890eaffbe411b49bd602534d363c4b8ea4052ed80ec448ddeef519900018efa043453f0dbacacb6fdff10bd373ffc0f47e16c7dfd61de1769c87736d386671e294db3fb44c51a1b0205285101454a119215a1f7a4267f496086e590fd23f718dc89b25cdd5634d6cea43615e4212de4f02d2fa01ab29b13ea2d54e00e7d9aae1ebb9bd2098062ace70ede86d3176b8ce78464123d2b6b6d233805e5a8bf6a58f8c84d86dabf3c7ecb782eb0e580c0a8187817580e455428b95926d6d250a92b6d5d7c64b5a46da5f892a7d82de41c15399c7a5392e7059214ae9c26fabc2c55ea6b290301b3224b7b6faa5c27b374bb24878eb8755dfe656bdb4fee324e70ca2544f89cd59116f26501cc2b994ca19c9815efb28cc5b8cac36913ffc62d05ede34e44556ec9697367d5a6662ccabd1a8a9c07af1dfaf272cb26a22f4730c8143c7accaf693cbba07e594d2adaf4f0a0f1dd170a21090d0509e601e2c767988fe5102a14a1fcc897f2ff4a8fb63b96cf6e8e6d7a09fa86f044f2820cfeef57876317b0d67da909bff7e80389f3fce385d2e0f2a2a25397465710278685f1d9c438e70940f9430b4e386be4ecd6f06a24cb49b7450d409c2e287a8ca90c9d8ad8aa23d29e0c8642671e2e2340b57df6028d25118863927d08fdcc1cc0ad07afaaf1a9ccac118ea99832ffae9abadd17676a7f2f0ec91d832dfc21caf2f4f94157cf2d07991d9c9766268c96d26fe249c2bb7df044d7443bed73c3f7a1c1766ab562ac921889980106f7e89ff4b55e2bc4937da4f621f2b0ad4e6033d7b47a280e6ecb1b5c46a2c013df9d7aeef11c07efe437cde5310d3a792d467e87b865ed093069b1ab8506d95e7a1fa0d24b74dd1b17ef8d243168857ad5cc6cb559fa44239e6fa097cd4edc3e20e3dbad52957d8faa89165f2b35504cbeb37f73f215d76c274858f234ef4f130bb8aecaa6121ab807ee270df145e5f008646eb8fd605cb399ba8a453d08a0ccbb4bce83f692a769f081c3e48927bcb76cf598ebca80892cc69c9743150b7925877ce1c6c76d8ae28c642d91772c21da09b4ea6f70c85353096f3e4597295158fc2b691d871690552b3a89068e366cde9e089019527710385943b2b9ee01cfe114741f2814dac82c91726e10a262f18ca28407e6009af207b81a53c05e90393710ba2070cc229805e3084154b40bc8a9279f306dcb5c6d4094fd7fc64083b18070656c0af692778125976667548f38c3caabadbdfd077c31eb512e4a67f8ad765744dde1907f185e8b6bfc7058a26509d243c4128726931291ce14355c436e8010b585c683ebb572414d89819247d1b22896e8904960312f1a05f30c1447eef358cc66f78f04657ad1e8250cb866cc14b933a2499b938fcb325a42137c699780e0ddd9afb86b20e82b79f07b823fafeac01674b03001ba30434ed8e7f18555f0835413b6b63c74374e602aaa102de5895ef832936c508aaafa069cdefd819c983e13532f371d6aa145c87e34ab9eb37e90712b931fe268c3cf129a58eade43f3b323e77def45e885314c937b9fef9d6c72ee3156b0ee833d13f52a434d3f8c03f94562dd9cbf59361b4f318cad3a91bd92be336878e55a906202596371b08c17b8462d2c7e553f5c56e6c556531bf079a20001268ab77ea5aae020cbdfdc2100c3f39faae4d6df8cffd18382dfb24caa59a288b370785fb54107e5405b0d5982bab7ad7e0592900835c23b59e960e2f4b54a6db9a01483cff57d0f47b92eeb6458b7100d00196e20021ce7f45a159777d4cf021280562d2b24356d913c7252a165cefd3a81192c5fb3f57e3e72d39cee7309bdf13e64f4e5622eb3859b850b0838e63da483f481a68f3c85ea3205f5c67fc42f0eef0e1933b7810c9f0e20058a566a5afa2dd7356f7b7b0eb9b8f7a17cbe04cd821749c76b0e8647f55aa370cebfcc64d38803c19f9055d36dfdce46e1cb4958bfc2bce9b81ab9ba045776dbc4101385dbdd99eaa6800cf14b021e42e71dc49d20da3a4c5f49c569efd6cf0d5823e236efcbae768fd0129c8b422e72d30cbbd84855eac84280dcfcf90577ebd6100b25600bd0323b113fabdaf382203f561592ad71d01da2bb08c8681085de230b456709a721a0f0189dc004952932fe86e9dbafeeb55f6ed9b1981f1fd63bff16fde0e689dbe24f241f0e1a20839de1d583daa8c56f26299c6cc1f7e981a02a61e89df640c507685acf14a179abc0fbc7df4453f00cfc62d9b684fa0e1338a320af9e305562c112d6a0b3f3e49e0a04294e8ea1fa1b91cb05b9c9cb323c43c380555854ffa7f6e683037aed8968e41a3640494ddff34cc9f38a1511a3d1a6cbae863c3b1f43789dffd6fe45f5480b71bfa25c9f76cfe02932fcdea38a0d167886583d9ba3c87edbea42c2c25e0e0492d8be527e4c475f5ae6445bc66eb7fc42f03d8ff5b468560050bc62da4abe5eda5227686c07d65ce818d756407b72fb898f2f0f90e73f1bcc04ba494b9b085fb4b24f082ea656b545194e4e8c0162a07e2d5f5edd978e84d579c98f038f1f809f148d101fb808beb361318c6fd89b61861afe44354daab991907bf41199799fff9024ef5c053b9b3140641e13d1b94c731e8e5811c792c52adcf0c8e761abb1c2fffd78267c1e31742eb99c644d3d2c514664029834cc8442632939530b2990632c8ccb2b8f8c334106a8d36d8e560237f506481b05e9aa49197fc7681028fb8f813c5368a94de4ea0fef29c68fc1552d360b169a6fe108b0cebb19275648fe2cf398bf7eac10b5035804235e6ef72e3afef9687308c838b89a2c40e099830ded4b968df01b4a7fc72f774323549147861720e9b1ef40b7f4aaa9c939c94fdd96d4d2a208009193f840b953032f5dd46e93b9f10d6bc48c66253a65152d92c93c14338c5787a2c699e5805fe020e0cfb9a3f8800c723492adb9cf455af7461d489d5d4ec57562595ed1066e4ad90db773ff97485c56bb95eae0ebecc831a2cd7e976f189470aa2c821c3e8f4001dda46bd6a47c4689f2220e71e4f230ff0f8e48b86906bcf4e0737a14dbec02b8b0113921cb20fec2203a535ca522e9997ec80fa50ecb53f41c2b4c03941723ef172f3e7793ea3c7ccd9c2a536f6b9d492eb084280e4967b76ef521126f1042f9ff6e8f8e6f1383904cc0b7c8adddb89bddc5de71f7ba006afaf8c2e3e9f1dc7749115a215aa0c79016f47e76387a8c032245f171b2d8274dc699d28ca4cf3a420d689f5e472cbd1a79eb275630e8d414194cc17bd1e73962a5f6996dc32851b4341923bfd7ba2ae8559715aeeecad94e7967b6a25ff6dcbcdb09be4ecd2114c68614bda6ac96fe5a82d644fbe8acbf50cae16744268482d122028503598fd18c6ea7ccf6eff6006485cd816080bf41efcee097a33672e5caffc874496f37436c91f59ddefa1d1d7e4bfe2852069c5d1b8040ee6c6c0c8056eda7162e0c1b77a001e57a54e1533128fa85199cc6ff6a906fc802400d15efcf872df2676e769547f805e50006bdbeb0d98512a2585abc67b56971229bfd3218e4cff9bee3e0df859083b8c5929b695dc4638371855ffe90b3c18685c772335fa062bcf916fdef6541a8d56b90c20184282be13df15a3ecedb1c62560b8945723bb95e7c1c3baa73a51a64b60364778a9cfd72a84dcb45aec05c68806eae7aac47b2e4029492d29e192d62736124ed451b2e80d867af56a9f74cc4da55927dde5fcda818edcf3d350aaaad603a60ba21f2a875a48a717ec88bd77871f7c41503f9471430d9f899f3fa25082fee6879330562372e082723b673f1be3e3a3225f306b1f8f8482a71389c77946489c0ce6330baa080c6bd6dcce48721ac7d06f19e6047fd78143602f7782458bcca449547f14ae01b7bfc393535950f5047dd049c1ddc5c337094d2ab6be6d9fcc381170ba78ccc19847fdc662db8f35d1e8abeef6a64d90d5c333d9431bf8039304d10a329b3268623a720fe8eaa28a2c8f0ba6e95cf9832dfd884e473bacbcef192b37ad012475728d4bdee82c32298e77687829a60a1235785de445fc2819175e2ff0066b7386b18a830d4faa13d203ed023e873b665b8ea1ace3cb90228aa7bf92591158aa974dd2ce83355333fcfe4da09f6df628340b47f0da85c04c70a6c3d6b2b5bc8893417b2e28c9890ec8473405dbe198eae208485d7e78d91ccf56647c30c32f03a6bee7868ffd20fe8e222221688810049a28d3b8d5e43aa45acbd337f66a8fdb41da3e24bb5544087fd4516abc1742c8fb1ab817222db5f808779b78e739c45277e1bbc0a3e5d7dfcc71fc96b294659b994410c03bf1a4e0a981c96182c8c4d80dbe862c8548944c9f6a770524792007d2c6a88463790b0752cf53420a0ca470b61d8bfc00847a21332ca8cf76fa124ada93933c2d54814d348056a9af2cca2754714357c9d195a31feddee3d9abb344ecc4dad2a65d7aa738d3e3acda45cc187f56d21b1e6c57264ac95c6e605277ecdf5e40cdec56a8140af8299e44bca8fde84063b343489935b21d99dd17b78962a9a45ac3e3fd46cffebe2c162bf1aefead779494cfa3b8fc35e414ecd1d1d4f67ee43431ca84545896de472c5b24e8b7c40155dbf7f6921555f454c923fb2fce14e2712acfcccea6cf6891f24bc0eb281bcbe5bae17211e38fa2935a87cd04463aa177d11b270912eb03efa615712b9bda797cbebcc4e1b4d23e0f158e7b94ddc4a3a572acf320f66360cf8614a2385d55117ba538a5e19be307a98e6206cec407404d441fbc0d330c4e8696b842b8653922152f222ac8cbb9f2864be58542daa02874e8db448f9daece7abc674059ae57a4dffeae30094f458d985cff558c5d0dbb45f2cbf986411872c868f1269c19b7d2ffdbdb843f4b06d387737b4ad6c93d184088c9afd16577d80c301bb582d79c140aad9c965ce8b62eef0b8cad900a43b5cb3f843b422a056361a1abd3acd0d64b7df644c6cfef632e9e0b86089f40773b42794b347d27773196d39e83a2a2904669aaa460465db41c354172491048a39caa70d188223dab6bdb2586043511258ff7c04badfe908517f977eaa835238ab3a1e5737100321aa3cb047a28245436e89b032ffdcffd8a75023c425197ee7cdb4763f11b13de513aa2f4b390271097e994b9fa47aadc96bc77200d2bd06799a0a4d2fe30fd66ca0e7ddcb57042480cab26040f6e849217140d9d7d71104495101746c754307016b0c30ea5a4f1a83447a7aeb87dbdc68b98eed9ad4ace74873a53a2f82f8ba3664045bea119ef457d1bdff5b8bf55d00a0b919311374fdca44bf2abca042b6f753530519bca1e83b65e2ca5d8852e0bd6b3ca73737f579d16910b40982d4b061052b8d59de564546728f1cbc77375d3b362adea7c4f1f83c62c5d9c0d4ddd57255638332e98ee8965b47e90f58cdaf03b9438081e62fbb73ca0a6bd164b4ff35e94d061252360a1b63a3f58cd785826b3d4fcc84023ccf57f62b3cf61e485c3b0a2bc741c09e42cddbf0f2bec85b4765ece041f563035b41adbfecca3c888caf6a5108671a26cb320242af1e9ccba8c21a9f4aadc97b0de7e5d0a8c3153a7c0a654c69db04893580dc00bc8dfae4e2761697c5379511e1d13425888270b466b8db0f44d92d4075c505651079f18af5b7573182d7f5642a88a32130e8531a5c1aae12d6c5a3e142d3ec24cbe4cbe44511403a37ddf937d5765daf4a85db34d598ba2dd3520216b0b19499f644fd2eb557a0b9a038fbd032ff121057d76f2ccfdd9e491169faab107f0b2ae5fd5889fd2bbae0cc5fbdfc5f734b3a7d5b5a6c6329d634a9919fde1815c601bcf2ec6590879550d5eec20a41e88bea3ffb7d46f68942231587aacd90f0e2efe9d0a5414144d681b90da30f27e5f3255167d0a09328d66be590a7d1f69c1ab086a7e451ee7ffba814402ad97002d42a87ea3859d1c58f23bfc66c1efc4fdd3dd98fbb074c32205c9a6dbd630bed5e1f3e50660c39d15df1dea191f5409669618ce4d20954ec5bbc2c0d0a81c12bafa71d10ea881118fdebb10949475ca01b5eb14bf67ff47a21170188b82bb90db29f29e8b9e976789d0a07fc6b2674186bedcee515f76828bd8fcca2326d19037afdadef6f2b0ed49d9849f21ac7d2c6e8d1f824bcb81b2e94d06c5f3f6ef5441f245f75326309382ad3c2f9ee655f0aa1081d02a2c0b3858f83083fe06a2fb376b106cb1590087aa1bcada0367f305282baa43acc36fee341b63b522eed1a27e438852b9bd8acba91084b3064a81b5f06e625d964e2f56047dd9874c2d565002c6933573917d0d2bfc0331acd8b8623228f5c10e857ac93fa927dbd3968169d12cce40745eede48d88b7fd5d5be1ec6ace220690f9514c7ac4c610141d790f6635ca61a83b6c6a900f12b604537d5a94620ea52615824799d3da22751baca2bcaa3fa17ec34ae3f89fec0fab5aa2dfa3ed553ea05bc8ae7672b991d4ada6d9b2c1a96ea5aafaeec39fd5b71617f0fa9b9ba435f03648e626b94d2ff7468353a52ef9115cbed71dbc1d0c3eb9f8a0237caa3de0fd18deae24d997b5818b210222230444ff5fe563d5a4f47df62495961a932585a2e1f01a626a536d935d4af49d9b862ec81a0281abc9c3d6b05548d534be8a6a1fcc933c1283c9e9b9a9e11fab7acc0a9c24db1e06dee52e23ef9db947ac7d0c6c915e01f2796324eadc218162ad124308d96fa96f18facfc959ccf34422e0f4c7ba0c0b4f521376f4a8f3fe5915a0263e3d34d733028d831f7eaba9b652d1b20bfd66325015190da2751f31f82938b48d856821c749595cdfcc064643eb90b41b9d6c067dfa47fa6c96a3ba14fa9591ba2a5db2466e328b745c45214807dde0890a8063264158a8aed8e50344afe501f7404e397c3efeffa3c21ba5877a1a0472b39d3d79e54d50921fcee9c87417b961454edabc0e9cc6573399bbfab05b2614036d6a0343693e622bd613f638a03d7a19c69347956378b8513fc1aa2a7285564602a6a4d2af0d70cf530e451855690b1d33fc18794d33231d6328eae3d9c583992594b438ba2147c7689f56009f4133c25cd41603da9a93e9e55cec95eba50b57c35212536c4002754bd9c6b4310adecd0d77252ce130d6a56c299eafe27a49faf0277721d1304823d9ed904d4c697fb86bdc6361cf38b503577fd50426d525c3a5eccd27dcc0987c362c415d9fd3cd6fac5752f28b203ef7e48b467e637a51b6f88ee193e0f770d207727fba5b4f9322a893b6e2e3dd4a21c55cee233ecbe7f60e0829c5669e95f57dd4d80bc49b594891f222a26b772336402171ae90c3574f7f85bac7709e98c60bdb54a81996ae217ce60d3a86da1583c9e0f72d38c0630cbe73223cd000f716cba5555505c846a1c719b8da09aebbd0751e013bccc1ac47b5330dff49aaa985a91ee480d887c88ed2dab7bb29289638c59761603cedbad646f64ef314f1d56d886a095c360089eb6ff81c4220c019902a2f5669bd1377a18254401ce0aa4edc3d4dc93bfeb743ff7595374c9769de505322a80136d3b390067e2033196bb98d77ae8d4c578d9ef8a2e11447977812c21ac339a85b2070909f3fd76b68c7aec54301093569b8d6069e6351a619a8c15afb4fb94d8f13cd294723aa5d4270b6e1f5413f27111d5408aeff05357ad81476029efc44bc0e644731b9a6f56297ea52cee83d76ed2e56d2b639da124269f7a5dd33f808150ce708ff5b08ae51ac0579d91c7d1cd13fc7400a9325d8324e7a4a5c4eceb115b13aa23607f62f743c24d4f349a3e380c7c12e3cf5f14c22173c4cbf987f210d5bf408492ad386b091836106abdc907946373e1c30105bcdf027aa1207ccc24beb1e4d9fb341be01b8d922bd3d03c6c857072674654f268364ec0fd23e3c78035c2715e7baa1096096451e049eeec904fc4970b41ff3899584cd91a82eb1f035e2cfe03c83e7461fa3c059e45a8d810d3c1706df5a2d4e609a800889f30c01b3cf8e3fa3a36b53eb2e4783b33c18c0ef39675e0379c4b2a58e77cec8dd04f5c9e6ed97b67765f6a2060d44fd4a87c82317335ce4ce6b353c2442d1987da5139f550053613331aca8dca6b0e79b93a7638085b55002624bf7f26046593b3d2a43ccf223a5d062de016137cc52e78d030927519b1f2ffc9831dc4b52cdaf1c3be91b95192317198152094c8413a2bd4687654f0548b43ed71d0667995a802db5d5b02f7204864ea2beb71eaa53c4a168e89adf7ed4e286d2fa5a51682f3520d6f3c0eeffdd05777fb3ba717d84442b2ecdefa9a1e97603648d27c236f6684f800b23444c8f6db8f312c7ed6dfb4934329d430eb79690a34f7beb001b1f226463ff98f4bbf221848286cc69f87d2d4f6eb5a54093b6b5b90f94952d1ee8ebc7d1bc3607b05172c6f8d7f18630a7485236d87357dd1f8eacaab692ee03a2a4bb1cfa9141267b0d72ce82f7a4e1eb98c4908fb93697f1c889ded4a7504ca77324176f6daeff72c6afea9e7d4771db053fa01fef9ff5e41d63df31e7e60cb6cff1bfcc66f16762dfac4ce85c1515692915a85c48e84b2a795b14252099de34ce9b978d1e32905de7cd12339185a54b1a74b2429bc9532b8ee4d2446aae10db333163f35b0886652ca52e94613cf1a280e3b908c79885c9f49d9690ea38de3d04733d0243ccd1b998680eb1666761f82036a5659fb3c7366fe281fade80ef78b9ee0c431ec84c5d48cc46f2d98a41c78e816c313ce4953f257b877f5fa2c3f7cfdf1aa6182567d41387ec5ddcbdc1212aac2502278ca6464d3f415706cd565c9e5886521898504178ca5105c80894732ceff3d0bf2cf351e23d902207208aabec434832b56d75dcb864fa8f1c02171d37205d1f7b254565f3c0aab954795ac24742d9f569d4a0df1e2476ff7473819f2271759cd02b8a139c484bb78f02ea8d0f84fd90695aca143431280142155a859267b5c71c6846d57ee83f9d2a051ed15f62ab1027ee1a46965a8141372b1202597114d1b05b64e8fdbc42a4914d6f61bd4634749ef8d72102759840288728e210f1876cf3b1dc8e1bc28f581befb79351a0d94b1bb5080cbedf3eae33750897d15e458cae073e3cbd5b2870f423601e09b955bdd65345c5d4dc1d80dabdccf77ad0cdbd8a3df074a0178d311cb26b6d47fdb9e574e8e51c59603e00e483a15a9290a730798558db5b0444dd0092788ef86617b279042218990ddaba4d87c7ac5d0a7704cb867ddc93c804e530c93b4e68daabd3d0821cf5b4a45578c9767e627647ee8c2d5ba34fa2bd71f0a7db9d78aba5da0dc474f01dd83cb5d48d3d7e2ae104152bd1843575dbbc2d29eb59ddae1153d00a08bbb6da2b896c4a8640064e14900fc3a4c79d59a2fdb86ad18621b03a11311d04587a1c4a92c3a413b4c8b5ac69656a9f4a8d203d5e828874a70b08a99eeee874d0ac03213040c2be180f1ac5b5cd2b847f1900606e41fc16983b6d77ae8ba2be0cfc278d7a886ddb7ce168b3e024e2dcea09a8122d89f5d0e80cc897b49ebcd5ac053edf7cf233582018384b780acefd7e1e03662dc88c7e8143fd74929921eddd3a7655435ba6555bed9ec754aac4e34a06e7a14375cb78ad55cc61ae00bb68c1d458e466c68a10f710f0956b75616b0605ece83da2f2214dfcbe8ae7ad5ec0c517877ced107f39e2e73bef4b2c7e99f95a447edb954e689ecf66f2b4913879c1caab883814222ea744a36afc0648102260e3859fd040ea2764f15f91231f3af9db4fc533d2b30913ffb072e8e318106880378ae6961134548dc28f3d788007f35ec4f36a519f3fac893f87c9cc4b25d4fe21fe7f833041e2966978c34acc4c7561e74f67d02dfa7365f582c2e22d31341784f255917fee069826fb751fa3ee1f8b6354cc2092613eb6b1e1cc42497d39e11a0d9807524f785a9a53222533a2ee302cf54aee11f966bd9118129beed07010bdcdbaa1ab0a15c51ea70c28ac3ebc957959326dd3c29f951bf96cb32d8d912360f0585900ac2580daddd83b737000a96cd9c0e42f18474423dbbdef3fef52fb3e8ac949b80f674fdb1e11216c76830ed706c1b036a9a6d75752fd0cbbbed274ed6829cd4fb4c11d846201162c03438260821501bc064a0f4b3ccbf63a413b1dacab5ffe1127600dc4aa02424b935074b0f399023e37575984019ff95319e1ea11940a6f2b8b7bab0b949c6262407f61949c16a4ea3d71c75aac42ca3e41cd1bbfa192577a5ad29fe7b1635224b98d730df869c849f34d2ccd2275ed69a4aa5c40f363e45eda892df7fb11b0c95f25ff9c46b3faeb29c275876e645ba0a6e65107e4fef97034605fb3d98c9d1d799060c89f37bda31a010642dc22a3cdf6bdada1ce8bbcede7ca85ac58c11c0d92e6544eefbad59c9e42c947138dc864ba873bb13e09e4ec242c8764c83cdc80a31bc76fb361925cbe987db68220383e3bf8cc439be83c84784ef23170be0ce92363562dc4dd240128251f8cd2c5809f7787d2110181f7694fa71aeed7b3e18a0180cb7d1f03026f3766420a46df839ddca64e5129428c6a315076130bb525502c967a5456a18514687c0b037b2a3321ff6d2320c4d876a4c28ccad81de4d6c86428e89f3dba6500eab9745880a3a2f76ca7aa6daa9cdc11abde75ea33b9cbb4583123f65dad98894b1f17097758d9ca13a195af8428c639c2e376b624f538a170709329172515e85973c01a7852a19531291532ddbd7143f85167e722ba9dcd65bd563db281b92f519e5c2a1185b9f4ecbaf3406eb63d4f4c6b180b4263186cc6382672131f0d4ba6177ff71d6f96b191c2007fe4e8feb59f2a3820b97a6d747e9a24e28fc9634af0ab74f583c0d3c09f6a93f81b4a8e46958eb9a7828c120b7b7682b0c56dc62ab0d29c0d1c98c80450999e87eed87e9c4b86fdb270ce5a0060fee3b952c11d8e5f6b40224bc19e3fd973c3664557209e539c84c797003e7c00f0052c89da95ac0250f79967f3ff1766edbe67a3d10a6188aac53a197118daeb9677dd0e974c054f068efc3a38a202a435011ad9cc2e54800e2d75a69300d6c428a4363a71d38041ec339a0c0cadf8943a1340024d0808d2b0a5005cfd4b8445dbbd354cc7309873149b336e97c568361364859baf5f43cd7ccdd0bd322289284849be0ed93b25b9b7dc3be902c802e1023b83fbffff3a2a5887bed4e40d9d9d8dd7985bcee9611d0ae4c809dede7fee29f43cb038b229e311e2b0e126803c80485e005d3d870f5183e7004a06ee7861e81ea5400a648213c0ea54eb4193c0a0a7ae10345f31cbab3543cc790001bc12177dd336add9103486b1a12f11b16488309c44e2eeeebec45475a8bbbb7b0adc1165fc901094431f294ab27e66b00b22924c2b58cfdebaeeee7e345475289b6194bc62b0c40053567ce012247e5ea4f6b76bfe151058501c99203e56702a616a5627ab9db62e3807f42c18a377aa56b9bb679d611dfaf6806dc78a60dbaace73774fb6a8719dc5c366cf9c72ebcb4aeb629d4c80be9d088b9a74a3e905a0e402102542a6931a21ad169a3c34f5e89bb6691d800fcf8850a22f864112693b694454aba020030c02969529473052480c9626b120d6b3bbbbfb86b7ddd06b3700db0dc176833027000a06c99a34b42c991e15923021605c5083bbc5fd0932f6c20f8bcb43b8e148a4932d9ad71089b1731bb7b7c67177777717d6b3bbbbbb6f3039dbd6dddd1dc56ef3fa63cc3fcafcc3dcf869def6ffbbbbbb6ff0aeffffffa05fc1d48093e6fc8e28732c7730d174ab81098608c0ffff4f08f703f02dfd903f667f550c7bdf97652dbae891aaa4e8665e3a1543270631ffccd25cd44a1e2d4df883aa686a6c35bf97d51054ab4409d9534406bdf8682c92599d1e78498f80473a99b408093833b357ac339bd6376dd35ad51baf22009cb80ad7b78e41fa90fda429cfb6d794b572c2be3bb7717b7f071849ae15967e69451a7c447256a2429b5ce9f953fa62f4e803a6efce4da74d672c6993a324948ade7825a9fd8b71cceaff7f074086d8ce6ddcdebcffa9d423efd4a68129ac0ca108c97418d61c8d4e889ca96e01d37cb560741137be28d9b2d4376dd3dae31f02b0644ab2250643ab288d052f888948609ca1f0aafa30f369f21a2ad64a5c70e0091815876508872fa2112522f6ce77f61b6d1ae76a2c3e901157392c63236758c4115292be699bd68e041c5151f4541dca66a809ac9169d357faa66d5a3b929aec69e6bdcb2c4820a694f9b9333d7cb2a2c82a66afe6042b6085876b66577bff36ffffdf30b10e6d668e1be7edc3d0fcbeff29d6a768e2d18438c39d4cc7f55d7bff36ffff2f39b10eed587ab25adfb44deb90ff4fa3dc77eaadc6c07a7677f77625cc75cfc109cc50ba964368214c6cf8134d124953c2cadd5da706eb500e9d1d56bbbbbb6f750d21b950d13c77ccf77d7de9d3458f4fe2ce6ddcde3fffffff424321a25051c828a4f45c6edbb66ddbbdc319995b4947007d43254c81b5501213e3039ad3773db10e0debe83a7b3bbc7aaabb7b075504b3174c19b01666364dfaa66d5aabab8d564fd876beeffb43c35c14f973bafff9ffdf84e9fe1a82b6583691264f7ae3d564b71a09719b256b6b561f2e1ed533f084392f487cdf9706075d34f996045dd42899e13dfc5350228c8c6b85b2175e1bcf44e24362148044d87e0c2b666a988cf07204637624666cb154d54c566115d0d513bcc1bb5588e2d7459337409c5be59b55447832fe953ff7d39214744628f5708a604c318d9c76b5f7ffff7fa451d5a16ced48432b009e060eeeef1dce39eeee4841ac438543e20652d14308081a69b1adbb3b8a2ea2bbbba325b10e455bb2684efa86e63cfbff577a621ddaa114c66aecb1731bb7b74a9241dcdddd31fb71f312b175e7366eef2f669168f82ae2eaa4c147ce9a4c8dcf05fe9a5159c166852d302caa70f3cecdc8d0927073dbb66ddbb66ddb5665a9e2a422a582a5d2a5328675be63dddd3d86eb3759835eb1654f7c222baeddfd667377f71243588726d9a576ba496dac5c17d63d4789310b8c6e06b8a61143cb3a9beeeeeeaa8b012ee2255b29afc9c173b636a4c7d2ce6ddcde2130385013c809f4040afbf4476f958a2b8d49e9d5de5f63188475e870881d26f56de4254adfb44d6bbdf1fa536bc99ddbb8bd7b1d58d130e9e0bc28655e281211b27799b74b71bbb9731bb7778df7a166d3ffa2144f5587b2ee03b6731bb7f7ffac90b1209887000d9209ca96488c4ce91cc99e205e90d87714c1a2c945774f77aa0b4e490c53dcdeb98ddbbb2541857c48af8b55c4cb8bdb1a40380831a5c365f204b3b5f12b5260a762eaea017559395b64ad3dde891325b8963ac7142a965f3e1d52fe570502563582092ba5056be7366e6fde8801269c230994c0e84189b20f4242ae9c2c0c038ac7f62d25d6a15b4c76aba9b79cb73da2e234719c384f9cb026ebd9ddddbded6074dd45925a8c2dc82b9813c4607262ce663e70e1ab9311365ec35c7fac677777676a3b98b4bbbb4fd58e4fa95d4af5b69e7b26a4a950430c4a39d1650574ffcb7d7777f7ffffff9e047088262fda4c89effb92a4685227e8fe375d8d2af7f54ddbb466657c8c6898bb678008621d2adc0031bca9383fb8aff91e45479b8c9c0fbf60aa01485383afb86b10f930024d7e9408d72767ee84effbb6fcffd7982e9a1461baff4c3739b5d50fb13e2900c521051a3a7a541134c404a4414c7cdf37054d832e8a7479d3a087307f6ce02180ac11a6039009b99e3d58f34a6d569e745e462f2e64e6bad4376dd3ba4a8196a8a227d5cbf3c0cfcc7cdf97277dba2812c6cbf36be7366e6fdf8e14ef97d65c7671a0b2c26d4e1ad2a2000a0d4c51cc4c0b67464d78eaa4b9d6dcc9545cf73585e6e30cc41717d20dd0ce6ddcde05ec34703b24f5c86d26221215898c444a2266fb39e7dce6d6ddddfdffff7fefbe8cb99130674c9b6e573c904b8f981f8b2c291a2b9a2dbd5794086492c029549902dff71571776f952e7a6c61cc7577feffffce6ddcde1e5613cd8c3466df072d5c44cd88ad78e049b14cda99d9b3697dd336addddd7b9eaa0e655777e7da4bf29424831e4047271b8e51b82e258151da02104d98852e7a1c3b13ba2d4fca7fcefcafc2fdbdc3eceb6b912529c0d79425200b151b11a66454889ddbb8bd0be0a5648ca4e0e1aa0398d7d61146a9b9845209aa3a94f59f916a08c3a6ec664608e5f1e5317656fb97136356faa66d5aef4b9f250821fdaa8d940d964d571b5596af8457c32be255f1ca68034b871c8e2ecdaebd7f9b73732737839a43faa60ed7a921ab05d40a6a09b5865ac49c734e1a4a4a262d939c92a492b05cbbde2b54eddbcfbef6b00e05068543cfe5b66ddbb6dd3b9cb75288d9e0a55534f195c2859886321d169f14392385cf8cabbbbb94ebffff4ba5aa43d9ffff8f9a61a9f1a8f0bcf0d4a8380ab29e5da74b674c07ad6d55dcdd89caba766b1411b733e8ecdcc6edfdff3ddbdb8c6ff24dbec937f926e7dcffeb9bb669edffff8fd71e20d75e85bdd09aeb8622d68b75680f186c3bb0843995f702e3eb4902433660c154c613238b61a985082305c2d2a01615dafcff4f74c23a548a8388956b2d4f29dd31ee287798b790ffa34cf306ef70ecb09edddd9db7c43ad4496a8387d5eea6c8ca12840298934543bbdafbffff071573903148a98398b76de5eeeefeffffcf02da72f6c333684830204d444d162e6fd26564d7b267dbce39e70f25d6a1cca6f3b9f111f6bb8c11257dd336ad599430f7414e60a820a821a824d412ca094aea77bbddedea2e5ea4514577577bee9e1e812829748f516ae75b3b5b417a0010b212c51f15cb09221e06db1adac242932c869e1a6bb20125a30b1727558b07fe4249a24af6c53a5b7e840131a30ad99ddbb8bdd51d9f3b033b9f7ae236eb823e50ec8583fc8873e58453458f49af93ed016a90509bee9e41fd79481608139062cfe7b54c85c3fdff5f233ab9fffaa66d5a9ba12f88aa0e55dddd05f0154f9eb8bd731bb77786d8faff9fb6d367e6786a9bd6376dd33ad81eb9882488ab98b2f6f2dfa51adbfc33dbb98ddb5be97eaba2495539ab75a8e0e444a5c3d2b2e889cb28009ea1ba74b68abc99d7737d001f934911db3d0994fb3bb7717b6b0089284e9c59ad003e01f196d9f1e5b547a9cffdb6be4f0e8ad4fb553d7618b3691ca41f0b684840421ead3118eaffffffffffff46a5c26cfaff6befffff1f8ebba8542c5faac8041800431a38040d8481284e049761031480091d4c50485e4c0c141a321c044443610000040380603018100000c180701810060693f3311a1b60225d48bb007f460bbc8c335c6466b4154565b464471169eb99a12bbd2cb476ff31f63d89cd9d90c7319c1a91d85a3a11d00273a1ca6ef73834a51f1efa1da1e2a2a0cb5bf19a0c946208c4df0f9221f7e786b92fc0e805b5d35295e8a11a7e55dbcb13aeb361c9f6af8106f7a1144990ffac9357fc5487352972b5d53590fb34b9c9741fa1ad9e83686747cc768ee45e386a7b2617adf0e2cdb27c5e7886a8bc6e75b20d57395644280e120d470460c33594433983f7648b9575cfb147bd3b5a4256bab73dd4ec2378da9d6a73931ab2143124770163b69888c11543795ba2a7fdce8513927fe36ca73beef4d32d4cbf941fcbc10e4b078a29b5deaf1baac2ed5fd83470ae53ebc8ad968968209f29f6410d2548dddf37346964bda5487db96fcf5bad3410210e23fc1aaf541f339463ffc2e785c1a6e8c4989e5afe0abda5c2590e8d40a043be1ae35b44445b9a8410071dbb5cb7adcbeab9e84659a07ebf69c68a9699916f9c0a6a5b2073dfd8c3ccf3821b03ab57a2356a30e84b1d98063b172034662565f6056790c48027fb7c9cb1095efc1322352da156436fc07d571e11197ce3ee2ac2e8fa40c3503957d4b7b4aa691a8f45184b3ece6e0447661b21b05a7b5d55330b9eddf5bbd87684078ec8fe280d72f6306661e77f1bef30a6a7232f704c8ca62569cfedd45c25faf6ed512a8240df29f28c9d581c20dad6fd3e54f1c5cabf1df810e0dc414fb709e3327ce28edcce4b3a97d0a9048c838e15028c67dc4e6f3b44fabf6844895c98c4f19b683a1968d6855b302461c6606a3c57d3105321fe022e643868cdbeac51d001df690e6473839c6d65adba51676bfd08641cac2ea6a02cdaba485ba0136b9c65f8b260f4834e3c2c9e980fc09305f7f950f0782c5206dceff97c61ec4d8db865e7c938d2f4e7d8dcaa3104ef37c9adb341e474c0072c1a780728b1d0a51e3fc1bcac09019b70f35e2b52c408b561a81060a45cac722e4d31448ed64385180702da6e457ebb6d98b00d09c15ba19e4eafcbe1bfb251b8372b4ba8f1b19858d189bc808260495151f86df2bc49b1c69fc5327e528518ae71c1c00ee0a24ac7ec84e2fe1810627091c1848e7e8edd1fbd7c93b76dda3bd54175f2a3ab3f7eda2d58285a3b4e5c4f0d19d4949bd1ec2230f8081c864b251924a820f1a007ad83748fee0b7ec70a5a0fec408083ee0e2f201f99d405ae16cd192273aee038427891b72d34ed28a892029b541ab456f716d8e4d4df95bd39e056e2e172e19c47a83b71ad8d9468ef882e2cc3e784d912e22c123d3404c7d31e8427f16bb6773c09d511544a9e6e90de15395ecafd027a7c12f9324971a5c8f99deb260004942950c8f441292e6d57124fe9d311b00650a816085b5272ce85497889899fe35bd0269a8f81b5f5a58b4638ac0a0bc3c5e987bc0e8be7ee0298a2c1ce0b7a3af960a8f831cf4192fae7470a53517a636787b4c45d81e5c04e29ca9ac031b2f1a63b7c7a3d22feb114679ef441d46bcbf906efb8fc4b33df68958868fef1c828dd64da2bdceabac5e4c0a7fe3c1897d2b72b074dd1ac2e8802a4d321a474276327c4cc02a0a1c709eb1a2d768b15fa3924ec5511b2b2efd06204c7e74b5e335389ef1146028e7d4799b16ef1c7e0cf1acb0519885dc7fc3d2a9c34235a18d5c22e1cd0f5f124810d7b1a5b7968e19bc14c422d6828eb2280a3d20de2cd6b9a5954a98dd268c7f624b20bb4a0f2d7f4378026c4c5f09d8262ecf184282a89836ddaca1605e9c5c7e9b2a2464de2f01ae6467ed088b5a77630a5bc36aa30b9495aa9a45af13e4d70c242278995ba59728a846eb3517cf8709eb0c5f082e007181ce3023290298b8c31dc75760796d3c3c6352e34ad4d0d4a9bd06add15aeb1cc1d050d3c28fced3808f1746a8ddf57ef64bd2a7cf47dc1034c5af05fc8589e3ea3a53064527de354170623cc8a25e50b2875c7ee08ddec50655393d6046ebb2e9cfa5551cc0421fda8fc11e1378ebeae28e39f53b86bf3439c4c69f1bf6b1bd77590f2fe915c900aceafc4e177c2c51d103ece852aa05f8023c211b242f7f575311291384648a79e2ff80bc630c9b3da6cc0b716f04145bea9406422a8b8058f91fed0e680e308250f4c13d79047675f031a530724c999516e6e887904341353af413a4f7aae7f4c6c8ec8c59ac5ef227368f663dfa4f938bf3fa58d3a59dfd626958f160fc6cf098a80712536e3db70254e63cd46f100c1cb44cf64e81f2935913aa87f4340e234535b1d0cda23ec008e68bf1d5981c96133f3885dbef64a69083f6611a686ed20da7ce9f9a100f1ec925021a8ac569876486113ea0064c60443c24a77d08fcd2097425410ac99f0e5881b6da292b8767e5396dcefa2cb1ad6502ea3af407c76d8521618b0039ca842b2836a0b1ad6033a81d3390757a1da34cdea03f9ae71052a4f301db0af967e289d79099b410af4448096b5aad58af48e736b67c321847760669ecaa4839a28217b2e00875ccedec490207f1b63ed8ed99ae0aaad9e4ac727a4f1d7da471cb6a5b194587ca25803b6358fe2d5520ce961aeecb4855f3becebe04ba121047da6d8e728993fa566fb870bcbcf0c149270c1ad6431bf569d31414a45c6d3baaa4f4da248329b4cb53dd885ed51dfe674a8fa316e3073ebbd22a3b8f4b0003cc3e3d2dd9bce1d17df3c17c812452d9ea412149d7f01db8395c5eb952b0624af1cc145f206b761ffcd312adb4dc3f767202fb0edb414b4f2fa04bcb72136ccdfbcbb91ab7ac39442717049309b3d6d6a2c0c1e9842f22892b1af2884c4848cb46111965c61110ae246e0762c06730b0ef04f9edeb30a9f64e082f76a4b14fbe3fbc87327a2eccc49444fd23964659a314e500ee08a23924d53087bd390424230093652251d7702503c1e6cc61554a168c39c3833d5ff7e9527ae6ef73a07108eaef325c35cb680927783e396cbacac6940192b93a0e3ec2fc4d63cf8163f49346a2d092f64ef9ce4a75a2c06f1c0aa933cfb46da64036acd92029d10e05a19a0f406eae8c4d176b613ffff071df56646223357257b90ac16ff051ea700fc66b5ced6619bd73c1b1fca9f4c700fc04788f3f5b805b3bf8ff6e0dad63c61044523374f0b44f247fa411095892dfe8b6d1af6325e7c4173a8e8ac86ed947783f8fb54df503a6bae6d3a5deb74fb408747aaa52e01b07b739f147c264993b97e44f6c59e1dc466c9a7cdd4a9b560dcb84698e19fc1a3420f078c4b1204e3463e7906edc2a41c5aeed839ccafb4fb98434684482f8374e6a76f9e92adb7b65ec52e02b382edf96dc0c46ec97258c5a3417210a37f9c48dabd2dc1b313f00c65f8c8f6bbaa1dc17f79ef28714e726a1a3c855c8c3d2fa87f3b73ce4b39bcc138bcea9177a98a7c8bf9a753fe4d14e52bb7cd872b6aa6f910e91075632e77485249fce0e56393fc19dd2f6a6541953b3e6a34d1e00c413a99a9e224fee0da6c3a014d36722f15f666395b8267f4192eb20e15d6431a2f245438fa5b548718f4a685c90c2b00bd737ad562c7f2559ed27259559a56be59bba61d5a68a00dc57a0fe93b6d26bba24c796b0dd422e8d528f2287065644e7eecbbbeb40b5ae4049a005943121a7124ae37026a08eafc11881417daae480f538d5bce51aef037c361bfac653c62b6274aa78656261880d6d3c6cc76ab5fc2561d268752b1b162500c7fc1b58ecc824c28ea9943a5aa0f3a324752ea9d11ce8b62a8e3e2b46cb6f7153cbe3356fce1a4860317102d315b0ee69f5798c694ff4a3c08266eb44244fe6b9f956b57bb47364eba976415112254b084ad24f7c15709357c35bb052d3d28ff231b79dee77f41c5cd02fdbbe6f5635b2c92497a57483268ab7c6fd9ff9e46da8a3e2f01569d9d6377ce2437b01a0ad61928432245fb5471407fbe9c72b9ba6744b4a2f205278335f39d3b06897d710d5fc5570fde0c50e3d81ba530648492054eaa9106665576469210b956187655546ef9c96088930c074a619f109fbee26663e39916d04a08c44684f68f23e8d2adeeb810a7a4406c668d5cc02207ba6cf853d792132f025e7e0b962c592b90bad91e2c03ec0a703373f534c6060c7702dc569fb5486f8c93d499aeae5d5b139899319b28b689f4e002ad7a197c70552d6162e09829aec9c23d63e54d1c46162ca542d5acd671c6c43a8d36f27ca6625b65d24774bb598722ee9e9730ebbe446ea9419422c4eae17e4412397f184c922fc1591bcaf0731ac29177b44dd1b8d805dd5061363d35a24693c71af798da75887e23dfbd7e5f66116089b92f2c21665eb26c6a072a3c3923c6fd873692cca612013bbdd9f568d168c441d645e21391f765c4145303b14764801b71b56a993183423b4f2c3ad308521fb9a5e510431e8df5e0990bf25171dc95cf08dcc8ece1c5e268aedf92c76562e847bf994ec6e3952d052d82445d5036cdd2a9c9e8a4ef5c55d79ed759a1aa4d5d8fe6297c8d91d6d85d899c0c8cacdaf19f2ae1ad8b2c40d4cb89903f249e792d25ac54126dedc8b08237eaae067f381442eba1af18b27f125dd8b44682ca8f604cda13d830fffbc203dda5dae0158b8afb94e15cefbef32c1db52a4e07657914995491ac3bff1151ebfc81e162f1f6765f047e31ab866bc060882ed7a07f263e6aba08c86ab09036775e5df9882dbe3b771eb93756b6fc8e0c70a85fee556ea63dfcd7df260834780ae3747f6c358ed097ca2b50f320fa686a46419c296a2e0c68d9d800858e2a822c283b7c55ee7d78ace683666ae6651f5269a27b11c494a040e7db027c7e12179c86355dea436e25ae475c4e3f4d5789e7006ce084668511f1fb74af68e1aab6afb6a8f00d70eccad0ac494b53775bdba1cd2e2a323234f37f82278c21b0893c993ce1248b6ec99979431558155986e0ae828f26f4784a6868d4fd32d1a10ca30f779e2c2d73f9a82de54752696f99b3363788f3bbc9d9e679f293cb03a0369011d1ad101a75a9810f76465225b81ce584712873f81a74faa91415919e4b5299fd51a87c9014e5ec7ecea8dc164522bedccb6d5513e1d518f6ec2017183d8834b22e308b10d29d67fe41f4a0619a759c654d4bf23642fb2de11b33e6d782dac356a49b0c6b057eca70a12884fa851913dbc29b5905c5d27e34c41b42014a3fe9c201240e8e249fb56f80cdd23ceb63b5a1aa69cca15b3a44620731b926a717d1355c84724378832b93c687a9614275a2ed0290de6901317a0164f9d60b934c2b80ad871f315cefd954066b73f0fec33b4ded139788f4a3c7f07cde01aa7a44542c7ded8b12d98bb5714719a186d1431ba07a2ed4da1777f784f193c57e087e12c480739f8f4274b5d6c29a6cf9f5063ea69550b741c3bf71082ca7b7b43a77a82e4b552e3808680835ed8c5e909b4abd9a18d9cdb79bc74c566f49ff6f4d206679ee1d43b8547f5cdc3fa266c4c341bca265857b1929a1ad99b75688926cc8658f5ae6bd0d103605244ba67aff3c8189840281ed3622d14c6bcc418d44942f25ba8b2e744779b28625148e1d1e7ee6c3040277f65194ed41b9a5de05bb0de663a3332863ca96ebc2fa6eaeb776114a2eeee86cc50a242fc0840c87564d92b10a96036fd48497ca0ed2b29b0a19eea2bff6c324c03f5f7dd7405f935c654d5d8c094e5ac757ab9ab850ce2e33ab5cb8ba9bfd59427f3a00ce67e7894ccccaa6621480b763ad29cae2a2423026e548e93077d51767ec716a935b580e5dc1485c5567024346c9fe7942a7b9339925b5b6dec6cd784c41a82cf921cb58c7a8cfa1e33108f20fb5eee47db41e90c14cbdbc0f6f9f01617b8b65f31669a92d047d1a68861096c2c3de95cce055971f7f33c4208c953ff9cc56fce5ac32628f8bc06c660ac3bc129e7e138865c0f17a3165697d8cc0594a3606f65022037fbcd3fef494e63dcdfd4049673d5f056ba02a323439efa343103e70ef7a1e1d6d80ea2544e6b06201efeb631cdaf9616b25be1d868d86293725fd29b9cc8cc7fc1a56d29af3b52ee129a7cd2ec3ccab9fa1c2582a3a4f77ad9c47e782729856fda4ea24ecc51440377222218875201c85acfbca75bd259af9ccebacf3ed51014758d29f8a306a098304ac528a43a90544ff396bfc8f4d3c3b8d52487887631900c269dd86496974f33c84d2cbbe23ee358b906232035933108303ed9ee5b8a48a5b76d0450f4631d6fcda3ee994cb5f757cb809381018954ad118b4bd8d44f647c9d29d453981f7bcb6d6d06d08adc163e82ebe9a75c239d5cb29463bbfa3a3b1491049e03bb0f97c6066e025678af232bdd3f46c7814e6b22be1e62380351d63f395f5dac4b789513c075e0bb6bda20a855505c323807e03b849ec5ab48e9690244d3cf7bf79915eb3dfd65c97fb1d623fb9bfc3e59a14d30c435cce00fcdce8517f6896f3fc66d68aedad7b3c0e81173eb8c5f4505d51c6dda72700dd4962e1c71502396f8384159ac4838d857f77ddd5254ae5c40034272bea5c11cf2261b50c99c5467a71f024d86591d47fe08b0a9a2ebdf413c4610b6bb652c8eff5331c004943dd2212656bb2127ef1306f28b1bfd92ca17f69cb1f39b124632d0cc708556674bd2127af2633f8e377c2e9364d4de0a2e9cbbc21d52c2101b22513bbcda5f04c3cdd17497be586c65c27108b0caa7400b370dfa13b87ca9733491967000914c7b21e2767dd2e57691065e4717ad9bcb80e1dc13e78fd03cc2b82e17fa50f9816b32b1c03afa737633d95348a27671de4686369303d12a44998f168986d4a51935c7342e2f06d4741dce067f4a6942fc6511bc4c927453214344beb4f24e4282fb231b40a45600a32f67ec9478c3223d9b45041f998302838d91f87c8463029a140be38ecd024548b41ccc4eef0914a7349a11943518fc71d85ee4293f8497114aaeda982922eca5a4fc904f40c74f5f68951a06537373774cb907e0618f6fa21ad7aca2b7a5b5ca77fc37da56e68a9b9a5e04ea66739c4361031705c9f79f5048c836b803412c50a5cff696ef324b41dcd9cfa1e1079a09edadbe1f2b5fa3b22d6f74943473c250686c1a6f4ca970b9401614494443b4112fa6a88256d42e53ad1addd3bfb70b808fc062eeaaac22fd3f07d68dafd329e6c9ab876226a10ffa78f1e8a89ad546b84162ea172faff5e0607d4addfd943cb38a00b695761a8c9534916f10430d158555eccccc05fcb02289f32f36040e7dd13699d95520bdb9d356661b3db0c363deab0bac017441f3ab010215bda966b3cd0db158b75df585de6fa6b0d1d62953262b60923d66744ab6dda12210434fde85c4a16df99e5d22064d1b16140874e67474cd22256a17ea4743b7007965b86893d2060213f5dd231f77eaf7f97143bd335baa05b14d04a354f17d334411c823a4a461ab9dd979d6630b8ef4ce32eacb88e585c51dbd2d3e623022b0755103c0a27042ce24a18b64c847664bc15fab1467262d7f82da92a63fd60f52e3e978dd58ce4072a5dd2da636edeb67aa6648728e0e40fb6306783cde4377b37d354ed4cd692315ea159ffe7c9d1ebf803c64469e6d2da100463e094571eda2e33813572f7fe8404891e6c0dace225e4d7fce36549a71237fc1b0361a992be2603006eb721c7b2a74fb32c5138ca83c9a29f6005b8477dd3c5e35139a3afd2384d01b1201c2d0cf6bd07ee4849c84c6c4050f947798758f115ea5ccf62b10274cdb5f01e55e2fd004e79f36aac8f102a612c744529b9171b0b4c330c3b1d07c3198112d178086375961be363d82ae3d41ac9c5b6c3574bab1b7154fe18c39cd0d3a4c31c468eae45f24a13652f8bc66192d9cc078dab9e017acd8e6743344c936a2bf172da47ff99c63ec4779455d6a7f551be6d84d4d7287df3f365ce2d7171e354e1f4facce89b272f693951394003be555eb83a8badfdf7684ee0b7f647bba157a89116b42292c391959460d32c858de06a94de3dfe180d6d7716dc7db3456fa889682333c758cb364c4888dca54e4705ad8128c43254bb7457af7c4117a6b69de626a83b0d735435485f018cbf8ec547ca9792aa86e6f6c9261587a419dccf908a1f3de6a664b338308c580cc1cce58a3fcdb068dc4bcd822a8fb294240f30a3e17b176b3aaa5309094545194a30bdbacabcd7f34e1ebb27fd54a58e8c561c9dd0f54d25823c81516321eb4b2c4dc2a3e72fdab4ed49f6d170a7eb805be699fc40f8dd638ee254bfa358ae105ffb0f5a344a67fedcbe4b3d7e8273547c99f4ca255b0f75bbc6749137e97e250e94938fe812d21541d7923bc99e9931111269b43a61b531a0157beeb6b5a610e7427d4d2010e35a0f0886f12d8897042f68bde487d3f82f006086e569b033ce7c7c0869b07f44cf34da36686e393c16f02ca58ebb814dc5369702584af2e47641fcd20ac2cfa81c1da3c44df0e2462f68d9b3d88cfadad330e75dc2a5e67a3b200d4bf9cb6d40b125368106a9b273c12302c9a2eea39abb8da85603eb9614d933b814882341b21263ce2c14712256a9c88a2136d48d42a886c6f95ad4ce2b769e8e296f0ba9a8dc69e5cf9b158bb04eae415ba4379f53d960886eaf4fbca618c327fd740e02d9078c20f1667f88912aecf5dc26718fa4276802f128b8c0a812bb22368be9463d1702b689fe46fa33582104c32ce792a1d7c7027c72e89adc68f6e79613588c5b21de3ec3890652e76bd1195339d17fd2c7f55931ca6d6f4cf36a6da12732766413f343b825b7eaebbe7e944e166752c5642cd731e5c765622954df9086139440efbc14a1c1a4ca5b6a8074949eaeb9921c14d8a3e66a424fbd8ae7d5641567970097e941bc6fb52c854fd3043ab3f137bce27694d34e3725c8f2f3d28656b62e68aae35f838e4262f48bdaccc5602a9f408742722e8962d1a60c432cccbeaaf9b28d422e93f159331ce47b4d3a48ccce3f50e7003ef9404a999e52c0b8837c0246d01744b85b47eb4bacf532a2eb68f6e333d4146d3e2135519c354e44a115b941eaa57322f5495e626b3494e53bd7bca43de753f4959fa7caa20716536c44eb4c1dbdb76517df03d457f347a5bd0b2d3dd1f1338a254da1477dda7dab4a67689ad181e4fdb51d843ca2a42880d4aa3eeaf48f90ce6d8e8182915f035a26908bb561508aece85f182d1abd584bb13c858af8c1c32fa14dd0d4fee7a5a8703ddfd7a672b95651aa70134d623338fccdbd3f51a5eb6f764991128191c90746524f7eeb56f1d695453026e20e2c60b2c8bf7f0b11bd8b42309d131267ecc7a975f55d9ec430dc721510a38cbb2a00b94a3af705c097f26e7c4304c70dbdbb8b9087b6259427ae47b1fb205c4e3e4932e9bdb9a3dbad2617646a82ba8af39a3a184206d1cd88833eb9ef4ee34a68f2edaf6782511e017638c32187faf93492e7b6e01b3063e70c3e1f50de7c8bba0f6a15ce904431b080968f69e10c5e9315738ae030a7e974303b99787d1863fea97c732373ca51b4b1c36fc5503403a5f5e5542a2342e097fe7fd8fced48b2b8402798ee2b48001ccbda8bcebaad5585669aed4b498e6a6490da28bddaaded2b588294c30e5d27874d6959c1f6813f2abbed091ac1812a9c78e40eb5178692155b5c08a149133c4d03ea48fe74592054ba4a070d9fea5354d55a7d86fa9d6e743ec04eecca6b062288e01bdd6810363e1d75ada643f41258c7eb45bfe3cb01c0404c003010683a4a34b68b4bf5d1ee61258feab8b578df351da9497513b17b6fb2e5de52a624536b0716071b0749add3dddd110acfa46e0fe7184e6932f56cead837da4b688c68bb8202c11584134dcb05e5e582e27a7224b53961547a0e67da43bae585601fee0c08a2093c84d06f14bfae2753bea9d4302625c526bc3f06c5b0c0203f41e2392a81b16d8ef48db121e4e0a85a9575a9e1aa480927994828520a6da9d4353869dfe6c067c33a5c2bf5b831320b1ef6effe662f44be83a12ae73d0c4b4adf6521f15b763f7271ec8e6efa42e437281d5c1c3c74b6670251a7bd974975836f300477ec4e3bcd96caf4eddc764776a279b40959cf7c81e8a3a209d13f6d77a2f4dda5339b3ba767eceb65fe9bed66ce9bb1532f4883363822d435b239c71851bf35c71ae5ddc92437b1df320edb28976d1a47fb3714a76d1b87e2b8ad53a17d511acd36e24081bbb34e5b67ae87285f94371de5024acbbc497ba4dcd6d14137333333373703b1ad6743536d6a646c8c7bce293d7f8dc6f88573ce89c9754cdafcb099dc2d846577638c2da758a5c531250d176ce6fcf53c30e9eab0dbece27840c639b1c9c36a972636a5e61a1960b08c0193c4874e050c13e90273e4a5fc40a2d6d1362d5f5e28d717a7a226077fbe34e580365c505e5ebe500c0b15642193831aa8503a9ad23118c0045ab69812250b235e3674cb0693368694524aed88173b78a9491db8ca0d5fe4804d97920c99745111f3f4d745e50b174694846e20a34910cabc645006004a5a4a29a9bc94524a69e5d3240e3d4cf1e249b3416af306894d8d0a10369a5f972b063f7f5d2e25ad0bab088c295e8cd1c310af222440c96a5555ee39a08d9803dad8c088a9a16abfae265e966affba9a68f1a1c750e7afab49175410ae26574c9903da20a189d24bb751491a9ad480f31cd5d1734a3ef415b6c4084f95254934f460c316621081daa870401e569c9452caf052d6b061c50f4c689aa66935316c112386a120235f14b1650745ba68eac264acc061c98a18603307b461238a2c2a1a5168f995e728f124fcbaa230fad0579226a5bcdc5005cc114ab872184201948c39aa81115b8c94896285100650c69532420082176348312508043022a524619d681882a18099a4605b2f4518020c92e081d11141f0e2a9c8c88ad017a22fa880c1cd8e2b4e961842073165e80084295e34b1610865305164a90b4bfe00a7071b18c5e084183192680289c53e78f6aa62e7294c32d87278c2889452da38e1c18992976ec37f5d4d86f0a85f57133278a09152cf8641579827ee4bad62b8a81b0e5c61a8708549728599011357981d362aae30457eb0e150bb2e3620d411ac4025551abfae2d9eb052bb5fd71646bc742501866b8b27dfbfae2d9c7c589d896d73c2ac6aa9fdaba5ceaaa5c6aaa572d5522507eec71cda258d25e2fb53233bfc8c30a8cef30b7dba1e36ba1fd04bf51f7a423bee82c4a6c141edfe429f6730fb328120026f7cc8cd6bf74c47513aa5a3b676944b6fba07846699461980494fc1943cb2d9d90119470f77a763b3654b1878cc8a8cbaae208e3e540551f42155e1809aefa3bc62d41332e2c3d23ee9439485fa683e73cd1bf2615147794246288bfa900f4bf36dc8bb6ca79e0ca2fa19c4900a07b491bd09528f791624fbf9b95079f0fb39b9994e64955829684f8194ae812e53867d7abcd9cf87f4f9616059f2eb06635b1e6e1ed92c7f85c4e71e5ba6cc6f7c666620ee1181df8f088e9a6ff7605e7be6f1c0bcb5cec1ed39d13eb9e190c77c9dba00c48f7d2ff4afd7bce491cd3262182624be740cc3b0e901f13b91fdf94c525f755d4c9edec5e4e8d9f75fbb02b7582e26452e26442ea3a79bccfb26fb5460f537e4c3ab06a5b31afb1d52b1da31efdfa1aa42f6fbbdd09a017e3f272968cfc1b2cb94e1cdc11a8800abbf6d9d65703b8b2b4ae69b966d5176fb349a124c1d0d0518b7ad20b52fee0973051be0becd37b00e0022d420fb447dc57c102b88c5d23f21cdabd0e6db3a28000ca106d9a707eac77c837eaa10b4a124d6f560c063edb38bf202633dbb5b7633f47b81833a93738a9b385d2e31b7c7a5255298b999dbb7ae80d89a48f4028985f9742391158503994fff6e12f0621149c08b456996aa776b1ffee05c4b983cf8eb02828c0b08307e5d5c20d9f975fd8083af8b23fe2aa9880829784862cb1856fb0fee235724755d3f5cf1d297a328d9b67ba260eefb2bc813a45c21b65aad16fde2ea48898267fa1d454e29bd28b39b52ca0d0c4509e2f32e801fc4a29a07896584a81b8912c4e7815a015e18a403634d6f5f7a21c330bb1e353f2dd0df8e75d78e512fca0b9c75379d33d9f702ffc4b04f622d7fd8a86f95a49f4c397313e2174aa6df2ed85980889c3c5830bd99aa1c7d7bd077a723e8dbfb0bf99b66bed18c7a8645efae02f38b3650d99679640cd265c8b43e4897291377674ef656ebb32f2e3857f002f390add6c74f08e640f48500d59f1ed784c91ebfbd5dca17300ecb3cfb82f407619197baa42b495c92b4480a53830fda0e8c6ca81edbb58485942fa80ccbb439bb286a9da54d029151abd5720125fab592840c11c526866118a6b95a4a1ec360b0648474583246107ef032e6b130ec544488c716104674f9f003158a4d8c5e216a9da523f40f0d4fdec41619142d2886a02082a2687a966559e6c36755556d6ac5b0225602927972949c9ee5d10d9670f9d0b30c9bd273401b4252a86855559b5a2546b76aa3fdba948e7c587d32d1aa3ce84147460d6dba57d7eac6e8c690cd5f74b126482675fa9c52dbb32a757ee13649e92c6677a4cbf6a49192ca2eb32cc3329ad18c6659967db2481acd5c514359248bba47b2e40d27e5d14b8c683ed96088b2fe45faa2e2c451c54c5b54887e3ddca5c89dc3addba876b9653f81e5e71756f0b7f2c78a1dbbd90929d81727a0d0ac8b7339d1456c8ebd2f06236fef6eef723bf3e4c99399f9db8edbbbeb13a6ae2351d7afa87c54d7bb1eea0d8d0ea66e4e0c8113ad8f31726143816dd9294cebd9b50328cf1f10ff09540fa4fae842949416474c61a9ebdbeca2464f5da9de6da0bf1b7679b302911bd6fc6ef8f3c10a6205b1b28f2936f1935214d31a22523a424a526252b50e7f345c28b5640f58f7c365ec0e7bd864ac095cc473f7d2a825a6546575d8b9a908cc0766d43afc335e6a288ddc08fc10337237525569443f7ebd3e266a7b8811f19cc14165f6e8430d31277e550619fb22199b81165f31f29ccc2846318ab9f9a35a9dc1a2fa1711e3671775fb38df3c88d579102bfaaa5bed4ef4f88a4fdc8ad1e8082949e9233b7d64311f5ffc34f4b12895a5ce5c5143fa9b97a2a26edf0df71131a18b95166bf32056108b3df6e6754054160aa926ab150a1f35d4a6793ab647f95639c286df4ec7f637d3d997698a57398391e7874393e555c489ef2ffacc0d2af37480f4e992729579b45903893ae75785500f0243eb51ae494f08507dd9fdccd9edc83c1396c11a4b35945f51ccf560db9c1b3e37506072f4b17932cfc993b9e5469b366ddacdcd5e7f91c90785cc9829495390a2d1bcb29286070d5c7e997890f2f30b57ef62a20926a4f4512da3ae6b09321f765112a22e629e752d91e4a3b792d8470d6506358c46dd03763e542140f59b8718ac09d143b009264d289932254ac1d8c3302ccb7444dad15a77c13082dde9e074b4f41c3cdb658d2eb5bfe9399abd7dcc67f743bf9b1ed3d9d9e7c731e8dde998cef3c3e12fa757333ac068780c91e97aa899cf80a972d63067c7d7f3367d8381e8dbd90be3ab8b76277aa7a486d1a8a8a57934ba40b3b46f570cf6f723be4a18e26d343c8e2861d0d5c4ebc368f4b18b22528cae269844291fbd8b28f6eacca9cf30e89ffeb0671ee605f13228fb03c2e086ab8fad84c155f7c41f5627ba104b7c5c4526a336ea19a71a067dec78a8db4836483057220953a2a8462a2941c50c91126350aee2c4cf9ad8dbbb5b81bfd609877cd77c0c22808f2b10f31d0e41fa1f59d326e697b65a343c507bfced7aa8bebf2f768c9bbd88588adb2a94f04102c060c660ce8f8f22a93265ca1481654394d44d1caa33283787411aa2229ca26fd7433e7dba5833ed0ee6ce60671485cc4e0d683e3f164cd7be1c7c036c1de972be740921f4d2e3d06cadeb28cc4b9f709d7ebf0871530e124988264f33cc73304f9803fa609ef0060acc13810f77e9a5d03fe0439c0f7d5e625efbf4d83d07bc8123dda8064bf4ee67e348ab2cf7761329c9cc719275e456a95c655c62b72ccbb2e99d61986318867d2186c5cc0b390c5b220aca5833229e7cb76f29246a749b248a7c1be0db51dd4f53e6498199190521869620a1450ea434c1457806330d4b9e9999190928df2e291257bedd86072d2e295ed4f876dafd34187568015143123dd021072dc39125d911413cbb9623c6f83c3bb6557434e820ca98c508323a443cbbac5cf70c56bea5777777b7cb08a26767d4d014323830b2238e304d31e254e50609e46094650709103db990b840228116bc6c543892064c5413a38db8a8210c09450d4d6c488cc678150d946c5438ae20c478f9eb4a020ca7a6a1295953cea6458dddfb448479427008838b433abbcef6ece0063c7b7966a32a7f7fa46077d877748f0aa20e3be7e0a586e78e32f01852326477587e405a6090999999a5f8528deafcf93173a5621e356fe721e612b2136b3197a616bc2cec8b5f0b3df400db433f46f229f9f610c767ede102bebd1ad57e21f2431efafe6961775a4c0c26d30ea9c4201383d3677373734f2f1229112d2561b0bd88884125a5b8d4c2163b4ac4adb43b2d250989c154911a4622249ec66ca881176098660ba78cd41d2d84477dcce5e723f3b8c4dd4ee3458d4c0cb6cb2f2a31d81ef250546ad7b6272ea5ffe57700b2b71e984708ca39a76ec45951fa4b87f9a4efbce6bcb82644df3c57f52d3a207e2fd0afdc03287ee63f3a4dd3344d437d1a55c50ee2ee1c6c9b6382b9ed4ebbb626344bf909910e445fdb9dfe613781f702bf34417c1eb2d5d2166c6f9f3dfa650cd22f3fba3b7dc363bef4f93fbf190b5711423af6a56f0e33f8c3607bbbb4c1b6399a5cb994524620361ad4c80282b5ecee55eafe646b4ed6267da338d29756a9a1bf6b58d4964d3de594435aa77d2275ad1ac62f4dbb63440d572947d434a21ac6a6a421dd13370e3d1119a20de15239259a6153d20c9b72ca293328358c4d2fc43d7129065d180113850f2d3247599a06d5abd56ad160448c6eae6a38786e6a3d3b3539dd7c53195a54a1e5390bd79627af7ad6b2e4d987468d235962b65268f1edd85661636487387db230f976496f08e207658cc4f8608cab8d2c938f0f668ebfda37b05cf976aeb3ecf0ddbe452a9aa5c148ea091554ba5cd1210057a4d800cb0ddb2bd5d0c8b104adfd5595332d5176d560c9f36b8a17fc17cfee39ccb3cf5314e19977c6a015a50492ac889206450ed811e58264fec4c0947de941166152104106fd33c3d364dac14818362a19907e6448629dfd9056a61e92fc083119f1829f22435e9c6c543834609aa9e1862447434009338413ae21aef8d07f552486dff670b56a5ef1184a9243ed7ab41766ca20f3159cb10f611e21eed92cbeb0af40f4fc92a2685d521409e0c3659191595720ba00665c01c960e661fcec8b99f496b2c3989c988872d0b1c3a44fcf85b91d8fe8f443e1e7e4326cb2185e7289ed62125b892373a48d94986c0ecb322c6e1832d32486a293fac47c17fb309b4afb892dd5458d55c69591e59c2d838d8dcde2e0b7e13caaa2474f79a90b4edfe9b139599b2e387f027d63b18b907229875df2527b7ab7d7d4baa02eb8db1cb5a0bdbb91599873c608343f7adcdde5311bbba02e09a9dd9aaaadd3d505b55d82deac9648e49c3e59a0fe32cbbe70cea640b3bb2511765725bb720c52398bb86ec3d2f9b679646ddd9639d76d996318e5b62c433986722b4f508a4279e8b35a9f2aaf658e510cc3be0582c61912b193ce3f925be89ecdd781740fe7280f7d2adb705f88f35d7316874639c039ea83e146039185f2c8427d431c8bf321c91242b911ca8aab00ea9b1759dcad2059dc67a4488a85726651cc23eadb5500e5aff29a5b79e231aff29917997dbac7c767b502417795aab7cad3202a8fade4b81d67a59c0db11181210abb9434547d644a575d597e41c60d5a2c9641518bd545557da4dfc473290aa21ffae840b1b5a552f0a464e6f639e7ccbc54179a9939f3ad665f08e43117da65e6409e7b4a6f7a0331183f20f9d837040852bde9c1ee57aaf75b4568ccb7db50c30502c43c4388ac28ad2a953b08ae56ab21622aed1ea0d7ab22098178d917cd13e62fac7163e2a6ed18d536c9c9c53cce40a5437612f96e23b6df95524a29a56c669eec5106e59c524a3228215c495b2af6eb721df161e5a6700d31e5ba9e44179118b1a394c2c767716464ec4ef45893626f652f1b1df8e4e81ddbb462f6b54fb115877ca2513c8a483149a9c949aa16a1d2b8cfc7cee3e298711acfc1130a1a9fb129f9ac4f3bdbd0f090fefa0ca7e1d978ebb3ab5f5f9d755943e3eba57c464dcd07843d8d73a783c669bc983d3118535ef6f20c1083ba23049aef64c859ecebd1516008f0ba1b206e06b8598f344dece1b04e9c410d9969780c85f1ecc53cdd27c730189d260772bada31f96d5bcbe9a9e9c52446e94b4b6988a9c849c999767d3c2f744a6bdd2dae8705e9a74104d0a930bf50f3cdb7efc6515e90761d8d01614f3f27fb65af6c0cebc4f8345464af3fb2c4a7fbcd9ae24421c9476f01887b56cb97149044a1f80589c96f4d607c949dbd9827b4c9c6304fcff0f1667d7c80cc0cfd3a4b43e2b09aa2ede50f5555716ca4af16872dfa6fbbdb1b9d73301106dbc7af7e3273d0ef8f1511065bc7b639987dfafc825ef3ad8428342ba1881ac697538faf9e73cbba9f49998b502a3be5ba1f27db763f32eb32b0accd87a8dddcbe183bf6e8c525069b881aee13a651afc72742b19113917c0b7d5715e8abf985a0fc92be9d7d861009a232a97b139dbe0d83219591dbc1b639dbeefad649a9eb5a22b302f3b80fda9479e63e59e6e00acb321b996fbb9b7959c6be3b99774fb2ce5204121be1f889eed43ad3297f4fddddddfd45290caa544f4fdd138d589de973faf41a1045a4dd99461051a7d3117b189fe2537c7a8a43d1697a08fed1d4be2cf384448a7df16977a66b55d41947d490b21185b24d1b0cce39e7d640677526b83bd3a5b3f00304b135c6c70a4d54e560f77ca00b70b2b03bd3e3ffb26943355280f32637e79c4d89a8ddbe69393da7e654db77b80fe6f1b183418c8bda4e0106311fcc83b90f0631e76ed5a0df1ded8379760705ba1fce786c7cc59cc8ed689d88247671f322120631df4131251f9fd52a0441fa85eed917aa5418e639dcb32ccc55388eb94ff72ccbc663a1ca732d91798e796a6cd284b06d0e73390c4e27282f01cbc0b25011f5c59ce9bd4abf01e6992b28fd7420334c8e1418dcd9dbd3e70453bbf8e9d9e76377a63fa9ec2d198653aa42fac1a044428a48dd2382a49731306d33a04491483212750f0bab135d0c7d3d11818079a44b6741aba27ec15cdbe648a9f3ab23b51d7c62cfb2e4929897ee433aed171a7443b8969c5eba7743d430475b9aad91d33d393ad3e12f3fda1da5bcc160af186cffa14adf2f9f02f36c1460a07c3b0bddb3ace5f2ed2558a9eca14b2868ddf2dd735c21beada842a68b152bba40f104fc4ec08bceb0526ad2497bc71d32cfdc4c0244709a5966962c3166995966962c185df29931a3c6866d80e08dd5aaa6c686461c1ac18810b0905824162cdd58241689058b9c554a508212d01063cea6d9d441c042629158b07463915824162c5129525444c2e21131861149caee34143a183644a31fc684c4269629b1c0229689833a513e3366d4d8b00d10bcb15ad5d4d8d088382a159649022c134b1c01896d73426e6751c76db1a8757e9c44a2a3d6895c1546f3884c8d9e8323d23cda388dc89027a1562b22e9e210d77940ddccb62c73cbd2b5b062287dea54a81f91acac0eea05ade3417bf4d32feecee414971634d9b03db368ce17bc36a40d6947f4b538a6b3d4868aa6124a863eadd0542bcd8c59c43c9a43cc8d48514a44a200d28e19dc760f4645eb797474d469515155f8cc985163c33640f0c66a5553634323e2a85439ee364c44a5a144445a1d7624b6873e4df9795459a85cc4be8964c84a0db5a1210d09f74c28f36804f3a8765bd7714d349ed8babb6777cb962d656f9518bd65efea88d213ee5df10e713b1e59486597d270a0bcb954126473727163772867d9a1bcfba2721dcaeb8692d29f5948f7a339ed50de955119cb32546f43ceeabc2609f7749db775eced9930e8b34d725cc665bbbb7277e52ee79917fee0382f3eaaa6552354a3715e4d8b41a21a21d661a29a560d370ae5e940755f541fd46bca8bbfa166bcc63011b56bd570339add663463cc8c578d109fc09ea21fd6b46a5a3544ad67af51c23c9913d524611eced96b8a6ad634e335e3a579f2eb8c373db3e66d5f3d27a9548d66437fa3c1655f3d94173d8975950446692a2e7ef59c6c9eaa297af699ae26099fc0de753ff2ab212253c3cda8868809f3600ea5763a502fbb326ab819a980f3f2db8cc294d177b619a9105f3ac79bc669f1f726dbc5a66c8d6e1c2bce4ce61ef72500e0a9665a5e48e6389f7dbb3bedd1eb293faa65349898d154a6629a369f1aa58452437c42d7aaa9969612c2b0d41083a9d68c31668c81a130f619632c0ea3eec95c1a15b50ecf9b18b26c358dd28cc3bc88426998f4f5288739d9bc3d9a31e1138ef80476b26d5d336190a56c97de8fac293bca8c184cb5362223e6214ac23c982b49b516c74e89d9a8bad9df9e93cda927b332354cb5b8eec7c996d10d531cd7fda076b50e5bcc0f39443b0cb4976ab553c68475f8cb8c1864c751aa1b11a33477c23ceca3978551b1ae5517f5481ff6abbff07c7d7bfb1b51aab565a9d6971926a2fe885a1bd146d47198a7cd7098477f7a290ef3b29f9e879a584635d4363343002ed84af0cdc9e15c73f6341cd77ed850d636e7405f52fda67afb082e696a4c4d39a1720b24aff3ebd2c197df683890eea9b13aebebaa75badba97c34a5998a92a0a224acd7f0548dd5320dc3b039b12cfb280935bc1b2b06a5d3f0c21f287cf42dc16b23eacd322869eb484ff98cd32c49faa93cf3526050aadca609db2ca99541cc298318095e3dfe08de0d093e82d3f06df332d73c1ace79e12ab9c0cedecca2da2c3d331106a503910be4867a83411630df5cfa063ac03c9c97f972d69d6fdd77a3a3db3ce8352f94210b5a0ddf4ec78f0f39e8d9fbf1280f687e8d6f01395ee591e009f9a9de6304a73163e3d578a12a8b495e3aaddea6d8673c05de56ddb302eb4897f206f72c8be68baaa15e50c37d819f4f51c37dc524ae7d7128741d34fd72f9758121f3dbb66dd7835d73ce738181743f9b77ae79dce61df785ec2fc4e77cdd79d3985dd334cd993d2006e510c99cec7e2a0f15257d0811f6d88b490cb26b5e07c93ec33222e60983f8260342bf9fcca503310fe612937304a611c605060ca63a9d37e9ddddddbe5e9095eb3b1aacbd5d60d6581b60ae7d21a5fc852a30663456ea0df529a5d43cc99ced609ed960f7f0581df62a9ec180ddb32cb963771864f2f2f20b7d9e5bdd548b5086b2c1d6017576a70fb0009a2d4d50dcd0758ef36ef3056d70f754665ad2714b688c48d668183a5854ffbef285ab88491ec418b360669ad16c4ac6264b2925c693b9fb6129254bc9bccb2d999953cccbbc748b8dbd1bfbd9ffecb5528dce547a573567942ca594734ed93342d41871a87be577c6914f57831abd2586459459763d90858afc214a6e777168a836a4be9cc58734c2c8c4c4e013d54822416bad5425552a5ff9aca28f8c947b683333ab987906183c33333373f9f6eece810fdf517cbbab6cd0ec0c5c84581c3868f2ed5200b4c6911a02804502b468fa7600302961063016074eeca2051009f8ce828a6fbfe97eba7a42634ab041162d40e10634f8f61a95060d64bcf876a9ea7e9a32df8067985986309e9999892495470009dd4f6344d840079d6766661fa1fbe14e480b0dd0498c6fb7e97e5a55e48a9a053821e100a718be7d46f7d3aa2d90fca0ca1128925899c286eab4a4a68eba14b185a6fb61ec490d2916313c008b27545d7678769cea0898e28a1fb608f13a92a5069aa1279b9ae20a259e7d2648480a27a7262172e892c391118ae0b05ced6c704510339ebddaa8703c07b4b1bac1e5cab3733e1c704268074c18d1011153865243aedd14b0a58c2cacc86205971f10f0bcc5cab3a3ba1f5e059e3ea8c48d36653d0a11d10000008002c314000020100c08842291402c20cd4171fb0114800b779242765a381287d31c876118c518640c2180184000200688313544c441005698e0c6b33aa5cb3dc42b0d2e9319bf9412f582b028ae05add4b65f46f1dcd741ba7500912cfee1b48f2d60f5e83360c5e7cb9e68c169390e586549073e5f21dc83043ad8bd2ee6a5176725a5153c8d378dba9231fe284fe409715195308128a6cf96924b2be48fa9470c7a87915e34ea3ee4753d3eb0aed907bfa131d6537ad18b78d5a02b59e347c9048f105a9438fb9b528a09ef15642e82d1485620027a574a03063aaa87e6688d6a34e5a2602fc4b30c080f1ab0bf205e218a123203942223b1930a3aa1d8c44802264dce1e9e0d8a3d3b5c4297509f2ec43e1e2cb8732d0e324a898a877db6cd819fa4515a22ed37b3dafffc972937452bae41ae0a9d72c62ad0310ade9a29153dbf8a54faca692c2d8f5902b2d70a8de91ad2b29c5b43a977031b71dfd2b522f6a3343c4bc0d5e26b5825df4bbe68515a6715b4d581f307d1982e0af42718e02c5908d58ad6a10664499a293cf3ee3f56b1b2f4cc52381560c5922e9cfe07a60a54287e3deb07829e6d9d714fe723e9a297631cd787892b334e94e40696c1139597406a50b80b9cd47bc83a958480d073c51c862a2c4a45c97cd9e2706f4fc6d380f73a169b362523724eecc48a38a111f8588c4b4abe605cf6c24fd94eb3c130029fc50011b6734bf853935979254c8e4bfbf4fb345287e9b8a0711fcd7e8d7eb1219d81f00b0c1eaad288f409c56731489d680745329ead0553efb7cc72b52eaf06f65d4473b821c5ca9bf4afa23a839fb2320e35a91e2f354273dc833795954476a8cc24e5cc9c3541df169b6c9429cd93d5d6bf85ebe7f07ee4b3f5721d79c2b1b28a614073e5de1fce7316922f36e89b51dfda17880617a953d36351fc4211eef837fe54c560b33d0b78670e57e143bfe8b13dec949b1b53e9311610289059babf6536294d5d0d4c65af6694074561129612575e8fd8356479051859c963e785c1293e020b16c6f0b6a23455c0b9d08f886b123c230803d5cb1d51d7e926c0954dd47b81ad86ef383b5a2a86a0d326f03031870f10778fc20d0d880c9a5fd17ff4b1309388bc8b8c29f164b07865cf847f613b940d4c227752514648c4052bca7af36d5c9a3735d3aa1d8a664aed3f2da4e959c056855f0315fd5eeca1b5693d5bd02ae1d74237a35d5a0497e28f0eaebfca4eeab72d41fd1378fc9a683c0f243be1de9d7fc17f0e9793e64cd86322288149a552b98d34ed2b2441b9af7a9199cd39042e3b98932d37aaf004f7a3b4c7f57421dcb32ae6596ac84a6f83bce91768ac6ff98ed351a0616d9aed2d2027c1b37eeaee1a186a34ed04802b117bc8beeb6cf5d00306b344174299c3bac90cff12e5b7ea80616ac9412d91050e2a1626c8ca50fd254cf6344f03b072750d7350e5cc46a474739263243d17c7e64a556debbc9875ab8e79f265a4109f21711c2c23561175aa5dbe55204b60c22cc722d720308b9ddcf67162b1bbecda5e64ea354176dbd18a25358f76fde2c3af50957b4122014534d1a23a4b4df20b7e36155eaf337df7d99c5dd0900343a9e5631c668f26b2566fe67c4d630e646b3e3389158c768835c08f733d034c9d7c30d4c04a6d088f1820f2f5930f2853e3f8710f7ab23bb7da8713b60a7936454c8985a766dc4b67ac4c064a0c3307bee7528d31c2ad37117ef470b54ac4e4a4a29239d5b47a2e52132ca2d65755d4917700f6d038b6e9cdacc136ed7283bb15762c21944a2d0e6fd8d62582457d152eed950c51e319032fdbfc708a13d54f340ac87a0504e7575864390ea752cf5d9e0eef0cda79473ae70cc9199e9aa0ff1be854003f0efd3aeeab92baddd6d84b4cb7ebfb63e9a5d5a057456d3ea11900b3d6126420bcc1b1b233c49714584d7fc42a6835a3a17872cac20e0966972722d5bb57e0f5b6f7555cf28f5ba79b718819d9e075b3532b23796da420416e6925a49b9eb11868069439afa97fdb679943e071d8e3662a922b4292738181db779aeb4702276ef77f9387a3cf7843ca3595f472cb14703132c904a85d24c83e8daf41438685881f87c60661c54623e69b54c89f336e00205b93431a15337a2110d09e8d25f485d8040139837d1b975a87b76ecb64f291ebec039ba3d01da00cd3b06fd55fcdbaf8def5c41b7a5f31335b682a25cbb647d92022a6973a73d01fc5fe11a1faaaf6dbfc35c390561823225f4a884fd732782732ab29e45afdad647ab3b9479fca70cf21fe326a2e1222c9232558c2f60991f460a04d9906d369b2199698f09fc701c9d4744b379304192faa60d7c52c68b5e131f73a3ffee16ec7d18d1ec94fccd76ebf72abee30a64b5744a0d55b320f0bbfd4f3667f7fd85636e236f5bf9f4d02521399b41b6a2a54b9c670cca72410147e8fe90a8a9d7e89e7b43c4ded644a6e2e03415a54040d8283be5252a45127b0ef4fb7a95a4d2d38d1b03982711e4b510b97e22c238a68bbfd25d0a85153fad251bb7ba76b4b0c7b3377535066d5ebc612853c618367f3b28c1bfe26f334fd30d96feacd75a8266ca9fc1444269ee9565f10696eb9119c1fa4190cd72c3299f052189c9dff2f7735720c48992a173dff4cc3d77fa9fa2f20732f711b31d37108c3c4ce4434a9dac8c95dd4c26aa5ee905457f64882b300846be113412ee46b85205eddc8ba08976caabf703d3ce8290495c7541474772c2da76014756640c45face25631d16f1311334dac102a9c9561a799be91f80e244bec9bada064efa309a2ff208beb956bf2ec423a433acff14aa74efa22293ce3dad979504d031e5fe2a9ea84be1caeba4467cc67ff8641afa963fd097de19cf64d5480fe462ae9443334e42a4d08f73252833bbfb9da8afa2f2a6b86868e6d3c2dc65e0834b0d5b9a0d52450b6bedf28b0329ef9f1c36d085afdb03a33a3fb424a3630bda050fbaa942e7fc8601a3d1f24f85ebc000120db80887aa6cca2a3f5ddbee2aaec431f48ad26afb29351273f068dec1a80e153b8c80301dc2cd9a1f5ab92491ac6aebc7a459e68b8f91250be6e42df3a978830c0ed90871425f79a879ccea0b501634229cb21a985ae00f656db127d41fa291cac9423ef86d1da25004f4d632eb8c688b7398b492dca06cf0e65692c79636bd41b593dcafd80a52f20aad6ae69dae1c32db6f3c6f215d6d418e3d82c10c6f7176a47004078fbf8382d6691c8188eedaf7560eb2a97223477d02afe33e9da6969fce571ecebaf860256684368f4f236759bd91f755cafa1bfce1e633327a8533b624854cd55af1dcbe953ece624fba5de3168e6f0f10e36e13b380d3c77cca6e589c8a2f51ca0e6ea70148984fb637a4b1b7d66f065d7f139b5736ef53eab444f9dd7699b6b90ddc7aef141d7a5ad61c2663e68ba3f21ccf4c6443d59af9cccb2c69b4d0cf595910d9782d1ef2bd144e1f632ef606b4766eda86f768eb6f6b7e857548d6d9c48ec2851cb2cf09ea28e9bed262addf63c170dbbc0ac57241c31b72b36b2121f4ffb5c1a5d7ad6b2026837c731a77d72951bbd8ae0db776fcd5022b2557ed22b8112b4cc5631df0037f5eebd235b1efe56709d8f369eff715560e4b2a1ee7624b64cc1bbb9b487e523ada1ab2e4ef2c92e627631d32aa4af5dc46ea14227ee92902fc61470290f3bac6e0d4c25f74c523e86ef77cbe8fd0c28b1d64cb3fb4103ec1ca02b3e76e87fcdaf228cdead443823d89e6c9405c23fae75c0a3c7ef4ef10544c1cfd64a11a2f8c348b95c95bc49e929825c6979d33f10bfb627d9e6c1d47fd2197aaa53567c2e28efa9970683902b82bb31788ce830cf0ddefb38941edd5a57c1f04313b1e95e6074883c9292df6dd9b846fa962f4060d03095bddbe3fb1c7b18ef29930bedae2f0f956715fde037f0b9e2628dceec73e77569a8a1fbc6f20d75d6506ede4832e86754a95d6721165927901366cf35205b1b407d0a648a2e16a214183ea4ce2f5ad8bb1c33a8066eef3d2fa0e72e019a9e5f282c269cc1c4327a959c48dcb1512e8dc2d73cee99ad81d9cfc28c6884a76fc80458b5a5bfa8a3f50fcea49479baf5b4465ad6b48fa57b9fd3dab8169e28e4c42b24bbc7857096520e69348a6be8e984afd2d6cf7ab439ace9f77a8886262dc6fa5ba3f5532aa230c21e7ed83a3c91c2f7342eeb14c68782b6040fa6128690c005f5290e5aeed1a1427c423bccc2dcb3a8c8091c12babda9404b7c84904c9d15dd86201deb246a0f3abac6421545d839752c294c3f7cf2e7fb1fdb45bf34cee68bb136bc50c94f2e3c8019e8456d05e54b5722b51f52f75ce5e6994dcb98d4e996494ce5fcf3a98b87ccf696dc204ae1fffd5350818f71aacfc8b13792ea9fc568603ba0a6a7573c59a12a35630d8a1ebec439109d02d4b6863225461e53cda6ae8a3cef435b1018da31f4fc593d1bf30cc626d49b4493ac8f4e8049628001f044fe9ce26e3a8ade88bd5283c5357c00324bec0c3984d18f662ca8cf77380b931c55a0cc5cc975ae19e4dc7621c836ba72b3862f7435b46a301cf53dd22fc1204f773df9690b6418c10dfdbc202c4a73da8adadbe9c00b7cffd40bec32b4ad4e70fdcedcf159a9855603176174f9a788754cf7a90a217bb70e90c79407c32f121d3c380c39d34998bc9f75548ca2e23cad8f7fa64273a0d21c83ff4470d20384ab53e1b4e04c6bb596c95e8e3061863268519c952a67c55d0ffd4a776004dafe6d75b48be477eb11984820696655cda5d5b0a35fd4808230da14bfc67666aaf44de97192570004b243ed5c87943ef050711fd3269b7df390758167f90277c4a6925ed95b63d5e894f1042482c615a4b49b68a4779db233c6b5f4a1786b511cc91b21dfc8d506566a3045bedf7de0790ad31ce49ff8850f8fcd7719b04c890e3c832fad91eeaf16b304dc56a35fbb7da24c192aebdbb6854df704442530168dd836cda519556109c3205124e0a2566cbcc356b29b999f58d2f83d689ca80567fd675495e64142bfe500585ccd006f5f0b37a582736d1951f87fc97926c678504a3c120d82963e80956ac685b4ae3b9c16253700844efcf70492964a797905eddbadfed870a39490df2fb41b6c1aae7bc879726f765398f158b7893577efb9640554d35ef5d4d0d2c6697e18656c4f2972766a64ca39d8ea7f873de91a82bfdaad8f99821ab881aab4326c3aef86f948e9cc9f223c0e18d5a108d65cb311a3a261b5ea06a0ff2a2b2b8658b752ac5d96baa8235e1a07a673a79820eb353073624bb7da6a7227c213fb0c3da51f1d2015abf3ca600a367635ddb904ceed4369b87a65412f5f3c9f6cb6595931e01515d01fd749d6d48e03cb02178d30c6656717d86476b3c747b7ccdca7fb1a0f2cdd961653a1f9516fa54f4174429d9fd9b353466ef1413b5d8614618d392da881065cc120d2d6966af6291f6770ef2a243ec97c73694bfac19a014759c5b6dbbf45dc21bb5d1eec5f3b8746f53f9224412997ffbcbe3082e6fd023d8064a88dbb199464ba5eb33b2f60326772cdf104a5188a0b164a036f5f3fc8ab1e8d14019537cfa3fd5d3d420e1fb8aeabe8a123bb092f9bd1ca8462c2cd9b00b11ec1934093a74c094e4f86fa1795125d2ebd9570fb7196030963d1b91787d61084d8e486150ac8c6e724899464b50be22d664f541dfe983149fb450424e62beb2ef138ed5233d8b5987cde37203155482f5bd16c68c29204b3e33cf8748a97054bc0160be961233655b11b49edc3beb86115c81bb2e9802c1032769a76bc2eb9f736efcf8e212a0f2f8954142cf086e716506a5854d0c8627e312490bc27e9100929a47719091e2e0a279b876923e1e339fc2c3c7af0aa864d312431f643b9b5605ebc6344213c3b13d0bd5c336853503d7704356b5a5890f0381e372c180e86a2d5ac814a5ac19a50c9a23029b8fbd34ec80440c6ab4d8258b3c1c739202dddf8d585b29b187f6b4ce8910fafa5a6cd558b84145ec63d2c80eeb68d046442a2d93d35e844c23d5244d99d264ab2c6d80d7f8302ae16905ac5a93260d9c6b5521d130917adbcaa883c068f6e64dc0af7cbd89d2a762309eaa025c94baef6dc5bb5f2a490dc7e4b2919e412c930b08f613289350c4053e4582ea79d5b7d2e34086d670a982b1f0aaf97be0e126de8965c2c70500af628778cd37de65bc125532177c78886a4d3a533a66376380b2f4eed778b65e6bd009c6377f0972d2b86aea947b754c8ab3be5cdda6524d5df71dc28e2ba230c9b0284750e5806450eb782a58e86aba2da446dbb51807d2f4bdb89a41c2077b3349a0a949ae5fd5ed4464aba7ca855bef53f02810b8137ebbedbfd815873a0a75ff811cac5c46fcbc0e3a2bedb65d583eff5657525d0f636db4b435ec0d7906bac067075c3dd55c1de8b351a0a7b42b4ccc9897eeb56ccb724a5320228f0a1f25c7122a5317e85edf05ca6e6423f6a7c8674e4c78609cb35ad41d2957a22328e6af3332c06c935bc06498835d8218768f9414e1a6f743226dbef8e3d78fa58b930990b50dadf9852936c899853f75a52e75ebdb31224b765b986b8801e97607a13bba229086daa1b5fae264a16ac9f2e9f9bc25343b9b35ae3983c97f89a481821a3051a3170b53e8cf9249a9c1a0bbbd101da5cda591c033604204222395b6f294ab90a884aa274b814dd1c1ae48606c74804dc59ce885522295aaff4512d3084cf02c9f12e423656fb81efcdf52c55416797a705d2f1b1e370e142073303e509764e95f35477d499d56b40dc59fba9d2471812a2e2931d3d39255f83d7c27529938b7c35de342006600514af6bda777c1136e261c1b51101055eca559c9e7a65b3bc52820249c721b00ffd5533b9a25adb83f4e23b808aec7cc2fa01a0b07acd0edc93b253e145edc9789c6834f3c2a79803b1ac45645f1d15ceb3539f60e7543999bc6e2e7950e38e04026731e300ef2b6efa91ea67527c4657c7cc299bae972e80931706782aca42267681acca41a5023de17f52963a9ab45b29bb51c9c58b064b8a80e00434e7291d05459bd0af3f5fee0200c17c9798128c9d97ec58ad3f1390ddbc1a4bc318a7c81406103639e31133e33dc8643256ab571dd858452581ad08d25c79ac5f0a6a54a860be0118829d87b14ad838323ad9760e0db91680adf55ef890cf053a2b2993ba4b4dab1223bc808f758183aa8daebc1202b204b55118e5cdb004f6ab3ec8f306527ef59ea0a1477de5e7d91f111e3339ae8abf212eebd3cd56c64538568f6009744fd2fab377ee50854314ec53659f44adb4bdfc8759e9be4e7593d142d1e2e971abb24baa56da1ec09399655f83a3f022a9a5e28927272fc099141921a819bcb70a0164fe8de2a2639ce3b5b1adcde900fc1316367c463034311663920e20ac275eea534d6e7c0cf9b0d225a1a09b6bd4300b502eedf8211506d5b9167a7976f486f374bc698e2b961ba043a62b7f536aec0d080ba67510077ea7b8f6cd585555b063e7a8526e23fbd36c8afe18bea869ea15a597749d50b5223589923ba6be0e6ec086576c34267b44befa27b4733edb37b8b686cad3efaf284df6b6e0016688f9f0cc6e48160d33db2fdc0e1a0d62a19bd681ffd2f53a7e3c36db306a5e04c9a3541b3e46a6021b975b92f5465bc767176be711cd09be540cad36efede24633cdf194369d457991d0daa57ab7b827d37de796d0dc7e7c33640cf5389a6874ea0a0e4024d70148ebded2e00e763a2007f1a8a50b1f32ac30e7f4edd3e00462ad1dd59d4641a160caec19aced3792839720456678d640b586fe0a54e26fd6446a3d98e6c91fc0dd40677bec04ca65f5e1262374d4919cfd5ec49d2125d06c169fa348fb0272645de60267c57e9750660e1fbda2f2508c94aac41879f27d9ec1126f647344a082fb28ff41672b54a9e1711da109322a0a4d40a37f08094fced5b6cf026f524ba8242a2c55e2c4f7224b7f9ab12a845facbe9f3cb5aceec0ad46c1f20c9cc177d9f108f7a1a7497312a2913a4cfdecd7aa90ac63586c217fbe084bf9184909c138e0d34e44bf782b3a1bd4ea75e05945da8404d0dc2a45b3b644341237f4385e5da940662257784f37344faf26027e02e64661efd94a8990e1fe6f93e2333a59cc69f2ee3a7b2fcb846a0cdac1a1b46e65a97e2be0e215f52b9325eccdc3da940280e700d09dd948a5c24731e2a924abbe95d51c9bf227291dea5d3d7b515b5e45605ddb5f2326d3bf35952f47bf5937ecb04c27940cdf01d4a737ed4b2419a323797265b148630a4c03e5145e37a8f17bb7406d8472d1debd5c99a8aa4278d27c46a885591dff8a89baef31319fb1e6e6cd2deb0b9e8659b0fd0e128c7c2e469e874fcbf8034af3f023dd0b8288604834f2b8b4dfb913b827c636a10970339414df97df99539089d16468144effe83c2deada7ed052b3ddf7ebe91c7080ea93eac2c376ba5f85aa3125cc7a9771890fbeb5976999df5f4e3feaed098e501a1ec0f19d4c0af262f77e60793e7d47990900ce5d22c63339e4febdc240c218c887c3c26fd9ff6c4930b967f4e3b488029f16b28280da5fd5bb81c683973f79fb06c8fc3c5e200acce4e2aab81a8e7ba909eb77bc33e9007758acbc2a6dcbb404d1a3ca05cd82bcadad1196377391b4d90664411cad309bc463af7f68745a2c24f683fbfae9e9d145b2ff1ea7322d84b55955f558ba19c56e3285f94dd81a0eb433f4aa877cfe8da4e6eb4f6e9e77ee45c318100affc37b4c4fb8bd54ca90c7acaa618a756151e22360e54fbef451f38132f22541fe0116f0a7f791e3c41d70a41240ca6ea7f1bd9ff0ebfeb3b976311744b12d1fbca5fbc252922761f48a6bbfbbeb7d8782eeb8fdf71272273e912a5ac098d07dc0f0b3d23eb289771f47adbcabfb9108039324f90b64a0553ed8079168482bfe99f3545e4d05e1dc5f1c22a52253023324b59deac3ff058a3e31115278e00b3b2bfffb0d53ebdf3c4a28870b9fd63b442c8031cd89d90a0d2cf76cb037a1deac99d75efc2f96bc332451256df30be07f4c5cac10b790e250472b4ade3823a4ee0c63034efa5b10ee0508284b7cfc2d2d7fbb1df10d93941552ec7e3429b79bf9aa941293262a11275eb22a95f472124237e266bd3ee11c81c646aa956fa704bfb3385a921706fcb6b139bcf312e0f465020c1d735a7cd6833e661ee83752ca6c81aa10e0e1f8ee842b916db99a7a1eee1b9a2ff53430ffdcfb097df25bf46e792884752ae8f8fbf887b6427ba117173ff62e10c4b4b8c85b8f1f173abc9acb89f22ae1e558d326925e92ff818f3f13cf7d70bfb8701bb3ea05dc63e7d44c1e75a854adbda6e836dde30d8aad80d078757762f55b22914907fde37c02d93f6c85614a5c6ba13608f46c08f0daa5d5db5c9b6562ed88da4377f8e918b12522a8752921bbbce06d974614aa837b603717450f19b1ce72449809f0d8925d14aedddcf3ec6bbe9abc2464f5b63b1b064ca660c984271600de0f499dd449955c087a8fd5fdea13ffeb8c1799fef56d426d17bed8bcdd8734c70a68ec616a4701164d959983f49141cec7a41d6968a6f9cd26f9bfe1875d38347a3c4cc0cd4efb8e119d63c0b1438d38de57b896680df65feb0094068fce554f741e449a871a4f86eed838ca486c32c36761e0b0005149aa8d4383ed8e8b8635a47b2ce4d0604bde3ca29e3e23aac4c4c7757924723c23429aec53d5238f607516ed62d3086a527889c56ea6aecb138fa0b9fa64a5f83825b8eca4a379acb1ade2386194803dc05681ff6aa397fdf9c0c646a666f252cd0bda0b8093c3dbb0d3e1cc8487ebf6ce10faad1c345abf88715437e50ac6e59ae3569ec6e9ad9d6f257cbcb02da5404e751be6e2b1f13ca2ca5c88c888f45d32fcf2522d0f607284151ae745540df86c081adce6305107893d96ae6e85af9c85674857794b47e4bc689358d7ff11590d178175a3b866bbece98649e865a735c191e3fa52b83ebb62a275b9902a093943da53f33bb0a6c39ed7e46d8f2a4abd66b676491119ee676456bd635f76ab184209adb6dc268c1b6708ceb4c8d79bf9574e56720da20da5d43e7238925b10bdd2ff0c2edadf0733355f139a94452f9aa789b3df7d454cfa5d31aa3288fcea1e8dfce527f81182fc77e3f52cb09332303a56ff89f5e832c9db9ab03fe8dda02dbecd5f723069e8aa07627afafe0bfa4e6a1909af3d1621f2193ea213dd88dd66a4b3cf459d12072836ba7fc8d704522ee7ed3cb1601ed54173c6e00e25eca7581b7c7cd7e17afd1b4ad36014cf4c3711fb349ee933e80ca75614201c1b890525ca2fa78e5d493a41a94ebd04a0dcd21318044ce650dbc7568914fa45e840c8cf8c801860f32f7e3430521533a07bf609eabeab99b01a4cb61cfd7b18db09e6c7bf9bb97b1d19686e253144a07de514b45af695cf0f4488f09ac138ce202bf0c1f0a5f5d57db717872992052216f98fd61c5910869ed36127d312e0d89b29772356074e450531440d415dd33dae8b1308ef1a73fe675e2bc1722c4409786f3c72ba63968c2da5b4bc868d0c3b7876ddc9c2b9542670706643125d6c560f7322ca1607b40e22840593bf02ab250f4cac7f769be025314b326b8992fa8550faa9cbc5035062c386f08ee4bab82b7eb13f9f3d9e4b31fa655b51f1d07444a820321f6b290e4cdf06f1728e206782af0c93de51c96198ea75244a77d828f3c0025b2c9f0fcc700c1e704193d8a9002c8567edebdb828780586bd4c29d142348bc33aedc3218bebfbc0524f2a566e87ada9872f0dea7060e0e404d9ccb32c29f4ce50ba44cbe70d1cb0cb763f65679c93b7a9b2292e17542fc028734eea7defd438a41101e413c5cfd7b1bb5b22f27813783976d3e507575b1c77499e0dc5a86e3a158f813f990b58adfa3d497b3de41dd13a1245be8e2952db660f511e513e10e7a62044d109e9fb5cc81a12e24f062c169a41face3110639c955c9374a130b1017c5542d5ebe9ef58a6964bc2c6958fb121fd534df230288ac1cfbf436f0694185475c4724ac04009588360f258e0b6ab67dd4950d15983919d7e33c1bc53dbfa7e59e1de258a5766f930c56f27dfb8bcd325807fc491205e5032de576593f9014c3dbf27d35912a63b27dc3b5fa3a78204df24194f0db9c84ba3fe5c62d9b4e35826a1898de814d5e8342658d8e1c889860f54c7fbb3470e720bbfda7a30f902cda0b52489d4e3f33a0bc7533fccb6e0cdaaffc0d6754858eea665233fea1ef3652c2d4e8d6560b516be7352e311f80803edb22e636f40382281334b90cd90af1da07e2cd4509bf0ac981d917b0373d393de87db9614eb786d00c71c52c8c53d77c3bc1ef8a9bde6fed6bb8a327c21623900c25e08760b05727cb03bcc6f0370e1701c27b5e8e6c96c46252057883605c58e473c1ab366cac6b8641d1949301033a36345c0ccbd29fba6e751c1b40d1819c282f9cabd3d25c9c95a662dd3ad4c73bab19eca7f1553642010f44227c23dc9600e62e76509b0564d9a2f851ac3e18c846986c7f1053089c4c5a2a2bcc29fc22cdda20ea47ecf3ad9d04d4815af97a96124a07ac128e0b25fdb6b6026f2d64321a7a8ce0c42be7c92c8c113a847b7d87b6b590bb9047252c400637d12ad8dfb5b8896acf86bed06957ae9aa53dc8d97a946769cc59f84e33fd417580ee9c4e8f55a8d3af754a985cfd4497af501a3b2874fe6af37a2d9cc880f1f94a80315c6cca3d16d7ef7781c5d8491946761f94c64e2ca4cb8a2fbdbb8880d238c97561348b7adaf839268fb9ebe1a635137ce08767d20e43e63ef63910c20a14bd5198070690f5d9f92ab6d9fc6583f04b313a370e98e7d6dd6d1a6712fff4f175085af614f5ced42e0457d4edc295c279b971d8522a50bf246f45102f0c6f171966bb31ab8503c6c181d6243f47e7f637d79ddb87f15fc9305d1d2b029aa66c58f0ad298b3b9d51382c1e45e3c42b821a92366cf4a46920726d30e035b998364f441ab0f404174f2afb845c8631cc99c32fe470cb260de33464c7293f60d86999de5bb6f4fa6760f14853d25f798759f88e4d0a9c3709565c54b87f05c38e0539fe399a62807d48cb73f7898bf56f21e120e9d2194a955e3b13f281bb1e1c6e5f15e4a8f87232271ae95725d181e078012660061a93394b40d24411e2b8c64c13bdce0e7a8d60487d7ff786bf19ab287da4887fe0426fffb37d3a5c0f29f589e8d25a691c4209597316c3f8e01a4383c6d6f1a196cd457157fece3a81acea6bb98e263c02293dfbaef49a9a5caea0bcafe146a08d7d5463e6d5940bbe20986b2cd83d9df32d9e2837ef2e0aa729f2001249daf924f8784a74dc2db955c81305a80f03506ec2dfea9fe8b928dbbc851980406c7c57482708d757551aa5279ad527f68231757688371af5482f90af33dae7f8a22048eed5dea5013cf3196a4a0a7bf9aeb103b1ac09c0df5f9879c81e8ce0a1c786a12840249864b1bb07e98bf3275a3a5471f708c461cce6e8299f4196f18e81e4bc4c81a9c140e8ff623031deecf037795cc5d86f719020c562875f6b3e53be2b1efc96574230c7ff0632e71b808897b9e4a4452fc4d739f65da69a233f08773483f82cdfd58d4e983d8efc57770eab510848b99fd3375115c8377e6fcf665353ffb0fae2ee1739a65c20a4438608d7a8a8691032daeaef82f628f68b3236f9d4036b61cedd569816b2311ef022683e2f0452393722bf43f026f592523a0cd056bda47dd70f0deb2511ad6e628ac666049ac384e6f7bd832e29a406cd56a67a3d407cf39231a8c45d39f8c56debae37446b720649c696612bc4522f446be4d4f9ed9f74aed7d882c29327ba70ef5e86e82acea22a0f7c3f3dc8c8891ad53be3d4e539316dfb9791d074604cac094c26103968eccb67d1e06ed947299bf55be1195a6cf5952843ea525d3fec49cb8b0fd44dba07ee0af7a8547067a39cd8cfa8c5b5dd11e5c2baa16989d22692f5fe728bf864e49a294b0d1a85eefc3661677d5b225f9eb1b94eb48d9de05198f1adc06e71b113860c30020d662c53b7697b39b15ca25545d4a60e5a9d87378c6f015e3d70a1ffa4e643c8e852dca007dc2c060250a0890cb0aa291f49e97bb74e59a0a3c42e4ce8884495cd6cf7a379012668db531155d3a84e706dbf33e5ed5221cdd1ec12be8c9a51e48451b3690a625eca7c55b77750d331df13ff7074542134bfc581d47a68d58d156e425edeaef011c65908aeb9af58d4fee7f717e29091376fe1a8fd3638cff02a8600d0feec95dc16a6f758df6ebf2454d3c72985a17174b868a218b168b52c36fe7f1f0a992483d886b4c9304de0231df356c6c9fa9a353acb455443b26833ca4f978428b6db0c0790f61abc5941c8dbe2a6394d3774dc6fe1d07388ef4b67fceefce2832cb5975305af0ea0e8dd3ad3836cd2385260d4aeb8211f349b52589bcc108656a6d3e337314c6f1e204ebf12e0adacce0d707387d6beeb4e3855810567a395d30c1791af92b49322f9c1c9d3ce1365b689b3e250f2fa6667d11600847515333abfa1238e956af046a9b85d11f575614451d055ce012714c7ca7a1e575d23d30cdfb4e7d67a60fc8c85552c7d64325dd048e0180fbdf50661e43f0eddc124db337f13b252e49545f1bac18480209614d3b10839766e0df6b60f15831e0049bfc3b1e6a4f87a36c0c224a95e1599c9c1b2ed91ccba5e0505e953c867eb098c57f2613d1fb594a85e08ad41fbdcc9fd39bb7fdbac31336680e914aaad7c79fff90b573c648ef282539fcd275d1d0f1927089062fd11e122da96f6bf6458ccf2f5424af20ee6164cf960a03e775313a29b02277a94571aab5bc01ca1cc62c88394e6c032ae8cf5e8cbe856a3d92088d50f45ce4e1f0c02305f14d2b59ce3387271ac28a03a49da1af1fbb4ce90c30b45ed85da61db1679c83a26df00c9491b683e184411b0d8b1a7ce1d859f1bf4673cd61575d4a75957e873d3a057561b3212a51bbc30aefa5933b9b36572e2ff66e30e007b92e9bb1ae93f4cd7f53c9035d454262a42051e8c031fed6c6a64ab599b5b233a29573efdf44eda844906c97b3e42a1c4dadf669c95b3be739ec938813ed183e902143eb66d39d3eb470acc4bfb12a607b626ce65356cc2a8f5fcaa382bbe1501fecb084bf3411a0b5e5b1768e47352155746bc21c360b356164b29e5e8ab61894fb39d02a63d53edfa05952c110ce3b18a6ba1d21efb41e62ccab407df86919fbddb939ebcacdc9e1ccb6dd520256f8f9075661e3b086c55550a168618c7527524e9375eb90283e40dd33b41512a6a49f4f8128286a558025eafaabb817f8361f73c3cab45d99cec08cbfd4384f08a7a9ed8356fb9a539b4081789935cf1cfe5eb2a84de36a0158c1333ba465fd4e0ec2dd0afe1b9d20c329d4188f072b58c546598730d2fc734003dac1d1426be39dc1b98fa113b87fde7ed24037166a116de0fb050b71b42d764e66ca6b85f94ac8b3e866f1c0a82e5292793d8ad4f5495997f5a12cb3d25ec6fb4e264f6629156117ad6fd81023c175a40c12e22927ef303d9dcb94d9dbeba388b3fa84e7d7a04ccad28b6a250f656cf4484967271544b2bf0c80a0a244c75b216224306f06a7a121ab2436d472483be67b460e466eb680aba05aada28099d431d776bac0ee22ba6f66ca14627ee6ecd22c6f3fc2d227f0374b59617d01d5ee7a72ba0cfa82190b03896319fba673822286145dae33bf6c82820b557ba0ca348362c28670ec28dbad559bee89013a9797816646618c72c142433f992e1ea091474fb34613d09e0bcf55566861f17ba4d16f020c1739b393afe71887c8b728e71124e88c1694cfbb046f339ee0b349327dae9cb8f694144fc0986bde1aadd92679c967f51b0a0403eca694f8c414ffc0afa88a3aab1b2a32a132297f427d3a8411fd0614c1d3a4781b2b583f4beec088205a1a6c8374fb4f637bc8702dbbe4d6a065aa9dcd5bb1b3fbe500519be8dd1fa9876d72ab0ca5f287a8cee695e89364b9a24ea883081ccd0709ff4646e61102b07412a241824fdc681c9998fe74085db512e1d4084a5d029fe025bf994c1d5873e1ebfd3677367c801b6761bc8161e3d3becafe0f435367da1483333bb803f67485b3496e0ac71c44455a51d85f54601715bacf95c9ed71aaf36b5ddd45c95e86dacddb9f41597d3d36f3cf6dc42a2c1001e33d06e9b8e3ac623dfe2ade676cccdc68f0928a36519716f2b694d26c7f14d149cb7453db35480439a2a53bea4a21318532edab20f52b9e13edca8398a620470fb8e3c9c5bd737bc5098926738c3250d89f984f0088ac6c4ce61c657c94594efdae3b6a3c8ac02b60eff847ed8c4ec99fe2a927e65605f05b5496237952a1d81960690789ec7de7ccc07d19f136a34a055245df5ddee97650d898f2ab3c2e9ce8bd38355c9439ecaa66e7ba35d0ce846b171081b74f78c73f3f0dc6f13063a3aca4581189601a127c733865d7089905a183210f771c1aa8fe804038057598e448da810400576dc75c140f40fcc7075442b511e78fc4b6afcf297d7b08e0f9d3f1a3faf3931315817a3742af5a8abf78218a4617ba9f8ad7303ba82051c055e9ea77aede02703c94f8d8fe8bb67586126f0795364ce4b77ad6decf390329c712d2f3117f5f59eda354dfacdaafd7369ca9a5ef054614e7f19589d4dc8a77f153f1d521f77e6cb251eacb7830ec7f374e9bd2736f8568be36591417d82b6ed1de3b6bd3ed8f8e247e191a3b9dd6dd32e30335e908dcc33ea34f193947a4b0da279e6dfcc0b74a1462783e4e602aba55da0f3c1ced86c8f20b1fd952647f12acf0b72806e32d40f8746c9cf9cc582c5ddf48955a803887328708e6096a43f55e44b0081b54dd9ceff58fbb74b334eee9ec601e0dd5871363e9554edcf73f5ea05f03dac65c8c051d2d65a28ba9e3b39453910682f0796fee3c691f63b6ba3587696c8c4936ed7583d9ba878b5fab4806027373e69d35dd1c3d6d986d54968ba10d2f2af6208c8279b9b0b0df1d9868ea9869f327fb598066d9d3da49a9933e45c2354466373f03ca77343ae403bb68676968f9f223ae5d93731b6d0d05441ddb6342facb349d2d077b1c362d45d66354b1c3a6b8fb02a8642a591d7719842e5659960a9e2c24ad468f627cee9054402e537ec49830bed83868e09593ea34160d285a275cbb9dd80e7b56fc936f517dc8f19274767314b390bec440c925fa0ddbe2ea143871a8c8b7b2c971d2e438ece11cd3c9515b23e2a7a8b7f24a42d7d875ae8c7a3ed17047c702284e45436ef181890e440e6b46a952f400715c5699915f5994a37f15e65abc20ad2a0ff46cefc06aa95e2154d8a322cf4f156ab47b6b9e850f7c3a16b38095d705fdb2056bf8e49e0d1dc2f5c7df9b1616120fed21d032c5a945449e9af294ff1426db42d2e7939545cdd1dec56d86129a82f0cd7e08c97e76b87b044abb3e8e9933e69fc39e603de0d1a0f135a693d6df900aa188fc1648823b5efe00c41241a26204c9be3639d2830eac732445043f533887c7971798b9acdfffd5a77cd8994d6efbeb0d31698df85d1226076e1b115839cbc927b2d77d4ff6cf9f5bcc37427dbaf5adba3d89a516ebd0afe09384187171672c2886b571caf8fae8cf18000d75a984835c037cbec110d00ca5f0587394bb24d3780f1a618052ac29ae132e6367031bfa7facf22e1019f78a8d4a80ca043f0ed2a0a62e5444dd6f184ca4adc81d8f5f369bf2c2785465149f0b8614c9099de1d879ae487c677c775546e5b337d5eff3cd8caba598c3a2be9be8e8b7d479f6138de94d5394473038601b601be8dcdeba3f6419dc2ea19fb522319b519404761a12ea8b447ec83e6fce0a17b5d1213314ede26217c59db0650fdb1593ea61cd6c39da15ad9275d977a7e8a26566b08f47255d24a59cd3dd0fec2857cf5d6e510660033177dd40e5f124ef849c137467191ea0e8bc60b308087f634eff261d9c0c198be68f26c5c1073e05bfb926d91e8c54b2b2f88587ff85debbfeb66955e115c9b1972bab2e0c27eebba0de07fcc31c565542274602051b7a63270a3a95579a3e3fcc0e9b3fdc7742ec3ffd6e903b0ae269565e465decf7cc509e862382cd224b596d4fd99138f9d542e41940a9f77a83192b5ae9a98fd8b1ecbf97872a4feac4167fcc2fddb85b835e2de05255d1d4333ccad2802214bf66544847e5e511f8a5c336458656aabee41c555d78b5559076311a16ab4d9408950bc106964909e485b5f56313c55a036f1294d6163fc7a113df7aef7fd5335bc058901c63995844ff3eb1d19173861aff782edb57f710960dfdea85e36739e3ed577340f57ae22f63cfc52e765455eee96bed8db70b5f0086d1f4e98aefe6a34b39c914eedb597ff65244ed01bc5ce137330655262452a9bec8fd7cb2482069e950e0c1d977c23c4ff52bb6edc593399333f47774e3129281829878991ab8d273e3bf74e63d64d18b1e8572975b29e08f30d3aa39ef8b457c10e277110894895934f5210856312f65e0d2b524365934d1f8c93d64ef16f260cc1d6bb9588fb38fe8222db84b12e167bb39d3b8f0680e74bfd64d87afa5136857b19a3db7889445ebd9107b81b1118016f3f6ce905c2646bdd9c2cd656f95c92d5119d0c04e09b4baf568257726e07536363ae198a6d85af0475adeb20190512321cf9a2194754784334ae420ece1ce21b42240f5945dd8311d3d0b15c6ca06e0064eb5d6b9ceecb1ab2d93a8e367b733362e31f7a51eb99ba024d00dd63385038499a5691653e2f3b7e61ced6c8356b3511617cb6a34686051140d139c98dff7aa8ed4b3fc8e5e194d300bb0a0195b7ab61e154b742af6e2f31eff3e383e104e2ecc6f54278bc8b37c1218c65b56c07c620f3ff6c352b52de3c396e4acbdb814f663ccf11417fd94ab7b9b6e8153039dceb56ad850caaf99efcaa1936234a2654f37de936a8ba62df22f10a8ecdb54db27536c4a3f55cbdd35ff282b1d7c385b4db36349fe66bca7cb9108ec7e602260a9c63c87f42213cde4f532466cae048fb6c06d5a8e3d6fc6585d47970a5b937549bbbffee5a77498c029a36e37de83a6c2189a0bc2c23f43187a71da475a854c9461a2beac4f228148b9220209d9b4e4f556d69ece8e69f1d331531414fba3c5bd11a4cc5eef7669a4ff8b5bebd545c55b44f5e1ffc5de951cc5d3cc14ea1acb355f538561dde127a5188c12fa7c65ad109a1130d8925d09f0f81e33ce0e83d184b51fec7dcbefd7767a500fb47c3d0023ebf3b1e36a2b96000446ad4ae48eb33e7bbb9c49886d0739587853d0a91548220ee032eb6185c325a215ab2b84edcffe46f280e199417d9baee47b55d49752f0b4574f4f53a5332b27d9198211fef8b1967901d65de7e468f98d7fc6580fb82024e189b220af85d2066fcba3513fef00b8b067c690147dae67b786f58fc25c400c5d1c0c2520ddda91185d7c33a39febbb984169c5e8c1b836a9846f991e42172614e832532087a8493970261602b19ca521c145933413c0dbc99b6e74b5dca38e46ded63226814ec815c795056ae2572c2d06cc143aafaecc6dea3dac84ba1c793101744b0e5ad59bec14c7f58dc44ad8bc197cb477f2a682e311d9c355b2eea3bcfb0f33ac5b87767908f31d208aa96f76e28ac7bf7576306560fbe1508b5d62eaa2b99dd97145aed65b0b6b8cfa37fbc9dc34a4d020243628f7747ea5b0fa85c936b44918aeac077a8f6b392a88eef88f0fb960ee0a4e0ff9a68182c67f5f2fcc7c45cf054735f1691380fb3f8ff6ce65db1313781a20cc5ca475eaad2401ef343c90888ff0297641dd82dd35aa1b25475d4c48e4263a34ffb9c2595555f4e795e9c2e8c74660af84e6e8f669256b40f9f8721f50875ad014880f325a03964cfd99b6225982bf96eb51160470d04ae65f51c9c036333f1440b06e7d3da0a96a65472e68fae3c94d411d2df3d047accadb6a2b237b15a6f6da859fb8083f32ea2283c95541fb82e139ce43c07febdba8637411969c264b124a67cecc0474f927fe8224c2d5bcc1b28a93ac0d6c251341a3d53572a1dfeeccc4a69c483bac847f27a0d67ebaaeaad3db0a3fa1ce6374713c80120a645ac77d157e7f9dfd16a1c27870094a4574e81c6aaadc196e31c5ec494eb452d45ecc9d34e6f7bfda3414acea42c04026266b269a6f17ae0926f8af06910edf73162d99e9502fd81064d5bd318a5567a2b10389d3eb69ed907eb6edbc71d8106b3ddeb9eb67c147bc0b77d3b24bed39f9f384b7a9b2ca607f23e0fd49a791b11f3c83c7da97c9092704b3255a5f73420e461446dd44917a95d45b54702b1547791f2834eaab4902ed2cca159b78c391c141c657e1ad70a84bca15a31eb4c052d9eab2f5ff0f336d1fd58ba903b0a5eba9ff03e90845319258830f6362ca0e0d68eb2118c9ac8dabd3f8666bea29d8d501a58758406c727189db3cb418f343532ce1604e486d5593e91e7b6b7cecdfea00514a72f3bf23e1578c73c405471735e9da9c697b56a8eea6f239586a19c7090939e4abf0ac9d52126241cf6ab2a3c230886cfac5f0479893a2201c2e427b2290fc11a08190f057078d4bbbde9e246f20148c753facf197250a51cc3b133d369f2587fba9fac4c84b0cc802bbb95e62ddc0554f22ea4e12527a97820d2fced949cf6f7d051004456c562f18cb7e41b550648fc8715fc212c1f51b2764c4b285a12f8a6091c85353bb6ea1422b1c3b307c9a5fbec6c749c07413b37ff96d7a28aa67622f51b0dcd730ed68738b3810d6fb4c157762b1a6d403ba5d7095ef8086d0043920b4b68b836aa8582809d1767e2d6ac6e92db5aae7c32dde51ec476170c424ceacffce30570034dc10185af1d6ed7446bab546ce4be2cc0ca6a570df373383fbf843847403ba9e87c29a0667e74296be61a12802eb12ea5a4f502bf5b3310415a93ec7efc0a277b061454626d6d4174cd5273cdbbc67eb74f53a601f535370f605d601bb8e106813b65a7a2cb3a058e261e485c3fb47c217c7c50f7fd94039cdabd943bb10a08286a2182fb3a08168c694b461b1c58b2537acbc2643d6f4e8026cc5fb073361e3d8062abb9eb9c22541336df217122a5254375742e30230d60892a05130c0c789875b3ea182e054fe415e9769f45a55a06b807fdaa382c73eea2aac55e9e128ea7282a5b06ea867c3d446313910182baa8671d89c9f6364e93f64427f88e6e297ef25ca15306040974086cca602a7942f6105493afe943b32c72ad2a87899e10e23a3f7d60f41f7588f38ab6122ac5dcb154bca32add1e340129fe0fca8a022676b6fbdffc6a20ebb43c7b1938215b14af31c1e5c671754bd2f0700588837d87a1404aa53400f5745f0bf15d03cbc46bd56e20bdd3d16f78252ce53e5e2ba339155ce81170842585665747f587abe8d0a97c72041bc4d93b4ed7304e5f64dcdcd960be4311b95f6c1a44378548f156a6d4770ce2d04f7d56b6edf8b007adae472212e9d2029d88cb617683b953164c1ae31126bcd3d9dd7668579824a30b8a431510f035d4d65151224c83ef63c5b9bf494fd762e401c95c490f4ac3687bd09f6b2b50bdc7938238edaafa729610f46c12c2d0020090780e3a955c00a74f76e9e991e5d5ae4828af7b124ea4c4817639e77251fe5765ae584e674b1ae12f7e83147a69c61c659ac6abe1a520d3bc6509674e147cd7b965bd7eba2a11366c1531301dd019ad87bc51d39ce7154c3f94629c9abc174fbbb6aba6b0098fa1ac8d1139044a87da492cc7f7e381fb0369824568bf3af57f89ae743c4c91abd5916bd25863c47b7f21d0617117cfc115c00eca01ec8b6f6028cabb5f715adfbab26e89042a500b24358c603f1e4a1c4e4e20598c8c3eeffea8bd0f8d62c891ba7740b8bf7e4476764ab973ce66b0c32be241f48f27a95bca3d1527ce142d8878c0bcd6442119f1cc7b3b6057cc9c125defb2b747a39f0c7194ddc5f03890adc82c6e913333a0adf1a9d0d283aec91c746b2af76137bb740661b22e159ec59ffe7b667ae719be7062de8a06223060dd3b554500835a07a16ce4a478e5380c88e28cc0ad2774a085d6c884a6433322004663a221d1d861e4d1c84e546feb62342d660dd0d4c4597b08aa9140850dedd9461e8e49f6c5d6072ed137e26a88de4ceb5e35e034c8c3e30b91b578c4d47e87c690452385a7c1453c21f2d011680d6ef5f37ca91b1791f2e9cd0563a4a6c8531ac784268cd741c326e47b71e47f30b0c0412209442c6fd84dc7165428ee30d5246c17c8ffaf2efe1f9a0df552bb3ae95abcce6cecb784c4e81cac7715c9d4ec3b2e8565b9b20899440f42bb95798d4a70408c8c5bedb918317eb03402b5ba35e5163a28e9985feb71115a1003ef1069394228d14d70618a649ed120b08fdb4fa9649de556c2c2c4941e232806fef7ad0151d0c9fa0c6074927550a21ea10cdb44401ac400211d98ddebe7ff5617c334227183a9c2a5dda03fb4c4fc4b21a05aeb038ffa028cd11d380681968063c223f82fac6399199a7fb072fa41d0db12ee99dc9f1723eb4b61a0867eecb1d4bc3d589536ea2aeb548a242fca8d912e2a8443f06279a806df39f4755109e3513a72e8b0d1c22d8b76d426bec434d0bdc284958f9eeff0c45d1b9136eb28a1b789dbb3aab5550fad0a68c27b98845709283673f1462dbbbae324830b6e4db38d8f916c50b1d697630dc6af4298e26b025ef88c56b2caa806c5c8256609f8ace0e07f18e35a36dabc53a006033628d278deb58946b28a54c1b90e61e12781169c27fc6348ca74b074c814e868e73218b702d6784776ad663c3dbb777ceebff3724f6e95077703e30ffc479c22cf0f297fe3c5bbfe285a99741dceb72f62ed926c541edbf1dcf674ceebb011d6357fe29a034d6e456f92e99c5de59d66aa319234ab2023c404c7f3c5b82617866fd2be8da834051404b9feb5bf95b81c8caaf552673f41c6206170b61eb69cfc8453d6cb7360734486c2621f17257ea4cb72b0552d8067eaa35ace7cf0160d8874191b8c5deae470e5f33fded98e5c017ec817ed36aa7545ef1e5739517303fb9628b87136b9e602df81860716582e1421d27a3fea94285a4bcec9e841a8d9513cf7d181b8fa71c032aebc82e58be3b24da3df573ab31024d4e0cddf8c870514844615218af1a4dab2873189b77c6eefefb4faf83821b2e19763b51ceb03709a4b94c1a715ba7c0655fb8b5f0eeffbc0edf59a39290c64cdb4339add5d0dfee39441acab5d82162cd8c2b44aa2f7f1d61cd056ea1dd12e2a14edceb1cc2cb0a01ba49304abdf02a3f0ef091a2d55119a12c46c30b9940efe6565a360746216793668c042e961d8d18e211ef190a766b6fbbd3e34f28bf5ac457b427d82e2e06a2ca7ef202877b032c528c0b072fccf9d47814003c17f11a6fb605dee1223bb9326a424b46c20e2941ee3e5fb0229f0d2adb1d7cd5fed0d1ef517f13f14aa8fc0a5eada639b41ed11ece506ec7f2cdc1f01bb5043b6d848e1c6d4ab90263666e115017eef34dd2e9a5f2220e6eeaf6e0e036c85fabbfa1cd7f2b0dfd20e2ffad06ff38f5e18905e9a540cf95316aa69e4ead59ce9268f19647b053ea9d8c70d184aff7a2991af53d80f6bd9c7d9ee5a808a2ff07eb06d4a387cd4f376b08c24fb0b78c2e2494e3d095ced0ed552a423eed35e66c10f74cf2659d132cbfe09538b4c4b6085bc56c1318a5500a9efbe89defe6b4618700cbbba96f5884adf51323f104b44adbe39ba9974028d472aa8962a9a47fa410cd7157537c11676105838f61347d1ae518ac7a431f110bd28860026de997fd5c626b56169df06396ea86958ed4fa30c56ee7656c88d98ad541355e1c485aca0334ac833f0f37784ea596aeefa58568518423fc3de9fd6fad2b7e8e1efd1bc89278ab3ccb122013653467dca6dc9ef4a5e43b3e0f4618b5f745aa18e9f162e4e4ef62d14c27fc7f443725f9ae00d15f91c11a3860f7219471fda33c12adc0447ded50662ee53c57a631c2312f9095de63692cae441024a4cef2414376b623e783cd30b5a63308f6dce5c6991303099a52ca5a4d2e0f2c46cea1063b9466d80b408bb873685e0e77961788952492473c227fbcf777fe9173a4e9366c272d256848588ff12aad3fff64ca50e45d5053d4c60227cc5f4d672792d6e8d7379da051484b83937b820f44e704fa4efaf2a023d4e1d679b82633203e1c9679cae0ffaf3509203b6b4e248937c0868caee391828de0b7f7091781eee4785310df7ebe6c2507b3a3731768cdb147a91dcdfeb0d77ed77f349e99a0c619513f2cc13315052d2b90abd9c8127910a0676f6dc736ca437c3b5af3142d8ce3f7f121ba186fbc56c62129ea81992b23f20dee7cf3e60e9630b9f2eb24abe2a6323262a7186528a288e241034121479328e684fa4176a27e7d873676f66ce466938e0737e166a776f230527ecbcbb825dc69f29d124e39b3b1f14b587b4dcb20c6d354f2c60b06901a5daac173192c0ba1cfa3dda8d5480688dd16e1355eb059287628aa8dcfd8fd0ec831905a91eda0643ba535c519e83a1471643c422ac1088f79b40d653c5d4aa22e0c447eeaa104021abe62ecea694560dae4e4d2027ccdd510a79e375a0c444bfcf05ae68c3efd6452921190a7fb9c695b60c6104bc61bdfb08fe9af0039c5af9265695f1697cf5028b3d12f23a65dcebd13dfb3a9b81744490ba163b139ff8794f83decdb357decf40130c8050edf5750c8a4100f3630e9b3a88138c41352ee4cb4d1a15525354fb4ce377443beacc7b0a1d510af29a6a856f30a5253356cccc0e2ee9fd685e37acf04d003f572082ad8e53329caa832bc047c02f8c2cf841b6ae3b95034a41ee468c6b1fea845b25079ea0b72581e70d7b2ca25d8b4e2783696e7faae82428e2b531cf69457f189b390df400cd1dffb7fad403854a1235198c26f2e9673b2c6b9906fbe38642b7d21b6ed8d48c38dfd9df5a6630b5c83e6485691783363bda965d9eed71707407079d34cf4466e6520911d91a0af3f99ce1e9568052985cf16733976662539c65eb4671a2f9850bb9cd6bb81c19542c60c60a38f929dce2e48a364283b876201d91106305502e9e02cc73d2114f7c4ae475f793887a01c3f54f27baf09e5353128b11c4681da57a4c09071104446ce84bbbe4298dea19a8fcb28a17e1ab3954498c80b4959aeb2e9c2e442e4636e4eb141cd50f95dee9a020845d3856a028efd1034f2b8c06e8ebdae92c62abbecba908d1ed0cd0d4b5de5993563e28a77859e8a2e5f99dfd4bc64f7a4c9dd5fab8dbd865bc549ea04a21807b19af9cff45ef11599b5be4fc99ab4a5458bdf62babe710dfa7f8d07acf3b54508b8278cec39fc7d3500bca0f5357a51881014d5dc9ce1d55e2fd2625ef195c9d10c0997a5a9e5003fbd6cc681577c55333b91de98f761bcc4f5fef12a2548008c4d956344b1f59b15e02aa8d6ea55772e916d47a016b804be5c3fa8e9bd37d75cd80316db53468cd1b02c613bd4c85289357667bfb2a77060bddc0087192afc13cbadf4a76e725392b3c809bd9a4922cbfbcd5b494945a2ee68b31659a62a3d48a195111ac4868e7039f075cbe77275a566aee028e73fa007a4f56cccf5dfac577c4a84076e884a56ec18155c3dc8e57395504160e2cbd86d27763709d7084d181bfbe2765c9451d64bc7c10fabb8a1e326c542bcbb1903ccedb39c63d0355fd10ea173e939d2989c2d0c45c23562d6e59ace68a70132ae1d9ae499c328a964c28837565c4551e1480942ee989dc1c11ea57c2cbb528309d74b93e689cf42e3b1ed40cc14f3f38b1cad0972105b32bc0ffff0cd52e3b5bee5c24a0cdd852f81eebf22f0de6d9b80fea8bf9d19528a7d6f9719810cc5bd1d5765aa9e57e87c34621ec33d42976310943ec4b2c4a666233e12d8836373431c8eafbe91a365c4420cfd822e45fcc39ce0b11484807d58780c5822c307c0302a2540daed86602d82f0938d45a6bc4f019aba492861cefa1c247b412d49c9048190309673d1036719ba1211d9ab2aa11c72d9525f9046cae48804c5ee7b8d6a2ed82bb77c657a1af2476b08fd67c9b66c28eb6fafa076a5b29299559d2ba8716b19f661367af23556a11788e90bd448456c84be1f8990f5d1a3ae9615e7c632bfb78342a06f59ebaf622e38f393e6d24429e18dabc156dea0c86ad716cd58cd0d22f2517917b5c419344ed24855668b9fea9e23ae89dc2aa2e6d2d09167b3caf989098bd1fa49b057700ccae3d783f9619eea3534d23cdaef486d14017017d3dda2794af736d869c2f34b9a1e6833209ed0b28ea4aaa802fc3c6d26f6a082b1604abe694b151474cbb15fb5a7a2074e3fad35bdcc8e3d9f0521596d4309f3082a8ce82c858fb6f9c11526a369ccfa266165ce1d026a1d8be0aab1bd452530b9de3fa7ca8e22e58b672c4bca72b04a1c75ce317cadb7b29a083002a73570828c84aefd424b8160bfa5a564de306547a21454d1ff46869208335d1f499aaa400d926b98628e134d6f97c6fee5246a5c3f261f613d33c4d4f05df4aed6275c9cf2bffccb8689d49c173d145ab3274dba315cd0c98a5e36d09afb29fafc54b07fa9a61f2f010d77fcf945da7e737895c15f595b848177316c13ff6ae1c3980b929ada4eb81a6f54808b0a691f4c239d5b510e27245c56470ad39e7596ee402d0d1d8265ddf894c9052521cc17920e6d858836a27fbd3d8a55725a4075b5fa8e64e5f5a1621ecb0b6da8feacbe0125df55d8e3547c366a83c0bf681d8d0f3284d834cc09fedcb2b3231cb644b037fb018c11c2a6558bf67e99b6f74763fe070981c88eb7eb096e7e834a81cfb90570c478482b4e9770d14891a30d494ef260c3f51707c7ed300d7212b78da16ab956fb9e1357fe8bb89435db63f42957ff05e40dcb691cc2e6a079cf50bbcfb89c812b5dd172bd8ae02dbc2bd108da4a1c62681b17a0780b33543b1a013b0e3f2626b08c6035bd5ab442284111a8899fd4f8c58bfb629cdc7d3862a681658703e5f43baeab754416123e79fe5065e0b592c44cefbbbf94c742ad13482e95e594268cc3726b00874f1b0f1a7eb63182c77b5d9658b36b14eae2827c7ed2de5ec21b42dfd9885bc08cd98a667ef6fd5f16a59ec829a23973c8dcca04cad40bdbff90e1a5d3ff2b9d8302b2adf318cefb1e9d5d947a04ff321ac835848a3bc299f042e82515698356e1fd57aa9a51f0caf04d01fe1bee01c61dd369ff3c482233648224bff9524d6d33df8157a0ef9a7bc39cb55b538d6b4120965d209d3eb542a0f6a7d4b4f347735d74c471eb99ae2ebfc347d595ddfba0b98df35ce39f8215e0f3eb0ca3601f929808a90a43c9c255bc0d5fe3c3269cb8cee7ea7c675a697869bc4d4ac048753f7c3eeaed6085c82715905115224678baee9c39de99a0fa62f5ab3adec262ed32bef06b26c30190bd8ac68bab2619e976f4402db2888b63178608d438fcf51e4c9f3f7d2bf211b7c53499fe22e9567b81646c984a682d24a565cfa882071bf4c19e9d907c77db57e5b3f351ba6e602a87d03c8578e75d022243b14d50b3765cf920da0326c542b082c03ada40b172237ac14ea05fcf91e9abdf3bc7a9158234b41d839653ba8d2048cc457f822cebbda45124c7cf9c00e162d117f4d8d6e9190e89fe4f2b9750243bba4af66c24ac6c72f02f12c07348fc99f88e4e409ec94ad42db8112f84a241e77c3f4ba655712fd8c5f7b0cd1d5b7a45b5a2e5a490d1088202298163b4e6963cc2a3ce420c5a2c2dd6329c24ad7074fe2c176aafc1e3ddd48146c3d432d40de45c1c8e9a3ab376f42fbf2e7bc516b7c9a55e54f5f75be5677508bdc3402db1ae00f235227c17ab536cd239c8ed354d0a2dcba4f8f4f9fd7010493a6db5534f5441ec3a9a49cad89e682553ec00be925236d81db80ab060da24aa6d0cb7a22b9c50d3802ed15be8d3f2b6542b87dc752e4964d4998de3dcdc95c00479f03542d3e15b276fa36101282d85fef76096aa9d662de5b1edb568861daf33ff41ada7ae7761b37bd4089140f1acb13b71a1523df4acc2050dc379317d2b96c20ee2e4bd005b6bd615d079d19de0053eeeaac643baccc0accc147f85368c3f45bb8a7023517571c9f666c7c8f7066d63426ee5408b80a95a169505d49d93013220dd18eb56f25ed121f59a50329c64043bf2085759cba1fb65722163468cd90c648cd695e6207915730b5499e4ebb1b37fd779d90fc0ffa05bb0044763199a06601e25dd9b3e9084b733ff78e2910b788fe56d7e4be1c73a859ad0411938f1143e6857f1e249a37061d68cbea2f323af6bcd4b774aad346715aad414376dd22b68227f4b9f25da29038a5ab4b35007f37bd81c15118e3d082b50d53119786afa15a3153255bacd6af860bbf940906e1140ca8234001645c034a50267359309c55a5038d3c5fa222d40987dbf50913abed0841f29446750a566eeaadbfa7ea238f5d3831089170b6418d701004910d868d701b7f4f58c3d425bdb7fef4d347cdbc5b06e4d25b908d408d104224d97b6fb2a59452a69464bc06e106420724894d38992117f921b79603763396d7470cc6947689ff22840edd6a0f210d7cfaf3bb0c52ed55ed9259fa9166b6e369a9d31f494d46eedc2bca0b21fc3ba1635eb790c5ac08a4ef498f550ef5e8570ed53a99633d1a8d6c9aa3d12229c68edf4d22bd0fae81fdec6c48b6ebab4d0deb38314bd3afbdfc0e93764ac99fc998f5dcceb1ef71e5cba27d5dc6733b1bef6cfe6dba01f1b18fe9965c97ed5c97d26236d3e5b434f1b197dfd56418bb0ef131395d4ed8f215d8006dd664f04eabd29edf5bc75f204f66752e94f165a6c33564b623e5ce4e863d299e3e7e57f31d8c59fceea153fec9421f18e5679abc1af76ec72bb97865d4302b9d8b7109e48149b44bf41ec8e32fd0272b712a4b2ab7ee9cf427cfe93fa9d53219adcdbc5afc66cdd2c49f9a6466d6b9dc1c65f7f8f80b85f033f9f3f27736f36abf699f516d56ee419bc93af34732a318638c31f3c136480a4b8ca2849f9bddd3cbd7b905b8ef481641f74816432ec6449a1cd5eb25db5e7257c6452efe88e3df4adaf618e6a3d1c8a69da3a1f24d2fe7bb7c9fa393e9a76cd49f2c6ab6c9f44ee34fbf6dd776e2dcf4905bc7e3f6b3fd1897ddf6364d63fa1eb7b9ceefe831ac93cf45b7b3694da6e33beafa9a9e37cca6ad4d5fd95dd36e69e49bbe6d67e3b6db74906f327d73fe94ed66bb1c246b3cc8f9dcb73b9bee98a86a364edf96a6dff4a453eddf4cbe83973b1bdf341bf269a6ed5893739ad80edeedb17ed476ba3f2ee6dc6bbfcd45f94c9b0edb30fffa8d931fe353ca9fff206f14eb6ab2c953beffb4ddf4c1353af97734b29db4dde8d9b28ddfcdd2581e75cfb6f12b5ffee4ac8afee8dbdf5f209cdf35355907ef68dbb1c14fb3d98e351eb2cbcfb23ddcacb6e2777eb3ed328073e7639647ffa02633bae2a5f2d24e0357fe06ae7c29ffd21cb03bfbeac13812b5842c7c8a96dc2417c67d47b4883e3009efe91f9675b8c6bbf16374bc83bd3fc36bd3ddb4367de773d4e2e70ae0be235af45c4c66acd960089fbf6cfeb27d6fdceb15dad564d9a576646bb20bbfabc9a06b3668e463b6e3182a4b6a4de6836b5c96663e7cf7cb43bc32eeb00fb6813f6be80419e974861eef7c520e4927c61184a387238841e897c34c2ba294b9371a5d1763178d5042d873f93b87b9fee959462f1963942d8830ca8f178d50621af52b492d528b94d32fd3b2679a26b3c4f5f49a17d534190c8e4654464aa3bb53888db4a22a5d687425b7c4f5d329fd4b93a17123e29ad7c5dc75a98cccd14b999b97729323b1989357724bf8478aa4be25fe822df1d6edaf3caf069e337c2147e0a3440742081fdba1cb44a624f51dc122e8a61a04d893d112bdb0e9558c9fe14073e2099ec1fb62a4e38e381befa27eab18ebf449f70c9ecbe8e39f6845c0e9637ac5e4e33f93ef7a858b7c6af794f4103719c7d15e618f01eca30d1b0cf42adef42a6e231d7f7927d68e84e013031182399b08d32b13c7d2d2abf818186287773328aa535aabb34e85dddd3a153ef6de0d2e98e6e229dac3b44b248d4630fe1d4b8b85e95551acdbc8f20fc74560f7df2ef29528d35ce42f71b35866b1778b3ddb8e455b0036ca8868322817b31ca457f19f9603ca75cb8cf1f38d81f42a7e092a74aded255451ee3b8205910b71b8b005cab83005c63fc07d05b8af06ad53b9ef01003290cd0229ca2c177d110b8c9b9aa8ddfbb9b143bf23582871e3eb88ef875911d52f08888f6220fe422b9da96a8b807092a8f58038ec275ec09e8c8e427805e12fd7c36725ef067ef8ac85f7d23dfc850b9b880b3b041736111ba383437a3c15bbc844af1c0e893dbee23cfc8dd0a7933e439c352512b5833ed2a721f4814a00e18153e014a924a8feef1941c1c714952ffda2314629b3f854be94111a8135057c341ad9eefad7fd75c137a5f5c8d9c4fbde6b2d30a614c21863b4d0a9cf688132deca7bfadebb9ebe17f9d13e5f81d51d1261517e37e79cb2abc9a0f580bbc7f7de83f0bd07df839c09de7b0fbef7de7bf0bdf7de7bef3df81e8431079b01c3485a4b6b692dada56da161416b655f684a6c8185d7ab27e1bf7b83c3c220e42294e9215a165a4b53426b694a645f645f6845d9175a165a11db1338c1094ec8ae10238cf1bd54139ad0842d60cc1c238430527ed90f4e428d1913baf7de93344229af18e57cefbdf84388be36cd26e01a42f0b589d8755d578c16c2499de5d684072184451fb7ac0ee1bd1763ac813a32c608a1bfd2bf4a218430c6d8a54ab54d25c64e995b51f9a14993791f21845a768ad155ba78427c42c4a8c4b226c15a6b94252f9512c00d3f4a6b8aff4877cbeecdb29396c5cd1fc6e8ee5dc55030144de6c5f85e15a5ecc4543aa1321413d4094a96d26452190a06237b314608638c30b40c86bf5b3725b901efc8164b5cefde0206b7bb572b3a25a7fa05b71f15b9149b4412b1077f7178192d7d75dbff11852c4e80840a44c861350b6e7fb51db5352c77d52bb642c66a46fbd8e28816c11648a06a95d147b628c1650984fd6b17c7febbebe96393d29fd4d2eb3bffd1e8aff7318e4de73aecdfe8ba14fb1127319bf56ac63bffe28af88b8e454a5ff7758dae6b74494ae5a4f4a76b32944a3929a553363fdf3a5e38e2a944119f5f54fe15f6e47bf21ad9ee1a8db0f7eee8d91df33eec7afa9099601be0536efea4d7755186ceed23864444315d0411918f1a940fa21f47802c2104b8b9e07bd5cda5527af51a658b4145b9fdef3a0a8459af1a087b32beb97e7ebdd9b7f86f45655a8ca8f051f735e73f9ebff8f0aeba14972686445023a3691411c5900d307ec8c96fc9bd20b05b72af05dac4396daf4c50fd9959f13108656cf85da368faae8c5ef5ffa6939ac1d2f26e4a5c5d4ba7a8abd50d6ab21fb8742ba05be342d77f6549119b6b46ab5771075dcd23024291e844923804843be69ddf6347b6e46172eb8086160d2d1a5a2b63a0a1756918b2e2c5ca92953154e112ba84ae2a2ea13bd2b9947055c13b3b3b3e762e17d1f1d1dddd3cb7bb8bc0828970134ce4721133c14d683c1a8fc6a315a1f15ced47dbd18ac022dbc97676b26ce76645329d97f9c06286ce0c9d193a333ec03644f9908b3374ee0c22337266b4667ca00afec37fd0f01fd78db0d0b80263bee0ec71258c7e052bee00ee3b5205255a0ede9caa9f896effb831edf0658cfb601b283716d37dfad3b7019f5a9ceb8e232d0d9cc81cc59b939952fa36dea5967770eee4baf98f732367e3175af6e14018f6b2d309aa9c4ef4742a3d0bd730f9d29b7c7c1a5cc38462258e7e89a3a512a5a5a7316ec2a9a89c4a4f836bbc5b7ad6644aa7120ba5414bf474a2416987c3a5ae0365aa4f839ee8a39ca45c46205009f7e924f8c69e2b59a2f51f2394e78f271fbf1b7d94291f553160d8aef4a7ef6a8ad5a1b2312c0cfb52d7eb48d9ef67311ca809d7997cfcf737d1373dca7629fa27ce26de93c95eafd9f43d7d8742ad76b234257bba5aae3cb136dd8d68d0e01a271d4e6c626dfa62d99768649106db10e324cdbfef1a4ded33ed5f74a0ec8fc996ec50ea66cfdc7c1d7ec9b8f2754829252f407b99fd831ce5b2ca92babea271e2a724625c02b9e04a3ac98df14a2ba56522269a2fa9b4d134fa877d499a4c26abbd69c524ad9b6c973dfc371a914a9c4a1715b3367e47a487b6441fde91a521d9d1fbd2b54373fd6834db763897a5a1d49aa4644ec61823954f29757901d48d9686fee86f887ce0fc9c724ed33391c9fa60661f44edc2d30733d1641d1f443ca70f78a58ff9a3bfaef7c76c87bab4fa8a937ca8bfd9ead7d315965c975d4a69579ffe131111f920f2116b105c7a16a780406ea4255f5ae4caa7d8531bb505f08dccb6ab6feade8fbe6aef1b655a7a7afde9f4f4df753dbf8953e9a2565b935d13b41dcbc87699651b34fcf09a2c4db526feadfe663b16ccdaf4adf2b989fa261d4cf3646dfa966c87532d0d7fbc7ed198a6111bc9c99199d9426ec7fb22a39945448a4a524a66826b989e76367d3a9978908f514e522a257d19e326ae546a8252229009d944d1a5dc8331c2d8726913314a8b4d6ef417f76e6d1759df5f48ef1ce925b73da671a4afdc5535fa92a3924a29997eadff6aa5cfdc8ef7c51231cd9a0dfa1b2471f32b773dc69974ed5993e9aa67931bfdfc2a537bc5931b71d7d3a73672449a903272a3688a02db385031148c31c60919c2676e87cf0b6437daec8fa88ec5ec065e31b2434d866164f115d77818d9f8d8e4628c5326c6b8e43a9c391febc0e71dc8dcb3109b198c96c55fa87d9681d1be1f51bddb6f6e7cc859c93ed806f830c623ce1df5b01bf11f17aaba1418717465df8e79c6fd4bce1403464a3f868de69c7394c5388a3f9ae1794e151a5c237b9e32a8c860bbbe934a4c4a1d99ca4f154b335f85716e9cc5dde776fd364da33259b2700def58e5fd69700dfea6df5d56fbf7a44b972ffd25b536adf2f2bbcbfeb8ed503a948ec395b66b159577cdda74cb658a7da5c136f00c56c5aab447fdf31316f61fdec9f0edacf2244631393d0dae21bf3beeed0cce32e8801463f99ced5a9e7bbd9a81860c9a8c6373cea96269b00dcdd29cc2759d7aa88a517a18b64ba56c8cafc02fa1d82e9532b128fb7ce5644dbe914a3abc6d2571cf57304abd69b4b4c4683b9b18af166d628f5eb6e7302d0db6c13b9b761deedac7581ab1e57636b1e58ea0a643d3346d2eb1691a34a0ffa0114733750489995f4abbb49452be941c3b8b367dd9d2f0670f69c38a4a5d8f3de6ae7f23089fc2a71472cfcdbec7850fa39467c73c4d314b333fab0d61d75dd3f9d97735990e19db0e721dbcf2470de01cf821eb5809a3d4341ba48796067ef6194956d8411ba41ff5c8c20fa6a7ff43357de93721b09ff4f54d9ce94bff43b5aa7ed43f16e94b6fb2aa36fd0ff54fff83e951f6e606063f92b458a63f591e424c5fed8d101cf34df626fefc1bd9ab2ed9e72b95dba29c1487207a7c747894e888811982f9e11e5492807ea2505f07ea2c2215b9fca422ede242bd622ba250bbd47d56f5e0140c821ddc9e41eda25a80dfcb3f85862e1371ae6405da9667519d4b2ecf22d28f0bc94967f8ef6a4a86ef49e19ef7f35cfc1938f9327027afc2913e853bbd8a3341fd738f85ddf0e79ed210eae8b1df822acfe0bda4b8a75d5cf05eb2772770709d8138c807665d8fdd9869cb3d303ea619c02fd27212ed04979355c03ddc93d2fecab05724276c94cf00a76090be9ff624d1b3495139c53d56ca5f585410fe4481f06f4e2c24d91cbee22fed0d132e085ff1477143f88affe9a259c5806058369619923f3d42edf83beed9d9fe0736e33772f8cb7c7fff21fc057b579231eb86bf3c5690d050919216c93e16dcc12748887f18e8fa1026c23d33377a75f585d3d41484417803c23ff90ee6fda870f453b8eb555cfd189ce96170d8a7b8d1a370da9f70d93f0d7502218410b265f941f543faf37fb85e5a1ef2af9ff6ba28fdc782cc3d0a21c3d6664e2eca975540afc087d6b245d1e010c2ada6562c30ef0765f219e01b4f6c4e4e7dfa39a6bfa2899596d2faf432fd85e2dec52e4ed59453b53d3d0e0b33519998a03e46014317be9c0c4152849015774238c4082bdc2c08090f076ef7b870a109aa53edf290182174e1c9de947e7e5b1cf22f7b437ac983f4f42bc743080e527dfa3c4a2452b5cf579ec43d16c6d96361dc636d8f359393a37d0e16e18d4cc3380a872084dd63c369b8c9a0f97d806eccf84b0af7b068cf3a2a5cfc146ebe8adb3e0647fa140c0d05857b2c8da7e786af385b18965203cdf972cee72181261010d00cca9c7607201a3c875783f769ca9476a8de877742b13939dbc7cf216d5254fe13f75852568b23be9c2f5fda1b92891302597ad5d2a3cb521ff38c856bb44ed45433f27d782c6955fd835b7105137c81c90c52f9f471c8a7dbcb6f8bc374437ad3e3b0a2e92b176f6b3b74e05b7a1f1e2b7e6b3331857f7ccaa4f6a0f6ed52dd83fcf83f987e3e2bc1a9dace3c56498bca40d8e7e43bf699c979be5252cda03e7edb696faaafa09e3e0eab72f0527f898f42fd0967c265bdea61cefa37a7477db53862b4b087f8f27f882fe7f338d9e72bd1fe30df6479d06763daaf666774942c192a12ba0134c47b344ef7c0705ad6211a45f5dfe1065480db182328b9fd949f60221cc56d46c2ed26c06d8a0adf816817fa8d53733d26e9b72623c47cfa98742961075a4a98903032112fd2cf45fc011f36c285db2d749bb768e2070b4d345016825ce88cc9dee4c7b86cf740f4aa26a54585b62a913e97fd9b1f8820fc855945e08ef785cb4cc4650ec1e5572423447cf840a9223154bca80fe8ba7dd4a7a5f0dd9cb3a3b4dde468abfe7df7e9e8a87cfed7edaa5755541605b48b3f118bf373243e46d01fc41f6bd9a6a89d44cc0d7f91c157ba9af25d4ae5bb8ff1dd4af51d4b07f3dd4f7c1938f92adcc9a770a88fc1a9a08a53b1529c0ac2e054aca7691fd333708f2503f7582adc63a5708fa5e21e2b06f75830b8c74a718f85a59ce7afb785616161ed9feafd107f52cb83befc495f5ad59b8f557a427d1d315cb803246ef77e6652905fe4bfef3296d13e7681f6d1604ad1597a37662382b603bea6a9faff69289c101f1e2b657372e29f7c8e7cd4639ca1708f856d52544dd576665a55ff7c1cd6bb38a855b555f5107f3e8ef8d3de0831f99b136b6271c81b94c561993821f11fab722a48e25470e372b2cf197d0e7df939d8e75c9f339fa571efc2941bbee25c8b0e05c57ceafda446381c71b807c5699a0d79af993529c8560a887882044fa0207aa0025cf820073a28c1149c80c2054f80e0899d931f4c1081144ea4200a413e50e01770122609600ba86002841042cc8b2b9899afbf2e1d2eaee0819f287e8c20a3c91650c42088b0051e58d193c516a6e02dd86208d97d47b668e262f71dd9a2063eba4cb763dc6e5ee97faf86c7eff5eb870369e6b03bf63fd8b2b9bdbdbddb8790f0fadf6b8e8ba0a85dea3227b9dcd1b0526150221beceeeece291f72251cc054fc323a968cdf7b0f8893fb4cf235c947d90ddb0584dbd9cbdf5927ea15cb707d50b9db0160453579c356bfff75b067b88d52faaed6279148241289f44fe357033f89f321edbafc590946df9129c6e567a91c8b7a07be67379640e3f9717f3f9a87484abb340a2e211c70cb619320db19f2026911444c14a4b3b92ecf8cd60c9d0e40589399203a13813508e26e55baa8424f83806ee42d05b583b7cba8fcc8915f8bbeb2a457ed435c8f34b47a15774c1ce8d007b13513a4c34410e5d6413bec6666d8318b1981c3957b10b79f631ad6a46ef734024624a29c0922523bd609520297c829bf10433120d06b262806b5631dec5d5b87135b2a55604f468411c612aa5f54bb38aa5dbad76edb0a57b40fb0289c18c1c006981352e8415683273020b40fb221a03841834ec929e94b18e3d54da8f006f0be2018485989acd042176c104208b72c84dcee57d11411463806122290b8fd19929691db0f4393e9540a09263a4ae014155f68e1f6a3d4e08b242e7cf82729f6e99acac1065578210b3e8e104317acee7d89dbad30d8ddddddcd25a8ef42134dc6b5b8308a30e800006110baf0533ec88548f0420c06b8f0595a60c4d0c4858f434c08a87847c660c585bf43bb68327004821d9c08008622b7df14a476758911ab0b9f664b7870e1854bc670e1a7b44bcb85fff065acbe90830b7f06fc82186e022efc922603619e167460fc80c21852df85b70b2a70b8fd5548173c48494128a1078ca0c938145ee8c2edd77ee53a80187b4106a914349971c54411ace006bb5ff6c68aa9ed689596056fc4c8442fb46e07e0f64f4da62b075210d48521b73fca256a576314d08522ae852610c2874a11800ba9545751eed08f16471811c4470d5e20830991f818c113ba82a563d9d161e9586e4baff861f876cce2303154bc602ec8e08654bdd85691aa35455b3b9175842173c708e8233b2e903081b38a002472618315741091a09f20a05e7917a6b820c211f04712f50817581851d42bcf084a7ae5dd8ed625a8540a920f083926f4c415bcf8c1086650b3fb8e24e9b9dd6341922871832437c8742abdef48122446ea76df912446187d51e57d479258f1823abaef48922b16f08120d47d47b0f002241fe88015b02703875e5149e90e41fc078912daa54b3111b76f38a5b57a4baf7a09689dad10e4c0b5022d1ab2407e2b7ff694afbc2a1972f43dc81d89b6a0e43e243b4566dc77640b462e4662953fbcfe2aef686a553f75c1d097fa5ed887e5bd786be6bdf0cf8db7fce53db743f48a67b8dcb2e2766f49bb8eb77a6581165cf83998aeb8b0ffdd1c3980c008126affeb098df40a7ffc429dd45bde7a37f013af06ee874a1806437c440b565cfe16d06556f7ab96cb82dede32a203c433450f127c9200848a214a20c2c5e3c265eeb8e316b4e0ddd0cf0e839deb3f526ee72d258278ab889129627095b89d5bd1add5edbcd5798b7d18880f90219c8222f9917d0891d60fb786682d192203ef064fa2aa667e567e5433f1e7d5d0721de7e9f156ebc781822e336ce95c6620975ffef80abfed9ce7328e1cfc3f58f00fd601075454f5a17f5aadab82ff62402e95d2ab540fef0647a2aa5ec6efd02eaad50c6e154b8b02da45058343dbae7aeb3afc711978b0f79c5222ba70dd629a0de6276c55bca220da85ad8aee782f3bbc95fed4900aa4bbbb9fc0c37b49c1acee7b265c87e9afe9f9018f8d15b7ff75c793c4ed7f53c6ee4df1887680c1ed17dc4ec67df639e03de1f6f56e1062017caf5783ab7ef0c73e65803deeeeae9101dfabc121a352290e3519523f46225151fb796cf1c748b285a5571dcbfb793fb51eae6edba5dcb74151bbcafcddfccd1b141b145714341dbcc7457404b93c240ec5cb0f044fbff08f9f1a252effb8fcbcb8fcb11fe4de0d62e4be7e43ed2e85a79a9132b4a445ed7f5647af80e815f7f773eb75da055a869052cb3adc62eee7d6fb08d906d12bd6d12b6e6ee574f3c48e3c95e945e28303fc727c70f93d9eeaf761ee9a4cd42a4fd5747840525cfabc3d7ced33bead71292337026ddda2764f284704a015193b15efa5ae663c29ffcd39bba7b69313f294990d57305d0b7f2311c10a6e97722bd46c3b40a16474c7afa3a52840757df641083726d487cfbeba5551df3d82a0776016202c3e294230846208a108a584de4f0a275fc5c58fc1d187c1cdcb84c39ec507080c0b4c8e991b4240da4d09274a160a43faf893f4716ba1d4a784522d2464d2342270430bf90372089d4c5192b64a7af81aea336032b13939f465b7c0db6de21e8b512429e9cb78e284c0d7b8d347cef4a509f8e7785fd082e6f24f8f43fec9646f48af9ad92ce9b5e8e0e969e9e48061e9150b0ff790922405f408f48a4936a4e79c768121942328f52c52e7e44d9cc9d32aa7aa63dac43d56cd112434946348670892c5808e9298a3a4e3b797dbf3306d5eb91bbef2862aca1621c02f9be59d2b9e161c021d7f9e82f97942a03ef5aced207dca3e6d07caaa5ac8c9eef0e1b172724e3e7e8ec9979e64b71702bfbea358491f477cfa28a577fb60ea16549904af53334039ca2f897530cf6a0faa5f2109bc170ec15bf1f78fc0bba1dfdddf17d759e7d5e04f91d4f8a57faf86d39bbe3eca35d5ccf63e3cd6666f84e030f9ed6fe49ffc666fb63779d50cb53742502c8ed2cfbf39b12af8f4da1b135bfa98469dea6fcfc3447ab97dc9f220d96753787e808610f101d2a3f3d3239ca6252afc700ae32f0c43a79532f96ef596c487c1d14f71f35138f926272813eeb150dc6369eece3c30546e13068583431837000c0c899a3613cae6e4c854ca7bdb4cdbe388bfcded377b234b42269722e3fabf544ad543fced7fa06ffa611ada608a7a785eaf60af5a9bc939bde95b53f5b06da5bf39fdf6258b83f4d2de989e44a29c4952cbc314a364a82848080806e682da901f14294ad3a99670f873917661a9bcbf219837340463e80d696fe8fdc8c0c93f811123b53d9606036488ebc831836dd474aa946230303191c77c2cee57ff86521fd351dec02fd10221a190c227a0e3d5e028529414e6fd00056d2824f9279f13df848442a53c313d8d4f7a92bd31b13c4c382c1ea6277d89e3210487c9aa9ef43c4e369fcfa8146ef66439eb100d0000000000e314000028100c078442d17030cb533d133f14000c88943e785a9a08b328486114838c418420620c21c0004360680a46ab200058a94c6615efff580384dabe2369e1b2f1f9793833fc1ce482b9fd9fbf693cae090b8e2bdcca7b8da570da1cc8910c942d6b96a3c8ebf3f12e1b9756310770a95f49881fbd48f4de0fbea466f076015ff961e44a74f62a3b6ff82abf5d6316edec222f6921385655e72653e354d987a4e85127e7c064a2519e33eaf90a97d795e6099861ac23dc964b4b6e63bb269c1d104f9aed8bc7b104bfe4d92c82638cdfa9515285cb9a266c27e170af4fd73f6e765e10334c2eddf90b2b0c9758f992b80c0f40d5fef28acd44531b79e52cff7ebf3805600c2b307405b21afb09657e31f157b5683589bc2f285ad043192a7c3f6154f2120aa240945cd06c14831a153b5594b56bf01c79a3fad2610a45621f78f3d8c5d71d6312eaae31a9e3c09901011a88b3f0dbef8cc0491d546a95cddeca5b2a42192c49fabcc42c65788a205785411ea7b4a8e6c02556bbc850e093980dc7a4a38515eaed460588be19a819aa3d108f4bc7456cbcb5551a6569505d3979d4849a0dd048fb193f37a33f9d549f8841ac4439f2123ea2a704a642b2ce180b8ace6874db99981e220691210145fc53efa76ea1dbc5ab0b4577bd1686d147ec4f70bd8c11e5223dde268d7e0fb2b77f44fa064794b75347b423ff3c431cb4cd058d3101d4d21cae95f562d8a8cfc4634266a70b91c240b9b838f2f9c8fbc839b2518da640e7ba2d28533685f2d072380b8be37b26e54a6957234d40aa1d156519e798d050b6d883f8c745ba3e8e94e51ef6c42ec1d952900cf2dfd53c684c399231fa60269bc86cd3581da3d568ceccaef62ad608530f98829d35bd7593699ee7cd9639ae74e9619536f2e16dcea9a86e791bb06be03032e82a28e07ead6b58190fc6f3efbc1b5cae9d654bf8c6c3900ca60c32d8df4c2ca889676abe67f81222b3765d42c7aa686f93a80130f2f34eba06fcc850a876cda36322386bc7a4e6d6e22c1f65cdee4addad071a6f9c7a4c7f7c07c37caf795693a53841a842a1be57dc8b82a7f3c45f3ad95e3e02b77cd4f842e87bb0abf1c44b61b240cd563942868183dc3b84983d2f69e6dc5a5602b9ba6ac245efce4c722717f64c6e96de12fa4897258dbd6c14bc1a1f3b52446d0f374b2d7ce79d5bb66f97ce1b1087847a1f1bd01598de42fc3dfd9b0dff75ac7552a252c2865cbe59d443625ffc0de7c0c515c980293cc93c3bdc3d9c11bf3caf71ba131665eb72a40a18bfa9fe1cddb56306843a493fd6d7a86f202b58dc0b31dca21e4f6561e06b3f5152d364ca4ad80248af4336af98594cdf8b026082e888f2574755f922a767926f86271011d129ad52d84833aa453752e8edcbc25a2b4924c75524bec891ffb18a2ff7c0da88e2c60c8bf7415f96d4bb8f73ba09f6b0c7405fc7d5de49223bad30c8739cd8cb4438ac7aba1f421cf6db29edc8c211cb88e33741af8ed9941652637b59414439907dadb17b5e7621c7ab276738f7e4e00d5912e9397056adcbe7f3bfc905ef365a0c5fbd4deb640c25a8875babfc266867c9dc776a3ecb540ee0b3027250ccfc59af037f7a86534c0e1339ebf0d2a3e2466f599397ac30488d1f49b17b3018ba7c1f5dce32222f21997e6703d56a80bce48ca3970c97f15ae3f337dabe0ce630804dfbb6234a1d900725ae99c77349c7cc8a0295c142dbbbfc6877d3ec0a1eba25831fa03a202ab3cfbbd4c13dcbec270d0410b02601b80d9130084ed5c5ebc8882ea0e211e760f05d3a2496e8ad7ccb2f6315280efb00b2d3113288ab5f8b5f3deb7205434fd05d834bcfea3062f41baed06acbbb747aced3fc8aaae3116e75699800a0a4080cf3bb642045d4c48a6ad77eb50c09f93e19249c086a187c4b059d0734f92f13a3bd65f8965cdc902e34ca716e7ed19352b2ad0cd1ff23756ea52be58cf51734aa1d7c005575f0be275497bd04163032244fc2e6697c3f438551455067d01843e1ba5d3cd6aaa5e002aa3ebf57ec65334c89c34cfc2f9e86b96dc0d3c0e0c41f365fce4962e28f436f1b7dd1d70ec1b8e157c79198594631807fc5b142d983d7ea8bda2e927c7e8d74bd402052d7eed0b1fd7824e026c30e49506f5dc217e5ce4a424326cfa7af2694e20c0e694e04102e8b49de14f947e7823a5de895084e589fcf50ba02a7786a69b843104a1a10ec4a2724d2fae2a41042ff493f539b2c0743889d4b5ddf8823ece20379c7c31ccd3a5e4683091c03889560195d9d92c68c704a426675ad9fdbdcc583fdab534c3455c5ada471d3ca8f465315d1b39e653679d6e3089bd62355348161d1a2387485a511d7588db67b7952edcca1e5782be21fbd1d13f5311a5e50de59d1f8e7a430dd2664e87ebafe228b4fc50dc27ea21d7b7b90de3e1c3151794d5dcd2f17ac97bbd03eb2bb4d6d2ea72860cf66875ac9b004d7752fbceb6efd7f3b926cf50024dc9003e971bf9749813fa23fc9261e8c34ce9e79bf8a7162c8fc1a52bb008cfc8bbba8728430bb6db3d43ee9492e5c69ee24c513f90cfb387153830f99127679ea76898f635487c82a84008c4ddcc7001372a5201108d6e36c4491151b133329c28083926930ee9a4b994d44a3529bd99b93bc098a48749b8bf805ebca66b83566b2436e553452b43e14198a609f30e47b0e5b901f25d447b3f7e069878485b385ec8e55f0b523cb3c76f28b36ebde6bcf7ef8c57cf35fe421dab6307aea233e9c020b22a02a5e90176e6e725a78b0d85b72348b6419161684e035068c2bb0c09b2f5d9461ce1ea33dcfc897de3e57b2846b66a7eb6d87dbdaf77090c81b38849d2bea403de2a8e0786d83f791bb01391ee310b7c68ee220f054342b15d92c2e374a0a7184c1f9299763e906c326afe2fa405f27d47be3e2aa813cd69fc0c1bcc641140872a5d4196db40609313ecc1c8085c4b0df65a4a12d64f36f270e96137b1d2bd17562a9ed4ee4f125a444fa38b15976d11668a3f2d0fb6d94b67b3d15009bb5018ee3d3df03dbae7db052f3458dacfaba2e213e5129109709137e042b90913cbd30e6a70bb753c118e00266458efe8e0c10d365cec09e83e7f675756b3b3215a77a4d25d748aed06fc32f8906b35c6da6114e794d0990a50540d7a53521349dd7b3359279c13dae4aa4c75308f451606cbf53c21be7dc6eddcf665bfb2837c5642dff9d7d91268613e30b32a3dbc5e2e6b47ed45eb9c7a0045a93a32a6a4553211493f6085dcf8f9ca702368d32bbda871f8a4b29c52301db0e6d494d1848f27531afc5b5b7843b57f351caa7a6482acfa3b50aa8c72a4106d0f916acfcf4990e93e6782b5469073d4b00a9adfaf1a765760202f2f7a47f060ee63b208a8b67ccf35cb302b344e14e545218cc42fdb89a0814e76f9de20650f13ee67fe3bd7be0a967b808ce0f8b3d962a0ec91ae79b1f887c4e676f3c00a221ce749f9514fe21c5f708f16fd0b0dbcced8214097657862be86678be569ac13e3cc4379fd1194394ac0234c15dd415b5727a5b4c17451f739a6b3c04f95aa324ba33bd0177a3bc6b11a258c59e7024bbc3dc5b28028722676861671e85381154a6885371ebd84ed0c35b62159e86bd89440d64eac39e83282694155c87c4012e0ea89e66e7972272740de11a0811bc8a1a83de7ab4bc6a533d9d833ff1faa6cd55df89141992e480be7dda1ce658f966eaffcf8bbaeb253d2462c13ad0944bd353a61afcca21155eacb85053da036a75d59181a05f21027e228a166f3034a8334f1d35cdaca74fa83d16c40c44b528adfd0ae1ae63f31446ad6e0a832f3aacc2e04250c672dd951131637423b0b2fe645e9d1ad704bb3c31704fe2cce19465e78d294f4ef23caa4c635710342c757273da01b7d3ae92447d7ebc0ea56ec381f71af563cf034e6bc1269ea53769e0a0764f7915ac6c08907c419edce569c5f0e5fcb40757f9d22f4a8aae23317dcd6414b21ff7c29a268c1d76c56b59b8ab7ea50f03ee1009f3eba53d3e11a255ca26c11e06caff4b3188d25e33eb21ab38ddfc11c8ca85fe5791148a483daf0b6b9508265a39e8e179b2084c4de499d7c0732df7646b534361bb9f4746c502335c268ad1c981ea4951bc8f244855fd92625834a9bafc0673d2637eb82e761661bfd83679b0478f115ec8e6d7cd4ba7de483be3e53ed11fc54409a3553dcd4b08cf8193882d51dee7528273a3243ee6d4b1bc3cadccac9284126f811d2f033c8bdcbd3d6b137f2bf4f0e29be28a971ed268f03d35e62a0773de442c3696b1e09e5e3394d87108e8625fba125ee2e51a7a85f25c4820d33769b4dad948c0bfbcb359ee34a6dcaea99c5a6b407c74db29e2fdee281866f8ffd12e725f73df4f61ded2849d15e3a9c05ac435730e83faa7141c75232e8a909042f9bd101a55c613ded7da971826d0ffd41a24e5469cf04e0714e3b998adee3bdd4102d15e4c3eeeb4284d6b4ebc8958b81ee9af9af3da8925d632f772da5f8c7253b5c7bdc692f1d7a9c9e4f67b888421a4712d49e843b3e42ee8082592f8f032e73822c06689d6fff4a843cef62585a1741621d0487d23fd90b144521908f3c0270a7cdeec4024f989dd150d6f3438e88b3f7a5c819af40a2be098999253862023151ebdc872e419f98dace0e76ae4493192f3b4e087202b5d3266f073b4f8bbf41b7d535d5e6020705ddd30f915ce78c8050a64c184226bf93c3ec8d8b0ae026734b2a802d413b53006d24d80ba4e7829f8998417cf606fa161e066008a6862e72cfa74efe55be8674a99409029b8fdced6c8f8aea84c7fd07655e86b3f566bcf771aed5fa18162f098e101ed8d0640d7b72a4b7c6a0de4d7fc7edddf78f62010ab1a19f0890c9c10a94fc11983bc44c143a2dee7e51de43d609383799b8395e22878b1605e9b9dc3f0d5279b9463e9fd6f5f2b73c2bb62c61033c8203436b07266e5b52f61c63529a80be87b9bd151918319a63c38089af684331ceacc08aad79586861a3dd39c894bf499c75300e71f37b8aa3ebd575b398d1d13dfd6e634e9c7eda8aa0c4fba4f21dc201710d61aba387a719a39e63f770ad90d1fcce0018a0d96a5a3177a84a08339e7115d4b1185d1bfcb1eacd82bee100c51c63734fc05ffb9699e073b3dac35f885f93a72d14baab08ea700bc025c5a1cf72ab8f99b99f5fb47103d6b1a82d86ecf89e64ef0044c033261e15b86bbf090ffa0a253df6cca0fe4075dcab6334ce586133af109978a27606c37c5074c44e6f3bec842183b6fdeeb4af970b9db335f631443926b61031be2559a09952552047a12ca8a4d5d48a1f65765677a93261f346921c935cc0542b31faca90e113bf2fb3e3bcb2fce30cb97f553cbd1c9237a4d6480eae8f132de54f8c33b85f456f8e0facf57493b712fdcaef292c8eb5567f0d383ca1a2abeaf56fafd0d088090edd4fb26e7fa0207fb03c05c3fb00ae2df58c54b638647cf21b6ef02217cb83bbbc82362d2e4542500bc1588700563a61f226135232a39844e7b0104739a2535a5a3b783e70b3006acf3bf1a9686ac75f6e2af6de374b2a399adba4cf0ad25e633784634ebea22ad3ccd0ed2b7319a0d44494498f789dc13b0ee07e95d15e91f71308a02b6c947491c9fd2ff1973622bffdcb1ec246fc2c701e9108b2259e359b9c9b1f7bc4954a340cb27c3b9ee079603feca15013b2008809bc96ed71f9243d5c10637b0729320dba6f09c505f6553244b39cceea296481a155567390d8448e8fb398d808b36ac0bc3d78b396724299abb27e92fb153889ef2e0f6db4cd9d672b87af9ae5d7bc7414f493737f1a699c588d6fc2908d8b18604e9a37d15e8bfef3050df21ccfa4a70b6f2656d62f717a391ae3de27c07120a3712ef01026d5612666fb15de203e90c192dfab65c77ce65201f1cc3625de490c7d2253d9ab7a7b5a13cd81f4c013058e1d2ff85d41b08671a81aa59292a66df5cc4f70b78363c656fa1ba8808f4be9570da94992677103c0390568813acfc70c4bb6eb58d3a7c8e46d45cf8d10481bca766aeb60ad3715351b42b566492f77f7ef491225b0f3dc220c56ce341cd82be4e786aec65d4cab81abfa6fd2b4239f115986473dddd14b7a1e6c052a0bf76dc79fb4c92496bbc476244ac91d7e91460c796ea8241f06c762e726fa072fdb07179832d39e37b14aee3d51de1cd0ff99603ff3b1a9a16a516fca19b7de8a883f73b3b91314d9fc4b84de45e0a894c9a382a79b65c9effbe3151870cb5c65dc0d038fd6127f643fd43ec533d8361ae3e0ca0b5f9d1b5149297447b6a812db9de51b94d95c924b46d29c93d5a20127d6e1d2534d899bd19e5816835e01c5cd7f01e0278554535f7215fc54a3fb6c15757b3f178d1fa50b0f08531c65fea8195bf8d0552034cac996ff8ad59c31f6a8873a0fd1f92c166a0550ddc376283fbb78cf01822c9a304d8b519a9730fdf058e3670bcb1a25cdc43513e41826cdb431b084a94713a19e65a3f5c7054192b47a430cca16edaceb5ca3ff69b7e8a0de27bd9802767bef135c6276ab35039136325cc9f601c4cb9d2ffc3618974b863f9dd40fa168597519aee1f8d6f427f03d0e2ec25bfffea39d09252f5751b5f5a0f0e160a4e67767a8ce1495028ef0b755ec914c8b7ab00d904d4d28a81ee1326d7b3cb52d16273e77bb3c1afc28b4248835f81f8be241bb5b3e2c5105f284c0da0b7ac24d2b6fb5963193cf99b8af601d04626d989fe0f3b1887fdb8383114e8e7cda770e16b20c62b33fd626a51fb74d233b17ec21d08a2f010f5bd41f18bce88b754125e6ff139abad2c08c059f2e79406326d62700a9da8d2d7673e42f07880e43bf84319e6ac74cf39f7e48b8593826780cc2a4ed20e389e3df4b0c0d6fd3c9b18ad2b271b4f9e620fcca152cb9bd2137255376cd3efab07b1159aae35ae066e1df466b01cb29dc4824ba865cc9fe0d268c5a7e52d97b65693215b244f3ce6f9ab2b33872f8162afac74ec3acb9fae550de179c7ce3e1e005b1444954262b012ee85981f44f4b26f7f6a74e5d884791c77e4af1894009da4bd7ee15ae13870c465a953b6ad2c4acf144bc9ca9028a5e78a085d4566454a06740a653010b6408fba1b24bec52ea1bfc0976faa2ec3481806d026ee0ee5137a6c624b6cf64fb7345ab90f5c466dcd5c4e630aeaa8e59efcb33d9c8b369cf08983d94799e8dcd44ccb4cab7877157cb0dfd9455cd4d707321efb4d0fcb376c229f6e5994aabae7e4b1a80c3c29a305e62affd4a14c1f109a862953f924b413d9e1256c5f3e8704c483cb92b92a832f33d2949ac9a69067b38fed433cd33345172f708484f2a106fdc22e7971026a59bddf900f33aeed3e0f21ba7d61c4b1412c78c911982264123c1410a51c34401be71ae56141b5fe3053f63cba098743c9f99947df70ed6f597beb54e9929321a93dedb3aa32691ac132bc49cba816c4662a87a56447d552c831faf3b29386078537ad17850d1f78defc6c21cb241cb01baa284a75b40ef7b8de061c72999a3cd3d49a8c6c79a29bf29445d3f196f831df2d844f7b40e0b1f05c0865c2b3dded0fd5010839b4cf99068eda27e16cf2501d1e1080dc106af4404f19164979fd575f9c48893fc01c1b12cc9b176e6ec03680e58ff8a7777cd558544905e17ef57297ef2c9bbe3a634a06ac14483b17530b4c0486fd0151e4985feeff420982fd29957037cc9920081ec1265c0b50dd53b76082cd679a5d2610908d963130ba3a02c26a68035aeafef27a88d072e268618049fd90c45c9cdf111954689b433967d85094a4be261143ae9a44bfa16ba3ce6255f470c5f819b102cc1ae1a4d810652279bbdae97dccb6e6b81a969205940c06eb451d28bb12c0a165f12512af9d7ba211fdfa4e7e806f1b079097fc20792f63eb6f34c9b30979687d2b1a227d46de925fa229c0689f111ebb108302f38e8ec5ee012b33ed7d32feceffc722abb9a0a9ec22a485c1a205e38806c6017d77b926eb7f2971ab9f44b079b676edcc6ce252fcfa51b236cd790baa405413e66e5c72741705bc2674206b9aa004357ce71874ead70d9512bb3072545a138a79430914355da8ec7636119654f9de0e905c0c5e5d67d22c1c8421cf9d695e619f44277a46ba3f2b54d5c53993355fa559c122068eccfdc2f610aef7c800851b7ee9c51eacf7f943131b6a4b974f6a9fbc21a85f386cfdd627badc57881e278813ab100d276312ae24b7d48fb61717339d42fd6bbf87d2580ddc77334b53d8cf65b4c5060e1262e846b46432fdbdc5dc449a4070bd5cf8c4ac1d1b4218f47964df4465230f25c8cf54c80297228d6b0eda2a9a36fb4b1391cb72d3356f4823f22343491ebc35570d0fd4f3830b4d441adb886db418768aff443d185c80d3d9fbadb5cdd03fe1447c3a867de6b341bd6c7c120d0166b1a6f7347f795f52aaf5273e6cd0616007159bc0935a2bbc0c6b6e8be400c581f31436d0c0ac803de55b7a0a1b3f2c68f8950271ebaee887e758fabdebb0d78384dad2c4937440fa810103e331c72c9bbbb42f2cc519b3b83e8ee83812039e340ccf23a53ad06942e30107fdb3f7cfb71da168cdf9484898e005aa92fe8bfe0df243ec92d792151d52ead5fc10c9daa3c6c4c0834b095a2458b3f1635c80fa55cc0c5b532cc0e00db4565ed330b7ef89aba3e634705b62da68252020241e769e99be36391f82466e92673552cf2412749e290904ab9851efa6f814b0bcc39c62535f4a72ce9f993dc882ab51516a44e405bff2ef65636ed8bd5091080a596ee205399e83e637cbc56af07d0ecbed4c0c8a0f2cfae91c90d6a12ab117584fbc4f44e4751d510c0aa0df09da42b0b957cd1a0830f3469c2d8d3c1dd2b5870b3f051d63b33f707359b9f6f0b2c56a4955872f651d4038c7b495189cdfd38221f0b528a39ab2b8c1c2e0a28fc9b46089822a0552bcced5d3e2c343d7c7f1ac8eb9540565144e4f891649144183e8b86a282e318129a0a28652ead76c6ac6344828805648ff5cf4367118f1eccd5d81d2ada8c2e011d02177b5d975a34e3b2a1705e4c9e060076b350c9e9ba7401bad57aeed391fbe9437fa74ff946440918a49866cbb4bd9d8fe148c9c3716a937bf1b446c1a7326491c9deb8f9d4b6dbb61eb5d056e6abf76eda2178cc5bfd85c72e4fe71233e63b62ef5a3e9299a46cb8c0981cd82c8b2f4dfd65e59ccce54b8ccd43457007c601f20d64dccd28b46572495d7a8026d0100794400940e202085d639cec0d61e6f98a1f078dcd5ad77bdbb98b46aef7de92a6c84fca34889d50bedf1ea751db9803252e0c57c097bc4dd6617f4ce7311e5b7ce01033499f25eaf8bc85f1694766db53b4ec9886157634df4806b53afd40dedee22f4ae4bd3a44115c156e79e743cf08c12d12428cf37fba37facc673305beb4322bc0370e740c7a02436246fc9076a4a76f8f4dfb08c0f69077aba97d8a549c0721472ec2f5665ae4e83c88cfcd19789490c8af21ddb5722eb2ce21d957612857cadb6b2dee878da19a371e84440e8d4c5cc36f0c0a33d5c719a205bac5d8defdd693d62c9bc4e8160ca40b95e206408b1f918cc900cbffb8198cacb92e568747890c017206ca4370ada2b197ddf4e843c1438f5f7d4996b4bf4f4df24f3dc2849a0c021719fdd9996ae87fc9560a817d0adae360fdeba1d81231fd4047c907982a30383b30ebcb3bf37f12096fcbf114a616faf4f83435040c1d017af3e8f5e5d8e11ff8787d5365e8f62bfd8301da3491964ebdf4e2badcb466bbf751e7204c60ba918ba533387ad5526e86738c941c427ef4fb5e7cfb401cc90107987cd1dcff077903cea60d642bdcbc0b268263ab58f386dbf5ad1abff328ba5996cac8bd38b6aa81387e3b285031f5826fb2b6b2a98e86fbd581040548af97425eb45fedacb3c08216994044a33c9ecea129838ae57a025ef2049748f284ba9fb039c9a9382735c213915b6edc3c96364cabe5b0fbecc5710dae181f357157fce3e2dbc10a0359bd7e04d0983416c3aa01e85b88b887d8687eb7d4d198ba711896017c0799ee2c83486b32458cf33dc9828351c5264975e9978f12cbb0999c3118da6bf590dc27aabb6ab1ed721948f653204b5b05713095fbd531d241ac7df16a358d1bcab85519e6035d1f846cc005f224d53aa4107a087d596bf291df8753143944737eb8ca258ba4d20910ef20d6bd2197e8bd1d164e1de2d7c50b0b0ce108c9ca64ac98c59d1943685e766923946943397a3ca4314ef70531fdacdb8afe89930e8be54d2481f924ae2709131026143b2143b1c1bee00a2deca44ff42b1db5030ccc4742ca6519cc881e21f699379a0d5f14aa480003dc3c0923da3556036e53a3e93b1664e4cc906cf0c4c43a45adf2cb717a94ed4337df6aed8e270c689cc32cc65aba6c2f228280918fa2f108f6b36af0c986fce05fd3075657fbbd174c9b0ce58bc75224e26990561d44ffabd839e594c9bc8c5a340d0ed96d0ecc61781cc164e3891e6cc2cea1b191b387c6600e7129a2a16e0c3636076ae8179fef1b1c7e46912f66126ed8bea43980f53dd24b98caccb3ea4d79e63e40c57b4b0dbdb20a30394a53fba358e212dc39ccfd2dd96653026e4b99c05c99a7278562746c3e5c90c104673a1778df455a66ed6a9b6da230b98509f901933916055b4b09612e6e01c58e5e5d25fa4ffc8ffd23f7bb54af56d688d2fd07f48551959c11ca7e64fa0cd2231af9a1610660e5a8af0bb68699c01aa534626841a7ffe462ced74cbd5f77fa2786665459c4be725045fb2479440685031d7f45011c5148bed003bc37e891eb1bab3c4d6a980e4324bed881d73c35e2462117bdbcdd0620878a164c5bab0bdb779bfe2e818f3d540d229f70990867da3792cb12940b1062841ad1d0b0bf5958d66a51fa645f54aa0fbe57e1480b9214aa4924724318665d0b379537c5768b2eb076ebc89610b2a8a37609e9fd5933b0076f38a8f602d536e94a96f1f87c09fb2053f989b1dcbe706a920301cab438b7c72907a9a0082d36bcf80d85f68314f54f91331e51d89cfdf5b1aff4edd1019f7164f2460c3ec16f5bfe6487752a613857f53a2aae4b28f89bfd16b568066d5242005c5df99f39b9a0c7effd2e6ac27eec6849cb69ae726402a882e6379cfa761fcb2e12437aa281c6f50ef326919db05cee753479f6e7561366c542262b185b6a0d5b149a751f85aa321a14fea16776321d598df5b40c471def14468c4532542152f0d37ea6c9fda0c4d399697ea740dd94fbad975675fa44403853865df013fd26452699b8fca2174c5d089ebac8281754eaaba475f3d8f3f42ef9789f076e3d29eca7ef30385ec617bbff7d8f4d6ddf05845829986bafb72bef278be1c644cfd0db6fd9b9f3d18ed16aef3855c3bc35c8362e4529d625cab141b7402f0ac141a4d4a81605930b813807183aa51c0981bf92662bd83fd6fb99911f1acdb9485160b00735f8ee7769557b668ea3b53fdb260d6ea68195fcfa2a6b5b7996d5fe856335bf8d8455e6cc00cfa929f445d59b449b5a38d27a5f389133163ff7fcfc70771b79dcc07c002666c63173a2fd1fe233f7b71d1ac80f47896017f1c777f341d9908b8aca2bf61ebd56f4f19688e246c93148c5dd00e20be2530713d3ef74cb34c63ad4bf8ba5824d7602edbb227bf59c73cb36fee3114d736f7410fe39a5cf3e02261178152f12219e4e05705ed14c4a57f5f5010e2501640a0f959c8e1a1a47b857ee91ef7a6bf1f9ec63011ba1882b464c89861aef7925b5fad7dcfce7d20498deadfe2591d4a8f24438bf495720d1973f321d144a3313e1f22ce484188292d4c58200674ab0bfa549003d2834efd22b8cb6a4233846505dfbff877d7df63bc5593119d99371bd8d8a094c5879a93f64acd2c28596e7c9e6cc161e9c9d978afacc5cba940f78eb095d38dddc5498a0a869b9726e08820c2d1c629651ddc9b80e0654d992c4bfc420367eb79b7770bb0157e2d41c76885a85170d6f487069038488b51665de1fcc463663340c6722a55e96e3d5c1b0dc1cb1a993caa1b42df3719c53b828ee54a96766f5c53063864765143577bb428bc1e2e8d44f0ba466e87c2842ced83fbfc5e80c6b052c7e0479f92aa501bb3601b427471d449595f1a073c3a5bac877be313785d2bb787744248fb4427bf07a061583126eb4cb25a15630ad7d00240436339e2f8e6b499ac837b23772dd766724e0dcf9eb46632ef3d681c578a403babebba450cbb2c60c8a4db191dbebb2261ad346dd7b8b331d101f9dd048dd14a30228ec4987d70f68dba8e6b1135179f9369beecea0f47c64fdf09c19409f7131cbdd455d0e3b5503c3fb18f48087a5a3601ef9ea0810fb90e14cae0b50a927fc6b4f20cb47136b063fc1e6e479877a60aece116e4553d19f7c6ddb19c4541aaf7553e52412e8854c295a11da78666f545619d1d77d751fd798d7c97d71fdb940ca8378c8912e7c9a57f0bbab79d8db63cbdfd1a04c26e3fcdc17429cbdaf4d099ec19c871cf1e4b07f46b9fb13a961e391c02e51d62c8b7cb6d7f5f3d0c961cb8968fb2784b719beb8da01ac590c7d5588d62619da50d8bebef22cb23a3ae0f65312abe9c8f5778570d0bbd2318a7e8100654f8686b5e1bcddb005e33637669c330b513fbd834d286393129e49295a8c11210a2c7accd1b8f25f583c38e54ea128542e5a65b00b48295d7a28a55b2016d6273b41cad2592a77801b86d6a85de5b8eb515eccab64444714e71289386999a943b1eda6805b530da328b9893b6ae0ef7a8a71d6828990e86cc59c01081ace9bee530e7d4e8cdd42acfe5aa456f1e1517f7965c1c4c68ef20d724b81e6ead753318b9e922908a11e44ba97fb7aa1ea722d0d28d5e7bf431df3bdf38ca22cf5f6db46f757cad655ea0d39a1bf2a8c4214135a666df1e6d869c298349c8ab1b40eeeb8f7dc2b1b9500fe28992af92e7fd2e4b6a9991072789f1ba75450b1c24be3563a1b7d3fff935cd12a29f7e9f0d05092824d657689b09229a6cb7622812cdd8d6a2ebf8f2eb5734d7e1c80e4a3c0146db36eb87b916e3aa9c7b9e680d4bd048e01fcf366e02b94a600f1318faa267e878ada0d724be87e92bd0035042f656638fe45ecca489cdf32ea6a64d2ff397d39f1c7829b6f20690d8c35c7a6b2b24d0687af63081454f082471ef55f480047a95be36ad8656b0f70a7a94ec5542af470f65d758bf8cbd58e613e9b1cfd6010e7e562732b94f092025aa6702b3b1c0bce806ceb55bc6d155f32946e1ecd9f66dd59414eb420ff066e2f63935ca7c8459e76175065dbe18b07d2eb0afe11169f39cf28adde70c656c2f1c772c094583d464af9983ccfd4168dd67d11d0914ed3e62f541efe90627b5a71a51583baab6ea6cf3d59511e07dda7325641b12bcddacd95347f8eb993e5dfc6e33f5d46cacea898b7e2f3e17e48fcb7ab50c99c9fb893edb00b42ed7b53fac5d719cac4fb1f05b6df67e90614f9801a45ddaf8e6ed6e21d40c7baeda87fbba0c56e7340c5c8774e5cbb027f5937671151d954b0b0fd88c57e40098e27a4a3a71989c903e0867d87344bcc0a4d81870f42762c211889eb1c81021e24d8f83d6b28f726adc694c0691d4508a9f176962293f33cbaa6a06d1f749badc63771223d41580b7d8c1b20cbc05cb97e9e397466ef0977af0d523a7129e4afb2039904f2b1ab50765bad2dc24869c315db3594a8abb041ff341d8ee2671b4e1931fa0d78cfdf01718aaf0c780b98df91b8ded5ba73a13fb23d91b501dc13eabab800883d4b08ac83a4b6b1d1356c450c3274597780aa7395c56797e434c5c9b49c10a15460e7a291c138004b39bf659ab9266fdd910a345fd7f19412292dc3ed3099458f093c857f2297a22878a2a9cc36686a6649cad48ed77c97cf600a947a7980691e284488b3b632ad625ef547e2c3ca0b7cc37352ad24f78efd83dab4deb6bd4836db5e44f545ff77f5dc16591964358f7204896895395c36f349e245a8fbf485b003bcc8d47730924fb4966e726617b867fabc304797518bcd8a7182d2754252b255982e287e60f4c757ba99d020a743fcaace752c9409ced5266bb89c6b60cfaacc9fa75361f677a232bec74a28a3e0aba25b6b8a8edcb8e7e290f94d834cd4e5a9991aad3ffc741b80c23b58d65d7a39012631f692cba3c9675eeaa49e7a0add0c5c08a9b9c37fecf5e95783dd8cfd576abcf586856ac053dd717c514b959bc748421d8d407a46b030eeacbe4dce12d0f49dde04faf2caa7eef6c58c7dc62a7186a60c59ada310bcc09068c5075354f88e9e2141ce74de466201663c43ebcd7bfaed2a22cec67e7eb8be55fcde240896c58c1da614faf3cbca328243cfb1565af9c20c60f766f91e98439c1b5bdccbc40f16b0b2864dd2d6c4a6d121329d7cad65919a12c75a39d7b3417b9dba360fa3e94a3420c3899387bcd5a8bd958b4e6a2012c3f793a07d72b22610fb7b931bb017cc5a3a3a11ba952e29ff0e58afc19853ed15b1ca3e8f07f5cfd43a51ca7a9d2865a8a4a5b732b3f6f9131151892a3a56c7064b23c09f0f0c3131f45958e39a29aa2cb2dd1f5a5764d80e8d28fe76f2800eef5f43b9ad87d29423cc6fce3b4d80040253bffdd87ffe55a0217312147965d1e9982b465c31be81c32796f04ab9857e06140470d8f669f312a0b9fdf71251abdb6c51aa4def3e402ebfb809f1bf246651b3e3bfa555f3318589e6d5e9921fa8c967a1e0f2f662d4f121cd2deee62f511dbfc41049bbfe1cf75950fed989dac5e2d926fcf507da855bbbf38435697f6c167d3446bccbcd663ec18e355e018a9444d4a22f670a15fd7aa08954a146825b0fc9448e803b65475f06081d3e0d5ee35c29b95c3055dcdc5ece25acaca2a59ee52dc9ddfd22aa00dc81d45b92e9cb816a5bba4cb41d13508e9e2c220f2a170a9b8b46d953f48a0071a1f1af06ca991d7a4e656340566d7da1123bd0181ee643485e56356102f7558d81705082276205e2ef102559474acba29c35b4c8f4d55f16305015c3a8a59bdef11c0a9168a659fae6b42794a96701a2b6a845dca0aa142659ca2ce1e86c36b3bf29da6b9bccdd3c3feebed10a01a8b4eef5c0db07720c5d944b3f3f195a98e7a2ea91265e825400b2aca234956c08eb1913d7af2f264f08380cb61c952c62bbc0edefe697b987f1fd57b43996ae83901458bfbbf470155fae318ebf23962b015d6775819d3b519a8328b525e83a9f2c0425794b5040904ae7265323e3c6696ee5a1dbf7a5dcbccad40ec6f9d1fc254eccf0968b4b0a3018a52853a38e3d42308206abbf4111f0c421586e1290e94403c4b5bb2b9b45585a45c2b75c471842f4bd6afa73c0f79dd5811a971444c88f0fd24e5434a1d779e0f3a3b6cb6ff742d53dfd9636d37828ebb5d875944a0d16b31a2f7832a14466bf307f4bd3366073330d7916fc4a103ca9d5ce606a3a2505789cc78e63a7dc10895aa53f47bd0e8263ffaa39a1052945eefe81ef474cb4ffd214d64a4160da5c43b09e6b4cf54d9d89929e9da76dcc35b6bfa00b61b4c815255806e0f0a50365ac91fbe77ca986abd12d2d0f85b4b33eb41110a5d9dd840e0cfda20cab6ee62a82641a5d47795c9f4833e9488b74eaed9f8eaa101bbed67a8672701d0a2e4dbbe67f6410dcaf8a1253ce7d9dcb0a6470318487b4aa7669f1dec280b5f090e13b911ccfd08cb57ea802215b87f7c605a16feae3cd507d95197afd4966088105c44d25553dd5dea00cf4930c3c85e20577b270b717f77f0f06a12b3ea22997d28f3505ed77c03e7eb2945ca77c07ae53fbc73885711bcf5ef92bf26db071ce34917bba36e491d357307d3c5324d7568c734b852af42fd569b763a13e00146a4c3d13920ba981d104a0ee74575eae16f57b6b60e28b2c9079e1b3f4c1b2c2a4c75740e6ae47b11282746d4781508985683054b139ad1ae5c05730cccb40d163b2a593e2b561f1234ac45896c12ff3fb3595847d60da4025fd1ef680882f7514d08627296b4ef943f433ae67d188706a8b71e501650e358f2fb4f975b8b106ba5de4fe1e049d545ed8941910101d07b3e886af0f493d91ca2022818bb6c0baf4c6d7513dee7e66c33a13bd66973aa69e846ac3fe72e3d8df12faf19a804d05b41774d6b4f52cf6866087f81c603507aad24dc147342dcdd818610d410de9351f5f1a8b38b7da63a530286ada80795bdf00e49184363d617679c37668d1c8a12f0e00ba7466e3cfb326907ebedd767459589ab7ddd7f9c8a59796437b8329e40225f70b6df13a3261f768a39f6f9571dd8b4b6df4bb5039b903ac214d20a1abfe69c324f67eed39c3753bc948475e04d7a27a15cf2a48f59bbd521b0d058afda5102914a63c55a8b44e329dda3227da0ffe252640d327e30d25b62773b8616062363d59a26cb3193494858ddbc89471e21eef9caeb5c9ab844223e5a89703165350f3b21505ad79ad09a304afc1fb5329de49c13e865727be49c3de54ccdc905c0a9b1ec19abe634cf4d21590bca40a01751b4c5e508589a0c4290e58d371fd32239a4ac41b1f1dc1b14241a21ca26e13bd1f89a193e2e2b06565ee75f7209d3bda5d26c1df98f81acf849954bc6f55cdae38a30c3283c6583acd24397636b460b0847e7bce99943177788fc3fe1bf53c163194c92716c3bf9f17036183d01208fd106d361ac08d10391f34114fc2b8d80058748496b58c2a6d497354864dcb81ca4631aa65729cf8f6db5043f225c98c5eea672d4ad51cf632d84127ec9bead032a774c2865b9fb3385cc03f113f0dc457050cb02493c1fbea785c8c8f16d418ed75e088be8f7313e68bc1b88c4a35fc39e503797d14803a01ac9d37870e952a90dc4522f63576a015844a99cf74741704e8749d945229cb357dd4e3ef3878a68f46a6bf51ca529d77c19971ea94d7e9d1fab14c031402cabf07aca65ea57b9d59b91acf91d7f18b7685781fc6238a626b731d13237d63666773955a1dd41571f4276ced6142beb74bcc15c57a0615c0b3b3e7ef3b3edc511d9da98836dc086b8e3077e2306ce37c8d3f8b8ce369a4f4505d2500557a1013ff431282ea858725fe1fa6f3eed49d52db8e72bd58bb16221c24957ce2c1b550d52647ed0f758d69dbcfd02c64b559924ef31bb34459dab6a42bebdaad3d1cea54d94725478f955493f53a9709e2a411c4ad2498c073cb14a426d76c3aad6f08459e22a856df1b6205ed613739d44059f9218c36b765c5991819811bea11aaef1ba95d879432f929d7b03762d106f5bbf9c4abab2c18d73ce8ac87fd40d7121b844a4d72ed2bcb2230013bdff42aa1fbba7c887407d2fd44244c178b01cb4c262313e86ff6ff27c53dc071d51ef96ee50360eef0631e31da2e024ad96c80337fd1b2f27ab847942befa32b191491a51d8144c4b86b324ac121275796827685d954382f662f95b39c0da7643b31396a6b9cb7181f232ad9e7283f7b24ca139cd3e35c4da865ba8a74c39a66668f6a56e4c0a4b75fd688e246fba48d9bda0ce41ad79d5d03cc2491b6015628445b6b9b2cd0acdc96bb0bd9de7d72d2e4273089c6029134b6f77fa5213749105456ed713218c144743b1aabc43950e4e03c087dadafd67fcacc0cf6022f639bf0eef14988bccbd125fed4bcea1a62a096a69e462a4a940f5e993e0ff7c82cad95c020aa67ac5dabf5d2761cdd313d2e6f4847ad6edbd383850cb853ecae5db125600c7313726a34fb7fe4fe2d9aa3be282729847a4bfc79dcf1cde6f23c323a64d134c5ad92c252a2f552baf014cca39a8ff6faac19c9b48b798f1c9c73650a3647bbfd596537a1bd9ae8163e10d83ffaa127df605e00e3fdc62b79863fa8e393d4f4b4ac281facb1fa587dd55c54466880cd459801b8addf0f205300ff31a8d9c3df5ca4d55040153dd1a25d1e734b51d9f446731e5bb541825e3a19af5a23a87d6a8c0c3ae55bb411ee5a5ce96b47a6c7eb7197dc184468035a9fbab1d6283012e6255594b45e56bb6227462bb5c7c4090a37702027267200d81ecad1c8ea5f3c47d9982851f86096070398ef503a69070654dbb82693b46372924730d74900f2c7fcf3763e13fcf645055fae30ba3e815bbd5e4897ad6e45c309576a6faacddd2163e9d10d0df06d21606c2df12f61a2e2b3f7bd29018e395d0a692c3b8540d3b142b847a30f96d0f319e820dd1acc98580abe8509a7ed409e467e753bdb69dcbc9e684a09ee2732f10a541212d1efa1d4208c17a42ad623f4eaf6abfe45c901015f97332d2a878a68c60095a6481d6ba3c7123bab0b1822be7ba1685d0c2bc1fdc1cb2be451c5a99d7476c67b6b129a600933e6e8851388fc5b06027b80a9d8949d4855cc5d250f832c9e01f66592a91af40403e79a326eba3c3810799e438a1b66c1fed61248a2444155b69996134059f4deacd0dbac108de722c1d6e1a50d741584077a12834c0eb76f4111f8d3ae85540539485271157d410245e6bda8cf483809106603ecbc633b4ac827b5588932fef68a4270c285e4d9b1c19e73455e5edb3895c2e090db2b1699e79d0320b1eee0be02bce4983a72a593ec7fba45bf1e74138b4ee4e3dbce35d5c131267b14d4ca490e2ff92dcb3f50c0190b18e0d96616ae710d31a073970231913c546c04047b38d08b0d0b393aeffc750b8970582106c749d7c021a7fe096585d2eb4e0ca28f77b12910fdb030963f7b18405ff20be2ec76e75269fcce4e458c93dbec1500e22a8361e9cf10f22f91171f0c7ba7e215b139ae4640cb405e8bcb2cc4fd9f65d80f3b7004b4e1a52490389c5f19681eab8012b81dba2ade793a8904af18d5f9ba6163550ab0d80cb3751dface1561faf717a8c113cc14f465b3c6f08075fe6eb4b41b6c8911a3c93d93dbf8d5df54dcfe6a9cd17550461f3d0a49923390dec98db6381bb31f5bb58607db3c404b809dd7cc349a2efdb0fbb752853a98741a4f33f92f30f20386547c841b9b9381e06eb002a4e5194cb92934d6349c15385adb5549ea298b564828bdc708a9fb0c263927dedc4de47dd0ef8d6752d1e53b2971fd3623afeb66fee73a0d1a666238701d1e746e1f9bd95ca5c7520c8694370073dc483d12955f767d5bc58c23f1151611528eea82c3d50277b205835016e2229c8616ac8d37feee01e4aacce959a21998141429b9027b088545473e1be1a0fe004815882a1a929857eb63937c839166e9a444919242aa1ff9487882c58a4a1c6058c92745d9bf4ddecf8ea1b40897afaa492c2ae7b72d618fa083017ed2523a07cb2a89a229f458a57586a4c0d9ef04cbb16f0a12a93dec5d525a5d52375f683e9305fc04b6e1e384d9c9e48363ba8dcab8ace1a89c69264b8a4905c786498d1f69f12c21c3b73a93b86a9c9f1d21a5d8ab420f7b42788978dddbb6e8407de23172d0b23ca99f2ef25755f82bb70f3501aaf6cf775bb6c34eeec5b88a20d3a28e613aec85f4ab6313d5f2238087f1f1c93d49c4e59bdc82b50262c05a75210c4fa88fa28599baefa3e1f14dfb05f4479c0b0870f5ab9b8a988c0c88f230855f822fd6a3a70a65c225269b37f185517fcd9da1a6993ab9810ab2f4e70ed3f0fa63232102a5e7a36906332715a729c5a9c18788a9c8a3b32e5322ba792ad05d2322b5efbc3e3f96bdcb14d61fadd32f74dbd4812bf5783ce0cd8b0f85e771c0914ef60da064c66122910f435d5ccdabd24a8f74085a3a90e950ef68ef8624ad063fbdaed262c029615a386e0f85554186ed149a13dc90bae864006ddb845f234f082fb36edc80db1d91b665936fc066a375990b0ae338cd9109f7c255decefdc6eb43b34de4149a23574d678fac01c0d57a673148c84403aede4e6d36643100ab90edd499b7eda42cfb8c16703c89d55a6d3a74992cb307a50b941ec9dcfe46d5ac96e8962911173c7e35e0bdd7e20d70d9254386741c246e31959e4917177e0fe26e0ec3a358e4f4fdaeb7a5d80498b7aa52aa16025ea553cc0470e759fd98cb3b439a9d33dd009d0949e88f6d38f80305b7a2a125145bf07fd43233312018aeabc9afe923713c985deb577c8e8201a128b2ceaebaa86497de491d8f9216fa957faa946741226e34062a0e809ba2206077dddb422acb36aa7597f05072cee1d54abaf7bba47a123c6c261a3d4fadab4c51143329c565d4871dc4d1c97c436b2ee80405f434cc1044a377e06e9272f7f3b84c7494b984b1ef3d0dcc38b1e1ea43e1a699e89a88d66be2223b80fb2d9df2e757bd2f329c719aaa4ab0fad47e1cabb8b030928bda52ad56dc478b1c4e281ad1ed306ec1a1537d68de8c720e5793392521cc28a009ba2a1a1294794fa213ffeea27118ba1ce92cea9d382354d89446f168b88948685b58e90902b736795eb9eea5b8b25d12db3604dd1fa69be195cda27b84ed51f0b49e7171885346ae2e184aa195d97130e71c9dfee70ffd6af293a9ad378b2e8ac6d44f38ff886d8dbceb83884e4ac4f4e6414286f90d24c75f810c97a778bcaba8887336370d030debfb443b12eea31ef3e796229c26514044c9efc8ba215f8eaa150bb83561087e0cdec5721b339942ab971d5a6b9538186c4f042b10ddd6e0233d63b4841cae560ec74c0a0dca4de251c567412ae3453d166d2f637cdff9ec2701d9d0f48baa0a6081c61ac0ed60c16cc8261f03ca11b7424eccad0f36d3662ca6e64970c2d63935b1aac8bdafe4743932b45a4aa7428f277335cb4d043475364c6642f091add0716ed37c4addff9644cfe1d919794eeda1acff0c4d0f42af5fe923404dba1f46b5e0dbd1f660ed0f1ba294c5ce4634c2486915efc4c13c3a458a221a38f915550974609418ac9a1f11e0b7a8f607462528a890cf9df3c978f3d95037742976c97bab2a1a6588c8d45c43fc538441248c7dc11e9ba0738427f962048be456c594c112079772d6dec4057cf3f18ac90bd5d2b8f260c3e2080f095d2e2fb01618192ecf86537ecc58e0cee204cf6167a33de1e0f9b220e5022fc618ae4ef57f0ee72a85e031cb67b7d31edf2e26a1ef57f93074e6c09e69673ee13680ef9896dbe496878796357789b6601d030de44dc6b95cd70bcca1962f6f5caf7a871624795d3945ebf7243a7f961936d3636186e265ebc8635279979f28c4a56b2f0707aae1ee7469417557740f55590bd49100e4f87bdadf54d8bb51512f05db42e8dad3e8e5a9ad4e1805b997b65df625a29b77719a06fbb05de559e2c7e8cd4be8dda79b491088eb7f56d6d845dc9f6a90d5c036c5ba2e46d00c1bbba98e57a9d3d45c7534cd3b9e18a00d8201003b66daa1f454d77b062f68da5448c0489cca7465469370a891681d3bbd3ad259c4a8f62a78fd7f00dc9cd4c04c4273997ca352cea3ec7827491c1886111642a94568d1a7f4cbae9be3531ab83e137dce3787967cec7fd6f2980da7adbdb888b1dba7f85fc440b1f4529b497188701887e7d07b6ff641602fdcbb50c9c916cc41c980ff5ab23a5b7214f4d7a1bf82580ad0f9db7adf19823f702143da8e9cada1290ac467d72d4dc86eb860747039c2dca0a6ca2b5b5f32dd43eb9e04e6c59c1b03958690f1773036a9f5728de58e515ca786bc1aa76343ad8cb0ccdeb9aae9f7694779f7051d4e015bee13107e36fc7eec298573402e223220536e3a9929ce584211e1a967d8c6d84b8b72f5d86ff8506b79c4c44cc64378e04718b2b532e8f3a00bacc8ee4e25963dd914fea107f57720c7ca89c90c9f141e3fe9b7554a72f545a892bce72a50c4f3522cd0749e25428003420c6c1db6bd162dea40ad516a7a883a14bd1e4a1c63df147058e1105f902f557807f57d15302c4c681c9ad9c646173324c7ce25caf50a1c1e9e1bac27e5c39198602029a45b3ae0368b6514169789b92fea2e08111256f96b26996aa95b62709df74fdef130441ce0c9fa86d1e683daac925ad62ff126129c4053353173581fd5d87e62769652d689b7478502b080b0e06401cf5c43f588627d1fff42789c3a33235187cd4d743b69551e7591038c17dfc8eb22243dd3a1818c82c1228a548e0b075d3614c41f56c453c5a706068adc44063342c8ac7d167785a24ceeb68621a4f68c1a290ba1a0ded9055e08bcb822aab7e1a6e52a8eb57cb2b698e2f44bd9f1f819c7aa1fa9f7e436231b69c8d0fb9c972482f475a569c08d210d339fc8ab4fe80f265b9dc5932f6ecb40649884f8ac8c50cc0599470a883f30edfdfba9f11cbd98daa113a603fb7d70357b1390e055a9236f907eb026bdc6f4631dfe129aec14c9d69488ac03513c5112ca5d42acfa210dd2c0e5e83b52f09e4efddc01f53695599f7bad5b9a8fb2d193526322ffffe2c70e0fc5c5c3c6d32d9cf40f01d00d30264d5168125ada8efdc0107b6259a65447c1ae53838c04ac5bc0c1bb3b02ef0964460b470de4230da456c81c4731908762b42f50c3693c3e6d65e79566576a48cfa381eec267781052d65c2fd5863cf18fc6d9038691fbe2e721c06543cf4555b00df5dfdc7d790145c1c344a565207bb0d4f57cb0a7ba2681f235b412b595e6328ec29e03bb55055ce753876b94c03a9b706ccf4f6c9a57b4d402b97d1fa606f3b0636007bec6f06f967bdcbf8bb92db69f73129f0c5ce19bc350851f4d62a87f4982d77285f86cd134e0047b05ac6ad9ece32b5aaca6a687cbd9bedba659199c12ceaab28b37f5f3b0b353e2b816e2d6ad0ef0a0832ca5c10871128ede41e486fa168e84797c5040ce9aa0698a9e5c12b35b76c27d722ac20895b3654ba039f91411f9337552bffbe3ee1f2df241c49bf481a3c5c7010862af380342d6bc8d65dfdec77bd90d01ef8067144b21caa7b0bd2ff931a10657a79235136a2a8cffa60b1de1d21efa19ea20ac7e30be43fd1243cc5b156252564179245711a9fb34478368a031396d2850d8868ee483ffc945799b686d51574fcb32c9782d3c15d585623383bdfea9549c958cdca53698f6410677291d525cb6480141ff1de03cad8c502c05db84ccfff1327527f7f77687bb1a503657877e37e5e1ad4f492813c760584bc88ab8e35b83216bdda280b4f3ffd5b416afcaae531ecbf68d54a2f78b0829a87114a54a69129cfab053653c1d42c9f4a23e8f869f6040fd4987ad00037d756de340d73e9fee30a8113953d515120875c6e3444372d0885be939454cf9aa93c49e93f227d74e1b124b6aca84a2e84140ffaacc833616930a4c1593d98d41c5ff3ae8817c9cb442cac52245bc4f021deaa8b5d1077b94baa0edd7baaaae6d15df935c8ca4f9d779fa3506abea693be21ba1422d309ad08a5e2ed4db2d67065bea67ae907240eae4eb9f40c19383b6d6c0c93ada661eb5c34910a50fa273179032fe9f035a4d328a05edfe515e4b730577a4f30bee8578a6d050e3d346add7901f7eeb345a55fd035c785026cd8786799f82a0892e0aa3f6e3a432347998c1e3ae791e5e8a0e5bfd048f5a43f57f81ad31485fd06fc19ed73bac8d9b8847b5969e1bb4c6ad0ace222aa03b5b963361bef3ed2ac4d714665597e6aff8d87573b73407b8908998a410700cdcd594a367cc51d1f449ae9d8bb2d7c39a007d3fcac4f5cd0aac262e17316016c7ad334e4bc17bf9bf540e8ff1364060c8145f88259d9134a8f98113a0d1860bce19d92113a52526c714de46ac09682e8d7766cee86c7162c7cb2bc42e58f3cb484c159f84a721866c9a14807ae69332026b5e0d620072b9ced2e1fde8d74d5bc8625e17b58a8227f3109d632ba07375e0606a08665e770a0dc8cb29cf17b938d71d205d8f17546208e4f65ef771dcc2483df9b46dae4f81295d97181427e3fe83fe0f7c27662776514379b23bd99e949ec0f8b142fd913bfe77cbc2efa9ea5c6be1953fd39d0f54a8bef8920befef2df5f50f2bf2039566e2e35323ecc8ad068e50021210774c1e318937b527b147d9b97e755bda925000753f6ce6e93b28f9fac963cc9e06d602ebe9641ba01336aa80c71f8ace4b0bd40ab6bef7a9f0a9496d0933fb186e9e6fc30401992873c5828cb687d10585ddd06b47551968daadeb55af2746ccd3281410adb0664b4bc4330f3b3609f725b6cdabd610509907c5c9ecae789d322c9e3e29e0d43008642ad2325823ca198ae0e5de17458aa258893e898756dce7dbba463270cc3bbc4bac557cc32e32bb760655e297f716862250855a91cda9194d08a864b4632286b450ea107f3916532986e3c80bc6b23390846884880c03e644f1959d3a21a9c9dc48d4bc8dba4f2ed35f14db3258496870c5cdb198e20ce440c7a7dce589a945601aa2885a513dc8c1e535f795fb55fbc21ee18332989013a30f686c8693e41a97c1640a1b0990caa0050868610094e6d11a86617f63b3674eebabac1301a6e5abc2f972a86f91a9bac1da9774055ed3b81d86b98c51a7a3e4395648b6bfe09e57038cc8057c6ddde8b94aef282bfc4e28f8d306162123d266a00de11e43fa9cc6b830ff592a71520c4b522c517e380bb7ddefa6bbce4028b63ab0f687f2f9be0a9895950932a7dd29032a2ca5932c08a76ef5412173bbc30d1a9298d5700288cbf87cba32c6c682eb7e72c592e3b05063c98c36f00e55b989eb2f68c99de50b869a7700d459ec2c201ee5c4c2b4abc8d3894f9979585d5786cb2491d508d54dd89d8a9263d2075368dc22752266d9883397963f82f35ad74ed316d8dabc19e52a4fe3c2cfec96edc0200ac9977c3f2d2740d9bdd9f26c22bc2ce6f12955e295d9db57e698bbf2c7117b2a5a1f513b5ab0f21cd4dc05e3b7b8233a16d336b2898df1002ec4a660544bf356236781052df20350194c2c36d534b66f9d03792098c030c97e4c341437c26a79fc4ab8101cd2612b8baa5b9200bc571afd60d414628b48fd48b5d6a6106855f4832762df3c390465feaab675891becea58952aa44573a1dfe522362e4da160d6ed8680a226ff443bd57a49c5885813d91463e8f6bda4da1d2444c444c9fa34e6ac9a3067e2023841bee124b9c50a9a44ba96fbbd7d3a817510b96d1dbe75d30dc7b887f43704377cbbc1e37d2a0ec7c988ad222a2ef6f5ea672c354b8c9be09c40c264a218a3633b2e17b809aee1fd158a2671b56b51e0cb4ca0a7684fa8b521850777b1a03087ef332bb9fcf9b7f33957ce24c25dd22b939c34db9519a098fe09e051c39269ba4ba2991b3d6666f4fb2073244b98599a51efe25b8ad896f6807d592b6a9d9b2c7c3b29198e01062a72dd821f24cea2abc039a347ccc0176f7678bd0cb1959e4b8c631a0abadb2a2a4b74290f7918bc50a57e4f65fc9ea3dc0360c256dd77fc96b2105dc20c811c2db941b8ba4843765509eab35b783060604b50a3b9d44193296ab7dec2c3443d0ce68c7dec6a21c768a472766b1c68251bcf058c4bbd1a42da5c9a0615f3a8f1e37eedbde08513f6971bbfc644237ea6bbc1f4f99209fa73f573c53b6d060c8423383ab088a06d1c8826361fdb16ece5cee32351f56ca1335c7e1404d7ddb54309ce291fc7671a90c65ee5bee939c11db1a846f0907547089d7a62b8b636b800f5e1bbc063d02724a8cef5db3ddd3eb10134edc649def795114a78f46944b25625a12048ed57d64f03305d157218fc556f2b844cc5ace5165efcc33ce5e592503d47d69ce6bd749791a7384f9d080155a8191cde34b1d297628373ef93f4de3a1a06c5554babc8a1c32e7f587749c11544099034abfcca898270e8536aaca94610460b28d52cf01272f7ca12201f844a7091ad2b1285acf009cc3930a76c8b82e2e43176bfa394f13a82d70707cd51638b2bf960b01ca598f6d4d012b217ec9247621fa9d75894aa8e856f6ce9c30c9e1f8cc85dd383178853d84678ef5563a5d12d547213507a2c3bea3dccc5d377f5b630834abf1306c380445107f1af497c04fce0bff060f4049f7c585543dff5677c4099c7e71ae715b17828649d13686bc47614aaa1109cd9835f2c8a2c1cf2722e0718b54a427ecf15f07d65640f7c96ec3e43181e484b206212530c3ae1c62f37b36d25461f6d57a19662da52a25d41b31e2248c347eeb98e4cf3168b2bb52cecd132aa7c21e9e454ab12f920c1dd3a2e746ebcb08b5f881afc97b32664a3ca969e02e78aaedaab92c5308331e03bf7822a29db0f4be66b75da2ce863f9c48956818a9a316dea1736994a0a101383d8bfa21f6163150919dcbe41dc30dadd2f9b0ee4c0a32c6c2e53c7d4e0cddc11ed7f365a60a223113330303b44b4bcf9024e2f91949ac4dea18727b1ebe4ce3de1f67d263c5b292b1b8dac8494ec5aac36f0d0681a1b9ae59c7fabcb498b0aa76a082f072fcf12811dc01b8af83676a00df07a1407891b37ad365b3d171d0bbc8dab7a42aad54dedc173d5731a784143ff6ee6cfa449c65e14ac2081e2f0406ac43ee40dec8a596b27bd4de1dcf542f21f4c7de9f7a0874b792c253494f0e0a00e1efb8918a17d4b1e8d8f9af826fbb656a71ec637541cfdd779d9385758922366692355f5d1a7f8979d6eb2a75c0bf00481d7478852f35dc3740190511e76ae7ca208f6a15f5328276eab0aa57d0b4e7f1c4c2cf7a82286e36695797f300dd687fd4e782bce2070bd73fbf9ce9093351f4002ea07b0547a835a55ff11164701d66f349169eba69b0e09f1a7c76af54d591037d83f68e1d893d8e139be80423711fc59a2b1f6b746fff4518ffb5c0c359343c37998215d8f08a334869c25d4d8a15ece72699321071c46e807bf0b944140d509b7ea76a265e5c33d88126a5991a7d78e002876093963ee76faa6616a2273fcf77391364eca86fb586f020d0f3d917b27643ac42bfc5d8e5a0076c6e357f9e0dba994b3fb0cd3c59592c1f17065c32917a67dfd942022554a5756874e811761d77043c0909a204e775563f89efddfabba8a1403aee9f67244053d98f91898b7833746d99a572423d6cb1b1129b4ff87dab854f0628f5d9ef43c269359cf2a18b6ddaf91dd7aa940f9d9b154dec92921b3c6ceb6d09746fb4e8a13bcd1d929af3f892a38993ecae71778d01e49f0b5ed1f9ac3cef7324f88a384b0f2a578585f321b9e5d2eeb84b5d7995b0fbb513ea377334e3155901d209181b41942ed8df7d3fcb144adb5ac8d64f8c824da1e27076d1a2c908620726c77475243d50b6c1ab26d785df9f2677e649e1ecc1ce7a96954ddbd3b8e6c24a8db15bee7f788d31197ea3587daf3906d38e7deb16ebdff4574af0bc36efbcaa270d3b57bb0a424df436c4101846f342b4abe1ad8de337199f20c31d98e79bcb6e2534b7ac8c1759586b31008dabacb7a7fd56ca8b11431c836415ec9d4fe49593e34cd6e06d565d0be96736398728f77051e936839e335208b9c6d7434859e9f8cdda145ac08ede05b5a922ae182a78a47a282247d1dd24a894fc90023a9b9bc5e94d21c7df0d633915f73b14f36815acd92557902b81f90afa98af661fdd085c5372a41907d4cda9e150aa5262ab03cbc195ae64305909dc70865b7a842943cb7468c365d11ba97b10289d207c8815e6d929436449a99853327391aead437905588811d3b7d75fb4c74e4eb0ffce43f96155041e1bc204e899050ad03613a5bffc678a6dbad5139ef51448c7c648bd748aee17a4d7131557b0632f5f8292b471c69e139f5788f8785a2b12836d0d6076d068725557bc5bd174e153437603c96baa4f912a8b904879cfbc87d829cc759711d02fb3ce7d7b09a4a734ceba2cd85da9dc275665a7dd19b4aa94a5c03e38d3afa803ced96bdfa34eeaf691c236f80d16ea409b30d4550d36bd56daaeb28163be792e77dc5e53b151464c8f0d88e85e593c4b4637231b921043f01784dfbc3a0d394d0041582108ec8da12b683690591d368fa976aace2dd36196e24c29d0d0d0538cf5c77ed6ec1ec6e28c5009a73145e6193431f060515615b61429bbead88e009926abb5ce0dc1cb948d61ab06444904338e218b36999c3411d726ac556e65a8254a5d13b7bd11221844be4fc9e7dbb1ad137f9aaabad6d8c622d1b03fd2ce64445633752a2a8c30c23d7c56b7d1d9b1f94f53707d23074ba887f093ca9da867ba9486b6cb9c8eed2b5e69f7d670c006c53dc487b27d152b3aec4b5d1aeb8d1316d388db5c568ac4dbff707ef0521a14b8d55c09ca3189debb1d2b1f8fd7fb2577e2c4d65badef7a65441eeff65c9015eccc3265455728a7cf5ccfc89e9fc75fd5c4de38474551947f19af4e04ee2c2b6c48796983273a1b7994fd68d90e8c32b4296d477399c8fac724f24198d2fee581e7e36032a4859bfa6fb88bbcaa78526ef937460aac5e03fa71ba7e5c301616a9037a5025507ef2ea23665adbfe6908923c526b7e0e6535da22ed7718f614db3eeabfce623b152a8f6f51a79b0af0f81ae6ec38c6d27c3da1a139ebb12f89228c88856b17a9bd04015a5843f94d08d9bbc9967b4b99929401a607d907c4076088086b9b4c2bdc566baddbea0e82d4bf0ffcbabb6d6db7ee21d847708f2528128d461f88473bc02548514a7ca31f30fdaaeac72edeee207cdf488bf932f201d3b723c0a5df3c4a8f72c093d672ac05943ef5a7eeee943aa594babbbfc0bbf3b8c0f47d94a1554dad0c569ca1556ddbced02e3bde8b7f2c397106195a5593a10233d8fe19dc855a05da45a717f485788e6d8b44088e6c914b6cabab7e0d15309fdc116cd236e02ac0dddf52965b07abd3afe1e62e85e4fa958e73f678e7ea3acafdd218a05f2259a995ed8358a5c40a72a9c3e4f506120d483608f92489dd6b395b695a56f83817517289493dc06560fa05b05dd7756fefbd5cf7f7bfeedafadcb5b7b39cadaa92c6c9fdfe4e0bffa28aa9fa6fdda80f24022842e06244442e716dfdcbbd5305c5dd69e1606fe8a0a19476dfa150d7f47e214a2fbd1ffa20de7f546cfa7d437f437fdf47e86f2814facffb2f44bf344dd847434f81c0337428e4ddaee36c15b1e5018d149a8640ab5c033d41203f2c305934ed6aef41af431ee007f1c0af2215638040930e7a1f04f4bcf7017a1e08820bf81e656895ff0fd83ef7fd27ea68d2ff8686e6090d1936c6b59da27bf906e9082e80640620b3a65216d0216e984f9863f878fe2ffd027fe547faa10fb2f2dfdb770f9cd346e7cb02b3675809f2fdcadb0fbd8f95ff3ef433d3b1c7ca88ea8185e83c0c1c71c09fb0ef6dba14fd0672f28cf701779eaff254fcd133def218fde84ba816484f1f7500d2d3e7417a5aa294e2d28cb16cfa9e8a28fa163d49cc009d221adfa60dd026274daed872d2f46ec28f7b84784e576f113c9f7e024260888a48c1ee744649fe74f6b3f66af2698b780b6a4fa3e39b2108babe2f140a7d5fd27cafe38340bbbc226fba77ce2f3f7f2357ea66f66efedf9fbee7af82b4f484c66928ed502804e6649bf69edeefc423ee971a5f510736d1dc4953ab1d94eec8ed8ab4cac9c0f7bba7e188193cfe9ac1638ae189f99a73081fcc9afa0ece1ad7410ee814d995c88e64ce785f017f74c6973e88caaf7c90195f7afb313860be68109e0d5b08055979950f52fa196f1fd5df63e555be47e9673c0c2baff23e56461c243d54481fa5d18511a76b02073488c1544613bd81123d3d7affa0ff7d87441a27609abfef75b4ca0f40ff13fb47e20ffafdd4661ab640f3e83f1ab6909379803ffad1381a512d887ef4281ea21f8d2f73451a8d9ec7cca3f1cb9a7bf4a1cfc958fc9e7e2f1243a73cfea2c149ff7b31a6a15de0386bd899359512f1dcf3ffbe102d4279280fe5a9f90b91aec0776ca9a27056355777d4a10dbaaee338b7550a8d2cdfb889a15d1aa0b4092626cb5fd48926fde94fcfa0186aa0410ae67e6678c44783bfbe918686864728c7e003a631b8e0f4c70a1c04498fd07b1fe4d69d4c803c81749a641a76ffdd1ce02048827c7fbfbfefc3fb100a86fbdffbb8ff8d38487a7cefbd8f50134e282206fb469726e009f3121c61069b30245d48b45102642ac9f46d6878e86895d3a7d1d1af1a5a5a4a359fbac2fc6dda35d2f00473634b252203d3af34db1d16dfc7852a154363f939f46e32cd39c9d0f7d80afdcc27d6605b3ada45c723dc7168e8de346b42d9bd1fcb23badb420c70cdf443ef893f3ce441a7e40cd029dff398f91bdb1b4bfa1ca0d97b2e24dea7ddd8d2a46b81ed88af480998da276aaa1bf567ad94ab1dd785375d73ad56a95aa5e3851e31d07722a5a4a30d8d8d116ead88afa3652a12754b4451606ab34dbac2a44d5d93aa6afea45dfd940655a1221a129fc584af373ea1289c326d02f797150499d61b746a0e99be7fd14518b3c6366b46ef4fc8f47d8c4c7d4aa6ce844c7d0999521723d3dbcca3b7699148246a95e8673845a2d7e637579e783bae432af9d4d1ba147cb55f1376a9756b6bad96eb1cbc5fbd5a02696e863cdf5226a6f9d3da5aad73b7db759ad3dad92a5badad0e1ee1fbe60c65c955afb5863cdfa758968098f27ceecbdafd5c9bb25b6b476ae39d58860700c5b27ed9dffd57bbee6b37de12c40098ed0804ccf3c59203bbecaa5b0ebce14d67ceaf577ab9c5727a9e9d5b2c2f0dda63e215d75ac7daaab68b00bea152598e9b007ef9e73acbe456265ea825c084d2914e55b5dfe9e06b4f07cdf4ee9fe9b0556d5703bea1b21cd701fcf2cf75b6c5d4dd5ac2def5c0b5b9b199d9c73955b4e2d4ebcdb9aa4fbb31ff72806f9e40398811c2010ef304cae1c937060ee50994c31640395cb1c3a89a85aec0a33c81729805619c27500e3e59958311275f5437fe2587582ebf657130e7a7307dfaf4c962f2aead2c26effaf5f69eb3a67d4ef790404b1312309d7e8ba86e9d21dbad9f46e9ef1813727f0f699d767ddfdf44fa7ba75db59f06f9eb27a7091f173c6189308c3cf101d6fe8212e4ee723f35d2230619fa6768d74aeea72188dcfd1ec0b92c1d96d82181143818b20258bb0b723fede9c27573bfa8ca10430b31be18c10b6244602dc8fd364ce47e039832f002db11536460451753606dc40630f79020729d4043a460d283154037f8a025cfb9c2ccdfdff0e6a3b79b183914fa2ebc09f51491690fc9ad13a3b723b8a4b7d38dbe0d4764ef3d1aa55d657d2f0abd512851ca4aa7927ce774a9d472575b21e021dbe04a60e0f26ff4a68ac5622198c56230fa559cfefabf22dbafed9ab9898680cbcff46f47a338495f5547d5979f6f4ed2131d4dd194ce59c779c7952aa6b70a68a53cfee8be9f1b5108680ef4e8fe33b471b1945d9c403bcc728b3494f27c2134a7773efbf5736039b0926c364322491151cb0de80723d8ee1334d0e78925b3d91345f099d12008081bde9a40020a26ae48c2c3fda2882783e28b1d24a0f86249121d2f566357f8849124766bcf0d9c0645134320c3f280ade83b188b28f60684c5ed4682da039405122eba271d0da807273e403d34e1eb012ac108785057b329580006adf37c6430b00149b6439acd6444642e00633399144a84cae049215686acf6947145282b438cf945685034b1d337289c88d5a05862c909f27c7056b3a26fb320d86ab320dc389f991070c8f3473116d03c66c4909b0a7450e2062f1c824d797e0b913c5fa6d9145f0c99c934a60af2fcd2bcdc146fe04dadadb37a0f152328307deb95ae9d9ddd82bb5f3ab5eeb6549a61ab9b46eadd71959bd5ad7badfe396dffcab9dbea2d15757f6955fdea5e3d95128c80307ddade95f30a4eced6aed60af6c096ea4b7593833ba8d5625bbf7b7e59bbcce5cfb35f77f7ba312a7530080cba6010a6f3d6f75abb7b345bf585d76aed8de2de7b6f28079f10e0eddc72dd15e27a4dbcd00c85beae3a570252fa3e0b5e1a08da0fbbea1cc7518eda2b44d874d62a0a45ee391085c224dd3636527c5f2772397ffd39d8899e3f0b7662e77abb5027f25973bb02cc970c55c810f2429cf74eeae06f4d5f2f544d2dff122a012995461ab8f1bfd539376127b1705f7253c1a622edfe0b81dcfd7e865842e21c2bfd4876b40902d39fb58ae85cd9cf9409180a85ba06cb60c2840913264c2865e26f278db6d73ad36ae9e89086a65ace5ffe6fa8545cd752dbe561d5410d47adcfe9a0cfe9d5a7bbbbadd3badb5a337d4e6fd508a800434abb26156028e9176dd7a4e20b2bb2dbd9aca920982b7f777beb77efe3396eecd1ef8d38383934cc5e90e146b3a9d526adc77deffbfba43184e2dee37cf47b6310effb47141704c585df02c31107ff1cdffb0ef793bcf771df1b8384cad603c2079f84228d9e88225d118fa8cf8c5869c4a1b21e1f596c468f9d599ae8c54ada33a2b8cf81adc8ee88e2c61786d078d3e7c06afc84e12fa98fcad39b93fe8f43ffbeca884343a11187d2c61b0e0e9d39edf328bd599ad8224af416251a5130f4d7ef416b5c1c8142464f2c061bbdca23e981bffbaefbd1f7e87e14cb4e1abb1bbb47d6b1aec763b55bac763389766669882be27492bbb5be793f63a5efc7dff9eb1000a6f2a31107498fd197469cd28ff08f469cd2d8b81b71da07070a53e9d957b6cf37a2489f03ebd04f58684491c617864c27457666694dcb8ef24161dd535887a4c7e843281842ff7d8f90e871fc433e3d428f471c97b9fb8cc69e99d76aa5cbee1804490faff49e26c08278234af4e0877f479468f431e22041bd709f011376471f5c14132061882196c462309f39e98fa3d3b0ef85841e1c513e3ad40bde5ff7c9fe2e64e00923dd891d9460c2e4492c069bb06f0c222434c6c21b921dd0a00959f7a5d3b2ff8a12f08e21b33cabc8a5d76aacea38e96e67b944bd101be519d6989dd558f6b733bbc4d2fcb928fed3ad2dbb73b1ec9c4e764e96ddceb27346b2733ed9b99fecdc6c4950e69c5c8182272c04a3b9f45b8ee5090021ddad1154c324c512401039010f38d0927447945827497431250820f0c0032328c1ed6044f757ce91b46a403902143a2c11842b909044b8832c9cc2faa046173d70420721ccca10e23603bbc30e4c5031e4e3de6d0410bc1d42d03742348aab7246cc1bacd005e3075caa54a616ac6ad788934d61018913cc8e48c20f4020051254d619c132f103ca12426881830c7820850cae0e40589942092540a243061547b0c1c76ed13c981a891a0baac1141cec000832f8028b18f8f073854bf7678d773f2109b38a1a5a5f45a23470d5d90c42c187224c21031290412b0306a1eb33d332995a70cbce76a8b13222a28b984ac89125c10230c0c0a107260c41628bbccc7ef79a0828068204b12060f013021ed8915c9a5e757be7360b68a99a99b72a014fd8c5a6b781560374a53a0089004a7f09ce7eaa059dd5e79cd3a953a77449a6ddac083c9fb6d3e944a67fe7f8a3c3d3fb814cc55bbf1aba304b4b2746e2a6b1e4c69ba9297b1eb57b8ea5fd43bbec585e7b6ba6de97f443e3a49452dad9daa2acfa34bcb196526b29b53473dc674aa79db6565b3fcad99cb05f494f6899a179b92b56b1fcb8f73cb14559b6b3ef2de05aeb71dc5bcb79997274baa8abd77441ec2fd91251e7fb8fc952045cd63c7f8b911005985354066d17be22d305da03154bad128fe01efb8b1bdfc96efba26a171d9f76f7a52bbb37e1ee47f75f7aa3eae9abbaf9b3edfcf9d56bcf8d56cd1fa3847ff4f8fb5fea83ee71c0e61f21076cfef06778130affc51ff8492a6ffa9268fa9cc2bb7c795f28903e051105714e92c6bb88739235e6a39e45fc311ff5df6c6141892d2c2c2c335ac672b2fc0925b2fc6419af492c3f976a8ce5bd78652c4db9344922fe92887f8658cec7b8069bf1f8ad6ad34bfdfa2f690bcc8df89a4ca63a8642684e68af0af03b0f7852a05604db340b807630a26798a6351202cfbeb767940b9218b89fd2bfd786d2ea73ce49a977d581534aa93b7577a794fa53a74ee90bb8ee47cff3ba11974c5d770b1078761794de3a0ac225c889a2c0a32bae37da62d4035c964641a2282c773ba765e006622d17de74a696735cd775375a2a105f10dfefbb91e77fb3bbf77a5e28f48537fff2228c7b04c39b6adbbbdbbbadbfedecb5ee95ab2d5cfa40300c455654e6e4502a2e67804ec9a4cf5ca59a8430348c34e2a4ffe866bab5cbb3bfe9461ae9ec52132d814bd36df5e3afeebf99a098a2b4abc6dad543dac57a7f161d1659bb5aefcfb2d32e199e22ed2aa25d3246da15f3fe2c4758926817aac7d4939c8a1153b55450abfc5b62ca49abfc5962aa498ae6f203dc4f533401fc5804ea4ba9fce0f224abc94e3b7e7b8c65fff246ee87f95ebd445b93feb46ce3ffe7770f23928c38b9126b39650f46ff1b4dc1f4734181822459bbb8d5b3b0bce9e6afd548d69af417850cf06030630a084cdfc69727198988b9f25f892423b7c68aa9c43243e54442b5b8a09082ad236f4a63b688483d73e54fbbf1de6cd6543132b571e30d5103540062796d882526450d549558de0088a5d75410cb159eec9f124bd24ff67f11cb959eec0f00b14c6991fd47512c5976b2ff8b650aa2ad4c39c9fe2e628b587a0d25965ecb25592b2f0b4956924464ff1a62e9371aa22dfbafb8d4b27f89ac9145647f95934c0395ac69a0e6d2742b7198a2954e2bbbdbdd29af4ed753763f993e6957d9414eda65dfd6ae59bf24f564b74fea6997cdfea42266d99f442339e9570dd291764da0217ab27b33520fc9c82cfb09a2c8256949f61330c925a9497692adde121a2d28a85d6557cb334f49bb1c08cca537f39a649f5a78b3ecab9b4848e7d8a874c78a6fbe7c1d386b66a61fce1a064c98f5012e6fb6dfb5fd20c635256e95fddb2a9bed7553cbbfa8fcd599fcd58d2d32824d2a9adc7223db1618023b7320f784b3200882604eee7e2ef4365d83678fe3de34c90e193061fe330c6d1d43082541516cd497b9aa7594cd7931aeb5d61e6774bccc52f54612848c0a2354cc269d2c14a901174230e207082aa6f8747aa82fb3659e11a480f822f75393028cfc2c81032448e8e20757f20dd101228bdcb966618258ce9127900964f508ee438004083cc9d9b6448540619c0c30007b680b01f6b4734df09a836ab1b09c165caddbe92e0870497dae678417a285be243dfef3813e788884cf6bb6e571db9343ef76deed44b52568115b44bb8a5cb7a2910ea6d1cc0d1556bd40356bb4273bed9935f6fd65a86190de784eac4093fe54948104ca30575b609e769557555fe56fc56953f8f966bb38c0e51f134f007c3d5f5fcb8f6628f2d774967fb4edb694ce48554c2b07cd8c00b5566f9faf561e337bf4d6eadece556be79cd3154ed5ac3e57eeddf59c7d29cd7789fbe52de5d24443d0f2958b7f4588eec7254a99b04b1081942638dc0a032078235aabb3dc4bd7755dd73d7d3a84e3387b39ae765dd7d9207e3c28ea0a5010537c4732982750103d950302e8072279023921ab224fa01f8a64d25c810337cf1a0e98722d996679020141c9b5f4402c16cb35986a52c825187635775fbbff3ab1ac23f7271729d8c71ffe9d67eebe3e37fef0af7ec7f2be11ddb71746537069ea4fa508f69f43e052f572c39db3e30dce0041f3058686b9cdc9aa936f5d147fdd5719a2ff76230a705973ad95b3b5becd5f0de386f8aa0d8a53971812c6129890d00d33e8c1a1439810050f4cc8d442466b2d7268d2036b1b644c88c1be0ab6d84fcc800735d867c1163bd683430fece3c016e7942c663218bde5a0841becbb3ec4c007f679608b738a2634198cc688111d188e10308b1f62302414a7633b42d0603842ba16cc601e111d536e1187862146184b6042463411d822ad82074a7a60df086c7186f1441536d8874798d4448ed468b01c2aa4db4dd0fdfd1eab55486713d21a62c80f0c09ea0034273b136ab62a8455860f4660b37194e09d619040093db0ea220e92eeb9c711e23121fe41848c31fb762c09a19ff6d3feeeeeeeeeeeee6e1cf4bf3973cc0a223b4a5c266013b0e0c6c4d3324be446cc49ee1a973da806af653774b2e8ae4d99abb5044a88c0dfe275efdc20c04ec01c57c71ec82836c0e505e241f902612346ab11d6d63999989a62aab24ee9280126b5457bce169369daa6258c5d7e3fbcd5bb97f6f1c3d9b37acf39a927f21a86eda775bdf18aa41a0af148e5a78a2844402877dd83ffcd2ebca1ffa2fabe8dc055c812afac658b3ad1fa4972c12492fc805f60faf32529c1dcddeb3d4d4257c8746c23702bb772d724497eb818f090e0a7bc798ec692e6127cd257efc3bf57349634444028df90c70d6f385c6a95bf29f4e10d47b92c0ac59212c916142ba5f4ade805a6449cea70bdefec87e1023e310c6f3c17aec8e5ce8e28d7034c05a64bf2fcd9edddfdc4d5d55adb4d96a6dd5ec7ee2faad7cad95a395b6bf531878fb3f6b9aed556f746f2957372d6ba6ff1dd4984afa35d296d253e0f0aa695560ac637db45bbbb85744e6dfa840e7ca803d83c9fcb73a473552715b9fc8db8fc4d6af39c739c5ccea914e79bb366d61c4ba90b3e1e33cf39e79c13680456985af544707fb24e70d70b7e5796727322edfe8a654ebe2038a27884ff037c7ff0fdc3b79f93a9588235e4d07f6248bf9c1c128180d91ba90ef4d6596fe7c009efb9ef4bcfe33c8fbba1e7aabbbbcf27d37598f3dde7fc2b76f33bfac4ddddbd4eb74c8c9a8cb2681b44518cb4f8685a453fbc99e30f94c82dc2e88726598cb018fd204514457884ef1bfd30d262a4c58836d2e2f230c262449b5448b18218ccd61e513dfaef1348f003ebff969d618e5404fcb9c4f9099c04af00cf6f317402d34a97409282270eb6dcf6e98f6618e5ef24a54da7982d99cd327d03f48bd226fd4d3f6c62d6aa0d9ffd46f5b07f41d2f44183c0a603eda024cf9087ffe046d401722320380a8e02a3627961eeb3f6d08bf952ae6ed9df3ec1250dcafea455cefd87654efa9f3249c6834b52cf9c1e66e07be23625d7d04f73870830e51e493d73d52ee33af1c8c8e0b031c02c012e2c89a9332d96141997cce3a0a11173b45aaf57cdfb7f35e2ccbfc499636a4c8d38f38b469c5945e5593c84819e644bc0a54b2da6c6d499168bd562b172b4ea4c4c4a462419211d79f9d2a546836266646aeb63aa8c58b6c69866b5582d1c2e19968b25c362c9e0687dff420f1a04826266aa0539d1e6af93cca5e6a28991f9ca7ad789e72493f92e5932ef4af180ce578a36499f00f8390190a291ac6f962d0525152525c535a3828e0a4454d811a388524428e24df442b4a164a8408a960a2279c85a090839c3b4cdc4e480d22e1cadd7fbf330e008b85f6439c94e474eb2d3cec9e7f4739a9d949cace81749762ae224fb9f7a4c3793946a0baa273a2a03b717e2ad5d5162de5f9432c6469d76a1627ee61cef3f126957cb76da55a4a75d38de7f2c623cd22e54eb35e2089a11a9cd4523a3c2734e52b5d1142cfa8f5e3a5dd48537a9a054939493148dacb9b4ac288ce9e634d3cda595b02a2b0aaa6d0c69978c0e111b3bed92b1c163a34811ed42d5f1d4733a1539f19c764e2e647992a1a80e254292ab15287487ca604493cdc900d8b0640fe953a326dab2e9e77489b6a9f237919fa2a582fc356143607e557fc71bf117aa8e281858f81def8385df310641d263f53b3e08ccb330fad8f12c3c0b6390d5ef183b23301a8485dff13ce274d2fb0197291a0b23cac78e877998df31763d4ec2882e35279b559bc5ea8fa2c0075056e4c87823428755dba5468570a9f90b660533ae6618c36aec8266ed3a65fa5fb792494642dc174a35a932c0291aa5618a667ff0ea61fe043132acff5a64bd0b172d1df332a2cb93b2b66246971a586b95cb935639abd6ca1a5d6a2eb656b9ed018b38739974016da110cf4e11db6c34faf9a9f96bf5f43d8fc895a568fe226b385dcd49fa302b91fa38590b6fc8da48b2c09c1a719224c9efb1bc55277f23d0658b1dbffaf2ee1861305e8db3bf49b2eff17f86379d13fcf7cb14cd5f2c3ccc97379f4ecf82986ad2a4cf2651789811852fafca8c9c3c5d50601acf12d4ae6eb175f2081495dc884b46e2287c417479e26253fd0c5d6a270a5bf171d205f0a54bad24495f9224591e4d59324f1965830054402cc4c80718557ab2a6123e160297c21646f9246b5514291d0de503e677fc8e31088aa5f62c303f61abb1a3754e6096209b8fd5c38ca6db938cc2e3ef1768b8dfa58e544e2c52f6276b79e545ab2ae9711d5982589cf48bc656b6769da2acbc68172ad62acf55d6ae51f6afe249d62a16607ec7d3a834768c2e35afa24fe15d6aa43a7ea5d797c29b155eaf1ca2ad569aaf6fd3a39e1a299a2c9335951f7f996e4ebae924136d346fd3b6099eb955c63c8be64b201ded6389a666028ef9cea5e9c6123bb7c4b23ecdc7d4114847cb35ef3f67cd74bd5c2b7c3f385d39be43b956d40e98f5df7591b5ab66ff0f05024c236b386056f8295af8e549b61a5334940eb8146dafaf2290aa9373bc4dbb78d12e54eb499e71a9b98b4d34d26a92453a9ee6a6009734333333332927a9a0144db4a5682f1c3968441d22298956f9d788a49f56b9fc6b851c2b2be10d4d8e1747dac89b9334723c8df08626c7b3c4b2e673fc0c6f5e6fd3a3293870fc688ceed6d79a61cdd46e36623322796b95abcebc3f09858cd2ae19f2898c487a31339236991609858c42d66cb84cd16c3c46ccf138c49a9ad7db740e9a170d1a34421e3493624452123f4eac9cec0d78f5304f3f4573b7f136dec697a64c73b24678e39a79168eb7e98fc6cccff0c6d55debf8a35fe63fea3232dfa3e916c3fa94173131a21a14276258d5742300eb6dba8aa61bab767777d7feebc2f25f0567be431c2f239633acb1fc4014d311b068aba4fa658ad68af99417ed2ac95a6d8d2d746ea568a9262bd93f754b45f15721a6c2107f1588f40b4c39a965ff54ad15534999ad5da568cb4fda4580ec4f7ad1ae0985d87f9289362930fd9ec1f1363de3c26162d55a59312ca01d0246b15ca4b4cb5528d6d84267964bcde54911d9dfc586420c051d7f0db13e35c8fe28c8dab5d3af21a32553bac8fe2814e95795b978d1aeb964ca4ef677b9b1aaab5cd9b2bf2fc9ee54645fd9da55a66807d06127a85d1447cb4c8b4c4b4b8b098cf919deb4a8073919f3a22d26e671c4fc4ccccbc4c4c4bcc7bc490a9098f78f69c5d4004fa71d56ad56a7b2582c11035527f7f8a33eeb3f96782a820a6f5a1fc3faeeee66354e0f6b2c717862c41248b543f0572a88c4e3af54edc433c39999af228e77e1028fc6e8fe6244d7b70c4b86f5acb7e9d10da76aa99b8c98aab5ca534d82524f52b676c97c931b993115d41267ae9d63c49959a24b4cd952b428987e49ae7e5a5fbe29b37eba6873d21ff541646d358a367fd56f8de547c9f563c6d274cbf559e3ac38c6539176b1c67266045275aaabf5fe279e76d527154132d2aa23adc23cb8f4b0bf503d560ff330230eccaf46dc63f53023ceeabf95e82d71d25722cc5bf101ab875975340ff81c41978481abb71227ac7b0339b947cf8a56cd49ebafc409bbc10d46f2bc810db73c803c6f3044083994b1b0fc67ba91467af496b07aff1696a096c912d4f2d35f2c414efab7bc684bd1da3580f7ff5cc0d194d11858646981010d83f99548612b25ab2573359babd50ff984b49d7e8664edc7c90188fd302285b104cde8193da367f40c295232e94b975a8f2226b00823368c65a755ce12e4f7626c32a158829a64fc0310c95aab7c35ae7e9c74d2c75fe28f9346fc3561e2ec273b9944abc89f0e9ef0a804ee75453d0a15d108040000003315002020100a86c562916828cd34598b3d14000d7090447658381408b328c7711c848c3186004200200610440819a29a6d10004073909c42480e7050358d50263a604c452821075c940437322dd99952a46a7484522e6e3200d29b0df7a963090655e0e05740e366b5289af79631aaf07468595ac7927e4b575a12971cde8a969a13f1d21a0a153f9e6f7cf10d6ed03662e64c26c2412e4bde605ae0ea2e2cad416fdba6b2ca8ad934a71c7754ca6505392dc5a8830aed8bee6440e08364dcdbb69903b22a042fa578e4521a25465894c88b1e98c5840b85f713f3b9a2f42d2efeb5f9a956b46934f10ec496c742584c8682b408e455de00a20edbde87ca3d622ed839f1b550f250b06a30fc805d5e2e55c3c6619425a9a0bfa3e0cb0464add7110763111e76e6f3a0a7f2b7ef4dfbc959a6d061ea396fda68c4041eaf06bd9912627441458a157fdccd57ec44cc83f3d925bd57df69f2535c3f349240947e5ea4338fbb9f2fa832b9277bdacb5e1e412a4fe9f54370ac8e6a794a8b12fd002dc5782f04b1c82895e57d18b8b9f92853f44fa33e137edfc685ac1dae082e9e9dfa1c84897d9f9614e645742e0f5285acc4323248baab2a2c3c5958f555f0d6835ccaa8f90aa42633d000a7c1fbf0b09a31418a82e37fb6ee8d6428acee2e4b9ed5046288514858cf3b2c26b07a8d06d197ca44c917609d4d5fd6d1f771708bcfceb3747395965a6078290fd94871133cfdb062b512ab28470bec4868610a839cc3b02ea15ed6079b4b8b61bb50ead3d666f765bdac3dc849c2b3fa9537d6b4400fabd86a568d1929a365b9c442fce702ff629d1015e782f6a559658dbd968f054c71fc31e9c46fd8933dc0a298fa1079181b466b3e47c6bbea82ec288fe1b5c076d586fdeac96be81e31e6377410118c3190c20b56835b1ccfc42e6d2183b3087494c1068610883142fab6352a8bb0fa48c9c92e2696e93dcfa8000f837418589994793f0a52cdd9570a3343f9c82a19b110b653e0d0359e00056483f341c98319d6daaeb6612c6326968b9b1407aff42c47f5f000bddbf13a8193cd5b1984a4950eecac403f6658c730639145b1272283b8ca1023c82e5622c34f2782160d8cbc30e96daf07dc79c10bd44681308b2a0b0007356d58ea1d47eeda68d1015b1986348a481a59d0a9dc18c1a1cbc9de4ee6624b32be0495519a15a471c3a42f045deca40ac0a53b629611b0e1f4437e058bca247fb32cc817fcc9a0b1dc6d7af41b22952f04c40bf9e84e476ddf7e9974957e64b0c3d32722a2f6b1f77e0c9b07c61664ccfbe1e7542515179e133cf954dee11c75ce261a3045f3a56736400e8a1cbcd7e64c1375298eab8f5459e85d4145550d97ec5b16c697eb103f44dc35f361003f665d62daef24f93929bbd99d7f9ee682b894effe52f7f1ab90c5e630c2e6fe00c3c7a8b4cc41e3ce49c0db3bbd9b1c59c62c48346ac07bbe9e0f2d228978d4754b5ee11d2218877ebbba08ed3c4719f78769a4b3039b0fcda94fd3678ee544060df31de564d82ffc53180915c0a1632c8230067ba70f874d897bc249749614effabeae8ed9d459af309617e31d49ba26639cc14468cc00c9e0da437b85a9c4d7709fc9a72084697c8fd411a9ffae66d9f5c192f906e329f46cb88d7482526b704185f22b5208771f86b6069129548dda23eab522fbca092d0a6bcac4908656449685f105b0e302e859000624e45b865eaf22cb744216b86b34778b8323a042933dea804b969c4b0aec4ab28235d083236f647b394960bb92698ec8ad05eb079eb29d2064eca3b54ed825af95a8fc55c1cb31324c72794880ea7fef1e64160d9c89b577e19254720655a0df6502896edb0f94eeb1c085bedb45664b438ae86a2aa89123219d8cdc28e1174aba6a16cb513936f73a014b8f2eb534ee3a0b2a2ae825b6a22a1bba40cac6beb5a0678bae520fa37331632957f9378082f19edbb35ac2e9f2adceb54b0a1e6040134c5f4819d4d0d708250b7d460a623492782ee6dc5d60e1be6561075ee963217badaaaec0f6b429de902347e94ffe035cd36b293402dc115d011c444a4bc83dbf129a6aecde7d89acfb6f72e7f8bf5d7a6be461bce49120ccafc7856a470e823b581f805ba8a515bb309892dce55197bfa4a99e44adb4528d98fce830ea4ade08bbe0f4dc295b2f9db8a9d9850a084d4d548cb9c35ae2e7143fac1de9f1cda5b7f561a78ba86f9357d43552d685a119defe8f4a5c8a99749b85a0a7029411e8cad61f117c2f7aca5676c8c64be5eba3c5225f9510b8522476d720eaa48175f05f175137cf327d890c9a33435c97e9f108a9a3e003001f9d4fd19c89a1df2479d2abd1253c18e529f4e0d011758d0ed125ff1b3006201f61f01fd64db4511b50be6674d45270e1987e703926333a83bb7f510ca2f485176b2d1ae4602c3c0ddfcd6d7607af623ed96c2bbe2e4f90dddb8b092114e874194bd919b2fa5e40f9ec9644770b0e000e2bbf5c2d12edb288c8022f56ce168a650e4f4ff9bdf1e32c292186771f8c0d5dad02dd9eb3895ae7075558760e9a9bbd8b4dade4f9ad8a693edb3a19061812ecc4d0355d6686d2c7e0f6610dd3399f13c8395fbe229d0d7246981319c478563cc79d6751e9926ffeea3dc40e4ba88bb9c0cc84d7e2873fe014db2576fa0fe9b2cec44e5da2a31b2d0c7f620f6b0f60840a0b4b20c03f28a767d04b918ccc8fc42370c2532bf20576d09d772fd02670e454934174d1a8bd2052b0edbfdeed38a8499498a41c65a6b5e1fd1ed11eebb1e8b676e10de1afa77428ecaf5bae40bf783f0e4b40cb53ca0a61de0540e68b98298a51319c7f12df8a54665ff6b5e98ec99d4466450c00df699fd340d7440bcb21827a042f488208b7bb2ac0829aac46fc9ca7daf93d21420a20b7884b83dc4222a25cd1db4c0df2c81df681febd2dfccb278331deffa0eb34f61abb1cc50af3e9a98cc76ded2d7190f0cd9606a266b6d72b39875f0f0c90b64d9123f68f7c1761dc3531a7bd1c4242d34bb296d4d72067abdfa6bf55eb48a92643561ac15ec9d9635b3000e2fea34744c1be592044ecabe84776f87fc69ac80317205419a6572618e20f47d9d243009572083e374368c0a8aabc6b356d24476dfe9a72446f4b22d08bd1e3c8415d600dc3f5ce32a0330e75c712d165524725f7df22c7c5ae1939b8fe565966e28e26ec3208f041ca06e7d193cb4fc93806e8830ad3b124b6d43b1e2316e994da3c116fac25aaf3d213dd5156e46cd5d0482d8f9b6fe0b0cd9f733a0614ae3b211a704151bec7b4adadf2b28e353096ec68b810f5ff77f4869e707e44149fba50c44fd14022370a35b7bcff292abfc596d4c0c4d1b0c9995b715b541eec2ae87a2f0208b7b6dcd15cb3df0c2a1d3dc123fd8fa8511cd915310da6467317a98d366ac30c7802c9f9ca4802fa1ff73302d60435211f5ddf2f9b2c4f1f858e95a02a722cdb6060bac65084e13a24846d5d52cda797b8228b4983934e64c4a618fb27d8f765104ec78652936ca9b65a9cd490af37483006907d92c2bebb3746615ad654a47b8361426f9cfb66de600a94f04953cb3f880edfaddc123d97128760170e4430a8bf84a58ff67058263755a44ba97f985446cccf18c644c04e41079672f00333cd4d5b9e99b4e9452d708c9a7f8849bb289129e916d4d784e42b3bb96f632476b96088ba7f78b61e0b9d81dbb7c5a23ba54e14ccfcbf2ca49cd20787b2fd7f43a7e6cc16e37e60eb740b88c4a8a8714979272bb9529b85342132d971a34a50f44c3a081cbce304adef5439d6845bceb99e7a250356cc24850b8ca91195213fd651d94342e24d67466c1533000e160719c43133c9816533a416aca3cc0af53559077beff520b32742e7eb8c2c71311e9fb0d02236dc03c13ea11591282c8fc04654fb6799395ee70bcb7d0292a1a8fb58a7f529cc8bb29e4133169e8fd8562ea622fa94d5bd3e1bfd045a819a010b331c2ad4e80f399fb8c328c988058db70d4e0bb62ea60ce8251fcad69c6acf3fa31a78f052638a66c90a3c09d568306a6b74f1db6861be2dca50b1421e1b79a0f3f118604fdd3b695441c344065bfb1d83352c0e1812f1abf18544bbd829119cda894ada195c12708de21ff26ab61b91895217ae1fd6d03d45acfcb8e26d8e4580921153c15a3d9c1664d59142706941e1a654fed72f7c0e8c7c82109852feb68e291ba19b3a6224ed77cc41e1cac0e011124857ab6e0b8c1703c588d898573d064c93a859ea2cc492a86f227274452031b066be11a58b2c6e9fd2ff7d5563eeee6f9d120b2624824ec3e269d5e7875ddf53244222f7ad07cded2535789b54db7842030d19436df1a141947db93aa6df76e0a19f3248aec946e3fd6fa217d6dce50564c35a1a4cb70c1c94c31a1898009a0a7698f5d099e20b37e957ff578a316d9fe798b20200132725b5eb72cc1678670c5408e5a73069fdfe0ebe72136736cc35ed2b72639780ff5e606789f622fa821390144584627cae9e5881e6fe059ae176785847215f1a8660c68a1058daacfd1c10c8429595039f13284ab64adb27796259fccca76d246ecfccd6ed3d7e91623e0d3941fb5ad34182ce9d415ddea6513fe5ba09fb75419f005e0ede853e360b9c0a1c7ce01aa8d13d633a955ce63386043ad73f11c170c2b188cbb722cbddf75b2031817a73087245441a4e784492d6c3cc70438e66ca38167ce29563796a7313e48fa3ff87168d8eef320a226af199b47c61839f94aa6c610694b33fe165831721cb65c900f342c7b383fd4a34565ee617037ae4483547279642a9177985695b7c992cb1b45e3781ddbb8703055879e5784b6c249e6255a0362b727b51b6cd1ee446c2032bffd70e73c913cd87fc572e7c087440470292f404643d0ef225de91d892dde0a53c3b872f57144835b5d6d26916c142024784afd64d3856d6136f30923eaeccd00b457e999cb2d960e516b51b16d3806eb0cc5842bc591db8fff717414bd64e83e8250bea75c4967b36c2fd92bfb1026b18fea7ae6aae5a9f899953968d682eb5f49618116aff151232e55a3664f61d95a4b7aa1e9eefe754568fba65b785fa9f7a47a28c44b85fa7b54f52b387fffff1a379b2fbdca6f80cb62157fe9eff175fda5d99bf6997d9598b97bb13754b486e8a4f8d498fb6ef571e5d104cdc7965cef444eed8b4ad316a79c17196b3c9fa7271d90a671dd661085994737d1385550b4360b211a30478a77b68897e083a3b139f2504d25ff1f655510614c4e6d465a695de5ece8c4330d77ec89d71d6349a8c2ddd74d00d8ebb4092d79c38cc5f2c0704c51423f608650dbc7c115af9b7ace8e718f81f9283d9e1c00dc13b9452de8fe290e153bd4900c5819d752c7f8da1efa27d7983f95bcdfbf433ccf55d3719df6875e47cb7d90c6d6d9a2490f0c5747818c8c5a62b9cf70543e824b52378f444066712daf8e1278ab272c6efb08fb7d7ff4d8589d7ea52fb2523092afea96d24fb642f234bcdb22bf5a728987b02ad58e781b5c8bb6b560df8dc71caf792bc08ea6ed186a876aeb2fdda5d200f75caebbc2b40133119959fd20fac1555dccbacfdc05ad69b2865916de46e7018cb7e633bb2a032a8a06d1166872d77c86b73954d1f79ad939e29dfa6cfbf8199fecb263b056301fccf7801f75be6e7ec44b001f370a073a46c3b1a579185e068b2a097def1866324f48ada1a415392a3dba08f7b965b52e87a51b00e5515c1ff50c466d3ff5406c937fa6f33d268e7e6c751219ded92485ace895d61d3d0c186ebdf7e1e926a068d8ec70903bd8fc25016db6e67a9d63754a9e797c187c761d0248626da4f946b3076a50d4672bd69f8c582873165dfbafc1eee9b3d508c0a52cfc9eb30634db788785020b80e7ed580c75064f9cedd6010e39e02105fef8531050bc4763a15e75c32c030ada15b8a14b4b9b374a922b2a79b66f7163d5447e6acffa37999df8115a083e54a4b0af09d06181b3c9b02266fd17427a96c724599caff13d4ea34b4e344b0576b23422a1f35bf081b378c0b1a38d20c1a00b5bac1790f4d6f5e4d5417aead3594dc3224dac1610c0ab0f691353bd733a215c685ddaa6a41a686a3210e8a48ab38c2671a7e47d2e1bf2a961426c7921c7a89755755f6aa671ccc9bb38ad2f2544fbd2ef5040443eb40c8bdf4ca371a649205ec8d44970562b2dc34bec1597adf268da01329c7515a5a9bd2d9a5281c52e461c51dd2a0f11bb8c6c974fe843e57f954a90fa10d13cf129002cfeface06c99a04b99144ebdd4bf73b96e5cf8945e5faea2860875185f7e3a824ee6a4bbdfd938d3b8a392fa5bced4c12d1e5a9249df1dcd710fcfcec34c168feba3764b76ef2113f151bd2f313458335c2e09a10b37a952c30319ca50ca2d7ca8002df4e632be9fb2460ff3472993d2da63d0f3ecf36ea92f3b6e834bab4ee1d10af9ddd1e40b90958219054e681470fbb690dde969399472e97b464c226687b58a6ff942f2fa1563ec63b4994e031ab822b6c81bb279be1c064b29d0e3769c957583ce8ba301a839cb1ade68d0723b5d436fde6e2e27a41f62a3612ed0293e99fbc32ca746a4f46e453cf9099b840f4b3dcfb608551f78b5552dc8c7a2fdf9304033eb4cc012cbd53b11e5c1fdc63ca86b3608c80b4990e2379d7ed5df36e3379c2c6815ae91e7a483044183e9b5eff18e4445b46a300238838d0aabef355ec183ff76c7fedb742226f0c0bf4b345f22a417c112e268e1d6fb19b9cbb75a6d13ef580108afe137d674f76b0752fca7bf9efc2031a297b1f788c9b521fc2896733c01d05659a9f34ef4c638c79ee545ce76b24ea03ad644ca1ab9259b38112578029057d3b966f03e5c5fb432795c6025f254de749ce5503e41b03330597423d8fb79fee7d672f6b7556c119cddf6aadf3a736ac60d6edaaa8d6a828d978a3d27630fd9513b34fd697d8d561c1ee39a7046e353ba2b14654c7dc0b942217345344d5487ebf8ef141e2adaea080bcc58868baab41c966e77ad4ca0623ea22e00c119687932dc471dde84af7e43b06400c091d905ac1af8db92f92e44101f028edb0684dc5263ff3d53884b8e92bd235d051e880a7e8fc97412b18341320bdffb759d124b02191b8df0bdc84e932a699164495f8a4d3fb5ced905ad1ca08b5cea9df995d775730c59dc44a92a4704ed1a37524a071c5d139c7f34fe0e9eb84a8b31452ea145ac6ab82c5e40e20dcbbc0749bddd1bebd44972afc434a3b01945ab4aad4f6a6b3df616559eaa5d124cd4ff1b1a8aafeceab7d9f6bcda397ccca7416267fe56220dae93e11561426846069887624ebb201623bf10dc1466f909ef8d13519f2b45d985375a4c096ad1c8a2a705915e00e62561c8707aded80fd94378d7a40e8803cc0d719805a8dff68da3bd4d07aa0a5e23ebd393c36fcc9446fa5d30e1d9ef4f12ba423042a6a9f41135300b2654cc50427556e9d65ddf8b3d65db2e6c8114be263274c3aac7f43b7e8c03bbe47421995be5200fa031f22ae414cf2b4e99d6d7cb08368a030d70a42c16ec37b1c5ddc150c138523cc224fa08ed9c5cd2221d64b2a2c7a68dc836ab2a1cb6f241e70f64a28f23471d5e4addc6e95be603355957c55203c031af0d7d6488d62116986237874813ad1401c52322cb7e46623f8cfda906253e526b1c0b16077bdac8229cd4cae958aed40e9b7beb03810476186d27fbbbacb8e9f73be0c29242f9a73d941528bff127a839e1ed30e48640cc063e924cd7e80457faa7319f8f3a2710d339d5a3df04fe04ad25d9c112b6f2244dd2626fc8c3783712a43d5b44a60af1b273251c8b27113dd85b713c5df0eaafd4cc84dbebea96e4f2308e147173c4a08fbdf5ba51b447d68f7d6d41476a841b22c71ebd61275a3964ad75c4150868b365a08bae31fa48acaf59044649af449f115400df1414947aaf0552e6896f1b673f0e5db2dcfde7a860aa57922296ccfdd0640eabb1c1d146c35e1ef4e21193257376c2e21d2ee5f27614abcfa6fea5671705d26ef224203f78da8a1edac6297e6b3f51231068660c3ab51e16198e02a38cb90529867e9af334a1f59649fbfbe348bb0611c0826df3a197df280742d8f0ee2c38e359c02da806011d61e4a1a508246df9a079d7b7db0dd4c74a3786145763d48368df5e4323d6894ca5fe1e06910c1171eef5ca954fcb4e9bc2fed495029185d1cfda86ec6794633d41df568c7dfc90e1d87c439368d850a7b74d3bb26042bff3909f0198b460df50ea8b96a14ea2ad8bfbc242c0b205e3ba68b0b35b62b4f44c13290e78850f32a17c60949a61566810b5cb322c192352d94d9eb7fcf395b8d9484c7d6e2e2020d11e14b1ff7b54ec559192975a5691fef489adfae4bff62e619b0b55b6fe635cbf5d82131e98f1e052fb14dfabc4a12625728e9443e6a6887ab3b5c06b7ae4e9183271b2e7bac3c68f4f1cb933e99543f4ad74ef85437a5b661a2b7d5c82183393031c1661b63a718d1ef3b216f461ce408f02603ccc77e590492564f138640a133584942f7d2d20a3b7e7f2f94bee67173dd5e3f9b5978d5a4a6c742bcd9dd2a56d57d26af630ba37128d73d7fba39decbffe94a9d998a988a81cbad609595215f6d5fb23b2cab43e6ae3e438633bbb8b39e09e0a05f071c7d579eff5db2a5ec1b7972893d0c87a35c482da94924f201c401131ee6be54b4c693ad835c3e414b563f3fa16080d71f2cb0a56a533be67bce6c81dd56c55e0b628e7f0e1a02c26c4fd293eea94760d041b0fb162c1c0d5befb878ee43dc7a583729c265b0eeec2467ed0f5122093e44e721aba0b4b2b79c3fe8ed2ad0da8f890b85b76b03fd7b5938c568230735b9a80ec06334af580e0221f09d74775ff335fbf881db434bd0ba5a53ab55dcd9d0a6e6f8f0b538e00fedcd3398fcaf05229e67e2d75de8da03fe15a1b08c55ec32fccfb1e05259e96852280eebbd2e74d2d997103a7a104808de6306879321d3c7cea5a5cab82b5a8ea53da65c769b6acbeb9c60aa290aab6481751d14e56e47e5814c0cd4c2dd78b9667090669595eb298b421154b25325a8a4495b9538538fc4c0d0032208f1e08c19c8a0902630ee14cab9c43012f0cc7ee453f69954cc6a3c56250b31756654d7765eca21cca66ce6f17380d2821fcd4f0e15fded2148da36011394d81fd4896f8d9e923a8e4df2bbbda253e0c59d70ea389ed5a8b7909a5e144baef00699daa1b5958f4f8362b11bcf21e8baf4390dd1d3529f86baa030a8a7d7bac3d44d919c4ddda6b89604eeca56018f003c1435e0b24df985e693d78e19c2977df667cc6b1aecf234bdc142c9f9e35306e603b3de2ce2ecb4334901aa6801bcfc1c5591eb107507533ecc51431d65fecd8c218f0b59bbbd9e44ac3506a7fdd1ce7203e6d956189283cb4a4f73f80c7572f148e6c5376b0202b70229e25d988cfa6a681b6c255273efcb33597f842bca0eb5404a7b66a091cce2592d068614627a2f2b521737a7a8c3b8008ceae9b494f9efa17d957fc3297ffcaf42b7e53620969aa6ea02d631cd3c2c423439ad7194bb3a86b604c69e58ed55da8a4e39434fc404fefa2641dd86965128b5e7b29ef383c2012e3c820268e2c4a7ffbdbc03d734039ef18534bbfdba8d80c4f11683cdf2e69f6469f3321c607c2954e44c6779072caaee60a9364535ae40637bc4136b92d2179ddb1c95fbe84c2d1fedd8e201cd51c07574d0ed042219299326f913f34645159488d45a04b36b04682f55d04a386745edcd15213d7f35be7c26ca6fc447ac3aeaa37b8564267208251c00af5f77d7f91a2a72a51bee3e23497efc387fd6298857178026962cc1c0411eba11d8cf692ac789e6d9a62906afad386cb79ed679e5df52f00f9d7530c051510fee5b8030ad871936c64cde71d41586ba9fc3a4bb6ac8692065e0e4944b89f9d540ff311600a536f53e45e08c87815cbd7b876e0cb4da4a183643dc9e492d1212c0a899debd028c783ac5bd4d110f618788e4d423d4955e5240b5d6547143a675fc1f4132445e0aaf0b07fce3e9324199b645abec9945c310c270ad72d5dbafd63eda583155e0f3d445bd56ba2efbd5112fee19d160f2655ba070c5847d3a191d121d0772df27f37c175a1977dacdd85ed9909779748ec33e1450658633c50ed265cf342f93b7d95dafe95a28452b3bb9a1535869e49e4a6280115288caa8b04d4670675f7fe1f92bd94403c08fbd5d7d2ada20c8398813b3223828b15235638abc28bc992e5094580de36786463b02fb7753580bcc9e62360621c384c93704d70c0622426660002e318d8c9c7be4d772b62d4a10f46504f345d1b189e46c9368d715f31cfb8de231c6a1907f6488dd6e75764d761f51409d2872e875e3539f22b1959a7c37d2a81f42702daf0ea9d4cbb19f50421c3f3c1b526d8eec89ce52d3e645f966ee06e8b986522f0531d6dd5b844ae45e3118d9df0ea1f214d4ce3c554fb7308ff72e33866035ec9a8217ee7c7343be5b25c694f3e9ddce704cd811139fbbe370dee8f32bcf6ac04f4ff37b22ab5b0e35b5aea9e6162214b3b619834f208693dfa0d8cd6dd630a3cb35ba4c0b50d551ac332929448665d04827f732830ea1023852901f2774383c3630c40a1c17690b748c0cf4a5cfb7693a20036c8a47826a9edf3744b107e07d420cc56447198d191072acca2405e5fbca7ff2a7454cc8506596da322a8489b4572f5563822c331880e5db4dfdf17eef23b767cebde091b480567ecaa69d09e6ee0c3c73ee706c97578cb6da3f88724e87767eb52f8d0f13cc526ab7a515d8261a724cf621ab7b4ea0dcd90121861c7c4d22c6563b8961ac724c5c7f7a40ff09e62c0697dc5ba805a6f85706a752896645d3bb8c0457cf160a773505743eceffbbcc4c1701bff752fbe933ea82dfbf498184b38f1456cd91e3f42e6116a18d00b414a7b4742b6e33edf48c6398c626202d4594fb2fbeedb0be113a22c128570e1dc732f4131b7e99887be2068559c8efb4a9af38da85a8db1540881a21d0fdd2bea0e26226f8a94defeb92ea61b2289503fd38715a3354be288e2103efd0658681a2bd6f1abcb8c0156c39d25a1ba96ae86944474418d8bffe9b33c1a89adb32ea009ab2e5af3f848680a87bc5fe38195bff8ecab903347505773964651de7d9a51d0035d270c50a8810695fc1a5379d0165bd68dbe0ce579aad864585774b0675172e805ee4535d2071205d609573df91558f6b2e7d07c0a60a2911a43efae6e4bfb5000c3e1316f09b7e300c3089668f0f2f8abd7533cee57ec64eddd807972f87604f3c205a0e031db9de6a124be1bcd3461259b6b8da41247c87ab73a70a7f6927ef2cd738647d3a9f81c983caa4a4fb376234f60a8d098bd25e843141adaadf7450b2a346a60da445b8ea8b782c0de0ec7ee0e774854dba29330d9181a0809b765f946dafd344f0c7f591bd37ffd1d636858821092841f8a57c21a0316b2e0062f30868670f25362686767fcf3985868bc7ed0e5e24a89488c2a495de7b190849cd832fc9241c4222a398e7d00e496f41cfc83893be7ba276eef46ec2fbb86fb7174f0e62909e2f6c48fde9a521f47190be2ec1c91bc09eff088955f4d7ea05e5439932bfa8fb85c46ca9f861ef420717f07a7038c0bd26df691f5ac564471556af3b3912b05487484f086592893358998e0cba259db0a7de0bd048ac1d09b25a88dd6f216e5e7fa5504ede726911a0a8a6def3c4e8b31b3e0666ea5636b8b6c9200e974aaf36610942241f635277b8a50a2ec854cb285d98652971b1439f8fd7ff6c9f1d5ff6ffe17f500c1d44fe5e13c62a45013c7330de333559985baac0525cb96f7e93a464243b42274f4d92298a5b08357def17e445c89cb1802031fa4b8aa66117ed6f505d5498c1fc8b20577c96768ca732b3a976fb86bd7075de85444d8c72d0ced2a04fa2580f8c0290418ff3090c26cf1130b53f083956d12213b472e892aca5ce29617861637c74e192f8c05983729c61f5bf115eb990475fe89c629fb59953d836a1cba2f086489d619a2b67945bd5466bf26ac87cf50d71361633efb2c7eaf2c9070544d7ad64c1d376423f45f5d3eab0df48b0c14d09bb9589ba29a2ca00069bb91fcb93f8d389755cf8d69313e583eb3891eb3fe5df45b60e84876fc86bd6ba62ef03a8e83b0a7a116f4689ad217edb901247d68141d1d6784a92cc76482b43b94b4a06736f5b404d864c0b18cc610b343ddee0733b4c08aec432c947150157155697206e90044de9a024910fb2005753cea7d096c69e41a5ae9e1f608715e263a52fafe8b148018e0708763e7319d86150f326a7dcfdcb94374b180a337864e2eebb400c0daa07f9547b2fd729abb465f9b01f655bb96535041ba142852fa78e5b8d3f95242aadc3f047c02a8f139ae1488bb9267a5cd01c03547309628e6f43650af34138ccf3a79b937618ca71a365bdaff4801148bd1f3a226e76915d0fc55d28abbdbed32bacb3c846a85e0aff43be98b4d77b33d6bd9613616d53ed45cb8b0a095b613c30434fab03ee6356f1a22081c9d7ba00ffe79e4d06d4b12470514d0c086d3bf0344f1a36bb72a4c4f7ce3d567ab6f2801406caa2dfb7f90e04100552d91bb1efcadc7038cfa750aaa4df2af972845ae750472c01eb71a32c82f5308f6cc7a1ab41523a3f50133579f941b761620c14afbf0163df16ef7a0a733660027d66d2c2fa3b079c0d610621f99ddae9d1fe1c91169faf9cd511d42b88e1732627066128e84187845656d5011e4a358f06d48be741016e0facde6f2e80e95d24564b716588f21e58a340c934b27be442479d70d7ad1d082a2f4d00724561028b634dcdfc5f195e2c190aacb61a3900d1bfb53fefbd8b2a11530bd28ae838a42cca09d645e941fdfd64cc9e2c170ed3e12308855bee598ebdc411233363201fde284631c221984572d3bc689894eae4024ac19da97c303e744114ab66e46b8b6766d8d3e22a46d5b12b9a79bb1ad1e144b1d9bf71fed9b448ecbcab7a5722e08032f550eacba884af3339121ff0dfec0f08e74eeff251ba2accff1e2397f09065c9d52cada3a4ffe9a75a6985115a304d47b21307795428cb8bac3cea5e8d45bcb98cbdda4818d17f6d8c90dae554e6ed38f5464287965aaff2b309611ae39b5867d53edcd30d39a762bcffa59e6909e3f42e78f5a1cae3ad010c2af504d2bc59c90ed8cf7b30a6395aeac92572ffd279ae1d92ec8e55dd4a68c461f1d926b20d354369283c8e170d09898286d464fc76191570a0f85ba43a9db64072a9e085691acf8fee165889d33154fed87fc9fb1ec3e5bf37c4714804c704b3264003b865ad1bf58a0656048d7e679b33e7cb4c57704e2f87d96f9526f0418bb24a9519dc522c1af940daeeb9f9575985849077f33556730f18e601b66414ea6c6985179423198f4ed01b5be4a50195f09e20e329b1ab817540a019b371b5f7fb060d17dc0055e687714593825425650c041dc351511e37b0c3a377243a8d121d09db5491c0fa0f1ceacee61e4451bba722396252ff310c66bd54f1a4326e316799b9b8a5bb9d76137096bc10b36bbee8a62144531bd769b7f3b81ad67de498f1e31a7e9a7a2c1d37e948b5572e8c109b1e2f6143482d07bb60cdda2aea3500dbd3aa40d2640bb0f97e094e1c164653b02760b0c6485a56c845c98a81a73d7efba5b5d2c6498ea97b3693527f8a3e33ecdb55324a9034f95e4917e8b4d2bba5c85494edb0bc6fdf34382ecc86a4c5d4aee8d1d390418f0a84a7203b2b018f10cbaf1ab47bed374184819b880f16a84689ee08fee0e081efc8dd44a1b7f7245c2d25bfe9639f91475b5421b39517f72a41557e7914b661692a3304afff1161ca735164eca72c22748eadd2023bda93685e4dd954fe96c968d1a3e48e019e44c8aedbea7133be7b184081dd3299af35f472ecebf4154116ac2d3a241bbbebb04ab4d71d1e0c96bbd4a06817392deb76a2e702cca2f3f222b8015388964b988e63dec3879ad67b01b4cc7b7e7e430c9ac8628eb0d1d609a93be69b967035161068e33723c55df6d974631ddaffb806f374de9d18dfba03ad9a7e479d194f679fa12d5e327e22ca71f02e9e18e382cd5557f9ff363dae8ffde1c09a834803d655234a225e16ebb5b46a3ea5c650c78c2f8bff30e6210c1ce91b6a9a6bf1d779b1d5aa95e709c2bc0c84a783571136b7b465fc9e0bf1ffc88a27e40f35cdeb0bd3320e13c58814174d913763d3f1fc0c9539821e130e8e3190fd614499eab795e03af46aa969bc8c9327049f0f14814c7435c0332421447e8d9126fa63ebbb4636d20423a8c5c2b8c94c2b1ff3f202c8ae68dd18c3e7f58aa42f1dcb2854157bcc4d2b639a950550fecfd75195a343d6aa3351c695df3753628225da46074e5c581239c230d09c1665015cac65c63aec61c86070add6622e82e0fa9c41b74c4824a75608e0b5fd3bd1898763899e8878224800a97c0151a1459a9d11ad8d8405542f4baa151d1d5670aacb20634bdd27a2db4ac96520667e356180a8d138d6826b7145063f45ecc741d828e8c5247e88c588b0df1b24a51ba2f0da5aa2b7d14c6e7cdf6e171fb5c53d82c9564eb135d278976c8d9afad5d92fe01e493f5833cd4b7f85d57cac16ebb31e23988a4ad358a7959ddd5f7a6d84a41ded0a247a0a4360effd77a1e3714bc4c64c94daa6bc4db6f88d608f59bc2d312580e6b390b2b78c71f1c5c7f529afb999b60741091a1282af4b091dc2a2759d6689b8c9263ea5e29bb986bf430bf720c00e4285cfbc57a2695bec4b675c86f7b22a0b87ce9bec3100b907758f44ba0c1162926d19782f393aa95518ae781f17f06617aa4fbaad710124d1f50ee847e978362def2ac339505fd0034a484062899a499d726fe38aeab0f4f98fc10049aaf299ef8aa88d0294ec4fc27df94d43f2aebefed2a20b9b2f246cb57409e97c1828139de4c3c90f92bcff8f6f2d16aa454102b311f889682547b55863c75b12277ae5cbf232c085b5b3543272dd3ae2a9e590256cf92ad4a14253842a265328a9e943804ea3a9851e00b94023d8086956f07b1db35efd187a5359acd940e2a34d2530e4dd39c6b73029c22def05b38508173b7bb3748542e91dc083c87825378e594325142942875091774ece691608c70dd89be55c4b69509e310334d38a8043ae26942b017b5a258c17be01763e90a848ac47c0a9abad890978c7f2a441fa30d51f795c370eb23a6f2be9499c38480eb1fbbc19e4ff59402354e2b77a552ba21dbef0fe56cf486a59cf351d2b47cf1c8717b439861eec22af05aba902df4996400852904c15549bb3d0c8366be6a3cd524d9981e132a9a42278656c3daff375a2ee045af3477af5521315b688611044a1c703bd0871af8c3cc10885e851a046f0151a50c415f553e0288d4121cfb840e4d2de6a1f849352010fdef91eb364e74be78cd8998322f07b54e9c8a0d4ae78304b7f83738dae4a6beb8ff134016bb5f85d802b45122e4cb3b4e657a0b944d16dd908a9af7f76d7894b861e91a25940901d809397b431c26cdaea90f625253f4a13f730e3a2f35c2749474181e66a56fd6227b1ae931bc8d9a4147f9004de831f6e2c75d88b731dc5050c50461b33276ae56ca202e41c00bd29f913b0770a5be90dea1116b0d3e3f7d01f4593d66f114ec51998f3b84892c2655915b5e87b60e61fe1dfc33592fbcfb0f4402ba36be5a32a21eb34c97c53574e9e1a6588d4c28f5f507d574dbddb05be9318b7eb8e8a590646addc2802bb6b91e6df4648f15169cbf98ee57e3a17245c407cf2ffa33c14cf006dc5ec9afe343dea7bbf50c3db047056a9b37eec6cd1b02364707b679591033010b006a547b64750cbd529f63dbdc1288e6869dcc26da66e1c8ce49930f9e9e165095c0d1a088fbe59b74516611c5ba66381de2eb9ae29632c9ff81d5c41ab19838bce6b1da513d6bbeb0f0350cafc154ab86e785ea1f07b22f842fda91379eeb4f5e90763e0c1a0e4be23081256965f2d7d745fe66198db4536bcb2ba8019454453e409a1c40e70174e053d36a3510ce479760fbd4dd046498ae998d6e6587af26535d420bd96882e270d3acfaeff8b9d2f1d430918dcdeb252985bc3f314c554c64463ad992f68de20ab0b48b67770484039a87110fb4b9c6d1926a88212caf281d00edf6c16239e55e675ffaf0db4e536012224387a675195eb1291919f06dd7f620b8b6f3b52881d1375f2df1538c4a7d32d4759895a2f4754c6d10e4c581bfdbd5b7148e34da03f0c1fdc32c379fd1a361314e37925249210a5b27af8940bf1ed39ae84b380d39e432359487a9e43edc9d566e3cf8896f51b037badab19a1ebcd4d29440ac64378601fe7c6879d23436c0dfdf5fc07ba0ebc2a2e237da33dd33217750a2827a25d59ba95e6f558b2455ccfbbfea1671b1db145c9eeffca3c9bf1158deb9f9d8e91bb8cc0cef6ebecbfdf958128250f3d13b7dc4e50cd330b1c95499c6a6b71a6ba716e45c032589ed61ae099c8464a2a50ca695fe984cb0eaf294c8e2b96691e1b0d96d595387d7be1547a0c571da7b1172cf3a75839856b262640ec73974a5d99a5488ede4f1880d641a07acbc5613cb5d783aaffe86716a4cf0fb632e432416f7896470e4f6f87f3633e3b4bbf6bfaa8f44054d966fae13ada011d710912a2224561d7ee4d336ba082bf0e69bea0d305fa15912fd2a4ed7cf27292f17423149af4d000b43bfead2246e4246493c85d6b0032112ac16a652de04dbae02c1a54e3ab58a4b9428e5caf742ef770123f1476ac0e785c345eba3f8d17eacef4c54dd17767be09d34d37898f6ee9809ddc07c4ba24fe51a86b9a7690723403fcb00ac7979a72e1c48112dca911dbe6cdd3e73b640481169d1077557e8d79033af1dc2f70b791f9a115f15a49102bc95ae01048b3be07c189e038d57274f05f44dd79aebeaf1d2324c54dbddb75c7f0f8190d9b6ed5ac56d1dbd38bc38118f9ec4e77d4615d58c12acbcaf50f19e4df0f904669b2df509b4fe2a31a6135dee7909708b9f3aa2d49ef0f61873be29c0f2122ee1476f32ac3ab6e19c4b6976ef3e1fac3d7df84f9c6d3720d0364338c1a778d9c2d2c879a515a5cfaa91470805148a28680d912facd7facf193a704d6cd8e89644f68f121021da47a73e20df14dbbc07059a43cca642338051b429e8b59d23eeb59a22ae346e7306beaac18aa97c8e0ec2933450fc9fd82345b91368a5a75fff06ce5c6cf269402c53c99dcd9bf60dfa57c14435d719c7fd3ab721c80697225e22c47d5ecdf0f6c2bb13d2b03856484a876f240d0ff01ad984670e54b4555b43491894336f4d53615912bfc0559935f5385781b47395a31cf05f36b3e89b615f7b8096acb415ecba89bf3cda2f2f16e66bd53f7b3af73cf435872cb166b4373a6cf0f08cfe31995d5ca5fe5e367905df533834a36191676516e8b5fb43330c1cf0a08ea9006e67d17a6391ab6c084756cc04a9acaa5cbdad9188e68da673279569208394669159cb76b1f34d435dfbab3f18f901cb3806e7cc645005207915f4bdab12189943a6332f26374f8525aaba4b64aef2f3e4cf0d77608c129aa8209ff34a1e2fb68415be3c2b82dfb774134932d796e9093698fe6374fe567e2302f29629598a0897e955726427f52c8605ec80f8a63493792b5ce65814904395ae63d04a8901c5197be45de6158622338b419561ce8f4a135d6ee296198315517de0649ebc3d4044d9f88c9d34fc509a8e15ace0f6ca2089f746f942c89e9624c77f42152e8523db8b482d6fc8d9929ce7f5e4e68ab6ad1ec6d3c4722b9bd296d43baa8fd91691d1c0803e3ebb18e3e4af0c7aab568a652b21b8fd5309a59036140436d5a4c73269d374aed2c2352fb2120fd3413354c706f49e23aa47c755ff36b8974af6aadad20f229c889d2e55b367f1951511aaedd76c585ac7b660bc6f113528078b057fb0723c0328534388c98c70f3676126573f386a19afdc35deb21910c567cd182d4beacf0c8503371a74ba9b4ab33c21b0c6132eea1c4c505312661555e97f630ac1b6103b857d9de70ba38185af39e76c73baffb22018790ce0a440c599bf8b982cd165800a7182d6b27f2e91de7a02b24d2fcb63c43b273ff41a8abb55c67d6816b230f2635e14d952ea84568fc9d5bb47f4951416db3d02b57344fdf1753ee629c413c34a66ffbb2e1bdc7cab0bff167eadd912c4c133f0db9410c4254fc422818a2f828b4d9884f654bf0b241bb4dd439b110e4e8c0e2a075152ec887a3a472a5d4b87797f3ee666b4d77d31ff6bd2aeec7a6e81df581952a56365085fce0288c9b9852bf167f7f668e60fe36d6e0f53a44824b304331d9380958da38f1c25161f0136faa9fe09561443001f6c76be6de9e28504926958cba2418b063457506b516c910794a1530674b718007a9219043cb9d8cd222804cf9ebefe1d0070ff7a05acd435d6078ca510b1b09941dfd1de267b8bfc7d8bab2ccb528eb6d864d3570b3804d2c6501290776512dff1ac5e78f843d6deb472e845b98458caf43a58e4a01bebc8a31822a519f24d5bf48acbc559e041198f1985082205a9ba23b46a3d833a1b82cb26c9c3e0e6ed35dd9daef704f9e21e00b5d5fa9822bd0252c636ce30bd368ada58d33facf8521e2c41c3b621864f55837e037856d9d0553db643863a180a710bb27095f82e92f464d351598948d76e2af268ace5ec194a7f5dda82479dd5cf39a764e372536aac96cd24997b526fe62c26887f456e9ef3672f8060ad4fefa69a250c5ab452520492169001c9b10a4082ff6deb9a8b60a965111e913b4371bac49daec591446b9af1023e0c299d96ee84d8f7c7e865f2e5ed0d7169f2fa49e15f158d13af616214c527e55c6c8b15c3a7a7692ad2fe5f6fe3f546b29389de3da31b5db06a8ac868389aae1d20c63dcd564cf33bb0fb9b9d8e700ea9a94b59e7c0897f3451b14e3c7f870102110fd02acb07947c2ed38109848128acf085b0f98331160f974896113310d4f02503615592f15528f165dff16a8f4b705e6664abc6b9cf6618d0e3ab7d5f00745b717ebe30085c2eeea6f5ee1500e8b3b8bec03cebc5815a1ec3701bae34f805395dd60ffeda0d22c433117b64ffe24d97688f188eeecabdc2ba10fafdc3fca56d69d0e16d95371bdba22a208906b361bdeb333813d6ecbcbc107744cece1cb29ca8fb51ca38bbb267e247b40fbc387d2e64a1ac6b37a0965dc441f26a6415581541e97867a38a581fe7c58bb02b32063dfcac5922439220f95937b60edd46d9dc393faeccaf0ba9cd4a2994a1e41b7e0894bbe0fe657c88916e60e87664a7dea4276302e448b8381bd09a9cc7f8294d8c872e9a7c43c32a438d311c9b8df729db41b6cab1a5b76aa3c6d5bab384df71ee0ce7d38db19496896e50c8b33d288c67125cab9284d11683d5cec0d2297bd2a1bc92d2ec3541093003004daa0f72f38b1a8c47276d2b88e0fda5f5706b1af0c6f93ed8c92b5c8d69979613a6cbba17ef335e0db6e4053e8932d3538a1d245c1af2264672f4c2a5441851ecf4cea07bbbe2d6d955f40aa0e1d164d88562b146eb09a3f3ebebd53718b2d030ae8a07acff115b21b68fce8308ad0c155a8c701951020975a38e8deda630ce13e231982b2aebbf62b8108bf7823f36119fb36757ba358e13302152e3a5360451da0155c9fff84c0345fe004284df2b669001856eac0865c82ce6d27c067808ade1e2606542ccb15f0a17c4faca777f45b3ed4718176f7e1786ec4d3d74629bdfdc3e12b390416ee9b85c24c80ed84b09ec3bcfe15e1b62e735a4c622fd0914919cefd22aa53f404b88b655735cbcbe6444717d43c2199b14222e1736169a227906c19b7e382dfb11d2eaec292b3360c098c63bda8436368f79598c1da17b8cb5a4b8cd9a91d22d8b4cfc87d69f76b33d10532395bb280a352e07381230378565d7161b23870853537a1158dc3e85d6da56dadb0b52d3199e59ab8089bed941b2cd06174406649a6a607b477855b22f70832205f3074b0e7eb70e61ac1e9ee4c6eca2fc3a020dc0ad215ed1eb7ebafaaba61df20e3cc10df39d8edf4f03814af84b07f2102ea0cfd54d8f2d618d5529ebd05ee7f3ecadc47f015feb0d44765af2a8848568e74060f9d51bbc663e4efb089f2d743a773d1e6df84af24534fcba89ae8f10750ea710f43bff882cf11520350438b8f030ec0246951d4c6b7206df5d5203c8506f0919246c92a92b7aee0bdde4c859840f54ae530cf73f7abf042c99b913fd8b084e0d02f34507fe327ef9d124b338259ab3a09429c8b97179656c927d972940be11c2160883905b4127978be1679b8b6eb4ac07168b5f3da129d077c6f930883ca7b9b6e8d7c80113644008691b458c884625d20663e8665a31de85369adb2ebdcd1556cb1e963c8e767445dedad4a5d78d9ecd7430735a6a6495489421a11ed94f713644ee6d4f4ee76585c906932600c28de680521eff20713cdc703a5b28d40d876b8053b8b92cba96fe8371133cca03af66f9e5618d9ea6ec5cd08c5518eeabb12aec65fd40fbb3b1a7b87270db43fe4ff8309a492408cbbbf6923a597d92739b51292feed5cd66fab2a6c44da38e8c707b972ae6b6744faff3e3e976f54d35c3a31f9d7d2cf045844355132711af4b0da892416c82b8314d3b57871413470e8efb6da99094c65e59b20849b253ec845c92110619f9a6cfa1ccd510a3a750fbed6a2c64f3d7ff63d99496b4e0d3105d84d3cfa9464c66d5d045c8b46bc8eb2b816d459d97a18564124f8aabfe5567d83f919a17971fb7c296d0edcd0618822b1902fbcb628bae0e3d5ef6c912c47ad1de134c88b894413f239a09b7b60d46cfe220c45b158d55ae66628d3a28df4c11c006c9898d405fb4bea36b3d0c2c0a3d9b5a2d40a721fcef176b29dc5ac869843959f168ba7d4709f97e3442e85485736368002cb6c7ad18f297e61bd3a492cc22adc59016bdfef687eb39120dd511db1a1cb8ff66df52f71c695b08a8c7f69d2b95d582937d1869aed7fda4bd33249206dafe150e00f594232e7d44f125500efad69a7892f6cf6ff00e6c400353630fb5b04531b92ade1f15f019efdae71f850a92a96becb142458b005d8d18af359bfd35f4524f2c336e28015df4e8cb78b28b5a1080c3d1b629635bc4dd0c7d446d6a551a50ab58ee647e59a8658f9b9bc222dd2707b394b1b69ab7cb586d54c92253a3d73c7551d88441d8e359975c31378418fef7d31ecf4200584944ff2324e7fc68ed800606bfd6778c043125d2e3af6011092da4c91948ee0267807bd9c619111d23f8b5a7b3e67b355b759783ecc29f5536cd0d747b91087763de961a9a151582f7a83dad5de5f244b0f5fd0f5a062efd70b6c22efeac744fd3a90ba15c856cf03c8dcc17007ba15ad4fba7a43651041f141d58e4fa1ed3b84aadfbf18d8f080161f15c9efcdc35b03222a5ae26bc23a889254b209e9752e47cb9a0479bb694e4f1a9214dac04e80ac112d12bbd10d9bc3bab61a5e88775342153e9273b84462b1849a2246adcf231b927a3450d6a3dad8aff40ef59ea467a716e26f3ff80fc53731237666d3439105d37c4a53c57cd84aadc90c3dc5504b683f6fbe8cc3906571b4c2b952a455d564c19af8d265d42bf906b9d46fc1729613160234bbc50465681c92793266b57ea3d131b0d05bd130bb1781782add9990e08f758c19939f4b3cf250e1736e59b2b07dd2af953dbcf2aff26db22313439b8a11653e235e06eb1becf72d3d16a328620d8a339aefb929f2fb4c93bd7d077f6a23daaf8e2f621a42fab2a29073ce05df22e29f5c84afd0c025d3020d27a198a112884071cebdcfc2d8318fadbdad4983745873a557b0321bcb7383901ef6e078d71efad65a1231d1c08129079f2d97029f8050dda7ceb689c663ed2201cafe0b46a9010d630996fcd2ae6b56b407a1c615b2fd2529a40609bc0aa048df2320b44e13f552aa64991c3090d8f8d2b71b5df7c8a8925598903d5af72283cfaa2d3efad6a3e2c5dd1ea289293189a509e3940a60ee8de0e0f43400eef90037539e0ce65cd7e50e386b053fa8db9db67c79939de77f6ce40202c56444ca16f0f4f97dc22403fa7e51c4d76a06735a4da167084125e3aa585451b2b2e20590001606352f8d10be680998f51f28299078473ef399233e5f3bea9f32502891f892977eaab311b3edb016200f774a39246bb45e8e9623678024e7c0e2a569ef1b65ed66f3fb685c33e1d781b5adf60690c890b3f8e48f470e063238cfe4e3ca932b7a83f906ea1ef1cb94ecc75e96d3f906e5adf65e92f0a9110855a0ea8e8c76f6d8082b73b89fc841ff4fb84c4ffdba3033d84a841fb80892ad661ff1c0f2d1fe9ef6043dc9c16a4721128c01fe78c26ab0d672641eaaacb24379ca94cfa0a02b72a2b407b4068822942e7b3c34f3a55b033b1bd118c9f98a39c11516a455f7487466b8663b5f37e3814c3934297f00ff43f620b837b4a98d03dd9e90cf0b35d944ae887d259c81af86fd0313186daa59859d4afe9a8d0ac7b57e3a49325ec7f6d9fad7ca555066b8e41579ac0baeb139255aec8c3b9c79e933dca824729bb83210eaab9420843cee1650320c7542290c2f0931098ae86ca864c002f8cb2bfc60c721fc6356455b6aa9f0b038519088ed4cc158f61133c0e3c9a31636c188806807098e21b4526e68e7e6f7570b9731eac1386829332b2e598e58b2d2445460702d7f21463ac026c3ddef92e0d7c236322eda9ea015a2fb06e16f4d1baa828a68bc9c7e6e873638ffc442084036320cd1c42a4806f94b024ff4eb67dff0acfed085cbdbe3f748b43eae9c4a1d8bc4d9ba7bf85b71c8bd169ed002a3466cff33f430792fc05d84702bf26df77c6a26bc9cb6e58b4de1c1c071c4850d837c173dbda0e2c62682d5062406cbe18ac397243c76da40dce2e036ffbfb83b30302b68b11209872dc75eac7c7d950cc3421bd7abb9e8b19032f0979aa889a703f52cd1c7908171ec50cb51b81dff3a4e8546daadc1c2229e823172de89d80f119f211d33e6499d1319d4207fd164e9abb4da04adb0160848d223a93359722d1f4acd8664965386c3e0a8e1349ebdfd5959ae25164d3bf15caf50bd11a93e090f80b54adfafc2036dd056c883160bff0b8023aca6e8e165c49b0aefd36086e97ef469c286ee45b11b104af5d1db4190392e557b7575073c672b97fc7400881d0940431a10e164e00a8a1d5fe1b41e0e278e9d436e7f5146a047871c0d34c6c3078a6c8f2a69f36857e1873095a4fac6aadb12685fb9fc0ef79cd819722f19895465434f3b401163467db1e0b6dddf4d06cd5e79cf4ca4d9409967b8e64ab12212d29fa5a1f88d623928cc98d28e6062856f643e732a94c1afd9289cd5f6ec5953e9230882f06488412e40479125f396826a13fdb01c38acc580e5e929328414d13222f3af2e3e34c4c51265411573849a865e88eb1af386a343b3fa8d5384ee38b4013beb462822108d87008bbd5d75384456411db3fe410ea92162d3cc11f46d5381c56b788352af83a5160c27b7b106542246e11a26432602714d1fe01f191bb2f54ae1309582f2481791077a246e94165cc733eea24b4e1de4ed412b6a3a625bdaf0fc49daf90b5ca18b90c405da020868e99b64cffd983ee11c0a7cac4853778b69e21a73341e32610b5b56221a0e12c3be4b0c7926aada337321980e86d13fb33a992a1c4bc89e38b24892b3f1b019b358cafca4d2374ff8130cc6cc6a68aac7b3e1b06266e80265c4513cad126564f4c782e3af7d44064d6d75035bd5e361480fcf7a63d0203e9197736fc431c27cc61ebfacc20a251f4f95f33dfe64e889b6bb789bee8e5f30909de52aa2e88bd6028e5b84add62b7e0f82627e556c6a6f8e2b8408d5430e4681d9cfdf79402a0feaaf720c074268b7c384a03b4fabbdb1afd3a1390aae3f37e88214c25a5bbede631581365f6c6b5802591e84449f05cb5b5ab7f0df4494ee4e7fc6b70ce5ae59d09b38c30d07159683515f5817e7fc12d68a4c8186b7e3fb5a6e61d6b2183523d7a1d08f9105d6fbac34dd403f50a5845ed0c3b343469c0ab23c00f80a0f458d51b67333afca2b0efada0eadcf77d3f26889b61d0fe514626a507e741643198854fd6560054082238dd1d17b029cc0b55d50a50cd585b7dac431785503207873db0ba66cdc01dc4ea3dab5acaaf0625ca8d41417e5470eceb397fa3d17a506db22700ec07eb0da3157e01f092c38127cead19a2bf0937f6a6df241c74e01e64e21f360550403a5da87515d46b9e4bec51a0ac8b7335fc9b45c6dbcf90eea6970ccf5f8054a10ab76f9b88f54087e7967cdfd29e0c85f30068549d00b8175c8acd6145731ab7808b571fa80e40eff0ca1d20772289ae4804764b2ed04159a6e46fd34edf28cbb60af8a346a0b3bcc826a2621fc5a60e5e8eb57615b1b204178dfc60197685d997da6a1e80d3fd6d768934bcd7f464669e585938ca68d64dea0e2b6be8ff2699738631aaa802c272e5f652321cd9e287cbd86a96179526876659a1a3ec714692c7d553969d8585cc2671fc5c6a1233f142f50c5bbda6704b51b53bb9c91c61aec6bc6f2609803ea48a169c4d7b711e89b415f3c2cffaed0c55e660732567c238c677406263bacd47722f7792544cdb95b1b977b34f9715e60162d0d87fc3bcf67df51a7c1264d593bc7cd62eff9b4a1856a5a7976b1571397574185f33abefca9ed6ac03537fadb5f2d74d7414e29a0e01ec52058bd7964ebd642ece8e38d71a539097c020ccea2b4464341a12fb250143e0a638028651e0af30f43b4d56668184cae3bcb2fe7c7f4f8b262c067b98418ffbee00ec3a8fb0f58a3a8955e29656c7ef720998db9d2fa09b3de71e944a6f32b3330f83259bc1f3d746147a5bfa19a638e95e81844fb09bcca391fe385936c360b8030a807a1e9697f9245a3ad76dad85c10ff091fd1a950d5f705f9b708f6b7c4086c8ca096c832ec94c03616d6e5f2a029103165f37333507fa9b5ff829efd2b9e62fb826fae7d5d71e967659fca3e7f691d570a2a0052243452fdd0ce097ed2dc83fd553eef79b67aa19b8bccd908787a0ad69f4049028cd208329b169d4b48f4b098879265b3a672297a5b13e6e7cac89b1e5986f1f831b693b7aa033fcc1ce59066890059d2af5ecd11b4317c895c6d9ce752176cf6413a4e2903912ae044418a309971e809e6c09439354da8a29121769f64f9c7384b55ca4c6bc691c3e7093e1cc1623a43e2a46dd172f95fee511db2d2fc84f7e3572826d5187cb7121a42df2f142e8f07d76f7b7a17f2297990f7701542374e00ef67aeea3294d0293adb1ad83a898de1ddc86d2c163c02f571b6d580d052161070764609bca58a65ba76386a9c769a18e4dd0092bfd375149f785b4f196a4b36161eeb85d5aec93a204479b072c93e436e4bba3195f694d4141fd10a2ded3f0b5dc1127e4738b193161da1f02bc4db056cc0268c420d67289a62f68e882c1478706b748e130465247aa0b359fd055e61e5ab5fe8b24d5fc1b457ae803c890e778cc0e8e2eddd2954298480cda781e82d1e54fcb15cf5b6887f36ec4bb39773258c75b0b4da199c2f0dbea3ca99a39458e80f832a8d74b886e4ad25fa5f61f8ada19df7786677593b7ddd6b19c40e44063c19030253abe9ca6535407f569c08557abd1350c5137db3f1c7c38394f49065f317c12a073b6e9bcc5b484d8856bec08a4ddc7b005ce3ae1c4f78b000c68aeeb1d18af7cdefa031bf7faf5050d4691350e8430c9003195b165713fcc8fda707d696eab22cb044036ff0004f9fe18bd2ba0f2a1679d60a49ca5a1b01e37e248654dc4df0b2286e0c424b90457dd256205c296b5243c10686b506c6c456c5df704844ed1bfdbfa45e6da646a04c0624a41180c25d8b5309ebd39b03e48d1af3a7d19318e30a1486f2663ec0af6ce7280c3b26685188285bb52dd243e3a57249d849010e1aa109a1e0f401a03cf679f52d5051e908ac08ff48c6927180ba09d47bb8df74271e1a6c5c4476006afb0b0da1838adf203f696f4e47ceea324e5bcaa35fb4eaad8bf03135064ca38f7debf6ead8768dc442e7d188040fa316b380d4ac204f15bb8217e2b1cb73e9bff5958aed53b3cb7eeec0287a708c08028070c1c87ef6ad544d66fed881da23d04103e35bb21c6f12922b0a0ccf680408e9458681ac2fdf7b8ba7e7c8868236bd6558e01786a46fc153133af0c34b548e25032a8e3a62d34b3777879002b1d0ae05a3e41b24444e788ab82b3700be9c542da8cb31091f75b389025903807b435958ebc102a48bcc741ae972098044b4bb8e24cc889cf9b1e760a2337bbd59181431bd1727f9259cf86b39ec5ea062177211b7bc94ed3a67e53653272525aa8fae66d1c2dd39c4c9ffd2d5e4345d00378276e80c3a5daa4d538467a9df95324a669b9a09899f55ad30cfdf1106c2ed4f1d02c9253c290f2461ecc9e87682b4951529172317313a4784151200ba4626a8d43ea3e3c8f08422b88d0707e70e146ebada575ea958edeb5728786d62a4e6032196910c869be28327654230bb71efe0af79709e50b1d2067d8cad42de94d108da355e2534a63461c8a9c61604421574f35d1ca314c86064ecf46515c8d6865370cd566117abdbc915a527ffc0491c2f6c176a231873a80cac9100fee0180b06030a960535810545f4685c15f0f4bcb3800d55500e490e608fd517e54f1a41f893048460f7d548f483f0427b6fffcb871bd58f083b602b7a7494226cea5a1ab354368c4897bcac7b88f58be38497c82db9b1d93713841e7aa8e73dde1fee7f9c26a7c933ce7a2eb27b28cc8545904029796c87174abbfb141ad6a3bdcace19a1c9deb3d99152bbf40cc7870a19cb9d6bfb46189cdf6bfe3d2e1a58c1f52a81e5e9c81f63f0dd02b935a77640e9df09088db85d54d10780d89a60e2339d44a5bbb09f28bb60225b517462c7a311c9d031ec28b0158ecb7ef26f900b47e2dc6a231845be00af0e6924211a9bb59cb52ba23a8e287de1dbda08b0512cb426c49d2a7d841f47c83df20f24516672cfdd6b92c1d52a5f138850378b354dc0609fed98f2e0457d8619006cef528952431dce4fd5be8a0b7db27c12a3aa302382cc390ab9665a898b9398acff823e09fb4f0eba4d0fae1af51018b15ae90e9e6295a52eedac22b6d9ce0ada48d3ca159f10ab590e2a3f442cbfe54dc3950788d3d0902e230a52611bb2cdbc70d927ebfabad9fc348e8afc3c84384b24404bc042f74690b16b992e71d667153cac471c72ceb1a76be90de09934e083639b584065cfc024af1ad615c40d619a7032ee93f588bc2b951c6019761daa4c6e0369ba7ad6100fde2a2001070906be43076a3b6bee9e30d1ab047d7e6959f273ad2d0bdfafa4534e64ba91bc3b29933d00b1d665bd877dc80dee28bffd2dade7b6f29a59429c9143806f705fe0591e40348882837becf1037c86e5419818120840d4c77b4844d25b9dd1fb79ba641fba474f0dadd1dc38322288106545442c06926bd759f000ab7bbbb8b60b1c2fd2a01ee67a38f275c638502b8fd35882b6ebf66493e4588dc862288276ef715d5d6fa3d13536bfd010a0e309660c1fce084167049582f400041a5d0040a061044707881e4870302891b5c9ae84901082784909c68bd00628a15b42441b90021041d5868d02201d1041d569058794b25f2c33eb16221821a3242925a21828447b46259224e72d894001a1129420eda133a22225aa0322774b615f080ad863419e070c5aac48c801216890e7589210c0738502484ae2a56306990aa506e904be45025a02036013465f08414f8133f53065d04a9b5564e052e80b7d65a2b1343fed55a8390c1ad2db0a94f2ad12454962b225a92fcb99f7d02acec8cacb16f9474523ab51c2c8ccb3e2cc02205f6058e1636dbc1b3ef830d9be52c892be2a30890e934ffb6c8a5da9b4c42a084e0c986b09a133be89083fbfd434a7d74a8e2d22036f3b21cc9e3525343816d21c2155a643fb65ef6d1a10b8c0896da80c46a41b426ac6c410f3d0cb1f1b28f901f341e4b2ffb0809828896cbf0954c840f1f227eec604104cef5f383939e1ca41040c3ffa58c96ee5eff9c0fe3fd0d8dc8606c781f8c7c86f1672645ce92aac6d96ae11159ffecba6f3bc9663f77cdcdccb5b9bb1d3ec3ede7eed3e4fb77b4d3a1ddeac5a64af85b24feec68f0cb77f6faa5cbe87d6c222b423e84b08b37cba447bb7a33dc7926c1fa920b9fd4f057b06ddd3a17993f97be991d34f8fad3e0db0f6bdfef39fad65c4c106b7a1c321af1fda78c9ed1ebf79c87890f6f7c124c746844c6a520d65fb60f710eff22f46707338bc4f7ae08ed607ac2fb597e861ca9b09c67454eb02c7bc5fe71085bdb042f8410da20ac3fdc5ce82b3dcb311cbb222e2cdc02073e495450fa627aaeac355766b54f302e474ce544f2a4b807282a52b8990fab49638e8947b5622a525424d194b449925857be922557be8c26adda24935cd28ad473e51320a4b423218170724a3a2377aaaeece15a7dca48296ea5e44a8e45e269932472e5cfae2fec7ac61895cf10251e67d0900b8e1497c9fd48545c7cb8470aea534b90ffcb6d11bab2eb640f4e25e145af2b83d1d17969bfe8509f3e8b23d427d8824ba21279ae0c48aefcd4950f434d62e373aa6e75e5cf1c6be33ee2bbca69fce5732ba7891e90b7a80004fb71249e2b3fc6047c2205714c8ed3b08d555df9a4568ad4e2b99284041f3706e7ca2f46e7ca18d4952421559f78e5fd5b5a4e5382d18b5e4e683f3e0cf6a35782232558f1d86d0bd0950f4374afb2f7b5fc5cc9a93895d38c3c1818441f3fbec86b69b94cec481cc72191cf0149e1922cb9925bb5ae7cfeb89f2b9f3f0eca84a4966c394d7cf9a49ce8c1c0105ff422af044ecaf148382e23bff2dc2fea64aed53e7197e326f40311396356a894ca75c0d30327481cc6e86540d990d3b08d779990cb64da9039e77cd869288d47fb6c68761a9194913ef135d226b9693c7d620da50dd17858afa95c463ea79a1dc76a138c0568e07abc0cc865e4f3b0919caa4d726ad96b4bfaf49184a6a6adfaf4d2fa813212f261e8cad77ab46c9284faf4712a52167df21c5cb9f371aa2b5f53554df5654b8688b486729a6a233f03f24ce5346c6344e309ca5a9eadbec883f5a173a5b6d595fd666030b98cfc1ca7a99e14b2fd5453f5495ee9f382d495af0169529ae6c2d192f4897d78845c293f6d75a5d6ba52fbb9528372a5d673e5d379fa6a52514844399191c89551e74a8fe9292589c10f74ef20d39c3edfe767b3fbdcfbdacbd133ba0b902174e71e3d04b1502c232f60ffbdea8a85c1353343e13e4e39a7ecc186b6dcf4e9018727953be794d17296e4038322c0e0c9fdecc71b64dc27a9c1cf606ec877fad5b5b9d5cfa41699051b03a00fb71ba519f2bdbb186f946477b767a3679779175f76d12bdd2c6a33e358afa7b2e38fa5cb9b0b03b8d373ec61273ffb20ec3e18b719cdddd42ed3e971e92b9c113d0b039b037ebb13768a9d62a7d829768a9d62a7d829768a9d62a7d82993893d823dc2a88a1d42bdac148b04fb91ec116c9451151bc546b1519cd828360a0c0e10c6ae59b4db98f705cddaca32c8a1c819698531ff1c47b230e2944ca6ff18ced942efd34655ac0baa8caab4b4b4b4c000c20e7dce52ba941e5972dcddd99da5a4ee524ae9d5dd99ddd9dd3577cfa4f0677fd2b57649d9adabdd1633c7c487d78d9663b8bb4b0959524063c4202d020f7ef4e087949107b28994b1073236f9914d66f99169b289b6450d34711b348f99d00f1d020acab9fd798b06b966a7b09431caaaa9899456a6f7056f590568b4e3a6b51658c164ba308a65f372e409a2413428d364ab564ddbe2cf0b2f6c2eb29a96a97090c2a40708d2408809caa587079dcb3fb8dcb34312b76b0093237afe5ad80078f9610f963fc2c4e8cc8491cb8cb598092297817a94b81f073161c5fd388be890adcbecc03dd8af421da1956a09eb090096a0e2e30325977d7cd0c49dd1f45eb7a301ef0e588527e34881f68ac8df72b0f10447e0cb18d9bb49a589956a15e2c0326b3527bbb0fa55ee1982aaa0e6f9719d49eb45ebc73d435005839aa77f26adb30e41150c6a1e39a9a4b3fbb86708aa82e6c7af0e4155942e87fc5950cddd1c7b5850ddddcddd5c45976a099614434b7812a0c48f14523c21f574104bf1518158215c875cdae2548d899fe32a136ccee73b7ab9692d85fd3ac7db5db469cf3bb05fe74020a894d5bc9721363ecc6c1643197c20cd8dcd6ef4d2838dded7421a48e7b449bea86b9d36b18e3072bf0eea13b38e20d2437d625611496e53b9d26b210c5bee2da569d8a6b3b8f2abfc9eca921067c69a462fe2362d9b1db15ef17038f7789c8b161358513a88fbff4c1d74e52711741b70d92789212efd8a83bd3a95e3341068e6a773feb23a47f33edb3d99f7cdc8ff4c6de44a08e4fdd5391d0e8e7143df9d5a283ae7a6dc7f66fe39ce6f4ad77b600b928c4b5feb5cc951200e6601babfd6f5d0febab68e061e369aa669da43da7d25c0b954fb7eadb1ccfb3679292788c746c8f509d287a192ca8bc28743f23ba7befc2089957432207c1df9e31d6bd3c7216977587758774bda545215b6b0ee53645c7a29a2e3534a6b866159c5bc1e9847af8b561a3d5523e491c59723b1848359902f6bd7a35e577dbeb3d65abbcbfbea9cb5ce6f856f93bc997074a3c762028acb9b8dd18df1868c4bb606f6b3d76d5f209b9f75edeeda1ffd58a594f12b918b80cb5138218bda7d3a90f030cb15967d90e85c1f243917be021a6e37b1934cb0f06514ecf5bc61e07a3964371bb555f6b35dbd0b6ef539ea20410863f47ee6e31e0803fbd52be32422631b8e4840694991237344163ad0d1810a9b693a299d198e5db9ec73448f2a6c0a52aab02e3ef0c16a526048ecf64410ac0a3e3461c48e0a8cc88962592efba8b4d842450416d8ebb28fca0a2558ecb28faa6552b1be54c4cffd7e466e91c518678dd1b386588cf2090b4b377a8cee750854cee81ee710dcdddda7cf4be36d4e9692e7cb8f33c638658cd13d466f0cc6e859f4185d13f58b1c32b619904f94ee9ca316f936a7d4643684c56b4e592fba9285853fe59cb2d37e64b669bcb9738c7506f9a59829e59c730679e7943fa79c536e1e277655ecaa34ba8b341a9d46ef39a594524e59e78457a551c239e58552b329008199994b52426f9fdef1bcd2a7e672def851c3649cd97623218dac6da2915d19d9159616927db1c2c2cc2d24ef7a74af85f4e2bab4b05c49d25cb61bf94e7a713d05935685bb7bee234e83e12577f717cd9d2ab1f0e58d0d63575a7e24099a90a009845a40a805845a504ab9a094724129e5a2499338251667cf9cb14762b3024d68133ac50ccb45eb552994d05f3699ef229b10b1f0659315ee898c4b1f9c742503315c58541b02fbc2858d449b569150e537d08383827542cde04adb4234b2975da92b2c9ae93b1840178e0e300d5cb94c3f0ab82add9e0efce118433676129031811a76bba92b2ef17a8c8ba9198e1a0005ddb887a38536f58f9890620cc7b27d9b3a966d6686c5855fb87cf1752bb0b31418b6c849db0d74c1e11cc7fc385c361b9f820bac7f578d59b61bbbb202e43cdcb926d868a1d0cd46fc5c6d149704bb68c101df037d6221f4642ee4627b20ab4f2e171e61c285a30b1ffec027303bf2e3664b6e76648a9bbdd6a7b79714351ae05223395cfa73bba1f32bd3b04decd300ae9cc10fa457b92d7433389560dff2d0e10951aeb0a2c8931358e14d72a20cc10401375f3feb4a4eb37926affe57ef8684fd6aeefb774d9f4a26d204faf47d0d53e9495ccc4b1036b6a9be7f5fff4284bd3cc6300ccbba529bb0dfba1edb8f44a28c061e36db6bdd7775a2df36afc7f65727daba2cdbb6abd33cec65f4b7092bb509f36aabc085f57e6e492232f61e6c6c130c95b1fb74cd1ae05cf67102c82dc0659f2440b7f6a908f6fe5ad4e8261f6ab3ab0f6bbd2952036773440777e35f7773615e39ebedf89dfcab93b77fd239e7c729a5bcb4a30d4e76266bf93c6af0dcdeddbde38bfe9f8c2b9f07c7901e8c8d075c7707c00300001068914814809b653cbfab5cd9c9ed463ec31cfcfd371e70dbab72b3d8dccc7d353169bd24e6360a5fcda2286e0e83005ceaed0840b6cdb07707149af1770704c2a08cb44d40a7a6519a65d0bba001abd46d86df6bbb219ff246019a790f3ff3c79e7a1f8f76e2625d8efa7caf2e87ec0b814bbd1d10b814c6f6280a415f11cc1bf25a42364f6029c03426ae61834fd200573e64d52800d3d424e0cadfa0b035a03771ecc75df9f283782e6b770cc35c83879c2b7f04d047d3c4ec3074e5262554f1b073a95cf9709a6ae4afe01b0566109edb37905e4572fed966859691dff3e195bf62042b93f0c16d1fcb3e4f38b9f3bf19e6ed8773358a317bd8c595df3caef655d68fdb8df9b00b9cfbd560822b9fbf1aaee67db07ef0aff7edc6fcac4a952bc33bc8c56a97837a3037e0e581c1c621631d108e7c60f96538ec20902ce3748c78084ab9dc4f80829cbca0845b2dd4ac305373b94b709b41d2eaa783bbf065c481e54222c169dcfb4050dfa3ac9e83e07e1eb30c7f23b81f7fdbdb1fe50ffff93fe2435e007fa48113c01fbb2f7acc07e0871b0d786de20d789b86f8feb2ba0c3ce232d2085a651ca44879f264c99224498c186181e2e3c4902b9fbf7657f9818c4b0f33d127fa391a59db7d3c7638b79783bf191bb2fff2597e71be3c1d1a3f7bf7d18757c43e5edd77c5177539e4777f5d1e86c58b7e845786d72ec70e1a6e7c1ddacdd1cfa28ec2d8a8da14fdd6b197833f7ebbc0d775d1af6e1ebc74b3d194fef65dddd77fb9c07fc9cfa2f7f5431deee5e067a9b197e38b0f67b8adc36df433cc8de718f34c876cf4ecee33620dcea31b42e1bed1f0867176cefd1bb041168b51153b8575810d1a55c182db42b12eb053d8292c11ec14168a25c2ea9d0197bf035c96b9b0ecbf4be4b1bb4c562b66ad7bef32cc02fc9ed238bdcb3db63d193e72707abcbda18eec782463be2e266aadb57e35d51905e418a00130870dd0ffc55001c8e5faebfbb2f7e9a831d51f587e1a2f439606e401733aba317b3378068f186ab5d699b14e852decf5145e32c85a63b3fa31d4effaf5eb021cc0513093ee2744410671cfe2d618bc7ed7faf5237cf6bea8c421cb9653f4dd4b12ec176f658f39467d39822d92536d5c462ba04f2bb4893f0613ff54feb93ec47ef4e1c7900166818b50ea719b8af8c72ee76dbc7940d75ee0f384108c262a14f11285aeaf0956ae902763e1c142161e602c626767676767676767676767676767676767676767676767676767676767676767676767c787f8f991710942202ab7df873a7ae7b48f180481dc95dc7ed9d373093472c5ebf2865715c1d49c35e79aa11fcb66d0a2a67943ad8a4080615aabb716188806bc34e06da14d5d33d2b61b19e20ad72c2d25d24603dee8125d5cbca14b15710d0ba5209015f66b179f15d34401f8fad3401d2434e438dccf38ca793ce52a5ff1d329a3d7d4d4d4d4d4d430c3c83416124c81c0d6d4d4d45420db415c0bfd900967ca542a954aa5baa6a6a66685a4bde0a6d050e3748e909050a75ad5abee6956b7f8654ca552a9540a042cc4422f52d060c048555dd91e8ef52dd34f0b020d551c9bc3e93c8a6726050453a9144c090d354ee7e8cca062abd56ab55adedd40a9542a954aa55e6054d0a28de3c01c863c178542a15028aed55a8e7b20b8823d90055bf00702c146a15028140a42a0570100da8c89b39555ab7d136aa606b65aad56eb51d7434d94444594a302a0592bec6bdd32dd19e71f06ea56e5388f7a9ef45a9e535feb34d7b196e3fe4da6999919d7f51c8eb183e7d40b14e1907555d8c2565b85b76e905974778fdea2c2c29f974be9312b42ac08319f4b73658819b18f1df61c7327e9cef9991096db24f21982916b1bb68b440f451e738cf995dbbc8fb39ae759378136f99b38ae46fd61e37fcceafa729f34981bf6d2b797de2814877acee81db3f83ab89b18a3f434b8456c1a1ff46d781bea1d91ef9d3ff46a9ba27c1ddc9d2fa79411bbc1ea90654341babba11051f65982e40c0d0d3573b70e6f9618502a82750642104249d2af69c1df03ee84c8f56777772992cef4c91f9aa0a6e6460376ce7e137c97734e034439df67bb9c73b6f4da2b12dfbd18af461cc9f20e720cb657d8affab8f8db6f91cb83610f86becd111960d3e7ae7a5fe97166b867afbf7f0d3877868ae37aa9fb080df7dd7d50a8f3e9f12efbf80cb932ea0b7e4d423ed3ecaccb7855ab61e5352081dca28fc7ad41f5d5a07363ba041b006fcb8134fc22ec325458f8e4c687397d8250e8ba57b3b07cd9728c1e16d6232ce1238921444164f5847a1fdc584a64719985e4e7d65c662961e4b252ab5b80cbac22436e144256d69bd95e88581f767ee571fdb4a9eea0f7aa372f32b07ceb853dc4300f0e69533fcf0b11cb32c49eb88592213cbd82cb3e370012858f164771d9474992abc4081cbd24613bc6f85da94dd775714b8bf3e53c922d5d8f9627b1b0b43c935ade5a966f69f17ab4bc772c5e4bc7dc22bfc5b32b8673fffa5ccaaeebbaaeecb7ebb3cd03be3d773ab81f89362048458985377a6dda5e90b0ad62e92c888631c60845f682048410d239e9f47a4cafdb3b42870d636c27d90b9297232c63ee43b6471d5c9b7cb489ff6565fb3f48e5e248c82463ffc17db031cbb8f435907d96e29a8ca422faadeb24dda3a44d70f58daa161bd244db4d7cd17623a2d77643afad06c31b6327a9df28972b52ae3cf57ac531e47f6f52524a690dbe9b0753bffe25ca44bf19b176b4aaacab6a90d5a8ebbd4675f0422316eb48a3ff2ce416d597d159ede0854152245fc8174ab7692fc3471d4bb7d2c900af49e260af57a311e98e7456149ad824819520ecd72809b449dacebe0d6f63ff45fa4ddc6e6aad32da3e0d34d86bd3be5e6a3b1fb517402b1793b5767926ef4b375828010b57b4fb4cab3e5d2faa2fc39d5932449304fac4ec411da7e94e22a5903e0d8110c28717ec607061b117fde821aa42213ada853a45f48a33390dcc01937fc9af50671bc27603b58b92ec4509cbf2244695f58fd15f0525cd62cf25aad1a71ba514fb09d0af4129a54f3f66ebba1795edc76aad15ebaeaec45b26dab6abcbb06ec3bacdd3baebd234ecca2a56af4a5997f665af6dcfbf75a5365daf75dfa6ebabd3883c93cb5c3ff290b0713481ebbaaeeb495ccca8eb5e8cb0f1356d7b51d743341a899e6f26faadd3bad18b4422d16bdd487b912612699b56babc1cdc5a12059218634cc246588a26809f753db2d7bacfb2ac83de573be30eca8d1f57504a5983efcb11db7c2f140a859228160ad52cc85a25596533ccc2065728d47cd8737d9497077b56ab4a39f873bb81b06705678cb00e594bfaf4d327faf161507c0214b34d835eab4f166539c2b220cb4296758b8a3ab6a2ae8e8140a02b3d272dc86a537c185c58f928d68d90ddb1c11229238c52ca28a594524a295f4a29a594f237958d2f656441c61e83249265c4ea32956be4d2aeed26fb6bbb710ca39c6570bba9b5668f751ce83c30da701461e15fbd69da76d3dd35f8560fa63f078c2103dbcde55980b7ed067a37d8f8429ff88536c50e7b199e75d7d7380dc61d6b568ab4d0343eaad8686fc3db681fbfa64fd856832f06b5ff3c703fec75705886410cf3664c264d0135c32a7683fd2c8e8c031cbbb05fcd8db76fac0f3b1999d7428d5f849d9ef470b023cc171dec679db7c8c4c63611c1f5697efcebad5f735e33e288717651ced95d75d63a699c317a560c71f8107a1cc7f0df8cd0e07e88824cc6b4ec8611421e64dc34d1da0048675acb6c1b1136bec7e89a111bfb47846d2b9d9eec68a188df922753eef85198c00584cd31a243b7a287ca659f24aa99cb3e3580121fba7b1fc7299b399301deaf063a0d0358267e8c31be6f46ac7fafd0a61958d30ab2fa9aed9328e37b89ba4ff417079d37a8146ed705b1746a06000820007315002020100c0804227140208b535d157e14000d78923c74549cca8349920439885188188308010010030c10304363322500f82043d765e8920cba2c639764d855197421f3ae64d6b52cc3d3a58cba90597740fff714deb8ab2a2e935dc8a82b997749665dc9b86b9975a18c5d91a9cb32ea9a0c5d7e32bd2ec87c17024b07f48f85033adc28146b1d6de489383c88c993bb80b27c4d2ce70504171a77cee98380b0e67af1c9f5325e3f1ae49c52d542725fe0eff8ab5ab60e8166cf5c3a40b119a552ded9f65ea2d0f6628325ce62f6405307451ff7c447d5de0caccd649849f1a41c557bd23ed14670cae9064af6e8cec6250fa488e7195144186b6e29dba106a1cd4a5d44e48d68668affb2dd1fb036643e12f430d9ae4544d9189993de02ee82227b9c1b18ce1cea5a6625da8f95d6fcd7a0c13c15b5addb89481bb429ced2cc4d848b0677a7d0fc1235c070415c58d00860baf7db2614e597bf15f1de5958b142c15d8adc8e4aa3146a0956f2c4e9cffdcd8d4ef693e3a4b1d8072337681d1997569404c94574ad9c7e48110463a34e9ac4e590fdf17e85d2304b5586720f3c62257c6f07afc8cc995ec592d052929d6d7b28941a6a7f613fbfbc5f7c57631f9de13c8a23ede9bf13ff578742fa4a1ebe5ebb18531b0e6791e04c4f7d3cdc18e565498e2e06adc75bb372b1d72c7be1564fb4c3fb27e72523fa7f39aa78cac8caecfa5f6db863eadcd68215b22fa7122663fa637b4442c4bceeff10f82375d0ac8d2eb18ec7d127d1a55a523eb5a3c9b3e6d1d1f4166f508953c09298cd65825c56e7e9e6cc3de5ad2de2effd1db9ed7c18ce099826117aa2f39ac7c33ee20c876689c1304e17ea169ea650b9b9fc45d35fae3d82407a7ff03414819c117db6f23febbd7041135761bb74c3d41841a0650aba9a7d226007468876388ae8bee26c55e0683df9025706c4ac0481c747992adab0a5c6cac5cce733d9e82616f3cc7c3d8fabec8ee3e6355b95686de5b369ad759a6e2aeb3dd5c54217e6ff8f8ecc44cc1ae82f1728469bb26365225eb556f4b6d60150e12378856a6895936ca9f88e8360ca442c43c1cb065b569b49b8f9a948e2a0816de22d79811b156d2f7bfa6b5f61a838e331a9c0924c6e50aab6390704d1cdca06b6857a2def07b08d51f4793322c60f2b000165d195655c6504eba71b6e10d6ba01b2e37178a44478b4a448dc8eb5c1e758f87c8b0ef750c8b06e3b9f20fe0bd73b16405a6da4916343d3c729aac7822929cb0cc459eb6923be3f45664f456e19824bbe4bb5d18305b4f7ace884f8660b37d53eb577be91e8d304ae91ba4f906834bf4f4a536a5b780d0657daec3704a692c7fb6f9afa927ec05af25346e5bf450377cb37a391e5c02d4c0ce251b2c87a76e484188b1697e017ec9bb97f6e57d56f157eebef3056512d455687d484391902f1b929234cb453617ca2dfe24a5760a51a01b4e204885cfebace24f7d99a008816f12c05e8631f700c359b2a1e1a087a652ba6378d9fc0866e732d67408c80837dae638214de6c8ec5ff914be5e400d693b84391ad59c8d2ec3283ad0df0009d8d8a2ee51fd79589081a7ef782aa012785e96f2b5a0881aa77b68505774046c92ae5bedd43b1d204949ef21199b6234b16c359546bf72b6d18a40f28ef90878ea449f2bd1d87ba40c3630edad4ae36b1ac69792cba883b513bec4b6bdb9c708061fd1a1c5fec699bc193b62cfb99eeca7d96399a046fc0b9b2064452d59c50898564a7ab03ecc0da9c1f21dd4c6debf604990d51ca90f5f460ced2d98338f3390a777c441187b98f84b10f80b4be5c10c92439d22222b49a03b8e60ba10e0c13fa95b9223180c63e2aa122de0cf82c46b7dfecae4890eabe21fb624083dc5a68430b1facc00eea2eacb0c26fe76a32835791f4cb37cc0a9c9ac332c105766abbed9aaecbffde61d3435081f478f8ac56493eecc460c803a0061f52109730e6ea589c731d27589763be69afa2e384cf4554f8ed9b1dab874006a9d8b48be8091ce6c3ca001ef9bb431d59c4b4b4befaebf8d2c0c6a63126fc02a6f9436f0cc4b1f02c7fa292f1e69f2abe6917fa9565885fc1506e6a9038aeb4d9021136894a9be15a3b0f088a4c6d4a559cbc3de8199894ce4d5d14922751623f5224a58b27712a94c2b8c9a44a748c28198e2e1e6fcbdc649368f48ed6360628e86170583c0ef6d4803492f5de2481095e586c2f23a56660dd911ca0a39ebd461d012ac2c9a4a26516de176da08db514d7c5d1f15101cbe2b5319a8997114547fe72ebad0eee21460d86df5065cb6ad84f4af4cf648ef0d5aaa08dda5a8c6236c598cc26a4f1ef38bb53df685a14d04ffe081f940c03b550784dcf9de5bd2628d9df99832e455a57095d341061f52080a0366d3f40ffdd8114ffeee785c6007f03c162c873c9787da07713851dd1871d326cf7611432a54004e74903b3a6bc73e5574ce4f40942b4e876a5325582eca8cb08540a1429d7ab0947447af4aafb1f4176a4ec1724a4897738d4bd612f2de49abf6eea630b05243e7a4ad355709e20e31a8a77214afa2d4d85f911043e97372d68473ace0a011d7d9ce0f749cf3d2be510033f3b4b34914d26a2fc3f1f17cfaa35a1b854aa659e83dedc6280345a973ff511635b795164f21401edd2db3ad90efb81d91278043d16bad540f759a8b19ac8df0754cecdf0385a33f46ffb250afc7e5cd559ff23a004046218933fd885c8c0fc1bc35a1f934c14379b923475cf22e6755a5ec1031dc0fe286c88f749357d888bc7eff6d10e84f0f35d87ea5830c7db4955e45ac27048689a3d1cfc27cf56055b00e34bf4b39158684c0fc52f7bf27accedb84f24e174c56e052fe5c54c973b1c7435e6f96d4e320b5c02e7d81b30baa77884933476abaf0cfe63edd3d64e49f41a7a86cf803f2e1d0d0c1712c58832aaa176afeecce2d2343494cde36ae52ef9a1e1542b25c55c08732f446a0be9b634af695e2f39567aa558f69ac1466789327c67f4dfabd00a90ba5b81d1fb99ae809d9d93590cba0056c8325d11476af0b596509dace02bbabd50682ee6d15a3ef34f1d9f8ab4a0fb7d25a93a504b3fdb040eac786f7d30cfeb67d44515522f8f6b74ba5e40425a97ac28536677cba367694840a2a44f672b68e2221ae672d59d36338f2aa32a72fd73680bc5d6c50ef9e1a326efbfb8220d525fc76f10646a56314feca396054419bc493d6bc507aac03b8b791720a2b37c1ac48844d244182f85433fcb2ad118c938fd22f0d1f28de221d5768383abc41ca98890b814de6b13a7da84e064d8bff4296e86ceb2f9aa1821f286fd6c4d3f9308c79d5ba6c29ff889412fba53f1decb0bc7049579b813d077da2402e1c5af4f53c39d27a664212c3ef6d2c027929ca1cf6f695d3dbc6edfdbfc071be665852661ad506d135826ba12f20659b30cb4a6c43eb52f404f93d1c32d8265ab1b728c27d8028cc05740997237b254160a6ce4054bae2fad5b4c588de51ab20b358c650efa41a96a3d54ca16a120f6798dc5f8a462830d67c4ca53c9525caa08a2d8a01506a2e2a66a1bdcb0118115bdafa30b6d949957105f5bb2fa05cf06310dd92525e506f8d3b168ad4cd43558c290cb02a50f27dc6e572bb60d7e72a4605bc788f3aa640d76dcd215ddd6c5b002630aab7b219f33e222faaaca6db338424b426a2706cebef345c3c78d36b43c78637d588b7775d54b0414e4a86bcbe2aab0c0d34ea3c6fe821a79c0860c5d3eac3c41c8c5043224486cf7f0d614623a7cfe46c40558a31e90e068e8491cca8032a3511fb0647c7106d5d70f61d23d3a99b6446246ffd4fbfa0c6dd36e0ce56738ec7d100ec856eaf454614429a2e862811d59dcd889cd29be398078e3b37f9e9e82cf1ae39fa9267f28d3cbb809d974215a2fe490282e6ae23910d50ed96d861f49d619a8662950db973a651e1d0f7301bf3869ed4a6748905aade15e87696f8db03517a032fd8dc596f4bbed334b2643297a845b48d0313797a1c91cdea51b6626c5a4f2f1ff4c93bfabf05233b7c0a5f82c29fc26414c87eba695468275b954945c3ee22f3bcaa055bff237e3f47768d6c54bbd8927781811cc8c14ff162229057b239e38cf70443b4a277907601cb840f0e2c4ac97e4028a32003560d9aeccb38b51e951c39c986e34d476d15b2e02471bbf31a425aabf8b73ba823e2ff03fecd23419bdde5721015c0cf3af5eb7e78b5e7939a830789e06bb3ca8f024c43a42c34ac12432830f691891ef728744ba766a2b937b2721a723b4aeae7ec45ba8d367bdb2a347bef5ef60c26cd8712b5d6c1dc9fc486f2e90d6e78ea602aaf67ad45eeb7c539bd2b16e50304ab52eb4851f401eed4c9db52aaa0a4e9a5a9d92155ff0ba47f9cb1c42fb2b531834e1910d473ad8324ab892b4fde66900479e035fbe019ce0f9170e119757cbcf469872d4ce21910ff78dcdc298d0a78489a4653eca822cd2d57560c12f68b17463125fd095bccf511754cad37371a586c2904ea9266f610a747dec6b47fef184cafc63ef5cb252f642facf34fcb739791b84da688f2e3d6dd9d20bb364d923821e18f52aad7f9b01fee798da74333fde46fdbe7eb71380197614b6db0201212280956de32907858c27b4961b2ddd5c74be0dabb5f3b49c94637ad89f65b4f3d32a3a9bdce5583abed2441b478fe0bca1ef19954b79e33282503ea8c6f69f926d1564ec241ec40a8ff93a8e59fac56855dd9c6b65596bd72d6a580228e2400640b026d1d19c41e8c425f61402e4dbe8f87e2064b89f2e9308f6a85da24287ae30a83ffe5e3c4d9238d13259967d45b30ae756e25ac24bec55e12bea306ea21f84852f5cfa1b4a2477d4d2af65c57a665ca01fc283486ad40c1c096b92ce7ebf00da4053313cb8b261c5df8512fd0647b3a09906210e94b62d233b04507c20bd98cf812e162c233da8476a137545d1706d5c73be4f8aa328d16d87678495296eae3343e8ca9c70e43386a5708b8e40c2ccfe45e444c587f6eea4ff9c963216a73a714273a919f839fb3ffad546acdf181eb27cc35ce7267bd0030a8d994e28900262794815c09736277a2ca28e41c18a44fc90d9cf0f0eac84280ce01235ba5ffe269995fad8612c1cc034016df7abc4c3e7566264d259141200782ad4f8e055cfaef1adccabe283ec0267ed02c6e070ab8fc547a6e5f1381c012e4f62a28ed33e248412c231287540739891ef79a65c5b842246efa89d5592e158bd54a2304be2645bd413eefeb3f22b1a6074402ad057983185a328679b8beab3210377c3b64fccc1dba40dbb36648e256b14f64c6d82b63d168d1109ab1c0bf307ddf8ae135e4fbb17a56041794d37fee36c238d9e7b5e534198677828381923cc49089164e74a29495b2c6d73bb9b7f3655d198dcbcb40e810022cfcd889e89c11c9b69f707ab97f5a5ba115dd2e759ea27881118e475b544a1a1b5b32f6d0e4f9327fa699ce631554d2b097e4f0d6bdd472f9bc075ddd7bdef1f4e94adb113b5948cabf53e039310a5ead42aa3e42083c79aa0540fc2acf7812404b1882a8eb4d9fef6276a80e8f67cafa36dec28086d15b7476e439c1d41724d13f48cb9de9e5fb33ac3e87135e7b794ced663c3adee6c9a39e0d3d4f77d6881a6e3ed5ef2062cfa3b60989fdb38b1a627ed7a4785b8c1be90f0cd4ac259f9183a2a90b8c93c459378db286b3d606d76606bec2a40871a26b00190463a4b9d716bccb6b72c727abcedecbba31275f00aee4e09066a148cc3337e562fc8c37bff4da1ed322f9cb72fd63a5c816046fbd3a31f01b8679149070b8a80081d7db37b75e5296c3adbd8f478a4dfd92cfdf476e149dde86d1b41b0c0863b6fa5ad5aaaa8ccd8dc09d983cd2b955ea3107bfe36637f107e78d835784ad42aa92ea8117351754a5d6ee4a010097aa0704723286bf95c0a4a1e64e1978370fb22ef483255b9fba42f5ad3f3b2d70508f862ca5fd7937e0ce55c3b8214e0990dc553f104ffe7af45e53fd5451ab40eb50dc1e2062d38d4ee02c9a6f065edc82c46ac008bca8ad38b0b4a05c7291617eb9c8c0fae9c6cbdb4db186304c6dda541858768bc170bcb62ddbc4debbbdd2e84f1d4b2c09fcb623646d11d4e5ba47b17baafc4ee9bb5cd6916cc994f0961a16cc9feec02f3f21557dde11f1017f969645d941faa17cf22d29018a0cba3993dc83cac81281fe50d930b34c5782057edf2dc793fe0a0f0568f4b65849da4636c5bfe900b39651bd835218b5134e1cd537b928e2063b235cc99a27818c0843af181edd8e0da5a07c969f680ed0156c8063ee7f2788e013181daf43945f045e34cc06e604ce36c7c6bf523a509f564863d01f3ea5c6bea576f0da9012ebf065fe4d098979f84f9036c3fd3f55eb7f9530904b963d5ae07f87de8d81b7ab77b56021597b390994c9523e0b0f48167284184aa154ab47b239f1b7226a778b83d541e71c38babd50f8d1ac48807ebdd15de3d5ed2c6001f73392449909aaffe6aef3eabdc29a3173a8a4d95fb036503dd23bd0ff4fc824596eda9be12849d40864f00f73843514d984ca2fbae00d4d28673a304507c31730ab91f0426e4d2618a1190a8ef6c6657579d9457bca8fabaccaaaf137bc8054b48d1c79756a54b3a45cc66eb4a8b8284ba12413150d0425c6009e513fcb9dc63526781ee479ba96c17fa0902d990446b5a3742c4775f213f00f72089976da2e06a96840da61fab624ede72c67dff8c859869c32956a46c293ac69a9955257ad9775f2f2ac72c721ae80fd2347e7fc413d42afb03599a9bdb05ba35b5b3d52e4892487b1b97fd33cb613a84d8372e2bf63d112af7532be8c46f189ed4495aba8d44032398b31ebba236611f2f7e84df7f1e12df87c24a59a5bac9776ce0c3b38cdf86ab6acccfb0c90585cafaae2697493313f191c00891d16d13a689902e7db52f96dd9ff40f1f266435caac5059671821af96597fc2675061587ef559c6083348575f6eac6fd3c75636f3b2dcdc7593973f20012a66cf01c8f26ff95cecb3549f8956f6fffae1f96fb865bb1584eddade0704dc9afdb34441cee887f88340013b9b8008f6d5013d78e0123bb83b0815e2335bad96129f3f68edbd1c86a1dd932ddecd688c59f16d0ed638008439eb1adef9dae087428090a05715d700e651b8e18368dfcd0cc4ebc37e0e33a48710dd97d0976e8da4573d8c8a061148a267eb3f6134436a851c2a873a32d44c21c33b8be14b26263e53157a4fb420b1d86c16fd1015b704383c41d6643ed09748b7be8baf573fa5d54ee679b7f9f6c3bc3d3ec37b868f3988d683b4132c5ec7cd7de8d8a4a2e25dffc69f02f96cd5d03223ca6c6941138932533960148a7c2270ea313dfdb87251bf9980dc582143219410d7bb4674691ff41f9463d3aabb8ef4a868968d1e95687009609822de09e603aa9d92aebb52aa3e863c23b5e5e4becc4146026ba84e93991316558e5ccc26378f262b64939e2279f8e27f2e3b271b7c542aac5bc0a7da6c7ff230738bfd877b92b547b2c24ac612f15c61e3294406b468e610e3f15ee1e475871ff87619037caf8a00015cf93ab1b7ca0f1ed6a2659a488942516c4c54ed823ccb2cde2332882e14be95d271b389c49abde45b03986704b642a0c0ff562b01bd40aff44bd4f0f31a56588eec765460dad4c9084c86a461eb04b6981571296359160cd6ed507256ea430cd97e74c2e67c67301a7d0b4191c7c4196d2de63ef9e39cdb2625d361781e0813fe9c2df6a3eb5b66bcc6a9fc807e562b3e94c281510afa29b18e7328f1385021d274977567522425a790ea80dcecc8bdddb88e8ea448b7ee22fb2b0a3a698ce017daa99dccd0fe123c96083ca83863cb8cb77628ab2fdeccc75f1a8ea1a650c90dc24ebad70dcea84c3924cc0d2e52017b4bf33ef0fa807c3a970b1830cbb96f74bbe5ad8c3782a8453bd5d8eb19d24e2dbf13e1e9b86f63cfd7d45ec834395734ec44bff8084bab5f622730d5f380daeabdd879876abecd74f9041b2ff19b681aba9c8b08275ad665560011de534f8a811905949e5fb0192f6532a4dcd17b1f1a942d39b5eabf2b126595f72b30b39e79d247e423c7aab9f391e28f4bbd33a5ec8ecb890a049fa9997cd2c4741e61bbefcc6c9809eaec12dedd12b26ac06370f87be0d945314d19c5fae8a0a591aaa73507d6ec44d22ae89b51fc5442dcadd891d1b2538ababe6a82625781688470338ac7cd363bbb45c3db1b0e4cd333317808f51199a88d430e0c93ea162af453c33eddfac419207e8dacd621b623a8d08f850f2a16abe7863cff28d70849cb147d7e374701dfbf945cdfc17e0fddc7bbad49c038caafe496dc0397f387b830a28bdcfedcdc4f831d2a6cd5f77e442f71937fe0baeaa343ccb57cdd131b3662f1f50866f9140543a153afcdfc3a2bc69052db2cc6f8a4b41601bc04e061b721188d1fa3f1d99754c479b0c5d99965d77d4a3411badeeaadb34c8ec2ecb7043b2e429c03e7fcfca58aeb5479c6eb619bc92c6a77e5847eb2966f379d96a8735aed61bac8a5a39ad554e570b91a394c109d403f152484cc32ad0e88c3255fc706a5cf12626b0f29e75b8425fbbdbe42e8bdbab3ce585532eb58026b692c4873526821642d606d2243da95888a08cca434c08e3f67430998600901f606056ea8627d082b40e0a6480a5d983d82aa4e5dc44708491363bd3fb9d60fab54353c9a80f4b8e74a736f8b76d97e9ad58f773f24f78919bda0a023431c351d091770554f6dac3429c578be6187c00d7d515f253dc394d45e48a41a14e6324e856b80a7682d15e13739fc26e57e18e4541d00ac3d0e0bb9ab3f7a3ffccda0d606f90a864f4f214e8ec2bc654785c158b43d43ce4afeeb79b13ebf2c2453b00749809e72fa2787367759dadbdbbdcc7d7cddc86ca87de27692aef5230b726c557fa20534029fb759e8361186cc6ca2c78902f0978af65b08a5ea87b39936ab36db72377ce67f427953ac4c5a8ad4566bda105f1be1774ead0a9e3382ae2279edb4208e20e3dc9be4426cc88a29340e37108f1998c30ccca36310df42b6a9a3fe205e2249c56d3f2b83ca40778239195e19bb60a9faa4ecc52358ddcbdede8878872dd60843b4501bbaf64fc6a1b0c478e505dd8eae7debdf1805caaa3cce117645ed9ef6ecd9900b11fbff6028835be25a39b53c4acc5d035c0b6a30306cdfa07a9efcadcb9600eae138e367bd51661382aa6bdc26ea4c2265530e93ab8697201d545e9d2e7eca7e008875431cab97492918929166e6a5c81692959afa220a6088c4bafc629681f4b95cb952fbbf4436cc7531cbc9bb22e1308132d3d62e65f005314324012e8b0b9d3248420e09d7f44e82a27672f20aa8e5034e2d2fdded1dedb77d7ebdebcc1cf980ceef509882f0783fd8403bb5c849b4b1db788cd93d79c4fbbdc3820699972349f85dd1649869117a6967cb320b4ba334e6c0ecb2f4b81eefd81ed12cbb893f3e575ced747aea999a5a9e70382aebdc4b285127d21842cf83867908fe737277d91968bd3c755176224f38173381cc54e5dea180d1e26432d8c1d704662a4398dc72e6214727bea01540231f4f785534871d2da971fad875aa88210b22c4df42446c0dc992c40f0367c251da215500479f7996318f8ed5464ad5b631bbdc566425ba70f71f7aa72b7a89e62d68d9fa0a2632b107ab8e7202e96a1e417d5ed60eee7b80f1c51baf5b4ba450942232c7fe18beaf5adf1f3661d2eae6c5bbe63df3c37a9a40ea57e7e2cd36d03ac6c97e710a8ec9552dad596d779ed49b4fb4852ae0bee82a354497d26a094364b2515624e483007069010429c20ce32748ef23404f7b2f92a139b8cb20c9503214694cf88239acf1352b98ec52a111e87b5e0cdad105afdcac0195f21aba59c900789086f95383b0ec85aa382bf023bd476f24e573c8d8c82055856d72d0a42129b3c799d3052b03a4bad98b56c1dfc2d872d11f3659799c8da6ac156bc3fd3e0e804f206e9cdc03d4810b97feed2e9070e2d4f038112abc0dcabe0ea0d9d9e89085138791afe44068782cbcf2282d0a33a2ebce6682aed85959626236fd72e310592b2230bbe1a5897b11b21c08eb85833ed598aed9e04dccc5ba8f7a891a8eaf565ae4d07fe503f7c813b4e27b0e9e5bdfc235dd81d80d72628ef50c0446513016835029b1dcf78f98bfbf23f50e438d40eb90161944cef1b3a2f8369329f95047850987a9c245cc3d38b4f4d4481b60902c56afc9770ff580c0783d972d346e59c7f95b9ea3bbf7ade64850b98ae572fce41222999f9430dcfdf4f4f2bc36046ee8bc0ab4fbec288fcaa5018d54d586df759e18e2ecdab9ce6782e33d395f2238872d0efe87216a76400ef59cf20aedb2d690655fbcd94f66dcef75099f0a7e9d330e3d41ebdf9f0d538b1fb50fb736ee35ca261c0d89f430b3f7548a42980c4231bd7bc2ff517f189ab3d07408e0afe1edcce90a74a79a019bbf7d0d99659731bb8a70878ffc55d86d90bb3436aad93b13c17850a42e8da99bbd33928997067bfae214673d54d98ca17ee03b652f37b00ccdef7c706c111f6ca0b5b4ab311b058335f2d90dde68c2e23d24f2036f4aaf54794a267e2c5ae4498ed33a9590f427eb299a48ea2155f2d7c69b91ceacf4a924a911cd29e0007d0c3e0eccfd7c439b1ed909b234817ec34f7d561ae375951b59581a611ff0cf68ec91a604a3ac1325858d9bde4504307214dd3e787ef5b2bc44244c733ca4bf547062de09f1dec868bfad9939f086a9ce405861cc6ef1508d3513a86d9882dab997883543ac7dabd215c20f8668c8b444c1cdde856d1e3795b11603be7196adddeea388b2d5c1e462424eb4697ff3141787c49faa797223f6c143d63dd7a1620b0b6b908966a55e4f06a82e37cd4d78c5d1ef29b43c42f4902c040749b95d602647397db1098b6c8514d3f30e7c45eddd4c99f0f0537629cb4e4b121204c5190d6124ed347ac0e3703d64be57578009607e26eb6a8680685f90acd6dd5806399da46e69dd2273be3e39be21119bac329ed22fc9b34e58ebc95ec9672933ab39beb80df85740f8ae712c81183a318463e5c4eead8ad1db87f10863e98a211843377640cca0d8a19ed72886504c9d58c2b1c5b171583ec198ba31046213c536e2fc4631846208c56e7d0f223d5df46de91ad3a3a087c6dfddb70d23d0ffbeda5dee1d5643263eb517f4e06f9b5e0cfc050cc49a4266e9bc509be2c46674d96578b7965700bdb482c723cf3d286f7e91a065dec6d1cb5285618ba55f07ec201ade32da6aee99e47c734bd5dabba7b354c4e8a2ed1495837bb9046f4c146208a397f67d93438cdeda4859a2b2b968a19a05a922c5fd5a540a2b66bd696f1c29ac2a1028681ff3951fdd4ba1acec145c55bd5f98265cf0c8ff1f8c309999d6f8e916df1213f653b1da8d3a9665b5f1a2219305e500c58c9e1621aef4722fe190d66c43dfb9cf405a67a9f046880c0ab45620249faaa61a3896d262a5285304c812e62ce7cd9357742dd96ca0514c62516012f7f9c592e58c28c4f62b6ce56f3688b8e4ca273cec2a330416f0efd8432d3eb5325abd3cc297ba29e14ba411385a92450b07af86fc88db655fa4e8595611b94fd4e070e79a9046e910d2e9a64710f436fe47ff6b7000a3808031950060a20036bd80343996298846be4eff84dd15c5e25eb200803803acb8dbe9aba603d1be54fd2d17f7d6bd8110383c0121692aac5059ff1fed51393cd3418ac28ae6bb7600ab71ad53a0be8c6e84243af4165a3afcf12d5131e1b2990a098ea0754320b0232104989239abd601a6ffc3bac6dd4824c5cca229e631d1ae6761dd25de5717a4e8ea9444b7ba21505607a25b754e469a10921a091212d9ff6210e9c7d7a7deb231e057bd66d91214f5dda97ad74dc01e9bd47b48d5459277f2026defe05c2d3da15daf1a74f76e25bd1be0f1c0a35be67763ed9282cb5771d1a6193b851478559346487f8362a180688b5d17b24ec3d7b856aecd6a430f7786305169f130d4af04569b3ebbce4938b67488f6e4d24a639129b43c321d05bf1d9c8a98276045f138079709dcc23614171ee03203b746ca73454ae88a545deb6a1457ba1c6d2561d2b8abb72b35e46f5bc5bc6b4d224bcc4480d8c1bcc3d3cdaf65ac7ae7c552719098a697bba3e9bd2668990b754c4f0e6ea3c00752de768a6b8db8e31b72b2acd3c84dc0c9559d99457b885e251c071d27b4e9d00a9d3567878e34041a9b59127789282207e655650123d58e4d899580b029ed6886da5a1d86ae76a3b5bd951e482a34ed043e3259e9ca34572a105da1d49a54d6374076d4cede9b7dcdfdca1090af706453596112be98e73489045689a74b4e5d3822fa34eb9c845f409f7a4c816dc6909d04bc3b0c95258523e1053c15777530a48abf1edc68f157c94290d8c19fa8ba0818fddd917f0045ea94063ddac47302250ccbc4164caf623b760833d7c1f65d45141fd50320542119c4cb0f47c8f3f75092f48adc3d4eacd6f8f5ae794db810b11c060b717c4c2bc485a2aa3ee659912412a48bcf5a55aceaa1d7177ac3d8e4dce2ce418e17c964e72025c42026e48be10e47b8c2c970b92c8b1a89c22634d2504c6c19066f2e7adff0f258d809600c86fe7b66650fc086bf91f9299edf432e8e9651bc4bd57ee7c1d8ed65e5941e3d3a4c56661e0112411963dae7cfcba28a6cbdb4dad488db4d566f62e82a0992293794d954104a821e9b98befca0e420083e9943aae07794e6444f040d8df6146e42f5877408e01bd2c06c44528d29f7803b76f33d5e143826224810c3a59019619d8e4a987f106af99dbe6314c61dd2c62877e3d1e9de4adeaaa4b7f921ef18711789138484e47b2d830290eb02362d78643663028e42fdcf544ef266c9ea645e7c6a39407f4c9b1215d9a30c188fbabfb2b6046b6a13f26861f1b69f221cb8a790a7ee2be6cbdba84cf73d08d1c8b58be39d7957f145ad87db8b20a5100bbe938239366bd3c333baabf55153fe1b26e30e2bd17b0544d65e266c7454b2c2a719656f9f0302af152210692f676343e71fc9695e2b1e9b6ca0bc00abf970c2dffd2923c005a30fbf1339b27383d8080b3942b8ecf4bb57fcaa468306e1ccf28d3442033b7682bd7a3cdc7a9845b27b18b458ea47e86ba5bf1786395dee18b75c832836349815ff249fc956e94766de967ed477046de403d91b92f8912337c98cbe41012deba5fd2c67630dfc8423268a4adc860d5c273d9d2f3ce6ae78080dc4394faa3a3fd49b1b574fcf95dc589063cd460a7e57b8945faf83871d6575c017fc5c876f42b75e85568ae271ff4a1d6ef2ba43fab018c4156b75d50c5351d9bf3897dca7329b84f7aa53d1f2134ddfd70c0694f9a6674ea5279d06e15522ef12b5fa6e48b526097f10c7444c10f054bbe17c6a110a1b466ce49415b6957b34e6c705cedccc4ec5e0904fc46062f67be88d979b6dda08615d16395879f6190436248dbfc5fed736a628fcfdc5b2f166b3638bafdf5019e64051b423da48c0a113717692fb3857950976cc86502d287f650f8bb0fba60df83a5d65130753a7f8e4004ac5afdef2a98136afdbeac96916faec8aa3b0769111f6c83a4ce9e831d821caf1e5980b3f1e34e46015f70012201cc42cd6ce89e8374cd74283ef07adc6ebcdcb458757a838a0a7ac43288e0a6dd23cdc145a3caf7ba4cd3ae833fe6461a2a465efa66d7c081b70f6f48fd1565e1bb7903d07409f7c78dbab59f96a09bbdc53cd6f6df4437c3954219f0dbd409d5e64ff3b128c03c3b68a4b8fa9452d544435bac231b6f51978c161e66c6b4cd9ec901cd4f31c95fd686466babb304f694551dc58d3a17f0e9908ab65deb507d9501d127d9c43e81a1b9cbed079bcd06575e3f720d0eb7d32a1b41591e3673e19e395e29f7de1a2e871d1108a797d2428cb40f137e2622ea16cdd5e283e48cb2e52d174d32f65fbea5fabc1b52f43945dee29310789e59d36ba4194caca65977a72e7d8517e4e2aa71d5119c78d38cce6efe11bd29399aad4bf912c5b0a6ba09fb4d4557e44c029be002898c5ca5255694b5af9f96598e5120a0b73797454bf3134c6da5fbce1506945bb435de8bec0a93db53020e0dc6a057f949e1668e02520289d4b3ed5262e6f25bd2ccc6c3d3355e08f96267ff22d11fb492626831b0dc805571cf826c778297693640ab5530cb1f06788af4e8bf95be705b98ab8fc43ff151549f8dba075fd808ca2c9105afce4e08dca11086451af22134bd748284357f184de2c58e70d50ffaa230d075531c254c76587f59cfd35f780c81452de6dde4954e3879a854b6cfcca296aad712654a61270e3b588d54c4e224c02036570c942e5c083d9cbda0d8326f67d3567259bfa1b3c71440dbe05625bd49bbb036b2d5414937b445f7c29e3a3b6b1f8141b015d6a736428b77ad898ae2cdc873113861b518057cd40560f7022fd76d24f3e610d881ab3be4b160f75fd8326dfedea11702a0cc9677dda844c9b63f5f67bf7814166da1c9db9bd4288bc65e2fe18ab3e8421d82118f0ccf9a3cc82690290c8a3179a94c84d18952a5697270440646d31fbe216c5308037b59b8148a9915bf965684973170429b0310f2f011ece2772a6ea7f98022d52323e59ad1f72e28453fc04521ebd13bd52a50e083ff39d685e59535126d375ef089f436de3619f3c4f7800da49f9588655ac47a4da87058745f4fe80ab14567cda1c22b3996f67980956a0ddb27e155ebc941ea0ac98d822c5e7662677d301d3978ce2b40855728ab23cde8fc5d59fc79aa3911dfd455db236748c1d16b1243a14bf162b303ac619f27819215843ccd8647976c12ff57dfee922c28e828e9975db833ac9084255510cc45c088503222e4df55878923323a5014a1c10ca6bc14a73b4b56137536aebac35ac75aa19ba2e5e37ab1f1fc3b06e0f0de988a3cbd0117e78557e83660aec544bff5201c505061225d8caa459d1b8d6a4b5a4dc9a7c0d23ea669ba5656f1cea31919ae8139fb0e584d296db804b030791813125712e94a17358810164e0d96a4cca6d369db8a5e553c3eeb1087b0c51c22050448ed208e67b591a14456e51c6507636d89a2560eafc5cf138cab807c93c0f3132fb0a12d25c1acd42027c2c3875344a3c0ce38a6d02ab1caeba29118916924b988eaecef87eb210a61ed3f3123622244b00359ae60c6f521a91ea1dfd03708e16b39e555a09cbb471e4651deff60f37e9e96dd2a0ab67df36541d82ae1ab39c8b30c6e9bfa5e89f8596a1c227215fc642c89f409a0acec05e7988361c170e89b1e70529e42470a13d8d78b42a8cb32db83e07ba8439e9062319bb13b6a78ddd427a485c5b3196062104f563f3ca818828fb1499165e1383bbf7c3b367319ee4befc90853f7e806433a3516e3adabe48bc5a6999a41dc1869a3c480d7b4d845a8cd3a9374e2200631b73231f10a3e65a15d5aa33c6d42fbaa2ecafc1c700a32567a8523feb2f4ee02f23620a0969b1e2331e62b43e59e401a91affc199150cc3470c75eec565ae0800f72a3baee4c3f692b14c5796f0422c3522d2c517bf92fc4c0484e4ad22dabf6b946d450210fd3d2c145174fd087e577ed435ce7382c5fbabcdf2eab8e29ac7ac2b435d347f41fb518ecce82ed109cb7ec6453c1fb90fcfe00e541a19dd3d36b1612e5161c4db01157407422a6f03756082bc8c38d87c1c1864076a42d6ef028515ac4212cadc484e14d9abe753e945f18ae9db64b4ebc5950fbf00b6ffe63b3efbf854ed8567be0c00b6c2483c60df8ac138ea9cc98b04c4ccdab66b50a6821227f4410677e58c0fa960cc7fe88c2c8d3ad72396902736504226cc0714ee54621eab632b6bf5716306b3cef924038c9e55f9bde12be63bb37fc0c67d9d884e34638f900199d80263fb8a044620df55f0c83ee7c0b5989900ce45b7931ecfbb8b0b78209120a1aff4c6ae8af0a8a1e5437c955da78e74a97053b4a2b309d8ab9eb367fb03e63250d6b5f5ec3c40f5658803ca0d0dc2392dec1c660941824c8a9b4d869d3891499560a2d6243080fd0190a41535199d0139cd1e5c196a709e4c5d794d45127699ac2dc5951c3af313654152b5edc798d415ac885918a66ef69799e2abfc86c6c446e64685ec8114d1aca5b0d99631fcd78d55977560ca480cfd0076a4ebc20228a1829e292aadb2b010c7a810dcb331fd0424547a9734396a7abf34c9b740f04b44a35f1d65235b3a6cdcb801376bcae724b306dd2ed47b6cc3eced671c5f40a11bb8d19c24e4ad592ab33740713ab69ce3da4938995b81443940db43104f109717aa7c816a93b24146232a512008c2238781587d2480e96f840f5df8d24d2e8e2aba2b34674c932566764a8ef69132d93e0f0e1c9328a984503380cf385e3f9b1d52f0afe8ef4b7acd50a54be9cbec95dca352ba01d072409a5322e1e121f703732e250ec1c928cd2aee94e0fc3d435b6780431e287e18010c9ae463ff2527da24384f8b0cd50a1ef91f5c507f15a3255cd739078067e56425fce6b3bf03ebc15467aefbd52e71e09ff90fe6785cc5d59f240e85a044ab408d1e818f3518ba6e2e0ff2c84a0e16731459eb7d155e7be02590efba8bc2644012a4088fcd03966b57fe57eb968f8e7a208a788d33e776de9b5226f3e2a1a3ce5d0dbc7f324b63209a3fdf7a9cb70c33ecacd1bf036d4b42dc71e84b39ec4bdb7c526e3fecd4e42148bfee8947328d181bb213f4bbae1495d3e465ba4eead97c114ad6b5648baad9cf8be9213bb701045db4b24548e9a27418cddf34cd5711ff873218bd2c1074a04c2b0a4b2fd03a17d0ebdbbf73901fc035d86507b78ece9b72346351b27427d3df29531292627d724cfdbb3208521f35725b07319633f6973f09645bbae8b68e4a6a1e0b4fbe271e75bde76ad058d27d488e4e19936c18e7f8e506246426cf6ef08213736ccb1d201dfa5b2f4bceda7b7e1508a8f90052ebff399ad9b923dee12306da6aca77945e372713470e8c40c4cf873020a54e6f39fa7a9000e0737b4c2a8a873c0423c37b890d2fb5cd8914115f0d703016e409e6f5f544cd6bd0e8c6ff9bcae1fa3fb5ea98e26512547bf574e1e6eb469afb6e791a1ff44e5754df31da557c180363796b6f81f33acb2363c770fa33a35519406b57e2c33024b98947d046b6030f3be12e72c4232078c5c55effea0df508a5a6a04fe58e0093dfff46ca1bfb1cfa8cd8e3ccee3b226c42d5b0e3e27c7fc4a465b354c061854f31e3defad7eee894426ec927b3ce565fa15d90240b937c461c6b8895ca648c493f6d8ed55b7c777fc120981647a2177bcd04dd0ff1ce427e545f497bf20006c08145fc6c96ef5ab6b6bc56d9d11c10cb9aa313212af82d79edc2792c2755461987a2e69c6fd3c1d433162d3adaeee6f3d12e374667505a55780370e558cd625d3405e0beecf100c8a9f57d2941338058f2fcf755d2efe41eeec68b1b3b624ebd9b3cd5fa523857ee46fa5373df87cc6d9d292ae8b295a9d8fe9242ef831b0d022fc350cf05b46ab8dde7d3d8aca5803839f22da26bee0d0925c14f83c44743933aca6d2a73b852ed672bca1e5a894154f8de42ccf771645f545360a5781ff4c7c7288a6ea4b13799639af8afdda0d768eeaa3183bc18bc3041900faa097376ef4205d20c71c4747d40ed3793fc29d290eb06d73dd8683fe21dfb1d902f7a89724649d23b78861bb8bdc427730e2542991cf813078b051a185768b8c879a95090584fad1c9101479618b2e8da024fc36401704b4a1870dc2c323018d225b216b80bfdec73b66c981d8bbe9b7ac77c8440104274a0428decd2a206a71e19efb96854d2688d3de6bd36a3fca41ee4cf69468fe4c6a544361ae0f63e449fec8e0fd567b919daebe85430e9be2dae4be787eda986417ef60f1d66243302df2c6dc0c118d3cf7667abee61852843ab2b85a5bd9007433226f4b856c63764a854882ca74e740ab8ffa364d62be831845bf194c61e149ec203b9ca1e0f796956206a92349fcba2a948246f80142e1dcf32c9913da750e6e3754fa0d54d2b1f9510154ef363276fa050725101f9490b1d6834aa316d165e818bc0a3e35afc807ab53784c59ed61508390a3c2146494c2ba4f981533011fe70d7e39965e141e1a1e994733f199ff5561aa004764e6691d94468fc6596d2da1a15f197e4398a881efe6ea9fa23764abaca0bd008429f2522e530f1a31f625d35a4def44e62bae569235ae9807dd0efced66d2ce72ce0c0e292cee6d7e4941a3aac6d64a59a57ff8f0d9775a93d68eb759341927201053dd445229016c0f1c5449879079b31598b73045f82428a14707aa4c4181b584b07df5e758f06852f9079b056cf5698b40305b90401e2fd658fffd3ce898bce35ea4bd4b9e0673fd7b914d1c76a4058c4a14132631249824f1c0bbb98db257a535e4c831a9ce5915e376b5135cb19f5f141114337223f955572fafed871ca4ebb0cc2430cb7dc0f735b516221fd307d16738637cac806a2c5c30c60932bb63db54b3fdc7a37edb9abf0d9d892c0d36f16e485e12567c83aa0725b8d272098935bf6dff3bbd8eecf6130713ac4300cf351fe2ff0d27c61c6b17ae362b6cc83d509b356b764ceba10049947aa05ccee8a6730b69dbb968e91af44350ead56b63f3d60daaa92c1772212f0adbf7d456a9759ea90af49e313e572ba34f9d24403f801a469510d9f7770bfefc75c100e4cec77c957ee23194bb8c1fb63253dcec90f89b1f01dfcb04bb050ed1bd79391aa02de8dbf5a9e82fefde4fcf827a9648f89cc3eaae7a02c9720d45a6a4144ca0e122adcc4a411e8c213f05b4e614e56cf8b10f0e79cfce4e00df884abf3851842fc62235a45a6388561405900bd91ce523dc244c49298886c1a7d34ba5060080f3b725c344ceb5fc0a4bdf61c5c03b4e4f309fbd6d8a6962b24e8174640c8e288e5d85294bd743c6175e6b966aa7162da743c5c19a0369d0dcbb4d44f9d610fa789d3a0cc80d785d1ac98c5c4d244b78ef04313a3015d8c4f9ac7843951d63fae39cf89801142e7fac128a43ab0500aab071cdc47adc253e92073d3f11112d4a11efd5289d6be8ed487c9dfb859242d7ff4d08555ef817d2f21fd667058eb2574510f794a3f753ce581f420d6e36306f2692148a48d1facf5b320fcac8aa00a42faa8eb3c3fa657faf9a83b0e94be7294c815a3fcad9aa5af33e16ec43cae6f7556aaba5d4776b13217d7eb24aba6d4d7a5816cd594f6ba6dd57891488642dd727f05b21be458436c1b62095f84fa1e7637e189c86bb83a444c521cbc4d91142ffb9d2f2384aa93a051d434ae36fe2a469e670cee8cad1420fac438ce542a3a9e31fb88e8ae2ff497660f205221408068dcf33df52d103160fe9e7093fede8eb686f7ab4f649543a85d43e681de453316deef984047df352b08ab3e5221f2c591c022874883e518f67b39018ee0f4ffe0e308b3eb7c6c85e55a2f6676c43ec995057b8e4feabf3e5c75cf10199394b9c671c1a474a70c63105b501fd0a31b12223e332d7984cd82588039176380bef583abcb5a3c3cb3ff43fc50adabbc552892b44c6226ec3784583cc6a6b2e3e151c8f382cfebfbb81cdfac6d2dada15c4bad4bac3069cc336ddfa51be2436d7935c2eb05526fda8759303aecbeeef0ccbab79f47a20b9fa7d04350855be72e46482f2dd98bda1077dc32464cc58bc7c45e4c1b38d67dfa40d46aa8f8d1de046e16f0016d2e244c23295965572ff88139f660d1b56ef640d47445441991dfbcf79262291e7a42f79b08a2f05461fd03ec048963667a0ff598435330c9e22151e5734413a26e8076c3b124f633fc74b6db0df9f0293a688e32fb2ecd23b09897b0336ee5f9c349a81154d11ce57e3c1fe4f6e2e47559e967a9b36a843af9b3aef54d6a56c0503500f8fabfd6481a874e19ce9ddb6f4bf193b04ba059af210ad023e2f882a4772bbbc740f8135d75664f899f04f17dbe7e1b53300aa1ba2bdcb68dd3957a9c562288c0ed8426c9ee557ea15d2f9224ffdb6acd44ad25b3a269fc528fd0476ba5730d07bf002268b5aa1c8de6cc4de1b1c379274860a9966ea11e6fba105adc31f01eb2d101db0af66bcac1c3e7960bdcfa32905e40a2444caf44d8f0067d861afe5b107dccc54a486c771e45de74804e18857ac47edcad8b0466fadb2344a38d5e709d4a5cc8397da8ddefcb9c364f3a8cdc160067a5381217bb3bc4dc293cd534c3f92dbbf83fc2794363a86692cc133eba6d8d8d27c4199bde4915c743df102cdd7164808e06c723b038b5e59b8c34284cccdb47c52c64d0d0d003cfa71991d09d8c70d75cedaa664bb2ac994d665a948da465e819d9213cfd322fc464e418ff7bd10f3daf072855e79437e11a165cc60937c56b012f9ef6e384d3a50625873d36bdda5fef0905309e07205d281aa6f487dc2529a93f12648ea0997d9d781ab7e18c76b331f3a8d2891627f39383869049c94f62bea207912c4af53575683e6fc363312725b766565f8ef0780d378768364226e1428c7f4d1694e0e89617bd455161fc871669391f792e22e40c369b098087e83d75da2e8d2b3ea43bd18b70b56101d58c31de84bb644d6874e0e6049cd0cd476566c6799fc2d5e7bff4f426945b4df284ecdaa0cc52d4213b0879adc1c9c209871b5ef604bd8c080cf557b210bab92df0fbad40b9a2e233f106e4037a7c72e737b8c2e14a30d87d835a38e56e186ec490066cb1b916d66180eae0398ed4be7a69aa0f518daf36df8ebe01f382f453456c3eba6d3907009a3b07e77dcf149fe71c806a1e646908ff14caffa9010508313444c027c2c507f57ad2ca4e45149e7433960e70957f7a64f72aac39a4cc483740b5ccf911fa5384ca4f6176a90354f9ce46e257311a6faa194505d4c90761f8ed1bd06acb7f497a0219ab6bb86c806bb99347bc4951c53969765504a2739c8df09fc2355e72b3690fb09a796684f61516b78419e93e40f974567e881194a85a7d979014f64cc459ed8126bbf39357786c136505e38b92f167fb4aaa34d0b615e2bfe83cf89a7d66f4a297adb70a39fa57b4f1269b597480f58c7323b4bcd37976df2846918b9df6592554b2e6b814de41d1374e26a40f80665534f2819cc506940ca9a310e43ab97f1f1db0426c58717235cf9238b1118d8213fc2e6a5f2671ee4bc98e76949e191676240bc5b2b63d2d300eb0a92073b9a2d97ac65b6819f17c09fb6b737c30eb0e6e3a469498fddddc1b6588caceed1d3994b9c3786b48bb91dd75c23ba7b59a5919b48599acc9818a980acf2fc1cd55990d6c7d801f1c13e36cf15359a12e92b3377052b1049cbbd8f18cfce5c94c56800ab806033fe769cac9942c20b22d08a93ab69e1345d92a2c80b2b8e111c5fb30e1feec6e70698a1d8ba6ab732d88b93198925d7af63bbc2999899a863a3938d8516817b37232df30dde743d60a45be8a6a12a060f7463ad30f3578d517e5271673fa7816350389fd439693b787ba0688486f127af540f2cec7564ce5aea7bb8ce8aff1df44c85d9a995485f81a04b9ef9980488e20e871312e034aa6d51de3620b1f31bd3c171c8304d06a67531e88a587aa8dfe8181035f6553f82e5189390955e5f63b99276abf69eaf2f29d5cd25465adf748dd573c65dc9fccbe215e3245bc7d987e5149fdb2296f271984f12491f48d7eb9611360afd73ccdf5df8a9e11a4387d99583d1ea2c610cc880ab6970d395467544cdd64fc6c85fd0f7b6ab28b65aa9412c01a7f23a4194ef8cea2952bc2235ad68f43b2fbaeaf31638e8b774da42ba16fe02d4a3337c9c4fdf4e98676cffcc963d092ebe8792469040f1df5904ea51e76e5d1a12dd0dbe0616414aa7c16d1e35e390c4c28100d1f24fb927cc6a627c157f2d1ac2a257afaea7fb8c3c55527348850ca631ad47d3a3fcf70a1412902add107e57b5f961cf871ed89206ec6843b3eedafbf1e50226077c8fe468f991ed6f23a03311cb52b54cd03888289f48746375671d5a649e12940bbced132ae744f858e1527b7b6356a4714f3a298e642891c2cdbee87ad13c2d46d1df5ff4943fce65fe08cc8a75bbbe5df2fd2970cdf80309a97024d04581f2622dd60310966ee31ccf59f37c8cc31ae40ce0e19869c77a3b58226c876332c0fe2109d4ee47308eeb6e36bc37493a4bf5e46144d6457b1285037c3bd1c02f944820bffa364fc6c1a03e86002a7c1ea7abcc7dc0de9003927fa629984705d609079150aefc7e5fd6ed3699f387f75a80411825a6a89c449d73292eb5de215bc21e3178d624db699c9223bb085831ccaac639401c19dfbe114d720fe2126eec7c990a113ade4c5523eb7f21e55cc8943a7716447e39449e395bb101effe5a2db3e47797f59f943d91a0634d20b4b6f1148a5a2409252113113c51021007c8e2c1bae3a8623681a6f964a5e6b8ee5d875dcbf6f5444ed0cc635eacd2a04aebcd369aa06a8fca37e1ca3ac36c220964139002c952d3e53130510d07bbdcaa5287d630340f5086d5c3c6dd876a5013a6b65f2583a076937514067004c055dcc86e2b98021d79efeb0ddcf2a0d1c6c28469c3d5fdb12a86ce5de09c8d6b279c8478c1612762258cac15eb7b13530d83f8cb21f09fd461335cead4eb477ccdd3162389b1181c91cf343df8f1f6c6274c1004ef8317407bfe56fd2958e62b332b1402391a6656cf35b8a62238e864c065f25a8ba55a985ad300def54c6a7205ac627aba697d1ba059048aef38865a6de006aee759aee1ee97afd3ad3fe855a8da4a2341339920e8cdc3568b3d07d88124fced21881b98deeeb0503f38fb87c7dc7613614b60a14641571c798d4b2cee3eac260d0e8848c7999b56679e53a1f32df7fcc814448979ca4da5235f65ab4387cbeeac0ff6e42d2621fe1a3618b418d54da9ee4470bdcbc7f50cf63aaf431430c125d1da0eec25c4a1b341a10054c09f6b4414984b499a5a3032818eddc83a4938e245a86b9f6319c9dccdad22f55a047fb066cdf9d330b71e88995cd94970705208ebf7f02584c818a9e3ab66e5fa61ea07a087b0561a40511598273f8db6a9ea3249ff26972b8c339d511b239ddda549f69ffe6b6405d737ba7e49f95f7c817c235ff1ebcd871b5ef84d602eac2ad652d9053c8bcae4efe046c52d1c9e13de1c68454d8d4f7d2b6bfe5972f56fe4d6cb65eae2212c6d99886071091e42944bff35c10b291ed47bf3799edca33a2ab90268550d078836364f8b80c003e177479644aed61e5d674355f40faa8fea05dd8185a67523676e53eeb9eee27b7f4c32df466db25bea3ef051b7de22215cce1d50bfec28a97c8b8a96dc44f8ebf1f3e01ae09a9f084ad489f9ad8c0d8d3ca364a08ff38141f444f65b6f42890086a49e154381895dc38a2f19ccae944e47dd85dc1cf3befd10eb86569c3e189c88af4935052323dc36b3f1c7f08edcc6e723adbf5bc74d33c612ab747fff81456498d4e817c17b384bbb811326c4d615bfac949f693e341afd87c95db6d4dc65081b35930ae1d7e88060233e547a99735a639b4d13ddd50d3a42b1cb3e723e3c0ca2caec8eeeceecf648b008e721cc72011dd6e312a708efd891e87dec71e4540db24ce5cc8d7815a749d3b15e37f7b43fa7968544b4202c81044009b13213452165f2cd83104d5bffab11a3d58ef1b7853c142a0b793ee7cb788c5a1458256e20372ea497488f56d68391bbb6ac70cb42ce2517b3f32d52027d49a28f09056fec6fa6659d342f1181b3bd94c036ad8af9c046b0fec41511dcd5f4287fc7b863688272596cd47d3524e1ce49353296ce6b4544ddc5b25391d28aca6f1d3f566f71fd226acfbe3990544df1be6ab500028f301843899dfef38d658746eb8006d895a487e4b65f969fcaf4987b3b747740b3487692d53243ecc401b94ef8b060e707cc9b15da17b3a42c2e471f4585a6e605c913e2abedffa1cc3639de0137284e6ebabc9764a1a7bbd8c2e48e9abb71877f195584fbc04d00c3d6de691e5e02262de61290eaee5a290a8ea3c00cd9ebeab478e5da5d82c4861ce1e144e069c055f961088c9a10a31ad775de30f6ef57ff8db6fb011d97faf16593ac42bfec6d67ef03b32c69a2156266a1e20da19fc9d1418797db7b39a509cf04e7d8c56686713aa5057343cb4dfeb32acd688a768433dfe00a8b9e3897cd686ba49dfddb862ca84b73fd6c26eee23e430c73694dda8308912594809560af3a082ffcbaf6b52824f4c595a95cf87d12b3d9a3614fb6071c884e196262cba657bad9eaec0962126cdb43bf277a590d2e2489900b63cf3974edfdbdc1cdb9635897b36228dabd495d27b93e2f9dac3d34d3e10b3ef0f80d305010402da2ceca8ecfd8117f6cd94dcc4756d5246895822c12c4b04e51b3c6762751288d663ccf31e842955e1e05f0da7213d6f308ae029e286412143d309100a5e06a2ea083b0384cc835ac509b04be5b1aa8f7836df236a7814b3944763d27c6a251049c82e5ffd5c93d30576fa9003e141187fb8a352ac8fb69d000f66762faad0bc2dc6db16805b9d359166b40a4a4f4baa4593165806edfe96f3aba7e0e20043e000349d6961f01499dfe6e39d0c06857d82e2e9609c6ed9a407a82a1d1c27c63edb32f78ddf9c4d4cf2c6e809afee12ca30bc3745876220077e4269e59f34a9cca72a13384ad5d08ff90a04743ead75e1d061d16ef1dd824d3f8f7edebeae3c251b2ca39ca03573ca710b2a63528ed40415dda98f5cdfb0af292e177c3ef99534958f0f777f6da2173a8572cdefd6e03340c5c8e4900f64d401ecbd0c01d010753b6c6dd02184a235bb0ba21fffc63537912ceaae5f3c047474132f20bcc8fc3d9c2f19e232ae54bc5f21928408272671b624395fc57456b2b93e47b724f2af24797819272c984e0274d06596221d6acd53d5e9bfd5c4a05b40dda2a5de6fe33b018dcc9e0aad7881aae5c494f524cdaa6d68e4512d628d4960222c0fdd487837a15936266fd679650358330dffe9b7b55cd0c5465a3f13983909d4a578ced5f34f8b90fd6703665c29b7517ee590c2c24f5a05b9447ec6f836100b3f67ea78bcf07336f35430042dbb6c7223997ab9860389e040700c35687af662b0f09373ede7537c26e89a072c967914ed859f7021993987c7aaa52de792a18e2812d75c40943b7a7a6ccad5f8948b465350020c3fec9ce5049fd560200aa500580f0c0e0c2f84d95ad3239a745009751fc7ec9c0cc8f0026c438d058e40ee2c933849289e1f3663d4ea930fb17d7e056ae02315f729bf4de855eb63dc79c84e37c6dd94764456141149c44cb3547c51c960487746a6f30c41b5b31200ef631915bbb68e8b0648dfb9eb0336db419e038fdc6bc25b805dee26f30bff1fa21f726950995742ab50e478a0aaa1ef7e76da3d1cff5be8c8038437221a32d4b587a858d48833a9b40a366083ea43370916f8cffa6247c1cd4115a952942487a2245b7e4c45a05f2cd07f3e9a027c5b00a6b1baf2dc223d139b877f997c016ccf014a21b5385a4018daa40375a44dd18862cada6c5d8d12c5adde8e64ae353f3184da8fdee79455b008ebbf8951aa046cff2efbc4f5669d2873405d83aafa3f432d90f1a76759dadb03775d8116f671351ecc945842e4de644bb2a59429a52465610374036c03586a94708e0738f519515d8e153c754e593d50c5cc1757d765f57bef59d18a6f4610b3207961aa2b94df6565592f5706c4c3821056cc7c71755d9feafa51b7203195dfe2cf6aff79cee42fb899be71c1bdd4e89ccd0dcf7893ae6c2351ef1b494956b67d9f3e39567b25cbf292e52577c3ea13cfac8da6fd934894fab55919e7709030978c82e6c4b65ad8f67c58b5afdad6dbba71606b8d1e5cb71feaa8be3ab957638c2bc4aa2cd6e8c1959f2b67db0fd5faf96c3d4ffa96186254eb2f9d16d4f91c46f556956afd14c3fa29a54aa5f5fa19aa2caceb0a5d807e7f8fb86af593826ab09ead677eebe7ccdec22c10a8c76cb14055f5a2ad662309745b9b6d12fa05723d7d110eebf7a78509b9ac0ffd856daf5a2fa26fd1b77e6e65594f5fc78aaeefe1d52bfbed0272bdf512e4a37aeb23a8c79591b220aafc8db44d2c6ca924e8ab9b97aeb77e93381cf35d090dfcf3e7e82d8c7a520ffe99b9acd6fc9585915c567b4de57802f4fb8db33240e65bbfdf372b13413edee98b5abdf50f4443f5568ff9d6759a2fa3ce9fcfc2e9d495bb31bf0b7a7dbf0c5bf92dac2b837c5cf5fa49b1ca8a29d579515d8e942fea9c51adf005dd5e25552b7841fb374ae45520bd825ba3e5b5360ed41146d5b9303a5bdb0f75b4cfadd01608ab303a1d00eab63632a4956d6db6769b8f81921bac8b1054a67f0b52b96c0f4159876eff3b823943595ab604ad91a7ef7aef32a3086018d9699d66f939bdb02f6ccf8953b7a8449cdd8f01f3f38e4118a3fb3c82cd24fbc2fe94f2cd59720fd235ec6abcdd27f3d449513ba78378f43bcb098ad92c852c506ca95a403cf843a027837aee09a326d6ac26e2a246c405a420170e878b35b186611c7361826e16cf2c59582c62614259e874ee8162166b569398dbf130581b7beec6fb0fa642255a01ed7fcd338561f63f18634ee45f201e91a7fa11ea9057b7592255a225b4be6c96422fd82c9e2a9fccd22cb93021ba71389cd50fa348d5c3648d34aa87c51a3d4608a9267d2c22dac49ad5f6146b9c4fa792e50ef2d7a1101d8d5a66cc2331c624abed2cad166bdc8d7d1727d0cde229d57dab6765b6585397e70b0b8be58495a979b1a76807f63fd191220823d35da12c6b85ad7cf17a6557fc5cfe4923d2487625bbf4a269eff22e2fa45016ea5cf5a873bbbb6e9d732e94856ea49615cc79cd1013cf091d010e218c112e6cb2557a7cf7a4d2b0a424e59474f9f948ca69f01863c718b321314629e376bcf276df7bf145814659e5bf9763615807ac877df0b537e441e80f427fefed2f840cdd4127af766cac3ee85eb10b2050b9918359976f07b31a91fafca1d0d16394517a8e85e177fedcb520fd77883f1159dddd801aa8ef3973a7ed530caaa1abf7b0d51d7bd6eec67accb47edd7e6562ceb5f02ed68811bef7de7befbdf7203fcf5eb84712295ef2119004747f1e79bf5f3de7dcabee76381295cebd75a2de0137231d4ccfca5044d0115477aea4bae3dc549f1f8cfae99e736c39798d83b91d336ae3ace62feb1b86a14850b7e3fdd63c7d6a9ed34e4f8f18aec4137ee4a6c76bb034f1599241ede11b9c272bb3f5ce133df02ed170eff0cce9f9eb01e56c48d74deba1f19775a3e1ae6e786514a67f0e163ba89f7f3f173443ff8ec915c718419f18c3924803fafd1cfbf049508c918a9410f7fc10a30cb3528b5fe3061779cc8c48d71af1bbc6186ac427d004e8904fbc86ceaa084150f277fb3b249432ca08dd31e76064dd57f1123656eb8f1e238cd0dd8e1d9267a49022f5bd101f5eb69893fea7f45d64c5379837ce39aa85a23a24d27c59e71ca45e4aa88366b57521a0af94150901e5a7d917ea1d4639e71cf5123a6ca355c26ce3a15212888c3fe58bb01913d32d44ba8e9efa39c262306df49b5667183910d53ebc1da1506f101e501e3210d0d0fbf04a27bab91e19bf2afc7e915722919cb3aeb75e5b19d20c8dc68f9ec2462312455134b08d48571a3ffae94675f434fe57c084381a3123124565201a44ff791d4bc2bacec06af8f83cf5b901f42a38e683bf0e86c9a1a3e7df9791c978191b4d5d6dc402bab99e222bd3f2fbcec11f25414719bbd54814ad14c5b657c490beb08daac1cf82cd0b744a32c487fff9fd5d6d65dcafb63d74a5322032abba3a16325186317253b79784677450d2f6c89b0582970a6569f9621cccfe6e31fcde7b06e4fd5797d5e8f1957f5f34194804255734a1f2ff4b075a5abe8508222425d111a51aa95b70e291e828c7ca14566eea46df89705c6c1066d4fd5f2eeaae115b448144931985912af281208713135270454e890b19ec602dea468bc4d030b608c20554d484cf1468cb8e0eaa545137fa39556c306a62225141cf082a27558ee4505942dde80f818a954a1b7abf683672a62c9143658bcad5e550d1024a81c07c3b335a987d2a23e0490256b2f0000a9e580245158a26298242a1aeb15002ad9b89923084128851e3c5079c500131b3919bd11574abb0a852574ad340497777c78005168afa7477ffa83f36949445cf88e4e2c4cba2e44180c2031d19a6f4e45c6145ce94253428a8441b16eabed4f981a9ee8f807044dd20d405c218350733f1cc61bdeca2306207b500d5e5a0c0c6c3a0ef9fb5cd684c256de826eb7bc18443d04dd601c4f774ac8381b09f83810e62a0f6bf08fd04ef70f8777fa8a8a385a164ec7ee89937dc9dc1837c30c807915749ab6dcf20ab733776b11a1ea02f0b651dd6f981fbb7fb1c40a594324a29a38c92a2627bcf7c10420879a18c104287d06770f5dd8d35022451ba1a7fbf7b0833e95ce688a0a47f61d8d1c5bd8ee5215d21bbd8a80cb1de205575f7c23cbdccd17d70f5773266cd33f237dbe037bd6218665feaaeac266c8e9b3b3f10ef7e66eee72548b8d9cec82825f77b7763e98211792610bbea8a81c0e80ebd63101428c928a54b8f2ebc189f9d1633509fe4da831b6aa0dbd9dd5877f77537f69903f53dfb5acfddd8ead3f739d856377cc2443a1d2913a0001b68ac9c78b088213d077cd54a826e3475c642826e4ee707cf2860c6e170fb9824714c798b79ee765039edbddf341d0ee6b5db78a8ebeeafea266cd5a4f4f292999999999999a5a49444fad7b4181a1aae017d921b67fdc5dd07c46bc7965bd8b56a864b6c76188293d4b9ad480f59f11536304ce261527ec484bc1542dfc7dde585d11d7ac72168980bd8798043e8c2a323e734af9c745a105ad59709f161bd620288582346876ddddddddddddd08e2d1efdcaef57a39a3eb5c1e0692728a8214f48aaa8848ead383a440179094a46c60a03e1b9a746802e835284a32333333335332b67330b462201ef314327a8c3042a7a1d1018a824a1ee3bd689a0d1c7470e15111a373aaa2c93cdf1e9377d934e320c20eb80ddac65fc64819e3420e4172740dcd698a9598ea621c09ba359366c255db34e7e0407a71d46544f331201e4e9cf433a8065a33ad025f0469c0fa7bfbd885e0524affe1fde046ee10e4d5bc2644de112c2fc963f28a80bee5a89b0bd586454724979db99eaf189eb1b21d18869f6370f087c1690740c0670d50f761702de4886119061c9b0c1f774903c30cf53defc009a8ef4924f736ece0192d6243d7fd9171932a594503a043f7e811ba07f2715548c357f886a0f0bddd7d0e775fa2266ead98e2caa95ed39d7ab0507fd42d883bc18771b66da054d77db7df4f7165a70aa0ba29b6c0a9cfbd6d82be8c3a51f71c83392fd112d112d112271203487f37a9afbe1c233c51e17b676b0413ccb76e2d977d5278cc3c78df63ee292559265b63c3a33d894a49a24fd23e46a369826b767667955825b060c1c179a557723aa226e846e3654476a9a77a7ff8f98d79aa33c0fc8d85501d11aa7b9111741ff4c12400b250f9fe55853df7aa0a65026ccc03b9ca9dfa43a90a958db3780a13f243a9cacc49cc76a2e5dfee39d82a9c6832b33b5c488eb7a8fbce0293bba090a0e305142a0956a7f305924a729ca48a1e1ce176dd8e1d6ce6f66ed7ede4eb6e1e85e8a885db753b275d39a0ef9db999fbc551476877ced1d83e627e6176ce5176ed64841445511425638c31c628a3845142caa9a65846296594d4524f822ce62896138aa264570129a79aa298a296a21e45554f4a45514ae8a28b2e409510dd2daf5cb932850fa45cba6e574de976dd0e56eedabddbbbdddfb5bbbbbb7f77bb77741516eeedde3c655c4abafba73ff250ee036ff7fe34533026fb8c47102999953f3bf7ccbe0f64c9484177772573865cc82b2050506555227a8544554b8b68e4dcf3e1101226a51f12c021871891a8655ffe6d685a4bcbe891a49046ee8edb7d8082082e7ac30d3788c670ccb362ee930cb3762671dc8d7d51084442ccaa79682a0a15056445b1fa87047098a24305ca61e79a144a1d8923a378337d3a499cae02fd43817c70edeca2a29676c611c2b94f51422166513b0be11c45d44283534c4bcb686d68da6824e34591e1ccccac423b67208a73671207491415b6858ae6b7dc5535e79cfd404f8659399338a22188b8eb39522acd203bf0d8f0e324011ca6e890c3ce943812e74351d64b32af199a229c3ed5a04fed83ee9302280db5c4f9c4a0e3093b2916664a9c18501a86592731312251cbbefcdbd0b49696d11bb990fad9b9c491124708da4e8ad5e4902945c6b4113d618059a3477ddd97cea57341b9a05c502e2817940bca05e5826232994c2693c96432994c2693c96432994c2693c96432994c2693c96432994c5040ea8848596f87a2282583b29c0809dd6844482811928f08c94784e42342f21121f988907c2e2a44483e17159f8b0a4c52371f2974aa256620032a4eb0a0b4ba1c2a2830019520aa1468d1a305162d4a4dd0ee6e6f8e81ad3d83f10178dd59ef5cc27432cad7dccdbb458ca4c11426950614f4fdbf8c511988266c029268a814ee598412b2190100002316000018100886c30171402c0a1461973e14800e65863872523695c8237114865118844108c2000cc3308831c6188090428a30ce06000b1e6ad3c152c456cbfb06f53a0f340760027c6795e9f1b79008d4d2a33f86830072a59292ddfb176bb028874a7c0fbf78a44d2a882f1488f356fdd68b06c38ad8dc336aa30b8939218825b27bc4176d91e7e3723826574741b76bed27485dd349cff550fba504b8cd6daa27600bdf6663e892c0cc5dfc5262ca5674d88371bd2ab9d017f2bd28de5bf73f3ac5bd58eee2d0f5c4db718a2b7c06a3d673e64b7d738fa3b1601e85760918cf6815709d1f508b8dec2947ee5b8d3a6897b2d91ebec6d1f0802a093059011b35814aba52465a090c72dc6bb122c544353f5ac056e7115ca2ba142bf727deb807d89202b4d232c75241f32173f52a3710a6782f656661a79458164600a6bd11d4f71910a3ef950956b6f904d888c3480adcc9a6d2b79d368b7c75c5a7614747f08a06dc1fc01276c5235f60ea44d0cae1bb41351839ce5b82d854ea8047f1c4260275e6e61df1653c4dfc4cbd9bed34b47c1612b6a5a7526547ec25531522a4de00cc4fcde5de2132b926e9b41fc7659cc9042e689418ae32ac8323625846a4170e63b18d5baf1845d967c78eb84ddffb993f3e610dd1916c82e35abdf781815efcfe0cf5391fa21d5defa0bd97e09c461d7fd78ca3c748e0df267966486ffa22056d9d135cdc21fdc3e4837e06fce52f8bf2b5d80e168b91a989002838306b58f8c3e156fa10e0784eed31a348dd1d11b251646412805e6a81a52770edd78e20f76ebc7372f0c2ac69c5c39d6053cdb1531ff70481312bc8e68b863c492cc7b7a2c03b26c43a07c9197f63b48db33937335d6c93df8d7d3e4ed5d8ddb486bb5aa34563c2f6205d4398771a79f6a997abca081844b4a307e43c62e8579d0d69e3518a8560e79aba6d83e787690ef012275cfb49ba5e38ec833d91be282d177cbaf872467f643ef223bca4a54f6723a31b2125d4809c79377e4483c7803a77e597b487146bd4b952ba81d92699dad499bade164151ff9a934d9d2d6bff819122233ce6be135679972c843bf8bb5b2acc938b958dc217a30b1449f6f9faa7c870fcc00431eaf301197d74d24dcac8347cbcee24e8d907a85b255a07d5d181779cfed6db59959653005b0beae5edd5aed9d92762865a5cdc992182ab020e5c05048030b1ed2dd4f8a02ad0714506cdbdca8a690fdbe60c851e2b3f8714c9238645cf92317506dabe543cb799edba22795c8fc10202d5a66aab097582ad01e9a3b4c07eaa997d8d2b0672a9f07d7c1ea1af93fc11845354ffa7a031af121407d281745065b9a634729b3d02134b95cf21c1ce91d0e0409d26a273e27e9fd88794fb39adda4c0885c68118c7f6149ab2e577465f93e9b2e23f362ee626d4c581803c53dce55365bbb6a815f9721d4d025282b279793d44f708de9624c4d22000260e54266130f4aac81755e9491ca8dd9ae185b32f256eaaba91a860172b26b579ca8553e6385724640dd057314c6b83e5855a6b32a8a9d983a0079558a26c9c438fc7a4ed26e733533e0c875de9f1505a5600da7d0e76607b50dfc9b7ff42c5251d1d22f78cc40e5a36484ce52bbf41561b85c168cfe85542f8a02d3983587b96602aa69a78285616ae2424639974c1ecab661ed44e9a960717765211fd05491f5cf141258af0af8f8930c050fbf309a8e991e0a34507d611df6ec857f477a20fa228662d19113b72986aa34335baf2b3d53050ee5d6f721926e9d31f44ca480e077b18798fb3dcc5b717d099b2cf5784072684bcc352609da3063f70d96f3dbd01b56767ff05c94ef3fa7c6246b03864d310273b8471e619ad04b4880f8d192cc7dfa21cd9eeb217297207350965bf1cf2408d04f3f7e4635d2fce580356d7dcb00cb8f50f8754ee9fa03b1259af567d84d4e6e2a9617d5181de2d11419412383d692d51636a514fcbddbea4d4e9e9b93012300e1e340d7e7bce0f24777d3c6614c4b62c64c6484bea7093441f955ed171292b37274479757b7b9437ef2467bbc68c8d6151c6af3fc09e8764248ca434a7409e956d76e443a33c57a94c4383dade8e4d33235363a01cc44283275d49bcdd07966b57f8f3f5c6ca6110e73cc3abec14d4332a52a2ec709a29e32ae64173960eb5e31027646eb2f3f082ebc13e79deb222adfae116cf364bf34a57e2ab384d53c3470876b633023c578290d9673b91755e8bb872a4b9cba210d784d218f616c2697b31e7fc5f0783724dcc1f51342e0629f3050a6c1d7d64da4eb5cfb60dc053060e0c3b0a4774018b30e807e95b66bb6d0f1666308fd325eac5cbb4189373fde4a8651a3af1a058897d31da930456d593fc88b5b30e4aa3126de2aefb27d727f6cd22a38cba469c617267cec363319a808d8a7da58abde289e89d6b797b4b89d9b0d88b2e5aed849b00ec5b6470552352f43f781c24bd901d0498223b0bc237e4c8ee589f9d055ea6217776601ec2a6b6d8a93fa762a2e2ab8a9c9d98d64f650e17fb2adb592de646b35668fe6ab09e11a4d9cfd6bd930b753a8aafa562c6ba9c6de9d425a806a578c8f03dc57ec9219d10a045ce2d776efbaf312f73ea18b6a5942daa3e3a49fa3fef7c72ee487e4d1e3ac557b8f2af7811256f9210329772fef1992b6884e916610d5c19ce515d5dd913125fbfcbfbfc0a7971e69b1c9db137dc4cb8e2bf6e00b5ebc2d4366fd0536d24b6903209068b7766ce43f90cc89d1648b0e13a73b58add9f011f95789903866930794d8066ffe9826f334411f9e2b46e90e7b2754c24d4e0375101fd4c2a71c1a1b5cc023b289faa458f8c42e19713fdc5444cf9de4ce1b6ecf821d1219742fb26c9d0f022be16844428460edf9db2d6f818715f3a3e6530dcaba848f909614af1a7a62a4c4cbd255c815414389370cc1fedb077a3f55722bbb2a0b1d287155090ce6facc981d0c155a04d2b3a569dc4ef2a2008a76e060a640741029e7651790b1e116fa5952daa3f38491540df4581a4fd9229707f35eb27725a016df4eed95fff89b963f49dca840297c5d5f6bd51a058fad606990528d015010956259b487684af5597c0304f3ee2ec3f91addb7e70c8ab53a7974b2ae25b350f0c0863756e92a5879e608e8e2425eb413934b049a2f6895badcc12bac39547424dcbacee13121d0794bdcf7f05f912ae90295cd128af0d211e6b14751b726ff62d524f82cff72fb6ba76338b3972ea395becff6bd2aac5e7078e9ebfe90187d29425c81e4b7d0e1db575cc3a5d9dcf5f9011ce725caae7b5fd96d9e2554e07459b0fad7a939608e1868eceef256ac825a7082d382a5125f9ca00b321612698fb088d1485b37a2ac00e2540b5cc9789286948c86f1820e021fc99cb11090e39c7f7e693161cfb6e8622e5c398087ae43c494fae76e296937c5a1a64575a784c45826a6326968c04eb106580a21fe6fca54a985f20dd6c8e719831e59c4dcdcdd40e0b210409ce1aa88bb24190dd75761790b3a288f6cfac3db21cdd48c92e572fc6ae17bf74518984cfbc6dafe8bd4152fe6ea6bf709abf28cc572d62fc02402ee51b5319fad635b5ef7d750f2118ebaa5c36c38498d232827c4041be2b563e42019d22edc7c0da849b88985a5e408934f727c408e13f5c0ac05747bbe0e120c9faec524c38e5cfc1ea6858c18718922c2b1327964227e898231f017bfb9047d87b9c958b1beb1f89e9ffc192100f6222e3bd929484def8b476779955c876bc2b0d2f81613e496bea2ae7c26caa9720387e8a112e09c989b8e96b755cd91da41f2c2f2790c41df12955a1660df8d62088dc1edb08523f3e88e629cbe87372a64b3dfb098d2d458caba31b5319693a1307ef649e5429e82d429e518b90a04b4478e636e8f931a5fab047c0a64b1014e99c069b6013a1d2353e0934ba5382d0222b0e778414740ec296c80423ea8c1e040de109eb5c044e57accd69dca0dc84ba184305de6f31d8fcc31e31fb3cfe8ac0626cf66021fea515e277ac3601bb9207011259c79b2b781094961bf100e20ec29eca451ac6f665736949ec202829e5364fee441d849d60324e8ed8b1ebce54b9b25a418a6045947db36e875b8b908ce383572ffc5bcc663c009e70e11f6146e2501f2798b78075c04b166583bb5fd4cff81eec78e1f9e244c6b760e785e7142730de38d0554d650d570f767fb3ec9bef1dae2c7267bc1e8cbe706ed12a63cf3b71d8fadcd58a3046bda75fbc992b3f287abde5c26d7efdf244b1957542a8f56705a3dfe4de7d7501d7fdb551f231f90869223fde7b97264b6f35d22bd5da977ef05320ca3bee59b31a430721267d595c8c19f9f4f2a4eb718fab9e50ae4f93704a3df9271558b572ff0b885c7f4896f508c8b8096af6f3f3463374d52fe857be6ba09ae32b33db6fd30c03368f2cdf05320d96c00b397c3c9676e98a0afbf40c6ba00a9b60aa2012b1ba5d9b8707322812c32b7879d740cbdba583078d25658e3fb72136649111bf9a8068dc8cc0bafddd6540d58897e1bb904d586de17e32b567411faf050fd201c7fc52462081e0ff8883f8bdcd0d1c7441d230a9bd8f892bccf3e873de10e4d300d456ee9a67878e80d55cc0013b09dc27f0986ca5fe81b4ce323681bb86ac06981431bd4b5138226e90be4e720716bd9cf0bc07c72d12020d7642b4571fedd7cb8d13de65744dcb31291c92e0b53c9a4e31eb7aa70afa61d3770645050fe45f074205346a95c416954753e7781ebd063feffbdbe8d813cfeb13c097763850c6abe634d6e71e6a342cb50e77dc54613c376402608cf036d26bc4e8dea2b0aeca06ede17fe8ac02611af3a09b694d58803228b83ea15b3e328aa5f9e779408555a4f890f0ea17487e069a26f31b55051e3750d869dfd70691005663d189c8053ef63a9e6a2d3d5e88873ab1c18bdb45afa142a9ee2e961752207dba9ab591024c36191f446ae3e61dc31a0e3274a76c71354b9c107a55a7e4836b5ca767d3a87ce69c3e33406f5c0d01cf239621dd668a359957c2636bb9b1238405699b3e759d2cf558e083eb7b1ec3d221f9ab7deee958c66f2693f211e2d58eb3d2c7ea5d5c93cc0fe2d5e3a4038c8507aa5c2a402e4cd6d2640ee200c1f58f1439e88784fd1b54120c974e3f250fe3d90996373afdbce406d79040afa82caf936d8bdecb44ff44bead8e5402c2013675bf2c412284ad2e79d7ee26d268a1727039aca16916a18a1d15a9593009e9aed14141b648a596286c46b7d71eb3979d2b00c99c2ddd0efeb434296b1d13c2bfb33c2763a5e0f266e73a61c2da4139cc2683534c1021642b45e448f1c7ca0d9c1f475102a640d7d447d0145e174c2928d678e9a1d9c0fb7d136b018ed12c4229c2176e3abd795b37c735fcd52324e80249da0c0cf04e21803babdc0aa7856c35c07b477f63de7376a004eac7bd7e6de4897bbcd0af46c7a031dffe3e1ad02b3a13b174bd600b576f91f3b7433dd865f6914364858e8f64a60fe45c81ca5720a4d6da5f5f866be280b17ced5fb2a08805785668b33beffafa3a4db2d0940f4ec69c44707e8bf76648e88857fcdd0893682b311ef0a36fa329138dff017a8cb4c5503eb835088aa653f030f51f9deb5388f0c1ddb3f46ade36c80afaa25dc301282ee37ea2f2633be0dcd38a53828570366ea37a17a3ad93e16e6fc9407f07a40cce7438bb1247fcab158b2347e291070d6f497f0b6dc6fcc4558165a7d01774a6f04e8badaf8397da5a8ec4bcd2ad3edb02d0dda08c4bf2608c5a92383afc58515b69503ba0f8d2e7e8f04cfdf2ea6eccced1855bda71b51117c711e7565dc4bfc024043e21fe9381c26513a66f12b51de281767941b856a4a59eb1c23a01a5b2da21180aee64615ed8562a9190b8e96d4cc2745284c4f446eafbe40e401cda55fb26997bb912ff528c4ff3c363e62c35bcb3a5f718ae6e27f211dd9c7188422470097073294b4c918f8fda5330ff8c5b132576dc11480c5cf818fa06a326a539ea632baa03ffe7f7cd88c8b165bd9e15830785fffbd349fc4eeeaf906ea4c7d8397e577d8c96f5d67524101fe724b419ece99b742ed4e7b07eb777dc55e4472101881f636d67c266229fddabd50c5e60da04eddd7446a7580fe411cb1979e2165efd0ab144c276b2e7492e8c12e9b75e5d2a1d0c6eb015146534a54af00e47eabb56a97e41555b65ba987bb812838bcef2a8e52d9facb5eeaeaf48e05ad333f80f19ed15392e2e03962281bf20f20d00d144873a663d4d14a6b675fa6ec7c3ed16a26d8664111f44c4477db245197748182f6c7b340399eb27f34034e67fff6db5aa1c7d1e2f3895d32d2fdcec58e9d02faa787f4a377ded1c893747478a7fa44425e59102b8cfaeb2eac306edb2d67409f35f07a3ff620e1192d66fabd80a688ea72d4ad8f5f4558667f28cb0551a66203d0ce731991b07466e0e06e346c15c10ca6336cf88ca2c36d27ac24abb7e7f84cde80728f0f3e645619cff635ea3ded2e1466a3a69e809748db27deb87fb180a5c51d4577e61b21715603d6f7fa85f8d73bbd58dafe7b27395c5ab26a8d700ccb707249664fee7d084612262b9d4e29f301096585247539d8d7860eb59fe9df2197d294c8501ad5419b6433610100a891511e73578b7252097998fe08c14f010c34f68c01115a0fd6bc7826fb9ae33b3f440bc09c43dca12f7f7c91c0b5850bba11b78c8408f2b92b928c7bea86171c56e5a6d2b4ef2bb30a07c94da98892a3ca5c86547d973236039711bc279d4a604ef41fec19c3e83ab905e27958e1445ded925b519b96ec42974bcda62414a9db9922b08114ed11039ce370269e6c75b6923a087e9fd8f37e51cc249dbbeb88c49b88541e739dc1b8ee93446a51a51e890f179eef3c06169e6452733e28f4b2724f4dc133f86d498fb3891be566e0016abe8e2530d2bf5e6a7d318ef5277a687895c6ce6890027cc9679ed7830cf02b4699d36cac1ff1f61dfe5b2a4f2618f36424d51d6956cfd350c89800bd2476cb16c4062ecc66c007882c90e90040ba201e99782c78438bae24813bd72b3e4e0440e49c29ba4ad01cd0112507236ab926a48102d05b4d1a4cead505dc84d7c4b01047b7c2dc305ec9db54fbce96da3c3820ec168d9cf65771460ccbf79943640e0bd9133dffedf575bda81a827b0ff3bc0bd4b28534b1e59762952537bedb891ebc7d85c5432ed385b3e6da970e71488d83cd899037c7209efd13da0bcc26d7a5718bbca341cb46628bc71d5e978667687c0fa59fa86d9040810ac7eb8755547dada3399aecce9462b1d73886f19cfb0cc0d23295ad22aba5a89f5d7f362051efc8e3f2b69eb3a595ac765c378e636ef0e8f4a004da1341400fbfc63b893c5d541e35fb287280d8722f46edb0a2912545709713f5b4ac270058ccac71232e127bc76595b09dbeee3bf764602034a8d3cebbf1dd3500116186417cbf2298b1b87b876712d782a076770fc2e7fd936360ef2830ccc25e385d36843349cff0cd73f97871486d8d72cba082d4c77890bb9535e9c60f9e5574f524336bfa51bf1ebd59321914d9750ac33949c4bf44eceb48ea52d215c4c69023ad090e29d532859afb176efbe8d8924d51be65fb9395e0dfe89ac8de5a8d31125906e3312e6ae3ac60feb58bd4e32dbb617c7398d47fceeaa7355b1ce87235597e49bcdce6daf906d777c3648ae357030da96f43fae3eeaa3004633115bb14d61754e213c78f200763c5129563731905be9dd2473df5be1f4907d5b50f3022e938b118f2e734b108f5310b2c8f253216ba9515eb47f5cf7dcc0eddd513897435429c013b9f01f996176b6368022db0e4de38548e77b89ff4bc5ad162cd2cac16c8cf42aa147b91b258d2a5d77e564bf4c95abd0b3f26409b1818974c87b86c444b68e49f1c0aed97cfbbcdd16903d38608072008c5e55f65066bfd6168b37802c086a711a62c4a1c3153b689bbcdaf07e5ba5bceabe41188333d7353fcba4132221eb8fff7ce41aa4b88056bb7dde5db10d26b222b06ba64c2ee1097373af5de8c7720f1af1418c6ca82fb8621beeb8f6f4e2251810850431670d12f62cf1a7dffbefd82db908d9e4d5c0bf59b1f429ad79811d20857b90a1047ad14d979c0407fe94ecfc469b14585b607b4dc1b469ac82ded0af100bb5670da6816f65d0f9f084ab8d717ea678b6e96ddaca608b9b44644e66eb771e0fb0268b31dc23ce9f146a605fc637f94befec9a14e0dfcd153db84d60e75c268b47017a9ecef45a16ccccd0b7c2381db27d08926f11cbf9c4140494c262db3a3627c17800537a21550136214af7ae987a3b9248dc8d45ac161a1bc109b73dcbb662a4333972159b549bbdcd54273e6f7e2717740be78d7cbb91c9487fcf8d654194c4b1358ed57a7373cccb1beaa035169f64a09ce6371c94f2be79ecd8ae1d07f9e6cd8d4ff81c3e3cc3872d06b532b3d648bb1970ec95c18f9236c5fffcfd85106f856d56d4e9d3906ce5d341cfbfcdcb2dd2cd8ee2c51d0af69a68c1058e3b03b2c35499a941994bbebb1110cfb07a4ad499b1f2ba63ff8b9173dbc71373b886430f1ac8a4f330726dc8defbc53c6c5e00d011ee1d8c763debf6e3b8a6b46f994cea1e03686543e4a61665dc17b2a3815cf993041bdd7e83d84502c7981998ee157ae3fe20bf344ae65821382ac1641b3b9004434874817b11f9057b327bad99a04bbaabd3b650b13fbdce48489e9bd9a98cf3ff9bfd32891200037a52ace7e8fcf22dd38a5a2f9557b928958cf04db50e03c0d6d440885235c7452946c6977f40d951501a6a32113521ec3114bcd462f787f082df05eb43ca812db34b76fb83989f164fa3212364b23e7a62ef36356df682d40a11ec2b22e75d1e3d0b4499d0d8c890142ebafc0005459d5940ff4290de4e126a873941d24544c849f47b98bfbde1719b6461bef4126f76d225d6f54fd8d26dd0e84c8fbf58a540d33b7cf5c912d74a7a711f6466b7fd17623b59bd0025ccf927cd48ec263ffe092ea5f0090429d98e3b07f4a9a003dd31180cf38429e268eb26e72808c73ec8883b07dc198738efff35e22083cf47d78be4a8a02c4083d89f1f670682c78ba4cbb87cca8fb05c6f17e1d4287c5817ad1ab21951e2404c67feb88b610335c38bcb3cc628bacbed9e02cc03d813b714278830886727cf6b4124d05e5fa5699931ef90b7662b5e61916db258153e8bfabb3a1a6ea16bc00ce4cdde2f6d21d08215d4817c00d2f90a76b40e3fa5d5b6985ce33bef84f7c1d8868d697bd8693da6988c45e2caeda3908123ee2e32422922dcca87b8807df20c403d7580c88992a595c6b1b6a6cbcda7794fd7e0607b57c007452b2111bcd02de65ace8a66f42a2200aa9ab1cfa80649aec647746d7fc30e41d715f692d4a92e73cc589e7330cec21293fe554f7a23ac1f4333e1936543a29452852f8e94db93131ba6eed8a048615de319a891a69b7730e804195264b6e9960829ca62bf4fa4f70fb989e29aac1d7523c6db2867cda869bd738f19b6289a754fb104008d9130cbc4b5c0cee599e2c3d737ec3433e700a17c60a590e90bf1e1fbf0335818567b985f32a32b2247799464aa2843ecca2898797730287119e45ebf88bbdecfbe444b9f985a62176481b6965be42423272f9b8a810d51c11ea9069f0c49dd67f0d3754586f309cf06cd0473c62106252c3a80a5dbb0ec641a3416dc0a7e1613930f82968fb06ccaa06cb246c4b4d8fbaba278291711423d59a49aacb310163e37467cd88de9ea4f77ccc41d329c31569f0100eeb0bf4b24a269ece6c1e6360d545d9dd968e8dd8fbaeec1b07cf22031e026c07c3fde4637ae79b2f84904e503f1a37b715f2ee72a75262aea108a207cd8fbb245b5af107236e3f349fa6388728cf79a5c2bac1db7ed0e007b1af9ecc3712a9d09f8de2c47352655169ca81c644b531d74a1b10e644d056eb939fc6bf8fef015ce3bbdb9c3dadb493734e7228579e99071d52c08a66778570eb8dfd127879332aca0f13f60e8d9b1cfdbd3446bcf138911bc2c8c9b2d99b046e19173009b15b9789011a581cd40d97e6bad18de104b079424005521c8e7720ab3770cd6ba0782162b9e138160086697653d5ea8e07c9268427a5f64274e8fb7d41b290947d523c741c540303ca625601303235491a06ddbf62dc3036d6bbda64e7400ed0348f5124f28a4044afb8c93e3736cdfa4240611a5c0e8857072ddfed0de95dc98b636df7e4817e8eda72a35e00c7b7f76ac8f13a3db79f4156bbd8eceae50150fb1b97a1bda54f9320590ca29968e83a609c9767c40961f2d46c5ce5fe53b4d27f55f544a7ebff37ab51a457aacbb258c26a70d71d19345d398112ca0a6e74259c0f0120de47538d7f11da0aa77c8c4b80cdb958541198c93cdb6ce37a0e94d912704e0dddc55c086e6c4ecbb625277f6adf9e884322899be688c3d20a257c3d9c6d803a33a99c09c3dcb667275c07adb34b0d2e4228e2fbaba6499acb4b13b1666f124003c20e1c11fd308d475405d068cba213000eb64b58ec89131788ea5e23cb6e4e8fa552f66ad549feb08ba07c03471231a482d751cb758b8052f8d1f27e6231ed0622a01ae0a5f2c86739490210c4141020c746b53abd37d99d22f0410240b8eb50b4635db152000e218b01e5b0e3f33da0c6fa80c2ae02ee20c7a8ad1ba4796f531e0872c761cec756cc098405f27b47810980a86bcaa2d48907ce6ae2dabddc65d1b8a95b55120b5e3eef73026c1f749497317ed55df61b9f1390959681b52817e4837e002d490436bbe59c3e2314390950104005593155d96d390fdba5f79c6cc91297e3d2889a026c961a3340208c691ce76b79170be9467ab0d3e1efa588499c1d767c300ba22a8f769c0f8a7b35ced877558bfeec86e61ea1ad42fe9b2e984fb3662de03747ed83c70c4baa1a01a07950f852699255dc16441098e5554db6f77d8a531304a40a3d56513cf0c7b8ceb96c7187f80e536c6f8e438963b39bfe4c43ba1dfd0d0aff795088d0bc37b62c5c9a205373ab1a16fae31dd1d864eb1a2a079acab1caf32ea240fe0326d279057aabb2a4412b37d86c7ea322eda1cf98563bc8f2859389f774590fd9c6357a9d89203f9810cc117551a942897eb9f516f30bcbc47206c00770e4de999e589b3a3f5985816f5067a6d9834c94a25db5c8e42ab6ebfd2cedc1d993cd1cc8479c8e46c94340ba54095f0823eea4d48c08a29b511117314fbaf5fd603180ed6e17e7ce4c5feeca6b13086202f47dc96be0dcf798e4adc925a856bd726ba130c2abb3e019dad99a60f4c196df8479d200fd694c5590c3efbf3ca330a6127e5aa80d819d412cb79208ece2c62fa11d8ade40b9ae83b8e35a8884e885d5298168dc1cd65b4476c12c2ac7b9f8e92c845c47511a2ca2b3baa9ac2f894bbc777790f8a320c8b697d1f63a8250d30ab600ef319aa710d221b70b57e50047a1da992e94fcace6037fa9c0692fdd45c58bfa4e67e6600ab12813c3e02cb355a64815edf82af84568854470868598b23061230555238e5231385b0dcb4c237445658ed82169ccd96592e42b2317e02cb40a5cf7c6887a3e72fa109aa57e64cebf27fc30f135383103ed05a87745fed569b3938a336b79ded521cce3348fcc3c03ff53b25dd8b4feae4c6f99b1dfbecb9241cda63d2816adc18f4ac691330ddc0e29eb08ccc5c3cdf68b1ff86932596d8d9fa10f083ad9bb4f513993653ea0a77aa831003f88355dd854fbbd2e5091cb04e3a8312f6194286e592e11b87c7202bc8743de03489232cb1e537a70a3e409199035a7a9adf39d45cf79de001d095b624f2b3c384edd495705b043f889b7cb664cf798c1728211110b5883ad56c4b9ffa2dcb3c11fea628b299c7f9362a93f0653fb060354db6b20f37ed068d0eeb1d019c811ceec8488af0e0ec738355e96b6939aea5601d76175e4eeab2574a5975b1a83bcbeadf0ca5ac5c3df406cdc66f059c76aceb2c77b081aea0c2c69e69c612a5f181184c8189a64c9056d4130665a27ff1712f7133c9b096e6e4b6dd70c156c531388f471e357e6adb7fde65b152747857a9689f14ad65dd9fd25dba9a27c821c0a1bd3bdfc30d1ee6e74f5468170ffbfc7c55cec2df822c196f4fecf00225effe6d4af35e887ac72237524a37f7ef163a3e0aca7b3216a77e7df5e6798c38f456debc08c1f00cdd242539ff4441f95aa714f4d68b083c8470a546362cac7611f240a391ddc6305f75e87335033024ea8daa200e031b42d438559622a3b70b73cb1dcec66735170883a567fe413c430ddaca988c05d3cd56661f5b19d057954a0f49eb6cb4b74634869a74d47c22fc0768729df23d80e7e4a801c762e3c41488a6bc10c028bfce5a992c6f4a7eaed6b2695653048b0c8a2e8deee9ebb8c7f1c5e764c500eaa9a9781eb0a64c7b620c91a937468a2f35618df8df6b23af4589e5822f9446372a0f2a944db1babca9fa938eca9848b85f1695ff925af04ff1ea5405af2cc7ec2f06fe821028dc393a0ac5c6dff562c11beec9d603614d0d91dd74766d383ad38cb9799dc173783da5c2439bbec895c328baffcc3d4315c83bb5451aa15f3c04e3d5988f74fbe158f17b8a16ab19d4af490571a74abdd6b94f2f6b124d05e25c52a862c3c545341726d4dfe7d1129f8d3e7026558d1efe688635ffa37b4403da3f073dc29f47212e630134ea38e8bd313e12306c6b957e261ca4d64d897405924ac08e74d11615f840d7fcf817c8f8bd5d5569197e876ce13c7c5ed725211261bea0158cffd7a06023745b0ede10b32e74ef393823b23142ea2a29f690bc03b05f3322f717e9b90fa1b590fb38376e0fddd7f97d1c3ae4b85e8ecfb4b09988fddc7f26d4feaab48de6073e9f4c5769a75a9a08666ee2712f6eb5c7ea8cc2035f55a9941c998046f3f8a270f48b6c3aa06358112eeab6630023577274ec021d35f2fbe0f68d42b723804d573d096ceb49bd03cc694da8d7179420f3405095f2a0c211836f0a849ea1d24bd84ed56a50c2c92e674c3d4352c31966f54601dd931974a59767748706c64e101ec9774a98b97096cb03c25502c2c817e3b0f309decef3215b3abaf44eba89907094cbf6a98498cb62c9ecbce9cf7f64abe07510eafd103020c6af7d6eb716dc7dcf2be5c476783d868c3fe7258e0f26c60fb419dc15adf3783adaa2b33052eb0665327a5736e1434c9ed62cbb9a50afc051f811131a6b272538533c17d14d30698a09a3e4165840a81c9b44d2af62077f5a71885c4f3f9e313255dcf387bd16a34d1a100f1b98b03680d82198d0e967cbf90cffe006a66344219d408eba31f59da1f32a4743070ccc865ec988c76101127bc06210f02c8eeae415f23db25dd1aadf81eb2f684a79adf84d1f10b4d71617fbce58af49533b16e14e890157fa26c9f28c76eb8e30632e7d355dbe81fc6b592f1b7c251a246b4b4fcc3dfc907620e2e8f77d895b06ddf6faf408d09cc509c015ee0865ad8f06cfab24c0fcf28a4eb2688148d01abc84ac1d1142283e25d331659d06731702c9a4fe4b3f57b4be48bb657a9a55d625ac9a21ae5a16b3b233a925c3f31cdac7c3a1f906038c7eee2ed427f200ebffd3658cfb5db042ecf0de4aed58f28de97d76c1d87b2b9530da56742026659c500c094cc2100071596534636b02bfa8814159fb5ef6e480cfaf089a229715142745740755b688edf122542ec6ffa9dce1725e87aaaf6f8b72a1d19c15323bb688c669d0328d67a33b00881d455a182122e167cff1364767efb5d66162d9a3d6f98b8ec0a145ab80e341dcc4cf5af2e89ee78a9d30d08f661f4d40693471e45918e6d18afc8052d03137040253be1fa6657e2c8c20b84ef178e325a2fd619071882e8af4f99f22543c8e3e136f4b4090c179574c25aad7843e698ff6505dc27bfa9856e427acd080becfd2b738003ac4068e32436948ab3104aad6ba6ed4112a1f17685c5e1617dce630cc8bfba4bb021960dd2f3c6c2369bea077a57f056458c07651145437f7cbd7bb5b835ce99dc8a0efc197d38fc797245b4416392b2fb71bc540b380f488814fa1d4012a534089cbe69cb6b77e9e98f6be3584570a620fc6c278c15e5e7ce51768360881530d35af4139641adce6cfa6b16a0c313ec601613fa4dd51d63b2aa63a29d79efeabd0bd8999e40497f823abe006652f79dd69337ef0c11f2e080518f5b8301044e8e4118e88f9506004ea50a4230bca65ce47812e98498d6ebc55ba8e43efec17a30f7515ba62df222710f72c84f3d6010bf1bb7fd5f58e713d86b35e8e68f83686550b75ece386cc47d7bf566bba532c3bf6751530580b7f662f6cc57756dece9be0cdef4d3a8568c2dcea52985e737bbde7e5e4cacbe157459d10bd9ab9d672e5d96072ff544e7cca2fc1aee0efb5ef53fa49d063f3af9784e965f3bf5b9b31709c8140a63990c4df6622b4ca64a79457507969561cd644bfc894ad0bcecaf2cbdf2f6e31d98345a28b6e134e881111c0ae465a92c02e2f75008ef22df4b774f23b0c7e17e86228f405c0b76ed656fd649324667f5e25b383e8535e5ff0574fc192cd267e9fe125a73859de9fb94fb706bacbad2f29dc9fa96b962efbc07b6a43b35a7fd8b0e59f244eec60953c44257d4d1397f947776e40e9f8e9b6cb835859c6d103db080c77c9c430bfc244b29dc033e1e2a6a09d050e09fd7dc0bbd0a467bf273e216d1b04b04e41a4c274f6d76fd1d6e960cd0380131f8c637761943bab896db2bbcac37a1d1e575b7eacc15bc14d8e7b5fa157e587460f4e20c95fd63c3be0bb4ec6d7838e6476b802c58ecabb0cc4f1d1789ac49f3de649c610b0f432efdabacc4ed2aba93a4da3623aaf28c99e2d103f83f2d5c65d1babe5503e9a28380229271626ef9b295c0c868b580451565ff51ba75c9b2939643d22333519a077f4255083c5174d7f1c3f82efb202e09f4b122bbcf71e35d4f170d375cde629d6e72480aac67527b5a8d87b3f1ce5736c00d7e1350813fc8412bad0b2a9a96a9e39282a25abfcc4c76983207f6e88b2184b8cd4683e97bf23fae5237bc384a5e62d1e8dcc7c2cdda42dd72dba44179429f408289de04f67cf566c922e54ffaf2bbb3782c9b40a2bb48483466b0afb97411e0e5ed22079454a86f056d7a009941a95c9d43785981bac1de86c9643a28a71260ab8553498bedb611d22c6f7d5a9c3b2b1af1811c3a83a14e99b616e05002dd748b4b3ab3f43ae90cea2c5b16cd8037d8e7efd19460f40758c6dfde88a756d63bc9017a68da9c0d2ed326bf75b298d76549b159a135e6227f39cb08e9a2ccd705f811a8525fd316f8a147152fe2772a3f3899ed642646c7abfba0f01f993fef6ac3e4020dfbe81a0be7d7be40b12c0c45e5ff3ed3bee4291bb66f8fdfc0548f0d8d1fa8e7fcfc293a86984ff98492c0a392dada056e88880a586bb5b8fa10d259ab4fa8e2127a6e96ed4a69c362544c15212f03cdc6db86187e4ec242f4ebfe95bf88cd0012d0a3f42fdab1de69432c40a529a5272905af3c96afc5914bb9a01490035620218e77a68bac0ee08d94b006d29837396872a0f4f5023eeba8a660df13e8a5d97f04bdb30fb16d9e4e7d1a6e6117819095b9b141b593bd8983d31c78e8d8146083f8337c7330bb481f86e511605090a048cadb7b4a0e90c4119253e640f36598322b606aa06145e034a7bee7e5b3052ba4a075a6849a309ef8d37911ada8af6325948295d4a6a0c6dd9cc242340648bab09552b3a58400fe7dfbd5b4a64d175b863106390ab5cb0f6d801ea4337a8c48d02e9f5f09fbd90fb068d180922237fefbdb794524a99640a7607b307c307d3e5925d0f5709622f2ed70bcd3c751944687bbac277902012be5927ba50c5e99d19845da8fe5c004710091f5927f6c79c23f64413889a9035ba0ce5100948e08275a13f273281a88967ce71bf10c87ea174ea9c0ff9d9fc8424f8f6d8d2b5c895c0e3997384eded3c5afe446f5fddf40e175a9e7a1c7d7292971b9e7af4bbde6137e38c33e218cec14e1b40d4c4b78b7370bb9e391f7da79727349e79c974a1d2058918247d61e5c31b3fe90b2537cf334f74592ac31863c601f9634927d9d4c09c4cd3b40ce3ee2cf6d269e9b7e26f3658afbdf7da4a7b8aa6dbe41d160b35df34c77cd3b66dd3325b691cc3c2019d39be22fb58528776cc7df8d999995d35257f7c3dfb32cc3b8b8f7df79b64201dbdf4cce58c51b5b2f1719879733e9aeba16961864d2a9d7126188d71428de925ed9dfa592c9db3592519a50bef92f42ea7e9a3c8e8669ec839f384d22a9fc40596ef4f88857ead06ac333344174aa62c328bd462cf96914bda12eb48e7a2e8426d49b3c255896ecaa5f959f974079db5a2597929955847bac65479606d5b8c3182dc3ce8a20fa53f1e084bce399b67641d1675e2d2b6e7d523493006d299e6689ecdb556611e7295f6d6927cfbcc9a7c7bed9cb09f7cbb6d24be8d7cb75257e9feae8bc9367da2b553d9dbb3023aebd2db1a6cedc3dc7ad7a717b27802617d873f7ef36683b1e98d3eed2c10bdb593d6cf28f3ca6a45e9f9cc35137dcb8f0522a208e40d4af939d6d37e7f0ac56fea3352689c6e8f34c609adeba76bad44859a71ceab4d58a7ba36ad75ce3a676302686ce1d4423a8d4198974e33a7d42d75bbf24d0b245efab65ab98dcceff5242d45cf543c276911c56b02f0b89ecd8542d818ccd922ef1040a409000e4eca6d709c5b26ede37ea2b51ee783730bd2d0d0d458afaed9388d57e3c5c761ad6b3ab5d61ac781e3c6cd0d4d8dd358eb98ddacb5d6db579bdbe07a363fb93680ad95c8d5aaeb6aadbee2e65183b556a6afbef2701ef9807704452fef5e7aa7230ad2a9970aa677c2f08e1fe9d4535f183fb4e129af5a7a27b4754bef00d95a5d53713f313b21739ae27c7035bef290a4cac3eb4892875bb7ab639eab5e83ebe9afd99ec643d6531aaf711baf3547bc8386579f49f08ecdab6b9b17747a1bafa1e1c5477128ac7c5bf9b6f9ca79340d8f9f3f9ba0f8d685ccdf3ce8f41b8d6f9eb79f3e2105885e74a7c7e6518d962e9c4540585aacd1828b76441f7b7296e1268d67bd391fd6575ee3f14b2e287e8d5b4f48fc9aed0b6df8e695c629e70354e3366af559d43b365f68e349efac3e201bbef2ea134aefd47cdcca37ce878d156b8bbca30768f31a2d6e0d0fbab08dcca31a5e81e29cd23bee1bf793f9758df311bf5583d469e48ccadcae411a1a4e7d0b407823d278ba857bba3da594fa507bf93747794231ac3e7c7519cff2e89a5a8df491de915e2b92cca95eeb173615ae36f9e91549f2541f3867ba0ac25594ae0ef1d36d45faa97d4754a4cc2321ba385bc90cef5fa6df952368371f3becc75ba7b752ba7db4abe88da131ce0fa2a37c0b2d8ff2936bbdb19432d487917efb4e1ecab3251d13e72177df4ff4c139eaf3e9d34fb31e3ab90596ef1e35e4bb2a1f9d3a8fdee9de42ca67ae6d0106db7830a077362b16b56d5eb91e1bea0bef95f372b9f33af5de4ace27e37cbaedf342ea9c967128748f3a7d21903fa97c82e298476928749ff3901bd0f60151713ddc4f74da930151dd6ee520eba70ea0f6ceb61a29bae940de396af30f373e7d9ce78ff2e26fdbb64d6ebb9b6f5ecdabdb5ccefbd3aed99c5c73edd47d9c17c6e722d703f5f530eb6cceacc3f909f3ce93f193c7bfd9fc709e79e6dcb67d34bb407c6a356831460ee32c67adc5ac732a7c3f1a8c2928d13df6951029fd84e20a422d6f852ce639bb428398b31ad48179c8f211e1d30182de60d0e9ad83946ed1512a6462200539aab9b576851fbd63a5ccb77da12afb7444a1e63c1d1e4b07dd6cb144d0d152a89f06f9704a23f609c51f0dde06a9cc922efba142057a07dbb80fc382ec7b21510a0d4615ea0af43ae659cfbc20f3b97f60a077ec2714bf7e3d660a325fbab07b99c8350102882ab014155db1020820aac0d2489fad644ee699671e9bd23aa39606330dfb7a4883998ecf62d34ee25abc72e79d77de46d260e698151de635469f3de433975e28d4034b5603fde2528399c72f2a3598795f894ad4336927364517eaf8cc1b49ef64e1aa9388f9ccbb49ef6416c967be9a7e6fd76559c638d907d448f64851d1152bae6bcc3632f9d91f7433deb879c452b71920baf0fed5a29638e3ec291314c7f4cefca216d762155dacb53a5383d7312c9df5e9e1653a8a58fe7a7c92d520bf08a5c1ebd9178b1abcde55c4a22b3179b129ae96dee1242624feb65f8f5c2218fa85dd6d2495ca8d3b3a4a0ea790fce839d098a7cb81981c4cf1da69f64ed8421d0ab1cf1efcb590fc803e1f27ccef631fa1f8debca213eaef911e245da85fba507f4ff985ed5bec1848292dd37b595ac93c27cff61cb0cffed843573b554b29a9ed06992ff5ee6eeaa4934ee903cd27e6ed01494d66ce9ecf67a33910f5761b1fd4dba9b5be7d3785eb9b43e0bad69f4dcff4761b1fd3db7da6f7e7aca365edb13d288e79671d79654e0b66864091310336d6a3ac51560cab326c46501cc332da29c39ead335774fdc2b3d3af6b3004b9257adf53e77676da9c09444dc8f662d6ae79e6f1620eb479a879731ce79c8d8fecb32fe88472c6e259286f392d6519e9d4b4b959cf9c76ce9f7941581f145f88507fe7329e4df78397f1fab5ce3c6e7a19196fbe6639b69cb6ca9cdc8c97917f92716d729c73ca9cb27c7bf14f5efba0aea639733e3c7a7225f0c8689665aeb9166eac23fd468e1da74c5fd14dd70bcfb9740df3247772291f73eee43232980bd597712d3ee69c1744c685ea9f9cb99f0b7c07e1c082e298680286b973bc28fb750dd6ef7bda591f68f2e4a37abd2ead5f6729f95a21f1ebf5fbf9d313ae94d24a29a5944143de77668cae9d9e6ca4f7b5b65d7a2cef5d01030d20ca719d475f0792577a10a1ed834810aa2f5daed08f81bff763ce213bbaadf123aad132a1b1446dabe9da742d727c51ddf4aaa4a0c521d97c873ec6f64834ad0d87e690b54136b607c98f41f30b85fa33ae077521dd0399ae173e6c0fb2625e18f3422e90d76d61bb10fb4177080c2f7c1021f5a30bb1cf02d173f50ed9ab508bf9e99f8d8f88f4d22352e809e99f9ca3bd56e71c0de0383465b7330b41b206c9972efd0b1aba4268e007dacc96ae6592b844f1e1fc8e317a0666b674d1c3e7bcbc9099ef477a2195dbe47342eac6f4423619de1124ba3e88848f284c1783d1a64b0f89bc2773a94566c9eeace3e37aecd757370db247ae07f3d8832faa6b3024f2306f7a42e2875148cca6943241f26d7ae4638e7dce3aecf1af17744fb88e7dbce266a276875e9bb2c306c8a0a1764cbe7c39334627bda55b4fe76b18a9c72f287e25c013d968af68ed335e3a20eb217c68bf78a4b738b201de1184f546ec44cc854767fee837a4884e8bba91542bfa54fdf49a1b62ba10c8b3b6f83184ce74e9a60fb1773287a8c54d4d58f0030b8e985cae1675cd234a20040c4130d11a5244a715dd48aa35a448b7aa1b59402b3af58c2ca035f443e6c81cea4351787c435152a01ebf219739d3e9c7320789c7904106465fd8c0081d5cb95146c72d221da260c2891327965220468b5bec212b0577b95af148ef8480640aa131ef085932f33aa787b26af1f30b9263c684179b20602de17520444978f9fa5d0fe5170efd94de9ce286bf9f11ad1ebaf061f4b03a10a2267f41a080214820e029907cf570043fef0702d6f2f5fb01e50505c00206930b95bf794ee2e2c31b0db1bb40d4a4658d5c34384822061eb85c2d3672ddb061882445418456602d6fe42a001630700951c010a4165c3c0592167b3882af9ce485152f14df0806d6d2b29f8bb5b4f81b627701044e80a8c10b625c435cae167fa1f4e62450002c9c182301940e7040c419318c19d3e212542f3f5a913439a717eda5d4a55fafa3b4ced8dcd40b15fcaa415a29523369ec523ae6b2faadd5a594b206efa09dc4a41eddc6662a61ebbcac23db8bc63e29ef88223448bd307a960cefcc962e73cda9dff40e751dbcc359e7769d7373569d739dfaaac6532f8c7c0d0d934f2ecaa53f27f100ccdf3478e3751b6b93e4c511cf495e14f1ab06afd7495987751869051acf4cd151e79605d078260a6f678f5c8f479f335e74ecd5bd76aed5bb7a94dc09957af4f6fa85318c99e601596776ebcc27602d0c81e105d707c99c05a20f0a45f00333c63c0bac0425090daf390b44af7d8c7d3ed9d75a29a5734e29657747d6b994eb896f29d7c3665f183feb09b3cce6c7da16de025d0f1afa50fe751eed61e5d1ed2789da9e93bc28fac94e7b302f6589407d1586a75b7484a7d4b7de892f68cc91396e40e3abf2a3c864bab55d3dd471758c605d051e6079eb15689ed9b2bcc455de82d171d33becd92d118cb7ab2facba8c6365121acfe8c0a5ec22cb4bc9f303b2cb16a66f1f1ad7f0a1db8ebebd53ad78477c125a72ec6409282de5eaa2c7e73e003bcb308d163bd4a44b4fc9b7e7681ed9ea10fc2d76627010209a82c50d53c2d0a10b2d35b498bbd275d216a5efeeae776418f1db9e93b6207d3ca2f1cc0ebabe9b00349eb141d71e3d287e87b1e4b339f5f65888d847592788c7f46c9e65af7d2158bdd08abadcbcb03a75ccdb37c75cd328e651274aec673ae69be6d1d324f7733dc6fe304cc8158a44357617479e3ef1f28c26ef4fcd10f31e149f3ab34ec84963aa7cfbf46c7ee81340d1432134a44f277a2134ace0f8a64f7cff3450fb8cd225a59f90f6675479a17e295dfa4bcf5f487b2f1a374f0a4fa0f8d0e70c211f3e14727180e9432124aea00f8576a0f4d1c31098e0250513d3472f4e3e88c78c39e375c400c6c71e334b5da3e039a969e9bbe839498c290f3e2785b1e5b999a54eaee039a90c261f919e93c2dce007f09c144686bf2ed710568ac2827d21fd1c08123f62d1c910daf5fd7de47a044d97abcb7318cf605ea35be57a38cb67798d69adb5ceae55c65aeb0565a2bff458ef4224ea9651c830d19e93ba4002c60b64f8610b2b46a0404a8b398deb21247fb68fd9e0e58b9a0d0ac9d7ac6631cc76aaedcbcfcd33b742f231d762739432b6f32e778e74f0e6f90bab4b26819b2f8a6389dae4fcc2f84171f50ef20ef9383c48a762e64a175e9ad485916fa6939ba1a28b8ed342349e91415237b946e3992a3330e82fc27cb165061a6f44b2861b9cf1427e91d20597f7a2f443052f5364972e927e79723715303064b66697308a4af8a1020656267c09f3d345681edaf2f2216301e3adcc2e93b27eba8fd1f5234bcf2d218bc53c4448badc708222aa28d1458b567b34c23cdb172e20038c1e7cf0440ce621f261075e3871c4888933a4609e0d3811c28a179223a868221635921a363f447aa51c226a596b3febedc9af6d74fb51dec13b2479de12534cba7de84266923cdcd4a54563a3ca5add3a87ba54d2cdd5948e2e806ed76337161ae384bc319539d486c524468373a68b8043e727b8518d521c218ea720751054029ffea03cbf90860fff10e867cbf4a7629de8ddc660f41b41554ff7dd3f690a3f1aa4eca51ed1b8b5283828f1c261895f35e801160f2cd66a87d58a06896e1a79e6c2054530e172658c2996b4d899c6f4e2de6ce288512acca904f3b494cea1545c702b8ee6399d3c174eaea596e8c23e9a51ba8f1aeb6eacfb0804afde478da597e6d13c9a52e61111e6d19b47534a12ccd3f512ed44cb00fba6942eea269589058ce2a9df2a4f7d7ed8d1f5a106a9b7a082e499453227f611e6dad19604efe83eea234a1df3b0979e660101eb9ed2474f7459f5a24f128f8000c22c6a81c370180ec361384c9c31c6183d471fc5e8de3cd5c0a9716b44afe19f27f97a38d14fd1678cd1371c3abe77d290b21d1d016089ca0daebbbb070429d811081784d39c20d0584da42af1624f1aa4452ee834bfe10070e94701e0c171eab37700e0d4e79c373c9c730660ce3955a939e754a5e6bdf1b08f68f89c930693728be43939751bd3e30d008e2a358b6866d12ceaa33e6a293d459502e1646f9cdf5784038757ae8f523d74d1ddc33eb2f1b08ffaa8b1f452efb853ef2c353335a89a1a9f1ea786681f7df4c8bf166e78d84700f090c3f41253faa8a5f494c7e1f103c0eb6e3ca393db78dc601f59cf86176e1ff6d15110fb212f09c5a7f199d02075956793faf8b5195477faa617950b9128a3200daf1baca49c4821bd8e84995c5e47b6bc6a10f3aa614b6a895709965e25509a30bc68008382c6adc52d328b94e262520ac924952493bc9209934c9e1223cb96540f5ddc22e78dd14b7be412b7c42d914bf4325dd58a967ac16495f1aa61e931f753631836b1c6fc48435ac5d884c66d834e355d7a0a8b2e3cfdf4d07fb6c78ebc8365a9b59dcad285fed67639c0b794525a5966441dd0a0a937f9065da75a492965cc62e2a00bbb9f9d6a524a61106b8fd415ab9bd0c1afd5b7dee9ac8dd1c67ac5adb50259b79f8d0feb4d5975efbd7eefbdf7621876bb8949a9a7aae842771cffd8b5f28086293f80e7170d47b610f3399e5f33283dfbd2950ec7e41a48c00a0b50ee9862eac2ee29a51b09b4aed3a20b4fdfddc72c40d07cf83995832e3a1b60bb0d4a2d13d01887b914966e426006a4c7797e19597aed54edb4f1413d3af5f8b5cb9ada810c6480d2c523524ee6a7c47427eb73d2f8c9fd8c4fa7ac4af9fc72e4007b07483a582368d6d03c8c5e8d1a343e3fc74999d13dca83e27f3154f97d41d3c31afee30b9a2ebdde1a5fe347e7abaffb1adffdccd63b33422d3820be1c5ae1e31752a71f10d603054d0fa30b916fb48d800b9a1ed2f8c23b31c7388e732299639fd71a5f10cd67b4f9fc6878fc2acf88f314e7d20b7f7cfd70b4cf888dd6f6cdb039110cc38810d91873229b6b4e24fb3a99c3ce3911edcb7c05c9c37d2c19675c47836ce9164f1eb2bea37b377cd0596735c84eadebb8414667fd14016eddfb09754e3bcaebbc20f44fdf0a355374e19d3daf7c1951922f2356364fcbbc49e9acd64eaf934ea75a7e3a4f4a27bb6089aa4c55994d78474f23349bf6fee136fb8a3eeae82fc5c429929a990d8922c3f9766ad7091e5fc6db6e6456bcb97456d2329e51e75c87f4d2d3fc657c4eee04996fbbd46594a452962d128ceb8892274754ac6061e2d22f7b4814ee723fdf6f3e9b5f46a63ce7db8facd2a0ea3b752ce84289d48ff9e47a04f161eb3eb15f66fb69e79cb91f1258e91dae7fe827ab34185f46a07c7be6dadca2cf965638ed0b8ad20ae5c89152994b82bf5f5094581af4a1a91fba502221f54e95deb1d23b4c91707d6130533a74d4a564b0d6d9e08eadf613eaaf42fa67af00098b8564b5ea8e148b115a518cacf7b09536451263dc0095ce1c731c01ab5bb9e38039b010fb1ca7c1ee066c49075f1ec3300c73c66e0ddc1b04efcdb01a300cc3bcabf298afa678ec0b81b01c741ceef92543101f3a4b0ca78e4c3a679122224aa46cb8f7da5be4defbe4af77477f5f455ef0f70b6d6a86d4912bbd4ef5928186cf9e5f32b83eecdc08160d2c165796d181acdefaada1efb3e4b95648fcf87d20587dfd80e63665903265e47ea59fcdcffccfe6a7975e44a0f8f0c713a08075fa4544097d7e1131410f3a4e3a03899fcf2f22367cfbc693f20e7e1191e1570d8a5971c1e5db6fba0363347db8f5a0cd50d16df439e90c2a32674e0fe143a24a3d9c5fe8c26bf1f53372b64643ec2e1025e1a5453f174f812484d722731408e1db0a2a7268dc3c321e5e2e63ae93e8338ff3eb11bda6699acdf553b8bd0c6b56d7eaf4aa694471c3304cd3e46bfe329a5f209b9f694ff6c79eec750dc3b2afe73ae698162c3f1da38e6d7ebdf858967d40d8c6a1307dfb306cfbc2a1dfbc7ae1945d84d900b13544c68b301ba07a6cf1909b1734f453ba8cc72ded7a3fd807c479a8b99cf50b39d73e1bcdad5377eeb3d1be9febd5af572f730b74affdb9f6fa988e7d6175cd351bccd906fb7aa83f1855b4de8032d7aa6fbe79f5f8b7e67a34d73ccd79c8c8a331b91501c61129050d64083fadac5156761e5dd99bba741bebfc525abfd50b360973ae34a0e8aa4b8fb68677d62a420ed75446dcf0e6d9466be3cab7eac3af837562ad4a7095af000ef3cde76810e7994550c58f7a0e967711c808cf3e5792abc81268a1ab56f45e672fbaa65a55e7fa711009daec0944c78d140b5b6b259dec92554e7446a89ce8a2472e342dbc1c399cf44645e9a4743aeba8a2d05a69ad5475441727956e29a56429a5e4962e4fa0dd59a382d285ac766128b6a80f45991e9d1915fd3e8fc6b90165e4e156c4811155de9f5f451891f23222865714d7eb08307ce3b7e1187520523bc89779bacee1197f4ee96d599abc8ed0f23a02899711625e4660791d71c4bbdb27addd7d738830024e5fbe5fcf7bef8d7c335d30c3bdf7429142e7aa534121a3c91226a922401c9068ea420547f8c03483300a03a5862428265372707224060a6070e2c904c2280aa32c92a07490468c88306241927be2611619b98c6e48b2e405e50a14268a9833aa9ccc39a7e482c5ea5625583204181b8e9e48e2031430349ab2f81acfaf27494ea60f54523f60e202197ce9820552e60f7cdd71c01c20e6e13898a3c4510d465cc03446d1fcaab0184378a1a28a2523a61ba60f31e0a6f2b112913774f9f2848821b43c19e3af6a09add43a55319973de996436b9c20696882a2f22a05025512da1f17aa23d89e167be7cd8f913960e2cd60e93c98fa0090c5f927eb0010c0b54bfe4196906527a0073c58b932a5aec4c2307550eb3e6098cc609b8c3300c0b424910506e1784917baf4c0c6590818a810b20c838c5000b23cba2c510b398a2061f3704a30208268098c1bdf75e1b6c70d9228b286890a4071b7a00e20803c288060577062a1b8a907ea84275a4338267d084e4c40d5e70a484134a8abe283203c3300ca3474ea002c51048621c3143063c146529d2412d821529155da19281c6f34b88256384b0c1bb4eb5bab9f6de21d1de7b5f42c0f0f75e55914e6583cac6f32b081efcf6fc0a228b0f3b6fb2521959ad58aa1958ac1d1e051ad000059227a0808196163bab706019428327905051658c0e2c161122447866eb56ff8ad42a850a8620562b29552e1c9c186bb052c5b05ab122a61ad275cfaf1f9878c7bed70f53884cd50b734ccdf3eb07275f9f5f3f28b12ec42babfe84d888db988fdddd3fbe732d723d30acbbdbbd970f605e3e209982c5911793a5d79229a92f2dc42348346e8dfd5afb854058777a767a964aa7b355b00496d4184d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4d4da931524daf265a5261bc9640498191222305460a4c2a0c97a452f44dee52bc5d7c8e8dd65d626e459ff706cc333ba7bd372d6e96067b498c2e8c4c4bdf41e6b773aa874ec615c5ab07a497121568a7d412a925524ba4bca4bc748acb93170f499e5f3b4079eda043aa4a8a4baa072f265b669720b524b5842887266ec0050a5e567c21c4bca185baaeb3b606897f9dcb8779e67a0455cc63a4214ccf9c35a1b33ea79c73decc7bbb6ed632a4941868d087ff5e5ae566b55a3186e2219dfabdb4a9ad3de96ca50ef503c3e2cf19b4d2aa4395d64ad408dd5dad68a573529e2c5740bbbb99b15bb1696bb593ca6fd2d9524ed952baaeb34e512aac6a6aedac656614c6485aa99c93ceba444a796fbdaa132a85063becf6cecc386cbb71521a3ba5225a69cf3c6231ccf6c0543228131aece6bc97bb5c6d3da3844631a0c12e9c7f6fb575525ae984c16446add01d979873ce792f4a030dfa703ba5d5da7ae3663dfa9c35ced9f40b2786d16aeba4b4cea4465520c3b42ccbb0ad41332616294575a041cddbdbe7adb5c6f73ae954723eaa67dfbc5da582b69414a5c2a4d3b5cbf598b5b677d6da681dc3acb591cae8734e9e74f67063b17e91527a86021bec1a9c7332563d9e714e1aa5bc9366c90109cea1c98a09e93463440169b06b90483af550a8b919b7f95d798f9e5f49c2fcf32bc92b49d1f34b0723bf7a7e25617aadb79694ce3985e49413c592fb9b52b49ef5669b4cc71c917841a2458cb1250d923927ad3588b0d65e8c86892ccb326dcbaae0384ee654b3e8baae43cdcc68914aa5522a1a2f1334d1d0d0d0d458cd186a361b366cd8a8b141c97063bbe17adcdcdc703ef1061714c77cf4d899e397095c1f1f7b7ee1a004c716bd170e40d000226987213a28799d9410816118d6052113a58b112b66e8f2820d6800a364c8bdd7060d4444dc108549982e6614399a33f040050f5ee4b09920070f527840ca21093cc0f30bc9099ee6f9854409142da41f6d7afa9f7a3dfd92461b1fcfa5d07de4e8779144e0a1230a114410a177248fb4020a2caa7045d1428a56fb8a79889228e1c00a0e2b50a205575aedce3c444c9cf8e00c2c456028c249ab1d649e08d04003248ee0e0062d28a3a565f28efaecd45e0c673a83d235ef8641e999b76215830c4ac9dcefe337ab57f5d27757caa0310e0f06a0ba549c892d29879bd6cdf5e0b27f017b00ebf4365fab1b23c0008cf3dc391c004e00e6ec21f08e8bea542a2fa1049b99148f6d2b810125a46cac8d4d1b913b33dfe6a184fa4f3c5cc2c965be70e8675c47efe8a8e1218bc643d06b3c9cbce3864ba7bce3c6a5d798001b975f08648497cef234e9e948d2491f11740c619df61b2f12619d761b2f16890568aff16cfc587d2158e3a3f9c255d33a039516d5962512581084120aca48c28915b4dae316e651804b8c2a9088b2640a16ad761e0ce89d948c534fa87f4b99a0e36f54e745979292d20f15bce8a4a7c43aed29283a576c2496528c91ca0c5c48b1620bd7122f584c1254aeb88e2881d214feb203122bb8018a962e3eb01524a8708939820692db9c7a6d846a1e338334c8e63ee66f2e157e44252c514b548a51461ebd438b8441460f5e988871a28928071ca078a10b9752d1510a3734717112440e8428630137602106941e6e208613ada206a3d31a9d8c332ab9240fb78c7c885561fb52caccc3bceb49d6913a92728ef41b1e68bc94aefa710a0d462b1189c6972e9deba8b42d1685350b152a120000001000d314000020140a8744029150281826daaefb14000d9094406a4e974743490cc3300a62083286114000310a1040081933345403445a04f33c0c1ee287358498db2ef5793266d3f48fa5cee9e013a9bac27d0d0b27c3107243f447589745d5020edbcb65b57673fa4323511c0c1e8bbd32ebfa2a2936a9f5f23998f9be5dc9ca9df374cf84d1b15702c5aa42b39955f83fe5fc443eac36533b3937676d52dd1f234118c032182a387c96eb0427ada3f169671f24cf85f3718d7f2f84da7740f5c3f9b196202a8fa47178a41308468360cbf00a613fd89c6e14de10d6959b8a80af0680116b508f00f96047b184f075540a9cf9dc7fe6210577ae874d160a75b7275b01ba365568cbcca1876eacfe7cd1ec4ddd422351521f4af412254d1678a12432448b45d9eed4dcca491932e9979906ca3c3c8b3118e60e0d70fccffa8355f61b13b09f9d12d1d424f4d15ffb0cf6add121df60f23719cafea3e22765f623c9f627f7540179cef6022e913b9cca2280110342cb48ae7728abb97b5d9291c8a7139eac6174570a6e5577151e83f7259d9c74acd3f2662d0b9572b4754906dd0ecf87c22e50708d0de20f932fe63b2bfb84eb8c3aee4390ec9e40696aaee828b075250341bd65f47dee5d51967f4f6b48584a362bcc47ea6b5c9657523f5012984bccf0ad608c910f70cdb7722ec7bae0e10b20a3a609c9a3a1458c37c6941656b383496567517927a35a5c8f02291523fc28f87889c40ff67ce7f7e2a557d5b59877ed608781e761ade641da164b39fb8944874d7b90b911625367504a860e4fa21d526ec88dd745b815644852e620bc50aa94e0532e3f1f2cf9657e1f1807271f96ae701c84d8360e277e489edaedfe1197572f6fd1ca3023b89e953b5ee7de79590d56eebb0e9acae82df5e1a47acdbd0095d49d2be1900266280eb50b81f3071ee4819303fa67557dfbeb2b07d83c296e5c519b54bbb6f0b6bde88998ac284f68f5511fdd0f9dc01eca71844958741f72948967a42f0ed97e2d905dbe4596311427dca822744f6f67ee4430175330d6851c8d3a772c297a0507ee58c6963bb5a4d31b745b032a603253a2d7f6a8943326ed47eb78b7badca915109f8c96612ee8f9ccbfdc364a6e7cc4317dcbeff9f9607e427ab067250d391689fcde257094ed789a0848212113b8134811e242ad4d591eaec96d3371f909cad517d568e2425f0ad1a00794697fa0fb9adcab668feaedc2014406f0f9ea9aff94e750268792ca1ac5ea3332f2e5e7d4b32f48b4a16aa2844359f41b31b788eac63ef8c99e3700cd91215251f415d058f319f1b0e362499f7c9666b584cc1972a61ddc070f2c3bbfc7f56f27bf80b9c2bb8b3ae17a229097f9d2f3b42677415913967eaabf941e6e1e69146ef3f8e6b48d42e1db60c56ce98a8e51738b6aa0214dcda2852b1e1aaf84e6e7fd695df16e1b67f63df89367d6971dcd36e6075eb0f0401a3a267a6da4c24dfe06f99ffe84ef0dba5323b9e64e128e4f64b7953f82c3d40f0e7f09ce32f9e345299ee45920a4b81c396321830bba951d9cef80e6c1dcdac2c47697151827de0a8227608b4141fed5f1c230a165fc2c7663fe0c872e02b1829dbb19fec7018be77a1271abc058b2fb89296da1dca0601fbf63a80c0bf3b6ba526dd72a3134e0d9a7197ea83163275e75ae4bc6ac5f4bedb8671fe15268d6a1df12fb1786246c3fec86ae32e1f9ec46606379872de85fc60f1ffe22b9978b084df804626994d97af79d594184b52ede078b61f77fa81f122e797f8d750721b9915f064955eecc6d588a7abd7442df869281d4581dc1013c2f07f0fdb375001903b99e9fa66cb152f952f17a2f0f4c6758ffb3436610749e17c131a0084a73d9904ceb157a975951c49adaa4c322426d2fdc7d8bf043766b4f21a30a68d8a82181eca87f97bd0c8429e7eae0e8c496388c85ab67ac72a825533f4f38319ad2eec8c7754d1338a209a3d2e0606120068da55e635b96004dd889536ba296ed19ccf73474f7cf8313b6a5dbf8313805fd95ff82d830abede56ea079b44ab7bce7ca5458d8077a65102a999712924de101a41668c95809c1c8c63421d8aed98533e305619f413fdafd71abafcfa840b19c417a67d61db44944c266e220e8e0c8c4301d8349ae0175b6eeca9961e74882bf060f55d79a7a55e904a3381bc4906d1a232315f5e27e1825b77d596f039d8430c21a9713cb0f7c2256f612304182b1e45796580a40feb9a00317f69924dd79ffe852a06bfd77d3ff3368c5a012645c1db990ba0ffb222950e506d50f6c9539116ee5a379cd1420a42ed0fd34886dafcbf0dec0750bb003ef4b568fe4b57a1c40316a8e1366ac36af990f8c55f38555ac741b5c5664f594ca22c2519b7afaf6f21e2eaf28f8e513e656618e8ba4fbc3508ceaa84348e5b993f1b10fc2fa65d53f255cc999b5228c682cc25fa243023d8cdeeaf5d068512f9a9b61882245fd45a42fd7f001dc188c880fbfe40b7417001ef12d9f78f2e7824aee5940f199bbfc5cd6f3d4e6017954ae5f4e1d7b40e71ed484c4652b0d3f289b504879d46ca3808b7fe02998e0b50cc2fd06c33f86261ea440b809ce81012d49e2d0d6ecd86cb142d0c4d49659847d8e0db7c2238f949031bb78a316880471c94679dfb260b3a36400ce0d36dec029be9855118bd1de8c2f221ebf979b201242e20b7ff38f4a5af132849863008bbb78473c367b8608eaa0adb0c96d750331219faacb228b69f46dbe17b410c481fe17622dce82761acd2ef213af428036dce4db4411da64b416002695527107760708918df6e0443b543ed05470f8a97dd5d2c79abf5cb9a41458ae386359f210185e4d1af50b10bf286910b554665d2a66783abd025ce6dd0afeb3f74110416685f5f55b5779434d12e89154d17562b7588f8d42745430b0cb62b0cb3c47428f43e52342bb81aa49de95f49fe495e19093954238233d265d66d126107ecdbe47e00621e4ed42ffd7f783fa411b228aa1ac177d1ecc046f4a73275fc5d76240e8c0f608bcd113ed39afd204ddd72b23790c0caec9417a4907d3b1c141bf0e5ef5a87182115408910324bbac99eae7ea4f974c3d553acd43b4f8188c24d75a1af1546fd6a9b2fccaa39171046ee309a2e2aa8c0125328af4ce47afa4c9271dc0912b30b36c8542464e54b691b3cfdac81b40c6d3f4512223d38d00ce50a11d53718c44463c3252e7fdfc58289151e72f9d1b75feecc751195dc1d7f70c293242f39f283d22dc6ec459d939f76d328b3f689fe10e00278b8cb48ec9d79091be9fc1d48945a669e8c2659acb0a276503402f11cb6eb4b1992b32c2fd0538e68539fcac308cdbabc1a4bfd862158dde0518dbf2e32881d163795ef18b9eeef32aea3f07deded25a707913af8a19d1b7183d9672d8c02aab4b9962a7c34cc1f4af3445ab8a541a1942a0bdd36f8e8cb4ed6a26585085457a373b9c0e0858a48d9d93c324ce7d85ce87caf295bb6de3b47b14534f4e133a99ea3b69449a73d4e1622edccb24bc4c10aed4bca2bcc5e76275456a6f51f7d31b3a705b29595ec027fe0e57d935fec3af748deff1283d0deef895b9467bb0e1fe95ffc63bba4aa7e1399cf2dff80eaf926bfc475ed91ad68361930efa0dbd57b9fc8468efdcddef5ee9d16959b12158b959482fcddeb6c62533c96a776ba527f8901c07b76fd7a076f3c5e9622f1d4773926f5a0655665c9c4b28a5316ad78813af5b6f653341bad923d799d97aafe1cac180e132d9983fdb507191b0be66e6c72ad9e5d038d0278f8336ea1aa2deebea1affe067e235fccc999f1d3ad38e755e641d710a234d5c9c9dd477cb774e2f12b5b046ab78dc6f4bdd3686c39e4ca54f00bb2c133471d349ef7f65a3a7d084eef38fa79b57826803545b577ab1d5cd4313876e859b300deec7a48968c638da5494631c6f3edab80e9811657c874c8c32b6c366d1ac318fc366a3e440bbcb0c329406e9ebdc85f8611f66cca339862366511ecf41b3a8c7edc06414e371643eba311d01266ff4b11df83a3d44180877d9a0296c11f13869f13b07033f18fc647ed4e31c35138d318e9b8be23887cd4719a70326a28cdfb136fba28de110d3e9234e40784b263ed0c3b774b8a50be1484ce503537adfdbd64c705789447d5f3690158475a4f7ee87e2d802750ab8283581551b00ab86cc90abc20d1da340ca9957de6922fd9424efc9c6d5111b05ed59b69d678687b5e4de6d2d05dcd80bbfc1d5c48daa4affab797e5ab40df4804b1ca463ae9dfc63313c241c7dbc8d854a4eca23e01f47d127e7f7b65296a5416fda9885ce48d114f27ad026efb91f2c966c01f28737386b2f46b6cd9b5aea7454df5e5667119751ddea298583388f0dacad8b5acb5617864767bd9a7b2839dabdedf1fcbf571c5d93cca58823df18503499f90abea8a41d1be00cdd5060aaec07e5aff3b29b8753a1d5161b363b0878fb23a96b1f5ab3e12200cd09258de88faafefa07a1dc8da5274bd7de4110f7c30a51d2fb2c3809d791f9e2102ed408fb15689fb4997ff7088ae7ebc84215447c809b06f4ffb6c2f2cfc8c2f5552233e41bff26961d79b5c198b8fcd8497df459caaba1718ba04d8ff91aafa0d2aa989250b5e06946f6a31d7928241e5ecc089371372bdf7b02e7f32a58fa5486f0200000ad839c6ff834e5142b18cc22838d314c43b87b6de9a1e5e40ba1095793251e511e481905420ceae168631e63ec373bcdb77eb32101c0b00a83bafe57b28847ae0fb0db1ecd66b697b00d1ca9352d40dce5be33679f86ba977219b2eda62119463e564acd16cf14624fe3f2bd26974d84a5187d1d4fc8d06f08f8e27f48beae5388b2a7020e7b6556fef95e051b5933b149a0d546b3201c7681323be81316578f740261bd117978f35945f2e6f25aa8281531027ec8055b08f228dc6c5b38011393f3985e8cf0bd07ed155f22861301e8a7cd67e92cced9a8b08027b5edb3a63b456b1ccf116bbb2ab9206a96f62715c99ef28c867972f0e2cd1a01ea87dac4f69b95a4e6a2b57c027b0c9416fc6d7e2a4e584688aacee56781572438cbb441345628dc6e99b860fcb559f76409ca6bbc82968e67684db412b4341950b2a8e6f6b59501be182e72508635d73b2e28272e5a1f152b798383e11e4934de179933304c2f2d3b2659d001db58795039545785560496bbd01935842435ae57d9b971699d765a0484aec18a05c0f27ba9893a0c14c1d7f310cee030a118d0419d6ba9635739532d071febe662c2b50acb63b832c73a6e1506f12175fdbda28a96bd24e048732a9425b2123213382dfb501a9467e90689b6a2f70c82a9b85af1665df16e093c42ff51780c7ff757b017e7be0cf9973a806058bd09906a7ffba130816755a42f0fdd48150de93b36ca4041c04e54d65894183b52a9534aa4848e5e0614632f713c5f883a7ccb79657fd999297b1d42a38d179c123274dfcc9d13bbcc26db9831ededeaeb0c97c1bc09547945cb4146e5f9d60d6b983dfc8a7a9ad9c6debcdaead240f212f1984b53aaba6a7c6c1624b0d61f416ee44c0bc1e5db488ef60b4f53b900bcda9c82ce66d14891b676e43539f3a95ad70442fb1cff014d3c053c1667bb4008893c1043ffea4b03c3a4ebdcb1ae7f75b397b8bf867aac36c7cae813290a1e173f8a3bf7ffe3fc69f32bd1f1e0efc25a7bad9601a2c5ce53a457c2f79d3534c04d46cf4cd16bbc2b95d7368f5a7c11b6fbcf597a7f6e95055fd015d2a2a1c68e25e4a060795d9d2b3b993b28ee56b8be2188d78a2ac9dd8d54f4dc247a206fcddc6910bedbbd8665ea8d069516b0dfaa32e7ccaa0a0c17add8fedb38c31e5574715a2f3e5cd2832d355f7dae50d0a6fe9814f78248880b009502a99616a1c8c475a65d2b0f6ad1a0d3684fe5e0c5fb6441a5dda5c9b6346b44ed25b03de58c507f3956fb02ac241155413b78d0d3c0f54137643909510739be38a962f926084b0b01522aa35781a83e84f70f89677f2a26653a05c00575b437a875cf311d5514b00831e52ca8b7a7e598505f631f34c333338edecfebe6f041b98f69675900d45619e0269b59af076d2a3485ba4d461817d6f5c716868e49cc51e661222913bbcd2713f7763b5bcb35d7713bdc2646db90ab285cb49d58e5aeed345a6d8d59740439f44e12000be562fb0c51ea16103864b0a179417b7f7949ec7463f5640d5f4d5a46f81ae314a49b6bca2c31a354c42a3e1ec1eb8f1cc149064196c97426826f3047122386c8ebaaf8b2abbb9b236778e818dcb6d79cf5b3bd158e1e80ac7369c2acde02121e66d889bb7be48cd678ae8a74ecb95dcde35c1d79b8e9ccb35432b2ad91f07045573467ad7f6bd0936b64fca298f3e91b703e5074a8a992de7836cc6c9235a40107482430ad9c30719c7183867657827090ef041e2290862dabdd63d44248c50906dd67e1bd2bb2d5e25002ba742e268f4a900e0314357c40cb8913b571381fc5b3df696328c142a131ab8fa45a94a2e06a93bfb62a1c31714dee7f2c30031f1c889ad167f9aa77eacfb7303b641c1e57a1b65c02082c4a41ebbb02fb1b240d33cf4ecf9330ccb8609023314d789ac024100b06a85f524e074c7af2f84c1f6644a613ac59192b111fdd3ab27e6d468222ebb88ead33754e9dd5e975acebc83501d4790510c5ef5ecbc5c01dd8b081f87cd3730146bf76f8f94e478e2adc22ef43e823213a6cd307b97ca8f27336ec688c09898f59855d9d53167d7118ea7c356d6029f395455f767ed343c61f94a6751815244a56e945ca08a5d606478d8a00b81aa6d8c01226057b19ecd7e0381b2bb80b57855f16fe79bb445f0a5ec050662b53e1522b30cc8a75253683a8b40251212240641f46b50d8d2a2e7000be64e3df4a5cece9df2c6f5ed1b40f9741e9bf0763af845c6ea142b26f64d8ea85e596c55eab7d66cab97be7dc3cbb9044ecef97191a11df0f2ca08995148745ca9c4385b8e2dbca9bde60119695daccdc1246f7ffd5aaf27a24c2be76b791b52584e1934470149f30010f09fe0e00f453d288ef327b26c0a7e5f1c857efb4d94d776ebad3987702f822e07398285ffb5b781eef65b84f86675a0e42849e41dc86999d9925d2c5cda8d1eda336981159b1b8b8a179da2ece6a9f1290f50b49cb1173c955f33d11e91d0e3e28943b1f0f42cbd0a592abe87773e72133df574f8619a1c89cb34c779061c2b6d396951063a58faeaf4a0ddd84a8ef1e978953dddae162470416cd81456431b6131d1f41d866438bb57143570ce9d9d83f1a1d729fb8e56549f97a99eadfce35ee8c17d2d3419383a9119c8326a8e204dc65d642db2842ffd02244b8b651cf1ef7c042fe1416213ede84a7d3fd58a34257993e65fb05058238c16edd69530a56721f77f3385c749645f91037c1d51ea4cbd0c27da745e815f760621c79649dcdc05437ab246bc12ff154389144bd8707ade87311ed09bbbc98955fcfad7cd0c43e20062024b9416e6f0acb64c7f670616056da7181d022198e4841bd8a07c8f1b13fe5e9b3089902f3873d5e10b410d4efe537cc701fbca11cf5a42d552862bbb01d4cb4ff8a473efc4f37f20348616f062f427ea5e44ca8f813652e178efe9c73014bdebb7a8b22c2a1af23cf21a252d170673f7cb2a2037c509eae537495cec997b8c7edd2d16956a2210fa6c7e9eacfd3ac9f70ffc8c282c0d2c645705bcea406be3072d4e8a7752f1d74e141ee3ab1d41333ef42d2f7c1625d1dd6041dee00d1b7aea1224820e3b32325f33028ccac4b2ee4e91a8dcd78c8763ef2de4d7731917c87272cd6e2868e0bc4c90d8fc3dd01d8143f2caa5438fa8242eff2054a7cb51648065ead0bb497add9b95885c15c4d1ecdd954957c85e861cba57e7dfdd914f1f03c507c39344f0215618a639dc9b663e7e638c5366fceef2bddf74278eeb92ba3c30eecc8afa3d8ee09cb4bc4c4968fafb5654e342be5b0e62f69bab429513efe5413fe7681cb32827767490d6e1bb4946aca02eda3b0efbbc2aa62020b877e322065295ee049574d59b71f01b0e4d8e4ff1c58b8ef4ecaf3a137d5c2aeaac69079bff7181be9d4a3b10aa9e9e5c245092e995296b0770f08b8f08a52f949ed155e8f3b876f5e8457e1de9614c2a066df1fa1ef96f2dd49730394081a97d128ab493469c6c6cd68f95df87944341cd1e17046509f2eb90d3761085314a873d64498b8dc3c3eba1fa51b6ad62b1c6315ce93f0d2f9c1d8f6160bbc6801066ed765a7045f4a33ae9a04ae223c9778396d85d39aa8fc8f3b6c51a84a1173a8c5abeb7a376862b07b54083d38c12097276a0ba738ab799b4076e553b0490cf160b291abe0af05ce83150c00a49c66662956110b6a575e14e51ee5952ecacbca28ef5acf2445e1ae49191e99b17c9639b26abeb59be0b9cc1d79fe50bd657dfa19807bd6ffa6e98e199ff7a6e23feda38ba925388da01aedd6000de4b65ea5db78ad7e3b27fa438baedbd98c7ccc1863aa30369a4c9f14b736d474e9f80a6c45d3e88b85abb0eaa0bceb94760f6fa04a6b064644cf855e6577862529673829b93032b55c5c65e25977f71f11d3f87655398266a44134e89f486061d4e6b408e15a97bab1c77209d0323f04d9c9d711ba1d28008d7804f88ef081cc5c5841292bc88ddf8a6d897de82a55f938b898e4a515b42f7970f13ff260b8e539a54ecfa624ea4a8c2ec1534ec00cfbd09c723c60ab8de78e3f2d0e39317957190f8de478e0b6d2a739bee858f6f55d65300ce598db0f2b541114ff57c6bb4a61d4007d7bac70f678900b2ef119535c1592b810df74551fe4aa2e22b302ca22d3b5c7c64d17fb97a317faa0ab0e3587582cc04aa945e7a3a906a9243ab844fe42ffb889d037c34e5f497a385d6e4461b9afaae8bf03625d946b4e8aa4f1c1736b5cd6de193aa37a06ae7e4f5c934186d6bcd21895c6bd114294a04c6bf2d0b64b52f237c668171c86b859cdc1207f557231b2e8f24c3710b2e2ca28253c1e8643532fe22b5a64ac7671d4384b199835371df124603c321bb9a00ad91e2655a627c5ba5fd48a7f87b7b1eee12865829ee8d0cfcb94932cb5cbc4d820242f05034aa281295ae89aa6174c96c4869bc8391001f4e9028a212ca2fd440d2574283f81a06cda854a3fd6a45863fabb0e70a4e8f63828c38ad9b8391e11c1ad01ea23819041664b882e1f51e8dcf8a4afeaf531dae637ab75356e4ceaa6c705292331f106ebd5b853c966640283025b39ce808ae5734d9d29b03e95195b82d591f7d515650ebb0e1f82b9a37bd681f5caf8bc50627ae17858bea5673caea7b7ff0213cb2203bef568916c4145fca543c8bbb4bff756573a99c92e6eed047862fcca742863e201aefd0b71e9d5ebdd50e590cacc536246d78c0dd10aa343682cd0bf630f3a1f52b861fe5243fde480513a625ff32478c1f34864c019f44134aec444af7aa6dabcf0a3a41b008f34c2ca79c383309258b8603892617381581a39dc012f028f83b0fd003bdec556b302924ee6ce0e0c4912a56da6d3151d270331e81a19de5fd1fd241383afa15c8b6ccfd3a979bc21021ad84d44aaa5e43d345e8bd8c51fd861a8b8cfb955cd8019eff9ecd5cbde8d28f2432054903e8a2dc7d3a20062e60bd31c6ce93da7dac27c1d4e8235d6dd2a650937b43d312b0a064b87d4e5809f4a6a235575890e0b8530908a0fbd9616a3ce558a20c3fa9bdc3ac38784b95a8377b7fcc0b1501d5715f08834af2f4177aef75a8a7a6e9d4e999475f9ed3e18fc345f4b43d0d923da3359dee309687d59eab6faafa54ccf82dc6e575789cd6e035baadb1b42f55fdf60ec426d574a6b9691310f096ce92c87d966323807033c1ccbd677a9d491009243c988281a73ba548c9609d22c65424c45435bff0d989f540841916cda246460d202380a1919436e0da079604bf3a67c82e982ae8668387d94ade5d82c440f864644ee3f06b6946999f1f830a85f4b0d8d456e8e8519483dca40d458daf467afa592b9854ecaa52c0db85ceb342894d29827665033a127c96e1070b6d56b69a6e222f2fcc36bdcfe5f7a2d0d026e21fca342efa2596b412a4818ee16bd0a67c250bbcdc485a9d7d249352b2fdb8c4307c090bda4a12bfd58d10793ae9089907a2db5bafe542c5a238b5e4b8b57284b557d3b46e61e6122c3d8f9d72ce56a50522cfb72eb31298e8be94cdd9f1c6811b102582438f2fda8adc7627a887a2d95b63046462401a9b3472b0b33839eda0a8e20596741a71ebe0e1ac1fac2d5ad60cc709d39ae031341043210860932362768b05bb263280cc7b5b4bc350f5d690f8ac2b2bad43431c9f4985f83ebaf95aea38e042628a9e23bc56b69919b90b36a192dcc5cc4b72cf26f44591a734507afb999696c1611801988be336e15ca8c277bc89ced923ef844e874c34491e1156c62774bcab6c6cf1be9e2098cfe13381776fa438647c44aa70452d48b8289d7d2d29f0c210834eb5ab92fadd2decb575ab9416e6cc825a58b326a24d987d1336e7a63ab561f7d391af95b458348f078d23c6f75994f02afa592bcc21639bbd6d7502caabb62e81181df05e8c76b8c406ea9e56aed7758428b9071d52499569c702970c4b6bfdc1ade2d2d351848f93a06b0171ef263f844249f26df0129d24623589473ec006bfb02122e1d20b7d848d31cfb89bf8d4d7f507fb7b4990f90847d65e9146fc273e0b6cd9781d02d358aa9c0a1a81dce9216f25a7ba582b390079332d1a619c510734b998d3b915fe6625e83b5b6e35ba61d07ad6d496de92b75ffb8d96f10ab7766e596cefd76fbe0b7a52f785dfc39ae097c2cdc36863752e596facc62c38c3b7652bbd9109afbec6294cd17bad27e30df7dd9087d08bd2809766a9781c985431144c3beaae0ecfd899558d04964284eebed33696705aa8713545453ca70875937f29c986dfa2be368165060ddfc17f6462ddda3bcf877f1b72f5a899642f7fbe1cf5ebb61be39852e2d5b0763e68193ee211db7b0923c695736c1bd76c765062d5b7471dfe1cfba40a3244a223a98e721812c5d63c6c4f0b51b3dec2ce286f972517267338c1f008916936fb9a114beafc4a764ce4187f19b741573feabab72defcf8bd89e0546fe8f244be76b9f14bd67ab6e80277edae8e471d49f2b51b5a91703efca7f59c4d1ad71661a98e0f68e9e91640f5b5eb0d4f70fc2763e9c14ff13bed361059f9f0b9555d859066488a53a6bedaf832abbd80844ec85ac546dcab7edb7c56ad7cccba354f43c581be29edab0d5985a1bc578bc0237d821845945c63d39ce3dc69a52e280b13b213bc5651607a7cb12f7a32b53c56a5bd8eb00729893b2355982193e611345e6c8fc79dd804e4501fd62629099ed8416b5d4145aea1a6cae02c4c7bf10dbb1a26c7fe3535b94dd3eaef880e85710d0ad18977298844710ad23a1349dc3a2d3dc8713bc065f2a7e6e8652e8e172d7bc05342f6ec5e7cd90e459325f38878db787b5b60097be028983bae5b668db448b5071198cb42617b1e2118160eaeedea2378bbe6c1664a672b4ffdfedfd992a5bdc39be69242157af1598fbe35ebc74bdef2cf3d749c636240cb641500480af28496052ff4b1172f86897ef25f580c86a3fa9a581fb5219ae640464c30e7e32a65eb0b266c723c2289c3afddca4630119761b941e5f4a7ab28e26b21a95843e010c251556bb7fff0f0258de703b56d12d3356b1ef4993fa709ab86edec48b9bcc5d4d057054c2327e6bc03514929e582116002356069ac3ec2baa620b38d60ab49f6dccfb04a94e8174d481cdaff0d5b900c199462d9dba5468567f23907f7b7d90980e659616c3e7110aa2e13ccb9224080bac0cda9ec6dd1a630cff397451e5cf17748f2ea16d8e93e4cf839bf015b5d504f3b57e3785e0fb1bbf026951511a0c6d373d14dc022c36f3fdb96c8bce069210b12ef3572392e6f305872830f4fce3c06f1d8e2de288f12ac85477616158c4e7d8cc875f7d99674de1ae1c6883e28207431b9577824cad219d27866e8ee06aada1114bd4ad599ec811730a494370c2f18187e4a1fb0a684a59aa2ae7e871333a6ff64f5db8142116dad6e9d7b0be7e761b6054d6938424bd110befee6743909b9d301a14e4982b2d299ac459679a77569f5c64c0f5f23e935398907b966c34589248cc1c4b68db744ca0c683da1b585fc8648507abc7e07e790a70f0f54d986f0c89dbdbd74d4dbeb9260ef7b9e649f26d51fa8343f0af2c2d79a57e2f18327a7ea02438ec04ddf3de23ec7b76393097aeeded9bde3c468cb1a74ba848e97514248481eb2d3a89136847abdb47246787202ce89bb36360167353b42bda449debd3e2a02d10d61a7f55f56898e2641567cf5581efe94fee0bbaff7332ea39a81cdcd4210159fc55d57f8daaae082bb3ca6a7c2bb7c2fc561a0bc08905371c10fc0a430ad3f3f2497a29ef9f4d7f1e835ad9ff31650019241f29b9cb7fe905654833828a12863554c6c2cefe931dd02ab84984572a08e010af963f6c2dd5c4d49603cda4036b3fb1d40d6291183a5991e61285b93ffc18c5cc18e83abeb7c3d12cb103ee50c4b22b23ae0c833ffb2a3d3ce0764163db187164575d4c90a675ad1d31b2e6e2643e87179bedd927a74171c32be03fb437338bd801048e9da72f5af318b52279e94928413f97ddaced1089825cc552de32e34409ae5fba6020d1e88769596febdb1aec2a686e7553ac1aa42d22e6f3c6c7e7618424fd0f4353ab9191d878a274c2763d6d121870ca81bb64cd877ce656fa778b6a0044dce5c9a507a19d217ed706d99e25f51ca25260c659942f01c0d2866adfa9e99b275a70229204292c62dd532b483b644d0dd8c5f1804246cdcbe99980870f97afaa32815b7b0a4fbb0948a048d59f35fdf2a3db0e97cf1ba3c5ad23ea4c8418521bb9da5c3a612c4544e6cd2c47373df9e5b10dcc44987fdc8709c25e789132af86f8ff93935569088e364e582c7e175f18091591c2ef1557984358e9ed6560523b3c424c42c313b2968116bdc9f82c181dd0eeaa4c0199bc74b4bbabfa9dcdf01b8340b9d023926e64dd68569611732a5155561cd73223debbbae11855846c48855fde0d0863224c71c9f4e18694371d485523233a717b3957ac2d52bd11b2823f026b023c7893628cb716b0fc4f20d11adf14c8c1aab80c9c066731ffb8e22a61da26d105e4bc1a73add08d7233e7812d94632946939a321510b1cd19ba45b570df10f41dfc0f0904211fed88f1bb08514a2c4a1b57821f78307e08262753c74bccf67e934c076e593fd001600931aef5127cb60beb42bcbef9e36035ac2553691e54e44c7668427c996a4d68a2296440825dd052ae9214579c6906c774b86bad5d3eda908ac4443080f013ed0efebe7d0f20f54681b6e52153cc7692b28db82fb38d4e8b168b90aa10274668274a3e4c9cf59a91f20f891111ada7c318bbfa86feeb7ffaa5db2b0dbfd328c3d453f92a63715ce6a03dc0a2c6e4fa366e1428298a75b0046b35117d6a73d59b95b1e9a6463eabe9150388ad4f16511ee80846461ae56d58a1dd9ba333cd7e5204c7637bc02eb81d86e5292af50472b13cd10e0bcc3b87ee3cf9f8f2884d9ca98603dde60c278573507462a23a862aa26ac798f6d9e27d84026ad1ac73196fdbe0a66a3a48ea2c23b40b306053da06b438a795b2e22b13d111ea2b0a75e17f9d8994e62d3358f1adf9317da0a9a2830d85aaa52fa737b771b77c95efe3cc827d0c9711e3f3bff9bc584fcffcc5e5a14fe58a8b6a27fbe07911bfe23d8875fceacd768ae3ae8cfcef0c9a6427dc0c1bacc2810dfe2d954b45f4cf070cb38d301e0cfa917edcf96c33e8af1aa9e60261a5f5513fcb51cd73a7290557daeacb93129a83ea1c1c176b49c2dcce70dc28bd6eab1b06ef86b5cdd7d21a9105dbe59aefcbd505fbfb9a64c38ad75cbee79fb302ef4af528168d8a056d1c8e55294bf376af7781f1111f7db507ac3a284e0aaa2639e54e3e2bd9a28f4b680ef4ce101a7bf4d876fd6a3b4ff5f047ce7f2c40b7d7714d75c62de0ecc84f21b1deaf8795cb6963b34738c8007887a4ce1828e920bb6b28b885083261f6cf38901fa3514d4294a8de561fb88b21605a1ae047f046504fa5c9f4956a98e9e4179399dea9170b3b7a6c9ae6faa0eb4f998a7dc4c4386a06213141f5b6252be7f0e401b0563039a79c3d6d42bf6cbd334366771665bcf28e6abc051c873243d283d900eb3da8d243d0d285cc220af3eabc465e415b295542745fdcd42b7113cb4c936e2359061ca2e813815d33a04502792ab953e0962daeb32cc3ee6814498aff7b5af7686ff4f3b1a3bc1386daa1b05408597f22a2c0a59c0da0b20cf1456ba32eb7fd850bb64429b8671c19dfdce0b159b0950474e02685eac871d52d60e33d25a7d2cb369587c1b8d147bec2c2b7d6d0e71b45037be9d392df196ccf839e021b3abcdba538efac37574ac56376da4629b5196d44b840e7557bf764b94546cd523fbc0544af4759a7561d8fa651db72c3bd16c59028ca0a5b51b213c696c97eb692e977438259f5cef678e104a09d48cb0a9512e8fe70d26130aa278ffff1906f240b241d6703ad69506441c964d3d63e490fae1aaf418246b5d6764b17e262c563be67588fa57d9f22903056cc6a865af857d228781238b5732647af0635ed133121f710d8b1e1616f1fea05b5ff0112844c18472c262381e6d3661396797ea3f225451fb43f73f76755044bd0180ec40424795c22551bb25b4728b4fc5b176cc20cf341579e4f3153f4cffee1ea18875d76234fa77ee231b20ca8eb8c36bcca8993c5384c72c9ae54f3f83e9d30e3059d8d0f2da08f454217337caec8fa1c0af17b1b3c47e47bd2986b4880332fd4fae05918cca01e12020cac814a069f98fe2e14da14ddfea6be27a282d2bc60671439a12306fd9945fc5a1c31ae4c66049c883bec70a059a42442349cdb4bb406a32d5ec0fe7cbd1d82d8652a85017cee5b0c844dd572bff36eb9b07b04210660524e1ecd90f3d082c8eed4eea446a43ece7e9d024b602f02b689f5a72874ea86f08be1e4a1c85bd662e606559fd059a67942757672b019e518a9157a564b2e9022c68f165229778159249888aa85492e0c651613ca1f4fd4d4e2ec6f48e61e49d8699a21e3aff671e09259785f1689638abe20360f73eb44b4d18831c3298081dee1fcfd80d7309257125dc9c9871bff5c7959ce2d6375346f772429e61f7a7dd7ed8f6f9bf322a9f5e7ab3f67320fcf775429a75af88eb6fdefc3a0e086964d250f770c6505361cc145828dc8e0fc5fec74b8f0859c4b239aafb87e0cef567b8600d7ae36d3ae2f74821f53dfbae5b077120a0af8f74231ef7ef79818a4264297fe8aa8e4fa1822189f2654cd5909041120c3f0b515f6c59cfb856acbdca8e6421c1446c682258d7dd6c70569d82012d604149ca163afbd0582544f3368f25ce6717d3e98a22ef6a52911b64e4c4e65191393914a2bc77c6c2e88e880cf1cd1ceecf5df5d12cfe872aa65fcd8b45d67f33bcf53aea9ff11ed70a6c47fc892bd1fdf370a25ab1666cad6a18d694cc60dd823cb9b37fcc3aaa01301e8f40617e7ab5905b6d0b346442701d64dc254036a1d675768915d0bdbf9a316e89bc063124ba500148623c7f1dc1e7fa31a024444518f2453ec60d3e3718697336de7eef26bdbcd3d18b1dc0d92bd5c72e5e26a790f2641756b7f3ef7c43c3d3eb50475e436ae586e0f0c17e01c349d2e84bbfbcce17fa253f7a3d9f13f87231e3377760473f72ad62a109a4c05a6965950b1857fc1f1c83ab5682ca5d166baf8cf817fcee050ef138974d803462b2f21406df191d06ef7bc3749947f9d3a01bead17444ec79db2951132f0c5cae574d1bf7562fc0ff91fc9f46552714fa8b8530f9d51d03025e9a9112819c65a12992cbf74f5a116684011bd57ce249e6250f13399fcd415d054f65d2346431a0ae7eaf29f91f70ad98e174f77c370d082635ead62ab7188257e43100a73f3761e3fd42a6db23dde509ea58c1cc45014da470da2d0cfd42642ac4cea32e09582e7476589d3c9b1f05ae45b34226b20247ca36c1b3684e1f960d5598fef29cd1e446bbd29e8693313be27f27c7dc851e607ccfe2a83523e2640fc462e8718c46be61a3a0f8eac4d1cf3cac9f1b7d42b20b9dcd69114c16ea75c59e849afdb5f8ac1454e8984b352077f834538ebdd607bad33243dc43627fd56e4b95fef9b0db5012507c70d4cd05c4b0644a4a2989f36c2786bf2e7138ef1d9f4acfd8cd64a5f7c07e0bbba1e3cd2d432db1a7919948e58ac4d02d7f973cb3a1da68bdf339c2822baa3b5542f29b281ef37297f4db23b96bd7f6ca253a28f15af26e302384bfca4039fa89ca0362ea5ab4ed1a082d239a53bca1aa00f8bbc846e07ad0b2223ea04bd492606daa0e0240ac4a45d694f4cff2b98c29b6d5777d49b35f7d8b4248d7533573d2f856077ed7e2af460d0d3f46655d94a4bc8c6e102ff253909429e607c4946d46bf7b2eb1ef718a245b32941e8e94ebaf2d86412c561549ced05ad1a67b47f8799f211515805580d41a384494165e480f052d128f186b930d5c0697d7ac9be852df6098e1fe40d54a8e06b71681d5dd886ed7821f873e609aa2c8d6dc5fee11deac1da18ddefce5d5984d1860fa799985e07a01b7d5d3632c24009863d405ef8b19de4e9214126714f04073f0dab82a5e32d9c084187d16e93db35a6c577e6f1ca96199fa4f209b2dd548e1e7412d2146920937f044ec4e07567aa7f170d3d22382ff2cb0c841bebdf565491e5c3e4421ab5ffd9640d927d10bb14b2a31f8a827f5e29a6a8dbc11381fe26e2651974cd0df383d80b19cb1e922e75cf65dd973476902e6843d9a6766f74ea1f4d0ff67a0a2348c8e10c9f6037d12a087eece0583e9ba7d97d7ec421c97211133364fad0348a38e85054c3ac017f01f4bc7093db2a8828605096473f38d6736e1cf69f781022950f103021495c8e950a97ca7da8bcc93194914006145135a7fbbe28cb2b1c6a0fd5da15899d43113c7d6c641caac053627418fba7954222cfa59f6e87d5edc9b4919c4136c99b8b2c432ccba2a3bf5d626bbbed4d532921763e69659a7171cf8fae2cb30a86458c3eb4fe7651695404e1044dcd55413712cfe80b9d97ab622d5965abee04fa85f99e1ae92af0746ff7b86e2167fafbf18deaadfbc82c41a4211d36c6d079c998b754858cd0d94cdbae933fcae35b5532c2766a5fc14123c0e23cd344c5a28c5f74d683e429cbfe146fca72473a4388da00f95a8a98f74eb5c090f0b6f3b1a4ba2df4f8b8c2c17539957a12bb6be19f80813814b6508515a10a6a00ba0f23644520630541ceeec537f0c2bb2669c598a0f8008cc6aecbcba4d89306cb2a6885e62c75c4d7361f1957ab56c9e8eb042b608b15de00b86a0bfd73050acf7d2e8d23a3be037aee778f5e2ae2a892df36fcd5a41251ef71667ecd336424b48d06fb8f00fa88966c72610813fd84b9c03fff437893241295f87cda2e2803cbd215b29fd23bcd54e3ff86b6a012a5998524bcf9673fabd7a5aae3df6ed660978fca7543b86e35570a1211b938722d17f31f161e344f7be2b522f6c6620ff61e111323fe61d13dee240329e9f7b7576ed01a560086d416ec6f5cc404ce3768d021a1458370405d6d7ff70c13c3d60ba41f21a17de241905acd18b5d28e63fadd37509c18b8361e0fc971be6ed51ee4de2a6adb2a2afacaa43e32933443c6928a24f76eac7fa547232c6828ad01ca8e80e4dfc675085d223c48a0ba7199ff69bdec89f5ad0e734fa032d2b8a4dc63ae16a07add9acf81beda718f5de5487aa84ccde4e300809a0d1f502179566e114c13fdec26cd4eed858387b87b4ad1901382d15db4d30314effa6c63459c8d016314ba4c9ffcdd26cb806415e5efefd32463e7c4d56d0acbe6170f72789e5acbedb8f6d4561fde20f7bb5120225eb4b2ac98d1ba22e7a90dad3d3d012b4daa3699a55bda8db8fddf45e7d4a584bbc111713090f8e830636c6e6007df4c9828cadd93ca2848c9240ae6709518c48bd65148e0e21c654bf6d6751cf23241306ba2283aae3099e9415991affdabf67b1e4bd88495dec3cbc3eb13fd6f2e242ecc56f4e62048bec880174b23040e8e7b52141424f8cb88d5d1f91890c61dbfc4f8d69d9208fbe662b36b0db2dda30a232f2e805c2fd1feba65183998d5b69910e7db7885b7c9de13b9f91f4e3a33b8be723a2d58e18cdc11a54ee506fd83a6c76e1f497e743972d0d78c466c909ee15decb55e24dd4f9d6ca77830885ef1535f79e58d1cfc4e5440338e1fb18c03cdbc24718aee180b2290b545a5b7cedd025f79b955738833f12a7a4a9b7dbbf0996fcb51a0072002eab143f4ba79d44c797c4284ad984e5da2828c9747a94b8d9fc8ee3e5f07f4fc5293bd3d97d39bdc4d71f1708897a389887d5f4f8cc966c60110f3be08b06774fc82b8369bfc9ed7d9a4c20fa5a76290480608137554c86f431f5d4c710df1ee11786d1548451a1d97af93370f81c654be5a84b7c1e085404c91069f03068cd4df29920becf0654c8be5f06ce91337a2b03bf730032d78d6d11c00f93824d5f44de8e2eac15a5ebe40dce76903bb7913071d7ee514f80787e23aa4813d738a1b724079502a8f57339b86febc1ebb29565783951a3f898268e0e1fc098338b924b1ae91dd58cdb9dd24140a0494132a3e0518037ad2631542809e9141cc151dc7e9989c8320d0bccaa07c71990eee5294a0a58d2deef7fc68b66f3876c969c80c55cc86675f96576ad7377abb704a786dc3cfb409db9198001e8b2dc1395a7188d39ab6e5693af8f656f77ef9334ecee14bbf98be763007444de1aa26218b5af1350f23c70f5ab44bfabeef23518cff471684800eef57b22209a094032a073f8a7892275ff77ee27416b325b34dec52a61df73b8b954eda104e4a09d85b08adbde6a01e51375f952c66edc13cffce7991a35469eb33e15edbb5e273d9fca93e3c7d859f7b5c58c18339e14b66d949d257a98f44b6e97b124f5b035864232c8a5c48731f9d73fc45de54e6be314ce1f0d98212816d7bcfa81a6838960f0e3de3fcf7563149dee9a0f335f005e2cd9fd7a6368b80820ce0c09bfa28d25173fbfd8de8224902001022b1c096c67f1e2d807a5a59ed21918470514436ceea27d25bb17f600122e8d7a8628881becc21a9e341db577886a71d17e25727141d4caf76f7d65726d131b2b70d5a765a2a407da2ffb1224b80209d7be72ea4e86636996e712dcd912251710a08cb2a54acdcbe5c45c3146c89eae0462464bc683bb77bb339d89af791ec91680700248df16ffc054722649abff22667f510b3498b73517a251e358bec101146dbe419891f6aea7c261e17d4830d4056b8f7fc4bcd9e2d1cc91d3f1e664ed4ffd613409bf85f39b2e483755f0b0cc922a8656bdc82e374ba54717479f3be3e88f79419d05332ed69910ee2d94daa2dffd3648bbf5793992884db861b7d9835508bd53018957d72c30666e817276315f45c354a8741f6206020cf723f374e9d4ef430ade860f7a5f5ad8f0fb9ce1f0b37253fa6bbb1ca80429346624c6181e14ef307457c6ee03982aaf180b6fb02628c2a70f0e7f124093b346cf84afd7b7d15ad44754493c7ee1fd60f5968051bbb89225b7b6a173955dc1d15f601ccdc87e55bff853a9961cacf9d9889842000aec8ce84b89e901912b38e217b56064341c0d375e49d00495049389581dfbda17020f4403abec0cceb74f960faa1030bcb86653dbd154838384120e4cb211a315ca1da642678a328c351fe0cc6a3b8df7b70871ae2c090f72da838fc4e29daa5e2adad4eee1fafd3eed26782dec9fbc1c01360ca751f7da202e41204858f4f928c55e34bca9a9ff1b408063fbd7044e34ef1491dc0fad3442c7799f0441951bb9d1e79eedcdfe65c1d93829979fb00a2cbc2b9f227f601764a231b8497b79e62285203a2f06b03cfb113ae089ee2eecc2dca0749f705f259e3c9801c03ad5255ab772994a34db5b464b7feb53540abb52ae2abc7fabfa90af04e924b1eac17a6c6e996d6315ec8ebba72a96abaeffc0bf5f1c892f058e1b412e2ecc20c9dfb7cc439099f98f6514e4f4a0d4f4d3720e8e5c7583af8b92da7d4c28800415297d73a5baae81cef339297c4c482b0471e8a7ee74cc10efec988b1b7783b7cb7167eca1dc6f27173e516cbcfc1d4433e7471f00d2bf236e497d28ecfe87ddee8129ebebff21e94d20d9fc29607f1de89f9df991de8aac71b7c872a45fda9c9407117ee36fe119687d862ba9b1d5cd552073247e367b21658ef3ead6dd60b3de67334edbec630815ed6ced8ff2ad3afd2f646a235e470b828ce7276c7f044f6bc9a6b84582232c701907f9cfc2ad37066c5e3ea64ca61671e20fab290a930c08aa0c5acb4061acdb2944d379b1ff41235185708001a4d050ea34d711362548e0881b2e50c7a423e71c09267cbbfde84c5b38319e17b6237ac14f175557bd5c7ffa71e5a7aceaed77700cce76242bab5c676a6bb759ed6c2c217fccdf01168e92b448aa265d09e82ee39589f93e00388ad65712d1d8fda697429a753b99e244e0e64d97ebc010b0d65dfb9b85d5c0bad261d761143fb6633a66edd4bd4e72e16512dbf4195af84eadb689714ea480baae261218ac8f4791479be0f7bacd9aca58f654af31bda89d5e79a4645638deef0d46eb8d0f0d21445eb45b3d815beaef8be9a1b0f5114a6c7ceab2a735a7eed1f62a02456b5aaebfced217d515a55f980c218ecadf0771890e24618b627a91d9d75eae61f5bf3f487bd9a68d0119864d6fe7eefe449fd07394187340433baf4e262ce571ba5d1852e0491b330f8a907648192e31c09fda2dae4d1b24d63cf666c0774698a4b9aafd84fff2670f83dd1992669d6cc5443f993745981992e837d2c59fe661ef77b94f2025f8c2f449957123c343a567e8275304ebe58d36a0c69e7c9070d14c0edb5db66c2e8a549ff8db1a64d67d32d18c82b8ccbd3b7597deb4ea29589208ecaaad40c30f167aace242bc8356704d0d3b775a66ecd640ff0f94fd772fb7fd0beb742561a158e79f6586b329da65b2e6f8e2102e6b64f2d4d5a6605184b6be2b857ea6e45515d17344780f2ea291b471d4b8c05ae21533cf0699b1b030e3892e7596b370127ed65d1ebf80fe47fc3baaef240a61af0bd5131836d4de92007311dd6b0cb10d92e2b05c6c943fcae9792a3e70d58eab19a89e206086f13f808a963fd3f4ada42b0cc3d50066e66b9a1393f89741df8e30251811d7215044dc45c23f780aa6d0c4271463108150c3c69aad4a97618cbe9917e2e82e29d2f57703b902888240ea38a2ab6abcfceb1984c2c3625d1ea8283a7c194a17a71319a5cd7efb313665cac0baa5fc91aac3dd8906db85b5084c9bba32f91ae8921a929ed9eb0a5f3470e0242f70a5abdd26017ede3c92ce3870252a361206324aeb1603daf016464270e5a0c8b9f63b46725cbd9ce8b20bcf317924ecf098a7fbb47c765ac9d745c64ac719691f13b32c1e50b8493f0b24ea616017063289b4344001c61573ead0ba550a9f3310d8c5a2ab64a7fc41ef9f1d2f269c1ceb2f47302cad0d9939db26a11db7cd4ca17bea6c28ee1bfa0a2cd88e1ed868013268fcd697f818a5f5b361957df573f7a935fa82023ac9e30c2c5d218edc72b9863e89fa0a083c30e2846fce84d59ca5aeed217e7ae524b29c0eb6af3b07a81366c090f614e197e19f5f47237f056f84a596ac13d9e6e307c9b1954be0bfcc1a78c5a78de4da327023463d71707929592a3d35143dc849972fc9dd6017533939a40d740270a5321566e666cc20f3532a86a8200e8cbc4babbeceb300d2434f3c525cc41fa8d49d5064c0815a94e247a2b4cc28dbded8ea078e2ea85a44507228d2fe1a7fd862c173662ae4a3b5b1f9d05276d2abd118c9f3848b9193bf9cbbbc1997eed5ba98bd924990a4a56048246e057505cf84a3684f9bd661338ea81fec30d50be4ccf1b36f4ba3841d3285d691a8178652020dc3006a87a16c1088617c3d62f86a96920e045a78883c16538e7448b35abbdc17d147551c2bd4022f84e92149234976e610d5ae032ef3148384ff9196dd9ec7457b3b5cda904206ac3bc376842a52764c156d850405557d43ea0b1b5b3a1940610b82a9c05e2ee4daab7884d18b60617ed010742fc479c49ac338c729c19c86f0517e1e3c68d4faf08cbec1eec372b136de459b61a525901833899c14ccf27b5705303f6f49e79e94f740dde241973179f479cd351bb701a8cf044bc2f9bf57f468806555b38c9e55eefd437acc8b1cd9b2ecfd9ba2f46f77fa7378e218256ad2e9ad40f509430220ecc6ab6f675cd1c28fef0e8c99d5f63dfc291527724786d1cac26b68ba629e917a7cdb7398a754632fe540b07d1d490c233f4a20896faedcd07d0e69565cc281962f3e6b05486000cec5d4132e809b3e759b547e0a005557aeb09d5e87727d812a797aac86953d71ecacf29730dc3cb24f408c9bb6970f168cdd9e63c0969c80babcb1e808da469069c6a5e1ee015987f04abd7417df1633afc9d0df47f9e563783d0d4e69ff43f36613fee40eaa1f8b5649b756673c59707e316f51fd378694391a746a22c72c401ba6b2445bab824f00f69dc9de8e7b8ba115d80e8f4029d8d8c6a7ecc94daf5924761f0fc00921fd6dd492ec52d21e85205c2dfda72ed09acab46db2422a94711989b394dae81c2e604633e1028de65e01a12fdd6b5e2e4f2c1e58e22c0304c45b9a9490e12b43381a32a25b4f34cc87ceed2621fb45923420193481fbd050ac93eda9982fd0fcce1b332c88041fd41e88859f04520e6bc78b63120629a0e3a5f9ed1702587b00071480242e44a007e911d3056e271bcafd03cb94146bba9c5ded8b29711af054d402e023feff6bb498ca1324c01bc223e859a988b3e21f1d9ad1bd8a7b8b82593240f0464641a6a586b9d2d4c93a2f47752ace9e2ad5b0298e33c4bf96f208045c00e3e8b63b6ea41efe851070f99b65e375e9d0f4975f3bd4d22baf4f2e1f8bda2371964bf0cdb724cd7a8c4a1a5157c2e8254d72d92c7b6adb48d5ce64a6f21b335541930abb681f9529118196047276f3a876e1b9c2a50912d2f3ab3471ccc30762bf0c3f0c9cfb52a57878ddcf2494813ccbfb0fcfc1fef336feced1abf5a1acf791fd69948d8f9c2dfaa41e621726306ce04a8e5b16e43cfd1aace7fd45730f14d324417c7c40fcee22240308ecd8c065f5dab86ab83b645a56f5666d209469086fa570ca3eb2e3ab4c947d69dd44ed13fa55aecd71a692c978642628c3b5424bba500ffcf28cb721fcff08fe8c573dd97164dfcc3048207f66e872e0d6b2fc8e013d789631e3505a5ba684311c1439bdbc2c4ad852b4cc0ce91fe6302d9329321aaebd480e4faf2539b7f11a569396f56aee7c6a8825501af023694dede57f995809fcfac82c9ca21edffe009a8ea344574f778000fa28f429778e8ced69fc830e0b0c73b760dd1909ec36ce2e9856ab43eb38f6d954f15d567fa7b62bf8622c57871d73f23d0a647420e548eed81849c1b1815b40fbdecaf095d57d5956ed28a159c5497790de88b69f78b51bc63034b15515f94128bc9133b3c687123cfad3f80103710d22be745193d1e32acfe6803fbf7d014219cfea985683d69d57b2b90abc55eb7ef64214f3155b37f253138535a6e2a7c2e8a22f6e22f4fa1659e4be99dbf4e97225acc60944b48b37ea7e55953eea273ca895f7b1b6fe2176ea71d73fd8529e6799e0e9b1937d4654e77bf1dd2e18d7f2b3ef644b23517bb34cad048aa2ba3d27faa725d5ba1fa008fdb272f77913b6f43a789210ca5c7980969eeebc18de0cb23369fe57f1ef99ede6ccbd342022652a159e1211bd0fbf10c931997fe18decac6bde0979fbf17a6c94675e586483a0fcdd535dde3bca7a19a0c9dddffb0617927b7ff28a6f619c4388ad19549063376292146df6f4203f8031c9897794b1381e44a822f180722c2781f40aeb4e61759582f42636667af96682ee9ad994f73475cd5a95230fe502488d9ecf5853416b1eb223e5b5d959778c7e3e7c049787f32f3d2955269cc210dc5a7b5ce683118566106985882e5bd62a6efca0e2f27b229e0b0e75508d46c6293ba9b2d79b6894ecc5a7b1954650a5cf53c4c309a3cee3c3df3099ebd80441bf4bcb69a824e0bc60c9bdfff28e6173ab5da911e7c4d15eac1effe81c0e1b570a50b5f7f432f48124a1a6016044ce33d511c292452f9d508c8f72ed044b46c4dde9dc52f4549d944d620c03a3887596c6b4f5fc261082498f595e0de231bc61cd9e989a1948721da1e589345a5698981ed959d0ef7cf811dbb740b07475bc5d1d2beb3bd20c6928e68772dce4ea5dc38f2048f8c149c3195a83020a1570317978afd6c8f3b65d432448b23b0e67c3642f29ed9acb145108eec8f87e831d324cd8e07bb790540c5f3b3001b8b60d38cdfb8da403b1de387584e1d537c8d03c2eda837b0eee7086aad26097f0964ee4f7ed84c48acb6f6b5a1a17f2a4e65a93bc42d4f210843166644366baed011bc4ebce8f39c23e026fe141d792ae41b7e087492883983a4ce6fa9592a92b01c7589e8d5c0d26e8e017f983dabfa9aa54b033f986cb2561b7a9f1bbd28ce7030fe21670335dbb18538fc569a6d8c26612953001d9ff1d7f2796777203f1a701eaea00b3171697a13768a44dc14c0a339df20c124717343169742eb56f25489515f0729c4c99cee8f64f9f48eb95af8e9d1aade340dfa47489958400e2830b0951d5c6d4cda29da882841c04437ad833d97d82f146a9f365a44df1f0a5cff66cf72f3482f76691676a3542be3b0dc791ca4a39df39e96e29e872689bde07f2d001c5bef8247927d9d487ace8156a43054a74abe1e4ee8d19c46e918ab6119ee5bb1727a8cb47ca37dc5d36050f999040a95bc1702594d554fa684c28d6677f366d4e777e3751fbb9662fef840a7eac45bee1962fe085b6cd5705bd7c6f003494950a32a183a8d9ee4bc4a4702a0d5648fc6e9bff9d2ca30301349497d0c2461721db9542a5bfe825015d8e5ba259cb06266581f94896e532ff3fb8e87c76c81b42bbf3d94af92b36b460cd92c0e791c95d996ebeb32a9672f283099484623afac60f73a0ede4e256a1dc6df6e5a8e741a1876324a2e22254a2d6f2b724b86929335c7089f3ca9d17037a6d836d69c9b5a8a4aca0b4edfda9892b962d807cea1c439324c1bb8959fec5732666fd7a5f7b69eb19443d7ba11ab62ede751ee155a2a218f30cf13718faa0eef3f538e2f33f4890616225652b305bf4430eb3b31efb0794c7c0090653df6c3ec8f22e1bcfa128d927277c35f5b330e229826f766ef93a14ce2b3c306a6239339c2151384444d19437067c47ab0b8f09e2dffcc31daed5e0247cede14db87a48f9b82ff8acb14307554e67c3bc0cb0d7c9d1d97b4e657a6d11ab00f3d3867f93daddc659048f90b8bb9365a79ee05001ec5369fb6d00dbfec7db0d0ae1e559e2bf4a29f4f19eea507ce1110948c1e9bbc396c30055a3673899593bf27a69e9b8bd12e4148989af1add1ef9972dbaf3c19b3dc9f616f36dfcd34d0dca143ecc923cc16ee05f5c5861d8ffe89892f450d2927fa62b416273b7987a361ba3739bb1477d528d21abf98cb0a8467476d0756fce2b3e40c8d2ccc285f67b299d7d46f228040c32f304c688d01c67e0cae4b5786f0ca5aa52e6f312d0ee9a15feea3d290dc2ad59c97f3db39220dd1b58291bb99610f2fc34f4ff44f56ac3e3a65184572d1d4cf206e8e9ab6726231b6330328a6883c9618645ca3bf06cd2cebff10391117178203e6b3d6a03ed93cf26e0c8c700e0327eded34f473bfde7d97c31e04c4d5ce3d307f6aaf2acfd7d19c5d34c24c5dc9fe1512bfaa67b326527f7b37dd3bde6d7d58248a1ad6ea465468be95072ee3855f92e40bab3cab122a0c4ea34140c066bfb6cc70ab091061423712789593db376786af79c4481f4b34932a77c1181745c81461e44b57778c887ce28809e1b42147ac1383a48896ab5b6acc16d38c67abbdefd74ce70b18aaa60ff07a78020864d7b56224cf8600f92ccf39220dd1b582916342a61b4eea9c5f7ef593c2e5a9dce490066baef8bd6b0cd2f6237deb94e4e428f2726c67e841cf617a33fb79cdf0e6b140bfe350072b73d727065ebae7011a8da948bac7c73223042d2adf210945fccfb03b2e8acf8555ddd9f9efa174a04afd96a703c9e31deed1920877323ecf36f2a6a835fca033c970dfeaf3b35768394827c5e25801ec37f76f24ebd1f5ae54469279a2896ffb618fc28d10069413e1a9190ae42fd74528ee75d8b7711abd25a305dd1b0260406d07fd8240ecaad612e521f479f55a20f951c9471940c7e61825c99f758ce95ce6457d1455e90c17531baacce11796f23fc405a0733b39953ceec7f0baf088005ce2e6a1a3653cb2468ce033a4a4c31b8771d1925f786ecd3bc98afea23a1fc9b51da33e1de92139375ff8211a6fd12bbcc94203034c555c5508ea728b67413f04fe523574604d28a68a5ad48c514d6ff310553f1db5e7db154da6c6570afe112db4b84868cf4ccbf0860f75ca9ca25f00fd77118ec89e1f9c2a6490242e310e69eb865bf6750c62c77e8ec96bbb15770c8236d84a302feb52beca12be7388a72427d5ee86d6fb16adaa98c3359d707126925a8469dff1805d29c8c1cfc65e27fc7afccea150165c3f3684ff3abe93040e479a4945f8845b015a150b00bdb8caa8bb0693e34a438954ec8e0945252c687d475ffb1f80a6ed94f502854dea6a37db9d65b9be428ded687a6e0cc4f84b669a5e7b4416170dc4e9e686f1b9799e0d8a0325b9f8ce39b4e898e86926c1b4ccb51c23607dd83b7a3e18adfd0e68697202aa1d51721d4e4777dcf13f1d3c971e40026938c2707084db095187810123b669f383bb6032510dcabd49cc0a7e04f5aac7c026bef1c1f9222a6665630212810f49da702c322696a17dde5abde9301396625ea1e44707851e8d8b9d9607d39c87f914ca5f9bd00d0dc419ee0ba46b7c5abb1d83077a445e383b13d625a092e8aa3955d393e030ff45913be6887eb8c4fd0ed815da6a2159e77b7550f9a2b17d52169242b9797f2ae69a986d59323cee2228095ee378c54822e104fad7717cd43883a8d3e9f134b7edc26a27528d8ede873246439c2a93575280457fa453b164717d4c7239d18804768f566917eb14c0154ed020af5e5655d300ed24a07d28e18257f64caf7b0dac85b482be946e3c72341cc14fd5dc6dc63d736870d9fa1902d41a303621bc2afbd08956128846b74ceef88bc84ca45876021bc5464c10130175172b92f1b76231c7e9384ecbdf796524a99a4940178067706ef052f84734a930a02a54aac8a97346b523bc6ac88e00b3da1832753a8286285128e5a7812a507fcaf77fdd72a2b4883af094f428a3021e4c8891529280f5594546192668def18b3b2829522255861058512acb83bc6ac0459a314c687342b20f68810179008a11243971c70a02ca822a44a0a693255baa24a0969d6548162673bc6aa8081c90006fbd47c9f0f5310712b7c285364850f618658e1c312265841bd35311f8af0018b3d4283060d9aeac3931dbdec18eb010a7b53fee0afdf0206e6095dbb7ef3357b66cf7c0cdac824cbec48b738bd27625488d832a96801428a9831307440494d0e6960986249540aa63099c2c3cd5ff672e6b216b28c264d61614a0c4f984ad20ef353232ebe179f6085fcdd4b8504fbde7befbd374c4eed18a342444c6c8a9a5d778c4d39d3c3162aa11a080948f1918278f0883f3507b6fc191b9e3ef383a4d458124d2985c8b62cde98cc355f5913d9bfbc77fd6f643c1b82284f9b466162d30ce36b6b0b241baa94995282982a8068932955c829503bef189bc2d405e60218ec53e2fb923c1d794904894d29e26534344111030f452041840a3a486142ca982ccbb22c3b42068dcb9318285e808cc1b12ceb0163dcad10d3746982099a294680f09283941aa4243da5a4b02045862731af7701910394233151b44059628cbb90811d6e58220463b4a449a23844391325cd939818941df6b6630c8a92a83ddf5b2287531271b0f581fda15b1ff85b9bc3293ad3e73ffe53025130fb0ffbbe492e0212e88748b0ef5fa926c1ea381510ca295bbebf954edfea56042450eb03fb0e731667b29c5172d298dcf1c996f5e77fe0f347fd49e7dfaba7aedfcaa144615567ef896842f0f101fdfa1ff8d7cf513f761fb43ea83fecd7568efbd8470eac8d80ae8ede23bf95237acf1011100940b1d3d1b23a87fcb863886af7ef43020673b966f5907072ff4d15a5016402bac42f44c490d44cd99c4e22311e80c478388ab1200496d21bf6fc2895d43a9d06159071c2b48b622a28b2a7d725cf77d9cf58b2f6716b2fff6a3788caad7632329ad9b8f76547e3a5ae0606040cf6c5be6ffac4e933df6a8c2db6d8628b2db68faf0eb238f419f623c5d32768fec5f75a5b2ba5ee73d2d0bf3ec6189c3f3f7641f3dd9f26b1c548a5044a428248d2972200ec184b7292a4e463cedec7e37d3cde7cd52a46377fd9cb39a359966519959de92bb8e9cb5ed2d1a5d40b2c662fb8884887234e78c195353b3ce9b0a4490a9a40c9b22ccbaa0a2688819035406a302a13842a6932439324576c93169ac070a5e9f5aea42245b1a42027ccdb044d0a4b530c69e284d7a3264094b0d4044b90a5a658132e9bee186b9265c6909e90c844b1c5d9c4040d93225e30c617e32018e326449a185d6902778c2145417272c39473cbcff45b37b694d47bb0620506b3e25971b9aac400dd617126468f31c8165d95fb0b723a7ced9b776431c9da67cfe197f7cc2bef6f3cbb7b8ed3dc9e52b61c3009f2806dc901d86f60e8dadbf621cfdebee973f35bfe2df5db8df72b30fcbdfa18be026f3c1c9cf7e11b477b600346255c98f774cd17c6da4b2d63d4f763f896d9a83995c1165ddbbdf75e7c6374da5107ddc7dbbd110c3dd833ce38e38c334e8f05597b5a238740b7be3152a743b6e8f2a044fbf2f35690a1605ec54a553ab14939a73ba5b5cad82c27ff7632bc26396a8f498e96871cbfa6bac9f946b59ae1e9137aad3a628fe108db5d8b01ec75a595ee3ad145a5434e9f3acf7c3975a7765e4f070bc2235d2f07c7a92fba88df63d32842b4628cb10db1906f51dc123ac1a11e42af3d9be4d2d46174dad303ea9247848a50d29d34c04bcaf263b4b65a5bf1520b1564f9f3f5eea5204beaae3d2959be87030f1878698bae942a620ca305e813b4a1d4e66717124ddf9d6c80d2eb07c6ecd140b9552990c52473efdd077620076ee07687e5703909b2ba93bfd83122073ba20bf9fb05a3c5f4e15e7bef79793ee4306f0ecbb089350f57535665ef915dc6817277208b494ea538fff13caf878d83317db2c79fbd7f039cfc6b6cdf384ef3f0802ec1ec9257daf5c3d7377f6a784f658d20df67b5905937e4398f28f197457a58ad6a90c524d7d81139d8bebea794c30805c205a60ff7b5e61e42218fd7960f983e97d3616cea645c2d44a593e882c52487f2e8084b7944a57e0fa16af5f449327d421e47d3e7c8f4b15f5f22f100468c8a358fb884e9f6264facf5a3d235da28e7e1e0524e2929952da86e6da4d7d20be280936c3168a5b5520f76d494564a2b8c0a783bd4fa723dc9f2eb4b199366d693ec94d2fa6195533c25edf0c9f6f7624828b9b6bfd53a8840b43db0c19e40f62df8dee3453d22c89fcf7a92a3f77898b78b403fa4da031b6cf9f25da9464dd3344dd3341b58cbb0165f04a28d27e8f9acf3a9bbfff49f58bbd7da5a29759f130cebdfcfb2d7344a3f86f54520daf46b266f095ab00489223b8c4a4a39b0ecd9b49a825ee0e75fc9e90a4cb64fe4f07ffafbea893c3f7c49a7c09c80c19ab8f8de1b3bc2867d2f13348aef8816bc04382b9265d9921392d30a32cda986cca904d90985d41735dc97289c1d634700d9e1c3322856517841e30585a8cf29cbb22c6ba5f065872f5bf4172317991c2f2b25160ef8f1cd5167440a4610592d118513d3d6d931e60483ce0802ec70044892154071668a28464c15196a78e107234878d9a20bb667485d73c25e4a2e2c2e17e7c59ff883992247543186e98b1440f379e2cf43a5b042112d2aa0b0022029a5119bfb36411cfe6d0e06d19f5ce73f411d34bfe5da06d126da4e9f9b60cbc67ce9208ef95287410e06d19f74be5fb1ada4c8e17ff8c977c15e3e9eaf4c399ab3e3ace4054e5a9cb030b18ac229e654858925a0603028a8ef83828a1ea3cb21df8bdc227469d5629715d8f75f99122a37d898eeecfeb595f6149139bc4ac281749181095dc070e9a2e568c5a58b148cb10973c7581728be436c6df9ab2f4d514d25188131be26e01f36f6026435c4170d768c7589a14b0b3bccaf82fa62be5c7e8475c9b1857318df0f298db6be5c2991a38ceec447c4f7c19860b0e84d1a2fae2ea0b24a292b15a3fa210169be9c14a493c6a32d30d89659575ba6cf07dd10a246410498bab9f5b7f689f6563b08c8355b6aae5b2de5b9b7cb61f00336564b99c698bb460ef0fff51b20d836e80eb25f27579dd618d3fe7b9e4faa8eee4363f4193b9831fafc187dc613d4a744346dfabe554a3f8073f5a77abace3ace9734407c229713862d99a07698b7071e54415365872ff68cd13eb53671beb8a79ff7542a829ae1377210b53acfd72ae64f564f563cac7458e5b082b282b2c261b5e487f9e4878d02ab64b2602d0b638e1809f1039216274056695b2e4ef64a490ddbacf6e20cc759edc5378699489c66b5d7c6596d8d686452984ae38e5109cd8cab2a92cea774c627c232231363f45a6badb6d6ea313a95814a9f2bbcf2e81e698cee91f2b05959278dd1a37b5ce1e0eed5dd7d8554bd56a71edd635512a34b77269224897131b281d5142e2c7049e15a25f9d1295c5088712982c97fd7ab05be18df1e32de3136841a2a4358f179f9f5ae21a8d8e1c3e6144794c0575286b8b28760f2c2102fbcb042015d2979b121846c89ba012aae6ec8f23dc4f2099625a7b4566b2fa618fb941867d5da7b31ce2ec659a66d38d3b46de3b82e954a651bc7755d2aa5ea5229952a671b7a73e353dedc646ad03861590a0306cb524a95b38d0d963dff66e9c697ecf9389ec4a39ee7537a8e248acc0c23e774a7b466cee6e60607c7f36e381ccf5bad58ac9c8f7e9f4ff979dc8ac5cac9f93e9d9cefd3d1d9d969f1501e1e9f92c77576765a2d9e261e161a500d34f02935884c3b5c8bc7795838a88117d180737003324fff7dcac7e2d4f4643a9949468e641e9940d4a0710a0306cb929244e2541ac9229288f49f617408cd5774d221e774a7b462ccf3a0d6000080cb150001500108c0a71400b6b9c1c1f1bcd58a954373727cca1c0c009cf297d39dd25a2dadd6de8b71a6514df32935ede22cd3b48deb68d7f9945da76d1cd775a9549752a972b6b1b9c1a138383e250e4eb6b9b9c1c1f1bc158bb2583e258bb562e5e47c9f8ece4e8bb65a3e65abb5ad380759b09ccf419d8e86dc3c3b7467c7a7dcd9c9525f74313f9cf25f45c971be5c6677a8092c896d51024366e524c7d816a8d816262d59c0ac5490636c4b524c0b546ccb123236d860c36a8658961c5634c4b2dc90454996255968d8f5c8cdd404595c58c9902585adaf50c1b124794ffccf2f389aff7ad70bca7bfeb34c08a79d655996bd2fb6648524e71d6342601142e9d610449520a6ecf061f8668940d000e2de5b83ac9c92a848a894209604c1e4098780c6100410efa956050b0414104e94000918dc2b0c94042438ba9244092f5c693ae10517ae44b9b2835c89206b3bc6ae2ca17105c95d8de0f5aea5132cc9b0c387113152c5d50a6668fca0a62b52b42482bd62613ef17d93aaf07dee2b14be5591efb362081543f0187c31b6122688153045415629ac4eb0524496ec7d3c2b2094523c24caa65409cda63ac469aeaddec7e35909c28a103466e5062b33ec3007419ac6db73253e22187f9f8b7502a52e9775efe677ad2930c4a9d46b291dd29d7a9c5781e16f1c2ec5b22187af17f55f2d60f5a5fd0d48e74b7b1bd09b2fed33f8d185f62ab00335199ab62f73e5e64bc9ad64a9c34ce767f3b116b3ac026563736deebdf76d3430fcad69391f7e5be3d99af61eebb5f7a6cfeab5d5cedbd87c0cb701573b3a3a3a3a1ff8009005c6f9b2f915c862d2005049ea61fe937fe24feaf0b78f3a7c6557e94d6b9628f32a450ce9e63a90e2346c8554a052406e367b2ba15e4ecff461a15487de9e990ea5751a378d513e738be822c79aac018c730e13a15e4ecf04833a9891400165c4055fa08a9428628771028325db6887cd76d0df6194bdbc675217d5de8b870524cb8f30fc44bf023b1cf494a8919c52ce59ed04adc62e1793f7b96a583f564db3fce9da5107fd44a5f813c444554e2e3b58254869c482180c88c49c9001ab496605a151af18b1a6416cf29d78ba3bc69cf0b2e7734e2c394166cf5964db549352ccd5f9b2421e058c991d634d346d04ec186be2051b840bb81ccb60ed90e37c6d19fae3a74332fdaa310b879c43c7f4911dc83d778c350166d34f9a1ccb84ac7dc8ed1d1609323717307fdba4512aa55b1fccef5e02f3bb27da1ca881e1081b673f3a5d4ffa1097dca21641caf021c16deb7edb01e9eb80f43dd04196917dbf75c3ff3ecf5f192d0743ff1cfa31bac0efaee50ffd3327fb3e6d22c9e6de7fbb9ced64b4dec16fc3913df7ae43a28ec67dd66720eb6fc020ee6f3e839ef72bb0d5fab8756c1e83add6ef7cdcb1a3c13dcf73cfa35b2d3d8368afbe7563e76d7e27763982482022311e00e7b32cfb9dd57f600e1874f33163e990fb6c057ada0562efa97f0306656f9335104650aad335d3f8673743db4490e0f62e14b5b510b417b27b83daae377fcd3ffb58134bfb3efeeb17cfc0fafeec52d1457d0ace17bbd6bfb922e5778939edbbbbcbea306058779fb3fef40f6f217729bfb084b84b272fa644d1a8285a8646ed8a849289b48c3432326222890b7430da5269c775bf8e75cb067efa34282d2304557a8af1b3f771e07c0dcc14c4db67a07cbbbd06e6e7c0f99beabbedb78dea905a7087bfef70b7bfc3ddfe0ef72319187435f7fa99fd8cdab876b5ee6b462fd5eeab2868a3bb90ba535a6ba532fc116e2f3483ba27615730f4bdeda0a13462bb97db4bfff07ead1a6bae85e6764dbfdbea7ff79283c0b5adfbf2b7faf5774c1fab65adaa0fa591aaa361bfeaa0fadda73a1cdca66feb6f54a54349f3ec3a1aa1e43a1c1cd5a14aca904a7b73bb2fa595de6e7b22d200f56b47c33efecdc61ddbcb94ecacb49d0ea2bfbdbd5af512055d43a1fa9b0ea29994990ee5b4b1c9a76fbbaf5fbf769ac5992ce45b6e5f3f7be2c0e83df58336ad3ded70705bdaec774c1fa38dadb5ba6624c86c6edbf78a640927506a369416a824504f7bdb5cd474450ef247a51a9e0b05508e7e074e07b3d7c01a35780dac2f77de82f341f80d588438ccaec16f1b77efbd60906ae3389e9757c5d132b283ce55be71aadf42588fb5d65a9d54a7fa3ee4f122e4f1e2d341f7556f3fa22112fc2999aafda99a9c49cdeca0693f2767ee9ca83d250b9bf6ecfa5127fe8c503f1c70569d13f27811f27891f3f543a159674493e323f80f7ee1bc715927f55196719eeffbfa1304caf3bf010bddd23950ee6fdfbe25233ba05176871bfcfc9046edaa83e4e778e5d13a3aa55b2acde43c55ebbc06e0175dd84f7534fc8354a9efdc5a6c7fb32cb495cfa35b5ac7e5a73ebb3f6ba57d89a3e64c4ac663bcfc4732711fe6e01a38bf4d0cff9149de435fa5439c94b399fc4786f11efa4caee9cd8738ccde87dfcfeac3677df882b90eabe6f16283acd7eabd0f4df41e7c7508db12fb8736202d8371cedf575d873c5e481527bfbe5f390295f7fbfe5faf11704eced5da69191e2f36f7218f175bf59ad0dcdc87748736835f7421b90f52713f82ffe848167a32c8e3c5be2f5a4676c0d13251b48c3480d57402a94429d73f7c69becf8a504a19ce7cdf1918ccfdccc72b5c6024892533208281704192159a2b9e9a36dd31964412f95287922651b45bd02b7bfe7b479f969e947684514a3fc60ae40e081f5fb0d6b0d66cf1468d136d29a5acaa6cbb1b730604ba1b16d0e00ea23febc4e193049b7c273bc6ce1ced173bc66260b47de41c636caa9899a82d34b78fbb4568516badb6d65a6badf5a66cad4db62e1721d1fa5a8973d925d086ff82dc7ce1cf39ca5bbe5f8454ed87588baeeaca39410e3f9e77bd2cf52c9fb0cd901bb7eebd17b39ec8b017303ca037efb055f5b7b95d84e43407869cbda834a16c3617214dff22a4f843fedb6e90a839521a63d49e8b90aa1ef240df54009843439656bc83280d10fef62accec183b43a4003bc6aa589a2de6cb9f35831cbe5e2d601fdf4aad84c6ce2cd9158cb1334ee6d4619b21b7ccf16e33e48ed9bf0849fe9007425ae5ee86cf5a6b9010f1bdd7cc399243bc7110ab8979647ff325a59cae654ad4669898d162e6893ad9e274313cd06b2bf539cd149911e7ec7d3c2d885171851921741e31c5e0c4ce62200391212aa8204505a61b7808c31443d6f294b56c0b8409270471d2449813c6a0e0062e45a8a0324411154ca8a8e1fbf27d302718ac09066bfa3e56d30cf2d46790164c61668a2147102142418a2a94666892822e2ad02d54b460440b62524421c50c64c822c55394145aa4208325cb8d129b22710426040cf605f17db1588c75250a48142eb096581881a989a72a98a89451d21265c4aac2ba32801d63514ea2987c56be0ff6030ca60483297d9f126c0a0c46250a2b4a1156024919a8288a5c9afd8fed07928e4dc73b84a423dbb6f9dbe3681da9773d243ff5d977cf224db6397bcf7dfa58fb6f93f52bd6733f84a4c3fbf94348ad08484a5f3e8ed691f3ae87fc73748ed54b3d045b3d4baff4500cad87a61e7aefb9efe9fb38f51db86d7a08090747ebd03e755fdbf4500fefb93f3fcbf4d4431288369a2ff5d010920ef9530f011942d291bdd44320643fd4bd0a963f02dd7c04ba361f81640402d2c00874030e21e9d8de460f49a0edb9cfe08fecf1abc01f483a322d9178cf7dfc3f2250c7220da7372d9390ecfb2caec8fac71092042210d63fea47a05026edfb19188162501c6d9d1d635024cdd47f20812a905422612392f4e2c0ea818cd198242c1fc824614961f530a6688c0c31e00c110366873bc6c43ce11d63629a6262ccd013b63837fa3ee2cb2a750836b41c9b7e08ef4392507dd8098966d8f4a5129bea185db80cafac224f346df9f1a9035ad07710876ef9d3185fd15b98726ed95e9ba57edddd350e2be599af39e9a44edf411f0c883c3edd65ac26a0fe298cb9fb99cdb2ec661acf177e7b310679b8f06f9b04af94944a1f0cb8af5d189c06992ea8a56ad9eeb05ec835fc07e39cbfefb11c1d914ba68fdc1ec0542304f768fa4c22ac1c72fc501e4d9ce7744d9f0ce47e8b1d966098b7fcf6ed9e5e99b7cf787cfbcacb738bc0a1ec7db782313c03abb5b682747e943678be24b7428e2e554a5d675dfb0707df2de78cfa9e4fe59a6c6ad87cbdaeb49b460eeaa696523c9f87f3e60f8f377d78e6cbad4441e4206ecab3fd43a0fe39ecb1b399b93de79641b96d5460ca661b0786dcb674dbde47dcb4375f5986f1b46004a38ba6e65d618bfe03042884451caa48dfff93564616921cc2b00b69a129f102ec8734c4d66e5672c0b583e44f1732cb088b868c67a5b4fab36ce0a1f9ed0c98a27a084dbc244fda23852cf70d89e876105bd09b3d84e64f9e727eac2539fc670a33637435a49452c2d8f463a0907bd03fa24f8d44171cc5a90ff10e954ac78ef9ca315f527e1fd3c7346b609cefebf0f582ddf9d3feec600021b90d0963631a581ad9f35948aca21c02dde1e7d269d47c39cf95d153df7c4d18dff765423cb1b4ebab3cc87d3e88fe7d1bd7856cc07cc9387d62e4407291832a5949b20bc67cbdf0a082fe5ce44004ff8b31e843aec1a0a67d96dd17b23b0b41c39fdd8f9d03ae0e6b572386ec6644e7a28b17d14598da52868de8427e2542d57159b66defe1485d0bd53ddf070326514ace2b5415df9c7959e420b3cf812cce64ee33954a0b398dd4fb487d74219f033d2559a3bbba9d1df51f0ab4a1c09a216329ebae0f5e30831c80edaa8360b26953d94881d9f3586ffa6023dbbf75237bfffc18ffe67d8c2e7070c030fbec6fc2ecf1134eb6bff744925d39dcc9b09f81dd7bdce397a1f7f3e97b87c3dfd3990e53dcec64bcc4f918336bd94f656ff3f96fc010ff7c1bb075a37efefa59b7ecb76ea45efbd46baf653f5ff5415c9bc0a8742d3845a974886800000000008315000020100a8703e270482898c6ca683e14000c788a3c82549809439120c7501404310cc420080311400c20c618c39c72c878009e3a49d06b239f4e6fc96794c4007ede770ffc09b1fcaadb95003a04b996ae8d0baf0977c373246d66ac1161ec605bc92043f7d8a4035843593d1aa5860ca9588e6beaefda424f6f9b554961eac8568a0b46adc95e8999120512214d29c8b1aac2f8309859aa3a49863cf3b1ce3f6358dbb7d4f40fc95c9cab2779e30eafaaa72c6c4782e48b9be2f833e3ac433339182465060eb76accf559521ed0d0b0226c46eb9bca082550985091107008fad6f59b027e52c1646786578beb5a2e97eb0e08fee0c24640195be0a26b2b898d4a396952d72571825e2d818bba389ec1bc3dfb6a1b0bc7d7c6019cf4486af3a10bfae6537c0f0853db4955f7b8efb6d80bbc79c5052f98a2969faf74c9a8b7a0ab83b773d8388c8014a87effc74a6c4ebda745dd59e635f045ce9a89f4c8a79a2cb43e0b3c74957bf9d39581b1ee12a15d81113e299ab0e905b5a0f994e82b359fedee9680b7f2d9426b7b78852656dcf74c9666b539e3742e564db2433602bb7ea33c60f036a8e23c442665922247eaa738711599a85a2839de3f42dce24b12b8c8c233a7cdf23b273a7227f664ac0d5ade691b789dc989212728d3ad1ea250e450b90f20086aad042cb3599e90e24d95a465ade152b632247139de59ccb8511a875b27b4bb66a314bb4ffbe7b21e4a3947b5a358b7abd78338bfadadf890366abd1b36b2abc7384b0b4bf606195eb949645c9c937fedf650ce1c7ea4eb6dcb3636001c0aca08c1200812cb2f3efaa2282b436e48c30af1b1df1b1d86a59cb18454e29dc0a4602b9b20f6508dca4f02a077f6f7eac732d06a4fac8d97654f2e0bd63eb7bd96d68f30c6142f093c54fec4305ae8470593bf4812142cfeda5ed362c53ab9cbffd0a1fe46fa6039dd805c96233a012b3a606fb9498384b10ccb4d46ccedc28e70f33c185aa7295905047328d50f08965be34b4e911c99f2fea067817ac89352ad1ec55a4a56a90fec443ad19215bc8c83810931b8d82c64dc599bb68e8e952a0ad4631b4e554bded344e9ac82ce677a9945ae28e09a30fe9a7178404112632e6a05ed5f7ff96c25ca8a373745a5b41bd402138d2288e108c014df897c325b664c9d37ac67d6590865f431774242bf91bdfe89afda21a9c2e0b5b1ca27601e0eecc5e594e6a6b236cec0c61a4c1b196f7c2f2f2ab3b948a87382dd6b2f45a10236777cd4ed93d572b1b85fe9a11db6a7d3850c5983065a6a6691cbeb3c76ec37ca9614101026ebfe7434b4ac730264ebb0665191a7b003cc0717fd9a0edf607ffb75a4e81c4be5065dbfdd18475b4fb407508d4bfded94cd11bee42e86d6cbcfd9d4438acea487213526c877d6650ee0525060523cca66236bae5cb3cb618e585ce7985e6cee6ef4381088c90d1be4e8302ec90a688a3bd417f9f26b0e1f74a94752d8e2eb1c5d744186d65007081b2239c4e1244b21d013c35072969058735232b442184bb8b1d0d1117b5976c29b5b5da8d7b35574fc181d6522762c40e2cf14807dad980e5e2419845fbc22b0be2bb5e59b45742f9f1dc36dab6bfd3096a04be62ca14b7619cab65e2dbb1efa6935d333099de01f1164654cbfac39aa1c80cbcc54831df49d3e3f3360f5615c829ec4514297ec6e886dc58d762274f3a63a11c78d34c0e8593f894f509a4c86af02ed161083c4655ef64eb31ae50325d6f4d3b03ea529f4666480d97c3c588b29053184fa9da9c779892f3720971415307b9e1cfbe4f39e5695c4f0a020d4791e1fd30c3cd2ae075151c5a561649fa2d8143315fee20d256be9908c280feb60b764a1c32a7dcc6dab9c129bd1d98fade83a5c363fcd413be3a605082fac8d618afa0dd3619c983cb57d8f4c48882f12ac4c900aaae11ec72afcf48922ac759983881f176ee38f5363b560cbcedec7a38d4646d4087b215f3e85d988dc7fb859187d19c6bc501b0a887c153da50a89dd6ce0f61804a1a5e35cd2cc845ed68b8f238b198610954c60f618edac8587e57e3dc4108c8f92b1bca59a6884d21e5a658ea887e94f576100da9d70121fa5ce7d5236d590d42be5bdf7121b423d5ddfa63f3b42610fdd15bc77ee53b78fc8ecdf7f34dd45d907e210f439162543b19cec88d00562290174558d166d1ab5240d229e0226e38770e68b38742579947e7542b64e1cc836fecabf2b943f584b4e61d6c4213aa40ad5679b54ebf406a921aab35db28b332d9f2a23d4bfcec65e3dbbbb76a506d3a9996e86674cff1a13beff720f054260f34dc476d93ee8319f69c863c24431ac8b6852b7d806574a6992fcb8280df933bb14ca9b0a8e883b124391ed3444d3a9b548f274c807d141503a907340a43d1ce0c0510341e1188879d4f2f224ec3b22a49a893e5e4b59853baa85e361cfd4545a53b3b5c4445aabdc31a7837580298e98e6e434b811f33fa68aaa76c2523d42374af45dcafbcaa65c9608c744206fa8c6d46c025d0013e5232db209b3e00a0ec0ef7ca71380673010ef2fd8877a4f0bf4cce566338b107f45218a74ff281b14a135351697a08d1a72ce98a49db45f5820f4905f2b4755f916a03e446ce6094d4ab029bc03e39965f5ed3ae24164a252609f56c820971ca464928e297d1fcf1b7e11336657d652693b2844930277a759cf54bce1dd17ba2c0f181463294f8c86ee3d79a25569e736d6c57db1cb58ff2a3f060a56252de31f5e188f0a1caf05d9945d085d9151a730e745a2c7b6ca7af4e9310091c49e062b999cc9b01e41a8eb4a90ef324a8aba37a90993a4b8cae5d4b4d832a17e7ed540bddd6f91d9878fbdb169a48b29b55769bf45d4263e72bcdf88dae08069d478eaa2b1fe0906b42385d81d84e983bd28681532645639acd4a046408dc77701b4621f313bd0b47c52217155fa3893b0109a96cd2c5c26e58ced380ebdd98284d1edc6ec49a397b66616a142913440c7f1ec38d1384128e3776b317692386f5b60be00caa95f14356c383f51d207f19856288e8c1e93cd727cd5e8b3d6f000231723107257168fd15a7fe591706d728049b1d18b8f90969a6a51cb6230c15501a822f0e02f5e2ea481cbb96af30a8ef34905cee87bd5fa4f595986ce0e339716408576e1d5ca05ec7f845a8aebe9b24b5177c6b208c663adad9ea96f122c902833496505b1ea15185fdb4d4d7616c541b5248d27e7c23d61e194476dd8c087dfa7c017b8605d0d33c9a14aeb2201709c24d13db449d41bb9f6bd002b407fe39158e3877f413538bd4d8d712a3df1e06e13865d18a0a6e08ee22201c8f46b22a549e1a07522125352e003573658e93d7aa90e7f2af9668e9378ac8c050f8489beb744efa75698e0802009f30173e102a3a4bcb29aefb2c9521229e89d1549c4d3949202b4f9446edf125d82800329408548d1fc2e60da39be98e48cc1046875476c2940b3f82ea5b8bb70d14e5b9b232a0bdebf4a7545ab5579bb00f9fd8e6ba9724747950fe7a330edddccebedd1a06ca51ee039cc0633d68b9e6ac028155be29e1a86c5f6accd2c095413ba36e23a98dc415199e23fa4057e1c180a848c5d7b6a1b8918808337f725723802a0a30873e6cd103214310ccd228ed7ab9f788a36d5b1c89de2c55153e9fd9891408700a3024e41d4432e1472867f881ed98f7cdc0f7d5068c65e51a5506fb0278fa57a9b2a09b1ec3f8512aad6a5aff93444deca039a67c46a40eff7d2ce1c3ef4ce080a12752355c37c9a71b792184cc584235fab2504ab9f4081c046656f3b03fc17c4fc8a22f2ac30e0b142a6aa00b4c3d6879cf185dcfb1d7395bc23fa6848e78e67d1fcb427492a38ab4828c9db329def85dbf98f60c13bda7cbf8233aec078945a8cba49013e96790f8c7010bbea3e42c59ea58ca7c7db9ba49da488bcb08df31dc7773b4aacde56297a82dca57cd26588b6a4cf542c3e005a2560717a8f07e078c44d6a16a4c1334e04dddd9cfbf0e3c3ec64924c03f12db8b7890d48d99b2e3a6f7b3a92214c0dbbcc1e9e1eb13bc6e966fe57cc28b20205973b0e365a31a9dc0c3281984f4701dbfbb4e401279e26b0f0c30391776e07a482861ec3c52f5005f58c27153585fb8460831203afb76812fc88d7d2e25660839e80e7fa26ce0f89db362c8c03da6d054914053519c4c15bb56503221c647936a5179743e1300e08405292f7bfa901776f32b9263c0c5e68e6ae6f2f49a5e6e20add4dfa1ca0c0bb4be4a6023d134420f341a1c98d166e3ba63e60ad7d7268f6d5814180154f4c8114f4a091ea7bd94ec7e86bc503fc41d7fbf474906b13935d897d7137d7700ebf7d509802258adba6f9186bb0309e3fd6480e57cf09087d41eff6822359f4fe1f6ff95c40703fd153e3596f89a591fa9ba07d3a9373f2d3497eab65ddc6b7a68473978d34b4ce234b6f3cb724bd87e42406a4c0dbe52af90bde4cd93aa10bad2d8f4c4556714594bb167058aa73d0d33c85d4a262471899b102d0c03ffb3087eeecbf180c0d3e2e92ac60cd841157cec0a170e850753dd24f70210c5fc21cd8394480d777206617e9b465422861f24cb6d104f69c310c824dcaf9eb659c24ad0940a021e5adc73008230eee4f4cbd604915f7d5da2110e0eb5a00cbf02466406022c2574d3dee0be3cb58c545dbc899138f6445139b463320692a483c5f360ae7acdd7b8c8d57f924dee442c67ea7739318cdbaf7c101f3cfa8cab89917aac6e0cd29771d0b773fd9935cf91fcaf5dc47d7ca90d93ba8a4fe23a3d13f3e7793070ea1072d97462e093d1b37550b15806fe41a4052169c7b0e447e928e72a9af63a05aa3511f71a8a132f18968a189b3427dbcb509eb34777d6cee9b5c43baeae89379ee85f1a470363e613666c427974b9fa5a2aeadf286c998d7ce2b25c3608e86a07c426e0d309423dadeda397cc0d2213d3d07ea638edb75f17a10234852db46dcbf200442b6627a67819fe61f614c19071dc7efb0cc3b2bd7f87544655c8762831f8a29208a45b22eb3abe440e54572d48a23f5786d9d0e9f779d404428992bb9438f1ee14985eaf20c1458ebdd9f9074d08c960a0012f2143925c7a3e6ee9b016f606806cdaa66c25fea44146fce439ce174e52a7d10906795f7cddca5ded10ceb78fd2c0fce16a94f089aa81b0ebe31a48f718e5eee96013262d132d73646ba57064ecb93e8c07aab53a831a578a982dce273391f48f55ab6c0cde71366eb7aaadc0c34b54bd9e1d46234a766c130161b0e7d2cfe411976177a58d552c58a3a66b5a57f0a285540b156a9d44141fb4931b9ff333a4445c5a4083730b902b6d0bd35f76935a03d0a3d4ef6e58ad58089ce8ec1f7847b9628ea5f51abe816895782741b3d41bc2b3d44aa31bc4340736c61a776cd6a063d15b28326f43d6232a12b580df8cfe7f9c4eec0beda98a1872df102fac440057f12d9643c556620bec80274ffced8193648aa5b051f15b67e20621a0f8b32387e1e03b48b83e4a8de77feb410f4d02de5adad155b8077516c614c2079bb7aa730d58ecf3fd9eb2cb952d14cd9bf0b7e97b034c07108e0f6004cf093a27ad64a0586657c64578732ebd896cb530665740daba5281542b66794f000c593546b89f0409b46d5d4d4be4f1f7cdeafdd6145c19c6afe6aaf286a62e47ba019ea3f840673e85c824ae12b69ce1a38b58f1c77843769a4078dcacb7ddcf5c1ca9bab2e893bd4330afa4ce4b2e966b61056ea3278c9de879dc2c3b1ce9c57b9aa57149dc9220d8ad14ddfe81285f9b6ffa9550147bcd7a2d79680e9ff24cbce045e28cfd65ff34fcc7946ac517a243af5142accd4cae01e735abe13deea7c001b96e2a6c57089abaa93a3b671e9a9253c88eac49236aa2e097c5effac0f92b1ff484e82b3ea08ad47292e8efb71d80bbdc98a235cc847ae4d2f6eb52582978dcba61d8333bcbe9fbb576aa00e7c1405159119f1c0af8134a18d8ba80309e63dda8c0fe05d4ea8bcbc19f034a027d7f663dc3422a7973edbc341de4e40d6d812fed46a9022c663fc10cb2275b45f8da4af80b08163c4c72dde40f9d3e89032f1823b97a5b975da9065e0dac265ca8be6d6a990ac47de172e61f529c9a330e24c4d461d8155032fb8389f370fd0cd018cd864c1aed51355f2f777a0367041c7c6ee223f3d9c8a266040c612b37f388139a8752da2084ab1d5cd78ef60f1aece08e894b55e70f411300f86829363060754fc09ee3a39102b879d668aac64e19f9984f6de80883e6cfe8dba28e56605e2378c0ea689c9ad5b1fc1fdf782da0f54233771c2b43425d7416d9578f704045aa6bd7a07c6b6b9b2b2d87ee056788b0ecb43be8afca4569383c2e269f2b6fbbeb21661457264bebecd44ba6fc8f52d8757e43663108429c1639e58a3d8b9ea0fe10e481b1d77d0fb27756cdd104cd2b96c31467be106e5b371a031395f94991e7b360c76a01710e1157f49ded9216b23d003fffb76b87d31e45e753eb6a69656995957f6876abb37032f2d9e4449e2d575e1515aa7bd1ed5164330a411445035f83b43c53149ba2ad61edee20064b7cd208ce5ae0e874e23fc405dd03041b5b7bd86db449fa159f1c21b4afc538a77db44543c27f4b6ffd82c751972664312f7729f8ffe058e03ee4f5b729f8366e13d52a31c7a328d4ef086e60f6cd01c3d420b22d9cbd63e9c0d224827779628825f66451e58db502e611edeb249f2eedbfb3bf232f82596c2b0d66461e5c2cb320f8e3bd6215a33962e8a82bae605284a565528af80b0825781bfa5837076092104425b8f6c22d3929f844285df30b1262eff116ecc7d31a0b18d5c62bd7dc138b5462fed37025e14a8c5cd52f6c77d5c0577053a291070dd604f25316048410df82c74b79aaddaafe539b1201c8216bed90e31f24e851df926df50ca37004c94515c26c7175146a1c8d52a2a2582918f75723ddf27c61dccf6d63c50eb52badd92707d719c8d575bb6ca19db761f2f874d573147eac19ee263b2baaa214b54855a3342ee3c4f040deaba1eff87b248223bfa1b390d534d233f1bfe2cea30bfbee52c6633d4a23b996b1d9da3a440f55876d4d7bfa43d54a0f2450b95004055405e5133eab9a1db3311061fecfe2dbf9d91c4b4e694c08661c91611f156a7a360f3817f6f15a58798d1ab10de163cbb22a5fd9ecbd741248ecf9a37fd7c1516738ffa48e05eb42cb7f08e5757bd005954f431f1bebf49c2425b16142805bc31a6e5c3647c18b38942d7320d30d59ddf9d1ad149b3a7aa9fd14d3d69e1189ce1f03bdf091b62fb9dc9733adafe7bcbd68931d222a213c34bc031ff1d47fcc65b98c7ac72e9c806bbfc921068003b71d71b2086b121ceb5ae40af754885ad5b89ed28170c66746276a00114f31b98b4b08cd1e1210860698629511e3a2543ef3886ed118ee2cce0e9299b545c3f0e2b121420e4fec777d19654fd912a825d199764442d9693445428941e313452c9ad99f0532cec05e45b2d42ae0439ba0c386be20e7b6b6d7e641ecdc1e03594353eee90f57a5ac246fddd45eb55dda63ef112d23a4b9f4eae580078710aba23f607cfab2e1ca64581b507c9c20c80488f14b003ea5b64fbf9af249d7fa43047f6ff127d1b64c15ba20ac42480d016bd32507ae731f895506970a40b3990e8a0fc8bde0ced26725d31972d9817c759068fbad8a5545a9c43f09b4330a8462889d164a10c3eb8ceb36b34147bdfb5708939dc7a65ce969993b96ff25ace26f345f0130ec5012dc5cc2d03b07ac7a8168752f4f05c384d5c29548c521b8d5ef8cc78ef4c8090e86e28bd7ee74417aaa14891f1309b4eb2370d00814a784b452ea2763dc380063662ba282b13ee89bcce724bbccb5b8abbdf65e066ec1de33acfe84e366f81dac6aff808360c81b847a2772d5b5ae13b1937ace60b5f4385ec84b09f839472e6f946596dbde1b08fef3aa44195695db3be31bc72442d22506f3273ad9dcca1d65d9360310781f08e7ed604c6905e38c41d30ceba634383752f7d91086a7aad3d07375be0f3aacb52deec21dec0f2c7d855d9d59620e2d37106bbd7487a742aa1d23cd851751933e80de3af8300a83074a13d1444312f8036d9f2e4256b6579bebba7672d0de46849bded2f48170c77b530312324b0249d2854ccb7df5e1ed697eb8fab4102090bf48b103dce625149bcc154849f751e82d03209c7188c306c7f4328ea51729cb558d1200599b5690079b6d5c8b6bfb69c9e009b1f16d41a8078dc1df14c8f20068fa246f75a7ae2304ace0d447121b83197e328831b953cd39f9344aaa8c50ffc806c70aefdc0c19d385bf78c0d29a9c87a94b3233bc6882249f81275f426e268ddc045a0f4a9ec206b61b6ded41b68ce8eecee4a903ab51d4cc7dfab9e87d5659b3b3d010034124ae467a363a371a43f7762733ea6082401149d6b68ecf5bed99c6e952716e6a6cffdbf7a3ccd53949410662549f0cbd5d89cdcf71534e7afbf6acdbb403c921c35f052e99cac04abf12767f02cc44dde369677fd1ba8ba95d719ab3d2afe300cb884a2f4eb9d5f835e072da4e9269419e03faf2d397e07bd8ed5dc1dfef70e2d7c10deab30114fc13b2c57e2394760edbaed8976e887fac0723054f1a3b7ba29b10eb61588a3cbf2aaefb3363f617b40ee0443b21c4ba5825749c78dab0209ab12f5df184df5ed6f8fc788816079394a55269a19457ac99f86bb8da5d2766b1fca1aee6ddc2b9decb59961e4a0f9925b9f6839fb67bba687128e4a1da3783649e6443bfde3f7d6173f32cabe3d2e335f6cb1ab970eb37b9a27ac7499ae5809aa5340a63aef294da64886b484811c351f5a099e63af2e5112523ef24fc0c3058d2cefae1dc53ee9edf0156d282a58ce7026c0d108c93d1bd2a801b1336e828d5c644054addab07eef509a662dae4c891328f17fc7faed91869aaa6280eeb16a4558bd6d7b85267c23f5f1cb1e14a34beb98dff0a3aa9642e978864808af94a645df95da37de95dab2ff279c3b313074531010907e2c0ed30da51fdb7b6e97c532179d5855c7a16bab1718bb4c09dfadabb30f4e62b949971ba86629f69d1fb9ebc601299698de33fe1b9b32ba3a3657f9a9338d58fe8c6cea67a8c4f3bec7320d306fb5fd022e895cdde67bace28e631416f0e198671d91ef782ff012efc9adf3998ffd554940003bcaebc92da7e6640f0e316a0617dd5a7868821eeff5af720c4012e686818cedd6bed7f23b735c80c4599e42ac419c832490bf1f60f12726f4b5fc626e0debd9d438a9e53a61e129b836b9b542e88138225277a692221ab4eb10d1e4e249b70e3a62691e64614e00a8aa7328c28f022954ca2bab62670ec45a563e6203f24ad0ba1cce71d8ae81d225b2019dc7c5cabfd94ba7bc2751b5b9d5a0b6705ece4c118ed26c9cb5385c8ad5f82b74de51e35cf9aae607ea47853f209352742c8a4656a5af0eb7fb81b088fbfe36e4ca2335c5e3248e23c6aedc34a683079288b3842550c611a0e526da7a050d1a4fd9fff28259b0f12aa1bec6895bc82009d36908aa3002b0a22dee98d66a2a003a8de487612a41d5ab31283d558835e29d8dee91de408c00419317939aea041bdcf06c1a8de43cead5ad0107d382fecfc4ea5ba8466bd2bd2a9b9912efbe9a202b7a8009340a5cadb59b09d1fc0109bb47d760d3393d962187f55ddc25aba1be53aa56fc1b08725ec9e83c156bfc0a1fdbc40d4a653b6f07621d74537c1ee8a6d6426f0c7f8e0f351bed1a67da1b9130d07ac0ff297a7ac2ad3fd3ab22695f75c26ded60a06ede5f09f44da195ebaed6d4ae5f614330703ac5ccfc9e140276cc84c62e9682ac5bb82e8658c180e37929c882e46c4186b4be19792a7bf0860e5e90b5614fc15eaa85c4d8b4ddcc394104627bd7dd5d5b53c3ba9cb9ef8853f47d2a055711d5f5c49668d95516310008b5c4f1f36e4541e87b3a2b9de45b70b4e6a5202e5af4f14a6519fc5ccd1e77652467b362f3938c37df243383cdbf92c3b1b2691e56d93b69be814e859a7dccfb6c3233a8f646e47d3d2a033b64f7f9dc427e43bd5f3b90b4ded87216fe2ff05ebe28c613836cdf30b71274e015b32ae0407ef1327c12586a0b24e4b961eb3c09cd7a364e999815f49d8870f21dbe35312b5df88046528cf6c8ebf4e5a86ee6ca3cbd762b16de2897362e1520016549755c8f4ed35a5b0fe9a5924e99a089a8ac7ae897f0aa438076e0503aa0cbd2cfc064ffbf741d3ad674464eff019e7424e229ab25083fc826b83ad606cd5a65471b7acebcda11032fbda7bea4b81e05b649983fe2030202fc94537cae88be4a6006b8fea2ba96152b2fc048c83ec8ccdbd546aa71a65847e8020621737de63a1616e35cbeb78ea1081ad632c2aadad5262edaf1fc8afeb28a02efe4e8ccc4e2b32caa57a54cded2b99cf48d14efc53d896fe665c79232f92034735bcd09828538efa9f40d8f5e0238c1b5c6c2bcc485f816cacb387a1c18f538c299ea9bc5feffcff3057098c067d6b7cc522208a35d92997a40a9b658e19fa775b90f9b7bb02d05276c185eb20b99833ac0f06855e39e7f6cb9e3bf9d689ac92fb1da4ed527c82e343aebc5493b70ccb0e2d0fa268267646bb22dff0eaaec208bed6606ae2d5a5aacc523d9d15361f3b321c30a93aa7586e549e84a5b62add0dba0dbfec5c48ea8c522ff3871759e6fc7e38e0c2a3d68efbae4f6b78414925f294a3eca1b270ee7888f9c503925718ff15501066d5cf596b90fea0f79627c22c43f211e1a1c83ef5e25a4fe096df4f3174ecc300af0466d4ca75848bb9b309d61310a38701f55d47154c6bf0318ab1f12a2d0f6917e7cbe80a0e60880fafbdcbeaf2a4d2c68ee63c43415304e925a87b48d0257b6eacac3688e6316545dedc7fc04d538ab3a99af405b75fc00dd71a6d21e58a15cb8fd7217362ffc44b9c7b86d2702d8175241f48e7b9e015767ea60e54b193575620d347dbd4fccd995bc36d9002d84c656a48eab359cb09295b3676f2da9b45aab9346af02ec4e2454dd060d850a8799fbdd9fc45df8110b6090d41332a3eb472332336c14257237150633338348ad092ce4bfdef00ce468f0f0891fb5fbfb6d727ea4583e148a79d20e772be98436a7f591eaffdbd293a3616c84ba323f8efc94fffc423c8c194c029e2a9bb6a86a07994f4f2514834fc09ec7932150a8bab55e55f3f78dbe88f40cc2453c97b63b6382ab2a959729815b3008d15d6d31d84af7dba237c0b44689bf62cb66e92aedd882da966a94e9dadd8a4ee699cdabea32bb16b3941085aa1cd77608ad4a244320af799509ae97435d021dfa1c027ca9f6374028951cd54ebf730f67608bbc3ee8a9b03d59121107e0510dd633b88654a1ecba6286b8e11cf6181aba45a3c196d99809b9a2e1668ca2ed0382b4812b5e3d7d2cd4fa890a3c725db5f90d36ab91e6d60df7d033cb344ccb8f06c33ad8adc5c94a67dca7553a569a55086a376e0398482aefc17eb4320caa90263b694efa0380a558155c8ad78468e384e5ba1cbd4010b61a335ca7b3b0eed8358ec2d5f7b96af7f401f3279eab9861ab938b56abe302f44592c19540b80532c0dc0284e151e5208b525c01b55a71e2a9417ea23d6edb8d358c70050e8223a87729d8ee6a05644212f854c9e2570506cb29405975d026af131cda706ec3bc2fad9bd34f8eefeaea63e6444abfff5d5ca587635ba708df63ac989a596767262573a45cbf51cd1e7ab4996b8586019ce9015153daf65b281679aa2c1ee1af6df90a4bba060fb33eea1999bfb584fcc1caeeec362c91907bd50ef361f7a2b75bd95e23f0a4da1509d8eda3bdb9f6ea64cb95ce3e08607ce7602dd0b5900f7d93fb984fad9e481ad46dbc83d284dc12d70ff9b693bbbb6dab1839fa7f7ce025584cde5349e2b3d3476812e6a2031c83de8e3bfe881b821825c59b03cab6ab752f06a9a30a7b65de4ab21336e42582e486c8d48c2da06f1a28ad314d4b177cbf51856e91580e8f4212f8d6d1334d709fde222f8181404b553be5a2660601c71a031bb6151b5e03d44ffe32937e9b8446826c5da200bf76d4b97e657ec5ae824e240532fd6dc723d3ffe25ed82447275cee2b16490ae89fb63e225d1794a77615d0ff743003c1254540de8c828e219ef227a7d556b51f9f3fba54bbf4d0081dac5f9369e940b9f31b2f4866580a50dd5ab9247ec4189ae0e401d85516a2534e002082702aae996527744b7db7a13e67d5d639e0c0d084aa323ec8331c75220fe16205411482da3d1e019827ce8fa109158198857ca736122193e8be6e608869dc76a25efd2715a31eba1c9118bf84d61f06f23ac6971d4e809c713ae185f6c4c3d80907e17098b739e615f0c8dceaffe8d346ec9348280cbfaec969d577aec1845980a3801a01b30032b52888d91a89c803f3d0fdaddcce2508e0452d80a71d28793d856d5d68e192b650a4f7a8006774739d203be4d08401843c0e8d974e6122b9ddf380ebf0c6f8d88d74619053a3a61deb9b9e14b170a88fd0080668e0f4518dd19a45671bfd6ba5bebe79bc486296723110693d09a35b3987c2c24a3c811e48327c1d68b7817dc4fdb9bbbeb1b3761262039a8dce37b52aad64b281dd2a016d6f60fb061173698dfd8d141859a3d896b9bf3736334600f23476c5098feb64513a539e5c3b37d1c7a739a827118b2dc9c3e0784a9a8ebbd4d33542cff285eebb95997db777e237138aebc7ac1cb6c5328101fb96681d2a2210ef63190223d909e2b1bcac4790ef748d5acecde4e0f7cbf243c3772a37b48c64ba6d435a47ebfe4fb9cad537fe49d4ba07b24e51fa1b0f1fa15d304773c41b422a893346246de80ca71bf3e91b5f968f6c9951419ec1849c92a86bf9fa69383019a11dc9e7e5a240d66efb76c31decfbeda93345b0dd395069d54d50a0a24ae401bf5132d85f252b358219613d4cacf7ae0227ec9aa5c32c8f304d8bc38124dae220e6ac7cdc14b17b44b1f1df61526638a1cb9a289a3578cefa650173c594f8eefa99d20f9447748389574108718098969bc2f03fbb94e3ae0ff6e26ad6a774b2e606f16f0f5eaf6235bf1adeab6a898100f1ef08639e018353d015bf9430f222bebf6bdea7625d180fdbc6c159ec2e99ce2b607d827dab9aca8d82d6db302cdd23784d8002d50381a76e772b0eda0952d8d943918ba06a22ddb3028217a07514dee8d4926486994896d31b334497da11aa28aca62499ac8d20fa0181672e057d6ad4ec7d5e92dc4ccc5d5168fb69ed4927422597ede5a4a1bcbdf6235f4768aadee99972e5c740d82784c1268735e830001033345de1ee965080f35e6668047b215da61b228af3955d0d3b2afe68c4a1c2d823e229bd0aa41568f084571eb4e175003b8b502390b628ee22102ca746a05dfbdac3b65e0c9fe3ef901935e3662f4223e432afffda521d27e39fa585e2bcb4de3ee496daefebe35951a642f22fbd06915f7f3d20855e89891656f95397582e1b8aee9aec7dd095133e45cc0b246e4adc52f71926aa0df1fc00e221a420e7b3e3cd19743c55514331e034388cc0ed3b66ca00b8c4cc573c5da5c0a0e29ee675e55006fccf03dcb4603c595f106c3dfe1a7f0c2ae038a936d32baae170d13716b3dc99f14b73f8277eb01b47ce3295bcad7cf25d7a549bc1187cfbb639dfbfd38392f6a0c425e6e0ce38d4650176458fd2cd6bb9a7041c81e53239d723331bc2da7133fe43664970341b52259c5e78e498e91fdf8aaa3094ef26cc0da971fdc4705be042651b252e5cd9faffb0ec4fcad2ae5b27147e723c9f079412aa69eec1863935d95d89203e3aed25924cb82e023e94b9a290ed16ecb0c4b6520563d101447413a2daf17b139a489cd7f34fbab38c811013ed83dae56fb7a085f9ab3379c86799ae0f84115853e7f614d62496d5bc29a62e3fc4665090244357176e5c65770ff50766962e886a72811d7e55cca0c3078c28fca0393ffc62988f58ba5745d72eee1fea3ebb22f1e83f40e712cc7c6305079ea6ca14299cb8e7db69ab6dfcd818497e01082d3bd4095e3b449e44c9f595383e3e1a42b220ee1bfcefee013e9a79a9b064a55c0e5ae851f4d2717dd6a02f0e27a2de44d8d7dbd4a8658a10e6b5fda32dc96a7d804d7744982be6e022cb2afcbc84dcf03f50d0c65d36bd4a7e665ca3ec52711c39599cce7bf1b03bd4178a6308efd531556e0f9d0fd7f74a487205e40090c8aec51dfc793a002195dc2e6188508362aeb34801c9bd3dd972ba1ac8f35c8ef334fbc293767ad0e1db06b69ce67691a16a1a5dcabee11bf218e36420b4935099d3609f7d7672ba95205b9c454911ffb7382db9b6ef7dc89d140390d24244106e3f3cbcfec265125fa15bfab0885025197b3f3c81b0f945810bc09d6f9393b30765cfba890030b4b7a00081bc068fd2b6f7e8bf9f971b50d036d391787e1cf8f3c97ef463e80589ec0155d48ccdf58608ea5ec0358e4a7efff6d7f7bd947cdc184b0fc9c22723e404ef915c035766e379cec645e6333ca0e2060e9eec14fa19655c6072c2130a6c64ca7c2a32c9551e5dc6786f913f03b77111f524af3f02dfda3562b5d46689031250778bddb48453a623096cdc0f67f7b4cd67cb95453b7dc622beb9d12d1f3f25410180b732eb9dcf6cc6c6d5b51878e476be95bc87df06d91728344e23897953a97414796f275000b9eb7f11e089dad1e3230722aba960128e47289563fda6d4ce1878ce3b1d8d8b07e95b76490370b9d45374ba0fc60dba5dea6b58462989af71908d794cc1d186f8808b077b1f4db582849812cdd38fc88adb81e86caa723eada2214179177c231e4aa42f4feca9629aac4d6fd45ccffaf145843731acb4113399c828ceefeeeca441aa6a2d68e8935282c02d903989393ee3067c130da2678a3908636bbda463f9ecbc0aad564bdfc4a460f5c9216c5699904346eea36ecee92f6bb1501a931f1ee19ea1152ea16cc4696e914c169a1bc70af06e169e05b99d056867aa155c41cdd26a37ee6e66ec4b53bf68e4fabed90932d7e240d1df92de2ee8926b22f4693344607207ae65c9e1ca986f7989eba6becff6d8c9e037e047fd95c7f5c77a86842845a1ae7c7855d584d72978bb094d8918b8c8f8e223329cca9e9af5cb4bccf66cd7215042a664041795451e10078d9d2cf735de32c24a4e7d6b1771962138c16c967a578469c9e0e2ae9b65ba095e4e17d9e44da139bf5fc41963be7e3d4419a30e954dfca49feb01727a710c4c82535078cdcd5d0de29370b1b4a5e242c67a6bc2cfb9f67caeb567fbb59999e39b9f0d6f61b90f45733c5ea4858b149e7d9a32c65fcb338461445820ae61c87b9364787ebe329f9b404850e1046cd380b36c7202226b55a9d2229c91808cd1679da2b80aa73137bca3535cd05f239a5c084895c29b23a8943d9d00eccddffd5b4859054c6f982e06bd4e8002795471c75b0363bf64e91a0a1d7770660177e9d90a7edcfde30bf721baeb5091173484a9f95e38e36d83acc9739326575cf70e4fd31610a795d55c992182fca28904b9594a09ffcedb4866bb2a23ac601ba1bea2f6a827bc55b0357956e750f05df09621dbc407c3dd636fe4607e1ee22c5755a3e3f83750f22592be26932cb32fa353670421922e4997e0c17e8bb1a606dd1607e0ba3600b8b0452080d6ddd1a6095bd5677790d8bf9eb103a24c22b1ad41e77b67f4ffec11c917ca10917162b34b4163cb7e4deedb6a674db396b5a5e1e54a1efa8f389da4d94e7eeafb7ed6dc694c04785ed5d4f8d6f51bd2643c22b20600a5a4d06c0efa8b4c3a1356a8987505db433711971d8c100a1f143c382e3b40acbb3f4dcc08061fbcf068dea547840c01c7ca885440c7298deeea68ec73c881049fbb517578da74d8f09825f2f55576da1f3fae2585bd013904e60c20b1f68cfe42d14394b90d214efab774964f57c2235d7a900c4ef0a26c5ceadd243304a9a8f773bd92c2ec5af7248e36c39be141840c49a37c703e98ec6cddab97ef15e85121c5677fe4454b940741cda6595c4ca762126e0ed559ff3789f986db23866e3f3d8f1de2154ca45fd30b31928a48ee18b3918b60b291cc232b903444d57d667ca5ed09433ead018aa31a3caa41e610e66d75a9e388328a59433e9b8db6cb8e0adebb52f91fb3f5848dba5f05f45f8d370c746399a94948d344ba8961fa72ad3a580c45e5d4ff394f293518e3308aea2f2f7ef2ab82a0a9a19e062f95be60454c83619e6e997b00b9d77ade6ceb7ab1f889af7a995bf77d03bf6880309b81def61f05d965b56f89d7cd85b82a7c62d7336e20fc17ed110b8cce3006921b3843e1b189f5ec328e57cfb13099004433d2ca48de41a41bf70ec8a986771a45b70fc16446ad2775cd3564f896845b151177abaf2aabdde14c0f7a12dd69d7d350e52d4c8e3989c6edc6398ee36cd8d2de624eb2a53d68d11ebb47641c347ac13e5794b54a7a3d719c14158d13ba424217fead28a72edb4ec378da6597907cf497ab8a7f78bb09ee5161916eb942c30c7587ef0d9564114fc1a1d51d1fcfba0836f7bbdc9dfed63589c48b2e9ee7efdf07b95486cfb8f4282b119a2f2f2084d4b97cde54c628b75ffe0e5c19b3e74383e1f89b4dcfd194677a3c6fb087d9b2b4de2ce384c39029c9aebdfa60b8635ffbfebf007d7ac7e3e4c86e94a67bbf488830e27bd08377e0f252706df0c557a7d78fb44adeb1bcb8489fde21ebaf43678fd28f7e957347d180efc1e42cf57f9e2099e8d0f09b5653d053ba8bb25582f530505b834c3f961d8f9b8a093d31f78c78ba8129a323531315aeb5b65b433ec95c11ffaf901077bd0ae21409758cb2d5c499ab2a861f7cf1abc8d663b753653cd7f2dd523c9f81af131b3e5ab8fa0b1552d7a7293004d0ea9d00f7e37dc82033a53369cdc6014cf51e7d9bbd769060e44f27669c466f2d241a6462895dccf6883e54277bb32a99c0f6625ea82b2eeeab5636d25a535fdbdbc333f024e1e8dc516f17128c3c69f8483db83bf062fb748689136ec437e589d58026b2f536a352a70b5920ff89e92bb964b110d7f1467588c9f6ddfbcca98eb3fa2f66c2f92ed4184bf698cacb29fb088c7a8e5274d1e4feb437eaf6d3748ae99429fb8d8c0e758599aa017233db8d2c1d3afe60165b57a031417dea11a0d0ee9ba3d70af2797ec130ed1d2c0955f5f12e72fdb830d90c9022d5bc41839182a39c9d980764f56f2ddda917fdef9009d2e0004bb17fb5bafad869f2be5e92d4d893b0b7661ab3bc8764761e4ce77e2d359e317600bf18dae87c0fe5954eafe0bf96621b760ce3940028071e2dd1f927ad766abbe4d3dc50cef5bb8a385a04678e0037fb08e7c360a03f5a326056d623232424f78fce65dfa24f13665dd12ca1177d1b74b63b4fe98d485dfba385a0524beac389dbc33b9efc7fab9d0f67cc07e598c3e42f77dfb0b0376785370ccb7df4a1ed273c0cf72729dd9b9f538099555ae882a3fe1b06e40765c632242163e686178fa517d029fa2051da816d5e11e5cfded2c5b7796802259c1a10b620658eb9461d85e0eef133db967d914f05479dff0d555a7237c9d38ac3d4b35135dcb67e6842ace1cab9f0321c0d5b178663f49ed65817be14a2c07480fa4895623e73fc816a4595a7f440a27030abf6d8b3047e0c36186de872b9246f71672c6fa4544a046e4790a958d8aa7a47d458c2b09a1089f11091a858a513b17f454ffbbd6dd3099072d2efab79885d5d46ca74b50531d218eea0d35ba4c30b400bdf3bbd21e4cd149e171e4ef88b45fc2a987aa801952db9d8007f4372ab805f07e4d0510cc4442e8cdf477e12bd9879a7661d00ee207e1fe95c405644a450bde0e2764ac4f2e4d8426af96a81faa1f78a8a54d164da04b9a5fa68a6b8c91dd04ce835ca403fe4fbc30561b261220e9c36497de1e735a58da203edfa808a1d3d5fd5f6cbfbd234d75ecba7a04ed314e2844479426f050f7793f6fa0571b4fa9dbcb50d251b7dfebe72cd0c3d6f0009f7f3b2e18ac6cdd09e1ed233b62216aaaac170d3d86418ac9f80b78cec8478ba57bd83e7d98be276bac7b48f092b30158ed37893dd7d616b802300a54ee84c6bc391735ffaadc808a210f30aca2e140306c171e85428fb85165d00a896026eebad59f77ae78ca7420a6b0b509505914ce4de2f6e49c574cc1ffb45ea1f198e697976a1f31b417b91e278b04d161d7e2221334e97f473c842e2e3ace5c6394fa49e42d8cc01e3c8208173740347b751c083bc6f51cbef46113464e7559eba343c73c46909f343c2f42b779c43bb5dfda93180cc62a1a37e07b00cc2305747ef3c371ab27015088276c6e71f4c72fa1b99fc3b34af8582aff0787ba861d2cd959269b8dbf9d2eb4fc513f44b96e1eb955b2ea93b84301199321ad575e9aeba6d1d9058dd5d12818da99c43047c6d38ec3cddfab03d190023a256981e2117f5845b4b980183491ec30c3434779e602619a255c2abebebd8d7718f8605b1a59416bee0dd78db8b6e9071e63133df69ff44ad9da466d8a50d4a034eb80869bec8bf65b9d4b97a8e04cce82860bcf19dc09fb3a00c519911c07ebd7fec10a7c0ed32d76033d082b053776b3c1a9d80db379060ebdf27ab659a18925b4e5a76a71baada13c698c669b3635c0ae1a8c1afd4318a60ebeb469bfda54ff16c61b981ca8ce1f621e9e73b40d7bf4bfd71957b7d6fe82e046b081d9158c4892de7aa4451337dc7380db0e54502bd5eef258be43f9fc5bc128fcf288987c003b83d0cb9c2618378f113f3901742a4e3fecbb682ee39834224f30eb7277e5a6514546fe2d454e055bc2e04d8fa0784da5c5957fa79846d1fe7b765aafd554c5766790ebca2a1f167f50f6ef411e2f9c60041254bdffcc8a4fb90b230b082d733aaacc97ff42e28fe33bceb00d7c916bf328cd529560574ea3c8740f51f0e21c365539b861a4da12a5e73927116a96adf7ac95016542dba9e5446b09a376d068db2b1b60da2539ffba1955061700782cfd2afaa72dac2a9fa4a7a4ccda5ead8daecee2b3214b06ca7bf9c8eddfb54a987783097241d2f05a47f327cd7bf6eb9eac9005df6cf0012fce5a1820f6d60587f921af7b0e5a1415d08c334b49e87b966ca3ac7b51719d658ad8b4fa00299e6ebca315c2061dc001249cb8be2a53a3f3cd724c20c451c11559ae41b9b391c831a360a96cdc574d7bf863c907397055f6574aa1ad02cb88162442a8ca6b19dfe244db4c63e3c3d71e246a572d8704009134a3cbd6a5c8a54c89ce300af9636373c910034762efe80d2044bcb16b98bc9ef3075e73e902453d2d951859caa553b905558b7693d50a9046b4b5174bab40b8fe88168f627234bff79e60e37867760b5c46d0cd3cc2ece7271a9b62f3a9775d9c6170d867b33bc1fb61941b24fa1a84e5c9da3fe10f3338f44187d2c3f3faa93aafce2420300cf003e5c0ce81d5b144e4e1131d624086fb212f5195cbe00a28f912f42843d2db70b5e166edb355f2e5643f56be8a17353cc1f917d7614672a219bf0f9c84110cd0ebae1e6f40d5dd84beaf594317962e1a95f627fd2af1873a57fba24d5e976cf77ba3016d305cc9bceaa7ec5f397ae12343c2bcb249631582680b3beb2a4f8967c80616c3643871503307577000ee16561ed64a4057c321e21ff258a797952375f7f052eebc4e67a14d6412c000e25c4f42d3ade106ae7772ae38aa293a78c6838f6c4773211eed8a53de7d30a5575209b8e8b8be55b409c03460733c53907bee0c8af473c79a3df9c134851bc476fb4ff247046c2d3c51506f91ef113d42e90d7d9641e52bb28b9639c44666c526612410c97137b31d4a0ef5b02d92ad195037d27403797045335f685049c4659babcdc0283c065768057c23a70ec5e0af87a4ac6805e1d4814a940f91ca07a3bdf2f05a36abd4703d770517bd4289ed4550f6a8b3bbd3a2ce40ec055c37422be3203a38e0d48ac1c0413ae74bdc5d694be13a9297d192db938789b3a4e6071eb395cd2a27f3761ae38da3e3a21124f6fe7ec67b4f449dab019a138e5c0629676af46484f70ebcc00ab40959815fe7cb3677d122e2239ddcb82081ad34b2841c5453231ef6b3b44aec98990b964848a4b733eca97c525f162d615b563e5f7c5ec63cf274ecb9bb54e3ff873883143fb74e49ac0982f566c7d0b09d3b8ac7d70239edc109da148868a3fc3dd44113c0d6704b3143b1e315cde031a9828ab27da665d35afdf48747ec091d33fb3ab43cad11bb2d8c59c42218369ad1263358c734c46e8934b3c717b526c3f8af06714fb37cfe1bc8f68c5ad4b6d4e8aca03c34d982431990bb007e3dc09e167dfe309b4cbe79d728622cb9fe6e611b251af214f7d0050359651223a8659b019d6e106ebe776e08b6f3b07565f9c160b8b98d7635c7bc9b0c6d5ba78023dc8022716832121e01b7236be5d8d9adeab3e46c2f34141efb2d9c4ce92472f92a53981c005f73fca32baa6b06dad563c20b32112fcd0c08fe08474aa192fe22350b1334e81b1fd3bf48bfae520af1f2589251e9829180646b6be40a8425a17310e6aa3d63bfc22fad3229b994697b31aeb74714028ade89cd9ceae04db4aad355383fa46c9f14b19f687972dabd46827161eeaf7bc699909ec60d5685f91ea8de29f26a64e8dbb497bd10e3c054526a170ca890f53b2127ea6eb289b8a3ad2addd7ba0f689cb6023eb5f0862a8b9a7c36bb1241cb97dee3e5e60eba21a9ce38ce4e59c8e939d91cced00a3e056eb43a3b497e63415c318a2deebc68c24faf8a5c039cff455a68a4e5f9be83cdbef03189dea07be516e353ef99d22e1ecc9f3a28ceaf1d1289e3094db1946d3b34fe426ba6600d75a0c198477ea64a6613ab712f8a6ffa4ff97f3688e12d47cea890a1db4f5045d715968120cb6bb291fe9451908dce6f404768e309f4fc776e25d2a9dd263105d21602178f5c046019de8543fa39492d0aadc672927da7c95200401bb00593e442aca1b3fd4c9637992e99d3139c776b6daa3dc2557e078c7b628dbd526b9240b8901404c916b97bd390590d6075b2cef26643a98eba23293470eb2e542c4f6bb56dc39a9d88d19cde1e410a111c5f6e646a1886c01100e073aababa56e2ffa8a87296d0f6a56845a3676917801b83a2e8a1b3d895e37d3f9d59ca3184949f15c295a85d577b2e9e5625fe9f1a104e6aafbb3616744773f48772548250e9a0eb9f5b3084a5cf26feb746a822bb5fbb7465d133e3435c614d05d86d574e1fb7c84a7209361c5e4c9335e1c53619a6066b3beadec2046e9e9a60aaf2e16f349fa1f693b44ed4479e68d211965ac643f8d2e60fd5dc00d5fce1612289fbe0e7a00e6689df4aecddfe453fb1d3a50d304c8b2f4c17223d9c85e38979a7745f119a9f0e71d6ea9120d2e6fd7530590e50891fc0514fdecad542cd3baaa7a00184172552fac9749a69bf7f6f63ee34f4c05c342521df69bbc34a0f4f7def17ea2f0830a55872515929f4605cf3508cc8c48d7960bc49f168cd801f76133c2080b1cc5be98bf8644b651fad74ab6c1a8c4b2cd15596c720641174f5abc9305e8f51d7d07e3f0ce3431a4b2df71a6047acb28a802ca2cb54560066f60f93025c87dc41a29744838239e116b25b351010c482aab3c05c19d4593604223fe6f845cf6c22d6ce1e2452cbd1c19163889e4b3f1adac55af085c1916cf7286b6681db47f53172eb865ca039819877c86316d655fe17c5544ad3a6902c46f333851252c9e57033b220539459cc370657e5406d34490a1c5a33cabb0fdee41c8d387cf643a60f1d52b176f5f1031359faeb2b29ea9220bf1a69c127751960ec80b6dfc01e61927e2854e6af457b8e4273e8940a2d6944b8e5711c4c7312a8a204174ddd5c545a3b3330087a3b4f11763e7ada0ebdedb90ceacca92ded66d828542d42f916bc79796abadc63276763d15da9744311fd4ec9e88d11b08a7105cb7962ff109eaa695b17c0ba6a9988290b1941a15282d875e2cd84651a77c568283bba4815dad6b8a76ac92279a6c7f95cfac51515b3ad3811a8209817ff523e8f81a3e3626fb66d96da1713eecfe534eb7cc42af1534779c8acccda32fb5b4078825a45f886bd9cbc7bedc6b2944c38d603ff75dec371d6c97c081b579de215e541ea5effa0c1d59a2a371168848ff6d9a6f80249c4016e700d17541a87e20abcd8733f927c44dbc5066ff40c68dcf3044679f333b9b7353234dff479d065335bbe9f089d6653a73cfd7c86744e546f64593858a5a2b5e2f42c4e24f6deb81bbe32938aef92e45245a1cf5aec8a85f1f5b1134be5afa21e3aa345b511416de19e32f8d17ccba3ec432a8894f00e75a14c7ae64698cd6ef91b7163d3888705ffc206336621616d00846fb5b41b3a361b5916f3822b24bc1551242192a2e91c176b2ba502c68386ae8461294da7524603d5434aac857de59ac5b59c8d621a5b2673af10e1c19a62f1213a9bb8b1aaabbe0d651aa3639868bb4ac4b4ae928e516731a829b38eaa097ea733bb1fc7297bc1c72c66027306eac99ee305bd1f52a6a340f578512a38d2d5f45811f1ed4b80769c1b2ee67607c840a631455ac3f21f880e2c22a2c1c49df475b83e2524c869bf155f8adef1564fbaba5940bbab3774a299b8835a5e4479f26a148e5df77314bf02ebcae32b8bcf8f0940ad847feb42f397227e6a3d51b562c83baaf8e5c038e87341557dea23b082b3f5f04f432b275feb46c00527e2426e90a9d21e86ff9f29290f1312bceba49257111271534d0a18e7508f5d1ad8bc3912e39da6ca36a8024a03b0376711301b6f2253f6bbd9f19002717e9b4b7c27f04bc7ac2eb9a55e80ba76b208c7a4807a35063ae9d7451bc24daaa0a752128c29c40880a9297dc414d39dfbe7180f5e18b26b1bc1ab6a8f8ae62086397d775f23d3495d979e04d9e6d4dfd50296a75c632e2b5246de87f6df2b8b0df35a038c72e6eaa1878d337dfd514fc2e2a7af9d10bbfca90f7925b41317eceeac3260093358c378f06af6f4a92a5e833b9c19963fe1587f5bb23e2c054e2fa38e23319aad264ee5af38aa7a8353eaf3787ac40fd1bc616f06dc9a362726a503abc2aba858292da11af494b2ddab8c26ce59e724b67b07e14217ac8bf2d67ed240c1582e18d615c6009e5c72d6a8ef82c86600d36e40dc971f0c7ef2dc88404d38daac2242b64654bcdbf862d9ff4e9e836666aa9a76f470d1455c4a8df81711ffb5de7f5ab475eba13383e06bfb7652d16ec7c37ce95270ba8710b68a402adae54498fc5e6e90f87e1caaae6becd217149af1b0e3d71ee0d60c4a3c0ece0b38cd8048a510f63c31f3ab9eb55fccef56c600d465283899dd63f042950d0a03b9684e98ad0162e07ab5d2afcb94c25b7baba54fae4295b097a85fcd740f2ba1d4fdc05e61b36a0910f313101bfb2ae1d201882274d4065c7b8aab76f0ff1a8219f4a05e37425b5761234842fa06b2f4ee542e93e7d8f20aecc82b792698476243e1856fedaeb8a7f5f152a2b0a2a8169573c3f4a0a0479595bf4111c99a8e2954ebc9b60e1d90e14ec83a2ec5e78ef7523dfc98507762cdc5dd7e78dd6190b818040ba9d2f01401fd304b203cfcaf3680127c65e8eaa51ac9d076c02cad8a8748197774f3e4548c33b7e586d973fae53a4df9502a543082dc8bf01e24b6d11a5663aea5aca6edf7a82d06c1c4e57286482661e25d865463cb6162268426da1ced0790f15f06a030234c3fcef95582014d6211d3bacf5da8a8eda61786189ac5148946db0b0c3902c3f680fece487dc6973a9725dc88f6c50a899d1336a46bfa59556848452dff88c108eb7be8ef802cd26664348cb097cf4ceaa7e9b646a2ce0dcd1223c2396f49ca0e82a0604120cb068bea222cad16ab6243bc533a4fe11c07a5b5120ed110414af8393c04d3e4f5ae5b29c4882f68cc00ca94abb18684ed7eaf766d485aec99e464ff666ab9705ae365e5c76a9a9e58da902cb091f313ba84b9a4a7a1882d2a65ff7de1df7418055f4d899513f214c0cbd7e262858de1b45940f35f39756e381e79173c34de8156fa87b627832ef63afe9109fd91f03d35270f2f4aca1116931372ca85360ead62cc29adf5a067c6eebcf47f8ad2d143fc75249c2c25f4b0d1dfb633e3dafe01649d8b456973979e23dbfae11b834e84605ea1df7a3402835cf901126f60abfcefc52744a1bd7220b2bee83b200c7d0892aa491befa37ef704261a29a81b0fb8957843f0cd1247620460ed7ba9214dd09b982dea13d9d4f27a23890065e074e6216807db2836a92038c6491c1941c3e8873e98690a29da5639670cb2d450debb4e6f5c1e3819f9cf2d067ca6a606be6ce0c7d6a5b57555fed45ecb002c541125958946bc029c3e392a2019dd8cb4cdc3adb61df303981d731cee39587116afa307c8c5b07812f97dcff6d59f168f2d78951e31f07d4d4e6d5c83ee534eb8e9a76a07081c14c05bcae01fa2a094060508c694d073258b0cac25c05c01967486bf61e6ffcae842eddb4f7dbff6e99f09daf1dfe75811d9582d0d1cc45772b51ec6e10580fa30000000044c8301cf5a44217559ab0fdd870a5a2ba08c546d41db6b52ada425a93b29bdc7b6f29659201260456048e039bc65aad564beb8c81a9805bcf965bcf15baa222e4e2c643240be2eaf3c6e3434422d544e68ae8027774a7664c75d1976b71a782a668a2904f44b2750d8e0e5bd02d6c174b7d0769afcfdb4e1011898ef19b559fb71d1f9dd5e76d67a8931c67079c14eca9ea5cc0c0439847109f1d4011869b0f939b0f944f148f50df371ea2bee7057878bcaa2d566e3b4eb79d19bedb4e922370521393c60020aef08928882970b47e801b9686a85e382a62443eb7a4b5d62a99735a1a7b266f0408389e791e3fb09ce32b2c30420499b36ce8e4b119819b62f6d85400fd0cfb2a09ca6f40cc6d30bec16f332b5f6191885ef1cb3b9d5ba361a47e0f0a3843b0a40cd2ec540412fdafc28dc8099c74ef8af1d79a1a8e8a277003685192a8e99afd2e13a845292fa8d5c0bc90c142f93b6c28b99404a0a95d994da21250fb22ddd37c5272b52fc645810a9411bc8c911204a4efe031a6dc3556ed996655d10a3a6ce8f15e6ee5ac024549091755b34b6d6a8418250d251101d482286f78212e33886610d3896dd53e8409e57dcc2ccf03131d7a88617af119b3844259a69c824309abf54c1760e408da11a6050f199052290750ad1fcdbaaeebbaaeeb3a1eff03e8811881809a0fe5eb306b78c00e4a254ecdca9772fe60a654408d06a47440cd05116ae616aa2665046a38ccf038a264e86a73ca4b9967861800cb016a7fe386a9728a812a19500b9a609094260420c99272872425044c54806725e6abcc909194b876653e4da9b20035a372c68f13aae01083069825495e18e93d9aa2f450fe8c0ba4e810228b121a12e527866ee401e5ec4cb928235484ca141746dde8c8938fe19316509b4d93872c357c90a166a41cfa1d1aa54d0d0633a50ae5d4624188da87f1c8bc15259306593997d4cacc1cb490a1928254c9a4acb5b0964329a2e67ac156de1917d8b88490c2cc8626193e656674a3b1c654ce3035d4b6b450fe0f0c2505784eed0b102595d2c9d74e285fb5149ca0754035eb910313a232555ccf14956e444259c2e7544aa0c6a25641ed6ddcd4e60bffc3c4e2746b40ed8fa44cdb192148509ce7f1744fea4b67adb65686e7793b4ba4a23e089518a4138568dbd1104cfa6be500a551ead94a27fd2cb6521f0060467f65599e35f81cc09f7382167682feb08f769c8d1960ec730919a63e0300ce39573419bca8a2b149e648ff0e014d726ccd9021f2f3e64b5065b92e6bf05f3950b9e5381637d2bea27b9a039c7409199e9af3e19f262c8d593b8ea0e3fcce7559878ff408be779cf3f11c05b5cf51d02d16e3fa7d5acf0268ca672531a21b79684373b40bc733a905555b8ee3382e64317e218bf92af0119000377af2d90d6084713d2d2880f9d14ac700e8e7340260057a5a10d358c7c352db686e03b5d65a6bad754408f5c66687489adcdb86dfc444e8370366e0bbb8f5b42100b4e62981fb700b7cd4020a819a9bef7b3d00dcdba541007e1f8d0e4b97cabab7b77793a8ac77fccbf9cb63c7f3ec4ffc489260cc33cff332adafeebd37cfaceb45dc0045264d451634e5f3c6d227429a37a2222d2276d3e9be11f13cf971449df65702be6b4a8b4bf67603861b2cd818938ac70a3b104902c60521dc0d2929a9aaaecfdb8da539ffe7ffd7d071246dfabcdd409af373fda729f4cf18ed355730a56bad1c05a55d174b3f127ff9c8fff951ae5a1859f9ffff7fb56bd27a73d6de6e04756bad75bae113fab8d1627399126de82eddde869c86985425f071702ea8961a6912a772fc4915377de33ce03624a4d73e6f4327f4f0470fcd24c218a13343412a0cb5d853bbca4b98430fa10e39e80065d3e064db600ab9a88014642b49f2d1218e6043cc51c21852f2cc40b50398b02a4b68260a880d3f326c2c4a6847422d436a9020c28eeda4dc446a31c2a89a4f7843102910838316a51d361051f68ba63069c90f0b620d14c41d20418e786e8434d8903165e367039d49610cd50f3b569448d9456ac00186508c4d29053b8709a10d3c421f70e8a021c2a801b459a811c29e21153e750965e041dc818308e4b47b9a84532e84608a8835a51de523449223a452838a906c4b09ed6c13ca84247ce981e54685e969470ce10a49b6cdc81321210b235015ed16b5ed038d99e882468f28a32a1c214c68820f5ba6431194183483f8e2051b565881080a3ff617a34dc290d40c5a0f335c943113a60044105bc45409c7dc008606d1e886a48532296c2825402185588836d28c5d838c17473258843190115970d9e1cabe61ca2e9f846498882520d9b254e484137a846144d85e8444192d28e4416b115a99da495ef6ac872d398834284b9cf860aa4185a320e12da98a0e3336c2c480b193c4e03142157e01b363c892254a880dfb8a0ce1192544fa1e7941df2122cf8f0dc3d1e681481ca211be300b0aabcc76f614aa2061c212b48c50c587941e4f441d4d760ca6adc54868648828f4a3c951988588050d2118414360ec6c2b545dc28837b4ec1eaa389122f63c097968121261125b18c131247cf263473932220242630fc9829ac876c424aa508530a14dcb5eaab289a4883d9ec0d0e40653e8c5c86632a4851fe109479b07d1121a620841413b84a01d17a8c432cc9e41cbfe51450422255c7ab24b68b261308960048521a2093f9c8ea410854c686c324041bb0868274c01151061b696304a952629628c27529a845798ba18d94786842efc08a18e441c443f68fcf022489cbdd8a1412523cc0e427f5a764d7f55441e53c22350c21f64d8429688346c220945a6fc08e9248e0c3f7a98e407a993383838b5d6fa83a3d75a712a025aa0a005e5cf3fa8fcc71122f8fa1ea0e307b6ea7f80c90c2aea45abcf9b4f969eaaa0ce850f07c30ec9aa9d3e3c7c82fcf8147111c46e5db3eaf3e663eba4e64250b438436f1f2da375a3872388f321c38eb1fda46fd30baa7ba2c8f4fe7aaef4d818bfc97dde76649de438d706b5dd77cb7dde788afc3fad566e3c50d65aaebbf154f188e91bd623eb1bc491697cac562b10b4f52cb56ed3c37aa2f43f1868eb5cbf31464a46453ba4b0f406f479db41c4abb5e31ed45af557f9ecc63a33ad7650fbfc3868e7f3999f4f1d8ecffe7335e7bfb52399853860efbdf7fbcd351781b9089d53707c6539a62e9c31c699e316a594ba5c2eeae22c976b246946dd62d18cc1d103afaff26ceb5f91ed55a2946959966999a6f47596525949785a73eab978cdbd2359d36f9953c33f1e023629895b039b94c40bb677d757c6da9bcaf6ceb33ccbb33cab4a9a7a4c3b908aaa8ab67403f4792b4a5244a43ba0cf5b118ba2eec1488b659d7cf2479276fc7d23fef9139f4e071ff42f83fab57f32f2470f2889f9ccf813d1cac9fcb2a8394f1b29c5948ee4ffb038f5f8d36a8e8b7be3c7b5a6e11873176c5212342369bb66b1bcee81377b9f53aceec59563a03ff18d3acf3dde719a3378ee75a30660e76a91a6dd982334ab1fa86e3938ab9af4e6e056d7d6d7e93adda7d7cbcb20e5bceb74ad5ca73be53e5da85e3535d1e21d6df2bab17efd68936d82e2e03ed58ce4e7a2b94ede85fa0be55da8fefc5e1a9afbf4259ed626d66bec78e55eefd17cb0dae4791d0f5179cd586db6da68c6fbb4fab94fd76976562d22b114f526140bdad46b4e2d2afa5b11ac02293dad74cfbb4f5ce6f87daabca8e67c45f6b134e57040da902aa6951a2c9ac632e740c5b4529b2cbf4f7fe2efd385ba4f35ca456d4670516a5b515a54acfb7fce5b755d47499ad547699dabd5d66a57a3f5eaf7f18f4fba5a511925298e8e613a1e07a15b1a4a31a7980aad68461dccbd1aded9101bd48c24a594f6728d765c61ee594edace76e3881506e0cdc0722afb139677238a4a734ee1e276c47983bfbce6f5e2a44d41f306b8538ec16b242da5b3ffa7b60e62d8ec2b4c29a674e55118957d89e71f07b334303a8be9bdf76a35f598b1d53a96efcced080fa7e66070c32b4eaad85f4eb1e23a78bc2b8e41c5b33fb1ba239d7d098eff533aab2bc0ea9a92c4d9bc740bfabce958d2f1d3637dde7244e9283b9869dd3675fb48fce65bf195868508c1bd5549ab3749d7f33cefc27432d7e2b8cbf1fbdecdb3f7ee67f072aff7dd4f6996d18c83d22cfb13340b557083cb29bd9996f44f7937d6ee41ded1aabf766fbf3c1b49ca2bade6d82216a5619b6534d33ed33ae5ab157d8da4aea11ca7cffdf71dafa9dc2ed5d738922ab6ce334a69b675f0decbf18ecb60e559b67ace16dd24d5a4b74bb668a9e87e77e719a59cf4c0eb97d351c5ee39c35e5f2aeb977e9e7d89ab625f4faa9334c92e556d9702bcc23e1ab318539eede77f98b70239981884aedcf29b58c56295e65f0f590f9e0dcc9a31780dcc3e62b5baac4a29ebe361eb3724a86e39de5d0a8f3e65ad78cec0f7cfd258adb15e0db056b0b6480c701cc771dcf3f8e51f5fe141ef3e8fe43837aac0ddd62a20cde1f6cb3fe2729d8ed7cef187d9af36a1f457fc7b0ef2150b966276d6cc1db0ac9104398bc562f18ec53bce1a3f3e5774905f1415afe817a662f76fccb3eae115e0531deed3c7711f77c7112966bfe3e5f672bbe295afe81c8cc41e746f767ce6baa27b3015b8776fe5cba292cb34cfb37154c6ddcff2eb8d644d07c12ccb33229d5bea5f02f1790684ad13017c6b4713502ca3318f528e13514b6cedf8d5e3dc37daf1e74bd84fea1548a7483456f997a2184df9072307f4252c87c5e889237f4a2ea24a1c23b5e1ef075b929b932627283bbde86ab3699bb6692e365b929b932627a82c54a12ad4942ccb33305ad76c9b1b1e137fb8dc05a375cdb6b9e1312efa6bb6cd0d8fe55916b2e9265dc36d49b42dcfb24cdb4a5db9cd56a90d83b6bdda3acfa29680f685fa8ff7f38f355a6fc11c7cf047fce5bf5aa7d845eb5cce75f29796a88915f778ed9c50134dd40438621aafb77af3c0ee35b0fd3e9024d82b7d123561f92b51131fffcbbd123501f2cac52dcf2f7747318cfef8ece416bbe8ef36fc2686833bf99d1c318dc63ade413d73e69603c727919f74cb21d42bb749d22b27ea75de4490ca790bfc12c63f5fa2837ae6cc5e922dd51c6fe9c191fcd56a5cea35a9e6d491fc3a18ae4df888e6c23fb874b93897cbc5f18f0b972e17a6b95c2e2cfb1fedfa1f8d35cdd769b44bd3600c8481301006b2658e9cfacbe8f36664b3e4ec977b718cbdc7de63efb1f71e7fc174c88e7f1c84fe30b2768cbdbffc3fee690c5b759c97f1485aad5f98bff4eba55f2ffdc2fca5398aaa359f1debd748aee8afae356f8d282a7e8d28280de62c16d7af166f751c6f912defc547f26968c696d57cd249f548babc174b73974b734b63f5f3d6e87116d600ecab91ecf8e52328ffbc8ed3ffe9a0b5386e61a056abc5f14f0b97ad16fec1b456ab8565ffd3d23887d5d2b3e6600c8481301006f28e20d1fa01fabc1d59e9600bc37440e8d7cb59ebfc91b6e7d9bd5c5faeb3e6f9729dc98c4307e4f55e9c39be6307b56b1284ae7339c867de00e499a3a01a733c5259c7bcd3917c166bc4ad9c716e699b6e7be6ac91d63c858df61bc95187221996e11f5ce21f4cc3328c8b68ceb8c5bdfce239e7170cd30f9108a8f44b9a935246a301000843170000280c0886c342410e0421164cee0314000c689a365c4026250d23511445510cc3300cc33008820008020008c02010c61802723d000a6a9b8dcc186e4bffe3fb4fdfaf9bca47bf4bcd91320bf9f1d0f5f159fa5ad8101ba38f2655d947b54f5d5e9ed3ae7f46cb0f7a3d2c5ac7158a3e99e2c1489b2f256d0ca989984cb813f5fa1c3d8ba414903c4d52524125f03e21e45c2eb89e75be867eba8d3541ea07d1ce73dd85949fdbb973b91812de62398ae7091aa09990b5426d1120221a3a707e1c8d8fcf47c239bb71105da9cbe53dfedd9f28eafc73b801ad076fd6b188f75756c702279fd3974351200aa8ef3361ea1263f4269c9ff05427289479fd78a3e321899542385a781b8857f42b1091bbdf6936d9d9e42824d1af065bfc393cc0003f66a0abac4d51d9e3e5ca8b0d8beeb09b027c1267a0a17661621a1b39a45f746aa9942c8d284597a3b666cd37d71a97b19699878710460018e6f3f66b9d4a384589404288ef7438ed1bf4fc85ee145c911a6c771876aa64fac9ce98903af46075c31cd862b8b1b733ff4de750b87c227894653dc09248cdd004af27ef299c81fbaa3e98815bfedfd1b48bb6f0420682e8430af8b953dab3406ac809f71525eb24213336854504be296a4e76dfc2799702a856e6a01114aea6e2293a1a5bf1d55f0b7b92c5a0f46fbc2319826ec663661891fae9b195847c95839e6036b081b56669729f08d34f7c822bcba9a91105047b5280955ecebfe43c2e8316002fa1b1646a4ed8e107c79e1cf0321aa517ba67f9d19151b6c46dcb6c8f8689d877b2f9bc69a148799db2e71b2e2d59766feeb6651912049309fe8e903016c9cff78c4ec40c19cd473ab158038e012ad1f94196475b1fc4469fb5d6718c3b9a0b7f02322b176a5f05f2d47f4ea038c9565a7a56c7077d2241eea8b4b8956b15ba593d00d137e744df6b1f11677877979614e9db64095adcc0cd8b9ec6121f9f37bd870b2af094ff4b7922cb67667951cd0b121009a39a61ebb8df0213196a6c9feae3f749f125956b92eb944edb2ae4fea8740273d78b7c1b8f07db27dd667502b4807b548a67fcbbc3c76bca12f6b6e5bf0998393c5cf0b42abb7b9c3f409d87a09703ed125e8b21a6c794aa794adc63657f3096f0301e3d2a307f035b0f099a6d8261e1d1b018513fe2fad02518982a8d4b5a55425ed685a4cffff87592ff7d9e5e53e1acc48705bafbf117d953213dfe9dccd4783a19f86cd39d5837b5ad6d275bf8a6f543ed949d92a0186053588ce380363ab655bf01d4501a8dbe8841327b1b5e7cd6829f89aae5cfb4985693f003db4b096e6408094d8aafca98d3c1030494a8d9fe0b9ac08443a78e764b7068f97ae767aedfd174236c6895c5a3adc79f261cfcbea4908bed05aa1ad9ef5a6e8361ecf67412baa8fd780280789c9daaf834a94a3b8e398745db7cbb6d338c5d589170423ab5d7d7063c1e0ea3c34161d7bea59afac356102d409200cf4a51537098635f47cf340531e732b96b8d26437c504b4c7ea0b7af91000b6bfed34bcd724ddffd1266bb1d8accbd94c952f6431f335d9a4294b9511247e73fc91b4d65446308fa67f1068f2283e5cd4ff2a3cf84671deb422ddfea0a916cdb93651553b33698954892afc1fbeb76d7cdef3b6198aff353173f59bb14caac93f1c2390d62206a1c8276bedf510cabc12c362986f7c90a8457e666a54f65bc26726ccfef864f4e161004781b4aa4aa470c5553a30879eee947bfd4f05f1cd383105d4a4f471f853818c49339d792e5e297c3af0826da51fc440418ddca167314e778cdfbff1ea1b5d4790d754a5b3c31a07bc4160db0b59c849efa43eaef11c3a64d5b9b3b1a4dd18e36927251006c4eecb92c762935552bc6c1de1798000c3a89a99ca518e094c8a589eb428b0b6e9b0568a79119d0502b980f0d71d584f2f693570621e0e0e448743d28fcce3182bc7573a4fd1d4099589b2f475443f5329b3721c41b18e8a53311a0bee939b4b0a3d978ec54cb0df71d33eb4504ad7ab0b983f6d28326b9546d154d0339b2467e890eb5e765932af06c5aedfd3de27c5f3bfbef8f7ca57aa2eaafaf699fbc89817cd9bd9bd47c61fbc623e24689d4f899b649dd31f7283069d4ee65ca4b1d4f48460dec0c2db0f38d3429809ebfa9456f60ef0287f58871575a0938b082cb7057bc1282bd981b9e9902f2b4577b88d017b13ebd5d2c377f014de0356a6022ca19e503f8818b58b895f5588aa20d33d2cd84cdf0e112b1af278bfa0186cdbdfef40c82139b6e4b5b0370f04c2d605f8bc70a541cc3c2e4fb773c24a81a6e29f556c8b1d3423589ba10302d55724a0e130df0a3676edbb73d4585155013fb6d58c8197733b8e6c2d6a39fceec87c70970ad58d404ea36f5f998242b9d6d8046745631dc84f0a77d7496f73ab586cb0e2855ac4fd4014aada02ca73f6f2bee9724345c4384771fccc976cc9e7decf29e9fdda1575b26dd05401a564f4a690bb971ff7d66d5ff1aabe0737e7eb7c9b4fbbdf8cd12dc8f060672e89ea2b46260ddfbff7a42e84f0cf250cd46024b30d1e2f5b1e21752b08e03877e4a88c1681b9b5fb7f5bb8282ac90f694b79345c1cfc15f13b87688a30dbe84ecb856eda06b707b8df589e6b54d4c2d51939b49fe0bce30dc4a899e79ef6bac3ee8722353a99ef01510f0d1dc4b5bd5ced8f6efb50492f95ddb3ad0ca8065ee4d17731fe4a618a83c1151afd8eb2476f99e6a621856477b804873d38f60e58e5ac03147388b7b63aa80017317421a1a8dba202db9fff721436bd18a5501a068c87df9b72819fea6e87aee222b1100b9a3b50ee85543b9d6e38f96b60d04d25b8841dce2e68833ec68c358ba953ff3bce1724fdf561405193df4d1571e32e6dcd71d51e706c69002dd98a7cdbde2243e9c8eddcd12334b9b6286c7083edd27f2648e3ccfcfbd8a48f5ac89f9c70f557a2a9dc72e8f6630b8fc0887e758890998478626bca34f7520bdc26110f8b7f15759476c8a8f6ddef1d83a242f51b6a00935230d5e77860b62fcdafaf027bc8ef430f8418cc9126e5aed0a0a934aa1cec7471a03e71bfe63da8184089bab18e7f14bae240428f3cc57d801d24395d4ee20a7239e59d1369208942929da3a8936e4c490fcad53c17a40b8c87f38706d64a04b922560ae86063268ba4309132f121b6490b32be37d0b8803641d396ce97656a933634f8201076a80ba20b572031758af09b267250e8dc568709882b29224db6907ad046bb45a03488623742b9c48808323dbcf6085d45611d8d3275d144cdac88cf302be21ac4ea61908c871e96022041ac067819cac2160469b3984a464522afc5ee4f80cd0d2b2a573450233a10bec21580f0313be0c02cfb0b6e346acf24613c5dbd2a9b64f64073ca05540601ab118e81e1c4149bcd64ce68e267268c96e3c5b1688c1b73b2cd009ff71bbd66c39777921cba5cf284cae8f62073115e21a924156dc83a385e4499b44bdcc85843a70bcf0a28906288294c79294eaa11eda3dd594e04541e9cb8a44f206a3083c2d9862c131ddf97029a53deb0008d4dcd054ee09500ffb1c08902d77ebe21888cd69a9d74613d499af2f110a1313450113ee21eaa1d805a7ae3feb4bc9424403fdb19f2d7481841fc213a1531fdfd0420a5ff8526e0f11320b1e6be37a1927356146232310fe9139351799c08e9a1475f2d1b5393f809a8f70e1cc85a610c523470024b831297e77e8646fe4d25d7cfe0f1aa83f0294225c7c2747f0e0db7c7f3ea2cf48a45c16fdba2540dd8132626e8931b88fd0641e3c306816c6b78a2d924e24b342e848798b68b0bacf741f42e0b831b95860453d1607778ab4ddf95e5cf42b11778a306620dcbd64b6bcf230f44da233f151efe2fcc258bed0668635e5f7513c45462f587bd4f645d657ac6f30e31514044dabfb788afdf4c4eea0de145abcc19dfc764eda1a715241cf2e0ab045fba8e294bb8a6c92160ee79b567a8c75a1819a9fcfb1f526958fb362ab1279e3921a46d360a56e41569ffe46ec7c8ca638747df6c25cf39e35366be10d81834602b2f516cbc13d6f54e2ae8ab1abe53e81b1ecf5d6cab6114fda37a60bff3693542ccafc88bcd7a02276c3397ecb0c682dad6c270d90008a0b8e3ca759ffb04cc827c135829772637977247a37e9dca834dbb683bb5b353b3fc240bdbb4452750113f960b5cb5057328779c66d416a0656ec6c7ee4720d5efb0c9f0faf50cfcb08987d035cf89c7f67b708616fb8ab45249de58e56fc598ac96f5c4cfb915ff9becce5bdcdcd1a1e40d6f0dec1e4c2ef5e52c21742d5dc3bd3574861c18aafd3d0e428e5ca33cd530f1a7b54c9908295312e5160cf002441e2f0b4f5398dbc4d1ca668362b96bd3277d582159ad7f306920fabeb24013de9c5c18eac2b286172908ff52aa78a7aecef18c2637a396ff98ee0735fc2fb144b052fea8b6b1805bdce0b828b682fc851e576bcfdd0b560472afc80b982682f1a03b920bb3cb2a4f60b0548ff90c1f1a41f7d4039a8cb2c52129dc061a68e91073ca020f1460ec0fb6b7b472bc4275567031680327176fc67961120b5e057c8ac0b859b032e2f22958e644d2fdceb5eb000064c36d00690bec8b08f6ca55be3be353b50baf84473ae7b1a8d32df8e44c1fd754fc33a3910b1aa5231003e09ba8ab826b30beef378e38000b8d6bb21437986684941b6524e7631f45362e31c062d05d8ad075b8cc8780491978a9a5164bdaa9c7394ab010b3d2b7e497dd66b9373fc8fb2ffcf396a3f34b00d2636e867b9600a06b2bdeb888d11e06f72685e3919b1819bbbb8b675a77f1f8cd95131d41cacb37fca570d6fab714757ec419ac71c6ddecb1c75d633473d7798a7e8e93d6b88544742e1b08d3b78b5860d52c053695a36e85c9163a095f5c60d01d31a3419585d394a18e0d6488e6eb776ef128df541bb1976309a760d342ecb2608ce89a8e957dc701ccd58504b7e7a8f5bc4452e6a76b11a171b4b5e1a4736daea1447edcab95ac120cbd803016a2e9a4f3810093be3665029c3d1a5f545d88cf069fc19d3d79cbf2d5070d4c2f0c25b9851625af763ef578f1c2480c96becd733a0d100f2460be854abfd46852e9b2aa6f51aec5310063dc99831e1530035db07a20102a17919e5fffe46b1c06b9720af43b63577a15dedc472c2bb5690a00020185fa39668068cba2828992290e08afb2f2b47b84e0b267b21e1e445e8bec2a7dc1c89005e5aa06e0e8eb030344c28a820401c6848a1001aa839b8ccd6b979efabd679bc85d92cdab851d2430230f9d6cb950c85e6095bb53c2ab620134434040608aa73af85ef8ef2cfd6cbc293fcfa9f14274a89973262a7dd61f5c11f3b0b7a899e136351aa3fbab414359cf59251c37c62362352e6fcd812f4271dc110d0cbf23df41fcbf5d828cffc0bc556e1812dec335eb17f2683a4af90795188bbc646c9a9613db35a545983f311ca0fe768bab1f9e418fa4708d89605afd05702f1ed081ca820f9602e9d42289fb6ef238dd08c2b6f30b52ed54e2f4e0869915e798f01c3149eae1a257ff54ac1d075dc88ca768a2881e0bc38712b3d561d883e5b0b9f1af543640ede3cbeab58a951c846cfe0ffbe7867a4119f7f1b245fd988d3373783862f9066c2529aabab0dc9a02454101d88f79cb4d5f60dc32cd907feab74acf441012288d9a5128650ab576bcba1a3244c9d92a36d659f33a1a8d90e7decb282efd121b7afe86a3110c7d66f5b2c9d95e89db185baf538b8de3d21fc004ad5437cf7b8b97fb6fc06ab91a5fad80d1806402f9b3a90f60ffe8ca0507f9a3265c680f40c075b2802f487b65821078d4f98a07088f980e1151439e0d74e2b6194b2a08361502b4ab49361c914f2029d3b299c21b634a7e7960c907e0b25e34f4448d2800f6d27e2797dfd40b9c766257d3c66031f4bc6df74dcd8da04551b133a0a757828c49cfd98e8325e8787fb7a282defd0f32bb2a1ceda2b2e8b60f1a3890edc7844cf25dc50439087bb2fe790e82a7741173d76ef805ddc1ba31bb4f88a78c0ddaf8be0e127f059c3bfeb110c1fcfb402d7126007b425a1582c40e1e110341721eee38ead5eef1e6f1db0bd02bc363fd0a8f0756610a792bb96da8f11f91b2823e2e3b3f2f63533b66906bbc7a19a06d8f72a7a0a854c60d21245de2fc9a9bcd429c166587d5f346019a418677e04cf4cddf01e3c1d735ea237133297a86bafcc7f29a1f12b9968a885b4d0c141ac6a209cfc54683ededbee3d24d2f770d0bda23947e82417b43f1a874f63de8f0ecc3f397da24b0842724121dd7f309d6682909a312bfb58112eb7a0880c13b954e01f2763ac06870acdfa7c7fbe9cfe91328d85d33cda84611ea3a7b8a4d0267856fd0926b8613893df5850d4bac7c50b4966f0906cb56ad42d1b003a7f2bd38763c2b0bdb65afa50c6596fb2d38c31af8a099726e5d7c79054251cee9f0f949fe32b908ff6029dc1c82624fd2f73f563631077810637cde1240d87197908613e843fd6901cb4deb42598b2be0a0ae0371167478550f8701ea63415c214a9031e383d4a3821d3a3aeecb3a56cd2fa5e3bc68759f6828961f32a684effb617319f289411475f2465deecbabeeb1789ea79ccefc05503c41ffb0dc1fd85e831cb6d793c706a8a437c5a935382d5fa1c09fc1658f46d82122a9f310e154037e0851b68fcc170c08ea2cbe77c77fb2b56a4cba7ea2b6db61770c400ae952c83478c5df3583e69ca65470b36ea9cace60e91d4e990b0555df73b08b94276a390374f6328acb77bfebe018ed981ec00297f792c9f851960266bb30b67481e89c3420ba85ed22025fbcbe4f8c5d7b795633d77efe41db3581efc3e4f063c880ddafa299f7e7da5977959a56d77f050b7e8533e39310cfb54721a6d08f6b24e72f700e8aa6f29412669eeb87bfb94cfde97634930b89d4c307014a56756b6424ab15786394404fd7fa027f96cda173870b784914ba0fa506cb8b8c1fe38c55c74dcbd99094f5ce9828d133ed19045ce2b9139f2f3e81ae9eb3a5fd022a7c7715e1690c7e34582995a554c04c946d266b5ebf5ec21270c235f2079c8c9a70d4b6202ddb71e50db00f96c6c4c6b7398dd4325d1f8769ca18cc71f64dac6e92b0b17b7e33366707b4606228b37e1cb2fe67f1bfaedf8248d8ed6a8fed3a1bc03c4871604f0fdb0338e4309922e80ee6b7c9e7a307051d628d1d297ebaef1a9b837f8ce758d894010b56fb4a9c5dd19c3aef1d94fb8c41e369e2139ca750ae2b7e3f379dbc0f2b84d6fa1c3dfe51aef8c0ecf96c6f8ec7b68fa509f413525dadfa1c1d46fc4971f3e63422ec469c68a4f4b59ca06587201a0c649ee38f129ae30d71120a7b74fe2b09088c00b44824ff7a10821ea3269f8a9794ec3905916d768da784c1ed96bd5a978f05f4e783e7c229aebeb55b0575428d9f44f3a0a832acc97cd3a7da4d2f63daf408b51bec6b03010e6d8f0b9140b34a02b0782af9f52bde144ca08eb86982f7d274e5e85cf45e480462501096838872a7c16044800dbe0c53c43fe5f8aa5f5c2228c3aecd0be94c75b2fa1dd64fc8dceef5179fb20921fc05d0d43e10e62b28f736c8d1c3830f5b2df3be0c7b49feefbd737fd14b940af7f8718490f0be2222810d889d4103545f1b1b9d5533c4178c7c486b3a0fafebbd7a740b0e94c0005f34da5fb807c87f9667b0bec78faa30239d88b1365b98099b0360201a9da6a1ad990df6209471c8d582a468625cef97ece84dbb1a34135ccc2f0fbccd88448f80cbe5e885ee3559282348adcf6f3d549a49b05e054cf963d0af5566902a1c2184645134a479219eecbf8154cb6f6c068c365a4989da7d8d06aee6dee65af5cfce5159b8201fbe90eca055fa2b544f964df80047877195ebc0a33804b4571339014883212309ab378af90e9cd86b77c3cd720e82da6f8935b980185259f9d068a3649e0ea01cc4c7a3e8c756b20690bd39c7ec972f8620809146ee58af297dcc31301d36150026645a433f14ef21d7f465d38c2883b2c4ea29400d10f86130b579a51e5f132564d4990008375b1fa1677ebf762943c144547172148b34a6904b8bdad3c5a02805c4e5991e46ad05c860f984941fd509fa40371b534c91de018e68ec9d8a592f2b32b7973916fac2fb4702eb613cb2a60b0a3f852fa78942e2fd3fa16028237098f769accd613f542ca94387185de2a647cb758310f69c93b6b281f2315a47188d5b9d8f16b3dbe04ecb4cc53fb6078be38992828a64d7aab40e4103d2a656da24bdc0075977ad8622f82011435f050ac8f9e947cb54a6abe89af0eb0b9f654d2e7c2cc660fb7f3bc2e577c3256645b27d43544dc0086c15df556f2b97c97107d9865c3a0c13016df578182f24ba307f2c5079ac087c36a588744c23a322a7ebe4a3e4c7d01f7eccaed7daacedca4e01b47c631d84e9e9730b789c57622501ad648a2b3d48385bcdd3534f456300820a8457f20051d84b5cf978232d2f0c71a9d173d89c71a6cb799a3ebc7282516fae5cc7eda21ead7edac638437c4b3027e9f8387d3a8549363bc6b8ee5b59bba7b5094cd6b2797cc0b47e9f03385478fc9de48ae2b186bccb8ef2231a4192efc559423128cf85363bb8ab5fdbd508358223ebbee8303a78be23ab9b8db77de115b75f21cd3e1349c6fdd8217b208bbdf43a5c7f57c7c4a5081b4524292149a8179bb39a7ba2716b37dcaf58a844d55a70a898648d5e8057988ebf9fa0dc3126911d5eb1b8b1a1cca7a469420981b56d466164caae9beb8c0fdbc90496f33395ab4c3de7a98565282384e192812f66adf1ea04548d8e32a4a0a84b8615d6d6301c701af539357955eafbdb1d82660c47f9792b6a999e3fde7f50d5e4a7120b708bdfe9f035e322ca3bbe2554a9ba62c52d6553e83d9adaf5b311b857bdbee70048222f35ba6f219cc6e7dd5ebbb03eeffef75475131f4aeea500f7271396e728bf0819dacf37500b4c64df73d1b9867d9535e6a290282d6ccd272811dfa7d435026eda4325f956a16b19b4d439408139cd891248602f9b07c8bfa5aab979e911a030899de8ea7f17410b8cf9a34c6683c16fa727ccdf1e8389e0db4a6fa3787ac5c044772b7386c531a394c691cc71a4ca07405953201308723504489e9edeef22cef82d7e9db16b3a8d91ce6b030c2e05d35c7b7050b2cb5376e507f13b39f74d9edd1c2f78093b0b9afb96c5c6ff44fe038f7cbcd6414bc1a721181d59e93ee8b3c4e56da0e5abc8906ab03f01e0ebbcca990c473ea4deefaa3f25c0349bb98df20becf945284062b969d18affd93b1232b0ab5c44a4db4bb89f19ff3fb05864210c0566a2696156006232171408e09c0320e12aeb34f5b75b09e3dc6e637635cd357e015d7ebdcc50e23c03b4b02bab5e42e074ed80ce550982842ddccc10e5a843a4cbc71ff982c210f7d386f60f0ed58e3dae42389cad953aa67fe4e0b4ffe3858b6a6352af75ea65a4dc536501a6d79088f43952a1b52c37d764141affdf03c84f956e881a0fd783c2029dbcb8216437de99a886cb044dd4473d7cea2aeefb07f377b166243bf3e1e2d46d0d4c2920906d3ed194fe33f11a185e230622856118c0edcda8236b37fe10d41c33574d51a9190f935c3f7a5d927f804a68f6d4e5439d38d041bbff16d3c9ca5d0472d42ccd5b099822551c5365e07caa7774ae615f6b09942286b621b1fa8ac1855d66db532e0f567d0d5f49b68ad4b1999b4b47c05088eec0c9d95e5a770ba9abc954117c6674932d6ee67234e50e074e00814614a3d67f1acfb69a22d662d2423526b89c2d243485fb48ad42e0e13bc5416ae0c692007994f4e08676e87dd4b6bd655213ca743fcc6edc9d3d3235e62cccc4260928c33cb591bb390a160976f800d1991b18eeecfad9b411d96306b7a06891f0cb6b7ed760f76421bbcb11995b15f4e0368e3c32e3849137003d2af8fb1a2f927d28f306b113096e71f0c8011c1eba609289319d2953d7df1e37e08a150d9f3a1b6ed64a8b9fc2f248742950bfb1686aee6cd612088602a67708cd6823c6103b6ef3009f6746f830f0b11ee2899a068522660d30a2c2e1756731ae62338a7dd838c7524b38d7e05e5111222ddc61c815ea31ed593de09b225fc6c14ff565de4fbe97b568addd63ae123128aa0c359c2e4eac06565dfa06e44c6f89474508499b578a978903035e2e53627706d78f77d9c45570b040304c029e0e8771da083e5bf88506d4ebd489aba9b21aabfd4588c951251552a9cd1608141bee7d4e62f7741bb9b6edcfb50a70139958bc23d580c03697fda6aef932b363e621c8eb12e078306801a4d0cf172aff583423a86dc213a8f0561a804767b0d9c3173c6305df725ab41683d05df6cfc5072de6cd3d2d651addf5e76a8e8da9f28756f237a77741435753e9e887d461eade37aa6940e169b093d773d111738ab6bdd5c971403002f5f49662e7db4e9f3c6ef946b6690381c62bd42fcfd3e9c94d098063a5f81d438c5cd322e05d0141b818a645b26a94afcbdf91b0ed8d716c1f8b184ba2e527e0b8661da6e0d6f8e1464c5cbe50adb3b370e8f610a65427d741ebbde65c4e01a48c8f4c0ff62dbed149b615ef022b90c963b9f438a33ba416a06e4499d8e53c8589638a9c37cb23e0281c28f42384e36bd1eb07b731cd2e264e12355af1796470b72970487234dc1d8b4875a1173fd35876c05b91331f0d8aeebd57a677059cf9f415b8b1c76b0a45d1f7147f286052351209f2d7c0b5a0b34f6a42b370e48a468b4a73a12a2a95b81bd0a1b1c5236b868c890e2dd6ae89088aaab34a7487757668167b11b8b0e362959b37a8bc1f6242839db23484c8def2a38fc24757754e946bb4d66f1bc528c366dfdfd480c9bbd0af4a78699d8b1aef05a48b1ff2684ed476452a3d195442ba5b260e71f99859191e086b248638b4488c64143ba5883ca4ee2d57457fc2dc616ab16288b050b2e15ee5a744491f06ffb16bf85b882629162b1a4c2bb253564e8e6a13f2779b99d85c858745848f7eda07292548ed01536d824437637ea24986b5d516b71b6d85b70abe85401a9f0f45305dc32374f47480e9af20abe15a22ba857a0592c2d3a16af05b48ab416260b9d85755a74a41bca57bbd13c1d0eb9a4953bda026a7692221b079d14e75855d42d9a2d90ae85a1a11bda721a15889e4a2226e906bd5106254cfa9a3bab627731da57fca64154df4262b6c016542ad215b4a8e0b4b809be491b1eb7d00224647237f624e4ad5ec5bea2c3a21e0ba85124ef358e1d12841bdde2862e298936a805540b297b378e4e92ca41cae27616d2271a478d04ee5a2cea15e62b7416d56da1c68b7499c6412485716d0bfa9293b66cf159d4a8428dca24674d6905df0af112d3e957fc1635aab0414972d0942d9a67d1214662deae6f01b59fa4aac68126dd3859159fb3f0544bb2756515388bdd58a4a79d94745db778f22e29b9452b2e4b5e8db798555c5be0a9a8b56055f863d1a97192321b87ecc1a879e1713d15332aea02b21a2137685e2149c6e0f2e01da17a4a4cd4c75d4220507a9215f1d8916f284a72eb78317667b5605b8b8e6187f94a7e7a1a0788168fed7f3d1131c986326d0db4a21f761c9149b8b4859652f246a782fa0aa8b924636d7605bec5c6a265f1b7105b34c5e2069a24e0bcad40c1428d6712c1360e3652cfd9cee2c63fc9d72e0d34e9769bad287cc5530dc96e9355c0b1d054c1b2f0af1859545ba4aaf065491a27bb462983486ab89d159f85b845c52265e197161d1c2418dd537312796d1c1cd2ad9a0d14c9ec5d1a72d27fb71a9d24754b5b3ccb621bfea475933269b959ed0f82309220a2414593a08deb9093bc699dc5cb2e416dc3cd305f4742724db7e8d893906f835808f69ae4d5f88a9aade0b890beddee2d3a649380e94ea82321ba7a85eca18d027276d7989584a68d83fd5e4b81cf1a9914426c6ed60aadb509b6cf0f772a10f1c1a332a30d15dd0ec3396877cfb0224d9d5f05aa16b54f2191a071b890fa9ded4bd000c289b87d3dc9f066839d945f9b7e851aff24950d5d45bb0adf626ca9e17c5f61c34752d1d02db0aaf02cc41694168f2a750c1cbe2c91ebb75d54960babd6d0fa307015aae2bfe80bcd4dcbef9545ce8d82d2f9780f5cfe02926333a10bcb883ddc716c005d7caeec8480216844abe5c1dff28dd24b1dc4a7ce30c6eae0d02184106e595ce952ff17f34fc491ff22b700e8e77539dd5f4f42a5cfe516ca700c7cf6ee5de4eacd224949947c3a41143494369ddfcb1d84e93fc6f9187baf5053b5fe42c820e91692043e20ace6e0761081bf8a536965ccbc79ec5b56f921e3744bc46824c710fe6b801ce303407ef7f78835c8f0bda98c4541c1ec9d9922df90876d5a03b094d5388002682b5f84988a40de5c8118c44162bee7a13467b4fc81f3e6da5a587887923445c2fea0b5983cb1a141fe2e4717afc59a13ac3c5ffac785653a1a0eea9f3128af83d290836c588693cccc699939e999c2a457fec8f64cdd4618736f906d462a3f607d814b5f81b3f13d66d59c0d2f1a91d402d47b1581cbdef453c6c586462161351a96a56345cd4077f3750d9a45a43959bc64fe9bb1d0a0929358a9871944cc804bebd2410a4e91acc020acd57ea716fccac0e79c284aec52f43dfdc42a01a334746429c49bae726a347f282b8eb46eb6f51f54a298e72a4f213e7b80a10e80075330fbc564f8df3eef71a92fb20415b902cad31bf4553a84c7f160a1ddeb1deec17ffd59a0117c33d2df4602b111c80f95309a284960ac0ab6e6f6aaf4daf2ee426c5c6408c1c87c05b24421a481f897f259fe1a9e72aa87d1682203d6ed190953217041754e9092af5182c74311809c27e1be9a67eb506b5b74165cf173755817819e9023aa5e779fca90c7a8c3197e3703a750d5b61e0514bf0ca3d342649f0ccf69386803d54fed7d90858d77b2a87051b40535cb9ea3b544cab124cda817ecb738bd04c8d8e50d6ef0d1229ee3084b517fd40b89ad2829f18bdc179f82dfdf2692102091c282df3aa0841350eb3c71b0d7b2089ba38928a1d3e2ab076519d90666079dfd41f65469a0eac9e3073d6cb3539dfcbd128bfcf5d218f40bec2545785a498910641dcadfd6442828c9847741d6ac548724a509efdf950fa603362e126cad60c78231eb6bec6c0b8a52916358a5244abd7078940abde6d037730cc6f310f113bca2f0ed9807a5bad2237f6da1c266c45c1f2e4b693d7f49d52afe4c672a8d7ed506ea3d1918a122c8561816374d8abcd98467c95ff22c43a0ccdf87d1e2044f400e531fb7c2e2c32df694c96feadda4c79dbfad6645731b3677775ee846e599ebc14874aaa5f94c1d21aad8566b2a405c2fab6abe603a73c6f7341e48b73052cc376c1fe8e617109daf7378c653df7b6b8be8f433713c139d7e66305a241828029bee1145465de43e5308ef2149cb1909a55618a700871b8a767f07bfe08ea5fde832cb3fec1dac4c1d58ab8bfb416b82a96d147ca0ce8b45de704ed47723b8483166f748b2adfb4596f1b838fa3d8c0c4e03fa215a6a5c4016d6a60d9d35c27473b419ed92b0dd585d575cc045bb3b66a6a966ac657422f1f607453175ce6863968a35c7bc9777f1736cbdfc80543257a998c6c1e70b2088150167b40dcbc088ffb54548c0426b5434b196104224b27b73e50e7e0694068c06b387a6ff6b5d39ede0120ded1217e4025cdfde79e7bd57c313fb994d3cafe7b3eb66d98cf69fcfe769a0fee49493afb97ff257a7f31ecfc907777017447b3a09e8ce96656fc3352ccb762cdd7b6992f82023205965add5567949979aedafebaa15c7482446095c1fef154b75462a670d30100b707dfbdb7befcedb81a2684a23608661da73279e9e538b5dcde7b70cdb4e7610dd79bacd743e45c6d7dcc7fe3ef6323e0b42447f6474309e749e871b3ee982e84f27018d3ddb964d6ddbe0679d0b5fe0cfbcd2bfd4e17ca832778841a25792945242e8c15a83e8e936644627a57452297330d6f0532247d3b711640459e263cfa284c408c402ac816280e13f9e0fa36108e6ff29a31094524aa5ec48d99112bf863bb2133bb2d3e9c80e9d9183e73bad156a6bbf73e7f6747d1b5ee3679226c9c1c979018e86df115ce8794416a84a6107ec435fe1362cbd0e4499eb2b110132ef0ba537233b09a597836d605f82a406488aa0ecd390c9477d1aa9ebcc6a75ec7134c006ac66d96758ad58ad17eb30c730af8efd25cae8a061b3629473aae786ab972ed41fa5e2ea412932fb5005857535488fc2482f3e8db4ddc6de6a31cab7e106e952ebd3408d7d2663ccda6b91ce2bbdecb34c6615467a18f695824080af8cf35791527635a3d169b41be7306b902e1bd7fa344a9610197d128e066458f658d623eb2a50c56ac9e751924272d329722252b236241e44db0f1d7a5400070ad8e00d3f56a6693283b244b33b9d73c648639ca50f8710b0a4b6f9670f8a19f6fe11cb8cdc8f1decba1c12332c62d8e390731c026569db7248c44adab36c843764c5c741cec49fc1a40d86fdb015c0210c1c9a2f6d0858acea2727582119a2a3151a7e3350a233090a02efebb307d7001cd24382443c7d8898e290483a19754087fb2e29e0374060fbd706e0e8c131e007bc43299e678c9dc7a6cc3edd8e272d1f66dd0c9e0e7e0f6809ecb903dadfc8d5237f2b9ccddde98c13e74ece39f3f8f46d47a40ef201d3b7e12fa11c66e86f3af3c55eebe836a3514ae9e3d9ed1f7a8a74e73dd83dddf6709b50cfcd8d5c1fb11c922e565e1b3de07d658a3fd4fb3acd349bd97fdb6143362b64816ffde4071664f271bfde4eea0c440df2017bbe87a66fed3cfd3bafe766cd1f74034c3f43e168d88713a35896659e14fc359eb78fb37dcff541f4bd9e4e0ba2b7ae87a6350cce0dcbb3466b43f488cf25def8d70f89727ddd66eed77b6fbc571663846f7febb2eebad16e3331deec6117df6af76f47358c30d26d067617c2ace3af9cc10e34c23ff4868ff76f950cbe6639140d6dd6304809de346a682a3d4a51e40bc4d765461878c3148a7cb1e12bf4e96f189d27087bfb0d506511c757977b3dbd386e246156d870830622026fa892807471678900e7cb2a2809867f63fe0f89a2e908df6197b197298375b75215d097f5af6b5f7615d65a3fab7546beac9dcd3aa8cd8fc3e0388ee38208228319449a734e381d44c2fbd290906a199d9041f9c560a5e10783d60703283e1920f1c9c046d3344d73bfaecdb9cd6079f7d0b40eba600ccb1a6e9d7675d8a5fdd651ad7136dc068137a7df632086fe68f8c500474b193a82446e33f1b71b20206a56b5209abef75ffac578d8c7b285d005d7c7d29335a39c00cfcb04064834fd0f06456030e46297587aae49cf2776ecffd2d05c83d5dcc79ed28c37c7cd88ce494e079c9c5b9b770df6f73b62c9114a7c5fbdd1d01cd8cbefa8be179cfa4a971ca4be3006662cd6486cda1bf5674c400e516bdf74c031c6d0d7d3941cf192ba6e396e1735d6499dcd8c074ce9eb33ecc62d47d431cf28b0cd8e5991417984066805d8aa6c33d2b7fa1746b12e7c81ef753954b12d90b08746350d339419a804f86509cb0fbdceb3d3f303514a996be4cf0932018610c226b0b4d045601009709e3106159c101a68365a53024a410689349b2f6c401fb021c285920f054ff85280c447448c23454040a4a2117b8d5ec6d22ccb1b890e118b44226e3b24667c81771c423b0f72c5e3103006465118d453f3872254bad3f02b020993f6cf20cda8fc48b366236f0f9788a78b5b176d641cc91952c03bf6a05dc33dbcddb66dcb299dafd99e7e677bfa5bd57ee8acb369590f4d63d9de0ca549935e850caa641804c201de9e9ef3358cc26d1ad8bd7f5d97e76ba847765bd3527b0cf374577a327bb86941b4d6f5d074765f6236fcba241f018889983140829ac09b0bd5c0cda06174cac614f0e6e07358e54a803e106d4c30638c93870309992e60c2880d0ea49448f85c20c6870228ae26f3e1cdb2ee422d035a481cf9b2256f24121803b5dcf3d2e9d947d424193280e25b52848a1ac74186a3e7cb1e7c7abeec014acfa73d58512d7651673be4cb07e2c36a4dbe3ffd8cfef061f5852cf1bd6e3be84fe931de8dc77c99c3214bfcd9c4c69fa025607f286be83b01cf8fb376d85f9d0f0f9677bcf62b8d3356810bedef592cd1f1ab121dbf2e19a25fd0f09bc20bbd7fc4eb77fcfbd98d353e8e51fb5b3f76da5fa8c1abdbd7cfeb3331b43fa7451acfd7f7749db71df6377bdb798ff6d78df88eed205367baeda8105a38fd6b4dfcfa36ef48b71cf16b9dfe90c6da8fdb8d1ad283ff23d6f0e1d1f1e6400c225a0a9b8f8b2c96488144e6a9215d760dedb30d675fb36e7bcfd76e7bcfd6a968addb94d6ac5a0c080dfd83d3dbff981a731b0dee4296ed6fd7f9acc39fcedf4ed4d8b6e37aadc3b61df5f3dd519fe60fbe301893830f0cd4f73c90a92bd5326d47ede87b687dfa9ecfe85f4a61e729842cdb67ddf59eee3eedb6ef742a7acb706e3bead5a477a1a6144b927d363abedc018d5d0dad4686fb837cfd0877d435f2e9571e33d7c41df165ae21bd28a1c085ce1a7e3bf852e80399da87474f38afcfae88451aed15ff66a8a26b4817aae918a33b087680d2311a7e51883185165350a1614c0ef12164a95ff30ea2b7fd2aedd4f16b85428570d6802cf099c88f39e6dba79937a286f0696276887d103d3390c883d659738d4bf943ad13cb344dfb2d4a6cc62d4bd9344dc37ed3321df5319a1a5bdcf811b57dd011f09d7fa3e022cb2696bd16b128e3bc91a23d90b9b38fd8bdf72f1f71479681c49981444dbf6e9e6fc0aff18ad1d68f30ba10e4fb14565abee7687945ed1e180335cc3448b2afac7947cd6342ffe9f9ca20f3faf0a4fde716252dffd2c148fb4f28723cf7fdefdb8d2605c8c43ec2f7e1d130675f371ef46ddecea33ecc40a2def573c8817506e45f6faf9797ddf57fe4141d7ebddc41c76e6e39e67b9e578cfa6e3e3c3a03908587f3907f4d2071bbd9e61af9b986fa887ae68bc579832cceb72b6dbf42f1418133b57b31e6b890f44258d3108f1874cc33804061e010132c85f6cb090d57fc370d311ac4d025be5f68e9c663fefd995d0f72e10b7cd129339028a50b5fc418eecb2e47fdfbbed9bc2590b8e347d4b326c9a074f111415de02dff0289daf39500164238220858d090459321543431f283228e788208fe44160ec2e2cb8192cf092620216c35c8c125e38915dcbfb30726c6c8c20745aa9002264432d791219e40c1133f686330410c2300b1e4cb8115a0205c10164f50f104147a7f485be29e6409668004245418c20623900235c25dc171ab261cd724146ac25dc9022414911773202aa80b54bc1af231f739f18920831a680a1cf5c3f7dc0e32c1839ea1e1c784496754dbba941cdb77b24ea7937aeb6860a675fe99dc3a1aa8cd4ede9c66a3829e7f2bc4b61bdb6b52c7ed06a66ddda681baa647fdeded6ff902f52db6cd6c340eb3bf1f738890e5fe8fa92164b9f6958c74d4df0d7234d459bedb8cfdbbcddc97716a710c7d757b072139a4087652d319f59c7b071d1fb3f302b95a66185b826cb14e21c48350880349c1712dc0411125251d4c492595b17b0a9a02cb5905863f1f04043c5d36fd0bc65c3f7f8331765f4db9a8a9a53536e5661d0bd0d4d25f80960fc7f82620265f13453e269280a8c0842802153a40c2a90a4d44461441f235c104e80331f996c8d19a86df125c44110a45c171d1dda3478135e752baf41897c822091531c627e2d76f41d79748ee0de00ad4dba3e943f88223091270056a28700b1a6e392ca0a3f46d86cad8828e119492d261266d2449c3995134944158f9504212b49e5554b4195be00d3f1c11067e94281e65a7428385c50c26ac804a12bcaa70873db68d113e9d50bac0951890935a457a51b4042ce5298efc45832bed1d476a02cb3edd482279f3c6f5ed6f3652c21312356e94807764e9f83b4299f831caf8a194a45468481b1469b305f11e4b075f12221f8a043370dce348b38150d220a474e934082025384eea0c3404a3462bd8b7888c73043de88203f503f4a0deaebd0a385e4425f12607c6c41c0d7fa5e187e4d3d0090d3f258668efb074f11b604cd4fe72bb01b278763c2975779f3ea7bbbbcfbc64088c89930ae805cc74e9fe6eafd59c9ccf90e3e754a807f512221ef9a016e0a84142602d640efd968da595f4621645e0fb201260491a01de1247e2482ea44b2bc6eb772c7935429757458063fc8f713aa8088e9a158378b51b51514944c51bcfdac7d66694cb769cf4ead7bf3aaaabe6990677dff39728133f3483b5d7aaca5a63487a1587fd98c3f46d46be0713bf460d3ad6f7fe6e41e93a7fd2dd8717bce0052f785dbf5b503acf9f74d757ec770bc420063188410c7e30e6b87fcf832d2d28d87f3e9fcfe7f3f9ddb2427769944e463ee93e9e0eb26c1d4eb672028c24b630e20a98962db49041c3cf8a1b197b70495b5abc97991dc9aefe65f7b55744554a0f302625c7189ae62d79c8141df3a996db8d4bcfcfa609fb89844d777d0629a493529791629d99e708b278f6293d6099c3c4ba3d8b6827ed79b367f62fd74c1bd2d6afb986667d95b0eeeeeeeeeeeeeeeeeeeeeea89bc21fa75ab1704237dee94d5e1ab96ac5c26979303ff2d1bd1873dc3f942a19599fe5382d0d45a452c9643a9d6e6e501aa6345cb134841042082584104208a3a99583d362e1ac58aad5a7faa0c3b02e0e6e7132e7378c76c780349dee0d4671a9ff5aaae9a7f8ad538e8e7e92a393249d6489ca4496bff8a36e0a7f9c2ab258baba2c89ee0893b8284b27eb5235f2975608c763fd8a8bf872f839ef43deedd86ca4ca5019aa9041955d5508f87d67f88d0ff09bd3d400d4d334e42dbf6f017e6396df5c8ddf4f80dfde00ec8af5ac006c006c0c56c5c2f0fbe6dfb8fbcdfdefd7d7d337a4ef45e3f5b53d7d85f415d2d86b0cdb5863107be8218d7f7b3a7b9d71d9ca5fa6df0b7fb819dfed150dbd09f857fe4540de17cf9037e60e900d7065b83a94a7c857e45f5c80bc31c79237f735f27e8f00797b03c83ba475907f57f2bed8cb1b7302c89bfb00e4fd316495bc437ab67c45fe8521ef8b73de98ebf2e63edfdcbc80e32ff4e42bf2af0b795f4c236fcc710fcafb6770798728cb57e4df16f2be9885bc31b742dedca3e4fd9e8cbcbd95bfd4d027ef9087f3f6feb94ede9c56b393fc5e8c39ee7ffbed6db9456f27c9f857ba267ce26e1ee5c94c11a5222aa2222aa2a290969928bf17638efbf7bc1d9a32b3e52fb06567cbce969d2d3b5b76b6b4cbd0d3bdf474e9e9d2d3a5a74b4f5abe94a12cf9a190e7fd731cc6176569995af27bb15ac22af6254fef5af25aba57c7ffd25a7721cbbde2dfb8d2b1aa642880121954d91a49bb15260dbf2a78d003d0f0ab62889e3ec0974bf2398231d7378142257173e46484898892764f11e273a3b9f495ed25b5b478de3fc7e1f936a47f294270fc991202bcb31569a4fdb395ffbd1873dcbfe785fc9de42f33ee4b1ad92bb45f293c60bf7a1b991a894a20f07ce81bcd7cea49afbe27bd5068daed019cafd4e76aa534b26e2e808151b4b52a74a3e1a457ed461321cbd4ee3663030f21c021b8be427566350cdb68aab6d9a5691aa66d1bcd46a3d1cfb4281d4e8a423fd3b48d066f345706d176a3d1f6b30b5e515e1dfb347646560804f68fd275901babe9e5ac17d3228c22c628e59c935221586befcd02c3b02c1bc2b66d9d0e0b63fcf91821c6181fa27c4dbeaf89164d92a0254a1819880a4d4c4d4a4d464d8468f99a155e80209b30ef2ab47f840289fff542fb472d80f8b09a066491d7cc368351a280f76bfdd265a3a878d23d8b5fdfc68d35eff67dbaedb81ffd47a40fbb1df7b563ee8876dbb1ed883fb7990b84221a42adbeed229d3ce2fba34817687fa00289861f93151324f4c4999c3e3aa0b7f3f0809e3f8ba8f53131c448a9aa5841ac06d3112bf615d36e482d371d396ebef7e97dd7108a0b97a4e45fff9b83da94fb37a496fadeaff7ab2a0b2ea6e06f6db4fd6bfffa53faf573f2f9601928db8d98d2f7ea6a3e9b8e782fae34a7607f1fde90da7e26b50db7186a9c4aa8061c37e0d043071e484490481729374dbb2e0b1a7d5973dffee6767db9e9881f1322dadfdac772dcb70f377cdd48b3cb19a1d34eaa9353858eefc50f7406371df0ebcbfbd7efa8f7a5adbe1ed357760ac487d510b2f8fff0616fde7207b63be8083fbe9441151a6ae8032db2acc3de359c61d97f5eb8c67f7ad43e3cd2ab4fb37fe6f9c2b9df49725543a5f2d148499496f42164894fa5921be98244a2a412d7dcb3a9cd5cf8a1f2e6fabaddf7a7bee9f09f28e92991dea5a2e174a821a5a13fb354223d9923064db3bc919efc2b07aa638eccf117c9922c95cf0ac380670481cb5cd7e4bb5fb1c27b4f862a420008d100049817603415365c48e5608283c6e700950d29aa08fc0002a0d5047c80c30c96057a50010ec7c7120cb4d0d2c0143ab0007384f040b482c80729462823213e920c12113b289d948c88c2f4311dd1c1099f9280e2c67393e4095407e5440e525b4a0a273eed63925265aa2b9a5861ab58042622eb8aacb8050e702e4e1790452a69d95604e30631a7c61c214b88a8c887247a3485802c92e42425608c24a2244b368031d208136491358031f20864912f4fa016de92c50a578ca82428144a060a85ba99567bcd155064b868d6cb29a594525a6badb5566badb5d6de7befbdf7baae6b659bb9590dcd4218cd539ec49338e24638111abe0b015f9c04efeab2300ed77a99e389423e42a5be297292936826d54cf22baf1051178ca8568b063b08534478fb37450a5899eabdf68331ebf7e61b3f18b3323aadf776d1fab4700b6b5d2d7b73ee07633630f7de5d61e1d26aa5f06f05ff50fcc3fc73ff26adf6c2dcdddd7dce39e79c94524a29adb5d65aebbdf7de7bef9571f2c10508f907533e7221607421b79045b802bedc6857d2a43a9d4ea7d3e98442a15028144a2412894422d1c5f2bdf7e5baeee9c8e9743aa1e0e0e0e0e0e0e06032e2cdcdcd0d2a090a8542a14e74f049abbd3f4530e6122212894422d1754d5aedb5d65a6bedc90763d1462a954aa5523268f7005225857422491247347c69047cb121ab34e1dc16cee1443ff248215942a53ed5ea743a9d4ea7d36ca15028140a85b2015330e5163e41cbf7884422914824ba17c6ba3eabd56ab53a1d399d4e272c4d2693c9648a1e29c327ad28187393a05028140a75eff549ab5dad6aadb5d67af2c157d661060d762e11c7244b42481fa4103030f8710bf8a283539c9b8bc229ee7b95b772d6e9743a9d4ea7d96ab55a3a5c1b8d68f91b2a5eb5544bbfbb9528128944229108bbe1dff77ddff79d8e9c4ea7d3dde44aca38f1495b30c6befcd9c56ccdd66ccdd66c596bad4f5a4522914824a294524a29ce585edd7c73737373731359f10a0d2313299cd0137e4c02bec49b3965ea15e11147fa9267a2acd3e9743a9d4e3757689a37fee0bf6e2311b47c9796cf1ab1930fbe2118ed445997c62ec61cf76f73cc228cf9a42718538f9c4ea7d3e9547355d55aab4f7777779f73ce3927cefb8a44379b4c2693c9648a38110746a3414b11d5a049533c4123221150080da30f508886af01e832f05e8c39eedf8b386e8b80b7d85c176068f9d7105a7e96002d4584efc598e3fe639e2d8c05638a405994455994455994524aa94f777777bf355ff96693c964329968d062b414119671f21f8cd5128c992fbf12015faeab85bc3f9f1933b26ad7d29c7664473863d973cd1bdbccfa9b63a694524a69adb5d65aadb5d65a7befbdf7deebbaaeebba12a081c6c03156c3c8b0d2cdd0f0822f9e87efc995095c91dfb9eef6c1da8cd5aeaa956b75f3f61eb48cb9aa9280b7ad2a140a8542a1502291482412f917a38950b375a2ac12680c6c47f762ec76a4adae2a7fb97756d5acaa595594524a29a52ccaa22ccaa22c3b5bd7755dd7856118866118dcee0559ae6b2b9d309a7f17d23882e3db140d7239c502755330e726e298320f0cdb03ae4ca6a281182a9dded91b0840865d777636070440338f6b8185155064d4cef6c0ca03e0051768a4806c67ef3080154f0001884105867c3b3b88ce08105fce11a484e19fa6fd55c36af7b3db712ca7f080218dfb46a33df5a4e730d33fab95baf6d9d4bc6a557b6da3a1da671567f0eb4643b5f699d5ae4bd3a457b5cfae866197966598a66d34db775edb681c4689cdce0ed2e9b08d46cb343617c0c0da6f345ade6e5c0f6a1b4d8597f63664dc720a10b8e68dcc8fd8a6a1f7bd3a65978002a5962204d31aaacc5172c025432fcb5762378b687f6aa2d5a6ded044ed1b85a4fdef4613b58d7694142178e394486f8c85ad46d8a37294930ff6a8608ca5b9341e8db6af700acac40ecb4b1d969b3a2c3f75587ed361a13aac548795f2947c85757170cb53caf1945ce429f9a8e4248f4a9e503c2a7923c3a3429d7854afddf3a856235f712ccafb4958c6a38c47ee2bf795fbca7de5ee2bf7955bb76eddba75ebd65530663e4e394e394e394eb9e314b6f2421eb6d238e52bfe598a0deeb05625edd153b272254d2aedd2a31a69773ca21127de4c5f4d195bd24e6dc9736cb7714afbd7141bdb6d6ca5fd2b944149754e9a64584b7b8a10bcad29e5071cdf864c1101de765f6bf297f9fe79db9376933561ad784371561f4a3422954ca7508ed77a1c8e8557572533a1359d6e50290cdc8846a412bd41a5e22ab252a211a9643a95ae54b94aa5ba1d9a8d4c87a9e2d21a6802680ca581c2d097df2d302673794f86972618a37d7c082f073d027cc481315b0cbf5bbce7f005c0ef160f761cbef1468719bf5b2008a6401ad005f802e47eb7e88ff7faf3c1f0f336600cfe78618c8c156a48400c0d302f79b7b82060860318a025d45200961a2d0358f104108016151872f72d2fb8402305d4d2d2020b8e72b24287727272727272e2a493936ebb103abe7f1225fb938e7eada22aaaa22aaaa2fabba5d3fea4ab6fadb5d6dadf2d28ddf6279d7df9f7de1ba28fa8d46e97243154430300140013160000281008860322c1609aa639a22a1f14800d6f8a546a58389288c4491083680c116314000240440000640430180501b8b2935b6114a098675414a452b03a0b9e18d70fb96bb191ec9d658996b6ac4f2cdcff62544b18c96e63ef707a2f08fdd292ec19ac8f873cbc63be8814209b51034ae06241c526b0cdb929bad1e04c3fcd9d14c3b37b991eb48c14231864be600a5e8318863b747faa28fd6ba2c7e7af2ffde5e5727a549c939b7bddcf80af4b4ad1651a2923fde6e5e7de1224ff86fb9b72c63b59dcdb174d061a943ffce41816c6a4b6a9b1de67a4816b577a99a59aaec28750ff8664e90a2d272a119532cb9536eea7f1ee3708ce6cbb974a6c3a19f771dcc3db92048016d6a8b7d2121369baf5be992c75c92ed197f805774ddd359657e6e5be7dac1ad96acf34c28aa8ddd94bc303b5937f68d245d5e4bd4bf1d662a1c4ca3a04b10c0e2156ad21c412339458118626dab7504226e5866dcf88a8e1f34a713eb926820f1b9cf9e9b7047d5c8330c3e9cdb2dca264c4193530e1c74ef4345cb11d6f2d097e29d298f00bbfdccec39d34c4e5f4c801ae2fafd937f08dd11313aeb92b0dfbe3662b96c15cde2713f047a812088b894cae7289cba7489f0af661f348c53fa02adb2fc727c51e714a2fd6804445cc261434ae421641a0ecc2bdd68cccb6474389569747390d0ef146bdafc2acd2ef012a7e1a6eb8d936712fe9927870910590ff096634c566451bf876c2eddf0e97054565235918e76406fc905c1505561b4a4f24acc40935398376901b790c120e834be5133ccee9557670a21483f7f32921c69b2fe18920cb52c6849f29cd0f302caa57f29aa2cd7afbd472de7689000aaf96e533ac99914fd5801a27c4488ea7113da8cd7e4ba5a269a1dad664998e1c621c4cac2030a4517d2c41637d7516e4808d3088c80bba387fa411acec3b9c104ea30c4682d5252272838cdc86e04f72434187462e6aa0a10ba62759e681066bb84bd695034b8077bf6127c98689f3903548ff1eb375cbf6364df2c6668885e1a68999017ceb24abc9041cffb177020e08c98902c923c03485993a13a1efa1ad3cf5c50814f71e32e78cc03bb43d43932549a9d55d0f2b59a080a4c304b35e8dfacfee6cc04e0f570d34afd0fbb03ad0037eb06fd11f9339a999dbddda73ae7272be654a302d0a71cb419dc1544a543206258eb09d04d31a4cc2c9341cd030c58f2ed1e8be1c612897fbda7f1e6fe4fc721d967e06fa5fa38a5c246d17d83dd591f7c22456ddca2faca6d51b824194bcc87d188426d68bc50063b36e95515e2ee7a5dfe4c790bbcfafee7732482ad7eb4902aa68f9c963ab740d504ab092e2a1e46ddebf2f7f3db24c2b9c66bc7157ee1eb090a681c58f1eb5205804d11092be56d55bea4206e4b00790a6db9a7b1c153105229c71e4f2f283f8c491ed6c0f0b0c475f393c7030384ae713577df81156044bd152b3166b2582da72c8dc09a471e6a49330645ee331d591af04759014f2edaf9685f9eb6a3e6d57d0c7371054482adfb1ea77fcf65e0e93d93a00c80926d245369449b29975b2d11b654fab730a5bd973ca2133f3ff0f1a35e50800b0e5e98468a7891908d0dfb211d93bede1c003ac2e7f821effae34bbc3f12e86242a8758f6dfe12c2a625be165ee50ef158b1637cbd82c49fb3c0fd191fabf143405f141042448595c4a82324e694a804b3e3da92f426df221e07a6765ce34d78be2c23fbd1d6fee39907ce4d9070131f6b376e9c5ae0837a84f8b3d0add3f232568b5454a9263c919570156dcf1f276bf25d1283603c67e9a4df2872df3a704910634363de75eebd5cb23e4f9bfb2cccf3fc2464a7f67587b3fc79a278355b49615c609cc726e288fbc6a5f514e5096b9c1f3c88bd592734399a8139c59c2debcdc5891f826ba6361e97b533f160dbfc5362149fd2ddec85a04b82a4bb6c535ab6bbf7839ee0bfcf0394e564b61c46a2db0acd64093d51a68582d266f1af8de16514cd3d98e5c74c60cce3431f620e8ef99959d76beeb3b955632ec7b5991eb0230702673647503bbd22b541df854c61936c6c1f9527adc5bbf5a66f7f9701ea375450f8c7c1a6fa5418d6d3e8d74d2bc97b1599a4cbf1ba475356cd36c7935f556862ec3d2e532ac34ae87bee0eacf82ac7c852e5ae182bb1ef7f364fad7014a389d025935e6f97b82608c01a925d6f8a0c75cf9fbac785f916143e98434f166fd74e68a6137f8ec97139b4ede4d7e3e05d26b7d71673d3af7d553163bcc6dceeb8a72272f2502136332fdc031946690a86c4ada129c922f089722b0125c4a12fed7b559f6cb5e77274411b7e0e1d2cf1fc307c4124239805882dae83ea834757a3a256cd63adece2c12be68c900abc504a4ad2ac8deb20f5e562dd22a43ebe98921ea31561608a5ac52d341e312182f12f0af84788d1a3778d6fc744d9a67c23fa9fe4c518533dd0fb9d26191384f200f78ae6433d31a5a333740a4f7961a79f668897612e8d2c8c3603acf6ccd3041ad7293a687ef00ec0c7b41a12f074ec9913e8e9fdb956b722eecaf532e80500364104ac00c428981eb8dd7970a84ea85c6550700650fc0dc63fe8179dc01cb8f5ceadd4b664d85a7e26082255b0b6f628878017c714d4cc71bcfca28d3989665a63bf31a1cca06a28f96b0be8fbe6e30a61500f99c031c9e58f554725f18bf6cfdc83e62d9ed6fe6f347b25a08170c2573ab8ad77ce950323e4ebff112743cdb9ee9de7c46d69dd2cfc761921607aad3d4345d4018cf4828dd9c10070dcb0a0736c28cae7d545cdc9e7b5c8b9a35357fe7641fd63db71956f5c044886ff92582c82adb6737d2eb23b63ad0274db685ac2a2d59f641d9e06b5992bd50999cd16db1a79fb102cb5997fbe53106d04e7ce57a62c8941b62c96117442aadee7e7b3f7b45135156b41359d55235ba3a795fc1dc86a48cbafc482ce73ff694c59990ce516cf9691529fd754d5630c3f285c74e80519c575d02b0b63515a991ed13d3bb79cde84e864ace72334939368fe1c2cfc068c4383d2871c7c0ec65a7042b504979496bf4ada18f8d0be97aff1c38032bb00abc905694f33deffc4b04a0b6e3f3e963a03c8d467ad4041cf87749068c7d70cd39090f844cdbb2517bdc8d1021c09193458e0cf1d39193a51d39f06a51a4d96d9ddfeb704108696661330649adabf924718cababb11e716c53979b2bf65f3b1e21f54aeeea638faf2fb0f6db6f388775c3f2cc0d8cf6bde546963558e3ee0447376f4333728136ba2023a90e299805e0b8b0a0623542a268dce5c25d8e10b4750a9a6bd5acc434e6b0c699d742b14dda9d4daeda58b2d355313253f9c0c20219777360304f088ddd074460141a8bea90bec774eb548b37abc94a69059d5bad41aa49db72102b5f508c2ea6d2a685f3cd4574e1aca29bc7adbd0c5a9c51422a0318c2510a8e64ff4a6618cbf68ccd74944ee0795a16cd849e3658034fc82408bc832516d788845ec3218f764d15f6f35e637a6ace2692c00a071fb8b78dc50bc63eb489affb0823e4a341d4d8ca97797eeb400124e00bc1c6c80ae6457078742a71b672786251a6a875531aa0d5a3a0f4fe1ea797b7f0134a786f1b42f7c64745804b408dd86148be7d8ad0d6d44390e8cc94247b3ba5627c2eadfc94433e314ba32c7f4ccad0179837015e82542bfa911740f26daff0f92a9368e3d4682a3bd59d90075878f6a24a0629e140139358d0a5e629ac4178bfa6602bb0cd99c5e51f5c390e4e8a7173752ed37f668c980ee44959ed6b286fc8d3a9f56907980b33b47e31630fd25def6324cb01a37008983dcc1f20c71de13cea02847c5db3196b172e51ee01e998dbb615a940d3dda7e04319d6d0602d7115d8d2dc8e910aab471be9292164dcf95b655bf98450fd219ad3501d9300246deef30da25c5d2b51d292a8966bf55405d5927c289572561ca2126062a6b24fb00e955a66401cdb8cbd34fbeece68fdb2c1be7f5371854da80d3532bc004c82558f404091aeca805e7fa3288fa1a9463d3c2f38b863d5111691b66eb077241a5485a49eb184819cd7584dfb8f6371fe19b7841a4816c46a1da20e2c79afc0d5f11981fe20dfc8e3fd9f7b07fe2dbb47056fdfd941c4e8ead7d8dcba9423cc555e182077caaf220dd3f2f49a91a4de35116fcf596e0543e9802229a0f9507581201dca996a755135f9aadad3aa2c5fb13a66e90bd6be00969a2af6e77a36266e861a0f363593765f7f23b0d07f02c3c01cb805caa210c01661eefc7758f60e496b833fb2f6eb597845d42f8e1c4e5e30c90023e51e39c067a34cc388223650cc483752fae0d7f8f133d2a735a6634652ae4673401bd0e2cffbf2bee506ce2658739d40c8ef2e9db156a135e50621bd77d989678fad991b18d57f4b8d2c6bb4c6bb0986686af376f4726d77793612dd6f4c508ed0867a572c01cddde8c80bd1e5270664576484e6e5bff4841a739f70a30e5e7364e187bdd3755a978fffa7049cc994ec0004efc2502f5a44a9cd402f3a8340a0a738ec38c3605e9428f4e9a178050253501e931d610d0a06ec5e14f757485ea9ff9d1abee70d3f2cdb6887639a8ebc54f9b04fa880ce3aa88f5cb6ab1aa86ac462eaef03d2f33efef8ac5acbea9366ea2760de5310638340639cf4037810a20a38db16491b471fe4b79d1eda17697358fc20f4bd921e5d510325d47fdc3c4ecb1305e7b95bfec4eb21899f9f73699f9be0b938a31530735c152d729dbd1e2d0357eb6e924fcf999a21a577afa9abb278695e82a6b930758c8f64c08ab7f5da296031b82b0971c4930b476c8b84230e1a1cf1ca65845760e5084880e5d5957bf3d45457f5ce1a486c9a59d9b6493d30020b682ab96d1308d91a1e686f00e51ded26375fada91dbf0c5dd25d2f95008bb0ac619e4635811551ff251dc80535ba01a449f53fb9702eace8ac609ad0fa8e04d2c4472bbdcfaf4d53a4424daedb56a4bff8739c263e810326a4c4776c499c06457ecf3a515a414b7e48310bcafd156ec4624aaad277009e4d6f9f8384a8dac43346eab7cd81b25046040b94451911fa2213ad354d3a4e27e76b379f0fed979ee48bea59df3e7e6517d35d68ce1f88879a75e6a50669c1fc1c4b7fce5000d0b147eebb7638ac95671b613c385cb2d60e0073c405ca92ee4162fcccb5f4532aba7fad621976704a96930705c9bf77805f2dbeca71b996c3edac5dc724af3e0deb6a6829a6ed6ec97731d345f72fe09518d518fd6b8c3a585c73f0b7ba9aa2a56fd615d19adc6e66ab2d35062345dcc87a7228c1d28aa34d0451948b53a53ab6ea47a0efd84fb81f3fc9090b8850e40e601e41d87f1642f2af1e1fb9d78945fc91bf237cde3ed63129e79bd5b4410ec3be685b86bf994169284bb7e48b44e65c62fb1ba8fe97dde0d1ad45b5cf7ab3fd851852d9ec873c9a991bbb3e519066d0f108edde2da17cc9096e204c1c644675c2814d6d224014045f9e4614b350be902866238313459082eb4c752d0ab8b306e4f62daa81a890c4e07373ef0ce8ae720c5483b872ba0e672d9c270e26a64e7b791ccf3dc86d2ccfd1ecc14ba3cec519c71789d9dfdbc1555aee88355b0b40d3384e88bd7cc6f0318e34bc52f137c7157718bd290fec98f904900736d81b4ff3fb389ed7ef4804df1c5f7762113188986ab74fb802ca2934193d3e2a1048278f6cfe82a148f07200daf0b8774030a0d7808c1eb96ce18db254ae8eb2742057e696c2f4226c0999b56101a14f5fd21da08a4e07f20de41f9652bdad33e1343a1ae47453716701cc88e83fd609724ce2319193bb2ba129928ddab7292110083409189b98a272a5f9173ba0b1b9e60371db2793d9820737bf2c7e56bf4a62fb69196f73bcd9b392e5a4977ae5125fede1a1d00a7a44d24b541b831b728dbccdb6940e843111a2bdcc7d9c18c987f7b89891cd04f670fe303af0752a7bee1c655ac9bca4e0859f8289f57a0d9bd5ad116c5f3561d4b0997e466ac6dfd3d47ab212bef4cc36b403b6d47713d86424874a19ca11b7e1ae1f1d5d10c1ab8df55b8fced81ab944339f7ed889f3345eec2f78579278ee781790db847f723c8f58c0f29b351a0ec0e72a96834494b94e04d18a842f0939a0d6a36ad788008adecd5ee81a19184326be2195946934a4b09fd29c844f2b5ee846bedef700040b00478b6e27549b038828b38cef5aacfd6b9461a429ba3e943e4ea025cf2eea80c5eeb04a053156cf252b7c6a421f801468253a70ca5cb888b6887d2248b35240e11c1f4dbea8c1258bd3210d4ca5beb45d58c1f042a5de9d5473d05f1902ed9383dba997b29cc264f6d8c54ed6610f083fb37b74491f1e6b83f2ad63ae9e5c85232ee8d4d8272ac25daca99b8ed2d366a6ade6c6f3cee072d8772a0a03159471984b5683574167a8e9e466735904f8be3b0a8888faa8f37d9d53c660446cb596bf672881343469c4faec11340f5a5e575708def15f93a4f7fb960c793d38bc960814d71c908cda98f4fb542f21265fff6961b2b77a70b8251144794741e5ce884f2a7c3f26f1417359688827d38558af784e29340676f738d4b753e496f7b213a80f39b910082d756e9f7dedfb64f5e0b6607f3728eed42964d923c7cedb4aaf7e412f76f9c44e22a70d4defc9fca35a1d3d2c241a517914638514d1adced6978707d8aec77a0b56883e9bc2a68a186429b807dc6a5d43b6ca92d674c5c0a4f19b0837fe3e0c9ae2fb9cafab62ff2f6f92efb88c3d2e6abdc3dadb91d30f70603882f5f37f4152f6313c98248c8167de28c9e899ee32ac4c01f60aa806dcc6557bde7c90222c23e698e105ae3edc3d0e798ee35fd650f48646b178dcaf60c76739131e03bf79dca1ecb156e76341a4c58a6998b16ada792e78905cd05b3361e5659533ad547ea7956438129a158a2db4a523c932d4d133e93e43476063f865570dec50fd1730b1719cbbc1aea08e993da6f7e17e6bb9bf7833e815c4534b40d2de069f790275f56e2a5d0c8b9299ca6ef5d9342e304145a138aed156975d86c9c0d185dd401967ca5359f902f44eeb9e57e5e850bbe24eb5e0a7a03b6902a822ccf621d94e7bc44d6e3cde9fcdce1b1891464200c1dbc6c52f72344f5447006e1ae437fe8d27b52d35764e6a1f29d04d82f4d52c6b21e5d2092946d538ebc18c1a41a3f0811148150af970f804c5289dc0ffd32614a16502708a43dfaa06559f0d5ecbf457e9368f54e64c9c54ab47395493190a867be40f4ce3ca68e044dc88fa5135791fdf112ed3f49620ddf39e3304e9d21756807b74e92f4da165cf7a1efa02e0ae87a894fe62908e68244bd901287451efc8d2363672683943dac3895877b7a9ee194c779e53dad76ca42c01721a9d6e8ffd8260eae459ab829ddb94c59d3ca9e67ec1bcac1b29cb008e4647c78f9f533075fc8603fae73ee5e071eb9cbb8424eb278d2a4b06a0b2a394150d75515d951408a6cd44294895768ede0a409754db8692377c0750dfe87c4a0cb53c4d76a13963447f81196860a965527d2da6d61d76e000e75d151f17869e2a199423aec14e87d555c185fe827b2a4dac71750c2b0b400be505f6568a5863ca0f2b6bc416fa05ec538aa8063b85528da316fa2a8ea3836121943ba8fb900307b931a614d6e6cafd4ead4a7427848624e8a9de7350fc354062fc7e780521cbcf93431008fa39f205c2ab9f9b6f408cdd73e703889f46f127c1cba0ff40a5eaee21a04eab4af7221da76354fc12fd4b880ad28f4c4822a562201420d4d293e065dcb8546a3700d2d6edff4f9d8a3cb54ba080b9a22dd7ddc8ea918715c5ac12e06169fc36259ca669cbbb58e717d432ae95ae14ab19c24a8bae0919d764b7090d9ea63148b3ae1eac7eb8e4aba6059c9cd24684ee14341f23b57399ea0c5317728d5f77435d38c071f45ad50d153e4045763bdd303daeca4d554fb0345afd00525256b01dd0c4bd96b9cd760795335e8a081022ecf1d78e2e491629e655dca554b5dfad6eefa3ef1ee45e7aa78d217269e93d8c6cf217a5668d19f489b1f51666c1a488f35f61871522c99f71bfe035f21a9abcf53afa4811f27d99b646fcd0e5fe207d4425eff2352ae42aaeff362a9e9b8121880e6b5bec1b65ea12cb67e5ca4e686c426229d2254aad44fa5d69bdfb3813e95b7fdc69c108453a3b3a15a248cb331f900ae980f2822c6d5d1917d5a55c7670ed97f87af322bf57b29ed05947776016e2d2c3f22fa8be611d521732b9558ca1ed3897075c81f89756cb61aa6a85400151ac7ea92c037c5f5de43022a252e39dc21a250482a190b2d946927a38e06117f95c5306f734c8b0b7efbb403738c6bace37fd089189c61d7cf8324a6a07108c81dc49858d66f6c19b529cb82c650a89f948eac71cc0fe6592f24f752aa25b002c7ae74859cfff9d9160bc292129f627d305cddcebfe397bd14bf482ba9c56278869d3d4345b99833426660cd58b0c4a8952304d1e91861387d1584f1e2c6479b2509179bccec089cc7c66024b500b945f2890df45455b444b06563c17c8dd9012dcfd10ce3e825c1da14ca7080e1f1111c121006a31a43a0410376b65a778a6820192c6cc47e85e7574572514650c5a50c7a1de7446ca289cb87d0edfc277e02683235de381212a1679e79316e231eb2bed0624a2a92c2f0532e4ccb796c9df48863eb1141ea88d6e22d40740d2f535153319826959d4658a22bb901874f0743d1269a8b9c8832a68b81aac9801108fee695c172f5c5ddde72aca9cec8ec18214b5b0df8b866a91156d27ede32c6367fb61dbccbddb9dd27d6a3fb822d38593c2723f6f2ca44ebaae772212d86e7dc84c3155dc90260b24c26d0aa8d5c2229c14b9165025c279616de7d5e8cebabd3275c20bdc2977b937e3dea9fa14742d0d025f1e6f9a790481c4a933cf3dd3db40f3c94a5181d1545c74b3c734b5ef69eda9a9a1b30fb201fa4b9f4e1bf0980be6a4041eaf099c5e31f045ba75f003df6a9520a25cf303f5e6e918e07412da37b719d5d6d9f2c68c5f022d85be6d8547fb9e744540d75bdda81a6453f73312b532b260ed2f3bf198f0e0118afc0686daec710a18225009f5384d4b13085a64771d4c4398e1ed319d21347afb8a7a84d2f8a644692c80df6ab1cc2ffaefcb8374ad14ae513b3da4d994c7002d1c85c790887a0774a078d95632c9266b4c82283d18801b2228d5ac576fe942550ee9fce8c185211000ca06ed0d31cfd6d792ec28a6ccb3b2de0a2caa64911f4ca48d5ea0b4a7c1f9cd31cd990bacfb84767ed278ce5c45fdaba8671bdbb78010bde0c263e9e9e845ec140ed222b6a4f3cf48d2cfa53175d3195d0b0b1fb9002094b7a1d17239270cc55e1771cfc373658b409294d5f195be8e8968de38eccfa74d4fbd3bd270190ec6bba79c9af64d258d5f1bedb59e493ee4a602519c7ac0a91c44686a8c0bcde257278c95183415ec99f51bbe8545b1a1bd51e313ef5b8dd9205cb4e4927c73c7952fca105fcddc7a9bcec432bb744c3a993408ae4e16830207818df2a87e2d6fab70319bb052d221c4072a448116b2e653340ed97371e936000fa9cc0ca5510027037c9b86666f1b4b938ef3e0fdcac5bb95618291be1257871758001b2dc0055c22bbf49dc279a11d0e05f6e8c812f3b4def78492b29c010e03767e67b6aa671a114db11c739448a45f280acb09e9924963e9f3ce31aa465772499443e545afd3c1e4134cb3a5ebb8bd75e9b44b253e19ea626859be5479950df1023de528f44ea9912b0587307f441d4d59377169c0b068350151f780d53be78bc6b73e9c90b3279b6d6fad6abed65dd21f968bddc59bf5d0c93e1ea9933ceab3849cfe307a0bd901a5b459ca14954a8dd8e0a5a2a1c720f6a10e3c1ac8530bce6bd528410ec152b981deec47bc57c38a8d54b889c2250aeee1060131884360ab4ecb7d10394324ccc7753a2c62611d62c30a51bf16aad7203d8682f262647a23a7cd7b7db26291bf8a947d3fe490be72326944593c43928def31d0554c49cc8ce240b48ab136d5dc735c872cb48708af447f5f7394e488edaae3e253b54bbf4192b33414c4a0280645d186a281d1b23a203dd1b507acb8f134eaa32dfa3f02017c36cad74190ec0dc17a5863b457d0dbc8e5c1d5817c015c0d00bc7cc1f596cb767f8d7b53b9d5dfc01adbf6b883b74f1e413c83c90c802be4c7e1357bc5e2eb0bef26e330e2010242b3d51cbe5242a355029984cecbcf32493f48874a43716bb379bcaf5e84168f56397e3a892d89d14db75bd0b8ab8932212576346f55399447ff01042cda16e132c5330709a839331ff8806eef84082c08e152996d9a9de69806d5c38918f93d5aab5dbb922e0b8a2cf826a1fe04afa0f26c52b3afb534671e03e4cabde8d99bd4d242a1a00004b49b50b31a8dc5185290e3f5e1242c1b6de1444697773b27225a5619481b67e291761354754d6da30ed01db5a8d355dbc5b4b698f6f17416c5fc167f4fbf7e6b1b53c5fb55e6e33cc99a4285b37fdd5706e0cc3342073a7943950dba7d00b64c8826e3cd545d0f38fa53da8cc81fbdca0ab04c0fc078b14b897fb910ca0dcbb6fd8e401ec6c14ba507218fc1f02ab3cc9de44bda15c7ad62f340d40e8f372f6ade9723858883acb9afc4eb60a4a0522acb5e7eb29fd20a0e1743a03a9f69733c13e4a5cbdeb5285813215060f250aabe37dd954261bbdfd1d9cd88b174b6c505abafa34d261d22a7f947c4f5459111eb5db62e18f25c9592a5754b49eddedfd7a3910281356fcf0cb9688bb4d331c6ca6303f7fa8108bfb5dafc9d57f0bd679a8ea30dd66865fb384554c284a51f58992d3da2dc6cfa909b623d506e52f287701d89ba8095d4bab38846b604cf487fe607e540ac6cd30c1d17d736f1548c4c608373212b71dc963dc586d06d1a72ae0f5a11010f8f38b0203dc11b5573acda71298ac9b399704a231050fe29fa088645fc300ae8b4b8cf80295a4251fa325fe519f23024c1b2953d7abe8ae4af27ddc5cf7a4e626a3a15235ada78d4c0dc5800b5eb4db3d592ecc9e3005d3aaa34fc0964b847e3dbf32ad872e6d7239a4082f6146a0e205fdfb8e7d2a85bda4c7dec9c10644e5bc349b407b7cf152951054b610822d6cdcc3a3f93a3c3e4f1b7c5a1e94f1e1e41964060c1ba5f3fe9e449bf30cf8cc911bdc5ea9161adff801f64f37cee571dfcc235109dbf2f061a6949a635bd9a5a9609f961e2f2b55217a1a87d00cf4455dc8d7502275f1970e66453cfe45639f99d120cbeed50cfb10c6bf5a0a8dc05ae195abf5187c16ddc889b71636ea7b8e91eea3b72050b4d46d3070a811307b9917ffa0478c0c0d95cbc44dd050a9dcc5c79392800d701c7b8e53b3b1dc2872e331777a38a52b14ead0fffc48b8b659d7fba97f152108d80867a1f2e8a47508ae2fea00bcc84af8fe55081abde8fc3f13019050afcd3adb290fb56b954ec5776e1db782c80c45686d35dc315a92977e10cc57e5c1a0f7890989c4eb75f4d8da35cbc352bbaf07cfc6af093a575a1ee101ce9a0af8f6383af1ea43f44b9c9955c846d97fcdd13401d01cb9191293b77e2a82871226e7ea92aca5b3ea20d64faf5b59d3f0bee2d2c1885c4bc68d36a9a800fe4a8d4402cd3270c4f754cd38d110af840af80a6d182e199e6bb1aadd1c866ceedf7bc2e8166bca2c8578e645098ee7a843623c14a744879e5fff2171fc08644628d02cf331e735e9720d18538e00c831a1b73136dd45b8399bb57f7d535c742c695b66286584f55807ee08f0097cf3c9090b453d5f1c9a21c3609d2e483aaa6b51952f9b9ae3be5430118b09cc1081ac75dccd144a9e50f8837137f07f2d98c0757e09136b7ab2f06853a37a7fce7a6349966f7ae1f39e1c3d1999405939904a5d64538e92f7d62284218dfa766f910e9a128c37ae643fd851c3a005f74396121b18098b2653e01dfd165ed2569c7d1679530ea575a6ecd47a70472b19a0460c47e57f903a3d2670b0ebe7a901d6d43a1a4857679a42f0aff0c51905b72f68ccdc6934de3cf2554b0f5045aa603f015522a158bfdad225d7bc2dc8b52271777855b9457b20bc1cbbb763565dc0a9055e572866ae2b2a01e0b246b882ee92ff459d929b32e430e4324eb2331f0bf927e489de282639d8c5752610baf597d6414610a96f59e465697b4003857313d4a5a3ce151d069ba17f9c44bbb349ee41ca853767adcd6ba3cde0579f76560cbe7303a8912e321ebab312524009b165450cb4b3e7eba4a7ca19d548cb09232446cc68df41548390fae45991231d078de707388249698b5a8e7f54540b7894e8ae173f1ed7d786eb2d81c0849c06af2d2a35d4d691c65499d51ad16735d9d8e66db88366ab15d72b26d948b9ae50ac41f680ff61780064006cce98f60f70c8aba881950dfd6de0d5fa03d855caab097f59738ea4976ad7344382dd37ce82146b7d4a78e611b4a39717e1a064ca9615b231ed32e5b01d80ae0685bf4719ba23249c81477fc559247672ac49b61b34a27067eb0d452b61422f3ae1bf77aa7b42d8de02dab2f1865afbc943c893782822bfa67f9d8f416e8621dbbdaefcfa43138dea3a45d06333cdf44bdf573fbe66359381db6bb5518e7548b5d01b4eda74c1d6b233a2d0047aa715ab40a309c00606d5364bce6b8b23163c953610da36171dced34bb58ca390c58baefa068364e66dcc88df569146378633a5d404608a8ab5d7f591c29c210b9cc554c21877c02d917a8c2bcbfe59b6e69322ce67fb181ce083414dfa56af112678c348261afd39c8272c40e8e124dac519d7f21ca8660d24c32695da0ed4301cd57bccff34cef4545750091b1d08f8b930023e7f449a8020415bb4a526e7a17f4f55e43711d60e30da0e83bfb43995b6a24e9748f4214b13bc7552b47ae0f76a48600dad9289d7c9469867fb3f58b86c46b5c96d4890fa728086604ebe03e851989f012881cefdf2c0665f41efc5d1aa7651be78c077916d1753397d3626961ec85b1c76796f6c9a9ef4056ce294a2e0b6ee07bccf271b1516d86f5b33244b46c587334e57545161ac67c305bf34015c86527c4e21c3fb2d44351cda5684110566bf72166851d028189f276dc64270af9514715b8530b60b36d33048404878d9c56af17b243337c1a17d45e3eb7b83c494cbcdb0d9210efabcc5005b50edb853847ae3251361d89b66c542cf79217e7c0042e08a4147034d4e83480a916d15e686cefdc0691313b49343fa083bbf8129a184639ae037a75e200c632d2776aa3986b64ad077f18d89344f2c4927b01228728284f3caef858f62cf7fe2ca73fa929e8eecce9d8c512404c75d032b8e8e5d5d89cf27f2d67bde1f748ec854483060c60c7f95255a5da00ca0e77d026239c26d10ef055f1b9469baa67ea675cf2af359b97376d4e6530e717e5a7f50ba7a0b414c2be2b0dd9dcffb6e064d6fd09242998d48a3818edfd1579844a8e6f90490ce6ea220a675bfbbcc563f02300197d4b668853c6ac9a35d6f21d546f9d065e1016d6aca19475607deb38d0c2b8b070cdbaac03ea7ac7c856431810ac798320634e327e25cf6ddd3324a0b9d46406f874809469cee2bdb21a712cd3878e751463b51c12a2bf152de95dc5d09dd485a42ac0aac1bb89e29eaf0e1a76df6d8047acfa21656610b5347bdeb76e2c756744bf444d2797f23a6bf4eb188b020eed71ba87c009900ebab1dc364af103b2fd5687be36b0eb1441d8600a55b4bb600f55dc8c5d4908b321c008ed817c84302c7654fe2aeb4c44d8909253dddb457a2622a0fc55d612b6d700cfb197bf8bb2cca1465833eb3e2af6cd4267370db5d2e7fcb4d9e7b48d66a29b61b29df95f86c27b48555d3f607337ae007d9145388fa45b3d6d61f7b0cfb08e066e9a3bae105d0cfa1fac0c34bde32454ec037c9b84c86787dd8a908bf47d4ecc1352c01582e57216c1482b9249c9547fced42f4e6f1b0eb157ae92aca29919a8b344229f76ac5abd16e811dc2f2e676e7d79f5e32ac2020398ca521b5d1389b2b3e1687ca4752ae0a951c389d7f91219c3d30c822a0d19f0f2b2b09736e9d5b242f9091777e6c3648b9ee3e14ded94e673a44d57f83f28654df0259daf57094ca0f1b7900855bae439f16848468e3d0c554c80d4061ebd48dc233d14c9deca9a266a573129a90353a015144300247a1a1961e3593c8758158605559a26a3db8812e8317d4ecee7537601de31528f0d5dffd9a6ad6af139ed6064b6ac3a19214b0283b87890c503e6821564ad08a6a5f638d67a628e42f7faef00534a2d62e5dae1f63328f3b6ae6b5844538a960442df15bab7ea9d731e20452835633d6a94ccdfb0ef2d7d2555f5224fc2b5b28376591ca0d60e6e4a4feb544d11924ae4b8130ce0bbea47e64bd7852b7aa5f4763aa6a72f0c3a2d43a04ded6ca3fc1cde2376896b5ee9e36d328eca74f3fcd9a9ce4bd92668690e879d6a48b28bc0b037c004a5a5749ff5037fe3bb4e7d387f1d3a29b20d1b20cc0998c8c3bc901e5dea8490de551f165d2d888db4b9cac9bc14d853693da52a588ede37751a877854b0814d09884e9a1e821d88fe4a9369fda302d7aeb6286a08734e77d1f3b47fc3fad29dd3b37c7111bd3131c0a7eeff1893ed00852b3f48dc754a386dd863f80eb2894ec21f8597323977d5e4efebfc5a7f8fb6d7f5e85bb8b0734072bc35f151d8dff16f5e60d7fb0f73a70a771d42411ae6f000f4f0a02022336d7501ae24e405a1d94ca14faecd9529c8ac1178e5149403d1578d65f57aeea6aeeb24f09999745ac7c85b8acca6a14372a2ccfe38bf7b2337deb6404dcbc235cc9a462b328ba13dc80bdb6b63ec45a5c83f11f4188264c95a57693cd3b0757425afc24a47996264d681e26940b34acf964662667b436b155b6ee9e6e2101a5601b68bbcca5174267e30331e8f62fff2364de0ebe8ba8330b7de4fc443d6c278d2e99d3f784e8076d28ce65c8c3acd00bd96b0fde1eada652e99cba830007d8cf14a78c8a4f653894513882afba88bd1526e873f73c94c4b0a5d1df615a0d14ff0612fd3d0bac14c4858179830f83596de989ede088055ed45501d5d0c239e27aa1971774ca0c2af8a9f54890c888587eae6aab7cdf44801443be6b5ade03554fa797c50c32f9a5f24801d28acb2dee21e0920725338a542baf9b779ab0c59f6cb91e652dc3fe03e50d43d49cfe0f364760590a1a8f2a4252c57631b3dedab0790135be781dd592723d933670aeea084c806091c2a46e54d1636ca0bff1b27fef158534d5d4bd4fa476e4f3d8503e6a61eb98a72a83313284573fc25d0c9c9ed906dc9e177251a6433d15d53b918b6ccfc67dde221acde358d88725ac384944e4b7c69ce84fec073e37e704418b0c8bc0b544375f23c4a47a9f44f633287a324acfa53b4e3c1e773ac0f0781456099124b1967f446c08c085737fc29de9d0d0bd19308b3c1dc3af26359deea17b91241b5aa6f81bc080ac9daff6b6503ed111e2586d2b89f57e0d0b84f4b3ab5e09172f5a45c24af129c172a97d5ee80b9b116c4eafb82bf2b4295c9e95fa3a35285ee6215751e04c7971d01796ca29625736517494bbebe44cb0630001952bc08d5369481475562ea14e0d10470efe601ccba8b64e00d8cf3da27eed162a8edd4c275e72c1ec24f599038ec39e79eba331d87b6661b8b4e65c2cda2c1316f97ce66068f813c2d41971efe1e9d4d3eab24e1e21cef8c09bcba0e250f71dded47bbdfaabe82321ae6bb5172ec9435abeeba8db46bf4dc93393e112f955142ea85ed7f77b8991c7c67114fdc484dcada16e584fc3bf610dc26cc962fbad8fcfa28ca2804981bdea9ec6235767dbb0e5ef12a268513e214cb793525382536bfe4c24c6dd5ac5c5a2d89db413c87450d0c8442953ed40574b12457e794a60bee336740bfe93b90dc6f0c4e0fbf9488028dd43e24568c9c6f30d925213cba02d9930f08e4f840fb1a87016de3d12cdd57c04ee8db1549625fd1c4c94080512831cbcc062302ce5d34524f298bb8237cca1cbb3dfcbc0ada7e7286985e45310169217813e5ac2ec3a0a086eff738540c34d21bf689538f4406ae31a3d58d1cf23ae0c40561325f8f2246123338403156ea237f3fe58751a044e8074bcc07a88909bfb6d58f7adf3681249e9e083b549e2b576a2f828845e0d24fc248dcb7861c685e8e376782069aa3313efe597ca6b9d831cd2c929bfa483695592bda123fa582caac07c123de39e686e5074e28a2066023a79dc9cfa178b18e512c3b8ab68e76dba277d6abefdaa0d08e2a63a1bcc6c1c571bf39b380eaee26e80f718b4632db449591965bfeea7e2679871176786386fa7c42aa333a8fb413f9e84c4efb625c8e6fe9d35a85ac46af99e337c7798546ac22995141ec1b833e7e4f208ea4dcf03029b2965dd7e2037cd98f239f71e890648fcdd118d75e614c313c0e5e609b2592d50e7f1484aa8e130bee0ea0b7448234dba773b15815a9e82f4231cc4e4cd736796890b1ac628c9d1036699c689938eee694ae16dd132d3a4c2c0168e80ece61d33ffa0d82733ea06478e5085f7c87f5eb47ccba9011b05bc132ece5b9ab8c7bd106ca769fb91f581745f6017cfd7a4bb2921a56751837660e192bd4c7407f6962d69f731c39d88e17beebbffbfaf5f9846ddeca9cc5bac43036a3050fdbddb7d3f76d1f6dd7fe1f5c2940e189b1d35dcc2708baeec122e2b0aadce79abfceadef858ded6fc3883f77133f84122651a00f7b6a9b6fc5e5b127270dbd76dd5ed00a95f906c400a08dc58f15aa71e6b51c77e507f44290714c4db8f6a7eb88e17f87861c9d83b8186698c937f4224c4d29e4246eae1512b3aa2e201c0ceace12769d769d71bb62febf11c2362af58e87defb4f2c0cf5b5cdad1f30be3bb637783717f38aff0d25cbcb1beae0dab718f99f954ef9b9ae4a04fec85c73777a42ed2a90929fcbeaf69399b7eb120a85a47c00b214ba78bf9ab10273530d781c0064c7bd7c8eb70616e8c7affda2fbfd7f7644f66fc5fe7f799585b75a62b08eeafa4f8edcc76f3de33e380853687d467a74d38c6dc7714f15b12ee675dc5affaf872813938955d711f8308e09864942e2fd2f6121941ad227567f804f2362a1e8a17de016cb04445297777bfc2eceef7622408a81f5d6d8b01aef73fa97819240e90d80f01beb4a43d7a5887a1f3a974260bd8f3beadbeb4d09bac7258e9b3beb50a4bb4b972e994a8216bf644d4c7c63e90dd03b6c5fe70d9b9d38e2e5d09f7776f97446087ad95bf999380935de9add302b08c68487bb31dd6445066fcc9e84df98330ffa13e5c83d667d2ce7305a3ac5cac47dd4654811d661551884c6090b8a902b13fc8e044c37ab40bd08923ca0ad1b1235cb122ff84e5b54dd1669716bd2e00d12c535630f3a7276844e96708ce1b846d96ef112aa00d89d31975ba3454e386da3642ca1a732e46195d1da0b8e46badf475155e6ce8af436e6d51463be0a43ce8e7d629e89204af9b03c2907bdf74c78708b916f35dee070fcc9b945c3fe1ad75399cae361e2c03b25e58855856423da2974b9c3c0842d81b61ec057fc2d2462fbd2258610768ecebbe6464c78b9177b928148e496b84b542ead516fe00667c8ceb0226695a9edbb2f13176c1d1605895e5cd7a04de012cf640a247150dcbd464a1afb67730bf3de0b32b827fc1b681fd6f2fc46df2e210eeec892652c46ba4300bc3f63910bf7648efbb5fdcba0f4ca5da0cbfbddfedca95262e4a8c06a32038f35b084c3428a3ca055c18c0058c20b5bdba9448fb76c914b615a96e17c96b63f75e4f574f6ae0784a42e6583fbfa292feb0e8ab91856af2843b01c405c8f189ca71466448fab481a62daf4a1c7041bc2b28418c4d55f6ff2ca31e94205446303cfbf695549389a92d84f11c578a146d6388d2c4dbbc1a662e8b9969938c5f3ed3a63f41683a30e6e487a3fd2a88c23533b14e4ab98a3390f01413ee76a3cb472bace30aa1f760c96e85543ee002e585fd87115f1c7ec357eb7b76b8f03d27f9666b7ae766140c6d4950eed40fc80e531a4f221d49c13fa2c5d4933e2c5326ff40c9d4bfd583f7ecf4de8e94ac158bdad006dd9c2d5826f61b3ff5ec5fd30bf52ffda3dd26c1519df8d9ce528dec1d8a8edcc257d2cb149301aa669094a0f7d981d9eb9dd3f71ff801aa6711df2efbc7d1efc902763e61ae8391dfb3dfd910ef1bed27f517d3cf2a37ed44143455544939ab69979c363a5456b308ea3eea3792cafcb133a38623619114e207aea126e451fed4de103cd1c59b52ad46c3a64a66c94e1c84b5222bc5eb2907142b18079fc730ce9f29866e956d0f7b012fb1a7b6e183ee5406e5efde5b3ea54280bff65cd013224c059d61ef4c0c2559150a1e35f3d980e4f82e6ea65c32ff3b64334ca5fd93d06508c1cc049280f746cd2065b64c03c513b937d1b751feff8bd2b93ee8de12851a1cc086470967f4a1b3da2152c783590e21390fab330b1a0d6e11dc3dca9de5e9bf151167ccefbd57c1925e12077e2ac2f2a7a090b24a4c363dfe7fddbd7978e1483520c19ee09495b5972dbc397aec4f1cf8c05662c87ead5b4934987e4cc6109649c03f4623c8fbc5ef29382bbd0fa0e63ba39393f0132435492fdf7e17ab52116e54721aae96ac930692755ef9bfe05cdcc98a8d753244548dfe5fd88204d2f04148615f94d7132ff9e2ce88b3d5d8db73b7c95dcd956d1dc4d83ea65073194a9ec82fa778729b0e8e0e2401db88fb85a86198f16a53a01ed2a8e4f10d19d51622ce1a71ccfd00a3ebec0d2ead09311b7df06772cad4f271fc3bef5b05c13e2b93074503ed5a955d1c7c4a8f448a4ae8a1258d05dba2c58451a4e1ef3296421e85c7de5e86eb42a2896bca3da7f9eb258b8f648855a9cbd167fe464e632e546733d91a784330f94be1f452aa7c29eb7006268ba6171be7ebbf3fa869aec67604ed3a4757a2eba1a57dc0b3ff26304ca276c52197f18308c773c032fb601903dcd003bef629eee2ec0d1d31719bac42071f57c4c97e82a6f651ab4f829381c2c698c7a10ed629e8b8c9f06f0d09e835a71875ba3fef25c57157cf5d8e98ae5ee69eca3e74e12ed899627e1c1036699a0c686d688f44a2a45de0eeb4a4e25fc557bd99bb3261cf0cbbafbcb93c5793c924ef2fbf297b519e768e4bd1e58dcea9150cedeb625fa93c8fa82114ab97e470dd19cfbb3f68d5da12560107ac1c4b9c70d72a4eb8d11e112a18f9cb141fa8e5108545e73d004b56260cd5264f20c5b71a517eace05a9db7af051e6eedcc6303330e05a45159c3143e952b9279d582fc7c9c334856c5fca0119ceedbe5e38f324c12854b33fff7c09b8b281aa3cd6ee6eda174b7ead099757282d24c0b87f6e434a6ac946ab583741f350a382e681fd7dad35afdc9e829ea50fbff638008cc4dcad550c46e83c36eecce6917f4393ad671cfee03a976596a4f0e7e7b93f1262927e7f8dd8e0c71a961b69a387fc00eb5b1e35ed422a4f974a95be6148463f26c19aec5d959800e89e1f5a27ed7452b9736d7c89c0945e8bb6c378cffe7f1f58836b8c9e9a7c043ae024171f14ef27bd47859373eed0334983a2365199c567080009436eb9dd6ea5f0428a4c4e5db683cf92ac86f0aca11c71c026e09e4c92e348681a714b5d974f00f10636f689b0c141e1f188959109534031631e098a02fac1516a46493264a138483001a1272d165c0ae52a6e44f9ae8112b9ceda027fb93a232ea42c46b580aa8bdf084f7e50ddae41414c5707dcf8463c3dd2396e0c8d783c65ce1d7b87a5599ce4c230564b8b34a7994490af7577e1f48151bc0c862676248d242460ce75c1741d6022832a3d6cb34b5d5dab51bc41581d7f554930006cb4987eaa56ff4288a2361cf909066dc928488b11d47ce29f2ec52df659aae58ba9c93ce910522a5d6a4daf3d6f82049df8e4e322d99f25767cd9686eaf9d2ad7c6261398290c20fc64f171da5e83220668f1715c09368570a12a8b35e01f39e8591cbe815bd9ca3e852579da56bea1af22bd196a433b83d0bb837506f08cc8c8a5f99241de3637043acd355255d93b57d7a0bdbd79dbf56c4d76363dfd42a6cce1b3643c2a1369c6562197fc4f3ea33f246576e1e0929aa38da16d8fab881516a3e6f23448128c84c1e618ddaee01c5711ad8675b30056a5b3146a8695e7e7c565d656e03dffd66b286462c6f2ce7dc13e1e8cd8d7d3ca79f2786210ebf5e2db9d71635a74cd3af8938659146530e4f9cbb7c3aaf8afbc52059ac2039013878541eb9894ca35804c5fa0e87c550a48776b422e207d78923007e959818871b7b2323f99b9205836f3c29e0ec753affcf831272f2a65cce9a04e085b041c5268ed7226080e7fd90b1f7a3e82e7bbae24ea1e4cb163d1015905bfbed36e3674883341dbe22bdbf29d7ef7b95a42ad63b84b71729746477933c95bb52feac84506995a0b88e47e4afcae66ad49b712ce3a9e512469d9e614245ae62434127789f7744861874e20872050fbf949c60d3aea5823d5a53a76bd9459d86a100f305d90456f5e505a7a19346866a1280622409e0429fb3202c9dc65f40c1d5ee11c8acc52c13766b28e2ddc2b0a7fd68cae3363136f2faf9d8b6bc76473082e6f606463d21742a935c1c540b7d02746c4640d2dc15eba963826bb5c6e199713849464299e70db4147ef8605ebc5823059b242821ebc3ef9c10330bd2864b1821b351bb81af060bbbb186dcbb1882e0fc938316754c36b8e11292b5d641bb91b784b7108c83183760f4e74191ca097d8ea062e65071fa7aab4699c727149531e2f42f74b39c2ac0d0ef747d23291613f6bc9e8b5e20e7b2f18eeaab005d843a1eff1782bac48da841670938d045df3a7942c5162fdf4f2b6f80ba6c65dab20ea26170390563fa4bc48dd3c9f0ee14a7dd356128c9a55305a60dce4fcea95d841cf78c126509ae3fbafe9493f5951898762ebcb94cb1a8785c49f22863745741403def0d9dcc86e18117e548dc6baf8e14601f63ce92e5870e529f33652355def93f7bf3696b37936dbca80194fa61866c1e7eaa47057095a4a387cafd1212fa79ebfb15b3262451f6d74badaad823722bc51486ab74714c5b856d9ad6939785b0296b86946b5601a05f45722caa778b65a5701a6f78d5ca2cd26b87391cace01fa3fd17f1f9031d0c17ef706cc66ffefe7f7486a761984fce0a984b75bf6db86f9b8d6b0f36ca8e192e97a853fbd6c48a8e1d5f9d23d03da2100a636bc205957aa80259d1da33465a60be9c09b4bd5aa6bfec513c6e112f7b8970fd83ef0a7cc5729c637f3b0af22a2e118e35ca8fbc274ec70c5fba7e4f71c571d4e11c19a7bbd9375e581b598735fc8fb6934e1f953cb78ac6984529c77c955eaf359820dcba5c3031a88141e338f7f81962828dd58204cb8bcab9b058aa76f234f3488824eaf54435b404244cb6df0c31b28820dc8307bca46e321817b8e5bf0da6f36d08a3ff54f85af98293cc784f2a70893ed945c5fd24ec83d5db7346a05df76b83ccd9d5c9ed57b78ebd01938c923fa63233c58e34153026f09b65d3bdd2c2a6e92b24a6ba9571caebab33925352ccca18bfdc904b11416924f7b8545fccb7be4b570a56e3228c41283238a6da5e1f2453a2706538f64bc723ca12d3d62c8c08ed223bcfc758c00c64c0d302fe76084b6358cadc38dbe4b9d998707b4b56acb70b37574242f602d7f269361e87c40ee8409e579b19ab948397c6d398b62bdcaee159f293f771a0720bd2655d50c67c292e8d0674a127afd07641652b26aa1461ecf927a3152b418a066038dffd2e9bf3d7854420dc1e9a23040fc4fc1d81f2c55c51609fd5cda0c8d4aec9489f640902585816176acd564ddc6b80e5424bff2ac339853d5059ee026f0e0d719d405b2935108389fe46104efcac2490ffaa742d473512fbcca325b3319e1f98eb3eab868a7a8606de71bb59db82351c2eb179bec0d604193ace31dac48253b90e7333bec911a83357f52a5984bf38867ea69de4d2755afa09a6dacfd96a2bc5123bc662af22144ef8477e7e015d32caae045955df4dc8d3f26794c1b88fa649375ebc1f2cab2c1cf5a36105cd254b0792ad8e4874bf974ceb04e2888ac03bf3ee76d37b586169faa939654e293010b94aad986c4ebec8e47845015a41e28879a89b52ca6cecfb8215597464fddc096ee0e2fea60cc4f52020b56378fd898aa8b36478f4781b512565d3f46e8bd0b094c39e355ff21e5524e11cde4c42d1d2bd802d2a0e6caa2cbf1d9a7e2dbc980e88e8259d2de50a7d510f887b62db722771ae051569448da7072397b567613e68b1183c3aa42cb38f60e476352b1b458cbc74764dd7a64da2c56cd44f0e4fed76043daae3a87483751106a05d1cbf010116841f79e5838144f713c0f6191d2de376b6b89f91f4990f9233021fb542ea78c660f0e6026177a969010182a54a96b207b04104fa9892dc488a097adc65ce1da2ba21a4403d0eee579315ffd88658aef34b73724c4e03b23bb22743f2fffc0d827614042d11ea35bcabf3a32c3afe568503ea01a3a2e7552801195d39213e1c642b4b23c70720332dd9eec7eee08aa6cae79a88502818f782f285740824a685c8fa34f08e1368ae4a3e6e2601c293b17f5599b2ce826503b5d737012367245582b045c4936d81549826253e1a9b6aabd58ab226b23e7802124a9a9823e409c9142cde16f48206661a97acd04647ac6db6e10964ca9da7ab6784e16e0801f9b45694a5731057070aada6fd414c3a07f7b400f5b7d724d9208755794804c724c321942adb6b9262ac1ddee91e849600ee3959c660fb6c1e228fdcfc543163e59d3ff671d7c09072ae630f06dd106eb83ca2d4484498ac4167343db829e9db12003d093866a0a350005592d575f6b3717bb818aedcd756a9b73e77abdc3e5bbb3f1f1942517af3447c24a6b90968934833f9442927a157c5fdd09bf3a40992971960c7805e93b656e9d78aa4894ce663c6adeea73af3f79447a51442a5f70680c3b0b7a1b09abb3b0a6121e8e8f7ed8037c1104ca932a73073ecdf6217f038d3a1391ed750e74a1bad8d96a4874b3254741ae0ef3edd35467dae3dec20e26a9a8e02254a6c4b739ea73761a464389bb244681051635ea862990ee6f516c713e539253c951fe394174c30e8a294a49be673d657a4fd4657277931b58e515a994a1a8b991eaeffa6751b5e7f42f89c644fa9067d71f3ad435023002bfed92bc6af2de5f6b1ac3e63ce5c226919540d3d53e487c29ec811327b9ddad96c2f0706b4f65a8028e63713d0d1da3c058bbd100fe01e39fa71f0c22278ca5460486bb705a1e77736268ae1fc68b7747e8d5fd127207594cb294eaae6a8cee9683d0babbe02492f71e8a795485f836b94d57940805291e612ca8d9f88c1f9eb5308cf01876b574577f90526be4565f4e4dcda73b6232deeadc53eaffc05a2b30a4a8103b655da00ceb526a0b4a21f0bd63421eac856f4e1f99f609d45c43a4c78045337b7a52dcb322e08e8810d19f09f969d7260a8e0dd731fe8e7191a118b5b50aed28dcabde0f140b4df449d8fb6847281a4c971b7b1234b90187ee6c165db11c730091e6745c969c66721015cc0616a44798f5211c886ef56dc9ecef9dcd10c3630fb3d00592c1d4634bf76dad52d1247d5ce4d1e8eb6db1df1d5ac492bf6f38a4a8565ebc918e00cc928b1db275e2bced9a173562ea336f304695f767eb27d63167377423133f7dad480be22e81ca91b95425b40d2c5eea57941a7326b0fddca94f5e0c079c600313e3ca9425c10671a798349236135b505e8d8025894026a864980573a93dfac1daf70748b38eb0297f5854d003323d5cbd5b1729401035e7e29098007d18a1cf16dc9676e1835d106ff3638621b072e7ca5e231382e8bcb2d3df044fb8b94face986b770351558d3340d4bd4f47207d05a3492e94b9098373049cd0aa54a94b254127c6ff5af440e30a0432d4b8edd51f0bb7a39c9eb7979fd7c6ada37f629fbdeaa4ebbff44c714837b40d016f90aedb789f8263b6c3076431d262e7f452e566c0a0b68cdc5c7d2b2676c5d920577a524030c9f0c64fcff52b264c9f2e9fcb979ed09cf0451fb543ee3fc185c09a19a6e662e60cf982e41f1ff47ead6c45f661d1c542b33372c03506071269b9c19e7560e93af690ceeea83a4d40ec8647312332f1c8aa7993da4461f28bd589c82deb66eb107ee0e68b87b312a40e3aa5d359131835f104ff5a6bf69de2158c149d337108c4a34d734805b880b8040571554853a91c4f8b39bd3f32841d708529b0e036617d7459d55005d8f2a89b95017e3a4da812748e5cc334382913047daae0bb6e6da1cf06307b49e79b54a551f7206ea5b07a7393a883b2b5454654392437db9abf09a746fc2235e3f1cbad4d582009c581c37635ce1eb5a73344e0672907a21f92131935b337625099a73b4b19b238735b771531c91718be21c918468b65b859700e8093c44c3cb0377708eb0dd9cb123e7e2b069803909f2af5c56019a0c7be49d8c2bdfa2586ccb4a3abe01f8744f5d1337b02e5dd44bf880c580e3dfbc47564ea620d9cd183a3e73b67a6c3fa6280089e87ece5b484f3a7e8bb3713641f9d2d733fd32af0f1a622f3c0568e09a017b25ddd8de2f5ee62875e81d72bed337d5d37c3d28d434a889d068bccba6ef92a675d2bac1ae7a43598c254a79660941d1179344f50ad4b6f578530f32109fc00f44c6d235cdc2cc6bf13d24bb2bd67dbd425d411721805e293b0e286123cc054b81c88689cae25213b24379047b71602c9855d8b0084b2b7d1f062c2dc71369d67091075fc8ad9e4c356e5a3be5ee4e2b0ebd409227fc5797221b3c2788092d53161fa472e8201195c288be2e4e98f96c8560ba9d99dea13b098fdc5c35d98300d9fb0bf82de521f02d3507855d800d23a5e431783e092294e97b72e9fb23c2f460b548c95f225772e08bacd631975fa64f1d32acb36ab2b0f4d0f866f579b61d6ed9090278760b6762ccc0c88898646939e9b520e6daee5bb118b0aa7e5f32f89f9b3e9f5e9a1f406cecc6b0621d11e54f90303cae686c4c1aa28bf690ddffb0f4965ced2c5ba06261a5193dcbe2568f6be719a9aab54a195cd4225f31ae92f9386927d20d4e86c464313412932fd6486aa54626d0b12cea25859560e9aeac4f13b0fa71001c8916593c706628c05c33598a7099c8d50a70a1b2a447f41a7cfb12710c93f18ac0e8f552985b5062850172dfcbfa76dccd8937d26304751343e6c4a533ed14122288870d333f012609d1ac17fb3fd06d4804ca85ac3d51261318fa16840cfb901d77fe93cadee73870f93f73c2c450746122e6a6a91cf138d8f722e8894b1a5ab91452ecf661e26ee29d6b21d86b44f7dd4182f4a832d9a3b41aea4132d8827c792c62104f445c1024493f3a47bd7a15d2d2b637675a1b97193c221fca896b45eb5015155466530ab80de515128837c469a1540894f9fc09f4681f365eb17da9473d3121081d4f88da3399be5eeeb2dc3872cfd29e27b3b5bd5eb299d34898338b9f1910f444fa6dea1799d62f01e97d0e16563818fc3b76536d96f728c72ee9254195ea4c85c00618ca204e937cf789bea8110e07913b047110da07c1e732bb3e5263aa05356c2dc83360e0225b39e95dc84b94c551da5653926ab7c9a6d4bcfb9299a0804f039d4a400e73d6ad494e7f3ec67b78c47681869f7e7e0b18b582b99a521c2c081d0b21ebffc419b86dc2e23d24551cc9f2086ac804ffb5a2a739a895bfc01c8b960490c7f03e5831ee0072c88d592c4ced204ab9df5d4f10e15a0615f31c9948c020eb21d007b717a478634ef7051504ef6b1201750799d7c7c3a9b46be4d633761e2d08ff7536d350196a166558b86a9fc51f830066ce6459670ff41ce6e40413feed238ea91fbcc69303352e92b5e40e61afaab20710f6f39713113fd349a10b2ace7f0d26354595947f3a368bd3094ca1c635e7d041bc4fd69d4e22fb6639e085e4cd3bf4aac0761fe2b7c6e34037ea48e99841780b6593ec7aa560d1e074d2a324534acdb20953edc1a6a8a30d6de9004a772d0d11ff2a6f06bdf2eabf28b692e7e2b1be24805150aedb44707427e64fef2e1dc206cd44bb104c9c4cf28ada283fa1540957f745e65d9572765fc2a310e55ff1583ef0f34474853dd1d163bbd2c0e81b88cfd4088b689695da0c3f30d220b98a75cb317179220c7c7e21ebe6c71ac947455c6aea11404655b6e75611d8d7095b78bbd7aa10271a3993e89c912b998b5041ddad20b2a729177158a1c6f5f4742ca783b165217c4814a474841d5b20acd4d59bb44bcfde204e1c4f6a6f87c124be1b2f82a2d38b1e82ac5b5c6fa992bd2a151f4157fa2fd146dceb84e60dd84327bc72d80195930ef7a2f12dcd6e7be3b450a25797f84022b5ea904d860e44a8a765b37c1928a611766fc7c7e93e6011b57765595edd63811f52da96fe91491df6988ba2e772490f7cd500ceef92cce111aec704ba55b7e2fe7695988b5cc4628246759a30d5263a6c612377cc7402595d7e42431dd5986510e3e124691a9e1c36305c5e6e84f1644ce8e3a5544b37b4e95ee8e80e3980bdc19c89cdb1b9669bb1647a2bff771c3819a1abe1c53bb6989915320b71dcc840749013227d795ff080e398694071152a363198bfa66c91eed344855f25111d1073407cb1ea3f2adec049b21debf9b4cb9c38bf576c411ef6859bcdc31f543ed8cd2ff4ecc56ea2094144d80e1444dfb396dfbc38e64ccd62e5dc10660c06fa21d64af86868e4efcc540895a4a3348cd0720920162615a892d757fe009f7f0501684c2451aedc8458d10bac20da535dd4d70b89c472c5530deaf7739a5763d21e615edbc540d33a2cf7c0ad3118209a2f7182855590a7830acea9fbeb7029b1c30d7302917569e61bef5ef8600722fc5f1db9af88a7ebb02e75f7e1d457d3992c0dbaa2bda188ef82d5752a2dd31805a2203d9d881838acbf5f76fc3326ac447c9509cb026d7188dd4af17aa0808b9745e8dec2dd2b0f46fccc08d25018c19d831144fcff3e81955a29b3c68fcf9e0a94dfab12bf8da41b2a1fd0ba74d14ab59e90509ac03869ef2c8b76e00d76d5ed76013112248142d603e1c0397be2dc150c283eb75acd89cd7f07359c70b7a7b299040aa03ccf04f659d88752ce7e3cfc80fe96d8dd3d92113bc65f974ebcfcdf128f0e431d50e29928bdc04055cbc38f4f8d525702c628ecebf5e12c2dbdb12f5b485b5af969447c12bc0f314a2e4417ec6ed2c3c29d89c7a729f1e4f8f48fdbc9a5e2e04cd2611016061823191beadcaea2b7e6ba475a3b495bb3c48c0a7cbefade57ae82209aa7da9c4279f20745941130f0e6f3385b69a60a54000ef0d98810d7a31e16ab0e98f8c1deea67b78158dbabe8a30f8ec9dc922aaf6f06b846c7e0c55dc7299a09a177f8624f96759c89a5b369b12882ade105f9c43b08d88732a152dcbf850c39abbec719944fb364a98112f25f4e9cd404c2399cfb0fa7f92048651f6fade5b552a73803bd5dfd7d1cf2fc9eeb21135a937951ed0ae166aad5ffbeb4aca57b39fa710685ed2363765297083da179cf385f71f3933d57fe21e276463cb3ca262892aa88988b13aa2619a5120a976dc6e821dd90b35f8b55d10cb628fd6608524e567d2e7523a2c9c60bcd6059b0a462993ff0d60b554002b4b43d2adf7505be7c0139ba834b4848aeefe3174a3d1f28caf30659b23a77acf77439056466c54521bacb200989a5e3ebec72f441c87b3dcc31f84bbbe372c87b825020f9631e7854a43f69db9ab61f9d5d66318db7464b1dec24ca80417c24242d96b2f35e546e719c01606ee134810d7b4718e99a3f292213c8cfbd57cef4f86beed349200fbef70ec645246dbf70a267b82f335e81b6c5e6a02db6bc2e710662b290eeca9387fcc1abac9985f0bb00fb7022f598afd81cf672d04e3a8697276565d5ca1a2f9b1e0d4c5b6e6157400bdc037e45213807de2979a776a48a3716003b7642d57a57dc1d7ceea907325736d4d71d240c4ae00a7062fc377e267d246b36b3e8af6b2d98cce012c1b7175029c9cbf44b778389141abc626d54e1feebe3357ea6c2977a04a2aa04d0bda1cc7785ce51e0a500dc4cfee0b565be31a75f364f0b08a94cbb1360acd931f3ad78334da363c8a4d1441c4d6ff4c01deb102a51bf04a221d828b19efc8361569f3f99414b929f7cdbed412544181e8e7f1d7addba4a652ebd1128dd9c11e9a65c1f994025b967afd1bd1d6af4374b1dd750b57bae1fc6895ed4a034dc9694574f25550fce2147e58450ba92b6a0a9a3ae0822365024719ed09c4f8107f9276b6c0616e8202b5089f65cf9f0c9762a503dcba82f0408d62b0df6b656d480396f12f40dbe41c884ba1d8485011ae6982e55809615758dcd43b0791007985caeff8f7930a247763a96d171fd03771cc0825f391d4cc3567b24dd810610e2332f87a8ff2494ea3f04535dd0142bc25db9017ee85125b1a4a4215fcf6fdc12bb9bc894929452ca1db702940212031ecce7eeeeee16638c31c6ffffffef2eae162fd996d3962cd059ed6dc78f69341a8d466b7d9446a3d16818638c31feffff7fd78731aeeeeeeedefa7038738b16414c8434c3e06816aab990e6d793f016d20c6b2117d6858b4aa70b17f8d4e549ab6dd94e4833ac565d74fbcc1a27007c6ad925491cffffff2f93c964325aabb5f7f6ffd37f7981f960f27769dda5d12eac61d561187697f8ab6b71f9f0b73efceac21f5d1f167fc2bef9315f002f607c0574659744c7a4af0d3b1a3a6bea40d7b27a61b5abaf66decc97f298ca81a4acbce63a2a9ec36f50192b4346a553860c7cb26066117aacd27830d634a0653deb1d2679a384341b7073ab0354bef9b2e9584833027d830b694ea0898c4fc55493024b15ab26cda5a1b195d2d0e0d3253b023a5cc224c8ca3f55beeed280429a597e5858aca090e6969b24a4d96bf9ba97cdadd5ccf0ea5c1a021f6e3b764f92244992a41d478b046dd934d53c7695558a4f5caa5298094992a493aa14e85f69b4b22ccbb26cd80c7fef80ef71b575369bcd66b34109696ea9f6f64f4f81258c11484006c984244992c429d0deee6eb01b638c31c615666117e6d28f3dd7f7b6855048f34bd00b0cccf7af6c8df2f72f1bfb13d2fcb23e300b83553a61307cb2e3379d756559966559d2d98c0611d29c31f6ae7ee5934c48922449f253a56a2f14655996657953edf8bbbbbbdb4551144511e30ab3b01917bf2eb0309c90661732173131b49066002c10003efcb2b1b190e600eccd0bfbe245a5f3c50b7cb2341ff659eb1c0390024b3e33aba986644292244992b384a22ccb52559629b054adca2a45656f3beeeeee6e777777ffffffff1438e303f8fc7581f55e7cfe92216560c0f004f8fc653340921836468c4a678c18f8f4dd4047036bac31ffc8d86ad0388ee3388ea2288aa228fefcfc0830df5360c91b7f77bfdadb3f5360c9c96a6fffe31458c24e7f062e263cc018eff020fae136221db6db102e25ae2588a88551bc2ec6c6bbbbdce7a019ccd9c4b153cc0083f93f34976edd03347f5d1353031d0134e33973777777ff5cb2f0ec9205689ae1359c71777777b7e9048238151553680e7ac3964c4c5c37934cdbbc09cd71eecc5a4700cdb89fd58631c6ffeac26e74fcddeeed76bbdd4a184c0c72b95c2ed7ef9f62c1521d898ce3388ea3bdd65a6badfdffffafd56ab55aade6b9640153a3b55aad56abd96b55d6df3ec618638c71b88ac3e170b813985279ca5a6badb5222896c42a8a62adb5d65ac1d4ccce66b3d96c468348b16dadb5d65a5b8ee3388ee3288aa2288ab5d65a6b4a754bb6d65a6bad305d6d361bc618638c6badb5d6fa62adb5d65aff4e39d30cd3f47ef6eeeeee81a94f456ff44948f38a962a51486ac4c2277aebe69c73b5f209695e1959581488d228103af3ffffac366bdb276ee26aabeab66396159515bef8de7befbdffffffb3d96c369bcd66d471c9f37f556a1cc7711c4711144b6215ad288a258fdeeaed76ab364cd55ebff7de7befedae561445511445eff3db0d964a6badb5d65e511445f1de7befbde3388ee338b6ebbbf7de7b6f5b6badb5f6aa3ed38cb932cdc01863ecadbe9515568b8b8b2556511445511c426ff376bbdd66b557956ac72c2b2aabc76f5db2a8365aa1f8ab52607777779765398ee3388ea378af78c52b5ef18a576caf9e024be3388ee368c7711c478b44777777bbbbbb3b49922449628c31c6b82ccbb2eceeeeeefbffffff18638c31bef7de7bef8a6946374d1dad6fade8b15a5aae162f301606a6d20903d375b4ab9ded463a8ee3388e2fede2c4e28ba228da2134dab3aca8bcaf52548ee7cf558a2ae5eeeeee0e96aabd7d9b567bdb31f66a6fffffff7f777777575b96a5bbbbbb638c31c6f8ffffff03b74891cd1ec9f99c7d52d4c4e218a5b4561c5b1ae1dedb6d34beceffe392d1cd94a3869dede806eb74b47314833dcd6e771454c424348a62f42406f59d4ea7130a75b4000b45c46b1531738c4c8c189918fe3214dd72a501c16c140bdd4196b788c0d2083e3a36231b11f00b3b9b116e083c859ded689604f4c2ce7604247444cad8906ec20f3bdb5194d026cf94ad23b62224477028f2e9a9960ea140f308094daffb0e3f39e408f16e14502c129b0f3faebbbb7b777777b7bbbb7b774f0f0839d69da7bbbbbbdddddd79aaa8366c361f34baef0e3faa8dd568022949121a357cf0820e4341e0286ac1a7fb4ecf38438e90128a74dce8ee3288bd3dc0ae4556d8415a1f78dea0431045717777f7eeee6e779e3c8371a8eedddddddd3c3c47b3e290a1c38d9013215c5062490e484c501b3848538070058d1e383d807a8696b49125eecee8a37df4bd512c31654e50f2739301881bdb13385c115cfc60042ea6038622166e20aa517b547724361f66c811d243e82d72ebb1c3dd57d841be7b4ff7f474f7f4dc668f904475e428da61050e1551a008717f888afcc87f6d0c8a1a55f820c3121a78d8704b2aa2862b8809585c21850ab9216e0db72124119a4867babb3bd8eeee0e448312da0165e2d3d7ddddbdbbbb9bc773e00fc14891cc861e1c724a8e7c3044c28da2dd799a87a79b8747083d3264454ef7f5196a2188ede93c73a7781bd7c8123b7ee4f8edeeee28c21ee2eeeeeedddddd3d3dddddddeeeeee7906fbb0f0a3babbbb777777bb7b4f9eb144f3de2261671085db8e9a0a8d5b0e3e46e86e222082d4e86e433d41de9da77978ba7978f24c89b4d17d890c2199b3529113391ce4f420c3e28e4ba628f58d063937129ce881c409204cb8340cdd28019bca70839274a3bb83288acd347677f7b6b6bdebeeeeb69e6d724cfe9bc19c15e8c0c80e209c5c5104504fce79e65b8875444436b0814511409c48826788051d28dde919dd3d70afc288189c2881040f280ef80ca1df7242177239702969a500b672b8bd40a46334041210d9d201b666201147dcb884326b05e62c936370d8d9885022b4c93348ae256c4b481b114e025d68a90b0778bb93a043170ed0e6df447988b71615a0cd875fcd315c8ed25a5a58c54ae3e162b9fa8961ad2fd22805d4018779b70aa366970da0cd1713431b1bda2f16d6fcc5a80c4a657c61ed4c3535673fd7595108af234d13549cba536bf5c7a7ca9a44c9e1704dc849abb5f776fbed76ffc7fe8f71a9e4e152c9f3becf34bdef33994e2754974fb9130aec3a4a76047499ea00fd0425a1354a7b426fd058ee49e92314f4e3431afdf88cf366e24cd914bb2ed3da65db45d09d68add6dedbf676bbff637f8c4b25cffb4adef7994ca713ca7442a1403095528129952a2565b5525159616161b15a5a5c668cb0cb2ba69a19caacb0b07cb3cbac2ee3f05a117461976bbab0eb26ec611f6a3027035ecd852d27e0ac945627a0cdb769867f5528acd95b4ec0cefbda7fefd451994ae9a44b3c5c3873474e60636373279c99d668adb370ce2ac33589926b42567b6bdabffd658f4d35b8f42a05799fa9e633a12c0a55e944fde9339d6a50e02b8502533f2995a94695b27aa5d028e1cc2b9a5ba9acdc8493a509ad511d0a447f68104da24369b927e1a4b12754a6e349f9e32314e4431af98cf366e24cd9a44d20f3668a13826baa99a1ad63557bbbfd1d974adee7994ea8130a44a55429aa9495a94626c50481ca0acb0a0b8ba5c5a5e56bb95abc986a64582b045eafeed5c25423e33241b0ea5e30a69a19be7c39b4af57a5f3f527983f7599763e3b241d91f444f8ff4352ce060e481021b401f3121227b4c96012492b81ec094222217ba841068536790689073008a4015c014c1aea4026c72089a024d647205c9c07168a161160528e9b241d6ec4841a188947ecff5f067648230d21cb025740a191ab8343ff501667d6f7591ac3ff430de6ac46781d4532216421f1a094d66aef0fa4d15227bc1613aa14666a870e0993746c520e354928e9879934e438afa5c42bb9de51e342d63791a0b0d6de9b2456e1eeff4834a41fa5a41c9787d7c275266ae37a5ffd5751312d54c22e833495aa19a49f875209a9a98341c19839e7cc5d57410e944fa8748f5bbba101048000a3190000002114858138cbb25049d80314800b26524a407632202a3a26924802413a1063281061000601180418830c428c3184652d72b8d54c76d73db0cee0fe7d9f5d3fb5f3e4f5fc1dbefcccc7088a44dc784af9ae9f93e91b5017e84586f0eca1dfcaf36287d334ae5970484ab91740695e20571ebbf66ceb7424ba793392972f06bec0345e01abfe02d3d7bb6b2365085b06a68977d7c64d39cca07305371076baeab87989577fd434dc15cf8fb36315afeda338d2507a11c9d894e12e83d07dfc38a652c59cf22f082444b417ad9cb4f6d54d65586b4cf8c649d82cb6f21236ebb2cf1b62e20e4597ae95de774f68a6dd0735a988d57b251ac2573d16a331e125866302fda0856d7242657c006bc496adf0f6c57188b34b23510bf7c0876730a56a61e296e166e39691afbda3e42d28821a991ccc30c091e48fc0f7244eb259220f8f1a35becb84cc05c9198eb70aac904474457b3635e8d13fab48d9749b43e16443d3651413f2c8d626632d2b03412803be32de01a7049c941af3013c9b023ee0413952759c383a52e83e1ed7dc28395efb77f07b2ff7c533f4fc0cb910cb2aacfb528361180834b4ae8dc30dc35c62b1f167ff3a2fc6379a0fcdee69cc221b41b3ec552db3babf16564c96f762a02fb7ae9bc4c26a2b1feb7a30f342675756789ac6a7819c08d2c44a99572afaecd952448328744eeeabc731ed8dad8a9f45bcf80c31b228f34aa83f198f8975edc23a88c4bebb7163268ef818856251f6badc64ecb87fef148f3bddc414222e5c6e5ed14179634368c777af519096a9a90221ea5ddbacd2712c28360ff2ad8fde90ee55375f45feaf6117cd5e43f391839eab58dc27c80fbd240568adc1b6ab0e760991fd0f4062beffc0cf3009bfb5647772324118a42fabca70bf468c3f211568851f52ccfe039431ee3f70be4cc2ae1ad91d18491026e6cbaa23bcad31c34b480552be8cfec0ad57be6ccd9171bbdd675eebd353387fef188bcb2fb3d4ad8d55976663a1d9324c29b8cf4f788ee770a94efa2af265314a32e294cc912ed546d8cf17571c35fb0173370e72d6d9b2f44861d4594f12baf9de7d14df111c80fbb92b2bf4f617c3bf964a9034de1c98b93d4ba83830a25499c571789d21d77f3cd8d4825a6a735cb6ed7ff3f44d85b42dedbe229e57f7f45bbbf96d25b66543517ada592ce13cb0197fd06ce12e7d15e2c55600c23c1d73660d357c9a9eeaf492205fa8da7fbcd3b71a0aef5c698840123f7cb6876b9ea82adaf33d76cc4632f4d45deaa060687068dc754c0bdfb1eac12c85050cd5a154c0eac67ad9f2f52842d76af6ad4f47c4259b02bea2697b5e5bc1cca882ff7aa29bea8c85c833c0b4e5e3259806f2bcd25a45c1b0572ba5eda7f823b852b5f229a57c261bd2b08aea4a1563e7da12b701fcd822f31a2015e7ef4f11c682740b93dbe8e3770d9b049e96f98a856df9fbed729833afbba53d7e7e966bf9332eac970a4d8c135f859c642b8516720779c7eae0acfdaf76c134f081322c7b859264eb699f48e1d2c93f4dfe34551d5ce2a35b803e50ed729c06309ae2638d143afbdf5ec23ab02e9d9e8372538eb58f0f918cffd69b3f649ba7ef1cc258d7fff7d3615e5a696bcbd56c966b42e085c8a8543dae4d8d7e2c81293db0bebddcda23d8df0f9b62806bf9a9c4dda6120ea71d990769197d746061a653afd40700e37d6aaa0b350a4b016db159ceb7288870d5ffe657a2fcbab1a9add1ecc624f7df44f1cd918a56a40a3f593b976ccbf85d53f131d4993c00d86805275a8133fd21ba1d451923f945f8141ac2e3ff2f37584a2a4850504ef6054758cad51f2bbe75a5a0192291c08cf1e70decc9a94cd3bf40812589585295acde0cc9271a32d5110b6cbb0fd437b2f25d35ce4de3e73ab1b008e6903b3bdafff65ae0446f1d92fa345a10db3564a709989d108d1ef358026eee0364699f0839554b3d07bbcd4147cbb930d0a86d64e57d42763ffd708fd96ee35b670831a4ff54969c538c7d1f8b9c8c09886ba94c9f9be09248997b6aaa3d35308c9e70d9df176f8608c455af51b53e0d2374f17eda6ae66eb19bba16d517ae213c85752cd1535ff6079867b7a2b9788b08a17d71862611478fa3c5d78a102c33e09ec504f3f46280533fdc15c54d0360a43afc384317548a85040fe6a7366fcded381d3c95940fb430ff8604589ef0c70f807f9441eb2ec304c5787ea00039575646f4ef6757564ab7399595fc3bdbd2ab7b2bc370de2a1dbc1bde5b1906a2737fabdb4d28797983ecadd2c409fcc452ff58e5399a1364dc9601388b2ad8f02c733eceb0a628722001854523d9a1c6fd99430d8fd99efc6bd80666f54bc6b79d6116f2cbc64a7c6eb8a11b93bd9cae44a6139d73e0c30f63386f54ae5a0144a0504fea498612942fc051141cc8e2cdcfff992e846252e50c303b99a5aafca1955ec7827ab9e0a7c86791380326673227692d291ada8add0be650b67d1f312793c656716a04b5495a94fa8aa7b8cb806ca4b6a3c7229ed43c1fb0a9161a30831a6d1c000f7db4512d4bdaeb73420968012fb84738d37cfa187a8b4f2e5edae4f01586a1ebfb4cea3a113b772fdda99e319b8b9f61e8892b1a09bc864064fdcfa54595de4fca517b5ce4b8dc1667d79929f23271e7055a53cc1e29e4d7c8ea0935ffbc9cdaa532e601e10982676485ce62ecb013be71653fa13cfc17acb6a05ff2752b98ee1a7879236bb32385bc97965a441355b137b6877db345a946d79b3d9d5112cb225ce4adb5d41fd46831e425313fb8afdd1290ac0f51c9b88ca0fbb709b8b9b13771df0a299cbf6ec7fc767d004d2b410aeef7a8a3aa281de8bbadda7aa8b9e23feb59acc1c07c4427d697796420d49ab71d0df60360dbb26b9efb955d8136ee04120e2baed7d3414fead29bc40d71af1784dde8878cbf58f1e0e1b350b9b618926a65ee2f62d337bc1e9d5eb1ea86495700665cf63e347fde6755e9fc51b799bb92c162ff9985c7734be70182c00f062aa263d9970dd1dab2279554a9ca0f61d675ad65c0d76afa2d8645c0b1bcd98ae42368e2a7cad669995f959be8bf5e1fd28a9d3dc6ae453646e3eb82403746cd446743ddcdeef6d2c96c586c1c193474baffd2059b9c00db15c2d1176a13d6b7726893cd50c6bbe93a6477b4225d6b872a140b086d0bc7c9358a39f621d1a0e8760571122e47586eb51a519adac2a1f3281307a2795d94f77d78a80712305085a12056ddfc081ee38bb83e12a4a0f25472e50f832d0c2feb2e3c37d4e2a7ca95ff7c5eaca6d981945008798022288efe93bd12ccaa01186a0b3d8a6aab59cf854d64f1861d78aceb3be76b959b0ce81a9402074a7ec74aea0908e900b8276c4645bcfcc1f59ad835c77261aed8ab7d2c6fc8352cb59b0902050754eaddf7a602d2390428757380aa3c4bf4397198b64e3fd13c6a4ce19f1d471351869a8af9677fa9b66e2bfce9b75a98a403b929a9a6ef91908fd8bc800d310853db1310baa37339bcdd775c4d92fb8461421eb451051c8893e22045ef97736de3eac8ddcc8c6455ad822dab3d0320051b26c7755ef77d095f064f3e56a3619ce1d47306dc8492e80d02d6c4ad485fe0a3f33ffbaf6416431b3573306ba190108a9f33842293480fb1194c750fbc6c48242ecd3b8e9c06252f0324b142abe57af26cd8183f3cd7ede6ad49b76e03f66863cef5e489963e6d49706b274f048992a05adf117a0c06d5b792a8a6adbafbf4aa96d60885afeb65dbeb18b7c70193ff3521576047eaa8ed57258cac82e879a215363c0b5afebf88a0121466ee2a13f2e6b65344d0424c9d3a52e3480161214f6fcb62d8af22d4153b52f2bef23a34e51c350b98b23168e152e3940c756200740d45c546937377df52d007e7b2bbf13f8d5e995d3313d11113c201b657350cd22c2c2e1edb354a001288e1df45d1862d822677aa0ca0b9320da2612d4710ca229632133de4e777c37f3bf868b8238c73380a80a26a02a91c4f4ccd6b260df9a8baee05da9b60543b6100e94a05fcfb33c65a9c2df7dd0293d61c288dcf7a7004a7a163e1c0f6489616dbe781e048ff1aaf73f676b3d3c67eb9996cac5a8bb20b923590d8d93d1581dcccc20d6ed1b86db26d2a8688199a341a33596c0a6aa8733faebae434ba27addc2a2a03499dc2827a71687d60e77bcb6bc0211c698d5ada47a4a4455365360842df58d26bcd0d71a9f52e500c6a8a2d2a091914e3faaa29f534cd782bbe401946c7f762795d62d466a1cef8b5f509fd8d41b9cb2fd6effeb87be5966adaf34683439aec99046e35d25e22cd5fb6f53fe8c41d0773a17430ab640ade5c8b8c8d4851f2fad6498585cc16a721936c6dfac82789b89060149fd04aaa8babbe5be2d5bf82fabd3865b395b1b9511ba2f7aab0ff23d9b86d6eb9f1a3d42490f57b8835f34b8815820b19704e45586969bfe92b0f0bb7480d2be1327cf261b2d3cc2e0bc341a2edb2aa6275b1cd89b8c43d2011501a1f40471e9f16208be9a52156751abd1c5c7e9cdbbf20d2b23d0a9cb88c64e0ef7a1ace61d111fd2916a428301801d1ec00e7c64d1e5510609daf634ab8599e19674c33d3b0b743146496524999b62455020c3a2db264bec2273cb7be9e511706e19af04dc3da2f21eacfe6788516ccfb0a47ba16341037298f43976528cb6d57429885f03365554cb64de0640550db9ba7fa71c1183c4b57a8f909142083e0f7d038f2c9b9b84cc7ae4e3c6116ffaadd942b79e5bc75417030e62cacdbec41ccee065ed39debae0a41e85192c69075fe78ff286a6d6cc1706a2a9e702a4a9f0f5db6079a3033fb80e24a77f7aa96e3c51bf95ab12c79e7655dc79ac569714f76e93ddc7baff6aedfdfb7eed01312f4313e38116b4dc0eb74b2e8b9c35e714635586b981650c2760d91341ab6d20cd0f78305c726f940b48965e53822eeb29705e018e918a94909471ae8299d3ca92b91c473c8e24aff8249ebc3aad4f9e0f0493b1165bf3f0075ff052d9a676eda94bd239145b32368e1e609133326cd142488eea5fc931cba1dbf3be3912bc29d8b5a28768c1d39ffb89e1728b813f7a245c40a73e30e7251a96c1149094d9946b66b91c50efde0ffff4f150f4f8b962d2b4961147370ea922ded5732756944638a6d49aa00aab6260ea150b2559f312a437b35634a8322627a54b880ead39ed5ecd2af41be46c19f9876be60208c97b21685858c51b92b4136d6a081f50e76bcd81d89e3efac0b009c23dc715083cf68671421112524a8501b67d16862c6b23d5ba68b3e92ae2c2c94e724fe2dddd0d41f494e334aac28292ba28a511eecf88ed2b9a4023cf262f7c23ca29a121bc8c863893bec292c28cbcd0e9a5580e2f58c58244d56ac1253cf36c90da245acab2f1131975d16c01764c3484d4ab8b197504268214b402ff9a1366666b54008f9e8b290172190e1595076140da26af688e19a06a9e51bc24edbffedf9d0164ed3a7de1a8f916091f585676262bf815665284dc3292598190ba6ad5c600c19e7654438112706596a0ab93a373ac855ba41ca08b3131f17df474a964c047cd077267a14923828f667876a6bf9b746cc5b5d6682e4a0315578357a62a3bf020e484f531434c9ed86ef91850ec3b3a58fb854b9ef121691cc6a9881e506feb3d8cbe54a9b07d9d627f7e41d10713776dac6230ae71f42bf6144f7caa0e1226454ee03e61a6627042a5026bb5a1eb8f902765d27dc44e40325610acfed099c243c1fe3e676aaeaf85840e99e3e35f82abc9fd45f658c028a0fea14f6dcc365ea83c5c041e26247f4a0a67e7df12c63e5eb6131cb6d92e31b5a1c41eb03a04ee6f04bdbe6352b3d2aa80ff3bce79c1b8a86dc3abd5d745a7c5f9e831825de1b1542d86f4abc0f827a5c9d6476c18dae75222d28aa0601a3b97092f4ee33db579f5bf838e5745930087208d8f833cbece0521d21c7ad544d9f99e5de4a7fa1dd76942e1897321dbace50fe951eb7874de9e129ea6a6b7026339486930bc4ab28eb9bfbfc9d3cde069494ddcb78a3fc8301cfe3eda03b8b51c01c4702bc0d1686f1b4ae858b0505fb5bb37d8120644fc2892804c76ea462b28fd60c8b9687fcf615a4c5ab4458e454913b0d8994234d519466ee89f9e24490f916bb1ac4d500491463f6b880857cde93151ea22c912b15e206554f1743940a77bc9b3868c491d3b664cba8def02ec12dd05b9803b62be7a2835f625f5d449e6aa987d88621cb63ab35a8d4b8ec9689d95012d18935b1dae908af41c62c90a90d87c2eeda951217a24901ccbf6b075fb5a964b9180d21517c289af6e11cfbc209a33a430243d6edea10da9b0651c3cc9ed10ba8289554fce84fbcbb86a270e410709d71405cbc8ad404e5a706f785a504726665660cb59ce406273522d64a6c123f606db9501c8e12a5ae39e27bc32b04aa46ec7f492969729d5acfc880d8b4597b5c0daf8aac10a53c5a6aaaac746c91a1cedd86ca5bc3aaae20f37bc28ac5f043752f1796141ece9c1a3d811a234fe4413459aa8345974393c74c4344947b697a2ce0b887095c4aa24296227190b000bf8a811a433f92481d3dc0c9c535b4c00751247ca01c7b6a71ca450ea4061742943de46556701174400ea0eeec2157646fa6696bb72fa79bc4bac85e3330638a2da6a32edf62d2c868d015adea3e697066109d7ef8eeebb02d4ba04a3556341e6b2877b8f18086b52e4caa5a7c3b1a1bc0e13d46ee78a87317b48e75b1ba0e49a0995e1257c7a37e31bcae94a0472f949dfe25ba8317785ffe6e52cd195402b8d03f982a3a3ecb14bf5186869ae102bc80c27b2b7227bae75a48103a4282018e4028860a9d0f840f3be54b682a67bbab0c1a6f25cde7954106f253c5a26e65d3cbebb1446e075609e748a1d87281efe5a3db795bec00c0d0225484b52ae46527b010de2d165a935608af9aea1ef5afcc13c5e9d0875291e871557463d361707a3369baa2aa2f4032499f8739879521544f482a7d5bd0d473298f24587d8453b7a60fdf00c092f87818783e073e41fa136687c85a70c3cb235818171d08e1f7c2b5d3f7ce7b46d23587b0cdc6e0c11981c06ea1fc4a20e8eb6fa2a945c0d3245a9a21360fb4e9275d11e3ef1e28da7eca8c419f9453d06fd39bb5f426213fe47909df7a82b1190f0b51dda427bcf39eefee73918721320708c8df87d3958fd08c7bbeba2f8ae4603cfd6935ce1b7c18a9010e234006736823b837fae44a848b29485d79c88a880f1dc168bed12b09844a0ccf7d8b1124b88de288e0bca8c6efd5d02b0c852d0d668f019620535d3a5bfa87e80db55760c206f163168d44485c6a611429a410dab99b62d1752d8540433674562d333aae380d0abe0c29731d7c7e7a0dcb98d4cd27856e28961e01ad94fdf4753f211242b02aa1733a8f8255ca7aa0b5a926c157f3535801c0f8955559858f57265731812a1559d93dc678bdd76459e0a7650a13b9427dbeec95b847e998693a1d414369470ca4e111141439e650fa689868b7c525f57b9a07b0e5b32903d70dad878f996aff6c7c1929c3d78c3ce67489acef24a52227539dd5744f1462424a0611821114c38cefa4c72901a00bddd7d02730e34756a0ed3128a4feaf37e9bbc6703446ade058cbc3618da6ea6f73e5bec7b23840878d4b8fc7cfc620d1bc3e65c0e1e8fbd2b3f078caa165e121f29b02b5972dcae2e873164c9460b20122725c2a9d3bdd9c59d8832b29dbb87f4be823ad31c0bcfee18395b2562ee0a5a39c7a64510acfc8555b6383493d4b9f8ad6a909915698f52a659b80d3c9ec8e82b7f35b8e707697ebc4fb68e6e489f793b7c403d50df148fff9117af9cb365efed098ea7e2e5e3a560e02437196e9b26e58dfb99a2e3771cf8addc25bf6cb42459c67a66e6daaa1c8f495786d166cf23bb77b0eb6fa5063b9baf973e8649cecb2367a3a09cdb324a363857943a74ec9a735232ba23da71025279e23851d2730c7f0a3695a2b87ef0898fd292259f03b2aaa92cab481c352466966e902bd575a83ee263efd4f199c1ea64d1743da3ba1f93bb23dcd4afcbe24f0eac366d3774b33595d4f66ffe6d6beee6b7f839b45db8a55d9eab6ea0703ac2aa61b26702d865cf07b590763c61eb9103cd47f429a3167654fda2bd7d5743fc4d5d4404a1e537993440a3d6209abb76a6cd2c25ca514cf2d620a55e1199a74980018d49957f2fe1147a50054262b74af08e0e65ef1a92b70a26eb5ad2ffa0eda39269c73021e3c0353186ac812e4cbe24ef25cce85bd34e9c5b0efc493fb2994258986feca93d4360c29524de17384ac1822be64281c3ad7ba7fd4a12505c309605c4b5762ecbc6a7d1e7883f7dd9d2bb3fe8b8b5c14a88d2d3aa904648a147463a0cc5e560afe32161524d845428779e5807d4a98389027a2979ac3f1f7c15b081d8a178b0df2a12612c6a646fdbc2e84acfde098e041c9df56c78a74d570dcfad2ec3a4a883f6bbe2af51c81b0aaf4f821d5a258caae6cd64ef0c041a109911cf3465c08565abb8b8d27382e0b42feee4ea7ec7a061184594c89304030866208a34a000792a66459a1ad88e9b7d40250f1fbe30ae56cfb41dcc7f86f35682a4e9d8fca836a9cfee623a1f1d966cc199fe661a5b2c9b18aaea7159ba9f86064d275a84e7fe7feaad4fdafc86be2fd1276545150b87ca956324097f22081164593f5c754715821a8090ee5c5c363bfbfcf6672078477438c3bffd47a03772cf603443cb2208850af4dd06b458d0f9357c405cb4b560a6d33a0a77a905e2bac0a24610621452383f01165106644144c0da854d001234a79e3e6d6a650aa232d13a3222ae782fead859eb24aa22c0db3d1861eac866e52a21b768028601595a6209c578ef3b4801f9aaece43244f58cc539977bd8f71695c20544e62bfcc51a5e56e4c71d7779e114d4cffb257e6f9c5026098c78b23a68a75a8aa12136eaa188f135572029e8aea244de5237600cb85901c477c826cc55c9135a3e735d091cf531add507165c58b17dd9fcc3c1bd3fa6fbc054348ca5ebcfed2f7af3f1e209429da7731e169321888374e23c6327e8995129e98376b8ae9e2ac98d6881643e957846bea6cf7d2ecb972c39bdb3a98c6afe5427e70f7a5fc4861d48d671d961e21445f6ce45b64834d1b510906388671540c998d2dfcc6accc6e4d309b8ad7ff775d00be77709a07e06470a96630b387a9486626b3bef45d8bacb1b3f8e0b2df4487b6df1df828bce6fd17ef82859dacf42bf69c76d6e3bc63f432b21e696b6264b6a8acc4c6f14a0def75cfc2057f21867f3ae18f86920413ff140c62122739be9cfcb3a6c8b3228a4c6210978a4ac99c80d25fb7c843a69f00fbe88185242fda1a175234ad6b24eb2873166224849363516b7911c2098a2afa0810ed24ed27215886b7d83128a98526e756cee491936c43c5c4b38264b9f713cacdc84a32b7d077f7144aa496fcef9b417e29b29fa4041e0a599bfee344baee935c57091fe517782ec1e4b0ac9a92e937dd27f40243b9adf4941e6016c359caa4f9d94b9c1305cd0f1356c6155a53de0f111a0a1e2bc5e1a0eccdc0a66b74a09bf31529c237c3e77fbfa4461381fefd2fb9282a2ac0c018a9b08536e85b8c070b21a2982653919ece341099d2f33b47d18802e3665e6f08d8a17e36199099bb31dfb82886160e8baa77ffdab2d3b9036fd18a4255ba706b3d46a3108314b1f468939560e4720c957c1afc995932bac77b5db7622bd5d0d54991a19df281028d1835e756295a14496761136b18b147b8a4ec9119cb1e8924003eda88b81f13d3f88d224922e16c2cc42f0980c6c4c9133571bb208d6c2d13964ca46e76502a626e3a089b32843d980dd8c372d1f7f19483dadf01742eace9fcd183c21af755f174b7a52c8ccf5a424c2d602183cc9c48baea3d63990328ba9e9a1f50254aefa093334f07fa3928e32ad0c9fb5b9bb83af31861c29b20c1335eea2321210d8260bbf69919f99661e49809f36596f72527e5b5abeb19dc47c8024ba25a50388a0b340977c128d6c3c817409de217f8ffbb1b2b19f8f90dbf5728187599e1138996054af99686b92a9151827ded7c4118317f8ea948cce8bdd186872550cfa5383549a0e5f333be428a28e424c8b73dfbe50a20c2c612f16a10e3b61fcd5b012b66d6ae46fa29000245d357b30352e469c4ab013d7f50ae09b28c5668611544dbe016817520ba497730794b5d2d221580f347b5894175e11b46500489100c61f8a155e196d37b63f0a421f082c5c6cce44b9267c8ed5599bf50082289957a4c37fedd87814c72559521d309f569ce3cb416f785890aee6826d5583baa4290a8a061bca81f9e18be205aa5fbc30ada591106584f940d2c26bab64047b9b6df8ad1ba969804cf6efd38544b1cc8a61c972556ec11560127b2955a92b9b1b2ff740b0eed8f6598ed4d16d99e96d504e43076b52e90155815b3cc9c481bfe8252caf882af526adaa14e06515d60a34aa08bb59a7d185f22caafbda190090801c4088e9042fd2783e34967162afa614579702e06f2329002db756c31a75827224ff0cd05ad858ff6c0f8aeaee39e6b9dae75509e2d156c54ce09b77fd4a8836e6f6745030d277170469ae1f6508388d301554d56345128d36a61c4a6c81e9b0275800de30705c63d07799d6e91f7380c816e83cda2dacb7d7c9ff709a822a234b6c35b9c5b1a04919be37e31f11089c52cb708f2e8ba3526413466358c0ab34ec7efce588ac154b560a89da766f65d23ddf28710a34140943cd2e5ca46b955cce2fced06c3dd480da279d92f25222cf0fe7c68ab85bfe2248221ba4881223e43c0ad0f127e2ad0f1847dc097e16de66f118c0e9eb2b1cf6018ee8ccbafcd45164199685c73dd214fba8179f8414f40bb788c8433290a8e06ca0095670f7e32e4aa39a09b7c46bcaea09624df6309ce6103060d870ffa3ee7e79a69700411234085fdda2b73541748efb84d031f45a0192a469250432299de9db5f74c6aff06602759b6c182b3a483c50966f29981d474ce842efc2642d0187463698e5de5b435e89940151f2ae042bb8d02e8d11da12156d533945f18f859325a083727e2c8942f1416b48389ee4eaec6c93dbc4cee10b0996f42c9e192380ba6ca9f9923730a135ad4f61c3be1e42103bbb6858f91fbf26cb67ec69d9fdea5b3cff49ce3216b66b5c500a376ecf7bda06cfa3d8aca5a39279dd002f23b7105cf7ca13907c893cb4b7a9f514c58b2b11257d06840c9b91d329e43664683e8dd86019a7e6a94812d83fba878a86de648850a4867afd6d30168a0532ea7022996e50eb1f7ffa52ffa9239405f195681f75a0ad798e5d46af1bd82891b498ed736f5024516f64301b218c1ffd9f13e8eae41c2583cf98cd53f8990f138005d133b77a66218699517e359a1e1a6f8cb157b72b8ccd078b357c892c122463f7b404d0fa634aaf7ae5a0174cf9324c73d6d9ee83fc62faee041361136bf22959a4ea14710667acd8d99b17fce732ca2406b1e44c0ca5ed28a947d7dce5ec1f949ce107fab84868b5840828064b99e2bf24d26a4334188f8603f4826540fc28f6e44e01cc4e1352224410da3b70af91d5584d1f5d8b61d45113b0a5b580d3a360f4d2e685e10a13ed7afd800588284b1d406a04e5aa1d461d0ea81566fb89256e2d1ecc7557695b0cab90ceecac6c3e168f87cb25dd15c896e8ea5c5a2e32c5ed7041d6f4c4476b50474574a407791047ca5a3cc6fb6616f9c1b1247693451f98f6081bb4ad7ac16bcd89c97a61cce01d2c5cfac00740f42e6ca4bb624dc099c10ea7ca608ed890af2fe0d2f019d286bd502b4270815d7379860815f8b1378c26c252fcefc506fe71d5f99aab7f3c25e3998b7f34eaf4c793b5f0ee7080ab5ef04489fbd36a915a9422a8ef20e242f5d1ed9be3eef62f06f444557d58223ddd4d4bcc0d6199e66ada3e8daf9e8d8bbb6d3897d302a6d3a69afc8fe4d99397380d2922fbf5651b5e039774ab6fa27aca885faceb1a55754375af706b44e15b9e9fd896af73fe319fc63556a6fcbf3cd10eed733062e43e3f539c06c22ddcd1ab9deb645da4d22576e68a3dcb635a936f2872456d8382f60203e59dde9b48e9a8aefdb6d42e15265febd82393c680785a534431eafc3b2ec5de4acc789f85b395428efc97311552726d9dc0f0f0533675f9924d7691ea6e1b9dcb410fe92a2e8db8983833927173c27d2c1b336e2947fc8147b2b8fa6592d874b7c6975d88eb48389a63d64d9512411f7df45aa8ef8d34e472113394444510a9e931e82a8882abef95b179243ddb8cdad5c6dd2c0923e0dac6c5d9efb394d66042a70504a66d41398f874ce4af8bfd82a8ec49709c99bc1f53216c372ed3ececeab6d6f32b00122966be2e3115b1793c71b9ddad14e038b72af2ba4b6c903c99451030947f4023f403e991736c9033eb385ed94a157372c1a3af2a2cb177f34deda91ae1ab524c0c47d3bb87e22cc1994c29f14ac0e6de0bac104ab3719ccbcf260e11d09d34912e0ae8126374650bb2fa3c4cdcd3fc9e788e0330ad15f62d3eb185e48adff71beb9bc28defd29a0a0ac5c5a4ab43b72828bf4a5fa1805aa2ad79cda7381a91d1794da9f9421f70c66e6380465b2af6146b3089d33544c05ead5de0d514e5d5fb1831ab78f30649a438a6a08fc6c27aea81533f4de46237a8f7b64a859887c2a7bbd1502804f2318072ef88ac525615f91cf06cfdf6b36d0d34a70564a7659451061aa9865950aae695021e1773624490039f312ee8fe91b434fba38cfacdc0e09f36f61cc441beae399435d0aa6e78cc4bdb6480608957597819e029622cd9cdcf4d529711c544817376941df57bdd4db44cae3f0c0b7f80320d720f7d85945910c6030a169aae9f90204cf6a8644983f9644e10f305b3996cbeb1e89840655a8c33ccb491092f009bba4fdff85e0de78c16c3cddac88fd3b179deb4b51bfc14010551dfeb1f1716e9dd18ef790fa8e1c771b14101bf2b39fea98d63151d05d85542897f13437a75ac8cf80f21cb3946986394005f069c9289b748227dc1903d1ea03c70874007ebd0deccf9481c14117881dad4d0580c1064c8378ab22a5658116f7d59720a7e5348845a2eb72786f912c42c67f54814be72b2cd3c51058f567b135b2af70be79d15f543000e5fe735a7fb43030001096fa66cd5d950a43ee3c5aa04f07b14c1939a526e818bc8abf574edc595c716034e1aa27065b9b42fd78fa32c64f15f5d03e1d414efd852c0f0c33052cc9017a0b89365e801211b10ea8bee70d8a94aacf8ae8ee4e1ab252b4aebba4e42ff3799e001077a83de30a04f416639d2c5a413367dca04094a5aa11466f29b7fb1c06c5bb4f5f025706ea503d0943b8aab0f78db124b54835701bc5c02fb7513699a494014903490362037ff9a992b02fa24057129a0cf777dc7eb33077d4b2df32992c53f77661ba31dbe2e82fee877d11988eb13386d8bef16e7f7143b00e28e812bbf7de6bebbd321fd98dd716ef77ff7ddd98f768ed14465b49841849159e1747ec1bbb116f11232ce4f98e5102b59288000ca2ddf19b672c094916ddf724d9bdc655ae0439dadde96c184c37fa1631b218c5b184c58fe377ff4f8ebf7108a87b24f5dbdd7d646754117e0a23c6ef10418608498eb15a15cacb194b58747fe20a228820429cdfba311489445b2412eded62ba11138944e077bfd9809f01372009d28d38d375a3dddf582f4df71d69b7d6546ede54794f9b8a303ff94a02d85af1dc4abb7a60b01b0dc3842ad2a0ed5b1c622b8f96004ecff3bc8df7791ef8f6451abacdd78d9beffbbeeffb3ecff33ccff3369b71fbcff33ccff3bccd88f9cff33ccff3bccdc8fde7799ee779de66ccfce7799ee779de66d4fce7799ee779de66d4ff799ee7799e0792dfe891dda8ed28f88007a04b088890c30e7c40b9a0e4c4070cf8aea80f17d89c5d511f549820a28828228a8822a28828228a8822a28828228a88d203f1443c114ff0756c658c0676658cb1851d3b76c78e2f76c78ead630739895d1f104d4413d14434114d4413d14434114d4413d164b5aa2aa209564deea697fc4c31a9a42b173dc84903409de9006e3e534c2ae8c9344dd334cdf33ccff33c2190d6f4964eb754a6699aa6699ee7799ee7a9324f930a7a42d994699aa6699a366553299b32324dd3344d73059282549f0a51fa743a9daaca3d6198d6e18340445397d8b50078d9fc371ff1fd0b0281808c5c171cc3b4f6125814ebfd10b3602b09ab85121d43f58f7defc8258a40831837e286be7f2dc702b6c98b1bc92a5692ec6b3521bbd8c5d86575a1f81e78f3101da3319c65d8414a38f7b594315105e3d16a8bb92a091b97c70df96b80fc5f57a8dbef88b12a36e1856b47a5c8047df106b17ad0c40f683f85f245dafed6d18e0ee8d235451b74e9a88996989842d7c7f5de6b3da3a5ecbd4ae8810225b6d9a59e00b6ab0e9d1446881d2242707036e0e775fa12c1e7755a93e1309b966157b6300d1e34190eb36919cec0952dfc43490d569f5271006b30141f941521dd98050a43051b7f00404014c6686750bbd4ef3d60ec3588b97b03b6add60a0a2693c9945de414b7322aab6474dfaf79259bb295e7c52385253af38abc22d7905dec9c6bc836e4157925a7e4151f9325e268a2344dd3344df39971c82af99457724a5e91cf7c86962805ccc599a8a10ff42e9b3b285005aad2344dd3344dd3344dd37cba8865029df9747c793ef399cf7ce6339ff9bca8c78647e59607c9b3f210798c3c4a3c693e3f387c583029f3b4785a3c303c36b6a7e58678ef81e1f1c1d3e251e251795a3a284cc2240e91069dcf7ca6699aa6699aad4c2693c904aa36251bd186b44101a6600d50c5a19e94c7b3baee31f228f1a83c2d9e5467a29ed4e7fce0f051f99c3e2b9f94cf8a8fca456ca863a393bea8f3828d6527d561b9a0db41852617b1a10e0ac3b40ec3ffc7e4947d4dd4503ef39966ab2bd561c8c956d98ae4f25b8e39349b30ad39c8320cff03551ccaa196c87a675aa00ad33a0cff412011a8ea4cffe84c8c8a5c768c91a00a7b522e82d1abc390c49e14a8f2a44095382289237144964f1247a1c93fa78b6012a67518fe8340d9189afc6309baf4a452ef49ed16b2efa05cc4519893a5d6982cc3f01f04eaa0c4917fd86c5f3b6f0b7f5cf8d6ac979f8fcadebefca0e5e7b47df959f99c1f93c5d8f6a45c380181bf46b0634305e659c0188b1bb1de6f355b395feb19cb603f123ba80eaab343c708df6141b141980eaa7c8f2cb10eea737ecebac23566fbda795b78f4a1cc971f175b7ff97ef7a7868f0d9600dfdf07096b01f4e73440f959d99f94cfb9afdd9f1537c4fb8b6d70cc2a09cdaaf09ed4c44afa0c5353aa624a612a9d862f02894e2c459b4295176df4a2fb3e265d4cdaf71d75513b6455b0a18203965d778c2d2b632be7ebc2b0ecc2b24cd3b60da36d180cc765321a2ea3d168dd759eee3ceffb4070b3e17070846188102236186ce43c070706f3c0c610185649d0a0b1169ee41f1886611f9a442c53805f644983be756771b4ef93fce386a61169df0f4d7585d12785492eeb9a690c965dd124882c8d5dd124a45ba9f493f7757bbf3957a28550a4211cfde41ff64515bad454254d5557e8debee6525748e1ed6b3f580270bc7dadc60df9defe26729112169d106f7f1bb9088b118f012cc421dd904d8acdbc21e0dbd75217114574bcc6e1db0f47cc3f6cf7dd08aab017998deb85ff56b76cdbfcda6dcb32f7c71ce7a9751075d8154575d07e9160fb0b0299081dc3ee86c90e20742986a18f54d2926cdc8191d9ea18b1ef80faf72b499273e8006204ff7d8d4b00266d107b73f7bf306012bf39049b0d626f1aebd3149360cb8d5cec7223ae71fe4d635924dbe24672c6fa9cc90e17fcef2f00fb92189cac1f0346fae3b748158ec791baad8b1c714367d2ba206bc286ee357143d7dd84872ec61887ae655996151a73ce39e790355ed7755dd715ba6eba994addf39e696a325991155594145de88c338185ee6f9a8a4b5a98458e64926457ceea48407eebed26d99563219375b3988bc71ac2985423b668d1e2c2b4d0db4d6bcb0e2fa8022143c60cd6daeb2a268cb19565a0649caeebc23219a90c95a6691b66c6688688e3b84c66c68c940d874d7c81b5324ebc438d193084b0892d7049e1e2019719760bb65bad55915427acb5f7a2334aae2a552fc226ae40f5427542a9545433d8e1059dc864c83206d4c0e4860e2728d016a18c879dc1b8b4cdac66df6698cdb22ccbb26f5774460eaa16c020460d13c458020862a44388e10415316c902006104788b152890185182fa80c0e6c6e575486e893daf7fd74939b4e4a5d54758c2d2be7cbcaf9ba30ecc2b02cd3b40d9369dab66130dc86c1705ce6acaa8aaa60b83425f2e84ce83d6f29bda454859a50269b624b56b4b2d7b1a5c160d85733dba10b035c3b6f0bfbd677872dc21b2c01fcef87a6d014b2ec50250b4da18b1b7261bf309b96751f462499a821f0054cdde236e646b419711bd20605b80a4d9d0b445267762b1d87822ab006580374015f3658e386780fba803f80353628c014acc1a15ea8c2c178680255a02a5b752bba925bb943bb94ce943b95ce4577822aae857bc96777d29d7426dd8add9ddc10ef3b936e04dd49e7a22b7527397f21064c71677a3ecff3ecccceecccceecccceeccccbb17027b7b81597e2545ccad5e0509da9a5d0567c4e6e855be174c0b16c6ee58678cfe980db01b7c2a15c0deec4ade49c73ce9f13ec4a1ccab570292ee56a70276e8513813151431cea229e148843fdc37128877228877228875e0d8526722bd54e8da499a956d24eb41187661c324b9abd642fd90d0dc5ce5e6e88f7d98d0c0ad98b76a289b29734dd642b2d8546d24ada8926ca5eb255b64ad3344dd354c470a77d4dd4d0e7fc9cd90a94add2344dd3d4d39cb355b6ca56d92a5b65ab6c754d01bb7e7511ebc30f2f15b96efb22b55c1066cca1bbbbb65376e9290c463a6a83d62ec2658ec276769576493c6320365cdf5a6b6db5d6566bfdb15fe213ee0dfdaa2b78dc1cb67a512944a02205fa8b010ab4dec1097e3082e9879406344e208186c9d62b3ae0346e90e16a1a39386169a0252094061168acecf2417a7010901d76f095afdcdd1dbfbbfbe5c1c3c3dd8a40b87884473cc840d7a0f5aea84b8b8b0bcce5052e2fb0cb0a0eb4cb0c2740efe1a242754206ab2a8d5c44bbd47f826518967900c358c0011ef80045097a10c2583686852d282c9a853eed0bf40cfada159df172036d037d997ea083a04df40af48c140dcc6801831cd8ab19b1fe3ad93182df3ec946807f7d3b03a75abf44932e2f5434692ca241713feefbd56c9a91872a3dd4b5628de8755b2debba36a919d94033b222fec24f1724b2a02bd7e97a8131a764adb4ec9c5bc8d855ad940b3624ca40677f65648a9dff4291359bb57bb3e6ee59c318e3ac5996655959cb39e79cb37695dc54a572ca3d57a98ac91a59d169e7bf381107396bbf69ae42233b1290fdf523d985daf9affc24fb00f722f1c87aaf1bbf8047f65ebb89b76aad65fc99cc39e7edeab0a11f8047db01f92bb0c21c068f5c04e47080258df92806413b66fcc0918b5ccd7390a3cd2141b0b473876b6387ffe6495e443654398e158773fe009763fc5a3ed50569501a1eb9c8adfea13f864f93e27c302a08749ff3dbc564cec407a37edcd7ec503fee733487f3fe7bce6f1626e346dcd01cffb5b08c7c1ca486c3f98f436adc840d6d326f398ed5d8e102fecd2f00ff465bc0e637d202db6fb69506e55f6ad4c6ea1fe00cb47fb9ad368fff43b9c8c696e1b62bffb8dd6b4e2e827291edafee204b6c6b2d822c5db5cbed5ae50f419658cecf4196617e0eb9dae4f25395b6dc5615586debbb725b6d4f77b97de9be9fe158ed1b5e2254f50f6d2c5fc0a3ed2edc10261d35e284f6bfc87a4372ad781462e1255c146530dc4b0383cd069aa57cc12d39b27bb35b6cb1e1addaebb88a98ebebd7ec2a4c6f6cacd64f1597b070cc5b6309063ec4627b1638e52b5fa1fb3eea27b7a40d5dd9b2175bc7999202dbc98de47e1961c3e20dda5fbc41a35ce486f055ea9041e3bf4a99bce4551a3b36a0ef3bd6d2abb2951871438b3a9410894ca69494a824d22fc790a91100000050006317000028140c0a44519885388e04827c1400095482426a6a38134d4471398c433186c418220418600c200400cccc0c910902919c1103bf40d0a12b72231362628c88420e07be6394428bdcec76158e1eb20c8b3c85649c37600d5403999316df13106f3719e503945c14072a79aa864c8a5ed70b4ae9e74c125f9a1e03e7a75b2b2c833b987ddd6f534aae089ec40930cafa62f5cbbcb0887a5ea8bd4411e2f8c0653f06592e29d40e315d22498fc186e4852830488e5fc9e9ed08d661f638d1f230a7c63413ac45c82ee43790f7a008ab22990ecef63be756104db94c971b1f8cd2bbd36109d1367250e1d2275cdfc7753394743c4430ab6549aa4111f43d2ce0803fafb27709692ec1d3bda9b3e385e062f765068cbd35bbc58dfac10652110cbb9e2caa6ece72ade85720860ad45422e1212216cba2ef0b286326f604af0717fc3e5cdd6f186b91a26cd339d690533b27af8d8ac4e3022ead05976b6ca0217d7b703d7f883873c95821f4204572d8d856b985039a0412151ff815e7678cdea1a438974b092609b6aa6a722446b10aaaf19e4c6a52d5c587d6240f0de50148888e0cea47f982a704460f4bce7304ec6579c9c1ff136d973233c4533239e889a5b31e04700b2469c0d8af1cda264c2ba4c13ccfdbdb3ae85ca6b71e1e314ed5f3def7d26f59e900f5dfd52a6635977ee3268db84ab26b66296662543333c29e140096615443cc71e20aba947483a7fda419a39f4f76b91d9239ead9a3a16de772e5ca88f89e3ad483e8b500330f94d8d27e5193730d64308d9fb5053e761b466b21207a8ed4d6a16a88fc4ba2fb94ca904695eefedb982ded61e2db8be0353e0014145f70fd7d0e319d3344515fb75e5698f1e1d60d6e6882ebad5227a271f7b4fb0dc79db5f86b74e4f14635536864c9c3a46b73a30e8a574d4e16ce65ebc5f6c741a953ef82cb9dc07fa7d677ca3b12ccee7ac11d70fb0911ddeb05aa462e1debf637913267e2d49b476dc35eda3747e6d9595aef602b843f72449cdc2ae0a56e0cd85efa9a8cac959c5ee75eee0f7da03dbb8459fd1b8569d59b8de01ed6f68834aea2285d10acf0d300c36feb716f7cdaeafcb3dbd07fe6fb116077b702d519f72d9a7dc407bf232e4f5a39096597441800eeafcde8453fea85ec6ea36372408a809eb4d64dd2d8d48434cd79c5e6bc41c153c17320d5d2dc3480e47c83747607b598d17e1ccb5869c3a254520d12b0d60068341b4400fc3703fc49f5ab49581ff248fa492d2f7e297976a908acd85b9f292da67776c32160c78aed53581cfa8e36e6d969d346c08aedcf2f655f4c2e695831be9401001b924c5a436435b45915f556d7ec1f0f9f12ddfc0a937ca037667bbc96f02112279eceb37aa2df71218d8c7e6e4ea34281ef24b2e0b41b060e7a3602918d3ae53461d1b335aa558dd2e26c7f56b126ba867d2300459836aa7e60317e1aa04a2d3e67e596c322305ebd163066b6c59d277eb63a7023d8602de81eccf91577d0c1c8e7fa55561e2b1239daf424adef0743da9c1d0e117658a923da62085c2c052823af76e5b0eb2068f96ddf8264235d3018293068663a40361256c976c7a2cba100ddf2dc60cf4b04f3c8849ff52c24d23d6f5adc79bd26d51de2897ea30453194fd6149c22d1436cc8509c4a22b54d26d818560b1321906a77db7e583b93b8c8e7a35ad10217239b04d37c912f47b5a2002e402619d248214abe1a7556e89b803cb2e44936392dd7c9a84d3ebf84c8264f8614c9a03ee533161569e19778469518eff424bbec91fe04396cd0421b5325caaba019e46e26845281a2fef431b6890026d837d19bb756c082a83d16475ade722a9d92c6ed49a32f6a89b18eb5c6cfe98124eaf17db09d72882f73d5f0908c3a2e7b289faeb38e6a67274c6b8d7f21bac674d428fb75d020f4f1a23c1970ee2253a552de6c3bb1e1887d0b3c7b8f6030cb1abdf3c60e5f4a0154294228318eae9c1e209fe9c84887e871938481f2d91149c16813a8c2d4aaaf9c4b6f22363fb3f0d619b38f6c13e32450a3221413eb4440500eb4e59bd3c462003ebe991d7252146975572aa17b5b1d93fc8e4ea63309808691a901bc8cb2087ee7bccfac9aebbcc653ad15d1b8d82b06b392994b138d8c3f681c053f4b7ed4aceae9bf80408c0f97fcbba7ef31b5e008a88fc3b7b1d7cabceb1449c8923010c63cede7fa8bbb20946629303aaf01cea64b4f363f195330cb5f57cf1e039df23d6731008c9007828e4ed8cc2aeb811c95f01656d9c8a66e23a14787c7a0f440a529afa1369756eb33b5114c36d4208ebc867260def48394efccdb1709034de4c41f1f9c016b6d108e85561712c5aa8348e3dccde12936747da8b47ce3b91a1a86b941cda95db949453382cfc4ec8217703ced06d7d26445d2f9fd6b6d2480a767502256c1c7fe7a410d6be8bfe0737bec7997886608fc0e134b8113a7b63a540d52285d4821d4ffc253ee711a3f2528b97010c93e9010ff4c1a580dc22152b332f28959bfd2392c1c503f972eeae079303a742036bdb8962df60541aa394398432f4ad10932c400f3ffc7a54e89b47740c2a18034d396175bc75a53d045558c279375e6bcbb88a9bf4d95cbeba85f1690112f11dfe7cf25fe71e157b97a40f58b4e26f854f3625728cab52b2225dc25e209b3bc8f82b88ed4a52d8d44b6e6fa40b2d5c55d66c91ffc3132063196c44644f3b74b778e08163d1cf2cecca4a43eacef9176eb478694f8aba419bf924ec3583b5c8d03cf670043ff8d4ef674c0e0ac2d702d6b38acf18e5a81b752cd954e0c907aaa8c9b2f729d9a763c74b9240c460ca401b8fb3cbb388cf6771c5014cd0068fb4fe776822a0b19fd3fbb8fc2b45f39ca8718841ad2190cc4614d050d394d4fd4212583cd8363edc09f6dc6323e69e09064b312e3e434e4e6835f6896e379e91c6f6daa17c5e0eb63f4f6d015e8783080a111a78b2313e5660aad138419df54f6e77709a3622caa987cda8e30ae807ab3ff5489d2660e4f6f02099f55d6e140793f0c1f146215356fdd92c6dc79ed11708a8c76cd6aa468c7d4ea2603af0542ef9f5d762132b86975f11cf6f8254bed96812282105eeaeb6e852e98a0b81b4d1cb1a57672f9933849758b12b4c8422be3c0de9f0efebc47a5cc4d2236e335be99a80422efced1cd66e12c4eba521d9a91b5ed94ffe014f4fa0241b1d5b657e65e95c42e0b9a853a5f54de691fe363d85aa96eeea85ded1543cbc0a392daa0fff4782619ca7a1eec7807b9e1c63378752defd9085825a45ebb9dec3a332527ed3818037dd3e18197d5ad9efe304a47ffb017310ad0ee6f0ca15feab5adc60ba39aa6e08a08d0a6497833219b9bd6dc1c180c9bbb6af630d6b94e343eba719379dab1220ce88964211fa232210bc7e64a928af9f9662a92d918760f60e61ea28bf71025e384a62029942356d56c6c4035b83ba353ba53b007e17a9f5a19f2a30ed55bdab0aea864e0acad6c46621a7712870edd0043c6c7e4b2fddf70e6d81de9d4d548705e2ff1196e453b80fd79cdffc81c3eabe324454efd3974a71e159c520b53840010b06a9276400cc7acbeea516731ce4ec7c8440681a2f5df222932f9c61811596455075f480a090bb413c521936ca242c871edc0a593f34292e753019b1e7c09c6a2685956909484c5575311fa06db4fae0e9ebd4c14f7c0228e13262ff9b90805e651010d819ad7f8311a6e40c7b0942f36bbec0affa3fb9669a2af6ecd49363ead09f1a1b3826020337578c962c80e934aab906bdd74d12aacd89646677a4838605bd51e6f9b52a0752c56b854610be6283a00106940abdd9de3089de7047949469bfb7ab94d5782f659e17eb995706839827450b20a2f055bdf4570e7ac3b32f15555b183b3f2cd96acc054450d62563b6488f74245bcddb36bf31d3495c7896cd4526785079d15468d91487588aed8908db13ad924a73ff216f164615678a5357ebc12bc34be93e7ca88e2b9c77f2937d27c0dbbe39deeacab8196fa95d21db94310346c57505d394da9d607b06d2222edfb04b4cde1ef621313b2dd1b33b0f8d9ef9cd5e50965fa3d712cde2841cb78c4eb811a05b8d57e1dcf42bad02b604c645057f8d63f139b8a64f46c81a554df87d1130af26da85b9b4284d183c321b60ba382ca92b7659f4fbd32eeb7911cf387d213b82950c994bddc9b42d101c346f6c039afb6bc476158d7c1d0703566d2825ecccec71812a15c33fe47a2034e229259382e75d9f69d1c453d5fe6f8f5a154871730c49cc719a770f2f0cef222fbe507a9e9e6ce9ed973d37b0081e403beca82a756953a35a5eaed56d437634c56d4ddefe350f2eaeacefb575435bf2b56096052f7097637926e6058616fe028e70d89c11b2a4eff4062807f7af2801cbc85fc74946395c778a429714820d7f303fa272f3eb41e29ca819a730e1e38778388c27473df01f4b886b25393527aeb1eb772f03360dad3e379c5fb84767b7ec3f7db895b0e72cfdae78d7126bae225185cb037131bf39cefb3ef9d89e1100c980ae6c35f2f151c3fe0472a2bd05924c44a6860bec559dadbefe55fd82ef65538b4906fe46c83be1d1cf8aa062c7dbb65fdb3afc2358f447b055672b991a7f3c2350a1de0fb07103fe31560c9ef569ea6fa040681245a2af0a5b7db65ba2e3dbca79e9d8d5f1b243352012e7def82b01bd59f3737a328fdfcf352a5ad323d70658eae001c134f6b7f536d3961567c7506390b1b20a7938754ae6579c5d522bd672de0d41188ebcfdf7bac1bb59f649d932549a5e2f54662a4576b55fdd7416c8eb5c643481fda9b757256096bffbccccce5b6b208c2f055676a3cb1f2ed3f52eff948233031c108fc448056885bf1b4386e8d8d465b686ba16288b7d580a57d5eae6886969024b27423460c4f9fd2ef94c6f17584bddc628bd689d685679b04f4a6f0a4a4c6a08afa1bea8a3ead8f5834d229103cfd4d32a06c3b9daef7d99517077509ec2d975217438987c4694247e1a9336e5b16cab2a21dd4c1cd289b967e1dab063e4c163dde0d15ae82e58039088e9e0115a2b4c3421e7ab734550dc51eab54acb73cfcb779ea04c289050d9816dd4a07d70cae326c94d1a94ce41fdc471f421df013c2f1cf512a27c6cd82593e0d9703e7680a5ec37db067267030d1dde8b77bf188864203bf6ce3e1018c8f2082bf8b5db5df3f43eb7df38f60cf782697b520389543b6794d189a1945c1e971004d8e2eab3d48cd419d1024703cb902bc442396830c28d69e04dde4c1a6e8ecf925e385e68969d5bc50977473f0e9304bd5d1a031e9d56c2963226742f12a873ef39a3073642c21a990d5f364c3d958b25dfb0c275d3b23573fa8a720a9206038f87c23febc7f5e34cc9053fb4c5a769b2ff8191e94095e8d4e3192771b055e6f3d006dd375f54b37ab01e69d714ad4481b83238779ee6292295c1c78984d5f7fe4fc8e7d8b91d662bf0b170d5a1f43d92790830deee6be57cc76bf8b6dbc838619ab6380059c4fbabf7ad5cfc0566c9cdaeae071f4a53eeaf12953955590d03cb27209efdf42fda66929098a0a1472120d04cd339e65e7cb8f3b22be9377e6e5aa747f9f7c08d8e599fbffcb4e0ba58400612405455c3869e3bfb8ce8d1a2543ba34cd2736c4dba1da59e3f360630eaabcd694b7e6e80a357b7dcff18ca909bd040062bd1b4c692685b56ba552ba330b509deeffc273c75b8a7f1176e428ce9e5e8b7f112054a559b43acdd647688ea6f07c6af99d734f4e7dc9bd99b75348fbf689491d7315b2fd7c50aabf1a9157b2b562499b87b927e4ec85a3d46744415dc5d9537d9790071b2f6ec41e8c021832bc4342e62c9fa4f2d99a08097d0a2b8bac83c7ce7b3fa2d76cdd452284646a932b687e4ced264a8fe34a05da65063d99be1902cb7a0d36792263fbafb0d06c88a00829b5520fa8f35ee5e2ba135122f23b9402cbfb443c82d892224117e61aee5dd07745a19e8436c80cebe6e99f88678f36c1655e8b4e84e862c0956a3817e04205c2594dac5c210409d287f043b7409f709192480e589c08eb2d48da62971545d4e372d501cda3fb60bd2261d61d41388bd3f9abae2a81b5b9d4b29059c5f32699a8a923e924ad0e4cb2cff35004deee0a8db20418396112862e9127603e0d1f5d71b564155911e8d395df40374a49e5b73351a328bb6447fc4a8c20de92a822ec786c43238812981d595948e75000d87173844318ea7b3baa6130a64f1a5629ec07a66b581db0c10266fcb1638dcb3ea5fc10d9841fa7004b861d656d30b2a1ad8b1cfa8781e7765c41dbc99ecfb37ba51405584f700d465a88c8a46b4cff0cdb2ba9bce346c919ed94bbda6871557fac406847efb28bd6ea44548491bf26c27c9e7c8e7dc30b73b1c259fbc564507a22f9c800021fe091314846921394d45b852f4b5437058dc51de6cd1b84475f1dadc289bc66c023d1c51a6c38a8eb6491d2fa90af82fc82de31cb7b7f962f66acd25092c61bf1481689219e19c3e8abe18d58e978ca5e1288f692a1aedaff6005d3fa6816a200df50a7d313cd34a808a717ba15fa2aa7a0dcc63462502f83502b4ca12b3543588e435154884248683e0642ca820f72d4a7be9709adf9b4c5a7e92daeb571329c10d71a8000eed555f6a8d3333e3fd8617321d9b982eccd67f0630a9f1df0f0ae150bebb99a2acfc91cfd63dd0919eac9fe8e6326481aa3e74715d4d1aec08011ed0973a3ecb44fa8e8d1e668ffa22ac000628df61fa582f30f6b683f79e4cf96ca796e53ab7ea4467b6f961a25197c2830926dacd35eca05dbd27412e90721f1018526edbf361ebab1dd481af0cbf073daaf536e92e6e661aa25fa845843320d063de8dcc47d015be36449018b45b7321ef862785eb6923ddd471b2deeeacf4802b4e7935b05fe5388abc437fc6ecd43a7af890daf0cb6c6b2a8232b91430ec6f3aad930015b740a680ccdb6bd2f100352e4af861770fae59ea71cd9c8a75f2d96deec8db657f20320d7676728dbfb2e0e74d946d74460a8f107e0e8fbc26cc522fa22c11eef52b7e788b6df908f041bf8237d45ac9b1d8236b5c29dd51586bf20e1349b90f2da2eb1d2b021741e0d4139dd7d5ef8c7b46a78946c95d0f5221cd984ea082c5cfb65688891d0b0741bfab0eae8911896d267e07dd500bc7f83f0490eb4945c3f84e31b2c7b8707be4ea1d1654801324005cd7cc8876cc933e1942f52963fa9317f248e0fbc19d7488aad0c2a74cfad705f6101fda185f02a175a68a1f1b98631d2f6aa925328412dccf7d75d04da303e5dd0fadd0b382dc2062994d887616a36480a9e7b0f03dbd5282404d281df5018ffe25542afae2d0f032a7747cca7621ae2a198f4a054d49fcff3610e6740c6f725722e99d525b0d5b0f5abd041888a28a2f60d7c1031ddc30847e12c27ce308e848420db33923f4f1fc69f8c35729251ac141fd58711ce39116b34e06150d16cab1a027c98d4106a5817084054bec8344a3fcc8f92ed00be7d122a0974e4f630792e26a42f2302fa8c1425ebbb874170c3a20df8c624f001a3ba3fcc84c926af6cb21a2f237dc18871e9c03bc9d14e74da39beab1258a071cbd0af28ff24656d34b86bdf0c0278989f59d86176a12370fe1ed08ec80c528f9e9a19050267281334f811312f35ab666815917f9869feaf23a6445012522161dd58b33d97f7ab04c353a0099541dcbcf423c6128fc9e69cd7a211c37531e04a359c0b70a182b437d98f6c576930b4d2c6904af0766ce2f26431622cacbfeb6ea0df399da785f44ce42dd0687f86567c520345f79c99e34ff43ed1211085176730cfc94d2807cc31581c181973023705a16c19b72be1c3e646ad1dcfa16710c901318e2e6765175c6497f3210165c7851d2e296601050d97ee5ba562503f03ec852671321ac1a13483c769a813095a0642c89174c539ebf4a5af494179fd26c8f2389e3356a0d2c0ed3784db1f23eebddab8782772e329cab510022a4fe9974415af520af6cf57bfcfd50469da442874ec3497dc31ee15cf50b7fa475024817ac9e4a325dc3679786ae69799f7fb85e893a12cf6b08cce0248c1136fc980bffb8784c09c3c8dc2809174afa95b6acceb76a791ed62c92e6898099ad9c96de68da9a6a9d7c980cb771fd023c91131f8ef170d40cf25c7760e04179f47ef9103e792a15fa29359fd881f5c12416bd0a9d9999a53f6854f4eda9c2e4e3f94003855d736c3ddc72f4bd6f422bf743f45bab3a484c0925932d11b03ddd8dc511af865f8e992ad61ed04cb4d533b66da07185f1419c8423cf8c42de12cab44e263c98a26cb8f9dca837ed62bada1b641ff411b0dee22bf440f4be6f35f76d356e58af0fe3615042d2ade51480a1ac8a7aa816c6a137a8e3f27d2c036022122e888994d2a341922883929a2ea61bad9fb8b9bb32cdc9344770118ba59929a2c7f0e9d04ce2ed564d6e9dd72c63a35d6c8a14fa51975f71e69191a99e6468eec1b89e81c9bc95a18273659ae8518cd0d650695603c6f898abb3059423013f51736616ffa61daae2a8c3f41c6283ba46a531cf70499ed1628955270ec8f09e30d5cec1cf138576cb116b02191ad984e47dbc49e03eeb5c4252f303c7ab5105b2595247cf18e4e0589ea9b2cdd970bbf1f0b644135ce705964b08d4db861b862d683a889a70dfd88a6a60bc65b9798a45d74c277d98c78a15e246919089523b82bb6b55a0fe2632b3266f8105c9cea36c309cdd1b6f4e21a51782f8361cdb3c3ce5710037f482c5ea1580ba9079ffd837c9a0e16ea62fea85b8ea92f813482a4b2b1f1696372332d781c165e7d03649292ed4ffc1df43926b3088a0daadd096285b70badb535f7947afc6bee56c35de0c4f53d39f1f885c00b651e0ebd1e7f126db97df34891df7299e1c9659aed345a128239fa8e245cf85f5f2600ba66ffbfcc79c656698cfd6dd3c309c3520cc4d7593ee61330f99d740b32c52415fd1062db3138b69739c72433d06eb10d60bef27b345ec9540971996ae03428eee1ccd499f3cbcced66460c1be7cb14d356885a6a45142a2cab10e2a799e2bbe0042ed36808986c13a5d03b6a21cb2f53d4c56ce9a38bcc5e27b1bcfaf832d16c18bd615caa84becca8d1977970a2c90b4ea1d2cc430f3095281ac8903c1e0a5fa06bdda0245c66d1309b080355128f9484a1e62c950aeeda7fc10d2ef307168e3ae0a9a0ffd3face18f13c775adb7c662249503d2aa3bc43ce1f22feefa8572e6766739014520ad00b5a8dfa61ec7379044d46434063bc7969cd4c4b3ca6cd29af513393eb63a02f6db8ac024309da9c59bf82f82463411f690b2a613eaf45ba2bd9c84c04dc643535e207b8e3d746976906c489b33f5bd374c8a6facf645e32d10c2867a16a14cb9d3031c50642b555863921c1542b54a5291ce3c29c6d16844aa371f6070957360786acf53ab198e807a866860a062abeff81b4ec67f272cca5e78a57486453c80f82f2ffa52b5133656f01421e6106234faf6ba97f320179ffe1b41caf03b61945361964fbc2493c4109de20a4fc0a5b0d3e5bedff020bdae03572e8006f809e12c58242f3d4d6a8af624ce4aeb80d201b58151050869560bbd08e1ba1c64d3a08b6029028892221eca48800ec898a502b7084fa4912ce9325a86df80c756956949814906d158c99c61aa890e016037089c1cb4be93b19763183ac8319b8010b42e02af4cde3cb70e875c2441dcb37b3e00a911834fa26cfa31a4cfe111af9ac9cfc3065fa9fd4f259a79f092ad08ab7d6fd231b1e8ee8dc0dc221814afc2d2180cb0e10fcd31269ad9dc4124ef69fbd2457d14fdb665606fee21cf5c9508fbbd270682285a7c9a337bf0249a7e15ad0c1f2b22091ec942457700acf2245cf60d3f37325b60c3b58c30a93ef0e0d52013d3a881ce9082a49f215170a5307af3206924303e4e8e2e22b8bb28587cefe4eb911ebfbbddaace48a5ef89705425e548044e98368e7fc1a5fa008a2dc66330739748a9effe2e571ccc091c35ba1fbb44ca322dd150b051edde59a0ee1908d3c6a8b6869598dbb0769e999e00fa385acbb641611a74f23e198b02550453c33d144b34a7588b09e87937c23767635e0889c977a3ecc36e2720c6612683de818a1bc4839135c6ed2edcd21b5b765d5e9e2493db9747d14fd4a3d02025e9f365ef8455f7753c98b21d604e8a1f207056b08b73681aaafb18245d69b893d8ca2656f738a94651b696da5f6fe3b3220b01da67ea07a7a5794dc2605502827d3feed0a48df33091081fc82713fcd08347996970e9c5a3c9ba30d5b70f1aec8a9136caa5413eced88b1151b003290a244d45465e7cd8239fba06e84292af205a86ab5f4fc717d2ef26e71554ade0839204b850f4a0c06e347ca5585a92d838f1e202f9486caa607eb7804c242a440287845e5203d2aa86ea366bbd6c8eef1ccd24d2f0d9c78c0139bdbcec3c0f33146fa45bb003eb06fb930917a9ae8ad36f78d6700b6d283413f7e704a555e117ce1a61a69853dcf3065bdd6555a9792da241566ccaa65c11e06c4ba6209fc1afc01c03bbf946b9c2ff7c1877d7dac46286b90b87f0c665f54c88e39abc40b845429ea2162e30801d6687c7175f16fe759928f818461e1922e6f2625b3836e2ace29c0be533e4902f1ef06405b0df0db6a0d2e9ccd7472673c0d8a2b9cf8f7c7fef8dcaa3fb9f2ab7503f495c8d50c2615106028e74f2ff805a7bb441d3c6af626d9bfa82785eae4c3e99aaf0bdc7eabe1b4969dc4fce6a6ccb43a24ba920d51535e5345242be6b5c37f485f025425056d36c9cce42cd939dcf82528e4f7d513b71685a8f6bddfaa4493df1fda26e13e2af123586272e7db66a4dc1887121937b6e93e1b2ff951ee0da5a0b3dae17eb88a1a4c82ae5297c4330a537d3d7308244f84dae6e5c56087d4bbd2b1696feab1c5d055e42272ac9217690168f453768981fe3e1072165d8c83ba22d9681ad139efc72e4b7142c279941fe21362c062ee55f3efca2c9028b46b884d81d8161541b625204b37109b6bcd09cf9e2cd2fac356f370ed8cbff061a30c49931f7fb4eeed9c98c41a982f278f5f449d1d7644bb59d1ab16fccc64f8e86635c7dae1dd72d8155603da553c891316c1135c7882583b97779dd581765447e684453422f32ecd1dded579ad5818884b08ca9a3a2c1b72b71e1ce64822726d480c44174ef060178f10bd7b96e91887311df182f624e6113bba5ee5336cf8934fe16e3c79b3de7a448482f394054138751d7cb6ee00f1a215b519435690f0a703d1b6826a0116789f8026fab499bf3a8e78adc489deb7e4be78ff2ea48024e2f639013f08a78814ee702189229ee2577b993667ae6611b7cdf96982ad5e261eaf1b253c88ac9d4ce037e931268278dd2891c7bf044dbd78b4ae4c77425c5367a3248971428048dd16dd9d95bfd6daaa4ed8be216a171dfa6bbe044834046eaaf6a86516c5ae044aae00c35031563ff088f72a5b1d0adb39791c89b43b475154af4801ff80a05a017483f0cd28c56fbaab76812db6a9a1645cab29dc01bad2534772d767a415c8182ecca488b85d14c8c2acd802893159b870a1ad84e452dcfa3aab45bbb2501f1cc0a6412d3cb23f6aac2f1820e35896bd19ec8ce48d72ddaf88e74700d5c772b4660e61c42fdf00a38d4229bf9ad109f1f0dd9171c373927a670d8082f99abfbb72ad18ced25af02d12fda57b2f1f57fb37682bcaccfb92dfb48896ae331cd7a8981ed97fcfa29b5434589d400a69c09a18f4ed1537a8d71290f3be1b1fd5472e94610b65b4823cf2c30c808955a2f0ada249af4b2543ea6116ffd30b340e4889c2250a1718a46a5980f88ca9531d18be332083b685447c33aad61bbf67a89c27e5b970f073edf53ff639afc0d250940fff21199a99e1e94f5271f860a5f5f22e610d301bdcc862eab433fcc77603fa5b95e3a9b94c745659c685e609893de5b64a6ba81e98086130e214d93a81839f889fd364ab570458f32d335f4429e2028210f3985ebe23f5fee94597be6ede50426fa319410cb05a193cce49af35cfaf19e601471f80908345e4ce756765b808df961388fe42a4c02dbab5f9f201c9fe83a7112a43d4fbc308e8d7fffba56be02cce3714f7744ca72f38e8638f560d23143b4a7f1927a6103243f2408d1249872c06ebdb5e01d59e15d47089fe582fb16605aa4f4c8a23e63db7c5ea6a2f893a6eb44a566414ea6ea60c228d7666a09bbe68c607056c6ca27e02a522364f9b3afd62cde94e4eab12c9d9f119632e97f0aeefd16f2e636147bfcbec0985f1cb7171028279639d0e9661992023d2720edf5e15a82f93a7321232085d215041a87fe680e0113f178445c4f665be4f2b5c186bed1fbc9a390b4312c43add649359fe3b7cb866b34fb0bec239199905de27435c017606315eb67ba53c6a97d1b86797fa19edde0b7d89846ff5e2000f0c523b71f1e71645c2f6fee8c86b1d91b31b6c42fda69dafcd78f29f400e32b8a44db9a8893902f01687cc78f0c77e9a1932f3ab874be6bcfb922c81ca081668cd30366ac46fff003116b1e81b3a785ebb52f206d0d033cc90c1c395eb0e11f207d0d033c8b0a1c319539f7b04dc18bb91483cdd782b8e3d026f8cdd48148f6eb8957913a837590c5dc346034cae04d2d53f60d0b0d18045a0697c9d838679b0a28f45e1753cdfa1480b8428e863f50d11871cfde3abfc353d9affa89b8a54a452c97769f45ec469bac875df1d7517398d4974b3e48e94927929335a74ff9b3a12ddd86c92f7464b808cde38287892b8a2d777c8241ac41306e169ab06889ce55a04f88fec4468b12098ee466ef967fe432a00bf68779c0f1275f64cb1c246460a132c2561db3c483967a92568e814f0f30151c6eecaac389c479f6802a9645432c4c9560568f423d58894e240760b34dcfc3ec967b4857a00c03bef2642968b0804cafc8dba5786ca0c5a1fb8514dbc03818afb6164d5a1958fd4c7f80096680ccd1c71fcea788b61dfe960c11bce1f95633362afc9a4bcc3185b8a4bcf7c7824c510d8e6c3f78590783befb77eba5418a6d5ca0146f4d4a6360205c4c133ecde2dbcdb96ad1d047353b50ea0185389d05ac130bd1bb9f19ff98f5002fca2dd711f4cd4dab31051615e8b0e68a2609ef09158b442456851ccb16c4203faaba3d6f428a66a37766ce85c4c752ff4eace96599829109ffb900dd44dff1f56ab69f0cd69d51bb0958197df855d29d5ef10020f49d8baf6f029a8b94f35e79654098198d59ad359ae390b107e5645d0e63dab89781485970cca44e2aa73480fcbab9ef2908896a06f92ab06c30db8bad02fc984d5ce87c2d44842fcebc1dc56987122c4b996a8a1c3c00225377cfc2291d9dbabc69ce9c35276fc6ff0bcc80329ac74ea71dcbb7955ec183c249c4f508f15166a49bdb668d912b7964b62ea5caa8ad8327b40cadf1c7d9da25ab7085b46f3dbc7bb6b89f1c36be908e4b5acac2e7d16e7db11cf14dcd1cce2638f0e85ca2e0eeb39e6513db740dfc571d921c1246f58053b261e92d46d8066154fae49971c9c57841468e2e81b387800744b81667c355a98172c47f0f4cd0fd896b5119055b8c7a4a98485f3355c0bc3338b2208f20f08e7a51fa8a73eb04f7aa09ef0a09b37b50c4853194b266fac1872665be191d4a900a45ff351aab7fa281194fb2809f385b79c20eb693340a1408db5c15386cc98668bf7ed0d17bb4025789d3ba5f9329bd28150d30a66034bc9eb0c9ea91dd8c65abf4719eb1d3e64d06060d2468874643a5df63d9d5cc7f142ba3f5c03bff071f8163eb95affa49c277c826ade8bcf2c59315d169e444cd6f4bcf9c4e98134982475e37192d43ba0dda456d3665bcc2ceff63cfd54df60dd9e6e3064f6e4131a409278abce7aeadf3c622ca092f25acddd0f430645b189547306cb505fd062b6a2130393cdae8ca7bd6c8b30ef27bc5671d08e4c9a1281a2708de63f63bc7ff0eddbd235cfefd1a4ce98dd95bb702275c37ee1f66b47c91e1dc1a209e26399bedb2b49b1264ba8092757d792b177b44ab5276d895c41cc65348f76b69208efb1260f090efc23e603c6b1357bedbaf39717a71e7fdbda71da0901d4cb8dca27e45c7290f5484700d3c268f88043dd7aa681208446aaf0011b473859e5e4c8021e5f30328a1cd98ac66e2c24c4223a55b5388283069ccd39a1160bf48b3a9e7adc186ee5c9de33f92fa00b28f1b81852f45a4a8dc752e943e828bdcc14084a6bf832758352324e4c1b1d93386a66b9c0a8bf9f6d8cf15256185f7f37f0c0b5467432af99dc95e84b75c39d75b12e8a2f61e6b0ce623d0017dce3ae1e858bb24c4594df4eac802101bb28b2cd89c764c12c7849d0bc72a010ce7604debb764cb760d217dea3030947e6857ec16e05b0de9b464f502e65ead0a3a3b693759290aaab1f0f604ec3e51bd90e1a0431eb4560894e786e9af30acf406e786301c6c682448d56160908dad75bd673a898c70daeb062baf92386b01d249d9c65b083613cd46b314e0a7a206a1d30182a10515388a992bf84f9de058095dca759cb14e4e31f471b4e299265fb86b39018de0ffd59b1ad71a371c5ba266cd7172e31966f667e0fc415fcde5f721cf594a244bda3d768bb16cad77c01a16d94a1acdd1ff327b13ab69857c30015f8f9b1e4907b5e5b5ef56047c7938e73b43eaf12a4b70d2387f03bae9d2d7b54f8a4bb4ff08185dc500ae35bd334cf06a8ba33449683101c02c8569be59de4d5011882630b9240f8dc0b7e8384d047a48a2afd0d6927e574c570b65add898e2ba8833df977f52e961682f61487cc3f99587f4d3e1dee086378a3df07b2d48f47240ab1841265f328efbea5dc5ba01c07e1ff7fdc4856f7f454dad92b064e390dc41628e4431aca29d7b6957e9fb953b557067276c424909b92be8a4147bdc65525fa0e01f1fb135e5d5a2b6f8fb5c5bd0aa876c7e7e44dea99a8a6dc282154c8ddc6139d59f692932e78f36a532b4f5b719d1ffebceceaf643160d3e00af095aca2c55329a5762eaa965512e9257222b1b71716fef6b37ce9adda889bac9e8740fbcb7ec975a12db7ea1fb6cf0dc8cc27c5a11a484efc90da3941d6e11071ddefd7a3d89f66d01af0d6f2448c4f9d22ac24b38898e0277a8b6ca177f8e8953ea380a4a1c45e13c50cb87b406afd7f04d93a917a6392c65ef701cbabe4c27d151c259b4c43219f751ea2c5a8a1c6c6ce1908db2401404fe391bc7d10f9dce4cf729521edc01deb1e40f054e08e89d8143d72e59029c158ff32892044f0676471161bc993c91d230fc137c43e69aa986249006000249a933919cf8278811cb7c02079960c5728f390019f443b0151307c988a6c1ccd75feeba64e646da8583231372d4f4860a7295318684c2fc2b41fc2cfcb18a92d20f12974d8a4217e4004161fc41575c3efa51b62fefa6cf0598ee9dad1886f63b02fec52af0124c1a62630b0c6d59f037a74957dd1ef5a13041245ec27cd263193c04d00fe80650b1e2f003fc10ad5495734f4c506c09f2a4d9898b54600ffb81265078b1effd0ecd3c9bf2ddeed009e41c0e8e8bce389f63ab747402bab861565b7016514d1b389217d7805ff0c1770b6062ac8b96f00820ccc07ec8626830a19401239c97fd48cb87fbfbeb81f24694d3f12df698d0b898d00cd3972da234f29630049cf23b2858e497a532c6052c7d33b39b88904d2485b6e4ca1da20515054605f649a27cf8171140e8eb65966599d691f2ad0750daf39ebc59c815142dff661dfb9d0d7fb65d2dd36b676fb76d5fcab79b8920609dfd7d12b758b8a0c1e6ed425fff2c1c70f47bba6d0ebcaf38ca15f902d26cc8aafe50840f628cee1ffd4a45dc545555515a844d113bb2109c7a3875301d8a23780a82a66918cbd3114aa79b13121f1e1e4271f4f1f1f1010272b2911efa958c8801c32d4288a6841296144c84e85732c20aa24e0700187a0840a8068fc1501cc12dc7126e0eac2807f85ee79d88fff03b61d2dbc40e99c03a0f015047fc4ab10545fc8002187c3082500cb0670845dca0e0e305451c51c40e1650083e3db4786250824e0e58701076d08ea04376ba51c13d2191028c8713d81798e08a9102ab0824a84a300135420a3a544658a1053347d783ccd1030bfc55f972d4c0258711489063092ba51c35f4d4af94030a2139885470947e9eeb14f0965dc8961d4ad31978dc1b94037ecbeea601bf1d47c56f3fb9691499303280378aaf7ffb0bc96f8761c06f9759c06fa751c00cbf234e3c459477297efbca489431402c11e063cb00de33e97700fd46fa6dfceebb037203b28abc3101de005e3cc5019c14bfeabc2b4966405e4056404e80c95360c049f16bc508c81b87427f80dce22920cc2c459802e4ce5344978ac653441b142846a3ff5008e318b28d4d75f214be426150a0188dfe43218c4fb5621c0afdd75cd7dbce0655c8168fff489638127afcf1250f201f5feaf0660041791ee663f378cf56691cfa4fa886260ed9a0309d134815a8f071edb1e1507e71f4d99e8e3a0452052a40fd01facef6c93040196f387bb6a755c8154fd172dd9f7745f6d57d77c5855adba0c69a7c912f2ff245bec817f96232994c269369b6cc96d9325b66cb6c992da5d2cd2cddccd22cddccd22cb9788a8ac649f13b97cea573e95c3a975a310e85bea2a94e4e8af4549d56aad329743a55ea35d46ba8d750afb126b880df676f5faabb6c69d2114a13bd89302d3ac6d95245983d4b3afa2ccd134da7a3ec24cdae68749c158deb6cdbd549c7eb4d700153986cdb1446c7bf1bd4efdd9c37b49bff650077b972a39f005050b880d60544714a72422a954aa552a9542a954aa552a9542a954aa552a9542a954aa552a9542a95faf0803afb93dea303d4a0a819e1d75ebe9bd51f8f8fdf7933787c947152046900e4e3873c1f3fdfb37d3c68ab34c8c767dff9dbf978fbd1f9c8b34383ca5019a93fb61a7e733d26f76cef9d00e9e4174720b1e3e104670268831a647bfae3c693617cf2cda0ede94b634f31a3957203d05f8f8fef343edef3f1dd090f011bc09a096f06fc8ed3f9e8369bc777b64a7b3c1effc75f8f0f8fbf1e1f1e263adbf47c801ce7a5f620c0fe0b0af97defc49601179d27eafbde09fc9161773adae3734119c6a7a2d9fd9bdf3bd1d9de8579d56ee329e275e975d1d6ef91e3f88d1ab7b15e83c2bbe24c2c7588c5ee0aad93d55ab1ec66ffbabd0c633ebdd35d40149f201d32f00b7613e20c80820296f5984d1c39c05f9004caaf9e80a19e31daabda7cc915ed5badc14a71648f84c04a3afec84738058624f0bd68124f216b9c14670dce8a125bc017709436818fc997359e027b71527c982a4313aad1f1436a705c85cc180aefd1ae353a6ecca4e347eca65a55e8747ce9f34becc0da8db6909a2ad4d75b9baf7f5088b2827a05d3d6bbd12491246eecea60d113d330639d14f0d6503abe86a2262745acd3119312d41d61a1c718e10aacd54c18f1301347e0ed37464c59d58882268ec01bd78ac92e64e208bc2b366285891c6fc20818403d9c4ea7d3f3017c27dc1f0b3a58c815ed1e442e8289214c98620eb4070cfafdfb300103a1030e21e0f801870f100710f10720601ee028601c2d3fc0f142ef47c1851ba51b3537704a374c3f278e0e85a32509fba20e6cb003981b2fd03764a0f7a38853c84208bce2d0e169018916986fa8a8946ea8a07483458a40eaa96dc4e8ab349c93f44ec424dce8f8f684131072292cf0bab895eb026d2214ae573eb1b495374aad9c4a0857282eb024914a824612337401f42b25d19255b512e928a5282d4828524a84c522a14829919489c25bea57fd16e96aad740bb1d56f166ec5af79dbbc47259dd9bfd666dfc96cf616672bb398cdfbca27525b39845d44944b5697da69caad4c9fdc8ac5add0fca813ebba6467696a59d939154ec56b7744121dca842aa15e502d3b6a50196d45910ed67fdbc611ab1e6b8c22dd25d2dd571ad9bc5bfef5b36d64a3abf5781b9dc810118a859b342d6fcbadbfd6e7cb59b849d3ebabf74bbe65b97c87a41c528ecbe827002b2b176890a3e156b4bdb0d749968dda87e987d88b5510a6d00cab3284f4257c492b2b9b482c7bf89c8a35ad8c6656b5ed8b613bf34669c1755c8ac5bdd0d7bbd0536252cfe73a2e05ce203f72957503c6a9c019b2af629c1ab7a22b8bfdccfbc4cae25f310257954b44aee352b8953927b7a2a1f6339bdc1b302d5f836fed7c4a4ba055d99f4fa17cae8b2392a3b92e29a7bc32fa5c0a8963b2258edc6dce594d28a5cc5ce729edefd85394a76e7c4b9bc81ba0d581d2fe9c0a9ca1b2ac6ade1bb094de5687f6c7b6138b53e154a00cf3ade73aebe55d61712b9c0afec18e148d69d057323b84d8f142236103091948e8d05643914e67367ec37560badd0ddecfe0d7fb78f3ef6cf243acb76ea3b5d6469a5555fdf8a454b559f6b5da14f4f4833da8669f8f55fd6493f8d8d3af282de8c3147d28c2a2f7fd93f879179a5a128a941249b9d57e1e5e4b23a5f924ea8a7ef514f8e9c73f89d9a4facfd3df778b74fa8e6c34cdfb7ee8fd3ca4d5fa2d35a570b3c825b0877fad1ae89350f549293803fd2ad2514af749dc229d867f6df896803eaf81a065d1bfa017edc0d73de883ee9bd4bce1adaaf5dac6e256f441f04928196da3c668f5f4739f948232d0af6e49adde23a1ac6d3a2a8e78280c0d3dbf62f561c5ee572b6f520ef57cf51427526e98b349659fd2fa968e4a1ade1a2efc0ae612d66b4fe79372e00cf5e989d4f0f789d4f7b1dfa392d6b2680766719fe24dab8fd17b034643ef2ba5e767a49cfad8db27a1ec57778515e9f435b5655549ca8132d05c339b88621dc4837defbdf7de8c38366e503a4e1342392b5a51ebbd6a59082f8bdd875d4dc39df71146948e930c1a3635326e6ad4c8a081d15dca392b39ab8ad25a2d5a2debbaacc52e8b61f7669976334dc3b8d3f1783c1ec87b3084000107582687165c90630b39bca062adf6de8bfe830c9ad20c87f921e2b8947356159d554569ad16add5b2aecb62d675598b61d762d8bd59a6c51b9ee29db7380b8c4008a16134451a91068828938a2d5d2abe441f629742cda8612acdc0b1519a510359a04c0cd80259e0caa3f1503a9ec906c6e82e258cee524e39ab8ad25a69b5acebb297c5b07bb3ec669a8671c7f301813c3c3e3e40e07f507c401e09f08851d3e27bfe7c6631cb9004fb62d8f2457ef6d6ca1d92f7f5d79a64f8baa4cc9ebe99c76bbd7d09c0af54c40b2dff53448a0e1dfa7a10226c68f9181134b4fccf5b4b31782300b57c1ce567797f7cb5e1f3526aeff1326fd0d78cafcffefadb7989b3bf4aaebf36cbcbfe7bedf1b55d577665dfe9dcb79f7d672b81330dd7dbcedb8bc43bda93444f16edc059662157b4bfb289f6389b806c72db99966f06f9f7d23fb2bff2f6c8329fb8c63efb786dc0fe9337dc2e740df6afb7d766af0bbbb0960faf0dfbbefd7de21acbfb035ad6e0dadebcb33ff12b6b29b365a513b0943366dc1b2e6d330fa1a193374adeb8a4457b1e7b30c6375f355879b3b0c1d2013566510caa0af9f13d6618d2632ef118eb0b6b5f8c1686c14b5f3903f00b5b763696b0d66dc4917f7daf114715f48f12fbac2512bb7c085d4ba2b6f8b51741f6f7e92d3101fcda57006b15c8eadfecf5ad9559c7e0bd017bfb170d98cd6e7a27ae2c6a018ef4eb93f8d3f4c4d2337343687f1712c58a3208b5457690722bb4aa62fec8a5545c4cd1f3655ed1b58ba3a9021c658a5ca92d73051607ca29af975576c012e92a4b56524e6bcefc293aa3b4d11a2ae3343a66932805387e0ab09bbc86df546a23e5b4c918ef60315b02bca50b4c85912e1546bab060130ba6c2d41855a6021147aa2aa3d6c4115b2a0961339772711da7c275d587ea525f5ce288fc9738421f5eb3be8876807fcd2b5f26902e3160645830943ec817f9430c18194e8563a92e71644b974a13477675912ed20798ea4385a931a44b85e154aecca5585ce7c2a96c1c502a942e9c8a8da5615f0c8e33a1bd4218eb90fdbd591591006f3f790a6a72927fad58c403355d6aa235e80db51147aa1bf414472e0a95aa4f4a411950a49c4c85a0a58ddad0521c914f6de2087d684d6a23d2c19a96a805d37fb424e201437d721d8ef2944c5949d15b40e94d4f1a278e6c5af2d349fbbb8eee8817ed4f85a0a638f24a5ba8e1276a22e5905295843a698795422bd7bc71407198f7f6132947d68e3a0683b7a21db009fda92bfad5ccdc0a06aa2a595522155cbd77a27a92d8c55195626b68f9cfa44f589ae49287505a7342e85c47a9bb731d9d93fe9c16a494c29ac2a9702bb4b6685971dd932da2237055b568f87293ef28970bac7d188494ceac7a92484241586155ded3a431d6524cd5c3ad82b0d2b62ca3104239453a38e753ea35da453a6093fa73eafafe189aa875d70c445d4f71e43a5c74f573bee884270bc7d1f5028ea351a938aa77b332165213868972e04d4d222330f5902da157d41447aa0885ad6a3b8eaeefa9ecf5afafd5d268b74cda3f93f8dc2aafaa696b2cc774d0a1dc0ad771295cc7a9702b9d0ed7712a9af65c8af65cc7a9702b7144e33a4e05748210d614e864e2b403e8c4a978742094c70ab702d2014a79a4804e9c0a4b1c4998242401ef2a035f88380ad9c4910c95de09f9a013d691c24f123194968fe9d0f2f1163ac5510a053af140ca8a464807e844a3868d1b3a7e8081e15464d7e2f262e284c958fbb02db81c81041da3bc35b8fe885b5c119f84ba443a10100b3e7c128a9422a1483922dd24716bfbf877577c5c978dd5e3adfa1747aaa7f19350a41c6cdf754bb1e7293c2008e67d222fa795465c41e9c35ca2942a7521a52dc4443a6013f853ebcf4d1cf998e208ccffc18923343e35e2888d3822ff631347ea8b54b0952e222170f62221f0ae2b5ac2076d9df7d83ca21e60a8a5687c40603c85e7e585c17c6c3cb6122d4e92dad6525afe6703a18923f99e0d04660391d112fb8dc17c6ce248be4807b82ae1a2650c2dff6e1b4486968f7d6cb4fc1a2302216386105abe65716991ebbf7b6d149dfd24a3fc122f2ee29d181118be065fd3e06b58d328d6264a0b4c7b128a94c2341116ad83f346911eed3d22299ac793e77bbef3d55380be93f789c45ae73d0f7292a743b146ca21e59072483911458b540b321af6a05f890b3ee00e7c29b9171d296987fe49d4554e94169dce73291de9e974b88e63e9749e247a6447a3f869276f68c9e75438154e855391a9ebee8ecd99cdcf22a7827dcc322e258b5a9663e4bac8b164c0b59861dc8ae537db10fbbb619953e1543895ae1a42176e74a1465bcddd5d9b73def91723e59072505a5c12ea3e29754558b0ccda4828ec3591947bb1ab8974f3b5acf3998675e67bd51b07ec318c9443caa9f4cd0daabb63feb0f2870edf436901fd3de45ebcd716b563c1a1ffc3110581e116f221749c2f185a18514954129544315c6affde461111b0b6d11a27d9cf4adabe7d0d48ed3871047b6be7a5378bd02b401c6c739c3872bfc2937e85aad67aeffdf8d66efb95753d7d59343f15960741f354ed506f67e656240cde89f82f9b7c71c15bc280e58584c143c0d372c50518ca952a1387b02f864d6b3269594f4544c02a424438b07ca7327144060582d2e8f910abfcaeb87faf69bba9058c45d171cba41c6bdb239a3a7f73d38b614a5f827d1f2222025716b9a259fc637c51776dd15b761dd4b40635bd1344687101deb26b91126e2b5986bc441cefe1eba146947d31bceb04583e2efe03fc41f171fc076908a1b5bdea3dcfc1da701c4d44046c59d6c7a774d39fee36427c80440c2456b48559a47b27fc452bc09b6a8b4deb2dc0d87693beae9f15455f6e9a55962df14684027fa1a3f441c78f21343ffe14fd20ca02dea35a310e8d467a8fa0ef20f2210810cc0822071ad10b4439984002103140d9c92e4503b2a6bcebfd45607dbddebf0257ae80b5257419a3acee1357b74462d5969d0f5132315ae75b6bde50fd7cd10eb0ec42628864e08d759296666666666666666666666666666666666666666666666666666666666666666666666666e2f653d5af565a4324832549b4a13520f5f6530d1d55f8298e447d8231663bc0db4f34c42812029e5f553ff909ca171abe48081886bf05a20a87ef4f78efbdf7de7b3041e4f0a27368b1f40b2287141d44a723888e8850101d154a98a044032525250fc2c0947c8c2850402f8114f05b12a534e1255e52f234ac443588100a3131313131313131313131313131313131313131313131313131313131313131313131312f86a93d864d0fc9db7ed679bb61dadb3ca7f674a6557ecd07cdbfd67e68fe9d0f9a8fb55a79e827fe8f9f797b7cbd365cfbdadbcf3c3f3bb6c47e866512b79b7d0ffe8edd2cfeecabf9d6934b747ebe2dd179ecb5f76c253a9906fbd8636fdff3989dd4e24f66e138f86d36c1dfc926a1b7f6e7b6359c65e8df4bbf3584b4b779bf2c3df289ebfbdac76bc37d509e77621b66a7edccecb1b777be660396b34ededab43e5f6403c791dbbf30cd433c79a3e4dd097dbeb369efd9eea7d3f91deae4cdc271323ba7b53f352d7b6dcb5ed37e87f0d3ef78b06c32dfdaf9b6858bfefc276f16efb12dd3be3333f69eadf3dad6d938b3709ca9bdc55c4433c0f3336de264a21960cc3acef5247e529271d14f45741cd9d1506202f4e55780bea438383750c6eaf8e16f1f423fafdcf4627429a59c73caaaaa2af9966271a394525a61c080010386dc44302c18160c0b8605c38261c1b06058578c7705847185fb0a29e58a39e75c51555555ad10d1608588063737a7130d8d8806d8d69a95c4d869428b63967543768b4e7bdef72f0bd3fcfeb34eac2b9fac3936b47f278786f6b7f0b19c191a7b8f1c20b4bfcdf941fb77a27d07fdebbce7eaf1fef19ff7bc3dffe25f9e1dc3015e96ff85bdb66debdf43e0e3b5278912c0fcb12dfbec6f2ea1bd3ff6d7dfad84f6d6df125a16c90063d8e3b7b6dd82c427f6f1f7b32cda81b16cf2f15a36f178ccd2379f58fa234b8f1abcb3b3f4e413d7d706fb9dbca1b6efdb7661b1cdc21cd3fcadc7b2bd7f6599f7752cdac0fef1c50b8df17b08bc346879a364f7493cfb6bb3152219e09bf78985e52b9bd4b7aa75f9bfebf0ad9c146dbddf1632fe25714cc3fed65bbfed161d7ef8f8ba2ceb7140d1f72febdb6ed1896480fdd270eb76219201de2796c6f276b14fac0a4fba0e74bb45956e7d06dc03663b443610bd886c00e332ad50f2c24ae98897189f0663747729a59c73ce595555555554857cab8962109808a8344eb576b1753513000401c315000030140e878322914092c469968d3e14800e838a4a6c4c9749a3d21c48519051921062082006000000c0ccc8cc2611004d78b15e92695fa2c4ab911704f200c20f008b99a4688ce6017528ba74e8ff27f705b50c3db9bb3a1673d9ea59c06d02e65aa872dc27152c911ec067a1e8ef4ad0f5f083a97d2861aceab3e937365e31e4c96ad81701a0d3792b23d6f71c7924c8872464e491c20a1255e491c23fa911e9086625729386f85a5fee4f30b19e999ead3b64fede7816e8467ab3498541db33fbd211e373d0a0eecf3b454d9ba6c3d5a3638820aaa867f040d20a102458c714ee37889964bf21c35c56c9239b99e682c5eca24ad59cd3c41bb5e22f70a33f07ba8a8432c2201e5e25941f930b23bab0f388c4b8a53ca5f673d386779f10793269e0dd7ded17c6a9de77a1ac43789c5c843a94eb9b73c27960ed922d6d04bb47dd5816597cb7211c4bc509189217475a4700a2f3eaac684a7f84b8e50bd7f1c3fa7549ea8578ee172e1075dfaf3890bf0c7eb6c47afb2588a63c879c555b80e7d80ecc83ced46304c30f659566c818b0ac00fffb2db32a4326482f6a6f2ebbf2a05f5626449f4d2629e64e82f2720966cecd32ccbb6a4eb0a4d693cfb3e40847f1e1f38c4495e1565814c0f9e3184f67668734306cadb36feb8e59d7809678695d2cef0e09e393d407c5f07387751f32996425c9dc623b60d6c36c050eca2d1e78dd0a9c656680bd1dd98d06dfeea51b5b01cf9bf6e59f8c224fbb0ed4500d85b4c92c7c3d1531714ca095ef78a9845293e514a49a22cac29cbadeda5a03e044a927c775472895b663405d83a6d83a68e7cb4bf61abec5364141b3019f0fa9636b8d299f73646013011ab041f58e0e0bcf5de8cb912ab661c1961c570ca0e445b4f77ee8cf93cc9dbaed2372861b3fee3587d26421ee85087421772f0f8c8d8520e474a8560d01f767eeaf2fd95cbdd92ffd29903a4f172a9de3d0b18c9a81532024daa579a6710c63d8b971327cbce079d4611b080bc0b16f4070df22db5e5e799afd29a49fac91b5607203b7e0a7b95de70bdcf6a3a8f0c5c397e0fcc5a889d8868e5de4bc06ed9ec716ea2ae5721bf2d732050f4d6bf9f3a0e536e5ac0325c53e6ed07a079333986afb0349d37d5f01c0b8231f114335be3d2728d1813ef4bc2410793d0500e65b3d891af07bbfdd5aafab04f598a8d0d993ad39e9a70fbf3b48deaaba662cae422463f891d466274edd0945fcda48e685eeb0a304644dfaf8f923bef6d68cc55a7d6e802fbcd97690eca7ea4756a86ea601e0b67d39e846a9186200aadd5ccd94b32b83a7eb88791a4a3e959bd9408a9bf890084e57dc1b2b6c1008ec995b95d691a66aa18935d4770d36df2f19bfb99a76519aa2df288a3f6d70ef67d468fcc35dd69db0cbaa0c9c202d82e504d06a92b1c0ec39d0c7a29b53ecb30ede2fd4afde790c313d54c70cd2b9b2345e49a0722be179ed821a1dbde0ee0cc6687ab33d3a6de9d153ffb73d653f58997523899a062d5ddae81a4cee1ac3f8cd0a4be946b128ac4cf65c488c8a3f787d5a3531ef3b1802888d180cd251826d90fa46d087e0395b5f8abe67fc6f0edddb630bc003dfd8484e7e891e5ec9d9aa94d22abb9e5735954688239be7dc49ffaa717c64ed204f7885b7372d6b4f457d20153f788317b3acf114dba362a5fd089a00f7403d646d3755e238218b0e3c26f9750883c2b7000c7ff6263a0bbbc9490a59eb3e79d20f83d2348caba181b5cdeea66cb9f722b5475bd94549e44c412e2a22d9f9485776bcccd303c84d30d4cddf114ea26c2d494166765fda4ae27a644aa4e178bd18724e4eb97e98899f472f72ae965c9f06dfebcf6ea61595113d562a009252313fd13fe14ef71b3833676a70cb08ca3eebc8bb97edc3e18b251e06f1f953bb8f337c9cc6853a425a81444e8b4c8f988bba47525debc531d49dc69d9fae015e66b05f9675422d2eab615a4695c0c5bb34d96fa2646124d7b36921ca10cf133190fc3024d8543816a84f6b549d354284bb3731028e0450b2fe2a9f48d6f4969ea24cbdee9d00151415e4d2664b960bc4c8b48e974e857bbfb30c6673c053d7707d19d3748109e5cd4d90ed5b914cc7ed364f7537fce0198649580f3e699a3475d3331003acd3a1048c48d117ff04bc94bfa42a9a0fd0079960865fa02955921a6b28596545056bf62c5363c39615ab5459b060cb3a4bca58d8b3c6ce262b6a58b366cd8a0d4b61e56248eb3758062c36099df1c2058f2cc5a33252dc76e3bb0fbc7b033b9a91c6c58351db84d843e137784a20ae8ea5afc90f317839f86c90221abaf6eaa8f697b5ac344a9a56a2d210efcade284abc4e3dc05c71da2b50d30922cee7f751a202fc8e62763d6464fd83b08ab814f4129e0eea318933beac9cd52974dba00753461dc01b0e9c09fa8125567fd8826befb50b9a005651e7345028fef554965de6e7f5495a2a4a2083413f901248644663c04daef8ae586e00fc5946381405cb8ebb2c9b676726b7cd21008ccdc5e84a4ca3979df020da2a667941c7c0c835b151ec62ebe3a1511f5236d3a069984371d4907be9dc2ff5a601f6bef788fbfd8b071e1b05a515987c05f38671318d513e4d9c8490b05c91174e2117f1390168eccfa02f655e000ed63ff5324b3ab436bcfbbe50b6495a8cb60064903ad1d68a804942806cd4007c3f9f355fa8acf30dc0070662263fcbb102aa01d82f696a5c5fc96e53b9cc4d0d7b0e5ba43735a27e53ab3fadd6b1eb724827811303504e3c7ff57249a22e70ea1a0f2a197343b7654e8d736be644c4d200242d225eb4b446a44e2b6a8a2969884c3f3dbd74a2534a4d315d3ad1d3a74d2925757a51534d4b253dedb49e0617e371dc07d6d6f582353c4a3eedc2e2eee1e0e4138dd6c1b4b01018031f34a6f125e165019a5823ea879914ce8f7e797b06083ca8eb9c45830b945f822f05d5fb0165c737683ff0c582fc94c5bb338a6968c3385053580abf401012a814aafca6b3fa7ba751685246ddfa1b7ef3c5604b62ac5159d283f652f8c2d04fdc4f37692cee1a60f8115269fb44772bfcb28b6b5a0f774c379af511f9c70406692a7f6a8fcf33cc5154ba58c01a841a03badf8d0eab1c255b971610439f531f95723df996084dab904fbe399e130497423efb33d53bc13e609c8ef7d1d6af502034104527d8a357682fa3ee7fc5c38e74f418b967b91d77ab125fcce7086b300aaa47845e0db8e1f4fefd8c40c4e192de7a20d759160e4d1be0db8e48be189f8ded17f9bc57a211b3b7b313810f17cda6617b9708e023ca5356fc27e3b12e5ee74fcc5296f787746f76e0b4245100c02a98f0c560d2e8052dfbd049dac9676f9f4cc986fc08a40320403399f6eb6d327fd26913551549b8aef1fa993f9d20b8fa4240c581a16438b05a34014df0372b049058f946ef41f6ff13d2a2c3fa1728af14a60d018483663c12cf9797986defd07b81db5fa0118dff64e34a34febecb6721e22b246a8a5f67e930475d54df45af8bba7c0a48b1949b5fa037b577363a89e78b41eabf40776daf4052c8eacc9c02c586e04d30509e457727c8ef748d2d92638d5be40296d4dc9700be5893af6bfa15e2dad20ee7bf2edae76b0e2755dbbbdc99b13b3f906de44f77966c27c9d6b973382faa3623c99d691e32f454e3ceee1ad5ff6d883bddb7cdc167744d6f3234c551bff5cadebe9de4942c85dbd98cdea02332a4ed868298d100befea4b6bff9f0ffc8ff6cbaa834183fe1cbbf6ad4a7dd56d93f2b156e916704364ee30d4d3ec45f91271db8385248a60d14fe66459e2b33e2cccaf8e5177b1e4d621579f27a082b6cac39fb1779562f9afa1e3372dc781b35352bd3248b3c5391331442043dce93e23afd916ae1a5cf65231e787e07ba19bc41feddc90360456fe20639094c11c5b1ad67a89295c1f33703b479d9ee19ca0b1e30ed10aff92518a5568d5fb7cdda859c3161ee5252e71530edf485cf57c340c9e60700bdaf9cdb15f1c4e66006867cbca2ef7c85fc350245cd432f0aed5ad0083fc589d6ac990ac42e926b464c6767d7102ab9204540282070bb7852ac9e7ecd3bb2a396548380051f5dd0e8a366f2585b4a1115aa0f46fac835ec90fd8204cddddab49c8250e97c628541c76119eb687d83b0e4c564295329453fe3bd6c9874857d0f6a434c0a65513783b0e6e687f0c7d84f3ac632b35a7696bbf7f3da29ac1ac8fd25d41daab049f9e66983c8984bcdc3e93bda1e165d3d439a9d398fb541508a377620aa20bdb9477d2ed806ec8ffa74a9c3f65232e8bb4861110e9685751d1dfd9c048932fe111d88514177770c2ae2cc4d57322e67541eae48ff6b0cf4a8c2cd69743c7914c075e49e7c830e320fb943bd69a6ee1c4afc410ccffb032bd390934c109fe011132ecc83a0e9426abca49bc61092deffd1ca4a928f0963317f1cd4e10ad61631fa82a8a19094bbe6dc2c8aab1b9a474b67cd83f6c46c7fea0a6a9e45ab11cb43ec57b45bc6bf6ec51220dd11cf838c8562dd45f465fb54ed7fa3961615c8726d91a8abc220b61b88b1640909921d9f8cd6ba1b5bc47a65de5457ec416acedb5460a88d054e1e0f8116d2d418c37d0af2149fe5b385323efa9f4ff8679907dd820635fb493e453d64da304c7cd20a5dfab3fc617c23cd95b14388185725a2ed34bdfc109a4306f19b8e879072c93e5f3dfa47757c0fa10dc72ec1bff86e12cd7ba4fbf4788cc3291b836e3446b8deeedcc2696b8cb23f5ad5ed11daec3f84249e444e7960fee9015d27092f9e7b8fff9d0676405d6ed6a7c36e6c8cae6461f49498e2f890c2ad20d84b8a622a0051759ef723289aa3b8c36f88ec85a54a9ab1af8e08fb0bff297155c7513e28ebc1d59b813e781b648fc71cd9764d08e09ab8f5dd756d6809c1eca0f1ca029bdae99e79cee6afb09590bd11ca3eb318e917da0b25d14e9ea3c5de5ac2edf66e98e6236e158ede180da7b9930abac58a8a57005a3ac94816d5534ae9b106b6521ae10e2e1a806c661d90fb4a8ff5fff78a4a2dd8283228a1678209b255392c48fb5b251a47a503c28b1cbd3aac9cb2dc03d1985b3318c42b29425d0b80eb7d63efbf30ccd14e2684b7c7620c7d239120a4e961530f4b863fff41d75a51865fbcf946a23e4883812d5d2cacb072f2b31efc6164b20c921e222ddee32cb5e53242fdc1d1398507dfa5b4c76d5894ed926ad8ec6120dd08d793711d2c65427b397d353528836a042819e17bc4fc30004e4648bf650fbd57f7f867ba0bb8f39d4a6c978704767ff6773d6d24741be9c535636cde99b234cdc364b651fd10ca4105456d9c135e3320b57628acac2ab6fa3f8be4416927c19e4a8d2d777e8b5de8fb455e0419d5328a92466c6c02b3c8b566c7380b19c753dd6324a474277aab9f7827a375f521e34fe80907b8f237ffda63b74416de7bf41ee41cf3e372c6137eee11138f2df8c0e591ed71bd35420fcf7171e9ea08430931ca00254c4167dd6f2a4dc7cf4ed910a60af9259577e90e23ecab5a9413e49010bad336cbf2a3d89cd8bde392a8c25ade42720fccdca48eb473e0c1d49a601bf08a0612a943d4d1fa8c2bb919cd81874e8b5e400ceeffb5c2de362fd8a009565e6783d7dc89b91b0ad76eebb4df81a4c7de733ce0f98318ecaf002f7211b43ff1bdb9303072adf12f4cd3557bc8ea931236955abb701118343bd911cbbf3f40e44d2b06f6d3d6ea9544a9d27e18d6a78916fa8ad39a287add458cdeb71cb391a34103aab56fd815ea598d9c13bf736afaff9330f695579575df15b981953f985640ae8fd5d7803042f68deb7ad130a6413889dbe37a8bb38de5156b286dc51a170d71643450bae2c58fc6d67e81f7cba615ac0c0b5792d2350b3ae7bb03c844d1c1aa7e6a603a12907d0edced7fd99f300f4acaca03912f6423b9b9f05b28ad66282c4377349aede4a49ba1a0d8d7d80394c735d518edbd4278acce510b71904d52031a5193a9311a3b0ddf313e6cdf45766c5a429ede090023d9e5dc5193a82a72cedeecdb3b01f7b260abcfdcf28e16a34752918054392a7d24a2f99d3db94705e809997d4b6320dc873d363dc2317cdf293e45c314e31c3de1ea0c251a4a96fda447119da5c54d467d8f54720da871f165966f77f63ac4adb307dee735c53283235aecd7bd1366f1dabe31f6f34425d1ea9f07fe11667411b0f790145d7efc8c4326cd9eb4b47d8514c9c01d785d6a762b79192357e32aad1420e5a0325d062b66e8f1a50c86caa22091650f6cd014c1c290402be5e19893f616e878e0e083a872494f5a7d1526e660666a6697c0028810c3d9a09aaaa35a9131cc592fe66f7994343aab9f7dd6060922b6828c73cb555d9a2892f05211d616b5361a4d6d243bf3fa3c94b7bd6a49619879ba7553454cbcc4295b7bcec03844a3cb6a7c44553fdb8d320b6b96cf9c329c1d30195acd4f898722597f1529a5a54d45fd4ca4f2d83968eec4126d5704bd68efc355f8337a9209c6dc6dad51186a26440359f71d6aae14b39733e1eb256ef7e4738dd64174a2c2df58bac9b8eae991de400c8508d0cebc0721e3b3ffb7c9fef3cc4fbbabea79169196ea616f6ecb5845912b5dbf9ba0c7170cac943c2f22ce345d85b2ad45bb8ce9ca5dc0441d09106d665ce8b9b7b34d695400fc0447821cfacae8016a44e5fdca68da6a5ebac3b2321a9255466f45abf5f5af2c2e2766d9b541769302a7f3bddc490416f662dec2d14c1da6599612899d3a2f37a38f10bbb11a470c6da79e0beb4e8d362c481a4dfbe1809701313572290823725433d43efd2740683030cacc0185de351abc49379f92180114d804a1786fec7b98a569d575279df6362f97779abea567d50535cafd9513cfc8e207ae7119fdeffe6e44b76d3d895b626cf932ea84cab42cedf1d5a3b92da7398402defae46507a05fbf0a7dfa0e0c4508308dd8004396304d98bc846c1ca247b359fca79fe18ae52c9448d24dad1d0dcf9646f4b2149dc68484cd44b4308e1bc4dd3c901701fb61db76669352b46fd1e6cd9bca498ef888633235a1c2d3616de9d53837270ca539d2516b07a13bb9c753c1e875f4ccaf981614a24814446b7c584625ead3534cfd1454b67630b8871a9684e11477e8606a922387b9560ad1f0b9d99544f1d69eaedabe3d59cb9d7924f4fa844a00991c2d065428fb748b86536f9739dce0a4451b43d0f06359ae9741300972301813e54822e3d015a8f0f00f4c5a42159d2b54052d2a82f097f465152c6155faf1b53363a338a6b87c7977d898e6ebebc7048f12a5385bfc7709f4d97cbedcc96c8e45feccd24f1dcfafab804e62b2633ac43680a8a79f397891dd11e7e8d3d44f202113b1e0e94a52ccd09584064d298fd3b039523a5c2347c1049232f18cc427831ccc5e843b174e80e6388b20d352585f926445dc46290f980b515b5802b59f26700a8b6573eadf58253c189ed76e8e9b0db933db77ea61556d0fb7ddcaa4f223a28153b493073cd0ec5977a43638a1bbabe71302c34317a9341d3996d055d84d1bc9cdc1b46886929e91634e6eaca609c1071b0cb3d1abb0f44daf82b4971932b0d9ec8332422b3309f5b9bc5cf9c8cd8c3446585664e14de404b938504bf2e0bc5b20302e225a8e2c83f086c4909c5b7750d3c77e66f4b93d740c31b3df9951047213dcca252808217771e1c24ebd7f297e6665e9dad1a5becdbf9a27fa1aa2083b55a1d92cdc5aeb661dad86246bc4fb9f778b7b6477b47e510af18d3b04d246cef66aa44c003347a82fa0c7a7ad612fb3ea50ca904d30e95357cabc6a5cefbb8da2cc07c974eae77ac3d71996456b6c41bca4250bff744ffac7c7d62a1847018d10e7387cd373462c7b46e2f71ac515338f54814f0797f41930bba91d804904701089dcb7dc0a0240311ca86420f500157ca9d64fd96cd25a8d6c28227748c8f48d0536d39e5149b60c123be407859efeb0468683a7afa73289dc0c032467c40dc6dbb71391aa58f6630258e0a8bd4193579967f49ec10bd4b85d02eb11924ae6f592cac92f6797568716502750d637392cffd0dca2145781ae158ce427a787ab466fef6880549dd33452144dfff84932882f56a0fea439b23295cb24f3789873f0f561b38f49967a8fb042253b2dfef013c322e30ae0bab6d81d1bb190db0f074eeb2f61141fdbc2adc0eca65baccc085c2948c22013c0b923cdda082d1f9a79484049008cc87a5651e5edce0f679a98a98d5a13c2235faec9387804239a0ad06b83eb89639081d553f4e228a2ace32fc35af03b54aa9d0c5951a0347da145c6934d7ac0f436572756d6901a62877faffb031c0d5d9d2c5fe61cc734f4bb316e14bae8adf2e8c88cf765b92e67b4f3a0d049d2ab9f09efc198f2a96fae9fc3cdfb05d9090ac72b066da5495685961a9816a9371672e93ee66c5a3c5b40d49855f2c121749c7338a5b484a85042386847e74271a7ff483964c64f7b2b503844ff6fdb8303845c08bd4213c7bcff8bdb59fd803aae6b1ae106b9c09b73ca05c280b5e365a8c08f5294d602d71fe8de34c7945b27be9dd50ddf1c02ac52fb7ab48f4697a35acd30a4fd63351b3da996a03157d13b601f73f15a000b185c09e952e5d6666640642328da7a3de822c2aa264560bcf101ba561e55825c521755ad07261cf7828c7a91192508160e0f573ced51a7237b1916c36515c911ca3adc91daa39af651b72e7c4428f135b79b96139fbd18b541343e906ad49c9da66ecbb040998b2aa2546ee4f7bf10a75b7cc55322961d6a44d2541ef86d27bb266e25e9e13ea9ffc825a172e68031551451cf6b7726cb3ae3a61626b13cd097eed4da4c5f4c7b7333681a6ef459e2add8ef11bdcd9d994010566fa15e7f3edfb2938dc6014e093e4b8bffcf56ac57d11d317890458962128395979290680fa420a26110f968ecef4b9f02684d6b704fa2f6e0ab9775c34ff58d9fac57d46f9b3b9e81b79fceced2281b380a0d28c094ec0c7464318eac9408dbb442e102f871210c14b520455b35f378bc13f2bb98575ee8ec53d9c5bc48a29b53e43f14e04700e450f49b3ab71937890c4fbd1bd30da8326f9e97ce623244fe9de77d0d3d000ef542974b5a48746c9bc91e4ed8772c7726465b2c9175e9d7158a475352634e3ad82bd479e10b190b73a13074b3c36909850af5374aa1d4f93ce0e5628140aabac52c07733d582588861d87824db7036ba26f857db1cb1ea9df1851b6cb827689d92b06e9d648419e817b3501e85fd9454977e442636020d8e56b9b92956932b630d11f2022bce958bd08ecf2842ac74918d3527de0afdfea7519203464bc2e171766e275b92f5705dc11a2ab35f5e4bd3c4b779cf2d532085085765d06ff6ed68bd55d65ed6c7660ac88d60142ac509d955de8cf0bd7201b1251ebd2b8d0ca55dbd9b3ed7ab4f2375170455e4a5fe3b17008fa9878cbf1b1f9300399bc434557e68b81efd7659600f3e0ffbc0da836c1d4027a098f10f4340b8fb7db10bdaba17a6c3bcbe99b166328c26efb7fdc31732cead76f5b550fdfd94a92e5a147f9467fa81c3323221e757b2872ceb25987a157efbe1e9aa9d868a5e02ce06b55977b285edf69dfd03c9fc55150a9f89ac5e0a06a219899cf2409cb3bec78955bbf4ee45d011ea0bc2d5e7cc1fc65838c059decf8aa0a13efb23e9e3ecea4d5c55f9e28c4ac8fe1b263c72a6e539ee29a4d240c83ffc357413567711afeb2ea94f25ffaa169418a6c25a6f1f8adf7cb80ae37f95a6fba5f3e397c915d9d1fa4ee97f994aed665946619261b42cd3541d9e386c2bee10252ce75e17ef99422c9bdb7ef7496ff043583c0b532fc7af87e8cdaa3b5e52de5dca92a986fe251e1375797eabd44181a8f1a0713549fc83509051b4a62cdc7771e4e243eae9269e18c9f3f65b36e583e9180570ecb6061535521e52f3eaa6af3a17864d13324567237e88bcacbf32989d407a97081ca2f67ed5b194933f8c0f38214dd53bfc3a0bb8ad63b2b75ccfaed73c5e554758d2ccc327afe06f486de856a8a14ebbeee1f7bda551afedcb54ad4c424ecfde40329ae37d1d8723ab7117d2c231fb7af563c6d856bdf603de1206a6802441cac410f9727c9c588dbdb8dfe67e34b06684d1e1097833ca32a9255a67a415a85ee3c9fe3ae250bed6ca326020eb1a4601994655326416050d1482b72a693c96b3f59a69b6bc070ac3c67da442455f6722f08cbc87164929e56552c8bcd8ae444cc999d309a2c47da8633bf1c1031d34c8e09fdff10730066fa513c1e553ac40c567af24e17c0285e52b1f983cd748d0a0066262b69c436510cc6f22c6adca8ed0ea76709e9bbe5311102cd5d585242c61c6d15f5d534579d832bc44cbfc227a2ce1436f5c4029a6602e18610f5e067a9be245f36729753607d498b33dff35b621b0c4a153f723192ce3ada564139c9d9a0d4002d77402ce43909b89519b8fad074b0da627389494e6945c0902c738e99acbe0ec981935f167df71ea5f0a07c08124a3444d5017839e32bbd858058ac54295520f8b1484f26635fb5f9703a0ed833fead453bbc68167c64294006cf44028bcf1a9d787fc0160c3eec6e0e7c0a3d84e2c5af9859a98ddcf2e5a8cd847a7997ced2383fbd3c6046fb0a8a99e5f7b64163e0aa46e33d91484af0d58c8aaba5d0c86040c5efea77540462e6a544df4cf307b563612722c739efe73a35a4f9a556973d42dcf3100d6614f02046b809b67c297723423aa0990efb96caa878c1439bdd6e4743f2d00ed2c0b9e0a11053690f25f783a3b9d743981d47fd21cc3ba0d0d6f3197d0659b4ad662789ac50e11c9b1937f36a7bcc741a35e088b4fe81ae96d2d57b1264b57cd0cd1cd45805ae9ac95ac7da749520c1d4bba71002d5ab293ea8c43c23432d4b40c94317d30b686171fbc0ef6bdf051433127e232ce8e8b54cdcf5ae6f7b7040ccd30bb56720a572d7cd29400c7b3fb63dacb1330e1d7ed18eafc95677ae2c1c7f26db6b9c6c1f875a454d4cc899fc5095a6cd2e6591bceef8cbe6ee4aae41e9f6a80325919b24e8e08d4b918862686258002e73c7f372fb4f09c4c57bc1444ffd82fc3b5620a399a2e0c484fd739cac22c71fba8a390124c28be23e1e93a2143b85ee9752ce537c8bfdb6c929feba56f9619ea06d1c79dcd337e992cb9d203f4ce1b408752e16b316e1e84f1504256bf606392280c6cbe7858e76c60fc3e92a8a5c79ec14a205de85988cd38c661a3a6397c36f5f9543d3a95c8c8f39b24c0dbc53ed4ef143f5855619713e4441e4d1ce87adb639583a1fda80b459d25e795229815511076aacbc28aad3ee56a37181988eda023103d32c831ef5773f195ca7aa22ed5d133e5014df5481789076df32c893f2fe1b0ced578457011bc4001cd3bd75233ca4eee5021d552066a68d4b64e0a5caa5b492c21488b90775df796d812d43ee956cd7574ebe06623a9f7dea6f6f71ffb08ac26c0585ed81b6795f380e961b7d006ea4c3eaa2a6135ce8cf9da40f98b83d74af089ab3046b082f25b1d4e324596b0289da77d932e5396e39d0ff2ca0f40a215a5de9a059d45b8e20d9a88ec64963a789ec6788e9450a11c322b36cece61d72e8ba3a415201306623438ced4742827fa575597a7a314097110d71f746d8d631317e7a3fc2d5380baaab5be556abd1486c06d34d36eaf8bf64f8fe8903e80ef86e1d58440e9457a72a24a512e3c12a2aa9f9c27488570c2c02c35162639d8996855c39136719b69ca2837eabc399305e7b9c70564431386c175405dbfb613790a7b08171865c96979d9a857f5e12f175b80809a07c53b60f5b49282fd726d6e363f66b2ae1cdc4f37b0e17e5723c9ade4f0f82cd14c09d60f8675636c212a3fe989d0068485fe6f0e7df908e6bd68a56136a770e17fff2a87d271911a9d307b5bab8cd3ce41919ed7d0993d188421a41a0d9b3f745191f282501495ce4238053588bac0b0a0079c5a95ac43c2171119b21590b06a8ebd982de3131449a4e37fc4b48bbec4dfcc67e5e968254e13bd79e3f666fc2e21cf7aab4a4862107ea7563d159b8b1bcca1ab127d2934322dfa40926b42b06328f40c7423ef0ef1513089818b63b779d540f0f7b63b8a5c5a87f06705333851935b294d23ef26a510800ef43d052d0b608af50be48f271776aa78ef7b0d66ac95f88d8fb61d14f7c745931ee0615bbd0424bcc4a0b6af270d80aad4278a1dcceb1a8403308c6d41c8de8d5e93da623c4a668d0749e3cb8c899d80dd8a83e501c546d8813009983601b541c936314e9b56143a841d1a39b8c697e2af5d1318a56c831262685d47dd65cd7332b02ef1695563baace442043efe13cc907b93ffdf2b891d3a3834be70f9281da2255179d1248cada16d634aa72a7c94949cc5819d0919d6eba08c5323332ca695723a8c37c36336801eafc29b55d19a59739c43952863a81b439b0600f7170d72d604ac8a1e696c86ad4278159b7bf6afda5d4983d1afc166ef990246e1a9466bb76ec906ac027fb67e0341f3ff07271b0cc1b83e7daf8781638ac842dbb2da1e040ca4dd427d0296b29ea4fefe6570f62031a7d050574d66fa4afa783fe683fcd64d49c1b7c691c5ad32f76eb971c46fb8b94f3c3ffe7ed13997291b3e98f35f34d7f8dfc813a045f992378e2c4e5da0419b5d718ced10cefdbacfbe5de2bf92b9a516197c3578eccbf009269e083042aa925e03d2f81b90d1c155f474f0fffae7786a065dbaa43252734f19ac7df282826d5c583170303a4c4bcd37f7a85248e3a60cec54807af17202f0e47c2e7546262206f1065459a249c05100390997998ff34667d464953cc47ed12bf7fdb409180f4afdd72b9e36f7cef97f94535b2f28f97d04c8a658e5f86b0fd8d914c1a9d5ad52ba23dee8b3166e319b47aa8bcb91c990faa0126f858a3de779603052042ac7c17a7f96af2e826550b932c701cca41bcffcba05103e8b5ab8c715f398b512259521097a31437ed5e80cd2c38f2cfc8ac34c41010107fbe943e5355e8ca797dc42345fe70045f817031f306587f7b0258b77259782abe9c599c5ad380c11bb8f6111f0a28c65e6a30a13c8b26a658877e897485e2248f9d50f76bef27f9cb61b9558e1139b2ed0ebc5ed957e5a0486aa0980129cfcf662bdd869a599546e060da1e33f873aaa27d0e01a25d78a929b7303a67b6e566b5829e505c429baf0e04148da1dd39a901bf6c95675e964a4eb976850d6353aea033271c38b4b5ca190064e8aeebf5de832957d2da8b2f097a26a103777a20846829f7f8537d69cd2ae580850fb371e0815fbfd64f2e3b29574b84d2ccfa05e007529f51d1f24757317c24f3bef3f7aa16049f9b9aac980481cf82381596c674cd8f79d404627f934c4800e100d9b822e0a30e6223d2c9213a6f0cf884c36ec7a0fb3511ad7794c2cb1e852a82b59a7e1e80aa81e5b91473981a1630905844832eb4a2d01a6369ea5fd5a71a8881a561fd5c4dad5512163cb4f56bee0156c4d47fa3ba01b5ba084c6bf027b7f19a7cf97433cef27efab79f2159999b4001551f06e957d0f156030a61eab7fed9068113d0d64253b74786d53be5fdd91bff2fb56aaacd393d606d8a8395a0185e912626d564d06eb3e0f93f6edf6c003dc9bec134de55755e459337dfcc515be361cc6a3b58d54a934bad836bcdd4f86b5d6a93e027b5444c54ceaf1c5a6d1d57fe5f9acde2a7c4dbbb2b90f1c89138c5845f965c97999157312318fc86aa0da22beba22fdb3fb109f821a6a7b3f528d94ea6d631779a8ba85018387a0bc53da295cb01003fc4e49ba142f81adc62069e27ceb4b4658230b92588536f1cdd4b3f6dfa8d56fa5d69656d9dd8d830490323ce65a438d287a10f74e6d22636299c110978c5c66142a1e9231eaa289bade1b84427ed115c2deb45ef34413d80656392784527937dc63e870f68c8a45b39c66dd40374954ac10369b471493869afc970b31a893c19de5e8da00bb2052d9a6b1e11c48d4efc428151b3a479bc6ec9688378ae294596ee435bd78f058d6361ac5434f33e67da862efc65196e8ebbb1e32b4dc924b22b0054f27d0c12576e8c99e3003a5854a86461e1b895ba0b57006ce65b2347fcae46c4a686f8d4650f59c4c3cafb2ed294f33f605195338b9d02c60d9993be7c9746181ac23c51c6abf3c393bcec978ef001903cd26c65a55470f315826427290e829e236d3b0e4f25ef108b1a6c38e2c33440a331bb83ea3b39a7824d6e5f2a6d3e87c918275ab8be95b9c21149d45e20462865e402e2c893cdb0f8969e0d2df8084eaea639eafec9ea514ee3d2593208b8a43b4e470e0a9716d7edd7bcc147b12ac44e025806d2bcd63a4359c484ce1072bc0fa99ab145f31c6e73e5020242b4b952b3f58410ffc34252dbd25bfb836d13b0e61730019c2b698a4ea53cc779f9dbb8d737572e3e690cc82caae315f320d36122e7762d2db5a0a9e7ca823cc176073b64f6f7fd1d813020f647159179ce24142804b5accd9505eb59da5ca98512fd46ffc1ca94dd1cd28dcf49a2525a3f93b4ad3c8b29deacbb90fc01e449ebfb1a960d2abdc8e1cac63dd0b81a546a062621bee2dad272c37e05dbf069d74e868c3fea0fb600ca34264cb80e9a17c3cca7b8751dfe105802ef1f3e253bc944eae316009b17d7198f206494d09c30022e34310880f69840577f4a1a2f2c810350b117711ba40385cb3d56b292c604f41661c125d84ef321a35cda215844e1bfd54b35cd132b626dcb719eb2cb224ec1aa70684c79e6543dbb9144ddbd10cce1f6b25b53cd42d288d1c2eaf16da0e345b5f4a371d4953afe63b11e42d4ff1fcc92de1377ee5102866c105a556130232d3fd7b356fd5b949ccde19931f36d02c45499a24691dfaa7e7798a67d2a2573c6827adf589987147f5226098b52ed7754d9b1e8556755b49aaea4594079de038bb850d6a1d9844bd51dd632235accdc92ea214c79a56130572dde142f31a2f89b3d02ce6dee2fee809fc3f88ec31fef4b8c00722a34dfd0216b0f8c685ac266bbef4fff79c229f156025558b007ef0c98354bdc1a249f735aa7ed3c3f3aec6ef8112a7c06755ecc3a12bc6dd544458443e3f9c12583c12b872b3459baac3c16107fbcaaddc26ebca9b649c86645d93cdb81c455fe8d5d73f26b5cb5c237c8834fdf1ae0a97643621af102e8df1793d574ce9260cbc75c12a5776c4c2b99da16f6748719f9c4c68984cd99b4ee250951207e3a7aec247be86c72053c9b6b8bc3e3a6de2c62faaa2eb9c1c8fbe58638b9f4effd134c064472c0d9b8c2c9fa398eabdae1cb6990f4d3d5c0da5ea15b3deb56b11f61511150c26068388f69082d18aac41cd338aa39e561a35cec048bdcbfaee1a6ac7e871036c29a8b51efd78a75b495549b74506ba53ba601e28d768ac5900fad99313c23843e76e294ce8443bc825e7e7cb04eb9ccbced3a821fd6d2d10cfae236465428c2d7bf7736b9b4667048a6c10d176ab3ed4856c129dc95cc70848ce00d6e7db3381a4330d391de2c8bc612dca5b3d28c1b125382b9804be14c32f02952d66a4085e5ec9c031ab6023ba3e11c87cf3bd9f6c6d5cac9dc48958eac422da20a97d81d724924531927aa714b822bc7df4745ca4cede2609a1e35f2413d8bea6dfc2223cdbb327130d6de629fc2b8f247d116b634724086e83e6b4175ccc4bb7eaf1725f33de02b80888cd9735ceaead8044e34a1244e25603f9041b456a16e98ed954362f32b26e3e093e20441be02c06a8dc2e324d652598650e8aa324cf0706aacaa82fedb532a981be4b52088534459205255404cca9584e20f0c717d159894757e30097cc7c1a4210df806931a106417068a54be69d413378e03b156546c8992524284b5ba662985d10a26692607c9c2c4f1ab95ee5da48e891263167ee76ab528acc483ab95863152bf5bad4c9591cad156ab4f715eb5400d69b512e401e4b46d22be8a28dfb512bf99a442ad95fc19a953b95ad1a79152786a75c55a068341ad34312669d1b4d27e237533214f3c6d3e916a15ef182936aad5b772287b51adc230d62014aa95be17e119a856b4f918ea7f6a458aae4c93aad5dd2f0c78e439d9514818a75a1db3cf8667aa95865b203b94cf9d3c9e37e48236c7e4130d98892bbeb3f92f1c6018f66dbf2362e4f3829afb670761ed56974c62fae4cd671554421307d2dd131b413798b2d7241db0d91118a45d04d855dee12f0ed8237b7229f76f9b429f83707bd46467a1e8bfe41393f17921b03b6f58a693637c7be1e44491662a21085b3cf2a448c0bf27ceaec80858786207c01241357d1da4acf221c676747462722549fe1aa41210aea4502cd734728095e808905b495fde004fcb1170bc92fe3647f73e1de6f25d41e1fd8c8308065849c69ca06864a86860257d28014653218060257d32023c293549e54280c9120404aca4ff7e00170e08f05a491f75005bc207f85a493f9e003b7f0f80b5927e96007f7a0f90b5927e1b014eea1e4096597d090196e01e602db3faf3012cae3dc0ee4afadb0160d06fa646ee9f716256d12251625654e7fcc4ac42884913b35a8ddd7d9534b0af8e7a56eb0933cfef33460c203b6407c02ab3caa2cf2d3418566615ac048862a6c5b756924207186a9816f7aea41e8402d4702694ad6116fe7f9574369026667555a697985554413c312b2a19ef57490d6e6a1a809d72528279f038a8be1d367230ef53ea67f0e0ebbe97d567ae898528e403251d781f5ca9fea6559dd581ed038e1b9aad8b7157e1060530ced82b81bd97d06cdfb49cc831a2b674ec179c6994d267f53202cc4661cb75d9cd4de880310d260e5a7f9c180c95c2da16862b41253b6543fca9a7c8ff7059dbaec0c896e1c2eab0b382a8c35adcce4d8b8b223fb1ca4e71d541e195dd9021ac0c2457e1408324450c0faa2647347f598c5cf65871e1782d0c68582716117cd9b3219cfed048ac192a312ad91215ea1dddb67150a1dacb0749d55c54f8a1881fbcd6bf17847a0f22e7b469539ff2a6dbbc04e7a1e0c0e63168441beffc11d63cf1d4058585ef023e187aee2d37f183cc0b26355c859c17599ae018c7773807ba93b14cca2499c8bc8c1e5f99e698c0fc268fc944deac967fb3addafba9b19597f57eb128f9da710f6a8d8d4480ee5c4957b3373d944293fdb16a55fcacb490d19b74dd4a29f9265b587881721210ea3a8281ac94be341ea948c6d28b2700ca36f38b8ea730ef7e24cd0c8925f0f70fd7a994c794ff1f95e445850b55e88330d2b2250bdd954f975934c550bc1adeacda19c73dbe8ab87aeef2616a9b45a583735088c5532c2bcb6af235e213c67a9ba5b7820001c1f0739b005d3044748067794e365ebf1924d36d8e57565306fae7c1869055a8dfd48d34e48b119a1fbe7547dac3bd256b2a4a7798e6ef90e30f0db2250062af8fe4fbb107b92bdfcb6055c28047918d81a892d54fc3d2912c996d57a484c79a4d88db05684a27be658d7a90c4fd767973c01d18f780837e2d4f0726b611b0b2852114a2a7c87eb7a5958f5491e559b5cfcafad7f4782cab6371dd378d7dd8b362f1abd875d3c58b846e9a977603a3ecaff2003d8f0400903467f26e9296a37df1aea8494a3fa5913c1dbc36a73e2c383c1d3751d0f6ea0a7e7b420b48d4ef1327591d45df669bbf7ae0e8dbcefefc2334cf300f5e1f2520bbd0a730f484f4d2907ff320a4f569a5de70503131f14d9a4554aa4b7afec590dd1b05477aaf64fea36d28d5962d31517c566b564be7e36e7201e4df195ba8add8598cad82a75aeff22ee7888829d6ec088fff38b55c58a2f0ab5c10b8b3525e3d4b1e26e9cb701cf166721788cb155c1531e1100a6a33a86ec76b9f10f2f4f27001857077ab10e8686022582b3cce7ccd48b1b4dbad6a219d1c5e9ec991a3c44a44dea58848d510bf10afd871cac3ad7668c2bac543f230d62b20cdd75c04266a2555c74d18bb321a93b2cf2c3dbbe869adf28bc5ba6923c6a4e2e2cdb3512826c2bb31f17e5e63eb1611172d59a34cddb1e2ee09ffac505ae9166afac41bcf6be664f08792e4757c6155c89248723c8fbf40314c6ae09bef63b2c46a76832ded8a639e16d0d4d03a11dfec22690805a13a5bbb37c7638cf934323ad7096f2419fac7c9ca7a905d4ea6c6f3ed38b22ace8a106a6c733ce58d1c4553f279411f0cf9972e35a48baec55d24cac87c5f1b77f7329216874ad4ed4c75058f204684482b42fff8cb38781d5bfb0c2327a80f4352b8c25ccf2cf8cad9322244e16ec4507e59cf67f459a987fc1642b9113e9901bd3e90994f1786746433b889a8db63b0d2d419625fb1cc42336e97bffbf72d466225e6347da96345d66b2f410fb3f8535a89ca61ae2ac819c2d58fd5a2120efbe4c4639e076c501eb7362d59462ded4405e3d6d56af3989eb23bb1bf816ad5b941f67c85c60871d6ad078d05d40ade0d575a6e17c779345a12338bfb9790cdde60141aa39edc125ed0dce46e008766ff2a2f58be49819c05d3c3fb22aa34d9ec60d0ab0b0631e005cb625583e5af174cefd8649b6b5c79eceaae94013c3ef0f6a593f5d57bf1c8e71a7d2314bd5b68fd95d8c8f016ca3cb75ba6ff0d0ee1dd8840fd3d8801daca7b268e0fe0f2cd58bc24f7293b6d83eab70445a452bda4041d6f6822f3a36073d05f63cbf16d5a3ee0e21f195f19cb0ca05916e1941953df97c222cde9634a2149b0d4a73adb4ad79cd1113505aa253ce7f30a9e42d37984cd0e54e286d3bb959f0a2ef63ec0610f9a216ea751504ea7e0e468abd93aa8c487977482ced5ddae16bd4ed3c3224f60ce034b18db53d030d54668af72f59586b638bd484537fdceb58728bab201f092b5c22e25975ef53960501228e2c51782925ae0248a0a5f95141ae288a7c004973ff100d450c285de9848cbd24a6cd898086c3175e498f01f0b56148f09250403726c96a38d14e611d22dc8435bee90685f4cccf59760913cb66d1054b43972082373242e42bdecc643bf76f03725c7e210b6e951c5484ac0790fae98a854549021ba6348aea59e67cb6f898c7828f8fad9bd3d6de2a9547b833c1f6f68e64a87e47c7a5f9d8b0926bd909abc27b59fe2f7fbd42c7a3b8aebcd0c7c907099a1bb4af46ccc5fdf3a9cc09930b6fab39ce549450b9ba7e84fb8ca6546bd1c7a72d6c8daf094522a38e349a7372f61e70577de8ad24b5ba4c79bb18230637d276f2fd53d4e2058b083c348a8f55df5ec078ec53c4e141fe9c7309612a137bb62b2e753313f5094981c860e0f10395e5311b460dae31b188f13f7abb39df76f748852f1a337e049fbc6f4d7e3e66d005f5208120931c07dce29e9a051c85d65825226881614aea76444b2e09b76a7ac4e8b9b61c472d62034e765d1c80d9289644d8b64c227bd474a8904d52471af8a3d2a1093440a0ac725f828b8868447999040a030c8ba7373e8383193804549c03eb0feb68dd8c7a3bfdd3fd1878b04774ded80c0c00e52515947f3acddc2a08a0e23c1a897c2e57d248fc86056b1a0a3d12d11d8c492d37f57ff31f3d8230ff441e0c0b475883db19117b7046178cbf6251c0b22dab56581454e98173a8481fbef68a2ede3afb8e0c1314dc1d038569c3cf50141a26b0e2e265b880af3b554fa91db643ccc86f70dc752347ddbb4d8fad141f0d8c0d8772c23a1bfd3b18e8f3ed8f10bcb7bc052d631d0648a09fa5821f17b8143df1a6791712c41160f6af14d40df679a81637a8c5d7472da4b4e2d61c724964ed0477521edf333150212795c341ee31e617cbbcccb8d5ad4213c9256ff8084fd547460c5f99cc8210d316b023cc19b630a734b017c09e80609464f0bdb442aea6e0b9eefb489548c5a582d1513695b08231b527e673f97c3f3eb2ca272e1610225e9b7612e8b5ee2e27705b7109cf14f6ad8cb7e88892b5c470532419048ab2a88ec33b7330381fb12318790b560ec720d59510f71a5a53a93e01f1754d7416d2a5fec336fde80aca50a05859f0f74da8470bda7e0bee88dd946844bea112d11da82cb83602c10c515e384709604e739cc8500b93b9e8f7c3c0faa0f3456ee86a8aa3fe3cc7cef5f80c0cb6846fa4fbdfb649eff15661ce4e2d9635c3221d7eab8b538f79b09ed0b5414eed1ae0da1598faf631cf98922733fbe86de4baa972dfcbb908f6bb14fadd2d7f2fdce28049200bb1bf7a8097409d1f77146b012564c33079cf9033fc60763764310fb9c5e80d9983b4c64baae31be209b58164413dcada85c0ddaa314f4150bd1c42ea99d5539c1c4f40c706c795a700c3d289e270422c79b1086fcc5df3a3856f04b85115d38d2e04eadffe95f273bec714e2c011c6eafd09247fef4bea67cb66e0f1c43c0b15cc0d76f97d92adaaea339e44e3d6b3f8b30022d4ac2cdcbdc54e272a50e853b83d5e427644eb901649a042e2f44b20d54107066351d800341213804af51aa801208e32914855229a72804c1711e0d2e61ed8436b15b4ab22de5f65fba91b4bbc94d986ee9f081874b267c7e5fb5a5756afcb632d029e8546022fcd0f83a26e65ab4de64a7360f380c1c0de20fbd117df093849f29b6e4f7bcd17dfc49f263eca2cd1bce3265522dcd607933ae3ea238797818b55a237834824dba15d0dd39dd7153baf3d1b3e62da70ece2f8a93d4e96eef8e8b82337e190d5d9c8f7d26295dfe2249b3588e1ed6d216d94cd0dd47ba2b6de96e1cbae37afcbeec4ed1a7dbec4595de19769b3d7c7a8774c0188c870e1d3d7cc4660c06448720030079c4e68f1e3d401d80c08080af2304127b1f3b7a04993a60c6e5d5b9dd2dd45de902f87a302aeef078783b58f8730da6d3834710f007000b0730001e3f40f077b0460b7ab07296a9ac7633a6b2bf3a567627a8733f146909d3f9d1ce74f2b5b0d9dd32babbee8ed1dd32f44c77cb74774c77c37437aabb5f5ea6d0e8aee49da94862fff2fc6474b771d12d4e9e1add6d5374774d775b13cdc37d5c6977c3e83ed9d832be5e68471df08db6eeb6263bdd3d4377dbaabbeb8b2ec41fe6a158da197695639af2a30f2bf537b2e3df173969b84bb0eeb6e96ee31a5f2f8fb16bef7dafd3c3afb7cc7fbd5a9a67ae3fbe488ed4339d37bbacd29ce7786dcc67e9d4dd3574d748dd4dd35d3bd1dd342bc6ee1b59af650a4e7282f87ae01bbd68f3ea8017eb805614a74eedce0ba36277bb7497bafbc499babb44002958b8c0050580a941050a150c7cf024680935188a11c10715664422291c2904a9328386f2c0c0c4163fa2039c800992a302c18e2a33687880c791b807070210211d31029411601a2045a6a94489e26a0ee6015374dbb6335384112577c98952f2cd717a4746c651322f302687294931b98c6f3845a07c2ba166a044c14182003b9cc3e04841da76384782003b3f987cc68738198fc1e99d9919878971a46d07468a0c4a8a8ccff88653048c6fa8cd8b8871199cde8189c199b9f1e204701571fe44ade42e335262dc0547ca8c23e13b30becde444e17cf32d474a1146700e931385938284efcc38070308ce67708a3082f3989c289c977e18e2bc34038383b4edc0380a0769db41790c8e142408b003e348db4e8ccbe0dcf8c1e4330e04e732ee822305c504cace4c4e11510cc5f8e645c0384e1131be790f9c0b4eefc0e0e02011c5b6f385eb25a7e8895ac99fa899dce4dc8d1f4c4125df600499dc4f50361717149ddc94d32e28dc660099369d505216a080ade425d3e60299deb6a2cd4dcee16c3026938948c961fc05657a8131712f2f309c6f30a89c22ce64329938cef48468330014d78b0f2677796254ca1cd19313777a823ae564ce005050ce9d8a4e394425df5038452f272ff9e652c8949c3bc178fb707ecac1b9d9e42e39462577f1138e131b57918bb72b26c7c913178c97709cd8b85c7232e782f10d8691cd85e25c303944262742e53879e27ac9e1dcc585e35c45ed1dc35572d456ba01aa7b67c3414232494142c20605ec94709088c209015c4898a42045e18400aecd9130e544e184002ece9b8a8b632283e2803c796244c939376273938b3f9182e43ba721183fb911288ff1ce798284ef9c729e18e1e2313948bec3394c8e11a81c24dfd98c70d9fc94c379bb112e5b95b161013644b9f902c5a94e6e0303b64d0817db16ba9294238ee00ac021a1539b73311c12623ce6e60b27578ccba0bed0c5784c4e4c0c872587c372a385cd63884c515c31be798c0b8e09c9940491498aabe49c9b904c51601481c9312561427a9942c965b62ebae862ebe2a68b2851a8a0a28b2953bab8e9627369d1420515446ebad8b64d054b74443578134e4c8181e2742382ae51eeee2e45c90afdd22fa617d32aca0a89151211ca944429d5a6244c4c2075442629b6dea294548dea128e290994140d40828b23b2bc6871712f39a2b8bab435d72e2eed27180540394cabb6a8c690230a0c220d8383c2e1b44099a234a02b39920d0e4b49d59eb2c2844a59c101d9bc9d2855c5d539375ee84ebe715abc683955114247b449b9094257641b22e2380f924207c565bae1e3e22f4e6c378a70ae17df9cf84aa99294520ac9758a92a523eaa4cd65db729e389d4c505ccea54aa9552945b472955c2bd429ca4d968e0865c5490a0c74513a2d3a84d075900ca3630adde67af1514a959c8bde5c5a4a3f5c72885a0b14aaeb6c6cdc75f8682e4ea753149729474b7321840ea565089d1657898b192d5c6871e5cc68a9428bab8483abb4a1b4cca009974c8cd28c53957c0be98242a15059665110b76df36deb98d83627b6263ad031d135f1f282738a42d45b8e7acb4ce4b09480b8c0f8064513ae2d36284a279fa1524a9576d09ddca506e9a5344325277440f795522517a2942a6d2eae44e5880312850372f2d2290a1514165412d1cc0c9528418204091224488d248e83d142c94ba51b2a74250ecb1525202f59945425d722cb165ab878f1224a2fe12a212d51da3121e1e0da1a07242e07290b0724498babe43741e8362ff58c125c154a5b89e360385329e70859b2dc4081e3361f1c81c50747f4c007475001a493e10bb88201493180f8cd0eba195ee38e330367a689192a34b849896e2d112343a6460ca7e1260af40e319cdb5054361714150e08aa0aa7e2505c0d1c193132dce4362e23c365626464c8c839b5aae433b2a0aa7040382dadea969191c32575aa94a5779462702e19385c5277ca1443864c8d19a6d229c7e6031d0c279a69829b99320345a924030d8d93175769c6899929a514374385060e11a704171a7088562e6eca35d1f84c13251ae77cc6899929353433546c9b8dcd56ba1142131f25a7d2415895525c1057c955723591b9f94127d340e84a7e3ad580b273c36b7ce886d7d4f88d9c52ce500d7ec36fe43cb9e135e440d98911c4c5d5f80d270ae22272259628fd80e1363887aa12a4f42386732ea487265036e0d0f806e3c589669a082204460e0e37706e94fcc66bf01a9c1ba59c1b3fd4f80d5f5283dff80dafa901e7064e0d0eaa03a514876aa294e2504c348b3351096252820372c339140ac5255141d5e050e92188063a0ed5440dcf28d70c9ca33a40830de71cc50467e3338ed240ef60e3dc4c13311e84064e0d1b35bce434d000a3060d354a35336c6cd030d3c44c13346c6cd030438d19336ad8d8a081069b276a7c861aa7513323088d49868c1c27db174432706e36d0999ca673184e8303c5558281e2808bd31203e35c16130e1cd79d6c6040e686085dc965ba534e11510cb9b80c5ec4c963382aa7081797c1512eb3ddf8e1e4311c8893c7c801c2c5517873c538e785290ab7a5591c91f3a0e3b6e4984c318e42c5981cc6e42893f7c0714938a59713924ce3406493749ac198999999999999114d45332e830c3ee325199443d9e1bc3920308ef2211847c170a59ca11a8771989c2730507664500e5345e9c7e944c34f369cc64d584c3549382fbe790f2513161a3438262ca55416a6241a3082a4dcf4a0231224a5c669f01aaff1225039373847b98ddb7829a708989c1b5cce8d1f6c1ce54b6c50bea4a6c66b72aa205243a5943a79a9868a669dba2494141c10183f75326460a9a1a2c4838ea84b72956aa8e080c0c040e254279f314326a76b9260207139449c16a28ec60c381c0c2233b84c0ce7445d928cbfbcd4e0a0b84a3568b80c0def819b0187064c0d0c4e4d0e87855395905c307c860c2213961957378303c363e06c527236a42d4a2945840e95e43293d4753636251848441b0c24170c120c2418a49a18278241828144844a4225698182794125a1925e3822744435495d854a475493942404ee492ea54e47262c594a3f4a2f38642975326551fac17992ebb4856b564a9d5ec452eaf4522a954a3754e85e9c7bd9904aa9d316a5943a71a746fd50da41e5a06e96d06d2520286f189c99920af5827323848e0806e925c70585eaba524d92094be9c78b277157b8883a534c151d110c120c52e947124cc04c29fdb8513ac12011c174000669862be1dc044186a8b3eca043d9c092e43a113d918253a14e5e93a445894694d28f1b2514514d92ebe42f2527e272505b14ee74229a71895b6c4a314694a0702f375e70c1c201d976fa250ba7dafc458b6bcbd22e3336924e377eb0e1337cc8c68c9c214ee6b4256d7e4384cec4040c93121ae8367ff19817295164948b468d6fce6591512e1aba35e31c127a871abe350744c696a384ab0667062fe1b8b868c031426d6e6363b2e1b628a54edca97b4bab4ece995c3538dc169da281638472cd90c365e9d4c965e048e1b4f48e9333c088283b325c869b0187cb42038e11ca6593c369d1a993cb986c70382d9a753a39e784d639cd701a384f20a17666784d0e97e5c42535cb756384ee0443061964f0120e1187e566035dc94f1d0c37c580812ac12002c329c1c58812941826981cc898fc460859e8665cdecde1cc70eed29dcbe42ab96e6ad0b58b977eb8985c870fa219213139352e1797e92587339db65045072f53925ea8c821e29236e71cca8ecb9673e30793733e64722ee74914a61cd4d08c9bdc94f3c4e4333736e8aed0716e9a223345e947bb0c14ae928c14a617177fc11284d34946464606e766039d8b13bd547932e5e43138505cdbcba94f2f59e0bc5c514abd6039bd54e19270701002e71ce72693e948e987c94d28940b8753729d70da7583838e68e626075ab8e478079552dc02b498895995bc942afd184311ae1b24742eee330e65e7e59473e307199ff121199fc97912c5c99fe40ce53c91c981b263c2d2b938e735a5944b4ee73720e860728c702eeee2f2e28293e374429d4e279759a9861908ba6be29ce370724431f550fae1d26466e448e9e5a4a3072fb970701fedada53443812b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb972e5ca952b57ae5cb9c1e2068b1b2c6eb0b8c1e2068b1b2c6eb0b8c1e2068b1b2c8e707385152b56ac58b162c58a152b56ac58b162c58a152b56ac58b162c58a152b56ac5829c97407dd10a16b6f1e6a24b938992a64a8c850d12cce6f88d0d9b8d14129c60c2a382031a890498a219314432629864c528c18fe22f3f2f2f2528a913423890a0e08979494258b16a21949584e319238153723892846928b93499a91342329694612a7e272886624b938ef1a495b89c31283ae944394616e3cb0422ac116979b1874442287e5a60339a2705b38184ee3e28292e19b0c2f2f3164a0b8c0e1b6f8c9a55d2ea6929f648081d3a1545b3614ca73a06670b69c19207439a2a8c68072140704c66de0c4c00092b9f141f7e2a6ada41a831125282e9c4b0e641a48d70512175818508593c941c5c8109313e328183ec4b86662fc0546015e4c4a2cc1449f4e2e3088ccc89c4e2ea7189d0c9a538cee743a9d6464e0d0c4f02e46c965885921f112835482412406c6f4836e85544a41e1c28a18d38c69850417e3a7182019574c4e0c8e8b8be3a2f423c60b33ce6d51fa3133136306870aaecd61b4e0dadac509aecd5f38174785ac5c7fac4df2f51a0206d8bc5fc5d2a8d2577e1cfea5f8c3577e1c560b7bd5c019d2b04ef0953195e54a5f6f345fbc7f1f885aa6e2ccd72229027fc653ed63d6b5e4bcb48e072de4bc34b779f2e8de7ee0210abe5eede6fa3ae41c75fe6f86e9e06a6946ddfda952e4bcb45ab65a405ff8347baf857da618f64cc4abe4c13aa928e2d28a25595e10c7e8d1dd0e170c08a9811027bce51b1072d4dd13c0e9070889d13895c6789ad6ed6044eff076b0c46a2f35aa3fc3d3c8acd502e9fd70be1191ce2248c297d53954bf680e3dbe1ff6d4c2a7b5705625b9be906b004b188010fd0abfacbdc06b637f3f16d6c741800c89e2e4a985f3938ce0d12bac8f811ca1035265e5afcfb6a6bad34105edad6b635eadce97cd8c1de320823aa6abf0a7e779ffe3d1a3fcdcb3d9bf888a347f9a7b31ebe38fd7c62af5a739ae0ffef58ced288a4f733c7d754beb7f671eed8dd118cdb6867ffd8de64c145dee39161d9796666bd191d2c3bf1f525c2d8884a709febeda9fafd26c2daaa563eaa1c72c129e26ee367b8f7b2a519c9ea7e31db84c79f824f9b04bf18f34bb77e9245df57d1efe2ae531eb3f74e0e13cbe688a30ff59ed7d700f93f366f7a73f1bc29fa738ceeab376df8848f7fc5b95fc2deb0b857f3f8bb4c88bb05995bc08a33ed9fe549af1f7d4323912b97606d6f949b2ad75f2e070ee544b33697f421bab948575741461048f583a72e898d101828e0eba4b32e81cc1d7cb475f299d31b7f98848778f2296514cb35822c1f7e90be1fcb23b876a319aed0f6e27ddad43771e108d133e3845f26fed0e858fadc813f684aef0b35d12be8f87316c52a3397b987fb6469ec572c63efc4ac7fbf943c7a4f8b31fe9256bb094c51efeb5197b77c6dc62c7eec92ab532ebf8b35de21e8e4c3d467d35c37326ce32832ef7b0cf9fe139cbf68722f96c97d4c43b89583b848f04c9aabd4c382ed810b4b2c10991e480841c50900313eda9527ef458957277daff18a996e2199e46c6cf3eb59b2b91eede418e1ee47822c712f87a3a16b75ad7be728e592bdb0ae6f001da23932ea932faf78dac5097a33b4856a908a3423356dda9aaf0707dd2563a6fcf0a72e8ee19bca0bb71ba7b04dd1da5bb9417f87af975f02b7c1bbe911d6162aab5d8fdeb8b9e676d8af78d80bcba52479a478ff0ab8c0aa5bcdf88e6f9835d95ce194f6d8a9f045f4f07bc983582473a2378a4e3031604880e1f03d009f23ce6fb781d42203c62417ae8f0c1baff1ac1a36a297ee18875388e747b2bacb4c857def2fbb8bc4f9642d81526094357c8e30a5f001ee86e01dc04804a7777901fdf4f1168c59def9be169e4f3d5f7799d2e4ff5630748c95a4e61eadfe7d36755566b53fc90f523cd4147138927ca2ac5fe342b8ad363762c477a34c798f5547dd153a5bc1c9c478fcf8b66feaecde02c22abb4fe8ce62b5cce86dcc3f4e8597fc94abf276b431f5867c6959622e93c7ab8acd2300c3f0ca7d78e2cf978ee78a18fabf645fea91eac539c3ba9987d2228fe88a0d8c81fdb19cdc7cf549cd5d24cc3707a9d7e6d0cd31a88274c55fba294d77e96e73886e2cf3cd7d28e329b7d7527163f743c67e444e29e3fcef627db9f1761b32a11c9b2878ef783ec4f5895d48eec0d8a892f647f5eafd7ab468aa11d5ff87a3a00a80000aa177e069fc47fa9fb9316c45ea95f9bc137f2e931ebb32cab2f0a0d816ff47a15cda7b55ae19318fc253b45f3993c58edcf7dd8f8e32b3ffecfd6e8b1154171624bda4bbedec85e929c98863648d11da4bb277063047cbd114f1a3863ac6abd7ed1cce25ca2530bc3597b7a642f894b3bd6aaadf3258ab4e873fd31834ff4377cb096b6d6f9aa1dd94b7637b79960daa5698ad084a6294296a629c2154d530424d4f044142df8aae1eb6e2cd2993f7cfdc7ba1a8e74db58adc147773f586d7de55a5a109c35d88416fcf0c696eec6b52f7a554b317efcfaa4be5f742ded158bd91b3aa896e6d7e70945e3ee9ed1dd0d251ae7faf7679576378eba2b8dddf8fa55134972763782669ee1cc3f7637821041c51bdeddafbfd175b59d0d2f1a3fcdb4e4d3d970a2b391447787af6c45dcd920a2bb6f7467e3e5ad901ad94bfacc33f45c92957a3877f0f5583a5807cf3b49911ce92bdb701689967c812f8a16ecee1bbaa3c18a760f7f86a7883dbfd46c8eba3bdf37aa1624c92f86699e18bf0d3d87a0cb2a7d983f59cb5eabd3f125dd5e708ebec37734471c5c88ab8ee688838e9394481f741d77f2e1eb6159a5b3fcba4fd2fc63dba0bb0fd09dcd4c77e3dbc3fbe1e960fdb5e02bacf376b71041749b82d8907457a336bede2cd33b7530695529d2da9f566b87d1fdf002fdabd51ac1a3f0430b56223da15025428e60935c5f084978278d5452249c3be1dc11e92c82f1836029d4ddb3ee686c81818189093f673abe07e13f1b82818189c9f58d887818094f934a5d56e9686fccc3774c3d08094f93fc7f63229d46d3f3d1d7e9f845586943b75874b9f77de1b5e05fbf6ff48ebfcf2735f2f0bd268ab3ac73acfd2cbb48732d9d9c636d66ecf865610973f7a3397af8e13f78f4201d67ad8558b437570b7a09e2ea72afbe1195f9f44a737dec0f734b276d3aa6fe97fa97373ba62e5a0bab328abd96e9b5f492ac998cce7c7a581f7f7d3c41afd443c7d477f86a3d4faf54f630c7e21cafad7e6dec07f7f0f899ba0e3d74d0e1c7fd3cffcadc56a7d92b73fc6389f1f467e2de07f4f95704f44d7f98675c8efeb796c9117f9e20f5fab3ec2b71964e1e3f48c34addd2b28f7bb9b49ef11433be34e62fab74b4e0c3c26bbd526755ab13facc3b83fc3ef930af89d57e9eb2bf32d9f4710f835e292ef3cc421ed617b24323d8249c3b471f561fa070ee643ad223f78d80badbeb8e26d5ed2b52a4b348973ae0a39b63c279347473acce8aeef616129e26ac20243c4d5c5629c60fda1bd4dd01e82e11b1d1bd85217c27be43f81997448ee70eb54c8eef0febee9b6e0e08fda3bb0ed5edc92a25497b43af89b9be48b17b5ea9fb1361bd55801f9f9f242e26dd3d761723020d030313e3e5174518189818950e0be7fa468f411bb22a9da38ea59e87411beae8b43099f32c35040ec2479b71c903030313d3c5f0d1dd1e4871a5371fbdd7298a13f487799de08bb03903f324310d739df44e23ff6a1d573a73b53ca23879bc8f66ebe77f6dec61feedf01c1c7ffe77922c717e98ebfcd1319d0db957044e98e3214c67d92bf5fcd8a7ff7ddafd59fe1913f78a402bc262d65d8e671015a751f5c92f846b7522b1766826a346ac1d0a3f2c45b0fad4c2f95774bd085625a10814fe8360891dd7264d9c2e8a94e6efb4af3e5d56e90c97a45b8c63d6efc3c6b28675fa2afcb09616e6987e7d99df277d622afacff26682f0f39d19fbd3bcce5976ff6b479f654a73b2f4b0be671c7582fe3497555acb4bfafd1c9bdb94eefeba43f13416b6982dcd8553778bddcdb03aac5f044e58a533708eaccf33631dfc4634d3915e327c5bc127f1eb28cb867c6468ba6b300f1f7f321aab96e7737f5c4ef061ee3fcb1eb39eef241d530f62912378f4e5974e5eb814cbb1046388d0dd367417b3822e86ec62e8f7b991bf6c5e9bb1e7faf796a06323ff3eaf74ce405605724ff59e23cf6474cce13390ce6829c7e2acf773a58eff4e11fcd07d025464a1890d3c015f4fa7d5c2d5525c3f1f7dabf51a3fe31aee6050d0edaddab57986758e1ece9dfb46f6f52035baffaf113c0aeb93b8c4a4bde158e2bfa16867f8ef2cd726f8e12b83f466fcf725ceb2d2d7d11c5fe4081ebd3ecf902c8f869850fcf50b003e295404fe8c474747871ee0f40102d1d9c163ea00d203f411f6e8e123888e07c2fa3c6fc6b012ebe05cda22f067a04ea6b2568ba4337ced2c97f395af25c912b37e9c37d66afd48732def4b17daaf8d5d191ddd563fa2034fc02f82b57ce5c7dd6def13e135987f488d68e8367b26c7cf797677f72904ddfdd3dd8bd88daf773f539d07a988ff5ad0003e4644718219dbf195e7ebd2d249019eace5972582e2d7cb26c63fbe8ee698eb5392827fef87f5f1b5456a775290c6be3eacbb89bc8ee678df88ca6e77f7f4081e75370ffeb0bb77321da9f8ea6e17fe8f75770f04c85f04d2dcdd43707e8c679ec9e8d35ef77534c7eee621a4afdafdd249770be91d5ab82aa996e2fb4b1e462f8861a51039d229f21cd1b03e49baf20bdd17c33a8dbc102e45f29642612d639fa45a9a4bf08f88d4ca1d59a5a1688d7c9e34d3ea23ab73061e11b9f65e2249c2fa20fe9e4a65f402ddf9228fac526c459ef033f920e8c25f3af924f54920f16b9d331edaff90e33592c1793f86ebbc438fab25f127a9dd2f7f083f5f4b7e3c7af80e41ca2068d08180090f6f87c783f5e204f10cfaa1030f234354292123d8640850abd56a8de0d1b5f71219c12641cad0e703f4033a3c90e401a41e42085fadb258e29a9831f51cbe077878a0460770d001b17b08215621ad962ca7cdab3b6d073c0e8c8103528034cfd1e672d69f0d71c0080e040d21c42a0821bc3a853850da00141b68d2dea7f255e8f319cd5919fac376f84471f27c1ba8a1812d3d84102b1768e0eba9811a98d802131d58e13963e24806ba30820c0865a03100457b5606b397ac6f54ef1b59992371af26c228c696f49f655cdafbb23a43552eadcd1ecebf9ef2d21bffd6445c5a8a69f58711c1c0033a0c34e99e4e9260e006064cdd3d84102b3c69ae0b30e10253f41042e472d22e90800bfc2cb1a58710c27b7c5673a47d1dadc59316ba96c8c1122358e248af42ea4108e189e2046d7d7dd1ccdfcce10ceb5c8286ce0255ba8710621584102e0b4cc002b8bb957467011b2a60c5104278487d1584105e2ead87d7fa2af44933f5556dd6c2f7e93330cf31f40a90dd8d597f2b6024d7c715e8308e8e0254bcf0f35ff21bea2870d4f4fb7c880241dddeb5310a787b147851428aee8e59af4d9adbbac293a6c4874b3ccb943aa63bba53c2bbbd5a9da35b3bd44d204b7b0f4e008a090c757f2c56c2c049628f592f02a7e8139373763fc83d95acd25cdaeb36749bbdf768caeddf9f0d75b74d7713587577507712c8c2535df2887a32ef53feb3a1214386a852438688e2e469b586e09a90e3e94342848c6093e7d1a3cc74a447866021477667889023bb93f1874c92a8411260123f10d802010f40c00210e8a183c04c777bd673fc68718e176b628827ad9623db9ac33115cb18c62eefc339da0a7afe59c6d452d8677fbc9a284e9aef24af7d911c6578fc6698ba579717fe4a9cfe009cee06eace01561c80030790ed3dad26e63bebbc2fab56745b9374f70fdd215d00a9eceea2ee9062904a0d80a201430de8babdc77306de9244c2d364c5fa6cc7bf2caf3691780dcc45985ecff3615e9b238df97cb54a96bef2907000123f90481dd1832352d0ddb0ee8e3822a50bdd0d7627c502527ca4d4d0dd4dba63800eba7ba83b06901d037c58c016cf6b936cb1bcffd824ebb33c1e3d62d65ddefa3e6779a91d4d6cf64fa5f2bc94af523c9a7cfe301745cac43d9c8fbef565fc6158a7c72c39413cbde2ff55f8b52cf17fccaf8d7de367fafa8f7d31fbe10f53ff2f12de49bb16fb0218d02d00c90286747792ee14b0457bf8fb90f034f99ce5618a84a789c7ec4c56da3bcb3e41904e51b4f98888028c1490f266209dd197d579a7ecafe3d26b36fbf422ec8aa282281880324577b3ba8b42bb7b4977516674b717565f21e169d2fa3e6779d9da2448bcf57dcef25433cf592a36b1d0105590d25741ca949087d5e6984bfb23cda2b5b017a637cf232da3c596d147b48cae62092da3655a46f368197d04080d1c8eb36d465459552107dd1591d4b53a63311afa0cff6beddaf1c769450be2d26b30ff6beb9643f796a366cc79868f29f84cba3755f796da0240831e9e5069b22cb25644d26d84d63d4935bedeebe9cd09e0e2e9cde3fc9bb13fbdb97bc3b109600b80c9012624d3024c504c46984a5997001b9dee36d25d00223480aff779caa8d1acaa1411473c979688547713f152fba29664b3afbc35da1bab51d1ddb45a086a11f0969dd17c85af97c919ce570d3cc2e2884a9e33daab4ef088088d0a2f0f874fcbdddec2a288319e22cffda07b89140111194a52cb4646f47ef8c25314e70bcfd70ccc1306623aea80988e47dd953d5867067eae657a27a9e3795e7f3c5f247d87f0efcb64f4e637a2b87eec439f65aa2b53ddde42fd404a151828d0a091c680d4dd4d33c593190c0f2b8200b1c1f2c50d9e69e3ebe197acd2abf3a5930f5fe01b75a99666bb9400878b8e0b134f56eda5f98f56c83d0c2bf10cacf3eeb82841c91204adc75ee1e3d2064e86890baad40b539cee0da77bf32e5e8072693f53b7d857199706e8de00d0bdd9b0dd746f35740145778574f787b6fea5fd0f086ea562a5feb0eaa1ad2e83cec9146f5e1bfb5aadf02b0de843fbf309e16a29acf0d9d2dd220c46eb86640322a75af02fe9a19de51fbd06db3250e204d0bd5de9ee21ba236b3a0b58580290eecec21ed13a03db8d2e6458509510131f3b0f423ca4a3b7f014613397634d0dcad6deaed6cc8c58c629ba7b06e6397ac651371bdd1b0ddd9b4df756a37b9ba17ba3d1bdd56c32ba379aeeadebde62746f32746f30bab799ee4d6683e9de50dddb4bf7e6d2bd9d36ae7b2b756f5b7fd1dd63e86e3174b717dd1d86ee0643777fc10bdddd85ee3675218641c4d2dfe734039df844f8b8d54a42ca37f30c5faffcf8eb360280ee8aa8b4f7b794556a79788a96e8199edd423a9c3f73b207d01535be1eae4af21caf2d42fba389c4c39e692d3dd52a958ad91cdc8738419fd73af6faa41dfac1e2b43f31a05c02e1a7d7669ffb950694ed4fa596fc910ed1ec91a38924fc6bf38495988a349742374ff2935425a150c6f648c6654ff8341b5622310fc46ebe073e4713493d72349178d5d2f0bd267ab63fee79e47f38165d4bcb5f75783a3c1e462f14fe387fdc0bebea71f853087bb5ee628bc810d08f7b35b15afc7d3e1d3f2e71edce0f2996552b4eff3ec72b1c8bd90fe7cdf8470be672c7bdef2bed018a701f3244c8ccb3c75737c8574384b45a31f185848c7426444e24ce83ffb559c8dd13e0ad96fb8b941c2d68ebf77d44fc06f7aacd5824c779f4feb35c624c1d675a4b1767b619d7320d69e984e6fa14a4b15889abcf1b51d145fefbf06219fe0c14922d2132bf071781f6c8ccb3e7d60f7d669e3dafee758517145e56ac56defafc17ac36dd9dbaa1c6eceee5a36b5ff4122768c56e09b40310f084ce6b048f5aad6ac7d182affbf4de0943400d773cc493ee577e6c44c5f922ff8b445146f18ed70bcf17d8322104d0e5080b9fde8c613a412c0173da6862ecf4c065e90ea95d725f14278f4552cb54a45949cf0836e119c126414744e62d5df3962e215710b6b1ea2384a5bbaf1ca1bbb1e8ee2b806084eeb652842add4d842174d72ebe59a746ba78c407ebe4a9f6a7565d07b0e9c6c100ddbd1d40064679b05a808205aad0dddb1411982068c60cac00d2dd1b012a100490120ef04015ddbd41c00a0050dd9310147477e90811024401023820e085eee6684ca00a1632c0441556badb650317d8b25dd11a430fddbd69d105059e7891012800e96e1307be170dcc8040d484eedeae80f1d881101170b2846e5c7b1f8460cc3c4377eed42449b6e2fcdb0d44c7640adabc3c76783a5895662f6c86e78c8912d967781a316d32587413e1a43d904577c7ba5bd28489a93dd0edcf922aa1053dd7f7960ddddd80ee66d2dd4f04c00f2df812024c07a1bb4d40e816c5f24714278f0e0d8c18c8d8ce7aa340b5747be243774349b4cb16c057b58cb991fda985f367d3adcccbde6eccda4bba7b6d8a7fb726422ee8849ad03d679e3d9d900fdd5de9944dc745778e33b03ecc6b79bdb435df61c887f8d11c439f57922a49729004a9bb55a9e9d8c8552977cf3fcf9166fc6e731257921949ba083f04e9c6e2a4b97ee9e4b1d77f5a7e980f092dbd1f349623ad1489900b564a84ee7e7517a44477ebe82e280b0d561b0e91e3cc38ba0bfafa06f50479bbafbcf5aa95b0560b2be92eada0bb11d01d900ea02b0065d101c90048054014f0167e2a8a936645f163bef216be31f7d2d62f9b24397fd6fad102e3eb7d68ab0ecf070f4f070b16b29ede8caf87040ced79d6bee8958fbeb65a488a80448af696e7e9aa55ed8b52cd6da0bbbf3b2441bafb024b74ab523c96ec58a263c9081ed119f45fa45aea614cd20c4e72a4fe5424c7f934cf25cc57df57ad87e458c2bc965fe62b2be4de47d26cb1381d3f154972fa7dfa335cfad3fcc14a71b63ffe7d9fefa0cac177f01c9e83ffc75e34e53c3849f32bbfb8838aa439058a137cf1e09e5fbcb688ebe8f85f5b6574957179bfef73cf7f96a9d760be529134bbad290f9f088a5935f14e918eb5bcac5ced8d7d3f9fcfece31e2e417182532c657feb574bd22cced9cc30eb36fbf71f7b7d46dfe797626b73489a2f35caf1cf25395af01327d097a9588efe1f7397fb00c0c6aacf0fed69ff63848702d0a0004bb4633164a85b9c3853b1c47f49ebe41c5f31cf88d6c4cf93863f8ef4fb1cd7e93f5ad0e622ee65f0efb520ce437c471349ab158457fca23fec431afea519cf23eeb9ab7c55cbb496e368c154f84734e62b8a695fc4da2125d9fee0d0274f0a5a8c5df627fc24d9fe74d1dd39baeb9942ed7d087b42b0ce12631f71663b8479f45012b3f606656c8dfc486fd0cb6650b6a25058ed0e4f488ed7c8b5e18bb089690fed7fc46969123c8fccf034125a1ea10f2d4f7ea190f6e09e0fe9c5e11351bb6f64414c7b669e3de17c23f783f0bf582629ba73bc9f271372bc46669e3dd5d22598878ae47f917cf43faefb8fe72ca8d26c4ff84a92643c8ff02809690fcdfe7c9e59485669aed3e8c54fd283c3f9464027489c8c3d19cf23a1cf0836f9d814aa7f048ba28b8950aea5e5897d9217497a87e695914abafbd45d0f2ae86e55773d207183e7e98ec7c778ce9b8f88fc2df3ac322a84ff86a1ab24127e55f2b2f78978555bc7be9302fa9ce591a5e792f46b551f0f17e2a90f7bd73a0064d000a06de8820d36a0b1e1c8866b430ddd1d035ae5c039f0d10c0a4a017939fc46a6862b6af0410db8061d35bcdcc0e2c6076ec4686ef8d0d8f0c2091b1cb0c143c316342c4143830f5fa0b1f981cd91cd0d3435aa34eec1527d3b82be948b7446abd5c9232805f4b9efc4807a38ebf395b752cec3593c825e3647fa97dc11f47d8c95aad4773e1e419e83eff01c7ce7969f0fe7810757a586f0e8510a69b562f6f585f36fabf5b239a991f3b8f7790e5e98c37fac264eb0c4d5d20b9bb1796dfd988f17d639c3b4d298db5c83d5c831c3173433d080668618ccf03433cca0a165c9e71ffdd8f497dd390361a5907bd562ea93e6d1a0c18486860f355da0a909024d8d12ddbdd3e3397c2eab34e8fb907c1ee439f837630032b2d0c888a2bb659a46860864fc74f7a96964f8d0c8b8c10a342da001010d0d066868461a9bae0add1234dd0368ba9d18588881849aa689b1039a18962606101a19a44023030fbe5aa77d0d45bb6306cef76b634648f01784f3a70a72577da63705f4f9ea5321d9e971d61744fbeadf8f2a7c168b8559a168fd43f2e3397810921b6ef0c05ac3f9656219fb3bc1af565dde101ffe82f09fe55c5a07a9cc8ab259e768c4fafc67437e834771fe7aae12b27c856288fd7fa4e183b4faef78a57dfd9ce591748603d7660debe3af4d1994a0984686264d9d46061ddd5e28838d4703438b07c38aa698d2c060a2bb457068884dd3c00062c88f1649ab3544b37506023309a099b98146e68a0868642a4023b343230323860a9a981178de971fbf66feaaf6f32f9ab9d5fa3c6653be63547daa1db02fbf5005fa52eef37d5f0de673cef09c91d5d23ca783b44ed27dee93e11759a34a6595ca2a8d09a289f15206a3a56960a4e876d1c090210d8ce3681a9496f6b0eaaf1d535eab13c54437100d2a287fcd572e1a54d79ef86077fbd0342f54744fdafdb0962e9a97284dfb18cd4b93f6ae751e2fa86e98671c7507a771a16287d246c154a443342e41de8cc6c506e6299d4c1268c810212607d0987a684c291ad30b0d4785ee66d2345c0568b849c3cd74125f793256b5bea2292580a6a4034de98566eb01cd7644b3e1f0d5fe783c40a4803c9282ace93e5f2ce10b157c1181ee0b295f00f9c2c462a9c4f00031b8bcf8c215bc188217485ee8e0850d2f640843953070200c621870008311c020050c3f80810730b87c61055f08e20b34b60c610b145b685b6ef08210bcc0022fc0bc00c30bdd85157421d68556175e74f1042ec52067a9bebf36e3cf6334e57835441042eead9d1e67798e1c9ce68f51d171a675357ec62d96c7f23eef6801e9f838cb5309c9ac9802fa523e03ef7cecb53b2b157a917504041029a02f6605e0e2acc11cf4fc139a650bf3d50ae3495ecbaa5689b3bc4f258a93c77370203c07175a8914d36a81dcfb767c5e135f9c46b474e2cdbbfabec7655853fefd6885bedcfab29dd15c9572dc12c5077ddcc31f2e45d257f4f396f7bdbe1dcef2cf6336463d633a7d8890fa339a10f097cc6b6dfebfb1d1de98107e71c1052e9a206b19bf382b2de271d1c4662e7070010bb6a2e7d2ae7209e30213cd85a3e742eab790e4a9301dfddad816a6747bdd16a2587bb7d083a70a539326b4854e2787eeb480c5b53065470bb3c62e33722d04e9a6332d5ba61629b440c0bab539a47dfd529c46add6d0ff8dbd685fb380832ce42cec6c81050d6081070b37ae60852b28e10a0fb8428f2d94b0c5115bf4f40dee5ec697621cf77139ffbaeacb9b53fe4694fc2f72b7d96bf78dde558fc5194be13973519caff9a2b52cec79607e5fbd6cdeafd55983917fc9d5cffbb095eafb927e5efffe17d5895f2fc2a67bf5b7e8aca0457b4340404978bc07614aacb084155c560052052ddacb25cc595ef8344661e02d2d3e7a3183f38808158e40051750c1082ae0c852258b07b20865e92960610a495358620a760a35a460450a2590024c0a3851d8a2db1b777adc56b7b8522067b9e3e9b549f3ef0b6b29ce8ccb9e24df8bf6f5556dab45fb9f0ae4d86667b97bdfab4ef0f539cbbd95c42bfda8c6ecf47196f7427e9fb42b718234d35bcaeeec719677ed0ac7fdbc28241105044401480b2fbc1bc431cf3ccf5b23cd0118c0008a3cdb3a87f8be207e9c425a44408b1f2d60a040032818412189b5f7734c555fcaffae9e66c56b9de6e3d54452f57d292f31a6dee7619dffb7c837bd24b85a3cff82988eff37569f087b63afff58486ba238c3214f20bdfc582cef136c54f8b14e0a0b39c18abed40964f8f9c50ff187ee851f3ac126294bbb92a4486ad29d645304d2a2266069c294226ef390ee9af035a107af09364cc072951c49a2e4081398604290f7e1a389e4638277b635c912b27c18c9d144f2fd2cc18af696d04477376d094dba9b2e41c7126e1653b288d2dd338ba06e2f0bf169cc6b5324310d9550a53d8ca9387ef6518212ddedd9ac84991252fd4a8091042ada0b1fe6d78a4f1bffc3247cf4e6af799893a0a35b86842dddedc9c292c8436b656e6b2d631c48a0d29e2ae5a1572468c0e637a20d19e2e3ab212131a0f1b38f10f0978494e7c5f20ea989e21c224e6cc921437c84601131161ddd5eb51e7eb64657a2f0832b2ab842b637946dbdefe1f04e0babf68a91ee6e91c8159bf17dfcef39c2963e8214dd4710bb08a43e1cc13b820b1653747b5eccaea8af7cf5d54471be3e7f6279736961d37f0916140beff6feed57af268a2e4be4f6475be968abeb8a2c5c31c5cb8ff1d74c9978d888e6150cd39e2b1a70858ef6fed25ca963ec5466842c2ef762e2e38795424658c2abcdaf85a1cb083eac70e1857f2979f44ebf0773fdf1f54654f63d58430febfc4bf35f5f4dc72e2b505869d2edd1ac28fa0c3facef78ceacafa65bb9a15b2caff7f8f0b85091201fa77d15af92227cd143f091ddc113fc2545004011ba0a145586aa7044b88208503a2218f13e58895fe1cf6fc563470e0f0ae7675ce9a762d5d04b5bcb60696be1b36a89ebc77cbc4eefaf37d6aa0dcbc7a4873f84150c61034358c010123004030cc1c653a5f07cf9b45a439e03136779aa9d1eff0ae42c0f87f36ff8cef2543b5240cef25ed9da242f7fd80b6114828d1d04a116041c3e1eff592e63f7692e8a1fce71f585ef3303f3dcf97e96ebf4951d720f8f25782958a97740800284cfcb6479338e6a7155e2fd40053f28e20702f001161f28c007a00f6e5891d41e8f8a2705f41511c5c9f378eeb45a93acc170ca3df04e4c633e9eca739d19d3947fad5ca7675b453a45d15ed1ce68a3cdd38a29f6c78a285f14be1541dde3e3e18f876b5fe423758cc3888aef430fb2f84ab33de0a107347890041e4cc103920742ba1d74b1832a7ae5318bf3bbbc0fd7bee85f680734e8400b3a78810e22a0031d74d0e5a08a1c7c0e3a1c24e12005dd5fed7df8bc1552af7d510b7fa69709acc759dfeac3b5f7211ffdcfe7ab2f0614fad0a1cf5b389c9f04d6e32c4f95c2217dd5bea8d5c2b5f7a1d51ac2617df243cfd8824fd6543b789ce5a9667866ec54258af6ce94acd2e918478f8f1b3dec33f8b1d8ab70aaf645b52ace213ba365b17c3d0e52dddd0db2dc8005dd0d8ebabd59a6b4af37e8a1bd9a98c11bf8a4b9a85479d98bd4885ef2f31427889f878a1262aed6e69528529951493595eeae36c0523bf2309c8e147eb6410f8ce3c95a9ee468c14a5d3f7694435aada1199e464471f20c191212033a726477447182add6500d64d0a00a1a34d1edd55be6dae7fa63155734ae22a79b411466d08119f4ccc0a6bbbd3c65ef35d5f7a5f0a5d5ba2a4c4dafc190783218c014627081181489814b0ba8f8a8f8018324181801060a80c15077e339cbdfd02b1ffde72c8ffccf594378925e13efe7acf9304a9b247e010a5e007b4190f6fe5d507301ce145e98c20a5330d1ddb83c3a7a219cc2def7cd4f14670bb4d082285a208487abfdee5b16408005cf022444ba6301aa5bc10e562083153859410e5250410a12482184142715e8a0bd5690b3bc96cb592def739617b31e13ab1d59ad20ef13e7df8be7ce37473a3f92cea6bbfd5be632c69a612ac2caa0144c210529e8528094021f29d089228b2882104519054e141c1452402104142e284a2898a27b87cb2a45e22da01ea0212fe613dfcf3fce3bc9d538f10ad3af8867ef13e1a1a5f7491d75d2322e89bebf384a5bab4adc537ddf8f13af8e3e2c6514364e4cc3cf591e8c1ebd18b3d9ff8d48717a6f6459def77d1eb3993aa63458aef3ce5236c37f633ebdd2262984829c1304e104b413f49ca046777baaa0d46332470e2f632b622c8aae1c39dc7b11462b0dfd67f9ab0d3d466976e6abeff31accadf77a615a9588f3ef0c4f23a238c1d90c4f23add6d00ccfd9db58f5c1a1cfd0ac4d60849c7f5d2648b53e13d427c939f30a34054bf7a4b9a64ce9ee764d0992dd92747b9f08561dea9ee0c2135474b7b7e4bb9647142748896470de7cf4459e803d81c3389fe81248e1e50b7e083ed99520fcd18278ce420ad2526848ed8b86d4de0721e02f11450abb1f547b1f7cfc283fb42009923ad3f14990c4892f9cd88213217042891342bcda7d23d5d76a59fa2271ca3f95500ae8f396cdaffcf85527f879ece813fa843c071f81134690c4081630823b821f46e089208b7ba258c6fee6b0beb7c3599e2ae59fe9a5ed70967f3c1fcd3f158ff77d68c12ff621ed3b1150e96e4f044988408a088810c1d74384f80d9f6a470ae873d610217e835774e7f8f78b261211d8747be4fc99631c5e73c19ec90b85c08a982b044d74b76cbe5008749a7042131ee8f66e09827fef87b5745cfb2258894bb7395b9ba426fef567e23972e4c8e11dd1d85fd2070c52d266228fe72ce8f19c9118df1f4b5c2d88efcc339c9748ab35f4ca2569ed7d0d191202fe9221414a21e02f098f3eac43e8e03144a389a8e4efaad7a99e059d424423a2010200431100203020168c478462d9704a89caee1480037ac85c904c9b49b330c729440c41c4100000000010000084410001d4430040b59b41698cd39138229bd43c3125ab1b7187a0399ae379821afb001729652652c303328dabc4df413e69ecb0b89e51127fae4883f5fb04ec9952bd58b11dfde5609c2ecfa7c0162ee9312791709cee7e4ad0e101ce8d81e8474108e19169e85ebd5ac9972f6ae5d8392aee7c27730bc707ee12ad0c876ff670428c7f13f25a64e6b1bffb2ff8ebfca1d9c75c26e23e643e6dfca3cae320781fab8735f630b4bf75fe61907b2c74900fbee792bdc54b827b4c7c82adf64a82f1a595abe05d9be3829c2d4f18269c20ee4974ecd0bddb5a56188a5b194d46896994c9e4f041e98baa91c6b01500afba8b323007336cc45214391eac7808591385b5a906526455ae465445279e2a298dcb020b37dbda388f10d6201b23eed9089ea264c0c422530bc8663a31ef01381b614a9d344bcb8b9568dddf3088fc6779bacd8f1f7bee529ccb2d2ea676ea1da348621d2112ee9dd1dfcbc11c58aa6f6fd00f2f502eff5bd07db3102a04c9c46ae5c765a03b7024630e9c712c4be8fe2dd01a86f4bda6a98bb439d42c3b4b8167e3870955a26153f01c84ea8e0676c8614ab438d2a65f7e7dd4cc4381b07dca81cc6725f13654e688d05049414c9b1e08c8e2779c2cb765d82029b1e2e1a6dc8119886a39c21bc819302c9e588c856db05f91b5aa08925b5393d52423c3ddd3b6a8f903632ca34ac30a655ce7b07e32bbfe84b43943bd11032128014947fdd2f11f7658845ef1fbdd2b427e7cd26c5ad6023255e2d65b37db9fec93e08c4c3ec9554f153952802f0eb316c3132030047880e8f66e39829cd893b4f43f175d2f5934fb03c078332bcf8137fe53e90286252545af6142610ce025d6e9959bdac97e77bab650124b6d51443e55e2ec608371faaeb44ce4741ead369fdbe1656e8e865f35f7af61ff189ad963ae02d4bd99bc5bc6c970f0fb4f22cbc13641cee172597afa3f15b3ca545c667ec432ed2e904ec43493b4b0b010ade5b87ba35e869a5bce7ad27a215c67feab1269d37bd59d4355c8ae2913095d95f89984c77d66cf209fdaaeb92fd966a073540477c1f0996cde4b6703e180cec319d9f834c73fcdd1d0347ea2e709c03f37a8de3af2f82922696117e9b2a9f78697c568c41d05d9c5ac9fe431df029f667d0736e7396edd91bbfd15d60def24406a2f5f136ce4a9b4c2e875ad912b949f4501d428caf180251ceccd1f8d4111543598b451d4564d7d21c7fc64cd4af6c834aac34ee021862f1fcb40a4cca07cefcbdd13a29740df9cebddf185a1a2726cded036952996199763ac01f53a40dd436c728c733709701d99d3a300646058c5ba28bae1d39857d668e775ed2ac3638a61aa1969b28d35731ad6c20502c775ecea9efd4506a70e84aafe64e493b8d17b4c41aeb49377538b615a1476c11edfa329ea5e94991294eefd8770e80b35845f357f87f0589798aa0e63eb84b4ea9203f65591d66ce78d9c9eebae08ff157e9c8ae9e44aaac45f814542385b3eccef02de7c2fc975ca4cf95520b89fd5fa7df3e206519ad821730d00c319cbc0c65086e1554de67a02c4f462e99c968e6cf8cdc683c013ca0498489fccd7b8d6593661638598adf0f2fa729b812c05b34d7589cf4f3bce3898010e08e659e4874a7bf61ee7bda68727c952abfd072e40221c9ce8bf0e749724de524cb08f96fddb6b4e1a9686bc43322da7bcf1591e605f9090de95734edfc9b30816249561d2d11580dfb9d2a3936b2701206fc146d9b60a0f9585031e3f1c1dcff6daa6ef08c199ad26f4e30fb99652f929a076da07ce47b0d000fef0e50f00b20b0986135e25239a5407921f1cafb08921ae9a0cf282889544163877bdb98e668211ea9b8833a827abd1211590b49036b0fcfc5f4caffc13a9faa0e70310b24a036ae97f900ffb5b9d05f178936e67267174125260af13ad0da4d6c70baca51dd0b988268c32f936cc33a488ac9473d5c73a7318adc5be55f58cefadc996bf9c03e72f7ea9f27a209e48cc9d5a97af7426e6482da73acb5c4da8cbd91e4f8ce700686e13c119b73bab30b4c84e3ef79a3d883c501957a56bd0ded52c08bc9cf4b0a7819bce8d75d5c3c5def229560d0c09bcf99188fe0619e63975b67032ffa3fe03c2f267dde6488b33e5f4dfa65474a78165dcd877788c9c30d6d9c27eac92e38838bc48d5560d66dfbe948e1ee313a543cfaa9af3eef17f313f0d36910051713a80e52ad2eadead110a3929da5deedad8214d20a4a49ae9bede14cc43d6360241b44585eb146d64dd47e3b9497612849a5f51122002783dcea407a6bbb9d155587a1639f7515061aa8d12a1888d3228f54507c011dffc6e1823ad15d5b7409ce7d36f6e822464d09bfbfbb7cf925caa68fbb27ec4ecdbec2ed63150d07239527babe0367c36026396fd49f1919204f78802ca55733fb043a4bc76a9b401bdaa660c8457a50876f6357acf3968ffac192ff0fd725490363fb70d5589a6c5681df2ae8bef667f3c7c45f64c0ae08f404e504c3b6028bd4a9a7de4fb0a0b7e52a1af52261f4cab4f66ca740576da9a5d4995fa958e973eed1af75a3a03daf9ee98d8f452eced374c0756a10eaca34d77615037d7b569c97ff820d3201d895ee1a588e49f1d342c3ea83cfdafc1a8422856471433a5c88e8e4bb53125128b99240818ab1330c111869805c67b701cf41bd8ece0a59b134e3749f2b2d06708dfd72e4cf5d9971b9171b77d6e36c3ad2ee2ea127a111fbee1ab7ff751fa3be05f91bd43a0c9aaee47edd80174ca7efa44e192f8eb4327a05d4891437333a4b8e937e73c223b8b97ddacd20049a289a3ccc8f1291698ee6ae89e23267451b8f112836d42b962ea9c31f90e7d1690ee609cc5f8bc90ef2811b8c70cbc3913fd92e24f78d43718950b8550181ea53a5f79a4e81af012a2a2a9a55e3781cd5ff79f118f8ca435ca3d644b27ac5d9d07a68749e2cd84df9d78e6940b622e98bd92269f53a84b8bd91dbf19f3d3db55b18303edfff8d241b14b8bd2631571ba60668066769684f3aa598ef43925f7966498acb0923c1ae60fd3f08b197231421b9373e0a60ec5e5d3d155d32b601655b8e585ef319af6c7d5816c78c043eb88a156051881842574a1121072263163421fff9ca25d221b8ee5baab2468cb04cd688a0bc989e707429ab4232dbfea5614b6fe348e696d79a9d33684f31496891233ad336bd515954c6ad0fbe8355e1262cdd438b8ab79013c642ff1a6c68d617cd6a3453e9b6f1d86d8c24f692adea1eb4deff5dc516a8c9159e81d8ab35f99936b898383a4a18fe9f17fe631caaf9247e77fbdc20be8f81519215fcc82fb97a567d5db9734fd93ae4e3314f4a86b2a77ea32bf5ebdc59a10780ff88ec7dbf126545aa981272106a335769489af2f1f20c2e654dbfaabd60a95cde7b2dcf1c62894b8d16f11716048c9b7832393d54f34e6dbf0952c3e402e6e8b32469fb134221ceb1a2f8ae4749e3a3bce35aaa713369319a7b1beaf36bf975c2c9c85d01999be8d6e9b217f49ac1da655896bbb95f7724770875db02cf144f6f62aa73fa3e5904522de89bf9cbcb8aaadd5cd8d00c1d4ee89ab4d296001e340941a290a77de10d97c41fe90ab1127eac089b6be1a7da138715768d0ce3127212c194086801cb8b28ab3750f62dcf71c9b58b80d6bf13c048d0d8cafaf796332875e8c13bbf406027674e7b4dc17e855749b426aed7622b21158d91b211f11904c5661bb9b21c6dd8d96755900ebb09bd7da6a8d6b41dfbeff9b174117f06cd22594623641540cd86a5f8b635121ea1d8f279b26bb62da52dafa01bc8267e85bb592985269dd12b5324bbb81621008b2904faab1cac18b947511ca9272758ca414737f66fe0f6f67c9afd2e436ffa0d7349bb7ee07f242a0a0a5345cbeecc43d61dc03d1d63340fa0e7591b3da4b23408d7f8068e840b21a08be617ce04adbcb57334a4c90b33a3c8ef4c38f37bae2b309afe12f4c5df8b50388cdefeb33c62897c149c48b735fa80ecfd0074b9e54f1fc67dcd6c49f7a3a22c2c59e1915256ff04d7b79b64857d61a4b8493845b3a8ab905320f4a4f20377e1c6beb27198977d0112ef391ed7d540f748260696e2dcdc6efaf952874ef71c620bad516a43a0bc57173512b09caf1f79a62957cff04d7d9b14d3fce64a51e35aa9b549e1bc4955bc420108d40b7189b43f3ea2f6b4f3dd34e4ed681887216d6e48d51466f460dac63fa82588890b386941c6d846e9d7ae642b6d353a52d104a5190b09120ff43e8eab3125460f1c50247471a269c629679ca6865ddfc50c06ae1ae8c79dd3657986262ded226f9813b6868c46056c1edba61fb71f5585021c59cbd219fac94f9a520b707e165a99607cf493fa3e8d15f4be03b97fea6c3c372cec686f4d1c76cef25ce52d99be7bd07a0174f8817e200091ff33e3fd09e675a52e1727b52f64c04f21a1b4019505f8f12bf85a8ccc8aa407e13764b6f63c14ec5c48872ba456cab454660705da1d29f07273a56b4d384e0eee0e98b189d25776440e961319c21c743341f7dc21c697d074f0dc9b0b3b18125718e34b49509538789eb09c284e5322bdcbc64d181be8a09d7314d82366cd85ce12a1abd687b7e83f801588b76d0207c92d23f1d128460ba8cf83b107bad61fbfd966f50de177ee290b21741d2349bf7137577e2be89261b6709014509ce72bdd85778159cb83fc2f3909df811fa57d19ebc565bc3d7387b605c53394cddc1cffae7649279b1f4c2c158ba7df20262815f8a76f061d8db64fab80d147eb2c20b7a658c9f606d1b362821bb2cdb027fa9552cde24ca085640ef475469d841ee1463674be609c58baa64d673d9d951878b7282389b67792007c38e55eca9cd9a379b9fcbf2c8e321c1ac6566b38c0f5b99c7f087e1e771800deb27e41c4ef6706470b4c7af0cb98dbbec7c8993f5a6ea04277b37c23be6656adb134303a952ae59a9b062ae31a7cdc365c8f0dc949805c20a31028f6730aece9c32ea533d7f26a44d448288e70b790d99d506c4cb03dda40f27442f740e56376f87562c51e716c2591e0f8013f1fa82887a8c4b60e78501f7802fc2d5b4040c079fb008d91aa8b775fc6e8879829ce9e6623c745607ddd36dfa27a0938b3e9c49a92d1989b07c11850a7f0ad67a432c4701f3696d6c5a502806d53d836443ada7246744fcb0354441c392bc26214341b925257b11116978650c653de232d0c4b7f4839934cebac619b4641ed205415eb51438c40d36f54e8a8bb166b5fb73820c49dcbb7e063b43e4e5d5119eb8e8492a92773728c12937e45cd9e1e2871f4989d9996dd3daeae41ec1d3001a2f50c1f4caa8d65f59e1653a0482eec5a3779e9c1f05f9efc5e7db0b7ce216a076333bb663c3668337387a0139cf4d3444c40bf445647d3b2ee0d236bcc289b8d0365822adc69a08f39f5adc97661e24c2516fbeadb0df1cbd84951787393e7ecdacdfe941540fbe8c0c4255c4a1fc041703980801eb2260e2fecd1159740a4a340e52da78e0d0b5b7204806404dfddba3140aaee55128c67d15f7b9d359004a46c15f5a9024b3c5741860057e1db93050666561419f21db971e3a6458757b0720db74d083b6fc3f677cd943e5ec2ea050e203f2241d0b8651df299e5d1d0a25fc938935ab5bef62e80ebd50d080bb9963ac46c5f086d360d193913293601d18f8e2a4c3e1dd32355c92111df445212f937aa94a821f108a7f624f730400ad3d4838d96153c518caffe7b92d0f64133765e6f04cebd97a64b80ffd015b656a7a3e7aeb2483bf8bc7dd4f5f8986ae52c20c999dc9edd573c9cfb516865907f6f5fc0c4176cc1a159e523ae9d67e771899bd5071f68bb97197c20a35d35491cf1bd460a1a63e0dfbab414086dcb8434b36a94c36ba403588cf026179609cf38d68cfef94742a34caf07fe0da6c1bec9af700b26ea1db810baf7ff8a2f0fb26073ee41c6a6657e4ddb0b766204c4c65fbee3a329f4d885d9e170116cce4e441ede7a02a6345d46c6580135739b4fd9ecfb2fd5f861787cfdccc5fe1334bfdc36210588a8e655e14fcc6c8df2d89c88b162e22297b43cde44e2dd6c07170357733a3814e08c55032a592a85fde5e9b16535444dad3c73ada77dade134fc90b8ae3dafd722807c8011ef4a94b3e8584c00dc36174d234c57381be86cd7cb79e816d3997170a2524fde460a8ab814bc8d41287a2d178b35434448c8e4cfd9291fcf83e58fc56d86d4ce30882833320ebc003c5cc6230f4b8847ab175311f43832537ad181734181c08dff18f6eb0fd689bcf074817883f64b3cba0c01379a673268837749a7c05bc3b8a1696b67561ced492c7cc8d3a6605434a47477581927c8d49b07bd0ad50a3104b2bff4687688db972dc6737d372d2c9c983ff27e4d80b92ab8cdf30170eb298d2756b30f79ccc0049d9e71632b1b32be022d0a08f4948be36673d9f7d88f2ab23b89b345ae959906fff400eded03875f39faab7127233dd8717b3a705a8ec6208aca66837a703939f26b72331482b7e1191ba8db3cc32be857b5db7d1216942b348975288f619214b30dbf62e84bc5ca520c45c145b44201b1d7c420306281f9c7017093c09c8515f6906c0cc776ac2d64d8f92e010937f779e6c9853415c087383553bbe8ab8ac29ef3daa83e0ee986e14b070d035b996725a564429f630acdbd4ef87a1db09b71fb4414a21ce76123f647ccea1598407d21bc5fe38d3b16277bca8c5d89dc9bfec63d57d02d851666a223907c84135b23685949340fc4b3e5af27492884a20b24536fca8eef0e41744fa9ee87d16972729d6e53241988e10ff09ee01acb9dbbe91fed3463e8fd5bec61e50513d2260b543c23653e0cdfc576f3f5bdda7cebe6d734e14b173860fe334ed7e3938d0793216ec646029accc668c67a89c8167f7b30e69cbd1b668c775c49251e087461cf229e0f9afb65d38460aebc5fc4cf75a0d149117bf61a4c9c1dd4e4a45700aa1d3d74ec9be996350f988a372d3d7e2cc5a71247b46d6e20f9e59f8d0cb9c2e745698d356c5d5813fef4f499d6af61b03032ec65f5b479553d1a267f08763795726c71139d0943f0a7feeeba3194d1218dbde799f4531c629c50d90efd4849a616f131c0a4e3e3b4aad86e143742a989bd8aa19858d2814e0356047967de595fafa6877332b66695feec06932d05a2240296b693c8a3eabae29519214261146ac3a427b38230922b129de48ee646ca4c601c9285f69737fb56c09dcd221f835210dbfee0395e90e55e2816a152024073a2df0199da0b7720c738bdcdd6c536f9406fe007f85960e10f5aa63779b5cfe45be0291e7a3cd7299bf2628bbd0538aea5252018569d41fa58e3b563297e37198a1c1211a5931383a01e090d9391b41576568353379cce2eea6a959bcd31a6d0fd8f51cfc5bcdd919636c966cb821f4f523c706eac5dbaa90f349e3409c5bf18b4d93e31833953b78c1979da46a784c792754423df2eea1edae268f27a8dc4622f5ab17bfe13d9dacf5128df7f41d4e698f41fd0d8d5236e6ad29b161124f821bf2dd75961762618b786c2eaf896afdf3f4fcf3189199d73f2dd274582bceb3be997ab8f12998ed9d9ee5b498f62654a69ec2ae05ac4c02750049ab699da51cfb00687ef245d2d92b029ae6dfe719371371f9dcb8be203d9df49a08cdd2486e54c650c74b7018a1c63e0e7c068277178e256460c3865747d6ab61c9385200e7c95aebb87bc9f7904ae198d10978ee4966697ffa54bc023320d492780e02e5139cb7f2ca9dba02f4599b11b89b4c583c27c830ea745ce7ffb4a23acf35efa5b03dc42d59ceaea691f3d9cea38e196f68bf50bf76169f313eef6f294eb7c8139eed09ff597774a496117110f7a7a52d42f871dffa2f3bf76957c9436e4331058e97f065137bc371a901bdeba5a0b5d4b0d84a3ac70c36e893531b5a4621851e3d2933dce9eb234854ccfee7c2ee6cb77abb88bb155a6ffebd5ef426dced57e8b34ba3ad7832e717862152a0fcb0aeba8823c411c6637ddbab380a9146e74f157b456ea55ebdf9bcc00a03e98a6f94be77e2920e9626e2adfa4702d789d26108f4f105f23075135abc5467de298e22e9e1c51b891e922c7afc63154d395ad9ca93496445ba613e2adda63204588df54fa2f6095f9b2e2aab68554c053c29653357e6f80a0626032f48ca6b5f2dee62bb19177d526db3a95655804d610583f8424657cc213c9adc9b2c851b58ed0f5ce2e0155d17b8735c28b62da95a7c40cd17a10c8ded6030f67bc2fc1b23e3f9243213ed14b1e6608cbe1f272464728cfe81a1249efc4eb025cc08d73eb8c46dbfbc19c7ddfd8ccb98bb726bb185c85027c41a24a091ed100585aa0ec38db61dc6a4c7ff676c49ce591b7ef8cb2b61de06bafe28d1f355362ac9b63352fb28f274d5b9565c07a714d13f2b2b0a68a1c9044e69ec70258a29d3f66fef007f08391e934219f3581a0ee402bb1c3f873d6f4463929ef87151fbb9de98a79f8925f2f9974b180555da0b1fd1c8d13ff40a40f3b80cf96ecd065a79d06888e0cc9ecf067d9e198892f6f348c8b6be82e8fc1b104198247819841163db7b415f737d11c698b791cb8415f27d5fd1a014d5105bee3184eba83f921f35e72daac3d9941edf555eda16025d5d13211fd77fb23ed0ecb5929fb20da1b54064b44c0216013a062222b49ae407274958ba9f6417b6df1ee9e12197de3f4b3c20d31ca697fed0cc44c2feb80e40218335b2bf4322e3a895111a5df6728bf30e51bc34bdb9669bd6ba4c673144e4290925ef9062ffa6b456ff604aa7eb9965b974b0549e55ceb679ff85802b8df50654b82f679997b5736b58d291807e25520dfd90fb6ef9ec236711bffcb7a3ad7f6ba1db1d6d7e8351e426bb2ebffc64ce5e12a279a802366c0db559027cf84f5c9d53cc2ab09e3da5b2de91c734b7224a5239b69f8a956e9ca8e513e58b6eb7ccd9a206286ddd7b1cb2c37b0db8688a4093c0989f537c1b45401b8a53fab88da9148493402c044895799e3ce94734b0a1501a3eea3b7110c929ed51a0f05f81fec98da8b74713cdc14c3fc3fa415c9c4c765853f1a6b7ed8d4791047ad9c9151c9ac066c9d09ef3d1ae4808273f391f78eccdddf81d3f58bd3eed7845b9243e64c456196479ead7aec5db9b456759bcf6eaba43ffe256216913ab5d52aee391ea13e9828ba078e70c0e3194a962505f69b5deb58385e8f3c56c29c78127157526e317354562dc779f4bdb8d0e62ed4c8ca89b1cb65e18d497b09bfbf91b2a1868e3737c9f5578277537fc9714a6c53bc9378e4cac16fa37ff7e9df7c53320d789f5070a455e5c660c352957a871c6f54bc3025d0c7708f3dd80c2d04dc3b8aad5cb6281e9a456e635dbe1e315ff42e75053d9b379cb9741cd42c2ef112ff7566e407912faf7dffac2026b64e7cfcbe7ce627be4449553a9a9332e7991443c6fcb46c4e072b9d83277b81fe1a72c3699cb4180fa7ae51c186d16fedb6127d5119587cf3d4a37155cb4dc57579b118ec247bfc963039c108061f5ff728e014b28127946cc179c4da2031fe5d3cb13cd527aa21d0b3ce4a3a3ddd6256b6ee869842e9985ccb3e54f02ffc1a0c12fec97cabb2e1b306284a7d6df906de5d3c39b8fdde23047341370f7922d4b41039ccfc555f486338f843bc8379c934df4907a972ef49a50d8043483bc0d78ad6ae492eb632fb06bf168a6720077f6a7fb6c314f1c8cc6ee1e8cf3a4a03410e70c6162a23c150c7da6330ee64bba23b58253c598419a8fb4ff5589d2cb328fca2b2102b98535b720615ed05e4eb4758da2398c4dbbe87a8e93a7e87ed0af4f25feebfba1e7195bfeda4cbad2ff81240eff0c157d325063ae9b21719d20ee7f1fce780cecc1d47da53abddaf33e95d756a176db713cf73387e2db7919707a711b57677ed79f1c5e66b23127cf36a317ad1d7e7eba52ef4c0f7cbf5321ed2b0cd6a60f39b76aa6c55300d159fbc8c3ac4879d70d24009a28882eb8fce680939e0b5b88e8949259a0c74b550b05680a088a0c3dc5ff19bd3f5706cb426669dc7b7a1a7b6f59d03a5313303fed6486d3f0d687a38de3cc2de2b15f859c3e3bcb3b686da8757c1374e6c5964fb6d17d61c1ceb31904117de7623d342df9c09718541119cc160a914e1d5f28c88bf9352df9bb347195306b8743e1ab2d82caac5c70e56212f0fea09429a08fd0706348fa38f1558d26f672d4d14c2d9e415a5d0e7015f66e426cd836f2fdde7b7663bd80a0bf86b1cbdcc27761466fbcb36e15d7cea1d9fbd32edd93ebfe62d9781e28cd6f23b578e2b9c3fd2ba054178c2f8ab29e2854aaaa9e789d95c2bf4c254b4f0903001b00823e79caab894c5720e673f56e404bfb877c82872bb0eed7263dc3fb96abca3bdba817d0538310290c98419849c60950affe4a6b84d37ec5f58f5815efa12fb524798af56c696e435370fa8c723947c7d5e5daaee86507bd908082a67b868867d66f7c5b4698802708fd0a2d00234b1fd3d3c50309568711d4be1aa831d05061c94231cb88a112c8e6cb4c2026fc252b39100ab2d384e54b730b137a54d018e5960ef4d0130cf6231c36e1910755170c77e0fa67b71d71500b390062ce8511b685a1b8a72ff43523d97fc56f23000c820fb97be4b031b3e491e9ba13edffd4dd63d9567e718ead717f7e9f71dec372451ee22887b6eb0e050fa70d04a4bcb9b15d94479c1fd80586ed487472e6532ace0626cb7f4f11c4046d76c6d107db8a97dd61431dae824e18299b43bdb3c2cc4a721ade6a007b7b5624357e265595cd113552c9525ee575f39bd2f6121884b378d48d50af813e8f1a98418061d670aaf2a9598c798f0e4a834056f964318b4f0f305b0ee6283e960140392c5022d3d0c73303fc8b34e355844833ad01b5c1a48db9025bae15946e0b19a7141df339b9650a80ce13b47bdfab75d7ecadfbade89d8c7de3a523dd437600848d990b6db0dbf3d40b79d06a7bf876680770b58eec7ada595578cb1e1c7d4f327a61eb6f928784ca8f8613ea50a25ac54ea7c3c745f78c1207c23fcbf157d7fb15ae6924e995a1bc101dd046c63cc52e2ff9eb21cdebfdb688523fa07771f28f4cba6bd3fe82f80d34379e1d017da5cedcabd0a88b14a6b76e9cb41fec14a72c3230cf4e41311dca7b5479a1c98a8b06bb932b7683893c802c275c9002027115a534509cd421a701892300ef3f07a8ed78bf240186155010609d39f87ce4ed8eaabd15297d0af4fa353b1ccb8a68348f03bc73f7f2d9b8d9db4323b3e430a3f4fbd72ad70e10fbeed6553b7c499ae60f4122a6777075754793d058f326874cfd341f41e82029bf997575015ca5925d75717427c7d6f84bb29ce5bfebf1c2ddcdd793a2e92f63cd5c1d350986009879553724928371c60306c4d0562d8269f6e7f86a8671ed7fe09fb2ba82cf4e955a4fed8426d6039e9f4495b72804cab9e557ae41e8b2840d815bac02627a317792b732a6cfae2789c1c4f222e9f5c02b3f0b60bb02b7e3d70325fe50008d2f69561862fdec58ba68daef3644c0f2233055876f28bcb0f7ef78b41b9233a39b6557540c134c6bacf8a333d6415ec8a5334e1baa0e0cda3b0050e96091a34abd5c32475dde1b426a334f8911e561ad650f0e2e53853423054ae9810ea5b8395588941186bf4e497768c255c9526b800e52ea7d58b3f83be564811f01564aacf0535d7dbcca5ab2ea51f5e4ee7e9c0d1c151ab75bfdef0f2cb7ff43a6f2801ee36b4b9aedaf54caf49a829cc45117a00a6d0dd079e50893d6197e7f68a66c15e3926d8a9a470f6d5350a56ebc1ad174732ed29122588c9051ab1c7c13614398c164b9c255c5657e1e827394e4806bc62030174bd5f1bfb89a125c62b93ec992db0e455ecbecfd09617559bc30de041567c90fda6dfa73c7b124dac044ccd7b2637ca69e5f1bc4c2c703e3e8b635b85624e272362a773bf38eac8499911c0b870d0f7e267fee8cd7172de44dce4b26a7c6ed5831ae5cc8f9f8654520ae4326a7699339ab16b5ef4ea5e8bf4cfeca9978516a8b784b374eebe1aeadf1063f929ba5cfa02e0f6a680d38da0a48fe65910321f0c68d4ce9d99c034dd4a2fc60d887b332bf281db152eb39907ccc6e7b43b794bb7d5ba4ed1905a0e0732f1be980f84fbcccc23ad4e0c551a263dee45c7b1c66193eb787e8ad8d48f7a97edab4f8c008910623e3c524bff9d2213bc26e37c5a6ce24b88c16dbeb80208e72c4ef27358c8567000a4ee1a381aa7cc2d990ac043eadc9ef8626afc5942b42ee4572a89a0f1e5f6aff9a88cd80632455e5c7a40b17f1d73d8ed45707fd4c3b72df429da44b2e80024622421a096a30a9a0181892ff11b164af4f84ddefbc2241600ad833a2d6de7aabeb1a74e5aea47c19e6d63e7c0d205028e446e805653a4daf627e314eb3edb93d0673a63728bbf635730e6e618bdfded5d61159a2cc6fceb2dc7bdb3db7185f920349eaaac446af16c820c42132988b8bbb800ece575b47c14f0e0875440956d22915a11952c059f82a9d4f3aa4f135451a02d176621d1085b030a212f164d5f56f3f707ed963d78407a5d8aef7f2cf1d570a73c6303e9c87b9c79ccbb85feabc318486b8ac06ee1fb90adc90f2721919ca1f3eec41db8a072a85d00c1a3cac6e4369244fa38e69c6e75ec0ef1d30f05f82be2bd575611e42983ca34436bca095e744c19706f2d2b1f6c1c42a28a8129775810ecf0e533630f1571c7be8b49cdc441734ebad2aa65656450e4884e16c2ceed88008fbc8dd4ff9872b5c48fa23931efa13fe93b62d687c3318c83a4f6b005f365f30f5eaca6f0ce38031243445c65fdc1be7ec5109fec0efe4503938a3a0c8ba2deb4500299f748993735cf944020ae13be4c05c126cd074ca414965d008908ad92711e2030653e6443dfee6f3d4b10f5e8ae7c57a86f672b0db659b40d0878170d94118e44e8228a1979d08f94f3c88bc67a66d446c1d12a1e196f138bd386b066a87da434ec4b5debef30d7856e8073a33d7a76ce6be64ec02437897fdc4a11645cce863c6781b831980b2243dd4b36e53f04825bc83bc069acd5ea46deab0cd9916a34a544138835534ab23fd931fb26f0d4e69abe6f9a6bf3e347dc7f9b7679da15a4a37ad2f7d8be7f6e3fe4aaab5e42b4146df266373be42447012cf2b1210e757d179a829594a310b4c4b590ef5ab9be3467596c8e00bd5be0106c0b06da50aac0cb1450ed13fde4a9f3ba7ab6f1587ee6d1a611b169e175b7d625c0b47633081f7b6cd910381850482b879e0e6f37a64bbae739125e502961ea457963ed7b81d6c8136ab488aae71801cbab8af29dbc54fc1d9c761f720a1216f20da811ccd16c093349275798538608b8677b9a52ad956cc3a41820e32e112980df24ae5d75c853f71602dbe48febd55e29f416026276168067f0de10f542fb84ac68566eaa2b2515675be0b2438763d83ab29ce45eb17d8b1c8c0c114093d083839db40184e63b500f3b457064456e3307da9b91053112b90c07b33de3a0e3e0708f4887314480cfecec9e29157466055f10a33062956c4da531fcc59f9cb58a071f9da5f1df761bc0829f9525b80d3ac6ecf8eb04a0b2b58285b1407bc2cd3202a8a76872dded71edd1589f67ee46b574b7434f0ff6396ef8bc229b96ef70148ecc7fb9cbf3e47eff70ccdb5c0b3b2fdc77bb806b7cc2dd0f02195f6d8699fe18c782b386227fd85f1cc7202e20ccb903c5c34f51e46443840c2d24510bfac9da41f0fd4461736dee27b4579f5ee19c859678ac4b1df8b7cb1fd410f3209a10dad99f40286237fcd4f45004a1139a044b8498ad71a5f6820eba8bb6e7e8f18c912d2ccecc072896bc58e853c4f1380a14645a84e51b2b3bf98e78bb11fe8148bc667b1024c0f403d202a353e9be2eb93c1062c4078de3430511bac13085e9f29fe99706e2d71eb38bae9a4c63d2cb85a0a82d91497a3deae27ba3a8040a774fb447ce3aa9bfe38c4fbcb489323fed546945f499c6a297b303e49a5a4a977f44db5c846c0a85bb6ac697e45f92b53782f3020b21c55a85c88553830426b4d19f92a3730804cb4dd8c1160209e29c756b23ef3dd023fcefbede10104186e69e09f88fd60f6fdc57750293134399bc9f5d9e6992017c8328467df1fa224c24aeb969024a099deac706b66a2806d95c94efe6a89a098311d44915659cd69aa710957ff59914cb15acc9bd4435d92843bf7e547888c11ace521a18dde38b8128529c1d4790d24c1afc603f3a488991b9310a43049c264c5db23359351c9a3cbe7bde063dc881be092b89063059ba85d8a57c47b722fef8aa55c8ea3e360428f9df8b61df42fab37be627b98928cee76a2828fc2de8dc97672b7d43a60bba3d61dda693d0b7fa9956984193abfd7ea6ba373174b3c37ce63905efc4b9b5687e01e507d115e9d9749c381564108da740029a9bcef1d6125b6629e3904e4ed3bf4910e69104028acd87cea966629773eaaabfa13bef59dae42e69297f3de5b9a0e1208fc87eaf9deef96dd1181545a69938efbc70612abf2db344c872fc428eb0f4905c8defefbf85304348b10a953f94c28a390b093e715e25fb9014a14111633948a63366fbc13145a0b3421c06f53a7b1a45c093b0be28fdf36fc7baffbbf346abb741d1fdfc68fa1d38f21476f574cc80488b70a8663992f3aee1e60b2a2ce460085725b3c91edc5224ff19a9baab9c6ae191b0831b0ea0397682c583a0e107c7945f7d033f5a11f98b98208cdcc7ad5c20ee5ec59c12b064e4e1fcaeff073eae9d44e7e0bf2d34344845da36fb134a37eb039e71d0a8b69afe1ce6548487a5e373670a2f3fb6596b91dcad415035e39e83c76e833c3b4f86b58b2ce47cb97d902f04188cbe9e227be99b1a1125709f7f7490171289e388a09a2da2c4f709c79cc4bfaebc4089a7e3bbbff4510981f4f117e5e8ac95f9738b236506d80f6536ebe5484bbc8cacb38cc310ca7e974c5d11dd3410f918ea93478a2675eba9f71e1e2f39028289c932f68df5118f54cf5233431d364c6f56106d687ee9414c0bdf1bb4272eec16faa715d729818fa7487e1d8c24bb9b160435ecdca71119609a0e05d827b60918bb43a435cfb96cacd45ff9fd6f6e738641d836e74f11765f68ac45e81452ab0c64f0f0aaef4868692ca95169bd5d8c6f5579732121bb9afafda46e016fef6c749bfd42b669ebc62fbc99b4448dc611858a64a8b9cd2192731b681a495678ce4fc6bf85f15be7148fa98a863513c4e8d2cfd8a4786b2b0a37e62eaf5e280a5ac57a5366a5c463ef10b9b3d5cd17943786ed1cd370140f4f8a2408bdd3a1575dfd33449cd4c1b5479609de5f1787a0c7cf3e45cc46eb4c32ead5d33b3db7ecf33a996e508af8dc268725c107eb4d3e391c2e0019ef539df631b0da9e1802e3d07da7e4cce69d61afe548912327701ce3b1b2a813f19e001f8e698e68960092e6067931cd809b5c6b4ce71677fb2f7cc2c2bba18a302cff2fccd23e6a815f2646c80788335abb67f9f19c4cfd18af1424d2ffe25b15efaed5023848378aa2fad0c09cfadbc3c1bff38c3f8add7e1320486bbc89cc3694ae101f32bea26ddf52a5e1ea4aeaff6aebfb1e1a4aabf1c91f049c632ed57e7d9410d0e823b01cf84f46ef73561286786c1f0e87d86301485bb772024bef67c93a4d467e1ec24a227eb80e782fbc9d8e1c9369bc04f4ad13874c4920c7a4e5fd44cd811243aafaa7937d7f176bd20de91e41a80985aee13ee4d9cf776519bad2377a26ec35d4f6bda3240a67da315c9bc48f528222cb607381ccd37ad9b566a38011083ffc433d070eb12485c4aa55b3fe871b0b9704a7aa46adf36613701920bef1fb71f9795f7f273b87e9f205d6fba74ac44d6084fef0c0c79a9ee6ff555b016638e51569684c7e9a3d13d3a6337bd0137dbd8875a6d811c8e98d33487865a156bb93cb1a86137ddcf921e106208f28ae157e35042640d73f15df800c54d4d9dd78cac769bee700a05dffc269ce29dbc03a4ef979374514bc61a8271045a50bb5d5cfa7bf2ef3dce74a903fb6dd7f8942a7e43b185aa8f3dfa390c1f47dead53b021dd1d29a12d2e08c00b6e40191cac476ffcbef92e6ac22562bc0f424f826792b5485e43708b0ec78f6a61e52dc6810ad81ca8b73a82f20359d74833835222dd353cf481c8ceaf0447d941539e1f3b6a12c367c01c28ce8b4f9c062d81effe2280e20d266589c3c8142eb263dd7907899e28642b4ba10f64f5e4f0dbe0c8253c31553efd0e8f09371bb79883d6fb868967ec869f8f4c9c35e1c62f8c78c14902cb89c3bd48cb93244ce1781b750e51c025c592c1983a1e1b5c2fb2667c03c6d8d0c044fa4e7d252182357a823ef590196d2be4b1f8e994b996d3bdd431ff603e6c956fc986a59f16cbc28690253f3a84e8e7a2b4557a2c457c3d442bbcc52eef637572a17101349f68b434fc7a08f78499fc15cc58907eec415859bcff419a3b824b60661b2f14b7734c0559e86e5b80fb83e299e0766b70361ad7ae6210c19a1b7e26d7d138cb65f413b5356204c46d6ef36f91329855f8c0bd041d91a4a9d8249d4302f901bbdd3696eb81d6ecd9a79a5621a5d866dc1175d9a9dc20d47922c6add36fb5fa24df5c1687237de27486e8f501851d7c1569ed4c08742972e124a097c661e5beb161695929e2401c79e7cd49e2d082da3ed04e401d7cee4a7ddba81029007e931e2d9621f672f832fb0c60d68fef7ba411c4a6f0d0700be2d0a092e7a377277de649c698c8f99cc7050e23ebd4820493f3cbe76be637f8023c8836ca6a3b62255ebfd0fccfe7792d8ae16cf8b03b1ce82ebb9add6beeb3dafcd97ab2370740ba7e5e71330845ab4e9e7daa3a58325e74c4aab5c587eaba0527b0a6f240d7263c523d48532f20378b3a6687c3bb0ef64742fe43bc8124b06001dd565dc236b3137109ae96af2ee6c4dd409879c11b76e5b581df40dc0d11951e9acc86b99a416b7e6920cc67f2ca783f2c63f9b5038c4869ec68823ea13a7e6052805705cfa75bfe7d184bec2197b9efc31fd1b876cae8ed1d46ee850e51134ba63524df94327e5b16840d8f68e74464c93cfbc64aace6ace0755dc2afae946cda1fc3496a1e88f485841b05abf307a0c2a73f6b166c1248bc9f1a796aefb714025869ad6d1e72075ed436ecc9d9865e1d857eb8c914b9c9671c8bff33e73a7917e0eff939c6f25ffba07ebd9d9384175846fde9b99067450616275d3eee6c99d9bf8a0f99a504cd0303b981bb04488f3bb036b259e74480bf1332393a33f550baf2b4194c2de60c23f88b079599f255927fa65021e97f63b64fb95185bdfff9119693fc5ab998f6d9a00f9081c360e49f55c57eebf0f50feff983b640a6547af1931b967d915db39782bf6f950763006100eceb6761f416e5c3e7ca06ac6e71e789b2d71e5d29b63b802254800bba303bc8eee9d1385580cde8952101e201a09d9d607e6d38b7a012a47f217bb9d2d5b758b6905923046c47b5a569721dbe0d7d287d760b570c4b4763bbd3e5fc2c3140d45dc6cf17e0387ebc5934669d23bb3de377682b2b97ffba5e123e1b8d77417739f9a27df2ddd3d0b53cdd6a849abd1676933d7eed1c0b22623de842f89093310e3814d422e0043bed77fb1cd21fd5eec4e0558506c9bf38beb059f6f86dcf3132033b61451a9f103190931a2d88191aabc22a96de279cfb1434afb959c07274922f3de3717ad23f25add0c26bbb7826167eb8376141aac18ecf7b164018d116ffcc51a41145c8632a3bda1c05003a50238415cdc475ce941150ccb063ee178e7258afe9020e1072653e8c2e83ff63fda6e5ce2aa5d1b804bf0b95e1316308671ba5ad7d3d7a97a543c48fcf2bac8f5833af9f9a5d16ca2b3987e85b24ef71ade239f151a7540516d5e74148e6cb13032d72493ded5a8289cf010c147ca0d978ea3b614356c4ee74b81d92fa6e88142da23c18f498f215d6f61ccc43737c1831f47d90c325c01d276a6ff4961003176b4972c194be3c8eb331327e93f59c8010daf12eb00662f87ff1f1edb1676210e47ed12b9af234d580a79fe1b88682a94525e4d6dab7bbd2f0c9c0d618051b9098a13fb2967ecff64cd679b7679fafe9e65c8f3cc9ab92d32b01a3684c74aa151eaec1b2e7c324cd0ef95ff305683df46160ab2177010682b9d623996f414133b7a47241afa932a8f2aaef1e71a27967dd7c29a259155b84643e13884f58bd530f1784866e866c26119023f69000c25597da5b82834ed9d95499faa45367488ffabba35cf1a3845575773a08ac8679c8ac25fe3ceb206f71e63ee66fb8be6445fa8ae888a2fb736f659f2aa0d2f61a9d6f63e46bb23c7a28dfccaf41c31e66dc2cfd679c4f9407e22941e2afaaad138a876214086674ad4ad06db4ea26fc56e0bc9d0f15acb6e12f1e211cd7c798a3501cfa67ddf5b9f6362fea32b04ed88ebeab4ab230455043b9eb1c5586f3935d120dbfc96fdd93066cea2765ebf0332380383fff8d2037f41ffcdae059cbb90e9b5ee6a1c015e14bc99f14e798abd74ae6075f1af84d7fac8b3d37598fb4fe9fbdfe5689d1cf8674e5039157fcb0698de57bb4059fb35b5c4516b1ca7fbce564527529d10c191dbbe041de448a4ea1b813eef3ab7064a5bc8848eedf7189a26b2723fef1b5a99415d97ddf4a08773b6e339446c6d68b862d805dec0d32468bfa77d36fb2e0f3e015016b6709a608a2977832c85b9bfa3cd524df608a50a4460723254a90f38922e687f52471a4c370da07a79bbf192382364fd81fca3f9b27ef2dcb4ed8fbd50dd993cedb58374d532d17298214ccef3042db7f0e5ebc7451013475affcd04d1396c17090277593a7ae3614ae7a12172a107168854a813153d8312a6f290966d84a389829684d224e88c41bab0f98b0a8a249061efa37de28018bd38126e1ba90f61736ee8be8a2ea128094ec5804bd33a10759f0421849196037a30142f1de77bd28cd2563edd3da75a761fd73b4dc5aef1175a3769383590778337712df93e46b832ae40f63490534afe946b46a573af9f13a298377ccc301ac86cc3f4bcbdcc168f381881e1773f120567f527570ed15a8c6fb18f757f2dd6d008aa3d41f2deaaa01eaf24b59ad53820b91ff34d23167457b5847d9af62fa105357f298c7da198c3e96851cdcbc9bada59e4ab40d3c0951d198ea00c3908c56ef5174e14c84ac08dfe91210f2de94fc3312c75acb9acd8c2a00af89313e675dc24b377bdb382049507af6a793857ac651e224cfe2ab7fb5af5863cf3fb89f73a33443d5833eb71994a7b1e1b340f32fc53e8c5549a74780c4830549fbd9d1f63a213bcf4bec8c57a05fa79c969aad1c1082bdea9b188dc619205ce98b245c5889766670d70b08726b2150787f9ffcbb65642262dc4053e4b8364cccc66aceda35675ae213f5d2901b2b73cae1c9afb67260f0bafd2f84719b0dd08e1ecbc87e7c413be6c660b4fd0a25ac5a6cc84f2ba6e329786ad82eb7206e39acc2c07e7c18b1ad50e2f3619107bac81bcad6ad8fb6ba61fa5443fe849167e7c27d13ae8223a0ed9b579796a4372387a0eb0b1dc03119255b626053a360bdee8b997e84d4afa7c8ee602e53c3dbc3496466496e1e9d8fcdc0f2f0ce552d86634bc1a465f111e5853d87e67aadd2e9fbbf8ca2eb6c91b55db61ddd1d334ee4699138194c554f325cfe22972a2a471695f18714ed4faa4a36b3c02dd541aaa0d747cd49fa256690e4ee12ccf4490e4ad84951aa76a9b910fc9c17fe6c7a7084cf14d661f4f9c9b7778472a99ee42b95c0b05774b2fce073e9602c9261029e7d0e0bd08aa5c115c06eaad10f31bf4248086e25a2a56393129088dcc02d34e2382caee1b83cc1cdd2f17389141692ba999a1510128ecaea5405273098e5472d108d8e65b8f3b6f67376088d825fed8b7f3fe8d180f568e7dfe5cb2dbf07d8670778271cc27c1df3fd9cca6abc3a98196e5a922afc640917fc1f19a9a48f7a772b6cef6c6e51305977034ba8cca02cbfc1c2ac9acf21a02fbcd97479768f42786941326c9149c7eaa9dfdc1bb241a0805bc78fc57a2952f8896442d6a69982f9d02a7dcf1eac840eecc11ee61eec10c7218cf19d9c2c26c7cf95e78ab2a18a9511311636069307891e7cb88a9f3e49c3289cef0513bc643d16d0f447acc55323f283750fd2537fa2d0189c57a38731dfbc4787578f317444abfcc606b6e61e10296473457e230c24336e44e6a19248b848881cc6da9f06b5b1538a3ba8760bcdac4d7f95b517e5bc12afd2f67425cb2b267a4ab97c31cb19ce9eee1b5788f0e91fa9250cfcd092fdc294507396923207139704dd3f0f9b0c1b0fa92bd7a1cf978453393013bd56b6041c5b300da1e38751aef1f47fff0469d2206a4df1785398e5bb79be613147621eb92dad92aaa1d23f4b37c042e5a0dfcf200c7de92a21d2e9c90714d8e138cc2822c65f16b2e8c82f2573187d66ef4e1a9e0de534904f2837d208fe8aab42c7ef4c7f5971418caf4280e2a98b7632bb5fdabb96b313d36cecaf022b7d9d3aa845b475c0c41a64fb244fe14cd5c07502e7ead5f83b730fbd6c87f1a5779e668e3db8e371760fe6b5c87e54a367a574c3b99d8a81030ea6711ca6de76c7e24b3ac3d2b23dc8691613aaa878338a9ae154071dff797c5d385fb4a0ddcd8b4efefc795b4cd2d9d37632f2084b61a243245f24a34b08fbfaed18ca2d4b5abec1990f8144dceb923eec16dc46ca85ed4062ff46271d85770e672a2d192adae02023ebee9664904f7c90e617d390947a7bbc34eb00212c63ec2c42c13bcfaed0b059d94d96c469da7250e782908cce5a0bf0c063b530d2d6c1dbce29716cd850d6a1ddd391e1c2828b6dbecf82288556b23cf67ee41fdc4f38a8858d0b2f112551c27823546f862dc5c60171455aa4a03f5173a5b046a968682ba0553ef8b9777315408a42056fc857ee49a3defd683b14762dd2a1a349839e65ea5bec53c729ad093e334526a9b64df952abaf71c6238485a555458c89f5f4b7753a334b6925f22ba5608a5adec6121463f2d8c9e5b4923202d8a97b966c278e205639fa511c4f72c209a33d4cf6e78a5465d90b6c3195912c29349398517424626b645be0e81ed2e3c6dc1b99f1a78a789a240a3d8a15442f70d285d89edd8787785f5dda367f64c9957bae68b96f03048889ac0eb2a51666e198b77c2525ae6d27d412ce8021228ac598f3bef7dce9ebf31b032abc50131be8082ece720cafa4d4a0292c944e5b593322e533c9c05c931f3c52c2ddfbc4539adc74e01fd61c719ed5ebabb335bf6be8fae63224edd60d04ef5cd8749cbb1f4037cd124b338cdf009fddc0951cc3094e51ef2b79943ae3583a92ab9de03231cae763610edd8d8f432615a3481b1ea868122a9aa06860649483c0015b69bd2065eb694f887ead3eaa29bef13f86e9c1ca23d846d4cd118ed198b34c00f0340d92621f66936aa65f8358bdd6ef3751b3f1de43b96ef7f2ef91c93b6427b44609edecf4b7cb2bcc2efe5f125bc1ec447acfe9ff923dc14fa26b003019c70d7d18b48c3310ac8e22ce2c32c61b1f1ab659bca6d02f6640f4f3f9cbf4b591f34ddfd90c3feddf97373971f95d9e63faf92cffb498de854e0b029343a838b3e56246eaddfe6e9ce241855977f1cb0ad95371118bc231a1b11e9f48da2a007a1bbda9fd30c75bcecb08db3bfe4778cb85ab33f7a9dc2e01193002f4899b38c97a936a87aa466ebb21c4c9bf75ef08231493d76142c72b39f88fd8fbefd580154fb0c020c61e7b774c93f20948903462d8159d6b22de56b60f9dc325f6d0eaff800b16008cef50c8bdbb2a1a6c34a01a87ac5e4898d540c8c16873a2972f0eb0fcf7ff7c057a2eb7db318da7f42ae8aff8c4fffd6b573bd0f8583908039091ece267ba0b00f10f0189e5a259898b0c134cc235f722b074cba41ae2d8c4841289e0eba6c9620b44036ae133cd3780968f89302bab6004c6a130768d2c7486c188b89050732bba207b46a3a31e51bd9f66a33771c738dd136bfae35f5833e7e939ad34cf6f5be696ac544d50896eaf96f0322a1dac42b1297ac67ebeabebf4fdc7f0167d092842b203b4e0aa38558eba1cc7b498865d3e21793adfb49114e7fc6c655560e05ceb0b13136a6574e14e1edb23cfe7619794b366c23664ecbdd80f35697ddd24cf8d2e0c8a7a50d9007a19c609294ac70df450f68015db6cb6accfcdfc0dba386f6c71385400318c21396cf74e4cc95c219352a15fcbda656b646370c5fd3f124f942155e1ffed35b098669677d76eba7a93a015f5d9954fa0adc3d34f2f4b99fab8563e7af73056af1e27e8f41e8d0f23285da3027f496d0fb653f7206bd98b50fbf76b280fb9b7faf681022a8aa558857793c17096bd995216f10ee82ff6e8558d9d9aa8ffc060b4a07d7fd7837f5ad5af14e03feac52c5c693900baa040349fb662514d0f2d9da6985654ef542fb682ad4ff7588808745a79171d544a48ddfed98586d9b15ac3ee1233aabebe1e1d038f812a1317ffda3f88fdc0e968b5955498426c8115bb2b3fdf40b3fb108372c3cab8d839222a3ddc94ed7fd9161060295df476c4e74bca499c5fda6383e572832e425bc517e36e97140525a336327c8f16edfc23955c018ec4bf0da5026aa4088709f400c598893f5e89a189eb6c7b8268ec114c932fe2fbcb34b36cfe1d12942815c67f49033d12f95bd89038533beeae62cc2505f52556bae3b3cb89eaac18cdd0c03fea04215ae43458380306605b5235a2189d8e81e252ab85d8175faf27ea5d945c20217ed4b7a2cb63145e700aa338b3f8566cc1d542b846646ca502a656f283efbfae30511863fd3ea677677a2bb8e3c6eefdb0b145ba2c5f42556fe5dc17cb0b35dfc0ae4f829a982e3645206483ebff8869f996545fe39565e29a05d7d9e285467dbc621fd9bdd18027025db74b7d1b6d3cacabceeb51da8f476a80aa9be9b19c55c2dfa4f981c8c0f1373480d1e6a643aa380dc317e9decb632d7c541c3339ef39735a01af7a43500a7ccf250fedd000288fb651ff158ef4ead3fdd75479741fa687887edf05492fbf4c36ca1603008555ffc317fb6fe5df0f2ffe67a3158bcc81667e593f4aaabae605e18e3c2334cf5e5352e657da5275cde2dc85d1a734f8bff392bc7ca96791df99b6f48e3feb47b6a7f34d10a043cb789dfd5fc1df43796f5c9a7a03fafdf61221c97251ad805026f45e6eeb8a2c2c5f9afa416156506828806280fe86f0142f41876a9b126d11d3c891c494acc046f9188dd8e40edb71e8082f5e3122152faec87a5ddc3acd6946209c70edad638dd49d73be015093591e7f2786ed5a4b414ace50b8d2a541f17de069ab0fb26a41e408c44ebc53a0665a871274f866c22146ed8d82bf329c6daac78a52407a0999c21e38eb94180cff546c1df73ebcfc2944a6bcd212004f97fc2ae4db5268ff23a144885e823cfaf3bd556c40557fac31ee423a50967d13ba4960d0228db6b678fd9e391ac01fc94c6c1c9abc6d80e16b5a517fa4a862a86e021ed5bc6b525ca50fdea6e37458042002c743b0107ecf02b6ac837ea5cd6c5fea2bf352fe9cd4769d73ef8bf390c1b12046b8a8b454eafbb3a7b457cf0720438b7aa849bfcbc6cffb12230a0a2cce887f1b6c4c4d9b3864a8d839bf5e75bdade3a0230e53e7739c5dfc19851cff520bc1826b988102c5298e698aadacd37804f59b4e0f61407373437f60a79e2bc67c9f0184a2ee055553d24120e379eff269abf79f90f477c3a630be7b7bcd2c2774454df0c0b2ff460f3dc0406d0e4147187f23d66e66761f2cbe9c22a2404945aa172a8dcc634454831735719a2bbd322f583549fc8c0bdcd3ade5b49956532056d381aaea2617a3f48b4f76bd7e3129f75216118f79512a5b6b705381d300333e516595a528b37c81f5cdee7bfa5bf39a860fb0806e7d4ea0252cdd7ac448956d79c96d000cb65b3b4c05fe4de0c5d7829235afefcc5fb4f3d693134a53c9dee8f9f9f7c6584edfd3ad8447ef01e026cb92aa255993a590b73118c8df5625f9f192807b67189b64f800f1af4b425f9a38c47cecdd69fe205762b2e85bbd4dcbd39499c755737ddcf8f27c4bcce992711394ffce14a43fd7f191460d0bf6a22385cb1e4a92b62116db90babc79cb15ad8241f7be88e659d9e4ef59a7339ee338fbb4917d81eabdcf26573f279f7ca06046099c65dd78dd5ca1b520fdb349d73594fc3d01f5f7f0e07e3c516dbf977e60019d469d8008133dada766013509692aad2b1aac661cd70b857d5bec9fefa7225d382b475c9e97e565e60d8e1a85db2bdead22c8c03661f20ee5c09d850b642051aa79b7868eda4c4176be09d2fb2c5217e9a4457ab7b1dede5252308659199a443468cb538cca8adb27106a28f6bc9a4cc5be7a92769f8bcf13a23c9771729894c1e560c72c6701e9dc840d3c403d77956e8206421e561b426610ed38fc7eef24f8142239b425106597b8d3278dd373a20131811bf9a68e82eee1197ab8dfe4e60f7490d98fa01280c878cbd7b0f583c43bd415d67777c24b6fb6bdfdcc6600af5cf860a0f0783aa631323c8aa44a21ade3fc5cdb5bd77216d2b954227c45b38a2214ece129bb33512889d520d810e8ec9e8db679a47d17c3fc87c4e27963bf4cd2bdbc462cae07f6d724f1c8d1242eec9e5495be07cef1044620e677d2dba749dab7007f735d93a9bb355a731e9d88d49d173401aee0c43bbed7ffba5c2813e673139a7a4858a50aaff525ff61ee41394f1fe4dcf6f991e338b81860fa46480003a26d6cc6a313e897b5a7c677a1b18944f5e6f9726c0e1ff17f4137689cc778326475ff0be81af8c0279bfc202c9b8b7784f0cc4ae8506f0c25cd67c6b28939da85208393ec742b9ca9461680044279860caebe086dad866548b01944b6c476cbab8b484f584595fb2b9adaf9e9adb4e4a4c4fc7eceac0bbdc10ff62312d8377206290122fbb6af42d4e974a82aa9ea21811aac06b144ead456039ca2188f04077f666d5e4f18e946ad56952f6411db4a22e91956e38ea98be44e048a83e1280e0caeb044c16da93f93b5675a49a0c05f6d110764ca6d18afef4db07818f9b84b927859ca33937071dce151c043c111d9a07fdee6ea51c072390034c9bdeeaa47fae27ecc5ec3e2065dfaf8f53fc036a24d00f442832405f0caaa833ec116c4a2b6d7a3ea3cd044a00a4b70c1257424776f89c328d0b2475690c6c1359df432038d99b5fb23e7439f1897e98c02516a3f00ad32b63199c017339c6091c52d00b4edfb2f19f994b5fc780027126be061dd073353acf6b0484236004a1af20c2165bda11376b73613115fe904ce3a6f39717c7b22058affdc940e49e0798bbdc1ae822104b63ccc34b4a2b4a5c2c655b0bc03721169b1c6aa976d9e90b193c548fc38b393be5ee275be4336769e6aa42e6ca224288c741bc5eb5d518ebb36b4b28395f28ce0f35040ec90ce90c2913163e5debf69bb1f82a6dcbd2ceaafa9cf0fcd4400ec67f48202740681fb6022a5f1c08dfd44eef7f993426d100ec838e9b637116880c4b5ac7542e92586260570d2191bef0bd18db7760bdb176265b29de7380e8402c0c512c6e7c4b68bd1e6a3ed27775210793026797aa5bd5dbdfc414f21b8598bf569cd516dd43b4432819b329cee45c345e015025e51cd134aa540105d6735b72a5006663f0809f5861804c5ba02090531d8f5bfdc99935c7445f0cd2be09b1e7f2a828dc5fdc51a06a77ad192d4b3870b3696f94c2d6fa0389e096c25f595259e93ebfea6f89e673c16e73b8327815515d47d28740858f77eab1c540981562f433cf60e100b32900826601704f3ca2d389812b69fcd2319fd5502a4899823e44db0f74110067807a495b6f28c061d2ed613da70152e307b7783b2b819cdae5b3bb882c0c8a2f425b94b5ca445bdd70d6dfdc272f6eeaa1b8ec23f9ab2f3deb390445427419b8c9c4707a5b76a38bcd9a56ea3229c86871b35843ad5f065de791bbaae5115a0d3a22b3408e569814ea763f8d34a4a360b80fe0095acb358e3da0a4ec0cc7e2f48eb5b056343c414c2f2b3dd900a2e599066fae103127fd007fdc69488299f07c256101b024b76e8cabccc0c931609796dcf98c19e875d68f315065861b2cb077da0137cb75f2ad29135e2163a0a636306c26653c79c244ae1bc95bf304c84a0cbc888ea5105be571a3242701ef0b379190901917c9f59c74a089af13e83bc98109cc4d74a07e0ca57809487442422a1de0bbb2925a673d9a6f7020819dff40238ef845e6d0c0e031c67f4deb8ad669b2cfad589ce9aa723d8d8e337b144606e58af341cd06f22fb21a498f4813056bd39363a7f534c21ce790f3aa047422b8768109d48abae397c4e17a89c5b1ff3118727de6d56f7a09595fa61525204b657f5aa340d87782f350038a3ce0cb97721ae8636941cc4926ab15f0a31a0017e318299e331afbac14bac071d74d01b8212f3aff99ce37e6a2ce59cab996f0b9a2a50aecc078907775ebf4479845331c2d17926d55b7cad2481117d64c2a8164a28e4bc101b92d9d4398b7cf6455b9401f1a0bcaf501e0492309aa70a3e4590b5c8cd67ee51ace4039808a680359274ceb3131a627cc5ef46b822a5301d5604b874a11535bcecdbc40c2427eccc8bc40b3448ed14ec4e185add980868cef413b8117abf41587b69446b655562e405d52e572d362824d1c86254749ba9d17ea16f708b0a6465db96cefa57e0ccd9ebe726b1ef2bdc334c79abebf20d3a66e67a4f3f2a3d6fc60dc7e843372037820c3c5206fe4cca07af3daa37647acdfd50d17b5437f45b7a5f9dfdf4fd6af43d6d43ef3b105d29bf9225a9c90168004af10148dacbf31eba49f87815f1c877ef1f013568a0b7011b9d650f71cf0c75eefabf7bfb66361cf4f7a294194b59aa614940c1077837a01a6ba65781ada2a1b730f5c3882a71009b54485886f107601bb21ae334ccb93264895000830c81070ef102233acbc05d91847cb3005dc16518c47deb7d6d542717e2a92fdfe650bb1c22d2fad1c8c26c283c86f4a4914367fd17a00b289bbacd7ebe6e2cb638c0004df0fa705bac2c9af65c09393f17a00b03b24d5b25435717e2d56e7d814b00edfe6a5d22e854f8679122d8adab75d0f2b5df3c108b71b608e84846f4eec492016ccdfe40b74062fc15cf6904d056b2535468075bc38c6786656ba8910efd2fd4a4502129eeba3a6e256510c8256731c0ad18a0dc4b69813cdae4e7022be15a34870a1d5c8cd2b2473b9e22403caf07106c0c9cdf914f0dfe3c1c1fe41ca916062d5e131027c504dfceea166390b70f48e108256f7cca7d50b086b90618066825b6790e39af8b0be8047e2266fc85c301e23cd1b91a62219bede9e899a8cd7aaf33f9b3916fd9c35cc49a9d1c2abaa880638341ed0263ef5b3fe1ebd06b5b3d12e01ebba2cb47ae4733d4a3a4b97bae6e4ac4f3999ecb4c203879765046a52311020f95143848f8e0a1eebdbe10f7833b40936e3695a31def5bc74417400d45597e72e52006845f04e24ecb4d95a1373b69f04b30146ebcdaa27f1e102752b936e1cf0ae074e9fd1a0195fb7476e938f7e2c917ec140e0269dbc5fdcf29500bcbcb5618df0aef2835ac41fefca280d51131468c82586bee8379d03ca52389a6d0300452192bfab15b9fc9c50854708330b6e7531042faf22155b89226252bad5b3ce2183b9dafa3756a09e23ce6b05f30d1048f65a08e35419ef53aac74d6fa63abeba3481c2b6835dc15f5fa414e3ab881fbfae8dbb80a009f6be751a0a51c931190ccdf2440ee1fcc54b8ce4043d90d9e8e56e26621802348c6afb2f590db40a316bed4501ac056546aab32d0ccd6d4485a711f1b83c74c9ac03140f3fc71362b6712e10e0de928f1b34c7826cbce047d6030b8c805b431104c37814023bd6b2a007e8206d81ac6d2f5623678aff9e467eaf1f0ef555f6507b43d59e48ff24b14b4e022e5cf795c4c84887cfd0c4f129a3dfd6bdb3f98da93eba9f404e45f31b66033b7b79f5fd35d6ee8ec95c9078a31f9d7c50bb5ecb1a3da93c5a160645c7c8c2e5430e858b218acd2e9336edd981a7ff813a598e8fbb23dc298ab40221484b1c074def10beb70f39d51d71e83bd4746e731d9bc1043933597cbc86af2b26644ba2a4f8ee3bc444140a2d3b208963c63e020ef69eeaeb912a0baa48724594c6805fdb98e6e9de265cae550620778387a48899d337957b722158a2d2fa1eb9739e466ef78f7057f4fef156202bf0ed2fb690cf64def4849080c5679838f80be3e3e50bda49fb4849df623533687fcbf42b39bc8dd0815fc527261b3e1d2b4e80a6b4f2f48e5fa30fd49a305ed179f329ceb159eb640110c1da06603e54fdebe48c931c06d7cd1f48f1f183628bed66a1832a7a2e6c23eb4c7383b7bd23f91185df28031f756fa8f284500670390cc24e1122704c0f9b4c3419b7aabe237c196a8719bff50d7ac053644dfd96240bd14f5ebd71719614bb5339e5475d2b8a30d8b181b51d92f6785fcd98942ea1b5cbaab45d53af55b036186abcd5363811e23b1901e2d5668318601d120c6555ec40e73e8f45038897a879da857b5d0b8b2104a25da8084871c6ab968607c756896f1f122b332a7e44be3ffa3f012b319bb78254235d200d978c0ba246e00f3c44a3d295399bd9ccdcc385bb51d259af310b4734473db012eed66282ee277588211a32d3692ca564a6b595367cd23a92573441251262a210c2fc75cac78432a16c727464a2edce7588d470849203b13aeaa25355899e579eee90b017d9c6c0c56bb4914239279cfaa5896c80f9d130ff1152ad43d602136c835560854be98c8c0540d5a72b829d052ba92bca4dcf4d9f48832bcb33f62a396f113bf0d0db340eef0a2784672ffa3d71fda27cb842c3318ebd456d41cd8d24b4510a51fcea83a65ecca131335a80573bdf558ced5c0369045b2984a4110a031611156686dae224d4339196a90369b17c69570d1afc07646591850446749a6d108d2e9ae96c021e1be5bd591f2f5d62d5e85baaaf0589476bc5473a2c905593ef4820758070907b1c1a1122be7f6cad640974050626e3d4939e4e81acab794045171460dee07b101e10cd54fa35414e32f2b6fce386841dc6d8f06b849dbfe7b2840588f571602bc07d6ab0c6af92324e2f8e36fc9e337bfefb3d4ccb8f488992fbf012e096aa03db03d8c4ff36f129be939442bd1276e987d0fd6ab4f1700864b3e42255bc93e24e25731657a0916a9038255ef2b945d296df8766d035af39c9a3be40b8ce289d07411c1492022c8ee0324a12ad796c9c3f67c0ca13795329a016dfa60076a05b88161facf3bc879517f2ec4ab03ad99dc209afc248db66581e7f2dedfd0f5b6de41ad2d9f853f84680d3a5bca45304002479d783f42bc78e5cf8d081705c60bfafef714a0eb4d096d545c76236e84c68097ff62a0f2710a9c160b371bd31955c119d57b23e4e78103048a4807796de64f3eb174c29d576779ea97d1b9bbeca53f8a7f118b7a2a605f7142904197cda018b218b5b011a7991e00226fa2ac49ecd15b3017d49c2798f184eaa7f5bce32aa5561f800af4cda5163c7548296ecebf8b36f8da7659b6d85f4e23e86448be4dc6035d54b54ab829c6423b086cbdf5ad94dd43b212ccf4c66facc3fe4db9b482979da4fc35ec1ebc9e167ebdd2bd8b4c0c944c4f47a02b2c436e1d5637940081f89fd90975209657bd8e32cc39b444537456a570574b3bb9ca97458a5f8da924da2b5c377b8c0bb0e08b0b6218c27e58f0a20d5190e28a70c886d424511e4e15c019739446ad3ec8ba8fc958f5f004be2c3732e6c62258aa8b6082f43019d48cdcb39cad76c4a5e02af56ddc47ab2a4fbf88031ff0deb1a20f504e07594a0c91e194d6afb3d17882ede30e89d51acd924bcf613c4483f21d7f2736802bd723a29cbeba1e0c1cec920403760f6f5227b808e89b4bcefdd03926ef96e3450eb3df8ae94833078f2c2fcc8ff1f09c59945cb2bc57433d9148b71bd4e6bf47f07ec5f709b32b12efe1c25b4b8d58c9c20027de9fff425ab5053b389231e71832312b3e0b444b24faa459c4bce057cfc805ce8498efbd3a86aaba9b6fcb7494d43196cd3a67e6fd72c835b2cae337e6070e7aaf2c97d662b9983f7d99e956e4812661226c476eda0c82b76b69e0c1f8427aeeb77b0ee8891ad6c5945583e014304fd8a12067616cd55e88c48b02810ec8e7f9b91ee937971280dbac797c1540282773c973bb067227543fc0cc43f169b10091c372e1a408bf99f291fee8898f840778b36d24089f13d2e709b72b331d56444929bf16b3472d82e4c43b0b22a83876a38b11887627d77332ab6beb64fbcbdf66734263453b6983e7d07bcd5d58c9bb82aace2f6aeb345ff64d25912375304d9c70cf119b093d0acfa5cee20cfa16ba3aad6e69ffd99cf7b2cc27b0a292f9981fa4a2ab6a17de2021acf20ddccb73e655c59a8bd680556fbb4981fbfcb50b117d211690e3e4e8e1d715478599a9ff4145d474651474e524dbf3e7039d46d1e75c64b0cff146f65849dbd23db8e6104f414bd0c8395fd88dac2f0f00f115dd7622d6cfae44e2e94a99974c32380f57d97865362e401bd9d7786895ebf70fbaec09131644e92c5088f51ecaff35503761ecdee105266b64c28ac3cad35dabcd2f5b21eeeb41661dc5616383ac42ba3a38515814c72ccd288ca109bea6b57143b6d5d8212b984c160de6136328065c7d1b78d977581dcf437c5d11b173032207ff1864315c98400b761e790cae372a544f441a5027065d7fcd05c982b0b4377b5e40f1abea69b423bf6f2dfd773e5893313c41c24ce88cb3f36dd6edb60fed086f6e7f6c42eb59100ba95fcae70bd30c536ad5fc462ea65e382765660b347dc61a23b7d97adaa24f487c30dcbb32670373a6f5fa72a23195606405c32e27ad1c51b5702f7b61f641fb3656b8e772349d93df74e9aa3f175ea3b0395c9341a363152c173bcfecf462b7af63a00acb4e3fc6637fc33e617e668f00519ba3203594e616227f2f79090fbc6702ec6f27b76afb474b54a4b1ed9cf98c65360ef2bf758abb10cb4eb902528c30a4fb3334a9bba165bd74122fed4d4929cd24f2dd5939b12c74c9a0fd1c7a9781a345fe25a6dffde5685fc987f1042b145edd946c42b411a67d617e4a84991f709003ca0fc1e04815f1be81ce8199a0f19476a86c84f22aaf875e9025299587cedc17f68e6c8cfb2b4acdbf8aae7eafa8b5dfabd46e8842bc393791d978757a7e21a8b2559dbfeb4810821384e8c94342e8566f89a18390804887d4cdfb86104aea92ca7a696506b682d5012962c271c645e7a07fdada3b0745da42c21be97d748fc810fab636d98fe653794ae4312799ba9b0f4b1a8b1ed1c57e3c3f4c7d3e94bbdcc2b45cf588f4f37494709916f0bfcef593dc9b26c448394d6f9d555be23db2998862642e182561f56466686eec99c2872733fcc9b83d99a30fce15c43e99e14fc67dc4461ff04ce1f370c362d9e7e136cac43f02f7110b7f32ee237694897f04ee2316fe64dc476ce483961d80bf7f54777df7064b27fb09c70766cd2dc9fa7d6b2727d5b90f22f4ad6631627763f0729d5930c9ee439b9311154f03fda0041a90891bd0c8ec999e93043fb0a875ba5e6687f93bf45e0d69bfb314c4ee957e742fce3a45792fbd9d2bfcad31f6481955b9300a260a730d2e248ea6fc1f13f38767d9626446bf7c8edf3871786a3f32ab14cbe7f88d138767d9b1c514cde1fe5c65359ff62e83183abca13be94aba5b4f27bae9ae3947ef799dde5fe1b18b63d982d68be91dd3cbee1c50057977453496137b77d2b226746ec56a4917b4a633b45513fcbaa76d1520d1ba0e27a690e27782960aa85fc72bd98c7e844e4707d182c875b4964ab69107732941c18c1dfa88020c0fb54229aaffc09fdc02b91fb7798ebf59999b4196aa02bcb742662f2245d84012ef7f46ba532075402f919127e988721834b99526c25a656b0efa38a3563416855abc493c85deb74542cbac892a3ac2458df96daa0b7a49a8cdd16b58bc5791aeb42328b06e89013648da1d352061aea0a025a1b3b0727a492c219d27eac781e656606facda8b71591dc5bced878ec102ea4b8552bff43f6dd3eb06b84225e60852541f99738e50e2039a98fbd3bdee873e68bf920e29c9e0092684fb72c81714f479c56a444283ac63353ab32f99ab68fc27fcaf8ad43ef46adac4ec5c7c98f0381cbabad4ae82f58e38cbf3dc3a666fa16b1a9b4e7a3d96dd454474c005e8174483f804e39452fabfc5e4ddaf5587d8b98dacd4d6afbb7c9e6aca6bbc0f7e155a6a79fecd2b1a8cb549bd79e5fe4a717a148f15a679c895ab20580240d2dbd8dfae5ca7c2d669d1f97fe435b816450f57be587af40f707837d46ee21f53d78dcd8d4ae12d34061b0068213b9dbba8f85e35a1c197cc4af2afebd6d64eca974cdf02d75c4d166d45f645803597e480d669f88264b23059c8817cc9b5460f77c01b86c177abd58c4042c59db5016433264e111bda366ae19b2c1aeca359e896624b41a7ef19dddbdbea1c9e69b85a0db2630d00a9e3d4d3bcd225eff724ca94d7c24a8b21ae2d7d081c84a7b4d6057b7d7539d6b54ef7b73e54bc3baf1474209987a59ae4b1fe71aea8aec7c04047f4ef59396c19787af9575af41e62bc4df97c6ca010c84f1c65f3257b53d26c19b3bb72168fe2a746928417f091d7b128a6f70403a51320bf35082a425573a280d4da047e64f95b327cb036541fa134d6d5c79d4d57a56cf80f1785ea7d381b49dc62060246523df990b9c994b11e2b1e316b4006b125c0498fd268dcced5d57d2afb2f1cc891731dae907aa2410f58bde0ffa1e48e3797b3092ca35e788d4e84b72864eeff7535cee8a155d40a76f996198d1ff39b04b49fb7a5555a16c9d13d47bd8e141d8a405533bf00a52ebeea4b65381341f0ff963f1d773c35e1c5f8e59eee99c4ea6624c334ee1f6aa9691d47d140e439022b282a86319693acb8ff9ae0dba759da7d112d104211665986d2ca17e968e83cd4f8f4c89da6e52b53b646d7d87c7e3e6c494486ce044459045e0fc55a105010705a9303003088e5fb06d14304648c31495b2110e8924ad162519917daaf2dd96f48969876449d999929c75bff7bf5e52d283ed72d5aacae88888888a4e87aeac337fc5af0048a88989a594bc86e193b129c12df0d7244d143097b7be861041fc0e1461b6bcc60e543650b2d98241902c9d5524d60829121342ec8c4281180283b7be0600739d8210be845174444408e37d890810ad23043034648403c60d565c16d5270021e41e0c10e602082270c208025028025ca4e114d76d06106194e608227cc28c3000528e5808396daa10539e260e2a7cb1e7a50610a4b2831830ca33764100316a8208d117c200b2c125012401257a2ece8b0818318dc00055e3801c20fd8c0810c60a0821464e0020ba0420a27e0f1060f5490821380608a2ebeeb301905c1c38e3ae45803062628011a646c7185ef25012ca1c4151d26473222a3206ce0608d30bed8620adf0560844e132647b21682889e1d75b081031ac4c0042540e303647081c514598cd0417224bb3412113212bd3deca8230e1aac11031898a0041f20838b2db0b8628a2194b22c3184115216b0f0e408175a10020e5a58b1002c576005ae584010170ff8d823a4c795c70b16ae2bc87040b4818b8c4b0396bc62085aa41f45424284301976b870b06e88b1215483458368064b061f2f081112a211b910a4059a203600a9e1070e33231f31323031170ccccb4bc87acf0612c0973a6d2a23be6bfc945a3da1c613d440821a2fe8c16a30ec8471a7a04debf70aa0a9b1a99152a3e73d0cc90d5683e406d3924614d4d8410d18de7b5dd0ce42229194d0710263431a17486dbeebb4cac8d6a5a1d37842648934744843e6619dee34c6613a238003e3e2bb7f7404633c6e23191901d0083ab6697fd31db7bd67e9f19e95c77b5616a860d92102fcdecb11c3c1b66dc583c819e79b6dae99e699658e19e68c31bed8e28a299e58e28821ce17df7bedad97de79e58d17de6cb1bdd6da6aa99d56da68a1cd15d75b6dad95d659658d15d64c31bdd4d24a299d54d24821cd13cf3bedac93ce39e58c13ce2cb1bcd2ca2aa99c52ca28a1cc11c71b6dac91c619658c11c60c31bcd0c20a299c50c20821e402b98df4b34a19e97e7e1625666c6a666a0a801500230086d9ccd8cc10c0bac27b9615a8804614b0ac8d9e0da0210134ac40837bef61594f0f96cdd8f4f46059f73d0ac3667a8860ddf7a89a1e244890f08006942798cd90215adeb3aa40053466c842b04608c8781877f2286e05254908a6788f440a819610f451083a11ece6068b35980e365f14f12c18aec4d0c40202044bdc4882453a4ddb54de1fb15d795c705b7744c3f6cf6ae398c6b892d6a54ea50e34fac0933b7e70c60e1eb7c5b184f72c25bc6725e13d0b09ef594778cfbae38dce308dce58c232c27b5611e23883863380c421c38619aaf79ec482c0545aa5b965c77b561d4418021d735872c4312a438bf760c7adb4890b130fbc74808a0e901e7f6f0d32b4973a59d1a4685d476998dfb4d3160ef35bbaeeb46dd974ea8499b8e6409ba7824921a3c87bd9064658a729e136524fadb25269278a0e95294cac9498149133250a0f955229e3e24b7a5be9317e60757101137ce0c8cf09e3f496aefd1c09ea543f5e9fb64ea5755877e2e2b1f05d102ab5691ddfb59d244bfc69e3c17a4a67d9fe596d4aa0d080d6e9cd77272030f034de88bbe08df80ede88cff1463c8f37ea33bc51cfe18d7a7cefc9f0020d0d131f1e0d93ecd13041e2d130e98f86099747c3648a47c3a4018f8689041e0d130c3c1a262278ef0119f53c9a91f66846503c9a51158f66c4001a2133231b298fc6863f1a1ba047637380476383c5a3b111e3d1d878e0d1d8a4f1686c62f0686cde8001080d4d10213c9a20763c9a205678342dbc3c9a16468fa6051d1e4d0ba4f75e901684b8e0438047e3838047e3d3c5a3f1d9c0a3f151e3d1f8b8e0d1f8d4e0d1f8e8e0d1f814e1d1f860e1d198823c1a930e8fc664e4d19870de7b2ecc2024861ea047d343c5a3e9d1e2d1f468e0d1f49cf1687a5af0687a78f0687a90f0de73818699f75a78011bcd30f39e0f1bb6e86fb405f7465b58f1465b5ce08db608c11b6d818237dac28d37da428e37dae2096fc4c5cb1b7141c31b7141df880b9e37e2c2bf1117406fc405166fc40506de880b34de880b19bc11173d78232eea78232e98f0465c48e18db8d0e38d18f0e38d18f003cc0c58e41b6139f2465872de08cbce1b61f1efbd1f40de0f191aec008f06dbe2d160603c1a6c8c47837de0d160277834d80b1e0d6683f71e90179e0d415dde28c88a370afae28d82ca78a3a01abc51901d2d04792f427ec4fc68a2118f26627934913f9af8f36862138f2656f168a2031e4d8cc0a389207834f1058f26dae0d1c4373afd319fd28a508117a060059709d0b862c6bb3440e2d299563e18a6d234d4151f33240ec33addc4c70ce9e747e31af35bea07698b88f57478cf92f2acfcac17903012038627703095e6a52d3e65c1f7ac1c0964e1e174af529db68ecb7e38bde5e63dcb07ef5970583dc8a458847b20144aff70160fa630d9411bef8974d0c6b631e9c152397837f0f17e2c37da78ef3d800d6e234920237ce3b89486100611ef89c2108dc020e2bd178130addb561d437129bd759bf637afc2c000c2c41770bc6ed92f4c0f08a30854e17a611401d8b34567814014de3ba1a8bc32a680030230bcb7a4f79c1fdfe974af859f8ea0923a694604a150395bfc0ef7d33b4fc5a35653b6f89d2e84d045962e601ea987e3a2a170d1507e561cc9a3b46df32a128742e590304e777af3c1525a8a07db569d66da92839d388ff29d0654c4a7340ca54f3aa83b6dda00f44f91cdab561ce64d3ca8243a6da707a1503953b49ddee9ad082ee749a7ed703fbed3f149694f348d87eba955939eca59624450d735ad882b264e3bb1d2693b3a49ca039d8ae8b49d9dee394e4be9b41d6b678400d316ef3d26180f29ede4936881079669d1012dc8d0c28947c270301c1eae6841b18c07affad122940514b2b8e385c1e5bd770dc962e6f994b6d369da941516556071002c50232cfadb7cc90896756f842bd96091048b225886751aeb3e752afd702e9ccb15565c1134ba82e7bd47a484d258963a51b1e28e97d2be5f62e2b4930ec40af91e29486f2bbdadf468015a16a0f352abadc36cb4cd37c19d804e5d8f040479af891387d22b26bcafe3bd97e58d1450e43dadf340a7d42975d206a0859fb4f4ae4b25bdadb4de560888c1a88a9e2d1da8c21ba3030441a57f86704103d438c093d785e58267b5a0052c78cf5a810adeb352f09e8582f72c354ef09e65028b046abc67a5a13bbde447e1547ae3f951381f2d0589ee39fdc42775e241651ac5888bc712811456785c6a5b75259fd300fc861d81180e36e588eebba6440a2aa4c842458a1829b852a1923aad3446e25ec561a8ae8726b8725c0fb852a192f2c14845607b0989fb9a89d34e3a6eeb38df515a0df78341217119070486914c3d5c47a406f31c4a37c1483d3f3ad563ea308d8bef52fca44afd1e2236353d26ce7fcdffaffd70a7943671ff83e9adf3401e7542f1229dc9e784f2499df8499573a379fc5683611a0ad683c373d363ea4e5b7ebca9fb5a916ea5611a172d09462a923a61563429bfa3565d4fad30d2e66d9c60a49e1e2a1889083744a57f6a308cc4f9af612a0dc5a65ba950ba26c5839196e8acbeffd13bdcaba8a474341eae7bbfd3718d47c99294b6a36d3e00296da7fbf7b2814660e2b4695b693b3ee0e28211a0c185025c1ac0e50a2e5370d1465c7eb8a09e4ac388fc50630423f20366f30396a934cce6072c558361990d87655162c4c50a971b22353a0b6f8b099e37f52da955dfa2a17e152cdbb46df34f32265374a79768dfff68547c4adbe1b172844a43f17ee349320242a150a75f52715cb7d23cd7a53c902f597bbc6b889513cf2a41ecc58404074b7954a9fb1e55ea286d02523c519397f76046d0711d438204e31b3745978815418284e47dbabfb8116782f792e0d1519223254709768371e9a79c3d5ede680f1fde680f1fc4dbe1bd21efbd9cc7cd1be541e58df2c0c01be531c71be5b1c71be941e48df488f2467aa4de480f2ade488f0ebc911e76bc6785f12c2a44607cf1b252479d4c3c7bcf8a80ccb31a2085cb8fb635e93e769c7e129a001224d8b6e23d446ab46825ee4422c2614e102961365c0d104e6036a5a05d2a91b8d429c4a46f9a73a725394d469a1d23ad3f52d7de94653d4af4f4605fe3580e463a2dd1b690b668d31614ead455d9b690308e71409ac37a4a6b0db535bf85d35bf4a69938954e711a87d21d67a3376f3ae9cdff7893ca934e3fd8294b4f8f12dc89eb9b96d2c148284ea561a91cecb4759dcfd2d3a304e6ff698b4f7d0deb29a534bfb12c53715886695ce39ce728d4290b9325519464590985f25b94c8a204e64d9d4d11cd87f340279f1c8cd4fd0995d24e3a558292742fc5e79444d378723a6d874aa7ede4683b3d55850fd1532a75de67c78904ca32eec46d5e8a0a360cde7b3c046d27bfa930bf7fb42ea54d524a9cce163de53dcb8bf7ac2eacb01c20c67b5603de7b37bca037d272701bc9f394e7385f2271584ab3d1db2a07dbb42658ca6bd9346ec5a5bce73413c7b695960446e236ad52696cd5b54d85051184dee29360246e88cefbf4d3128c14821e21bc2406290855daa524de1b32a44b796cc810ac7b2dfc74c4a6355155e136529609408b478a4025ad2b41a02922b0b210007def69ccaa42008fd318c83283cd03511192c50ad2a6c9f2e49ac90264c9752d01c633b244cf7ba4ce6d24af0497a70494f70280c7eb3d5dc71fd1e3b5784d733da594d6b3698fe218d7799f94e61a87a9bc16ee81303f84f3a60eb3e1ae602793df984fea74e2a71f2da5718fe2c1301217e48fe841fe086d67e78a15ded39db6bd2b686cd15247580c78cfe2c2d2e23d2b8b37baa21a5de91616ef595758565cc1410aca03f9272a8dc70a1caf9fb42a55c54a17ef6159136e64656764058eaa346154e58e52a9afb852f74d9cb84ef97731a08a8f01a44edc9d339eb8206e23713c537896f0641eec61192f9dbadf94782d9ac7caf2dedbde884a188fdb4850cab9454fe93a5c7c4f8da6a8a1002904300572dae69be8daa330adc3fec9c45957a45848bcf1deeb9e09ec089c0290413f9b96d279ee0e23e891071233ef3da8d21df773eab820af25c86b29711ba9e3951449b348911f8e05b3b9d9b426a8ad67fa49b39265a55229e57b3f994a27952ea9380e277aaed34b5986c34fa8bd92a252e5683c59e63bbd711f304e637a5be5dce86da5716eb8b772dab413c779ff535aa9436993073af974db77eeadfc702e3838446a706eb86849b2ac7b2edaceb29e3a1d8173c3bd954deb70a004baf9e158b22c02f59f55aa54eada9b4a4cfcf425442c79a4ae048e1c255ef491929ead8b0469949297e48c51922eef3d6d2709f6b8ae3bed9349db543933786fb5adb81c2d1e298788f79ed661a31c1e8868e3a5561ba675a72ddc09dbaa138a882c8250276dc7c46993eef49221b030440846433c311a22cb1041709640f23f36244c75ea704880c3493d9a694bcf49ab6cbcff984d4f0e17fdd353da1e2101c20889132324f83d5290deb2f9748f753a87e4b795cfe963dcc9e7644aadb613d7d560be9f90d460375edc387924d426b26bba07d22622bae6067b8fb4b123691ce93992433683f7485c4f0fa6753d5cea04a507eb21a534cc03698ff27e49a9a7b4dd4f3899eabd9749c9e0cb68f0198fdcc67b5c16a3f3414b74b0cce56129cd55c95878f290f75e0a07e19aebc6c5e22671f123f560454858104aff643d3d5811cea6c06af1deeb569a118e34c5f6707aa34a826ae222f6b51c8c94d27c3a4effcd6fd150580ec9c4b58aab33548dd7c3f9a44e2aade3308e36194d248ca618ef917a8250dd899f502a2e1eeb5af3d91a2305a5f43c329a3c8ce409deebd9bca9db565fa56d5d363192354fc990f88258c6283a79af47ebb08ed2ba0e89006330820b78eff53782437a48bad34b7ab04dfb53fccf8fa67f3acd57dd6fde47abb855a74b5dca7338264e9b8ca861a4676484886f4486c4617a8a132c45c283443ae3bdd791b8bc4752ad4624295ab4110993ba4e322a824711385ed7498a2ce03d2959c63d5096f58e2ba9b8aee3933a75cfad4a5de7643303ae633ea9938de93d1277b2a9215541080b7027215a10226614440b82e86214841641e88c827081881c23222678ef91a260590fb72ad283653da420fdd3d383719c5639e9da0369aa1217fdb3532a65c14420098a122c35783c52cd0d6ac0789c0fd252a39a5d43f388d46043ce783a673484cb101e4640ccf11e89488f073a6929acfba09a0ed31e15b489d400a10569d3b6cd1f0142ca0f96f3031eef3d926a8571dd69d3f429e707387eb81394d10f6afca022d904a136ed79463f48793fd08c7c98c123713ddcd7b40f08e019f9d0e3037e231f6a781d03000e3d2c61d44309de7bf98d7a8062d4c3113de4c0031078f8000f2b1e9c8c78f081d900fb0253614a603f7640c268870ebc243fca4d4a3b4d8912b4fd14264e787498f818e4b594b28c3b490c098e0cda2bd44f9d306ef7100946b6ac9feff8a5a7716f0d4d59d66d599665484878f7fb71c5926a6f75f426ad94799e8a926a926559c6a9b45cc4d22ef99491f62e3387d09465280de44b1d973a599b3ae7f51f4e992df65c4753966d3e25c4c73b6fada5aeb05738a529cbb8ee3d57eabc4f96e1609ca63225cb4a3f5a4fe9cda46fb8204adc6a2b956c2082d5f430a4fb92ad3208207e74f861d33a8d830f3d00e077ab1c7a88256f2af1b0e96e0856c30e36e810440e36e0a0c30d35d880430d3534f430c30d32e01003b539c0c045dbd2e9f082ad520896b154d2266cc445ffec40134b1aaae4933af9f868a81a5c98b0056e4810d9691a90aefd56f3c366a6f33e437c442e08190963628908cc9017090051e98790fcd178c96fa552d462ab5471cfddab5463c552a954eab878003c1da690018b2158fe47a74432609184f71ee7815cc8b8934a9780585400f9f1d6508015392f0a28ba3c41802682b86c015a75dcc6844a4bfda0b40ce064f2f9bef3ad7b4a02c8b2841201b892b8b05c41e28de2c0e38de4e8b14208f8f1d6a8628a9c2744c90b33a0c27b2f482524c97bef6dab4e732594e63612370599f72e29e474621041847745e18282134a4f70c2db3423428640809021ba9775df693e386a08c1a9c982908d9193f09e9294ced6a5aaa050ab26a8ad3b6da7a334274f7c13272a1c133c54da96aaf273d228255ee3e1bc6fd2693b4c348d47a5379eaeed08b17734e1bd4b074c70a37b146ab5f3de7584c72de1bd4b074a7891ca0fc7e2af33debb92808423f8f7ae3b3aea740565841f0585ca79ef2a0277d9915afdf7ae3afae9bd8b081ea5edf4f7ae21743ce7fb8e83c7c5773ae81c0fcb61630e9e9c417a8b43085b432541a1563b188b1547d4e275cfc429a5753aa58f780edb29e27ffc164c7f94e77ab88d04817ee08347a486935698088166402bd1ca0fe7f2de05c71bef5d3de0c17b7276cf4f9a156e6bd271da3fe972b489c76f1a94ae73d2c16382d2fc943271cfe3814e3efe094a9ff8a9af8c8041a99cf7ae1bec40ff686e75c400debb7470e540ceee06b56d5c6c4019e48fb8ce40a170f0de7583207f04aa888e3a99945c36e836ad7aefaa413f6d2b9494f72e1aacf1dee3706eb8b722235096c1089465100887888d9c59c675d4e94a479daef8a4564d52abdfb3d888376ddb98749b9612d4b524dda6555d27a86b49b08c2bbc0af25aa85df553d7d9f9d152beff682939573838720a3185117ef34e2216896562a1582a168be56279ef0201c6926511e8fac07bd719667049a8ec44d1e151b253c58812961c28254b4810382f0271446adebbca78efc95c1e78ef0191e4190001419e20b2e489a0105273c77ba920eeea0007966031e1593fb04e80022135a21d86a86248e74366891020aa705981e601044f0ade0f4e08f901c8ce04240006185654514502a6a0828a0da70b727a5092a45227ec88c47ec0521e0531243c60298f7aef0901800c5014904cc10c0f2481801641bcf7b290f2ac0c218487391ecf164d898ac32beead7027550e7752699f144af573c286c0f38ac011821171821dd8e83c95aea584ec6084101dd0d041c97b4272c0e23d5589c3210f213864ef85e1854feab48003707eb38284d8607acf771eeb6e5839b0c07b2fe55551b41dcb6fdae74e9b8d0f1f3e7ccca47492a06e3b61394268a8820484d08085ccf0ae0af850b790a1a68b134f87189c784f771c057e20000c6d9484c0e0440c19bc1a84bc80434a889036de4988901e2142b0f7b8f494080a5b7cea251720b5848d0d121c2418112efd54d37dff24cbb628ddf74f300cc3524b1000e3d24f25efd37de90d0d64e0a50b1f243798104d442a10e28290166c20a40517debb2020864f693bfe47a32286902053bc774de0bd4b02ef5d613c21419600e3d92ab52d3c5e8b462541e9151328eda96c52f4e6f5c6a4d65a6bad94524a29a594ce39e79c73ce29a594524a29658c31c618638c5042092594504209259450429973ce39e79c33c618638c31c6f7de7befbdf75a6badb5d65a5b6badb5d65a2ba594524a29a573ce39e79c734a29a594524a19638c31c608218410420861cc39e79c73ce19638c31c618e37befbdf7de7badb5d65a6badadb5d65a6bad95524a29a594d239e79c73ce39a594524a29a58c31c618638c30667c6da55346283f3aef25f1de1bc01312e2f2dedbbc117eda7ccafb54d1361f80a024da8e3f2de9a89576658b86f24994f826b4adc97b1704366fea3a2d95ea3ac97b971753b41dae8bf7def580f72e074c09d24fb49df7ae065c0c78efe2620bcd75ce84c98f126ed3765239db8a732d9573023a2dd1a9953fed4e7329df84e738cd75dcc96f3e48a33094ee522b229cf77feb948edf56ddc64cdd76da1829a531d48ad3d8d62812e78ff89c38eccae2bd0b8bf7ae2bacc8c224003a544a4b982c89a2648749694a9429539894983ca9b2240a9412961c28599693f25a341e8f5a750d0ac6f9f19d8e8f86f2a9934f8a89122c4c61d3760e46f25840e3bde7e35d0570e23d2235d67b6fb3c6b8c20bb88d14b44b1ca7555d4aa74e3fa78d73a78efdac521ee37e38bd05d39c70ef5d56debbaaf02ce97ed3b68d094a77bac97b179529ddfb4deb54411b97b3d36aa9156678ef69ae734fedaa0a516828aed350544a2a95ceb2928acbb156b97154c80096b18a4c1853b0c17b54c83ede53bdd114869c3696b1c46d5e85f226395758c6951444906525151745c97bd711a86d63c235142a270a4600c016852844210a50d001148078ef5179efd229e2058d9e30851376f05a183d8106ad3212d475dc6a0af6e3e339ccd469158642e564d97b9793ab08110e3cbc78f162851396e0f182d7842d2f8b9c4c20c1c34258890944308188f7b8c0032c6105a5d112c0580256c20c94d001291228cb704c9c76e2c3a5b6681da569bcb4994a3fab949cab2fe45ce1e015125ee0a86c0d95a433f9e1587ca7794a53d275b2ec8623c8f0b88d7452e9521749bc926755607487ea873b649e119c3032421bef3d0cc90d86653d3d58c76915e6794a03719c9bf7ae21de8583e48763e9a828a91cce53f13ebaa35204931d4ab0a38c9cee7f7ca7d39daed4f1c61bd581005d0726c21d8f8469227044d8deeb72ae88408720c77b244e63363a182988f349a495544eb4b2c5ef8c8680e9b8c1888e27481de77d7c561ca74d3bb0044bd20a2cc152b4c2f92928540ee74e50bc6f4285a79f94442bd04a96c9b93271da64e2b409080707db1b39ab745c4a5382d9e0d50db52bdf358e33c78ff71e0a95e3511a0c9603c87bcf7fac874bad4a405a7a4e5b9120afe5bd1b4994048bf868a87acd378aa30e19070fde7bda4fe904a154aa1ccf6993141e9fd469eba86419f75de372ae704a9b5771d13f28dd69dd0d17fde339bdb9e81f94e609c213384ea3b2ccea001066f0b8d3919ed2a6957a92701b89eb4e3f4580a0e53d13a74da61ff4bcd76d9a89c334adcb3cb77920bf5d1f6481db48fd880fac78afe37caab4f9ee54fad1b66f847ba0910f5446501a8e2d8f4422f1536a48e7519df69b0fc6a13c5086f2401e55ca9ef75b9394d7a2753fa50325484be17c12da4ed77ee382b414ef7f890bd22a8ed3284eedea8d1c2e207eb072f9008027814a3da0400fb4788f0856fa7eabe9c10e6f07637813a79de0e0dca07497d2704a59e64f5b5752713edc8fee74df917395832a1e0ab56aa2ede84e2fe15027ddf9255aa2c8b9d2a8124ad37689f33844301b36ea78416c2cc186e8bdc703376584032f4638e86e90850b86f7ae172e2137e0327a3668c3063d1e87884f3f6d3b07b3e93a37dc5b2122e70ab3917355c399f82931f1d34735c05b6840c60d6fcbd5c2688d138cd6c0f1399da675eda7a0744751f14d9ca8a474543f9b13254c543f9b93f7ae201790ebc77b254f6509187821083c18a20247b0638d317c70a3440c304fc8886066240236b6c04cd0c49582c20870a082086afce002154f20c0831641a403c240038d224fa0e10134e08007642c31400e781480240e98910c4ca3185871c5bc77c15ca22b34828113231838c90215485ab8d6366d0788173841ea3c87d24c5c60c6d39d5ea23bbda4a7fce6bd8f96326ac10bdef5523e2794f64d04e9270f8f2e3d2fe627e68990582fe6bd8cac98e782f52283d582252345f7851a20d221e692917911852cebcd7091def52c244443582fe6c8cbbb9e6559a1cb8965c558976585609ab8accb8ab9649862593056ccbbac20a4d0050353338359a2eb126961892ceb9ab1a470593ede8b25ba42deb2067059d62553e5bae1b22e18d16525e1b22c98cb42c29ac1b242978c0b5e42312d583258560c32214b0c0be6b2ac2b54b22ed18c0f7a01b17064ac171f4248ac98eb12c5d0cc7559445cb0160144f10704ae277a17062c51a846f47259a1f7e2006b08d6bb1e0d0dcdb39e25b22e8b0996cc1584655d2fd715b2ac6919b1642c20d7755d304aac21d725ba2c1822fda84106082b88101bae2eac97ab064b6485ac7749b9b0194bf4ae13ccc37aac2b428f0717588f88185c210bc612c55841ac9017d72593852c1cb2ae4b845d407cd4582f961503457107685d333032976559568c6565d67501210463f9b8442120ab876b6559a122968f1f972513635d445c3a5c3a5c39845ee8592e5830d7650511d18444570dd775593096e85b3e7cb07ebc5cd68bd5c2b52ccbb26eb88c80f9e1e3b2b60c9098cb42c292b1acd065892c27560e57be70b87e5c31d78b15b22eebfa71c588acd04bc8b2ae15b26a2c1f1610cbb28e583a5c33a1184b46645d969559168c0c170c96e8b25e4456be7e58a14b072b14ba2ed125b2f27559365c33960f4b467459969559395c3331214b2423b22ceb62160d41c8dc848478b142960f4b4483e5c347f643891b74b00020b2ae0be68af1164d0cf08713cbbaaccbb2ac222fe6a9de953d2c3caea41e66858e3bdab0428121945145d301a9d031c79bc2c30f1e121470c323a1d9785228708230a4f0a0458942c700f078c2830e5028820e1c60a6000d46b26e8103978e203e5c1e662c4b879587edd9430216d3e3917ab0a043919e312e9b3932a0d960300821c4b069c20e3d18901db019843c315ec8f27a5eb67898488af742efbd67ed71e58814b80133c5cc0f35e8e223464606666606e6e54728071f31a197500c4078a0d8e941a6066646068b80b8608980c42401a40b0509d1bcc0214504bac0b470c5f810d904c90197d165c60a902eb269018a8bdef0524564c1dcb4a00b92274b46525ca219d1132254e832c714d64b36da8108282e910da1223ce822041d5d769032450c2e24a1225404145574a9c1c715203044a04b93185432dccc14badc743e8ae8e18226c64728c88b165102ac804246340a15995018a1023e82e8c1143255e8a285ebc70b11a3982c3ac22b7146142fbcd4cc349901026609511031390a1250a08828dcc8c2c81441f81305bca0cb8fd5ff428a20d2052b8d2e355828666232cc8c4c0ba1ab5344288799263150e804a122e3e406264d667c380142a5df90a0cb0c221b3b0393bd100466e607931e0490812e33324e74d80be8f212a279b1609080997939021344ce103f563e86c838819989a921c8121f3e88767ccc00030e40d820431032353b538080624686143383ccab2325068828c686972c647d00110dc18888f111332332f27284081361bddc10e2e14506e843868732932334c8ccc8e0e342a164e70795a911f920f20166035d826841b4e44588171d7cf820c2c18518ca218a2e242356e8878a88422f04e841000cd0526694d1c60ace3063031750c01305e0c269f99ef70860890060b152858a94274638c9f0ac01e2070060a218c0608f2628c10843e0fcd0830d35c48871031b68200348301922cb2106203f605e70821278600c0d5cc0021410238c2a35438c90be88c01e5988c20e401398a08292c64516a78f736426668c2db4b83e7c0007196364d9ce00c38f1999181c6e4863044bf81e65c7089d264c24804502aa103247458119656ce0892b56aea50106911b6d40c10a0e12eb2306e603072801082af000062c800013908004b288b283736408100b0bd715ae2a88f0c09870dd2132c245c7cb1cd60fae37ae1ef8e001901d5c6e5c6c5c2708997169110dc0f2412687171c82d470cd70c560c1307ae145c835b268442d5c3f5e662e1f3232574ccccb25b2429605f382b810ba2194822ea22bba889ec00481593152808226035d5e5e80c400f10328441488a219805c8003300ae8227ae24386191c6890a28b8f24440108e9f0a3830122d34406c3cc848ed030f352832e326a74816109287cdc50184f00224797973dbabc00b1a1075d80743da4a08b0f1a5ab8628ebc187969000262f85143175188ace8e2020f2ef0102a32322243c3688f285e8490c13137211742373217e81282128dc0ccc074a04be8078c0d229b1f31648980886c669abc081193048c0d3033300300020310187cd0e043869824427944016343e88c285e66d0e58701887eb0d20f398832202ec08c4456a8484889484a101960ae982b3137c4ecbcc4d08205f323f42202120a85ae504c4826e46306075128a64a8c1017a4cc8c626062ac508c888a8c882c991a423740e16387170e7469a103508c604437c82c894214b6e60fbb0a7ccfdf6a8a65ae9e6bca533023dd5cc3a8e38f5a7b14505fabf6db62de21fc729f20ebff35e531eeef23d5d80411e359e1b4b5622ebfbe2590ba67cbaf9f74f66c3909348e52d67d7bdf95436ad5e071ff7921bfdb477b314d8376ac29f7b24e4f7fa67304bd6e6bf1fcd6eaceab9422e0f1cf8f35e411fbdc6b442353db7187956f0eebec2188b77abe75dd18430d3708fcecf9631d2df7b0620d7178ae0f60abe9cd3bd33eef9d5a9f41e3fef0de7ca7197f46b8f1a7d56218bdc4654ce8b7afba66ddb997df037ce6c9a3943552c8b7b71db8926b88b98d599a7054dab6c4c9c581eeed8ff26f196fbe7d6f00fbfa69d738eaebabd5990cbba18716626827859eda31b4e4f37e5e3194f8432d35b077dc9c7bbe2d9c96e2d8e4ca00d41542fa25fe1ec37927940b03145aee2bbd74e68ce1f4179810c67f73c4944789a3b6008ddbfe6e7bcc106abf6192ab02d4736d31f535e31bf3c7445c14c0fd475da7d5114eaf693565e151e226cb7a2e317a8c11e6bbf59f36fbea27c0a18d555a6e3b9d326209dc3b3db4356e3d3f853787b16fc630eadcbdc63a6330b096dcc208f9aff2c78bbff0bdeb2829fdbdea787704e6aef4677bff9512e64b21c0af8f704778e1de965368ca321c1c1c1dab8acb8b9c279df6f318ffedd3ea2ee8d7d1ca8fb1971e73291f702b85fa732c67ad5edf68eafce6802a35ecf6d78f23cc50479391ab0153c2497dacb45f79bfd5a62cbb18e061ef34767cb5f51bd7dae4e282620b7ff77c7ebdb9967f8b5b219e74e7daf5ad7d622db09db7560fbbc6f9563d955c5970697ba5d1db1aadc41e0bc9e59f9ed34877f4d8da2bfe9ddafba969bc73ce1b2f2b24cfd8634af9b711e70caf05583b758434d73ce3ff325fb914a02bb53f632a259656ff4ae54a40ed5b56d9fdadbc478cb909c7a7349412242e04c83fe98f3edfef738c5266190ef756ba2cd3c2b529cb88b8aaf0ffd238e1ef34f3d0eb003fc77d21dd3d6fcfe9a7918a3d6bcd9dc33e35c73573f8af29b8ceb5724eebe6b4d7ef995c52f408f39f3857af77be749bb20ca7ca1585d772d6f93be737cb2baf12171413e6c8618edfef58e3fe3d57976cefee734a6ab9be3f475396e16c6b8f8bfbc5bb7388e9d4512c3da2b6706faf33c5d5d7a86d1b932ccba34308bdbcd57b99a5b63166a157ff25c6d7636eebf4446ab00031c7197f9ff9be9d6348c5ba82bfd37b3b7ddf52fa3c21b442fd3c671cab97f0fbf869095661e62df1bcb0527d39a6b3894585ff71ce14c30b2fd4145f130e8e9cab52add2dbc8d9756e7e7ca753e5867b2bd60eac29688c7df4f17a08a38fd943296cabbfbcffc2782b94159ab2cc5b51a8316fbbabdfda574be1ca8282853f5b2fb5d5f6dfecfb13e4dc5947eeadef96ffba9d00fb9f72564bedc6f37a8d07ee73dba96f84b576cc7113f8b593434e3fc4945acf84deb9c6777bdaa1cf99cf25ec6e2bcdb9cacd67c65e9a707c56db2fe101e2065a4ac015639d7fbfbec71d234f42ef37fe18a3defe4b3b2d1220b45457c96bd5fbc61d8f10f1be927258358ef2d26bca329c27d61d7b7f19a7ce38e7db25ce502c23dc1c39fc1d42ee7785379bb20c07c72a4295995e9a2796dbf7eb61cab2034ebe71df1cf3ecaf87b40e3be3b67b570cb5cc986b22482a2f9793c2d9bbcff90ee1465c21ce5bd23971d694098b0ee9e3d5d6636b23fcf2fb3978a6f376fffdad36ca8ee5e8196efd7b977b6a2e7d1c53d75a61d493fa7ae18edf1242c7f656f837bd3a625f7910fccd9b529f798cd3fa798110f9b432dbed6de694caff03ee39e736f389a9ef965a1ff8bc2dfcd1f64dadc6757a0b0e2c6f9f15db5a2b9c51da37beee957f3e77ce50ef1997b07a50bdf6f9c36b6fec5e57cd03eef7f4b7eabce1d776df92b503aa2bb49ddb08e7bf306a1ccdd2c1b593f34d6da754e26abba05d32712b5596e5e0c65865c551f6cfb7bdde8d68b984ff7f18fbaef8661c93d5869f1f6f0fa3841243f9331b5c6eb839e5fc760d658f4f583880bdda1a719470f3dde7bec1e655db1c31957c6aefb129cb7088c02936100994eae754f228d5aa2b3961d9005b5db385755bfaada6bd06d4f3e9a7de15d6ada3bda61f6d6b32854583de67e730779c2bb69377130e0e0ecfcde63b1dad4be9d8f0dcf494efb830e15e4525cb726c6e2c29ac352e86725b0c6dfd5c67db4d598653ca62cdc046ef2da77142b8a9c7560637777e3bdff4525d7da6a62cc39962c5e0eacfab87137f88e7bdd5946538482c184cd82396d1d2ffe996389ab22c68ebb20c27cb7eb4ad49d0c693dda8ac1774fb7d97f56b4c79ff1836b1a962a373a3d2503a8d6a926529df751af537cb0595d748eb8f3d734a63ff2df0f8fb3de187fff26ef16781867a6f783f95bd437aff0a7aedd456ede1e774d7ee5550e1ed57662ae3febd739f0219f384d77fce27de3c7b14e06f278dfe4a197feed89f007e5965e7d97ead658ede04fada9965c4b64e4a2de72598dccfcca99efad65fff2681cc9bf36db98c9ffa5bb51a784fbc3d8e597b5d35d469f8bb37d6327a7fadfd368fe05fbf3df7546b4eedac5904fed22e35f5b77a18a9cc68481cf1c5b262bc33c63187c0cecbaff75cde2e3fec170496db4d319472faa861bf1fe8bee74c27dc96538af93dc3e28aa7949446e8e9dfd60c0c3dce7a53ea6ff6bbd73268b711f2b973f45b4a5c3db0ebd591fa0ab3f533d7da812e2bf47b52eb27d6bf530e7c6fffdcb66bbbafde7f6e607bedafe59eeb1c35f5930ccf7bae33d6e87b8531c252b7c6d053725aefc497eec9e7d440c4b3768c79cc1c76ce3310fb9e3153893b8d78660c70acb1dffae208bfd6585e60db9b7bc61bc6caa3ee16d839d22b73c53f57fe7705a4b7705b5f25cf36d61b2960ad95dd57796fc6f87e31bcb67dd708bbcc594a3f01df25ec5a6b59bf8e504309c47c23e6d7475d71ed1886b1e1c77e73fefda7df5e0e06e61d5ec9218cd75639370eb7be8074d36e6dacd3ca6bff34e11049629353a30ae2c150aa9fd34d9671252b5604aa965b62ad7bd550f7a94d5986c365d98e05816aa5c5fd66dba3cf5b4b532acb70b20c27894dce4d96a54e3acb36df9d6e5096171f676d37c698d34c3feee2726b6f8497cb8d71beff0137fe0c73c49d6e0f6dbf3818a7312c3746580ed059dae86184fe4f6f236f80a5516a2a2bbdd794655a571ac262c0a7bfde78ebac35f37ca329cb98dc585ce069ff8fddf7cb399e329ab22ccb9828b1b6f8596f8cb5bf5ce7eaf3d7627e3d619d194fa873cd3c8b5c37e7de5a4a3fd7ff5e2c2cdefbfaa9fbae57631db554e90a6fe18e10e76bb5aeda5b216bf5936f6a2ded58f205cc4cb7fc1feb5dfb9c5b01fefe3c29f5345ad8614d40fcda767aabee55ca1d3f022aa414dbaf73cf37c35ec5e537c7eff5c772d6c90fc0a59ef7d38d37e4964f2abcfdbc5bcc679f9d72e9a7f810c78feb867edf7ebf145fdeae318f5562dfa58e42533c27bd5ff60c7785c2d20dfbf676f3da2bcdddea02addf73e3ca7d94b2df2728a79bee4b61ef3f7edb0db0b3b792f3acf38c18db02e01c6bb670ffada7e6923b41b9d452728fa7fe3d7f02e08ae196f5d36ae7cdbd09993b8f98e62d27cd7807cd4bf3b5b5f7cd21b5984bc4135ffe61bdfacb29b74cebe38c585adbbbbf7103794cf1ee16674dfdfe7e15b59610f61d7bbf98f38e73db3dfcb4532b69d45ce49bfef969ed7c738937aef9f7deea0e2dae796a263ecd5c436eebe5f6daacca32d20aede79e6b0db156a7ffb3ee1939ced1de9484b95bacf18756565ff34fa5f672dda7fdb64af851bbc7bbabc7f7d24ab3d632f9b55b5a8e7196b9533c0079fdde1a6e6fa18614df93debe5e6df7b5167b8b4d38ce5e29d5d97278f7b43e104a2ffb8e79f3ba61fe7963bfe3c7fb4ffcbfaf72c6ec69b713cfcbbbdc9077d8359e1c7b89b9e49ad68d279ff3ea5f77ef31ffeaf3d7f6df19abc6d74b3d2fbd3e5b597d8fad386ab927ad1e67de4b707e5b27a7d14fea631600ce5b5e9fff8cfe6349b37cac37bf784ffde7e4932ef16d8779ef7b6b8d547725eae433d28aa9c51dd21c005ffd873cebfd3dddf92651359e9ace0de3aed2532cd4434837cd7043aee995cd29a5dd479c63ed724e2bbdfa6b7fe5d3f6da2d9755f2ae3e624afdf5dc7b1e5d719d17739eef8c9b539918e60ae7c6f157bc659c727f9ed06b9ceb95757624ecd47eebfd2bb533532b05df0eebc51bea1823ac304abf567fecb9fe1befcaed4eedd2ea4efdd5b0e72fa129cb521e55e21ea86719cf4aa51c287e7efbb7ddd6caccfb3cfd92d6959e705ea3e4f84eacb7b75a9ab26c87233abf14decf3be67dfa6e63c4ecd36b7a2fa7f6d7dca9df483a7c73bbb9a6f06e3c3fd626ae88939a2d9c5cc34eabd67be2de355a44b5587a1eb7f534fb5a61ef9a6d92ef86f2e38c21977477ddbb56996cba3f9ff252bb3d9498d62596ea98ef9697533a77f557c9beb2cefbb1e53b421ba5492691d0763a31be3aeafcabd57eb44d657320ddd7ca2a2db61cceff4d59a6d2b66e4304ae3eef0bb59dbe5b0ca9a9a475a421e4acf9f3cb67e4f243be4d59e6531a8a97f8a9d31d97654570e4f7f9dabbe7be5ed638ffd74add09a5e272904c1da1cd94d2ac71eef8de400be19e944ed9699f70e31c899a6ffa69859d7e9be534655929cb9464f45aedf5f5b0d70aa7fda62cfb21ff685ac9672b9564f0ccbb7eb97fed54c329ad29cb4af4daaeb59d1ac3bd65c4f59ba6dd53fa2bbfa5345fdc3d3765d9166df321d5eb2dd63163ae7fe5136b53966d1d4765e5f0ca0fef8dd4fb484dd9dc16f74879b4f56bed3f3765594fe992d6b36c476ebfb3b6337e9f7bc7389bb2ccc4ad54a54dfba52cc3c9b1d9a2a764191191660f73e6b5ef4f7bc7d394659b36f15296e16459f7f3af60ddea07889b239052befbcd714a9efbf7d09465387805c44d2975cab2ad53c177fc7c23ae31c23ab7b5d91a21c71c39adfb4b5dbdefb508f0e60d21c619431f7d851d755aed2cc3b18620b2c3c6cfb7c65df66f7187515447ceb0c3bfa594d24a4d271130e497438e31a77cfa3c042b33af3edbb975d533563a26febd6be9219e1a571aaf10cda12dcd3aeeeae5e75d632f0795f26b1abfce59fe48a1024471f038e18d7ac379a5a6989ab20c47c7e6089110baadf34748bd9c11f30883202dd57e5f38e1d41553da4504841c2f847ac30dad8db8a4f52ca21f780871af5e5bd927fd306a4025ad2f21f281ad5af7dc358f5acb8b79e77d522238ee8dfedb8fe7be79c36eb588dee0f7fe5aabef91e6a9af366559f73de835637cfb8757d29d6737659949c4831d682f6fcf3b632cfddf979bb28cd3543e221dc02fb3ae7067df4d3710e5a0de3d6def7072bcb5f6fe0b911b70de9eb186b2db9dfffe6dd4bb23e7f95ffeebdcd012a974ca68039978946ac55373639d216283ce5deb19221cf09b61c734fa6e7bbd4159868313c50607af541a8af500d10d748539c619b9b772527cbb10d9c0737c3d9e1dea2cebaef3860c510d62863d7ac871bfbd7fde6d6e3220a241e55dd7da399cfc4e8913e526cb6e2c0888d6d8d1f399e3e450e2e96d9e019f18664b67d6dad27ab30c74fef7fa9b69cd300679c33cebd6b2ff4839e7a62c838194374a2fbdbf2f8898f6ca3dff9fca8ca17641c694e39cf1fc15c21d730bf2f4b2ce8ca1b5d4decd827ba9eddfc72fe3fc98c215609e73fddef20fbddcdaaaa05618a3c591f74cf7d733052214d09be7ae5e6accbddf1146407402d9a99471471b79cd326bd19d17221344f83fb6daf75bbba7599620d3c933fd31ea183bc49304ff5edcfb84fd5fc92bdc6ae8fbbbcfb6c2e869e6719ab2acf33e5d88d2d8fbde3eebcd384a2a3d1f0196d8573bbda618735ab108b086f5737babcfba56fdd1b89647ebe1fcbe4e0bf71485605feb3986dc5efbb3f63775d21c170dc52615c5a6a74e47d8f8154a5bb1913206f9236ce2e66fc4108160525a7b8dd9eaabe7bcf60319c279add4d0eb5a7790d7522aa94467e4eda994dd46effffe549bb24c55c229c28a8d3cc2261e71a3d250a878d4de340788ccc0fc66cc7daf7c471f2b2f43e48149edff58e309bbbd954b539631014412206e98602245f5c3451d80ba7adc739d5d577d2f356559c6248a88037362fa65f61b7f5d63ed36106d60f60871ff96de7a6de6119151f3c4307f9c719c11de3d46c593c6dcf7ad7ceeae2b14220dc47d75d41fe27dfd863367a043c8a3941ef3cf75951b0392cb1f77ec5156ef79a6a20becbee7dd76f219a5f53f1b406481fb2dc71877bd258dd4ca0af04ca7b6b5efaf6f94b44721a2c0dff47bfd6bbeffdac8411189d1e9fcf8fb9af3ed95e2b94434810bb9e510ea4cabbd7fd7954802fcebd9a5dc764351183d762ca5e75a5e8b25c526244460507dffbcfb573c4d3d75fa59864345f4c5fedc46aafdc6fc5b696704f2af7b7b8e21854e8820f0a3e43d623b29c45ac26885c88b4fa7bf7073396b13a22eb2ce79464cbdbc14de9c653829edc4dd1840f400286ff67e479ca39e1e662a440ed0facf1c75ddf6f74bafb52a206a40fed556692fed1c63adb3e72930440c9097cfeff3aef14668e7e7c272b97faf7652bbe3cc5bcc1e21dd724b9f3dedb06bb135d752567b33fdf5739ec59f73d6bf7d95127a593716926ab929a717c66fe3d7574c9afbeebed77ba5fd305b01efc77d42293bc5b6e705d05c318637768da9b4b82aa0d36ae9e4fd6e9b7fa63401b26a7ea5c49ddaba7384088872d7cd67c51beb5921e6f1a22ab684557e3a7b9c3b579b6d4c9c76626361213a0085d4ef3badb53c4f1e21151b9e9b2cbb4189a8f877d3fa35af78d2c93ddd229a42fb291d254a84104931441445e9a4ca918289a038a9723c4f693988baec10da830bf25a7808e97152e55c89c243280f1f1fcd2344280b1c16b81216bac20d212b9470085501ca284485184253d0c235d4161292029050145e0841a17452c5107ac294b1c6d97da7bfe67cad29cb747cfc4e96e1e004712537555251b2ece7a4faf13c369ce7dc046d2b4efb8d47e3b9b9901072c2975c5e7fff87dd63ec3d1edecbedb7afba476e879a702bce344fbfa3e59c637db3448809d44afea18f787e6e25c5a62cdbbdf4356d93c224b4045ab1cc387e19bbdef87f53112125f48e21a7dcfeccbf97309ab24ca57fb20c27cb0e7684478920bd6d5a8692502584844ee795d672c8f186184b2e89d0119408ddb14346a83bf25fe58d35631d3fec382062a808d18e2ca13a4244b05f5fcb299cbc4708ff265273034343b0f2ef1a37c5dfd3e171f41042ac3b87b26a3d47f7d2563a73b7dc46cdad1c527f0ea9fe1c4ea923ae7174aa21d5dff64caddc740ae1c6d8adbf70e33e37a53d08726e7e3bdddc47e83dc74098f5536a39b47f6a79a1fdc19e15d70c25deb67f3c6350c807537f5d2395704269a1e7706c9c69eeb6c24aa5f711bfd16fed19f6ef2daf747adb83100fa68478cb4a6bd51ee61d81423bf032f32fabec114fae6bd581e47dd27ced96d5df98650e309f79cfbfab8f12568edd88dc7e0a7186b9db7eff6fc3eeb9e9b4f1738eb9ff4f84d8889ae23af1fef3f7a87bc4c1a6f5761ae3f632fbde6f806dd77dee19e586f3cb1e45c80653f2ae2ff511eb1d799d0808d5a057cdb78e1a5a8f6bbf34e8df434dfbcdb7fa1f235fe3ee5ee5bc5042d9f39eb83b119a41bf71e33bb3fcbec399ad0c4231c890db6fffa7bfef1cb9244008067ef688fdeeb3734933ec2f88bbfede31eede7baaf776419594c30fa5cfb1cb7e6f0ba09dd75fecb7d5f1db0c2d2a422ce850ff4d6f8497ce8dbffc406805b2cbaaefde924a6cafff2ad8747699a5b418c3ade94d41965ede3dabec917349231b2114444d6d96d2c21c69b5f082113a41c45d7f8ba5ffd57a1bed172113744bf1b73febde39a5df97a0da0a3dd65c768afdacd48b100966c774d27aafcfde66e9bb94075283f3a9a3fe32faecabad1789501a157e986b9efbfe6ead855984466073b53c632dffbebafe8c45480431d6ccf9cf9fd3b9efdf213472b47eee5df5fcffff5e4d591602ddb7a7f7622ea7ce796b5396a17a2a150201f435dadae9fd57daadad29cb362765843e60e39cd55aaee5f5fe7f6fcab231426740334265503fa3be77eeeb4d59f6c3b1f494a7622120e4811f61dc98d36b758c3a625396dd843ae07fd652e65ae7f7d9d21be200e692f7c92f9e36e7babf0d946203a3d8c01d1b08c5063ea9b1b0086d205a7831bfbee33a73aeda94653a213234d69fd3fd71acfdf31a9f088dd16ddf76e7ff3fcd77d36a80900636de75d289f7cea62ceb364df5732af594ce321c2da10cd0fae3957e729ef5bf369bb20c6715c280f693deabfbb59afeeae1054217e052ebe8fde6dbde5bfb3765d918210b50eb7da53272bda3ce389b7c97d23e5242158830e3d9b7a7b2dfedb72f410951a0df5ea3c5127a7ab1c4db9465abef242446ec36ef5db3bd38729c532bad88d004a4a598d7eea5a694f7da4d599624cbb2ccff947ca7734212c09f7f08bbf7dbfb2d51fd8473e3515dc7022314469ef24e88f1d557cb3a2f1891e35b35975bce3d2185a62c43e98d6f5e4a962d097db1bdb4956b6efdd4b1b1627344f7dda65151adba5f5252adbaef59968050046e9c7f563ef9ed93634b4d59562aa1b64e55e1220401fce7def7e73d799f196a2fa084ba083de052dc6d9d9bf7cb44c801b75b0db19f1d6ea827a5a62cc38992659c164d335955841a1062c04e888b1965af9d625b79b67ff7d016ddd73b6f8e17577dfddea62cb312d28246bf358553ceebb3fcd894657e53052094859cfd7fb879dc9ac20e61b7811016d9ce0a7dcd7ef69ffdb413085dc1f3a799c6bd219cbce70a84aca0f5fb0c39bfd35e083db4ce082d004aaae985d976ceed96500112ea5de9ec53d20da7f7a85002aea69cd65829dfdbde6eb59fd2f14564d94d014208a8d45bf9effedc7fcef5af2267da2bc697e3ccadbdfb0017c758bbbe515be86dcd54dc6abfe4b94a2d6b841b4f11ed95de6e59adb73bcf2b059d90e2b923fcddc61d05d7bd432b65c7fdeeca2d14f7f2ede7bcf0d74c73aea12eb5538ce1ec53c2dde7a47b64eda3a6d667e979f577ea51b18edf576c3bc5dfd63cb8c55b5fda71849d7e2ab3d033aff7479f25f6356e2cf43825ffd9e26ea39cf50afbe7f8a1de387adae98c56e091da6b7bee315b9a7315fad75bff4cb19c3ad70b772e2ac0aaabb6b6431a7596fb4f81c38a739cbc73b9e3fc5c0af9625d67b693f73b29e551b0fb4b4fefffbdd75cbd8642a5317bde71b690572cf313fc85fc6f5a21adf97b7e9dc039e7dd6b4ef1eddad28bc7ff39e22e398fd7fbeb6d132abd95f3b8abdff0636b9930af9cf6f2ba2b851dfbba045be3d73b5ea9efacb45725709ceba5fdda24eccaf9be9efb6fa1afb522816a2c219db2f6de67f447b8327b19edcf9fde18f31d9372eea3e658726da1a446a81566af778554fa997911fa85b943de71f696663aed98bf668f3fd7f84ecaeb9878d73a63cd90f76a8940fbc4985f0a37debeee2148e8a1bcb463d9b79e938e1a79fe9c66bb73fd1fca39628d54ca6b3de774722f07d6f9f3f8bfedd056cce3e8d9fa7c3fdc19d70db710babd9063d9edecb9df1c83c065d5f87f69efa79057205ce86bc5bc7a6b21edf407bf5beae7e7d56eb8a184445c3e88374e5b29c6345f3c778703ca8ce1dcd366ce33f4d69465a953c977fac8f506c7b766a92fff7c5e9af1d503dba1fef4d39fbf9f527f1e60ecebbe30d7ca6b9df8ef20779fb1a697672c65fe5d075957a861f733e22f2be539f0136e0de3a437f61d297743f78f27e7967fedf5cdbb8d4b73941cd73ce5b4916b36a2f7b6ef7e6b86146aaa71e03fce5bdf4f67ef5ff27c037925f57e6ee9e5f69a631b5cfb35bdde6a3937f5fed680c7be65deb577bfbfed970650f69c79bc7ac635f28db16abde1e7f8773e8359efdf1af7bbffeef85619c4a9bdb4355aecfdfe98c600eeaaabf7f67faafbce30f85142b825ad5af71af17cc1f69a7e9d3f9676729ca50bbcfc9c7b2f3bbcf963c9af16fc6bb9cff44a783b945aebec8b0578472971cc7ef2eca35f81edb8560d6f0d9c45a8347169c59994c328c610020061291a0100007312003048241e8dc582d1905cb691bb001480014c8c6ab44c2e954983b11c85411404410c8340000084186400214649c6b207a5e84a4baf2e4dbb773186425f343b46284b55f1c9f21b886bb008b38f7d08ac36da0b9b2ddcccf4626a462c3321d4c0a5e907996084247703f2563bcc669aeb9d820fc2d01f4f3d2ec45cdc4b1dd1addfbc9d4540101631ed342da08654c64a3cd2aa43f32a011268a733781105e54ec87e1012ea6a2010a35e4dc1e5f48590b21f8c13d7c8d813cffa9761380a90f9ade8e748b6fca7e817c810bbdff1d0c0574eb00664067eee8114798bb792fd313f41cc0c3ffcb6c0c88d100cef1dbbdf2e2ea3087dc36a3a3bdeb0e73c199b6325f1546c2864b24bae768e9372faf7db8eeb0265e490328516ade0d230a22bb277bb6ae45c6b4936bc946b895e379b8c516fba82afd5d83e1d4b92286c458a7eba4909414a92a32ebd161e74733df7192d49bde98f25774a3e18c401f59dea3ca4021ba0e18e660a50f3212a7db52534d9cb47584105ee9269629d41ea95899d4c0da4657b898e08f00f8bd7be30d6516a27b1d2a9d802ea16929b27f190cd8f2308d461c755516b29724404d358113e20573fb7d42feddc2a0d2bd3d3361896ab13ad0c8a1ee4fe3f8cb792ebf2ccf73c6f1b9ffffffeb816393df14870b5e0ffd1731d01b43925847d740bd3f3af2fc2ad08a18b72d456cf59bd09846a598ad0314420143a9b6ddc9f8bd0eeed0a8aefafcfa6368e8b13f762f7c810dfcffbae72e179ce3356119abd2beeef63615dbcdfc8a4defccf5da55f44efaff42eff60d9b7c952fa11b1f47f94f3db7863678a40c898bd08e76c595423fe4159475df1c41c4df7131c99b3202107efb1818a0134eee626fd50ac14c4bf2e88d5c4b77994bcc860f5e083ded4726bc2db8c356f50c6dda8bcdf70fccc2bfdcdfb0cc9b9decc4f9c71857f9f8d0f4594810f4acbeb8e5fa254748bdd4a12e1188f6f0abcfe49bdab3cbcf7d81aeaf4beca0a1f2872e326a95bce12184c68464aaca381a13d2a88dd9a93c9f4d388df0f93b14f5a0942a1df1af61d6e7239685210eeec32e95126aa6fdd07bf90bcd60faf29bdc2005231873b8ceac2fb8766853079d8884604dd88959a2492d67c44ce0a47b02975e59bbb62a27cd61eaf32e700e5be0700e621484a58fd100cfd1cea9845443f6d2c43fa204a10891952715d05a0608ee588e839ccc4380b9907e68aabcb40e5113f65b94f97a280a17a5f17613a6aab440a22f57b8f42b682d832f5c3bef15a77e875b65a5946853250a1dc18b94428a0d292026c066c91c2624b707e6a72a3f10cadf55e1b64500427915942984ab1c41997a2e3cf43f173f57a3101adc9c6e539efbcff33a303a9687038eb31a624a2134339de4d6a6b430666d1b5dfd8d865627031d26c678371bf463d0b0ca1fba37145a1b12d15f33c1c58a7c8d76d13f31e7c82bdf6c7b535c40fac7e24e1b3c4a752bf4efe2eea1b6b9f277e29fda324df57c26f6028e21cbc94f1cb8e15e27ef9dbe0a20ffdd4885ddeb81ca9cc7b9f0c4e515316f569a725758065e530691fff7b3e673f83288686d032ecfec2c4d96dcde4c8cf4e4f0094a6ca7c34bd45bd20e185aa7bc44d52f3681dca9af9c7eb68e54b0b60b99a07ca669db7a10242b8df6a05bfd16eb69f0e77619dc60968374c49c7da6877fe1c9208d1681de868345d851aeda6f1aba163c4dc68d6a6592e1b7354e6f8d6745ceb088e4e81919a03c1555d44ae1e8ca68616a2e3c649d11fac461f60ec5d2fc3d31c36dbbd9a4536f483440aba0681664f9e5147bba825305267770cd0af99b6ce0dc9617b21fd429e3644712c12e3183d09d848099612c4dce3fce6aa2da1265f0e4a0a66af8300368ffe9c97800e022540a822bb5461a2f8f1f474bd416453927ab2f25148b24e654690c6f7472a066fcd1de881d6898a959f314a8e827fd4ef6f0c3ee6c4317cc6b5b8806724fcb17cddfe18ae2bd3db821f2501cc04b9e334a6fbf5a85e73f03a84f9fc9f22601b5e30feb1fbfb6eccca6697dd3d7dc9caa2a170dd5569f913b3c14aec7e8688b5248e28796267978cb8f1d5d6ad5127968ccca20d25684aff17c3a3febf7318df70d4d95bec770b33ff58b1a7c83745e2bee8a71297009acbaf97e970fda56eb9f0ce6d89b6eca0ebdc6d8343c93b35a36c472b129e9b327e341cfac8dfb19a9dd01c09799411f36e61dd1ba06b936d180679e2d2e1240cf432f88fd4e45b932c2783b6b92256a49747f23185b9b4c8204ce65bc7578d1de21e4506abb690dc7160f788718a6a2c34707838bed73b046e50ea2394707299c139a34230370cc0ae85dc4cccd1a24a1c7ee6d51928f44fd86d2ac56c37917142f1d173bddb6b9660656c3295b27cd63824d3e6f1682ae81de04a80e9ecdd3f1b96378ada8903d1335d8d60c336f8a38416b2d8bbf11709308fd6b0ec4ac293fd72a4065432d0dd53fd9323003469b7e20bc8e7f8b85bd768eb7aa061914420cbc788f8f9495bba5783af4d6c111f377de5560e2958cf66eacabf1de921422d40d801d1a4f6d832acfd62e2cb19a10f7753817400ef10344ff79077d52f3deee9e8f82fd5255c3fa37237c5e5abb836263653995b9b7be5da891f8b8cc8a44f8e6d0037956ab689ff1ab6624564e14772dc616a48062f8cce7cb323b92e3bc8d14d08616b025424c7e5e600741c9c4b2e09fcc1f6a70fd9f3c0906a72d3975e0f182bec51d200051f45a0856d99652e048876622e0ed5b2c07faa1888c749ddb9cce9a0391d300c5e94e5a49fd43560c8c2352ebd6aa416765b58531628145da39a7bd322605cf2f0061efced91b802e63d50382bc7d0856abd4f017813242b602f534a1bb4f03e90b9d413cd984115931088e805d7c0be2dbdaaa90adb341ddb1d3e801531ee124f332f53ae841f701089710c1e2ed219d8e4c863448a2f67ac4e72634710422847286d48bef2366b78f606ef3aed1ee3f56c2e44615b294fda7275833991081c525e11c4bf6e5f1d9fe5f77d03f76809872de4be4927593c6b64d0f554a3630b2277ef66cafa8e39cf6f7702ea0add7c13ce53013d2cd1ba5c8884a7483a426264dcd4887ff6d7b07469ec651d060842b44afe989f25010c96471a4df8948ef043f3770d3a22f421d61687e40774ec0d452b537cca76e657f0526e956494ba992b8b485f6aa22f38168185d158d23156b0d916bb8c5d62544d67a09aa92bd41b10ddff32922af77392dbb4c1f91863141b921ed0959ff2b53d1d8846f48454592b27206a3f6a4f04cdc1a7e34206f68108c0fe73cff22f829590ef3e61758a4d20c1b64e8c361b2ad539d14fb779cbe4d921b6da26b605eaecde9f5110ad29324faca5cf79869035924ea917f4f69625f55bbed36ab94fb16800f3255f353668565700a617e378e578bfdb9b19704c5ab5f6b67baf2d84c12b49a736f1feae2feb7db3d462be6b09bb09d0bb18c871333de939497339b017d99946dcbfc94266cb5e6deb46f53b7eb2deed2f642df66f5265afbbdfeadab977eac94879ff9a823a0fd0b08c9b2beff20e8a3e947e29e0a69047b18fa24e4aff947ba1ccb998385d6423c7bbd07006607ad4946c8722d3fbe7440dcd28371b346fd4346cc72133c14c0a9a9eef6c10d3c3a0e91be86ceaf7e7a60143b0c2fc67094ce811be0fd783cca5162bb5aec0d205ab4b2d506c91926565962ab4badcba45ac71d28c02cd9f3f62681c212f8512314427e895096d921ad4bf51cee2b3fb2d8e0dac0673529ee29b425140d3904490761043a5a5fbeaa8ec53ff1a2b47caf733653af4e95cf98efe36553a723f252d94b60ee7495096518e8caa46ec2ffc67f6186dbc9b73ace2ebe60ef4e14e6f15ceef95534dd4201024ea757bd9f95e9796d1ae33d184e76e93b9a5da10ddfaa63cc3ce799eb35a0ff234db89946f58f31b0b4c4a42e6ab4aeb0e87ac6536d43079be3b43e32fde7467756cc9ee5c16bb3c375ac75bdb650cc47713ae4379c9509965cc8763049d4d475fe5ff768bc3ea77cc12275a91949787e2d3db165c9596cdb55d5eed1b171f3473bc80f3470ef6a0fa4c5d3cab6733768ccd76fb64dba952c95e2563990e4d442d2875fb1b48b5067973e0c490ccceca915e163804246ac9d6daa740b6e5eaea0a0ff08b2791e596c3d2384236580b9f39b1622c58cdfed790f726071c8cb872fde1fc83f5d2e0b57b56cbb216a9f17fe08a9569413f61cd7529876bbd6941b80a553de28ce35a32409d412b0507d24f63c66fffa65321caa79d3ae7872a56155de729ddbacf99f39b485f3451b618d689eb5ccf3d8620741166b41bc1da3406401c9d1024831faa2d95e0c6042edf66c9928107ed3ea82b80783ba585e56eb5592bcc04234f97b6729ba6050acb159a186ef2b5814c248c0a2cd346c728fb0d4c7fda47336a1e9f24035bfbaf506a2592ab3ec849db155954846f9135ae0c1fdbe078b4b34042cf6402e21d67bdce431b8be6545a21953270f733fdf6cd5950e1132c841290bcd96913cfa0d5fb1bda346bde371536ee4e44ae27c4b42e53817dc6f9a291c4c8743695efcb2ae4ef2cec7a13ae3d5df1414b19005dc13d56a86a8403119f195de5aa47ca2a3b3533dd58cb15a8f8edeed650e7e792751da58225887c046ae3daa29e6ee23aad9767029bbacc1a923fa2874be82523c4aea85ea5a44dc4defd03811863f22216d4587a43be03a1a41af2c3985676b39b31d3ad452f36a8f651337268229c96554355c3bc5082169f04bd3eba4cbe19a48988f3bbe2697407a2d280f0b3535510f5d645070ca24e1ea0c2c2ccc89383bea5a2c3e719b84df9588283ee8f049f08fa2582bab5f9fbec701ca3e96c7281cd421747078242635ed6fb8b5eee90ee20e45d88e278ec811c6e087b497adfa6f01cb4edcefcb4cbcd96768010e4896083694a81309234e4d3d24b735eec2f184a8a1d5e4c7617c3bded87014fed40edd08b43affa796b16cd7f789b6793c4bedb4e1aa5c5aa49cc1d0c3738d1d341d0f80e880d5402ed72c8cba15484a8147ac5d02e415e06a54288ca41ef90396897425e0ea52244a540af643eb4cb909742a918a212f4caa05d087939948a4054cc30f44a401723a4e5133b5c3dc42ed75e8202c804103340770a6962a84d103883082164e62075520d754119ba8542c71216613ada9a2804e4822719eee007117b28e53a207327e4ab653afafe3423f801629f5d80931ebbdf1db53c4788da5cbaaf221df02b05be8720a38ee74150c4404dfaf6dde58188dd6bd2ee54ba54d43710bd3511214cb5b4ba2d9636c94b6144210ce99851d56215e5179ec891329405aaad67b10b045f3b80ae79d7fc4583acbbd8983eeed4f2b5f46af105a48bcc2e035e4a7eb578dde935c0974b57dacc2bd661d7be4611dd383dccc5e3e3e45304b20fca6e30eb109b622c32a9076737c83a944d611639eac1d80d643dce4a962228fbc2acfd28ee5129c8229f7a0fd9a8291bc56c43ec8db18649399c4d204b50f68559db510e6313902538fb1eb271caea9b72fda828633bc8ba3e3540d6a3ac74a7506223eceaee61fd265e28c6a761145cdb2b29e17a3c2807bbb3ea8325231e105c9a8cc02e5a243cc89841d170cf89c25010e655178540dea84d3915efdaa6c74bf99af6775bb86a9e02eb96dfbcca6b27d4fc72002b3481c94015b76d551e4771b7586cfab3b0a5958c2c124256d170899ec46db059b04e87d358d6ce8441624895dca4c8e117f9c40b72549d9d1c480bb189584054e11b786b80d9e543e87d37dd888cf60bb7d6c5ea23a78c58ce1d3d3fa90ccb5e4b1b6aff0b947d576aef7001ecc9e014881119df5672e3a56ad1b1d4b541a1e8e44aa2c48c0cb75db46ab03c92b667a194a8292e32d6a55675f5bf9cb10e838348c16b4ee8ee31865bb0525b01c61cad4b7a4c00ca170db011f3056ef7d2a9cf1117cf17a54dd9854d5a75755f97ea5a012b5daff5403a9bb27a5ce52cf500fcc4209aee76e1e881c3ca65dccf0c0256cdc5cb33733820c1922cf2c0de74ad71439c7cc700ed365a9b80466b86ad788709f3c0df47df32827e3d43e0930066820e10ec62cb015588cb6d970dc63c1f624904208121fe89e5874552478d33c3539e5c9e384318aa100c8fe1377aed30abb984a9df34bfa19639d02e05a61804625ef4a4c3304cfc202c4f283a6fe10c2024a5411a8a5261a17bdbdbbcb4149298850eced821602a4804c611ec07f6bd22ca9151253c7999144aaffc4b8ee9d220139deb787e6e2397008f153a7f8657e063d969067f9870037f90a08abd891e595cfe3fe6689335fb671435361907ca5901c620bdd72e7f2093ae821ca231d192aa388f134b8fc65c0deb56416b3be01f314cacc52cadaf64de5e402d2ca1ac11d1306b9a884aac884e0c035cd89fbbaf220a149c78c18abf802561df182d28208ccd1965333f559311be7156cc7e6c115aef44fb982b369ced12a1761e43e6917b5cd7c6a8be51468ed995e42b4afb1c5e390bce4ca88fcd019551c533f4bc94ce907791d4549db1f2f69b12048d53a1057c2299354d719cb5d2a55a218e0900962173b63518f0ef214feb70474ea6c17c9903a5f95ee475074b5699c278bfb4f205450b70fc6dbecea019155a4004ca7d77d1656cac4c0f58bd6d17e6740c4970ea09baaad5f51a479019663732e40c079e1bee21db47d5f3f87cbf57aa99fd1fa37893df853f73d16f31b62051e17ef5e2422b7acb67dbf2bb897deacaf308d48ce93d0ea62bfdb13a556182d57399fb3e5f915d82b5fd243138593d433556ad2dc414c766b35439efbd778083b3015da8285ff019c5f8ce9ec1c5ac104701c3056052624eff2174b2efe57773a7f05d54d5126557fe2dd6e57d258184fe5161990141d84f75d52bb6ddcde9344d9b7ed5f51ad16f25ae67e15801a9190b9070b6788d0ed5a803fa4d0f04c2a6686c6eecf252560889526b74cf027ec65cdef8d3578d36a04d75ccef31d4911baa4aaeca9f0c89f6f2ab818ee5eefd6047e622efa3ad70fc7bd1fb47942a64ce085dccb5cb50a912262bdc48adac52005f50dbd3b1d69e08f6ba2653dc09c282cfa0fa19cc6065ff5e75c7e963a9add3bb78bd19b038367bed94aaf6fa7c6789ff77d0183dd284b4cba069e12efbc36c03066caf7241f1b72bdeeb28b864fdda8ba9796b3c6cc185e7a76abb46f4a165db664e073d29249619d5af5935ef9c9492154f82243a9f2f466212cbd030abf72cd91346a405fa790d131b3f763087a13e55ab9683d607802535a71908e6709cfe89116d5af1a4137652e9ecc374e9f2a0fb7bf060572caa0a0fe55d097367ecde0b36ef30cadbd3b0e5619d837a74c96e54e750de95623cabb2b7930db7231c264d41be6cc02c0d889efd9e7ebad53c0e415d66f557e70b73a6305d97cb7c9fe79e3b868c58991ac030fad5fd0e96e8e42317b0b179025e39943fe6226b94dc488532b99eb0650460dc07412af3213a4665eb9785347345d004493ced526e8a30c008e1bff16ca18b164992b1f275ac201c6d1e559fe9c928200e235c74b21b90ad02b16b284734f2f4b198488fba7670bb61997e923cc3d74760670df3563a2bb0a2ebc90984f0117bfcadd0b0349ba2994175816540bf429ba4dc3ce0fcc5c2a23a37b2dcad2b27a3c85e99ea2e45c878bf94f27d46809ca75c54897c22f2cf9146baf0738788a6ad97ac5d1bb975036e949e0efe2561c20d83c28800b9d1d3ca525aaf3436d387d73590bb2c4e3efbe79e233e7a333e50c639ba07f116fee5f6f20c1e9fad2815d848c89289677525fcb9c21a662bcb7e70dce7d688ab492a732500c526b47c7068f59e2d1cf60bbc60b7e073496b7a5633e301e18bdc2f9c1528b6e4c50bdce3d0699dcf6b50a199711cea0de8b060c894fc8173de47e4e9f39f8a11086ee6948333ed7a1dab80e7254e963eee0a4cd300279040c1ab65e87b748634cc12d95e90d1db63afdd4a2677c7941dee18c91f2d60b925cf036670d85b6cf70fb960d105ffc4851de55f05ea8b9553f501ee8d4b8ff6d787f32b6e9ac1a287f31e4efa31fe3b065fe8580d8397f1b8fe7a1ce09c3275897b64d10f86e82799cbe34a5030e12b46f53d7874360c6ca23fe5c94c812a7af117f1ebcf81c0ba8edccffe3fa11f304cda6141f274dca1cafbc92d3ad9d9915d2239e5e23ab6f98d5663d278f57a0897e2a44587716e7ca993638decb3a9b46850993c005ad0449168d7714cb4a4ddf8f21590d1325843cf60ed1f955ec0edd5cacbba4fffc6945f6c30a5e378593b2d291df7d47eb48536cda03903d8e11025cf14c31309850e69da5db39fa66486f86727adcfaf3dcfd3eebbe13ae3f3f40935fd0715ea8340aa8ce5462c2384d5bbd97380fe612a90f572ac2123f1652026d168277eee51977d8f9ec0bbef5cf41d7f0eba7c33a1bfeecc9a375e0d3ae7f2a87e82ced72b3cd523b58e7fc8198d5067b23f1fd3ce4f4efc39b52a71e527998792ff06a8afa95ec28f113ff82fd9e9f078bc2bfa1c2fbb35441d854a59ed4ed0b6979b51fa850c7bda0ddedc14eaaa5dc26f9ca8780dbb9b023eca119d1105542e50645f217ff00838f4d901d22cd8dcb00c5c9e8fd4b66a6a4878c5501232249d138836ad0d31b9780b2679a915a65537c2f564181bedd77d8a95c7d42a74754264f8a491250f38adb64bccae2778cb269fc8c6d8ca991dd15e5812b174e1ff9ccaa7f63963fee46c0e49d63386a16d850ef0f40b5569a1e931292fc329cadf3f7152e635a1ffc6239c3cb6cb8d67a544dca7d6d0d7d062afb7b050fdf800da9be294e82c50402749be5341dee9fe9cc6b71f98be7a4d6c0ab4eec780e1b6a8bf9799d540da005b7e28ac067b13ba017c2af50b162f4fc2406e927427fa761b67b6e15f3e7d3eea1d8056f61d51cadbeec76739ffa6b64d9f25075638fdf5f17a9fb9d61f208f580e350c9fb53899fc8bebf7580b788dba697b248a8119251f5061ba614469cb3335f63c1ea128401420610bfd5e211bd86ca202abfa608f0702fdd17d0804f5094782364c728001ef3dfe78d07ede11d6f1f49eba3fded30707c3a024e4fccf7b653d0d4df627aab87d6fcb011ea1da6ebf2c3cc31d6f25a9d2356dfcff531bafad9f9c15069e24f4a1b186f8d01e3446dd7d542a9c690e3adb69667def8f147e99c0f85452fc37f31f8e6a6622cf58f787740e44e7e81863e9bf5d3102b66292b23997a74dbc6f0d830cc221be41e81be594b153af73b58b34663b957db8f6c8bfc64c89a619118f9fceef93827118bbaebe17dce2273183cf7a5eaf1bbfe2d993649a7021755c302a74a2c134f225afb3d08ea428763efd5fbb3626ffddd45dfb59f6bed167ce3fd5f91e7a9d53a218ee3373ae703111c54404e53fd367e825b89eab7ef0903ad8bf617f877c3372bfe8097f9b71b643cf94c0f94671f3d36775a63fce5f36d6d5bd0675d9d0f73892eb9a04bb261fdd6bc3554bda6568a7a31bef3caf6ba6db9d4dc9759e6738e26bee0790a7250330f67f863e433917fd91c0b56dda19893a4c1eee01d683c54e579a79c39b7e377d04a21ab39dd8e6aa2afdeee8e7c0eabd50afc3545107dcc663d7a17e958e5dd194d8d38b582cc55693c89513ee2713813356da0b47d9043c38661a89c32a5ca2e2bbbc45a7883f9976db1476123f6aea99f5cf881c8935ddf4f6d1bf496ad94547c8bdc9d7cc74ad31fee869ef6efb61687e216eff660a0ed27ce974192bd7f0fdd3b79964cd919ec8b599cfc6f07a33f6d8abed273d51d533f6cc113b17b5b8eaedd2bc93d5b7c50c917bcad499eb5f31f9d26bfa892da3bf93f4b20b8e107bb3eff949ad23ded195338fad90ba13eae8bad4a0a541b881dc36506d86b341846db86bc6b506546dfca859975d42e49de342fb718bd17c15d1c75ce170769709b67a10328ff471bd764676473072cc5ab9b1ba0d096fc834665b3f1cbf938605dc241b64ff99584dd30273d81df52fe758e02a0547ec3a1acf1bc7e0ad4531fea28b3336814e326144109ae2c189e3b0a62db3fca2d921c67fc226b26f16055e537a5b88679c10633d0f8135143e9b2e8b672f30ec841defd766fa955685cca188e448c3f82ed5960e84aa9787e1145ba19bd97d74e76da1ba7fb9de8d0ec184da7c0f8a20ea2ca0a7b51d5a77786b71defa251674eb089401d7622c4befea7cef43d2d734fc2854cb30aacfe307cdd868fdb29841f48934db6ae3ed18d1b36c1c05e38049b63b87305e22100cb34b383b67f068d3df3b1aeeaa4153e451834d3bf376a81a8ddec8a8c82c4b6c6a56ff94c142c1727635b45004badb22592a85235f9a6340d8e1734a6ea432a0cb0e2a462f6cbfdf11ed7ac2e4a73553c304124efc168df4cb76c620dfe131c8c329425245c5008306b881bfc503b76e508b8a9d0255a72d64750b6fd2c804246bea28b440569e48ae4d776905f0f5381e4357aaef7b301e1dd5759551703341051804fef7619da525830ad1a6d96582bfbfa0e53e82778c2849d581b36867b8f5962d712816527ca2e9ea456cd5ce0834b1e818527140c59bd0bfd8a30363411fa39ce54f029b9e07ea1453bc94d7f502e5cd14e32f6dbb8c28b6e8779a3ac6d25c0d3c8cb4fd4453a0de6ccd026d1388702191f60512567da2a4c58e552e32fcd858c26c756d2855c721fb53707c3530399064d317894a50d51dcb4358a69bca0258a54b2d00298804dc426531aec7c7ec3d6db78ee680bfcaae892ecd827df6d433a9f3c020c83a8dd08c4b689f9e876aadfec7f0d5112836b9dc7dd6144551ff2257d12c54b1dfee77cc83ab786c0e1487eab50fb168965fa99f89c870f662f284915e8a92cbd13b0670b13e099df5ff408f319d6637ef77f945f7136de9b9793f64393a52cd0d2223e25c5fc3ba77bb8b343dfe81be7765206a6418c76988f1ecab92133ba458b370f572bd8a32b02739d6c070c2b01359171293f1c81f370523de63ff099d4b676d1793e992e5246372c4bd7324c2686f9c8d57b5262876855793ab2f70fc0a884c774e9ec3f35b96e3fa9ebe6174318839ff2d41f482aba8b65d5e0e7c0a8aa94cf89bd75e119adad3b68c0e19d3b2879cb1cbbf88f85ac092bc6d68d106b7951a049746513bf5df984b513dec29387fb919bade65b73b91aecbc8ef99dd2a6cc1dcca60b902d69378395b8ed8789a1d68240d794c5a6edb6039ac041a1ec5377b2140e2d17fcb1f14d219f6c07f7570d7ee6c214d47f910f8a978efc83ab8dee9c4750b497ff4e7bacfe14c76f39593c0ab0d17c452ecda0b4da0c685969737fbf789270a2b076b35f032d31235d7c22ef36b261ff522ee74c84fe7f61f0ec51da8b4e3702ced1072b16baa38d5fdb201cc8b9c1aa1027378dc4b0f78f8c6b4fac28bb45aef95fed4b193ef71f184ff4190adec898be568b03dd61532c8eb6ace2999b7f7a4bca5fd58f14bc87077191c65388d0fcc312b77baf78386318258b14bd586cde2e47110936b0585b9cc47d2bc7a7f10d92feee367b2fad110d74d3cdcecf0402150f3e59288e697052c0570565ce3d8c08025440e0f2cb318324f636e8ba9e36ec66d82dcacde64b6b85321523f4321fab13cc7d7e0b82a9cbc19945a40610d95b4395537ec95adae98252f7d24ec7a41ad42499173efa71b7232be33b010a64280e9ac05d0dfa0af052d943c25114029a8d741ad523bcd9e96a44ace936f492f549fa6d5ff1bce77e67d1543e86b18905916854f1f95dd43f0b62e46350b532b589d8338d7c790095956dab88cc90cd84674e03e8cbb904cde1e3ab2d6bd97e8f9da08696717736abbf2b3d387c6ee9edff09fcefe33ea82fb27d8841b6aa6a3fbac33eb9da8d9043906832dde47bff7bd4e9f00c47a545133e28e7b1d481c581147e3f5c4da4abae8cce0b849dc419b45d788bac1d7fe194b0618ce301a7530b343f144dc2bf177e3aaa03b811c72094fedc967da5de43f370e63d99b1c1e8860503d197967abd62158e8bf18bc1023b5471ddd8011aabf45694c8f08cf27e03e20be8e094eb04a705b7a8c6ecf71130b964e0a8b710b48200a6425236341820a6de6654fe30e4fd8cad4342df56ebf9bfbfa3b78c3c5615458c80298fad83a6084a5a807cd51f2e4f42e83f7d6e90edf00a961d77a4902abd108ffd84cd76a7c921c5fa730e74641ce40ae96050dfa7e466e1282a0d20da3782098fb905312f54e0b109521e6b9370fd0031a20bd544b5616f629885edcd13241d61b50eefa1745dd18c501966fd3b48989540bb5b1de25462cdbd45353a2fe7030b6fd066dfd0fb0d5fea33b12fc3a632f13a821551e5cc27a695cf89bc483e01352d094837b3c50a65a96ef2f0b1a7f4fe100179d9ca8beb1793b1a65eb4180c74b8d2b7c3c01e2a8554ace7b20613b24e4aa3b856d386cfd3e7318ea108097a8c97699d0def0cb8b62def6231170e8bca3e51c198093e7d9799dd2adcc4c35995dc0a39e66459bd5afecef98d85c86d9db7a82ca9eb340c8a318338f549769da01756361c6663105987f3a740694d2e4c822b180adf34a8bbe4099dc7aa77905cd312a7ab828a97852e2d8eec16aff44fb618c3bda8d4ab889216961ec4ca7e1264c7f5d32d3a26efaf424a3d9a4495f131720ec5050f54638d23442e5d6f136ff5f893e6ef3b3d28dfad7fd7cae8e8a0ba2c93a073851aed5e88a1f91beb8f3afbc0e92a180ac9f98e35696e67b88ee43c660ebf51caf729a3e771942fb8e819f9efb8ad3d8154d0f71cadc285010fa81baf83a014ad337944f4ede666c2d061ee766a7557df2e1b7b3928fafd9d0a008e31c6e10e1d3f3c95fc3fd009e4503c4e1f2fe2dcfd830be5e615e4c67d5f69355c58e230c97043abed702ab8af1788ca0d4bb45cf663ce00ec1be736ec3b43efc0faf79482062dd07c58d9fa08d6feb50319de6fe25d7be58d8971e17f7a2e0a11ccba66144801a7efb1c5b2ceab3190f23fab44182cdd0b62c2507569ee5fe83e8d4a5734979b3eef8ef432b2b66289eeef77e2fe8413dbd720efb20bd1d0355f70cb71e3aaf5e2b388ac9f5ae3e2b8ae9eb108ecdcc2f86c572cf5eaf80810637d2421ebdf80d6e63c064b1011dc59fd2c08343efe6f88f9d1133b58991a2a87a5aa1dbf76eb26be09e7068009d541b5219a3120c380099f45f3476463e06812fc5d820488a429f2385068ed054b2de1c7804034cd8bb33b209fa798f6acee6a58c66b8a846e4bf4e95b164cae763ea5cabd495c4147aeed42d9529754f79cf450a61aa2b8c96cdc5b1902b0ecb2a168a803f63d2569be96d9ce2f64af09b52aafa83f42f16180a590388014f600a19a02da5824fb8f66f86d41c6119d724dbeb7214f06baef17f889765e7bbbb79e67b1000f059232223d31517585d2f47d3ceee75d1679439722a1e3854c14550473e1297011d13040d610452861e39225506d2c777467f6abfe41376f7331870a9d00d96c92ce3d620611e142417d2ff3178fab844f90ec0eda87ac23f72144953b5f06962f8b027377a77d37a07f18739b839b7db41cd62a5b971f9be17f70faecb972332a16d7863165ce1dc43ea61d0aed9a5f400ffbb1bbaa83db7b615f7c240c59de73908138ed2946d6de3f144f046404349d7962f51b13ea836e712467539e8b3861cdddabfef56bc5d39d873eab759fc690b3ac8edf77ccd1ff4dd9f73e59853c7595c39d50a9bfdf096d2ead66d508296f37144b3058b6a534c40f935e24d35a11f3cdc98d64d8ab8b213a0e15ba223317e4f22d4e833c902833b59ca4715f55d4a4674c7aad7f00a5bc12abfb943942c26aba1e976742f485d4ba9c7e1853142bcbc945983d7494e7dd8ea060f364f365036c2e018b8aee4d42909d81d69b540a1a144f6691309b0f5bb999953c6b871b8b0dd573061975e91029a29be6f2bf50aae7e91d030ab84f7a12d40907b6e23481754c1cf5ac6abe763c3fcfc00e2eea343a0b1569207d884cc03d3ff1956f9cb52a3b25224bb372e7643e4a64a33a648d58b21a21d7bc2c4c6405d40ce609d6de10d097a68b541bd054fe182d6f259458bc43f6ea23e3a02554c26418a6fa1f267489e0e043578cc06f3facaf55c429a35c0932e21bc8d8051c18d9c6f3c6621f397b76a9838d6ccad4a0cf94bdd7b80abd80b9d7a6d597ffc0ec60296e6f66964eebb1f71320ec7164fc030535d0db177b3250f71c84bd360eb238eb543d3a007692af60535a2b5cf0939de66d696575d44ae5a77c31ee4a7b9aeff5b3d67023caeccb33ff987876dc0b5be9e3ca954287369ec39484a520f67e3b7cd8d6a75b2f51b81173d5e831f84286b82842a6ed27e993acd9c8da3514ff1e463e47a21e32b2d2e7cece120948531ef905b25be4d0972444884d378f9cd8d5b7b44c5a519c680fff3085e5f5dcb5a4a7376334f21b30e02c5e34928e5579d720b73da7c7c34e3b58d011fb5f22e8eb5b305605e32fc98d953c2746ca89de1a49d8107cd9a00e749cfa84d9cabc80427334ed6208742cc0ea67e6094eaa1c01253107f871f9a9acf20c0742c333a2ab5d5d49e547b96d68d26d1e1adce22bfb2b37bf5b1c1d5a7d2e4f038efba092abace9e3d40e03244468781cf04155ba0b8b0d8b239849e99598331f794eadf09eb721575aae1351d7c37ab7fe7b416073c067ccf111a9d483c26601c8408dc2cafa62a2a34d7625bf413a8b3ecccef4fc96c6158b9a7a17a889855cbf09a8634fe85040f47d2e1b22511db9304873c736d4b86824d30315369c25836effc136ec4062553021e0276d2c5620ce8ceffc3989ffc9faf94f5a7d563b43c0365fe7296b8b92823625b19178df491d6730dd0f40ee20f205d01a9b3efb0ac2796198e9393da8fe189fc759203db41823017e573be77e4c8ec3ddd76a7f2ea7c12bfd700ab98b2ce338941cc8bfb60103a40a3f80d8be317591e53ae1241f2da01b72715aeb0f39ba72fd13c30bbd41c1d5347d363a0f49153f2c7878d3ab924b3e43279720af7de1ede2bdc6af63cd57b6fa221e0d8704c79e2d250a40989645fe3d2c34155883ba69aa071af94af989a118ba536456e4a07387dba36efe7dd5207ff677682aca151f3d6aae1ee2f0498fefb2a9ecb075cb3f9de8d0e26bde5bcef9e87a5377e10e9ea97689f9f2e1c12b6812972a5099f1a0c08d3790dcb4d4ae199bd2cbc21e58d5eb29da4e12a941cf958c6598f2cedf510bdd6bcc4bcb8dc1c4cbb7b78db6e5f334e0a1dd054beed0ee0bde50afeeb8423eee385b3d6dee8b0f1a7be1d4b15b5b42ab97ded68dea7e009162cc7d5d904d509082a26445405eb9af5dae352446de141043b21962a8ea4fbe66f1a9d5bac59b27f17c03ab7935cce7182bf373849dae0ff59533eab4e295264e61ca3f68be245d5956536d16b517d742961418151bcc6b531d740be1b0b5f062d5f7bbacecd9d8b1dfa08cf99b9acf2bf0c98945981d78179ae8e26c580674b305be76d6c622d9bf2da6af5b8e88b5504e722fd0d9d02d24f9e1b52c11c1d405c69b6c65b09e041a2538b18c9b359b9a1645cf7fb648b657d4cc3c178699dda0789f14aac0f430f552b19459f8388784fdcec533e6f9c7d3ef4fb86e92a4faec977679ae8616d5c3be23ba8f141fa685667e36589c16658fa89c07d7fdde08c833bb94f95fc717a24caa1a16cff639d39049dcfe56fb424b78ad1e344b2bb7c3cfa8f3e9bc49d5c9e30e7322ea6ebdae2c5f05f4219ec019df9636078886f1a86e3cade0f035c618c091914d261db5c3cb5287c05f4703724058bc8df0b5c89884e7b1bdd72328481537c95d18cdee446ff399544651f1956b32ae3912f3066eec5efaddfcd578f1bed8e563d044f9d3d3ec292e001580a9a7ba92d5c77f8f32b0ba24c8c5ce4c78a1ba92b472178d7b94739c519fca33a143e4c05e50d1bf0264f46d628ca6786c674323e0989b76eebf39cc42897ea23da4d544ff8a0ec8a4fb44d4ee751522ed652de048386cdf651a655fbc67388707c6c03290578c837db8f79aa37f3aea33b4a49074665196e75c97dbdac9808cf29cfd53b1f1d59fe701aff68f91924a02f67c1b3d75d68964ad62dc71bec056404fe80e96fe3019ea81bdc337e582e2c954ad8eb852b0795f39c204af63b8570ad88d4eb47460b797ef2195909ff2c792ec8277524fa0b3f5f9ef5497890338f7ced30b856fefe3ff8606da0fb1a92416629d5ba6b3f37bb54a0271918ae5afd0faa15aca23717bc2cf5ef1fb06f21b901a422913be8fc964973641e57045cf1d6339298247dd4d9fa0c391579bbb88ee80488be360e7af9f68734f4b5fea9ea39d8a527434a46da78e5ebfc783aa59969b5e4e7b5ba459d832b491b59eab717f8ba1c227b562851e26cf66fbbf6b5e9c53f697c6da00686f408568ab5dcc415622a1cfde465fe9e636f84cc94a839da3636c13a24c0b216df6630e1333512369c23e8c208f27400de1f467cf8996be50d5ee169f02f3e90b159f2c3531030a0f57031e4cd887a4cde7d3a87d83d17616b0a9e2e6178447b23a80dca11ea318e7e73ff7085fc27a31da077b1500ccec6e3e634b939b0dccbdc7d1cf9e0a533bdffbeb3872a53230e20fe823176249ceeede4ae16fa1392badb1d732bd803a93e2d8ff8949781f91849dbb0146ecd276e8e9ae9f5bffd30a75b8f97def07ec1fcf93a446650fa02811422ecbffae1b8d457f7cfa738585f05a197a6eeb523ebda9d1415d7cda62b7bd9c917d431478e7263dd8713db6d8af75c0698ee476850b9d707c4b4210474b0ab0c21b2423800803eafffd66cb7fbbdfb6526fe452b19e0adb16826f5acb09a2e6a9b0a3e04d21b5939b8731deee4bda41e081dc4a0dce2a11388139a2df4ea33131d34832479c1b2887d71019fe0d548cee042625df4d47500f70a517eb43282f29b4821183942bc1dccaca1b889941cd4c214d4c209318b99ac1c71ac7424aee55553c3c4dd71c365d137cf4a44c5d5b93ebe3eeef99308361aa1a6a6ba59b132c6fbac66be21b6ab3dffd74fe02ac6ee42fae30b28b824892407b08423b1588d9451605ecc1de724d8eb20b54e706f23a7ac78290e4abdd4e579b601346e35838225c3af6b3d3b26a343419ce5199f5e8b7f5573af014f7a50e9cf15cb3ccb522f6bf0e6ebd5f3174638d1d206e6434ab51d3e219b4ab64f86b76b367ec0bf97be1fb5c79d21a349df2d93f11ac1b5feabfe7fd4c21d8b763b76d82f5dff6477ea539a83348b812030ce44816f6055e9addfb77581f4f3f13b687b29dc34bd58f8c48a1ba2f1f39737908702bc35c1f99325d4fe0a1f4a5baf0dbdc78bbedbc14754a144f4f6127cbcc91f9056aadf772d8896234d77b05ad9178f9080a49f5f5a27fd48d464391941ae7e1e44e0986efa48efbc6f80eafc2872af25842a3d16188d151d8715180832a94447b170b3c016794c19738dfb7146a568fe833b61886676ab1822073ec8a59b58b4e9be47e5bf6230321f1400829ff1b9ae799352e96a5cb05034c7ed3b83d09bb12c9528b8d84967f91a94fb5ae1f89ebdcd222b470b816b004884a53c2b16b6a393d8ea4f116705d4ba881c21e8d09d09e3b4c05b0015fbc13a62c7edb6bd5f2704efd6576ec07d422af0f40129c4c41c0144b29ee06e88e3df3760f86cd242deaca3d121a2b571a2f68db03ab1c6ea20f5163b1e43a2d4363409a2b335847a4e767e66ffba6299cf6e20ca26f94d41f3834a0e9b67f384a0d0370568f1c60e52d092368ea2aeb925fbdf25a4b73151304175cedffa6422fdfa2131fc5f52b0ff427542bce83d3c3b8378466968f2ef7d9c3e2fc8320b1c0e53c350a9ed82ff194955358f40e03a60c80dede2a8e0eae44a53c87847ec7f126c4fcc05f0afeca9d96109a322f4039abe36dd81807c5963c4adc28399fba5e28ab16994688c98ba357cce0cdb0c469564604157d7134a8293b4098098fff09910cf91f901590151cecbe964c05e230ad8d07c913771b32a6bf14ed71730993d6e420413de0438fc60764ea21c3c57dfa600456a96b52a2f8bc6afcdc3270d15fd6d3649641192f31015d344d5d68311363c167b0a60dc25911473a30a1da09e89c57282f8b3265054aa815aa3745aee48b18feb2bb205349097a9aa642018275ce4c4b0ef4395783b61d624f5436bd7cb27a8007dae2dd379bba0cd6f164a1f674f280337f4a9b5149a13df4b3994e4fb83c36c34c9dae22991deb349c29bf807e78bf632cb49b955326eeafaa9ec527aa6a02f59426f1107d60afa3df206f8083182be626609235dcf4f8efa15d8a62821c14e0ed9c1171b474f13456681cca9dfa42aa34c1f9f1bb436008467a1d025c27e8ef064b94897dc696b48871ba4a82b47b601d91a50eecad0d888d7b744d0e96e2216eceb95b3f2c90409aba9e8e469c315b4b124bf82bc12f5a8d37fc4e858722f94d5e834d8d6ce11f88c83d686a6d931e312db72aced5e1e4bcd39127aa1b7dbc93f6a2ad3f1371af0396ff30b055760c7ddd61865b1df175ba7ddcd27eb2b99bb696e8765448a580b1cf8f2411babaee0deca60b29829b63ad6d87485607005328e662dd611675cf4e67f69701c33e1f4fbc732f81c43243cfdf7735a138316653c99e4a60968ed7c43d082cfe2dc23f8abc75396ef506ba7d130346d600b86472c490662752309f2e63110bf684436b161601abe8bb8666e931bd4f3591d5acb3daed88fd1d8d431d2b98c0496eae4a4aac335a954c7a0fa4b8d04203b5a96188847b666951d09989b4facd3b42ea194a48511c40fcce9bfb69502807549606cc9b69657cc0e7aa6d9e2f328b3bd94d0e29dedc8904253ec9448e274185eebdb529081538e9f1b0711d53e88e7294f933118c4ba0d9243109d60ae5a3a0f1bd1a31f2e8eb9936d9c5b7c6bfb0ead3510c326d838814e16c1aab65c92c09b1d08b80e83e019bec808a8b4c2e365161911db588f6c2a50d9c7340cee58ed3a89959c43373cbeb1a667b17dcb4441b3945b0b0577460afa2c148b79ba2a6fa5024fbc95b6d02338b63fbaefa876b9350b4b528b001fe9cac067ed922f5cf8350708da5c4e2055d3aee84f309d641227d0a2d13b383962c1cb8f62da5de0d7efac641bc25da71ec2b56f1334203f8a26a6e8c47ed63c52326ebd90e562efe8179c7d2f9167c3532ffe43dfe755c0f92c71b0e65a932673bd13ae26dbc4b6a9d814f9f0332300985756c0b4ee5617162e09db27552dfb1c7372cbd637e1cc21b0b846c6aab10a2db9916b029fd03522db1079f9c09ff17a2c25d066994ef93c523f1a14fd76b18fce5f1696e52a6d0215fe838899f3272823608caea61844c109889c561063aab13bad762586975a49f980feee1c18f110657da1e38e74534fbddd26ba791e03687123654caf61600f9a9368327ffd4c3cd18c6aa58fe99e76ce2e6d33e37a8fe5d937648c5381cef53243fd8df8fbcb626eaea7bf10ebb383339584973cffd2e6ab0819c7341f94b45c04ab514fdbd5896cdca086f722f48b5f86b76814f2de2d08d06035ba3155e29046ae49a3350fbb0e2dece5affce0ac6a4aa01494927ce5f2f129c4d8a8fe64d7173aed875b9cac7b2d8705a6c373a36ee18739d51eb3209c811bbe02d3b1314e1ed2d3163af23a33aaa00f2439e2302fec29f7b399479e975edaa630f4dbf68da5e0e6dc5619ff02fff9332fb155c55699361eb2ed6960eae5d457d42de25caf41726f32de3241b3d9f1dd17d5cd28ffae077c342dbc18c5ede1b403d65c85cb1a2127ac96dc22dc7c2eadf1a49dac232cfdb1cb6ccacb55402e25e016d4fe3a875d423b310817a51a34031d5e06f23b98984a538789a3aa07e00d51002c535f1504760e42d32308e497ae442318247df1fa1a8b2780dac5c497bed29810b93b484b419c9bba13ec689c076c795b6e465921dc8e63878b509cb26fb2b6a8159c797dc8aa65ae8bcd60ddc4341b230e85561485947dbdf5eee9df0d225f10f1065ce1b3bf400061dfd27d80f14123017e4ced1158713387edfc662b6d1675b32b6af5e5e258e95d5d91bcc058b248da7e1587fbb17f60ba17bde7a80191a8f83eeb516301914958f11fb3aba753293f85973e4cc6095758993be2130a9c3a6d23196a6e567714e4cb952168dc392bb09842b13a0dd669efcb590ac2f45365922deef14aead0703da9932aba739b14aedff179e783a430d974b92e352eb9e46d7f2fba1cc4083b1f128edc57652ea92470be2b78af11eddb02220a62bff3c88a53818aa2045b7d17887b88720a9107fabfa621aa6ebed73af14f78ecdca0f5aa1e042802ae9d2d0d35af0b1b5232588a69dc3b30e3d4f44374781ea21154d59f77108ac5ff360bee8fcfb7fa0a7713a05065541df969af0a02891830050a15fec2b6016cfd05ea103ffc1bee73995ca5ff74b157bb852700dfd44b387c18c0812168f5dfb21c36e2b1bd81ab6047ba6df3a565a0922054c870953f116fceb18c8384cb00bdbf565189332899924c907c4afd1e1940c743fec979ae809c93ea24d3eb5f37e5e3f22950a3f141572b077b6053ad5daefa2280b53ebf64cfcde8f304f09857ac3eb61aef7fc51035c39e02491a54fac70e87cb51cbc11875f5a360b37baaf9ce4926bf68707f43af603b820aebe1f5e7d829a682aab01d25599209e6781c42b900d3f3938e5b48385213327be0b9995a8d84a0a1874aadce107b39d2c722aed8a51a3e7edc90487f800298b220958f8dc4fc030b01d786a62ad84db3f14926906bb6f1ff14b6107b91549012a5c3b009f5411cf8a0f719209b742174491df15d09fad72746edf9477d81e498b4a32755de9e77a7c7e0db35f4df60c55b631098733becd52f18ae3fcbd8de11ddbb7c09218650afc15c689110120ca16694b4c70148cd51de211b826cc42e40c5c6eea41adac08eeda138bd2c0462bf177421b91f667d8c086488729869a287f0beb652242321f1322cb97a88d591ef947f2cfc5cac5ccedaadc240484d59b80e42bd9977246bd9cd637dc3a25fb1cf7fee553c37a14173e46cf5314be769908b3551520596344984c6cc8d0d95572f1a04a463effb9fa6ab74abe0c3e5222c654c5be458977c392064159f1c0e70762808acb85b72a5c0be70eab5f78c2468c2284b74ff3b699be85ed1cc95647302821d437785c67eb4d30f72b9b87c7c42db51e92d2a0f2e111b8c7db580670951b925432a5972006a30b890558530971b3131f4a6be9785d58c6cf7cbc5d7f2c166108c04863337c6273fcb1bb33b062e4de86b3a99289265d6113679a02e9ace4ca72d68dcd514d4fe2b3cf9c67c62e2a33b5d64fd1dc615800c15001effafbc7e8135b0c2e35ab92b67a72720ee9126b0a1b12670576bc105fac4aca34d84f2a0a02b48fcb6039ecb0e1d15d7fd24563caddcaf83b899f80d4537fbc7f9ad46396fb8944c7cb592951560c30b0df312709653e22bf679576bf39a7d82e3d81edffd59534eb4b5c007b9a18e2d842dea575d580745a871c63d0dafc377f83d981d2efa2f1dabacac6b80697c4d8b61878385f3791524f866e6c8bd6ebbc9d242fb2b507d01a45081b903373e58611af65099ddcd6268f9945998e0ea1e07f845556ce20aafc4ec9a999602aa10a7b3799ec44c4c5228c48df3e608754523ed846a114387a23aab1add4458dc30c5a137173ab0ebaf45f12390ec4274ace4b3a030f6538ce3beadb278f1dbdf740760292bfb728ffaaabbc459227e388eeff3d69fc5ce865deb93c0fab797a9233046e9ecf88de45e31f107b8e66923f843cfc6c6f8cf039d8d89c823b5ffa1ce59fbedf48f2c49e556d11dbe7184a035d2ca9e8b2ccb9017a39171fda83b20279948d2e3b24560ca9afa0148268228318280da2fff54f7b13cea8ded014749336cacd9f758d283178b67cd8e197f77a7a34c0e9b9ebf2f3423b120722766ff229a0a110dae02a0c8135a494613c26e3d51f1e819536f88b28be441280091f5f7f16282a659a117501e3c2d3c522c3f3b4956a3ed64103a8fd7051bc9f8ba97bb6b57491871a8e2c6191dbf47c5a3c0c05a25c2a714afecbd9fa1b0e4bb7af9276333581fe83c6ad71a87a44c90316122af10876149a1c921fb5409bc1452cfefbda08e03441a48ac5387451d919572628215d06972573f1dab312b48499d52a2e6900c5b13edff8199e738eae2098b10bdd11db83e6f288c71e81a93f581af731350612497414d9f7a9dcaa8dd0eb7f0fa194802767a24bbce8f5b9d3376bd2e57ce7f26a63fd8cafb022b0a3ec10347109c616be79b71b4b4e162d3abbb4dd98ca24687299f41e7a1a942ea27b1581a93a191c4926f6858244a3f18c72959a938eefc3e1fea0e63257dc17d2b21af87ca65361c17ee040dd4706ed6c3fd70f1c91f059f7d269e2f7652279a738f040b402b936e18e171e00032777135bf0e80ece8cb70c9f6812ec652681d2eec7808e0c1aa84afbca326baf3499a413f0fc0489b92560e1ec09214957a7752da9101fae5794b3c9e9599ce606043ffb0cb00a56011a72818b69d8df75a0ffdb35918f40851d94a2dc769772a73285375a54fca8c888a6a6192e09996160604d53a4aadb0a876029aee17051f3cb80789965bf188b780c598c6ea8857a3996f82809bcff23941cc4b3f2b5d11eb1fe4db22deba363e44912f162a1e3e210b59870349c05908b51f88f22bb19706dda0b4279be8ceb240a758eb8cecfda00467f75da4c62f7bb09dd92099576ab28cbe9bfbdd7d67a59d1188c80aa514bd672aa2dc717b89ea088ceabe69208400f5eb7a4399fd5ec64e52995fa7267ae7f75ffaedf87d51046bd7c3629dec153579bf339259926ca4661f7a510d165c34c9c3b79c9c90c62265ca6c988ec065896dd942980f72ce19e0bb28ee57de41e905655a3633f9e8b87e3d85cf2b166beb79588fa2f71341a022fa8d204f354e68e7f80712d9fe97a1e14868d8ac80c015e054904f0ed1ca5cc6699e9a3e43385c46afc696b8b07d5c4bd1a74eef9f547901d971947f52a9fa95395f3ebcdea2e55c464a01d3f70c9ffc0d912ea7e21d864aa40e1fed0c1faa6722db54580290c6fe0f236653a7e52d01724bc1dcf5a9f9b4ff76577861b241e9c48946f465b1239daa496fdf588ddfb2dc835a118d4d3d4337ef096312d22a87fd28385ffb3879204a301b94240af5c1269b91ab1971fc9f484b26585630c61d5714c889105265752bfe75123db9b92194261a1c90916bb58e4443d6899018543514d3d0928d41b470dee205901b5ec3eb83a547e8a9b76ba8b1e5e44c1722ed5c185d1b966b58dd80917a6a64dd43d2f6cc37c4f94bb61330d50c67ec8059357ed93a174481d479623196181bb8e37393dc8a3332af2ac5eb3dc540b3d013fec2f67203f45dd0e3dc0c48d6dcbe64616c50debcc154c79808ad1b90824aa671311f1ff052edb397f934426102868fe990fae7dc48c932fb8ca48b08303d21154ef4b1eba804d8097383f76f24fa3c8fdf3c4a9d9676641cbd8ad37df2d48c615e998af5b4c5e99179df42bb67daa3c05157041a2911aafb623c606fb58486f212ce3cf0b7d0704d55e033a1899a37cc9ecf2f3f740a9ba223c4c5e7b380f452b189c6e2ba5bb0fe2611bdcb2fa71159a38c4fe367aefecea2ccea4d47efa2b83b9bdc23345b213a0a915e366ee7da8224fe1c0779bb1a3ad473e93dc828d8da0535ace7ac01f5ee4fdbf02dc3562ad30df98e90b463ba8ab84f34b30b64f838c95639a44d850943d80d5f16b1f12d0335c21e9f903573a0f42e8b940350fbeedeb899c8ef0df1f6e089c82bb9871b8717bfce6dc774f218715d86b9ce34fda111af8881a56ca37b4cee29da85dbb9389a97e74caf86c1020aba77a131636586d4c805f36db57655793ab43cf8475dcd0a973ced973ebf7e9ccfd57a6eb2ebe584f9de403e8e3634f8c02ab7b2a0c08e78c34b16aea9ad94f5740593a8d83cce98e824de7e2550a2d785be928e093678c99fea016b255a7387fa9dae875d144dd7dc7015bd75b43d9b115180b47082ca3e29be3f37ae3ee4c3c30cb93ee61168ee758f7668953a81d95f6793eaf0dbbade40cfe37453f825016c1d5a58d981ca1a6902b8ee00650c05307914ef3ad7f8b211744690eec2024bb8695851daacb51c6f7a6d43752cdb702fa3e54c54cecc778a06c6fb62de7d741caf816288396c5b0893235fc00021644cd68488a352e592aa07d764b1f9bf51bbd2f5f5f25a2c5e795872fdc08fb7f857fc70090f5c8e579f376e4962c91d68d88e63214aa2db3cb4336a3589b62831bd31aab622342f75a557736cc6249db158a200cd444da2ae46cc32f00639e32388df4597d44f360d20359598e1de992cdb4e036b3d08f77ff85e04ee8e026b8e684d98d0c4e5994a388482049bee6059642d6109b8b2a5a8d10fd682c64f3c7077bbbef9d0e0ba1a12d5b25cf9765c9f0c8e2002b6afc82640570832ae3eed0cc907479a60db85140a86132c182ead419a6b2798b2b15687ebc7985cfd4cc0351f41b1bcda39f5d2fdeee74cb67a9cd11757ab2f071db71c2e7c37782b3c9ab22d256b36b8b45dba9cd4f32217975f7247d272456091d5c118f2a15b40fdb7b0a23429f2ed38956d4a87135f1281cbe426709280af505d6b65f2b1c2f1b959e6a4f676d43ac422db652c4054206cf5da7b21a1d18bfcdda6b690596aa3ac6c79e97387719bea86cfb77709c72abb3ffd762460ed0f1cc7d6c4c583c95137ec28632354d31af19f4a71925f5b737c4c1bb3dbddce712d8903f20d250394ec8845bf06b35dd5bda0f83f4e19b26c8f9752ee48a95cf724e164b6a4fd9bee67f38826b9ef13cb8d015796d21c061327c5b20010552d0c1375a502b2d8ea6bb8001ceb829a1e28c32f31dd795a1cdeaf74fa448dd39525af8c92a060e6976f2bd0b42fc13828e844ee5aee7d1ac111b90cfe79e90d0f8aa014cc6373a6933c3d58aa3094e289521d06c6680edeadf43ef739d738ff2bd02232c9b6f565cce33294051c15699276c300e1d65b7baf73c43e0b5c791fe644c55d4a41cd11ed7fd381ba1bc93487fc8cbe7f222d48093fda4aa2f134aeb95fc625d32524167cb687e90ec12bca2af2550d5e0b8cca6de823b3c79ecdcdcec698d283f8b8e9b88a117da3f7b93c0aef7c555764f9604ea9bccf8e81aede2af2c8d8482301b92a5a2ca7f6102729e8e3dbc063b395769de0b0ffa33be1d998263591aa2ad41f96ec59485c0040064f03185d96b43ebc5ae9f89009f6f0a7b7d2b055b0823af89d0cdc97809c7754d04fe2713c7cf3981839a35eccf9877ae0df5225bd4fe0d3f37648894f8bed92009416d535f00e933cb84f5f2e550e5863bca9ea793aebf50ca0db1e770e8e3a0179e885035cd5b39ef8e077a0298963120c11c99e21c627f4e00351a670ccfcff8f7149565a1f4fefd2eb3e4fecd933228217032e0ab32e38f4d845056064a25948f9c7f199844d24eecb5a0573daeeef157ccb41ca6dd6fd93b1d57851d1455004ce84051a1551e298cc05fccfcf6d886ca286c7c05d2c44fa6212be62019fc268312390ccaf8f4c29964123ba87a28dc0203fbf04ec2fc1826bc8da6defcd725b22b4b78a88f7290aabb7c221157ea6785d26be66ee3d8d778de170437f2899c69daadf99c39e4038c5f71e041d76d17c5f507e2b4cf612e14c013f97c0943acda07302b396f23bed05744c5550366cc5df0fd7637b579503b241653bba0fef2dd2c45d0e873913f5a6db93a0d6a19368e9c1328dbbdef245bf0377fa2e338345ab4039812fd0f29b98af87c937c9b17f1541658d17610fb8e57e7b3f19473e533b0cc97770a46144670aafb2b4bccd220263d82b9d5f3d1141f625c98f8ba2ab70f04c4ca8f569605d943690645007a08ff373459eac7775f8d9aec124459e14cc3dfb98650ef6119ee513a70b455be99f485e7a32f43a7db2b6586ab8ebfd69dd43e5f383be27cb10fb404fbc1bcf216c2160448be361002ae27f61238ada2f5acf54e850519300417b282e3e2e17e96bc2c05c765d94261448511fdd637e24db0b06dad8703836f1a792678f19592cf5ba146fac37ea588af2a790c4d8528e1dc4121e2e73a6ab604f3ce46282df6fa66d1e59792deadc357228d5fbaae491447245cbeec3e75402cb373cdf95c6f77f6087118675c2bcdb70162345f65befe7f953035bb559af631387b7b8cdd779a0b278abc62c6fe4e916c5c39268692fa1a3385e80167fb3352f29e25d8a43360603f9219e6426d8ea9ab5bd300dca2635b5787314d836d8225f18c753c34589e277d9fd49fbd18bca1e2ad6cfb6a372d204c4586b881aa9c1b7fb3fd3be4b2a58d48fb1004423e4405f26658443e4acc085bd3b8028603162ea5c08cf724965e5fc909d09fa74475585118721077bac4099b5284eade909cececf46259fad55024ceb020e4945c70d3a50ac26c90103c00030000c0003c00030000caa38fe5ae8af5453999b32d4048828e15b4bbb222252eedbeb010087510000000040e207faf8f94ae50d530ecf0c8cbfdbbee4f796dcc51dac132a2a25d75bedc20ef9aa09bb1bf11f2a8744223a0080882eea606c68cb9a133bfc4542177448f21ad77a13ae559f4361ac4a081fbdce5c0ead85c9f5395d4fb57178f7f2e47c2997c4281cae72cfab1b3bd46ef60de8d7df9bfbedc966dd906859e5a2c4d406ea4ed68f9627d225cb86634aa973ea4e26afaa6bc84266448923155fa36a48be3c4564d234f49792bc78c50f9ea3c1387eb924e146bf3f43a59a51dae629a58f19bc68ab2af38fe9da32b49aa49f9ed4e9960cebe5fca9613fae9531e89a443f4fad9f534e0c6c948ee5515ecec44c182a494ef7e46cb1d7070327e6d42016ee1a53ca17ca315e94dcf97cfaf18252f729254fbb4064ac9d145f72e18ccea0f5e516eaf23b498c575151d782256a56e612f4cfc35930c378fe3bdd146c462c707218cb1b5593ff825730af921452e9d337875638577e5d93990ebd6115ccc15a3e7f7bfb932015fccd268931a6b097d729901416d04514d0b72d413c7488d51c14d064ab621f92192bf7046b273d364997a4cf7342d572d6d59bae235e13f630bb1a7bf19bed9880b86a7fd0ec9660ea5dcaaa9d4ad14d0998fc1d2ec89564256b49307fb5a4bc716f52352460d1bace433e49a5b123dc316c45fb8f963f6346e8a2084f67ff50fd1dd522113c394f3272a9343304c5634e45ab965f2784fe4555c26312e5b620183ae45c46e7e6990c0877a67872ca26a942ff019b33db1a2a8587ec03538a789eaa98e7d383f36b85da7729a15c1e745963cebffcd889ee80b173f7cf705331aa2e74e08d5ffe6e9d8b2d89c16a738eba3de3c2181d294992f23829b7b02d99a429f753ca650bedca66c53b66c844b5b83bddc6f8668f2e2d4ac9a3a6cb8bf6a4cfe2bd4ef1c5a2eccd461666aecf29a6e85c6d89857dc25d0aff5d111116764c8274756ebe8892904824e48718328844c6d80cd478c5415a4454fda3c5898744221b8980b1e30c1f3fcaf0e6e1001d3edc023b9250c315754ae26e5c831aada8c10aca6f442e9e28d71e0e8944de7d3c2087037414e5a0c62adcdfbcceb13da63b1a12898001011d35a8a18ad39bf4df558c96442e418d54b0255ff83fc92e4ca6432211303490030239c2d001821aa828d786cc91269ad0ef9ea2ae1e1b934eea5039690af62d2a552da5b4180f0ee40843c70c6a948214a3c043d3594ffae99b4614c6c73371dec2754c01c00e6a8422f17553c9b7b61f75058596735bfe79ccb1800e0018a1c6272c6d89fd2ad74bb3a1a4862756d578ea6693c95dd389c2529e596d4a1d6585ec18638cdd11f2e3057eba0627d86e9bf9ccbe27a6b6c70f1e168000066a6c82d2ac194d08ab8a9fa48626ec98e9fa7eee4fcace84b122934d6cee7cb060a2bd750d9b97798811021d3d7ef0b0808e05d4b8440d4bd4a8440d4ad498440d49d488c4026a40a2c6236a38a24623f83129b8a9a6e6ae6480310107e8f8618606784c20a406236a2ca2d512f914a6e29ba58a2832685bc8d95a502311c5a81c2b8e8941d4f388304d78fa5789f2546287787d73e668d9bbf79421f0099373905bfd300b6a14c2ca5a4247c449f651e7518310e9c5134bacdcf4eb778c1a83f0a2b8ab64e793b6e282c0934973327da1a261204a721a957fbe35658b183500a16a9b5c99ec7d8d3ff45771f7637c7f09b91f0cad49e8a4be163cc614d4e8836952c7fed01cc4738f851a7cd8473d57a6f5434c6c0935f6b06abe9c43fc8d86664e50430f4962728987fb6492d31fa891873298b45e8cf3b94d432211ff61c60bc898410d3c7029d5a9b34a6a491b2bd4b84353c2a64959593185ac0a35ecd0f4e55652d5247bee52a85187b2749abaf01257e2a5436daee561f43ef83bcef0f1230435e650f8513191283d50430e74be9cbd6346fec7ab461cd00a9da16365cc24546ac0e17b759b2e9dced2ef0d5be80cf5b638de41e306f65467f457ceafa46bb4e1245b66b14ed241d584400d362c126635d7256e4c768d355019aace374dc99ee2851a6ac8356515adbc79ad7c1a52eda8bd9e5575fd45c3a993557a68a96469ce807d68afed1c9a21399a6fea49c9b65f86a2a4540d561e36858c0cea6ec6ed939593eb312454902ccff1ef3c586230ef8579ff4f1d93fc861a61d856366c35c34cb92524120143f595a7938934861a5fb804fb0cff69693567470d2f541a9f66426cd0f12d241261438d2e949baba52725ad774a482452460f34d4e04225058d2795bca6cef70079861a5b48ee3e134b91fda84c991904f0d1e30960060f0ad4d0821baebd7ce22c2503307c682012d1428d2c30b5d9fced3ebd430b89445cd01ea2c3c7e0cd420d2ca425d9eda8465914b5c615b0d7d2afd0bbed5ba1134f5cefe49b2ad4a002dd921a2cb6878f6656a8318534e5d12445935cb73d07e888449850430ae61c735f4d4cb9c763c288418d2860ded697e4fe637f5e50030a9468d1296fd45451fa271075e9335e8adf4fe24ee8b2ffd9dac598627a9a608b49962a675e13b6c3045330a9bbd54a33787a0949874af24d57ce9dc34a28bcf4669bd9749db349b082684fe7934542f1c2ad4432658b8d39025956f99759bf522a8d902cfb52d26f6b4ab71581fed35892f09fe3844584e7a4933ccfe4b4c933842fdbd967d90c76292484c2c7e624b72597d341d8c3ffc5f78ee13d0508357e50c3078a4929c7ae3576ca9d1e741f3ddcb8db87e834241221a3060fb0a0f9df13a126577690581653a7d01a2d945e43077ce676cf1f32cd3e85462e8c5d16acc2ebc999352e4ac1353fb2fa72ccf12dec922f3eaa6dfe4f638ba36fce484f9e1fafd5624d39494e12b9e64912335e408b4dfccd3673f5e777165c9b4931a7743b16d516d090452925e1d27ca4dec22716945a8e31a578c3424d51e1f42a37afe65eb14699f45e9613d53257dc9d2aa5533bc992a65a5170cb249e548dff95ec38c3c70f562c55d7799d319572c380c62a0af924c798f8af59351368a86213aa636aa6ec6be791038d54bc312769d3c34f2ac916030d5468728eb7922794b8bf14c831811c12c811811c10c8b1021aa7388b7b8e4fa9ef593105256f9d10a6d96726edf13c2cb0230c344a41b44dde9a1463d27092e220e937267d70cff293416314873dcb71b9188b9e432211ffd183470e31688802078d50289d9bab57275f2ce2410314cb89f9cfa7de3dc6cd27145ffdcc24ff4edde9893b76d42c4acc61d247021a9d30d4b5e4e217ac8f11442261d0e08439875f5a4b25b48935ee4a98e86a22c9040d4c2455986587097abbf225dc9d137d736c2b69244b5cd9f2afbb62b831f9c1637b45f0011a95c82cf6844ed3944c3443223b7cf48844c010410e0ce888443a408312573e9ddc24fce5381e1a9330cb78ef4b49a2572402460a948624ccec294fcc2565cc6f262134225146aaeaad56925445828467e69f1b2a76820ad07844d16a2b25ad2ce57c0ac03880014ee08810d068040d46d058040d45d0488469eec3c66d8c31bc29400311748814d030041502f774d2c56cbf2533134293f24a89712f2a9b86c620ccd99a52565df7f9bc20deb4dbc95d9b0cead141231009e69633eb7aa6ab3c20124f0e778dff1f32a99fabe898b2cfe3075ca44bc3626325ebfac0a4c9861e8ff18154aff99c613487a6f6705e2a39689c8d7b238644225ba0a107fa828dfe09591353f2041a79d8c3eefb77e79c84b19240030f55dc89fdeb77127632028d3b981d5db94a7c5940c30e9d9770b15d3c6b0a0934ea50d28aeb9e4ffcac27191289e418638c85400e1d0028020d3aa07de9f3758aae3b7f4824e23da031072dbca84949e23d853c2412f9e1637d9841430e69ee89ff0d5d7f731c8cfd295a6cc75250b50a34e090bc267eecb4513473f60d5e4caf296a9f5b4327051a6ed0b26a2ec94ed0bb126d8321b63bc8863c3dc10a89444040830ddb98f82af723b2b9b2062e099f45ead2e57e510dce6c9a9c9b33854e4b230d7ab0123cd2c4bddfca183e4290830734d090fab5e7ef20a992930e24d03883a92dd473adefece77140c30c58275593f7f2e5f7b60c2629f4673aa66e7fe90634c8a0b96ef419bda99263c660060d31d008030d309c3f7d666ffc2c99121ad0f802e227e7e50d992f74e80c1a5e7893e4e33154ca4bdae982319464c1921ce33ae5148106170a9b243c63b488125334b6c0c8c7bc6692c40c992442430b44e6106bda9fbac9008d2ca463b97a62ad57d41c0f332e40030b6ee6f8c7f709a9b38544223c765480c61568588146155c4d959b921cbeb9bd9048a4c7a14105c7e4ca277e1293f7851f40630a67a63026a5d41d3589c18086140e9f3676c2a4dd36e117d08842fb9924dd4ed5cab11ed0804226758e399dc62017cb27ecadb9357aafd459e604b3d533c5e093551f35c18f3b29a5fdc5cb4b1212899c317abc8006138e54b79061272fbf4886185b860f1a4b30b4c6d85c2759844e4309dcbaa7b85021ffad19d04882a9726e975acbb8cd85b0808718349090099a83e65c5e2eb7d33882261d65762dfec48f1b21a1624ac124b9643ee700392ecdc861ccc861cc30c005681481061176135b356e491a5af107680c6103348400021a41f83fe5a85bcd133dea011a4060d2de3f8da7f3ef93101e3d7e50be54ef49fde622341a3e38555a3386fc3c29fd212fe8e123029148193da8c4248fdbf4ab05cf5f40830775a885cf10f1359592d0d8015b71e3a1639e336b34748006fbce396ab3975f1310402e12f32dc9d9a73d76cac18531a34ef6a64c6ff1dcc229c9e4d8e28aacf7db683e22732d0e79e15d726f86932ab4507ebbebb4b2ca49e62cb28bbd7b628c25e624c922e935e6243973b61426b110002c04f00a01b88205d00a0d088015b48a0508401502488500502180537ce97d29f92575644000a630e7ca5f17bbee5b3a1304500a2a6a89d93d6d3fdc8714c6e576534bd198e1512494247d3eb18ed9ac440206cb4244704314648893b3567a2314c9bf2a72952463ba68106e80e2e89dbfa975ed7336156e7c6257db8a323bb6e2fd0d4fa8d9e454b7624c78ef831b9df8bedb9224db94d0dfcde0062738ff6ed91cd221d64b2047182db8b189ff2c9b7caf5b060b6e68223159bc7ecebc6e64e206268a153e3e6365676e7be3127a9949527a6c422211bc61892336665a4b25df4954c68d4aecff571772f343771912898ce00625c850391d27cabb7ef8fd0393384d12db4bcc399d9329c10d4958e5a6e936da891a321c043722d17df04ca2152db74972e00624ec9b4a41a6ba3bc594471c5e3c76348f92a3578ea0e49225af635790971b6165ae5effd4956f75317c84c188677dc3e2a4c9e31713024604427063115b4ee1352f378a38b2c7d44b7037391cc68d44101773cc5167ac529ec5308311b1b94fe5d08df325e70e9159c54e295ac8acad420cb1554a7ba3194d9c4e62e046214af25f67cea7593f9a10225dd37c9672f01ced0ee2f99252123b2fc7cc193d7cfc28c3cf0604b1d494a8bae7b5212a2191c88e1988f18120e4666633fbee330b08a65370cbdec152f22a2412f9c373eab1e35b82a49884a1e38783406ff8e1b28df274b29be5b57dd0d32f98eb7d788f9a0f59cc8ad9afc4c64fee8cd163c71ebad160e772e298dc181289fc583dec73a9d3f2c9eb1e1f3dc4d821811b79403f3337be096b1d3e78204d67cd7274cfab5d88036edca1964b9f3dab520e936be0861df8fe4ec256786a125375b8a4de9382f489ffd9840ec96f551626f97bf2650ee60fde2587d73bad0c10dc9043f17e6d26b2d6d33f71c864694fff6dc2cfd52170f0525aea9f6f8c31fa6f703bf47eb4da5482d66e28a5d7d849da8a4a761bdc12644fa8eca6d5dd026eb0e19ecbdf1bd768b25ad6f07d9a4929c9456506dc5083ea9ef1273d5e564d1a742f57d3f893a65502230368f0246dd47bbc36537c866f2cc5985ed54f2e49cc50124d716314bfdcaa96e1ddd81ebf637bde4fc9608acbace9333a86b2bf72f7538a9fd712c37163a5b0bf7031a7948f1e3bc0b81106f398e0167979e562320337c0e049f953ad6bce78921c1289b8c0bd8c1d3c3ce4c78e0edcf882b57175825bce59d332811b5ed8f2957872f7e5f04b8544223b7cf4d82183edc2b17bf7cf7e57aaabc80d2ee4499efda81773824a6114e0c616b21832d55b88544bab853c34b3e7fc379e52921e3fb2704ca7e1a35c7e69562d70030b7bd44fd1ad98addb0b29632b1052c686682047181fb871053ca35e28ff781687808e337cfce0210117f4fe00818f0878e086154a4928f9dab3cb36d9d1801b5550baf28e5a36b73c2f156831bf8ab410bd8f86ecd8c1e3779051c6ca60c78e1e3f1670630aab9f1c3435b2c413062e05cc24fb244a499139f6904824033a5c0c1f6168e04614921b50305da60917a1ff8e1e3f7664e0c613384bedf9a153499eb71b4ee8422463c79655e78c1d6359c0430c17b4183cb6dc6802277790509d33b17a64c10d26dc58c20d259ce04612f80612e80820b861841b45b841044c2fdf44c3eec92b86442225b83104f3bd3b8973d9d56d211ddc108296627e931c9f193b69702308c6f2d499dae277339e88e08c1b40b8f18314dcf08119377a60f624cde5a5720b91dde041e69bbfcb624ea2a6ce0eb6e91819a74a263d764307ae78a6fccef6a9f1f390de0cd8c88517f374dceac8062e9270919fbdee16ef8ec660e561a756dba2b08a91c944d10a366fc0462d0ed5e513265694ec9191011d3fccd040056cd0e212e2374af093c284fb430c1e6294b121703e63351089fc108387183cccd8e17cc692118990e16464c0c62c32604316975a9db9e9e7d8d4b1110b7d4d2e7b57b8974f12c236606149ddf59b92c6eb98ee1318838d5738d5619697935cc173aef04a32f7ce4884c9263a6cb482f45b19cf2727d1666745c99394c4fd84aa4df12a3041a7a23693fa9e50c1862aca9f2f6ac650ffe5978d5498fc8413edbdeeb3a78c600315859f1426d2298651e914a6dc5a5315639d078b0d532445cdac29e5246795dc0e6c940213af429f249fdac8860a3648516fe650e39bad75338a622c495dd484becc4a083644e15ffc24a7f07413431f0a2af7c450d6d920d800c55127d97c7ed6d4e2f9c4ba49b03bf14f88aacc13d8894992247736f5bb3b60a31398249f61d26ac9f2b11ad8e0849a241f2f312729a5f36d6c82bb349fe424f5e44860431399306dd88bea1d453bc711d8c0041997eeaa745ba32d021b97a0e4100d6fd5a51d16d8b044b77e19e6a6ef24eddd462516559fec6c273596131289f8581fa3043628416df08cf48b89de7e125ace4a62926a743a456d482229b6e7d87a6a2412bd84f7080b736727244c93a2f74bc6558ece234c1dd910bbb5996704820d471cb52b977491ba49f47cc04623dadfacacf1fcc2b262011b8c48361d3bab4b49d8136d2c8253998a9e3ac5063614714cd57e25f9b2ab5d861967878d44b89fcea6346fd64c794824620311f84c499f5d4ea80c246c1c623f49f5dfbcf0f738c286215c8f53b1faba9048e4f818bc3e066f256c14824a23221563ce889884304d74cadb60523a4bf1818d41b49b2e6a77da915c1098dc19d253aa277c272412c9838d40e49b64972fbbf0379a904884103600c15d0a1953dee6b57648243206f3b04024f27fb0e107553b548c7bf199732e241251838d3e983eb7da56f5dcc92963830f6ae5cae57d60544007080020041b7b6073964c4bf93161333d6cc0461ef8557b8b99e3f2e52436f0a09a58e733171f0d848d3b50567da2e6f63289dd0e6b5a4fa9888a8893ad43fa1b4aec68cf8e5ea1836ac2863a970c4d85fc104306dd230360d89843a331ebf9427806af42c0884464d0638c311c90e30c1e1e011d67f8088387878471060f8f402462430eb5eb54b81cc3574de54005747c2012a1818d3860b51a2e45f794a4b1e1e09b10a1157f4363d32120c821821c21656c052236de40b46eb86bda6a851f1289f42883470f084c0003392aa0e30111d0808e336cb821b913f35afe7cc2cc4a041b6df8444d4cb5ea11820d3618427f5b374d27d9cb21d858439f5d73564f1afa332e031b6ad035564d65b7db24e521395c0c1f611c000c30c030669c1e1be80f4422eda35d041b88440ca0231211848d34dc6ae2f569d9cb7d340367380622111d2db08186c7daa45d37f6e97a66d83803e749ce71c16ccbb22311e0c186193861d5e4254de8b33d453046fb7941197ab05106ccc773dff6c364b3c950308ffa175636efde43b031067d3ec554af269660ae18b87c62ca90f11573fe9a60230c9626f32454c893b33c146c80e14e92a0211e2d2bb6f2c0c617e8f64d5abbeda33a25c1861734c1cf76ab4dcad9dd0736bac0e55c5d41f3dada2609f9c0036c7041ab60ba317b5432670bafbbf527c9c4132ffb5a3844a23377ce63c2db5960cdbb525d5fc6b83116ceb06143e6fa5379642c8f48048c1e7f05fde2d66ffed86d726785b29689491acfe93cba21111b5568df4d92e47052126c508117fbb0e61219d59982eac12ecdf799a8e1337cfca0810d29785615a6ff5ae3a5310aa5925a37e77c52563cb00105cc7e4e52936578f42191888d2798e25ae54e1d321e4320d870c2fdd51de3a794772617828d26d4f291e51ee59e921912891cc0001a00e30006c871860f07e38c17c3878b40870e30cc580f7141f71883cbb811071b4c2873ce98ff1ca305dd2ca16499c16dd317e23e1a6043094a96fc67d8601d3713128994e163f0862183f5118930c04612927e6663928dfffa186d03098d544e5e3c93332ce708a8f8dd05132d79c6d6088cb7c7dfb41053932bc26fa1e9b33afb4a36229cde9d63eb5ba3bc830c1b43d02c3bf5573e93c91662430895cf5ee5cbb62f4b1204fc7b5f4fade4263d40e0c4fc3dff52524ee50756b2d5b0b396cd261682367ca06888cfe96c982448ce43063d76f4f811892cc0460f28cf0ca231fd630e8f1de30515d0d17e7a404087dbe0818d1d242bf351dd21277e116ce8e0cb9f743fd5bc885e5210c6097454a08b5c9825da83c64b21b752d9052e700d97933019dd92a8dd22ed58c296c966b9518544223bcef0f1e3bab04561d5c49b4fe2769f36461961e8681f0e88449ac719d4452dbaa04509ba98c509ba904517b1f0f6de5eed24643e1a8908a10b58b051d32a87b5f94b61081837b881fb30a38c1e63740d6a10899c318373361201e38718eb238c001ca18b57f09dfd996eb129c419128980d1862e5c918a65e8f9e5e4317d4222111474d18aaf82a8daf8ab9cdc219108182948228002c00023b12a1089e8383d361089f8e9c12312e173021c74c18a2e5661ac6426aeefabe2934a4eaafd1aefd949859562be127b432cd78d0a2e57a9ffcc673af14222911bdc800c3142ca48400c6a50830a74710aabe3dddd6fc65c96fd6186064a17a638e64f617d55235f9e904824e9a2148d26f5ef8f19f3342705776327768ae6132a338a840f9bc4ec68794e3751541e4f324952ceb691cee822149d74f2ac39a549080f28fc112fd9f2b098be7ec29534b38ff24de1e43cd14527fe3d51f3e6effb30931874c1092c49164ace7192e72ec142179bf82f67aea8daf949fc7474a109339b27394e8aeeb55e269edfacfa312553eda80b4cf43219bf4eea52df5c7671097ff34489bd1b12899cf511468e1c398e0572b84f408718bab004ea2ee9d51662ab5309b3798c663a13de6f4a9cb5a48c269918273393e8d3e5bc7ddee5952e09c2829fef57ea8ba34782d318d18d1e6ffa73489865fc56dff347d4f9b24eae92c92eb923ecce27baac6594d11bd1650d993aeb6b680f23aa7839bf999492a4bb08cba3c9d932e528e292720e5652760c194f224e4d594eb6fa9cb53a8840a5e72b776bf80c9dc410d445217839e1624c5f25779a10dc455d3be9132ac50c828a5b9fde4fdaca600ba2cfafcf7ed63fed09841e35aef37fc6cb1810f466ac9c0c19259691c3145dfc81cc731aaa37e34c7a3f64959314f2efdae93e58fd61528e4e95936788d0051f4ae69a72fecfe99caa195dec01bf0c2677326d2f131241177a38aa7c499eed440d16ee220f5e5e8c299d184bf493bbc04309fcc49bdc7b1d4acb2e4d27ed78e8d0814bcf9836f557a8f41cbaba7811b11c92becc3194892726e1385c152be84e94a678e14088a7c58d4af5297d83926973328b7183a65f52e6478d6199363467929d8bc906e37e9e18aed364b6863c57789e9aa8944e0d59d0502e9e3f2c6d69d0838ccae62bd91f0d865a341dd70d13277e86fe84e8a0b219303196760a76194cd5f162c65dd4d764b8d4ac464c760ca5b3acb1af37e64f1143aa22257166189a92b64b434db58b6028ee8cd69afc51f7173ee15363b494ada879210b271fe326c227eb82dd31ee3c9a1c2e1ca3677e4994705372b6d085454fdfb9164c711dd367935f2d9c8537a7eacd9d0b3e3216cca751db84b7af9050b59bea4eac60d1b6c2fe6d1ab332b763da5538a4c6971c5328b74d53814c51ccd3f465b8949ec2a12e26b97b978211963ef8a978a560145cc9ae3c9ea79b0205b353feecf172fd9ea0c6349375374858e784322afc4eba7cd142dd04baa5424ca887db30c1fc239e935c1974f32550e9f6f25446b7aa84e3b4db4459dd6c7292c0dea5ff999872dc1b098d4b6ce9edabe78f506aabb5aaffcdc84658c3092e59a563f12d4226e639297126936b8890249ebc96d1b4e26708c5a9872eef6e0fa710c85062c8935d3eda41686743a47aba7f3e2094d3a498d2db89afd90f8eca29e9bc5ab4b97ca046c5fdc9f6b361e21eb876f132ebb6739807d7e56fcc214334f63bb85657a6e35fe8609335ff2edada499d5ca0677672924eae17e362933b861234e6afe8dea21c63665b0a3fc135b6c024317db8122e67ce5ab4714dfa2a51ae2e498b2ae3c7c2e44a49e52cfe0a62f2395c5924bd6b4a9ae7a7f4db58e41ae773c52496696e61e1977b999462cc9e6c5fb18929a70ee6e1624deb0a53844b7e2569cda26dc5a2a31725ac983427cb8a725f3acafdab4828b35afb348fba2a4e1fe39438bdf7de49c5e9042b4136ab55dea8f8d2e54a42b8f6a69c02cfd96b326ffd86d614f988895ec45dcc4b51cc94eea3bac58a2a294e9ec3a56dbdb87c14b8ea89d9da7f6e445164e5f2d831a148d67c7279b02828f0d44c89ce27cc8a76314fa7f8d63ce1cb592ebbdc955aebc47352aecf7a498a9a13495216b6263474b43651e77839ad1b63d094263ad953846c4e0f93341377ee910ff59c3d4d1413e8bd9fe5bdc52fff12eea65c72f26837d95b228f1119be792594f1b6f1b0ee4a3925de96914c5f9b49a027e9d55ff6b20d1b496051a22475999e8c4d244e9deef324a571ad8104be1f5f974d4c55d53cc2ac529e9d72698951e388c7522e3fc534a26d4b8b373e1177318c304a73b4624c29a26216c169ce2a12fe317e1a452856d14f1c3d492e691241459e96381bad5c348830674d3c6263a482e610fe055d0b4b9bbecf186289381b2931954f640a61bd05b30d99ecbdc41022df9872b7561233ff412495c999faeb926d5e10f798a64b748d863d10a4266d51df4ef51c406cc1935dce4d5e61ffe1dc5592497b9b2bd77e502ac7bc244b89d9e13e9ce64dde642c5a74f960704fbfaaf3a1325bf670add9bc7492d3f55af4506ecd9d6ea62c845af29009699595fff2a5b4e0a174c2ad56ee76f24cb9c3792a45114b79d5946287a724a9648b1531b3943abc51d573d91635540a1daed8355f1baf3386650efc2539a6d0d40bbb15399c7c3ebc49716328b11287ec376c38986622ee7ca2e2a5f206475ba3b362099e4d8a1b12e53c7f4999c136496983653e7e2959be127c36e8a296d2a1b3e9f66b48aa9472f2cf13cb1e3598b1eb19b2a36677d3e0a7bcc6aeff286bd140dfbdc87ace7c5dcfa06b4a4b8f922b4b3543775e196931c4322d4352d29885b9907f1a32f49e2bfd7162e63263a8ba93dce9a6da7411032756783ab91286ea84194ba2892e6a82818d317f542b49cc5f7e810e936f39eea549985e703b55a478545a13cc2ebc63a627bae16c73c98523bc444f15992c77b9857c57bf04ef38bea9d442f561d7fb399f2b6516b8906526f49eba9a2416708f2aeaf2ee15ce925a82580aabd1add0547c088d774284a70afec968b4685625ca542876d96cea58629284a760bcb8a1af29f22f2b8583a674afc66c15d5281424c3d726ebb2325048fa8dfe74e713e8ae0fbf8c27d8974e28c5cfd22ca5cbf29a700cfea1116769b263c2ab59343c6a6b32b684e463fa2737aa4fa604a72429c25536947c12ecf827cd9c1412d0c9d8deca749b2a3c42e639469b8fca084ba94459e59aa8131681d3efbf0e33e76e824428471f1793e344e7ce10cc5e62b59712c2de39ae256ace9fc241a0df553ac9d96b1b20d49be6c4f18a3e17fd41e246cb8d3f9f63333ed8a3a4a5545f4fbe07c9d9abfc53ab870f0ff42425eff0269820ef00d3949473cb0074a05e447bc7e482d02cd55963876578b8304ae5f3cf47a457778b44cb5393b01a254b670b72b3a7e82d17aaf3b5b8fa7a3d7e4e25984f0ba3e5bce94cc1cffb59146c73672fb563e4b230e537d5dc27168ba789c59818d7c302d1f47956625c65fd0aabaec39f20bb82affc9db3b5565426fc58be9c537d31566839c8acb47b4c7bda2a8cae134e8cb3fe699a2a8e2d3529b35ca6312d157ba82cea6296a4933454fcfb35fd3326b88a760a4bb8c88b7f82be84668ac2db4bf3224d8c9a9522c99fa9bbbc8c971929c8f1247249ce280a9792580cee1f991605bfa963bf8576ac43518e6a2eefbc63515030a32a75b1963de513fd9fd027ab498c26eb095efe643d86d0fa742231a62476855e8929e584e16c72fbddabdd4d987d2dd2cf4cc8531325134ec37b69c99bc944492fa9645a0a13d889299f5096ba441a4d70cd26799858294b2c5e95251a1b7f2a5589d2be539e74b245c915259c8ab9f12fad6b8ed524d2a896cf52e79b182b49e4a37133a5962459ac22a1e6fdb4b61a5c3b2b4824d6b947d3cf55b8ea11858bb5693efe4aaaca11668ff9ebab3fceffd4884b46fce24d2ed97c6204beaada15db84f2382d023dcb139ec2dcde4e8a703b3ee8673a39859d12b175ec4db9ff728c7142445f5b52e668fd191e3ac41661154d0e29b31d32045aa1ef92501722513e4ea667b28999109cacc13377ce3c130f62fbae901f6edaea1504ebbed1c4e0a3e16b20ea3c61e355f874290a88e592446aa9da96fa877289966297462ea87e483c6dea54a51e2ca60fd54b69e793e2e4d0f081feaf91f1949d97b2072b548e116b99b356f4c0a6f7d7cb394985310f6e9233fb98f7c9ed111e08b1084f4ba20916a33bdc298772f3b6d854911df8124a3d7deee4724275d85b3cc5f384c5ced3a14dc994a657b6be9f4382fa469d6cbd6c8e1c28f943a714f9ad76c7418ba29abe73b3d78643153a4ce72fe63b7e43a2874af6a72f63af1bd0cad99226f92d54d306d3a6fcb24cc29b56d8a094dfef5996341d5c4397525d2eb152a58b6a587a62d37353f4bd347c967be282c614ebd0a0fa499a4bcef9fbb13324f98e7c753a1bd5cce058f40e1eb6c6f365a093943945ff3cc12743493368b6e8bd274c6378263fe7b2b23a411283a59f83668e997aa2303c267487971018ce37e9c9c8a81efd021d97e409ad34315e387dc99c20a3992b5d38fa7e969c3f4a4d922424128941245286088a175c7832dae7cc5dcfafedc5165aff24485e5732e801811178a1054c36e9434e30a942be9048c478918524f1ee4e4e713273c70b2c147cc3495e76035e5ca137ef150b96b4fcf4b35e58c19b28f97c39e6bbb75e54c17c9ee52262c122d790157841853f06a98d5bd51be90989442211304040c6ba8f1f65a0c08b29785379bdb14b7450c00b2968c08b28dcd99e243937099997175038a355563c85cef5e6c51312cdd7976b7ab6b613f4fb0cd3494a4c52b49b805c745ede4da5a82b134ebdb2e994c6e6374b58f6df44acce4efc8a1256bf987325493e8d79124aba37ea1b7d766e44c271a399611db5acb62394c376e61e934bad848cb0ed6849cdfe9895494824c2021f4e0602bc2802b7dd2d65ebd5a31e193e7a3c1822c881811cfe8233c2d0e12ce0b11ff8f50c44222cf08208fe9c7049c8f28bdfb91743c02d8d055fb9aee4792184a735db889d1c56e57a1184e20510bcf801ff297ec66d6b133bf5812e9ea14e2a786d6a767848bfc08c1d60782047067494c08b1ed8e27d5207139354375ef0a04bbbde9af33d1f3a2f764067467dca60f142074d8613eba3e887ec7c2e38a98c9ec77f63ad8b8ba3e424caf79c68c6945b6472bcdacdb9daa20d1bf75765ac05e3ba62de31ba9294a28526c79578e7b652d1c20119dc9845f1a7366ceaa8d4ad0471431664d8bdf093f6f9ac92e3878f1c3a1cb023103762d107c98e19de24692ee6062c92eddc52a8eb4f89d11baf58eee26e3d7bca98a219375cd14ac5f767af2e4bbf15c7cb762764500b75eb062b12724cf8fb2dc9365b53b8b18a43977cbaf29bd733a707375491f579a9a58c27afe95424f5ee6a31a4c4ddcb0f6ea042b9f419cbe1aab7ea5360c95693f49231aac6dc30c5f973537d3c75faa68970a314e9645b55cc9f374f38448706cad8518687f48f2503004bb8418a1ba3c8c2d3ed771c4bcb7c0c972a5b0ef5c0a2a8921edaf24df6b2bc22bb0a0bffea30ff0cc7400e1f1e52c656c01575254990d24a5ba168d8e9d2d8e89c151cac28687897300fc9988457b145eb5f7ed3cff3bd2a38c1d259aed7ac686a07385261e8f0964297d4e13e2a3ea1242c53be4bcd491ce038c57e639a25b9c76d9ca6303cefec9c766592523cc0518a73484d396be7b324896a000729f2f7fe9099ab3911e1188517e72cc96b65047088c224af6e6b87d911d5ccc0118ac2c79252897a6692f11f384051dc4a9dc4d9df4d5a0103c727dca84935ebb2675c3d51de1bdfdaf06db58e0c31c6e8045f49ac9b2a21638b1e128978000727682f295696cb581c9bc0a109a38f54ce497f2978161289ecc091892d5e8cd8933a211dc08109bd4cd37f4c7125e57b89d35fe5134e3a4322114b9457e953856bd84e7748250a2d26b7be9a64c594c82ef26a723dc99b7242229110e09844e94e9e9ece581279fa2e79d4e2e2538c4462d12413644acc122b1c90e83c3579c84080e311e5bb90717b2d273bdd11c6b7122cd964fa0d7a2336f9e7ad734aa6c40f23d6d73539ff36774367115cdad4f09b62be30e11f3c3c06ae021c8aa0a44df6b0a7aa41d7445067219f9225c95b1a44247dcc90ad394cc54987e87248af13dde03084f92aeb55bfcfc478fb29c4a3596d3c4569876547f310430438087149f1bab47d5bf7c459b028c031885a4b52324cf41a739c17ac0640b0e3b88f1e3fca30050e41709234bf66f1f2d16347e20884f6212f7c2cc43b833924a0830c1c80d02ede3b669a0c7d2f878e1ecfa30638feb09f94a424a59d2109c0e187f373bb4948542c31a70f38f850e9b7491b542dabc684f0d881630ffd599a8a16935f923afc038c21e0d0c31996ba83798e49bbffe8d1e30338f270aaeb3013664bca193c70f19349ec4e276d4adf819eec246ed4ec61826b872ea989b9e4e3ca73b20ea544589adb998b71a343df57b92b6b3ea1de9ac372a29847e70c337939381d26dcd692cb799238147d3c26d94aa9f8e90f70c0e1abd14d1634e5903fc1f186b4d5a7eb3c555d7b379c2f553586bcdf5ce26db8eb438ce7cb6103e335b9712be4bcd86b387fcec94b32ac86e44a974ffe2ffc4a9306b4645d194d6d51dd82862aa3462ffbda7237cf4064ce7cb8643daf55080e331c6347bc9abc61234338c05186fb84794dd22193894e86c3e72c6163593777d6078e31e8d1296d86c9a5b9490c78ac3df1f2ce30301f63496ccf83a1109dbaae515267927cc1d1b7ec0e2727c13aa6070e2ff8ab2126ed962ef82945b18d492b896a73a1ec396636d94c1237698b630b5976d52bef3f593e80087260c0003a7cf4f8b122c881011d3bc0a105cdf6c27530694f4c380b76a578f7715f2cdc26a58cfa7f8c31ad5730495bec3d8f66f2c658a17829996931a13459aac0c794dcb7fab1a98c0acb487ffd7ac820c3026ac03105c3b9f5a6760956f24b61cbb549d00cd96f4f147e4dd27dcc490a27c550784bb47099dbefb1fa13dc2c96379bd8dbc5dc0975aeae4fb97c667769c292ea39a3e61ad992c2842a666dcf67e199525bc2995af6ae235202995e2c4acbf2c97a12bc98f559b765010f31ce88c01d702041ffcc9ffcfb3e8217e34bf95427d52487eca0030e2360e25710db8ca9c7f245782acfc6d774255b5689706c782649b70df596212476b9cf8652fd4c08cc091ef2b9673d5512178c610603c0123882b07526cfead6f17e7220e06b163d4be426b7f507bd5eb4f714199eb5f9c08ea9b72ae75dbd6c8594e1c38c761f3b9c0547023fccd040007c80a3075b48cffa13f3cdfd8444226398f162fce0e163bc60c7f7d8c13b660086057c70e0d733904304393090c387bbc0c792f1fe8153e0e001b266514c68db69fb71ecc0934377879aa4d135c4a1032a76c9b1937c9ea6d90e905cd826c6cde96ed5ef1f128924082ef0b5942ce93ba9a72cc82d92c7ff52988e17cff3b638c63093da53c911d1d742cb31f64b8e8e16e530265a2a8deb64726661d6a85462cffc981495c55272a84ac79458a4596308f36cd2769282851ea3a535ff04f20abae44e1ffb7153ec9009405c01d20a105680ac02441520a9004105c82996fac9b01c3d668c38e405653400c414608094a258e2febf8798564b482f045c0c1f61e400e30cc74048195b811c8f002105c828404401128abc5536b6c3562ce54141869ccf5eaadb96ee273051d793675cbff2c813c5935c67563ffbe41331403a818ee79f1c724ea3ee9c2889261fe5af82fba89b48b0d1d89be731e9a568c291da144f281f2413c5b0196bea345fa70e01c1847eb12693d093e1fab9c4976747bc4b4fd47c1dc412556ce51e718d4a165525d81dd5ac52f9ea634e088412d6d988d96db2501a0e89444026c149163c86cc1b13df21c60e2580488268eb97133f73ba135f22804422d14a480fbf2327fb8644223f0081c429ddad76922cf3cec903904718fe39fd4458ba5f2c0610479ce264dc588d39fb6223fe689a317c95a79493308030e298ee244912be345c6b8b404f1253bb9ebc993279014411b8647dcca82645893a02904498620ceb3985150411df06bbec9a673f2c05e410c9e7342a57aaa9cf0a89440e0f07411b400c91da9bd431fa335bce844422659c01a410b46aa7689f192c193b7afc0fa700194008b16ef68dae5ff2687856001984d9267f8a915fa7eb4e01441059b42bab09d3ce5169024820deac9dc47aebf41425800002d7384136f64c877dfe70ce187fe65556b12a7ed08377aca871e39c1481f4e1347671db57c7524807081faaa8d0954cd65793fa3d9483543e3359cee3ba7a70bd829d7eaa943d2f1000c983514dde9cd8ec612ee321a136675647e8c7fce500e40e9acc742739c9fa71317000b1c3fb61fba4d04a622e31241299001b40eae055e59cad4e103a244a899a69aa1301640e4911e5266a789cbde40191431c8c258ce61493a161952f80c0a1acc184ee1bb1b5f8435200f206d7f2c6b4615b71352606206e285efcd292b2a38c33dc053b7afc1003a40d85f1cdcc65f2c99e3936f82e25f6c965c9fbacc178d27676d9f897581202a206b6baf723f27f4f4bdc053c5e009206bc53467c7449c9c78444220d8206b3e8699de4c99bbe9dc1947e3b77bebce627cc20660029c3275d12b27e5d2a3719b202103218d2f14c0acd2dc90bc818e858e9ae28a152be28881812dfee927ce7b53e1648180ab99a97ac70fd11a70002864cc2f7cadd837cce1740bc60de13268074e13ac1a32f49967d72b8501acf795ba962c9311812896ce11213aac2f698466504102d70f1b2f63d4f867141b2b0a650a2949ce358af068285b4d26235de258d7f8f1e21631c319c0072854bccf4ba463a49621f12891c01c40a7cf0d9501136d6d12404092055389c97ed094320e487182328638c311c9023c78f19f80f1e3d2090c36320461140a8003285bc22bb722c5924dea40b2052d0d34a305bcf71b4fe238044c110f1d4e8fe4e6332047254200708744840082050a02aba5f6892077942bb1596212c66e5392700e204422a95349fc1739a0ca409e87f3a51ad6b10265426e48969244dc6f2d1a301204bc0b25cdda492d537018812eebcf6d1e9fcbf630e89444092d0695cf8b42f7140c78e1c3b725860092048d8d4c468f92b5c4bde2e00720453bd546a7f3a29561f041023bc715a9f3ce684ec2863cb7000007a005284f3f633c63d314eba730042043fdcf37396879ae8e10064088cabc4c50f16635516c2714b922ae6d659cbfe062041e88470b9f8525a524e56200708744840070d408060b2b297ecb6785a412980fca01777adb463bbdfd611407c70872c9352fb9b31411f80f4e0fc1e4f6e1e4be52b203cd82fc79f7dad0c901d6c0044075fe4c24b9e799f24496aaf784824f23d768494b115b82f70f1f77a2ceb183d54fc849801060fbeb84569423febc439045ec60f3124f0852d5449b7934d4c9249f39ff1430c1e3dc420c317b53876dbc9f406bfa045d249b9e12fe5b38e3f8c59f8f1e6e46a5b2ce73418be90c566924ac7099b2e9a7c2cfecd1c9e520e3e96db2e7c018bfea35b861c8b5591f9e2159c24ad5fbc6adf5a8e2bacf469f3cbebe49cd75678521a938b7812432d168851c617acc83be6289299829df059859ee94da30679b1d6bf50c5fe19bc5389713ec3938a524531b1824e9d4679067e784ce10b54f4f1ace4133d750add2a2739c85b3690a3023a92f08529088ddccb1e6fa2a296c22f2bb9cf04c993aa26457b6197ffadaebf4a4661dafe4aed92a74dce4551d584c97d710f453909f3d7974992a663a028e54c2917e261cdac4f1c196ea67f53fe9c224f6c269add9909a21b4f66f045270e9ef33b69aeac6acf09d445bf921c19ce4a7e136a8961334b43f35f471385cf84d598a6cbce45f045267091acb74a1d3c9e184c1c4b54cf0ea3ddea9613beb8c41ab6e4fcb1c4f24a1f147c618953a44e924d4e315bc548040c00f8e08b4a64e9a77c4b653ca59e12cd2771a66b2e7cbde8e38b491c6791e13486dd664612a54d139ba4892271e612f6faa5c43cbcef1f80c1179068bcc34b9c6cc8becc23ee3ca2963d86924d8c99a231be7044276ec133423bcd2d667cd108efda3f562b0922ff09d9d1811f5f3082fb8dbb8cf166ee2da22d69ca84b874c16274a9084df0aa9ff7f413d24ec479cbd6f2af09de6b410453a231bcd44d4c387ff4be800c177c7188c2e74e48c99ae77d43acde95b2654f32fc422853bbd6eb6f1d3e8448d3d3de489f24d919841fbeac4c644198bf76b2740e9ac30d44755203e2cdf559bf12fa37fa877b2e5b9213dbd3523ff0d1fab52e9b654abf0f58d5b7c9696ddb449f0f64cc93d462a7cad8fc1e6ebbfef0acd1831d673a52c46a2de5f3a0b59494d484b83ccbe301db649b57aa6227f777e8926568918cfb63f27658daa4688de1a87410230261180a0582a140180800886a7c2600831308303044208d0563e1a05cdd7d0014000044321e504a2622261a1216121288c3a17030141005c38030201008864381906a10e76a62e305d72d1b211327c7bcf8ca84c08d040e1ae2cc94d42194d2169d7c484dacfe9d0c211dc1acb9e826198e76c5fcf9113288c78850643b891854103900fa3a02b39628ec340200dfa098f060433e91e90e826416daecd7233056d942e0c21329155dcf86002ab254246a4e64b4a5ef1e5adfefc5a05743283ea1268afc7d1ab3177c72f54f51292536d601df875dc1dc97399480e956ba1a712319615588a18a904dc18e27617a90ceabc86568f6750091a4d555bb7738da78049007eb138b9d0e6a900b8f98603088353bef28bcbcb107ea090bd91aa299828e8d69f14c89679de6c05c0940eac1cbf23859215fe5eca9b1003d2eb1438500e4568ea26e24e451256f747b71ddb996598ce06e344e38395cd7ede08f7fc3bfc88860606580a52e4da65449c3303118afa58ba4534e9c5546b7d391e0a15c14cb1d476cee12934bc4225b1d0e49e733bd4430bacd7b732ea0c89d2f54cb8d72f8ebb9ec5e70b0e88e63cae9510bd123d2e4b2cbadf2cf8796775f60f72268121323a01d530640daa954d1646f8aaaeec66f60e4674e544bfdc8097793e17bf807eea8e8c6fde7a978eabea8b0fc3f6a1aecd434ba0cd30dc54bc1e5892bc2d35af914c130bac09ff7274835308b64ae16e0da47549690e013ac02184ad4ee00d242ce8847342496f6bee0576244e99af3373d976cde4e19a42185693368592e5645922c865beab82d1bd969fab4064174188e4769d4784e41c19b7891cf706e88bb4ef074d55908754bfb812dc708ac3e8a8267d789a3b8eaa314f1a8446acf90fad7dd95177a064887b30f7a060985cc2a70ecd37093b53f64623793ca75d858fd164bbe9445ec20476c42209ce07d99d8652d5fed200d3e17f5bd66a4369de878ca3fa5efe59e9b32d0e5c11882605d8e13fa04b3a4660534a82c949331f8380fca014f1f28dac9aa8cd39fefbee0d3652a7486168c7aa4c92a71efae6fead18b151bbfef42d8a267b70328bb2b140acb3e1cdfb61e231b53532b89aa647e440ed2e193409a69e5b122dcce2b93b34cfb9c578a69b4a80685d677d8e5638ed4e8a1809f4ea3e011c881ac2f29e7260651cf20eb2d887a0af2f532203750c1bce16670f90e4ae04db83f8e1df1c65aee0d177aed726fb7d8fb167bb525bdd992bdd39642d416dcede5b4b05eb90b51d61e203f840e462d06993d7cdc94560924d0735312f12ceaa0a928e112dece640a1cc13d3897750f18a60ad6aae10e3b090ac954c4d04121d631165cf07b6a321591a928314da4732ce4a37c6443cd4547d7fd6a3f864b373efdc78bbe80901b8e481f12d7c848378f19534e6fbcf6f26f8ea9386c8d0b538690979f56c766ec21de8d715a966e6a9b84484d1b1089261bc8673abbfa3399f9e276a09b88110a52f3b0ee0ef1849f6190dab540ec392d6d9bd52540e6ec70d9097271c9e2a8a0abbdca200e4ccd948a50d5f0391881a23639763936860c13978ebf162c6d8cac2e907f4dceb20b0e9b36231d29734479da57d4479d9632ea458c7a844b9a7abaf494e9094403e569557994330df13ca904a7a4e9a8534b5230c15ccd373726ad1df80331bb474bebfbc3cede504e0ad936bc4cf3398167beb159aaf66c2998264d9294fdcb4632f895f5d2350a142e2868fa0d324dbc962bd797ccb6a0f6b1fd117af1b57e426ab14a9055775d6b2cd68062af9e97f2e63e6f1cb0e2fadc98d615c9101df28ff934fad23aa05b4994edfbe2d7103762db7dbd328553add2c39c488af4496fc0177aa22483907dd063298587c7c37ebfa157e335e88da74c503d6ac4ee9dee63a4637d14a592604c062e0d9426982abe230156c154ae5262c2659e6b5a30861baafdf1f0c56567b58e10136ce7bbab96b2ca049fa84fe7d9e0701471696aaed3b47794d5239463c769887fd2ac4293916816d87a7fbce8855265bd30e33c6ea32c544b698b2f559b75f957b2963b9f4d707bca2b1f02985a8169b47b57ae3846124b0f67ed003496c938a77632fba84d8cb29e4efc9591da43b0bd1945852dc63da9fc02e98a04dffccb81cadb6023700bfdbb5c95d3380d90a329f2efc3bbf0f35163c6ef39a783c6e645aa8c629b23c586c35161cfc817d055ea29b413cb6a9dc54a8853610897674357f0af27b2420d06c1fbb5b35c671fccd5d54de5683b59aa3decd1f034220ac33e1d4d4ae52d008a2013bdbb07d9a8b99f578951316640e3d447f4cd3a39c7205a3c007cbcb288f78a4a0a392ae9dd3d21cef3dc9987e8fbec9708314ab025dc1f5e512f6ffa842ecf7da0d129f530c728680b06c702a24c75d51a9d75e03d67b4196828ac2de15ba3b655091392d6a0dd22319199df13e63d36d728cb58700898732dc9fe68703b3136f36c125c41633387f9f085a61e05d2b26faee98c016538856b2b2a13048de0afd90421213cefd0a40d744b15a5f5d2bd9064fd06ed1c27afd38c4c9b100018091f3337c046c99e2a1fe362457afb949514f03e15a40d872358a9f1237f1fcecaba7ff3219074317d01495732e506fb772e02c551cf6e4b221331bf0a50af3c0849cc6e6290b90d47f1c1e58f0dfe3e5c8226eee096798b913d4967d90922b0b1f8d5a9ad3352a6c6b4ce30f5e3bcf797b1353cc5b47f7423219c0fcb1c82ffe09e1d324dccc39536eff5255021b12f7ead9f24584a948226f91280912a3eaf7f1d812a150b2609b3201b23ab058eeb858dc9533a6098806fa74c0d5c031f708db012d5affe4ac27cd68d97e9237fc28f5239ce6999c397287f2f55a2174d7e19e5480bbb55113ede2a7d4f8ed1be0720d97234e55957f4df582eea4d036703239de1a962b6b33cc4c4fef6d49b0b75574f7558ee1e3923deac039e443daa0b88b59fcd147deb23cff83f31790d016b49850215bc7783e8a77a03bd6b0dd29c1c4caab1ccc93c5302fcb2a2939dbc9956d56ab4e14c1a81850b3656498e283ae39e4859ab8853369ede65ad57074ce7aa4a3acd005298f33d9337ce78ca9a80a69af86791840850c41e0eaeaa2120de120598f0382fd029f082fc2446deed69a4a14bf76a38bd61d80f78f7a203c13f89173a0d03381c5f78c740566da12f0d00f485dec61a1d13b86d8594296ff65c45e6a6a7dfc63b78b47909eb958151198a9d32bf3935e06892b4db3c2d56ae870d1b8fdc9e31741cf1255e34fb0c7e776fe1382cd362ef73249118119fa8980f7f0f11c37f150105650e5c465b971104768adad7c5c20a4fae3d10e624548721590e534a72a26ae95bb52ca8c1505a61d82de060e87a84d8ea3792936a390d22ecf5b0a7a680ed19284d58e789a9305034c8721d2a719040a99c65c9b0ec959bb917905211a5db38593c3154ecce7bf3e274864cba75a21271a5da42c1d021f355c2b0a8c6d4e4a48978f08b34f0958d9ae8e6bcf36c04016d3dd24c2cf92554f06d02dc910c49152da55ccf4fdb4ba08875db45204c18bb6634ac6136a1508a121863e862cfa048239922026fca18e2e1814670922a4820318203e2fb22d3ab570a99353e95c6a8c52f305b2021cedd90753b3da4227871c27fa741a4e2a0c7c8af45ec87f18ca751730907535cbdabce24dcb24c027409462f61536840981f8a0c44389f323df77880f4f8cec41e49a137d679fc124ef4a2d3e284a9740b8db0dc75917a7e04a9ab6f6e847192bfc9929fafe189e3f900b023fc6886fc29d868e94104307c86b0aff9028adc1d8ee179bed3f9abdcfc8303c70a19227f76083da38d99a0455b102d209045b8dd56b8fc04bc1c941b2f054006ee841d85c31dd41d152682952db8f9fc5d873defe0617f35d645e42b3b9ad73d08bb5305c7cee13668202874d244a114d7f0dcb7936d5f42f5fa61a13c47753c60999446d6d570addda33258bfb6c6591fdcd86203d094ec8a04b768222174422f0a3ac3fff19d2ceca51297c02f338de2e00f9c3b64f0f69c9d666c352db68fb4cfd4ab4c6b06dc19bf89d1b5f1229920912acf1540f176ae4c4ab0b3eb1740ffcc0765f35046b5b420a6beface53ca3052889b04d7a1417486befdb5580e33355822bcb1ba83bc6b4408aa61fa2e4119beb7c4b862cf00fd2aeb9a637ac9338de99f6b31ec11bb2d311737cae334b14f06a841e08788bca1b20e20714bd4d67029ddfc3a31046a61106ab071f76106c3bcbc6f0e94dbae823d528eb7259585e792990cf0ea8892d9564f63115e07774794bca301f7a905f6fd458106901d02e12b549282003d085c624f648ff63a46ef7764b451a65488d046fa4843a5f3b50b4672ad46ef02025b21caea5fb71470efa3e6b186afa3ac6695ce0ede2cc6e4c2de512ee928b078f9ca847be35ba67ab5156b92f5f6902199c5aa3417e9255e58f564029156f38f66c961357dbe53ea14f8053b4fff9acdd63ccd54a18609b98f58d4542b50db8eda54fa756796fcb44be9318d81077f0f3f229cacaea2866dbe9a69d1610043a3dcaf9061eca116f6dcfd68b4df4f98b41624d9766dc981599bd36fc5f4d3c43e1954fd4c310e583e47f2747a9ad9ecb0a01e34ca9d3bc6cc7343bf818cd11e3256f12211d38e346ee59d735dc49f148fe41e4f28d3b55c406ac94ea0a4c548339b225096cad46fe58b2702043852c0f8260be559452012cc3efb5e484730c0720134c6a50b95e85fc84da43781c2d63743eed25f7269d34a5c06a5a62903fe0dd70469929e1f3428d35896ea423dc50dcb9e0d724d5f894853bbe29a99bedd9a2aa73613d8a24e45ca358f2f107809ee5a98805f23d4981d01c7e1c0f12f45017a64e7faaf1f0b83ff0b7a8d235a149d424f448be62d48ab6701b265f3c04a994b002b169f4bc8a3dd1043b7cfa33babfe36d71905aba66ce4fbf52bdbb475b70ecfe5a574c280198035e012549fe8f13c35c24c98b0c15773aa207d4ff59d74917897bb2649e4797236637bb31be66d98aaff1d29b79d648ca4fae5a8cdaa37b2341b63669e6f3e1d32a73f1f668a2c6464b6e81c425e1ddab0eab07c065fdabd7c08cfc96df6366670910cfde4f6f4d9587adb610142a753c59e01df713dff10cce8dd77820c0e6cb7d7ba6129ef2236392e1ad20dd438e458febe4c97528335454bbee476210080ba5715b4af00359e015cbd55b62d8e4d36ccf502704dabb01d07e3ab536cc854ed3bd7bf348defee9125c478df615b6ebe3b78796cc974c81638e7e249338668f792c5f60a7c4e20770f6adf25a75697e168ea045fdba81f4866882837e9eb63c567f53524e353b643e686a63cb9e9b6207884a0722e53240aa1ff98f88c97cbe3249801d18205ee68bb866e5e12b53bc4214beeb766cd7509fa4735e8ae6d778d9488159526f07fb071ded25919cf618a08c1cea20b50cb84df45fdc89ba751489ca6c192b50d1ae3cb09285dee383dfb411fa20e9447aa935ffbec3bee8f151dcb9be787f724c639647e050d023b9ac477aaf839c0020f27a21f049f2541939936aa7454e39ee0561aac2cb2ca1ef8fef7c9ac5f7daeb6e0ab12d51c0d2bb8da5601818f0fa51f41835b568c1eef83c261120748a7a4e76df806031d6943661459e8cedf493a77d40121665e8406aff8c97f68476585db25c6b40879c405f057139c9dbc2a5524734d6d92049dbe777819a16008191ac7d6dec4c42a14031443557072d959a3056435b9e4d2fb821b29e2cd917b3b8732e7180fb3460fd2498daf67d27639fd81ab129eca6a2529447f9f96c322aa953dbfb9d1fe4a11033a82d2cf84c409347f3ae7f378252c1f125143c2f7f4b92606410da9f08eb301d7c21aec7d193aa98b757f7939c2d6e34252080a0b4c60662bcc9ee4d5d583920d36d257d4bcada6ad5531321f17e9962f198de578e6896794915c59826ca580a1cee5cb2dab1e8e508fb587672ffae77e8c969c68a996b70d4ab304b932ae8c1ed78e0a90e558389c43fc49c240442d3d9d38f73004598eef51a0ea443ab29f2be4a81317458276782ce1dc3c730dde153823721fe162decdcc3224402a66d0450c8ded923924640d37f7ea60698e46678cb6b31a25d1010c984e39aa0e660afade5a84355d2bc46c48f2aa1ec3bb13fe485c7a6885638881205c510f1224e1c2bd85ab19b637e4d8c38f6030913b73c99c9bb8ae73a15b7cf59213027d4db348ac33b42a4a18d0455966f231381bccb7d96ea5ab8fc4ac7670cb4218ebb8d357d1d257bf315632cae2850aa256c9edcfdc6abfcea5ff3011329dc1e737c099f784a178b03ea3191f4c9cd82a4b056b180e4b998e2d047c1032af3050245b5b9eeebe0ba9abe6e027f0609ef442f5d88aa6e355da4664b939466f0cba42e9020ae84024b982438ea10f93967e8a380aade9be8e41fa953144b6d0e58a7fa85ec24ce632bc78ca3211ae0c4ff32573a143f3aab00e93d7d761c92231b2a2a74c2f63ca797653835ca393419c98f4650baad1da2a56b194e1800ffc42092616728be0ade4874f804e31180b39925c9203d2ec1af2204011c441e3490151e13c16b7297ddb103a20c54d65a6638796d2229443e228b6ec4b0a5d53a247aba7021219375105566a25920912847839975c8c37ea97ea7b4820bfc8ca9d133a6fa936d676127b29c727b108f2005a3c84bd1fba200f9dd2be4bd74aa95a815967b2655a2184e5680c4c6045101c0d5270193feb02ebfecdd4355090728272a6bb8f03853565f9b604d8c5614cf12d3a669ea2e9ae1109f888a6b5045a3af05e2a418c1db031c56110e181f867d7707ff22186c2d0811a706d052a97309b3a95d2036a10599bf5bfab1822ee3e4c54a0191730ce141d2bb65e76022c7ccd3532d4764d5c4253d53babc01d0ac9c93f2c847a1ba9154593db78bac759a578689e971ffea31c4ac8d770c3a95385bc7d14f2fcae8a04b5a60434cebfcb8d1f3bf56d79981807e79b67de3a20bbc2072e47a878a623732ca9ba19f48597c249486329339c671db51e640cf0fbee7b9e01c2fc70a32d95019cbbf255dee825b49a59b0132f60a946545228b3e982b33584998aa99228a3334cfd5d6cfa69a0aae97d9bc9fcae8352690f9ee564917fa214e365b839b86b2033235ca087f25d8d476143cb3ad6246d2759e481f0d08401014db3ec54e89b058cea9112501f6d4e999aadc1d16726a3f9f4ae06c42ae07e379c0a2d07045926c3de871aace863b55f87a7676fafa978d0d0eaaf112f98e9e2dc44025fc92544dd38a6ca291a5a0d52895607a022a4d775ca030ca4aa59fe64780a8bff786dd77af6f152db82ccb96c0bbad7879f511583d8b6ab97f3c8c1dc4a2263154173970ebe3c5a08c6965605b1865293c6854b605bb4430171bc53750c0bde1bb62d08cfd010c7c1c9fcf4e443edf91616456cd4391a2803496d6f8c2e1f153729e7594346690ccdf5291aa0064df8d90b2913f8b0a9bd38b063608b614959846da0ecdaa119825cc823585f557044cc1a285d6f1b4fb77f8ad8116d3fa11d7fa80e6112d2ea6407fc3ed8af5cb434d5b3409f70f9e751e5147ba13de84a502abdd683207379583aeb29d7466971f2cc93156fe6434fd136bd81c33719280b458e30c7db439ccee27f5c6cb9ba4391032e5f708cc04598ce95ed70bdef4b537c76ed6a88334af682adb91a2876a9cd70db3c29bb0d5c833189215d420ebcad8ea0e0be22e288e8cc1db074b9372772ec54458d25b18b3fc8bdf7a4eca871b2355537fc062197cae18ee2f989cb89b61ab9111565543df92fb31ec9988b8637cc93286a454dc226e3f01ead2d24fba1b37937f64db88d47243dbea33982b31123d37decef124a862ce55810eaf5771b5e702d5290cf96ec9c4243af5da908e3919ce0ceeac5fa3b1efb22e6029b2521b4dc016ee52c9547e547759455cdcd21b148b608b55022808f990218f1efaea44458f3fd36116a4e616ba28069e2a8d97157265b330567f7466eaa93184cab6aaeea0ab4eee2db981f2c1e720b9f13803d2395e3644d321540c1bcf0f2d8b197b588e28cbc2f38344f40bd34d9d1c9b95826897c43dcacc64529a9791f8a4a494c1d8d1816b4daa1458c9bddff24ba29e41db7c1877019894ce8e8b086b83b5241cb249ba50cc8cfa32fbce8d085897be9ca1a0ea48852319c3f60981a029ec1383833013435fd0c71e2f448097cbb04460ceb023dcc57da6e449dd1ceda35d80060dab3b5cb6234fefb8c0844446e33858e83f5702c2999a82cc475b7a28a259d6374c2e2292ca2965c7292fc7ef12fde28e04a26281623166ee91a237c92bbcae19075da3045cfec416ba5c6000d5b9abd9984765a5f0428b2efef04b791284190a53b6c7ae94b119d65a3196f65574b05dfd29ef2ac0d58a18058ed0213fb840640b5ded6a06c8239aa66c987c173f5ae40fbae9aaf3151d0870876c30109a1cd0ad791af057090ad6d2bde43cb095f4a88e4e301c25cdcce0841557a626dc31c6e514a761dd75247b8c2f3658f32fc12fe74c89c1b2c3c189c1cfe64f1630e1917e6c13a445865884042b11e4b9181b79b1b2fdb1afbb66608296f48f98f139579483dbd3ad825f7b0edc332d9249830cabeba1e3bd05885a8303aaa41a8fe0eb6b7af862cb408ddc76910ac4f3cb5c7813ce13416034b3e0ee8131062b7dea333db3e9bea4fe47951c57922e89d403cb0c722bf58b3cc5b9b887aca5500396c3f3847c0354d102d32f27a4f79ed405939a3487bd2f58e02da52e238ab2621268e3782788e9ab5bc19b186130779a92003f92882b7b2cb14ed930509150561026b16f65fba791aa483298602bc331aaa45327e65b0313be4175ffd3f9509123367f8e6075878cd2140278d0037c452d0092d1b2c668688b3fc900e67b0e91b46be16cdcd7edcb86ab26a0887a5844508bd7b49b23fcca749e4899bd0236b572293bf93fb43a0177a0f01a15278cc0d1da2b4fcb08798c73e4c3c86078eed4ba6acb7980039f3edbfdbea3dce951c88940fb9b64e0ca311423f2443328be296d46aebb6643facadc209f4ce857b0f479750968865441090c8e743d89df0207dd0b589e5232e47223847e8bbf7bab2b8dcd4e9c37eb2234c247f9857a229ee0b258f45f0591b3e2a7427841f5a5c889f27d6db38b0524764fb8eed8061fd9736823af47f35f8f98bdb50fa77c1d2c3d4f02a13ab11cfe06f4eb8c73b1bd757b49cc07dce24714228afc9eae6d730cfd14c90badedc299895ff69b01b4b362a36693d307e3d5eaa8ab52d66b1cad28e57f011d2c9d6c146da6e1754b6b36661dda3f3b3921e249a348933eaaf8841c98fbab00b54a403e1b635a88b5fdffac9dea3f0a54f28685d97291a18ac167ded10b9e212dd3a45c34059b4765cd4bb51d43f53e7afad1633cf21afdd4b9dae3e69ffe9f83c5b2f1350414d84b73123272d36cccd0f78b5bff95089024e7421b632b9bade492080f705f7d31f018a9b3bd10da6daeb80c3302543d73bb118aa60f6acf24f5b016aaa12f99f660f87dd2be59c83394b686ef244e668c4a247ff95a0617d56cbbae0a7a4c791e72c41ffc419a0d0057ce5cd618bb91c85a2b19479aef8b9f54d551128c3d8d0b6b9973e65873fe9adcf134e4c8762b5bf0bd9e4e889b0cc825d710b899d66d71efca6897d2b3d407cdf71fbab5a72dbdd9818b4cf17ff74ec97f9b251086c3f40b7bba8b4f61f11244a5ff463322b409c1c58e06df8b9ccf7c25b8bc2bc92c796c71a9271490c395a96412c73097dae31e23e2803d427c81b8f167d2ae7a2bfbaaa87068c95a11eafe6cbbbbf28ab2b292b73e565119d499da812e131a2ecca369b0b1d2228d19c6e1357745f7d1278fc92b5fb7a42f95060a6dba62995268b5a87a8914dd11542e15f93cd61b893b639323527475977dc24a1206876e20f1ee57d6c8fc5f93edbfb1703cf69cba5c88e12e133a9aa1a615b7a195bf237f3354a6a20528b0ea8f5f02db0d2aa0c6eb9c090a0a4d4960c54e799ef3dc49decd1abf18a1b2bab65d08ab7dbef26a9c1372aef23041f9ae59c1adc4351794e2e0ba5bf43524cdb9dcc9b024aaff40fd6ba4d5f86f5957eba3c7502d9dd00507bfb16bbc78ee0521ce6e38447738bde91c594861947771b5bcdeebe88a2fe6155cc04e417f737be578503616e690bfb0061b23286bade1eb6e4dada902c8e87acf2d7d9beec472c3fa4dcb9b90d67a46db71f9fa861de1a014e52c0f1a5e943dd634c99ac594843667429c9c1f8bbb68312776a0831f8ef0778add4db9818649bf77e8e2c37c34b7656cd064c0721f9f0b7641f19f02a3274f83df7165dcbc3e4969d555db704c23bd1f3246fb07375795dee9b6e32d858d131c92e251e21724073435f99d93453549e5685921843d8e88d25e340649f3f60ae5513461eabd1c20aa532e5a4c7849429304b526315c25845b14b37444e00b6e31cf6fedf73f1958099f70413e694241c00f67c83cdcdd28f1f12f0b8ca257d6d43c8fcf24d5b869232dffb948f1a7fe59b944404761f677f8fa2679110aaa3bedeed5e3cdae0742600e2af488d9d162825d4da9191f9655143d4b56859bf4ad0991568054ae03ff548d3f14789b80907349f02a8b494d5aa09bcdda2b0d00ea74b48fe1679dbb0f73111eb562b2406ce09b45ba240e4f927165a35f1806aa8200630f975c052050ae1abe319d7ce6e82cbb4d4c53ffec2ca497ed471bafb6a24a6af382b52724929246935cff9e7473dbf5822c3a0a2783fb7a2bb44cbc5ff7896cf7600947e6dfff440174d1eb446b23feaf51079c09a45765e068b364a7c3b8c2cf8b90438041466a8b67bb54f35b9f548b40d3e7b5d7b56ad0f5d716f57a88dcbd8e9b2ee95eb5f779e3137336175e73d9c9b6b1b8a2f9f638f327d3fe1524b38a8b257667d9ac924bc0f52b36358412f0ee9356c8bba19c5ac2d05d9ff4b4f9af98427ef35d4ef8edcb3c9a7767e25408c1f31d0a27a810b51dbcfc61829620b68de893115215682ff61e9a4c39cd52e0c058d272d916fa05e90c3378a2625a0f2383b95a1599574b2d4c05170fe67f817c28e4a9263815983be184a256df4d8b992322e3ec95a94ba15d602275ed4c6516a51f0c7240bb266151e7b716c0659839430d667a683410ea27bf15056b81bd8018c51456571fac3368c4c9a5ff11158b1882f2e1fe99db7a5bc1bbdeafc5974e075fa562b2bf24a94cead0b527c918f7046d8520b2fda86e08a2464fa2440c83b82499eac1797cf72d27e170be1288661151a8e9b5ecbd44e7d82c182575660a42e7b5b0ccc79f081c7585e47990618ed0153363fbb2804cd88c87e84abfc95e56b7b75aaff53b9a3addf7592d668d08fc68ea5ee96fe5d4aa07573938e484add69f24629b79bf25689e79b4e9212644953e0b214e9ade55795111cb23dc0011b38fbe9d9c5aade80b1a199f01dc106082ff8c392be67bcddf72ea6ba5960209e44bbbadbf540ee48c3a83d6abb9830b0412bb1c135ae5647a5fb9df9e09463a86365811a12432e8b65b73e055c044dd99527c308b3ef3cd02897d2b6e78b04c7b5e4c499fb67834de805d3d44183184b1900435f39a181a5ac068be224f4875de34d3de6e3b880302a02280d3dca08179fc32646dd44e98aede20d1216c2c01fdb991b7cf45fb87384eee469549a59dbee798ac2dea2a07ce3741215244e5ecb57492a60cddf552598d034cc9b528e48c25096b4a32661060cd35b1c4b2ee54b1ee8b25a598dac2e473fa7958d26f060a96008f09ebd9dd96576f33bd8cd761be756cf78af443e3e1a4a6764caa1c4f2912016cf4cc3292c23b0b3c2d709e5efd3e2bd72cc46a6bb99ddd93ee59fb14785e9e1a1081ec2ec60baa1eff45109f805b606a620b8c9532a1b746e5fbae3cb3345418d18b6676c206a08c2ccc4dd7774996700935f76092e7a05813bb0368f1ad9152a2ac07fe5b5f1bb8596458a213afd77b054ce0091e2e23d2a4ddb38e337d9728d078baba585a92dde8ad7bd6d4442dc0b6a1349dda4552f1b8849bcd726bdc456d24aaa109e8ae37e3cd339cfffde59ea1d65feade892a01703a93768c7db699458c8639701cbea8304184b4fb957375636b64758777c21b5e4415aba5b389bc16b765ff9b5953f687fded40e645e58df53b50a2cf3d426c4735e35601a8f025feae588751201e8dfa54e6935bf1ecb15f429aedf59dfdb52322951c42c446dc9524995c995a4902f7fcb82c85c8dfe2530e44a8b4333c7cbb3acde6757db032e4f96f2614ef3f2857a244006b5b86242e591f66e3f641e5d83ea90f545007d080f0f9e7624396a1d16491576c6d16e158db32df903eb7f233e7545a237ed7cb076425a75c01c66173aa600d0c43c9907e88decc2a45a563168f21f31d7edd2bbec8a2578df744dc0bf99f7ab44b6b6c13462d44b6f4667dda86a476309f427570f28dd20e74f376f1db407023ff1285ce0aaef4a257c5855872a48d9721cad247925a8d6f77ace2ab92c93eaffedc12ea5e1c6602eeccaed87f3e064030c749456f9aed2bdd0a635efabb5afe4ac07cf7a4278dea4e91e1ed1737470d36541284b2831cc71c8dd033aaa2bf404d8825b75ac53e80ab0756f4f94c064abc224fdafffd8051597d3248bfc50ed10e68440c2ef999067072cb2a54a782ca966ca984654ae3f99cddddd244666e8a46df053d698405601a0cea568115375e221e6e7d66b27d40c1ac7c5595c13c179ba0e563143848566a7d87961bd7df4457c267254f27ab6073b46f7630e1e1b4d581c2fd5b9616bd9f5a70358a80b4beb242020c5806e12d47cce56341767350892ba764fb4084322a383a59f757f1380e859f5189cc4c402c2222b7826e82e6d5d7052a0006608c4de509204b87c9d49aa9a8193fc1f7a62f8b3017af83daec101849f052881922c02455d78fc3aca286b93e854ce346535740a6eda202dd77fcdf2394181bf6a7829f9051d1455da4ca360ede755ef0de4727356de37ce17cbbcbcaf8b8212b443742a7ae23296365d3c0acd6770121688101e5b353db83fad635a7834fd8e65c80a553f21ad45854aa7e3f83abc29406f714425605732434d4ccfa2eeb39e83ff84e8db5fb04f4991345ce53d560b9aeb6ac2ce5b349a1c8a441e749eadfc8f5e8f0fb223e9fa25753804489876dd8e934609ee4902a40a705a7503c63ed26f72f2ed4a57ecccf4916790ff46fe9f0abbf29d1f3856eaf2a6dc830ade1cf15a2a25264ee96de8b5be1c5aa39b24f4291aaecc2277e5a57625a9862f5b230bf2956ce80e606222869f481d7b1314a3034133239e8d71c27d85df2f6fcf662751c931667f732cf65139b4082b1d13fa7bb24869d1c7321a1c97370a8bf442a6bfded79b25c76295241a15d1f5fc153cd94d018e538055f4843a4d13b571f5fa3e12e9bb034f3571516961d82534f450940d64a015e2fc6af0998a81ab53989ada7896cf1682aaa056a2b15e975808f07a2b1169f910cbed8aa0be7ff789ce739b7e327e3fc1edd293ac8d4c7aee21b31334132695adfea88a1b50980d1de600b5441e5354a8e145d3ba59251586f6945f4d71df71a747cdcd532032cf5bda9225ebb7bef18a1bd6a70ebf3c6194d13859d89b439bf1658ce5de35a5fbc731e6d018d64a06eccf387497200b469c56c13e3936414d50bc546dd0f0d4f9500aa53a590afc147166439a9bd35d26b931cd17641703eece45e70e3440aea69003033ccff33ccff33ccff3d819df570409bd3b2525c105da07554b4a922d5b041502665f6003cdfeff7fc17ec2890a02040f1e0fe90eb7a7f8d57292ad82b45c6e4d51bc889638a96392b5a5f02737c54fb775269f90e27edfd2a824c928b4da0da2959e2d8926a248cc635693523ab3c95070e55f529f78c28509419194fd7163e53bf90b7ee22bc16dd4a429b1b5f304df29ca86f25c270c3a5ad2eb6f68cec6893e732a648354a46c9b58f53cc6d52474c91ed30463f11aee2e9a3e6399284cee4d8247a765fe60c258ea9bf2ec32b3752ef10966f9377ed2287f59028ff927459b58e16255893d2bc58572effbb4a1c4193759d60c4d52d4cc244ec93de50df929749024c1e7d7ecbf28126cab6fb63651f919125efcb04b52863bd17bc431e5a4cd4c56371a47dca14dd68c2d4f67298de054b367e6a8bb49533d326083116b26bdb0986c2c42cf694d2b6f6efe9d4644d2f81124053614f15d12c5b385e8cf662326b09108ae843949d8bc41449967492a44b8fec687c824e55bca92ae6bb035e0041b8678727e767ee4263e6da3109410a6a1a2c48bbb2c21f49433d9dd4ac8cd19326c0c620dd33995a6d08620ba92f4c9cc7e201693d9ac492eae6d1410e71e9fb012cc3f6471a2c3f32559cf4b16d8f003b6e7264a8d8d7d0567a08218a8c0461f123ef4c526f19ecb5919d8e0c3d21e3cbf6d453f49923d989b97d5c349655e1d2036f4d0257dab50211b794033d6f677a3b5648307b23cd3642bc6a5fd55f0031b7758ee42fa6fae6dd8414d63be212eec99b6a50e5589ffb99fa43a474d0727b453b666f09eb750b131077f63873c4b9a5672921c4c42f4c60c2d6f15bf387c1d4ed8b8794a8ea1c1818e31ae728e11b71767c002e80d36dc60a30d5c122646f3e6b021d9ed45d24c4e986b0d67eeeec890e94fba940d35944cf490e12e5c3491478060230d47669993b59c4ada4643925cb9499aaad3c619b2dd0bb1d5f9fcc46bc48619c8d20dfd17438d7e090ed847ca50ff966c455f7bdac98888480f3690044934202202840cace6f8953ac93d7c70a4878d311c4eceb1f3c466ced41964f0600636c4a075bcd0912a9d31ad2322223db01186248d7aaac9b7a413346c80814d5207ddf51e4d511e11110162e30bd707b1da2a4912cc922322225eb84f784d1542a225a61111912e24c6d5899292a6eb587ed8e0421d3e229f625276ce16caf7ca870d2d7897bcb2de7420592835763eb1d6e536577260030be7fd98ac7246fb14f4326c5cc1eddc9ce9ad3c367d464444ac40d709766d975ee3d955382bff52fce6cb19aa1ad8a00226acaae76aaf1e19a7b087abb9a5fc9ce4b4e3c08614940bff19c777733c310a7994a84ae9c32423c306140c1adc73cfe6496c3ff2843edc9d14bd2bad47d706369cd06dcce5e5eba9c41c036942ff296b7d762ad32440c828c3839031c2831e41dc064c286e2ecf2699a53be1c4c6129a1ed32d29ccf6c99a12dcd0be2979eec94193842cc51c353ddfcb62030989317322b222db38c2bfb184db641d1b46e03a5512234a4ef8b247c828a38ce4cd204301368a70c7f84ee37539c78ebb0d2224573e09bff898d0e0860ca3967b0be5a7fa5af9910b8cf1830132081106561574a292c99df2d9c3db8719272418e57a8a7f861e18e798a41cd54ffe40c82fc81721bd08e185f26ff2a99ce7924493110a8c00493ca081905d5cc28925e5096dd72415a28b04b98b3ab35cb35e2e5a37d7cfd86fc9a4181774169ff4702715fade62eba0f7f526d7d9545b98b1692e874e6932adc5c1432beeacd7b7420b379c695d7a679de5233d7e0439c3c70f13320bb32abbb56aeddc47cda040882c8ae925c5fa13377bb623222269ec06426211028b905784b862435a11c28a0984acc2ee0ab249b0f89f0c5185f14c5c4bfab2dcc13292000a4945082a424e814688295ecd954d10138db7d15228a751734a6d95793f529cc5834bd66dbc7e276414f5a5b01e8d32e9045f14bb585ba84693343f0f452171974a2ef55c5382025171b9cd49d27c267e22afcab424a7784c2dc413e6d0bc1223ad3cdfea44a27a995ef4138b17e644a9f6fe4c0e1d4b737213cd9f60172a5f58b7146922c136dd4c26e9e4e3434c08c984ee56be9fd54bd83862c23a7963767989c1d58284904b789ace53453c689a6589904a109dfa3dcb9c249467005084104a248d99749d3b7dcacc43266196b4761a57cb1022094bd4f8a1736fc9a1f6911e3e82f470108444a2d8b0bc4ff5a36b9721041269bc4d29bfda63087944a1666ee346257cea1f6e86191f70800ac6e881770e7cfce0801f421c4157aa2ba411079796bff7123b9c68064218e19669ccd5b52f2164119a24ee6c0ebe9f6de30eae10a2885776fdbfa4f4cc2a552124118a7d7dacc949db2735c23d4210913c79f7717299f82e1016841ca26ecb2d49d66c374f7520c41049d9ae3eef718f200e64032185e85eaec4caf4022184e0c37f884ae9e69f6c4444444484021f320863b54f73ce37cc07472a102208a3cbfcad5289b173de0c218170329649456d9afb5b0b2180f8f72fc8f59a14b5da1f8e12fe2eb6dd42a6a81f9e8b9aad3e635627e1903e14a531a685ae9d861cc287f3b5e3e6f857624c1db287e37a554c42e798b358881e12db37254146d334e72179e8d393ac5f98a44975081ef8a0a36db3b796ab0ab903eed9db3aa2834cdd217638cdbea264fd42ea90647df617ad332793103af023a6f94dad4e8a61c81ce8f7d02dd29229351a111149a38c32921e40c80891439969794633c571130b89439b1697763e262b407a00494636040ea58f7fd2a61a4744448090518390375c425bb887d733dbb8a1d8b4bda3d5f13cc85e868f1f3dda50c8dd74fe7d7fa903848c1036906e62548e09bf31df0308196b48b078af90ee4dbddb87a86199540bbf25edddbe232222dd49481ad0107286effe44347d39222232460ed8056e76300600c0106286ad63e47fa494a8259721137f47e7c2774a0d3d21840cdb9a984b0aff17e1a990319472f09d8ad58e6f133150619e34f224e1e4670b094352126c636731e14aa3400e3cc8074444289046f2e3c7052e30c6183d063b0bca2823c9410a4444c6e0410818f21aa9fecb8ff52eb220e40b215ee84d3ebdfc960ce942081742b6d081102d942fb5492a7f5132e573c02e9840481612a52f3bea4dbce93c1a675820040b8de6a70f15d3a9b4845cc1109784d0eb8d1742ac60a8fa94d258ba4865ad105205ddc35a54e3433ae44b08a1c2952dac745647c7306720640ac692888cf9da05da0c32382022122285648d0f711fa6902814f79dd35212337841cc2063a487fb800c203e08814272876492d22b7cc7840368843c41f7cb8c3dba9b463641429c4096a471aebd0412d204747a3e8698af0cdd9980d4beba749be0fded12308f7d6238918d29a42d085102f3ed7731e7e53b3133e000178424c18dab7f9f0f7565d24828b4956eb29c34c670861c813e394bd4dd9d98311462844a66b5e2971c327815528433b985e474524b8b0921428d61f0225fc96367c9adbd8630fabd14e2f2332549b082b19fb879538e72b125a74727a10630ba9d0be17f1bb37964f4d81e1410110182010778608c203dd8408d5f3026c45c4e72a8862fb2974ea1f15dda537d468d5e9c3bdd634da6943d2abca8f2676b976f7ec69c5df449f64ed0cc1553ba75712c2d9d3d399b8b3236bea794afc4dc4970e19ce5acb868366626b738f97ab424f161d93a5bac1e4cd294e44f397d925a785671ca520ef71dd3824f297fdae4f7dbb3b32879aeb524768c8a5522224180b80dc868326ac8a29c3a2d8917357694198bc2f9c7531f71040d203dcca8018bdfce4fb82454dce82b0c95842c131719d15c71cce961fe613352d30a2dccc7d206b3ff4bb362170dbf71fd24e79157c18ea5ad2a3b37b15e557492fcb77392bcf2394c85593448caa59a4be64105e76d62a6fcdd299a4b424acd4ed7254906354cf17f8f584a6531f6fca5e03f894977c57facb3a450dfbc930917556c3a2fa8310ad2635cede59a94f8c6d8400d51d4dab999677c1568a046284c490ecfba15f4400d50945abeaa43fc26f1e4d4f8440d4fd4e8440d4e503a9636bd5bec586b6c626b686204353251031329a871891a96a851891a94a831092d444ba6640118a18624f6f4ae26566da64d91a83fc951cd5c531e17755103129c144c37c9f7a3521f06281111111169e2d9a90008a3c623ee0de6194accaeca51106a38224d3989291e4f73b9d688b453ee2ea16255a78a1189c9ab376a6846cb7a11c9df3979acb81a3c4720d450445b5567da131583fb89c87abc5ceaf7d2e7434451e52d658f99aa3c3f849bc32eac5518e44762821a8630346612c574f3e45f28e0831a85687d73de6039864d138d8888384044640c163820050ec841102068dca02fe0ce817644d42084694cec3831f5f6db0791860c3f9724614bba5d1089f717a5f285c5ce3810ecbf5c4e1219df1b06847a593fce43fb07f2dc733a398931733ef183f9e73f675d3b553ae903e6e15d296a273109257c28f77b65ce5eeb6e49f6a079fa18eba71e0c97d3c6964f8b0d691e703be97fb3968bfe89874cb2e8992edd6fbcf10ec95172e2ae8ca787ed700aa3ba31c77392d6abc359ade4f2b687757428b7b52449960b96f23687a36b062dc14c7d4a8e1c281d4d169d6bf3421387672f7cea8ff54e471135e050f4bac5142b2656ccdf409dfe5ef59cd470839a236d354aeab49ea4461b4cf5595ede5683af63d46043521e9150a9acfa8daec1f094e864fd9d573c3524853c978d5927c7aab750230d977e2e4d1706a98106caebe54b4a16262bc91914cb94a379864fcf9a19fccecded6ca1a9e25486af4ece2147dd5c3c4f8634c4e76c7af31832edf49f433a35c4d06494b6bbc78ae57518cae1175ba72e5b8a070c499ee2c6ca1dcf2ae22f9c755d9ea3bddc752f1026a6a4f9a1eb266e1756135df1d0b53279e542d29a4445da735ae8b750466ecab1552d94a04616ced20c7a99fd93540e0b35aea0776ffd8c4911420d2b605aa9bff4a4d09255c13cdd5cf558154502420d2a9439256f73132d7938853f6fec1469c2a546470acdaa87e5eadbf3e0d68842f9a772379e673767a0e0753e9d12243fc8983cc1202e6dd5b3f1d9a1130ada49be14bdc465c526783f2399744f7e5083095bfe6b7e7797eff0975067cea39ab48347754a404a736d4837edb72d099f64be75fde726a1470216d2e4ff937e4e74b3c611ea24974763de566adf08456b798494a0da9a1641cf39dc5cb387cfd4d42082d993f867e6f1b373c34818cd6a2568495d0e09a3afeef2a974d958371889afb261ed5a32b70b8c2b68364b4f51a36f4502017e714cd1ef43b389871b7d516c7bb599cdc70fb9175675c558df60e279f2e2fbb2b6bb789aa9c75d74f95ae51c8d1c7f7847a62bc5c6cf4843056904f1437193c96dc9c1377797a30f7c9c56be7e8f0a39f860b4859e19ab9876da1c7bf83d7f925cd34acbc51c7ad8ea93d86692a8e98236222272460f1f417ef830411a3f72e4c1fc2589dd59a493a5ff100b2a90030fe518735d8e7fe61c678e3b1cf2b397c9e92b8cc7cc48aa90c30e26d93acc78b4ec249639eac05d69cc7d52a7a4961fdac11472d0a1d196eedb78fb54e273b02f7ed7cb4a98f8b70772c881c84e098f69ba973c5d8693c10125e488437b65659e97d3f2db09193f1216a41104004ec8018775cd4f638ce75be97e83495c3d4b927a3d794e0739dc70b8d470f91b1f89418e3618175cfea73bba3e9d830d468bd6edd3299a753ac71a887eb11c3ffcdaa4d4600c655b52a98935ab9221471ada541d3f68673641939820071af64ed9f2cf5476db739ca1d4246566cf7eb3cf7398a150e2e67e665a0636c53cd5fd52410e326421773733bd9a145e8e31f8d953a62bf9a4cb9ee7104362aca0e331da74f270214718caa3f3275766127e2b58c80106638808bbf7a4296cfa0bc9a9a4a757f1b024e885dc5376c459122c74b80b073f4f726bbd5c304dcc8e25dbb485eda2d47f6b460babe87a5eca1aa7269385aba412f37cfb58d0a72fe564598cefe71572dfd8565552e7ec94127258c1cc49a622f38c428e2abc25a51376f523324950c84185a7a44de9d672eee4981c53a83b8913e1c1aa3bf423e490829dae6bc28a1a85c7d324db7299030a467d84c49998f75fccf184e3c6b7e5d8b9db258605399c60fc6871c3757a23f626147f59fedc42b78fcb04f4e244f7d51b49cd12e8b0254efb4709870d1eed7b3e772a4b427e2362b27b7220e192d0b6cc9aae536d24c871842b4cc60f390da9241b81d616ad4d621bff9a1c45484a4153446b98f34e92830885878bc12f598671b4cdf321d91d6f34611c2a2a3387a54f92e10886337d2f0e60e0c93b4d8d8f6892022bc0f18b34c599e5b64c3a1ac7e10bbc354bacbdae38276f70f4e2f4a956ef20d57125bc28d8546d7cca76a18b5c58d9152b72bdc72a830317b5e999b89b7370dc22d93dca788e3fbf9b9b000e5b2c1ef65bad5dcd4d08472db6932eef475687b611072df0d09ea34952ef963642c0310b3b7389b9566a34991dc0218b47acb2db7a16ed13138b3eaba7d4b93c94ab05072c3431f9337cc6385e710e25aa7bbf8ec315e7f9cdfd27599279c3d18ac535648e27a6a0177370b0823e9988cf796bf53c3856d16cecfed418aca7c48c6800872adad87fb71aa7474d3e15c5a451a3d52d6a668f0a435b434d93a7e0193fc59617433a33835ad9a638f3c94675e6122aa64b517d8eaba74fa1bd6252f82997873e39c5e0d78e82d58e21729d4c12cd44145645fb88096928ba7839cf5286cecaa03074e56d30f5f268e627923a4acda7f31ccff744e1bbfaba52ed44ec446927ae227d3b6b0a39918b96c7768ef2dad626369796f3dead93324613aecc5b4c92878f3766c25072e5af31ed5462840942e5e4d0bb6b9a3e9748f2cd8d7a62b650a9e0b0847ef627c7f7084d15bd018e4ab0e9b97f629079cff944e0a0845d413bbab24e7c24e9e1c3063d80806312491e6d2d4bc5ec26562322223d1222e090c451eb6d7ff25373ec8c888804014724cace41d39af4320e489c2e7ea6beac1f816da8bf8bfeaaa5f650010e471cf216e7e67b29646e2401381a41e660bee2597e5f3d8c384ce8978eef9b9e7811be5b6ee40991f69ea308f2d7735e13e924f9611c89a04b8c1bb5935827443810e1874eb914e5b26a26711c82ceefef5c29da48a7380c917431e55a594ba7cce028447135524ee2db63ff3808b1866ad83239bd76a7471c00081c83484a57961d3fe11084d966ee841283ad25393802d14e5abaf83d169d96077000e22fdd64ab17c2f187b36398cf992b9f2425191111e9212222820b60a00422e8000a70f8a198138fdd2598e059c3d1872b5734263964a9a59c0f898916ab744f2ae9a4e0d843a12ca7bcde1a3de43f6d31f7d46ef4110738f2d066f9d6c8afb8f5141ee0c04329fa7fce991c2adc7b872b4df766624b0c1db4831dc42f8a8672cdfba9c32966be4c79f33d96659081831fe0a083b1d337a7d706c13187b3f689277a5481c8e19839899c78551cce372ee96ede36610207bd35697f4a162038dee0a55ff10a11df70133470b8e1a43a6d96d7e4afcb7fe068c37267dbd1bc43060e369453cdd6ecdf6b284ac9c65cce9eb99b031c6a783ed33b6359dbdb9986e773f7a675fc7cf2674444e471a0410b15d359ffb464fa6c80e30cc9f93b8cae6a5a4a9f0dcc505b7774dc283943a78c348e326ca13289a9c2e8a5c546444480f818711c64308a9675c6dce118035349b29b170f87184e5373b2dd95901a33053c00003de008c31b2f47554c25edf63138c070b44af99d49f6c990491c5fa063f273efeae0f002f62166eafedb3e8aa30bf77c56faf052ae591c5cb832677a59ee3f3b7f0b6f6fe9690c570b6488cd6da7104716ea8ecf9ff973ada5c281854258989e9ed1ec1f8e2ba02af1ae73b17a43c76105c64fcfb29c45255909e0a8c29ac757c3ba26cf09a9d0f69cd0bd11ff572e8e2970aa953a45d5ffb89e21e09082b65ab26d118e2898ea511e3be6bf4c0a0e2858b379f753e6bd7be7094c9da75ae6121c4e386bfecc61b358bcba58004713d0607fd2559a92b25c389870a985ccb1e5e358026f1be3c768d5d86f7d0087128ce87b8d127912eeb8122c53c481044adea9edbfacbb6442011c47a02b85b0babcae1e5c12e030c21a5334754b0f13971c018e22a89a32858ba99e72da8c88889c8b000e22dcdf293a49f2592a95ac4044c4c70ff781193ecc20c18d61e021dbcccc3ff355f087a7e0479014888898718630d6d4a8a466f223222240c8c8410f33bc8c337c7030bca94e727d7ef408188826417253b67db0724444a402377ea16ff46c9bcbbcab9b6484c730377c617bafaa56a5201dc32040c6a01bbd40b4ce773f07dce08599664dd812db7d539a811bbba8e3caaaf38ea78cd60d5d186b293d25ad73711ccb917bbf8df5f2062edc363d13ecfa6398f3c62d4a132e65373b19b1051b3a967fca96cebd47e0462df4ceb1c755a79294ef1f36f0e48c20490e7ef8e080dda045ed5ac172d608bb943322229286d0e8112407df801bb3a8b3491f6a4cbaba74cfa1d1c381fc48ce9045c952899f323e496d4e2c4c16d95d662d2c1add90a788480a446ebce2dc9aac69df9cac6a4444c415ce499576aae7afb9c08d56309f9dd3ee7db678ba1313888800f9e129b8c18af38dc9397b9fb627fdc72a98943fa93446549779813134704315775a4d4d92955871bb54b0b17e5377d2d7c87e046fa0a2f4354bb75a3f39993d809c22d1a283d4acc9259a670a3b263a95c6d768934ab1f9fe44798e592c0cb8410ab4a3d4e9ab360aadc59220d96be2b896033244447280861924b8218aa43e5fadfd122faca168df3a7eeeb6427f0e8a2ec646e7af389bd46232cc484c30060a6e7c82faacd935f51ae9f1801b9e385acb7555082170a3135db6bc6de95df3f8991b9c687d2cd4c90f1bf4d8c4352e3e3efa9319dd480f1ba0b1de3dfc8c8481b88808057e2423dc3e4682780e44447e24237c431387a6abe76728d9e7f6c08d4c189f362b225e4d9ce806260ef6b71afda2e57d342222d269987101119134cc48e8c625cefeb768e9e92e21e086256e5402336dcd193eab2ae41ef4074444c600c10d4ae4155e2ed555489cfc24961bf5a8d614c2bd95046a172515eeb9965a24ee709d41e43e3720d186126fb3a27af6cf474444c6c88088483b1967f8e004f8b8f188630a8b3aff18644c331c03371c818d470b6f4f722c971b815f7994caf33de9638ce8dea42ff32a7f04a11b8b286795d6fd8b4c25c728825ff1f97fb31c2ba43fbc7ff8b0c08d44244972af4f59f28a332142f78bec8ffddfdb7ff430c3cbe8a1811b876063995fb987fc88cb888888218e1ffb46212eb92fb4a39d1c3509bbe00621740b7ba23925837873dc8b26e7f9687249c10d412c97eee55f6236f94c20ec907937348e5d8f090a6e00c29f2f2949e55e103446f087d44c14f90ab657158d8888a8e0861f1ccb1a37952407031a1803031a68e7e48c14a4e12128c18d3ed0ae2e799e53924d1d72c10d3e7c75b939c36e492e5e066eec61dbb312dd7f335db52322223c70336ee8c19cee2db7cee7461e4c13d6317b727633ef811b786864dfb5e27c0aafd911119105dcb8c3396c0cefa61e3327d934829c9103b74353721d63349ff3bdeb40577e56ae7cd241ab1caa4c8acd41dd4ea79926ecdf69e8861c722bb9f1de2c72e98b4325a6860d7926ccb9950429c3bb0137e070e30da564e749abf10d377c52d2eeeabcf95f62d0d0816b600337dae0776987ece828d96783daa1d22235e6c61a4eb9b2bb9a50dd50c38d344ce0061a6e9c6193e7d644cb29dbf7bf61062b499efc2b1f9541dbca6af184a8fa3811c20d32dc18c3b9fb4dda37b92dc9470cca9b9c73c44647fa0324b81186caa662092b13972d9be1e30637c070ec8d8f3b26674885cc8d2f1451f6ff9943bfc7df0b4fb5a711ddbad44ab9d105f272ecf5b7cf05eea42ceebd4929bb06c28d2da03b3da13b92b1bbd4029ac4848eaef39db7a471230b495317a32feeb22c8f05d5c4d7943db4956dee0a64d26072fab415ee4a2579a26c974945c68d2a2827c9c9d3e79cde3a4a854327d3a5cb583d710a8ec9da593fa53559298514dc8882313753dee6f3dbebfe06149cd6ef35314fbf49f92778a2cd6613a4b5e5351bdc70421bbe2d5c93e6dee534a1923afce4f8ece7280a3798e0654cbce5c877557f099406ff31f9183b7a2b3794704a3595c3c74e57a2e2841b496037c71ee99833ef9c48f04efd52ccb91b47b8373e4379c865704d176e18a17c2d958996db386f14a1dbfc124e4e69d9ac45e10611f8fca61bf382d4758c8d611463e36ff8c68926e64b604318b698b0c1f2c9631eb30bb0118c4cf44da2a7c4e6fbef061bc03047d728b117e6669367b0f10b254aed848bcf0c367cb1947d96a0e341fb62bd3098fc896dbfd9939c106cf0c2c62ebacc16c74e568b6a1aed030369b40f0c7c09d20842c60f1f37484600e4035fb0a18bc4a4986e1e55af76511bb928091e63b2f74646066ce0a2e4399cdb5594927eb2710bb425eaf472a6d795b630687e12a6ac4247ac5a2445d5379b9f12d70c1a67d0c24cd2b47f9e9db8e3cfe2123d4d983ed59c722f8b3da5b7d54cf499d36351bc2c6a9f938592731c1689264a6d45fd15a5ff080fb617615157601d6156c29fe798ba159a3457da93ad517956283a3d9226f468b8ab3885ffc669c5e89bc3aae83ee9a73d53b1540ae7d2d6a282527bb76806c9e6d39b400c2a988268cadf4d7258f2814c4193342731a7735238eaeeac56a85220461452936a2f06ab984b6606c480022126640917dede997a823b55a24b06dfdd11c57082727963963c254d3879e82467ae9c436f2e0613eedc1aef2eae8f592704622cc198f1977365992f4948036228a1b95c9264b82b3155b8013192b069e9a7b2eb943f392006121e3951db132d42ee801847e8241f932c2b7fd6d2474444ce8c11fe4b29dd83234092910f885104c2e414b3358979da1e3188507f68b6ec713da6941bec18069ec2bfe9954617bb760863d5f48e413f3f460c76042339d2846d998a59f2c00e6024d5a6a67aff707d5911111f64fc62954da13a35469ff97c41a69093c352896ba301e9c59b42744cf4a25e89f2420b92529ea2df85f9c49fcc51297f49c22bd8a10bd5be52dfacbb06b972518c1f43e79bce3377a560072e4ae2e7764f31a7fe2f5fb0e316b5c9591f22230a76d8a20ad14e62945cf761ac45425748c9e9774edc043b6851684bb158d65a9659f0e927c9e6fb9c4b7a9060872c8893b3c6b497e2d7a223222235d8118b04a98bc1ffc711119113ec8085bedd939f43752a497a4444a4870876bc82dbe8947b7b5f324e3b5cb156a5358beaec68052747ffbeaa32614a9a15bc274d692b136149cc2adc143ce7a48990f2fa023b54b19418c5eae75374149841da8e54ac6a397eb92a6dc20415f9479fb4b14f769ca2d8579aa2597efafc233b4c91c9276fbc0e36268ac7cff0c14030b0a31445f52593bdab2c1ff4c18216ec2085b5ee6963a3edc939368a76ee3dc6cf753c5a51a4d939db57baae2e83831da1386eb45bd44f69ed2f65ec00c515fd042929da66ecf884531eae5d3bc91b5bf384b92bc5faedea44e1dad5517beca7264eb8276da96a98cbdfd226ced9263f54cc5b59464d28e9d942b9949948b45cb17d82c5676730518aa11b276a697e7f893cc68d4887966edb96c8a7b62cc78b924f629530672c299524c5fdd0d70e4a309e71163f6c1262ea1d9328f58a9f667dc7f8c90448b3df608724ee4c62a936af417c9491821cec88045be9e1fa2df85709422239fd8995e35faad1ea116efa57f8609289976e479cc44dd95d3732891636c29cf94ab629d94c73ca08358ba5e69a0a9f6e2da294a3c465ebe31d8ad86476c66267546e34115a86aacfa4911ff34484fe9ff251bfa4ebe41ec2b4b1aff6d162564d3184de976309262741d35f85e82ec604ed6413a20da71317173753390832675ee7a32aef5304d159a79f9cf953c73809c49d5a3e5ee5ce6459020873ead7790cfe81abd41b2d4e97e417f3c321531c93cb739db104801176f4a1cedfe79de353f0243c2222b203325a0321d8c187e23a347994f8c5380b61c71eb8dc6d7337a3f9bdeed043d96a5e5bab2978bce48193a4ecb29304ed9b320320d881876f43e34b43848729f0811d77b073f5bc7b9ca8d9230810347ef400428688089032c8088246eeb083575749721313b3a30e599ed0a92eb3fac23be890fc2549b1257bfa1cdd1caa289725bce4a6f34a1a415060811d72304c7928094dd36a7d471cfac8983b7c9c5360831d70a8c44d733125b1fac3fbae013f230d15243bde909b7aee0a99ea5ebb1bae53e9f4f9c1edcbb3a30d9c4b75ace01fca2c638231829051c61929a0c10e36987f3774ff0793ea6e0dcb493a65326fb1f36584033bd490b8dfda7d096bb9ef1d697866f32c78417a9046d2021f3c50810476a001134da235ed9ea124e7d63be14cb69eca0e33944bb69370a26ebc4f193bcab0cf9f70f163395c98c990943e9a82c6a8bb4ad9310693a6ce147e532ecb80058821b92bbd24c9e58c69c3a069b69d4c093b1a27306c57b95a99a4cee48fa92f982b5612436f2c417edde1053d6783c5fe7e9a3449c18e2e94d17e42bc9bac69cf327cf8d815ece042dbd3b9e9f1a949aeb670a8e4f1637ca473857668c1941a2c58b69c6b5edd91852429fec44af7ce86754444a487193e7a04711bfcf0f122222fd88185d76635254a70c715aad3b98b724952596b87154ce28484ce88f49c35821d552023e5754a3629e76431c37360031f630715b04b8289276a9f58139b1d53b0d5c28479d17ef8e84101158cf1c333b0430a76b2def124f92341121388888c0449ce10114923c88e286826a74d51a2bd67d43d82fc20e347901f417640e14b67f2d459563bb17f0236b6b9bc72a86a779d60ca8ea7280b7de76a134c6269d2a7de4813333b9860d4ce398bc79790b9099a523831f52fdfa1844bd6fbd974525ab9b823096ece326a6a61a2fcdf8104b35334bb5ce9239416eee2c5ac3b8c704927d2d93e3db3293b8ae0c9aa58bbe7e99c991d44e0d3df65f4d87d1d2f3a8661a53799198f55d5be30d679edff97cfa4a709465ec2887b32314dc2a70318a7dec7244489c9793fbf58a3e6eb94a7a13d73be384b344c6dc6f4c2b8be3bb3f73d5162bc28ad7430d7cc39475776f1fe6fa67fde3d6ca043172639e5c5b4186e628af7c03df0c379e04304a523170957a29ba96c8a593f2eba984ede2dd9a38a949020881964f830c10b74dc22b768b136560e95abd1610b74c6364c4a928e5a24eaa7d16467426fedb4305f38d1aa68ce22d9c5d2e2671232643c093a64d15b4b4989be39c91da3041db1f8734e2bbe17ff4349ea80c52587cea1f63a62c2d8021dafd893d4d9e5dd84053a5c61598a4e7889584e738c76337c9491011191d6818e5664e7ee614dee74b0822faf1867ac5b0517edd69d664f10ab55e1ccbd8c7e4c97dc642a38b3b4dfd984fe2c295478c2a68e5315ab4ed3294e297b123654980a1337c5f9aaa5a33aee3a594a8106bf28d5f2e82045d7d1156e345a8e68758c823651e53fcb736ed245614af6a6a4dfafaf6528bc1c16c37375ca12962fe80045752544068930c1f6b3828e4fe8d57652bd0996fee7078ea0c313edb8ab6659b1093a3a71e8306fcdb1a7ca541d9c28d37f382bb19a0f3751479f8ba72b9bc79268c237213ecb7d9889c25da3a768cca4291d9838a2d2c68bb28cfad925f00ff64912f3abc3126c86dbfacbcf76925702d3cd2144ff3aeea39450b4427a524ff7dcce24daf3bba0db1f163949a22c265db9bc2a93f047c2368d96d1ad2f2ac6464444120d15e880c471e9355fcc8c92df3fe264177276498ef9d47684553a9deb4f8a043a1a8105bd60b94c8a283933810e4678b6b72925fd4d696d1d8b60935872e5c98707597528a2fc49db52ca1546fd2411e55776d6784ef1b9bb810e44e8aab6f5d1395ee936d2a3471034ce30e3033f7c00f9814606807890343000041d876035bad4ee49619f53f7011940d0f8800e439445e236ee422f874e54884a2c0b6352d684f0d36f4cd00ff14b2beb18c45a312726fb389e2e17046ad179a29ffaa7e804a2b0f13cac233f2a3a80d884e9682949795913fdc1b1101395c37a820e3f50139e3506cb4d9a1a1d7d7883bf86e53c81a0830f7f5ccfd456ff2eb5ebd8c3626539c9a9eec434d38321b764d14a7eb731a4230f9698a162495b999227c18391d39d476fc6f37750f7cdb269882701a4c30ea47c860af1de1bb175d4a1cf2bafdc8cc9df8d0f1d74c03409fe6e3926ef9cd331074cb3586e4979b30c02c4832422d02187c2ef04b77c313ae250b654d163653c4fe1d60187dcd34b0531fb0dc98974e4dfafc30d546e7e4b3dd136944b74d1f7ecf46c396c7835ee7aa5d4d7b057f470129b4fa898a9c1ab365fcf9a4c2eee693086c547cd98dc1a4b6ea0030df49f986ecdae34a5fc1912cb674bd5dbfb2e378319d2fcd7372a8339e547ef4a4f6fdf92c18d1735dc77f55878633886cfcffde311c31e3c46ff46eaefa784c1d9bd0c9ead3567d7c05094764dbfac693fc45f503556a95e0e7961731fd9cd77ed9bcc2e70628917b25e672a2f174e51355416d5fa924cb690ac57dda7e8b4f054cc262f13ff1db42c1865a97da6abd4333ab0a0e798b2ee437b73c53bd07185b28a9cac494a269b9d5670a3735af5c77454813a299a7472ec091b722a1c2cbb47d405fb6e7f0a7cb88fd7ef8ecd572285744ac8cddb4c92073d0aeb66a5d9937d12e88042394f9e379b8bb22beb7802e5fd751b7312b35cd4e1842c76b4bfee7b2ce96fc297f2c994fc25ece8a8830979942df92fcfa03ddd40c712c8f1244b74e7752861d7d7b0304bd1aa4e7424413529e1729e930f9b1d820e247c16ee6249f34a6b8e8e23a039e57c4c330f298d0e2350d1c49336ee454711dceca1e56e96e43b131d44306c5efbaf96c5df358ca22e4aae0d353b8b0b038df9b7a4d82f912ac9418e60fca395162ff3c0d8c2a7cbeec77ed12529e755f0cd17650b16a36bae62de7b91b86faf66d3a4397b7841fe9414a34d70a4c7193d7a3020c72ed0f8a8a16312f1b09932fe72e8a23b4b492b06cf33591b393972d1586e1354fe63650f4744446ce043040700921c2073e082de4f5249d5741bd8c08708cef0410211111bf8284302396ee1e776984b1dcbd24573d882f29c6d75edacad5120396a81550aafe1db3d62de1cb4c0463ce566c7149390e5608ccd318b3f655916c6c8d03d6262b148d4e4bae7b9d5f3c9c9018b4d922db69a58399724af38e693e24c37f304b5b8824dbd3661b3c9c39eb48250fd18ab1262c5f796cac3587efe93ed418e555c59f3335af4c9d1d3c8a18ae32b7cf6e3829f89e64805e3b9baa33295f67415e4400519362649a2a4b8d9570f729ce25c9d6e6b533822228201535829946c314b5aa5284c878ac7b0964f280024072992247d75fffcc4b31b8527de6ef93d5fb25ba2f0fdd2a3753299185d288c5223995b2d57a70814cfc6e8191f4e6c3fa14f1c1dfc3ddbc560f1724f9862887dd92739fa4f9d602cc95a576a0e4e7819ad84cda9dc52d71c9b48f0bb8b96951ef4a4736822e9c684ee36933e939709538c716d23ccee5208136e922429a1c265bbd4e5b8849d37a6e76a7da57a23222219c86109357649628d86f020191772542231aa53ee128ffdd721420e4aa49faa6b7669ebde24083926614e269f681dfaaec30824292303392461d20b7eb949aa50aa03492331418e4818a531d3fa3266caa91c9050e4845ded486790e311c9e935eb976b5c474768242087233c7945e3c46062703d0a391ae14d49e273b27c962c23de984bbc8b551a4ae54598f249954a2e8dcd495184257476d46f0c0df32622d16ece9327c9d01444046751bda17e94408e4378577662509bf29bd110578e3d93a3618e42f0167e5359fb84f8af4fb3ab6bcaee7910e5143266c959c5f27604816dea4cf23d26e58fc911883b8949b25d4d27db09fb1866e400049b367fe57c6594918cf1c3004948ce67629e2499b82f1e128c172e2a85b48c84057530c011ac746d3691e9fcc28911124deea63374bca7b508e598a149efd55e4dce0044b0e494b34982cca94589c7300c6e7d5752b6a6931e1428050f6158ddebbe71a354873e18b5c9e6f961ce1fce031f65f81969a8c00a3c80d10965c2fc7a8a9dcffd42b5132c4b7c5aa2c417f89944a75abca063f5e24e15c3a69b31bfa0e1c18b4c0ae9a541db63f2985db496c33e9ce749db0e70c0071eba40bc2bbe89279a0b3e3479b4f11739d9010e7a7ce265f4a0000558100237f0c0c51e5bf9f2b57e63bfb760aa2ec5ac4ca5296e83f6e6618bc23c9c14c6c39a5ce95adcfb316dcc9f112ed28888488f1af0a085791bbe9652acb7f6b3f8ec92744c668e8888c480872c2c297864ed89b12809953c7cda764c65241e04880dcc2003063c6061da05cde37bbfa2d0e17259ce2b155676c52a121df16bd28a572ca4d27c7bd2342b8e177d92d03e7ab25a3c5661d558af77accd5a29aa28ca82492789e6c13b4ac18f2040121ea9305bd2fa94a316ea5378a082cc2785889929b724798a742e83e895679362e7043c4cd1f99f14d7744e92c49412f028c5c13b87bc546b0a7890c2b09c5c4b925ceb67192ce0318a74d6efc48b16e463c54314e8c6b8d1dc4fde107e284a29e9b7af696aca37280c6e65728e316adcea7ca2f91825d77f33a85c3c3c71f449aa7f873c3ae1b5f84eb895eecb56041e9c68bbe64b8a9591a0a1032f234143071bc0018f4ddc953cba790ce21a0f4d6cb697d9534a77fbf68888080acae09109c3d87ec7545c860ef6e081092f4ff3ef7e8ea5bb59018f4be049ce2ed9b721621191e4c7064444921f8e3c2c618a48cfb1f3b77ee9088f4a9c52f2fd9996b3d9661e94784bfe8edb966f3ec6e7318937f3523ef788fbb61de02109f3aad42a3e2ce6d79491e080472454fd547234314d6b89360f481c2a661ebe922421b50d783ce2e4bd494d7fdaf7f32309303c1c614656dc901293feeb22221ae0d10872fd6eabd7deb26c466452f29cc9fe93c58b1671cede70ba6e9e53a5085d3f45973c9fe2560a8f44ace1b76d3ea34949d68c50e0fd876bc043c003119694b26fb3436a1cf3108cda788aea3c0f435c9e755fbbd7fdbdf12844ff490e91edccb0241202bf247b39e7247f09161e83a8dd4acc79622ff4f43c04f16670d168521acbea7804e2fe9610f70b2556ecdc0c3236073e584484072074d5a041ca3e4687cac81fb89462c5ce704f61353cfc704c32d2d773d61f551e7d386a53563473d74f2f0f3e1cec83e668bf9bc71e0e7149455cff6292e4f5a0448e985c92f4b9269e07afca4ef8d49d3f7742021e782849a2749f749736647d8753ca4e2f699ad33bda81f4b4f694e1c2a30ee78e95fd7c729e685278d081b7fbf46bf5caab180478cc41577f8d79b525efcba10e67b2b9751cfcd0b313d22439ae091cb029c9c3447d4d55df9054d94bca54dd607cf16cbaa627a5b6c1d0d997254afde2c986d2e5c9a5b9ccc1b53564996afe5316d5f2a8818f9262d0a824da6ed2b05ddeea58f2b5be060d649b701f3ea7249d9c014dd24b9b341b3b496f862da4442f3a5c4ea12fc3971a9de6c49001cb74223195f9c71e439edba492832d06faa4bf15f3e849c3906435975ad55ae382c1e05d929463af98e07ee136e1c3f49e78819293f3af4e0cd5245da8adfc4349a25c602f4df95aa9664fb76065df94a1452dd815b38d59f4cffab2d05ed818dabb93760e0be62b9363c89c5f614d8bcbaf5421bdb9154c318728f1afccae79150c9725d6c9c4509939155ad3ace9a88f3e954fc1ece4314e27974277bff66a278cf5517034465cc7f2bdbda150dc94502577d1357d42257c7b9a984453ef84773b2e7bcae136be26e4a9c2a2b38afbc530e1dc714343a96d892fe110f17d1a53c241b5e593863a0966ceaa26af3412eec93131d453defc1f41df1e0d2a5e266f845f63f4a6db7914e17ced9bf5a6d5e2e641845bb3c74cf1ee4eae876132cdefd8679772164665d1297abe2c266583a107c912e42401c6d253b133a7c9e9fa0b634b8c75ee1de3555f90a31627f5f3fa077b71c99e1dee355ed4513585cf10311ddb0527556dccf36fc93eba404ed0ca984bde1c4f2e36f10f2755258929830b3e75852679e25bac1f397d524c985fd816b665779cfb88320bd7c26b69352997450ba43b9f099ec349a6cf2249f7d89c2257f496c51ed3668a65ca3ee958944b9a79ff1a169a5758bdb994f5db576c5d826812db4336ea0a77ad3b9c099ee2275bc109369d84cf3e7382acb83d65a83e49b8f66f15a7dcf1b2ea946ce5a8e2cce3aff1747ee3a9e8b3b2797a8e37372accd615fc63730a3f097dff1b53fc96ad95b1346ac894c2935e4f4e5249cc9d14c7a5cc6cf796a96414644e9bb4dedf1c912896b034ea256543c1b9540ee182c22a0fef9997a4b0fe13961021259b30efb1f64497c49eb314dc737c3bb17d25b1a24a38818999c4f25c37c14d6870d998ee3daa092a53f87c5666c213ee52478d63ab494c50f115cd37599e944c2e81995ad8d82cb713134b5c1a53e70953492c4c2a816fa6a8923a7fa52da184d17aae3d3cc924acf866c2e7c6d968259248b828a7bd1dbc629544a214c5b4356f98852881c4e9b3c3d6f343e32579c479ad43760e558249491c714992c8ec6876664ad288feab4c537891dc9f11c5dd7d5459592ef945b82ef9c1a39820db2bc2e9b0599df5c2e47c22b23cffcf318f082eaa93e5d12477d00f910693d64ef4114b6143f45d95f37c2f4f302944a9844eb9bd2666af84d8375a32e9533ab9741064d068db252b51828228eea6eb92f1fb140c44995f92e42702a28c7d526eeba656ef0fc7d58d3639e927c9a37e3086e6944e4ab48b39da8752c8145af163a129e5831fce375b2add43d1ae715275bc4549f550f0d4896e4b5dfae7218dc88b131e65dde3a16abb5fafca517abfc3e92a5253743b64f919b3c22495933a30321e1bf33c9ec4743865bff98dc7dc53cea1ccfa0d4bea52ad1c8c29ae899d581cf2b89649f02ce14057ba13bb6ec5ef936f48d2cdb9169d74839a73b1e2d59caf26dbd05e66f6932b9de529d9806a051337c65d8bf935606fdaf1e29d901557439b7df66e3f2cd54e439227fb77c74fa6180d49e9b35c48545e74cf605c0e65bbef51c935c39aea92ac9a512d4aca90d89f4dcaea7176563270f2d58b56fb5a9b632827df3f31c978124a316042ae499bc478756218e8b5fcb37a8260286627d1fb84bff31cfc82993cc9619b553c58d00b7b4a29ef27f92eb8b21f374d997c1de78227e47b7e5e0c7bf12dbce6d983c9e95e096be1338ba9e07116ccf338f9a931f99260e170797165df83977a854ede5bd792c4c84bada04b6aba5adead18ad02726fb2e5db14fd2515ee7acb65625bbcf2a6406aced5a999140ef73497648fb9b8a250d8a731ddda24a5eaa0f04875104dbd69b3b92798f42fe59274d173e69c60b23f5bfde89a80a70bb2da6f41f5724c70f7b563ab7c72b3dc12e83bc132c7e83af62b2151353e2dc5e46d3f09867af95c7298389723a15815de363f82c133272977ac19d1087e45d5467ebda67011123627d3af9c3dc40520422edd31f9591b466995275f2d877cd68491e49673ca923eada8168cac3f362f7e88aece8091a51426a5e4999ec4ec17c52ce127e3ed6bcccc1747a7bb4fcf7a51f0963e170f1a4e0e2f7e493bd1dbbf525ab60bbafda362c911e619d3c591d9b2c2d88a5ac672518e51375d5b52521f175cf64af2e632b3a0dfc24c3153865f8fbbb52da864a2d5ab5d850cd782d050e298afee569816c6a0ea9e2932ccb2b3383bcd45b6e25497c8a24d616376990b25afb1385690f832fd0eb5c222e9fd779592d4f77c0575629597c7c5acd315a757c54ea12f9a5cb602cf4d214faa7c493f563cf6fb96af9d5594f5f156bd957b324715969860a772f56797930a4fb8b859d3725051b67cf18a29795dca3945736e173e9a8931e4a648f079ff68dd936d97224d3d3e9642a39b2c29d4d01323a2427d4f46c1469974264645415a387965baa7a2190a73f0ef3cff28a62528923cf24db4f38937a5dbf0bbcead95270c935da6a6f324a93a91e07b69d57739bc8613fdba7f74926a137a6be53eb9fb3ba794269293ece1f3fb99b8644bccd4f13f1913d8e4e68e758973bde524e6ff984c5b2259338485f954023b39b7b8b1987ba68441fde6d2633389844e49decffe245fd64842935f4a0ca196a49cc44482fb2417264a875b8981c4aba9dc73a7645b92e61175640cf19d6282891947a826a57c1f45ca3c338d68cf2ee550c9ae2b6618b126693cc87dcc228c490a255ffa2b9bcb2882cafb17aa59b3f2c624820a6ad597a454f13c22ae93cbc28c09e6a93f442b955d2f34f64636c439db9669f2ca3172218c529aefb62f782c2184521fed34c93f26940cc2cb5b226a42ab9a2a08672f63cae431d2c540d86f9a84125c635e1110858e1bd314d5b73b7f48c8d47c9a2a3fb469fd4e73ba856dfa704a72a5d2d928f788f870e757d77429ad2ea23d247e5cab545c0fc55ea6d8a99097fd3cb8991d76a28f87a478b131f97f52fa3b9c314f8b77c94ce47638e6f7c855374d61ae43219e2646534ae1b374387de6c6acab59373b87e28b65097afbb52772787e35dac6e370b8bafc999c9b32091c3ec125aba26db25cdf9028a15e7d49923e9a6e58835898c9b8283db6e19452d6ab1c73d42a366899227f728ee953660d4fe7fc9375f52f4e450c351ccade73ca39bed9a58891062c3f6a2ec1c3bd253968a03a8c6712b39c01b1f3dc147eb2538f6298e19c26899a92bf568c9b11111131ca9067c99673c57fb1b0c9a077bfd5aa948c21073e7c0c400c31b41964f0c00c346c88118643c6ca4ba12c4d3b2ba30c3242700331c060a8310b16ebee9953231110e30b6278014f0d1d4d88c8ed9bbb70bedc2f612bc74e192ee38c1c7c200d0c0001929840052222692c10c4e00261c1b635bc05a24f52ab4a92f1cf820f708003cec9f3400c2d7c56d933d56d23222239c8021f2265a2cd57979efc0f1f41122cd89bb15212770ba2962bd47772fc93db6ccefc206858215963fa9dc538b1a902de1d0d8dc3a894cee2a1c1a1482c1007c481300014b23c2b004313082040541e0c0623b168246aeb1e140000562c1c463e202024181220121009c3c16020100c85016130181408878381e06a9e86b1a0f321382943932685b316d3b89deeea1e35b62da4872d44e9014be98d0520430115105ce06db4bed536c8ef4910ab4e10f1e807afad1fc2607b13e892d5f4104481b8cc3551e1241a12bda36798d7fd1fc98b9f0f2a575d9ddbaa20c420554b99f463949f5792a651368dbc69eabbe8b8c571dfb1c096859c1aec77036ee11c2ec459637e885c46309546ccd52ce75b2cde47d7d988b93bb1b0a224b305ecc8b1faa84cd0e98b79e108d649bec69b7a51dd360b737bcc66811ae0f7786bc828c1d6b20f56f290018c23b58b71976022a6f09155d347e34c17ceec6bb04da2986986cd07e154aa9b6491bca55797a74f50560c8e1f4777f7d617b082f92d223b3a86ce6793c9959516497acc9a095c481e9d8e6351b6ea75bf0bbdf4c511a70900e9b93fe82a165726269eb3dd43ad46ff6cae6913edc19d5598b95b83c68725e6d2264181cb78d2e57af7f017e37297be88babd721615899b3ce61881211bd13f7df66d7f9b7243d59b296174d39fd26509917f1501ae8c1b4039179cd18194a05bda0084a0e023954fb6601b16c0fdb905ba617ec722307d9d2f13d253501de36613da5a05e5af05579f1b2f49ff96f0ab46c3e9edda2b381b7a79f265248fb807dff8148db979409dc2a20538c69534978162f027a60c3d6d472c4352925ec47e576b94ac36bce049efcb0a16346bf070738a71d0ab9a87671a571550b3b4a7fd675a687c71855258513a29030cd57604df50085341e823d93d5d34bf06b8543ab6cccca759dd3ae0b78885a22c6bf25efaf0a9e49ca416f2dc6a9773d9b03396714495d0f46d8991a6fc99be59db4afa23e290d272a56571bc146da35eca8b612fcb2e24cebb009b95355bbb8a96adb2791e881150586f0da9c94e4b4c85dc4bc7adb08d114cc5f58f82eb33f413d6cb32daba5fca832f220df42037a56c182ef4abeae3b846ca920aa909c014b78aabb2dbc61c9688696c40c8e523f9d3a85ea0bfe8f4b9cefda2843fb27efaee86f98bc6a3eaba266256ad582716d8f7bfdf9c5ea8a94f51f1d690de0d68f14d8c4948ed510a15859d2d01a75fc559e1460d9cd135ad882b3c765159cca94096101fcd90a732e90b81bd119750fa50cedaccd46252e2b808e5ce76a65fdf3fb2573da98fd03bcec835eacffdaa68ef40a1b325c3b42e6f369830fc39b98d61438f4b627db962ace7d92086f46bc1797b03aae835cea9ba583294c643d7a22613fe32e9f2bc76e1872534c4aafe6178b11a20b680c6b5b3f2762cceaca53745b53368b9a35ac0ce7661cd31bed32c0146d924f897e26ab3ec257d4ea3364ecf05b2dbf4cd99d54473eb772d7df3ee3eddf46fa7651afc05b3cace17d57da7abafcb5e22ce588800d47941fa79ac12b13918179d040685ea45b224e4601846591a6c17dbbd0ad001b481cd857aef365641847a5df5321dcf2a8f722a36031fb8af63fd7e68dfa77edd587d3ad6adb10dbfd035f0d61d9201298689eef14ace8c635455913a5c16b767e754f3965447cc5325d4c1911420f81a62e44949928e1072047af35fef3b16870c81a2c0a859a47babf3e508f5d67033ed4ef970c19f276693f47cb5bda9c1e7d5765ce1dfa9f5abd27fd3fa75b5f3690c9ab48a75336a3deccb718a827394c4164faead868fb54b6199a5341cc0eb567b921c643bc71eaf6fbf5aec56ce3ebb59ecf2d2ef3b276ec267950c8f86e74d72aec633d34feb3db4a292590b116d11bbd5f2b4b37a567c5f7c5443b119fbd07d9deaf5637b3ef3df39e41a5f1eeeac0566c9ce75db98092c41fdccbaef350c715f63e76ba8be27c5cc3395364086ae92a55bb2fb9cd23d8fd570958772f5f1fb4c36c898e2772bbdb42fb5e616dfc0f3b67aa1470b48652e225ac41195ae5f26e90e4052268c569b058bc60175694bf3e0577874ae6a4e23568b6d717530ccf5c518d7f3277de289225dbce9886a39a5066cc51c99832cf1ea78aaa03a2cd5d28c073d39f9fe01ef0737e01901f1891ce3a7ecc15e0bbde6fbbf90ed34a541cb15222d6b954844421564a8c7d9e159b1b0fe035cb5bbc1b427fb8d768afa69f441022c976b55a1b37c766375226fef68be7cbd99652cbb534a0457123dcf9cc387b2c576d051e68e4cf32a43f6755832c8158272b1e558f053b0120840a3d8042fc644a71454202f1a3858ea7013ce79dd9a9b2e7f2f47e6fd2f1f810f328a805d44aa01b32718c610b7aea189bc4216fb308827a762cfb482e3e3567cc3116b9d8a09f7c29e06c82b86f71b75ae95508781a95b124c1f9c2aabd8a2ab96f64bc5044245c62cad0dfe9b07b9cc2da1914eb565d8e49639be1ec34a492577b4cf1756c60fa539da8ba06e25f5e247c7a02528e1e72e6c0426aa7aed46429ff6073571d4c9fb3846b50e711f02bcb2fc1d7290c6a8ebe56c99b338c06c0907ecc62af3b24abb4817e5bb7662e331e80c57fe53863835f579de8a09172b4e28c058927d3655f7fdd7ffe62983496c2af84250ba9ddc33200a914129b50bf4b1661796750d123086b10593284c6d7158b130d0c2aa6500448b263319364d8429051a64dac2218c281397563f807c5be4609c352029a72e18d42236cd4a58b78ffbe6e995c95bb56c41e600a3325ea8f97f6a4130f1ab56ef3d0e9f0d721d3d52b48f54168bb63c22c7fc4d4d64fe2e118f7ee66c1a164f6cc5dce2787bb83b83a54a3056841736dd420117c17418ebadc8462a71f21f6b0671f2ebca612f5f53e831ed58fddd9ab8167d2f46e9dc238c784b01d9ea59ec0b1db9732a2ac882a0375eb73136d3d144bd7cc8a21bac4491381fcb55e487d47b677fe1632cad7d315826b9f61e9f7fc7c0559c7156374d1eb92ddfad936baa42782325f5dbc31502d17453c54e6f53e64bce18b85065b8e0b99f9710d64e1d5216c8629da440a4b35eeed7c13ffc6b2cdd04056f6874bdb24e756847c9264ec68f86f27ca62e937a9d2c8832e0d4a40bfca4a1356f8d5725f7ebdcbba65704560ab35f179997e2c3221707509c387389802a31ae650e845f937339e909ae2f156bb2177109a51ae0fdecb61a3e8edc2b7e3c51f1c7881293c0c852be80631470acc57ad2256dd5b217ad8691ff58945c0c93316dc1f184a114372d9f84df4d2d38d99a2175139f6c73f9d20b01fea09c4bfb9dce858c913449279b126c48749988a4681033a0cd06dbe202a03c3d3e29bdbad81ab963d6ef2a48e9ebd53ddf0b8e673d6925624c56f061843f2c67f5c803f4fc83f99f032bd44d4f4baa1904e671af07e7bc689e3f5de2b675da8132e2e89399aca60782dcf6aaedfcfcecd87c9b09dcb135ec426b82e642d56a0d30aa7431cf4ef6eaf680ebf1ee68cfa54b66396596b86759009480083bb66507864e93ab45205e5a1616711d16004db07ea757c3e200e19b4aca5104301d4146ee8274603f061fdb2d6cb39942533a50a4faf3e32671914228f69bd301881fe9c676293af18741e33611b928d82fdfea88b043de9b1ed6a6d2cc7162178b13a8fefdf1c4b7cd077547878993299a873e1fba144ea00f6c34df5b28d24b92141df6e0ebb7e044ed92a3a1b44f267a26e780e9ccb3350ffa4371261572335a185e0a4b9c37a15e88ec422e0c3839e44a80f5a47e8c2fbe37f95aa1f06d217a6db2fa5008162e953d49b977b21be60bbf8a7924e4cee9a270532f26544d4ec8c672f5f952ba416e72207701edf7bdc39fa0610ec3a1558f54295e7db6c5af7beb6b58714d94d78f0e49df704e6d8d3499004b8a5fd045da371f91b158da06ecac64dcbe48327019fcd90ad3c73c3b056b8a53a85e0f345d7867b5e9e84e6b932806650e2a5247396f03ea0c8ae89bc4952f40cdfff5a8b1075191c72b13995ec82da97df58fea95e43c46bce9a64a363dd3758455ea51ed2cf76f34c6a69da0fadb8f8a966322b462eca1aa9333016592d77ec9073c85293c36b0ddd3a1852574e8fcad0c2e468a59c2ea622a359fc91071c63eb57073a91e2cc967f046ed7799cb26803ed3a58a341bc7cd7dcb1baa24b8cce8dd91a69e4978a16e89e06f7213c46053e588a62c03e3cab02778e8be2950fcd7c87e881580208d55277884d16c53c89f154a1d1e3f18bad42d3490d33063dca7e639eaba30d4a2a117c7ad038b9884ae77f6e62fef21c1bee81f2380821ca0d3ef188fd5a42459e526f2a52e61c59af186272f1b07d2c4c529c7412c2ceb6b6c25b3f6d66537db56b2c784b0c4ebd5f00e009eb3b54e027e5254095259bf0892a0113c36541aa89c33fdebfdc69865545307478cf349d4c5b31eb0252b143f8de0d622812d71b6820bc842fea0322b630794639c9b6dec7ae70e0f9fe7b901e59de24311d74939d52626b896e4c7698bddb2a496593129f15913927068a74beab69d42d248d0c2aef82d8a62b95a5cf085444c1db33e2dbb170d9024de7eb462772beb02a96800c22a6d56ff1172336520630d6fb9fd4b17fff217b8f60a19f5f5f375b241f7553ddc6c6466a84c710cc502778818e508828763ce867e0a8b514027f2e8376e3c1c9e7739889fb76e643cbf6326d2cc6a8d8a2d1954fcd49a803184aedd1fec8701595c94c6f2ba8140f5916e65a0047e59d7fc76cfeb3de3d31ff1d2a681c074978a3a8a0be88d13abe73d7d34bfd9f0e932707f6d3b751c5dd773ab65caf6ae34af8f47b69b6dc6f0ecd883c72eb25f31dfd6c17a3fa44034567d611870f3ae94177aaedbe0839fc1c6e0e6b6de1ce24f0cf067cbe6d1418f41b904444abb2474c844e1269f8306765d1ebbc2b7251f03426180d8894f0a94f90cf7789eaf109da85349b89b0542171878c36c00ff420dbf1d1749715510a6cdb3017517b8538bd7d63155c3cb98814970782cf8427a174c777634c8dc43715003467d00909a65d40affd57481e7064bbbf592f1d92bef2ec0fe8dbfbf92baa51684eee88f24cb6aa082755902e0810838bc00d5a8cdb20044f637d0baf132f5b1be80ff09ca239322a1506d4e489768c93e83339d34ee3674d23a9eee2b16ac050209afcefa953a1603048d4c25f46325a08ff610c3722209c55998b628cbf2d71a505248fa72b93a21fc6dca31496f2426d7c53301af819a7e2d6cee1f23c98346d2d9aa6156145a2c9a8e3922c99edbcdcf3582cb506decac35b7468432258e7c811c9ae17014dba2d0e747c73fbeba8f2942691ab52b9330d9729ec2391657cb12f0c77238029502d13364c89ce974f1b292072d80cc34bf6dc989d785109d0e1b7fe8e2f06785233f94ff3ddff9a4b0b81d6ccd11ceac07d54ab2aa240fa610a886567b2e2b5a5e6f35dd4c34eb19e39638fa86e8a1c378ae83e3bfddc5031ddac03fd01dc649aaeaee22a86b63ea433462a3e0379cb66fa294526098efd0cd0818d0927cfd7ebe4205d2b660ae719af7d2d819ad4081f1fa1999b71bbe8d65af00d71b94fdcb307636c77683655ad028507c0f03980055081715124f93e14ebac08cd417f161daa2c33626673ee936d893d48f48c23463a70ae552aa017b20074861be9d11a30754113b28c18c7abe4fd34f0d46435a73f9c1169e9b2241a80fb50cec0caf24c1402d04ae3f3152719f560306d322e8e9ea4eb22573bf0e3946409aa4b3c55a18a606f6b69e3a61894ef9354358ba52778f690250fe7e9611c9117dc76f4defa10e31f4d179f61391110518cb5cba4d0edbc5bc14bb5d98eae08d84c3bb552f99ac355e682cb6d64b01944ae041419dbe72f5d06a0ce3d9f3d4f75ca8665e90325473b2557982929629a1393398a381f280bc6903d56c30766ccb036afb6d20d8eb0bac41b6aaf009386e3984915570e515e5420d49fc5b0323977449180e4c56a2007bbd6b065e6eb1563406c29938564a3ec6d5c0b0cefd6b1cabe652f02c01a2a29392c97dabe98e8caf217d09f109dda2d646e1d5dce4276b6f304794282be5b8e4b058e6838a5319876b89436030ded2dbd89e8608269d4812cffb0358cc45bd600a2c5852d0e7cb1195b615deb7c5eb5bfb03d13b17d7045cbdcffe85921a4215b24348fe7fb1fa718429465e8963eb9a4327012ea7d27da92b54ded76397bd0fe2611632bb3d1e700ac02cd06d3a0fcb13137b0571f868cae00f636010f9604dc06e69c5cc3ecd3d5e0141dcb7db708e0bb55757c9d909627eafd0cf56b1b918c9eb0050b0cbc92ca461eb3bf4339bd03949010a88c5bb4bfed7943a0f0df2e9d2f4bc79f5cbd35a8cdaeceb4b3215107ae6a77cfddb0b36af22d4ec1cb17ef5a1adfe07bd7a2aa2ecdd60fc186268361280adabf0d6c24df43423add2e922b6a68de1b4246d940d5bc24ad2db909756e24b522b84ad23b994e98646f5d66d04ffe9d8e5fdc9231d1129621f6c069e90f67ea86481b77258b1218216dba4dcb2441141fb61216e1da3586d0a81430233ed55f5b416148b493e07e5ae5ff7352fe3efab7898c2815bba205e7c558033294750245ecdbb64e75dfc3593ac25c0150c40517ea9f4ebc23bfc5484b63edd4fb99c9a5cdfeb3983ada01baad3f003255b3e866e9d3755a580f0c0d80b3901070e7b06f736712b4ac494e7357194a5000e5baa07ba3bfc80ae082a923975742e8e35ce886409a07dc8e9f542346dc530c2563828806d6126e210d9bf8aa8fe9ac58ad34599025532ab51626f194931fb30542d9013626932613f8d2b2257f4cd228648ae5814b46b510aeeb8c0f4fb22d43a54c1ba99aad0cfd2c43524b2165e70e2c2e926aba958fa0abd395999eee886a23b1bf76b63aa77ec75de0df77e5315390304b5201a55b1e1e8236fde6da7eac4e9c7ad41db2e81ea380551789fbee867c2970b2952b7a060d44d15e717e0f6a557500d7ea60ed86662e409fff19042287fc0e8732f280161587972d33f8142d4d912f373a727c27565706002e9ee41344c0e71a8f127672dc5074d3b8be0c14c3b6f045e714f5ff4115a50734ebe7672a3c5f006c0630277a2ac1488f55a60a176de723deb14b51ad1f8ae2266234b3e81df4d714d17733aedb18586ec43810b0e59546a3ee7cb93da21966aa03db07dd1d2563eae1761f9e172d78fc56886cf711aff27407c64a59b72fc79f824cfb5f166ba8ed29b9d0a9a14e1c0c803129b69560356a52642b39417882fda1f02c9d3c8e5702c199d24339bac1f9e238604998820f07d28786d0f719464a6b8f18ceed641bc20f6c7a2d478bf3b387928b6bdf86a226f25f3458d8a2b72555d3c53086253f7fa87e6117b680d91f7386993d6e46cc73c6cf56edeb892856afcadcae80eec15a5155e2f4a3dd31ac822d6b990132f38e908d81273ebe6b26fae17b46fe29eb1dc4d73c159c23d3f83ecf44e99f1a4ca0fc12e620fba7b52765efa77f1524f60f5c6be2f1a6adfe12da3efcb06c8b6e43fc907ce6df7a3edda3c0bc831776ddf2a08b0710641fd99895caaab3e6abc3716f86ab52651e97cedfa3909d39288baef5fee2e59a370b47c2f434faef9ef0166028271cfb7a946e945e80b395fa413ba35393372c6df2968269bac0c197bab01d6b326d33e10ed0cb267d9ea6b042fc02307ece29b3c67802df619eee6c60ce7c0a2a49860306117595dd40bfb12dc9803b0e0497acc951d605404879ea263d02c57cb63926029bb0a1238b12b3ee2e99adfa7255a887fb9afc9443fb4e36d4cb7132b26ec02ed625832a9aa6d172c9f9f28d0aef830c35cb8c7a94a5c17df4db8df653e7c0819a22867d8366b348f4d7aba6e835272ff96af12e2d174bd189a39b6c41e2f5eea66d0ae8a4e238f81209e18a22124726d6b5e35ebe5576ba45ba154f565367cf6cc5627084787d2cc5e8064c6619f11b5fc0477ba02539f669a49080c96cc8a86fb71bc2f880a19242c6197c9d31d7f603847a5ea3b6056519a8a94fa6b41bc3af71712f81248918a9181426249aa5f3502235a2fc7e2643f414e091c3143a8679efa0c795358b9e53d86331db70f8db8b1489114169d8e23dfb5808af84a0f3b21f407a8a0614bc6bb8fc894bfda2ae89cbb7efeb16399d51b469e9ade7179b6dd05d987274d72a653b3b49997c2a073b5f2a9e834381f78ad8bf3cd41f3efe63d59216909f9f986fee309ddb21a17dfafce3cfe12e236b63fc66a0f8cfe4d23c8edacff2106174ef373022d4f20053e782910c3c6c270f1d6861e6dfce10a5ca23cfc22d06b4e7a5404c806313475baf222bc4a50008c0f0bc7b469f9cc0799f72b5fd15af7eeffb9830e571449d06d937ac1f1349196630540f105943ecc68aadb354624759257f9e0b0703981e58717be48fe5248393aa7449086f3522db55c97ca934a3e6de72e9d0c9a3628e808dabd70033f61ea619efcdb841b9ec4e9e3f0c7268611aef43b0cbec896dd7f10807110a8f2f3cf439e56948cacfe42be06851054371d809897fe1e695d941d5ad4a2b78f0bfd26a108f2ec975c05d7d61cde0521d579a7a2574ad1335a8bdd0de184d903d09aff8627410f081e52de49c9cdb15770ea7f98ab53773193daba1cf8db4383ad97158732c9d0285d34dc2ef0b1913e94cf8281561c21e245aee6dc6fe989abf390db4a096be5e64e31453d519e4372b13d990fd7435dc97953debdc7930ee5eda23ed4c9d165e0b9dc5b2304be7df81ef164693c0c2a94af274f62d928b1802ac587937ca735f21f7073cc673e0ec6b7357f746fe5902c8036e025bf390c73243370eced38d75a5e6adbd2a21464f41ca2d2a9b2c99d08c89fa251ad7cd437e2e528cce8a903859e0fac35076b7ff084caabac03bf83ecb975bed5d03a1971d1c7b4ae3a50b28e10b293d58d1da14bf1476075750b4833579acb027effadf2cb6933163f57b963a8abdf9d2b6e7f47a3c5a5e51f04841db0bf5b302aa894d68c87a7843c873f49869f8f4cd768e0c5255f6b38199df465cbe281b05f5b4614e630896e4ebf41f11aa055fb56cf4a51db8a8acd2a5e46a3d3e9009fb9c08b33284c05ec54f40f571bd9796dc2b83e06a99356abcb7109109a8b64abfdf8aed6e9e6f34f72118ced25103aaf3cfd21e6a0002223e24288df8068892a0e809f70d68dec7f7566f2fcd5d56bfc032c442554baf2274a60e363541c855eab1dd56641eb81148779a0e90e6ffa068d20ee58c5899476d8b19379e7299b9ef7568c5ae1b0020c2c683688bfcc92c13550522c4d8a1dd44fdfab2ad30306d14129e89be90952e5ca4cc8932cf0ba224af7e1554a0b55af4e2450a7d2f02f957611f8c8e06c6e63eb5f8252fa32fd56b5969b2b13fdc09e246425a3bb20b01659d7743cded222fd81af44d55292982f5dce496391782b5a70054963712025c495a7cf91629ce06d99fd448977c2f78313684c6cad5312e0ccacca6ced253846d58726875cf4d729c651c9818e5b57fd2299bde6428c432dcc1da190731161a7afe59c329d0d2cf2d0decc72533b2224d8928d68a465c557a0561496f3d1185f0643b0e883124a571cb3591f189e3a613f02f05df76dfda008c5138a8f264da2a6c57fe0df0b411209ed8e5b7e2c8c5811f0dc7fdfea97d5f6e01d39a633c70e662ee61b9259c707565618a7797e8e87c08eeddc48d479e3110a6921072a9a417b8093298958d54356de3716091ed587515ac3b921eba5f880c4001dfee51a01361976578458b5555d996506afe40a2c82ec82d92c49793ebc2d3449b87226b155017c801d0f01c01c2eef4af242595cdfc1ab37ed745c3253cb1178803cf31c11da30e5ff1abfddc146b0d368a2a500070ac5d9f12c7f8af87fef7ee2b127f9cb4ed649f707e30c72190c15dd6ecfcfb0dc50069c6f489417717fd3c563f0c4bf567d3a5e76f5b76a3727bef7d373af418fd98955b14b472dfc89c39e7ce8d1172df58383ecb7c133abaf6b408119ee703c02bebc1c4268e2e1202ae61c6c1a1d29f938d39d9450ee2e9f3f2d5d1baeeb5cd7317fe9b18fa7405a0bb30bf6851e9fc4aa68b965b8e4a6a3bd84737862d1ea725023d285b4ed4b14240260462bc38d59eda7c75484d4a1ef53f29586704c80e7ed07e8e8995d31eeded9b015ea818cda1797d4d40efef13ee1fc2bc14e7712a59f279a8cc5208a6c1943f4f2d807f8c63cb96fc96cab6f3bb91b7d1a451ee230c085b6ce9f6c4e1b70e456344b4785b21a19849ccf186ea3849988a8d01f98c157a45c7c2dc8012d09119148af7396427c3e554044c5a3d5191fcdc244c79a0242d2d7b8a695027df393d19074db339ebbd4b9ec56d2bb7904e62b467ff107a9f1aff03e8ec9e8d61d95d308a5efb8eb5b99effeef53a06d8594a4683f980f8fbe5abcfaa15beb49d26e42ceca45966548dec1b84f5edc4388e2e672123c09852bb80c4c182d1ba4d4324675de4422dd2ee5a03c881e6b7d16e9e5b99b2f2d035424fe75fa511b7d4ea4505fc3722cb19247c9cce9483252841e173b89030c0040ea1cdd74f4d12ba2703e2f9c48973fb4c70dd02e17e1979b9b1a9fea555265fc07ed863ef26a9201f128ef37c90f622b680599b0b98a335a91082c3e445eac51b0c61938c59a7ba2eb0082e12efc39326d6bddd467a7b2ad00ab5641352684c2fd7dd3a79184b98bd8698c54e7006662c570d4aa86598698dd9bc394d370799f784fa53171b0d71ecaaee6be62a6919da2c4dcb46b5437bd77c60fb6c6577962554f859fa9a3a1f33297db5a8c6abdac2e702c55ea8516d312ebfe61c1d3b6d5325c76cb3347a43ed9c479c53e25837c912fd690a0893d213bddd91b0baad71038c34d2e308a5c2b91659e9141a839814f0aca6353beb9779fb4e8347699b0d139964f2bc787a0b03127e5c0efcf3cd87f6c5b942e15f5482623beb44f34e913f15aba358d1787bdb2a8cbca3edd34e895b738a379a5757a1c485da3f191a7e286aeccb56a22683aefda49b078f884e762ba90c6de17706a6771822d6225421da829f976f5160cdc75ce42dc1a926290bfd84105e02334a1b4ad312e25e53c30efbb9a433da7414f022f71e4fcc5fa1043e4d6115393a262550c976f9ffc4217038927d21cd0dcdbfc69a88e6ba48d110512ada2f6d0cf5141e4a02fbb6cdcf2d7dbcab105f5e576c00928974defec736369b7331ab4bfe5828407ebb76b4e3bf289bde93d171358508270ab432848fb9da5b854d2808af650ee2ecc3b2b35aa839cd14b95424bd7125f146dfa12167701fda193317c718d1e82b4ab84eeb40e96b35c141cede4e96292f037121b85826f1b08d31ebda52e7cea07fc217b8e073415a81a892f051eaf2e07caa08787cdf891a40d9bbdf18082ca1edb404e67d2b311acb72260c63679a7cc5e81385359aaff1e94009d45c81f3dcb8ebda8f38e223950f8a9f4a296abd26ba2d4c45f0fdda50b3df123b8d96bbddea882c37d043ddf8bf89ec7f48b2812f2d1136e2f100b87f279991f257195e319d4fdb0f0726b59459f330a33935417f1a685945a9173c25c139f6796890cb423b3674688a0f5d8abd105391b2cd4ae378ffa9e84257cc56e114711003c5d4efce54ec91a2a785dde35821723422988ec588c5226ecb819ee808091ce1a442ff17e748c3b353bb55d13fc28a3740964990d0e38eee0983106d9a269e5d194bfc5ec3045a1af626748a3437904c19015d6934be8c5aa5cf9a99b2c14f59e2b3da5c2464a976ff7a64e422a2890987ee09dbf9dad1121dcab8fae93258fa12d1d34a87faaa8cf9141f54e152ec4a30ec83006ed462c903f384be5843c8a91e807fb63411d0eacaad772f5c87afe1409885894047dc1ba7d102040b1bb96bb991871c5da472f5c0ca78544fbefb0e0d8ac0b68cd9fc3a263bcce26a1bfa43e5042accf070ba83870e78afbc36cc0178ec42a30d470212452e3c20bc08c42fd3e79ae7d0eb97894ad2495f8ea086705fc58fb29d29146289f0ac3237fc1bb39f98f12d71bd99ad2b6c6829f961718af78377b4ae9d3d9dd93b793f98d0dd94458971869c5ed51d31cc4ff8ec2bd65c84d337bcc507e69199090dc3e1318ba512974117fe26ca53834484ae7ca235be57a46752ec147d90b4381be448781dcd2b31f7ee96fdd5b525b0cab02d56a3e86cf4f48d1d2a9edff5960572c3c1b751f6798c0d97c05839479d7fac9966b5a32f094970b90f31a4d58915fa96c4715f01b616b273d45f945f2af5054843e9772a64a2511911aa45c91b03499b3adec69807445a1e12637282fe9ee70923b4a7bea50a2510a272850d7d6adc3038bd5bfc612ddbe61003b0280aaa296851a3dc856c28beebfd79e01c0472d30c0b0094331a8388a87f5772edb6dcd7a8d7659200e10df4a5d48830bb7d05358dc4b5a6d692afb71dafc5b5050c85a3f9d6dcf39e0601c905b36eaa9bbafa5e386b9ae007e6f1063b128a278c72bb3e0d13a42150d1a643fc9a26cf38d82e82f9d455bf0fc1684af54d7a907676443355eb31a42710190714d86a22616f0742daff1cfcdc4eb005249eab02873345814df6eb62458183c1ac1e6c3a89f91893f9adfa2a679b4a9b8c2606c198c22c8b15d6b05e509ac0d29c2359162c5bf6893413fd8dffbfdb495ed9f28c43705e32012e5da2d22209f86689407f2a56498d0dffd5e2f3379ec1479bee109cfd313f34d2444b11b0e139cfa5c169db120bf46e11b5ba5a09d758b39f50cf97a593baea00fcb6b12f66e016ae4b78ee1edaab492a76cf3b3307e9b6c62267ceb12591c94a0686dc1a548ddb1cce6610b2c7bdec910a61a571d87859adc19f40d7b7c889aabe87cb115b3ef08df15597ae3cc7c6e91f5fef6509ed26ebe74e6fbaf1016d5b28fe28385dd3cb52836dfc9867643367127d0c038b3d1377e1654548aa1f7b762f6799666ccff9b4d68a8814900beeec9837e8a62c89fba3040ee17ab66d26bf4866f163ee5d92aaeefe94e7d8cdf8f70813a43cb63277e833b6159307851a5016c7cab263e221004f0797fe9eade7ed1eda218c3e1f02d17f1b8bf72f6710421bb2d49af0ebdcc66bb9a536d78bea5034e686c227aed950c24a4c437d35eb38db46388c01541a5ba2453f7070d7e92a69bdee32bb0f561b2c88cb40564402b2129d4e6ee1114453d825c3152c7c07ff256aefd35fe9ebeb1362b4a5f3e36be62c03bdb20ca7c22e8f1c3d6ad8d15f62b38aa79f5252a6f35c28cee211462798bee1399cd71ef0ebcc353190e0018dbe4fa450fc09e92536cf722dae3cceb50e0691b3792e942a40183a1e66baa62bb2fe9e0d8fda3c0ac9217476b9bb72fad3a1999e80d159ffdfc590904d5168ccd2bcd190239fd698780ec45c921ae554c9ed5a24050ffc6df14f8f1fb12538ef4cf3aaa446f511e42ab1fe7f94685e985239246ca51cc46f1cc80c7d48418e2e292396a41ee578c134a716442ee9ce8780eea6e3870ba0b1b1d5e15d6f4e147c80c442233f6f71c54f8e8ee02a0239be34dcbec97ca74f36f4d137c09e02fe7839d8d8bf9dbfaffce28a3cbc983f97653751ffd26ec449831f219c6954280d539c085c132ba24fdbb49ca515e6ae350170622c8c622f0e1d4386dcc235b0bb129211dbda777293e750e3182a85f4da0c0b3ef8a60c488d8902b08e86b63bdc858b3cde2f634c42c6da5bfad9bb65971b6fa240c0602d56dd2d9c65d1b576c0317b09d5f21c60c1d79fb56dbabb4edc6b698dfa4736cdec47df5b6dcdb2666b666e92032c451e573357b44d9191707be01d3d2c43d7fa130345f25d1600df5467fc2d2ab04bb2cf03032b170b859e57c022b5f53b0afaa68f5fd11bd81e6fa8f6a263f5e3d875b69fc2795d7ecfd68c32a65db2c6c930925332988a9159137497e3542953b554892922e351045278d088d7862de46d81675c7096a0392c94e712354e636a6df5cf449775756e8ace752f692511b5d2144dd0d4b447f3900a8977ef518698131513c4c30713ee2c47a6fbee02a53f9ee16626b096497dfebeabeb66c3fe2d588ff330250a914598d20dfad5f9a6b3157341ab5a4cd5cdb59c90769c2a86e7173629541a60b3c7118f4364caa8ed7fbeca00a4418125d980e1ef77c7988173d912574018c01a515015ae9654f3650ae24c901cfcff033fc0c3fc3cff033711f11fabf087d42f021735332bd491553804f49b2256da0528702c06acd750b000000b2521fef04ba04d4046626715f6f3d414a74001831b8e4010d100103aaf098c596924bf6e7cc24a54a16dccd5654f7f4f9eb138b8428d19aaf5b0312b8a1811b9fe3010b4a92c49c623c6be6ccd9a041438cc5f17845afa169af2aa3862bd0904b57393f7cbe8f058f569c243954b4606d52ec30c78a0183072b4e1a3d2324530cb7a4e0b18ac7c259464fc971a62ae3860a1eaab0fa3f336e9c5708cd06182710018e11e4b821c6231586f3ae2cef168d1f04a35d05220840131ea848772643bf899939666ce43845628979bae0618aafd24dea34887abc67f02845656a72ee4aba393ffa82072912bc35df945cee713119638c4146e7b8d18f512c7a177ab36c1b354e20821c37fc218a44ff7431544cd2b9651b346880710211dc7884e224670cd90f1f3ddffe0728344bbf8bd0c814bbf3893e4ccaaf62954992b48287270a636299bab935a5a5824727486f2d490ef331d9e99c287a5434d1040b1695df846aaf6e25979cd4414d60ad67492eff3caf990953d0d4bfbe1126ae9bbcdddb0b19837a094dcaf61534bac9a66e09d33c6ed24fb933eff5e0510993ece13c7d44094e54cac4564d92a4ca63125e4a7b6ecf6dc1f3e721898305fd8c317ba7bbf688c49b1e97c9ea2fff49f280c49db39470827f8f4760192bacb36f6ed5ac2334a9d28cd1ba182f783422a9d5a498b346060fd7070f46545b62d6b9fa2292cef1a44d62ac0873c8edc8141ab5649388d3b4e593a05142878e88ae844ee1ee2fc54c8287583ecb49fb39b64a5d0cf1e6d458d3599ec287856826632bdd4d0841774e4d7e39ea06eb06a1668a964a9a3b00c64310b7cbc7f5f84134cb1488dbd5c42e59bc73a70610c6d1df0e5f7fb96efe439549aa0c156366932c7ed8ede4641932e46a82471f14937d7783e7ec489f0f5ccee2a1f355698c13123cf6b08951299ed7bbe43c2278e8610b6e7782c48496e77958f3cf5a2eb94d755b81071e1893ae3be935dac9dde30ec60ed50db1e36f96b643db274d5f788c9c9f6ce070336e781d28ed99e813f3e692e4d0a1fbdd6cd1f26bffa30c1e73504deaf8ef97c3d34be470a5989864f3d98d593078c481d1dbaafb7c154f1e1f70f0734e1a2696f882c71b0cb96f7d5a75c2698e1b922e55366e4dc1a30d5cf494d2cad53668d058c1830d9ac5fc1a4226e3835482c71a8e7b13736c68aad0c678a8c1e851dbe0f2193c7be391864eb69c72fe7e678ffa030d6a92429574827b8eb939c339a6c4b4daa525ff38dc060e6a6ce161066caf476c335450f994e1faac94e6277d8ef43668d0a0c1830cccdc96bc7ffeff92338682d5d749ee7be11b13c3499a0c5d52f0ac50d50d1c6c19fb08c35125e512bf23d35609860a5af000835e1bf6dd15eaa5ce2f24c45efac73c9eab752f909db26cba2e78a9e7e24ea5f34d9a0e3cb8502c295e56aa8d75cd630b68b4ccb40a3b2945c9430b776a55f579ef9185448bafb9c2e4246e4f36c2a8a1831b5bc36fd4c041468d143cb040bccc796e8d785dcbe30aa906cf99c49c7e58a14f52e85509bf9b6e03c1a30a986852cdc54691cbd90868d0a8f1a0c22e7d9b647de557330b50e03185e432f9723db7d3461f5238442b25393269755751f87373924b9e0a145e8ffba49fc34fe8c3de87137895b8b87cc184b9cfa309497256cc9ee52e554699b069be24f9a75b476e3696c079672a4b622765e84aa8aeadbc2e7892b09ef6d87f2c794cd60712e8e990e1545ef3e8477054d4d75ac34f760f8e8711f892d4932465621a0b9111a7cb4a39a1323a5e71926437394a345e9e6ad0e18a5678a2b525490cd7b1abf740072b928412e5c3fd0995ddb30acf54cbe5ebf3ec2fa40af44f663ca5cc96fa549c26c5ca9cfca9e72bb4810e54a8a9f7c4312d217bcc5314d333db751f961f7698a2f23519cd34be7549ce6000133a4a719bcb49f3d353b92d292ebff93ad0318a46cf2ac6287a6d53768822b1356f787d4f22f293d1118ad54e667366b2d1010a7a6ed3eb7a7ed7f73fb189c1c46a37c790d1f7041d1927c473f892f44eb8599ed22594568a73c29c67d7621bceecddc46bf3a929b49a30fedc4f68fee9707a268a6a61a4bc5cd63dc784153bc6a764fc126634bf8de2294e4e5a428f2b556252fe1faf129f6be7fa5c0e25feac9fd4453a935025634a93caa4b48e24fc78f213a9155172249428b9bc820809c7a44e19db7b44ef92c12a87da11e5e98e0e17ea461c34ab7ecc9ec9d3cc8ce8afa2f53d851791dc51fd4493a02b1f459817523b5abeada913c164e731e1241711e615d1981fe2dfca9a2fbd1a22394ccabb2b16c21013a16653532124c4196d378b6cef576510274136ffab8b4f452a08fb2d443ec67d0b4f209455cdb7613ee99980f844c33b6d93c9b9fd8134593e78949824e9c40f875aa7b534dbedf48136fdec71c345c6c287a2cec97aae96e48a720f666fcc641dc674f37af05737d8e807f370ccfda1b44dc4c3e59f1f932396cec33b589b529d31496515433b1426c4d96cfe8f4b5887d33eaddeb86f3e3974a8a34faaf41e56639d03121fa6521a8fe1bd9343496343956b170763b40b5b7b2a9725070777531893a5f23259ee0d89de79b3b92a99749d1b125736964979f196356d30850f1f63af6c68beddbf2fb69e46cd1a28d97c46befeaf47a386e345776bde0dba9a4983a12a77fc731acf914143a7b9259d669c6cf719aad18dad922709729b194c3b3b6fe265c04a78b994c25946930c768c5bedd4bdf3958d01b1ccf41b24e7245b0c7745ad1e59933050eaaa9b4a0483963263cc5b291734c9172c317b5ecf2f66cf122f383e9f633a29ba4fdf854f93f019e6399ee8295ce8243fabd30adada295b2844b44e36b7b440c6f4349d2bdea45859382dac8d4509160e99b62544fb2fa5ea0abd54fcc9ce29dbd35660a72f9b468f67265a85928da89c581b3f27a9806487bfbbe0714e6e0acc05d1147a518714126c24742c6e4af2af3be88842994af2784f21952aff830e281027ca9af831ef78025a194ff64b9b0018a1c309ca758c5464dc5039273b9ad0c18424d30993f22671d330722c81f8f46f1afb9ada7d184a2854a527d3d42a1dc771818e24984bbc8adbfc31e30619387e031d48487386314f33ff6953560c0a741ce1fd91880cbe69b2f58ea30c0d7418a1a4595749fcf24f5fe236729c5186053a8ab0864afe5152c36db06654a083082531495cde3c5f72ba876066938fb4d8c97c7331cac891810e2198d6627fde29cd59d18e20109fc4d10aefab030849258b49db65f2f8451dd3ea2d8baabb770f5fd8e9225d729eeb3069048f5ea0e1b9c65f462f75c38b2be956de548fad551ebbb8a2eea6942755e3a18bc3688ad96378bbe8a50d7de4a2f19eaa28b936a87b0f5c24e6789876fc8afc718b2c79a50d936a52f09f047ec810413d6c51dde68aca38ddc04d4083c60d1cc73f6a91f6465d5ed8899f6579d022640c1af3c9278416488961f9ca4467b1c67cf94a726fd55b21b210012416b0784539ee79d6726833ad5c911c6761937ad48a2b93d499673e9ddc291056f4a2feb2392c34570a64150595cdf1495315c674aa1e3459e80e995474b9375af55f3f5f0c828a246966a5be249101e41497247adfa5e9b0b5e90b404c619e2494e593b1c8b24b29c5e1db969645eae53a148090a27c25cc857eb2b23e29096414095d1763196c656fae12c59d31d346cfdef51f8784e290f1bafee2cc778762000185b9e27e7677b9fc97b200e413ea746da5f1db24cff8038827922d33e74c41cf33a5a9139f69ce5d9337837002b2092cdc764e6f6dadc40907104d249e1e3e553bd826e94c606296c27e0a236dc2983894bb79cca5b1d9ee259c34d18b2657209658cc43e4475f89b42c57c52be973a74e892e6bb6e5543efbb5491c2693662da182480293bcbe82680793b5038944af9d56ce3abec694f2000289c2a6a5fba7cfddaa90479c2c6992a63479f5ac038823f692b2efe6587177e39046ec27c78a9a26c9887b4acc97c4ba642f9645a0277beaf93c6537a11b4014c1babbaf2635cbc9e38303928852cef09b39fa398020a20e71e7277932041502b5a8412bce9f9016a7284008f159dafdcf91b7bf181b350671d699c5ee70712aa5b6c310a304104120ef299d49ee61f95e110112086eaba693b47a39649e0910406c6288dcfb68fc97493b80fce1d5932c6c850606c40f6ad2136d54c23e247d521e3fc93d2d3605e18319d37a7bafbcc99f7f00b2073de421e93439e51425bf29b201c183a1648dbfbf30c003903b9c736e75ec8f1edebb1d52cf9da28a8c75481236cb895bb962799c0e59e8f4888a2beb1803990361c1e3d45ccedd4ecb618bb15ed163300e27b153844474bba7050207adca728ad84f0f6a027983a7da26e655e6ccafb8214912cd3f26614e9ab0da7099d54e795aea0c081b8ab74e3165b856ee3010206bd04afeac24ef9a264b11440dc963d147b33c9ea7c3b841c68ded0d40d2405aa76aaf244d0082863caaad411a809ce19416f45ac4e7a40f310031431992da6edfe42d91b21e4206c8186cebb4e1bf6290de4a0d8818125d56bb4b0806903070e2fb540c92a22dfb42c000f94279a1ba505cd0378ba69c53df85a62b806c21bd986a6fb4e2df665800d182eaa511755aa167395950672be4539746454e21806001720533cb4ce89f3387054800b1423a369a621493a4f8da04902a502159637378ac163285bfcb3a564796426e17f6a6d52858a659552532a5ab640e2050803ce1ab0caba949d6c61910271ce3fae5566c4c39be0d4813204ca82de36d9d6674057709dfb5d7e5ea0ad7a32a81fd533d317c2da7924930c6fcbd34594173ee90c0e5587cf3db8eb0fa9dd86e494393746284e40f13bf7b290299bd7d35931411ba9c625ab7d455f186607fc689afc76930110297efc2f64c0409426af197573ee2a434438060760f6a969320a2e95f70217652cce4b8bfbd2fccd123fb3fcf5bcc6b2fa89256b6c48af2f9125e247c8e697f3d8d392d1dbb384b4e5e483bab1c950e5dd0f2e9c41ad5ed0fa93b72c16564b2bc1caa64773b706187c72713ad63123f07a3e316b7adc64a79e5c131021a34ca18e33b6c410697e8d82d75d4a2cc97c19264a7fffc5f408b7385c74a6289155f9f8e599416cb4b924f6551aa1265726cb6c43413c522c1528ca35ea1f29b58072c36290ec0028123089442650107dfad92dc062c8022502e02156933729c81830001d001432001003023c719261840009c067b060d6eac180710400e1c8e801000e04f495a0d15c6e4dbd846963a83068d311c478d1b84716a9c30dacbc80102050c81566bc9b513db9dcd86105ec9cf49d35a5f46b6a180201c3e5acdbdee3475aa2800085fb0a0d16673bcce0c31c238836be0a8c82f9230ccb84118c717491866e0b091438c1a351010e985199e8317491866886123c7d6a88180c82e921a350e10d1451963e4c26f40c61863f8180688e0420765f4183e460122b748c230e39031c619356a2020628baa05d1c25861d453cc9b434c27099159c8a2fc14da396b0eb67e2c60d1a5e42fbaf18ebc22eb3acd952d476e1e5de1c6f8d3f84fb5c2b43393b369e878f964857ec244e5cff874f32abcefec361193882a5251abed5a64b92631d5082ace49c64646e3c78aef2996540daf1eb64a3534853968f4f446568af24931f26f6166831a214572852f3d8b98ed0f23a3706dd66f4c3af136daa2b03a653777e3814828f8b0494e29c5ce5c6e8e611150109b52b62d66f8cb67e4887ca28a2925e9cbdbc46c02114f147f27eb52e5b4942f158874a23359cb344ab4d7ccdaa04143239c28ed6f9b9c327b1ad76dd0a091914d54a6d3e1cae40fe6711b7c460e1a34725020a2894e7c2c2599bd31f9ae48263051976883594ad1a4762f899225aa1294988424faee8a3a13f124b81c890426e533296ab2d662c786db60511081c4236cdd76f9dc2ee2882b9dece59e3fd2887e93143784c4554a7236c208fb63bc799efb786917416d7694949373b4d6228a8824a22288687e7b3ac99fa9eedf21ead6135aeb73fb55c5109618364b86ddbb4ff28530deefece325612aa508a1c91ba236f37ec71a07517b0cb32fcb392a78362282403327837eeadc64171b1b8804e2be95ad64678900e20f59b01cc6c32789f8c199fc1b7119ffcf5d1f3eedd5ecf1bca3678af0a19bb5b839a4b9873f7ad0db0ea31ef260b88a2f267c46d87df09064272639947e3ea1a4ef60873ad0e128f2298a6529f1d099831c164d694becf98ce676400234c0e12188c4010e89de6ed67862fe289f0e44de60875ef5f470b2f61e379c2f69e645bc8c56d6067c2fa5937dfa0e138cb0c13895dc6c25165903a9210d8486c8192a628632d87329bb09f7a7f769329cd4a3df26b39881838c1c913194dd4ccc9ac5124318280206ef6ceb53c61287c817ec1c2f6ad72f42f28343c40ba709237a93267c5eda85af2bc5cdf868e32f45b8f06a063f29670bdac5a429e7def3f92007225ae0d4c4948a7b6662362359486a5bf3e40ff5151d2c982b76bb87c944aeb066bbcd293bc98b3e6205f77e3454599f9fe045aa80fa6f86fa4ae1c3d30815cef9e5be96e66e3786139129246d8594bf9770994ac110715225f554ce256d9811468d00ac2212053f9cec7dbf1e359f5c040a98ac9bbac7ff3be1137942ee1e4bdc4c594389bf130e9e96c455b619449aa009a51a66c2af989832c1d553df38b1224b20ca4b9af831e924d288129a7af3cd14522afc154982ae75a9a4f57d77759140c6fd283932ee5fa5c811f8507a62b96a1b11daaf2d5aecfe1a448a60b9d9ec9cf4c6d8c973c34f702244a8e4fb924eecca4c114686101102ae7a29336b125c43c2402408d56a64ea8dceafe34780b05fdcce296b49da4c7e51458f7ec9b8f645df06c4179a7912be2d724ce83ca417c48b2a2426f6c31b80354076a10bbc36967df654e2dd950b5cbc412a09256ccaa50f728b34d7f64e995cc9dc93c00520b6d0c64ed670558266abb56844c20a852aa833976120864110055110832008629f3543135080b840180c46c3012d91663f13c0c0ca42d170280e8a420181300c463110053110835010c3401cc44044e224b3ac1bd1a3b4bb7862d3e55c44ae5e0b5dc3629e52e2d6b0480673e51de4bcc7f666fe27e6eb55dbcbbec433741adecc82357ed3a223bb8e58837bad264dc261d956e063aeb42b33186f49fda99e4347facc4d80688ec7d7458350310a38ffc72578f8e1a0ef2195131f5a30d5d47effc3644ac31b6eb58195ad1185a9755032ce6b0f7bfc4854445acc262d27c52b133f126f022dbade01c257af5fe2a1a8cc3963f8661b97c2c1e868121a49cf74f8b54b91cb24ab63361549521f874232b81958359b539d7e772b98b28420ebb1fa2c423c16803213309f88fc647f2a3b8154170f2a6bde166f60b5c6e0d7d078a82c206352e9ad3ef357e30620b69d274447210d9e71a495fbb9e33749f275ff9345652e9715cfeaeb2ace2200010b6c05db6fd8ae90e95955d3334adeca76c4e7e65b46071f245bfb96df60b37ec7be078000c94aa8fdd7f8be270c5706361a33694296fbf49bd35abf59792d843953325e5d9558a47384f12856efb4e0eddf5be58b5200a88bfac9959c89da14da347287413453eca907e02d294763cda4b3f4439991806b804917db384ed08c1534196cead8e94ccd788d7c53562d7267baadbc3a9bc2083a3764b6d3a2e78e834b0b95038fca587ad1546943e04591197967abd948364862b0603452052202ebe8034e11035397cae42c8ffc55134e86663f6c94b1264cb5b5ecdac72076a7ed829a6c9e88516cbb02f0e2f41ee4b8451ecf9ce1b08f7bfd800c0dbe61b24700258c1fd964aa2df4af91eb3e1a44f5549db0730eedd8514a63e1b77272ddc9f9b0728c8c0122bd44579c7e16d050c109419a43b709276f0374c13870d20ebd2dff536c312ed182d10187fa74f71b1fca900372737603b03f8bb970c899cd1ac2de8c816155aa74143ded8841f8e4814dd4009b9bc0ad064677bb5d6f1af9583d9f4646c7512eeb5ef04126125aeae72875b78568bb021699c7f4594c2fd158c500174dea61ee981d689efc28037aa9fe89bb68517ed26a484c604edc3519d115193796ba6099036accdbf1894eb8720b8beb56c4f7ee80ba25d6c950c9cfc428f2a56ac3e28cbf8c385342497225bf59f88c3b54cb94ac7f33121a8a3ed55792b259084d9829e9e7a42f80eecc23231789c8ee41778331403a55bbd137e5a02bfa7d9f3b7ecd50e1ec4341fed85b965bb5bb86b1cfadda7922a51c38b01feb6397eacc2771750ac086cd1daca1c0ee53a4e4b888bc2a114b5c34fa4de42db36e5366854bd99f090b450bd92a6e42e61ae312707d17009e025370dd58237a87c6cb44a338b35da5a2e0e2543c8633ed395b0867f7bc014057317047e6cc792d00a59e92d9b100fcd73f04e9ddaf4391a45e3d44f9ebb03bd9d783f2935ad1d78c2738e1c668ad1d99b0bafc8f29eea804f90ee37abde857561e150216e38775e961f24914135c6e2a5deb43e264ffc5b994b40b35fcace963c0a63a47af32c683c9a621143a94d9a36875526f79e59ecabcc9dffe528fb76300997ae1464eb586e179546b54189fc8e2e14085208dfb6672507c23514208bdfdeb70ef3fb22941d049a23be02c96c23a7788e58d00a00227c026ffa24d6629ce3d620d2b07be1c609a5fc1a8d4963701592f2382f93e27111304a9e385354bfd026ea5bc45a63f1685649531398964f5efe05bc1062084b8f6911521c8d7cdaf473f847c0677191b55ca7059d4ed8799f96d3c9faa13ccbc9d93661da50ae99bd93e3c57cb21f4b26d58788cc4515fa6134af11a2b29efbcd5c0b33b29cf4e65c09526fff27f6882d1cfcc1124d0df15737a85a09623bd4594795b6aef8a370f5e1ca16da384cea5dc3e295d7c27608332b7984139a48d1dc88f54bed80e45b9c4c50a40b030e937883c5aaac241d11205e2fa5d9c1d29ffe37a2cae7fddc58c73ef5d530c32606cd21dbefedbdf774d68d6d9b8ededd24887cc44588b591364a605116c21ee81652de57834ddf864949b3725a51192e530ebee788de475586014797b51c45e59c15d761133a9abe65b3ae5e07c04254cf62d8d93aef9c1d6d517a4b379b8624d9343e6f5ef8455344ea09c81f2b3735434220d0a6211843de10ed8f247d4b539585a06d396dca98d2f11619bfa94264d182c0020b7f726897b9f98c5c49adf0cfef1926e23cddabc2a7f69eb3273edb31eb1d3593b4de0a33b7ba01b45372a2685be4afa4fef228c9c9e2b3fbbbba8d5519ad108c6d21d25a133f1059cb68be3fa714e6b26655df3bdb0ea85ad4b308cc07ae9057fc0285e05f513366081247a71dd9dc6dd28bd78c3873e92161e0f1797a2934e8b36e93ce213fc760d03e876646a252ecade956b8f023afea30b608be4f2909af8655e8f4ddbbdeb919823597a4a43a0093e4efcb9cea82f4dd08c77f57c27989a08ad507d8a480b09ee37d9443008d4836a7b887beab566d3a080dfa0f2f0b2265957553e6f9327a29b577e907b80e59e9ecb7deb6b27655b243c2b301723d728fa7546426ee7a65e35081c7b68daeedb32802a5b9df058f058d7efd209e8a50b6268dfcb138de5c324c65baa14e425d534705f885c1c9f2eef6eccdae34f84f48e4d58f6d69a4134c619c8dcb9bad4c51a88f269275b462c2867b4362204af1c9241b11cc1d6afb36230df62eea6e82095b5fbbe4fb708ec5f81833a0981f3e384a1837d01ab3f5844a043a5b4e8e2bf3a3dd40553cc1c0b0a0da81cab1a7fcf56e3a87150eb664ac5b4b58a36f76a53933c32fb1a654c2236395b7f753d3c8e4fd2072c8f0f1987de535083774c10d5038ca0d50f6049c8690bad5853ec4bcd90227d88db44fde2996570e5936415923a4cbd2140e8ea99efffd48ced8e8bcbd5c77cf1266d799b7c15654f131d6937ed9351503f1c338921b0f8d53616c611f8fa71a087d18e8ebcd389884f36b17194f6ee7743dca03eb195223b90ad124e0abcf8b6ca6fd0a93f5b06b6a0f040b0ec74a7808c417431d0abc141ca159c35a338971dbcfb716c9457a2bf751535f7f0c3adaed15cd0adc31696d55caebfd603cd7fa15daeb07eed15b9f867c7980d49d9c216760de9dcca87b3f9b7c3d5e6d1cde609ad521baed2abc0b70f9188749d70fc04e22649a24577784e524704f3446a5e8d9219fc412029152cae13ee4b81f62c2f396ac8ea99594515d5c4f0f786f1cdf9d4df6376354f416ca32dacc510514c2a22923be7ddf7b0d579cfc4d8b1a53440312f4e3bc62a1110b1775121cb50df773a58238510dd4ff1ad27956d272624d6223dd2c1c9b3bd0f038971b0ba84b08f1a2550743406af8812b28b770ebb9bdfd5fbbef8d5afffda77fe5358f670e8dc3ba342bd43e164464155dd2bfbebdf7ffebbfffa5752effe3a18a850a0622a4855e6e4317e0a4edaa639cd299f1ed359ff84331b1f09250f854e75676486b4b154be20cf78f9f35df963bffde59fdcf08dd3b5e154a4be0c47435fb295c35cce65ee9d7747b76198475df03405e848189413f80695ebfb2f5109877604de82a23d6ce73a6bb6abf718ced8184ed4173d8d6471d69a852216c4fdc95e5372f0ef4a5198fbd7e76e6c69afbb94bc0ef54e5a9335c12bc271c208fb1bd8ca1005e8ec51a13e203744af8871daece8b57f2cd385cd83edaab80e9916b897fa9d9ac5e7142376cf8c48cdcb4a77ed6fab607e605c6229164fe82415a5ace5a5c9135cc0d0533559e606cda733cf2596e8f964374d6f16c853dddc583236b6e359829ffe8b513e2ff7cc18a08e669e97f892f1067762f40cfa711673a64f2695791917f0e13bf2e579bdf6bb87fac2caaa2b8438eb64f9e54a2e401d2983b868e503ca5e8239809a7fb12e3fa471ac7cb72a5f60de7d160d84402b0c2c02c6a01a4290e72bf6b8c22fa3cb6a394ddde3cb792c6428a21962b7c62485e20b577c4762781e203782f14a65b41008d1a81bd63db67ef3e01983d7a5b06908b58f0e365ff6001b796498fda6b9e7929da8ce0e9970de7a3b2a33c4ad95def7b9ad20abc0eb29c68493c5e663ad0562c9845af588d86dbcd13218c4c0a552b4c2fd2f1ca3efc9e2568f483dccb91c2c1d04e8279f4528daa56656e3cf687393ac9a0289685cf39568b5ba31390b885867f312b5747e98651bd9f7f8af63eb63397f7f8f88a0605695a43afbda70c218b08695385d4dde3db5e55917a68d8d16e09282191e46252bac10fa8ad6b590ae1f42ffb00f6b4cbc3f291eacf537c42c4283652d1fba90c71fd96c6a09799204144865866368b595c3063871677beaaa8651325c219a224c071e3ca901daed028f547e8dffdf6d8c637c2058db85c87034bfe1bdd1be75d9c964949a25c3f05ceb6023d72dd2496a09a08ba7b1d2331a2ee5f5cc7324bf3b79e7e254102157b6639982ccb17f823f154574594f4c3330244c38ff78dda9a1c5f0cc2d36fb1fbc5da228532d67ce05b0b0c80e8609e33b09f48b6002c88189c1836c3285c949809076ea8690a106aa7e9716b1269cfbb6bfcf210b7547ad0a99237b6bf37228e586c3f80ad3f8eb7f91cc6529b5ea5d092c15f0ed43ecdd78ce3e0f5aad7172ee2d4a3b65cff321b28a1b63c97ea6fd2a52c6176059f448f10bd1c3e24b277190d993e36555b4a7c32a7770e80cac33d96d64055b941856cac552f25bf8ec695ef2fd05a93382a9fbece87ec3f4be21e0344235f79c33466a2c77f045b95bea6ca690240eb8bf0f89e9b426b719c29e599f283c0824c9c3f331b509906c5770ec4dd2a81c493647a8b0492066d8f5f8f3ebf9859aad890e5ec20708657a8299955afc5d9d87ece8072f4e0fc3c80822af533492ab56454c01ad0ea9071b6386fc8b3013944934434427eab886ede78d9a2aef1134d175822a7cb178b710e57b2a6110584db2ee4e0dc445594b5f2c153a5a820c8533c70fc4ffbca131bc08e30b21cce1102868f647092eca610529e6090a03b1c74e475c7db706b78634e1c9c7984b2ff55c0595226fa27f2be5342ae7bf13666c4e59a2a9c86954862d7b3bc60d6b89debaf0db8a4f38f1f9ab63f2dc69e88235eb22125dce3b73b9691278784b70a7a5a7adc56f89c8bf887676ef09cae8279d12a432cf1a0e9df6ba903e1dfd291746aeec5df864fbdaf006ad580003952ddd4220e08c26eab5516f596bc1e9c66bc628368e23ea3498e310d0b6cec4b04f386ab628363726e68c4a669a860ec69ad2bc23150447debdd3849e58067ca1cbe04318b4735ef31f0289df26b03956e335", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3c311d57d4daf52904616cf69648081e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3c311d57d4daf52904616cf69648081e5e0621c4869aa60c02be9adcc98a0d1d": "0x20dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d905973883670b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe04367684c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x57f8dc2f5ab09467896f47300f0424384e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x57f8dc2f5ab09467896f47300f0424385e0621c4869aa60c02be9adcc98a0d1d": "0x20dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d905973883670b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe04367684c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x79e2fe5d327165001f8232643023ed8b4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7b3237373ffdfeb1cab4222e3b520d6b4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x913b40454eb582a66ab74c86f6137db94e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xa42f90c8b47838c3a5332d85ee9aa5c34e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x0000a0acb90300000000000000000000", + "0xcd5c1f6df63bc97f4a8ce37f14a50ca74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb301fd292232dae2b570b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b": "0x70b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb32696ff9dd5b58170b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d": "0xb447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3326eefc9623d0bbf8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62": "0x8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34c18773c813024fd8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18": "0x8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb34eb162433582a2de84c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71": "0x84c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb382c4e1e553751ee4dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d9059738836": "0xdc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d9059738836", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb39b36fc39f221acaf040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe043676": "0x040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe043676", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3b147d8162826a908b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e": "0xb0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950144e983536ef57cf617572618084c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71": "0x84c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19502162d00a2134b03661757261808eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18": "0x8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505ca51ea81516ba7c6175726180dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d9059738836": "0xdc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d9059738836", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19506fc79dfcf079cef16175726180040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe043676": "0x040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe043676", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19508512e4feed3e68ac6175726180b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e": "0xb0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950d93963836399023661757261808012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62": "0x8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f66f3d370e6b72dc6175726180b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d": "0xb447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950fec98f6051cef823617572618070b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b": "0x70b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x20dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d905973883670b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe04367684c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x20dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d9059738836dc8b457d69477f29e5900b87ff546906bd6f1ddfc2805686ec571d905973883670b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b70b8271aa09a079120109444b69dbc16ccb9d11e205a77fe9aef105f00bfff4b8012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d628012cebd357b832321efbff52414503d834c38a806e496eea2b6ba93ed945d62b447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55db447c01b893738ad904fc7e6cde03268859354a7cb7622b5363787d85e57d55d040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe043676040c2f09c4b32fd4ecda945acdd3a4bcf801557462020991f9231972fe04367684c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf7184c41f0a7bf06c05d59c2dd733b82eff492211e9374ba640b95f48cb346cdf71b0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50eb0e52b6106bc95f25285c8613dc39ac76cedb7671d0607a4f850ba81b1e9e50e8eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b188eb69560436bd1ee7c172144350591e743d3dae6ea0d6985dff5b3ebf93e9b18", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xe38f185207498abb5c213d0fb059b3d86323ae84c43568be0d1394d5d0d522c4": "0x02000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" }, - "parachainSystem": null, - "parachainInfo": { - "parachainId": 1001 - }, - "balances": { - "balances": [ - [ - "5EAajHa4vjcfXVdSuaWTuK3DzduMBgmu1XNMpqAprCaGcY3H", - 4096000000000 - ] - ] - }, - "collatorSelection": { - "invulnerables": [ - "5H3smGYCiPYHc74MCRaRYAybMykyF958fwdFdHqYJRVaFA2f", - "5EcVvc6C9sAJNJ2r5YEmMdPbSiCRpDsVFbsnU6oVwpfRzCzX", - "5ExdaDEdWMDCTKzgw919bHdG9khjHTtcwwwJ54tM4TAC21xQ", - "5G95npHNCgq7RhqoMA9v4c4M4XmhkGnieMi1ZVngfuuP3xzG", - "5CA1fhVhpwZ28zx8Ee3onLQbY6rwLKuVBWqG6h1nACBzSbyK", - "5F4nSN6iDqyAEwHZwnewhXhXvfYasKYWQ8sSU53u2rf64VEU", - "5G4eMyR7a6dBQ1TNUQzDGj568tg3zjfW2i7hM7qVy2yH1uRU", - "5FHpttSJKiru6PMTCrGCVg4Dvf2AKGUy86tRKszStseukeHS" - ], - "candidacyBond": 16000000000, - "desiredCandidates": 0 - }, - "session": { - "keys": [ - [ - "5H3smGYCiPYHc74MCRaRYAybMykyF958fwdFdHqYJRVaFA2f", - "5H3smGYCiPYHc74MCRaRYAybMykyF958fwdFdHqYJRVaFA2f", - { - "aura": "5H3smGYCiPYHc74MCRaRYAybMykyF958fwdFdHqYJRVaFA2f" - } - ], - [ - "5EcVvc6C9sAJNJ2r5YEmMdPbSiCRpDsVFbsnU6oVwpfRzCzX", - "5EcVvc6C9sAJNJ2r5YEmMdPbSiCRpDsVFbsnU6oVwpfRzCzX", - { - "aura": "5EcVvc6C9sAJNJ2r5YEmMdPbSiCRpDsVFbsnU6oVwpfRzCzX" - } - ], - [ - "5ExdaDEdWMDCTKzgw919bHdG9khjHTtcwwwJ54tM4TAC21xQ", - "5ExdaDEdWMDCTKzgw919bHdG9khjHTtcwwwJ54tM4TAC21xQ", - { - "aura": "5ExdaDEdWMDCTKzgw919bHdG9khjHTtcwwwJ54tM4TAC21xQ" - } - ], - [ - "5G95npHNCgq7RhqoMA9v4c4M4XmhkGnieMi1ZVngfuuP3xzG", - "5G95npHNCgq7RhqoMA9v4c4M4XmhkGnieMi1ZVngfuuP3xzG", - { - "aura": "5G95npHNCgq7RhqoMA9v4c4M4XmhkGnieMi1ZVngfuuP3xzG" - } - ], - [ - "5CA1fhVhpwZ28zx8Ee3onLQbY6rwLKuVBWqG6h1nACBzSbyK", - "5CA1fhVhpwZ28zx8Ee3onLQbY6rwLKuVBWqG6h1nACBzSbyK", - { - "aura": "5CA1fhVhpwZ28zx8Ee3onLQbY6rwLKuVBWqG6h1nACBzSbyK" - } - ], - [ - "5F4nSN6iDqyAEwHZwnewhXhXvfYasKYWQ8sSU53u2rf64VEU", - "5F4nSN6iDqyAEwHZwnewhXhXvfYasKYWQ8sSU53u2rf64VEU", - { - "aura": "5F4nSN6iDqyAEwHZwnewhXhXvfYasKYWQ8sSU53u2rf64VEU" - } - ], - [ - "5G4eMyR7a6dBQ1TNUQzDGj568tg3zjfW2i7hM7qVy2yH1uRU", - "5G4eMyR7a6dBQ1TNUQzDGj568tg3zjfW2i7hM7qVy2yH1uRU", - { - "aura": "5G4eMyR7a6dBQ1TNUQzDGj568tg3zjfW2i7hM7qVy2yH1uRU" - } - ], - [ - "5FHpttSJKiru6PMTCrGCVg4Dvf2AKGUy86tRKszStseukeHS", - "5FHpttSJKiru6PMTCrGCVg4Dvf2AKGUy86tRKszStseukeHS", - { - "aura": "5FHpttSJKiru6PMTCrGCVg4Dvf2AKGUy86tRKszStseukeHS" - } - ] - ] - }, - "aura": { - "authorities": [] - }, - "auraExt": null, - "polkadotXcm": { - "safeXcmVersion": 2 - }, - "alliance": { - "founders": [], - "fellows": [], - "allies": [], - "phantom": null - }, - "allianceMotion": { - "phantom": null, - "members": [] - } + "childrenDefault": {} } } } diff --git a/parachains/chain-specs/rockmine.json b/parachains/chain-specs/rockmine.json index a300adb9e54..d774da8744a 100644 --- a/parachains/chain-specs/rockmine.json +++ b/parachains/chain-specs/rockmine.json @@ -3,10 +3,10 @@ "id": "statemine-rococo", "chainType": "Live", "bootNodes": [ - "/dns/rococo-statemint-collator-0.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWRrZMndHAopzao34uGsN7srjS3gh9nAjTGKLSyJeU31Lg", - "/dns/rococo-statemint-collator-1.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWAewimoNJqMaiiV5pYiowA5hLuh5JS5QiRJCCyWVrrSTS", - "/dns/rococo-statemint-collator-2.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWA3cVSDJFrN5HEYbt11cK2W7zJbiPHxR2joJXcgqzVt8K", - "/dns/rococo-statemint-collator-3.parity-testnet.parity.io/tcp/30334/p2p/12D3KooWPf3MtBZKJ3G6wYyvCTxFCi9vgzxDdHbjJJRCrFu3FgJb" + "/dns/rococo-rockmine-collator-node-0.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWRrZMndHAopzao34uGsN7srjS3gh9nAjTGKLSyJeU31Lg", + "/dns/rococo-rockmine-collator-node-1.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWAewimoNJqMaiiV5pYiowA5hLuh5JS5QiRJCCyWVrrSTS", + "/dns/rococo-rockmine-collator-node-2.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWA3cVSDJFrN5HEYbt11cK2W7zJbiPHxR2joJXcgqzVt8K", + "/dns/rococo-rockmine-collator-node-3.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWPf3MtBZKJ3G6wYyvCTxFCi9vgzxDdHbjJJRCrFu3FgJb" ], "telemetryEndpoints": null, "protocolId": null, diff --git a/parachains/chain-specs/statemine.json b/parachains/chain-specs/statemine.json index a74cedf71d7..dd32b21adb5 100644 --- a/parachains/chain-specs/statemine.json +++ b/parachains/chain-specs/statemine.json @@ -12,7 +12,20 @@ "/dns/statemine-connect-ue4-0.parity-kusama-parachains.parity.io/tcp/30334/p2p/12D3KooWLm6iHcmA3YD4xn2zfbm4KLF5KSUqJJAnmt2UGr9o2PgB", "/dns/statemine-connect-ue4-0.parity-kusama-parachains.parity.io/tcp/443/wss/p2p/12D3KooWLm6iHcmA3YD4xn2zfbm4KLF5KSUqJJAnmt2UGr9o2PgB", "/dns/statemine-connect-ue4-1.parity-kusama-parachains.parity.io/tcp/30334/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG", - "/dns/statemine-connect-ue4-1.parity-kusama-parachains.parity.io/tcp/443/wss/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG" + "/dns/statemine-connect-ue4-1.parity-kusama-parachains.parity.io/tcp/443/wss/p2p/12D3KooWD8Bma5qPbq7N5qdED3Xy6GXHfvfk86TL8aVTQKxmWkHG", + "/dns/boot.stake.plus/tcp/34333/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", + "/dns/boot.stake.plus/tcp/34334/wss/p2p/12D3KooWAzSSZ7jLqMw1WPomYEKCYANQaKemXQ8BKoFvNEvfmdqR", + "/dns/boot.metaspan.io/tcp/26052/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", + "/dns/boot.metaspan.io/tcp/26056/wss/p2p/12D3KooW9z9hKqe3mqYAp5UJMhZiCqhkTHyiR43fegnGmTJ3JAba", + "/dns/boot-ksm-statemine-cr.gatotech.network/tcp/31325/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", + "/dns/boot-ksm-statemine-cr.gatotech.network/tcp/31425/ws/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", + "/dns/boot-ksm-statemine-cr.gatotech.network/tcp/31525/wss/p2p/12D3KooWRMUYeWMPkadDG8baX9j1e95fspfp8MhPGym5BQza7Fm5", + "/dns/statemine-bootnode.turboflakes.io/tcp/30320/p2p/12D3KooWN2Qqvp5wWgjbBMpbqhKgvSibSHfomP5VWVD9VCn3VrV4", + "/dns/statemine-bootnode.turboflakes.io/tcp/30420/wss/p2p/12D3KooWN2Qqvp5wWgjbBMpbqhKgvSibSHfomP5VWVD9VCn3VrV4", + "/dns/boot-node.helikon.io/tcp/10210/p2p/12D3KooWFXRQce3aMgZMn5SxvHtYH4PsR63TZLf8LrnBsEVTyzdr", + "/dns/boot-node.helikon.io/tcp/10212/wss/p2p/12D3KooWFXRQce3aMgZMn5SxvHtYH4PsR63TZLf8LrnBsEVTyzdr", + "/dns/statemine.bootnode.amforc.com/tcp/30336/p2p/12D3KooWHmSyrBWsc6fdpq8HtCFWasmLVLYGKWA2a78m4xAHKyBq", + "/dns/statemine.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWHmSyrBWsc6fdpq8HtCFWasmLVLYGKWA2a78m4xAHKyBq" ], "telemetryEndpoints": null, "protocolId": null, @@ -43,4 +56,4 @@ "childrenDefault": {} } } -} +} \ No newline at end of file diff --git a/parachains/chain-specs/statemint.json b/parachains/chain-specs/statemint.json index c929ce61f0b..12d655ae7df 100644 --- a/parachains/chain-specs/statemint.json +++ b/parachains/chain-specs/statemint.json @@ -12,7 +12,20 @@ "/dns/statemint-connect-uw1-0.parity-polkadot-parachains.parity.io/tcp/30334/p2p/12D3KooWApa2JW4rbLtgzuK7fjLMupLS9HZheX9cdkQKyu6AnGrP", "/dns/statemint-connect-uw1-0.parity-polkadot-parachains.parity.io/tcp/443/wss/p2p/12D3KooWApa2JW4rbLtgzuK7fjLMupLS9HZheX9cdkQKyu6AnGrP", "/dns/statemint-connect-uw1-1.parity-polkadot-parachains.parity.io/tcp/30334/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV", - "/dns/statemint-connect-uw1-1.parity-polkadot-parachains.parity.io/tcp/443/wss/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV" + "/dns/statemint-connect-uw1-1.parity-polkadot-parachains.parity.io/tcp/443/wss/p2p/12D3KooWRsVeHqRs2iKmjLiguxp8myL4G2mDAWhtX2jHwyWujseV", + "/dns/boot.stake.plus/tcp/35333/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", + "/dns/boot.stake.plus/tcp/35334/wss/p2p/12D3KooWFrQjYaPZSSLLxEVmoaHFcrF6VoY4awG4KRSLaqy3JCdQ", + "/dns/boot.metaspan.io/tcp/16052/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", + "/dns/boot.metaspan.io/tcp/16056/wss/p2p/12D3KooWLwiJuvqQUB4kYaSjLenFKH9dWZhGZ4qi7pSb3sUYU651", + "/dns/boot-dot-statemint-cr.gatotech.network/tcp/31315/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", + "/dns/boot-dot-statemint-cr.gatotech.network/tcp/31415/ws/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", + "/dns/boot-dot-statemint-cr.gatotech.network/tcp/31515/wss/p2p/12D3KooWKgwQfAeDoJARdtxFNNWfbYmcu6s4yUuSifnNoDgzHZgm", + "/dns/statemint-bootnode.turboflakes.io/tcp/30315/p2p/12D3KooWL8CyLww3m3pRySQGGYGNJhWDMqko3j5xi67ckP7hDUvo", + "/dns/statemint-bootnode.turboflakes.io/tcp/30415/wss/p2p/12D3KooWL8CyLww3m3pRySQGGYGNJhWDMqko3j5xi67ckP7hDUvo", + "/dns/boot-node.helikon.io/tcp/10220/p2p/12D3KooW9uybhguhDjVJc3U3kgZC3i8rWmAnSpbnJkmuR7C6ZsRW", + "/dns/boot-node.helikon.io/tcp/10222/wss/p2p/12D3KooW9uybhguhDjVJc3U3kgZC3i8rWmAnSpbnJkmuR7C6ZsRW", + "/dns/statemint.bootnode.amforc.com/tcp/30341/p2p/12D3KooWByohP9FXn7ao8syS167qJsbFdpa7fY2Y24xbKtt3r7Ls", + "/dns/statemint.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWByohP9FXn7ao8syS167qJsbFdpa7fY2Y24xbKtt3r7Ls" ], "telemetryEndpoints": null, "protocolId": null, @@ -45,4 +58,4 @@ "childrenDefault": {} } } -} +} \ No newline at end of file diff --git a/parachains/chain-specs/westmint.json b/parachains/chain-specs/westmint.json index 4e0af339388..3516fbfaa56 100644 --- a/parachains/chain-specs/westmint.json +++ b/parachains/chain-specs/westmint.json @@ -3,11 +3,24 @@ "id": "westmint", "chainType": "Live", "bootNodes": [ - "/ip4/35.204.21.205/tcp/30334/p2p/12D3KooWLjaXWhNTSiRVFbTJCKLRWt9XXHLGVnAFtxvnExKkVPqn", - "/ip4/34.141.171.170/tcp/30334/p2p/12D3KooWBNy2Jdrjv2P7sdfb1mzH1AGzwjip5rW4N2Ft1T3Hdq5c", - "/ip4/34.141.221.252/tcp/30334/p2p/12D3KooWC9YYdjQLwxTNVda6t4nmjAZG37gaRZLNi4Zuhr9xUveW", - "/ip4/34.90.92.174/tcp/30334/p2p/12D3KooWQcXpUyVqwC2zJkwECCC7ttLCUCLTjnbGxTVfhSgmH2sD" - ], + "/ip4/35.204.21.205/tcp/30334/p2p/12D3KooWLjaXWhNTSiRVFbTJCKLRWt9XXHLGVnAFtxvnExKkVPqn", + "/ip4/34.141.171.170/tcp/30334/p2p/12D3KooWBNy2Jdrjv2P7sdfb1mzH1AGzwjip5rW4N2Ft1T3Hdq5c", + "/ip4/34.141.221.252/tcp/30334/p2p/12D3KooWC9YYdjQLwxTNVda6t4nmjAZG37gaRZLNi4Zuhr9xUveW", + "/ip4/34.90.92.174/tcp/30334/p2p/12D3KooWQcXpUyVqwC2zJkwECCC7ttLCUCLTjnbGxTVfhSgmH2sD", + "/dns/boot.stake.plus/tcp/33333/p2p/12D3KooWNiB27rpXX7EYongoWWUeRKzLQxWGms6MQU2B9LX7Ztzo", + "/dns/boot.stake.plus/tcp/33334/wss/p2p/12D3KooWNiB27rpXX7EYongoWWUeRKzLQxWGms6MQU2B9LX7Ztzo", + "/dns/boot.metaspan.io/tcp/36052/p2p/12D3KooWBCqfNb6Y39DXTr4UBWXyjuS3hcZM1qTbHhDXxF6HkAJJ", + "/dns/boot.metaspan.io/tcp/36056/wss/p2p/12D3KooWBCqfNb6Y39DXTr4UBWXyjuS3hcZM1qTbHhDXxF6HkAJJ", + "/dns/boot-wnd-westmint-cr.gatotech.network/tcp/31335/p2p/12D3KooWMSW6hr8KcNBhGFN1bg8kYC76o67PnuDEbxRhxacW6dui", + "/dns/boot-wnd-westmint-cr.gatotech.network/tcp/31435/ws/p2p/12D3KooWMSW6hr8KcNBhGFN1bg8kYC76o67PnuDEbxRhxacW6dui", + "/dns/boot-wnd-westmint-cr.gatotech.network/tcp/31535/wss/p2p/12D3KooWMSW6hr8KcNBhGFN1bg8kYC76o67PnuDEbxRhxacW6dui", + "/dns/westmint-bootnode.turboflakes.io/tcp/30325/p2p/12D3KooWHU4qqSyqKdbXdrCTMXUJxxueaZjqpqSaQqYiFPw6XqEx", + "/dns/westmint-bootnode.turboflakes.io/tcp/30425/wss/p2p/12D3KooWHU4qqSyqKdbXdrCTMXUJxxueaZjqpqSaQqYiFPw6XqEx", + "/dns/boot-node.helikon.io/tcp/10200/p2p/12D3KooWMRY8wb7rMT81LLuivvsy6ahUxKHQgYJw4zm1hC1uYLxb", + "/dns/boot-node.helikon.io/tcp/10202/wss/p2p/12D3KooWMRY8wb7rMT81LLuivvsy6ahUxKHQgYJw4zm1hC1uYLxb", + "/dns/westmint.bootnode.amforc.com/tcp/30339/p2p/12D3KooWNjKeaANaeZxBAPctmx8jugSYzuw4vnSCJmEDPB5mtRd6", + "/dns/westmint.bootnode.amforc.com/tcp/30333/wss/p2p/12D3KooWNjKeaANaeZxBAPctmx8jugSYzuw4vnSCJmEDPB5mtRd6" + ], "telemetryEndpoints": null, "protocolId": null, "relay_chain": "westend", @@ -36,4 +49,4 @@ "childrenDefault": {} } } -} +} \ No newline at end of file diff --git a/parachains/common/Cargo.toml b/parachains/common/Cargo.toml index 379281434fd..a0dba3b4444 100644 --- a/parachains/common/Cargo.toml +++ b/parachains/common/Cargo.toml @@ -13,33 +13,34 @@ codec = { package = "parity-scale-codec", version = "3.0.0", features = ["derive scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus pallet-collator-selection = { path = "../../pallets/collator-selection", default-features = false } cumulus-primitives-utility = { path = "../../primitives/utility", default-features = false } [dev-dependencies] -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = ["std"] diff --git a/parachains/common/src/impls.rs b/parachains/common/src/impls.rs index 80c3015b47a..0ce2a186ed3 100644 --- a/parachains/common/src/impls.rs +++ b/parachains/common/src/impls.rs @@ -18,13 +18,12 @@ use frame_support::traits::{ fungibles::{self, Balanced, CreditOf}, - Contains, Currency, Get, Imbalance, OnUnbalanced, + Contains, ContainsPair, Currency, Get, Imbalance, OnUnbalanced, }; use pallet_asset_tx_payment::HandleCredit; use sp_runtime::traits::Zero; use sp_std::marker::PhantomData; use xcm::latest::{AssetId, Fungibility::Fungible, MultiAsset, MultiLocation}; -use xcm_executor::traits::FilterAssetLocation; /// Type alias to conveniently refer to the `Currency::NegativeImbalance` associated type. pub type NegativeImbalance = as Currency< @@ -39,8 +38,7 @@ pub struct ToStakingPot(PhantomData); impl OnUnbalanced> for ToStakingPot where R: pallet_balances::Config + pallet_collator_selection::Config, - AccountIdOf: - From + Into, + AccountIdOf: From + Into, ::RuntimeEvent: From>, { fn on_nonzero_unbalanced(amount: NegativeImbalance) { @@ -55,8 +53,7 @@ pub struct DealWithFees(PhantomData); impl OnUnbalanced> for DealWithFees where R: pallet_balances::Config + pallet_collator_selection::Config, - AccountIdOf: - From + Into, + AccountIdOf: From + Into, ::RuntimeEvent: From>, { fn on_unbalanceds(mut fees_then_tips: impl Iterator>) { @@ -71,17 +68,17 @@ where /// A `HandleCredit` implementation that naively transfers the fees to the block author. /// Will drop and burn the assets in case the transfer fails. -pub struct AssetsToBlockAuthor(PhantomData); -impl HandleCredit, pallet_assets::Pallet> for AssetsToBlockAuthor +pub struct AssetsToBlockAuthor(PhantomData<(R, I)>); +impl HandleCredit, pallet_assets::Pallet> for AssetsToBlockAuthor where - R: pallet_authorship::Config + pallet_assets::Config, - AccountIdOf: - From + Into, + I: 'static, + R: pallet_authorship::Config + pallet_assets::Config, + AccountIdOf: From + Into, { - fn handle_credit(credit: CreditOf, pallet_assets::Pallet>) { + fn handle_credit(credit: CreditOf, pallet_assets::Pallet>) { 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); } } } @@ -100,8 +97,8 @@ where /// Asset filter that allows all assets from a certain location. pub struct AssetsFrom(PhantomData); -impl> FilterAssetLocation for AssetsFrom { - fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl> ContainsPair for AssetsFrom { + fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { let loc = T::get(); &loc == origin && matches!(asset, MultiAsset { id: AssetId::Concrete(asset_loc), fun: Fungible(_a) } @@ -119,7 +116,7 @@ mod tests { }; use frame_system::{limits, EnsureRoot}; use pallet_collator_selection::IdentityCollator; - use polkadot_primitives::v2::AccountId; + use polkadot_primitives::AccountId; use sp_core::H256; use sp_runtime::{ testing::Header, @@ -231,8 +228,6 @@ mod tests { impl pallet_authorship::Config for Test { type FindAuthor = OneAuthor; - type UncleGenerations = (); - type FilterUncle = (); type EventHandler = (); } @@ -270,12 +265,9 @@ mod tests { .clone() .pushed_with_interior(GeneralIndex(42)) .expect("multilocation will only have 2 junctions; qed"); - let asset = MultiAsset { id: Concrete(asset_location), fun: 1_000_000.into() }; + let asset = MultiAsset { id: Concrete(asset_location), fun: 1_000_000u128.into() }; assert!( - AssetsFrom::::filter_asset_location( - &asset, - &SomeSiblingParachain::get() - ), + AssetsFrom::::contains(&asset, &SomeSiblingParachain::get()), "AssetsFrom should allow assets from any of its interior locations" ); } diff --git a/parachains/common/src/lib.rs b/parachains/common/src/lib.rs index afc2a1cb9ce..8ac464ea077 100644 --- a/parachains/common/src/lib.rs +++ b/parachains/common/src/lib.rs @@ -62,7 +62,7 @@ mod types { pub type StatemintAuraId = sp_consensus_aura::ed25519::AuthorityId; // Id used for identifying assets. - pub type AssetId = u32; + pub type AssetIdForTrustBackedAssets = u32; } /// Common constants of parachains. @@ -94,7 +94,7 @@ mod constants { /// We allow for 0.5 seconds of compute with a 6 second average block time. pub const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - polkadot_primitives::v2::MAX_POV_SIZE as u64, + polkadot_primitives::MAX_POV_SIZE as u64, ); } diff --git a/parachains/common/src/xcm_config.rs b/parachains/common/src/xcm_config.rs index 57061963173..753aa97c6fe 100644 --- a/parachains/common/src/xcm_config.rs +++ b/parachains/common/src/xcm_config.rs @@ -1,13 +1,13 @@ use crate::impls::AccountIdOf; -use core::marker::PhantomData; +use core::{marker::PhantomData, ops::ControlFlow}; use frame_support::{ log, - traits::{fungibles::Inspect, tokens::BalanceConversion}, + traits::{fungibles::Inspect, tokens::BalanceConversion, ContainsPair}, weights::{Weight, WeightToFee, WeightToFeePolynomial}, }; use sp_runtime::traits::Get; -use xcm::latest::{prelude::*, Weight as XCMWeight}; -use xcm_executor::traits::{FilterAssetLocation, ShouldExecute}; +use xcm::{latest::prelude::*, CreateMatcher, MatchXcm}; +use xcm_executor::traits::ShouldExecute; //TODO: move DenyThenTry to polkadot's xcm module. /// Deny executing the XCM if it matches any of the Deny filter regardless of anything else. @@ -24,9 +24,9 @@ where { fn should_execute( origin: &MultiLocation, - message: &mut Xcm, - max_weight: XCMWeight, - weight_credit: &mut XCMWeight, + message: &mut [Instruction], + max_weight: Weight, + weight_credit: &mut Weight, ) -> Result<(), ()> { Deny::should_execute(origin, message, max_weight, weight_credit)?; Allow::should_execute(origin, message, max_weight, weight_credit) @@ -38,36 +38,42 @@ pub struct DenyReserveTransferToRelayChain; impl ShouldExecute for DenyReserveTransferToRelayChain { fn should_execute( origin: &MultiLocation, - message: &mut Xcm, - _max_weight: XCMWeight, - _weight_credit: &mut XCMWeight, + message: &mut [Instruction], + _max_weight: Weight, + _weight_credit: &mut Weight, ) -> Result<(), ()> { - if message.0.iter().any(|inst| { - matches!( - inst, + message.matcher().match_next_inst_while( + |_| true, + |inst| match inst { InitiateReserveWithdraw { reserve: MultiLocation { parents: 1, interior: Here }, .. - } | DepositReserveAsset { dest: MultiLocation { parents: 1, interior: Here }, .. } | - TransferReserveAsset { - dest: MultiLocation { parents: 1, interior: Here }, - .. - } - ) - }) { - return Err(()) // Deny - } + } | + DepositReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, .. + } | + TransferReserveAsset { + dest: MultiLocation { parents: 1, interior: Here }, .. + } => { + Err(()) // Deny + }, + + // An unexpected reserve transfer has arrived from the Relay Chain. Generally, + // `IsReserve` should not allow this, but we just log it here. + ReserveAssetDeposited { .. } + if matches!(origin, MultiLocation { parents: 1, interior: Here }) => + { + log::warn!( + target: "xcm::barrier", + "Unexpected ReserveAssetDeposited from the Relay Chain", + ); + Ok(ControlFlow::Continue(())) + }, + + _ => Ok(ControlFlow::Continue(())), + }, + )?; - // An unexpected reserve transfer has arrived from the Relay Chain. Generally, `IsReserve` - // should not allow this, but we just log it here. - if matches!(origin, MultiLocation { parents: 1, interior: Here }) && - message.0.iter().any(|inst| matches!(inst, ReserveAssetDeposited { .. })) - { - log::warn!( - target: "xcm::barriers", - "Unexpected ReserveAssetDeposited from the Relay Chain", - ); - } // Permit everything else Ok(()) } @@ -76,30 +82,37 @@ impl ShouldExecute for DenyReserveTransferToRelayChain { /// A `ChargeFeeInFungibles` implementation that converts the output of /// a given WeightToFee implementation an amount charged in /// a particular assetId from pallet-assets -pub struct AssetFeeAsExistentialDepositMultiplier( - PhantomData<(Runtime, WeightToFee, BalanceConverter)>, -); -impl +pub struct AssetFeeAsExistentialDepositMultiplier< + Runtime, + WeightToFee, + BalanceConverter, + AssetInstance: 'static, +>(PhantomData<(Runtime, WeightToFee, BalanceConverter, AssetInstance)>); +impl cumulus_primitives_utility::ChargeWeightInFungibles< AccountIdOf, - pallet_assets::Pallet, - > for AssetFeeAsExistentialDepositMultiplier + pallet_assets::Pallet, + > for AssetFeeAsExistentialDepositMultiplier where - Runtime: pallet_assets::Config, + Runtime: pallet_assets::Config, WeightToFee: WeightToFeePolynomial, BalanceConverter: BalanceConversion< CurrencyBalance, - ::AssetId, - ::Balance, + >::AssetId, + >::Balance, >, AccountIdOf: - From + Into, + From + Into, { fn charge_weight_in_fungibles( - asset_id: as Inspect>>::AssetId, + asset_id: as Inspect< + AccountIdOf, + >>::AssetId, weight: Weight, - ) -> Result< as Inspect>>::Balance, XcmError> - { + ) -> Result< + as Inspect>>::Balance, + XcmError, + > { let amount = WeightToFee::weight_to_fee(&weight); // If the amount gotten is not at least the ED, then make it be the ED of the asset // This is to avoid burning assets and decreasing the supply @@ -111,8 +124,10 @@ where /// Accepts an asset if it is a native asset from a particular `MultiLocation`. pub struct ConcreteNativeAssetFrom(PhantomData); -impl> FilterAssetLocation for ConcreteNativeAssetFrom { - fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl> ContainsPair + for ConcreteNativeAssetFrom +{ + fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { log::trace!(target: "xcm::filter_asset_location", "ConcreteNativeAsset asset: {:?}, origin: {:?}, location: {:?}", asset, origin, Location::get()); diff --git a/parachains/integration-tests/collectives/0_xcm/1_teleport.yml b/parachains/integration-tests/collectives/0_xcm/1_teleport.yml index a12f8f4c3a6..cedd08438ad 100644 --- a/parachains/integration-tests/collectives/0_xcm/1_teleport.yml +++ b/parachains/integration-tests/collectives/0_xcm/1_teleport.yml @@ -7,28 +7,40 @@ settings: wsPort: 9710 paraId: &cp_id 1001 variables: - xcm_version: &xcm_version '2' weight_to_send_teleport: &weight_to_send_teleport 2,000,000,000 # must be same for both chains weight_to_receive_teleport: &weight_to_receive_teleport 4,000,000,000 # must be same for both chains - chains: - accounts: - alice_signer: &alice_signer //Alice - alice_account32: &alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' - alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' + accounts: + alice_signer: &acc_alice_signer //Alice + alice_account32: &acc_alice_acc32 '0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d' + alice_ss58: &acc_alice_ss58 '15oF4uVJwmo4TdGW7VfQxNLavjCXviqxT9S1MgbjMNHr6Sp5' tests: - - name: Teleport assets from Relay Chain to Collectives Parachain successful + - name: Teleport assets from Relay Chain to Collectives Parachain successful. + before: + - name: Get the Alice balances on Relay & Collectives Chains. + actions: + - queries: + balance_rc_alice_1: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + balance_cp_alice_1: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] its: - name: Teleport assets from Relay Chain to Collectives Parachain actions: - extrinsics: - chain: *relay_chain - signer: *alice_signer + signer: *acc_alice_signer pallet: xcmPallet call: teleportAssets args: [ { v1: { 0, interior: { x1: { parachain: *cp_id }}}}, # destination - { v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *alice_acc32 }}}}}, # beneficiary + { v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *acc_alice_acc32 }}}}}, # beneficiary { v1: [ # { @@ -53,15 +65,6 @@ tests: xcmOutcome: Complete # the weight must be static value: *weight_to_send_teleport - - name: balances.Deposit - chain: *collectives_parachain - attributes: - - type: u128 - # TODO (P2) - # Flaky assert since sent assets used to pay a fee - # query and assert Alice balance before and after teleport (see example in kick_member test) - # drop this event assert - value: 19,999,953,648,988 # amount received - name: dmpQueue.ExecutedDownward chain: *collectives_parachain attributes: @@ -69,17 +72,49 @@ tests: xcmOutcome: Complete # the weight must be static value: *weight_to_receive_teleport + - queries: + balance_rc_alice_2: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + balance_cp_alice_2: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + - name: Alice deposit check, balance decreased on Relay Chain, increased on Collectives. + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_rc_alice_1, + after: $balance_rc_alice_2, + } + } + ] + balanceIncreased: + args: [ + { + balances: { + before: $balance_cp_alice_1, + after: $balance_cp_alice_2, + } + } + ] - name: Teleport assets from Collectives Parachain to Relay Chain successful actions: - extrinsics: - chain: *collectives_parachain - signer: *alice_signer + signer: *acc_alice_signer pallet: polkadotXcm call: teleportAssets args: [ { v1: { parents: 1, interior: { here: true }}}, # destination - { v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *alice_acc32 }}}}}, # beneficiary + { v1: { parents: 0, interior: { x1: { accountId32: { network: { any: true }, id: *acc_alice_acc32 }}}}}, # beneficiary { v1: [ { @@ -90,9 +125,7 @@ tests: }, # assets 0, # feeAssetItem ] - events: - # TODO assert balance.Deposit event on relay chain - # not possible now / issue - https://github.com/paritytech/parachains-integration-tests/issues/58 + events: - name: balances.Withdraw attributes: - type: AccountId32 @@ -120,7 +153,38 @@ tests: xcmOutcome: Complete # the weight must be static value: *weight_to_receive_teleport + - queries: + balance_rc_alice_3: + chain: *relay_chain + pallet: system + call: account + args: [ *acc_alice_acc32 ] + balance_cp_alice_3: + chain: *collectives_parachain + pallet: system + call: account + args: [ *acc_alice_acc32 ] - # TODO (P2) assert Alice balance before and after teleport (see example in kick_member test) - - #TODO (P1) test: teleport of non relay chain assets fails \ No newline at end of file + - name: Alice deposit check, balance decreased on Collectives, increased on Relay Chain. + actions: + - asserts: + balanceDecreased: + args: [ + { + balances: { + before: $balance_cp_alice_2, + after: $balance_cp_alice_3, + } + } + ] + balanceIncreased: + args: [ + { + balances: { + before: $balance_rc_alice_2, + after: $balance_rc_alice_3, + } + } + ] +# TODO (P2) assert Alice balance before and after teleport (see example in kick_member test) +# TODO (P1) test: teleport of non relay chain assets fails diff --git a/parachains/integration-tests/collectives/1_alliance/1_init_alliance.yml b/parachains/integration-tests/collectives/1_alliance/1_init_alliance.yml index 152cf0c9803..2891d01ca02 100644 --- a/parachains/integration-tests/collectives/1_alliance/1_init_alliance.yml +++ b/parachains/integration-tests/collectives/1_alliance/1_init_alliance.yml @@ -33,9 +33,7 @@ settings: [ *acc_liam_acc32, *acc_olivia_acc32, - *acc_noah_acc32 - ], - [ + *acc_noah_acc32, *acc_emma_acc32, *acc_james_acc32, *acc_ava_acc32 @@ -58,7 +56,6 @@ settings: *acc_ava_acc32, *acc_mia_acc32 ], - [], [] ] disband: @@ -67,7 +64,7 @@ settings: call: disband args: [ { - votingMembers: 6, + fellowMembers: 6, allyMembers: 1 } ] @@ -185,7 +182,7 @@ tests: chain: *collectives_parachain attributes: - type: u32 - key: votingMembers + key: fellowMembers value: 6 - type: u32 key: allyMembers diff --git a/parachains/integration-tests/collectives/1_alliance/3_kick_member.yml b/parachains/integration-tests/collectives/1_alliance/3_kick_member.yml index 2384aa55a2a..6283bacfdb9 100644 --- a/parachains/integration-tests/collectives/1_alliance/3_kick_member.yml +++ b/parachains/integration-tests/collectives/1_alliance/3_kick_member.yml @@ -10,6 +10,7 @@ settings: init_teleport_amount: &init_teleport_amount 20000000000000 # 20_000_000_000_000 weight_to_send_teleport: &weight_to_send_teleport 2,000,000,000 # must be same for both chains weight_to_receive_teleport: &weight_to_receive_teleport 4,000,000,000 # must be same for both chains + weight_to_receive_transact: &weight_to_receive_transact 3,000,000,000 # must be same for both chains accounts: alice_signer: &acc_alice_signer //Alice treasury_account32: &acc_treasury_acc32 '0x6d6f646c70792f74727372790000000000000000000000000000000000000000' @@ -134,7 +135,7 @@ tests: { Transact: { originType: Superuser, - requireWeightAtMost: 1000000000, + requireWeightAtMost: 2000000000, call: $alliance_kick_member } } @@ -159,7 +160,7 @@ tests: - type: XcmV2TraitsOutcome xcmOutcome: Complete # must be static - value: *weight_to_send_teleport + value: *weight_to_receive_transact - queries: balance_rc_treasury_after: diff --git a/parachains/pallets/parachain-info/Cargo.toml b/parachains/pallets/parachain-info/Cargo.toml index 1aa9540f048..f4b214f8288 100644 --- a/parachains/pallets/parachain-info/Cargo.toml +++ b/parachains/pallets/parachain-info/Cargo.toml @@ -8,8 +8,8 @@ version = "0.1.0" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } cumulus-primitives-core = { path = "../../../primitives/core", default-features = false } @@ -22,4 +22,4 @@ std = [ "frame-support/std", "frame-system/std", ] -try-runtime = ["frame-support/try-runtime", "frame-system/try-runtime"] +try-runtime = ["frame-support/try-runtime"] diff --git a/parachains/pallets/parachain-info/src/lib.rs b/parachains/pallets/parachain-info/src/lib.rs index 9cb20c9f1e6..d61387aaeb6 100644 --- a/parachains/pallets/parachain-info/src/lib.rs +++ b/parachains/pallets/parachain-info/src/lib.rs @@ -27,7 +27,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); #[pallet::config] diff --git a/parachains/pallets/ping/Cargo.toml b/parachains/pallets/ping/Cargo.toml index 56a7f451e22..b2bed9f12ec 100644 --- a/parachains/pallets/ping/Cargo.toml +++ b/parachains/pallets/ping/Cargo.toml @@ -8,12 +8,12 @@ version = "0.1.0" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } cumulus-primitives-core = { path = "../../../primitives/core", default-features = false } cumulus-pallet-xcm = { path = "../../../pallets/xcm", default-features = false } diff --git a/parachains/pallets/ping/src/lib.rs b/parachains/pallets/ping/src/lib.rs index 099f45eeee7..956457f5916 100644 --- a/parachains/pallets/ping/src/lib.rs +++ b/parachains/pallets/ping/src/lib.rs @@ -40,7 +40,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); /// The module configuration trait. @@ -78,9 +77,9 @@ pub mod pallet { #[pallet::event] #[pallet::generate_deposit(pub(super) fn deposit_event)] pub enum Event { - PingSent(ParaId, u32, Vec), + PingSent(ParaId, u32, Vec, XcmHash, MultiAssets), Pinged(ParaId, u32, Vec), - PongSent(ParaId, u32, Vec), + PongSent(ParaId, u32, Vec, XcmHash, MultiAssets), Ponged(ParaId, u32, Vec, T::BlockNumber), ErrorSendingPing(SendError, ParaId, u32, Vec), ErrorSendingPong(SendError, ParaId, u32, Vec), @@ -103,11 +102,11 @@ pub mod pallet { *seq += 1; *seq }); - match T::XcmSender::send_xcm( - (1, Junction::Parachain(para.into())), + match send_xcm::( + (Parent, Junction::Parachain(para.into())).into(), Xcm(vec![Transact { - origin_type: OriginKind::Native, - require_weight_at_most: 1_000, + origin_kind: OriginKind::Native, + require_weight_at_most: Weight::from_parts(1_000, 1_000), call: ::RuntimeCall::from(Call::::ping { seq, payload: payload.clone().to_vec(), @@ -116,9 +115,15 @@ pub mod pallet { .into(), }]), ) { - Ok(()) => { + Ok((hash, cost)) => { Pings::::insert(seq, n); - Self::deposit_event(Event::PingSent(para, seq, payload.to_vec())); + Self::deposit_event(Event::PingSent( + para, + seq, + payload.to_vec(), + hash, + cost, + )); }, Err(e) => { Self::deposit_event(Event::ErrorSendingPing( @@ -198,11 +203,11 @@ pub mod pallet { let para = ensure_sibling_para(::RuntimeOrigin::from(origin))?; Self::deposit_event(Event::Pinged(para, seq, payload.clone())); - match T::XcmSender::send_xcm( - (1, Junction::Parachain(para.into())), + match send_xcm::( + (Parent, Junction::Parachain(para.into())).into(), Xcm(vec![Transact { - origin_type: OriginKind::Native, - require_weight_at_most: 1_000, + origin_kind: OriginKind::Native, + require_weight_at_most: Weight::from_parts(1_000, 1_000), call: ::RuntimeCall::from(Call::::pong { seq, payload: payload.clone(), @@ -211,7 +216,8 @@ pub mod pallet { .into(), }]), ) { - Ok(()) => Self::deposit_event(Event::PongSent(para, seq, payload)), + Ok((hash, cost)) => + Self::deposit_event(Event::PongSent(para, seq, payload, hash, cost)), Err(e) => Self::deposit_event(Event::ErrorSendingPong(e, para, seq, payload)), } Ok(()) diff --git a/parachains/runtimes/assets/common/Cargo.toml b/parachains/runtimes/assets/common/Cargo.toml new file mode 100644 index 00000000000..b3eb83ffe7d --- /dev/null +++ b/parachains/runtimes/assets/common/Cargo.toml @@ -0,0 +1,38 @@ +[package] +name = "assets-common" +version = "0.1.0" +authors = ["Parity Technologies "] +edition = "2021" +description = "Assets common utilities" + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } + +# Substrate +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } + +# Polkadot +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } + +# Cumulus +parachains-common = { path = "../../../common", default-features = false } + +[build-dependencies] +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } + +[features] +default = [ "std" ] +std = [ + "codec/std", + "frame-support/std", + "parachains-common/std", + "sp-api/std", + "sp-std/std", + "xcm/std", + "xcm-builder/std", + "xcm-executor/std", +] diff --git a/parachains/runtimes/assets/common/src/fungible_conversion.rs b/parachains/runtimes/assets/common/src/fungible_conversion.rs new file mode 100644 index 00000000000..2b8413cfe6e --- /dev/null +++ b/parachains/runtimes/assets/common/src/fungible_conversion.rs @@ -0,0 +1,136 @@ +// This file is part of Substrate. + +// Copyright (C) 2018-2022 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: GPL-3.0-or-later WITH Classpath-exception-2.0 + +// This program is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with this program. If not, see . + +//! Runtime API definition for assets. + +use crate::runtime_api::FungiblesAccessError; +use sp_std::{borrow::Borrow, vec::Vec}; +use xcm::latest::{MultiAsset, MultiLocation}; +use xcm_builder::ConvertedConcreteId; +use xcm_executor::traits::{Convert, MatchesFungibles}; + +/// Converting any [`(AssetId, Balance)`] to [`MultiAsset`] +pub trait MultiAssetConverter: + MatchesFungibles +where + AssetId: Clone, + Balance: Clone, + ConvertAssetId: Convert, + ConvertBalance: Convert, +{ + fn convert_ref( + value: impl Borrow<(AssetId, Balance)>, + ) -> Result; +} + +impl< + AssetId: Clone, + Balance: Clone, + ConvertAssetId: Convert, + ConvertBalance: Convert, + > MultiAssetConverter + for ConvertedConcreteId +{ + fn convert_ref( + value: impl Borrow<(AssetId, Balance)>, + ) -> Result { + let (asset_id, balance) = value.borrow(); + match ConvertAssetId::reverse_ref(asset_id) { + Ok(asset_id_as_multilocation) => match ConvertBalance::reverse_ref(balance) { + Ok(amount) => Ok((asset_id_as_multilocation, amount).into()), + Err(_) => Err(FungiblesAccessError::AmountToBalanceConversionFailed), + }, + Err(_) => Err(FungiblesAccessError::AssetIdConversionFailed), + } + } +} + +/// Helper function to convert collections with [`(AssetId, Balance)`] to [`MultiAsset`] +pub fn convert<'a, AssetId, Balance, ConvertAssetId, ConvertBalance, Converter>( + items: impl Iterator, +) -> Result, FungiblesAccessError> +where + AssetId: Clone + 'a, + Balance: Clone + 'a, + ConvertAssetId: Convert, + ConvertBalance: Convert, + Converter: MultiAssetConverter, +{ + items.map(Converter::convert_ref).collect() +} + +/// Helper function to convert `Balance` with MultiLocation` to `MultiAsset` +pub fn convert_balance< + T: frame_support::pallet_prelude::Get, + Balance: TryInto, +>( + balance: Balance, +) -> Result { + match balance.try_into() { + Ok(balance) => Ok((T::get(), balance).into()), + Err(_) => Err(FungiblesAccessError::AmountToBalanceConversionFailed), + } +} + +#[cfg(test)] +mod tests { + use super::*; + + use xcm::latest::prelude::*; + use xcm_executor::traits::{Identity, JustTry}; + + type Converter = ConvertedConcreteId; + + #[test] + fn converted_concrete_id_fungible_multi_asset_conversion_roundtrip_works() { + let location = MultiLocation::new(0, X1(GlobalConsensus(ByGenesis([0; 32])))); + let amount = 123456_u64; + let expected_multi_asset = MultiAsset { + id: Concrete(MultiLocation::new(0, X1(GlobalConsensus(ByGenesis([0; 32]))))), + fun: Fungible(123456_u128), + }; + + assert_eq!( + Converter::matches_fungibles(&expected_multi_asset).map_err(|_| ()), + Ok((location, amount)) + ); + + assert_eq!(Converter::convert_ref((location, amount)), Ok(expected_multi_asset)); + } + + #[test] + fn converted_concrete_id_fungible_multi_asset_conversion_collection_works() { + let data = vec![ + (MultiLocation::new(0, X1(GlobalConsensus(ByGenesis([0; 32])))), 123456_u64), + (MultiLocation::new(1, X1(GlobalConsensus(ByGenesis([1; 32])))), 654321_u64), + ]; + + let expected_data = vec![ + MultiAsset { + id: Concrete(MultiLocation::new(0, X1(GlobalConsensus(ByGenesis([0; 32]))))), + fun: Fungible(123456_u128), + }, + MultiAsset { + id: Concrete(MultiLocation::new(1, X1(GlobalConsensus(ByGenesis([1; 32]))))), + fun: Fungible(654321_u128), + }, + ]; + + assert_eq!(convert::<_, _, _, _, Converter>(data.iter()), Ok(expected_data)); + } +} diff --git a/parachains/runtimes/assets/common/src/lib.rs b/parachains/runtimes/assets/common/src/lib.rs new file mode 100644 index 00000000000..28d8ca59106 --- /dev/null +++ b/parachains/runtimes/assets/common/src/lib.rs @@ -0,0 +1,70 @@ +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +#![cfg_attr(not(feature = "std"), no_std)] + +pub mod fungible_conversion; +pub mod runtime_api; + +use parachains_common::AssetIdForTrustBackedAssets; +use xcm_builder::{AsPrefixedGeneralIndex, ConvertedConcreteId}; +use xcm_executor::traits::JustTry; + +/// `MultiLocation` vs `AssetIdForTrustBackedAssets` converter for `TrustBackedAssets` +pub type AssetIdForTrustBackedAssetsConvert = + AsPrefixedGeneralIndex; + +/// [`ConvertedConcreteId`] converter dedicated for `TrustBackedAssets` +pub type TrustBackedAssetsConvertedConcreteId = + ConvertedConcreteId< + AssetIdForTrustBackedAssets, + Balance, + AssetIdForTrustBackedAssetsConvert, + JustTry, + >; + +#[cfg(test)] +mod tests { + + use super::*; + use xcm::latest::prelude::*; + use xcm_executor::traits::Convert; + + frame_support::parameter_types! { + pub TrustBackedAssetsPalletLocation: MultiLocation = MultiLocation::new(5, X1(PalletInstance(13))); + } + + #[test] + fn asset_id_for_trust_backed_assets_convert_works() { + let local_asset_id = 123456789 as AssetIdForTrustBackedAssets; + let expected_reverse_ref = + MultiLocation::new(5, X2(PalletInstance(13), GeneralIndex(local_asset_id.into()))); + + assert_eq!( + AssetIdForTrustBackedAssetsConvert::::reverse_ref( + local_asset_id + ) + .unwrap(), + expected_reverse_ref + ); + assert_eq!( + AssetIdForTrustBackedAssetsConvert::::convert_ref( + expected_reverse_ref + ) + .unwrap(), + local_asset_id + ); + } +} diff --git a/parachains/runtimes/assets/common/src/runtime_api.rs b/parachains/runtimes/assets/common/src/runtime_api.rs new file mode 100644 index 00000000000..6d060f22687 --- /dev/null +++ b/parachains/runtimes/assets/common/src/runtime_api.rs @@ -0,0 +1,41 @@ +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Runtime API definition for fungibles. + +use codec::{Codec, Decode, Encode}; +use frame_support::RuntimeDebug; +use sp_std::vec::Vec; +use xcm::latest::MultiAsset; + +/// The possible errors that can happen querying the storage of assets. +#[derive(Eq, PartialEq, Encode, Decode, RuntimeDebug)] +pub enum FungiblesAccessError { + /// `MultiLocation` to `AssetId`/`ClassId` conversion failed. + AssetIdConversionFailed, + /// `u128` amount to currency `Balance` conversion failed. + AmountToBalanceConversionFailed, +} + +sp_api::decl_runtime_apis! { + /// The API for querying account's balances from runtime. + pub trait FungiblesApi + where + AccountId: Codec, + { + /// Returns the list of all [`MultiAsset`] that an `AccountId` has. + fn query_account_balances(account: AccountId) -> Result, FungiblesAccessError>; + } +} diff --git a/parachains/runtimes/assets/statemine/Cargo.toml b/parachains/runtimes/assets/statemine/Cargo.toml index 0b3b710f50c..c60aa768ed9 100644 --- a/parachains/runtimes/assets/statemine/Cargo.toml +++ b/parachains/runtimes/assets/statemine/Cargo.toml @@ -13,50 +13,52 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" smallvec = "1.10.0" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-uniques = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-state-trie-migration = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-nfts = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-nfts-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-uniques = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-state-trie-migration = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -kusama-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } - +kusama-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -71,14 +73,13 @@ cumulus-primitives-utility = { path = "../../../../primitives/utility", default- pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } -pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.36" } - +assets-common = { path = "../common", default-features = false } [dev-dependencies] asset-test-utils = { path = "../test-utils"} [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] @@ -98,6 +99,7 @@ runtime-benchmarks = [ "pallet-assets/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-uniques/runtime-benchmarks", @@ -127,6 +129,7 @@ try-runtime = [ "pallet-balances/try-runtime", "pallet-collator-selection/try-runtime", "pallet-multisig/try-runtime", + "pallet-nfts/try-runtime", "pallet-proxy/try-runtime", "pallet-session/try-runtime", "pallet-timestamp/try-runtime", @@ -152,6 +155,8 @@ std = [ "pallet-authorship/std", "pallet-balances/std", "pallet-multisig/std", + "pallet-nfts/std", + "pallet-nfts-runtime-api/std", "pallet-proxy/std", "pallet-session/std", "pallet-state-trie-migration/std", @@ -189,5 +194,6 @@ std = [ "pallet-collator-selection/std", "parachain-info/std", "parachains-common/std", - "mangata-support/std" + "mangata-support/std", + "assets-common/std", ] diff --git a/parachains/runtimes/assets/statemine/src/lib.rs b/parachains/runtimes/assets/statemine/src/lib.rs index 74765f0f26c..b42117375b2 100644 --- a/parachains/runtimes/assets/statemine/src/lib.rs +++ b/parachains/runtimes/assets/statemine/src/lib.rs @@ -34,7 +34,7 @@ use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto}, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; @@ -58,19 +58,21 @@ use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, EnsureSigned, }; +use pallet_nfts::PalletFeatures; pub use parachains_common as common; use parachains_common::{ impls::{AssetsToBlockAuthor, DealWithFees}, - opaque, AccountId, AssetId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature, - AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, + opaque, AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, BlockNumber, Hash, Header, + Index, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, }; -use xcm_config::{KsmLocation, XcmConfig}; +use xcm_config::{KsmLocation, TrustBackedAssetsConvertedConcreteId, XcmConfig}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; // Polkadot imports -use pallet_xcm::{EnsureXcm, IsMajorityOfBody}; +use pallet_xcm::{EnsureXcm, IsMajorityOfBody, IsVoiceOfBody}; use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; use xcm::latest::BodyId; use xcm_executor::XcmExecutor; @@ -89,10 +91,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("statemine"), impl_name: create_runtime_str!("statemine"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 11, + transaction_version: 13, state_version: 1, }; @@ -102,10 +104,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("statemine"), impl_name: create_runtime_str!("statemine"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 11, + transaction_version: 13, state_version: 0, }; @@ -178,8 +180,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -232,11 +232,16 @@ parameter_types! { pub type AssetsForceOrigin = EitherOfDiverse, EnsureXcm>>; -impl pallet_assets::Config for Runtime { +// Called "Trust Backed" assets because these are generally registered by some account, and users of +// the asset assume it has some claimed backing. The pallet is called `Assets` in +// `construct_runtime` to avoid breaking changes on storage reads. +pub type TrustBackedAssetsInstance = pallet_assets::Instance1; +type TrustBackedAssetsCall = pallet_assets::Call; +impl pallet_assets::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = Balance; - type AssetId = AssetId; - type AssetIdParameter = codec::Compact; + type AssetId = AssetIdForTrustBackedAssets; + type AssetIdParameter = codec::Compact; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = AssetsForceOrigin; @@ -248,6 +253,7 @@ impl pallet_assets::Config for Runtime { type Freezer = (); type Extra = (); type WeightInfo = weights::pallet_assets::WeightInfo; + type CallbackHandle = (); type AssetAccountDeposit = AssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; #[cfg(feature = "runtime-benchmarks")] @@ -334,6 +340,7 @@ impl InstanceFilter for ProxyType { c, RuntimeCall::Balances { .. } | RuntimeCall::Assets { .. } | + RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } ), ProxyType::CancelProxy => matches!( @@ -348,20 +355,27 @@ impl InstanceFilter for ProxyType { RuntimeCall::Assets { .. } | RuntimeCall::Utility { .. } | RuntimeCall::Multisig { .. } | - RuntimeCall::Uniques { .. } + RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } ) }, ProxyType::AssetOwner => matches!( c, - RuntimeCall::Assets(pallet_assets::Call::create { .. }) | - RuntimeCall::Assets(pallet_assets::Call::start_destroy { .. }) | - RuntimeCall::Assets(pallet_assets::Call::destroy_accounts { .. }) | - RuntimeCall::Assets(pallet_assets::Call::destroy_approvals { .. }) | - RuntimeCall::Assets(pallet_assets::Call::finish_destroy { .. }) | - RuntimeCall::Assets(pallet_assets::Call::transfer_ownership { .. }) | - RuntimeCall::Assets(pallet_assets::Call::set_team { .. }) | - RuntimeCall::Assets(pallet_assets::Call::set_metadata { .. }) | - RuntimeCall::Assets(pallet_assets::Call::clear_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::create { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::destroy { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::redeposit { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::transfer_ownership { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_team { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_max_supply { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_collection { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | @@ -378,12 +392,23 @@ impl InstanceFilter for ProxyType { ), ProxyType::AssetManager => matches!( c, - RuntimeCall::Assets(pallet_assets::Call::mint { .. }) | - RuntimeCall::Assets(pallet_assets::Call::burn { .. }) | - RuntimeCall::Assets(pallet_assets::Call::freeze { .. }) | - RuntimeCall::Assets(pallet_assets::Call::thaw { .. }) | - RuntimeCall::Assets(pallet_assets::Call::freeze_asset { .. }) | - RuntimeCall::Assets(pallet_assets::Call::thaw_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::force_mint { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::update_mint_settings { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::mint_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_attributes_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::unlock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_properties { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_collection_metadata { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | @@ -464,6 +489,11 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} +parameter_types! { + // Fellows pluralistic body. + pub const FellowsBodyId: BodyId = BodyId::Technical; +} + impl cumulus_pallet_xcmp_queue::Config for Runtime { type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; @@ -473,10 +503,14 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ExecuteOverweightOrigin = EnsureRoot; type ControllerOrigin = EitherOfDiverse< EnsureRoot, - EnsureXcm>, + EnsureXcm<( + IsMajorityOfBody, + IsVoiceOfBody, + )>, >; type ControllerOriginConverter = xcm_config::XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -517,11 +551,18 @@ parameter_types! { pub const MinCandidates: u32 = 5; pub const SessionLength: BlockNumber = 6 * HOURS; pub const MaxInvulnerables: u32 = 100; + // StakingAdmin pluralistic body. + pub const StakingAdminBodyId: BodyId = BodyId::Defense; } -/// We allow root and the Relay Chain council to execute privileged collator selection operations. -pub type CollatorSelectionUpdateOrigin = - EitherOfDiverse, EnsureXcm>>; +/// We allow root, the Relay Chain council and the StakingAdmin to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = EitherOfDiverse< + EnsureRoot, + EnsureXcm<( + IsMajorityOfBody, + IsVoiceOfBody, + )>, +>; impl pallet_collator_selection::Config for Runtime { type RuntimeEvent = RuntimeEvent; @@ -543,20 +584,22 @@ impl pallet_asset_tx_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Fungibles = Assets; type OnChargeAssetTransaction = pallet_asset_tx_payment::FungiblesAdapter< - pallet_assets::BalanceToAssetBalance, - AssetsToBlockAuthor, + pallet_assets::BalanceToAssetBalance< + Balances, + Runtime, + ConvertInto, + TrustBackedAssetsInstance, + >, + AssetsToBlockAuthor, >; } parameter_types! { - pub const CollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create asset class - pub const ItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to create asset instance - pub const KeyLimit: u32 = 32; // Max 32 bytes per key - pub const ValueLimit: u32 = 64; // Max 64 bytes per value + pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection + pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); - pub const AttributeDepositBase: Balance = deposit(1, 0); - pub const DepositPerByte: Balance = deposit(0, 1); - pub const UniquesStringLimit: u32 = 128; + pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); + pub const UniquesDepositPerByte: Balance = deposit(0, 1); } impl pallet_uniques::Config for Runtime { @@ -565,14 +608,14 @@ impl pallet_uniques::Config for Runtime { type ItemId = u32; type Currency = Balances; type ForceOrigin = AssetsForceOrigin; - type CollectionDeposit = CollectionDeposit; - type ItemDeposit = ItemDeposit; + type CollectionDeposit = UniquesCollectionDeposit; + type ItemDeposit = UniquesItemDeposit; type MetadataDepositBase = UniquesMetadataDepositBase; - type AttributeDepositBase = AttributeDepositBase; - type DepositPerByte = DepositPerByte; - type StringLimit = UniquesStringLimit; - type KeyLimit = KeyLimit; - type ValueLimit = ValueLimit; + type AttributeDepositBase = UniquesAttributeDepositBase; + type DepositPerByte = UniquesDepositPerByte; + type StringLimit = ConstU32<128>; + type KeyLimit = ConstU32<32>; + type ValueLimit = ConstU32<64>; type WeightInfo = weights::pallet_uniques::WeightInfo; #[cfg(feature = "runtime-benchmarks")] type Helper = (); @@ -580,6 +623,46 @@ impl pallet_uniques::Config for Runtime { type Locker = (); } +parameter_types! { + pub NftsPalletFeatures: PalletFeatures = PalletFeatures::all_enabled(); + pub const NftsMaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; + // re-use the Uniques deposits + pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); + pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); + pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); + pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); + pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); +} + +impl pallet_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + type Locker = (); + type CollectionDeposit = NftsCollectionDeposit; + type ItemDeposit = NftsItemDeposit; + type MetadataDepositBase = NftsMetadataDepositBase; + type AttributeDepositBase = NftsAttributeDepositBase; + type DepositPerByte = NftsDepositPerByte; + type StringLimit = ConstU32<256>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<256>; + type ApprovalsLimit = ConstU32<20>; + type ItemAttributesApprovalsLimit = ConstU32<30>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = NftsMaxDeadlineDuration; + type MaxAttributesPerCall = ConstU32<10>; + type Features = NftsPalletFeatures; + type OffchainSignature = Signature; + type OffchainPublic = ::Signer; + type WeightInfo = weights::pallet_nfts::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime where @@ -602,7 +685,7 @@ construct_runtime!( AssetTxPayment: pallet_asset_tx_payment::{Pallet, Event} = 12, // Collator support. the order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -620,8 +703,9 @@ construct_runtime!( Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, // The main stage. - Assets: pallet_assets::{Pallet, Call, Storage, Event} = 50, + Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, + Nfts: pallet_nfts::{Pallet, Call, Storage, Event} = 52, #[cfg(feature = "state-trie-version-1")] StateTrieMigration: pallet_state_trie_migration = 70, @@ -652,6 +736,8 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; +/// Migrations to apply on runtime upgrade. +pub type Migrations = (); /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -660,7 +746,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - pallet_balances::migration::MigrateToTrackInactive, + Migrations, >; #[cfg(feature = "runtime-benchmarks")] @@ -674,6 +760,7 @@ mod benches { [pallet_assets, Assets] [pallet_balances, Balances] [pallet_multisig, Multisig] + [pallet_nfts, Nfts] [pallet_proxy, Proxy] [pallet_session, SessionBench::] [pallet_uniques, Uniques] @@ -682,6 +769,7 @@ mod benches { [pallet_collator_selection, CollatorSelection] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM + [pallet_xcm, PolkadotXcm] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -787,6 +875,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -804,6 +898,40 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl assets_common::runtime_api::FungiblesApi< + Block, + AccountId, + > for Runtime + { + fn query_account_balances(account: AccountId) -> Result, assets_common::runtime_api::FungiblesAccessError> { + use assets_common::fungible_conversion::{convert, convert_balance}; + Ok([ + // collect pallet_balance + { + let balance = Balances::free_balance(account.clone()); + if balance > 0 { + vec![convert_balance::(balance)?] + } else { + vec![] + } + }, + // collect pallet_assets (TrustBackedAssets) + convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( + Assets::account_balances(account) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect ... e.g. pallet_assets ForeignAssets + ].concat()) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -814,7 +942,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } @@ -868,7 +996,7 @@ impl_runtime_apis! { impl cumulus_pallet_session_benchmarking::Config for Runtime {} use xcm::latest::prelude::*; - use xcm_config::KsmLocation; + use xcm_config::{KsmLocation, MaxAssetsIntoHolding}; use pallet_xcm_benchmarks::asset_instance_from; impl pallet_xcm_benchmarks::Config for Runtime { @@ -877,12 +1005,12 @@ impl_runtime_apis! { fn valid_destination() -> Result { Ok(KsmLocation::get()) } - fn worst_case_holding() -> MultiAssets { + fn worst_case_holding(depositable_count: u32) -> MultiAssets { // A mix of fungible, non-fungible, and concrete assets. - const HOLDING_FUNGIBLES: u32 = 100; - const HOLDING_NON_FUNGIBLES: u32 = 100; + let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; + let holding_fungibles = holding_non_fungibles.saturating_sub(1); let fungibles_amount: u128 = 100; - let mut assets = (0..HOLDING_FUNGIBLES) + let mut assets = (0..holding_fungibles) .map(|i| { MultiAsset { id: Concrete(GeneralIndex(i as u128).into()), @@ -891,17 +1019,17 @@ impl_runtime_apis! { .into() }) .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) - .chain((0..HOLDING_NON_FUNGIBLES).map(|i| MultiAsset { + .chain((0..holding_non_fungibles).map(|i| MultiAsset { id: Concrete(GeneralIndex(i as u128).into()), fun: NonFungible(asset_instance_from(i)), })) .collect::>(); - assets.push(MultiAsset{ - id: Concrete(KsmLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }); - assets.into() + assets.push(MultiAsset { + id: Concrete(KsmLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }); + assets.into() } } @@ -910,8 +1038,7 @@ impl_runtime_apis! { KsmLocation::get(), MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(KsmLocation::get()) }, )); - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - pub const CheckedAccount: Option = None; + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; } @@ -920,7 +1047,6 @@ impl_runtime_apis! { type CheckedAccount = CheckedAccount; type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; fn get_multi_asset() -> MultiAsset { MultiAsset { @@ -937,8 +1063,16 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } - fn transact_origin() -> Result { - Ok(KsmLocation::get()) + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((KsmLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } fn subscribe_origin() -> Result { @@ -951,6 +1085,10 @@ impl_runtime_apis! { let ticket = MultiLocation { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } } type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; diff --git a/parachains/runtimes/assets/statemine/src/weights/block_weights.rs b/parachains/runtimes/assets/statemine/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/assets/statemine/src/weights/block_weights.rs +++ b/parachains/runtimes/assets/statemine/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/assets/statemine/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/assets/statemine/src/weights/cumulus_pallet_xcmp_queue.rs index e69a6c0db72..5cad45cc0b0 100644 --- a/parachains/runtimes/assets/statemine/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/parachains/runtimes/assets/statemine/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,17 +47,27 @@ use sp_std::marker::PhantomData; /// Weight functions for `cumulus_pallet_xcmp_queue`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { - // Minimum execution time: 6_844 nanoseconds. - Weight::from_ref_time(7_122_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_483_000 picoseconds. + Weight::from_parts(5_808_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { - // Minimum execution time: 6_960 nanoseconds. - Weight::from_ref_time(7_173_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_773_000 picoseconds. + Weight::from_parts(5_913_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemine/src/weights/extrinsic_weights.rs b/parachains/runtimes/assets/statemine/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/assets/statemine/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/assets/statemine/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/assets/statemine/src/weights/frame_system.rs b/parachains/runtimes/assets/statemine/src/weights/frame_system.rs index 692c08bf4fd..4f0967e636d 100644 --- a/parachains/runtimes/assets/statemine/src/weights/frame_system.rs +++ b/parachains/runtimes/assets/statemine/src/weights/frame_system.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -48,51 +49,82 @@ pub struct WeightInfo(PhantomData); impl frame_system::WeightInfo for WeightInfo { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { - // Minimum execution time: 3_919 nanoseconds. - Weight::from_ref_time(3_976_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_146_000 picoseconds. + Weight::from_parts(2_194_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(411).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(368, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - // Minimum execution time: 13_679 nanoseconds. - Weight::from_ref_time(13_807_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_732_000 picoseconds. + Weight::from_parts(8_001_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_770).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_403, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 8_917 nanoseconds. - Weight::from_ref_time(9_108_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_287_000 picoseconds. + Weight::from_parts(4_602_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - // Minimum execution time: 4_078 nanoseconds. - Weight::from_ref_time(4_134_000) - // Standard Error: 2_191 - .saturating_add(Weight::from_ref_time(624_841).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_319_000 picoseconds. + Weight::from_parts(2_401_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_933 + .saturating_add(Weight::from_parts(669_111, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - // Minimum execution time: 4_078 nanoseconds. - Weight::from_ref_time(4_149_000) - // Standard Error: 965 - .saturating_add(Weight::from_ref_time(446_865).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_381_000 picoseconds. + Weight::from_parts(2_405_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 779 + .saturating_add(Weight::from_parts(492_780, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - // Minimum execution time: 5_538 nanoseconds. - Weight::from_ref_time(5_728_000) - // Standard Error: 1_272 - .saturating_add(Weight::from_ref_time(972_809).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `84 + p * (69 ±0)` + // Estimated: `75 + p * (70 ±0)` + // Minimum execution time: 4_204_000 picoseconds. + Weight::from_parts(4_269_000, 0) + .saturating_add(Weight::from_parts(0, 75)) + // Standard Error: 1_101 + .saturating_add(Weight::from_parts(1_014_807, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/assets/statemine/src/weights/mod.rs b/parachains/runtimes/assets/statemine/src/weights/mod.rs index 080584f2cfa..92af360ced1 100644 --- a/parachains/runtimes/assets/statemine/src/weights/mod.rs +++ b/parachains/runtimes/assets/statemine/src/weights/mod.rs @@ -6,11 +6,13 @@ pub mod pallet_assets; pub mod pallet_balances; pub mod pallet_collator_selection; pub mod pallet_multisig; +pub mod pallet_nfts; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; pub mod pallet_uniques; pub mod pallet_utility; +pub mod pallet_xcm; pub mod paritydb_weights; pub mod rocksdb_weights; pub mod xcm; diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_assets.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_assets.rs index bba9223a8b4..94957ff84fa 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_assets.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_assets.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_assets` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,230 +47,398 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { - // Storage: Assets Asset (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn create() -> Weight { - // Minimum execution time: 27_691 nanoseconds. - Weight::from_ref_time(28_210_000) + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `7268` + // Minimum execution time: 24_493_000 picoseconds. + Weight::from_parts(24_993_000, 0) + .saturating_add(Weight::from_parts(0, 7268)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn force_create() -> Weight { - // Minimum execution time: 17_264 nanoseconds. - Weight::from_ref_time(17_619_000) + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3675` + // Minimum execution time: 12_605_000 picoseconds. + Weight::from_parts(12_888_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn start_destroy() -> Weight { - // Minimum execution time: 19_150 nanoseconds. - Weight::from_ref_time(19_455_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 14_917_000 picoseconds. + Weight::from_parts(15_146_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:0) - // Storage: System Account (r:20 w:20) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1001 w:1000) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1000 w:1000) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { - // Minimum execution time: 21_644 nanoseconds. - Weight::from_ref_time(21_898_000) - // Standard Error: 12_994 - .saturating_add(Weight::from_ref_time(13_266_487).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `8232 + c * (5180 ±0)` + // Minimum execution time: 17_844_000 picoseconds. + Weight::from_parts(18_064_000, 0) + .saturating_add(Weight::from_parts(0, 8232)) + // Standard Error: 6_979 + .saturating_add(Weight::from_parts(12_064_749, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 5180).saturating_mul(c.into())) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1001 w:1000) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { - // Minimum execution time: 22_442 nanoseconds. - Weight::from_ref_time(22_797_000) - // Standard Error: 7_559 - .saturating_add(Weight::from_ref_time(12_882_952).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `414 + a * (86 ±0)` + // Estimated: `7288 + a * (2623 ±0)` + // Minimum execution time: 18_402_000 picoseconds. + Weight::from_parts(18_742_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) + // Standard Error: 5_332 + .saturating_add(Weight::from_parts(12_085_212, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Metadata (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:0) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn finish_destroy() -> Weight { - // Minimum execution time: 18_408 nanoseconds. - Weight::from_ref_time(18_637_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 14_390_000 picoseconds. + Weight::from_parts(14_903_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn mint() -> Weight { - // Minimum execution time: 30_558 nanoseconds. - Weight::from_ref_time(30_935_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7242` + // Minimum execution time: 26_171_000 picoseconds. + Weight::from_parts(26_478_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn burn() -> Weight { - // Minimum execution time: 36_672 nanoseconds. - Weight::from_ref_time(37_548_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 31_291_000 picoseconds. + Weight::from_parts(31_810_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 47_322 nanoseconds. - Weight::from_ref_time(48_016_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 42_608_000 picoseconds. + Weight::from_parts(43_553_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 39_627 nanoseconds. - Weight::from_ref_time(40_353_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 37_541_000 picoseconds. + Weight::from_parts(38_166_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 47_666 nanoseconds. - Weight::from_ref_time(48_207_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 42_931_000 picoseconds. + Weight::from_parts(43_458_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn freeze() -> Weight { - // Minimum execution time: 22_165 nanoseconds. - Weight::from_ref_time(22_493_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 17_652_000 picoseconds. + Weight::from_parts(18_018_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn thaw() -> Weight { - // Minimum execution time: 21_889 nanoseconds. - Weight::from_ref_time(22_283_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 17_510_000 picoseconds. + Weight::from_parts(17_911_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn freeze_asset() -> Weight { - // Minimum execution time: 18_560 nanoseconds. - Weight::from_ref_time(18_874_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_954_000 picoseconds. + Weight::from_parts(14_284_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn thaw_asset() -> Weight { - // Minimum execution time: 18_383 nanoseconds. - Weight::from_ref_time(18_917_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 14_216_000 picoseconds. + Weight::from_parts(14_459_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Metadata (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:0) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn transfer_ownership() -> Weight { - // Minimum execution time: 19_271 nanoseconds. - Weight::from_ref_time(19_631_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 15_550_000 picoseconds. + Weight::from_parts(16_001_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn set_team() -> Weight { - // Minimum execution time: 18_180 nanoseconds. - Weight::from_ref_time(18_517_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 14_389_000 picoseconds. + Weight::from_parts(14_677_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn set_metadata(_n: u32, s: u32, ) -> Weight { - // Minimum execution time: 30_142 nanoseconds. - Weight::from_ref_time(31_374_698) - // Standard Error: 703 - .saturating_add(Weight::from_ref_time(4_165).saturating_mul(s.into())) + fn set_metadata(_n: u32, _s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 25_401_000 picoseconds. + Weight::from_parts(27_056_833, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn clear_metadata() -> Weight { - // Minimum execution time: 31_646 nanoseconds. - Weight::from_ref_time(32_234_000) + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `7280` + // Minimum execution time: 26_001_000 picoseconds. + Weight::from_parts(26_493_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn force_set_metadata(_n: u32, s: u32, ) -> Weight { - // Minimum execution time: 18_874 nanoseconds. - Weight::from_ref_time(19_642_290) - // Standard Error: 436 - .saturating_add(Weight::from_ref_time(649).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `7280` + // Minimum execution time: 13_988_000 picoseconds. + Weight::from_parts(14_751_106, 0) + .saturating_add(Weight::from_parts(0, 7280)) + // Standard Error: 381 + .saturating_add(Weight::from_parts(2_884, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn force_clear_metadata() -> Weight { - // Minimum execution time: 31_720 nanoseconds. - Weight::from_ref_time(32_217_000) + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `7280` + // Minimum execution time: 25_837_000 picoseconds. + Weight::from_parts(26_110_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn force_asset_status() -> Weight { - // Minimum execution time: 17_817 nanoseconds. - Weight::from_ref_time(18_124_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_423_000 picoseconds. + Weight::from_parts(13_565_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn approve_transfer() -> Weight { - // Minimum execution time: 33_692 nanoseconds. - Weight::from_ref_time(34_846_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `7288` + // Minimum execution time: 29_285_000 picoseconds. + Weight::from_parts(29_727_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_approved() -> Weight { - // Minimum execution time: 61_857 nanoseconds. - Weight::from_ref_time(62_636_000) + // Proof Size summary in bytes: + // Measured: `521` + // Estimated: `17025` + // Minimum execution time: 58_369_000 picoseconds. + Weight::from_parts(58_844_000, 0) + .saturating_add(Weight::from_parts(0, 17025)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn cancel_approval() -> Weight { - // Minimum execution time: 36_218 nanoseconds. - Weight::from_ref_time(36_559_000) + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `7288` + // Minimum execution time: 31_073_000 picoseconds. + Weight::from_parts(31_536_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn force_cancel_approval() -> Weight { - // Minimum execution time: 36_905 nanoseconds. - Weight::from_ref_time(37_500_000) + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `7288` + // Minimum execution time: 32_182_000 picoseconds. + Weight::from_parts(32_625_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 14_610_000 picoseconds. + Weight::from_parts(14_895_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_balances.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_balances.rs index 102a715bd94..ed33ba28df6 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_balances.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_balances.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,52 +47,87 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_balances`. pub struct WeightInfo(PhantomData); impl pallet_balances::WeightInfo for WeightInfo { - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 41_318 nanoseconds. - Weight::from_ref_time(41_955_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 34_132_000 picoseconds. + Weight::from_parts(34_669_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 31_411 nanoseconds. - Weight::from_ref_time(32_017_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 25_052_000 picoseconds. + Weight::from_parts(25_681_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - // Minimum execution time: 22_832 nanoseconds. - Weight::from_ref_time(23_419_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 15_072_000 picoseconds. + Weight::from_parts(15_451_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - // Minimum execution time: 26_415 nanoseconds. - Weight::from_ref_time(26_818_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 18_416_000 picoseconds. + Weight::from_parts(18_742_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:2 w:2) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 41_662 nanoseconds. - Weight::from_ref_time(42_609_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 36_626_000 picoseconds. + Weight::from_parts(37_176_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - // Minimum execution time: 37_061 nanoseconds. - Weight::from_ref_time(37_705_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 31_008_000 picoseconds. + Weight::from_parts(31_562_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - // Minimum execution time: 20_666 nanoseconds. - Weight::from_ref_time(20_929_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 14_214_000 picoseconds. + Weight::from_parts(14_535_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_collator_selection.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_collator_selection.rs index a0b38bbc784..6165f030031 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_collator_selection.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_collator_selection.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,79 +47,131 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) /// The range of component `b` is `[1, 100]`. fn set_invulnerables(b: u32, ) -> Weight { - // Minimum execution time: 21_009 nanoseconds. - Weight::from_ref_time(22_782_519) - // Standard Error: 3_817 - .saturating_add(Weight::from_ref_time(2_244_637).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `178 + b * (78 ±0)` + // Estimated: `1168 + b * (2554 ±0)` + // Minimum execution time: 15_415_000 picoseconds. + Weight::from_parts(15_521_960, 0) + .saturating_add(Weight::from_parts(0, 1168)) + // Standard Error: 3_294 + .saturating_add(Weight::from_parts(2_582_035, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_desired_candidates() -> Weight { - // Minimum execution time: 13_625 nanoseconds. - Weight::from_ref_time(14_070_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_363_000 picoseconds. + Weight::from_parts(7_715_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 13_691 nanoseconds. - Weight::from_ref_time(14_032_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_516_000 picoseconds. + Weight::from_parts(7_860_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[1, 999]`. fn register_as_candidate(c: u32, ) -> Weight { - // Minimum execution time: 44_294 nanoseconds. - Weight::from_ref_time(41_574_350) - // Standard Error: 1_029 - .saturating_add(Weight::from_ref_time(132_223).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `1108 + c * (48 ±0)` + // Estimated: `61671 + c * (49 ±0)` + // Minimum execution time: 38_063_000 picoseconds. + Weight::from_parts(30_924_306, 0) + .saturating_add(Weight::from_parts(0, 61671)) + // Standard Error: 1_232 + .saturating_add(Weight::from_parts(106_039, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[6, 1000]`. fn leave_intent(c: u32, ) -> Weight { - // Minimum execution time: 34_163 nanoseconds. - Weight::from_ref_time(28_470_095) - // Standard Error: 1_039 - .saturating_add(Weight::from_ref_time(126_663).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `452 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 29_598_000 picoseconds. + Weight::from_parts(19_372_924, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_253 + .saturating_add(Weight::from_parts(106_394, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:2 w:2) - // Storage: System BlockWeight (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) fn note_author() -> Weight { - // Minimum execution time: 30_143 nanoseconds. - Weight::from_ref_time(30_631_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `7729` + // Minimum execution time: 28_647_000 picoseconds. + Weight::from_parts(28_951_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:1000 w:1) - // Storage: System Account (r:1 w:1) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: System BlockWeight (r:1 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:995 w:995) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `r` is `[1, 1000]`. /// The range of component `c` is `[1, 1000]`. - fn new_session(_r: u32, c: u32, ) -> Weight { - // Minimum execution time: 19_764 nanoseconds. - Weight::from_ref_time(20_011_000) - // Standard Error: 764_093 - .saturating_add(Weight::from_ref_time(27_541_884).saturating_mul(c.into())) + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22721 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + c * (2520 ±0) + r * (2602 ±0)` + // Minimum execution time: 17_043_000 picoseconds. + Weight::from_parts(17_352_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 798_735 + .saturating_add(Weight::from_parts(28_961_284, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2602).saturating_mul(r.into())) } } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_multisig.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_multisig.rs index d7d91dbf220..2e5f4b322f0 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_multisig.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_multisig.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,21 +17,23 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// ./artifacts/polkadot-parachain // benchmark // pallet // --chain=statemine-dev // --execution=wasm // --wasm-execution=compiled // --pallet=pallet_multisig -// --extrinsic= +// --extrinsic=* // --steps=50 // --repeat=20 +// --json // --header=./file_header.txt // --output=./parachains/runtimes/assets/statemine/src/weights/pallet_multisig.rs @@ -47,80 +49,113 @@ pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - // Minimum execution time: 15_740 nanoseconds. - Weight::from_ref_time(16_192_901) - // Standard Error: 2 - .saturating_add(Weight::from_ref_time(592).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_992_000 picoseconds. + Weight::from_parts(12_412_280, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3 + .saturating_add(Weight::from_parts(503, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 43_792 nanoseconds. - Weight::from_ref_time(36_530_624) - // Standard Error: 859 - .saturating_add(Weight::from_ref_time(86_126).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_ref_time(1_599).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `262 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 37_343_000 picoseconds. + Weight::from_parts(31_041_082, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 579 + .saturating_add(Weight::from_parts(68_564, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_253, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 34_402 nanoseconds. - Weight::from_ref_time(27_199_438) - // Standard Error: 533 - .saturating_add(Weight::from_ref_time(80_893).saturating_mul(s.into())) - // Standard Error: 5 - .saturating_add(Weight::from_ref_time(1_609).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 27_702_000 picoseconds. + Weight::from_parts(22_324_758, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 382 + .saturating_add(Weight::from_parts(59_647, 0).saturating_mul(s.into())) + // Standard Error: 3 + .saturating_add(Weight::from_parts(1_199, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 48_203 nanoseconds. - Weight::from_ref_time(39_327_294) - // Standard Error: 972 - .saturating_add(Weight::from_ref_time(102_451).saturating_mul(s.into())) - // Standard Error: 9 - .saturating_add(Weight::from_ref_time(1_620).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `385 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 42_944_000 picoseconds. + Weight::from_parts(35_467_441, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 600 + .saturating_add(Weight::from_parts(80_406, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_220, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - // Minimum execution time: 32_000 nanoseconds. - Weight::from_ref_time(35_051_831) - // Standard Error: 997 - .saturating_add(Weight::from_ref_time(90_076).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 27_997_000 picoseconds. + Weight::from_parts(30_250_714, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 709 + .saturating_add(Weight::from_parts(67_226, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - // Minimum execution time: 23_262 nanoseconds. - Weight::from_ref_time(25_347_876) - // Standard Error: 839 - .saturating_add(Weight::from_ref_time(88_662).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 19_821_000 picoseconds. + Weight::from_parts(20_670_152, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 470 + .saturating_add(Weight::from_parts(65_289, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - // Minimum execution time: 32_913 nanoseconds. - Weight::from_ref_time(35_087_663) - // Standard Error: 871 - .saturating_add(Weight::from_ref_time(91_420).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 28_820_000 picoseconds. + Weight::from_parts(31_182_331, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 874 + .saturating_add(Weight::from_parts(68_617, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_nfts.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_nfts.rs new file mode 100644 index 00000000000..8c4425114b1 --- /dev/null +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_nfts.rs @@ -0,0 +1,764 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_nfts` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=statemine-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_nfts +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/statemine/src/weights/pallet_nfts.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_nfts`. +pub struct WeightInfo(PhantomData); +impl pallet_nfts::WeightInfo for WeightInfo { + /// Storage: Nfts NextCollectionId (r:1 w:1) + /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:0 w:1) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:1) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `5038` + // Minimum execution time: 34_100_000 picoseconds. + Weight::from_parts(34_649_000, 0) + .saturating_add(Weight::from_parts(0, 5038)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts NextCollectionId (r:1 w:1) + /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:0 w:1) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:1) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `5038` + // Minimum execution time: 22_415_000 picoseconds. + Weight::from_parts(22_808_000, 0) + .saturating_add(Weight::from_parts(0, 5038)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:0) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:1) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1001 w:1000) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1000 w:1000) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts CollectionMetadataOf (r:0 w:1) + /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(294), added: 2769, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:1) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// The range of component `m` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy(m: u32, _c: u32, a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32170 + a * (366 ±0)` + // Estimated: `2538829 + a * (2954 ±0)` + // Minimum execution time: 978_514_000 picoseconds. + Weight::from_parts(915_478_956, 0) + .saturating_add(Weight::from_parts(0, 2538829)) + // Standard Error: 4_368 + .saturating_add(Weight::from_parts(3_621, 0).saturating_mul(m.into())) + // Standard Error: 4_368 + .saturating_add(Weight::from_parts(5_742_436, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(1004)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1005)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) + } + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `421` + // Estimated: `18460` + // Minimum execution time: 44_509_000 picoseconds. + Weight::from_parts(45_090_000, 0) + .saturating_add(Weight::from_parts(0, 18460)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + fn force_mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `421` + // Estimated: `18460` + // Minimum execution time: 43_761_000 picoseconds. + Weight::from_parts(44_304_000, 0) + .saturating_add(Weight::from_parts(0, 18460)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:0) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:0 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `530` + // Estimated: `15200` + // Minimum execution time: 45_215_000 picoseconds. + Weight::from_parts(46_367_000, 0) + .saturating_add(Weight::from_parts(0, 15200)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:2) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `14926` + // Minimum execution time: 35_381_000 picoseconds. + Weight::from_parts(35_896_000, 0) + .saturating_add(Weight::from_parts(0, 14926)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:5000 w:5000) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 5000]`. + fn redeposit(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `729 + i * (108 ±0)` + // Estimated: `8077 + i * (3336 ±0)` + // Minimum execution time: 16_621_000 picoseconds. + Weight::from_parts(16_839_000, 0) + .saturating_add(Weight::from_parts(0, 8077)) + // Standard Error: 13_184 + .saturating_add(Weight::from_parts(13_274_447, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn lock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `7047` + // Minimum execution time: 20_314_000 picoseconds. + Weight::from_parts(20_726_000, 0) + .saturating_add(Weight::from_parts(0, 7047)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn unlock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `7047` + // Minimum execution time: 20_178_000 picoseconds. + Weight::from_parts(20_565_000, 0) + .saturating_add(Weight::from_parts(0, 7047)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn lock_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `7087` + // Minimum execution time: 17_142_000 picoseconds. + Weight::from_parts(18_191_000, 0) + .saturating_add(Weight::from_parts(0, 7087)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts OwnershipAcceptance (r:1 w:1) + /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:2) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `354` + // Estimated: `7066` + // Minimum execution time: 22_902_000 picoseconds. + Weight::from_parts(23_495_000, 0) + .saturating_add(Weight::from_parts(0, 7066)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:2 w:4) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `335` + // Estimated: `9627` + // Minimum execution time: 41_436_000 picoseconds. + Weight::from_parts(41_922_000, 0) + .saturating_add(Weight::from_parts(0, 9627)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:2) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn force_collection_owner() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3549` + // Minimum execution time: 19_015_000 picoseconds. + Weight::from_parts(19_490_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn force_collection_config() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3549` + // Minimum execution time: 15_532_000 picoseconds. + Weight::from_parts(15_827_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn lock_item_properties() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `7047` + // Minimum execution time: 21_022_000 picoseconds. + Weight::from_parts(21_289_000, 0) + .saturating_add(Weight::from_parts(0, 7047)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1 w:1) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + fn set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `18078` + // Minimum execution time: 47_283_000 picoseconds. + Weight::from_parts(47_793_000, 0) + .saturating_add(Weight::from_parts(0, 18078)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1 w:1) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + fn force_set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `310` + // Estimated: `7493` + // Minimum execution time: 27_462_000 picoseconds. + Weight::from_parts(27_798_000, 0) + .saturating_add(Weight::from_parts(0, 7493)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts Attribute (r:1 w:1) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + fn clear_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `949` + // Estimated: `14540` + // Minimum execution time: 44_392_000 picoseconds. + Weight::from_parts(44_956_000, 0) + .saturating_add(Weight::from_parts(0, 14540)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + fn approve_item_attributes() -> Weight { + // Proof Size summary in bytes: + // Measured: `347` + // Estimated: `8792` + // Minimum execution time: 18_619_000 picoseconds. + Weight::from_parts(18_970_000, 0) + .saturating_add(Weight::from_parts(0, 8792)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1001 w:1000) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 1000]`. + fn cancel_item_attributes_approval(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `726 + n * (398 ±0)` + // Estimated: `16329 + n * (2954 ±0)` + // Minimum execution time: 28_293_000 picoseconds. + Weight::from_parts(28_502_000, 0) + .saturating_add(Weight::from_parts(0, 16329)) + // Standard Error: 4_215 + .saturating_add(Weight::from_parts(5_601_603, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:1) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + fn set_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `17946` + // Minimum execution time: 39_371_000 picoseconds. + Weight::from_parts(39_852_000, 0) + .saturating_add(Weight::from_parts(0, 17946)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:1) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `815` + // Estimated: `14408` + // Minimum execution time: 37_535_000 picoseconds. + Weight::from_parts(38_894_000, 0) + .saturating_add(Weight::from_parts(0, 14408)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionMetadataOf (r:1 w:1) + /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(294), added: 2769, mode: MaxEncodedLen) + fn set_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `364` + // Estimated: `14380` + // Minimum execution time: 35_608_000 picoseconds. + Weight::from_parts(35_741_000, 0) + .saturating_add(Weight::from_parts(0, 14380)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionMetadataOf (r:1 w:1) + /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(294), added: 2769, mode: MaxEncodedLen) + fn clear_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `682` + // Estimated: `14380` + // Minimum execution time: 33_234_000 picoseconds. + Weight::from_parts(33_617_000, 0) + .saturating_add(Weight::from_parts(0, 14380)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `376` + // Estimated: `7864` + // Minimum execution time: 22_900_000 picoseconds. + Weight::from_parts(23_351_000, 0) + .saturating_add(Weight::from_parts(0, 7864)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `384` + // Estimated: `4326` + // Minimum execution time: 20_413_000 picoseconds. + Weight::from_parts(20_622_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + fn clear_all_transfer_approvals() -> Weight { + // Proof Size summary in bytes: + // Measured: `384` + // Estimated: `4326` + // Minimum execution time: 19_132_000 picoseconds. + Weight::from_parts(19_443_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts OwnershipAcceptance (r:1 w:1) + /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn set_accept_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 16_661_000 picoseconds. + Weight::from_parts(16_925_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionConfigOf (r:1 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + fn set_collection_max_supply() -> Weight { + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `7087` + // Minimum execution time: 19_575_000 picoseconds. + Weight::from_parts(19_826_000, 0) + .saturating_add(Weight::from_parts(0, 7087)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn update_mint_settings() -> Weight { + // Proof Size summary in bytes: + // Measured: `289` + // Estimated: `7072` + // Minimum execution time: 19_749_000 picoseconds. + Weight::from_parts(19_902_000, 0) + .saturating_add(Weight::from_parts(0, 7072)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + fn set_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `484` + // Estimated: `11377` + // Minimum execution time: 23_970_000 picoseconds. + Weight::from_parts(24_589_000, 0) + .saturating_add(Weight::from_parts(0, 11377)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:1 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:2) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn buy_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `671` + // Estimated: `18480` + // Minimum execution time: 43_929_000 picoseconds. + Weight::from_parts(44_364_000, 0) + .saturating_add(Weight::from_parts(0, 18480)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// The range of component `n` is `[0, 10]`. + fn pay_tips(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_611_000 picoseconds. + Weight::from_parts(4_292_527, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 9_304 + .saturating_add(Weight::from_parts(3_636_886, 0).saturating_mul(n.into())) + } + /// Storage: Nfts Item (r:2 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn create_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `460` + // Estimated: `7662` + // Minimum execution time: 22_643_000 picoseconds. + Weight::from_parts(22_957_000, 0) + .saturating_add(Weight::from_parts(0, 7662)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts PendingSwapOf (r:1 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + fn cancel_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `479` + // Estimated: `7862` + // Minimum execution time: 21_037_000 picoseconds. + Weight::from_parts(21_359_000, 0) + .saturating_add(Weight::from_parts(0, 7862)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:2 w:2) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:1 w:2) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:2 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:4) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:2) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + fn claim_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `800` + // Estimated: `24321` + // Minimum execution time: 72_434_000 picoseconds. + Weight::from_parts(73_184_000, 0) + .saturating_add(Weight::from_parts(0, 24321)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(10)) + } + /// Storage: Nfts CollectionRoleOf (r:2 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:10 w:10) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:1) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 10]`. + fn mint_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `524` + // Estimated: `29399 + n * (2954 ±0)` + // Minimum execution time: 125_554_000 picoseconds. + Weight::from_parts(129_631_978, 0) + .saturating_add(Weight::from_parts(0, 29399)) + // Standard Error: 20_858 + .saturating_add(Weight::from_parts(26_871_088, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:10 w:10) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 10]`. + fn set_attributes_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `554` + // Estimated: `20462 + n * (2954 ±0)` + // Minimum execution time: 76_170_000 picoseconds. + Weight::from_parts(85_697_599, 0) + .saturating_add(Weight::from_parts(0, 20462)) + // Standard Error: 51_480 + .saturating_add(Weight::from_parts(26_398_485, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } +} diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_proxy.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_proxy.rs index e3b43ac00e2..9e97e9e982d 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_proxy.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_proxy.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,121 +47,174 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_proxy`. pub struct WeightInfo(PhantomData); impl pallet_proxy::WeightInfo for WeightInfo { - // Storage: Proxy Proxies (r:1 w:0) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { - // Minimum execution time: 21_152 nanoseconds. - Weight::from_ref_time(23_050_659) - // Standard Error: 3_294 - .saturating_add(Weight::from_ref_time(18_228).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 16_846_000 picoseconds. + Weight::from_parts(17_545_125, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_168 + .saturating_add(Weight::from_parts(38_590, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 39_816 nanoseconds. - Weight::from_ref_time(39_405_608) - // Standard Error: 1_903 - .saturating_add(Weight::from_ref_time(134_468).saturating_mul(a.into())) - // Standard Error: 1_966 - .saturating_add(Weight::from_ref_time(53_275).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 35_646_000 picoseconds. + Weight::from_parts(35_944_816, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 1_868 + .saturating_add(Weight::from_parts(137_815, 0).saturating_mul(a.into())) + // Standard Error: 1_930 + .saturating_add(Weight::from_parts(38_331, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 27_523 nanoseconds. - Weight::from_ref_time(28_272_532) - // Standard Error: 1_376 - .saturating_add(Weight::from_ref_time(128_200).saturating_mul(a.into())) - // Standard Error: 1_422 - .saturating_add(Weight::from_ref_time(15_264).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 22_142_000 picoseconds. + Weight::from_parts(23_269_000, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_365 + .saturating_add(Weight::from_parts(140_747, 0).saturating_mul(a.into())) + // Standard Error: 1_411 + .saturating_add(Weight::from_parts(14_983, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 27_750 nanoseconds. - Weight::from_ref_time(28_644_306) - // Standard Error: 1_659 - .saturating_add(Weight::from_ref_time(119_508).saturating_mul(a.into())) - // Standard Error: 1_714 - .saturating_add(Weight::from_ref_time(16_971).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 22_465_000 picoseconds. + Weight::from_parts(23_366_335, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 4_348 + .saturating_add(Weight::from_parts(149_266, 0).saturating_mul(a.into())) + // Standard Error: 4_492 + .saturating_add(Weight::from_parts(10_411, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 35_983 nanoseconds. - Weight::from_ref_time(36_651_889) - // Standard Error: 2_166 - .saturating_add(Weight::from_ref_time(119_974).saturating_mul(a.into())) - // Standard Error: 2_238 - .saturating_add(Weight::from_ref_time(48_188).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 31_086_000 picoseconds. + Weight::from_parts(32_252_234, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 2_039 + .saturating_add(Weight::from_parts(131_541, 0).saturating_mul(a.into())) + // Standard Error: 2_107 + .saturating_add(Weight::from_parts(41_085, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { - // Minimum execution time: 29_177 nanoseconds. - Weight::from_ref_time(30_731_712) - // Standard Error: 1_788 - .saturating_add(Weight::from_ref_time(70_028).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 24_040_000 picoseconds. + Weight::from_parts(24_914_869, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 2_025 + .saturating_add(Weight::from_parts(47_844, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { - // Minimum execution time: 29_575 nanoseconds. - Weight::from_ref_time(30_796_953) - // Standard Error: 2_162 - .saturating_add(Weight::from_ref_time(82_372).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_495_000 picoseconds. + Weight::from_parts(24_788_899, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_911 + .saturating_add(Weight::from_parts(68_917, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { - // Minimum execution time: 25_514 nanoseconds. - Weight::from_ref_time(26_752_018) - // Standard Error: 1_688 - .saturating_add(Weight::from_ref_time(47_064).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 19_269_000 picoseconds. + Weight::from_parts(20_040_655, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_327 + .saturating_add(Weight::from_parts(24_180, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. - fn create_pure(p: u32, ) -> Weight { - // Minimum execution time: 31_400 nanoseconds. - Weight::from_ref_time(32_761_873) - // Standard Error: 9_079 - .saturating_add(Weight::from_ref_time(64_506).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) + fn create_pure(_p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 25_926_000 picoseconds. + Weight::from_parts(26_963_808, 0) + .saturating_add(Weight::from_parts(0, 4706)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { - // Minimum execution time: 26_823 nanoseconds. - Weight::from_ref_time(28_399_196) - // Standard Error: 1_685 - .saturating_add(Weight::from_ref_time(49_327).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 19_961_000 picoseconds. + Weight::from_parts(20_928_300, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_576 + .saturating_add(Weight::from_parts(28_604, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_session.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_session.rs index c6a68063077..06d41c6383a 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_session.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_session.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,19 +47,31 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:1 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - // Minimum execution time: 22_444 nanoseconds. - Weight::from_ref_time(23_247_000) + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `7470` + // Minimum execution time: 17_273_000 picoseconds. + Weight::from_parts(17_562_000, 0) + .saturating_add(Weight::from_parts(0, 7470)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:0 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - // Minimum execution time: 18_986 nanoseconds. - Weight::from_ref_time(19_353_000) + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3949` + // Minimum execution time: 13_268_000 picoseconds. + Weight::from_parts(13_646_000, 0) + .saturating_add(Weight::from_parts(0, 3949)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_timestamp.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_timestamp.rs index 088b8695adb..af27f018b00 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_timestamp.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,16 +47,26 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_timestamp`. pub struct WeightInfo(PhantomData); impl pallet_timestamp::WeightInfo for WeightInfo { - // Storage: Timestamp Now (r:1 w:1) - // Storage: Aura CurrentSlot (r:1 w:0) + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - // Minimum execution time: 9_277 nanoseconds. - Weight::from_ref_time(9_481_000) + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `2986` + // Minimum execution time: 9_234_000 picoseconds. + Weight::from_parts(9_578_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { - // Minimum execution time: 3_799 nanoseconds. - Weight::from_ref_time(3_944_000) + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_193_000 picoseconds. + Weight::from_parts(3_306_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_uniques.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_uniques.rs index 4aaf7759bbf..44846163ff0 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_uniques.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_uniques.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_uniques` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -46,242 +47,417 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_uniques`. pub struct WeightInfo(PhantomData); impl pallet_uniques::WeightInfo for WeightInfo { - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn create() -> Weight { - // Minimum execution time: 30_553 nanoseconds. - Weight::from_ref_time(31_335_000) + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3643` + // Minimum execution time: 25_977_000 picoseconds. + Weight::from_parts(27_109_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn force_create() -> Weight { - // Minimum execution time: 20_306 nanoseconds. - Weight::from_ref_time(20_621_000) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3643` + // Minimum execution time: 14_712_000 picoseconds. + Weight::from_parts(15_150_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:1 w:0) - // Storage: Uniques ClassAccount (r:0 w:1) - // Storage: Uniques Attribute (r:0 w:1000) - // Storage: Uniques ClassMetadataOf (r:0 w:1) - // Storage: Uniques InstanceMetadataOf (r:0 w:1000) - // Storage: Uniques CollectionMaxSupply (r:0 w:1) - // Storage: Uniques Account (r:0 w:20) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1001 w:1000) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1000 w:1000) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1000 w:1000) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:0 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1000) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques CollectionMaxSupply (r:0 w:1) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) /// The range of component `n` is `[0, 1000]`. /// The range of component `m` is `[0, 1000]`. /// The range of component `a` is `[0, 1000]`. fn destroy(n: u32, m: u32, a: u32, ) -> Weight { - // Minimum execution time: 2_328_818 nanoseconds. - Weight::from_ref_time(2_356_006_000) - // Standard Error: 25_300 - .saturating_add(Weight::from_ref_time(8_261_731).saturating_mul(n.into())) - // Standard Error: 25_300 - .saturating_add(Weight::from_ref_time(257_219).saturating_mul(m.into())) - // Standard Error: 25_300 - .saturating_add(Weight::from_ref_time(264_540).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `257 + n * (76 ±0) + m * (56 ±0) + a * (107 ±0)` + // Estimated: `9210 + n * (2597 ±0) + a * (2647 ±0) + m * (2662 ±0)` + // Minimum execution time: 2_367_187_000 picoseconds. + Weight::from_parts(2_382_789_000, 0) + .saturating_add(Weight::from_parts(0, 9210)) + // Standard Error: 24_652 + .saturating_add(Weight::from_parts(6_204_090, 0).saturating_mul(n.into())) + // Standard Error: 24_652 + .saturating_add(Weight::from_parts(246_468, 0).saturating_mul(m.into())) + // Standard Error: 24_652 + .saturating_add(Weight::from_parts(346_915, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques CollectionMaxSupply (r:1 w:0) - // Storage: Uniques Account (r:0 w:1) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques CollectionMaxSupply (r:1 w:0) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) fn mint() -> Weight { - // Minimum execution time: 38_688 nanoseconds. - Weight::from_ref_time(39_217_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `10719` + // Minimum execution time: 31_948_000 picoseconds. + Weight::from_parts(32_314_000, 0) + .saturating_add(Weight::from_parts(0, 10719)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Account (r:0 w:1) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn burn() -> Weight { - // Minimum execution time: 39_932 nanoseconds. - Weight::from_ref_time(40_613_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 33_711_000 picoseconds. + Weight::from_parts(34_742_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Account (r:0 w:2) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:2) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 31_640 nanoseconds. - Weight::from_ref_time(31_954_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 26_609_000 picoseconds. + Weight::from_parts(27_130_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:102 w:102) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:5000 w:5000) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) /// The range of component `i` is `[0, 5000]`. fn redeposit(i: u32, ) -> Weight { - // Minimum execution time: 20_417 nanoseconds. - Weight::from_ref_time(20_569_000) - // Standard Error: 13_979 - .saturating_add(Weight::from_ref_time(11_031_095).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `738 + i * (76 ±0)` + // Estimated: `4633 + i * (2597 ±0)` + // Minimum execution time: 15_463_000 picoseconds. + Weight::from_parts(15_625_000, 0) + .saturating_add(Weight::from_parts(0, 4633)) + // Standard Error: 12_996 + .saturating_add(Weight::from_parts(13_104_503, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn freeze() -> Weight { - // Minimum execution time: 24_601 nanoseconds. - Weight::from_ref_time(24_851_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 18_897_000 picoseconds. + Weight::from_parts(19_276_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn thaw() -> Weight { - // Minimum execution time: 23_688 nanoseconds. - Weight::from_ref_time(24_189_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 18_883_000 picoseconds. + Weight::from_parts(19_526_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn freeze_collection() -> Weight { - // Minimum execution time: 19_606 nanoseconds. - Weight::from_ref_time(19_922_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 14_519_000 picoseconds. + Weight::from_parts(14_887_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn thaw_collection() -> Weight { - // Minimum execution time: 19_335 nanoseconds. - Weight::from_ref_time(19_831_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 14_172_000 picoseconds. + Weight::from_parts(14_395_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques OwnershipAcceptance (r:1 w:1) - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:2) + /// Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Proof: Uniques OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:2) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn transfer_ownership() -> Weight { - // Minimum execution time: 27_519 nanoseconds. - Weight::from_ref_time(28_009_000) + // Proof Size summary in bytes: + // Measured: `356` + // Estimated: `7160` + // Minimum execution time: 22_131_000 picoseconds. + Weight::from_parts(22_540_000, 0) + .saturating_add(Weight::from_parts(0, 7160)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn set_team() -> Weight { - // Minimum execution time: 20_057 nanoseconds. - Weight::from_ref_time(20_615_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 15_582_000 picoseconds. + Weight::from_parts(15_907_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn force_item_status() -> Weight { - // Minimum execution time: 23_296 nanoseconds. - Weight::from_ref_time(23_464_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 17_915_000 picoseconds. + Weight::from_parts(18_190_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:0) - // Storage: Uniques Attribute (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:0) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1 w:1) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) fn set_attribute() -> Weight { - // Minimum execution time: 43_776 nanoseconds. - Weight::from_ref_time(44_536_000) + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `10932` + // Minimum execution time: 37_851_000 picoseconds. + Weight::from_parts(38_554_000, 0) + .saturating_add(Weight::from_parts(0, 10932)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:0) - // Storage: Uniques Attribute (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:0) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1 w:1) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) fn clear_attribute() -> Weight { - // Minimum execution time: 42_660 nanoseconds. - Weight::from_ref_time(43_620_000) + // Proof Size summary in bytes: + // Measured: `756` + // Estimated: `10932` + // Minimum execution time: 37_289_000 picoseconds. + Weight::from_parts(37_807_000, 0) + .saturating_add(Weight::from_parts(0, 10932)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) fn set_metadata() -> Weight { - // Minimum execution time: 36_573 nanoseconds. - Weight::from_ref_time(37_107_000) + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `7295` + // Minimum execution time: 28_825_000 picoseconds. + Weight::from_parts(29_277_000, 0) + .saturating_add(Weight::from_parts(0, 7295)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) fn clear_metadata() -> Weight { - // Minimum execution time: 36_705 nanoseconds. - Weight::from_ref_time(37_601_000) + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `7295` + // Minimum execution time: 29_274_000 picoseconds. + Weight::from_parts(29_941_000, 0) + .saturating_add(Weight::from_parts(0, 7295)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) fn set_collection_metadata() -> Weight { - // Minimum execution time: 34_921 nanoseconds. - Weight::from_ref_time(35_832_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `7275` + // Minimum execution time: 28_196_000 picoseconds. + Weight::from_parts(28_563_000, 0) + .saturating_add(Weight::from_parts(0, 7275)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) fn clear_collection_metadata() -> Weight { - // Minimum execution time: 34_617 nanoseconds. - Weight::from_ref_time(34_919_000) + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `7275` + // Minimum execution time: 26_657_000 picoseconds. + Weight::from_parts(27_189_000, 0) + .saturating_add(Weight::from_parts(0, 7275)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) fn approve_transfer() -> Weight { - // Minimum execution time: 26_019 nanoseconds. - Weight::from_ref_time(26_484_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 21_135_000 picoseconds. + Weight::from_parts(21_445_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) fn cancel_approval() -> Weight { - // Minimum execution time: 25_579 nanoseconds. - Weight::from_ref_time(26_128_000) + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `7230` + // Minimum execution time: 20_803_000 picoseconds. + Weight::from_parts(21_249_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Proof: Uniques OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn set_accept_ownership() -> Weight { - // Minimum execution time: 23_690 nanoseconds. - Weight::from_ref_time(23_948_000) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 16_421_000 picoseconds. + Weight::from_parts(16_940_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques CollectionMaxSupply (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques CollectionMaxSupply (r:1 w:1) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn set_collection_max_supply() -> Weight { - // Minimum execution time: 22_005 nanoseconds. - Weight::from_ref_time(22_693_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `7132` + // Minimum execution time: 17_792_000 picoseconds. + Weight::from_parts(18_087_000, 0) + .saturating_add(Weight::from_parts(0, 7132)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:0) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Asset (r:1 w:0) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn set_price() -> Weight { - // Minimum execution time: 22_836 nanoseconds. - Weight::from_ref_time(23_207_000) + // Proof Size summary in bytes: + // Measured: `259` + // Estimated: `3587` + // Minimum execution time: 17_036_000 picoseconds. + Weight::from_parts(17_365_000, 0) + .saturating_add(Weight::from_parts(0, 3587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques ItemPriceOf (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Account (r:0 w:2) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:1 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:2) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) fn buy_item() -> Weight { - // Minimum execution time: 41_765 nanoseconds. - Weight::from_ref_time(42_289_000) + // Proof Size summary in bytes: + // Measured: `540` + // Estimated: `10784` + // Minimum execution time: 37_920_000 picoseconds. + Weight::from_parts(38_587_000, 0) + .saturating_add(Weight::from_parts(0, 10784)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_utility.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_utility.rs index fd95226632c..25a8f1375d0 100644 --- a/parachains/runtimes/assets/statemine/src/weights/pallet_utility.rs +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_utility.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -48,31 +49,51 @@ pub struct WeightInfo(PhantomData); impl pallet_utility::WeightInfo for WeightInfo { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - // Minimum execution time: 13_034 nanoseconds. - Weight::from_ref_time(21_764_326) - // Standard Error: 2_410 - .saturating_add(Weight::from_ref_time(3_700_949).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_113_000 picoseconds. + Weight::from_parts(38_041_346, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 4_785 + .saturating_add(Weight::from_parts(4_680_352, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 6_719 nanoseconds. - Weight::from_ref_time(6_826_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_441_000 picoseconds. + Weight::from_parts(5_594_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - // Minimum execution time: 12_554 nanoseconds. - Weight::from_ref_time(21_222_841) - // Standard Error: 2_537 - .saturating_add(Weight::from_ref_time(3_904_278).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_203_000 picoseconds. + Weight::from_parts(18_311_542, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_281 + .saturating_add(Weight::from_parts(4_950_166, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 15_143 nanoseconds. - Weight::from_ref_time(15_426_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_631_000 picoseconds. + Weight::from_parts(9_881_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - // Minimum execution time: 12_779 nanoseconds. - Weight::from_ref_time(21_928_101) - // Standard Error: 2_278 - .saturating_add(Weight::from_ref_time(3_720_046).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_146_000 picoseconds. + Weight::from_parts(22_172_240, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_023 + .saturating_add(Weight::from_parts(4_688_391, 0).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs b/parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..832a9af5f5e --- /dev/null +++ b/parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs @@ -0,0 +1,276 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=statemine-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/statemine/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `9780` + // Minimum execution time: 28_004_000 picoseconds. + Weight::from_parts(28_341_000, 0) + .saturating_add(Weight::from_parts(0, 9780)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 23_734_000 picoseconds. + Weight::from_parts(24_091_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 19_172_000 picoseconds. + Weight::from_parts(19_439_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn execute() -> 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 Skipped: 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: 10_181_000 picoseconds. + Weight::from_parts(10_441_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_092_000 picoseconds. + Weight::from_parts(3_217_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `14955` + // Minimum execution time: 36_167_000 picoseconds. + Weight::from_parts(37_036_000, 0) + .saturating_add(Weight::from_parts(0, 14955)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `257` + // Estimated: `14669` + // Minimum execution time: 39_341_000 picoseconds. + Weight::from_parts(40_254_000, 0) + .saturating_add(Weight::from_parts(0, 14669)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `129` + // Estimated: `11019` + // Minimum execution time: 20_159_000 picoseconds. + Weight::from_parts(20_621_000, 0) + .saturating_add(Weight::from_parts(0, 11019)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `133` + // Estimated: `11023` + // Minimum execution time: 20_095_000 picoseconds. + Weight::from_parts(20_335_000, 0) + .saturating_add(Weight::from_parts(0, 11023)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `13505` + // Minimum execution time: 20_826_000 picoseconds. + Weight::from_parts(21_160_000, 0) + .saturating_add(Weight::from_parts(0, 13505)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `16197` + // Minimum execution time: 38_595_000 picoseconds. + Weight::from_parts(39_178_000, 0) + .saturating_add(Weight::from_parts(0, 16197)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `172` + // Estimated: `8587` + // Minimum execution time: 11_391_000 picoseconds. + Weight::from_parts(11_704_000, 0) + .saturating_add(Weight::from_parts(0, 8587)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `11030` + // Minimum execution time: 22_506_000 picoseconds. + Weight::from_parts(23_076_000, 0) + .saturating_add(Weight::from_parts(0, 11030)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `146` + // Estimated: `21171` + // Minimum execution time: 47_662_000 picoseconds. + Weight::from_parts(48_167_000, 0) + .saturating_add(Weight::from_parts(0, 21171)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs b/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs index 7972667cf06..9c457671ed0 100644 --- a/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs +++ b/parachains/runtimes/assets/statemine/src/weights/xcm/mod.rs @@ -21,168 +21,223 @@ use crate::Runtime; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::{cmp, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XCMWeight}, - DoubleEncoded, -}; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight; + fn weigh_multi_assets(&self, weight: Weight) -> Weight; } -const MAX_ASSETS: u32 = 100; +const MAX_ASSETS: u64 = 100; impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - let weight = match self { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { Self::Definite(assets) => weight.saturating_mul(assets.inner().into_iter().count() as u64), Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64), - }; - weight.ref_time() + } } } impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - weight.saturating_mul(self.inner().into_iter().count() as u64).ref_time() + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().into_iter().count() as u64) } } pub struct StatemineXcmWeight(core::marker::PhantomData); impl XcmWeightInfo for StatemineXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) } // Currently there is no trusted reserve - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { - u64::MAX + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + Weight::from_parts(1_000_000_000 as u64, 0) } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } - fn query_response(_query_id: &u64, _response: &Response, _max_weight: &u64) -> XCMWeight { - XcmGeneric::::query_response().ref_time() + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) } fn transfer_reserve_asset( assets: &MultiAssets, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &u64, + _require_weight_at_most: &Weight, _call: &DoubleEncoded, - ) -> XCMWeight { - XcmGeneric::::transact().ref_time() + ) -> Weight { + XcmGeneric::::transact() } fn hrmp_new_channel_open_request( _sender: &u32, _max_message_size: &u32, _max_capacity: &u32, - ) -> XCMWeight { + ) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_accepted(_recipient: &u32) -> XCMWeight { + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> XCMWeight { + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn clear_origin() -> XCMWeight { - XcmGeneric::::clear_origin().ref_time() + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { - XcmGeneric::::descend_origin().ref_time() + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() } - fn report_error( - _query_id: &QueryId, - _dest: &MultiLocation, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::report_error().ref_time() + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() } - fn deposit_asset( - assets: &MultiAssetFilter, - _max_assets: &u32, - _dest: &MultiLocation, - ) -> XCMWeight { + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(1_000_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(1_000_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } fn deposit_reserve_asset( assets: &MultiAssetFilter, - _max_assets: &u32, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets) -> XCMWeight { - Weight::MAX.ref_time() + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX } fn initiate_reserve_withdraw( assets: &MultiAssetFilter, _reserve: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) } fn initiate_teleport( assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(200_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(200_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } - fn query_holding( - _query_id: &u64, - _dest: &MultiLocation, - _assets: &MultiAssetFilter, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::query_holding().ref_time() + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { - XcmGeneric::::buy_execution().ref_time() + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn refund_surplus() -> XCMWeight { - XcmGeneric::::refund_surplus().ref_time() + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_error_handler(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_error_handler().ref_time() + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_appendix(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_appendix().ref_time() + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn clear_error() -> XCMWeight { - XcmGeneric::::clear_error().ref_time() + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { - XcmGeneric::::claim_asset().ref_time() + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() } - fn trap(_code: &u64) -> XCMWeight { - XcmGeneric::::trap().ref_time() + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &u64) -> XCMWeight { - XcmGeneric::::subscribe_version().ref_time() + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX } - fn unsubscribe_version() -> XCMWeight { - XcmGeneric::::unsubscribe_version().ref_time() + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() } } diff --git a/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 2b11d541d1f..d93dd65746b 100644 --- a/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::fungible` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -49,59 +49,110 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: System Account (r:1 w:1) - pub(crate) fn withdraw_asset() -> Weight { - Weight::from_ref_time(32_154_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 23_021_000 picoseconds. + Weight::from_parts(23_385_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:2 w:2) - pub(crate) fn transfer_asset() -> Weight { - Weight::from_ref_time(37_328_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 33_451_000 picoseconds. + Weight::from_parts(33_779_000, 6196) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn transfer_reserve_asset() -> Weight { - Weight::from_ref_time(53_253_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `176` + // Estimated: `17970` + // Minimum execution time: 56_145_000 picoseconds. + Weight::from_parts(56_830_000, 17970) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) } - pub(crate) fn receive_teleported_asset() -> Weight { - Weight::from_ref_time(6_378_000 as u64) + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_315_000 picoseconds. + Weight::from_parts(4_448_000, 0) } // Storage: System Account (r:1 w:1) - pub(crate) fn deposit_asset() -> Weight { - Weight::from_ref_time(33_783_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 25_505_000 picoseconds. + Weight::from_parts(25_697_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn deposit_reserve_asset() -> Weight { - Weight::from_ref_time(51_293_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `14862` + // Minimum execution time: 50_620_000 picoseconds. + Weight::from_parts(50_926_000, 14862) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_teleport() -> Weight { - Weight::from_ref_time(28_390_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 31_700_000 picoseconds. + Weight::from_parts(32_178_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 3e7d6b33dc2..058f23631dd 100644 --- a/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/parachains/runtimes/assets/statemine/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemine-dev"), DB CACHE: 1024 // Executed Command: @@ -49,89 +49,300 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn query_holding() -> Weight { - Weight::from_ref_time(892_211_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 367_337_000 picoseconds. + Weight::from_parts(368_530_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - pub(crate) fn buy_execution() -> Weight { - Weight::from_ref_time(8_728_000 as u64) + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_121_000 picoseconds. + Weight::from_parts(4_318_000, 0) } // Storage: PolkadotXcm Queries (r:1 w:0) - pub(crate) fn query_response() -> Weight { - Weight::from_ref_time(16_766_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `69` + // Estimated: `3534` + // Minimum execution time: 11_951_000 picoseconds. + Weight::from_parts(12_171_000, 3534) + .saturating_add(T::DbWeight::get().reads(1)) } - pub(crate) fn transact() -> Weight { - Weight::from_ref_time(19_546_000 as u64) + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_626_000 picoseconds. + Weight::from_parts(13_891_000, 0) } - pub(crate) fn refund_surplus() -> Weight { - Weight::from_ref_time(8_907_000 as u64) + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_276_000 picoseconds. + Weight::from_parts(4_444_000, 0) } - pub(crate) fn set_error_handler() -> Weight { - Weight::from_ref_time(5_393_000 as u64) + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_969_000 picoseconds. + Weight::from_parts(3_090_000, 0) } - pub(crate) fn set_appendix() -> Weight { - Weight::from_ref_time(5_453_000 as u64) + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_148_000 picoseconds. + Weight::from_parts(3_252_000, 0) } - pub(crate) fn clear_error() -> Weight { - Weight::from_ref_time(5_417_000 as u64) + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_027_000 picoseconds. + Weight::from_parts(3_081_000, 0) } - pub(crate) fn descend_origin() -> Weight { - Weight::from_ref_time(6_700_000 as u64) + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_863_000 picoseconds. + Weight::from_parts(3_934_000, 0) } - pub(crate) fn clear_origin() -> Weight { - Weight::from_ref_time(5_365_000 as u64) + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_013_000 picoseconds. + Weight::from_parts(3_115_000, 0) } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn report_error() -> Weight { - Weight::from_ref_time(15_258_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 25_963_000 picoseconds. + Weight::from_parts(26_428_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: PolkadotXcm AssetTraps (r:1 w:1) - pub(crate) fn claim_asset() -> Weight { - Weight::from_ref_time(21_485_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm AssetTraps (max_values: None, max_size: None, mode: Measured) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `126` + // Estimated: `3591` + // Minimum execution time: 16_492_000 picoseconds. + Weight::from_parts(16_930_000, 3591) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - pub(crate) fn trap() -> Weight { - Weight::from_ref_time(5_334_000 as u64) + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_004_000 picoseconds. + Weight::from_parts(3_070_000, 0) } // Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn subscribe_version() -> Weight { - Weight::from_ref_time(18_035_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `13320` + // Minimum execution time: 28_804_000 picoseconds. + Weight::from_parts(29_543_000, 13320) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1) - pub(crate) fn unsubscribe_version() -> Weight { - Weight::from_ref_time(7_661_000 as u64) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_140_000 picoseconds. + Weight::from_parts(5_343_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 410_533_000 picoseconds. + Weight::from_parts(412_507_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 126_970_000 picoseconds. + Weight::from_parts(129_854_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_585_000 picoseconds. + Weight::from_parts(13_852_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_091_000 picoseconds. + Weight::from_parts(3_180_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_982_000 picoseconds. + Weight::from_parts(3_060_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_246_000 picoseconds. + Weight::from_parts(3_332_000, 0) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_reserve_withdraw() -> Weight { - Weight::from_ref_time(1_090_619_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 29_939_000 picoseconds. + Weight::from_parts(30_426_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_477_000 picoseconds. + Weight::from_parts(5_585_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 26_349_000 picoseconds. + Weight::from_parts(26_957_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_087_000 picoseconds. + Weight::from_parts(3_137_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_047_000 picoseconds. + Weight::from_parts(3_111_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_018_000 picoseconds. + Weight::from_parts(3_082_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_051_000 picoseconds. + Weight::from_parts(3_090_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_140_000 picoseconds. + Weight::from_parts(3_274_000, 0) } } diff --git a/parachains/runtimes/assets/statemine/src/xcm_config.rs b/parachains/runtimes/assets/statemine/src/xcm_config.rs index 98fe6381251..46fbb1d9e83 100644 --- a/parachains/runtimes/assets/statemine/src/xcm_config.rs +++ b/parachains/runtimes/assets/statemine/src/xcm_config.rs @@ -14,12 +14,13 @@ // limitations under the License. use super::{ - AccountId, AssetId, Assets, Authorship, Balance, Balances, ParachainInfo, ParachainSystem, - PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ParachainInfo, + ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TrustBackedAssetsInstance, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{Everything, Nothing, PalletInfoAccess}, + traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, }; use pallet_xcm::XcmPassthrough; use parachains_common::{ @@ -32,23 +33,23 @@ use polkadot_parachain::primitives::Sibling; use sp_runtime::traits::ConvertInto; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, - ConvertedConcreteAssetId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, - LocationInverter, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, - WeightInfoBounds, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + FungiblesAdapter, IsConcrete, LocalMint, NativeAsset, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + UsingComponents, WeightInfoBounds, WithComputedOrigin, }; -use xcm_executor::{traits::JustTry, XcmExecutor}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; parameter_types! { pub const KsmLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub const RelayNetwork: Option = Some(NetworkId::Kusama); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); - pub const Local: MultiLocation = Here.into(); - pub AssetsPalletLocation: MultiLocation = + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const Local: MultiLocation = Here.into_location(); + pub TrustBackedAssetsPalletLocation: MultiLocation = PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); } @@ -79,24 +80,23 @@ pub type CurrencyTransactor = CurrencyAdapter< (), >; +/// `AssetId/Balancer` converter for `TrustBackedAssets` +pub type TrustBackedAssetsConvertedConcreteId = + assets_common::TrustBackedAssetsConvertedConcreteId; + /// Means for transacting assets besides the native currency on this chain. pub type FungiblesTransactor = FungiblesAdapter< // Use this fungibles implementation: Assets, // Use this currency when it is a fungible asset matching the given location or name: - ConvertedConcreteAssetId< - AssetId, - Balance, - AsPrefixedGeneralIndex, - JustTry, - >, + TrustBackedAssetsConvertedConcreteId, // Convert an XCM MultiLocation into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, // We only want to allow teleports of known assets. We use non-zero issuance as an indication // that this asset is known. - parachains_common::impls::NonZeroIssuance, + LocalMint>, // The account to use for tracking teleports. CheckingAccount, >; @@ -129,13 +129,14 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; pub XcmAssetFeesReceiver: Option = Authorship::author(); } match_types! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { + pub type ParentOrParentsPlurality: impl Contains = { MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } }; pub type ParentOrSiblings: impl Contains = { MultiLocation { parents: 1, interior: Here } | @@ -143,24 +144,169 @@ match_types! { }; } +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) | + RuntimeCall::Assets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::refund { .. }, + ) | + RuntimeCall::Nfts( + pallet_nfts::Call::create { .. } | + pallet_nfts::Call::force_create { .. } | + pallet_nfts::Call::destroy { .. } | + pallet_nfts::Call::mint { .. } | + pallet_nfts::Call::force_mint { .. } | + pallet_nfts::Call::burn { .. } | + pallet_nfts::Call::transfer { .. } | + pallet_nfts::Call::lock_item_transfer { .. } | + pallet_nfts::Call::unlock_item_transfer { .. } | + pallet_nfts::Call::lock_collection { .. } | + pallet_nfts::Call::transfer_ownership { .. } | + pallet_nfts::Call::set_team { .. } | + pallet_nfts::Call::force_collection_owner { .. } | + pallet_nfts::Call::force_collection_config { .. } | + pallet_nfts::Call::approve_transfer { .. } | + pallet_nfts::Call::cancel_approval { .. } | + pallet_nfts::Call::clear_all_transfer_approvals { .. } | + pallet_nfts::Call::lock_item_properties { .. } | + pallet_nfts::Call::set_attribute { .. } | + pallet_nfts::Call::force_set_attribute { .. } | + pallet_nfts::Call::clear_attribute { .. } | + pallet_nfts::Call::approve_item_attributes { .. } | + pallet_nfts::Call::cancel_item_attributes_approval { .. } | + pallet_nfts::Call::set_metadata { .. } | + pallet_nfts::Call::clear_metadata { .. } | + pallet_nfts::Call::set_collection_metadata { .. } | + pallet_nfts::Call::clear_collection_metadata { .. } | + pallet_nfts::Call::set_accept_ownership { .. } | + pallet_nfts::Call::set_collection_max_supply { .. } | + pallet_nfts::Call::update_mint_settings { .. } | + pallet_nfts::Call::set_price { .. } | + pallet_nfts::Call::buy_item { .. } | + pallet_nfts::Call::pay_tips { .. } | + pallet_nfts::Call::create_swap { .. } | + pallet_nfts::Call::cancel_swap { .. } | + pallet_nfts::Call::claim_swap { .. }, + ) | + RuntimeCall::Uniques( + pallet_uniques::Call::create { .. } | + pallet_uniques::Call::force_create { .. } | + pallet_uniques::Call::destroy { .. } | + pallet_uniques::Call::mint { .. } | + pallet_uniques::Call::burn { .. } | + pallet_uniques::Call::transfer { .. } | + pallet_uniques::Call::freeze { .. } | + pallet_uniques::Call::thaw { .. } | + pallet_uniques::Call::freeze_collection { .. } | + pallet_uniques::Call::thaw_collection { .. } | + pallet_uniques::Call::transfer_ownership { .. } | + pallet_uniques::Call::set_team { .. } | + pallet_uniques::Call::approve_transfer { .. } | + pallet_uniques::Call::cancel_approval { .. } | + pallet_uniques::Call::force_item_status { .. } | + pallet_uniques::Call::set_attribute { .. } | + pallet_uniques::Call::clear_attribute { .. } | + pallet_uniques::Call::set_metadata { .. } | + pallet_uniques::Call::clear_metadata { .. } | + pallet_uniques::Call::set_collection_metadata { .. } | + pallet_uniques::Call::clear_collection_metadata { .. } | + pallet_uniques::Call::set_accept_ownership { .. } | + pallet_uniques::Call::set_collection_max_supply { .. } | + pallet_uniques::Call::set_price { .. } | + pallet_uniques::Call::buy_item { .. }, + ) => true, + _ => false, + } + } +} + pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - // Parent and its exec plurality get free execution - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its plurality (i.e. governance bodies) gets free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< Runtime, WeightToFee, - pallet_assets::BalanceToAssetBalance, + pallet_assets::BalanceToAssetBalance, + TrustBackedAssetsInstance, >; pub struct XcmConfig; @@ -174,7 +320,7 @@ impl xcm_executor::Config for XcmConfig { // For KSM, users must use teleport where allowed (e.g. with the Relay Chain). type IsReserve = (); type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of KSM - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = WeightInfoBounds< crate::weights::xcm::StatemineXcmWeight, @@ -186,12 +332,7 @@ impl xcm_executor::Config for XcmConfig { cumulus_primitives_utility::TakeFirstAssetTrader< AccountId, AssetFeeAsExistentialDepositMultiplierFeeCharger, - ConvertedConcreteAssetId< - AssetId, - Balance, - AsPrefixedGeneralIndex, - JustTry, - >, + TrustBackedAssetsConvertedConcreteId, Assets, cumulus_primitives_utility::XcmFeesTo32ByteAccount< FungiblesTransactor, @@ -204,6 +345,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; } /// Converts a local signed origin into an XCM multilocation. @@ -214,11 +364,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; // We want to disallow users sending (arbitrary) XCMs from this chain. @@ -237,11 +392,19 @@ impl pallet_xcm::Config for Runtime { MaxInstructions, >; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/assets/statemine/tests/tests.rs b/parachains/runtimes/assets/statemine/tests/tests.rs index 18caaaf3f7e..8c9c0c152c1 100644 --- a/parachains/runtimes/assets/statemine/tests/tests.rs +++ b/parachains/runtimes/assets/statemine/tests/tests.rs @@ -1,21 +1,29 @@ use asset_test_utils::{ExtBuilder, RuntimeHelper}; +use codec::Encode; use cumulus_primitives_utility::ChargeWeightInFungibles; use frame_support::{ - assert_noop, assert_ok, - traits::PalletInfo, + assert_noop, assert_ok, sp_io, weights::{Weight, WeightToFee as WeightToFeeT}, }; -use parachains_common::{AccountId, AuraId}; -use statemine_runtime::xcm_config::AssetFeeAsExistentialDepositMultiplierFeeCharger; +use parachains_common::{AccountId, AuraId, Balance}; +use statemine_runtime::xcm_config::{ + AssetFeeAsExistentialDepositMultiplierFeeCharger, KsmLocation, TrustBackedAssetsPalletLocation, +}; pub use statemine_runtime::{ constants::fee::WeightToFee, xcm_config::XcmConfig, Assets, Balances, ExistentialDeposit, - Runtime, SessionKeys, System, + ReservedDmpWeight, Runtime, SessionKeys, System, }; use xcm::latest::prelude::*; -use xcm_executor::traits::WeightTrader; +use xcm_executor::{ + traits::{Convert, WeightTrader}, + XcmExecutor, +}; pub const ALICE: [u8; 32] = [1u8; 32]; +type AssetIdForTrustBackedAssetsConvert = + assets_common::AssetIdForTrustBackedAssetsConvert; + #[test] fn test_asset_xcm_trader() { ExtBuilder::::default() @@ -47,28 +55,20 @@ fn test_asset_xcm_trader() { )); // get asset id as multilocation - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(local_asset_id.into()), - ), - ); + let asset_multilocation = + AssetIdForTrustBackedAssetsConvert::reverse_ref(local_asset_id).unwrap(); // Set Alice as block author, who will receive fees RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 4e9 weight - let bought = 4_000_000_000u64; + let bought = Weight::from_parts(4_000_000_000u64, 0); // Lets calculate amount needed let asset_amount_needed = AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( local_asset_id, - Weight::from_ref_time(bought), + bought, ) .expect("failed to compute"); @@ -94,12 +94,15 @@ fn test_asset_xcm_trader() { // Make sure author(Alice) has received the amount assert_eq!( - Assets::balance(1, AccountId::from(ALICE)), + Assets::balance(local_asset_id, AccountId::from(ALICE)), minimum_asset_balance + asset_amount_needed ); // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), minimum_asset_balance + asset_amount_needed); + assert_eq!( + Assets::total_supply(local_asset_id), + minimum_asset_balance + asset_amount_needed + ); }); } @@ -138,21 +141,12 @@ fn test_asset_xcm_trader_with_refund() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 4e9 weight - let bought = 4_000_000_000u64; - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(4_000_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); // lets calculate amount needed - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); let asset: MultiAsset = (asset_multilocation.clone(), amount_bought).into(); @@ -160,14 +154,14 @@ fn test_asset_xcm_trader_with_refund() { assert_ok!(trader.buy_weight(bought, asset.clone().into())); // Make sure again buy_weight does return an error - assert_noop!(trader.buy_weight(bought, asset.into()), XcmError::NotWithdrawable); + // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` tuple chain, which cannot be called twice + assert_noop!(trader.buy_weight(bought, asset.into()), XcmError::TooExpensive); // We actually use half of the weight let weight_used = bought / 2; // Make sure refurnd works. - let amount_refunded = - WeightToFee::weight_to_fee(&Weight::from_ref_time(bought - weight_used)); + let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); assert_eq!( trader.refund_weight(bought - weight_used), @@ -178,7 +172,7 @@ fn test_asset_xcm_trader_with_refund() { drop(trader); // We only should have paid for half of the bought weight - let fees_paid = WeightToFee::weight_to_fee(&Weight::from_ref_time(weight_used)); + let fees_paid = WeightToFee::weight_to_fee(&weight_used); assert_eq!( Assets::balance(1, AccountId::from(ALICE)), @@ -217,20 +211,11 @@ fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy small amount - let bought = 500_000_000u64; - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(500_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); assert!( amount_bought < ExistentialDeposit::get(), @@ -277,20 +262,11 @@ fn test_that_buying_ed_refund_does_not_refund() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are gonna buy ED - let bought: u64 = ExistentialDeposit::get().try_into().unwrap(); - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(ExistentialDeposit::get().try_into().unwrap(), 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); assert!( amount_bought < ExistentialDeposit::get(), @@ -358,21 +334,12 @@ fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 4e9 weight - let bought = 4_000_000_000u64; + let bought = Weight::from_parts(4_000_000_000u64, 0); // lets calculate amount needed - let asset_amount_needed = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let asset_amount_needed = WeightToFee::weight_to_fee(&bought); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); @@ -389,3 +356,120 @@ fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { assert_eq!(Assets::total_supply(1), minimum_asset_balance); }); } + +#[test] +fn test_assets_balances_api_works() { + use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; + + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let local_asset_id = 1; + + // check before + assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); + assert!(Runtime::query_account_balances(AccountId::from(ALICE)).unwrap().is_empty()); + + // Drip some balance + use frame_support::traits::fungible::Mutate; + let some_currency = ExistentialDeposit::get(); + Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); + + // We need root origin to create a sufficient asset + let minimum_asset_balance = 3333333_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // check after + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); + + let result = Runtime::query_account_balances(AccountId::from(ALICE)).unwrap(); + assert_eq!(result.len(), 2); + + // check currency + assert!(result.iter().any(|asset| asset.eq( + &assets_common::fungible_conversion::convert_balance::( + some_currency + ) + .unwrap() + ))); + // check trusted asset + assert!(result.iter().any(|asset| asset.eq(&( + AssetIdForTrustBackedAssetsConvert::reverse_ref(local_asset_id).unwrap(), + minimum_asset_balance + ) + .into()))); + }); +} + +#[test] +fn receive_teleported_asset_works() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let xcm = Xcm(vec![ + ReceiveTeleportedAsset(MultiAssets::from(vec![MultiAsset { + id: Concrete(MultiLocation { parents: 1, interior: Here }), + fun: Fungible(10000000000000), + }])), + ClearOrigin, + BuyExecution { + fees: MultiAsset { + id: Concrete(MultiLocation { parents: 1, interior: Here }), + fun: Fungible(10000000000000), + }, + weight_limit: Limited(Weight::from_parts(1303531000, 65536)), + }, + DepositAsset { + assets: Wild(AllCounted(1)), + beneficiary: MultiLocation { + parents: 0, + interior: X1(AccountId32 { + network: None, + id: [ + 18, 153, 85, 112, 1, 245, 88, 21, 211, 252, 181, 60, 116, 70, 58, + 203, 12, 246, 209, 77, 70, 57, 179, 64, 152, 44, 96, 135, 127, 56, + 70, 9, + ], + }), + }, + }, + ]); + let hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + let weight_limit = ReservedDmpWeight::get(); + + let outcome = XcmExecutor::::execute_xcm(Parent, xcm, hash, weight_limit); + assert_eq!(outcome.ensure_complete(), Ok(())); + }) +} diff --git a/parachains/runtimes/assets/statemint/Cargo.toml b/parachains/runtimes/assets/statemint/Cargo.toml index fcf201fe1f0..d7ac9c9ed79 100644 --- a/parachains/runtimes/assets/statemint/Cargo.toml +++ b/parachains/runtimes/assets/statemint/Cargo.toml @@ -13,48 +13,49 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" smallvec = "1.10.0" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.36" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-uniques = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false , branch = "polkadot-v0.9.40" } +pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-uniques = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -69,14 +70,14 @@ cumulus-primitives-utility = { path = "../../../../primitives/utility", default- pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } -pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.36" } +assets-common = { path = "../common", default-features = false } [dev-dependencies] hex-literal = "0.3.4" asset-test-utils = { path = "../test-utils"} [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] @@ -177,5 +178,6 @@ std = [ "pallet-collator-selection/std", "parachain-info/std", "parachains-common/std", - "mangata-support/std" + "mangata-support/std", + "assets-common/std", ] diff --git a/parachains/runtimes/assets/statemint/src/constants.rs b/parachains/runtimes/assets/statemint/src/constants.rs index ef3a545d15e..393f62858cd 100644 --- a/parachains/runtimes/assets/statemint/src/constants.rs +++ b/parachains/runtimes/assets/statemint/src/constants.rs @@ -17,7 +17,7 @@ pub mod currency { use polkadot_core_primitives::Balance; use polkadot_runtime_constants as constants; - /// The existential deposit. Set to 1/10 of its parent Relay Chain (v9010). + /// The existential deposit. Set to 1/10 of its parent Relay Chain. pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; pub const UNITS: Balance = constants::currency::UNITS; @@ -26,7 +26,7 @@ pub mod currency { pub const MILLICENTS: Balance = constants::currency::MILLICENTS; pub const fn deposit(items: u32, bytes: u32) -> Balance { - // 1/100 of Polkadot v9010 + // 1/100 of Polkadot constants::currency::deposit(items, bytes) / 100 } } diff --git a/parachains/runtimes/assets/statemint/src/lib.rs b/parachains/runtimes/assets/statemint/src/lib.rs index 757a183fcf1..789cb32126d 100644 --- a/parachains/runtimes/assets/statemint/src/lib.rs +++ b/parachains/runtimes/assets/statemint/src/lib.rs @@ -90,11 +90,13 @@ use frame_system::{ pub use parachains_common as common; use parachains_common::{ impls::{AssetsToBlockAuthor, DealWithFees}, - opaque, AccountId, AssetId, Balance, BlockNumber, Hash, Header, Index, Signature, - StatemintAuraId as AuraId, AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, + opaque, AccountId, AssetIdForTrustBackedAssets, Balance, BlockNumber, Hash, Header, Index, + Signature, StatemintAuraId as AuraId, AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, }; -use xcm_config::{DotLocation, XcmConfig, XcmOriginToTransactDispatchOrigin}; +use xcm_config::{ + DotLocation, TrustBackedAssetsConvertedConcreteId, XcmConfig, XcmOriginToTransactDispatchOrigin, +}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; @@ -118,10 +120,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("statemint"), impl_name: create_runtime_str!("statemint"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 11, + transaction_version: 13, state_version: 0, }; @@ -194,8 +196,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -248,11 +248,16 @@ parameter_types! { pub type AssetsForceOrigin = EitherOfDiverse, EnsureXcm>>; -impl pallet_assets::Config for Runtime { +// Called "Trust Backed" assets because these are generally registered by some account, and users of +// the asset assume it has some claimed backing. The pallet is called `Assets` in +// `construct_runtime` to avoid breaking changes on storage reads. +pub type TrustBackedAssetsInstance = pallet_assets::Instance1; +type TrustBackedAssetsCall = pallet_assets::Call; +impl pallet_assets::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = Balance; - type AssetId = AssetId; - type AssetIdParameter = codec::Compact; + type AssetId = AssetIdForTrustBackedAssets; + type AssetIdParameter = codec::Compact; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = AssetsForceOrigin; @@ -264,6 +269,7 @@ impl pallet_assets::Config for Runtime { type Freezer = (); type Extra = (); type WeightInfo = weights::pallet_assets::WeightInfo; + type CallbackHandle = (); type AssetAccountDeposit = AssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; #[cfg(feature = "runtime-benchmarks")] @@ -369,15 +375,15 @@ impl InstanceFilter for ProxyType { }, ProxyType::AssetOwner => matches!( c, - RuntimeCall::Assets(pallet_assets::Call::create { .. }) | - RuntimeCall::Assets(pallet_assets::Call::start_destroy { .. }) | - RuntimeCall::Assets(pallet_assets::Call::destroy_accounts { .. }) | - RuntimeCall::Assets(pallet_assets::Call::destroy_approvals { .. }) | - RuntimeCall::Assets(pallet_assets::Call::finish_destroy { .. }) | - RuntimeCall::Assets(pallet_assets::Call::transfer_ownership { .. }) | - RuntimeCall::Assets(pallet_assets::Call::set_team { .. }) | - RuntimeCall::Assets(pallet_assets::Call::set_metadata { .. }) | - RuntimeCall::Assets(pallet_assets::Call::clear_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | @@ -394,12 +400,12 @@ impl InstanceFilter for ProxyType { ), ProxyType::AssetManager => matches!( c, - RuntimeCall::Assets(pallet_assets::Call::mint { .. }) | - RuntimeCall::Assets(pallet_assets::Call::burn { .. }) | - RuntimeCall::Assets(pallet_assets::Call::freeze { .. }) | - RuntimeCall::Assets(pallet_assets::Call::thaw { .. }) | - RuntimeCall::Assets(pallet_assets::Call::freeze_asset { .. }) | - RuntimeCall::Assets(pallet_assets::Call::thaw_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | @@ -481,6 +487,7 @@ impl parachain_info::Config for Runtime {} impl cumulus_pallet_aura_ext::Config for Runtime {} impl cumulus_pallet_xcmp_queue::Config for Runtime { + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; type RuntimeEvent = RuntimeEvent; type XcmExecutor = XcmExecutor; type ChannelInfo = ParachainSystem; @@ -492,7 +499,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { EnsureXcm>, >; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; - type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -559,8 +566,13 @@ impl pallet_asset_tx_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Fungibles = Assets; type OnChargeAssetTransaction = pallet_asset_tx_payment::FungiblesAdapter< - pallet_assets::BalanceToAssetBalance, - AssetsToBlockAuthor, + pallet_assets::BalanceToAssetBalance< + Balances, + Runtime, + ConvertInto, + TrustBackedAssetsInstance, + >, + AssetsToBlockAuthor, >; } @@ -618,7 +630,7 @@ construct_runtime!( AssetTxPayment: pallet_asset_tx_payment::{Pallet, Event} = 12, // Collator support. the order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -636,7 +648,7 @@ construct_runtime!( Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, // The main stage. - Assets: pallet_assets::{Pallet, Call, Storage, Event} = 50, + Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, } ); @@ -665,6 +677,8 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; +/// Migrations to apply on runtime upgrade. +pub type Migrations = (); /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -673,7 +687,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - pallet_balances::migration::MigrateToTrackInactive, + Migrations, >; #[cfg(feature = "runtime-benchmarks")] @@ -695,6 +709,7 @@ mod benches { [pallet_collator_selection, CollatorSelection] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM + [pallet_xcm, PolkadotXcm] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -800,6 +815,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -817,6 +838,40 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl assets_common::runtime_api::FungiblesApi< + Block, + AccountId, + > for Runtime + { + fn query_account_balances(account: AccountId) -> Result, assets_common::runtime_api::FungiblesAccessError> { + use assets_common::fungible_conversion::{convert, convert_balance}; + Ok([ + // collect pallet_balance + { + let balance = Balances::free_balance(account.clone()); + if balance > 0 { + vec![convert_balance::(balance)?] + } else { + vec![] + } + }, + // collect pallet_assets (TrustBackedAssets) + convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( + Assets::account_balances(account) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect ... e.g. pallet_assets ForeignAssets + ].concat()) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -827,7 +882,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } @@ -881,7 +936,7 @@ impl_runtime_apis! { impl cumulus_pallet_session_benchmarking::Config for Runtime {} use xcm::latest::prelude::*; - use xcm_config::DotLocation; + use xcm_config::{DotLocation, MaxAssetsIntoHolding}; use pallet_xcm_benchmarks::asset_instance_from; impl pallet_xcm_benchmarks::Config for Runtime { @@ -890,12 +945,12 @@ impl_runtime_apis! { fn valid_destination() -> Result { Ok(DotLocation::get()) } - fn worst_case_holding() -> MultiAssets { + fn worst_case_holding(depositable_count: u32) -> MultiAssets { // A mix of fungible, non-fungible, and concrete assets. - const HOLDING_FUNGIBLES: u32 = 100; - const HOLDING_NON_FUNGIBLES: u32 = 100; + let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; + let holding_fungibles = holding_non_fungibles - 1; let fungibles_amount: u128 = 100; - let mut assets = (0..HOLDING_FUNGIBLES) + let mut assets = (0..holding_fungibles) .map(|i| { MultiAsset { id: Concrete(GeneralIndex(i as u128).into()), @@ -904,17 +959,17 @@ impl_runtime_apis! { .into() }) .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) - .chain((0..HOLDING_NON_FUNGIBLES).map(|i| MultiAsset { + .chain((0..holding_non_fungibles).map(|i| MultiAsset { id: Concrete(GeneralIndex(i as u128).into()), fun: NonFungible(asset_instance_from(i)), })) .collect::>(); - assets.push(MultiAsset{ - id: Concrete(DotLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }); - assets.into() + assets.push(MultiAsset { + id: Concrete(DotLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }); + assets.into() } } @@ -923,8 +978,7 @@ impl_runtime_apis! { DotLocation::get(), MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(DotLocation::get()) }, )); - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - pub const CheckedAccount: Option = None; + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; } impl pallet_xcm_benchmarks::fungible::Config for Runtime { @@ -932,7 +986,6 @@ impl_runtime_apis! { type CheckedAccount = CheckedAccount; type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; fn get_multi_asset() -> MultiAsset { MultiAsset { @@ -949,8 +1002,16 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } - fn transact_origin() -> Result { - Ok(DotLocation::get()) + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((DotLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } fn subscribe_origin() -> Result { @@ -963,6 +1024,10 @@ impl_runtime_apis! { let ticket = MultiLocation { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } } type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; diff --git a/parachains/runtimes/assets/statemint/src/weights/block_weights.rs b/parachains/runtimes/assets/statemint/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/assets/statemint/src/weights/block_weights.rs +++ b/parachains/runtimes/assets/statemint/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/assets/statemint/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/assets/statemint/src/weights/cumulus_pallet_xcmp_queue.rs index dfae3fb8bde..02bedfa2d6a 100644 --- a/parachains/runtimes/assets/statemint/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/parachains/runtimes/assets/statemint/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,17 +47,27 @@ use sp_std::marker::PhantomData; /// Weight functions for `cumulus_pallet_xcmp_queue`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { - // Minimum execution time: 6_679 nanoseconds. - Weight::from_ref_time(6_933_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_634_000 picoseconds. + Weight::from_parts(5_845_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { - // Minimum execution time: 6_807 nanoseconds. - Weight::from_ref_time(7_035_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_684_000 picoseconds. + Weight::from_parts(5_823_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemint/src/weights/extrinsic_weights.rs b/parachains/runtimes/assets/statemint/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/assets/statemint/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/assets/statemint/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/assets/statemint/src/weights/frame_system.rs b/parachains/runtimes/assets/statemint/src/weights/frame_system.rs index f1704aa96ab..23a5e25cddb 100644 --- a/parachains/runtimes/assets/statemint/src/weights/frame_system.rs +++ b/parachains/runtimes/assets/statemint/src/weights/frame_system.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -48,51 +49,82 @@ pub struct WeightInfo(PhantomData); impl frame_system::WeightInfo for WeightInfo { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { - // Minimum execution time: 3_847 nanoseconds. - Weight::from_ref_time(3_909_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_346_000 picoseconds. + Weight::from_parts(2_416_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(411).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(412, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - // Minimum execution time: 12_640 nanoseconds. - Weight::from_ref_time(12_808_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_010_000 picoseconds. + Weight::from_parts(8_171_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_768).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_448, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 8_531 nanoseconds. - Weight::from_ref_time(8_772_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_684_000 picoseconds. + Weight::from_parts(4_872_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_965 nanoseconds. - Weight::from_ref_time(4_077_000) - // Standard Error: 2_158 - .saturating_add(Weight::from_ref_time(621_891).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_361_000 picoseconds. + Weight::from_parts(2_402_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_747 + .saturating_add(Weight::from_parts(682_536, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - // Minimum execution time: 4_023 nanoseconds. - Weight::from_ref_time(4_086_000) - // Standard Error: 1_115 - .saturating_add(Weight::from_ref_time(449_323).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_515_000 picoseconds. + Weight::from_parts(2_565_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 859 + .saturating_add(Weight::from_parts(501_791, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - // Minimum execution time: 5_923 nanoseconds. - Weight::from_ref_time(6_043_000) - // Standard Error: 1_267 - .saturating_add(Weight::from_ref_time(969_876).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `81 + p * (69 ±0)` + // Estimated: `72 + p * (70 ±0)` + // Minimum execution time: 4_524_000 picoseconds. + Weight::from_parts(4_626_000, 0) + .saturating_add(Weight::from_parts(0, 72)) + // Standard Error: 1_004 + .saturating_add(Weight::from_parts(1_011_603, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/assets/statemint/src/weights/mod.rs b/parachains/runtimes/assets/statemint/src/weights/mod.rs index 080584f2cfa..5dd6ffd662e 100644 --- a/parachains/runtimes/assets/statemint/src/weights/mod.rs +++ b/parachains/runtimes/assets/statemint/src/weights/mod.rs @@ -11,6 +11,7 @@ pub mod pallet_session; pub mod pallet_timestamp; pub mod pallet_uniques; pub mod pallet_utility; +pub mod pallet_xcm; pub mod paritydb_weights; pub mod rocksdb_weights; pub mod xcm; diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_assets.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_assets.rs index 36ce0eba71f..933dcb4d3af 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_assets.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_assets.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_assets` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,232 +47,404 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { - // Storage: Assets Asset (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn create() -> Weight { - // Minimum execution time: 27_893 nanoseconds. - Weight::from_ref_time(28_584_000) + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `7268` + // Minimum execution time: 24_714_000 picoseconds. + Weight::from_parts(25_310_000, 0) + .saturating_add(Weight::from_parts(0, 7268)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn force_create() -> Weight { - // Minimum execution time: 16_951 nanoseconds. - Weight::from_ref_time(17_784_000) + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3675` + // Minimum execution time: 12_820_000 picoseconds. + Weight::from_parts(13_118_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn start_destroy() -> Weight { - // Minimum execution time: 19_356 nanoseconds. - Weight::from_ref_time(19_728_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 15_292_000 picoseconds. + Weight::from_parts(15_715_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:0) - // Storage: System Account (r:20 w:20) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1001 w:1000) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1000 w:1000) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { - // Minimum execution time: 21_363 nanoseconds. - Weight::from_ref_time(21_631_000) - // Standard Error: 14_144 - .saturating_add(Weight::from_ref_time(13_363_125).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `8232 + c * (5180 ±0)` + // Minimum execution time: 17_955_000 picoseconds. + Weight::from_parts(18_157_000, 0) + .saturating_add(Weight::from_parts(0, 8232)) + // Standard Error: 7_214 + .saturating_add(Weight::from_parts(12_316_605, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 5180).saturating_mul(c.into())) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1001 w:1000) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { - // Minimum execution time: 22_617 nanoseconds. - Weight::from_ref_time(23_004_000) - // Standard Error: 7_641 - .saturating_add(Weight::from_ref_time(12_966_615).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `414 + a * (86 ±0)` + // Estimated: `7288 + a * (2623 ±0)` + // Minimum execution time: 18_626_000 picoseconds. + Weight::from_parts(18_760_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) + // Standard Error: 4_382 + .saturating_add(Weight::from_parts(12_278_198, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Metadata (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:0) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn finish_destroy() -> Weight { - // Minimum execution time: 18_557 nanoseconds. - Weight::from_ref_time(18_876_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 14_576_000 picoseconds. + Weight::from_parts(14_816_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn mint() -> Weight { - // Minimum execution time: 29_562 nanoseconds. - Weight::from_ref_time(30_174_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7242` + // Minimum execution time: 26_215_000 picoseconds. + Weight::from_parts(26_571_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn burn() -> Weight { - // Minimum execution time: 36_888 nanoseconds. - Weight::from_ref_time(37_464_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 31_944_000 picoseconds. + Weight::from_parts(32_675_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 47_435 nanoseconds. - Weight::from_ref_time(48_261_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 44_126_000 picoseconds. + Weight::from_parts(44_567_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 40_045 nanoseconds. - Weight::from_ref_time(41_239_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 39_414_000 picoseconds. + Weight::from_parts(39_891_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 47_806 nanoseconds. - Weight::from_ref_time(48_396_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 44_875_000 picoseconds. + Weight::from_parts(45_961_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn freeze() -> Weight { - // Minimum execution time: 22_102 nanoseconds. - Weight::from_ref_time(22_509_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 18_388_000 picoseconds. + Weight::from_parts(18_718_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn thaw() -> Weight { - // Minimum execution time: 22_072 nanoseconds. - Weight::from_ref_time(22_580_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 18_292_000 picoseconds. + Weight::from_parts(18_633_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn freeze_asset() -> Weight { - // Minimum execution time: 18_328 nanoseconds. - Weight::from_ref_time(19_071_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 14_604_000 picoseconds. + Weight::from_parts(14_980_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn thaw_asset() -> Weight { - // Minimum execution time: 18_443 nanoseconds. - Weight::from_ref_time(18_827_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 14_008_000 picoseconds. + Weight::from_parts(14_428_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Metadata (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:0) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn transfer_ownership() -> Weight { - // Minimum execution time: 19_299 nanoseconds. - Weight::from_ref_time(19_760_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 15_453_000 picoseconds. + Weight::from_parts(15_963_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn set_team() -> Weight { - // Minimum execution time: 18_116 nanoseconds. - Weight::from_ref_time(18_443_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 14_515_000 picoseconds. + Weight::from_parts(14_835_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn set_metadata(n: u32, s: u32, ) -> Weight { - // Minimum execution time: 30_356 nanoseconds. - Weight::from_ref_time(31_550_248) - // Standard Error: 694 - .saturating_add(Weight::from_ref_time(1_106).saturating_mul(n.into())) - // Standard Error: 694 - .saturating_add(Weight::from_ref_time(3_279).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 25_865_000 picoseconds. + Weight::from_parts(26_845_899, 0) + .saturating_add(Weight::from_parts(0, 7280)) + // Standard Error: 1_061 + .saturating_add(Weight::from_parts(4_438, 0).saturating_mul(n.into())) + // Standard Error: 1_061 + .saturating_add(Weight::from_parts(5_130, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn clear_metadata() -> Weight { - // Minimum execution time: 31_932 nanoseconds. - Weight::from_ref_time(32_361_000) + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `7280` + // Minimum execution time: 25_970_000 picoseconds. + Weight::from_parts(26_439_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. - fn force_set_metadata(_n: u32, s: u32, ) -> Weight { - // Minimum execution time: 18_761 nanoseconds. - Weight::from_ref_time(19_552_398) - // Standard Error: 474 - .saturating_add(Weight::from_ref_time(2_154).saturating_mul(s.into())) + fn force_set_metadata(n: u32, s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `7280` + // Minimum execution time: 14_101_000 picoseconds. + Weight::from_parts(14_786_155, 0) + .saturating_add(Weight::from_parts(0, 7280)) + // Standard Error: 383 + .saturating_add(Weight::from_parts(581, 0).saturating_mul(n.into())) + // Standard Error: 383 + .saturating_add(Weight::from_parts(4_514, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn force_clear_metadata() -> Weight { - // Minimum execution time: 32_277 nanoseconds. - Weight::from_ref_time(32_731_000) + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `7280` + // Minimum execution time: 26_563_000 picoseconds. + Weight::from_parts(26_733_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn force_asset_status() -> Weight { - // Minimum execution time: 17_900 nanoseconds. - Weight::from_ref_time(18_308_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_948_000 picoseconds. + Weight::from_parts(14_330_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn approve_transfer() -> Weight { - // Minimum execution time: 34_401 nanoseconds. - Weight::from_ref_time(34_919_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `7288` + // Minimum execution time: 30_307_000 picoseconds. + Weight::from_parts(30_677_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_approved() -> Weight { - // Minimum execution time: 62_224 nanoseconds. - Weight::from_ref_time(63_423_000) + // Proof Size summary in bytes: + // Measured: `521` + // Estimated: `17025` + // Minimum execution time: 59_228_000 picoseconds. + Weight::from_parts(59_702_000, 0) + .saturating_add(Weight::from_parts(0, 17025)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn cancel_approval() -> Weight { - // Minimum execution time: 36_283 nanoseconds. - Weight::from_ref_time(36_947_000) + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `7288` + // Minimum execution time: 31_228_000 picoseconds. + Weight::from_parts(31_564_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn force_cancel_approval() -> Weight { - // Minimum execution time: 36_261 nanoseconds. - Weight::from_ref_time(36_524_000) + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `7288` + // Minimum execution time: 32_931_000 picoseconds. + Weight::from_parts(33_406_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 15_084_000 picoseconds. + Weight::from_parts(15_358_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_balances.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_balances.rs index 7e6fdd2cab0..05c105d38bf 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_balances.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_balances.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,52 +47,87 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_balances`. pub struct WeightInfo(PhantomData); impl pallet_balances::WeightInfo for WeightInfo { - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 42_089 nanoseconds. - Weight::from_ref_time(42_634_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 35_757_000 picoseconds. + Weight::from_parts(36_417_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 32_299 nanoseconds. - Weight::from_ref_time(32_672_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 27_074_000 picoseconds. + Weight::from_parts(27_335_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - // Minimum execution time: 23_721 nanoseconds. - Weight::from_ref_time(24_222_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 16_753_000 picoseconds. + Weight::from_parts(17_141_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - // Minimum execution time: 26_112 nanoseconds. - Weight::from_ref_time(26_748_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 20_459_000 picoseconds. + Weight::from_parts(20_848_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:2 w:2) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 41_276 nanoseconds. - Weight::from_ref_time(41_815_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 41_036_000 picoseconds. + Weight::from_parts(41_265_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - // Minimum execution time: 37_021 nanoseconds. - Weight::from_ref_time(37_426_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 35_925_000 picoseconds. + Weight::from_parts(36_511_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - // Minimum execution time: 20_580 nanoseconds. - Weight::from_ref_time(21_111_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 16_377_000 picoseconds. + Weight::from_parts(16_722_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_collator_selection.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_collator_selection.rs index 910e0e8ccd2..e86fa5544d0 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_collator_selection.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_collator_selection.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,79 +47,131 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) /// The range of component `b` is `[1, 100]`. fn set_invulnerables(b: u32, ) -> Weight { - // Minimum execution time: 20_533 nanoseconds. - Weight::from_ref_time(22_073_686) - // Standard Error: 2_818 - .saturating_add(Weight::from_ref_time(2_219_530).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `178 + b * (78 ±0)` + // Estimated: `1168 + b * (2554 ±0)` + // Minimum execution time: 15_372_000 picoseconds. + Weight::from_parts(16_916_596, 0) + .saturating_add(Weight::from_parts(0, 1168)) + // Standard Error: 3_537 + .saturating_add(Weight::from_parts(2_583_561, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_desired_candidates() -> Weight { - // Minimum execution time: 13_236 nanoseconds. - Weight::from_ref_time(13_781_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_637_000 picoseconds. + Weight::from_parts(7_821_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 13_134 nanoseconds. - Weight::from_ref_time(13_521_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_838_000 picoseconds. + Weight::from_parts(8_092_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[1, 999]`. fn register_as_candidate(c: u32, ) -> Weight { - // Minimum execution time: 44_217 nanoseconds. - Weight::from_ref_time(40_364_036) - // Standard Error: 1_089 - .saturating_add(Weight::from_ref_time(127_363).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `1108 + c * (48 ±0)` + // Estimated: `61671 + c * (49 ±0)` + // Minimum execution time: 37_630_000 picoseconds. + Weight::from_parts(30_551_625, 0) + .saturating_add(Weight::from_parts(0, 61671)) + // Standard Error: 1_282 + .saturating_add(Weight::from_parts(112_510, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[6, 1000]`. fn leave_intent(c: u32, ) -> Weight { - // Minimum execution time: 34_038 nanoseconds. - Weight::from_ref_time(27_873_550) - // Standard Error: 974 - .saturating_add(Weight::from_ref_time(122_729).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `452 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 29_525_000 picoseconds. + Weight::from_parts(19_433_082, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_290 + .saturating_add(Weight::from_parts(108_444, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:2 w:2) - // Storage: System BlockWeight (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) fn note_author() -> Weight { - // Minimum execution time: 30_009 nanoseconds. - Weight::from_ref_time(30_367_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `7729` + // Minimum execution time: 29_428_000 picoseconds. + Weight::from_parts(29_752_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:1000 w:1) - // Storage: System Account (r:1 w:1) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: System BlockWeight (r:1 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:995 w:995) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `r` is `[1, 1000]`. /// The range of component `c` is `[1, 1000]`. - fn new_session(_r: u32, c: u32, ) -> Weight { - // Minimum execution time: 20_379 nanoseconds. - Weight::from_ref_time(20_561_000) - // Standard Error: 745_279 - .saturating_add(Weight::from_ref_time(26_681_327).saturating_mul(c.into())) + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22721 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + r * (2602 ±0) + c * (2520 ±0)` + // Minimum execution time: 17_105_000 picoseconds. + Weight::from_parts(17_304_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 839_957 + .saturating_add(Weight::from_parts(30_183_103, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2602).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_multisig.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_multisig.rs index e045ec0af7c..2a93d9e41c2 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_multisig.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_multisig.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,21 +17,23 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// ./artifacts/polkadot-parachain // benchmark // pallet // --chain=statemint-dev // --execution=wasm // --wasm-execution=compiled // --pallet=pallet_multisig -// --extrinsic= +// --extrinsic=* // --steps=50 // --repeat=20 +// --json // --header=./file_header.txt // --output=./parachains/runtimes/assets/statemint/src/weights/pallet_multisig.rs @@ -47,80 +49,113 @@ pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - // Minimum execution time: 15_515 nanoseconds. - Weight::from_ref_time(15_923_915) - // Standard Error: 2 - .saturating_add(Weight::from_ref_time(543).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_445_000 picoseconds. + Weight::from_parts(12_887_726, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(608, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 44_150 nanoseconds. - Weight::from_ref_time(36_429_036) - // Standard Error: 770 - .saturating_add(Weight::from_ref_time(87_020).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `262 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 38_178_000 picoseconds. + Weight::from_parts(31_903_342, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 743 + .saturating_add(Weight::from_parts(67_484, 0).saturating_mul(s.into())) // Standard Error: 7 - .saturating_add(Weight::from_ref_time(1_568).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(Weight::from_parts(1_353, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 34_522 nanoseconds. - Weight::from_ref_time(27_056_839) - // Standard Error: 879 - .saturating_add(Weight::from_ref_time(81_564).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_ref_time(1_554).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 28_095_000 picoseconds. + Weight::from_parts(22_610_540, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 571 + .saturating_add(Weight::from_parts(59_325, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_310, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 48_530 nanoseconds. - Weight::from_ref_time(39_011_142) - // Standard Error: 1_112 - .saturating_add(Weight::from_ref_time(102_217).saturating_mul(s.into())) - // Standard Error: 10 - .saturating_add(Weight::from_ref_time(1_585).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `385 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 43_571_000 picoseconds. + Weight::from_parts(35_747_616, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 555 + .saturating_add(Weight::from_parts(86_297, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_333, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - // Minimum execution time: 31_849 nanoseconds. - Weight::from_ref_time(35_132_911) - // Standard Error: 1_202 - .saturating_add(Weight::from_ref_time(93_477).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 29_122_000 picoseconds. + Weight::from_parts(30_681_183, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 787 + .saturating_add(Weight::from_parts(69_464, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - // Minimum execution time: 23_309 nanoseconds. - Weight::from_ref_time(25_684_371) - // Standard Error: 709 - .saturating_add(Weight::from_ref_time(85_857).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 19_219_000 picoseconds. + Weight::from_parts(20_598_069, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 572 + .saturating_add(Weight::from_parts(66_940, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - // Minimum execution time: 32_251 nanoseconds. - Weight::from_ref_time(35_331_884) - // Standard Error: 1_201 - .saturating_add(Weight::from_ref_time(92_906).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 29_859_000 picoseconds. + Weight::from_parts(31_610_947, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 739 + .saturating_add(Weight::from_parts(70_349, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_proxy.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_proxy.rs index 0be46d4004f..1471920ba2f 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_proxy.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_proxy.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,121 +47,176 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_proxy`. pub struct WeightInfo(PhantomData); impl pallet_proxy::WeightInfo for WeightInfo { - // Storage: Proxy Proxies (r:1 w:0) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { - // Minimum execution time: 21_377 nanoseconds. - Weight::from_ref_time(22_489_158) - // Standard Error: 1_714 - .saturating_add(Weight::from_ref_time(44_904).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 17_484_000 picoseconds. + Weight::from_parts(17_998_669, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_091 + .saturating_add(Weight::from_parts(33_441, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 39_613 nanoseconds. - Weight::from_ref_time(39_452_331) - // Standard Error: 1_633 - .saturating_add(Weight::from_ref_time(130_771).saturating_mul(a.into())) - // Standard Error: 1_687 - .saturating_add(Weight::from_ref_time(45_617).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 35_828_000 picoseconds. + Weight::from_parts(36_241_110, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 2_219 + .saturating_add(Weight::from_parts(156_309, 0).saturating_mul(a.into())) + // Standard Error: 2_292 + .saturating_add(Weight::from_parts(32_167, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 28_265 nanoseconds. - Weight::from_ref_time(29_511_001) - // Standard Error: 2_681 - .saturating_add(Weight::from_ref_time(96_170).saturating_mul(a.into())) - // Standard Error: 2_770 - .saturating_add(Weight::from_ref_time(4_079).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 22_512_000 picoseconds. + Weight::from_parts(23_254_777, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_318 + .saturating_add(Weight::from_parts(148_302, 0).saturating_mul(a.into())) + // Standard Error: 1_362 + .saturating_add(Weight::from_parts(13_945, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 27_527 nanoseconds. - Weight::from_ref_time(28_797_699) - // Standard Error: 1_457 - .saturating_add(Weight::from_ref_time(114_616).saturating_mul(a.into())) - // Standard Error: 1_505 - .saturating_add(Weight::from_ref_time(9_138).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 22_528_000 picoseconds. + Weight::from_parts(23_510_728, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_393 + .saturating_add(Weight::from_parts(143_817, 0).saturating_mul(a.into())) + // Standard Error: 1_439 + .saturating_add(Weight::from_parts(9_334, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 36_013 nanoseconds. - Weight::from_ref_time(36_879_251) - // Standard Error: 1_931 - .saturating_add(Weight::from_ref_time(107_016).saturating_mul(a.into())) - // Standard Error: 1_995 - .saturating_add(Weight::from_ref_time(43_613).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 31_233_000 picoseconds. + Weight::from_parts(32_142_917, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 1_888 + .saturating_add(Weight::from_parts(142_949, 0).saturating_mul(a.into())) + // Standard Error: 1_951 + .saturating_add(Weight::from_parts(46_737, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { - // Minimum execution time: 29_509 nanoseconds. - Weight::from_ref_time(30_966_207) - // Standard Error: 2_273 - .saturating_add(Weight::from_ref_time(56_195).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 24_085_000 picoseconds. + Weight::from_parts(25_032_056, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_758 + .saturating_add(Weight::from_parts(52_203, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { - // Minimum execution time: 28_747 nanoseconds. - Weight::from_ref_time(30_716_505) - // Standard Error: 2_029 - .saturating_add(Weight::from_ref_time(87_941).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_678_000 picoseconds. + Weight::from_parts(24_981_101, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_874 + .saturating_add(Weight::from_parts(73_774, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { - // Minimum execution time: 25_788 nanoseconds. - Weight::from_ref_time(26_975_282) - // Standard Error: 1_718 - .saturating_add(Weight::from_ref_time(40_720).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 19_119_000 picoseconds. + Weight::from_parts(19_982_142, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_174 + .saturating_add(Weight::from_parts(26_182, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn create_pure(p: u32, ) -> Weight { - // Minimum execution time: 31_514 nanoseconds. - Weight::from_ref_time(33_130_868) - // Standard Error: 1_738 - .saturating_add(Weight::from_ref_time(24_538).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 26_077_000 picoseconds. + Weight::from_parts(27_130_205, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_539 + .saturating_add(Weight::from_parts(1_625, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { - // Minimum execution time: 27_707 nanoseconds. - Weight::from_ref_time(28_793_891) - // Standard Error: 1_525 - .saturating_add(Weight::from_ref_time(38_793).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 20_178_000 picoseconds. + Weight::from_parts(21_090_914, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_488 + .saturating_add(Weight::from_parts(36_285, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_session.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_session.rs index 362e0e9c8d3..87458dcd84b 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_session.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_session.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,19 +47,31 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:1 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - // Minimum execution time: 22_362 nanoseconds. - Weight::from_ref_time(23_023_000) + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `7470` + // Minimum execution time: 17_008_000 picoseconds. + Weight::from_parts(17_288_000, 0) + .saturating_add(Weight::from_parts(0, 7470)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:0 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - // Minimum execution time: 18_914 nanoseconds. - Weight::from_ref_time(19_452_000) + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3949` + // Minimum execution time: 13_427_000 picoseconds. + Weight::from_parts(13_609_000, 0) + .saturating_add(Weight::from_parts(0, 3949)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_timestamp.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_timestamp.rs index 77d59062435..75d47ae1fd6 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_timestamp.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,16 +47,26 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_timestamp`. pub struct WeightInfo(PhantomData); impl pallet_timestamp::WeightInfo for WeightInfo { - // Storage: Timestamp Now (r:1 w:1) - // Storage: Aura CurrentSlot (r:1 w:0) + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - // Minimum execution time: 9_174 nanoseconds. - Weight::from_ref_time(9_480_000) + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `2986` + // Minimum execution time: 9_174_000 picoseconds. + Weight::from_parts(9_644_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { - // Minimum execution time: 3_748 nanoseconds. - Weight::from_ref_time(3_835_000) + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_121_000 picoseconds. + Weight::from_parts(3_205_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_uniques.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_uniques.rs index 54fc8c4ccbf..1c33a12ab3d 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_uniques.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_uniques.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_uniques` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,242 +47,417 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_uniques`. pub struct WeightInfo(PhantomData); impl pallet_uniques::WeightInfo for WeightInfo { - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn create() -> Weight { - // Minimum execution time: 29_979 nanoseconds. - Weight::from_ref_time(30_823_000) + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3643` + // Minimum execution time: 26_653_000 picoseconds. + Weight::from_parts(27_024_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn force_create() -> Weight { - // Minimum execution time: 20_431 nanoseconds. - Weight::from_ref_time(20_789_000) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3643` + // Minimum execution time: 15_168_000 picoseconds. + Weight::from_parts(15_535_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:1 w:0) - // Storage: Uniques ClassAccount (r:0 w:1) - // Storage: Uniques Attribute (r:0 w:1000) - // Storage: Uniques ClassMetadataOf (r:0 w:1) - // Storage: Uniques InstanceMetadataOf (r:0 w:1000) - // Storage: Uniques CollectionMaxSupply (r:0 w:1) - // Storage: Uniques Account (r:0 w:20) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1001 w:1000) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1000 w:1000) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1000 w:1000) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:0 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1000) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques CollectionMaxSupply (r:0 w:1) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) /// The range of component `n` is `[0, 1000]`. /// The range of component `m` is `[0, 1000]`. /// The range of component `a` is `[0, 1000]`. fn destroy(n: u32, m: u32, a: u32, ) -> Weight { - // Minimum execution time: 2_336_630 nanoseconds. - Weight::from_ref_time(2_360_459_000) - // Standard Error: 26_301 - .saturating_add(Weight::from_ref_time(8_279_472).saturating_mul(n.into())) - // Standard Error: 26_301 - .saturating_add(Weight::from_ref_time(232_669).saturating_mul(m.into())) - // Standard Error: 26_301 - .saturating_add(Weight::from_ref_time(307_377).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `257 + n * (76 ±0) + m * (56 ±0) + a * (107 ±0)` + // Estimated: `9210 + n * (2597 ±0) + m * (2662 ±0) + a * (2647 ±0)` + // Minimum execution time: 2_365_108_000 picoseconds. + Weight::from_parts(2_380_000_000, 0) + .saturating_add(Weight::from_parts(0, 9210)) + // Standard Error: 24_588 + .saturating_add(Weight::from_parts(6_339_196, 0).saturating_mul(n.into())) + // Standard Error: 24_588 + .saturating_add(Weight::from_parts(265_876, 0).saturating_mul(m.into())) + // Standard Error: 24_588 + .saturating_add(Weight::from_parts(316_327, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques CollectionMaxSupply (r:1 w:0) - // Storage: Uniques Account (r:0 w:1) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques CollectionMaxSupply (r:1 w:0) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) fn mint() -> Weight { - // Minimum execution time: 37_821 nanoseconds. - Weight::from_ref_time(38_389_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `10719` + // Minimum execution time: 32_891_000 picoseconds. + Weight::from_parts(33_169_000, 0) + .saturating_add(Weight::from_parts(0, 10719)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Account (r:0 w:1) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn burn() -> Weight { - // Minimum execution time: 40_176 nanoseconds. - Weight::from_ref_time(40_413_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 33_895_000 picoseconds. + Weight::from_parts(34_205_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Account (r:0 w:2) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:2) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 31_074 nanoseconds. - Weight::from_ref_time(31_629_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 27_841_000 picoseconds. + Weight::from_parts(28_213_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:102 w:102) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:5000 w:5000) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) /// The range of component `i` is `[0, 5000]`. fn redeposit(i: u32, ) -> Weight { - // Minimum execution time: 20_792 nanoseconds. - Weight::from_ref_time(20_936_000) - // Standard Error: 14_018 - .saturating_add(Weight::from_ref_time(11_130_081).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `738 + i * (76 ±0)` + // Estimated: `4633 + i * (2597 ±0)` + // Minimum execution time: 16_054_000 picoseconds. + Weight::from_parts(16_331_000, 0) + .saturating_add(Weight::from_parts(0, 4633)) + // Standard Error: 12_166 + .saturating_add(Weight::from_parts(13_413_428, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn freeze() -> Weight { - // Minimum execution time: 24_049 nanoseconds. - Weight::from_ref_time(24_456_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 19_419_000 picoseconds. + Weight::from_parts(19_724_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn thaw() -> Weight { - // Minimum execution time: 23_941 nanoseconds. - Weight::from_ref_time(24_402_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 20_053_000 picoseconds. + Weight::from_parts(23_080_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn freeze_collection() -> Weight { - // Minimum execution time: 19_759 nanoseconds. - Weight::from_ref_time(20_029_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 15_569_000 picoseconds. + Weight::from_parts(16_658_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn thaw_collection() -> Weight { - // Minimum execution time: 19_735 nanoseconds. - Weight::from_ref_time(20_157_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 15_350_000 picoseconds. + Weight::from_parts(15_771_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques OwnershipAcceptance (r:1 w:1) - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:2) + /// Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Proof: Uniques OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:2) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn transfer_ownership() -> Weight { - // Minimum execution time: 27_888 nanoseconds. - Weight::from_ref_time(28_286_000) + // Proof Size summary in bytes: + // Measured: `356` + // Estimated: `7160` + // Minimum execution time: 23_564_000 picoseconds. + Weight::from_parts(24_005_000, 0) + .saturating_add(Weight::from_parts(0, 7160)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn set_team() -> Weight { - // Minimum execution time: 20_719 nanoseconds. - Weight::from_ref_time(21_372_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 16_165_000 picoseconds. + Weight::from_parts(16_482_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn force_item_status() -> Weight { - // Minimum execution time: 23_332 nanoseconds. - Weight::from_ref_time(23_729_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 18_377_000 picoseconds. + Weight::from_parts(19_060_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:0) - // Storage: Uniques Attribute (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:0) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1 w:1) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) fn set_attribute() -> Weight { - // Minimum execution time: 44_197 nanoseconds. - Weight::from_ref_time(44_890_000) + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `10932` + // Minimum execution time: 39_403_000 picoseconds. + Weight::from_parts(39_925_000, 0) + .saturating_add(Weight::from_parts(0, 10932)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:0) - // Storage: Uniques Attribute (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:0) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1 w:1) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) fn clear_attribute() -> Weight { - // Minimum execution time: 43_965 nanoseconds. - Weight::from_ref_time(44_326_000) + // Proof Size summary in bytes: + // Measured: `756` + // Estimated: `10932` + // Minimum execution time: 36_786_000 picoseconds. + Weight::from_parts(37_558_000, 0) + .saturating_add(Weight::from_parts(0, 10932)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) fn set_metadata() -> Weight { - // Minimum execution time: 35_462 nanoseconds. - Weight::from_ref_time(35_821_000) + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `7295` + // Minimum execution time: 30_327_000 picoseconds. + Weight::from_parts(30_769_000, 0) + .saturating_add(Weight::from_parts(0, 7295)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) fn clear_metadata() -> Weight { - // Minimum execution time: 36_443 nanoseconds. - Weight::from_ref_time(37_893_000) + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `7295` + // Minimum execution time: 29_756_000 picoseconds. + Weight::from_parts(31_077_000, 0) + .saturating_add(Weight::from_parts(0, 7295)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) fn set_collection_metadata() -> Weight { - // Minimum execution time: 34_787 nanoseconds. - Weight::from_ref_time(35_466_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `7275` + // Minimum execution time: 29_811_000 picoseconds. + Weight::from_parts(30_220_000, 0) + .saturating_add(Weight::from_parts(0, 7275)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) fn clear_collection_metadata() -> Weight { - // Minimum execution time: 33_943 nanoseconds. - Weight::from_ref_time(34_276_000) + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `7275` + // Minimum execution time: 27_708_000 picoseconds. + Weight::from_parts(28_309_000, 0) + .saturating_add(Weight::from_parts(0, 7275)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) fn approve_transfer() -> Weight { - // Minimum execution time: 25_769 nanoseconds. - Weight::from_ref_time(26_260_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 21_525_000 picoseconds. + Weight::from_parts(21_784_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) fn cancel_approval() -> Weight { - // Minimum execution time: 26_005 nanoseconds. - Weight::from_ref_time(26_592_000) + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `7230` + // Minimum execution time: 21_605_000 picoseconds. + Weight::from_parts(21_805_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Proof: Uniques OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn set_accept_ownership() -> Weight { - // Minimum execution time: 23_822 nanoseconds. - Weight::from_ref_time(24_168_000) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 17_046_000 picoseconds. + Weight::from_parts(17_387_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques CollectionMaxSupply (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques CollectionMaxSupply (r:1 w:1) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn set_collection_max_supply() -> Weight { - // Minimum execution time: 22_531 nanoseconds. - Weight::from_ref_time(22_908_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `7132` + // Minimum execution time: 18_453_000 picoseconds. + Weight::from_parts(18_716_000, 0) + .saturating_add(Weight::from_parts(0, 7132)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:0) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Asset (r:1 w:0) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn set_price() -> Weight { - // Minimum execution time: 23_044 nanoseconds. - Weight::from_ref_time(23_469_000) + // Proof Size summary in bytes: + // Measured: `259` + // Estimated: `3587` + // Minimum execution time: 17_965_000 picoseconds. + Weight::from_parts(18_347_000, 0) + .saturating_add(Weight::from_parts(0, 3587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques ItemPriceOf (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Account (r:0 w:2) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:1 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:2) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) fn buy_item() -> Weight { - // Minimum execution time: 40_549 nanoseconds. - Weight::from_ref_time(41_982_000) + // Proof Size summary in bytes: + // Measured: `540` + // Estimated: `10784` + // Minimum execution time: 38_974_000 picoseconds. + Weight::from_parts(39_420_000, 0) + .saturating_add(Weight::from_parts(0, 10784)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_utility.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_utility.rs index 0fc4e34bda1..d14fdba6fad 100644 --- a/parachains/runtimes/assets/statemint/src/weights/pallet_utility.rs +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_utility.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -48,31 +49,51 @@ pub struct WeightInfo(PhantomData); impl pallet_utility::WeightInfo for WeightInfo { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - // Minimum execution time: 12_596 nanoseconds. - Weight::from_ref_time(23_876_503) - // Standard Error: 2_470 - .saturating_add(Weight::from_ref_time(3_650_505).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_357_000 picoseconds. + Weight::from_parts(16_071_177, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_492 + .saturating_add(Weight::from_parts(5_041_311, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 6_424 nanoseconds. - Weight::from_ref_time(6_541_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_903_000 picoseconds. + Weight::from_parts(6_075_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - // Minimum execution time: 12_873 nanoseconds. - Weight::from_ref_time(16_562_373) - // Standard Error: 3_653 - .saturating_add(Weight::from_ref_time(3_854_429).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_616_000 picoseconds. + Weight::from_parts(17_676_240, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_274 + .saturating_add(Weight::from_parts(5_358_895, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 14_691 nanoseconds. - Weight::from_ref_time(15_077_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 10_072_000 picoseconds. + Weight::from_parts(10_405_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - // Minimum execution time: 12_340 nanoseconds. - Weight::from_ref_time(17_476_684) - // Standard Error: 2_684 - .saturating_add(Weight::from_ref_time(3_661_082).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_207_000 picoseconds. + Weight::from_parts(18_974_639, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_301 + .saturating_add(Weight::from_parts(5_025_161, 0).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs b/parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..26e19764b8a --- /dev/null +++ b/parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs @@ -0,0 +1,276 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=statemint-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/statemint/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `9595` + // Minimum execution time: 27_505_000 picoseconds. + Weight::from_parts(27_841_000, 0) + .saturating_add(Weight::from_parts(0, 9595)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 27_156_000 picoseconds. + Weight::from_parts(27_641_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 20_954_000 picoseconds. + Weight::from_parts(21_381_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn execute() -> 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 Skipped: 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: 10_560_000 picoseconds. + Weight::from_parts(10_752_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_451_000 picoseconds. + Weight::from_parts(3_580_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `14659` + // Minimum execution time: 33_607_000 picoseconds. + Weight::from_parts(33_917_000, 0) + .saturating_add(Weight::from_parts(0, 14659)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `14410` + // Minimum execution time: 35_300_000 picoseconds. + Weight::from_parts(35_783_000, 0) + .saturating_add(Weight::from_parts(0, 14410)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_664_000 picoseconds. + Weight::from_parts(15_908_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 15_376_000 picoseconds. + Weight::from_parts(15_780_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 15_898_000 picoseconds. + Weight::from_parts(16_159_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `15981` + // Minimum execution time: 31_267_000 picoseconds. + Weight::from_parts(31_635_000, 0) + .saturating_add(Weight::from_parts(0, 15981)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_659_000 picoseconds. + Weight::from_parts(8_983_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 16_025_000 picoseconds. + Weight::from_parts(16_296_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `20967` + // Minimum execution time: 37_654_000 picoseconds. + Weight::from_parts(38_144_000, 0) + .saturating_add(Weight::from_parts(0, 20967)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs b/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs index 1a0ffcdb229..5e06dc7e746 100644 --- a/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs +++ b/parachains/runtimes/assets/statemint/src/weights/xcm/mod.rs @@ -21,168 +21,223 @@ use crate::Runtime; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::{cmp, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XCMWeight}, - DoubleEncoded, -}; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight; + fn weigh_multi_assets(&self, weight: Weight) -> Weight; } -const MAX_ASSETS: u32 = 100; +const MAX_ASSETS: u64 = 100; impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - let weight = match self { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { Self::Definite(assets) => weight.saturating_mul(assets.inner().into_iter().count() as u64), Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64), - }; - weight.ref_time() + } } } impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - weight.saturating_mul(self.inner().into_iter().count() as u64).ref_time() + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().into_iter().count() as u64) } } pub struct StatemintXcmWeight(core::marker::PhantomData); impl XcmWeightInfo for StatemintXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) } // Currently there is no trusted reserve - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { - u64::MAX + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + Weight::from_parts(1_000_000_000 as u64, 0) } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } - fn query_response(_query_id: &u64, _response: &Response, _max_weight: &u64) -> XCMWeight { - XcmGeneric::::query_response().ref_time() + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) } fn transfer_reserve_asset( assets: &MultiAssets, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &u64, + _require_weight_at_most: &Weight, _call: &DoubleEncoded, - ) -> XCMWeight { - XcmGeneric::::transact().ref_time() + ) -> Weight { + XcmGeneric::::transact() } fn hrmp_new_channel_open_request( _sender: &u32, _max_message_size: &u32, _max_capacity: &u32, - ) -> XCMWeight { + ) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_accepted(_recipient: &u32) -> XCMWeight { + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> XCMWeight { + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn clear_origin() -> XCMWeight { - XcmGeneric::::clear_origin().ref_time() + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { - XcmGeneric::::descend_origin().ref_time() + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() } - fn report_error( - _query_id: &QueryId, - _dest: &MultiLocation, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::report_error().ref_time() + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() } - fn deposit_asset( - assets: &MultiAssetFilter, - _max_assets: &u32, - _dest: &MultiLocation, - ) -> XCMWeight { + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(1_000_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(1_000_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } fn deposit_reserve_asset( assets: &MultiAssetFilter, - _max_assets: &u32, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets) -> XCMWeight { - Weight::MAX.ref_time() + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX } fn initiate_reserve_withdraw( assets: &MultiAssetFilter, _reserve: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) } fn initiate_teleport( assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(200_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(200_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } - fn query_holding( - _query_id: &u64, - _dest: &MultiLocation, - _assets: &MultiAssetFilter, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::query_holding().ref_time() + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { - XcmGeneric::::buy_execution().ref_time() + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn refund_surplus() -> XCMWeight { - XcmGeneric::::refund_surplus().ref_time() + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_error_handler(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_error_handler().ref_time() + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_appendix(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_appendix().ref_time() + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn clear_error() -> XCMWeight { - XcmGeneric::::clear_error().ref_time() + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { - XcmGeneric::::claim_asset().ref_time() + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() } - fn trap(_code: &u64) -> XCMWeight { - XcmGeneric::::trap().ref_time() + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &u64) -> XCMWeight { - XcmGeneric::::subscribe_version().ref_time() + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX } - fn unsubscribe_version() -> XCMWeight { - XcmGeneric::::unsubscribe_version().ref_time() + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() } } diff --git a/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 338aafb1d30..147a348b19d 100644 --- a/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::fungible` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -49,59 +49,110 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: System Account (r:1 w:1) - pub(crate) fn withdraw_asset() -> Weight { - Weight::from_ref_time(31_628_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 23_489_000 picoseconds. + Weight::from_parts(23_993_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:2 w:2) - pub(crate) fn transfer_asset() -> Weight { - Weight::from_ref_time(36_286_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 32_933_000 picoseconds. + Weight::from_parts(33_445_000, 6196) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn transfer_reserve_asset() -> Weight { - Weight::from_ref_time(51_189_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `17785` + // Minimum execution time: 56_285_000 picoseconds. + Weight::from_parts(56_858_000, 17785) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) } - pub(crate) fn receive_teleported_asset() -> Weight { - Weight::from_ref_time(6_157_000 as u64) + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_900_000 picoseconds. + Weight::from_parts(4_996_000, 0) } // Storage: System Account (r:1 w:1) - pub(crate) fn deposit_asset() -> Weight { - Weight::from_ref_time(32_614_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_047_000 picoseconds. + Weight::from_parts(26_408_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn deposit_reserve_asset() -> Weight { - Weight::from_ref_time(49_945_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `14677` + // Minimum execution time: 48_997_000 picoseconds. + Weight::from_parts(49_605_000, 14677) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_teleport() -> Weight { - Weight::from_ref_time(26_905_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `11084` + // Minimum execution time: 31_114_000 picoseconds. + Weight::from_parts(31_825_000, 11084) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 91d5d5cd102..ca264e8fa17 100644 --- a/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/parachains/runtimes/assets/statemint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("statemint-dev"), DB CACHE: 1024 // Executed Command: @@ -49,89 +49,300 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn query_holding() -> Weight { - Weight::from_ref_time(684_287_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `11084` + // Minimum execution time: 452_120_000 picoseconds. + Weight::from_parts(453_246_000, 11084) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - pub(crate) fn buy_execution() -> Weight { - Weight::from_ref_time(8_580_000 as u64) + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_323_000 picoseconds. + Weight::from_parts(4_409_000, 0) } // Storage: PolkadotXcm Queries (r:1 w:0) - pub(crate) fn query_response() -> Weight { - Weight::from_ref_time(16_082_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 12_046_000 picoseconds. + Weight::from_parts(12_316_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) } - pub(crate) fn transact() -> Weight { - Weight::from_ref_time(19_394_000 as u64) + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 14_603_000 picoseconds. + Weight::from_parts(14_929_000, 0) } - pub(crate) fn refund_surplus() -> Weight { - Weight::from_ref_time(8_833_000 as u64) + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_461_000 picoseconds. + Weight::from_parts(4_655_000, 0) } - pub(crate) fn set_error_handler() -> Weight { - Weight::from_ref_time(5_128_000 as u64) + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_400_000 picoseconds. + Weight::from_parts(3_487_000, 0) } - pub(crate) fn set_appendix() -> Weight { - Weight::from_ref_time(5_081_000 as u64) + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_337_000 picoseconds. + Weight::from_parts(3_403_000, 0) } - pub(crate) fn clear_error() -> Weight { - Weight::from_ref_time(5_196_000 as u64) + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_259_000 picoseconds. + Weight::from_parts(3_350_000, 0) } - pub(crate) fn descend_origin() -> Weight { - Weight::from_ref_time(6_199_000 as u64) + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_292_000 picoseconds. + Weight::from_parts(4_471_000, 0) } - pub(crate) fn clear_origin() -> Weight { - Weight::from_ref_time(5_078_000 as u64) + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_281_000 picoseconds. + Weight::from_parts(3_329_000, 0) } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn report_error() -> Weight { - Weight::from_ref_time(14_742_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `11084` + // Minimum execution time: 26_054_000 picoseconds. + Weight::from_parts(26_386_000, 11084) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: PolkadotXcm AssetTraps (r:1 w:1) - pub(crate) fn claim_asset() -> Weight { - Weight::from_ref_time(20_490_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm AssetTraps (max_values: None, max_size: None, mode: Measured) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 16_413_000 picoseconds. + Weight::from_parts(16_590_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - pub(crate) fn trap() -> Weight { - Weight::from_ref_time(5_024_000 as u64) + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_314_000 picoseconds. + Weight::from_parts(3_410_000, 0) } // Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn subscribe_version() -> Weight { - Weight::from_ref_time(17_473_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `13098` + // Minimum execution time: 28_232_000 picoseconds. + Weight::from_parts(28_661_000, 13098) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1) - pub(crate) fn unsubscribe_version() -> Weight { - Weight::from_ref_time(7_230_000 as u64) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_517_000 picoseconds. + Weight::from_parts(5_596_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `11084` + // Minimum execution time: 502_759_000 picoseconds. + Weight::from_parts(504_262_000, 11084) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 157_990_000 picoseconds. + Weight::from_parts(158_216_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 15_005_000 picoseconds. + Weight::from_parts(15_203_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_475_000 picoseconds. + Weight::from_parts(3_522_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_343_000 picoseconds. + Weight::from_parts(3_417_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_519_000 picoseconds. + Weight::from_parts(3_625_000, 0) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_reserve_withdraw() -> Weight { - Weight::from_ref_time(897_033_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `11084` + // Minimum execution time: 29_760_000 picoseconds. + Weight::from_parts(30_340_000, 11084) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_732_000 picoseconds. + Weight::from_parts(5_858_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `11084` + // Minimum execution time: 26_440_000 picoseconds. + Weight::from_parts(26_870_000, 11084) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_334_000 picoseconds. + Weight::from_parts(3_408_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_263_000 picoseconds. + Weight::from_parts(3_380_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_338_000 picoseconds. + Weight::from_parts(3_388_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_286_000 picoseconds. + Weight::from_parts(3_384_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_494_000 picoseconds. + Weight::from_parts(3_563_000, 0) } } diff --git a/parachains/runtimes/assets/statemint/src/xcm_config.rs b/parachains/runtimes/assets/statemint/src/xcm_config.rs index 0095e4fd1e3..0bb2c5ff5a7 100644 --- a/parachains/runtimes/assets/statemint/src/xcm_config.rs +++ b/parachains/runtimes/assets/statemint/src/xcm_config.rs @@ -14,12 +14,13 @@ // limitations under the License. use super::{ - AccountId, AssetId, Assets, Authorship, Balance, Balances, ParachainInfo, ParachainSystem, - PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ParachainInfo, + ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TrustBackedAssetsInstance, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{Everything, Nothing, PalletInfoAccess}, + traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, }; use pallet_xcm::XcmPassthrough; use parachains_common::{ @@ -32,23 +33,23 @@ use polkadot_parachain::primitives::Sibling; use sp_runtime::traits::ConvertInto; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, - ConvertedConcreteAssetId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, - LocationInverter, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, - WeightInfoBounds, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + FungiblesAdapter, IsConcrete, LocalMint, NativeAsset, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + UsingComponents, WeightInfoBounds, WithComputedOrigin, }; -use xcm_executor::{traits::JustTry, XcmExecutor}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; parameter_types! { pub const DotLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub const RelayNetwork: Option = Some(NetworkId::Polkadot); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); - pub const Local: MultiLocation = Here.into(); - pub AssetsPalletLocation: MultiLocation = + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const Local: MultiLocation = MultiLocation::here(); + pub TrustBackedAssetsPalletLocation: MultiLocation = PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); } @@ -79,24 +80,23 @@ pub type CurrencyTransactor = CurrencyAdapter< (), >; +/// `AssetId/Balancer` converter for `TrustBackedAssets`` +pub type TrustBackedAssetsConvertedConcreteId = + assets_common::TrustBackedAssetsConvertedConcreteId; + /// Means for transacting assets besides the native currency on this chain. pub type FungiblesTransactor = FungiblesAdapter< // Use this fungibles implementation: Assets, // Use this currency when it is a fungible asset matching the given location or name: - ConvertedConcreteAssetId< - AssetId, - Balance, - AsPrefixedGeneralIndex, - JustTry, - >, + TrustBackedAssetsConvertedConcreteId, // Convert an XCM MultiLocation into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, // We only want to allow teleports of known assets. We use non-zero issuance as an indication // that this asset is known. - parachains_common::impls::NonZeroIssuance, + LocalMint>, // The account to use for tracking teleports. CheckingAccount, >; @@ -129,13 +129,14 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; pub XcmAssetFeesReceiver: Option = Authorship::author(); } match_types! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { + pub type ParentOrParentsPlurality: impl Contains = { MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } }; pub type ParentOrSiblings: impl Contains = { MultiLocation { parents: 1, interior: Here } | @@ -143,24 +144,131 @@ match_types! { }; } +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) | + RuntimeCall::Assets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::refund { .. }, + ) | + RuntimeCall::Uniques( + pallet_uniques::Call::create { .. } | + pallet_uniques::Call::force_create { .. } | + pallet_uniques::Call::destroy { .. } | + pallet_uniques::Call::mint { .. } | + pallet_uniques::Call::burn { .. } | + pallet_uniques::Call::transfer { .. } | + pallet_uniques::Call::freeze { .. } | + pallet_uniques::Call::thaw { .. } | + pallet_uniques::Call::freeze_collection { .. } | + pallet_uniques::Call::thaw_collection { .. } | + pallet_uniques::Call::transfer_ownership { .. } | + pallet_uniques::Call::set_team { .. } | + pallet_uniques::Call::approve_transfer { .. } | + pallet_uniques::Call::cancel_approval { .. } | + pallet_uniques::Call::force_item_status { .. } | + pallet_uniques::Call::set_attribute { .. } | + pallet_uniques::Call::clear_attribute { .. } | + pallet_uniques::Call::set_metadata { .. } | + pallet_uniques::Call::clear_metadata { .. } | + pallet_uniques::Call::set_collection_metadata { .. } | + pallet_uniques::Call::clear_collection_metadata { .. } | + pallet_uniques::Call::set_accept_ownership { .. } | + pallet_uniques::Call::set_collection_max_supply { .. } | + pallet_uniques::Call::set_price { .. } | + pallet_uniques::Call::buy_item { .. }, + ) => true, + _ => false, + } + } +} + pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - // Parent and its exec plurality get free execution - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its plurality (i.e. governance bodies) gets free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< Runtime, WeightToFee, - pallet_assets::BalanceToAssetBalance, + pallet_assets::BalanceToAssetBalance, + TrustBackedAssetsInstance, >; pub struct XcmConfig; @@ -174,7 +282,7 @@ impl xcm_executor::Config for XcmConfig { // For DOT, users must use teleport where allowed (e.g. with the Relay Chain). type IsReserve = (); type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of DOT - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = WeightInfoBounds< crate::weights::xcm::StatemintXcmWeight, @@ -186,12 +294,7 @@ impl xcm_executor::Config for XcmConfig { cumulus_primitives_utility::TakeFirstAssetTrader< AccountId, AssetFeeAsExistentialDepositMultiplierFeeCharger, - ConvertedConcreteAssetId< - AssetId, - Balance, - AsPrefixedGeneralIndex, - JustTry, - >, + TrustBackedAssetsConvertedConcreteId, Assets, cumulus_primitives_utility::XcmFeesTo32ByteAccount< FungiblesTransactor, @@ -204,6 +307,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; } /// Converts a local signed origin into an XCM multilocation. @@ -214,11 +326,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; // We want to disallow users sending (arbitrary) XCMs from this chain. @@ -236,11 +353,19 @@ impl pallet_xcm::Config for Runtime { RuntimeCall, MaxInstructions, >; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/assets/statemint/tests/tests.rs b/parachains/runtimes/assets/statemint/tests/tests.rs index 50c0f904eb1..288aa1b4987 100644 --- a/parachains/runtimes/assets/statemint/tests/tests.rs +++ b/parachains/runtimes/assets/statemint/tests/tests.rs @@ -1,21 +1,29 @@ use asset_test_utils::{ExtBuilder, RuntimeHelper}; +use codec::Encode; use cumulus_primitives_utility::ChargeWeightInFungibles; use frame_support::{ - assert_noop, assert_ok, - traits::PalletInfo, + assert_noop, assert_ok, sp_io, weights::{Weight, WeightToFee as WeightToFeeT}, }; -use parachains_common::{AccountId, StatemintAuraId as AuraId}; -use statemint_runtime::xcm_config::AssetFeeAsExistentialDepositMultiplierFeeCharger; +use parachains_common::{AccountId, Balance, StatemintAuraId as AuraId}; +use statemint_runtime::xcm_config::{ + AssetFeeAsExistentialDepositMultiplierFeeCharger, DotLocation, TrustBackedAssetsPalletLocation, +}; pub use statemint_runtime::{ constants::fee::WeightToFee, xcm_config::XcmConfig, Assets, Balances, ExistentialDeposit, - Runtime, SessionKeys, System, + ReservedDmpWeight, Runtime, SessionKeys, System, }; use xcm::latest::prelude::*; -use xcm_executor::traits::WeightTrader; +use xcm_executor::{ + traits::{Convert, WeightTrader}, + XcmExecutor, +}; pub const ALICE: [u8; 32] = [1u8; 32]; +type AssetIdForTrustBackedAssetsConvert = + assets_common::AssetIdForTrustBackedAssetsConvert; + #[test] fn test_asset_xcm_trader() { ExtBuilder::::default() @@ -47,16 +55,8 @@ fn test_asset_xcm_trader() { )); // get asset id as multilocation - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(local_asset_id.into()), - ), - ); + let asset_multilocation = + AssetIdForTrustBackedAssetsConvert::reverse_ref(local_asset_id).unwrap(); // Set Alice as block author, who will receive fees RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); @@ -65,13 +65,13 @@ fn test_asset_xcm_trader() { // Because of the ED being higher in statemine // and not to complicate things, we use a little // bit more of weight - let bought = 400_000_000_000u64; + let bought = Weight::from_parts(400_000_000_000u64, 0); // Lets calculate amount needed let asset_amount_needed = AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( local_asset_id, - Weight::from_ref_time(bought), + bought, ) .expect("failed to compute"); @@ -97,12 +97,15 @@ fn test_asset_xcm_trader() { // Make sure author(Alice) has received the amount assert_eq!( - Assets::balance(1, AccountId::from(ALICE)), + Assets::balance(local_asset_id, AccountId::from(ALICE)), minimum_asset_balance + asset_amount_needed ); // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), minimum_asset_balance + asset_amount_needed); + assert_eq!( + Assets::total_supply(local_asset_id), + minimum_asset_balance + asset_amount_needed + ); }); } @@ -144,21 +147,12 @@ fn test_asset_xcm_trader_with_refund() { // Because of the ED being higher in statemine // and not to complicate things, we use a little // bit more of weight - let bought = 400_000_000_000u64; - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(400_000_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); // lets calculate amount needed - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); let asset: MultiAsset = (asset_multilocation.clone(), amount_bought).into(); @@ -166,14 +160,14 @@ fn test_asset_xcm_trader_with_refund() { assert_ok!(trader.buy_weight(bought, asset.clone().into())); // Make sure again buy_weight does return an error - assert_noop!(trader.buy_weight(bought, asset.into()), XcmError::NotWithdrawable); + // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` tuple chain, which cannot be called twice + assert_noop!(trader.buy_weight(bought, asset.into()), XcmError::TooExpensive); // We actually use half of the weight let weight_used = bought / 2; // Make sure refurnd works. - let amount_refunded = - WeightToFee::weight_to_fee(&Weight::from_ref_time(bought - weight_used)); + let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); assert_eq!( trader.refund_weight(bought - weight_used), @@ -184,7 +178,7 @@ fn test_asset_xcm_trader_with_refund() { drop(trader); // We only should have paid for half of the bought weight - let fees_paid = WeightToFee::weight_to_fee(&Weight::from_ref_time(weight_used)); + let fees_paid = WeightToFee::weight_to_fee(&weight_used); assert_eq!( Assets::balance(1, AccountId::from(ALICE)), @@ -226,20 +220,11 @@ fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { // Because of the ED being higher in statemine // and not to complicate things, we use a little // bit more of weight - let bought = 50_000_000_000u64; - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(50_000_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); assert!( amount_bought < ExistentialDeposit::get(), @@ -286,20 +271,11 @@ fn test_that_buying_ed_refund_does_not_refund() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are gonna buy ED - let bought: u64 = ExistentialDeposit::get().try_into().unwrap(); - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(ExistentialDeposit::get().try_into().unwrap(), 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); assert!( amount_bought < ExistentialDeposit::get(), @@ -370,21 +346,12 @@ fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { // Because of the ED being higher in statemine // and not to complicate things, we use a little // bit more of weight - let bought = 400_000_000_000u64; + let bought = Weight::from_parts(400_000_000_000u64, 0); // lets calculate amount needed - let asset_amount_needed = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let asset_amount_needed = WeightToFee::weight_to_fee(&bought); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); @@ -401,3 +368,120 @@ fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { assert_eq!(Assets::total_supply(1), minimum_asset_balance); }); } + +#[test] +fn test_assets_balances_api_works() { + use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; + + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let local_asset_id = 1; + + // check before + assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); + assert!(Runtime::query_account_balances(AccountId::from(ALICE)).unwrap().is_empty()); + + // Drip some balance + use frame_support::traits::fungible::Mutate; + let some_currency = ExistentialDeposit::get(); + Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); + + // We need root origin to create a sufficient asset + let minimum_asset_balance = 3333333_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // check after + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); + + let result = Runtime::query_account_balances(AccountId::from(ALICE)).unwrap(); + assert_eq!(result.len(), 2); + + // check currency + assert!(result.iter().any(|asset| asset.eq( + &assets_common::fungible_conversion::convert_balance::( + some_currency + ) + .unwrap() + ))); + // check trusted asset + assert!(result.iter().any(|asset| asset.eq(&( + AssetIdForTrustBackedAssetsConvert::reverse_ref(local_asset_id).unwrap(), + minimum_asset_balance + ) + .into()))); + }); +} + +#[test] +fn receive_teleported_asset_works() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::ed25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let xcm = Xcm(vec![ + ReceiveTeleportedAsset(MultiAssets::from(vec![MultiAsset { + id: Concrete(MultiLocation { parents: 1, interior: Here }), + fun: Fungible(10000000000000), + }])), + ClearOrigin, + BuyExecution { + fees: MultiAsset { + id: Concrete(MultiLocation { parents: 1, interior: Here }), + fun: Fungible(10000000000000), + }, + weight_limit: Limited(Weight::from_parts(1303531000, 65536)), + }, + DepositAsset { + assets: Wild(AllCounted(1)), + beneficiary: MultiLocation { + parents: 0, + interior: X1(AccountId32 { + network: None, + id: [ + 18, 153, 85, 112, 1, 245, 88, 21, 211, 252, 181, 60, 116, 70, 58, + 203, 12, 246, 209, 77, 70, 57, 179, 64, 152, 44, 96, 135, 127, 56, + 70, 9, + ], + }), + }, + }, + ]); + let hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + let weight_limit = ReservedDmpWeight::get(); + + let outcome = XcmExecutor::::execute_xcm(Parent, xcm, hash, weight_limit); + assert_eq!(outcome.ensure_complete(), Ok(())); + }) +} diff --git a/parachains/runtimes/assets/test-utils/Cargo.toml b/parachains/runtimes/assets/test-utils/Cargo.toml index 6a0a6b6c387..71de48f1bc5 100644 --- a/parachains/runtimes/assets/test-utils/Cargo.toml +++ b/parachains/runtimes/assets/test-utils/Cargo.toml @@ -9,16 +9,15 @@ description = "Statemint parachain runtime" # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } - +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Cumulus pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } @@ -28,7 +27,7 @@ parachains-common = { path = "../../../common", default-features = false } hex-literal = "0.3.4" [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] diff --git a/parachains/runtimes/assets/westmint/Cargo.toml b/parachains/runtimes/assets/westmint/Cargo.toml index 61f3cb71fb7..5f6730c5cf2 100644 --- a/parachains/runtimes/assets/westmint/Cargo.toml +++ b/parachains/runtimes/assets/westmint/Cargo.toml @@ -13,48 +13,51 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" smallvec = "1.10.0" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-uniques = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-nfts = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-nfts-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-uniques = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -westend-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +westend-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -69,14 +72,14 @@ cumulus-primitives-utility = { path = "../../../../primitives/utility", default- pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } parachain-info = { path = "../../../pallets/parachain-info", default-features = false } parachains-common = { path = "../../../common", default-features = false } -pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.36" } +assets-common = { path = "../common", default-features = false } [dev-dependencies] hex-literal = "0.3.4" asset-test-utils = { path = "../test-utils"} [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] @@ -89,6 +92,7 @@ runtime-benchmarks = [ "pallet-assets/runtime-benchmarks", "pallet-balances/runtime-benchmarks", "pallet-multisig/runtime-benchmarks", + "pallet-nfts/runtime-benchmarks", "pallet-proxy/runtime-benchmarks", "pallet-timestamp/runtime-benchmarks", "pallet-uniques/runtime-benchmarks", @@ -117,6 +121,7 @@ try-runtime = [ "pallet-balances/try-runtime", "pallet-collator-selection/try-runtime", "pallet-multisig/try-runtime", + "pallet-nfts/try-runtime", "pallet-proxy/try-runtime", "pallet-session/try-runtime", "pallet-timestamp/try-runtime", @@ -140,6 +145,8 @@ std = [ "pallet-authorship/std", "pallet-balances/std", "pallet-multisig/std", + "pallet-nfts/std", + "pallet-nfts-runtime-api/std", "pallet-proxy/std", "pallet-session/std", "pallet-timestamp/std", @@ -177,5 +184,6 @@ std = [ "pallet-collator-selection/std", "parachain-info/std", "parachains-common/std", - "mangata-support/std" + "mangata-support/std", + "assets-common/std", ] diff --git a/parachains/runtimes/assets/westmint/src/lib.rs b/parachains/runtimes/assets/westmint/src/lib.rs index b71ae6b90a8..9176c631dd7 100644 --- a/parachains/runtimes/assets/westmint/src/lib.rs +++ b/parachains/runtimes/assets/westmint/src/lib.rs @@ -34,7 +34,7 @@ use sp_api::impl_runtime_apis; use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; use sp_runtime::{ create_runtime_str, generic, impl_opaque_keys, - traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto}, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT, ConvertInto, Verify}, transaction_validity::{TransactionSource, TransactionValidity}, ApplyExtrinsicResult, }; @@ -50,7 +50,10 @@ use frame_support::{ construct_runtime, dispatch::DispatchClass, parameter_types, - traits::{AsEnsureOriginWithArg, ConstU32, ConstU64, ConstU8, InstanceFilter}, + traits::{ + tokens::nonfungibles_v2::Inspect, AsEnsureOriginWithArg, ConstU32, ConstU64, ConstU8, + InstanceFilter, + }, weights::{ConstantMultiplier, Weight}, PalletId, RuntimeDebug, }; @@ -58,13 +61,18 @@ use frame_system::{ limits::{BlockLength, BlockWeights}, EnsureRoot, EnsureSigned, }; +use pallet_nfts::PalletFeatures; pub use parachains_common as common; use parachains_common::{ impls::{AssetsToBlockAuthor, DealWithFees}, - opaque, AccountId, AssetId, AuraId, Balance, BlockNumber, Hash, Header, Index, Signature, - AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, + opaque, AccountId, AssetIdForTrustBackedAssets, AuraId, Balance, BlockNumber, Hash, Header, + Index, Signature, AVERAGE_ON_INITIALIZE_RATIO, DAYS, HOURS, MAXIMUM_BLOCK_WEIGHT, + NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; +use xcm_config::{ + TrustBackedAssetsConvertedConcreteId, WestendLocation, XcmConfig, + XcmOriginToTransactDispatchOrigin, }; -use xcm_config::{XcmConfig, XcmOriginToTransactDispatchOrigin}; #[cfg(any(feature = "std", test))] pub use sp_runtime::BuildStorage; @@ -86,10 +94,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("westmint"), impl_name: create_runtime_str!("westmint"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 11, + transaction_version: 13, state_version: 0, }; @@ -162,8 +170,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -213,11 +219,16 @@ parameter_types! { pub type AssetsForceOrigin = EnsureRoot; -impl pallet_assets::Config for Runtime { +// Called "Trust Backed" assets because these are generally registered by some account, and users of +// the asset assume it has some claimed backing. The pallet is called `Assets` in +// `construct_runtime` to avoid breaking changes on storage reads. +pub type TrustBackedAssetsInstance = pallet_assets::Instance1; +type TrustBackedAssetsCall = pallet_assets::Call; +impl pallet_assets::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = Balance; - type AssetId = AssetId; - type AssetIdParameter = codec::Compact; + type AssetId = AssetIdForTrustBackedAssets; + type AssetIdParameter = codec::Compact; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = AssetsForceOrigin; @@ -229,6 +240,7 @@ impl pallet_assets::Config for Runtime { type Freezer = (); type Extra = (); type WeightInfo = weights::pallet_assets::WeightInfo; + type CallbackHandle = (); type AssetAccountDeposit = AssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; #[cfg(feature = "runtime-benchmarks")] @@ -315,6 +327,7 @@ impl InstanceFilter for ProxyType { c, RuntimeCall::Balances { .. } | RuntimeCall::Assets { .. } | + RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } ), ProxyType::CancelProxy => matches!( @@ -329,20 +342,27 @@ impl InstanceFilter for ProxyType { RuntimeCall::Assets { .. } | RuntimeCall::Utility { .. } | RuntimeCall::Multisig { .. } | - RuntimeCall::Uniques { .. } + RuntimeCall::Nfts { .. } | RuntimeCall::Uniques { .. } ) }, ProxyType::AssetOwner => matches!( c, - RuntimeCall::Assets(pallet_assets::Call::create { .. }) | - RuntimeCall::Assets(pallet_assets::Call::start_destroy { .. }) | - RuntimeCall::Assets(pallet_assets::Call::destroy_accounts { .. }) | - RuntimeCall::Assets(pallet_assets::Call::destroy_approvals { .. }) | - RuntimeCall::Assets(pallet_assets::Call::finish_destroy { .. }) | - RuntimeCall::Assets(pallet_assets::Call::transfer_ownership { .. }) | - RuntimeCall::Assets(pallet_assets::Call::set_team { .. }) | - RuntimeCall::Assets(pallet_assets::Call::set_metadata { .. }) | - RuntimeCall::Assets(pallet_assets::Call::clear_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::create { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::start_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_accounts { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::destroy_approvals { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::finish_destroy { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::transfer_ownership { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_team { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::set_metadata { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::clear_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::create { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::destroy { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::redeposit { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::transfer_ownership { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_team { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_max_supply { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_collection { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::create { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::destroy { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::transfer_ownership { .. }) | @@ -359,12 +379,23 @@ impl InstanceFilter for ProxyType { ), ProxyType::AssetManager => matches!( c, - RuntimeCall::Assets(pallet_assets::Call::mint { .. }) | - RuntimeCall::Assets(pallet_assets::Call::burn { .. }) | - RuntimeCall::Assets(pallet_assets::Call::freeze { .. }) | - RuntimeCall::Assets(pallet_assets::Call::thaw { .. }) | - RuntimeCall::Assets(pallet_assets::Call::freeze_asset { .. }) | - RuntimeCall::Assets(pallet_assets::Call::thaw_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::mint { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::burn { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::freeze_asset { .. }) | + RuntimeCall::Assets(TrustBackedAssetsCall::thaw_asset { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::force_mint { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::update_mint_settings { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::mint_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_attributes_pre_signed { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::unlock_item_transfer { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::lock_item_properties { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::set_collection_metadata { .. }) | + RuntimeCall::Nfts(pallet_nfts::Call::clear_collection_metadata { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::mint { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::burn { .. }) | RuntimeCall::Uniques(pallet_uniques::Call::freeze { .. }) | @@ -455,6 +486,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -519,20 +551,22 @@ impl pallet_asset_tx_payment::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Fungibles = Assets; type OnChargeAssetTransaction = pallet_asset_tx_payment::FungiblesAdapter< - pallet_assets::BalanceToAssetBalance, - AssetsToBlockAuthor, + pallet_assets::BalanceToAssetBalance< + Balances, + Runtime, + ConvertInto, + TrustBackedAssetsInstance, + >, + AssetsToBlockAuthor, >; } parameter_types! { - pub const CollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create asset class - pub const ItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to create asset instance - pub const KeyLimit: u32 = 32; // Max 32 bytes per key - pub const ValueLimit: u32 = 64; // Max 64 bytes per value + pub const UniquesCollectionDeposit: Balance = UNITS / 10; // 1 / 10 UNIT deposit to create a collection + pub const UniquesItemDeposit: Balance = UNITS / 1_000; // 1 / 1000 UNIT deposit to mint an item pub const UniquesMetadataDepositBase: Balance = deposit(1, 129); - pub const AttributeDepositBase: Balance = deposit(1, 0); - pub const DepositPerByte: Balance = deposit(0, 1); - pub const UniquesStringLimit: u32 = 128; + pub const UniquesAttributeDepositBase: Balance = deposit(1, 0); + pub const UniquesDepositPerByte: Balance = deposit(0, 1); } impl pallet_uniques::Config for Runtime { @@ -541,14 +575,14 @@ impl pallet_uniques::Config for Runtime { type ItemId = u32; type Currency = Balances; type ForceOrigin = AssetsForceOrigin; - type CollectionDeposit = CollectionDeposit; - type ItemDeposit = ItemDeposit; + type CollectionDeposit = UniquesCollectionDeposit; + type ItemDeposit = UniquesItemDeposit; type MetadataDepositBase = UniquesMetadataDepositBase; - type AttributeDepositBase = AttributeDepositBase; - type DepositPerByte = DepositPerByte; - type StringLimit = UniquesStringLimit; - type KeyLimit = KeyLimit; - type ValueLimit = ValueLimit; + type AttributeDepositBase = UniquesAttributeDepositBase; + type DepositPerByte = UniquesDepositPerByte; + type StringLimit = ConstU32<128>; + type KeyLimit = ConstU32<32>; + type ValueLimit = ConstU32<64>; type WeightInfo = weights::pallet_uniques::WeightInfo; #[cfg(feature = "runtime-benchmarks")] type Helper = (); @@ -556,6 +590,46 @@ impl pallet_uniques::Config for Runtime { type Locker = (); } +parameter_types! { + pub NftsPalletFeatures: PalletFeatures = PalletFeatures::all_enabled(); + pub const NftsMaxDeadlineDuration: BlockNumber = 12 * 30 * DAYS; + // re-use the Uniques deposits + pub const NftsCollectionDeposit: Balance = UniquesCollectionDeposit::get(); + pub const NftsItemDeposit: Balance = UniquesItemDeposit::get(); + pub const NftsMetadataDepositBase: Balance = UniquesMetadataDepositBase::get(); + pub const NftsAttributeDepositBase: Balance = UniquesAttributeDepositBase::get(); + pub const NftsDepositPerByte: Balance = UniquesDepositPerByte::get(); +} + +impl pallet_nfts::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type CollectionId = u32; + type ItemId = u32; + type Currency = Balances; + type CreateOrigin = AsEnsureOriginWithArg>; + type ForceOrigin = AssetsForceOrigin; + type Locker = (); + type CollectionDeposit = NftsCollectionDeposit; + type ItemDeposit = NftsItemDeposit; + type MetadataDepositBase = NftsMetadataDepositBase; + type AttributeDepositBase = NftsAttributeDepositBase; + type DepositPerByte = NftsDepositPerByte; + type StringLimit = ConstU32<256>; + type KeyLimit = ConstU32<64>; + type ValueLimit = ConstU32<256>; + type ApprovalsLimit = ConstU32<20>; + type ItemAttributesApprovalsLimit = ConstU32<30>; + type MaxTips = ConstU32<10>; + type MaxDeadlineDuration = NftsMaxDeadlineDuration; + type MaxAttributesPerCall = ConstU32<10>; + type Features = NftsPalletFeatures; + type OffchainSignature = Signature; + type OffchainPublic = ::Signer; + type WeightInfo = weights::pallet_nfts::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type Helper = (); +} + // Create the runtime by composing the FRAME pallets that were previously configured. construct_runtime!( pub enum Runtime where @@ -578,7 +652,7 @@ construct_runtime!( AssetTxPayment: pallet_asset_tx_payment::{Pallet, Event} = 12, // Collator support. the order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -596,8 +670,9 @@ construct_runtime!( Proxy: pallet_proxy::{Pallet, Call, Storage, Event} = 42, // The main stage. - Assets: pallet_assets::{Pallet, Call, Storage, Event} = 50, + Assets: pallet_assets::::{Pallet, Call, Storage, Event} = 50, Uniques: pallet_uniques::{Pallet, Call, Storage, Event} = 51, + Nfts: pallet_nfts::{Pallet, Call, Storage, Event} = 52, } ); @@ -625,6 +700,8 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; +/// Migrations to apply on runtime upgrade. +pub type Migrations = (pallet_nfts::migration::v1::MigrateToV1,); /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -633,7 +710,7 @@ pub type Executive = frame_executive::Executive< frame_system::ChainContext, Runtime, AllPalletsWithSystem, - pallet_balances::migration::MigrateToTrackInactive, + Migrations, >; #[cfg(feature = "runtime-benchmarks")] @@ -647,6 +724,7 @@ mod benches { [pallet_assets, Assets] [pallet_balances, Balances] [pallet_multisig, Multisig] + [pallet_nfts, Nfts] [pallet_proxy, Proxy] [pallet_session, SessionBench::] [pallet_uniques, Uniques] @@ -655,6 +733,7 @@ mod benches { [pallet_collator_selection, CollatorSelection] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM + [pallet_xcm, PolkadotXcm] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -747,6 +826,50 @@ impl_runtime_apis! { } } + impl pallet_nfts_runtime_api::NftsApi for Runtime { + fn owner(collection: u32, item: u32) -> Option { + >::owner(&collection, &item) + } + + fn collection_owner(collection: u32) -> Option { + >::collection_owner(&collection) + } + + fn attribute( + collection: u32, + item: u32, + key: Vec, + ) -> Option> { + >::attribute(&collection, &item, &key) + } + + fn custom_attribute( + account: AccountId, + collection: u32, + item: u32, + key: Vec, + ) -> Option> { + >::custom_attribute( + &account, + &collection, + &item, + &key, + ) + } + + fn system_attribute( + collection: u32, + item: u32, + key: Vec, + ) -> Option> { + >::system_attribute(&collection, &item, &key) + } + + fn collection_attribute(collection: u32, key: Vec) -> Option> { + >::collection_attribute(&collection, &key) + } + } + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { fn query_info( uxt: ::Extrinsic, @@ -760,6 +883,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -777,6 +906,40 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl assets_common::runtime_api::FungiblesApi< + Block, + AccountId, + > for Runtime + { + fn query_account_balances(account: AccountId) -> Result, assets_common::runtime_api::FungiblesAccessError> { + use assets_common::fungible_conversion::{convert, convert_balance}; + Ok([ + // collect pallet_balance + { + let balance = Balances::free_balance(account.clone()); + if balance > 0 { + vec![convert_balance::(balance)?] + } else { + vec![] + } + }, + // collect pallet_assets (TrustBackedAssets) + convert::<_, _, _, _, TrustBackedAssetsConvertedConcreteId>( + Assets::account_balances(account) + .iter() + .filter(|(_, balance)| balance > &0) + )?, + // collect ... e.g. pallet_assets ForeignAssets + ].concat()) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -787,7 +950,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } @@ -840,7 +1003,7 @@ impl_runtime_apis! { impl cumulus_pallet_session_benchmarking::Config for Runtime {} use xcm::latest::prelude::*; - use xcm_config::WestendLocation; + use xcm_config::{MaxAssetsIntoHolding, WestendLocation}; use pallet_xcm_benchmarks::asset_instance_from; impl pallet_xcm_benchmarks::Config for Runtime { @@ -849,12 +1012,12 @@ impl_runtime_apis! { fn valid_destination() -> Result { Ok(WestendLocation::get()) } - fn worst_case_holding() -> MultiAssets { + fn worst_case_holding(depositable_count: u32) -> MultiAssets { // A mix of fungible, non-fungible, and concrete assets. - const HOLDING_FUNGIBLES: u32 = 100; - const HOLDING_NON_FUNGIBLES: u32 = 100; + let holding_non_fungibles = MaxAssetsIntoHolding::get() / 2 - depositable_count; + let holding_fungibles = holding_non_fungibles - 1; let fungibles_amount: u128 = 100; - let mut assets = (0..HOLDING_FUNGIBLES) + let mut assets = (0..holding_fungibles) .map(|i| { MultiAsset { id: Concrete(GeneralIndex(i as u128).into()), @@ -863,17 +1026,17 @@ impl_runtime_apis! { .into() }) .chain(core::iter::once(MultiAsset { id: Concrete(Here.into()), fun: Fungible(u128::MAX) })) - .chain((0..HOLDING_NON_FUNGIBLES).map(|i| MultiAsset { + .chain((0..holding_non_fungibles).map(|i| MultiAsset { id: Concrete(GeneralIndex(i as u128).into()), fun: NonFungible(asset_instance_from(i)), })) .collect::>(); - assets.push(MultiAsset{ - id: Concrete(WestendLocation::get()), - fun: Fungible(1_000_000 * UNITS), - }); - assets.into() + assets.push(MultiAsset { + id: Concrete(WestendLocation::get()), + fun: Fungible(1_000_000 * UNITS), + }); + assets.into() } } @@ -882,8 +1045,7 @@ impl_runtime_apis! { WestendLocation::get(), MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(WestendLocation::get()) }, )); - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - pub const CheckedAccount: Option = None; + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; } @@ -892,7 +1054,6 @@ impl_runtime_apis! { type CheckedAccount = CheckedAccount; type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; fn get_multi_asset() -> MultiAsset { MultiAsset { @@ -909,8 +1070,16 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } - fn transact_origin() -> Result { - Ok(WestendLocation::get()) + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((WestendLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } fn subscribe_origin() -> Result { @@ -923,6 +1092,10 @@ impl_runtime_apis! { let ticket = MultiLocation { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } } type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; diff --git a/parachains/runtimes/assets/westmint/src/weights/block_weights.rs b/parachains/runtimes/assets/westmint/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/assets/westmint/src/weights/block_weights.rs +++ b/parachains/runtimes/assets/westmint/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/assets/westmint/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/assets/westmint/src/weights/cumulus_pallet_xcmp_queue.rs index e5bcc72a77b..b796e65485d 100644 --- a/parachains/runtimes/assets/westmint/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/parachains/runtimes/assets/westmint/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,17 +47,27 @@ use sp_std::marker::PhantomData; /// Weight functions for `cumulus_pallet_xcmp_queue`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { - // Minimum execution time: 6_777 nanoseconds. - Weight::from_ref_time(7_022_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_380_000 picoseconds. + Weight::from_parts(5_626_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { - // Minimum execution time: 7_026 nanoseconds. - Weight::from_ref_time(7_206_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_537_000 picoseconds. + Weight::from_parts(5_744_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/westmint/src/weights/extrinsic_weights.rs b/parachains/runtimes/assets/westmint/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/assets/westmint/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/assets/westmint/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/assets/westmint/src/weights/frame_system.rs b/parachains/runtimes/assets/westmint/src/weights/frame_system.rs index e967f4820a1..9f0e1e43f56 100644 --- a/parachains/runtimes/assets/westmint/src/weights/frame_system.rs +++ b/parachains/runtimes/assets/westmint/src/weights/frame_system.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -48,51 +49,82 @@ pub struct WeightInfo(PhantomData); impl frame_system::WeightInfo for WeightInfo { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { - // Minimum execution time: 3_875 nanoseconds. - Weight::from_ref_time(3_969_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_150_000 picoseconds. + Weight::from_parts(2_242_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(412).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(368, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - // Minimum execution time: 12_604 nanoseconds. - Weight::from_ref_time(12_909_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_810_000 picoseconds. + Weight::from_parts(7_949_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_769).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_408, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 8_643 nanoseconds. - Weight::from_ref_time(9_165_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_446_000 picoseconds. + Weight::from_parts(4_769_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_751 nanoseconds. - Weight::from_ref_time(3_968_000) - // Standard Error: 2_178 - .saturating_add(Weight::from_ref_time(620_130).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_378_000 picoseconds. + Weight::from_parts(2_458_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_873 + .saturating_add(Weight::from_parts(680_971, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_824 nanoseconds. - Weight::from_ref_time(3_926_000) - // Standard Error: 1_073 - .saturating_add(Weight::from_ref_time(447_424).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_389_000 picoseconds. + Weight::from_parts(2_433_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 765 + .saturating_add(Weight::from_parts(502_307, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - // Minimum execution time: 5_507 nanoseconds. - Weight::from_ref_time(5_668_000) - // Standard Error: 1_333 - .saturating_add(Weight::from_ref_time(970_340).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `84 + p * (69 ±0)` + // Estimated: `75 + p * (70 ±0)` + // Minimum execution time: 4_077_000 picoseconds. + Weight::from_parts(4_196_000, 0) + .saturating_add(Weight::from_parts(0, 75)) + // Standard Error: 920 + .saturating_add(Weight::from_parts(1_004_901, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/assets/westmint/src/weights/mod.rs b/parachains/runtimes/assets/westmint/src/weights/mod.rs index 080584f2cfa..92af360ced1 100644 --- a/parachains/runtimes/assets/westmint/src/weights/mod.rs +++ b/parachains/runtimes/assets/westmint/src/weights/mod.rs @@ -6,11 +6,13 @@ pub mod pallet_assets; pub mod pallet_balances; pub mod pallet_collator_selection; pub mod pallet_multisig; +pub mod pallet_nfts; pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; pub mod pallet_uniques; pub mod pallet_utility; +pub mod pallet_xcm; pub mod paritydb_weights; pub mod rocksdb_weights; pub mod xcm; diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_assets.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_assets.rs index be5f3fa94b4..f08633cd2ba 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_assets.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_assets.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_assets` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,230 +47,400 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_assets`. pub struct WeightInfo(PhantomData); impl pallet_assets::WeightInfo for WeightInfo { - // Storage: Assets Asset (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn create() -> Weight { - // Minimum execution time: 27_639 nanoseconds. - Weight::from_ref_time(28_249_000) + // Proof Size summary in bytes: + // Measured: `109` + // Estimated: `7268` + // Minimum execution time: 24_079_000 picoseconds. + Weight::from_parts(24_532_000, 0) + .saturating_add(Weight::from_parts(0, 7268)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn force_create() -> Weight { - // Minimum execution time: 17_537 nanoseconds. - Weight::from_ref_time(17_837_000) + // Proof Size summary in bytes: + // Measured: `6` + // Estimated: `3675` + // Minimum execution time: 11_873_000 picoseconds. + Weight::from_parts(12_062_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn start_destroy() -> Weight { - // Minimum execution time: 19_233 nanoseconds. - Weight::from_ref_time(19_550_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 14_393_000 picoseconds. + Weight::from_parts(14_598_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:0) - // Storage: System Account (r:20 w:20) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1001 w:1000) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1000 w:1000) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `c` is `[0, 1000]`. fn destroy_accounts(c: u32, ) -> Weight { - // Minimum execution time: 21_424 nanoseconds. - Weight::from_ref_time(21_798_000) - // Standard Error: 14_714 - .saturating_add(Weight::from_ref_time(13_304_772).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0 + c * (208 ±0)` + // Estimated: `8232 + c * (5180 ±0)` + // Minimum execution time: 17_774_000 picoseconds. + Weight::from_parts(17_985_000, 0) + .saturating_add(Weight::from_parts(0, 8232)) + // Standard Error: 7_528 + .saturating_add(Weight::from_parts(12_132_350, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((2_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 5180).saturating_mul(c.into())) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1001 w:1000) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) /// The range of component `a` is `[0, 1000]`. fn destroy_approvals(a: u32, ) -> Weight { - // Minimum execution time: 22_437 nanoseconds. - Weight::from_ref_time(22_782_000) - // Standard Error: 8_328 - .saturating_add(Weight::from_ref_time(13_113_389).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `414 + a * (86 ±0)` + // Estimated: `7288 + a * (2623 ±0)` + // Minimum execution time: 18_455_000 picoseconds. + Weight::from_parts(18_657_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) + // Standard Error: 4_725 + .saturating_add(Weight::from_parts(12_115_840, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2623).saturating_mul(a.into())) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Metadata (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:0) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn finish_destroy() -> Weight { - // Minimum execution time: 18_963 nanoseconds. - Weight::from_ref_time(19_203_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 14_340_000 picoseconds. + Weight::from_parts(14_614_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn mint() -> Weight { - // Minimum execution time: 31_210 nanoseconds. - Weight::from_ref_time(31_775_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7242` + // Minimum execution time: 25_631_000 picoseconds. + Weight::from_parts(26_337_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn burn() -> Weight { - // Minimum execution time: 37_564 nanoseconds. - Weight::from_ref_time(37_945_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 32_363_000 picoseconds. + Weight::from_parts(32_781_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 47_205 nanoseconds. - Weight::from_ref_time(48_447_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 43_852_000 picoseconds. + Weight::from_parts(44_369_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 40_911 nanoseconds. - Weight::from_ref_time(41_564_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 38_675_000 picoseconds. + Weight::from_parts(39_020_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 46_813 nanoseconds. - Weight::from_ref_time(47_453_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `13412` + // Minimum execution time: 43_792_000 picoseconds. + Weight::from_parts(44_412_000, 0) + .saturating_add(Weight::from_parts(0, 13412)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn freeze() -> Weight { - // Minimum execution time: 22_433 nanoseconds. - Weight::from_ref_time(22_929_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 17_802_000 picoseconds. + Weight::from_parts(18_129_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Account (r:1 w:1) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) fn thaw() -> Weight { - // Minimum execution time: 22_022 nanoseconds. - Weight::from_ref_time(22_418_000) + // Proof Size summary in bytes: + // Measured: `351` + // Estimated: `7242` + // Minimum execution time: 17_711_000 picoseconds. + Weight::from_parts(18_136_000, 0) + .saturating_add(Weight::from_parts(0, 7242)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn freeze_asset() -> Weight { - // Minimum execution time: 18_413 nanoseconds. - Weight::from_ref_time(19_054_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 13_776_000 picoseconds. + Weight::from_parts(14_134_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn thaw_asset() -> Weight { - // Minimum execution time: 18_704 nanoseconds. - Weight::from_ref_time(19_104_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3675` + // Minimum execution time: 14_376_000 picoseconds. + Weight::from_parts(15_425_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Metadata (r:1 w:0) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:0) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn transfer_ownership() -> Weight { - // Minimum execution time: 19_428 nanoseconds. - Weight::from_ref_time(19_849_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 15_799_000 picoseconds. + Weight::from_parts(16_064_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn set_team() -> Weight { - // Minimum execution time: 18_571 nanoseconds. - Weight::from_ref_time(19_090_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 14_359_000 picoseconds. + Weight::from_parts(14_561_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn set_metadata(_n: u32, s: u32, ) -> Weight { - // Minimum execution time: 30_434 nanoseconds. - Weight::from_ref_time(32_109_763) - // Standard Error: 922 - .saturating_add(Weight::from_ref_time(1_574).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `7280` + // Minimum execution time: 25_337_000 picoseconds. + Weight::from_parts(26_452_841, 0) + .saturating_add(Weight::from_parts(0, 7280)) + // Standard Error: 845 + .saturating_add(Weight::from_parts(2_931, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn clear_metadata() -> Weight { - // Minimum execution time: 31_480 nanoseconds. - Weight::from_ref_time(31_940_000) + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `7280` + // Minimum execution time: 25_521_000 picoseconds. + Weight::from_parts(26_621_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) /// The range of component `n` is `[0, 50]`. /// The range of component `s` is `[0, 50]`. fn force_set_metadata(_n: u32, s: u32, ) -> Weight { - // Minimum execution time: 18_854 nanoseconds. - Weight::from_ref_time(19_682_117) - // Standard Error: 452 - .saturating_add(Weight::from_ref_time(1_773).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `82` + // Estimated: `7280` + // Minimum execution time: 13_557_000 picoseconds. + Weight::from_parts(14_292_610, 0) + .saturating_add(Weight::from_parts(0, 7280)) + // Standard Error: 393 + .saturating_add(Weight::from_parts(3_655, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:0) - // Storage: Assets Metadata (r:1 w:1) + /// Storage: Assets Asset (r:1 w:0) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Metadata (r:1 w:1) + /// Proof: Assets Metadata (max_values: None, max_size: Some(140), added: 2615, mode: MaxEncodedLen) fn force_clear_metadata() -> Weight { - // Minimum execution time: 32_300 nanoseconds. - Weight::from_ref_time(32_689_000) + // Proof Size summary in bytes: + // Measured: `407` + // Estimated: `7280` + // Minimum execution time: 25_686_000 picoseconds. + Weight::from_parts(25_982_000, 0) + .saturating_add(Weight::from_parts(0, 7280)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) fn force_asset_status() -> Weight { - // Minimum execution time: 18_050 nanoseconds. - Weight::from_ref_time(18_460_000) + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 13_440_000 picoseconds. + Weight::from_parts(13_684_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn approve_transfer() -> Weight { - // Minimum execution time: 35_007 nanoseconds. - Weight::from_ref_time(35_565_000) + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `7288` + // Minimum execution time: 29_166_000 picoseconds. + Weight::from_parts(29_574_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) - // Storage: Assets Account (r:2 w:2) - // Storage: System Account (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) + /// Storage: Assets Account (r:2 w:2) + /// Proof: Assets Account (max_values: None, max_size: Some(102), added: 2577, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_approved() -> Weight { - // Minimum execution time: 61_166 nanoseconds. - Weight::from_ref_time(62_685_000) + // Proof Size summary in bytes: + // Measured: `521` + // Estimated: `17025` + // Minimum execution time: 58_808_000 picoseconds. + Weight::from_parts(59_441_000, 0) + .saturating_add(Weight::from_parts(0, 17025)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn cancel_approval() -> Weight { - // Minimum execution time: 37_013 nanoseconds. - Weight::from_ref_time(37_554_000) + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `7288` + // Minimum execution time: 31_081_000 picoseconds. + Weight::from_parts(31_475_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Assets Asset (r:1 w:1) - // Storage: Assets Approvals (r:1 w:1) + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + /// Storage: Assets Approvals (r:1 w:1) + /// Proof: Assets Approvals (max_values: None, max_size: Some(148), added: 2623, mode: MaxEncodedLen) fn force_cancel_approval() -> Weight { - // Minimum execution time: 37_450 nanoseconds. - Weight::from_ref_time(38_071_000) + // Proof Size summary in bytes: + // Measured: `447` + // Estimated: `7288` + // Minimum execution time: 30_798_000 picoseconds. + Weight::from_parts(31_934_000, 0) + .saturating_add(Weight::from_parts(0, 7288)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } + /// Storage: Assets Asset (r:1 w:1) + /// Proof: Assets Asset (max_values: None, max_size: Some(210), added: 2685, mode: MaxEncodedLen) + fn set_min_balance() -> Weight { + // Proof Size summary in bytes: + // Measured: `243` + // Estimated: `3675` + // Minimum execution time: 14_755_000 picoseconds. + Weight::from_parts(14_938_000, 0) + .saturating_add(Weight::from_parts(0, 3675)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_balances.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_balances.rs index 595e03c790a..61f516656ee 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_balances.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_balances.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,52 +47,87 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_balances`. pub struct WeightInfo(PhantomData); impl pallet_balances::WeightInfo for WeightInfo { - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 41_402 nanoseconds. - Weight::from_ref_time(42_194_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 35_470_000 picoseconds. + Weight::from_parts(36_170_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 31_485 nanoseconds. - Weight::from_ref_time(32_000_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_173_000 picoseconds. + Weight::from_parts(26_636_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - // Minimum execution time: 23_174 nanoseconds. - Weight::from_ref_time(23_744_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 15_875_000 picoseconds. + Weight::from_parts(16_109_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - // Minimum execution time: 26_260 nanoseconds. - Weight::from_ref_time(26_966_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 18_726_000 picoseconds. + Weight::from_parts(19_101_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:2 w:2) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 41_394 nanoseconds. - Weight::from_ref_time(42_237_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 37_080_000 picoseconds. + Weight::from_parts(37_562_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - // Minimum execution time: 36_996 nanoseconds. - Weight::from_ref_time(37_453_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 32_468_000 picoseconds. + Weight::from_parts(32_858_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - // Minimum execution time: 20_619 nanoseconds. - Weight::from_ref_time(21_129_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 14_725_000 picoseconds. + Weight::from_parts(14_926_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_collator_selection.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_collator_selection.rs index 363e763c266..eaabe14f8b1 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_collator_selection.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_collator_selection.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,79 +47,131 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) /// The range of component `b` is `[1, 100]`. fn set_invulnerables(b: u32, ) -> Weight { - // Minimum execution time: 20_551 nanoseconds. - Weight::from_ref_time(24_081_686) - // Standard Error: 7_962 - .saturating_add(Weight::from_ref_time(2_268_745).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `178 + b * (78 ±0)` + // Estimated: `1168 + b * (2554 ±0)` + // Minimum execution time: 15_458_000 picoseconds. + Weight::from_parts(16_243_295, 0) + .saturating_add(Weight::from_parts(0, 1168)) + // Standard Error: 3_682 + .saturating_add(Weight::from_parts(2_601_545, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_desired_candidates() -> Weight { - // Minimum execution time: 13_091 nanoseconds. - Weight::from_ref_time(13_508_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_542_000 picoseconds. + Weight::from_parts(7_735_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 13_600 nanoseconds. - Weight::from_ref_time(13_998_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_344_000 picoseconds. + Weight::from_parts(7_660_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[1, 999]`. fn register_as_candidate(c: u32, ) -> Weight { - // Minimum execution time: 44_819 nanoseconds. - Weight::from_ref_time(41_349_067) - // Standard Error: 994 - .saturating_add(Weight::from_ref_time(126_808).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `1108 + c * (48 ±0)` + // Estimated: `61671 + c * (49 ±0)` + // Minimum execution time: 38_651_000 picoseconds. + Weight::from_parts(31_016_267, 0) + .saturating_add(Weight::from_parts(0, 61671)) + // Standard Error: 1_279 + .saturating_add(Weight::from_parts(106_148, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[2, 1000]`. fn leave_intent(c: u32, ) -> Weight { - // Minimum execution time: 32_715 nanoseconds. - Weight::from_ref_time(27_047_739) - // Standard Error: 1_041 - .saturating_add(Weight::from_ref_time(125_513).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `469 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 27_474_000 picoseconds. + Weight::from_parts(18_915_300, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_242 + .saturating_add(Weight::from_parts(107_733, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:2 w:2) - // Storage: System BlockWeight (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) fn note_author() -> Weight { - // Minimum execution time: 31_048 nanoseconds. - Weight::from_ref_time(31_525_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `7729` + // Minimum execution time: 29_327_000 picoseconds. + Weight::from_parts(29_858_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:1000 w:1) - // Storage: System Account (r:1 w:1) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: System BlockWeight (r:1 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:999 w:999) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `r` is `[1, 1000]`. /// The range of component `c` is `[1, 1000]`. - fn new_session(_r: u32, c: u32, ) -> Weight { - // Minimum execution time: 20_005 nanoseconds. - Weight::from_ref_time(20_264_000) - // Standard Error: 749_242 - .saturating_add(Weight::from_ref_time(26_726_895).saturating_mul(c.into())) + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22693 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + r * (2603 ±0) + c * (2520 ±0)` + // Minimum execution time: 17_185_000 picoseconds. + Weight::from_parts(17_436_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 795_522 + .saturating_add(Weight::from_parts(28_877_010, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2603).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_multisig.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_multisig.rs index a98eac8d828..b01f73c3007 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_multisig.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_multisig.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,21 +17,23 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// ./artifacts/polkadot-parachain // benchmark // pallet // --chain=westmint-dev // --execution=wasm // --wasm-execution=compiled // --pallet=pallet_multisig -// --extrinsic= +// --extrinsic=* // --steps=50 // --repeat=20 +// --json // --header=./file_header.txt // --output=./parachains/runtimes/assets/westmint/src/weights/pallet_multisig.rs @@ -47,80 +49,113 @@ pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - // Minimum execution time: 15_741 nanoseconds. - Weight::from_ref_time(16_117_311) - // Standard Error: 2 - .saturating_add(Weight::from_ref_time(533).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_071_000 picoseconds. + Weight::from_parts(12_418_308, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(495, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 43_906 nanoseconds. - Weight::from_ref_time(35_459_211) - // Standard Error: 860 - .saturating_add(Weight::from_ref_time(92_745).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_ref_time(1_576).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `262 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 37_454_000 picoseconds. + Weight::from_parts(31_908_123, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 637 + .saturating_add(Weight::from_parts(62_530, 0).saturating_mul(s.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_217, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 34_417 nanoseconds. - Weight::from_ref_time(26_873_359) - // Standard Error: 612 - .saturating_add(Weight::from_ref_time(82_989).saturating_mul(s.into())) - // Standard Error: 5 - .saturating_add(Weight::from_ref_time(1_555).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 27_665_000 picoseconds. + Weight::from_parts(21_985_439, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 509 + .saturating_add(Weight::from_parts(63_318, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_187, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 48_600 nanoseconds. - Weight::from_ref_time(38_956_898) - // Standard Error: 685 - .saturating_add(Weight::from_ref_time(103_430).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_ref_time(1_577).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `385 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 42_985_000 picoseconds. + Weight::from_parts(35_504_175, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 530 + .saturating_add(Weight::from_parts(80_153, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_215, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - // Minimum execution time: 31_984 nanoseconds. - Weight::from_ref_time(34_711_823) - // Standard Error: 1_062 - .saturating_add(Weight::from_ref_time(93_549).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 28_498_000 picoseconds. + Weight::from_parts(30_376_601, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 785 + .saturating_add(Weight::from_parts(65_913, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - // Minimum execution time: 23_584 nanoseconds. - Weight::from_ref_time(25_544_719) - // Standard Error: 721 - .saturating_add(Weight::from_ref_time(86_801).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 19_047_000 picoseconds. + Weight::from_parts(20_338_502, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 544 + .saturating_add(Weight::from_parts(66_876, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - // Minimum execution time: 31_989 nanoseconds. - Weight::from_ref_time(35_081_200) - // Standard Error: 1_043 - .saturating_add(Weight::from_ref_time(91_707).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 29_085_000 picoseconds. + Weight::from_parts(31_283_618, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 985 + .saturating_add(Weight::from_parts(67_469, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_nfts.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_nfts.rs new file mode 100644 index 00000000000..904f7823041 --- /dev/null +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_nfts.rs @@ -0,0 +1,762 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_nfts` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=westmint-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_nfts +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/westmint/src/weights/pallet_nfts.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_nfts`. +pub struct WeightInfo(PhantomData); +impl pallet_nfts::WeightInfo for WeightInfo { + /// Storage: Nfts NextCollectionId (r:1 w:1) + /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:0 w:1) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:1) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn create() -> Weight { + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `5038` + // Minimum execution time: 34_344_000 picoseconds. + Weight::from_parts(35_251_000, 0) + .saturating_add(Weight::from_parts(0, 5038)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts NextCollectionId (r:1 w:1) + /// Proof: Nfts NextCollectionId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:0 w:1) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:1) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn force_create() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `5038` + // Minimum execution time: 22_704_000 picoseconds. + Weight::from_parts(23_146_000, 0) + .saturating_add(Weight::from_parts(0, 5038)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:0) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:1) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1001 w:1000) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1000 w:1000) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts CollectionMetadataOf (r:0 w:1) + /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(294), added: 2769, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:1) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// The range of component `m` is `[0, 1000]`. + /// The range of component `c` is `[0, 1000]`. + /// The range of component `a` is `[0, 1000]`. + fn destroy(_m: u32, _c: u32, a: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `32170 + a * (366 ±0)` + // Estimated: `2538829 + a * (2954 ±0)` + // Minimum execution time: 976_206_000 picoseconds. + Weight::from_parts(924_770_064, 0) + .saturating_add(Weight::from_parts(0, 2538829)) + // Standard Error: 3_946 + .saturating_add(Weight::from_parts(5_708_229, 0).saturating_mul(a.into())) + .saturating_add(T::DbWeight::get().reads(1004)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) + .saturating_add(T::DbWeight::get().writes(1005)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(a.into())) + } + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + fn mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `421` + // Estimated: `18460` + // Minimum execution time: 44_592_000 picoseconds. + Weight::from_parts(45_181_000, 0) + .saturating_add(Weight::from_parts(0, 18460)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + fn force_mint() -> Weight { + // Proof Size summary in bytes: + // Measured: `421` + // Estimated: `18460` + // Minimum execution time: 43_304_000 picoseconds. + Weight::from_parts(43_977_000, 0) + .saturating_add(Weight::from_parts(0, 18460)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:0) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:0 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn burn() -> Weight { + // Proof Size summary in bytes: + // Measured: `530` + // Estimated: `15200` + // Minimum execution time: 45_744_000 picoseconds. + Weight::from_parts(46_056_000, 0) + .saturating_add(Weight::from_parts(0, 15200)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(7)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:2) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `14926` + // Minimum execution time: 35_663_000 picoseconds. + Weight::from_parts(36_865_000, 0) + .saturating_add(Weight::from_parts(0, 14926)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:5000 w:5000) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// The range of component `i` is `[0, 5000]`. + fn redeposit(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `729 + i * (108 ±0)` + // Estimated: `8077 + i * (3336 ±0)` + // Minimum execution time: 16_987_000 picoseconds. + Weight::from_parts(17_194_000, 0) + .saturating_add(Weight::from_parts(0, 8077)) + // Standard Error: 13_044 + .saturating_add(Weight::from_parts(13_324_147, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 3336).saturating_mul(i.into())) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn lock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `7047` + // Minimum execution time: 20_345_000 picoseconds. + Weight::from_parts(20_739_000, 0) + .saturating_add(Weight::from_parts(0, 7047)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn unlock_item_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `7047` + // Minimum execution time: 20_167_000 picoseconds. + Weight::from_parts(20_580_000, 0) + .saturating_add(Weight::from_parts(0, 7047)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn lock_collection() -> Weight { + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `7087` + // Minimum execution time: 17_831_000 picoseconds. + Weight::from_parts(18_174_000, 0) + .saturating_add(Weight::from_parts(0, 7087)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts OwnershipAcceptance (r:1 w:1) + /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:2) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn transfer_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `354` + // Estimated: `7066` + // Minimum execution time: 23_763_000 picoseconds. + Weight::from_parts(24_226_000, 0) + .saturating_add(Weight::from_parts(0, 7066)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:2 w:4) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + fn set_team() -> Weight { + // Proof Size summary in bytes: + // Measured: `335` + // Estimated: `9627` + // Minimum execution time: 40_034_000 picoseconds. + Weight::from_parts(40_402_000, 0) + .saturating_add(Weight::from_parts(0, 9627)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionAccount (r:0 w:2) + /// Proof: Nfts CollectionAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + fn force_collection_owner() -> Weight { + // Proof Size summary in bytes: + // Measured: `277` + // Estimated: `3549` + // Minimum execution time: 18_648_000 picoseconds. + Weight::from_parts(18_968_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:0 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn force_collection_config() -> Weight { + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3549` + // Minimum execution time: 15_282_000 picoseconds. + Weight::from_parts(15_923_000, 0) + .saturating_add(Weight::from_parts(0, 3549)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn lock_item_properties() -> Weight { + // Proof Size summary in bytes: + // Measured: `401` + // Estimated: `7047` + // Minimum execution time: 20_060_000 picoseconds. + Weight::from_parts(20_326_000, 0) + .saturating_add(Weight::from_parts(0, 7047)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1 w:1) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + fn set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `18078` + // Minimum execution time: 48_324_000 picoseconds. + Weight::from_parts(48_745_000, 0) + .saturating_add(Weight::from_parts(0, 18078)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1 w:1) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + fn force_set_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `310` + // Estimated: `7493` + // Minimum execution time: 27_935_000 picoseconds. + Weight::from_parts(28_241_000, 0) + .saturating_add(Weight::from_parts(0, 7493)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts Attribute (r:1 w:1) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + fn clear_attribute() -> Weight { + // Proof Size summary in bytes: + // Measured: `949` + // Estimated: `14540` + // Minimum execution time: 44_972_000 picoseconds. + Weight::from_parts(45_618_000, 0) + .saturating_add(Weight::from_parts(0, 14540)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + fn approve_item_attributes() -> Weight { + // Proof Size summary in bytes: + // Measured: `347` + // Estimated: `8792` + // Minimum execution time: 19_246_000 picoseconds. + Weight::from_parts(19_715_000, 0) + .saturating_add(Weight::from_parts(0, 8792)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:1001 w:1000) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 1000]`. + fn cancel_item_attributes_approval(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `726 + n * (398 ±0)` + // Estimated: `16329 + n * (2954 ±0)` + // Minimum execution time: 28_372_000 picoseconds. + Weight::from_parts(28_671_000, 0) + .saturating_add(Weight::from_parts(0, 16329)) + // Standard Error: 3_479 + .saturating_add(Weight::from_parts(5_527_336, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:1) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + fn set_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `505` + // Estimated: `17946` + // Minimum execution time: 39_852_000 picoseconds. + Weight::from_parts(40_280_000, 0) + .saturating_add(Weight::from_parts(0, 17946)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:1) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + fn clear_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `815` + // Estimated: `14408` + // Minimum execution time: 36_829_000 picoseconds. + Weight::from_parts(37_513_000, 0) + .saturating_add(Weight::from_parts(0, 14408)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionMetadataOf (r:1 w:1) + /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(294), added: 2769, mode: MaxEncodedLen) + fn set_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `364` + // Estimated: `14380` + // Minimum execution time: 35_398_000 picoseconds. + Weight::from_parts(35_809_000, 0) + .saturating_add(Weight::from_parts(0, 14380)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts CollectionMetadataOf (r:1 w:1) + /// Proof: Nfts CollectionMetadataOf (max_values: None, max_size: Some(294), added: 2769, mode: MaxEncodedLen) + fn clear_collection_metadata() -> Weight { + // Proof Size summary in bytes: + // Measured: `682` + // Estimated: `14380` + // Minimum execution time: 33_699_000 picoseconds. + Weight::from_parts(34_170_000, 0) + .saturating_add(Weight::from_parts(0, 14380)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn approve_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `376` + // Estimated: `7864` + // Minimum execution time: 21_789_000 picoseconds. + Weight::from_parts(22_454_000, 0) + .saturating_add(Weight::from_parts(0, 7864)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + fn cancel_approval() -> Weight { + // Proof Size summary in bytes: + // Measured: `384` + // Estimated: `4326` + // Minimum execution time: 19_532_000 picoseconds. + Weight::from_parts(19_761_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + fn clear_all_transfer_approvals() -> Weight { + // Proof Size summary in bytes: + // Measured: `384` + // Estimated: `4326` + // Minimum execution time: 18_620_000 picoseconds. + Weight::from_parts(19_014_000, 0) + .saturating_add(Weight::from_parts(0, 4326)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts OwnershipAcceptance (r:1 w:1) + /// Proof: Nfts OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + fn set_accept_ownership() -> Weight { + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 16_491_000 picoseconds. + Weight::from_parts(16_888_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionConfigOf (r:1 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + fn set_collection_max_supply() -> Weight { + // Proof Size summary in bytes: + // Measured: `306` + // Estimated: `7087` + // Minimum execution time: 19_929_000 picoseconds. + Weight::from_parts(20_170_000, 0) + .saturating_add(Weight::from_parts(0, 7087)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts CollectionRoleOf (r:1 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:1) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + fn update_mint_settings() -> Weight { + // Proof Size summary in bytes: + // Measured: `289` + // Estimated: `7072` + // Minimum execution time: 19_500_000 picoseconds. + Weight::from_parts(19_839_000, 0) + .saturating_add(Weight::from_parts(0, 7072)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + fn set_price() -> Weight { + // Proof Size summary in bytes: + // Measured: `484` + // Estimated: `11377` + // Minimum execution time: 24_542_000 picoseconds. + Weight::from_parts(24_916_000, 0) + .saturating_add(Weight::from_parts(0, 11377)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:1 w:1) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:2) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn buy_item() -> Weight { + // Proof Size summary in bytes: + // Measured: `671` + // Estimated: `18480` + // Minimum execution time: 44_311_000 picoseconds. + Weight::from_parts(45_789_000, 0) + .saturating_add(Weight::from_parts(0, 18480)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// The range of component `n` is `[0, 10]`. + fn pay_tips(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_523_000 picoseconds. + Weight::from_parts(4_349_031, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 10_427 + .saturating_add(Weight::from_parts(3_718_129, 0).saturating_mul(n.into())) + } + /// Storage: Nfts Item (r:2 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:0 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + fn create_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `460` + // Estimated: `7662` + // Minimum execution time: 23_007_000 picoseconds. + Weight::from_parts(23_305_000, 0) + .saturating_add(Weight::from_parts(0, 7662)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts PendingSwapOf (r:1 w:1) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + fn cancel_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `479` + // Estimated: `7862` + // Minimum execution time: 21_173_000 picoseconds. + Weight::from_parts(21_451_000, 0) + .saturating_add(Weight::from_parts(0, 7862)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Nfts Item (r:2 w:2) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts PendingSwapOf (r:1 w:2) + /// Proof: Nfts PendingSwapOf (max_values: None, max_size: Some(71), added: 2546, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:0) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:2 w:0) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:4) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Nfts ItemPriceOf (r:0 w:2) + /// Proof: Nfts ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + fn claim_swap() -> Weight { + // Proof Size summary in bytes: + // Measured: `800` + // Estimated: `24321` + // Minimum execution time: 72_213_000 picoseconds. + Weight::from_parts(73_029_000, 0) + .saturating_add(Weight::from_parts(0, 24321)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(10)) + } + /// Storage: Nfts CollectionRoleOf (r:2 w:0) + /// Proof: Nfts CollectionRoleOf (max_values: None, max_size: Some(69), added: 2544, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Item (r:1 w:1) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts ItemConfigOf (r:1 w:1) + /// Proof: Nfts ItemConfigOf (max_values: None, max_size: Some(48), added: 2523, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:10 w:10) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: Nfts ItemMetadataOf (r:1 w:1) + /// Proof: Nfts ItemMetadataOf (max_values: None, max_size: Some(347), added: 2822, mode: MaxEncodedLen) + /// Storage: Nfts Account (r:0 w:1) + /// Proof: Nfts Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 10]`. + fn mint_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `524` + // Estimated: `29399 + n * (2954 ±0)` + // Minimum execution time: 125_518_000 picoseconds. + Weight::from_parts(129_781_908, 0) + .saturating_add(Weight::from_parts(0, 29399)) + // Standard Error: 21_840 + .saturating_add(Weight::from_parts(26_756_136, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(6)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } + /// Storage: Nfts Item (r:1 w:0) + /// Proof: Nfts Item (max_values: None, max_size: Some(861), added: 3336, mode: MaxEncodedLen) + /// Storage: Nfts ItemAttributesApprovalsOf (r:1 w:1) + /// Proof: Nfts ItemAttributesApprovalsOf (max_values: None, max_size: Some(1001), added: 3476, mode: MaxEncodedLen) + /// Storage: Nfts CollectionConfigOf (r:1 w:0) + /// Proof: Nfts CollectionConfigOf (max_values: None, max_size: Some(73), added: 2548, mode: MaxEncodedLen) + /// Storage: Nfts Collection (r:1 w:1) + /// Proof: Nfts Collection (max_values: None, max_size: Some(84), added: 2559, mode: MaxEncodedLen) + /// Storage: Nfts Attribute (r:10 w:10) + /// Proof: Nfts Attribute (max_values: None, max_size: Some(479), added: 2954, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `n` is `[0, 10]`. + fn set_attributes_pre_signed(n: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `554` + // Estimated: `20462 + n * (2954 ±0)` + // Minimum execution time: 76_133_000 picoseconds. + Weight::from_parts(85_559_988, 0) + .saturating_add(Weight::from_parts(0, 20462)) + // Standard Error: 49_851 + .saturating_add(Weight::from_parts(26_551_215, 0).saturating_mul(n.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(n.into()))) + .saturating_add(Weight::from_parts(0, 2954).saturating_mul(n.into())) + } +} diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_proxy.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_proxy.rs index 220e0f060e7..fa22bf7bf68 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_proxy.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_proxy.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,119 +47,176 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_proxy`. pub struct WeightInfo(PhantomData); impl pallet_proxy::WeightInfo for WeightInfo { - // Storage: Proxy Proxies (r:1 w:0) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { - // Minimum execution time: 21_884 nanoseconds. - Weight::from_ref_time(22_652_660) - // Standard Error: 1_391 - .saturating_add(Weight::from_ref_time(52_722).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 16_562_000 picoseconds. + Weight::from_parts(17_305_360, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_081 + .saturating_add(Weight::from_parts(37_267, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 39_603 nanoseconds. - Weight::from_ref_time(40_145_146) - // Standard Error: 1_855 - .saturating_add(Weight::from_ref_time(116_822).saturating_mul(a.into())) - // Standard Error: 1_917 - .saturating_add(Weight::from_ref_time(35_698).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 35_181_000 picoseconds. + Weight::from_parts(34_864_956, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 5_023 + .saturating_add(Weight::from_parts(158_916, 0).saturating_mul(a.into())) + // Standard Error: 5_189 + .saturating_add(Weight::from_parts(60_136, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. - fn remove_announcement(a: u32, _p: u32, ) -> Weight { - // Minimum execution time: 28_768 nanoseconds. - Weight::from_ref_time(29_661_383) - // Standard Error: 1_394 - .saturating_add(Weight::from_ref_time(101_377).saturating_mul(a.into())) + fn remove_announcement(a: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 21_758_000 picoseconds. + Weight::from_parts(23_149_882, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_877 + .saturating_add(Weight::from_parts(145_269, 0).saturating_mul(a.into())) + // Standard Error: 1_940 + .saturating_add(Weight::from_parts(5_129, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 28_136 nanoseconds. - Weight::from_ref_time(28_654_813) - // Standard Error: 2_310 - .saturating_add(Weight::from_ref_time(116_567).saturating_mul(a.into())) - // Standard Error: 2_387 - .saturating_add(Weight::from_ref_time(26_495).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 22_076_000 picoseconds. + Weight::from_parts(22_959_374, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_377 + .saturating_add(Weight::from_parts(146_462, 0).saturating_mul(a.into())) + // Standard Error: 1_423 + .saturating_add(Weight::from_parts(11_551, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 36_129 nanoseconds. - Weight::from_ref_time(36_620_442) - // Standard Error: 2_026 - .saturating_add(Weight::from_ref_time(113_054).saturating_mul(a.into())) - // Standard Error: 2_093 - .saturating_add(Weight::from_ref_time(54_408).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 30_751_000 picoseconds. + Weight::from_parts(31_929_484, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 2_087 + .saturating_add(Weight::from_parts(147_703, 0).saturating_mul(a.into())) + // Standard Error: 2_156 + .saturating_add(Weight::from_parts(27_798, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { - // Minimum execution time: 29_575 nanoseconds. - Weight::from_ref_time(30_834_020) - // Standard Error: 1_793 - .saturating_add(Weight::from_ref_time(66_803).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_700_000 picoseconds. + Weight::from_parts(24_509_575, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_699 + .saturating_add(Weight::from_parts(51_275, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { - // Minimum execution time: 28_936 nanoseconds. - Weight::from_ref_time(30_985_501) - // Standard Error: 2_622 - .saturating_add(Weight::from_ref_time(77_417).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_289_000 picoseconds. + Weight::from_parts(24_453_360, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_690 + .saturating_add(Weight::from_parts(62_718, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { - // Minimum execution time: 25_687 nanoseconds. - Weight::from_ref_time(26_828_926) - // Standard Error: 1_639 - .saturating_add(Weight::from_ref_time(57_632).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 18_877_000 picoseconds. + Weight::from_parts(19_780_042, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_171 + .saturating_add(Weight::from_parts(20_282, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn create_pure(p: u32, ) -> Weight { - // Minimum execution time: 32_315 nanoseconds. - Weight::from_ref_time(33_370_667) - // Standard Error: 1_821 - .saturating_add(Weight::from_ref_time(27_819).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 25_354_000 picoseconds. + Weight::from_parts(26_362_285, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_459 + .saturating_add(Weight::from_parts(1_330, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { - // Minimum execution time: 27_479 nanoseconds. - Weight::from_ref_time(28_677_537) - // Standard Error: 1_643 - .saturating_add(Weight::from_ref_time(32_716).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 20_057_000 picoseconds. + Weight::from_parts(20_844_608, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_336 + .saturating_add(Weight::from_parts(27_855, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_session.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_session.rs index 67d7596784f..bb4705ace09 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_session.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_session.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,19 +47,31 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:1 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - // Minimum execution time: 21_925 nanoseconds. - Weight::from_ref_time(22_448_000) + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `7470` + // Minimum execution time: 17_394_000 picoseconds. + Weight::from_parts(17_828_000, 0) + .saturating_add(Weight::from_parts(0, 7470)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:0 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - // Minimum execution time: 18_419 nanoseconds. - Weight::from_ref_time(18_941_000) + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3949` + // Minimum execution time: 13_334_000 picoseconds. + Weight::from_parts(13_634_000, 0) + .saturating_add(Weight::from_parts(0, 3949)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_timestamp.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_timestamp.rs index cd569fbbd38..7475e81c9ad 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_timestamp.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,16 +47,26 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_timestamp`. pub struct WeightInfo(PhantomData); impl pallet_timestamp::WeightInfo for WeightInfo { - // Storage: Timestamp Now (r:1 w:1) - // Storage: Aura CurrentSlot (r:1 w:0) + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - // Minimum execution time: 9_171 nanoseconds. - Weight::from_ref_time(9_347_000) + // Proof Size summary in bytes: + // Measured: `86` + // Estimated: `2986` + // Minimum execution time: 9_273_000 picoseconds. + Weight::from_parts(9_653_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { - // Minimum execution time: 3_809 nanoseconds. - Weight::from_ref_time(3_951_000) + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_289_000 picoseconds. + Weight::from_parts(3_379_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_uniques.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_uniques.rs index b6820449bdd..c32eebdc908 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_uniques.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_uniques.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_uniques` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -46,242 +47,417 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_uniques`. pub struct WeightInfo(PhantomData); impl pallet_uniques::WeightInfo for WeightInfo { - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn create() -> Weight { - // Minimum execution time: 29_840 nanoseconds. - Weight::from_ref_time(30_234_000) + // Proof Size summary in bytes: + // Measured: `145` + // Estimated: `3643` + // Minimum execution time: 26_855_000 picoseconds. + Weight::from_parts(27_393_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn force_create() -> Weight { - // Minimum execution time: 19_612 nanoseconds. - Weight::from_ref_time(20_068_000) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3643` + // Minimum execution time: 15_006_000 picoseconds. + Weight::from_parts(15_389_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:1 w:0) - // Storage: Uniques ClassAccount (r:0 w:1) - // Storage: Uniques Attribute (r:0 w:1000) - // Storage: Uniques ClassMetadataOf (r:0 w:1) - // Storage: Uniques InstanceMetadataOf (r:0 w:1000) - // Storage: Uniques CollectionMaxSupply (r:0 w:1) - // Storage: Uniques Account (r:0 w:20) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1001 w:1000) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1000 w:1000) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1000 w:1000) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:0 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1000) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques CollectionMaxSupply (r:0 w:1) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) /// The range of component `n` is `[0, 1000]`. /// The range of component `m` is `[0, 1000]`. /// The range of component `a` is `[0, 1000]`. fn destroy(n: u32, m: u32, a: u32, ) -> Weight { - // Minimum execution time: 2_355_753 nanoseconds. - Weight::from_ref_time(2_374_906_000) - // Standard Error: 25_342 - .saturating_add(Weight::from_ref_time(8_210_192).saturating_mul(n.into())) - // Standard Error: 25_342 - .saturating_add(Weight::from_ref_time(235_106).saturating_mul(m.into())) - // Standard Error: 25_342 - .saturating_add(Weight::from_ref_time(274_994).saturating_mul(a.into())) + // Proof Size summary in bytes: + // Measured: `257 + n * (76 ±0) + m * (56 ±0) + a * (107 ±0)` + // Estimated: `9210 + a * (2647 ±0) + n * (2597 ±0) + m * (2662 ±0)` + // Minimum execution time: 2_360_211_000 picoseconds. + Weight::from_parts(2_383_759_000, 0) + .saturating_add(Weight::from_parts(0, 9210)) + // Standard Error: 24_849 + .saturating_add(Weight::from_parts(6_304_424, 0).saturating_mul(n.into())) + // Standard Error: 24_849 + .saturating_add(Weight::from_parts(253_862, 0).saturating_mul(m.into())) + // Standard Error: 24_849 + .saturating_add(Weight::from_parts(324_295, 0).saturating_mul(a.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(n.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(m.into()))) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(a.into()))) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(n.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(m.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(a.into()))) + .saturating_add(Weight::from_parts(0, 2647).saturating_mul(a.into())) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(n.into())) + .saturating_add(Weight::from_parts(0, 2662).saturating_mul(m.into())) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques CollectionMaxSupply (r:1 w:0) - // Storage: Uniques Account (r:0 w:1) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques CollectionMaxSupply (r:1 w:0) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) fn mint() -> Weight { - // Minimum execution time: 36_914 nanoseconds. - Weight::from_ref_time(37_683_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `10719` + // Minimum execution time: 33_245_000 picoseconds. + Weight::from_parts(33_516_000, 0) + .saturating_add(Weight::from_parts(0, 10719)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Account (r:0 w:1) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:1) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn burn() -> Weight { - // Minimum execution time: 39_149 nanoseconds. - Weight::from_ref_time(39_647_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 34_237_000 picoseconds. + Weight::from_parts(34_725_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Account (r:0 w:2) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:2) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 30_460 nanoseconds. - Weight::from_ref_time(31_588_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 27_588_000 picoseconds. + Weight::from_parts(27_994_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques Asset (r:102 w:102) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:5000 w:5000) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) /// The range of component `i` is `[0, 5000]`. fn redeposit(i: u32, ) -> Weight { - // Minimum execution time: 19_504 nanoseconds. - Weight::from_ref_time(19_741_000) - // Standard Error: 14_211 - .saturating_add(Weight::from_ref_time(10_863_273).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `738 + i * (76 ±0)` + // Estimated: `4633 + i * (2597 ±0)` + // Minimum execution time: 15_958_000 picoseconds. + Weight::from_parts(16_175_000, 0) + .saturating_add(Weight::from_parts(0, 4633)) + // Standard Error: 12_904 + .saturating_add(Weight::from_parts(13_261_405, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(i.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + .saturating_add(Weight::from_parts(0, 2597).saturating_mul(i.into())) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn freeze() -> Weight { - // Minimum execution time: 23_535 nanoseconds. - Weight::from_ref_time(24_106_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 19_124_000 picoseconds. + Weight::from_parts(19_432_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn thaw() -> Weight { - // Minimum execution time: 23_904 nanoseconds. - Weight::from_ref_time(24_367_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 19_725_000 picoseconds. + Weight::from_parts(19_903_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn freeze_collection() -> Weight { - // Minimum execution time: 19_209 nanoseconds. - Weight::from_ref_time(19_629_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 15_091_000 picoseconds. + Weight::from_parts(15_405_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn thaw_collection() -> Weight { - // Minimum execution time: 19_115 nanoseconds. - Weight::from_ref_time(19_598_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 14_440_000 picoseconds. + Weight::from_parts(14_836_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques OwnershipAcceptance (r:1 w:1) - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:2) + /// Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Proof: Uniques OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:2) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn transfer_ownership() -> Weight { - // Minimum execution time: 27_359 nanoseconds. - Weight::from_ref_time(28_095_000) + // Proof Size summary in bytes: + // Measured: `356` + // Estimated: `7160` + // Minimum execution time: 22_729_000 picoseconds. + Weight::from_parts(23_039_000, 0) + .saturating_add(Weight::from_parts(0, 7160)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Uniques Class (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn set_team() -> Weight { - // Minimum execution time: 20_037 nanoseconds. - Weight::from_ref_time(20_352_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 15_506_000 picoseconds. + Weight::from_parts(15_864_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassAccount (r:0 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassAccount (r:0 w:1) + /// Proof: Uniques ClassAccount (max_values: None, max_size: Some(68), added: 2543, mode: MaxEncodedLen) fn force_item_status() -> Weight { - // Minimum execution time: 22_282 nanoseconds. - Weight::from_ref_time(22_795_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `3643` + // Minimum execution time: 18_244_000 picoseconds. + Weight::from_parts(18_591_000, 0) + .saturating_add(Weight::from_parts(0, 3643)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:0) - // Storage: Uniques Attribute (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:0) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1 w:1) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) fn set_attribute() -> Weight { - // Minimum execution time: 44_638 nanoseconds. - Weight::from_ref_time(45_088_000) + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `10932` + // Minimum execution time: 37_528_000 picoseconds. + Weight::from_parts(38_282_000, 0) + .saturating_add(Weight::from_parts(0, 10932)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:0) - // Storage: Uniques Attribute (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:0) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) + /// Storage: Uniques Attribute (r:1 w:1) + /// Proof: Uniques Attribute (max_values: None, max_size: Some(172), added: 2647, mode: MaxEncodedLen) fn clear_attribute() -> Weight { - // Minimum execution time: 42_588 nanoseconds. - Weight::from_ref_time(43_510_000) + // Proof Size summary in bytes: + // Measured: `756` + // Estimated: `10932` + // Minimum execution time: 36_654_000 picoseconds. + Weight::from_parts(36_947_000, 0) + .saturating_add(Weight::from_parts(0, 10932)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) fn set_metadata() -> Weight { - // Minimum execution time: 34_488 nanoseconds. - Weight::from_ref_time(34_982_000) + // Proof Size summary in bytes: + // Measured: `348` + // Estimated: `7295` + // Minimum execution time: 29_703_000 picoseconds. + Weight::from_parts(30_032_000, 0) + .saturating_add(Weight::from_parts(0, 7295)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques InstanceMetadataOf (r:1 w:1) + /// Proof: Uniques InstanceMetadataOf (max_values: None, max_size: Some(187), added: 2662, mode: MaxEncodedLen) fn clear_metadata() -> Weight { - // Minimum execution time: 36_550 nanoseconds. - Weight::from_ref_time(36_983_000) + // Proof Size summary in bytes: + // Measured: `559` + // Estimated: `7295` + // Minimum execution time: 29_941_000 picoseconds. + Weight::from_parts(30_222_000, 0) + .saturating_add(Weight::from_parts(0, 7295)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:1) - // Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:1) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) fn set_collection_metadata() -> Weight { - // Minimum execution time: 34_149 nanoseconds. - Weight::from_ref_time(35_216_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `7275` + // Minimum execution time: 28_466_000 picoseconds. + Weight::from_parts(29_037_000, 0) + .saturating_add(Weight::from_parts(0, 7275)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques ClassMetadataOf (r:1 w:1) + /// Proof: Uniques ClassMetadataOf (max_values: None, max_size: Some(167), added: 2642, mode: MaxEncodedLen) fn clear_collection_metadata() -> Weight { - // Minimum execution time: 33_420 nanoseconds. - Weight::from_ref_time(34_201_000) + // Proof Size summary in bytes: + // Measured: `473` + // Estimated: `7275` + // Minimum execution time: 27_072_000 picoseconds. + Weight::from_parts(27_514_000, 0) + .saturating_add(Weight::from_parts(0, 7275)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) fn approve_transfer() -> Weight { - // Minimum execution time: 25_088 nanoseconds. - Weight::from_ref_time(25_714_000) + // Proof Size summary in bytes: + // Measured: `428` + // Estimated: `7230` + // Minimum execution time: 20_791_000 picoseconds. + Weight::from_parts(21_072_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Asset (r:1 w:1) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) fn cancel_approval() -> Weight { - // Minimum execution time: 25_082 nanoseconds. - Weight::from_ref_time(25_459_000) + // Proof Size summary in bytes: + // Measured: `461` + // Estimated: `7230` + // Minimum execution time: 20_467_000 picoseconds. + Weight::from_parts(20_842_000, 0) + .saturating_add(Weight::from_parts(0, 7230)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Storage: Uniques OwnershipAcceptance (r:1 w:1) + /// Proof: Uniques OwnershipAcceptance (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn set_accept_ownership() -> Weight { - // Minimum execution time: 22_911 nanoseconds. - Weight::from_ref_time(23_297_000) + // Proof Size summary in bytes: + // Measured: `42` + // Estimated: `3517` + // Minimum execution time: 16_836_000 picoseconds. + Weight::from_parts(17_418_000, 0) + .saturating_add(Weight::from_parts(0, 3517)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques CollectionMaxSupply (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) + /// Storage: Uniques CollectionMaxSupply (r:1 w:1) + /// Proof: Uniques CollectionMaxSupply (max_values: None, max_size: Some(24), added: 2499, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) fn set_collection_max_supply() -> Weight { - // Minimum execution time: 21_504 nanoseconds. - Weight::from_ref_time(22_185_000) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `7132` + // Minimum execution time: 17_721_000 picoseconds. + Weight::from_parts(18_109_000, 0) + .saturating_add(Weight::from_parts(0, 7132)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:0) - // Storage: Uniques ItemPriceOf (r:0 w:1) + /// Storage: Uniques Asset (r:1 w:0) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:0 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) fn set_price() -> Weight { - // Minimum execution time: 22_189 nanoseconds. - Weight::from_ref_time(22_572_000) + // Proof Size summary in bytes: + // Measured: `259` + // Estimated: `3587` + // Minimum execution time: 17_599_000 picoseconds. + Weight::from_parts(17_802_000, 0) + .saturating_add(Weight::from_parts(0, 3587)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Uniques Asset (r:1 w:1) - // Storage: Uniques ItemPriceOf (r:1 w:1) - // Storage: Uniques Class (r:1 w:0) - // Storage: Uniques Account (r:0 w:2) + /// Storage: Uniques Asset (r:1 w:1) + /// Proof: Uniques Asset (max_values: None, max_size: Some(122), added: 2597, mode: MaxEncodedLen) + /// Storage: Uniques ItemPriceOf (r:1 w:1) + /// Proof: Uniques ItemPriceOf (max_values: None, max_size: Some(89), added: 2564, mode: MaxEncodedLen) + /// Storage: Uniques Class (r:1 w:0) + /// Proof: Uniques Class (max_values: None, max_size: Some(178), added: 2653, mode: MaxEncodedLen) + /// Storage: Uniques Account (r:0 w:2) + /// Proof: Uniques Account (max_values: None, max_size: Some(88), added: 2563, mode: MaxEncodedLen) fn buy_item() -> Weight { - // Minimum execution time: 41_005 nanoseconds. - Weight::from_ref_time(41_754_000) + // Proof Size summary in bytes: + // Measured: `540` + // Estimated: `10784` + // Minimum execution time: 38_642_000 picoseconds. + Weight::from_parts(39_168_000, 0) + .saturating_add(Weight::from_parts(0, 10784)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_utility.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_utility.rs index 205b5c242ad..76db89d9078 100644 --- a/parachains/runtimes/assets/westmint/src/weights/pallet_utility.rs +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_utility.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -48,31 +49,51 @@ pub struct WeightInfo(PhantomData); impl pallet_utility::WeightInfo for WeightInfo { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - // Minimum execution time: 13_150 nanoseconds. - Weight::from_ref_time(45_410_670) - // Standard Error: 4_980 - .saturating_add(Weight::from_ref_time(3_648_675).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_995_000 picoseconds. + Weight::from_parts(19_761_796, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_672 + .saturating_add(Weight::from_parts(4_682_116, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 6_612 nanoseconds. - Weight::from_ref_time(6_812_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_549_000 picoseconds. + Weight::from_parts(5_723_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - // Minimum execution time: 12_684 nanoseconds. - Weight::from_ref_time(20_159_209) - // Standard Error: 3_165 - .saturating_add(Weight::from_ref_time(3_835_742).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_210_000 picoseconds. + Weight::from_parts(15_002_117, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_199 + .saturating_add(Weight::from_parts(4_917_852, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 15_037 nanoseconds. - Weight::from_ref_time(15_427_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_596_000 picoseconds. + Weight::from_parts(9_875_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - // Minimum execution time: 13_009 nanoseconds. - Weight::from_ref_time(22_726_275) - // Standard Error: 2_643 - .saturating_add(Weight::from_ref_time(3_653_361).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_024_000 picoseconds. + Weight::from_parts(15_781_473, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 2_344 + .saturating_add(Weight::from_parts(4_665_530, 0).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs b/parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..12b4dd66653 --- /dev/null +++ b/parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs @@ -0,0 +1,274 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=westmint-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/assets/westmint/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `9780` + // Minimum execution time: 28_019_000 picoseconds. + Weight::from_parts(29_053_000, 0) + .saturating_add(Weight::from_parts(0, 9780)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 24_127_000 picoseconds. + Weight::from_parts(24_609_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1489` + // Minimum execution time: 18_826_000 picoseconds. + Weight::from_parts(19_183_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + fn execute() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_865_000 picoseconds. + Weight::from_parts(10_129_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: PolkadotXcm SupportedVersion (r:0 w:1) + /// Proof Skipped: 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: 9_995_000 picoseconds. + Weight::from_parts(10_290_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_144_000 picoseconds. + Weight::from_parts(3_225_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `14955` + // Minimum execution time: 33_946_000 picoseconds. + Weight::from_parts(34_595_000, 0) + .saturating_add(Weight::from_parts(0, 14955)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `257` + // Estimated: `14669` + // Minimum execution time: 34_408_000 picoseconds. + Weight::from_parts(34_845_000, 0) + .saturating_add(Weight::from_parts(0, 14669)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `129` + // Estimated: `11019` + // Minimum execution time: 17_219_000 picoseconds. + Weight::from_parts(17_552_000, 0) + .saturating_add(Weight::from_parts(0, 11019)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `133` + // Estimated: `11023` + // Minimum execution time: 17_382_000 picoseconds. + Weight::from_parts(17_791_000, 0) + .saturating_add(Weight::from_parts(0, 11023)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `13505` + // Minimum execution time: 18_051_000 picoseconds. + Weight::from_parts(18_643_000, 0) + .saturating_add(Weight::from_parts(0, 13505)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `142` + // Estimated: `16197` + // Minimum execution time: 33_113_000 picoseconds. + Weight::from_parts(34_048_000, 0) + .saturating_add(Weight::from_parts(0, 16197)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `172` + // Estimated: `8587` + // Minimum execution time: 9_569_000 picoseconds. + Weight::from_parts(9_933_000, 0) + .saturating_add(Weight::from_parts(0, 8587)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `140` + // Estimated: `11030` + // Minimum execution time: 19_098_000 picoseconds. + Weight::from_parts(19_550_000, 0) + .saturating_add(Weight::from_parts(0, 11030)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `146` + // Estimated: `21171` + // Minimum execution time: 40_365_000 picoseconds. + Weight::from_parts(41_092_000, 0) + .saturating_add(Weight::from_parts(0, 21171)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs b/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs index 5f6bf034fdc..b30ee424073 100644 --- a/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs +++ b/parachains/runtimes/assets/westmint/src/weights/xcm/mod.rs @@ -21,168 +21,223 @@ use crate::Runtime; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::{cmp, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XCMWeight}, - DoubleEncoded, -}; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight; + fn weigh_multi_assets(&self, weight: Weight) -> Weight; } -const MAX_ASSETS: u32 = 100; +const MAX_ASSETS: u64 = 100; impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - let weight = match self { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { Self::Definite(assets) => weight.saturating_mul(assets.inner().into_iter().count() as u64), Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64), - }; - weight.ref_time() + } } } impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - weight.saturating_mul(self.inner().into_iter().count() as u64).ref_time() + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().into_iter().count() as u64) } } pub struct WestmintXcmWeight(core::marker::PhantomData); impl XcmWeightInfo for WestmintXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) } // Currently there is no trusted reserve - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { - u64::MAX + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + Weight::from_parts(1_000_000_000 as u64, 0) } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } - fn query_response(_query_id: &u64, _response: &Response, _max_weight: &u64) -> XCMWeight { - XcmGeneric::::query_response().ref_time() + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) } fn transfer_reserve_asset( assets: &MultiAssets, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &u64, + _require_weight_at_most: &Weight, _call: &DoubleEncoded, - ) -> XCMWeight { - XcmGeneric::::transact().ref_time() + ) -> Weight { + XcmGeneric::::transact() } fn hrmp_new_channel_open_request( _sender: &u32, _max_message_size: &u32, _max_capacity: &u32, - ) -> XCMWeight { + ) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_accepted(_recipient: &u32) -> XCMWeight { + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> XCMWeight { + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn clear_origin() -> XCMWeight { - XcmGeneric::::clear_origin().ref_time() + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { - XcmGeneric::::descend_origin().ref_time() + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() } - fn report_error( - _query_id: &QueryId, - _dest: &MultiLocation, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::report_error().ref_time() + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() } - fn deposit_asset( - assets: &MultiAssetFilter, - _max_assets: &u32, - _dest: &MultiLocation, - ) -> XCMWeight { + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(1_000_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(1_000_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } fn deposit_reserve_asset( assets: &MultiAssetFilter, - _max_assets: &u32, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets) -> XCMWeight { - Weight::MAX.ref_time() + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX } fn initiate_reserve_withdraw( assets: &MultiAssetFilter, _reserve: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) } fn initiate_teleport( assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(200_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(200_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } - fn query_holding( - _query_id: &u64, - _dest: &MultiLocation, - _assets: &MultiAssetFilter, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::query_holding().ref_time() + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { - XcmGeneric::::buy_execution().ref_time() + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn refund_surplus() -> XCMWeight { - XcmGeneric::::refund_surplus().ref_time() + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_error_handler(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_error_handler().ref_time() + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_appendix(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_appendix().ref_time() + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn clear_error() -> XCMWeight { - XcmGeneric::::clear_error().ref_time() + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { - XcmGeneric::::claim_asset().ref_time() + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() } - fn trap(_code: &u64) -> XCMWeight { - XcmGeneric::::trap().ref_time() + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &u64) -> XCMWeight { - XcmGeneric::::subscribe_version().ref_time() + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX } - fn unsubscribe_version() -> XCMWeight { - XcmGeneric::::unsubscribe_version().ref_time() + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() } } diff --git a/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index fcd1b0b5f41..66f6bd713d5 100644 --- a/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::fungible` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -49,59 +49,110 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: System Account (r:1 w:1) - pub(crate) fn withdraw_asset() -> Weight { - Weight::from_ref_time(32_238_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 22_591_000 picoseconds. + Weight::from_parts(23_052_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:2 w:2) - pub(crate) fn transfer_asset() -> Weight { - Weight::from_ref_time(37_145_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `6196` + // Minimum execution time: 32_036_000 picoseconds. + Weight::from_parts(32_396_000, 6196) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn transfer_reserve_asset() -> Weight { - Weight::from_ref_time(52_803_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `176` + // Estimated: `17970` + // Minimum execution time: 58_331_000 picoseconds. + Weight::from_parts(59_048_000, 17970) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) } - pub(crate) fn receive_teleported_asset() -> Weight { - Weight::from_ref_time(6_248_000 as u64) + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_474_000 picoseconds. + Weight::from_parts(4_577_000, 0) } // Storage: System Account (r:1 w:1) - pub(crate) fn deposit_asset() -> Weight { - Weight::from_ref_time(33_168_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 28_611_000 picoseconds. + Weight::from_parts(28_992_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn deposit_reserve_asset() -> Weight { - Weight::from_ref_time(53_662_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `14862` + // Minimum execution time: 57_179_000 picoseconds. + Weight::from_parts(58_149_000, 14862) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_teleport() -> Weight { - Weight::from_ref_time(29_189_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 30_477_000 picoseconds. + Weight::from_parts(30_841_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index ff3da44e032..67c2b083f89 100644 --- a/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/parachains/runtimes/assets/westmint/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,12 +14,12 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("westmint-dev"), DB CACHE: 1024 // Executed Command: @@ -49,89 +49,300 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn query_holding() -> Weight { - Weight::from_ref_time(710_352_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 355_263_000 picoseconds. + Weight::from_parts(357_327_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - pub(crate) fn buy_execution() -> Weight { - Weight::from_ref_time(8_924_000 as u64) + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_068_000 picoseconds. + Weight::from_parts(4_273_000, 0) } // Storage: PolkadotXcm Queries (r:1 w:0) - pub(crate) fn query_response() -> Weight { - Weight::from_ref_time(17_278_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `69` + // Estimated: `3534` + // Minimum execution time: 11_279_000 picoseconds. + Weight::from_parts(11_626_000, 3534) + .saturating_add(T::DbWeight::get().reads(1)) } - pub(crate) fn transact() -> Weight { - Weight::from_ref_time(20_214_000 as u64) + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_246_000 picoseconds. + Weight::from_parts(13_425_000, 0) } - pub(crate) fn refund_surplus() -> Weight { - Weight::from_ref_time(9_218_000 as u64) + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_426_000 picoseconds. + Weight::from_parts(4_600_000, 0) } - pub(crate) fn set_error_handler() -> Weight { - Weight::from_ref_time(5_175_000 as u64) + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_838_000 picoseconds. + Weight::from_parts(2_921_000, 0) } - pub(crate) fn set_appendix() -> Weight { - Weight::from_ref_time(5_145_000 as u64) + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_858_000 picoseconds. + Weight::from_parts(2_981_000, 0) } - pub(crate) fn clear_error() -> Weight { - Weight::from_ref_time(5_298_000 as u64) + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_848_000 picoseconds. + Weight::from_parts(2_922_000, 0) } - pub(crate) fn descend_origin() -> Weight { - Weight::from_ref_time(6_134_000 as u64) + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_732_000 picoseconds. + Weight::from_parts(3_801_000, 0) } - pub(crate) fn clear_origin() -> Weight { - Weight::from_ref_time(5_277_000 as u64) + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_882_000 picoseconds. + Weight::from_parts(2_971_000, 0) } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn report_error() -> Weight { - Weight::from_ref_time(15_270_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 25_538_000 picoseconds. + Weight::from_parts(25_964_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: PolkadotXcm AssetTraps (r:1 w:1) - pub(crate) fn claim_asset() -> Weight { - Weight::from_ref_time(21_147_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm AssetTraps (max_values: None, max_size: None, mode: Measured) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `126` + // Estimated: `3591` + // Minimum execution time: 16_187_000 picoseconds. + Weight::from_parts(16_478_000, 3591) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - pub(crate) fn trap() -> Weight { - Weight::from_ref_time(5_429_000 as u64) + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_804_000 picoseconds. + Weight::from_parts(2_874_000, 0) } // Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn subscribe_version() -> Weight { - Weight::from_ref_time(18_098_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `13320` + // Minimum execution time: 28_208_000 picoseconds. + Weight::from_parts(28_512_000, 13320) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1) - pub(crate) fn unsubscribe_version() -> Weight { - Weight::from_ref_time(7_527_000 as u64) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_021_000 picoseconds. + Weight::from_parts(5_128_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 403_561_000 picoseconds. + Weight::from_parts(404_798_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 122_646_000 picoseconds. + Weight::from_parts(123_057_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_916_000 picoseconds. + Weight::from_parts(14_178_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_025_000 picoseconds. + Weight::from_parts(3_083_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_879_000 picoseconds. + Weight::from_parts(2_947_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_067_000 picoseconds. + Weight::from_parts(3_129_000, 0) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_reserve_withdraw() -> Weight { - Weight::from_ref_time(927_560_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 29_511_000 picoseconds. + Weight::from_parts(29_922_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_410_000 picoseconds. + Weight::from_parts(5_531_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `75` + // Estimated: `11269` + // Minimum execution time: 26_044_000 picoseconds. + Weight::from_parts(26_397_000, 11269) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_950_000 picoseconds. + Weight::from_parts(2_989_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_877_000 picoseconds. + Weight::from_parts(2_928_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_884_000 picoseconds. + Weight::from_parts(2_959_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_733_000 picoseconds. + Weight::from_parts(2_862_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_917_000 picoseconds. + Weight::from_parts(2_990_000, 0) } } diff --git a/parachains/runtimes/assets/westmint/src/xcm_config.rs b/parachains/runtimes/assets/westmint/src/xcm_config.rs index 9d23dd55e59..064094e03d3 100644 --- a/parachains/runtimes/assets/westmint/src/xcm_config.rs +++ b/parachains/runtimes/assets/westmint/src/xcm_config.rs @@ -14,12 +14,13 @@ // limitations under the License. use super::{ - AccountId, AssetId, Assets, Authorship, Balance, Balances, ParachainInfo, ParachainSystem, - PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Assets, Authorship, Balance, Balances, ParachainInfo, + ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + TrustBackedAssetsInstance, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{Everything, PalletInfoAccess}, + traits::{ConstU32, Contains, Everything, Nothing, PalletInfoAccess}, }; use pallet_xcm::XcmPassthrough; use parachains_common::{ @@ -32,24 +33,23 @@ use polkadot_parachain::primitives::Sibling; use sp_runtime::traits::ConvertInto; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, - ConvertedConcreteAssetId, CurrencyAdapter, EnsureXcmOrigin, FungiblesAdapter, IsConcrete, - LocationInverter, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, - WeightInfoBounds, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + FungiblesAdapter, IsConcrete, LocalMint, NativeAsset, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, + UsingComponents, WeightInfoBounds, WithComputedOrigin, }; -use xcm_executor::{traits::JustTry, XcmExecutor}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; parameter_types! { pub const WestendLocation: MultiLocation = MultiLocation::parent(); - pub RelayNetwork: NetworkId = - NetworkId::Named(b"Westend".to_vec().try_into().expect("less than length limit; qed")); + pub RelayNetwork: Option = Some(NetworkId::Westend); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); - pub const Local: MultiLocation = Here.into(); - pub AssetsPalletLocation: MultiLocation = + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const Local: MultiLocation = Here.into_location(); + pub TrustBackedAssetsPalletLocation: MultiLocation = PalletInstance(::index() as u8).into(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); } @@ -80,24 +80,23 @@ pub type CurrencyTransactor = CurrencyAdapter< (), >; +/// `AssetId/Balancer` converter for `TrustBackedAssets` +pub type TrustBackedAssetsConvertedConcreteId = + assets_common::TrustBackedAssetsConvertedConcreteId; + /// Means for transacting assets besides the native currency on this chain. pub type FungiblesTransactor = FungiblesAdapter< // Use this fungibles implementation: Assets, // Use this currency when it is a fungible asset matching the given location or name: - ConvertedConcreteAssetId< - AssetId, - Balance, - AsPrefixedGeneralIndex, - JustTry, - >, + TrustBackedAssetsConvertedConcreteId, // Convert an XCM MultiLocation into a local account id: LocationToAccountId, // Our chain's account ID type (we can't get away without mentioning it explicitly): AccountId, // We only want to allow teleports of known assets. We use non-zero issuance as an indication // that this asset is known. - parachains_common::impls::NonZeroIssuance, + LocalMint>, // The account to use for tracking teleports. CheckingAccount, >; @@ -130,6 +129,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; pub XcmAssetFeesReceiver: Option = Authorship::author(); } @@ -139,25 +139,169 @@ match_types! { MultiLocation { parents: 1, interior: X1(Plurality { .. }) } }; } +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) | + RuntimeCall::Assets( + pallet_assets::Call::create { .. } | + pallet_assets::Call::force_create { .. } | + pallet_assets::Call::start_destroy { .. } | + pallet_assets::Call::destroy_accounts { .. } | + pallet_assets::Call::destroy_approvals { .. } | + pallet_assets::Call::finish_destroy { .. } | + pallet_assets::Call::mint { .. } | + pallet_assets::Call::burn { .. } | + pallet_assets::Call::transfer { .. } | + pallet_assets::Call::transfer_keep_alive { .. } | + pallet_assets::Call::force_transfer { .. } | + pallet_assets::Call::freeze { .. } | + pallet_assets::Call::thaw { .. } | + pallet_assets::Call::freeze_asset { .. } | + pallet_assets::Call::thaw_asset { .. } | + pallet_assets::Call::transfer_ownership { .. } | + pallet_assets::Call::set_team { .. } | + pallet_assets::Call::clear_metadata { .. } | + pallet_assets::Call::force_clear_metadata { .. } | + pallet_assets::Call::force_asset_status { .. } | + pallet_assets::Call::approve_transfer { .. } | + pallet_assets::Call::cancel_approval { .. } | + pallet_assets::Call::force_cancel_approval { .. } | + pallet_assets::Call::transfer_approved { .. } | + pallet_assets::Call::touch { .. } | + pallet_assets::Call::refund { .. }, + ) | + RuntimeCall::Nfts( + pallet_nfts::Call::create { .. } | + pallet_nfts::Call::force_create { .. } | + pallet_nfts::Call::destroy { .. } | + pallet_nfts::Call::mint { .. } | + pallet_nfts::Call::force_mint { .. } | + pallet_nfts::Call::burn { .. } | + pallet_nfts::Call::transfer { .. } | + pallet_nfts::Call::lock_item_transfer { .. } | + pallet_nfts::Call::unlock_item_transfer { .. } | + pallet_nfts::Call::lock_collection { .. } | + pallet_nfts::Call::transfer_ownership { .. } | + pallet_nfts::Call::set_team { .. } | + pallet_nfts::Call::force_collection_owner { .. } | + pallet_nfts::Call::force_collection_config { .. } | + pallet_nfts::Call::approve_transfer { .. } | + pallet_nfts::Call::cancel_approval { .. } | + pallet_nfts::Call::clear_all_transfer_approvals { .. } | + pallet_nfts::Call::lock_item_properties { .. } | + pallet_nfts::Call::set_attribute { .. } | + pallet_nfts::Call::force_set_attribute { .. } | + pallet_nfts::Call::clear_attribute { .. } | + pallet_nfts::Call::approve_item_attributes { .. } | + pallet_nfts::Call::cancel_item_attributes_approval { .. } | + pallet_nfts::Call::set_metadata { .. } | + pallet_nfts::Call::clear_metadata { .. } | + pallet_nfts::Call::set_collection_metadata { .. } | + pallet_nfts::Call::clear_collection_metadata { .. } | + pallet_nfts::Call::set_accept_ownership { .. } | + pallet_nfts::Call::set_collection_max_supply { .. } | + pallet_nfts::Call::update_mint_settings { .. } | + pallet_nfts::Call::set_price { .. } | + pallet_nfts::Call::buy_item { .. } | + pallet_nfts::Call::pay_tips { .. } | + pallet_nfts::Call::create_swap { .. } | + pallet_nfts::Call::cancel_swap { .. } | + pallet_nfts::Call::claim_swap { .. }, + ) | + RuntimeCall::Uniques( + pallet_uniques::Call::create { .. } | + pallet_uniques::Call::force_create { .. } | + pallet_uniques::Call::destroy { .. } | + pallet_uniques::Call::mint { .. } | + pallet_uniques::Call::burn { .. } | + pallet_uniques::Call::transfer { .. } | + pallet_uniques::Call::freeze { .. } | + pallet_uniques::Call::thaw { .. } | + pallet_uniques::Call::freeze_collection { .. } | + pallet_uniques::Call::thaw_collection { .. } | + pallet_uniques::Call::transfer_ownership { .. } | + pallet_uniques::Call::set_team { .. } | + pallet_uniques::Call::approve_transfer { .. } | + pallet_uniques::Call::cancel_approval { .. } | + pallet_uniques::Call::force_item_status { .. } | + pallet_uniques::Call::set_attribute { .. } | + pallet_uniques::Call::clear_attribute { .. } | + pallet_uniques::Call::set_metadata { .. } | + pallet_uniques::Call::clear_metadata { .. } | + pallet_uniques::Call::set_collection_metadata { .. } | + pallet_uniques::Call::clear_collection_metadata { .. } | + pallet_uniques::Call::set_accept_ownership { .. } | + pallet_uniques::Call::set_collection_max_supply { .. } | + pallet_uniques::Call::set_price { .. } | + pallet_uniques::Call::buy_item { .. }, + ) => true, + _ => false, + } + } +} pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - // Parent and its plurality get free execution - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Parent or its plurality (i.e. governance bodies) gets free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; pub type AssetFeeAsExistentialDepositMultiplierFeeCharger = AssetFeeAsExistentialDepositMultiplier< Runtime, WeightToFee, - pallet_assets::BalanceToAssetBalance, + pallet_assets::BalanceToAssetBalance, + TrustBackedAssetsInstance, >; pub struct XcmConfig; @@ -171,7 +315,7 @@ impl xcm_executor::Config for XcmConfig { // For WND, users must use teleport where allowed (e.g. with the Relay Chain). type IsReserve = (); type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of WND - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = WeightInfoBounds< crate::weights::xcm::WestmintXcmWeight, @@ -183,12 +327,7 @@ impl xcm_executor::Config for XcmConfig { cumulus_primitives_utility::TakeFirstAssetTrader< AccountId, AssetFeeAsExistentialDepositMultiplierFeeCharger, - ConvertedConcreteAssetId< - AssetId, - Balance, - AsPrefixedGeneralIndex, - JustTry, - >, + TrustBackedAssetsConvertedConcreteId, Assets, cumulus_primitives_utility::XcmFeesTo32ByteAccount< FungiblesTransactor, @@ -201,6 +340,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; } /// Local origins on this chain are allowed to dispatch XCM sends/executions. @@ -210,11 +358,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -229,11 +382,19 @@ impl pallet_xcm::Config for Runtime { RuntimeCall, MaxInstructions, >; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/assets/westmint/tests/tests.rs b/parachains/runtimes/assets/westmint/tests/tests.rs index a7b846d49ec..246ddbadb69 100644 --- a/parachains/runtimes/assets/westmint/tests/tests.rs +++ b/parachains/runtimes/assets/westmint/tests/tests.rs @@ -1,21 +1,30 @@ use asset_test_utils::{ExtBuilder, RuntimeHelper}; +use codec::Encode; use cumulus_primitives_utility::ChargeWeightInFungibles; use frame_support::{ - assert_noop, assert_ok, - traits::PalletInfo, + assert_noop, assert_ok, sp_io, weights::{Weight, WeightToFee as WeightToFeeT}, }; -use parachains_common::{AccountId, AuraId}; -use westmint_runtime::xcm_config::AssetFeeAsExistentialDepositMultiplierFeeCharger; +use parachains_common::{AccountId, AuraId, Balance}; +use westmint_runtime::xcm_config::{ + AssetFeeAsExistentialDepositMultiplierFeeCharger, WestendLocation, +}; pub use westmint_runtime::{ - constants::fee::WeightToFee, xcm_config::XcmConfig, Assets, Balances, ExistentialDeposit, - Runtime, SessionKeys, System, + constants::fee::WeightToFee, + xcm_config::{TrustBackedAssetsPalletLocation, XcmConfig}, + Assets, Balances, ExistentialDeposit, ReservedDmpWeight, Runtime, SessionKeys, System, }; use xcm::latest::prelude::*; -use xcm_executor::traits::WeightTrader; +use xcm_executor::{ + traits::{Convert, WeightTrader}, + XcmExecutor, +}; pub const ALICE: [u8; 32] = [1u8; 32]; +type AssetIdForTrustBackedAssetsConvert = + assets_common::AssetIdForTrustBackedAssetsConvert; + #[test] fn test_asset_xcm_trader() { ExtBuilder::::default() @@ -47,28 +56,20 @@ fn test_asset_xcm_trader() { )); // get asset id as multilocation - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(local_asset_id.into()), - ), - ); + let asset_multilocation = + AssetIdForTrustBackedAssetsConvert::reverse_ref(local_asset_id).unwrap(); // Set Alice as block author, who will receive fees RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 4e9 weight - let bought = 4_000_000_000u64; + let bought = Weight::from_parts(4_000_000_000u64, 0); // Lets calculate amount needed let asset_amount_needed = AssetFeeAsExistentialDepositMultiplierFeeCharger::charge_weight_in_fungibles( local_asset_id, - Weight::from_ref_time(bought), + bought, ) .expect("failed to compute"); @@ -94,12 +95,15 @@ fn test_asset_xcm_trader() { // Make sure author(Alice) has received the amount assert_eq!( - Assets::balance(1, AccountId::from(ALICE)), + Assets::balance(local_asset_id, AccountId::from(ALICE)), minimum_asset_balance + asset_amount_needed ); // We also need to ensure the total supply increased - assert_eq!(Assets::total_supply(1), minimum_asset_balance + asset_amount_needed); + assert_eq!( + Assets::total_supply(local_asset_id), + minimum_asset_balance + asset_amount_needed + ); }); } @@ -138,20 +142,11 @@ fn test_asset_xcm_trader_with_refund() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 4e9 weight - let bought = 4_000_000_000u64; - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(4_000_000_000u64, 0); + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); // lets calculate amount needed - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); let asset: MultiAsset = (asset_multilocation.clone(), amount_bought).into(); @@ -159,14 +154,14 @@ fn test_asset_xcm_trader_with_refund() { assert_ok!(trader.buy_weight(bought, asset.clone().into())); // Make sure again buy_weight does return an error - assert_noop!(trader.buy_weight(bought, asset.into()), XcmError::NotWithdrawable); + // This assert relies on the fact, that we use `TakeFirstAssetTrader` in `WeightTrader` tuple chain, which cannot be called twice + assert_noop!(trader.buy_weight(bought, asset.into()), XcmError::TooExpensive); // We actually use half of the weight let weight_used = bought / 2; // Make sure refurnd works. - let amount_refunded = - WeightToFee::weight_to_fee(&Weight::from_ref_time(bought - weight_used)); + let amount_refunded = WeightToFee::weight_to_fee(&(bought - weight_used)); assert_eq!( trader.refund_weight(bought - weight_used), @@ -177,7 +172,7 @@ fn test_asset_xcm_trader_with_refund() { drop(trader); // We only should have paid for half of the bought weight - let fees_paid = WeightToFee::weight_to_fee(&Weight::from_ref_time(weight_used)); + let fees_paid = WeightToFee::weight_to_fee(&weight_used); assert_eq!( Assets::balance(1, AccountId::from(ALICE)), @@ -216,20 +211,11 @@ fn test_asset_xcm_trader_refund_not_possible_since_amount_less_than_ed() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 5e9 weight - let bought = 500_000_000u64; - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(500_000_000u64, 0); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let amount_bought = WeightToFee::weight_to_fee(&bought); assert!( amount_bought < ExistentialDeposit::get(), @@ -275,20 +261,11 @@ fn test_that_buying_ed_refund_does_not_refund() { // Set Alice as block author, who will receive fees RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); - let bought = 500_000_000u64; - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let bought = Weight::from_parts(500_000_000u64, 0); - let amount_bought = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); + + let amount_bought = WeightToFee::weight_to_fee(&bought); assert!( amount_bought < ExistentialDeposit::get(), @@ -356,21 +333,12 @@ fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { RuntimeHelper::::run_to_block(2, Some(AccountId::from(ALICE))); // We are going to buy 4e9 weight - let bought = 4_000_000_000u64; + let bought = Weight::from_parts(4_000_000_000u64, 0); // lets calculate amount needed - let asset_amount_needed = WeightToFee::weight_to_fee(&Weight::from_ref_time(bought)); - - let asset_multilocation = MultiLocation::new( - 0, - X2( - PalletInstance( - ::PalletInfo::index::().unwrap() - as u8, - ), - GeneralIndex(1), - ), - ); + let asset_amount_needed = WeightToFee::weight_to_fee(&bought); + + let asset_multilocation = AssetIdForTrustBackedAssetsConvert::reverse_ref(1).unwrap(); let asset: MultiAsset = (asset_multilocation, asset_amount_needed).into(); @@ -387,3 +355,120 @@ fn test_asset_xcm_trader_not_possible_for_non_sufficient_assets() { assert_eq!(Assets::total_supply(1), minimum_asset_balance); }); } + +#[test] +fn test_assets_balances_api_works() { + use assets_common::runtime_api::runtime_decl_for_fungibles_api::FungiblesApi; + + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let local_asset_id = 1; + + // check before + assert_eq!(Assets::balance(local_asset_id, AccountId::from(ALICE)), 0); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), 0); + assert!(Runtime::query_account_balances(AccountId::from(ALICE)).unwrap().is_empty()); + + // Drip some balance + use frame_support::traits::fungible::Mutate; + let some_currency = ExistentialDeposit::get(); + Balances::mint_into(&AccountId::from(ALICE), some_currency).unwrap(); + + // We need root origin to create a sufficient asset + let minimum_asset_balance = 3333333_u128; + assert_ok!(Assets::force_create( + RuntimeHelper::::root_origin(), + local_asset_id.into(), + AccountId::from(ALICE).into(), + true, + minimum_asset_balance + )); + + // We first mint enough asset for the account to exist for assets + assert_ok!(Assets::mint( + RuntimeHelper::::origin_of(AccountId::from(ALICE)), + local_asset_id.into(), + AccountId::from(ALICE).into(), + minimum_asset_balance + )); + + // check after + assert_eq!( + Assets::balance(local_asset_id, AccountId::from(ALICE)), + minimum_asset_balance + ); + assert_eq!(Balances::free_balance(AccountId::from(ALICE)), some_currency); + + let result = Runtime::query_account_balances(AccountId::from(ALICE)).unwrap(); + assert_eq!(result.len(), 2); + + // check currency + assert!(result.iter().any(|asset| asset.eq( + &assets_common::fungible_conversion::convert_balance::( + some_currency + ) + .unwrap() + ))); + // check trusted asset + assert!(result.iter().any(|asset| asset.eq(&( + AssetIdForTrustBackedAssetsConvert::reverse_ref(local_asset_id).unwrap(), + minimum_asset_balance + ) + .into()))); + }); +} + +#[test] +fn receive_teleported_asset_works() { + ExtBuilder::::default() + .with_collators(vec![AccountId::from(ALICE)]) + .with_session_keys(vec![( + AccountId::from(ALICE), + AccountId::from(ALICE), + SessionKeys { aura: AuraId::from(sp_core::sr25519::Public::from_raw(ALICE)) }, + )]) + .build() + .execute_with(|| { + let xcm = Xcm(vec![ + ReceiveTeleportedAsset(MultiAssets::from(vec![MultiAsset { + id: Concrete(MultiLocation { parents: 1, interior: Here }), + fun: Fungible(10000000000000), + }])), + ClearOrigin, + BuyExecution { + fees: MultiAsset { + id: Concrete(MultiLocation { parents: 1, interior: Here }), + fun: Fungible(10000000000000), + }, + weight_limit: Limited(Weight::from_parts(1303531000, 65536)), + }, + DepositAsset { + assets: Wild(AllCounted(1)), + beneficiary: MultiLocation { + parents: 0, + interior: X1(AccountId32 { + network: None, + id: [ + 18, 153, 85, 112, 1, 245, 88, 21, 211, 252, 181, 60, 116, 70, 58, + 203, 12, 246, 209, 77, 70, 57, 179, 64, 152, 44, 96, 135, 127, 56, + 70, 9, + ], + }), + }, + }, + ]); + let hash = xcm.using_encoded(sp_io::hashing::blake2_256); + + let weight_limit = ReservedDmpWeight::get(); + + let outcome = XcmExecutor::::execute_xcm(Parent, xcm, hash, weight_limit); + assert_eq!(outcome.ensure_complete(), Ok(())); + }) +} diff --git a/parachains/runtimes/bridge-hubs/README.md b/parachains/runtimes/bridge-hubs/README.md index 9b371c639f9..79e82f3497a 100644 --- a/parachains/runtimes/bridge-hubs/README.md +++ b/parachains/runtimes/bridge-hubs/README.md @@ -20,7 +20,7 @@ cd cargo build --release -p polkadot-parachain@0.9.320 # script expect to have pre-built polkadot binary on the path: ../polkadot/target/release/polkadot -# if using kusama-local, build polkadot with `--features fast-runtime` +# if using `kusama-local` / `polkadot-local`, build polkadot with `--features fast-runtime` # BridgeHubRococo zombienet-linux --provider native spawn ./zombienet/examples/bridge_hub_rococo_local_network.toml @@ -29,4 +29,9 @@ zombienet-linux --provider native spawn ./zombienet/examples/bridge_hub_rococo_l # BridgeHubKusama zombienet-linux --provider native spawn ./zombienet/examples/bridge_hub_kusama_local_network.toml + +or + +# BridgeHubPolkadot +zombienet-linux --provider native spawn ./zombienet/examples/bridge_hub_polkadot_local_network.toml ``` diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml index 6d48ae5f4cf..1bd29bf65eb 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/Cargo.toml @@ -6,58 +6,58 @@ edition = "2021" description = "Kusama's BridgeHub parachain runtime" [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4" } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.151", optional = true, features = ["derive"] } +serde = { version = "1.0.152", optional = true, features = ["derive"] } smallvec = "1.8.1" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -kusama-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +kusama-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs index a89f698e7cd..c4e741cd2d0 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/lib.rs @@ -128,10 +128,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("bridge-hub-kusama"), impl_name: create_runtime_str!("bridge-hub-kusama"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 1, + transaction_version: 3, state_version: 1, }; @@ -232,8 +232,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -320,6 +318,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = RootOrExecutiveSimpleMajority; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -422,7 +421,7 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -456,6 +455,7 @@ mod benches { [pallet_collator_selection, CollatorSelection] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM + [pallet_xcm, PolkadotXcm] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -561,6 +561,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -571,7 +577,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } @@ -632,7 +638,7 @@ impl_runtime_apis! { fn valid_destination() -> Result { Ok(KsmRelayLocation::get()) } - fn worst_case_holding() -> MultiAssets { + fn worst_case_holding(_depositable_count: u32) -> MultiAssets { // just concrete assets according to relay chain. let assets: Vec = vec![ MultiAsset { @@ -649,8 +655,7 @@ impl_runtime_apis! { KsmRelayLocation::get(), MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(KsmRelayLocation::get()) }, )); - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - pub const CheckedAccount: Option = None; + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; } impl pallet_xcm_benchmarks::fungible::Config for Runtime { @@ -658,7 +663,6 @@ impl_runtime_apis! { type CheckedAccount = CheckedAccount; type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; fn get_multi_asset() -> MultiAsset { MultiAsset { @@ -675,8 +679,16 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } - fn transact_origin() -> Result { - Ok(KsmRelayLocation::get()) + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((KsmRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } fn subscribe_origin() -> Result { @@ -689,6 +701,10 @@ impl_runtime_apis! { let ticket = MultiLocation { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } } type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs index 3a5de013ea9..4fa7848e6ff 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -46,17 +47,27 @@ use sp_std::marker::PhantomData; /// Weight functions for `cumulus_pallet_xcmp_queue`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { - // Minimum execution time: 6_810 nanoseconds. - Weight::from_ref_time(7_136_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_373_000 picoseconds. + Weight::from_parts(5_599_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { - // Minimum execution time: 6_891 nanoseconds. - Weight::from_ref_time(7_220_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_534_000 picoseconds. + Weight::from_parts(5_769_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs index 9e569cdd8ad..65925307177 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/frame_system.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -48,51 +49,82 @@ pub struct WeightInfo(PhantomData); impl frame_system::WeightInfo for WeightInfo { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { - // Minimum execution time: 3_681 nanoseconds. - Weight::from_ref_time(3_824_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_314_000 picoseconds. + Weight::from_parts(2_371_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(411).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(369, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - // Minimum execution time: 12_708 nanoseconds. - Weight::from_ref_time(12_912_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_667_000 picoseconds. + Weight::from_parts(7_755_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_773).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_414, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 7_668 nanoseconds. - Weight::from_ref_time(8_140_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_135_000 picoseconds. + Weight::from_parts(4_368_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_888 nanoseconds. - Weight::from_ref_time(3_952_000) - // Standard Error: 2_160 - .saturating_add(Weight::from_ref_time(615_707).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_351_000 picoseconds. + Weight::from_parts(2_396_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_912 + .saturating_add(Weight::from_parts(729_478, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_878 nanoseconds. - Weight::from_ref_time(3_991_000) - // Standard Error: 972 - .saturating_add(Weight::from_ref_time(445_105).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_417_000 picoseconds. + Weight::from_parts(2_546_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 842 + .saturating_add(Weight::from_parts(542_458, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - // Minimum execution time: 5_434 nanoseconds. - Weight::from_ref_time(5_510_000) - // Standard Error: 1_293 - .saturating_add(Weight::from_ref_time(967_708).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `66 + p * (70 ±0)` + // Minimum execution time: 4_324_000 picoseconds. + Weight::from_parts(4_432_000, 0) + .saturating_add(Weight::from_parts(0, 66)) + // Standard Error: 1_165 + .saturating_add(Weight::from_parts(1_070_662, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs index 869c03be687..d5722374def 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/mod.rs @@ -27,6 +27,7 @@ pub mod pallet_multisig; pub mod pallet_session; pub mod pallet_timestamp; pub mod pallet_utility; +pub mod pallet_xcm; pub mod paritydb_weights; pub mod rocksdb_weights; pub mod xcm; diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs index 506bbfa8d43..075c6b6038c 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_balances.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -46,52 +47,87 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_balances`. pub struct WeightInfo(PhantomData); impl pallet_balances::WeightInfo for WeightInfo { - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 41_525 nanoseconds. - Weight::from_ref_time(42_161_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 34_147_000 picoseconds. + Weight::from_parts(34_681_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 31_463 nanoseconds. - Weight::from_ref_time(32_025_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 25_961_000 picoseconds. + Weight::from_parts(26_543_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - // Minimum execution time: 23_495 nanoseconds. - Weight::from_ref_time(23_752_000) + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 15_954_000 picoseconds. + Weight::from_parts(16_276_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - // Minimum execution time: 25_757 nanoseconds. - Weight::from_ref_time(26_221_000) + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 19_074_000 picoseconds. + Weight::from_parts(19_635_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:2 w:2) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 40_260 nanoseconds. - Weight::from_ref_time(41_057_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 36_772_000 picoseconds. + Weight::from_parts(37_193_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - // Minimum execution time: 36_058 nanoseconds. - Weight::from_ref_time(36_775_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 32_430_000 picoseconds. + Weight::from_parts(32_766_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - // Minimum execution time: 20_161 nanoseconds. - Weight::from_ref_time(20_559_000) + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 15_239_000 picoseconds. + Weight::from_parts(15_620_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs index ded90302efd..37d874e0b75 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_collator_selection.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -46,79 +47,131 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) /// The range of component `b` is `[1, 100]`. fn set_invulnerables(b: u32, ) -> Weight { - // Minimum execution time: 20_105 nanoseconds. - Weight::from_ref_time(23_402_474) - // Standard Error: 5_913 - .saturating_add(Weight::from_ref_time(2_214_697).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `214 + b * (78 ±0)` + // Estimated: `1203 + b * (2554 ±0)` + // Minimum execution time: 14_680_000 picoseconds. + Weight::from_parts(15_646_800, 0) + .saturating_add(Weight::from_parts(0, 1203)) + // Standard Error: 4_021 + .saturating_add(Weight::from_parts(2_556_895, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_desired_candidates() -> Weight { - // Minimum execution time: 12_491 nanoseconds. - Weight::from_ref_time(12_788_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_979_000 picoseconds. + Weight::from_parts(7_322_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 12_882 nanoseconds. - Weight::from_ref_time(13_141_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_328_000 picoseconds. + Weight::from_parts(7_524_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[1, 999]`. fn register_as_candidate(c: u32, ) -> Weight { - // Minimum execution time: 44_532 nanoseconds. - Weight::from_ref_time(40_138_818) - // Standard Error: 987 - .saturating_add(Weight::from_ref_time(126_048).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `1104 + c * (48 ±0)` + // Estimated: `61672 + c * (49 ±0)` + // Minimum execution time: 37_388_000 picoseconds. + Weight::from_parts(30_491_072, 0) + .saturating_add(Weight::from_parts(0, 61672)) + // Standard Error: 1_155 + .saturating_add(Weight::from_parts(100_794, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[6, 1000]`. fn leave_intent(c: u32, ) -> Weight { - // Minimum execution time: 32_931 nanoseconds. - Weight::from_ref_time(26_038_824) - // Standard Error: 1_099 - .saturating_add(Weight::from_ref_time(123_313).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `428 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 29_110_000 picoseconds. + Weight::from_parts(19_158_409, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_269 + .saturating_add(Weight::from_parts(104_083, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:2 w:2) - // Storage: System BlockWeight (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) fn note_author() -> Weight { - // Minimum execution time: 30_412 nanoseconds. - Weight::from_ref_time(30_796_000) + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `7729` + // Minimum execution time: 29_086_000 picoseconds. + Weight::from_parts(29_931_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:1000 w:1) - // Storage: System Account (r:1 w:1) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: System BlockWeight (r:1 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:995 w:995) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `r` is `[1, 1000]`. /// The range of component `c` is `[1, 1000]`. - fn new_session(_r: u32, c: u32, ) -> Weight { - // Minimum execution time: 18_664 nanoseconds. - Weight::from_ref_time(19_115_000) - // Standard Error: 745_087 - .saturating_add(Weight::from_ref_time(26_635_575).saturating_mul(c.into())) + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22815 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + r * (2602 ±0) + c * (2520 ±0)` + // Minimum execution time: 16_710_000 picoseconds. + Weight::from_parts(16_907_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 800_677 + .saturating_add(Weight::from_parts(29_001_374, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2602).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs index 8dd761a38ea..56d954f12a0 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_multisig.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -48,80 +49,113 @@ pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - // Minimum execution time: 15_428 nanoseconds. - Weight::from_ref_time(15_941_235) - // Standard Error: 2 - .saturating_add(Weight::from_ref_time(537).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_068_000 picoseconds. + Weight::from_parts(12_319_883, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(493, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 44_197 nanoseconds. - Weight::from_ref_time(36_539_501) - // Standard Error: 904 - .saturating_add(Weight::from_ref_time(84_250).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_ref_time(1_544).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 36_523_000 picoseconds. + Weight::from_parts(31_295_135, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 542 + .saturating_add(Weight::from_parts(60_423, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_200, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 34_293 nanoseconds. - Weight::from_ref_time(27_691_492) - // Standard Error: 1_234 - .saturating_add(Weight::from_ref_time(76_671).saturating_mul(s.into())) - // Standard Error: 12 - .saturating_add(Weight::from_ref_time(1_515).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 27_342_000 picoseconds. + Weight::from_parts(21_614_247, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 546 + .saturating_add(Weight::from_parts(57_563, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_202, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 48_305 nanoseconds. - Weight::from_ref_time(38_790_283) - // Standard Error: 649 - .saturating_add(Weight::from_ref_time(101_710).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_ref_time(1_596).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `388 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 41_465_000 picoseconds. + Weight::from_parts(34_511_085, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 467 + .saturating_add(Weight::from_parts(78_918, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_201, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - // Minimum execution time: 32_261 nanoseconds. - Weight::from_ref_time(35_136_339) - // Standard Error: 1_102 - .saturating_add(Weight::from_ref_time(87_710).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 27_868_000 picoseconds. + Weight::from_parts(29_407_652, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 632 + .saturating_add(Weight::from_parts(69_333, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - // Minimum execution time: 23_194 nanoseconds. - Weight::from_ref_time(25_477_839) - // Standard Error: 810 - .saturating_add(Weight::from_ref_time(83_750).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 18_599_000 picoseconds. + Weight::from_parts(19_776_275, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 522 + .saturating_add(Weight::from_parts(64_680, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - // Minimum execution time: 33_083 nanoseconds. - Weight::from_ref_time(35_190_588) - // Standard Error: 1_010 - .saturating_add(Weight::from_ref_time(90_855).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 28_857_000 picoseconds. + Weight::from_parts(30_337_509, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 652 + .saturating_add(Weight::from_parts(67_443, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs index d0e8695fb84..bef2a83bc7c 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_session.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -46,19 +47,31 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:1 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - // Minimum execution time: 21_898 nanoseconds. - Weight::from_ref_time(22_451_000) + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `7524` + // Minimum execution time: 17_925_000 picoseconds. + Weight::from_parts(18_292_000, 0) + .saturating_add(Weight::from_parts(0, 7524)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:0 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - // Minimum execution time: 18_481 nanoseconds. - Weight::from_ref_time(18_900_000) + // Proof Size summary in bytes: + // Measured: `279` + // Estimated: `4023` + // Minimum execution time: 13_384_000 picoseconds. + Weight::from_parts(13_788_000, 0) + .saturating_add(Weight::from_parts(0, 4023)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs index 6b1b4fa19ce..c6b5b01504f 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -46,16 +47,26 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_timestamp`. pub struct WeightInfo(PhantomData); impl pallet_timestamp::WeightInfo for WeightInfo { - // Storage: Timestamp Now (r:1 w:1) - // Storage: Aura CurrentSlot (r:1 w:0) + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - // Minimum execution time: 9_095 nanoseconds. - Weight::from_ref_time(9_288_000) + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `2986` + // Minimum execution time: 7_946_000 picoseconds. + Weight::from_parts(8_181_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { - // Minimum execution time: 3_901 nanoseconds. - Weight::from_ref_time(4_060_000) + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_219_000 picoseconds. + Weight::from_parts(3_298_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs index 6cb7a52357d..93eaff447ae 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_utility.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -48,31 +49,51 @@ pub struct WeightInfo(PhantomData); impl pallet_utility::WeightInfo for WeightInfo { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - // Minimum execution time: 12_045 nanoseconds. - Weight::from_ref_time(18_369_157) - // Standard Error: 2_756 - .saturating_add(Weight::from_ref_time(3_423_771).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_837_000 picoseconds. + Weight::from_parts(16_686_299, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_233 + .saturating_add(Weight::from_parts(4_587_331, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 6_095 nanoseconds. - Weight::from_ref_time(6_276_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_582_000 picoseconds. + Weight::from_parts(5_700_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - // Minimum execution time: 12_131 nanoseconds. - Weight::from_ref_time(21_947_782) - // Standard Error: 3_030 - .saturating_add(Weight::from_ref_time(3_548_160).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_907_000 picoseconds. + Weight::from_parts(4_826_975, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_801 + .saturating_add(Weight::from_parts(4_836_457, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 13_790 nanoseconds. - Weight::from_ref_time(14_314_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_998_000 picoseconds. + Weight::from_parts(9_220_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - // Minimum execution time: 11_873 nanoseconds. - Weight::from_ref_time(15_041_181) - // Standard Error: 4_925 - .saturating_add(Weight::from_ref_time(3_443_664).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_961_000 picoseconds. + Weight::from_parts(7_518_503, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_307 + .saturating_add(Weight::from_parts(4_649_665, 0).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..6210755b2bd --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs @@ -0,0 +1,275 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-kusama-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `9595` + // Minimum execution time: 26_368_000 picoseconds. + Weight::from_parts(27_314_000, 0) + .saturating_add(Weight::from_parts(0, 9595)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 24_998_000 picoseconds. + Weight::from_parts(25_321_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn execute() -> 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 Skipped: 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: 9_733_000 picoseconds. + Weight::from_parts(10_002_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_073_000 picoseconds. + Weight::from_parts(3_178_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `14659` + // Minimum execution time: 31_313_000 picoseconds. + Weight::from_parts(31_916_000, 0) + .saturating_add(Weight::from_parts(0, 14659)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `14410` + // Minimum execution time: 32_721_000 picoseconds. + Weight::from_parts(33_013_000, 0) + .saturating_add(Weight::from_parts(0, 14410)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_020_000 picoseconds. + Weight::from_parts(15_358_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 15_095_000 picoseconds. + Weight::from_parts(15_309_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 15_809_000 picoseconds. + Weight::from_parts(16_139_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `15981` + // Minimum execution time: 28_167_000 picoseconds. + Weight::from_parts(28_747_000, 0) + .saturating_add(Weight::from_parts(0, 15981)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_484_000 picoseconds. + Weight::from_parts(8_776_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_814_000 picoseconds. + Weight::from_parts(16_131_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `20967` + // Minimum execution time: 34_500_000 picoseconds. + Weight::from_parts(34_978_000, 0) + .saturating_add(Weight::from_parts(0, 20967)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs index 5051255d827..f3489cf3e48 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/mod.rs @@ -21,168 +21,223 @@ use crate::Runtime; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::{cmp, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XCMWeight}, - DoubleEncoded, -}; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight; + fn weigh_multi_assets(&self, weight: Weight) -> Weight; } -const MAX_ASSETS: u32 = 100; +const MAX_ASSETS: u64 = 100; impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - let weight = match self { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { Self::Definite(assets) => weight.saturating_mul(assets.inner().into_iter().count() as u64), Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64), - }; - weight.ref_time() + } } } impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - weight.saturating_mul(self.inner().into_iter().count() as u64).ref_time() + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().into_iter().count() as u64) } } pub struct BridgeHubKusamaXcmWeight(core::marker::PhantomData); impl XcmWeightInfo for BridgeHubKusamaXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) } // Currently there is no trusted reserve - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { - u64::MAX + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + Weight::from_parts(1_000_000_000 as u64, 0) } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } - fn query_response(_query_id: &u64, _response: &Response, _max_weight: &u64) -> XCMWeight { - XcmGeneric::::query_response().ref_time() + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) } fn transfer_reserve_asset( assets: &MultiAssets, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &u64, + _require_weight_at_most: &Weight, _call: &DoubleEncoded, - ) -> XCMWeight { - XcmGeneric::::transact().ref_time() + ) -> Weight { + XcmGeneric::::transact() } fn hrmp_new_channel_open_request( _sender: &u32, _max_message_size: &u32, _max_capacity: &u32, - ) -> XCMWeight { + ) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_accepted(_recipient: &u32) -> XCMWeight { + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> XCMWeight { + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn clear_origin() -> XCMWeight { - XcmGeneric::::clear_origin().ref_time() + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { - XcmGeneric::::descend_origin().ref_time() + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() } - fn report_error( - _query_id: &QueryId, - _dest: &MultiLocation, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::report_error().ref_time() + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() } - fn deposit_asset( - assets: &MultiAssetFilter, - _max_assets: &u32, - _dest: &MultiLocation, - ) -> XCMWeight { + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(1_000_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(1_000_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } fn deposit_reserve_asset( assets: &MultiAssetFilter, - _max_assets: &u32, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets) -> XCMWeight { - Weight::MAX.ref_time() + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX } fn initiate_reserve_withdraw( assets: &MultiAssetFilter, _reserve: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) } fn initiate_teleport( assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(200_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(200_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } - fn query_holding( - _query_id: &u64, - _dest: &MultiLocation, - _assets: &MultiAssetFilter, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::query_holding().ref_time() + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { - XcmGeneric::::buy_execution().ref_time() + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn refund_surplus() -> XCMWeight { - XcmGeneric::::refund_surplus().ref_time() + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_error_handler(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_error_handler().ref_time() + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_appendix(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_appendix().ref_time() + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn clear_error() -> XCMWeight { - XcmGeneric::::clear_error().ref_time() + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { - XcmGeneric::::claim_asset().ref_time() + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() } - fn trap(_code: &u64) -> XCMWeight { - XcmGeneric::::trap().ref_time() + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &u64) -> XCMWeight { - XcmGeneric::::subscribe_version().ref_time() + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX } - fn unsubscribe_version() -> XCMWeight { - XcmGeneric::::unsubscribe_version().ref_time() + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index d85ace695e6..648e0c7368a 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::fungible` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -49,59 +49,110 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: System Account (r:1 w:1) - pub(crate) fn withdraw_asset() -> Weight { - Weight::from_ref_time(26_021_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 19_924_000 picoseconds. + Weight::from_parts(20_322_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:2 w:2) - pub(crate) fn transfer_asset() -> Weight { - Weight::from_ref_time(35_776_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `6196` + // Minimum execution time: 32_669_000 picoseconds. + Weight::from_parts(33_313_000, 6196) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn transfer_reserve_asset() -> Weight { - Weight::from_ref_time(52_799_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `223` + // Estimated: `18205` + // Minimum execution time: 55_574_000 picoseconds. + Weight::from_parts(56_148_000, 18205) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) } - pub(crate) fn receive_teleported_asset() -> Weight { - Weight::from_ref_time(5_784_000 as u64) + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_271_000 picoseconds. + Weight::from_parts(4_338_000, 0) } // Storage: System Account (r:1 w:1) - pub(crate) fn deposit_asset() -> Weight { - Weight::from_ref_time(28_148_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 23_972_000 picoseconds. + Weight::from_parts(24_305_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn deposit_reserve_asset() -> Weight { - Weight::from_ref_time(45_600_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `122` + // Estimated: `15097` + // Minimum execution time: 53_095_000 picoseconds. + Weight::from_parts(53_586_000, 15097) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_teleport() -> Weight { - Weight::from_ref_time(23_402_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 30_394_000 picoseconds. + Weight::from_parts(31_238_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index cece5061304..738940ca868 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-kusama-dev"), DB CACHE: 1024 @@ -49,89 +49,300 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn query_holding() -> Weight { - Weight::from_ref_time(21_401_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 30_841_000 picoseconds. + Weight::from_parts(31_223_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - pub(crate) fn buy_execution() -> Weight { - Weight::from_ref_time(5_320_000 as u64) + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_749_000 picoseconds. + Weight::from_parts(2_894_000, 0) } // Storage: PolkadotXcm Queries (r:1 w:0) - pub(crate) fn query_response() -> Weight { - Weight::from_ref_time(16_749_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 10_637_000 picoseconds. + Weight::from_parts(10_904_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) } - pub(crate) fn transact() -> Weight { - Weight::from_ref_time(19_670_000 as u64) + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_587_000 picoseconds. + Weight::from_parts(12_882_000, 0) } - pub(crate) fn refund_surplus() -> Weight { - Weight::from_ref_time(5_373_000 as u64) + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_088_000 picoseconds. + Weight::from_parts(3_165_000, 0) } - pub(crate) fn set_error_handler() -> Weight { - Weight::from_ref_time(5_100_000 as u64) + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_748_000 picoseconds. + Weight::from_parts(2_868_000, 0) } - pub(crate) fn set_appendix() -> Weight { - Weight::from_ref_time(5_288_000 as u64) + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_897_000 picoseconds. + Weight::from_parts(2_970_000, 0) } - pub(crate) fn clear_error() -> Weight { - Weight::from_ref_time(5_315_000 as u64) + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_793_000 picoseconds. + Weight::from_parts(2_883_000, 0) } - pub(crate) fn descend_origin() -> Weight { - Weight::from_ref_time(6_432_000 as u64) + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_690_000 picoseconds. + Weight::from_parts(3_745_000, 0) } - pub(crate) fn clear_origin() -> Weight { - Weight::from_ref_time(5_254_000 as u64) + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_760_000 picoseconds. + Weight::from_parts(2_807_000, 0) } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn report_error() -> Weight { - Weight::from_ref_time(15_047_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 24_591_000 picoseconds. + Weight::from_parts(25_237_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: PolkadotXcm AssetTraps (r:1 w:1) - pub(crate) fn claim_asset() -> Weight { - Weight::from_ref_time(21_288_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm AssetTraps (max_values: None, max_size: None, mode: Measured) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 14_596_000 picoseconds. + Weight::from_parts(15_010_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - pub(crate) fn trap() -> Weight { - Weight::from_ref_time(5_120_000 as u64) + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_770_000 picoseconds. + Weight::from_parts(2_860_000, 0) } // Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn subscribe_version() -> Weight { - Weight::from_ref_time(17_992_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `13098` + // Minimum execution time: 25_644_000 picoseconds. + Weight::from_parts(26_269_000, 13098) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1) - pub(crate) fn unsubscribe_version() -> Weight { - Weight::from_ref_time(7_321_000 as u64) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_969_000 picoseconds. + Weight::from_parts(5_167_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 27_894_000 picoseconds. + Weight::from_parts(28_294_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_595_000 picoseconds. + Weight::from_parts(4_709_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_957_000 picoseconds. + Weight::from_parts(3_035_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_091_000 picoseconds. + Weight::from_parts(3_197_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_953_000 picoseconds. + Weight::from_parts(3_036_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_275_000 picoseconds. + Weight::from_parts(3_382_000, 0) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_reserve_withdraw() -> Weight { - Weight::from_ref_time(22_846_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 30_240_000 picoseconds. + Weight::from_parts(30_533_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_276_000 picoseconds. + Weight::from_parts(5_363_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 27_019_000 picoseconds. + Weight::from_parts(27_675_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_136_000 picoseconds. + Weight::from_parts(3_210_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_989_000 picoseconds. + Weight::from_parts(3_067_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_004_000 picoseconds. + Weight::from_parts(3_101_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_996_000 picoseconds. + Weight::from_parts(3_068_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_102_000 picoseconds. + Weight::from_parts(3_210_000, 0) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs index ba15eed589b..20235009772 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-kusama/src/xcm_config.rs @@ -15,12 +15,12 @@ // along with Cumulus. If not, see . use super::{ - AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, - RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, Contains, Everything, Nothing}, }; use pallet_xcm::XcmPassthrough; use parachains_common::xcm_config::{ @@ -30,21 +30,23 @@ use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, - IsConcrete, LocationInverter, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, - WeightInfoBounds, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds, + WithComputedOrigin, }; -use xcm_executor::XcmExecutor; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; parameter_types! { pub const KsmRelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Kusama; + pub const RelayNetwork: Option = Some(NetworkId::Kusama); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -108,20 +110,68 @@ match_types! { MultiLocation { parents: 1, interior: X1(_) } }; } +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) => true, + _ => false, + } + } +} pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( // Allow local users to buy weight credit. TakeWeightCredit, - // Parent and its exec plurality get free execution. - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - // Allow anything to pay for execution. - AllowTopLevelPaidExecutionFrom, + WithComputedOrigin< + ( + // Allow anything to pay for execution. + AllowTopLevelPaidExecutionFrom, + // Parent and its exec plurality get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -136,7 +186,7 @@ impl xcm_executor::Config for XcmConfig { type IsReserve = (); /// Only allow teleportation of KSM. type IsTeleporter = ConcreteNativeAssetFrom; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = WeightInfoBounds< crate::weights::xcm::BridgeHubKusamaXcmWeight, @@ -149,6 +199,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; } /// Converts a local signed origin into an XCM multilocation. @@ -159,11 +218,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; // We want to disallow users sending (arbitrary) XCMs from this chain. @@ -181,11 +245,19 @@ impl pallet_xcm::Config for Runtime { RuntimeCall, MaxInstructions, >; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml new file mode 100644 index 00000000000..67a6f280351 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/Cargo.toml @@ -0,0 +1,170 @@ +[package] +name = "bridge-hub-polkadot-runtime" +version = "0.1.0" +authors = ["Parity Technologies "] +edition = "2021" +description = "Polkadot's BridgeHub parachain runtime" + +[build-dependencies] +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } + +[dependencies] +codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } +hex-literal = { version = "0.3.4" } +log = { version = "0.4.17", default-features = false } +scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } +serde = { version = "1.0.152", optional = true, features = ["derive"] } +smallvec = "1.8.1" + +# Substrate +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } + +# Polkadot +polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } + +# Cumulus +cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } +cumulus-pallet-dmp-queue = { path = "../../../../pallets/dmp-queue", default-features = false } +cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false } +cumulus-pallet-session-benchmarking = {path = "../../../../pallets/session-benchmarking", default-features = false, version = "3.0.0"} +cumulus-pallet-xcm = { path = "../../../../pallets/xcm", default-features = false } +cumulus-pallet-xcmp-queue = { path = "../../../../pallets/xcmp-queue", default-features = false } +cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } +cumulus-primitives-timestamp = { path = "../../../../primitives/timestamp", default-features = false } +cumulus-primitives-utility = { path = "../../../../primitives/utility", default-features = false } +pallet-collator-selection = { path = "../../../../pallets/collator-selection", default-features = false } +parachain-info = { path = "../../../../parachains/pallets/parachain-info", default-features = false } +parachains-common = { path = "../../../../parachains/common", default-features = false } + +[features] +default = [ + "std", +] +std = [ + "codec/std", + "log/std", + "scale-info/std", + "serde", + "cumulus-pallet-aura-ext/std", + "cumulus-pallet-dmp-queue/std", + "cumulus-pallet-parachain-system/std", + "cumulus-pallet-xcm/std", + "cumulus-pallet-xcmp-queue/std", + "cumulus-primitives-core/std", + "cumulus-primitives-timestamp/std", + "cumulus-primitives-utility/std", + "frame-executive/std", + "frame-support/std", + "frame-system-rpc-runtime-api/std", + "frame-system/std", + "polkadot-runtime-constants/std", + "pallet-aura/std", + "pallet-authorship/std", + "pallet-balances/std", + "pallet-collator-selection/std", + "pallet-multisig/std", + "pallet-session/std", + "pallet-sudo/std", + "pallet-timestamp/std", + "pallet-transaction-payment-rpc-runtime-api/std", + "pallet-transaction-payment/std", + "pallet-utility/std", + "pallet-xcm/std", + "parachain-info/std", + "parachains-common/std", + "polkadot-core-primitives/std", + "polkadot-parachain/std", + "polkadot-runtime-common/std", + "sp-api/std", + "sp-block-builder/std", + "sp-consensus-aura/std", + "sp-core/std", + "sp-inherents/std", + "sp-io/std", + "sp-offchain/std", + "sp-runtime/std", + "sp-session/std", + "sp-std/std", + "sp-transaction-pool/std", + "sp-version/std", + "xcm-builder/std", + "xcm-executor/std", + "xcm/std", +] + +runtime-benchmarks = [ + "frame-benchmarking/runtime-benchmarks", + "frame-support/runtime-benchmarks", + "frame-system-benchmarking/runtime-benchmarks", + "frame-system/runtime-benchmarks", + "pallet-balances/runtime-benchmarks", + "pallet-multisig/runtime-benchmarks", + "pallet-timestamp/runtime-benchmarks", + "pallet-utility/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "sp-runtime/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", + "cumulus-pallet-session-benchmarking/runtime-benchmarks", + "pallet-collator-selection/runtime-benchmarks", + "cumulus-pallet-xcmp-queue/runtime-benchmarks", + "pallet-xcm-benchmarks/runtime-benchmarks", +] + +try-runtime = [ + "cumulus-pallet-aura-ext/try-runtime", + "cumulus-pallet-dmp-queue/try-runtime", + "cumulus-pallet-parachain-system/try-runtime", + "cumulus-pallet-xcm/try-runtime", + "cumulus-pallet-xcmp-queue/try-runtime", + "frame-executive/try-runtime", + "frame-system/try-runtime", + "frame-try-runtime/try-runtime", + "pallet-aura/try-runtime", + "pallet-authorship/try-runtime", + "pallet-balances/try-runtime", + "pallet-collator-selection/try-runtime", + "pallet-multisig/try-runtime", + "pallet-session/try-runtime", + "pallet-timestamp/try-runtime", + "pallet-transaction-payment/try-runtime", + "pallet-utility/try-runtime", + "pallet-xcm/try-runtime", + "parachain-info/try-runtime", +] diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs new file mode 100644 index 00000000000..9b53d2457df --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/build.rs @@ -0,0 +1,9 @@ +use substrate_wasm_builder::WasmBuilder; + +fn main() { + WasmBuilder::new() + .with_current_project() + .export_heap_base() + .import_memory() + .build() +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/constants.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/constants.rs new file mode 100644 index 00000000000..de22cf7883a --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/constants.rs @@ -0,0 +1,69 @@ +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod currency { + use polkadot_core_primitives::Balance; + use polkadot_runtime_constants as constants; + + /// The existential deposit. Set to 1/10 of its parent Relay Chain. + pub const EXISTENTIAL_DEPOSIT: Balance = constants::currency::EXISTENTIAL_DEPOSIT / 10; + + pub const UNITS: Balance = constants::currency::UNITS; + pub const CENTS: Balance = constants::currency::CENTS; + pub const MILLICENTS: Balance = constants::currency::MILLICENTS; + + pub const fn deposit(items: u32, bytes: u32) -> Balance { + // 1/100 of Polkadot + constants::currency::deposit(items, bytes) / 100 + } +} + +/// Fee-related. +pub mod fee { + use frame_support::weights::{ + constants::ExtrinsicBaseWeight, WeightToFeeCoefficient, WeightToFeeCoefficients, + WeightToFeePolynomial, + }; + use polkadot_core_primitives::Balance; + use smallvec::smallvec; + pub use sp_runtime::Perbill; + + /// Handles converting a weight scalar to a fee value, based on the scale and granularity of the + /// node's balance type. + /// + /// This should typically create a mapping between the following ranges: + /// - [0, MAXIMUM_BLOCK_WEIGHT] + /// - [Balance::min, Balance::max] + /// + /// Yet, it can be used for any other sort of change to weight-fee. Some examples being: + /// - Setting it to `0` will essentially disable the weight fee. + /// - Setting it to `1` will cause the literal `#[weight = x]` values to be charged. + pub struct WeightToFee; + impl WeightToFeePolynomial for WeightToFee { + type Balance = Balance; + fn polynomial() -> WeightToFeeCoefficients { + // in Polkadot, extrinsic base weight (smallest non-zero weight) is mapped to 1/10 CENT: + // in BridgeHub, we map to 1/10 of that, or 1/100 CENT + let p = super::currency::CENTS; + let q = 100 * Balance::from(ExtrinsicBaseWeight::get().ref_time()); + smallvec![WeightToFeeCoefficient { + degree: 1, + negative: false, + coeff_frac: Perbill::from_rational(p % q, q), + coeff_integer: p / q, + }] + } + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs new file mode 100644 index 00000000000..409a6fe4db9 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/lib.rs @@ -0,0 +1,760 @@ +// Copyright 2023 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +#![cfg_attr(not(feature = "std"), no_std)] +// `construct_runtime!` does a lot of recursion and requires us to increase the limit to 256. +#![recursion_limit = "256"] + +// Make the WASM binary available. +#[cfg(feature = "std")] +include!(concat!(env!("OUT_DIR"), "/wasm_binary.rs")); + +pub mod constants; +mod weights; +pub mod xcm_config; + +use cumulus_pallet_parachain_system::RelayNumberStrictlyIncreases; +use mangata_support::traits::GetMaintenanceStatusTrait; +use sp_api::impl_runtime_apis; +use sp_core::{crypto::KeyTypeId, OpaqueMetadata}; +use sp_runtime::{ + create_runtime_str, generic, impl_opaque_keys, + traits::{AccountIdLookup, BlakeTwo256, Block as BlockT}, + transaction_validity::{TransactionSource, TransactionValidity}, + ApplyExtrinsicResult, +}; + +use sp_std::prelude::*; +#[cfg(feature = "std")] +use sp_version::NativeVersion; +use sp_version::RuntimeVersion; + +use constants::{currency::*, fee::WeightToFee}; +use frame_support::{ + construct_runtime, + dispatch::DispatchClass, + parameter_types, + traits::{ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything}, + weights::{ConstantMultiplier, Weight}, + PalletId, +}; +use frame_system::{ + limits::{BlockLength, BlockWeights}, + EnsureRoot, +}; +use pallet_xcm::{EnsureXcm, IsMajorityOfBody}; +pub use sp_consensus_aura::sr25519::AuthorityId as AuraId; +pub use sp_runtime::{MultiAddress, Perbill, Permill}; +use xcm_config::{XcmConfig, XcmOriginToTransactDispatchOrigin}; + +#[cfg(any(feature = "std", test))] +pub use sp_runtime::BuildStorage; + +// Polkadot imports +use polkadot_runtime_common::{BlockHashCount, SlowAdjustingFeeUpdate}; + +use weights::{BlockExecutionWeight, ExtrinsicBaseWeight, RocksDbWeight}; + +// XCM Imports +use crate::xcm_config::DotRelayLocation; +use parachains_common::{ + opaque, AccountId, Balance, BlockNumber, Hash, Header, Index, Signature, + AVERAGE_ON_INITIALIZE_RATIO, HOURS, MAXIMUM_BLOCK_WEIGHT, NORMAL_DISPATCH_RATIO, SLOT_DURATION, +}; +use xcm::latest::prelude::BodyId; +use xcm_executor::XcmExecutor; + +/// The address format for describing accounts. +pub type Address = MultiAddress; + +/// Block type as expected by this runtime. +pub type Block = generic::Block; + +/// A Block signed with a Justification +pub type SignedBlock = generic::SignedBlock; + +/// BlockId type as expected by this runtime. +pub type BlockId = generic::BlockId; + +/// The SignedExtension to the basic transaction logic. +pub type SignedExtra = ( + frame_system::CheckNonZeroSender, + frame_system::CheckSpecVersion, + frame_system::CheckTxVersion, + frame_system::CheckGenesis, + frame_system::CheckEra, + frame_system::CheckNonce, + frame_system::CheckWeight, + pallet_transaction_payment::ChargeTransactionPayment, +); + +/// Unchecked extrinsic type as expected by this runtime. +pub type UncheckedExtrinsic = + generic::UncheckedExtrinsic; + +/// Extrinsic type that has already been checked. +pub type CheckedExtrinsic = generic::CheckedExtrinsic; + +/// Executive: handles dispatch to the various modules. +pub type Executive = frame_executive::Executive< + Runtime, + Block, + frame_system::ChainContext, + Runtime, + AllPalletsWithSystem, +>; + +impl_opaque_keys! { + pub struct SessionKeys { + pub aura: Aura, + } +} + +#[sp_version::runtime_version] +pub const VERSION: RuntimeVersion = RuntimeVersion { + spec_name: create_runtime_str!("bridge-hub-polkadot"), + impl_name: create_runtime_str!("bridge-hub-polkadot"), + authoring_version: 1, + spec_version: 9400, + impl_version: 0, + apis: RUNTIME_API_VERSIONS, + transaction_version: 2, + state_version: 1, +}; + +/// The version information used to identify this runtime when compiled natively. +#[cfg(feature = "std")] +pub fn native_version() -> NativeVersion { + NativeVersion { runtime_version: VERSION, can_author_with: Default::default() } +} + +parameter_types! { + pub const Version: RuntimeVersion = VERSION; + + // This part is copied from Substrate's `bin/node/runtime/src/lib.rs`. + // The `RuntimeBlockLength` and `RuntimeBlockWeights` exist here because the + // `DeletionWeightLimit` and `DeletionQueueDepth` depend on those to parameterize + // the lazy contract deletion. + pub RuntimeBlockLength: BlockLength = + BlockLength::max_with_normal_ratio(5 * 1024 * 1024, NORMAL_DISPATCH_RATIO); + pub RuntimeBlockWeights: BlockWeights = BlockWeights::builder() + .base_block(BlockExecutionWeight::get()) + .for_class(DispatchClass::all(), |weights| { + weights.base_extrinsic = ExtrinsicBaseWeight::get(); + }) + .for_class(DispatchClass::Normal, |weights| { + weights.max_total = Some(NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT); + }) + .for_class(DispatchClass::Operational, |weights| { + weights.max_total = Some(MAXIMUM_BLOCK_WEIGHT); + // Operational transactions have some extra reserved space, so that they + // are included even if block reached `MAXIMUM_BLOCK_WEIGHT`. + weights.reserved = Some( + MAXIMUM_BLOCK_WEIGHT - NORMAL_DISPATCH_RATIO * MAXIMUM_BLOCK_WEIGHT + ); + }) + .avg_block_initialization(AVERAGE_ON_INITIALIZE_RATIO) + .build_or_panic(); + pub const SS58Prefix: u8 = 0; +} + +// Configure FRAME pallets to include in runtime. + +impl frame_system::Config for Runtime { + /// The identifier used to distinguish between accounts. + type AccountId = AccountId; + /// The aggregated dispatch type that is available for extrinsics. + type RuntimeCall = RuntimeCall; + /// The lookup mechanism to get account ID from whatever is passed in dispatchers. + type Lookup = AccountIdLookup; + /// The index type for storing how many extrinsics an account has signed. + type Index = Index; + /// The index type for blocks. + type BlockNumber = BlockNumber; + /// The type for hashing blocks and tries. + type Hash = Hash; + /// The hashing algorithm used. + type Hashing = BlakeTwo256; + /// The header type. + type Header = generic::Header; + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + /// The ubiquitous origin type. + type RuntimeOrigin = RuntimeOrigin; + /// Maximum number of block number to block hash mappings to keep (oldest pruned first). + type BlockHashCount = BlockHashCount; + /// Runtime version. + type Version = Version; + /// Converts a module to an index of this module in the runtime. + type PalletInfo = PalletInfo; + /// The data to be stored in an account. + type AccountData = pallet_balances::AccountData; + /// What to do if a new account is created. + type OnNewAccount = (); + /// What to do if an account is fully reaped from the system. + type OnKilledAccount = (); + /// The weight of database operations that the runtime can invoke. + type DbWeight = RocksDbWeight; + /// The basic call filter to use in dispatchable. + type BaseCallFilter = Everything; + /// Weight information for the extrinsics of this pallet. + type SystemWeightInfo = weights::frame_system::WeightInfo; + /// Block & extrinsics weights: base values and limits. + type BlockWeights = RuntimeBlockWeights; + /// The maximum length of a block (in bytes). + type BlockLength = RuntimeBlockLength; + type SS58Prefix = SS58Prefix; + /// The action to take on a Runtime Upgrade + type OnSetCode = cumulus_pallet_parachain_system::ParachainSetCode; + type MaxConsumers = ConstU32<16>; +} + +impl pallet_timestamp::Config for Runtime { + /// A timestamp: milliseconds since the unix epoch. + type Moment = u64; + type OnTimestampSet = Aura; + type MinimumPeriod = ConstU64<{ SLOT_DURATION / 2 }>; + type WeightInfo = weights::pallet_timestamp::WeightInfo; +} + +impl pallet_authorship::Config for Runtime { + type FindAuthor = pallet_session::FindAccountFromAuthorIndex; + type EventHandler = (CollatorSelection,); +} + +parameter_types! { + pub const ExistentialDeposit: Balance = EXISTENTIAL_DEPOSIT; +} + +impl pallet_balances::Config for Runtime { + /// The type for recording an account's balance. + type Balance = Balance; + type DustRemoval = (); + /// The ubiquitous event type. + type RuntimeEvent = RuntimeEvent; + type ExistentialDeposit = ExistentialDeposit; + type AccountStore = System; + type WeightInfo = weights::pallet_balances::WeightInfo; + type MaxLocks = ConstU32<50>; + type MaxReserves = ConstU32<50>; + type ReserveIdentifier = [u8; 8]; +} + +parameter_types! { + /// Relay Chain `TransactionByteFee` / 10 + pub const TransactionByteFee: Balance = 1 * MILLICENTS; +} + +impl pallet_transaction_payment::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnChargeTransaction = pallet_transaction_payment::CurrencyAdapter; + type OperationalFeeMultiplier = ConstU8<5>; + type WeightToFee = WeightToFee; + type LengthToFee = ConstantMultiplier; + type FeeMultiplierUpdate = SlowAdjustingFeeUpdate; +} + +pub struct MockMaintenanceStatusProvider; + +impl GetMaintenanceStatusTrait for MockMaintenanceStatusProvider { + fn is_maintenance() -> bool { + false + } + + fn is_upgradable() -> bool { + true + } +} + +parameter_types! { + pub const ReservedXcmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); + pub const ReservedDmpWeight: Weight = MAXIMUM_BLOCK_WEIGHT.saturating_div(4); +} + +impl cumulus_pallet_parachain_system::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type OnSystemEvent = (); + type SelfParaId = parachain_info::Pallet; + type OutboundXcmpMessageSource = XcmpQueue; + type DmpMessageHandler = DmpQueue; + type MaintenanceStatusProvider = MockMaintenanceStatusProvider; + type ReservedDmpWeight = ReservedDmpWeight; + type XcmpMessageHandler = XcmpQueue; + type ReservedXcmpWeight = ReservedXcmpWeight; + type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; +} + +impl parachain_info::Config for Runtime {} + +impl cumulus_pallet_aura_ext::Config for Runtime {} + +/// Privileged origin that represents Root or the majority of the Relay Chain Council. +pub type RootOrExecutiveSimpleMajority = EitherOfDiverse< + EnsureRoot, + EnsureXcm>, +>; + +impl cumulus_pallet_xcmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; + type ChannelInfo = ParachainSystem; + type MaintenanceStatusProvider = MockMaintenanceStatusProvider; + type VersionWrapper = PolkadotXcm; + type ExecuteOverweightOrigin = EnsureRoot; + type ControllerOrigin = RootOrExecutiveSimpleMajority; + type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; + type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); +} + +impl cumulus_pallet_dmp_queue::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type MaintenanceStatusProvider = MockMaintenanceStatusProvider; + type XcmExecutor = XcmExecutor; + type ExecuteOverweightOrigin = EnsureRoot; +} + +pub const PERIOD: u32 = 6 * HOURS; +pub const OFFSET: u32 = 0; + +impl pallet_session::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type ValidatorId = ::AccountId; + // we don't have stash and controller, thus we don't need the convert as well. + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ShouldEndSession = pallet_session::PeriodicSessions, ConstU32>; + type NextSessionRotation = pallet_session::PeriodicSessions, ConstU32>; + type SessionManager = CollatorSelection; + // Essentially just Aura, but let's be pedantic. + type SessionHandler = ::KeyTypeIdProviders; + type Keys = SessionKeys; + type WeightInfo = weights::pallet_session::WeightInfo; +} + +impl pallet_aura::Config for Runtime { + type AuthorityId = AuraId; + type DisabledValidators = (); + type MaxAuthorities = ConstU32<100_000>; +} + +parameter_types! { + pub const PotId: PalletId = PalletId(*b"PotStake"); + pub const SessionLength: BlockNumber = 6 * HOURS; + pub const ExecutiveBody: BodyId = BodyId::Executive; +} + +/// We allow root and the Relay Chain council to execute privileged collator selection operations. +pub type CollatorSelectionUpdateOrigin = RootOrExecutiveSimpleMajority; + +impl pallet_collator_selection::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type Currency = Balances; + type UpdateOrigin = CollatorSelectionUpdateOrigin; + type PotId = PotId; + type MaxCandidates = ConstU32<1000>; + type MinCandidates = ConstU32<5>; + type MaxInvulnerables = ConstU32<100>; + // should be a multiple of session or things will get inconsistent + type KickThreshold = ConstU32; + type ValidatorId = ::AccountId; + type ValidatorIdOf = pallet_collator_selection::IdentityCollator; + type ValidatorRegistration = Session; + type WeightInfo = weights::pallet_collator_selection::WeightInfo; +} + +parameter_types! { + // One storage item; key size is 32; value is size 4+4+16+32 bytes = 56 bytes. + pub const DepositBase: Balance = deposit(1, 88); + // Additional storage item size of 32 bytes. + pub const DepositFactor: Balance = deposit(0, 32); +} + +impl pallet_multisig::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type Currency = Balances; + type DepositBase = DepositBase; + type DepositFactor = DepositFactor; + type MaxSignatories = ConstU32<100>; + type WeightInfo = weights::pallet_multisig::WeightInfo; +} + +impl pallet_utility::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type RuntimeCall = RuntimeCall; + type PalletsOrigin = OriginCaller; + type WeightInfo = weights::pallet_utility::WeightInfo; +} + +// Create the runtime by composing the FRAME pallets that were previously configured. +construct_runtime!( + pub enum Runtime where + Block = Block, + NodeBlock = opaque::Block, + UncheckedExtrinsic = UncheckedExtrinsic, + { + // System support stuff. + System: frame_system::{Pallet, Call, Config, Storage, Event} = 0, + ParachainSystem: cumulus_pallet_parachain_system::{ + Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, + } = 1, + Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 2, + ParachainInfo: parachain_info::{Pallet, Storage, Config} = 3, + + // Monetary stuff. + Balances: pallet_balances::{Pallet, Call, Storage, Config, Event} = 10, + TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, + + // Collator support. The order of these 4 are important and shall not change. + Authorship: pallet_authorship::{Pallet, Storage} = 20, + CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, + Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, + Aura: pallet_aura::{Pallet, Storage, Config} = 23, + AuraExt: cumulus_pallet_aura_ext::{Pallet, Storage, Config} = 24, + + // XCM helpers. + XcmpQueue: cumulus_pallet_xcmp_queue::{Pallet, Call, Storage, Event} = 30, + PolkadotXcm: pallet_xcm::{Pallet, Call, Event, Origin, Config} = 31, + CumulusXcm: cumulus_pallet_xcm::{Pallet, Event, Origin} = 32, + DmpQueue: cumulus_pallet_dmp_queue::{Pallet, Call, Storage, Event} = 33, + + // Handy utilities. + Utility: pallet_utility::{Pallet, Call, Event} = 40, + Multisig: pallet_multisig::{Pallet, Call, Storage, Event} = 41, + } +); + +#[cfg(feature = "runtime-benchmarks")] +#[macro_use] +extern crate frame_benchmarking; + +#[cfg(feature = "runtime-benchmarks")] +mod benches { + define_benchmarks!( + [frame_system, SystemBench::] + [pallet_balances, Balances] + [pallet_multisig, Multisig] + [pallet_session, SessionBench::] + [pallet_utility, Utility] + [pallet_timestamp, Timestamp] + [pallet_collator_selection, CollatorSelection] + [cumulus_pallet_xcmp_queue, XcmpQueue] + // XCM + [pallet_xcm, PolkadotXcm] + // NOTE: Make sure you point to the individual modules below. + [pallet_xcm_benchmarks::fungible, XcmBalances] + [pallet_xcm_benchmarks::generic, XcmGeneric] + ); +} + +impl_runtime_apis! { + impl sp_consensus_aura::AuraApi for Runtime { + fn slot_duration() -> sp_consensus_aura::SlotDuration { + sp_consensus_aura::SlotDuration::from_millis(Aura::slot_duration()) + } + + fn authorities() -> Vec { + Aura::authorities().into_inner() + } + } + + impl sp_api::Core for Runtime { + fn version() -> RuntimeVersion { + VERSION + } + + fn execute_block(block: Block) { + Executive::execute_block(block) + } + + fn initialize_block(header: &::Header) { + Executive::initialize_block(header) + } + } + + impl sp_api::Metadata for Runtime { + fn metadata() -> OpaqueMetadata { + OpaqueMetadata::new(Runtime::metadata().into()) + } + } + + impl sp_block_builder::BlockBuilder for Runtime { + fn apply_extrinsic(extrinsic: ::Extrinsic) -> ApplyExtrinsicResult { + Executive::apply_extrinsic(extrinsic) + } + + fn finalize_block() -> ::Header { + Executive::finalize_block() + } + + fn inherent_extrinsics(data: sp_inherents::InherentData) -> Vec<::Extrinsic> { + data.create_extrinsics() + } + + fn check_inherents( + block: Block, + data: sp_inherents::InherentData, + ) -> sp_inherents::CheckInherentsResult { + data.check_extrinsics(&block) + } + } + + impl sp_transaction_pool::runtime_api::TaggedTransactionQueue for Runtime { + fn validate_transaction( + source: TransactionSource, + tx: ::Extrinsic, + block_hash: ::Hash, + ) -> TransactionValidity { + Executive::validate_transaction(source, tx, block_hash) + } + } + + impl sp_offchain::OffchainWorkerApi for Runtime { + fn offchain_worker(header: &::Header) { + Executive::offchain_worker(header) + } + } + + impl sp_session::SessionKeys for Runtime { + fn generate_session_keys(seed: Option>) -> Vec { + SessionKeys::generate(seed) + } + + fn decode_session_keys( + encoded: Vec, + ) -> Option, KeyTypeId)>> { + SessionKeys::decode_into_raw_public_keys(&encoded) + } + } + + impl frame_system_rpc_runtime_api::AccountNonceApi for Runtime { + fn account_nonce(account: AccountId) -> Index { + System::account_nonce(account) + } + } + + impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentApi for Runtime { + fn query_info( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment_rpc_runtime_api::RuntimeDispatchInfo { + TransactionPayment::query_info(uxt, len) + } + fn query_fee_details( + uxt: ::Extrinsic, + len: u32, + ) -> pallet_transaction_payment::FeeDetails { + TransactionPayment::query_fee_details(uxt, len) + } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } + } + + impl cumulus_primitives_core::CollectCollationInfo for Runtime { + fn collect_collation_info(header: &::Header) -> cumulus_primitives_core::CollationInfo { + ParachainSystem::collect_collation_info(header) + } + } + + #[cfg(feature = "try-runtime")] + impl frame_try_runtime::TryRuntime for Runtime { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { + let weight = Executive::try_runtime_upgrade(checks).unwrap(); + (weight, RuntimeBlockWeights::get().max_block) + } + + fn execute_block( + block: Block, + state_root_check: bool, + signature_check: bool, + select: frame_try_runtime::TryStateSelect, + ) -> Weight { + // NOTE: intentional unwrap: we don't want to propagate the error backwards, and want to + // have a backtrace here. + Executive::try_execute_block(block, state_root_check, signature_check, select).unwrap() + } + } + + #[cfg(feature = "runtime-benchmarks")] + impl frame_benchmarking::Benchmark for Runtime { + fn benchmark_metadata(extra: bool) -> ( + Vec, + Vec, + ) { + use frame_benchmarking::{Benchmarking, BenchmarkList}; + use frame_support::traits::StorageInfoTrait; + use frame_system_benchmarking::Pallet as SystemBench; + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + + // This is defined once again in dispatch_benchmark, because list_benchmarks! + // and add_benchmarks! are macros exported by define_benchmarks! macros and those types + // are referenced in that call. + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let mut list = Vec::::new(); + list_benchmarks!(list, extra); + + let storage_info = AllPalletsWithSystem::storage_info(); + return (list, storage_info) + } + + fn dispatch_benchmark( + config: frame_benchmarking::BenchmarkConfig + ) -> Result, sp_runtime::RuntimeString> { + use frame_benchmarking::{Benchmarking, BenchmarkBatch, BenchmarkError, TrackedStorageKey}; + + use frame_system_benchmarking::Pallet as SystemBench; + impl frame_system_benchmarking::Config for Runtime {} + + use cumulus_pallet_session_benchmarking::Pallet as SessionBench; + impl cumulus_pallet_session_benchmarking::Config for Runtime {} + + use xcm::latest::prelude::*; + use xcm_config::DotRelayLocation; + + impl pallet_xcm_benchmarks::Config for Runtime { + type XcmConfig = xcm_config::XcmConfig; + type AccountIdConverter = xcm_config::LocationToAccountId; + fn valid_destination() -> Result { + Ok(DotRelayLocation::get()) + } + fn worst_case_holding(_depositable_count: u32) -> MultiAssets { + // just concrete assets according to relay chain. + let assets: Vec = vec![ + MultiAsset { + id: Concrete(DotRelayLocation::get()), + fun: Fungible(1_000_000 * UNITS), + } + ]; + assets.into() + } + } + + parameter_types! { + pub const TrustedTeleporter: Option<(MultiLocation, MultiAsset)> = Some(( + DotRelayLocation::get(), + MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(DotRelayLocation::get()) }, + )); + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; + } + + impl pallet_xcm_benchmarks::fungible::Config for Runtime { + type TransactAsset = Balances; + + type CheckedAccount = CheckedAccount; + type TrustedTeleporter = TrustedTeleporter; + + fn get_multi_asset() -> MultiAsset { + MultiAsset { + id: Concrete(DotRelayLocation::get()), + fun: Fungible(1 * UNITS), + } + } + } + + impl pallet_xcm_benchmarks::generic::Config for Runtime { + type RuntimeCall = RuntimeCall; + + fn worst_case_response() -> (u64, Response) { + (0u64, Response::Version(Default::default())) + } + + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((DotRelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) + } + + fn subscribe_origin() -> Result { + Ok(DotRelayLocation::get()) + } + + fn claimable_asset() -> Result<(MultiLocation, MultiLocation, MultiAssets), BenchmarkError> { + let origin = DotRelayLocation::get(); + let assets: MultiAssets = (Concrete(DotRelayLocation::get()), 1_000 * UNITS).into(); + let ticket = MultiLocation { parents: 0, interior: Here }; + Ok((origin, ticket, assets)) + } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } + } + + type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; + type XcmGeneric = pallet_xcm_benchmarks::generic::Pallet::; + + let whitelist: Vec = vec![ + // Block Number + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef702a5c1b19ab7a04f536c519aca4983ac").to_vec().into(), + // Total Issuance + hex_literal::hex!("c2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80").to_vec().into(), + // Execution Phase + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef7ff553b5a9862a516939d82b3d3d8661a").to_vec().into(), + // Event Count + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef70a98fdbe9ce6c55837576c60c7af3850").to_vec().into(), + // System Events + hex_literal::hex!("26aa394eea5630e07c48ae0c9558cef780d41e5e16056765bc8461851072c9d7").to_vec().into(), + ]; + + let mut batches = Vec::::new(); + let params = (&config, &whitelist); + add_benchmarks!(params, batches); + + Ok(batches) + } + } +} + +struct CheckInherents; + +impl cumulus_pallet_parachain_system::CheckInherents for CheckInherents { + fn check_inherents( + block: &Block, + relay_state_proof: &cumulus_pallet_parachain_system::RelayChainStateProof, + ) -> sp_inherents::CheckInherentsResult { + let relay_chain_slot = relay_state_proof + .read_slot() + .expect("Could not read the relay chain slot from the proof"); + + let inherent_data = + cumulus_primitives_timestamp::InherentDataProvider::from_relay_chain_slot_and_duration( + relay_chain_slot, + sp_std::time::Duration::from_secs(6), + ) + .create_inherent_data() + .expect("Could not create the timestamp inherent data"); + + inherent_data.check_extrinsics(block) + } +} + +cumulus_pallet_parachain_system::register_validate_block! { + Runtime = Runtime, + BlockExecutor = cumulus_pallet_aura_ext::BlockExecutor::, + CheckInherents = CheckInherents, +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs new file mode 100644 index 00000000000..2bd7975bf98 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/block_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Importing a block with 0 Extrinsics. + pub const BlockExecutionWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::BlockExecutionWeight::get(); + + // At least 100 µs. + assert!( + w.ref_time() >= 100u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 100 µs." + ); + // At most 50 ms. + assert!( + w.ref_time() <= 50u64 * constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 50 ms." + ); + } + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs new file mode 100644 index 00000000000..77de70742ca --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs @@ -0,0 +1,74 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `cumulus_pallet_xcmp_queue` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=cumulus_pallet_xcmp_queue +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `cumulus_pallet_xcmp_queue`. +pub struct WeightInfo(PhantomData); +impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) + fn set_config_with_u32() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_593_000 picoseconds. + Weight::from_parts(5_728_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) + fn set_config_with_weight() -> Weight { + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_432_000 picoseconds. + Weight::from_parts(5_592_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs new file mode 100644 index 00000000000..898d72ec5b1 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/extrinsic_weights.rs @@ -0,0 +1,53 @@ +// This file is part of Substrate. + +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, Weight}, + }; + + parameter_types! { + /// Executing a NO-OP `System::remarks` Extrinsic. + pub const ExtrinsicBaseWeight: Weight = + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); + } + + #[cfg(test)] + mod test_weights { + use frame_support::weights::constants; + + /// Checks that the weight exists and is sane. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + let w = super::constants::ExtrinsicBaseWeight::get(); + + // At least 10 µs. + assert!( + w.ref_time() >= 10u64 * constants::WEIGHT_REF_TIME_PER_MICROS, + "Weight should be at least 10 µs." + ); + // At most 1 ms. + assert!( + w.ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Weight should be at most 1 ms." + ); + } + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs new file mode 100644 index 00000000000..6560a1546a5 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs @@ -0,0 +1,130 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `frame_system` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=frame_system +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/frame_system.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `frame_system`. +pub struct WeightInfo(PhantomData); +impl frame_system::WeightInfo for WeightInfo { + /// The range of component `b` is `[0, 3932160]`. + fn remark(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_129_000 picoseconds. + Weight::from_parts(2_213_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(370, 0).saturating_mul(b.into())) + } + /// The range of component `b` is `[0, 3932160]`. + fn remark_with_event(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_415_000 picoseconds. + Weight::from_parts(7_510_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 0 + .saturating_add(Weight::from_parts(1_412, 0).saturating_mul(b.into())) + } + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) + fn set_heap_pages() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_227_000 picoseconds. + Weight::from_parts(4_495_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// The range of component `i` is `[0, 1000]`. + fn set_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_349_000 picoseconds. + Weight::from_parts(2_381_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_813 + .saturating_add(Weight::from_parts(685_377, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// The range of component `i` is `[0, 1000]`. + fn kill_storage(i: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_250_000 picoseconds. + Weight::from_parts(2_317_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 911 + .saturating_add(Weight::from_parts(494_503, 0).saturating_mul(i.into())) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) + } + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) + /// The range of component `p` is `[0, 1000]`. + fn kill_prefix(p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `66 + p * (70 ±0)` + // Minimum execution time: 4_239_000 picoseconds. + Weight::from_parts(4_380_000, 0) + .saturating_add(Weight::from_parts(0, 66)) + // Standard Error: 1_255 + .saturating_add(Weight::from_parts(1_012_115, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs new file mode 100644 index 00000000000..457d00f36bd --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/mod.rs @@ -0,0 +1,38 @@ +// This file is part of Substrate. + +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +//! Expose the auto generated weight files. + +pub mod block_weights; +pub mod cumulus_pallet_xcmp_queue; +pub mod extrinsic_weights; +pub mod frame_system; +pub mod pallet_balances; +pub mod pallet_collator_selection; +pub mod pallet_multisig; +pub mod pallet_session; +pub mod pallet_timestamp; +pub mod pallet_utility; +pub mod pallet_xcm; +pub mod paritydb_weights; +pub mod rocksdb_weights; +pub mod xcm; + +pub use block_weights::constants::BlockExecutionWeight; +pub use extrinsic_weights::constants::ExtrinsicBaseWeight; +pub use paritydb_weights::constants::ParityDbWeight; +pub use rocksdb_weights::constants::RocksDbWeight; diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs new file mode 100644 index 00000000000..1830246940e --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs @@ -0,0 +1,134 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_balances` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_balances +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_balances.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_balances`. +pub struct WeightInfo(PhantomData); +impl pallet_balances::WeightInfo for WeightInfo { + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 35_006_000 picoseconds. + Weight::from_parts(35_375_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_keep_alive() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 25_755_000 picoseconds. + Weight::from_parts(26_176_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn set_balance_creating() -> Weight { + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 15_651_000 picoseconds. + Weight::from_parts(16_056_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn set_balance_killing() -> Weight { + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 18_932_000 picoseconds. + Weight::from_parts(19_186_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn force_transfer() -> Weight { + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 36_593_000 picoseconds. + Weight::from_parts(36_971_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn transfer_all() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 31_795_000 picoseconds. + Weight::from_parts(32_237_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + fn force_unreserve() -> Weight { + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 15_120_000 picoseconds. + Weight::from_parts(15_360_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs new file mode 100644 index 00000000000..5c35eff5f53 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs @@ -0,0 +1,177 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_collator_selection` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_collator_selection +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_collator_selection.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_collator_selection`. +pub struct WeightInfo(PhantomData); +impl pallet_collator_selection::WeightInfo for WeightInfo { + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// The range of component `b` is `[1, 100]`. + fn set_invulnerables(b: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `214 + b * (78 ±0)` + // Estimated: `1203 + b * (2554 ±0)` + // Minimum execution time: 14_444_000 picoseconds. + Weight::from_parts(15_006_377, 0) + .saturating_add(Weight::from_parts(0, 1203)) + // Standard Error: 2_965 + .saturating_add(Weight::from_parts(2_598_095, 0).saturating_mul(b.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) + } + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn set_desired_candidates() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_886_000 picoseconds. + Weight::from_parts(7_053_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + fn set_candidacy_bond() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_233_000 picoseconds. + Weight::from_parts(7_420_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// The range of component `c` is `[1, 999]`. + fn register_as_candidate(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `1104 + c * (48 ±0)` + // Estimated: `61672 + c * (49 ±0)` + // Minimum execution time: 37_455_000 picoseconds. + Weight::from_parts(29_651_534, 0) + .saturating_add(Weight::from_parts(0, 61672)) + // Standard Error: 1_287 + .saturating_add(Weight::from_parts(103_531, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) + } + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// The range of component `c` is `[6, 1000]`. + fn leave_intent(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `428 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 29_548_000 picoseconds. + Weight::from_parts(18_882_873, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_273 + .saturating_add(Weight::from_parts(105_000, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + fn note_author() -> Weight { + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `7729` + // Minimum execution time: 28_960_000 picoseconds. + Weight::from_parts(29_435_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) + .saturating_add(T::DbWeight::get().reads(3)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:995 w:995) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `r` is `[1, 1000]`. + /// The range of component `c` is `[1, 1000]`. + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22815 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + c * (2520 ±0) + r * (2602 ±0)` + // Minimum execution time: 16_727_000 picoseconds. + Weight::from_parts(16_932_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 798_306 + .saturating_add(Weight::from_parts(28_951_019, 0).saturating_mul(c.into())) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) + .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) + .saturating_add(Weight::from_parts(0, 2602).saturating_mul(r.into())) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs new file mode 100644 index 00000000000..9ab2d5a58a6 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs @@ -0,0 +1,162 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_multisig` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_multisig +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_multisig.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_multisig`. +pub struct WeightInfo(PhantomData); +impl pallet_multisig::WeightInfo for WeightInfo { + /// The range of component `z` is `[0, 10000]`. + fn as_multi_threshold_1(z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_761_000 picoseconds. + Weight::from_parts(12_373_119, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3 + .saturating_add(Weight::from_parts(482, 0).saturating_mul(z.into())) + } + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_create(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 36_964_000 picoseconds. + Weight::from_parts(31_553_347, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 571 + .saturating_add(Weight::from_parts(62_042, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_178, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[3, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_approve(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 27_113_000 picoseconds. + Weight::from_parts(21_794_796, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 423 + .saturating_add(Weight::from_parts(59_156, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_193, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + /// The range of component `z` is `[0, 10000]`. + fn as_multi_complete(s: u32, z: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `388 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 41_979_000 picoseconds. + Weight::from_parts(34_970_639, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 481 + .saturating_add(Weight::from_parts(76_814, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_191, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_create(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 28_113_000 picoseconds. + Weight::from_parts(29_657_007, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 746 + .saturating_add(Weight::from_parts(67_176, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + fn approve_as_multi_approve(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 19_227_000 picoseconds. + Weight::from_parts(20_043_765, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_458 + .saturating_add(Weight::from_parts(70_065, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// The range of component `s` is `[2, 100]`. + fn cancel_as_multi(s: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 29_358_000 picoseconds. + Weight::from_parts(30_953_779, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 662 + .saturating_add(Weight::from_parts(62_100, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs new file mode 100644 index 00000000000..cd7f40253b5 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs @@ -0,0 +1,78 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_session` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_session +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_session.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_session`. +pub struct WeightInfo(PhantomData); +impl pallet_session::WeightInfo for WeightInfo { + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) + fn set_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `7524` + // Minimum execution time: 17_305_000 picoseconds. + Weight::from_parts(17_673_000, 0) + .saturating_add(Weight::from_parts(0, 7524)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) + fn purge_keys() -> Weight { + // Proof Size summary in bytes: + // Measured: `279` + // Estimated: `4023` + // Minimum execution time: 13_593_000 picoseconds. + Weight::from_parts(13_826_000, 0) + .saturating_add(Weight::from_parts(0, 4023)) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs new file mode 100644 index 00000000000..b22fe963f12 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs @@ -0,0 +1,72 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_timestamp` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_timestamp +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_timestamp.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_timestamp`. +pub struct WeightInfo(PhantomData); +impl pallet_timestamp::WeightInfo for WeightInfo { + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + fn set() -> Weight { + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `2986` + // Minimum execution time: 7_665_000 picoseconds. + Weight::from_parts(7_892_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(1)) + } + fn on_finalize() -> Weight { + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_226_000 picoseconds. + Weight::from_parts(3_339_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs new file mode 100644 index 00000000000..34c36b874a1 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs @@ -0,0 +1,99 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_utility` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_utility +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_utility.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_utility`. +pub struct WeightInfo(PhantomData); +impl pallet_utility::WeightInfo for WeightInfo { + /// The range of component `c` is `[0, 1000]`. + fn batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_083_000 picoseconds. + Weight::from_parts(13_037_767, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_155 + .saturating_add(Weight::from_parts(4_503_244, 0).saturating_mul(c.into())) + } + fn as_derivative() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_705_000 picoseconds. + Weight::from_parts(5_799_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn batch_all(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_248_000 picoseconds. + Weight::from_parts(14_495_670, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_240 + .saturating_add(Weight::from_parts(4_790_508, 0).saturating_mul(c.into())) + } + fn dispatch_as() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_355_000 picoseconds. + Weight::from_parts(9_596_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// The range of component `c` is `[0, 1000]`. + fn force_batch(c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_985_000 picoseconds. + Weight::from_parts(17_435_570, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_165 + .saturating_add(Weight::from_parts(4_492_577, 0).saturating_mul(c.into())) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..db01f989e76 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs @@ -0,0 +1,275 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `9595` + // Minimum execution time: 25_890_000 picoseconds. + Weight::from_parts(26_601_000, 0) + .saturating_add(Weight::from_parts(0, 9595)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 24_961_000 picoseconds. + Weight::from_parts(25_332_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn execute() -> 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 Skipped: 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: 9_662_000 picoseconds. + Weight::from_parts(9_844_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_994_000 picoseconds. + Weight::from_parts(3_160_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `14659` + // Minimum execution time: 31_632_000 picoseconds. + Weight::from_parts(31_919_000, 0) + .saturating_add(Weight::from_parts(0, 14659)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `14410` + // Minimum execution time: 32_570_000 picoseconds. + Weight::from_parts(33_292_000, 0) + .saturating_add(Weight::from_parts(0, 14410)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 14_829_000 picoseconds. + Weight::from_parts(15_171_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 14_774_000 picoseconds. + Weight::from_parts(15_232_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 15_289_000 picoseconds. + Weight::from_parts(15_543_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `15981` + // Minimum execution time: 27_849_000 picoseconds. + Weight::from_parts(28_243_000, 0) + .saturating_add(Weight::from_parts(0, 15981)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_260_000 picoseconds. + Weight::from_parts(8_477_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_132_000 picoseconds. + Weight::from_parts(15_581_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `20967` + // Minimum execution time: 34_016_000 picoseconds. + Weight::from_parts(34_627_000, 0) + .saturating_add(Weight::from_parts(0, 20967)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs new file mode 100644 index 00000000000..1c6d2ebe568 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/paritydb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// `ParityDB` can be enabled with a feature flag, but is still experimental. These weights + /// are available for brave runtime engineers who may want to try this out as default. + pub const ParityDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 8_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 50_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::ParityDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs new file mode 100644 index 00000000000..aa0cb2b4bc3 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/rocksdb_weights.rs @@ -0,0 +1,63 @@ +// This file is part of Substrate. + +// Copyright (C) 2023 Parity Technologies (UK) Ltd. +// SPDX-License-Identifier: Apache-2.0 + +// Licensed under the Apache License, Version 2.0 (the "License"); +// you may not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, software +// distributed under the License is distributed on an "AS IS" BASIS, +// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +// See the License for the specific language governing permissions and +// limitations under the License. + +pub mod constants { + use frame_support::{ + parameter_types, + weights::{constants, RuntimeDbWeight}, + }; + + parameter_types! { + /// By default, Substrate uses `RocksDB`, so this will be the weight used throughout + /// the runtime. + pub const RocksDbWeight: RuntimeDbWeight = RuntimeDbWeight { + read: 25_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + write: 100_000 * constants::WEIGHT_REF_TIME_PER_NANOS, + }; + } + + #[cfg(test)] + mod test_db_weights { + use super::constants::RocksDbWeight as W; + use frame_support::weights::constants; + + /// Checks that all weights exist and have sane values. + // NOTE: If this test fails but you are sure that the generated values are fine, + // you can delete it. + #[test] + fn sane() { + // At least 1 µs. + assert!( + W::get().reads(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Read weight should be at least 1 µs." + ); + assert!( + W::get().writes(1).ref_time() >= constants::WEIGHT_REF_TIME_PER_MICROS, + "Write weight should be at least 1 µs." + ); + // At most 1 ms. + assert!( + W::get().reads(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Read weight should be at most 1 ms." + ); + assert!( + W::get().writes(1).ref_time() <= constants::WEIGHT_REF_TIME_PER_MILLIS, + "Write weight should be at most 1 ms." + ); + } + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs new file mode 100644 index 00000000000..f74eaf1195a --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/mod.rs @@ -0,0 +1,243 @@ +// Copyright 2023 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +mod pallet_xcm_benchmarks_fungible; +mod pallet_xcm_benchmarks_generic; + +use crate::Runtime; +use frame_support::weights::Weight; +use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; +use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; + +trait WeighMultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight; +} + +const MAX_ASSETS: u64 = 100; + +impl WeighMultiAssets for MultiAssetFilter { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { + Self::Definite(assets) => + weight.saturating_mul(assets.inner().into_iter().count() as u64), + Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64), + } + } +} + +impl WeighMultiAssets for MultiAssets { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().into_iter().count() as u64) + } +} + +pub struct BridgeHubPolkadotXcmWeight(core::marker::PhantomData); +impl XcmWeightInfo for BridgeHubPolkadotXcmWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) + } + // Currently there is no trusted reserve + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + Weight::from_parts(1_000_000_000 as u64, 0) + } + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) + } + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() + } + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) + } + fn transfer_reserve_asset( + assets: &MultiAssets, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) + } + fn transact( + _origin_type: &OriginKind, + _require_weight_at_most: &Weight, + _call: &DoubleEncoded, + ) -> Weight { + XcmGeneric::::transact() + } + fn hrmp_new_channel_open_request( + _sender: &u32, + _max_message_size: &u32, + _max_capacity: &u32, + ) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { + // XCM Executor does not currently support HRMP channel operations + Weight::MAX + } + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() + } + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() + } + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() + } + + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { + // Hardcoded till the XCM pallet is fixed + let hardcoded_weight = Weight::from_parts(1_000_000_000 as u64, 0); + let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); + hardcoded_weight.min(weight) + } + fn deposit_reserve_asset( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) + } + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX + } + fn initiate_reserve_withdraw( + assets: &MultiAssetFilter, + _reserve: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) + } + fn initiate_teleport( + assets: &MultiAssetFilter, + _dest: &MultiLocation, + _xcm: &Xcm<()>, + ) -> Weight { + // Hardcoded till the XCM pallet is fixed + let hardcoded_weight = Weight::from_parts(200_000_000 as u64, 0); + let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); + hardcoded_weight.min(weight) + } + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX + } + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX + } + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() + } + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() + } + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() + } + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX + } + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs new file mode 100644 index 00000000000..16110f554b2 --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -0,0 +1,158 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm_benchmarks::fungible` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::fungible +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::fungible`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 20_647_000 picoseconds. + Weight::from_parts(20_978_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `6196` + // Minimum execution time: 32_995_000 picoseconds. + Weight::from_parts(33_365_000, 6196) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `223` + // Estimated: `18205` + // Minimum execution time: 56_568_000 picoseconds. + Weight::from_parts(57_462_000, 18205) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) + } + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_070_000 picoseconds. + Weight::from_parts(4_200_000, 0) + } + // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 24_036_000 picoseconds. + Weight::from_parts(24_587_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `122` + // Estimated: `15097` + // Minimum execution time: 49_836_000 picoseconds. + Weight::from_parts(50_507_000, 15097) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 28_353_000 picoseconds. + Weight::from_parts(29_151_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs new file mode 100644 index 00000000000..f8320dad59b --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -0,0 +1,348 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm_benchmarks::generic` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --template=./templates/xcm-bench-template.hbs +// --chain=bridge-hub-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm_benchmarks::generic +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/weights/xcm/pallet_xcm_benchmarks_generic.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weights for `pallet_xcm_benchmarks::generic`. +pub struct WeightInfo(PhantomData); +impl WeightInfo { + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 30_983_000 picoseconds. + Weight::from_parts(31_396_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_966_000 picoseconds. + Weight::from_parts(3_066_000, 0) + } + // Storage: PolkadotXcm Queries (r:1 w:0) + // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 11_159_000 picoseconds. + Weight::from_parts(11_390_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) + } + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_987_000 picoseconds. + Weight::from_parts(13_337_000, 0) + } + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_107_000 picoseconds. + Weight::from_parts(3_182_000, 0) + } + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_957_000 picoseconds. + Weight::from_parts(3_022_000, 0) + } + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_979_000 picoseconds. + Weight::from_parts(3_088_000, 0) + } + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_934_000 picoseconds. + Weight::from_parts(2_989_000, 0) + } + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_817_000 picoseconds. + Weight::from_parts(3_898_000, 0) + } + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_021_000 picoseconds. + Weight::from_parts(3_083_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 25_036_000 picoseconds. + Weight::from_parts(25_379_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + // Storage: PolkadotXcm AssetTraps (r:1 w:1) + // Proof Skipped: PolkadotXcm AssetTraps (max_values: None, max_size: None, mode: Measured) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 15_074_000 picoseconds. + Weight::from_parts(15_310_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) + } + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_996_000 picoseconds. + Weight::from_parts(3_040_000, 0) + } + // Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `13098` + // Minimum execution time: 26_142_000 picoseconds. + Weight::from_parts(26_578_000, 13098) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) + } + // Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_216_000 picoseconds. + Weight::from_parts(5_304_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 28_236_000 picoseconds. + Weight::from_parts(28_614_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_701_000 picoseconds. + Weight::from_parts(4_783_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_121_000 picoseconds. + Weight::from_parts(3_177_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_106_000 picoseconds. + Weight::from_parts(3_343_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_151_000 picoseconds. + Weight::from_parts(3_226_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_362_000 picoseconds. + Weight::from_parts(3_453_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 30_472_000 picoseconds. + Weight::from_parts(30_906_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_383_000 picoseconds. + Weight::from_parts(5_496_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 26_946_000 picoseconds. + Weight::from_parts(27_774_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_192_000 picoseconds. + Weight::from_parts(3_262_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_129_000 picoseconds. + Weight::from_parts(3_199_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_156_000 picoseconds. + Weight::from_parts(3_202_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_114_000 picoseconds. + Weight::from_parts(3_208_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_315_000 picoseconds. + Weight::from_parts(3_374_000, 0) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs new file mode 100644 index 00000000000..99f1047339b --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-polkadot/src/xcm_config.rs @@ -0,0 +1,266 @@ +// Copyright 2023 Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +use super::{ + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, +}; +use frame_support::{ + match_types, parameter_types, + traits::{ConstU32, Contains, Everything, Nothing}, +}; +use pallet_xcm::XcmPassthrough; +use parachains_common::xcm_config::{ + ConcreteNativeAssetFrom, DenyReserveTransferToRelayChain, DenyThenTry, +}; +use polkadot_parachain::primitives::Sibling; +use polkadot_runtime_common::impls::ToAuthor; +use xcm::latest::prelude::*; +use xcm_builder::{ + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds, + WithComputedOrigin, +}; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; + +parameter_types! { + pub const DotRelayLocation: MultiLocation = MultiLocation::parent(); + pub const RelayNetwork: Option = Some(NetworkId::Polkadot); + pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; +} + +/// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used +/// when determining ownership of accounts for asset transacting and when attempting to use XCM +/// `Transact` in order to determine the dispatch Origin. +pub type LocationToAccountId = ( + // The parent (Relay-chain) origin converts to the parent `AccountId`. + ParentIsPreset, + // Sibling parachain origins convert to AccountId via the `ParaId::into`. + SiblingParachainConvertsVia, + // Straight up local `AccountId32` origins just alias directly to `AccountId`. + AccountId32Aliases, +); + +/// Means for transacting the native currency on this chain. +pub type CurrencyTransactor = CurrencyAdapter< + // Use this currency: + Balances, + // Use this currency when it is a fungible asset matching the given location or name: + IsConcrete, + // Do a simple punn to convert an AccountId32 MultiLocation into a native chain account ID: + LocationToAccountId, + // Our chain's account ID type (we can't get away without mentioning it explicitly): + AccountId, + // We don't track any teleports. + (), +>; + +/// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, +/// ready for dispatching a transaction with Xcm's `Transact`. There is an `OriginKind` which can +/// biases the kind of local `Origin` it will become. +pub type XcmOriginToTransactDispatchOrigin = ( + // Sovereign account converter; this attempts to derive an `AccountId` from the origin location + // using `LocationToAccountId` and then turn that into the usual `Signed` origin. Useful for + // foreign chains who want to have a local sovereign account on this chain which they control. + SovereignSignedViaLocation, + // Native converter for Relay-chain (Parent) location; will converts to a `Relay` origin when + // recognized. + RelayChainAsNative, + // Native converter for sibling Parachains; will convert to a `SiblingPara` origin when + // recognized. + SiblingParachainAsNative, + // Superuser converter for the Relay-chain (Parent) location. This will allow it to issue a + // transaction from the Root origin. + ParentAsSuperuser, + // Native signed account converter; this just converts an `AccountId32` origin into a normal + // `Origin::Signed` origin of the same 32-byte value. + SignedAccountId32AsNative, + // Xcm origins can be represented natively under the Xcm pallet's Xcm origin. + XcmPassthrough, +); + +match_types! { + // TODO: map gov2 origins here - after merge https://github.com/paritytech/cumulus/pull/1895 + pub type ParentOrParentsExecutivePlurality: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } + }; + pub type ParentOrSiblings: impl Contains = { + MultiLocation { parents: 1, interior: Here } | + MultiLocation { parents: 1, interior: X1(_) } + }; +} +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) => true, + _ => false, + } + } +} + +pub type Barrier = DenyThenTry< + DenyReserveTransferToRelayChain, + ( + // Allow local users to buy weight credit. + TakeWeightCredit, + // Expected responses are OK. + AllowKnownQueryResponses, + WithComputedOrigin< + ( + // Allow anything to pay for execution. + AllowTopLevelPaidExecutionFrom, + // Parent and its exec plurality get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, + ), +>; + +pub struct XcmConfig; +impl xcm_executor::Config for XcmConfig { + type RuntimeCall = RuntimeCall; + type XcmSender = XcmRouter; + type AssetTransactor = CurrencyTransactor; + type OriginConverter = XcmOriginToTransactDispatchOrigin; + // BridgeHub does not recognize a reserve location for any asset. Users must teleport DOT + // where allowed (e.g. with the Relay Chain). + type IsReserve = (); + /// Only allow teleportation of DOT. + type IsTeleporter = ConcreteNativeAssetFrom; + type UniversalLocation = UniversalLocation; + type Barrier = Barrier; + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubPolkadotXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type Trader = + UsingComponents>; + type ResponseHandler = PolkadotXcm; + type AssetTrap = PolkadotXcm; + type AssetClaims = PolkadotXcm; + type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; +} + +/// Converts a local signed origin into an XCM multilocation. +/// Forms the basis for local origins sending/executing XCMs. +pub type LocalOriginToLocation = SignedToAccountId32; + +/// The means for routing XCM messages which are not for local execution into the right message +/// queues. +pub type XcmRouter = ( + // Two routers - use UMP to communicate with the relay chain: + cumulus_primitives_utility::ParentAsUmp, + // ..and XCMP to communicate with the sibling chains. + XcmpQueue, +); + +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + +impl pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + // We want to disallow users sending (arbitrary) XCMs from this chain. + type SendXcmOrigin = EnsureXcmOrigin; + type XcmRouter = XcmRouter; + // We support local origins dispatching XCM executions in principle... + type ExecuteXcmOrigin = EnsureXcmOrigin; + // ... but disallow generic XCM execution. As a result only teleports are allowed. + type XcmExecuteFilter = Nothing; + type XcmExecutor = XcmExecutor; + type XcmTeleportFilter = Everything; + type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. + type Weigher = WeightInfoBounds< + crate::weights::xcm::BridgeHubPolkadotXcmWeight, + RuntimeCall, + MaxInstructions, + >; + type UniversalLocation = UniversalLocation; + type RuntimeOrigin = RuntimeOrigin; + type RuntimeCall = RuntimeCall; + const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; + type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; +} + +impl cumulus_pallet_xcm::Config for Runtime { + type RuntimeEvent = RuntimeEvent; + type XcmExecutor = XcmExecutor; +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml index 9fcd3b2a4f9..b02d7c1b2c5 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/Cargo.toml @@ -6,58 +6,58 @@ edition = "2021" description = "Rococo's BridgeHub parachain runtime" [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } hex-literal = { version = "0.3.4" } log = { version = "0.4.17", default-features = false } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } -serde = { version = "1.0.151", optional = true, features = ["derive"] } +serde = { version = "1.0.152", optional = true, features = ["derive"] } smallvec = "1.8.1" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -rococo-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +rococo-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm-benchmarks = { git = "https://github.com/paritytech/polkadot", default-features = false, optional = true , branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs index 2c2f5901bf5..b76b907ed70 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/lib.rs @@ -157,10 +157,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("bridge-hub-rococo"), impl_name: create_runtime_str!("bridge-hub-rococo"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 1, + transaction_version: 3, state_version: 1, }; @@ -269,8 +269,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -350,6 +348,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -450,7 +449,7 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -484,6 +483,7 @@ mod benches { [pallet_collator_selection, CollatorSelection] [cumulus_pallet_xcmp_queue, XcmpQueue] // XCM + [pallet_xcm, PolkadotXcm] // NOTE: Make sure you point to the individual modules below. [pallet_xcm_benchmarks::fungible, XcmBalances] [pallet_xcm_benchmarks::generic, XcmGeneric] @@ -589,6 +589,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -599,7 +605,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } @@ -660,7 +666,7 @@ impl_runtime_apis! { fn valid_destination() -> Result { Ok(RelayLocation::get()) } - fn worst_case_holding() -> MultiAssets { + fn worst_case_holding(_depositable_count: u32) -> MultiAssets { // just concrete assets according to relay chain. let assets: Vec = vec![ MultiAsset { @@ -677,8 +683,7 @@ impl_runtime_apis! { RelayLocation::get(), MultiAsset { fun: Fungible(1 * UNITS), id: Concrete(RelayLocation::get()) }, )); - pub const TrustedReserve: Option<(MultiLocation, MultiAsset)> = None; - pub const CheckedAccount: Option = None; + pub const CheckedAccount: Option<(AccountId, xcm_builder::MintLocation)> = None; } impl pallet_xcm_benchmarks::fungible::Config for Runtime { @@ -686,7 +691,6 @@ impl_runtime_apis! { type CheckedAccount = CheckedAccount; type TrustedTeleporter = TrustedTeleporter; - type TrustedReserve = TrustedReserve; fn get_multi_asset() -> MultiAsset { MultiAsset { @@ -703,8 +707,16 @@ impl_runtime_apis! { (0u64, Response::Version(Default::default())) } - fn transact_origin() -> Result { - Ok(RelayLocation::get()) + fn worst_case_asset_exchange() -> Result<(MultiAssets, MultiAssets), BenchmarkError> { + Err(BenchmarkError::Skip) + } + + fn universal_alias() -> Result { + Err(BenchmarkError::Skip) + } + + fn transact_origin_and_runtime_call() -> Result<(MultiLocation, RuntimeCall), BenchmarkError> { + Ok((RelayLocation::get(), frame_system::Call::remark_with_event { remark: vec![] }.into())) } fn subscribe_origin() -> Result { @@ -717,6 +729,10 @@ impl_runtime_apis! { let ticket = MultiLocation { parents: 0, interior: Here }; Ok((origin, ticket, assets)) } + + fn unlockable_asset() -> Result<(MultiLocation, MultiLocation, MultiAsset), BenchmarkError> { + Err(BenchmarkError::Skip) + } } type XcmBalances = pallet_xcm_benchmarks::fungible::Pallet::; diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/block_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/block_weights.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_xcmp_queue.rs index 9e30e61276e..638e1354d91 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -46,17 +47,27 @@ use sp_std::marker::PhantomData; /// Weight functions for `cumulus_pallet_xcmp_queue`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { - // Minimum execution time: 6_917 nanoseconds. - Weight::from_ref_time(7_104_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_434_000 picoseconds. + Weight::from_parts(5_663_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { - // Minimum execution time: 6_765 nanoseconds. - Weight::from_ref_time(7_102_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_301_000 picoseconds. + Weight::from_parts(5_415_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/extrinsic_weights.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system.rs index 2e731f1ca57..ed5e6270415 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/frame_system.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -48,51 +49,82 @@ pub struct WeightInfo(PhantomData); impl frame_system::WeightInfo for WeightInfo { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { - // Minimum execution time: 3_799 nanoseconds. - Weight::from_ref_time(3_878_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_311_000 picoseconds. + Weight::from_parts(2_347_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(410).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(370, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - // Minimum execution time: 12_275 nanoseconds. - Weight::from_ref_time(12_533_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_875_000 picoseconds. + Weight::from_parts(7_972_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_770).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_410, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 7_781 nanoseconds. - Weight::from_ref_time(8_119_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_309_000 picoseconds. + Weight::from_parts(4_457_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_810 nanoseconds. - Weight::from_ref_time(3_860_000) - // Standard Error: 2_166 - .saturating_add(Weight::from_ref_time(621_137).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_526_000 picoseconds. + Weight::from_parts(2_564_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_869 + .saturating_add(Weight::from_parts(678_765, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_821 nanoseconds. - Weight::from_ref_time(3_940_000) - // Standard Error: 1_002 - .saturating_add(Weight::from_ref_time(450_836).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_526_000 picoseconds. + Weight::from_parts(2_603_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 899 + .saturating_add(Weight::from_parts(497_948, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - // Minimum execution time: 5_230 nanoseconds. - Weight::from_ref_time(5_368_000) - // Standard Error: 1_362 - .saturating_add(Weight::from_ref_time(977_049).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `66 + p * (70 ±0)` + // Minimum execution time: 4_280_000 picoseconds. + Weight::from_parts(4_398_000, 0) + .saturating_add(Weight::from_parts(0, 66)) + // Standard Error: 1_108 + .saturating_add(Weight::from_parts(1_011_188, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs index 869c03be687..d5722374def 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/mod.rs @@ -27,6 +27,7 @@ pub mod pallet_multisig; pub mod pallet_session; pub mod pallet_timestamp; pub mod pallet_utility; +pub mod pallet_xcm; pub mod paritydb_weights; pub mod rocksdb_weights; pub mod xcm; diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_balances.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_balances.rs index 8bf85644579..9b6cb8b0ff0 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_balances.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_balances.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -46,52 +47,87 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_balances`. pub struct WeightInfo(PhantomData); impl pallet_balances::WeightInfo for WeightInfo { - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 41_846 nanoseconds. - Weight::from_ref_time(42_432_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 35_746_000 picoseconds. + Weight::from_parts(36_167_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 31_626 nanoseconds. - Weight::from_ref_time(32_252_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_301_000 picoseconds. + Weight::from_parts(26_847_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - // Minimum execution time: 23_660 nanoseconds. - Weight::from_ref_time(23_956_000) + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 16_073_000 picoseconds. + Weight::from_parts(16_292_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - // Minimum execution time: 26_051 nanoseconds. - Weight::from_ref_time(26_580_000) + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 19_589_000 picoseconds. + Weight::from_parts(20_034_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:2 w:2) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 41_146 nanoseconds. - Weight::from_ref_time(41_760_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 37_416_000 picoseconds. + Weight::from_parts(37_894_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - // Minimum execution time: 36_192 nanoseconds. - Weight::from_ref_time(36_894_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 32_565_000 picoseconds. + Weight::from_parts(33_087_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - // Minimum execution time: 20_350 nanoseconds. - Weight::from_ref_time(20_717_000) + // Proof Size summary in bytes: + // Measured: `174` + // Estimated: `3593` + // Minimum execution time: 15_291_000 picoseconds. + Weight::from_parts(15_614_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_collator_selection.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_collator_selection.rs index 78e3f8f8e3d..cf4ee2028f7 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_collator_selection.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_collator_selection.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -46,79 +47,131 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) /// The range of component `b` is `[1, 100]`. fn set_invulnerables(b: u32, ) -> Weight { - // Minimum execution time: 20_717 nanoseconds. - Weight::from_ref_time(22_550_310) - // Standard Error: 3_492 - .saturating_add(Weight::from_ref_time(2_243_989).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `214 + b * (78 ±0)` + // Estimated: `1203 + b * (2554 ±0)` + // Minimum execution time: 14_833_000 picoseconds. + Weight::from_parts(15_349_415, 0) + .saturating_add(Weight::from_parts(0, 1203)) + // Standard Error: 3_477 + .saturating_add(Weight::from_parts(2_639_530, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_desired_candidates() -> Weight { - // Minimum execution time: 12_534 nanoseconds. - Weight::from_ref_time(12_916_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_190_000 picoseconds. + Weight::from_parts(7_558_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 12_687 nanoseconds. - Weight::from_ref_time(13_085_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_435_000 picoseconds. + Weight::from_parts(7_790_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[1, 999]`. fn register_as_candidate(c: u32, ) -> Weight { - // Minimum execution time: 44_283 nanoseconds. - Weight::from_ref_time(40_422_515) - // Standard Error: 1_034 - .saturating_add(Weight::from_ref_time(132_882).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `1104 + c * (48 ±0)` + // Estimated: `61672 + c * (49 ±0)` + // Minimum execution time: 38_999_000 picoseconds. + Weight::from_parts(31_254_595, 0) + .saturating_add(Weight::from_parts(0, 61672)) + // Standard Error: 1_266 + .saturating_add(Weight::from_parts(108_612, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[6, 1000]`. fn leave_intent(c: u32, ) -> Weight { - // Minimum execution time: 34_104 nanoseconds. - Weight::from_ref_time(26_576_861) - // Standard Error: 1_061 - .saturating_add(Weight::from_ref_time(126_082).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `428 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 29_894_000 picoseconds. + Weight::from_parts(19_491_329, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_328 + .saturating_add(Weight::from_parts(109_217, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:2 w:2) - // Storage: System BlockWeight (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) fn note_author() -> Weight { - // Minimum execution time: 31_325 nanoseconds. - Weight::from_ref_time(31_718_000) + // Proof Size summary in bytes: + // Measured: `155` + // Estimated: `7729` + // Minimum execution time: 29_666_000 picoseconds. + Weight::from_parts(30_017_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:1000 w:1) - // Storage: System Account (r:1 w:1) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: System BlockWeight (r:1 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:995 w:995) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `r` is `[1, 1000]`. /// The range of component `c` is `[1, 1000]`. - fn new_session(_r: u32, c: u32, ) -> Weight { - // Minimum execution time: 19_213 nanoseconds. - Weight::from_ref_time(19_502_000) - // Standard Error: 769_266 - .saturating_add(Weight::from_ref_time(27_853_519).saturating_mul(c.into())) + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22815 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + r * (2602 ±0) + c * (2520 ±0)` + // Minimum execution time: 17_009_000 picoseconds. + Weight::from_parts(17_119_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 839_085 + .saturating_add(Weight::from_parts(30_312_617, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2602).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_multisig.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_multisig.rs index 4a4a64dfce8..df58cf7952a 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_multisig.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_multisig.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -48,80 +49,113 @@ pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - // Minimum execution time: 15_441 nanoseconds. - Weight::from_ref_time(16_086_362) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 12_203_000 picoseconds. + Weight::from_parts(12_687_394, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 2 - .saturating_add(Weight::from_ref_time(598).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(556, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 43_142 nanoseconds. - Weight::from_ref_time(35_930_763) - // Standard Error: 1_178 - .saturating_add(Weight::from_ref_time(82_978).saturating_mul(s.into())) - // Standard Error: 11 - .saturating_add(Weight::from_ref_time(1_614).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 37_793_000 picoseconds. + Weight::from_parts(32_841_866, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 973 + .saturating_add(Weight::from_parts(64_271, 0).saturating_mul(s.into())) + // Standard Error: 9 + .saturating_add(Weight::from_parts(1_189, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 33_798 nanoseconds. - Weight::from_ref_time(26_265_361) - // Standard Error: 614 - .saturating_add(Weight::from_ref_time(83_615).saturating_mul(s.into())) - // Standard Error: 6 - .saturating_add(Weight::from_ref_time(1_635).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 27_835_000 picoseconds. + Weight::from_parts(22_419_199, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 535 + .saturating_add(Weight::from_parts(59_729, 0).saturating_mul(s.into())) + // Standard Error: 5 + .saturating_add(Weight::from_parts(1_259, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 47_715 nanoseconds. - Weight::from_ref_time(39_237_542) - // Standard Error: 1_933 - .saturating_add(Weight::from_ref_time(93_722).saturating_mul(s.into())) - // Standard Error: 18 - .saturating_add(Weight::from_ref_time(1_629).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `388 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 43_060_000 picoseconds. + Weight::from_parts(36_326_276, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 497 + .saturating_add(Weight::from_parts(76_443, 0).saturating_mul(s.into())) + // Standard Error: 4 + .saturating_add(Weight::from_parts(1_257, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - // Minimum execution time: 31_214 nanoseconds. - Weight::from_ref_time(33_958_587) - // Standard Error: 1_019 - .saturating_add(Weight::from_ref_time(94_973).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 29_242_000 picoseconds. + Weight::from_parts(30_673_516, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 651 + .saturating_add(Weight::from_parts(67_820, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - // Minimum execution time: 22_705 nanoseconds. - Weight::from_ref_time(25_017_425) - // Standard Error: 1_063 - .saturating_add(Weight::from_ref_time(88_380).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 19_344_000 picoseconds. + Weight::from_parts(20_956_909, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 781 + .saturating_add(Weight::from_parts(65_374, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - // Minimum execution time: 31_444 nanoseconds. - Weight::from_ref_time(34_349_731) - // Standard Error: 990 - .saturating_add(Weight::from_ref_time(93_539).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 30_222_000 picoseconds. + Weight::from_parts(31_457_558, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 648 + .saturating_add(Weight::from_parts(67_068, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_session.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_session.rs index 847d9ef4026..67883fab331 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_session.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_session.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -46,19 +47,31 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:1 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - // Minimum execution time: 21_996 nanoseconds. - Weight::from_ref_time(22_441_000) + // Proof Size summary in bytes: + // Measured: `297` + // Estimated: `7524` + // Minimum execution time: 17_590_000 picoseconds. + Weight::from_parts(18_134_000, 0) + .saturating_add(Weight::from_parts(0, 7524)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:0 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - // Minimum execution time: 18_318 nanoseconds. - Weight::from_ref_time(18_751_000) + // Proof Size summary in bytes: + // Measured: `279` + // Estimated: `4023` + // Minimum execution time: 13_479_000 picoseconds. + Weight::from_parts(13_956_000, 0) + .saturating_add(Weight::from_parts(0, 4023)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_timestamp.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_timestamp.rs index 40ac27afac0..7be7f6691f0 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_timestamp.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -46,16 +47,26 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_timestamp`. pub struct WeightInfo(PhantomData); impl pallet_timestamp::WeightInfo for WeightInfo { - // Storage: Timestamp Now (r:1 w:1) - // Storage: Aura CurrentSlot (r:1 w:0) + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - // Minimum execution time: 8_525 nanoseconds. - Weight::from_ref_time(8_723_000) + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `2986` + // Minimum execution time: 7_610_000 picoseconds. + Weight::from_parts(7_887_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { - // Minimum execution time: 3_707 nanoseconds. - Weight::from_ref_time(3_840_000) + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_100_000 picoseconds. + Weight::from_parts(3_180_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_utility.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_utility.rs index 29ac024e709..2420a70d1fb 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_utility.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_utility.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,7 +17,8 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -48,31 +49,51 @@ pub struct WeightInfo(PhantomData); impl pallet_utility::WeightInfo for WeightInfo { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - // Minimum execution time: 12_012 nanoseconds. - Weight::from_ref_time(23_285_911) - // Standard Error: 2_576 - .saturating_add(Weight::from_ref_time(3_535_162).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_051_000 picoseconds. + Weight::from_parts(10_722_806, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 4_213 + .saturating_add(Weight::from_parts(4_992_366, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 6_534 nanoseconds. - Weight::from_ref_time(6_729_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_831_000 picoseconds. + Weight::from_parts(6_014_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - // Minimum execution time: 11_892 nanoseconds. - Weight::from_ref_time(14_934_381) - // Standard Error: 2_702 - .saturating_add(Weight::from_ref_time(3_736_152).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_394_000 picoseconds. + Weight::from_parts(15_396_332, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_533 + .saturating_add(Weight::from_parts(5_302_383, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 14_082 nanoseconds. - Weight::from_ref_time(14_286_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_730_000 picoseconds. + Weight::from_parts(9_988_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - // Minimum execution time: 12_445 nanoseconds. - Weight::from_ref_time(19_975_100) - // Standard Error: 2_591 - .saturating_add(Weight::from_ref_time(3_535_771).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_395_000 picoseconds. + Weight::from_parts(14_933_943, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_208 + .saturating_add(Weight::from_parts(4_963_051, 0).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..6472867bfbc --- /dev/null +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs @@ -0,0 +1,275 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=bridge-hub-rococo-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `9595` + // Minimum execution time: 27_429_000 picoseconds. + Weight::from_parts(28_626_000, 0) + .saturating_add(Weight::from_parts(0, 9595)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 27_626_000 picoseconds. + Weight::from_parts(28_561_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn execute() -> 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 Skipped: 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: 10_264_000 picoseconds. + Weight::from_parts(10_601_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_218_000 picoseconds. + Weight::from_parts(3_311_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `14659` + // Minimum execution time: 33_037_000 picoseconds. + Weight::from_parts(33_559_000, 0) + .saturating_add(Weight::from_parts(0, 14659)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `14410` + // Minimum execution time: 34_280_000 picoseconds. + Weight::from_parts(34_943_000, 0) + .saturating_add(Weight::from_parts(0, 14410)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 15_106_000 picoseconds. + Weight::from_parts(15_383_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 15_129_000 picoseconds. + Weight::from_parts(15_489_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 15_526_000 picoseconds. + Weight::from_parts(15_778_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `15981` + // Minimum execution time: 29_457_000 picoseconds. + Weight::from_parts(29_970_000, 0) + .saturating_add(Weight::from_parts(0, 15981)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_264_000 picoseconds. + Weight::from_parts(8_518_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 15_633_000 picoseconds. + Weight::from_parts(16_006_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `20967` + // Minimum execution time: 35_849_000 picoseconds. + Weight::from_parts(36_545_000, 0) + .saturating_add(Weight::from_parts(0, 20967)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs index 4d0d2c6ca9e..2bbcb765bfb 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/mod.rs @@ -21,168 +21,223 @@ use crate::Runtime; use frame_support::weights::Weight; use pallet_xcm_benchmarks_fungible::WeightInfo as XcmFungibleWeight; use pallet_xcm_benchmarks_generic::WeightInfo as XcmGeneric; -use sp_std::{cmp, prelude::*}; -use xcm::{ - latest::{prelude::*, Weight as XCMWeight}, - DoubleEncoded, -}; +use sp_std::prelude::*; +use xcm::{latest::prelude::*, DoubleEncoded}; trait WeighMultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight; + fn weigh_multi_assets(&self, weight: Weight) -> Weight; } -const MAX_ASSETS: u32 = 100; +const MAX_ASSETS: u64 = 100; impl WeighMultiAssets for MultiAssetFilter { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - let weight = match self { + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + match self { Self::Definite(assets) => weight.saturating_mul(assets.inner().into_iter().count() as u64), Self::Wild(_) => weight.saturating_mul(MAX_ASSETS as u64), - }; - weight.ref_time() + } } } impl WeighMultiAssets for MultiAssets { - fn weigh_multi_assets(&self, weight: Weight) -> XCMWeight { - weight.saturating_mul(self.inner().into_iter().count() as u64).ref_time() + fn weigh_multi_assets(&self, weight: Weight) -> Weight { + weight.saturating_mul(self.inner().into_iter().count() as u64) } } pub struct BridgeHubRococoXcmWeight(core::marker::PhantomData); impl XcmWeightInfo for BridgeHubRococoXcmWeight { - fn withdraw_asset(assets: &MultiAssets) -> XCMWeight { + fn withdraw_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::withdraw_asset()) } // Currently there is no trusted reserve - fn reserve_asset_deposited(_assets: &MultiAssets) -> XCMWeight { - u64::MAX + fn reserve_asset_deposited(_assets: &MultiAssets) -> Weight { + // TODO: hardcoded - fix https://github.com/paritytech/cumulus/issues/1974 + Weight::from_parts(1_000_000_000 as u64, 0) } - fn receive_teleported_asset(assets: &MultiAssets) -> XCMWeight { + fn receive_teleported_asset(assets: &MultiAssets) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::receive_teleported_asset()) } - fn query_response(_query_id: &u64, _response: &Response, _max_weight: &u64) -> XCMWeight { - XcmGeneric::::query_response().ref_time() + fn query_response( + _query_id: &u64, + _response: &Response, + _max_weight: &Weight, + _querier: &Option, + ) -> Weight { + XcmGeneric::::query_response() } - fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> XCMWeight { + fn transfer_asset(assets: &MultiAssets, _dest: &MultiLocation) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_asset()) } fn transfer_reserve_asset( assets: &MultiAssets, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::transfer_reserve_asset()) } fn transact( _origin_type: &OriginKind, - _require_weight_at_most: &u64, + _require_weight_at_most: &Weight, _call: &DoubleEncoded, - ) -> XCMWeight { - XcmGeneric::::transact().ref_time() + ) -> Weight { + XcmGeneric::::transact() } fn hrmp_new_channel_open_request( _sender: &u32, _max_message_size: &u32, _max_capacity: &u32, - ) -> XCMWeight { + ) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_accepted(_recipient: &u32) -> XCMWeight { + fn hrmp_channel_accepted(_recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> XCMWeight { + fn hrmp_channel_closing(_initiator: &u32, _sender: &u32, _recipient: &u32) -> Weight { // XCM Executor does not currently support HRMP channel operations - Weight::MAX.ref_time() + Weight::MAX } - fn clear_origin() -> XCMWeight { - XcmGeneric::::clear_origin().ref_time() + fn clear_origin() -> Weight { + XcmGeneric::::clear_origin() } - fn descend_origin(_who: &InteriorMultiLocation) -> XCMWeight { - XcmGeneric::::descend_origin().ref_time() + fn descend_origin(_who: &InteriorMultiLocation) -> Weight { + XcmGeneric::::descend_origin() } - fn report_error( - _query_id: &QueryId, - _dest: &MultiLocation, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::report_error().ref_time() + fn report_error(_query_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_error() } - fn deposit_asset( - assets: &MultiAssetFilter, - _max_assets: &u32, - _dest: &MultiLocation, - ) -> XCMWeight { + fn deposit_asset(assets: &MultiAssetFilter, _dest: &MultiLocation) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(1_000_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(1_000_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::deposit_asset()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } fn deposit_reserve_asset( assets: &MultiAssetFilter, - _max_assets: &u32, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmFungibleWeight::::deposit_reserve_asset()) } - fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets) -> XCMWeight { - Weight::MAX.ref_time() + fn exchange_asset(_give: &MultiAssetFilter, _receive: &MultiAssets, _maximal: &bool) -> Weight { + Weight::MAX } fn initiate_reserve_withdraw( assets: &MultiAssetFilter, _reserve: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { assets.weigh_multi_assets(XcmGeneric::::initiate_reserve_withdraw()) } fn initiate_teleport( assets: &MultiAssetFilter, _dest: &MultiLocation, _xcm: &Xcm<()>, - ) -> XCMWeight { + ) -> Weight { // Hardcoded till the XCM pallet is fixed - let hardcoded_weight = Weight::from_ref_time(200_000_000 as u64).ref_time(); + let hardcoded_weight = Weight::from_parts(200_000_000 as u64, 0); let weight = assets.weigh_multi_assets(XcmFungibleWeight::::initiate_teleport()); - cmp::min(hardcoded_weight, weight) + hardcoded_weight.min(weight) } - fn query_holding( - _query_id: &u64, - _dest: &MultiLocation, - _assets: &MultiAssetFilter, - _max_response_weight: &u64, - ) -> XCMWeight { - XcmGeneric::::query_holding().ref_time() + fn report_holding(_response_info: &QueryResponseInfo, _assets: &MultiAssetFilter) -> Weight { + XcmGeneric::::report_holding() + } + fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> Weight { + XcmGeneric::::buy_execution() + } + fn refund_surplus() -> Weight { + XcmGeneric::::refund_surplus() + } + fn set_error_handler(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_error_handler() + } + fn set_appendix(_xcm: &Xcm) -> Weight { + XcmGeneric::::set_appendix() + } + fn clear_error() -> Weight { + XcmGeneric::::clear_error() + } + fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> Weight { + XcmGeneric::::claim_asset() + } + fn trap(_code: &u64) -> Weight { + XcmGeneric::::trap() + } + fn subscribe_version(_query_id: &QueryId, _max_response_weight: &Weight) -> Weight { + XcmGeneric::::subscribe_version() + } + fn unsubscribe_version() -> Weight { + XcmGeneric::::unsubscribe_version() + } + fn burn_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::burn_asset()) + } + fn expect_asset(assets: &MultiAssets) -> Weight { + assets.weigh_multi_assets(XcmGeneric::::expect_asset()) + } + fn expect_origin(_origin: &Option) -> Weight { + XcmGeneric::::expect_origin() + } + fn expect_error(_error: &Option<(u32, XcmError)>) -> Weight { + XcmGeneric::::expect_error() + } + fn expect_transact_status(_transact_status: &MaybeErrorCode) -> Weight { + XcmGeneric::::expect_transact_status() + } + fn query_pallet(_module_name: &Vec, _response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::query_pallet() + } + fn expect_pallet( + _index: &u32, + _name: &Vec, + _module_name: &Vec, + _crate_major: &u32, + _min_crate_minor: &u32, + ) -> Weight { + XcmGeneric::::expect_pallet() + } + fn report_transact_status(_response_info: &QueryResponseInfo) -> Weight { + XcmGeneric::::report_transact_status() + } + fn clear_transact_status() -> Weight { + XcmGeneric::::clear_transact_status() + } + fn universal_origin(_: &Junction) -> Weight { + Weight::MAX + } + fn export_message(_: &NetworkId, _: &Junctions, _: &Xcm<()>) -> Weight { + Weight::MAX } - fn buy_execution(_fees: &MultiAsset, _weight_limit: &WeightLimit) -> XCMWeight { - XcmGeneric::::buy_execution().ref_time() + fn lock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn refund_surplus() -> XCMWeight { - XcmGeneric::::refund_surplus().ref_time() + fn unlock_asset(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_error_handler(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_error_handler().ref_time() + fn note_unlockable(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn set_appendix(_xcm: &Xcm) -> XCMWeight { - XcmGeneric::::set_appendix().ref_time() + fn request_unlock(_: &MultiAsset, _: &MultiLocation) -> Weight { + Weight::MAX } - fn clear_error() -> XCMWeight { - XcmGeneric::::clear_error().ref_time() + fn set_fees_mode(_: &bool) -> Weight { + XcmGeneric::::set_fees_mode() } - fn claim_asset(_assets: &MultiAssets, _ticket: &MultiLocation) -> XCMWeight { - XcmGeneric::::claim_asset().ref_time() + fn set_topic(_topic: &[u8; 32]) -> Weight { + XcmGeneric::::set_topic() } - fn trap(_code: &u64) -> XCMWeight { - XcmGeneric::::trap().ref_time() + fn clear_topic() -> Weight { + XcmGeneric::::clear_topic() } - fn subscribe_version(_query_id: &QueryId, _max_response_weight: &u64) -> XCMWeight { - XcmGeneric::::subscribe_version().ref_time() + fn alias_origin(_: &MultiLocation) -> Weight { + // XCM Executor does not currently support alias origin operations + Weight::MAX } - fn unsubscribe_version() -> XCMWeight { - XcmGeneric::::unsubscribe_version().ref_time() + fn unpaid_execution(_: &WeightLimit, _: &Option) -> Weight { + XcmGeneric::::unpaid_execution() } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs index 75b9db0ff85..731111e358e 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_fungible.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::fungible` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -49,59 +49,110 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: System Account (r:1 w:1) - pub(crate) fn withdraw_asset() -> Weight { - Weight::from_ref_time(27_085_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn withdraw_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `101` + // Estimated: `3593` + // Minimum execution time: 21_045_000 picoseconds. + Weight::from_parts(21_781_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:2 w:2) - pub(crate) fn transfer_asset() -> Weight { - Weight::from_ref_time(37_130_000 as u64) - .saturating_add(T::DbWeight::get().reads(2 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn transfer_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `153` + // Estimated: `6196` + // Minimum execution time: 33_123_000 picoseconds. + Weight::from_parts(33_378_000, 6196) + .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: System Account (r:2 w:2) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn transfer_reserve_asset() -> Weight { - Weight::from_ref_time(54_004_000 as u64) - .saturating_add(T::DbWeight::get().reads(8 as u64)) - .saturating_add(T::DbWeight::get().writes(4 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn transfer_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `223` + // Estimated: `18205` + // Minimum execution time: 57_689_000 picoseconds. + Weight::from_parts(58_320_000, 18205) + .saturating_add(T::DbWeight::get().reads(8)) + .saturating_add(T::DbWeight::get().writes(4)) } - pub(crate) fn receive_teleported_asset() -> Weight { - Weight::from_ref_time(6_208_000 as u64) + pub fn receive_teleported_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_838_000 picoseconds. + Weight::from_parts(4_906_000, 0) } // Storage: System Account (r:1 w:1) - pub(crate) fn deposit_asset() -> Weight { - Weight::from_ref_time(29_191_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + pub fn deposit_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `52` + // Estimated: `3593` + // Minimum execution time: 25_197_000 picoseconds. + Weight::from_parts(25_562_000, 3593) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } // Storage: System Account (r:1 w:1) + // Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn deposit_reserve_asset() -> Weight { - Weight::from_ref_time(48_966_000 as u64) - .saturating_add(T::DbWeight::get().reads(7 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn deposit_reserve_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `122` + // Estimated: `15097` + // Minimum execution time: 52_159_000 picoseconds. + Weight::from_parts(52_637_000, 15097) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_teleport() -> Weight { - Weight::from_ref_time(23_337_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_teleport() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 30_471_000 picoseconds. + Weight::from_parts(31_112_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs index 08c5d03941c..8572163a52b 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/weights/xcm/pallet_xcm_benchmarks_generic.rs @@ -1,4 +1,4 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -14,11 +14,11 @@ // You should have received a copy of the GNU General Public License // along with Cumulus. If not, see . - //! Autogenerated weights for `pallet_xcm_benchmarks::generic` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` //! HOSTNAME: `bm5`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("bridge-hub-rococo-dev"), DB CACHE: 1024 @@ -49,89 +49,300 @@ use sp_std::marker::PhantomData; pub struct WeightInfo(PhantomData); impl WeightInfo { // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn query_holding() -> Weight { - Weight::from_ref_time(23_077_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_holding() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 34_238_000 picoseconds. + Weight::from_parts(34_851_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } - pub(crate) fn buy_execution() -> Weight { - Weight::from_ref_time(5_595_000 as u64) + pub fn buy_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_358_000 picoseconds. + Weight::from_parts(3_437_000, 0) } // Storage: PolkadotXcm Queries (r:1 w:0) - pub(crate) fn query_response() -> Weight { - Weight::from_ref_time(16_593_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) + // Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + pub fn query_response() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `3497` + // Minimum execution time: 11_623_000 picoseconds. + Weight::from_parts(11_814_000, 3497) + .saturating_add(T::DbWeight::get().reads(1)) } - pub(crate) fn transact() -> Weight { - Weight::from_ref_time(19_522_000 as u64) + pub fn transact() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 13_934_000 picoseconds. + Weight::from_parts(14_111_000, 0) } - pub(crate) fn refund_surplus() -> Weight { - Weight::from_ref_time(5_612_000 as u64) + pub fn refund_surplus() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_562_000 picoseconds. + Weight::from_parts(3_689_000, 0) } - pub(crate) fn set_error_handler() -> Weight { - Weight::from_ref_time(5_455_000 as u64) + pub fn set_error_handler() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_280_000 picoseconds. + Weight::from_parts(3_345_000, 0) } - pub(crate) fn set_appendix() -> Weight { - Weight::from_ref_time(5_404_000 as u64) + pub fn set_appendix() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_243_000 picoseconds. + Weight::from_parts(3_335_000, 0) } - pub(crate) fn clear_error() -> Weight { - Weight::from_ref_time(5_402_000 as u64) + pub fn clear_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_280_000 picoseconds. + Weight::from_parts(3_347_000, 0) } - pub(crate) fn descend_origin() -> Weight { - Weight::from_ref_time(6_725_000 as u64) + pub fn descend_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_270_000 picoseconds. + Weight::from_parts(4_358_000, 0) } - pub(crate) fn clear_origin() -> Weight { - Weight::from_ref_time(5_417_000 as u64) + pub fn clear_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_245_000 picoseconds. + Weight::from_parts(3_320_000, 0) } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn report_error() -> Weight { - Weight::from_ref_time(14_868_000 as u64) - .saturating_add(T::DbWeight::get().reads(5 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 26_653_000 picoseconds. + Weight::from_parts(27_139_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) } // Storage: PolkadotXcm AssetTraps (r:1 w:1) - pub(crate) fn claim_asset() -> Weight { - Weight::from_ref_time(20_838_000 as u64) - .saturating_add(T::DbWeight::get().reads(1 as u64)) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm AssetTraps (max_values: None, max_size: None, mode: Measured) + pub fn claim_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `90` + // Estimated: `3555` + // Minimum execution time: 15_478_000 picoseconds. + Weight::from_parts(15_763_000, 3555) + .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(T::DbWeight::get().writes(1)) } - pub(crate) fn trap() -> Weight { - Weight::from_ref_time(5_354_000 as u64) + pub fn trap() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_237_000 picoseconds. + Weight::from_parts(3_314_000, 0) } // Storage: PolkadotXcm VersionNotifyTargets (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn subscribe_version() -> Weight { - Weight::from_ref_time(17_989_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(3 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn subscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `13098` + // Minimum execution time: 29_098_000 picoseconds. + Weight::from_parts(29_368_000, 13098) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(3)) } // Storage: PolkadotXcm VersionNotifyTargets (r:0 w:1) - pub(crate) fn unsubscribe_version() -> Weight { - Weight::from_ref_time(7_304_000 as u64) - .saturating_add(T::DbWeight::get().writes(1 as u64)) + // Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + pub fn unsubscribe_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_253_000 picoseconds. + Weight::from_parts(6_467_000, 0) + .saturating_add(T::DbWeight::get().writes(1)) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn initiate_reserve_withdraw() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 35_061_000 picoseconds. + Weight::from_parts(35_510_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn burn_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_154_000 picoseconds. + Weight::from_parts(6_266_000, 0) + } + pub fn expect_asset() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 4_009_000 picoseconds. + Weight::from_parts(4_088_000, 0) + } + pub fn expect_origin() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_873_000 picoseconds. + Weight::from_parts(3_996_000, 0) + } + pub fn expect_error() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_759_000 picoseconds. + Weight::from_parts(3_820_000, 0) + } + pub fn expect_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_985_000 picoseconds. + Weight::from_parts(4_132_000, 0) } // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - pub(crate) fn initiate_reserve_withdraw() -> Weight { - Weight::from_ref_time(22_875_000 as u64) - .saturating_add(T::DbWeight::get().reads(6 as u64)) - .saturating_add(T::DbWeight::get().writes(2 as u64)) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn query_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 34_686_000 picoseconds. + Weight::from_parts(35_233_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn expect_pallet() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 6_129_000 picoseconds. + Weight::from_parts(6_244_000, 0) + } + // Storage: ParachainInfo ParachainId (r:1 w:0) + // Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + // Storage: PolkadotXcm SupportedVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + // Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + // Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem HostConfiguration (r:1 w:0) + // Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + // Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + pub fn report_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `70` + // Estimated: `11244` + // Minimum execution time: 31_502_000 picoseconds. + Weight::from_parts(32_131_000, 11244) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(2)) + } + pub fn clear_transact_status() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_747_000 picoseconds. + Weight::from_parts(3_832_000, 0) + } + pub fn set_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_825_000 picoseconds. + Weight::from_parts(3_857_000, 0) + } + pub fn clear_topic() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_777_000 picoseconds. + Weight::from_parts(3_868_000, 0) + } + pub fn set_fees_mode() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_710_000 picoseconds. + Weight::from_parts(3_820_000, 0) + } + pub fn unpaid_execution() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 3_876_000 picoseconds. + Weight::from_parts(4_012_000, 0) } } diff --git a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs index 9064389f6f9..3067cb3f507 100644 --- a/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs +++ b/parachains/runtimes/bridge-hubs/bridge-hub-rococo/src/xcm_config.rs @@ -15,12 +15,12 @@ // along with Cumulus. If not, see . use super::{ - AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, - RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, Contains, Everything, Nothing}, }; use pallet_xcm::XcmPassthrough; use parachains_common::xcm_config::{ @@ -30,21 +30,23 @@ use polkadot_parachain::primitives::Sibling; use polkadot_runtime_common::impls::ToAuthor; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, - IsConcrete, LocationInverter, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, - SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, - SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, - WeightInfoBounds, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, + SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, + SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, WeightInfoBounds, + WithComputedOrigin, }; -use xcm_executor::XcmExecutor; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Any; + pub const RelayNetwork: Option = Some(NetworkId::Rococo); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -108,19 +110,68 @@ match_types! { }; } +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) => true, + _ => false, + } + } +} + pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( // Allow local users to buy weight credit. TakeWeightCredit, - // Parent and its exec plurality get free execution. - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - // Allow anything to pay for execution. - AllowTopLevelPaidExecutionFrom, + WithComputedOrigin< + ( + // Allow anything to pay for execution. + AllowTopLevelPaidExecutionFrom, + // Parent and its exec plurality get free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -135,7 +186,7 @@ impl xcm_executor::Config for XcmConfig { type IsReserve = (); /// Only allow teleportation of NativeToken of relay chain. type IsTeleporter = ConcreteNativeAssetFrom; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = WeightInfoBounds< crate::weights::xcm::BridgeHubRococoXcmWeight, @@ -148,6 +199,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; } /// Converts a local signed origin into an XCM multilocation. @@ -158,11 +218,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; // We want to disallow users sending (arbitrary) XCMs from this chain. @@ -180,11 +245,19 @@ impl pallet_xcm::Config for Runtime { RuntimeCall, MaxInstructions, >; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml b/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml index cf4e752313b..f121c34d922 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml +++ b/parachains/runtimes/collectives/collectives-polkadot/Cargo.toml @@ -13,47 +13,47 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" smallvec = "1.10.0" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-alliance = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-alliance = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-collective = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-proxy = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -73,7 +73,7 @@ parachains-common = { path = "../../../common", default-features = false } hex-literal = "0.3.4" [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs b/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs index 9373f1ef8f5..d8c7d4247ac 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/impls.rs @@ -21,7 +21,7 @@ use frame_support::{ }; use pallet_alliance::{ProposalIndex, ProposalProvider}; use sp_std::{marker::PhantomData, prelude::*}; -use xcm::latest::{Fungibility, Junction, NetworkId, Parent}; +use xcm::latest::{Fungibility, Junction, Parent}; type AccountIdOf = ::AccountId; @@ -65,8 +65,8 @@ where ::RuntimeOrigin::signed(temp_account.into()), Box::new(Parent.into()), Box::new( - Junction::AccountId32 { network: NetworkId::Any, id: treasury_acc.into() } - .into() + Junction::AccountId32 { network: None, id: treasury_acc.into() } + .into_location() .into(), ), Box::new((Parent, imbalance).into()), diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs b/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs index 54589fdfc01..b5655be4272 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/lib.rs @@ -103,10 +103,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("collectives"), impl_name: create_runtime_str!("collectives"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 2, + transaction_version: 4, state_version: 0, }; @@ -187,8 +187,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -386,6 +384,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = RootOrExecutiveSimpleMajority; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = weights::cumulus_pallet_xcmp_queue::WeightInfo; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -460,6 +459,7 @@ impl pallet_collective::Config for Runtime { type MaxProposals = ConstU32; type MaxMembers = ConstU32; type DefaultVote = pallet_collective::MoreThanMajorityThenPrimeDefaultVote; + type SetMembersOrigin = EnsureRoot; type WeightInfo = weights::pallet_collective::WeightInfo; } @@ -520,7 +520,7 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, // Collator support. the order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -566,6 +566,9 @@ pub type UncheckedExtrinsic = generic::UncheckedExtrinsic; /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; +// All migrations executed on runtime upgrade as a nested tuple of types implementing +// `OnRuntimeUpgrade`. Included migrations must be idempotent. +type Migrations = (); /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -577,13 +580,6 @@ pub type Executive = frame_executive::Executive< Migrations, >; -// All migrations executed on runtime upgrade as a nested tuple of types implementing `OnRuntimeUpgrade`. -// Included migrations must be idempotent. -type Migrations = ( - pallet_alliance::migration::Migration, - pallet_balances::migration::MigrateToTrackInactive, -); - #[cfg(feature = "runtime-benchmarks")] #[macro_use] extern crate frame_benchmarking; @@ -602,6 +598,7 @@ mod benches { [cumulus_pallet_xcmp_queue, XcmpQueue] [pallet_alliance, Alliance] [pallet_collective, AllianceMotion] + [pallet_xcm, PolkadotXcm] ); } @@ -704,6 +701,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -721,6 +724,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -731,7 +740,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs index 246d167dbfa..0e7cf604304 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/cumulus_pallet_xcmp_queue.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `cumulus_pallet_xcmp_queue` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,17 +47,27 @@ use sp_std::marker::PhantomData; /// Weight functions for `cumulus_pallet_xcmp_queue`. pub struct WeightInfo(PhantomData); impl cumulus_pallet_xcmp_queue::WeightInfo for WeightInfo { - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_u32() -> Weight { - // Minimum execution time: 6_777 nanoseconds. - Weight::from_ref_time(7_035_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_477_000 picoseconds. + Weight::from_parts(5_623_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Storage: XcmpQueue QueueConfig (r:1 w:1) + /// Proof Skipped: XcmpQueue QueueConfig (max_values: Some(1), max_size: None, mode: Measured) fn set_config_with_weight() -> Weight { - // Minimum execution time: 6_871 nanoseconds. - Weight::from_ref_time(7_121_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `1561` + // Minimum execution time: 5_510_000 picoseconds. + Weight::from_parts(5_676_000, 0) + .saturating_add(Weight::from_parts(0, 1561)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs index 465d5634b56..7bd018bd341 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/frame_system.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `frame_system` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -48,51 +49,82 @@ pub struct WeightInfo(PhantomData); impl frame_system::WeightInfo for WeightInfo { /// The range of component `b` is `[0, 3932160]`. fn remark(b: u32, ) -> Weight { - // Minimum execution time: 3_778 nanoseconds. - Weight::from_ref_time(3_855_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_300_000 picoseconds. + Weight::from_parts(2_345_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(510).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(370, 0).saturating_mul(b.into())) } /// The range of component `b` is `[0, 3932160]`. fn remark_with_event(b: u32, ) -> Weight { - // Minimum execution time: 12_934 nanoseconds. - Weight::from_ref_time(13_156_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 8_053_000 picoseconds. + Weight::from_parts(8_155_000, 0) + .saturating_add(Weight::from_parts(0, 0)) // Standard Error: 0 - .saturating_add(Weight::from_ref_time(1_860).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(1_414, 0).saturating_mul(b.into())) } - // Storage: System Digest (r:1 w:1) - // Storage: unknown [0x3a686561707061676573] (r:0 w:1) + /// Storage: System Digest (r:1 w:1) + /// Proof Skipped: System Digest (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: unknown `0x3a686561707061676573` (r:0 w:1) + /// Proof Skipped: unknown `0x3a686561707061676573` (r:0 w:1) fn set_heap_pages() -> Weight { - // Minimum execution time: 7_743 nanoseconds. - Weight::from_ref_time(8_055_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `1485` + // Minimum execution time: 4_456_000 picoseconds. + Weight::from_parts(4_609_000, 0) + .saturating_add(Weight::from_parts(0, 1485)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn set_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_937 nanoseconds. - Weight::from_ref_time(3_997_000) - // Standard Error: 2_287 - .saturating_add(Weight::from_ref_time(622_508).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_370_000 picoseconds. + Weight::from_parts(2_403_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1_643 + .saturating_add(Weight::from_parts(676_881, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `i` is `[0, 1000]`. fn kill_storage(i: u32, ) -> Weight { - // Minimum execution time: 3_888 nanoseconds. - Weight::from_ref_time(3_983_000) - // Standard Error: 1_138 - .saturating_add(Weight::from_ref_time(454_438).saturating_mul(i.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_342_000 picoseconds. + Weight::from_parts(2_394_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 917 + .saturating_add(Weight::from_parts(502_661, 0).saturating_mul(i.into())) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(i.into()))) } - // Storage: Skipped Metadata (r:0 w:0) + /// Storage: Skipped Metadata (r:0 w:0) + /// Proof Skipped: Skipped Metadata (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[0, 1000]`. fn kill_prefix(p: u32, ) -> Weight { - // Minimum execution time: 5_459 nanoseconds. - Weight::from_ref_time(5_641_000) - // Standard Error: 1_037 - .saturating_add(Weight::from_ref_time(965_492).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `68 + p * (69 ±0)` + // Estimated: `69 + p * (70 ±0)` + // Minimum execution time: 4_461_000 picoseconds. + Weight::from_parts(4_561_000, 0) + .saturating_add(Weight::from_parts(0, 69)) + // Standard Error: 1_428 + .saturating_add(Weight::from_parts(1_016_381, 0).saturating_mul(p.into())) + .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 70).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs index bf736022ca7..76fbc081bc5 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/mod.rs @@ -11,6 +11,7 @@ pub mod pallet_proxy; pub mod pallet_session; pub mod pallet_timestamp; pub mod pallet_utility; +pub mod pallet_xcm; pub mod paritydb_weights; pub mod rocksdb_weights; diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs index f3d31cbadcd..f8bf9ca73dd 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_alliance.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_alliance` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,279 +47,445 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_alliance`. pub struct WeightInfo(PhantomData); impl pallet_alliance::WeightInfo for WeightInfo { - // Storage: Alliance Members (r:1 w:0) - // Storage: AllianceMotion ProposalOf (r:1 w:1) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalCount (r:1 w:1) - // Storage: AllianceMotion Voting (r:0 w:1) + /// Storage: Alliance Members (r:1 w:0) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion ProposalOf (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalCount (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Voting (r:0 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { - // Minimum execution time: 35_162 nanoseconds. - Weight::from_ref_time(36_412_712) - // Standard Error: 71 - .saturating_add(Weight::from_ref_time(381).saturating_mul(b.into())) - // Standard Error: 745 - .saturating_add(Weight::from_ref_time(22_365).saturating_mul(m.into())) - // Standard Error: 735 - .saturating_add(Weight::from_ref_time(104_171).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `439 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `14703 + m * (128 ±0) + p * (144 ±0)` + // Minimum execution time: 29_793_000 picoseconds. + Weight::from_parts(31_622_009, 0) + .saturating_add(Weight::from_parts(0, 14703)) + // Standard Error: 59 + .saturating_add(Weight::from_parts(194, 0).saturating_mul(b.into())) + // Standard Error: 626 + .saturating_add(Weight::from_parts(16_277, 0).saturating_mul(m.into())) + // Standard Error: 618 + .saturating_add(Weight::from_parts(115_342, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(Weight::from_parts(0, 128).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 144).saturating_mul(p.into())) } - // Storage: Alliance Members (r:1 w:0) - // Storage: AllianceMotion Voting (r:1 w:1) + /// Storage: Alliance Members (r:1 w:0) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { - // Minimum execution time: 31_249 nanoseconds. - Weight::from_ref_time(32_188_065) - // Standard Error: 832 - .saturating_add(Weight::from_ref_time(54_591).saturating_mul(m.into())) + // Proof Size summary in bytes: + // Measured: `868 + m * (64 ±0)` + // Estimated: `11008 + m * (64 ±0)` + // Minimum execution time: 24_860_000 picoseconds. + Weight::from_parts(25_540_583, 0) + .saturating_add(Weight::from_parts(0, 11008)) + // Standard Error: 1_049 + .saturating_add(Weight::from_parts(44_450, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - - // not used - fn veto(_p: u32, ) -> Weight { - Weight::from_ref_time(100_000_000) - } - - // Storage: Alliance Members (r:1 w:0) - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Storage: Alliance Members (r:1 w:0) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { - // Minimum execution time: 40_517 nanoseconds. - Weight::from_ref_time(37_804_735) - // Standard Error: 724 - .saturating_add(Weight::from_ref_time(46_629).saturating_mul(m.into())) - // Standard Error: 706 - .saturating_add(Weight::from_ref_time(96_011).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `312 + m * (96 ±0) + p * (36 ±0)` + // Estimated: `14519 + m * (388 ±0) + p * (144 ±0)` + // Minimum execution time: 35_120_000 picoseconds. + Weight::from_parts(33_274_472, 0) + .saturating_add(Weight::from_parts(0, 14519)) + // Standard Error: 1_030 + .saturating_add(Weight::from_parts(41_853, 0).saturating_mul(m.into())) + // Standard Error: 1_004 + .saturating_add(Weight::from_parts(111_626, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 388).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 144).saturating_mul(p.into())) } - // Storage: Alliance Members (r:1 w:0) - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion ProposalOf (r:1 w:1) - // Storage: AllianceMotion Proposals (r:1 w:1) + /// Storage: Alliance Members (r:1 w:0) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. - fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { - // Minimum execution time: 50_587 nanoseconds. - Weight::from_ref_time(49_483_170) - // Standard Error: 79 - .saturating_add(Weight::from_ref_time(12).saturating_mul(b.into())) - // Standard Error: 845 - .saturating_add(Weight::from_ref_time(46_955).saturating_mul(m.into())) - // Standard Error: 824 - .saturating_add(Weight::from_ref_time(99_511).saturating_mul(p.into())) + fn close_early_approved(_b: u32, m: u32, p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `762 + m * (96 ±0) + p * (41 ±0)` + // Estimated: `19732 + m * (388 ±0) + p * (160 ±0)` + // Minimum execution time: 47_135_000 picoseconds. + Weight::from_parts(42_191_348, 0) + .saturating_add(Weight::from_parts(0, 19732)) + // Standard Error: 4_449 + .saturating_add(Weight::from_parts(76_548, 0).saturating_mul(m.into())) + // Standard Error: 4_337 + .saturating_add(Weight::from_parts(143_406, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 388).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 160).saturating_mul(p.into())) } - // Storage: Alliance Members (r:1 w:0) - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Prime (r:1 w:0) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalOf (r:0 w:1) - // Storage: Alliance Rule (r:0 w:1) + /// Storage: Alliance Members (r:1 w:0) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:1 w:0) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Alliance Rule (r:0 w:1) + /// Proof: Alliance Rule (max_values: Some(1), max_size: Some(87), added: 582, mode: MaxEncodedLen) /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { - // Minimum execution time: 47_785 nanoseconds. - Weight::from_ref_time(49_064_492) - // Standard Error: 3_243 - .saturating_add(Weight::from_ref_time(96_267).saturating_mul(m.into())) - // Standard Error: 3_203 - .saturating_add(Weight::from_ref_time(121_736).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `518 + m * (96 ±0) + p * (41 ±0)` + // Estimated: `19135 + m * (509 ±0) + p * (203 ±0)` + // Minimum execution time: 45_329_000 picoseconds. + Weight::from_parts(46_859_108, 0) + .saturating_add(Weight::from_parts(0, 19135)) + // Standard Error: 3_831 + .saturating_add(Weight::from_parts(100_587, 0).saturating_mul(m.into())) + // Standard Error: 3_785 + .saturating_add(Weight::from_parts(134_469, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(6)) .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(Weight::from_parts(0, 509).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 203).saturating_mul(p.into())) } - // Storage: Alliance Members (r:1 w:0) - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Prime (r:1 w:0) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Storage: Alliance Members (r:1 w:0) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:1 w:0) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[1, 1024]`. /// The range of component `m` is `[5, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(_b: u32, m: u32, p: u32, ) -> Weight { - // Minimum execution time: 41_807 nanoseconds. - Weight::from_ref_time(40_124_977) - // Standard Error: 665 - .saturating_add(Weight::from_ref_time(40_824).saturating_mul(m.into())) - // Standard Error: 641 - .saturating_add(Weight::from_ref_time(89_499).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `417 + m * (96 ±0) + p * (36 ±0)` + // Estimated: `16746 + m * (480 ±0) + p * (180 ±0)` + // Minimum execution time: 36_795_000 picoseconds. + Weight::from_parts(35_568_715, 0) + .saturating_add(Weight::from_parts(0, 16746)) + // Standard Error: 630 + .saturating_add(Weight::from_parts(42_253, 0).saturating_mul(m.into())) + // Standard Error: 607 + .saturating_add(Weight::from_parts(107_080, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 480).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 180).saturating_mul(p.into())) } - // Storage: Alliance Members (r:2 w:2) - // Storage: AllianceMotion Members (r:1 w:1) + /// Storage: Alliance Members (r:2 w:2) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Members (r:1 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `m` is `[1, 100]`. /// The range of component `z` is `[0, 100]`. fn init_members(m: u32, z: u32, ) -> Weight { - // Minimum execution time: 37_806 nanoseconds. - Weight::from_ref_time(26_654_829) - // Standard Error: 571 - .saturating_add(Weight::from_ref_time(131_979).saturating_mul(m.into())) - // Standard Error: 564 - .saturating_add(Weight::from_ref_time(114_315).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `12` + // Estimated: `13859` + // Minimum execution time: 30_057_000 picoseconds. + Weight::from_parts(19_584_887, 0) + .saturating_add(Weight::from_parts(0, 13859)) + // Standard Error: 657 + .saturating_add(Weight::from_parts(127_220, 0).saturating_mul(m.into())) + // Standard Error: 649 + .saturating_add(Weight::from_parts(111_719, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) } - // Storage: Alliance Members (r:2 w:2) - // Storage: AllianceMotion Proposals (r:1 w:0) - // Storage: Alliance DepositOf (r:101 w:50) - // Storage: System Account (r:50 w:50) - // Storage: AllianceMotion Members (r:0 w:1) - // Storage: AllianceMotion Prime (r:0 w:1) + /// Storage: Alliance Members (r:2 w:2) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Proposals (r:1 w:0) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Alliance DepositOf (r:200 w:50) + /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) + /// Storage: System Account (r:50 w:50) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: AllianceMotion Members (r:0 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:0 w:1) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `x` is `[1, 100]`. /// The range of component `y` is `[0, 100]`. /// The range of component `z` is `[0, 50]`. fn disband(x: u32, y: u32, z: u32, ) -> Weight { - // Minimum execution time: 226_805 nanoseconds. - Weight::from_ref_time(228_436_000) - // Standard Error: 18_416 - .saturating_add(Weight::from_ref_time(484_425).saturating_mul(x.into())) - // Standard Error: 18_327 - .saturating_add(Weight::from_ref_time(384_513).saturating_mul(y.into())) - // Standard Error: 36_622 - .saturating_add(Weight::from_ref_time(8_974_720).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `0 + x * (52 ±0) + y * (53 ±0) + z * (250 ±0)` + // Estimated: `35354 + x * (2590 ±0) + y * (2590 ±0) + z * (3104 ±1)` + // Minimum execution time: 257_465_000 picoseconds. + Weight::from_parts(258_993_000, 0) + .saturating_add(Weight::from_parts(0, 35354)) + // Standard Error: 22_094 + .saturating_add(Weight::from_parts(469_539, 0).saturating_mul(x.into())) + // Standard Error: 21_987 + .saturating_add(Weight::from_parts(478_507, 0).saturating_mul(y.into())) + // Standard Error: 43_935 + .saturating_add(Weight::from_parts(10_541_803, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(x.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(y.into()))) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(z.into()))) .saturating_add(T::DbWeight::get().writes(4)) .saturating_add(T::DbWeight::get().writes((2_u64).saturating_mul(z.into()))) + .saturating_add(Weight::from_parts(0, 2590).saturating_mul(x.into())) + .saturating_add(Weight::from_parts(0, 2590).saturating_mul(y.into())) + .saturating_add(Weight::from_parts(0, 3104).saturating_mul(z.into())) } - // Storage: Alliance Rule (r:0 w:1) + /// Storage: Alliance Rule (r:0 w:1) + /// Proof: Alliance Rule (max_values: Some(1), max_size: Some(87), added: 582, mode: MaxEncodedLen) fn set_rule() -> Weight { - // Minimum execution time: 16_471 nanoseconds. - Weight::from_ref_time(16_726_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_973_000 picoseconds. + Weight::from_parts(10_247_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Alliance Announcements (r:1 w:1) + /// Storage: Alliance Announcements (r:1 w:1) + /// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen) fn announce() -> Weight { - // Minimum execution time: 17_782 nanoseconds. - Weight::from_ref_time(18_057_000) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `10187` + // Minimum execution time: 12_510_000 picoseconds. + Weight::from_parts(12_659_000, 0) + .saturating_add(Weight::from_parts(0, 10187)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Alliance Announcements (r:1 w:1) + /// Storage: Alliance Announcements (r:1 w:1) + /// Proof: Alliance Announcements (max_values: Some(1), max_size: Some(8702), added: 9197, mode: MaxEncodedLen) fn remove_announcement() -> Weight { - // Minimum execution time: 20_072 nanoseconds. - Weight::from_ref_time(20_395_000) + // Proof Size summary in bytes: + // Measured: `149` + // Estimated: `10187` + // Minimum execution time: 13_365_000 picoseconds. + Weight::from_parts(13_575_000, 0) + .saturating_add(Weight::from_parts(0, 10187)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Alliance Members (r:3 w:1) - // Storage: Alliance UnscrupulousAccounts (r:1 w:0) - // Storage: System Account (r:1 w:1) - // Storage: Alliance DepositOf (r:0 w:1) + /// Storage: Alliance Members (r:3 w:1) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: Alliance UnscrupulousAccounts (r:1 w:0) + /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: Alliance DepositOf (r:0 w:1) + /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) fn join_alliance() -> Weight { - // Minimum execution time: 47_327 nanoseconds. - Weight::from_ref_time(47_908_000) + // Proof Size summary in bytes: + // Measured: `294` + // Estimated: `26328` + // Minimum execution time: 40_044_000 picoseconds. + Weight::from_parts(41_623_000, 0) + .saturating_add(Weight::from_parts(0, 26328)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) } - // Storage: Alliance Members (r:3 w:1) - // Storage: Alliance UnscrupulousAccounts (r:1 w:0) + /// Storage: Alliance Members (r:3 w:1) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: Alliance UnscrupulousAccounts (r:1 w:0) + /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) fn nominate_ally() -> Weight { - // Minimum execution time: 34_263 nanoseconds. - Weight::from_ref_time(34_687_000) + // Proof Size summary in bytes: + // Measured: `193` + // Estimated: `22735` + // Minimum execution time: 28_166_000 picoseconds. + Weight::from_parts(28_756_000, 0) + .saturating_add(Weight::from_parts(0, 22735)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Alliance Members (r:2 w:2) - // Storage: AllianceMotion Proposals (r:1 w:0) - // Storage: AllianceMotion Members (r:0 w:1) - // Storage: AllianceMotion Prime (r:0 w:1) + /// Storage: Alliance Members (r:2 w:2) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Proposals (r:1 w:0) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:0 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:0 w:1) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) fn elevate_ally() -> Weight { - // Minimum execution time: 29_783 nanoseconds. - Weight::from_ref_time(30_668_000) + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `14555` + // Minimum execution time: 25_759_000 picoseconds. + Weight::from_parts(26_083_000, 0) + .saturating_add(Weight::from_parts(0, 14555)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Alliance Members (r:4 w:2) - // Storage: AllianceMotion Proposals (r:1 w:0) - // Storage: AllianceMotion Members (r:0 w:1) - // Storage: AllianceMotion Prime (r:0 w:1) - // Storage: Alliance RetiringMembers (r:0 w:1) + /// Storage: Alliance Members (r:4 w:2) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Proposals (r:1 w:0) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:0 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:0 w:1) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Alliance RetiringMembers (r:0 w:1) + /// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) fn give_retirement_notice() -> Weight { - // Minimum execution time: 37_967 nanoseconds. - Weight::from_ref_time(38_605_000) + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `25927` + // Minimum execution time: 32_603_000 picoseconds. + Weight::from_parts(33_091_000, 0) + .saturating_add(Weight::from_parts(0, 25927)) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(5)) } - // Storage: Alliance RetiringMembers (r:1 w:1) - // Storage: Alliance Members (r:1 w:1) - // Storage: Alliance DepositOf (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Alliance RetiringMembers (r:1 w:1) + /// Proof: Alliance RetiringMembers (max_values: None, max_size: Some(52), added: 2527, mode: MaxEncodedLen) + /// Storage: Alliance Members (r:1 w:1) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: Alliance DepositOf (r:1 w:1) + /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn retire() -> Weight { - // Minimum execution time: 40_362 nanoseconds. - Weight::from_ref_time(41_038_000) + // Proof Size summary in bytes: + // Measured: `517` + // Estimated: `17315` + // Minimum execution time: 36_169_000 picoseconds. + Weight::from_parts(36_746_000, 0) + .saturating_add(Weight::from_parts(0, 17315)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: Alliance Members (r:3 w:1) - // Storage: AllianceMotion Proposals (r:1 w:0) - // Storage: Alliance DepositOf (r:1 w:1) - // Storage: System Account (r:2 w:2) - // Storage: ParachainInfo ParachainId (r:1 w:0) - // Storage: PolkadotXcm SupportedVersion (r:1 w:0) - // Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) - // Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) - // Storage: ParachainSystem HostConfiguration (r:1 w:0) - // Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) - // Storage: AllianceMotion Members (r:0 w:1) - // Storage: AllianceMotion Prime (r:0 w:1) + /// Storage: Alliance Members (r:3 w:1) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Proposals (r:1 w:0) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: Alliance DepositOf (r:1 w:1) + /// Proof: Alliance DepositOf (max_values: None, max_size: Some(64), added: 2539, mode: MaxEncodedLen) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:0 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:0 w:1) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) fn kick_member() -> Weight { - // Minimum execution time: 118_050 nanoseconds. - Weight::from_ref_time(119_080_000) + // Proof Size summary in bytes: + // Measured: `622` + // Estimated: `45128` + // Minimum execution time: 127_845_000 picoseconds. + Weight::from_parts(129_248_000, 0) + .saturating_add(Weight::from_parts(0, 45128)) .saturating_add(T::DbWeight::get().reads(13)) .saturating_add(T::DbWeight::get().writes(8)) } - // Storage: Alliance UnscrupulousAccounts (r:1 w:1) - // Storage: Alliance UnscrupulousWebsites (r:1 w:1) + /// Storage: Alliance UnscrupulousAccounts (r:1 w:1) + /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Alliance UnscrupulousWebsites (r:1 w:1) + /// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. fn add_unscrupulous_items(n: u32, l: u32, ) -> Weight { - // Minimum execution time: 14_919 nanoseconds. - Weight::from_ref_time(15_135_000) - // Standard Error: 3_921 - .saturating_add(Weight::from_ref_time(1_221_966).saturating_mul(n.into())) - // Standard Error: 1_535 - .saturating_add(Weight::from_ref_time(80_157).saturating_mul(l.into())) + // Proof Size summary in bytes: + // Measured: `76` + // Estimated: `31874` + // Minimum execution time: 8_183_000 picoseconds. + Weight::from_parts(8_256_000, 0) + .saturating_add(Weight::from_parts(0, 31874)) + // Standard Error: 2_929 + .saturating_add(Weight::from_parts(1_444_558, 0).saturating_mul(n.into())) + // Standard Error: 1_147 + .saturating_add(Weight::from_parts(68_146, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Alliance UnscrupulousAccounts (r:1 w:1) - // Storage: Alliance UnscrupulousWebsites (r:1 w:1) + /// Storage: Alliance UnscrupulousAccounts (r:1 w:1) + /// Proof: Alliance UnscrupulousAccounts (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Alliance UnscrupulousWebsites (r:1 w:1) + /// Proof: Alliance UnscrupulousWebsites (max_values: Some(1), max_size: Some(25702), added: 26197, mode: MaxEncodedLen) /// The range of component `n` is `[0, 100]`. /// The range of component `l` is `[0, 255]`. fn remove_unscrupulous_items(n: u32, l: u32, ) -> Weight { - // Minimum execution time: 14_606 nanoseconds. - Weight::from_ref_time(14_847_000) - // Standard Error: 218_175 - .saturating_add(Weight::from_ref_time(15_210_084).saturating_mul(n.into())) - // Standard Error: 85_447 - .saturating_add(Weight::from_ref_time(717_495).saturating_mul(l.into())) + // Proof Size summary in bytes: + // Measured: `0 + n * (289 ±0) + l * (100 ±0)` + // Estimated: `31874` + // Minimum execution time: 7_982_000 picoseconds. + Weight::from_parts(8_084_000, 0) + .saturating_add(Weight::from_parts(0, 31874)) + // Standard Error: 185_716 + .saturating_add(Weight::from_parts(16_937_748, 0).saturating_mul(n.into())) + // Standard Error: 72_734 + .saturating_add(Weight::from_parts(291_993, 0).saturating_mul(l.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Alliance Members (r:3 w:2) - // Storage: AllianceMotion Proposals (r:1 w:0) - // Storage: AllianceMotion Members (r:0 w:1) - // Storage: AllianceMotion Prime (r:0 w:1) + /// Storage: Alliance Members (r:3 w:2) + /// Proof: Alliance Members (max_values: None, max_size: Some(3211), added: 5686, mode: MaxEncodedLen) + /// Storage: AllianceMotion Proposals (r:1 w:0) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:0 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:0 w:1) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) fn abdicate_fellow_status() -> Weight { - // Minimum execution time: 36_974 nanoseconds. - Weight::from_ref_time(37_428_000) + // Proof Size summary in bytes: + // Measured: `236` + // Estimated: `20241` + // Minimum execution time: 31_916_000 picoseconds. + Weight::from_parts(32_301_000, 0) + .saturating_add(Weight::from_parts(0, 20241)) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs index 5865c971833..edeea7264bc 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_balances.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_balances` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,52 +47,87 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_balances`. pub struct WeightInfo(PhantomData); impl pallet_balances::WeightInfo for WeightInfo { - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer() -> Weight { - // Minimum execution time: 42_297 nanoseconds. - Weight::from_ref_time(42_843_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 35_300_000 picoseconds. + Weight::from_parts(35_618_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_keep_alive() -> Weight { - // Minimum execution time: 32_222 nanoseconds. - Weight::from_ref_time(32_673_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 26_091_000 picoseconds. + Weight::from_parts(26_666_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_creating() -> Weight { - // Minimum execution time: 23_434 nanoseconds. - Weight::from_ref_time(23_713_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 15_271_000 picoseconds. + Weight::from_parts(15_835_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn set_balance_killing() -> Weight { - // Minimum execution time: 25_916 nanoseconds. - Weight::from_ref_time(26_539_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 18_684_000 picoseconds. + Weight::from_parts(19_146_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:2 w:2) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_transfer() -> Weight { - // Minimum execution time: 41_236 nanoseconds. - Weight::from_ref_time(41_847_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `6196` + // Minimum execution time: 36_588_000 picoseconds. + Weight::from_parts(37_315_000, 0) + .saturating_add(Weight::from_parts(0, 6196)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn transfer_all() -> Weight { - // Minimum execution time: 37_002 nanoseconds. - Weight::from_ref_time(39_357_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `3593` + // Minimum execution time: 32_278_000 picoseconds. + Weight::from_parts(32_546_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: System Account (r:1 w:1) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) fn force_unreserve() -> Weight { - // Minimum execution time: 21_574 nanoseconds. - Weight::from_ref_time(21_938_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `3593` + // Minimum execution time: 14_817_000 picoseconds. + Weight::from_parts(15_115_000, 0) + .saturating_add(Weight::from_parts(0, 3593)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs index dfd2e0c0ec8..fb14fb9f956 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collator_selection.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_collator_selection` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,79 +47,131 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collator_selection`. pub struct WeightInfo(PhantomData); impl pallet_collator_selection::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Storage: Session NextKeys (r:100 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection Invulnerables (r:0 w:1) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) /// The range of component `b` is `[1, 100]`. fn set_invulnerables(b: u32, ) -> Weight { - // Minimum execution time: 20_694 nanoseconds. - Weight::from_ref_time(22_134_693) - // Standard Error: 3_321 - .saturating_add(Weight::from_ref_time(2_273_097).saturating_mul(b.into())) + // Proof Size summary in bytes: + // Measured: `178 + b * (78 ±0)` + // Estimated: `1168 + b * (2554 ±0)` + // Minimum execution time: 14_884_000 picoseconds. + Weight::from_parts(14_947_157, 0) + .saturating_add(Weight::from_parts(0, 1168)) + // Standard Error: 4_169 + .saturating_add(Weight::from_parts(2_615_559, 0).saturating_mul(b.into())) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(b.into()))) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 2554).saturating_mul(b.into())) } - // Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Storage: CollatorSelection DesiredCandidates (r:0 w:1) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) fn set_desired_candidates() -> Weight { - // Minimum execution time: 13_127 nanoseconds. - Weight::from_ref_time(13_487_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_057_000 picoseconds. + Weight::from_parts(7_226_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Storage: CollatorSelection CandidacyBond (r:0 w:1) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) fn set_candidacy_bond() -> Weight { - // Minimum execution time: 13_379 nanoseconds. - Weight::from_ref_time(13_713_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_216_000 picoseconds. + Weight::from_parts(7_502_000, 0) + .saturating_add(Weight::from_parts(0, 0)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection DesiredCandidates (r:1 w:0) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: Session NextKeys (r:1 w:0) - // Storage: CollatorSelection CandidacyBond (r:1 w:0) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection DesiredCandidates (r:1 w:0) + /// Proof: CollatorSelection DesiredCandidates (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: Session NextKeys (r:1 w:0) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: CollatorSelection CandidacyBond (r:1 w:0) + /// Proof: CollatorSelection CandidacyBond (max_values: Some(1), max_size: Some(16), added: 511, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[1, 999]`. fn register_as_candidate(c: u32, ) -> Weight { - // Minimum execution time: 44_894 nanoseconds. - Weight::from_ref_time(40_442_989) - // Standard Error: 1_079 - .saturating_add(Weight::from_ref_time(135_610).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `1108 + c * (48 ±0)` + // Estimated: `61671 + c * (49 ±0)` + // Minimum execution time: 38_806_000 picoseconds. + Weight::from_parts(31_477_823, 0) + .saturating_add(Weight::from_parts(0, 61671)) + // Standard Error: 1_220 + .saturating_add(Weight::from_parts(108_369, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(2)) + .saturating_add(Weight::from_parts(0, 49).saturating_mul(c.into())) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:1) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) /// The range of component `c` is `[6, 1000]`. fn leave_intent(c: u32, ) -> Weight { - // Minimum execution time: 33_709 nanoseconds. - Weight::from_ref_time(27_474_927) - // Standard Error: 1_089 - .saturating_add(Weight::from_ref_time(128_421).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `452 + c * (48 ±0)` + // Estimated: `49487` + // Minimum execution time: 29_463_000 picoseconds. + Weight::from_parts(19_105_316, 0) + .saturating_add(Weight::from_parts(0, 49487)) + // Standard Error: 1_307 + .saturating_add(Weight::from_parts(106_299, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: System Account (r:2 w:2) - // Storage: System BlockWeight (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Storage: System Account (r:2 w:2) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:0 w:1) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) fn note_author() -> Weight { - // Minimum execution time: 29_870 nanoseconds. - Weight::from_ref_time(31_130_000) + // Proof Size summary in bytes: + // Measured: `103` + // Estimated: `7729` + // Minimum execution time: 28_319_000 picoseconds. + Weight::from_parts(28_880_000, 0) + .saturating_add(Weight::from_parts(0, 7729)) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(4)) } - // Storage: CollatorSelection Candidates (r:1 w:1) - // Storage: CollatorSelection LastAuthoredBlock (r:1000 w:1) - // Storage: System Account (r:1 w:1) - // Storage: CollatorSelection Invulnerables (r:1 w:0) - // Storage: System BlockWeight (r:1 w:1) + /// Storage: CollatorSelection Candidates (r:1 w:0) + /// Proof: CollatorSelection Candidates (max_values: Some(1), max_size: Some(48002), added: 48497, mode: MaxEncodedLen) + /// Storage: CollatorSelection LastAuthoredBlock (r:999 w:0) + /// Proof: CollatorSelection LastAuthoredBlock (max_values: None, max_size: Some(44), added: 2519, mode: MaxEncodedLen) + /// Storage: CollatorSelection Invulnerables (r:1 w:0) + /// Proof: CollatorSelection Invulnerables (max_values: Some(1), max_size: Some(3202), added: 3697, mode: MaxEncodedLen) + /// Storage: System BlockWeight (r:1 w:1) + /// Proof: System BlockWeight (max_values: Some(1), max_size: Some(48), added: 543, mode: MaxEncodedLen) + /// Storage: System Account (r:995 w:995) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `r` is `[1, 1000]`. /// The range of component `c` is `[1, 1000]`. - fn new_session(_r: u32, c: u32, ) -> Weight { - // Minimum execution time: 19_278 nanoseconds. - Weight::from_ref_time(19_499_000) - // Standard Error: 765_150 - .saturating_add(Weight::from_ref_time(27_573_334).saturating_mul(c.into())) + fn new_session(r: u32, c: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `22721 + r * (116 ±0) + c * (97 ±0)` + // Estimated: `56697 + r * (2602 ±0) + c * (2520 ±0)` + // Minimum execution time: 17_111_000 picoseconds. + Weight::from_parts(17_332_000, 0) + .saturating_add(Weight::from_parts(0, 56697)) + // Standard Error: 800_597 + .saturating_add(Weight::from_parts(29_089_719, 0).saturating_mul(c.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(c.into()))) .saturating_add(T::DbWeight::get().writes(1)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(c.into()))) + .saturating_add(Weight::from_parts(0, 2602).saturating_mul(r.into())) + .saturating_add(Weight::from_parts(0, 2520).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs index dfcd01c0e4c..5e7f67bea35 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_collective.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_collective` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,163 +47,256 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_collective`. pub struct WeightInfo(PhantomData); impl pallet_collective::WeightInfo for WeightInfo { - // Storage: AllianceMotion Members (r:1 w:1) - // Storage: AllianceMotion Proposals (r:1 w:0) - // Storage: AllianceMotion Prime (r:0 w:1) - // Storage: AllianceMotion Voting (r:100 w:100) + /// Storage: AllianceMotion Members (r:1 w:1) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:0) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Voting (r:100 w:100) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:0 w:1) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `m` is `[0, 100]`. /// The range of component `n` is `[0, 100]`. /// The range of component `p` is `[0, 100]`. fn set_members(m: u32, _n: u32, p: u32, ) -> Weight { - // Minimum execution time: 17_445 nanoseconds. - Weight::from_ref_time(17_574_000) - // Standard Error: 65_394 - .saturating_add(Weight::from_ref_time(5_265_879).saturating_mul(m.into())) - // Standard Error: 65_394 - .saturating_add(Weight::from_ref_time(7_444_558).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `0 + m * (3232 ±0) + p * (3190 ±0)` + // Estimated: `18748 + m * (7799 ±23) + p * (10110 ±23)` + // Minimum execution time: 16_280_000 picoseconds. + Weight::from_parts(16_431_000, 0) + .saturating_add(Weight::from_parts(0, 18748)) + // Standard Error: 67_432 + .saturating_add(Weight::from_parts(5_382_109, 0).saturating_mul(m.into())) + // Standard Error: 67_432 + .saturating_add(Weight::from_parts(8_022_628, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().reads((1_u64).saturating_mul(p.into()))) .saturating_add(T::DbWeight::get().writes(2)) .saturating_add(T::DbWeight::get().writes((1_u64).saturating_mul(p.into()))) + .saturating_add(Weight::from_parts(0, 7799).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 10110).saturating_mul(p.into())) } - // Storage: AllianceMotion Members (r:1 w:0) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn execute(b: u32, m: u32, ) -> Weight { - // Minimum execution time: 20_317 nanoseconds. - Weight::from_ref_time(19_615_265) - // Standard Error: 27 - .saturating_add(Weight::from_ref_time(2_017).saturating_mul(b.into())) - // Standard Error: 287 - .saturating_add(Weight::from_ref_time(14_147).saturating_mul(m.into())) + // Proof Size summary in bytes: + // Measured: `32 + m * (32 ±0)` + // Estimated: `1518 + m * (32 ±0)` + // Minimum execution time: 15_340_000 picoseconds. + Weight::from_parts(14_971_140, 0) + .saturating_add(Weight::from_parts(0, 1518)) + // Standard Error: 24 + .saturating_add(Weight::from_parts(1_237, 0).saturating_mul(b.into())) + // Standard Error: 252 + .saturating_add(Weight::from_parts(13_257, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(1)) + .saturating_add(Weight::from_parts(0, 32).saturating_mul(m.into())) } - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion ProposalOf (r:1 w:0) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:1 w:0) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[1, 100]`. fn propose_execute(b: u32, m: u32, ) -> Weight { - // Minimum execution time: 23_080 nanoseconds. - Weight::from_ref_time(21_846_487) - // Standard Error: 28 - .saturating_add(Weight::from_ref_time(1_944).saturating_mul(b.into())) - // Standard Error: 297 - .saturating_add(Weight::from_ref_time(24_113).saturating_mul(m.into())) + // Proof Size summary in bytes: + // Measured: `32 + m * (32 ±0)` + // Estimated: `5016 + m * (64 ±0)` + // Minimum execution time: 18_083_000 picoseconds. + Weight::from_parts(17_322_823, 0) + .saturating_add(Weight::from_parts(0, 5016)) + // Standard Error: 26 + .saturating_add(Weight::from_parts(1_248, 0).saturating_mul(b.into())) + // Standard Error: 272 + .saturating_add(Weight::from_parts(22_423, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) + .saturating_add(Weight::from_parts(0, 64).saturating_mul(m.into())) } - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion ProposalOf (r:1 w:1) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalCount (r:1 w:1) - // Storage: AllianceMotion Voting (r:0 w:1) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalCount (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalCount (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Voting (r:0 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[2, 100]`. /// The range of component `p` is `[1, 100]`. fn propose_proposed(b: u32, m: u32, p: u32, ) -> Weight { - // Minimum execution time: 29_006 nanoseconds. - Weight::from_ref_time(30_263_788) - // Standard Error: 89 - .saturating_add(Weight::from_ref_time(2_887).saturating_mul(b.into())) - // Standard Error: 935 - .saturating_add(Weight::from_ref_time(16_046).saturating_mul(m.into())) - // Standard Error: 923 - .saturating_add(Weight::from_ref_time(110_411).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `322 + m * (32 ±0) + p * (36 ±0)` + // Estimated: `9165 + m * (165 ±0) + p * (180 ±0)` + // Minimum execution time: 24_019_000 picoseconds. + Weight::from_parts(26_316_662, 0) + .saturating_add(Weight::from_parts(0, 9165)) + // Standard Error: 77 + .saturating_add(Weight::from_parts(2_166, 0).saturating_mul(b.into())) + // Standard Error: 810 + .saturating_add(Weight::from_parts(20_438, 0).saturating_mul(m.into())) + // Standard Error: 799 + .saturating_add(Weight::from_parts(122_504, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(4)) + .saturating_add(Weight::from_parts(0, 165).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 180).saturating_mul(p.into())) } - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Voting (r:1 w:1) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) /// The range of component `m` is `[5, 100]`. fn vote(m: u32, ) -> Weight { - // Minimum execution time: 28_028 nanoseconds. - Weight::from_ref_time(29_008_901) - // Standard Error: 442 - .saturating_add(Weight::from_ref_time(39_227).saturating_mul(m.into())) + // Proof Size summary in bytes: + // Measured: `771 + m * (64 ±0)` + // Estimated: `6490 + m * (128 ±0)` + // Minimum execution time: 22_516_000 picoseconds. + Weight::from_parts(23_803_657, 0) + .saturating_add(Weight::from_parts(0, 6490)) + // Standard Error: 1_968 + .saturating_add(Weight::from_parts(38_988, 0).saturating_mul(m.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) + .saturating_add(Weight::from_parts(0, 128).saturating_mul(m.into())) } - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_disapproved(m: u32, p: u32, ) -> Weight { - // Minimum execution time: 30_789 nanoseconds. - Weight::from_ref_time(32_883_315) - // Standard Error: 927 - .saturating_add(Weight::from_ref_time(20_146).saturating_mul(m.into())) - // Standard Error: 904 - .saturating_add(Weight::from_ref_time(100_366).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `360 + m * (64 ±0) + p * (36 ±0)` + // Estimated: `7795 + m * (260 ±0) + p * (144 ±0)` + // Minimum execution time: 26_841_000 picoseconds. + Weight::from_parts(28_166_692, 0) + .saturating_add(Weight::from_parts(0, 7795)) + // Standard Error: 657 + .saturating_add(Weight::from_parts(20_102, 0).saturating_mul(m.into())) + // Standard Error: 641 + .saturating_add(Weight::from_parts(113_841, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 260).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 144).saturating_mul(p.into())) } - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion ProposalOf (r:1 w:1) - // Storage: AllianceMotion Proposals (r:1 w:1) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_early_approved(b: u32, m: u32, p: u32, ) -> Weight { - // Minimum execution time: 41_415 nanoseconds. - Weight::from_ref_time(43_034_456) - // Standard Error: 86 - .saturating_add(Weight::from_ref_time(1_786).saturating_mul(b.into())) - // Standard Error: 909 - .saturating_add(Weight::from_ref_time(13_068).saturating_mul(m.into())) - // Standard Error: 886 - .saturating_add(Weight::from_ref_time(111_933).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `662 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `11956 + b * (4 ±0) + m * (264 ±0) + p * (160 ±0)` + // Minimum execution time: 38_310_000 picoseconds. + Weight::from_parts(40_050_347, 0) + .saturating_add(Weight::from_parts(0, 11956)) + // Standard Error: 84 + .saturating_add(Weight::from_parts(1_379, 0).saturating_mul(b.into())) + // Standard Error: 892 + .saturating_add(Weight::from_parts(13_153, 0).saturating_mul(m.into())) + // Standard Error: 870 + .saturating_add(Weight::from_parts(132_394, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 4).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 264).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 160).saturating_mul(p.into())) } - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Prime (r:1 w:0) - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:1 w:0) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_disapproved(m: u32, p: u32, ) -> Weight { - // Minimum execution time: 32_062 nanoseconds. - Weight::from_ref_time(35_026_550) - // Standard Error: 930 - .saturating_add(Weight::from_ref_time(18_809).saturating_mul(m.into())) - // Standard Error: 907 - .saturating_add(Weight::from_ref_time(103_195).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `458 + m * (48 ±0) + p * (36 ±0)` + // Estimated: `10085 + m * (245 ±0) + p * (180 ±0)` + // Minimum execution time: 29_071_000 picoseconds. + Weight::from_parts(30_524_865, 0) + .saturating_add(Weight::from_parts(0, 10085)) + // Standard Error: 658 + .saturating_add(Weight::from_parts(18_125, 0).saturating_mul(m.into())) + // Standard Error: 641 + .saturating_add(Weight::from_parts(115_123, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(4)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 245).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 180).saturating_mul(p.into())) } - // Storage: AllianceMotion Voting (r:1 w:1) - // Storage: AllianceMotion Members (r:1 w:0) - // Storage: AllianceMotion Prime (r:1 w:0) - // Storage: AllianceMotion ProposalOf (r:1 w:1) - // Storage: AllianceMotion Proposals (r:1 w:1) + /// Storage: AllianceMotion Voting (r:1 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Members (r:1 w:0) + /// Proof Skipped: AllianceMotion Members (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Prime (r:1 w:0) + /// Proof Skipped: AllianceMotion Prime (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:1 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) /// The range of component `b` is `[2, 1024]`. /// The range of component `m` is `[4, 100]`. /// The range of component `p` is `[1, 100]`. fn close_approved(b: u32, m: u32, p: u32, ) -> Weight { - // Minimum execution time: 43_574 nanoseconds. - Weight::from_ref_time(44_782_136) - // Standard Error: 90 - .saturating_add(Weight::from_ref_time(1_990).saturating_mul(b.into())) - // Standard Error: 960 - .saturating_add(Weight::from_ref_time(15_697).saturating_mul(m.into())) - // Standard Error: 936 - .saturating_add(Weight::from_ref_time(113_994).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `682 + b * (1 ±0) + m * (64 ±0) + p * (40 ±0)` + // Estimated: `14055 + b * (5 ±0) + m * (330 ±0) + p * (200 ±0)` + // Minimum execution time: 40_932_000 picoseconds. + Weight::from_parts(42_564_375, 0) + .saturating_add(Weight::from_parts(0, 14055)) + // Standard Error: 91 + .saturating_add(Weight::from_parts(1_354, 0).saturating_mul(b.into())) + // Standard Error: 962 + .saturating_add(Weight::from_parts(14_498, 0).saturating_mul(m.into())) + // Standard Error: 937 + .saturating_add(Weight::from_parts(133_672, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(5)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 5).saturating_mul(b.into())) + .saturating_add(Weight::from_parts(0, 330).saturating_mul(m.into())) + .saturating_add(Weight::from_parts(0, 200).saturating_mul(p.into())) } - // Storage: AllianceMotion Proposals (r:1 w:1) - // Storage: AllianceMotion Voting (r:0 w:1) - // Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Storage: AllianceMotion Proposals (r:1 w:1) + /// Proof Skipped: AllianceMotion Proposals (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: AllianceMotion Voting (r:0 w:1) + /// Proof Skipped: AllianceMotion Voting (max_values: None, max_size: None, mode: Measured) + /// Storage: AllianceMotion ProposalOf (r:0 w:1) + /// Proof Skipped: AllianceMotion ProposalOf (max_values: None, max_size: None, mode: Measured) /// The range of component `p` is `[1, 100]`. fn disapprove_proposal(p: u32, ) -> Weight { - // Minimum execution time: 20_012 nanoseconds. - Weight::from_ref_time(22_919_021) - // Standard Error: 928 - .saturating_add(Weight::from_ref_time(98_275).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `189 + p * (32 ±0)` + // Estimated: `2052 + p * (96 ±0)` + // Minimum execution time: 14_577_000 picoseconds. + Weight::from_parts(17_078_204, 0) + .saturating_add(Weight::from_parts(0, 2052)) + // Standard Error: 1_851 + .saturating_add(Weight::from_parts(96_610, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(3)) + .saturating_add(Weight::from_parts(0, 96).saturating_mul(p.into())) } } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs index d8061b9996e..46e8b35ad17 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,21 +17,23 @@ //! Autogenerated weights for `pallet_multisig` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: -// ./target/production/polkadot-parachain +// ./artifacts/polkadot-parachain // benchmark // pallet // --chain=collectives-polkadot-dev // --execution=wasm // --wasm-execution=compiled // --pallet=pallet_multisig -// --extrinsic= +// --extrinsic=* // --steps=50 // --repeat=20 +// --json // --header=./file_header.txt // --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_multisig.rs @@ -47,80 +49,113 @@ pub struct WeightInfo(PhantomData); impl pallet_multisig::WeightInfo for WeightInfo { /// The range of component `z` is `[0, 10000]`. fn as_multi_threshold_1(z: u32, ) -> Weight { - // Minimum execution time: 15_788 nanoseconds. - Weight::from_ref_time(16_468_274) - // Standard Error: 3 - .saturating_add(Weight::from_ref_time(687).saturating_mul(z.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 11_874_000 picoseconds. + Weight::from_parts(12_338_482, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 1 + .saturating_add(Weight::from_parts(501, 0).saturating_mul(z.into())) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_create(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 43_682 nanoseconds. - Weight::from_ref_time(35_976_690) - // Standard Error: 831 - .saturating_add(Weight::from_ref_time(85_730).saturating_mul(s.into())) - // Standard Error: 8 - .saturating_add(Weight::from_ref_time(1_711).saturating_mul(z.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `262 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 37_113_000 picoseconds. + Weight::from_parts(31_650_752, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 685 + .saturating_add(Weight::from_parts(60_611, 0).saturating_mul(s.into())) + // Standard Error: 6 + .saturating_add(Weight::from_parts(1_223, 0).saturating_mul(z.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[3, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_approve(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 33_844 nanoseconds. - Weight::from_ref_time(26_517_988) - // Standard Error: 605 - .saturating_add(Weight::from_ref_time(83_590).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 27_063_000 picoseconds. + Weight::from_parts(21_745_286, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 540 + .saturating_add(Weight::from_parts(59_750, 0).saturating_mul(s.into())) // Standard Error: 5 - .saturating_add(Weight::from_ref_time(1_697).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_199, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. /// The range of component `z` is `[0, 10000]`. fn as_multi_complete(s: u32, z: u32, ) -> Weight { - // Minimum execution time: 47_899 nanoseconds. - Weight::from_ref_time(37_936_281) - // Standard Error: 618 - .saturating_add(Weight::from_ref_time(105_273).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `385 + s * (33 ±0)` + // Estimated: `10404` + // Minimum execution time: 41_635_000 picoseconds. + Weight::from_parts(35_205_750, 0) + .saturating_add(Weight::from_parts(0, 10404)) + // Standard Error: 614 + .saturating_add(Weight::from_parts(77_394, 0).saturating_mul(s.into())) // Standard Error: 6 - .saturating_add(Weight::from_ref_time(1_725).saturating_mul(z.into())) + .saturating_add(Weight::from_parts(1_194, 0).saturating_mul(z.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Multisig Multisigs (r:1 w:1) - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_create(s: u32, ) -> Weight { - // Minimum execution time: 31_990 nanoseconds. - Weight::from_ref_time(34_112_390) - // Standard Error: 1_073 - .saturating_add(Weight::from_ref_time(101_225).saturating_mul(s.into())) - .saturating_add(T::DbWeight::get().reads(2)) + // Proof Size summary in bytes: + // Measured: `263 + s * (2 ±0)` + // Estimated: `6811` + // Minimum execution time: 28_179_000 picoseconds. + Weight::from_parts(29_964_208, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 692 + .saturating_add(Weight::from_parts(67_380, 0).saturating_mul(s.into())) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn approve_as_multi_approve(s: u32, ) -> Weight { - // Minimum execution time: 23_165 nanoseconds. - Weight::from_ref_time(25_473_730) - // Standard Error: 785 - .saturating_add(Weight::from_ref_time(82_880).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `282` + // Estimated: `6811` + // Minimum execution time: 18_604_000 picoseconds. + Weight::from_parts(20_059_859, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 1_469 + .saturating_add(Weight::from_parts(65_134, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Multisig Multisigs (r:1 w:1) + /// Storage: Multisig Multisigs (r:1 w:1) + /// Proof: Multisig Multisigs (max_values: None, max_size: Some(3346), added: 5821, mode: MaxEncodedLen) /// The range of component `s` is `[2, 100]`. fn cancel_as_multi(s: u32, ) -> Weight { - // Minimum execution time: 31_177 nanoseconds. - Weight::from_ref_time(34_538_364) - // Standard Error: 1_216 - .saturating_add(Weight::from_ref_time(91_659).saturating_mul(s.into())) + // Proof Size summary in bytes: + // Measured: `454 + s * (1 ±0)` + // Estimated: `6811` + // Minimum execution time: 28_438_000 picoseconds. + Weight::from_parts(30_815_747, 0) + .saturating_add(Weight::from_parts(0, 6811)) + // Standard Error: 774 + .saturating_add(Weight::from_parts(67_365, 0).saturating_mul(s.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs index fbd995a593e..5c168e89d47 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_proxy.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_proxy` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,121 +47,174 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_proxy`. pub struct WeightInfo(PhantomData); impl pallet_proxy::WeightInfo for WeightInfo { - // Storage: Proxy Proxies (r:1 w:0) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn proxy(p: u32, ) -> Weight { - // Minimum execution time: 21_247 nanoseconds. - Weight::from_ref_time(22_408_398) - // Standard Error: 1_684 - .saturating_add(Weight::from_ref_time(52_604).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 16_370_000 picoseconds. + Weight::from_parts(17_099_234, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_021 + .saturating_add(Weight::from_parts(27_747, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn proxy_announced(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 40_354 nanoseconds. - Weight::from_ref_time(40_604_876) - // Standard Error: 1_731 - .saturating_add(Weight::from_ref_time(115_181).saturating_mul(a.into())) - // Standard Error: 1_788 - .saturating_add(Weight::from_ref_time(36_808).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `454 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 34_655_000 picoseconds. + Weight::from_parts(35_088_843, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 1_939 + .saturating_add(Weight::from_parts(146_356, 0).saturating_mul(a.into())) + // Standard Error: 2_004 + .saturating_add(Weight::from_parts(38_363, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn remove_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 27_737 nanoseconds. - Weight::from_ref_time(28_753_715) - // Standard Error: 1_698 - .saturating_add(Weight::from_ref_time(117_524).saturating_mul(a.into())) - // Standard Error: 1_755 - .saturating_add(Weight::from_ref_time(17_580).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 21_893_000 picoseconds. + Weight::from_parts(22_495_271, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_612 + .saturating_add(Weight::from_parts(149_480, 0).saturating_mul(a.into())) + // Standard Error: 1_665 + .saturating_add(Weight::from_parts(20_216, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn reject_announcement(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 27_987 nanoseconds. - Weight::from_ref_time(28_789_616) - // Standard Error: 1_598 - .saturating_add(Weight::from_ref_time(121_884).saturating_mul(a.into())) - // Standard Error: 1_651 - .saturating_add(Weight::from_ref_time(12_104).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `369 + a * (68 ±0)` + // Estimated: `9291` + // Minimum execution time: 22_129_000 picoseconds. + Weight::from_parts(22_971_862, 0) + .saturating_add(Weight::from_parts(0, 9291)) + // Standard Error: 1_324 + .saturating_add(Weight::from_parts(139_140, 0).saturating_mul(a.into())) + // Standard Error: 1_368 + .saturating_add(Weight::from_parts(9_720, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:0) - // Storage: Proxy Announcements (r:1 w:1) - // Storage: System Account (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:0) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) + /// Storage: Proxy Announcements (r:1 w:1) + /// Proof: Proxy Announcements (max_values: None, max_size: Some(2233), added: 4708, mode: MaxEncodedLen) + /// Storage: System Account (r:1 w:1) + /// Proof: System Account (max_values: None, max_size: Some(128), added: 2603, mode: MaxEncodedLen) /// The range of component `a` is `[0, 31]`. /// The range of component `p` is `[1, 31]`. fn announce(a: u32, p: u32, ) -> Weight { - // Minimum execution time: 36_687 nanoseconds. - Weight::from_ref_time(37_370_737) - // Standard Error: 2_147 - .saturating_add(Weight::from_ref_time(109_740).saturating_mul(a.into())) - // Standard Error: 2_218 - .saturating_add(Weight::from_ref_time(27_280).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `386 + a * (68 ±0) + p * (37 ±0)` + // Estimated: `13997` + // Minimum execution time: 30_496_000 picoseconds. + Weight::from_parts(31_777_493, 0) + .saturating_add(Weight::from_parts(0, 13997)) + // Standard Error: 2_153 + .saturating_add(Weight::from_parts(139_635, 0).saturating_mul(a.into())) + // Standard Error: 2_224 + .saturating_add(Weight::from_parts(36_392, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(3)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn add_proxy(p: u32, ) -> Weight { - // Minimum execution time: 30_054 nanoseconds. - Weight::from_ref_time(31_037_232) - // Standard Error: 1_671 - .saturating_add(Weight::from_ref_time(73_972).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_465_000 picoseconds. + Weight::from_parts(24_342_756, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_559 + .saturating_add(Weight::from_parts(50_636, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxy(p: u32, ) -> Weight { - // Minimum execution time: 29_196 nanoseconds. - Weight::from_ref_time(30_850_447) - // Standard Error: 2_174 - .saturating_add(Weight::from_ref_time(74_625).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 23_620_000 picoseconds. + Weight::from_parts(24_514_511, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_749 + .saturating_add(Weight::from_parts(47_870, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. fn remove_proxies(p: u32, ) -> Weight { - // Minimum execution time: 25_283 nanoseconds. - Weight::from_ref_time(26_539_611) - // Standard Error: 2_055 - .saturating_add(Weight::from_ref_time(53_335).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `127 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 18_506_000 picoseconds. + Weight::from_parts(19_463_396, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_241 + .saturating_add(Weight::from_parts(25_525, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: unknown [0x3a65787472696e7369635f696e646578] (r:1 w:0) - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[1, 31]`. - fn create_pure(p: u32, ) -> Weight { - // Minimum execution time: 31_687 nanoseconds. - Weight::from_ref_time(32_977_547) - // Standard Error: 1_740 - .saturating_add(Weight::from_ref_time(16_154).saturating_mul(p.into())) - .saturating_add(T::DbWeight::get().reads(2)) + fn create_pure(_p: u32, ) -> Weight { + // Proof Size summary in bytes: + // Measured: `139` + // Estimated: `4706` + // Minimum execution time: 25_291_000 picoseconds. + Weight::from_parts(26_456_465, 0) + .saturating_add(Weight::from_parts(0, 4706)) + .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } - // Storage: Proxy Proxies (r:1 w:1) + /// Storage: Proxy Proxies (r:1 w:1) + /// Proof: Proxy Proxies (max_values: None, max_size: Some(1241), added: 3716, mode: MaxEncodedLen) /// The range of component `p` is `[0, 30]`. fn kill_pure(p: u32, ) -> Weight { - // Minimum execution time: 26_521 nanoseconds. - Weight::from_ref_time(28_210_679) - // Standard Error: 1_681 - .saturating_add(Weight::from_ref_time(40_111).saturating_mul(p.into())) + // Proof Size summary in bytes: + // Measured: `164 + p * (37 ±0)` + // Estimated: `4706` + // Minimum execution time: 19_931_000 picoseconds. + Weight::from_parts(20_842_319, 0) + .saturating_add(Weight::from_parts(0, 4706)) + // Standard Error: 1_467 + .saturating_add(Weight::from_parts(26_062, 0).saturating_mul(p.into())) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(1)) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs index a10e6daed12..5c5f61d40b2 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_session.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_session` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,19 +47,31 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_session`. pub struct WeightInfo(PhantomData); impl pallet_session::WeightInfo for WeightInfo { - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:1 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:1 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn set_keys() -> Weight { - // Minimum execution time: 21_282 nanoseconds. - Weight::from_ref_time(22_316_000) + // Proof Size summary in bytes: + // Measured: `270` + // Estimated: `7470` + // Minimum execution time: 17_635_000 picoseconds. + Weight::from_parts(17_997_000, 0) + .saturating_add(Weight::from_parts(0, 7470)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(2)) } - // Storage: Session NextKeys (r:1 w:1) - // Storage: Session KeyOwner (r:0 w:1) + /// Storage: Session NextKeys (r:1 w:1) + /// Proof Skipped: Session NextKeys (max_values: None, max_size: None, mode: Measured) + /// Storage: Session KeyOwner (r:0 w:1) + /// Proof Skipped: Session KeyOwner (max_values: None, max_size: None, mode: Measured) fn purge_keys() -> Weight { - // Minimum execution time: 17_660 nanoseconds. - Weight::from_ref_time(18_017_000) + // Proof Size summary in bytes: + // Measured: `242` + // Estimated: `3949` + // Minimum execution time: 12_878_000 picoseconds. + Weight::from_parts(13_245_000, 0) + .saturating_add(Weight::from_parts(0, 3949)) .saturating_add(T::DbWeight::get().reads(1)) .saturating_add(T::DbWeight::get().writes(2)) } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs index ce18d619b5f..5d0636e87d1 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_timestamp.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_timestamp` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -46,16 +47,26 @@ use sp_std::marker::PhantomData; /// Weight functions for `pallet_timestamp`. pub struct WeightInfo(PhantomData); impl pallet_timestamp::WeightInfo for WeightInfo { - // Storage: Timestamp Now (r:1 w:1) - // Storage: Aura CurrentSlot (r:1 w:0) + /// Storage: Timestamp Now (r:1 w:1) + /// Proof: Timestamp Now (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) + /// Storage: Aura CurrentSlot (r:1 w:0) + /// Proof: Aura CurrentSlot (max_values: Some(1), max_size: Some(8), added: 503, mode: MaxEncodedLen) fn set() -> Weight { - // Minimum execution time: 8_970 nanoseconds. - Weight::from_ref_time(9_346_000) + // Proof Size summary in bytes: + // Measured: `49` + // Estimated: `2986` + // Minimum execution time: 7_660_000 picoseconds. + Weight::from_parts(7_967_000, 0) + .saturating_add(Weight::from_parts(0, 2986)) .saturating_add(T::DbWeight::get().reads(2)) .saturating_add(T::DbWeight::get().writes(1)) } fn on_finalize() -> Weight { - // Minimum execution time: 3_726 nanoseconds. - Weight::from_ref_time(3_851_000) + // Proof Size summary in bytes: + // Measured: `57` + // Estimated: `0` + // Minimum execution time: 3_258_000 picoseconds. + Weight::from_parts(3_348_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs index 824991558ef..5ff7d46c142 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_utility.rs @@ -1,4 +1,4 @@ -// Copyright 2021 Parity Technologies (UK) Ltd. +// Copyright Parity Technologies (UK) Ltd. // This file is part of Cumulus. // Cumulus is free software: you can redistribute it and/or modify @@ -17,8 +17,9 @@ //! Autogenerated weights for `pallet_utility` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev -//! DATE: 2022-12-21, STEPS: `50`, REPEAT: 20, LOW RANGE: `[]`, HIGH RANGE: `[]` -//! HOSTNAME: `bm6`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` //! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 // Executed Command: @@ -48,31 +49,51 @@ pub struct WeightInfo(PhantomData); impl pallet_utility::WeightInfo for WeightInfo { /// The range of component `c` is `[0, 1000]`. fn batch(c: u32, ) -> Weight { - // Minimum execution time: 11_673 nanoseconds. - Weight::from_ref_time(20_232_865) - // Standard Error: 2_139 - .saturating_add(Weight::from_ref_time(3_634_291).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_002_000 picoseconds. + Weight::from_parts(17_384_645, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_488 + .saturating_add(Weight::from_parts(4_736_077, 0).saturating_mul(c.into())) } fn as_derivative() -> Weight { - // Minimum execution time: 6_465 nanoseconds. - Weight::from_ref_time(6_783_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 5_352_000 picoseconds. + Weight::from_parts(5_532_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn batch_all(c: u32, ) -> Weight { - // Minimum execution time: 11_740 nanoseconds. - Weight::from_ref_time(25_924_183) - // Standard Error: 2_899 - .saturating_add(Weight::from_ref_time(3_860_781).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_030_000 picoseconds. + Weight::from_parts(18_968_785, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_112 + .saturating_add(Weight::from_parts(4_960_336, 0).saturating_mul(c.into())) } fn dispatch_as() -> Weight { - // Minimum execution time: 14_329 nanoseconds. - Weight::from_ref_time(14_576_000) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 9_703_000 picoseconds. + Weight::from_parts(10_012_000, 0) + .saturating_add(Weight::from_parts(0, 0)) } /// The range of component `c` is `[0, 1000]`. fn force_batch(c: u32, ) -> Weight { - // Minimum execution time: 11_891 nanoseconds. - Weight::from_ref_time(24_417_472) - // Standard Error: 5_719 - .saturating_add(Weight::from_ref_time(3_635_818).saturating_mul(c.into())) + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 7_029_000 picoseconds. + Weight::from_parts(13_505_714, 0) + .saturating_add(Weight::from_parts(0, 0)) + // Standard Error: 3_032 + .saturating_add(Weight::from_parts(4_709_262, 0).saturating_mul(c.into())) } } diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs new file mode 100644 index 00000000000..43fee0b52e6 --- /dev/null +++ b/parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs @@ -0,0 +1,275 @@ +// Copyright Parity Technologies (UK) Ltd. +// This file is part of Cumulus. + +// Cumulus is free software: you can redistribute it and/or modify +// it under the terms of the GNU General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. + +// Cumulus is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU General Public License for more details. + +// You should have received a copy of the GNU General Public License +// along with Cumulus. If not, see . + +//! Autogenerated weights for `pallet_xcm` +//! +//! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION 4.0.0-dev +//! DATE: 2023-03-23, STEPS: `50`, REPEAT: `20`, LOW RANGE: `[]`, HIGH RANGE: `[]` +//! WORST CASE MAP SIZE: `1000000` +//! HOSTNAME: `bm4`, CPU: `Intel(R) Core(TM) i7-7700K CPU @ 4.20GHz` +//! EXECUTION: Some(Wasm), WASM-EXECUTION: Compiled, CHAIN: Some("collectives-polkadot-dev"), DB CACHE: 1024 + +// Executed Command: +// ./artifacts/polkadot-parachain +// benchmark +// pallet +// --chain=collectives-polkadot-dev +// --execution=wasm +// --wasm-execution=compiled +// --pallet=pallet_xcm +// --extrinsic=* +// --steps=50 +// --repeat=20 +// --json +// --header=./file_header.txt +// --output=./parachains/runtimes/collectives/collectives-polkadot/src/weights/pallet_xcm.rs + +#![cfg_attr(rustfmt, rustfmt_skip)] +#![allow(unused_parens)] +#![allow(unused_imports)] + +use frame_support::{traits::Get, weights::Weight}; +use sp_std::marker::PhantomData; + +/// Weight functions for `pallet_xcm`. +pub struct WeightInfo(PhantomData); +impl pallet_xcm::WeightInfo for WeightInfo { + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn send() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `9595` + // Minimum execution time: 25_963_000 picoseconds. + Weight::from_parts(26_569_000, 0) + .saturating_add(Weight::from_parts(0, 9595)) + .saturating_add(T::DbWeight::get().reads(5)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: ParachainInfo ParachainId (r:1 w:0) + /// Proof: ParachainInfo ParachainId (max_values: Some(1), max_size: Some(4), added: 499, mode: MaxEncodedLen) + fn teleport_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `32` + // Estimated: `1489` + // Minimum execution time: 26_187_000 picoseconds. + Weight::from_parts(26_643_000, 0) + .saturating_add(Weight::from_parts(0, 1489)) + .saturating_add(T::DbWeight::get().reads(1)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn reserve_transfer_assets() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 18_446_744_073_709_551_000 picoseconds. + Weight::from_parts(18_446_744_073_709_551_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + } + /// Storage: Benchmark Override (r:0 w:0) + /// Proof Skipped: Benchmark Override (max_values: None, max_size: None, mode: Measured) + fn execute() -> 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 Skipped: 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: 9_755_000 picoseconds. + Weight::from_parts(10_010_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm SafeXcmVersion (r:0 w:1) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + fn force_default_xcm_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `0` + // Estimated: `0` + // Minimum execution time: 2_994_000 picoseconds. + Weight::from_parts(3_125_000, 0) + .saturating_add(Weight::from_parts(0, 0)) + .saturating_add(T::DbWeight::get().writes(1)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm QueryCounter (r:1 w:1) + /// Proof Skipped: PolkadotXcm QueryCounter (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_subscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `38` + // Estimated: `14659` + // Minimum execution time: 31_393_000 picoseconds. + Weight::from_parts(31_976_000, 0) + .saturating_add(Weight::from_parts(0, 14659)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(5)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm Queries (r:0 w:1) + /// Proof Skipped: PolkadotXcm Queries (max_values: None, max_size: None, mode: Measured) + fn force_unsubscribe_version_notify() -> Weight { + // Proof Size summary in bytes: + // Measured: `220` + // Estimated: `14410` + // Minimum execution time: 34_048_000 picoseconds. + Weight::from_parts(35_696_000, 0) + .saturating_add(Weight::from_parts(0, 14410)) + .saturating_add(T::DbWeight::get().reads(6)) + .saturating_add(T::DbWeight::get().writes(4)) + } + /// Storage: PolkadotXcm SupportedVersion (r:4 w:2) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + fn migrate_supported_version() -> Weight { + // Proof Size summary in bytes: + // Measured: `95` + // Estimated: `10985` + // Minimum execution time: 16_432_000 picoseconds. + Weight::from_parts(16_898_000, 0) + .saturating_add(Weight::from_parts(0, 10985)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifiers (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifiers (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notifiers() -> Weight { + // Proof Size summary in bytes: + // Measured: `99` + // Estimated: `10989` + // Minimum execution time: 15_950_000 picoseconds. + Weight::from_parts(16_441_000, 0) + .saturating_add(Weight::from_parts(0, 10989)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:5 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn already_notified_target() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `13471` + // Minimum execution time: 16_585_000 picoseconds. + Weight::from_parts(16_939_000, 0) + .saturating_add(Weight::from_parts(0, 13471)) + .saturating_add(T::DbWeight::get().reads(5)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:2 w:1) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn notify_current_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `15981` + // Minimum execution time: 30_278_000 picoseconds. + Weight::from_parts(30_676_000, 0) + .saturating_add(Weight::from_parts(0, 15981)) + .saturating_add(T::DbWeight::get().reads(7)) + .saturating_add(T::DbWeight::get().writes(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:3 w:0) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn notify_target_migration_fail() -> Weight { + // Proof Size summary in bytes: + // Measured: `136` + // Estimated: `8551` + // Minimum execution time: 8_923_000 picoseconds. + Weight::from_parts(9_257_000, 0) + .saturating_add(Weight::from_parts(0, 8551)) + .saturating_add(T::DbWeight::get().reads(3)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + fn migrate_version_notify_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `106` + // Estimated: `10996` + // Minimum execution time: 16_897_000 picoseconds. + Weight::from_parts(17_998_000, 0) + .saturating_add(Weight::from_parts(0, 10996)) + .saturating_add(T::DbWeight::get().reads(4)) + .saturating_add(T::DbWeight::get().writes(2)) + } + /// Storage: PolkadotXcm VersionNotifyTargets (r:4 w:2) + /// Proof Skipped: PolkadotXcm VersionNotifyTargets (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm SupportedVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SupportedVersion (max_values: None, max_size: None, mode: Measured) + /// Storage: PolkadotXcm VersionDiscoveryQueue (r:1 w:1) + /// Proof Skipped: PolkadotXcm VersionDiscoveryQueue (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: PolkadotXcm SafeXcmVersion (r:1 w:0) + /// Proof Skipped: PolkadotXcm SafeXcmVersion (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem HostConfiguration (r:1 w:0) + /// Proof Skipped: ParachainSystem HostConfiguration (max_values: Some(1), max_size: None, mode: Measured) + /// Storage: ParachainSystem PendingUpwardMessages (r:1 w:1) + /// Proof Skipped: ParachainSystem PendingUpwardMessages (max_values: Some(1), max_size: None, mode: Measured) + fn migrate_and_notify_old_targets() -> Weight { + // Proof Size summary in bytes: + // Measured: `112` + // Estimated: `20967` + // Minimum execution time: 40_145_000 picoseconds. + Weight::from_parts(41_423_000, 0) + .saturating_add(Weight::from_parts(0, 20967)) + .saturating_add(T::DbWeight::get().reads(9)) + .saturating_add(T::DbWeight::get().writes(4)) + } +} diff --git a/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs b/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs index 1192306daa4..5c6332472aa 100644 --- a/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs +++ b/parachains/runtimes/collectives/collectives-polkadot/src/xcm_config.rs @@ -14,12 +14,13 @@ // limitations under the License. use super::{ - AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, - RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{Everything, Nothing}, + traits::{ConstU32, Contains, Everything, Nothing}, + weights::Weight, }; use pallet_xcm::XcmPassthrough; use parachains_common::{ @@ -29,21 +30,22 @@ use parachains_common::{ use polkadot_parachain::primitives::Sibling; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, - FixedWeightBounds, IsConcrete, LocationInverter, ParentAsSuperuser, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + FixedWeightBounds, IsConcrete, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, + WithComputedOrigin, }; -use xcm_executor::XcmExecutor; +use xcm_executor::{traits::WithOriginFilter, XcmExecutor}; parameter_types! { pub const DotLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Polkadot; + pub const RelayNetwork: Option = Some(NetworkId::Polkadot); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); - pub const Local: MultiLocation = Here.into(); + pub UniversalLocation: InteriorMultiLocation = + X2(GlobalConsensus(RelayNetwork::get().unwrap()), Parachain(ParachainInfo::parachain_id().into())); + pub const Local: MultiLocation = Here.into_location(); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); } @@ -99,14 +101,15 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } match_types! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { + pub type ParentOrParentsPlurality: impl Contains = { MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } }; pub type ParentOrSiblings: impl Contains = { MultiLocation { parents: 1, interior: Here } | @@ -114,19 +117,94 @@ match_types! { }; } +/// A call filter for the XCM Transact instruction. This is a temporary measure until we properly +/// account for proof size weights. +/// +/// Calls that are allowed through this filter must: +/// 1. Have a fixed weight; +/// 2. Cannot lead to another call being made; +/// 3. Have a defined proof size weight, e.g. no unbounded vecs in call parameters. +pub struct SafeCallFilter; +impl Contains for SafeCallFilter { + fn contains(call: &RuntimeCall) -> bool { + #[cfg(feature = "runtime-benchmarks")] + { + if matches!(call, RuntimeCall::System(frame_system::Call::remark_with_event { .. })) { + return true + } + } + + match call { + RuntimeCall::System( + frame_system::Call::set_heap_pages { .. } | + frame_system::Call::set_code { .. } | + frame_system::Call::set_code_without_checks { .. } | + frame_system::Call::kill_prefix { .. }, + ) | + RuntimeCall::ParachainSystem(..) | + RuntimeCall::Timestamp(..) | + RuntimeCall::Balances(..) | + RuntimeCall::CollatorSelection( + pallet_collator_selection::Call::set_desired_candidates { .. } | + pallet_collator_selection::Call::set_candidacy_bond { .. } | + pallet_collator_selection::Call::register_as_candidate { .. } | + pallet_collator_selection::Call::leave_intent { .. }, + ) | + RuntimeCall::Session(pallet_session::Call::purge_keys { .. }) | + RuntimeCall::PolkadotXcm(pallet_xcm::Call::force_xcm_version { .. }) | + RuntimeCall::XcmpQueue(..) | + RuntimeCall::DmpQueue(..) | + RuntimeCall::Utility(pallet_utility::Call::as_derivative { .. }) | + RuntimeCall::Alliance( + // `init_members` accepts unbounded vecs as arguments, + // but the call can be initiated only by root origin. + pallet_alliance::Call::init_members { .. } | + pallet_alliance::Call::vote { .. } | + pallet_alliance::Call::close_old_weight { .. } | + pallet_alliance::Call::disband { .. } | + pallet_alliance::Call::set_rule { .. } | + pallet_alliance::Call::announce { .. } | + pallet_alliance::Call::remove_announcement { .. } | + pallet_alliance::Call::join_alliance { .. } | + pallet_alliance::Call::nominate_ally { .. } | + pallet_alliance::Call::elevate_ally { .. } | + pallet_alliance::Call::give_retirement_notice { .. } | + pallet_alliance::Call::retire { .. } | + pallet_alliance::Call::kick_member { .. } | + pallet_alliance::Call::close { .. } | + pallet_alliance::Call::abdicate_fellow_status { .. }, + ) | + RuntimeCall::AllianceMotion( + pallet_collective::Call::vote { .. } | + pallet_collective::Call::close_old_weight { .. } | + pallet_collective::Call::disapprove_proposal { .. } | + pallet_collective::Call::close { .. }, + ) => true, + _ => false, + } + } +} + pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( // Allow local users to buy weight credit. TakeWeightCredit, - // Parent and its exec plurality get free execution. - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, - // Allow anything to pay for execution. - AllowTopLevelPaidExecutionFrom, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its plurality (i.e. governance bodies) gets free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -141,7 +219,7 @@ impl xcm_executor::Config for XcmConfig { type IsReserve = (); /// Only allow teleportation of DOT. type IsTeleporter = ConcreteNativeAssetFrom; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = @@ -150,6 +228,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = WithOriginFilter; + type SafeCallFilter = SafeCallFilter; } /// Converts a local signed origin into an XCM multilocation. @@ -160,11 +247,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; // We want to disallow users sending (arbitrary) XCMs from this chain. @@ -178,11 +270,19 @@ impl pallet_xcm::Config for Runtime { type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Nothing; // This parachain is not meant as a reserve location. type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = crate::weights::pallet_xcm::WeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/contracts/contracts-rococo/Cargo.toml b/parachains/runtimes/contracts/contracts-rococo/Cargo.toml index 3425b154fb0..f557d2cb1c0 100644 --- a/parachains/runtimes/contracts/contracts-rococo/Cargo.toml +++ b/parachains/runtimes/contracts/contracts-rococo/Cargo.toml @@ -8,7 +8,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -18,48 +18,48 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" smallvec = "1.10.0" # Substrate -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-contracts = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-contracts-primitives = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-insecure-randomness-collective-flip = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-multisig = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-utility = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-contracts = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-contracts-primitives = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -kusama-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +kusama-runtime-constants = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -95,7 +95,7 @@ std = [ "pallet-contracts-primitives/std", "pallet-contracts/std", "pallet-multisig/std", - "pallet-randomness-collective-flip/std", + "pallet-insecure-randomness-collective-flip/std", "pallet-session/std", "pallet-sudo/std", "pallet-timestamp/std", @@ -166,7 +166,7 @@ try-runtime = [ "pallet-collator-selection/try-runtime", "pallet-contracts/try-runtime", "pallet-multisig/try-runtime", - "pallet-randomness-collective-flip/try-runtime", + "pallet-insecure-randomness-collective-flip/try-runtime", "pallet-session/try-runtime", "pallet-sudo/try-runtime", "pallet-timestamp/try-runtime", diff --git a/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs b/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs index 7cebf9f5a57..7c19677603c 100644 --- a/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs +++ b/parachains/runtimes/contracts/contracts-rococo/src/contracts.rs @@ -53,9 +53,9 @@ impl Config for Runtime { type DeletionQueueDepth = DeletionQueueDepth; type DeletionWeightLimit = DeletionWeightLimit; type Schedule = MySchedule; - type CallStack = [Frame; 31]; + type CallStack = [Frame; 5]; type AddressGenerator = DefaultAddressGenerator; - type MaxCodeLen = ConstU32<{ 128 * 1024 }>; + type MaxCodeLen = ConstU32<{ 123 * 1024 }>; type MaxStorageKeyLen = ConstU32<128>; type UnsafeUnstableInterface = ConstBool; type MaxDebugBufferLen = ConstU32<{ 2 * 1024 * 1024 }>; diff --git a/parachains/runtimes/contracts/contracts-rococo/src/lib.rs b/parachains/runtimes/contracts/contracts-rococo/src/lib.rs index 964e973f49e..4cef29b334e 100644 --- a/parachains/runtimes/contracts/contracts-rococo/src/lib.rs +++ b/parachains/runtimes/contracts/contracts-rococo/src/lib.rs @@ -98,10 +98,7 @@ pub type UncheckedExtrinsic = /// Extrinsic type that has already been checked. pub type CheckedExtrinsic = generic::CheckedExtrinsic; -pub type Migrations = ( - pallet_contracts::Migration, - pallet_balances::migration::MigrateToTrackInactive, -); +pub type Migrations = (pallet_contracts::Migration,); /// Executive: handles dispatch to the various modules. pub type Executive = frame_executive::Executive< @@ -124,10 +121,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("contracts-rococo"), impl_name: create_runtime_str!("contracts-rococo"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 4, + transaction_version: 6, state_version: 1, }; @@ -199,8 +196,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -283,7 +278,7 @@ impl cumulus_pallet_parachain_system::Config for Runtime { type CheckAssociatedRelayNumber = RelayNumberStrictlyIncreases; } -impl pallet_randomness_collective_flip::Config for Runtime {} +impl pallet_insecure_randomness_collective_flip::Config for Runtime {} impl parachain_info::Config for Runtime {} @@ -351,7 +346,7 @@ construct_runtime!( ParachainSystem: cumulus_pallet_parachain_system::{ Pallet, Call, Config, Storage, Inherent, Event, ValidateUnsigned, } = 1, - RandomnessCollectiveFlip: pallet_randomness_collective_flip::{Pallet, Storage} = 2, + RandomnessCollectiveFlip: pallet_insecure_randomness_collective_flip::{Pallet, Storage} = 2, Timestamp: pallet_timestamp::{Pallet, Call, Storage, Inherent} = 3, ParachainInfo: parachain_info::{Pallet, Storage, Config} = 4, @@ -360,7 +355,7 @@ construct_runtime!( TransactionPayment: pallet_transaction_payment::{Pallet, Storage, Event} = 11, // Collator support. The order of these 5 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -399,6 +394,7 @@ mod benches { [pallet_timestamp, Timestamp] [pallet_collator_selection, CollatorSelection] [pallet_contracts, Contracts] + [pallet_xcm, PolkadotXcm] ); } @@ -501,6 +497,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -518,6 +520,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -594,7 +602,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } diff --git a/parachains/runtimes/contracts/contracts-rococo/src/weights/block_weights.rs b/parachains/runtimes/contracts/contracts-rococo/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/contracts/contracts-rococo/src/weights/block_weights.rs +++ b/parachains/runtimes/contracts/contracts-rococo/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/contracts/contracts-rococo/src/weights/extrinsic_weights.rs b/parachains/runtimes/contracts/contracts-rococo/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/contracts/contracts-rococo/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/contracts/contracts-rococo/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs b/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs index f2dad66f546..94aec01bb0e 100644 --- a/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs +++ b/parachains/runtimes/contracts/contracts-rococo/src/xcm_config.rs @@ -14,12 +14,13 @@ // limitations under the License. use super::{ - AccountId, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, - RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, + AccountId, AllPalletsWithSystem, Balances, ParachainInfo, ParachainSystem, PolkadotXcm, + Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, XcmpQueue, }; use frame_support::{ match_types, parameter_types, - traits::{EitherOfDiverse, Everything, Nothing}, + traits::{ConstU32, EitherOfDiverse, Everything, Nothing}, + weights::Weight, }; use frame_system::EnsureRoot; use mangata_support::traits::GetMaintenanceStatusTrait; @@ -28,22 +29,20 @@ use parachains_common::xcm_config::{DenyReserveTransferToRelayChain, DenyThenTry use polkadot_parachain::primitives::Sibling; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, - FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, ParentAsSuperuser, - ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, CurrencyAdapter, EnsureXcmOrigin, + FixedWeightBounds, IsConcrete, NativeAsset, ParentAsSuperuser, ParentIsPreset, + RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, + UsingComponents, WithComputedOrigin, }; use xcm_executor::XcmExecutor; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Any; + pub const RelayNetwork: Option = None; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); - pub const Local: MultiLocation = Here.into(); - pub CheckingAccount: AccountId = PolkadotXcm::check_account(); + pub UniversalLocation: InteriorMultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); pub const ExecutiveBody: BodyId = BodyId::Executive; } @@ -105,14 +104,14 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; } match_types! { - pub type ParentOrParentsExecutivePlurality: impl Contains = { + pub type ParentOrParentsPlurality: impl Contains = { MultiLocation { parents: 1, interior: Here } | - MultiLocation { parents: 1, interior: X1(Plurality { id: BodyId::Executive, .. }) } + MultiLocation { parents: 1, interior: X1(Plurality { .. }) } }; pub type ParentOrSiblings: impl Contains = { MultiLocation { parents: 1, interior: Here } | @@ -124,13 +123,21 @@ pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - // Parent and its exec plurality get free execution - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Parent and its plurality (i.e. governance bodies) gets free execution. + AllowExplicitUnpaidExecutionFrom, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -142,7 +149,7 @@ impl xcm_executor::Config for XcmConfig { type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = NativeAsset; type IsTeleporter = NativeAsset; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = UsingComponents; @@ -150,6 +157,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = ConstU32<8>; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } /// Converts a local signed origin into an XCM multilocation. @@ -160,11 +176,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; // We want to disallow users sending (arbitrary) XCMs from this chain. @@ -178,11 +199,20 @@ impl pallet_xcm::Config for Runtime { type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Everything; type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + // FIXME: Replace with benchmarked weight info + type WeightInfo = pallet_xcm::TestWeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } pub struct MockMaintenanceStatusProvider; @@ -215,6 +245,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { >; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = cumulus_pallet_xcmp_queue::weights::SubstrateWeight; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { diff --git a/parachains/runtimes/starters/seedling/Cargo.toml b/parachains/runtimes/starters/seedling/Cargo.toml index 9e0ac1e3644..eba77e46fa4 100644 --- a/parachains/runtimes/starters/seedling/Cargo.toml +++ b/parachains/runtimes/starters/seedling/Cargo.toml @@ -9,21 +9,21 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Cumulus @@ -34,7 +34,7 @@ parachains-common = { path = "../../../common", default-features = false } cumulus-primitives-core = { path = "../../../../primitives/core", default-features = false } [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] diff --git a/parachains/runtimes/starters/seedling/src/lib.rs b/parachains/runtimes/starters/seedling/src/lib.rs index e3863a3662c..bddd395a740 100644 --- a/parachains/runtimes/starters/seedling/src/lib.rs +++ b/parachains/runtimes/starters/seedling/src/lib.rs @@ -68,7 +68,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("seedling"), impl_name: create_runtime_str!("seedling"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 2, @@ -90,7 +90,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for .5 seconds of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); parameter_types! { diff --git a/parachains/runtimes/starters/shell/Cargo.toml b/parachains/runtimes/starters/shell/Cargo.toml index 30793ec2fe3..ec35837d2f2 100644 --- a/parachains/runtimes/starters/shell/Cargo.toml +++ b/parachains/runtimes/starters/shell/Cargo.toml @@ -9,26 +9,26 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true , branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-parachain-system = { path = "../../../../pallets/parachain-system", default-features = false } @@ -38,7 +38,7 @@ parachain-info = { path = "../../../pallets/parachain-info", default-features = parachains-common = { path = "../../../common", default-features = false } [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] diff --git a/parachains/runtimes/starters/shell/src/lib.rs b/parachains/runtimes/starters/shell/src/lib.rs index 0e59dc9446a..00696b9591b 100644 --- a/parachains/runtimes/starters/shell/src/lib.rs +++ b/parachains/runtimes/starters/shell/src/lib.rs @@ -97,7 +97,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for .5 seconds of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); parameter_types! { diff --git a/parachains/runtimes/starters/shell/src/xcm_config.rs b/parachains/runtimes/starters/shell/src/xcm_config.rs index 2c51387a15c..8a7b3f21339 100644 --- a/parachains/runtimes/starters/shell/src/xcm_config.rs +++ b/parachains/runtimes/starters/shell/src/xcm_config.rs @@ -13,18 +13,25 @@ // See the License for the specific language governing permissions and // limitations under the License. -use super::{AccountId, ParachainInfo, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin}; -use frame_support::{match_types, parameter_types}; +use super::{ + AccountId, AllPalletsWithSystem, ParachainInfo, Runtime, RuntimeCall, RuntimeEvent, + RuntimeOrigin, +}; +use frame_support::{ + match_types, parameter_types, + traits::{Everything, Nothing}, + weights::Weight, +}; use xcm::latest::prelude::*; use xcm_builder::{ - AllowUnpaidExecutionFrom, FixedWeightBounds, LocationInverter, ParentAsSuperuser, - ParentIsPreset, SovereignSignedViaLocation, + AllowExplicitUnpaidExecutionFrom, FixedWeightBounds, ParentAsSuperuser, ParentIsPreset, + SovereignSignedViaLocation, }; parameter_types! { pub const RococoLocation: MultiLocation = MultiLocation::parent(); - pub const RococoNetwork: NetworkId = NetworkId::Polkadot; - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub const RococoNetwork: Option = Some(NetworkId::Rococo); + pub UniversalLocation: InteriorMultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); } /// This is the type we use to convert an (incoming) XCM origin into a local `Origin` instance, @@ -46,8 +53,9 @@ match_types! { parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } pub struct XcmConfig; @@ -58,14 +66,23 @@ impl xcm_executor::Config for XcmConfig { type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = (); // balances not supported type IsTeleporter = (); // balances not supported - type LocationInverter = LocationInverter; - type Barrier = AllowUnpaidExecutionFrom; + type UniversalLocation = UniversalLocation; + type Barrier = AllowExplicitUnpaidExecutionFrom; type Weigher = FixedWeightBounds; // balances not supported type Trader = (); // balances not supported type ResponseHandler = (); // Don't handle responses for now. type AssetTrap = (); // don't trap for now type AssetClaims = (); // don't claim for now type SubscriptionService = (); // don't handle subscriptions for now + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/testing/penpal/Cargo.toml b/parachains/runtimes/testing/penpal/Cargo.toml index f398a93b187..b2b522a4639 100644 --- a/parachains/runtimes/testing/penpal/Cargo.toml +++ b/parachains/runtimes/testing/penpal/Cargo.toml @@ -12,7 +12,7 @@ edition = "2021" targets = ["x86_64-unknown-linux-gnu"] [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = ["derive"] } @@ -22,44 +22,44 @@ scale-info = { version = "2.3.1", default-features = false, features = ["derive" smallvec = "1.10.0" # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-benchmarking = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-try-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, optional = true, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-authorship = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-asset-tx-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } diff --git a/parachains/runtimes/testing/penpal/src/lib.rs b/parachains/runtimes/testing/penpal/src/lib.rs index 459cbc62eea..6fa29fe31fc 100644 --- a/parachains/runtimes/testing/penpal/src/lib.rs +++ b/parachains/runtimes/testing/penpal/src/lib.rs @@ -194,7 +194,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("penpal-parachain"), impl_name: create_runtime_str!("penpal-parachain"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 1, @@ -237,7 +237,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for 0.5 of a second of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); /// The version information used to identify this runtime when compiled natively. @@ -338,8 +338,6 @@ impl pallet_timestamp::Config for Runtime { impl pallet_authorship::Config for Runtime { type FindAuthor = pallet_session::FindAccountFromAuthorIndex; - type UncleGenerations = ConstU32<0>; - type FilterUncle = (); type EventHandler = (CollatorSelection,); } @@ -404,6 +402,7 @@ impl pallet_assets::Config for Runtime { type Freezer = (); type Extra = (); type WeightInfo = pallet_assets::weights::SubstrateWeight; + type CallbackHandle = (); type AssetAccountDeposit = AssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; #[cfg(feature = "runtime-benchmarks")] @@ -454,6 +453,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = (); + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -551,7 +551,7 @@ construct_runtime!( AssetTxPayment: pallet_asset_tx_payment::{Pallet, Event} = 12, // Collator support. The order of these 4 are important and shall not change. - Authorship: pallet_authorship::{Pallet, Call, Storage} = 20, + Authorship: pallet_authorship::{Pallet, Storage} = 20, CollatorSelection: pallet_collator_selection::{Pallet, Call, Storage, Event, Config} = 21, Session: pallet_session::{Pallet, Call, Storage, Event, Config} = 22, Aura: pallet_aura::{Pallet, Storage, Config} = 23, @@ -685,6 +685,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -702,6 +708,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { @@ -712,7 +724,7 @@ impl_runtime_apis! { #[cfg(feature = "try-runtime")] impl frame_try_runtime::TryRuntime for Runtime { - fn on_runtime_upgrade(checks: bool) -> (Weight, Weight) { + fn on_runtime_upgrade(checks: frame_try_runtime::UpgradeCheckSelect) -> (Weight, Weight) { let weight = Executive::try_runtime_upgrade(checks).unwrap(); (weight, RuntimeBlockWeights::get().max_block) } diff --git a/parachains/runtimes/testing/penpal/src/weights/block_weights.rs b/parachains/runtimes/testing/penpal/src/weights/block_weights.rs index ea8a341b58b..b2092d875c8 100644 --- a/parachains/runtimes/testing/penpal/src/weights/block_weights.rs +++ b/parachains/runtimes/testing/penpal/src/weights/block_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Importing a block with 0 Extrinsics. pub const BlockExecutionWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(5_000_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/testing/penpal/src/weights/extrinsic_weights.rs b/parachains/runtimes/testing/penpal/src/weights/extrinsic_weights.rs index 0512efb60e2..332c3b324bb 100644 --- a/parachains/runtimes/testing/penpal/src/weights/extrinsic_weights.rs +++ b/parachains/runtimes/testing/penpal/src/weights/extrinsic_weights.rs @@ -24,7 +24,7 @@ pub mod constants { parameter_types! { /// Executing a NO-OP `System::remarks` Extrinsic. pub const ExtrinsicBaseWeight: Weight = - Weight::from_ref_time(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000)); + Weight::from_parts(constants::WEIGHT_REF_TIME_PER_NANOS.saturating_mul(125_000), 0); } #[cfg(test)] diff --git a/parachains/runtimes/testing/penpal/src/xcm_config.rs b/parachains/runtimes/testing/penpal/src/xcm_config.rs index b4621d1ef2c..a7822879656 100644 --- a/parachains/runtimes/testing/penpal/src/xcm_config.rs +++ b/parachains/runtimes/testing/penpal/src/xcm_config.rs @@ -22,17 +22,18 @@ //! with statemine as the reserve. At present no derivative tokens are minted on receipt of a //! ReserveAssetTransferDeposited message but that will but the intension will be to support this soon. use super::{ - AccountId, AssetId as AssetIdPalletAssets, Assets, Balance, Balances, ParachainInfo, - ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, WeightToFee, - XcmpQueue, + AccountId, AllPalletsWithSystem, AssetId as AssetIdPalletAssets, Assets, Balance, Balances, + ParachainInfo, ParachainSystem, PolkadotXcm, Runtime, RuntimeCall, RuntimeEvent, RuntimeOrigin, + WeightToFee, XcmpQueue, }; use core::marker::PhantomData; use frame_support::{ match_types, parameter_types, traits::{ fungibles::{self, Balanced, CreditOf}, - Contains, Everything, Get, Nothing, + ConstU32, Contains, ContainsPair, Everything, Get, Nothing, }, + weights::Weight, }; use pallet_asset_tx_payment::HandleCredit; use pallet_xcm::XcmPassthrough; @@ -42,24 +43,21 @@ use polkadot_runtime_common::impls::ToAuthor; use sp_runtime::traits::Zero; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowKnownQueryResponses, AllowSubscriptionsFrom, - AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, AsPrefixedGeneralIndex, - ConvertedConcreteAssetId, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, - FungiblesAdapter, IsConcrete, LocationInverter, NativeAsset, ParentIsPreset, - RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, - SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, - UsingComponents, -}; -use xcm_executor::{ - traits::{FilterAssetLocation, JustTry}, - XcmExecutor, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowKnownQueryResponses, + AllowSubscriptionsFrom, AllowTopLevelPaidExecutionFrom, AsPrefixedGeneralIndex, + ConvertedConcreteId, CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, FungiblesAdapter, + IsConcrete, LocalMint, NativeAsset, ParentIsPreset, RelayChainAsNative, + SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, + SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, + WithComputedOrigin, }; +use xcm_executor::{traits::JustTry, XcmExecutor}; parameter_types! { pub const RelayLocation: MultiLocation = MultiLocation::parent(); - pub const RelayNetwork: NetworkId = NetworkId::Any; + pub const RelayNetwork: Option = None; pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub UniversalLocation: InteriorMultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); } /// Type for specifying how a `MultiLocation` can be converted into an `AccountId`. This is used @@ -93,7 +91,7 @@ pub type FungiblesTransactor = FungiblesAdapter< // Use this fungibles implementation: Assets, // Use this currency when it is a fungible asset matching the given location or name: - ConvertedConcreteAssetId< + ConvertedConcreteId< AssetIdPalletAssets, Balance, AsPrefixedGeneralIndex, @@ -105,7 +103,7 @@ pub type FungiblesTransactor = FungiblesAdapter< AccountId, // We only want to allow teleports of known assets. We use non-zero issuance as an indication // that this asset is known. - NonZeroIssuance, + LocalMint>, // The account to use for tracking teleports. CheckingAccount, >; @@ -136,8 +134,9 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); pub const MaxInstructions: u32 = 100; + pub const MaxAssetsIntoHolding: u32 = 64; } match_types! { @@ -154,15 +153,24 @@ pub type Barrier = DenyThenTry< DenyReserveTransferToRelayChain, ( TakeWeightCredit, - AllowTopLevelPaidExecutionFrom, - // Parent and its exec plurality get free execution - AllowUnpaidExecutionFrom, - // Assets Common Good parachain gets free execution - AllowUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, - // Subscriptions for version tracking are OK. - AllowSubscriptionsFrom, + // Allow XCMs with some computed origins to pass through. + WithComputedOrigin< + ( + // If the message is one that immediately attemps to pay for execution, then allow it. + AllowTopLevelPaidExecutionFrom, + // Common Good Assets parachain, parent and its exec plurality get free execution + AllowExplicitUnpaidExecutionFrom<( + CommonGoodAssetsParachain, + ParentOrParentsExecutivePlurality, + )>, + // Subscriptions for version tracking are OK. + AllowSubscriptionsFrom, + ), + UniversalLocation, + ConstU32<8>, + >, ), >; @@ -171,8 +179,8 @@ pub type AccountIdOf = ::AccountId; /// Asset filter that allows all assets from a certain location. pub struct AssetsFrom(PhantomData); -impl> FilterAssetLocation for AssetsFrom { - fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl> ContainsPair for AssetsFrom { + fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { let loc = T::get(); &loc == origin && matches!(asset, MultiAsset { id: AssetId::Concrete(asset_loc), fun: Fungible(_a) } @@ -198,8 +206,7 @@ pub struct AssetsToBlockAuthor(PhantomData); impl HandleCredit, pallet_assets::Pallet> for AssetsToBlockAuthor where R: pallet_authorship::Config + pallet_assets::Config, - AccountIdOf: - From + Into, + AccountIdOf: From + Into, { fn handle_credit(credit: CreditOf, pallet_assets::Pallet>) { if let Some(author) = pallet_authorship::Pallet::::author() { @@ -235,8 +242,8 @@ impl Reserve for MultiAsset { /// A `FilterAssetLocation` implementation. Filters multi native assets whose /// reserve is same with `origin`. pub struct MultiNativeAsset; -impl FilterAssetLocation for MultiNativeAsset { - fn filter_asset_location(asset: &MultiAsset, origin: &MultiLocation) -> bool { +impl ContainsPair for MultiNativeAsset { + fn contains(asset: &MultiAsset, origin: &MultiLocation) -> bool { if let Some(ref reserve) = asset.reserve() { if reserve == origin { return true @@ -266,7 +273,7 @@ impl xcm_executor::Config for XcmConfig { type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = MultiNativeAsset; // TODO: maybe needed to be replaced by Reserves type IsTeleporter = NativeAsset; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = @@ -275,6 +282,15 @@ impl xcm_executor::Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } /// No local origins on this chain are allowed to dispatch XCM sends/executions. @@ -284,11 +300,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -301,13 +322,21 @@ impl pallet_xcm::Config for Runtime { type XcmTeleportFilter = Everything; type XcmReserveTransferFilter = Everything; type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; // ^ Override for AdvertisedXcmVersion default type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } impl cumulus_pallet_xcm::Config for Runtime { diff --git a/parachains/runtimes/testing/rococo-parachain/Cargo.toml b/parachains/runtimes/testing/rococo-parachain/Cargo.toml index bdeaa9b9696..54aa2b9d378 100644 --- a/parachains/runtimes/testing/rococo-parachain/Cargo.toml +++ b/parachains/runtimes/testing/rococo-parachain/Cargo.toml @@ -10,37 +10,37 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.36" } -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", optional = true, default-features = false, branch = "polkadot-v0.9.40" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-assets = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Polkadot -pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +pallet-xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-pallet-aura-ext = { path = "../../../../pallets/aura-ext", default-features = false } @@ -56,7 +56,7 @@ parachains-common = { path = "../../../common", default-features = false } parachain-info = { path = "../../../pallets/parachain-info", default-features = false } [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] @@ -105,4 +105,6 @@ std = [ runtime-benchmarks = [ "frame-benchmarking/runtime-benchmarks", "pallet-assets/runtime-benchmarks", + "pallet-xcm/runtime-benchmarks", + "xcm-builder/runtime-benchmarks", ] diff --git a/parachains/runtimes/testing/rococo-parachain/src/lib.rs b/parachains/runtimes/testing/rococo-parachain/src/lib.rs index 4adc8ea5b5a..fc8cf36860b 100644 --- a/parachains/runtimes/testing/rococo-parachain/src/lib.rs +++ b/parachains/runtimes/testing/rococo-parachain/src/lib.rs @@ -44,7 +44,7 @@ pub use frame_support::{ match_types, parameter_types, traits::{ AsEnsureOriginWithArg, ConstU32, ConstU64, ConstU8, EitherOfDiverse, Everything, IsInVec, - Randomness, + Nothing, Randomness, }, weights::{ constants::{ @@ -67,11 +67,11 @@ pub use sp_runtime::{Perbill, Permill}; use parachains_common::{ impls::{AssetsFrom, NonZeroIssuance}, - AccountId, AssetId, Signature, + AccountId, AssetIdForTrustBackedAssets, Signature, }; use xcm_builder::{ - AllowKnownQueryResponses, AllowSubscriptionsFrom, AsPrefixedGeneralIndex, - ConvertedConcreteAssetId, FungiblesAdapter, + AllowKnownQueryResponses, AllowSubscriptionsFrom, AsPrefixedGeneralIndex, ConvertedConcreteId, + FungiblesAdapter, LocalMint, }; use xcm_executor::traits::JustTry; @@ -80,13 +80,13 @@ use pallet_xcm::{EnsureXcm, IsMajorityOfBody, XcmPassthrough}; use polkadot_parachain::primitives::Sibling; use xcm::latest::prelude::*; use xcm_builder::{ - AccountId32Aliases, AllowTopLevelPaidExecutionFrom, AllowUnpaidExecutionFrom, CurrencyAdapter, - EnsureXcmOrigin, FixedWeightBounds, IsConcrete, LocationInverter, NativeAsset, + AccountId32Aliases, AllowExplicitUnpaidExecutionFrom, AllowTopLevelPaidExecutionFrom, + CurrencyAdapter, EnsureXcmOrigin, FixedWeightBounds, IsConcrete, NativeAsset, ParentAsSuperuser, ParentIsPreset, RelayChainAsNative, SiblingParachainAsNative, SiblingParachainConvertsVia, SignedAccountId32AsNative, SignedToAccountId32, SovereignSignedViaLocation, TakeWeightCredit, UsingComponents, }; -use xcm_executor::{Config, XcmExecutor}; +use xcm_executor::XcmExecutor; pub type SessionHandlers = (); @@ -102,10 +102,10 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { spec_name: create_runtime_str!("test-parachain"), impl_name: create_runtime_str!("test-parachain"), authoring_version: 1, - spec_version: 9360, + spec_version: 9400, impl_version: 0, apis: RUNTIME_API_VERSIONS, - transaction_version: 4, + transaction_version: 6, state_version: 0, }; @@ -142,7 +142,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for .5 seconds of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); parameter_types! { @@ -278,9 +278,9 @@ impl cumulus_pallet_aura_ext::Config for Runtime {} parameter_types! { pub const RocLocation: MultiLocation = MultiLocation::parent(); - pub const RococoNetwork: NetworkId = NetworkId::Polkadot; + pub const RococoNetwork: Option = Some(NetworkId::Rococo); pub RelayChainOrigin: RuntimeOrigin = cumulus_pallet_xcm::Origin::Relay.into(); - pub Ancestry: MultiLocation = Parachain(ParachainInfo::parachain_id().into()).into(); + pub UniversalLocation: InteriorMultiLocation = X1(Parachain(ParachainInfo::parachain_id().into())); pub CheckingAccount: AccountId = PolkadotXcm::check_account(); } @@ -315,10 +315,10 @@ pub type FungiblesTransactor = FungiblesAdapter< // Use this fungibles implementation: Assets, // Use this currency when it is a fungible asset matching the given location or name: - ConvertedConcreteAssetId< - AssetId, + ConvertedConcreteId< + AssetIdForTrustBackedAssets, u64, - AsPrefixedGeneralIndex, + AsPrefixedGeneralIndex, JustTry, >, // Convert an XCM MultiLocation into a local account id: @@ -327,7 +327,7 @@ pub type FungiblesTransactor = FungiblesAdapter< AccountId, // We only want to allow teleports of known assets. We use non-zero issuance as an indication // that this asset is known. - NonZeroIssuance, + LocalMint>, // The account to use for tracking teleports. CheckingAccount, >; @@ -360,7 +360,7 @@ pub type XcmOriginToTransactDispatchOrigin = ( parameter_types! { // One XCM operation is 1_000_000_000 weight - almost certainly a conservative estimate. - pub UnitWeightCost: u64 = 1_000_000_000; + pub UnitWeightCost: Weight = Weight::from_parts(1_000_000_000, 64 * 1024); // One ROC buys 1 second of weight. pub const WeightPrice: (MultiLocation, u128) = (MultiLocation::parent(), ROC); pub const MaxInstructions: u32 = 100; @@ -379,9 +379,9 @@ match_types! { pub type Barrier = ( TakeWeightCredit, AllowTopLevelPaidExecutionFrom, - AllowUnpaidExecutionFrom, + AllowExplicitUnpaidExecutionFrom, // ^^^ Parent & its unit plurality gets free execution - AllowUnpaidExecutionFrom, + AllowExplicitUnpaidExecutionFrom, // Expected responses are OK. AllowKnownQueryResponses, // Subscriptions for version tracking are OK. @@ -389,6 +389,7 @@ pub type Barrier = ( ); parameter_types! { + pub MaxAssetsIntoHolding: u32 = 64; pub StatemintLocation: MultiLocation = MultiLocation::new(1, X1(Parachain(1000))); // ALWAYS ensure that the index in PalletInstance stays up-to-date with // Statemint's Assets pallet index @@ -399,7 +400,7 @@ parameter_types! { pub type Reserves = (NativeAsset, AssetsFrom); pub struct XcmConfig; -impl Config for XcmConfig { +impl xcm_executor::Config for XcmConfig { type RuntimeCall = RuntimeCall; type XcmSender = XcmRouter; // How to withdraw and deposit an asset. @@ -407,7 +408,7 @@ impl Config for XcmConfig { type OriginConverter = XcmOriginToTransactDispatchOrigin; type IsReserve = Reserves; type IsTeleporter = NativeAsset; // <- should be enough to allow teleportation of ROC - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type Barrier = Barrier; type Weigher = FixedWeightBounds; type Trader = UsingComponents, RocLocation, AccountId, Balances, ()>; @@ -415,6 +416,15 @@ impl Config for XcmConfig { type AssetTrap = PolkadotXcm; type AssetClaims = PolkadotXcm; type SubscriptionService = PolkadotXcm; + type PalletInstancesInfo = AllPalletsWithSystem; + type MaxAssetsIntoHolding = MaxAssetsIntoHolding; + type AssetLocker = (); + type AssetExchanger = (); + type FeeManager = (); + type MessageExporter = (); + type UniversalAliases = Nothing; + type CallDispatcher = RuntimeCall; + type SafeCallFilter = Everything; } /// Local origins on this chain are allowed to dispatch XCM sends/executions. @@ -424,11 +434,16 @@ pub type LocalOriginToLocation = SignedToAccountId32, + cumulus_primitives_utility::ParentAsUmp, // ..and XCMP to communicate with the sibling chains. XcmpQueue, ); +#[cfg(feature = "runtime-benchmarks")] +parameter_types! { + pub ReachableDest: Option = Some(Parent.into()); +} + impl pallet_xcm::Config for Runtime { type RuntimeEvent = RuntimeEvent; type SendXcmOrigin = EnsureXcmOrigin; @@ -437,13 +452,21 @@ impl pallet_xcm::Config for Runtime { type XcmExecuteFilter = Everything; type XcmExecutor = XcmExecutor; type XcmTeleportFilter = Everything; - type XcmReserveTransferFilter = frame_support::traits::Nothing; + type XcmReserveTransferFilter = Nothing; type Weigher = FixedWeightBounds; - type LocationInverter = LocationInverter; + type UniversalLocation = UniversalLocation; type RuntimeOrigin = RuntimeOrigin; type RuntimeCall = RuntimeCall; const VERSION_DISCOVERY_QUEUE_SIZE: u32 = 100; type AdvertisedXcmVersion = pallet_xcm::CurrentXcmVersion; + type Currency = Balances; + type CurrencyMatcher = (); + type TrustedLockers = (); + type SovereignAccountOf = LocationToAccountId; + type MaxLockers = ConstU32<8>; + type WeightInfo = pallet_xcm::TestWeightInfo; + #[cfg(feature = "runtime-benchmarks")] + type ReachableDest = ReachableDest; } pub struct MockMaintenanceStatusProvider; @@ -473,6 +496,7 @@ impl cumulus_pallet_xcmp_queue::Config for Runtime { type ControllerOrigin = EnsureRoot; type ControllerOriginConverter = XcmOriginToTransactDispatchOrigin; type WeightInfo = cumulus_pallet_xcmp_queue::weights::SubstrateWeight; + type PriceForSiblingDelivery = (); } impl cumulus_pallet_dmp_queue::Config for Runtime { @@ -506,8 +530,8 @@ pub type AdminOrigin = impl pallet_assets::Config for Runtime { type RuntimeEvent = RuntimeEvent; type Balance = u64; - type AssetId = AssetId; - type AssetIdParameter = codec::Compact; + type AssetId = AssetIdForTrustBackedAssets; + type AssetIdParameter = codec::Compact; type Currency = Balances; type CreateOrigin = AsEnsureOriginWithArg>; type ForceOrigin = AdminOrigin; @@ -519,6 +543,7 @@ impl pallet_assets::Config for Runtime { type Freezer = (); type Extra = (); type WeightInfo = pallet_assets::weights::SubstrateWeight; + type CallbackHandle = (); type AssetAccountDeposit = AssetAccountDeposit; type RemoveItemsLimit = frame_support::traits::ConstU32<1000>; #[cfg(feature = "runtime-benchmarks")] @@ -716,6 +741,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_fee_details(uxt, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl pallet_transaction_payment_rpc_runtime_api::TransactionPaymentCallApi @@ -733,6 +764,12 @@ impl_runtime_apis! { ) -> pallet_transaction_payment::FeeDetails { TransactionPayment::query_call_fee_details(call, len) } + fn query_weight_to_fee(weight: Weight) -> Balance { + TransactionPayment::weight_to_fee(weight) + } + fn query_length_to_fee(length: u32) -> Balance { + TransactionPayment::length_to_fee(length) + } } impl cumulus_primitives_core::CollectCollationInfo for Runtime { diff --git a/polkadot-parachain/Cargo.toml b/polkadot-parachain/Cargo.toml index 07e360661ea..c8f0170324f 100644 --- a/polkadot-parachain/Cargo.toml +++ b/polkadot-parachain/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "polkadot-parachain-bin" -version = "0.9.360" +version = "0.9.400" authors = ["Parity Technologies "] build = "build.rs" edition = "2021" @@ -11,13 +11,13 @@ name = "polkadot-parachain" path = "src/main.rs" [dependencies] -async-trait = "0.1.59" -clap = { version = "4.0.29", features = ["derive"] } +async-trait = "0.1.66" +clap = { version = "4.1.8", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.0.0" } -futures = "0.3.25" +futures = "0.3.26" hex-literal = "0.3.4" log = "0.4.17" -serde = { version = "1.0.151", features = ["derive"] } +serde = { version = "1.0.152", features = ["derive"] } # Local rococo-parachain-runtime = { path = "../parachains/runtimes/testing/rococo-parachain" } @@ -30,53 +30,53 @@ collectives-polkadot-runtime = { path = "../parachains/runtimes/collectives/coll contracts-rococo-runtime = { path = "../parachains/runtimes/contracts/contracts-rococo" } bridge-hub-rococo-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-rococo" } bridge-hub-kusama-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-kusama" } +bridge-hub-polkadot-runtime = { path = "../parachains/runtimes/bridge-hubs/bridge-hub-polkadot" } penpal-runtime = { path = "../parachains/runtimes/testing/penpal" } jsonrpsee = { version = "0.16.2", features = ["server"] } parachains-common = { path = "../parachains/common" } # Substrate -frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-serializer = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.36" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-state-trie-migration-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-benchmarking = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-benchmarking-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network-sync = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keystore = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-consensus-aura = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-sysinfo = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-serializer = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-prometheus-endpoint = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +try-runtime-cli = { git = "https://github.com/paritytech/substrate", optional = true , branch = "polkadot-v0.9.40" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-rpc-system = { package = "substrate-frame-rpc-system", git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-transaction-payment-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-state-trie-migration-rpc = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-client-cli = { path = "../client/cli" } @@ -84,22 +84,21 @@ cumulus-client-consensus-aura = { path = "../client/consensus/aura" } cumulus-client-consensus-relay-chain = { path = "../client/consensus/relay-chain" } cumulus-client-consensus-common = { path = "../client/consensus/common" } cumulus-client-service = { path = "../client/service" } -cumulus-client-network = { path = "../client/network" } cumulus-primitives-core = { path = "../primitives/core" } cumulus-primitives-parachain-inherent = { path = "../primitives/parachain-inherent" } cumulus-relay-chain-interface = { path = "../client/relay-chain-interface" } [build-dependencies] -substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-build-script-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [dev-dependencies] assert_cmd = "2.0" -nix = "0.25" -tempfile = "3.3.0" -tokio = { version = "1.23.0", features = ["macros", "time", "parking_lot"] } +nix = { version = "0.26.1", features = ["signal"] } +tempfile = "3.4.0" +tokio = { version = "1.26.0", features = ["macros", "time", "parking_lot"] } wait-timeout = "0.2" # purge_chain_works works with rococo-local and needs to allow this -polkadot-cli = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.36" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", features = ["rococo-native"] , branch = "release-v0.9.40" } [features] default = [] @@ -108,6 +107,14 @@ runtime-benchmarks = [ "statemint-runtime/runtime-benchmarks", "statemine-runtime/runtime-benchmarks", "westmint-runtime/runtime-benchmarks", + "bridge-hub-rococo-runtime/runtime-benchmarks", + "bridge-hub-kusama-runtime/runtime-benchmarks", + "bridge-hub-polkadot-runtime/runtime-benchmarks", + "collectives-polkadot-runtime/runtime-benchmarks", + "rococo-parachain-runtime/runtime-benchmarks", + "contracts-rococo-runtime/runtime-benchmarks", + "contracts-rococo-runtime/runtime-benchmarks", + "penpal-runtime/runtime-benchmarks", ] try-runtime = [ "statemint-runtime/try-runtime", diff --git a/polkadot-parachain/src/chain_spec/bridge_hubs.rs b/polkadot-parachain/src/chain_spec/bridge_hubs.rs index f04f38fb96e..f3c6dd1a989 100644 --- a/polkadot-parachain/src/chain_spec/bridge_hubs.rs +++ b/polkadot-parachain/src/chain_spec/bridge_hubs.rs @@ -35,6 +35,14 @@ pub enum BridgeHubRuntimeType { KusamaLocal, // used by benchmarks KusamaDevelopment, + + Polkadot, + PolkadotLocal, + // used by benchmarks + PolkadotDevelopment, + + // used with kusama runtime + Westend, } impl FromStr for BridgeHubRuntimeType { @@ -42,9 +50,14 @@ impl FromStr for BridgeHubRuntimeType { fn from_str(value: &str) -> Result { match value { + polkadot::BRIDGE_HUB_POLKADOT => Ok(BridgeHubRuntimeType::Polkadot), + polkadot::BRIDGE_HUB_POLKADOT_LOCAL => Ok(BridgeHubRuntimeType::PolkadotLocal), + polkadot::BRIDGE_HUB_POLKADOT_DEVELOPMENT => + Ok(BridgeHubRuntimeType::PolkadotDevelopment), kusama::BRIDGE_HUB_KUSAMA => Ok(BridgeHubRuntimeType::Kusama), kusama::BRIDGE_HUB_KUSAMA_LOCAL => Ok(BridgeHubRuntimeType::KusamaLocal), kusama::BRIDGE_HUB_KUSAMA_DEVELOPMENT => Ok(BridgeHubRuntimeType::KusamaDevelopment), + westend::BRIDGE_HUB_WESTEND => Ok(BridgeHubRuntimeType::Westend), rococo::BRIDGE_HUB_ROCOCO => Ok(BridgeHubRuntimeType::Rococo), rococo::BRIDGE_HUB_ROCOCO_LOCAL => Ok(BridgeHubRuntimeType::RococoLocal), rococo::BRIDGE_HUB_ROCOCO_DEVELOPMENT => Ok(BridgeHubRuntimeType::RococoDevelopment), @@ -60,10 +73,16 @@ impl BridgeHubRuntimeType { pub fn chain_spec_from_json_file(&self, path: PathBuf) -> Result, String> { match self { + BridgeHubRuntimeType::Polkadot | + BridgeHubRuntimeType::PolkadotLocal | + BridgeHubRuntimeType::PolkadotDevelopment => + Ok(Box::new(polkadot::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Kusama | BridgeHubRuntimeType::KusamaLocal | BridgeHubRuntimeType::KusamaDevelopment => Ok(Box::new(kusama::BridgeHubChainSpec::from_json_file(path)?)), + BridgeHubRuntimeType::Westend => + Ok(Box::new(westend::BridgeHubChainSpec::from_json_file(path)?)), BridgeHubRuntimeType::Rococo | BridgeHubRuntimeType::RococoLocal | BridgeHubRuntimeType::RococoDevelopment => @@ -75,6 +94,22 @@ impl BridgeHubRuntimeType { pub fn load_config(&self) -> Result, String> { match self { + BridgeHubRuntimeType::Polkadot => + Ok(Box::new(polkadot::BridgeHubChainSpec::from_json_bytes( + &include_bytes!("../../../parachains/chain-specs/bridge-hub-polkadot.json")[..], + )?)), + BridgeHubRuntimeType::PolkadotLocal => Ok(Box::new(polkadot::local_config( + polkadot::BRIDGE_HUB_POLKADOT_LOCAL, + "Polkadot BridgeHub Local", + "polkadot-local", + ParaId::new(1002), + ))), + BridgeHubRuntimeType::PolkadotDevelopment => Ok(Box::new(polkadot::local_config( + polkadot::BRIDGE_HUB_POLKADOT_DEVELOPMENT, + "Polkadot BridgeHub Development", + "polkadot-dev", + ParaId::new(1002), + ))), BridgeHubRuntimeType::Kusama => Ok(Box::new(kusama::BridgeHubChainSpec::from_json_bytes( &include_bytes!("../../../parachains/chain-specs/bridge-hub-kusama.json")[..], @@ -91,6 +126,10 @@ impl BridgeHubRuntimeType { "kusama-dev", ParaId::new(1003), ))), + BridgeHubRuntimeType::Westend => + Ok(Box::new(westend::BridgeHubChainSpec::from_json_bytes( + &include_bytes!("../../../parachains/chain-specs/bridge-hub-westend.json")[..], + )?)), BridgeHubRuntimeType::Rococo => Ok(Box::new(rococo::live_config( rococo::BRIDGE_HUB_ROCOCO, "Rococo BridgeHub", @@ -116,22 +155,26 @@ impl BridgeHubRuntimeType { wococo::BRIDGE_HUB_WOCOCO, "Wococo BridgeHub", "wococo", - ParaId::new(1013), + ParaId::new(1014), ))), BridgeHubRuntimeType::WococoLocal => Ok(Box::new(wococo::local_config( wococo::BRIDGE_HUB_WOCOCO_LOCAL, "Wococo BridgeHub Local", "wococo-local", - ParaId::new(1013), + ParaId::new(1014), ))), } } pub fn runtime_version(&self) -> &'static RuntimeVersion { match self { + BridgeHubRuntimeType::Polkadot | + BridgeHubRuntimeType::PolkadotLocal | + BridgeHubRuntimeType::PolkadotDevelopment => &bridge_hub_polkadot_runtime::VERSION, BridgeHubRuntimeType::Kusama | BridgeHubRuntimeType::KusamaLocal | BridgeHubRuntimeType::KusamaDevelopment => &bridge_hub_kusama_runtime::VERSION, + BridgeHubRuntimeType::Westend => &bridge_hub_kusama_runtime::VERSION, BridgeHubRuntimeType::Rococo | BridgeHubRuntimeType::RococoLocal | BridgeHubRuntimeType::RococoDevelopment | @@ -373,7 +416,7 @@ pub mod wococo { } } -/// Sub-module for Kusama setup (reuses stuff from Rococo) +/// Sub-module for Kusama setup pub mod kusama { use super::{BridgeHubBalance, ParaId}; use crate::chain_spec::{ @@ -495,3 +538,135 @@ pub mod kusama { } } } + +/// Sub-module for Westend setup (uses Kusama runtime) +pub mod westend { + use crate::chain_spec::bridge_hubs::kusama; + + pub(crate) const BRIDGE_HUB_WESTEND: &str = "bridge-hub-westend"; + pub type BridgeHubChainSpec = kusama::BridgeHubChainSpec; + pub type RuntimeApi = bridge_hub_kusama_runtime::RuntimeApi; +} + +/// Sub-module for Polkadot setup +pub mod polkadot { + use super::{BridgeHubBalance, ParaId}; + use crate::chain_spec::{ + get_account_id_from_seed, get_collator_keys_from_seed, Extensions, SAFE_XCM_VERSION, + }; + use parachains_common::{AccountId, AuraId}; + use sc_chain_spec::ChainType; + use sp_core::sr25519; + + pub(crate) const BRIDGE_HUB_POLKADOT: &str = "bridge-hub-polkadot"; + pub(crate) const BRIDGE_HUB_POLKADOT_LOCAL: &str = "bridge-hub-polkadot-local"; + pub(crate) const BRIDGE_HUB_POLKADOT_DEVELOPMENT: &str = "bridge-hub-polkadot-dev"; + const BRIDGE_HUB_POLKADOT_ED: BridgeHubBalance = + bridge_hub_polkadot_runtime::constants::currency::EXISTENTIAL_DEPOSIT; + + /// Specialized `ChainSpec` for the normal parachain runtime. + pub type BridgeHubChainSpec = + sc_service::GenericChainSpec; + pub type RuntimeApi = bridge_hub_polkadot_runtime::RuntimeApi; + + pub fn local_config( + id: &str, + chain_name: &str, + relay_chain: &str, + para_id: ParaId, + ) -> BridgeHubChainSpec { + let mut properties = sc_chain_spec::Properties::new(); + properties.insert("ss58Format".into(), 0.into()); + properties.insert("tokenSymbol".into(), "DOT".into()); + properties.insert("tokenDecimals".into(), 10.into()); + + BridgeHubChainSpec::from_genesis( + // Name + chain_name, + // ID + super::ensure_id(id).expect("invalid id"), + ChainType::Local, + move || { + genesis( + // initial collators. + vec![ + ( + get_account_id_from_seed::("Alice"), + get_collator_keys_from_seed::("Alice"), + ), + ( + get_account_id_from_seed::("Bob"), + get_collator_keys_from_seed::("Bob"), + ), + ], + vec![ + get_account_id_from_seed::("Alice"), + get_account_id_from_seed::("Bob"), + get_account_id_from_seed::("Charlie"), + get_account_id_from_seed::("Dave"), + get_account_id_from_seed::("Eve"), + get_account_id_from_seed::("Ferdie"), + get_account_id_from_seed::("Alice//stash"), + get_account_id_from_seed::("Bob//stash"), + get_account_id_from_seed::("Charlie//stash"), + get_account_id_from_seed::("Dave//stash"), + get_account_id_from_seed::("Eve//stash"), + get_account_id_from_seed::("Ferdie//stash"), + ], + para_id, + ) + }, + Vec::new(), + None, + None, + None, + Some(properties), + Extensions { relay_chain: relay_chain.to_string(), para_id: para_id.into() }, + ) + } + + fn genesis( + invulnerables: Vec<(AccountId, AuraId)>, + endowed_accounts: Vec, + id: ParaId, + ) -> bridge_hub_polkadot_runtime::GenesisConfig { + bridge_hub_polkadot_runtime::GenesisConfig { + system: bridge_hub_polkadot_runtime::SystemConfig { + code: bridge_hub_polkadot_runtime::WASM_BINARY + .expect("WASM binary was not build, please build it!") + .to_vec(), + }, + balances: bridge_hub_polkadot_runtime::BalancesConfig { + balances: endowed_accounts + .iter() + .cloned() + .map(|k| (k, BRIDGE_HUB_POLKADOT_ED * 4096)) + .collect(), + }, + parachain_info: bridge_hub_polkadot_runtime::ParachainInfoConfig { parachain_id: id }, + collator_selection: bridge_hub_polkadot_runtime::CollatorSelectionConfig { + invulnerables: invulnerables.iter().cloned().map(|(acc, _)| acc).collect(), + candidacy_bond: BRIDGE_HUB_POLKADOT_ED * 16, + ..Default::default() + }, + session: bridge_hub_polkadot_runtime::SessionConfig { + keys: invulnerables + .into_iter() + .map(|(acc, aura)| { + ( + acc.clone(), // account id + acc, // validator id + bridge_hub_polkadot_runtime::SessionKeys { aura }, // session keys + ) + }) + .collect(), + }, + aura: Default::default(), + aura_ext: Default::default(), + parachain_system: Default::default(), + polkadot_xcm: bridge_hub_polkadot_runtime::PolkadotXcmConfig { + safe_xcm_version: Some(SAFE_XCM_VERSION), + }, + } + } +} diff --git a/polkadot-parachain/src/command.rs b/polkadot-parachain/src/command.rs index 3cb5164565c..4270677e0bf 100644 --- a/polkadot-parachain/src/command.rs +++ b/polkadot-parachain/src/command.rs @@ -18,9 +18,9 @@ use crate::{ chain_spec, cli::{Cli, RelayChainCli, Subcommand}, service::{ - new_partial, Block, BridgeHubKusamaRuntimeExecutor, BridgeHubRococoRuntimeExecutor, - CollectivesPolkadotRuntimeExecutor, StatemineRuntimeExecutor, StatemintRuntimeExecutor, - WestmintRuntimeExecutor, + new_partial, Block, BridgeHubKusamaRuntimeExecutor, BridgeHubPolkadotRuntimeExecutor, + BridgeHubRococoRuntimeExecutor, CollectivesPolkadotRuntimeExecutor, + StatemineRuntimeExecutor, StatemintRuntimeExecutor, WestmintRuntimeExecutor, }, }; use codec::Encode; @@ -479,6 +479,19 @@ macro_rules! construct_async_run { }, Runtime::BridgeHub(bridge_hub_runtime_type) => { match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => { @@ -492,6 +505,17 @@ macro_rules! construct_async_run { { $( $code )* }.map(|v| (v, task_manager)) }) }, + chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => { + runner.async_run(|$config| { + let $components = new_partial::( + &$config, + crate::service::aura_build_import_queue::<_, AuraId>, + )?; + + let task_manager = $components.task_manager; + { $( $code )* }.map(|v| (v, task_manager)) + }) + }, chain_spec::bridge_hubs::BridgeHubRuntimeType::Rococo | chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoDevelopment => { @@ -619,6 +643,10 @@ pub fn run() -> Result<()> { Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => cmd.run::(config), Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => + cmd.run::(config), chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => @@ -676,74 +704,97 @@ pub fn run() -> Result<()> { }, #[cfg(feature = "try-runtime")] Some(Subcommand::TryRuntime(cmd)) => { + use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; + use try_runtime_cli::block_building_info::timestamp_with_aura_info; + // grab the task manager. let runner = cli.create_runner(cmd)?; let registry = &runner.config().prometheus_config.as_ref().map(|cfg| &cfg.registry); let task_manager = sc_service::TaskManager::new(runner.config().tokio_handle.clone(), *registry) .map_err(|e| format!("Error: {:?}", e))?; - use sc_executor::{sp_wasm_interface::ExtendedHostFunctions, NativeExecutionDispatch}; type HostFunctionsOf = ExtendedHostFunctions< sp_io::SubstrateHostFunctions, ::ExtendHostFunctions, >; + let info_provider = timestamp_with_aura_info(6000); + match runner.config().chain_spec.runtime() { Runtime::Statemine => runner.async_run(|_| { Ok(( - cmd.run::>(), + cmd.run::, _>(Some( + info_provider, + )), task_manager, )) }), Runtime::Westmint => runner.async_run(|_| { - Ok((cmd.run::>(), task_manager)) + Ok(( + cmd.run::, _>(Some( + info_provider, + )), + task_manager, + )) }), Runtime::Statemint => runner.async_run(|_| { Ok(( - cmd.run::>(), + cmd.run::, _>(Some( + info_provider, + )), task_manager, )) }), Runtime::CollectivesPolkadot | Runtime::CollectivesWestend => runner.async_run(|_| { Ok(( - cmd.run::>(), + cmd.run::, _>(Some(info_provider)), task_manager, )) }), - Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { - chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => runner.async_run(|_| { - Ok(( - cmd.run::>(), + Runtime::BridgeHub(bridge_hub_runtime_type) => + match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => + runner.async_run(|_| { + Ok(( + cmd.run::, _>(Some(info_provider)), task_manager, )) - }), - chain_spec::bridge_hubs::BridgeHubRuntimeType::Rococo | - chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoLocal | - chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoDevelopment => runner.async_run(|_| { - Ok(( - cmd.run::>(), + }), + chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => runner.async_run(|_| { + Ok(( + cmd.run::, _>(Some(info_provider)), task_manager, )) - }), - _ => Err(format!( + }), + chain_spec::bridge_hubs::BridgeHubRuntimeType::Rococo | + chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoDevelopment => runner.async_run(|_| { + Ok(( + cmd.run::, _>(Some(info_provider)), + task_manager, + )) + }), + _ => Err(format!( "Chain '{:?}' doesn't support try-runtime for bridge_hub_runtime_type: {:?}", runner.config().chain_spec.runtime(), bridge_hub_runtime_type ) - .into()), - }, + .into()), + }, Runtime::Shell => runner.async_run(|_| { Ok(( - cmd.run::>(), + cmd.run::, _>(Some(info_provider)), task_manager, )) }), Runtime::ContractsRococo => runner.async_run(|_| { Ok(( - cmd.run::>(), + cmd.run::, _>(Some(info_provider)), task_manager, )) }), @@ -760,14 +811,11 @@ pub fn run() -> Result<()> { let collator_options = cli.run.collator_options(); runner.run_node_until_exit(|config| async move { - let hwbench = if !cli.no_hardware_benchmarks { + let hwbench = (!cli.no_hardware_benchmarks).then_some( config.database.path().map(|database_path| { let _ = std::fs::create_dir_all(&database_path); sc_sysinfo::gather_hwbench(Some(database_path)) - }) - } else { - None - }; + })).flatten(); let para_id = chain_spec::Extensions::try_get(&*config.chain_spec) .map(|e| e.para_id) @@ -781,7 +829,7 @@ pub fn run() -> Result<()> { let id = ParaId::from(para_id); let parachain_account = - AccountIdConversion::::into_account_truncating(&id); + AccountIdConversion::::into_account_truncating(&id); let state_version = Cli::native_runtime_version(&config.chain_spec).state_version(); @@ -862,6 +910,15 @@ pub fn run() -> Result<()> { .map(|r| r.0) .map_err(Into::into), Runtime::BridgeHub(bridge_hub_runtime_type) => match bridge_hub_runtime_type { + chain_spec::bridge_hubs::BridgeHubRuntimeType::Polkadot | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotLocal | + chain_spec::bridge_hubs::BridgeHubRuntimeType::PolkadotDevelopment => + crate::service::start_generic_aura_node::< + chain_spec::bridge_hubs::polkadot::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0), chain_spec::bridge_hubs::BridgeHubRuntimeType::Kusama | chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::KusamaDevelopment => @@ -871,6 +928,13 @@ pub fn run() -> Result<()> { >(config, polkadot_config, collator_options, id, hwbench) .await .map(|r| r.0), + chain_spec::bridge_hubs::BridgeHubRuntimeType::Westend => + crate::service::start_generic_aura_node::< + chain_spec::bridge_hubs::westend::RuntimeApi, + AuraId, + >(config, polkadot_config, collator_options, id, hwbench) + .await + .map(|r| r.0), chain_spec::bridge_hubs::BridgeHubRuntimeType::Rococo | chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoLocal | chain_spec::bridge_hubs::BridgeHubRuntimeType::RococoDevelopment => diff --git a/polkadot-parachain/src/service.rs b/polkadot-parachain/src/service.rs index 7fab9065e3a..2f9c21e1116 100644 --- a/polkadot-parachain/src/service.rs +++ b/polkadot-parachain/src/service.rs @@ -20,16 +20,15 @@ use cumulus_client_consensus_aura::{AuraConsensus, BuildAuraConsensusParams, Slo use cumulus_client_consensus_common::{ ParachainBlockImport as TParachainBlockImport, ParachainCandidate, ParachainConsensus, }; -use cumulus_client_network::BlockAnnounceValidator; use cumulus_client_service::{ - build_relay_chain_interface, prepare_node_config, start_collator, start_full_node, - StartCollatorParams, StartFullNodeParams, + build_network, build_relay_chain_interface, prepare_node_config, start_collator, + start_full_node, BuildNetworkParams, StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::{ - relay_chain::v2::{Hash as PHash, PersistedValidationData}, + relay_chain::{Hash as PHash, PersistedValidationData}, ParaId, }; -use cumulus_relay_chain_interface::{RelayChainError, RelayChainInterface}; +use cumulus_relay_chain_interface::RelayChainInterface; use sp_core::Pair; use jsonrpsee::RpcModule; @@ -44,17 +43,15 @@ use sc_consensus::{ BlockImportParams, ImportQueue, }; use sc_executor::WasmExecutor; -use sc_network::NetworkService; -use sc_network_common::service::NetworkBlock; +use sc_network::NetworkBlock; +use sc_network_sync::SyncingService; use sc_service::{Configuration, PartialComponents, TFullBackend, TFullClient, TaskManager}; use sc_telemetry::{Telemetry, TelemetryHandle, TelemetryWorker, TelemetryWorkerHandle}; use sp_api::{ApiExt, ConstructRuntimeApi}; -use sp_consensus::CacheKeyId; use sp_consensus_aura::AuraApi; use sp_keystore::SyncCryptoStorePtr; use sp_runtime::{ app_crypto::AppKey, - generic::BlockId, traits::{BlakeTwo256, Header as HeaderT}, }; use std::{marker::PhantomData, sync::Arc, time::Duration}; @@ -149,6 +146,21 @@ impl sc_executor::NativeExecutionDispatch for CollectivesPolkadotRuntimeExecutor } } +// Native BridgeHubPolkadot executor instance. +pub struct BridgeHubPolkadotRuntimeExecutor; + +impl sc_executor::NativeExecutionDispatch for BridgeHubPolkadotRuntimeExecutor { + type ExtendHostFunctions = frame_benchmarking::benchmarking::HostFunctions; + + fn dispatch(method: &str, data: &[u8]) -> Option> { + bridge_hub_polkadot_runtime::api::dispatch(method, data) + } + + fn native_version() -> sc_executor::NativeVersion { + bridge_hub_polkadot_runtime::native_version() + } +} + // Native BridgeHubKusama executor instance. pub struct BridgeHubKusamaRuntimeExecutor; @@ -346,7 +358,7 @@ where &TaskManager, Arc, Arc>>, - Arc>, + Arc>, SyncCryptoStorePtr, bool, ) -> Result>, sc_service::Error>, @@ -370,13 +382,7 @@ where hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; - - let block_announce_validator = - BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -384,18 +390,17 @@ where let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| { - Box::new(block_announce_validator) - })), - warp_sync: None, - })?; + }) + .await?; let rpc_client = client.clone(); let rpc_builder = Box::new(move |_, _| rpc_ext_builder(rpc_client.clone())); @@ -409,6 +414,7 @@ where keystore: params.keystore_container.sync_keystore(), backend: backend.clone(), network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: telemetry.as_mut(), @@ -416,6 +422,9 @@ where if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + if validator { + warn_if_slow_hardware(&hwbench); + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -428,12 +437,16 @@ where } let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let relay_chain_slot_duration = Duration::from_secs(6); + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + if validator { let parachain_consensus = build_consensus( client.clone(), @@ -443,7 +456,7 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - network, + sync_service, params.keystore_container.sync_keystore(), force_authoring, )?; @@ -462,6 +475,7 @@ where import_queue: import_queue_service, collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle), }; start_collator(params).await?; @@ -474,6 +488,7 @@ where relay_chain_interface, relay_chain_slot_duration, import_queue: import_queue_service, + recovery_handle: Box::new(overseer_handle), }; start_full_node(params)?; @@ -531,7 +546,7 @@ where &TaskManager, Arc, Arc>>, - Arc>, + Arc>, SyncCryptoStorePtr, bool, ) -> Result>, sc_service::Error>, @@ -554,13 +569,7 @@ where hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; - - let block_announce_validator = - BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -568,18 +577,17 @@ where let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| { - Box::new(block_announce_validator) - })), - warp_sync: None, - })?; + }) + .await?; let rpc_builder = { let client = client.clone(); @@ -606,6 +614,7 @@ where keystore: params.keystore_container.sync_keystore(), backend: backend.clone(), network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: telemetry.as_mut(), @@ -613,6 +622,9 @@ where if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + if validator { + warn_if_slow_hardware(&hwbench); + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -625,12 +637,15 @@ where } let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let relay_chain_slot_duration = Duration::from_secs(6); + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; if validator { let parachain_consensus = build_consensus( client.clone(), @@ -640,7 +655,7 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - network, + sync_service, params.keystore_container.sync_keystore(), force_authoring, )?; @@ -659,6 +674,7 @@ where import_queue: import_queue_service, collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle), }; start_collator(params).await?; @@ -671,6 +687,7 @@ where relay_chain_interface, relay_chain_slot_duration, import_queue: import_queue_service, + recovery_handle: Box::new(overseer_handle), }; start_full_node(params)?; @@ -971,11 +988,10 @@ where relay_parent: PHash, validation_data: &PersistedValidationData, ) -> Option> { - let block_id = BlockId::hash(parent.hash()); if self .client .runtime_api() - .has_api::>(&block_id) + .has_api::>(parent.hash()) .unwrap_or(false) { self.aura_consensus @@ -1011,13 +1027,11 @@ where async fn verify( &mut self, block_import: BlockImportParams, - ) -> Result<(BlockImportParams, Option)>>), String> { - let block_id = BlockId::hash(*block_import.header.parent_hash()); - + ) -> Result, String> { if self .client .runtime_api() - .has_api::>(&block_id) + .has_api::>(*block_import.header.parent_hash()) .unwrap_or(false) { self.aura_verifier.get_mut().verify(block_import).await @@ -1302,7 +1316,7 @@ where &TaskManager, Arc, Arc>>, - Arc>, + Arc>, SyncCryptoStorePtr, bool, ) -> Result>, sc_service::Error>, @@ -1325,13 +1339,7 @@ where hwbench.clone(), ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; - - let block_announce_validator = - BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; let force_authoring = parachain_config.force_authoring; let validator = parachain_config.role.is_authority(); @@ -1339,18 +1347,17 @@ where let transaction_pool = params.transaction_pool.clone(); let import_queue_service = params.import_queue.service(); - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(|_| { - Box::new(block_announce_validator) - })), - warp_sync: None, - })?; + }) + .await?; let rpc_builder = { let client = client.clone(); @@ -1376,6 +1383,7 @@ where keystore: params.keystore_container.sync_keystore(), backend: backend.clone(), network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: telemetry.as_mut(), @@ -1383,6 +1391,9 @@ where if let Some(hwbench) = hwbench { sc_sysinfo::print_hwbench(&hwbench); + if validator { + warn_if_slow_hardware(&hwbench); + } if let Some(ref mut telemetry) = telemetry { let telemetry_handle = telemetry.handle(); @@ -1395,12 +1406,15 @@ where } let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let relay_chain_slot_duration = Duration::from_secs(6); + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; if validator { let parachain_consensus = build_consensus( client.clone(), @@ -1410,7 +1424,7 @@ where &task_manager, relay_chain_interface.clone(), transaction_pool, - network, + sync_service, params.keystore_container.sync_keystore(), force_authoring, )?; @@ -1429,6 +1443,7 @@ where import_queue: import_queue_service, collator_key: collator_key.expect("Command line arguments do not allow this. qed"), relay_chain_slot_duration, + recovery_handle: Box::new(overseer_handle), }; start_collator(params).await?; @@ -1441,6 +1456,7 @@ where relay_chain_interface, relay_chain_slot_duration, import_queue: import_queue_service, + recovery_handle: Box::new(overseer_handle), }; start_full_node(params)?; @@ -1580,3 +1596,15 @@ pub async fn start_contracts_rococo_node( ) .await } + +/// Checks that the hardware meets the requirements and print a warning otherwise. +fn warn_if_slow_hardware(hwbench: &sc_sysinfo::HwBench) { + // Polkadot para-chains should generally use these requirements to ensure that the relay-chain + // will not take longer than expected to import its blocks. + if !frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE.check_hardware(hwbench) { + log::warn!( + "⚠️ The hardware does not meet the minimal requirements for role 'Authority' find out more at:\n\ + https://wiki.polkadot.network/docs/maintain-guides-how-to-validate-polkadot#reference-hardware" + ); + } +} diff --git a/primitives/core/Cargo.toml b/primitives/core/Cargo.toml index c2bf4fe3ade..0ff9cef218d 100644 --- a/primitives/core/Cargo.toml +++ b/primitives/core/Cargo.toml @@ -8,15 +8,16 @@ edition = "2021" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [ "derive" ] } # Substrate -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Polkadot -polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-core-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } [features] default = [ "std" ] diff --git a/primitives/core/src/lib.rs b/primitives/core/src/lib.rs index 516ff817dcf..d94224927dc 100644 --- a/primitives/core/src/lib.rs +++ b/primitives/core/src/lib.rs @@ -28,21 +28,23 @@ pub use polkadot_parachain::primitives::{ DmpMessageHandler, Id as ParaId, IsSystem, UpwardMessage, ValidationParams, XcmpMessageFormat, XcmpMessageHandler, }; -pub use polkadot_primitives::v2::{ +pub use polkadot_primitives::{ AbridgedHostConfiguration, AbridgedHrmpChannel, PersistedValidationData, }; +pub use xcm::latest::prelude::*; + /// A module that re-exports relevant relay chain definitions. pub mod relay_chain { pub use polkadot_core_primitives::*; - pub use polkadot_primitives::{runtime_api, v2, v2::well_known_keys}; + pub use polkadot_primitives::*; } /// An inbound HRMP message. -pub type InboundHrmpMessage = polkadot_primitives::v2::InboundHrmpMessage; +pub type InboundHrmpMessage = polkadot_primitives::InboundHrmpMessage; /// And outbound HRMP message -pub type OutboundHrmpMessage = polkadot_primitives::v2::OutboundHrmpMessage; +pub type OutboundHrmpMessage = polkadot_primitives::OutboundHrmpMessage; /// Error description of a message send failure. #[derive(Eq, PartialEq, Copy, Clone, RuntimeDebug, Encode, Decode)] @@ -94,10 +96,11 @@ pub trait GetChannelInfo { pub trait UpwardMessageSender { /// Send the given UMP message; return the expected number of blocks before the message will /// be dispatched or an error if the message cannot be sent. - fn send_upward_message(msg: UpwardMessage) -> Result; + /// return the hash of the message sent + fn send_upward_message(msg: UpwardMessage) -> Result<(u32, XcmHash), MessageSendError>; } impl UpwardMessageSender for () { - fn send_upward_message(_msg: UpwardMessage) -> Result { + fn send_upward_message(_msg: UpwardMessage) -> Result<(u32, XcmHash), MessageSendError> { Err(MessageSendError::NoChannel) } } @@ -204,11 +207,11 @@ pub struct CollationInfoV1 { /// The horizontal messages sent by the parachain. pub horizontal_messages: Vec, /// New validation code. - pub new_validation_code: Option, + pub new_validation_code: Option, /// The number of messages processed from the DMQ. pub processed_downward_messages: u32, /// The mark which specifies the block number up to which all inbound HRMP messages are processed. - pub hrmp_watermark: relay_chain::v2::BlockNumber, + pub hrmp_watermark: relay_chain::BlockNumber, } impl CollationInfoV1 { @@ -233,11 +236,11 @@ pub struct CollationInfo { /// The horizontal messages sent by the parachain. pub horizontal_messages: Vec, /// New validation code. - pub new_validation_code: Option, + pub new_validation_code: Option, /// The number of messages processed from the DMQ. pub processed_downward_messages: u32, /// The mark which specifies the block number up to which all inbound HRMP messages are processed. - pub hrmp_watermark: relay_chain::v2::BlockNumber, + pub hrmp_watermark: relay_chain::BlockNumber, /// The head data, aka encoded header, of the block that corresponds to the collation. pub head_data: HeadData, } diff --git a/primitives/parachain-inherent/Cargo.toml b/primitives/parachain-inherent/Cargo.toml index e402e1a23e1..deb80a34212 100644 --- a/primitives/parachain-inherent/Cargo.toml +++ b/primitives/parachain-inherent/Cargo.toml @@ -5,21 +5,21 @@ authors = ["Parity Technologies "] edition = "2021" [dependencies] -async-trait = { version = "0.1.59", optional = true } +async-trait = { version = "0.1.66", optional = true } codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [ "derive" ] } scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } tracing = { version = "0.1.37", optional = true } # Substrate -sc-client-api = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-storage = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.36" } -sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sc-client-api = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-storage = { git = "https://github.com/paritytech/substrate", optional = true, branch = "polkadot-v0.9.40" } +sp-trie = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../core", default-features = false } diff --git a/primitives/parachain-inherent/src/client_side.rs b/primitives/parachain-inherent/src/client_side.rs index 90234341100..6f2cd5eb504 100644 --- a/primitives/parachain-inherent/src/client_side.rs +++ b/primitives/parachain-inherent/src/client_side.rs @@ -19,7 +19,7 @@ use crate::ParachainInherentData; use codec::Decode; use cumulus_primitives_core::{ - relay_chain::{self, v2::HrmpChannelId, Hash as PHash}, + relay_chain::{self, Hash as PHash, HrmpChannelId}, ParaId, PersistedValidationData, }; use cumulus_relay_chain_interface::RelayChainInterface; diff --git a/primitives/timestamp/Cargo.toml b/primitives/timestamp/Cargo.toml index 963e6988c03..86061f67e75 100644 --- a/primitives/timestamp/Cargo.toml +++ b/primitives/timestamp/Cargo.toml @@ -7,12 +7,12 @@ description = "Provides timestamp related functionality for parachains." [dependencies] codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [ "derive" ] } -futures = "0.3.25" +futures = "0.3.26" # Substrate -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../core", default-features = false } @@ -20,9 +20,9 @@ cumulus-primitives-core = { path = "../core", default-features = false } [dev-dependencies] # Substrate -sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sp-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Cumulus cumulus-test-client = { path = "../../test/client" } diff --git a/primitives/timestamp/src/lib.rs b/primitives/timestamp/src/lib.rs index 5822503ac17..ddc2fe340dd 100644 --- a/primitives/timestamp/src/lib.rs +++ b/primitives/timestamp/src/lib.rs @@ -27,7 +27,7 @@ #![cfg_attr(not(feature = "std"), no_std)] -use cumulus_primitives_core::relay_chain::v2::Slot; +use cumulus_primitives_core::relay_chain::Slot; use sp_inherents::{Error, InherentData}; use sp_std::time::Duration; @@ -82,7 +82,7 @@ mod tests { ValidationParams, }; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; - use sp_runtime::{generic::BlockId, traits::Header as HeaderT}; + use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; use std::{env, process::Command, str::FromStr}; const SLOT_DURATION: u64 = 6000; @@ -106,14 +106,14 @@ mod tests { fn build_block( client: &Client, - at: BlockId, + hash: ::Hash, timestamp: u64, relay_chain_slot: Slot, ) -> (ParachainBlockData, PHash) { let sproof_builder = RelayStateSproofBuilder { current_slot: relay_chain_slot, ..Default::default() }; - let parent_header = client.header(&at).ok().flatten().expect("Genesis header exists"); + let parent_header = client.header(hash).ok().flatten().expect("Genesis header exists"); let relay_parent_storage_root = sproof_builder.clone().into_state_root_and_proof().0; @@ -125,7 +125,7 @@ mod tests { let block = client .init_block_builder_with_timestamp( - &at, + hash, Some(validation_data), sproof_builder, timestamp, @@ -146,19 +146,20 @@ mod tests { .expect("TIMESTAMP is a valid `u64`"); let block = - build_block(&client, BlockId::number(0), SLOT_DURATION, 1.into()).0.into_block(); - futures::executor::block_on(client.import(sp_consensus::BlockOrigin::Own, block)) - .unwrap(); + build_block(&client, client.chain_info().genesis_hash, SLOT_DURATION, 1.into()) + .0 + .into_block(); + futures::executor::block_on( + client.import(sp_consensus::BlockOrigin::Own, block.clone()), + ) + .unwrap(); + let hashof1 = block.hash(); let (block, relay_chain_root) = - build_block(&client, BlockId::number(1), timestamp, relay_chain_slot.into()); + build_block(&client, hashof1, timestamp, relay_chain_slot.into()); let header = call_validate_block( - client - .header(&BlockId::number(1)) - .ok() - .flatten() - .expect("Genesis header exists"), + client.header(hashof1).ok().flatten().expect("Genesis header exists"), block.clone(), relay_chain_root, ) diff --git a/primitives/utility/Cargo.toml b/primitives/utility/Cargo.toml index 83a97644093..d01f0d9ff27 100644 --- a/primitives/utility/Cargo.toml +++ b/primitives/utility/Cargo.toml @@ -9,14 +9,16 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = log = { version = "0.4.17", default-features = false } # Substrate -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Polkadot -xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } -xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-runtime-common = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-executor = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } +xcm-builder = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus @@ -29,6 +31,8 @@ std = [ "frame-support/std", "sp-runtime/std", "sp-std/std", + "sp-io/std", + "polkadot-runtime-common/std", "cumulus-primitives-core/std", "xcm/std", "xcm-builder/std", diff --git a/primitives/utility/src/lib.rs b/primitives/utility/src/lib.rs index a84000c815b..75ad7f417eb 100644 --- a/primitives/utility/src/lib.rs +++ b/primitives/utility/src/lib.rs @@ -20,20 +20,37 @@ #![cfg_attr(not(feature = "std"), no_std)] use codec::Encode; -use cumulus_primitives_core::UpwardMessageSender; +use cumulus_primitives_core::{MessageSendError, UpwardMessageSender}; use frame_support::{ - traits::tokens::{fungibles, fungibles::Inspect}, + traits::{ + tokens::{fungibles, fungibles::Inspect}, + Get, + }, weights::Weight, }; +use polkadot_runtime_common::xcm_sender::ConstantPrice; use sp_runtime::{traits::Saturating, SaturatedConversion}; - -use sp_std::marker::PhantomData; -use xcm::{ - latest::{prelude::*, Weight as XCMWeight}, - WrapVersion, -}; +use sp_std::{marker::PhantomData, prelude::*}; +use xcm::{latest::prelude::*, WrapVersion}; use xcm_builder::TakeRevenue; use xcm_executor::traits::{MatchesFungibles, TransactAsset, WeightTrader}; + +pub trait PriceForParentDelivery { + fn price_for_parent_delivery(message: &Xcm<()>) -> MultiAssets; +} + +impl PriceForParentDelivery for () { + fn price_for_parent_delivery(_: &Xcm<()>) -> MultiAssets { + MultiAssets::new() + } +} + +impl> PriceForParentDelivery for ConstantPrice { + fn price_for_parent_delivery(_: &Xcm<()>) -> MultiAssets { + T::get() + } +} + /// Xcm router which recognises the `Parent` destination and handles it by sending the message into /// the given UMP `UpwardMessageSender` implementation. Thus this essentially adapts an /// `UpwardMessageSender` trait impl into a `SendXcm` trait impl. @@ -41,25 +58,46 @@ use xcm_executor::traits::{MatchesFungibles, TransactAsset, WeightTrader}; /// NOTE: This is a pretty dumb "just send it" router; we will probably want to introduce queuing /// to UMP eventually and when we do, the pallet which implements the queuing will be responsible /// for the `SendXcm` implementation. -pub struct ParentAsUmp(PhantomData<(T, W)>); -impl SendXcm for ParentAsUmp { - fn send_xcm(dest: impl Into, msg: Xcm<()>) -> Result<(), SendError> { - let dest = dest.into(); +pub struct ParentAsUmp(PhantomData<(T, W, P)>); +impl SendXcm for ParentAsUmp +where + T: UpwardMessageSender, + W: WrapVersion, + P: PriceForParentDelivery, +{ + type Ticket = Vec; + + fn validate( + dest: &mut Option, + msg: &mut Option>, + ) -> SendResult> { + let d = dest.take().ok_or(SendError::MissingArgument)?; - if dest.contains_parents_only(1) { + if d.contains_parents_only(1) { // An upward message for the relay chain. + let xcm = msg.take().ok_or(SendError::MissingArgument)?; + let price = P::price_for_parent_delivery(&xcm); let versioned_xcm = - W::wrap_version(&dest, msg).map_err(|()| SendError::DestinationUnsupported)?; + W::wrap_version(&d, xcm).map_err(|()| SendError::DestinationUnsupported)?; let data = versioned_xcm.encode(); - T::send_upward_message(data).map_err(|e| SendError::Transport(e.into()))?; - - Ok(()) + Ok((data, price)) } else { - // Anything else is unhandled. This includes a message this is meant for us. - Err(SendError::CannotReachDestination(dest, msg)) + // Anything else is unhandled. This includes a message that is not meant for us. + // We need to make sure that dest/msg is not consumed here. + *dest = Some(d); + Err(SendError::NotApplicable) } } + + fn deliver(data: Vec) -> Result { + let (_, hash) = T::send_upward_message(data).map_err(|e| match e { + MessageSendError::TooBig => SendError::ExceedsMaxMessageSize, + e => SendError::Transport(e.into()), + })?; + + Ok(hash) + } } /// Contains information to handle refund/payment for xcm-execution @@ -108,7 +146,7 @@ impl< // If everything goes well, we charge. fn buy_weight( &mut self, - weight: XCMWeight, + weight: Weight, payment: xcm_executor::Assets, ) -> Result { log::trace!(target: "xcm::weight", "TakeFirstAssetTrader::buy_weight weight: {:?}, payment: {:?}", weight, payment); @@ -118,8 +156,6 @@ impl< return Err(XcmError::NotWithdrawable) } - let weight = Weight::from_ref_time(weight); - // We take the very first multiasset from payment // (assets are sorted by fungibility/amount after this conversion) let multiassets: MultiAssets = payment.clone().into(); @@ -161,15 +197,13 @@ impl< Ok(unused) } - fn refund_weight(&mut self, weight: XCMWeight) -> Option { + fn refund_weight(&mut self, weight: Weight) -> Option { log::trace!(target: "xcm::weight", "TakeFirstAssetTrader::refund_weight weight: {:?}", weight); if let Some(AssetTraderRefunder { mut weight_outstanding, outstanding_concrete_asset: MultiAsset { id, fun }, }) = self.0.clone() { - let weight = Weight::from_ref_time(weight).min(weight_outstanding); - // Get the local asset id in which we can refund fees let (local_asset_id, outstanding_balance) = Matcher::matches_fungibles(&(id.clone(), fun).into()).ok()?; @@ -255,7 +289,10 @@ impl< if let Some(receiver) = ReceiverAccount::get() { let ok = FungiblesMutateAdapter::deposit_asset( &revenue, - &(X1(AccountId32 { network: Any, id: receiver.into() }).into()), + &(X1(AccountId32 { network: None, id: receiver.into() }).into()), + // We aren't able to track the XCM that initiated the fee deposit, so we create a + // fake message hash here + &XcmContext::with_message_hash([0; 32]), ) .is_ok(); @@ -273,3 +310,245 @@ pub trait ChargeWeightInFungibles Result<>::Balance, XcmError>; } + +#[cfg(test)] +mod tests { + use super::*; + use cumulus_primitives_core::UpwardMessage; + use frame_support::{ + assert_ok, + dispatch::DispatchResult, + traits::tokens::{DepositConsequence, WithdrawConsequence}, + }; + use sp_runtime::DispatchError; + use xcm_executor::{traits::Error, Assets}; + + /// Validates [`validate`] for required Some(destination) and Some(message) + struct OkFixedXcmHashWithAssertingRequiredInputsSender; + impl OkFixedXcmHashWithAssertingRequiredInputsSender { + const FIXED_XCM_HASH: [u8; 32] = [9; 32]; + + fn fixed_delivery_asset() -> MultiAssets { + MultiAssets::new() + } + + fn expected_delivery_result() -> Result<(XcmHash, MultiAssets), SendError> { + Ok((Self::FIXED_XCM_HASH, Self::fixed_delivery_asset())) + } + } + impl SendXcm for OkFixedXcmHashWithAssertingRequiredInputsSender { + type Ticket = (); + + fn validate( + destination: &mut Option, + message: &mut Option>, + ) -> SendResult { + assert!(destination.is_some()); + assert!(message.is_some()); + Ok(((), OkFixedXcmHashWithAssertingRequiredInputsSender::fixed_delivery_asset())) + } + + fn deliver(_: Self::Ticket) -> Result { + Ok(Self::FIXED_XCM_HASH) + } + } + + /// Impl [`UpwardMessageSender`] that return `Other` error + struct OtherErrorUpwardMessageSender; + impl UpwardMessageSender for OtherErrorUpwardMessageSender { + fn send_upward_message(_: UpwardMessage) -> Result<(u32, XcmHash), MessageSendError> { + Err(MessageSendError::Other) + } + } + + #[test] + fn parent_as_ump_does_not_consume_dest_or_msg_on_not_applicable() { + // dummy message + let message = Xcm(vec![Trap(5)]); + + // ParentAsUmp - check dest is really not applicable + let dest = (Parent, Parent, Parent); + let mut dest_wrapper = Some(dest.clone().into()); + let mut msg_wrapper = Some(message.clone()); + assert_eq!( + Err(SendError::NotApplicable), + as SendXcm>::validate(&mut dest_wrapper, &mut msg_wrapper) + ); + + // check wrapper were not consumed + assert_eq!(Some(dest.clone().into()), dest_wrapper.take()); + assert_eq!(Some(message.clone()), msg_wrapper.take()); + + // another try with router chain with asserting sender + assert_eq!( + OkFixedXcmHashWithAssertingRequiredInputsSender::expected_delivery_result(), + send_xcm::<(ParentAsUmp<(), (), ()>, OkFixedXcmHashWithAssertingRequiredInputsSender)>( + dest.into(), + message + ) + ); + } + + #[test] + fn parent_as_ump_consumes_dest_and_msg_on_ok_validate() { + // dummy message + let message = Xcm(vec![Trap(5)]); + + // ParentAsUmp - check dest/msg is valid + let dest = (Parent, Here); + let mut dest_wrapper = Some(dest.clone().into()); + let mut msg_wrapper = Some(message.clone()); + assert!( as SendXcm>::validate( + &mut dest_wrapper, + &mut msg_wrapper + ) + .is_ok()); + + // check wrapper were consumed + assert_eq!(None, dest_wrapper.take()); + assert_eq!(None, msg_wrapper.take()); + + // another try with router chain with asserting sender + assert_eq!( + Err(SendError::Transport("Other")), + send_xcm::<( + ParentAsUmp, + OkFixedXcmHashWithAssertingRequiredInputsSender + )>(dest.into(), message) + ); + } + + #[test] + fn take_first_asset_trader_buy_weight_called_twice_throws_error() { + const AMOUNT: u128 = 100; + + // prepare prerequisites to instantiate `TakeFirstAssetTrader` + type TestAccountId = u32; + type TestAssetId = u32; + type TestBalance = u128; + struct TestAssets; + impl MatchesFungibles for TestAssets { + fn matches_fungibles(a: &MultiAsset) -> Result<(TestAssetId, TestBalance), Error> { + match a { + MultiAsset { fun: Fungible(amount), id: Concrete(_id) } => Ok((1, *amount)), + _ => Err(Error::AssetNotHandled), + } + } + } + impl fungibles::Inspect for TestAssets { + type AssetId = TestAssetId; + type Balance = TestBalance; + + fn total_issuance(_: Self::AssetId) -> Self::Balance { + todo!() + } + + fn minimum_balance(_: Self::AssetId) -> Self::Balance { + 0 + } + + fn balance(_: Self::AssetId, _: &TestAccountId) -> Self::Balance { + todo!() + } + + fn reducible_balance(_: Self::AssetId, _: &TestAccountId, _: bool) -> Self::Balance { + todo!() + } + + fn can_deposit( + _: Self::AssetId, + _: &TestAccountId, + _: Self::Balance, + _: bool, + ) -> DepositConsequence { + todo!() + } + + fn can_withdraw( + _: Self::AssetId, + _: &TestAccountId, + _: Self::Balance, + ) -> WithdrawConsequence { + todo!() + } + + fn asset_exists(_: Self::AssetId) -> bool { + todo!() + } + } + impl fungibles::Mutate for TestAssets { + fn mint_into(_: Self::AssetId, _: &TestAccountId, _: Self::Balance) -> DispatchResult { + todo!() + } + + fn burn_from( + _: Self::AssetId, + _: &TestAccountId, + _: Self::Balance, + ) -> Result { + todo!() + } + } + impl fungibles::Transfer for TestAssets { + fn transfer( + _: Self::AssetId, + _: &TestAccountId, + _: &TestAccountId, + _: Self::Balance, + _: bool, + ) -> Result { + todo!() + } + } + impl fungibles::Unbalanced for TestAssets { + fn set_balance( + _: Self::AssetId, + _: &TestAccountId, + _: Self::Balance, + ) -> DispatchResult { + todo!() + } + + fn set_total_issuance(_: Self::AssetId, _: Self::Balance) { + todo!() + } + } + + struct FeeChargerAssetsHandleRefund; + impl ChargeWeightInFungibles for FeeChargerAssetsHandleRefund { + fn charge_weight_in_fungibles( + _: >::AssetId, + _: Weight, + ) -> Result<>::Balance, XcmError> { + Ok(AMOUNT) + } + } + impl TakeRevenue for FeeChargerAssetsHandleRefund { + fn take_revenue(_: MultiAsset) {} + } + + // create new instance + type Trader = TakeFirstAssetTrader< + TestAccountId, + FeeChargerAssetsHandleRefund, + TestAssets, + TestAssets, + FeeChargerAssetsHandleRefund, + >; + let mut trader = ::new(); + + // prepare test data + let asset: MultiAsset = (Here, AMOUNT).into(); + let payment = Assets::from(asset.clone()); + let weight_to_buy = Weight::from_parts(1_000, 1_000); + + // lets do first call (success) + assert_ok!(trader.buy_weight(weight_to_buy, payment.clone())); + + // lets do second call (error) + assert_eq!( + trader.buy_weight(weight_to_buy, payment.clone()), + Err(XcmError::NotWithdrawable) + ); + } +} diff --git a/scripts/benchmarks-ci.sh b/scripts/benchmarks-ci.sh index d4ad99d7bbe..4b465400198 100755 --- a/scripts/benchmarks-ci.sh +++ b/scripts/benchmarks-ci.sh @@ -1,57 +1,25 @@ #!/usr/bin/env bash -steps=50 -repeat=20 category=$1 runtimeName=$2 artifactsDir=$3 +steps=${4:-50} +repeat=${5:-20} benchmarkOutput=./parachains/runtimes/$category/$runtimeName/src/weights benchmarkRuntimeName="$runtimeName-dev" -if [[ $runtimeName == "statemint" ]] || [[ $runtimeName == "statemine" ]] || [[ $runtimeName == "westmint" ]]; then - pallets=( - pallet_assets - pallet_balances - pallet_collator_selection - pallet_multisig - pallet_proxy - pallet_session - pallet_timestamp - pallet_utility - pallet_uniques - cumulus_pallet_xcmp_queue - frame_system - pallet_xcm_benchmarks::generic - pallet_xcm_benchmarks::fungible - ) -elif [[ $runtimeName == "collectives-polkadot" ]]; then - pallets=( - pallet_alliance - pallet_balances - pallet_collator_selection - pallet_collective - pallet_multisig - pallet_proxy - pallet_session - pallet_timestamp - pallet_utility - cumulus_pallet_xcmp_queue - frame_system - ) -elif [[ $runtimeName == "bridge-hub-rococo" ]] || [[ $runtimeName == "bridge-hub-kusama" ]]; then - pallets=( - frame_system - pallet_balances - pallet_collator_selection - pallet_multisig - pallet_session - pallet_timestamp - pallet_utility - cumulus_pallet_xcmp_queue - pallet_xcm_benchmarks::generic - pallet_xcm_benchmarks::fungible - ) +# Load all pallet names in an array. +pallets=($( + ${artifactsDir}/polkadot-parachain benchmark pallet --list --chain="${benchmarkRuntimeName}" |\ + tail -n+2 |\ + cut -d',' -f1 |\ + sort |\ + uniq +)) + +if [ ${#pallets[@]} -ne 0 ]; then + echo "[+] Benchmarking ${#pallets[@]} pallets for runtime $runtime" else echo "$runtimeName pallet list not found in benchmarks-ci.sh" exit 1 @@ -62,10 +30,10 @@ do output_file="${pallet//::/_}" extra_args="" # a little hack for pallet_xcm_benchmarks - we want to force custom implementation for XcmWeightInfo - if [[ "$pallet" == "pallet_xcm_benchmarks::generic" ]] || [[ "$pallet" == "pallet_xcm_benchmarks::fungible" ]]; then + if [[ "$pallet" == "pallet_xcm_benchmarks::generic" ]] || [[ "$pallet" == "pallet_xcm_benchmarks::fungible" ]]; then output_file="xcm/$output_file" extra_args="--template=./templates/xcm-bench-template.hbs" - fi + fi $artifactsDir/polkadot-parachain benchmark pallet \ $extra_args \ --chain=$benchmarkRuntimeName \ diff --git a/scripts/benchmarks.sh b/scripts/benchmarks.sh index 0ac2c3b74b4..0db74102f24 100755 --- a/scripts/benchmarks.sh +++ b/scripts/benchmarks.sh @@ -1,12 +1,17 @@ #!/usr/bin/env bash +target=${1:-production} +steps=${2:-50} +repeat=${3:-20} + __dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" -${__dir}/benchmarks-ci.sh collectives collectives-polkadot target/production +${__dir}/benchmarks-ci.sh collectives collectives-polkadot target/$target $steps $repeat -${__dir}/benchmarks-ci.sh assets statemine target/production -${__dir}/benchmarks-ci.sh assets statemint target/production -${__dir}/benchmarks-ci.sh assets westmint target/production +${__dir}/benchmarks-ci.sh assets statemine target/$target $steps $repeat +${__dir}/benchmarks-ci.sh assets statemint target/$target $steps $repeat +${__dir}/benchmarks-ci.sh assets westmint target/$target $steps $repeat -${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-kusama target/production -${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-rococo target/production +${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-polkadot target/$target $steps $repeat +${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-kusama target/$target $steps $repeat +${__dir}/benchmarks-ci.sh bridge-hubs bridge-hub-rococo target/$target $steps $repeat diff --git a/scripts/ci/changelog/Gemfile b/scripts/ci/changelog/Gemfile index f2d7c3bd716..46b058e3c50 100644 --- a/scripts/ci/changelog/Gemfile +++ b/scripts/ci/changelog/Gemfile @@ -16,6 +16,8 @@ gem 'optparse', '~> 0.1.1' gem 'logger', '~> 1.4' +gem 'changelogerator', '0.10.1' + gem 'test-unit', group: :dev gem 'rubocop', group: :dev, require: false diff --git a/scripts/ci/changelog/Gemfile.lock b/scripts/ci/changelog/Gemfile.lock index 855d7f91a54..893bec54919 100644 --- a/scripts/ci/changelog/Gemfile.lock +++ b/scripts/ci/changelog/Gemfile.lock @@ -4,6 +4,9 @@ GEM addressable (2.8.0) public_suffix (>= 2.0.2, < 5.0) ast (2.4.2) + changelogerator (0.10.1) + git_diff_parser (~> 3) + octokit (~> 4) faraday (1.8.0) faraday-em_http (~> 1.0) faraday-em_synchrony (~> 1.0) @@ -64,8 +67,10 @@ GEM PLATFORMS x86_64-darwin-20 + x86_64-darwin-22 DEPENDENCIES + changelogerator (= 0.10.1) git_diff_parser (~> 3) logger (~> 1.4) octokit (~> 4) diff --git a/scripts/ci/changelog/bin/changelog b/scripts/ci/changelog/bin/changelog index ac4c42d2cbc..8588828d651 100755 --- a/scripts/ci/changelog/bin/changelog +++ b/scripts/ci/changelog/bin/changelog @@ -15,6 +15,9 @@ logger = Logger.new($stdout) logger.level = Logger::DEBUG logger.debug('Starting') +changelogerator_version = `changelogerator --version` +logger.debug(changelogerator_version) + owner = 'paritytech' repo = 'cumulus' ref1 = ARGV[0] @@ -32,6 +35,9 @@ polkadot_ref2 = gh_cumulus.get_dependency_reference(ref2, 'polkadot-client') substrate_ref1 = gh_cumulus.get_dependency_reference(ref1, 'sp-io') substrate_ref2 = gh_cumulus.get_dependency_reference(ref2, 'sp-io') +logger.debug("Cumulus from: #{ref1}") +logger.debug("Cumulus to: #{ref2}") + logger.debug("Polkadot from: #{polkadot_ref1}") logger.debug("Polkadot to: #{polkadot_ref2}") @@ -76,20 +82,21 @@ else logger.debug("Re-using:#{substrate_data}") end -POLKADOT_COLLECTIVES_DIGEST = ENV['COLLECTIVES_POLKADOT_DIGEST'] || 'digests/polkadot-collectives-srtool-digest.json' +POLKADOT_COLLECTIVES_DIGEST = ENV['COLLECTIVES_POLKADOT_DIGEST'] || 'digests/collectives-polkadot-srtool-digest.json' SHELL_DIGEST = ENV['SHELL_DIGEST'] || 'digests/shell-srtool-digest.json' WESTMINT_DIGEST = ENV['WESTMINT_DIGEST'] || 'digests/westmint-srtool-digest.json' STATEMINE_DIGEST = ENV['STATEMINE_DIGEST'] || 'digests/statemine-srtool-digest.json' STATEMINT_DIGEST = ENV['STATEMINT_DIGEST'] || 'digests/statemint-srtool-digest.json' BRIDGE_HUB_ROCOCO_DIGEST = ENV['BRIDGE_HUB_ROCOCO_DIGEST'] || 'digests/bridge-hub-rococo-srtool-digest.json' BRIDGE_HUB_KUSAMA_DIGEST = ENV['BRIDGE_HUB_KUSAMA_DIGEST'] || 'digests/bridge-hub-kusama-srtool-digest.json' +BRIDGE_HUB_POLKADOT_DIGEST = ENV['BRIDGE_HUB_POLKADOT_DIGEST'] || 'digests/bridge-hub-polkadot-srtool-digest.json' ROCOCO_PARA_DIGEST = ENV['ROCOCO_PARA_DIGEST'] || 'digests/rococo-parachain-srtool-digest.json' CANVAS_KUSAMA_DIGEST = ENV['CANVAS_KUSAMA_DIGEST'] || 'digests/contracts-rococo-srtool-digest.json' logger.debug("Release type: #{ENV['RELEASE_TYPE']}") if ENV['RELEASE_TYPE'] && ENV['RELEASE_TYPE'] == 'client' - logger.debug("Building changelog without runtimes") + logger.debug('Building changelog without runtimes') cmd = format('jq \ --slurpfile cumulus %s \ --slurpfile substrate %s \ @@ -101,7 +108,7 @@ if ENV['RELEASE_TYPE'] && ENV['RELEASE_TYPE'] == 'client' }\' > context.json', cumulus_data, substrate_data, polkadot_data, ) else - logger.debug("Building changelog with runtimes") + logger.debug('Building changelog with runtimes') # Here we compose all the pieces together into one # single big json file. @@ -118,6 +125,7 @@ else --slurpfile srtool_polkadot_collectives %s \ --slurpfile srtool_bridge_hub_rococo %s \ --slurpfile srtool_bridge_hub_kusama %s \ + --slurpfile srtool_bridge_hub_polkadot %s \ -n \'{ cumulus: $cumulus[0], substrate: $substrate[0], @@ -131,7 +139,8 @@ else { name: "contracts", data: $srtool_contracts_rococo[0] }, { name: "polkadot-collectives", data: $srtool_polkadot_collectives[0] }, { name: "bridge-hub-rococo", data: $srtool_bridge_hub_rococo[0] }, - { name: "bridge-hub-kusama", data: $srtool_bridge_hub_kusama[0] } + { name: "bridge-hub-kusama", data: $srtool_bridge_hub_kusama[0] }, + { name: "bridge-hub-polkadot", data: $srtool_bridge_hub_polkadot[0] } ] }\' > context.json', cumulus_data, substrate_data, @@ -144,7 +153,8 @@ else CANVAS_KUSAMA_DIGEST, POLKADOT_COLLECTIVES_DIGEST, BRIDGE_HUB_ROCOCO_DIGEST, - BRIDGE_HUB_KUSAMA_DIGEST + BRIDGE_HUB_KUSAMA_DIGEST, + BRIDGE_HUB_POLKADOT_DIGEST ) end system(cmd) diff --git a/scripts/ci/changelog/templates/change.md.tera b/scripts/ci/changelog/templates/change.md.tera index e545b4cec9c..609a038789a 100644 --- a/scripts/ci/changelog/templates/change.md.tera +++ b/scripts/ci/changelog/templates/change.md.tera @@ -1,11 +1,11 @@ {# This macro shows ONE change #} {%- macro change(c, cml="[C]", dot="[P]", sub="[S]") -%} -{%- if c.meta.C and c.meta.C.value >= 5 -%} +{%- if c.meta.C and c.meta.C.agg.max >= 5 -%} {%- set prio = " ‼️ HIGH" -%} -{%- elif c.meta.C and c.meta.C.value >= 3 -%} +{%- elif c.meta.C and c.meta.C.agg.max >= 3 -%} {%- set prio = " ❗️ Medium" -%} -{%- elif c.meta.C and c.meta.C.value < 3 -%} +{%- elif c.meta.C and c.meta.C.agg.max < 3 -%} {%- set prio = " Low" -%} {%- else -%} {%- set prio = "" -%} @@ -13,13 +13,13 @@ {%- set audit = "" -%} {# -{%- if c.meta.D and c.meta.D.value == 1 -%} +{%- if c.meta.D and c.meta.D.D1 -%} {%- set audit = "✅ audited " -%} -{%- elif c.meta.D and c.meta.D.value == 2 -%} +{%- elif c.meta.D and c.meta.D.D2 -%} {%- set audit = "✅ trivial " -%} -{%- elif c.meta.D and c.meta.D.value == 3 -%} +{%- elif c.meta.D and c.meta.D.D3 -%} {%- set audit = "✅ trivial " -%} -{%- elif c.meta.D and c.meta.D.value == 5 -%} +{%- elif c.meta.D and c.meta.D.D5 -%} {%- set audit = "⏳ pending non-critical audit " -%} {%- else -%} {%- set audit = "" -%} @@ -35,7 +35,7 @@ {%- set repo = " " -%} {%- endif -%} {# #} -{%- if c.meta.T and c.meta.T.value == 6 -%} +{%- if c.meta.T and c.meta.T.T6 -%} {%- set xcm = " [✉️ XCM]" -%} {%- else -%} {%- set xcm = "" -%} diff --git a/scripts/ci/changelog/templates/changes.md.tera b/scripts/ci/changelog/templates/changes.md.tera index d691da0a53c..f1704546b0a 100644 --- a/scripts/ci/changelog/templates/changes.md.tera +++ b/scripts/ci/changelog/templates/changes.md.tera @@ -16,4 +16,6 @@ {% endif %} +{% include "changes_api.md.tera" %} + {% include "changes_misc.md.tera" %} diff --git a/scripts/ci/changelog/templates/changes_api.md.tera b/scripts/ci/changelog/templates/changes_api.md.tera new file mode 100644 index 00000000000..2379c178c03 --- /dev/null +++ b/scripts/ci/changelog/templates/changes_api.md.tera @@ -0,0 +1,19 @@ +{%- import "change.md.tera" as m_c -%} + +### API + +{#- The changes are sorted by merge date -#} +{% for pr in changes | sort(attribute="merged_at") -%} + +{%- if pr.meta.B -%} +{%- if pr.meta.B.B0 -%} +{#- We skip silent ones -#} +{%- else -%} + +{%- if pr.meta.B.B1 and pr.meta.T.T2 and not pr.title is containing("ompanion") %} +- {{ m_c::change(c=pr) }} +{%- endif -%} +{%- endif -%} + +{%- endif -%} +{%- endfor %} diff --git a/scripts/ci/changelog/templates/changes_client.md.tera b/scripts/ci/changelog/templates/changes_client.md.tera index 36fb6b9de68..05a521d6870 100644 --- a/scripts/ci/changelog/templates/changes_client.md.tera +++ b/scripts/ci/changelog/templates/changes_client.md.tera @@ -5,11 +5,11 @@ {%- for pr in changes | sort(attribute="merged_at") %} {%- if pr.meta.B %} - {%- if pr.meta.B.value == 0 %} + {%- if pr.meta.B.B0 %} {#- We skip silent ones -#} {%- else -%} - {%- if pr.meta.B.value == 5 and not pr.title is containing("ompanion") %} + {%- if pr.meta.B.B1 and pr.meta.T and pr.meta.T.T0 and not pr.title is containing("ompanion") %} - {{ m_c::change(c=pr) }} {%- endif -%} {% endif -%} diff --git a/scripts/ci/changelog/templates/changes_misc.md.tera b/scripts/ci/changelog/templates/changes_misc.md.tera index cf3b701f2cf..b36595bc5d6 100644 --- a/scripts/ci/changelog/templates/changes_misc.md.tera +++ b/scripts/ci/changelog/templates/changes_misc.md.tera @@ -4,10 +4,10 @@ {#- First pass to count #} {%- for pr in changes -%} {%- if pr.meta.B %} - {%- if pr.meta.B.value == 0 -%} + {%- if pr.meta.B.B0 -%} {#- We skip silent ones -#} {%- else -%} - {%- if pr.meta.B and pr.meta.B.value != 5 or pr.meta.C or not pr.meta.B %} + {%- if pr.meta.T and pr.meta.T.agg.max > 2 %} {%- set_global misc_count = misc_count + 1 -%} {%- endif -%} {% endif -%} @@ -24,10 +24,10 @@ There are other misc. changes. You can expand the list below to view them all. {#- The changes are sorted by merge date #} {%- for pr in changes | sort(attribute="merged_at") %} {%- if pr.meta.B and not pr.title is containing("ompanion") %} - {%- if pr.meta.B.value == 0 %} + {%- if pr.meta.B.B0 %} {#- We skip silent ones -#} {%- else -%} - {%- if pr.meta.B and pr.meta.B.value != 5 or pr.meta.C or not pr.meta.B %} + {%- if pr.meta.T and pr.meta.T.agg.max > 2 %} - {{ m_c::change(c=pr) }} {%- endif -%} {% endif -%} diff --git a/scripts/ci/changelog/templates/changes_runtime.md.tera b/scripts/ci/changelog/templates/changes_runtime.md.tera index 9525d73935a..39c27263765 100644 --- a/scripts/ci/changelog/templates/changes_runtime.md.tera +++ b/scripts/ci/changelog/templates/changes_runtime.md.tera @@ -5,12 +5,12 @@ {#- The changes are sorted by merge date -#} {% for pr in changes | sort(attribute="merged_at") -%} -{%- if pr.meta.B and pr.meta.X -%} -{%- if pr.meta.B.value == 0 -%} +{%- if pr.meta.B -%} +{%- if pr.meta.B.B0 -%} {#- We skip silent ones -#} {%- else -%} -{%- if pr.meta.B.value == 1 and pr.meta.X.value == 1 and not pr.title is containing("ompanion") %} +{%- if pr.meta.B.B1 and pr.meta.T.T1 and not pr.title is containing("ompanion") %} - {{ m_c::change(c=pr) }} {%- endif -%} {%- endif -%} diff --git a/scripts/ci/changelog/templates/debug.md.tera b/scripts/ci/changelog/templates/debug.md.tera index 43eb52a84db..4f0b14c00f1 100644 --- a/scripts/ci/changelog/templates/debug.md.tera +++ b/scripts/ci/changelog/templates/debug.md.tera @@ -1,4 +1,4 @@ -{%- set to_ignore = changes | filter(attribute="meta.B.value", value=0) %} +{%- set to_ignore = changes | filter(attribute="meta.B.B0") %} - -{%- if prio -%} +{% if prio -%} {{prio}}: {{text}} {%- else -%} @@ -43,9 +42,9 @@ The changes motivating this priority level are: {% for pr in changes | sort(attribute="merged_at") -%} {%- if pr.meta.C -%} - {%- if pr.meta.C.value == p %} + {%- if pr.meta.C.agg.max >= p %} - {{ m_c::change(c=pr) }} -{%- if pr.meta.B and pr.meta.X and pr.meta.B.value == 1 and pr.meta.X.value == 1 %} +{%- if pr.meta.B and pr.meta.B.B1 and pr.meta.T and pr.meta.T.T1 %} (RUNTIME) {% endif %} diff --git a/scripts/ci/changelog/templates/host_functions.md.tera b/scripts/ci/changelog/templates/host_functions.md.tera index fc84c090285..2a9b26e8090 100644 --- a/scripts/ci/changelog/templates/host_functions.md.tera +++ b/scripts/ci/changelog/templates/host_functions.md.tera @@ -4,10 +4,10 @@ {# We loop first to count the number of host functions but we do not display anything yet #} {%- for pr in changes -%} -{%- if pr.meta.B and pr.meta.B.value == 0 -%} +{%- if pr.meta.B and pr.meta.B.B0 -%} {#- We skip silent ones -#} {%- else -%} - {%- if pr.meta.E and pr.meta.E.value == 4 -%} + {%- if pr.meta.E and pr.meta.E.E4 -%} {%- set_global host_fn_count = host_fn_count + 1 -%} {% endif -%} {%- endif -%} @@ -26,10 +26,10 @@ {% for pr in changes | sort(attribute="merged_at") -%} -{%- if pr.meta.B and pr.meta.B.value == 0 -%} +{%- if pr.meta.B and pr.meta.B.B0 -%} {#- We skip silent ones -#} {%- else -%} - {%- if pr.meta.E and pr.meta.E.value == 4 -%} + {%- if pr.meta.E and pr.meta.E.E4 -%} - {{ m_c::change(c=pr) }} {% endif -%} {% endif -%} diff --git a/scripts/ci/changelog/templates/migrations-db.md.tera b/scripts/ci/changelog/templates/migrations-db.md.tera index d2fd8105e41..e840d991d9a 100644 --- a/scripts/ci/changelog/templates/migrations-db.md.tera +++ b/scripts/ci/changelog/templates/migrations-db.md.tera @@ -5,10 +5,10 @@ {% for pr in changes | sort(attribute="merged_at") -%} -{%- if pr.meta.B and pr.meta.B.value == 0 %} +{%- if pr.meta.B and pr.meta.B.B0 %} {#- We skip silent ones -#} {%- else -%} -{%- if pr.meta.E and pr.meta.E.value == 2 -%} +{%- if pr.meta.E and pr.meta.E.E2 -%} {%- set_global db_migration_count = db_migration_count + 1 -%} - {{ m_c::change(c=pr) }} {% endif -%} diff --git a/scripts/ci/changelog/templates/migrations-runtime.md.tera b/scripts/ci/changelog/templates/migrations-runtime.md.tera index 6c7bd287c91..f02499a84d7 100644 --- a/scripts/ci/changelog/templates/migrations-runtime.md.tera +++ b/scripts/ci/changelog/templates/migrations-runtime.md.tera @@ -4,10 +4,10 @@ {% for pr in changes | sort(attribute="merged_at") -%} -{%- if pr.meta.B and pr.meta.B.value == 0 %} +{%- if pr.meta.B and pr.meta.B.B0 %} {#- We skip silent ones -#} {%- else -%} -{%- if pr.meta.E and pr.meta.E.value == 1 -%} +{%- if pr.meta.E and pr.meta.E.E1 -%} - {{ m_c::change(c=pr) }} {% endif -%} {% endif -%} diff --git a/scripts/ci/gitlab/pipeline/benchmarks.yml b/scripts/ci/gitlab/pipeline/benchmarks.yml index 9cbd4ac827d..d1fdd64c341 100644 --- a/scripts/ci/gitlab/pipeline/benchmarks.yml +++ b/scripts/ci/gitlab/pipeline/benchmarks.yml @@ -3,7 +3,7 @@ # Work only on release-parachains-v* branches benchmarks-build: - stage: benchmarks-build + stage: benchmarks-build extends: - .docker-env - .collect-artifacts @@ -14,13 +14,13 @@ benchmarks-build: - cp target/production/polkadot-parachain ./artifacts/ benchmarks-assets: - stage: benchmarks-run + stage: benchmarks-run + timeout: 1d extends: - .collect-artifacts - .benchmarks-refs before_script: - !reference [.docker-env, before_script] - timeout: 1d script: - ./scripts/benchmarks-ci.sh assets statemine ./artifacts - ./scripts/benchmarks-ci.sh assets statemint ./artifacts @@ -37,7 +37,8 @@ benchmarks-assets: - weights benchmarks-collectives: - stage: benchmarks-run + stage: benchmarks-run + timeout: 1d extends: - .collect-artifacts - .benchmarks-refs @@ -45,7 +46,6 @@ benchmarks-collectives: - !reference [.docker-env, before_script] script: - ./scripts/benchmarks-ci.sh collectives collectives-polkadot ./artifacts - - git status - export CURRENT_TIME=$(date '+%s') - export BRANCHNAME="weights-collectives-${CI_COMMIT_BRANCH}-${CURRENT_TIME}" - !reference [.git-commit-push, script] @@ -58,14 +58,15 @@ benchmarks-collectives: - weights benchmarks-bridge-hubs: - stage: benchmarks-run + stage: benchmarks-run + timeout: 1d extends: - .collect-artifacts - .benchmarks-refs before_script: - !reference [.docker-env, before_script] - timeout: 1d script: + - ./scripts/benchmarks-ci.sh bridge-hubs bridge-hub-polkadot ./artifacts - ./scripts/benchmarks-ci.sh bridge-hubs bridge-hub-kusama ./artifacts - ./scripts/benchmarks-ci.sh bridge-hubs bridge-hub-rococo ./artifacts - export CURRENT_TIME=$(date '+%s') diff --git a/scripts/ci/gitlab/pipeline/build.yml b/scripts/ci/gitlab/pipeline/build.yml index 2b6a284ee11..a60ef29c9a0 100644 --- a/scripts/ci/gitlab/pipeline/build.yml +++ b/scripts/ci/gitlab/pipeline/build.yml @@ -2,7 +2,7 @@ # Here are all jobs that are executed during "build" stage build-linux-stable: - stage: build + stage: build extends: - .docker-env - .common-refs @@ -13,8 +13,8 @@ build-linux-stable: RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: check-rustdoc - artifacts: false + - job: check-rustdoc + artifacts: false script: - echo "___Building a binary, please refrain from using it in production since it goes with the debug assertions.___" - time cargo build --release --locked --bin polkadot-parachain @@ -25,7 +25,7 @@ build-linux-stable: - echo ${CI_COMMIT_REF_NAME} | tee ./artifacts/VERSION build-test-parachain: - stage: build + stage: build extends: - .docker-env - .common-refs @@ -33,11 +33,11 @@ build-test-parachain: variables: # Enable debug assertions since we are running optimized builds for testing # but still want to have debug assertions. - RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings" + RUSTFLAGS: "-Cdebug-assertions=y -Dwarnings" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: check-rustdoc - artifacts: false + - job: check-rustdoc + artifacts: false script: - echo "___Building a binary, please refrain from using it in production since it goes with the debug assertions.___" - time cargo +nightly build --release --locked --bin test-parachain @@ -48,25 +48,25 @@ build-test-parachain: - mv ./target/release/wbuild/cumulus-test-runtime/wasm_binary_spec_version_incremented.rs.compact.compressed.wasm ./artifacts/zombienet/. # build runtime only if files in $RUNTIME_PATH/$RUNTIME_NAME were changed -.build-runtime-template: &build-runtime-template - stage: build +.build-runtime-template: &build-runtime-template + stage: build extends: - .docker-env - .pr-refs # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: check-rustdoc - artifacts: false + - job: check-rustdoc + artifacts: false variables: - RUNTIME_PATH: "parachains/runtimes/assets" + RUNTIME_PATH: "parachains/runtimes/assets" script: - cd ${RUNTIME_PATH} - for directory in $(echo */); do - echo "_____Running cargo check for ${directory} ______"; - cd ${directory}; - pwd; - SKIP_WASM_BUILD=1 cargo check; - cd ..; + echo "_____Running cargo check for ${directory} ______"; + cd ${directory}; + pwd; + SKIP_WASM_BUILD=1 cargo check; + cd ..; done # DAG: build-runtime-assets -> build-runtime-collectives -> build-runtime-bridge-hubs @@ -75,49 +75,49 @@ build-test-parachain: build-runtime-assets: <<: *build-runtime-template variables: - RUNTIME_PATH: "parachains/runtimes/assets" + RUNTIME_PATH: "parachains/runtimes/assets" build-runtime-collectives: <<: *build-runtime-template variables: - RUNTIME_PATH: "parachains/runtimes/collectives" + RUNTIME_PATH: "parachains/runtimes/collectives" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: build-runtime-assets - artifacts: false + - job: build-runtime-assets + artifacts: false build-runtime-bridge-hubs: <<: *build-runtime-template variables: - RUNTIME_PATH: "parachains/runtimes/bridge-hubs" + RUNTIME_PATH: "parachains/runtimes/bridge-hubs" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: build-runtime-collectives - artifacts: false + - job: build-runtime-collectives + artifacts: false build-runtime-contracts: <<: *build-runtime-template variables: - RUNTIME_PATH: "parachains/runtimes/contracts" + RUNTIME_PATH: "parachains/runtimes/contracts" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: build-runtime-collectives - artifacts: false + - job: build-runtime-collectives + artifacts: false build-runtime-starters: <<: *build-runtime-template variables: - RUNTIME_PATH: "parachains/runtimes/starters" + RUNTIME_PATH: "parachains/runtimes/starters" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: build-runtime-assets - artifacts: false + - job: build-runtime-assets + artifacts: false build-runtime-testing: <<: *build-runtime-template variables: - RUNTIME_PATH: "parachains/runtimes/testing" + RUNTIME_PATH: "parachains/runtimes/testing" # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: build-runtime-starters - artifacts: false + - job: build-runtime-starters + artifacts: false diff --git a/scripts/ci/gitlab/pipeline/publish.yml b/scripts/ci/gitlab/pipeline/publish.yml index 353f2aece93..84f0a576e3b 100644 --- a/scripts/ci/gitlab/pipeline/publish.yml +++ b/scripts/ci/gitlab/pipeline/publish.yml @@ -2,69 +2,69 @@ # Here are all jobs that are executed during "publish" stage .build-push-image: - image: quay.io/buildah/stable:v1.27 + image: quay.io/buildah/stable:v1.27 variables: - DOCKERFILE: "" # docker/path-to.Dockerfile - IMAGE_NAME: "" # docker.io/paritypr/image_name - VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" + DOCKERFILE: "" # docker/path-to.Dockerfile + IMAGE_NAME: "" # docker.io/paritypr/image_name + VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" script: - test "$PARITYPR_USER" -a "$PARITYPR_PASS" || - ( echo "no docker credentials provided"; exit 1 ) + ( echo "no docker credentials provided"; exit 1 ) - buildah bud - --format=docker - --build-arg VCS_REF="${CI_COMMIT_SHA}" - --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" - --build-arg IMAGE_NAME="${IMAGE_NAME}" - --tag "$IMAGE_NAME:$VERSION" - --file ${DOCKERFILE} . + --format=docker + --build-arg VCS_REF="${CI_COMMIT_SHA}" + --build-arg BUILD_DATE="$(date -u '+%Y-%m-%dT%H:%M:%SZ')" + --build-arg IMAGE_NAME="${IMAGE_NAME}" + --tag "$IMAGE_NAME:$VERSION" + --file ${DOCKERFILE} . - echo "$PARITYPR_PASS" | - buildah login --username "$PARITYPR_USER" --password-stdin docker.io + buildah login --username "$PARITYPR_USER" --password-stdin docker.io - buildah info - buildah push --format=v2s2 "$IMAGE_NAME:$VERSION" after_script: - buildah logout --all build-push-image-polkadot-parachain-debug: - stage: publish + stage: publish extends: - .kubernetes-env - .common-refs - .build-push-image needs: - - job: build-linux-stable - artifacts: true + - job: build-linux-stable + artifacts: true variables: - DOCKERFILE: "docker/polkadot-parachain-debug_unsigned_injected.Dockerfile" - IMAGE_NAME: "docker.io/paritypr/polkadot-parachain-debug" - VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" + DOCKERFILE: "docker/polkadot-parachain-debug_unsigned_injected.Dockerfile" + IMAGE_NAME: "docker.io/paritypr/polkadot-parachain-debug" + VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" build-push-image-test-parachain: - stage: publish + stage: publish extends: - .kubernetes-env - .common-refs - .build-push-image needs: - - job: build-test-parachain - artifacts: true + - job: build-test-parachain + artifacts: true variables: - DOCKERFILE: "docker/test-parachain_injected.Dockerfile" - IMAGE_NAME: "docker.io/paritypr/test-parachain" - VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" + DOCKERFILE: "docker/test-parachain_injected.Dockerfile" + IMAGE_NAME: "docker.io/paritypr/test-parachain" + VERSION: "${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" publish-s3: - stage: publish + stage: publish extends: - .kubernetes-env - .publish-refs - image: paritytech/awscli:latest + image: paritytech/awscli:latest needs: - - job: build-linux-stable - artifacts: true + - job: build-linux-stable + artifacts: true variables: - GIT_STRATEGY: none - BUCKET: "releases.parity.io" - PREFIX: "cumulus/${ARCH}-${DOCKER_OS}" + GIT_STRATEGY: none + BUCKET: "releases.parity.io" + PREFIX: "cumulus/${ARCH}-${DOCKER_OS}" script: - echo "___Publishing a binary with debug assertions!___" - echo "___VERSION = $(cat ./artifacts/VERSION) ___" @@ -73,21 +73,21 @@ publish-s3: - aws s3 sync s3://${BUCKET}/${PREFIX}/$(cat ./artifacts/VERSION)/ s3://${BUCKET}/${PREFIX}/latest/ after_script: - aws s3 ls s3://${BUCKET}/${PREFIX}/latest/ - --recursive --human-readable --summarize + --recursive --human-readable --summarize -publish-benchmarks-assets-s3: &publish-benchmarks - stage: publish +publish-benchmarks-assets-s3: &publish-benchmarks + stage: publish extends: - .kubernetes-env - .benchmarks-refs - image: paritytech/awscli:latest + image: paritytech/awscli:latest needs: - - job: benchmarks-assets - artifacts: true + - job: benchmarks-assets + artifacts: true variables: - GIT_STRATEGY: none - BUCKET: "releases.parity.io" - PREFIX: "cumulus/$CI_COMMIT_REF_NAME/benchmarks-assets" + GIT_STRATEGY: none + BUCKET: "releases.parity.io" + PREFIX: "cumulus/$CI_COMMIT_REF_NAME/benchmarks-assets" script: - echo "___Publishing benchmark results___" - aws s3 sync ./artifacts/ s3://${BUCKET}/${PREFIX}/ @@ -95,25 +95,11 @@ publish-benchmarks-assets-s3: &publish-benchmarks - aws s3 ls s3://${BUCKET}/${PREFIX}/ --recursive --human-readable --summarize publish-benchmarks-collectives-s3: - <<: *publish-benchmarks + <<: *publish-benchmarks variables: - GIT_STRATEGY: none - BUCKET: "releases.parity.io" - PREFIX: "cumulus/$CI_COMMIT_REF_NAME/benchmarks-collectives" + GIT_STRATEGY: none + BUCKET: "releases.parity.io" + PREFIX: "cumulus/$CI_COMMIT_REF_NAME/benchmarks-collectives" needs: - - job: benchmarks-collectives - artifacts: true - -# Ref: https://github.com/paritytech/opstooling/issues/111 -update-parachain-template: - stage: publish - extends: .kubernetes-env - rules: - - if: $CI_COMMIT_REF_NAME =~ /^polkadot-v[0-9]+\.[0-9]+.*$/ # i.e. polkadot-v1.0.99, polkadot-v2.1rc1 - script: - - git clone --depth=1 --branch="$PIPELINE_SCRIPTS_TAG" https://github.com/paritytech/pipeline-scripts - - ./pipeline-scripts/update_substrate_template.sh - --repo-name "substrate-parachain-template" - --template-path "parachain-template" - --github-api-token "$GITHUB_TOKEN" - --polkadot-branch "$CI_COMMIT_REF_NAME" + - job: benchmarks-collectives + artifacts: true diff --git a/scripts/ci/gitlab/pipeline/test.yml b/scripts/ci/gitlab/pipeline/test.yml index 0db2bb554b0..765a80b7b60 100644 --- a/scripts/ci/gitlab/pipeline/test.yml +++ b/scripts/ci/gitlab/pipeline/test.yml @@ -1,8 +1,28 @@ # This file is part of .gitlab-ci.yml # Here are all jobs that are executed during "test" stage +# It's more like a check, but we want to run this job with real tests in parallel +find-fail-ci-phrase: + stage: test + variables: + CI_IMAGE: "paritytech/tools:latest" + ASSERT_REGEX: "FAIL-CI" + GIT_DEPTH: 1 + extends: + - .kubernetes-env + script: + - set +e + - rg --line-number --hidden --type rust --glob '!{.git,target}' "$ASSERT_REGEX" .; exit_status=$? + - if [ $exit_status -eq 0 ]; then + echo "$ASSERT_REGEX was found, exiting with 1"; + exit 1; + else + echo "No $ASSERT_REGEX was found, exiting with 0"; + exit 0; + fi + test-linux-stable: - stage: test + stage: test extends: - .docker-env - .common-refs @@ -18,7 +38,7 @@ test-linux-stable: - time cargo nextest run --all --release --locked --run-ignored all test-doc: - stage: test + stage: test extends: - .docker-env - .common-refs @@ -30,7 +50,7 @@ test-doc: - time cargo test --doc check-runtime-benchmarks: - stage: test + stage: test extends: - .docker-env - .common-refs @@ -41,14 +61,14 @@ check-runtime-benchmarks: - time cargo check -p parachain-template-node --features runtime-benchmarks cargo-check-try-runtime: - stage: test + stage: test extends: - .docker-env - .common-refs # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: check-runtime-benchmarks - artifacts: false + - job: check-runtime-benchmarks + artifacts: false script: # Check that the node will compile with `try-runtime` feature flag. - time cargo check --all --features try-runtime @@ -56,24 +76,24 @@ cargo-check-try-runtime: - time cargo check -p parachain-template-node --features try-runtime check-rustdoc: - stage: test + stage: test extends: - .docker-env - .common-refs variables: - SKIP_WASM_BUILD: 1 - RUSTDOCFLAGS: "-Dwarnings" + SKIP_WASM_BUILD: 1 + RUSTDOCFLAGS: "-Dwarnings" script: - time cargo +nightly doc --workspace --all-features --verbose --no-deps cargo-check-benches: - stage: test + stage: test extends: - .docker-env - .common-refs # this is an artificial job dependency, for pipeline optimization using GitLab's DAGs needs: - - job: check-rustdoc - artifacts: false + - job: check-rustdoc + artifacts: false script: - time cargo check --all --benches diff --git a/scripts/ci/gitlab/pipeline/zombienet.yml b/scripts/ci/gitlab/pipeline/zombienet.yml index 04eee935041..d76531b19e7 100644 --- a/scripts/ci/gitlab/pipeline/zombienet.yml +++ b/scripts/ci/gitlab/pipeline/zombienet.yml @@ -19,23 +19,23 @@ # common settings for all zombienet jobs .zombienet-common: - stage: zombienet - image: "${ZOMBIENET_IMAGE}" + stage: zombienet + image: "${ZOMBIENET_IMAGE}" needs: - - job: build-push-image-test-parachain - artifacts: true + - job: build-push-image-test-parachain + artifacts: true variables: - POLKADOT_IMAGE: "docker.io/paritypr/polkadot-debug:master" - GH_DIR: "https://github.com/paritytech/cumulus/tree/${CI_COMMIT_SHORT_SHA}/zombienet/tests" - COL_IMAGE: "docker.io/paritypr/test-parachain:${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" + POLKADOT_IMAGE: "docker.io/paritypr/polkadot-debug:master" + GH_DIR: "https://github.com/paritytech/cumulus/tree/${CI_COMMIT_SHORT_SHA}/zombienet/tests" + COL_IMAGE: "docker.io/paritypr/test-parachain:${CI_COMMIT_REF_NAME}-${CI_COMMIT_SHORT_SHA}" FF_DISABLE_UMASK_FOR_DOCKER_EXECUTOR: 1 artifacts: - name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" - when: always - expire_in: 2 days + name: "${CI_JOB_NAME}_${CI_COMMIT_REF_NAME}" + when: always + expire_in: 2 days paths: - ./zombienet-logs - allow_failure: true + allow_failure: true retry: 2 tags: - zombienet-polkadot-integration-test @@ -48,9 +48,9 @@ zombienet-0001-sync_blocks_from_tip_without_connected_collator: - .zombienet-after-script script: - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - --github-remote-dir="${GH_DIR}" - --concurrency=1 - --test="0001-sync_blocks_from_tip_without_connected_collator.feature" + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0001-sync_blocks_from_tip_without_connected_collator.zndsl" zombienet-0002-pov_recovery: extends: @@ -60,9 +60,9 @@ zombienet-0002-pov_recovery: - .zombienet-after-script script: - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - --github-remote-dir="${GH_DIR}" - --concurrency=1 - --test="0002-pov_recovery.feature" + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0002-pov_recovery.zndsl" zombienet-0003-full_node_catching_up: extends: @@ -72,9 +72,9 @@ zombienet-0003-full_node_catching_up: - .zombienet-after-script script: - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - --github-remote-dir="${GH_DIR}" - --concurrency=1 - --test="0003-full_node_catching_up.feature" + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0003-full_node_catching_up.zndsl" zombienet-0004-runtime_upgrade: extends: @@ -84,8 +84,8 @@ zombienet-0004-runtime_upgrade: - .zombienet-after-script needs: - !reference [.zombienet-common, needs] - - job: build-test-parachain - artifacts: true + - job: build-test-parachain + artifacts: true before_script: - ls -ltr * - cp ./artifacts/zombienet/wasm_binary_spec_version_incremented.rs.compact.compressed.wasm /tmp/ @@ -93,9 +93,9 @@ zombienet-0004-runtime_upgrade: - !reference [.zombienet-before-script, before_script] script: - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - --github-remote-dir="${GH_DIR}" - --concurrency=1 - --test="0004-runtime_upgrade.feature" + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0004-runtime_upgrade.zndsl" zombienet-0005-migrate_solo_to_para: extends: @@ -105,16 +105,16 @@ zombienet-0005-migrate_solo_to_para: - .zombienet-after-script needs: - !reference [.zombienet-common, needs] - - job: build-test-parachain - artifacts: true + - job: build-test-parachain + artifacts: true before_script: - ls -ltr * - !reference [.zombienet-before-script, before_script] script: - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - --github-remote-dir="${GH_DIR}" - --concurrency=1 - --test="0005-migrate_solo_to_para.feature" + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0005-migrate_solo_to_para.zndsl" zombienet-0006-rpc_collator_builds_blocks: extends: @@ -124,6 +124,18 @@ zombienet-0006-rpc_collator_builds_blocks: - .zombienet-after-script script: - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh - --github-remote-dir="${GH_DIR}" - --concurrency=1 - --test="0006-rpc_collator_builds_blocks.feature" + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0006-rpc_collator_builds_blocks.zndsl" + +zombienet-0007-full_node_warp_sync: + extends: + - .zombienet-common + - .zombienet-refs + - .zombienet-before-script + - .zombienet-after-script + script: + - /home/nonroot/zombie-net/scripts/ci/run-test-env-manager.sh + --github-remote-dir="${GH_DIR}" + --concurrency=1 + --test="0007-full_node_warp_sync.zndsl" diff --git a/scripts/ci/gitlab/prettier.sh b/scripts/ci/gitlab/prettier.sh new file mode 100755 index 00000000000..299bbee179d --- /dev/null +++ b/scripts/ci/gitlab/prettier.sh @@ -0,0 +1,6 @@ +#!/bin/sh + +# meant to be installed via +# git config filter.ci-prettier.clean "scripts/ci/gitlab/prettier.sh" + +prettier --parser yaml diff --git a/scripts/create_bridge_hub_kusama_spec.sh b/scripts/create_bridge_hub_kusama_spec.sh index ba2074ecfbc..813921b079a 100755 --- a/scripts/create_bridge_hub_kusama_spec.sh +++ b/scripts/create_bridge_hub_kusama_spec.sh @@ -4,7 +4,7 @@ usage() { echo Usage: echo "$1 " echo "$2 " - echo "e.g.: ./scripts/create_bridge_hub_kusama_spec.sh ./target/release/wbuild/bridge-hub-kusama-runtime/bridge_hub_kusama_runtime.compact.compressed.wasm 1003" + echo "e.g.: ./scripts/create_bridge_hub_kusama_spec.sh ./target/release/wbuild/bridge-hub-kusama-runtime/bridge_hub_kusama_runtime.compact.compressed.wasm 1002" exit 1 } @@ -97,7 +97,9 @@ cat chain-spec-plain.json | jq --rawfile code rt-hex.txt '.genesis.runtime.syste # build a raw spec $binary build-spec --chain edited-chain-spec-plain.json --raw > chain-spec-raw.json +cp edited-chain-spec-plain.json bridge-hub-kusama-spec.json cp chain-spec-raw.json ./parachains/chain-specs/bridge-hub-kusama.json +cp chain-spec-raw.json bridge-hub-kusama-spec-raw.json # build genesis data $binary export-genesis-state --chain chain-spec-raw.json > bridge-hub-kusama-genesis-head-data diff --git a/scripts/create_bridge_hub_polkadot_spec.sh b/scripts/create_bridge_hub_polkadot_spec.sh new file mode 100755 index 00000000000..49bc9cee692 --- /dev/null +++ b/scripts/create_bridge_hub_polkadot_spec.sh @@ -0,0 +1,108 @@ +#!/usr/bin/env bash + +usage() { + echo Usage: + echo "$1 " + echo "$2 " + echo "e.g.: ./scripts/create_bridge_hub_polkadot_spec.sh ./target/release/wbuild/bridge-hub-polkadot-runtime/bridge_hub_polkadot_runtime.compact.compressed.wasm 1002" + exit 1 +} + +if [ -z "$1" ]; then + usage +fi + +if [ -z "$2" ]; then + usage +fi + +set -e + +rt_path=$1 +para_id=$2 + +echo "Generating chain spec for runtime: $rt_path and para_id: $para_id" + +binary="./target/release/polkadot-parachain" + +# build the chain spec we'll manipulate +$binary build-spec --chain bridge-hub-polkadot-dev > chain-spec-plain.json + +# convert runtime to hex +cat $rt_path | od -A n -v -t x1 | tr -d ' \n' > rt-hex.txt + +# replace the runtime in the spec with the given runtime and set some values to production +cat chain-spec-plain.json | jq --rawfile code rt-hex.txt '.genesis.runtime.system.code = ("0x" + $code)' \ + | jq '.name = "Polkadot BridgeHub"' \ + | jq '.id = "bridge-hub-polkadot"' \ + | jq '.chainType = "Live"' \ + | jq '.bootNodes = [ + "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/30334/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", + "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/30334/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", + "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/30334/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", + "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/30334/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J", + + "/dns/polkadot-bridge-hub-connect-a-0.polkadot.io/tcp/443/wss/p2p/12D3KooWAVQMhkXmc5ueSYasdsRWQbKus2YGZ6HDZUB4ViJMCxXy", + "/dns/polkadot-bridge-hub-connect-a-1.polkadot.io/tcp/443/wss/p2p/12D3KooWG4ypDHLKGCv4BZ6PuaGUwQHKAH6p2D6arR2uQ1eiR1T3", + "/dns/polkadot-bridge-hub-connect-b-0.polkadot.io/tcp/443/wss/p2p/12D3KooWCwGKxjpJXnx1mwXKvaxGQm769EM3b6Pg5vbU33wbhsNw", + "/dns/polkadot-bridge-hub-connect-b-1.polkadot.io/tcp/443/wss/p2p/12D3KooWLiSEdhriJUPdZKFtAjZrQncxN2ssEoDKVrt5mGM4Qu4J" + ]' \ + | jq '.relay_chain = "polkadot"' \ + | jq --argjson para_id $para_id '.para_id = $para_id' \ + | jq --argjson para_id $para_id '.genesis.runtime.parachainInfo.parachainId = $para_id' \ + | jq '.genesis.runtime.balances.balances = []' \ + | jq '.genesis.runtime.collatorSelection.invulnerables = [ + "134AK3RiMA97Fx9dLj1CvuLJUa8Yo93EeLA1TkP6CCGnWMSd", + "15dU8Tt7kde2diuHzijGbKGPU5K8BPzrFJfYFozvrS1DdE21", + "1vXMKM8SctM28AQw1wSpd7p9yCUWn1uhbbKSVTuznsw8Q2x", + "15mCQcaj3QP1UdxBF82JRd9v3riZJcVNVEmx8xkFp7DSYR4Y" + ]' \ + | jq '.genesis.runtime.session.keys = [ + [ + "134AK3RiMA97Fx9dLj1CvuLJUa8Yo93EeLA1TkP6CCGnWMSd", + "134AK3RiMA97Fx9dLj1CvuLJUa8Yo93EeLA1TkP6CCGnWMSd", + { + "aura": "5EX6AnyuSPEFQ7HAPjRgzqk1sxgh8cyacGimwJ16y1nJ2w7g" + } + ], + [ + "15dU8Tt7kde2diuHzijGbKGPU5K8BPzrFJfYFozvrS1DdE21", + "15dU8Tt7kde2diuHzijGbKGPU5K8BPzrFJfYFozvrS1DdE21", + { + "aura": "5DZN8UhaJftvKhMMARmJBwrwzuEDpoUzzBvvWMbFXYsJ4CmK" + } + ], + [ + "1vXMKM8SctM28AQw1wSpd7p9yCUWn1uhbbKSVTuznsw8Q2x", + "1vXMKM8SctM28AQw1wSpd7p9yCUWn1uhbbKSVTuznsw8Q2x", + { + "aura": "5FKsn83rXQQiw7HwoeYoLMoYS5GP9YVNHZiCHwA4DSwDcPVa" + } + ], + [ + "15mCQcaj3QP1UdxBF82JRd9v3riZJcVNVEmx8xkFp7DSYR4Y", + "15mCQcaj3QP1UdxBF82JRd9v3riZJcVNVEmx8xkFp7DSYR4Y", + { + "aura": "5DCg19ckcJz4m52Th4o1LcSRK3H7NsUcQsRbu7pTDM3mZ26v" + } + ] + ]' \ + > edited-chain-spec-plain.json + +# build a raw spec +$binary build-spec --chain edited-chain-spec-plain.json --raw > chain-spec-raw.json +cp edited-chain-spec-plain.json bridge-hub-polkadot-spec.json +cp chain-spec-raw.json ./parachains/chain-specs/bridge-hub-polkadot.json +cp chain-spec-raw.json bridge-hub-polkadot-spec-raw.json + +# build genesis data +$binary export-genesis-state --chain chain-spec-raw.json > bridge-hub-polkadot-genesis-head-data + +# build genesis wasm +$binary export-genesis-wasm --chain chain-spec-raw.json > bridge-hub-polkadot-wasm + +# cleanup +rm -f rt-hex.txt +rm -f chain-spec-plain.json +rm -f chain-spec-raw.json +rm -f edited-chain-spec-plain.json diff --git a/scripts/create_bridge_hub_westend_spec.sh b/scripts/create_bridge_hub_westend_spec.sh new file mode 100755 index 00000000000..31dafda25e7 --- /dev/null +++ b/scripts/create_bridge_hub_westend_spec.sh @@ -0,0 +1,101 @@ +#!/usr/bin/env bash + +usage() { + echo Usage: + echo "$1 " + echo "$2 " + echo "e.g.: ./scripts/create_bridge_hub_westend_spec.sh ./target/release/wbuild/bridge-hub-kusama-runtime/bridge_hub_kusama_runtime.compact.compressed.wasm 1002" + exit 1 +} + +if [ -z "$1" ]; then + usage +fi + +if [ -z "$2" ]; then + usage +fi + +set -e + +rt_path=$1 +para_id=$2 + +echo "Generating chain spec for runtime: $rt_path and para_id: $para_id" + +binary="./target/release/polkadot-parachain" + +# build the chain spec we'll manipulate +$binary build-spec --chain bridge-hub-kusama-dev > chain-spec-plain.json + +# convert runtime to hex +cat $rt_path | od -A n -v -t x1 | tr -d ' \n' > rt-hex.txt + +# replace the runtime in the spec with the given runtime and set some values to production +cat chain-spec-plain.json | jq --rawfile code rt-hex.txt '.genesis.runtime.system.code = ("0x" + $code)' \ + | jq '.name = "Westend BridgeHub"' \ + | jq '.id = "bridge-hub-westend"' \ + | jq '.chainType = "Live"' \ + | jq '.bootNodes = [ + "/dns/westend-bridge-hub-collator-node-0.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWKyEuqkkWvFSrwZWKWBAsHgLV3HGfHj7yH3LNJLAVhmxY", + "/dns/westend-bridge-hub-collator-node-1.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWBpvudthz61XC4oP2YYFFJdhWohBeQ1ffn1BMSGWhapjd", + "/dns/westend-bridge-hub-collator-node-2.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWPXqdRRthjKAMPFtaXUK7yBxsvh83QsmzXzALA3inoJfo", + "/dns/westend-bridge-hub-collator-node-3.parity-testnet.parity.io/tcp/30333/p2p/12D3KooWAp2YpVaiNBy7rozEHJGocDpaLFt3VFZsGMBEYh4BoEz7" + ]' \ + | jq '.relay_chain = "westend"' \ + | jq '.properties = { + "tokenDecimals": 12, + "tokenSymbol": "WND" + }' \ + | jq --argjson para_id $para_id '.para_id = $para_id' \ + | jq --argjson para_id $para_id '.genesis.runtime.parachainInfo.parachainId = $para_id' \ + | jq '.genesis.runtime.balances.balances = []' \ + | jq '.genesis.runtime.collatorSelection.invulnerables = [ + "5GN5qBbUkxigdLhTajWqAG66MRD2v5WjUFqkuGVSRCyhMCg6", + "5GRCPWstCyp3u9T2c3oGqj83rniQffJR5Q2LpGsL9m19oQ8T", + "5GR2p9FpJFPpDuZPk1Lt9VZJ76aLPfKVA6qBE4FRted2oT6D", + "5FH8VBgdXijT1vM6pj1aFGw49J2fQDZKM1BFQtVV1zjmA7mM" + ]' \ + | jq '.genesis.runtime.session.keys = [ + [ + "5GN5qBbUkxigdLhTajWqAG66MRD2v5WjUFqkuGVSRCyhMCg6", + "5GN5qBbUkxigdLhTajWqAG66MRD2v5WjUFqkuGVSRCyhMCg6", + { + "aura": "5GN5qBbUkxigdLhTajWqAG66MRD2v5WjUFqkuGVSRCyhMCg6" + } + ], + [ + "5GRCPWstCyp3u9T2c3oGqj83rniQffJR5Q2LpGsL9m19oQ8T", + "5GRCPWstCyp3u9T2c3oGqj83rniQffJR5Q2LpGsL9m19oQ8T", + { + "aura": "5GRCPWstCyp3u9T2c3oGqj83rniQffJR5Q2LpGsL9m19oQ8T" + } + ], + [ + "5GR2p9FpJFPpDuZPk1Lt9VZJ76aLPfKVA6qBE4FRted2oT6D", + "5GR2p9FpJFPpDuZPk1Lt9VZJ76aLPfKVA6qBE4FRted2oT6D", + { + "aura": "5GR2p9FpJFPpDuZPk1Lt9VZJ76aLPfKVA6qBE4FRted2oT6D" + } + ], + [ + "5FH8VBgdXijT1vM6pj1aFGw49J2fQDZKM1BFQtVV1zjmA7mM", + "5FH8VBgdXijT1vM6pj1aFGw49J2fQDZKM1BFQtVV1zjmA7mM", + { + "aura": "5FH8VBgdXijT1vM6pj1aFGw49J2fQDZKM1BFQtVV1zjmA7mM" + } + ] + ]' \ + > edited-chain-spec-plain.json + +# build a raw spec +$binary build-spec --chain edited-chain-spec-plain.json --raw > chain-spec-raw.json +cp edited-chain-spec-plain.json bridge-hub-westend-spec.json +cp chain-spec-raw.json ./parachains/chain-specs/bridge-hub-westend.json +cp chain-spec-raw.json bridge-hub-westend-spec-raw.json + +# build genesis data +$binary export-genesis-state --chain chain-spec-raw.json > bridge-hub-westend-genesis-head-data + +# build genesis wasm +$binary export-genesis-wasm --chain chain-spec-raw.json > bridge-hub-westend-wasm diff --git a/templates/xcm-bench-template.hbs b/templates/xcm-bench-template.hbs index 3c9deb44606..e8e754ca91f 100644 --- a/templates/xcm-bench-template.hbs +++ b/templates/xcm-bench-template.hbs @@ -1,24 +1,9 @@ -// Copyright 2022 Parity Technologies (UK) Ltd. -// This file is part of Cumulus. - -// Cumulus is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. - -// Cumulus is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. - -// You should have received a copy of the GNU General Public License -// along with Cumulus. If not, see . - - +{{header}} //! Autogenerated weights for `{{pallet}}` //! //! THIS FILE WAS AUTO-GENERATED USING THE SUBSTRATE BENCHMARK CLI VERSION {{version}} -//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: {{cmd.repeat}}, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}` +//! DATE: {{date}}, STEPS: `{{cmd.steps}}`, REPEAT: `{{cmd.repeat}}`, LOW RANGE: `{{cmd.lowest_range_values}}`, HIGH RANGE: `{{cmd.highest_range_values}}` +//! WORST CASE MAP SIZE: `{{cmd.worst_case_map_values}}` //! HOSTNAME: `{{hostname}}`, CPU: `{{cpuname}}` //! EXECUTION: {{cmd.execution}}, WASM-EXECUTION: {{cmd.wasm_execution}}, CHAIN: {{cmd.chain}}, DB CACHE: {{cmd.db_cache}} @@ -41,27 +26,37 @@ impl WeightInfo { {{#each benchmark.comments as |comment|}} // {{comment}} {{/each}} - pub(crate) fn {{benchmark.name~}} + {{#each benchmark.component_ranges as |range|}} + /// The range of component `{{range.name}}` is `[{{range.min}}, {{range.max}}]`. + {{/each}} + pub fn {{benchmark.name~}} ( {{~#each benchmark.components as |c| ~}} {{~#if (not c.is_used)}}_{{/if}}{{c.name}}: u32, {{/each~}} ) -> Weight { - Weight::from_ref_time({{underscore benchmark.base_weight}} as u64) + // Proof Size summary in bytes: + // Measured: `{{benchmark.base_recorded_proof_size}}{{#each benchmark.component_recorded_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Estimated: `{{benchmark.base_calculated_proof_size}}{{#each benchmark.component_calculated_proof_size as |cp|}} + {{cp.name}} * ({{cp.slope}} ±{{underscore cp.error}}){{/each}}` + // Minimum execution time: {{underscore benchmark.min_execution_time}}_000 picoseconds. + Weight::from_parts({{underscore benchmark.base_weight}}, {{benchmark.base_calculated_proof_size}}) {{#each benchmark.component_weight as |cw|}} // Standard Error: {{underscore cw.error}} - .saturating_add(Weight::from_ref_time({{underscore cw.slope}}).saturating_mul({{cw.name}} as u64)) + .saturating_add(Weight::from_parts({{underscore cw.slope}}, 0).saturating_mul({{cw.name}}.into())) {{/each}} {{#if (ne benchmark.base_reads "0")}} - .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}} as u64)) + .saturating_add(T::DbWeight::get().reads({{benchmark.base_reads}})) {{/if}} {{#each benchmark.component_reads as |cr|}} - .saturating_add(T::DbWeight::get().reads(({{cr.slope}} as u64).saturating_mul({{cr.name}} as u64))) + .saturating_add(T::DbWeight::get().reads(({{cr.slope}}_u64).saturating_mul({{cr.name}}.into()))) {{/each}} {{#if (ne benchmark.base_writes "0")}} - .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}} as u64)) + .saturating_add(T::DbWeight::get().writes({{benchmark.base_writes}})) {{/if}} {{#each benchmark.component_writes as |cw|}} - .saturating_add(T::DbWeight::get().writes(({{cw.slope}} as u64).saturating_mul({{cw.name}} as u64))) + .saturating_add(T::DbWeight::get().writes(({{cw.slope}}_u64).saturating_mul({{cw.name}}.into()))) + {{/each}} + {{#each benchmark.component_calculated_proof_size as |cp|}} + .saturating_add(Weight::from_parts(0, {{cp.slope}}).saturating_mul({{cp.name}}.into())) {{/each}} } {{/each}} diff --git a/test/client/Cargo.toml b/test/client/Cargo.toml index a9143673570..14ecc803707 100644 --- a/test/client/Cargo.toml +++ b/test/client/Cargo.toml @@ -8,27 +8,27 @@ edition = "2021" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [ "derive" ] } # Substrate -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-block-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-executor-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-parachain = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-test-runtime = { path = "../runtime" } diff --git a/test/client/src/block_builder.rs b/test/client/src/block_builder.rs index 6a9b863a7e6..13b20df6be6 100644 --- a/test/client/src/block_builder.rs +++ b/test/client/src/block_builder.rs @@ -19,13 +19,10 @@ use cumulus_primitives_core::{ParachainBlockData, PersistedValidationData}; use cumulus_primitives_parachain_inherent::{ParachainInherentData, INHERENT_IDENTIFIER}; use cumulus_test_relay_sproof_builder::RelayStateSproofBuilder; use cumulus_test_runtime::{Block, GetLastTimestamp, Hash, Header}; -use polkadot_primitives::v2::{BlockNumber as PBlockNumber, Hash as PHash}; +use polkadot_primitives::{BlockNumber as PBlockNumber, Hash as PHash}; use sc_block_builder::{BlockBuilder, BlockBuilderProvider}; use sp_api::ProvideRuntimeApi; -use sp_runtime::{ - generic::BlockId, - traits::{Block as BlockT, Header as HeaderT}, -}; +use sp_runtime::traits::{Block as BlockT, Header as HeaderT}; /// An extension for the Cumulus test client to init a block builder. pub trait InitBlockBuilder { @@ -45,10 +42,10 @@ pub trait InitBlockBuilder { /// Init a specific block builder at a specific block that works for the test runtime. /// /// Same as [`InitBlockBuilder::init_block_builder`] besides that it takes a - /// [`BlockId`] to say which should be the parent block of the block that is being build. + /// [`type@Hash`] to say which should be the parent block of the block that is being build. fn init_block_builder_at( &self, - at: &BlockId, + at: Hash, validation_data: Option>, relay_sproof_builder: RelayStateSproofBuilder, ) -> sc_block_builder::BlockBuilder; @@ -56,11 +53,11 @@ pub trait InitBlockBuilder { /// Init a specific block builder that works for the test runtime. /// /// Same as [`InitBlockBuilder::init_block_builder`] besides that it takes a - /// [`BlockId`] to say which should be the parent block of the block that is being build and + /// [`type@Hash`] to say which should be the parent block of the block that is being build and /// it will use the given `timestamp` as input for the timestamp inherent. fn init_block_builder_with_timestamp( &self, - at: &BlockId, + at: Hash, validation_data: Option>, relay_sproof_builder: RelayStateSproofBuilder, timestamp: u64, @@ -69,7 +66,7 @@ pub trait InitBlockBuilder { fn init_block_builder<'a>( client: &'a Client, - at: &BlockId, + at: Hash, validation_data: Option>, relay_sproof_builder: RelayStateSproofBuilder, timestamp: u64, @@ -123,16 +120,12 @@ impl InitBlockBuilder for Client { relay_sproof_builder: RelayStateSproofBuilder, ) -> BlockBuilder { let chain_info = self.chain_info(); - self.init_block_builder_at( - &BlockId::Hash(chain_info.best_hash), - validation_data, - relay_sproof_builder, - ) + self.init_block_builder_at(chain_info.best_hash, validation_data, relay_sproof_builder) } fn init_block_builder_at( &self, - at: &BlockId, + at: Hash, validation_data: Option>, relay_sproof_builder: RelayStateSproofBuilder, ) -> BlockBuilder { @@ -145,7 +138,7 @@ impl InitBlockBuilder for Client { fn init_block_builder_with_timestamp( &self, - at: &BlockId, + at: Hash, validation_data: Option>, relay_sproof_builder: RelayStateSproofBuilder, timestamp: u64, diff --git a/test/relay-sproof-builder/Cargo.toml b/test/relay-sproof-builder/Cargo.toml index 5539f177f7e..5dfd90f816c 100644 --- a/test/relay-sproof-builder/Cargo.toml +++ b/test/relay-sproof-builder/Cargo.toml @@ -8,12 +8,12 @@ edition = "2021" codec = { package = "parity-scale-codec", version = "3.0.0", default-features = false, features = [ "derive" ] } # Substrate -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", default-features = false, branch = "release-v0.9.40" } # Cumulus cumulus-primitives-core = { path = "../../primitives/core", default-features = false } diff --git a/test/relay-sproof-builder/src/lib.rs b/test/relay-sproof-builder/src/lib.rs index 41e9c84d34e..93da853c8d1 100644 --- a/test/relay-sproof-builder/src/lib.rs +++ b/test/relay-sproof-builder/src/lib.rs @@ -17,7 +17,7 @@ use cumulus_primitives_core::{ relay_chain, AbridgedHostConfiguration, AbridgedHrmpChannel, ParaId, }; -use polkadot_primitives::v2::UpgradeGoAhead; +use polkadot_primitives::UpgradeGoAhead; use sp_runtime::traits::HashFor; use sp_state_machine::MemoryDB; use sp_std::collections::btree_map::BTreeMap; @@ -41,8 +41,8 @@ pub struct RelayStateSproofBuilder { pub relay_dispatch_queue_size: Option<(u32, u32)>, pub hrmp_ingress_channel_index: Option>, pub hrmp_egress_channel_index: Option>, - pub hrmp_channels: BTreeMap, - pub current_slot: relay_chain::v2::Slot, + pub hrmp_channels: BTreeMap, + pub current_slot: relay_chain::Slot, pub current_epoch: u64, pub randomness: relay_chain::Hash, } @@ -88,7 +88,7 @@ impl RelayStateSproofBuilder { } self.hrmp_channels - .entry(relay_chain::v2::HrmpChannelId { sender, recipient: self.para_id }) + .entry(relay_chain::HrmpChannelId { sender, recipient: self.para_id }) .or_insert_with(|| AbridgedHrmpChannel { max_capacity: 0, max_total_size: 0, @@ -101,8 +101,8 @@ impl RelayStateSproofBuilder { pub fn into_state_root_and_proof( self, - ) -> (polkadot_primitives::v2::Hash, sp_state_machine::StorageProof) { - let (db, root) = MemoryDB::>::default_with_root(); + ) -> (polkadot_primitives::Hash, sp_state_machine::StorageProof) { + let (db, root) = MemoryDB::>::default_with_root(); let state_version = Default::default(); // for test using default. let mut backend = sp_state_machine::TrieBackendBuilder::new(db, root).build(); diff --git a/test/relay-validation-worker-provider/Cargo.toml b/test/relay-validation-worker-provider/Cargo.toml index 3732a029630..1862e3d0895 100644 --- a/test/relay-validation-worker-provider/Cargo.toml +++ b/test/relay-validation-worker-provider/Cargo.toml @@ -8,7 +8,7 @@ build = "build.rs" [dependencies] # Polkadot -polkadot-node-core-pvf = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-node-core-pvf = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } [build-dependencies] -toml = "0.5.10" +toml = "0.7.2" diff --git a/test/runtime/Cargo.toml b/test/runtime/Cargo.toml index 0d9d26573c4..dc59d5e10dc 100644 --- a/test/runtime/Cargo.toml +++ b/test/runtime/Cargo.toml @@ -9,25 +9,25 @@ codec = { package = "parity-scale-codec", version = "3.0.0", default-features = scale-info = { version = "2.3.1", default-features = false, features = ["derive"] } # Substrate -frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } +frame-executive = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-support = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-balances = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-sudo = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-timestamp = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-api = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-block-builder = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-inherents = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-offchain = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-session = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-std = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-transaction-pool = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-version = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } mangata-support = { git = "https://github.com/mangata-finance/substrate", default-features = false, branch = "mangata-dev" } # Cumulus @@ -37,7 +37,7 @@ cumulus-primitives-timestamp = { path = "../../primitives/timestamp", default-fe lazy_static = "1.1.1" [build-dependencies] -substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +substrate-wasm-builder = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } [features] default = [ "std" ] diff --git a/test/runtime/src/lib.rs b/test/runtime/src/lib.rs index 295172f6287..d6be09cb92c 100644 --- a/test/runtime/src/lib.rs +++ b/test/runtime/src/lib.rs @@ -145,7 +145,7 @@ const NORMAL_DISPATCH_RATIO: Perbill = Perbill::from_percent(75); /// We allow for .5 seconds of compute with a 12 second average block time. const MAXIMUM_BLOCK_WEIGHT: Weight = Weight::from_parts( WEIGHT_REF_TIME_PER_SECOND.saturating_div(2), - cumulus_primitives_core::relay_chain::v2::MAX_POV_SIZE as u64, + cumulus_primitives_core::relay_chain::MAX_POV_SIZE as u64, ); parameter_types! { @@ -366,7 +366,7 @@ pub struct TestOnRuntimeUpgrade; impl OnRuntimeUpgrade for TestOnRuntimeUpgrade { fn on_runtime_upgrade() -> frame_support::weights::Weight { assert_eq!(sp_io::storage::get(TEST_RUNTIME_UPGRADE_KEY), Some(vec![1, 2, 3, 4].into())); - Weight::from_ref_time(1) + Weight::from_parts(1, 0) } } diff --git a/test/runtime/src/test_pallet.rs b/test/runtime/src/test_pallet.rs index 59b82bd256e..bc72ef19505 100644 --- a/test/runtime/src/test_pallet.rs +++ b/test/runtime/src/test_pallet.rs @@ -23,7 +23,6 @@ pub mod pallet { use frame_system::pallet_prelude::*; #[pallet::pallet] - #[pallet::generate_store(pub(super) trait Store)] pub struct Pallet(_); #[pallet::config] diff --git a/test/service/Cargo.toml b/test/service/Cargo.toml index 376eb8b4dd6..518b3ad66e1 100644 --- a/test/service/Cargo.toml +++ b/test/service/Cargo.toml @@ -9,78 +9,81 @@ name = "test-parachain" path = "src/main.rs" [dependencies] -async-trait = "0.1.59" -clap = { version = "4.0.29", features = ["derive"] } +async-trait = "0.1.66" +clap = { version = "4.1.8", features = ["derive"] } codec = { package = "parity-scale-codec", version = "3.0.0" } criterion = { version = "0.4.0", features = [ "async_tokio" ] } jsonrpsee = { version = "0.16.2", features = ["server"] } rand = "0.8.5" -serde = { version = "1.0.151", features = ["derive"] } -tokio = { version = "1.23.0", features = ["macros"] } +serde = { version = "1.0.152", features = ["derive"] } +tokio = { version = "1.26.0", features = ["macros"] } tracing = "0.1.37" url = "2.3.1" # Substrate -frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-network-common = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.36" } -sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +frame-system = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +frame-system-rpc-runtime-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +pallet-transaction-payment = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-basic-authorship = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-chain-spec = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-client-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-consensus = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-executor = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-network = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-service = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-transaction-pool-api = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-telemetry = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-arithmetic = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-blockchain = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-core = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-io = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-keyring = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-runtime = { git = "https://github.com/paritytech/substrate", default-features = false, branch = "polkadot-v0.9.40" } +sp-state-machine = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-tracing = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-timestamp = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sp-trie = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-test-client = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } # Polkadot -polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } -polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-primitives = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-cli = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-node-subsystem = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } +polkadot-overseer = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Cumulus cumulus-client-cli = { path = "../../client/cli" } parachains-common = { path = "../../parachains/common" } cumulus-client-consensus-common = { path = "../../client/consensus/common" } cumulus-client-consensus-relay-chain = { path = "../../client/consensus/relay-chain" } -cumulus-client-network = { path = "../../client/network" } cumulus-client-service = { path = "../../client/service" } cumulus-primitives-core = { path = "../../primitives/core" } cumulus-primitives-parachain-inherent = { path = "../../primitives/parachain-inherent" } cumulus-relay-chain-inprocess-interface = { path = "../../client/relay-chain-inprocess-interface" } cumulus-relay-chain-interface = { path = "../../client/relay-chain-interface" } -cumulus-relay-chain-rpc-interface = { path = "../../client/relay-chain-rpc-interface" } cumulus-test-relay-validation-worker-provider = { path = "../relay-validation-worker-provider" } cumulus-test-runtime = { path = "../runtime" } cumulus-relay-chain-minimal-node = { path = "../../client/relay-chain-minimal-node" } +cumulus-client-pov-recovery = { path = "../../client/pov-recovery" } [dev-dependencies] -futures = "0.3.25" +futures = "0.3.26" portpicker = "0.1.1" # Polkadot dependencies -polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.36" } +polkadot-test-service = { git = "https://github.com/paritytech/polkadot", branch = "release-v0.9.40" } # Substrate dependencies -sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } -substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.36" } +sc-cli = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } +substrate-test-utils = { git = "https://github.com/paritytech/substrate", branch = "polkadot-v0.9.40" } + +[features] +runtime-benchmarks = ["polkadot-test-service/runtime-benchmarks"] [[bench]] name = "transaction_throughput" diff --git a/test/service/src/cli.rs b/test/service/src/cli.rs index 31829a66d26..3cf99496576 100644 --- a/test/service/src/cli.rs +++ b/test/service/src/cli.rs @@ -49,6 +49,9 @@ pub struct TestCollatorCli { #[arg(long)] pub disable_block_announcements: bool, + + #[arg(long)] + pub fail_pov_recovery: bool, } #[derive(Debug, clap::Subcommand)] diff --git a/test/service/src/genesis.rs b/test/service/src/genesis.rs index b472c98a7ae..fb1825cfbdd 100644 --- a/test/service/src/genesis.rs +++ b/test/service/src/genesis.rs @@ -18,7 +18,7 @@ use codec::Encode; use cumulus_client_cli::generate_genesis_block; use cumulus_primitives_core::ParaId; use cumulus_test_runtime::Block; -use polkadot_primitives::v2::HeadData; +use polkadot_primitives::HeadData; use sp_runtime::traits::Block as BlockT; /// Returns the initial head data for a parachain ID. diff --git a/test/service/src/lib.rs b/test/service/src/lib.rs index 2b7f17ce14b..0349597f44a 100644 --- a/test/service/src/lib.rs +++ b/test/service/src/lib.rs @@ -33,9 +33,10 @@ use cumulus_client_cli::CollatorOptions; use cumulus_client_consensus_common::{ ParachainBlockImport as TParachainBlockImport, ParachainCandidate, ParachainConsensus, }; -use cumulus_client_network::BlockAnnounceValidator; +use cumulus_client_pov_recovery::RecoveryHandle; use cumulus_client_service::{ - prepare_node_config, start_collator, start_full_node, StartCollatorParams, StartFullNodeParams, + build_network, prepare_node_config, start_collator, start_full_node, BuildNetworkParams, + StartCollatorParams, StartFullNodeParams, }; use cumulus_primitives_core::ParaId; use cumulus_relay_chain_inprocess_interface::RelayChainInProcessInterface; @@ -45,12 +46,15 @@ use cumulus_relay_chain_minimal_node::build_minimal_relay_chain_node; use cumulus_test_runtime::{Hash, Header, NodeBlock as Block, RuntimeApi}; use frame_system_rpc_runtime_api::AccountNonceApi; -use polkadot_primitives::v2::{CollatorPair, Hash as PHash, PersistedValidationData}; +use polkadot_node_subsystem::{errors::RecoveryError, messages::AvailabilityRecoveryMessage}; +use polkadot_overseer::Handle as OverseerHandle; +use polkadot_primitives::{CollatorPair, Hash as PHash, PersistedValidationData}; use polkadot_service::ProvideRuntimeApi; use sc_client_api::execution_extensions::ExecutionStrategies; use sc_consensus::ImportQueue; -use sc_network::{multiaddr, NetworkBlock, NetworkService}; -use sc_network_common::{config::TransportConfig, service::NetworkStateInfo}; +use sc_network::{ + config::TransportConfig, multiaddr, NetworkBlock, NetworkService, NetworkStateInfo, +}; use sc_service::{ config::{ BlocksPruning, DatabaseSource, KeystoreConfig, MultiaddrWithPeerId, NetworkConfiguration, @@ -76,6 +80,8 @@ pub use cumulus_test_runtime as runtime; pub use genesis::*; pub use sp_keyring::Sr25519Keyring as Keyring; +const LOG_TARGET: &str = "cumulus-test-service"; + /// A consensus that will never produce any block. #[derive(Clone)] struct NullConsensus; @@ -126,6 +132,41 @@ pub type ParachainBlockImport = TParachainBlockImport, Backen /// Transaction pool type used by the test service pub type TransactionPool = Arc>; +/// Recovery handle that fails regularly to simulate unavailable povs. +pub struct FailingRecoveryHandle { + overseer_handle: OverseerHandle, + counter: u32, +} + +impl FailingRecoveryHandle { + /// Create a new FailingRecoveryHandle + pub fn new(overseer_handle: OverseerHandle) -> Self { + Self { overseer_handle, counter: 0 } + } +} + +#[async_trait::async_trait] +impl RecoveryHandle for FailingRecoveryHandle { + async fn send_recovery_msg( + &mut self, + message: AvailabilityRecoveryMessage, + origin: &'static str, + ) { + // For every 5th block we immediately signal unavailability to trigger + // a retry. + if self.counter % 5 == 0 { + let AvailabilityRecoveryMessage::RecoverAvailableData(_, _, _, back_sender) = message; + tracing::info!(target: LOG_TARGET, "Failing pov recovery."); + back_sender + .send(Err(RecoveryError::Unavailable)) + .expect("Return channel should work here."); + } else { + self.overseer_handle.send_msg(message, origin).await; + } + self.counter += 1; + } +} + /// Starts a `ServiceBuilder` for a full service. /// /// Use this macro if you don't actually need the full service, but just the builder in order to @@ -212,14 +253,15 @@ async fn build_relay_chain_interface( polkadot_service::IsCollator::Yes(CollatorPair::generate().0) }, None, - )?; + ) + .map_err(|e| RelayChainError::Application(Box::new(e) as Box<_>))?; task_manager.add_child(relay_chain_full_node.task_manager); tracing::info!("Using inprocess node."); Ok(Arc::new(RelayChainInProcessInterface::new( relay_chain_full_node.client.clone(), relay_chain_full_node.backend.clone(), - Arc::new(relay_chain_full_node.network.clone()), + relay_chain_full_node.sync_service.clone(), relay_chain_full_node.overseer_handle.ok_or(RelayChainError::GenericError( "Overseer should be running in full node.".to_string(), ))?, @@ -236,6 +278,7 @@ pub async fn start_node_impl( relay_chain_config: Configuration, para_id: ParaId, wrap_announce_block: Option AnnounceBlockFn>>, + fail_pov_recovery: bool, rpc_ext_builder: RB, consensus: Consensus, collator_options: CollatorOptions, @@ -268,28 +311,22 @@ where &mut task_manager, ) .await - .map_err(|e| match e { - RelayChainError::ServiceError(polkadot_service::Error::Sub(x)) => x, - s => s.to_string().into(), - })?; + .map_err(|e| sc_service::Error::Application(Box::new(e) as Box<_>))?; - let block_announce_validator = - BlockAnnounceValidator::new(relay_chain_interface.clone(), para_id); - let block_announce_validator_builder = move |_| Box::new(block_announce_validator) as Box<_>; - - let prometheus_registry = parachain_config.prometheus_registry().cloned(); let import_queue_service = params.import_queue.service(); - - let (network, system_rpc_tx, tx_handler_controller, start_network) = - sc_service::build_network(sc_service::BuildNetworkParams { - config: ¶chain_config, + let (network, system_rpc_tx, tx_handler_controller, start_network, sync_service) = + build_network(BuildNetworkParams { + parachain_config: ¶chain_config, client: client.clone(), transaction_pool: transaction_pool.clone(), + para_id, spawn_handle: task_manager.spawn_handle(), + relay_chain_interface: relay_chain_interface.clone(), import_queue: params.import_queue, - block_announce_validator_builder: Some(Box::new(block_announce_validator_builder)), - warp_sync: None, - })?; + }) + .await?; + + let prometheus_registry = parachain_config.prometheus_registry().cloned(); let rpc_builder = { let client = client.clone(); @@ -305,14 +342,15 @@ where keystore: params.keystore_container.sync_keystore(), backend: backend.clone(), network: network.clone(), + sync_service: sync_service.clone(), system_rpc_tx, tx_handler_controller, telemetry: None, })?; let announce_block = { - let network = network.clone(); - Arc::new(move |hash, data| network.announce_block(hash, data)) + let sync_service = sync_service.clone(); + Arc::new(move |hash, data| sync_service.announce_block(hash, data)) }; let announce_block = wrap_announce_block @@ -320,6 +358,17 @@ where .unwrap_or_else(|| announce_block); let relay_chain_interface_for_closure = relay_chain_interface.clone(); + + let overseer_handle = relay_chain_interface + .overseer_handle() + .map_err(|e| sc_service::Error::Application(Box::new(e)))?; + + let recovery_handle: Box = if fail_pov_recovery { + Box::new(FailingRecoveryHandle::new(overseer_handle)) + } else { + Box::new(overseer_handle) + }; + if let Some(collator_key) = collator_key { let parachain_consensus: Box> = match consensus { Consensus::RelayChain => { @@ -374,6 +423,7 @@ where collator_key, import_queue: import_queue_service, relay_chain_slot_duration: Duration::from_secs(6), + recovery_handle, }; start_collator(params).await?; @@ -385,10 +435,8 @@ where para_id, relay_chain_interface, import_queue: import_queue_service, - // The slot duration is currently used internally only to configure - // the recovery delay of pov-recovery. We don't want to wait for too - // long on the full node to recover, so we reduce this time here. - relay_chain_slot_duration: Duration::from_millis(6), + relay_chain_slot_duration: Duration::from_secs(6), + recovery_handle, }; start_full_node(params)?; @@ -600,6 +648,7 @@ impl TestNodeBuilder { relay_chain_config, self.para_id, self.wrap_announce_block, + false, |_| Ok(jsonrpsee::RpcModule::new(())), self.consensus, collator_options, @@ -650,7 +699,7 @@ pub fn node_config( if nodes_exlusive { network_config.default_peers_set.reserved_nodes = nodes; network_config.default_peers_set.non_reserved_mode = - sc_network_common::config::NonReservedPeerMode::Deny; + sc_network::config::NonReservedPeerMode::Deny; } else { network_config.boot_nodes = nodes; } @@ -742,7 +791,7 @@ impl TestNode { self.send_extrinsic( runtime::SudoCall::sudo_unchecked_weight { call: Box::new(call.into()), - weight: Weight::from_ref_time(1_000), + weight: Weight::from_parts(1_000, 0), }, Sr25519Keyring::Alice, ) @@ -756,7 +805,7 @@ pub fn fetch_nonce(client: &Client, account: sp_core::sr25519::Public) -> u32 { let best_hash = client.chain_info().best_hash; client .runtime_api() - .account_nonce(&generic::BlockId::Hash(best_hash), account.into()) + .account_nonce(best_hash, account.into()) .expect("Fetching account nonce works; qed") } diff --git a/test/service/src/main.rs b/test/service/src/main.rs index 93be592a472..760caece1ae 100644 --- a/test/service/src/main.rs +++ b/test/service/src/main.rs @@ -20,7 +20,7 @@ use std::{io::Write, sync::Arc}; use cli::{RelayChainCli, Subcommand, TestCollatorCli}; use cumulus_client_cli::generate_genesis_block; -use cumulus_primitives_core::{relay_chain::v2::CollatorPair, ParaId}; +use cumulus_primitives_core::{relay_chain::CollatorPair, ParaId}; use cumulus_test_service::AnnounceBlockFn; use polkadot_service::runtime_traits::AccountIdConversion; use sc_cli::{CliConfiguration, SubstrateCli}; @@ -99,7 +99,7 @@ fn main() -> Result<(), sc_cli::Error> { ); let parachain_account = - AccountIdConversion::::into_account_truncating( + AccountIdConversion::::into_account_truncating( ¶chain_id, ); @@ -123,6 +123,9 @@ fn main() -> Result<(), sc_cli::Error> { "Is collating: {}", if config.role.is_authority() { "yes" } else { "no" } ); + if cli.fail_pov_recovery { + tracing::info!("PoV recovery failure enabled"); + } let collator_key = config.role.is_authority().then(|| CollatorPair::generate().0); @@ -141,6 +144,7 @@ fn main() -> Result<(), sc_cli::Error> { polkadot_config, parachain_id, cli.disable_block_announcements.then(wrap_announce_block), + cli.fail_pov_recovery, |_| Ok(jsonrpsee::RpcModule::new(())), consensus, collator_options, diff --git a/zombienet/examples/bridge_hub_polkadot_local_network.toml b/zombienet/examples/bridge_hub_polkadot_local_network.toml new file mode 100644 index 00000000000..564fece7cae --- /dev/null +++ b/zombienet/examples/bridge_hub_polkadot_local_network.toml @@ -0,0 +1,67 @@ +[relaychain] +default_command = "../polkadot/target/release/polkadot" +default_args = [ "-lparachain=debug" ] +chain = "polkadot-local" + + [[relaychain.nodes]] + name = "alice" + validator = true + + [[relaychain.nodes]] + name = "bob" + validator = true + + [[relaychain.nodes]] + name = "charlie" + validator = true + + [[relaychain.nodes]] + name = "dave" + validator = true + +[[parachains]] +id = 1003 +chain = "bridge-hub-polkadot-local" +cumulus_based = true + + # run alice as parachain collator + [[parachains.collators]] + name = "alice" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run bob as parachain collator + [[parachains.collators]] + name = "bob" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run charlie as parachain collator + [[parachains.collators]] + name = "charlie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run dave as parachain collator + [[parachains.collators]] + name = "dave" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run eve as parachain collator + [[parachains.collators]] + name = "eve" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] + + # run ferdie as parachain collator + [[parachains.collators]] + name = "ferdie" + validator = true + command = "./target/release/polkadot-parachain" + args = ["-lparachain=debug"] diff --git a/zombienet/tests/0001-sync_blocks_from_tip_without_connected_collator.feature b/zombienet/tests/0001-sync_blocks_from_tip_without_connected_collator.zndsl similarity index 88% rename from zombienet/tests/0001-sync_blocks_from_tip_without_connected_collator.feature rename to zombienet/tests/0001-sync_blocks_from_tip_without_connected_collator.zndsl index 68620d03abc..bdb475ce921 100644 --- a/zombienet/tests/0001-sync_blocks_from_tip_without_connected_collator.feature +++ b/zombienet/tests/0001-sync_blocks_from_tip_without_connected_collator.zndsl @@ -2,12 +2,6 @@ Description: Sync blocks from tip without connected collator test Network: ./0001-sync_blocks_from_tip_without_connected_collator.toml Creds: config - -alice: is up -bob: is up -charlie: is up -dave: is up - alice: parachain 2000 is registered within 225 seconds alice: parachain 2000 block height is at least 10 within 250 seconds diff --git a/zombienet/tests/0002-pov_recovery.feature b/zombienet/tests/0002-pov_recovery.feature deleted file mode 100644 index 80524164821..00000000000 --- a/zombienet/tests/0002-pov_recovery.feature +++ /dev/null @@ -1,26 +0,0 @@ -Description: PoV recovery test -Network: ./0002-pov_recovery.toml -Creds: config - - -validator-0: is up -validator-1: is up -validator-2: is up -validator-3: is up -alice: is up within 60 seconds -bob: is up within 60 seconds -charlie: is up within 60 seconds -one: is up within 60 seconds -two: is up within 60 seconds - -# wait 30 blocks and register parachain -validator-3: reports block height is at least 30 within 250 seconds -validator-0: js-script ./register-para.js with "2000" within 240 seconds -validator-0: parachain 2000 is registered within 300 seconds - -# check block production -bob: reports block height is at least 20 within 600 seconds -alice: reports block height is at least 20 within 600 seconds -charlie: reports block height is at least 20 within 600 seconds -one: reports block height is at least 20 within 600 seconds -two: reports block height is at least 20 within 600 seconds diff --git a/zombienet/tests/0002-pov_recovery.toml b/zombienet/tests/0002-pov_recovery.toml index 2e3f8629cab..0df0293e348 100644 --- a/zombienet/tests/0002-pov_recovery.toml +++ b/zombienet/tests/0002-pov_recovery.toml @@ -40,7 +40,7 @@ add_to_genesis = false validator = true # collator image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] # run eve as a parachain full node [[parachains.collators]] @@ -48,7 +48,15 @@ add_to_genesis = false validator = false # full node image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}","--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}","--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] + + # we fail recovery for eve from time to time to test retries + [[parachains.collators]] + name = "eve" + validator = true # collator + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--fail-pov-recovery", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] # run one as a RPC collator who does not produce blocks [[parachains.collators]] @@ -56,7 +64,7 @@ add_to_genesis = false validator = true # collator image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--use-null-consensus", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] # run two as a RPC parachain full node [[parachains.collators]] @@ -64,4 +72,4 @@ add_to_genesis = false validator = false # full node image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] + args = ["-lparachain::availability=trace,sync=debug,parachain=debug,cumulus-pov-recovery=debug,cumulus-consensus=debug", "--disable-block-announcements", "--bootnodes {{'bob'|zombie('multiAddress')}}", "--relay-chain-rpc-url {{'ferdie'|zombie('wsUri')}}", "--", "--reserved-only", "--reserved-nodes {{'ferdie'|zombie('multiAddress')}}"] diff --git a/zombienet/tests/0002-pov_recovery.zndsl b/zombienet/tests/0002-pov_recovery.zndsl new file mode 100644 index 00000000000..3eb28bb2aeb --- /dev/null +++ b/zombienet/tests/0002-pov_recovery.zndsl @@ -0,0 +1,16 @@ +Description: PoV recovery test +Network: ./0002-pov_recovery.toml +Creds: config + +# wait 20 blocks and register parachain +validator-3: reports block height is at least 20 within 250 seconds +validator-0: js-script ./register-para.js with "2000" within 240 seconds +validator-0: parachain 2000 is registered within 300 seconds + +# check block production +bob: reports block height is at least 20 within 600 seconds +alice: reports block height is at least 20 within 600 seconds +charlie: reports block height is at least 20 within 600 seconds +one: reports block height is at least 20 within 800 seconds +two: reports block height is at least 20 within 800 seconds +eve: reports block height is at least 20 within 800 seconds diff --git a/zombienet/tests/0003-full_node_catching_up.feature b/zombienet/tests/0003-full_node_catching_up.zndsl similarity index 81% rename from zombienet/tests/0003-full_node_catching_up.feature rename to zombienet/tests/0003-full_node_catching_up.zndsl index de8353bb134..9c6eb0fb830 100644 --- a/zombienet/tests/0003-full_node_catching_up.feature +++ b/zombienet/tests/0003-full_node_catching_up.zndsl @@ -2,11 +2,6 @@ Description: Full node catching up test Network: ./0003-full_node_catching_up.toml Creds: config -alice: is up -bob: is up -charlie: is up -dave: is up -eve: is up alice: parachain 2000 is registered within 225 seconds dave: reports block height is at least 7 within 250 seconds eve: reports block height is at least 7 within 250 seconds diff --git a/zombienet/tests/0004-runtime_upgrade.feature b/zombienet/tests/0004-runtime_upgrade.zndsl similarity index 89% rename from zombienet/tests/0004-runtime_upgrade.feature rename to zombienet/tests/0004-runtime_upgrade.zndsl index eca3cb33668..cdafc48fce9 100644 --- a/zombienet/tests/0004-runtime_upgrade.feature +++ b/zombienet/tests/0004-runtime_upgrade.zndsl @@ -2,10 +2,6 @@ Description: Runtime Upgrade test Network: ./0004-runtime_upgrade.toml Creds: config -alice: is up -bob: is up -charlie: is up -dave: is up alice: parachain 2000 is registered within 225 seconds charlie: reports block height is at least 5 within 250 seconds charlie: parachain 2000 perform upgrade with /tmp/wasm_binary_spec_version_incremented.rs.compact.compressed.wasm within 200 seconds diff --git a/zombienet/tests/0005-migrate_solo_to_para.feature b/zombienet/tests/0005-migrate_solo_to_para.zndsl similarity index 89% rename from zombienet/tests/0005-migrate_solo_to_para.feature rename to zombienet/tests/0005-migrate_solo_to_para.zndsl index c546e49d1cf..677eb87a2e6 100644 --- a/zombienet/tests/0005-migrate_solo_to_para.feature +++ b/zombienet/tests/0005-migrate_solo_to_para.zndsl @@ -2,10 +2,6 @@ Description: Migrate solo to para Network: ./0005-migrate_solo_to_para.toml Creds: config -alice: is up -bob: is up -dave: is up -eve: is up alice: parachain 2000 is registered within 225 seconds alice: reports block height is at least 10 within 250 seconds alice: parachain 2000 block height is at least 10 within 250 seconds diff --git a/zombienet/tests/0006-rpc_collator_builds_blocks.toml b/zombienet/tests/0006-rpc_collator_builds_blocks.toml index 963b6f5d9e1..693ca578190 100644 --- a/zombienet/tests/0006-rpc_collator_builds_blocks.toml +++ b/zombienet/tests/0006-rpc_collator_builds_blocks.toml @@ -39,7 +39,7 @@ cumulus_based = true validator = true image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["-lparachain=trace,blockchain-rpc-client=debug", "--relay-chain-rpc-urls {{'one'|zombie('wsUri')}} {{'two'|zombie('wsUri')}} {{'three'|zombie('wsUri')}}", "-- --bootnodes {{'one'|zombie('multiAddress')}} {{'two'|zombie('multiAddress')}} {{'three'|zombie('multiAddress')}}"] + args = ["-lparachain=trace,blockchain-rpc-client=debug", "--relay-chain-rpc-urls {{'one'|zombie('wsUri')}} {{'two'|zombie('wsUri')}} {{'three'|zombie('wsUri')}}", "--", "--bootnodes {{'one'|zombie('multiAddress')}} {{'two'|zombie('multiAddress')}} {{'three'|zombie('multiAddress')}}"] # run eve as parachain full node [[parachains.collators]] @@ -47,4 +47,4 @@ cumulus_based = true validator = true image = "{{COL_IMAGE}}" command = "test-parachain" - args = ["-lparachain=trace,blockchain-rpc-client=debug", "--relay-chain-rpc-urls {{'one'|zombie('wsUri')}} {{'two'|zombie('wsUri')}} {{'three'|zombie('wsUri')}}", "-- --bootnodes {{'one'|zombie('multiAddress')}} {{'two'|zombie('multiAddress')}} {{'three'|zombie('multiAddress')}}"] + args = ["-lparachain=trace,blockchain-rpc-client=debug", "--relay-chain-rpc-urls {{'one'|zombie('wsUri')}} {{'two'|zombie('wsUri')}} {{'three'|zombie('wsUri')}}", "--", "--bootnodes {{'one'|zombie('multiAddress')}} {{'two'|zombie('multiAddress')}} {{'three'|zombie('multiAddress')}}"] diff --git a/zombienet/tests/0006-rpc_collator_builds_blocks.feature b/zombienet/tests/0006-rpc_collator_builds_blocks.zndsl similarity index 85% rename from zombienet/tests/0006-rpc_collator_builds_blocks.feature rename to zombienet/tests/0006-rpc_collator_builds_blocks.zndsl index 78886b7020b..7da8416d016 100644 --- a/zombienet/tests/0006-rpc_collator_builds_blocks.feature +++ b/zombienet/tests/0006-rpc_collator_builds_blocks.zndsl @@ -2,15 +2,6 @@ Description: RPC collator should build blocks Network: ./0006-rpc_collator_builds_blocks.toml Creds: config -alice: is up -bob: is up -charlie: is up -one: is up -two: is up -three: is up -dave: is up -eve: is up - alice: parachain 2000 is registered within 225 seconds alice: parachain 2000 block height is at least 10 within 250 seconds diff --git a/zombienet/tests/0007-full_node_warp_sync.toml b/zombienet/tests/0007-full_node_warp_sync.toml new file mode 100644 index 00000000000..493363fd3cf --- /dev/null +++ b/zombienet/tests/0007-full_node_warp_sync.toml @@ -0,0 +1,77 @@ +[relaychain] +default_image = "{{RELAY_IMAGE}}" +default_command = "polkadot" +default_args = [ "-lparachain=debug" ] +chain = "rococo-local" +chain_spec_path = "zombienet/tests/0007-warp-sync-relaychain-spec.json" + + [[relaychain.nodes]] + name = "alice" + validator = true + db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/relaychain-1964f8b557f10085cdc18f4105ad0bbb3df4c4c6.tgz" + + [[relaychain.nodes]] + name = "bob" + validator = true + db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/relaychain-1964f8b557f10085cdc18f4105ad0bbb3df4c4c6.tgz" + + [[relaychain.nodes]] + name = "charlie" + validator = true + db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/relaychain-1964f8b557f10085cdc18f4105ad0bbb3df4c4c6.tgz" + + [[relaychain.nodes]] + name = "dave" + validator = true + args = ["--sync warp", "--reserved-only", "--reserved-nodes {{'alice'|zombie('multiAddress')}} {{'bob'|zombie('multiAddress')}} {{'charlie'|zombie('multiAddress')}}"] + +[[parachains]] +id = 2000 +cumulus_based = true +chain_spec_path = "zombienet/tests/0007-warp-sync-parachain-spec.json" +add_to_genesis = false + + [[parachains.collators]] + name = "dave" + validator = true + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lparachain=debug"] + db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/parachain-587c1ed24ddd7de05c237cf7c158fff53b8f5b26.tgz" + + [[parachains.collators]] + name = "eve" + validator = true + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lparachain=debug"] + db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/parachain-587c1ed24ddd7de05c237cf7c158fff53b8f5b26.tgz" + + [[parachains.collators]] + name = "ferdie" + validator = true + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lparachain=debug"] + db_snapshot = "https://storage.googleapis.com/zombienet-db-snaps/cumulus/0007-full_node_warp_sync/parachain-587c1ed24ddd7de05c237cf7c158fff53b8f5b26.tgz" + + [[parachains.collators]] + name = "one" + validator = false + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lsync=debug","--sync warp","--","--sync warp"] + + [[parachains.collators]] + name = "two" + validator = false + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lsync=debug","--sync warp","--relay-chain-rpc-urls {{'alice'|zombie('wsUri')}}"] + + [[parachains.collators]] + name = "three" + validator = false + image = "{{COL_IMAGE}}" + command = "test-parachain" + args = ["-lsync=debug","--sync warp","--relay-chain-rpc-urls {{'dave'|zombie('wsUri')}}"] diff --git a/zombienet/tests/0007-full_node_warp_sync.zndsl b/zombienet/tests/0007-full_node_warp_sync.zndsl new file mode 100644 index 00000000000..1bcc35e80c4 --- /dev/null +++ b/zombienet/tests/0007-full_node_warp_sync.zndsl @@ -0,0 +1,8 @@ +Description: Full node catching up using warp sync +Network: ./0007-full_node_warp_sync.toml +Creds: config + +alice: parachain 2000 is registered within 225 seconds +one: reports block height is at least 770 within 225 seconds +two: reports block height is at least 770 within 225 seconds +three: reports block height is at least 770 within 225 seconds \ No newline at end of file diff --git a/zombienet/tests/0007-prepare-warp-sync-db-snapshot.md b/zombienet/tests/0007-prepare-warp-sync-db-snapshot.md new file mode 100644 index 00000000000..7885dd0c026 --- /dev/null +++ b/zombienet/tests/0007-prepare-warp-sync-db-snapshot.md @@ -0,0 +1,37 @@ +# Database snapshot guide + +For this guide we will be taking a snapshot of a parachain and relay chain. Please note we are using a local chain here `rococo_local_testnet` and `local_testnet`. Live chains will have different values + +*Please ensure that the database is not in current use, i.e no nodes are writing to it* + +# How to prepare database for a relaychain +To prepare snapshot for a relay chain we need to copy the database. + +``` +mkdir -p relaychain-snapshot/alice/data/chains/rococo_local_testnet/db/ + +cp -r chain-data/alice/data/chains/rococo_local_testnet/db/. relaychain-snapshot/alice/data/chains/rococo_local_testnet/db/ + +tar -C relaychain-snapshot/alice/ -czf relaychain.tgz data +``` +# How to prepare database for a parachain + +To prepare snapshot for a parachain we need to copy the database for both the collator node (parachain data) and validator (relay data) + +``` +#Parachain data +mkdir -p parachain-snapshot/charlie/data/chains/local_testnet/db/ + +# Relay data +mkdir -p parachain-snapshot/charlie/relay-data/chains/rococo_local_testnet/db/ + +cp -r chain-data/charlie/data/chains/local_testnet/db/. parachain-snapshot/charlie/data/chains/local_testnet/db/ + +cp -r chain-data/charlie/relay-data/chains/rococo_local_testnet/db/. parachain-snapshot/charlie/relay-data/chains/rococo_local_testnet/db/ + +tar -C parachain-snapshot/charlie/ -czf parachain.tgz data relay-data +``` + +# Restoring a snapshot +Zombienet will automatically download the `*.tgz` file to the respective folder for a run. However you can also download it manually, just ensure you extract the tar file in the correct directory, i.e. the root directory +`chain-data/charlie/` \ No newline at end of file diff --git a/zombienet/tests/0007-warp-sync-parachain-spec.json b/zombienet/tests/0007-warp-sync-parachain-spec.json new file mode 100644 index 00000000000..306e82e8d03 --- /dev/null +++ b/zombienet/tests/0007-warp-sync-parachain-spec.json @@ -0,0 +1,53 @@ +{ + "name": "Local Testnet", + "id": "local_testnet", + "chainType": "Local", + "bootNodes": [ + "/ip4/127.0.0.1/tcp/63048/ws/p2p/12D3KooWKM1HeSv61ryZwAiBTZnqmass5pYM48k9Z7obzhTbnphm" + ], + "telemetryEndpoints": null, + "protocolId": null, + "properties": null, + "para_id": 2000, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x2089cf3645f21ef4a51744f13e6e4e45": "0xd0070000", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9007cbc1270b5b091758f9c42f5915b3e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da923a05cabf6d3bde7ca3ef0d11596b5611cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da932a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da94f9aea1afa791265fae359272badc1cf8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da98578796c363c105114787203e4d93ca6101191192fc877c24d725b337120fa3edc63d227bbc92705db1e2cb65f56981a": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b0edae20838083f2cde1c4080db8cf8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b321d16960ce1d9190b61e2421cc60131e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9e5e802737cce3a54b0bc9e3d3e6be26e306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9edeaa42c2163f68084a988529a0e2ec5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f3f619a1c2956443880db9cc9a13d058e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x0000000000000000010000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x045863756d756c75732d746573742d70617261636861696e", + "0x2b746573745f72756e74696d655f757067726164655f6b65792b": "0x01020304", + "0x3a63": "0x", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd0058141105def98535124d107877930ef0565839f8f5c1e2f0077f0fad17c87323feddec14ff657b8b1316becd112e7e9b1869497315cfa9942f3bd3522e26b2907799a96820d709ac8778336b37217befbde59652a69452a31276112112514e4d04e913aaf0a8cf13fc73d5205479987a92e28907dacfe2848ae1a964908ae151e944fd89921adca00a50da080ae28932284a50108ffa74e22d271397c3e2a6eeb676ce2ec0031a6394e151d7ec02335bc8820ee2a082326578d46dbe1916e16ae7b6e7bb547ccfdbe3a6bd0719dbac8797d0d9f37d3d5139e3474c7aeeb6fdabb1750e9f73dbbe63c6827a5420bd1dbd2b6fe80dbdbd821e617b436fcabbfb829bfeebe128f80eb3435fe837cef7f96fdc14a03f0abe6ddf6d2eea0f65325cfadc2910e8ea4f81c0ed07263d57c2e730e9b9663d6312d15bc7f2e7a4d6b9fc390f2e3926457f0e840271fd11fdf9b5698c13ddda22e3c41cb175468c13bdf2e7aae5e70fff3c8702d97f0ea377971dd617bd9d8a95e7c1a4e8eceb9b45bfa1bc9fff86923f5be629d7139526bc9ea82ce1474c8a0e7fdc575299149ffe50d7cce90ff51d86dbfe13363dee1f5cca25aaddc9b9ef306adb7f9b73cd843c77ce6ffbd93241da9d4f31463308b43b8feee48cef28dfeca789284e4009fa9f598237c0a1cc4367627a28993c572651723ae7b72589519c80f23f5b6636c119912867139766429e3b775910e8aa3fe6a3b67db8fd6c995f7f3d4ede0c6977deeea40fbb933f4e7ef6f35b26e3a2fcdaace772cc9fc72d73552021877e85b620a69f985fae599018f289ae8e6d33fafab5af272aa77ffa03fa0e337bb645b7b6fdebd20c02ec55e5d956b9b5e9ba663d959c9563d5b67ff90e5fba617e6dfa97664254ce7d75cc2fc62e21d6abfe98ead7b5d885f90e2b766d71c398d47e44c3fc72eb671c121f933e95b36fb3f2f59dd68c087bb5d9cf9679cb777a87ad4dbfdaf4a33edcdee636c724c5b6af5cda01cdf91cfd8b4070e9e5fcf3e73f70e9e69f53b9f2cf79b00ef33c21feedf0cf352eb1bff79eab8f277df4f4e4525dd54de2d2378331c9d918c1a5e95f7afc5433def9732a3e7f0afa54304f39105c9aa31d2ecd380497a6a604972817824b374f7906d878ca3bc03a8ea7158c7679ca954b3c7edafc04e2a9e73bcce3e28d9ab2533ce51763bcf18f5cf0945fcaab1dfad932af94db70c9394539e5ea83923e3aa6b544910577405b1ff16041d0b3cdbb901e7d7bebea2c4fbbd6362fe452cb0c6d62639e5db31929907dedd2d0c544734c52e97a2322b9dad5c7d41397eebe7976c77e6acf3e3026ed9880b2814510c0acc10b18b8600c3c3a9a71bbee1c8828c2e8300fbb10bded633a9e1d5b89bd9ea2f8f24e8e98b47a72c3a51fd0d867c40270e90534f62bd485ebf50405981ff1b84c5966b0022a6499810bce1006cfb6af7fad63d23a2ec23189af4b3321504e7fe851df8c63929c40fd968fb874793b0f2e5117555572566e7945614cd2b84455de7e51dbfe553109f3cd848c1e931373cba94d1fdb80fa2bbf96753b446dfad7a66f55a35f8fad0385f328e3a8fe983c7ee584febcfdea5db8e933603d6e40ef17bb186be2a1eb366367fa66d6d5650a673026f960523be5ce24aa7573dbdc57871b50bffa6e1a93d837eb51f96464126befb1755c50505050104f3b4981f4b78fb7f6d1a0bd3723b4f5f83c42f1e5d9b1111441cfcee3b9cc086d5df79d894bf9ba1433f58e6b7d37324f4ed33fdf6d36b6dbfeb55376ca1a9df54ca9c2399eb5d115cfcec3b3f81d342ecdeb19c710d5c2ff6c999f463e0ba269bcfaf530e70562cf0c0a8353c25c0ddf320042ea970251a9fa637753263de998a412d0e6e8d9dbddfea88d67e74122f3ec3bb86dc4a4c9e3d7ed6bc2fa0ad4e0155879e627c6e82582ee9e5f3b42606837ced7db9f43efac07c27d4e0e59efb73bc6a51ed0f4f444987fafa727a2bccea8b1ce6940178fd62451ef0334cd1e607ae76494a65d077cd180226a80e95665674c9d33224cefa3f2e7c9ab4f766dc190a2c6eb498a979ff19d17e0f524e58a7717dcae7d1911a67742f6a14fd34319790b81f1fc7259cfeb8c08d3b766d06fa00cb20f1dcac8a475dd571f4efa68572e1ede2d24c6ae06b9f401eeb1bf44f0353bcb76f7a010f6f61d562edd04616f6f389ffbb43b87d02397f821f6a74b1fa05d22e5123b9742e6f557462639777e89767e9ebcfbd977120497728b2297dad99de3acc76d4684c96dfb9a75072ee51237a6dba53ea2b081e570690af1ed932404979cb7efc025eadb352ee9298a986fb7611de6f141fdfce1dbafc59475b4c651c7251ff6751b2eb1b72beb68e3b49b5126614c5a777e31b68ead2beb288f3a16e6d53763d72c08bbf321ec0ee312ebe90997f2a5ae3ee6063dab134d4f54d8f80dd2694c371fcda75d7f6e10bf9ea488f2fbeb9b15b1505ee5dc20e7ba3571afee3622a257ef4d15c8747e33c47a277f44afae687cce4f2df3b39df5755326e9b653b4f57d6504a86ff6e33fdab7dc205e820abefc8ccfeccccc5c9e9999d9d5072f7169073476e712894bd38db8d4ee430553be1d639de6e91df8278f6f6f775cf2d1d22727490e129a9e9cb8e2f504858d9fa4673fc0eb09cae935eb918036b51dd6348c4beafcfcd5afb7e9f7b67fa90fda3e6cec6dd037eb69e89a11617a786d36e43994f3f9f38bb321da3fd7cc31c9f9e5b0def6afc6e0f67c3365d2b4f9f5ebd20cca697ae8bdcdf8bc7b9beea1eff0d5db74c0b75f9a517236f194f736f5f4ed6f9bcaa4269850c24806be7d2a93a611df3edf10dfbed36fd3a7b69f2e53a60c997fdedb14e29d5f8bf5e6fc6dfa9a15413ddc7ea87f72eeb7fcd93265ca94f969fa76b72993563a26ade7bc02c004d741b9d43ac3ba94d4014d4f50b6fc8caf27285a5e1d639de5511f71494f41645e9dc7abab0f65c0a53f5c977249f7d7d52f9172491d97d8d5afbd1ca65cd29ff155671c50851626e9b7f376f6ce7a58eace38a08a2d4cd25fef4d9ddcac2732a95db32134eb61dfe16dc2a5cfeccb2c77d8b44bc4b5be9b04b45350989feed9e37a8cda3aca3853fbf5a9bddb45a2b779db7778bbbb7bbd7b993d3ecb1b22ecce799de5646fdefd72a98fe9cf7ee901b44b7dd0d4db35eb51df2c4813414141505ea53269c667bf18532ead734999c4bec3bd3926b1f7a0391f71495fe312bb0d97dad9475cda67d7aca7ddd6448767628abf1e7fe50d9175e7eb4e02edb7d4ac67e55c7f0580a9779f70e9ab8fa93dfb15b9347784c0d0d627f67cf566006dbd5d5db322d67d5a46264df7ea3b7cedd60fc37c132c742db69b7b4c812cd931ff437d139a26d8afb38714c8920dfa1f067c13f8ebec2205b26483fe8701bfceaed9101714f4eb3b7c31a60a647db62b93d42397e67ebbfad55b6492fa0fad5d5d33218e49ea2d2393d477f8626c377e4c812cd9d33781bfce9e2990251bf43f0cf875f6cd8ad0827e1de3923ebb664336e8d7777887777887755326a9ab0f963eda2b004cbccc854bf95a572e4df595ca247575d3ee8d4b4f41585ea94b11a0adab6b15c2e2002b30c10a7d110242e88a9095d095500c425484a4084d09419189216342e6253b4256459645f682cc0559956c8a2c0619958c05991459141610322cac1c6457322a322c5610321b585d584db098608db1b86075c1528295040b095617eb081619d618d6c912c3fa6241c17a82e504ab0ccb0c56192c32586b5863b0c46085c152c30283f505cb0b9618cb0a9616ac2c584bb0bc5855b0c058685854b0b060a5615dc11a82158645048b8b2504cb0bab07d6161617160d2c2b2c272c29aa32560b2a315463a8b05039a10a420584ea07d596ac0515964a07550eaa1b543ba86c50f1a0b2525151bda0aa52c1a092a26a017761304031b017380cf10a9512e00ee016d5140c835e4353a96440d1c04da1d8105510a34427a2940825ae203ed15f60151c0e1e1b54192832550cac18846410b241954595a5f2013503ea069916c8051cc3424165c179c15ae02c382add0316a3b9a0a2d02ca0aef416b18c2c0c991a5919b10ab00c1b0585a5ea810343d5c03d41d9c0ad20e2a0e202a4025a8941549987c6a30264c15bc263c253c22be321e13de1390152a990405dd1515461760ce481f301ec01f481bbc1c3f2821e0d1c1cde150fca93e2a4e0b8b82f9c10dc10f80b7b066a8b0bc302c381e1a8d04c8031e82a4022c02d108ca785078617c665f1e0f0cabc36a82d505fa0b8605909d1c0c520c34176036b061597d8047785b2c2ba6255615d414901d900e100dba0a85050282b140ca817502da0aa502ea0a68065281540375053e015a82720196a05140ba8200a0a180798059806c402b4027c03e5046c0315858a026a815ac02c1d6685b05fac17dbc5066181b03fd82deb83edc172b15b2c0f7607abc56ad92cab83cdc166b138582cf6069511ac2cdc15b21a505f2c1e341bad06aa8ae6018ba14a42ef80adb01a5c062603ab81cdc063780c1c0553612842537095ea0bb780a5e02916151c03a66289b061ac97adc182b1702000ceb6c192c1aab145d8306c12760d951728508105c396b14dd82fcb8475c21a61b9ac153b833d4225a6da4215859562a930b18492112449620211d8278c384111203882031ac8000450b02b183284909d0248901e0734e019b0000508918065010f3be4146003bdc5b5af0bbfa8b88f30390204459838e28812458a5cdb49283952a48845c9200475a04b844009922248145922044a8628590209d01149922cd10020248e2449b244030a0073a0404580981c918489111c01c4e4c80890540088c91144001d1102009805d0114b8e283922820de2409998e0884f1126458e24b10412479228c2c40447882859020913264728a003c4424b8084895f72c467c9121828628337d0234047248124c9114d8a1c21c1111248a002491c1181088ea84001201665e283c4112590b0813201527264c911259420715803254842700369a0482061a204c912a0268e14314112269838a2c8922349244142021e1f249648c2c3035ea1479050b2849222471441c2c41f4142c9121100524282259040e27b402b7404458e003a228923808e406006cee00448921c810408891224376015ea83c412494050e40810099038d2c4111a7845972cd1004cf74812101c01a4840421280284c4912548925082a448111d35ae0b6a4b172bb678355d7a0a0afa35b50ed85c3417cbc452eee6064208b71b08e1069f6355eeec712bbb6687ed3eb84bedae66cf35534edf83a2f7288ae26ec7ecdeebc7ce31e5a8d6eeeea7dcf03d65761c5d478bf945aa599f0eaf72f753d71d33aeb28a724d594ea3a80c73dcfa54b5f45eef788f9b52c7efbd4775333b8780a7af9595b9dd7b8f5d77436d6ed7caed28eda7aaaff5a973fa5455dbfda06a39cbb96676adad54f7019cba66ca418703070e1c9a166ad50e29a5aee3ebc8ccacec9859b51d845015f2636dbdac5675bb4ab55254e6b01bec1cd58e6137c54e536e657eafbbb97308cd74ab0f3b765cadd075373f4a5595626e0d398851146551cea90bf59013e281a17bdd0d9d638a72dbdc96a5da1445511453ce6198c330e7dab2ba9929ca3947313beab5aa62166635b363eea78e5b951bb6c8b5c5dcccdc90294a43aa8f5bb9bb356a37ecee7eccadddcddc1de26e6d758f2b664b64801f168b9455c7a39e0ed5d7cddabbdddadd4d59ed54d4d78e07e5b8bbdb717333f7beb7adfa9a454f7bd9396666c7ce3da7aadadcaacaedba55298ad276adcf2954854fbbdb51943e75eb1e3ff8203bb78f79f939ca6a8fdadd375e6bb376b3bed67694c332ca591a156364a6ba1f3bcbe95307ddd3c1dcddcceeedf09e0e14c5ef51bbb0003a40d17b0fbe97030170188a1ca4dec3b8b9df7bef31bf3782efe97b1dd9396739768ef53577776c071ff7d3dd0e610961d134ca2658b2c4088e8c00929238b2e448124b96285242800f47902c0122c000748c76f820710408922459820003d89123871c3a6822101247305172c412a0224048463082254835f246c91126983862b58711e4a0478e2c094191254b001d81c41249921c91437b38320224404a48b044da840088043d8e285104480992254c144182099211f0f8a1d4a389254a00944309013e388df600840f3d14f1e188cf1149405044044a9028c1e408253c022d390288c9007c58c2040097fa70840993234b9818c11248145972a4c912481c5952e40826492071a4480f3e2504f8c004124798e8544a20017404088a28c10489122421e81102244b8e342992801e1080001f923852640920264cb004090054dac3912647921469e28811e82000ed41044b2429220225484420822592e898719b268e24a104491125488e500289108460097980244990f8e40480c9007ca80f404b2c0180248e38b2846482233e45809a38a264871aa0232218000fed81091013244d1c2180541f9a401282234b98c869a2e448cf680f45942c8184c992234d8a2c39e24812248a1c11c1114b96006252248924489440a2085012121c1182234914016ae2084e1325471a278b01eb13131b51caf4c43241236a824f9e984c941135994cd1883e79f2e4491b3175371b79b2a6274f9eb8276d444d4f9e98dc65c4b4a6353d31b511933e79f2e4c9139333f2644d6be489c96419515365449fac9127fbe4091b31ed9335a24f9eb0291a31ad3e7962323923a63551469e4023a65523aaa667c4b42667444d2636a22693a98d98d6b446d4b44680682e565577044c8ed02f23e2bebb4021d39910d33b8f5ca2bce5e46f2a527e452a46f9d34f4987eb9a15f15c3308bc18c575ed4f9769630807adfee01de228b94a7a28786ec22b9740078abf0448eb7fbecac3734e9efbdb1fe69af043bf20d6d910d7bc1da29c923ffdf04975ce0497c5b8d4c77c55b60c2e511f1a822e717e5521ef1f58c7f2f62b6efb44fc2f8f9787b67d4b4e1e9d8d3623e2c0b47b6ccb22726bcb32c57944eeb69f27414f9d7e72d0b7f6d16d137bde5e84f85bee18ca69c91bcb9f849c593236f9117df4acbfa4a146b31144e54a165bc2f0624698351c9917854bbc45e10273de5e2e981181eee4947f859e3017641ef32a23d25de4b461523b26439b7e95694c6a5f32381bc2ffdc653d4b84e85b1edaf8abac2793aa3ccccbd73723c24452f097b7172e61de8ec9c944a0ec2e72c66db950e321b619044414ffacb575141ae3ac923fdb5e7475df0b39e7d4e61c6e6d06935210e4bd93fd457f3412b4d9a76f9ffde5dbfbd45db8e4854bfaaa601cb7b8e6f5acee54ba20a65f1944f47a841b6c51e5652888748a9882952368b1c51ae0d931272ee512558a3eb157eda7cde57384f9e4a14a7a3e7dbcba76c0f1c6c38d60db884712d7663352c2da349b24d586694cc42d62ff80be5d137053253dd7d7be2dddb5edc5a5acb333e71588d71f3f47bfafee743c2828c8091e75d20eeb389e0ed4e08c2c38a18630b0e004cf7ae4d20ebfaeb58e07c0dc600b54f882056c7802cffa6bb6fe57f80ccdc6df79e338df296853f4ce35d7dd22059243410a52942f1adaf4a7286d071f248d4bd029b719c10773da508526a8d36c98f4b220fc2cf50a9a663372ceb934d6b92d68537ba771c9b96b77eede7bce080b2393a06bd6833129eb5933b4397a38e212741e5c6287ee3eb8e41c3a894bcfa143c7342e6d2130286a975a0885e8d1594e41a71c3a257d288ab2a4f6a39cb461528c31468f31c618abaa8accec05f7d830ce738d49cf170bda74e7d2f3e73e486e0b81a141de1c2ea4f104783d6db1c50a5b60e1011bbfcadba120fdea05d36e908b0a5a0e97fa709a8605b4a0cdf8ad3eda036f734c7a0e8c36b57fcbed9c5cecea1a93b8a04dd1b348816c16e425447f85f0af0ca3ad6b8ecd37c638ed1a99d4623270a90fcdb60b9adb61e7ce45e0520b687ada4117efe3f5a44517cfb35043dc933ecfd9e79359a6380f2561eff07e41eb72a5cb43571f50fa68cbbb839938e396d1f4c4832c7ec6e9def1e08a8d83a6a71da8d13b0813a4e9890762fe7990c63ba74517ef9c07ab9c369990752c0b15417bae5299d45c5a672c97efc6abec5c1856be00af2730a6bcf3065db7f5eb867da9fc86f13b7cb94d9787b9535e2f8771d6ae9baa9c49b0770eb31e859059fe500fe793e75d2acf73df45b13ca8699b18423d54394d5454fe50bffeb3fbfc764084c6aeb7055cab34d0d82fe66e76ae5fe574221d93ba3ba4fa437f7039d77d1a68ebd72e636ebbddcd90f7bcffc9e9c431c9f93af706cd6998e7d2ba731e6cc3253df560ca3bcf691de5713cd3c73b20de87a3c2b77d5597f5a8c3b467d9a0add6cdbd7df2712910fd751d2d2828080a8f3a673d2bff62c738ced5f9b241d3da9d3bffc93edc0ee1f2c9f22487870be857e5d37dd6e3823c5fbf628c31c6aaf21f2bca263a3ee4d379555995e5d12b1772ce39b9ae8ff9c82daf86d07d6c9b46fca53e68f1a35f108b5cf269a7441edaa6111f72915faa409cc869341ea3a68d46fe343e494fe393f44ece24398f895c15c8e5be726beb8ffc91a19cbb9bea0f4b567eb9736b53fde1e4ac3ce43b7d6d338911d566c46b1664cba802b130e7aa402cd944c75b1ea39cce31df6c48fc9fe74c7c2a17b94fe530176b1cab89d13177ce63e5aea672ac923f96cc02c50edf51b3434231e29182c36b241491478a0e97a2e518fd8c8f66fc864b51c599f1677ce434db4c92f34c4c2f72cc673691eb6741affa439353249d636ed30f6d98ebd862e3ac8fb651e3ace7d8a4e0904e2c1bdcc08b2aa810a30958789e28182d709062869833e2c0058f36cefa0da935ce7ab64d231e83be232486061df3191f531d551ccca15f8ac56d5f5bc749142d238616ccc08637c0210e65786a5c05cb3385e29162e2a991da38d1a39cd131bfdc362be79cf554720874d75911d09d4739a977d1dda61f31c7a5cad5afcd31c9721b577f19749b2d0a173eed9673e74f380f17edd516328266f996f979c5e89d0da93cca6955324b8d7796658af3d4c827393c5cdcc4777f84199cc01ca18a309a88609a5e09f5a6d74c88f31ff74ede1089ee3c42a0c93e256f86c47f9e84fa26fdd03d89a619a689c1c51ea3a6cdd1477ff6e91f27e9a39c46fc4c92f33ed1f59d631893d487f2e833fe74fef37c36f1d1558140d944c7439fd19d5f71ebeeee963f70c756a1b5ab6b167ff629fd31a36c1ce78e92f2e7f9a4bc497f9613ac11cf29771eb7193fc62dbe6613509e952a30059db0549912c50928413caa3893923f5066597fd239f17a9e9cfbf36d1106da13f25449d0154ac7aeedf1653dd46643e83f0994115908e5cd10f6e7ec4f36e1e731babb7bbd7b99d95d6741082744929cd83fe4c60ecee041929c34b6ca7307c4ef1e07050505fdbadb80d8fdba5b2cb0cb5cbbf6b0f3cdda356320fe213353bae0a06512217e664a172cdc6bb65aae6c47c808daba7e7b27d1f39e77f746b16fb6ce59f3ee1ab450395179c243e1576a774fa63fd87778376c0b81a6a72c6d6459c38740d31316359eb3a0e155e1eb29cb1abf6c505f2771098a2e9a872397a68d6e4aa86fcffe3930b898f45e4f58c8348eba86b407e7361fcdc7f9007e3ed37bf2ce670501edc23f9925fa0ebb6ed1dfe6b6d73f18c31365903ea18af3597dfb4ebb6d007fad661b18c03f59d36396826a43f99673835e3322a277de5b13f7ae5db555557fa8af15971a8115e0fad9672aba78cc9ff3c6649f9db321f42be9b35ef192d51fcf81e2ff6899bf9cb320985bd62549307aa0d1af54fdf1b87ae21ca3228bc7bcf2eb7a185b5e7146c40da91cf31d1642f9e5bb5d5e6d98774624faee64b9fa63bdf26b9bfc5b3589ffd37108025a135c5e63d57901fe521368cea15b59e3a15346640006579ae7a6495cba81ee3e484694b0a2e5f1e890c31aff76e0d2844e52fea7d17b082c0346b8f4d40b115cda7f9e030333fef90fcfe5fc5333bcfc73e5d2cd4f15f32f32f194b33a10f4c1a5b784372352e4298f94b352527507955795116112035ad0d5e752ce5b94d406b7697ae803b32114e5949c2978767d28e73ef3d6cceced4c64a124b2cecf795c2f18f3707b0be567743d4111a45d365c82fedc6542a2cf1494f975ce86ac433919ca47bf94839e72b8456a9bd0d5771a42f9e51e13bf70398fac2372758d4b99abdb70c97255e7e13eb8145d9dc425e8a6b7b6cce366baaecb7718db6ea2579e5579e7995fba41d02f2c973ed1f4f4822deffc727e5da6c5bcaa2ebff6f29ffecb2f9f1b22943f478528225488ba3cfa5559ae5f593248f4caab30efdcf22fef7c9e5772ee538e79dcf6abce82589665499fe7d3391353114c4c8fb90f745784734a4ee898acf4ab783d4c334c4e278f39dca67be8a2adf909d51e96278ac89f50ed01faf2ec34b65d0f835bbb68539eb811a9a44fe6ce33d7ac2754042df38697433933bfe4cde5943f22ce3379734922d1a1c70b6e96533e31524422158738afe4847ef9756d13f39bcaf52f87db4d25833cbfa0ebbfe0f4ce2fbf18f3b1fc92737f42c7fc6accda309ffb186741ae219754fd312f6fafa4fe989517e1fc92d3726cbbf6e1fe3e9c3f08f1eada11db2018caab871488be7a0e104fd6643146054cbb60ca42c1cc3055e92205ebbbf98849cb44539fd8a5aa59c87d86859ad0bcaaaa6a4cdac824de72b1b3dfbcb7cf156e37cff7297f33ce07f0ed94f3f67c193264a8ce302aaf42df69b8bdbfdec67e6d131afbbec69ec3de2b81c67ebd2c88a601295288737e556a4c1ac0b789da86c2a51b458ac63e783d5d09c2b30d5e4f31b0f2a4d713155d8600a960cc4f5318f027095c90845717ad14adc9783d5d1187df2eaf272b88f03bbc9e66c085cd84584e08f33f467e4c0dfee749e8271017b230b2c14f202d36b8b8f01388055c783f9954c18b0210e1cb4f265cbebcc6a0a0572df3eaafce545c3ffbce2fb73d7f0f8d5f08b4b39c272ca2bc73e7eb7c43e4a1f1ce1f1a3f9998def973fd1f2d53a6cc343dfb8bf2eb9716d1f494258ddf7efb8b31de74f8b73d347e3321dee4c64a2026e2bd5dcc99902df33f5be6c99b21ebed42d65b025d7aba41d003f13f39d99becb79bbeb7ef6d7b06ba5eddf496db38fd8ae4feb5ecea2d86e36d2913687a9a62cb47a78440cbe3362df7a93cfa73cadb2fde30bf42db4dc8f5a7e9434e6d9359fe88be09107fc831d17613f27dcd2f87b15fbcdd5ceebeff72def839131272d1a639b5859cb7c6449bfbcb61d4a66a78d1d67f3d8cdaf40d2fdaf82fc7ab8f725073cca94de1f0227dcb2e94797f86791a8f6decda26f29d166d4f7d288fde4498c488ae316a90756ab32194c79b21fd98f763729ac2080a7ade2ebf366b42bb3cb45d0ee52fc642dbe55797e12f870665e3af87853626d437e117c192fdcb5dd65302edf2cb5d7ee9eb5dc7bb1100a1cbb54b90131fda72feb22ae72b73d51f56e698b5cdfecab10ab32abfb6255896b163d5c56e6d9a11a13b54eaba6fe6498d494eca6f39625268293155156355f96e22d0a2535e555555b9faa8d6b884e86f5000e1da6ccd6057d51ffa836276ddf679734ca2a2fea07c371168d09f8b807aca2b05d2c34e511e15c817aef6ab37d1104a48735641e7e85d7974d81d617551d17b6bb21fa353abdca16e6fe91fa54f74ca358340ace4347db5959387deb1bba3eff48f93e7f5c83ffd1cd977f84763df4ba4eadb4df376d3dedb103bafbac3a49cf2def429a7e212208c898faed910231f3d4ad51d8450db8ceed34ef91537b9e447c704053d10cd5bde0d84bde5d1352b8289af7c87e3b6e48701cffaa31d087ee46fafb625d181e05bae1991225fb90e5f79dc7e18f0ab3faaaa2ba9ba4367419ec7b8ad53735ffd6d937d5d3321fbdd9bc62475535caa0997c2997e7ebdf66b33769e8b62394dcfeb845255754a7fb71f274f2d6f3ffd9a8956ea365d8cab5bf70f55a64c99363ef2f6d31fe54f2b746a9b9437d13e890b82f293fd876a034a996f1267e5e33cbacaa9bd3a6f187b13ea674913ea99987e658ffa4eeb069d81f82d876ec99f6de35db501f13b973743f6f4ed9cf5b4c34de73af4de9a30e4095dce1f27ef7c9a9e5a2acae9e4a3f3b6ccccd19789e9d5d97f3a883a3bfce977efa44ffbba66441c91f5963eeaacd5c617300909385c49689cb5a00d37a225a140b2d6827e37e8750dd7fa25d2c75c5d73be52cb15c8629beb8f9c578743e2b6458fbdc3bbe96f665d56904ab47f69d6a36f466392e5955fbe59cfca69faad366b8b5b93fdb95ff96e4df6abcae3a6efaee6ed0eadfce9bf09d2bfbed2f587fa7edc2ae913fd7297fdc4877e497591c219cc9d57bed912ca2ba9be57dc66f4ca92d3f4d6f658979c4efef2ddaaad797587f5f9009318afbac37ae53bfde3e49bbd6a6bfbe96fd76afbd1b46fdf61def4a9edc7c32d6ed762719bcfd7a9ed66e5cf3e94da2528e80bf0d4421d5c5de59df7e6a3f93c1fc0cf27970a93f4f50445d0b554b8a4effc88025992f359d44dfa055f5795504679e2070ff429353c54b864f3ce77848ca0cd24bf5498e43cc70b464481bebec348b4b954def9542fbc7327ea5ae3a8e10a21d840085bc20405f140773cbb05391eb400074e6051049e284ffce0599f52c3a31ee509e6a17cca0278d6e13665013c4eb8a8c0ba13231ac7f97e79e7d09d705101caa174b2d338ce29e9848b0a405fe9c41bc73994397a3aad4ffda26b58c112b290c10a3bd88214fc9d874e9af298a828a30835a8c118608090061ee5519f39ef5cb30a785010cf52e1d200def956617635b85481cc1c93a864397fce3df97e5d7827df8494734a2a8172424fd23f18f34f429f2da793774d449f30c54399253e9f4f3e89e98a874a1410e5f4cfa793b3896f25fa842aff7c9ee01d944a54cc3ff9458b117840830cd782359ec7eba9054ff88bb1b76571a2fe4454a64c992b78aa2c4138b2f003158421c8f9fe7499329f25a8871439b082654900b0f8c04b1010132ae6b304f1800619414d1410da38359b739acd1b67673426415de9a463d273801558b874e3fcb9bee3929eb8a8f1cff5bd06bd7380155876b8b1bc02e00965d278460697f275c3ae3fdd88243fea93376e27a0e6936cc413cb63b9e53b4c6d2a70f2a40c0fe5524c3c949452b925557126cb1f75f6e9af4664a1bcda9ea840cbf04cd1c14349282897122345798c8da3eb52a848ad47a9358e5272d438ffc4991ebb165c117358f3db1d2130b46709c4ccf9cd582e198dcb5032c8783285328c218534c4a0418519806143958dff52c6165adc1417454c9853187d455f21c386195fb66cc154788a1a62ba9c16cb5ed10699573066fc0f39ebab3d2ad557dd617157b441068c195d6ce92a4d650d35bc74c982b170501b6980e1d2c55ad92a63926819436c1a34d2eaaa8f34684ea42a3bebc9d11fa2154373cc394cd218807fd88aa1a9bfcbb9761d5aef95509ba9b7ea336a5cd0d5c715f7d92f3634082184cefbafcbdd7639dca68fa7e6487b18f2191f663ef95583f0b13c98e0e10c8d6f1a3465128d9c4e9e086abcf6d12fe6e50ed1f86641fa7ffa69a4ea8f198fde3aa4c6696ff7b141386079684dce9126ea908c999c41fa9d631b114c6a2755deee800d429507cb7b346acb27f7b5ea38349ffc4fbf9343a840737e494bbdb4c38d49ea497cdc10d19e72ed29214f5b58e55a6707a38585b4dd0d0a20d860bb9140c3be20f3afa72fc6f0eb1abbdd5d6e1c579c73eec11c3d8818455154ac7020e1c22ccbb22eccba4208cbb22c0b89a01766304dd3b4191a9a31d8603535353536378400871c180e1c3870e4183916ecc074e8d0a163c7cdcc143d301e590f0fe7a12313b2f5c8ae1c4622d0f42484296fa343abb0b00ed86e98167a5955a4e073cdab58a866ccc41efadce1248476797527fdc03a91478bc0c6cfbc9e8a106595a0b90fd20ef3c9cd0793b820c2c2c92439ffde7bfb84c8011653c2304514ae58c016ed8485ea600a2eac205306383cb145016248a1430c1d44e1be917c3069bd75284a7ae3acef6aeb988410862b9000861b90a1020a1e21feb936e63123b4a1a7a0a02017f03cf7c1257de579cead68fad37f79d655ba0fc659b7823404bc9ebef8e271bc9ebec0f2d357fae4c0d38342f4e1dbd6a60040b822280b2fc8c00634a818c430060d7020832358b982e38e12e6d9299076ec9fdf40df7f5b10fe7efbdddbcdbafe4d90fde5dfd7ac021a257be3df4d486ffc9b3d19557300115cfa6167880cfcf0c3b34f207ed054a7cf68021a5308e2a20b4ee0611fa98ec9ca972c7879c1174120821478d85d754c56d4a00d7130e30927b4a8010f3b497528100514b6a092852b10c10d3c58344c9311f4bce3809036b33caec55c814457df3408cad501e043813c9f3c72b41f1301af0378b6619d9dc6e19c2b005ae3430c31c36367083d396088195e324ba60d2ef1a83cb4d3d5a68fd56c40fc22d7ac47e43a71082ebd40d317f98c573d99157297f5683d3f60bec36d13aaaeaf7959901939ddcf388d0301049374f80462e4b3871c3e71be71f8dc8cd0d1c3e7fb76dd2078f884dfa51d3eb1cfc1a776c329101b6f399308f1ed394c02820aad7de608f98149ec2d81e81e9b09f4073b8fed04cb03fb0dfb0ef61cb68dc238ececce75c8a9839ca31c726a38e40db954f407bbcdd684fe605f31d8ac190a849fdd66abd2608010b0f8e20337fc608c2f14109486296cc1c50cb8a0c1c3bee3801a9f716c66d3afd9a478769a1c2e75e533ae59e533ceb772beaf7aed427f7005620e97dcb3ff0004979cb689b6e512aaaa23b041a50a6b18c31734cee06158d0022a6548118517bd5d6ccb8549d818b47519308249395572c280e20b5d9ce185a0198841dbf841185208e2410bbe70d133c4608b2fa6d022a60c34502f5b4421a80d1e4021484a0598c4955f9baaabe49220ee7f9c7ce543dc5739486d9c96db85497b6252068cd893938dc2252a4d6cd04e613ded969d27d0c0862ac658d1c6186a30c1e0054d800286a02f58b654600a35ac51032cb48003372c600a34d2a0a58a2ba4618c4bd9678e3d55726a39bee5ccf153c9e89e5a477978e67e29e9cf45e3d9a9ed8249ec337b0542bd7e0e3d5972f0486dab3cb4c3ad7d4fadf378a071e3cb73f6ed73bd3ce7c0ccbe5c9cdc2dd5153466af0097e676804b534f497069e618c1a57dde304698abfccc79e61c2e9d54c754a50c53f4408b2e4128431778d8d78bea606400830d66a8a20d59a481877dbfa88e89065c10c31854b214210e4ee0615f30aa73a40638384309557810053178d87bc3c2413c98471a9c3b87be8fb9df533963f7aeebba75ee63b170691d5045d0eb498b0c7e1ad1a8c6b7ab36b70c81a1ed634cea25c3eed89fa6b11bb4a9618c04353b225c97d381ba52a344e71448bb7637c70dd31e9e53db139127ca13ce13e5098d47b58759738039f3cf3345c0f39581e646ca436dcad39bee18da02a6380f940f8bbecc6ab8d4c7d43140f887d18f19801e4db467bfa15aa24a5aaa5c5d531b05b2aebe1a043be7dc396fce577970be59107ee7da3a3714c7f90f3afc78e77314801eefae561b6d1dd21be93075f897256b121f3aa9758c689ce718e9227d21fdf3cb08e7da3b396f7c7f19e23f7ddef9c5ba1c5a69a33f3425757707b179f7d8f3b3fc7192c90a1871456498834bf9f2820b183f12711983498ae4521e8d4623f8ba30a697370d4dd3b4896951beb725fb1445e9494a95bf366e19110d4277da3a5ae338776e53e7da73940c60655d57b50ba18b9bba88b5d1a3f7c238e87ef03ede2fbc48c157c5667d4b6de9ee8642bc32e969f76be798b923f38c12cc1e9d730f6ab5458cda342daaa62d04d3fd1ac20c30c97544654440e71c84efb1fb766edabcea53ee82e45a0b10ba2efdcf3d312e4667c324e78a95f19447f71e840f468dca4e8bed8dc97ef3b2d1bd698c46eebd6ce695490f734e9d6ba7cd2e8eb4381aadb6f23b43fbe2229c413f8aa228bd61c62b93f45dec76fc988b58548883dded65a76b30fb63d7dccc6edabceeb29ccbd86b2c9df336ddf37bedda595b555537f24aa1bb9f9cee3dcacb53ceeede393bf75cdfc3d42993babbdde6b6e9de511445c9697240fbd66dfb0bf3dc09d1873e9d9be900932c6775ec6e0b81a1f945653dd81b455fd76c2ee876ffda9449d6d6eddd0bc40f2136b7da747311db3426e9b4d9e7ce01b1aa6a907ded6b292941181384305d90d1a2bd9ebcb8f25da8311d7433625e9924449ffd99308c498b71e9f9ea66d0c94f208c77dafc7a31e5f5e4c5977f3d79c1e5371b429529e362e3ecefb471f294bf6dba7f7eb918e5343d04e287fe4caf338e7ad2b9a7860bf3cf2fcd7a78f85541d7e3b4b40e6f715c5a2703d16921b90877f47898b26f4fdcaf1543f38d8b1eae2a7bf8fad559cff6e8e1bc854b95977a6ce5975ed5b50f53c7d169d9e86e735a766590f5e8d179e55555fa81ea683c84d81911b2f21e9bd63a6e8bf3f2cf293947cf69794e8bd332958c13263d6fc2a1825120aab38ad343ab307af8b4e11ebc05623a38ff20077f1c864bec7108da18ff72f0c94b78163319ccf7f0c969c0ac4707d2f7f06abb34ab7c37e7d52664ddf9ba7327a3c32a876deef788d207937ae8521d52fdd1c3613d980b6f61d2f36ae32ea2a0590e7d2a99299bf5900a219cd198f474701da650e1d295d6714d443264a69299a49f4a66e6585bc837e4eb704970f496af6bbcdfc3afbdf1cd7a7878063608e8cf37a0409c3fe780962cf719379fdad3a8ea508ab34ee3d6d64ae2613deaf0eb5b8e5f77d1f6d8426068d19f5b1be6024d3f7a05af886d2624fafaacb6b0b668d132790b7be12f0c86c3e032d80c3efdebf24618c1a4cb670ba8c569d112260b8974701d7829e7304e5d784b0e8e49965b0e371f1d7cc97e0f37824bcf89d8f2e543573049c31c967f571ae7b95e598286c347aec3b19f4e8b16a7854bd075367fee4e5eb8a4c39fbb2f5cbafcb9eb824b5997914f57c6877c3a2eff5c18ffa048735a9c16b785dbd2969c4930e73fa27732874fde12dd491f27a32482493a486592e53d24d0bea3224358682d864b3af8f356a375dc6bdc7129fa7337a575184b0fb7e4947fbe6d2ea8719e5f59080b6daa972b427c8c60d273a07d2298f41c4a1f77c595d6612c8df3dc957f7e85305df7cfb98bc95c7c30e971bbd517ba19e2de72f7969c2978a8c3d66398f4dcb76683719e96a7e2c65df8c46160691dded2382f0739e3f7602c3bb6b9bfc36116847a28bb8d93b67ee3371c87f31605620697f49f33182eddf8734e43a3e653f3397a1b57b571cd7a70f80ef3d89c6c1bc4a40733ded23a19689ce72ff216276f64134c7a3e721d3e95cc108a08f97a674442ce5bb894f973ee82b92810fde72f2312fa7172625ee9efd8f4756ca31c5b16771c9b32e9f21b9b32c9665bb235dbc4463f79cb3fa7d9965019a87c46cea849302205f3cf87681d97ca38ce43d98669af92d34951ce9cf57517e6860710c6a53e266f79e8178d8bdcb543bf2ee5e7285748089afa0eabd6adf96ecbe5a6659076cd35d994f7e6b870890a63b7a03a5ae3401f85c1cff010fadc363c7475fa14e5a219ad75721a076a399af6f0a2fea236c724265ae7468d63aead63e3978e6fb7fcc6b68ad36eb3a9e2cc996fafd93e0ca599a1f1c95a46ae8d68ae991fae00a1272cea458b7ed9f2d0ad992d8749945b5696add24a5cd7b555c67cbbe6174559cf89f1528633c3a5e1c488bc74398542ab69b2c9fe56d92a4c820e2939f7352084f9761abf62bc309a6dc36012f49cd6d953e340f7d128e73598f55072b94041c39c8a3e790a6fc1254d425f355a67aff094d6a971e86c85afe02cb844f98c4fcf5c64f986e192e6340e7d7295877c65329687d2b196875eb319d138d0a9bdd23a1be692572c99c92b2239b3571efaa5240de3da78caa3a84165cc3f2b4ff95c320f5d6bcd35a7d9c83ce59af5686c3c25e24c08bfea8f9633e767121f7ff3b33fe34ddcb7ff88be69dc886f56443b8d6cb23f23e7bae69a05d1e40e4ca2dc67a5124c829e0493b22ca4038df27d82768530f7d0570c97a2c355e361e8d2e5764fdbddf71826517e69cf40e7285ca23257cdbcb7961d1071466d183513723d6d19f373b93c74e7cb258d30c69cb834f54b972a5eb834d7ca86691d261a073a9cf1f2a98dac7049e4d0b36dc9fedc300f7dab70491f3a13ad33529c76e8daadad593ae6a11b09f3d03b506d713382b7bc02e0499b32ce018c6b316d8e62573e8402e1bf3c0997f42f6f824bed970f519d51e35c7eb9ea280aa42afc95f3974fddc25f6dfce51a7dea98bfd8d86dcbe9758dd7930fccf86bb3b8e963e3d73bebd9a6ebf2eec4a4dd66ceafbfac27ca1ce878a14218ba19023fbafb28e793a7a41b73614cba5ca9199b930f4e3f81f8cb2f21ae12fbe543b817f5e273f4a3d6718ab38ec989454a4e1b4d5b4e1e3ffa4b0c6daa97bf7e8760d2b5baba5175a2e2ac2b25a313c125289d0f41f9e5365cf271499f0d826000e1cb03c1cbeb015e7be0e55521e0637698e72262ccf8ca5d1728d8f84a75503e676edaddbff7b21eca679cbde5f91c4d9fa4ded238dc73dad23a0ba671d819ca199f9ca328a7937ef61698f550ce51b41018da82f9b960a8ef2c4e5a9c0bc66960ba927344c9a9b55b30eef95c30d0d9af0da34014c8cf8ea17cee16be88ca1d182e51cebe6970c939fb865120442a779593333289929149aec3402cae2d236763f7f48f6ecc0ec3b785b8682326d9308937d398c4d39fddb90e43ce5fba4e687af2c196b7dc2d1df3d575b905b31e8bf5cb573e75fcaa97af7ccefceae92b9fd5afafea00d13895afafc3ac27e781e8cc02e2e7e82fc6acf54b3b520e8402e1afbc034a70a9bdf204a84e6c9ccab531464bf8ca55fd2b9f1a85af748daf34cc572ae6ab1d9854f96e394cba248949959bc19804fdf9247de5407495c9197f02f195c7d651c5b9fc724cce78b925a7a67df9ca39fa19bff2ce84f85b965fbe96656d6e8b3eaab7cf099773a768bcd4b739fdc17e69d6ad84a6a730ba78a7401408157e7b8b9a127684c4e84d49cefbb4638d29e5d119baf39924e7a3577ec52d3289bdda34061ae5fa5c6df1b575220f7b8c4534d95f4a2ac979287d9c3fb9322eb320b6ce73d1043194d1810eb6f0f8f0465c37d01fc4548170c47483602816a61bc46219e6b8b4fdeabb61b18bb61e3dc32cd67410a2c347f9a3c387b4ffd931efffb3613e5e5973083e11a60ae4bdfa7559de9555c9b999f3b831e03523f23c664218f051fe30e0a35fdad5ebb85d88097f13d813a96a6115a0df1081fe5ca45c6a7d0701d853ab758ab322a0eff3b8891eca2844b46fa2768770e530e987766a5301e5d1a12bd043caf59f13130fe5bc519272b83939a3360e0cfae79c6aa73629261e6d9c76b7cdf82d7decf0ea4c5287cc555cd1b58b1353fe318c4c310f2ba7c3384a55d2740ebdb3229cb8e77cb3212908ed3bac8d4654a58dfa0917d0f973e8d4262f0a7b3b4246d09c7bbb6c88935233304497f5b03fcd66c4d83b26bd30de7b90ba288aa21e7cef3124b364f8f3286712cc6d2142c7b1899804d3337670c60e9460632e3d802684dd491e23dddd69f3f0ea55fdc1d07967fcb75d2fa4d3e619320637aa521b3028143d744a4ed14f2dc8fb27496d58b2d1b1cd3be78cc801aa28e30bcee6bd01baa0efee27539ed24273bed32e6e51d398d4539c2bd13a943b39932c99771eb535344c9bf24f8d6fe74c02cd43491ed338eded046d5bc7fce42911d3968cab42c694b8645c5012a012ffdc25193db579e746efc468ce5dd43a9272a0ad4fd2f7120765921111029cb18333def9cd1076a964f43e1adc2e03211c423fba10fd284345d0e2cfa5f2d1db4d4f6d333e453dd33bb95198de2e18deac3cfb6ebb3f97bc21e23cba10e7519abeb7e9e6be367dfbb03c98de6e15a0432e5f70f9e2cd787cae693372ee175c568d99992ebee032f305972ebee0b26a7c91f3f10bb8f0b9e5d5a6af515b15bde12bc379e92e7c8a617c17512e179e99531e27171adf79f98cba451369bc6308888feb3472e67c1479d42acda3ace44c82cd389304fb1927436e6d2130349d995c6bddfd8cf4b9e48c87e4ccc1a4db2f368899194a24a7e9923ebb72bf581e6015e3c3acb871638c6ffd51efbd27ddf6a3652cbf1aa3d96a1c6e21bf2e87dbe5345b8d535be5148d430881dc47a7284ab34c711e9ae821efaca79271d36b9bdac3ca2f87c1ad66732b44535dda5f97e5d7e59aba8879ebf0609cf5e8512ac5e50b11d36c5123a793aff1b7ad0eafa9893535339eb341dcf019572ecdf80d7feec30671431671434ed3dff0996d6626c6198fde594fd4e137361d729abe66c67dd820f4677cb39e999a999ce8435be1529c8935353e688c53888f51cef9dc880d8de63ec49ae8adb39343ce88434e6de46f824f8bcba2b1f015fbafaf3c74cd916d85493087af3f1cfe7c5afe5e1644757a380f9ff1c6a7f63be49cf11a572eddf0a9e9f490461aa79d878c377287d4918e5cb1ca48cb919c5ac61ca99c5ac929c43f19a3dfd89449f3068df698d3b88d9c23cca3d76c2130b41909f4be8646ce1fb22d0486a64920fe1a9f39a2cc6aa4cf8cacf1ca67bcc22181785a327b8f499f19af2152b337309fc19e0fcbc37b9488dad6d7b16d5f2b0b668e650e758cd4f44c9f3023dd7d4d1f8e71a063d1e661f3d0209943c75c14c24639a36fcb870dcac1352fb8f4d227468c18117c218f215944dc6084220f6da2d8132fe5d2be07e3f6de2b6533efbd674108c940c8068463205c03423520942b26e473c5c090d43cb39cc6e7e522d7a056e35926a7fb0cfb4cf30c27838c9345c571ae965589b61018da2581faadca1de5a2e85349cb35e4eaa2908be45c2a99f409b9e59445c9cc43d227c60c5210427f1be4f1b0b8cd24361f1d429b871146af3c6e4a6cde077a553945b9b74e8dd3c869f3d0b58dc6b38dca34df61974da0c667dc653dd06b369a0d631ce83b9d6d359b374e3bcda6354ec5381167dd726ada606ff966412ab72cefc12eabe2c124f7d6b1619cf596d4dbc4981e3a53c69a185c7e00afa732aa88791dafa732bcfcd5d8c3e2aee82b6c65dfc92a53e45261e86eba07e2c91248cea512647f3d4639a357216fcb439b328e25b14d1dc3de926068515e8e09f1a1dcc9e9955744a289a50fe5ef3b2be23d15dd48a3dc5da37fefb9eb6d137b9bf3dd2825d82b13c22cc1ca5f7a31e6e4ad69b77f97824e55a12da7711aca22725aa7922eeb81ef51e112f576bab39ee870a328dfac875aea51d9de0db9284c5927e42f24ddf5b82777d899e402adbd5bc28d627978efb98b4353082d95bf4417e5cace3977c5873187f157b1a173a8d055708ba377eddd28d7909393999d333be72b71f3c1fcc9bb8d1b1d46c7440b9dd35c24273fe69a9cbc543e249d931c1df3e98860379857fe3ca775dc72720e718ea950c932212177d2c7393b161239d1e5568b4255d65385f1577cf0b14d3f3ab7cfec287f9bbbb6ca77fa723ca02392cdf88cf4cc39e7e33c3ae5137b6ab3ac1d938df915310af3c6ae86549c73ceb9106b6b6c7797abadfc25621fbf71871c2e51ee5755551510fb8862555dd78daf775c1d7db9a8ad2872eb6a2b469e10968be65b973e978b7a9bda9b9c3cd19cc6f2133ab5f954dd391b443bd557b67550d1a7c877e56c2b0f9d57f68e2881f8aff52992edb6ddee0f70abc9f232d23a3ab25c3baeb79cfb97bf6ddec84a8a9c72e8219ff19aee9cadaa79e3d0675ba93cdbcd87e581b2a1d15efbec316f240f2c13d2eeb3377e654560df6ea47530b9b247943cfac6ca7aa8eef2d725ba2e51952304fa8e2d731d1be53bbddca31ac721e7a8ba6123e7a846ce118d9c919a0c55f1b2fcaaae28f2cb8a7e31e603f41f7e88dae59f6a196f2feab17b3844247d581eaa09c437d12987bed33a461ac7f968e4c30651397cef451ef2f9c353bee3125197fb88aacb8d885ce422919c40ef2b0fc9f9c3c36cab7cd820aeca2da75c5dd643b595dfaaaa2a1f9607b863736cc1e5b1a7712c8c32829ae0e59b708509639aa005a382a514f44d885c7dadec152e595ef1a8b6cca90db637d13a1c4433735d1533ebc55c55145f1846cde79a1581c990c4a83cf5de9333b24f200a887a8fa54fe5d19fcf24d8d5d883cf29cab1e71476e527746bf3617ff26f9bfd6b3936658358b72656e527a48a981815cb61e514252746e5a1c790534ec909444d8aa276ab3c45418a72b6a86ea2711a0291f2956faba86ee7a0d6e929364e2367fcf7fc3dca31668c0a46e52d2d134223a2b1badb6dfaddb0095192c633aa5ddb44f2465fa19c923635b29fd36061fc7bd5f3afb6f7f861539edae9d026726cd3fcda2c5fe8d956bd9dd244ebf494d15ec12f72de535aa7afac9cf2ced767b68d2cb32c663eb1bf18c31ea4be7a6ef94ade4afa3ca77c7729af2ec6b2e71925b1e7d936ddafbc896e399c5ce59df79576b3af500e29ea330f599647a794cccff899736d5326652eda1c93323981a8a73c2415c328bf2466590eb31e8bca570fbef7dc474a62512c0f50bae7b0bc02c044b338e090042fefaf2724b020095c3ee7f59484277e09519440e69dab8f483d9fee9be58c8f88f52d5f2604fa736d7d7d6da736e7c1a4e763c364a04d1210ada391a273545447631c75e7da1ba65f1c13b03cf633ce56d47804bc9e94b0e59510940430af842a7fad98bf44d71c65956b0a756ec02df3dd32d7d6d1447e758c3152568c0da3257dda294b9b4033ceae591194cff036574c0e534924730cf54f96d3ed36b5df6772f264e14cc1ce1df3f379b5f9447ff2bccdfe75dd6abd9aabc64f20fee99ffbbdaebd0a88bfd7219473c5fc73e8eb10b6f4e1091d841e7d37d839ada3160428e82be74ea0862e1ae20b7da76c10ec3386c0d080f87902f15c315f79b6cdfdcc4399901967e9c31e3d9ba9187a0d741a0cca19bfa03b5863491af6192beba9acfcc5edbd718499bf8d1d6ecfb5ad729bed86671bcc6cdcb9da48cf302992a1a57cba8f3252d2873df318c50631d707b37c49b08fec952f507f943eecd1afdd4ace9d40ad63e3d1371b92adb3c76d02f5f3ca1bca2bcf691c17fd254932dd5740fdeb13a83ff3cbe752f9ca612664dd27b3fc654560bf9e93b9cba26372babf01d41ffd921bc506b1d12d59b9baaca712f370d3079f9a2678e6d07bf7d490eba19436db49e39a2890a183d6620a1c6a187954081d131c780107438002860f82d068c3911164c56923cd46831a24830c2b141956b0e0ea2e62f8913692c2d39c9c4775cfb9cd8649ceb9768435de41c1e3dc07a9359b2e3e4002b3600043c8420b527061a30a1750e1085b6a8e70042dde7b8f7aef0c1888410a3f18830c7640e58c23443902155668186a904515a47041841f64c10c32b230438619a880a20530ccc00964a4a106169e370532b888c850820c02f07aea12c5df783d1d410d48f067668dbb72c6e83abc4f8cda68e5f4f11c5d29fa6c661999c4fc7c6a91925517cd5f9fb1df27a7f6cde35779f8355704e7eab6aa8be6d33c85d68e39e7f60b39230d3a08e5e683495b605c54f064929c8710c208237c100c1d66281967d4a80125baf8f4cb090a5c68000518dc20083c500a0fc708c3c3ebe1186c3c9cc203217427c938ed40889316548ed7d3e9059fe3f524c61b2831dab537f7976a897d7677f74f7555d752bb7e9f25fcad41b8f761b92dd907627ecd88689932cf0aa499b4c52e9a8c0c78966aeaed1540419360032bac180216c2c0814c14c6b8e2c4838f1e2957651668ebdafa88870d93f64121030d70d006315078c1f3befc736de4ade3789ed0f4b511145eddf093f42d461bbedd66d43aa61d8c210d4408030fc6b041059e4db381a2c5d7931867f8a979f3805730042060b1a50a64d290862d9e30e5095238431933647982194e3005bd8008713003175aacc08247cb780ab01496e263d25459cc9ddeb7bb2e0ca68c3066a8d1d51831dff2547d8951d346a31fd85dd3da5fcb20fccffd8d10e6dbbd4b0bb678372400efc230c98a42594130ebd9b168d066f5c5ad2031a7df100d4239087111f22214c6b387aec8da1082128222e482d09567cfc864676458c8bc90912163e3d93333b21f6443c8c6c896907d79f66c4b2645464546832c07d916cf9e51c1c2809d016b4306259bf2ec981a1812302760676058c0c43c3bd605bb01a605f6036c08d8e9d9312c171c302998141815d815cf7eb57155e1dac21586eb0c179967bfc05c5e5c45b8907039e132e3d9af2e2e175c555c37b8b4a86291c1528305874bca45658d255851b0aa606d410d2f39501d571c76e7c2bd28825b5d9eddcac28262052910c632aa4273c15b50600c459bfe7c551e8aae0d2d8afaabf2d597c661afbe844e1d63e824c6b5e1d860b7c6b3579910ff275d9830a3962c6f9e43d77f3208ffe9a7cf6a2b3314481b5cd296d5971dab06cd0ae2d20c9d7e8d597d792e4d4c4c19afc6172e69115427b446680d2484d67042688d33426ba41186ab427544534ce16e30851653fc608a677677450daa2302820808701001c1491101c149210282b3c246474175446788cee82a88cee82d88cee83088ce18f3ecfda5b9501d11191199f64244a68b2022d3481091e9329ebdb768285447b342b3a25da059d1556856f40d342b5acbb3f714f682ea6846d08c4006cd086ad08c0007cd081de5d9590c8fa13ada16b42df012b42d7014b42d7015b42d709867e713d3407566a244e11c44612ea2b017519ed9f98a36a8ce4c962c0c250b4391855d9085af903943756698c0042c30c10b4c200313d830e307aa33438619320c61860c63cc906109336478f6ddb252a84ee8143a2d15a1d3d22074da1c844e5b3cfb5241a23ad59733b461a1545f76cab32bd1a33a5690e2b0472768676081dd019beab830ea2ecc28015a0fcf38cf7e5558ce0f5c7aee354ce3b0c7a869a391158549ec5f54a03fd8e7015e1d08d6b1a6f4a04158509407766d6905e90f76568146b93062a858d887c0d0dc187f555ac75d98d6b1821a87ddb78cb46858e6bb12a3a68d461ec68579f6cb074f219e75fa0e42fc9b272936ce932d352ca48576d3c43de53fa2a724f469053d3b6cb27f43649ff4697f2ea315c4a528d6165c52cc8de112b7e314fc96c1a4759a2a900d90832bde65639ef7597954f845716dfcba6383759acb98e97eaff8e6d23a5917c661776d4439fb148592b3bd3cf38c5ffacbf3b3f2d6f825aec5ecc62fede297f8258689a38e5f9cb390f82db353fc12459b1be6cbb3efe035634fa425f9efe817d32e6e9fdeddb15b49adca43bb86c0d0fc5d96514bf940d9097642734c524a0b36c418d19ccf68c69fc2e812d5c753e252ce42a449b0752eba73d1514e5dcf5beaf200dd6d6fca3ad9329aa86521ac3184345e4f5cc0fc8c5c92f097487d50ae2b056deae95d74c0107e599bf9088899334936ef78bcf3cbda42dbf32ddb5cbc366c8bbec3d7ab944955e53ea6333d45dd40b95f7a8c7df771b13cfbda405b129376ec154d7dea182a64e5ca5ec1049734670752202277fe72e0f0e846b40e0e9943aae26412ca9703f34b0fa0699185962b7fbd97f5600eb1e70e73e7576f11d877db64e25b4ee819944972dee7c7f96c1c393615e47027269e1c8e633b410e9f91ed30eba1711acf9123874b31f1e490526a9c463a6fcf7ca767b42d4b0e17e5f0b74d233e93bd65b1f11a1b09050e974243838386c6a5e0701b975293c3a5d8d43813ad9343e6340e7b4d8c341a0e7985b67d98f55c1486857ce6643d99675ba8081ae6cf834089399314f376876192ca7adad02a67bf62eb2c8f93ddbd2d956da77fa89f126312894bd3c7046289fb1997bc9f3ac6d9310d4aa0fd9ef6e72ddddb148a1c2e05470e1c349ec3a1b07129353635355aeb4071c3a5d8dcb0b1f11cae3e6a1d28462ee5c62887dfc091838be7391c87e7f01baeee7a0223e8a78f57d5f9c32b11c8e4d8706cb1719cdf00e29ddb6c01a723a8242b34e6b920279d538866662408021273140030381c120bc6233299b2ab3e14800c9fb05058a289d328c96114c58831c620640000cc800c083098100484937ee9e8e8e9c503408dd52e8f6e846cf66189f7bdfd8a5befa000a137d6cb1686e1b08b5b9e3746194ef455bff91b43b7cd90820a46a5733795e4241e3dc60813226d31132d96a0f60e54914c0d84d10b1b1db337b7609a89562128edf8bc8e79edd41173f9719d2f71995e68e5a0e78888e3e8a02fe44056a49f2be8588eb1e6d821f743b8956ffd33b2aff2ade9c4664cc263c9d076c6ca812698c631e96ce3f3065c2eb19f2976735b510de9ed49e10ba0500347cfdfe0fbe5e0033c0f5154523f65e47fd2563a7235e110f59706ae8d89f6b96ab19806778645407f02df4f74cdfd991089278e4947cce41619366d355c4f2cc68029ce1922e842a85a520757f61a6cabda2f2039f9dffc36dcf7d5273dffe4c055dc14d10014884004c156edbd95a5832221f2b9afeea5c14a14474f2315abb068fd567afc92fcf08b0c0302d01ae863eb2b18d333ac0d460d607251e986c9b2ef5f140144e88bc1852b6dcda9bb76bdde729db826bc227f02a9cea7fee8273b0900deecb86c703eff38d78dcdcd97a1a2a4210bd94e61916c758e5324a712172ba58f038926b740dc3b2a17ebd60ef62d73f2fc1b651e363a973bad2692c814e9b21c31b6174f1a2a6735fdafb2fa3fa8ec51b6c7542c913046f4d2ceaf10fb4344c9d699189e1fc310878dd3996c5ff93744a2fceccb4e3bd8ba1952a6690c17e221cff32e0e05aaa1fe23f2adb0f55d1168ea02870e64cb0c20fd59f29b437f84401605012b2514b333ed4de1064126c11e145ab3ad50bab7e4c10869a4f9d9ca795b07228910ff89937c995f4b3dfe41ce9dbea957b0054581d169a178193793f90dcd2f51a4daba5280b83f8505dfc95ecf8360f502b24c47da91c8a293da49651428cdd589717b93df525b9ab4ca80391372a6c3f6d79d5b95daf14a94194d24b9d754362a866e1e55aff0925c5bfc5db0a592932b5634579eb86baad09b7f2fbab9771c3a22bf540f08db1d17d60983717135c4a05644ec7c8cbc483b15b5358b92b810d2ae0addaa6107e1f634fdfdda9e483cc25af90aa95eb048cc83b573290ff341e34858a00f2b6896caff98a423dbca5503ad9cfada4af4e1d9afdf8865195988003f182f96f96a2f03be0cb1cdfa3bf28133d3bca0a6bcaeccbf17dac8d1b641e50f589d5e9d58a50ff6082f2dd13796d4431366ab1d17fa41b0bf17496a8589ec4036bf9a5a70d53f4ea2da84467de4ecdf95d7d25dd6b258f19fc1e0d829c6898e707e1414a78c216bb4b1a06790a38b608302e0dcef96cda63668411ac54ff204385a94070b0f75c1d4254c308986f2ce2b6d24c35cc2ce2bc390e7517e1d9519df6a48b5f1bfa8b5249326be72ea35033a036a54657f09a0ca3b2bcae6399b21d56c691da7a8d18271fb4fad93d3860a85ec155b6bcaf4e32e08a3d3b037ab3bb1f83dffbd9115312a6ab56e272f4dbeeb8a6f527e85e97c2c1e3cc5cd802b0d372e5854335b17105c497eb343ff46915bc0835d4ad1ec72eee69fd476dba20f20ef84b15cb8893bb358ec4e93919c747490c07f75dff056e091c8f03dc4679c9c621855857d9f59e375aa22ca51b18410a39da0b35325848ca552fc119ddd22cef2876918a79b8d3578d25c552da135005a34e5ed25166b34197531636360464a7973f5b023986a609739154525ce650e3b5ebc80bfa014416b879bd40d5249574aa9bde9c3cb6945b5a321b1c3b72fca49fe4787f1b9c2dce2e9695e5ad0661a9692911803d37f0cf505782fdc4c96c1fbbe5efa32bcf01aa8204e0d8b6a9e00b95c583c949176e0e38d668b6a37702a5e3ae8d072413d8d4d89bc3eec6da8745153533356d4f54e2b7c4883b7f0c861bdaf295ce93e282e95a4e67e6e572cfa8819fc5e69a446852f48cfc157169e496a2c6061fc22b3b6fd9183c26dd9188a36c962f1c3dc121c969fd77b17b98c152b09d37d7a5393e5867b105eb018b939b5c8d44b0955a7774b4d69a6704c42566b526e6521eaefc0be43c7ca8607d522702ecaf235aebb1e82bf68d0d087d93ac72163addfeef7d4aa67c9e23c4780a315f71e25bc3baf846fdcd0f4b5e0b02155300aa03e1d1adde5f932ee4e9bb4019939855387311d7173cec1c4022c769aa80927eac98b644226bece51eeeccbbd508d083d36c4e8456820b0c03b2954c3e77c04d21c154542dcd894268a44b2a02ac82f3d61a14399ffaaaa5d55a0f660b2ece50453fb15a38daf9457a62444a1077909709d7b0ea036824418378ea580cf3bd8df491255b0869013a40a99900d0b118ed058bf17d0835e73ee519ede0aeff1654dc29c66ec70c949749c48af3ca8f9f5b0003a83dcc8bff5d63665ee97ca9041a5906be91663ba5bc36a6480614c0860242b060ec6c4abc20f210dea742323ab6db7e120ce8245d4d0c8a569a7dad696f0ca94d5b443590882784b856538e748f9db4cb31b4e825320252c55f7716f074b176be8abd328fa4c14e615a28354344d127a3bd4d820baa3e470118f7ae8bbae3b0af62c3c1c087648958338fb2e6b2e11cc7accd7e722546b072a9d0899d2111b82f8eea52db068062bead0d90b9338069d1917e111ea68eb97860b21dd1fb37ef104db5731b25b12bbbc92e976bec23e01839e74ade1b535060ed0121b9ddb6320b6aae54dbe516e9fb9d544c06f86572e13eb3fcac0c6733c84e5ce7063f5d52c3256bdd78781d3a03f523e064e0983155fa0017c9a8f1cf29eb30e1b71158d37fc2b954ea344ff27e271fafc1b03db63b7f0fdfa261bba5edfb63d29ec141993d0998e69cc24f637aae145c69e7583470a8346c0e258d84ef866c961726f97d0850561d8cb681a9f03e605a0c344b8a5cfba00a24cdb679690c49cafbd513afb7ac727de17eb7c9174c72e86be3ec40829fd79fa7f67cf595316faab15ef3f03262f5041bacc337013054312eff914e27187678196dc91e42ef418e37c1cc1698f2f24f96927d6c8f6ef1632153f13cf9b30665cbc105fee34acc4dd757b19c860bf4079e35fb51409573f31cf85348711d65936cac4ac028e5019de8e7b6aa1e2c3d46ced39d378f7549393bf60b11617a4a65157a8a024955fcbba91c4e40a2cfbfc06ef99da4820b1ea5465ff5c191596079af173a58fb3c73cb8773d271e9475327fd0657fb156f71c0689656df1c8dd135c74916fd18b89789b63f26dedb8d9e4aaaf869d01d57ef780200715b5760ea8daa898742c34a5dfd26fc7d5348eb22dd2f49ad4f9742dea876da9932b48bc54e91dea8f0a95b441148fbf081485ac3909ef9f72fc9800a9584764bc5323edd700046e87bba9cc995b0c5859a3f51294d34ceada42091f0fe9442d6a34e21da9623af54751d7b326af1c3fa6bd1c1928d85e9aef3d83ded0f5ac92b5c4d35c2917e0570c6e562bdc71a6faa2c6a8ae2975260c7b4f7e800252829a68c769870f2dc8df14083fe766fcb1fe2ef6d47524aa73c6ad5ed5b1170e6b9ce0e5416fbf434131bd7bb0172a523a3ce9e621b84d0dadac439a949650e1312ddee7853bb25125a961ba8fd6d2c36182746b25f6b6caff2bd7c523d1cd75a542282d3f50ec14f0f2a64cab9056289bca8957c106d2d2a2ec7e6d98f0661d3e7ac1d4027c11756e633c05ab04ae34fc88c183af237049bd45375be5ec13d4eafcfc7dc8603409856c6fec21c81f4a7c09c84c7ce7150097a51a5e5479cad275d096fa8a72393b98d283930be71c6f7d6869488c76397273f81f7eadd0ec46870002cd7b62f7e164f9fd220e8ca170ee5c3925bd3f22a48f62f977b5263581852c08fedeae4d26acf56c8c6ad45492c1f9d25ed1dc64aab486709e9017ba7b0a43718543a9702ed1aa686a031c6be2bd1d50570c979a52dc83a94033f82bd416869f998670316ae52d298a5af9aa68465c6b27f61422b4fa2434a0ebc5bf2e77c85ee6ecd9b012bf2db124d55f4bfe88f02fbde08b2c547872799c29adf7536998a9bae094c58d755b10494c5b0a7fafe5659d5bb92cbd8b7985bec57d5046913e84b77a8831aba8ba0f81d70999870c52f035594e9604c627fa8178d99036f30c4cf3a8b0828deb0331de1933d7b4b8626e1c607400a978242410f78232c1687d812470bd3f86f561206ce4cf67661e990dc4ddfe387f4211199fe8819a1b3e05dc65b82f5a032461eb32c3cb5e3dc1ac350387103f8df4b078597fc0573305ef954deec26345f8072d1f1dbd31a061bf020c2992b21e7be5b280ddd92da359fcf92819ec30e60f0a0b219afd5f1a77af5465baaaacbcb29d6c80fc7d3e10f020effca54e057dd8b22f42b3878759f0f8d247620bc9760242be2da3cc6a649d5c28a39c39bdfa4478255eaa08dc27c618313c414a4a65f892de275e243a5ce8950de20010b9d027a0bafdeb444e257158a027b4c33e509165142c206123570ad5c83f854c366111317459b22013e509e2715d0913fe298aada8571ae5a7b0a05484415d1914dacff9b2233648765c0eb545f843b422d9b0209263a5213b018c30a25b39976c104d4249a51dc6254c42b2105714f85cfd08ad150c27d49d465da0cf243b1f4e2296cd8e5e67e03fed9d3ef13cef4732aa2389a5adfe67d42f322c35d5735325e70c9aab7f4bc0619e7bd70cc63480fcf688e19ad22d0df0f3d470be1c5a27fe41d059ded841f055c42e8683cb8ed9280d3dc9e06bd1396c9a8e3e71952dc842e3a640edec1b12bb6c4d7ba0e184737445db6ec2f21a367268602d7a1c4d7862d81c9f214863ed8fdfc7a350dcfd1813d0c226994a12bf0f7d113f325be4dee87f2550431608526aa2d15746faaf84f42dcf34d189a9c192c6d13ad29566b4680d7c07c1ed95b2143168587b79fb57cd17067f06bf42b123d36170ab71923e96c9e872bc34af7121754146284138f2b8040ece9c70b34b0da2878e9ea5d89bb84fe0269a818d55d7538fc72eae3fd4f51a1b84afd9f88ff472c5b06718e11e85518325a1bb5743d7f590f82bb8dff57cd408c99e7e8632c728ca5b2236a91156f6086dda2212b90317a63adee9e27260b284a0ab4d12da485622100d26e90f8411577529836cc27aedc7b479dba12087f769bb4c9f874353b53c80dd229af0aab551a6c0519a272575f292bd3850e1416c08e05cd03de4714cb3cda3aa360ce9bd349fc4d217629a83d5f4a61016ebf286ef627cad972dc1059f71bff26831ba17480756c01b68e31fe9ab728a284b5fc6627a58ce45e5e71d67f0b2ebc49b47edba00707568f303a2b52bdd19e6465caf944a7e5631d9d3383db472f6bd9de0bc79120b14ccf0a8f77ff5eb79939b3d17cf0691a2784fa1e3ba3b604a3aef8984f0a5d849b37bd12d647e9d08f7cd6e49fe355e7d7a6195eaee193a330140dc40faf84e2dab9cfc6b55acf8d3f63495750680f5d5e269adb337750554b4ba77d233b3c00566625d388f8f966988ce5c8150cdbd6f60f067c6214addd6c54d2aae7b9c6b43898fef0c82d3331520c728ed1162bf422a3e46a56b6af7fab7beb2f5febd70d6b1bdb0646da84be40786ee803c1f9654a677fe1d4b736ee775bea828cdeb6571d0dc9745bd5712e278242c2ea654d3aab747133e6ccdb3667039d499fc940da6ddc8c6379ed01ffc14d35dc7a509135f28d9b73f7d026b059745560f14c70cb2ba73db37f574ee8428cdf262b679f0168af80a116d4b6530f6f75d72df633f0d0c08d1c082c7966ebfe81d18d3f82a6b765d18747183ebf6685a70499b92550e59bd83e4c7786ec3136c1d98e121ae90e6f17b225b91345da3804b85a7ef22341e3a5051b7482aa73d27d4998ec58274d3d0ebee053eae9b8ff089131dba75af0e1e69b947766bc930b8085357b10ab15c9d5c381aec2dc97a266bbbb2a978892a3ef0b4fd5f84ac6e4372d6d7bdf745924fd27ea875571942028cd8012b1aa3bf14c094866e3032b4d98fcd5dcdf89cebd52210055bb626a71ce455505d6a322aa2690ceecf274057d7769db8958fad7fe4de4d0cae2bcc447ab5301c127869cd382ca621977fa06328b04b6e8ff2991e2f04b00d055b3d8fb871ba69da61f84e76fafcbd66018e1735ab44b3cff54881d4eda13c41d185662cb2e5c6901b831e7ee18792d008585d55e3a4996fd53437e69e3defb46c95a97a6a8938f8736ad651d65d27423f15c2277c4c069abe972c57dd36f35c0ed30440ddc92f767d9df199899c929a0972ee62608c75c9f93bf075e712ac0e98fec3d601f6c39417601ae7a8dae449b37753c5596c9e9cef6999291c19329087051350f5a723ca342d5636acaaacd27b1c3ce0d770ae0cb3141b2b2db86b3d7938a302e7b2e1f4d2412d665f4bc72238a1652cfc207e928bd4b30174a9452dc2b4607ecdc148f7593e5d9c566d0dd3f24e1ff992abb8839267be1282a3a711d12ba567b5c7b0003e0af2c7a85b2ada5b41449d7d6013c4aa35822a404dea0211446b1544b866051242946c981a5900dcfdd36b7109c4c5813cbab5990c822e94131f5ee60765ee6d8643c504e2f4801c5240c7fac22be288afef12ff991852c583c504b41d8935140bf951817054c6f5284c07dcf2a941637bc66baf839eca33034e747f55f950db4525220a5d54d54049fcf207b183fdb217ddcdb58345636dc84207131e6e03fa3318916421f577f69254a5617e601811a586c43d915dda548c9cb3ba9968f40bb6db87a89cf9a573605f13af6d0ee9ee086c879b9e79be3f9bf0545a8abd12b80a2b2836208a90c7616b787a046045ff439e13dd9a01e968a44db5cd9fd930cdf2f674d737c79f55ac84c6bea1086d3778426f7d1545a012de95be5bb5da5ef3b6430edcb741774a631eb42a4f225ccd03d9cfb66eb70f7543d6d28989e46b9305c60da87b40112defd8aa6b09f4fad51a973bd5ac10c65bee22b7e8c431543d0b72ece5a6a919007c2c5d8bcb04199664ac5c2c40b85eea56c8a0cb67d4e70c25d2eb01b698759ef1145137089eda019fed02d1f74f9646358c63d5fbd6457f9049d836e44ca3e53f870dc89939a90e1d461864d1e0b7b79df6a5ee4db768900b2840b5a7a9885fa994bd31a4d03577a53f47b801f48c3e4beb894fed1f88c732151c61dc9435c1fa2a4376ab3a93bdc655c56c9aa5d0db7fc6c7a1b34c6f98d02915de0cc65103c1bd0a987c6709c8f6cd91000296a0e8ed6a8582321b30f6be4b09705dcc71074236048180a809bb1a988403e97db598d3d6e2139cdd863a980da96494f0dea4721a0513f7d1bca588b717bfc0fb00216968296189e47ee47c912b4628c918f68eb7236c2ef93e8ea147f4683e0f0a930c1f35c13d763b5c101a11ff571729abfb26f544702df0301e9451b497dd71acf49750aebfa3022d838e8b00bae55f197c5f98992d50c66f3bbd57df7aaf45cfd4cf93adf3d489f5b7b25973eb2125cd4630ca5faaf009ead85ba15a25b58f759e1d25f3324df8aecd845afdde7fb4bdc6712f0ed6f26e1fa6de398510ae400a5f2ff0ca4d4e46270afe5de2a7859d9d21d40b4120bf5b5c29d43c24e1923c856544b34bb0247d10cfab4e4f6e4f53442e1219346ed7d54d6b6b88a481711a1880bfd2e79f7355670fe995707fe8af9181ec9596be81c0683f757f29772c1631f8f587c81b0eb8e189e47590a89b2fb8e5f2b5fd99266ddb9ddaef746999be48ae775b7ad175ebb0a5d3fc3115e5a35c3ed96462d2771badd7ad6fe5731199eca8067006186eabe0cc6268da9a9c8979927a73df47a57e11a0a839cade66066ee3691fb3677c06e5c09a13cd53962ab4a3632c833409f376f4da7c20123b01be59164edb41bcd816bfe872266c9fbc4cf4185bb58e64514a8e4c57f03004c25cfac399d1a627980305fc2b897bfb016a4bdfae059b6a684889acca2bb50b91958cdf4ffc1fb2a2d0162d240fcdeedeac5bff94829d94f99304048bcda230554e49703e8278ba0fbe26015e844b23fd31545a70323f1d23a2168fa7cf8ec3bda2faec99b7b57c5b0bb1ad649542b6a200dc64dd6e0059e40085a0be15360825bef7722d5938115fe5fc82d2220d6cc67277dd2a4c86ac0f8ab1f53d0f4a0a64b19389be2019a3340dcaae1ffd6d1eb3f1a703301199fd87057fca2307fe4554fa04e522a829a119f97101eef438753d23064a4d61d7373c74cc1ed067dd14417c04ca607a05f08da605e35eb6a18b192a818907848e9d88e598685399cb0a0be27ad50d6231b886a608b9f955f3534cda3744c8334ae7f6787b97553acc251666789adfc0cbc5411a9fa153f65555f2affe0b2847fdec1680053078546d5d65dc70fc5273608db19329584e57786c2190d169dea76eaeb1257180ab2521ea43d0a7a578d93a637e2d28258d251afa4d43e92713cc29d3c687a02adf629e091b6136c019ba6606fecee34e174cd039fbc4ce7735c9759b40216d2f96d0973873aa2a190bd05b8170434022144302ecea2cdb8e6812f4752d77e0dd46139b1edbc3334b2e7a25ce004ee02e09cac30fafad64c80bd2980fbaa0e885eff30a84fce56f0e9fd3a04a30a65e21fb377f155061262087444dfc92cb464427bc5ed4197a621860a93b16450db54d21606a30448fcbd8acc021b03ca2a7c7d7ee61d684c130ea5dd8c0b45ee07a0a901a18f29ed2e835bcc6446b190a534d05d49098815ef89546d8d673d4ad859a885121b7257ed0e00935decbd9a77c06c9986ce83426aeed32608596df8de679cd27718e6e694a67508c5a6046ddb89cc23faea26563b1d233f5dd4b0f1438c35963e159c94b3a5b291c9c9e15854ccb90b1d3cef403f8b5622cd8870adfce02f888a53086a06543a1753150870e64f18d6e84ddf5787c8f7a16dae9d4e772843543bc443d6d22eda39080dd81c911ac910a2bf076ce4590131504dbddae2a0b84379e0d83f7c87b0564bdd9d738a5dd9c12b9c55d4ee32cc34614a6adfdf5a1a7255c6605f5a1b43f482e85e236fcd65b3712326f7ba6419fd17afa7a2517eec53d82b7ff6c44d009d3a574edf537cebfc3c956c79ad508ac855e8bdb087adbfc46894a89de6bee8314d77bbdf50247f59a6271c1b958d026ac154a4f82c7ff86b5114894ecb00689e1ef434fde2d14c142781545012d751ecf2a2b205bf2bdf578037b60e69230b4278b70cfbb390463fd3d4f5ea25aa080119ef67835190828ee6a5dd6b30990e6b9fa06093e894df64ca01c9f953a103bd8d977fb3018cf5530a2f39d353374118fa51a0f84164fa44a413ca8c305cae312d38c5a0e09e41a6e2262707850a439c289a7e380bc268a4bfc8f0d1434dd2ce27d6010a7c9c013bf8383b0a60981381f0eb435c934e272c820a7e11213a3c38062cd114c3c1f0f6434d15cc47feca0a4e960136f07827834c30365ad019b9b1d46c3ec6257e171dfcd8475487a60d04b337894f67cb0f9858bd4fa0211600eb147c813b97de289a1101e15fa30b89f38392d6881336e3ff3121bcdf4b7c2948bcad64fadbd470c6bd7bce7ebaf4a192f1d9c793b5a18d62228655637737440a21e7951e74880cdbc1900143d035861ff9ed072bc47c44943d71a3e645016cc6689204357c3abebe41807601576740c67bc48197a22d140bbd0b2c5bcb59ed5087696b53b733235aae26179fec184c59d65eceb918c109e9eb23c9976881ccf52861f6c8caea2f773856c84195a35de8196a1da7d9f9a2699eb80a0237f7ffe905b056e143f5ed08da7a000e7c18e8cc7328de6405da6ab73819d2c179a0daa531dd2b9d3384928ead5c6daf7091c5cf9387cb7bb545eacd26e697dddb9f6ea4d36821e5684d90717e2f55875e47e7e78bb7c361a5aec92ed670f2701d4e3e4fcdc29a90552e708bfdbcf44a59d05683422affee8e06545476f142a7a22e9d18e932be74c40a5495dad98c4012a853d767cf9fb24384b820250deb6e1c1c105e939955afcb68d3e0edbeffb3a9ac35ce958a0b0ee2c9c824db4c4ef5b2d92e7161321a0f4a5420dc645f532739f32635f24ed58a734c00bb2beca6a5b011e5f9cbbc78aca714616760aab84c18aea32bd435ef17f2f3b327daaf9f146b4f080bf13c119de3175599d653308fe2329c1d1611e37b7061a01042c0df1cb961dc06e9746a1e20743d88141061ec1729ea05b0b6160c7b737437f6674b022b8f8ee3422ef5c11c6dfc634e794281cbb0f8d09676387ac3d1a499a3bdd33705cf8828bf335ca79c392ec4f71890d684edab3c1ff7bce290dfcb2e10b759a64e0fe4da93ae1a82312a9f5a6111e9e6c80a3cac2935dd2309f19d2d31f7c8d0f7b351744bb8c837956d30fe86a9c30c454a6b66e341135d0f05ba4ca7d59a8ba9cdb4ef2250e3c0a3597661c31debf1c11ba9446ee04c94d4bbafaa1cf1783676692976ad67281f711670d1594df0d97766e8e1cdd82f108f2c5a656233f091d7abc404911bfae8f97722f9e37ddc88e8bdd1a2a1f1d64308c404131560ec6a0bd98c6ad13a75716092d6fefaae0f8e00646a63568aaad24ce5f4b361db5453d3720e0025dad10f76e93d61446d710496048946e252b91cd795edce3b83879d3bde42b27b6f06c8a3f42c04c989c9770c818fbfaf3968b69bde3de60c3f28bd4ea5d3b4cbc925d19fee0e4fd852b931e49e61be216fe86ddd2654eb632242aaaf9493af0c5ea3eb2dda33b1e1c8368c6ddc699617b71423fcb4c56276e4c48abe286a49632cd8d439fc50fcd87367606b40324145f14a187ce2f03e498213454658174bdf4e4559ee39e496918c0dc720825040eba7d560981195d3e5b7a6042179f2e5960d1d9a74a10d8e8e6c3520712baf870c9020be8047cece68f88b86c76c208804dda4326b2becf7c2cb7043a72747b0dddff0fee138dfe50a31f6edc471afda9463fdcb84f34fe438d7fbc71f9c9db381f1a9dac7b8dd677434ce57b1d6b1a03adeef1838dbae72b41a13cfa2dfc2c62b627e6b2cf29a04b49d7d227a04d099f2059d13a2a3e9fd973f2747a15f4bb6bd4ac3d2faae4fec40bce6eb0bac8ae03e02846989a227834eefea05ff68cda0de61253ab726428efa8b4214259e09c004f67c6df3c0ee954835dc7db2ac34865eb472e691a65881dc8979d86cdae7fef13d0b75860bc4af2ffee803729782cc15eadef8f2505baa169ed049a16c9c84f8b1ab12f00b352df18631ffacf6e4c2a678792ed83f07ce9293da8ac496b539806c30a1558d7383d1a56002be7012a053fffbf2f60ee94dc3e1be46a29214e07a3f5b003c851e9bc019821085162f9ccd3906e6b6954bca057e64093ed799f7948d2577e555f8dfe7b551bfe3f47e7f47fd0a22257618e42edea2ef3fb433670b7020489ef3daf228794aee276254833638226e9a5a2e1531f929cb3243485b21c33996445c6a4c30a128e5fecd0d41fd3af3d4d55e4a0c96100182e299fabd628a241c709dd1c8bc11766368f5c95e8e2463671df28b187433eaa07cd0f9d580b29d1a1cc79d1907902e4edd24306dd368754e637b5132c374d2ebe23b7ac297834932cc4659900999d5db2da505764ea4b6873176db12d79cc0846454fad1dc2e99a596999b3bc00d7595efed53d41d579b8db11d307e2be6e24638bd1b67d4c60684b7043568c9c2f01cd6823510765c3382ef5b250f71c85eaf99769d76b131b5bb0be8b7c0aedd78a02966f2ba9eaf388566007d238c6037f7cf25a9d8dbc4156d9989352c17561fed63753807c930a9a5bf9399b3534a3574591e61185211a6d4e242b373dc76a0abb57923dd304597ac85a35974117be68e686ad7cc0eb1ce995d50d266032979b95fea6eec109b39fd9fd17fe04a2388ae686f02505491769deac282be5126e7ca1b9e8105d352bd056c520052ad45807c8a5172310d64d62209a973d54c5ed7555f11f9127b6a752f3acc4cdee208703b5e4a3034a186b2464d6518c00daf56a4a7b46631f644a1d3c4f30431c1c3606ddb66a3c4c28b5b6fdf77c6a2f7c0871e3eefb0d9c5fb4356960995ed2487dba021bf1601b27e9e623e939b116ac9a63415cbd5c17b6e7834e1eadc01c67b583d29a4d6752af3d815692362dd6f3789d9e5b4b7c1ee88cd15da3657f5ad39d2b050ad74f4da8105395eada91238b56a2e405949a0da656ddf2204bcf824dd137c3748a2161dae26e6a5046d2640a3c3c37b058230b66b7f42996fd8ddf8200cb8351e2357b9aaa6db76edba1756d60ee778f03d03ee58660c211b5cdfe5419ae09648b8732519c50f638a38d045f204d489bd14ce230a2ea6fd2c9e11935009bdd8e92faa000997990e95468b292580964b1b340143073a985c52494c59a4f8bd90673e676ce8edfffc3cdfa77b8a51f4d89ff68d09c27f1eca5e196db28afafae2cab3feb0fc140bcbb06189981696c104341cb0e3691dc381132ff017d78c2dc347132e383fb78e2b96d22dc3cb132f7c13f6a62b83dd165fe01f363811319f253c8d5ad862731e5df1ee427b71e00e20a848a2a19510139ff107936f53156b89f32b1df326d7f199b1bb18afdcbb47dcafc3ef57eb8b98eed2fb3f72d65e48ddb62b2fafef8fd1d6e7ce68683dddda9bc0ef4367a0486d65ce18d565d2add31e1824645192c9c04d5d9df14e3fb538d087a953d6004d9a749c7319072ea75c771c20687610fd944db4d610370f223340cec7e0f5cb44785c84ebdb9113e7024d37fe5f09d1dbe9691541e1516b62a769bf599ceb8c1fd785ed0ef272ab582707d4900eaea5e66c0d11f8dbb68318be465fafb6b060273a8ed2eb801227c35566210b0789e0eee211b555eba1fe60e80a55ad636e9dcbcf425a76ef5e58e3c0fd6b8501d16c733676f7727a1949661bcc69f817fe41e83d31086e13574b855bec1aa403eb69c8ceefd95f63ceb56c83ca74ac2347b5a8e45443a68333f4064d58ad01bb4ed1b0f84c6c07574d568a01a439a9281fc132584dc8675f0af91c4545bce76c29fe873de5e017bfa7590931fcd53c2242354ddb47865adec2b6d6559e957b69586157752f471679e8070fe929c8571993bd6b8daeb1e5b5db5968c07da4c27f2bf6dd67da307247ea63f58ae8e60c19062d7ac2309dfc76e57ec564ce92c9a34e2f04d06c9348d8bc9eb2eededba99f1a71a68d293c2b7cca7d1305e476ebfb76375618d9576acb92309f7652a4b7f580d395f777d1d8898cb289dae810a72dabd5d56077b7ce97b4d3a82c3791079a9247048e48515416e10cd49e01c59cd0a5cfa1d5b2508e2b024ee154e2a9d0e81381b7a688ab8dd1cdc468145c55ff27c1fe9d46e1de61329224161d631c33e462235b98abd8f4d1db1005435bb09a6486e4be6a312de7b4801933e3904f1727abfa06dd6caf46a08efb44fce949ed4c0fb05b481ce16326fba9893de8e198903c257a1d2bb32722e449db80d760e1ec1f8d7d37c6a43d0dcc27ebff45261fa216a21c8fb14b635fe490c9205e82a94da1c60b691421140d65ff3d83cad17ac2821d6dd9e346317421147141984174e8a3be05b44e739ca313a24a497b606d7f171334e9718dc700f37fc07480692eec173a858ce119fd889072fec6a399552005be0ab87dcc7e9ee8165ef2f085c062c623104dcb98e6559c847c08ff5bf8f9a29565a9d82c00c30c36f39fd01194151b77929fea2c7c3c564e29698ada3b7043c102266e692f96c18d5731c320a8d0250addf05cfb76f1f1a1380271f40ddcbf1089d9911790e040de80d5fe2cb1acbb8297a117739cd48406e5281f5fa0cd78338ceb17eac9a675c9a0b49fe1a4dbff4eda68c3e843886a3fe9e21eaaa275f61628bba88a2c7e16e09171d76f5011d94d09e937f2266455b985af0fe6e481b4e847754992cc93bf10e58f5f931993bd913fbc29617027356de7da477c543598a721f75992c85676f67f4c0b873672a8401a8131a1121fd5eb7a8b7da79b0af6fa0553bdda5d69cc738747228428f2a0eca89c5b27bf78c86abf3201d66ca761c9d622348860061034e2238b302b06e53a61a3174fb33bf9c7bd708f68bd2ee75d3da7e207affe1590bc2c6392021108aaafeab55f0649aaf0e9079c4c069bd90ef80b653051d3210b601fb7aea62ce3edf36ef3b26b764e995c53c42233c2fec6b2e325c8c51f12753011a4cb9536e468aa7999cac3fcc98e63e55d4647b4ea848ce18ffa6ff33ceb15aa723e95728b126f595e92c947924657c22511fbf63db593912435b2f34de30a37687d0f5811c53cc96cca6788429cbbbfad740ad9326968b6818a80d347b0c2b824a0efabc76afb97dc8dc6214d5261f2057df445fcb742d43cda43345bb3629148530eecd2a2306e1f2223a231255af854db352f0c28af9c9e0e2f0547b8a8ccf6d9a6b2ceaf1c86031d5931542628e8f03dfe406a1e093da3b819109171c2522e12b4c3a98931c0f1c3d7c1601c3f28a6eb267620e654f1438fa5133b60ec01cd8511c1c9b960e6741bdc627d7d3cc603474a0ed3bff736a914e02b3659b76094df19d079b34a636999500aad822bb997ebb3131b18ab33c9f00ee668dfbe19cc812df5c7e760e35c9eb025059539482a6aecfa97d5c2e59aaf5f8cfdb4210fb4da604d30218eda431cd38e520bb4f4374beb24cebca58033ab9f283ca9520773a53d95b0b232fed012ae3ec107e55de8aa545898e603c6015d8f9a0118f292d63788f0d68d5e9402d4b389534ea99480b272e29e5906447ef1a6a1eb61533292e782d7bcd78441a44b65e57f2fd673665b71b0049adc0922ec7fcdf0873dcbf1ac95c719c25d3a457de4587666ec922fdd1a48f2d9fcefa644a406243b1b16198a75e93ce0948b88b42854200cb249b2e117ef225ff608cf38231a5c0bbd13e61ad109dbd0479e9215967f96a69f98aa931c5280ba58283b1c191fd76fb31226bf01d8ea967fae985e74713a252639964fc1dedecf594a814b7175b6b1eeb47e504a155aff362aad2dc1babbfe3ba7036f082276c7a5d6a3e489a419387cfe7e562c9e844ff01921eb926b91e34113a5800361415cef61cd53321bddd3d703ed603f4703cd055e49de815cc55692fba15be07356384066e1069063184b1793e2c98651a5122b668e7532a7101d28d2120078b84b93be220714ff6e3cec9db70311e4c9110696e40161d76365fe96729210a993f25ec2bc04383ebed5bb581029cbef9e6e5385c933e19f30523e7ac9fe7bba00a54c79b688cd21be21b95df7c8ac89f495159db44fca91f21a2f1d631805e30b4b98e13567acaf3721736df7009aadca76dbf85bb5f0b6d8b8082a47c28019955f0a0cc3d240f82fb567d1b9798f28a46a4304ad60347d67f14cddb2a68a05b042c1d9156d30013f0803c0d8191e51dd83bc0619eb65d3d57b99b09155ea966988d27447a8e53f684ee1c26aad415615594a1d9984cc59ef67dc292e4e3aec1569fae5b772269c6838606c59975b295c1a9a58e70389d716a083e26528105e3de26efaa3f87be88797dc67e138bba5a5064706abe6c02b737ce6af7826e227a9dd172d554d4e65f7300969c88781a3e214660c35fa6fd8fb34c92eeb7837ff04c71dff09200a7f9f70d0164e3241e68292bb05d6e9d848bd714a39e5a77693a64aa666e605b04780a3f804fb0508f92f001420659a2c02cd74a0f6539557ec9a87d667ad3eb377b32237c88e1ae469b7d10375ad5fddf1c66208e5fb396b6c89455af68488721f1c35d9bc8b0db15de07dfb67ad6b639e08ba2f5eb3b55c57941ccf48bb04c0f271def9d6cf4f8fe91f1a25b636d6e3a347c86dde2940266ae40ae3959786f833343a02f218f897f658cb90dd2558e6459c9153f6711d3643276dfae7ef0b4287a5bbae8cc216fe8cd7c08398ee65062fdd6068571647d278f999e57602b6536121e9340dd8d515356061338e8f545f297541e66646a88b5ee138d820268309a22c77bca85c4d9a41565e59e8aaff187df40c1ec0f92d2d1afcfdf7e4c72295dcc134e59bbbef2e98f464e025ff38d345b7c4b082c0b062aac4a9104bf09d74c789cfb63a7134570ac1c890a93e91ec3b45685b5312e1bb76fac9087f64bd13ba15ee12f700542b71ea3ca4218692da002514aa0317f6a95921b78ab3bec99819839a8e081908e33dfc3d57633f97cc25d0abb4aedf1f541ba90569be3b8b15b61ba03039223b998f0ed983f0de032ac4e867c3a28dfeadbcf649f216fdc84de633ad183eb128c910d1bc2c874299cca328c5122e05370d9a7025bbda7865429da08f025d0e78e713d77143c35378031cc93df567049575c02df80f0c6c35cf646186fed0c7c16bfe772506e0baaaa0db2857c306416c6ddab88690fdf0c171ffae7ce3cb26dbc4e4f8be6f7b45707c047b4e752a10b2cddfda3395a5af0f6944f4b55428c7814ea688fa27af91fd1ba0e48e43c9e6bbf96968af2747d0ff77fa0e27ce1681fba674c7c1425019d14d3bf51e85ab5d1f820940d93d2ea406cb52c61b5687647204d4cd06222b12d82d1c9a89e70f9e787069b551f8fb2ea1d4d0aceca5ab27e618b8c9f859cb756e84c67a20fbc57c3fd9b4110c1857da8f19156fed0b9daaace41f24fefebb73b53e7e9ea044e843543f39323aca015f93e6bdfd0c67f6f1eaadc281ae3938b5961247427b5dcbbd67c96efa5a4b749b717d0de3afe02bae31408b20a64f296014375c72889b3fb863ec2cfbdb77a34f23f2d530a81b5087fef0f28925b28eea42458a232e3927508f831f7f90949add82b1775fc51567f946253fdd8673c59d1b171f116227b8a3d56c2866b1b866247d53359dda67f4f2b63396e1a99a3a5fa0bb75cf7e6863d0637e0c6be0428be760d6ea99c696fad88a890546cf65b8bedadd50f121b62345e6971c1b6afdfdc3e466ffc5df8d750ab3d4f8788c6574885c044feab570f1f3313616b4a1c0aaec529dfa7443ba34a10c53590e0ea1d3a9cc5c1570105fda12d4ee30eb40806616c0c46d9be7db33163deeca79ad3878aca02c3c3d7082bd3f69b878bf5cfcefb67bb4d2e1a34b25b3c85a803488e0bb980448646e47afbfbe92f5571a48015ed6e8e91c7b9690f5a3964f9ae7e84f7d17dcf6750070d30f21642425c518a8c174dd0e503751f3edeffe333ad0c7d0c87df00e6bb93dcadf6b89b4e63abb6ee082e2a1b9b3a9c423a0e8bfafe3ba504a7a0bc50776303f488aee2be36b7ecd1d879ed0cdd4a7326f295d2caff1453a1b563f16024a54263bb29f1a39d88e2894a513aa885369935e1adc720164f8ce984f4e90ab1612c2fd16bac860dfa4bd998611e721284debe2ba7f9f901d3387a339dd915544994aacda5cb2f6f588cdacaeeb442856cff06a934ab66696bd0c50eb0e2acd60da3e4d47759c2bd4828b3e7aa6397f107a7d59ef7a5bdcc97188f6847309c465ec90e01ab30b99597a9653fbfd4ec8e250407b0c1a085f433bc5566826ee9ff3896f9401cd6b865fa244e5dca87628fdeb4c63e2a3ed414593f4ad7ca24b5898ad1a8ca78e3159d3dd03d2a7ba6f758ba899ed6c6794149c744a71f07a69b66155998711367e6e35b82268ac7283d9b4ae825581b5f182a6c6247fa269aae86c8f31fe724f684d9e3c004f6547d38567794b84405287cb3bbb0f9bd27842aa13f2d0529df53d9f0384a133cc60a2d8f8ef8cf06833bf5c57817a06b8bf9a6d73a40e1be016778049e99367b1d7655264ac0e76221a46d597bba9c1daaab208293181c6c2cf0bc0fd41c3e7b066062ac49f3062e92511491733ee4221b96963eed3934e079a10bd71cf2fa1b026a41403b3569bf56264655bda8eb588678e31db391e97c00a14778281462b5a8b33624270cb34ee890342e4d367f29eb38fe7d45ad3ba57225713c822543ba925beb3b8b55f683e0e61579e61c391cde9960a3f5bd26dcbdbd34c5e4e9024b800807e42524f0d924ca62b504e91dd555284180ee0e44283caa81fc1c3e4671fa1e041485b970d8773f7219267e97d4cb9f24e228cb0e227f27de1d015135d4dc82707c43a952a2f3e16fefcbf57ccde5b3f8093e2c372dba1d3825b512efcf50a2f607cf3201820c65040a6ea9d738e65198d9bc6bb488aced702765da52236e2a1a86e4175c6021b886da3b6d01c4188b4971a2c71a59889ba65d99e78effb0580c424d938388c2372af4d8e5b6ba63a187d96b828a66119e29d8c5c2d3221c2ad29e1f2250d388238be06ab65d120e6038558d1c0b2f138f251cec1dd28492ce874d22db4d0a9860e6c1d717c0594e095516213cbd459e14f901974e0f043b969c4a3236c30e2b2f802e580dc4457b55eb751db2ee4ddb64c768b94bedf2f926945e76713c89ac27cffa4ab5e012c2462b9fb30f6775fdd72358ce3eba819247c59331f29405b49cf81fd5a05a3f285e8f21303e5ae83feb882bbf15ecacb1604c15ef3831f05ce6319723e4a1a51e7e70457f01a418a134c6df18822a200ebb6717ae6491c8fb9e87463f91c8e4656bcdf6c255ce440af59cba84db2565762012f1e9703c683fbdbe92a7dd3aca7fca4cf812b5bb219f58c6484f7c45ae029c3fd1ec4b3f18211803b2d529f4d8e106fa4652fa5f241d42a36abd863ec1b479e44e82bdeed12069e0a518c9ae52925e904fd8405d5847c8ac03014a3a109215546f3e876b338f80449f0d03161278b37b2c95a0ed0fb10c801ba2c0b453de3c28354aa8d545dd3f410a5fea2d728d5330ebb72a7ddd510c530c794879ac88d8182b1e370175d334b69106061e5534c579d994a0f57e98fc8362e4fff05fd09ff0909de0dbff07c8ee4ef80f601fc76c6a5d7b99d278fbbf4368d48089aec82fdfb75fa4a0030a5e1e7230c29c920310c5f22df954d37cdefdd11053ba4209973054e310a647e3b87a4e2b4ed49a39f7f7bba6626d4048732a0418e6142b088266a51b5909d247a45a4f14a746b199f47450c81933028f64f46a7c0f60b9d69bc08319042047d4bf5bf98745656722031ce71991db8f800c37c762061ffb5159e9edc73813cbe40476b1c1e2b47f80cced81f8dd44007aa07e0dae027e109f6162605d283017fc3dfc841e3a9124a92886f8b9f834b5f2c39d6f79cc40cf352db7097021d0f8f55c537756d4398c9ea97cdc4e10097d1f0a2781408c7ea322903b8058f552c4c4324d9855d5322df3959a048a4bd3e9141dce84d02c7020a62e8b4213f4d8edd1694e8d821428b707cce1327623df1ae0b8700e70464c210791d4eefbcdf276bb83c8b9cfe3a1c36e413ba9c1339b6721f46d16479b6f75d8b36f18f791511e383a7e46b6944e8d431eb100e628eec69e62577bdbd388e26fdfe0746a87a894599282db20f2993eb17c961489b2ccb0a8007af86fe487352235eeb6fe2d6abd95c87275eee50d03fdf4ab73073432f4cb8779a014df0a6ba9c457a3163a282336afae5b5f4e33d5b4a6d51d688246c785368204fbf42c8a5ff86443ddafacb9a70a86eccf44f35e4fa3bffafdb364027ca3aef083bb9a2d51f37cd1e01c803b382207d2eeb087529b18a225040a9e5bc599cafc5be2cd9896767c9780f6f841090b5c7ac419774a643b0d265ee1450868c1f94354df381ce221d51ab3e6b8561ba07125543a7793debb1b71564b96727e1b834a78ab1db042262d3ddb68047d294b7648bfe34d8cecee70b279b8b08bd3a24600ee04d02e635f7f6b8ae9090baf421c6d4658ed541607915f1d4387a8d29c5887154f8db8974211f074226b9b5261c5a03b432f3c9084415fc591916e0f476971b9ec3dce63aa7527de9c9669d9aac7eb7290d24772bf1b21a14095dd3e241a7161f4f9487eef8d66b5453794bd521b4dbb70baeda2ffa1fd63d5cf726752ab0ab0e8d7d67e8ffc359cbbf16d8d347c8df514fb6a9cb082b35dc2caea4d69d6d77215ccb445581091eb7398e0ff4d2bdecdd81e472ab02724d34a46a1f4d99f17c93635ae0514100c43ead92572e98ee4d2559ff988fdf7c08ab327f0ac40f0b0949ae32ad7a367207f055cc4619aabe67e402ddf2fb66fe9c72ca2d7f18e6e01fd14aa309d7badc4807698ba9cf70a21eacb2fb1b23c0429ce66b78afba839eccfb5b14f6109bbaf660c4ff86bff2d6fc9c1ff4a13645fbcad7be12c5a7260308ccf8352d5f1d8c9505605dcaf38e6f0f84d47bbac9c171b79666d8f893b0d2bd553b5fb47c3dc071e80e53b4812cfdcd7f4732e89be3850285f6677ef1cd3c8601a02f34f0a58c486a08248ed19383b5e464f68684b931146e919d9adef114276a17135c28a10e09bc3b658390e273e402e63f1c4305446773e0125249a4935191c10fca67e3a1ecedcd19da2f0074e0b1cad125ee34bc69fb769af0b95a4d01014b1a5df54962a5e6978524d2321771922ed9f3932f8d49e794456dc722fe78bf1873db9f7a1737b45d9928095e503692a68fb485055f4642053747c46888e5311b194c7cdfaccc7e1fa995a9ec434b4d7aa0d0d6c1ea20497019dc7b8b6030eec231175740ba7d6d937927ea5c503b441c9a4eb5b86300da6baed568344987776f19aea8d693f861cdb8a8f4ad204e8876e1ca1992f8ebebf4512f1d8c303e1eac1b5b2bdd843cc021ae00f78292310af980544102f4cdb8409a2ad05633a84af54767b6aa917822cd774ac37432509383d42378b5a9db67853d76c62011ebb3fa506a4c3f5b5658302ed3e388226a012f60995a4772dbbe951e93cc6dac6243815d7a72445788446dd1ef1a56226393d4074b11bf44d5cd096e08d48cb25d55006e9f24f620604b051910a2396a8e5872c0475493659fd8f3cbd4114bb3d8be26b089e4dd0bf7b1d6892af2682c18cb7bb410d15ce745a366f4c75a4128a648830059fdf567af061dc1b4ebfde087f0161ed5f3b20ea040050a21ad10577eabdd3f2c81d124bd8cc2d6323dfa14f2464b2d9c6a095a46a926648990ce64d29725e246c3e60e45b0976d03153b6caa6e643339170179bcb48368ac6a96facc5a00d936bfd5f3fecaa9782cb99210b13f72509f0a1b37974d9e1bdc00fcbec064976498727cedc2b8f62e74a7716f19d72e8628974cabdd2dc6b96dc2b47be5e298db3309c4b06c29d525bc06b60a7cf6d7879a81eb6de9366a3d9d61b0be7603af58ba43f5ac96b3b25b998ec5de1040b2626ff80407af4808484009d1ca427d4e2bee2055e758aa1b2c5fcfe90d92621d8084b60f5cfc2f86b2ae2679b44be6e8c1d4632b5633a6dea2edfe6f8c1497ee9212e958e9c5a592663724523c12aa6f814d216a73392b9dea74f22440f416ee58bd6df935f972afb745cdc082bee89b2931f889c4b9c4bdacc67f99ca5ec3f7df66c7f1b5fce8a34e594b76e0f69c47442a18f5570aa7d1e0630cfc43b51fccb138ecd2c59e60a743bc7f02b34c1251028b8510fd36ce0cbc38a87dbf20e23bec0cfc50bd9a09cf227347b8e135d746832c1ea20d73e792a66506b23a2cf7f7369633f2cd934b3ae5924dd558253728fc77d79b8ae2a4e61b4c8d075d461b732ea4f18bf7d80c387e911ef9d0ff86bf08ec93c087bdaa48dd8ac917104087c50de5bfe86357db8c3ed6866ac28b24ffa093663e89611c119233baa2b06a3ebaf3f2aeba8889349be0b10d2dd61fa5da6d494c734d16646f1657213ef01b0761fcac5a43395a37935bec97d275e8777cbe1ce82750c1f91e084040105f40381065b395929f9f9e6d2d7ada56282b581b1b8a626568d658a885110bf5d0c7567e1ab5341872512e0bb39e885a2ac287c695a1b8834d6f5959a05ecc327f85d6eab5ffc56ad38586a7a1ecb0dac9c36abb5b310ed3525f4b7c5c4405cc273e0053078a1068acb1894e10909cfd4d755421717a8a0f5375106959ff12f8db920a51c73fa6c7c5dd209d8056b9b68598aa4258a95f78d455ae74b5438d80b69a7af93bfde3a3e0459bbbb7434f860b7fe2134145509462e0c7207c7f01511e3688a9ddd0ff05b7e3617cd58388708afed95575b26e68acbb7f0c2fc53b3880f44c186ad8216f55704cc580ec22c6f1b4907e60c788b0302575703024bc5af615bb2c4f36708bd60d435e16e17702392281377b93ff2f2c866fb82b5a3f24c87388b762bf98e1dcf5ab5db836369233e157ae070b582c7958fe51735dc0355acf795ea5274c684ef94613b31268c1f7b6fa4b523f15328fc6365a7cfc77aee42341858e06b0cff9fd30b182d0b133a551ffeadfd44957f997941039bbb299783254872201cb973ff72aa5ac7484bcdde5988ba97394d3aaa71f21e73d585bba37d84fc5118f97d89f7a5a2fbf5f7ff808d2277ddaa04cbe6add8dde5261fb366766e22240a4b4dfb2b2944ec5509fdae15ce107c1fc6ffe90f76a33aa992274f3930fe4dab0a24ff9fa0c40f92e2fd54d658289031f9d80ecba4c87422899cd262cec06b83c4068d9b3343f847dc5f30e3875cdcd24ed052e55f68c187129369dd64f2cceebb405e007342b189a07710ded2158d5168287d66bde122bfc1582304c072f3651e3729f6cb306f95d73a31da73e5e3aa84da2886fbfa839a859fb3f10acb060593eaf0f85edc89aa477eeafbc22c43d5e2c92a29d0845b43e4b56ea8fe84260d3d62b2cb3d794a7b5714ef3ca5d05cb4d8d36437f338a674a46e944e5e0e682657af4dd92c904da8d589a68d8eca0af01facf7f6f33f7cf22567d9550ad6710924c60c24fb2618e28666036ffe7ab2917f1e86646391c1222ab279c244e5152d29859d3840de34ea3c556e7f14fb45109b44ed540d3e49311a5127985460859689e463564e8d3b52bb5dfb06e680da0f5d8585422fef4c684b9ba206f6a5b49825c1d709d31885a16b251a282e66ff522405a6247b884399c49c620f7128939853c99ec7d240af2b024d8e9fd6242c1c06100034c12bf8639058befd4bb57cc4e69ea641529517f705a4dba963658bdb89bc1a93ec54573f36cea4bfee32bc05982ff44def7e66605ff87d0cc8701fa28d374131b92b2904ab8e899376bc258db5ded2c0ae7786831a8d3288a65a3bd1819823f85500a0a619b8ec075ac7ed48e8c65c690fdc3ab8d552d0f59047eb725dec07a473a4fa071a11d78ae8b8e6a9e1b36055e4a6213814ec4b6d5d7418f3f0d1a581aa9bc742a9d099a788a9d663b77bc42d6d1316e84d6ec9deb37bb6b1635096310b06470f3f8364d9efbdcee1a72241ca9f3c303d7dc6794c812ad484bdd2e499a1be64c1410df92eab10cf40729f8ad57c0a1b0c124c4358d2518bd9decd13231e5ca4d241f948a4d478241b16d51ebb8f91879e6d65d3d8558bccf399079b1ee9c822fbb09eb65bed5a809d559bce3d53782b7eececf94e24001477db02bc288ac2dd7b92cd13228dba40a34910510230cc896108e453083de3b819f603307591bdf44aa1dbb373fe0a4fbd94c2b4c281e3cab81f9b1505e57cc10792765b3a12ced34213b81f88b5f3ff8bdd0ac2ac6a285547da66c90e13baede3374b7d851d7f74d44e04c0f8190488335c0c87f3800e236f02db9bb873074ecdc315b71ad3481b689a8ff8e6e9560dce1e4f257006a605ed1834de6d7ba88e804e740cf86eaeca9ba12ed3954c60f86eec85a9bd2be8a460c507a163cb250afc08933188d00adff2d70f9c747e2c7ff57ce54b5917f9ace1ee15f3838f872874c9aef9e6742b6ec8942f72b16b316fbb1b01f47e6709e22635f978a30c9e9012d1cb108e1cd98f5f507992c104ac15a7991f0f1fb46289519a4cde8ebed8101d98d894d237e68e9af543f7ea0ec536e6b74c147f97075eb710ef7d78aad5704de1950a0262f762bfcb8655e28d5394de16944daff839ba61f79d3cebbad9ae5fc3634373a97bdc193bb383c9c0854b025d39467554439ae9fdc33f1c7964f2c8722e16c4737477ae23233b905d1080dc23451c568dcf80c27bbe40c0bcb7fccfc3edf6361102c7e5f36c00d0a7aab8e4eb17f1d67c75aac6cfe774071b333cd986ea31668ef082ff79b71cd886e3374ffc45680371a7c61fa5f3c7c478331243b8b56d0fd18e833c979d4c2c0b3b4d86fd1a32bf55aa9d9e58209834a5dd93de811d09a2511a7d8a1c0fc8a84ccfd486622ceff0dc9aa5ca34dd0427e591d35de8d2d8831ad4c1a2c81dbe0abe13dea8df33011b43a23f43d89ec9f1c393dd7847e6d110cc94fd1d55ffaa8ffe394dbed99ba310a2d32808efbe14492f174977ac28c7d054fb531406108a9f832a28a2a3b05a8c42265094682f09555e1cec92339f4cb2fa916ca53214dc0f564bbdb0b686cdec824adffa49d0f5aad4da984e2a2710dd18332fe41659b765f2a8f6319fc2323e549cc4965f3f5def0f6eb314456119ec031c226f709291a7e9387d6a792d21f7b8bdc8c70fd83f408b4ae31f2d63c84c41cd7d1175e1f77d89a995555ade9572925cee1fa7df756cdf84c5b73ac5cda4fe4ec7e833a2f8b4626b06f2050a90fdc45f82f67fc2bc97e962f33301aebe9c7f33b43f257a8db2c5c875866533a626a86c89713234cd113bf6b57313e6ce6800f5f0d98a98e856bedaf671df79487b8228f19bc39bf5c8f449118a70e72e259f64a7d1fa92ca2658548a1040ba41305bb5d95c29542a16e9dfb670a9690274408bb375f2f5357a12c95af4d3510aaa45d870694e1f7607fab68c6dd914d97f85f2d177f36c0d30177928050bc510d96be9c37aa9cf29379b06a9fb2e021b6286ad62a295f92fb4dd551127c4074284d67d20d1221349eee9999250f2ff2749afb0ad9e5b762b0c56b364ecd096739a52cfd0f04d76eed678f976d80d6b900f93873f0471a82f10534affea3181cdc652ff01faee538678e61015f859eaa141c3d7e427fcd87f841c7642ef7babbdac3c035b9e90ff4e05f61a70e354fbbf8a49cb8e54153db66b2d848c38411e1af7a62f72578eccab80077cd15d9c06ef7eeae7ecfcd5d8a1c8a3a36f1a2e20852a1947883324a4fdd9c5dffac61b7b5c369310d2351d5e17b6cf1a73092ef10b0787ec9679b36ead2bfa277b8a249cec4caf9a19894e10259f0fd89a42943334c65a49db4a076a21ca818b931a6cba6ff704459417dd5a31ba62fe127c745bee43f43602d210ed7f228f9398dc69a35fcd220fc2c452216e89ebde70b1255fccde4d2e360c52cde067fe56f4c19d3c2b89d245530ce21d22f997bf7b54d9b726dd519c1f84e6591e8c35283c79a3acdcae8586906866b59004f566fb4c3311216c3689a638f76bc50b1aac78e2756c32bcc8a71fc6d9cbf8de253dc389b41cd6b2e64cd71dc2649885e7b8814bfa5f9c0536fc0684cfb0f29d3733743c6eac4185195fd00f5a60756366f9f98d7e050ca20099689b079ea950f785a0f9ec5df47000f82d3a8663508f324d73319b6edc2ac2a1d4440efa40cc76cdf05ec4faf1551be69cff3401c9e3691486c25f05c157d00093303a4451c99c4c3a6587920999dce929ff4097881726bc1ab658e4df1336d3b85bc86ca0f9380ccc8be1387402df81144fe5148712f80f976cc30f0c312c01bbcec8501d732ad18a2f56588727a27b033c0eaca7ce15c60decc50c5aeff6dcd810918cbe9f426013287ac67d4106c0f09f6cc258d3c4a85ca07416bdce127a300dac997599bd56a139a14a4d11d8e2a8ffb8fb40689eb52df449c3c89992166069cd580ea4166b1c6535795396185339c4965211485d12c2ab207e8594c3ca1cf66f08811e2ab77f7411d4a495cc33adb639c4543e48addaa5164a67e5b9908fc8ee7c22549ace7216cba1ea1435010d656dd14f9f388dd02a0816a88784d795b90ccb2c322f6bc48f0670f8695688376a4bac2f3b82b06c973a4a25cc0412ce9f4e62a6c356c920e3e444fe3b1083d0cee299efa3b0d0636fd183d9c81eac276d532bb10f9ea4a15a3fdee67ff52b0ba26688087ff19f00389aa5aadc2fb82bf8f876397cd2b2be2f24120c77f99a3939534c0897a708076acf29062271408b952bde78613e87d9ea0a20eaf8e8f04040226e13cabfcbe235f0c8f758ea53828628b2196730dc1e532cf12c875b6371558bb0490ad6a56d0d0137b34db6491ebf0c99a19515cb4f93f596636d0aaef0924f068f76162c5ebb1871dea9c50da1f276be011c32139edc5bc3ae3b56e9861f894274be3cc34392bd97a64f07efe2e3b25518c61c682ec40970a75d2027ea649a19c0f666a9d97cdd3bc44eec05f7cfc87fb16e9ab1f67f5c1ddab63978b769d405791645b565e350285c6a5541d747c5e469f7dd42b12d9e495889880d09e21740bc574d5267221bb2fbdef774c2a9d06e11074d221370da1c7561d7e3ee3c884be5620b99ce9c968f04ed726834108db649897b0968b02231c2ee138f0469b877f5e04e73ff415c84dc57578cc355367e0a07e4675865f6bb02fe14eca3c8fddad61b43abf114b12639bebaa770cbd53511f68f2e28c3b48f6d40f8a119691a6573c149a9fcf0a413b6a13b6b8b74a8e80b7af2033bf30822161fae4e250506b2a23f35b0a76586cfabf7bd94202f746bc90c5ba52571e9c5cd96d9a9cf411752d7da772b613042cbd5cdec1335d54a902c01d87fdb97632fa04a9b5d20ecd7ab81493a4fea5738a6a9f473fc8132741e60075e573621e892d9cb0a5d1888e45308a0a12b45655c3f7e335f412135ee622cd902e4ab752f6b584118a231ae7a7fc30c310c3f7df11f760feb076e229c3c94cbf8711507002bed6d35f606eae07674d5896f44766c9106d757f53854f1b8bf1e2510c10c239483ba6724b05142468696f234903d89dd72036969c5f389b067431abc0eb2aab92c2fbd33434e4931c4183abadd9aaee18542647905fefa1041b48fbb6a5e824359a8f1962396a426e968c0fccded0b9531c1e82c136d3589fe66f2f75d47d1860f973cf2532ed4cf6c282c081f7d1ef7c2023e22b822c85a5dad3f66603546ebb6168de2060991afa4023d7859035afb4d8b649cdc22167c677afaf8759c4b0beac747870009412314a966fc5146382dac6e93b4e70f8e2ce80f424c62051d0d71df33bd6967cfe134a33daf12f1586aec918582b41ab6a471db76b729cea861fdc09be29a1a658b4bfc03a2ba29138528e94c556787d67c9fd2937df0221ed6e234e36811d7691cfdb44c20db8fcaa5ce1a251662566ba5c4503522496e54592e8b00a71f39357bdbc25da3484e4aae72014cc20b262e4fa83795ece94f9930ed329ae5a0b202459c3f9fe559edac34255f8fbbf378e2f70edf103b8e9608d0f77aa71a86a0adab68589f00c2fda64c9dcd5a6e93a51cb357d9d892ff494daa8f5e7d667659da11c66d7cdb35e5205672b3ea9d1a85d0f9d73453f3ec648bbe739726859fe089052e04515ba3097f4a79b70ce08000a51e73dd751d3d54c85ae50b733c59d8cb3082eb84096da6211aa0ea5496c7144326343ab35208af7ac619bb52e724b4e57cbf089c82c64e84bdd4fbd6e981fcd13cd8a338390fa59230d734d6893ea42d8857eb446609ccdac1552de906da4e2d1c08e2086c9728d648ea899a52ed9b55ddbb63b92ebd66215a20e75afe03c96f5e635814834466378d5c955865bf5f42debbe9726766260ecd978c15ee8860b108d234d86e3f4b706d3630b875979074630e6a6d822e859009b8135cf15696807cbf279c7e92628eb61fdf7d8fe483a839bedaf85f67d6f2d377672a23c4323b00e09620f73503903d6e41945044f95803283c26a41bb67a25977d67cde86383446ccf1b777622d3961797016aa0a1f95371ef30d9353c06266008fe7e933b87a0cac92cf8024b4637419abe1f868d2856e5673db4f55f5aee6626781e45ed344b5254b42c464b838b921caae067ba2f27c64aa576c8b59b75eabc651b6020a831a68f84319fe14801fca106f48ae538a59f9daf6c8a959e1002657be47fccb022e5628dd2995925076b86ed1588232d729c72c94669153c5887c2f257f546ae1cee91f13caa894304d603b51e0c7561676a21ac95e0e93981704139b56bca0192e09847dd77290bc7d26ac345fd0c6fa31f85ad8140e39232d0858630c47a453bcea2f748c474c8f7986030be89503917871c8ac04b5aaa40fc28843d046d46f49f160f5f929c1735f76b185c3f1ef85b0c11535241cbb8a495f2227ffe2b0751a81664e38fca05c7c5ead503d420e6ad1c464e650d079dbba45bdb108ee5499b80574444d5e787e274dc434ed071946124f6508b624706784d3c2abbd0870492aeab23e90c07cb7190ad075d54abeee69b473685e8c2199c99277e48e550545b2748984ecb2be571ffbf3ff230941de53b21ba202c5abaefa0b27e8d576aec9082728cb4233b335419ef49dbe57f83886141cf25515c42b383417133502b2321b892b058a2b20d81fc5fa54df0bacd7442ee275a6336d0f2dab66b9c6f1028d3c60ff686d5e781ab598d20ce2f8bf214640fe76cf952500d8b380d6b6109e36b55594b77b4b035b5ca0387382bb46e608223d4ff8c0fbfb6e0b4c479c4b60500b8673db0dfb264996e82011705d18c9485276b3e06c5eb2b95594e9aa0c35f3ca63e6024f0a1df65f570cbeedfa856322f3099981b09ff72670f56dd95aeff5864d6b1d59e15167b81e25aee8e2060ecbc76f7e6e1163f7c062e9f7e4f2f4b7a3786104b605674c85100c078b876abbfd76a66e5692e5edc58b6d045976ef53e8293db0b3e829f6b30488317956b2152876856e528077211d9ebdd524fd0471382ace440278e0642fb62ab9cd81ca8e5b5bc861d554e9465abdb770b984aa20b7997c355babc8af0800ce153b243f8721c937c6e4b163c816435bb3ab66dd17856896e89f60c23ec69480da8925bd37bdfad5fbb655520c3fbb670946ee5cf0e218547d84ced70ee44a3007888492de88a03a6ad7420917fbee41ef6470edbb96128538391c6a1b7dd4042c9fb3249d2302a88e40bf4d0cd22e04d65944170304ac2a7e948adf6943d541de35fd1a2506ce3b9fdd0c668c64b5011335ba51c4662d945f1422e00099a09a7265b218722d83c3b39ba0869a29ea8cf2e5e9f036469263298fd1e1dee035ac41846006e2a40981cc0dd91ad785dce6088946ef1c6a1bc12ac04cc779e8c6efcc3c4cab7c3389265766fe74663ec2b371bfa585739db1f68ddb131de422974a5136148bd42c2223d69c8a61650d0d69e2b868c4d8bd37bf700730d7289e6630371f82c4aba7669c9d947210af7e86869eb65a927475e47239417f44dc73510a3f05815d6197f722ef086086bd1a77e458fdd8cbf5aeaa1a7ba54ce149e83968dbd6f935e09e6b528c010cf72ecd1dd4ea70f20ab969a207aacc95f3c25cba166d3442d44f219ad1c29e0f7295c053c203354b24787b51c97d5691e6c624d3dcd260a8ae075fff625f4f059c9d05d8001aaf490d674808d9c3e98a9d707ddd80f8bc619847092b9034b815a08ecb2f80b05ccade487ff00fda5d8b3255dc55e8536a5f56f22433aac68a970890046d8ad2444f9987103a2aa9bee1de9ab4d70b418b84d37c19c618d15d821229b334221791920fb539bf844a1ab87e179b6f1a4c2682e9d15a5060091f0fa10e3c5f9db353e350c67a703824e88ca4c8e616390f6cc5cda8dd425b47268ea34867f62cc3a621351f3732b26e04fbb5269b567f11c176c50a65d191fec1b445c789cbbed5d35d04c2d2eb214d13a72ab376d5dbc5bd23655f56946281429e624499bfe295d95e419259bada0325fa7982052d828ae3e6b830622821d6d3407fe1932a6b17d8fb11c32f368bdf1ed0bdfc0140716ee8bce441480dfb059cbbaae1d03245b4d11db75f401d65a4d95930c4c40797ca7620bad1a8639dc4c3fa880a62b4f467e3f77024d7b33dc99077c81094272a4a1f3c7f7ae7919da9c1b12270f017dc658dc305b21072741f0b831fac2fb15d27342dc27a93ee44d72594b9d5e26f87bedd62f4570098344740364944cab18555a33f18ba739c031bcdbc680ea17d9460e4982a5d6c098a7fd165dee77427a30c3c70ca97687048a483d0b9c56cbc1414203adc52fdc86baf260d4d4a3ff800baa0aa548f3e178616c04fbdd04269aee9a27c3a1e6ee78b998cf9c966ac60f209265319aae74a4276c0708ac3319501a1ae24a1c62341c707f147155f5e3d83d845266624c95e40ba4d5d3cb0d52cd00834a47cfd3dd0c56e7a6a9216402af4728bda76a14e96c6b59c10a8c45419ce8fdb9170ead6d91112a92819d258feefb083f3ef08d315c8447ff3f33c4ce6edc5ab84a5c074cf7210ea0bbe7076dd0180197f6cb15486baca3863951db8f45adc85d081a6fe86ff1c52cbea0576472dd8fe80ab50261861681fa25504691a148d7e87a8c6a96198e26d864137cc919d8a7d0cf3600f224bd5ec0e98ad21d3b110901ce1385b36e6ac842e128f3e5248dcff3834fe6d0013471afecd9bc342a42ae535104950fc2dcc000437fd4c74e2a87f88eb10899dac2121141ea5d695b53b07f21b1ebb2a9a08fa85452703fd77dce9744d8397b1112101b2e35d9e577209fbe390c47322646d331d167d3aabf750f9d80ea1f19d6f713c9eab356da0ec4544492f72830b44e75f4d67d873e0df8144e94071bb6889417a205398cb16f15b157924f8637813390f6b855434ed50e12d855d3383b529d0340c543c817ba638a43d23ee5d95b1acf4110be79169461ec8b1a06c38e3b02db5916f0cba888c1ad7965b3ddf0f6b71098f603c9213e110f5d2211fcfc322db32398ac4561d575c770b800570523df4311771107c9348a0bb28bdecc5d16abaafca7e9d03324df9f64e9fa3dbbb2b6d8106672e78b896ff0318295e682cffd87f8183ff48db05882c14ec4a11298a64568588cb2104a83e9d625ac727f6133725d6c892627aec543b3ebbfe55eb54f56904821fd410987304956191d852a7d0af2074d0a7b57c75b3e8c547acd69214a86a1ff36660e408758ad24105b7ffd62bed5cbe987a460317efd2034c80186e0f503adb8184e1642d33f1eedaa6a027d0a5e9a26756d271250c40ccbae2dc91452cdd9ab17b9ef899709dddc1586ee79b1f9e6acace0a312fb147bdb85a19ecac32775f5e8bc180f24194c956e43a03d9c946598dd16cd551e82717bc58bd337f61d9f96a90d1476bff8d693b630de1cdec14afb595e73e9619cf9ea0d54fa7517bd402c45d3226bbec4994049d9bbd3f38191745fefc00a012ff53c74158cc42dddb0168d044b6864c962fc7b720d75d254f097ac392a94b2be148cfeb9a9c799cb2fc5ea8cb0d1f0df14d698deff1cf086d51f6ff627a68fed779a5ba3d8e018f9c513fa06071e3fc26fa037bfc92d109d6b0046f77b690fd479eb78248f2703a8f0b9e44cb52095dc01cbc59df30152e8d8bd22f5c7c12027c8fea34ee877a85346c684c41320ccff1457a53eceed7bf7e64c7097547f85eaa522c8314e9c8b5f549142b81f56278680106fb4704acc02d59514403f9f069eb361e02af4de43a70fa36f7c78b8a446c82f7cf7300ea476fbc13ddcd790585d9c91af0e38d2f2f993ca17c9dfad480ca0c0715aad3a2f0160eaf42824a1928e9c19b33999b1437144bcd44c54ba5705928c5e7272afd7f636ec309681c2f697c1d939c933a7dfe0df33fac0c36c838c943f997ae402b309f06403cb4fcdd8cdeffdf3be74d78bbffc3529b1c1cca4ed8acf0646723de3b50e0132f8607075e4373cb4444647ffde7b24f51ff244027064ca07053f613c8efa10bf959d1b4de505b08b2c9970fa2df4cb2c6321fe69021414392c384f67469f932160b4e6487c317971fce42cd7ce2856187474a9198157f5222a8e3433a0a3a32063153f837eb9cb380edcd9254a3f5ff9f3b0662e95caf3076664043440ea7964dcad7c2a0db3f0d8b0b6a808f1b01f8c1994b0b5f2ef5d318ceab9f63693eef8b290ca7f7ef29d458549cca0241fc607b7524a9ecad51620d9d025bc85ace9ceac257056253bfd46626d4d07c38c8fda41a7a396e8e472a933c04d3f9bf10ef0536769c4cc8f16210ebf6ab573e589ded721a3792ed871f132950082464bf3018fb2e207a752fb7f270487508e4259cc5ca7f193c32a28d45fb69aab962fd4bec61ea3557eab3ebb47704efc3512b1d8cfb27793ec15bc5103eaca5e8957309e11a7035d0e7e686333db48c541f872f5cd42ce78a6657406a371d21bcdc698893d63e0b10fa21daeb5017a7dcfed9efb67e4deb51516a8cf9f74d6d9b3ba63c08a2c941bbe03de3dac1b2d697b77db724b29534a294e0899087e08eb3d6ba49f1215d205718912686a7351b72e03d1aa55ab70b700c53c3ec33df4bb533e0299a7671808de1efa4b90875bb5bb7e3de3fc84daee5cf3a2f8c6b9098b827dea6f29d48e14f6703752704e53ce5b65a1088a5bd4feeb9abdf00ef7e0811ad97f1de01be73acea23dff4bdb2c7abb713d7cbed9e11b6efe4635dea9db318831c6e745f54c8ced826da27a46996767f4703de3a8cd386e833e984fb78331e6e1a9fe578ef67278153e535e790679dd41df12b5438c25215b94efdaa853fd972852a48e442229648ed4d18764b2a8a30ffd1435756a33f668aaea3206ae16ea22926c3796ae0237da692fa7940327da8985e8178b6c0d08d1684444630ea8079c0b0fae8ea43d500f3817d1f3e01a7a51e73d8ea43d100fb8efab735d49a8e32a2a03276a2b70dfb7420f6b887e4ad408457ba159a4bd100d3dd79ed30f666e2c215acae1220f8dacf69c772e9ead2112755c2f2cfc8b108d4622d1c56a95d1fb834622d148b4001d2ef45f64556fd5ad21fa197338d28b3e226995d0fbc79ead31eab8c624a1e7debf0811d7c9cf58a335b65a857bff6dbb11fad1675ce7c918d16fcfe588d4c523edf9873a0e701dd105b427eab6d2b8dad06bb1335a3ba30adce7b135c58fba35f4d9a635d44abaaf2bf7f188fb96742fe2aa55a06815d2fbc71b47c178ff98d32a8b619f17ef7ffd80137d6c6d8dae7e72522a71fd632fd6b5d32aa2d167a26e6b49077178de4a70a039bc2afa4cd471351b69a1d80a95deaba1df46c5d067cedcee250f6b09fd94a8a417755c6174cee327cffc5f74fde385f642f4a14ee4456ac8756ae8575ad47dceaa213e5243216e55d18f8eb4c7ccaafca1eee396882937da8d459479edf9e720aaa1d487d5d08752a1bf3696de42b1e5a8fe21558eda94ff9823fa95987e2f8aad21ae4aa2bed39e3fc8089ce849efad5629f97c72eaf6da4eff70d4c5f293d7121a5b170b04fa116555ff9e0227a22ea1173d897ea11ffd175b37422ffa2cd42580ebee8c514824eae08fba5127ea42a1efef2d01906e7ba19f2bde6d0d752cb3db01b7ee2bd1baafa47edeed801f6f7db148f59ffda3fa5fb1b523d6f8285b63abff02fc4b57aba46120f162ab5cedb0087e493f5d7fec7823c2e4134ba5e636c245659861c1892c4a5851a0df94a931d5baf8fd89d4147f52eda3a5544f09c2460b12393ad063c6899a276e8aac405d8f2119f6e1cf37fd6895bf1581d25ec9d66de58de3e1bee7760cc11b8b26b3ef8d0825aafc7c46bfaef23f1445624106aed704d81917d5c15e7bdedece11045f763fa4ec0cd902ee513c6e6140b0821584ec0733d8699a8cfb12b5af2feb6236163f01f7e01fe336c410f0fd23dc7c03436c857488ad4ed708ccfc990cdc1b18216c085b6699d270d46c5a6a0fa509eea341c39bb2c625ebbe3a5538d1c2dcc75ed77f2bc517448df4fbc1872bc507f7313b1a57f78316042703ee5b1d1c3e2744c11f2a842bc50f0b7df08e6bf9200a3a51a0a93a505481486d56bc3eeec7472a3ffc6dd6a9fc9fb61052edd2606b9a4cabc0ab5b768269da6b7eef180813dcc73995ffe39acacf39ce36cc36959f6b5a4508136995928713c298466dca35dfcd4bed352b3211850e84ecaea8eee650f77951bbfcb051f3e1764d9685a4163838383838383838383838383838383838383838383838383838383838383838520ba9050e0e0e0e0e0e0e0e0e0e0e0e0e0e0e4e5cb8bd4bbfdddd081b854b0c9fe194a5a6eecdcc2bd9b7f0cf64ddf76a6b5eaa9bdaf7b606739e756f476cfc8f57d53f5655874522ec7677d8edce6822bd86aceba27c1c171cbf032e23b09f4a60ef28252eac33b54c8c5e9da9453ef6f231babe7e6aba7ea2d34fcc71330ab21d9aaac65f944fead4ae90074cc3345c33a7974affd0e916813d62fdf4b026883ef57f13fec7fd7e5e0da2519fbfe827237b493f94fad1f8483f93fad1a8dddf744d32ba7efa503e5446fd368bda9fe918c1291184bae8a28b2e86e0bae388483f8f7e25a83a02daf8a9ff87a9657bd083e80bdca8f7f8a91f2605933a628f581c9dd64d3fada34c2dda671a5d530be8359894a3b2873f1da5bd465fb407d1de5a409fd197ec4174fd04e18f98daffde538de0d4e7777300a736eaf96957fcb4af75a696391f269575a616ec3fffa12f9fc71e26957db21ea9aafd5fa48935b5618e9fdef3d3ee7b8fa33cc74ffd73725ca9f45f533fa6c97114e45ca794e339abda9f93e3a84de970ac1c58e3a72470df862a788ff7d47e5884e3cf78971de4a61bf2f9a9692b4c752570cfd5bde1228afa713175a3b80192fe880de1fa46a5aa6d85ce0f54524736080c4cd881144ca831022f1c708e62157b1584c000d4bda902096a56f7860a34defc06f8d07719bbe17677392774b233f661ead6dd00b0838949871c4a30707851421a89b81068d3b20f362f19a1f7c63b2388ff4a3bdd2518a6bb77dcdd5bfaedc77df85f8cfb71df25ba3b6c6f9144216410d3de56b8104208217c28639491210f94524a39a780f3e3f7bffc2f46fed8007e97e849b8667fb92af13fe6fed91e8f2e38bf3f8490e91e01f20c4f8edbfea35121012a3c55d8553873d81ad7af0461450915818d7e27f52b952a76d11c3bc31f0ee1f8bf5d41086119aa7f9430880a79069ac1a77429c824196f2cd90ec131468e4cb7e9742cf46751db8a80111ac13f4884bf8c31ba40c88cc306979cd6e1cc714ebe628c120b6845c78e31c2967072bdbc735e61a093eb929ffc4b9c0a8e17ce667e8394394a553edc28a50c026509062172259123f3c8b629a763638cf4e3016b8c61e0627cd82a33fe56086384d1b1e0384618210f48040260851506d92e71bd6c820d68aafcc8913fca182347c9cc45ae55e417ffe746c4f5f2afed46fcf8d9fc6b639972b64ba41cec31702525178e8910aaa3eb005202d7dfce3f32970f3bc91d476666cac5527b015c897bae0a59ae37759fe94f9ee93fabf2f05f335064710ff74416f744968e0e7cee813a702646057f88afec5004dce3285802a88235e81918838e812b68150c41cb99f8854541158c8958c099a805fc1193481f9f8ca95206fe0755a556f94ebed45ed4e80905dd80539d745c6746241d9d93139d93939393131daa7385134affa4eb48318b56ab4024279d43d15e7cdaf94d7b913ed33fe95cbaff52c9cd1654a492af0bc07f39c410c07f58e5ff62dd872a4709803aab540a00a78a415940f811ee21fed7d5d743796739eada130acac71e94ffbc15aa28287e6488af3c781bd68bdfc5fa1106827b62d0b382569780a74636ec8cf89f77a14620900804c1a2b8c74ff155268861418d3dc3447da2a2f0f01f14c2c3a3fcc73d25d90ba8822ad843bb2800fe8bacab54d2d17f3772f96895eee35f3f1c15e3617c64b5caf590c775fe29fd66fc189d43d1a7f8289de7b4179f87ce8b8c34ce59a512df7196a3982723c59dc85335fab052fa29514fbace6dda2bc9c4b417ffeaba477bb1e7e937e3635b02ae7a425d8af62254b5caf591e5a7f8a33ff96fd651c993de59f1847e339a3c00ba8b46d69bfc1759911559b2878c6915938f2f6572c8e17773803d600c2bfee4fc23cb8442557b11f41f54452c78302cb25ae5f3f1e34ee4c1e69b4c3bb8c43d353e8ceed370e8bed28b6ec755bfdf01bf92fa4556c908aa6afce717518e46e6405c09d6c10e5e37df433c71248b233b75572b1e0664dc5ac86876ee822bd5d92a5df9485dfed9947d55f76db4e7ee0e27079de0b25dd8eca00fa6c29db1ddee1ebba875d1a196c4e6284529af6b72185fa00fa66aeb1036471016846c1b5e4b136938128934912656011d0891d5138d8a33445a059b44be920824d2c41f0ea455aeda11489ffa85b0301a69dca6bda6f127224da4893491c689449acf89d4c41dd4fe0824d2449a0824d6c04b755191b519382c0b3a513461849750858c031c3fe45028f870df247f7bc4cc54cc4c5df3b18e0434525734498ae3faad2d5c6a4a497584765eddfaa9fb6243234c8142f1fe7e26bb9899921fbb9656a596a8cb0158e39b6e304d8db0854bc92f46aa2354210d2261585565b77e6230648b02e533e5655e5e66e9ebeeeeecdcf92fb6fbcc7fed80bb7ebb1cdc5327849a067874e0a555f8f759d5a8cf2fc7a34fcd030e2ed6f1981a00c269edb5e61838d6e163d58b06ba0eb4c7a3bdfe2170dccf8a42c8fce1e5ee94e17fee8bb205b7ef5370fbecf4c2a458972b07e4144e0e16077f73944008739454a6820b443c0341e2e7d89d1a64df0b33756fba30c3aa7be3051a964a54fbab70a20a2295b708b0045a955aaa827f0477918a5405a9e9084ec1e714a42f438cd894124bec4e0a3e3fe42318c74ee534648bf2b1f8af5397dd72c07d1ca795b84b1f7f26d09b3782ba9320a3ee0d153495e3a1a20602a87b83859eaad5bdc1c211362401814020100804e222c48946516b4ffb51c7b5a7c1f6b4adfb600d51d0a68d52703df37ffae3e789b894c8186587e4c1d533d8f967dd29fd2b3e272c9538aee3dc19f1611bb8ebb96a17d81a577f3c2995386eb14f69154e143fe33aadbded451dd7de06dbdb403f5bee0cf61d5c43f3c3ea46354d66177f5f2eadc3f51f733fc7bf3a18791d24bf99170cdc87bb4f73738380dba1af6c0daf7e61179cd8bcba739951c32636e763df0f27b6c240708d715e135e1f4c951b8bb8801042082184d07b4f060d94a9793945a8a802e503b17274562c9e558ea34aa59c524e29a7946352fa41064aa934a71199d50ae302ebd1e19242a984f5f0e41c59b172b01e276e3e3b31427432243fa0d0583d6a8ab4403eb6463b81fb4a2b1b1b1b1b1bac27a6e6e4ac725639ab9c55cecac65170b5b259d9ac6c5636475648b2d859ad38ae84f5e4e4144192a3c33505eec3726a633dadf2816cbe124fceea082ba71404123d6a8a70cb874d1f5101c9f12c66b6c6135ba357abd56ab5c2b8c0daa0c292603d46b09ed5ea488f558ca34a2b47613da59a124de9476906eb59613d2bac6785f5acb09e9549e987124ae917ebc17a5a05088885c310d82accd06f6ab3da6d5871b1e046e0d859bed32866b9b3b4fa392b67ea306bb29156b9a691234ea74e4f81634aa14e9411ce30645b002e7e314697f81046f992bac478c52bc6ef08b93bf237851fb963d9e908d56d67f0c7eeeb4c44f4c78fd445f2c5cc33bafba48bec973c5dc0eddc1a5da18cd2635f4296351e3da91b9148bfd223128934129148a2d188442291482412e947221824926844229148a4116934228d48224d6e43447f128944223dac24128944229144a4d1c8bf089168341a8948a39168441a9146a46efea8e447249188f42fdebf08d28b1722d10bd28b3e7b2112bd10959044a4118944fa4c23914824d2f3c642720d76a40f755fd7d0c7553cd22aa3ae149ffb95ce5c0b75301e76dcef46fa952e29897018bd8031eab6be80f1bcbd8031fa6c242291482212694422bd78585f94fca8e35ac281241a71c9e84b5e885ed0d86acf5f34a22ea41ba41f91442311fd340a5f348c28b2a5c013fb50ae5c29a174d010286b6c0d7781af2354e5c3ab0877d711413be078d5def276471b645b006e09d047286afcad487d568deb977e5bdc7efbec8a40c5bebb1dcd83ebf55176d767f2bf87533e6c807c173857e2d680ae4afa8ed5f8a14ffc39e7dcf75fe919a1ae737835d4a1ecb3d7fe03815a5cf6a0df770165204f0241f46208066edbb6997f6b788d32db87de20e0b86b2130454eb5a95bb76241480476358123ed8180705370f1bfaf2bad626a7f216cb4ca57ffa5c01358c69acc36cbb4ee6a60ff356c71bf33ae5ff1fe6c0900fd7cb8fd4a4b1770fb8f021bb42d00a67280ebe7b36b6783a6a675fd59f735f4791e0cfaeb65e702d211aad783ba8f8b883fe7c72efefc95c636aa83eb473352f9e3c74816cfed547f9446716a87eabfd22a7b6324a7fa0bd1284e456d65eb8f5d7c9456f9b09f2ed8c777195b03beff8cad71bd8ef9986f455c1f5f0a134851e35fd7ef76e3faf891035c25d566ab70e418ab93031f82a68d344ee36088540843448b2f1a7d5ed4b9681a0c91fe855c890ee94730fdd424bafe05aeffcbb13a0fe371f8fe92a35e7c7fa983d1e1d0715d0986c8c2c9414dc2885a63225b1f387fe9c292414ae0e67317f5bb1efbde583049bf79511d2efe37e47f9206f92c3104fe9018638c1f9d0619fc8ccb3e22c84151966dd9cb6cdbb29759c69ffe64d9e7977b17ecf3f97c324dd334ee3faf71bf35c451f89fcfe3d074b87cbe204b0c19a2fde7b74c4ab9659c652c7f2be84b9f6d12d45ba6759f4eeb4abaf89f0c7e3e9f4f0761a761b40408376b4a752e078e8398ea32ee3d73a99c0b9c94d84a9a8163a4d4643e6f901d6897d1a5e72855ffeb356f7f67f1470256f9beb2e14154bff921c5f3289f255649a5945f8ed2b5cd746735d886fbb2fb60490a285ba375002d815b9dfac110a95f8ed52989403ebf366117e937bdfb3ea0aaae510a9b7366c000e4a34148bf4faba0ff3c146d0dc8eab6b17c40bfd21fd08bba0faef40d8d7e5cb56f3ef7b0fb809e631808d183b0d06fbfd14c147f6e447ceab6fdf51908746d2c20102ded87b6078168fc70ddbacfaff8a77d3696c9cccf32e058867e30bc45186249452602f9d7aebca494bfbb527a53adbd8dcd5b64fc3ab414b87eed7b319620da73c710f6c6223f9fcf0fb1f5434dd9bb50501238d38dcfc7ffd0cdde1fa672f76995eb7e13a6ce2e87562fee5c83a7fe74533179ce79c19d9d13c49c6067e30ddc0a5c333333bba7f8c0d07d3033337312df0861844eab9889b33df8d2af60f2f1888e611f186cb7f5817b887fd1e51e30acfb52aa8c3146895d7c75f3bf59d23847a9907a6c4106179ba9ad75b74ccff44ced9b9e29833639194da66a50683262c85aa67e3cae122c719bcc36b3a9609bd966ea76b3cd6c335b6450ab3452e013363644b0b12143361b353f2efee9835968b6caf28ecc22dba9d14405db3123b55ff64308a574e952f63b738d73b74708fd61e7105bd54f4cdd58206cd861abf6a0435e07b9bc22c7ee602bcc084605b6c2562dc8e0166414dcfe5e2234d0e8d0b0610544b8020b76c10b2c19c86031515243136728430f5c108426582ce041cfb44caba0677a2687262373829813c8c87cb0f20521dbc0f6e7ae9f68feae8bbbecd0bb79b7ce44f9104e18618c127e77feb03f76bf7c9be59f5a6b321f0c73c32766fc636d23c4f7241c6f163932775f4af539b15d9b3977e7daec730ff3630717ee43b6d98d0b532faeeb4960186ea290df9d9451ca1d1965f34e6d1ff192dd52ee5c97bce4755d72e792573c4194513aefb4e7b25b76618706394a4eb063042378081c04d1db796369f7d6fc8a31f2d67defa2e97ab6a9cc53573a934f5cde1bbbbbfb252fe9d23bf9170da7fe59dc58fcbb9b6de215635f9208dc437675f00b35ac266ad6dac55573bf2264faedede409031d1a1e7099083649e0becd69820e77c17d5e85bfd56b95eeea55196dc21aaae4a7fe7e03f7791f0c4f460a8cadb113ba5fa113052aa88a2089eea3ba14b10335ca182384d007f711dd4784910cb9e86ad25e3f770db8cfe4f9bf1c28fd2926ad52e2c346d8452470dfae98f610b8efab1018e3c3d40cfb64da56ca3ebb71d864100cc218e0cbe7e646843ffc6b23e2033556e8120ac218384e32b6dd88917e710ba5e5d8e68a5d0fbeb8bbcd15d06152601559733bdc352995607309c7dd809a6bde9e5d1a5c943e350bd3df01077f2ef4de5dc640bb3360904b67070060add9aaf153ac297dcb145b262828b185d20d31892d13131313cca4634bfee8eeee1a21518b456920269120902630e95a038eea2eb57aba914015eca19adcd6581393ff221726b165f29f94e1e1a316ddc796345f4c02824f9a4002913f6a944ef0606262d299989898c49ed88a487a0ba85a9dd832e18107ca6a95c6315b263b00e07118f18055b9504a6294cc9292bfe48c8162f2c138aed4ea1a24ad72d5d67c93ee3379f959067b683006aaa04ac6c819f923722165a40fa9923d6cd8d84e2e095597cac64c88135114cacd171fb96895095b97e4e16d0891713d624c4e442d64d444baa66b3a0bcee4e473781d503168604dab649b13354220706645d9e8645e73ceffff626bce496d0821290f7127ee0d90abc651281fbf3591f4742f3f46e73d2193931b1b42b490ae7154fff8d1351c921e93f64e78785879a09f12f5a29df3b497459f60fcb72d286cda7ba27f38aa6bbafe715147d23532b2a28c3bfc772b26d3a4b1b5c39f7c6cf9f8d12a3b38512a957eb7f4b03369ef8496008043a7b5430eaf4392adc7c4a4db6aeab6ea9043a7d5b45a1729fee883434747077533e79c73ce4be7a44f2468245a6869a147165a528b9b1a3fcb46accb515ffac862287560edaa8cfe6bd37fb2eea72ea8eea82e0e3ad47d66aedbe32801c4f8d297f0935e001def49b43b833fa91a8261e2c6523232d1f8b147aa648f8c7bae8b7b988beb61c73d57c997947c2c3d736445d6d6e01a9394c4e87a0c89f159a91b7db6a693d569a711c4deac149bb345fc8794f6302c0884dee7c3c305997afde8334d8b3107ee5cb308d48146e00a1e81ac9923c5cdb6c1eb1a5d3f8297d49887c73bc2451dbde9e5e57263b946ddaee984762418a3db35c0177d54d80509c0c7e8623e1580cfa416dcb737cc2bcc1754197dfc68c5aa98fee4bf8805fd2f96a1fb2f6a41fa2faaa1c698a4a4a45252faf82393aaf29fd0188f14672a7f00ba8b724b4bbec474db63109f3c07601dbd8e501d99fedb8b3f7a13e500d713fac1bfa88cf6bc1145692f6a5a4403976d1a43b86d2c90e1c30af969f771a5f0daee773bae76bfdb3decb8f6e2d42e11007e6fb8e0c4c73dcefa98e79b25aed32a74a569b715005d497bff1df3704f89d6702a91d7bbded4c1f5f84fbab91e3fedb4f5f8bb8e5b8f9fd495acc71fa32b495ef93e6a0c1243d50d55500555188641132ac2933779de5876f867204e3e3edd1afcf1795815fa71d6175c7d51aa2f7ef7c5d3936eb707f85717802e46074f3a10124c1de402b7930b42304164a567caa78012ca20c0f777223e005d52580df137d2b79938d121dc485d9a0a1cbff7ee429a837bd4c06708d2bbddbbbb1d6c0f42da4050be097fbbee3b0f030169b4611fc3d6601a8fb033fcbd08e7a9a952e5dcd060c5c420e1ef282ca667b0ae91887114b79ce5ac5289e3660df771ab5b8ec21ee6744fa7b016ccf93cac933d7ef2bf5a8eba54df5fadeb6ae9f0459bea525c578d17e1a20d037169b13df8fbc7236c8d2b0d3bc3df5b3be30c9cec71947b89f9a3eca90ea93fb77c9950bfaf49c24fdca9c99a4f704ffc3ee6854c3d89b39b6ec0aaaacc5aabec8043034f850f51c0f57f5fdae8eeb03339a0fd254dc24fcc3da9e69e3a13e5bce4e7023dc698853967838260d85c438cf4ba8848c018a2112f82f2f94d128eba58fca3f26bc051dcf694549579a632dd229c8908ea02dbdb9b56f13f5277c0ba03caeab46bb43027c73f6affd5752a935a128ef214ffe8a7a1a9a92152bbdda67667b2658382ccd4a42f4ba42eea337eeaa951004c7529fd26de60593d76c650bf4f523f1958d48fc6156ea8f55b2978eab73a3c24a8dfaeaa17c006333c4d38210a417090f22bae40c3b55d5491831d2ce10636986295f24f71d40198800522ac1854710234a4fc6d380a035ac0420a6f48c285234a48f9b2bcba375744e10a9b19c44b07c9dd94827b17f89221847ec50e42b83b6085bde3402022447b372c242a30e3440e1d2e92701f11a8693972fdfcfd6e729e05676301add23488f63c8fc60f8f42840dcdc58f36703426b03fb6c6d69beeee1b1a2b6ea3bdb99a70065e819bb9bd3b8661b80e23f4aacd6cc1bbfb2bb73663c58523d2f5121a2364fcdd9f57bb467e538cb0bbbbbbbbbbfb23e4feeeefee8d8577066f3788e9a2b41744fe3b4a528e4d7e6aac0422a8960e7286b8f5ba2e79c98e736a4840798e2b95febddd1b1b2b7e7226384f46ab343569cf4be00c14c29cb01d093b9891e1a13893fef5187edc97cc5f0ed8cd3599fff0ae83a38555ad22338108788fea70e587105e04879ffc71f480d368e84cc782fb68300d723595d19ea32e5af28a5242c3868c48ddcfba8705b4b7fd485460773fc7ee27b1acaacb3eea368e56d99a96dd2375998820d7af38eaa2291d447bfb5346abbc1545a85fa96ea86e143760435deac244ae7632c8c80cb770a2eecd16327500756fd4e0853ab52d5a5be8d40c6ad716b518b3eb62c056783160ab8c733edc1a2ba194df3f3bfee49a3157d38daefd1cb0004cddbad20d907fdd8851635d148732d916375b0881f0e17ff167f4818b91b3abc37ea2d4ebf3b18b117f88f86909e0ffe05f0fb704347cf9572402a54a94ca907a113817fea6afb090e131c2d35a09a9020a4ea4cacf4c38b2354dfa6282ff9f7f99afbd119b2abd70fe30a94ff1d357f9da636fc4a630faa2a57c5ce8bf9498da94f6d2041f879fe40e233665437e466152ffd1a97252534bf6f333aaba3efb498764209a9a9a2430fff32dd86fdfbfd197214d5be67fe80ba7e6b737919a6ee0b8a809c7f5a696ec9f53beb1c0efcd019bca5e87671dc7f8493e2cc2394d95ff4ee32813fccc6b1cf579d01fb17d4695c89418d292fd067a25b6ff5053ffa63ebf2950974407b38eb70eb427b19fda87be7b64bf7d8fcf83de043ff43029add3b487af85e80b8832113fc9fffccb46d74f59d6d198e06b0f93aa31416a7240f69f6fc9fef33204d296cf6bf465a6caff5056f949fecbfa69539f0ef84932e576067cd1ce808fcdfd6f7b9c485d1e96c060b8b12e643b74701755d5cf57176f50d5ab0aeef3a69fb606a8c64f597114f632ce6f3a7538ed4d4e4d4e5f86b8a4dff2386dc990f0533f679d691fa463da076df62d9fcf7e3fcb1e445f52fc14ff65fdf4a131f3769476c67f3e5b3fb14633fae94c2dd97f3ea39f4eee97e6c7616b44a72e9ae2a79d30dd71c88c43f837fbac9f64cfd4f9d75758647ed699e4c3a4bac74d92e2e8d13c7e9a0f9352d5f91f1c709bfa7cc94ff387b4f4632dd87fe8cbf4d37cac69f3fca6e6836eb84d3535b560df8f7dffa64c927aedcddf5a43a83802126654aa548a9fe6e7b5410bf5e3eaa86e1438a041fd9aa77bfc349ba7ce38e367c8aecf3ab5af4dceb96d2cc551f3d371ead3615d3cc26d35e1e8d1cf2faa5c4df15fb4ff7ca42dd84be62c387af4f8bc466f6a0fec33bae2a7ebb1eed3a598e2670f937ab9fe434d919a1cf079ec5b3e8f7d7c8cbe0c89b405fb0ca39c9fae7fb9feda14c68263fae94ab910386e67c417ed8c38fd143fc270fb150c845499bc967d543effcdc7b2d969f3b5a9b1c6f49bda639af69af69fee83997163d11ac03f7fa5b1cfb40ed60cbbb0bfb05fe95ded319a5d0f7b63b976bb312bd09e34e1987e928fa33df95b9d08970445a23df9d10a5cffb7ac6d4517ec9752b7a555b4f5fab93df5afe7a8943df5afacdb58008e56991b3bb85edfd44f0395218454c74b6538866cc73e8f59f9a6c6e7ce44c4fef55dbdebca302c3bd1a8e9a7c8406a2cf929fe9c1c575a957655dad5ae56c6671a4731903ec54742c8e46689fb92f7295efd4a5f4afd4afca3c6ff68d4af5463c9bd141a3711f05374221cdb3091f6a215b8c837918acd22090b8ca40008415e502306213c21c60a16d44f136086b821890c7c9821045604b1220d3135caa4a21544b874a87bc363534b756fc2d0831e3b4c10c21590482c3026a0010d2128e121020f0d2aa9ee0d0f0a9ae005261c108434b05c5005153cc105613002c6bf25beffbed397214b5bfc217d81ffe20f2393390afbfd4c467bfe5eddd4dc54b62e2a69cf247f9b208323159a244d40139ad0a9f15784e0a2fa6be0a5517e7363c54ef594239efab84e7dcbaa3da04aa67ecbd36363a9542a556ac8de884148fd1689104d00e984f8014527c48f9bf6b6d268951f5a65c150fd0bf50ba27a132bcd29ac9b5d07b928e727f7d46e26ed39abbd9d81ed53641cffd7ef51a67df89be2b7e128d3529303e2cb3fc21f5225e0fb4baac49016f82e5f09ff484dfb9b8abfa919bb1aeeb7ba376f78426dfa7151e0a005157a77a7209b0f43249eeca8c48cd675492d19a211110000008315002028100a078422b1603c0f967e14800c8ba24e624c1688a3208751180431c618638c210001030c01326434330a002cdca3028ca454a5406ce9777760ab5ebedc30810a561a165ce384685c5fb13399262e87c91ca87e3c2c7df2f613344a82966d26bf6eebae4dfafbb736ad045abb960f1aa6197139419ab9999a0706bc0cdff94b70791574bbf614e759d1043f31885e58be9526becdcddce70d9aa767d1be9eb2fc3a1fb893db19b0cdcecc9ed6d38bfb1bf3eaa1f713d08693d69952dee28cd202efa4a9792c32b8e0b20bec960426c3d2a29fbfed7c59adb411e2a42e2c1ef3f1724b596d7fd3074623e739f4eff5da143e890c16d54f899b753c80036caa52e2a620dbc9349ea0223e7236ea603f5ff3185b737d5009410972a2bcd13b0215e4a4596c6acb628b23c3b10526c8644690190b2fe00b83f62d4a99d3d8c36e06b8bebfae572fae066eed786d3c27cd63ae68353bbc57e8aa8befb95d73d984aba37a6c31dc19ca94fb014704e6f774539cba653821427ea2d4ccc13ecafcc6f85e03c254c514612714499bf58b276e0d90a0e55c9db8329151af5b7c7b31959ed5f418c24daa8331ee2926abd20a43a424e87a65aeb1e13dd231d8d92489e1707723448007c2d2649d231f0cc16f84faa4bbf1a9c207b0ca50daf22a805527128685489e8709b9094f56e01b354514b6550f361c81d64b21fe2094bce6c83c7c4b21ee8726b909dc8d23c4281f191da64b04aeaee4b504ca5704b3fb5aeec214cae2d2e1bd1811942895ebcf9ec8a354fbf747efe81679abf85889c7200bb3505e636082aa8a6f773a1ff661c30c52b8db9dd9c9da991342db7a0eb2fb0ec9ae7ce96ef84cccf5ed65e51f15b2cccaa099ac801891e41520dc2dd65e7971aee3a40358607260dd8c0c8be7bf13e48743ead76c863d1d62cd3ce4c0064ddd31281874361ff48f880eda869fc439206ef314f578cd215620e9319ec85e84bd6c8e6d2437cc82f1702b16a1ae26a0dc4efcac66b66a475970412a7e144d5a7a632f7006bea8ee92611c19024634fc55214a1ebae2b21446fed34c9c908c2a23493150f675a73b31250af0a170e1225f4329a0f31bda78bf37fdd31bf5f475bfcae406970529f7c838c7692d9e16401f526627b5f6f84ab0c189aa3611d31fb0e61d4039171a0661cdd77489e31396f973b59f75f6e18699af11e573eb2d0d243d020d7c7b2256a3cbd94212429d96535018372bf65a1c423dde625de5e6f8d9ba483ef5f83b46a1ed9569e3f4112ccb3c56740e2cb388640027a44de504a34c8ca71786d47d6ab66450c669ba7952a2d503b18389704b90a51dee7b3cdea358f4d0597dc04f980be9389abaa4c5c7923c9e90770b918ace7df80020c5151caaa7d7add720a27f3647cb6ad9aa81bde715a49e2a85e80f146f364331f9818ea4e914fbc8d073d1bf2bbc11dcfb10f20f82438425cdfb07e4b7ea704967d1609ae7a63ae5df9ad1a0a6246f8c133b9d984016ef997d62b54841558889e9eacf87c1bc3bdc256045ca3288091363b3dd7b299ba3427bf1a21f3a7806724c2ebbd4206d40b7146d0463c11b481a1a629a8e968ca89a857ab055564c29160bd275623db0b72932c45c25c5eb0eb4b29800a97333d8b00061addd613a0a35b391973a3c2d27de2e72688cc260a4313e4c2f62293e5b6bdbf27dbffb960918c9d4248dbc234c108187c0c1c32e157ef6268ecf068f74493c0d7d30b1eec33b0a1448a75958b9765ed6ff156fdd8cd604ec06f2c00b6ec1f23cc7f2aef524c13ca3c9a69f9c0ed1a39137d91501163c703c99687dec070ae04fcc9f6df92a5f760a60a3754610afc559d094600b0b9027888e8067a98e8767a00d4a39726321d8f30482f7e5cf32a26cc3d0648e89a8ee7f30c4a5ef0355084ee724a1883611408d35daebd733a10b4a4ae21c47e5f8d1870e36968fa06cf128f674aaa3b3197991b38ffe840b5430e898d74170992b4bda4892288c4b2ccc10d10a411b56887e207d686902dfdfdcd0b84bf40fcf82df179d106cec0decb32f4816d2403b5848c6d99d1dca45ce35ecd505867e8ae9ac62d2ebfcdce70e9b4b9f3f8e631347759135a442eac3770056da4c2cb3a595a2ab81e8a44f6fbf5179c6fbe24d35dcb729c2714fd704caa8efab69c2a782d9a56287e7994b62fddf90b066ca4f81b722c493f9d2cf647ca0c9e364c601c7afe882bc3deb2b7841d51a62d12f8574a828038567fe2bd4e3c970d7804b270383960eed445a5191cce09c421612c685c3b2988803c368c795a2590d9c5541f4c3299ab5d5aa3123835c0117ee374121dca8cac9556eff0c77623abe68c9d5212e88eb252ba5f788568ca5f6658c53cf84820ea04ba88440ab841ca2d9e4a01ef1f8c4e305fd82ec6ad4c8dd4fe5ee938407eaf4943ec37a5d24eff552fdf65a1b7a072e3b8197e0935c8f14d8ba9d6ca077803e5d499ab0f39ff14174cd7a183d2da95092fc0cdd3e22b31870c3765340584dc5f0065a177cc75144b40591fc6fc0e0ea3de14b4c35e848df8d9cf9db41d7fbf3a4735117a554927f812a90ee6079cbdf49554825f9528160445dcd25e2abf5b1191bf0492785065ba2b6d25e8dd6dd060895f1ef536dbec55b7ab50585ea3f032ac4a0914608ba170a3d7715b33183a16c4f2985d40a7a911620fcad4a067d88b37a660d158f72aecf5d4f94619828af95b3ffde2d10ead3aa224ad5ee8f08613423e7fd6a7d7c0c3e232dffb7369f0ff24b7360b7279c8172c02a436e83c66443df3140e1095845f1e82740e388eaa851b7a8042fee8f46ce995119807b6adaa980b61753dc81f22b27f240153ed2b91a07bc14c32af15df46c034314b85685f3d18f86711a811074099f866a21ff40b496d36080a48cd38bf7146d9c2f1ab9381ca903e0c893052a13b21fd7e9adb2b09846472f992aba2ea28a017e060e64e4f9d4e006867ddd7303f1d93affddc03e441c77cc6165bb6ca0c1bf0f4e6730b96265178ae2a5c9a9921e8462fd6d54bf35108b8292b12a541216c4ac01aff24e6026fd8f8493be52acd4f46c81dfc0e914f1a76574b8180b41d667e6e68579859b9f23931b645430b1859fa10aa852e757729919132dd37ca9a108a8d5de92bda146e8d53c4f5d5e121b5e6a6a149b20c62027d8cd684ea0f185d4c6122bf9ecfc07df3d07c553997fe1485374f7e15e95a6f0f94f3307a287edc2365dd17ce187711f7894a41a1f2a9055e091a67231fd03c1861d8a8dee0507fd08c4dc6d9918572d7f251f9e4c44c173fbea547b96913c812b788a4d3d50048a5684ba7d0c50f423fa266a6de476a690665bc5fce28e3705d4ae35b387e6d18b614016188a355ba3d2f7fa3a42274810b6fc8938d0020b5b7e06435c4af2b65b63273f2692dc285f895d20c53e0ac1e568b07039a3ae5e1ef72079da3c9bc4b91ef7bb1c723736ae32e075fd7976282227b0e02e98c4363055e7a6c84db11af6ac7b741ba7387e0370ccf07bdadc347eb59d044e3d5d2215fd06969a29a4c39620270db8959f76e02f094fb7e0220d859b20aff12256fd549ead3288a68d5213470c1e9605f295d42b396a8eb6fecbebe16b6e79ed408d90530330fd526e422777196c4e4c739697a33bdd0afa088de108679ef90172baa65c7339d2bf6d7d9e4afdd14669942bb865018946b15c806f20f0028367a8662000e7dc22f1729167a68626a183027c939e7f355bb45a3435c11f8796aaabb59782c29c530b89a4037d2530b8416789fedec275612cd244b2a36c4b8f2efc02f61fab14c68123452c4fb5b208ad3875f34a2a7cc3ecc24987a8ecd30737a3af5fa387d1a91ef5198c68f7848736d30c2901fadd421ec7035ebe8866c8747a32ad2d696540d0926b7ad1bb7ee4580edc4c55d13e9bf9221a04192a8d6cada10db17d9eea029ca8d5ca57c058b926a9a5ff77f9778025785889ace213b75effcef162c0596f11db8f9e8bf71c2e1856c17d927f288ec8234767a937d66e0093e6f19028c21788396eb81d1889079b4ddcaca254614c85bc007ee888c47cbab5173ca3ea292716633c8ceb13832240c645cac81d341e177a538546c016d8ca1831d23fa78be6c251e78a2d68a96cf16c251e0a4fe7a26ec42e681c2f8b696b2b6fb7f4dae377bd6ce90c62e8d8a796357e9cb037dc0a87eb877be7399b034fac59ba9364ca2da065dc32dc4fea54e89642f3244366e89f1c1f4ba5b63472be3e710d1b6be3ab46cec50c0fe6621e5bbe705aa2c37e20cce8fdf2bc47c5a0d0728f21ee88cf34c9d80f86a18b83cdd4bf76416ba4c673bc0fdd5417add731d869ada93a5e4a527881b1f00473cbaf35867061bef61de38d762c028fc9ac5f3480be360000a36538dc9573c1f5a837501073b790c3b601e70e53ed661b2b44834daad3ff9d97c5a0fbad882ddb7ce44690e9edc2a510ff71700b59334cc816b4f7eb34c73eb26dd0258a0d4c4f0a341584e6eed8988d98b374b77b9f210e2a68b5454cb1b2073b36327059e6aa37a8eae1f29d1f857246e8ef862a12258b52c3e3790e504c324ee8465bd9928586f25a0f690b275b4ecf0fedf9139f4b507e3de3d71f4afb40f824a43aa6c779c08a0cf2eaf3078ce982c39477d29e86801603a4bd6b1c6d5db10edbf143acfe63267afa65829e4a4c0e71bbdd63276b41743efaa8ea3d92f1bfb42bf228f13209d334c848e08c26381c0442122f15272f3c6eaecc38205c0c5a3288ed98c15ba08c9dbb99a95df0953d574cb3ac183d96b0c8c34d5417214c1e512806f81a82f1970d6c761838a69c7a460e85609e3702e07c796e3a91eb40864c48f8b2cbb55a6542c05a697b9b6e42253c5d2d1f6264a89b84a60a02bb92cf7a17a0c661306015c373dd3be15bc3d031c4c53db153c4214269ca63d00810aa7f3f17fc063f00df07c9550b268925eb45722b7be3dcae5f051d34eac088c0f8c6e30c17c19ebc0b60f72e24625032e960e5c819482c3f969e07547bfb91df667eff84c5c4d71409f59f1a6cce3e6f3aec87c8f9eb313aa698858d0ea6049a1907ece15a6b272ebda91ff5da7f60e5faf91747d2aab3f933d449e40c07a0fe8a50d767103df46f16b964a93f5e6d84d540715c0b3a969c74ac4bbe31cd8b408914aa1a6a7eff44fd73b850de5aa1a75a7081294e9d9d0212a710c5b0c1896c717ad13f95989de893f682fdab997bbc1a79508239ee3fc022babdb6e7fc252930199e13fc5326ce73c4f554e0e82e1765c0a6880d275660162ae3df453617b28eb1ecaa059d825a0a7a769e785c043c8cb72083dbafdb8e4073093c528e5b24a0b93ec823ebf0abb4c25cebe910cc1c55b9a78c3ab5eb3b7593a077b436aee3e77de16361a4248a2e43128ae396659bef42127d2cd363dd18c33ad891a05e04b0656c9b97ec602cfcb861a5abb87c6cd765591399f9603bf88ab20438d610a0b3096cb82626c75dd6e35e96205d8d2ed16fb3b2321a367d2e84b045817b2c7f70d1b7caabd32661fed0e14cf307986838dfe6f8ed5ba6cbbf96ce0988870b7e2a8b806783a26bc955b11317c8e8e6930e13847e1a4e89ce5c34073c15ce3a57fdb04082cb30dafb177dc62c5390c9169f7735d731069030d587e28f0b97939935b93e7188775d9baebc21f5cc071345ba5aec80927e634d1588289fdd8503714bd3fd702e5ff2c7a7ab92b129f7168f8a289857dae9143e914e36173c730cb7bcbd20c826b1c88c9ce058a21247f75a3da7dc10b2176b673bddd0d2152b31b003b6e20f65d3ef2536cb54f33c79dc74d116374a0dfde884ccbbdbf6209e25c19dc5e9f1a210f2e1f49a99cbca4a3ab8ff9b960e89b3dc89c69c3977d921237caeb5c54b2e976199cb86c071d9d292e9f1971ee7d6f756e74cb2b5bc4d5fd0e89d22080b247a8cc74d68e71d9b06688a2fa5510377650143efe49ff7b7d6077eed54d10620d03f9582bc2db9d6c90b2a8591c05b1f7ef130ea0be13445c9c87c5f51066334ae281d99f13864d75b572f9744a61ba712087dca3764210d0ec7c7d4eb30d7f110a8e9b6d9afe12e0b5765dd8203dbda561d26c7d6509a304aa61a2ac8a1b4884849946336d1839dee4827cb9c90b7b1d7caf342bfe5576193484f47928e403398b3b31b07557b8c9a694647c740860a67f712d84bc451f8d562dce695ac17de699f2fbaf52d0e53bd9479b867b72411ec0a0d90fd1b92aefff39f181514e25770bc40707203e17a24d083a0cad0f6f8d5cf8d0bddca38fc1b7b547d43635e36f3280287c818bc984f0a9ad82cee04939fe973ac5bc62c6320ae4762c6d4bb067c15e97afc748d8e46ce889f662f1a1ccdcf5a4fc4955df8e92dbfc6f5b830820eaa0b24ad786770e88babee0ddaf0708d5020d488ea3e827f30518b1a6fc9356187eed9c107e2c2096ad7bf46f412f09c172f926480541bcd64458e9c00d21593b5ec624441cb7137f9a5e14a7e0e9b53efafbaddb65e7b47784170e3f20d9ad3702302b0af356b8790da6f21f1d8383aa7070675c342589671ac9cc631dbe859ca1167f90e7b82651cd703a0ea8b88fd7e62d3289b5b5780ed4651c4630a53dfb9559c011e852b25f98dd84250c8cda511922237868bf5baa4e4b9561f839ef34c9639289807749ff0e58c98d40f4a5a7c23a90a70dc6de53e56aac756834cf9578102017c035b64f23470be81a6829378c4de4d825cf3b07a1cdd0fc5243a22805e275c132296fd713dcdd8acaac205abb71eacc09ea70f26d4c9871e022a50f96964622209bc71a6bfb3c4a1cee6e509d24d881f37738080344aebfa71b68c01709d9200fd53070425afdadd2feba07661a923f49404e375f04e7c34c0829fde735864a47dbf2da18972ef250fabccad68f627bbc065422512d39af62e006edc34b53be112af6d75a7ac2f7a8dc712b7a0acdeee5d341730685515c8a9fc7099baecc8a7f25517a26f5f7d36492e860e7aeec8c72d2bd4a410c31cb0392ed1bcb6c528401bd402683b142c9c4a304503c6ab4fcd1a6f584c12c9ea28a360c968f817053406b4a27fbbb7584d0a04d0b49721c4fc2b60499e95634b65e11aaef0767aa33cd49db64ec3385e207e23b1fad0787cfa86e6f6f1655319de1874f8cb64a5c33ccecbf196f9c200fdf9e2f333bad10fa9c5033dd0a424c86703c5590fcc7c171316ef2bf37c427a341a3aa07b70864df8cbbb48355b5b122667f9bb40d2088d607b60a5c77908530bbf274d54815afad32beea24517319486abbfb1276a11f79c9d421b7b554ed2fd19e97cda213041a35ce22315284cb671d4b8df46844e59e532369b53d7bd1994a721d51850fa7899bbeffa186f2c03ce13096360bf6d09e5d12b96baca44e2726623cc5fbae355e310e8b6cca484e5dca84c454b81ac5a412fac7d0d1073ea6e88ab33c95365bf8240a10cd499bdd5024b7a9bd5b692692fd0a8ad448679feb66bcae0cbc2bed332b13a2600f183f7dde18882d46ec6329eee9494aed5e03c09ae99b03685fad1d3148344aef569cbcbb4986bb35871099d34949ff5252d6526a63d456ac32663585ffd68c4ed8878eacd7aea58d1452e6b836ab3ccaada419810c4e39a5dc67745c65172cbe1b43de449d7095bfb62a454a432e2804f2b41103698677b1203677d6abb1147ac6851d2df2867ca7aba65d5e4a1f93a0185984b35136b425106ce53a13e22954bd2632bd6a399940425e8191c4068be20682329f57329996d719c5ad4488dbdbc75c80d0b9028306ac624d3aade32e420e2e54efb8577b915806b407341eb53c53016310b7e3c415797d41302432b4bd41255a1ad901340c848dbe0fa22fb6bb871a15e052e87ced6c79443421cc836f690f634a20c0b7fd9eb779c5cba326efb597649eb8222e82e7b18a2dc28ede5afc36c9295540b2275a08d278572da90b059a0da7f6152a71226f92f4c01216b1cd3209d42cfe0c77b74c6209af79eb7b7a782e4cf1485277d18b1a09bd386799aa36a23ac3784cb1c25248a95a4d46650ad761d343402b6e0121768379390736f2992394ab3bc4e08fd258f27354749aac390ca23a37f1bd5618c498889b05a8b9862ba2949520ec3da248a93a04387e7f5781ea63bced47a34e3aaf73ae8d8299ca3f848293dccc358fa8f1f64c35a34bfbbfc0f26924b9544668e758feead2e28ba13c46432cb0e0bc37cf8a66efea3bfc91d87acf15884931926b4f7fc24c76470f10bd174cf44068f3475bb854caa92e05830a41fc3230750950031366a2fc5a21f557d2f35f9e95a16ff4433768cabcb649bf46cfa665e95338e08e5efd3294082f51f8bdc083938664ee328f326063234e9aac2a63e461aff39b6da5ee3908e56f234da357e9ae8d337aa98f742b9c8fcc6fe4044e37b66db95abb8f28a565570001b198c0b1fad40712c4a6a92dd3370da905bbb6be8e32f2d12ccde964543f4d3718fdfc09e68c35c2d02cd11ff581041f883de6bcfe795e226a6c3c4b91932955726514624e35ad4abb619fcf6dd66adee6ef09adfe2e53ac56d31481bf18b45506e894da283eb2d8ee8b0ff726c96aa183759a600cd245ec6d1de859cf4412cde9526f882e18771c70a1e62805bd198c4b90d7b02b893c94203a7e05fe1ac1486cc3e521ded8b84b7e5703818378ba9c36b14fb9ee848233eb862e69514e7398aec864ff49f0c446f1bf96cf138bbd64a515d1f568a9b94b21b24f9b963fd1c9234cf7ba7e23e745a11f5bc4012f989c6c963a7bd0f1beccc3369fdbd02c550e91b992c9a2515ff15a90b26ce83539a28ec272b8835311065a5be18b7e39db462725206716be9162b90caa31fec2261b24a6816d5d660579bdeb36be0fbbd22616831b482e920a900af11623f746dac6e4822ddd389704e4b7def0120d6f7721b2d675c5f2a003ca57839ee477e03ea96b25aa3909d3a35c24fe7c946bfdb5c36946572f4ca4b6a5e8d5bd0dfaef858c623782723299c01afb97ee7cf32d70b83ebb7b58a2b7b4b11545f14a5aa5d97d14012a3014c52f3f3ab2300d77e25f51cff578358df808d812c7316c280e8bd41b8cbf9878ec86f93ea81c588074544eb85d4014799593069272e99292a0b6223b80e8010acf9e14ef53f51f797cb672d83bc9fbecb34dd938d7d98efe0f1f52fae63f3af67970fa91fd0e5e2b20ea05ba40a9fd3f58563a02fe17ff7e5829fd242f838fe7a9fefcbb7266eb1da89261da5551fe67b787cfd89eb58ff35b98ccd8d5a264d698c968da2ee90a515199be8b2ba004a782bd0c38796d268a1fd0b08aa2adba3e1898008280b1efb356893185eb02c8b246c81315f27df0f66c63c02406ab07970e6e65d3fc6dbb510656ec41466892e4d2a74755280216ac9bbd6aa925161f04d0ce6ee0833c6646eddfb915eb62503894b1557ce59f0707cec48948b89665818c54606bca223564e828e0e1733e6c0dae8ce881cc4e2c05f3c61cf85381049d70ced12409e2ce96d99df9359000534ba43dcbcef3e36045072bddfd3e67d518ba83d969ba451fc1ce44df97e4f089617043115d571f95158beff378f211327631dbc342af31c6866d774e4d0d40a0cc011a94a00d2df605cf0d6b5fb0ccff2a90e229296043f977385a075422acca765b4a4b969d4158efec6b40fd8c46fc0635d1dfa091f6c1d4b839bdb83d4c135d5ed4bbc2c6a24938c42ffb7b643faf89eeedd62103a0b56087ed1c98856fa514b14963db925a524eb274dd6a353a91b3f31cbf8df278865943e3263bb5e9c982282078fdab58bd15cedc3baf681707219052b41ac81d6de1457d371bf8301b1cef537b0d8f9e29cffa325534a4b3d62d2a990da6c1e6bfa4b5107fd90d51fc1b03ccc83a4726ba40f6b29ebe5a22ff662d19a15e747f93dbe1a1802e458111e69aff42746839debcbc8b605132d39c1fd7fa069e3f53ede0b0be5ee3213a4f0c505b50016993923d5aa03c430d890ee62ce2bc67069ccecb31c2a9d767a52d589f04882032148b3fc603a520ec59cfc0f3114bf721798605d560ae56bd8b08fc140f56bc1824834fddbf799a3d7f51447b9bab0b530f90812127a09b7dfbf119032d3d125d237d54af119955e2fa04b393fb2ac4516a303cc2b75faaeb58b920c7e7e49eefb5123ab54c0c7c3316cc4b302678519683d237ebd1e1305690cbd8da9012533231d84a82c95c108f1686c3c045596882f780b2e048740ce0f508917c007e30f4865faeeb70661c87c2fafb396aeb6bccb76cd102e3e9ba5b2734977c188c25e87955edb7b4492e59d4702081809f5b508703a8225aa64919f479829521ba3b219bbb17ccbdb36830c0b632497a7b1f84c048487097c5e1d5009ae3c78269969249ce50a9af1e302def9c5236a9334e29cd3bf18b679e7f3e3b73bfe6d227ae74e458c28db991fe916a00bca721c449b7f7ffc85718d3ddda4a3370cdce28b2525aedc46057924cf8ba0d8311f9a75979050f0424c33f15c06c2e6b6643d196bda623fdac389540ef73e49b423eee3ab35b959c49f60fcf3fc5178167156d6adec47fb02296e5e90a37393a6ee7d70cfc94c2a8f2ad671b8c0c8879dac9b0c226e11c36b17851d12454b2c62a7ec9734413e645e51f14236ca1cfb8c9c41b579f8ffbcc9bc4d31817412db15cf5cf89eb8e6ea21053c1f01838849e6d0ea1afb82cfc65c93700ac5ccfc8de2d21de4e23260322fb74e7fd4e6545a9b22296125a35fdb1393d4dac7d3a4a7535d46435a9249ebbee02cfe9202cc1f9c75aeceda666b9047f69b6c97839054eff59dd43c216b9668157d48b77bb43a6b3758f3ebaf5441512dca3aeb7c819db526095154ac39f104223b751372bb92a308292bc560d28a4ec84f8578df0cbfc8e75884342f29045b70c6b7ce1b7306d4cb69cb5fac93c163b92d2727235d0a781b4ea155a7e38422a346e238b608b8b112fa50a54edd932951599ead7d365bc6a065e746ae39edd0f88290d701d296136b4f72ee6721eccef1b8122d5f0e50629b030bb8b5301d9c3e39978d0e0c85b49b21e35587c858e40883fc0cd96c72ef589c375383514962b7ec065a9b12010eddf332c07f238db246063fe87ea55e78dcac9f2b82d2bb52548ec4afcccd78bef8ab1590d095dbb9ac5d82204390c356017313e4aa8477806bbdcfe8ee83f6560b26031a624b4444071214e56d07b7eb8bdf49039e5ac112c27354b338d217885a4551b58935e1722e056588162fc7e45b80d2169b9328a3764336570db53677a9c2e9d013770590da6d0e92e984b51850f74917974352ae6a98455f3af2a4915da4822a6c512ca610eac28834fa9946c457a698a7a2ade6cfa764357189bfd6b13b67023e3ea124cadc17bba327eabd232e044c064802e7965062eeb05210f81864041b87b3b257e8dd30c12834874381c6daeb4f4f9dad96bdba04eb3849b62c4e090ada10b48cdf4ca2ec15ea4742fdf194c7463d6d5724164a255a437db65769947ec7438246596d8e0ccb242db5d5960c872f7b4535ae955258692497f01c5df0366e54cb5e098eaaf772d642a101113a237ecaf66b42895eafe8c29bb2cac7ad57282f4a8f46c82dce72f548614203d7eb15e13818c92c82573c67af572eaf16bb40f967754f0ded32ee74908471ba64747c011e588ae2e19052ba1ba0bd5418e5b87dfb7a8519fdff43e9450fafcc7824aa34c9ff8d38354cfaf07a854c752cae6c3541af576294afe9191666e7e9384d7deed1225e87a07cbdd2d42cc9852d108521a13734ae7bacd4a3993254d25c8d99547a41d9eb95712975cc4af25ecb959c6e28e12bbb91d91a72cdb402d1e30698d404069960e7613349409eec60a70a63214f0863f00232edd30a63f9b49bbb03fdd526ad4a780122587c36bcc978e6220ce066e0ae335e894958c0aa61519a2e0ae01ba7e604ef4e568a5373a6028958168578c62bd6f86603b12773d6a43a5cb48241f8267c3951e8f9acaff4f0e96abc77d616c42d0f5a745d679267f1ecd5abfc26be84358a9fcee018ad5fadae55b26bd20a7c0203283be7ea28e955a45f78e57678eb8eca936e3bac8e7d4028a2d62f129694598241e97d9ff893217bad91384519eb3a5704186d0f7f9829243843e9d7949047f33c35b56892ec75e303bb5078450c418b2fff07069c4aadde03530f2258cf17a29e32b900e6b9cc4696e831958e5744788ef6f731c72b14c47472dd1bda678b96288e57fc58f642d1d1d7088615a07e0805374d3b9b95545ca306d131c110bf2b2d67ce0d67b275568326586b088aff0de427034872f89bc33aa47e05718874c483a9c1bf5a22ad09d658cc4bbc98335ba107b8808dec46132c6db50db4d9b5136e97095903a322c9cd988439259b07accec0fd3c0f969fc55e4d8e6244d54b1a989949fd022725c44c9a779005ee134a11b987411d27ee0f04ea0eaeb44b1955235f185006b8e2a9ed887c41b912a0a1c169029367eec4782b85e002097edd0f70f1b01b2b553dc00122e019e6566a41ab4993c9ae059a8cfa4e23bfba855abf9ac26e5f5aea5a2bbd54ab34f7635265e63b68a9b617377c28cbaa7ac2cfcfaa1a8cfd3d2d12bd21ade97ae8564ad72a4a34d5081d114394e8f99d555101c5a8452f34a7062581ae549be4ef79a7b6bef7ecfd76b2c3ae977c91cd58601a2034905e1cee2b0daa7b23f395a4bcac1a7a1fdccdcc151704ea4e76ccaabad22a4ce3aa75afaac05da6f4d12ec11068954f45772afe2a61f08d9be0c27b7fc132e6e491d572be76198c87b4c8b07fb22b5859160474223415ce1293223f00efd9d0368c298e58fdb74362771f8dc040ebadf150003edc107176ea5644e36d7099195f33b0abbe8c6efc092c0b94550985ecc267f3ebbf89c1bd23b07f883581342ed6c2c9d416ddad039e6628485e8e4782e061424866e089802a42b37aeadd86936fec08acfe58ed871acc3c8d81967b35de87bcc1ca24bae4694e1211a404a0915b1e206b9b50c4662a1140da002327b5b24d6f275618ac177e10dbee1664903f6045baeb68604a0369505e368cce9519257346896078c58be75e1782b4d25351c8963cd140b80677976e25af872b085868e8a527ab330dcda8ff162fb749eac248b6ecdeaaa68da520dd138f2f055117f172e416f7ed2558c9df3177df737ccd5cf161561e31165de4dd8c05a64ca7114cb82046a23849a9cafa36aba7a70eba044a5dd38de351d84308dd279ab65e23dc60e305e5524803ac513a4e9ce783d93e4eb43d15524c8e7e76d1e1511a2433086931ed063812e9040a3024bcd5645e0aeb25a092418e98c22b471fa9a50c922bcc98dea458c1e38ca20cb2bf25cd99e9b1019d6a64e9ff622ec3842e47adca65d61d4019441ceb97ec1a0f0d636eb3cebec1319adb7560ea696590f3d067e7c6ed7b908715ecdc0f4c776e1443827bc89e66d087ec5ec7b6274819f593172c4e23387f4808e465b32fc93cbabb5e95e3adcf8fe72fbcacb6ff8cc25c9503d2a89aa393db0dec2b515a68fb7203f52244a96cc97b20962092355e76807c596102a3f57346cc510d23b1384c6f9530256842693882688fcbbdf74bfe442d01cd35d1635ae230a5f44d79e36f1b5663c0931c8387957118469e79242962b1764db22c6a9f814b90d8b15c53b9fc20c5d54442298df1324502ce73b446794a55447cbb2614b9ceff8e183438b9858959f213b92c1c127d7984b4aec2058a293c18b68f2446c1c425b191c42e193ca3096031ceacee1f386b78d70f5872b6d1ccb3940e676a900bb4c0dc68605cde966c391b2bb218b5d5310d3f0db359040588c1321f1098809a83756e110129a0fee2d5d23946b0203e35adccbfd4484736b85c8478edd053afc573cab7c84a12b32d42a6d2290b933ab22c0b0c05354159be845146550759f5550e55b1c182403176d240477e2994f41d6dde2e6db4c263187b8b2a5e4c26d599dec4559372d617a4e82c6980fc9084d21a519d3dcb2b77911c0ad3f82596ddb13fc37479e22f6c0c7e783a1bf3c6bcbfc6ce930ea656a8564a04187ef43d735e6d9c48d5fa08b1817e18c02524c4ae58f9b38a185d50f8da63309c3ebc3382d1166082d99348ff8de44e6d2d51727fd6b3504ffda229d3bc53bdc9a7a5e052592763fbdf841d44d2ea0f254cbf02502742b44a07da347e083ecc12344d156039a7be08aa18ac58501d91f372680e24c0c3c36d7e10bcd3ff672cd59cd5e8b20769c050e80abccbedd1a7a73ca54b50f2f562b862726cbf1777d86efb8f11b9a3fb3a60536af4ca510ca6ec26e05a44fecbd14b29d82681c521c02b03e120c7e002913250efbdb0a58a0d88b8ff32684df70aaad77e302594f18fb787029169812e0154a7c299e15ac84dcc250f7177f9072b9e80a7428e841b9c53208194a4d37465e7b182cfaefa11c00142a3ba94576b1a22443c4a2b910343699e371d32223880ae79acee51e9e0947318172cb0c6bae4e38963e2d87b8527efdbc1db5f18e9b207a649fbc0bd6946f42a8eaed612fc5dd016b8bc7a15268bda234d9cc4bc2c29071fc7ee3774bbb00f3e00d8f36ec726b10fe755e25acb8fd6206f57856449c532b4a0b40f26af5ba043d039c7951a24063ca0b2b077be36f7817596455cf43399bc57419c76fa436075f448a8929874c2e49ade302c9a41c7ff63d02942fe36d92776eacc168e91ddf61e903fbb725f775121ff38a3bc871634a01175bce9f0c5d154de4368d89b7e82f47542ad03fc068cb3b8780f05124da8a162285ec24f31f7a2ca1b7af0c29a58087ecef6d5c87de9f88479f7929d2a3a5c7775584a7940c82d3f5ee4f8b20721e93d9c837cd6910f8eb3b518042c97927a58af3d70a9fb732dc8b5d4c5ece84805e9753643ccd6206551a8d9359fbac02a05aec3013167126aa3baf0760460162d8275bb84b15ddfa9e7bc8da41af5e9c2bd247d18314d1fae9a32727fcacc081dc1b9c5d0ccc6cc1007422c408c5d5ba52ba189eb07178a4607e9424cfa499b4f418babfc1512547bdd4a41b8e36ab12f710618821f051757ed0934990ebbf492ab6412586dcbd0b6ca5b1b54ef5fababb4ac52b7de20d5f357a26b2901865d2704fa5d922718cd72042f1c5dad33c094a39b0348a3684b56bea06eb233ae8d4ed44ae0fb74dbe4591692661b2f945b50615420850555511e12ea36179a5f1cee00989eaeafd3d6d91b5266e5e2c22a8c7fea05d1db7ff573cd2787351c23f324292a6c48883c8ebcaea85f07fcb06c9470466e503d90f6257be8d836cc35a1163b03f2fe285ce1a4c2d1a8a9850d62e0bf913a9a251b1f1d54723c8a6e52ab34b21420997c685bb71be6506fb7751a00c23015815f5cfa3140626cd605c4c06abf5e647b8454c4967c4220ea9738d664839704e18dbb43d00853682335a67efba36ecac142078f7882bc3fcd528c9021d13d207186c164c516f7a1cf0753cf60919e1ee4891653022086296d605ca0cb9bc161587be9a67a2c8c7dd8aad36198130b9bd7d4bcb6e9998575a43756b0bd4c2baa0c0327cb4a8233f798eab063a87137652c880030c95890ca5a420a96a3083dc496c0589cfdf262914661ab624e588aae0fc568d99c6725b7a0bd633c1aa704fac46d6111ce230baea4252e4f643061973de37787ea51431a4d68a11cf2802617b85d338ecdb93a023a95d6027b9875c62bae838bebd904c3c2a5cc11ef818d8a3dc5f08151a5ae4e3ac62f334352587f51604a949a2c83f60ba9f0c26bed239abaab4a12cf06e9e37a331d7339d62b1e38dc4acd3626aef6c9e8f1c3fc04ac15f0ca3bdb37e246431d69df18c42171a6b29826d1e5427382aae5f95dc5b3867064ba4018b8b8c5b504413658788a9c5df942379319ef30a51729a3018dd9e6b1516b364c3ec175550e5a992f8501b51334933732fd66c1425c6aac812dfe14b9670e78f5a57cf0f9134ab8a6a4c3d0da53b68af5d9bb5d313d8f46b0476b3823a7a3f277660dae3a25b03e0cce34cfed15ee61a45dca0b29feb0733fa8871747f80b89734c9770b8dedcb0ace100d1fc807ebb213d5303e074385b28fa7c26d3f2a24db07244e173ceba69146df7620e8fcd3f0dd9638d4d6cceae47d8cdfbdf808059b0f17abefcb584bb573797eaa87ca630636b4e58430fc1518198feae902d218a3574f978951608e6432a220e06ae0dc31f8a85301b6ae4a722b5961d51e20debfc9025dd3636d123f99735a13b18dc5d558471c9c9ea1075a98c6b3a9ae783c2c715c6cc75e76e9685692f966413994613d4e90348095dfbb3e1442f33fdeba8a643de1945d1ade04b09d15de6d20282740e8b6a784eaae7abd9fdd2468e7ed1e9084cbf358ea92f4a8eacf970174d88d7ec0b1475ad924a8cf8dd467dcc214abe10a69ab0201d7dbf926d0194cbbfcb42149b3b0b8aca34a608a05d6ff40901732f3810bca47be61e4cf77d5af772ca958a7bd37e4d9441a4c1b87a8506316145891989ae21583f5f002e9d8c8f0d0abd736240a06008a0e20c9eb9f60613eee7dd88f2485ab3154ad0971d05a4236637ca85d80ddc2e30ee1aa5baa8d4aafe4d888ea529cb1e3ef6a97078a16d174c8aba24c67d834687b55cd6de80b3bce8ad4a702f6bd82741fb2d44f2e72e84acdf830e4e6fccbbfc5c8d447dea581259913e96b7218eb03b0d8122d820ab7f377ba55cc631be593408509bf400b5041edc1e431f8f5fbc0544b43b822edacef1219dfaeaff8c77f9c6b4e14a799178708a0ac2fc2f071dc573d4cb01c504896b78ccac6fc77d2356a923a98589e4b900fb049d4b9ad21bf3263dc4288592069f43cdf2752c6923863c9e9c6f2d483f26116a49fb6f427548155c3ac1748e0cb6e3f103e96bfe1a2868d15c5861a4fb9e0f273b98348019082ae0dc2ee66fff81db150820280e6cf0b58f1a25288e8ad22f3feef71c5e53f88cd4b3a804fad36cefb3e93d1816e6cfc9ea60b3241cf31d9c6c33e9feb72fc2f5702f8b5e1356b2f66a20f67f44da925f9ca40c82de0bbc3cd14abe5ef802f80726426a9fd91a85593ddc2c4ef38b4fc4d1adef5e2d88ddc21fb4405245fd009e26331245edde962546d167171778fa4ef4f81db3c80527830e904fe0d124e75f6975c57195a4a3b124518afa6c7cb532677c8e3818bde06d4abde9dcaa4e0d8961852f7633c6bebc39fe6f91e3d2277a634c37f46919e1a8be8077cc9ddd8a565635a92b2026ba15efd16b611fe2b860d3b3121edd8f6e664bb5315c70631b71a522c2478f790b7264310f6eccc287209a1b52dd71d1e1a30c723c7c78a7db7f5108910282ec77c2c71d57c158dcf80891ed650a23b0f497dd4ff151602cebaa3ec47e092beaa44aee96f8de11690900ded96ee66208886e8f9c46dc29fe13f52b660607d40d206528371361e30c349e7b843f626add1544d91c856d228125fc56286266ecfffdfd6bebf525addfd6b8fcd8f7ae455db24c2c70e0824ada68a24f2da5730a8663654451b25bd2955151760654d6de62b4989587b316195e9dc1ab4968ee82196767405df2889b87e87c5e327ab013f1422be4b33334df72d7b129b7287f46815eb42e394334cbd7d5174b1eed814e49eeea5c62666185b65f891ae37391d44311748b10c0b204bffae58f2b305b4261a9b5aef7786d793673438b49a1ea1fb8bcacf25c0269d5f025e0048cac4efe48187d80fd807309ce3809d3072a485714487c48074e87fee87d30b20204622d2c3fc6b8d15b37fbd03e856e2fc4e84ffbd81929d569741b62b10be43fbbfc6163f81333f98da6ece4e0d240b137bb52cba4752a468e67f051326d3164301c0301c5be26c7506d085c0be560427ec931f8fd4ea17908776c16501cf9189ae3fbf1fd5d4a965a41c355eb11c5081a0f05620f60a8d2ae1bba7002c3a8b59bd4a84c72ec0143cd3c830275c060810125c77051a60b7acf15c75025aef16a0eaeea720780080f49372d108e18cda3dee5a3a9a05c69984ca5751f1b622e847430661467eedd89668939abe93f6cef6907448e0bff4d3935186637c51e18bc9287fad1590663470cda26188cf5ed745789cdc8accd2ef1a9f6243eb561f5243c26f34d692296f00009ec324a1f2fee47cc88bd12025f3b1ed13d88e1e2f61fda2bd757281e3c9a840c32bda290e6df7f106fb1b1fc12144aadd7eae54c79c7f38a71cb5f62f18b869a8065dcba79191280ec2d3722a9973660b817df81294203988ef422425b52ed344c6c5cb5cdfbee7d2fdcced4d2fe7c41082292228f46cc4936d0af0275ad86f9086b7b4530b99249e555d14c77756b68a1189c6afe63f78b1b13343e34e97b5424ea69df48acc01039aa7e05f258ffd6bf4f0fdf2f9683a9b2f1e0ea3454aa14972fd691cacd11e9357b588039a73e287e8344c815f9dea9d857f107f19da1827a554f43f8d70ef65fc2887166782cd7ccb07e2bdb49c4e6980bce16f99b60ebf20d08fa6394783f6d9b6a59c8db0215276d97a7415fdf5c1e5b08ffe0c1018941fbe5ffc8f29671392ee49a14e5e2d4fbd826ffdfec15befe3264581dc89fbfb7d1ee637fa67762f21f5f2ceb6be508d02ad3b807f8d800e1d231a24d0e3a2896c3160ebd5c831ce41e8998c6256b2ccbaa6bfbd84cc027f0ddddab76bddcfb38d9ef9e421b4182b322f6ffb60919a3f16e2b0742683703d92b2d56b0c9762230bed2421cc96ead2658dae280a7b50ad6e6dadcd19ca999fe75f3b101a5f961956be019a386643cc8c6a48b03cb76629711c59590c61b7496c6fbd1a3bbc4738b421889b2063e9cb9d0c9db7b535d8c9bdb787785f5641d38d7e2ca4567943b0ac26df20ca10d3b8599b4035fb4a8b45015676c13fc472c66ebf0d3498d49f338ea90326f21e6f6a9c56ceecbb4fe67972096598e461bbd2972cd0662c56810e4418994aa63d17cb791e6178208677a6fcffaf8b0b6fb8afad80da2273078b5062c9d5a97b6f522d6e09cac5f5cc4f851817df0d91ae60574e2c1be2f68929c496975b61f57783fb3b1d4d255b8da0f0978e32cb0be04c3f3268f88f62cbe8235c1e98984c87781f03172cd5e7a2e273a243d5bf1c14701c1e7c148aa53b263ff7a43e7394ca8b2948bd5c436bbdc67e4c0246ec43366a5d7548ab7a9be568fba86ad04017177e00e1b27fd748c0ccfb6669646ef815ac447980c809daf8a88ff6cc88118734998a34af3f7af03e8358dd00e84fd0a6dc9057421b48a2ee093d389dbdf9afb058e831d6947f08ba32733341bbdde1e360d224433b82d005686e8a3fa36147d33f30cd68b4e689acde52eff501c03495a6d7963d93e185d5cb688f858934d8b213213c5a0177ae7f91642bf760c89265e9603e081db00f33fd2cfb17c2a6b9876c1dbac59d62cfed7c2c5868ec18d433711b9387c7f9439041a811faae4a61dd5b73c49accd1249dd972b31de6dbfb9de04447fd2dbbb511c87c1f46f86d2abdb5a14192b46f840835a542f356a87c8f42e22985c7a8aae904ccb45801f0c99780dd570beb6e10ec39ee5b8d28e62e48a0f8c61089806ca8cb3b94ff7900b0dbcf640edf627e5e8f2b8d43e138a2f85194f7ac0adeeab6b2b95a74b11670b9d62e33003d3d60664f9edffb2dfdade370a59c99497971b5a0373cc627366ddf78eef3678a3437ce3e18f29c0c5d42ea2a4747b68a242f1c60ff64e36911726646faccab078482e23caa6eec08a979d6684db3b971dfed64d75dc49e412896a54be7fe418bebdd257dd60a99be1d5efc36be1edcedbe5d0704ee1606db7b64d31c6519e2f6a879c809b308828a49b1a59c079c2c7fef98a99bb3189cc936dc76281152182cf7b53a8121ce9eb06271bcca734deb3747b5044f578927fe7bf1c70a6637369457231111bd7b408048c8663031422ef228d0c15656179ada4691e0c317d2cf995bc841e33c1745f83c1372d01cde630df690710d04c865a5071f92ae06086a0783460de518eb0b89601a27d67e2069fe11ea4dc24dddc7a4382589dfce905b60b9978c544529823a0f3d37b6a7afd0b12b072a84b1ec9d984b5afb707b15d60eb147f0563d63da7f84240dbab13af415bc08724c179726b462c2009f47f03fb7099de35ac9bb46f429343ab29ea0399cd1c159fb55103ef8ac1eb040462d114e75bcb1ca5a92c86527a649660802c8f8c0d8952dbba0d3dd66239caafbbf8d38700f3ae427a0c3e800abdb89b08850a8f4977e90f0c283b37c831d929c416cfe8e10f21c62150cc98f8255c82f307bceaf0627174e6160f8e6243b6700b4f9af9e16fb955116a24c2b6e26cd506cf9424586ac223007ac564911db5a07bba42458e2d5bd3e72e9aa92a95465a5ca6b13068465197ef83b3137aaa090f965a59ddedf8127b5e8d812294ac63d3d6ab04b5b578d11559a5f6eea9cf0c412d5e74c1823793510f0e853b46bd88ae0a98e611a0784c0e1bb09fdf0ffbb62dc0617985ef44c6f49563060e47451447b6a494c3f091ed8b9395773428eae1d970cdfc039a4df6fbc1c297a0ea461c71cf798ef916da4ca21daa26f6153baa2bdbabf4dadef5696a68a8408d7bd35d6775a6c407d4cff596fb4167c0fe32998240648726c2957ae8f9133933278e40a511e7be155355b2d31ee02aed1330b9186a66d1cb6c2a11de7ac42e77925d2dfa8032c309a825c4deb3f933730bc42806e4947853556cfb4890612d90fc0a5b62a226cd7f6a5b3d78594c87ca0f98edf8ffa4a9caa330112543cfffd70b120547fa2cb990b28b5a6cf1b34c3b44e68101be11567f293a9a4ef2acdfe87b4d71a512c665c8310c5bbfcd51667c731990a9d1f46f163cf956ba70b6ec015d3253dd1ce6243a2cf568a6cf3e946288458898026bc1dcce47b749633d1b6ec3fdc6d8e06e0ef115f7a070a20dd731bfbc8e22857d5e92986589c994ce24c46798a5d5c6613c9dfad6a2ae22c16a5c6bf7d7b4e53c44455b709e4f4e0ce2908610cc54446e23d0288a65b95a874a24e52a01258eb9b1802ceba81f98d91086c38831b0b4a8570aa2d53307782ce8ae6c37014081ec916429b257f464d8957d70a6511c8c2d9e8b141938d5426ed384d81ba15ff23c714a9eb12965e2cee987c04a2c82029d90f5a3ef42adaa64bd41aac94aa10f91797260a418ef1ceabd3216f3903e77ca96d63b6f4b296b6b357070673bf0ef4a31daf93448eeb60140e18a37b775eddf4c6a1fd9d4488eef2d8c8a622f4e64a8a0d49561fc77d9b42b0319032aab0cd158658b0cd6dfce2d4621b5a13cdf91e10be7ecfb9c40184d257fec25aed33e45adf64a80aa713720ba6124e56cbd7d7984f19796117a3d234bea3fc418535e2cbfde50ac13233ba61eee7629a4604289fc84c3ed02310cfe6dc3723152467c53190709e296eb7fac0a1e57a2346289a1c353d063a6ba4b0a10ceafc70255a85dd17ec6f6fbeef4d861368e255f573d191955d2ab8310ddf96e3d5eb3292eca59f439165fa020fb6a7c6135a67c7f01e2c9aad0b6599e6f6636a9f4fe0ac8a63ba3b8427f237ef06f7adf599561094caf790f534c051142b20e04bfa090ae40b9ebbaa93d0d8044cd39f34141ee5aabe4b035d681ddbbb4e2c9624b77d89a4e934e2c17017c48876bc73182acd2ada2af000b5d190da9a791402148810f71156c8932b045cd4bbc4ea6f21fd8c7048a0059a93ee44ef4bc9a3379b5f6167c8096e0202394af6f16a1b8fc0c0a4b681afccd43931a16398273046d417d6902658a08b8f3d9e3954da0d61bb6f902aec1d8f4afcde57dc497bfb61463b6436107e6cb62dde948c096869ec5ed10d8a6154b68ed6b63c26453f9fab545df74aa9e7c14d98a7e271a580698e8f838b05213e92e1ea9f47badf2c6db4acc3549e610da2bc7d7aaeafe46c15790d9c42f6400a2cf6918f042e153b382bc296e9264f2008ecf11d280fd1b3c412822f5b488a790d24d52c4ff1ad152c75aa22501dd93d560211623a9bd1c5bb03d68ca8b148f3e37b1ef1e0c88c3bb7db35c8ed235db191a58d696f7fb1a7581d53832b3557c8096b8ce89cf802c4575c4666cfea5caac81a02b60bafb151044f2bac7e4f158563a98a02428222d9fae56cce03a4dde61b2eb0b5e1717ac17aaa5bf72b4ebdef5320d59d12e712a3a2e116e7547cbe0ecf53f542f39320e83073172754cbd648c9211ea7e0df2cb04604878b86cad53c7a9b726f4f62957f403f08b6e09a8aaabec407459fb0ed8feaaf73e82ee8b67571327b18a393642060b1fcbddd2b6af132f843114a1c4c9607973c9cf5500e37bc1bde25cf747b1b5d51c80be0eda01b33e591726eb3d038ed2bb9cf34f8ecc7abefed449942644460ac4e6ba426d31533da20638a10fcd458d93bbee1746dac3d83111cd39c1b43409b71a6de205ba1899ef26ebb8226453218b90958b90a8494f31199638fd3802cc3ef072355fbf3042aba2c9a3bfe3f11ebaf9e3fa0e7ade88fecff4221589fa2f7b1175608989f22059400233c8fadf49ebb86ae3414085cb87d11fd57b7fabe4a335c8f03ac79b6b16e19663610d051af4b00d8c3f0c54897d34486633d4be33a80e9e7eb0138b4f83d043f863523c7d428f2f9e8970270a1581ba51b141b5c1b74f617a5384272966ce82ce2e49981829a8e525ea36a26a6ed3ce30edd78640ac96e1e2950dea91389651a97c792c30f0683c04a5cf5bf9b09c4ea5cf4626e797a723e49db8e2a4f37d8d30da413005ddf6c9787f3be196d59b5cf19d1c107a0b77a45f3d4f82edacdd2a4ad805f3048cf75a32cab6f32b4848f50891020b054937f1491a772601a3908207a945ebb2597542ef30051ecd8f0702d799882137172a756511d678ff53a5e628383c0d7c3fbd990c6e61ae8962ea206822f9a39878993282796e73bf11814fa1906895d9cb09eb1dc6b17bc9106b457404a6a3bf087f1f6260c7ce7d582232d54fc54d32e9cfc2ad32559fca4d67928f925b33d7ba05ca0f39fc1df07d40ec1a5fcb43fd93d7e0590fda9fbcc6cff2a0fea46f64960aed5fe3c455b1d6183f791bbff542fd89dbe0ad17ea4fde066fb9507cd236ecadf4b135ff0009a8dc5f594f3aa6731a046cb80eec0d14f4d14c182e23847ebaca0b1ad2120900c493dc1271d3a23a514ca20829f0b2ce6e91a00cd3665854ac7f24fbb714416ee078ce0f5a447398eeacece3dac90a86675048fa9d2d31e89ba37992bd5845281880a181360b33958cd581f681cc110c6611cd949488da1ad29a232227dcc15d11b665cef406c1cb8ccd4a874ff89736c1b10a03cc11c04b07b86c80a15aa34a35825969aa4e489d2d7003e816f0b5b950a130ba04312bb70a595646fd39e4396a0340a19ceba0fd9bad7fff9301259b5f3f627726b21f319dcec111d52eba4efe9d225e118b54b0d855d1e1065c50583b9ab48fa4b35fbfa8d2f003521a150f8418ba08ff5e54c4b441961749b1bd2ea4cee8c7912402fdad826328f89f2f3bcd6887f5a81d449152226e01760d60ea54275cc4cfc3330c007ad73671d1335f2cb358208ea126b3505753ce4de81fc3b046559cb30bbcbd535db8d459d15aae813bcc601b5ed13827b099ad70d9f9230317e96e7a60f3da1c21cd417c7bf026fea325090c8489e2041df0f56acbf508351115e0199b4a55318a4aadbea9f2c24c5caa17a8c09d6d2096c2e00ce255c2e1185b5ce10d182cbd9a066c214a9ae215eb6f24f3ec0fa0ebe7b6020897427a0e40e8b603c4c6376a385b617c3bff7e210e82f7b4f4e9f543d3f2cdca0e3f323ba5cc1d85465babd2f0269c9990f77443ad68947b486676d73a685975e1de16f7a0053b89efb98576ac375cf1f98130c359a9194cd046b8d2a5214e3117b4c910bbe2ce16edf6035aa045e35501a306da018b14f8d53686172537259e3486e1e52ed50c79e9eafa88b47cc46fa108a07e43d741c9f21e557a9fb3da93f5316748144ea732a50c565ee3f752fc993deb74c16bc456bcef9a79f070b8b5d4078102fd183f6a8607ebe20bc05ba2216f787da84cc02f3fdc52cab98e118d1b7cc5de555ca4dce9baa5bd63a4112bbe41071af2d1dc352ab72e78f4c69c24f92c89f965e052a9aca7a44e4f25e26a06d4b643326b9d477b7b1d50f0a8bb6bc4492e1b4475587f70f29d612389cdfcf2b79174fe0531baba2d938eb92b976823cc7d6fdadd25acebf3b60ce37317bb30ebf37f2c3c83f65f52f6586ae298379636761b4baba37a8aaf074bb4bb3ee551effed67fbdfb5b7ff0aa3bd61b1029cf98734b87f7914b56a01ee02b6070df33cecbc6f025e5577ef65a1de78dc2442fcb58e453f3bb2901b087de8f9948d69ae5b9335cf2e8ff1d1c8163f95750179c55030a7d3d6ee1760a6b006d2bae6c227b8ce70446bb4d44a721e36ec0c97e08ca00f71eadaedf42eadc807adf4316162b58d8094f3b3c8f5f250d2636dbe03acd031d3af68b9d89f6466eb998e571af3ef3f6329acd2096a29ad2b1a37cfb7a8d8921b7eb2ea44429b84611692e99f770d456eb55f6e77fdb5d8968e018e2df077cec1748b14a21174e14dd015917d47cebc000aa996f781b1d8233087e046c2407cd45578a1ab5eb91719176be1e4a578644a903a8e62ad50d7b867ff1ec1c120b0f1c89c642d56f28cb1697c4d4829a66dc1ab396b1d493006a718c38c436bd01f510d64a255a31c1d50123bbe9c71791f86ac25307299ad4c83ec275cbf64469da817f0442a5419b828e776a94d95195e87801787512ada2a7a5f0e0c374320e48074c44150f0a685feb8c3586ee8f603bbdc04ce114db9314ea6688f1bc2199ba51c0812307baeff38a42bf0546db4fcc24838f74f697db0b914c47850c8a018a86d8954a915a7a989a1b8ad482182a89626cdc6871e466f5dfabe3a623d2cbb57acdfaba66eccc93eca4614ec36b2d97220f04402d04ab8cc2676b5385033e4d14e9ec8d8223cdc921a1075c66d3f4a97d03497dec34635c9a3d82cfa46f533775fadae01f99b860d1ab196e3bf0815c559841f69c72fb0c29c5773359fed1b3a2269b686eaece59f6b455fccbe80130ecb1790763ee8b8b3623fc8ca6d08a5a92b7a7d7507c5ab04512e4ec44534b0be073974d61c4f740370d689d9dabe97ce0ab95293af8c55eb6babe32c8fa54f46fd27ba9f46cdf86e863e05748e583f0e769f1e2ee8c887794287338d191018aca48f74f356e8b06d51bd2e84301bef48b8a3a1c5bd8afaa8110115fb369bcce253704261d71d8eb4532b8d3d4c30d7747ce8a8c87d3c4d5ec683e139fb00c93ed0ed73b7cc5f89555455d2c3bbebc66d073fd5e7e0876034dc384f91ee1d8fbaf57231dd76117fc8738d96c2ab806f6330fc73ad383781b919a645b5be5dfde0841967a698e8ea880a4c88ea27d42e9aa9cd296ace77f4899532008eed69643c8a2f0fccc5daa2098230595bfa652331ecce24de2155a98ac51fbbcdfdb428632702983acb849cc2a4196192952d64d5b54c19dfd2865e1f16abbccfa5d1ca3bf6bac385e3b2fcab934380104472b45d304431bf153747bc4a30f35625e894f5019c9fe863ecfef2485704a06db6aaf782a88915e47cd787202bd24086783103d36d8057b890b564cbd148c29074c336d2f9210ea56969255498e572624c7258105254a48f183488df8da8cbb93cb1aed724a9f1a5e3483891c0588c19116d725d7caef25fe9a6d653778aee470e0a88003927e65215e2d43dcd09406ac9bdca6659346e3aa080176a9cfd9af4e3d41b442c087e64a8e6f1f0890fb1922af823af5975893f0bcb744e3f24358599037822b2c210b742210c74cf6780632863f06041a0425047a932bb5582018564d0789d1ec3da8683c75b36b974efbe766080a3a1d64b2fa8d8ae58fdc21ea1c80b6e0ee4452e86071aff5265f02ce03d60b8fcff91bffe5c9d9e9f5ba5f0c0ac18b98f7122f8a0d9d5693d69b96b4bda59432a5143f0b310b360be18ae4e143cd0b2b8bfcc2d2f36cd568b7c112b6400593efde300669b72a5971eb31b84d35461490d04114374447c020085c94936abe6d51fbc2ed4198988525d9e83fba0737e8b951c113c4c00213c6028d252b9d456ddf971fcda8bc051c2c90eb1d557ee0c0644c3bd81ed360bb7f2ca38631df0dc6441fad8a71c5929fe645fa31d1e44b4c4c8e5f9816b49802b72fce830f71b5ac057f58df751e5691b5bd7b9a93bfb06edc4222fa165349beb1d6eb49bebec56ddb3c7a45e26a2f084b5f838524715bf4c2d2e6d22379f446ce7935eb1c6d6f8b249fdf2435e91bb24ee23623fd41368c178461c54ba74b99709a15a65fd816825e73ee84907cb921d2b7763a2389e422641bb2df3ef55c82f4e722641be2719fcbe6cb929d6277d95c4658f52faac2f3561a550181112c0446b0fc024e7651fdc31d9242040626ae98b5d58a9247e611e9f3a3617965ef988ddd30db2e5932f106f9a541f667ef766f10f417107446e306535ebc9b3b06dcbeac051a64dfa02695a3a004085810ad0a97e8d9796744d8576815594c60feddb61ae537810699cc4f0719f3ca543f5ae5cff1175654828f2dc9f9d0b915b7604599c2083a526021258a2b1830a5064230620c27ccf082ada05ec0bc503ac01d41b20f5167f47cb8a174803b5c78a0bedf43b758236df36a94886151776dacd1e8db9cc62006f0db09d928fc7e4c5ca41f59180b04d441a049958ced1f0f9acbcf01cbd23ed9b30630337acce0d994501776c6cdc3cc909d6163464f0fdd6269be7145bd7dfda3ee2312f1724e6f88917ef90d117fddc66f276486df8f0908a44ac68e69a4d1bb9b461a2cea3e9a09f5ed209080b81209dcb64a3e738c31f6f62681915d4976a5e6197f91a1e4613144efb0a38b63547f91a19305e8bc65c953a9e475dfeec70195976eea82543e7541b66e875aa3243d970698bc731f4c5da97a359d6f4c712c535797550a514f525129952477b78d6048ad35e19b973cacdf252c568b25cedb4a9f0a07eae4e68c41b6520f92b70073f35c1ad079c97de8be92fb6072528b2cd1ce9e8645c36a39bf90b5925753f28d299229568b2cd12f8b4e5688e228bd500a19c06bda9c33bac72f7d8b34c618a3ec4ca36f88f6d174ca18473d615848e77a90051001f7eda63ef073f472c8f49ffb34bf6d1ca9c47125ee84c434d2909a8f38927f216fce79359ce6bb36d04e48f4ed0b99e6a773a5526469a11462e3352c86e8113393a669f46d9b4671e851cf2728e036aeb0d07c7b900590b2630fdc6ab55aa38f3725472f9d3ff0eddbc8c3424ac9524acdf3c1854591981f6224fee6e0d3b046ce15e1345e8ebc9a912b8145919837126de872a0f966c9b088ef84d8e08e01f1a36bb18bae8d3c2c86885a8c719ba6ed1ba2e96733e3943b25b74ac8f4e8f20bdba377fcead7f5ca78327227e128a5dd0e9cc6f357eae218b5798696386d961a1ca3ca0f4bfc3d5766f3495da33eb5ad3437e746259e5172344d9f9f16847af470cac087db7c5fc2fdc9115d50d74d5ad4f61a4e9d0b492bbed2606f1ebf8a1fa161a938d71d0e9bc9b7cbe1c90296079bbc7ac9b7cbe1e426e7ea69abdbe9f30637f7c01d0d72d77d1ebd88e621e72adbf1a0f2a9a87c49d8f015ee2ba2f9b63fa8e19a67a3c6c7848acab731c5f3f293e1d92313ea86a83fb5d4e136ae58c7cb8eba72f252369442148ee778f8d217923cdc7c88f84ca4ef8f90887e8486155d7a218821c7f9e651732dc6e849d0b0e2970475edf3119fe431994ee7c74474195d2611a527113d89f8d1cc22664f29688f361fd1582a69538bdd1442376d87d6c2e63b9a5d10fad3b9ad04c4a9c784f415816261d14e3b1cdab79e3e92db6cefa6f3ab0c3af9f6386d5c31213d8929a7c7d40656e9946e4cb54b22d7b20aab941a8c9fe4ee6e666fe72f8c00faf6652e42d2c49649e0b88dab1fb8f7b76bc36e2a246200368434bb0518b976e4c3916f42ea6f5f18c46f3ef2c2fa231f7512d1a52741fac220bebdbb202abf39fd766d187977392c8b7acbe24e08fff6db11eaf4c3620486326c9f4f297d72f42450497c49d0c422686f5470db51f0cca93eb76dd338ecf1ecda1eed218f2119421796e5997d4b5f4824e6b5312a9b6e50d9b5d2d76357831dfa10573131d5be6d354a8f52aa7942cc986ddb8df1e60c631ea6c159f4739f481f098bbcb32735b967baa24e2f72e38dec2787de4773a62a2a13d7c61a390f24f7d10468d58e06d90710044201451bd450fafaba0f13589965c239b772e5b72e678d9ce421c169b046df6a4d2a810f0d6e1425a8955283546c0d2eb715450d6eb77e7b5bce6e4f7e5cd435bf2e8513ee91827b78a6b862875f3a7cc349ef96ded751496d22a570a1fc0a991fbf8d54748ca5ad7d34b8ccce140b4f5c3edf2e91c81ba9e4db7d74fcc2c8c0c19731fb859101f4e108e8db6dfcc2ca80f2b12c00c5b2f013a342947d40ddd81492bcffc6a4b44641dfce4a74e29c715229a58c1f2bf18a44dee969d089f494f75d41bf262f5f0db6121d3a70765c5c8472e4988203c713142a074a4b4b1435376ef8b0b014adac48b16123274a8d1a505454708a6acd49723a4931999c741dce935229a786e37c48a428a3118ed0b6e520d17cff07ce94ff8133f4bb4fd470035a2fda8060301fd913cff1e2314a9d35d89a946f077d064f7948a49c06e6942f0dde111a568a4ba59cbdf8a538a666f0d40c1ebd70fb19424de8c14f9be1d3a23498a4861b6c83fdf8bc64dfbefdb42adc80a044f9f60da855e17c456955285d41ad0ab59e17e299fd762dcacdca2c4f0f4cf6131479566601f0859a1219be50d3f9f6172fa44fbe5d73d2ab65b56b3bbd92ac18be50f3f9be50bbc2fb42eae35f38a77cc3f08553ca0b5f487bbe5df842eae4db7fe0dcb48a91f87d1dde0f9c1b254a70745ac547fcbe8bf703470767076727a8556cc4efe7f07ee40409090db58a5bbf8fc3fb913334658aac559bc6efa3bc1f39b2274f727e5ab55bf8fd16ef47ce4f0e941c2851b45ab55af8fd1bde8f285a51d44451036bd516fd3e8bf72307e6e343d4aa45e3f757bc1f39444545b356ed19bf6fc3fb913393222507a8556bc6efd7f07ee400e544c989f2d3aa25fa7d15ef07ce0f14283844adda2cfc7ef57ee010e114e114e5d8b46ab1f0fb27ef478e4d4e929c24b356ed157edfe4fdc0994991d2d3aa9df2fb9df703a7c789131c59abd60abf5ff27ee0c8709ee03cc969b56acbf87dcefb91d3caa9c9a981b56ac9f87d92f70307e6e303d4aa1dfafd91f70307284a149ca0566d157e7ff37ee004e108e108e5b85ab554f87dcdfb91e3ca419283e407ce50ab760a8f33d4e0fe0f9c292bc33f70a62c8f7d1f1dbb01ecc33993be0d7d137db73ebeb618e7d4b4d734a7add34afaa6c1a0f802329f38a1ca2f64d90deb386fdcb6f9425921c9cf57ab16660524df3eaf983dd3c9f715ae781ebfb029453f893a1cf8c8b3039ab53115eaf07c4384895e9ebb870635e49b76c5d4d7af7eddc4150deded8aab54d7f48a868fee748a28ae521f8d5cc335f3154a5775d5215a03ad67865acff7bc422641e26aa11a4a972bae6aa76ea68f8266681b54c0314b593f962eebe9874cd7366edcc8f10ba737a777189dbae749feb66e2ac0a062d687abd476e6f645adf10b23e3c5ec20193a31b52fe5f70b133ae2e72f6ce88a16e3f5db32109ebd2679d4affaa7d56aa180c58ed251faa8e30fb060fc9c6a0c1f2e94282c1fae90cf872bc5860f77ca16714dc8488af0212701fa90957c347dc83b6228f9e832fa2646191fbda25c0a607c74700c9b8f0e3386133e7a8c0f1a7c741da478f1d17918c247f7e1072957f8e84090e0a30701848f4ec414d28049a1f5d1d94505243ec2a850848fce37ad5a581560f0d159a7550b1b52e2e3eb7765261079468d2d99a2868a3d26ae46498a30e5889b2629c881142d50e14d1c63c81f77abd56ad9b0c21b3e3ee9801274b0c41215fc60c808d6181f9b8795e105fa4d8cbadf2c56097247f2c826cf4e7f9e3d6ea1aeacfa87520786460e8f7e634b989857a8aba3b3324c844655f11acece442bd375b342758180ca086ab88a2fcb05022d23b0e12dbefd0daff1b9f450c3599ce53bb2e23554beb6e97cb0c1e22a9f4b0f2a2a2d5fbb5e3a329f30d9fc99b3163b494eda3ca8fa85738868b6628afd5451cedcc79387757a5e3a3c30595cedcdf3d4d179c9590b36816e78643cad1924933f724867cee6cfcbc6c5a978b2862779648f84c5143b8b2765f227a6a4ce0d6f592cdeb256bc65d9f09655c35b968ab72c266222fa436a82db9770fe7c3bc7d18b95894378dee274c9b8070956863feec1f268afad189768a2f95a1eb38a4db5f7ec59e25b06dfced3d5bd96841a7613c5951c92434dd45a1e4ddd356d78267afbf46242b12b0663278c67e2c73fdca3bd4924189800042086185c5c6cd8604d0a357a2887783e44bd9ca2ced6a2c6563b1875bd7062ba620afc9041de2abb1a1059f40b420da74cd61ec36dfe6c27187da102245fa4208d973f2bd32f67e796bfd83176ec187b44e2482412295c7929bf98229136a1faa381e4c3daaf88460dfba5e22a2a2e3dd438d23da8428755c369582a4ec35a719afab9f450dd86dbf88ed860711a167bbf9cc5eb15af5f0d685603c5d4921aca1f4a1457f30c229dd6c9e7505cb1490743e8814d2bae1ad66a45214019824f8bc54e6fe26a7f5a2d9d9862274dd142169eb458cc43ad166b932352470e923f401ff6ebf485548775e26af2c414f3ab96be10c57da1ff7e5f38839e5d9bb36720190f49221d76faea7153060f8bf4855336fac2f9f3ecf227aef80567c08858ec1228aef686670eb9a82c884806f1501ba2d6d4f9b9a1ade709d45f3861cfb3e719e843f963c3ab58a847a861ccb3e7d2830aca6958d573e9a17a0daff11df19862af4ec3d2c8a8d583892976150fa4a286e0330f0ba04cd021f2d02af61e5a75e39955e528877dd316f5c6bb441f79f48dadc0f5dbe570e3bba741be82bda8ceb033cef8fe4219f4fcf3ec5a94ca1179e9d1f3d1aa90dfc7ce4ceff6911359791f5d4d6d0f636ef87c3428c4e6458a683dc9a967d2a28e5c13c248fde9b447a3e5d183c8cab7c7181f5aebd455c9b236ae4214f8dbd60a7a0c0c8c0e514a8d4c7888a9765694f2c3cd4435c8194161c474d05fdc6be0e2a030629b354842a13082695aa0e38228435b08829425ac58831892245f7f63486aa6c0ad4a5d1eebb18ccd0917a3d4e894b163514091d206dcbeaccc3dea10755840abf64335e83aa40f2ad315fdc0988ae0cdf4762101c860fbee7a01303d3730d841143518c21456f41dbd5ad60acfe4e81ed4e6a286a81830dc74883ec455f47844d5c18756f54707a255bb319d9def567886b98fd430c42aa28621d66eaa6b186271b2bb01a42c58532709e937a6e37a1d56267ef4202bd31e9deb4e022eb7eb81590b68508706a3fb2fcc062dd910ed0247f61bbb8902c36fecc6c9f7f4fcc4b8bba506777d78f390d87c24e5e6fbdbb66d73dba67703cc1135e41e19f7b4aa670d3a69a19c9e0fb98767c5fde4bb87741a6cef711255a4bb4069954b8d36840394009eb54a4aaf6a389dd88d946fe729bdbad1629f566d2c67ca77b3a2ac5561f4f8a455dce4db23cf16238f8e09e250ab55f233c20fa4a734514d74d9b4ca457e2df43d6bb03ba8c1f6ca3dd149ab3686039480b85d4b591eed3e5aa2a06a51a4d4b0877c853e3699d2b214732a75023428fb864d49d7f1f272c74bdf4a5cd4fa21f770cfae8c98c0890c0c1b70f1840e6b73c0248a1d54810436316801abe3eeeec618639c5322c3be977b62aa57ca1865e49ef8538ba64879f623cc363076b5ca869110b5c7e836cf5c5a39d220b7be8eddb163b78c2ea99452ca70e54883ecc413277c4ce032418bf727dca2ca8f9bd9175e04fd7640e26702d8c74cd0f3ec47188994a21211574bab50853052bfd130637bec9684bab1269e7cd844539e3deca167df47121491cc6fc50924df44adda981335cfde45d1d5aa8db5a43c4724cfcef16e333790edeb2e870543ee8f9d698b4a3d87520ef129f51ce8d731a99b6b471ae456750fb56a7ee1a6058d547ee4e828a99b6b4ba81cd76444e96d80897e4873b154848b0807d337d1f260975154399a3520b2461f105152df82f08c6c2a3f727a1adc17627a07f8b54f08cd71d03cf91de90644a791dee7bd0d6e17c5150836c56e4465e2994ff0ec31a26247c4f260ffa2c6561335c83e8350431aa2679953d7a34d0d295ab8f98d15dd14b9569e04513ea629b54d83314983b1d4aad6d9e954f4b0baf4681dd52a97e9cb2af98b7cda79f3c495e98bbe0dbac82ff23458b49b278b84d0d12c1686c692adc445182f63934ef1c0a28c5a548f454a7809450d9b87ce6ac8366d53147942a1ce6fe5a7b79ea499b25d10ef1e1ea1df581453befec6a210fa1240f98d2951f221dbc494d4308ffcf61c38c2383238edc4ad698b3abdcb617afd64a74ab557bc22397b8c2826a3d1273b3571689fac03482d35c85e44d368dd2f26a4b486e4a5c776765e7e46fa3d80fa908856abe5ab45e74e3ac7254d6aaeb5fcc2f80d89debfaf695e289d7e520ed5e932fe10d97d834b89c842426361d181960b0956b8fd16b1f8c2074f1ec7ef173ee079ee34436afdab6c38bc6f1f6daa7dabccbeddc6f18b1a03d3604f951f38403308357e4c5c7a98de088e984efd88e6f4738100f5cdb76f041afdb0706171c7c3fce6c654e4a23aac488b0f51310c6e2b5037e6faf98d2d11f43ef88d2d8182afad8a5d52d1e80b46f9d423f5c2c845edefe8f3e321edf187c4ef6fdb261ada6f79979777698c31c6708506d1ab1a533d5badadd5a4969ca380845b0dbab8a6c1f626dc1a925bd8142dd9e28c2424f1e2084c031a040189d46fcc15f4a6dfd8124b44e91bfbd8c2a28c3132c33e72e4c89123f390ee6e9f37dd1ffbf097860b2f5ec658a30bdb95d965181bc094ca2fcb4e084d171bfb8535c7a7992ca770d1654acced3669578ee6b61e4a29378eda7753baabcd4deeaeaa5b70bbbb7b9747b76f37697db7d4994648c0a0e894534251e36f6c899a0d05b57f634b1cf13358c2082e3274464e4e129b2cb22083d8122d9b2aba40810b0b194c4182fec6943883044b299556d8803a911555576a8dc1926ec1092a5ba1c518b339e36374148c4d9015505dc4b2d0c20d747a96a0c33c3a2843d381194b4c07fdc5dd0a1b50274b4c2263dc600945693441050f38063a58d25ee840c809edad889da004a7df98cd18cffdc64e2085145a2b133f89222594242165e8b95169074cdbacff8660dba07810fb257d21e828fe6c4e9f0d7bf2e53f7d7b43831c24a5a396074f5cb50de88e42d9f09c9c3af5b669d59ebc93dce49c33c6cf45fa7e94a6ae76b576d544b952695d7affe685dc0931bdec829cda148ea03f1c41bf4b90f86111bff2fc5c8c4f04e665c943197e0bdb86f3ad576dd3a9f66dfb6483520a75f3eddb1aab15972e879e34228d46fe245f928f9440f22cc56face6c973b1cb41be6c507e9ce45e19823ff9e6b2472653f153e727d99fbc6e2eb7ceb7d76f7eda6248c0be7e75ce86ca0a8bcac9647ad9c1523a79db9baaa8fb9a739d497a91ce4f5ec82f4fdd0e529e3ce97b3a7dbe79dde6a52ec8698b6dc2a2866dd3495a1556afe1ed7dd3aa21d55556c686b7f70956e6e41539551b1e7fa7e227e7ba74f2f6ab77f2ed829c5cc57db40d6fbfd6af86175637b98a37a4fac9b94e48e727277541ea77fa3854c98ce7fce4b5924ed2a9f61a5edbcc2a4b9d6faf520cb903eae4e19041ad3a05f1503ab6ef869d56852737790f39499d51278453d0f3dd0e9d6f5b17e4e49bac3c9bb36c2e541ec9237978be4bcb63aba256d71cd5e1d08faad24fdef6b31372faea9c8a473f56e3e4778cdf18123fcfb9944c56d4905f47c9f482aa39e7c23668847f08a8bd304dda9bc211bcca47b5194d6111bff242f3be204db2c1cde99b3cf96d2c79a10ba4dd6074ea85f32302fef48f613e437cd3aa76de2176d9130411b2f0d30418536041095839f850ca80663cac504e9948927ccf1be68929ee86d5f804ca7704fa9e61a0e77584122b68d282265861f4714dd11fca2437b1e73bc25a7115811d247696fcc8a6b004d6171f46578d17495ee08492a124fc8015461b2fbe084bc801162478028c325861d4f9d887f1159b0421e5db87ba0554b9bd75e24a26f199421380308425a060c13eec970f36c0e9828b2c5c410612acb079bad8620848b280b2240b4d6c5861c39e8b0f5bf6c487fdf3fd61438940e3ac11947c23f96e9befbe71fdd02d9501166403bc1356122d58e2042a1c91451aac2d3e6419d06c68ca12269a8b3656c85734f96e988e8f98628fc0aa460bb2b77f387ae6246ce3e443763d210807453f50a28a2aa48015724b8b0f378ca2156c9104298a9c1063853b8483ff21ae7c708113a1a2a2239258c16a282b8f3eaccc7a4b5a60c511c480020523b0388b5f327ae0832eb65024042e9260710fcd0a9838d9c11831d002a70cd60dbe1d660afdf6085463112a75526713ea64420db9c537375b3dc2773ffd05ac614d47e998a515f0431d32f808c647df6a9220e1630c0533f8e8daaa8621d6ec804c180d8e0bced8420aa6d005175bd8008d9c910cf380a2e6a3475978c34fd99c3f3de607c8b2e93e2c93b2552f4f047d8c2c63d8dc42d5846a589f5d7342d5790eb2f1037bb6b159199e2d0f76ee9b9862b799f56c3c3d30d90fd00f4041331d9bd9c643b3206eb9746c5e37363a3c3d41339b9b9e562dcc356d6e5a1236c1382276c40e0a75722ec2c9b7e7d05c444f11ae27c2444724e1f11b33a2081f63801d797ba39173728993dfd81135fffdc6963cf99895698f6e80dd4aa8988a9d0c2bd339f8110686db7e77a5e2613bd8204c83b1db77c0f0c334d8394c831184f91173830f1d3893b71ff3edd26362cc0d3ebcf674b8c9eb80909c9bcccc614c9b382fd1943893fb88240fd5a0c9634c9e8ec951ee80c8b03ca26b9d0454ba0f0247580a3cacea2777a9618875a486219693ea9f86135e8be96e07edb74112c939ceb70e08d7b9d0101196bee4262ff44c5bd4981141f8ceb76b9347f3ed1989df7d2c495ef2386f739237fde48dda394af32cdd47f4d19bece6a052938cb0eccd2e1023035c7bef6a1a11185f29d476cd99e7e4e189c06c5c6ddab6d58a42357738c8e76f3a7f40bcd9d3923fbdaaeb75e58656edc66440f9cb77dc515f3a45f20e08d82b93771ec28431cfb5872b337d5cd4d57cbb2c3512eedb4e853ca4cd56f2d23a45afd33b9dead1d75734a8036b584b9e5635696d6bbddc7ae670ed73773776490075e4ec1e358faeda341fb91c79238e878fccdd2d69c8c3977e8e7cb4b9ec74d8e76f882402238465e30ed0bce6ed5a58e2469edc3a20be5d34d2134608cb0bc278c1b77bf2b71c683e7e1da0f976addb813a7b2197864cd3c73e228f8668df4b2ef5f2d041953e371b6e5f421af4d2b99eb35d9b4a8db9424f27673939cb0d675921ba516a29459fd167f439e70bdce22c2d2d8ee3c60d6f198d9ca970fd0ae137364592e766f00e07931b014b0bbedcf83ccf86e36061f1130c9d103e9d5ee882b0f8c9b77b6101a7df08408957865b1cd5e23772a0bc2587c70fc38d1bceb2ebb9bfe0820b39ea9c4e9a734e0f07aac3c1e4d5391a4aed8a2854ad4ba9a3a853faf3d4430a7bea2d1e4a1b23ac4c111e0242fdb40a4aab805a6cf810fc36be903fc4e1369cfa50d974ea14d6aa4e08ffcadc7c3a8bb7bfd20539dd6069f15627529db85ad656a9f3ab7438f4df0875a0fc06cac3e9397cc8f496957171eaf2042bc3e2d4391616cfe193c55d3c7e956e07166f697116e77a7a2cbe5d10166f711fede2edb37843f0e75284dfe443c8477991d3a39ec5519eb7733594b847894d55d4d393a48d69490d65eb599c8331b12036c5eca3a31cf50dc16f72ee70a8b365e6f8421c2ddf101cdee2d44f2d6eea82e068f958bcfd168fc5bb0bc2e2373c4711fe1667f186e06f317d210e37b1f8ec7218d2e246f86f380e2a5dad6af9505fd852d3aa1bdf9016bfe1d44d37bceb82b4dc104089570687212637c282518783e955432692372e6d38a72e93b48a7ad709d97ce4a52e087f1cd79197bbf1852b3f9de57399beff75bebbf27928830bbf2df5b03b7958fad969db4a874f1bdebec9dbafe1a97861c9089bf1d44753ef56ab885a55447566584314fdfa75f226914e5c4d333625fd04218a8997d4089d975c5fba0e4f26e994e43ea9c4a641299d4a6f575c290087a7530ac0919b3350aba494ec9c0efa55de7c7a21cccfd1684404a6f43408d55f12722efbb6c51433f38eef76662e383a7b9ba5941ff7cb19218c6cf233c242b0bbf0730eb3490d7dc7ca6c4e9d00ad2a52c4373fe7947a6a65484e9dc7ca8c9c7a4cab465e117e9a56172f0514ea4a829efa0b8c0b4f7d859ebaa4d4544ddf6ee26289f3866c3efa8420e0db85f0f1dbe7120401df8e80ef75fa04d2eeba8fb824ef8dbb59732959b26429a526bd352d88569134c93f0ca541a00689fc00840538e89fc0ed4bc81171a4d42ace973492434f6a2771de7e10a4204846886855c93bd2ee761e4f6930167d64d6aae0b98d98474c2291865a35dca0a1231d448331888578d66034d2606ca2fe600120ba358a82cba1f453cab8756ab790c8e7227d9631638c7524bf483dd2389adbd4e69c94c61829a51ee9fc9ef89191a6b4c555659fe717948edd180ba27c370cb893dc42e2a0863232cbc81188676f22a8676f9e7402815b18b86d6ee3d93d1b68ce9ff9a3c1954929657cc2ed6e1b99c0bf3246c54d3fd7b0de4682daa50f11f0ec8e009ee167da316a2a3f70640daed71756c61813889e7e617de1b976eca9302ca2f0690192165cc172ce10a57de1b6f10b51ab954dad4bc9cc5ce2b941d046bcd252487cfac91a495f885a3a3fff61e4ed8274a3a8067ba210634022b926a3e4483e7270c78b8e4a37b6a6f98834e28e0124a7c06b4ef2c217ff219a4f468d4a4568d3a97ceafdd54faed42a053985122fb8088293305e5a108109375ac46e7070b3247683845ea1d6d2169b3b883b965656a669a95475bc80ab6da356a80bae48199b61a292139d415dc9445d676796de7dcb2ececf257e3898be1b096e6b15334c8c839af6854bbfca73e9b6bfce34b288ee16e2628c1174540db75806f3808b31c65e8e4ebb904f88a5dd62a447b0d4c4a8ec3ff286bdbbf2cd762a3f72781a5c1ee28ff7e1121111570dd85474237cf4f578581e3167b963b7fe8bbaae9551a3aca2c61865d4c2e0765d076aa59636e9721b8c3b44a4577dc335bbf21153d3372435c987ace4d75f1c85aa15667d27a86d41ea26f5e806cb9a64a9c9d5b8a821f7704e60dc13fe61a0ed725039678f9d306c0a51a9f485bcf3ecec849b4e22797ba3cea786a50fb9c709c3b070b35f60c1a65fadda2facb0f37dc5cf293ff661f6965f2be9d5b24a3ea6c336d9b66db5a250eee0bcf96142df98418618db562b0a25fb2604e51782d35550f433bfb114c07ed6e094f2d3234e6de70eec89d22aea40403f3f32192c26060666db6afd7a7efa0fd2fb6179c49756ed4b0baaf4e83d2fadda97119b58c0ed4bd8363fc365c2af18cf4bc6f39af1ec3fac0c3f7f31927ca479c943a2e41d73c9b72bb9a6954ace1e2d711c2d71dec84bde68870319bdb88088a9e9dbacce3630aa742f55cea7ebe07c9f3493c2435aab5daddafcc66327693e58a3dc36bf31cc2a6e8e88f229e8f19798124d4041149e40e2244adcd84ed177607b2628229096a0567cb1c49c734e206c560449274b3c61c36dadda85897130766c975fd37011ddcd046e5f5aa554555ca2775f5f7e6f4ba81ba382e843105c706b507aab5ca20bc1ec2f0b4bc2e655f21d498d11df2d83625430f9705b988b0bab8682c9c5fe4009262d9e5159993d400d4c9b715d995ec99bab86db5253ebe7d999634aae7866214ffc7cab36f684ecd9034d34d144134e38e184134e38e184134e38e184134d34d144134dd830d1f9faed2554f43899a8dbe0d6200f30312e8c1472fa7699740edc6d3bbaa4e117e41e322e381d9c2ee79c207b30707d8cb3ca1e63dcf1f288ea82c3fc0d8970cd37770ce0af08cdef78c9ae065d35fa1c92527277ecda3369519dd33a201d71f08fdec5b68162e5693553bdfe6cb5a2500efe2a9ae2aba39c54db4624aed4994e5545c29eb3b1c272a3058523878b0e175e80c1bdcdfdb9184a31bc9464abf8a5145fdb566bef80e3e100509af11828a682d8c989613c3ba821e772b50a49af667cf6448e87e3a194520038a534d094534a29059dd218ea4e29a51406a774453fa79452ea39a52aaac329a594ba38a505a02f38a59452179c52025094534a296d714a07407338a594521c4ea900e88a534a29b5e194da406f38a5945216a71486d6704a29a524a7b407756e4229ad81524a29e541a974aae2b43aa594d21d94524a17d04e37a701a094d217fa423ba794fa4a0784c620c30c312b550108300001d800d3a3061e3b0200801700bcd0c0922a01380300647889c186c3c039070357e3eb3c124772120c244e4547c9854422e920b99048f505ce051289a483e442229d50a41612c94d3970cc50b39659b7b2d99009c964b2d20d8de5e5b3f2bdb81a94e4daa12e1297a0ce994692b09f3099902693c95446b55649b9adabd7cf6d9a696ab23bda6f32f998647125e3d369a724c9cd8c175d31357938973bbd8add4c3671f2dd8b772ea5d8195993f25052f19d4b252b037ae7b2d52be97249974bda14b56a06337646eea83c8c6810ad0c0c517a255f2fa19794d714a056bd10c6ce489f0278188b006565bc9e5e49990c2693751e9bb4cabdf328839d914204f030d2e03b8f3c2be3e29dc724bd92b35954328b3b577c97c33b8f4decccac198087d104df7944b2322e0cf56aba5c44aed87245979456e9106367e68e003cec31662bd3f2a457f3f582f28af21292b5ea460e7666fad8e061efc0676570bc7a3565321e594f87f2ce7b053b3385603cec25df79ebac8c0defbc6b7a35b76ed6493a4d0b3b436b7a78c86914ad0c4b50afa8cb35730d752b46d819ba5383878c84ef9c8156867ae7eca457f4f5629fd7931743f92e7ae75c839da13edc63f2f0906ff09d739395a9e19df34dafa84cc63ab257e7bcc34386e23be713ec0c1532d22b5a14000fb70adfb9067646ab619b9561efbc73222bb3cd6a90ab731e7aa5b9626ad2e0e1fae03b0fb233da0ef798be3eaf1b5e9defe895d6f9025a35f2ce755819e99d83ad3239003c9ce13bff6ebbfb3c8cdfb90c3ba3f9bcac4c7b278ba959bd73de194da8730074403ad84b570c2e195c3b3cc35da1daf9c9b9e4ebf5f2e119ee55009f9fa4d94c3693cda64b219ee16a0820f4932493c9994cce647256c33324a101d4fc24bd5eae97ebe5dae119928f00767e925cafd7cb8767483b36f8c8e26a349bc966b2998c6748353053e8a7cf595c8d64b23993cd996cce6a786624d4a3c61557a3d7cbf572bd5c3b3c33f2a961e715572397ebf57af9f0cc6887878f2caeb6d94c3693cd643f9d0af1cca8660715fae97416579b4c4667323a93d1590dcf6c4201a871c5d5f67ab95eae976b8767361f1a767e73b95eaed774cd8767b61d0680cf4fd76471a5c964b29ffee2714d847866abe11ef2fbc2fe50137a8f338fb3384b7db2e6a747f03403f75c01802fe4be9718be8fbbe2a7cb0083e905d78b7bfdf417aff3195703c30b33aee6a7c7e052ca21137291e590c9847efae702a783f4f271c9417af9fc74af857483e422edb4905c3748ae8ee422edfc74c73142cd48352d37ba19a9e6a7c36063d3644236649d4c9309fdf41758b495d1cbc7c617723fa8ee0b51f57bf9fc7417288da3d1cec835728d5c3b3f5d478da9b2cd4635dccf6cb6cd46353fdd85047593096932994ce8a7732497ad6bf2b3c9f6f2d1eaf7f2f9e9dc28878cb17b35e8f56fae9dcdb5b93697f6edfc73a6cad9e0e8f6f9859d92b8e25c5b0dcf90643cfa4214aad64f9bfd56f39d92ea714d7a48329ee164b03db81f14c74383e53149b29fa76f3251655c7536b3ef1f3950abc2cee68362945679d5a655235f19c0a7774a3a9d6ea7556029ba62c757c797cbd5dcc9e39a703daeb8e29c746afa939f9c8bf3e15c1ccff298de3f99a8a506a787a4198924a555edd34943adda7c7999e49d4d2320a64af16513575cad36db562b0ae52f2f2ed86ef2b405dbe9f6dda39de3892b6e53ed93dbc2c6d6e5e0bf79b2b3e9a99bb7cfcea6559d017cba89a7864c0ce0231f397f42c82e49abb6bbf9c905a0346967233b76360190b13900d354fa5c82c82fb9fcd2178ea0891a9c2ee37551a726e9e31e0378eca4533e0d4e6f8f654f1a9c9d4e5c6d671357dc837250fbf8c59a2c6a74ae49afe22ba6784a1ccf4f8fafce26f2fcac6995f65d924e4d9f9d929f4ebfcea6c1e99dcd9b08d0ec02836be74ecf409e3decdf9717904f404c5bd4d8e017b99b7908dc4ea0768c894b076e7b031c47c9a8dc5d0e2f0d5e80e34e5cda11b70691e14f31a64d04581e1b25a3e670c3ef46f96d137738c4e72f6679ac13a04a69da067710c65651bb5a737f91990999461af17b8f7841cdaf17bfb12a60cfc9346a18799e04fbf64d16c9a29a1a24483e9316550e6da1860cf43c9b4e11aa12924e5c512ffdc4574c3df99081beb8b322f16c3f25120f892736894ee41779368c3c24d8cd0aa658c114248f248f241654f6e85a8c1a893a6bde9aa6691ac7452e72f7e6e00e989521b9c67968c36bce452791485c9048e24824dfb180f8ad34c1e045fb86ec4f16dc5220ca73de9c37e71c0b2a0579472a38de64459d3ea9a821e89c837135fac26dabf4e348dee4cd575379697004ee80a1edd467b7c3ec82b4731fd82a0ed21c73df723e043ff791bc0578fd796b8241a5334a8c314a931652fa73e963dcd5aaa858886f2829b9630e4ab3b404982d82389e40a109f8b212638c31722f21b210641454548291c9417c1a6148b2e0044cf01013491b2f98208aa9b1c3032862644759204e0838b8592025708d165464c3354a581900ce9328ac24e1861b503484f10222a054468cc8201029cd521288bce8e82143e8251a89499051649432be2ae937b6844756654e0feaf6041575c404131cec1811058e274ae9ee0ee4400ec42d206e017101e4dc72206e013901a86e53a8cc342c62bab73cc6dd81dc81b8051405209e2f685e73edabab828ea598ef2a5f3eacafa3ae6c25144a46b788b2b472794c2139356f5b2ae040f3fd51a811542be958a99d6a9685a55558b76dfb640dce2a3bd5469a15eae42aa394dfa64575195417d46d05759b41f5e9bd94aef0a1c334185c3cc2a4b0cadebb0b85cadedd278a043fa1f21071c7b7b8edd59595df98ce94d77e634ba8f0616518b72f214b0f6d402d8fe840f00c7f38b6878b143e3ab8dab6eea53f4070db80bdc0b1ab6d4fbbd23c3accca4cf0371cc0afdbb03392faf488581ed1d98667e40782ed113d6a1f101f1a4ffcca2c10cb03668bfcc5d5f4d18650c36db601c1433201b745e596524a94b4a9f443ff0da3863b7320e26abb673d8bbcd2a00492032999a58cb15726326f5c313321b777b777e79cf29b506a589f06753dacda0c6a285f426d673afef04c7f71887b0c6165e217cb581ed2e516b56bb47ea5d4e8e1d4993c728ada5fd843f1a76171b5b90c51758b433f711587624afab655fa851525b74fdac49474ed66be8050771a9494d24935aa518d524abfa9335fda11aaf4a913579225875ae5222317d56595deadb8dd7aa9696270536473107257ae4f49279d74d23977bae46d8bd2bf6a0101172625ce491eb24e7f5b89ebba9b7af2a4ae4c3b7742b439638c518b9b6fc7ec1989bff98894398abc6996fce2b74929757febf28855deb69638f08da7ce073d43a10442e8c11458eb1b51e51dfc0e4b70c21018302dae90029603847acac8428a1c1c2188c53a78768eb232f23700fe90e8cdce3fad8abe429df301fca4d6a864cc9695494f324434330100001315002030100e8844229150345546790f14000e889e4e6c541b89a32888610831438c21c00011000000001099d10600c98d8bd01f88fe8cd27f7ce3ebd0fba7e772afffa6cbbd3f375ff4fedd78d1fb7bc3c5de72bd5a9c3ebce96f99be0f331f5604956441ea4f5320f62ad49951a361a0e0b1c459bd168162fcaceb06c89174c65447a199b4c390ea5de3fb0213fa1f1b01937ea64801ca0344d109f21999f05c24ae9ae09cbf5bcd07b081a865126c94082a3d48315839e68db57f0384c994192ebfbcc679bce696fc266668d96cba0cd923ac8ac402e55e5fa82895edd6d79e56a8a98a74726e63fb3856690a51b0054295690c05f9ef838d95b9bdfe2a0d91bff6e24efc6086c5a1abcfb1c1fa9f214cd7b1a499ef9881357006b27b01a61481289d351383d3725d76f333b9c1e57c15aeaedcbb6f338d979d22ca3db31b56fc0c392b58c4ce47a88dae8a3e3ad3d6716d0453dd056c379b9ebf9b47e7e4b690b8b5220767cdeb5dbb623cc8ec9687f5fd584fd768894de3c7f31f9ccd21d89672e9c6b62afdf21fa93257c4bd3159ab5db002660036319398683036bacd0d5c13c7291836173578890f5d580b03195feec10302e4139f9b042890102e2078bbb50dfa946f26eefa5460e7dd4d0fbacfa8d3b7ad230b7d42a49ba19859051eb0bdd63f3fc7cd2b2aaf9d57362f983022cdbe9b732506cb47ff24bd21217bfd761b114e5434529519a6888714fd0098910a76a16269d08e6a0daff333ce02ec0bd753564c7b6f47389b83d7c21d976f10fc3721015b44d937c7a51588919910a4ce11ca6f30733e626e84b4711ad398c63476a38dde88c635ae318d55a36ab2315ba6bdc11012da582337bab18d6f8cc61aafb1466cac37cabfb14c35ca7e4f72c69be3150c563a3130b9fa39c6668122cd5bf996e9a193cd0f57ce81db629af6dedfc9cea0e38cfefc389854803617fee9772e5e0e5fc5976d32dabeb7537b54d596c393862ce873eb61e229751575b68fae221dbfe2d9fea0eb9db4bc0a08eb62684801c1471ae68c8d81eb26140eb7c7459fd042a37fa59f7642366b8aab6bd16274198b75de1afb6bfa0c99f7c9804d2960716cf35951b7a8e558eba6e57f2f639c141119629ac372fdebf69e143621f7adb2d827cbdd01cb3c96eace6cb9e7f67919dec88a965268c2b8cdb2bccea39997f6cec97ebb4cd609b288a8ecb666c09a85c5d64365f9fe897abf3ed47c77e892bd932d97c8e193aef310acd57b084e54d2ef377d8bcade1751475ab5c6e95c7f7e0c69b84c5a5426dd29957c0cb093f2850e3e1f04f151f82cfaad37ac375837ec37da6fd837db6f5a6eb26eda6eb26e586fb8c6769751b9ac8eb0098c70bebf32e3d710a34528071360253068bb5181a454f894a787844ec65c71b4e529f3510f1dc2436eb349c928a0eb3af529aab248424aacadabb6b1834b9e6bc42c6fd076e3fa013b9de5950264760f6f1bac18891d3f94699664b18c6c14920783212a837221c17e04b36528e753bf2ce03de59b6a54c1b3f5da3cbb21703886e0538f5125a65b646465580ec665cc94a070cafae60f5ba0ea15884a40a419e13404a63a039f0a228eb972e0dd93d75bdefef0014b31422462c78e79868b5e9b5c3f2874d3207f1b4d9638dd6be664b207227c301a7f2ff84f26489e1c22b1be7aee7147273615e9f54a96f4114c3dc860d09ec4d3eac7879e86fa9d29677a094e3bf7cf158bdc978dc69df4a6743596e5d65b8dc74cdf3d06e2264b7a8036a877528f8a05622b39b93da5c91deb2023f420865a4413222653d9c934797d13f142983edc1fe827f4616ef5cc4607baaa08c62ded630bdd30d88a3e77895d272fbcf5730f5da2a46bc849bb78a11d13f35aaf33edc321901f60b9ba19977e73c135dd315082c38b852d79e0ce7ea719069512b1c142e10aa9d1fd86290ce85c8359d6d103300b0dfdea57b5fcf440225fb0221af805dd0a249e0747fcfbc11299f772d149663ead123b1717b1c698c0e717124bda6713db10f5a35612ed8f013ad98a4ac10af4f4b7dfae9da7020969c51a7ee014c47b610bcee2c69b9e254a6d33704685841fc8abc6e353f29f8bdf65af62dd850e25b80745f21b6872277cfcd7367c5f1c34320eb0c0378888e128eeecc37b32191268765999e60676eb3a7b744adfd5053b72faabb70e1f20786aefa69b1c34c09c0de720c7312126eae9d83d344d5c1704991a885fde74c8497193aae65643589c0eca931184e45cecfcbaedaacc1cf0129cd5565926895975e743c13334afa9cce718f7b942341504d483cac334d3e5271e25894f8d9b9f135cc98c584a4600d089c8ec5f9dfb88285f70d0a26c7e40f7db29bf6e25129eaeea3d1fb6e89c7b7c64249d74dafdce711f01975fe89ea641f748c60c198ae854d0533bf4f7b32fbe4554f3d966384682ab0b9d86553846fdeeac7f71128667df4ea1bdfe6623757c2c006e772e9ec88ca46178de22e00099527f006cc0c39e3ea0fbb37636bb624fb73e8aadc0703b01c2197d115ac28a8b5e002ef82b09b6aadec2df2e828fa00c8f420d847e985fb31fa390504660c6e4c720e33acf9739a83aa99acdaed8b741fa0f5362d05e380d46c48d2d0e0e7cb5095957abd8670fd147400647a13500eecf7b23b47b8e75fc2738ab63a2437f69a9c18332058e6a2805ae7a7c3aab1f5ebd2ef70126a3bf0414dd472fd1443580a1cecfd96afda9002ad40bb7cfadabf9182bc15136a7d30fe2e8f821b000bbb909f7d79bf70fafaa1035ad3d522f6697c03b7dafd01f11ef2b35d20745c7600b4e08b8fb4709680fbada6c79830cdd47950e8cae13c9d57fe316bc9ac39b14e0929837f9092c39d084d042add56437de8d1b1024480592100a52dd6fc1252548aaf1383e91cd271e637906523b9cd7af18d0fbca82652e5b96b2178fecff8e03bd2c05d7b8c6b02eaffd7724838838c690d023d5e9d1274cda674a8285a8e8f08418303e804e24a69a649401504973555165247b005c240a69ab579c92edbaa08781160a3042ef978ef42c06f975e499487b038880313aea7410fe1968ec56b0c44aa8301608b1e7e2f087aed1b2f02f944a024262bc68ee632430945235547864b26d7337ae0cf0ead79d093fcfb4673cd6ebb9aeb73f3f454ca1a7a2e436f7da27c8826177258f7286c294c7590ab9adc7be34cd3ef83f53dc563c3b43049ee7a8293c470e52f9ec3bb3fbca9d3cdbf8ac8e56923d8a754975d9d513cd2eea12238aebc76a4a40c60038488e06a6c97793a5c156247bfc366dde7b2e350aafc11940f265dd6e1fbf0fb7a5fc3a2782521eec78a5b0db3b339d5af0fed7b91d5af9c2855a9b6782a10435b0505677dc5ed2637517ad89e479b963698bed77553955ad85728c2603347af55c5549e33141c0898b5706be7fb44c9f060b4078af70f2290780c3db84e1ed395a855c9676287404458c5237b598aeffa21b85becddd0a82477e403a9196d725f812ee38c23a520b7ab0f53b4681f59c6c744151473fcc367f7f70bbe75daf0290439663870e972abff735b39efc58ca6ab7b5977c39fe5afd911db99abb6c4d5d88d66f540560d2918b44ba7bcfe4248b0c9451ec341ec2247ca0de7c941e17baca63e651efd2160d3ecb7b8a45dc638bf192da5270582573509fe5bc87a96ec68a99a54204a9fdc2ff0495b32b219319c1add1b5bf57b2d1e9b0c3296c3865b21c04d785dd643062b40f10435c7c612cc2532b1ef15cd53330391ee0463468b87af5ccf63275e932f124673319fdf21f93cc72c9e55685cfcceab375daa7a61de358b021137e01616c768ed962448b4c31c7e4b684a42352f72d632cd70fca1bbd13fc6407142756e6aeb2407ad97ba9ada09140af1fc0a61b733554c635e8bfd77c23aa9af3ae3c64f0fc1bd42c1fe726e650398025bc26c4f793a8766ccb67ace910e8d84e81c3b3ed4ee1be651f4c3ee182b022e1ff7bb6f0b258cff7b223963f015338e804a8c2770359d3867e64cf52bbab17f3a1a6514f3ba5f25da9fadc148abe966ada0fc208b41942d5c249d10be4096f390fafdd71334c45d8972cd78c519161e03303b97afd3674caf0e7107a268e48b7401782f84b9431b61090ad1a0dc61a6b2530b806a292f409dd585722a18d4ddaeeac083394d3197d23e02d88e8beda2c75499abc633245c697c9e3b82e1a965a46ab5539e18a1484345c780c8edf2e0a2d7b65f90e39e229df8aa48dee9be1ebf1d50d8409e86a0d0cdd23d1dee0c62389aa834bce8bc806cf7f39a98741e2c0df3f8009d11a6f8dcf8f5e5580eb46661e7a066d042b00099c1dd83fc47975da909b664c55716b71eb99c29577e0ae4707cf1017a8012c72fdd839362ba81ceba073af4d531a297840fc94c2d3cfa80547b8c9ad828db1fe0c2c05af5d0b0e3ea91466fae3cbed86c83ac3b56536e6c2313cb8de141c2349fdaefc8b9e724ae71b7a2baa6dfab82508843fc942f1c25965ada560c8912148599521fa33764404d9876bea6645ad4eeb1f69c0776d41ed320ce8415861c690efed8b49d57b03e6cba8dece39431f25e0fa7adfee48413e56d3b0879d24f624f63dd719065a4745ab2f9978bb6686b113e6b451317d4f002ae5e3312895c19103a95e4fe4a99f81105666315e16cc746b4ad119ca85a7408a86babe107d26b0608a1091c183b6d31ce2ce232b32391314b8181f9a2bec26a2fa820cebb4d5b7cf20ecee8e9edf1668ea97fb592fe520a280711ee9dedbdcb643ed03b857604f21d970923acec8831a9786e08fce52ffd9b64c1d5762638f842f80f89803eb73a415985e9c97331bebbd025c4d1451eec8bef82b91278ed790ac4202673d4806533b17a6ab141f42f772774c67aa2d0a58deef573e0ec98fcb6943a50c4d4287a4bdab130a524717772dc7f9af3456124a7a596ebe5678c2b3a5eb0530e50188472450a1583056db3f2347c51720a46df88d059f15fdce9f463b4c23cd1d13e873d04b5398c16dddb3ce66e0100ce077bdf5b8e3ca1ec34c940d2200fc1caedd9e96aa357558b4b0f36ff41a77e2e30eac5b5f51d94051be388b9b15abdba876acaa61abe85b1d300c3b21a45a048fe6444d21a56a8534c39cef2c2199db910cf414c48505071150bf4256ddec45c621ad5319aa71d8fae8976c840c5abb1ccc9814dae9ccf2762b18088dbd56e897147a8e81602da1a3a46f8f1c9ec22af127a835a490e62ef142e1a5ce3c71ff4bf6e9f4750f22ba5925bd1da4c0ab88b6915ae5594bad56227f161c8e1aa9e906df9409ccff2894da0b740443ab970560cfe57b96063dddf919f7a4928ef0e6e49df8ba9897f2380a25246a1060733ffdd51fde4b7b623124e8586407aecef9b1d21e8722163a069ae67ea9953e4280f4f469c315da2a2aee7d0b0f9ef0c5615ba2d45b939be6b17a275eb038abfeed37dc0b8fc541a45ab4a0ce4df8652503ad32c702a0fde9364d60d55cd21ad73134db76463809be2af2fb4d9652753c6e2028c489373a514f1f3e655747a3a75a1ae8f1772fa77eb76bf8c1383b7ad231a0c756fb38399e180ef450bfe87911c41327e852f4087de21e9ea05ebdcca715183d9d5e146619911f201b06a569a47cae0fe6c2fa29e5e8bf78acf8ed098dd07fffc6b99759dfa98973682fbb3a7a77aaba3a92536737744f4d2bd96853576635eef027cc03eba6b23ca67a36c138003b6368e9a7b861610eb102f45fdc4a1ebec7797ca19012f2cef0a5eeb99100face7a89ad797c437ddbbbee1d4de21edc603c6bf4c32aaf27e5ac4e404a12730a0213533d4ca85d48222c38ff1f5e03bb5f79ca9883f1a2c54bc48504d1e34f05e46fe4fd4f6ccf924157771abf97d0fca17088ffe82fd66043a7b737d2dbde08ff07a85c3eca0e9927ba2b05d9b4d26cf3927e9883dd8e99e95f444b9e48d0f7d8e4cffef7e7f2cf5bb3c72beb0cdb2092ed490d28cf3712a2786b38dc1b84aee8423b4c18a00c1796b38e7f4739f42f976eddbd1b97cfa4ada873a8559284082ba5a8accfb2852e3a34c5fcacff4c3d01427152de6721a821b79aedc93021c94e2de9fbd8409533025c012f6ffba531ae97216a273394fdd62e9af0858f19dc029a43adad5d67c69fcd946af25c86839ef2310381a78320affb632d7d793506c7a8eb97a8066f8489a3ff74564bdb6cc64a90ca67652f612651c1e1ff59de1c5f577bf1a8a7d480d09ac76519fb48af0e67337b9e60300ceeb3fe082c388558c7c65e191d6e10edfc808b88abc6cae77b5b6c90105a3b55abf9f51d698d7f0fef0aad91be9283281766d0e43793a83d212e7bf2ad8c87a9afed8094063fc82751fefd9478f86cb0b351dfac346fe81c8c48f9777e1f76844f41e59c1c1d453e2f70c9b937937366cffa06530b2782d9c4be10ed9e37e653a550bdd0c6d90a3da8702147a0b2f8358a4ef9e232fbae80472c99fa4a43ede289fd25b05bb2e052c0b413708c4eee42fdd22909977d7a68594fc800aea8f95764e30606dee6d10d5669f4721248f3cf7b171fa59d7f088df2d5bca8eda6fe26d9747720d9df704b60a54fa9f41305a1f994ea75b5e021b356b6c1142ac5565633fb2968a06434c848e37596ea03b08e202aee3703cfc5058e1c97d6a423c3181d2abf6d148822ba7fc3777817282e0808aa5c33c465816aeae9b725712212c5eddb6cc65568b87a467c8d06e0567d4ce2e1ce39ee2b30f2474bd9f052b86e18e24ceed6c4261a9a9579c47ca1859de51156d19988f1c634c0820fa3f130624c7a6737c8248ee7f1408c6a4b7f4366803b1de41b6ab8daf459649c68e0e348b2541bb6e2731886e686045f00645160ab27061a5de6a48df685faaab7b75d0da7f46ffe33077c4008339319b24db8a626558a14c7291b39a7ea4db52b314473bf3507e692941994c326a6b1b001bb26e728081dc8fc82e8eceb7be8c20f645ff3df247d9e49dabcb001255e779c6ece91558271a80c1e0cb60241ced4ad20e2bb5f2f541ff035e232897fb32807019fe0567b64576ed2f36fd3483f20cdf2f8d29ece30fd35f7c1a8c84a55645ece9ed60ec0e4d39ce91f3a0853f0608a156330af231a4061ec203cec532a8ae1ea3bbb5c5c6a3bd7ac109c60ce75d0100421c0969af8093ebc43538b13fe00696b5c471f8988c4e9ddcd54adcbc824f616e765e4ffd594ce32325f2905359d985cabd851416dc30aeb0658dc646f946e932476ae6f91136c5cd6370b0962908ca447d13656c8c3e2c101939e75e15929047df9e0e4e4c86a9abd2c44ca129f39ccfd90777d4eecee3edfd78d4c2912bd56ccdc643053d16ccb398cec9fc0ad26a3ecd556fba66f802b0685c93e28c6b2063f362934f9c64aa387391952f29ea8e8e9f7a1d14661a2720b3562eb4484f3f210a91cafca2edbbc0af6ba26645a229c4706855f5ff51588b29dec00879acf03755d10085ef3574a0192258a37b66c08aea7fd1be546bb5636103fb05cbad405a8d905466c6eb162752547c65aa162fbc506b6a31c955a695f9a3d9123af3a0f1ce92b068c7ac22ba9dc6832d8dcb38535e52f2a06c43d7e97288a417a70a921814bd0b148ef22ef5c51609b68e499cb2e6ea56e8912b39f79a35d7a2a8d9a5d8af35e63d15afa4a3bedb3cb97ce42656201512c194b4f81d6cf1c5cea26e16c3511e36d803a4dbf4f5a3d119afdb59721e9150b26ccce7e974b6c3ff6894c1743b9d1c6a61533532020febb3bde833ebed262ece110537a50d20c1c9da682719c6d5d7e862f465ba3d074ea28764390ff5277bf1b36c2b40a08e22292c80bf014d84126334048a4e9d294256e12f525da1dbb8b195f537f86bb2cc2b4a9dbc6b2e04f8de124868cb58dfcec6b78c4250a13695236e357499d9aeac34ab598c7fa2444bebe9e22602fc3905dc4a2d8102d50bb30c3106c92a15c427c622c7118f6c00f94ac2d43d2bdd6b2aeec5bfbd1dae73daf17bcc58e588376ac0ace3cb6e1d1f9b936b0230aeccbf979fed632210170c11feb4baa00196a7f1a7580faa7dbc8459a4c26164032f0fc5c7b2dc51157eaaefa0004cd6f841d0b6070ac4a6ae294a9ab38f959ac40aaa6d42392224f1fe099f8b048f9ebd020319ea33e229d47e1daa02b39eb6ddef0a00850b93fc0b1f8c26bc359f5e04568a76cb3e04f29a1d07cd28be53b395524201b4704931fcd52ac017366d4672097d20cc84d36ec8e1e6b21d87875b4813deda5700bfdfd6bb488c51fb088ba249137a59e33606a84a55233efc83c4be422c2bba2a03b424f6de40875a642b5e4466e2dfb8eabd24dc5e6a476a348f59865beb7addc32ce2152858713a325e57c8579fab8fe0a74d9b8c43a059bdd0e53f7adbe1b09182a85402c3f0deb5afe880a21572342b557f16b4ae24d34ed713fc331f1429dcfbd95b9831ad3aec3b14beeb6852e9073b0fcc8d4642e626f53340eac8507f802c10432c451ff7a2619a8204c76df00413b6f6ca17d7721275df76fbac12ea4efd31a116cab651839a99c7a7f6290f85c00cda5216ffa35de62076ee50047349c167fc6e469f3704de6c2b29e5ad2951e52cca27cf12ff73889083e1a5e2e7a8589a6c8d599396a318ebe68a8e39ce54486d1fd1bece27f413f666dd28b3ba00af059eec5f8726a4f9796326761db34b6b89e0d17cdd9c4f17f73ca1b0f04216a99ac7b7d0d0e09645108d63b23006cbb4098967cd439d9028014d655df082808fc0d3b1eb927a287dd2b4b4c7c99990d47de4ac142f3395b2fec14b4119efe0f281a00d0319ffc4da878b6e533fa7080e28461dab4a9c6192dbd1255dfd6142f00661ebb17cca0827c199cfea20fc85ea035ac1b443c4176f6d77b5967d8fb0b66c01a8e0ca5c40864ecd6780713089a568c0741d3bf296f431377442244763c0e7624e823ae4cd0df805e180cf01b722480c77d872a034dbeaad245e0cf2546ab366b78aecd27b76ced76031dcd9d81a7c04e20a40b8481b1ae407c81f50a8e8415363e5b057c2496c8746277d724b1dc74056a9410b5c2f562e6891a8170cf1488bb28430a09650afa98d303e5066a4fdf18963ceea5bbf5775022dbd88c68ae4c6de87f0955be3bfd41e4a04f55bba41d42351aea7da8e685a61d86e260f933d3438a6a4ccee04cfa0e27562a2dba8866eb1efa813701da51f5ef5432d447d5737c9590acb4c3e455a0d50a752b9ecbee0df44535e7dca026449f9329489cd6f3c1a21899856299a920b3d40f708d3ec70b27c91d3162487f892bb5a48a4e6809feb243a425b36d0acd149cb71cbe9051d02f40eea3038521991890f02d6b054bc8f5f544a64632ecb62c45422b454986b8512540c199f7e58203d7675fdfe4b3ac46719955f8b1b687b9c4a3fb03697b70059fea381da9674c7c34006f1de9b0f4356b2a7c51e23fab9741cc50c84c1340b6340bc859cfa2cd2d712a35c1092de28bed0beeaa65e2da3d1b805ddce327dd6abb8e71fcec3373e1da132969df1a8b39217d345881a42b89b8b55235f68ea68a9bb7349ed0e42019f6dd66cff4f9af69437af324563cc28438398edc289f243b3810711b81d1d8dc7700b1b533a6e6e7d6ed1802fd38236c5547df8ff5fc48ab0792601618d38bc6c1582936edeaec80450e90317ec1aa07e1deaba0e75bb6910248aa912804ef854f59399306f4da0ad3bd164a37f6477ad102f3ecd19bb8b530b4e12a522d5836533415abf01256f3647760cfafcbb83357ce8041bad8b803b6b0d938f3e9236893f39253922f07ad462b8754ee2148525e682ee2841450a40f04e0cbe47ce364c4de974127636e04557be49579963e92b69d7d4c93f19916ac7b3fe78b809436873fb54c0afe5523760ea1837ba97a9267651434d9fd59d5c46a09b0e26e520213457e67448828c7af74467c0d054fcd0d24d0c1bf964b485fa7930fad8e5058560606d8350b3684cc8568e7470a32239034e87637f6921951346ed539dd526cfbf009a055bc2011270f9d769af3138ec3e0371345e2c3d21b593912e69bf5013b86700235a352c383ee1289d32e3a935e99b6fbc0eec36b079ec3fa493712558f53b4b1a1adb2a620c6a83daa3e4614289e99032cb73dbe44cebe282f1de2305d699af65d2fe1c6294d48ade3363968c214bf626ef9a157240616dce4c9532587171082f5631e30ebe78c68c9c174a5f86356831415ef084bd0ec1519f14a9de70c048741c811f9fe485cfdcfef1a085b519e2b5ea0e7e567d030cb96cd89384b721f9d86d043cfebc29cc2e64f8927f2a075c6bb5f4b3dfb971ef296c7524eb51e6516ca8b2b2bd0485efe18225d35f5b19acbab73d1e88b8caf1ab91bbc2500cbeefdf7a16d54aa5899894c746ca2fe11c3624f064d161fecfac13b98e648c45a0cadd9959b07f9689e27b01f9fa0cb6f1c02b3f98a6c8091304801e1dce9ffe4b443f4eedcfa71c04e5db178cd8d82b3ecee8eb6b9847507fa71ee6a1a31e35e5c8e845b1f4722d05ee4c64a57eb8d93904aa1093cdc69dbda376c02ea13ba2f67072d179ea37210fc711a95e11bc0b4abfd083bc4ea585f2fefc19a9368f297c3a6ac1a18239328e8c7196dd4d86c80d0f327b5bc618e435542058ef342ea581b90798508eed255c93acfb643f6e2816bfc3ff9ded2f42ec9bd991a740952870b67b550dc18174a1d9f11ce3bd9c6e8ce0f698c5f0a26622b4e474843002c250dc6e1b2582936a538518a215434e728ebecdf51f39121952bc532de495cba1c87451fbc831536c4607d15c5edddaad63dd7d0fc0ceb6f946d6756a46b0fbd058de3557273db9ab1e00b56599905c9ce175f0d95f5aca56996d5002b92ea16e41a1652aa184ef49edc53754d71c0b0359bd5190fdc2927e84024d7e31461609e786a9839353c7220b3b2c76570bc6093c2e53363864a1f187f439a90701d670458e17dd9226207925b185544acc220e230e42e328cb60e9a8afd9176d596e5ad6d39d25f3c3618a7eaa1b55d82c967894254bc734795f86a32925577925bcb057c538d03603e53d8ebd6b5f4fe716dcce432a1aaadecb7f08b5af2855a6397bca59a00fcbfc03b1fcf531d8983124f6557c076281939f4cc639f77dc199a0b1e7f759f1c2212f21458592697c7b02299ffd7238d40e6cb57858727a18d06c896e8ffb034dfbfa689be0b73dc707a4e3bb839ec2f6b247bdff37a5bfb147a3f2f98bfecb9aafec0bfbaf1ba15b8e88de7e64d868a9ed4135e5acc39e08267287cbde5bc51a492d2c516439505d182ea37d2954f4505fd546804a56c3f33a6bab64b9e3ccad55beaea92bc73c27a518ef187ba41b1c005a3a9300551b87580bb7f793c3c56d601d46506007f329b22bbdd96ce44b67f31980f6c35b6c1986496d75d766cabd405ac9e6402a43c1151446d1312d14e93f55f8ebe9b44fa7e6472489f923efb7a21f0aed3d369a122968928922db3a6e3be18fea35e32fa2a23919a649ce145dba381c5b7c0993899388375de73f261a9cfc7ea32d198c53618cfe8ed3e4a166e3dedbee09aa39ef7292bdfb0059e0928ff88412d1dff323ffa6b3188440623e88667bd56f863d662a0772332cffc46648b707369a5246c3355aa1baac6c3af893f73125bc35077806fa4d70eddc02bc443b412058b4d07065acfff5822bb590210a776f44393edacde9df923dd70e92c303dac819d382a2d7cf43e242796a24e6eb892db01946f7d43946004f098a24721312baa1a9153b693125e8549630ef2ae316580793085d9ead09bfce017f77f48a45dfeb67609228d63e2de63450caf1f1321d67e3e0d1e39fd9038d10c44901e0d1b76bd91b22af860f908f9af42dd57851fbdd4094aa72d459e819a57dfc4a202f67331e82a4d02ab62b36a26533728672cb62ce94ffa58ec2652a06c66c74f2d4a77febeb1076a969d5ed5cf1e64c5292420ef0ecd5ef5a65a99fc248d617b23d303b68a03a854e937dc72d4a8117c4d25aa64737e613423ea5aa6228a20b6b22a02554126f5b068921b182d2974b520f8d2eba067ec160d40b1ae7212c427928aa5b0bee3fc2978bb3b5380417e14b63ea014731384640ad2dd774458afe0708c44443223e3432c0f8ba58ed593105d71db0ab7b830297ba571499c209ff3030f1165545cf1c46ecaf0e85442b160b0d82846dca8edadb54e8f939634b0b3a5b5b669ec20c95fa94600f6533966f3339e39e1d39b04a649f2e3abc483f0666f361e5ecaeda982ef6987aeb3ce6096ba127ddee6acdbab95ad043fdb38e5fc582999ae1416b12458fba602428f3601d407340e506cc867e7c08f7e2128e4b32ae560862d355d75a4979a380a3760824ef8a128238924742af8d4e6fba41989369a3ede5ce92ed2d15e4883eab88e6f99c7eda26a553bc2ecb4fb264ec3c2e58524f22b5e8caf50f990dfcc0e6135da4659ef55a3f63ea6297c848236ba174ea698d4b364f21bfd3e5d28b85745a43d756c9f842c8556e57cb48a5535508825a3f5ebc40cb4b2cf73878e5fe8eb47ab1f859a2c501ab897911bafe3b80d92f7cb57dd0b7f8f6b0ba445c7989f8346cb1ebd85dca5c8a79dc5b10284162953ec7113ae9c54ecb89006c00bfa70dee5f2c0cded1b2ea1a5fb1109a3f3b842043cf7c8b3b3233d761beb89cebeb150e0e28842ab488b24d245cfac00a458147cb43f9465a23c658f51bc18344faee41c02cc5784e52e00502c7d008b250ea11016acf16a08e7f1c2cf1d8f7c48ef2527005b890f04b28e0bb9224f8d294245809155364bda91a2839623bcb14dcd55d42cf028ce3ae741cbfad0e52d08015e3165d096f5db362ce1a647a341773884d0eea5001098f118a6c433111bc3b86c1e00390d613d2b37d93ff748000bd2f0ab609a298f5b70a3b464b7b32d7cfe7860abd809483ca54dee4e40a08f678d4110fd5aa627e447a49c62c60d3e7d5e5150d6a4993162a9d1b207876a9fbc651c6358651ebf9718cd63580069ddcb1591ea6dfd48e40fd0bdfddd18b8f41afad690e25cc9e14647b0445225f92222ec33ecd36032bc7ebbd9ad57a339afa79a36cf02fab0e898a1f22347300ba1f39f97eff45c6693a6978ba15db117af482e32758c26455a19e629865cc64c362b62499d53a3c8e1826c5806bedd6306171a489c8bfbe0315fd184f3db98fb98828d025ce93ab2f14004135c34322763dc8794cb226a4a1848095b625230177919ab68b71dfb215c99afe31ffe5cd10a1effc8e2e8382cfb1ff491ce1d4c8f01aff1f0f9b061a270a6ed45cf1e55aa8e47617d4a5c2e5cc1e1dd8869279bb2c7a72fab4942c666e818c0eb05584a52ecc18c19d0895e18bd216eb70663d8749d5cf9ee3a860f2720abcf2717af90802718af2f177eba4ea6a3a2c5d34bd6dbd10b2341e32ddda11420f8ba7903cb5eff8fba12ef356a072cecffb83316037e85232a31751a8ee09361a103b04f0443d50925ffdfb915d04274c33e20b0e598619b8606f6ea248e02c0606d58c8fea9a8fa0a01da650b66e7371e3352f18a02c42054259418e503634ac06956129b9d86ac0fed4eb1e1080fcf34593952d7062d624cc25db8f97881af5e95e8a54aed065689ff2c84d11d4bffe465459555a237f2b013e6c686c342ccbbb770a8f11a66fc37689c8bd789cb4210a7a9032044c507678a8b8e7ff1acc906b54dc0e8061ef0533d0d53c0e61349c9231d81a2df17f20084905c731d88212a23ef490441547045930e301fde1c2fdf1441027c6602fb8c95415dcf3bd4e4051629c752730b9ea83e079a20e7f62cea5a1959ed9b0860e956e1fccf9e57848326a3c3cf3e21ebc79480b61c045a9b89804a39f414efa77fdb1e2041a99a513afc2caa6dfb762ff64f68adcdc6a88036d57b2aa5cc90d563503b80066db05b8253faa81d54009fe0fb6993275ff04e23a3d6056a3a80ee904d93a501e95df23b287aae5d036bd1cdc6486b56808d784e147ec54898f2bf66ba90aa5b34d21f9b055629b1cf6a439746f7e308b20819798c9bb19ad3f005088865e20aba44ab31e30223d2416d63248fab9f62a8dcae08c5f8535b70a82e78d50ff6492c97e465ea51216f0a1339a5fd4070e1b0625ca5704cba308631165c04f00f09bf1e3706738c63c4ba47ba4832bbaea26f041e74d8d69c941d4b80f528a7340fe9801ff23eed80e556aa824f0f6af4b471c026418a6e88861be9c47da30646b9196d56d0a881c77546c4e28dbeec0216d203f28b684ebf6799a32d0bf52732f92c6551ab25cd080ba1cfa796a167cde24bc514a9a72519f5b68093ad074da546047893467c16c8b220d0fa3357388b75382fe96fb9d5fd6b12e6351f98107da9721e7cd7f30a2da737bb52e277afd3637b229aa34240f7324ba3488e64fbabc14665683a1b34762749db1473d8a519218c8ed82f095845c248229baebf0fa6858907342e36cf757601d48c91bc600768cb1328623b44c4841950598ecb85643a40c54173b0aca1332d36cca94dedfd6807e9345628a5e1102604d748c7241159ef0976086c1f71904c9db0300916659adc4286588b01d0e95958bf4185e14aa5cc03c2d0c6489a1ff2a3675f2280b8148dc4b27b653218cab0d093248e5868c2bc81edb583ea63ecd71cf78d9188fd6c42bfe5ac1c9911fba1bfc00c6a106c22b92d0755ab67a44c43c184c7975747dc77f7c20a14996cb7ce77b6e9d9fbe40a6bfa3e39c22d1f8a8b2082ec3e4a3c1fdc07ca8eece82092165e8384a8c72b151d5ff6d9c703bf40b887f74e8ae7ef54912f6ac7a7223fcecfcf5f2317ddeb31b77e09902a200e95f8b51e4121a61518b9456ac0e094f410cb82ac58bda31f6501a8562b70921db16ddaa5c3ac12fc1cc60d379ca5eba8307e2a7ab7d98118810aaf164b6a24ca72224843ac7d43622dc6569aa4a8b2519912eff31c55c6be7e7cd5372f60192c646cc856ec2f493858e9cbac73ee898c5d773bfc6679219edf20d1b1097076ad41cb3e5604e6e42e4c228f2563ac3589dd74b7ef94268ca969711c68a7a8a335164d5392fe24b1041883a92414c0138f31beb40f849ea575a15890285a40ae31f9b0b4a237e0588d93bbc13dfb3b811d3c021b37295c4a956c413c2966e73eeaed87b53150f920f050632f3c476853ec74c8ea03f63bd858abd034e711baeeafe7be43d778083cc6143b0abd4e5603c12f2aa78977a879bd0ed04e679807ba0d8ece02897534feb08816d34298049086b38f512d4aad5baccf7332b7eaa6df37ba9a9f9c0bbdff9dd55a6d0cf82bfe2c01b22bc37815a9ce65886e014a1e6f28b5d7b9cb6b695ad571beda7e6b00266f037dd687e0adfbbdd25174897e670692e61998ac3d1017c5709dfc4ee1f6c039d8ed8242148e3df4201ad11d4429407f334354068a2e934050d000640fedd00c23241b11460688fa53bceeba1fb66b2744d63314f2b0a5e5e63c17be190d1f8cf3776378ade468ad3047cce34d5ed7fa6e96a4cc7e2906fe9808ffe7ad1fdd43ffd03d740ffd5574c3d7fb20db809928ca5d4d048408614e25494576951a2682ea1049740e6838c3173b10dc5606be1390a008396c2f83eb6e25c230119c7c885a4937a298882cbb2ee8463792e953f89d080ccbb6f50843821c8d7e9098ad0ac33382597306003720a49816815c99d2ad19dd8b1e289b6490623fe1d970d4bcf9067c98616b3689fae8198baf84cd6cc1565f351888fbd548de390c2bc4c44ebbf403f71f7adbe44dcc1b8aff572fc5e4b15cf3a479cb564ffc4d6f407ebb7c94858b7257cfdcf9c5d9cead53cb9271796aa4c76601534750504fe6151148190585c48f0381c03d69649adee925ec0cb5698d473ed3b63030ee19252da07e096b831cd75affa8e6055782406be2bd45a655bdbeef4ee4cdfa305934ae7d4bf81c7a2c5a8072b62615d433a0b71ce471dbe6de0111c35a80d018128edcedac639fef87323d542df3f204cf4ef9c96d507203b3cd7256e0a8d07ae15e4b4b93e166df9dd1a98192c6b136ff910860586b61011fb3886076eeb185ef8aa9c56a930326fb7d3203cb562a57f515a5585c592f901f9e1dbbcacdf01f606705588acb789c279b85d686e957e0c269bdcd5af4a7e018255fdf14b15f0dad615ca603ac5172986a49e8ff799da028a06ce1b0dab81a51e8cd6e000a88cbf1cca76671f535a708126e98198980fc0519fa3d1eb9e0a073e381d06b9acd0eaded672218564615f2c1a3a780fd53410d85ef84f04c0ea7066d1cbdb39cd4b6a84db4b010810c70732f32d08c3943aadd3de0ac8c854217092b0341d7840e97ecd308632219b80ed633d09e247a931080697ab39f48a945610013fd6dd8934bb6de71245c3e8268571af640e1754241132b60892a88b1e5b26e32fa981b995e0b6ff2036e09aa8977be6423a26e34a95a8ec613777c82d728ccb422e07dbd6477a5a280f46ab3527052d9a282bd7957c17bf66977c9c3c60a5714a6f3f192c47eb84818f641ae77370da8de88059aeb1d4a2885246c00aa4ec1bc1a9724792bf9a358fa2e315ffd939250dac065ee3b9440f9eabebfb11847aa450d51e4803632ba199985d809a071fc4c3453058c53fd5966f1ffd3417f160b657756fbce5c4c9532f81e7dd70a2cf463880dea3a2a244e39fb23258ac4f6e48e2eefd174954ecbb85d195c5676376e90f47efb51f70fa082fab0af1fcf9dc5efa2ddae49e549305961353979fc0211ac244003c1d20a930dbb5d58f63557475358471d272de4dc86e4e69070db626fe924f01a999504a7dc86cb24b67357e9a72c9ed60377efd6014b88816cd640ccfb83e81dd803520dce0e2719c325d7f4e6e701444c042612b9f30aa744f17b6515ca5db78dc225fe97600ee32c8af199769908ccc0159aad6ebd3db3441d329cef3fce895d489deb2ca1294299746658ba35d9d6b9d3a404ff191e60640d5f10ebfe8591488a34ec009ab1b16c4307ca78e78bbb7f1fbbeb8b43a105db97a737137054a727ef46cee0a86288f6aa814482e9fdb093d7fc078a28b21c7a495cc27472dad0d9121c4a991cdea3d75504036d64faf7f0450b56850b82acda7fbbae32a7a2066535454663816c44aed10ef07a277866c90730f13bb03683c0783eba54cc263e8318100c467cba329f8a8060900f3be0e108a262413eddc6c42082ceadfa93bdcb129a4f536f5629850651fda1089c346c2be39f0fb04bec7e04081c1629fa00c514041e7d2157202a3ed8c0e5e9ae738c827bb05d6cabccafe3d23add0b2009054a48d69dc8ee3b81a5d88f511f8d2485503f196e7d0ca0f82613edc6b864d49ec140fa445b9574e53a8d17fe3ad3fa308e8098821e86ac0fab46a975f0bdad07847ff786dc58b297fb490f0ba02aa7e83afff44796a44c51285339c07d698b862b2912dfa603fda22e9039bc1a123030dd885625bb4d7371615b11d4ea9c91c20a01f200c9b8cbca09077d507d92687de6037ec990fd408ac87a1f9474d6082b68b07993acb585fcb3c7b80808fa21b6ff1dc1e28fef90ee5b1fd93d7a61f62df42f9e794997ad28ba7ee4861f8afdf444a97bc2a353294a064a0fab251741160754b38b6bd7afd5517509fa1c38c6eb89b6c6ecb85c14d1156d982710186ae370295d6f79ebe3743ed48b065b2c06978e0797311471cc891e87341de8c2aa7332739e4232743dda7dd85846867202601442824ea31b534b8b07dde6bb2feba838dabfd54539d4dd7e681f805831784b20bd9fa61500ffb2482cdf67a431cc3beb42a8cb6207aded5b8baf8ab9f3cdcd2934263fbc95fb0c3749854ee54fb70e47936d04fc8bac45bcb3f973fe99e22bccd41bf15f8d6fec89953a4c7e89d3d9d6cb27d4ad6c400ac8fcc0c3e11c9327cb99e5eb2a6a76a930ffc3b9bbb4f89f2e72b3c6a9eb31e197fc800ddde930799ea92eca5713a00b78de997c001e84ec5259e7700abab3fd45e81386728900c86a997f4bc3e95907e8a3b1bd9e8b1d88245bdc0fdce307729517f09a2a7481b719398d0d795caaa70be6fc59a93ee52aef05e8ed6681d8343284d1510eaa1c200bb4565b57981295029b8605b1f1730c78cafee0d128e7364d83253ad630c03849db23a1068f9a0a82dbcc8eee058e67fa39862bd651033f1745799bdfa88f058934ed0b123e8c71cd1931fd92850522021847776cba3832f15c426c1adb8cf5d71e34f334195e5bce4f5c15f2e70d07f7bbaf43680607c3f157a40f93dc4b1b5ac074260212a51f4593cb1d8013aeae1a22326bbae5e02037d8b9f2b23f5021fa0fed9741877f6478a690944eaf34d196a990c14cfb95829e091139cb362166a0a14e232b67e0eaedb4932df909111787ec54dd7dafb1f51aace7856595fee612a1260797b3c1432b29959cd6793aac3f0358b5c8fafed3d00c6be0d756863bdbdea72d6c9db81defe04801ed88094cca39be35ba59a1bfb31c493299e52ffc8d74b8944db2bfcce259dfb1c0bd08e4623ed827a3cbe676903a4dafeeb9e2c6747bec83b63f0f2fa5651ba2e393869bb40663f95670bd9c16d9873c4a2ed815bd928dda7638f65047322d06047cb55d01f1e5ed1160bb4d180dfc2ee76a369ae3453e649107438e25d14dff3ce95300b4af5ecac3cc2baf9fb34378bb6d4a7430c6939721ef50f135109e60adf1f21e69e52654516a53a3c970a65240a3a8b35bf28dc0f37680478c97df692ae4a4a42ba2dd36bdd24ffc2e2f5e74d9340ee1442a695f092f095a14efae1d26c3040685396bb84dd9dda191198c69b03521dbf734dd15530bc5b028b096e8b194908836666207afc5234dcf3412dc185ac4aac1863f116aa011cfc10f7c703cd614c4bdca0358821d318d40da730a7f8de058c34df8855328abfc5fe21db37bb992d8d26d1a208bb32cfc72243b9765983282df78089855031e529c2222d6de9e6d732fe6936a2621cc48bffa680a62977924c96ec3fbb2bf120007e154662afe8d32e56af9243cb62dabb0e5dad5b7318b3006ebd7b00988a9c0df02ef2a7e8b983c4897da931e0ac9455c3167277cb52cc53dcc6b964912043b6a42c552091229bca5b56b03618cb063eb98d1b30b735a349e4488c439051444c321e6f5820b76890a021fc0dec22fd123f9db80d8ac22fc68dfadae9dc19a0663454c7d626bcc9a646d0cefd1d292611d76e840ba4cb8189385200a1ccbe5ae09a7c782f9e7ed3fe83d548d78e1e3d02d55b144861389741f0b8d068b3798006bbb65c389327a9dd66eafe114c2e753fd7e1d7b5f969e9ea678d3e85cb079b41204281e2988a3cb4abf4b0a720113baefcda58e955ef70f63a680c55002f78e94d9c46c7db0b11861037190a017323640038efef97981855544236c43ca8cb4bb5e56e072827a31cf477c16ca2ada52db0e586eac0e20c8afbc4a7a54b82180e845b00192f50a49a0237ee2e0524348e4b94e083a48725a79e48da777f8a64e3d7c8684a77480beb2f3ec2e1604b2a92b6199ec9183b641e309f7814d2a47774abfe1e03ebb022b9d12eb71aacdd471ca78fb1f6d43ec1056281aa7ff7831f78f11fe13d847fc11392b28fe9a470359654acf1ebaacf0fed82a8e67931c198953313268dd676e15fc55122b1f63ba9662ee4d1ccfa48fd4b8bf815711d5cc526b4935e9beaf177b92f1226b1d442303ca938eb5d2d74344bfca156b35781f8ec898bc097b50bd56f6c44ca516ca31dda97268754dea5e25844ecaaf6bc1aea5889e96523735b1fb596492e06c1aef4e361bd6988948b622a28971b5e87b291e571c614d87b93441e0cdbed8dd30af49cf2cfa4825ac0e843fe3a04ae3e8cadfa2afc6d0728db3ca317cf68ca8955574a3cde7317ad269483d3ac32f7130c51f7e0e13516c0949c0ad9673df707e986f78f8bfbdbb0d3a6fd2cd62bc7084f813512d56e1ce82f525ad5c3a90dc265c8425405fc39b91369188e03b8cc948f55eb3e9818a13a004e0f600c421b3c4fd837a0c3c2a9f450b0e5951e84f054a854fc6466bacb1d161a47f279b01484c8b980f3b1ccd216dfe41369ffcc5ed314a004ca1052dfb3792a794b8ba4c612702923053302845ca7385e4574f978d1524295e6bdf8b77559a3b4ff8f2bbe9eae01e3a39042e0417846f37be98c2e40f48f8ad0b0f32ee1555e4b83b908e8397c847fd824879333459d328244a5a4f4b0c15d966cf0a3facc6626d58c78605f3089b1b83db5d9d06fb9c099c625b805cd1c0eaf14a5e7231b4f5c380430123ca5771f213ef750d55aa552c609ab0194db5632271e4311d97842025701acd1926811a68b9b66d86c9f7c36947b0b0d0eec7b9cc0632749860d5a2c3f8b4bcc1813bda70a0920356bebe1673d8239c40364e507b18fad7512f2156ae66b697996775a26efd07119ba6f44a535cac308394c8c96bd92b83bc36ce9dd2eabac31a9ffc3a523a5f42baa92110311b40c2020434261dbdf74f6cbe9a08ec0e7c437a372ff33630cba616ca5931c2ec321c5d2bb476c28cb97f419086bd0350d40c64052d6c107d64ed4890c3263d23398991ca3c1d09ec50209241d702dd6c506466e19df58205d1a7c9d9b27adf12596e050777d665b4fbb4bb9d7c9b7f0c58145675711a91fb822bd1e272288561a470deba3fa19f8c541fd482c7eab77d22f1d34b77b49bc84e5a2731914acbbb5c5c5e210bf0b84427e43fdb6587b0641fccb07331949a32a1b145132b90625489f9ce801586d0308889d742183e48f058afcfb2d1849a32310c0f6e39f63527056d82b2445d0983475d0597e2789be109a30eacf84299f8ff164490730c0481b1d1d077aa24ea6664ef273da61eb15ffeb1314602d1e1e4f12bd6435b4bb7149f9954b9cdba34f13bf6bb0ea80a9ca93004a2c137f43efe3f4df18a49320de1acc34f9d1fc8c22ced1bc8c5e52f7b495fb4617faadc187f186ab49beaf894c071c3a4e29a4c111087f95220e34839deb0463d6e2d35c6f39accc619727831e5d800cd52ee40fcc4288864067fd88462bf32b1590733399939b51496968d2a1326d857b9ca2d14a70bcf6958682bb473d325a3741c5c0529b8ab2de9a0c723c614f05058c777bd189bf1780c28e90e90c5d8012573fbc1ec041d1e33344469373c17491fb0bb631e38e34919e0ace929b539669f36a794b44e7da37ad0db0f0906387df34fe3810fe521441d37a51b813b911d09c2bf8ef1dab112e2646c361c030ab1a859bfd33dd69399602d51837616325bc2280e4c5ff102a73f1e0394244de73262b6fd334db66ad75b84b9141bae772f75051b7265b2f8e83f388b26b823cbe69fe472a7e89e2bedb30a492e292f519a824358e2c7b2b1496c5d8e3f85a067c276ebf2c6fa06ae3422092e45c7f89b6089ed297113ef0944b9d2d023c3e2dcb9299f3c69e76f5f8164302bd5bf3e10b2c96a29f52caf94b09c8f97d3fea43e3a38fbd332b0244eb4bfaaeb72b70287db83a4674d6a6f87e49597c208250e7164143f22214adb4f5b0d4a1e23a1e9f6354a37c94b6e070a4181cf921bc4eb104eabd6ef4905fda9be6d48c6744498850e577600251314b687ef2bd06adb0888745393f34d7e1e8512218cfd3884da035b85e7bd5b904a0be5a679d8af15f5abf051b68070fd42e7d2ba71daf4bec5ea4f5c09a64d6cca07740eddb61e261061837a9decf5a553f03b17b52f47c23713e9206517a63e5deb69e8833d4a1459b9e9ed00cc096fee57d1b09d6ec8803f93995efd68084353c1070998545dcf2dc1ed07d25cee4d94b47bf9eeb4a13bd3800acf5080842258e797aeda39a2dec918e92113a4c92785c94e5172f61553c03735bcdf5a885163e014361fc2a596e9822027550682e763cc5b4c586813fa9d2b86b680e422e533691686dd38c4bbe4f7dfca38ebc24222a14cb692a760b7c8ecd0cbf99c9363c097e5ef2b69eccd976b32bc84b7895a6c44e92c16e928b00c331bf56dea0ee98e4ea402ddd338beabbb6cfd19bb19575e282cefd63d399aa0029c97201e0e31b1afbb26e828fbea113d606f4c999db24d3b1eeb2285b903ec4473a5aa3b2866b827bcbdc3012f50beb9301d417940d8dc261ea71214f2e3a7e352ccb927663fe059a7cef89d17a1a2bd0346c991c7c2f0add082e39eb513fc21bdd6dbdbd9d062c1104582fae5c7623b03fa22821cb67996d86510aa2c9d51ffc128cdc1dff94648f03790db7e15e7c3733ae619e600862de22e34af569c36fce2c6c344be54c2dfa5c57c8a1bfa8e91fad9fcaf30e6bfb5c88155dce9103c0d6e525c1f6a59c1b61b4f6a83450034849608c0f0dc7a7e84e34e3f765da026d2ebf77d970fe9860589621cd2755e9b01c272d3b8663f8bfac51b1c3811da12c1eaed30beec59387ce64b0e0fea865f968b5da5a0374ee1ab97b63cc417f572d1a453a0b7589c01f1f488efd5399fad01f9aa8071a3ebe32ba3e3038ca7a5d67082a02200671b9d3442f84c586a0955c8f7f1f283542a95bd7f39ef5903ea42ba7da179e5d80021cebc2dba4bb355f848440d8d200a02507b9bd477bbfce5a443f238b5fb5fc8d89099f7a3bcdda5d5fa16c536b503a855e42105639dc10567796c9d20b9574d60501dd67298c2c294cab1bdc01e6158ce455625da88f9555fdb186c7a026af94ded48bfb04207a83f448cf0962024d2f543b14555135a240d8ed5e78f0415e3db74e3af9c96f7e5424699d79a390901cf095994f6f94a80b81956ca89e0a9533be8677fc53b579a005b5445131eddcc13cd85261fc50e59292a7eee096a631671e499bc6bade4107126a9bbe9bb31923fff6fd3cad39c6e4cb9962d7c671a5fb8d973f24bc602ceb14191f92f5123fdd56a6f621186ddd3fecdf95267c983d73b3774cdb3f4adc259847c932e900a2621ec546baf7d1128ec0965b24d29b66c576a3b2aae64f41daa7b8670fe53eae65e679e480b85f64efb32bfcee3fc66bef21064fd41e64b21b05a1eee43361f3d1c0aa4947f48928836a8c8527693199d1e2804a9edaf89ac75f7c7866f081d8444285ab4e8e4ea5ba960772ca17edab8a79e17dacb63f64b75fed35fc5c2314efbcd346f47626325a36c47e27d15805505c80ddf4f477b4de1edf70ff3244167d56c314d58044381c49a84c5cad16f3794686f14cdba541996f11730d84df003091018356af90212ee89501b3bed2f82502450cf1bc98a31cbefc57623fa6719e9975b5435106fab9ed45a24f4da39cce85972289bf75b26daa5fa54490cb551a22c10fcd3dbd3b652e828cbf541a1aa56d7fbfb54291cf3a06b2c03308bc79fb664b517a7308fd37ff5e55ad019abc74234833185592d566b66b040b4944d97e9798e42076d7a3068c7877a13df2993f47f31a779e5f112976e11af51d5bf73e74c139c1171d46b876bab2108972068182d9eef090efbc082ef886112bf6d202edbbed79c21b8f13cb1c84304b1483c541406a004624206e004fb6a99e5ed851317115040c9959e1d40ecfa02c0df04d32cc0692c34e461f2911f865b8d19934bd68418c1beba3d9fa4af77a777cb1e4ce6771542e57a874e996a1295ee05661f295b8f0e518262819d6d2e68b16ae527002dc0785b2ca2b49e3185a8373f78ed3548d818b68229f64cbda00b1b6440294aa9b628569fec066109049f58c1d35d0598a04c809d872cca9969b584e00d7ea88c84837963a206d6c6d6f186eb6eb9d6a77ef88927f646939e796ef8b844abfbfddbaf4711128f0ab135737636adea4de1e20b5b61625af9d2ef9fcd728386a312c29a6ccf3b28028e7be44170f6ff7c362050fd5ab1f9a486005564ba0800eab6feda8627b9aee8e3b676da9f332159701908930d998d1b002ad970880223084dc8691b2049f017afa6e2c3535cc166e9b17371810b0fa3aa41b80bccaf6cda4319ff8069df3da557aa989e3bd9abd867f1c76e962e5af6b18f0d0b68cdf0ea82c2fefd09467cdc6e49f601c19408ce380a03c89bb8eb70b5bac849e9124227705ff2e0258946ffa3c25d6d70b257e7e638027b522d34363f10a405129e5ff375929da856429bfd23ae25850e569ed5f939f23b0564d4f06ea9b85e1fe6688512bb144b4c24c9a5039df3fd070a270489d75e104fc71d9d74f637599b1af7cb2efa63ff9b2e1427bf16484e59e02d4001fb0faae074ffea8d301cc73c424373ef1e8f38243c43c1d31f0b09c757333f9e154079d57f52986639a5606fd79cb3332fd1eb57046b3bd441f28118ff8fc4bc7c000c8fccc19ab7d73ad924cafa94304ef920c56a4c5ab3fbdb8ef14ce0c1070057b4d11ef9ac8161f9c518aeae40d0e0c7a787e0aa0aad51e2aaad9f9a189964650d1f42e737c6aa1dd1d059ebf12c0e3ad08ae7add2009d0852e0cf4f77e1bfcff6833696570bc5df100bc3ea3d65e03c59caa75fa265a95e7f1f8b9f37708ef20e9a66dde79e53bec8e436599d65adee3b41edfbabcfe49ca0febf892152ba90bca8b4895d64b1fd7335e6557073ee64fc18a342fe484992ab265baa214811ed3f999cf19ffc393056e39997ea093c894ee4bd774b37ec85a1fe2979a76124cb374025809d54c53b967a5c55adb482e02881abe5df61015108852d3364b8515367936c85fcd109004d78096e0e5d4686b4a681e65771212560261115b0f4230eafe74e620ef8c19e3fe30dfc32d8ac12454aeaa13b6814a17cee156ca9999dfbc8426ae43c7e85ca63808bc667d5768761a0591dc6ff8491606768c1e93fa95bfbcf22de9f4f46b681c3265ede41b4f54eae8372852e3b16515283c83c676a81a8db3f47359de463e15979b87e10725ddb5a3065eb33b5751fcc2693e2b9aa1d075eab10fa8ddf8da5962266707bf70da59b07bcacc6d0b2017825bd5cc896b7625789271f1e8706fd860a0226f9f8c42185b732f05712719573111ada044cf947c94d3b297be0296824614be21d26a8a36e82781822da14cfa6cca0448b83e257ae5d27675c9f4a0389c77fdae21884857a01a352c5d05aa127b41917707dad1a32fd4b29b8d714798c4f692c3546a7637513a3002981d6d4a5ac8bfa3c51b5a228e0d1c1da913736c6b2005711580aaca14de6f9f7de856524a34b0ecc6c6fc9132279598c057a9b7b432d793509141be38e1371816504e8c5f1128705c67f17460237c948aa4382d45f3c5f03e9bddb174703c80ef302653828d9b0f9a308eabed6e184b8b8f442f0288100474aef6c5b364a3038e78a23ea0344bd2178910daddc3f8a6a3048378c57420b9a6ac548d739834662c0756d041a5f1094b9d9559cd8a033f76e5e768df4c8bf6352637a90ffa67aac1ef7a473a45f994eb695572d84e9a08892ad887e40dceb5ec809928043fa8bce220478338f8b80c07d358e0e2f3e65e365b30bf183458bda63e8402da9c59724bb0665f0d66667ebfaa0cd86c8b8585dc518332d7d8efe661edbe5a1832ef9592ea5cb51bab16e2951610fde931aade29b20831eae168a1624d7176d19cc3008f6c5001d49693e8f39f70078916116fb8bb4910c5f50c5adebd0e2d100b63a2de51514399cdbac56dc37f04126983c28f7521013bb4b847f853ec9e68082f39fe1fdff0cf38965f3043410155cafae4f162e2424a340ee2c86ce5682235a25269e50e7e8b74b9ccb1b430cd7fb328987811f89e5d05bb16323b6306a1a972ddba22cec6a084294a824fa3607ae48fd30e5c70bea508d0a7e489013035a7090ddd5eebd5cd603fa72f9008d18282d0042e93f43812dcd44b75998422642fe055f7abfdd6b04f5fb7953ff84e08f444b91cb5bf7aba7d51e13aee378d60e03cc59575c1ba0f67d40b04dab90a8176e5b260c3c0af7b55e246c001cb8aa0755204d6292e439f53eb3cb886420cf80a495d594475149cbdf26462ae45db60ed602c19ecc221aaf1c18a27148d40098811d9f5ec8ccd4824e311c6bca2f49dc90e5139c4c2e7f9432b91cdc0eec74abc879d78740cce92de9894f596a9b746776344e7eeff3495f386a21d260d901833fa5d4debd91512385ef1fe221754b2b13e71e0a2ad8635b3eb08d674aefa62eb0df1986415773d8419ac65b7929957cd3f06654a573e113677fac4e8a40a836c4f9f0f876f63eba339c14bbe54f4fed0f2655af47398de6118bc0b88eecab71514fd755efc140dc27df87ad707b191d57005cb476b2e7d8563420e1bf6c86722ac4acfaf0cbfb236a71652f432aa61fd493505bc8f0d3c303d03ad4535c3bcc4169d005d371dd182056a9108ad1f2a7ed94dabfc5ef140df441bef29a494ff3aa102ad6de36690e50bb24d3eaad79c2e389115bd98da93fde905f31138a4f12ea880f59b9cf6489c8fbaac4834b040c459f3fac43c6eb07933c3ede2f320e99f912715188342c3cf8db44e5be2c5a64cea9ce21136420bec10d9964272374fe8f0cef25b714624223bbc5c5e2401b03de1af270e49ab185c1da6e95041b666bd67031c69e47851587682ab091c85964d6f0180f957529de3c2f9b201215201ad64a2f0292562da7201c1753ebbb50ecf340efee467710bc1f990fcd4c4ba2a635d6ac436b34cc118340f8862f54762b3baa0228c15f857ee0c5a17974f09a420861d40ada1c90cdcb9001a37ad49abb59008afbd639d977027217e0e22c339748f4773528925c9f1c42e66851503f0932a31f4c8625705a8a8b8da670da789741cd929d03fef884e769880b3beb6a009bd0c674075ade4d6b4e29514e87718f8db8729189f98b9e237e19d58fc7120c3f19a241d2175e7b1e628f0b1ee8a6ab898cd1f1446c6b086adb874e5b1ae2d619f5160e15bead09f5e091f25060e3fce9c0aa154fb25a39c07a849fe0d4aa9779fe3ac7f3b1d1986368c8f92dbfa7a14e52baac4826a19b116e0e5e75a029632deef0a869ada7bd67a6a6b3e7a67f184f74a2e17f07cd790824b7f45344417f56eb697bd11a917a174aa2a317861b5e8b1378af40494784a4297540bb40308bd866090e113765fa00a88722ce0e7125447782a24a32c760afb5325e7314114ac7cc31dd9fb817eb2e53f87087087da3f5005a5d87ff61cfc882dc1590b242d61b190bab098b86f0fa075fac1cdf7d5336559183baed55327fc382080ec31bbdafa91384610869aa6e5b8eaf75a88405acf4c2f1a0e9f92c4def551ebfa2dfeb6c1656d615d9e273d790e9cf6310b50ab9fa01f904b72c249c3d552116eed8a2c40ba7bb0600c53a1206aba7e277858bd78602559568e1d6f60cd42493cd5d55f3f8eb34421d656912503cb4351968529efa526861d91f1a630ce0cae7e87c927637c1cfb27e0e46bc08556cd869bcd54b9cceb6ec012496d0e14ebbf305b2b3619a664f7b4fe80c769c0fafde5abec480c144e3220546dc06e454af0858a2829437470f870011782e62a38a5ba448eda2ad5afa3c5e2524594cb452d3997411e76f591915ff2a909ec48a13f3b69faf801cc76c95f306418aef5fcb08089477980a38f3dcec4e4d1fe0499668da648c9fa22c37b4f721594e2e277874810be500bab9aecca915f0dd72cb81b296b4b5383b829f239dfee168d22174f94e1d6df9f3b4c6e09c14c5a3f1da2de7367aa4f820d4395a35383a384b7070fe0ee8392658e9b7a3b59caf80111b4aead525f4ea4be5342cb0370b1f2e5b0b72c27c794ad3ec8cc14a04a10d5f16886192b36486f2091d2dfa7a5183c673bec0ddcfa0cf4f1c4883eb83c12fcf51a4bd078e977674cc686bac8ba86dd0b848cad149d3e9bb520be97d8e949f51c567e5b6b10340784ab4290feedb0f50b47fc22df6253c53b4c640dc49e3da457117a691042707e01cc9dd5ec369de91b92b2a43036ad8ef9ea22dd84307b09e4ddb8b2a5086eb34e31ff8a8af5f332c9b81e700bfa9a3f0980c259decb14ea3451f283ed13970a1c92dd005162a95a36980f4364e971edabf244ac243beef760a8b6fc2433b145fa0f2ef43dcdca80e046ad4fb72b7d793a2918a13ffed562b98a40dfbe5028501ef1b9f18946657991493f5a4dd806ce32e5e813933d53ba721133182284b9f580a0b92407b9d1ff00d4a0737813b9d17c13e720774891c20290078c435376a34238ca577dc86443af39c002c40cde37f9e12ad6f58d8f85f6726e34514333a806f08b544e47e887e309d7881dd5744fce52ab50f9678b3e27ab728b14ac6518ef66e92ccfb78156d2c409d3444ab87415133e0c1733551ba3e837c3330792b4f652bc602a7371a2b0c1c71c9254d603f2826119b9550f655ae3f09441646eeb1a641a2d99b976f9d7a4ad2ac871db94c2fabd8fde6c961e09098b5981df01363b6662a80c784d753baeb7fbb5a34f4a817b3b341f8a63694b18396defe1d804b74a0b819c1d5c145d4e98dfcccb4c7d8724dd201ce1d65cbdd0b2fe0183f97113be636a0ead56903177025415d9ecd691e74f112c21cfb4788e5b6960561aeeb8e8a44ee02614e946665aecc98422f6a1802c2dfb2615d807e2e52635d07cee01f179e8d105fbbb6fcc6c805ae6f537c638f987159b2baf5047e5fa5cec341cd8f8d251908135e602a38b0d16f190a6739a4236cd87e927f107728b7709ea83766fca9a7e7c53896cbc8bfa3ee3dc0ddf1c5b3a101a8828fa2b32e5f2b2865cab5bbf7d15b68d7808a0b4ec298982c9ba3e725f6dc02178b0ed7776e15d8c9742fdaa39cd8a931728b1439255a40bf7829a02f0f4448023d344880357a0f02932810c3c1f0e6500a61be2d4d707e8b12f39fa80f435617a0dec489d97bdee79b49dc443a9423904e5675849c89861079538b6ea7dbd8d2fc532793c836222238f8d59a4c6013df651b46fb830e6d09f2f1ee6bc096bdb049a7c5caf6d1d9ab3bd17a7cbde43cb87b5bea9aa0676ab8a8bf4f13c5faabdaf9576542dfc01a0e006ba04bf30195dd98c25940eaae111ba7a9fcd4f883efdbdcdf035f5f751199e3001a5501e69382f31a30e460e07306796391c9d39336dec55f23808b57d57fa1df220ab5e8b0236232139e47295afbb0bdf929f163e6c6ed9b0d93b19687ab369431e15dd06902b43e6cb7eaa4329960a4f5d46bed862aec5f2fdaa6d5781ca64a516b5f96f7f25e5453704230dc14576cba660fbac24fafd51019c26295772ed71cdf759e8aad5141dd8ee035e9f2f1bb5a98e8894775b34d4a47463dcac1e322926a46de5c36f91c9e371d0a7fdd7facbeaa5b8737601d660a350670bc18c64e6be4d21cfed52b6c6bc438c78071abecf5562f979d9aecb3f8df45877e7db516b44b4d2ff4a938260059b4a4ee9bfe2d4bb59df75724a75ebde4437596d9043f31a48ac220fd11c25ff47d1205150e14d868746700d034bdd053d04b000898fe9421925cef6c930f3862d0a44d21c39d9bd5f7ebc7673745e6dd1a184d3384fd0ba0b695709a5835ce7fc02a14bdd8f51ab4d6c12ce83f9ea03c98921872c64dfe57a6fee5f5a6f0320460b646ec8741db515a3cf34ea0ff1af3135e073b3488f307ff6a60d4d06b59e44ff82bad1e638aac6776aea5103f44b7bee03a651692ed0d115cde7f4245e879fc107bb729d7f2cb466917acfba7a2f04583105430e43596bde25091286bb3d5d1cd450862ba9870c3a6a1cc62e6c90f1df40d9e49f649df4013f2f31a213e9d230961b69edf145d2b59502c187fb8bbb32f0c9651028668b757ac13b14fdcbdf39078118d2e0bf84376725a4b45ec74a26a07eb7ddeabb9101af0abbbd8877b1d09ea789b506ce5d2b82896735f332e78f4dd3dd1aac7548a8e9de55a64dc5d7929faef9917918da72c62c19bdf52bab0d4571408dffe6b4ab8f831412734fd1eac291e7e9115b1f763ddc5f4df6a88052fc09a938cbf3c036c9de3d15a98386fc0cdd38be30a9e18a07a5a1086a8e4d283fb3d059749292139b2f5d6c9a42f05219986246b9f64085332c992d9975ccb64704d0e71f2ee9d5c3beb64ec476929ed0dcd26372fe135b54cebab0a4f56ea37db553e072e44fb8c74fe40ce64d873aca50762939b63931e080d6923ddd712d214ff638bad99b8a74c5302dfcac2a8fd6f594b13a6500395ae1a961d6c3ca232730bdb1103d6806e5cab638e77b8e51f4855d600c1ca6bc1df9e7db056fcc997ca5cede42860391aaef3056c2b81279a5705edd16968e0d521b773aadca604e8b65b271bd4d62d066be9b83181e0268a74b7ec75c720ae106eed70dca0b79a315857ca6d4a806ebb75b2416ddd62b0968e1b1308dda2f51c83ec7f1f064ab09239273a5b39e0acc657e6a1022e288159c84cf5d539052e470caf2adb45c4daf9c946e8258ce161366038fc1d6fbca1ea11f88fabf997b1415e1b7401259ce1f5ed51468ab8e903349a63d0e6cc3d075c8544689a0b9be9403eb01e283ff114929fb34e7d19bd0a7457f7e1e4785fb348dc69b108be7feaeb636d7a130fdb4de1228ce15e13d1b5b9d78c57d5f277e1a19ca848896e4ced12b65622ded7a697bc7acfe554786c672017330a6058da260ab0f8d934201596152a40341b5a057aa55153e98188fead6bf86194c48a7115d0a3b2e0972b0dcf4934aa366f87641fee9e95d6177d0854c1da5f9d8da7b7c77f9962617c311fb5072df16e4a9e2454a0599b90f16439fbbd585486bf012ae6c5158c7492daf4d327f4d7e8fb054cfa27ad97814678115aa4dc3c2d916eb88675bad1d08107e433ba306fcfee2b983fee6f6ad29d0de8f3ee46dfb4a00a1788d5c2b537314d539b6f28a032da18a82c044ad54598fab0a06d9b3651d38259fa4d9743a2d5d320dd5f229d1b06c608d4c33e18489062149a70767d63fd95bee21b6fb21f53762ce46a7aa8ab417f27b8969528d858d7d270d60ea83a141f48dc5cedb8690e4434ecb3336e2a7f6879862cc3de4a56ed87cf3cac7e85353766442f37673e58efc4ed1d3381f4234e77b5fa9533742b3c473441416a49da9199b88d0d153e6e7d0231316164039d7162c67e6be3b1d1dc08d19b0239b2c5d5c32c919e4d0b5287b913c72b4f34832c6c6fc26bb3ea7f46cecbd9eaeee5fa086bf1567b31b4b2c63c619b7253462c1365e4675822af0bac5d229473294e07a4712d4fd6d0df4d31f46e7345a4346f715db150235dd16571b66e1cd6b1c2e7bdc8545ee36f1a20a86a778e44faa587b702b5857f9ffd6c7cadf2be0a5286e49cced358da6fdc4a62dbb0895930190a9ec522243632229c99ca064739cef81ad5ee24de716443844b26704fadb92d86112560d0df215dad69c93f26f6a41f6a192583db7b97658c8912d737c7f568dea39f7a56201fe67764a35bfb99140fa95d2614c9248bb1f60e348a47d68177777a731ed5339de733ffb9659baa5e924fac1c7116e4241cf1adc8d80c61935d5672edf8602f28abc2bd2fb25773514e08ff6d158c1b5b609f23057cc002ea49f2705d5016196d3a8d46fc0fb25dd03a6037c7e73fe0b90dec29189732ee6d604f4401027cd45146b188fb80d484e059219cc815eb954f7b7f086ebe4b0365be56acba2f434b7c4bff4d84762f60db601adcae23f4bf9f9a88d052235bcabd032a07cc06ee062b1ec9927bb5527d977becea25efbd6a24ecd2a7d8d6a39fe827267c3778c5e13cc221ab2eabec9c33d1144b9cd32ef33a49e64c2db1f3de8fefb28a77544ce2234c8a2b8e1c39a79939e72d5da489b49016c2e10adb41389cfc4dce3be3dcc1e1ec557c994fc277a3ff83e49c9ef32d33cf3d4b98b4239ab0cff708a249fb766d03afb47cdee9663027e1709e795630e7777884b40fec64b0833412be2e5772255741fac85b442a27eec73cdf64d861308d44d939a724227b5449c361e7f4a983c49779d9d3a516c23ea48b4622b2e82337222af211b1b3c7ce1ec497f9cb31b0f39b77c4777b659974fbab688a4234f18ddea9393e57a7035f4aee06658f8bfbae7ab3b9491a9ef2089364e855f88b44df37e77b85249a22b3e4b979cc1ca5cca4b9c15200efb03cd281df39aec3b84ef06137725ce08d171cf227cdb7b089fed1127cd6ad8f5e144d6cafbfe8c1577390c1e16581312c194c8a2862acd125365663a704fb9c33ce307c73ce39af2136e8616f44d9ebbf2e8349d773a0f4fbae5853b0cfcbf964388c4f59605842124cbf6892ef83a229daf818639c39490099f165466969d71bd862df64d8f8c80c4e7064392b5f71c0d8ce000c78b573df647c1c9edce4f1d97988a6eb56e831ca83be8f175de4bb9f98b0e4e20bf7aeda431554bf7a45b6fba77ad5076903078a5470c0d8089e436b14f2c0e110be680a229a248d258358eb8e5a72ecbee2a78de0fd800d62c91d4c92008756f87f1f8d9733334c9271fb2dcbea9cc8c2fa7db1324a45b2fe0a2ab74020733814f2186fb5a45436a52daa0f56c8a135d325945b3cc333ec22afebbaaeebbaae4fae8bc17686a1ad9c2cafbe2eef7a4829871c3206cef8322fea9f0c31c2c6de30ec185531d6149632f663509125e69c734ecb9a36d3b22c6b5a73ce39e7ade9856fce39e79c96356d96e004b171080e1079f968673462c6c62146c858ee648ca5ab5919b232c5a85d64165dac5b35a2e28bf5d985cf7a6c01339280f5eb56bb2005353535353535353535353535353535353535353535353535353535353535353529a03da5e4d1c216a796b2fdcd22c1178714d163e3902278ecc69ce88891eb823bd951390d0dd1e48530c45004d1c542b16d022bbbcb41490f0f8745ecc90978278e9d3b6c4f2804de5e59541556aa9410fb7de06d1baba44b656167a5f23cf072cae2104127e704c4721c7879c6aab8c0b3b34262354dfab0d82a0c3d3c3b94e62c2185d2b9a2113bb2234da67f371bef824a16fd9b4923c4798418ca9984e8d273b585e9848cbbe69d282ba70e0c62092602bf730808fcce231ef03b91d88143e7f712b14423e67702e180df19840ebf13053998282196e40c0ebffd8406fcf61466fc361664f0a7835892a71b7edb07317e7b880dbf5d04061c747e9f2096a46a01bfad0205fc360cec6f0f01833d2bc412cb24e097b580805f5ea286df06e2057f928825c671f1cb4a987e590934fcf213607e19099168e2cee719c412a74abf6c04e9977530c32ffba0c5bb2fc412f71ce0974760805f3e41017e590523ed7cc98458ea9b76e9b3f8955120c0afb4c28b0cbc85bfd288cbaf544200bf328901fcca1f58be4422961ad52eddf22b4fd2082b6770650b2c5fa220969a879eb318e408ea6ffc42dc82e5632096a64dbbb4ca6fdc59894c60e1cf88a5a983239aaef3654413f694df48a40614bf33587eb127bfb78cf28bc232c87266f92b6269eeb44bcf52b6d3d9c0305da211002f8500cc036060329d18f0520780f7d32107f0b264363880973600bcdf0cf08a321bdb973173ea12e5b901bc3406783f1b4e3cb6cf00f0b2588a5a0078a902c0fb59b00f03bc2c4d6f12005e8a00f07e358057446f6cff850c4e97b01e17e0a526f07e34e0f4d83e0c7859fa9cea12962a819792c0fbcdc0a994edb7002f4b633807002f350078bf0270cf887b6c63322cc04b0900deefe50693b17d19505dba54edc2d3a5ebd42efd0180970a00bc9f0b78452adb0f513400e0a51f00c0fbad00af08bc2cf69ab1563180970504afa8daf46fc3025eaa02bcdfcad45101756c5b39edb2d3258ba65dfa29e06511a500afe84301de4f34e987025a34b67f025e962d14808bbee963fa30c974a0a04a65a89e1e93ca36f46536590fb2538693dd1831125f244f26443693c9f49c4ea0caf6435561a54a358fe6115fe84d10724e383b3bf1457a95edc6f55016501a3a4365980813e95259d859a9f8866fe28be42adb4dc321824ece69c992f82231194c06980d4683cda85495ada6e202cfce2a4890ec3a5d47b85097ce952369244d7c91b7d735731571dd5c36174d121cd82a0c3d3c3b32e28b647b55b6dbcc59420aa5735b6c4b7c91d94e7ce9cc0ada4c0e34207096b0ad05147c19db59d996b29d76e9df17944856b2f1dc49cbc845a62359748b68ba9399418aa43f79763113649a8fbf23b31d984ce716c0ca774a934175d4e1b17d002b7f33218cbc1d7c2daab4352411677891430b2befede093bfd3d25236c6008207c81e5627e021841042082184104208218410429c0015262aa354a6e1100b55f6f18371180887a7ca41388785b00e874c845fb948652392e78d4dcad51a1cf26aceec57ce1aa97663ea449475b6ced62f2d7cf33b31e2bbacda7815058b9d8f58ddc55867561d61125b67996e148c324f16fb262396be76c19eaad103974c1e532d5032606102ec8b68d21e0f23322092acb086e8821988c5ce3fe67505b1dbb9edddbdee3ef74f88af4dee1efd35cff33cbbb56f39d67a679dc3b1dafbdabb6bdb79e60700425ead2eaf64ba8b4c9cab6ea3687a468616959336d22107de100435b06505af32ed97af813c742d5b005cee37e6f844f7cc1bdea3fcda09908214058cecc2816064970ec43650467bc67167efdbb76d9bb7fdb379db26dab6c3f0b66ddb46b9b46ddbb6a28bd9ba6ddb3ef5a23eddaff78eabef4050b674311b9881577bdd42aea56d542a1489e4eb9453a638c43a96e119ab7631f32dc324eb33ef7098efbeb1fd0769b3534a29bd610f34daea1a75134dd9f62dab6cb77a9bc762ef22741226bdc8c075b589f01b27a761d03ffaa67dc417ecb4b60d873b32b058921e3c94acda9252d1d47645579436aa2d6d17ec94a2240bec3aa6f59ee363bd1a6d0672f7858d9706cb711fee21eef351c5147718ccfd0593b2732e2c771a22779868eace711cf7c8ad38ee1cc77d0e76311c1839fc701c17c23ebfa17f3e95a59bf181dcaa51f2a3fc0169303333333333735ce96c60afdea08715808d436cb063b717ae6398d2c03843c9d362ee623466f666f03192113799a48db26a436b52e7ce5b200f2cdd8c09d200bb88b6d32c8528649da800dc64241c62bcaa41a3e60e7a2cbbc8c7d7e34e1e167b7f613bf65e124ddd4b32c5b7c36031c67892889060210c3be5aefd7ad7b04b2321f0520eb1abe86678a00e693fe0e56be71ebb1837b47b07e07c98522ab1d8f9510987588ce001b21a652a95519a5da357b6d2cdb8a8ca6ae76f24ae6b5bfa7da8f02c2c18afb81b8c57d1c5cc73af7438cc5597644aa6642a45e9f7899a65644aa6e20b653b6138d5898a6cc17e656831a2a99e9429a551635087a45aaa4b943e1cd5d982c3dea29bb1c24a231c62d68e6f6bc17555ca70a0ceda43a5c1214681f8827d02910536bf2ed540a9e8f0ea46d58daa4f8272e64437a34149c332dda86ef0e218cd9dafdf3d7637b04ca3de034c345defd3108e1e7e225e757747d1c558ddcdabec6ee71d8bfdea4c7433365087b401ca96b8acafd5b61b86a25d67d94b83b42c8b0693a48d8ff700134dda65c9a4748262e204974497a721ba88d6859517d546b10bf61335b28b891a19a5463ea9915d4a9f85a28bb12ceb05cab3befd72df7e6717c1ded5185f4c7433385087b41e78bd6fb72eea62ac77973e38c4de5569c3abcb2becde0c3e0a5efe065ae0d4a48d0f4ac18ba3c5a6e898767b8e8fddde1d783ddbf96e40f22322235f911bed2fb8246fc2d143d165344da65db06b235080a67547e96234b0032387da0b26e5b820b0f78595524634d10451c92537447887c7c948f7b0ed873a1bba9e74311a2879803aa4e5686ee44d0eeff45ded7d1fa6bd2c8381ba191a783d182e6cece18fb286f82eafe419f4ef5bcd2171a2495aec571a61435dcc76f67ee0803a1cb6f3efaafbf37d22d1c350953c68bc1a2ba8b208e20bf6af32109105760bbb49e59b76c1de55c641a1360b94335e3783411d92ab92a64a1e56093e1ee20b162dcb54c6b1d81988688a3fb4cb33163bef60d23cf6824b3cb40b76223b45782c167b2c761918efe6bb7266c62e125fb0776dd48fef3aafa2b08a26edd88f020508d45d0cb6da6334f10b83db754ccbcff1b1da29e5109c3aa4ddba19da19bcc1819246f2603923793089378d358d79e8120cbbf07528ea4ba96e54b5e090b51bfcb0dc0cee0c761743bb77eef85af5ea0fd2725cb99baeb6882ffcac6ef5ce60f90577c3d52b8df8c1210673234f2a393268753ebb14eb225787c36f500eb1d3ee06066f64200d0eb1ff20ed06f600aa78e88149dab1d360924cd17a5b544d32c162d288bce9520b76e1bfa044be222223bf217699ead2c4380ade4f45d4f2d8298b7d2371b3366ade84657806ecb4fe202d0ed751c32e311276c18ef1b0d877586c89c57ea38e128bfdc2588c93588caffdca6ba00f939160bcb298d6cd90a00e69299632a3caa07a62f3c4310778607384052c5882052dd7e575c99797671bab715608be4d491697d8b9c3ce120e76998f5d8c8c3efee070c6f90cb35a20844bd2e688c84891ce61520fa229061689e8827d48169306e11eda810e60e74b906f3a279afaf3dd5956de6bdba7be2e50869a8304632cf529bacce7643a7636cadee0df467bf986c3c920e3443e0c66909bf0f5e4f40d937e70c963d29d3af67acb5c3ee930e9863ce7cc2d8968e2727c3af04a1da4bcd6cd90e74b1e4e32ef710fd6015b66c3bc20b07789b5de3213ec1b2e01c15a671e6b86589235c42442204cdaf41702afa841e0bd0d80bdd266eb38cb065fb4977998c752624613e8d6a50fcb5a49504cc1ba1258dab04523418fa01ae34b762aad256d346537b4fd707cc3377cc3375956bdac7659e5b2ba6555cb6a96559a552cab5756ad2cc39149bb85bcc71895606354e2aa8172df8948e533440675313613cec4648b2b19fec1e17574b8d43a2d4aa087b6d06523acc53f6e827cb72f67210bd1f4dd92d4faecc12511106eb1d6270f9a194474d142b2b0feb9d5dde24826b03c3c200fcf81ac6c68e3102039768b1ca39cde94293295983232375f4ac42a1d54e8f3334653ec92b4ac1ed6ba914574a40f76e90979be236da4cd0f0ae40b2212622d1e1326ce6383430b7450953e5ac7080fb596844a9e4484e4934774ac850ac35fc4635910286d6ef0813a065556c2a17523adf30dff609c68f26e9d8d88a610cc12c452df88209264a48b16d2393238b140081008bc38461cea701d7481b05f6941879199dc781139c4b22c05742c05f4f9d0b70d54adfb6085401888a500dcba0dc6114da0c79d157be30e8abd71a7b337ee481ff1c57aa84a1b19184417eb0040a1b9d2a6573cf04e1b6b3578a70c2ce8319a4c7e43f7beb514be931e7cd287ef26dfba9edcb30e02affc7162e383654f4069c3a1d5624d6a0e0dd8d09b071fe8d843757a555ad00fd37ec7013ae8f3598703e813a403e833f439ef8dcf7f9036058716dbbdbb465bc8bc25faac681262bfd3a37887b94ee905636f00ecf659410fd53b4f91581008a361f0b45ffd58397dc417fa8ffdaad7e3d9af76463afb55eec4d9af6ecd63b35fd57634fbd58c4866bf4af986daaf624b30fbd54b75d9af5a412cfbd52969beda38e20b3d0c96d1f6035be20bfd945f8d36822d60e20bbfdb68b07c518bcef22d51f8d18fe516d692734311af99aa00ce0c0d73f32dee18c93209b3125ec2bcc32ab901121b871051c41221c4d26b27ceb88168c671482f8388764e8a83c339999953f0ddd115449433d10444a2c04ed98219d87e473bd3a08d09529133d7bc9cb96a0e16182d9088c31d56ca644a2082081c914874855429d46894f5489354daed9af68ef3ba7fbeeeee5dccd9bb2cbb47df1ca594b668eb4cd2d168341a8d88c8b22ccbb28edb34da719b46374a411a9c36e7d699a4a3d168c48dba111126321a323941a126329493ce840b695bd7719aa6699aa6699aa6659a26d234ed309aa6699aa6699cc6699af6e1389086f6962e46036b74f436e8fc562d99c9ac51a3d168341a6597979acc64c669acd1f3dfe140cf574824ba3a9374a41a8d462322b22ccbb2ed59c63da359f7fbc2c64b83edba4ff7affb7c54311551dd5f30697be7c276a72176dcbbaeebbaaeebbaeeebbaaefb40dd47e3037599966599668386ac4c3b35ea6eab675b6dad664b1be6089552d15f790ad2c8a405daa831bb884cd3362ecb3222b22dcb328dd3beee947ee0a5342895b54759b63dd3b22d93b5ed68341a8d465aa665202d22cbb28cd22c033f8e66ab4ba669d4b061810ad091a84b385429d468b412ad44349a4d0f0e298c74112f4dbae8816a74d3ae12a75d0fd5a880ae6d616828c765302e3ab5c1c008b5499f344a9be813efee9f3081726212ea6cebacbb3fd9fbd77b730d52efc33dcb4629189a8f430ce4b237f70cbc385aba5fdcd65a77777777777737b7b5c675f7765dd7755dd7755dd7755dd775519a1e9d0d8dd56ab55a69f4a2b934186e341a8de40ddd388e528e7a34bad56ab5f2aaec61c3358a7e0f390e9434dde9b7ad4a1bd9634523be608fd1d258f1f4c8cc643445504a359a6d1bc851edfbb80d943614943d58d2d03089f6b0a194d258ad562bda7594d26aa3036b74dc56b38e661ddd328d01d05ddb39cbb22ccb6ad8608d72d17e1cdd401b35408f06d869d4b0916934d368a685ea11938e464a5029d5ed5f20ed8fabd2d28d7f48c1fca294dcc2a1dca14b18c8a26f31257d4817fdd9f55dda21ea8860bec961ef208168a2f4ab0c026b59a0bc51b2c596db3a16fba6f2c8724a59e835ca62834b92a75db0cb8e3c3d294f7114ff0913973f93502edfc2a4939b5c5e0626852ee57729bbcb338049dce5653069bb7c0e3b48800726cdd22f5f83494d1f29a5147cc1a1e4e9520c526aa04b31809206c42a8d8aa7a878ca113d5664e39023562caff5b316f1ac5edfde55ee5eedfea91ea87e0f55d04935394a3db9898af213d5c445f5c45154d1535414e79ae22995af52a38d5d8c4bd274499e567e45b656a9845db0cf2e0666592e4ffd63fd15f08a30152c05bc34a5b25cda144d852fd53f54fcf6102ac7b6952aad8a9a4303f62a9f5d8c8aa7bc553ce51b732b2a9e7218bc92527548bb723ec22599da51927218cc2295a4f830e76d603d2a55455da994c3956a59956a037d4a954a640f87d85354b98443ec282a8b2aefe010fb89ca3301a7138e8eb5bec524d68a53b217993b1bb818d24ee96346f6e2617004bfcd28d9bb1eb0df6789ac480a3dbe8758325982b57e5bbc8856c4bb12fb45174ba3cf415d951b73cdd12a2da87257dbce393dcf7b7f3eefcfa791f4116b882f65817e2512ece713c524d08ca688c3e7739b1b5781a7105d7cbd834b26399f6809cb500ea7d7c56ca19009a8279ae2e41a6d57d976d541adf71f44c9136424f1c5834234e9f86cdf7a3f21bae82f9abc7fa00df4b9b5e3f3564b68610320b09e0e5448b87cba7cba7c4269d4ead4aadeaad4810a094518e20323167b7f13d12a2d9fb81a2d9fdab6e77dba18ef8d83e7796db92a6d7c6a8d79b587dabaef2010c54357086b14aa511b08427de09555b0d6b91bbc62837ccaa10971b4c66d9bd604d71d1bd5a89e34393f8970b66ac3f6fe9446882f45882c90f87cbe4dcea4ca9d76e141c597adabd34a23c417ebb2089145114622521162adab7cb344f05d896aac67ebf9f47c7cf286f86ea35652a542a950a8f8623d05c7556943b5e7db07bb58ff012448b720b2b0eed5b6892fcd48765e60adb08420acd5402cc15e17c3b21dc8ab6849d444b56d1593a6b55473879584579677accf2f5bc17ec05017f379af90441c3ee0fc5095aadbe6946447b85569b91a1c4e10bd80a4914100216de28bd576c398b2773f60379091545e1dc1d69b091194d9dbaa68f20efabd45616fab2ef6c66474f93c047ede813d9f6f60cfe720f0320bbccfbdcfe7393ef6033ebeabd3ce2e0604ce3e9df179dfa01fb03fdd9f0f0741dd509cef24caf9e7146a07715d65fba97c0a125f2c14238142f111568212a224acf51fc4b8d1ab3e02b68a491b9f38b47c00bd3f1bfbc05a1c44a2244aa2248a4f9cfafa09d185bfd337058a856f0bd6ea2fcc1d4b50f591f8d2dda3c167ddd0819db47249e8d6076c1587b15db677f5e1d3751d05b08f7068c99c1f3efb399f7c582bc8e9d4e305d67ab720bea8ba5443896a896ac5c35a28dc32a2581e0d0eadb39544a249036364e00fd2b68ec73386d862cb64db6d446b20f5fac6e0c478d2584bc54aaba4a440213a6102e5c42404fa3e5ec76d5a46b17aa9a82ca795b35ac4af692a35e55d55be529b933374a65a6fa6e9d23b6ed2969662e7fa5bf7ec6e6ea5b2e058720bf3d825ca5aa9393460b72e66e5f3dacae7b5f2f9eb12080bcf1e4ca229562ef624b787fdb256aa04a252659014550a913a27aa345165110e531c5a3fa9d248952a0e8f70b892487692f028913d7209cbf00e76e1217170f0f529d3700f2ba1b1b4069f572133c714a314bb320ccb2876c9190e2d1e12e764e9c0e2300907883c8193328d452946297665189651ec6a19133e00820304c7921698637eb3e7e444764a69c416828fbfc949bd4728acce041112be22c00ca121966066b4ddf866725127321128f6f8ec081dcbc2c62140786ce81be528e5c1210cf768f278f298e231e5b1e551e591a4e29c17e4bb7c536710d206e49bbe30caa41ac34b2b6e5d980f2665dfad4e3b100e2d1b7cd25e91a808933e464c7ea5eae4571eb1964422776412fec140ac256d2a093c45514107eb652340d8452f914493895b97538826945b964c6156c8c683f00f1b9b2913026d44bfd2a68262b87506c2a51541729884dd3a0b21c2282ec224ed2d609814fa0d87737252c909812a9f53655e3455623d280610c5e755de127e9fdda7f639e761308049269f97c1a493cfe7c0a4149fdf41024c6af93c0f4c5af97c0f5c5af1f91a4cfae70c896e75313334e714d95ce52b2adfb44b55794a6d798a9af2939ae226f5e45c35f956b97fea76ad7ede55ed5fedeed5ef59f58ed50c45bd0e56148fa18207d51868ad2b446df946c5ad73112b8e62c56d34ddaeda3dd863a828eed5ec5ff5ded5ef5aedfea9dab7faa1357493caa5a827af953ea5a6784b4df98ada3ced62c15cd1c7527f5045711595e52b55c56b055da5aebca5aa3c8615a1db6097f918c04b791e04e72b7845f3a15a6b7038cf52697038afa2f6c0e1fc4ae581c379952a010ee753ea0e1ccea7a83970387f526570386f5219c0e13c5761bce070fe53615a8c64086bcb55401545e5389cdf0441971222a0199a3344af50e89a21fa63ca884e9830a1dcba748194c10b22c946f640e64016612dd0256886e60cd12b14ba668862a29a12faf5d04fd494d0435d24d43af44d249a42b7de49c412df74eb3089721090e43ce1d44a601c25ac75ef21efa1d02967a2de106df6cd66cacc1d7304f3c784c154c109284ae8f456a7830fd6cd8cd03df9c37be8b28ba1d403435e347da6d0466b8e8ff59ed5af4adb9d0ef4a1d029fd32e6a9979708e9983687e4b1994cb4d79c993192820ffd88d41127d02fd027901db6c5c621407ad88d72264242828044ce11d6fa10d4871c1f9b3d8706acf61bfaf7cd005fe8b4b3211402b91bbc876af78f76a75f07b6d8e6c117fa751355da1fa6cdde4442a15028145fb24fe6a10f99b8a8548c3795510e959a1108000010007315000030100a85c462c1782ccf73d90f1400117c925066501b4944519223290e11631020860000004000000060a46a0084f21e073d6ba8c765f94b0e9776fc489950b7730554d7f64e702b9e183a84b68321a56c48bf24685a3f25ce8db5bfbc16e342934c48d21741c0046659b953827c82ee9b0136a7931ff3b8102bafca6d992c24622171d800e916b09d1948bf106f3388320be8fd688d943cb9c34c701bb654b20ed2bcdccbe7405cf2c0a77470f22d30abeb616f9af3e41ae5aa797921c3c4d1ab9cee8e727a3ccb75ae7b697851e6d9846c9504f0d9c4c85cc556b59bee3af0e9fc65455cf7c897cd4e41e80e5d042c3e97ab071e0529315eb8fc3f7a39f4ea1ac702293097f2a02c4fd8a8bbb905b886c995cbe31c1ed71833620a60c1a796eae29eb9e9bc6230558c02bded869b438c4ce9d7d8f88b7b99650d6b144ed8762185e98b52c4ef0e7b62ad264ca180b463633e34314fded655dbbe715a4483f784a0fbabe803dd89e26fc2c90cfc2ce939aeb3a595b223619f0d780dc5637949e6b37d2297f099bc263d48879bb53262b9be967fda2fc1528ea5215c1aa70d27d5ae00e8fec907212939904df31de5d604daec0d07be1409b0dabe45d0842d5cfea2a6a0642782b46bba5049bf40610c997e2094db06813f3bad850efd8061e4438b099f75ee12b156675d6624fa40273403909ebf07457348767f48612f088d68ff7f0ffbf55625251120daa5e6f11dded7424c6c4533d58c2cc0ad3f212f0edd27112af89ff6cb9a148686f7c992eddbb544723f5d0ac90f5ba857dfce554830bba8b12d6edef0938ac2476bc44251cb9d5a1164eb3695d382ec0a15ab757222750279ef4a6c79051194d41a6b4cc9bbb8274761b79bf046a1be6a949a595cdbf548813453439f2a1316b67f4bedfdf228a94021f8b273c2a0c11022aa8642a7fa3a516d1447aa97798616197664f3778b7138f24ac8f27f6c9ba66a2b4fc45acebe70db60484dcb0ec9e49edcea7bce2e7555cae06212247716e6e42cba7d3fe7839a398b017b8e2bcb151fc5b8837ec31af9cbfab07e4600b7441b7d6b4df604353067ed06962591ad1c28f293c1ee3f7c72c50efc636ece424098eeebd9d191f0358b0ac4851e9264e6c026e0d22519e1a1006817481e712e82acb9990585442d69d14a5c004453bb53dec516d119de510ed498a06d5b3c01a021142b38de774857f71438edc1970b72d389e0f3b3877bbb7fd5dbb944391231e9896662779e5e440a50aa9a4e5818aa911a298af83d0f70638f2c8304c0adddd5a4991c9f1d5382a73319ba3856f35c06660bbd77f39cbc23cc4b205eae19600079fbca1420e4fc5467c2f8aba4b2a8cdd8528145662714c778f9eca71bb1764fff82a90a0dca8f885b103a7fb79ca92ec3159b28bcad76cb668088c9efe91283a447e009fd7d46fa4f6e5f050e24f9af8b44767d219eb0b800d145773a8018f727b043cb52acbbf08b809086e2f7b312c8ad5d380e823ebccaec190a43c9e699b2ee5df94f0f972dba9de4edb5beb7243161e98b9bf8341512a9cac8b3ac89c190eafa7e70520c505bb77c16a983925be78e7c6ab857964ef386d46d213e726762df4330cd44a91669dada0fcc2c28e635228ccd6fff57bd94be838068fa46c4502a2fc1aa94605aedd52e32222e6776f5ba4726996d651e16e3dc6e3fdea0336c1e2e60f94666d8ed1a89733bc51d76f96fdebf55b261782ee55d0312e5435d745e07182faba228a898002c965dc838307eb66bc6d31fc66c9c91a076b8dbda02b9527baeed65ffa0717b9abbc810709004236ec7f87df4203facc571e5a2ac45f941aadcd63fd6c03eb46a7916e4940ba5d8ba635047d2544e5df8b905607b2f84d6ad8cda4939003e0e546a4904f8689c5f4f5923681785afbc6b4639b1005321d89628bec9b31818a22139f855b1b7e3b1e05992b4fbca638bc630fcd336772352e3c6778ae63d21cfdf59aa65cef4eabcbe71975cca09d17285e275df9be2f507070aeb078c37600203f6317ac4ff7d04c8676163ca45df73f6ccc6ba3633a9d0edfe89f936b1f4f2d670742f21507b5c618fb9966ff6c00be107976289997f9031f2632622a902fbc2d1c0c66146a48ecb97d7d04d4541d5b04c8802d34bd94843b2301144897e64e62417884173620d03ebcc825d00fd60f480813e15555ec1a7b90c269191caa536868b3d8925adb9c0759c8ff76658c40ee5efce2167a8d5663a95cf26ee5ccb810b30cb997280c40b61418c61f6484444c7d14b16ef4ab269481e388a768209a254c2402196ca7195c74ab81a7f4705d0ebfab964505c2caf9215f0001f30c6b6a60d8d05d499a4bd57a777bdc2feb4e9a0bd611b2bcf0064ca096d95b9a32de9ad36d23c3c3bd3d3d5e7f30a51b838694e0a2a4accf069237d2f5a0fec9e393142878668009db353f625d956117e530a6d14a5c822ea5cbf7bcc81b7790e0ae0449cea9eff1847cc008b8b6d4d806f0a8336a3566671976525b4f93d5aba90a4bf614e718bc4947249b84804995405177788263b1e011f49d425341a901dd8437c8768d43fd4a24f79046a60b0718e8a636de5b9565cce708f3fca69e4cba288fabe798eb4936b794b8b39eb96033bfca3fd31f4a8774aeae8ccc843704538a0e33d86dd614ffb50ad2537b146f3c563eb20be85b98f9d9ea3fdac41930b5ddd7a120c3c209b03e37371f3c4f647d5b8c860cc56f9662416bee5a57c66f011f4d4e1998383259b03a9472798f11a0cba6def98ae7546dea7ed3dc71e8a400ffe8d820efd12f3c4cec1708d9555e463e9959d31a5c9576a23734c0ae1505de4638db3812919a01ba9d2b175347a4836e24ed4404125f61c7c139ea41954cd5c1b1fc2b5ce3507694c42161042ce1246e805fe8555ce8ce73aec3ad0fdf24f72a3d180c602b4e7e28cf1712361134434d4addf54f6fce756da3a564f4959a23b6791f16f211bcd93610d5d0f3589417bf06a25c6319481b273c131ab0c36309f1636acbb27452cc78bf59111c9b73eba6400a1e171fcfb43646eef6d9c6d82d99b67e36ef48ab4814d2792ec9e46f50e2e674f931a389247c830f04c251f0470c4d05aa5276b156b764b3c46f89b4bfc692a76025478a53e20a1cfb0b117f5dbee9fbaee798045ca6d844c33de31cd53bcbe5e1bfe77eeafc5c64b2ba32dca8ea0ced0a88b972decf5a3c02863ec3c55f5ec8a1906c88403ad2b1e996f014b13fe70944ff3a4052cfa0b10c83ac0af8596df715f5841575d05bb8bbd513e0165cfdc05fcc59fdc9fba63619d92cac49b6ab9e34ce57702946f777cef37f480c910b3caa007a422d4685ed208278aa2ea30e27f23f170b7e6285b34acd756a23570ac9de0fa752a829b407395d3fc792c205b2f6e3d8731ac9459ed7ff51a31ced4d63dc46d569de739afa7497d5b3404e465deb91c0a1988c87b56f9e0b56073dbbc34c6fd7d5df085fe4105604dbc257ccee6bdc2f43e0acbfb28c08af7439b6f99020a311aed1456db0065e8f76ceb4d4e861cf714b72a38be0348b7e480716b5b9e70c98e3e6e1e840676f58444f551f3d11f9f6caf10c9d039c788f378b3b7634421d21f83fac903a1f891cbfc6ab43b17e849d3700bf504778e27bc8c2a58027520d7f5d0517834a9588c922ef652b490d79cc05a518c79d82c1b05ea1d7698ab9150e7cd6399835324b1c1066503b45685dd8ebea8a66c3b09546af838f1d319ea8c2dcc0b673dcaa8d7f3f6acbb5289163beadcf496acfa55838d09b68c05651b8c7850bf669486d12aa9c051abdb138f524fda0a6ceb2c4057aa2b4ed0bc2a569be2d6c29354d7332837ef0b4420dc1922d00e8e72c7e044e18104cd8a6fffc8f613b9021dd720d690e7f39f4271adf2ef57eccf926a81ae5e863afc19a0a17efaa795d2fda2ebb6c761b3aa28afa623f00458e44ccbecdb136b6a9fd73863e4788d52ae25015d44e2408cebd94f10a521978912aebc137c4aee7cc252a4b67b4609ab996332cf904ba89a62b049f0ce49c9a674cf40d7a60ec16bce3ce1659423ad8991650c6e75b4a8c2c8228a064a02b9901ec14930293f45978a6ec964b79d20e6d0f09f6ab8d920ec73696989339c6dbb7a1f265d038b2597de4ea6fc96ba2741a5e2563740edf7c7ff9f7da64b825e456c8c8f3ac194c3d2a7b801753a008b33404c1c45ab5e3b2a3933351253ab188fdbba8c96060217eefb268b2b8e7cd557797ddbc3e3e79e7f53125400c09b80e9a5ac467535f1f398035c9c5fd034ca012e44bdc3d565d5d97b09ba2a857cce9085b2ec19bec5e7db8d2986833799895d11c6bae242e6474053b1c93f4950713c3bc54e8e1c2b6c9cfb0bd1dcdcabb7c64f5fd067eb9fb6a7c66c7d2e1d1f844a69d86d09f23c5bc5c0cdfa035e3b820b0e75d86b50f09674756bc2f3e07c35f9164f4da10a4e838052bff4acbc2b1801e3b94469f8f609df1cdf2e0c8c901429e979171223d20c3dcee7827fcf8339aee10fa39dff3a493e8118fffeee9daf68efa234e0c0a97a77149f03ba6ccc6ac6013c9a869b5b08cc2f4cf4f377ad013fb196866ad55f68e9ecacfb05f8d1240b10b09f4253c5d0f3b39379fb99ea9d2b5bc11bfc3bc0b82e020b74aba0dfc747931d5450581bf3686d0ec655d58ebbce511dfcbc0b337cfb9e0b72eeea9f45f56447379dc23c99e3ade11d564ef8a8f0c1e0f161f63d9d777dfbcfdce13e49c8c09ec8be1091c905ff90fc7979c9da048c4296ba47217995b25c0f42b3c424da13affd8a45ff6d08d5e56ff5bc8ad3069d3dc6591e24eb6f11c8507a3aa5530c4926eea2af26c60ee3889dc99766c676752e0e4823a4d5c5557b23653a09b77a1aaf6407565599caf46554ebdc195eb19488c211dc428e86cae3e1368e08933734ceb264423659d4b7a6d5d82a6b07e36459106de4e497c1f3ab3a478f7215e510503a407a853be693d9195def1e4c2d4c2e5fabbc2d6097b8ceef5103e97d4f67f3479d6668c66f22f2aa01d8a633bc77f29e1526024bee84436e672065827487e2f0b1da8fd0fd5b78548bad207adf5f50eb533317f7859c552019b46dcf084f71508088b82f52b768a212a886da2001f6ba84431f22114a33205af0c398067d7632ed6d1f224b3c0761e8c54163a2f7e341147fe2a7386b613930d1f15dbf41e57179b98a13aea419dbdd1223e8c66f99d3042a2c9ce6046969fc953bb33edf70cb65fdebfaa1954d6affa82f6a88da3f942821370ab827bec8226c185bcd8dd672d44b7a15c45d897ff612ae39986b1d3fd4d20dc5b8a1126acf8078acaa104ae53555d192735dad118e2644c21ab0aa54e70aa3350c2618337504c76e8e9bb41c02e5e1d00558b1cae2ebc30714c44e9d6fad0046841c2c185820a0d4de391a44060745d99d26145ca9569fd2e8e22d66ef17e28da95b8e75d625fd1d265c9017a1ce9d8759e8d88fcfc1b8605a5d0e2fa576995d73baa2c502407452acd121fac2065a619b5ac27b753910450222894568b2db53f8dd879a5f29c61b29b4eae163f698eae353a67d1812290147ce6c4c0fcfab52f06c50bec82f54734fc7cff6423b000ca550829aea281b9c63839b0b3980c7420b240be3b49c5bbe3a1273aa0d451fbc8af4a1314a349b7a0233bb133b2713d33b0ae8bc43d0a92f11b40e9169753d6b7f85f9a375411ed9284f52e8eab2ad73aff6e110cf77315a210e0f477796a3e5525c077d98c9164512c1f7ae2231395a113003f4c666eff268e56b49c1046e916b8ca97731e5cfa6842c586b4b98b125e1a815abeac48727135e46017c88275871b391f877277e7090ac3b60f012647423eef43ce468d4c63264292d65e8c0037b65c0db54113be52ba24b141e868bf09104488e9b5b8db45e817471075df1989ee4589bed6d23b7a97453977fad34fcefd75f6bc0546d8aca67b4b4e2dd0bdd0ea90aac06cd2c9d34af742407a44dbc57ee3d7a9de8aeee69083f498b3e5d32550cc2e0a6644f711c57c541726687d82998b583095be060c533eaa5734c52af9fb8d92924e8812a48159420e96a1f783bb24badfbbc61d619441e05812cfbb823882cc3af2b0c843acc1272703f06c42c37100e85a02084a6e7207e732421ce746521de947f432ca6ec21fee77e4418eaf244d834ff8a68dd53e65d8486c419514320a615c2a723603fc2e6b9b7eafac2847b984684f5945b51174973e262ca2099a4dd2685451884137959dadcb10f4a66fb0ace80f3dead530dac7b396cc003ebce6d1d9e6e84802bf9eff5eb64d5eb0fcc639edc03044158d69b5bcd0f9196fd9c059cae6663899edc8e006c624291d99a78bd359404841e5659a3dfb98944bae92597af0a466ea55ee00f7272da9802ce0c19d2dc444f5d8464b29f1b397b8c31829e8c395812e4b103a3c34a9f20dfc1f801c915c2b2332c086f2247745ecd56c4037a7b90c2a351d3ba8060a5dd5ef196c4edbe48e4c5ee21414d5000207c1e52785e481eb1394d7448aff0d1fb9a0d89fdf9bf84a1430fac4325753d74a348b75fdec898d791e609af0df8db51bbead44b2afeceb523387ba71b2e8d56524cb3f335e8c802cc215ad58a6053500a466682d7c7515eff1fb3282641a819dbf608f84c5c3cffbab5c98932b09422f8f5c8fe84f5aa26f6350c6b0a0b3d987822bbaf12b7ef2051e0ac354b9b5c82b0200066839598093f6994766df49901a4d54104027b545300a9450f21076fd8fe1383337ed912a35cda0e19124d8edccca4211afcd4ea0c8173ab871705598de88f5cb493d970ada862a0ba041e3d6c6e9bf41f0c457dfe0d90684b1b0c0054aa3521d04f50fa58561f0d65c1f9812cbf6154d0782e529a0aeaa34611b2de13bfba8c38906449fd5215a6b78bd91dc3e14ae5499e8e530b21bbadec718e163d5ce46bd81911b9801a82f6ffea2b1116647003f567c9526081dca3a2d0ea07c331d1c3121147f4e60a032a3b0c16e5b964bd444aebf813112706e36065acb34e5fc1e9bd72783c6add88c656bedb9627e816a3b5f841b602350834215cbd15c03f8158f13ba43a95bf94010673bea061d81e5be7946dbe2944ea510606c3ba5859d7a7583763ce33861a676e3865ef2120446c408c309a7ad171062d96737fa2524fc81c69faa14314bbdd368419d7d0299c2b4e253f669f14d6e836f2dbb30c0d74513907057b2c6475707790628993239a1f7911b39909eeafa41b78d610a04ded5b70e03cf5cae38e7b03ea3dd7407cd5d1a33a5413fb45cfdec3203b96d6160a106944a4e2e1e0c21a674ab57b27d89137a0f1b122f9dda0b4bd23126bcc4c5bc2712ac11ae75a4170ec9d4d77c9ce875b9781786d8ad696e95cb11e8d7120eaabf736835e9e58a061366bbd73fe6898e0886406ee268bab6f4026c98c46a827240558375b3686c1af0e4c3e7af68f93f96c62d40163e867dbfa7a7a826fbb46fac26f5e66ff1f79213193b5ba9ef7235ba5a11a8653cb00275fd4d8ef9d6ad9f4576adcc2cb28a1bd686ccf9953ea3d9320816c9ac606ae786911f0eec6ce832d45e8f2c02715d45fc644fbf683fa8ec270e59cb724b166701deea37f6d8730c284a1458d252c8fff40833ae613194dc8e81f3bb6be839a3641825dc689cc25e679a4051c4a219a5f8adb90539257cc9d2d63354835621a966601df84ef10201c20d4fa7f9a4355f0dd80d88102e62a917542b7909ed83d8be8ce548d00c2219f91addc2c0f45c7a75447622bc01dcd8c4a66a10e0f3ff60bf703b0f4ebd1c37a6169331d7d616591840236bfcd2a091a6f1b0f84cdd10733d88e0a44bc9e13ac08925da97c84c340a58fa7a9e86a64b0d758da4b7ee47532203973fe3a71d0567282dfb8b38a7541d232867c7dd6b74006854ae852203bda3527b18c089b97668f0b829fe80b1ff9526ebe085457876de0f6c5bf509bc2ed48ac93d28225b01be3655281035686be5fc0b0a63019266c43857ee3896cb58f8542644cb4e2ace04ad19d5d90950442a85b979c11b72c982e81c3a615440eb43a4bb6937fb87299d83bffe0f62074a8028ca69096ef0400f6a61c7353ffd0e3be66ab0e9310b89faf8e8a004650a70e89bbd021f791a0512d50d8a0255ed8219a4ee2a05c66e993cbf87e3e999a60adf1529069c426ba0a44cc3d12e08472d7b1d9ed66b833ccc1123e168d23540baaf01d50c3f0222e0487b5a97d75f147dc10b06b1cdd870c090ca6e0b76c006539923fd48255147f06247714f1691324c47d57126a50d2bcb5cdde14fc30f560abe7233d92ea01c0d14edb60e965b30ab44a074c646271286eeb8d1f34f411efd3a5f0d4407fecb487c3996688b11808613755346b5518d32672462d1f0e901f42bc4c0b3d7f58ffa9de11b0ef325a67ed5103a37bff6431d63af0e19071ea7941f6e1780c9351a631648430f1663019941e0e75b2314e681c7afbb3ad3019a4013066dc8194887bdce00237dcf4bf3b364edb3c954a4fd970f2a6e4df7ffeff3b5b39c8834a26ad317aad8257ffe1a8b0e3c4fa3f318159f6cb8c7e1ef59462c4b4f1935404ea599734ad421174ffe7af196cc9443fd7f870106e3b73a1cede053babfdecf9753bf1c7f1eb50809ea81ae4ec5779fda00cc79d1c783aa99e417ba70e689472c6a4b3069d346f3ba7dfac13a70fc82e2d921b6338c609e838a94b8d7a6b5ccec1331c78d9a2e1fe3d84f8184ad961386ccd98df105ce3fc6b13674076c492f4319f650702393ac000b8c8c0db0e0c277004114314bfe1f24b0ec34740b1931c56b1063662131e86c5d47ba58dd47150117d68dfa2bed028fc582517d8ea8c18a2ee68dceb34ea56a497931228e962386befdeaf200e4daed949577e2bbc2c09045470823395ac7b113ce95f532e5e01d9c37ec7255cd162d93b5dbe78a45c3b78d708ad06bf94268b98237c3ed6af4644179e92166f2f90028c7f2d35d068e5edf9bf197d8b61e9d4b206d3b9db50f5c11566b4e095ee1a74e7929cc1eb9ba23f2b88c8adc1f21504163ff1bdc1e4792fb9b8c5d53134c7b9980a128c031108d9b05ac2f3c327148a19616feb0fa8025494059179fe5541dc842b3450410edd68808f8f6bc7676ebe39b80446cb2948cabf890f1e3cf780f2eee727b7a2a59c4ca994af4ef80bc8c28fc4220eac14db072948939a0175eb8b7e39bac99ad7ae9e8114a4bf6ac24b28c526d8cc2cbc56294890db84cec3c8e31efa37029debd9a37ca1f33789cf0cd9fb8d77c0e7fec635ee70158724823ee4e83514fd4b12225653016a4f9616913079c1c52d38402e4c885e102a7e3c3e8a65cc177ed59166ad02062ba31dd0567e72757291168f6a2db4a5cc1d3c6a7d16c8d83669367c58bf46bb407cde18dcb404272ef23efb164dac8a0a5f3960bc717116e922c024a8465ca571245d1d14c54aaa157294748f8bab59477682e160915860bd61a9a6eb91326955471440c390f82703537ff6c7274242e6c18c3f54cc10643acf905410f24771f854755a3b1b6ae692b3bbd7c5bc9565312dce7c8adfdce7a086a89c86ac57371790b0c43831640330179048158be40b7bdb3a5e031ad3effa3de11f30349b3ac965c5a9b8be9539169b83e1f3472dd9c84818c87b48ea17fc9b4a700354aba533308fa70d7a6c93636f8782f01947635954e8b8b02556ba75c3e71556d6865a001d5ed7c6375cef10e0b00914ce4b368cb8a4a17d321246859da11fa6b39e36db89c95f70476bae4bc3dd7ae34cf203ac59ba5d524f683840fbfe2a2776b3c67246e2a354e45b356a8decd72b109bcd90a3fdf9dc47fe867d244502de2526c4cd49240f3029fa0377b804bf30b1c723b95752942961b8cf2b067ba60e4fbaa451114d950f7de2518bcec7c46df5df5694c781add91ecf89a4f789ed5807560abbb2c1e327ce464895b78930045ef0b7667c93ce2c391a3791f4bda6faaa6a6ff4eac96757892a89e157ed5b86acd2b7a270392a29fa8bff72d1d9e32ce7bf46e17a370069b38620f5448d77de9de773ce160fed4ce4769e02bf12a66291c67b10d5b1e8e1716377e8e4f3c48ba77e393138ca823cf1874ed7143304d4b7012193d32fe409bac66319c0ff2bab046675bb376002e799d0c8b529c088a01e7096ef85203620cd91e4e6a40ba0b0b45e1b8b628ac4ce25d4d2cafeb1aa804a679f2bd8b2a164e2d34cf39a5cc96fb288841028d2949b312c78b524690b2bd6e05c0b794443e98ce6db99457e40b975617393e4ba9d0110c8cad0496c4f72fbab93d49247ca751fe82a8e32e806384e50bc7753f910c9fd6bf79b15b534e39b42639bfee263f53fdf462406556a46079d082718df276477d5b17dc7a0174838b79ce273050a44561c212f511a8524de08517983c47a07561d0401154e8e911ec49d16fe82039d682c43fb11a5a85464c45935161394ba5f4978628d512feb58aeb41d78986c875763d11d5c243a38ed6ab2eb27b9d1eea0f5592252a4dc0b281b697159b7f44a1b9db1ccb866606175cebec72f9c458b2bb38c7bed9193e8d781c992ab1209ec4976147539759df238b40e6fde6a16c61f4c195698e67b04ee5590800bd92a5cc4be54de9b8c8476780976c69d523e58a57ab16d6e832b44f10ac9eefdf86e0059082f5cee23161d2160c3c1eb11f0d7dd2e5c7cb15514938eccbc8e2b253ca97cf9d4aab80287763686424426ab44291c110ac20f71c4cc374e9eed81612907ba02343c2f4acdf7667003b7e7d4893f6162d19fbecd026905448fe29fd75147c06f9720c3374259ece7f98028f2a4a19658090bcc3baacbcb5ffb84ef52a63a9b184ecffbd6cd0a0124e9ec0024b88ea03d3d857cb73c31a2b2ed0ff920e295f62b84c10d7dfb7979848f27b7139217036eb937fb040c066b4bb177995fd4881507f7992980ae4928ee5fa6546fcdb372188afc46a2708d808859f9d695867a4e6e8cdccaf4a5c4eef0528b288f6788441119e6187e861e1b25801fbbff0f5e00d2a2274055fd96bea35b2f34a88231a402bb498116fa82c3f761f66e4e2bbac72e0a8ae19315c5443a5e06141123b1b85d6c06a31d9048e884c1a0612d94d82d12d8c7b2f543af3164fe5e88fcc08d5baa6c2595a368b5ab99515aa4c6cca952cc1a6e992b035cd7696276c437ae4414c665fd68f389d1e906d176faa83615f55bb318a3ad000db641f1a92ecbe90d6e6e15913f207b62543047b94072fff21d4c946bcebfa3f55e98fe390f2c02d5dce6a034f7a320f3886c8725b4892e99e7230e520db7b8c6d56c2c4447a6255aeeccbb69acb5432def9854a56cf62865344e29f3a60544ea432d397f13931366589a1572d45a87ae33a6708002d7caf2563d409d6841e7044f0799042b63e1eb4953a4f09f0e50996c00bb93614dc7c303ebad0c345d8e71b262a4f0233b3c8c1f72e96f07dfd876fd9343dd05aca9e8eedddc772e246cdd70a37bfc95c73ede22714a3d742bd6ee5a67302ccd98da0e4f19ab36cb29a1a9387ae27a70aec382d32e08cba5786b213106c6821b502145cc3a15518f964b08d9239aa305f71e08f96950a87112ed71ddde913a91e67175c2767bc2cc27c067c34857dc88c2258694cdabb36bdb2f19b973bb3749c8b3575aba1954e112062992245aa37700a87cf1fa127b9b351a3fb6e546834700d2914018ca65de3d809fb6136ce100ff81f7e35e6f0dd53de0cc23f13698358172c581958a90e12bedf3e49b5c35e4707544f8125737ee054d32ffbaa5a9f07eaa2f31b9a0591756f4863293f66922f044e6ae52705f04d6f717868b3d419d88a5547e597912419bbc2416440045d25a9da626a4294435afc2662a60e1da57990933f311fdabecaf240a6c498ede89282ebd752f102a949f8a68d33038f4dd3298040105892e1325ee7101385da5a439739266ab2a560e0ffe44cd8fc63f233a8d23c44e94e4aa9a97122bcfc4aed4a6dcbaa0c44daadcd4e136ad0b4c045f0f4542e1296d93091a950b3c282ec5610f988791894b602a51e716c7164db8b810dc0a2174b68677ce272cae6c0955e0010c0f5506e3f16908e52bc822ca84241051cd6a1d637645a10d2456d7df651c4b7c72d6aa7d3115cb532b2a74ebe74846ea793861863ea177f49047683f6bbf9f0a526502f8de141d6c47dbcfe6e28f71a4788e70ae967e68576eac14278c858757a8617d5b1c4da3d246411440251ee8c13b9e313c7d9a255b578b6a7d0ee425c8ec1ec1e68dd006d85da362f354ec8654df11fb66357ca37ba3876add7ffff2c5de8caeca86cf85a44bae38c621812734d4a37138d4240c6a85768b1260866633be74ea7c6f25aa48b6ae1a40bc9784cb73a527c2e35c7af33dc951366597a3a8bd79d3fee728ece9519add3a4972f622786e1df2ee4885cc27bbe1b4bdfb6c066cb5bb78447763e8d911d0a85e006f2aa1e0ad2a179dcf1cd9c2f6b29d4468751542905e83d49000878cde34ba000d153785f40eae48e3d6f7771070c23890c5037259252a3907e8acd023a872db76c7860804f05354925dbd16c5805601e25163c034bebab8b6944ce6226fd7a4aba1db3509aa80c91ae31c447d13300708b3d840e83a1252ed20d76144c31cd03e67ba46b58fa716829112721fabe9feb68653b5b819573157b00693646167e56498e01e99db3dfaf3c46c0c524e5a097ca39f1f4b9e09286aa66824b8879b809d9d0ae4a1e3fa0c106e0f70392502de4086c3a59afd8d5588527eb46bdb3d936761420dc4004c173f599bd029a2eadae17376297f4112a1fb008f66ff0bec1273b2338b2b62d0452e8104eb76808427bf836a91bf0b786fe3428dbfef5e75455fe4a6815b2c4859386c749c3fbabda269770e5e07051dd41f4fc168fdb04ff167631d6743e28970aaee0ffa5ecc7ae232247d01aaadd4a7b68866bed582353e540dd4c38a4fd749b4f034692614131d7d063d012f20544a6fb98dea0f00596f0c068f4e6a3567a1164de66e8ea11f4501f8e59174d289793c25ff50f6d603a4323d686e590ed11a433524aab500a74165c5c2b90753508eaab2887bb7d83d8d29d7f3135539d22df750d864bd54a9068f6d352030467f0e557bafaa9d25f790c3d38671af860ad9fad0e666935bc2ea5de83b45429a90a274dc16447d49089456bec8eb2f5c6c7359f2c27a7436246d5310943f8530fde2d45ce543e4e970df9f4283c50a9b3c5357685a43f67e8a6ad185ac78d539a6ac6968a2c95aea20feacd0c3874c4953b3d306ff71199bb02d15f52705ce17e053f1134e6eb474692742cafe39b3a4f8b53d56b9323f770f2f1c670abb2dcc981a87cc7d24e08a0a6ee23e15dce2bb35c20ea779a57c618c641499503ea3e18ef3f6e492185ae8ab988ac4a5d28389a722ff0b63978f86c337117d4d293b74a2f623815c9713701c72befc10c7952f9a274990d6a69e2ac154b94693ed214328fa0c494edb8f56643945f9a657ba9c5913775042806d0f24453eb9e6d6e9f25c9da56326d4e4821573c18319bb99ea66bcde0f6450240d7566923dc6489b87f6c6bb4d8f3c4231e56911db3cca2f95fd2570cde5507da7581d487524635faedb50535f9c445b9713a57427e5da6a0bcd483f687bb16a2e6b73248bf64e4a9a98ad327518b293bcc7d4b262ff98603a914e496da23a2796f546343d09a4837f697d8b96c579884ba0de3d05bbcc1538a85e5b6c33215c7de0677bb6763016aab3be3c60b1a10f2d0029460294e55e8d72343f9ad4f7e10d41555ea5030bbef62435d1fa9dadd8272b4aa6312967d3a5950747bb86c9a941ab08379f75163e654b91f3a1f83c8ad0e3034c71f659f469b346ac1b7633e0e961154612b9af2278cce398cd522adcb63ee9072af468887efce70f8dedb416e1687c603c3d67291ff0c12b7cfd0f961f1b65f109484f0e42d9d35f9ba59ec9308b3d1a8390543f4ae43d66eac2f3db896d78550d39256f9900a6df49bdd38c167ec7466af6301ec0e42f741cffd71af51885ce653b078434ece9612168f5c15519c92ef6092d3e178b0a9da0286f93d733c5b024a3b2967fce038222c7f594ba5392d7d50143a9bb2ff86ffd80587d520c0f482e08dbea3ce9ca1f49f92615c2d20f0fd25a95b943facbbe8e8fced1b552c7c35fd7c0755b8e41f0bbfd0dbbdc81e44d3c509394f4eb5355f42af05d7b00e415b86ecd489b33bed24227f38d113b41316e4fec79804c21039357f1964028cf4185c0124563e3ca3d126b18f4366458a6797041135461613e9e820e50af6a3dbe942e94c2d6a782ece62d2e5b48f6c83622a8594bcd618176cb376d39da90f8955fd9182c31ab2657bc7f5538c0029d2922626267af44501dc71308a1b4c5f46f1053f24e6d8372e05c72ecd8aa8b8ec167abeb39b35b3c20bad5d3f3425c6cae3f1825b578ff45ea2b6771b3338be5e14e7a2cbd49dc6171f4f328eaf6eaf34a4320e204c80a029c63af345d4d9b1809223b1136c26882c45a9c4d8017f2026b0a0d32a842a4469a5927a4d08484631b20afa97976c06aa75ac093b4d7b4f5e869ed0bbbe9631bb8716d3985494ed298f785745bae2327a68d59fae2b9820b42c7706225b1938b2b42d4e286d06b1cb1fb000f486f00eba15d35a771184c87505b27c26b0139083c4ce0125f1f964716c9e4a90fc448d2bc7329f984084ca8d44ed5d7eca2e67d442c5e3e473a2b57e940d60682f572280bb1a828309f688f969bf35aa76b04e00233b4b3a59e2865a67cc41f8a2399b5f554657ed8f3cbc6de571be530f2cc74f79b5195db6b481b5fde40f4403cc83012f2b29b52639b1bffac61bc603e406406f667cb9842a06f660537007e726a3adab143c43442fbb881c7531971147e332912ba0b5e431fe58cafce49fc9b12d232b1a3d3506825d39a0151e907b51877c9a3ae73a54c4bd3a166ffb541328f1302ad9f96ceee8e956a1e41a0d561c2536da44a23a58350b6f8fe736b67b4620aac74ace525bfab17c1824a815142b14394d888dc1c8ce960bdd90f11de03f0a91b09e142887aeb757103d249bd3ecea880fabac23590292a98ae8ac3c9e77d4158c5e8d0c4f7e4784a9037f2117f4bf6965266e44e6d0eddf9a239b36a91a61c4f66cfe827a7bd0c4ff7599c9531157dba5759ef06541cf194dd51d241f778f2f01e377ae8b2d19dce12a7ba3c5c20277d736b22d4e327e517442db7d89c2728bff5b8d029a272fdaea0efb4ac13a30882f3f36ec00082b1a1b6dea372c7fcfb4944d73d82646ed79a714ad24109d97c4075564ff44b832a007ac94b6a0f884c0d180be596f2d16fd11fe3b0b35fb5391304425934747757f3d8cc4156af28ea4b53f455745a7b11c274767db9ee9e258d22892ed8ae1d6b86f7a008f87a8226ac664bb1be7629de4803e1820c2407c8f18063c0a34063ad545f4303f0e655f8c56b959c352403d6895ad0a53d07bc3e0088c61f05d6bae0e88f224357a53ddeec99a50546d1eb9d5990959d73885e0ba30fd431f8fdce98fdf4f0927282db48538385e6380923915c8890f224985e01bf20ff4c2997630931ce561a2a376806c848bf4cb320399cd370aa6b252ee3336eec39cba2ead0b9d85b1445bb6d2da0bb230168c289fdb311e28907e69ad814d94f0d28d26d697aef7f93ec47692594ce03fb02a802338e976ca021a2ca843d1d0f6d13e5688d2550d54c543094b603928ec5f241ad7a9e788a0810fafec986496472352f91efa21842af3290b3f5f73889013dee70e47b16430ac50f6d0a547ea6544af02038bceb25606eb279abaacd440cd0e6aa189424aed44c40829bcf04d722c7f992477d004724b435b760d5e2fc3e37fd407564926e19b231a4d929f71220be2da871eb5ef6140f22bd84ea17a6d71bc65f323d00f40e557d95f24f1cea5adf77fef82954d3a6c43a9b26b89655bbc4a4ef678985b02c8c19efcb045851159a291a24327abb31607a1352ca47f65f1db0adbb179842e81d18363a89b3f988435b0276360bc54928339a7bc01e1c3b05972efa733266712442f5056270411e2dd6daab02c6c4c29ce591029480081a13ad635c7b024ddb74b2d36110095248b2713f384572d5c2ca0ccec363af19c06c1a1711ce6dcb508541c641a3571a19fba868981a703a9126a8f1ebde3c2933d797530c10240938d89175914e374d08a2e630b53de47da48dc6a844198e16ffb7b06d323dd630918572a6b8de7c3832b1b01e960728e970c261cdc7fd76cf5b9035cd4888d637382fa5d0f3a88d3bc0bd80a8c7508ea28340d41b6e5a25e7beec4f3e146213bc8c1e60779a938defc32545d47eb3921d761a0e2769c76df5262b3419e3d10261dab11e94c22ff1024fff47278c8eb72a92562f2e620edca240d4ae8a995eb6698630f06654086a59673e55093adb2ac578a396e9e89b06fd815a975176a289537f39ee5efeb686d0589fe59de7be48895c42c39e5ab791a1cd4bf2469c812d2e62cbde8eda079b0f0d31c366927b30f3e15d26c88d8ef0a3eb64e175beac1c7f44476bb62ff410d14cc790bf05119a1bd1826954b7390954440ebf54270d62573b18292aadc1dd306553a46f771d0102483e94a6870f002734d287e2015af090dbeffb2e847441f3703c65ac14252362304f4f704190aad5631471ce46b5f4020376af84ad9694ee13aa7d5388f559ca85212bebd80d12647c831c8d407de52e70b71302019da0937a19888a934e943092a5b8210b49db2a1617d0d7c2f64f99169b8c72b2c4914d361e633471d0ad29bf9b12dc18fc089fa2c856b3184191a0557aa5664dc38c9304acd70d85e0222c0af7a6324fd0be7e9627b50e185116f50ebf15d9c980c326c08b389d95d02a2a1da4ef293caffb35dbf0410b7391b7ec9927e81eb4e52dd65598b6501ecb383d933731f43ae8d22bb33e34077b0a021c1dc9a1cd5a7585a1fb774de432abc6215f7f388b314204573805643b87082e6bdf1ed0956845c6a3e3b24d97db0db64dcf80d0d4684a94b563df9b1e8a4c7089c90945d01e1b8b581ba09aed0a66f5236bed0bd698f45d22a2ed0658ceddf042c7abb5522a39c7bc623aea0c86dd2f5b692404dae52963a9feba632362011f5d41a641adbac4ec7104e58d65c12219d7531183c38312977fb6219251ce614b1096d685297dc2d2d8d19d1374d5132fb98c5838709f80f406c61158a7ed0b76b4a3de57178dd3234598df7046b84048424438a1faa3ad350246b0506dc2bb13cabbb0ab936000762cd94ea5d6f8326e7558e1c1607cd2b2759f95928f26721679f98389225209a27bd404d085bbe76659d04d048b48e5646634be76388b6f8a7982bdfc2599e8c9b0c2ebde7dc1f435b34779032dfb23f0edae816aaf3b51949575a70afba2120e263ff1ee1a9a5aa147a398da7b01687d4abb5ee15f75c02f5e155e3fd84c85a1e6f5ac539d27a62eb3871eaf623e889039d50bf51036581320ff1822e23306970c50d06cdd6a606483b3900493a48ad3c7514631b2a8a1521692ba8dd322cf1430ae5a2044a04e6705f63783abb7ee7bebe1f37d3dd444ff0672443c493aad9a26a678ffd0af1ebd3e40819377b56861b7d0420881aa45f9e64450fe98d7e7aad23ed7e6b0b30feababd5d7930a164f644d1c42a177ecc9e8816edc61cd8219fca808091e5927879980dbc9daa9e79e831e7d8b8cfe4074a199e05083aa8308f24022d7958dc9914d1c3260e7641181a652dcd0e5f414978ddde10c194ade2413cdc818a8913573425cb5718e04e9d273d8ec37c0a70c609599d4c88e7a358bef8dd7096d9ec14d2b165b94d571ae9d5f39660f94fe6ed200be370c93383ca7677f1198fb83712f38a5f68393a71b85992e8c4210e748c495748a3d35370445f7a2b1dbe9717fe27c61fba77f42c0ed5a480ab78ac36413cd53cbeb02894170db6e47f21218cf61a0adfc90e1dc7dcd75e05c5de30b61e4a0515a5ab54e4f019f1bd16e0b9a22131421c79d3b343cf39238c5765602afdb8b47db75b69796ddddc1097836f1a7ba973bcb6263adbe897e91c593f854125d916f7bd571ec30893462b11336c218d504cd84efc3fcec6944a5fddc4a6ceb54315ba45b1a2da91af878cb946e8d9289076c9b78739d7d232bffc6761129bc0225a732f8d53c38a79a164044da136c05169c4d24042ce5c4518cf2570007760ee0a33a548a70fde98d436e9bc56b43a07863b435b5c4b639e704e4dcd71e12ab87b6d5bbbabdb46be1bd7af998c5310b918bd8304fd78ec71639f388b3b755f2793c4cb0450bae94b76c8df48c05d435978016e923a9ebf02f67305e386e745caac8aa6b28c0fb890bde448ce6f90f418205ce34163929e5177fd099501e5482fb485b83a59cba0a2014299352b175c8bc6f759532473efd95605078d91438c2d8626ac93da4d596599bb013dde6053963224336b06f5ab4c6a1bbc25905f1ce9dabf1c288fdfb84c27ba221f732a3f7f8d9606fc54598d5da4f6f6ea76b641a3f9b0e200fa8896c0fa4e3bae322d0221de2c019f175d3a1c7c6cf9baafbd319dd0f9d0104b9d875bd0f6440f6e2299e46d8409b04716cb500855cdf00e404451191b1c115626a3b0cea4fb850e3d2d7d1ec1dae3c6652814f9ab758971a435a1f2e1f0ce23664eb27facede6c8f38fb948f31baf3222d1f64a4112f16cd40647e63087112f4b15c7a72c933ee4109045195e673fe25901b618b31f0add332da0f9ac1948b615be78b6958e93f69d2db49d77254e23d5cd4770438bbd69dc00b637e555ee951dc576464555bf6e231219d0a04eeb98c4ef052b9df192ce0e27d3c62a00c23fa299e4eb9a696fcbac92fca25903ab4c5fc14de52834c009b94da775e44474682e250e95c8e3a0019cb590947cffb29ffe0c1701417b53b1a4a6833d6c730e4c0fe5d0bcb3c7511d5908eea19ffe8ef65640504331cb9cc38ebdcdb16d30a42eb4923fbfa643aa41de811a1d405ec54638640b913ab81d262a939ac79e7073b2709710219170614c9ae07efac8f243e0f1f3a7c1ee3aaafc8cc50010c7ff5613bbf6307f1f8eb80794c271a8e16380162f6f89b57d37def8778279cb8ff87a39d9fcf5cb59ad215e283b8bd5a9699a3113924760e837eb64a7bbfd500da7f37aafd8ada44b40bd70fd1d1e1d20168f062016871e20168f1630168716600c8e06201686063816863e6b7b73a1ffd1dfe83fb42bfa1fed82fe43bba3ffd06f683f743b9a8fbe86eeddeb8d88fd8c5244c30f289888f3fbe1ef01bd8ae5a2a6b132a21ba376666afde4a8a531103351ef446336a8e6f1e53668be5cbb661034250d385b6671054a2dec3546f9e3ed2797fe85ff908d79aff7d56d0bac558b85e27df870b78452394bef7292d7495577191a9d0ab8a5a6b6aeeecd97bfcd0bdc7d43653795e5d6d36a581f34558d6ae584b5d30c65cd39b9cb5b1502b44497bd4fcc3ad30c072827bd93535d817700325dcc3aa7720ccbd0232a448fc51dbb25d1c95d8ba75574029b74aaa5dd8a378f7817487ca9ecbdfd63a275a9dfe8c4400d8e964256fcd7d0274bcd04f6ba18887aa53a524f681e0f2bb23f4c6455ea391a1f9083474a392bfdc622eec7dbb55b41080742f2a4aa783ed2aa156bb11f26b226f51c4d0fc88192b246f040bbf6dfa2ff31d192d4d7e803b5cc5f46c318297865ffc989d060f0f2e93873182a340ebb1fe5a576e233f98ffabbe66ace304b3c9ccb51eae062a3ce65d481c597cd4c48d35563513381b39e3d8cd2ca2e3e84f5d1d832f449a37b344da9ae423c7bdbaab249c110ada07da898e5ba54d8077097bc9ca44440b5012eaf3b77ca02a95dd92538d51b97c6744c81d20b0dbd95977fc1b4c2150a46c78e9ae7bf3c91354672293e5704d0e7d27dbacce405d2104f0ea581ddafe06857560473ec0ac8593b83ab3d5aa4f5b1160ba51cf2bd5b17ff69ed58507e1606e5f48ded12c33fa0abd01809680be85a2ccbd53f5a6f8b80910b9eeabdc0d98bb679c75c14ea2eb6441b8bc992dfb48bd16f89def27d46fdeb630c0c9429cc62b314fdd3b2afa7e5d630f4f23ff7610f905d77d9c95d1e46ae1703ad72e8d77c0f27c75df1f297e6287e3df2f3215b79753b72165f02794b6d430cf1130d1418f0e48c0dbe135770a9884f5d7ee85674aa8701896e0d5612d1022038463819a6f743c1c48f33e163978eac7bd9a9405f0838fd6d7e67b1446d155625323f31372e01b91a0d017fb8580c3c16a606d7e24cfc67831705c087984c491985ed3dc5dcdfe8078b5e8bf4a7d7fd8881696fe3651507ee5e3756bdffcfbf1021aecd81fd531df008dec57c1d48590462f8c547c21e62a6ad8d8715002cfb9ae9e41b42133e54f230c848e50fca4d6fbbc17d0b55b646c9749cdaf56587164fb06d09106bed5c5903d350bd28b1a2bd9ca2115d26c891404b44c5ddfd0aa8ce219874663964a19cb6887ff2eb6f46bd981ab56023947eca66ddc2d18be14ff43934e6fd4aef9cac4bfd97dcbd434add8c2a1fe5e0296d62d03e9a6e983a510ba2abb6ec9bcee8e559611f225df3cf8a54bbdd75047427ae9e8b96fc5f817df16058bafb47b809d7f745358e3825688c8e922f42a4f4682d409195053bbd3883eb84f8ab0373170c25b11014599e0d2de51621fe8ab62e408f83dec8e76dbb3489c444a6330935522b68291a4112e2f965d5d2ed02d45cc74aac0f3bbbe6cdebedbd0fd65d43e3f907eddaa1ccfc1b67e51ce33f357bc95e4a0da0286a385020f84ae59efe1265164376abd2463b78b839c2f98bfd46ef9544183bd0aadd2e7cd690c38feda7d1eeff6a7aa93d4142cdf735dff1d6edeade2e0dc75d7f7b72248f6f69dd7b5ff5f1898c3490289fa898372e42c990320dc69cede9a01f68d7ae4ddffec3202bb9132fb6c5d1ac2f80b25519d3b148e6b7627fd5d39bc7ee2b6591bfa2c0c3edda650ab61d7412c808b90536f16d7ce27979470fdf6b95b7903ab9e16ba7514e41d160adab876f9c2ac1eedd283fb7105273e31d5f089b581423acbaabbf51ed764422367bd1d81b05360fbdc17d2af4d1b850c310fe9d353506a7b6edd8b964731f27a53d541047dcb9cb9a1cf37078adcd273851e668146da529d01fd5cb8e5e6007e0a21c8e45714d22632ace021a10cd7f4621447b09bf40d53ac8c19bc3a117643a5b1df7286e7244cb7753f126530cae50f179205b7754d2755b230a4768e1a1336f1c19a6c9aa70517cbc6b90fa2173bb4c6d8c47bfb29a0449187651126ccfaec693a17d28dfe99ebb3c108222122f0a777e38ad8badf5b4355b4d03293bd38775bb8b4c66357ffc8ce0288876032e642dd50f49d62760d7d29323181173c6c09bf0c0f82c0fa55d88536655aa764edfbccf667b2748fc520ff95909c46cc922d38f4b529916bc907ea37bdd3abe0096fbc558853111620a62458e29881929b62066e4d8c95807d2d3a0d7cb5a94fd03baed5e925720982a4a07522f6b71ff1780f1be6ba0888fb13a53638e2223dc335b72ea07d5ab2cfd6eea1979f1861ab46d7d82038f00440b80f83fcabe22f4e8e27f236b69995ee603796c4b41d84f082192ecbd37217b6f29534a29cc08ee085909b0fb526e9148249791ec4edcd4dca5c331a1966cce75276fe9a4fc52f322914cae9950be39cab5eee4b0e3dcd47d3b5f7254a7f9d6e170d354eabe1c4d924aa58dd433247975abfb76e0f2a00b1e78a13d097679d0050fbae0edc10cec03e530cbe0fc609ec33039c3c3f9716ef29a2602238c30c2882ac53895bd3837989616d529e53c5c5a3697be39f46ce3383fc592f42d069367be39ec3e98871ce4200739c8996636394775df96f2cc9b9b1c14523a744bc6f952f2e899cbee65db3ed5e7db7c29cd22339bdf0c1f9ddbfc2222bb4f3a6aa69c9b3829cf72609ef308f3a9133755c5f1706969912d92e332e95c8be4326e862ff9d066ba2c33fd08c2c2c32a62403911e9f124a1a76643efd1c12d06d484c981c9819133c0f873fed1c7471fcfa552f353a1be540bd7323f99ea24572a9d502dce75296fe98aa4befd66f8cd6367aa6953f79d660e4cdc6e4cce7533bc74535764e33c462fc51c9852b77d393040fc122a33d0c08106100c0d1c6858d1128354f7e97c2a85e93c9c5f6799cb29fde4ce9ef45297f229e149b2b76da96f076e0a3517971e1a0f93ab3097e825e7a1c12dceaf06f9247879112cf9cda33c9db6f992729c936f9e9a9b9f26945ed3b1db3cebbe93c953a6e85b74294fdda7f327df0d06e970bea4fc25e59b97529388669eca3ce559cab7eed381a7cd1437936f13c7e4a989c3c34b3bf04b7307be69421e3c7a68aa16176dbab86ca7cd653b913612c94ba793633c93827fd2e42714cae4a6c94921a77bc9b94ee33c85ee85731ce827e726f493c309a76eb224e526e5697e4be4ebfc8ba7c0f94ba7bc4a953c859a76f1d87d2d7e6d13474a1e9e8addc94d2e8e2a9d3cfac9a39336e7d1e19c26642fa52e27e7a50ee52ea8ee6b993b709327df4e2f29e73ce55b87f2d895fc24bb4fe7a5a7ba9247d4dc9ceb70a4c7939b4edf0e34bd941c27baf4d2e4a4902f45a24b8f72077a9aeb3e69928cbc22d1795883ceeff43a0f461191294c768226f8022c95e69753f2d865cef94614aae42753a9e4a52fa9bec6b5a4e27643922995632d0ea7dca4f370714ca6382f39e7a5926f2d9e691635d5622839470201649fd426e7d039871e3337759ff682749377a9fb38cf667401e570be78a97b31b9c671f3c5345df3cc39d732cdaf7de9358c823148cf268e74d3c4d9bce435ac75b0fbb899937a39e156649b73a74b3c5c522df3db4f798af39267a514572a6999735e4a69db0d899b502b615292cac89cd45b0ca58e94928fca502f48a014e3f44e5a0f6f94738e9a29f9499447efb14d600989e49993665672dd4a5ec359e62513d77d392989eae4739c2b47efd1a387f4cb4d1d094a9e659e3dca512557e7ba6fc997fe74539a9cc74ef35367327d72625df6652e82255f726da3803e17bdd4ed26811269e45af7a18008f67eb34dd28e8ed8c4b8f009cae65af7e5bce6242ed32dce2f678b81e3f9459ccd499c9693daba6fc9335c1e928f98bcce54f1d0534d3c74d4b5dd8c5cd8878ea5c051213f9ddfe9c741390f18527a721787f36b718d014e0cc7e42537b967b28b4536e73c765c6f3194dce4b2fb522fa5949ec194c9c44d93e9859373bed0a55beb3089280f9300e2a1a73c8b5af48c83dd97f3d264f24f9a1c7a66ea36e73653c7e92601cd4d5ec39a6996dce41791fd9397baafe4a4c941214b13e7e4dcc4c91cbaa9cb497d69e6a4fe34a10b5b249b3ce64e7fca5d266c993bfd288fa90f050f4b2e3d935da9dbad48bfa4e1b918e043183e93975c4ec8deb7d38f9a1f0e8f69dc763372d83174e9a6e7e6177da7771a2e84654888ed5684f49a9bba919fba2fe74f359ca11a4a40ce6fc94b3779eca02b735772ce6b98ebd89d5c7699cb9e51b994a80963d87c9b5b1cb9ba6e30ec6b1367e4a422a349f29a3e759f7a84616472dd4c389a93d6493f3e88e3496edae6b724f525e75ce5697ef2a58cd151a8f9612fe7c7b9fac9559df22aceafe4fae57ca9cb49bdc9b78e04fb9af756845f9b38262739c9752b62fa723e72ca5e2c790dd77411939f5cb72d76a8f9e5680b2597ce75bc15294de959d4b48ee4236d72a7cec41fbb2f2795297bd2752b224bdcfc5010e796b9bab6e4497334fa86bcfad57d39afae8db96e700d2684d002ce9cd49360750d2684284291965f6fe1140e908889daca70e7ea0afa111f2c44bc0df021841ea1d2a040209224a40ee9e4e004e003da001f9643286354483f748789ea0306e0617462bd200a8c0d50531be42ddf206c3964cfa58e216988f108f9c9f705c2721c1d43a7672ccff9803660864d804bcbf20ceb566886204b8c5fff14096fed3ab4a243972aa4dff28592c31332e800820e3aa03374f6e804c644754b23a481f58d3852d86c8b01aa42853af431ba49a0b0b78c85f34fe128410815baecb80ea81b085ba229c39ccc5306f6825868e70b7042d52e522062c868e990ae439f2a54881016835220947259b087bd29fe56cfa140966751739154b907a950893290545806a867b8d952762f0eec616fa1942e8252d68bb2ecd02f17454229700aec3982cb8267b8e9309dc6188b85bdcd82bdb5012e112d6c9102599c662a2c1305f461190b47e11b2a04f375a8041532f225f98834bfc53ef6a6d2be59d8dbf689c23fdac0ff75d11c2a848edda114c016fcbaee0f3c423d039fd0d5facfaf5f01897eb7c83648258b5c2a50683d326199afa9bc104c8388a126cb4e8565a260191f2c1dd45bb80093a5a8b360a0381c46e523c51a16be826d37307a0def07bb8d823d1e7c3c210f525df9f57586c23251340e759edf126e07124665f67d9e38d079f2dc21da3898882cc208152e84f0217456c8daded1ea89c31376471488fa5c2a2c03bffdb66753e0a69051b88173a5b0c7752598a35738d785b2e4e376c3dea4674a53059c2b5962c335bb116ec2ae4fc0f3cd79734e164a86997eb077157596209b8035c29e6a47df023cec754884edae77e7b1b7de404405e06c7e2ac676001fe78f1e42ae6f149e8142bc5adf1fcff9fa3ad92ffa4221aed3347886f375ede8ecf99c01e41dccebfce01b30bbf10f26b082a166341b0dc763ffc24886232a645f5f06534bd7c902c1c2abc7689f211592a06675cacafe8229494c9992c4942953928801d08f2051c2434ff2f304141efa0d4160c213450a9afce0e10f144f3cf47d02c5060f7da370c243df1e96d11f29b478f833c59387d0c78e1f646b15369e9d3196810a6582b0ccf6d069864008d990106b1bc8320478b6f22c2483e018a6a4cbc777cd1c98c77e6070a54134bae202cb8c214c8c2062d1058426b0003eb18050c70f8d46c45e1003962a1fa85064b0d7e59b0695d69e91d6a5fa8b8a137f39e4991e6c2e4fb90ad1bfa490d4ffa4cd1944bdd28f526545a6e2eb4f15a1ffa46f53b0152d2b16214baf3f3d3fa881d45e7f7a84f003897afde9d92209c9bdfef4a4d184cc5e7f7a9af0821e3baa04f5caabf0a03f555c50c34a04a1ca0afef3183732d57c7439c99774659c6f9adc54da54b2c4c6a1d72b08231624476658d292e516521cd833ef0e07246460cf260eedf121ccfc8ad685c5388a588c11ebbc57358c8de2c55977219930c1fc72264632f7c11e3c32ea747a0587ba7b649c2ab561eee638c5d2b20b1b599605dd1ab9655996052dcbd2dcb22c2bb3486e912ccb72ccbabc907b84652cb7506fb9757a249665598e3aa910e83d30884c61323903fb08ae6fa04096e596e69b6f4e23448c0f6f59fe6d8f95eb0b29039da9e915cffaa032d12de9966f0e3a03ddda224a96c5b9915ed5f48c8e0a935da9ab00db70737b16a85b2a96eb18b13222d2c81a527db6438d6143d734c22d1b2a44df829cc35bfca495b9234a5ec3b0bbd254b2c466797a653de995e5b153c29ee55bb7507a65b9d65d41f2dba1b79cad0f2362994f0071b0cca759764809cb406f973d03dd72cb05a042a2fb588c8191290c3f80fd4b654ef24fb3acc876cc41a033295dad7f4065a243cca1674067d8a11cafba524f6dae2f32c003212b73478c1c2eb151f52a2645d32b08fd0203fa91d40ca976e8cc2d476684e45521db4b052c6fbf40f417e7eea502ed597bf6720176cdd935cf9c3bed4502fb2f353cbffe8b4d776aa3752f36596397c7f4eaf2ed8c60d8751961d29e04966df3a502975fdb7c59df5c6d2ec7e165e78b11ce37ef386cb8898312242ed071d86c1387cb39e7e6cbfac897d8e02003e79bef4e19361f4d25996fae4473ce97d8a84d0d36dc586e645472b5c1ba179b6875321c61af7d2fbf00e7d7c40109192edf1c8797759263a589c385f9cbce0b901c7bb9c0c82f1fc5ceba5117d3d5f4aa9deb5a6db64e6db04e6dae4e82041b2d810c97902da47d5808351be0434e0ab94d32116c5b449286243db336cc1b85aabbb1fefa427e3a447a761d15d2bc39e8b2e0995fd697fc4e1bd4634605e8f563a79f84e31652dde70c22dd75f8027b96652561196b32e6593ae3e92a09928e061542c232eaac11090d49d80811242cf36950122c392cf3c93052c3f3545589b005c54c3eeb95d7d75e31e4abdb264d24d7af6b9bb0cc35d9af8ba73d468d499030731339b10184d9c559c6185bed85dbbb3d3df6d83da6fd49515f4bf84ffe2053986c7bf5eb0ba942482a047e7783f14412fa5251d1c0329737bf403b79396f373644bf3cb32c0bee40f483210b6ad4a0ab151a8c012147d1c477e9db77685be0a49d98f21dc4647dacfcb7421a8f1346f86fdff81628092cff2d966f879c352f7316363fbf3a1a92e4b0d72357f5a853f5483865dc423ab1be803f6a583175bd1c5345f2eb1cbbfffc77c6783c484f26c890178258a1c67faae78603084e5e5d5199faaf6bb73640d89eee90294c86c10b62ccda67b90e05f6d59a46d490f08296654d5622a14c612216f273a810c20ec2409e2c8536425e8ea4a6753e1d6ab76263bd6a25da6ac81a5d1f5d1f5d9f09bd0858059605161674b5ead189a450c33216b4d4bae1a490f072eb8525fbed23e1469b52330db3effa3601fd792dc9f53b158c5cc912138cb0f961adb9e6a3d1683475c85cdb9ac6f69a478c3c1b4d168c5c0712693472920e2392eb30721d48aa5eed8fb6d4235b54b2947c188720a107034b90298c4f4d504dbb6cdf1e2c24d013284b03288c6581f542d906f0ac8026a0e6086b448d17f2db9e9e9e9eede9d1427edbc351786679e027cc03cfecf0aabd8198a23e59befd6320b627480fd16ecff6c05feee16a30625e5e0cc360a0b3d716849e421b21d74deba3cd486fdf375866f3266973bedd3a6997a5eda637e8bcf9c8573ac9b351b7f324af619293e63a591e35e4b7fe2dcf23214dce078657eb5bf743052557b2c4a68484b3e6f919f992974abedd5562be4a0bc4b797f819e70814c4d820319dbd7518d867c89e181b2a238bc507fb16f0a9f0ea5ecd3680b189f56aab7cfb30064405152aa45320bb455bd1e96a7d1545855f06fc128141aa6479ba9fb45ee92633d8e5a38ea657de5e98b77a3d1323b159c336d615f20696695df500c2c4435b1d1b5edeedd715971dae3c63c1a02a9627fa0eec8a9dbd032aa49d97f0ec1ed01988c57fa611e88abdbb1d05b284d0eb105e7f9610e2b3dd76eac82181368bd63142eacf123e7cfb5e611c784326e4d51a0f0f0f141b98868dda40651bf61b6e3770b53ba8bf1e1a6442626f03fcf6cf2bb2d29909ac02a9c2f8bc5d7dcac57fde135120ed6d458914880e361ab6762fe4be25af0a849dcc71f96a0236c278c5183bfac5d6e5da5d9ea96297638aa952d1f391ea316e643f6e48f99d7e5520eb5209a0f359c9392ec6c84528a597a4eb1603a7a1a494aeb59c1cce8f8b21f3cdb968ca363f755f86929bd4d95c762f26cf5e4cb3c8dc32d4496e1307e5a689a3653bf05152933c5c522da91497e2322ec56526d3a9575d9a9fe44aee268f8e2ac91db803759e73e5623c39d77da454aa2b823ae99c487307eaec40243a2e2c8ba039aafb761ee559bf60d2be34bf9deff9717e22915cc55ec9b90ea56d25972592e3709ba9a469a7eecbd1b4f6ac47ddae1b0c99bb78f7fc52de029df32ebab46724eff9e5689c7fda974aa61794e3985c73d4d4dca475c984d266c963a9eb93efbcc97783a1e43d5f50de0e9deb5e50ae39e7d89be60b6a12d17fd950bea19c34a19b5cebbe9dfe4c6e69d04f9383426adac4918e9a382ecee568cf79771f9c39dacb597271e9cc61a7607bd6d2d2ad995a6b698723efd64cf3835d82ccdddd65c8f691738d72c8322d8e4279864299a6dc5cc51e3c759984ded29d1ca7dde4a7d96e72d3a6fd88a48d462492b6f3f00439efd1d5b4a923c17e8b07ae917eb0f78c3524371214536897cfaa9f90fe9f77cf2fc6611999c23021a1eb7b31bb58e428649c1f0d843f6e3cccc37af0fa47b67fcf8fc6e3892a6855b9057606d3950ac99eddc836807780f353b5d173358c67877db9d330cdd50d11820a12f2f39a1bc21cbe27c60ea4820281ac385455d78ad08ab0bb095f4c1322ec3eafbbbb1b4208bb1b3664558c65d4bfee8658b7aaeac5615f4008bb55a3ea052d18e172430817421de4f213b23135e43a5c024208ad27a525da804bb4110776318cc2424d77b74557ecaad2990502622a52598cff5a36e87a42d4606c5ec8a902810e61139885c1ebba9810eae98150103e9411051848d3125c96718421dc83f1ec209a42f678fd2923085e86114fdcefe88189b178c0a454a99c26666956f5de979899390b0e9e999999d51802127e200212c6f8765729331d6c98ac34968c34bedb058019d123005e90d1c3b703609db0038a1454888f45403b3686d0182cf8f6177947962e0516da31318af0ed1a461cdfde63bb69c95998d0128614d576d3980f6b1651ccd1841e70c10319729c71871033f314d8761c80c776d3aa8739ac33185898dd65bbe12c5b6c2d1e1853be3db5ddb4aa8b1e2b83820d50c077101c4154a8962881a5064210bd41451d465833eec081e42c3d031f3ca35f28810b1313f961aba57c7841c5333b26bdc8f2ecaa2fba7876e92e3918918411a8c8800c2a56888e205309b26352e55e17723c3bf742d11436e0c982c70e35ca90c345b753cac701c0e8028d67972af762b48b163cbb46a358ecc8525222a40df03fd5abb2ed06aa8e7080ff7e1c81478523288185072c653c3b69bbe198ee1e58f9c20a1334b8c062c5a691f0ddaaefeeee51d0cb1862a8fe0b42c69529b698c1164a70f182672e868c60060d13ad1285257a30335f6a851168f0edd60fee6022b57169b438e31b63e1d955315e329e999d66881166e629b1f84ffb4e7d102d5aa0451745f042c5a38322c1d4abb2d40800183058d8f145165934e1d9bd08583cfb7a2fa50a7d0a549346961e5a30a94955bbf6a5dcf8f9efc71529782ee3d9b12bccf81f226cf1ecce5844f1cc12032287b4420e1eeab80294830f735c01fa818739a000d5a0083aa4004141832227405dec9052d5e18457fab18e27bcd2ff3009240610597a80981083222156595125a1ea61092220a4e9f587892639604208284c289152fd3491450e641516d418f908aa353f19e70fd6211cc2330a5de59a461012fddced45a8b6b05d1005f223d53f98f756d5183feda5c698d545dd8a90eb1c84e495f107761582915c5de706dd5c9dfcb4b6b6b7694c680d643e9a2878b9c0da8c7c6d46b3896693791368c364e43b6036ab2ad8ec2603b4c9e60e2a28d98c9c6de268aaaa10975499e26311fdd9668d080d4d4c8ce7b92b10ebcf5f547c541f5e6d0e9baa402e87567b9eaa938baf353285f97893f48ce5b067305fefb90aaf4a25257b117661188cb7b145cd3cb949afdc90ebdba340d8610be4fab73d4e9c70337408258b518e81f393dc0f61376145cf5b21e5d77776af900f7f750aa93e7764f96e3b7658c606f85fcc0ddaf27c580c8649956a8962886e10827479f5a9438ec7d6970823c274d80b82f40ffa183b98f01d4c3cef5ea982ad018914c2e83146c89187bd1ba26accce5492599a6e595cf23cbfcd36254426c86f85469ac2e5ed8be562cea656c15eaf0f7bed6fc80cb3b2a91c1431c6b8b921bff5b9766e13ec75d7700dabba5147eac158203f255a1d7426a6392fb96a36dae11924bd62a242a2ebc4f4cceaa048ba34b9f9e917dbfc3607df57b2f96d11df402b836fc7e6bee0dbad985e260aa4db90ca9eb3c1ae3f496079e189bd0de629d8c1cdec50555555f52c3641cac0327a85652ebf9ce6f2cbbd1896817e5997757d3f82a85f7a69cf74baba7c85a97039bb02b93c0e49ffcbaf4623cb1dae426ed6b5d552ac2808ebb7665113257415fd099efdb962eda843c60de2220c93b237680acbc42656131b16aba14881443f32c6c73e437ede47cbba7490ddef7f184319c120fba102c68078c5c795aea2a740a24347922487069e3622c315af57d1a37a3dc301363c38a237910839815376d3b030e40e519fcf7aeb9820d1be83db28afc0a4bbbbbb2f8c0572b79ed81bb2bdc6f72daf2172866c61087b161196e9697147a4ab61cfd29a21d7767359db0b9fb6c22f90df01fc02e0b74508afeff4f99a9e5919e8ca7226bcb2dc62419b9f266185ff964785bee5d1a0b7bee5e1b916080562f9f200491f2c55969561f9ed2c87966ebd3e241e221bbbcc30ec45668b84812536a419ad0963640696a18a8fae13d3f858c3326bf97bf418d9f0b7a611051287244f1d428e61526e4f4f4fcf7c4057d021844049b26b0e3a24747dd823d403d749cf20d1d5fa10e604d2b01ebdcf90d05588f7b281f637d4d5c333643b4d0c0b3f43f079e8468254a84a6463083d0fdd9f0db9bbbb267565182c5e5ec390a663d8eb353e15fa9d519b2a47f47c3b122cdfd13d9e2cb021a6f8482c0a0ff22a6206f2f4fa230417f8400839f4cc51a50a265c91042baa28c30979bdfe541154c595182b42ff790c1419337333f362ccccccccaf402c182333337333b345e32399b9bbbbbb5b3e33331166666666c8707690bb1b5b9dd199e83bad289f999999392371aa26b2cbb5bbd5ad2e42e8dd9d025177014008216caf2354851d84104218d7a3692760ddfd75f7be7a9a0ed7755d17ea728b4a0fd32885da5c08810a0f714ea654cbbaec6973c1b44960c97c2850a0c8cb4b970b84a233c423c910e4c100155444570a30c4eed39f873c3c3ca5adc8e5eddca52a1e443cb6236888689a34e2b115f11e3005a2a8eab981ef1ea6607a225318c57a9846af52e7d7bb5d28fd252526a47df977d723ec084567c84a32a444540c80a2c28aa7e339d29791e5e1e1e18117d3f44ce6aa3e52463d59e791dcbde6081a1a7624d656c4316fc4ae3eea64af9809164b08057a8f2cce628e0e08d7c967a5181e1e1e15d8e89ebe63689478a02c7eb120d1a12cff9fc6a1597e7f9ef8cbcacd25a3008b6566fed3de011f1da3e3a3145106b2cc0a3e4dbae3904e1e8cf591f2070c7ed81b5131a020470eb020638c1e243186cfc3382f1fc8b5d1111565ac9e1d9310420821953b7ac841910e5b8cf1c4068a61c511e275c57fda14430878fea1620658f3f0f0f03cb1f9146888111aa949f8c11641684144c5951cc00843863d0833f7407ef2576db0dd5d2df510e6c7eef05f10161e56918510fe49ff691a0fdf78f8323f1e4611e3bf9d4284df281ebaf6e0a143c7a4cabd989e874e5343c40814527c1133297bb149474065b80ef5ba88bd3ec2715df4cb7564f9f64ec1ce31c44e66c02d6842c4a3423ace4181142990f6236a238bd0996da22b226646fe6dba5a2952a89cf86e6f28c86f9b24e9553b86a954b18647af2c133be611ea2215d2836cd2a4c993264d9ab4b050fb5d8d305ea34e6db61b7d663d212d2af2830f8120215c6666d883fc568a1415c25ad42a84b8f22bd433cb83b5b251bebd6fa05ed15259c2ef124fd8a67d9d48f9f62582e4dbf746e7a29e214d7ef2f193128f02e91cd8c9112c58a15e6d3fead80676213f2e8253482e5221fa4f382958881b603bf8f655e289d0ce4ffeb7425dc35ad6ae6539614f9f9fb0cc1d6fcd910f12f56ac549d1c38632e4085d5ab6462325da6818a26fe0db2706c362b018ec8ab9608c61d4dde7704ed846f310205bae1a9242ea467446a51ec33bbcd2e11cc824b04ac531313131b1d3a4940c218c551c6b6708590579d381ecd4efce20a121230cbb31669e180de613b30d876cffa427db9a236b61979997f4596b3cc23e8b1a5420ea57b43ebb342b7e86699786f567246dc412e04cd332d208cbb8874199c2b8a740208410eb95f684d9dd6eed15152c2af60310800007122d90f1f5070e29ff49a982038a4ac62ea58430887a88f0021267c8f1860b9cb841154555e480831a400172038c1d406122e1b92b3242cb9a40d0a2071e389ea0c50efb842666f031c6a8761861350b2000b520a8892eba1862e5500880d71f3b9678d2eb8f1d52e40e3116dc30b8805eb8a0091db219b3348931c6c8841b2326e2685285093322136be8a09fc341c68f2a70047d7fbbea82230b387e30278c08411049200219544011c4137108a10350bcb8c10e3e0421c5ca3a41c51e268584af3f4bf022aa96c0c5c714cb4098178272095bbc4aa6968005d791a9491dc85ece027becb1e7c3b717db8110939a922a9d1bd0909fb476909f12b911854873e2dd60b23c7d4474b5811e3b0c7692e6d9bbc2700c952e2464a65eccfa4228bdcf7ba8ecfd2892bc023b0741ce21531c5fb7fd1a8e71af0da067ff11e4f987f749f5e937b668630a91b601c4b3431a16b2b09cd9f311b97777555593ddaa2b1cc42bb067d612ab84fcf84a10cbec152c5724f7609f8444f00a06e3d97542339ebd996980144853b19a20bf9898204e78a0faa42c7a0eda284d006552a4f01496d1b950a260eee115a40421b76779ca22d1d323853d96324581b0b31423ac93ee612278c5ce519e7d274b9952457ed8b39467c7b41847c6040918bbbd182c7227d629d8eeeded6d1f5a481feebd4a25f4de0f166052b0ddebfd6019bd496d108f477e2ae943a69a63144537b051c5b32bc1341fcb047385d95debb22eebb2acb63a6b6af106f6aca14b487e987c51565d6548ddd69d442b19931ddc06e68b445dd4411e5e811d4e911ff3c021a4f47d92024f37f9988779a63c077516c8037bd65948c8d3456d032714c242ca9416a10f4547d800e2d967c0341f69a8cf6e7744b890412fcb3e60ce329ae5d9a14cc168ace215d8bb934ac83b6011e4279508d9da30f3eeeeeeae2ad4a851a3aace1d25ecb1cece0d4aa24acaa1379e3da5b3b34c7cc4ee55d58d6badb5d6eeae478e5389ce0d3becb17f2b24b469f08cb3631ac6836c6d600ce4930f7b7ea2fa19c2f2eccb03a6f958209608f6ac4876e6f96f9fbcacab7331d484027d343445cf4149107ab6e145e3b312f4cd96696a7805f648c303af14088c08194535c59be095be1151f06ac81052dc10fa1d7e11401d99860cf1241b324494ce561b32441496e1285846ad5879f2fa439ef8b08c5aa992e5b9214344d9ef39648828da6858d612ae0aa4e3d88b2dcbfa910278fd59830ad51a48b06020d7e3102473fb122a1a762fd16da8d1ed264e171e80d3de01f0003c7b002000550031c6c8cfdd6d149ebb0f05393cbbea6a73d095bb97767d1c7d69f5799d300a9f410d6319d588d1c0727273796f37268718cb44685da38d9332415e31d7cc6b18c360e8cf2666812543f4e4e084190c01892ecab0c93ad4cc1cebbe9dc7f66b5ac9bf48374d395339da972411e43aa65ee69af9ee6c1decec06ad53f532875b11f8a48c343f25a34eb515818f4dd8a5b61b6bca1d4836fcb4d60bd4b59b803ef40877bbcfb27c75670deaeb1d975b076cca5ea9eb7029d62c3064428c266bcb612f461f8d4ccd002d752f9b63b2e40c50199473aa0f90fea99ef385c22bd658632de4a743afb37303b7909384bdb8c35ee4385291301a1a1bb6db8931ec79497460203fec2316860c43c268ed171ff78aee11d43f15f65be49878c96b7aecc52c41fe8861ef4ae4b2ed91d2047bfe5764f66ef8ca156c5eb9a67b527a560a7b91c7b7eb5684c7ef14f6e246d9a07cb2a18c21a17f0b35ec8d35a43c74b8c243200f07f010000f5b7466a144573160a5bbc185d233ab86aea22f162b568857ae5c71d350205780648dcdcf1a407cf423f1a3f13a066ad8034efec198fc4b350a3bb9ca34e5642e64f4759271ca096b30f903bcfea8e105b4bc27ce84214ed8c2ce3e2f2b1c43b66fcf8f194ba68cf5a4410479e066f99db9a09c11c7af94bf4c220fcf0413422308ff05f985cdda5158ef343285899a77a7757fde37d624cd499a36729216a3bf700eddc5238f2cb265c083a667bc1efad5eb8f19517c0b3d7cb32371bdc5b579b8f6afaad2284d0b0f550b0f5589d79272f5077bd15b3a1faa2f878567dfc863622a1f752ae71fe4a74147a494ce3e4893bb742f3cdcc55b9ceb5e7838e7fb99d675c757c8234152281ad88b7e24853a720339f276950ff688d0b05033c42265ad695d8b7787d36eb9e518966df3a5c8e699b7b0f992d7ba0fbee6dd7d48be9fe45b0fd7ad859cffdaaf5ef2dde5fcd5edc4efe19af7e34bfdc8797436dc70ee828bb7cc9a4e751ff61da7593ebad4a09cd4b78fcc98f28ae5f54728e833d6b8f61f99aa675888ee83379a2148a7f9f8492ab2a79c1815f2d32025db2eb46b9e7538dd71e65b365f5cc89ce42d642cfc36bf7612ec674b9ebd77bbe915c84f8346a31990e4c4385fae09312b2e69595311636648fd1102faf67dd8eede31ced5927cec8ed15d9b1f866573c6d8913cbb2175f1ab41e735df4899ca6b904f9a9fcee3906247f24fe7b5b9031fb6409a96c6790df30ff2db62641fe4114ddc86bbb259d39146c7d8b142fa5f5fc89a21d9b7aa6718a0abee2bbe3d6e116954717e1e74f2c5073fe879980a598d74c6009e4a08a6801b4f81b47b57ac5c0eff7ab95c6d34d7a491a894adf694410a19cd00000010003314002028100c088482e1602ca228baf40314800b8b984a78589acaa324c7614a19430c21000404000000406064b40900da5d98fb1e517efa1e2bb16b999762b0de4170ad222e917f9e3fa811099ca1ff3776e036b9a26b1679ad329f138a99736019efdedb0e6db7cc4a01601eed510f2879103d2a9a1ced50a655b0b37dc985b6998060d4ec58927a6b30eb424a26a7177387a1e7707f923aa3f26c088a8a9e716d8ea23d0745cf121d1dc4b3cae6813f14c7e036a4c6f79355e1dfb4ed88c3cb019f5e49dc5bbe47565f3834300b0754a8bcd5089a382950ea046f327156026a4843f6b0491fe18a509c707c332cb45dba90f8a741e2a8094e0e65b3a4a3adff4ae26223e9ac913c197d6e6561888a0f51a72c949b97503180488c82d694f5e334a7dfbf8accc28b788378307c96ce39d2bf1ecc89dc002ed84c9f5d22f14e259d59463acc9513294a785026479420100c5143b45cae88f0616c27ccdc36011a37d81100a772008b26c85c295a2af6c3daa0ef4e5ad78ca25e55f04adbd1332abc7583f867190ce244274e7a4de1e03880c808246aab64d3d88bd1d3b9813033884a17298e5ca05c289d69398dd097a03ad775679134f720eb5678960cfd277b537a1591fc940e7d6a66163e2e97b40047850627ea1103ca785c165c5520d4fbd48e86314cce5b40910b8353c555dc91b9f7236fca116e9e18e62d50ecdb0b5154a04a08c4c11aa13f7eb00e94c69ecf3b7e4a2054fe2b0fdf66b4f04a42cc810f6c0b2dbc8dd784391e9e318d4c02be0698218d57af59904d9238dda956f4fc7e6dd00209c9ccd6242fd271665e2824daec7f436886043dd8fcc9d8ad241d94cbc82a8342f7b91454c166fa6c394281a6cc14cc3362af39a64c8f87a54c570abedb3ca5d89f4c8c3e63b32ea54d5767fadbb5c65085ce6dfb33501994869e375cf07ed4ae76ae1ec87edc810ce1534c6124ad6b3d5f69c17a8f50c168489b01c41ee7e547be4c80c308431fd232a83f05a58966c65ab403546e3a60accaf02756db442adb172fe9a3de05fd3b9893ffd18ad5964ffa2ac0f5415b0d2f3d053e1ecd6bbfdccbd4000b8fd0853893acaeb7f7e2bc92076ebbb3a4cd90685ca0a821a50b839bc0e8b0ea3a7f25a9c36296c89fd7b6c1e2b9fc9cf1d40d3e3760273021ff3339608e038179be86e656983a71c7b259159e7d8abd19eca19ff986e4fe2f44ae40ea1ef347a6dd35586f8759de845f67fe336ad5675f3b6642bc5da711fb05ff81732aa9b08cd3a21c80586fb124e60926d3a0646a5511f9ebd06cc1f6640448629ca5c3fae067d733aa85a30ed3b0c94fabbb950d6ae0c710e8eda7b947ffa14dfbc61922ab62a97460e33756da8fcbbcce6605e4bcf4296eb62991ef5fc427507e9ae60f8d2c585af523af88f46c049c9e723909e9d87a982c4ce7693c3c861b5132adaa9142a7084aacb1cde1a889d1e35dc319dd448a7d311a796a3d8b4dbab744e67e6d1e9935e769995c4d24e0da18e3adc1d8adbf6854e911352c6867235e6676727db86ed3aad3580f954e6b6bf91c3b36375c28c3350fcae1a8e556503a3b450d8f9e5f0bb82612c3373af07a3ccdda0ea990d01c3153a1b264f100b4702b3b40300953e9d7de507e31ce86a57ef5605d25e4a743e1754292fc552900eae33c36e776a41c278061052fbcec15e16cf0f54ec7abdbe25abd1138206b12405ce86400d4c387c1bc4c40bd7191ca047ad57b0bd86675176a8a28ed4b3b96536cdb04a2d8652bc978a5df322ff9d0bd8a1e1b921999a6f352aade9045870734ce1d9b4112c5cac75590899c73c777a8f5ceb1c576e1f8dc2d55c71ec4376ede16985728cc7a4f2b63bece51c1d7eb7d6ebb9e3f5eb7fae9622a27eac61a277596fb299ef368a944b2b721f0637e9dc7b7b2343b7a591ae4cc36423eb61dae1c8b52d6215d8e51af72bcb995de38ecb0bacab154f8ac70382fa43f6335dd1d2c68ce19d7d3ddcec196f148712ecdd9f3e77362397a31ea6e1b8b2054c415b2f1cfcc826b482c36cc3e33d0cd0eedbba78391cd4817dad788e46194eb551c60f4ff83262c78e2beb06cfa10e1e116a9836e3c91be4ade9cc966a0c45a24d0d1b72a478be2b76f351226a33506e197787ac86ea2e60084c0de9c0a5169e7c03a082e51a08a1c2fd6890c9495c9acc00dafed7695d2a459666755caf45f8e151b59c9137a0259462fd7a99d448adb4cdcab772eb52cf8831545773ca822c2205403c7023368fd6e25dc245eadaaacdd6c4540b51f5a9f1cd809791a38dd70f02457a4b49e547f12730d02a8ae48e201b218871aa7754fe8eacc6a3a1b9a018bdb31194191741cac8b7c0abb74f89a68c7dc216eadf7c16374c1049bbfbb17a9e37ed7ddaf4eb03de0874be8a390f071614f6f964a1b0bc8a10330991e0e47ddbccb8071456e45d718c8485c50bb4209b45b4a18a8d83230054f6aecaa024eebc79ae0ab6f15c33b0191f720f874a60139bba6532203603bec24a5d5b9edbc7c529de672f0084e5ebc07b4576b087583873c505997110fdc7c56c4f20f86943c804104180014e93352037a0485b2666e04ea468540fb5036bbca96dbb7d84b72437d97d5b31fc382a04ef7bde0a43fccd4fa59cbb050825bb73811f7f99f1df5844b11b48f3eea2687477b7a91483a105bbc424d73034b5364a24aa544a1eb46e2a7975e08afe48d2f966e253436703ea57a3630598235f075fc1a536212e140237843fafad10442a081955230fc078d24311d30fa081ad9fd9f985c8663b6c1b39dcaa0316cd2f31cfa73e1b2ff8300fd152d3379c1ad5d77e2d2a14122a6571ddc8a9212cacae2dc0e9a9de715bca5d61d7a7a5f42d3794a78a8a0265d108d4fbc3c646d89da1b936a28c2e949adf835dc4893938465e2d5f6067698a730a2336e5bbde0bb9ab8d63408ac48a71851fc26011151e90d4505265ecfb365cd56498050d916e085797816f9b9d42d997cdfb070cbcad13dbd4fede7a0b35083f1af09af805ec6053cce6517abe825486ece312e1843bc612784169737d14287c4806f7bc1ac3a8993447e55db22e863e0916dd8785805c2fa06af18371a127b2ab1d43d6c6cc860144de4d607e9d0e42f503d27d1d34e359f0e93e571fd3b2f613c61c912a4bfdf8e99a80e1cd4d4332cc9a0eb75f6373f60ed24d300652d21a6d85fe2b2062df4be1c0330eaea1ab946fed396b1756f4ba5700620a748fb24c38d00ca894fb32eeb9c5602dd49390e6fe4105533748824c219d5915c79c9892c2f758a4b00fe9aa9c64d71a35aa616b8c7bfd43d2a38109b7b5ca2667ac2a27c4a08830ce91c2845be9f63bc9fbe106855484b96e876ba6d2d8700d886934baa24ae08e0eb327bdfae73d9d466d52f6832b7dbd511ace9082ecf1d4b9e320c788643ecc1feb9e0b57fe495f7ebf93eed3dfb54f2f5327ed3204d25aa6176e86464202d83ab8263f1fd464d98d48e826cd343b343e90209a6e4da07b026e93732f7f79f18179de36c683e014fc714594329d298b3ac8817de150b17e449a0e93048fa55e4c58317c798495c88a9785bb82aa7feba9d043fbc5962ad805288bdeba21768eabf82d044aa6f52add490e584fe8598b30693dec9ae73774b3cdd211726ec59873d116318922a9e5ed90bc0eef1b18702af29602b80fc4f11fedbad51f09c1de767db71f7101bcb7e5c0c4d03df2cbe5702df1e2bde1dec02c0c6e440764d14ccab19b201e1ba3212038d42bbb2107c0c493634dfaf39362ad4aed4a31a65d5d435b8f9ba50c32e556866dd6ddc3b30f3099349f563fc0206c613325aafe925e9379d8d4be50623d97ed7f0a2d66d829efef8cfc6d1dfcf3f5318411cc3778865174092d6b4968dcbc307f69cdf48d4bf8f2e7345d090fadd7c6629add4ef96e0e79c8eef5443b491986039dd8380508a31ca7951577718a72efc5d112682fb2d2c5cc416efe23c24df5d6650f78522e9e394f6debadbe978dcad4d7c9a0858dd028cc0829279f601e3f6af99217d6fe4af0c468f72f2d9d83502ac04c3e59f91edb0ba48f6dc29bec8b6b270e792001163b968b6da17491a31cd5502ffbe32e42a6fd158c5231a595972d9834f90dbd7cd825b45e9721e27907b88ce2f6a19be9a1ee7b895cc3d0b1acfbe19e9676662317ad0f670bd204e31874506442f166f98f9ab24e82ae3011b9f4f06e1ac7f56c683ff796c216e2dfe648569de502ecddc29cc583648a0bb229304c9b0517a772366c59629da65fd9a03c68865668363dcea89001caf0b10d5037c299d97d4255c38ddc7a76075132558f752e7ccb6d9fa94a67af54b344abc0c17c9db68bff5b0a05562e981d30ca7396bfe8e7e0ab85d74b9acba8b09437d6673bba14db88ebc20560cb655b6c43143f261edd30ff5b3836ec5c0d932633cd17407bf5dd787f61a3bde3c5fa96116ab6a874063f09aa88d38b37f65549d8724b2435eae9791db34f1d548543cc7cdee3efbdbabc3bd63c43d375df7764ba2ed508e4c9cddc7533ee0929a3afd4e7bbb670720041fb58716c441047a9814ab72eff174711436c6db6ffec99bccc6135ff48d46040443b03ff40b0fab0507d0ca0d725bca5c42ada12ba0aaca5d077ab4a56d22c7cfd40238d92852880f9220ba65386e098d99d2e96b25728c7b831ea5c43ad3d86fed86a4ed2705261457d339e98e22124ed0909576230be3727f4a04f71a08c07cc4efc193e0f3dcd96d51546dadbd401e8f218328c29d18eb264322586f2868f9b911370a2b2e986dcd89500d396778d5837bb6a525fd7f3c75373ee8d3564c9cedb2bce81ef9a3af262cdd9915c5fe37d666cb403c2e0aad754a07a8d3bd5127e35c0662df536b9dbe85e54aa8f175522b121d699fc1895789dac2505cdf12c89ed75d90579c44e2676ba387649684c1a0b403df6bf4b1d1d35e53f45d194ebb1556ea75a3587f450b304f9f9ebc7157c885ba2be6142b99bd249a1473fc613edbc7dd0e61860b1cceab4a031aec3f5d130e662e3180bc9e3ec29eb327b344c755dc55d64c7b482490ac0c59fd766c09e9ded6405f1ef07c24023f22ba5f2c66adec6e7d84730c0131f760e45e0be7003084e9951e8abe192d713c6de82752533d6390531870cd53789333490fa8d2a933817493f4e0ac4416c6836ff5518152f15ee3aa96d724d5433164c476820f5984344f9f46ce640413478fff165b263eafbf93a0c2fa26bedcaf468f9a90ab89c1e0882b7a1672423ed10eb76956fc33c4813ca86b16d1d1ecbd24bd5baed825b76c49fb82198e380966d188ce2ce9a654c18139e0892f1bb63e125c6037b7a0de78360772a3be00e70fd7d8f1acb5007d15017b4d51cd299c43492569d53f5c9f30fb66223c9d5fadc6f50d4f8e5f6fae2116faf810ad6ca3ef1a531e1d4a3ee41a162f4b4634849210128f077e38c3d19ba7ed7e34448e4a6ad570a3a4b90f6767876a0868f4391458f8580f65beebb0a1251615caee21099413c1abfa680faaa560ca06a7ca7c893000f81cd8178fcb444c6d0dad96466e7b03832a38e17217307b1369f4dddc7923f0ff932f0e9dd1deb7a35a435be53460a90eb84e704ac53c28bc2376529dbca82c02bddb51b53c23be15c8ca0f9e2dbdf29c633fa7d8a70ce8e2a697c7ba55faf9d91242da72caeeef544dc734e1c0214f9a6304883e42a01875faa9eaf2c208a41a8e3eb9fe7688e0895320bdbba80ad07b2f21eb3fb22125274e41d9604dae03594dcb08ff2c26c4e2ef12ea0cd34a7ec56192968249460e7017f7ccb2437b6c6cfa4287dcef5ab6ce52b7e704fa2291ddd07303d6020cfb85a5b94bd832ab4671953b952065ba27cb6a54e74177b476b4ab815ee54069f03ef042fdb60e3486db6858be2aee5d5c6d1f205804abf020896d92fc6e2f239b505eb40bbf7a46333b79046bc1aa0479b89991a238f1968b2cfd44bb4ba7f415113940794967dc49733595c5e96560ca13d7ffb2397a2e77771687250424f81dc4814b4a63a3bcc8c1d5358b6660f027ca15654267a08361db038e0d80ae623d069703a73e790c6be0055ba4661c03834dc0cfadca40504cc773c82442646643dd0a32b951d23bf9185a2ccdd1df4358c51e8dd300143a947f91f3a02eb812ff18de11c90b527c8390ad1ce1c684ee139eb852d04debb6fce897e2f61c9fed1adee0549b888bc00581632837ddd9dbd2933727278f1b29cda149c94e8b599123f4c933e99a5788b2c3e4abe3404739df882c3121045b03cda11e804d804909551237a077d9461b16a22842074f6358cd588720a3c993bf580933b17af30a078ffbf9cb0262ae3c65696c600bc060e53877286185d464bc50d2aac3c70a686954914627d71048a318ee9b09c0f556f454dbc1baceb933b3ce156cf358483f2762291577efcfe92f044e7a8740a649e041cbf46cab0888f148e13f033071e0a682bbcb155c40629a4680dd51f6161c547ea124b9450f0c6f4a48b5191647442a089481fa9a0b315230878ba060460e28dcf4d3a39748f37ad01aae0438a0db54589bcb23e34a8e339ef349343a8163247af13d0b9d52a8c32ca6c5a9c616d746e0ce016f3a1a5a06db69c71afb2f23097ad187990830cd44515bd4951ef6fa4f5ae35f922869b0c373a67b6b9a8ccb496a44aacaf5a341fa68c55f80da3e072e4ac65b27c676fb01d64b8aaa0d840721d9346bd815a80e1622771c28be690d5466731b227aef6a6668a042aa172d063a4420fb1a8fc9b4a6a365ff42642be0586a938ac136bc3e52a9a5824a83aaed55b2e7aac2556aa7964115a6a0b454ea8e30ccd98faa4a8dc87e94cd898c640385423c8bde5a990b116f107d7ced666516e209a8d8ac105ff617c33b14869547c3e2015b46d5041703b87935a45a460895c301f541e0fb44f524c314f1fc3dff31e0d2bd7da2d9ae5909d0ba900939ef4f5681b088ccf2f4627452ae290edc4f2c2684c6bd9d83a59c5d251c2d0d47808cf9d15fa5ec965a2aebe058bf59737b374321c3f406c63d96c2d4d3aea44e58032c2b80f19d2f4d47b62dee57eb1c04fb4680adbc6074ae9a15ee29dda1407cc557014cec0ab4491a803191d74b8b45d5fb538e4edb5a0db4741bc3604eaccea0d8f26b19f6e1a7dff1d9222ab7e7488e36387e9c0114511e2f55e25f8b705518f40865024137d0719bc1785837036de967f222c524e3a7904646933caecba1439c0e199bb243b040e97830534dcef9cda3583861a0a75e7430c03c3fea8fec12ed91fb93b008a616e98cd64824d3bb0aad727825751f6c552be768d0f86844ce17f4b6c5457468f89d85040b012349119f1eb7b29cd7a01f59dbcb5ebc73319e17db9fcad5eef2fe5b835b1e0e1e4c54b7b838770904ad9e4c15a107c60f4b90f5e41f185c72cf34fec3402cf95b90f3902cec3bf81a842681774a6a0177d3c14065edf2b4cadda20b635208f91b050120eebe65046c60ee156456771f7ad52627737f1f24a0ac031305d1afd57532b868a9db88d86ddc48e6d7b618cb901ce4db2cf0d04750ea392a28877ee3b8d9bc8a0a9a51efeefc1697a12e19fd3afb342d71df33eea7578d222f6565caffa971c267bce264c90bd1cae2db3075d51e30b6175fb23deb7f55ae73c5fa5a71f943812c3a42ab22f5df5a824a32be7c1f1421e08b2bb7503e1d318e2ac2f0fe3d68071fbecff2213d1cc5dca587083425c7ef4384772cb54336b289ac838418a01abc008a7c6c3551df5fab551381f2e89a774c771d07610e00252f82ca18d3501a40e66516717c3bc68b524fba9e634022300cffdc291842c8d27939d8a8262d6fe13eafcb2203252fb82728c1a08a85c6a47ba680b07ad46b2e01eb45170d15d4cd6d96fd18cfa68d73dd7cd274e238081ec6ea653af45e94d34e4644c2f654225acfe879bc6c9273cfa395316790a76d1f0379a4e3beed58ce0ea93ab08bcfedc331832d158d5de18a7ce1be312b85274a7f7411086d65174c90113042169f233bf51915eb58c9f76425f2ab9509540d7e02e2d861b7eb16c7f3d59d43e3692adf614b0c8e3a84d8e9221e71cce246614cbed15b5aa3e44bedc488982af616563850c725d7abbda13fd1022bf32a14700979ffe382795c53362515fbe97d73fcfc1b8a0222e83185e42560f0b8d6772d4ef90e6ada91e8443bc6bc9b0349da6aa78283009a0ebd301b6c5a91e3521f854632061157ab3c7738349e65d4625c7522c2c7c12b778baa6a71d0c5ef77c0b455d54c240a7ff797f8d9a6f631297cf56b66b447de0ac9c3bbac3421ccea76e9d886f3ecbbfa021eab6e117145e7a52f381f8d00374bc9edec3c3b12a27767c86e4e12a451263485ff0a1118ca87dfaa352c8b8eece52d801c74043732e66934eaad204e40f8f7e39861721faebe0a7f3e8c192c05ee610a0681897911eed1a5babc6f3275fcd4606740851ccdbb2261ac3525fa5b6279d783f04139026537bb19caa9f3f8fd2153c4a68270229de89c6f357db22a72e45d4dc76e8ebb60a2aa38b496f142533eab0f8821042c0a313a5a640eae2cb82c7185d195895490837d10b5f8fc246a09ed33893092064224c827fc368319337363055928653cf8650e55a8d3805c28cb176134a40190f2d36c52a4decd79768c3dd29cf9619b190c6bf0313128f79a13d4e821150a43e4da4095e366abea567fdfe7cc8ddc320cfa2dd0f0a0838a49cafb83fbb0343f7782d15eab205ef0b3b0361cb2e4950bab69b72a425d6d53d60c0753f7bc90c9dc0977eeb2f285cc6f76a42fc7a165fa9116b5909e1aa9f117b7a514c578a3884036ac1d697b1d8798b0291bdd7abc0efdab03722adc38a17d2a0813b7be99cc4f18e89cc99c46342fdfec67de88055347ced5134e2a6883d07d64fdee1585270f952ebe18357660c3222ac4b6dbe193f87209c0dd9bf9c0675096b9f00e77a321230736068fcbda3ef0fc3420c89c98009d1ab2403897c1f371310520be0e99b18d28e1b714466f284530e0e70f04ca819d52b8c10ca8371c6deb847945ce7c577ee665504f161203fbb67c76eb94c9636f8050b7652485d98a0a39cb96ee3001e8905f4d8446d8fa9dd8f154fc0c01ea9a81ba87c30400788077caf399fe1fe66b061a264d5b7f5b030eca06de2abd1fa830fddde0e46ce9ea7a21131a000b69e7e463f4cfe91fa1d0cb4123e34fa4f8311f0b03a8c617458c406e9c72cabd0dce8667879b8f52104d06e3434e772d1ce58ae7e0dfd2ed47430c19dcf858c06d6693cad417a83862b6fd3ca47575349ec98c9cebff2321a6cc2edb00d3682bc8c2175471f5259fae8b43e0f87940059e40ad724caa4ac9d2885a43326efe2fc334735c8b7d64b07b1197f46d9497b61c3350de245a1264047ff8ebde6d0ea6878cdd67173ea05c1f280aa8bb1135ece590960ddda5ec0ab63fb8b864c680da29a622fb85f647d47b89d1c07a890d6bf31c2f8ce9b838a9a0c205d111abde73d20874414823a2e247d51a0d11bdf084f9f0bb1a3905ae85e4a1c01399a913d25e0b7cbd22f27c36b20d34c000e82e6f52d78c3e2f04b159bea1689cdbe831b84035f13da25ca86946f5ebe9b53c5ecbd469ae54235e070de7168d909552e6b0d8006b0cd63d7bcaae1484510661f54219d1d17409f638ea5e5a74f417636e899209d2f7b21d19767c1983336c8d4cc743fe3e1991e86b19d602815def0b0e245f561b0f0ae0244d2f2f95688fa413a03f5f85826863464dbd2f4cfc85e49eae2ef717019ee1056d8e439a388b1da3ad38e6a94112ed0641d472da108a01e5b90b67bbd193f5b44c02707214c334543de0c8a1756d086a1fe480ff2c6770279d94945650b0af43d6fa3efc63524c15f68002fe8e5d931cb21f686e26e89a8cbf908b833b1293b38873a1408ddc2c879b800ecb4d26ffb7dc9cd3634265c09d90be8ffc611421c699dea6cd7fe61306e08cd42d4e476d66c4b8bbba1c204232c9344aa248e17a8ceda3a76318e37c2ea54073647865684b7c7dcd47aa218a506fb4f02f19b234c53e62aa627051b21f0a777ce0f1abacd3da0e69783402d27138e8963a6107faa5ace5d9887e3887a99b0d31f2be08720524323c1b057939f9ecb2be6a8908604bdeaf5f4fb7b0402fcb16b2c34a1150b909cd7a1a5d8a1564a1ff0efd82630530cf5b0057d0f4ba29e00a4872083a0f26003ae043981616b815eeeada68d0a9f8b795f7fda257186820423daf67521a58fc99814878c17e881c01727957502602cc40b72ed62ff3024e1ce656a33197fbc067c3f707af22cddb334bd75765abcdc0624a26e3e234ff8553df4c8d6ec6471e844cc24b5f7921238c700b8dba9a04f7469fd8431e72d06296f2caec7b6429e610eec8f6ec99dab250446e55d13d42b12137aacf3e0b8f3a66704db774cb46f49fc2e5df50d240728c707a1693241e9b715fc1abc0f7bd6584f5cc0c07dac263e6155cc7b49f6a61c2902efd3dbd19019905dddda33f0d21f446945640bec5823c6450bc23e2d40633b9a15f65e12b2a7de876b7387b79947c04554e49b9cf89cff1c978c80f37a50eb0335ed0a4ae300cc6d85d9eba14dd12f0e284110cfc76b092378ab8e70155f492445ce91aaa7b359dbbec1a7de910881bbec48d7a50f8dfda9c0a88907fbc2c365acf06e3d7af678ad381fbedf212e0acbac38ae557c46814081f8f5ac26c9c03f40bea236282f50438303fd1631fc46d25bc7d035d2d692ad38499dd047df3d534fb105ee6d6cc243e56335f20e400cd0830130f9916fd4961a105734f5772a0ae2ab78b30ca4b22b7234fcaf150e8b2d9c8866e6e836f8ebabf05ac3ff4c5268583f64ed726df95c8c813449ca43edd87cbf9829f4436ad864f53e9de0984120d99190e5bb2ec0f5999a832ebac279acc85860989ea878a2c230eb19a321b8dd387e7a75915baa0400d7502a50e79d14aafb5b0e17fe3bc4ccb72025881f14e25ffb927f2d8eec89a573eee0be9f959fcebf2db4f5a7ac8d081a8c412434bc83541545348e045223da477b07b456a8a56441c4978fdae41d3cba0efcf2dbfabea45506f08c2d14c82eabbaa158313865d5b44d8bd050910c812de8a6022dead0506b33773ac9d565bcc0a354c64cd322dad300d4198ab2d7750e687e57d5fb8f5d1f22296bcce2dc4d83445c55d5db73a010f5c996c6bc03e69fb8fd1505fb1d186c6c41ad629f903e4459ac321dd144a4006a67de56fe265c5a823973525cb79854521c33c3de9c5a1a5f4e62f645e3ab8180085ee015001da9705b09480cb37e0495bcc22bd3ebb502212f7c085803fe539b552adea3fecd1c0e23ba06a508731dbd0e3d83aca89912f377e78e2591de12511dc82f5a1c771fa2d05428a9232ef72da9d0ac261fda1e4e71bb5a46a10989854df1aefcbff7ed27c3c9edecfd893d83a90ccb5bca1d632b22ea951d633d6cade24e81d879f2853bc4a5181d3a07b083b73ae421db9f82b57407b27cbe647437f337173aba85fedafd36bff038ea762a37c140eae0c9d9e0e66dd54d64b69e05233845e222f75aaa53676502b885ea133f52ca5b6aa5454e07be5e0ab05cef32ecee6b4addd47d10537e33e4a47402bddb67245846aa376fb5706fbb70f0ba63b1d69cf7ad5bddbadd5ca6406234649dd73b3ebe55131c1ecdab0edcda79de386d357ab6d892d5bf22173783ebb2733abb54d6363b4ad1eeaffa46dcf2b012ca483984537b1bb52719d94b3537ef998b491c0e9cc69b037b34b6f13e4b6901025627330070afd9c9848e6c4b6fda8a33bac86491ba2a4444e68df46f901decd8849cb43d066a560a182dcb73a5f190820a1ef0fc9dc3c7b190e5220f236bb0258ddb798f3a993e490b7a98d77b9ea875166a4fd9963eed580e6c4ad767a6830fb87a66f7133ff083a2d9f79f828b612e0e509960d0e1279f3167a9a7374b47e54f28ae20115a13f3e18f8ba7ad9ff858c5759906989bfefbad4c6416c1b5aac98318e402288f58dcdc6b80565218e3803fb3221d31bf04683fb747183ef0a3b1f162440d5f3649f0c14473aa6f7853d65b7c7764e277c6ad1f811b50706d82700ca28162e6e71927420f374f4a2a71595f4e950f7b0ab0a65d797d82cfbd05c4d133ce73ac02f37b5ae4feb5bd0e1a72cdf60c5d77d0c30890237110b0fb04e7c00e6af79757d155f2c52b5557ab3fcb913ef6520c80d8fe884270b421eb0500e837089e06c551fb01fb01fbff3e96a9e5cde0f5f88d8ca6499b8150daec749497f26d279d50a257b2e169c1123ce32bf8a50c354f5970ed8da68bae843ea3958cf92f3d7a792a28c86491c274b33c1fe40325b28b31eccf450cfc487dbd77c7176cc6a9a5792ab545d6a3c5f5afe0f871d193454e847e458affbb2253e61517558d411b15bcb5ef2ee4c57e42e103e4c8cdf3e033f9d8cbacf7f7cbf151ab18831b692233009a75ca902c965526d13a20a6a38c22164efd850714e958e43a34405f13fddd8b2058a044e8009f92798b689c7223c089dbea170c0f4d57764f5b79b6a7ce3b2f665f6c91af046eda723f088095daf00b36955cce904d0c28d9ba700c98848198d642c108330f7c4b7e835de4f5ca0aa1df7c4866b1c1c75693a4c2281bed883a4211e8281952ac2856a8e578d582124a8cec7d14a3bf3eb1e88767072908cc5433ebc86261b7120fcfb674f1438f565efc16abe09a8b2c471efc422186e2223ee759d9ea011d7177692d088de3aef4edabb22505608c56fbf3b991984fb30f768952fd1bb7835dec9602e1de46af3bf5c5347af6ec4cf9576e2c24544091e952c4d36b5a8489b829eb0020b0cf1351ab7419e8d37c5648ebe49612b1f455d9e3f42d11f533b28497f3bf405042efe9d4644ff039c84a5ad9e9ca5494783d91f66162bd56ff75172517b54b14d9e0cd00247a670e49282d4975f5c146e85547330b749764b3a3e5737ac7bc25017c3cfad3cf082a06cb4689ee22d8c10f4fe334dcc4f94c805e4c7864ad48251db2a9844e05a7878eaa2401cd8072b9785432529e1feff843f79555cd35fc2ab6fb2bb5641d4c086086817c6161549d9e801f98856fc0bd6b378a548552dbcafffe51907fb54a07094f8b2fc74445e3b9c2f2476d68eb8a98452587fa665bd19d83a28acfbe312c38ddc15b9bd56c38fbfbf193231f3672108ef5da813d7d95ec3b27a2213469487c8c2fc4a24bd87671464ea1fdd22cc84cb5f3a597d1631c3f5f41133ad213f1ff0e078dd9d76c4b4714e7fe3e44c35b29e62215947b566c9c3a4153981864fb3713b7498ede26743291b823d9c55516580fdf8316d8980440874acffdb1107e85c1791677452ceced01cc192aca00009e7474a6c44cc1e154a33a29e7b53a760295b351467513e581968df53465f13aac389ea318143edd24625a510df01b170cbb64020a879f347171647a3e2b2565d15351c06e4bcf743b800b753eafc0a0e506f09758d6d0155744f82fae93cb89e892c23973380a5b58ce8a4cfa66fb6c16235329317db68f14b0c941cf230f1ecaa6c03fa1d89bfbc7cbce9047f4a411e12322307071bfadd38b94ed97829ae8eb89b46d05ed35a7e7e60869eb43ae4c3cfaa94d7ccd007f2807056ebd95d11daba10b513316a0381c34d7e6795138e0f8ac658945b96b287991bd8e176523f1c05332110c8242aa2c170ed8c4262894e3b8d028f307a30d7156306823cb6362a160742ce051964247b4cf6d5c04548f855a5d5951aac2584602829bb2de908dbdd1dabbc029885ca4d9bd23f0a4ce577c78d114d95bf421e4849e22248dec6b4b4f727e954b1c208a2803291e1cf721d888c00adb3f4385d6fd3d70342874b7786f637658b34d7b582053783d01fe2055c225990c7697718cb947c7aa7e315843a12ca390594201de987813b5c96a247700cde002bab7331bd75be0d5a3d089b6b233d9164b314a2c08d240cf39b5ca26cf5ba3461d60681b8c993dc6901d917a24052dd8f0174ad2f511e2b0123d539f72df7f065b0babd00f3066e4a766fb278ba30bd1c563ff72503c6a56df325a8e5740f9b7fe0c59736a2aa0a29f98a6f491b9bf73111b9862b2a67ca8e11b649924373928d4aabc244fa0b4fe4cf434aa737842de1f74bfc5839f5cee71dd165c808e06d81ae977b31e5e24affd4e44c8ff31d4b24924a1cb5a6e236cef19eecaef9080bb51fe1c92988d25064776cd57c6f4176945f7b87410956c97580f2fd2e4e06ae781f5f41f5eef9ef1dd33595307cd4d0e7380707932265c0e76c5ead8499c2cd936984ec50bc8ee4595525795c3f6e84310f38c5b44cfe46a04bb085b08698bb5dc994d55dcab0b90060dd75486612546ed557b55487dda0f9f9bdd7ac984a4c750eeb5f21f2a51c603a1d0b724f1e8f35ef745bcd793ce0091e364deb3bc8c5183185881f7e009daf101bb5acb592e79b7f61ef9dff89abe579b62873376e75e5ae06fa5fb9cdb7124129ed47049469330ec870158cdc8a68b4a434bbbb1e792b1051e113d7fc4e0ddd0b85c3816db7fa27299e7aeeee96584aa7df0f67bf75fcdcf21493ae2ca1156b24fcb0efb6b123e5a92fcddece95faff0162332a2391716c79bdf855c2f91c9f1077ff691ff76b56e92fbd094185a2f9180e9247346d3ace6a341d6cd779cc56b01fc318ca9e7c45fa6f25aac78f65b50e272f413274096c4075533914f4ef609eff6b2760c2debf7bfea7add6cbed388531ca18bf28d2a7d323a9b104aa72fc688c6c542f80c2cdf323ccbda2a4d77dd1637fa3533b80065b0d42d3f51a36935bd98787a40f53b1f6c2f5cd4f6a84fe8f669c15da7c2e54991b31763ff079075ef2862736d31c23b6d26f983d45444e9eea07c6326462170a18e7104f5802994607c38680fad400966e61047279f1ff631974a087ed766135756da42107cee1511d4a199004ca0a0495d9d06cd195af3250f50bb8ad1abc03e510b339e7517041bd8b08791bf772d5b70e6a4e6ef88f3b09c4863310b101922cf4096ad25bad4941bcc4486f4aef02dda045cc1d0f633f1685ba8538fcc4e906b41e4b65b83096835975d9e96b8f9f20087a82a0bc62380e4d62bec97482f61f544cec8fab364a7bf46262edb4ef3dc30d733b4b418b9d426db004f17893184a4940c4081b3a2dbf0a9e8be4c241c5c28e69b8370e7092e0469cc42521c239772d1751833ae185a4f54e82671644d1e4f276ee27e0e4f7e3f1ff25023c215e0d58c1d995195c19913ab07762727df06d484f47c93583a2b7216694124f397b38d47b986f734e464b11129daf79bd4ad41c63001ae1929843328c4ebd0bfddb9e1455780d10a8b67ccf57781c9be332971ccf887281cf39a5ccac69cb77d84ab61de9224856c66c0e715c5a0052822739bae87c8ff5d57bbdde1ed87c41cbbb16953ee5698a457c71a5fde86063494c78a8626bfb020dd34358ae36ce77bc904bf110ec797c22c96fe186d699e8cae68366d9fe73c45262dafe9d08ab3f8dfcd58559b26a09cf41f7947c4c9d4aa85a32bb8b97c03d6730d40c89e606385360e53daf30b73f23953c3cd62091377ffd80515facef9c446bfad88107ab288d418c711730ab64edd044da4ade31e7e0efaa2dd607fe11173ebe1a7ce4a1e55e818f0a82bb7afb349795cb47432f41e5c08e34f3e835f1df8b7854ec3bcc3dae52e0d40298382ce3f03259027d0a83be7c24f824778789aafdfd453ae271d099d2edd112a30bbae6e64a0c0b5b6268b8e94abbcf5354c68eee9a4cc91ef1cda9213282b9d04538a481ebb34b7ab09a41bb6526a82f5da39da7792c7176863ce25ec254cd7ce7c149389b2a4c96897f7751db58156f21d5b4f85871bcb5a5a76201f2f207414b35c6e1486b22f9a70e036f4857fd4833663020a2eb843db905dbfa2c3e58467d44d2468a1fa3f13693baad39d64eed56760eda458887afe5c8f27345208b17d45f772be89786b203a020ce73f29aa54a3b840b90665d94a19bfb04f5af2c64499ce77477f3f41bc11f46dd3dbb9e93f8798488642945ccf9c9c8370766f871c4bcc07841f712b3048909fdfbc122961bad57b3d81bfa30f526bc0fff9fe885f72f4bfbcb9de1ff7558709bc3b5d1b2286fd05e25275ba429b4279fd989ee23efe580e28241252cc4a4600f3da16b5c09416cc8a5f91ba8dfe0889dc97c4dda09b4cc70ac9570d0f935034556c8114bfe8e8a4520c2e6c85e63ec5baf12f6d9c4eb4b813bde2076db3575a7fe460e515f9cef2709b208dfba2f7a5a786c310da6f2664b288e602175d78f64ea99d5929f6e255ffe91bcc5ed8374c16d84beef771213dc7203bcc3834a0f6270247b13706ad840405df8307381b812c1bbd167e1bd28d2c008cd1994f2a1bda890a9f3d8366c01e878fc3705dc37e44355e7f5d130725fa773b888ae80b956686ff977ec8dcad0a2600a4409e50e2431fa1a620abae0dba5d5a7d0ad969370a171c18dd0bc57cf32a72c130edf0ee528343b001664eacd8c0b087d766258d133144833fb3e4dba03d6cfda6be677650259c5e430a6ac206b77a309afc0340cb0f5b102a42953020b0af98bef8ef21fab1614ae2a00057685195c8eede4a6648f1818c2da270b9c7d9117fa94ff2f9259f9017347d166832560f30a0e646b28e0966ba4616a6600073f6824cdad44fd4573716cf1675ea525ad728b1ff026c3c5d56917a66f93c8bed4f4721de971bbd1f0e1430748e06ba9f76d73c99f84563b0d62d9a1830dc322278fcb09c6b3a563e5092050ee9adbf79a6aad65462e23b99da99f356462e0e1c0494756e3dea1194646fdb1df5424ace9ac4a5f6da3576b1df8d3604832721b9677a42215d1347f1a11f0282240ced4d94626c19db0ba08bc1af3509ab87a19c6e862fa40ba8e4c059e3043f0b9aaaaf1fc270ac370b05314df24d6e5a777a25723553637f854ad66ad838c627338aeb678078065986ad4a5bc469ae1327f081cdb93386fa933e74a47535735c005b2deeb6417a7fcd1824ef9bf9f1ff6f78785c42e23038742df132e143b014212d11f36a92195fd1a8240769106c615805be5e6424dbf9ecfd0c21d4ec9073b5f2172e7251062421ffc105e4aa19f8c40218a8fc09232cced6de0f9f46601b70427bd1c041cb603e73ca214506aff7dca78584bb4ae6b3e9661a49560e5c1e582adf440b9d0aa8c4474ebc9fdef00bff47388b842f8ef2989581eb2a6b72ab3a9980c25d6ef2856cba2cd67f64eef7e4852289d7a88b9d06c28339201190a0a0d8aa5404b7ff8c47179af166fd3d65d29b678a0d545c0c4fac17a2428e77348da0d01f759a69d32563591a93e03be8efa64f972a970ce27d6e7fe3d05ba43c1e9668ab881b3106bee662cb5adde3c18383434837bf8338765ecdaa18bf78490985d88ce4356e132d4702c37c421e220e560c57e5e310980d219a74956c3a0cef502647f4df36a04762ec397da62ec0bb80e5c1b12f09b6e7497303268dce99a1c8c4450c89ce0b6721b65905ccbfa4c348c54ccf4f2f3714730339d69c4fc993b73eb9a614e95c220871d20dc2048a1bde95bac6390b20e59943b7406d66133493c57ad01054be84daf89f9a8458fff858c36c34663ea246189e87c6bafa46ccd256c74e26ffb225f5506829c0bd0be43ac4be674f813b49d05f31f92ac3a1538d4a2371033d2805b17d75c9c3dbe640d00b24bffbf8f9ee31aad0ffa1e234805d18361cc368f0f82142c0d18f9e9ab3d5ddd58f748a69d4affd73a3dd1b0085cdf7f680caa09ca3e34765ed0c2fd860f131bb4b5d9611d6983c34765843a34c33a3e6821e3c32b5efa25fc302b566e8a31cd57e5f42eb69936d805ae508067f50d6d3558305b606962ca4142d2409c350b280efa862b822bc1ff8713f1775d24dfb2f4e5ea9b3790a784378dcb46a32891229cb4f5accbd5d435699f083f3c07c004c62a4a6aaff8d0112d6574c74d67ef12326005e17226819d7678542b163fed3ec9d3c13a4cbfab8f2d09af9a1cc3e5e849c4474bd4f2dc4609b12969bf9e3d35f19904b6bd7c38ca011df44e162caf7fc541b4643b5ecb0827a2ed59024243028ffa010a04f48d1a9cd6bb52e09b78f337871a683e823471a7b5710a04c2dc504cd7e955a743ab70702a64af17b09621706c12568ea52a1329b85424ed7ec12fa57a3e3f390318beb3e960ae5d8c46f86a41c21763e69001614fcc97acacefe6b9e9347972906d432f570de407579153b003ae2e3e51420e059c67d9a97aea5f55c29354d1eba4181c299e1cf16518a4f8cab6bc67af1ce0a7ab2f332b6e4a66dc3d430b2d60aa17e2851b5c7fbb62f02897dbbf8ed2a69c560d6d4ba75a7b90d54c1447f26c7b0cf4204af34590be4f73d900b726c84e9d71787d8617406e0d15f4b173269ad9bfbd178673dd9868add29d0d4f0e86750546eef24ccd8e2c91a3335954d47fc40f61502a847ff0796fb43e1e7c3ae8006b69a450b8180ff51fb41dd9b926cd8e3b65457f45fae5557447b82e1d7d8aa8225e2f6dbc8a51115f91d669fb97131b7ed7d2375fad6bc5991b959ff95a74635c4c817cebb896375d79ef29ff4dbecd1aaf4608410bbc3006b20d484dcfaa5baca0572c9bbbcf9361b103a57c2e9801bb77c517011043a9686f9a89d8d7749845cca8c322bf6ee1cdfa82747be339b5990efaa2e6e9ae48d6d5390f00c4ddd7accf3089f9ff1cbe1623b124f8a8b4614a138efe62750e9b69e88f76a5c30d952a10ed45f813db913bd1ef74e5e52edf1368f2fb8a7958f5deb10036249f02387aa66a0d70938f4aa2d46f03e162abd7f0b8046f18ea63e8558f57b8022204a54aec2f27636beda00f6444c77db1e95c0e818463e169c2cd3f4544c848891282b03d7736644ab7dc7ec1899dbf5ab75686624761101523cdc42ab005319aa8c18588a14d8a566fd5127558e3c517940d8f0136174732f8427a8a50a654f5f5b112096649220bbd8e6269692deae5d11089706a16fe884c3d0958e19b4dc7b73c9a3f9d12bf2f505d3e5fc249efe535da546f8d3bad7bace15382bd51d83832ab4b343b42ae35b0ac5f92f9eafd791ba340a83b44d581d00beb7c7e0d540f80bd3bf870faa13f15b052df4800d3ef81686f4adea6de9fb5cceada56114292e28f64e1c2e7b661209b8ea785275acd773243debdea06378c3a2a03fc28d3484f734c0454757d07ecd0e5145164640a14d03bacee2cd1afb9722dd3819752482f990882dcefacd0e906dd0227d8bb7065b4f71cbcdd452c35fba5a0be6105daf9a0341dd3472a43c3bd7013081ab0b1ccd0c7d2beb7800066f4d63f4bfa0277a39fdacd4a1f1f4fa37d163611680c1dde2195a7915a763042476b18096080d34233a00959e6cbfdc51ffd214410bc60da2fc9400868d08d40b1e54366f5ec4ed536f48a33216cdde5e09acb4f1d289916eeb7127ab20652026969abb7f30792c2dc238f71e22c034278d088515872e6ebafb3a48b03859b1f0f395e0081d7053c0df78aca27dcfc7506245ab91e7e3628cc7e722db844f9761537353f8755030beb73da5f024a76864c923e7abc9a209fdb1edc3b81caee4218022d49d18d397cea254814471f55b8e85363a050ed6da42a48a883eecf795c84387cebe59eb0ec2404225c0680aca01dddfe5a4fed97d57a3801b47d41ee858673d1a383f490400f39746bfe08685ec568c1d4fd3601451ff58a50d4ec735c2f3c5d65ef1f2bbae8dc355d136ccb06c4ddf82de0fa8e571138a79352796c3d0b50a1a63f596270f51d55f9c0034841ed1e2daf0abde10b956b47a806364ce66b08c749e98c6d39a39900d5e05f6bc591de848bd3c66234ec83e7c946ac7d8d6a68cd6b0eebf790309568fdb4e4db5f2a46a066fe219c389395d1cfcbb9855d55a446306e1148c77de52f0598b903bd56ab5c2cbc68e7c0da7102f70b313701e5ee907923dc9fdd24ac8d5ba6a7bfd068c91b0f7dcb88835c912fad01c94bc0070c1c0f2e8458092458efd5642a6a38524802157c25e47f8f7b6fe739327c9dfcd3548b22ce00af29bc0b18a6d01450308d10c33b0218e92b9e0ca9d5d5347cdb158e4d41030c22cece938a0a583d41cccc4569500e765aacda1a4c302a3108253217a13021002eaa291b2f46e733ba4b5fff203377bf534c85af6b4ee484f606a54bc39a7e57d9da917dcd0b4e02e31338b0b01f5720fabb3c258125bde3c37e7d6e63f347b3b2e02102fe86989ec7d828a0726fa9c6d2a5afe0910053faa3942e8e2471850d1e4dffc92319368aea07c5551e920e9712697d577523595007bc3e9036e0b231921a0c2ae7a77b8235353f3a6e92d942c6856c591866ca1e1201cf44430cb57b6ca86e7b40a8c0dba25ed61655d67ad4caaf368fd83d2caf536be8bcf5b93d5180b3dac48423720397318655d14e37da973dd2647a4cb8bea8d360a3523e83ce232474ef7b4b954b50a101728b09d49b7b6402486ec7a5f1c86e4a518456a87cfeb2f300baa1d8cb703fdfdf85d5041e6ffda4190a5f6ec9663ad1e8f9ddc53849445bc2ca5b02df7ae7d8e31c7c1f3eae67ad43287b393d86a7c9ca3ec2a03541c00440ea754336d0bf14e1cae47109fd71fc24a9859540a5844b6b55af368137a6829aa71b6f7fd95a8eb763ecefff0cdbbd2d1f352653af11795aa25137fc1148d6060ef85bdd6de1129603bc87c06bcd5f21f4706a1859bdfe1f2ee2e33359bf5249f25e1563e51441eaaad72d862c4e6451b04507c9ca23be8914f4ed01239086d01b1813efa545ab1ff1d185b753f86f5f9c79923b3ea1e242b431fe5b56ac6b442614f54ba55ff4e46bd60dfae7f36390534ef666a4977dd25cf20445e15e2086e979431b0208bfb919c7157b2e59e1920deee698ef11ffde7b78a0680a09a911c84b375a506c2506fc32ea2ea705a9e26485ab194ad09b42c18b013419b371b8887c1d8435b9f24ddfa0ec07b63408bb0d7fd909c3c0aadb1c43fd5537111bf126d912ec789cdc6c1668d4649ee99731b3bba02000be9b337960500b18ac1418b2248f55d1a7f8837f3cbac0b8be430263cb16fd0a2ab728f399087472571d8653806dfddb1323912486a38885fb6c4d23e874a17f6754f1bb765c339be812858004ff5110410c05295e232b50f33372bf4875faed8f8fc40685e48cd92b5cfcd6981a9b43c676500e7fc8b99531f98bce0eff43eea41ad1fa35da502e3714db95c994239b548c167c2498b6ad12a41bd258c465ed705467010bf3a6d8589437d430bbb06a828882ffdf0f3a1200e7a7d02085761f89df68891a390d1d42309efa6cf73c3345fa29cc68b4b35343f1045c98daf7d88a443e1002a78a5bf5ed39973ebd4be8d84f5408503b8eedd0c66210ad4ee34d6cf8698e159b1452e55ce67611dc853ce27fe91e59283092bb60e791e6f1de5ca0b0cc15728ca045262c9b5317ac4e0b191c75f6bc1eed5459bf77c98e51d1eddd1f36e6a8b8f679d2510aa9dd012079464ac082503304f735f039128122b3010d96311b6090863e4845cc55afb884917f313400c924b81332c6c1581d64cc316a4a7b8d3590ff9b62600d7d76a4dabd1a42910ddb32caf5d964bd382cfe497c9651850ea5af87404df1d0d9d0f02c3f0b5d10ac2258f932166a9b20aca0a2a9f7c2a6b41c74047c0f54bd1175de32d9fb8eac74863a7552102c7b6afbf9ae5088ae654d085eb7ffe9d329cb4f527b759a587dfb3ebfb5fb0491b4a04b57b2a5bc18fb1e62b65a899ea8219f50ed814eb106864f1016e9362d87b93164c70575eb6eefd63723ff4fe99ea82292f7b9594cad5883c682d7de66f8c6175330e65a509c10a9fb7c067d818c8fc0b1aba2c423ebea40501a35c8ab99cbc984952d73ebef8478913de75a94b7f1f256201f50fca57a0b01763c885ca3b948c62d06c2b9347706e10e6a1b5073885982234aa82a5bb535635a88508bf57939814bf3223fe38c1a9774094a911fb8975e848a231ce4d66fcecf31081e4606c128e439403eef6a70573f22125822c580b41ea1a2f005bbb05d329b472a6f8261cf43e1a22074931e72fc5919e53b12eb404162da45bd2f0d6c2c10d485754017080eadbd1032721e53ad4dae9852fe82ba1cb0421bd9e6bebc2eff489ac9a4cc1cd3479ddea2e0b6b778a5b0cc6ca24248e7561d0eba88f9c8047a5e0bbb943e120a07d308837b10cee30668064cac7fac9a96e68f2c550e5573dfd4c068cd1d41dfc986be343f75e22b2bdea9ccedf7c6a0dc9d056888519a2eb096ea28b82b89170b8c76f9cc51474c66130956e8e2e323f9000615a2d3fb9f8692cf620c58311a04f12043428db93d8306c1489c2a5280ffdd41f52dc01c2398e656a2491e181e98a48e38bdeaf1719b35a226ea05ee16271f541362e466d7bf0b301e9d55707c9e7432019ad3fe7047dcff797d3a4178d2a1ba1f3ebd14c150371d8b5ee4247e4571ced0ba4e7793e0aaddef9859c11f8ca7ad8963ef5f60b66a9e3d2a6e8cc5a2e1f4b821174defd0ee860d498fb854a99237e2c640301497218606d2f47aa3cd9e2a618ad4f7cc8253d7c5d10aca82e4a6cbdf33c4e9ab7c8e3bdc3364d743cc123104be2027344c8c4d66404499c1880dec9ac3011c24a6bb41aa7add009db8deece425e70d5d391d11867ab375c5cd1e10753baa8887a75ed46fb67126832159a1f3a7b332bcbf66232244bc1fafaf9944964bd7568b551066ba47d3ec3cb251d3a2b070dc79fc39491ec8c35866c5eb80be8aba78cbf57ec4c201bc883cc14abff693048a3f5b611647bdb959dd0892c12db09730da8dc0d266b3bbaf13ed9051ae0119428a7a1c20a0ebf0dc71f5d02a22e6a5b1fb1e4c6238d20b8840b04901fe6ffd15577f31b8bfd18024025611d92c3cc1e1b7fdc8480628ad877d45304761c70e6ae3e48bdc8bb3c823efe729312bca0b92c0ce8a528a74d5057da9f974c5f1ce99d3b1c2b1a7ab3e12da8c3e0deb445d36a4ad4deacb31d97aa9c0f777590d021b228102245426a9f0aa66d100abbd4b6c7948319006458ae9612726258959044b84f5b85ada554206c0d9c00c40b5bfe15cc4fdafdb1c46aa72f5c47be01ff93c80c29ebea970a6b4960c10896722e799016195e50e26997dca2ceee03db898edf8081545ffcbcc7f34e5958cf88f895f2288b3b237f32cc52da4b687a8d9321ef0043699aa067ac730500c4a77fd4deb18d763755c9ea68b3438d3681fd47e1eaa829bdbda8ba9ce4cea6c40cb4879ce638e6a1a032fe59250ad2315668520bc24d7a15a19f1672b9d7c65cf5ed76988b5a64856865e066d173d5328d8eedc775d71f14001645aed3c56a7dbe7403ecac52cfffe47ae227c27e0744574ad30445759899a52bc40babc9b77ce930f8b18bde4feeb5cc0929d2bed4d33e60c53e2769c6df93097359551c146e340cd99d548fd55b5298014ee42d85c6503d799ba06b0afe5a00e0959c99a237e6081464979aed549bb894e4fdcf08a2702f97db391bcb37787307e818c6c0204ed459a28b81544be175ac5dbc6fd6b0c0afaa7a5180f5d25a182d2e6697728b4977c33a0abd6c5bfb0aaca3ec875aaf7e415024e3f109f3a53bc7cba74e88eae2ac1cad7efbb560b66b2800c2258a476b11a70f5a3cce93e36eb77c5c75a09dfe97c633a5d9e1dd43f4687d3a3d6c60b7925d6e545a3ed43187579a345644074738ea8a15c815a5e80bda7f31284bfc7439c06f4bfe504e5118ca3bc362ecc063a45d1a15f7f1d090363e25ae9e3a27ac26f196413adbf731aad50d40960d69207ddbe62e59a1b97811b6ae5349ce9c41aad34e56298d8cdd712b00cb58ca0a3fd577da15af828d5d347a1ce13be25b8a97d0eca283d2b0e7ce63295b1883d5b017befa5b3a61c7cef2783def8c0f65d80bb02664629562c1742fcf61437ac406267a12b9be0b32ceea4f0bd9d0b71113a90be08c3696b66e0c21fdf180b5cc32f8326c4474d00ad708f8216b5735af3c86e328921bda3ef10dc39119d900d879268c4a5204c6e8c3af35e9a57cbdbec908b74c7315600323569f20c4f04d938e297eed83631b2e2332208d791bf4ff4bb6758259daec6edb46d1e13ea32de78adf5fd34778b229bdfae8c8904e708031fd5fc88a0ec15d0e0834fd20ed44b9b9db1859e6fcab29d9100e0709fd58ece43063c8a1890f233b4c7c4bc239df6ac2f23a0e2d230a33fd9eefe616ca5d2c928730b16001efa7ab0028db836b90b2a8d1ee607028dbf321f771532cf8263ff48f84e5c8ecd4eae90562ec6f23fcfd82b9063d379ab467b3f17929fabbc8a1553683d57a64a64faa2585ead53184bd5afa1767b3563a0e2bb7bc3917f50fc4a685a7db407558ca683c9c769027b83b59bd8b0fc7f36569ee2ddd9cddc638024fe57c59b2fc87eebab9860d8b49bb51b27a7722c42b4579f3e6433748ccc222e021b1531a82ffb7accff71860144e746476616ce53b36bf6c5d3fe44ca2d84b31f21cd01cb87af09ff5561c657ae1b6c8c9bdced7b54590dd2c802caf9b7a3b26a77550fc19339094475c2fc9bcc784b4ed497158ab9ff2b0c7fbe80fd098730779614c50796a00a03f7cec317a9e8bbb33881d686a9830c5f6dfba5bc7d419a6e66d9e6d9a059751818621b838be7b3cf247bb404fc99215e39776a909cdddaf3c91d4800273f8009d2259292db2f4ed2c9a6940a93812cbdb5e15c72865d088f990d51a364bbbe15b1a0d9d4ba416d810d29587ea1d4a3b1f0016ad6668509f93527aa8e2b5c1be97fe8550e05052f43b6901100ac4caf7692706e666027c971917d6cffce11d165ae1c1520cae64f62fd09c4141bb9d7e70db6bead9d6f73f6cc800653c5a18c0a4e930f8dca8bb7b9ca13482281884e7862a76560dbbf9ce4fce0cd1347ad9f460be300ce08470303b48484be751b9dc90408c224735cccaf0161dda2090e0ceb56383019a795ae0992e49864b18529289ae5dabd9415b13a17c0a8717fb84b83f9cc658c496ce633fddb9dded7d6f05f69d624089d9f86cc100b565991aeef9894b28addad7035fb948208354f57fc2cede383f0e9d30863c941e8f7696ad89839cb42abfdcb6164aa1311d5809f15e6f4217c7890a58e41d144dcfeef26c148067b79003870989cb1c75b65fda717244563285c1ba789b8074989cbd8dadbb01a56951b93e36d692f181c53c8282243e76d724939936889e978a7854aa433eafe49470d8649d563d8504318b4808d83805cbb5b08dda8c341e8adae03d1d18c6cb216cb8d517b4932545b4496f71f38f91710145ebbf57c8aa836408df887bd8b45e1198329b38e091a7fb6a92cc60e71a2ed9c6b4cf00cca65b0e815111512e8d27bc8e5b0401161624fe306b9fd15d2290e3c24a690d85b244502d807ad062bab51df6ec1c1f5da14d6aa9e37da4567832f718bbc88e6b5609d921ef48f73579f77cbbf1d3e2f0178def5129c8b0ec602d1e670ee1b57afd40d202466996c3e5ff460b72ea43d37d8bdf407dbcd08a714baad19a93057b60a24603c1091e6855a6411de40086ae1bfb066d0847257c5fc423b77ee3f07deb6b6283a76ae468a7cb68d5a21ffe958f7680160f6ce33ab5cb3b24efe7221c5e079934af8f4c999d3d6db4ea304d6d5cf1bb04e8fb7dd5580c3c073fbfceb73e12137933fbec510f24674e9ce6d134988e92dccce8d861fe87a373e2301b71a9ecdc2f7874021db83ed48256da7e0533deb1d6c5787f7e8eb0f799f04224219120fbe042429c3018bcb1e41ca371ab4d4029b7c451e544219ae7e0883df4f680c11222e7c1d2819b447f55bf4b9538bb70812aa17c69ca3501ddde7772379ee97bb3ec911bbaf21d7e2776c6d3b2d9745a6d064b65de93a9d6ed7527ffc695b0f1db675c24da2fe735b81e7a7037612894df36291fb3c7819b1ae2fcad6ddc10f19e6181e4f0792a0597162920020f3fc1f19baa304189351fc75c938d152528042d63b2bcd0aeb0aae0de3f870c67988493fed88db098360a23131a98fd379c58753c7f9835e9b1c38d37e261a4e680cb1f16b7e10b64946210e6035302c4390ef4bfcb728e8db9055e7083b85f470018f9de07337d043a9d910c7d17b5a2c579d5659e0188b1250c035980832056ef8630ac8a21d2f6421b42126aca6cce8eb2f9c359c823c57349e3b15aeea8a019f8ffea47628d565360051a55ec45448f5765565290edcaf5edce5542eb8875dee421cea423ed6b2db589f8e803970ed29f2dbb09ebfe2b3f561d0901de014ea3be093b161461651f3b28eb7875fa4e95de7c66a5e3c187898161356e2863a47bb9707c89b6ed9997a6f04e2fe6214fa1c8029d5c8e36c7fb3ae1533a2fb462b8652f19d6e7d1f40a0bd5cc0aa8b922e42422b6ea1dab0b7910ed684efb06bfe32724cda31327279ceacb7759994f10d8046e0a32355995a567b322d14866fca65c085af484eaddfb7078ca67df5299e5dcbf4d10120b3807d9bc8bb64fbeb8a06fe62118110d76c458c200496a19d0c62c3226e2c67f3eca15684ee3c87a70c304c46f21c7b6f6396a8448d7429ae74dc564f50880c7b63f0512881301459b0e975bb5859958ed6f23d177743205470095fde6680c5717d0cfde70d4f69da4ae063252f36e3e13f6616d02f1e6c7402b66d3b8cb257b4f21804507fe8887f4fda5e26c11476aac11a8aa1ef1e629d739a549dd2c3077e29276e6825fa33528487b9504eb560dc17a1464db76767b509ac99ebdc30ff2a97ef6b75998f072183df7f93ebe8c43e2696f597808a8cb18ec6ad164b3e38e39202757d170b524d8f53cc88e4992ac87a5c5d169b70ed852a4c957fd0955ad1857e82b5551211bd14d05864b2718034dd0cf3fccce12b34141d961c6386b8fae306e3f1032ace9475769c2999b167c302c4572c3fc39fd703c4d746d8888187d18774b20c12c0102fb6594abac35023cb482abe2d8cf6612cf0c07536a77c450acd32381a573145414f433c9160a4b78f6fc0cfee4392aad2c031fe4a101988d3307a3160551ab48ebf7a3c80d55ff6c9f784c6e3b71b03138392c2bed2f0334d05d02e5a1a2b3f2ed06549f995067a15efb7d87eabb5f9ed97a4a2119edec44d8cf31bd9e1fbc26a1cf941c9c92cfa4102b51f6b3564875d4352bc559d39c81978aa99b3b34f231eca6e819b76025f367e095c60ed90ee85d743a03ad9419502cd2b98318aa42615398d702f4bcc1f0e66e8e19e344cc9373bf80d30c594853c5b82616ad21867db695d46cc631767b2e2237e5631c4813b60d9e5c7fcdcd33511141501642f8c6492ab1927293a785600d7829ea78821f72abadefe229826de5e22efdcf523a71fa159f0c176ddb61359e113b8fa8a98e635158d5b2127e139b82fceb87b46f11c1646148c3b28993f30a9a3ea2115bddc1b0bb85e8c3456a6f827bca6275e64d4fbcff08769c13d99d307b02e188b1028d90aba53c4d6283872a4df1511499a896c853b79d9bd3c4da6a850f4f2ee927e3dcd3e3c3b954e2321c99a0ea02e2b7d8a44d3362fabd5f3c67a4a45037ab542038bfe8ec6b9a75cf157c0e5ef96af31cb92193ee6744699a7fb9964a0f01074405feb0c38d000672c4903ca088d7d4845ebf068cf8861f5c5311a930e552258a5297a465958cc257d5ca4c1740ed6c4551e15143837b8eaa538e91007072588d6a0db06b63bcfc8358a9cf4261ec0f9db96639349d6ad48d8c3454df4cfe814b6dadcfedaca7187a69c40b7ad145a636c867a39a2b50582cac3e44ceea852e67fb94e4a0f5cecb51528a96daff8fc82616e4b0e79565c10e670341f98e4ae4737ce83ae56ca78e77213050d66c64792de48529324ab9ca64f0473f3a6216f277c21f9711fdab2e814fb1aa39802d217055de4a1ed47ebbb4e04d20d4fd1b9256a726c1b45cc12fe377509143dd139a611bf871b470531b501e2ca4487e383d828290618b879e4363f03e7e908863527102d48bbcb7b9f502c282bcdfd043767d0e4d9be316c71106ed111913c6b1c8a318a898ef3de5867ae7166eb495061747ab0067739a732c66944a6f4d1b59cd56d4c209f356ba79b985be8be30c6b61cb91cf7fef1bd794844e744c0148e30a55ee91dc303076f4247be893f725ac75990715f1f1be263a5e65780e4902e4dd7d99c5532486615bf470963407a51897b5cc9c9a9b11dfc8ec398660d0678aaacc605144640de978344524c0e0ef2e5d075002f5948a4e25eed61f438c7fc3915bbf13f674a54ae932dc514500273dfe8466639a10bc6f9e2d1fbcca35a653a3e27c72ded823af65076a83495ca27723ce905f830d15c897ccb1429ebba36c08c4e40f5e94fb67663bce3e3cfe27bafd608497cffe2adbfcc9739fd034ffe8abcea66d9ae9812bdfdb42f1a42b08da30c06db85673b3ddb218494b421cc40eb27dab12687118322d3d4df4a0c8847e27d22374410a1f1925a58699ffaa9246225df4591c7b364caf17c6c49ff6887f31a162fec9b66417c23999e0bdbc707b574bf3b666e310112b480d64ccced5ca1aafd63288d3592bb8356be466ba72aa507b12af6b643a0a86fc480f79188e201a3d4bc646017546e6acc52cddb2f246a63e4a3e7084c8ad21f57c840cad1b0db09466d026edce01b270685f607459507a237e18f2484028275d3cdbe9b4735458b7d1b79388e3d47def524ca0ef8b8f5a4dcad6c00e897b46b1e1360802ac57a1df5960f6dd6df900fe3b4cb4a58913534a4cf02700adddfe8012afbd329d867c8c5afd3f7e961465ec86b2482c6b9c09eeeb442fff64fd98c56d980d5888bde8fae3cbed1aaecf017b5307b998aa44beeb0445a7e668b4c9ac03e0769d5425c18e3a0f4ac61fcbf2df2a34c24ca9438986617aa951806c91cfaa09e00ee19ca12426e127ec70b33e6032a63a32a6f39b9684626d7d33805040e3af1f5f22919b0e8ed1bd414b8577a7b318b084f18f7462277b1445c46d22a2ffe314a0731a098a97f0673c48429bd485fa6917c1db62202d0a503e5640f4c8071fe2037e73847df046e5a3bb97001c8319898c0435ed17d8d1a4cac21030abaea29ff12c13f15cb9968c0080e28b47c1b5a72be09efc83e011487fae524a6cc51c3fb66c678e30045d1591119d37f931415e7db8b6246d1129cbc45af4fb50740a3dc16a87f33b4d0aab2797a55b703d370c84e39ae2d2e10c098be5e6621572d8e0c409c3f28f364c382ee17fbe20d955cf261f8e49f6bd8fe6c17685936c8238c5f2a155f6438f90faa755be46a9a912687b5c01371ad0a33332b792df49ba9b3422ba5e2202573cb278aced7cd15ae9f35abffb3fbaa6f37b44cb5ce973f4f8d2fbde99c657123facbf7d9d0cd13a794fe066c55e7b47474f20a04a28e1bda4e54149e1d72701ae0efc686e26e4834e8f6fac0a26433be276b8e2afe0144ef63bbfd36e1b8295c0a74769526715b3fe8e7f9da0ccfdb7a73d504eef157d40c90c7931f74504d3d38b4ebc9fa17b46933ca5a7097cc6de1c17c63c8fda0a8f67938d9d7e2dc3e2491330caf3712a204a1017026bdf648b4eee39a74cae5351c846308234e89c125ea79e5c893d51e088e6fca5ae89cb190b90d5b17467ce87f0d0962afb62e3de4f6b59c17466b79f6c5d2e45f100fcdc2f79c3e9c3c03d6ed3eed96f2273a01aa90fb3c357d392842725789a56395dcb252ab8f3e98cc9a1009723f13e76b78357980237d015b5b06b657715c6088b72e42b7b7e5d3731d534b6ea916e597b7fe11122c2d4e4e45399bf4749569eeb7d2c4559a8e3e65d82e49ea4137e23be387e198145d3c7fa097c87d787f7ed6f4a8e80a34e200e0fba6132ee2b2aa975744ce518033873f789583a32f02db9cadab4d25768ea0ffc6148a4e7dffa28e28d3807b8d33f43c2c62ed0151d37e08489bd894797f4c0163b29873a36b17c3316dc87e96bf92f0961317b848a2a6828faffcb49faa67eebd76f27627efa2a3b0eda6fc25a504e14ad2cd5c1b00796b71a15d0d4d96ecbaaa914f337ef5e249fc1ac6ab41258b86069b0dde8ee70b335a2318533e0641363f3fbd0a4afcca664092052071253053be45fc99706434c52678398939cbae04bce39ebb8a8c13df39f18c11ade48b523535c6fafc26ee53eeaca426c8ddcc573faa5b5901ae002d6c04fefd06929c2bc227ef7a648c874ee4646a49904079bdaffe6ce13b30af674adcf38b703ef2f48abe976537f8adf37f099d4990809b8f525c03302c53bcd3a6a7bd641ca415260e4c06b5cfa6e918dd68b5898f840509bb566b4b46f9e28f55d1adc0ad5b59a2ae471f7b5693c12fb4315399c480626acd7c0c8aecbd94c1710ec3218e10f200e30d1c42bd4c780f1f44f61f70efa52b12603301d6cccc6cd615256ab9ad4a95873e390b61b7eca8fbd1f684d0af17962359a909cd248ac9a98efaf825d3c733f72665e1d6bd7691a178d1018416a0723f463e56378996194e90496c8090d6796e8957468e04e77eaa38c83f32810a08f249b8c4403f8a22d2107ce751a6885d52206650bf4662400b6188e2003665be9b4aec40e8264c9552f83f5e8f76c571206dff70c51e44d14bb9fd78e6cd488aac2704181421ed758828c84cd8163e8a3e276d2780a428e3f9a2b8016ac77e9945971069d5003422f3f7f24018e88f74ca9f73a8ac4030290084e87100e2a0796b7f084bc97292d82d52dd49b5abb3ee36b01f932ee1b710b59ae7d820d593015775e7843948170bbd29020ba16053818eb8ed96e0b9fbb97e13d601a2d7a96a241a1b6a479c227c6acab532c39f09b31418b9949ae660ea93243018ea75eb6374f0af7e43448d64e76d0214a62f7234e4608d015f47433ca5fe97029034b1098219a87d54a6ae4669f11d644ec82064eeaf0f79b0bdb0686888eeeb6c1c90447ff9c16b027019fc36147c6d12e9550c44380b18c3414c8694ed43521ecef510531f4e3247000630eb7f5bf1cb02250bd91b14c75a024934947db9b819076ae682b60367ba7d55a4f32e5472c3f7c9f79350cb0880583525e7a8c5067bf9128ae38ad8ec2947ae684000d88df60b28c9c6ecb5a5f9db56034c91c2e0ae4e4edb6d19e6ba31bc125589da11eb7ba671b5c5cba03ef8b86237a98037f11a4879ab7bb5ec534dbf5b2a717e7e9a95c9d61b0dad6cf2ec47c32f88b229ec23407872076dcbc53da95a30d5dc8bd53a8df394a5fb1d2286039723c0fbce26f0685974459ed516d324b47eb472001dc968c5e65e45ef8a3c27bcc9efdba700edd9b2398c07b791ba2940684dad9928e35f6a4147d73ff8fdf7a2e4ce2fe94cd8281f34fbcb19ec83d18d50667390fdd16223f24e8a5d8202291499c9c8bc17b743d06a3c4ed27a0093f2e6a4a8e46370d576f37c6a54153f8c8c35421a56a3cc4546745cf7b2c327a7385dafc2a2c92d85991ab8434c02de2b493a368b460f51c408d53406641d0a1555108055c716c55025504c286a92308766487c14781630d7855c3531f9c7cbe8afe95dad1ae59dfc07721db631e59818e51ff669babad6f9ca9dfcbd94e1fdd1b19470a5071bc0258a1e0b3e84a7ddd88cf8732ef70850aac4c3aafe09e6dc32c1df64737cfbff115539b3812c8312fcf5e93cdc1985791fbce0d8cf8474ce63a181a22eac7dabb0e6a7b0454f2f56d2db18471f6aa82e838814d86cd82c2ea928dc71d33592d0156da1d5a9b35cf4bbaa6e1d2382a9ba7b5c49f1a86abaebaea74001f84023c4d278f97cecc664822a304c6b350617b4afb08b4635394c0f3df9734b13d06519e1a3c54bc75fdbaa02b7d6ee664d22f2f9b970340cfec6ded1282f60f95f29436649db2d6d2b149618a081ce7d7d28304e97952986ee42c51862245aa20c11d751b5cd05c58c6043ffd1ccf3013ea8c9c9081a0980fb5713823883f67af280b6149b3f216e3be96bd5d5109d969d437fb5dbd8e91af1349a6319b76714d382d6a78c8c8415e1739b4e60d6158978170f9266dd0cd2bbf9d7e2226f318fe81472b66ad11ae0ab732a350b7f3770076c3c36432e46a4b1471b281c5c7eafc30e6a98bd8a4bcb0c3939998259a4f27049694cb614d364b6d5f581c68762243ec10f3909ac80124e6b5b920cb91b868958c56040a1e2b932e72d0fbb7be7ceadb1a2995c505a1f18662e57d176a6e69295363b1bdb7b75225b7c18cca49e5ba1cdf4ff60b203a7e541661f4149e70d4456bb1bbbac028f5f27a57a4bad364dda954c6eb7b8184a923a924c0c9d9d498e60d83fff7e00d36e31d42e52e8d8f46ffba8aef637ab4cfc5a2c9f4eeea05c6599c882a524ff7ef80eb7a5b84d6ddc4adf5571dfdadeece0db13c6e0462c2cfeac2fa10288300894ee4d40c246a87fb87856d99136a1e7adcc4a80b328efc96e268b259383936df0bfc1dbedae43ae9c14aea3641f9327af9cede1e77810a1c20c07c8079666ea233ec6dcf406a625a7edaf99ec41381f2394c8b1972a38614fbf013917facaf52c390492b9442a345362012e4fc0d718f11cded67c4f1714e79a494095c6d67f26031be781d16959220194255b1cd2d8f8602a5d112aacfab43f109e6fe6c912f84e768aca857ee7d3be99ffef08113a3763891b6a67b9a8061cc9258a948432b1783788af9c39ba04e8e0c16dadea58e72365b863835464df20bb2b82d91142a67f14241f8e2cb7cc91a7e457a27a5379279c9d12db0686fc7cf692d2f3a761bea5f65ad9f9beb5fcb0986fc3f33722bf5d765449049a02eb9558301a16a503ea8fd9524bb157ee2630ef64a645fbe13f26850b32271dadd90525566a696dbfb056378bb902c80867dc401060657f824c0d3a80e98253a376d8e2d9904cbddb2e8f3332892163b39290bdf7de524a29654a291d09f60842095877373ffc1829d468b8e922742290acbfb5d23c48ef6f5e3b11604f7d4f030d0cbe048c9987f3d61772576ea9005bd37b0f5ea6dafbfee208c97988e96da4293df4a486857ac4e48089b9edc2bc79d3e6ecb5dfbc8e519a4441ea84dcce922316d678a86f597c296b51a824193a4b7a19a77686f4914449b02fc68ea29f790aaaa8ed86986eadafcdd0676ae18b22bf8e522c4f2b7dd66628e987986e7dfa24329a5ca67299c99423b73552bc2b1b5637beaed18f5a05e4a58fb16c392c1fc4ab58ac12fa2fd41f3da66933a36c34aa56c8edea0f31ddd1cb78152d2e3349038a0b7399491a3817b3b2baf18d5ab5da0cf2d2778df4741b6d27fa7de9b36c276a339514a3661969eb5b4958dd469b45796a0fb71b3d954fd2462ddc72e3a536738e7d553b7ae563f2b37abd6b33f469e6a8eca56c31390a7bd2635867d8675bfd5a5f06bed5d6a7f5e957fa2bd6d66597b452b5676df4327e7347db90ec6ad85bec9cc9517c2576cdb7ac87d4a256669e09c183cc89b9470cf32db31d2d9259af651636af69d1e9de4a3076d1bea85f336dfb41fb51966923ad46b3da67db65b52cd334984382b0fd46f3020689715a105a16dc2e08aff9998cbf7371c6e5c62631155b60e2b23603c9f287058c5d6416b5abf76b6340d6388a00f7070d52a84091cd34cc170f110ce0f25308f426027aa5a5c139679e618797badefdb188795c117a613146ec2f8afdf5fe4eafc7bee95b7f03bde17accc63c1a14c1ded23e7b7fa276bc2aa2e447f6da17b1685eaa48f6daa9ff07f6d6ffd04e6d6bc0defa1b6ed06c8da58942ed629c551cccebecdae806f352d8fba9c646c90ffad7db602f6d3bfae34d515dd6c6b2d452981929a5942b9a3965cc211dfb829921430821cce1f2a425f26e7c2fc6156c08199a4c52ca9cdad1f872f3db26d3504c4388bb297dd97bfd7cc4d63aa2720f7d7df4edd3fb205aa5e4d919fc36a414c27e4b383237778c3142a19a4c26bfda8c8993447477ecc81cc74c1bc6995c7fc0f56713167c092fc618a3aae3e6b7350e672e61323dcd0f171c314eb81d26eda7e48841450336092052c9270613b7335d266140c131e6f4bd2ca9dfa6dbb6e3fc9a4c5428c6d8b18130b3a68490737c1bcec02a37c22060a4d46512308f388e3202b580459028e6c021d8c5f587afdbf41e3ea351844693ab451429f5b68ac9aaa5e096cda6c69bbeb4d9d8f81b42cef983f2b498a5ed87d2b7949e5b4a1f63a9f4bdc1d27bb034bfb4c10d8d281c7099c91954aebc7373f2a2903e328969a337b63a44752d9cebc7f370933e36b61a52a73e1da17ea24226742abe3f5c02f3b83e0c13174530163de1fa478150aca87fbbd9337b66cf4b95be9234abf45d4b277350573e2b6db2e7bdb41d82b68ba1514854641429c5514072c851b287c5aef4b8c9f44fb21d37b21d0785606e4ccced640f142f6a2c7a2959ad2fbafe183f611dfed7069d30f452d08aee20195ab87e855b6114ded642ce49513bd973fd658f44e211d07955c93a7ce29c4321e7783074cfa8720aace38c2eec652667ac62f802c9f3299a729fcf4b4121a1337ece80e289d26be1a8f74fe8bcaaf4fdf132932126172b6d328abf94dacaa1b65754e6815d1e7edd8c2797999871e47650c88c282e147a29390485a0bb9c02ebf02b8758876ba17650084e9143a7f91ce5f67750a828caeda010932226ae3f7ce270288a8c82c196ad55a58d5533f32a150a751224edd33d7d248873eef089a35e13e7a094ebdfbebabe04c208638cf18789da7992eb5fe46f093974fd9f0fa5e2c3412108c5ff7d1cf53e08de5af0bc94377127d7ffe9bc940325e95a48c885a84edd31f10809bdf758478c73ee50080abd8733810c4084261cc730f6cca2be8f7ea30cbdf71e377d6f5e515798ba6fd757dedae6d6ba0aa543b305dccdf5ed26f1db72b00e1dfce2dfc3012f0ba031a467b99642d4f71c47a50db0981819213dc00085bb583d898979598cb1371ee095f479aff4732f6552e2c789eadf99e465a0349edc8e57fe3fe5764c4c539c1863c78602e5ff91c0d885a5300bd98107490f435a8789226e2942bab5dbdddd0d01ab9a6ac0c22464809a19661d4f88fbcb411f94dac1c0c0c4db5284741918bbf4a99b00b78fe0c081a236c2523a3210e68e1c638cb16fbcd475daddb87ea395c9a2f6e507849d40b15d8edb30c6182310292311c7c100c161470ed622e63a37e1388e5b472f7feafae63029edfa4b206a8473cec97173c68ddb6088261218012e0c9ea2432d9e35e46ebfd0bb99f23704f8a5dcc46d3b98876fbad13922d132918e3146ea28d6c14d2880c89f7f437c688bc08f30be64954976b777c3f4037929485f7bf7fc93bffc1b15b427b635b4caf44e6e4f35c097ff03beb4364adedb4c7bf267d50ff8f2a5b589f6e4b6865631b4ff5ef86f54323e0459d5cfb6087ff3b73dc186a68fa69a3ec16715d3f7f25e7ceafbb35dcde9e77f40685e3133cbc4c070d8737d2f50e02cd420083bb0c1098a500534a2d809c28c289c8851d8c00408f8210b58f000882ca081c619513011a38801103d6e8af04111bc300285152019a3cd10a3a56801c39c99d92f534771b30e6e3844f33f19b4e7310a980b841042af0d6950fb990afe625cb05e688df95f2abe3ff30b7c18e57befc9f7e083efcd28a517d10b18df9b59f6de834fa8ed833e8a038c5de28565fd3fd30cff3fd3469795912ad5c2d442edefea0ca4a49a719399e6017a8f7358f4406f86de3814495da2f216548878ef6d715dc63d89a94eda444a29a5651de050221f28c4f3315529887076be308305b5c665265f44515287be80f2854e16edef41d8fe208c113affd4ce07354ae91d472ecef1bb40efe74770ef6e0861430bdd1fedeeee6608639432eb4969cfd1eba2e7bec7fa4199f69309088432ed279373efc4281fccbda7716e12279c534e0921843e68a0b7f48143d82f8e389a68500998ef3c4c06c7291dfae53db74e57a18784385705466d0088738f1b32f436c0a8a682b9d74045432ca5a8c88775bcb76e8cefc1ad69d0c33ade77741e87b25b423805ee21abeb21eeae87a4a81dbdf1a76652768c23762eeaf460fdb4191e9ea1211f1a72776738e79c306e2e0d016e05c4ef0a70f96da3a8733c20aac4dcfb0e07aa3af7509c97183501e6decb38f7feb23496a5395a01ef258d274ae7fb23c07def2b473df1141d722452843a077214537104d1f59f11145420a182dbb913f7e93c8afb9ece780374ce09e78c3f658c32c6e7839efddd866915e82dc68edd36a32ff4d600e31258d6cf7ff023c358dff3cf6e6a3ee45b4fb519a83643217d164e5b2d642ee44bcdc7fbf9d37631c619a2cd9e125c5cc480d00592413b457a9acaa9ee8049a9bfd067f911fbfe1dda68a45108238411ce8cb451a7f329fd69a973d43e3b63d9180d5ab853fb9d373ae79c1db5a865bb1dee6573a06f5918b410351fec726c2e1489105461280645ac808a0d7e70206c601bc6e8322cd0e23345951554910413aec8b1816d60a203269c10c20d8c18e3073f01e5af16885287c0b91ca4b3a4009783748edc2144eeb40708691dc253dafddfeb320ed2dd383aee807e4b09b5ebef268e7a59d4ae71baed15d5ff21dc78e82793c04ad0bff2424471577e345de361061b3dc3e781279705c9ed9f41421cb9994de520219adcd2fb6356c69a0c0c7449b68397f4d8685b793884fa5e463ecb5c418ddff759b2d84cf3d133947ec576a32f3d6b3325d24b127c6d834daafc97814176ece42fddfe96bea32ba4d1e8a93633a27565926c67ba5366fed466a65681f896965919b2d764a87744922bb61b72575a6420d2556ee9a7560116ed651e69f4fc2b5b0e235be743cd47fffcd2367a9957e9769a3686ecb5e77b4929e5d6f963dfb23dcd47f6da635a363252e5e7e05fface79f4f259beb4b2fda594447ae6a7cd9046dbdf95af40fc1175d46834caa9a3917f8b0f7fed4732d0d30cdaafbc561fd3664abfb275251b03b30ed233eb18fd0acb561feb6ce53403e9b31fb5dc919d4ce964a24c052ece357cefa5ded715937bbb23111486914bba1c44e4e487293f5484c1731170990a222a39393faeed98f6c91946ee19512e5351d4c5edfae7f6c75ca6a22807b7b5192d4ae50b6132e7a80654e5d7976a158e6b9b17b3d765612dceb58936bf5185a9fd7f7d5fd6659ba747b342e51be38604c88a1fa25c0efae1090fe172d00f46ee09a89ca08bcb4127d0a2df53703908c7c9c5589bd1c4a8fe18491ba33a851056cbb2ea97eab3544b73b930d6f7b8d6b7b1d88e324ba9446f5c7919b738f8a9cb95efaded599665591df6cc2cdaf336c4d4bfe580d9b105c1611bb2430f3ed8348e73ede244ed0bf9baf51b16bf84d0104208a7c03431bcbbe345a9f57cad8fd1b29e6ed25adb9cd29adb7bebc586fdbca93b149836450ba3f2e53939f735157e4d0a951d273675027d52a1735a76a40175c9ca6b9b2f71a0cd9b6cfee3cfe34b9c47b31dbd6c57472b735a3fa7c6f3bae6949a0c7ea9f51fd611ffb5873dfa34fa395cdff09b25d336f8d9b6f29260ecd86a5aea4eaad52be7b1ea77126a6b6df611c5e8d6b7a538d7c54c27712e4689da67353ae9cb595810181cc535e75cd4a6ed9d22d4ce7f60c0ae0cb2b03c3f337d94459bb1a87d42e755f46d1cd5b6eb9c1bdfc5b9f8496cb020260ceb6cda77521b064775ff38173b0efacfdb78802beef2cde1a9dec9eccfce92187ba777781c05513e6def38a72da93cdd47e885c51d2faaf49f1a8f702fd547b41237fed531b8f1ada601d73b7248f31628601a19153eb33001a116ea7b08df0b3149a3276555cb36977fa96a396dce49d26898a49f73e2d034a2ea4fb228a575fba1fe0a89549f6ffd2cabb63e69abdb68a4fd5f5fb52ba318bd2c3a9160ec92d595d133ff685bd9de39ebe94bb158eebd586fd90846ed62e6935cb8161aaca771d4ca5bcfb97c8ba3fc2deb71384a6a60acb06c3fb07c696585a5c4f2a3110bcbaf6c24cbb2b2c2c2e262d91c58c8477e7cf321776194507eb4ac8c730f861554ffbed3c6c0d0cc26b5e2206488f7f0deece057e78890ae7c93a9a342854f04f0ca3727f7b0a7ff9ec6a2d6654f16dd38ceb937af50f99f36f3cf5a943ea2c38f1afcf786a8a8391f0c8e8af383384abe23f56acb8aa09c231042284685efbde7f00c8c5d227c6cfb01fb8c197bceb08f11c39eb7b68cd9fe89b1a3e645e5cbc3c3c313797ac5c3c3d3ab15d0921f0cf67d5adb965bfff0b8261f08be182ddb403fcec1ae7fe6ab4f6a33dd403f2fd52af82d2d0c517dbf7222341f7e6be1a86841ea6c6a2a57beead5ebea3dcd847370e654fa7e2de81c43b9d1c217ead5921a5f720ead5b0ec23a46383512919c10846324c6071d4218fdc518638c11c6f831c618638c1fb550e14718391e7a9409d5c53166005fa032156320b94ce56233a33d3c957d10afca463fa8167c6c5a96659fc8a85cd85fda8c5bda8cd518d6dacc35733dbddef5b0b7361c840cd1827851fbe9f3957f6933d65bd6b3de48a3799f43fffcd7f329106be3803643bbc6d4388a6b9e25f362b02b8b8989994a1072bbf9434cd7b2e6b4ec133aafca2c5bcfe5a85d70d1859e39fdd6da522743180e8e6221d42ea6fb5ef8dd636ef0bda84330a671ae2a30ad8adad59b61520a153690a6857afdc36a8b37865d11424831eca214db2cdb6d96fccc9214baf0c31d3891c156d6f13e72b1c9c0173ad00f18f6bdc16e53c36e26d4251d63eca2c27f1036675d741ad01b3e08e10c20841062e14230cc08c23aa07d424948fd98395a88614d5fea0110c6e0f02317f53de7700e6a59a89c0e465bb06a51ce39fa75cbe11c85792ff4e9c52ccbb22cebdd6ad197711c7ca01fc451d6d317e2287ffa3b384a7e0e2a3038382efd36d2f1944be9cb584fadef28b5a8451f260787e35dac4dbb42cd9ca3ffbebea6855a2dc5aeebca56b61f569ec5b27260d96c6e542ba3c7b095b73692b5bed69779d6465aa95bf62b1b69ebe8cdae7fe72ecc762ef7f21110eaf3d73b930518d325d413333fe7bcbd7077f776772d307694dfee6efbde63776f6623524ade6ef400c7f77b13bb6b80b14b479bc739e83d50c84bc9876630857ec485d076b027eabc972779a214352e8940302eb9ef6104ba2ffe385781bf7047f240c679df49f71d471d711437dd814d628082412953763a0e1a62c975db833b0f18fb833ee5f6ed1ba49373a5b416060911e5b6b38f70d03e0309bb601c1f7ace7ddf5dd405515194a12750869cac9600adee8b028a18903414ce44f3f073e5cc396865dc78e283b677b23672fd85604cfd5c1320804c54a8dcaee5ba09b066e626d2551e132a3e563021732730d84383bb3b8dbbbbc3e0ceccdf7fe3ed464066a6ccccccccccccccccccec128899fbd99fdd2dbb07b9f1db7aaed0769665d196dc4364bfe23233101804f40f27b73f4aa7c8f2d89f7eb03cf62c961fb3a7686d60d58acdc9a9d747f83134a44d48067f042184356ea26b47e8892e6d04d55100fc7bab003c8eef586828c614808d3e0036eb716c36feb4d57817b6176e6c276822612fe301d8587563e7a57c782faf777860a4e5fe7b077b1efad7df603d668bd8224a7e606fd91317b99eda13ff561f7c37e402606018b0006961606ed0abf41dafaa857d4b8ae5c264bc617372e8dbf81ceb6b5c97c42cfdeb7fd0f93636ecac61e18d4a494dfd166a3dcbf52bd5e6e4606f7dcee873b2cfb9fec8fb6ba3016269ef491bbfa782792f8fa777606edc44c79c502271384754634783bc148e7f3e30dd0380efea0bdf31d1e9064371e101b0618f63d3feb4b5fc0b5b8dbf417a17ea9b56beb4b1fce8651c001bab706cac3a6dac7a6163950b1bab6e9836566130ef3dcc8bf6db9a6046cfaaf7312f75623b7aed335b44c98fd16b9a3d31ab36a69bed2a941ad36780753c96172e5fb7634969a05f5e0658c78b1608eb107a292536bc54a68d7838f90d4f0cd5e8e46f03ab4c3627a7e5b1cfa9f15a7442edef3fb9adc96cb43ff8dad894d4941eebac9a4c0d01d7b9cf643ad564f686270606b3c6b096c7b41aafc50b35223efaca87da8c3fd46ab2df01e4bd20d9dac7b917036369178675bc8fa71ab0cffe06ed6d3c6b35a37f406c643534574dce8b3cd59c7cf4d92bf1b7e1e7f6c78dcfe8dff81b55dce0a52f357a4a5fdb8ad878edb1ad8892f945b2c7fedae8969d6a30fde87f987e64b2f4a3fd31fa1bd6c6c68f2cbf971ab2c7fe4766b1eca7fd61c3f27b91962df66e8d4dfb96ed54b239392c9f533f67f4d9e7ac7c0ee973b4c79e55a3dfb105792fefb56d876d65ab3a2ad2c6aad1c62a20a51beaa420ac09ad0477f78e6e639c7bafaf783d86602111a28c504688041a5ead566c84989899ad7ce52ba771e668de7bbf62e98497a2b4d615643a6a1c001c11948227147039a888a2cb7239a8882ba441743152e6a87983bc977e2932ef8581b41a56824043078b9c25470ca18216e6bd340a2e8c91db9988b81d8782dbc50c713b5ee9dcce85b8411c816787094553e0c114aa204060850b564350b822491154fdff52374f8c3144182f587284243aaa0e306101175328e184890c544a48020b413899228612a6a866825a1046195e00410a3d50f50779a91b248400021333b230c51164a89ae8caf80b1c66525a25f167fa61313e77203cc5a3e10b7cd741d52c95cff3a4c993698459c5ac428221c19846985504f94461452a675a2552fed6f18798aefc28a3935aab44210abc49a1c21c253c74f4c91bb59dcb5fc689e1e4a3def75b57029cdb03bd2ef76d5d9077a4856862506b789a87260c7b9a21be8cb673ac0f3438e7cf031d155f7bff5ee2a899b5131bcbda7ce358efaf652e61b46ce3748e731dc5920672aee5625bd747ae7f331428cfc1d098cb2fffbeae3ecdf0beffd9d30c37076877c0b48d81f4a2760ca509100e0cd9a1871cafbbb1b620f259760ee0200448120ce59fe3626e47eff502ea3ba094d209e7a43bd862ca69b90acdacadc55f9eb4d856e7deb4b46b42ed7f1d85f0c2c7e08493d2f09df6c9f73ff9f01caecb732be84b09e79cb693605cd3a51286978febe13bbce49452091753f3217d90a08377422a58d5872b2f0c8c16ed82d2742dca90520a347d50b33706466a267a90f0e848d9466c4ec743405e18edc4b9166a2738ce9d3ac7c8a979bac739ee87b7743cf442cd0f20fd3ebe08a343e15cf79f5c4e315704f0e610639cebf8bec5e8eefc317a649b43f4ad4a6d28c4b99641158a9d65f1822447ecc474373cc1ec78f3b2a8cbbd360692b1d15a96f2425c70fc805105ee05b5a357c850ed1e90e9015ddfa13cb7eb1d9f2447ec40a0b98ae941e3a40c1d6652068eeb9038aea776312f0515263ef70510e7b81c32c8352df8e0f3014a2d9bd9c3aee94391e95a5bc75d7431f7b93ff7e74e51fdedaecdd027bfa7fac3e983dab54efcc844f7b48fa38afc7d3a8973d3768f7426ba8bd6419282eadfb5ef5c263099629cf36e9b2bdf54860987f770ae599bd941a909476acead47cc4c426de195d043823da5105a6d3be85af6ef5f66f9b19859efb2e616f4faf7d7cfcb32d6adcd58d2ca788b4804b6c968c90c484686adb76cc73b38677d0f9a0c303837690c3e38d78dd54cfa43209d91c66921431cf7da3a9e4269ad26d3734e06069a8c2173cc69867e1d4c3707f8da0cf4af3be69b1b0a62d551effa3f08b519f82cad98adf5ebd58410ad5d0f17da600fc3a89dbd734e54f99de92fa5594ae8629b8bbff85f9be9bdbc135552e115cd7ba1d90ba2a6f3e1f643c9a701a3fa408373fefa87986e7777cb0dc7edffff775466bdf56d41ea3d400954a95245466ab1e10f31cd3484b0ad2988faff3f8120a560601e0c6a4b11f2dec32fea09fecd0d22444adfb7992e03f9472b031d3e18542ad345ed7c87bee048d48ebafbeb89649060863ddc4ccfe6f6f5119651fbbe185a9cdbe84b3a217df562d7fbb74049e963b4e99496c22a60f6d6d6b95ceb3d9bfb6c673d7d8cbef7665f6f5e7dad8dbbd996c37bd8b553fab45aef268ba9fce6a80f01dc39bf1bebd804d64f544ff46f2eb55df31391e4ba70398808a07b9a81bef69abdb998b603fcf83ac08f74c3fa75377dedbdb669f63291ae22035feda1ed64e09bc310f8f4e353ab037cf9e8633293df03bccc3ae4c72d87fef853ae0ba25c6e2be3333173d4e33722d2552e9d8f5d18ccaeae72d9515d094ce038a77ebe1dcd88f4bd6cffb5947558ac439a9c6b9bf53c018675e6391e53d6d1ef4f93a1b518babbbbbb5ff77bdd70748a215eb60d84bf5f8b0196767d777df76eb7edb4775f18fda05a98a5cd8ca8656ded160fa4ec7aecea4bcab07b6dda531eb22752029c3bd22e4ca3e1e66acf3a5801567ff71e5eaacdcc97435aaec76f7fea37a39650a0c0c953b8753d2e5cc0ed97d277dbedd63a6baceb973a53ddfad65aabede0d38d6f0b7cf9adc5007fbe879d0b437adcf7bae1832aa095cc8bf105bd78a333d5d84c9b8d0debe0bb300afbabd45769ba609eb5b49d0f5702390fd1aa7b8a5888880f577e5782db44e695b6bbb9914a2a65dc78c54c1eb0801bbf7be14a4f7aedb1920b377eb772e3c79f5fb29d006ad0fb58ec8d37d96a3b4a6d58e69791666b5893e9da8894e0d226d297ce1c3d84bb70ca63f14b0821f54a8b3edb4efefcb77526ea9c942f21f3736fa189d0b2e33f96dd100ec1cc90991942c8ccec5586eccdf7de7bb393cfdf6570423b24f3234c1ac0c81fd909b403f0c117fd6df4f27bb3638c0f4be2c5d60117fd1e6794c6b9f9f32f08250c3b601e9435a839382e36515dfe210e1317a6d752b9a8f4bdcc341fcfc7082c4a2d1d706165182d82f97bc4c464afc247d3fe3b6060943e3507c745199354979713e2304dfa5ab6b032fab8fb5fcb3c19207a5953d27984893e21cc000b4a54ed72d00cb45852afcb413360c20c9a4111a49452724d78685049978366f09364063e979b418f4b511718f376d9dddddf7bf0ddddadbb3f771f82999905b5df5dce34a8f738d1504771212e8802c70a547882136589db7551135fdcce71ae5fee46ae1fb9ee3cd7a144f1739d1a815286185950b10523b812b7eb950c746ed742f376fd44a87ddcdd081fb9fb8d0eb018e308549a28a18327f0dcae79622085db754f23e9778328c0a00931c4206282ca5970bb981e1c5c8c3e274ed400ca921f18a1c51554be82eb5fcdb8ee9f0427386ee772a10c8cb8500652342144134d6086c001eef5539bb9aec9b4c5b566ac1ed005c26846ed4ca686fd522693500c5c70e9bfa3e09b9c7b1c7f3bd31477fe7cd8675ce9402fe5433d40dc03dc6825a99d0b0d713838382700c2c151f5c38d3e1f1ac27d0f1db5438a0c82e17cc885bc8768d4035a9bc640da4d248329129e01848691d11615064d5cf73fd12a4730f50b190c8e78c114d7df850aabb8a0469b9ab0c58c53282491c5cf124de0000b5770159c71068b0d27b80089eb5fa37b70707050f03d66b88115647c818225b650861f5961dea2cd78499b794d001c4bb89dcb036e9763478f26c0dbb1139ea12a6810a444126410b4841849825a50258809265cf82cda0c4c83886b25013c3ab8feb506e56c85a12ba0c08c1c40c104553c89349e209da4cdf8ed5a76dc0e87042e0371217c5a955cf8a6154cb9f03f053f173ee713c402312efc91360363380eda02074d68c11956109de1483c915a1295a10aaaa08a1ed73ffb41054a7040fa03d9a80b061dc9c2194798b85009174634c828c0853fa930a92d948413d73fc213249173ed854169a860f4acb8febe821542082144c2085a50e1a20823644851413fe2c20925162a133cae532602000d4cb59aa88f1126ab288ca002878a24a85859e1821613101526394c8c5453d011622c11d413e453839028c2082174218429fec2b79a88e2e5202442b7ab7f6d8189ba723988082c7e88e00249cd2e071131061115bb1c64c404b7fb26f5c6e52023468850e9e520234d2c514797838cd8a006555e0e3222850ac92ac84818414d9831c6113c97838ed0b9ddf573fb735c0edad1e282a7d951131743a10c75110ca720cf8696c6d638d72b302c8173a713e75ac8ce95735d0220ae7c2a57be3f5b447305430b7482aa3fc7e76869168428fe322404b7dd84729acf452f35abe097fe256071fbe71476bac8717a67ae58071570a845fe000a50c89394169135a549b7ffeab99278aa7d762c2a8ee22023a6dc7eee7064aaee2f9edb3b545dbd9d359d26490d1440fabba5b8fd3d45ffa0eb255d064472fb1b4ae1f63472bb9b459845a0a15b8b55173c65c7ed789563e4c8ce35e2768dc4b2e68a681a71d4dc993c7367eecc9dc93377a6cfdc993f52903852070e0d217114f48150f8401f1f282a900f142a8379f814eaa9ff46d57faaa1dd457473bb44e8bdf4f75c75cfd5cf220ea8bba5ccd57b6938f403e6e13ea73dc928576e26d314cc23be0e5c85abc35302096e4ff3f9ceed5d5e0ae621371dde5ce1dcfee9a429301de73eab83fc0bad0ed29efa4acb51aefcf9d2eac051eefcf9cf9e5e941b378e72e196c339ee04b3a3a930b97e8ae911734f3230381784d55c51e05d185a700101000718f37b155cd664e82c307eeed7b00acc5f52a1be894d8e6a7ba2b7eb7b45350139904379a90b2082c2c481de8bbf43e117c7bef02c38f5fcc25fe59671bd0ad761b2f0d884430aa99b08a500ca75dfd1a5a08c2282b8113e87e228ef9e91ebefa7da9282eb45dccea35c3651005e235260ea5bf817d7e5330ff82b2f355f4f7aa36a295def54d6d1d049a5f42d4be7d309bb1ede7d7f7a96df0bbf1d1a54ebcded5b845533c338c6bc53dfe5f7a88cc39dea9a8fbed2c63dbd759fe98897511e22ca83e75bdd4c4aa8ddcd650821846864c19f3c5825152a74984804d06c32b71ebecdcb03a47f23e5536b33b2a93fed896f689d94c65832f2e9df30dfb245587e3eb5b3c87c29b7e77868e5033cc44320782939eb0a8965f4e33d17de54e36d0cbdb0c97761233d7d1b1bf635b6eb5b36ed4b5bf6328ec5bc54fbc400050152f3010fc23adeaf6c3939d6cbcfa14f7a686be69c2cf6e43fe44febe5bbfd41faf9d3dad027cd2beacac6aa0fbc0fc23ce67d2330b0b0d3a321e03a3fe6cb1aed0ff9246ba3d5e4689f617f594fe74b28c487d6691e0bd382c8c40cc5003dd78a5842bbf39d95e3741127a5d85ebd602975a1c59a36eb6f6cd7dbd85a4c2bd32ac52aa1a113cd6ce8f014f54eaf1aa87f22606554d4d1931e0a0f0b46c5277de99f15ba88e5bb5ec27c8c267b56bdbfe1facc16c92e7be222acbaacee55af6c54d1ab5eb511ba8a5e8d2c8c9f064fc5bc548d95e7a771547cd2953dc31a9b121b5865c3e6e4582def1a0ff0e5d7d85815e344267ba2b606cbec09da530dd663ffc3826fa3d91f974d8b056269decbeb9f475571abccf99736e6167e71c771fdd5582fe35d05f3e09bfd9bc27daf772e9dee19cd263c9d6e72570effb98aa6e6a52eecdf0b79298df48f8764ab84a014797dd2b3365393337a2d7b8c86161a22729ceed7ab1a9a5eadbc477acb0f96e31c7fd740bdc3f20ab5fb27dcaefae0a8530cefde7e1b9cd78f8a7fa2ce05e1ba0c940611d7df6b52dfd430b7a10a4c9786761cfafd7d3b21dac107209a9f6a7a96efb85217733117b2bfb1d5f895cdc6b36c2758da4ef0da4e10db4e3062342fd53fef698476b042827494417d9787f744858fbd276ac7bd132122e2016e4458c77befc5408d875324e2cf833f7c2236b02a27a7c6b77c8e8dcfdeed29da9aebbd8b3db9929a95b7feb5b4fc8daa83b9afde97ca80e61595c8fb1d9807cf4b593d449be03efa68601efeef29c029221abf18b4eb76072c6acb67cfac63fef5a5a7369ee56dacafc1626d58de0686dd78e89cdb2891f647664f30b3454acff236355a6c1125f28b5c6f3ddd68769d6029b2d813b47cf0196d6f87eadceb984868e546fa480a9c10421c0f21840fb998ec4f9b8d7f616b79d3768a2e6ca7b8b29de28dadae4008219c10420861e95905b167f91bb22fd922d667cf628b28f9617191126f148310460857268410c209574a315766b194ac8fd1c6639fd3f2592c95a6654b251b994dcb67d7a6c41fcbb69394f6e58d4ac2ec4872e7851f6488a76c0071500e1227390f8a1dc01d251c0444122e94414020b9f0fb083cd5507aec7f941eb3364ae45fd6a6c697ec294afbc3faccdab0bc65d5acbc8dad88922235ecc9bff4d967dfb21561b1a71a4a9f7da7eca834eef564412a11cd080000005314002020100c078482b16838202aabec0314800b839a4476541b0ab42489611885943106192004000644446646830600c067bf96ca0d8fc028f62106b75abd41c8c2bb7e2135920f94444112d4e2a24732143dc68de862647a9a2679d64be33b9c010ba20180a31879de180212132f6c0a4484a43d5f14ad91590689fb9a84f64f5207698afadae0906b659c40154c6e7d827f605e3b95548af012ef981e6df2faf4da8a64fb27c73870cd56bf7d2230fd4f6644c4f52060310e910d951105268e55a5c1c3bd7306c94b0535343f2a5581038a1c4f07ba218cd387c1b47ed54e60b2d56c6da44a6a326cd1cdd2dbd8a0fec3632a6337d31acae91335d58e771aa47d6ca7ba8e7a199db1ac9d5b19477f90d80e53bf2c9a9cf78a9afdfd1f6376219a66725443aba75e76c72dd057a4c2aeef7a9aed43a56a3891f8ee1401e611c8b66d6376e124f198abf34fe9d1d9dfd43889aa8bb5913be145e918aacf1c6b41ad40d1975635d51da4cf033ad158b287d5f254521d864fab99b74c0cb4eab7245759e1047867b19ad82a19693abd08f0b4b7e169745e0ee2348dbbb8898dfe57df890be4165f2dbf44271e085bc44b446e2aa07ea45d349b9aa1ddba2342c45bac51ad8312e596fdffabf8c38596414570435dfb0975dba80f731eea6fd3e2372a4e5271aacc6a167081fec8bb5543fae01c947811c7c0ce818f5e8b8dc1ca1c13b201645d47f5b126da07ea7386150e061e7b557ed3ffdd21f8e02e9223b758bf3ed6006cbdf15ebe1a65aff21086161cdf432ccf162ab2f32065614a9cc865ecc8fa75e1e24cb5f97fd6a3540a23ff8f335950427af81a7e1725087b0e42c3b79f0ddd2b3916f29240c222f4a73fa4130098d31771ecc9f19474e2597b1d045237f5902f26ecd945c56b988521753359b8e926ae9fc16cbb46d277799a5b799b75830b9b399dd0cfcb1c6380728856a65470fccad2607bdbbd527a7addd65148751788cbc1e28e5f82480e611c880cd80a589a939562a8323861b31a49b2aa49b0192255ff352f262c932da7aeeda9c93aa79deb30804d486dfa4eeade47a79f72750327d265106eb2b33b2c8f7224f4801cf958f5cfc233ad6872ff70d3c80cdeb0d4d874b9ea5f5b02340b186f7bf2b2aa10052b4740eed2762c4513f668c191cb08848b58398878b591f2e86a566304ec0009b93b6d7acec721665bbb3696a8f8bd456b605bea5ea4922a6ce21ac01441fcb800fdc4c72b9251074234e21f097215cdf46ebb798a601ab34d03393da407134789c0b96a05dd449c20335aa95561f567832c3433264293ff7f7a06693d0c42a8b595d2eb91474b93fedcdcb60c8dcbc85994e4d1e1e6cc45f2e81c8e1d4b63944d619d940f8f73ac4d3a59a82727b2ff9c212859de58eb08cd22d18313d830d638b7a7b594dc98917a370ad4756c51a1b75bd28e8e571ad2739e01bf252f98bb44f37dbcd99e0b781455f2420d7e06adf08e54e51a1af6000e78bebe5a837f2dba99878c4e856eab6e13a84d2adfbc6a8932eefa9590dd429170b91047ec07e052e2a6fabd1fb8b225d35b94f6df6bb6299ab580a94c77fe2a6daf9abe41a89dcebd04c6e42b61e0b7c7499ae68ca444e0f6ef5651ff540bc040ce16142586a933c59469bf92bf87176bb7bdefadc39a4b7d7afc60277ffa5a26087f68e00b10947dfa3178a8b52a7507c8c8e4153e16a5c42d68236d71adaf3ee6244251ead1027a236d210dc576b0b42a271c22a7f25f45aa5f29022e5f7aad9741861c75bdb8102573a5f1d91c5feb625793c0963f8bd04ca2d0c1698a90d75b115aec9fef601e8768e5b33b5a13e6635e1db0e0da26d960330d91b930df6acd3d7569f4b2e105e9b7f7be2472f408ab35e9689b3e5f15305acff0da8cd8e7b4b313c7fc26968ddf66c42fa4c9bad99091654944fa15c1dd17973926287d8cf65cc9f13c77377a3ac06077e0288c57cfdc4eef433d21196b28ed8a1a6e671d7078e67c2fe58933eb691c04c2ed65e0446ffff614328797ba6daa31222dc7d29e33f6f4169a588a142b64d4d6b3db23c2eaf64f3c05502e7e70d8b14cf3059d1b49404fa3d5909f0f61cbdda69697c95b15b34430dea981e7b06c7442020bbcdbb17353d14a30a323855b33d24917702df534ac997446ed794b5ce62769fc70aaa82af6ff614695f317990a0aa282a019e3913f98cae74144c6b5beaeb556b3d810cf85efec1302252aa2506f7069016cfbf99c8168b7533536aaff04ea1ee58357f7a979ebdfc0d0faa8f0d1b7d39548ad8607293c56cef25d4a3732f408fc968cf49d387149eb364528f7b7a2b81b437b4eb73b5ec3a3660f9c3d363dbfe3140c5e0d534857044aa30e4ebd35aac61d621a26d981c26e0225f9531fda14970907d121e04be3f43e481b757d1f67206ff8c5b9152cbd2d508a95b09ee4e854e566ae152a952213d0671775f26624556e65bf1eab1a6f3bcb841cb43c7d227a409e678c50fc67dc8632bf1f3f58f70c62be74d71b0c3a8082cada92bb9cb5c081bd8c9cf1af81882855b2760e05552b0e3e70ae10908462c025e07227aaf07a8878d237903c968bc4cea3d2895233b9c7877806d0af5dcf1c771f7ae499933bb0f24597f867458c21734238fb73f0b7d5045162022feeb98682a9aeaabe7a2b93145bb235ddf037883d2acbd7975e29ab30e21d8fbacd79d417f0f9cc2b397ef98b6a838e69bb07f6853ec67150fa2f376963f74c6aa073f2957aa784f1f9e6d0986b5e18717f84e5ff0074d2967f8b44196e0587459fd0ce73d944feb30b540624762813337de8c1d34edbd9b875f01ea193b0c9f4a1586823f6b2cefb6d2e3e876f22576c110f7cd409940f0b8c61c0bd19161ec9002f97ee9a92721242a77a4327970e2bcbaf9e7465abb488fa7b9f95c7baff979fc9d0d8c31475454d14e4e417954897e45019be3f3baa3d0a4c72bb6f3b5251162f21fde19c1f2f03d066982798f65f575d61832e4eebde16a5d011019e17cdfd18f23d933ce57afcf0c9d83250e7a216791358a7ff12600ab307d0d1d1edc1232e66c4f9d28c443b065bded5792f4a7cc3e8d0c5a278733ccd9348273483d2077b89bbe8c6a364c643fbb32c5766a46b5e1679c1ec15d153d51d4f9d022c5eeea5a18d44b8bd912e46cb90e5676fc360585157972b6a249e88080cbeadcb8e3a5b44a3b32d468a81ed9c6bc72416878b767bcd7dbf9d83290de478d68b2864e160955a1d83cf6ad122aeb2fab7d25a172092b53632d5b73a92fa111e26d6bfb78ae2689fd8b37cd11f34aa8292adf6429832891bf4b66b2ea97839b16ebd3855c728dbfa3be58b03f94dc6f886919205d6d011a331e1cc9fc79a61176c04a6b65c8310e4027109357516e55ef9f40134a0c1f549df5ccc3b46fbf9610c433d394bbf3403fd40236bc4ed0b21011b39c539546a534b6dc1b3def9833b1e1ee4a296ba5e61bc19eda216be94564ee1288fafa8b68d065b5f12f1e16e13f79c629b9419cc94c0ae06421974957695e84d198449a7c53ee46b9f5ec1bc53f1983742937f5a42226962b7da3da743b97e67df001e63cc6f2dba4c07e1bc18b6ed58cee853bb842e5a62ede1810a66330fe21323c99c365ce737fee1b21cffb8e8e6ac8d7f94ea9d39e842c064fc03a35dcf447bad5c64bed4ae2fa08209461c7a1f6095fb5551f8d23acb9c02cec4ad567fb92fd6ad14d706dd338ec6852feb8d185866641eb0f4fc1147b454a8ecd437af221898d36ae146ef35e2bd708f5c4a1ca60e10d7ad56358d01cad9c891c191fbe7ba4eda2df0d4f4a0ed9e43332a4bfc2dc6e7792126b7a6075fe6261cfd328794a8c58f1303f596cf880854998e3a7e108192465d29ae69c7ef346b9b0515243c1b83e7eb1a675967d5b0320f08e9bf7f62e8c1df4121c7ea51d054e952807f482e828b4d66c46398c6c2df300e975926ffa88f4ef480e3a79cf584501d64fb256569cd86f278c51c8b3a74db140ebcc02c94943d2ea45d2dadfde01716a5cc506eef71fff0f79127a5ad46666ba188074d100335ff0d2a515a9295b2261af82ee06e82d0cd5900c1b114c708b8a5060bd74b2555a3fbbc7a72aec5f203011f540d3c108ca5d33da29f2f2da3595be87c671e8f841c8f2e33906d503e66cc7b0f1d3eab0157804adadce15703aa68b08161427b4ac3a7cc60dca6ae940c1b5686ce0e76435ec3f227379e846d2e2106421745d979f751804c301c67f64f90106942694c94f37498630cbc464045dbc0e282ab16fc0f99345ad043b668651008605f1c6afe399a1b8d5fd2ffb7d2823b7d6d2e787262fca0b4112645ad9c0eedeceb90ee20f20538d4611fe38b5fb7976724c4806470c7ca3afa7ca0a5456390ff3187770064e3122806759f4ff8a583e22cc40a116d7d6bf8758a6cd37400145526e569bc1139862c46eb73df4c5f8ed0fb02350dbf4013bf922fbea02b9ea8e2253486fef010dec958f74c654b7308371ec4a8f6968e268b9a0e61ee59350c28cc146a4783c85052e240fa4c4065efd24362da28c6e252aac4594294299f7baa64bbce899d34d35809bc5063b7587bf84d5287f4fbf14b37bd5f3a101844930c10890edbcd8137358d55ac8046b9f0e20b4aa50548d8350567c877fc2eeb2222da9a32f8eb695aa85b361a4b89d68aab764e8f8483104197214eb4dc1ca2238b1af7c58c688d2fba87ffd4ae23632061f93763b556206b229b32ddabbfa8ef863ce14690871d3d582b63ae29047d7bbe6eb7ef3d8eb18307919ff92b7003f26c4150fd21b5d6020fb062f7430f4a0f400b2077f9bfc49727ea8ce16a20f58261f9516e9dbb9cc8550975dff56663f8b373edd0bf64f24c8b46ca150f2691b322ab6df403f22690f4b9dab01ffb28a5d7e790e797ef2424c0edf17e14935476316e2482332e3308a193cdb752bf7b650ec640fcddd67cc6d127a78cd1cc40806dc51654d2a3fb9286fd22607987a9652662f3556cc8c8c6418da8ca46a1ba550708c056f3576839d4262a1b362d266161d7e8250a254491e40c32e0c53988aee903f67493d36a7682649dd3281a0b40666a38a91a28f53e2ec4b9c6e7e2fce0913768af4c2673b1042a69f402b26200c04e4769c7bc850a72d8e2c846be9c27bf4c8763f8a315bf6a7bfa50fa828aed59410c60e830e304f93139fad88500515fcfa350795a079d5137c980cecc8671d2a020185292a387a42e0cab016b6c90cc80c2e659435722154ee491225546984b52280e3da23ef945c90397b58761c52fb8005020f9001ae13af42310b8d72cb631c0508bc8b0f8e33859bd8014e8b5636f28faa12d44c4ca13e0ffa434b049d176c31abf06a677f0e13f89c754377c2c7fd2fb59eb8d291be9a2dde451883fd06c7b2730754164f2d387dae65dd26f2bc0db3eb978d88501409f1d8db104ce4039f343e0f681c460bbd57774b4a84782e0dc1545a543e1f1abbb7df4fa07ca215181c17fc73c28c1944e1f5a38c5072b7293f7ad1258163fa0f76284dfa9a4d725d94ff3d0ccdc1cef842d4b6abf929a0f5d9e4924b4f830bf7060c1e2b679d87ab1a7f03b5c9f5e03f28de95231cdda7725da220bc5ae8110a262481d80ec65402bd92839de81924dc57da8e28734875af126bb30e23d7c91017a41cf16ce40973734cba92f5d3b2bb6adbad7cd4bf0b8ee3a3076a6af58f4331bb6190926c1d6c35cae34f176c5e13944784889b3de0573056d0a07ce0384c349cddb13c4f1055bc71389f9bf73fc23c0c38264c36cef4cfd8d9ba8dd5bc2ff7ed08762e6bc3c07e2622a74bc46cf1326a813b8a340444dd7868a60d5ca0ce9461d2605941b3a0be6657e6341f422f2eed4759507ec183550db4128af60078db358b014f3eb82ca9719404d8d9ccab3a9e1b11e6ffee48dbbaf02ef0e37060f940a8603fe4c2d6410082bea88fce542ee48fd54f862e3037568c0988df853ba9070b39c5f8bca6f52fa52b584fbf329f6ed9da615ed98c3ddbe5e5fa4d6a7fe568616f296d1c6c50a8bd047e259889ffe1584f5738897606dc8c7b31b6b06d40e808374f007ff2c0052b85a9b077f3d8d322fd2e16e2ed88862fcff60fa4139fce26f920774d2346783e661e8f4296f929af379f829ec61f2f18b0d565f5bc3bdbabe816f14f25bd364bef471ee969f1e0b96948fba831abb7a7eba0d7c9d0e68430b1a2a4c69e59b45a9729e3afcd6e6e22db42a0cdba0b60837c09f98fdd12ca9bb3aaea0e860a0ea63d567cded198a4a13626ca213c2d24cd2c9c9bf8ca8a38940162db0776de0679fe3a7896d978e331b225a5af71d49bf0372364e94bcbc985fccdfd2d7a8f568e053338252ae0a334e058c51fa2ed9278492aba0c21dadfe327cb41079d6b84571980947858c611024f6550d8a683b25bc134b360a4458337e8f297221bfdabc6304e46aeaed0c824b2cb8481f666d4da99b9f6633722f1b94bf2816d96469a77a1c0b37d3a6a49674e9ff8999cf215d2f8287fac9b738f922671f1104fe4d72b1af831153d9fd40c7b7979acbb8422299df2d3d66ae37d6af0a455e477c50d694b910c25a42004b1750980820d2a1708b6942e4776792d4960ce286620e00dd071d7de9684119c1bc54e94c0c16387aee3e9d8b6fb7e0d43d59fd9ecd34c57fae76a6a81a8f6ef2114d451b336c5d95d61625828a8001c47a78852d755ce11fdce1f1e2576dbf178d191382aea153ac688866e4f352dc3cccda6dbcd529955117fb2418c6d98419cedec635415ce8cdc5a8d7590be4e64a10661b04e812021e40858dbdab0e75b5e5b660d1198ccdbc2c71313feb80e527a13f4df68f31a8642df00a9d8212b358683239b52106658a7d45111f84196ee6cff3986513f53480505d8fa6e825f06be3f6a04198e1996ef57ce44b09305b4555a23a72bc44934be9e6dd5472f7069a60e018a0cf328c2c795d70725af0ea66f88669941cfd3dcc32f870082dca05314a16e46815d67021a40051c993108efb61220ffc12679b81bc561c4dccde80f37576d664976f38533f85c478cabf1c78837c2db25656c9d70763896a8957245aa47ccdbbb699c940e4619d3270137eee9725383f8beeb9c4d66cfa43204c2416ec01ad0c872d7151011a3586d1a71823eb2d9a2be55fe0864a9a9968304b374b8f8b840e879d4fa8793611b676e571def642039145151d10da627f81aed3436cab31881f2df4b54ff6eb99078c919c86a884d16ec09351b4b9cf5fa655f9a719ceb2d7599ae86ec7d92dd4f9cc16dcb8f01828a6fa4554c4637e4282d1b907869a7ea217637ab6311517575efd29a3234784938858aeb485142641854fec5b6c4ff052c434eee1ef20d619ac84accb58fd3ad1ee7a6542dd72fda55078a42b85673575e9f729aca8965a0ea0c0d79680727140046071bc9d6e185db356e3f0bc138106126c2583072092c699d282e39293671bbedc6a23b0d14b5de1f77a8b2c37af268afaf49d8081b096c00a3c6902c68a1e88bf0714de76d95fd2132618873749fa4524661bab66fd0d3e8c5ec6bd9f3c02a5c145070ddedeaf19f352f004bb645e629c46f30964ad64ceeb3b91e9201a98c9a49c90c29ed3cf2770c3a21ff2b4b4103e9dc7fccbf633d7281265d5187666cf03d4f3d2c0d485a5f85517080cbab200f43ecffd05890aa84200752bc576e85651751ab9360cd5bf4c78b15f3b8833edd314006235d9ad9beacd17787ed722857d15ea8da1a68fd8043359ad8a59f349a11f3daf3ea6f0b10bef95604f2edc28b04573245aad4ecf8cd38985189970fa59997ef344266024c7b83778c130ae598a69121d3d3eb14f9b30d48b177c4c87445141c904077c7e1b569c6c3542fbc6c20b7b0cb9272b464dfb9a368f48d560fee52fa50ff3858c85ed9e9c6ce99c34b1fc0accfa30ea81e5948061d9bdaf8ac0ae398e7dd8d68701e691badc7a0286251eb81bc4987a1b84db1a7352b34887de7935466559eb08f93251cad09b87e42f76022685ceda715f2ad02f67a07fa93ecbd7235ca95c416500847685c7b1e5acdcf684ad2d52b59bdbef31ed923019d5d5a2b6762cbfd2a929768dcd77f5be95213198e778ac2b797b1c46f064f7d675d57bc4d4fdcb9f1de4dc5fcce321b5a7c220069dd4bd798f42278fbf2f653015263bb689e5b926e5621ac2c503483764be3d5b38a87b576b6bffcfe2cdc46ef16c1305a2ccc84013bb733c66c965e4434e3bee5473f1dfa339f44eb72146e1cb113858e971e2ead2fc603a8bceaf19d0fd044553134f88cd55f5d7d77797d233afee60896b6c52fa488ac5ca2c8643e757f5d893f88468c2d5d645b0dc5bd58191cdd80e4fdd433da3b83f32163d0727bd08323f18263482f01292ea0b4b5f7bc7752090a5c22f20a24daca5e416dd61c32e0009cf2d0c9e0c8238440f9dcfac23f6b405aa229d72bccb2d106f234d84e9a36bbd119b4bd0f9b11ee6217a22c9977d855e147c2f7d0d20857d6a3a599d26292c1a4814ace7befbe27871ee65597025e6af88c51d9f2bfef69c451b2f41bf976f5ced329ed20b40d649fab4cabed41d2db254b4a5b4ac1a6f562befd5b7387b4821daffa3b35c53c6ff6f39f87550774f051be557bec4393bbd0f73bba4ae43b702c422b2a62642b8432e4dc56c972e68eb6f2554cba5780239a0eec73df013b13657e6e5e7bf15b725f4599bf742a2a313a9ecbdb4e96920d973c9eb58a1c2317ef013607c01e1c6be94c631e0929955f266d3cdffd9628297c012344f040e9f02fed933603d1aea737914f119ae258dc272f6b33a271df64d574e6b57e23c18c848d357a57dc9f9a44d40021f584554b1577a4db038662304cba7f7e7743f0c171670927726ea413d0ddcec9ebdd7c4403d8064ae485e28db5df7f4b0f63bded1b842170bf5d14acdc6d52e8209a2bd76f9cd64a16e713a0b657149df2771fa0ef46ae7e0885d618be86322e86a28ef0057c46dd455d6d6dccec233177a691eebcfba63ffac9aec6386b7fe553dc2b4a355cfe5586b4cfe3fb9936a9511825caaf9adf08b5a357c2cff0c81c20180fb29276049396e1a94c34db3667cc12d4cc36043bb47d9af15534d35035e96487dbc6224b18199f3d7291e830199ea75672d92e50bcfeccf3507ea28b8c1c091786821607d88a4f0c8a25a04fe9a17fd38e493f669ffed899cde0bf4c2b9a62b87e657612f0641e7a4d3e64bb2d19605885d918d5b2123660af27b3f42bcf54648b3522365285d8496a74ed245317025f67ddc7025d922fe835896acc177013f4455d42393126a917b77f4ca14d7532d02e6ee6df91f47f2267659fcd39ef22b8d17ec423fa223cb0af74f90b477538c42d6546a16ec40e68eecc2cd5378a7f7eacacbf2b1bc8cb8d1ac3584d3f5ebfe9bddf697e6bcf2875dc26aed932d230141bd195b4c1ff7fd96173ec9d888deaf6d0d4aaa4e3d67f5895ddd286d0dc827d7bd8062e975547a491cb81480754463b556a4c822e17f89493e1b1b98f0b4bd697715073fa66ec761f87dcd917c8151daa1058d4636cbac004221232f38811a361d977109c23b83e8a093153f9aa57d45ac96f58ea1ecf1a8195c7a0ac041ce69f054cb94b9fd44613a5ad6ec8bbc03e5efc1db44bd919342ef2544f5057eeb4e12f49388d8122f3851da158248f9426a6096e75000ac821d093fca397abdd3fbdf94265504b0627cd2dc1b699889811b7610f1c6793c46ab7a0976a83df870de5c299d032b021e3ca574aa3de35c54fad70e21c8874afd941316b6dd640e2f6d2966abf3814c711b4f7fd06b443432089d4e7fe5e410fa86e7bc852540fdc03ec27e08a2beaabbdd4ba0c0afa8b85e51243fbac447f949c9d2fc59e46b2cbd872f599550f68a3b8b27502713ae832654a7265a27275c274c50a72754872656474eb00e4fa00e265c474da84e4db44ec644c13aa9df88bf512b1c10f417e36c1bed83467cde483e6a9c0f1be9f346f1a1d13e6a948f1ad5878df78935f6fb74237d7cf9f503b9a387813cd393a6019d45ac4fd20b0ce6d790b3bcfc0a7c139d8f0cd3a450903f348975b6a1eb50e78cc2e9a3788ee2e7b1af707d0ab10f038773ab6039c0a38e02c6546e4e29fb268bf0d5152e65aef90c62f7488d7293d4eb940d8ad04417f8c8c12773561eefb89f727b2cfcdb3d736bcc10d53849be115424a2d223b6522e077fa3bc08c9f2335490127a294b165d1b7070988ac8f235dd4af61c9b10ab9b2479e91387ed03d7b3980abb4bd1360402d0aef14dff7410ac694a64e00e081817ff27c4334a0f6b0c8b13af93d9ef8d581f85e5d06e7405eca5ecb58235bc0d464b3b367effb7c9712af45271e694d542b21361d7333ad4045e2a996a25c2e9525ff5eaefe57cc812a8b8b3d8a5f3c55b9ebaf85ef6d3339d9132f099bcb92fe6a6aa37b05f7d9124ec756e276dd4a40f8b0f91c77e67e750622b0d74f9eb2ba53c5b914ce02beb758eb7b007ce2465528bcb00124c81748a5049a1df1544fa346ef95e1dec14ea0a764c36225261a78c3ef12edd831905e4ed96a4289f50e92f325f05727a1320428014786154c2a11c68001a11d18a01a9a6a159f967707a9469df7c99d29b8135856b12661156206e892dbfa31b0a1acf3cf4a226581760d4dc6849c9b1f14d9c9f737cc691fbd70656bd2244d22c2941b904f346c249a62ef253aaae416dc95ee8389a02307ff122b417b9b6988bfd0739563a6a00b9470b52fa4662cb749c7c30b438844b444ead13785ceed678b861a5080ec0effab6fe638f7e441a8571ad0a379ea363f8471e0d381d5c4fc164ac38e2397c16b55730bd02d664546bb76a2e3ad34e02c2dbf4a91549a4e9df4de22ec794a9b96f207ae3be387a7098b72d50f09f980186f49a3d798152c4122d823ef2f57b504255bb24c73ae8ff408bbc38dac9f3e36280d0ad90edea8abbabd3baee0a76c106b4cd7e6581f627f530d39d56a688a8d4ca2dcca07161b4005330805b0fe2b917e14b0c390bff05585ee2b5c1cd381c8283d4a789d89b1aeb055c02f0946d8a42842a01ed2035440f1c7af52b2cfd2d9314f4e8645acc85547ac9ab09192660acaa88f55308a204372a36e3a1dcb9269a71f08ccf85c45a4d3cf1cc64aedf9a007d64d0e6b7740e3ce190789703f612d4b19252c7464b9869c725bd9da5ca04d94c739b3fd014e8cb5ce3858498046ba06f8b4e81765892098a70b2d8fb295c229bb2e94126824d38f9007ad6f3abdd87a9c82558460d64c97189ecae89bb92450d3145e650b9ec21233548a7b1ccd265ece006030eeb457067c830b4d66e9d7044540874e5a4ea556d614b981414e2eb9fe94503fc604e6288f803900c1aea62da5c99d7a21f1256e96d64d06162f46dd0f381b70efc016867db775504f5811c674f2e9ec3110f909f03ab77f2ff5f6cee8b4c972469b0540ba00cc73cd016f39de5099e6516e289838a74b9440447e66575010bc74bd49224ef56bc54d3d43aeb05e55a8407cc18d2b0e5a1e0be19b6360e0cabcf465b1b36b98ae91409526a8c9bdcf482d03fedc362761595cc3ede80493b1f04651f32d9bdf2e6da83e616e7750845c67e8d2a085f41e020d831fa550b57c144f986bda2347dd4b5045f4b95dd2b7047acb7306cdc15a4c4c85abe864aca2a916bcb314032c96394514330561394d8fab2348bf83e40cb474d6b27305c948514754feb746dfd80eb1bfe4cf1d3213b35a5dfd23f61c2c4e421a757c53695e745c489f1e2addfc1e85684c0924d6c1b61efa97b5f1157c22bbde0cc3d4ce722a2e71266f9de3f6d9ac28da934895be24393609aace5f0083d29f6ab4dc29e22a0e584b6d212c225748ab20b541e5fb1899249ec25ce6d5837668104c7214721258e60fdae901370b9c0cc2c93006bd6a9c80be1e66323805139d09f5c513a9e28007654be3f46bf5cfe8a0607b82b8c483901d966b840f72c80b50dd51b595aebc4ade45597109c7e3403ab262306d0799176629b89976e5a1b2f987c37dd2b55cddc0516ee84f8f540f429c42c59aa39e21b12ca597a5946c0f1c18a9e608a531a052b59750882dcbe67884ac09c08992d1b15835a1871929317d79d9e64ec4a0ab449901025bf73c527b0bb03d17557e64cfe8926fe297352407f117b61d6c1a7be0a9eea88991aee65185f00c8a8987f1c4186544f34a391149549ac5ab97fea2da08cf709f43c31da7624a0281eae284092fb333c06374e3f03c0e80a048e2425fac0f548d044999c6672b29772027c6963ee31b98e767c7d2defc3704aaefbf7ba5dd91501291a8902f843af97744232d732b4c2b2f8beb18773267bf0fd11788bc0e4948dea3a3084a071bc0084ca4f47f7f00bc3211208c2a4fe3808ec5b466dedc22fabb800203272da17528ae82eb5cc834f8c6119eb8f2b885e6763fe30a6794554beff31ffaab6896dcabde4fdde8a90d22a58e9e745f722626f1123a0de5cfea75bf8de66055541268f7134a711a6c15e3f7b364e4ed14c167847cbd19c48f6acdf62273630b0b004525d018a6a127bf5df9b42af8694a73131869ed43121c659acdc02caf2baec9c4e638264518eb039ea1050959773932f349b8211cb810ef0b8cbe53809dd1d688c68b4cc49dc149cbe39c2a8f5af4da8f8201892c543905ec3b5f86a76de3fac4dae9a7da073faa09317d6e56021cb939788e06fea5a2ec981ef2ee5ccbcbe1117379790d910d20959bc5115fa8d5b54529ac15037cdbc793f1b40358fe9e72bd9f71e92dbd0247df990dcf82592de2277822057dc727d048f61695118048132379342230413f1c65ecfd6608b58bbdaa83c382a0d02fd69d227f84de2c96c05cbdc4c20f9e4ea5d1537e299cf479136679aa7946050362a2073508206fba78470eec51e0ec825a61b56520716a01a2d9664e2be6beccef9703ff06c7727b107b24e45724db398ca5ac0071c2ea187fabf59656c8acda3a155488966e6cbc92d2542ab41164a63de3191c3d13924813036a8740f5f26cd435a011903f456c996dc2888906fd7ae85110a7102f9916d8e4e3db68dee6311b6c76da00c2a8b92785eeaad3f511cb16a7f515b03f977282f8add584bf15f50fef008ae9f662934c9cfd24cb280665f4b9ae92462fafacae10acbc46196e30a0927476b5f8b592499a895fef0418738df2739090ad78c00d5afe08b31c37ab56bf9e927cfd73add00a59a2abd9e6bfde24d47b8d469a2996cf3e5ae9f532166b3a28c090c07248cc32286a43aad6e17180765c8c013b50f0867d8f4b1694c61cc95de5895311c2c6635a0c8c0732f7318d374f8c0395e94d79345ec6f6353117427caed55d8066fa5137febc10b01ae6dc756b2c015f83dd0dd55870ff3940caa4e965a8865a975b024339fc3c4fe2a20ced138d359240d8a01aa32c417850ef5fc2e55080a85b4af6e86259597528479924c4ce93bb8240aa553858e9022d93b6ba014f35fd1832b82c4a53e9bec334c11098325f609f41b431b8f2fae664f49248b30124b76ff458c7ba9144f126c657f3741d61741a609c355de26df8b96bf78e11c1f55fbb5e826e12de104c8e1cb6797073f249c233df92115dd9e743024008057fabe90fd941f3463eac4de5f3c42c89ce1c4e3ca145edf322660bcaec2106bb8f1f2d99bd81c9d88f7f365d6479f6ca7f301ce5c81d83a64ee3f45b10bbc160e8683481cd04764e559dc58f2a51579482ffe85c90de5c3839a97e89a6e83b4f90d57419374138d5cafa0adb098891b00c723b2cda86e126254f7f5b5472d715444e6ef8e493783cf84d7abc31607c7c165f989b8ae719c17aac75b434e36a9e1d76e098c7c3e78990f626ecdd07f6de283dd23c34297b34e1613501345413775b5aae0608df3a9bfdb5c5f3afaa184ca3643f8fb863f43511add1bba34fcaaa7e8f68e1ae28e3a97f02e3ce24b0ba5c4b73a331b6a37897d2a5e1f55daa2d8ab5f682b06610ac143576331255b953ba4c038f545729c0d4299e680e5e91faf836ee7bad23847567458b4a1a30ae6089235691769f488131c1cc64bc9ae096cf927611bc37c4372f3685e65caa7030b1668544656b5f30aa7be997da135f43a004f75f0e8b4add92344d6b1e6001ad1c81c541549f9745c6402c1afb6fa94b54eee19383ffbb8d8402425071719437a421fa51e66b4a3b125b0e503268680958510e42392703fd4dc53f52365904e25f93407dc590e9a99bb9edee380d97448dc722af762fa84c8da91c624bd696c11f283b1f01c6b73381e7526bcf96510ce3bb8a2aa3c60891da14fa0d43585fa8c991289e03b3690f37e06d6575a239327c33943acf7ca98ef9d348a57bee2c003c18ef5ec4c92b7796858ccbb9cd001138ef82e896b1c6047150fcb0ec7667f45b1fe4fb518caa8d68e0fbe0c07050d79642507a7687a4b60ffbd782fb118fd651f732b33bd85ca90f227053f842aecb73eb02c2ce1c509a61a8a9d7f151176826c420195224908b41cc5f8096d8f8caa8d0db53e3e50d87379f2ee424ac4277b2c8dfc55b7e1ff4cc4596ab4da22baf6521159a04cd9bc15b2622096a578f828794fcb2815fdf679936d1951f44a734db5ded95f0a44ef9b9287adc1fbe707357e4999a3e05734f526f93f2eb42f6c93ed6f38aae4cd7a9e0016757e5dde38b6fc17f15b795b538c6095e48088f0486323028856b27549ef61635cb7f499bfa22601dba90834c14c17cc0310483d7353ac77a9e3d73d55ac49251e300dcd30ffe5a1a4294abe024903a4ed71c8179631356cfd646a8b208b07aa068bfc4174f6be6d197b3e0fb88e24d5a872f7d6beb3c563d2131dd863f56fe23a95d4a5d0834eb777615912f85569286568476fbda986a73704080e18d592b50616847a27eb6a3db0fba9fc95e367665ecb2f2a74ed3abbea644055f7a09c289b08605ff05f53193e5f7c761558dc559f8816d8fd4db87a9ad8c0641fe51ccbbd3a851922bbf7eaa4ed9060e0e3cb2326b7986fc669f75cb234e15f1c267fd88a80ebacb10958e85da8753fef58b88287244ed3b6a271f3d6aa01bea92a92be12209e59f712dbe425b3341b280085d8a0534552632c181d3eb52e13c1059690e715c50c16653040270e3e93ad24a181834916c3515613ed16950b52e8c153675d63c20b235bd1583fb81ba5e31a2a88e00b4930e12a2c4f445dff38b59048bd1698164f936df9a712406076dd9839770a58f213d5d630b56366830cf5c1620e4b099c33bd6b5cb3532c3e5b89cc869e38a975df3364b07c1bf1dc7246aa2f0cec72183dcd36ea672ba06416cd3cce43870405e869e696f793e29939afb7af92d5c525da184eb4357cbf0d10f88bff31878f98e2c77c0b1739c1c9e735412e47656f2ec66f8192ede166fa87ee718e5d268eea90752c2717ed368a1521de739ef25660cc8ed8c1bf30ec4f1e892a009a965a31c63491438bd8209a29214f3eba11d3ffc70126e75c151084457978877ab9000b172279789bd1a7b076801defb2ad8e225685571fcbcbfde93d5409cc3f5d9eef0ceaba054e6186c986474db8a5489c37b5a585543c30ec32abb4f68de9029facfc0d4c1ce8b6b80c262d7c9e9acebbe0957ced8ffe6a91b49bd37d36b0c0fee3165192468d89560250a5d784f3929cfd7cd271d6bc6c4e252f772066378e4b53f3e6483d57a6f69093283f433b4a559004945f980ec8bb0a43930abbb04d14343a5112ec4e756a4e2e749be20220a526d41a2716ac51e482d351334fa38d30cd8b8575890a3b171bfe8bcd73d6620e4d8c349600835c554ebf7a5d3a42b0f8b94cecf686d46e7d81523b1e2f5b383c26a172479388be23a65cff7edfebf76333738b9cb966d368b430fa73977f841856c1e46dda181652581caa2dbb53c2258d910e487b00851b5d3b41c3b12da081ac680880f513fa0554ae3bb9005aa05c460e935ec2c9fb45c78513e5c209597e92ed334d4f4a05d7494154e71ca68582a3739a7f3ab44dbdb8f7fb07fdfd550c150fe3cdd64a8269f272b4463b81e70ab21f660a0ad2f92a8714107784c7303428633cf61d0fa304678ac9833392d9bb3687f6f297778aa41d89dd3bbb68495871325b3de8c089438443a4a36a2da745ab4bcd06cbfa35bd99badcd5c105106eb8aabe26c3cf9c8684167634e0701b9e56aa16f0d0a4998771447a54c42710f2c31cd4bf507065a11e19c3fa22b7601a7b08c76ce1ee820961fa8ff53a1c09872ce16fec4c9fe61fb17d95d44dca498ae84315c732381374d68438fd9cbf34f4430f9e132604374916d72fd84d4ee1f45815211ca6f2f01f54c18022eccc431e33a5bc77dc032797884cc6eeb68de3948a169163c97834e3c5e96a7e2365d60c761c7a5646b2aec95d4abf4bb49a450dddb5f4d445a4f47e9a4a81a3dae6aee859ac12419a2bd2b20532d7379781160161481ba31eb89410ccefb35041cdb70b1dc83024393ac0a383fe3b3a61791c76071e2cb2acb90ef8f56fb3d4c310e6e6b713d020c28df6342e5871b24f70ec93151ba106c28166f0704ae2c110cdff20cdd159429aefd4e502f819bcd23c5254db82c474a1da4893eef0b8d4c1bd678e762e71bbc4261d06665bb234b4a5155d3c98dd19f8046566e0e0c20db8d0cbe4253bbf34e4ca22e693ff2ab53a2eeb072b50fa71a466149e38aa913d4fde7398e2af14b54b7e42c646cacd5dfd9d547e656f9ad2684f6bd992506180a02d1f1e21ffaccd506c6bc7ed93bfc30d5bda912aca9ac7538bacb7e4af07d572447aafc51702f9307b9ba408fda7300008d399aabb17ca570b72af2e3d93dd2351bdf647b14602e897d9fa98498671b84157b8572800919caf606784babd981572fa1264a3499893e7c02c746710f7c23a8ff03ca96e419b7b4349fa32d825e92faf6bab236f07b70e39aa64159a7580710289360168214acb5336f5065e2c77f3ba278fd020d82012a5bd0eeca4502a22f1ba597d3e9cf650c0c102a4b2b0a525decc55ec13238f9556deb677d040966637940fcfe01f03eb3006f9206099e1a878c66b2ad49b1428dd2532dfab357456ecc61c81dcb64c3dd0036f018cd2bf76df596040e5b33957bcd5b5864b978e657814e36cf38696cbcee8a8022482124a5c2f654f054d424f5babe0c7f519033f65f96f579af0ecad97c6ec8b1f0f227292e01a4f0722ee46290859a1e1e9fb7fcb788a6c066b89426b0d6687d67531520cdccb350272190ece7246728ff97adaecdf3accf90de88f37a698103f6623fbe38b10d2e364c01ae82b64a338752dab22921766c7279f0aad4afe90b251ba92765887485f3c8c298813d327cedd8034bc7414c4428943b367a35bca4ac54476b207d63dda87dad40f7315c27d54aa01fdeb9053c1ef956becafccfd04f6ff10a2e712f5fa840673bbef8c5e0c0a62af73f2c86d7d854572f2241f2020db7f907c6d247132076f1ec6b2e63f8b50fd1b604f78e3fc4a2e5096374f5d12b67131736e003aa858b9bb7771e9626d60cef3d86f1261b372dc0d6de7b757ebcd9cb9283d0a3c12d4f35074d831c445dce536c0ad4c41a3816574be9b6c1b7baab8e4ce81e15bf8f54b0559482f1230385b57bb4a93d11bcc3c3070eda6376e53ba9e97a7f421b6418f0b81fd7b0e145ae622df448758fcee11289980aa211d237d21933a164202abffa1e00c098105212eadbef3e7e10c993812c491d0fe8eb5dbc8d859a3eb364b3ae7116584741a4e97660e3dd87f232f9fdd14e8f0e4663f70d71ba802934f2575a9ecfa05955c0992d321f2f5ffbc482bb462af3a1721e7cd31bf71a496fa5cb3e3f7239ab81aac569f0393452f08fbdce1345187bc97735d31de4df1805134e7101abfc95261aef22b06e62243cc2cf2363f984635076975adea8bea7b11739c4389173dba34a1256049ba38730eb68891cf3229d95b3fe7c7eba44bd29be224d09f6b49e883e9d33a0685b31ec98c6ead3954cc24c49675c7e9b4e47542e99489a1d9f807fdbdf12b6a65ac25271d0d7bdbbcc9bf891135ad037dcb5638ef48a95b6a084d7180c4bedc35faea1b8b48b70ea71c416d0fec525543da0f3cba433a2abd61eefc6e71783c963403b9fd20fcf80512bbe2bce7f346cd5a78bd164aebd5f98f08af6dabb67a01749f08169257e92a8dc58ee8167d046bcea0a487b464871df07701c3f8101384cc5853c7d925900e1d8e42278149c9cb1ea7c909113dc0d00d8d94e0e48f36667f46ded9d0b5d67c3c690a412f3ed1ce0b16bdaa3e8f21080abd584d0ef69da3321d29e7102147db8b434492560291bbd2efed6123c23e2b86a76a0e39c03113a5e9e013a7330f9c1a071d492dd35334307357a413fdf478a2b86e69f81027536ae70aa9813030d805a17216f0f46a4f877bbf66f19d5f2771ecf16082e06670d9402986a0dc42ff5d395aa6d019ffa9a7a3ad669ac48615eae83ac6f2228e3b4e0a7707c57f10fba481e8d49cb4894d066da43f6c3c34689d4727edfdfb1c0aa118183092ec5950704f13173c1c0377ce209006d74edf09980654aec591b39538ba5244dd130ec491cbf791855b4a5546f8c0e917fe538460f8545cafcc9f9acb48f7caca4843391075a2d0b8ba3630cf232256af33229f839cd10d3bb1d167f04ad463d33fd88cecccf0d53d54b01da9c244c6a217013a005af5bf7c67fb0adfc193434fa2c598fcd4c709e5338cd6717ce249c332079d02f8318228f6a2d366801dccc1c33b50579bc616078b5688717a41f4e84439a99325f4f894b2557bef32c2c6d9cbe0ee9d7de50134a6efff54d8f79da847f32fe696bf1eaa57e562db87c5d09061e5562ff41c5d217609221022ed07a86c0fc6aa1003cc2f76cbd0ca69f18194eaaa0eac946402efd0859904a1b33cb4ebca437107746d9b975b5c591c7591bd85480b9702e82da18e301e3bccba5e62d61823582d2c442bf28e9b8d34c533192a548457a4ea3f7fdbcc363c37a31bcca673fee82621eb6542a82e25298376938ab35bf1dc1a6914a34c5609703d001fb1a54c01b8194217d40962934168ce333787a05b4ac962e31cbfc9506c13a50ab18c1d1a983ebad2e55203ceef66591383e90e429dc4778d5cfafae7c53aaffe1421ecbe69483f346ddfaec85e00b636537e7e3c47c2a9501147e67c201423d1d8d4cb793a2f3e9ddd367010d12178c0cd69cffd744f41f1ecc889df22323a59c3ca2f811977ddd01d5e1d2cc797685a497b66d2c40479d97f5dd8748e71ae908cf846c0004a57a523e0004798c0ede58cf931ec49a2855eaf6196903d4eb71008eafe353bc01a458c9eb59302891ef24246f88c87b110ed9c467815908b08f4c7d1e06100ad6b0688be11fe4679742992070284bc1eaf64d7739113194d3a94ea9d0434de9604f127ed4ff8263177554e8ba709053d58240063f129a2cc8847d23e27299c3977b30a1917639fe0ace6bddd55550ac3b46b86f8143c8e574f90a04bd5f4e1f4809476a8695d6728f8a2785a5ddf8434beee06292cc0d41376eb07bb7ce4b7fecb6d97cbdd037d987f2007404958b2e68335383002dab12ae66665f23bbec258f773a890ac024ebe7cce0378ff98fc65932fe920b048b64cde238e8cf2edc933ef83099b875dadf5dafb57662b34684e3ec24c00741402bb9800f96db88e3defa852dd4769b809c01933119f5850ce3bf2fd5392dfc3edc06e8418ed24975284f818bd370618d27eb25d2d5651ee14e4b641aadbea1466c7cc897cd8ab5b040921d47c81ddcdd40eab60b627d98fb901a4330f08f1ee48f4fd00dfed0ec6701a62630ba9f76e1fc70c819ef87f0d37e449d1ecafba0032e8edc3a7fd074819f1d2035eafcb04ff5fc1626370d304129ae43ad8c28e28f5290388eb202a99d4513019a8c0a5d98ec4722f16fa11597e8c92d42409c0e307307ed34c372092663226a7d713cc0769cdfe99c8d68fd04dd238537e552729f9eca6dbe51dc7cafd7991a32406a0ab83eb148c0f6af968e0ff5d0c309ee914b7209eb7cd097d6e58770c1090b36cea5aa82887b510382d4ef90dc07af43772bd554d6530581e5a61a39c373d23dfec09908586bb17d7a9bf927a881fb7683910025238a510bc1aadbe65a4c7d3d4e536e65fd4471807d92693f1d2ac4df5098a0a676c9122b693449c4b857f11a731ecc0955a3039c9c99adfcbeb5de80c1c32e1db47f3849abae95b0e9a0e828d22347313a5a05802b80c4aca044a23283783f474de30497df2aa6eb0a8b47583ea51503a7aa850b29ce480298574328faf61d9b73c8e941c83290b34119cd049945d20a894cede4f30847d0a7e398f4f5c2dfcc421b4f8703be05ee5d907cbc5b6bb643bbdf2df5211a237216daa53d5df69b9db0a66b44d52a2e9b77fb2da11f73895145b9882cc4d8e1ec296cc8c190064e5a845a7f04b124d5e239aea221a827e623a0647d684b63e4903d6a301124035c637ad667963b6970a34fdb9aa9171adf398f7bce92044388d9b4d45bf7a848f58f4a62be5a1d628f3f65db1bbc612ba109f116ab21d212ae76e34d8a939355d62fb512cca78e0e8896df1b912fa80f95681318baac1b83a29fc12b8e6a53abcbff92c52b86d06752aa16b925090744d649c007255af9de3757195f13cae08f40247f26bef558164a89b049d7362538c417e27521e51a8638d9e25a1d11e20efe33b82f0f41aefa25f8b4b1373589e578e2fc90eeda38e32ad918e09838fb683ca2dee0d46d91d66f5c4f1eb0e746b5ab2d85d4882871ff59ff8f2c48ad55a8262cae81305977b2a5b1dd92d4ce5d6e4d11ba94ab3940fe88768e6f0a7818e6abec6781033933daede204d1c0ce0967a2523093f7df8c90c620c82ef489f4d4c0c5c4f83454296b3b2ea0d63cf7c1760cdf898d690bd52c058d6d580e30ac32833bbe934e570d969af8a0adaa898f8a91d4f77d05dcdf8b4999e77b888ff51bace4da53d360d9e3724d48d9d4da29a52fcf15de7bc23083fe4d987d8ebda29ba744d44248c7bb27d66cf52247059bffd8ba5a1770a90ea3be94d3bfd94876be2145152d565d3c245aacbb7fd51a3216297b2ba65b67e58a3b8c247532ea5801108dffba0fc18983986ce024919394798af2ee7d9c4386d76d1fd6ecbe58db5914fc1ec484337f61ba8ca697151974627d5b9779052f47321b49b40f78dc73198cc8f520f8b2b98d3efd5d90fc2c4160048186668d8ff0f771815c15aa41c5864310b536e50713920f56d100fc5b01f38e2663388ac9c319f7849cd521c66ac75aa5e309e15fdd9660cf5c048a9987cc9900b8aa46c7638b3b477ea41c781ab40d1513abf77565426e5eb90c24b94a118843cc6ed46b77820f5f4c95895b8ee4ee78719dbac40df8ebaa95099ae218c95e8964aa4301e09c54498dfe550c3128cadb095abdcf755c51457087994e240f60e4d89e4c9b9fd0c831241269d44fa198e25f7ffbdae886694b98b4dbcdba1115ff53c898ac91eb82bfb7d8be8bf81aef762a00375c77e8f4a0d59314e2b9ca2d28220d782fb846545b65eeb866e5b381ce11041e8d33cb12e7d75a2a2e61903a73311d899a4245dbaacfcda5985bb081be3591445171d34d166a2334b6ce17046570d7bfd86bcbe5bae561cf5a16b1befa109456d6b58c015751eb93ed0fd3fca93df195bc9fb69a5489faa4d841a9d9fa9b47cfb8a83bfc279df90733377e5d8b71214b340ecf7e44ad8647eae1bb5ad3690dc14eaa4244c587f2e6872c19e98f35532a1ead034a9538558e98a267ed4e846fd143588287a0a6f09d6297d9c48a3ea19031c8e0afa41b3d503f00a4d8a14f756c85c8a342cf04f5945a42a8034927306e2f0bb2402afa17fdd9ff873021a532317c74a12742eeedcde98068c9dff1d74dc93c81efdc141794d1e2d2097bd3da9c07be8e5ed5667ba72fd318ecce7ce29f8acce02a28652ef113f4366ad3fe2e3f8a533feeb41c277b78a918b55ac9d10beced8aaef995a2007590b64e898e14a4b2e22e814499cc94ec64e2d60a3018959c743db0f480459776364431eeb29d33088437f4a58b03e0422965d09b6f3960cc1b0fc14049c5c6aa456dc735b81dde12f560dc6b10e7b101bd3d6c0709764db8641e8f231841a44955a3d9fe1d6ee769c2718ada22ac9e4dca6bf7cf5c372a899e6e94bd24e8d77b9bba6d919ad5c40773f9c29a8d5c06f13db96579cbcb875c1849b648e95afe70b10589284a18d7a45e1e0c831dcef96148e11014bcf9cf2eab58748f43322c34231e322da3fb779dcb985b1b5c037868b678b52ae14e97f55444f1153d5494c33f98373d28b0b76c5212bf08d86188b60b198b855f1c131f0afd29d4a56c070365d6615f247fb538e02c9501b6cae5d242726dd70a2ac0936ae2cfbe3a4e1d513cd9a3413d34fac8231e7008cd3906c5c005bcb8e302084325199a8160928e0fbbe707e50a816ae7870ad26349a7261a2b7c83b9b794676a414a791e83aa3bd11c50a55a2a922db0f7d1ced6a2dc73d03078c908dce150002fcb523c842eba931dfe81522660752ca9954ec869355e25899c29b88e8fe9af346b045ab4c8722af5d967c9deb274d303f0a58043ccbd01ef6df51780025138530989aa776da31e9e3656e0eaa509f758cb0b95405bb9f6bd38b8a6c204f77e85b6acb3d7dd7f3cbe657269f628159a87c040ab84d5f73bbaced9c6c760b25e1b4ac127fa45eff4398c0d3beb2a458602675a9f1e85ca2f80bc9717ff5b0e31a2a5d72bddba01cf76118bc201ab2399949684245a78bd5d034a2f32a8dffe15182ce14d5289605b78134c1e14318a3860a9b2925a2ae2182ef76d7f8edd52620238699e655362997ee3e0c25605a8c66e56d0063ec71b4c95c058f748fc067bbe2d51de738a9a44c3ae29636eaf6d544873ead3233fad47c56e003bcc5ac165c0a596c7c9cd5bfef070e380c83caa3c302396b6e492a56cf32d574bed681abd9541482529cba8d3b18c6728d70a7ce85d988b5237a58406ad11e59b3849a99bbaf2c8ca8e76a6d07ada48e10e28f54da62a494be2b0a735e46f0e746810c736758c29e7c541e5f6e25ad81942798bb4e86b4337eba807c2b350338074577540d00db51084eff2b2191594d5f07283d7ceb9d44f28c5dbdf9ad62fd8719209ee5f92d73edd626cbf41329c494b6cd9186b11821fd578a210ac73d1baeeff1385bc168654ddb44686a7e9269d79fe7e893576044228262874aeb2f41b3dda05969414afdff55124c8c928fc7ca8efd9df5d743c398a3fd809223637c32e44e64c6720a520f757045160000e1d2f7110953f046ce3d8b07951e1371a0201990ade73b127def5a3d28989ab6099f99f878e77a1270ab0e1eb4d31e3814d8cbbf27faee817c382d84ad9bd15a047ea007757dfa149e6a3bf3a0815610c6d1c6dbe55eaff878139fb61ee62669bc3b16499d0e03c81c9489534e8f1ec66ac4e87de06254806bcd8c4f3a9fad53431bacbf810f48307f3c03bb170f4401997bbc784454951d0791c1b031a84ccd02c402ec58a403f41f8081917dc7dcd2011f5c741781db8621f08a4e6938c54721e86cef219960610cd140a711c63889e27d11eac0096ff2856e4cc60e90d6abc7c7d8fb6f346919c00935a1c965708bb5a268853f2ae3d736ace597da1739ad7dcbecdc6cdaad84f7b21d38742092ee98c2b98e10a92f909ac3671a428b9a4ef035119414c6f33760e38b7f29bc40d89f0da6804de14c952c81e1854cb8236de76a358e00850ffa8007276f20c3e4a9ab9a3b52956a3046f6307733600807ad049b120561a27b1ad046158252b313a5e3e96415ca9f7b7074295bd9b5ecc6984ceedc2e33cedb721a3231e0fcd5cc2ce4c16601e4bab640f524db96ef7f59fd7422dcaa62a837a87ae55044309696f2104290389635914df028b162a54e011513a0c7699869bf8fba4bb8aa984afbf10e11d9771e0183a7113a68d5696b15c4a1daf776423cc81155ac726e7438cc09c76b4f4acab14cc4ead34b4e00f834a61c025b2a3491d4ada851e9eef188d6491b8510137fab8c0ae80af76c916a77d97751d153cc77f2dfb4350f005536b4cbf80e3cb957faf62c5347ca64dd56e550fa443f2eb09ad1b7509cf454e4775abd09b27729bfee68dfd22f747be4180204f7874bb86aa653956654025c42aa765d2630141f93bec5358e02ce36a392234f4ceacffb711fe643c8b102d9912d5363281fbd5b6d9f954b372e6b4b823abdff39c14cd3c548b2da5bfde879c5527df6965bde574a8433ab253c6b247ee26eb878f8ce7104b23d1cc4c3a9c048b78791f4cc1794f78017c7fb0ec6f32e7eb773297717637ddc5527bd890973326702b91db6d470f28d2f4c15a2e52738b8b8fd5d07bd7ad632b1d57495b53ea3a3e0987c0013a214edd1b6caf89340a24faaa77a0ae2e14fe26b87cb108c1fbc029e6ef05ba5f225d5a0e81cb2bd263ab413df501b545c752b2ac1277706566176d4e2da8464225c792fe5d0fd9bd7ca76e21541d904b6a6d68d1aefe6aecf30be9d4a1ac19a844e58a045d0b0d72f89e63f446a9e5285ccaba0369f21980224a388323a773e6f8e354559a310d018fb083e3344e688c669ca66d0a2f73773bd9851c31b89a9fdd6b58f26d3d4d69ec0c1b3eb85c3bf5072f4f43d4f24841538efa8495b074852f8d0d08d04ead506544c26ea8eb3f11b458764e94e4cd3413dd01fad15ef124d09ff2c05112c6d241b23dbade6ac78270297e4233da364ccdcd935bd741d5c0c4f33d353ecdf5f27fa139943b66cef983f3b0eb52524d48f36068598df849f621979e142ae6ce5db7bc625f8d50c76c5210bbc8c9a760be299d5bc415dbdaa18d8a999752abba3a7c03e2e9ae5c18a2c07b0ec6a87cc453528b0d3db43d284c1c34ac7ae09892f1eff0760bfa7a9aeeda646bd513200c3e838edb03d9d1f5ada3bef55445d08330a1328a74146c65c7aaef016a487de0b0411a6ab10fad11ee190924c377cf814bf7df15fdb28187b124e496551b0318c461d4c066b17caa4898057e4b101f6a2535c131e93f2656844af4f74b11d6194b81728b12cf7257e266ec0788eab326e423314336a8290c37eb2387243c74a2624b029dac32105e92df6933c20d49d223c48806d139f0bd4bf3ee32bdeb9b56194bbf56521c2b1f9f541f2a3184febd59b8df98b82f5d41fa5fc46638993c9a252581016133f44f012494825cf94b5c4a25b15bf93d241df0e15ce74b5b23832294991bd47d82dfb33fba89b1536899b1d548622575234d99d7e40bd4511a48d33ce605a0288f78aa24bfb8add76a6900feed2556bc1dd53fe809f4de69406dd6a53383cb30830e6c4364bb2b544e83d506b200c0f0e4e72bd8cacc455714f72a1b1780c742fc7208d1fc461679df74d4338f4a72e53c91ed2f39a6b99224dd80adf59b57cad47fe3b782757d81aa75eb2a259f7bc3409c97e88baadfb2c5516f2055a254b7458379ec1bf3d99cbe2487c1eabcb02591f221a117a21f27faf46c41f54a58fd2b75b6c8512492cad1407a28fbdbedad2dd1f272480fa1a8a137a609b17a9840a8ef7e0262109e738c3878d25ca3ae0f3bb12384f383ea126d1d38b0eeaa30549cb98ba4e934a38425d1494c0ee07a3c532935f6ca206d39e31e628bd85024312f41d3f2e43a54bebd7c12a79b4a25cbd3f1208f45ec814151a140452214157db8f2203281c667606c9bc04cd808536d0af631c6bba8dcc8fba90d03445351425399b782cf1bcc9a0d1a681cc7460f2e2ebed7ff427b53f50f0d7792ac81084c747eb09bb11418a0d7826d09820d92a88506162e8d3ca361ff2bb5e690f29e38b686a7cdcb8ca096e18d79433308005379affc42d2c0000c7f7a294479ec01bbd6504d9f1b138989bed35b7f2c5a0a9ea4a38ed6e6fff4330dbe0dabe0e9c54fd00f12f4972929aef3804af6f01ed9b2e23dd74d5848411a5e510f383f0c50cfd2f1f3f34ecc478c85ee7024405d5c3b2112382541a78e83c7d28d11ecf1f3041ee89474982ee353bd5e083bbd39a6b1dd2a49c3014ba8e13a1556f67af1d4ea80e93d79f45b2d56435af340d9891559cd9a1e004064e2819f422ad00f22286f731753bae2e2516bb95a3d3e4dbae7270d9ffb24038dadf655f359a504641706d6a4ce2911e3cf875601b10f4c9bd3c0afd63385e9b8ded67155a81dd4bc12915f8f1a89f5653d1ae5e582320d37d2d1152795225c002609e7f4ce3bdc1ae828a211348e2f2d31bf56d6a83dc575758a4691ce3b93a019c4fdf6482cec52997b840ffcc2ce9cb8f09ef390f414c31e8df0354e4835f7909c4ff0937e721ca3603655a0740da005fe50d0e3cf8ea19a6b908394f335bb32e4ce488b7cbf6bfed5b72b716d6142212d5b84335def5fc6c67441e019b66efc971012e759d63e191712b015f74b17fd74f73df20080f085114e40a299102f443c4a9f7b80b5b04bb6d10fdce8ae4f43d125e9068962bbfc7f9e86707a1435d708052d7d194481b16981a0b0e6e046ee5ef86df8da8377314e10c7a43fa89ba59ef28138d62198a456e6ad043fb1ed1a6948f5930f9e2d15f6117a8bd30797bc4625a32ebef4cf7ad0e6fb96cdd6a4a68e0705f9ae9425a78c34001d3606757387d198d5c9b9dd8a350ca6a13b79419a9206415cf193ed878f093bcbbce6a3cf4543c2bdc26d6671c0c8c561e24acca0d62a619ab8a3f6714cd5a5de3907631311795fae3a41bd1dd00e00b1a04cff09a0e1d52143a93c39750e3ee1b939115c7f2bad35e693b374d474311fb216f76e798574ddcecc44abf3636370d09aeb289745d09459acdf8e7e7e804ee2e0162edf50f54d9dcc06ca3788d108c742cfe24b15d84a054a26a0ed7c9f18150af2b19e456ec322b45ddf5d1680f1b26c83c43985626e87cf71a9ee4eb7854715b645806d2101481f7b802c0de1ff3c4eb23c6862635634928c2c88e79f8b8f702e9a0d75250db47e673d11bbe0f6f11d8f41c269f9d4a3e5e009237270c8110e193bf4598f80b3e903b2be9c7abfa1c23cb9283a65126bfd43871730542204b8de637757d1119e728961f8af36b766e497e69b0f400f49e58afc8a8ea82408cacd0ca7c20a64beb8fe5cfa5159c93408e5625d62a2a17c5314aad9046dc28109f8b3f6eccd0b4c4fd7387fae29d9504686ee0067ac89abacef16d135e42931503bc62121d3edd0ec70016708d3cd00171071f24fe757121abb1f3303d153283ff40400a727f6e513182b0a53f5ee6aa70b36c5409c15af572484aec88cba97a4ddcaf8ed73acc07250a6b32bebef0741ac4cc17c23fbdcddd600716e9ef4828fc5ffab48f99b86149d8d3ef20ef979a377ed5c4279f238583419e27e23b1d135efd5a6718a3cc80da0d72b799322bf08b2d6861a832c6c7a7e64057834b2864c47dac012c8377c9dd84575233a1199ae4d808e06d4deadc5c3b63af517fbbacb5027e3abec698f343586525a7b78f7d706fa97853a029e920f5d4b9a3982aa251e9f1ce85bc9a0f523790c954ccfdf6f6575b7ec3096b959b734423a18b50e5301b75d02d00581f07170be7accebb8011db0de7c150421cce33d321e19f8362b30b5caa0cd1e96eeaaa8b810ebce1eafce8a05d293f25ca819a7006e590a18f18be0240cd5a2e0864de2c240af1828c3cd4660734b6f77e948b49695b8210577175b00c795fea9035a881712dcf893a49a3327ff80907087cfe28ae52da1a32f74c27b76447cb8c252ddee30013dc51685462994d10df0a78d981604ea8931b3dbbfba5ac7bdccd11989966951b9851bc7f945295c3bffe895503a23c656ab7055772fee99520f289404e85fdf5d0fbc44b38ea564315aac69c29eef10b68643c9a898880a1e06b3de2084cf75ec608902f8e8e5f372ac5d70acdc3c080678ebe8f2bb57bb5a8c0dc89537f5c640f485c0481cbe7cd50eb70ee84b92debb850255b38a960a882a40dd705e2ed73c271bd3a9e6dad38f027103277370f26d1a830433a7ea18183181466ebb7c02559d6a9cd5795e9f8f3af29f6bafad11c00e96dd59bde573ef056fd9f2ec3e1fb1e55cc3bb09293641e8dda3faf28eda68178bf79bb7197c66933dd157da3e177c657650299111ebe3e1d589d581e9bdd958b6215aae608d7f4a5230930953d938a9e1390e4c36d25bafe553631cf6213e8372a7c9325ec1f625d5123734f24412cd8a3a81b08dd0e3e8c9918a788daa36567058f8633d2e036b5ada9f85462b82d72115f02989abfd778acd90269019650f5f43a9dcf68905635c0dc5406de1f412b2a7b68111f52d873fd690148b534e3ad91e7864c4254590572c566de132a633cfc3099b4253969564c34643931fbe946a528e33cb3558000119f8c9ff9466617e9b3478f7e1f180634de89f047f587cd480432505838cddc2381d43cad2cc1d794252aafe1ac1e45d0e87abb81989c3cd30308fd11ecab6b294218aa8ae32f23c22df43f1c107ec562057e6cc9cba9868887f126047613912adadea09b76d7142bb480e22162493a7e76bbcfdddc9649342613c559676e21b02ac1151017104864b6e63861f6e0138c22c2e529a678ff74b24784560b736b9f7e5491e60ed42f6984f825a9806ec7aa1088027ae55c54f27cec722fdec57f669673b09969f9776661373251a21b07a7420c331890f2b8cbf4b49eccef1afaf533fb014d5703cff7c3838b03df15d037f93d162027c9a7eb30681168fab5c98659f4e619bcaf50f1f3b342a2932d538eb54e4ff129f40164cf4e6cdab4c682e0f43a16db298ee74d1d6bb639ea366e55eb8ffc559968476279eb9bc974ca388320c31d88b3a3d9e0a6aa694c7e91d9b22c60ed2ee6b74f403ad73e27c0266b9d2686a4c02ea7de6a6b92585761cf071b9e8aaa77aa39563ca15ad24dbbeedb79668a6268f8517ac4d70b19f939d322cf6e662222817217b11bef96b96e0b500592b0456da18da282c9ade50aac134105fdf720c62afc10606c1720d4c5677e19324b079448da3a819dbaaf1ccd8914faa1aabc33dcb789f8add8ffca19cb985a62ab5fb26ca31e664f4065ca0e16188447321d0510416dabc777b75488f979f38d3e3a1bf1b94aff08fdf5ad2f8895e33829a02e0f1d3dc1f38c3d2c54f8936593289168888c62717da49eef0c0b2e316431fa5761b32602081e99c4ca92bd244ba404947d6b36eac49004b1e96f9aab64c2a18bb505462a04d56b356cf17aecec5e840185c9c265ba33244c27f107eb5b39d71deea98736cf8b8e862239ac07e9b0ad52fae1190af7621126b7153d7c7969aaf1ca8db0a08b58281af4fe2e5dda836e74d986cc040cd879fdf031a484aaa21b5a4426ccc1e2d5bb2869468f2cea1f6fae5c2de37955ba3b93a8401e3822c708f5f0f6092340fafdda6820ef8c8cbeba05d12bfde54868b6e97fd6bad73d0443957285bed36ce0949ed301c620cdcf2375010cb6543579c97cea73a8a62deff8dbe1c2fcb19fd67a1af8fe87ca6a89b5f26ee612925f66fac2fc2bc4ab6e767616f0eb40d639ad034940929ff0f0e12d47cb4f10169f9da92322ac7abf85f02ff41f49b9719377613ef4fee0faeca0ebdf8f3189cbf672b8eb56bac98a000bc8dac7f28951fb5cedfc13c85126d4bce49c40a2874f0ad203d53595a170c26e4b3a157c89afa896ea56bfdee8898c8dad7a4f507f4ecb17b5f3b6067cd93edc69a332eed3be83e8ae23947f34f7753550bf2233e9d5395f013da7d1eb8078288f86a717b095dee5cf4facf380c312ade650b6d33287cb7fda821bb592e335908d98cd7fe193824bd38df3456339adfb20fb0cf40a00a952bd4396769aa0816b2203b85a7d84e78d2f86a630653667a1ec0b6111714510e1aa035cfddf07270f650cdb7e0b2a88bf541d60c8f2bc5c949e6c306e8a658ed900f412e4893432945ac56a631c28517c5caf353c61e0e49477205407a5d6a24a9cffec4a2659dc2d08897bf17a2d2c07d716726a0703c1ca7ecef30e83dd8ee4f5638a6240c12778a0c79cd3fac560a098e2575f85acab17f4c22bea20605d29a75898108053102e99e20fb2269f07f03f50b9b437f40db465c2809bde731d08119f7eeae05405ee0b2c762d7c91968be118cbda1fd270a153a1dc43bce4b311f04afcf59450bba132ccb9624acac6ca532abc91ee152fae2f3bfdffe91dc3de8ecd21955632a92880a288a5e81f818e0194fc28b5230ec824483cbe87bb7a57322696e1363cfb726e4ac1c7ac2ae101865982bf3b12f2329d330fb759e229b6763586d6a914f5ac2c538d3f3f99f5610c85c6390b8eeccdebb1f40ca4bcdc7b1e70d234f1b1726a63a7a310e6d75ac3175926fb81188e36115929a60f7e11776487723312de6332c86843eb926bb4789a3e050841c469de0db67a5ef1d820fd1b53e4c4ced48592631a924a458bb8229e1652c29df9df4d4197a23c3b0956ff205c87a7989c96c08e1e82b487eff48cf1d19f1bc9bd731a30e91e35f7145a91b302dc6b277aff48a4c1bf49c9ae1d8a4b52be7a84a710034f53adc1bbd5e9fa1e9acc818bd90806fee41064e96acaf3dabfe6ed48c31f7afd42ffa1998db24214e5fce753ae6bfbcfcaeb8cf741d0c08639a9a1ddbd823804e307e686b441a258896696720e66e2b6e3adcc8037244ff79ddd8d66dc45ec72ec5250f4a46208a587ff81df4107a341eade2948efed592d635a6ab4086e52aa6b11e1507baa8e74395b4178a234a7787309ad386f064d36a5ac65b27dadc71e69ca7caf7e9bd4c65527853e9e9ce350aee291a4bed75a7c19b19d6e9b54dfbf3a118f76374dc4451f34976c3e41441c6c5fe83b3209aa79b510867878be1da9a11ba87047e95b682747a9a224ae0053f65d2bc447b7700dbfdd666d8f47408a733b0b0d429925e39d699d5d502c444aadecad08659039a04f267b6a32bddaa84975386056fea8e05941596f14126d4b070514f30f4c3856ad82b54305054c16da81ee67f380aff2e4b3a536bc93b7a7d6f7c3e041e591e3a3c38929c1e6d347c9146ac24049da7e8e14a4927698783745f00568f32f9f9e0d2b40e66ae426548e2edabf1ad1cec0443b042ab87a73dbf7109a35f928dbf6dc4896804e01487ce442dae88a8a5a82d74da49644ba822e5e5926e42e8d08ef491621d319d2aec5f3108af8e2845d7957627cd6814a6662a3f655238c6f84cf45c39f14e64dd7f2914ba6e7762bf27a37faea88e44cb91cf13568e5be88c812545ac2272dd9522c3bd1a88f2c7ba35422f63d0c8dfa5e1323d02407733c17a0d7d42ec4dfed80d4d614b94a4a0411a39c315c15db7bb401549071a1a292b5ee6857bf0e44adf548f02db2bda095bb216eebdccf6834a9c67d6b5f396d3050435801c56d15b10621b7cfbb0165a5576b5e127d9dfa98abb99d695da0aecceb30d18f1a2a7b96b393b1dda3b0ebe73c082ada712c92062c33e57beade98c76e342b1ee48d14f55bb96b01545dc5dd640193ed6491f511d94beac3adf39b2dc71a3f0367658e5ba51938ba6056cc327009211a7b237fcff4dcddd958b0488e43985d2152da5097251847c0d0c3ceb16f213555a4e9e52c5c2a5f8f7aab22f10bdd4498ecececfd475c889a151d3774c793af28d118d1df475d582b3f3c48c3bd9e2602d579f4189c4d9cfbde25a642331b6cccb0103bf7b1bc0cad432cfbde653eb8b12f30967434bf81783cb04d290852afa0ca9f4898346bc50e962e198d76f4b03bc7dea85551626a4783b40a6bf28b3ba6a300380de5ef351af3acf1b02001e337811c2b789a0aae6504e4f0eedcaeb313ab722360ba281a140b8ca35ffc7dd7cca01b5ba140942456db4c99ae2c1a81e82295cd7dae75129849a6b69f483a0382f094dcf98d9af921983d97054b78b48ca4fb4478315334d7230482e2f22d667da8bc145fdda2ffb3fb6439cefe2a04ee2b3c86d57cb11665709b1b313bc097e86712672bace5f7e19ef2958600f954070bd4d3230242f06d397ce8075b267600ebc181b850019b0bd78152a6b11de4d2b461dd7fac296be19e8115b87374b5ae1ef0bf9595aa54088a9e0e773182b3e8fbef33d8811901ecd0744ac4609ad123f303f84b583524159624d8b1d141b21d168b2885aec512224aea4a5507fda2a138643e428e5694d88070cb5424714844d4f42c9ccf23c1e3b33ccab7b7d0e22bd0cea3e422a84aad2b06419c331b59c9a3cf015fa1e75643a5b60d51426853a51788301f54398c5b0525c7b6d5303497704b594ec558501e9efb8c6fc0f917b5106faf4c9612546904490d6832a9b62bf4c022ad3a176a1cd0b11165e9b179a0f84ab0f968b98c2b0a2b5dd65b0ca24d6f470fdcfb6d020d141c650a566be902d4ac81b15026f19d95f11a14fc5817e786bab09b6bbb1622e357f94ada0d9fe575c1abe9f921740d764ee715ec996ba33ff211e7c500d2c2aaec31b6c3bb71cf52b7438260ead0811936c1b855f80a42c90b7b5dd455d7705f754093ca08b643685c9eae565925ed516e618b32cce0b4a8d462d0e60d0a5d9b977b71202196333ca41ea22adf2ae594a0a84fe2aedcae26ab99b40b3eaacd4a1a717826fe4662d2a0045ee14b568296ec3b0c6dddbc6bef659ad3ad64db3b9a69086a4bab8a83a567d4c955d9ac0b78673441a89d4e296f3b4d11ff8125d9b9ebe72b9ac4487217bd0a8f9a9d0cc992f37df8ad261b9615b1ed1974a8f51e47abece1673211439ed6acfb4b6addf9216a3a38f605e22237a3171f439d47a1b04d5db080832c166d2d521fdf940e227a6b4f92e7f6f65e05ed26e8de7a27a5ac185867c722dfc69fc722e3c3eb5bc8ca1efbbe54b4ca6feb7786797f5bdbae6549429e89803c6fdd9012e9f8cf9ef588d81af82bbe89807b24277547b26fe6d62b4d77889c7314cc361cb217d4b6c0587bdcaaff5bb2887f726092eba30460e0cd192968296930d7d05fb24bfcaa25b74ff71713c8995386006f04409770f66c73d2d52e3eda71b2db3f56797f1268eb665809d0cea11db8ebb4d3a70016d77fa04156e333d0a599116b88d3eb2cdb31ee0a355942a13ae7532da168f548744bf82e26a5a6346fa09893d10c9e21f191faaf9b8b9717fc75a01a07ac13a42c8900e3c6d9520bd2dddc98a94708d27094bbaf4f12528f8fd6e1f5674c55f7e2a23363983faa892aa6a90e8abb322a16428d06ec5eef865283eb50e1cc7cf44b791ebecf8def7691422c7814d52ffc4ae249c4546157d90b03db6e05f093a3eb807033449d35f94a6d16b4202a0395a10bc72bd02ceaaae858f322a7238eda83dd31eb3e0ddeecf106383096d385dbd73e31a8f931a2b6db13110c1c99c1f6d91c6982b5195235b1a6d50f260e4aab70a0ddfb2f820370220ce7fc6509c8f4644ed289ed2c902502bce9e2cbb1b764e0ca62f5b7e0b216e1bc64e245727d6a1b362ff4d7d312f42311733c03adbd7905b34269a01190e32180e00e215e9089402679fd7044f0bb3b6985a41e4e9910d038865d4d2f7719921b18c742ab133dbda419201e8d7d2eb68d663e55785787ea0b51a6d7b23f6373c8389e6bc92acedb6854d30ecbbba0532f242529203ce5194fe4d444ffc88af8c9454019fed19f225757d34afbd245254a8e0f8f90ce8423c4e771919422dff30630249bc7e07a046c307082ac5282339d9a3af49622c13a23e5f9776e43ea1106baa9e0e3e6158878be9e8ba146098af587757b2d6555892adb667e3a35773a122ada2f8c3aa068ac60c899f551cffa1306235b0d16432f75a039316fb7e911c4441c7e738f43eff95e23b76314f27f5f9416c7c2e39f80dfc9a85a136038da1d497db97a0ea585d51f3fe19c150769d7cdc7dc231afc9ebca3e3d85b14ec4d32bc708565824f020f10046ce718414270de98bc5145c27a70a9df39f161a2938f19c0220bb43ad0e3a1190acdf12ec7992f08dbe000d5a9393066cb101dc3631678e636f8b567ed8f660728a07bea9e015cf6d184a8e46656c0b110f1cf0cb8bd91db98372b3f65b695867532643f46cccf3905003916e6b9ec342ecfa077c419b4ae3a2c2acd98935c52949af28dc165cc6a6d3e7bddaaa7189f14a2abbe71ff836aa5aa239c14598ef600f2d17d6341c973362165ef16bcc4724fda50d57c70f882a1793225115b2ae14e64801910bf9588acf75130787415e0f0639300f84e99216300ebec002e776017e749e22e469c2e9fb471df79fb2a1f9a221f6872a7211de687fe308666ae626e543234728438b71e8a1b63d0a0146d670ad17c4a1aaf58b219da611524f0bec9c1aa851a93ec5630be95ef2bf2fae5d646fe8215d7845a2a2e75bd7c7112cc8a6af1700c76b367b4517efb2402f41d69734b8961c5fdd476cb58bebd1fb9fc1551880c1adb89793783d7a6fe3ba3ce0fc93049cd687572f0dba81b7611e6031012a0ca8c3d238cde4115bbc741e6d6de44a053375e8f9a1b2c428632215c1fc5f7307adbb171ff05aaf5df31d403c22b0eb1d7a34804e8b9f78f1f24ae012f879c23de9bd1422a04d721fd2e2d1229ec467c293dbb6ddea7fc20430948a70af1b799702f6f4abfa2b09cd9702abf8f781c7316c3f183a0855c8ac780482d69627b9b1cccd2b587c2e0d493c4466f306ca5ddba0db6b3e4e6b9c2ddaa3abd8be2916a20ca05bddb1e30085ffad0e2e0b745de6dc375fc654a3d6eac16e229e587e4cb60286fc610500218ec604694517e5ad482a9acc0bab3422c2ce459b40c4ee4d642eea8b497067a5336442f12e782bf5cc4f3174c191391414ca14f488596c1b94faf5312ba5fc5ab2a39517a59379b912c04b66ac4ee9921db0f0bd116950196454137e2e4e5c4a5388bc1d9b681d1381092b7cf66e20569b7a60a0b285581562b83e12cc8a98f5db2d0e9d06a8d5ec1f55bd68bd7c8657c5f6d2a1f4af1ad6a001c2468a4974506fd090b55ae1c82cc14f2f3e08f2f5418f2b8ab81c5c89bd95a1cf0d6d1556ef79b4b25ed433dd4fbb0a85c996a4ccad17f68ae145e918f72effedb82920fc2d0d7a1364f1bee126dcc636464f63e5616ed1b04d4c9538ba64a35139a7c83ae5b695887cb0a589395b4ed67fd4a790efa089d3a39aa4f20fc14b6acb5da71f1c9b63d9bf7d433839c896dae2cf9591abfc769e7ce804adb31e74d5353df20f7fa7c4f04d19abb3d8e7802278e563e86aa6af4915fa72a144a4285ef6f0a32821478a5143bc21ac97988d2a1a0a7ab2a5e33f5c8ef8499ee053fe9d2107382035b3714f3a6093c60e5678489be22d6e0f08a96a61842a561c25f3108d121eff5ca7272667e061c2f6103dee1ca6c0af23240a45fac68d63f78ee3ad0a761a2b6bc74d797802158580febb9120034ed3b983d70b8d5bf4b229fc1dd3ca21b9f2e27dce0e4598e3bdbce566c66c2d5d40e4c5c0ae61dc613dc09f77ba2f430f64253bb0bd10475f57e86a915e912745a6ea26d8710381b68671f997f96540f18c5905616cc8eb784116957d891607ea2a0a21f73b5152a2ade09c8121a9e94edf72469da5e2ae45979429e76b128cd1a6e53f49f08b861b12873446d88a8dbeaa66c709f4bd74c5dce33d48268443a5bf1778d775e20458d887d7753a225eb5093b2473dc74d4bed4ee1e46bc1aad5927d9a3a44fa134839f5c43a21a9d5d0c6a1f54acd1a170b5ca16e9d0aa54d4aefccbbc857145b403b5297b84c2ea89735bcb2af46380df09aec342521a1794510e70f4d5a3ca4fc6c5dc6b2d884b3e32bf85d432e464834d510d38afb74cbe7805e2d72a0e5658ef367ce804fd6749ab54f2792860cc59c51acd8a0b621e1e35358014c3203ba20ea6d5c408c424e07f96c364ca480375499ad660073834648641fa4afe35f38fd5a90b24ec3558fe7f8134202bacde290ff668c7e987dc1ad1b579cbbff2c086fa6a03455eb820800fc19b45b2b7243731ce67f648288ecbdb79452ca24650aa20615079306feadb8711cb7e18eb18cd5a6d4a6acf56dfdf9b65a6ba58cc5d9c9f9dac77dc7755dc76d954ec8a665e37fc5e2d9704b8bf8da6feff3fd69f48ffc8abb06fd4fd322ea87f631feb6e14fb3585a6de55194d026fb6fefdfcd772745a37fe6cf1adfb6bd7dee23aa0707372b6d5b4f6b1cfe66b66ce1e245071dbaeca094b7e7b6edbf9cbc5de7691e31729d9d37df280cdb44d6e67316999e8c38d1738278fb6dce97f127de7edbb6b9e57210c2874ffd037fa33812412eb77b19659451c60a717c358eeda7974b1ffaf4b8afde1078e30d91db7b7c7db04ddede7addf6b387ed27864d91b53d872153646d5f9320936f718b53cbf65f2b6f1f5fb107167bb68f44b1a7976840cadbc7a26814a3c42ab1a75a7baf6fbedab05054ba59b2650b172ff6392d87c647ad8fdc56e2e20ca701f75e9f83280d3c140e176fbe7addf70d86646a2774e548370165a9eeb5faf43e0fb8f2a47f6ded01ed446de0cf059b2c80dc4a5af89021aa03f96edfdabae54e1dae7dcdbd7873d43ff5ed0d86669e835d6ef7f4bf98a1a419c85c317cdae1de7c7dfb1f7cc2c19e8c2cd71e7a43e091b54fbd213077f6397f0d46892cfbb387fbc557b6eff6350c8d7ab80f9fee4da5fea796fbc1a7b70fcdb8b27d288b3d50c033100d9cf5ca62a10843c1309b88ccf4e7ec4987d608f1e2d22ed688d9944ea1a5824162713a34fb2daf8ee8c3c6d38d3c0266f519cdbea6699ad5ac85462ff88244780418a54a1157c275910523d270b83b778466933970c4fde0abe76b2e72d438d03f6d23b252ab66d9f7f1a5322b28cf871b78ae0f5f28dce117ae4fa32482af151548b231a01556b136be0e1d298f7227847036a4df9e083d8290d813a3108b2152b7812ec8c593d80e6188622139dc9e4642aa8294610e8d23be2de27e7da6e78339e4f84321e4d03f9ddd27042316eb3f1591ae198efb649edb774038eb3cb26f725419f4120d3055100752058946b68fff1c919869a43f7fa87ed43cbf6621eda77dea7daa1f730371890658a63553af97665893a71742bd8e84c618f32cb0b8f04bb9fb1022325f71a98240a0f91068e25707345fe50fb3ea074ef6c7c98e3f24f94a0766f6222a4d9818299aa84a62a66002259a151214b04a09a8262528acc034636e64697c40e26462d2a481d2051a5aa2c499961eaae4e0b4825d4206c72566c918778959720224312e341072b92e468b951c98182e37b89c89e142c68ad122027900b8237e37327c78801b7047fcf842fe569e741bf5c3bbc0c93a30302323c3946c89c8297e2df3f8b576602bf640f84baccce1504a29b5d65a264fd8605f4654e132fcd9046a517a22b665f8d209939b0cdf2d8466ba0c3fb675eb5cf43c0ba1b543acacc5845ab2e32752e488bfd7b11d149c3bfed11b348ef85f017c389faebd3b8c25f52153b8f0592927c2729f1fde4031fa681c718410e611b74689828db7b19252c2e8d2737c69a02cb883621d05e81f887f1ac77c190fdd139f2213cd9a0fe3252ce9a68b77167becb3d17e434998f3308175f02b07bf2e7ee160994ce61ad4bead85f67b93c11ddb0934984af76b270f22eb030fbc20201e073e226b7eca021b06a171e8903d3dd5df9e24ad564b4a4a4a923f3ae08e24ef214b2c93649aad74d36ca59b662bdd345be956d3e8f8a1375889ace951f2a45d29845e9d4ee313dc41b184410b96e81f88e50a8da3760da14cea72e5fbd3a766c888419f68e8c0f94fc7a481655cbaf23dda3be325e315e3158f5e2ea35fa347f2d0ac27f7a981256c077f0f037f291dfcddcfc19fc5df0d1cfcddc0ed36f055e154eae7b74c722d18bebfacbd37957ab1c95315a4c6ab5e858da8bec637500dcf480935dec617b1815541b0111baffa062a52e36d60940735304be565991336614c4c4c4c4c4c4cd068bbf659d0c8a6527f8695514577be84492359451e2125f58e1d57ee8ffdd3af33ee8304687e0d0f0990cf9ccd7ce992af974a31228b8a6a85b5f7a652ffacd60e8711c89560bc67e05c94200b100655804c10066110066110d6104731f78b4a7906338fe849ee03e3e5fb09ed1361fdd3a477d097ef4aeeb3f3b10b2b2209201ea96215185d3f2efb2b2a755cc0eb2a05d99b52ea1f144be7b9d71ef60d00ceae0d721ee9743f7fc924ee17612ac0faa7be8c58b28c30c41658f2ad0efeecc55fca5ffe1a40fe5859c2ec6737fc5d59adb85f37f50ecaedd880cdd333983fdcaf9d60f62002ed78329ab2949085e6919f4ac19e22ec052bc3b5e1e55b8eb2844950c979e44f0fc21a870a6d817cd721c67b54ba9e03c5280834100c29e596678f08e6f288fd2423060cb2564a18d89b7298f02ab35f77ea564208218491faac47df2eb5399fcf5a4ee9cc51e059b473d13e388ffa0f67067d1caf368fb516d8bf9961df3dfbdcd659fb9a263577cf7d4654069f35b7b3099502d7ab2444a9587da430e0c912013d0642fbdda5686438b14da5a42c024d1b2ea243086d4eb12ccc82daeeda7be9dbc8ba94e2cedb5ff74ba56cfc8dd843dfdf1bcb3c3d0537c50192a16ee55e023765b7ad2f65ad10c60abdf935ce49572c170f0214005d507646014e208004b9797ac27810d33cee72b90f0830348f16ff2f9521a6435dfea51a92b29fe0d22b64622598c91d73b189b9a48859303125251d1d1919c548780971693f4549d6feb3b66d5b0f9c528b1f6553dcd9ec9f975b6b511a7cd6b4b72f9fe3503de4869a0012a0ee4af79af75c735df76cdddcf7b0bf691a7d1e51e3b4e76e341c4dd3344db394ced6b09961f1e43c914ce499ad6133c34227baba2fb88edc8510c238d4caf063078be038e87a016eed8efbfc751f1e573ac0877bb99d9dd3bf59737e2053a99e1227e130882cda359a5895231825c72d312a3e6cc971f6a730c8c1b4f2f11dad8094dd433607edb8fef0fd2fc451628f7431173aed481cb2a6691a06597ba9617fcddda5fbb35afd53be94334c1b34734e21d9e5502a47d6ec9f565cf99faf893d6eed4d81c0091112595d54729cb881e00981e25e80ccfd99cad5368664228b35b5efbee172b0938163a20f049a51699bb17be3ba3eed935152ea8a2bff8b4db99f629353eca15146e38c4379db77def6b96e767ad29fdcaf6721cc66200869cdf95d914e30830599cee186441787c43e10ed6d912c1c0662bfe222fe16abba22b64302d46daf795c7b9de998abc37ffb960ff78140fe46eadbe754ad02327f53350642edf69c6d20ce1f04f751716f85b84f7dff20da5b6cc4bef68e8d6401625fc32ace88c63510e7a5226b7bf7de79b6afde96ca5be7a80840a0faed11fa8daa9f08cc2ad403a9affd8daadf4896ee8d685fdf48961b0c44be7d23f5b5774fd55885c24034e701ea3010fbf28d48ac6aacc379b6b9c455712aae7e10cddfbe11f9da073102d457eaf78c062f5f806c4819ea9c4c1fae0f2a2c2d59576a92269e519232f6da828a87559ca962762b4c167b29494996850adec38c49af51b286e84e71a235455b162f222d2daff22b23ac9367fdea5f2689660cdd80246c94b85045968a1975e2b5d6fa729eb615882d98008144a117494b5fb089f1048a8f91515abdcc3126ac50030f99c64cf0c10a19fac9e5729de04fb9976c38d34fb5d64a450827a2e8f55f6bad609c261833130c14130c9a39bf86614a02459812d0304f24c9016e7931e1caa14926822bda68a103966d4bd1db49a7ddf939e7744a72527262726a727a72921519d167acf84057a16c8c8c8ccc4966262583e2656858b2352d591b1dafcebe75628a75f22d0aa35f1c2129810a0c4ae810046c0545442d3164eac22185a42751acc8252e5e906c9ca72d1109add6b45a8d4830459e6eb24f57963a13791a8959e4e9da5a4d6badb556892ce281165d31a348ca02a394522a1d634329a5447305b35a842da3c212b7844b53e4e9272bbb67228fc6652605558289b300c7d040c2042a2cccb0c310502212104ba8236eeaeedcbe50072098b8a1e2490914882626b802f6b0e4ca1affe1894a152ebc54304f6a98618ce009c2a09161662f8f4f81352ac02f3125587280a19920cce57235a194d2a52d9a32a54c7904580c21a8c28936302c3107c9050c50c0c498bca0a6ca2baa205fb9979858f3825e68d890941051f44afd94b604634a40a6044ea9222af5cb1929a8124cb4335560972478431836338c17499400e288d22048c8b4664ae4ca1c0ea594524a29a5bd748552a6d49571d8c2499532201083864ac461a6e4b3589312c01c88ba68f9a245cc9298458b51142a4d6e8be65a6bad539099c229f274feecfd550c11c492bc284a12c515f1862a56a063056cc9b37ef5cffad57f156d22d1b37ef5f7ab6023ff5b4f1c955a8a22a46fe95fba42446104f28bd952cc05661e910487524a29a574098929534ab53491a9675a6486524adb3c691a17461a105d305182f39140de50844142865182490d4cd3612e97ab855a6badb5d6da4b4720e5ca94657582cb744289d44244d1ab625b69ad55fb5a6b9522694ecdbbb256ea449193bf292a7ffb5bdf562d42e4fa3b4078c995456f9320c32839a93153c50d49614270840d3fb8e60f263ca14de56bdd565a1d909ca7b3a6a960092ab4a0b0450a4078116bd802e3b6bc40e9945202c51170bde2c8ccae0097da55293bf68fd6434a132efc01d45ae17c0933a73d8043fd981deac77c8aa7074210c4b3ca3e21fb5a74a27fe8c34cadf6946a301c8f13ca9b0f4956c94cf167243b8e373cdcfa35e883f91f01f2ecea0189ac3864e6284dd84e409a3945ea94135e404738589168021324011d6945a182035096eb2958818d15268ac02e5268023a6281175c9ea49cc7bd227d041432a023d10aa08e177cdd8c86218e80248c483544ed7fc5e2694fdbb64db32d27212a85e05b01464e32973b06822f8ee07aa5c5708f64ee43cfc019854dce6384ba9e289b17848d70f46a4520e9bdf3d0a6e9a9824823f62510042010ad3fe5577c84be9c45b204816aba10e102b22fbfc811faf52d3e42dfc8918a5d6ec68a2217907cf917f8c7a3235510aa0a221fdf7cb9f128c62aa5053d687beda34ea3828a581e310228233aced9e71cf7903a3607be9c798c97325ee6549d47d9e738148755f1350c9b9e54f106c72af0a737643e8ab339281d23f57522ee11771e46ceef7ca382eaefec3c37bd21f183705e7bff2141dbdfbcbf08418a70df3dce072982fa8b0aca09aaaff31e28b1afd3bd7d194723c81878c753519834af97721ea80198451061480422f0220c095205d91ee771b011eee30f095205c141e97cc43de6cbcff9fa5cce372a08f5f5b38e67733c557c2440f639b905e182508ff33228e8621cacf2bfc1df6d9ecab1071d2f78b29e2ae2961db94866b449701d9b05362cbcaa76747f3ed4a65c993bf601269f44c63e50420c4a9b1fba682d40494aa2b920c3caa865d4325ac1d4bc6055281140ee184c08580f1e834589c16e4001d7d1dfbf8016c00494893d81b9d7cd824f25a5b329f62429f6441643c145a78c3e347cd816ae638b002f80f6b96d00aa2149fa00095e312724c890f90243c17e4049c3d90e59a434d9702589d8439b0923e149c52f278da5b0c512cd84ff55973bf62449febe35bfd09bdae9a249bc29d87ec5094dc5128a322397e0e06d185695e11c937d2c50c75290e59cdc3114d464cd8974297d2801484ae952ca1851982ca5d496c418111059e68e1189f1264e6022bac189ccc99929a594524a296553fa52ca87eeaf012459725bed9f4afb87cefe99de3f1efb27c2fea170c3df7c0d20c9f45f6bed75b7ef0eb6df3621f91acc9c44fd101292ef50885a8aa90fad56136b5b1a13777777189bd094b8bb3b7c77189b58ad3425d6cd38dca2bb6115fdb5d65a6bad431503fd9485eadbea7dfd541bd53df7bdca32bebfa5cd59c0eb8162ec3c97e35d89f130763ea707c6c74fd58fafe3491832bc8facc8aa39e7df7d627cce16c3b391a77e8e7723abfef55a391c1059f5519e0f0e3c681cf5bb7e7cd816469c3470bdfa601614c39b2fb7c7d8145cfb5fcbccb09c9eccac3347e4992e6bdc2ac23b57b4e711e367b3e08f95af6d7351f6c68b7fbbfab03e87ea81f276726c452c1c0a7f2d27fca172e70db532065a59a8fbed3beeeb705dede43c8cef1c0f83c88abfe3e5883cdcd5f1de7970bee30deaaffbe8dc779ecbc371bcef6f46e1afeb3e0fb2d6dd285fe0208cd15dca49bd6fd5238582dbd862711b7f96da2e6effbc698b8a9d73729b5a77b71adbdddddf0872e36c1a4a63ca222e6d1a1bee9e26d60f565750683b107e26df4664a51a477f08b70d11396bad523a57d4d189e5e2c2ef1b5a5cf88dc407bbc585ef433d264be9d68b0b75c4252e47c420f7f3e89fa0c601ff46f461d958c968dfe22fee77b596f671b54107cad4500696875a4e1c44d6cd751ef81a8619e5696d2ecefbf3c0719f9d12eec7dab8772559ec2f79201c1e71ebf06783c3dfe78dc3433a362832c40a5690f2503f654de2540c74b4ba89eed04fa9b9ad70e56f2adcadc98d51624fad52f1152455c44499563cd3da5c1fb1a7ca9fafb9ee07c20584b8e237c4ca70040eeca49888e4d238e6c70bbe1d4f6b733f68e4ee24dcaf677604fff90df54f097fbe0e1e13f698ec8119903823cb432dcbd493597a7d01fc9d6823fa58a0796fe4f933857677af3d5b2c9b867e299865e370b893bb73348e9e5af0681c18e8f860b5666895670ed6ea7b1b9c5501ec892916de9d4d7323a5efde3036cd3967777f6a054e725084957960f8c41431d0b22c1431c4d079b811593de6830cbf8bf467230fad72ef403c9f75c3067c0987bcd863ac3fe1628c5cfd39edfdd9dd3d337cba1359f4296e111810bf97d2ce11c029fbbddbd35cf85a920bdf04d37f7e0bb59c36e4ce7fe3e8d9bc52aab9d08f6224127364127d3ce2501490fa943e04a295fe120bd48d80afd28f403ce2a5a80de27bccfed1038abb11f0f9c457c24029a5744e2927a594524a29a542d0fa94524a29a594524a69a574494ae8b585dd45968c9db5f7a652ff2c56b71c62a77fe64b09348f740006175c8003c70000f0755902691cf279305d1986ebd537dd7e3f3c437f76d9b8687f77922870b5aafff9cc67fde37558584f41a69204d9847563b5fa8fa82adba4129745faee9af9abeacb67bdb4f8721f5fd326d3df72877d1659b1886b5f7bad7de28bfee765ea4694ced6be1cfa1f0dffda49ebddc8a21f5ff453a91b3d7a746921aa876d1cf21ba5612b03d76608cb1c0e540ab2d64cdb76ea41eef28360b1c7df7a579392b583e6c26fe769db661a3a716fa7d9dcc0257fee580d6cace456ee980d59642d51b20172c7906079be4403dddda5fc5a39b65c511a7496df19a27a40eb71e023b264bed138a20737cd7d1272a6cf047d2d2b633dc5f82de9559eb85ec58f4be1fc5cc59e9c68ffeebc0efebec35f4adbe2129979e765ecfc7c203abfa47b9d9fcfc347ecd9bcd46b71bb8f21035b1bb12706ee224bbbe276ee70f7afe3cdf03a5e90e37538dddf7ceeac673bfc713c9cf33a6f1a54dcc9a40937b6850d77d81e7a0d61d3c6bd7378f330d0ca9f0759687ba1fa76c35fcb71dae7fae4b072bceba53cadcd8db7bb8bf171f097ca1c87bf2e47685b1287f9b309777737811a8729353aac974053e3d0dfe572652233c32fbef8e20856e96670d53f395167c7766f9b173f7ed08c2c3ffb5de7b84ed334adf384b6b69ad675341e6a429d851f91e896c35f845fcb3877f76efbfcbfa11cfe9fe6f893932229e293fa7c1e3e3ffa44a2908c3f92ddfb3c4faff33fb9267f146a58a83efd88c4979165cc321d81ec92400431de278416c45446fd6f2847850f9594e0cbf80a9542709f977fbf9d4339fe208d6efbfa1446e355f89b51037f770696811ff063bec31dfe106b7ef3e5ab31cb1ac097f138a80e68e06f060e7e149e91c230879faa8171e00b6918f5283869e019d81f07d5a17a54aef33abb77eeefee32b054032d4033fd79780c2fe7773c18decd438f7efc66e40f2a35d5f1f0bf1976d53f36f7fbb039af43bed5f08c0ceb268647f06b654dc3170bcdef5efb4f4a3570870efe5a4c2dd9508ea11cadae9b5d4b359af71189192a1df98c19f7ca23f952cd508edcfd379423dfc7e9509fe3a5501a742f74f1072baa832e770f95dc8746f3c0977204594a6f2847d61e077f2d9454037774f8d30012a986ca59dea49a2953f067c84294bb4c1f2a6571ca17e48e6589926f409359b963378cc9b11bda642ec3e76e6ce4761f9def9d208e83f843522408bec551b2d0f64732f43ecff4b9b73688be63782d47e5f6f88b79e32efe8844fb1191dc6fff49fcc9a0a0a0a028422e6b5051ede08b1d7b70b8ffb4a7147f10966bdcfc70394c24e68a89c42c31a5143a850fd828fe205605c117dc219f62975fcecf1b21d98195f85a2a3b6a7b681cb76d5e678ee336a73ad49b3cbc83b88770b3f52db41b16aa3b4ee08e9b8f48841c16920f39a9aa8fb23fe16f283cbd6d72413029a594720b9cf267a46849d1aa41866546856ccab286d96b0a2c51b0a0e1f00765518e6fe3c9e498733c22c7effc23042ecc29a2189657c7245c479ce859bcd9ffd1f6370d0bd9fffa35802483c6d1e374771792f661a5744e29dd63ff405aaddddecaef3a3548632470f7a3156477279ddcb123347169892ca8d04206cc182f4da230e208ca9114a232751e9db01d95a05d41c1bd02c5cd95a7ee88049a9325945227cc39e7bce282ea4a9713d860a7159819473192945941469232f2250d2e9d2465e60c59a066982529639d1e613952ea664e5a99ce5e07eede4f947ff4543fe6432c145fe5583e928c247bf454f09164f73a882e855c487edc892b984166e50a1298c08a1556a670923b56a4b0220ba33171bfbfc1fa87ef0ff185f67691e5f75a19d05869ca3c94e4f80e88c940e4a43d71bf9681e0ffeff2e9528a1dd0c4fd3e7ff477e8abc88a5a13377e8c5122b55a4a58db5aad4620e52a8924de93682591c44a5e91244611c3130c531821a794531691650c67980c1180dc31188480e10720668ec8f2d90ac1ed1b5d8652b69c0f5f2373fb2184106235ad1611d6b6621a0d89cbd4626a4d18973b46c584588cd3230a3e443df183f683f683162efe8413778fec8e3b86c0fcf5777794307631a7304979024325c997295d34f95223776c8a2cdbdcb1294f637ce8a187d56a07295754ca5194241ea49449e2458a089478916244122f31293fe49a3b262549a94b972847b9cbe48ebdd01455b1d2df81f6bb6de4e9bbca93e9469e58a937798469724baee39473ca0c28b5b1a18b165070346382b28406e58916fca65cb83bf70af1a513820517ac8cdcb1165c7036f1c8a5bb2442e1a61cbac75a7065f7df89ef2ee5dee48e19a1207f2f459eb963464e48c17d57a4e32359fab3080d0df5478c810c3f03cec61e08218c104208216c488486e5a54d4a29a5740512eca4b4484aa6452a90e0c2f3187d89a2280d132829884118c972ca68887c73c78c78a0a2d57ac1dad66a1545ca95d21769d4342152a2c6881814143428208061ce39271413b42196a86033ca32a595ba58b2b028cc39e1ac4293523e91e64a13172f3c4971c552d111a8223328b850f4e5a66808177072c78ca6d0206220986958827008a28b9228b0e02208202926cbbf3264192ba2018a0bb7732c9edca804ee7655b564684800008000331500002810080884029148240a8571f00314800a839646744e99ca624992c33008628c01861000083000104380310841735d00a6f39d382ad4cea9167b95b6cfe2acb28ab1a98b21de486f4e8a117697d1d2e477b3280a9880d49238a2ba69e70df89f82b1160892a124c36bd5abc5d6e3cd9184e0f96ba2bf4d1355896f0de98586539692f0f31135d6f79e427d9e8644926907625bed5770736f9a3fe46ddab2712405cdfb77c8ccc546c7fc7a48a72fffed6bebb2d3850de8879e6b1f46d5856b0bb4c1352aedddce8682b238868efb1a08e0b2dccaf5a89523b3b2968f7d58a02bbf2bba343c3ca793cb7a711e7595fd88d1efbb008a59ac55388229c9badacc8b70d90ef39d4a4ee50482a85b8288efe08f6163bf9e53d478e18c12602894efc3845391b9c20211ace539b14548bc9711bca60095642b966f2abc61c8c8a661eb96995aba58c1a5857e8562729272a6cce0763f6952c86381ebc1dfa792cfb6fc1392ae0025eb73eb431ce8a93f2a4aebcb87f5a875258515e67c0d27bfaac000d7481299c279daac61b69ba69a00f48a942b73f3dd638d468a1491d839de69c57da6665a7bdc8fc78d13cc67aaa9b109a47e9d7f1f97688426b6feb6fd69b13a3c59353bf331f687c2065c8af51e82b3245caef135cfac321f81e997ab7ad53c44f7d6e782a521bbc5e2f3e766c498d9876a909aec9432911690bbf2ad9858d01a220b3522d9357a5e94160da4d6ddbabc85618f97ffaa637cc1758dbc432c6a34dfa9c40ecdaafea26d85456801a31dde6494c6367ddd6075dabb90c26d46c7737b77752bcd77384c1f4d2eaae7d5cafa071e041b650d7252c5c205936ccb73f793a119398a1a14c474882df1b20a082e4a78047bb52cc4accc32aa641ba1640e13a888d63bff823838c3ce975e31cf658a5080f5c43506edf97ae90c08e2fe6d4f9ddcddb88a8aa651e326cceb22c076cf9a9b72abe31a1b4231f9a10caac44be376d68095354f9cf76dd6416eae11a61eafa9115d0d2c8bcd3f49bc92d4a577318f89463ef0265a8b9a8dbe0db408d6fb051ba0c50077ad0447b8bdafaaa75d8f0fab1b13b97062915e900fed21b58a5a37b9161b7862d92fdef36fa009fda20b79f65298d4c61aad5e46823a249c3492f9888a5a6ab819b7bdf2de3f59350aa4a318875691860cce94843f088328261e87cb7b006227c4a15a929b0fa3690ecb3afec7fd9c46f0d48576b33304886b7feae1ecca495cac22c1513fa82e5a36512a152c6ae7d11f81b7559c526768902efd2d18ab2b1835eccd64f694afded1b861d9d7efda86f82a50814a7fba74a5961eee4c5b5f7294939ad5ca188fd05c535c82412caaffc161cba2fa0c93440df571488508ea210052406da21d9898a938ab9e34734c677f4a74b54a8cf7c45a336e40b99d0b10cb7ed8db0d10f104abdc45c9f055689fe5087c83409ba203eeb4486c7a0b2361dbafca772f7fe8360e31ccac877abdfcc08df23665ea8317e84dd1014a904df308aae270f7b4af2816dfbecca69c8cdd9b8cd8f32a01cd219fbc00fce2afcfb7d95b3da3c93f7c5b86b817e7a604534a61eaeb6746d28687877fe8e4c530ba4eba91b7e42cb608fda879b6a8ef95073f5f9f9bd5142788a86426a99709e626e1105d475eaac5ce4ab43b17e3bd5c40c510282ec0dd883ec5d0f31b89531d00a9d91f43a38a313e7599cfc507a2679a84fbdc587cd54a7283680195c400c1f32041342008bb8effb26550f2520249a5b7ccb795ef757605f1096df867e2cc7a17f7fd64ab48de5203ea00f96c06e027a3a1056aa2074e6f2beea64f6de34897bb6657501aac1509e5c21831b11d38db6af25f700fd77ccd17586d48cd63202b084826ecf1170fd8df227a7e5ac3b090cc498e78112192592182fecb44faf1f1010a825a61843fc319fa747d92f3025da0b40a17ec84a79749a0cd94e82c19beaa4d6930dfc11bd2d6c2b1a403289171dc8ba9073cff854b5e7d1c415fc10217946c53384765a7f86c6370d47d5950f8d236ece646ecf0ec265806a07aa4d87d91f865a97b96ad0aa978b2ab3e9edfa70b477411f4bb4e34ac1438f403b3c04f2934855e4e6b7cdb4a70df93d5f6dc3cfc3615460ed57337c6135c67a85a83f9e5db9e9fdeecbfaeccb8fb31af00bdea41505ca8b7129480939cd6f4f2f553e669c54922b04a0ae52721345230908a74b028b35627d4370f0a950854513719b01b58a801525f1d8bc3495caf2a29db498a90b81248407a9950910c84e430f4c954f4bbb61511e2930ced03e87587e2b131142d2729f5d34cb261144cf963abd416e858b014b8b7158b650d406f7635d5e3833974a0d0c689d00f5d99829caa791ea198a3e3bbdd14e6fb7c2c85ecdc479cc3aa712c5822a03f190410250482f9e372ba233aa910d78226dd7939db1947062a08cadc9d932b38ab1659eb3402c75bff0bcd3f12cc7a88dd0d1aba26faf3dd6eeb5835c9445fa291cf311be3b05dcfb7fd22e63bd3135c716c2854fcef3a8521f14867d2f8e14946b5a5f855e4624aa08da523ec51ad4dea61b84e6204027f4a2d9462f128fa053f0174604b22b5a2ef03ecd8c8854708926293c1a6b0252cf86636a8a23449a5b45307f8f8c885918aa11cb2d7fa4cad7a62563fd893d1fb713a101e5229796423d617405dcc933a4c4010d3c850cdc4ae84c9952266083e386c17c45fefe58a37c6c3bb64d781c705a1d4a53834695388228de1580db447f0d01b3ad13cc539c5df2c94540c72dc73a8dd3bb1b5e2ad5e0a201ac2c826d10e6fe1b6e02d14057d5f1dd0b51109ef0a5440b7342c27e72c25ea5780988c7dafd8c6f7ea4bd673f50ee8cec82387d2be4d22bd7015f9500706e80ebfd01065a28c416ed0993e9f7b6c28efa3fa76c727158422c1db5a06038d8fec524629504447413283d0629a36f601ed0580e50872eb57ad15327482063aae7bedb238c4ee07f6d59a4f398af748b8deae5c00645a4bef9067c3eb73e4c24f840b4a736195bac20ebe07904669af42da15a59b2859db4a3c87aa8ef35151bb1c220de416bc7ef52098829823c40ae2c1d3946518ac116ee3928f7243dcfd29c95eb42263c9fa9d68c27383880ab4bfe0d618c0fa765017afb7728518def28e3e4007d481f98a4aeb50695c8e0ce4cb02115db175c884b45b2049b3b453c57b09480716c83eb7354bd34c9336f30b4a8ce1e27ad5abb5b33097fe5da6519dc8a0d49406943b8a9ffabea57a0d6acff09d418c8461e80e4cef119e8a9ae6f594f8317afea57b62e846f0179b63d26c3c133b9ce6ff79e8ee392a64f9eacb07513f436d37c62527318b02aa6fc93d9bdccf1a29f735579ba7b83cae0f59406397fa0c42c000011400d6a05ffbef19dc8a2b430840cea21b96ea91eb1726d938b19aedf4789111815bc70503866352342dad0d1c57b05a2de3b8e2f9fc7949b8e73149881e2a39a9e3b0989b4aff633cfc1f0505a750faef5e9b81bf01ebba4402a6f00b8d25b6b621db44ca505cb2092ede79882001b94af7e8cff8274534797d3b2090e3dc440f65bd9f424037a64035f8eeb3229ee4b2c7bb99a0a0ec9e8712009f99ad6732932e2ca5e961be8d7c3ddfb7b49b7b7e06d12f027d5bed30217837579e14b986e6d0a64d684ca6bb9a86e61f84485edc376391dac7e51dc0a62f8cb78a0769ed9a69a0577cb10d1c1a1d7d5f59a97ecb6d73066db37e81ca92718aee97573a9fe7123157245d0a218a001fcee0667db8275490a79c174d9f2d5a015ff705b8d128cb198b2e173e46b849021204f43bbc952cde283b5c0a283d5baf95ce62c0b8f1bbeba2388347ee095b57731ba0341ccaf50c0d15ec087f6cebf753eff94107bc8ad72cff0eee494dda2ecce86e0f62bdfad4691a298b280a9a7418c36c1f1a88e07b44523ef4c3d441eafc1ca19a16060945e54f3f043a93b16b6be7e27d501b9dc362be21bcc016d76c540590232c1d3702cdf254f31ad30edbedfccc4d51e8413276d9c925c1a282d8248516f21a7957df04355dce1330f88657bd8540725a4ef247b66fe1c0141a18e88a4dc87db94729367d512214ab11fdd894306b093b055b27ca9653dcf4e532b2964e7586764614f71d37e13a2ea2b130395b82cfc0a1a0ddcecceaf2d6b91d79524a71d49daebbf3e4dbc8ca8b2819af3b83b371f066f7be1be99e17233b07bcf17da9a9f0c857081d5427e791dbfc4223742bb488367d152d09791ee26187f9fc22f924728477f22f20b1965c9196c955e736b77194571d664b2b983e4a19c3f7a69c18c5983493430f37656829556050fab8a788cc85897fa9474493a9f407f049ac7692205db4849c70bf1385f23f58276499014da3c1109ed24257cb036d3224293c695be3cc3f7d3dc5c3f625a7d61e6aa4440bcf4ef355aa83dd0c60b063f7d3bd95478d84718540477a9f76a50dd7a7d2c2ff3ecd8da91dd075f038c01640384fbd5973a4c2e165819897907c93fc48a17e8508aa6170b5a89f2e1e564fc68be5ffd0888e4ff0519034ac22d61ab53114774d476049cab03d389a857010eaa8e37ee5cd3e8aa5db2679fce776e54bb27092bbdac7d621de20c65b9793b46df3d16361f4c8ed46e767c49c5c1aab29ff9752191aaf3670245c2e7b83e44be4fb146f3b2f3ee42fd56da5b628228e3cc46ab16a184986bdec48a14917656d37cc51ca1d7e482adf753f13510b0b9c26a3dcb627703f2019233fbb855ced38ccf0aaad7713a347e273caa4d48a90253ac58a44dfa6e0f1fcab832dace27bdca11bb328ad2b436751fd67b83ccae4608791f1f42a075f2d5a8eea95ebc149668c919dee4b2ac17920c31e9a22b744ea28d47ade24d81deec11dec56a130c31cd67d67cd058dc96272ca3606db764869d15e11c09bd65f4d22bc7bf20f57951d13e972e5102ba87a17616a084c99545f35d6872a4586d02ba77d4500be57c95c8b957007de5310b1e100111e76f3d5d78206b31b581878a3acfe6e294848f54c1478c74ce608760675977a399d5d5fc43c4b7d28e7e010cb18b59b583354873e1cef45e42ec093c7da52506449fda20b3f50a638b30b39ff08fd7d342446415d1d31b874c6f136390052ab067edeaba1ad831e5157f25d020d2912ee8d3c286d0fdf7bcdf91faa255b45b6523a77f3ad33daaefeeda95e4cccd562f1400e5995355d775adc278591a23383d0777e1231a1cc9bc1b51f998db7460a7e1fdf833583ab2404c786ffaa96e8271f35811027634976ee28feb0e139aa413a4d04cb074b26ef5d0382a122682eea63d4f0ee6a52ad085e8be0338de7fc29740bc21c52ccb4f9171344c0803ff690af8187630300ebf072a0cc3f8e2e30de524f2197847ee4362d3cadf25ab93b52fa4b0f7ec953664cdbd5ac671d9154a30359071ae12ea68a39466d428a3dbd4479300cb18837d53c797a91cac5d3fd5d0d90a9326c4d30f7809ebdb1a5f19a5aa37e66a21cbf888118fba2bd97c0158acf163c864ecd01bbafb53d84b8e24b6bf96ff1968a9b40df9dbce9374f72d1a959562e7e0a48f49a2ad293018f770965ae3eaffbd4e191035a7e7815d4f468bbe21b49b25cf4cc8d529997d92b8b7f0523b06de0f52459e94685a71a400b8a7442ce8aec0208bf307aead5a4d1a9ee8a72d13bc51910153e73fc736b471fa41490386f2bc6decec8699ac2b40dacfd585e7614b994724261ab8e4ee569966c28cf6b67f2ca7b0f39eb9c59f528346955b1374e53aee0621dc29b38d4ca7ae965648a952cd2902e6676ea1dbc074620ac6fbe26dd15474baa7606935c9df12b2f20b7c50e4410bd53bf116796e250a2c3a1a34ceaf2c89fb50744c89633e7a8c3209ac49d3ca22414d980495a8920b4bed539af138b1a22bd63a581f3a5a2d3b74994b1858a7544fb521fe54345be2e181094237aacfb7940059321f60b60ffadaad2c28ba2994b62eb009e156defae91166d5aabcbbfae73671508b2afd612c146558298ef9b0ab70e830d7ad397a2157ba7460e0e4bd79f50f745096d47c8edd2e8ebe23af93c8b0b3303ecf2445bfd80928fb09778c67d1fba2526d07937d799e66ce688d8ba25113a965a043456474ebcc179202facb51aa0a1bbde31c2bc90aa438a7f122f4b8dff660db778796e678c9c1ac62cd05ab60793a23e399f2132dad75c4c148eefb52435c181c99d48b9106f5117d041c5ee55dfda16e4d73a50e2f422ccb4828552f06f3aefd5e249cdc918b4fcf18dc48a542c6db63c1c9e9be7b6fc35010710f089fcce59e10636acf0154e90a984a27bba3669851baec6e88dce6df0f449f125facd8e346713339f35ff35ee5a66005ab865295799d17b2924eb6890bde09b33baada3b8144847ff930a56edcd2ef8f457d4f6931c1e987ebc120fb149caa5613c7cf7a851f06f0ff024e5c28853ea6a440d5b38a8c0bc530549372c8dd67067dd26c60c8ba16f87432873d62f62cfa61c9a7378d44a466d21c9925d4731cf519e392a21a756714b66d00f9035c710d0e2752d454d672aa019c48db5f7a07dba6b2af6320be032599341cbecf322b6928240533c13aae0e0a2231ee95f4e76a2be9098b9491265ca51a292d2e5aa5bd1d499508271dcf34b71b6d582727e081c5166281aa6d540d0d709ac431db35f59532159cc7b59ca28d9027d1b46464714a7e2113048d0e550704e657ee8b6754e70261b8e08f4cef81f2cd644d81ae6cc534903710e85d3a4c9ed90a452cd44fa1b3390c1f5884c8d5f4f31f00fb84c55dd7e170d815ed73dd14eea26a691695a1e4a8a948c6294f0713286d91121c9e8787c189c2cf8bff2384d36099e46dd48966a163d3a575c1a81c34b8871af8a8157ee732b15e39062720a5cdbb91261c78249f3e0b497368d5234f113c99a797a07d2fffc18373a49b36aeaa2fa21bd2027dd7a54f340104909843b48c59552e4652a438557b1923f8b71ceca29617db2a242c34b9be001bab5725f109b0208c16593e91e7320807063ddb41b92f5ed94ecba10fb3d5dc0e831131e125a9e80f8755f0952e66e4d10aedb6083b1cf1d41cc097f6d68f51c25da1de193177bc47c0e423ac4bda05f82abfd4f45be632f261f41af2a7ba457ad9641a33845aa6aa06de2addc3b4691a9472a160f16bd90403f8ad35521ac98dd205b71a18c33ab725057e089d2c6ab47058275313a4c8f0e83a06941ee1cd93efdc3338d973715daf5c358699b8feb7620fcb5c8b5967a332e33da08f7fab130a480fbe605e589265572abd41ad4c0c07bd3193b69b5464c9a90acc46c12c24fb1c9125b9fd71974c61948f0508c0a0428db27061f6faa35e6808068fdfa6e8daafa5289a51b92364ab5796df5b249f153d9d1a775acb90ec8385c7d1ff9d07e7e785f7f4f61e9a6561f3417350e624bbdbdfe579342e4c222ce7fe7cd112d0c3cfa32fb030af6ec3def7527472712396fd3ce58b370535eec413936fe0ac5b3403d4e3c1c5f0767354b270b81754433f99a1f7c3e2953545b14865f47f68d231e535380991c036f05671e63e580d2dc07fa09833257452b5ebeb2cda4277ec604c121afe973699888b31850dc76efee9b5a203f567db2f9f05e19551f319fc5e0204f64739016635f24da928bb8109033efa77d0ed96cb1b478efc2a7d865f435fc275d16a07e43dc7e145c1659fcbd28f7ad74c8e916d776bcd6129bf1fd161044bd7fdf8e910d8538fafb5e49f10d4b92399637408a25bc0c2932090eb4e938f6e91625cbc83ef16faab94cf5fda21ccabc84d9716b36ce068218d57bea1557b0383fa45e4ec0e165bba8f6cdb50def45e4d0771c2c4a850fe44408d8a596bc07d35d3f3fa2f2f789f4d7e32f6ea5e973945adced4f09e46d635080bc402119a84bb9b5111ff904ca36abaf881a1a943e3a057329ea76a86fcc595cb5d2a67c2d273426ba3c7ab67d5fca60b937c606122a11cff2294a788aa38860fb2501f5e567e2f6c8202c7591769024bf59852e9713b324324e8d67f059784b0bc3fd671a93b613446c885b18c34dfaa648e808fe6da4c57254d602d157e49dca68b7275bf43c1a03fe1062237d3abca4e86c277a1ec3761b4c7b4acfdbbbaf66a0577f3c97dc878d219a6bec340c0066b04dc689142d165eb9b40cc9124ccb3fc0a2d8add3f09f4244756ebf9c68519076509a5ec43c72ab00fc63bfb0c68f71b3fd820bc1bc812af47527a11cdbae4e1faf034ba1e9ef6cbe0dec4f37b071fec7044b322cbfc503695267c4350c236025c313e708f845ac8c29f24257127298d0c9ff31d4c12cf6f92a082450af67b43c40d1c01e1f94ee4b063d164935e003517a6a3d725e34c0694bcd5ab2fba2a71a1146b15a4e18e6ff50a08abfc96be249bf51a64685217e85e1b27061605d0d6476ebff905c0511ef0373c7cf11190a7368cdcbae21801a324e763b80f21f0bc054ea1d7bb9895a861d14d774abfc255de44c0c868f04afc5504e852812d96a48a8c186bef12d768ca73b9ca9d96defd45dcaba6b148a70ac36c6e1d62582c9a0542c612f538e52237ebeef98405d4c8632637186e90d139350196526c81bf9c0ed8d0a00512f5c145f3583ab286af6dfa0acbfc0b960d03a723321d771c97803058a8d414c4f7560262181021dbe541a2303c71c48f91ca341d8e1b3f31e0e878138386051f050d840cd677323811621728f2589b9f5f7bfa20f47c18717baab82223f5d2000dd9bc437efeb01cc2a1c2a3a3ec4b25e4273274e029ab3ede4d2434216b3f0e20e63c4a03babdda959c98f92dfdf7b177f5bacb45d88500c6e571c837122505f1c1edf5381e056067d3825d5b8769b01e5758d6e8e59b93ee7ab190a8f0fbe43af727af008e2b42d0682b9a78f88da31b57613b469619aaa1e8754f71ffede85c9969d5137821658da67a46ca73b5f0d13875d8a203d142c81e315a6adc014fc20da3a8ac40fe26a951c931522b0a16ebcd24128bd9f36b4724c341653f89b0f3adf939d363a23ae4acc30d0b99238ab9250e0903300ab26174edb091571332750a0b247d2f133e0b643ceb074e6e43a48e28ac806755a95a61219685bc3f8a9b7cb6ec4a84962dbfe97e0338bb597344ede5f2060c62fd1df807480a326231e29a378a4f2fc7420687d02452230fa4f7c24d5ddb2749975a7114cb5f3c63ddf5bc98ed594dc464a8581a3c902d3d04fab3f157a26a8d4265d338184e2d07eb731e12e0febb708f6bab4b082b630813d6862189a2701c8e220cb2f5ac11ef5c95f9923dadd465c7410377ae6c16059f9c45f34031675568ab6b4a477450a2b08b4f5cf38f983840922c39a7709beba13c52277462ad021135284056c616b81aaeddd10e331a44dd58f9e1f1dc663b04469ba8ba4da897f738c6acc23f9ed823c18434e0c8c1a5390e9f931c643513ba47c2b136eb605d3b0b238bc0a431e578d6fb7d4812ae417be670f0f255f0b4e03e10de4e0aa9ef9f6a36880d71ba7a36b9cb91b078bc6509253a70f9d6741111a5dbc7418665f097bd1dc556cb98cf7534e6a1b7c111f8047d2f08dbbc14ce58153ca4308abc5987f901c0ca5080652491c40c7784170f093072bd90b0aa98b81787e64ab9258bcb85621d38d30edeb07704452b42caa455ee172b20830ff129e4e0fb010236dbbafbc98844fb40a35159040ac144f82171f543481b800047a40ac8ffaf39b5d28f1db636ce827a021a1236afac9178cf3c4c8354cef0f0a99ab9f28995707ceff19471b6b3c6592b56d6f7662b75c65a0c58a0976a8969b8239dacdabf7963dedd9e770962972e3e3e85020be0ddf169aa77e0a5408bb48bc5c23c4625cda9618afae6cbc4b042d89693a05b46defed256e0e697ef97ea8a2bc693e1485f19328f4d959bead44c2c15dcd2a16a0093dc4921fa6cb842dea4e7ac5b919cf5c88d88080950a4868a906099522505096fad19d2c17d98008ca047f4247243b9108d31c9b3030b8a709d2a95319ce2f296c421654c7ee0742ff12df2c26f679ec11cdfa611cd47eee0d3265515bfe4452553c8dc414c61a486776c635d971159cfce3cf895b09002f8fba2d10e86cdb426cac7cab6d760625ea610bb50145c0bf6daefefca75c39d9bc3f862b8b06de06f62920c66c65ce58ab5150dbad27f207e42997fa0ad47848bc844df801231c10fd7b66b1220b0a84fa683a449024b8a0fadbf2a4d5cf689051b96242740f24b1a530af714c5b0000a86f778cb5847a2e9d197eb46e874aaa4b3be8051f22e45251222dcea505b529f7990d81525937b4815608b2add533c5dc95e0a69d8a0798dc6cc018b4e9380172ee8dc2b54e5b07bef085274235ef178d74280153eb590f539dc3f17829704fc1457f27aeb18a40c4ab42ab124e92da1db8f84bc9151f61a0010aea7a1ef96765abdd5cf927a669ad08bbe864cf1613b010b1400781f45507ab1e32cb0e1c2ec142495cb4271ab4bf2886858644741974a99613d866817188ce4a88449de3589056c6eab7911e1a638f6540c991fb3216d6238ac0f5e4d128bffeca3e130545f753f88266f10baa3ebcc5377cc270beb1e9a11b86e158a637f3f28b3d84024cb8ee1e6b91d73253e90452aeb8f85bde0183d1505e3a86eebf276a769c996e3195e9c84c19df4e3d2a954e25012abc713c74a860c5de9252a3afa6c5e468180a2a9fad3abff6dc73847063454d60f03a463708c799458430da0f5f5dd04ce0fea0c94708ed2008dad0fa5a8cd5b1f1c7440412ab010db1beab2f57ac73d66f499523d0cb6870184c97b0a690d44e162f26c820cc83a3c1af27c1f8609c37e78cac816cdabbd701c7d39b73f4793e3eec3bd2ff69f07bd9256d8e3b1a5d42a564ef647382fac0a7373132340af07446545933b119ab9beb2b4751f49ca8d642280cb7b9a2ddd1f4b0fbcdcd9b910e2d19a7fa4970f103088a84d5a6856cc170a320c755a02fb91cb18ec9200074f25d3f160c0d971286aef7a874c8227479dd62864cb51fb53865f269dc6d83a5eb1b048f584ad792324a818c60269af13eea2ac3b61504d2fcf7e53f6faa3f8e80325fe682b555a00a9506126c3ec22b926f29ce382a78bc66d60188a01c4be18062ee681dddece21be00c03f9475ea743a30e41020788114bc79a12b0a562435b4ff37ded903985e380dfc3d4b21bfc8f8c964059bc8afac90014064a80571ba865c9670b3748ed6e70492e7d83e2ef1a97710963607a8b4cd4b8968ced41ba282e27610af11d36c3a4092b93fccf2bdab2514a80b9062da3191612b4533b433a6d0b04c045a0aebc4434a096e7615ae51d6721fa0c284cc70a7c468064c4105efc9e82cc75fee003efdbcc42aeaa00241ff23a9f341dae3141c0ae32e0fae06600121b1a33c198fa5b7c52395d2d6793cbfa21299657d55a637c6d63a7d088f8eb0f0c8430cc66602232d2918ad52e5fda7350c22bb87338745b5d6330e4ea78822e5b30f2a6619f90658476c0d2321d578b93743938e27adda1c4a8e7e3a03232ca797f53dc99b2dd2f368115d14682ec3902ab5d384ab366723c436883b3a3316cf77e8fa5f3e7bb6e298486f8f82a668de8e69642c371c0382ff61c2aca0ef50fe19a430d91ae035be9ce50acf11343d2e8c6427c2f7ca73ebe6b3e5d42baf765f0c3b8a83ac40b1686e1b4dc2ce4ae59d661e68db6fb07fc331c2de98037c717bbb9d5c91f46a45514bc1ee3c302fa07011613a154e652984421e91586349c8c0a2b423160153df715dec4bc80280798b6d87490619314067d8d3059997370b9de848363d67fd5e0ebee0a1ef14df87696e200499245c6a1129d1baa8ad496a1c0e7eeeb45858ac5b816071405c26a8282f3633dfaf362c7ab866951cd560a7bdc60c93ed81e9ceac2a0df55ad851f188c798533baa3265dbf52a5c92b90b0047af258ac0accd1c10399dfedfcba72bb972c766ed3b744fa368a5535b3e09f894e6da6556c6b2947827a6eeff743bb5e64be1013c62000e0950a8559ee5e0fd0b264a25bbe5556be654fd12e25781fdfb87d9630b85c4e9bc828761358da3c07816ece6f9b207ab8d039d0e964fd23766235d869e2b3e08edbf0f60c9270517f36ff65d30d8406d964aaa152ce1ca6dc517659db5ea4faa8b7ac7e3788831bfbbab57313d358bdf271b284629b893412a3fe1f8a6ab60a930cc38b4cf12a7d09f0674f4c9fce30c155403ad0b0b99490b810a9969517fec7c6952f3b00fdbb81ed1c4c0df6d1534aaa54e20d3b3d22d389f56d94245cccf85154389730aee9f31950111dba9abeaf17dd201439064f40518a7a0513e3ecbc67075f1562092b4b452f2647f5434d6acfe7794fb51a751b89072001e4a666138c059a7c76ba0491bbc705e672a1ddcd5c6a391068784d94d55aae403e00a8a732331c6cdb85a62c664c2ae2b5aa8176380a436e95cf2dcd1934c8c08e40e47b8cd7173855b2b9410ae19014b4ddc8e57867688fb5829ca313fe99ed311fa3eac798b46711b78c4afd1f681464bc04b20a87ec35aa147442261a2502b6d518780c1bd043221679fb896691b490ac0607d347030ac1b1f103eca38c6d758971cea912bd9f47ff311ed0470a291b31802460d939c51434e001430dc12456cf43f77fac9310b83ced488ec46ebb2b08997be76382b82a8194c29a7b84b7c8fa4ada91fa0c3812c2912951501e3cc38290cb5431881b951516c25d3c9cf3e740ac253a12663473c4e42e6e77ea4edb77a71e9978768b44667bd68d27440ca020f2fe4ac04cbe307bda9ff2a59b52db99da38e0e9766a7bb6dac5db4c4d238e32c9d16980a31488f0e9ce9d654aa410f97fc4e03c47af56a1364200b6e0e7d1ca4346deb47f391c28fe38eb335084349bfece453db4d37be813147bddde0c4e6eb939e3ccb33f42e5ee106c1d18662bffde96b8d4cfbc2a07a0e2837b7e35ebc0859740715660c9e210179828310b4cc5891502b75a1b890b6571de83bdbe988525b5bf8e2bea14b0b08841ef9d2517633f6a9190c5d6ac80308faed2dca6b81994efcfa9bf0ab21c58b1dc89a1d02436ceb8c66287fef5991ab1db37ec0de445725f1099851f17ebaefc08efaa144f27dffcc56c56b27d28467df7a30108371d97a8f9970ca5686515de83559d1eb6be9e745339aa4f334b0801149004458e67ec1edb88e002a169e14545c208c4d759c7f9aa974a44cf151f384a80e01420639949545cf6cd412f5031ef84bb7beb7ec27af457081aae5f17290cd080895025b5277fa1f09f07caecfbdbf02682c21eeac6bed6a6d48661e5f1c85c50a0a795fac11a178aae1106e6c301000a384d5a55c4996006c222a2b45c87182c1d96abeb9fe8205a6d6dec827949ca93cd85842b66e60b482976ebb63f4493408e4af1bbdc85d0e96da092a38bd92bab603ed90f207f42700f951762f40fef7c442c3195d6fb1d0b50c9334e61280dd21f4082dff8ca15b666f5adc3ed7125f86afb6ea50f9948d46e5f3ef3efa940afba7d0b946984e238934dc0ec720e9a3538688aca05180cf565b4c80cb4f57c2818582704097111fbaeca6d461998857e7b25c317fed5891b61c5ae1fd8609e7115325c961f4f21e224e76b49ef0b89a51c00d2925ded5ed8b722f935ff0fb51adc1714f16f441590e7f937c47fa751a948254e8c44bbdbcf277c9e95e3d26d25907718b0e5c7698c6f4c23e0e149fa7a195271ec86b4542148f53ef67dab8214d773842454bd15a600b582b28dc27c2fea8876a09f3dc098000c2df90c75d8d2c56a8a40e8d28fed4982bdb21b458e957acf1fd59b9854f7c964c11b71e0ef8ae456a7b38a25571cfb40aebd320d7ab5e88e00dc95a3db046ae9460c72bb8e5fa99f76afd4f13e898037c7e286ef1ab3c77d50a52d2658335e33f216750badef7058e656dd51fedaad0b4a5034f4354947d685b9d488aa7ab6dfd4b4dd4d885d7565bc0d1e38a556a8bc4f188ae620376a2d7716bdf41205cdf889603ef8a4dd83dcbaa81b778546479ff6eedd702b6950c428710f7fe3ce5b2420506388a40aab633f0846e407ea43a4a38c6e3022e8e9c7419983839c168dc99a9d6920f751724ef3263b91d92a63277f9c5bbc053b10877ca1d0f5aa3fcb6952101d429122f12bb44b51d1e33849a0f727704882a2110037121d441ffca71373703c693ec15d192198f0fac4cb178944ca79cfd5dc8e4221cbe75e6d60a40c4bca9f292cfd995a915c7dcb5e57fc10ca726f8b5e4f87e545373f33b0149d1dccdd1f992ddbb87f0f5d59edcb7af31679cadc80d3ff2872e716a158686bcac8048e2d197a91965ec880d5252e99efcb4d3fcd139c6c9e2015fd17ef7d4717007cdcddf7a88955fc10e36448b23f5f89bbc40c31de8944493ae52380feb73645a96ed2506a8ac123daa1834a68484cc2f32a9ed6dd64e0f996b17611dd14703b9adf3bae4642f16103c5ac0b790a0171e084650ec586a630710d1d83b44b062dde63b731b22af03dd4134047152aa6d3fc231dacac74e6d9ae374517a1d780bc3f8fd68594c41af0d39d62e09c8623f53e56c836b85ab1ea6ba6cc13f2e29c882509198f35627b8dc9866dcde5fc148171f1e26ab8c3ad5a3874cb59033a2cb108333ef1d5ea115c784c26b0980c66e7b966514c543519f8704c6030b46602fc4f0ad1aae0018d95e6cf2db8abe1b7a00c56b022c50243100ea7ac6473c6670d33812f6d94605b74af26eb7dba8c205d9c1d95690d3012686c424ab53bcdd5034bc74eaa9061e530bb7a2e8a2d67fa9dc76f47c796bef45235d49f11709de2590cde5450f60aeb2a7b456c40db76f3c09ff09d50e08eaa8b9f0ab4ad150e168f849e088e6f3bb44240941ad187c3a2836d512cc4a528b235efbb2fcd9da3467b53a805b8b44a8515e6ffc02cea3eeee494ba231f1460db6a14d7940aebc9babd639ea98032fa36e3acdb17a7e7413fce0ae72a16dc9dfaabdd3b02fcd32c248c9fc7dd059310026cb837cd3c5cfe004428ac64c1ac2160e4aa6d10fe6e717bfa644d84022ca4e026b097f4d0d7314ae383a64b09dbbd3d4c267c05e131304a4603a107aeb44f011ac3f49c02423748f0ab7741f2dc1dfb079adc470e0ae5329301af783fb82083ee1b5aa551452095c134710e00dfbc901e0df5df4284099a8dae5f6b0ef7063cfea66c1efcce0c7f50dcdda36db3fbd413c4660fd1651802dd3997b6aec6d0437c2d9e09fde29ce2ec0b934865009f646ac56d6abdb102090169aa82d8500e334e307a965c4bcf3ee2836b36cbefe0bd73894a93d74b976918475e41dc4911fb031bace1075bc493fe79155e730432a8b9e9521afbcae85c2f636b7c71c0c96a9be33ffdaea87902a6f0f550b7be455df53e3e00a291c000c024ba10a2ce708b92e0c57638798e01161766999409e62211d6b0276bc5b63c96ca400dca3340d8c738f00c7bd0d40774eb3e08636436bff89ec2009ddb4134fe069b29199de21b02d26dffe3865c9c6d4fc1415d095f3a3a77c5c095d9d53ecf5e6f34a71d98022ee670b411a4fcc08ed8baa080db367fe16ce1ef888e835588754e5d6872cd77cdd2264bf796f2e7e1e63d60ef84ab46a00ee6a0062d40b79794c6571231e2da34c5a8f7fa22d2faeddb4b299f39c1d50370dfaebdc0fbade8fb68edfc2bdffc2cb8279a2f7bfe04934266fcf79ef947994ba3d3a4d0bc2a158a1221c966c47e1c16c837a7c2408abe29a5e64de4c4da8d1b20eb82eabc7733064793637a4d50f6b4366cf2cccc7f342c3a4a81e86f29b61db25f25f64145cf44d18fd0d78b9111beea3e76c69fd5902ca9502a5e24861a99017f7e750a8af09a4ed29f102811ce7e70e638819de114e8e7ec5f19431a9fff7e51ae424bb4743db7ab355783e1902d23a6603180e6bf134403fe8214a9712181429820e55bc5cd3b100854fce6fe01402d62f707b318f1b4b8b0f7fbc1d6fb4f2bc254bb0436bcc17e475350bcea4785533b6d9da28bf1b58e47d183a1e13f1eae0cf94bb3bb93bcedfdb41c87f0c0d2074448c732e96e9e9136f4644da8328f4d1b20a5b6833f18a1c56dbd65ee2cffed7d4b00e1c8ce26b5d72657501f6a891baf119b1bda0661030080788e7923a81f6b3ae14849178f3251c0c5e2fa32e338e17274d547136877750cc8d2790d8908c7068818b0a755afa7569908f9d32834e111f30cd7388f14f694f526e57873646ea125726a09cb55212fd37b07f42840ef1b416526b766e43bf86b910bb0df338ac2f494cb5ade53c96876cc2b983961eb8cfcb496d75b0144244ceb59263404fa1c323a39e9d49050accf00fc0aac0fc27c0a613e60f4cfe07f71613d487367e5b71af79b2d92ad18ad742902878f93285068b59a75a3708ac163566d1824fbebbd2080ba096615f16024274b2aa23fd405b380492df64585cd1e7e3a9433844d825f80d1eb16a09fd1fe0962afa42a128e476c45461ea1901e784d1469e955012c7aa4954af27090b1d5b7eaf782beb73e6e90bfacaedf430c87866f7b98b9ae86eec7ba0de7068f6019488276680ec4d15d91a6c11c48c360ffa07220d6ca28304cd5c4755f66fab71f6806b05a98d23f56c8c4862723ba7fe175c0a2bec9283411b505d19e5fd894ef72c9976c8a4db8fdbaf70c68974b3b24477c3d7a5bca8ff7d249841e96a420bb1a9feb52b1acdf1041a818039ba5ff2301258b14e6058150d9cfdae31d655b111393bc9ae9d1ad2a041101b474b68bc84026e7c782075df1a5f7d6b06f304769282e76d9575cf4e5bfc551ec5315cca1aca1e318c6ebd94950b335c0a408080153034ee2d019332c34d66fb4e011004cc338b7fc82723425042fb82785d3904d79c30963392d9579c1fefbf451413a557e0902159c7fee2b278293c2556e6ec4ca58fcba59255d3541386bd39dc1f64dde6a69e17455191384db188201843f290c21a03f72dd995ee220a59fc180c1959d8ed62ac4dc4d629e587170dd1afb21eb8d051707baa85448013091cdbcc13b5d09f7a5c4d21375b7031a2c8fce9cdfb88e840daf4fec321d0431da2ec444d6c636e15ab152033c867c23838a98442ef99cab90ae1e6287b7c1a1cd27e516ab3a81e1b10b8fe41374f4bf34a446aed089921ed245d15aa502cc86e9ccd09b9964f815e2e5ccca4e9246f2962a25dc7625ef841d846cf1d6e74dc2c11a6a2c7a5636caab41676caae31d076126f9572627e8e7b855df6f793618a9b3883121a87b42112567268d3c9942b32c25a96ce5910c899284d75c2e8684fb14771dec52f87e7b33ad48fe1f27bda72616b8239623c0640a3b270f8a1493d1b0b193fa0fa0614d868c878f53f9a10c57d9aa5c125f60119649da0fbcb1453c3a1f18d494f4f01a0a8b163140befdb3e5cecc2d1903bde1f9159234d7102ebec07d6be28dea3c463042ff566a1ff16305a631829eecc16ca4f970f350d36f2824af7cb8f2a8e3deb3668719280917a369f4247bd470e1f11f90834a425e27426a282296dec151971cc4a6dd7127ae6e4c25882fac02209ab368357c9a548682a46f900b47c6be8b65e54916095d3ee699a9826713724c853d4ba833118cea59dceb2f98b454fbd5c678560ebff8241fabc9ef58d66972b1959f1db61bab6670bd6da724e250b376a8e7ce5813d04e48e4f475df6f47309e357bc3df256e1a2a70029a410223cf85d137df3bf227e426c145c3361fb8a4616f056c64aa9eb74ae91bfaf1766dc000bd94672798a00ce741abed3144175bd2b820afde4ae29aba0b8e89be0db9f02289f305c266ad8dacb389fee6c6998afc395d1313df391efe416e6edd53f1fd9b03380c94cce1cedc3516c14faea3fb2eed8508bfc066661314e59411c1f5574a97f486e0e140d8d842e94c16a738f8d8d95775d7b348e4db70c171fc7ee3f181d624a17c1d35e6aeb8c7bb979acaf1338a824dd5d65ed48da65adaa39f78592ab2afbbda75d9cce718709677c8e7e0904ec62e32c7b6301a93aa250fc5914b8e4531891ab7dd819642b22ec99221d087dc65b0c3a24982322420fb79d5567898c6295b51dfebf327cda4d0dd1e1abacfae9ced1eb50e5fc43744621ba095deb3ea95d2008f414fd41f8e0ff340e3ce8f559cbf7ab48fda143d084211dc89d939b33a0bd3d2fd3473a1b1e59cfded82be673de35e00e1fb640adcf5cff0fa4c0ca78b8f53602a61400174cd04630a67c4993e5a1e76f3dee5c7a7e3e6cd2a7c1af62a0931928a2feda0d8541d6df79b3c755fdb96c5303a55170a4d8d189df7677b6a17bfc2c47017ecb5e0161edc6986a2c4414bb950c0e234da864d898cbaa7bd0c16c4b7c63ebc21fc3ad3a7966af7a3fd29845b575a67a5c1df45c1ef26068c812a7a552307bbddcc74ddebc9318f959aadb3582ce82762565b566c4bda0f937c6d728f9032c3da7007d44eae1d54493ee8e43149e0b4babc81cf65c8f92d92a0134e7bbbd98d617a917a1995eb2816db8d56b020cc37a1a999e9928d993d47ea357a10280752b3f2d419ee7a2153647916f1623009268187bcb95a9946da8cca2e17e34a6e80d72873570e790b03c3c192cb50393d4f4476e6fb639d5bc76af0e958758c1e16f086570e7a6ebfb0726a3b7d7ab16dd29838dac9151279d89b7ac5f21446f0102d6fda695c2ae8481976fee77066d4000bf2c0bda2f18f7dffa26e096d8cd98bd75736cfe9c1531e0b0f0bf817d3422daa67862b2f6e4c0577425535a65daddddfd6ab4f6f03e0517fd50fb33b7220fe081ea842c45ead382a2081bb67ab53699e45e3ea76425d4d50bb25e04245732959f30f772ebfd688751c5c518c3bd4f2c6d57726cea07f1f6e2f2d0ae57ee1aa0241c222c64961b5a7619aaed463cf5a2873de9b4afe0ed71967cb21bbbcab85ce995f972e8c69f760634edd19f5d6db307351cd0a8afd6ad2fab5b38384e82e401ed5a143600ebce4db724b538e9d567de5d63fe4a730715260581ee0503c0770897c976f7b6d6ef544587a574f3404ff8e1b8381fa52d958e782ff260aac0362a14079e06f8f5c09828d2e545e35093b31df05a60eaf2c743bd6549ef2867207ab648afb3646dde3ad9c323efb1b4ec8d221d8c4b57d0e39ad2c52f5037292ac4692655f7eaa4ce52f242d99152e54ba88e2a9e4efb3af2bc2bc885a580b65c7608b814dc68918aa1d12efd4b18a85ad42430e5d4df300f5ead20c647674ec7c42382378d6b754c70f1e53f04e03b6ebd8b668215463dce4b780e7347ce1dc860fc36b24defe94316c0379aeceedd4895fa06252fb9286e14901b642d2cffa35b0539bcd8113fa8b59878c4953db36bf5a8b22900a58ea4dd87fd28e4257214436a11881797493ac5ba5d6acba6b4c602da827d76f6b83396f128481b7d1ff489b796b72432d94c858f82f1c2527ad305a96b6c52d405b4a06d727413bc214c8afbfe6889b55be5aaddba562cf4f8dda95dc342d863041e0bc0905171221c613ae6d5db1a24e7b09fc64a190bed5cab02857590841c4acf7ff85759336ef166676778a1db6c13eff4df632da8b221af39c31da96c221b477a637b1bb4e8256e350502594376c046a922966f81fff07326ff4238c41952edc6b9d9eba55eaff6a64a829073cee3df1b19b00ae0054e840cbad0d9233234242829542296c360f83e7f265da7ad9769a1a6e9314b8cdab8d120cf1a54a9468b4fce2bb87f825e127e8db0ed04cf0e05715ba3aa92314257c36fc75305a51ff04af30eb061123901b8de7f65cea1de2314298bb72dc88fce80dd7e1df230cce17aec18b611141c569c5446d95f858f4ca343e6d911880b9edcc31c9b0a5b02f84d6880013cec671d34adcfaa109985fcc608a10ef98f648511de68a3351f0af91f5f61048df4509db72f8d9ddefacda365942edaae2cf0d0604fcfc79609324ab1b44b56153923d7d3cb8bee012fc3a71e64f3492e021c36d32580e57d71c2142dcf4f4de7469488b23863864eb7717e571c2e8947c335401b26cc59149c8298d8044b5001e6ec0b5586a1bc629c3edc50bbea87f6ee06b6665789abb130b4590bd099d8ecc71c5ebb19c3a30e8c745b801084e561cad9e0a958bbba5f61af8dd6ce126c422f5639d825fae06f724ea22a3c4f02b983b6902b9aa4a799e232c322421556a130ec29b852c1d7259e1c9a584b0798c03bdbd64d00afcad065f1c398840b94e1adb23759ccc45a56a652902cd23eef567a0f3b9562efcdd24d5ee9633c5b0731b20a90bc04fee9d76dac786806c431fa9ab54f5fde6ef56a0f07f4b8801e155b59bba9c87b4af4d5703f75cba5a045accff6ac9f8f26f103546c6449a4fd505f537c610781cd1f568b6d02cbb0894b352f148d6faf9866763c3f39f0eb90bb7f3defbf4b4d2c976d109c85ed3617f65d74da8d653841deebd05cf18dc98ccedf2eb3e12cb8695e348e0429767b1d1ef293c97b337492d231f60b36124d113fbdf849cbbc53f68689079ec8a94f4ccb58c835d93f4f185a343ae8c9aeea6ddce1c1cc3cdfd9b60c8bb5a9dade58525d551259fdc09ed48dae46f711b922010df8c5c9ce45f037b50608e3cf0115334baabf7bbfe51ea274b7ce0d2a175df096ddbe26b63c73e81f0b6d24b70931038b71e78899c4a35f9bea9aa87f39b7572628a52c01aaee1fc6b59121ca4331f7bc3d3ffb68ad98ce3cefffc64539ba6d857d3ac046bb8bea5ba15661ba542f14563934faa642c44c9540c32a6c04d35504acf20a898902d59430ebb64c2b00d78f313234d48f0fea36e11704fd314201172ea76e5340224f29c684b71c3db731d2fbc87d36c14bc57c6eee4bc3bd962046389f2c276e22c2120935ba0c5d6199e94ae6bcc069c43e4ee902262f4dfce6c7b6ff622e3af847d7e27ac8369a5a42bcf705e9c0d4aa52a13c6b54cdb5f99de55d5815eac050460dde085ef60c734c76eaed9646160ff1da8e3d9d566bf05c045e7492d56cf32affec42c874e64bcfcdd4aa5108a84d1863ba856259c356bd0358e63ab125c4f0a937996d24def3f7a8bd225b86956dfff477f317dc2b9595eb8e8f34f535c3b8a0cd609b15aed5a19cc5ed1213cd522adcd4a00dffe5f04cadefed0c0252efceef8436469ef3c8d916ccac4ffdeb653f8d3c80d90f6db6e58eccebd4d5e69fb4ac78c3e9cd62d89fdca185069279e7dad94fd1de6cb56bfc30cb2b565cbb72e304845aa92c2704b1b5f50a4486cdd1219ec5f97a91c6ec43f16b6512fb16b9ea54e9628952e6a43996fed06eaf1ea5db46dca12dd31ed22da1fc35e95fe49376964ec2e2dab793f3d68f52bdd22e2aec295ff19398002787ee90934a2b494b3e77d3dc4d41279a390cb80fcd17ec16d027253fb9dd5ce701b36b3b00f16efe46b99742d6898df150d36b31de948321d8c1fb46482e0f66473406d5da3f1ca845dbda34e67673b2975db2eb4405af6d5ea342b2f054aaeb26ba06bcb385384a47711fe6610be8eb82111e50790a848a2775677c99aebe0bc284805070aa46f9a7d02d35f3ba2f47ffb0d09ba4b73c245c20bf89e77aa76cd99a653229a7a8ffade8c311e915bfb7220a6e20d751c171f08aefefa2905305fabc73efd42f486ed76cf54aea73e83edce58a9b44c4a4b714ab1430745e4976daefccf260e3269c3686aaadfeabf888ee3b6bc1acdde77b6e3d58a265f7ef1f261b53da8131baac4976549aa2a38202d25a884726362a29d721d4e08dad5b6b86bd72d12b46a2770cc416d73ab5e837e3cf2deba044a26888c3feb72af6d8dc32932bef17a67cd5044a349e604c453b6753d559a38c9b62878b94e28e68bbf27c29e53442dbcfed9fe5a01eb95e3d8e1c8a8c370fafae9e1ea520e11ad306bb49add65bd145484a2e6a6ca741e5bcfeaf9a91690dcb6c18553631deb0cf9fbc6a50f1c520d149a58a4b8b0f9f7babe6f190bbb70ef0e354b7b07b3f20a82d6efc0301fb9d863db6bf1c88b3d0abae8b92674f60f2bd61e86eb2af134d53215ff69f14d6a97a461d0cd85f597d7e3a598dc2c6450c9819228f516900f3660a69b703822166b0489937f0c3d169522027d838b7d564c1e0aad2cf3aa97e0095ffbcfbdf64c70c7e91d0c6362c5225c6083a996ab6774117edf6aea75aea7c1a29efdd88c9e3df6d5d57d25c3da01b9348e53240182f7f5da83ffb0b55dacc4667dfe3f6db350f254ac55401003d289eb1425a30919321d06ca756129927551ca38e8078e0cc095e10e740e535b7e9b5e4b24448e9f40707b85cbbe895ba62a29f7d38a075132fd5a4eb00cfd9f6cf1a9b5b096d9ce92e9abe99e28b0a23ac60bd9dba20f96059d417bdad9b2bd2096f5218b404ad4b88276a000be3a87a3f932db6cf02c6537aa4dfa88e7ada2e9a73445ec6e06289250c5cc7a928d54fb4a267069e83bfff7d83c10093760b2c12be14e9cafd960055f16c8e3ded4a14be15c32c895a3d17912388b890100568fecb947b1409f27e3236075438a0247ffa5f94235e9d5f0f7e227054afe05beb77f28c4bd54a2a4ce17b5b96cc5f2bc92715984bab23e4da16ee646f34b2b1ef2a5c84d695368ff080076b989ecc602a4e14416bd41157ee125225e41e0fbbbc4d8c88b1b490b855fba06dc2077bb44beea37fa3962c69473da0a26e4bdaf0e9992c95365c34ebe9ff860c601f8e2f451e3b14a6985ee17a9f7e73c1fd8f4c46526770bddd0668d5aad8fe12818e10801662026842e0ae4acb426d453bedc953ed9086892165d6545628929a968d96a506887c9698c953eab3879b7534347a632e15a3418a32aac7a619ebc09f78cc913d043ea0f447a880b65bbdae46931c5df7867730fe76c0a46c27b9407ea3dc35bd63cd1707fd0db4cc91409923d5387b98e60b2fc5accf0062c9448e62581b8ab377592d127366e6bf6ff894cf41b014ffaef2af16f349118b7008120ff2633948c545e1ff94a8c5e7a6bb26f6410b2bbdfadd86d707e46e1aac256f88c289ef83037b5dad7b2f50614073ffedd774800147652676e2c1016377cf73ae0ca11f8ec5c3f70df0d301b155432762fa48e7b318abb42f03d7853beefe26172d0cafd650a79d12e427f5832eacb00dc15b651e6e4ab4fbdbfaeefc28e43eca0397224ac4fd22232ba46d7934ddadb18a5f575c2b62636ac390c8126d8243976e362470bb154f8836d8f0f966a087bb89fe87865cd491743ce0ab3e74d4f27f588961fc6a7c7ed762c8cbc06ae6af33fb5c8fb8201c64a3bd82cd8d500771baa35d4aa3c8fa58d262ab283773be243e126d57df275e76136593501e7e060fb4256486f436573e1c855cb50e2e8ce542102275781007b7e139428c48005bfe030de4b181a8ffc207716ac4a8e9c877f37a68026ebb57662470c9942c03d3147e041be78e9511ae51e923ac05ecf7f7a0a06bee3a7e3f934cb50f69e50d5da1017945828e7f1b0305baedbea925a7f2b94389d367adfb9d660af9a14f4bde39d35444efffba9c6a3060096994051c4a98bceed94f05c3bc23757c30414072ca93c5c85efec042b4d0395a9b54e9c691b568980bdac82dae2908e6d25a30fe8936229ef21ca5edeca163a6779d83923d2dcb4aa585c52b2063d64a469261ed12a632eceeb8d987a94c9315523634bd821dfecfba4c05c35d44009767c4f444d50254807f6fd2a30e0bff7968be59f0a2ad94872d0520f8b9e6201cadfeda5f2c0165e75b93f7e4d1335af4febb92d97f22273336981845df25d04e8c51bdf033899aa5cf47295c7dec2ee2b82fa35f3dcc9c8e3fad8e8c2fcf5996766fc7b412d76eb9489968c2e1a8cbd0484861393a771ab7cfa73f85f17aa697e1ebe82c5568181d384c93862d0fad4166fdeab4ea8a70224098238e18ba1682da0b989923e1182c511dfadd8ec8c974501b07960ebc18461a2c3d7d02bba702e8e79151b5b1b36f0861d55bafbd5112aa2ce0f35be4bb8d3267a077803009dac41905dae489ca8f5a34cc9e16a34cb4223a75093d52e8187727f859634c12622168aee678c0c0778458b6c44c55263b74713b058dc45726fc5f5cb6536ac0d65abb1ed42c2825ca227a3b10c540d1d91ba5a3de25e3182238e64cc0881e97c267299035a283c34bd59d0ee2529cda7710a9ca136795c6be6a032ad61cbd7c5189149e202a41ee841576cd1187705160bbfab55136714c5ae4641a1baebd38974243da0f30d9487d4d6fcf2411a2044a585753b0f4d0c01359979200eca4c5c6dbb64e0baa0564170ee5959ba6dfd83bb2bda45b8b33c143c78108e5600cd866fe5d3045de239e5cda56a8b20debad5390bba5afe21dccab9f70cc87940d0862cabfc5bc6d52fa397af112d5f151b9c92b36e9ae197f3c518acb3e7bb3b3cb16146317d700a4f8937a9d7ba83181915681a8cf5840f91202d93eb5e961e37b16980de8c0135baf6cb141b50a3640fe41e0ec19eed0cbb618fac86f8d03adcb96aacb1a35e84aef151b9be6c21a15ee463fbb491d3cfe3a4967182284ee96850a150eab1086c5818ed01c6f3c90adec55d78cba5d3c3a9e2c9ed0f4a11f149c15885f14c815bcc13f7d4c7d6c04c8e2e8cf45fda1f8225b20b14c2dacc7f01ec0ff9f7b7d6c53c6befe75773fceb4d4dbc875b862cc534a88595651b98e78db042c6166b0c082f2c0571e4a477cb8ca0d90832b7ab2c26e77bda2cb321c3ab7195f1a9d450a23eb9be856a1cd4d7d76c7691d0fec33340a30c17d6c4fa58f30815bae406fa78256adfc5545468abc884efd0efc3e8bd1d287ede4e8042ff8cff42a7a4340be0ea4d518f186ccb0ad3bf14c55e5c9aef0a53065c3a7c68c0238c1a227f484f2cb0316e591c428e22f143173b5aa7cf3d7316f5fdb108db468192efc47f2f61435fbc27cdc435cf7eefc86ffcacb62c9dd4056de00850d8877577cb3d3a5d8ea024e40c28e7f272769b33047bce351c4d9ee71cdcd0e59d33924aa3e89c71b608e76bc3b00b5f8f7130ad11a65748b828825cdb5d9f18a90522681888ffd340fc9f03f17f0ff4f1af80e05694ebe2c3b14814ec48a42749d4ad24de9349a4c9490c2118eb9823ddf7d2eb8dc4a6a1ef0eba909b8b2ab2a2b2f0a7a38905a42b30900417330ab7e9a8de4e88dc1877ffad341988907a8cbc09ecd3fbdc8ade79216e2dbd1a14c8509f4e8d04e6f30ca389618dacd6920595682f61e00280505af5dbb5704cfb469c3b39a7f78cc79634e2e15289fe2602d37d5623147e0f887af07ca5e452e55c3da7695e38574b9bb748732edbdc756a2f38bfc2a7793c58886f79632c689b3c5a16383f1e8316fca796b910e14e631a24f4d38c5f50763b0eacb088eb0771db745a0a5fcc6a41b13127665a9b9b2bf9172bc9301cd59e3457ba7486f039ca478b085433239f266c9a27dadfc2912dcf7cda0b589678ca6db989e832389429819817261f346e267ffc06706847efd290bde62728151c495b62922822271b39120a4770cb6c89a494928a22c43e811c46d4542c77324a220da0e7f52b79e0e3b1c8a0b80bc88b090356e01748eb21d84a7e24803844e2391055443514cae9d7e25221f8b12614ef2bb9554e27e35b10cb5aa154be3345f0b1b17bb02c1e7dd31a6c267045b5895a1d3f6a81d9b4772c1f670e9a7679ab915ded512525e7318f794e5dfe78b8d7f2c48fe805f5b75148d447e6bd4551e9775f4fc8848debd856b7f8b812531e3fe16fc0730b14d4410cbb9f16ddbb9c7de21afc16b895852c07de1429dc62b1e0e2a1782e6a08cb6ad590312003d2de19aa4046f4859b2afc79fa34c6f147d7cbd3a1f385f3fba99b866eda0c8624025527e8a371c41c85114a5f5bed61201193263f6770b21c5c1d5fc2e08ee3f06a5035223269c53ab6319fcdc3ad2a59726a70dbd8b011ccf39deee7ace7bfd2fd197b0d862c4611aeb684b2ce98301db582b44affbc50fe40127e9f4925d3a318ee6c819cfb0802053bbe81c47195bbc4870de81a4a632b334a6220273c28b6e8d51d626d7617f6830fdcb1c75980bd8f0c5e5c310f7ef76657b336bdc8fa4437c3258b8794ed1848fbc3a8814f6b273f3838c7dca3aec7a62f415bd9a45a6af9bfb083912a35791a32f155f15ba1b07badf804b5c042413ad3da04155e7d8b3ad3db432bf06c6996d5fbd0aa843db6fb4c6fd34c6a026de92b5764d92c5aafe9f93e1febdf7c247c4a1ecb2c34148ead53569d55c332e93b5aeef02a5500570a0e7e14c5fac0d0365d7c3f8b414099e17d4d94869de3576c6e0e1820218dd27368c2edda1413e776820f28f1dda91a53f656deb3308f6d5f37555790efa587df19b26e8a6be29785d126b9a5ac06ca1498bf188cc6582a60fa150ae7ccac7fe4c6a113b5f56cfc88c7f11f63e1b5a0ef5f0c952c404a0dcca56f77f6080244e3ce067d1412082ac1ebef61ccc9139a0bf064eb9c0fc12fb56dfd42bd06a89237075097086df303b1def7f67b1cbd6da182c956e5097b2228b1c2a42ef1ff0834a7c0106d02f021c1ccda9841156fbd9769b1cb9500baac77efc0da2a211ee3c58b4838d6d6d2d72ce930743e3a6aa4094ebd1233fcfa9c186149b1beaa63c86e331dffdd19e633423d7a8fd32f6313c5c02acf3d663eb38a2b6879b4304e7494b6011deb369a9978dcc224d9cafd6f28ae639c61dd89db562f9d0049d0e69c08c7bce70e670a05ec9e9d04f9140df76573116c95178b4f75a5353270f768ac306f48c500a2f703227578e38108184b153de00d5237768f91c117ad96453cf45c29ac2249ae5b05ad156222d5ac6ff6cc799cbb3d2083fc54232d556b467b9799063460d69429007e4ae4241a47e10c8dd25394e3185ed67db2091d643d6b750206bb8cf3fe9104c874ad963efeb2d21f67dc26c2080b906d2150e3698e52a699907f648c1f7408ccd301ba51c14759404a69261d4481c318e1f06ee85cfb0014560a0c71502492f1ea9cb9b3883f63f3cdabd54a7c58bcb72b1cc00b3b06ec3be67d33ac5b2a3ad6a5ee27845b158e222eaad93c5948f85e28289b1db112912de5de726f29a5943200043704c404ff345aadd7c7984410102d1bc5c12794e2611872649664f5fb3fb5fb0cb80b8e6493823d29a064a7d48947f4f173af37883988a81a71513afe2114f9b9177a0b063d2792f949ee65dd7d0e647e4ec9998ebf53b2a5ebcf419f45fe44d5881be904398f24d39e55a399c4d4819ea81add0c06fd862cf41c44927b2bf4fa85c6a1a01f42b1017c30bffd0e0ff441621253efc045a59ff165a29248a2d2e8c85d91fb3d29e880768ee69c73eef2063d77d9033de7eef3386708fb49f7b9d71ef96d0a26717ffffedd263218016512aa5d9ffbd9d35b7ff7de1677625d0b34ad57ea57fe3f9f3b6b3f1bce91ec1effcff39fe00fbf3ff7fedcbcadf7348bf53b4ceb0fb56896389109e17bbf1f65a2ec8acb7effeccaae0ccb464cf47302fa5bcc1de715338aedd36a65d4bec939e79cbb9cf37b469f7eef3bd19b799ee7719e48d630376616b30fc69d16b9ff4410cc3a164130eb4a75c445da9556ef705a230c3db1f08604ab777ddeacc6dcacae589d99564a7aae5fbab502d2ed13d51115c9d27aab38bbe5df132743272a5a5d20cd32099d3e6f499cfa02fabc2101d3e918eff6bb7c2d0ee3f76b70727ea9c8002d413be6eaf7c1e8597f3eeb0510f52725f034570b3bc93be65d96dd9f1f6b2d4deb2d765cf770073f74cb3d884eff04b3e6decbdeed599cb777f6f7166bf7c42d5218d9d35f0c4e12756bff93c1c9ddc5cefb09660f83d9f3d8c2f6fab6ab59ba3b3f50ebdf6c5ff696cb95c609551a37f24af3681657849dab948a97572ddabe06e1e1e13c77dc4f6bab4c7f3501be96e99f9f0f0404040404c439df9c733ee64a03fa2db2b000485c31eb402fd39c03bd8cca64b2c9c2823faaf47152ee94266a7112f1a7a2d08f387f24f96f202e92223a7f5df7be611b7c0b9a001f68ffcf1fd5ce5bd42edb7f64f5164948f5fa1f149f4f521d188c94f3307c6f0f51af4bb5a852275eeb407382fad9e058fa49e39f3311f07943a242f79c9e15c4e0a84f5083b1038a4516f7c4c841065f8a8e9f0316544dc76f9fa42ca8a5d24174a6133afe2e69aae9789c73823b92b923e977c0443fdbdfaf3d88f83b8856dcf0d5bb1f4261bffb0fdf99081f8bf385f0cf39c1b5ef3d16499bab5cf4ee7624ac6b0e3411be15393c1665734ef09d7e2ddb1a3cd1fd86cfe28607129534a9ffe783c4a1f067eff097ff1587c2f7f01ffe138750e8fff0fa3f8c43e198c4d4837e088587e7efe1f9f39f608a268a3403c409fb39bf0731e83b90e0e7171295807ef69164ea1b46527ffe230b420c12674af9f9486612a21238325530a91387bcef80b2a07d6c8bb09ebf05d73d0ebc6fc1f5ef8b45005858d0272801262add8e7386c8df811adcef2ac882763bdeb7b25e4911b5265efbbc2189d2e9cfaf126022e99c213069c7fb33697e3faa754edabcf6bf5b443fa3853c8ff6d001039ac32c67211161b84145101731f67993d2a44f09f49c1dd0053ba42a6d4aa9eab47f6138f99d7e6038f9bb568dc0e8cf9eeab4d68893b9e76a64ed4dca903efb156fe540578d6a07a2a0748ea0ebbeab276a67e268154103f1797968437c7478083cb1c801ad95d27a7fb06a109d44bb8ccf4e27d10e72cb01479fb729525d449f372965fa0433e0369f16687d9332a3b7a89d45d73bb87dfe0ca13f8fcb38c516f3b76f472115481e3377a2eadefbec754fa7d1e54e54b476dc3864bf62e98e3b515dfca39eb5823b82de91e3964640e74acbdf1a8e79f74e5498fb0bdc394340c7b34ac34f5469f8bf3afc67347c8faa94bd951b2daf55279d447b1da2e2a6cf1b153108e8f346054827d22c85939c771f569103daf1e351c8bc51b9d3eb8d0a903e414bb91395f7936b1a71eff149c1fcc43b849f76dc8fead72e7a7227aa6adf896a7e8c0f31ae4a2f5469f50b2773aff995a8a8a4c52d8a988ea5d3e7732469add5de5b1437417ddea2d0a1d382e959f5c764d65b142075fe0c99467061c996269b90315eca6445a9a1434e14102ebe17cf2d1b980f185a365200e2c5c5fbbc5d795dc1c1f21da1e3dcaad58ae45caba2015b37705505a5ca5745e60aeb2302250914214386d466b3cfc7bdb35aed4321e7da27e4499ca8277966407941e33b01ecf306a504284f4e703401f2a5709d0071faa69e6875afcfdb9336ddcf90dafff4ace212958aad757dfddea842f6765ca22ffbfd601d399765b9ff8dd5c377e0f01e9ec32f51a910fafa94fe7d15f4ef7dfadea8220cc714e312958a0e4fc7a59a2deabec37b183b8c4b47745caae3d2dba2ee85460d8a7b5ca21aa2c0f779bfb4ff7b6f54f1f3b271894ad9a2ee7f9e3e1df7b8b4812dd2631d97a81ea5ead371a9fe12950afa755c5aa252b19f8e4b1eb045ddef5f7a5e03fa8934bfea93d4c50619169f484147f667894a85fea0718922e9ff7920918b1f50a9d8239db21f4cc9b038376dd148ab6c912ccb1e3f58a2aac044c2cffd44fac60ff04f24925675a4273c9e54f5a114dc5f802261a439eb7e986ced88d4be1eb5afc7ecce6814df4d9cb83e6f4cf4f4796342a78795d604c785d2b3de8c343390ed2f73301ea04be0125affe538ae130abfe65bef51adf75e5b9f5e1616d44a670993bb611d4fcde7e657f21b269501a915c2b054a7583803a0092a725218e32b75af075226ec98efe573c405959b8eed631137ce9de1c6c4cd6d89d70dbb61565a68da11757ba2901c9e87df0a663c52ada0bef5bec7527ad3bec7a10bd407bf02f541a6ee89641649dabdc7dd33f54f9c5ed8d230ef8b1f528efe9c765adc91dcbd02efdf724f0ff73c3173fb73e2e4774ac5ceabc38f320617bcf7f6be0ded982d1d1bc0d5b9e89ee31ee359a9c84d90eb680bab74c7bc655c1ab6c1378393d445f71bd0e1b49f68d1b9dfa0059dc1c907e1b5abcd347c5aa7350f8ee6f00b92f6d3bf43a2efc915661e3ece99f3307aac7410233a7e4cd9a167945a5e9e769797261f6351c4b2c074589b7d65464c183b5b1bcc4d9f70a599583d31b2bd7e3cedd029947b4c97a78da54b93fe3276436c3b8169ad361a8f191d6160d8da696e2b5c6db1da3f8ce8f9a1ab765c29dd7079d269b834ddc6760e3136601f9f3648cce83c61b66d6b8fdd5eb8d2345869279e8d4cf1fca30e8fcd428e5d26cacc1619bac716177a053cfb84ad399dac45817513b6dc74b256ab5b67bab5b656b3236e1db10ca0472b0ea7652706d6da0375b5d080b25a724069f131430b11195f9f372d55390a97f5e66967c9a9a1b3c6687c5ab49c760fad1b9b8be31d5352dca85585af6e5c1edad0da82b5c0689981d27a0146163e323ecfac2a32b2b2a09a6e9698cfdc9c3baec55598602be50f5ce508aea2e40508236731c1530b31c7a283e5d427c8e3da7bedd787e33e6f5948b48f22fb0ceffabc65fdf8fabc6591d0657ddeb29e3af9b5215866b318f7ce6ab519b53004698421bc828cc1991a224605c9840a546b81db1d02c7250dbeecc197cd3a51f54e4cfad916d9a2ef8866df48ce886c17562312730fcab8b3d2ba51891b67aef64bad9b83a0002769b3fab4fa21c84cbe91a5485334bd30465ca4af89533b6794037a760d6e56b26627ad05fb70fad62ed1b386350eb534e08b594de80a812f665a73ccd49245ac7c80cc06c40216ca3b36b1925b52868a0d3d34cf0957ca3d2e9401b0e5d8521e29ab941e6c71ca0db6362575514309005b8df26a5d1193a4061a3a8e946a6c3fa84a3e6567802fa551016a36242502388efbd12dc16264acc80f2a61362c357cbc30c158f0526e296918c1802e25016c5e25079b958966cae92a1d60b395784a05d8b80e60a350a80b70a81ca921f30684654830c9d03a15d86809b38517e88cf905553229876c45ca06d83e9bcd28708d658181cd141c6c6e54e1b2e183564d2c694a27e5d4f3b67966b611a2b73ae58fcd4709011b9d9ac4a92cb2dde051d229585f614a01d8e64c3a251d414cc9a7245282b0bd29b94ddc9300db84214896d20c1a37e502b62d0a9d010ccc56530d2568c391029b12061d60ca382a941d6c67a80c9c8dae40ade6581f6ac2fc426374116100b7cb572a870ccf63ca6142982815a682147182d4d9e85de77483bf95b9664e49a624b2d11f1e081a37aa60f882254a9a282b4ca646352da010a60c6d5cdc944fd34c9f3463a5089b1d252188a15742d8289b69470b96b24af9c1d6c346417833f3d020a4ab9452d26c256cb4c98e72e2a121c80282112871b05ee408418e6d4aab9cc0b695a566665160a36131d028e91a2e655439b3c1b0b51170404912c78431355055ae9ea6bc9429279cc915c315091b25c16b8669dbbc33add029faa4ac494ac078c993450e1822f6c94a93d454906d0cd60b6a64862903d8c475016194b5101c98404dc4bcc2b931b4457516de107552cbe1adfb4de19f1c4e9f572314dcabd6aedaaf6febac62adbd8ef46b5217b4e33440d1817edf8ae49881d895eed79f59651d98818dfae67c732eb9f1db302c00cfdc16d90fbf2f8ec13401f8bc7a003cac94d671c6a903b400f8bcdce5f61a3e723c01f14e3bfcede824da0300a401c0e7958068883b51e90e78edf346854ebdbcd2760d9ce4dce438fa958269a7591b6077bd95abf513e3d656fb1cfd4fcc5a5b2d140de2039f3f396badb5f689685f9ddf0ccfcb7ab0548dbea7851e08a286dc7a9ee729e5b93dcfdacecabe8b96f0becb2daa6c141ac9da3b8c71873b6c3dcf0dad947a626809fa9f77a6abf5bfe7f07fed9e57e7baeecb167d4971de47bfdbfdeb3e05ed4472c5e6aa5ad714b6a87a5de4ed1d16870d35a8524a3d319de7d5795efd0bf2ba68023efa55b9667d20dc7d87ee7fea57c761ac5d5ed737a36b6badf5ba4472772091dca038fbc5ea9e62fa1556158a343f8dd3abd785a71bafabdeaa7e49fa352245fdbab95b31dd0875f0c91ad6efffa4003f4f37f5ebbed7e5757ddfe77975afebbaceebb24369649446991c541c277df7a0af6c5cacc9ea6b747c85ad19024af5290a840e99a18b9f814fa566cc867c9ee7799fa894a7f6bcefa3de1755bf0a4a758a31fe32c623c6d81b95becf8ff148de8a31aeb892208feafd083aae168350b444fd8e0471607b54abf7158ccaa054bf947b95528ed26ab9ade3f7dea8630c1a6b05a148500a94ea1d074f043dfe0912c1289a80cefe86e7307278a191cc1657fa1d84ea2bd14aedf39f0eb68acc3c242fb7158ceaba0ec4eafac318e3ec8d60547df0c876f4f3e0be0e3bc256d9a2fb9cebf02a94850279e8852118c57d4fb6e83afefa95ae08fb475780e048aef046300a146dadf22a54efc2b0f3b22ce8fd06a368090a46815260d406fa41ca8d2c74d010e1029362c1f6a8c2a3df2a5336b83e6f68ee705d4a29a594524ae9fda33abfc6c9a2ebf6e9ee6c3e41ad58bd9cc749a34f276d76db8ab64f0b74810e3837346ebafe40133229dc034fd86e5f7f93567b65f6ed3839313008bf3453eaa57327e94867aed8dea798a4239705cd1609f90bc758aaf8b5a2b9d03ca1c38ff4a13e6f6870a0a941c2a560099cacf51a891741e20161a5d544dccecce9b6cfdb191abaa6f286b780668389a1614b4bb132c3931da5ca8e90ab1e2ae4d070ce406d1b679af6e4e922672f8133829a225d32703973e5eb2a4e122d0211dd666a3319618899a83133309ae8b122b6d7c4a097acc1e1b56378c9c23245ca1c25688c683114b290b0e7b42015a305199a0b9f21357c7be2386903a3050df6854cd68642656f61a2c350dd80ecad1d9a87cdaa0c0d1084322e76d8e133431217b89cd14dc26c1c5ab6952a1a89934fcf912d27853dc3042138f40c5e4f34bc5e38c1e322ac84173490341bc8982db64543b9e9325042401266c836e1843722b44026846d868c935633f6e59983020c7bbeb61519225db40b2cd41065e7b1d25b45b0f8b8a103842e1b5b86ae18fac89e2e3a34c07eb0d945ca68195c6cb2b8980266091c15f49b1f20942065cc8d1a63666c257d76581d6d93e1899b2066aa8041a3a573606d214df69115b49820523c36540983981adf981810a8eeec2f1ac8bcd17cd0dc11b349d8f2b262e4090a55ba498856d2a3cca1260cd48b304d35e4d94d72b0e068186ab696ae0f0f97efce95dde66a7749528388ae330535821730512a80811103f7f4c8e19ed816014cbb69e3c54c0a6174095b3b6ebbcad50856584688fcd021ecb8526eaa2f4f9bca9726d0c5581f3116c0d6b41963463f8589daca722baf5eb08ac1c8eef3636a8726a1d474b89e787035dd19db71c49280e9176d5c3023230c9e2d23b72d75b5039154a814ac192f6ac768480200140583160000181008860402712848c2589bfb1480086faa32623e24208ec23808822008621006601000400006001004011886a13046f43a002d76b00c9f3c245f144519f9fb7ba8e54e4bcab83bcf094d8bb6b25e2fc7f5c23ac17454cec19107521f081e993f948a28128cac923b995ce80e8e3b258e06eb01fc9c0989530d9e2ae354b65f18646c8e354cd25ee13700c2c4bcd14a35b494639332303c480900269b03d794595a5b00a35ebd4b1872301f4e3fe118c6ae74f116e96a2e6156765f072c807226c9b14ac7bb811e905387d8491110671e2061d75c24914f91e99cdd1b6268ad4c23e43d028391a19cf6ac7dd8370e3ebbdf5fcc2ef9e311c4e6bdc94bbbbf84e36ef87164bbb5aba433c6f91093dd8db0d77aca834305c161add1d64c1a10389aed08831b2f4b359ee47ccdbdfafc37c8c611937b42d1b098d973b38ad1bb9d97c7e0e41a84dc42298dbd6e9f57da4f9141506890ab3624e69abdd3412a57922960321426d2138f8866d8a01eaf760ef49501f0e6e8297b526d1f3bb5ccd221636bfaa89910b02ac547b84a4d5c398868cb558a7f7791df0f2ca12f7b14a31a1c89ebb64be67d2e0c082bd22b54133518697bf3241a8bec39cc8cb201d76c7f0f08e19f6b9c31ed28d466608a33caefa28203f071e6e250f7e4f8c5e093cf0a03e3c1e16a429217054f19b391a7532be82de2d9e861dc1bcf1d6a4b2ed98c634318a92f8fb664a3986597c508d1493ce88a53363503473bcb8600209690250ea5bc1f1675e62aa9a625c733593008a00c314f4f6e33f800a78015b34fd6bf78fdd368f49a96ec0a2f6ac9adef88ce7f341f7dc9ef7738e6bf4219c15225bd02145884cde855dfe0b0cb2b69aa95ad3281e87921874ac5fd6ab54b573d8b99a3144896a38fd619c9340a156b4fe8009c5819a0bd3b52d7b6208785a388a3a61bc0c627985fa085babdcd9b7640d205491b6549bf407125e3603f0841318adc424824212a6126428473c08ee24395d0f68170cc5bc9fd142d8e51f6c44cd782417b3a163ce507c0bb38b7a8146212cd9793a94054cb21bc955aafe2141d3a60cb6640265f08040233d910829b2e00ebd4c90a76f1946c675d10a0159e19abcbd4a2a9ae348855619a92eb4322780babfff8be944c6488600dbb1d7f5429caea2b8c2b5fd1327b073adea06f618a28a3d453238a83c7be07289b3203abb8fc10d950a5607cd30b911236046e3491e881d4107ca3a36fa632046a18d89a0d0fe583c42b110c7b70401b07ff93f74e129643418f4dc8260cf35d4e59179088ca038e2845cd28c0600737c4fd385d1a1ce4f887f8ef6bd998d7940cb367882bc4a465635b6f6e5790c88256d647330f26d9f8c050ead24678bb72f0f6961de40aabc798739e98c8f1ec45ef5d037fb1c0fd911e03a6934a926ccccdac68b7f8eb3f784d4ab2b15af8015279566485856432fae7689c45401f3f10511e3b2a0b6269c1398054aa9e14ed0eeb41c3ebe31bf92d87e23ac3f076246569d039212e6749b41bf935d115aa33b87a349e8d7c490bfd0dbdea1254538db48a64e318701bf96e3b323ac803188be3548140e0e32ea4c8af806b1fb46bcf1676b3739a40ef1bbe036a310f52febc0d05cb1a5d13256f5cc7a4a775bc3aa6a361032ccd43993112cb903e94986271a33f3e7fb4644c698a4af1b1e1e004260e59ca4e16be4a0fa9f8b49be25dfcad3e1daa591b6c6cdf750fe3fd7a6628b90e38dc9186ef3673c614698051802e5651fa27216f8d740b91e751e461869e7e6e9ae2b7c97614ed3aa3e2ac3365345f6c505eb6c080798d13db12b3d501a4615ba81862e370929bcde6f3a26f2340bbe5b092086c20901a4d81c9320c88717da7f1791923410dc713331eacd26dac09addf938318e6fe6628135fd8a00f7cbac6aab1048b21580ffd10d7039094fa0f47c55a186421aa01d5dc31ebff220ad7def4292787a5cb2668f35ea6f67a6bac46d944ac9990f5cb61436f5c68c398ca5c6b69d6d8f92eda8cac4f6a7c0162aa5dec4b36830a6c6f8ded916b8f86ea650b4a15ccdebb25041fe2984e04797d82dee679f65517f712e0ea40575b477bcdcc2db17fa5c6672efebf04042415461fe947db18de00aa4bd618ed873994f34fc67ac3bfc473d9965546c65db0c6dca7edab00ad94179787025da6744b578b6a84148e07e653ac77d139edcc0d13f12199b4556c68dce758087a7fa8177da2c8247eca70c658f4251b60dccf694a6c3f66b47d36d1581c779c104fb07af2aff4702a69d9f29c49406efaef456742b359935e503291ee7cf5a9f1c1748a3da74da81c42416e9ed175c89be781755f281556fb0871fb8584cdf9fb35a4d6fb60f5ac12b580932b28cf4f3d0c8dd1de2e837a5770e4764234cc84d5dab6c9819f237af72b0ebe08d75c53e7d0bf737109478f4983f298723b5612de31bcb4b31ed9f1ba7b0bd74475906e194ba317205bc6a4a2b1c8d56e12ae37f7b7d45be42110c9e07bc0efd91950792310e5f514778fdd66b784bcca16411424e86b3ee07cc4eae63f99a7fc7ad49766204d2656a210bba98290b2e6d71117767d1b54d67fad63ea860f98de3e8a413787fcb64dd9e281afa4f5fe77c09a97b24a45029ea1edc8b4228868cf795ebfa4358e377a25877c9b2f422cf24737a6870037ec43bc1f7245c7159a77734f90d2a74e293b2db3ed03ef133234c22b536402d524e4744e951371e0256e2eab89249e3181fa7aa8588f9635ceb091ea4e4721e06bcabd946a9d662e19ce4e9e84e324ffd95f39db1a20cd611625ad9ac5fc96a68afda1e02a60ad36ce6aed6b211fb2ecd0c06c1f2e2e8c150f3fa1a70d4ff0ee192afa42476143b0a94acedffc601c8283a8d13a781729783d77f40f3763a8a2415ca073449845e292a1e59c098be60f79289b7d205c353922a2120f38fc7572aeab366750f35031b5e43c58f96801ae7fe3892f95bb3ff1ba3311e7aecbf3b1897550338454e88f95959c1c4b1d2371d110189ac5d6cffe4f6086e097ec0c5a620ca36c682fa4322e4951b02c2aaaab1d56d92d6f4006494fe52e93b908eb4e55141ebceb2e0c3f37ac76039704e5c732503406e3f61f04294efe5a5c586554b6a6cb6d1083fe5acf8103cbcb42c9c17470ec1f801262258bd584c0dca6291de3f302c1a00d101c9fe8130917f73e432e84d0a73a2bc3783e48b8381486ef42192172086f6b578c998e4f573bb90b4087799b2d06fd558e536eac93a24706c51ccd7ac32080cc125d97f3907c705add857b4ccd8430e0c5413b6b08c42ce9bd3e12038ee6a6298fc66973232718e826dca72ee5cd8cabed7679329e54cf101f93af5180d174fde69f051aa2dea2697044c521eaaebab8f48d025068229d3ed11191f4a87abb795e9d537f8a8143512541491afa571e92996559bea92042230ef58c9130f7e03a76059b2688bb08ce0ba4c136c1f87973b223eaa759dad9a988387d204509068274df5722ccda57ff9b581ccc3055bd0a3b9dda23e3067348d76ba300d2fdab575f2b3109553f530381b56fbc56a2e798abdbe198e1b99094a4ce84b31843f1de46f7b6e04430ed547844c5ca057c9f73269891ac6a0298b5ad646acf7dbb95127ebd6863e16302393f8bdef7ef1daeb5b61a0475054170eed580f1790ed50033636c2325b51a563b88b59d1e02384a622c1c906e82ff0f1b1b8e595640acaec0cda691fa5b187d7914afb21c3131c565fe1ff6d868d671a1f705c9174231f73fd1a5a58f4b9d41706db44ca0847b7e0038b84aa5538893a30e0a9ce079603d86a3271520d24cd98676c218467809648cc4860c2a31e603095eb3dd63460051f612ba63abd58cb21df6fccce08be6abcb7c778929f32bcd8b4b56f2a887dd472ebda7b32fb5b41e6232e2062b5a38e62bccbcb569f1679982707d7ff70cff3d07f272fda3d0ccfb8c23e9b5e01f88914342b18e0cf585160f124485a5d5eb6fdf38f41381909eed5cec57fd75f01ffa304f6113a1848eedd4f271760cdf873e6c4be7652b5f5d7010ad8272eb6ad6b1bb3babe773010ced26c01b5bc895503bfe5a309e73046ae9bc8be6bb3833714c695872ed625ede2aa8a6bab5e55dbd5534cfc42132dd8ced2d092c99fc560b65d28a7551b7469597d7bb272957f1dbf8728e0860b7953658394964780a661ca90f96484eb0ddf1c8bc1b6b61c3fe30b36e371fcc491d4bc2719d29c501d27183331fd9467d151be85805f43e8e3eae47b554a2f3a3bc0205d47135cee1a74cf0140f1b4ccd1714016ef03635576277a70a2d724364cbdecf861ca6423b2a4a779323abd9703e3ec21adbd104f584c453c735414af2803116623ab5a180f3c2642867847d6cbf1c328f4f5340f592352f93d91a2f49060fee45d9b8ca04eecf189a53f7544ae153528238993004c61c229343fff5958dc82dc35f7945d0cd6c508a6fa3e513fe5c9955cad1dad009acfe5c1027c69c8b089cb2c0ac28fab4bde721776d12596afbea31da7f5f1d4eb99fcb9962442338a139d3a342a2f4d487fc616047504adc613eef23aaefdb782e566b7e3849b988835bccc42b9af24371f78d54983fdc2e50dab006621f1e383fccc39f851befe97067808c6c7a0c8bcaddf8ff839640645aef4a9c333e5ef7101608f53c869394a98bde56509fc94ccdad7b591a49ca49b7ccc7b3b67f6aa2b42ace4d64fc8172173555f12c83529f9c246d33117b7d2a6aacba7a29c02e52fda753e1483fc9046b0a03cc239c52b9a9aa400571f036fcbd787dcd99359c51dadd4e087710bf884547a483f18fa3610fe202f493e11420ce1511f4ffc1eba288e0e1797d72cdbd09ff9168680d15a62c9c29422b4237821df112c22f6223112dc43e0eae721141433fc2dc2e949f188766112db41f3e3ab5083e71ea58447cc4b95d703fdd775654fc48a65d983e62ef30904882aa0152ed2d231e45f9e95bbb4042523f35e025d7c3ea43266105a2072ad32f5d24cc618c3e03ef80f2fb381a17628223a890fd3cb60ea2411017647cfce166df2e99a51ca354ed2b75bf5cbb9d929a793ee0aa7b6dc3b5744f8662d85072428c3162d53a6c067dfae0b602d350be6ceb61e572438046fc3c02a3f0195f6ee4ed9fa65b80e886802f0228f4cf66e36544b67afff4da0595ff6042bbb87e486e3e44f410b01711e1cde70eed22d107a70e23e2830eae8aeea7fbedc2f207ebee041154f3f3502308918fb018623b821bc11e820bc203f111a84474e4fa42d081b002a12988a0763eb65b21085cc4a5109a21ae3b0283f5e98c63c1e423f7762102f9d2ac114576775d3e5cd22ee49f1e36bc02ff381b07b4b72df6c88caa6ab66b21f000d88c6685b62f72730bf2ed25885346b4d0fcf0d1fd49fc94a64504422dc287c7c61a421c8216045d23c604ea5314ed62f4419853ebffa79fed42f7c3ef9610ee08ea8d081af51146bb50f8c4383447606c7f8cb442445c042c44aca5fd90a15d28f8485c740862046b21381d81b1fba08d3bc5e207a78e05c40f3fdb05e7d37b8ee40b9fc4b615a70ffb568cb83c040b8b1f5bad1841b911422b3e76478c583911115e7cee2d8a212e721f25272f443ac23e623b821ba1ad88df787d7cad5de43e487711d1961142371f63871041b808df287edc1d122382e27eb8d42e649f020e20c4d121acb87e0ad78041d483b046b474508b6a4d24043b818830a9454614235a20202da4a194445001a89e12b8c704c5634fe9115cdd010431ee46ae997af78433b994952385047c621ae1bc591988b3cf0bc712443fe8ab9fd1c572d16bdf094329d00149c4d287f79a59b92f6dfd1118f5cf783b16d83ed26862287e606966088d12da74cb17cad8a0b8b5e8088e887684ba22d6eaff915ebb507c301d9b23d8aafd183ac2107311cb08df8c00b4fbe944bb70f121bb59044a041dc8ee8a80503c44508a8fcd4614626ec42e2230361f347455143f3d6d17227e1cee3aa0cac5e76c9a979feccd24c226084e443b42de2330fa3fd87340153f9c6917e64fdf3516881f290d23112d147c3cb536841806c7c90624170ef4281837f9f8036bf517745187c38ae67cf0b965c42bc213111ac4a4dd32040bef8f9a968f608b781731368ab04a7b2ea2d1904f6f76f55b7e12db2e4e3f6fae00913bc3fb6e2f8fbd82106eae522230723f88db0508a5885b90c15d11040bb90fe9368b4005e2ed21d6d27c0eb6a21071835006711bfd164e16fef31480aa95140e078eae57f16e38065c08796f17513f465788c089b8084213711d100692689ad096c7291917e81dc4ae98b07005baf1a31bdc623d94a6a04dbd40c4fae2d998e06fb09c89a34ceadcc9b29ed00751387b539006184a82ee1369b7c3b08a86d8c925a50e0aa3ee3244919e5981aa99fb7818856be0f6e3eb88f30dd7f7ae6f07ebad9f4b1dbf17c970236649dc46aad1146d59d9d1ab02c423e7f83c3671e172859c5c46fbfb848988d6dad90fc5e277b63746df4a396c2e12a073518429c049862367da0c91f75e2f019b01dd59e3469874014b05b07ed9b44751c933d89c6c2d524e3f4a5ad39ce044772f64c40eb96e12a3f1170e8ae0ec901e82023a70ef30f0286c21102351cc5b94f2ad6f4129d4e1eb56cacdcc95f2a85de98e253bb59e5c1d75a8758af1c916cddc924cff87b8184bd066dfbbc4ae6b644009db26c3529816fe788c5566d4db7dd37db21e258f004e7dca951ac7cfc2a1aaa922fa243bc8d0091763e7bbba425545b28e5fe8982bb0916ff8364f53faa6a668584026ee7bce4b046aa83dbc994891723ef1a7f6dc9337b76d02a34e8f52b6aace8697ec30fba12a9395e1d89da4e8ba039b731be39a1e796eec821103f7128811b92b003bec8a2765a385152cf08acb19bbcc3f264cc57055dc8304f08c4b0c2d0f851907ae0383009dd8e80f901086b22b755536630ae6f0026da85abee48d6ae295ee0634647dbb91dfea3ed5c3ee19477f740a8f27fddd5a2b3b58290f2f22a119b2d8008d4c076396a14528cdd9d9cbcd621f855c57e5e59e3c505864cf088f031c8a863001d6db07341d3952b00c1ddfacf7b0f09dd13465b46201b35c1cbe0b328fdc28ee8deaa7e37a1acb8ede90451622ea1dea25d097214c3b51e648aae24535d06e407faa13ec15d4f41afb596f84357e0f257ca4967d715cd5c7783e9f1448d7474d5bad25a40b4bdf4b71acb7a0fadde58f92b1a599b35ae2a1945eda4d209c185177fad90db1c3554837733fbbc7509ca03167fb9af8149794b99e6b1774171e7d3dce3b4583509657c813178b93e84bdace55ea7d516f1b3533b26a4d396158afc52b61f5da132fff957a698b6c7cc148bb49e1e0238fda8a2b1cefc9a360bb843d03139c534b0809e294235121e3fe8d43a9611889e38d701ffc2a4576161de1a45c20b1c745539116fbae63e30421aadf674f4a2b670fc9f7099d104a0237c5d3b8757ffe685086e0daaeb1f0ddb932fab522a1061e55df3fcb4f73298e4f6112e9077f79b10da1ee63d0b5ecfd2b6916c14066ec2cf562ceba75ae0de19d5b5055b2c13c06bbf52dadaaee03de4082c9742f67e851759b291b5c11b2975de08269e4b804bcdd78a074762b4c91646a976924adb26a6ecaff0b2ed3a76510aa1b33a3a7658a24b409b05b28066fd41cbc0a214dcc0af13ed8176c969aa6f9504f64e158fb30b27aa0fc0191d65821796e17bd6b428d7dc9a880fa1290d570e08bfa01b97eedf748a9df2a7609aa144585cc517a58d2c7caa030b5c47da8251c404b1cdc2048bf27d6c1cfa3b31d4b7f67495c66471e4ea8645c700f6609fd2edcc0d8d8ff541005267b84a7862dd9bcc22b87655bf6e8eb96de632aa9e0d7a1a17c0ec90e0c6bb49f394275b4c7d10493e84a1e7fc02b2edbb299b8553b83298575d4b3962be04eb1df3a936e2603030c8236e1b8cb102c1423b0274ee55c736e082b24f04743294e1caaff490abeba05160590491874249ecd517560479d1ea8b57b25077c9bf51c0865813dc73c361b1ba027b062b54e81ef9c0f8831b50fe5f27114f305e00b19e8597fe87189e5de8fa82baeed2aae2e5c180dc29d3f15b414f48464d7014e8859366f4969e62632504c316066c6d1e3ae3ed7b5a415346d776e235425bd77198424a67ce4f75f22a338c99373ebfa0d93d00740b8d1c4b74d8e5b3075dde69b68f680fa04ecefeab634ac7c4bc5d509f344d7d48dc2d9ca4c064942692bc19b10dd72a554bc10d4b2b0ed63fe2d8a5f35550014f31ea077ff113ab4580c1746fcb856e962751d3dabc8b3bdb85236a5efd423de811f005b5cad40f9806c7d504c4bdcbcd3960f52e10119235ce873164e28815c50f1727252c53d2bbaa7c54721773f5158ec759bd048b317bedda360910d37c083e361dabf8633c4f6ce493b5c31226d595cf5a6a769c4187da57971563dec64599138d5ce7d8bbe7d983eafa22b662a12cbb12f58008df787d2bcc866df69786b5be30f333cb7db5f82f5749be970c800524962cf560f5ca75a370c9d09ecf5880dc8014a8064cc48c80a9c170e0f599d732424078e5b20217eaa9ffc2982f116907267d3db32d30c85e9dde822ab45d298b9632af7ad95863c773ef991a18d2a7e2ad0d3a54c56d1a0e5cc5a45e3fb044e08e123458a06f072e36691467a446ee3256e82c1697766a85ccfe109442e622426e48032c3e104702b4ab09d0437c7b59c4bcdb3cfd2a525400b4dbd4ee6edad82f5aafbb54f3d310d83386eb59ca6cbfb72ab9d26876bf7ec523afdd83edd7b8bd4d6c3cd81b2a4bc88030854e3cfa99b84f05c68e9295c1cf0402e6463bc8c577632eb0135c5157b3eac9048e8892470ed5125a68b617907a1079259efe7d322f340a46c713002184ef807eb1bf9d0ec9a8374d168aa62a348ed32359f0959541eefcdf53af03e13f763ab6ecf1454f0c130df108828d6e10f1fe3a3cf570268460429230b3c1655268a96470da1948c89ebdb6cc584a7292d8a875b2ef65b46ec4d6b0bcd61e82072373d2995e114d31b86897cd71632e57ca5e17add1a39071e1eee7c088ece6c79c38914bd63991d5ef53e2a55545533b04834ef9e5e286eccb4d74a1fa50819b337037c16900fec0471c8148bc26e5f480481d7d31cc5976a39e116982e91e1e435b823ae880174900707e078a4a31c0c12c26f29cc4aa85a06df3ab2b5139ec4cc8a4758e3bb46837ef14d37428e8ffd6391220bfb55c7951aef49f90d2ca813f063a2f9b5f629d360f18e8dd58450351dd71928667507484c13095901b01fae5a2cf322c4edfb904d58c82a61a583b19f66847f9fb22a52e5708fb17c5cf5a693a46992d07f354a8f1d0883e14b719e52a1e1d277327122df21595c5f59848397cbce9f58446145fe105499179f3d8fe69e142b8c1332741eef9de7c281463cbd7445fc88a0a550810be8af5afbba73236e64db6c8073b3bfb593f5da364d292ee107f2cb6f4c30dfd68e4b6192646bfe9894c4fbcee1e66360dbf8402d01328db4d9b973cea16977ebad6cafddcb2c8216ae7077b059faff404e3768c75983b959ab29c93fb12f48a8011b947830f3f35cd419b3e5315aac6802e2bc43e0a4bfd7f867de0fcf814b4138fa2a5d68045b67ec7929fe6389e7f02f67762cf63b72603745c025c3b52ca10e99c9552fe91dc8d38c304db943072b8658b1b6771341b0b73b3d2215446a94760ef88fdd4ada359086540468ffe3f92c65a4844840c988b04472d761f84dca946b2bf64db90603b2cf4a8764bada984f23010fca5e97ea5642ddfbabe1a59db5d9366ed43723614500d06b1e0f3fc56de736d56bb8fffff432b62d44ab4d456badadb7f452659fd1ffac8543be07ea30d3946cf93223a3b51ea5bdb3f5a5ee88d84f539d640d94422045f54ce5e2f364cc959da3f166a1cb008748621a02ca275fc217ee4a099aa1eb01d5fb9f8a81715c6ca1f553c45b2eaced390430c6da11b39e75ef06149259498a56cb43d563072424ed388337b98dacd337019e666650286c003718af6f510c54607ca72681583523674507bbe4490d08bf7fc03a1df3084679aa074bbaef4b0173b8e941f0cf125103920b95a533d7240e5e1e56510d1dff7df524ff3aef87cc144fc7e699bc88c4631ca8c983d165244a28365786b69b35379cb2b0561697e61bc60e4721c8763344f259a81b1f1dbc300326be32f14d4f8474627d5c9610f7a0843f2cf56d04b1afc88cf9e20c1b705a457486757aafe3d0a7f3aded4e122ebf4759e5297ddb2787476781c4dca3b1f21a51cf98828832ab05c79bd29d5abc0dc1961d0a028931935c2a2e6ddffa5fa8daf340a5647f620cce94dc4faac427d86428f7bb620ab354718d44105ca1042569bd4137aeffe04cd7fb45b67ddd390479e71440a6f7ca2ebd8d0711abcf02cfab741490d8fb73d67fbdfa81231f632c4b066cffb281358b13c96c8aa9b1b9dc8eb8c8692c1f2107f69f8d7246f6bf3121ca022e5e30c66713a7c9434f26576dd1e5063e6d8f8afaa20923f5a0d6c5faf0bd55101e3f53f65e4e7c99333c2a40b66c12d6836d07191df628e96cff655581d057f3b71a9ac10a0217ba01c309105b66671ce86f31f3426a0a75bfbd0c44d4e01b3e99c2838ad039cf6dc9da5442f3eda17dff743df5d46488316af848b68528a4c493cae0f817c23fd701852be3683306ed428592a18502634176f3468295cfe1ec05dc48039a1cd130be9a3507bbaea0a4b3d6aaf8edbefde537a78d5543fd22aac1a062d8c21839945cbc9c9a1757620a83febbb454832ec6923158b796e8d621f035f062ee84e227071b4454ed4f1e04ee314c80b35c085d713893eaabe9dbcf18c762316c0f544e80daf0eab90b047edbfc28eba72973df526f218d5977379bae1e178e2cc04f5edfe762bf9035e79b80ec678067603acd586c641caa5cb6e72ca189f35e531a7d9e69639efd8955c799b6451a3d98b3a7b9243ac3af02ca9969fbb8193fd8a4e135aa6a53ce7030e4146d74c2fbfd1d2cd3d0ad7ddf791cf34e3c715c73ca409c6e1543c70688ee40614ab33319053059df05dd1096bd78561f0284501b79c97a6710e19e15f808c810c169e1ea68ab7a570115a773709afacd3fc6c1bdd420831ba9d9ec4deb757714d6e3d3a8ba74369c4a44fcd028794cd6f08c5e130373e1a846b6878ecc27d2e778e2bf15d98509f5349e83fb372148ad24af1610f58068a7b2ce2ea28b192129cff73bafd2796fe29f4af39b58b346b525c60bdd78d8d62205bf632d430c6825bce8afab28ce786596bd903268a20f9a4570cbbfb4150ded6d41cd384faece5c6d0bcf9f7a2dd175262071aa89668b1e0e2801a568fb3caf38be06f5efc75de483d9627b472af5dab2aec8a8e268114d9c2993a466be9b5efbb00e36f740539295d3ad8cfdf0784fdc69cdcdd616f2d9a86ebeb67e749150ec643b8f6bafba89b1c91e9fc6ebf5a7089d956f13baafaa880117a897971cf3c0ee7c8ca1d7f643cf71f67bb4e86d1d287f85329af92692a07ddede1b6ebb81932c2aeeb013f1dc6904ed2834028cdc9298fe8d16bc5d25477b182ba79d68f14bf4970cfd9141c5373d2153134172e72c55d81059f0b5ef173dca344abebcc5d3f2d152e8c211d7117c4b7ec9b00123dc4d0a542e9764d1a413180ce16ff3dc9cc5ddcad0c5a333568c99e6111974b8198fc6c2de1a1e875bdc16ddcc80f4832ddfcd80d206408f893046e7d613da802ba86cc363abe7fce2f168c35815931eb0388314475b0012e853e79a5904a80e582d7e785290d02a6ddbdd3ffa147eb811dafc554cd038afcdb3bf465d8c92caf2e4795d395bbdddc1e3309a6eac55b04a0f1830ec915f7873e2a69531ba37a02d0998930866ba749266333859abd30bf888b083470931a48730f98a790adc3f324902244b57165f922b2e2d6588a3a46ed92adf43325f89df7583d0a54509b6d172bc338fe4d0f57502729feb785e0b4f8330887839194f21b993750d9e2b9610ec320e18e58c05688da42be885812226134f40f7abf62ea079e250a386a078500393e1ee30363052c6a8bfb96af4662209a1106b35a0673f4b9984fe7c38c6b94b9404dfc7eb2c44b3bf6dc88094ecda575543dbdc157c19c8d65a71a41bc56d7abac5311f8f69cee159cd6a650ecedeb1c6652fe69c2104be537b4cfdf3cc82aebe6c9df880800b8e2eb133f4b27a952050348176939471597022164822209aa165f506f8334cdd55649c75af1985e3826bfe8d9ef4bc61fd3dcfab58b8c04e84b4ecf3f1628fe4eb2c5ed5616002f9a114dcb92971e4cf4d2bcc261a1aa93c5089231bddf23ea11e2f3d6a656ede19d9012c0dd52a5e9c9d415c84227c03481d9442be6a4d5ce00a44ae7568ef96717943821b1344174e7173da46fc14b6425c39adf3db1db5fef52b31716ada392d7e83105299b43adb91fee2e63be1b0a16da393576a23011f585f08eecf630ac9c426de82b135254e071f01e4f542c08c57041d4cf8ab1187efeafca610999de427c92628da94ccd648e012804767e7dbc9ab5241613c1b5f45702632473b4420a6d101ae0c3603197c4793b10f515dcef025609a41e455a1f923136401ef73d3e73aae6d78b36b0f1c41956ede7b3fc86f9da3c95e5771ee90a62054db2b706d261fab6a9029b321f93ad12e5662c45cc424f5d548cd7a4e5098b25c01eafee1a91c2d823424a176835ff391e1d74d3c346bce1f9b36d01104e952bd651c002d2301195b97d52e95143abaedb6d0ca668a69b56c67f9ba6e814967ec5693bfbed7dd2bc8a9fb638c9f2b7c4ded2b3e992bd7146a48e99501920dda673a13ae7bdb563f731c69c175856c4c9ca230adcf1e748a7a4c4ffe03d6d5ccbf39689936a59d7ea56cbe970478325ffb7ee35b5f92eb092906b98b71beab3be010e6419c7af3923bbfa99accc1297c09ab250a3fd536fbcbb2f5652bb875f3cab21be02c34adee685257b05a21b3e59234cb8bc5ccc1bfa3902c10e6dd201c2bae5b709eab5e338b40a4ae656b43ce5699c4ff7c5f39609cb311fbfaa139a55544bb5693d1a8d1842d6892ae5833db5b9e78d1b38ab6de7b47cf7a4cf7db8a526a10baf23dfbe2507b25a921d5fc541247a1a636b863afce288bd7ad0aac7aac81b5a27e95e485b9cb2c3a2e09346c74f90ddde964e8e3bf96babae77e82bb810f4c61622c780ed87abfc9a003f479acf653c947b2c4d9b7652d6557566ac2e54fea6530b1354c83548e527e430ee308e756c4c43817226922fa24f76564321bd93ed83fc02487c7cc1f2b393b74673a02a7370b52e18d6d1bc0600e6d7b3c3a6efbd0e02e78a33dae8e79a8fe2da281714d7d6a8a31628eb4cfd6214b5ba649d6bb15deea9643a5fc01ba19c9eb51ff7ccea741eb8902f71b6e0c51ce87d72e26d3fc11bc208bc9d743dc44d06014a8991a43c6ac03192159f69f1420ee8a009b88352eded873763989d56491747679f25eec530d45915f23759f858b9cae591d46d3163cf9b1a16f446131a9fee10955d272867159ea2c3ff9054ea56b5b698f1bf599491b1feefb701ab9d55b56fd5a0a477a28914a2259bdc820419835636bb069a638c1536c821378f246dab56fa30c41ae57bb0021b0ca56de42f78eb986bb0a1e4d5361e89e24b69176e1f7c9e22a6bc17d36aeaa577bae837c08d637c11d669c481f9ce10a61e17ab2fbedb7cf2d8688710d66eec7d81e100ca5d128f5f0fa5713685e09073a731786ad1ddd0496e77ae7b3ef4ac1699493bdcb666709dc106d5d2894bb16c92bb8d07947727935047b5be6f42e41a9bd86f0cfb14e3e68d9d731face07d720af5ec5490eb367c8e545b43471fd26e1134d082a9378b45302c14b10507b46d4bc80edc77286c2d6f076c41139dacdabb702c854afe38358910fca5a7ded8cceed771488f328e1496996218cce249e5251ce76149b6de964cc501ecb4a389f89e544918178bcdc2788f5ec8c3c7a6d1b6e5006b0bc85083add66f071370456f05c0047c27bcd2ce20fe14e0a35ab9ed1bb22f40eedeee9960281682ac01c3923d43bf92c4429e34f48000040a7db901b9dbaffcf34052b29978b65891a8347ef82e796f9e32985eafa7f5b17f53583cda3f550abbdcbfc180473d1ff19411620ac1b0170b06da63510d09562f7abf8cfd010c3bfb479766da146e5afbe5598a35a15e71901c3ff1d89b10146e9806132803d9d2d7a3d6e2c6a7c47e7c3e92c6cdc9898175625e9abefff3ba4d7b90104d8d6d84e522b212da215159862d853353b5b7eaa64da61915583684820caf24e745084b1c9e5912f44d10f0aaee08b2d88b0444c2b4d35295328cfd2ba68b8a2e6a096e5bd8a6d06c3bb84930e9b965b2edaba2f752c6e49744aa26ecf2e3863a9a80d99432d5490da057ec1e594818e6e0f17b8474835024071987a6a33298126e7b6859c7f74670b7be4e759e229a456218c9b18e58a27710f082233b794ef078458acc68e4f399f16d6dcfe60680d022c1d054eba04e40f571048eab839d4804c086240465535b8efde330950bb95499c413f9ad8bfef5264c0e18a8687c320fe26da31daeedb1a32598b126ae0ef73ed69914ef5a13fea0fd2510f1b3472156cad05b057738a5eb25e5a5ab2a54c01ef0f6c10540f2b0aa555fd988294ed58b1db975002b22bb7ad0b526ecfe1949bb52587e33d282abcdf3a87f2a964a1588a1d77c7a03b02715675e43dc86de3a7f25248d6c9ddd613c1c96f8f15ee1da4c2c30f5dc78301381e84286b4a3fc303123c38e2cc0e619cd12107a805a431e5d091dd16811dce00cfeca0460ea8048050fa191d5a507aa59fd1810b042060082682c838ccc00409d8c2031d8cc10403b6d2cfe880c41a677250e34c0e5c5043e8603ca3030e38745fe0209343960988c08b059ee00107c230635b0205dc0a78108106c4266c9069c00f5cc2335a8af80115c43f8f333a0851a24a3fa3839652f63b2713809b1254b000c28c263ef0021b6800024278f182eaa1080b4af045053808a3022db60798613ab3e483204228dd4c9a14a419c199252fcca4b1810daa872d0c4a87ed413369ae286dd29cf981e779ded1fdad43edd0e5513e90dcbb27e600436f81cffd68c3fde9f3bc6fa1d4f1a5747c9ea73902b583991f7831f3033069a43093260c8a072107a07228012a878b05ea06aedbec77dd8b50767f29004ee1375eca6a90acd184df78e9a950389022943e069da5e5bc3b36c952722a9908a56de2073636b707052318e4e77d2f7e3b5054906018da92c7d7803102db45c1bd978bcb382b72d8dc2eb7cbe572bb5c2f5f8ac7f3b8965b3d41cabccc55d9b8b51d1197dbbcdf9c4c79ff93b9a79275a30ba6d2fa7b1f6661c32d42df5258ae00d9b109526697f872afdde29c73516e299b3452a30f48d95fb93ddb734edb24e00c798e7d4f45b92bfb3ceeb8015266d1f874b19ddcba5b2f6a303ab1069734d294dbd2c8c539590e32389bb1cbd865f4b2841360bcc011c30429b35ed8b7566c5658320fca726c7fb994db8ebbf2df964630ae417269a0513a1864078add5b8e43c357de83248d347ce5a56c2bb7d2471ba6ec7ec0451a56946e268d31e5064a37e38333ca53cd122fcfb064d0f09645a3f428369c4a1cf2961df21ca06de3366edbb88d886b8928fdef87f133028d6290321b06c482e4362f63d003354e35f7c730485bca6c98d27fec82b4494a40da33178dce8c33eeca7ef6cbaa8b3324f8630ac8eb450b920cfbe59271cbb866709d4c2cc1a5d2be5702d23e487e97b248a8463148bb39c0394bc68eb1624091bcabef53e5c8e17d29eec1545776a2b7e3ae6cb020573f383bd67a09a6f4ff7257a74f71597caaedbdaeec7670ea3e35c280fcfbe0b6755dd775dbc91482600882220f4edb38c6053d202fc7dd51bee9c71fafe7795fb36de388dac6ef0bb7d83e04b76b777270721ee31764f7dbb6f3a5c61e90396cc480e94432874db943f63b6e8f8b3d352f8ee3970ac3ef43bd8f6128fe2776e2493cf9739bbdf1607763bb31d6a04373efbd594acff3b88ee3eec671dcc6dd3b451a6494dbddec16cfb17f033160c62fc8b106a46fdbb675ff53fa8eeabf3bf243d7755d77af78efc542be48ea10dfcb2b5ef18a27f18aa278c5ae9b427cd397e37b8e42a150dfa350ff7dcd83e29b5235a831757a1fc53195a5144fabd2b35ffc9266bc2c79a9c152e96668b054726598517a1d96cf927785c51e01b71b0b44c7f61e2bbbaedb7c0a92234970f24b26818617af86fb134782f105b21fee4f1f932651bcffbeef5389e09f52e17f9fe759532a0cc350247f78396c78ac3c8e872e0c9923d5e4aeac297c9769c3255e9afe145a141561b8dd1b86201882a00a1c494076a82a8242d556763624209bdc1ed9af7eae8e5bde8ecbc1a95bc1ce0fcb3191628c134b90488021c28b0d2d5bb05c019f66ba8606d0848991245b901b8ab3dbc6a150dd73282c254ae450a817455144dd32ee858d25d094f981aae9c44771dcc6a964b19253e206dadde038aec688aadbc87bb3a9441b144a25034b91fb6edbb88d3b01b9bd91cd676705da1ea87b2ca5f8a7ad03c3b01b814e3a6afe88fbafd965b7548a355df85b4a34a594b8f15ceab711e8f3b9a14a726f2e68044d991b55582fcca0b1545a2d4a37b38325ca33a30ac853936ddb36196aa342efeac6ee2a8bbbba5cdcd515568864ca4821e614660924be7cabebc56ab14b26d9f6dea331d4a6345140cadc8aae0347b003eabe0bc34e75b994dbd6711c676d672df7454c0dddd51541d38f5e90e0914d293196a8cdbe25f8529cd9c66ddbb66d034110dc3670dbfcaac614796fac7857a6b7e0e6c496dbb665415ad7e6c36405b20f04ca2e17704bc9f657c6a820b71f7d50dffd0eb9729fcb04e4b6753bbe47c7b6713e3a89c2a56c86ac17a76bc3079db5fed6ba7bd78d40360c6d2882a0f5d4fb5d59abe2fc033d7c9bb2f6c1fb81ee6e1f4cdd0b82aa7bc1d307de0b7a68df536316a40c2c1dec4c2727dd471e9032b0ecbaee8778bb6e15762b578e5490b29dd2ad003b2e4729db2987dc9eef813ed3cfce0f1b96a7148c2f20657f0253da96e30948d9f7de79350f7e35df8706d9fdc94120b124bbb7f111e8545353f34bbcac51e920ffa8e6bfaf517d4f7ef859ca8d7a32e5e236a6c0930904c14eb4dc0eb2f0dc7be7f62d3d95cc5dec501b501c3d40dad2df4b752314aff43cefad67bdd34d796f5352d8d1aabc3f7de4a6f2befb6164c1bdd7c66664c1beddbe2cf0c633e49802d253a93e046c9be562b9b460db36cf4b63fdbabb735ff78137f5bda7ac5fbfd6ddaf5fbfeeeed7ddfdae94d8f28ab703c311c8bf0f14bf0ffc3cd1f39efb442e9fc7855fb4400d175c61a6054b665c40c68c0bb8e440cbc845992f36a5c4e9f45f3a9349357ae94e18739db837db876190f882015276c27f39c15b5e5241de2fb3f9e0851765aa74335e90294f3563ea9637cb38aa442e40a0e76cd622f1c572b15bc6905b68531386e1388ebfc4cb71fc6efceec7ee51efedf2841ac55396f2f41754719c102409a30f48d9aae456650e9bd373f7aa4eafc4963f529342fde96b52de1d814051147fc9f847e27f2faabe1fbffb2ce54dc9f698f29309152fc78333dd2d89310d5206fa3cb1fdbddedbd4fc7d50165efb630a45a6967849fe1d996cdb93aa8d44798ff29e54d5a44e2fa2de4b9bf214be4d19d94ca12792397636158c6adc2d4e36e4f5d2822d52705cb8745b366b2d09c22cba908b0ab8bbbbbbbb7b0fc76d57885b776f5db7eed6ae61c6065ed8004df9bd67c60665cacf0662be073b1188dcbe97dd07c56f33814b3ed591e9080c32fdf73de875a5cd08fe7d29aeb4b9365f58da780b1449f1fb6ce9a9649e1933ca30a38bd3764de09b4c5f82a1f7847f7bd65bda12f496abbc3f633dbf6ead90d596dbb6c4f4a04a47900d6f790a026ff9897f82e265caf04f26d08e417669c9cb946010f8a08a0b39407ade63e0e457dc44ce5dc56ddc074870140179bf7bb0245d658fdc6c7ec5725be3e4b70c2f4a37330332ca104a3733033425c771df719ceae8baf5c61190f71d071b1b1b1b1b15a8c0bb4d35ae809481a5152f2a96f7da3bc6c9af19199451ba191974614606509431330330a2288aa217e0268e5c6c3d61ca79c810280c55e1f762d89560cac394a934a964a00dbf1590ab1f9b197891811ae5e98a363607446ca2c91b958c5c904b42d5077a0ffe6f3e7e04b481f27df8a72ff561caf34a4f958303a455bd9701bd301383336662c0439845b805074ece833b59d0cb304c9122580509fa88f74da9fb76b4e0db147852819d9801727bd35805b971647c21c30b136bc53b3609c0d8c4cbeec1f7ac5f54b7dd8bfa7e8c2bca31ce94dc8bdcdbdc115545f8775cd2ddd3078a39763c2f4edbf65b16209b9289a52d3d5076d4a950b1e4361a9c3e9fe7c23f7af193815f96d24bf9a645c845b805088e22ea644ac9accca25e7c940aa5929d502814ea3dd47b7f57e5e943239b919ba50c5363972d95ca72b2b707200886a14a07132fc35fe265a8d261faa3f0b90f55dc9bba944cdce567ca527e29542cbd9bc5b3b60765be2001e64bf78d5ebe325d77b99409ffe354a7d3c8450a3177d5a9be5880bc3f76b140190f035c2c7739d5f76d62b6e7b84d069eacce96927b8fdb549b13e516e6aeb6b75fc60b90579665c3a232b275f6b9ad9365b90079bf800139319df51480868b17224aabca4192121843a6cc192bae4033013b668ccd189b313662c690f1ec66c566c57685d8831436363b9ec70a67679440d8496163b3e379ac7076c490b6dcf13c56383b620fa297313656d8ec588d21633346ec41dcc2e58eb1918977cce66397d8b6177b38a964d664da32460c4550ec01cd105e589555892014e29fac5571774501727b102439711bbdb4292fc728c8a3f0bb93fd6ecf15763b7dbffdc6c5c6c5d6c57732a5dc05ae34b2792aeb845dc28ab1626e0f68c58c50d80fbb2c56b63469c60a90e047415aafe34a992d6563979188d27b2f9c28654ba021c394dbe768c152b99550ba192fb694db365ad9d2a4b9b64c99cd67ebec4905962937bba3b46f32a9542ad04b8d5dac4ea7dabc102f0006c788040e1c23111d0e1c5c708c48e0c03172c18103c7e8e572791c97cbdbdcb041aa6ee0d851927fe3c11be4dbe0c8b1cbd865ecc28147881146698328dd4c18684e3faa6ebc4dc948727c927c71cbf8e4972399f72349cab872fcc6f0c70f24bd37799d38fe48deb841deb841be918d1c7fdf23d43bf936fe44be4dd5905f33deb8f146ae0dd493376a6a46afa6e6bbf12a99b561a366e4baf0c9f76b83fc6ea0c8b7f11c397e0d67faef51a38a3b952695ccfb50c77df023452f3b0043764f8e5d4892fc910b499223179224472f970bf93635a338d6903bc01a94cdd865ec327619bb7c5cc0004cb942e966c438a33cd5dc23d9f7dcdb50da6e54c9ba9a176b4619576e620f6fdac69a9ab1a6667c23db68fad4d1e9bdb463cd388ae38ba6af5159d9ca1a1bca2328a71fdfc8ad195f34d5bc4a7c144a259a3e144aa6b3c848df7c4c3725f660754095acfc282066e4327219b98c448c5e6c6c6c88b95caeca86881245717cf1de7b6dd87810ae0d9b1b7714c72e366488816ddbb6f06e7fef0def66652b2ff8272e0ced87a1f8e5a87b2fade95eee3eb7592efc100c344a9ed2cd8071268c32611862c2d812861a006b9e84fbe29380a242363e372e39ba2a99358957368e228effc61b62393eea6fa450b134e1408de249b5bfd2a40aafd8830d69e382658819bd8c5c462fa3173128315f3e242f1752cc171c1f862a598e32fcc03047caef0d8e944d18862ad9e582b2b1b95c6c6cc62e6397b18b18f27e664edf732edb2c7745d03e08beb8c50ab14756b094e06fd6ca5682ce7129b73f53fa28ddcc175e4a30a42857a59b01834b79da46f00b354a154a37f34516628e9a1f3ff4a292895b507fbf1bff81e0936269e3c5d48d0d958c2b49948adb5f099a54fb2bbfd3a842c5f23b8d4b64598e4e2a99e5de64da2ca872e154762a15186f0735f7963179294f35e2fbaf406bad3d023f6bed078a29aef4525e76b95e4a8e7bd06e0e3e68e2516e60e729f16f4aacf9d3c9f41704c1bf5cc0fba140f05e10a53a32fd67c372379eb3714325bbd70ba9327da88d0c75e1535dcbe414063d77b958101453e3b8a4e6399558e3d920b9ef6adec484bb3540de2d539e4c269309b43a60f7a894f746b67bbbacac055d10b91caa9ded66fbf7cd27870a0787da98fe53c9c0f1391ddf7bcfc424fee9c17189e98f4455687a269bcded62859854b25075bb581def7a29eded72638b1b5a40348c40dd5367c4c617847321531183038e6e6552624ac1abc2adf005c10103492cc12102408440ee68195f4d7a38b374aac18ec861e4a9b130ecd8847c23f4dc60fa82782610b5f9042dd94a3029d9c192e90b1a8540263a8094984226a2903904034b2270383d26af8563f44c2720150120b06402999850e4c352b7919df504e0993a21de0a458e9c6aa10a2013cff48d30260979704f421172ec4881841056005970414a0a379840d6e763f4e11314e513b98f84aeb5f58422a7c21bf9c2cfc4e9742e703f466ca7634b7521ec84e06b0b0224c406348510fadc80e4c9e907b8e278703cbc082cad80e292742c7426843cb81d353db612705862e9d80db6e5705b5700150186c8809a4221013465c4401181303d64a9e18a3e82e5978b00556418000c2f084569120026ad1f1fab145000c0731ee8401a1b9431460b4550509130c2076604572801010100b5d02a0104f1e49d2133c5134b2811c601498051c00b2b15745847246048288d1a6714c960831a688048b521041027ac8810d3b744105e7cc21470c1c412ad203d22e43899c06f878e0b58a04a36a13c09409012a0057431000f37bc00520514128840962930f8f4d8e4e04a802607301421d2137e5e143b4c3181061c60081f0ac080052c0008284f8a085141b4696c3eb86870667c0d2e19dc18f7059d1756051705778b500b318b5b828bc52573a3d8a0b8479cccf2b0278025743bc611ae0817049bc3068eeec6b561490e754f9de9862078bfafbb9cddacf57cacd9746c1958e27e58e29a782bbcfd7470030981a5ae13bf1454700397440f4e04314c135e0f4b5c933004d30e9b1c96c218381936134edb134125e08f67da84d8983a112c8163967254b921f4d9148003d1054b5d9aa54e24618b2571ab32b014daa0ee27a4d3e988d802c269042370e0b82cd5a46a525b8e0d1dd0c6461a1c3a16c09f6fc856b30d01c32c6d4e7ae87826cf89a5ede491c0e19c7a6c9613391c93928e852f068f04cfe4c9c41c628ed0260ce18b615b03078f844d0c0e9d154b28c8b8d913a15002d7126b3c1b9cdd7236245c145104ef7e533e1ddf930e0494f54e5bc789dbb6ddeddbc02d34ede0b6ef85ef464d14938dcffbecf6713f381dce82236c3a6e084fe89a58423971830d8fd30126c18173010e2aa2f7343f1823055c94000d08aca8190905e105e8480b447cd4d40635d05181ac013f2a3240799286045998e0042076be186124012e4001161fd0c005a050428795c2016a1b08bdeae0066674a145161da840161b08504586014079b244c90926881002192ab24021011b6a202a61879a9e8072410baccc96d2fc80073ba8424584106ca0e0031ed880062e60812880e862002202c43005ca93202c48e0811154f185c90a5480c5073aa0810c40208c0f3ae470033350a08506324066025a96b21904646334438c305c00820e503185144c04f1433689085085ca94202021ad1b1b2316240081028e08424b36091080202540425aa8917331c2c0820421f0001553481105134274d132430082880869f9fce87173c306e769c408a305210081073a40c51451302144105d7ed0f205d10c555ad061a9914613176a502cd8e1858b0f0398b2d3801f7c50baf2449866fbc15da34be3fa006c828bc065e22a61796e8f6dc7b24e391b0bdb8770c2dd61757c246c23581b4e041b4288e3c68d8de46a44143992208e70da61b2117ea0f75dcfebbacd3a09ee26d284c5ddf5caca6811d6c9a6fa3ad35a09eef63345f19c34a94813096478c6cdaffeb379eaf47c7dfe3e5f88d28a571c7b3d3e3fe44098013214e3ee7aa3f4ccb1a4bf7922437e4564c8a7a7512e0a97c8b0e6ee7a98fafafcad5434038bc5a212c4c42361c7bd13a2ea5470f7139c04cd70bdb2d235ef8d693aeb66c149f009f04b7a6e9dcdffada6afb36afecd2abfd69aaa499006d07433cd1bbf26c124669a49f006e81fdb4669461fa6feaf2a6cc55b7f364af11afbd0e895b5c65eb33cd3c9af13d51ee2e06e827b58808f08bf71f795bbaba0b26278901e5fe4d7b5f65a2148909f203e417a820009f223888f203c417a04d90912e4e7e7c7e7a7e707c8cf8f1f1f3f3c3f3d7e767e82f8fcf8f8f8f4f800f1f9e1e3c387c7a787cf8e4f909e9f1e9f9e9e1e203d3f7a7cf4f0f4f4e8d9e90902e407880f901e204080fc00e203080f901e40768004f9f1f3c3e747cf0f203f7efcf0f183e7478f1f3b3f82f8f8f1e1e3a3c707101f3f7cf8f0c1e3a3878f1d1f41787e787c787a7880f0fce0f1c1c3c3d383678727488f9f1e3e3d7a7a00e9f1a3878f1e3c3d7af4d8e91164e767c767a76707c8ce8f1d1f3b3c3b3d767676aeec6477d7e1a43700d72b6b564b75f60c9657f535031513cecab4aae16bf802fce398704c05f8ff7f774fc1dd5170771ea297e35b66b84240761970c2dd4770b21bc2e5fa9609c7e5fad68665f4dfe4bad931a373fddfb08cae5cdf32337a62d89ab5c644881049e91c7b6d3c03808aec66a8f2382aa8f01bbf998f5e678a69dd0ff7566783e46ee0afcf5d2bfad7678eed5d73b2aaeb0a94a4aeab7ae40a77166b02eefe39c935c12df9cd0f19f23d569f53f589eb53f5dc3428dbdd5531f7b48afb1ac57d5749e2be53c5ddfd49cec6fd4a15724383e3dcbd0ab9a1e1ae2a8a80bb377172434227eff414f100e9f9d10303b28383983e767c80fcfcf0619a3c6651d18f1f453e3e3c3ed807061244e7b5756dd52137daafd968c5e8e357f71fa5e71ad3afee37f3b90eadee3ec5c92dd42babe844f7aa1661f71cee8ec3dd79b86f3ad8c6b8916b28467ad7ba02b93ec59faaefba59d1f09a94d65aad8dd67496e27a33a3287eb93be9ee35ee8e72d1dd4f1609778fc1496b0669cbb841eefe2d6da635b5e861eaef9afaea26d22b6b87e583d52347e7ad54a4e383e7e7958314994182f0f4bc5eb947ce4c7db18a6ab17d1a29ad5b9f4679d5518d56fc62e9a4e70ca37986b58e5eb37e41e7890c79773739e8eea33bf8639188e0a4257277109cb460dc7d9f284dbf6b6317698fb87b084e5a1c77bfe1a445ba92cdf47c1423a9b3bc12d12bcb54673aaf8c74f3fa5c7d9ad11ff2b9e84db4a6c6f4dfb87be87e4d77b771d2727a65ed19cc7377ebabbaaef953fc664ed7daceeba7eab9f14ef32ca3b4d9f9fbc4eb7ea3f4dc1bcf5615f6f87aeebec349bfe2ee369c7422dc3d4945616b46525f699f2f4cc32fbdb25e19892809af3aaf55ebbc5414c53a4a2b5e8b4ed4ddbb8d73f7db82162d2a508125a108659cb8b90008b044614106866058fc88818802ad5230f84183230964f9e04b194f500384097f54370ce88106c7083db0369a4ec2a305d9161d1c009e80fb42e6e46596964adfb823ac38756087f2c090d3f8321b72f31953f794b247c61a6cb80faa968e88e2879f897bd3e5525ab817dfa66a08dfde30cb526a87168e6c6f4a69d9628f6cbf430b47b8f7713472c53fa5fcc829358e6f3afd167bc4a445d422fef8365583e96da8aae18921d3dbafe1f457247528f9de3bfa544a28ddf7544a286ddf828c04554bdb8f293fb2e58f981e4c69197f873f627a3baa96545a6ab0617b936a69d3b2e58f8cbf8d328ca91a6cd8fea45a7a6e14c0d0f6d794da628f983e4c6db147c23fa5b4ecd0c211d36fb1474e7fd22100eec797617bf1c19496704a9623a3aa86afc1f4b78693f7f6086a03a4154f537aaa232594ee2ba1c43df79b0e01707f7f688b721f4c45e1dec728db6fd7c3c069fbd3963aea9e53a98c6c37cb665d38f96665bb7f395b8193cbbab7d6da232b03fffbd3098bcc7e00b2782bd2dddb63e9362ca5e9412b5bf9a98ebaa34e65054b19aa8e3c239becfe11c871dbb6711bc771dcb6bde5dedaf78e89936ff7b7f2fbd3a9f3a06ddd48292b36e5d155edd2aac00f5532ee2da8b282a5fc549df5b6a3bf55d81dec0e9c962d3b809b0f162c36dcdfde06fbdc63d1b2e58f7443e1776f03f8a6772c3bfc914e85c506ef4daa2d7f64fb506503a8daf2476cf0ec77aaedfd6df06c7a42993983ea00b8f9dc3f62535bee164ecb164ef58495167678c24a0ba5979972427180e3f6172ea57d37420d23ca28dd882ebe3851da2f4894f66516c9ca57eef01c0fdd3aaa02a4ec6df9b74796a3bceedf12ef3f93e829d9f729cfc9f76eddbea7b6cd95dc7761c97d77f246271ca7ca91b2b67bcbc938ae1c4728f6b7cf717b7ca70a93e94393e9c3cf8a3257846ef22741268221f875a6d437bab005852a6e0c5f54724bef9677742108fc40f03f7ba6fcbef253a1a820bfb71d77f43d18f4a9381d25d077cbedbb6e4cf7e0124b8cd9fee3a2fc1efc1edcbe3b000e2ff4c21c38421c37641c098268afb83d5be91fc2a8c496293f0efc7bc3c611f841a08abb2bf0c107bd34ddd5c9c8f6a5dc451b1e3b43980cb9d02b5abc582944e846718c188236a2dfefbbd05e61cf1c800c5310488adf16e4a938d5e5ac6f1daa4c8d014032453851fa1922d01011a6ec7ce44ee5fd2f4d9a346794f752e09e51de9765298920424b795df0b76fe52bef6f2b5c96d2899585e5f75bf7a575e2fdfdbceb6f2d0f84306388a593355dcf01bf4b89e45df128b794e9bb5428db9ee364e1b7d972fb4d25f3be7bdba56461e91db871be8500070d0f2b76fc7809a6c2ed646df8de6f3fe05bd90e8fd21bc1068d2bdbfd56ca73eecbec77f75150901bd7eddcd55de17829db71996568defad1719d173227bf6780c8a2f4335dc838d3850c1767bc8c094016cbbde79c8f9e13bec7a3ec4ccfa5be4fe5b26fccc9bd65392196bc28b9bf684aee4c1066945e7a79ea44ebe4aedbca57829e637f7b242b5f297a4ed739e94627dda736bb393842e1fe06757fb9b7afd2c0671fc5c451f74f90d65be173272f65fad0a4da4627de7b6941ceeea00b12e5f65dd428ed7b65945e66f1b2446942e967bc6c29b72db7b7d6b3d6da2f253ee80e7ea10d7ffccd95a2e79d4620cff3dc73c6ff52268f47f99dde4b81a04a667f3385485c69559db5e0cb3c279eccf364db7b47f6b76e0cb263907d4fe579db6701c2b1aa94959ad27a4ef9a01064cad3cbb294e10f4e945e9eae40824be92517354ad3873f74519e706e8f0cf52752cc7132a5c41f4fa3c8a344a5c211280c4b99b7b9b2b31177d8745d8da892853f7e88fa310582a313d39f5459408f567aa76e0432fd0965adf7283b3a194f3ffae95140a7d33d9d4ca9ef51fea871343d373a31a5c093cac34ee53877e5261cc894f6ef192e4ed4c8bcab39e158d5b523d066fde8befdcf7b0e3c92e92ce57559a7ba2a9c2d06276f2df1727b2e4894aad2cff88046c959a92939db590f7c31741e25ceedf1ba5367372d3e9051b64a3fe3831367804003883070705aab7dd9f7dfd7f1f0960c444541dad27f7b8f13dd7994389ee3178b1ec294dd3b11e57dbbe47bcea66c9ad253e908f2b7bfc4553a9038d596a5e446289df79b0a69d301aa82be236fdbbbe46d5b7eef5d224aee3dbc971b75a04c26d4dd4617bc1797e0a8b63394ec069017f40189f27b530f5a4aeeb9f073c1724a748c8fc459b15253baea4f56ac13930ac9de110af7ae42b29b4a897513f8819efb26c6bdd7da72b3def2d255dcb5560c287acb5b5d141bd7eabcef9c6ccf9517c996374b67ed13a72d0c1165f7564bb96139a3bc1f86516e67b66451de0fff5403be4a66bf7149687a1d566ce98fc495f6add48c50bcff54b2114af7ae926d7fbdac9175bf0691a5be1ffe17fecdb9e517fee6543a82b60f7f0b5547a10da5a764e13b1714a66456068e566a4aed9e230b7f84b2a9b8b0e3902c528deb08fa7efb4f75e41ddddfb6ecacd8123459ee01271bb8ffa428bfb736700f6e395382ef71220892a4cdb6b3d3d96e4300428d0676d002076a7077ebc30c4eb859bb214db8fb6d02d482183ea8e0030fdc7d030108343530e20b1913b8bb978022d0b059b47e60c4dd6d0b425081e2c5000a20e3ee360c1d0481450d23c038c2f521202602990bdc7372ec0966ea0afbada238af46a9ba26d5d418ec08b68aead726ce5248281b709dadf36641291f11d588b6ce9b852266a6d1ce75ebd64ce3a4214264208ccf49d1b316db2f2455bf68565b5faf6b342275a7279199e697ce2692932548ee7ee4e49398eb95453ef991cf75a7bfaab019ceebd646502bac1881156438d1e2e48874c2c45dae3fa570228299b5517ab65a619aa05758e1ffb7c6dd6d70d28502b8eb6c6466258cae19499de5e8b85c2ba6bdc66f7e2e7a8d93c800ccc0dd9da554f46ba6fd4ef1b962a4cfa9fa3a3df14e5524288a914471c2d259ff466b1896cd4fd58c16d554f373d1a3e88983d75ac93262e567e5d9b9d3ac1f7f4ecfd99a7736cfa3554d7a25147d143d93fe754da739cd5a8dbd7eada9313c4bebdac62ba6d1f0d74c75a5fd0a66deaf4cbb9257d0e7c649f9c8b374ce493b17bda99e6ba6a5e7ec736ce85bd0a7792679d6eb736ce7d9b9d71a92a740d00e57dfacd51439c964093f7aa94df0c6495ee591359fb073a7d90cd2f995621417f1c0968064c2b93bfe53ab340b822568621a8f412ef9e2cec2af1376ae19e9ab2ca9c23ad7fd5786253b8486947491a489925846ca3c4e2a61c1f52ceff3cd87a9af318a64cd518050f75a12352e98c4003eb3202031c35d356b5a470421a0e1d4b3daecbc826756f2e7a257775e5f9fafb44f14ef5575b2ae404750808690e0b83522cc1462dccc5684ccced738e9f7799af9849da63afb34e7a29710a54d9be5cf6b4e7a149feb7ed809539fa6ee7d5ec949b68bce1b2d3ab5566939b6f56cc59f91d422fc39b655fd660ecaa6fae448927cae43eb2b3d5bada2596d45626f28895675e335ef53c3c0cce689a4aeb4cf45bf756da686bbbf9c3482ba3b08dcdd5a6166537da5f995d0fdcaebaabe86766878ebd9b98dfcf0806c0106ee49ea938cd2ce750896a5f0f878411d32cd1423597394575a53d3b4dc1a37d15b67a333098ab73a944d15c9ce42e699446bdc64a7351589ce5ae797ba46790dc03cd7352341a1cd92981969cd3a4bc9af14d7b40eca48e77ee134086f9c44d35ec8a68a24293f395af16ccd1b4fa1cd5626696e82a2e54cddba86249b2a12a3f434d31c4529bb8091329aa5c43466b2afe427a8a6cd5626796393f6827926c91ac7a2a4eab96baf7c0548cad6b8899969385735b66b656d6b95490f3910801c82c6ddd535d390511367f4d5fd7a9f45bfd37cbe4e18ac063b637aca10d2dd7b9c1c72c57dc70701783ed519cdb315eb9a7a22e5358a5e593c2c1e968f9c1ca57dae98e6007094c39c14b2a4898cd273d5c9352bd9247a65a44d4b91a7e11751524e2d10aba44714778f0068b2e05d443b6bd79be909fbada648dc9d09775fc2dd957880bb87717707b87b03dc3d0906b8fb029070f723dc3d01ee8e0077ffe2ee46b8fb0186707721dc3d0877f7e2ee40b87b1777ffc1ddb9b8bb0feede83bb1bc0ddb7ece0ee3ab83ba7650d12c65979ada12786a9af6c3e4c55579a8ac40c72c5631a1351f921036b71ff4f83cc1347c95909f9d3230c4313eb8bc23034e5bfd1d1395a47bf5433273df14c473d592cfd524d1d9d96a6ed1d5bcd40e5736c280c43d34e3312104b6bdab95f98363b3f9f286d8673128ecba5be99352e7adaac56f4f877367a1c55e85939b67fa759bf8b766e75bfaa51fc3a9f288d867fcd678ee9dae7a4cfaff4d479ab4fdee572bd901b165ec89a4f27392bf9159e85cf194694aaa75e3d91a79d9b686754c80deddcab178a5f4444fe77465755c9ebe87c5ed5d4e8c4d9bab6ba5cae677d8eed4f5723dab96be82b3d5fa9e8716e68e7fe3369f566a6e1d4394ae88ad17376eac79fd6d69c9daa2bec53fc72a178b6ea14e7d9efa06769b4f642f1eb315a33caeba7e7ef34a72aeddc8f4d13ff9a3746710c7f7ae25da4bebadf95338c08c5e909737d8e6d94766eb4367badcfd8d0bbbb4b699fab7aae34d7afa756d5a257f7ab68e77e14d7f67a22a93eef1a6da6bede85e24c83e25af389d2f689d6669f33eccbd7c26f16ee3e73928787bb19b46b50f0baaf00e5b5b6716a740aa12836cdb2d66abdce35a7d98888a65fa74ecf755f013273fa42eaa40f1c1f228f1a3a318d6369add5e2f982c70b92e70a777dcbf51bff9b79d36aebaa226911113d8112242405080622a025a5142843424444ada1fc4ad53447a7d5a21111ed55a5d16a3aa7d5cab373a7b5b5c708dc7f5561abd1397b357d1d90f862a779a684a30c65a315c790ecf460f5c879652414c533edd6045fed5881673ec58e1287c185bd66a4547dbdba5f098de6fa82dc9de6a4ceeb95a58dd233b689d64c7b9d3bcfdcb9189460fadc589b79e3bcbede283d73d1679ad2d63bcd4879a5bdbabef0ec85b8aee0198f1ff23757f08c878e95157ae6d7ebbc15977b951872c0b8cb10431538349c215e8564410cbdb268b3d7153c9ba96ba6e1958a3e9b27d269beba7fd366796feceeee960c7777e2240b4d62fb5cb18ea6a94844af4cd3434630bc324d489f3aa77989e5ec498b2e5657902b4471d6ebd5272b94a0020b4e6448d5739f66aabef24a7b538ded3c5bcf9a95bc5a23fc6e6e51e0eed8c99b9e2026ab262aac602889a8d5d2a97aea34ef2b39cff00a9b72f4ca31242930c016ed7ca7e58914f934a3441b96512213557de081061e52b8db9abbbb9ce4018075a7598786679b1307e060f0b2d8da7c2244fe66956694f55ab50f3ca89a70eff1393034eb2742e477cce8cc31563632730c434148ca2825921ff257cc33afea2b3d710cc989374e121425a63193224568b395c91014ef54a5e15cd558913428cf884ca1562b9feb26a269a46cae38294d529318e9d993a3978a1ed99868a75917f9a90d7965185aad57466ab5ccad89681a2731716662e21c7bc264abeacae3a386a4d288aee0d90ff1274c78905a2da2ad9af808556978e324a97ac260e6ad4fbde62830b840c34e725e878ee42237663632cfb5a87c1c3308af38ca6ac82bc3a05f44e70d8f8fdae3f0f8a8ad320da726cab55cb34264c63466d26a9938c7885e5666445666260f27701b70770238694211e8592beac1f2c1e2c95161e9999351fcd2664e8d4ead63db8500043159a2e49a6e93122890268d0ac870772a4eee50c3545322ee6e831aecc05264e673dd40ee9ec45b48dc61aaba46c9a6faca49769a7551197b6d3cd3a793adaa26ce5294d69d02a1d8c459ca56512113e758a92e49d573bfce75eb2c259b7835a2bd6074c2521589893393971527566649320da750aee59a0062af8d69fa4c9206d1662b932bd94c83b4ceab11106db63271f7d28db4e08ee634c53124b4d9ca446f4da484d1bcb65a4444445b8d691a4e85f2c65bc8283d8db0d6d9090d1e80a30b2d5a68400cc400c11229184205042f0b5801938d0a6011c45341c34d7360811d3a803106851a1d9a2020e565e429420152489183039b03d890400b2692d86082a11e88b4c07377216811deb5592b88998b5ec9c47945b1bbdbb8fbca01e09e224970a57c4484e297da8443608425ffc1eac1ea9193c5e4b8db2ddccac08c93365a5c29c59fe2d8fe98c619063bcdc79f9170ecd5fddacc39fdd8eb8c253d8ed2aacef2ecd59d9e26565133ef576ddd3a555faf84a6eaeb93851fa6c674ed958adecc9f8b52fc72f71f77ee07016e0e7e64662b2f646ffc7863f3b5124e42f19b599fb1fd668a3fa671ecb3a9a6d8956b2886a1d532739a04259b46e9197be1d7e7157f9ee20ee4871b71f7199c14218ad36a47aa8afee061ede4149939f95c3729c20ef76f65537d7d468b70ec85f39ad6decc6bde69fe567aba7b0f77df01e3ee3aeece72771aacf80f775780bbcb9c0c017537d5175136d5f45cb78ece48e73e67e74ad3c12f9f9d1dd88e8ecf4e109c7df4c82f9e203c3f80f414e5e48dd7ad8b6a5a47ef9a7af4cab197ce3e8dec119699f73e6733f56589b08e5eb8485d3f177d8a5fbf716cffa799a6befaa4072408526c555d5f07292741b8b2e6a2592da5bd1246b394334048e2ee2aa43aabe69b38c77ea779c551dc71dc5d06277370e1ae5796ced14b458b66796b259d939e38f6c22ba6e9e89d5114d374740dadcd6a2f9dd7aa593beb739f284ed7bcafe447f14ef32c55d7132905f222dc9dc8c91c4836363a9170aa93f3ba8b7474aa9e2f163c353a519c6938f5aea94ab8490b2469c4dd8c25977fb3cf39e78858ffc058b3b3613fafb15d081665411ecec737223813be0b821db759eb225c965fb702e05ab0fe09e9bcc6b36eadedba1ff774dd5abb5d26d67ef65abb79345c7bed77439062ad673fbf76646dd7f356a6b7dcbd9c17cb597b4d5607d786de59ee6ed95ad9b5f6822f5c1dd75e8fbb7606d75aef5a015811acdd2e68a6db3e940dc15a6b6f900b02b85905d86bbd6beddd88ece54ce18f2bda22a0ed786c44ec772fd76333dd6b6f6a7a6c01b81e27255b94eb9cdf07586e5b71ddb59b7745d82fac5f2749d2ad5bce5e5b030bde15acbdddbd9bb53eac8e05ad78efbd1e12abc2bddcb53b1beb340298821d6f90708db0dd1dc17276b37ea3dc3759ceefe9f9bbec0f9ba7cc5837e281bb59cf729f1dedf6e55eb0b5d99fcddecbfd15c395edacfd76b81e27ecd86bf2c06badb59fb52d7bef0a36cf8697db90acead6acdd726c78ba16fcec35724db826dc1236dfdcd658ef5e3b72e4c6dd11eebdd6b31ccc863ceca9bbb6b3281f6badb53a6ed0770aaf2d02c5ef5a0158d0daed5ace32b125dc2077c73dddef7676b3d75edbb225dcd3fd38bb759bb53e76b32b1b5ad15a2bc49a704ddb6741ce5e6b5bd67a21dc1c96bbb6e36c907bb2db35c16edbbddce56c907b2d09d764430b72d75adbb2255cd3b7590ee4acb53e6f6d5600876c2c7476b3a1e56c6c18b64e5474986001c0d97bbdfb654b82b0736262edb5d75a9be39fd35c862cd68c186ae01f431264a0892115461953f0171278e1055ef8504a052e944409b210c6c2a52441460152522a1401242133230afe61a4491226e48009deb11324091b9d2018d584cf0b461e3e2993ed79815da3c79566013dff0367b9d23021c7b5c4c5f102022aceefacc002181c1b9ce07af18417e18683c13183bbba20fcb91cdcdd57d02b0b6f6c12795a4c288860e90bbf9043813d5fb895200eddf04405ae3c13f8c3893596133d222e691b371b1c17392460c943dd2fe470c6127e24b064824134391cd40df7878eee05ce7a4338b044a449121b395ccec435b9e1c1120c705801cd0db66bd938c1c80d972361cba1d954918e052d963cef84285a40a839a2c3b6e4061e964608a78839c41c34280181066ad30e9686ec70894b08f20bb7b13be20cc0e50690437925d81a1f378cd18070852d0237b8bb009cac62c7cf247d7e118d0c174e6609f50999983bcb54424ff509191b77374a4ff48c257d4945086a6b8e51a1434e31c6141498628a728a142bcfd457d6fb9561b0fcd9d4e54ea29d9bc4800c304084bbb35c6a2cc975621a4eceb0c749b1d78953db2fecfad20c62e235b026343c07dd182aae57969aee34cf5427add650929a5ea0870bd070019505b648c2024158a0b48058810b54a001ce72f22cd7ce9a68cda899e2d8df7c7abe2b1fe1dd6ab91ea6aebec7ec2617b976164aa1b81ea6aedee572b9948a3ea72ac6b14751fcca6f0ee5bcc284744ddd3375855560891468b83b4b6b15fd5d533fc58fb36b455a8d2549b184144baabae2a4520a26ee2c295666a64017beaa27128ee5227dce86a080119ad246717a2a61690ae89c61bf9a4019d68d0a9bc015f71b75ffeacdd73849680246deccf975254f00c53a8a3227d297641457bc6646c1c43d6674c65e557714efce525f55b7183374c468c03d27af34a5159faf1396d37c0455d5a29c571851524e5bad21a2a49c6e9d4d312240c105144340b1040a974017ce726d555d5d37aefc4ad527abc759d5a49c2aa13475a5d1f0dfb85cab3f596bde2896c01212c0e2ac212850a42061bd52117e02064f7c7902f604e944154e1839d18213354da46942024d4c89401a7787c1c908301181983b00fe595bafa70a6bd6ebd189fe4daead7bf519e94471ae19dd648d62d80a47e3d8a328264a714655b5e8cb6fe5b068e72baf2dd7d6d9747d0e8bc57aedfc383a1be1352ba558a98896575a4e6baa128e99f1ab43cf5a7311ce8d2bd74ed7a779551fc7c431738a89325a84899eb59e3bcd1100995001134c5c6101009ded188bf52dd64e71d2d754a5cfb373a31024089ec1c5c44a8b2544b0c41567cd6a5ae3dfb5a23cc3429fc332f3a6e5d7958caf00292153228854e20615103021d0e301633c808807e0f080fd80d50336771f8093619a0072320c2c4ccb013b7040051cb0e4ce9ae93f92e4d5f4559d9e503e0745cfa3df6a8a6213c7347e259ca48f5635e95d2e33ada178eb5a12d8c78c6a6a9aa5b88892724a94aaad560aa5d51a72fdbf799afa73fe594afb3433ae1525e1d54cf18b28af359d66d7e7fcb7a4b06aafa6284c3533ce6169bd669a8a83e2d7b9cff5b56b45493e87b5aa2e174e4e52d15cf4fa7cad42106b5d735e95b85c2e56aa755e6139c3320dea0a237ae973760ea138a6714c85a5410df042c3792d1b1073774fa134c088e3a4f7067812689450b406cb684926b1c5592f1c33cfd759134a62c78dd65a7ee5f5d535d39093aae9e3284e824103860896998f3809c68764801aeece72adeabb5c275066c0160c10c29df5ca343dc3457ef4d48a28651794f2915276219bea8bc7478d01bfb310b98033dca138b9001c16f02389930a30c3dd595909cd1bafb5d70b2769a57c5454d3eadeaa2a4569caafb0c20a2bb0308a9e2e900a18e3fb9c650510c0dd5f705201211230209100f32cad94aa2689848d233270841447843922872390dc5d004e1e81420252908032ce42519cd73de5594a6b467a7dee349f2cd70d921514578fcf61dd64a453a7af5dad967a12d1b4eb358ae2d7ea5d37422b28ae6ff5f81c17518a5fae875dc9286da6bede25e4723d4c752171b96e849e8547924df595948b3899802bee2c1aceb1d72a14cdb2d665519e2294002509c07177ddf45841717d0e4bfd23ec04286b1c8b5264486bbde6594da7ea6b056ab5868a98414343884c5445c04f4e6bfaf5f94af9e84d5415a2b4cd1c7bed3349cf5065cdaa59d354aa7c8e0d21009ca10a952acffa23552dbfbc2029a7458686c0a034516349455aad221affd0902157d423288a5f5f7cbef830a20b6729e5a3a49cdeb89272ea5abd1954eeac8d9862040b07f082b56614c5aff48465f3f599c3d2b5d83671de3a3d7150141fc088bbb3b6aa4a29a28b229a28820877b771b2082c45d4c8228e8af829e2a70815dc5dc84922b2709d210f00d6cece0ece4e8f67e151fc727d463a37463ad76c4ef91cd6cdea8f24f99c42f91cd6ec6cf239ac9b1e2b289f5364c8038045449463438e67a7d1b9aaef12723d8a5f3bcdb15d2b89c8640cc185bd19021dc205aedcad0a160577cbc3c921c821480b0077abb23b52eef64fb02548c9287aba90949f98d9549108095183bb0bf142106b44f9012224847f1fe199b9aa9f9e592dc29fa4a647fa94f22ca5bd669abad25ea5e40788d6aaff1f2042426fe69d4d960a4ba6142561e52315293db50a53631a33d97a3d6b2bedb7ce26aaae66efe49bb0f43e6727aa5b3a8567c5689faa678eb9f2bad5f461e7dfac3e6b142b79968bc747cde5aaad5be3194e5dacad55f473d17faaee547dc1cecfba865fb9e85d3738add6d0ca15d319a6e60c83a9337da638f6cab3175eb7115e3352467376cce8445fbf54f45fe7d6278a9643f27e65a4c73743795dfdeba4a9fbb193676d7da2ef2a3234c435cbb1bda66a9ea95ad7643035c7e8b79a5e518f3c2b273d1f06350a46f59994aabb161b325f3f6bcd26ce319c67317996cb25f4ac9b7dbebab50a9a8667ab7f96c64e70d61cdbd948ddbf6b3414df7c7afed0b39204bd4e8ca235d80c3f79659a50d638afaf34481dd266ce4f5eea509ea94892a4665ef3464f25288a91745a76d8c1ddb1dd119b61fdb966aa4fcce041052310010f6378688287303c1cc1c30e3c68e12107779afa3728acbef53a7f83c22badeac6668a678f83c2b768eae3a0f0e9eabf85a37f062a3c482179f8b959b586d6bc661a8852351552d72cc30e2d10d1708e69a25d53b3a9eeac51f43c228aed3389e868c5b3bc7658e850e5071dbc04630627c1c0e2241855b8bb087e420a2e4290178071f2051770f2056b38f9c58f935f4c71f28b1b9cfc420927bff080935fb0c049303827c120f2859626ea9ed58c566c02ce1176498e294a6c0a640e3eeed383b593b35575d5e74ce7a5cf59aba5af3889038ed689bdf2fe8df7aad2f2fa59e38cd25e8899d76c6474c63eafb58c74ea34c3b2f938a94a15b70a2a266073525ea730a184757756d62afafa2bbba6736da778c546ff34559d129a582f6d66f4f5a9aa715e7f6325a189a5d34ca3e1d86b5c8493563c8bbdd25c94c21ec5e72bd3f4632402a460dd890d82c22103777fd4c92c46f4cada57721a7503111de19c7484f314a157462232f32bc3606633ada947fc65c3cf0fd658c37eb14578a9c10527b184e18f939e30f589bdf2aa914dd7b054b0f0f0e16401c8f02456c8027c71f794995f18a5e5f555a575c8e228c0104b27a9289a9e784d1205cadda9b08003481abce895b5b3ce48ea2c34a5aaaa69347535df4c71aa2a7d5a9ac0fd89934a4eb86b149f4586fcd638a3bff12b15a151fa21affcc095509d8d308d8673ac0564aeea2b4b5161694ed524ba54cd9a90894429bb609e664de80a902ba2bb6b4ca49ab59db56ad674121796523e7ad5ac69974b356b4252dcf34c15caa9fa6448356b1a298cbb034122bdbbc6492f0ccba1a96b9a8ff0b61cf88513b190071c70258cc4b8bbdb30c303ca408228eeeea62a28fcd4b8b8abb093a846f35a14f7da0fd74af9884813d576d49c0cd744fb0ad75b8a8d841677df3bcf76959dc4ddd3edda0cd72dd066bef5eafe1a2d3ddfc447f4ca6ab55a267ac65e2d77c781bbdfc0ddddcb00c158afb83bcfaf60a22a0dbf542757d72b8b07a9d5b2b2390fd2abbb66ae2a6ccdb45cdb1a373180ef6cb4e2fd4488fc5a7b6d01b8591da944fa64dde8c77243f4387a950296c759b39966bd52ca47444a4544b1d78ab326525a717a16b174769a8590cefcca52cc15bff499a454c24ad5333d3fafea6c069789738c6867dd6ab9a87cce42cf72b9d01a7e7df9ac3c94e4736cab480690a6a751fe9ce4ca349c668a612a0cc76a49669af5efacf45b4d698fa2e7d69f57bc933e8a13294c9ef5b467cdd4577abe5ef1ebf5696624acdf4c315651b348cd49b9966b56fecdac71d2ebb756631aaf3f43f30a531feb13c55b09cf708cd21367d5e79a61f877d667ec44f19a67394653693a9fb3c7afcf9fe57d9eaf37f3ab66a639b66770b9a8b8f24c1572bd3e5f9f38da5cd5a434e859a85e5f9be9a97e5a3e6b6b8cbe54adf156d357f39467e573dd5a857dae99b6b366cde07251c97acdb1adbe9a26e1fc30f55de73ed39328555d2bcee8eb73518e12bad35cb39275aabe567563147d9d696d67fd34fdad67d13eab2f5692ceaf7d25a7eb0c4049a02069b592d4f4880845731295195cd9545f2d1795cfe79ab4662435273d0e8a53a353e31cd5e875463a8d34fe5455f5ebf259a689e61386f33a0d7a9d9e341a94284a47ccbccfa233a6ae518cce23aa3a84374e92d1228c9e18a9dcea1373ab4fd42766fa424c6326472f15d5af93a60e6de0154b29ad19297f7a667737230c1a94b1c3dd6b70b288027a65e5579ab5ce44669a8f5eb808154ac2ab19dbe714336f7cae1bd3b214f3859d8586b6569b6c5d4b62e624d54c81b01838c3d4300c4d9aca8761685ad57505c263d0108a622457b093b4c915ec84353bb7ceffab0a337fab4f744acbf9e8d5fd3bada933fc669ee127cfc27985bd6994e2d8eb715e5868a6ea4fd5d7472f157df495d2f259fa7c8d5fbad6021a82f2e4594a68aaba5c8f5f675d7329ad78dda9fa324f6d94aa287e97ebb5c6d130989a4dbc6e9d67eaab76e45d2e5d5363a8e1bf48912178e3248f6306ad515aadc72932a4d582a15968c8ec8c09d1b09327f27955b7d0ff17e05b2dfd193d6933f5a5a62e970be801f02cfc297e98baaa5ba3b419be923f9b8fb7de35f5612acbcc35adcfd7fb4c6b8fe2ad6eadb44ff3ac5939d3a09c04c5e74e73463ad19296b30b19ad9939f612328201c8c43989564ab113551d72779f81bbcbc0dd6330869354b090546862844145c7dd4c6b9fbea043caa07dad9979c5d9fcd769a4369161051944320611c470c65daed748ef727d4e0ae55937f957d831a373b6c2eaf5ebbc62f495cd7f20c6d8004c02bea8119969d644aa59d39868bf709a11400ea0042e4bcff7f1e1a3c7a995f40074d019e94431112de72314c5446b86e914af7b4d6b44f9b5aa300e0977841bc2fde8a4c829ab9be2ad0a96ce3ba3d94c833c08a890e34d6119a5ea9af479a60a3d4b17d5f4c75e295e8f785e4e5aedf5521f76fece9ac8ccbae6513161bbd199dd11ce7d3983cbc1cd8a489f46e9b9f57925a7b63427b8732f3807c4f9a4c0ddb900bf26bba6e67dbeaa1f279b6afa39b6b7ae05c0dd51e0ee5b68e1ee599cc089204e0e2571f76caa695e55582e4aca4f183004a6279a9e9f8b7ecd4819862984c4b04ab75584aa78eb044652aed02b6bd766a247be74e0a4699d346f38699ae0a429c449f305274d2a4e9aaa7b8d08374020a96cc0492a689ca4b20227a9e0c0492a6938596574b2ca3b590588bb8b8e830472cb124e6e91c2c92d669cdcb285935b72e0a4014614c54836867d4ed5bce6d8d00851b6ce43aa5913d2422670f712a071772cdc9d04641430eeee36ca96a293887a03308690817ba765a8e44e30b6454c32a5d0cc08080000000033130020381c128945e311a95c28a558b3071480088ab260824817894190c39442c61863080102002200000030336d14a5dc02a3fe92c85aa90160a3e762a940c1c759bd9a62032aafba953cbe317e705c752922bf5080cfdd67698df8ec91124aac5937d944739edea71dca702d116d56c8ca7557ba4c0a0c22510afa9f55c45354946ca7c3b3530212aab1c1ea01ca516793315975bd94d0d1052a976a7282b2e8b02aeccb84a104b978b67797f135c359ac0466a6dfdb12aaf459fde70d4af6f6d29d1ce94d4bf344acc94e463bcc4716300abb7df003d7699823bd5c0a59167f520ac84515d4eb89fc5164489da774908748e109fbd37f68e4d487dc7c951c5982040f977fa97bc2ea0e84e98bd57a0d4111c885c0cbdf982ad04a0b771324ea2b195791f0c9ea347281f1350c49b9c348fda8480287516abc5d44c7d2ac30a39ac3f48e9fd5f0434023f6a81bf5d6a1615a55cae2dc8bee49cb5836ff3640d98bbe90a2dfaf778d6a96ffe2398d962d64ac00bd2b6aedea0c7e5f3448b10957d0abc11b87656ff8878489c582cecf71e5d951e32ef57278ae71ceb192a2eb6f6b8e3f4f740e387cd5c95741eaf3fd2b38c9ea4453a04bac8ed0e8e9d730f7eaed5c02516f78a8fbcf68d80820af9143bb2c2d1aca30a52539199c514d69909ce3669f5f4deb717f0a74b88f7253188213394f1db25667785eadb32714d1db3b53ee96a8e5bfdd952cee306210c0d88c504c3e8659486728dbfc99140dfb4adfa8388bc8109e0cd620f1287dc2c736657acccdd9964fdac0db0004ac12bdc99a639484280dc46a094bcdefbcf6e69ed3624d65b8227eae21e45644b1e834da0d851fcc6cf2f834c998e1846f583b7fa5bde23e10cc485c90adc2e1bb593e94ee654992c4bd19ac5e65ed53149f5d92b7b8694dc6d5c4c487d1a3d124d94903acd4f24b61c4bc130c8ed317751c744e21bb416085e86403e4aff097be60e8d91326cea5a6bb11c2e4fd74352e2c7a0016032f8e08eb02b101d74860af86d232bebe5b2b69c4562a3a8b7edf17610e184b1658cf4adcc990ebf8e2d15edacb53c20d5e4bbb7c7d681bbd62401afca152ac434f93a178359e33cf5544368adabdc37ec8209d9b3f83bf872a1f3a012044af22adb3a860e1e0525205ce262cc9d1bb73ea7693d338b5957cb2a38b75d339f7e786c7fbdd73269a9762316ac0f1c0ea91d46f6d30dc2a3fe0dd1bec208de96ee9e5f253b73904bbaec0df0ac1d48454c59387cbf86726e90c7a015b9c4c6e21461785f9a873f6e4b0cd940539eb809921439e28c9c04d826e2dee199d2d062ed74455a9a817c3e711d37955314218c16c922ac948565cc378ef960e90fb301a3048c45acc59bbf6b700643e08f919cb987a6f119ae319a06b1f379cdc6d87e1021600e3c17fe1d5250afde2c37c809e33d9baa7bd258981332cf7f5f3b8c132ff063acf6d4b2ed43e6d4537da988520c35207bd77e40d442f60b80002e11ef36c1c83c104611a16487d41d15df0ee99a238b31516567616ce194122295a2fe96b520149ce82c93137efc22f48ac7c722d4de57720250e8bb49a9710e728f722b983eb6360acc60d597a9ba4477373ae06b50711c9cdc9ab50cf47bb47ab429ca73eb6fd946d83f6b5ad43ac63bb1e6481b729a18c0a5c4605283175a8a91a383a744c571181378e6e430c855dbd81908d53279e95754bd5674302ffed84e72dfc7937ba47516336009bdc9e9b7b5c5291d56397dc893c7da6d56e05b0194d95adf5a5e87b5f48bfeff700d1181372a22d6fb6f7e53f82751dab00b968263a33e2868b3a42cf45adcdbc9614e2c0cf77afbe619a485dc35675c96aae2c3903f706a56bb1d2f2ae32005c64b4c1592558cdcc8a2887b47fe0d11a1cfcf2ee5bf834877f238bf4b4ec3b976f0c38ed008dc1c90d354e363cd869653fadee0d43714dbbb0aeffb59d77d705bb1090dc36d49f308df7542fc6f86af3b9e129bebdde19459996a9ef16866bd61a803843c2b15b089ed50998d4e7f4691cea693a37bbbde4a94360517a37709cef659b16a43713f4f8a257524def4af09bd0a1e6255d8a6eeeab9183e2f3659f525d9bbbc81d8cc25df7744079b26c918c32e98b5d8ac7cc0bf97c6a6468be999c03bb61dfdaa0f1c84007c33ba71f5650481534cb385954b9bc73b05d5f0fd8a1e8a10008bb4d95cb36574aa83efd6d2adb02928e1aedfffe00a7987d37a3d1493d6c37269587a2dec0988257cff11f237ce3822ba6099b483e6f5a57b561e243939c894fad6c272e1c72aed46cf97d4ac56a9554a847883bb8d99962a452cedbb457b606531f5e4ee6cec48839c9b6a124cf8dac287bdf1c0a9a9aa791801c39406a9617187339c399f7152dbc854977709f1781a2aa0ec0a62315378220ba8654c349f1525fc568f82c6b089be746668c28c96cca880bb07a916769d5f164c17bc9ad8f491890870709918b46264790d03fd0c2c2e83ff261edee1702c119680f0da0ca541c57cd752700f3d917d2da684ec23fee453a3b7c8282fe64479fc93937f9c2b41f04a6fc035372a99ca937b11443839d1515d68f31e810d27030ca486a892427c86cca5343ff86c37c797e9ae984b6310261e2ef762d9a3b7f6e54dedc49ce538b7f7048c78ab78fae0c3222c0ba639eba851c96a41d78ab2d82b79d65d5797da6fe10eed6c934bf8182c479c9501e3afd126d200858674f78f546c83755fa249afe390e2df64e16334b6fe788902c152f71af841bc0e0a5691cb0e3aefd51b6da187f0df270bc3b2d98214cd60e780d28d5540aeda5439fecd3e75f270d793b7e067f71b5a407af5ce7ff57cdb8a2ed363095d396227d91b799cac255cd6b5cc657302e2f53889d6e88d8747185002c5be168f160a7abd3aa6433636f33f9b059cfcc837316a826dcf2bb93ce333c3166dd8a17b0940020be4f220f8cfad539c9d933e67f4dbcfdf42be977c0480fe9d884361bda4cd0720640eefbc9f2db8d8a3620024cd374876bdebd30b840de8af213a288aa153386d35c952a3f6e90affb3a03a821359b1fc074f1c126e2a839178f19c017d4bf4620be8026cb4c6f97c81719c75334594c81fde9c46231881e820b3a2234a822627bd7454c699ce8c3718d7fcb8ace9c2c801bd58b11519eef886b436c7ba2afcf618cebbc251b04adf799b8593d4c92ea044eca2ca716ca95a21182b665a7883a55dbebdec10c689cacfca20ad9553f11096735d7f595456b7c08952b15ce8b68227676195e82c444d3ff85cb5c6a1dc34f615c3d0d4ac1592b57aa3296a40a39fdf79688fac4e4730be02dac963cb4134a862cfaa0d0ba9b4cd238e4ef85770a3b0312ae7df927d01037c0a5cc780a0b81daa69010bfe3e778f93d92ebbba776cafcecccf9991fa4e82a3420bf0cc7f8f59a600b799ac5c2b99cf4ecf764d8e87b489629ad4ccc961a403ad3249d9caf0b5cb6d15ed36b48ae49214f9eee6afba08b0df7daf9f984686edc0de2d1b30c970fee3201e9b1bb1e1f550f8cc51a834028cad7cfd14dfd6322b96f18bf7318db750a7e5fd1afa921f169d0331301cc2d6d589936be1ea8cdb7d2f269e30bccc107463e78c699da59fdf1ec5357ad6124d268745f2b1f431ced3b965bbbbcb05a7eeb18205a48e1538ec6494aeee1eb864afbe77ce89de2681d1df99e1cfe5ea5946d2d77df1037c16068bf29fcd72858397024d716c927d979ee7b3d66e46160b7b21e02c2d06d8650ef9f3edc299bbe3c6810cc080d9636c994416316546a99e5c9034be5a865877547e1084c7d5f60bc62fb9c45b4b17daf6f0d18a5b0cdc21920684eadd197cbaf4d6741718576758d85e6db345fcfb68bc835cda045fe360f29e4a974e99d7310e390effcdd2ed7d9be83e57dede553e1d8fd0fdbdfc92eef45fb3386c95bc359fb1b322f40d7130d59c4bd177c1d2aa60ab947ec492b170b1c91a2b70a8a762c87b5e96d3fc1d20ea193feab035a31931ad43ce4974ca7e454eaf0f38962a7f688371c3f72c186d973056d16c736529cbf50a251eb7027e9a833bc4b6256e0c150f16fe65d899210f0416963d54c59f17f7bae07ceb66be7bdcef601c7895e4bdd1edc2ddf11e5bf8cc896e45b51f83e2ba60207543ffcbe84d8b63b74318f3c44ac043cc10d4f3d15d072948895f244ccffdc48b13eeb9cb3993f24a299dea71704d722f904d2cc71940703b3e4a728e807c1c1d14a99120cb3accdd6587d36bd75ba35142ced62adaacbd3da4b2acbaa64bf19a1c6e44a584e90fc8cba1f5118d5f382d26db897f214fcdf1b63076a3d5f7b6c09bac9e827b32b62e3e95773c5291e5b5266eae3337fb784b7efc1f9d648d5daf0348e9c048744f386e7dd8f10fd78d525aac7e27ea98db2de146c0c442d2fdd1636a83fa69ddb0c0e4cee2d961ac567625cc87f123d7bfef65a7e3774d01e4de007f385b1294f3e24c8be101c9212a975845fc6d809132ccc14bbcd130e59c576f8e5f841b96264fe7ea838c1361a9484018c46c4e6820df0351adbc268e982f4a835a53168196781a1e88e4259944423feb8a8ba6ed42aaf75c19eb89865db12be1bee48815bacb27b8e59b104bb81a1565d26004fa3e7c312d125757357fe5f831091487893bba5a0e290447cfc62660252bf4967628d23daf3aab608d05c76cc93ae3155c8c22b82ec3778fc9ff18996e64a2359984297660aef9c8608ea4a9c3f7e873e1093359f40b43e7e00ed84ec7d118c89b687d465e81f24ae32ee28dd782b7021171be0bb4900fdc60746f64afe4a000dee58be069df1d042a0bce6bfd94a10963c6c9e988a3c3ad1c1b0b74695169fffa78580fcc950d1df1cae72c05e2c3ad5d5095fe125e7972dcc128d2e3a613df18d7767255cddccd0409aca899b85ede367c609deb07ee2516d41dea6f4b3b149688c6d003edf3852ca92d9f07d0fbea351436edda9ab4a8444f2a474e2d6f46ae659e9316b1d332a93078db6a8a9d86f195a1e1b3e08d96d6bd16c62171453b3ade0cc90ba2dd3ebe68452bf032fc7b2fb47b9c5fb5b0b8c13dc5b76effd40b53e837b3120cb997c4ee437143136e23ba233aec406376c0cea3ee05b2ce3099d2cb36993ea250021112bce532cb5a46b364f563d4f777cae4f6b3ca4c9d6f8fbb087d4049f2d9c9f643f5b3d628343cde96b1cd2090d8e0d28ceecea1d473b3f7c362ee484e60cf41b69325368cded366c939cfd55884fb3e0492d86be1b17ef61c5655e9d521751606d4f20fb002820035f77b600774d63399cf6f454c16bca6598d7beed09cc7eb33cde558041792f20f39e07344cb98b2c5df3946b2beb112aec11685aea73a54f67b837bbab0561ea21278af2666bff9c3419f651c0e2770c6db2010a710f5cac64ebde4966c8d62ef7d6d4f048c0fd693163e431b6fb3c63c8e23d7dc5430e7bca63a29197cc9a927180ca6533eecaefb12aa2d16ac260219dd1863e993f672a39bdd0521d469aa1fc692d65ee74693bf8d26c2457829083593903c189e7ed78dec0cacf0288919bd9ec07a101159eb9840f63dc44b9635058c6550d7754edb050ab0b62d49a110f3ca40726a437205397df6c07be937af400cd32db5f2300b0b304a47bb342a021a5f7d59a3fcbfaefdba9f55fc0ffc644b8b886e386d91885367204a9f9c5e8b25c7cd766dab00a77d3376a1f3cefdafc27237f7b5b54ef85914e26f0ed4e6065e90cd92c271c8913249d33a3f19834ef0d056d794d56dc5903440b922c070591e92e0df4523b7d272dc45432a97fd22b51171294214e7e0dd401418445b40e8a2918d523c56b763adc3f2867aca5f744b21657792d9d86a2031f3bd06c86dd69ce206bd5a6bcffdead10b95b9107b61137f8eafa30187a051b8e42120b2466ddf5e5191723141f802b7272d9a9387f33d29643af4457eafc6fb49839f1aa00c154bf4543ec0130206d1b301e9910fcd8bf6dc1ea1661845b3742e5cb1f34c15a698397ec080b05d9125f12425acef220fa1086b45ac8016f56f3ff6e47392f7dc0deadfb2ee5f34b17b106f74fb05d6a0ad7ffbc8a3959b49d643922ce62d59f59cb5f3ec7788772d7d4092264bac2b6963209aea01532a3917e6dca62bdafaa76b275d184363e988aaa85ac570e7a261a081d39b94e83c6096a93b2704b4e059ed836c4853574e296cfc300666c620867299456a1b3110ffd224e66c7e6d6ea5753f0a9e869825439b5e165813154158da8655e6eb6fb8161bf31cad6832f1b6e84d9c634c28a49f7432f09b5ed244f3763b5bba75a884f3dd368e43337eea00ca09e81d540dd338d720ae065804590340dd56604b70abac7dbf0f5e9a768638267ee8884ef40d93a80fd268ad06db8fe3c8af0ae64d3d00543a677d05941c4074e5c7f936fd3009a6709dd97395ebf693ec49302b2274c7f48aec92a2cce8fed39f9d2e9d63fc03066d82b91f208a1a7f825643a7918a5d0e92e32b086f88a24dac557f5c4fe7af23844835c4df2bde28ef730b8d8adf377798923f85816f8f60472b9a1e1ee5b556783034af2ed9e95fcad5f39f7750b80454a19c78e774feea647fab8f7d039f7275c0add15cf038ede5da9e2145591414d99ff246db0a128a625dda42af6013c6041333f0215950beb4558e9c77ab441c8bfa8fa0fee94d818729a702f448ef39af683407493b3456c72d330aa2afa21b0094a127f81dfd6f493c40a1787dfa1b675ee43bb93a48b46f29f6663b3dd1ca57862e41c252edba5fbbe655b92ac449db3a03cd791698b9f679f7ed9cc7dbb7a8886a7d5da6a64ec3efa624018def510ba0a22e4db16015a70a085ea328531e8c73e96566ccde65a9ce2ee07228eb382d615a4f935ce45230066198e1f7d527ad94a41e54f884895ab021c4e41d89d35afa555e61ee39090a082d8aa32fd53fc8ab90f2e2836ddd6d9f3c2e577ab6d91a18d8018215792642a6d04e95cd7af389902a9c91d15d182393225018965bfd4619b36b7acd812ad48e861184a41e689a81e238ef143d1002a4b4884b211698c70f0c7c0aa5333fc63a8db6e8ff25010c0cc9ce578b096abc14a38daeedc67f4d8120133de8e307202711569c0f7b2accdc894be3a77348d816d845094ddda5c259c4202b4a6e8b6a517ca1a0ebb929925e5a3466c287bccecb1232fcfa50dc8b64fdd89720039305529ba3905e1639a3dddf884a8015bbfe60710894c0ad61831a8e50c5aa14458fd897d313f1f62c72527afa1a093643d0a7585a46acf9097ef14ca021a45ea034e676f95b67fa8c29a69fd00da13c24297df4d38d4a973523280092b72687016f9699945c0176018eb8b56ce0f99e272879f184b009d2aa4fca3cc6f2e3048193c83eafc714b18d4ba84e42fb6ec4072fae71c1fca720ba8122a02c2f0066af042ccc042575d8c4ea60b3682f0249e5c2e811425286a57a5a59ffaec9deaa613b5ecbbdcd06ce0ff795d4b33c8a0002b0752160372b9a7b2d2bff7bcf8ed6e78e9bd196e90545c4d998cbde49a3fb5f23905a3c0f635961dfedf56f8a80c393ac84629d1133334aed6d3233c75793fe1780d37ddfb62196613b9fe3c81d7db448a1eab930491d232acf5c92ee392a7f9762cb7163820c8193c8b9bcd15b6f8cc45df669f7b1932f8f3d7d3ef7c6b59b51aaff8c0aa792c6266c5ddd132d4fe89f37b653584f13380fd560ed36089306da150821f69962f709faeea9c9db6104b5299c9ed41a7897da6f412f3517db224928b4418c55884137c3f7917145f4a3699e0025b450d69788d899c22db304b9656c098dc72914eebc8c4cc7f13e99466b0a401c448cf1fd641899b72caf42f4ba2f58d64a667dfb8df0c4dec308505fe8ffd15f9cece05e844f4bbafe24b5baaa9e2251849c80e1e5ea2addc2b11de85e2e5ed3611f5b03524e2497100889297e013e18caf258d28472cc7512c315ae90445162aa3abbace31d61f2402d514e7308c1fc7b7d59c512c051dc78fda152443be9adbc1dd25a4e80622181c4844750899e23a9948b98f723aeb5f590ab5aca1b4360f56c76d96200f17c1d52eb09354d9383a1b4483affab08c06022ec26bca036ea8b7bbebf248131edfc88a36d9c857f53211a29ce346c633dc4f8327563faa0b7162fc46dc13e7f2cdd984734667490e4b5c84a92148682f55c14206e002cca0675086a07e37fedd37c48842fc2541a9ef7065708e40a34c5300c892f038968be631d9eca3d71075000bc4a37fab99c41f5023687e95666090d051ea5f6c011a4064393629c39c82d3e127fb04fa8a8768580677ea1a2bda5674778410a4a1540f17621db281a0e8bede139b1dfa6d942b1c2395485101c58d0c6ea5c8353756608c3a40f5df105de7adb3fd60373248512648633ec1aed065a2e6d54ff96ebb997b2f7634ed7ad39d81d2ee7a1bec7d9f9749b96af61a4523fd2eedd90219635e55a37e0458aa998dc341a1ba21c68c602196ad54438aa31a547f9a6e7ca8fed580ccc9fa5d1f6ce7afa9f37e283f3bf55d7aae827d3bfd2de262f784561b6a0a8e6858d80de03620ed7f820e20ca7f97bf4d02b376211e4ae639183004b3d87d01ba5359e5ff0deb604883040c7cf482e00861dcef067a877c311abb19bd01b581c73fa8ef444c1c40a95611357f0a6bab5c1f5705645d0e20635c2e887a557ac3fd99b1e95e0e2b162269951537ef5e4abe56cf240f7d12fa17c3f3cb78c9851cbf2d19e472cfafae2d47485effef921620dbbdc31a03f67abc2bdb3dacea5e919976f2d67db0f7f34544e1f0be49a35b04955e41f0db850396b1ec41668ba9b617d7ed07654f86f5c377364afce1e4a0d512f2f7d76f445f1472f50399710da2ecaad9d0f6dd1a69fa2e0574ba0cf63a7acf28b3e4c427c7e77fbae88ac884721802e5a49a55632128eaff3f104f7cd938b6d1e9260ed7152647ba54508a78c20d8fc9305f7d19897f85f12f5fc72b5f3ddef73566686de0d5af6ef0d68d173f781d12cb5e6d133abc04c36ce11327a309e34b32f8dca98b33b99153d12d949265be6af2adf7e17f9943764fd972830b63b56f68d639e48e64d88874e2c1fbed2379ee19f4f1ef6f33eaa115ce42db47e49fb6664efe94539b8e4f5f71866f2995c095d9390a63145685359ddfc78d232686ab7db8c625fc6f44619ec6077e3820977fc4675d4fc965ff67c4727e65cbbc68060463ff9337f0dcc192b36d33d77e069fb63eec423a215dc93e6bfed7f036496a4d0c9f5914036c40574d855bef67b0bf83a319fcbf5c26cf1f6fdab82bb219fc3040606d70256e9ea55bc6b7d2d225962670fa28a6f8a30bd2742f56f431c8477ae5d008b8c99de2de81dc1a86ab8b0dde44bc73c31a06cea7084ae45328fedf0b113975dd93163f3b7d25af1408109b0857c37c849f1d6d2f9955b6f034b72b9fcc05be4c53a38fdabb80ff2c8c37c02936ec9ec1fe8f861e3d6e498678e16c9377816924ebd3cd4e9fbe2372c3b284984d26c3d645218688d6782f8dd6d18a8cbf81a9bd9777f79748ee77993f14b68a6840d3d5da0e2b14ac9e958d3a850764b5647f9c9647062a6ec3483eaabe7f5a7766f92c4527660d0eda832155415370d2390ef9a2edf3836f4f105838e347290b0296196a8a7a52d8464ec5efce9cbcb5074574021e1897bcdf1b1a5b24b9b3906c41df5ac674c4608020f742f5ee35bd3f8b1cbd77e0df8a73584c09b0b6572cf288516398587e97f3eea82388f586dfb1a1f3fa1afe17888c6a0024ad048b61c7a40cd36695704c1b330728620d28b150e2cba944b94db7c3b7ff2633d781119210712239c4c4d04f4d77119689ed1e2e876e019866712142d4007bb2771e4fb3c8032a27910826c057d9b881210bef32e1a35dc41f7d18676f19f919e21ee5460b43b37d780a2d34550820cf39f9e487f83e9cda199e63293d8db6b79ef67dc8307cbe36d7afc4fc7a4587fb88f420c04a34efa4bc5775f81ba6198c380674cd25d99ce2f083f1c719c002692814e23b39ce90901c24376e7ec0a4b95b186c341c3980d49f085630e080eddb7221ddecd6f39ed33bffd6f20fb4be6f03d1278459d631c606ea672f080288d972e83d82221d1a2f07e8dd0e19a660384c38d41eb6126b61219bb7c239150197447db6a34797f6b6f3d8aed71eeb3c376dd671cc5822242b5a9118ea3816d42f169e3c9d70e7308e282348445ed2a9c140d5ddc55ef81ba6c46d2d8fe9f403e28d28d96bbefa754ee8acfad02f3d89437bd33d1467305bf7dfd3327a0a3411d1505bbd6082de2c21517470ffdd3a156107c1c76315c442a4eded4cc74b382d12e0f7f5398fa31834b44d4142edbb8f66bd97cb37c2a9dcc0d69078fbcf20c87fc71b175d82434d6cabfffdcf984bd3c22a21f919361730dd672f8d73741df1e0ac0e0f3647cf172bb9953e3f0c9551777e9ffde05e7394bcb6f7948c4db5d316ee0cd498e57714463649a58b6b546c7d7b9c271ae70149cfeb0a6341fd3aed225516129b4ba2c69139b5102625c7e7a6f4864a7bb4bd50637fbc1a310acf041736327afdaaa8f82a5cb9ac49a16de739cbfa1cc8069781f3cf645e6951b9af465ef80e8b99f502dcba6389a39b9953ad3e02eb07a03200872d90bbb65f4169ca8d74818aab4f070617dc608d43cb0309cbd19b96b7807aadb29967bdd96848f79d2cd8a8b0d5a70d0b17534254933ec76efb09c19ac54c85775766e748d1f42a027ac55e68f937dc1fb5b8a9bf9e697226e26f34332e37c2268f35bc9d3ff6f2eb507b7771a3ac63e2fa9048e1adf4f5a07245ef21b8eb4b8379bdb5e1fc574811fdcb2d7e511d2ddd76e3f6d63d6f4f61109db6fb9381c708618f66af3c78a3bf06d8616c105475829ebd42178013c4dd584e6aceb8ed143069876d54fb838737b8be457a85366203d82ceaba3027c722bc1cde982929e8cbda1bbf81fdaf162412fbe95ae424529ad0955f79edaeda5d0efe1a803a59852bbf8763e22b6973f3c00d66db0819ea168a47dcdf5f731a076937af5a93af7fe867aaffbf22274034413cfc03f2db32a41d711d5e1c0a572b58a80263b14bb4b61d6665b7c8228a8f436ec03cc935f0a648f4fcc7655dbc7fc28a1efbf36fdbfab31aad68d34a0cb1ff31d4e57934f459c4e37d29da2fed9e3903cbfe69bfa3ece212da6513176d719a8a4c6d12621839d03e0b678c43440e9d98c7e708ba16f25ae7b2e8b9a86b62a98176d0a20f1213b7ebd26e6212002977d477f4278b1d8b72e11f229a74cce4d710e1431eb5ea13a717d2361fce025c027253be6b7dd18db3b437e0b7837d76f7a0ae7f0db4e712e72504e7d9102d1eb0adac0fc93cb848317290850a7b3b8b88bb88e793a711683baa037b6f86299687f2b489e9a62d439b192fa50122171c8494bae6d05fb0c2f9ffdd647f3f809850cdd43dca633395420b49cf0f0bde37f84d209aa725b972976e4fb113787080f393ca00df3428995b007644fd67b4a4781bfd177bbc3254d31cfe563137d747510f379935b8aac1019bd037f5f0d98a664a9973243299ab103e462ad08b88348fb079e7bb04cd9c178b1829b30823f4370b197d13cdeb83c4d881e9e8320e5d3a6897695d678ed8597415bdcdeff3b780143bdcdb20ef385a833b1d5907cdc3697839d63d771890217361b41b1809248269bb5f35fa0aef4fb9c1cfe872d351a1f65502fdcef4dd803a0c73eeef402c466e28e9914ab5d3e8c784dc90667bf0c0a7c6252fff3935b05694a08b19c8bbf5a03193623333487b514a40f0801b71ee8068d6a00a4c05ff39b353f18e05347d090fe67f5c7bd34183fcf0a62710b292159445ac9038fd6fa169595253031fbcb5ef86e8fb857930b1ea03c0dd0aacb9afe3b2001aacdf8681be3987936baf5721c25b7c4e9340cece4676a23dbc5ba76ed38f407a6bfb61f959c13ba26350502bfdc141f621da8ae94e89955fd4cfca26649dc89a29066831e8df1d48fd83228343ccbb0e0515f999d63f1263846c7b82fedfbef60984a7a2e3672d43c56d510b86008a82c36a3840e3aad6b9984016f6343877ef8105a53e999d43884739e4f0c497c37a6e206b298cd0c773a3f2bfa6a2fbeb0e36ee0bcdf9455bd16db4088ac1a68ad9e1553bdd9b2a5013d242f7522fbaea74cf1a6db899892e9500e4c2dc9d123ea1fc1b2848387b68e402dd7cbb4a63d950fa28cc8b6487aba270ea1913c894d432940fc3b7dca26d64fe4bed99053b855c6e426c4acc652952f63271326de362c605f570d300cb61e48d25ebc8a3945e422eb00d0c3999df258006b1c2d3a785def182ff9faa86127f4234df4aeb8e3a1cb4fcfd50fca2367fb56417e881c62496b457e41f24be53d594cb050e7c650ad36216539d1f01b26b8c748308de44cd3c3422a9fcc92a68d28f630c42a4ba3cc3dadf65ea07465c1ce9a1518cc2640db0c706fa38041822d762cb7b9ae5503285190b9ce9a7866fff38effb4c4499038dd5f72a1a0e62247893e2ba9f7042b82eb8d7e677f6356ecd927efbf9ffa4b17fede1ba3603fb3900f2555bc89855816dacf07de7d543b6eda563a3a8cb58e9b948ee8f0b537a45966bf46320ff8fdafd721130835db37ff2fc8b83fff2f84f1e45ce1e7f6ee775f02852db072a541a097ffcf22f8dfb708c4b1a934f2136ca5cfd8d94a2073d8a1a58d6287aa3898e9aa523d47b1f84f69f83fd0181729a57146dd255a1d163f36b9dcd311c66e3b27bf757633192ecfeb0eaecd72ae82700fd5b375ceb3b18bed667494d88b88ac76de07dc7c29885e33498a3c97c18f30b415a9bcf09c46eae768afbcfa638078e5bd751b4ff79b524f5afce66ec6ffe59714284f6af9d28555119f35ed6efaf7fc4e1186af2b773fff2a5bd25814f2c27e6f38d36a0f0c6f13543141df23eb18a4709a427a7d2a70b99bf2f97cefa233cc4091d1d5916b85d5fdf0b9c19f3fe16fb8fb76b7cf78503902d5b80b627347b3030141aae356e826f117c5c681646aef17eb312f70d90e9eb3d91fa9946dd2b7e474bfd53d1cff894fbf0d3b0f6ece349fe1a3c6cefbe954a5fd1fa0e1f7d85bb773ed26b386d763b11367bbd48328e7b0738f2f58af0f2eddb7e26c43f3f5fa66879d42acf06f204f470e7d9be53841ea83badbf0ca4befbd4fed950a834dabd4ee4d96c6be80fb67c40b84fc91a40fe758ebece429f0cf2ecd6a3b74c8feb895e83c613f8f9250d2f99f7392bf321307097f5abb7b00e8c96f7a4b6867d00fd8b39f9778ee2b2a34ffc08d539f2fa87761f7af78ce4fd43fc008d22968afb443c3f97fea8fc7084e1fff03e52f033d3953db8167b54f927ddb87a475b67145b2706c51f41bc1fc49cd0ba6f2ca977d627beff73f27f1c263eaa9ba6a0c665ae01f2df7f95a5114520a27604078c5af5aa03135a5e099dabb1d6fe9769d9bc434fc7259bc25b9e83443af8b254f473054b2781837b38324ce078352be6b30fa1270e7d5c41f609579f82326981b9f444c7cf4bd71e0d802317a5939118101639278842290b98ad8cf7fc53db0c8ac23d032fbe0b87ae3330f6ef20e1a4a1d9f3efc702af0fc25d627f5d65283d9151d2b490ffe571fa316a7a965be0273444a3b7906c224f34c5995abe6d1750bb04cf9cf84f7577dabaa7d10b5fa39a6bff3026cb83083740177098f762aa26fedfd6a6a30464549827ca283fc8fc5268f061bda5d7dc1196c260bd453cafd871a0c3e8310071670e735b670bca81fe70875242e5585c854d27b71015c27392d6c2a3f25f2629a21685bccd7a957ee96694f8cd3d3acb6782100ddb5d36f9fa3edaf2dd2c6f8ba6671b6a0f98b627c39d703285521237e0c433aaa9751e9c9b1931dffeb85440c9bbb07b7a97500b7e39128000183a9db974b23abc86b603a6156037445152b1e9c7d8666dd489556560b0deba667acbadbe8c62140c3a661e4d8c9479c1abf889f2faefcc0f68383f046273143a6143de7745a02eec26d9b813f4998ff20ecad1ea1ddf73ed4d06945eade3a916a1dd7e89feddb232c9e03ec92d1905c6a5225fe91cf8b80acdad48fc525a0c34d33d9576f5b0f86a937c22bf37eaf1d719ff974b2b88b4cd3c588dac2168633f4c23bf339058c89667c6586482bccec8749c13e7a6019853e9b9f28a14d50cd0013a99b25fae773d5cc682472832d556639faf5355a820b2b5fece349fa734d06821992040644d2be5848e04783905c81627659679eede049859fa71ed3c97ed9fe9327f58d3e0b81817777207abcfd0079598575bf6caead377b93600414cb6d8c49ef27c0dda5b204f18fc7b7a4f47fc96a5274e4a7f8cc380923c74b2113dd2875c50618fc0ddb98dd84cf82e9d35b552b87fb541491ab3d0a8c4680d56ab888e2494feb919e27046d80ecf5cd6ccf5b4223294b021a1742547ff1422663121938dc04cdc28ea928f61281c16840f42e7a957576e1fb08b1680d189f082c096e6138ef8637925341257af8d41cc97774510158e14871f3a107f2d25bec24607221355c2c66111dc1514d6156a689e43f742e8340689c0f6d264dbb9900046c97c97a4cc47d7fd121c9b967674d68f6ad728b4c4545fcd903317fd8f664380cb05aa05ac5274f3beebc297ab2e2ba52503449ea06561aaf3e574768b946fd435b5392c273fb74757b81c87fa0c9377c73e4722493acb8f910ecad25ff01747439484a9d541955143d553eafcc669026dc21d274946065e02f16e057790e8717aa61637564dee628a6909ca912fe854ff913a43819b69d5550115debd426ca39df2e09cea5e3ef8127e6a9b90fc8b3978af1b910c68943a5aa55309fe469b1a21adb37de6fb60c1aa976d32ed6e97240323caaea0cbc7aa01c883fef282e1c6f6c71a461b0b9146cfdf4080e943d090565f34802d9ffd00f781f67f88bd107b63734bc640a48c502c83abcb56dc803d3375e2c4fff8c1c1ad31d45d1cbbfcf3e2635bd4079218481f60459e0f502adecc7d03443dd7d0c817ea3887ee36ce5ba5b628e5cd98fb67e472be53bee460140febd26abe2f4e33f8d56d36dac498e6751e88833f2b31b7950dc8704c4c1750eb875bf52a2b10d6a13a0f970e8ee53eaf694419f97b8c670a7df6db1272cabb790d23e4eaf1b9f8604daac59150eef121707b98331671688824be08ace16b075e6e2bd8227c0dedc6323f9e7f0f046c6b178c79adf77069e7f497304e6997b28bc29299d437737c562666b4d413de46ec0f0c6542919297d840c75d92299bd556826441ce57d8a6c8e5f4574103cb77cbc7388fa5074ae2a46d630c6501179cf99bc66a738e31ee2369b518e40fb005470b59881345ec59c656741a5e8968b674cd2fce59ab63166a617a868564c4c94331e0ff880c9175fda6081169438436fa2edf473f433f3bfe1dac1fd5bded691d9c19aeb07d4f7a11f0618c8bb6b9b22e15b98b53522945d5371337a7685075cce0283e13894df04c670c4d9d04640fddf5992966d8af1350164120e056e689df189a849185b1409d2a399f42e34afec9b09462a44abd82a9abb2e6dbda0e508de9a3f72112d7e2be9c445dea77f0d67fb4c5b6b08b78ff35b43f184d906ac6d8261a21bab0e2d05753279778fb3a04e05dfaa69412a7975da7ce4891cb856d546513f32583eb2398d815f4f00a9af06166aa54d82bce8358bf2495ff1d0d78507493f46e58e2c921e08093c84547a8ce4a981c231cd24c2d4d29255ea752cf23c66d24355da842c2b508501d5e83d2cbfddc5e45563b4138106aa4b163d48d537311793edf8ca65bd729c4446fb1b4266def8d6a2e006f215d35a96312cd4b0088d859b12c07af57ed0a39dc1ccf19e8f15264262886ab908ed5207e3b181d45686d689aee34bc4beaf0acd38874f3023008f844614d3e5b5a42f5a292bf7d93be9490e0aeb0aa6dcff3ff661f49730255907500b9107244f426c3e3b4de309a6c6837394865ef944086c1f3dc29211ca928e1ff3ceb4433ef5219557b91f1351004e5ba704358328c401e19ab6b02d412d3c8a102291721d4ce9b6f165f16ff1931db1e1b9279fd3d359efeecfccaeaa9a871736fc572d26c87c06edaa48ad5a5b9fd82f846f9e4b080151fbb21123a55f7e838f148218a2b8e7654a3e4920b8dd4a5ac7c0c22b77fce8e5c6457a9f3238d51eb60cac005c5369a62f03dabd87789a9118bf5e4abce551fda14116db22060e43dafadc28264b13a114ec7745dd5def922ca96fae2adeb7ed1c1048e3e40b62bb1c56f78657f663fc60299b02a68b956438b598c8fb4ba22161942b3f4e76ac66e717c8d214941622475ac704597b4fe2bc34d424c54aa2897e43c161c9e4b0519e0baaa61ad14bb8645751ceb8d2c771588b4bab29cda0dd3d439d50f7d903af79f644d8db35cd376c4e7bfc79651501304eb3fb7890d9528f88a867a535b35fb33bf8416bf0fce1c307819c5c6893b0662e7046f8af0c3ed0f5ba1b7e4169466743ec7de0a453567d4154b8b7dd98ea15193f22838084cbd168d45a1ddd7fd61b87a59f3c722a2be45a84af9a67f433ce58e6b293305ed29a6595a68af717ca3ff6c56173fdf7243439c2979cc081ac5f83fe14c41226a81d71683d6b446be56e8cce0c90032b4aa98f3a72f9faeb4c0cab7d57aa2ac70b60c756099ab28273de4fd2d9b0abfc900f396fa6c5a963878f31d3c00a9ff266ce26d10e1196f3c5cfbecdf2de3409d4305a13b1de48f13f7eb162bc5dcdff13be351f7fd8b05b1cc9550f0686f3257757fb45d852920fdf7c3432846f1d7b97bd85c95accf2fe8c51db3902a8d33353006ea86ac4c540046e5963d47a318292e974716e0829c2813274c18e8daf7982a36a2f48a92cc34983ba711b61bc4ce0fcc645ae77cc85b17eb37f57287705645136830268b4800177e043cd9672e36e8a839311d9cc7d737ef1b9a856c6d188a8c9c0e839cc977200673cd6d683630f291ed8882c3797caded9a2b0c55dfd1542dc41fb0e5318921849a01fe68475c8857108fcd9038ec153ed0e131c74422ffe31ee131c90499b5ae8b3c2aa97b2d8928fc2958583c0b1d998e3e311a9ff3e493f888a799781df643973cc038c8ff51315957d91211e8093b22049dd94c3d38550a0da243dc674d915378f8aafa01bf084fe3e6e7ffd8a100798fd4289eee27959b137ac8b18bc6acc4b7c86bdfe4fdfea2729848d95fa384dbb343db89808656e9ff4c3db443d4261fcbf461365570025c096011d4dd4e35c36422c00373b21046e80d1c84657ba06f84f2d2bfe78ab4f2516c4b71f73303651cc244fa4d8f9f70f808d719aa5218a11d1a4cf213b5d8fc150168b6a09c456b39f15bef505739206dd9525901043a2c2ed10fe4317c626f8eecc4ceada15b70f678f990c7ea241b9be3667170111f7eb1a02326458f3d017ac82fe0e5cf693c422f6acc052a18eee3eded41ca2e193ac003904fef7446141810c77438d90278da7425a6a62c4fc1516a04962952472839671fabac114e80dcb9adeb4bce7c77d2fa0e7a4d7f1e8b844c9978a5213b6434206b4e0c7411263066b864397b79ee8cd96471800462da3cce27a9c97e25cdc235529d812bd7bca8b4c0ad7d6df2619c4cea7e18a78ba8468c61463b9419f49f80f18b6c38b189dfab7ea49775e430f112bc8712e393659f7d71c69eba1e01203821c5a9021b5888abaa627519758280263430f8466a093e2783c3d7c59ae8c5b4b1f933177246a19005e049897b620cfc3e205057dece084331bb5ba8b68effaf202482cdd1288f5c41984414b1b66ed725790241d13f35923b24caee9adc388f731d471010780319d81640ebaffc95e8e8532285f8447ab47ffb618d8f29cf28c870f0e265ba813db490e473f530f628f03a00bcb0dc13eaf577109c6a5fd039116d79aa54b30af8999afb5f21b5d4732dfa56f59cd7d26939c3a0d7726aed726624cacc651f1bddfa60c05c58e27a7b4d46ed58bc4d9e7028cb017af773645ef6eaac0fd657655c0b6a17f4394630832feb89594fdaad8660537a65fddd35285c87bfec0effeccbed9f71fe7bf87ac96def8d42312206e6a007fc8b5177260b660049f31b06a03550e6f9667034666903ef0678407e01fc5f54ad4e08c88346994fd131bec70b47725f4a000fec1cc6f1a44125cebed969210603f03cd82034424480f4b5ca91ed1dc4d6983e14d4bfa7208cd5d367a4bd37d090af982a4bcd1c09e1305703bb2841ea178c06843dcf8f0c21d6ef7121c859750b8127828e1bf921d8c2b306f1e4fe629972c4f47e23be68aa3fd934fd9ad3836766bc784c41c11f302fc49f64a6280b1dc875ceaed1b049797202840be2d32791e01724f6c653e28d04dddfe4f8d116c741252c32be3b17c81926721ed32a15670d1bfa877289ebd8fdc8103c7b988b5e1ace82d523ff783a50a38b12fee72d707b5c3d63e02ac45279a2ceac5035eab907acdcfd702343e995a3c92461db25fa2112006e7190bca416cac8556b1a4e741e31584407a2eb398261800e4c96ab30f5cdf4093cc0f334f6386b12c214b68fe155eef9d3b45e1854decc7411b9ac6020f68b08355d454c3183de1c02977906ac806ae9a143e7a63476bbe7c87c976dee67420323fb2932b9db731f61c8048957da3f712076f9f79886055a7e1975130f23b923275536427ae37b3dc6e0b1225ff374cab71b9cf4177350e997d16c0db5af55767040ee53a87c9495ae8ba8e3ac4fd65b5c979209e69539d49ab9c806261cbda9bbbdfd5a32b00c16d8137f46e9e97a6954fa2c1b77245aa57f605ade1562b950377789f0c0ee6d58023b18cc54bc177b47f792e7a9006e156f6708ad8edc2c4c15f3dccd0a95b00f7a618aa1e9143c4779543a63d833ca7cdf1b95230d9222d4fc1b8e17eb6fa1d1ba32d0ac03c9cc9900ac720974818a8500a3c01ca0a74d079c565c6a612acd510e2e09172c7bc8b1509c47f90a00c98d5bde120fd0b4d484998e76fc2aebc5498dded25b13064e510ea9264ce2bbd707c704397c14f38c3f5fb3a0e3c828f7d6fea96f9e1884236abc00b5d262ce4e10e703b6b479166ba818d1d83cf22b76bd37edc166bdd7b9411e57a1ac898b5d94c0b3d0e8f626dc85a2b061042ac3243202d7940036d8015ee78b866e927e65234b1ae39acec5ff27891ae5eba2587ab6895bfe31ab67a4c02344d29da71e4d462678c5ad8bcedc1a29934831e7b59e994a0f98ffda626ec93a0b8080d5a1cef1049ad1c8adf4a112a1ae99e384ce3f29e909021445e323a799b5e63cd302bb6d943308b47e01857f7c0881314a3c4687299212a65ea38d03a47115468fd8aa46f141b97de3eeace2d742e28601bd2ed6d3bb4ddca9043d0b9c0a6ca48cd35f30895487a3bbb40e96ebd0feb40e1e6acca5063666d13bd1abc7a3036e0b00f503a742a0fea2f2d0594d563cb7b8dc4be0180b7d777cbbbea19e970f0a1246babed474e2ef24c461e1bd3e17b774b15517bdacace97ce46cda5f8f48553470f44f55212d6576da2234e845ac24372e4d437087a2cd87b778af1021f2c194fd7296f2cb2b339920d4ca23d6c698292c4b4d02129c878e0f5043cd77769a16abce247ddd3230429b69654d714b4fb3fd139f353c952aab71075f2fe0d2350e03adcb2cf66f754952d3d3e34601c5b406625be1883a08d28f01ea1bb8a0d87af37dcceb75419d5e0fb70bf4d2abbb9bc4aeab779df1ee15668ca0f8809d9d08a43a11ece71ac24f9bb622cbeb5feee3218d4417f4c1907c893c4650aaa7d567ff3469f1e8a477f6132d1891e38ddb28e83dae9120a0cd3c8ef8867c76426d147719b81d6d289f9e5dfcef29e4a07f6749fe6317ae5a0e827be2fb66ca5dd7c89a64c11d8fe21dc0d2000abc33f9a1e1f628ca12d16ea162decfa4b02e4aac9377445fca8b36e3878c197ac0aaddf70c2078ec196cef86ba880ab077063735437075c939d07e5f0cb677879a7b1dc615fa631042b489a87b2d52103dca958316c880697a49ce763ae0380374b0159fff722794772c7c58107a96f34446ca2414dce9ed02eb759c3d017df3fbf8d296ba14b05d062b9f852a1ff2eec7d8cac5e0d1f4a8678b79d60841269c678deb418a5180e68cfd615c915045057ad514d06f650461868e52bbe3e2aa4c67434f08ade7726f9bdc30c6e073f67b7bf2c0b1422fbc2ad0a38ba89f940344f6bafca6e40395dd09307ccd800ec7543c42f67ac74da86a1ea5f13656f1de524f374d9dd27895bea67bd30f6dc705b9167d1d6286f216cf88e17cff93ff6a57e95337aa41face3a0059d80b9588831a439346626fea81a6f17258d1356811973c499cad4a10b2f362d59518974ce31436d0af86209b40d9f75aded6b19b50ca9531b039d20daddb070c73eaaaaf9c78361b6cac2926fa827fcd3c2e74b2bf2198715e1ea8f5306a0f4f6192a3627c283896e860283c900ba1e0f0c31529290ebb640d4bd3eb033d4a88119ef230a470f94e9067cbf024f4127f9086369be5ef9db74592a3447d067e59f35f0d49352e9c2674e138f9a4900993fe996779d71f5e2081e941214fdd4a6ca91b987e4769d612514d69a2ef92ad6c0df54729be2cda232d1cedebd3d820b2544b3de0635c64903f2b83d9bfab4b7fa785293d40037b6589f88242de87c3f305830994f09b7d192cd5249f963e4115cae0963b52b39823aa10e98ab5aac73a07d013433249de024bd4a4503d1f34aef6a0442d53ac5e6a26e1ca62c9a8dbd25ff8a45aa0d19fc02752f62116b5b72ccbbd9cbcd8069f5451a62b6699c242e57300176ba716262b985b5806ca4ab4ddea4d8d8f1a5f1e2941d119dd40e3c1aac98643767cd9f6b7af5c27167cbb6d94d39a48095a7f5c0f16223ca835d9e68567f0c4836c31585bf5601c98c7964822d99da8b6cef878b9684a33f1ec585cdf8818faab24e825f7177ae85451fbba0fcb2d8a45396b03422f7daa678928ec3329c50ef49621be1296bcb2c6d9c2794b0b9c71d3643b2b31b766666bdc1a5be9b1b68277d4e26fa7bae797aa2db4c31c8a864fbe91013af7e52eda741d661a12f8ab873583ceed75b6da3092e02f935eee04c40748938267be08845757ddfd8b7bc42941205e0a43119b63a83c5c421ab536427144ed31acddbb5af7e32b6ae98a160483f6e4ccbbfd046fb7cbc938ac7340e00870e58c8e4c982990abac5264f24ccd7a0a0587154a884c8aafe91d3935309afd84a72dd3b1a48fc77774ea4df4b8ec9086fbafd5617d255d6545fa737557c6ee6234ef5c365dba4bdc693144cf709660722ec218f79f6045436c01fc04c1dad910dbbd004302fdb673895a01c90297879ba8801dab6f4c5b9d5f62ecaa35319a94b5c2bb1d6475d21e765e2c42476b505f3b4a6c28ec6d38754c9734f6645f3b3f821c5f868719a74f2b083c9194272cecdef655af304198b2b62492cf80870c0a16a98d44daeeead24f52713d402aac27e75d7db683763450634a770e5a94eb32940ee8641430481d4a92a049e31dd037b12e5bf385062a2eee15f30593b208f82a56b32c89434612f87cf9b984a99d3686f986b32a3b9619df84a8c9ec596b11cf8b4013cd08575aa7d945737593bc3a0fafb96fe0364181319f6b8c6ea9d6771387c378830c22e4468b7bc0f3af34f4c00c6ba5e8de6ca1fa66c3dc3b1204c3f571681a94fbf24289e050dbe707692eb58a7a59466016241b1e8a1a8efd8a5e4676070fda23fe5800433510cc692e0416051f2373d9c5c69134be5893e30c855dc79ba775bf64196c4f373dd559c8aef5b3f03b076452ebeaf64956da5f57c72b2cc9c5d3af2a5e1d2ace0b6da4e4b73cbb71c4b0c5d37e77444a70d7a7edb0963bdc2c8f4fa62b71b23bdc612248303401376fc9e61ecc429c5ae495ea0a4822134fa2aad00681c992802e6e8a2c7b293075f137e63bbb798e672408125dd976995137592bb5718530e18fc96d464521a12c60c5d8c7cc082ddb48bb80f9b9786ffab9844444c2df07792a8e5a98dea659a85b6d59b45648033981d5ff2572435a4bfd4b48a23a2b2ada22c18ea50e50fc72909c834fc715182af3f81a9717a2cfd0d2c7b95d93b4b145059c39b063b3e4e2260cec4165bc121ec62d1b25e57201ce8e391815baecfc6bdb9a562db063b8c741016364303a591b44fd9da4565d4e4dd9761f00f8a403df39afe0f6a7feb9215a401c121b7150be92ee00e49b8caa9e31281bf064f93da327e56d88acdb8d93cb2fb5c07bba3e9d2cc5fa682cf672d05ef550c70a0ca403eb2bb00504ad99efdc0edb37a394573182277ec5d6b86d50dfd6e2aa44b2c6c3566ad67be443c6d1af4823bfc0194c54392e60fbda1ef5665f9da6aec8dd5b08e4ba77cf36e33ac73abc6d8b651669658d78be1d2f863816ea21d4e92682dba41f31ce8a1e5001af31543c4403e9b334c35dee967e7c23c83135e0acf5d54a22329c312d6985457d1cbaeda1511cf502a819035bfd92b87046072110d074e1a3b26efa0fc19674899a0cc74472f8293079e07df8fa2865abd2a39866864bbc23e9149af1dbecdf962a8b5b7c929dda512f74e739e83c8429b51851e30ccc214ffba70eefcd6fb5380bbfb353be924bfe8ec2a1492a614c24e30168943dc0a596d2ee3a44f57ac84e2bb947f3c1386b83802386c0764a13eac4c9d24c322ed1ef1d4ce7c99819a787de51673d95d6fd4d2c899e2af36c329a14cb23d66bf154c840b41b00f98f90b5370f949c383ff1687522c91f2b06287f469dcab0d4f69e1032b38b59ec34318c25d518085e9d94174830457ed83a9a3ae1309c1c77e246218e9a09e3e0f43c35613c5e9a6795c3bf370d00b669034af24003cf76c65babd8005155ac67ef16316fad623dd90d32c9915c2dac9d22f6704d729e8530ed154a5a9d2789d1d323a1ec626515818c385ce35e23cbe191c6797b0436d941bfc88d8d03fec2b80a9de7e86a433c3430094d21a356938e469aadd0bc797dca67f4a95c37040f4a7b30ad082d4997aea830c6693c78aedb75237eaa578a01795429e170d05d3b21378fa7b14908e66815273af833375f7b69132a1b01241e21d038e4cb5d6bf81de7da45f74489118e7d3efba137be5113f3d7d85f156f1bd56fb8e7cdd9bd396088c93cd84d04a31d5c78c52b317aeccfa93acf787e3e989736527f81cd20a34a86ae08f2aa97a65f0fc305e43ab8707ccd25db8123984920fb856c04250829c68a3879dc7441878c282b75a5772b8311cf26fb341ff1f199c990db0b43cc87ac77f7c6f898d76ec008e7120a7dbca5aa7b5ae5f8a00804994d45da3f04a6b8aa9e1451554f1f90ad32e3ec9f47e51db2cf006a3ab54782ebbf24bce3e39f660a79aded91213d7c991d71f8dc931b7e5933bef65ac3e0041c467528ec0e5b73bec0f9f1df1b36773e044c24f1e2ccad8f2c52449984ab70af0ae4eb9eb0254bb724fcc51711e1e0a3f129de77d01a03f91581e519b4fa510835a818ae22267a0a60b57c9f2b88c1325a5b7d92a9fd82e214928b393b052fcf0ce442220cf0bf82a473eff7f5a6686f3560e7d360bb157646083bc7abcc4966599425e8e0db43c553dffeb9a9d7dd16f6441e85f19d3d3dc934b3602e41f87fe01c5b4477af660aca3801b1928e6b0eb8985948811b44afe3c017927621f163462b62357aca4a1fe83d046fd182c12d99416d951803f516095e017e32653fd5529ae4c50f00c39c83b75acc1014aa510f32efd016493889c7cd75657fa2e8a179ba78c3ca2fc80786213865d551d702df5cb83b9d40ec6fcf389b26af21a9285ab378946e2ac5b27de93fa4e3d91142386624d0f2fb7d601c5145c12853f37279d8396c9fa613d5874cce783fc89d0e0d3f506f021a5085dcde7e5f18a99c48da24657cd4b44debf0512847ae7cce88a883c94decf7642a84df8b0ab5f8da6108e390fc28466a28eb2f89eb65901b8c58d8d445b1be18858d1439cc53f9d3b6e02129412b8682c9427e5133da2838b5c9dc307840a0550881500c652fabf7a24f199b7a169ea2d2b6e65e80ed102903c7f25edb94246033a4744cb058924dd1c12428ccb96e371e69b5f2d33252714583ba8a76a2f43936c3bdabde901c5d2fda9b5e59ef02117c9c846b620e1f631f360fb11842b3da9be45d5965c1d734a1fd67eebba9dc9a4a5cc7a4bd0ea17811025177f7066e969a50ce15bea92e626e07da5c12eef91957fc21b7253f9a13b2e463e555bbe78ac308c831ea7b40023e8aa6014a5864a7571c0fbf44e5d06e6a90570d0660c56df59fec9055c452786823041704abac2979f09919c50d1513bb3717094c710d702de1df64b33678b6df0845793b126c54776f066d13017becd4892e4fe830b36ff3c6a998849dba2740686b3772006201e0ddb002ec326944f088a38ebe08fc048f12ac00d319f3a4c7138d9405caaf9e36f1e80fa882509c6450860c4d420081c98fb00fb0214deaf2608ed0585d60921253282b8d68389136c2e4c53c31f460060521f06b5188c6de68d174ddb93092692afbc7bdebd6943d740f11540b33048220e07bd7c68314f46eba023da98937365859d1194b211f744bbd05d6228cd9316bf7fb204b90e4b826e69ad49018190a114c6484a7fa84c782419b9fa514429b47bf6112fb4e7e8b50e6a0b6184c3e8248055bdf933ed5802f8f2f10a094b3659607227e97eaed61a43188e43046cb5bc1e191229c82ad1db8eaf425dbca1e129f001fe3818ab8ef88f700aee64fbd49accaa188225cc76485f8a17f88f81c966a5fc5e44f8ab355acbd32ad0a54647443ac4dca9a6144fa2d16fd8faa9f519ab8b0a4f78c6a1c5ef824118de173bd806594b2188d610a029e63ea2ac0216692e6befe5cad1ed6799e6f319b038917ef0693929dbc3912411fac6b7a7f61a3269551244736c5fbe31520f8bcad70456ac89dffe6dc4664bfd92a167f6c5092023e30ea66d85cd1c605dc7956f3967912250ce8bec6fbcc5babc72dc29ba90283a7723fd76468622cd66b0bca5f2fb7193d14924883028e95b4f539c9acf7b11679cec22e4712c155b3eda1594eae064d08c3946075fbad39917b9ba32ca6f253fe2a51e7fd121d68bea23b83c5c89a29368a2282d8eb4203f3de504b0a7b1daa67adcc80c05641cbb360ff855891598d4043d79596bbff763fcf6f5e678744a06e3c1388041e5f33cda477fba281cfaabb860ad59f90e6f4edaced3b03d7dd1c75b551abfc317410d1dead86eee8a25d30a770e8d08830ad84041450ea3b6261cdd209f949d77749e5830eae6147c7f9884f4d6bd8380248ea662d0c13c85ee17c6cdf06ab66cb9ec624ba054bbce9830906ae34065e4cf53dee35bac835d1cb1867d48511607e9d9d150ed502499431552bccf6db3b9810403a6a80e5a1356c9ddb0b6ea758b04fad443fa087eda05da5d7441bfa7ad6944778a94bce7eb0ac7f4a83f53645457525b7ffb62fe3fa37c70fc19f21d3eb012d696385ba67131116e22ecccd668da47029c2253297c1efaeb5850911f899cc095b2daeab513244c289c375b8ed960f360ede00b811d64b66b94b6dfd0393950f1203a098f3e91e4f8d5752c4b9db5998e773a1b63f84aa1bc3a9c555c2f0736835a7dd4a13eeb0827fc4ce7396d8eadfc63a2a4b1a19dcb27f93d4c494511e9b37b8fadbd26dd06ce53a1fd62f566370b95249f8fc853fd9a3a803db6fb3c694cf0cbdf6484852fe79868a7152a2d104dc81b263bd37f0a515baf9ac34f6faa343c561759b71db5b950da7f45c1c18e61bc92cfd1084630d1d9ac28c5166bdfd33bd805e9d17c0e420881355f2ef17de81948297ccc4a5271ef94b4110c23dca4022c4b555d66a12f36b3a4ba7f33b0356102ef7b8565792549f2fc64df9025ba9c416c2b2309b41846eb65064397b7825948a0c2c56c392a1db86c1c907f07f378c8504cc1142ee28ea6ed49012327ee1461dc0d92a4178b0828f38372efff270f12604f895b05ae9e37befc44c1d47f1cd9a01328f091ccb858c09c0c771323b521175b33870eba16bd4b992ba7e3944f1fd5d8319a388c3dd6901b37cc198473dde5aacc18fa5c016df313d0d95c03e7c190c0dc4ff76f418586164cb110958c8d568b1a047cac68eba0ad7235ef26a7f72111c0216f83e2f59fe3a0cd10a75c265a981b0b3c405f012c314e65eabf9ac5b452e4a62b2b06715cb53e658c0e377ad3067b675979dcc0a9f9c0c3bbb4af3af6da29f0610c43c9aad54c32cec037dc9c5fd0ae5ae8c34a0d8f15052f223875f975d263c489ad1e81979300e3250267117f9be29dcb36819b20fad28802e0c81bd332f59c861ae33de5f47efb550bcfa950dc83860d0e4a2f9d70e90778b9fe26f673c0761451775b448d9fa174f87545b7a69d1c14a2ffcd8fd42b56096247d0987671a0d1f2c232034a4195939ef4a7c344a46866f22de82dd1744d6b6582af224da5c29290896c24eb33951db6966fa66b31d8cc5f9c30246d6fe8d99ca54197866ff5d3499ae87367eb0bf8094b3906cae7213cb1fd65022beb5d801e49cc0477a7efd709cb075474d74e50018a94412c80182b77a241e9c8a88e8b9ba7aa15955a0074811940f4d57a8e5d4a16e6648968703c0fd9dc02167cec625935d6a15f2292f61b76f2acf7357e580974d4728b50c99433ef108eec9bd6a09b47a8f364627b6c6fede1c3842ce800853dcaeee928ae8e2794264881a7011919085bdcc3f26d12341c62498c42b457add01defc3002a21650853cc8a4aa53106f954c8c9ebeff4135eacc6de0c09792ef70fd7aa0256383733736c5b8338baced430f1cac63926f11a7ef663162c723a2d0a02b7dfe06a4233676b917422c0a381ebd369eee7d505c454b6e832e5cc0c6ddd70c81a3ef3fb4ce375d0464be45b67123f2577fa44f10d945eda0f4877313f275f42d16ca586fdcebb7b669322e09b6e5a2105aee315ba9fa17bef67a541494de709f86a03437696c7e639e75bea93512c5074f44c9f72719eafb550d4444887e4cbda44ed0e92fb06735bee941eff7038a8bbce7041a129d6e4f97c62e4f970f1b1c7439889ff11756e99db0433a3dc1a6b6ced8c731fc95130f0853cf73f4fb9b710a539fc69aa6b9e3377c8b670a4d12baf276d7bbb52e8a3b539fa2de15019006f7632ea84c104f19aba7517d6835fa45f9b99bd24aeead818669981c2bab20c1b4ff6bd0ba3601d15e0ae1fae27b757d792b1ae4def8f4b430fa89bc38c898c187abbc0aad1650b66c88a28362a96bc0188bfa885ac302aa18282c3fe542540801b19f789acb46c409584385b90fd48ed18f22f4e41040b689331de883ffc218d79d463fb6de60579ff8d07206cdc3f91e0c5789bfcc8eb04806b76d23c5a7adbfb841ac51155ecb305bbbbd7c4df903916004c5fc8f4232e299eb04609a0210b7519a6bd5b1bcffff6eafb9f2a7cbada0260a6c01c1f0cfa5d8a6103c00b9287848018a8a226286e68b4a96cc04f07129336d29f4bfa5f42d55db5708f2ae2ce37a863a63b2f1389cc0c36a07490064c17881d56316f6ea7ad6e9f51215aad80d6c091948434aec7c4f0399c107615c288bf13c336c8be0cf76c6ade0090740c1c9c505806ded1b8103e896d6673cd1bb318b860a98e627c07087fa85d5b1c8afa92783996d69cdbbf53e57d18adb8540f58fdec33ea8946f17a97cf31a64deeae30f361bb96c1a91c5b51f1b38201826079180ebf9e3d2a05f3177f7d0288aad528ccc5667ea5a0eeb2cd020475cc663030e2fb7cd232cc3ffa2a54143ded946f7442f2a4e38baae643b93d642d5d9af65058a37ec328b877ae4301033caab166268f4a9c25a060d97cc46c167c94e8f23eee416ffc907755e6b5d03d2e6f3128345a47f02e828757f2e5d9d960b5b786146c91405b22d4151f74917ee46ba97fcb316c11ef9de9af215290db682a5acfe31aec7c91ec176f28a5dd1a15f57671045e590561f07852c8f341cf7ccc3f934e6fbca95b977bdd7619fc10564e10e996487fc77a182d9c06371aa3b61e7043ff4639ba5523dc32b5662d0f4860f7c0305c70ca1ee1aa083f20b4f6fdf44908e90ccfe1f5e69df1fcdf6d6a4e56eb55a2d2813c1ac9f9de9ba26633d7f8b1e03d5f8a225d5e944a82001dd1fa814754e4ac7bd355f573cd51f7aca73565de3a503d22f38363b1a20c9d0a0f2b28c8d7a8efe4e5c031a2f4f6e641bcd95eb91b92362bc32944bd01d604ad4c4980b2792002c2d373ace10cb34ce0c4dd5a4c496ee8a576aad0a3e33d3f4a6c80bcec22d759855845ff0967d34c2d46629c37aaa8e46a56b156070f2f95c3ce135dd5c28529592cb56719a571614bebbe5dc8a910515754d1841434598592576008aa453d9af2ca636dfdacf073d78f83f7e81a1e90d3faa73566dcdab8fdb2deac5443dc19d19c2d52f809ce1872c120acd5d21b6dc94709b2a1377a67ff366eb8dae7146397da9825e7f0480c8ee622141a23149932561b27e9e2f4cf45c6367d1f4c46f092408f5a345eb219e89e3bf8e952f4c94e7ed2c7a3c9d27c2ec1f7b8d34eac367e750050db417e8f69f44ca21fd092646febf158ffe4917a188aec3bfe979741a196bc09cfb86e365f54bced26524309563d916d2e062d0d06b518e8973abd644b37d41c1d7c236af6f7ded219f483dc192e7311a05fe779fa72f94cbf8588b3c9a01ea234cc6123814758248f10231804c40f3782f11ea0593e2e61a3f129ccd0cd8628ff8e01bc6cab7befc1f1bad056b5de4c9471c678d5652f54e0d8fa00ac4bf6421d154515d7de83fb62a800c96800dd50df4d6389800113f5006618c9f69a99b46acedaaa6860cdd9e45245fe730041de72acd8614fbbb21ef02dad2d8bb67d75bf2f548eb51b9122f892afd3fa0efa59004d1654b7735aadb4f80d0b9f07b721b00a276f0d7aef39339fe8bd179131aaeb727dfc11d58c9ff50b9c7dd804e5f91cc668e6004c1c2e52a1f237f9074d4924fba2630cab1bd4a28193b257db6b40652a8f4ef8a0cb422a6b3b193d5a820d319deb6dc7c464fc67f8c36a6d919d3944276ed0ee7db925feb73454cd4ff510399fba8c05c6a8d81f7a1581c01e57d9768a745e020c842076be6bae82901c887014a2678031f1679c6872113f9ec5c0ae1761913725c6847473da15ce4505cac3a75dbffdc2bbcc403c1a3ec7dea843bd602469b6796ac0e47a3a8beac4448caeeb72cbe3dafd45603ce40cf0b58d0ddc561c382f0ca6e4cba694f4cfc0e6e7cdef4f075df2f317d888150625a5fe7b0553b504f87cf73de9dd1b63b39d219d8c8c8f78aefcee33c325f238613ad8927277c73459db85fcf41bbe9241bc114235712fec3625c3cfc6807b82f1894a83ae3dba5a50aa725933f8c921b10a47567790da308a009af25500d00cdc7d454cb78353e4ef0dca06a6f9e7e98dff4d68a715e84ca5ffa9d8c88bd916a5774bdc1cd7de83c426d672f638388f2166ba93e5d4baf3368c2af34b2e487c46141b7c30300cd7bc647140db723b354293a5600ad2b91effe2f4dccb2e61e6a4c7fb51c7011520a0958608ed332099f6422052063e30bec64976a0f62da0af1608b36897c1b6ee5d8feffbb504ebde8830e51fdd145abae55d14f0e365659c573bdd5103072da5522b1b135b3ba9780314c75dcbf12824d57c2451e33964470f6823fe242f7deb865751f71bfbdaf4ed53bdc844c2f101bfa3d86c721a7669657143ef3592f4921799979eb09d0e1995c32b010447641af4ce29fc4f455ad1e76a29cd608f270e856a83c9a99db8ac6ff578eba0d938ac3e1a5681d8d7d49174dc67a04883369d54568bb21ce42c3d4bff14938cc770dc63ce36255a8ba5fd1b68222feed551741788a95185532cc861061dc42aba0bf6a1c6a78c9e50ba7636d0c2a7bc2e20b5864959fdbf6ff4e1c056343e51b77da731cbaba5762e3f6cafe54b7c5eec7fdd2defd95829851e15adfabb77d904a17c893af1793d6af7e58e204e85f48156bec29ec5ecd04de7a4bea7f7f11381a196567caec15640227676f753b91f03eb413d17c0204eeb72658599abb66181ceba2627053090c61021b274c00d50a06afb92e69302660ba6619df8c66a8151a690fdd0b3e14d4f43ad5740570d905d866452ae6c4d4d5e3621719cb9cf7c2d6a56a9b763ba598ee8cc18db0ebd03a4b1d9b9966fd4d80b91e0d437f2e812ae266f57a54634368fd58069ad5f4e3fb3379952797fc9b210e31698fc16601fdf6e0a32057c6f5dffa6e8507155815fa8ceeda2eabeea0cd20c17de436158a87bf681c457ce70e48575cef776703f57677b03c8cd669dae454f94ed1a99ae9649db2ca6f8a2bf94f245e9f2c022db61b0b42fe0a77e99f1925e5fbe83e651951f2475b3b9c2d2aef097c42f8ff8e691be4b753a1ffccea4790d9fd8d742f21706c7b7e0af1bb45bdd2ae704b37337946be2341f698d2c7a44d0dddc00381b44a7e76bad673a6fe6f7345f4246f94083ae0c14af3cc11bf4fa51917c461752c72d4dc163c795b4198ebc5c6ec06b0f76ebda0998ca57bb6951dd9e83eb3b470ee2cb8e5dd51ffe78d4cf1d4510ed5bf10b71a1f58a77747c908bab6d063917d08d29a58edc237579ef47eff4988ce696556bd7462908f8df67d6d05aada7a68685b90885028a987b58cf7fb29bd1753fef9ef8461232a332d72c3e9931af4f3414a76dfc1495bd61356603f8239509891f700a6c801727c34e5735ca3626ddbfce490f9633d220efe22600805b0a6313dfec0f3d2d94688dc89293a85c0f4abff80d212576cc53676db22d18686b5099c49331ebdc7dffcf7f098200337c1442c7f28fd15f43590f1cdc9be55456bdbc07d73c1e170c230b4a71c3463eeed0728a765c36e8d6913c15140b7ace5b21290dba2ddcbdc6b7abf43672618c3b9dc3a7657aff6793094873d491d17c6b695232528fcfe313feafca750af8acd65960fb8f3cadcdc18c3558f5079dd61b8a9430aba235489e72b15a98ef112e105811b5b188ac9d4921c03eeb27e2b48b2e2773c973a0ecc9b5d57d4cb9395fb381915265366956f6028e03e93da4d339fe1fede9555526b95431cc78900f4bf5fe5ed50fa9a0932b5af1414bb74d1232e1e5a8ffe36e163914de2f41c1e1dfae2777bdca9e184ed681ddf7632850e40c72442ecea639944c416202195f1a9137fa5cc4ad561e660c43061dd77b8edf0de1d3aae2a5eb81f77234c8da132f3e0bd0795e3c27df5d2207ea897b02f658aac1afee9908cfd1b357726ce1631163982b9ff9800a4c5ade4a238318dea3f3ae1ed70b8bb7534058dca8370e930661c6a0d19840635de58ea7363756fda7671d7f37de993487c2204f6591c59c40cd5f64203b622d9cf225d842fad11e69dcc8881ffd40e7f92b070712f532fcfa1092aeffcc8e12ccad9d1a95a811a139c37c7891254ccec75045aced86a5ceeb9b92358b77eecf687b32c242166a86ee4526c20f49158c3f0e1603e5607802c1afcca40cce35cba2039f6832edd0c9f5cc22d9e0e0ee1f52657dd909704e450b58ceb84b1fb024c9e4b2c4d497075c1271404250bfb46b117059ded8d63aa6a8a2c99eb537c42fe1375a5b5ff8ff1c0345d1aa94c18829552137fa4f8c41815450c48b8bb85ee22beac01cba0c1be74a1f23b33aae23555d98732d29a17dade49ddc0a216231ef39fb17a092563a69f03d33db11c640bd3d86a00f3309ee87bc718bd8298a6aa423f5b95522ee749daedcdc34d3d5ae56b6de231a568461494c055531234f13ebf442d7f8c79fd8ca897a9b063e2904d92658569ffdd906c659283b7ccaea57e22cb54107c212b7c705d648e5aafd8008db3e389cb0e601bc25bcbbd095aed22e6faea969c6e3128b9a6c7782e1896ed67bb0b43017f93d69a08066d4ff77f4d97c3866b7c416d846177b8248818b298cc48bf781d3f9c6457e1345bae62cd0c9ea850e4d796391a6f3d6ac584848dbf854cced409f4a6d4e1e1079b68d5cbb40bef16ab70e0d0c01d8ca80afaca388b9a2d75cb6880bf3322de1bb473dfa970bedbf2b68891f5cbf2aec685ff90d77b1323b77342fbc4d2e026a9f0cdeac29127065208a8bd15be35c048c305f2c4804a406939a966269bd8a6271a4eefa2ebeb19995003f22c131548f0426cc9fa669e470783996acd4cac5b1dc72e0742d8065432eeddc6d5df833e21b28922886e3f312977e0f757bded2a814000e1b703c34dfb31fc845beaa51f6dfc67313ec39064cf6087a93c0cd960fd4a8da1c0860fa4aca399e5cd6ad3901e8feb9c51b708bbc7cbb706f29f666a45c8dfdc382464cdf898c1ccf9027f0b497916f3302157e0eb7d90c95183531818ee0044ff93165f106ce6ed6bb6528cafcbc0fb8e08164e6f0f128e2267d3f3cd2edb336d3ce4929e5dc08c0426ce40f7d52986162117271266efdba4f0a81b480dfcaef92500569875f6709a015320d50902e7ad8b56e520cb4741803e760e268fdace9cfde91ac4f6f4f43201bd94ddc3398328c27a41f6f376bfcfd34d800caa5c1c7fae47cb4807fad7cb7e50a4e247cdf641973c006c4c2615170cbd388c0da659a3cf0e179503552279d8cc64d172eb7310ac05829f5aa63db9a3b723bd3f16cdd6ed701a6d3eea6ac72b8ee2a1cc4890b048e099abdda114b67f05ab8263fc6b04fd447ad74b832f01a9ec500f2dbe523f25e594156788bcce8dbca7cc03df3cdb84cebf113e3eabdce4db2a18c5992a1d9842a77ed6a6a8c822bcfe8e22cc858b10c7d26fa0db278ef0850841971a06176cad2be66d744ec5f7c8f644c049608b433155011efeddf5ec8b5b7078bb94fcb146b1ea0a9440f479a8b3bbc3e7ee0fd93da8c713f5ef38bbf2128f146a5bbc3f2e026146a0346f6bd63905e8c71461ce06bac4836cc1af63905127e8819320e470f46f87df300e2db89e6d5d46de4fc5ad6b1629b8b6fa50b678fc239e1a8c726c785daa6fd6653833bbf323840894d58032435fa717db00f388b7c9d741d3ce334137362ad74f51be7fc28afbd1dadde0b58f1e2ca8b123e98b17016d5b7f6d75c2aae10bcb3bee5f13fbfc40fb03b42e1c12e25a3e144b4342ae6b55d5ff658e410c591054edcbbdf579db07c5c1afd6bba916bcb673276b13f884364d46e7ec76d9b82d944d3901140574ad83886166e1df2e9c0fd7baa98668ee80b27f9fd1ec71dc7f31c1d61f3640dcf8ff320f222c5b77286ea1cdc41faacb1183aa998b0cbd9fdf4919b5bf0aa8ff9dd56af6eb0dbaad6f3774caf4c0f5daa567afdb578bb79ed03dc83d3e034cbf60d652dcd026893b95643eccfbdc08e6439360c22ec27f761f679c2b56005b3530a1484354c582b10edc01011a92068477d56a43002188a1b233dc28fc5ee6395d3d91bf8243adec7e86ba71eaf3dec8e334e8f2db91ba47ad3f86924bf9f2fb8af20ab2e1fbf192a26de8ceccbcb1fa429fa430292af373649ebea3ebbbe367ceaa446eeb445b71b774afd011cf2c23a1f688b99ed674737a1088fcc54f9b7e77172b0a760fff7b58978677a2c0370c42706600695d0c3be8db024edeef4b685f9c8c0f4d2740d1f685193b5a591d90b7fea59c0c9e415a34ce29cbc0dfcbe982ce16b19a0cfef48ca1e758f06be3990e02eb378727861702378fe34d499356d8ede7ab17a7086e79380e020b632efed0a0386f899664f7c52de88856cf34934c660a10d1ac316cc5275d208042ca9351b3d3c0e2c86e1075a40c005f4cf227283804cdb5f988a75f1b974a29f2d9abcdc242f57306b14a0abe079a50b3c082bc43f541e8205366f5515c5cef34bc712e0656da80ba85d2f5dac696c5d30d02a0801f9770d3f202822c5189292e12d70bfa532d208b3d3e4b9476f7c622b6135761ca9ad927f8e87297c0038c56346c10eaf739f42a4907830f843322dc2c001868857fac8138315f9408734a805b44a341e8d5bdbba70ef01045507ba48c76db6bd2fdb704004caa2c2463091cedfc166ff47fb307a3c679458ec8c4d138bb1a9f45b3bee2ac38905390ec405ffe6d50397d862b87f6fc40b581c1caa6c01703160847c00ce468b3f57bb4c57868a423b5758450f6610dc047833dd8bd3e15c606f9d9e9651af43b625417e6ac167350199f5fb700dff9d31d1834e5067ae2d2768ae3b887f971d82d0db0121d02fc224b0b7ce50153c505e9498582f95176dc9bb7ad8332ffc5e66e30fe9c0830a9a5b9fc718e76b79c83dedf8b6fae77e9a0d525ead4e1f6f9d766096f2b71fb5cda34b8071f16557a5080be461f0d28d5f4b0b967b20060e2f06cbd238148385da7207c24e1383970c3c8cb37a1818cdfe26d667f1ebab0f590e01363db9f30923edc7d8138236eb2126c4d42d27bade1462661a9c9a37d45c401b89d176989dd66e03884bf018db670832e8f570ee6def8c6b6223ea4add1fb1a4a3dfa10a3839c3bc17fffbff9d9d7e279f66b9d1146ef6efb82a9c98bda813cd317754a6bcfa218d40d1a3ef1f99d18d713df44e4a74932425326f5a0a9e5634f440bbfc3e6e0cca8271df6763cfa2596c7cdbc8f196fc96229f3885b809e0c13affdd97bfb0f64a830e494127601a3deb5ed551689cb6c44ebcca60f3f4603efb14638cfe90de33959d3cf88b4e521c29228a7e8aa1b1d03a1be16b29b5bbe58462c4f39a910e2f0fb255f903c06154a9191eebeea8f0b0545c7274eb72b54b387ed05a062999bfccada7c4d7cb8eefabfbc033342c877c5822ae5b679c514f63776a922a53a70e9be1b6883a0649590ce7eeeb93f8ff1d70487dad73485547b1db3259b5c933ac118db6a40f5927533b664c8c0851014011642c326c4d266d828c4e051a58839674d54e4046f5cc24bc6f1a09bac79bd888f063a348720d5fe53a044801dec82a766103837659b8b7c5f8d6451f8d5fc0e9d9d45ceb5fb6cbef1c3cf269cd33a4971df965c63934bb3adda1558fc11a09bb7f872dd8766e4d7a1797159cef4ad513968b4398e67b789969f7baa3b1e376e89c2f355f2b3096b656278c0fe8bf7294d9bda11e5cd9252ad50826114f68f2541a600c015c0fb043b0c496f3b76c30961057ce201f66401618d6d1f089c7b10d63ebfa84f760899b0f1aec98c15e335fd8bc18dd78ac6043a3ef2fb61bc371a681a13478d7ae5f1f6fab07ddda471808d63b838851ce95195d2de8fdb3bba1aff8fca65716a7f576637a9e22646c4e998db60ee26b88000d7c85cb7588a465d2dbbfa535d88aeac4337068ff874bcd0cac6a49022371d2b096746eb09ae56d3932d93906f359ce5d6b404e49525cfcaeab1e9c42c72f41c335d21c199612f3669b141bbbd1130cf492a8964bebc82cccd3a8283612424c784acaccde2cbf3d97e753a314c8a15d102dfa874d4a1f46898cc5c0c0d955287691e28ba8b3abff4f059329cb8b47b8e21ba8ab7c9b80b5ba6cfa89c98e7d6eee094688b6d95f2934adc1b604533047b04eb2662ccb57ad1dd54f0038ebfb9fcf27e7f230cdb54715b0ab88fce63ca9a137afc2d928c67aee4800b2a68c6b3a4a5ccba40c5f823c4d99b590611a491d29731d003f49a056a30e3a259c0c28f07d93f742ef5e8f0e0aae1caee6830980103b5bb3f8d0e17ab61a116fcd13d063bdb8aa2e4e39800784269270b49cec86b1a29d13473f7d8509bffc619a853b7fb2cc091334819363984314d52d90a02c47c8556ef2ba6c7be23cb0ceff66960a467b2ac7e4119e84e342e867041fa549f0d0de76755adb1b7c12ddbf409373142d7b2c78134ac38bc1f752e4d0510ab99d820eb6796149fbae1970ad670a9513543e6c74f0ba78e5aa669205e6c5543a2dc2e63657852d4a346a94af1529f1f0b15058538a1847b2045dd948097a6de4de9c84487a1aa9e8bb14b17502dc05cf64718d7392c3b7bae54866d8cdecf42bf65c2270022078c509968bd2b38f11f8ef9618b029c7e032e4d05d10e3710c0d3a4033330033330033300d87f84b5341b51a36fe4cb2493347801e107c6f8433c46dcf82910934c524a99d2037e0ceef09bbd591bbb10220e2c0e8c8b6d4b4c9ba59da64c99c807100c67c40bcf6a36a60c97bda68ce9e44719272b1bce1897cbca86e3dc38e171c282931f679c5c2e2bad72b95c2efc83912e3c2c3139429cd6620c9b72215529ab44992b9952cccbde4f1ff6b24c8f7566732935e37239f971c6e5920b84912d3c0895e6f64aecb175ab10ea4a1f403029235a78f235e75a4fee1f315a994d8687912c3c689572edd95a73e41acb6cb27c1074b9f8c371b9fc38e3e4fd1a628c91e9b419974b73984ca7333c4e789c9871c2e3848d931f679c3c623c0ae7c7e572c1ac74d20710ccc81c46b0f0acfe7cbfd6a3b7f89b76e639e90acfbf6ef33ae5a9f121c5a0e8a7b4fe1147af911a4773105be171e9495b4af4ee925a98d9d47c0ac61f0e4e85c1b0f4010443c648151e6e9f2aa96e8ae89d210c46a8f0f437ed5e56a929e798a7f03c43942f69726aabb14ae159548ea16a8e9c12521985e7bb35868cd952eeeb1a0a8f5bf46466e49079d3a0609ea5b38c91277062b54a35e932a4a98cc8b1f7a4162e468df98e38e1e9d61c3f7566bf5a6aab090fa34eecb1df7eaeaa3f2d1f40303318610222efd42ffdb972857209ab3d5bce7d1fbb450a4794f0a88418be4bf9f4d5423b9284a775235bb9da2936c730ad11243ce9fab1a6b94ad33a7baa1e39c2eeaa7ce4e9b2317f99d94c6b478cf0a07bea09992d3e949a622842de0ccec7b1394369305284679f2a6662ec75d1d2362e970de771a0d9682e179516cdf20104d34688f024762d5b76b2e37aef2a8d0ce17177a9de7bd69ee2e78f4784f03452574b5d5aef2b8ed720ceb3c161612373392c1dc42341781443b67ad7bfa79eb20a46f3299b435636ae9c6a39f971d254cb09eb8f00e1497dbfebf6a932fa7fc563e4070f63b65dcdbb3d574aaa2a18f1c1d3ee10663fb65ac2b46a9f1e3cc8b1860e2d3f6fc892183c789075352fb7de5b3a0b07c365ece061ada9a34e8a4a196ad47c0a4685bcd3a0a83174f0ec4a4cc88cead153eac88c1c3c28f719724ab1bf23679dc1c1931e7aabb9f5365173ef65365772583a439e4497dbd63a5e86ff3eb3980e8a260b79d8dba6f45a316fd489329bab3941546aee0ae278587375534ee9d143ee583a703c0955da546817a194bad1d3f2a8ef7b6faeb1f19f623e65a58505a30fcb93bddaef8ed0b142ae339bae57d0a5f3b0c5d25396ef8b5dad6636950cceb36ba9562badfbf37b9fd9ec6c5c4ac561e9a075836799156ad4781d7b8dfdcab31c636fe98929a72e72c1e641689bae5dcdf15b9992e659ddcef79b72f3c576559ed58c6917e22e6ab6ce05298f274f8af19d9d797bca6ca63427c8f78a26e75998bde12b25f5f0255b8ad373669369b66058541e2bc30689d3c34d46e4de4b6536372c1a144c5a2d98ef707a25a54a8b06f9407997742db7ed8c12a2cf6c2ace6b343ddac83ca8fd34136a8eb944ff3e65a5e50706795e7b4839e58bdd63a858bc85c3c24626635179c804efe1e5fad862097d42ec2db3e91e937229fe87db27c6d2bfe4a8dd300cd76ab0e5030826887b18d3d4cd9f68513227caf59c8dab3f6cf9bae654ba3672a23058f900827941e396b89e2ec6d446ad35f90082e97e5ae5667baddf18e37f5c821a3cb8ec392a468cf031c7cc668725e6c1a79ee9b7dba7dc87740a4a4583873f71c3cd65e992a5cd6c2a11cce0795f686977faf48eb2c9209fcbc666f99e6ae17b0c1e64c8b2656bb386beb1151514d4803c4d3fd371b6f5de22863078fc21b49e5a6cfddebd4a3d5ef0a42ebbd57dd652f3d2219db2d241d93c4d0f47d1b41a97cbfa0082792e78d0bdfc47d4d6aa4faf05d1a0bcc1e8c6b3ef37b9a5b4349d3542b9b48d476deba2a6faf49c3d45ebc7a38f2d2b74ac21b5fcf772494979c7e5030806066c3c4835ff4a477e94544a994d8782f995212c7bf2a38c93219a302e97219afeb1900f2098678dc719526dcc91a7abd738b3a958541e075af0f45af95cb5a51e36c48a50066a3ccadf776b5c2ed9e762425c8f209a5ee372f9209d950d26d707108c4b4313e2ae5dc6ba6b9326b2b48d311fbf4f6b95cb6cfe38e384f32c3d785c2eee5156367eb97438cfb2d2ae2f17ceb3a090b1c6896272585646c2e0e3616c61dbc716c2de953eb3f9aed9605252daf95d9386868cc53a2b1b30d078fabd5ef8b99042fb29dfafb12b484b7ba758541e5a39e349e9b8546a96cf28bdca6cb2a03ccc86058358f028f50ca147e4b6d927cf6c6a60050f6b4bb94f65c6a6bcb4c7b3cb39b48f0b3d7dce5866d38cc7bd2e6b4a21f7d41e976696b15eaefe6649b17274c9d9023254b1bb5a9a9e63df96339b6ec3c693d0a1f78979b5bea73bb759638cc418224d4c5d26b4eb700d1e4f7367ae75274da592b9cc66ca8a0a0ac63da7331db662b4c7e592bdf7547f84f1b04cbcd2fa871a636594e96c2e15f463863859c355ac21b751d9705652d948c1a3de356286eb2de6ae2cb3b9b2e1b844143c4b256affdb1af347c4cc6e58509ee0614fbd21e592b7c5ad2db3f99a4d8a631c85a5593a9a698267a1ef7b6cafa162e95b669389510264a66e5963a61025c499bd5c2e17a4382c2b2b60ec4a09a144949a9c9918f3a202474acae5f1c67d859eb9d5cb0de100a5d3c2d9bc202dedc74859514151a5d2a2412c2a2f0e7efcedb3c4f49cf6b745ef6d983da93aa1b67c8b6163ab329b18946ba53f1c3df661c7102b8792ca86d17c8b45e5a1b554361b4c100e060300f5ac5abd4b9b7a3bc6a6329b2c1ca682f4bc76ec986a6e6fad7d2eb38959869ec79c2d54e91a15d1666693e5eac3f2a16f8e14ed7a6228b319c7861324359f67efb7b937ff5fe85d6693c3d269031f96bd9e4aacdd51531695c76d90e069687fb595d35fec7e65369da6310f07e753170697c729d5cb0c5fa1e24f2fb399e9b4ac60389b8759619cf038f971f2e38c137f37e2e8353857f900823963040fdbdc448fd5d5bed42bb3c9e98c63f05950382eb85c5854dee5f29c8dbb80a5450583ca07108c0b44f0b0d58c9daf73a1a6b799652d2764ac7172f2e38c138c0605b3b2e1b8550ecb0a7acec6930f20981384e05945951eb3faaaa7b5329b9cd780e0610f5bae7dc8d07e439ed9ecb8ff0e86e583a83cf95146a74f505b4ed858e37279958dd334e772c9743ad3273fce38c124f601043362840f603a2d1c0c46021e0041073ac081ce062470f286774b49d980400312c880053010811d14b8008a8acac60316c8400526408109584002148840062050810708f90c051c5081065880010bd8a1800e24401170000368a000425ae5020448cc26051344831224c826250203d821800c0400615250de4000743af085b26c363a3c60228212960fd2811cd90101898e2486d39fe2180c8645c87f40c40086208021ca30f22aad29218021364180018808220b5e084304094730c21084100420fcc0073de0c10e7490031c0c1112071c2d2c1dce0d56361a95141ba06482bc773ed246ba060858840c4410b00847908862002282b0821ec210111111e180183c3042017a30002123ab1861c5082646f430b207012842a4041325474880006a2022a219a200355c2005454840009c201200008c918000206084e416691700c80422015f081149c38801bac0052d68410922224528c211843084217050c052001111143452f09cd76850769440776c6087e65370c70930b043f3292a0126098e3046c21849802c4e408b36ac21035c10e30a4e105143c48d1488888848400445240139d2f029ada1685c3f27ad961c25220a07060ccc4a2701247d4800c91b1240e2850fec0043043bc078cff1c08f38363c563aacc5df8d0eca4a181d94950ea24959514119d9c2081d123002019132509000912488a0c0049d771b0da6f383e5d9e805f30210bc00810816a83032124483620421dce03970e8420722605879160dcaaf6c7e687a84a1f99534363e46fec2e91d9ccd134100021080000840d362ecb8b07c67080b07c539cec69fd312062e44c1055cecb88507be608b3288886c2007aa10111139514fa8850a30223ff081880e72400b278888344b078c2f146216b6f082884847169218e9c2892c3c20222224169a1011e9a06c6281b158828810a7e90ee792714e7f070071bcc6a48d1d68642002119c000527d8f101210ec5032cefcf00630d4e1a2cefcfd8b163c70e8d0c72b0438843c17c10f79858040210267108c2094c1002344a20e10a04ec688526be153b4452fad9788e1acdf9e63c4a29a5944a29a594524a0921841042082155555555d5cccccccc4c545454545454545454546666666666c618638c31c67677777777d75a6badb5d6524a29a594522aa594524a2925841042082184545555555533333333111111111193999999999931c618638cb1ddddddddddb5d65a6badb594524a29a5944a29a594524a0921841042082155555555d5ccccccccc464b64b25a489864a0f188c020c111191e63c093a4ed342c6c6c7a38ce1525a362e886393f262f060f94e270ccde360c321c3bda60dce675878b816638dcec6078f47b341694d1b6b707e489fb1f1d11de7cf93f2194dcb0e4d6bdaf840e77f48afb0a0a4a0b4d6f4784e0b4bcb6369e1b4b0b41d19160e4adb71d9a1e91d292d9dfed629615cdc97a083a0743e6185912c88888c604104019f58b98288484ab7dce077b06c34235410111999821466f000e9c106668c678c3478f878306ba4b1c61a0fe639a38d31d24003f38230d000030ccdbfb1f9f1292d6e83066b4181cab3f43081bf1b9d209b14d7e3352841340f0f4f3440e4031e10111111e921292366e8c48e0ee732a4613a9d5e29c208115834ad415141e17807c5ed5069d1fc8e8e4aa7e3d8b1312388068585b36961ec68e98c90dfc1e184193acdd26388888c60444446683083201a14f76ba4344b932122322283ee387f4e875329753f83a4d626d6d8b0ac0ce1b8a230dad8701ec81031341b940e0a1c286330cd36dc0b4121834583b259c1b81782f2c00003b3d2111161114180263cd0e15c58501ad3c47438bf92f219a6d9928939a4c1434464c48d36444452389cc73729296164220726522e910a11368268503a1d14348470092158c20f227f0906f40a0986b0fc58a3b3c60e9520dfd9916109030c30444446d858434444039c120a58a204222656305142259c508903884cc20a223350b4a304ac25069318594acd0000461246908411444484a08888881a0a0718609820486748a7bcd3c4b171299b8d6384b40a66458593c1a8b46884b48a905651d402091f3c42178f50c22338228a5a1c610b11d7030c30c0e00846b2814628424444a4117468c4144444769cc0043b76805183201a140d4aab3ca7063b583abd0287d3b43f0f75431346bad139454a4a18de4141e39f0c46f4d0c11621444444e4392d2cfd6f470d3a9a160c1c6fd420a5b5e69da651382c9ccd0886fc1b229b9774c11104d9a49c212232c20211919115882060116af400a2084fa08be60547a08963c369994e6714a107110428c20d9ba7e9d16348caca4a183fe490080a8874504a50030c6783a9c10ecebb149416313a9c9167648c201a140e0b1b6080a1a805059d4ea76038bf22a45530425a0505425ae53bdd50a0a8c5044252fac721ae90d2864882c8e57261d97c4a27e5e1f0ceb0a08091f2707c0a182222ff1c3234ffc6866544059d21adc6ffc37486f44aa7d3295e881e888810820e84900321bc2022328282cdd3f4406348abd179186c7c88888814e08708020661890ee7e24a30888cc8b3745e83e13c0b0a4665c37924f087030183f0b1712d6cec108109389b94e60106180200030c4ce71d46f3cea16430282b8d59e974fea0061111110d4aefe06c1e4be7597684e10643886862137e5005b35d236a248d2411911ba838f79d160c0a329d3643c55fa0d2a2c1f4c10d17d7072122222d3b3461f4815df8608b95153e6436ad47c0871afc0f3eb0354410b0074b8874583a2b08d883177eec214f2e677f7a6c190a4fdab4df9aa3d7e50ed1139e7c0dd7ef520fbdf5d8098fa3ba2ad78c79a995d984a72d5a68ed7bfe0e99cb28e460c2b3aed495432be17b5bc65c428e253ceda95532d46c51a37e253ceaa5ba6f7ab76dc992908d18978b7b219bb640c8918427df52f48e70a54f9c1c177220e1d995546ae9352a574d7784e75b29d7d22744a8d2b1111eb61c71aff4774ed5a1ce906741111ee41e72c4d42f7a2b29663619262107111ec5f4c969d55269ed7b13720ce141ab8b94635acf35955408cf23649a4ab5d628d373417892ddb6c79f966363efe500c293dd289132afee578973fce069cfc9ca3f7fa1ce97c3074fa3d50c59d5af22f2f6e2e94db5ad71aed6947a79f1f8e2e49f095b256aa7500924bb78d45b8ceea542d4dcdb4974f120a58a739f3e55ace5ff38430d24b9787adfb9e4fca97ff46eb8781452eca9e4fccaeeed2d9e5ceae9e255ce1761f6e572b9205b3c692d73cc88d29152dc24b5789a3a9476b542ca1e2646428b67f1397708b5d48ba93ec92c1eb5be19ea3666aa3f2591c5832d39f4725733f4b23563f1603e56a4d0a22f01092c9c52add5636c88574a5f2e49ad90bca2a1e6b4258698ddda26638d13a61c961537485cf1b85aee1652abea75c2d78a47ad94eecd7721d4bb4ac28a47dba5efecc4be3db44bb28a87536b49757aee63ac8d44150fb7c5d5b02542bb9639492a1eb5eefb7c7d29879e0e150f62b44921d48f35b1f929d8da5d6c31e74ae55d55b6d8bded865ea1e55633c5a3cab142a65cf236af2dc5c31835d69a6bf3adf516299ecd47eaccdcdd3a761dc583e850beb6f634adb72406269fb371a46e2011c5d3d672efed54a743da2c0524a178965aceab1f9523961603c5d34d13ea5ae833a145c9a279e7bc1a8bd983e4130f629ba87c9393edaa1583c4134feac5a9f8e52343bd4a13938c11249d785c136d2e47f8323189fc40c289e71563d9d673d9b576dec4b30e254267c5eb1fdb6ae251e6befe98f22bd750cac483dacab7da6e7a27a628b3e9306c04124c3cc89573b7db2762364e4120b9c483cd6ad1aaf4de420da166890719d752dcb421e61e739578ba37a12f7e438eea4d896719b5660a31bf6ba4d4249e56e6f69e947a365e96c48350b77bc558a54d6df7fa537807249178d43fa7d284ab319f3d249eb694c3cd7d4eab4b37b32904e5b160329d9695f488e77fb16dcfc5e6d27be50f12473cbd74f93746c7b7af546693f30d6f163638632c199034e2c17fec922ea787381bc324c57c4818a190a53e65a7f4bda4329b9a4e5939f9518619880592453cc83d6feadaaa3a7162d4931f65bcfe3314622151c4b30e357a7d8c25e4ed56221e4eb9f62d7aedad970b21a2ad6ef7bebbea2c7308c9211e6f6c512bfe5ceb116783a9342031c4c34e21439e983dd616b9d4c68645d3430d92423cf9d8b5f728ad8496b2a79010e24989ed7255ead0a5b31dc4f39ea9520d7fe54bd52611c4f3bb181177255c2e9fe31a273c4eb005273c4e508d131e2798c6098f13f471c2e304d138e17182679ca871c609e7351a941588f5b8dd8fd15bfc8d4b1d9000e251895933b68b1ab72ac5d2d9aca027b740f287a4ca0b2d444c0c2d62ab88dd7356ce2d77987196e6ac60364e25aa1f9e4688ae13ada76cc6e872b95c2e174d4cdd03491f9e44e70dfd5b4ff5e97201091f9ed59823c3d5e9ed2b4e7b781ac394a8315add341bbd400fcffbb5edc833537579cbc393ef293bc42bf5f95b0e0f8f5a8d5e3976dc891fdb68307778f4b1d50d6dc2e55e6a3b3ced543ba79afdf2c4a80ecf635a8a174a8f98a27c74785e3ae5563bbfb5739fc393cb7d5a28a1dcd794e5f02895ad7e5fae86afd0c7e179d9d4b2f3b2d6181d0e8ff272f6124beace53726f781caf2b85aa9b63e9dc0dcf2b64dfa7f8fa39c7de86079bbf6676a8fe7b1d1b9ed5cda12a73c92f795bc3839657c3a59edaaec79a1a1ecf6456f5b86173ec751a9efe9428b95d47eff9d0f0bca668154ac8356ccbb1333c292145cf1d53caa9b496199ee77625fa4b0fa9b6afcaf0209790bfc767ebb967647894e25cd5fc5c39663b866713b673fd96fb9948c5f0b4aac61e66d34f9f491286c7f13db7a99cba39cd0486e75b6abd6be13aa75aa1cce63f870593f92b437ea49c04c9171ea6505527c7b874edbb179ef68ca942ba7c3913bb0b4fe3e72d551b2e171eb69eff9b5b5aeb315b6fa4b4b41e9c34d6082d48b6f0ec2feb5afdd7d829bd161eb64f25b61c6b8e1bf366e1696b3544df9827ddc5c4c2d3b0d92b72e2ab767d85079d6a3ba494d537164d7bbbc174a5551086c40a8f4a9b88d2aa74f50fa241e9705afc392bd1c0542d9054e169effd329311371511a30309159ed69fccad2d43cdb1f5c98f334e2e97a4702099c2c3e8161f7b0d2d237c5fb40389141e86ed5e1babe4dab45d2e99985c3d9044e1c1ee7cf7eb35b41225048527132eb36f94b4693b0cca5506c9131e6dcc9e7a4cbcda95731f978bc2a16c2071c283d6ffbf4a457eb60fb1e6f9410492263cb878ad969c632de9bb2261c29376a9274a2add2ef572754896f0ec62eedae3c697ba0c930b244a78b46d62ccd6534839d4740d244978f635b3f70cf11d62dc487818293f3b7d4ed5d5d8111e6cd64eb1e51af5ee2e89111ee7489763bff996e36724457852e6b7f69435c3d5f6498890a992173757952a9569b3d7bb77a8dbfd59f70a4886f02ca7985cabfa6677d89945f96ee3233112213cb92b1bbde74d9b3c73c3a212f3dd4613064910f2a22101c2e3edb9a55dad59375c9ad9950db59c5c2e4db520ca3190fce0695f6a1b628e3039738ec4070f4ac5b8ac30654bcbbb170f5b4c6532c45e5e2062962b331517114bab6a3194b4b567bbb49adc0523bb78d4a633e4d67abf7dca0fe29ed77f068f13961615953738ad62863295491289115d3c88cbf639fd617bd5fe51383f92074672f13c26556c351f7d176a665365c379e9e44719978bca8643c6e5c2128da06204176e9d99f55be9cda16fba45a2546c53e2629b1231654b99b1bab7dab75b6c643a6d06d39556b1c5c3dea26a5cef36ff519ac106192c38e17162468ac3482d9eb4bd1eb96e8ea835a5c5e3ca8fd366c3d6fa91ce22514664f1f86a8ac8984e394c8e2e6963f1a847750b21d3e41672299b8719c26161273fca38b99071c2e3a447a3a1471881c5e318abe74d13dbd36a651f40303c1879c5c3e935abc67eadd2e51c1b97cbe5c23431b98911573cda122df4ba9f199565a2218cb4e25908e1fad37f9709b1653631984d10c68a8791e77ad489536613c31a8491553c88fa35d5efed33d5faa89911553ce89c63082de74dd52e4fc5e3502af6a69eb98652364c54543ccfee1053e65ea55ddb5c8fcbe57221638d13561c9695533caea9f6d843c7ba5dda34c5e31035d6d6bfcde52a534a1c969591523ceabdd5dea14c4548e993e27967eb3c1d5d1362bb513ccc35bbbd95696d5b2f8ac7ade6dabeaad6b0b90bc5d3f4e1b74de99bbae40e8a87df526cb60c37d151fbc4c3c8d7fbb4c95aaaf63cf138e629bf5f366e26efc493b8b497cb576df6654e3c4d25e72f2157b7eea5ddc4d34b1f3abae7ed31759a789653cd4cc89ac961ae4c3c885d32b44f5b39b78789a7574aeef2359715fb124fa2a51c25b7845842a62cf1ec6e2ad5d65c27d7952af1b054456e2d84ab772944896725b71ca5a4a9e953aa9378f2b9e55ccbf5846d3725f1ece3538f5039d7d78499cd0c0b4a1c6993531aa50f2018334622f1284fabc855fffa5fcd653621f1a44aaaa5464df9db5bcc1ef12ce37a459ac992bd37473c8af5db638b15f6ee4a34461af138a64b3152ef5eeb2de6128c30e2f1865697e1be5fcca9339b18f79a383618d79b94cb85e5835c2e273fca40e1fc38e1916e5c2e974b736bb330b28887bfb7bd952a73317ffb9c96ce26c5314c319ff1f69516cc1b9b4dcaeac98f324e5a70c2e3e48c931f679cb0221eb5a89ac9df3c114f6672efe9bea9a41c3bb379e2b6e5440525d3b9c071d2b6e504139011443cef3573f8db1a6acf93db93860ccd91433ce9696d7289f4b5b33f433cac89d635a58d355e76994ddeb0687afc50d970c8f05f61e3724185781eab7329f1bd67fe543fd4fa608410cfd2940bdd35c7b59dd8f59bf16ee3e372b92ce60308068e91413ccb7b13a366e45eeae3002533730581bb10c395d65aa690a5d4f4565bbd3811b2e49c3fe3cde351383f52da37675c2e3c4e7e9431e45990e9b4193c4e96d24d1c3ffe8d4e11e372b95cc418630867a3f268288572786124104faa54cf579d3bfda605c4c314abb5cef5739a89f47241228cfce1f14c66eed632d6c9b17ab7f1c198cdad0f2018138cf8e141676cba4c6142d79ea574f8e44719273f386168ba6648278131d287a7fba57d664d71be732df518e1c3e37a354aa9506b874bf91e9e96bc5fdbc7d037c6b7f4f0ac4345b7eb52ea56a9f2f0744af4b7b6db57f7437878b27119bfa78c8eb96499cd75f2a38c93cb45e1b85cc6b85c2e974c4c2a1cca6b18b9c3c3eacfed98116636374fc36aac7122c6098f93304ed438e3e45786fcb85c3a292b2a280a83e90308a665c40ecf6b6911624a576bd8aaeaf0a86abff6356defa17b2cb389f40623747876d332629cfc39956b680723737856fade866811fb7be5e4f068ebcba6fa973db6ebe2f0a852df96b97fae4bb187c3f3e9bd54941cd25f999282f206a3373c8c351b62c47da53e537130e286a7a5b2fede44e5e5a43a6d78dc636c1d426cf369e6b2e141c9126b8b2197cf30a5353cefed95d3a6986642ab653673c8881a9edc9578394df6758fbdcc26cac1481a9ea51a622c9133b79bcf329b88848ca0e151c6745f629f5c32b79dd94cdd8c9ce15988362147f64cd3f2cf6c9ae1499e4c93bb37ca570c339b4a3b2365785a229730dfb353d5bdd990e1e967d89bf99ca16d2cc7f0bc52fafe3574d8cbad97d9ecb07450843cab8c88e141c42ba9b6e8edafa60c1286a71723be4bac58bd31ee2c1b8c80e141f6dabf0ca9e6add77f6793d97c63e40b4faeff15c95ebb7262c2f3aa4dbd5a6f5f73f5b884e755e2545e2f5b775b4b090fcab5fe9aef91e96396842739ba2af5df1476dae74c90f0a4d49e539b1e63fafbcfd9609219264778f0fdea27d6d062acad34111926467890b6d6e9d935457c9999cd1bfc0d9e944661e1b41a97cb8a8aaf0f2098202645c88b09119e75f6ae6d7ec2a47db9f0c16408cf4bcb5afdb2e7fc1131b40613213c4b2df5d0b77ae8eff1c27c8249109ec6e8fc10363f32a6898c4e3001c2839edf72dfded55afd3f7858b6778d2166ac2162131f3cac57aff6d6d94a8f484b7af1a074c48fb12fa6f63d0ae747f2e271468ba9951edda55bb88b57a921f6b67a76ba7098ac6a1f37b65e6a2e178f7f15a13e84f9d0d241092e106288ab0931534d2a2d23a78e6d53f75bb49f34cf60c925b778185a877097d33584f3238d355c0a4a86c705d5164f4bee0d35c46835337f2d1e8789df6a45e49a5ac9d1e251c7a798b7d37bad8c67f1b8c5c66fee1927fe95c5b3b8102ffba62d69d3158be77d1dbd52c89e7a94142c1ec6ec74d4b0d3a1d7e9158f734a1bf15bfe8d1642ae78fa315d2ab5549cf41d0c4a5af1bc46999ecfda6d21f658f1b43bd7a98e2eb32df6ab785823a767be967142a78a47257588214bce8d9872a978debbffe470d39b7762543c9cae19bfeffed6aab1533c08a9ba62aedfa4ef96299eecb64d954b855ca52ec5e310a1544d6ba952be14291e6eb99cd03b72331ec5a31eaf65ac341d777112c5d3c85a6ad265875a72a178b46d2a4bda4e9f3944a078146bdb101f6a67d8ff89e7b56edda6946b7dc5b4c4138ff3b7eeb16c8d515397259d78341f2fa79e61b66ac2124e3ca81e6384d253fcef392cd9c42ac5d04a46b6186752b88bc92ca1c66df9b3e36be241d9127a448cbc156e6b4249261ed7c6a754ab7cdcfc987856a9e25eceb565dafe5728b9c4f31a7d6943bbda4a8b9b724289259e7d97f9c8eaee9c9362bc85924a3c4c13f2e6f5dd4aa13a4a3c4f57b15dad989f4aef99cd210da3ea5ed3c6e5d28592493c8cb1e3422c7d438c5e67f6e447194c120f2784967aaed497a33b26454924d43666ea91ff623b75459440e2f1850b93ad73c5d5b8994dcebfc1d9c48151a96e5c2e4c14258f78f4df264d4bd71d59ebcc262a72e3724159e994cd660509c008258e78dc5acfbd3dfd3a46bb961b62a4f8bbcb85f31884da8992463c8f6d3f94fad5ddfa4e99cd8e6f09239ec5de29d3a6166ae9bc33bb282859c493743de5c8586a8b1e22e6cbb85c92229e447776ea3d256aaab352c873b9301f40303d2849c4935c3d3db4987be5ab791c1b1e974b1c1b0e2719221e74fa9443acd4a6b4abd61925877818156bfbd61e2b31c4836bb9d5d52ae6effccce61bff1d8ce6332c98e5829242346c8e5363fec67f277395a59410e269af4eb16f665a08a9f4635a4a06f128757c0d15529ed9c4689efc288365b3e1a8f47358d848eb0308e6062582781262e8def67d592e76209e4fab2d7cc765cf544a4a6396054505250593615979b77c00c1082901c4e3fc8c1633efe6ea5b3290923f3c4d71a7c48d3e7d2df6123f3cfe1833d71e63cef93d8529e9c383ff4de95bac8fd9d496f08153b207d69a26b4a879522c7158566c50a287d5d6a7d747fc9431a6b2e1bccb252545f7142579d86c5cb6c858eae41489a1040fcc9f594b8add56e23b2cf51832ef578a5b95a5c40e9fb635317f4ac8ad354aea90383d66ce146a552c28a1c3832a173dbf76ab9aa92a99c3932d3954b4c9bbb739c66e94c8e141478fbde9f3878ca9861e51128767394eba8993fa9692631e4ae0f03c668a8fa99faadaf51b9e7e4ca5f4bd7c6ca792523b94b8e161eb56b7cf968c98266343491b9e87ea9095430ebd6afe682861c3f39e9f9f9afde31a9e54cf0fad7d0dd5a5b56a785ed1379488d4aa7db74ad2f0389792b3d6f0197b8f391a1e64a7b9f6b127d470396312b5507286c79b26640cbfa9734eb1191e87ec3162f2639e6ca592323cee9c7b64d64d297dbb329b1a94e6b8d42f21c393aa98ac5de123c2b634576ecaa0640c4f722f5d732b6f2ebdd7ac50228687a9c4c8ca5e7baa555a0b112561787c5d5aff0edf4bcad52f9d4309189e5e4c9d3b5f11f9b92f3c6cf1b14b9572c150e28567b95b4ba54bd4d71a72994dcd86e5c98f32583aff230b255d78144247c8d353ceddb1fe209b2c5f06171ed4b8b1666dbd4ab72d4bb6f06a53bbb374e5cdb5d964521c8aea204ab4e0da2be962adecf66536151f4ab2d070a9f24a2d97db638db2fa50828587595ad794ef73aa09d51a4aaef03ce6c2a4525ae96c13adf0282fd789174a74adb1cdd3f4b85c5849151eb5da2355aebaf918d21c4eab122a3c4f7143a589ddac1ebbcc6687078f93210f85f36e5c2e994e0680122553789c557a6c1d7a26677b5270991cad6ccc994d94068f0c0b8a0b3a2929619cf03871a38d131e272c429e45b3e171c2e384c789cab374863c09536549141ef756d3578ffb2b9b6a09149ef71c39ddc78aa57668b1b1d2e27e8c0e66a5c5bd3343c9139ed62a1fdb17e2349438e141ece4146a4ac612bf2d69c2e354cb7c0f5721476c9c1bd7d24926a4b5c8c99c70ed5a4c15caf495e9705ddfb5ead6c4a88544c9121e5c2d9532af37fefe625211a244098f23d63c25566d4eaa3b0925497892e73a95c9eace71538c49243cfecd9b27665e5f4e8b611209254778566b4cee39e6905d5beeb95c123b4289111ed5c494ef29dd46941e8f93339414e171dcb2db438a94ba85e90ddf5c2e8c49299410e17985dc4b8e51e2ee47cd082543787655f2b6f2f77fb59d101ec4ffea717dbaa516a1203c0f15ad7ff91a080fb695ec98525eeb536942e372b95c2a51f283a77179674b994a177b55e28327952d5fbb7e35665799d97ceec5e392b7764e295c5e3cfb104af4482d85ee9edac5c3ae2d6fdced1fba65a48be79b52c43a1b439cee31b3f92b073972f12c575d7d9d54b56b6bb8781673a5d0ca76df2fa1e6b8c5f32a75b6b410538d5e55cb8a2d9e762c257c95bedd6ab1aca83c9a344e789c380d0a0b8670bea505273c4e789cb4a4f4524ad5e249b51eb3ae3eb66eecb47816525f99c8522532d566f120566ff5b9ce5e6a2ab12c9ea556e26bddd01329660a63f1b4668f547a7c0a8b679f975a6d13bdcbf4c7e9150f5a468c9ab67789adb72b1ed7ee983397ed1d9b62a6a945c8d18ac7d5ab6db7d62263be1e2b1e9690a63bf52f3d5fd9ab783ca9969eb229459aaeaa78fe3561424c575f2aad74f2a38c1f2b9a1e3a841ca9789cb2b75caba5ada96d8f8ae7f9576a7c29a964d74ef120a55c7a8a76f5435e394cf1b8728da9f4387da1428a08394af13c5e0fb1a5d81b3f538d140f73841ae92a85fea97c3d728ce25155b4ca14630ff152288aa753aad3f7bca9d26bd7505252fa695050043942f1383e2e67ea534af5a4cb7c00c108c9010ae5e9914b7caa35666736c550e38c4ca7cd58994e67d227dea653ed7425a2c628f1604f3cdf3cb15ba4ccd36eba4e3caafd7aeed5b9edd4be45059392d2ce585ad0d09071b91c2107271ed76b1323d6d632de8559d9c6b7218d062a0b8a0645d382f936a45534555e25c7261e45d4d412dbb994ce5fe772c9a189271fa2e4cdbb2df552c3cc668e4c3ca899dd29e25ecdd0551e7260e2594ebda52e77a4fd1461920d392ef1ecb73773469e5426b30e8ba695be1c9678581729d3d58b15b5cbccae5439831c9578564be456dc646fad7e9478d26b776f546d9543e856f59063128fbef65fcdd2a2e7b2a9249e4f8a757d9b76aea5b87c00c1b81c917810bf64a869fabe85df9078da62f7e91e7bc8f563dc827dc4f3f88e77f73dbaee96329b9fe250309acdba1e9a342e97ce1b9b4d4612391cf1f8728958bb612b2fe222448e463cda787321b7b09d628b329b8b114f53ef5ffdf9c8febd2f829343118fabd64fac5d35969aabda438e443c2c357676d518db42ea4f789c9cf038e171d2c6e582413910f134e70bff73f56d7b840ef1ec522dad4ce6c5d8d2108f52559f58aa7ffa125f211e95ae142bf59fda2d72423c6c97b3fff2a410626f108f424688ed13f3a4dd82789aea4f2ab1b72b99ab1688673d3ea2ecc616a6f500f1306a8814e9ea777dff87e7a5aa6cee2d77ef76fbe1614e8913d2f5e45039d687e72d6d28a5e4d85d3a5a3e3caf49e57b8f1d43476dede161fee49ece99d3478df4f02c5fe68550f26e6c9687a7b9e5a856a575cfc6c3838dd56a8db9464925d43b3ced533d879a95d3ffe652b265874793f732f26b2e7b0de1b0646e321f40302ac8518727536b4dd57b88addcb554389c30c248496915362e1784c890830ecf429830b55a895921c71c1ece6cfcd62187edad9d1cd44a88897142c98ba95a2bb9efe4bcd13ab71a6d66338ee660fe1f46e5658d21471c1ed48dcf37195b63b4b939e0f0bcc79bd6bed7a6ebaed81472bce149cc4fa9f45632a40aa11b9e86902265affd72c9d92b1672b4e1d1e5d0b564a8d9ccb1312626df351b4de221071b1eec6fcfd4f425e7fdbe5c568e353cb8cfddd06b8918a3eb8568c8a186a7393a6f6f485def739d230dcffb84ad5efa6bbe146b27071a9ed59ab58598ee6ace13a5b351e30c8f7aa7edf83fd725c6ac0439ccf03cbf47de9c5ac9afd17bf408f23e2e171594cb450839caf07cfa44d6e41c73cdab92470e323ccbbb14625acc9829f7313cab39c608713f5c564cd2687a281a39c4f02c8752d246a8b1a9e73647189e969e4b2cdb3ef27cd939c0f0247e8bd872652b11bdbff0a8758bf52df770a5a6ee85a761dac5deea3b5d5a5d78dac264e9f51b71e15908fda64a6a294d74ddc2d38c98266d64cfbc296ae1594ff6da8fd739d77c3528cd19830739b2c050f15a687119a5b295dc48f1734ca5e756aeca6cb674308e526936293c2e9755861c5878da31c492ae944ab9aeba5ce268cee5b23e806054725ce1e9fcf7868afcb721944addc86185e7136bcfc85663f4e5407254e1799ede23d73cbb5b2fca418507f142fd5a620c6d36de1c5378102572f7df9e65b25b52783c95fdb9a65e7a4ee6280465785243c81c3b57beac2125c393d89051f2e77ffa0c5b90852fc6f0a0e6eec9b9c752537c2786e7b799276708a1357c1186a753115aac98efbb4cda064ba79071b9689e85a5535e3ee10b303cad39e5d790b3d4be9a7fe14156f8b4b3dd4b5cddbcf03086505fa27c6a13caeec2835e5773c5fdccadb6980b8faf6cdd54bec5dabf690b8f42a8baee305933f5b4f074429eafb123a6afb5ccc2d3ff1ef66a9b5abb35c4c2e3ccdd522831771f7c7185679d6ab67e316ce952435f58c1005f54e151a4ccebe87cf13de608bea0c2b392e2766347fd9242c65f4ce15108b1bd45a8bd2a13ca6cae1c7c2185871f3ac592f27fbe49ada0c491867c118587a937e4eaed5baff85fa2297c0185e71fd2d6ca8a2de5123f83c2174f78fa61a696af395f5fb6cb095f38e179f58b21629fab098f4b9fd0339bebb48f094ff2e566cfe9adced62cb3a979164d6b13be58c2e3abee0f3da133b66e6158bef31c253ced6c9f27f454257c9184e753f6363fef6be3f67790f038f5eeb17ceb38a537858a842f8ef0607bbb6d117623e6533ec217467894a2427f564ad353becc66111ee4ca186a9f78a17b4c44785c4afbecb9a786dc99329b1b0d46957d00c1f01743785e539e18e26bbbf62dcfac0ebe10c28314f3b5b345c9deb2203ccab56e7e2d25526bd18df005109ed41cebc365df45e42eb3f98307d9264afcfaaf5bf3cc6c12e10b1f3c9f723da536951eae5c995e3c8e214a4aa1c65c12820e5e3cbaad5a214fa8b5e6c5ce2e1e84b0a95bdcdd564d7550529e0525130786e583e8e2d166e48ba5e51a29d438178f6bc4ddd2d5223a23848b6795a56c4fd17357a7b77854beea5b09b55376cc0a041db678d8437f6ef12957a9d0073a6af1a05eb5892d55afbd74478b0731458d553ac456a3e668164f265da859773af24d8564f1b45ad9b8bd86cb0b2187980f20988e8e583cbdb0712655efb5ed4a1db07812e2d464dcbb38356b3074bce251efdd4eed316c98cf3a5cf1bc648b29e58da5978d5b472bd2da646c1959e24594cc6fbd63e5fe38d32e5d1dac78d81d7a2cbfb985c9ed5ac5b3103ad4dd94c2f5d8298791461274a8e2597c2955af840b2d23eba123154f226dea3196f4b9d572e940c5c32ba5e790b1f6972cfd291e5fb6fc21720d39f6e44cf1344599d2b1569b88de96e279744c2de4c99b737d22c5839c35d45ccd21d5e8d0289e94dadbfb76265b679a021da2783c91a7d5eb6fa1f69443f13496f8fb8d5095f257a078385b637cd5bf1ea14e9f78942d6adcd4bd12f14337907ae2e9d54f15bed5cf7d0fe191983c071d9d781a5bf7da7a2da184525b994de6c493f89df46da62adc65818e4d3cebee997b886b512ea2a5894737b9d48a1252fa127b4847261e757da825746cad3ac4cc663e281f1d98789ed12b87aaddf1afe72b2ff1aca6e9d07aa839c46c9f251e4decddcd2f1d91fe57e249282d3aff562af9394789a717157bb76e2186d8fb241ec79a3363a4ff56266a92785e42c54ffb9453e246e2d9a6a9a17fab7625550d89079b376172b79252ef8f7878196b6c8c3965d6881df17cf7faa51ea3a6f4166bc4f389aaadeef7112ec78867bda164aea9f7de2ddb453c8c8b68b9979c9afa2a453cabb5a39752a3266a4a897898f3e70831a5dece878807b577bed7fe7c5f4ae8104ffaa4d4666e37978d0df1ac95dc5653e8696a4c5988675726b3d6b639eeb608f1b8ea4e6f3175ce5e251cd22999d2a8053a06f12887b4ad878b29a51aaacc6627bda14310cfdac69e7e7552d718caccb6a1494393970d7404e241f5c54cf55b56e752bb5c2e97ce02c4f3b0dddf2aa6e3f23e273fce38b95c94a0e30fcf3ec6d93c315ba81d62f6c3e30e912b57fdfade43ac0f8f5bdef7470c3d1f4be6c3c316f266ca212a4fee760f8ffaf34497cfadd9fb7de8d0c3932c576be48668b1569487c717f16a4e7555315a544cd08187e713f53e72af5132a69ab5e8b8031274d8e1c9c5f44f885e62757898314fe4904ae6f57c5ed0418787e173497d27d6dc3aec393c681f4248994afa2e752e3ae890c3f3ce5e57eafdb4105fd3118767a5a5ad8a9cfa26a478080b8a2a2074c0e171fbfab73d5d98ee7f0d6141417d432fc5a61242cc669826e870c383aa256c2e1972870cf5e5b2f0a0a30d0ff3cd85d45becdb5a45362e99ee77d5a0830d4f4b8cef7ebd6a9e1cea131e274f8359c383bcbeb556a935564c991a1ed67c1f6bceb5bbdb4dc3d398732e1b21634d292a1b820e343c28e15bea5fb5e5a9dccef06c66ebd5de2c11b16b0ce7df250a830e333c9afe21fb5c2e973a236648c33c66a523068b90e7726111f2a8a30c641803067488210c18d0018610e8f8821776e8e8c20474700143011d5b405909a3023ab490001d59c0c21508a0c30a4fa26cddfca1e55a7a6c69151ef596538a8cf891d1bfcc830e2a3c8a962257df1431e416ca818e293c2e3de5b2ed7377e99ca5f0a0f712b3e55c626c6bf5101d517892a1bbd7be15d9f7a20e283caf55f9baeed7dfe99b1bb8a2e3094f6b62cc33a54e989e920e273ce89836fc566c9f092d1d4d78da53cd3513377be52c810e26347f466c15dae754f2d472831fc3df8d5446d1b184f7dd88dd4bf7ccc4dc7bafb031e459b09936a143098eb8a57cded47cb1f6baa023098fb357bf1e52fb4c5d39b3f9ab70281a3a90f0f4c2f5b0e1fe33d77c6536153a838e233c8b9662fb86edb963180c06a132e830c2b36f1bbb1353b9ff9cc2fc177414e1412f31f48ba8faed2b96d9542de820c2839ab372082572fea5586a16740ce1c9a48f3fdff6fbbafecc26ef157408e1790eb14b9ff47dbbc739081d41785635cf4d462d35ffb5207400e1496fa4f6f562f733543f78544acd2dad96ca7169fe41870f9e7edccc392f5589dfbd5e3c281573b7da0a5b6f42cd84174f6ea3e60ba54f8b39fa65b28b27e53f6b97da534c1d4c74f130b456632a75ce172dcac5c3dc73caebc87931192b4c70f16c7bc9ce9d72d5b5874c6ef13cb769db21b257ecd6dbe2d1e67adba95c5c2a39a7462d1ea6d8ce5e592b36769ed944cc8416cfc34fc98a6962e9ad4c060a93593ccd917fb3faa756f57abb0813593cc8dc2d5c299f339b2926b1604d6d9c49a1bb5b4f3798c0e241eb92ae63e674eccb6536311b161e62f28a47f9fb2a674bcfd9f1bae269fedce1f2326bf950b5e2698d891a7a2a7afd5463acc8b6fae94af9c921d5ff8666e9154c56f128d4de5aab14a74c883a26aa785223d67e4d55192387a9789c97a3b64aa997e97f3926a80082c92974fdae64ffb0d56f629a98e2e1a78ffdda87544b9cb0140f63aaad74ee6a937bfb9a90e259ce9025f5989ad37914cf6be5ac8bf132513cbfd859ea5dcfbbb4a1503cef1f396eec29a51423c49880e259fc9dec13a5854c91dd30f9c493aa2f9342e873a9c49405134f3ca9faa5baaa44560c3963b060d28967e1e7ab6a8aa9bcda329b6971e2d1e72bf97a9eda62fe94d64a9204934d3cfcb9ceb6bddc87af89e7b1f5081f91b3e7632a0b934c3ca97bbfbd562d215c4c2a104c30f138e67261ea7f9dd9e4217eb90c7125f181c9251e5f4eee2f615a8929a5a1788b7bce8f1e97cba73494209a9677b9f02e4c2cf1a073e8daa154269578907e6762fbbfc969a509259e4eabbd6df2e62a31fe241e54e467c8bdd4502346289848a2317e4d533ae49c364b91787ee937629a52e95ba909269050489d21bf4466ad8f78d4dbd78e9fbf4d081fc20ce1b00869344e780c79169cf038e17ca6d366245b6915e408df450df9c25f2ba9cb6c0ef937302bad928ab9d22a88b36193463c4a99e2445dcbb6b7558a8309239e4eaff317f3a3db6c0ed369cc4e186d3059c4d35cb191b14e6db33d438389225aad6367cbd67be24dc4a31a72af54bac4fc96caef194c10f17c5b4d9a1636e75cab3fc4e39825e723768ee8e15a709818e279c95db5d67c1153c9b1106a19e54abb92624ca5558bbd435cc7b7569d333721c4938a612a449d5a1527f52894268378f89dafda97aa88e4602288a71b25e6c83d554feeb9e968363c2e5d3009c4b3fc1c7bb945ac11314e13403cbb36dfd3b6c61a61dacca652e372f182c91f1ec5f5da8df1bdd3f69fd99634f1c3e3e9d5e6425eadecf9fdca3e3cbf2921739498d25f65267c78b0bba94c0c714aadbd7b781a722ff7bead386d2f3d3cec1b7b52e97db11b537978d81fee426f7943ec351e1ed7a9bcbc354d9934e91d1ec53e19ee6b8a58256366f383705e059304267678b49327a6fe3b17fbe73a3c8c1d7a0f2965b856d3e149bd6ab5cf848829b59fc383dca9e48cfab9f5f5f5289c1f89c5440e0f36a65a6ae4949fce1c8787d1bdb70b79ae754fcb7c00c1684ce0f0f43694ae1432a78b95d21598bce1712e9dd3bb2b76285373c3e3da73eb942533b6b85866b30d4fafea44f7be4b5d6ac986a7d36bae2d4df4dd4bad353c0a61fa638f506397d8a9e151bed6d94a9534ad86506673c886c3d279b767bcdbf8404dc393de89fb93fa324de642501ea3e1c9c4cbd743f54dc9ea6778b4d16228314cecd4b996d9543c4cccd0ba7de7a3a7f264c665787a591f13aed4c9b1b7c8f038ae7fe364cde9bbd3cce606b36a988c013df3665ffe2fa16d6e13313c6e2dd674993677ddaa994dce86c57fa5a34149c3240c8cb1f5d5ba4bb5861283413db5c79e93e25e29b3f9265f785a9552cf0eadce987881b5a9a7ceda2ee58bb80bca75538a5031420a576633b9f0b46cdf9dd0a9b614b5dbc2939872dfa92ce15bafaa85873d54ca892d462d2df7b2f0b8ff4546d5f09733f799cd0e9b8109169ef67656d54de6e6efaff0b45b8d68217e2f25659ad9442b3cb90dbdbd337f55785227ca84ea29d59cfe547876a1b70a9f7bfb66e753789ca642e7d452ebb95fa90c13293cb9382957cd1fa56c755178145afdecd37533f6ab41e169878a0b79b7f6c68f507d983c21b1ab44b4d4b26636550f13273cad99e25fbce9255d889af0603a94545b9414a8848fea34692047411003200802c198d72a0083130020281c1c91468301a964dcd6d61480044c5c5e7e3e2e2014c6c2914020128682511044711003300cc530100381144e5a8799001e4c5388a0e5b9ced0bbff383cb1dbf010399be84f6acea1a1faf999482be95389b5fbcf92ef957b455d23dcab02b19b913c1ab1259e7b66e7a58817ba9e5cf9fc0f3aa99776bc03549253229b0e6c0d03e3e5712480c51b9337b2dad549952477847979ba23adedaa24f4c608941a51dbd25b7ec7c32346a6c8d86b35b3a6f1e150ebecbfb6d306a6476fb8174bb16dca199d09901c14c83348444ec76f15f39775203d67e0f7a8b7387fe4b898c1a12be65196b6160ae876180070b2cafc61bab0d8726d81b124578b043181f3d4f269d8dbea166292087325b9eddfd73ad660621acadbee0586358f22861339ef6745220f3f0471cb84d8fc8708382365d72910c46377bb88d64c20481d4a284ea0641db80c7288443b295dd9d630b549ea2af8900fc731edd46ffc5b850c5fc09ba0a8dda4686c4a6ad424fe021a3c0d479694148845ce8f33965ddd04d430b9f125c8512e143707da13e308854f4397751289cc7109334755026e103b18359e8348e0a2728cd2e50ff417d9e62d424b183fa70240461979f53dcc2770162ff2c77136f13bfbcc0d6669266a92dfa5cd811b3f16970d7f7cdb12529f6915a8fcb47585f39860330d1bb48869c9acccc0939125a8384b858760e9342211d4f3f4938e9b2fd0f28c223ce4735cb2102c63ce2d0f3fd7ded05e95ded6f75a85bd562dc24905abc9d4c6b6bd17247a29aa065f82754b4a187ddd4fd87d4f8f09351d3d0e8c5040481615db1e01972e7a8c930b9792c83dcf7290428fd9c7937d82d10db14ef627c5b7dbe937020ea88011f1da751768e7ffb3caa38df1fe568494329ebb640a414e544470e1c07b3c43424991926eef8e626431c97379554c3f27e8290b9ea8c82d9654696c54e218c75da13564e7bd96dcc2698f2381a39848af468dd3a1ef98e380ef48af23303d3f918046ba8bfd2e09acd9d3d5ebfeb70b10672ff220bbfab9105cece1bf8b0533be8ecaa5b961aa4c4c6c5862ff179e152ceda0d37cec36568f7b47feb57ef322e85f38463b96fc676539271f3d71d93031ae271a3b7c8e3f6ab9525c7d22be8e1a4497553b948f89cdbe0bba09f6e5d8362b5b2aab9fa7c9479ba98aa16983814c5e6e9a501fcf8db91b739947e900e91a076c253575f8f895a7434374c13471f5756ff204b9af91ce4b2f03ed2bd58f28e20442f6fdff076834b858a3daba9c20d0fde00f2e6902b80a76ff078b0461567723c009695aa0b2ca98a61de7baa8bd5740eaef8a47b14e31b195ad8cba1f340f42c7c1282ac6ff65e97418db2e33b2959c3cfb9a524fcfa22a0209fe9885555bf3a72bffbdb69c7b51ada5783de748ad273ac4e686439ba477ed457088c2babc286cf55070541de3cf3c0588b398f51bb8d768037e924fdead4910e3bd4f05edc66ec96091e881f1a8125a970c0d6b93119f182e232e048f1f52caab0ce46d6072c18f1f3a0e687e663e1c9cec90b44e571ad0dd4c0a49f2e359a642cf6142bf0ce8262821ddc48aa5219b0e4c3e918773f0023a1ac0340eddb13546da63fbeb00ee5437c1c6bf530e656c38f0f1a7fcfd03fc49dfaedda821694ea2326a311f2aa254c354f2e608b3a12b69dc50f5966d8d5845439a340a4f903f6f28190b8615a830eebc8f9c8d7d781188303b5cffa9c0f3199a22e84ced7759a86c09d41d408fd41986536dd85b1b1df8d572262414a7e9153b5d09f2153b5d6bdf0af490a5c3a2b0d8e972961f76843b95cad3b3cad9b0faef2b31a9ee158c883318bf08d081963ccf31b46b664019c6bdb9a8943723a04f6646a691096a92ed3ec2f32d6568faa6a1db7b6ab1d3956b2d769ab53c6f343a9d497c621cb60234f1c43295db05655c581871afbfe1134a3c89fd3e17da878a223d1d524338150201eb6b1d9f09f408187692783a4397573e9971e18b8e7d2311a88822e2c1b791c90432e3bcbd5e3686c24b61f7f410afaaffb78858c472962cc16dc6e193d3314f77f0b08ce4fb89218d6908ac20d6a1cd9452c72118b827b3ef5d868db92e2fdc0ddff748fdaa117d120df98b2e96ad7941918b986c40f754325c21c6ee04794c09e3894b5d0ed5258c8858be358a5f12dffa13f5f2fa8354a857ca37561f678a67283d96ee4aebb86c2f3dbc44fc2a47f33b51842986389f62929f7d94e51dad695bd6ea4cf865f3559ea234bb04716e0a5e554d9864c889045a229bd6d7385f9006d6976dd1066cd048fb090174eefd7256d1aa43d0e4f0e8f82507b5170bcfb29c20074567af752d280605a35e021c6bcc81b3bd8733d258342b7389c78c88f2c72cf5551525e109e41219363a24d1c4cc05838dd0dfc9916048d455043354faf20804479000fe882176fcc246ec6c6c730992d0d32d6939e573e6af19d9f0a80a7fbeaf8d7ea1cdaac411c7c53c8f4fa5b20dd79560fb016208e39a7db3de4887e96ebd3d2c1b9027acfa1d6239bb9ec67366ff6ba8b32f6bea6c50d5383d2f6dcee3046f02090b914c5df2131fbc7ed26f480ef490344771f15e4f7d22e39a95d26e5963b8237eb0c200bf63341954c4b910588fd169345d59d328f86fd54b4bba3f256bf4a7d6ed8301372631a4976e77ac852020e461726f382a09a305e4885c631fa85393fb00d93d8636589db81ba9494d310593703045f94e9ff54e2e17dd1b095d44153532bb955df2b9736292f16d4b98cdded7f685016411465782c6590010e44cc3b4bec7a16a62d9934fe58cdb69cc5952272faa3dc6710c199131894fb326c193a3298c57f83b81da48b03c4ecaa5c8c89b61440c04b0c2394d27f4e9a50f04d0ac4ad9dcfb9e0413457f0e84c03d184dd36a88af68b097c68774806101abc70c0e9bff0652004293aa1e146468fe226f9e28ac6896bdda1290ed95881a478d3de884fdc7c4a804bba22d165f2e060b656afc93fdf7387a0f50f0994d30e890c945ff6d0e8b5543483b007a90a4073e022417057fcc2da6c209abd77ad9dae7b5e9f4bc50c60e6dfeeed7438a95c01e86141714a09822fce995e0279183c1539a648609f6d9b790623bd13e47e2debc57e5cf88ada20a62df07bbe1af4346a435c0b0fb52d3d3ff1dd57b8034f8b670600ef51adcd090ac69a006b354dab2376a553d68833c0e4a64b0252d548d037f014ebe08067a2195bd4d6734c198a49e72b1da676c98a2fca0b8c38f930fce697431552b9e6dfd99fda5164dc2b84200a3ed1f12321ef7595bb00bf0d5bba69d2e9351b697478d1dbd72f8ed82335324fa992b99e4a86f4788dec26742cd6de08be387c7a141bca176706cdbfa5d4f88cd8b49d4f9a0b7c9c85b936777577963b6eebdeb2228b714a49aff10b9f86d17200b4e76023eda0f1da024ceac650a065bfb3c0edbac6fbcb85cda2279fc09c2080381e007efbdb75b5609eaea160831d092586d0b126ee1681565f86968de574115312744f5cb4390c9b15f0c2d5ea7d72025e14019347f9dfb98d116a956510b069e576e68cbcd2e38737d01d3e83d12ca2b95190d40b433d5c6b45692c30fda4e98357b6bb334b1b7e1ec9e26ae067e2f08a70047c9eaae510671e7051da98cbc188e1e1787fd4e8c028e1dfb2d78876284a25a6566ee06831d3d6db8f446b0f3a5495f403394728a66e3c267b773214f8e17b96ce0d5675800f56e24e89e3542cae4c0f926a7b3b30d7704735929a9864d6a399cddf7408680681a1cc78744e146ba74ce002dd9fe643307c3fc7ac190ac201d9fda6f43996fdff48938e770e7a44121ae907ddc39ebf3946bbe0880a3ef0e3e2bc0990dc55f7f39da505574284651ac03512b7c3fb3cd59586ced06b8a7be83947112831ca640af21f104a16b50cbf51186dc983628a1b02c1922c038a67b68eac080831eddab34ece28319b37f3214f5bae88cf8277816c744ff3e0ca726e87a40e88f0fae40d36001e15da0b6cfda2676dd404ac8bf7085f2b0a447cd79ef75fd5f22a0869fe067e43b3d236c1062122ca50affa4bb36a9a93dcbf06625ba10596deeda2d44c448fa5c25a91662a849614fa1772acf0c18d307c94c568fe299a89a0022f306905adfaa53c33a1732b5c183cce40ba8a7217217c182a4c8dca93880415a4241558b7de16bda5cb3eeea033bb696d3f8597dd7e952a6e6f8c7f3401edf96b0aa430655030d6aaf26aa23fa36fdf0a33526026819bdea41f391af73d0538a2557d610da58085d129288cd4f76ac0981cde525fa44d2ca191ccbda1e440d3ea0c7f4c5711294be81d36b6845e7bd93088305f99192c065b40cd14a09f329eca577b9d2ce18dddfe1c83966340780341b292f0732a112dc886495e3bad52099f269eab49087e0f18f46064f8a2d978234581b44ccd6d564d8929f4e53bc7d8c10507474a5dca297721930ca889c6063189df7737163d2890615cd27811c8acbf69aa09b8c8505f1f61705d5dab9e062f12e449df37d77b2c1811eeca6b6b1bd1e672112d170aca452a0a053d45b24795a3e915f12d3e69d86e4d25fb5a14d94e6624287451d67d18d0a0c80b85e955865805efd80f01cb7f3b2c7a858f9a8af28feab797f4c90b0b973462edc7b6e66e725329f11f2466db24da962e8442cf73736e751d9d112a24e8edf92a92007d7c91eeea25c37e44aeb1e9f6715f8970ed91c2cb833c2fb04dab7bc5fe76b905d52766376a67448754976bbecdaec004ab75857cb0ecc6e96e9ca243b9c3b1dbb1977ca46f7550613db1d5dc705d3d1007f17e42f46889621fccd3c9bafb54a804adf073a68d484788fc7e2230a2daf21d1775978caba3183dd155ec4a9407c1af312acd9cf6d8d32932d24150a92861b48673d50cef85bdc04f185ece511d1bbd9e1760fa83d853081904bcee8c657228b5d79811ff0545b10ed6f109dd1586b9c6416eae550568a9cb841ab845974f6b4dddcd9712cd9e5caebbcf60f4201952fcd1043bff4fd4f0e6b401af79f7a2763e5f1b4becb59ccce65a9fea4c8037997072a60db4390d0a31999f11f021eb79f869a693b9a86ea43b826dd326ba3f2c1182d3bf5b024030ca110dd9f753f2b159ad6f6d05ac1219b0ec85ddfdd9b13676e710b4ea83a2983eef04e31f4c42d279b4df7f07f1957b85110b9f5d79cbdaf8c2eff3c07dd2862ce8030ff15af6350078efdcbd0242f38483b43599cb434003d3c56b3b10a46a9d4c011b1430d09534dca4e2af9cc7c4a9d043f7e4d705dbe3b23868a58d1007851e8b908a23618be33bb7d26d327801ad9b6a6c0b10f7485f075ac604e7e8dae920d3ce9d80953c22de19f693e815f4cb40b870dfe4cae63108bdb8ef2471f97798bbc4f0099650f37dfecf3dea9403ff8a3c7e57dbc06f910ae87f479b44039cb7edfa6fcb196bc5a6798a1320b000930439de541adc1419c0e5776d3dfd756a3199f2950abc4ee4ce7524607a81a3ed04424081247aa70c8584588328b72c56d1d23209dbfbb4882b5f247dbe94b072710e68614ac53f866cb2cc05ba7c83605e9f6e0db1662973ea0fb1a7487ae44a94daad3f23cd3a3d4c4e6b7bc090f4dd0f2a83d7c73aab0daea7e3791c2e517257d8608259c9420cac69b51f8634aa7ab837eabdb6707f5033d317214899844d6e4031f8606f34eab06c8aa75dd8a769a1da2ce9e40a3e32c4fa466fdb9d489bf4a51e7281572944ce375c5c199647ba71122072366fa9c223477d27933ddb44ab21bb31a6bdb00713066a71f9d5302cc84935ccd82932651ea9e3121a258328e4668231fa5926b2d38ac20e4888d6f57ba3c17e2c387b418d0ffc509f036369ce272bd2d7a141215aa22371e2f1a3bb4fd2135517d47f7bfacfa1a06448dd5e0e464cdd106e70ccdb353ef3e57c8fd1d015cb46cb3c5d2824065016136421d67d084218f68c202ae785823eba61fa492fe2ee22e2f390ce0aadf50661c301d042677afab72dd155d70269709a9cc742554f54b2d9d0b2153c283b9b5236ec930b1162a0b8ade9a7899b55189778258f86a361e3431991cf63bc2738aed09c7b450cc5f1b356c8f5d5c7300306436492491fce2b4368424784e39a04e3a09f99f02e41be94c25f399f7d296bd5ca42c30aaa20a9f34e35e6c59b15741583be6e63b74e886247ef7ff244e3591c3e83a95c7fc3cbfc232a9ab4df4e24c39029d35b8168771df9ae935f2e8480b968e0eba264a44a5af60ee4a3da0acc0cd1d8cb2953b995d5e89a3ae410bbde14efdc8edd1f9459053e2effe6d5587a1b8142197aa6eeaadd953729d5451dfe04cb7e7d5b86cb317d1506f7e6e822c59e72c2f3e322fe62e693f1dab3746bf71fda29d436e128fcb813890f0ae0085cd24293f66755aaac5454e4e8f22e1b53a072b6c700449be7413a4c99087f605d8f1620e9c4ac3753dfd586e99dd25415c6d53a5f7e3905504e62165a5447682bdc91cb4b443eb10fc09999736209f8243952acfcb814de92c19e550b03422f2a9643086509db1d828f37f8b68264071a0747ad1972fbe31974ea59e75fa34419740a2e8a192ed68c721a21321b4d0ed348bc8797cd1e750871f0de827d6e63098339be98f1214328376cea7eba816b1b0c3cc0e100efe16b309c11aae935bb77ac9c1679a34458b0d6d8d1fc0e41ec16bbd82bc8bc00abc6009ff329c39bbbfaa872815bb89f69be8941d95c42cc09d8448d60ba0610f28347f0e05ff9bb05af28530df87402f3f26e864d7cbc6d90b119758d1db82f82b488f1a0776f0e159e7f8f02ec04977c6690201e4c7072cc9a67ad6ca50d9c13d79d820c8eeaa1b1fdcd46f290d44bedfe3dd4ceb8fe3fe8c813051434e566854f0d2073cacbfe058626fc1bbbbd910e62e6bc28bd7c75e38fcfbc0b1ac12b4aa464996f6e8db2095337793096561ef508726ef48809838e40a019d3d8cfe441b9abbab8d58aeee09f97f51d68f1ebf987bc00bfbff01f094532f92c97a4c960726bc531a9fdf0aeee74b7c10edfeca95778fa6307fccedfbf34a64947ecdf379302e1ed83158efe66a7a05ab008c69e419b67c8c3e2a3c299489350e8478a781b70960301ccc52915ea98cb3c7c013de53306b3ea6fb414bdc8a5e90ae1ef00486706423cfe8d0b0e202926d3f261e7a72ec4e24cdcbd32fcedba05d4680f57565c5c8b1d6e83d11e244fce4e8e5189ea8c3de1299a1533c2235d534fd4e569846ba2d7a35e30cdeea5b5fa028022238d54382814fdd8e16543cb5bf0834ceab9daedabf5dce8b610a430d9674285da69602bc7a8b98deb5cf8d1904424c6b5f72b6d512f87ceebc09ad3d35a8a8cbce5a45945d9cdb1313e9c519787a1687bdd998d4b46710e26e044ee9fccc48949caae78a904264e330bc4dc89b27c572f3b0d24642e2a404e4a97e9578d726b07bc027ada43574af0419c8d79a3df7486a52ca51da8f661d27226214f5195b86ca6837be0827c1e51b7ad723283ad824c9c665b980c26c9bb10d02fa7169f33ae056b6bc6d2cc27af77910ea7e97e4630c482253515b9ec7d3e579a22ba86d9fbf3f5d503bb7249b372533d5303513477028c2b666c87342368b732b92ad48dfb4025e69a434b6ae1f24300b088ce73820d64420fac989acc84d30ccf6b85a98a53b8c53cb0b0dca86393e12d7c567fd0c22db9ae4d9768840c0d4628881121c810bc17478da5a121d46c1b84a1b6ba596fd6d4ab664eac15af8dffc9061205e52bc49b6ecf3438ec4f72783d05a9042729eee7d485932ea397474f3b8a1acc4ab34f1eb1d896d607d233cc278e45f1cde2c0a8d574e01f12a6c52932480124d0efd855f77060533585d34218c0ca2c867455d22e8a7a8382ac1da6689262db031cf7f89a3d81f85b1252ae1a027b7fec5daf2f14856436a3514ed6868c7d42d45aad032e43d4e04e72a4b3315bbe095d8210b25f37aab625dd18b4d213ed5289dae0ae07fab6e00711489ec835afe4687f006a43c64bb9dd92e6bf77aa2f9bbbb79ab55587313528cd7d0ce9db5e7c32ac0f896b155b67d60d06c9854c1186ecb846c186687b2b34f154d02798ad5309e48169159e0c23044aa3f2b277b2451e91f541381a6648d2cf21bd55df96d28f6b33532426ee7365b8eb79dac920ddcaadb5c8e753b3f162db9df5da9cac1c99c92e14ea14140fe6e2f8aa9db23b203a70d7797ada7ec4f32aaa53180a61b93327c4a5603083352322625908028c6bd988626a50309b038192b8d91019727c8d1e81a2e61380c0fc6acf20adaf7f2a4ae312e97b4b9fc04bd712f443db7e774738c49a2bfa16ef4257dbaa6f8edefa3fced348b4d7286f36487787b623fa7eabe00d517e9107209d6eeda96dab4a72c4ae3532660feaf83fc8422bb2587e23e3220a95432a5188de1087b635c522242de678d25e9f118671de27726a98eee885cf5d4313726ba6038335cdfefb89a420e72e12df0b413099d7b4b301c0f5078081119ff2d48d4601c08ad3c0d1e7244a70096b6065376511d041725e5ec331c8e2a7a2648a20bb5630cb30cc683be6350c26ed8caf8d6dbb057175bb9fafa49d2a23bf542eb77abdaef202fc702330895cd2715ddeea1d1bd5eb40182e32eb605f6b48b2fe4e0542d7c7481cd936f3f5632125509d33d23b55dc1a4607cb639b5818e0a03902e6baefb9dfbfe072f79686842b47c6ce0c7b0d4053186040dc14816446c81372ffb003ab8322314e96c103c20d596f1fa0bf0455ce81baca7dd1256aabe876d2baefa820e459c79e59bcda811112a826bb2ba3d9fd0fc7de036ce4738c0e465fec2dc1aaa0c8d23459e938e47eae51e1a1f364bd9984ef0c5340303fd87e0185c207d0decae051aae0c59e9b98a3ece765178f1400c338f443cc1228b54a12d805821a81613e5a6d91d13e72cd940b1601d363f5c6d78d165368ac9dc8522d17ca2992a1efb2e698e01bdb031b48a58210eec418a68697fbdc80854097837091c04daa9b7886c3343fdd9e0d8e303ad34a2e7fe3b3927090bd806b541ce5b90513f9c2e356bc179fb0f73eccf1f130fd972ec8abd8c1f18dbc0e2d7bcdd60ce7987207e9027db6098f9922ebadfba33dc09985e0c2d36002ea3040f2a6e3e344af953d9525655833b1bb7881888099dab3b225d27303a489247085545295aceafb45815e20c2ca5cf585a4d91e7802ab645602fe0fd0cc755e5e3091d3ba196c038a29e2d0ab0c0c8e3281e42cbbc365064dd4047262800327b986d8a074792d357ef9997a461873b135312b0f97d090bd08103181c99ae0cdab82dea62922226ff1d4564916c79b9457564d066db8c13bd25ce188f4249dcf995c209a8c86e025d8a4d7eb2de05bbdc7ab6e6bafcbe8c33081f869412ad629b6a31d1070f427340916abedc0f2a44db8df23193aec915f7cc1633a68f5f6f6551fef3eb4d4da6cc5abdc0f4e133594f070f8d5806e8b947295132dc93faa29874b7e1a648711f60ed03f3eac02bf075050c69c43ae007e442f3766cec747f1f873dd51f4c130b5459a2ab178fcd5b325cc1404451b22d9f5ef8a59d4329c05aa2c3c439e8d44bfbd55a568ed873cea159ef7c30e83631d4dfc81f13043e4bd1563caf6ea653c2b8e0fa15409d147f35e02e29771f6676ee4855269cfdf4e03f48ba08e1b46c488ba0ffc32cec910b6d483775ce8b979e74f1c00fa0a6caa49bc8c7e122f8ead2959643fd1e55baa160c904f6e7f100d9406abb30c7e1d1c7b35279c146ca3ec4eeb7cb37101a816ce3551ce9d46c3b210dee481432417a64927b93d9c055dc05c48d004e0f9ba8799654d99a20c5c14ced79cccf8c70389023e9b9ee4131e89c7355141e77e2bc017461df17cf45aa230d45711d5d516f66941e4b47af018d29f71e879295645e6dc3e4eb797e56092a5645542fa52c0c086babdf720e7d7d41fb09cafa69e77b984db4ed0b7d64adfa7c7e6a3f1781c4dfc98e78042ba8a52e859d65e3405d3b19afe194f5fba2886fd9e70a8defd4d692990c56b54966906d715a49fab02a3a9b93ef0a9473e6a55c55aa27cf14d394969ea316972a68738e568c2a243d452dc428c34e382d6b55a6e6d4927199342942ed90c8ed9fd3a0e3bd4e8d8e95f435f8d6df7325ce1d110cd5f00f65a3a772bfdf02152d44e53e4933bee273c7353c824f4a498552b4345351a2723e5cd6b075dc5e02a0b56d61ff6ec1f80f2f8c80ff2943a19d62d1e2fdd9c3b5a2ed5258a62da21311717f15669e40e8b2bca0ea4af0506315fa39c8aee6772f3f351491ab74fb7b901359c9e40d484606f4a764e21f1696e329140ae0406971efd12260f83b25f7a4641868e24324b521567946c5b74f6b954bf906948135d078dc8818ecc30688a37f0c6e118639a60dd1a21d00011f79a342e3574d05abf3c9e0766d290afc68219c8e01fce565d27e699ec26626973116ffb5e07b3ade0bf512c4565e18ab300c1a31c084a0857ee64c7ca0a2ea826bf2e17789825d1aa36956cbf0bea487097686833fccadea2f7435cbd5065e14afcf555e182abf789fad779842ddc98eb6457e1210a3cd5e6b244137fa8a5b8111d8e43ac2193843fd58c83435c2867eb884967e1feee461b5e5d2352ed87ee9079e5b2c09592522135fcc1569ad49737b30d4abcf0b1c144aa50b354daea5dd82539d6fe304dab47108426893d38cd3a033295071d7b4679a9cbf038f39b3e0a5e03055cd643e9cc72348dc955fd3a9a53d5a51b5b9338da00272fd60668815c9575a878acc56f32df3bf64eef4be0e21891df285276a9892ba997f0870d308564563e25d6c7654c30772ef9b60d4efe26f7081c38064a4fe7a6964ea7fc6795347ec489876f14a1a2b3385f12e8fe8515c36a63fae36fa32c4b20510369a9ccf3c24f14c312cd31181adc711c9433d87197d1556cc466efc7acf74a6f82788eb3fc8e81d97a3432b79b4daba5d64ac6d90d4d40ebc96ac714ae393d733cf8c6cf29989094b0808d6905e0b2f55680ded01a4d09e927c06cf66885f9e61a11af0d5f4b461b45371b47969a32eb7f936bd22c83405ab4af8e78f39015aef5ab5cabd17440e673698f68a60cf2653407f22bfde0210cd804d7ad25433829eb8934f362e7db0702f4fc5fa098b0b328752e7d7fce1d4c3b0b15a4befa75bdf709e02d5e0e40ea5a932231908bf01133ff73921982e2b226f12b7bbf91d7c22b8c104ec6db4c6a80b6228d0420159ef01d3105f216595d913e88d238675da1301aadbcca9a6afe54c883af6fa88b942d97fb6a5fca8f44e664b6b15baa7ee94f253e99ecc96b2ea39677296a57658146c7c408dee8dce6c2af8a3e1b5b669985de72f62d8f79ca05c8cd562daf98e457afae9143e4d25b968e8ed4f9d19d9c91a59ccad5930b5ebbdc6578afda138c00a855addc627f245ac5572eea5a6c38eb12a0b65ac0e23f732c472b1415e0ec217770f9b2f0127424551d8a4d04cb1ab00dde198a675848a0fcafaeeddb234b3b516513890ede974210039bc70a6136629ea6a465075dc68b01bad6ad086dc668edb94ea921d074a8192b9266c4ea924fc587dbb2402272dcf58344a4d4db288fabe7bb1392a83580a94c2561939e6e9b8fbbd66746b67e512b3d2621fc33661d2102452b44f353b20e93137353492d44491d824e6c57d8446f9f0d31195c7769886bea98324ff7af740cc691d9c4fda793c75ec9f2319b00089aebd4c08fa0dfc0bcea14511fd33a307517cba534ab8784904adb403ba702ce6420ea236a8dd47655e70da8366b6e32b624541b2128824f9d079062215e73885148ff3b028e036178fc5e04126667af8dee4cd7b6a4b8814eeb27a4ad55a71c1e02a3f4d22b4f15ff7a5ec9b081ee703a7b012f83f9af6e28a1babf4ffa4fcdbfa2be485f237c18bf14c75e537fe1ea5587ed63d59050f967862ec8cacf086965cc4a607a48ac63de95666adb7cbc436c5319ac874bd5f769c66c179d84b25fcd34c74e09e6090e253f038ccb3a271b5823dc0da14857719b7dcd92e39a1594b242538848af102fa1feeddcbff16a81e4e4c406185a2ed8af711f2a2441f490900c8aaea89dfb7f8986e4e2a268c6fd45afa2954128263de6252b91cc5f8ad69c345db3062e7f99c82d9a838cf84cc6d54c37707c930649ae90f9e7a088be3233013d5cb2ce993d8c7e5339243a6c61438dafc5bea3a090c0788013b4d21c074c1fdc749a9f41e1c1ba217e33e958c6757f594a710bffa07fdf0884b7f5ed1119f58732104236ed6ec39c3a189515d29ae231593eea5ee668177ba03eb5cdc7cba687a05954390e556df7f2c0073f33245d6d279c3f3cd6f264be1cea6510ddd5499b3cc6b1da916ef48df5126d26dc3d2abdd026e65b061e3bd3744ee5fa1803489079a757aee860401f3cca09d9ea4e09a4fd8a1ebc9efb1c6f4aefd0002e67b68c7c96e299bd245927cc5d9792e9e3123beb569d6d532f819c10b952188f4debdf789d87af05278cc9e2f9ef255a4d47025eeac20b68427d86d62a33d9d01624e9eb1b64013920b8b7f1daf74379f922a668116c3f248c39e48cbde5b1ce645d81e220646422449f8504df33d34c1088eda0248a65472bd9e9ad71a022de7c8a5afe32d991c643a3ccaa97b87294bff65d166c460943b2db91828088f56a0be9214b535c60b60156185e98081cf7ad854df427b3937d40cea827360ac6b088d65368c7ac81f0781bc968322c74b115b0b436a5dba949696e8629277a4324e9598d5c7dedab4a573e86245112c91c5b37134a7e1654bbe6427b8b320e6ea40e31ff4b669496495e1fe8a908de54f80c47d0ea43948688d7151a4ea1005e718818641f733968f1d9c72e021b7d11a9fce441355aa13ce27e019ae4aa638665c03e16b4a9e73d4dba2cde088c3fa2171b6ce7408d37928d7546added9a74211672208614553683dfb06d4d94981c2ddcbd235e207bd848954574d4490131b10f2cbbdb9577160b0a8c813d957ffc3a29969423bfe87e1f904bd601bea8ad08987b4f406d9ac0480ffa19846754e21bfe6914e2c10e8d28ba5bb1a11d1489bbb89a765d763c12e855ce65a0b5d8a9a9c7cca12a117afbeb2d48848b7abebc5524450ea4fbf720a65aad27d417bb019e17cd33789e8d88c7a7834f83df4cb5935f263d404dd524ab53657324f705fb810cb8083b5b349cbb593bdf4420f1fb8ec5c126e9937760ccb3433bb045f25ab0e3513bf9615f32e9f88b0eb678d8a8ae6cd610277b7cfe139c3edb35fd4eaf323ecb7eaca1a9400f6da2ab02f0852b0f77f7ec560d72a94f49f709cb6f37f2323d79f692151f3bf30e7a599c6d2cbce036f92ab6bac86f9cfe985cc27e6a139ba06e4db35d92cb299a36289e464cac47950435aee8cdda436f197f9fadc3be1cba542b4ce62a41abdc5a20d19f352a1200b21f1341714a6814a1661061080742a12acc84b9a352b91a68d8320028f0e8e4fa2563f33cb80cc61de244c8815f7405428b3b7d184b0610efe56f02809c89b2f6c35eed638e30a5eeb29c7c5cfabbee01e9a3c5db1510fef8d0212910ff8d683b371765fe8d0152d5a884dc509c976b6ca5514d0953a52519858db230f782ad5086c2de71ed63c9ed103fa6aad5efb6d672b1beaf48db55122aab8d506d4c1b4c5b1420c0b3ff0a63b03f107b0127cf7855f5138d0cff212b38c4a5e836e0bd710fc27fd2f64c3af2927fc5121c3c7b6852bdebf409d2a6a198a9ce0f17f94da158f11b3cc375ea3003ed023c72bebce2d8b529badde3df62a7e3b7611ce8b4f266f547bfee2a108eb51696163fb7404dd1e00206717680bd0450b358e0443f323a231e3648b4843dfaf561d1f40b316853985e0e7e6b6b183a883e78b6fe052f7353de78497cfcdd1bfdc80dbd680b8dc34cf7b95c0376f23b268d2a8dd520c64862df0de08ee7f381d3900bc3b8faac11b44dd287220a7ce16d62389a83453f90d3255a3d889a24411fc049137c50571500d08f473d0f0780775c500607188b44a8840a480fe9da92679fd00ea08f8a03800f84cc81945a0f813dfbc90dd2d94ce40d0e74f54dd2150cc349ba66fa4dd28d3081d3da604162b707f01e237092d01c97a1e36af326e9ba0e4ed2ef368033134ed29115601bc3493af9022cd1e124e1ed558af9243ac1f677842f00161fc3b23849d76f8c93942d12dfa2065ffa4ed8384967552e15519195301db5408e5d1558671586bde885c07c9afa957a717bbc214ed2b40baa65f688cc942ee9b8d6bc9a6d4c824e92860fce896acc498a99a3c102afd37dd003d2c6297b55fd759b7034eed4d1249d846bfa1df3c0b5f15741c3c0298ea59388a8d732495facadc21279968bbf7aec041ef75a19fae5b52572c48b92980f4f6d64ace44bcff9917e3d14977880686307eae0d475251dfe3ee8fee6d00db15eddf262f85e5e1dcc3738afff3a0d1fea23493ad1fa622a4f7b2441c3c60f567dd5020f2034b3cf57be73f7237f7793fb9737868e3c614c8f0d7a5d7e57e310da3d3b5e0a30ec8028f4a910bd950f401b9b138f839a3fe996f2c8869c95dc4c3fc4cce3a6833cdbae2bbbf666e6094c1d3a4f243dc7ac3351b5a35a6b5e886bd0733b87b17418476b62cda792293ea20b0f126f42c80a5002f9f3f6913b38847a18d5922a386047c0cc305960c52d9993edc3ef76bd7d1667461e61340038795340180658e1bcdfca6cef83e3fb8ef7e1c46237ef45347db9f3f213b1ed71000cb1100a84d1165444d170035b142c2fecf4cac5df645021bb89e58cada71090b1fdca50bbe65a8fc5e081f1c6abec82f2fdc7fbcef49f026ed3e37cd6f3dc5c6afb1f62373ddc401d72ad4e567109a33d7dd8a132decfdeae094b9bc7ab727118d1a5eda41dc9782ca76d3876639d664095273d94f2632d1b6d6a4697dc105d9895df8a6f48563c1e76fa5b7fbfeabec5922983c3f2c085167af7a42e113b0654a869e7ea2ecd3ae5b8d038ebe2f0f29eb75aa811ca3437df9472e5d7dc5ff759050b34b525b610c605a7febc4045bce3bd1043348e1678d11e510f17513fca5a853ffe8f682e4aab33d1fbdb0dbb2c9afbbb7b7c2935b679cf292c6f0f03c7856ff2e530acf9a861f30f2bd232d42b3c27baee2cb7d9b45ca0768a61b8902712e06ed1e65cd00e912f43a61ee76e1ac3452a8b61dbaa37efbed3e527c4068f85ab7d90b21a79f54cd9eabb9677152fbc7b62c0dbfeb5b63b105310c48efb1ea855ef1d476bd9e657ab59e0389bdc9101c21963570772d8aa46684cac41a76de25279bf181eb35f5b6eb2904c783e2be599a9fb29eb2c8caa252ee494ea5f4caba60b866ab0651a4b0a29e38398d08fcbc4e941e3cd58e1a529559233d53de7231c7f91cb0ee262afe4040407ccae06328722d736f99f78dae8ef6ae6fe6e060507700833ed4ffe70e983e96a63c846ece7ae3635a39e21f818122082a8fdbf01591c6c873c8da5b6d79738c9b8e3bd506667c98bf5f008b21edbb154b62703d725dffbcdb89e4d237540a3f90a113bf946af8dfa2652447001093ed94fe62e2a69b2e9abc1d2db3014d95bc3852e0ddfeaf51ac366dfc8fdbc26612453bff09e38e7813e7172b0b3fbd794ee7195c5874376e6eb2c6de7018e5a2b382bbaa3f60cd98c87a3f738f63998e73ddb0e7435446fd7385d65bf2711dcfc207f4ebedafcafb60ecd1e634271f8bc46f42f68f621c4793a3609b96686f74ed8059cfbc7b837eedf8777f99d3361fb23ce21a03917c3c0792afa6a8ac9523da2393fc2aae5508e859574bf879df37b73dff02f59d9ab3d6cb7dada8a316be5174e5a7b44cfee200f08bc8ff66849580fcb71cb62bee95cf7fc79112c6dcffbdde52d262b4f0c9c528acdd4c012f39b5a9e7ba9ff49842acde3ecb5a67ba4e8f90e95bae9f055be881a6f243e8ca56612df6f151b1045a5e8043287cb786f4a72ca627a72d517c8856a2cb43b6b0517880bbe6473cc69f1b0e0b829034b91603a3e4a6f4a2fc5559da83197a0144680e342e160750d1f6bfaaab59d3d448bd2b8317298d9c02431df2b6c17df6163b54fadb6933b442934572a90d5dcce7dca147bbc9792c26812c546ca8041626191e02aada7557ab58ddd2ab451c9d8384ad8c8689828ef2d628fd5b5b4b2a7aeb14b392316322b8b2417190db5f2836df45ea9955676eb347127a5c14469611373a2a2a69738758edfca9a32abe3ce65e35a46e0f6f9b6e968cb97cd22d8b4bb06ce1a79aa4989dac50e76ec071ef9b122dee5a24394c8abd2245f37aca1923e91c6bd3fea0c057f5731cdfdb23542ba4b89c8278f56a1319faa405fdd3a828c7b2f95f8c9de2e349977c9e8cb738e10913715925e6fda2241be2a2b53904be7a35a437b3c4171ce6f4ac4ec59c2fe307d6663f09d0feb8fdda6beb310116121953fa1b76e44d6f507b2bc00d0791cb3d4b5d293a8c806e6366ac4a283e277cd72c64be12836bdf6c423185a936aced8fabb0c3447c5fee115e740fcabbc8b2302600f9af8a7e755c62d3675d72407201f72a4793c5d97d3b0d93953f3ab34237815399b93ff24942fb5c4afc50138cd6867615ea5f6b8060ff276688aef158508eab6b74e772084f7a9de2035fc088a4d03a921a789ca51525aed16f14b4dc942ef0d8c99b3a3018424da70c72ed7b6272710b4eed45f46483326dc359d0ea3529a683350f5cc0a7e8cd88ca725934fc41440186ccca6722b57a39999e9122064d3ed13200ad825657173029d5b94d99460792fe70874377af1101250f384243b55c9219786bc5137b971845eca1727810b4f001f09e5835b78129c651fbb6bcd238e6d7c57f017b5fe697a4afeb3e311e773f3360c01e5e623a953e59fdd79ad5e88f445ccb4770167893c8770ebb645d05ca25221a8f47c77f51cc11c92204b917fec5a668cd1ddf0c2f4cf29e37171904befc3ae676da8c5b6f979b533166472fb143d908a3afb9af383024cdb4f5798b3ad148dc043a64f85f087a4cbb95a51cc5889833caf28ffad477e7887fe94c66ff59c869c559a3054e5d17610ae35df981f27c005bbdb0d41ae138609388fa2a72c30975a9daf640bfdda145ac918a83706bdb271fa1a14fb440758f0304709d31886e8a75d1a42c14c90288ddbbeea42cb2f59e7a05bcf2f04c7df6ed5f5d96277772ae7b1846ef2987b55fd101b89fba71ff8bcd7b7aaa4a6a3c13707c57a09c118b543cddaf94bfbdb4bc077c1b94fc5cce6e842d0fd28d4063caf56189c683423df5a0c40e358bc069072c3d9f66ea543507748c5e7b877582851d6f10e3402319d0ef5bd69aab82fe602f13a051caf5a53afc7387f0ca69efd92dde33cd60ec5c003810f8af33d51b7696778bf91369bcdde3007836fec2280debcc6089cbff562b58b64f2c02a6d36026db2cf6b58f3630d9b7f5f913987f53a542ac2ba057a313542faab50d3e58fc69fbb03a916a1973f462bd4de485f18e207e1fc91628a915a80bc846b31ec91d61e9ea705ee223b9aaf5a932b6bc2fb4c00cf21a5ad6d8ba0493c73255685eb1a6fd5174318c70eb453250054efc5c642bfc6b04aa168b0f1936d357f80634fd5cd94718f1bd919932efb84b330cfa142e512c3b1b024ebe0b5d40695d62d02ea6cdf0fde9ffe8e13d29aaef8ac90518c0987a849e04955517254274f098147c9610c03f45d32da2ea5b49c5bce15ca25f0abf11c6f9ba3fcdd7c08bfd376778b05be5013cab14f4b9dd11f5edae4e73a904a9c8495cd1aa1d9baa79b3692528dbe84962e45becdb2e24f45753ba155306b1108eb121b51db36930bbe34f200f2b123ad96e7a38c081b4857fc9203bcfab7d9e551a8dc2a7169d314bb57e674393f28dae320a654791ba60f9fe4be229c8e10b8f7422579e4e1425524004c5b066daf13ce42f96c8724c5af3c916b384b7ddef0ece6dd5338150074fcf4467a8bfff45ccc7d24c5a32b8e11ae08da7ee26247de9354f9db087b3dfb5abbaeac8c0ab48fa6d404691eee0d2c0dc3da79f40bd386e95dcfa591b4d3196b84e0b84cadf03191b45b22d3dfc09cfee0df904502821de90b6482aaca9a3f35870ee259868dcdfa468a9191d69c17e3e1b85b65ca12820118ce83717d3ade54861b08023bc874e6b15750ae640891f5023e928ce92aeb2c83b82a00fd5d8857864641b6432797e3840229fec07079bc74813fed1d64354e2d9055dc28a3e32d9c533ea99f450a2f8bf7b4e2732e132e77a72602eb8f5e353b34c8a88827b010ce03aa3ea60bad63eaab10caceec88af27af2baa815883cd5187c686432f472804728f0568d98df599d3007ced9e81837cb1668fd94425380e221eda9f4c49dceaa314179a1e802d4b145bc8618d33877bc1ba2560ca65d97c113f9f4f96c55dc8820c2f74032f00071fa1544dbfecb5978b9bffba986ece0c2efaa973db7b9c8356ce441b9e8460609023d59d802e4a53c803553613c962f013eeec30f52467a1cfad166263b8bd94d23067a17488b7f7515ec9caec6dd9fa20c0f900c0797723bc286f67a3a4ac7690c46e7cac866562c7488ddf5ce64841ef11daa2188f134cd1464814b1214c78b43484396e5075ee133837829f290bc9dc1b9e47b4004463ed3b3dc033bd729aa08a9bf917c69e6f3b4a9f33fff4b230a03fb31bd5480352e95431630e284d758f3c03e38f302cafa62cc7f45b26e9ba412f9267b0ef8eb0d30725992d227d5bc0f0c6b53b27ee3370261be0f9fb7509efe28772c9e1138037d8512d274e57b22459a2a03298cafc08c5079770fc6381345b374fc81a47b8b2c677147e9357ee62189c8e298a6a60f26ac3a93e9941d362a634e58936afc1c0486911023e057c56162bd7bd85ad41028e5cc41d0b3750b0a6d001f3ffffffffffffffffffe305ff8da9350bd4b62fa54c2539c4ea4901d9814b29a594524a625091dda9510081d357818906f52a0b1c0b850aacfac18492247568d4d8fa2d421ee981be48cbc0c712b0afd5aaabcebdd7abd5acce3463a2a7d0bdf94309e5d869553b08b30eeff7133e9250d660a7a3d3c88d498da0f08184d28ba636797a4c1ed5f218c378d147f83842b9245162f6f84128f9361f4628aec9370de2c4c6d4a322944f8d1a1199f12628f90711ca2df64187feb0e76a7f0ca1a073ec596e2741c6b91f4228ff2725749efe4927a60a3e825012d4d5892d624fbc8b3e8050fc90aeaa31985615d9031f3f606bb3edb4f632dd5d4d7cb4a6cf8fbebb37f9f041b9b4983a31f1ae49591f3d2827ed419430ade141d9e2e3cbbd87bc09f90e8ab93e43bd0839f7ec4307e5d4df2565509fd65e2e0a3af3c8d89d4109f2640ff262062e4a1f7783a79defe7a08ed16309336e51fca83da65f5cb38e0e211d6394a00a336c51ee127d4e5c8e95e6b0da1966d4a2d46bda1da446392f8f16e52e79a74b98a424317a35d874a0f5d891c38b3176f060c62c4ad76eb2e896922f99a69da08b19b228289df73d87fc3f494b6698118bc29afdb59e6d8e9ede8245594f5242d5bd9e7cda7b45514d9ad9106ac36b9a5da4892122922606a6a161862bca3b763a87d2bc5e92588f19ad28998c3974e8f5d24f25ac28782859cdadfa648c76c62aca9e2d4e9f6879faeb9d1bc8060644446eb9304315a5caa0a367ba4e8f494a444444648c1e222263f4b85494c460f623b4c467293120cc404571b6bc3fc961e2c71234e314e7139d9932b38b5de9801264c0c68e12cc30453978277dd51427cbf93b8a8888d9816694a2ec26a3aba48adc4ffdad600629ca967aa55fcdc4d31d9d01c271b6b73346518c634a8fcaab8c2739b223c7c80ccc8e911ee80bde19a228e6d0385fd2d34f10322899a96d28ca49ce9bf1bb1c312dcd004549ead17a35a95f4ad26d61c6278a5f23f36f55ec7b8e01c30c4f147ff3e44e67f3cc8ce4e8719672e4d8e1c5716046274a7eb259654ede896bea81be680f80318313a5be18a1d4c8e456f2dd44490751be7d3afb2faa26ca312f940c3297fd9e3013856b378f9dc4cc5bbf61a21862d276899f4ac97acdb8c42a7a9492492a1527a7c20c4b74b2c4a634a5496fb93da31206f1b650d27b435d66b6a3870e35cca044e94d76b8768eb1bb4fa2f0a763bf8c2a6dc442314312a58d97dd9893772ca1f502470e1b35b001868d1e3a429036e289199128bc9b24474936ce80444195207fdb275682198f2896ffc63aa97711cc7044f97a55e39b6c4c92e48591d803331a51f03325c8584a8cb915ef0c4614e4d5933c23a4ee891af38c4514f4fe46a88c159e7f4e780e2841067084c00421288107b410331451be0fd24d7d4753f1a24494b554ec89a97ed9a84144498e2a2689692be93b93a007e261851987b8f5b6732a39e885091266182299c48f59db1935f62e44f9f3c924de7db052a2448852aba8aecff1e4d47d1a4459dc936849bb20ca19fb6de4a98f1c88627dac0b114da72603a22484879bad76bb7ee90fe53a0f9dbfa9f359c70fc5b5132adbe5e39d491f8af7da252839c56a7d880f65ff24ac9e3c4ac973da433168dcde6c7fb5ac87927f701393d89edf9e3c9474f99f8e6c97b8f7e0a1a4b1a34a5a4f579f3b1446de85dfe772bf8e1dca37aa4a49924ed7a1289a367f4ff0e95092447d934b75959caa9f437174149d7a82d424a7891cca3ddad44db40dbf328943d1bdf3993cede1505c8f9abf9d94db66c91b0ab24d2c31ed1cb356e386923ca6c4c98c76bacbb4a1a4f79625462b3399c386e2f9e97b77a59ea4c4d7500eefa1aa368dd7dcae86624ebfa374c790fd6aa7a1a827497fb27d7f4e66a3a17c625d8dd8f24c26c919cabb49dcce2746654dcc50b6934b0ed1eb13ddcb508e150d25952428f32c93a1a02733c7111e1762e5319446e3bdc84df1bd273194c4dbfaf4ed398ceec3504e26e63841698db272c150142508db12e37ea1a0ef63671c0b31a2a35e706e2bad3cc4553cd6f3e30435259358d25f06a330a30bc59324b9944d3d5d3d17caa54a2e4f689dfe5db750d269d46375bffc66550be5bcaa11bb0feb13d52c1476f48a27e1a2b33dc542c9d7bbd7e45aa8bbf40aa5cc645792dc2763a7b442397dcc68582735b9ce2a14b5378a3639c9cb9a910ac518ee277b69ac3e1d4ea1bc319d3efb543fc9432994d396db8dc9feb9e18b42f1c46aff097192b0e541a1a0a91b4c959e7a8ef78452f57638257e1efb3a27944a899f3bc4f327555d138a63d2679334d3d549624239cbb47b9edc2643b48462879a5135624a68df94d00953124ab2f17c7b3b644d24944a7ad437b9eb25b423147406913b49c6eb5099114ae669329328e755b245282941e9eccb3ba924b56ab089c125f08003789c80ed0233885012e3f2c1841b8d813a306308c59cb762d38c8c304308c53a498e25868f86d63077302308a5766d4f9ad7e48778fa0633805052257a8cd3a394b4ebfca0a03566aa93a3c9a1323683193e2889e84d6392346b19790fcaa3614c06edf82d629dc183820acf7136b3a4e6ba25f8c08c1d143b8a92d3897fd11d634b83193a2869f79234ddcc09a6b5c00578c8c845b9ee3f08751e279a88b828a66c1575627ff4936e519257e43d557cd8dcdba2a0ff4f50fba3f309f5ec56462dca37dbb272a2c4b38368511657cbb0e9417437627adc40474bc62c30214316326251f23bd72d1d4cee6b0916c59874c9a5635e514ed7932aba4af2f8619e2bca266e84f024786550d93b21a3158571138ffb8c7b400e3258511e351ee29d7fb22504858c555842b7688ebfc91a6cad0819aa2885e66c93eb93ca4f5d4d3cebc20155d00d1d615042462a92a94bac0d625a03840c54ec39c94176d0cb384571d5fbfd4f94d43b5a9b424b513ed3513c3b7d7cc8510db62e5a06298a556a1ac3693695165f41c6284a7a4c9c7dc7f4321a248ad29fe8e8e9242944c98f0a324251be4f2793123bc99724074539063731068d955e57956541c6274a23b75e64903717f3a64086278a9661d4a787072bed844046278afbeb5d32a852f95633270a52b32849e8964e3ac9d94451b497d97e283168d835d8fa0b199a286df41876c42741ce23692023132652323051cc25271944b3b6046da01e3970dc8921e312a5cc37417814ed3931aec1c6c312254dd36592be7bea6ec8a844e9fefcc22e4c6ab095c14006250a72a64c906bf2c9266912c5327964e8b73d2ffb48226bd9758fb3b73439799372b7d1c48369b3070e2406d2489447aaa9f424892766fe2151ccd13f6bd276f288926fbe8f25694eeb1376043a08791af39a67244f006a90d18872eb5d998a12ada14d198c28b8aca9c7c320216311a53dfdfbbfcd1cfdda0c38a00b0760a00b075ca00b45944cc73254575db89f12511294b0c17653eba90c21a23c9ad25427fd10a50f7f3d2274c72eb93644394bcedd93319b46890b6132086122320651dcfba47f83d092e346100551bee14ecea08c409473f5e43ffd5aff7f02a2a8361e94609db294ace51fcad6ee6fa33df38d34f9a11c3b0927c9ec8f6998fa5090d7e92bb497d49cf47c28f968debc50929acffe1e8a318752a2995dc7445d0f05d99525981cf485a79d8772ec29394f92649eb8160fe50b99547ed76e268ddea1b4224be98d63dd36423b94b4899d316e92b89a5887f27a582f75191e3f3a3a14f4a7aa5f076b0ec5ac41f6ed93a88949e450ccfb3a31a77ff42cc6a1245789dbb9a309131e1c8a2d3af6e8306a94b6ac069bcb7843614e26fb9c64e632dc507e1374d09a8427a30dc5702aacabe41995ed6143c1b3e9d47b6238151fabc1bc2058c14822630de5d04912b306e93e164217c850437a4cd298af3a6632d2505ecfabbad59a7e73d25720030da59247c6c3261d11dae40c05efa4d5b38b798aba6598a11863ea9aa05b4735c9915186620ca64afe317d52cf4b818ec82083a3ebb9def5edaa6b1dca1843e9ec2e2de365f40c722cc8104369e457d7ffe80ed62714a128c7b1b9b971d1a5e4041405ffccf598f53269367da2641bdf49c67d9253e9ac27feb897c95e83e7b4d560f303e944df16e39a7395da159abba2ba6537a98f9906e144b93386afd050fa93fda6038c0d8c61011e3c8c1725101111c102c826ca6da228bdeeb44955b691d2c8063080013078981988885c8f1c88264a42ecd68d66f18bc1d84c945ad38919226312c48b291d13651363e83869bd44517c4f38c1df3e9490d560b344f93688081d6495f4c9adc1e61a00a944c133ebe636fbf0714c104a14e7c4132afff993a559832d9737003289e2ac6afc977635d85a12e5f21c4288e83a313d58836df5225130bd31c466db491dcbb21a3c4c0d8604183972cc0079c4c161630638c25000882350d3a94bd384de3c6ea0911d3946741830cc14a411a699e9d9e8b7566a5d6b90f939c631419e98f230eb208c28a7964d25c7a04b3c89376ed8e88088480e1b233a4016514a93a69dc4e4c7cfb9065b2ba2a4c49dc8b3ab39c94414b48326b1d3c4d58ab206db88c560f5743ce29178401051f64d4254fbf728213f4431f6e7832ecd0b104394c6ba4d6e5027bdec852869feb41e74793ef14a35b88010a2244a689a47d5dd9ce47c00641085fd92bf56c4e7d4f1d342002288c2dfa69a7daf02510c729497e850cfa4551e8028a9892563a639d51ef11f4af1418792ebf643f94cf89c4fc3428d5abb0fc5a46b4c2e4fe21280f0a15cf25a94e841a88c27dd3d9475fd3d6ede0a2d1fba00440fa51e7515ef94c7480f1e396a8ce0d871769a87928fe79869885b2825207828c818649a5321b4f6976ab0d90540ee50f0cce96c7392df33c8d8a1b4252659ecede7949c04528772f82ef151f4c692ee0e2347004287d2a83817a5c6442ebd3914d4b5e6868e793849930377aa67f9ee6e39a3bb75d52644ab66f0310ee5b4794e1ee52aa7a60403040ec5fb371bed41e6503257836d643d50010b84c00319d811a423c7f3c000c81b0aa6faea42fc479892c423a6390071433973ee74a5e2c3bb3d6d288ae91d8dad13af3af288311bcae94c8e25f3998a5e07b28692bad10dcfd2aaa1f8b9c35e68aa1619769034144ba8f5b096a7c4eb183494fe3d6f7be4894ce19ea1ac9599fcb6fe37a88803103314f75bfd73dcd2e6a51cb11e8094a174b3594efc6df851a2642858ac68f5ab2063e832c6db72f533e5ebcc35ec6d0655259da0e488a1b43968a9cf69e35b99c250506ec243f399688c6930949468eacc2c9374895344a447be50aa758d6bb2a46a985e444444c4023005102f945f64cdc462d8387801ef334fc32e14cd7e4cde64c993c1c385d29a10f7b2398ff818826ca1287373eda3e35a28cbfbb79c2475de2df5004816763755ab7333abd431eda4f3bd64fa8d261b040ba51dd53aaba1329aa357286b27f957692687f512102b98cec47a28597bddd14347154a72f2898554b3ca97bdf080035c0708158aeb36ea393b4bf05c4da15ca3de84b92b293f9614cac142a95413bec9548d4241a5eb7f956062cef9650c40a050dedff799bd8da925863000794249c99d8431f94493f24939722437409c5076dfbc96fd23d4ef046942c1c415b9a9ed44c998634249127f4d4e2b7b07204b28e658374aa6302d994a1025147d3d294937c6d292e477e418c1b103b1ed40361a042049286fb5d6c9e2792414773b09a62656cc9d06e408250b93e47ffd33a10b201d639400c408a52a99c4b4f93656b72f42c1772f37094a3f491f118a79c3aee4a44f968f15c8105817efb09dd3789b3bf1e47b2ae76a64d6eb858d1b3a48b0a3070f268008a1249a4af8ac92fea64a4128f79cfcf5593f296172805010a24a89d1318934dd82fca024674f2ed70fba4d388d9801c407452d39aec4b7ba64cf9c01a407a53f61a6bf33c8ec69abd1c37821624078505a51e7969fe4e8f59e306ea01d3ab8417650509db385123e66daf76bf4305e648d1e46478ed1e312440705e17967629256d3838111ece8a1033f725192c4f3d32ab93fe8a415e10317855192cc98459bb2b17c448701836f51727fb33b9d2461c26dc6e88136826e5b94574c882ecd74aa416fc3060f1b6d3c6ed8e811c6043e6a51fc601f94ef8d6713215a9474dc6492e44ef2f7fa6316c59c2479277912379d541fb228e8269997f9672135ff118b922c2dbaac4b89694c0d8b62123f944e71623ca54baf289caef1d54baf39c9e38a92f4b5d9c39fbe15e5305d1b3fb6748ff25951bcf4dbcb20b6ce04d12a4aa3748ad9ce1faa289ebad04fea93a404db3f52b1ea87e767d5e57dde2c31d58e8a82693e2b496b0e42cfe91405b7d161f4c5cf6ed60f5394f2a49720abdb5214dfce3a56a8dc9157c2a4289fad798a5e358aa28666c9f9197b4e7c5194c4a7bd1216c284f17028b06b79f30eb76dcda0d4e68787133f061405cf8e9f4cf6f4fae9e211e3a138f8f8843b77d9197a1976f6d6b5e349f35629d34e41b08291fff044a98376969c3ad7e84264081f9d28471ba13f2c838bc529abf0c189f2c9ef13199452baf5772b7c6ca21864124d45b54acd896ba270820951929edfbddf9928e6cb2cef7d52a9f7e0b0516304d5c0060fdfc031c20726caa9abdfb6545ba8e72f51ce2ea36ab724f9b044d12e741c9131e8119e57a2e0ddb3b9fa46664d6228510ce6211e476fced99f447964f239a5b49bc68e240a7a469898ff04e541e644a2643a6d6c51564a7cfc2051b292b5d43bfc3c6c924794adcd72dbdebf6b5347b0ba6b15737b5a333bee495a77688c1e9d3dd78862f61ad5b129459b9e8c28761e1d5c464ca8f0b188726c7e2ba542dced7c468c47d98722cafa26d49e52c2665161224afda7a949cfe62b1d4444b1b693a41a4fce25d7fd384459b34f858e312f49bf86287e7febc83a9d6936fc2844c13c4385e91875378608513e61772adf8396e83a085dd7cbd63d65b6bb544cc409a521ff10c469322b6a77a26f1ae7cee0231085eb9c35c63971d4bdfa0188d2998e67bafad424361f7f288ca9ee074e44b5c45e2df6eeee6efdd7fad63c4686b00fe590db645e995f691f3e944dc78611d23bbc89e7c71ecaa79ba5aade41f3a71f7a28ec76724f8d6d755e9287f208557a27da6d8ce14444e43ef050dadc75dae4e9fccea13b147b736a47b17cfbd0dba15432ad6ed0df3f22af03b6fbb519d6e2eab19a693baa5a847a65ea381d8a79319aa7ff842a25660ee54f428cc98cd5f5ba466c071f7228995ce269d8fca2aac238149330ad1a2d933afd1f0eb799ab5ae795e6cb6be97f5f8f8db2ead4ce1bca499c124f857652b29548c7c80808563022f2e186f249371d9b492b4d6e379272e0a30d2535a165a2e98b1c37f0830d6553fa83feed18a9395c838d7378600d6a99c9a859b8ced9e76ab9baf667f6a8c96ea32fbec8e1011d39402022f2458e1b8a231f6a2829f9546463d488f0918662f468ca35a80d2d51c4c3d4f082476c8c0f3494e3652ed1a0f7ebb530c0c0303e202252a3878d1d464484878d4444a441b082911d1f672879f0d4951b1d32c2fc3043f1b46a9fd84b6dd1a532143bdf4eac4296a41eeec207194a8278fe8fb1fdecd63486b2a868c6e8f32c5b6231943e9695eaf2bbd0a7ea8f3094f4a9b9882a3bdf24db4cf80043498f99c6a6ca33a1a11a1f5f38c711ab1a6ffd46c287174aff6d25d867ccd117f22e944a4cc2e4937e3eebe2830b6d6ca8bb6bc6b69b8ac9373a275389b5f2630b65cb4da3935ea893311f5a28e7dfc792eb5ab1b267a1207a564669f0749a3e168a293383babb3019f2fab842b9e4c6be0fe739797bac50beb41d137fbd1bc7ab4249d027474da2f1fbe1f44185b28765ce134f0c99229a422aa7359a769fed31e698f999617a238582fe2c72a2e63a49cd298c1ea607099e870d30320a05a162bb5b644e236ff30185d2d8c9afe9f166827bd6c2a0c0c7130a667aff83a879cf7e72426193a4dc5cd3f69a29694241953071ec3e7a3a7b858c95b9f486d5ac2856e5793631588887575150bef3276891d93cab8a72899b1fa127fe7816a5a21473623eadae938e225494366e8d2e3d41f54f748ab29b0c2f21b39e9c49a628e6933e953695a254920c7ac3d897ac0f290af24689b26daae44e328a92da50a6346e8e284aee25a6acc985a2e095de25758995125094ccf3fb7cccda95fe89e2dce5a60c7d25acf5444149566de7514df6b21325f9e3942489fdb92572a224ba9c248cd62731da4469d6554d8e0f9f369a2867ca16edeb17595d260a9a1ba672a5ef3d4c9493e7d3b06174d09b5da26827768b1225dddc752c51d2d6b8eaf93696872a518e1d3f9a49ff2b27871285510f3e5a367799499484b490c14d4e92d79228e7909f2ff4689df2235132359eccc594a50912e55c25fb7d6c0eda4e1e5110934fbe986afadb11c58f399747cf34a2ac31c77785ce8892ca0d31e14fcb997811253d26897ae762d2ce8a28c60cd576d35baf73220ef51c3f220a9e7af46c7f7eebf80f51f8cdbff119e4dfab6f887292e489d9b1d91dea17a2a4fc64f8f150b2593e210a9a7a5496540ea27c728a09599739882888a209eafb944cff655f20cae96f3fee49920a88c2dedfe547cb2f49f57f289ae8d759c47cda3cf9a1307ac6f39b4eaa7a1f0ada5afda924a9fc3a7c28fc09a125ef3cf5670fc5aca9eb4b7fc8cebc1e0aea6bc4e44f82f76ef25036f17cd6bb31f78f8782feca4e7692c5ec77289975a64fafd359b71dcae1c44a936468ec88eb50d0969e4bbb7583bf7428890ca1fbab574cce1c0a3afa4f0e4ff9e145391494ecfecdc9257140b7893ff14b2a8143614498faa44bf3a92b794371f524f17513f49a927143d94428ddaa3ea73dc8b4a1247d65f39d24069939860d25db1ca5fda21bce63d6503649552ddb94dc496fd450f0244982da9c1354ff260dc58d969ab663d050f0f6d5f8f4934cce983394cd6dd48d4979f2e7c60ce5cb5152d4c93ea2644d194a5a47de8355ff556bc8501c4f826c8ca54a4d3563288838d1d444b51f4d8d18ca256f6e726fc599ce84a118449e6e8a8ea56e33602866bf8dd3cde37196f942c174ed447369905a192f9404ef942668ac93a9d485d2e9c7c99a6469349173a124691719db4aceb069df42f9c492938e9f3b97c8ae856289497aebead194ab67a12474a86d6a6ab73f1d0bc592b3c9399f903143e75728e6ceb1ba634229d1732b947ff4f6ebe309c23caf42b9243177c29e4e85b2858ee177d6d1f7f229945773b6f827eb303a52285f4659d5a4f56a3e51286fa898933aee95ea40a128ea663e64c93ca5e409e53863e3492e8fb927ed849264baef43ca26a14cba09257fcfb1d48427e1c43413cad9329b66bab5ebbc97507c13f4d99c5809452d51d2cb730ca96527a1fc69a3d3efef3d093612cad916fa6fa56f37d84728cc8cca8b9ac919c5364269c43cdcc7d0f6f87511ca3ee25d25c91dfb4144285b9e384194203b4d348482f8b095f27532e9470845afcd3db13e3f674f100a4a368bc9d4014271cdf3e6ecedb531f94141c488766d11b2e4f8a024c23abaf5694ea3e9413163708d2346e5089d0725b13b268941cd08d841f9536398195926879911a08372c8d3b1445b75f9967351b453a2c88ee9d526cab8288c9b341ddfcfcc55be45494ee7b07db2899224d916c50fa77e52c9b5282799348851378d1f322d4a26db1994b693a3733c8b927750dfa9be47c8c6b228cd899d474bdcb3671c8ba25ce82fd59e345bc6b02887ce8aaef92494a9f815e5389ff24cf6db66932b8a6b2645d5c97e133ead28c6111fcb4f8e1d9a6745b94e4bf8e81275f5afa2b8993689e6a6cc645f15c58d35b24b50fa75946c2a8af1f92676972c2a8ab9bfd16374955fc99ea2b8257a3cbdf9e7f4664d51f0134ba8570ba5b3d952144fe69a773613d3334b8ae2de5c6fec51255fed280aa6bfa3e7d920ab8444512a71a34289494251fa3c2ffb41e4aa7b4051d05cf1d19de236fe9f28662c294afecac3f99e28a5f629d9b4e40d53d28992a022e7df6cebf4841305d9951bcb924d14eeb3e7a0a4c66ecd68a2b0de1a42c9daf8419d8972766f965153a25ead9828968939269d7b89925675fa68354d266a89f2c5ac5507d113ebac44f1430773313532fc48895229318358e8123d8b9328c6894c133beb9dcca9244aa1047526079947b6d34894cf6f93bc322a6d94206152324d8eb7a54714f4e89bab9cb499458e28f528b1aebf11c5116a72b264da0d278c2897f02693d825f4a4c9224a3a42ed84ce33aa4a1451ea30debf493c112535361a633e349e3822ca1a4a8f77783da9f3214aa2e724c6cfd431969b862868f934de692ccbd72c44d13508f15222444990ba7f5ed2ad8d832895983d99f6b5e42d0551bcd31c84d0e2222f0c44498ad15b82d83cee5f02a238a769e3f866924efe50d824d3a62cd946dfe487c29698c40f22d487a26a5dc9569f0f25ad1dc4881e65e59a3d9444aa78d4580fc5db934c8c2668d4681e0a566292c4a084c99e7828e6af9027c62426e13b9443c9b95d6b3b144d6cb80e0531c24f907d9252e24c875259495692245a49329e43f1d4c878b1b9abff4539945debb64c8e273b22c601f70ef3194b877028698a911aaece44eff00de56c92982488d6144a0add50ce1b731abc36ed2d6c4349747e98ce7b8a1ab1a1dcd1ca5cb7449317ada1e4513d6c3a995343319b20eae41b37b1a14b43b92ee663ac57367d0e0dc524644b2e71943c267f672889398eddfb09ba993f3314ed5ef4577eb8ccfc95a164d2959c6c0c3bef1f190a3a94649224fb1b4341f36ecc5e94eb29393194a430cd2787e50976726128767ab97d0c4a6d4e0e0ce5f3a083d666fc9225f785a249ad79ed6ed36dcc79a120dfdceca4c80fb2b92e143f3bea78d2fd30f671a130abaf49062ff9efbc2d94c44c09ba3acc3e97a78592922b971eb56b4d765928f52941544f899975c2424988df39733bd71f5da11ce5326f9ccbb81e59a19c4f9263ebb1e4309f2a14c3acc4097ac54b75a8507aff113bd9e451ea9f42a9a348d592c9c37e2f8582eb98c90d9928144ef49854bf29e9631c0aa5eb78214bcce0b6e927146db40455ea259b64cd09a5cd4e6265975a4fa735a1b8396b996019725734261453e9eb58d2b33e88b684d2e90fd7f63c3298cc9450ecf10b254644e78959128a75231a93c96c599921a17caa6badfb2234a7ec08e51c4bfc9a654628084bd1a23fe6fb7d8a504c92fa78e79d45280f114ae2a34a8dee3dfbce104a4a49f326bb6e09a617424970934da9d33362324128fd5cd606371ba1314028a6fc683a96499356ff4131bb279deb74bec6f601dea635ee9df4a058923659e6266b19f3a09cc104fb78936b4fbb8333c975bd3e0fa08392a8956a32c1d48b72510ca23786f71bb517e2a2f07a9294d9e1f9d7dda2e4a2b724c94743946c5190e9a251dc939096d5a2ac217346d3c9617b5a1434bc7437e80ea7cfa2acdadbd9a40b441605a14bd2495989314b8c4561c564b55f8f9ded1e16c5183265d3b7cc6d4b90579444cd249d92e14ec90fcf00c415c55872af66a79972cd405a511267926eab779b750d8415a59313d74a4e69cfa6045945d93607f5d920a7846c6bb0e1d9d8d12355519026aefac9e527b9a36ca928c8b5d5d1291e77b3e5818a82aa0e4a7ed0f9298a39e7dd4b36379337eb4c51129d63e4ed9aaa65598aa289f341582871c4bf4f8a82cfeae8f3b4e1791a4551b6d475099a49ae154551cca044b9b8fc1d113094409904eeea1a0081068c71a3478d2f6ce0904089f08ad803be078f307614200063241238080100e8c1238c11102000e80b13c61738cc8d1902e0b1037d1827c70e1d1f26484102bce061438741c01800e0c123112180004c0f73440a1000d3c39c1c3b44640060000cf8d88162f0a6078f9191040020000b9081367a8861e3843132f2412310c53bdb7c721ef59175d6e03e0be30c0cb463440c1b67e4a01ad870eb81c386086800a2a05d3ba9faf87f35fea1a4bb64ea48198f73bb1f8af325de736ace8fb90fe5ddd4ce9ca3bed39e6ab02d18080ce481c3468f1d4a830f68a3c78d1a3cccc8c8078d3da08d1e37c200636464060d3d2031728001060243068d3cf4403cf0a0038c3ba08d1e3b6af0b83132f241c30e63e87830101806a05187927f7cf6e9a957ddde79e8c8315234e850aa15a544479cbac8550387b9e1053a3940d048630ee5689fa4d3ccdb3ca6af717228da892da54469d9ba48230e6568ac88e6e69d9c58ee69170d389452338a524a3489814620222206dae16f28cc7c4e52e78b4c4a29b1a5e186e2c61cf4f7c49862736ab10b2f3ce0000c8cc0016a8ca0d1063f45e642decbdc55dfb5d484fecc5f1efa3e1b4a3aa97d3741e6da4c138d351437b3062bff4d4a0e131868a8a19c314abad349b4a70ee1c0008e34c2230da51825f719e7e4b41e1ce686393494373d9c5232499ee1a61a6c3ad270d03843f1839d4e9eac3d682b211a66286ac93bb2840926a56c6ec08046194ae2e4a45c3d7577cce6d081090d3294b34f3a1d32c73be47c24863f8d3114d36e9247732739abb335d87480f1787684800734c450b43c61ae4419a0432720038d30944c7cfa7a5091feb9f3004341a869fcd35ed2f842e14cb20ad5a5be7465396878a114ab9ed27e55b541a30b659383cc6d7ef5d873e1c8010618391e6d070d2e147475ec97caf51c255c83ad078d2d944c575fc8606659f5c9f1366e90000422226946430b45df98d2dbe458af399b5c200734b2506e3761ce662c554fc74251a4c82869ebe4244d8e88881781c6154a7ff25193ea2621b7e3f5041a562827e93bad7ac74cd26eaa5058ff9349ca14a2c2725fd66db5693aa73756a133b7a7bceb0be9148ae984d1317d51ab67f58086148af149e9a73db17e9945a11c8490f3a984126a4e9c0614ca257d57bf9f6425eba5f184d2272f59468941b6e4db09e59837ca6952aeef69d484723aa549b3da8ba57d6830a17cba22b44d6d28391f1a4b70abe4dd34e4b2e4be66ec3ce638dfb99f1d57423135748550257bfef1348146124a36eba7fa47db6fcca18184929a243ee7742a636aa840e308a5f8905f9a7489d598a4065b32e886e9a06184d2a6f712279b4d94d9048146114a1a5b3242bd043113d2204231289bbfedfc2daed31842b9ba7a53c91099c3ad3c6808a138429b1215930f42c1c4cf2aba31ab647d4028bb6bce971f73d02429fda054255b952453e89ba0a6e1835bbdc2b4f3bce374e6279127631a0da61e94d4a5c931f26368f0a0d45d9db7caee6abbfbfabc99c60e4a92e7e73731efe8f8785d8e846303e7868d1a5d7817347450d097d3723aadb9e0b452ee6b3c634cac5e7dcc94da7c770e2e0af7f5d9f4d7cb6751e5f52d0afb414eecccaa318ac91625cf574a37b8966461528bd2f79fd4fa1dcd93f1105a14746ee8d6eeccf4981ad9912367518e31291f696ee2c493248b926a0f224f4ea56abf21b12847353929b5d6a4c4a4c2a29c9963e9d5faec6c7d0db61da8070ef48ad2b5df9d5a955c51ba2d1943acc427a415c5dc9ae424a47629a9b4ac286fbafa187dbd63164d2721ab28c9a5840f8d994397f45451365d4a49a239fb67f3262415c55371ba9fe9d1d62c1d094145c9b5b6d2947f8a62c7e073b3ee97736d0b424c518c27ad99564bd167b5cbee89ba85ac6ce9f9cf3f415f9c4c57879002b9f224546c10560f42465152fd5f529fa6ba865644a47c10228a92992939e6aa0c52ad148ae2c6e88961234e1ad30e54630666750801c51d9625094feef2567e026127e9d9f6d829251e396e3c9b7aa21ce797fa274b26213f9d28e7edaaecbf1c25f6a817c209d76e465cac3267c553b563be8fdd68725aa54d9463fe83903f32a749d44449b74473aae9433251f46c6e926d892749c42198f0c443c5de3e2f6f365f7457b47e4e9bede2147289c2e7c674155ad6fb7288254a4a69cc316a6693b4145289825f2729633f23c79450a2a057ebcc45fac9596321932867d3bb54f5caccbedb36ab7b50d2ba799d1e2289728d98ceebea72f2e42351b89d4d5a52a6205112f426d512647dfc983fa260a124ed9be7ab1b5b4714fcf5641859615dc21ad2888227f9353b7dc488923c1d3cf389a24ace7c11651bfd3ef32345261dde268428a21c8397246e335567d744946c4c5d7777d2a2a685f101248420a2204bdcac8c61cf37af38d00d3b0d841ca2fc7126bba89d1e53df0b420c512e0d666627a8cf2f18a8878d9131709819201c233b728c18a2b120a41067a655e8ce6ce6c7abcbf9c7a03b4688c265952ecf2eba6dd31540eb4103845d840cc2d1dbb46dcfb7d6aecbea10dff9cbc43b498b2182289fcf56a6796bf59a2181288ac941ada8bab0ee0f208a6e7a72cc1874186fd31f8a3a3aba6958eb8792f031976c62361d0f3d4910d28782ee94773afe53d477217c28c9eba52f676bb429d1903d149314e16eaea7b63173c39ce01c11a28782da378da1a49d6cf2a9c123e80b1c66c7992d42f25092cf7aa21e6b57b447878e30f0504c3a7375d64e5a739677a019e4b8317270d848770ee8c20c217728096a37afe6b5e6f8db0e25cb6c7296bf35a40e25d9d253bc3a86f03303f088103a943649728f8c99f3772a9943b1049d27299f93e4ab56834d8c18f45622440e859d9b8d5f62cc244c3e0e25cfdc6c26ee630cbfd76013230623c9a01b23691dd03b44081c4a4ac9399a12934c52e1bfa1602688fa9841c499ec20cd11e286e26aac5262df099becd3869290419574bafb3cf4afc136621783103694caa48c7582fcee60ea35144d6e3bc91ee5e34d216a28c963751dc264eb7c280dc51cddf3c46c8baa6f18d483c7480c6e8491a87d81c3861f3a3970241a0aaa84f794b14776687f86f2a68d4dc2f68919cae326650cfaa40c057b997591a574b9ee6428edefdec97f253dd718328672d81ffd23b44f36c74021440ce5aaf07472893aeda60f4306c884218312128682fe57676ad390ed7108184a1d3bc746d59c9c73ce08fc0b25ad592d6f4b30494dce23c40ba5def88fd1fbb511d28562e9eae97e53213abc5883102e144f6e4b991825ba97921b846ca174c2aaab070f2ab745374c097810a285b279464d626adb707250da20240ba5f1a4e47e10e58861a1a09387b330d9903fda2b94e4cfb1e4124a74500f59a1686352c8ee95130f9e2a9445e76cea923ccd9a9c21840a0525bc7d3013fc7d747e0a05558d7a7e3283ead743a4505e8f19d3b6c57bd0180a42a250f8f4197e6fa659b68740a17c92f81a1c843ca120a2ae2753db08878d649d502ed14ae56f67439a5090ff7a1e6646288409a51efd6127cfc674721fb28462ace8d29d64b4ce647d11a2044ecf45be5e46774d3d344dd84ef2aae770926edc8e119284829a06ed395a8cfa09938007085630124608125acf56790d4a4578048352ba5ecd7c2e4f1c214648ff0757ed2842561d2145d0da72e534df5bbceb653663a91953a2cb5d7560104284f27f2639e78efb108a63eba3ece315423954493a223e56b99c4128e86e6f93538692326f21402865a9e9cca6b33f288a6a92f1bc561f14847cfae814eed66ef6e054734d5bbb8fafcdf2aa0f258fff2809e141797348d58cf77b2794427650ea3aa573497527aa93427450f2dbd2b1aaf3e6dda45c14e6ae4d849a8f703de1a29874927a93f5a5989e6e518e9ae7bb83acefb7932dca1e73d0595aa6c4b5532d8a314df692e25f4fdf448ba27a1091bf13937b4db32849b531a6979ce4d134c9a218175af5658a453946935a4388127f618245d13b08572b75535d7a45317b5a8fb1d13b4f125794b73b4686d11e346b5a510289d3a8840dc502b240180e07438170200c0ca5ec5701d3130000100c208d8562a15040260eed04140003403c2e4832221c241e12161216108a040161180c060502613018100806038150385c17e9503e35be50f85f69ef730cf471c3438f2bc53b110f2113c1e17eb6a920c3571fd71873fddf48d5dca8a08abb624327ba6f7985eb70fbd43ad53127da3a7b38d3efce7eebdf59bf4a26e77112a8fb4e1f9c7c3149cb3efdbbc0919afaa1cf6f3ec6edeb01c7404e7724be93a09807cbd1578d6802fba2b0bde0a970542367fe818adde8b4ee80c46162c9519fed55cc46ee47c089519c1a37530dae628c11ae86bb15a34b296b092dceaf0c0bf8381ed246c47d20071622f908317e51f36960e500c2814f2f4ee1dda8aca4519abed106afd600db410b523a411a9af14df15e51093c75d87347da1a18ea7716704cc8e9a6444a5302f7cbc3c24693ec558bf81d0445d46fbde5d9f516331b9116f3ab24ed849822578d3a86146ac4bef9d55c076f5f29825de658ee383ebda45e459a5bbded60057ab09b77be532ea88f640f952ab66cc4a60cac7b6dab130b4223f7ea5fcecc2855f06d517e9e0839c2730b8361c21cc9c5131da3980be2d34e67b92f59a82d26ea2a29c4397346e6281670fcfa5fb507d4134cdb32cb101dfc40ff332cabe11937687cfd01c78281c7d704bc5a05d18cd527d909d2a0f017ec2f305e89dfaf88dd33e00e59ec635c9c72b203a14756af03afc7c42808bf60558699358ed60d034e6a5dfc9091df434697f0680f32bce6cf5c682a4874d12ded363968278418f76393caa6803d600c25e6e55e5f5d1b0e535066e7a2d137b9ba444ff9918669bef70080a46ffaf8e960949ace8c8807abb72502175e374bac3929ff5ee705c01babe519dc23212351c656aa5a09448ceebf020c8a1756905c25c8fc30b3ba5a9343424b8997f4ebc84af78bd08f17d9e0d3c2498d3c040b9b35ce1a38348a8e571aca7a851872bdb9c9ac0701bde4950f01a176114da18c4202978858dbae87d8dfbbfb80bb6a6bd14092b3b771f743d55c13acc1df2b654543365cf85c76b9e8b0fb0b2ee8635ee99b00db9d9dfc3d1e27dc477adc12b448f2730a68806520ec6d78f6a6f591358da1d1e65425515efbf6880bae8f6fcf9b359d85be20b0a72eff728308d96a043d717ef261ef2a7b3661719a4b675c960374e3913048ae5226a5a69c57893268e4d625cb7267ce2af3e61b1fe9e7894ffcc960b2b1abc5089a75c82c97f7e2b520d87cb80946e2d61773bf345a6a3983a9667cf7e468c1443f43e227f44594a9c2231b4c520be9d409d53d3738707673e7be84cf000df058ea200828b76c3c05d28c119f4148938242af0aeb00c683400bf090065aa6704ef6b87d636a5c10d11ddaf35fe17864d6e4f2f33813090030e9c1a3f395fa95fafca078139b5a855045f1719688e2c9e21b3e35f786dab2b3d6ff952aad166284fbf2e57d901246b30e0d4ddad2cb2ae1cafa2914a9e91054e97e4b0787099b8c0aaf2b036e24e4ecb133fd32a9b3953a546e9b5b74c7ac952ce8705b55e560dac8426f6bbf8a228490b7f7e22704da60d9905a40dab672876abd88180f2a2c336c0ee9b837df05f068f56a0d8b98992b4519117bfa5983d46c86dc178bc239e9b7399c9beef0b504629dec12912de2fec151be2200b1f2e94500e2049a4a67a1515d45c34f4129b1fe2e264eaf78dfab04bd0a5498139a2a67e13c6b3339d7b97d9a33cf62f5163f5848ffc8ce8e28b365e500c4897695d0e21a83f85a63aa220235c7fbc0aca756d922cdb1d2c959070d84d7a6d8a64f6ddc7a46ad7eda16d68d428f3a8520ea1d132b80e9219ccbce4691d05f1a8a769d5b8417239eacb9c21ede8c3e25df2b06251af858a4867cb95021d179e0da8470418cb24441191c143692e0149cf04cc5439448d0e293c212444a05cc54c84053d224ff30ca64e7167e2330a021734d1e49cfe20804a2c204e46028d45d178e5aeeea65328719bf3bd1b7a387da014597adbfaae0c237d4a70eeac73f180e2676158cc211b9caa34cfcbd43a0916efa40e70b7b2a89e5e9ae6433ec5775b82391ae9374e8041f2152fd91b19ef53fee2a1ced261eaab98fcb8f802da2d0917ca00642e6d1e1ec2703c065402fd53de5268580f4bb9ecdf02968067f79b382fb31330e565e9a8c58c17a48b7aae0aa6e35b1058ed18fd0f485f347792a9bf5e75ab5312796afc6b211fdf53460e5fcb71f8e5ef443550e093b0ed826a28a2e0b23ad225d2ce0e5c210d6e66a52b716d60d1646d2bb027ce4eb1f0c55695d6e5ce81da8b3afd603ca75f18ebeb699c170501800784480c602d7d658ee80f0209037b290fb00f0345425d40cb600c4127ebd6c67909f209574b7ab43d6cddd0058a654dee8ae4a607b9fc4be39f918fd141b83ae399128485f926abc01290c3173f8eb2ef6865518b489e274a292f07276888439851de48b0cfaf028ec3bef77f1bc91e15da264bf81b2271681dde3f19474179b584f304e4dabaef22801572d7c628b155e3be03c573934b85ab4021b64cc3bacb9cbc68878007a75c523d5c8d09ee86262077ad876509cf2264ac7f8d96e1911461b50b150752e4e35408554fc790d67644da911494fd56eee66c444219a8ba928ea8f77c196140ea159b8bf77b5c905da67a447440f1a7ca21c045308a67e78f4f0cbb559c99f6afbe9e21921efe7e6c69cc33f8dc3fa705bf75ce585ef34ea126d1541cde6ce1e9606c518424212c4ca853b6d47439c9c39135f589c3644968a1bfef65bf540095258887a0f40fb9bc887f1b4e33551e61ccb93e3ed343ef344fb6ef5dcc78b60afa7399d33e50596147d6c2b308ea461e97c30e690624d1270a5b3119368c4693ee3a1133dc508860a8aa132d56d5ddd583d0b4f5b05f7701fbb0b7f9ccbb13aa52960d5cfb075850ef9eead3f1a9af20cbff1cd593d768c97f05ac5d45ccee37bd4860fc9678c51669c15aa860bb11ccc9c51962c3b5a19a9dcf88b94f3b18fc004fe0417e2f51c9133a3efab3929a90576c25204c144892aa0234bdf827d26a7f71661284567309389f524e0cbb70c189929d7e7922d7f56802967e9a24649b5c303de2568d185c4e8431aca509cc85b3d06ee21201a33938d72a8211802139568294e30aab0582aa29e8228a76c0aa9d451b2bd65da795a28ecc7fe620e63f194a702153425db61237665f3c42172ca137ec5baf88b70856466cc80ffa174200d93788e60a75cd919fbf428999078a9a3f2499e373781a3002a29973882232062aa2c077bb1afeee256b1889eb3b8608c842502c108412457185f2ba5d308ccdb7efa17e17a8e30dc876d68baeb9ff6495ba5d28e1375809ee4fc9fc1e5bcc820885894b988e5a657f87d39dac7e0c28aedbcad837fd4809939a56b69ff361dd648295e153de98683149174d21dded888e40c3ca71cb2cf5c1c166960ed84ed45937d445a35bc10ad1159c900aab8fc5b729199592799444219ccc5193fdf82a9296abd656fb62cb564435c0a73d493d13ba6dac19303599440006213f5ac804e358c8e11ed089d1e74203b6dc84f710a27dac2709023e78a0fd615bb1a1dc44107f3ddb3baf1961204e5a840016a531e5584044d374a52af25ecf65dcea35c9a0b7cfd5786612bcd366f9e5b8fc453dee29ceea9f427c391b130496cb9b03051995e19acfac84fb02064ded207644844ad90b7edb3b3b704174547e475b02f9a1154fba098f1f3890ca7e7467cb79e5426c029a1a66969d3e9c778869e1ce752033aab3c547be98a90cceceab561c17f4a83e81d215c1a5e1260280599a606f2786a281959606244063354433f2b01774ca0a9d16e254c109031ade29e6915c4e8627722ad2a21c442f0a782b5a510ac620e4aa12ba5dc794c110cf08bb4546a4ea15966aab3d5b2af0d7097e48530847026c678a00458f804daa883c06b3e5b26baf8b1872876c59af5ca32e84ae4be674edca58ab8cc7c5298489bdfa9cfa23844124ebcb2a11dd1759ef05b84ede1aec62b5c0e160750bd0d2cfb00ba7d5986c8f87fc72ceccd107dbf8803063776afeb62a7eedab2bb4e9d40caf11df766d5d8065f350db0dc239b81bdd91868e4334c459937197bb493705ebb337d8c157a89bf14365b4be56b23c98c8bc1a915a814ea4ffc2512ece5a6de8bc060cb56a747f12b9aadb5c6d5db4487d0ca0f49f0980fee2479ae466360fa7ca40f45fec6e9d324ba84dac055a78b976a3e89a6ab59c5d5e592c3a22cbbf9d68989c4e5b3ae4d3f025d6867bf9147e0b9fc226d95e21ef23bc0327462ae09914d2cac30cbc0fa500d83512d3673f25580f857e91267f58aca521b60b9e602f75fb3ddd658264f4f9d5b9740c09d1243afd1ca98670e9376220b154b9944d74ca4cbae2aeff81e03b503eeb853bf596bceb180c18857f1adedb4920c371918fa25481bc9dfd4b3c6b03912c427b594e271f9bcd0ecaaadf5e5acdb1fedeb2ab4a7a87e618e1ff39a64a350daf29c89de52845c4bf65e452b1de8462877da7b04ea9a37956ad20fe757e9705556fc0ceb97f9d241721b16e675b608b2c1f4ec6d96bb23905121a430312f45c2b1787bccdaf481cb1837aa34a83e6f95919031b0dd07e36113caa53706ab94db504d5bfc06ea93c4210ba04d7d6801dffdb90763d730619e61c64cc3b2504cadfd343de8c2bed2ed4cad815a1c1a2baf7ea123c16457e4c0fa29e7fc498a8d78e5c4638c9b384e518c8f2826bd68470248257a87e5183d964b8502c64f5d14d3f0121d3f2217b6c5bbb4c4114788a449af12132c2530c252ae57c69460a00ad0fa6b8814c126a5c3cf303493515980b31775f449b6dc52d6957fd623b41d33decc329894cd759df1a41e8766bfe3ec7cbf085e59c8921beaa1c90e9bae328b0889daf06b60b1b587a24d3b5a9020898b10c2027395d0513edc55508fbd54c2788771ac93cd4052e4fe1c3554c3b92efb6785fb2c2e2b12eb78d70e6448820d3f7847c3a30f958f8e112ae5ab4f218653f5439eba8922c83db91e84b3274e8768d07f92bd5bac2c3a42f6719b686df38a0c1e42b5ec425207aa14e44868546e59364bb5e66c065c4ccf39f7fb2078706a580ad071dd435cc0c968ce3411108626e02d35753cb1ecda381219e9f5fc678a888208105d01c4a9071629df46bb926d8f93ca035cb4a59208441ec6503a583667f52c20ba8f27c1a92676b3afb4a9bb52c83298c51162c785b8c0852e462f05a804324a59d60fb48b99ab74a75406977aca93a8316ad16196e8295e408003d982795d16c934d043bf00a404c002d083fc5c8ec393a6e37d46f62824b813e2748a8fcf30ddd11058827a89334992af131d9c285e0e11668551a431d440dd07d0f21be4f758f0fb921612dfe030f4576131e87b5cc86e53805486b5df918ba93ba1cb1733edc5cde2f0801a41566641caf9ea2bb9bbf8efc0f003384915a70a4e25a7a15accd3d34a63890686acdefdee8d9069074c449ed2f636e71a1dd1e4d2c055e932c86c245dec7be85c3ca36400808304771223b72b793b0493bb157399a50b21c9d42846e59a44084dd35fe0aaf755913ac4ea2e3616626996b630a2db56011afc6add520fb3c8243400181ea9bb225c8929ae33b3b28e79c08b90ed59e871383bebec4c11521c6b97525c02842aa569acdb3ca28b2a68cc427682193256841b1cc71c1769d50f963be22410d881fd01e8c3d57b57cbab6785a059998b636b335eda177722160f0897045f007514a3edf9f6620a3753b328c67b729000578beb297f3d0b9c1ca936680aac330a4a5082860ff64cad4aa7bea9ac0e6c4c70a5e96eef53d4bf567349518f2d010a4c0cdba6e19265ebec3ce49f8741613a8b0c472be98f5c8b17e6ba3a7b4659b149822367424f2e4a2c605039b48f6b679ba2d021dd17f25d5a27706244843b85d89768e36769e9ad657e72550e842cd309465544472a786754273de6f99c06f0460718a8af333dec7b006aa49aa4e70ae7c0c645ce3a1c32eee4b5d14693c42ecfed6b256dc403a774393b8fc56d47d07eec028849ea8248fb2aea99d88dbb791f74aa3e30216bbd3d57041544792a3d6a3c216702990d235521b60d02b7ebfb23744ee3a7c38c188519492333de15417c61180892f2cce94290057e0c1cadac36debd5c9fceee98dab6f370cc3084b46e0b246c9993a19e0d257759b3b7d2b7ee586f3a29683ce693a8342ed3907dfb6ab4fad45e4ae1b4ea584f06709952d0c6441d5ec6a1368bf845156893d6cb2a3046f9020244835b82ee7b68402c728d22111dec0b23205bc23b2c9848ca42dbad52bde28123399552339faee231ac954801a01ca00cc1359333aad3f22657cd49860ce3f34a616a35c5892b14757549aa77bfb04f0b45e030d81ceaa9ecaa6fde7e7de1df5ba0099914629c9397c74e81097eee95539bc5d1c2bbe58b32b2f16c20399bf70fd685690787f14df7f6d02651e182b7120b55742b05bcf9f93f5229396525236b04c7c3391cda3ebc393d8d28927e222b2bbc71dbe03cfdcb867a2017cb7e167484cb8c1864d9c680dc48db514422410203c00fb91250f0169e3ad1491383e4a551ae0304fe78c1e6d129d44cce1c47f833539e20ee4f61bf5d08fd33c4e80881a6cee313c2c75127382953c1e9418cd03a1b446ebd19fe84732230e4e8cb3b06b92192136fdd65354846f885d12d107a81d0696b49d2a483097559b588c81628b4e412164b21056d988cf5719f65dcf80a186ffad9c7344be22de203e9b87560317f867147ff9ace1ef8a33249e0a92a43946dfd98fdf57581558840b9455c27e79df60d4db38cc129ab6ed71bf563bff53c6e83604c7afd769c8f4b8920a594162cb18043b24753fd6b336c4eaad23d9954664b1e5ff7df9f8f04de71531ace26e07c06cac6f1c88a1823326d4359df5598a4c333f8a5216ced16a5c0f56f5ce00c4aaaea781f62822c924d3d53330c81f205649c97c28e67e911d909d7459c38b4c7bf795f116f4334e6e0fb6bb7451b874ee54ff1201067f88c60967d68045ac416008b32c229830d8a8945b7b0317bb51008c6890e271f98c4923fda27c299820f7c58899142770c20108b249d84df246aba36b0cfe42142566bce7c56fd122b5edef56ba34889bac8f10dc87ae1b80a2e9c4fbbb841f3e212410e6a39b29d7abe701cf8032533dea13d48aae117bc4da8164a0446c8d589d1c1bf71846faf7128dcd240a7bd86c8cd6fc6cfabdc101caab3c012897aca2b064d88617158e74d86eb89a94b3a530210fa131d705a6a400aed3e6ea51f9d85e3c2c4cebca3ae6816acfee8d39d682951091b1ab77e9673a566c1f3178a54fa68b180303f062aa79987b34313df969a4ed124aacd8f640c8f6ba9561a57b2369e16c709b4e2f0d2b2165f08210e8c2e1bf48284cc165bc92ab2cb4ce9ae3d9fe2920245245790d53b47857888d7d436423ed7a384556c9492f8b9cb73f3a20c81d145a41b370f5556b4ee3a90adbab00fef7dc28d8766ede2ae26a82693a89ceb16ec484eed0ce646089c07b99e35621bfcbfa10f1a43a3f4a846d0eb1038318dad5753be77cd56011b0874696891e2c96a8d6c50ec6b55ccfdb5a3b59d219dd88119309466a88f9877edbfafaecd04b66651965d9340abc4402c2eb39b6afaa87ff445812b4917b2d1dabd3241e3f28661fb75b39baa6a8f2dbe91f719b151e893769e317092bb237d260e785a582226263ee5c82e4888e21665c5fe015ef32389212177ec30a5b9a9086f160ca8f62bc33527c99d5a508a9445d0b949cd601154d7d95c1b4e35871028163a525f906785c86591f9532ede8c51dff902c25d8f6e0bee1628da7a4cbaa4c3c879e3f878adc213fdf6ed5beae8345332fe512c0eb3ad381b6e02118b0cb1b33f9a9f7c894b3862a0566250e46181224d3e43e4208206b25d53991e6155af2b8f57bf629135cbdc73e3910e21cc05981344232aa3a53ce4d568cbf82f661ad1a3553ac1de77fb626760061d459f0572531e22a4f91b1d4b282bc88941d4eb6f0fdf88307a9092ebc6eb859ae7c3a56e2dfc6eb92c430fe98ae5a8a72f0ba6b118918a00fceae5d2d1f937415b8346364f8ac7abbb7f1b30bb60c01f4069b4132199258d81171e4c97e8696f4b20a724cf4466169ad8295da61dadcbe9d96349b090591946024b227aca47ad2e5fe8c35b71b3da498b4caab0912e9ae16e92e6894fb3b5691acd928ca22ac8111db681445a951ddc2a5c91cecc1fbad037d0781063daa2161f0b28bc077401071d41460d897c22229ab0894bb104a21a655148d154512c15ac860b59e932a3713f22aa95bf30f15b4e2c7f5175ca018b22a2e6734e3d621522274482de06522200ecd73d0b2809b71a120059890563ce95d3e603802cd47993ca6c536be99252d9f0751866a007c57a188a86c1a8c35d7b84882119c1d9ea5142ca3925edf490d0bb9db176525a0ca7074f7acea50bb0e67aa3ea03c687fa694f813c0298a8336d79278a211b2a1f959e9b6adff11ca89049e6c838af7b1d932181edf425f1eaf92a172edd6669eb6eb0576f52f32654a4538cd77abbe39551846eeed1afd57a8d650e2872edbe8b723da855e110b3da98e3e7817082ce61d7bd280f73bbfc36baead4804496ececdb2d9f4ea674fb42adb932c03862a1d684889d94a06c80f2a4a1ecb030411ab4227111a30eff1feafe0d0343221862625b2992db52dda9843ef88c50d37a55762a75b27c2f700d8c7c75740982fc157532759ac20b00cef8f9381e7460f94caabeb6e7c0cc7570be87e5061ced162bac4fe36900f80ca29fd7bcaf2359d824f5c6e1da4a0785022187cf2b82eb93326a34135c08f5df4f57f2b119071d1013f3c8b79bef88fb7c227a688dd4f1c263f7b72ca9a2f02ec856818dddb686ac54a731b88c899b54243b24568b9ac6400edbc60843cab0d432ea1f82ae64fc49ec483dee824b9ac0f5b9b1fa91e28b3b5cf89cfd3fa23d2cbe28a0b631e0c845de875a4e5d14fb846030d9b901e412a18ced8ad5f548423a965d9f480b0aa9df0ca3a16b30cf21d0c72a6f6893e7d75df5cb030f0f2c101e568668913b5dcd7580dea5328b2b097b2bbd0e4bf014211b5e12eec23c7a22be52496b9751f8c457973054a984c887e0a94d68a1c4ef6d8be7b382be9a3aef6d96040b3b4ed87d59dd3b4fce8d81e540185ee2163d7aebb92e6896e071d8c1b732770ed671f2f1f53d0dcd42f0caceec8b7a150f642e14e1b1b4c8fae51a6a6af7abdb9982300ce4066eea4359bbc679eb0e397e4fe01621be01ca810274d637bf204d4af8b93cd3cef6b1065f57bde8ee23f6f4e3e64ac7244d189c4037c7dbd77d967993d7774fc4111432e55b852ec4d01e681f0aea0f52f6c373234cdb29b289a010cb018bf34a94eaad43864ab81d390d8d6da85d0aec319e8bc2b30035345128daeaebfe2ba43481ae7b4b3024b6e6d7118d5061990c041998926cb3ee05195c9614e6718e5e5d897e0b8981417267ae50aa2f603376ffc0f13e85974665758429010c17acc61d0ea0a40d2dc70186288ff09b5b17beb5d4c4b7ed879086b924552b436608cd61ff65df19b85a8f32de5008370313e10487b56a605ba3cac4b7c81f2d80828d020de501cd1fc582568fd64623476b6fe8895d0cd25dd3e4aeaa5e37dcca58e1ec0c7964ee9f781e2e2827a8a0f07b35a076b4d05ebbcb213871f44bf897665f2a0c15367ddac79e6811c42af0d8ec6b375a6fd5a529b8c622fabd679bf3ae0993073a309703b48ce2dc39ba6cdc802101caf1c58a289b04bb7b0815b96f505a1e31946278f55ebe1237d2f693bf4003e7bee169504fb30f808a59d4b5174cfda7aa2b5e448477aaab3bddc87320f451bc0833b0b30d569028c3e13b49e7a6c70324a931efee219babb04b13", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3f1467a096bcd71a5b6a0c8155e20810308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x3f1467a096bcd71a5b6a0c8155e208103f2edf3bdf381debe331ab7446addfdc": "0x000064a7b3b6e00d0000000000000000", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x45323df7cc47150b3930e2666b0aa3134e7b9012096b41c4eb3aaf947f6ea429": "0x0200", + "0x5c0d1176a568c1f92944340dbfed9e9c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "0xae2f5cafcc1a57aac6a0e51fb2a269b74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x00000000000000c00000000000000000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file diff --git a/zombienet/tests/0007-warp-sync-relaychain-spec.json b/zombienet/tests/0007-warp-sync-relaychain-spec.json new file mode 100644 index 00000000000..ab871f72d37 --- /dev/null +++ b/zombienet/tests/0007-warp-sync-relaychain-spec.json @@ -0,0 +1,171 @@ +{ + "name": "Rococo Local Testnet", + "id": "rococo_local_testnet", + "chainType": "Local", + "bootNodes": [ + "/ip4/127.0.0.1/tcp/63035/ws/p2p/12D3KooWQCkBm1BYtkHpocxCwMgR8yjitEeHGx8spzcDLGt2gkBm" + ], + "telemetryEndpoints": null, + "protocolId": "dot", + "properties": null, + "forkBlocks": null, + "badBlocks": null, + "lightSyncState": null, + "codeSubstitutes": {}, + "genesis": { + "raw": { + "top": { + "0x0595267586b57744927884f519eb81014e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x06de3d8a54d27e44a9d5ce189618f22d4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x06de3d8a54d27e44a9d5ce189618f22db4b49d95320d9021994c850f25b8e385": "0x0000300000800000080000000000100000c800000500000005000000020000000200000000005000000010000700e876481702004001040000000400000000000000000000000000000000000000000000000000000000000000000000000800000000200000040000000400000000001000b00400000000000000000000140000000400000004000000000000000101000000000600000064000000c800000002000000190000000000000002000000020000000700c817a80402004001000200000005000000", + "0x084e7f70a295a190e2e33fd3f8cdfcc24e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x08c41974a97dbf15cfbec28365bea2da4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x08c41974a97dbf15cfbec28365bea2da5e0621c4869aa60c02be9adcc98a0d1d": "0x0c020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a10390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f270389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb", + "0x08c41974a97dbf15cfbec28365bea2da8f05bccc2f70ec66a32999c5761156be": "0x0000000000000000", + "0x08c41974a97dbf15cfbec28365bea2daaacf00b9b41fda7a9268821c2a2b3e4c": "0x0c020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a10390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f270389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb", + "0x1405f2411d0af5a7ff397e7c9dc68d194e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x1405f2411d0af5a7ff397e7c9dc68d196323ae84c43568be0d1394d5d0d522c4": "0x03000000", + "0x1809d78346727a0ef58c0fa03bafa3234e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x196e027349017067f9eb56e2c4d9ded54e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1a736d37504c2e3fb73dad160c55b2914e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1cb6f36e027abb2091cfb5110ab5087f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x1cb6f36e027abb2091cfb5110ab5087f5e0621c4869aa60c02be9adcc98a0d1d": "0x0cd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d01000000000000008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48010000000000000090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe220100000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087f66e8f035c8adbe7f1547b43c51e6f8a4": "0x00000000", + "0x1cb6f36e027abb2091cfb5110ab5087faacf00b9b41fda7a9268821c2a2b3e4c": "0x0cd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d01000000000000008eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48010000000000000090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe220100000000000000", + "0x1cb6f36e027abb2091cfb5110ab5087fdc6b171b77304263c292cc3ea5ed31ef": "0x0100000000000000040000000000000002", + "0x2099d7f109d6e535fb000bba623fd4404c014e6bf8b8c2c011e7290b85696bb3": "0x0cd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4890b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22", + "0x2099d7f109d6e535fb000bba623fd4404e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2099d7f109d6e535fb000bba623fd4409f99a2ce711f3a31b2fc05604c93f179": "0x0cd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4890b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22", + "0x26aa394eea5630e07c48ae0c9558cef74e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x26aa394eea5630e07c48ae0c9558cef75684a022a34dd8bfa2baaf44f172b710": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef78a42f33323cb5ced3b44dd825fda9fcc": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a44704b568d21667356a5a050c118746b4def25cfda6ef3a00000000": "0x4545454545454545454545454545454545454545454545454545454545454545", + "0x26aa394eea5630e07c48ae0c9558cef7a7fd6c28836b9a28522dc924110cf439": "0x01", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9007cbc1270b5b091758f9c42f5915b3e8ac59e11963af19174d0b94d5d78041c233f55d2e19324665bafdfb62925af2d": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da923a05cabf6d3bde7ca3ef0d11596b5611cbd2d43530a44705ad088af313e18f80b53ef16b36177cd4b77b846f2a5f07c": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da932a5935f6edc617ae178fef9eb1e211fbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x00000000010000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da94f9aea1afa791265fae359272badc1cf8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da95ecffd7b6c0f78751baa9d281e0bfa3a6d6f646c70792f74727372790000000000000000000000000000000000000000": "0x0000000000000000010000000000000055a0fc01000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da96f2e33376834a63c86a195bcf685aebbfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0x00000000010000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da98578796c363c105114787203e4d93ca6101191192fc877c24d725b337120fa3edc63d227bbc92705db1e2cb65f56981a": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b0edae20838083f2cde1c4080db8cf8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9b321d16960ce1d9190b61e2421cc60131e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x00000000010000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9de1e86a9a8c739864cf3cc5ec2bea59fd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9e5e802737cce3a54b0bc9e3d3e6be26e306721211d5404bd9da88e0204360a1a9ab8b87c66c1bc2fcdd37f3c2222cc20": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9edeaa42c2163f68084a988529a0e2ec5e659a7a1628cdd93febc04a4e0646ea20e9f5f0ce097d9a05290d4a9e054df4e": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7b99d880ec681799c0cf30e8886371da9f3f619a1c2956443880db9cc9a13d058e860f1b1c7227f7c22602f53f15af80747814dffd839719731ee3bba6edc126c": "0x00000000000000000100000000000000000064a7b3b6e00d0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000", + "0x26aa394eea5630e07c48ae0c9558cef7f9cce9c888469bb1a0dceaa129672ef8": "0x699218726f636f636f", + "0x2762c81376aaa894b6f64c67e58cc6504e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2aeddc77fe58c98d50bd37f1b90840f94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2b06af9719ac64d755623cda8ddd9b944e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x2b06af9719ac64d755623cda8ddd9b949f99a2ce711f3a31b2fc05604c93f179": "0x0cd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a4890b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22", + "0x2c5de123c468aef7f3ac2ab3a76f87ce4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x2f85f1e1378cb2d7b83adbaf0b5869c24e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x2f85f1e1378cb2d7b83adbaf0b5869c2ff3ae12770bea2e48d9bde7385e7a25f": "0x0000000002000000", + "0x3195e99b3353c0f2dd3f53c10740793a4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x3195e99b3353c0f2dd3f53c10740793a57c875e4cff74148e4628f264b974c80": "0x00000000000000000000000000000000", + "0x31a3a2ce3603138b8b352e8f192ca55a4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x39e295d143ed41353167609a3d816584": "0x0a000000", + "0x3a2d6c9353500637d8f8e3e0fa0bb1c54e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x3a2d6c9353500637d8f8e3e0fa0bb1c5ba7fb8745735dc3be2a2c61a72c39e78": "0x00", + "0x3a636f6465": "0x52bc537646db8e0528b52ffd005894f804ae5fc66e14552010ab9a0ec117fa6058596ebc671fe7774ed143107932f0c4b28cbc70d5a0785d72e5469c084b32f9ffa5a6732fe618bc1b54fc473b9c38549e6e1dadfec5885caec5f28cfd521fefe36f6b7bb735b9b79429c9145316f512cb13deaaede3df3f9fdb677a0d16991234e1688af232e818f0b87dda3f163dd641c2e3bbb3f61945f8f6196122b4cf7cff9df6e9ae7fd83e7c438ae3fabbfaa769ae73fdb97dba3b8270fd3df971ff841ee3d93e41fdf25dedd3efcffdc31ef319c30dfb1a267fbed79ffc4f3ef70fd3f8bfa8cb2fc17e068df4cf2fa17f7eedd37ceb323c6e8f9f754669bbcdf287906f4bb72b6d3ffeb128670883fcf98ed2d6976f4b50575ef9127c8094e1b21da56d3e8b51e6e59fe291d6e5779179c838ffa684d59d56a875f9798d3bbb234fddd1bff9b2c80d63518620942f2f7708fc12147aa1f0ba95b626630ad4942dfd63bdeeeffeee3e45e9babbbb8e378943ca185296be7dfafb61ed33cedbfd3a33b8f1e3b4dee93be2dc7eee7f32f340c8b719ae5cbec980c71d61b73fc8e59b0cb7cb601116c23124d261f8b50f7fd3bffc1e15f9ba28afc743427939ffa8c8bd048b38f70c9a7074394f8225d0e7ec489fbed76009e1a5cfe06cd87c6f7e2ecaebf9c789f425c80d1b5d57bee731c8d9f1e872efe258e9bb8be3bcdc1369cfc57101d7df63b0b3230cb77b1747be5d7f2a8edc3018a0b4902485eb3f72c3c613aeff4849b8fe449c8a7c3b51c8a7a6a6c25cfa2e8e22dcf99efc5c9c4f45be0c3ea0bbce8942dda57694d7ad909c9a9a9abae3d1f59f22374cdad930f9b3cb1d1c7172cae0b1ec499660e5f150c837199c6e6d1fbec9d074f9bffe9134fe57fbf0cd16e6f2e35c7ed6e104782c42289f9f559ec7edc3f2cae7f75adc3e3cdba79fdf93defcb87df88ef532c74c600e371ac6d7e7fbf73b58a42dcb9809cc1147c3f8ca7791a7956091da307f0649e02bc122fd445a8ae1f1ed7ed96d89f491942678f2a5c84278b345dd71defe2abf56f61feed8185ef96378a7944b5c7a4b7f222ddddd5dbebbecfe7adbde1ce99fdfb204f96dc77e6f29a13cd619fff67b6c80d0e32121bf3f8345f8256804069bcd26c365cb0d1bebedf7fae3f691df3edcb07e22ede26c587f01c2f9aff6e11bb60f378cbfdfd53efefdaff691b79fc1223ec5281c5ca2a37ae5d72bedcd11f9f3e54f5b24af5b068b483bca2b9f4813e9bfdcc1914b5986c79775c6f0f67bb57d462041f208e58fdfed1ffdb9613ea17c7f7e061f203f881b36cecb4fa43d29fa053f1e3224a36e948f25bfdf939f14e7fda4ae5077a3c8801fabc56009d366bbf289b4d71ff310f9a33f378cbfb6cf28af3fbfe7626d187f08a13f3f8323cc86f1bbad0de327d25e7f52ecfbf1902179bb51b82bbf1fe42143d276851270e5f74bf001a1edcaffda876f3f832548db954fa489349126d22c72c3f859a76d5078b983a396fd86c7edc9e7f619f9a5e586f1f31f4949e3f1cdc674b90be2a59b90011dab20b7207704890a8245902e41b608c245902e7a521084079e3d78fae091418f1d3d523d2be881a3c74acf1d3d28e8a9a3278a9e11f440d113478f538f143d4ef04cf1c4a0678a1e15f490c153468f103d5a7a5cd00344cf0f3d2fe081a367069e1af0e8c113078f1c3c78f4d878c2f0e4c103c533064f183c33e0e18387063d32f09cd173060f1b3c2fe8d1a3a78d1e3678a478a278501044071e3578d2e0b983c78d9e281e17f4f8c063829e317854d053464f097852d0f325880f417608f203cf1b3d3df09c6046c70ccc0c8d9918b312ccc8988d31db62c6c5ac69c6c42ccb8c88d908663ccc8c983531db321b6226c42c8899951912b323662198fd30f36106c4ac871d356441cca69831cd9e98619941e13590bd40e602991db23a6474c8e690b54036850c8cac0d9909646bc8a49045218342f684ac0b1917b22d64379916b22c6458c8b8c8ae905921ab42c602991cb215c8e290c1217b43a60259942c053214c84e2073435602d9161915b234645e6464c8c69089210b4306860c0dd91932336450b224644ac84420434286450684ec079992ac8a8c8aac06990d32196438c8966449321d76ead8c963678e1d3b765c20b3ed4cc9acec9060e78b1d2f76bad861dad1b213821d237670d859dab96127879d1a3e98da912127891c313e70e303137c80468d1d3575c84ce58c2047899c295a37e41c914344ce18f3e903232a973ac50c0b26179b14d04c7d53a6145e1e353ae40491d3451da3a60c9715ef0e9b3966e6a865501a6ef400a3a852cc11958abaa53a51ada859e4a471d3021005558b9918381534884a068d548da296a07e2153c50c9819856c2adc218729c7890faef078e9b9a1ab987b501d7c0a190d3158e4542143050f182e9ba7c4a4412b87960c2d1a5a53eaad478789450e97960d3334e87123880c54080f06354b3942f49860264c4ed38c0ce41e3d7bf41cf1c11e337bc86ca9c1a1b19899ea2e526aba1173454d0e2d9b6b31d3871fb132a35543ce172d29353bb4748031f5f011c385678d9e1af484f92c66f4f0137cb0657aa99941cf1a417ac819a2c78c160ead2ad3041f133d5e62aaf8b2d8a8a027cb4c0d665d66f8f880063c4f418098c963e7e9fb627fb0427c69b0a2b03358222c932d2267891c2d34871c3044188877b06a10db426422a709981a3d6a744b9f1b3154b47a6821753eccb0a040ce1d337180327858c08a8011514730f3464e0fe00c540610a96a9955ccac20e609d61e74e9adc0aec086006d3010cc2d9e16393fccc8f1446c30054e0d368802678a05c506476c80044f0936981293450d23078d9c3072b0c039c31bc1cd1c3845e010710386a5e53323a4c15ab94983f5844c8896139e1e353708600a1c2b324b80768846acb800d1e3c68e9b366ed6c82922678d1b19e45091e31413450e173731b819814c1137596e98b0e922064c4c8c1817338d5919b32f4d43d7d03c740f3950e47831e3f246b0a478f1f0da6146053153b068608386cd1936536ca4d82c6133430fcf0a8d95171b249b286ca0b069c266043472d838d968b179c2c6091ba51a1a84546af8a8e9c3a606d70d1f10911345cd18ada59a2b70f68875f142d42e1e891a1e66ea9879417da279016c8d1c2962ac9899414f951929590866ec905da15dccd0310335c3a5668f192c6439cca59c2c72ba7cc0142ecdd0d0a2322365a605d58b9b2636c0e2032ac014ccb880da401a66ee7029de8719a4191e7c0b9913d42b2a18332690d1229325c78acc92cc94983d586ab0d698adf158be88af02a4f251dcd0c03525664b43f157dc8d0a052add84b141784b9e0e3834086d703ede4b8e086660e026a85d389062c78c07c1cc69e6c40e1ab38d1fa242e1b71da90f827699c1833505a2f1219850cc44b19a608d80c9388b82d5857505c8c4e28275038b606dc1ca02bcc2f28265054804eb0b1616a011ac2e585a8020609180c5053c021c824505075138173b5e583254315a33ec9c51b7d869024be061691ab476f09adc0c1c1e707a907a8022100013332ae608c0a4d6835e61257123474d980f8d1a3d3ea881f5819585e5840522ace15323a78e6f8d1b353e2f5e0e375ec411b0986039e1e4112a7d67e4d09163c7678220523d535f12372ce0594198438f0cbe326669e48020070a470f9c30b3861c326e6690e343ce155f0da10e1f158ac3a7f4d1206990c386c7865702ef265bc2f3c1dbc1b30236e55c01a5e494009c92c3849705eb043621b039c286089b226c8cb06192cd509ba858acb090497030c54e9807a2c5434b69e78e9d1adcd0f1c9013e9153c60d1e3966d8a49173460c143924b089baa9c306053946ccc091a306ab8f5652ce132b2472bee484e07bc8d9920344ce162c3e72ac889122274bcd9273bbc923074b8e16ff43ce538c53ad2207891827aa143c6de478a94fd0243a8bea241b8285024a066da24bd0115031a808681894090a06cd429b90d5e0e6049d0dafa5caa092a0ce60c636933423c33ff123782abe8957e297f85b0c113148c4145163468d1a35673c148fc537d5dc6abad46cf14cbc139fc44d17375d6eb0b8b9dd643133c40c11335770be4c3e70d8a859018e972f074ae55b9af161e6870fc4f8a08c0fc6c079a35546ab04405a0064063665d8a861538216112d11b48a58c951b958b1e0b73cd33bd54ca9a95283f4573c973fc265840b8beb08207bdc2401e103ec0296017ab17aa29ab182c28bc393f2564013039a1ad0e001c40d2703c80958535834b090c037c03a403870b2e04481a3e583db075d3ed842460c193564c6905943868c55977ac6ca0b1c269c261c23402a3a0c70cb5be14ebc14ae45e60919285846009903481e40e8782d7e8acff222a82ea876bc7e785d7901f13cecc4e146ecb4801e4187a021a05666956903fd81fa40abcc26e80c948789030582d640a5d01d660d661f3c75501ba61a738d39c5a4623e316fd851625e318598404c2b26d3f4613a4d2b338839653a31bf984a4c2c73899d2226096619938c09c614638631c798494c114c247652309be60f3387a9448970387a66e02af0373c0e5fa327871d2676b2cca4f0321c0bcfc29770261c0957c29390f920eba1f7e829afe2353892f3e041b80c6ef3199c06c7a1f9701d7c085f721b7c4af7e1490e84e7e054fc0757ea1af815f7c1a5b815efc1777021fc869d256447f4538bd15a4823baa945d04a74128d4487a08d9825d13634951d11b4524fe9a5f6a173d8e922f3903590329061640c76b0c819781fd205f205332f4aa416920cd985dc421e21c39065482ce44d7221b9c82e9204120939867c9259c82629028945d2209324925c424e91523ed0820a926905e903500760107ae264c90530802449062c30010944000252cb024e7880031a70a404124630a200a9c40f084282405149e1c9cb528604aa762022251b40024509500b489078d25570028404c92abc432794ea0007e10b98a809132545402a2001025ac183d005fc6405274c90746008e80521244ca0dc2227402e7440c9091fdac1404b9c3c718244c912274f1cb0e46e10d6a1c29325402a7010d2c1441d000a22ea00d0110988e11c444c16d0812b862d082104a313b2806100722213cac12be016963c81027413c6c1432fb0c06405274f96206102e5026d40098d2684030a93168886809c70e009920e00057910bec12a0039618109919317963c89c2e40521202445434fa0000d090955c02a304152044434f4c2921f6114130131296232f4a485a21794206101091328570914159c28191a21274c0113110135d92044c14c78025ee1c99321286e709193179e2c41b28212a02634a10978c805175c68402b6c838b8088900c3d6102e576600520205a4dc806130115bd008588890a35e1176e8148490b365c838186a020011a62f28210d01012a215a240e92054838b9c00b9b0421428b0300d26022a7a12050912274f70422fdc810d204183a8099013274a5a5882048a0b432d2051c1c90b4f36e084c919454e9e2c4122e4820a66f093158084504c54e404280a50099805274c5470020405095091121598a8e044c9929db00c0652e1c9920d423278e8c90a444044633051d10b508a5e781280500c175e2022520280300c5652a44405244e9e305101a8888809d11010140f4230980868e8c912241d2862d284c906943461a2248a920f9f9808ca0b4f86584092137ec144434f8a889e90a06448c909af9004cc012650ee1050d0d0930a3c400cbd6020a017805e80000a2a00b1c08212143e08bb3051d012a0169674c144454e8086805a70c2e4432e9c3059e126dc8297302172c264a8080620241d6802058a122443402a3461f2022d68c99326349cf0c62e205152a444052545400d8809b5f00093264a98143171c28426cc8283963c69b2012440452f2c0182014826c482879e28e06309d464034a8a9cbcb00292a22540434c5470c20409921f42585e3aa834ece872f9c8e39bcd76e591ffe05453a8a69050643737a094d20d06b0c10694d2015019009fedeeb3a6736ff78e7976dd734eaf6977ef78761d779d7373379bb941f7ae5d327bd793bdebd8d93bee3ac95ce78daab9e99cd7dd71d59b3b1a1a6ec9ed2cefa63b0756ef6e15d8adaad3ab75bacff93977d7ec5cc3ccec80ee66f50ea7dd2bf3f4a05900b4a564e6cea757bdb6c7cedc1d4b97cccc9f7bb33aa7ee3f7eb83b7fe04e33bd5677771a49d3b3bbae3b6fd5aaab5e9d7336f76c66a6b3bda3cced2ebda9cb06c454ccdeb372f7c9ba6b9cbb2500dcb99b5d4a36c1f94877ceed75d8dd4df7eeeedc27b3c7b3d59aee79d759679d33335de8ddf2bc76ddd3a74fe9de49afe3eaf7bdd8bdc3aed95b767bd3e6e6da75ddecb8dba7fc9cd95ffd720678cc8bbfcf4be0bace996b15ccd963fa6b27815bcdeded1f3bcfe62fe673eee89cd5f39d6e4a6e76ccdd81f38e379d3233571cf73a82b3f367844eef5a16f14efac72ca57badec7536c7cc1cb38b25e7ec629564664e72ec1cab24c72c5d33eccc719c7bb333cba8d8c52e5631ab58fa94edee524a6666d607aa9652ba945d27774b97ceee75b6172ea0e7f44e87bbdae9743aee1d4f9e5d673357da9d94ec1ef3f4d0eb98ba774c4cad353552d6aeb5d6ea9f3b534a05a0005aadec73d6596b4fae554a29dd9b5ee566f696bbb762dee0b77777b633fb4abacbae93b9bd7bfa74761cf7af99b95a679837fb9c35d2bdebbab9bbeb6aad5dbb76e70191e6c93c9d6b77773da777d5594a76fe12306b7b3765b8e7acdcec5e3733bb9c3d794e4a71264fca4cbb8eb91d019d75596bb7bc4e791313d341d7755d0731ec9fb3bb77af03b07499e6eed8abdc717bcfda9dd7dd9d0c40d779bb775de7ac62667fcdcea9b383eeb6fbbcbb79327b77ed3dbdeb3aefaebbfd93d3c5dcddaeeaeeda2c9bbb99bbdd6537bbfbec9e4cbbd9ceee2d99bbddddbd9db277dc1d77ccccec1c764b67eeb86badb5e764776fe7ae7d52dad3dd6b6566769f3eb963e66e32bb4feeba1f937d324ff639997d765700d4aedcd5f69eded23b67f63999b96377664a999bbd63669fde2278bb33b373d7b97bb7777706e8ba4eacb5bb2a251d520021a2f843c3aeeb68d7ddf884d0349cb4765dabdbdbbbaeebbaeeae9ba15dc75dd775ecdc751d8dcf8eb99e737ab3e76ceebcdddd9df349bbf68ea50ce225881a5ec3dd81a1272e00b9c001d9c00b44312022242e3c51c1899221eb2a22421234f4840345404e747e10c140800551c189122440434aa0b8f0a48992254f9a80a00293264aa22021eaa04705a0212015869e20f109a10788c95091003cf8d1f3e4c91090a0254a36d0a4c9932101f028011a02022407c80f9b222226300071454b94103951325484a488890b2e3c81f530590168088a65dd380182024589641e1772180868680524434f8a942c79d2a4891220cce3029322272f0c59d60a452f6ce0c20b4e583000b580a4c80993212848961031710107049f0d6078c281a29c20254b960005f984d0f336427a7890f400052969b201242c3861d2029192169e2b1a525244e4414f0733272c302112679887a803404148963069b28117a0c08600a002101111d01014179e2cf959710f5094274b808678827c42e881b204886847d5c29222251b40d2021113274c5680fd0a4c8680a27450009e1042e85101001c00152919027202c4021225442a2c0142f2a4084a07869674a06a021405a809121894b8c0c10f169e3441c28213262cb0f0a4c90f1918805470c2048913264a5a58b2c20a4f9e00441e7400280849110c404e76728a8058f0208a132097611e244e9e30211a028a826448095093254880585032f4a48808890a4d98b4b0044951931794ac00a4029222188062519c00794f784373a74a72248fb81577646474646464d41d19197992230926399247f2a86574343b89913c3232f22446d2e8e8c88d66f592f0915127399246464646d3c8c8e8e8e8681a1dcd247ca43a92474646466d64e44646479dc44872122323a34ec247464647f2a84bc24632c9913432e29218c9a3a34e7224f9882639929ce4481e1d1df9d14cc247479d848f8e8e3cc9913c9249f8482679004d92cc2c5d2052c20150361b5be3bec64a195b83e2b1fe185b934c2b5bf3a89a33a96cad99686c4771144b31511737636b5a50887999afa9bea604026df5352d28d0e7a06e7f4d0b0af569df6e32b6a6fa182b435b934e1eeb6fd99a64d99a2f81b6d64b9f6d289b746234b0d063697a2a5b9b92f4d156b6a60505d5cfafc9a8dbaf04026dda9acaca288ff5cfe76c4d4279ac9fda5a57db37c9d1c08b3cca90420c192494b40247122c58038b94ce1af5175138b183197c0c419b564a45b9d48c629a504b50f3366d37679a4edc8f2ee524e54e9ca556a2e88fce1435c5442d5df2a5f963437553533560638d3086589a962af54dba408d36e028e2a90d1ad3fcc7b6ddeece00428d2a6820c30e1ad3dc529bc7fa472975fba553287fa4b6db14ea720746f648764d0e59b66469ca72441622b25849e24a123adc18c27eeff22d892424fa907930bbb3b3143945d3c2b2323c29a594d6b5d4439444228efb6a2db3d7ede7970f6b9f2a52b71f67a77dfa366c74dd1602701b0077c683d73024c2786ccef91edc911e51a33b7f543580e1b8d462a9f459ac4fc5295277428a56ad8dcb589a3faaae3f119fa207d7930c5ac0836b248f68371a5020f098cf9052485e7fb983c72b7c1f7842f2761059eef7f45b2492b7bf4112f8aa6c907c550f4996d12faa5788a7aef70d1af97eb5f22cfd56896c65fe17c495fbbdea3d8f7ebd7a5583476609aaff9e488fd0bdf752f45e257eefe091fa525a66991cdb4a96c957bd278e7da52a4abd425e035b913ce264db2179fe07773ef756e2b8dc7727a400c492d3de61ed73c3fdebc092b4608589d2743aa8e3d29df619b98731e5fa4ec2974292f6a1fc6442fbc84b7f06c418973e0874ce2e652f4f3e7f478ee3d2fa506ef7cd5fc4dd7e6feab40f1d6a091e4172bbafdd3777967987ada7024d38d2825b71cf3fcaee5bacb61339713cba5c100796d075dfd93186dbcf97b3a3bcdda2bf27bb8ff8f711c9d923f29b3e8ef70398cb8954ca70c7fa7cabc225f45cedc33dfd098e507f8c61aa04f99c1d5b865bdfe3b6d54e1cb9e727e29c0c57b64b55309e08977f5acf1fb60ff8fcaef6593df3e3bc4efbd4e787b50ff7477725825fc523cff39e487fe24d7d9515a53b1f14827bcfca9dcffdd074e77bf33def487eaf5279ef49ef85fc7aef05dd1ce99ece8ed51de9589df7f53dd5eaf9aa56d6487dd5abbedcf9ab7fba33887ef7df57515e95834656abd5ca06d11fe7131d3d80e8e87e1fc4fd03e67776e4feb32abeaaead18fc1cf8eb5fb3d278ef372df12bd9398794639a5f549cc3cdc4b1a11ff448f7e9ce8df129956c5232a1b04fe7cf0192c12448f107ce7bce7ec08be676fbcef9e1e990fda1bcf1ea9cf7df53871f55d50addd91dad512e6abecc8bdf79e278edfdfa89eaff79c78a3b246e87bdcf3fd61cb9defbdd75fd0ea3d3bca3b72ffbde7df4afc7e94f76bd0885782679965a3f7fe2acbb251f5fef33d3baefe133d793979e5e54b4110e1f2b3d74f1aa065b8fcac99102379b4ea2f071fa0dc07db106304d1431609c4e7f5f7dfd067499f39f186bebcdd7731f33db8feddb7485f36d75c73fccd556ec9dc13714ea4d7a36253c943d82fa97f747e94f67b1434c26e701d8cd5b32bd9860df3e0fa5127dd0c8f2511e17c0e3d5944d84d5cbe5d61e27611976f4254b9b0cbb720b894502445ea8e475cb83bbea003092e7f4b16113a17976f4c33b8b2cbe55b114fdc9dcb3722da90e0082b32a2ae50922b45c4153262ddb1e80d14bc8ab863515311de1b772cb2e10d7a472236a4f8c00aa83b126d81ba5c6d369ebafc97bf7df084e49def4d913ea56b5cd900ffb6e34d09a73b7fbefc96e2cd11bac69d4fd7b823d1d19d4f9faf104f4d4d8d47b79f3a5d9945e98a57bc5e7f2d7270a948d7b8121ce1a3d0485bd447de45af1b1c414e5d213945ed4d09f2fd4790efb6c8e35b12596e515f6ac7fe28f2fa1f5df1ba28de2ef22eff1195cdc7962b5bf6facb7e7ed762b6283bd943c8371e9a6efd6e046ef5551c571fa4fafaf4bbf7f75afcde638937ace73b1e5dd677e2d86d855a374a515fd67f2df186f5f286efcdafdf6bf1a68469b35defe7f5eb7d8b7d1b1c81f52d31fc4e647d8bfeb5c479bdf97522cbe0b644bf1efd3a91f7b82db1af375b32ed2617fef79dc87ddc1653d99305be5ff07b37ee27f68762eb89784ba41cd47d7d37e1488bfa5c2b1b91df49b084eeeb4d097ebff7fbd9f1888bcd765bf4de93a0e421f49e257a2fc3f5fa6389de7bee82eb4d18301ed7a31f4b24ea6e94be2c0cc9ebfd048bc81d42efbd091a6137aef71ed3d952d60e58de77b1cd7059e2ec7a2bd5b7073eb36ce581ffadc4d1afea3fd5b752bd270e7d20d8ffa97e25326802efa8f859521b366c5a7bddbe1ac6921d1810fc3e107c291a81200882cf3a6018cf5bad3cefa568e4799ee73deb783050a96a55a9ea77af52a9545f7988ea59476583425947f77b126c9675dd2dce86759565dd4bd1c8a8fba9e221452a0f91c3e32861d7bdd71a81af8ec7b973eeee5cf79cf8b1ac9bf5521eaa5cfadd1371ee8efbae7b4e1c81fbf944ba6b24bc11f8b6de636666e696cfa2bc925b1fcb5adf620c21ebc1ffdefb18c2d5abbe7ef73184dcd3b1ded6b7fa5badef160abc5609dd770daab8effaaefafa9c7be5545e57dfc528f2d6fafe6eff561b54bf7b061b5055763cba2aa9aa5577af4fc4856ab76babba76ed97fce28dbf7cff166ffc5d2481c865de19bbefde45bedd7775a8e88372eb335842925bbf5ae69d113a71ac1fe4dfbd57453b24c45236db2d92b9ab772ffaeeeaeb33f8002857f544ba8a434209b8cd32ff22eed6befe2a71a87e117757cfe0112457f51c0825e04a96a9545f559679c74123f46b15e577a3bcfc541cfbe5333882bcee62d830fea32abb313ca6314edfa3fe9e04fb695ed7763cba2d6b1d33f3777ca52854bb9d6c51c86f4b5a16c759ab64d15da89b9a9ae2e3d61685fc562be4f499fb4e1cbb8f12de26d326c31dfb853a3e6498ba51eaa80a9a5f9fed185efe16bffe289dd05094ee121d5d698b30f75dd477f5dcafac90e4e34e9558d477bebd2941deae7f8345fc399147f9dcbb18a539eeed2854bbf3e978743bd9553bd66efd166577777d497424e446f8fb3921bf73daa023f3887cb741fccd2a597768d8923ebc0f840deef0f449c20ff090beb71b85033db45d296d577a2dbedff3f3ecaa78f53c447ee2b36c76f9b912ea57f9558a7c25b8f25646542d793d068b701713366cf5aaf75e8245a41d8fae54892bd1ab6214794779552fc528f2aa545f45bed363492be4f7c6885ff9d23ecbf8e5ada2ca06d5f77e8242f572ef7d5e4bf5129454427fabb2fcd2abe2585fb5b2e3d15dc9222bcf8eb5ebbd1455a2b7e41df923038eb4b8cc3bf2554fc4856ad7fb55be1285fcfab34a944aa17fd822df4e945d4eaca2273ff99d7823ad90bc9ce52e36dbfde0724c78be74e73b7d0fee48adacd230be7cabc2c59355da87ef7c201e3234bb58f88f588e97cf6c393b254946e35e698656a57d5c773e90203408c726575669d8fcd90a4e98c2bd7c222d6de128abdcf923afe0ceaff1871e93c1152a8aa0c229ca66a3712f7f0cefa449d13699c02104331c81056d4a928c265f6986c63f25a969dd2b2180269f13951040ab6941417eed048fcd9750773ef7352d2874cfd91a118fcdef6c4d0b0adc4b5b7b8fcde7ec8c6f37f92343f10c6800038b1d6d2ca18233fece0fc247c8b4231fc6c0820822b6f8f2440c684ce31f67773e8328bccd469355dac7833b5f2e754f233ce621e3eca835b64f09abf9744ea3eb148e3b2d1db96e7e679d7076e4be893b2175a9e57e743bd6eef4235c460e97b3582afdd1e83639ba723927079872bbf4c7694718ae3be132962efdd1037772d609c771a9856aca82006b703177d872712edf76b872bdfea888a5c66fd49a9a9aba425361b1d5a0c009292db0cd97423e3575b1d836b821891e988600c0d4c493ad080ac771b1d808b00617b62807987283c1c6652cd1f8470f5cfacc066026c0c8b7252fb7485e2c33701c3495b5711c34b6357e23274418c1860c7cd86cb46a6d536c361aff587bb723146f7e55e49fa27f831420c01a5b4cd1f819a4408c0a50a0440da44c4dd1f85dd79bc3c2f33945fa527695d2f7af624829d7480e521deeab61f4a728afe7df7c8e4e7967f709fc2b0f71e9f55df5cebd73efafe2be72fecebd77efee1e27f2a545fa86f944ba9f7bc9fdcd7c79fbdecc1cb8a71d4745792bcbb8edf098fee421dcf3534e04a16154ca9d358c3e833ed60fd4f79fd5d387f98ff7f471da6736ac3e7d213ce459569fbe27861dabbf126bc7aa4df59f57c7ead37fb58feae9731c7704e1d2b7e121f5ddf6712277f5fd7380ba380dabdf2f5f82f56fbaf7dbf7a6eb9e6f4b345cbe2d21dd57c3ea73a2bc2acb0dab7472a2bc467d44db9df0b87d3afff99d282f15e73338027d669911fff93c8061b001fef3eb4f3bd63bbb97a0100c536690c17685460eecd1c7d4e59ee8e87296a8b3e3fca662933a650619260c0d1ea97684c16370043a7f8246b867968db413e5e58a4c7b5382ff7cff6983faa715aaddd16f3f95dd85d7bd27c122de7f4fbf8ae0330f613df71e4b347274c7efbd67d0486505d5e7ffc4b1be7c4f5ebee5c0c7a52ce31a34d2fda0587f25caeb790c36a05fa57a5054fd4a64f90c1651d9515eb6a3eafb5389fdde13698fc5ef3d91afc7e0086cbff7faf34479191c6175996523bfe7c9cffb9e48f3e78955fc1ae65f0bbff77e75c75a42bd9f0d527d7be2a87a79a45f25572b91af4ae45bf9726215a7381bc69f742b1e0f85f3c7d7a53fa37476e9d30781fecbcba58fd33f4da3225cba73e987edd34f29a5cf3ad406f1cdc86396cfdfdc52058fbb98af61ae13da67fc2af68eece5cea7df55fab7e37ee42fb77b219dcf5849689f316ca17dba17a17dfe769f42fbf02d07a7db3d06fa67d29cbf7097db3db78f7847d71d85dc8e3e91c6f15aecba48316ef75e7f2df67d9171bbf7b8253b4b484e5deeded53ef3bbeebb679dce06b1943779cc81906f3bf071c77a4302ccf5e7dbef63e81f046b9f1ba25afef8c2612eb75df747f0d70bc73f74d7081ecbbe08bf2cb73f94311eb33c5943381b269f6bfca7e82213cf6fc0c3ddfff6ff77c7f0ea7c0de320028cc711507c9981143ce840078d6762a665b088fc19e270a5c3ceb9fd5f6569bfcb371caadc695f0d937ca381c74561d7f6f900e07193b0df631571430f38de1116216850038b103adcc185c6a0279f75c699282f5f4fce86c9d90f98237076fccb7de52e6636cc8e457e57ff6a1feffd71daa7f33a95ca8eaa5fbdaafb1a16b64fa77a7faf13e5f554227f2fc11136b89f1dbf5f7d27f2fdc422bfaaf764b3745627f2f544be2b95c80d1b5f577ef51f2a4fe38e31cb469c2bedc8792e2527f24d80fc2a16d12b3faf3f182ef72c8ed541ee62e433a8d330ffeebf611d8b531ce5e5c422bffc520c1bc696dadab00eef57ff99369bcd66a3f9c378885fd7b92b4941e02eae10d67a4395dbffbdb8dc7e9c1542f92c2f148fdbf3f83b72205cc3d2e55b0db63bfe6d2a52f7fd67a763fd5dc46b71df5108691fbed960e5f68bd03e7cfde533c84238c2e80be15b95a6dbbfd33f92d62f020e4efbf4b3386b58ef34acdfa928c24023f2ee340cd6b07e0d8446b7b60feb3495be83b78150bee7c9f79824c844735b9c66313d772139259fc11abe70976f3540815d48da5dbed50086535dbed5f0824ed6705f36dc97740759d61fcbfa598c21e49b0d4ad72fdf6c98e18e95bf1f64b18630f7c55d6551203c6eeea1a084369b4d06d90f80dd26d2d24ac8371bf0b81e5c9f3c845f08f94625eaf2e5ebd16ff290be3cfad397efbdf0ba45afdbefe228878478eaf6177577bec781475ad79f48b7c82c1bfd2b97c03d7d0647f0ef88b48b7cab38d21fe5f5efc49b23dcf7b70da2cf3ddf29f2e5c0231e5cce32cbfc2758844a27b0db3f92268f701e4e60b7ad6459bf830f805db7ccb2b6dcc9b984c7edfe2399dbed286de091d69def629479a7159253d79fd9999965ccb346ab65371a9ed42194cf967f781e7d6e58a54f9f487b1e8314e8b7e3d19d6f4473b0c87c22ce600afe6d6b47b4dafca6b98bb5231afb4fff58e43785902fa320df6dcd8896a4452801977b49a3e2b4a3bcf43971f44bbf457f22de340651709a7c223d45be2d328dfba7d28edca8bb952a407f16f9ad542cf25b82b4d96cb62b7f8a453eaffc39a574a388bfe7a264503e91a6f4fd1d2ce22e76fd1294dfa0b79433f0e44b7104be9e14abb8e0be1ac6cc4c8394bfaacc1a245856d06f8245e4e5dbd2d27d356c8242f332cbf8275844484edd1f2ceb9f2c52905f8af2b22824a7ae7c0a1699d6d5b07e29be58d6efa251c8371af870fde0217cfbc3170f593df57b5dcc19f59322d398af61dcb011e7ca675dbe29c1715fccd1e92db96351228842bed11075e9e51b0d532ec7809173167926840e6bb9442164900147774e5bed91940b98420148c07c71673ee28fbf41138e6e105b21a3cb3ff687f28a2430976f494f77ac77fe07976f4957eef438d1931434e1e8ce11e4e57e3cba9cad2d06c983be37c122d441138eae33c8fd0d678dc8cb3d676bc3e4b3bcac336d5068c53341fee8df520cb287946cc46314e6fdaed7e2a8f7b7f59f941ba1df9f4873fbdc18e9f7776ea41fe43f9fe3beb64f5feebb378f5108bd16b74fcf4f0a73f94a5b1b367fbed7628090d19d42f24ebb018f3b0cc6eda73b8a30013b6e0de3cb56074b67c3c66958c74c800e241ac637bcdd4b0e85c73a1cdb68a308dde53208fd5369b72bf8b85d5145d611be4efb387df93b23b5df30e9a24ec33a1cf4908204186da840ca174bd427a64cdb647629a5d49fe951124a4c7b4471e587134491c00a05c10dffb0f9e35f9df79fd07f3afb3159b801471355dc50431c34eac5a51f56b91c971d2edfe8ebd8b1c9ec4efb2d08e5bfce07c71d7f466be0c297ab0d2a1dbec6f0ba42ffe112d8402d18491cc8659ae1fd4c1a3fed388520dc4a93ff72251afd71e77250c85ec4f072632e7b09238ecb603f91de6922941fca978f33ce263af7ca0c3f9336e74b96f7bfb985883b7ff68f14dabcd38e4d742e37cc3f041372e83f93566f8ba1ab63f27790086d2edfb62471e7e5db1623ee185e69837eb6a721a968da52a5a7b8ddee299e6ef70c06e1f8afeabe7b7a2a91e51ce1eaf9ae5e7eb7ea3e68fe7c8f824554261c5d293d074be85eda31a87b09ceefc4204e25ca5bbb2955d25d503d2041f608b9e9647683fcbf86f1775fbfb99f3f3699ddfaaaf7aa581b4647d83ddf5689f5b2ff545a7fad0f8822afb4d33a995dce06cda7d688e52adb06777797ef2e1b059205663499d12c9106134d6692054d7466df1270b6dc1147131d8ffec8ccecd4f29c0376c3cb0277b4081fac2c11e631d67777ff3df7cfd7b1eebbf7ba67896011d0d686754fc43f71ac57dad1b512c7b045e081769c79f9c2635cb623f86093d97532bb41dfafc6d995e367c7d9fd5ec7f5fcdf3e31a3ebcebc4c8c2842c3fa5d22081d9bb1de8732e27b4c7e4be7e5ba20f8a1ffc8840c1609edf87d37fe059f258ee105ed278eafbb12c7138cfc28ec3984d7755dd7cdae49f70c1ae99cf0971bd47dedc491bf7496f5fc3b33107888f7fc38fd5313b6646210a0f4341ad7ccf3cac68858687ec615d67cc7ccfcab61ddf7cb88b361ddcf88ae86755f237ec7ba5f89b086c9887c63c41d2d42d5bfffd0c4ac68c4dab1ee63c4b061dd87e2ac61ddb744101ad63d4b5c40c3ba0745121ad6fd279ad0b0ee3df1049675cffe23a4635df7f22568a4efca72c33a95ed669a2aa14638d6cb715606c923e42e57ba11d64f42dd8079f9315edca51b45f801a163f4bb5ac3f0f5fa87cd1a46c34e1c650f97b32e8b45356bc36e5dbb164fca6ef739298bf23bb0c8cb4bc87674711a21dbb15e4e9e20e4a72cae607feecd1555715fad0d637fea1f446d6d18b3acf532f308c39d972fcb950ce674af93dcff60199d359ff37b9ff9a3d34f42f51ddddd3df63a0ce89cd144e7cee7a457bf248f06bdf33bb0c87c9c86f1bf58c60f254c41d1a463d775dde4c622f77a9050f2e3ae81ed48c21572e7cb2fa17c662d76d898ee1376797c71b9f3dd5fae11caf726dce54e1915ca975073be736180d07b86ba2308a3ab89f090145806fef8ac1f613f4276fa07e631ffbae7d9f5ab95718463b89aa9de6b9d231e48638934966e939917131a0675252bf49804e527ca0b8a3b5a84a31021fed37a7f222dd193dfa7f21f57c7bcfbefe10885dc9510ff99a2a57ed2d35aefbf80f619ab4f7d7f12daa757affacf8e38bef2de9b08b9aa77f0480d8c1d9070ba4df8cb55cdcba0ca36acd5894224437dcd5151e5edd2ff72e9ab7f48f0187d211ea3cfcf3b5884f36b0da33b5cc21d2ac2515a9156daa7bf6d91bc45aeb44fc794a57d3a8bc5a97db6b4cf4dcbdb851ea335bc2c65274bed6811d22721051eb28270e4a84b3f890aed539f7e0b36285d6b9fb109eccaefa70f8309d58eecc5c1229c2d9a320a96d1ef10465727ee68c1d44acb37c291a52ea50fa5681402836c9aa2657ed2d390681f2999da673eed7cf8d28e04bed536e12e473e90c41960a26e138e9a9713e79d22cf0e41beab7f9856691c5e4a1b77ae3f95b72e8739524a293bc7ccff727d505de727a1be65b7ec6e779e577eff27a1b8fbd1ddbde3196cea70df4fc5f175b9fb9152cab2f9ee921347d7652a8edfe50a02cbf8a90c88b04c042118d069a389cea520f0c374a0bec7c79128907c9f562ace8649cbdde14df92d4a13a2dc8e275c7f298eb32ba59472845d139accd8cb6d220deb97dc458808527eb94f429af43be1a81b24edd1945e8590dbe377ef7ad1af45be5a89f4e4d601418864ced530eef597e32c155b326531cb66c3fa192c22a44aba86e779fc2df2efcc6e73170c5c9dcb5fe3a211e736d1b90cc2edb061ed92963e6ce78bfc944d845cfed96313ee72e573d26f98efcefcf4478ee3e7f88338b63d3abb94835f4285f2a79423942f53e08dc051ca4c9fe907cdef3945fae39c2fa968c72497fe14251aa1fc59442f9d1f44a5196193bb38afd7dddddede34785effe8eefeb3cacb3cc4efc8cfccf332fbf88fdd3768a8af4f4d311b60fee8de413ec521798bfaf2119e9a929779887b2d7a98b6b5a88f24e01eb9f41e3c3e807cc1acb4fcb8cb1df2b8a7b832450f32f0e43f8187ec02451ddd16b7f90605d32df2ebdfb7dbf1906699aba64cf006da1282eb44d0a99c6aab0a15f8b4f234bcfae55b4581ab395851e0114598705289f96e90590531130297144bb86664626858b39a8327c508a5e072fb77665278b9fd20b44fdf1e3db83c6426e022e08e38e290ff5094f0f20bfd8de2976f778a1b5c6f7e530422beaec77d53b4b95ef74db1e67af59be2ccf554df1465aeb7faa6c8733def9be2ec7adf37c5ef7ae037c5d5f558df1455d76b7d53e4ae177e53a4d78bf9a638af27f34dd1af37f34db1afe792899971d1b0ec5051780970bb9f5bf124184e539ae0a3893a6eafa089a89d76ea414ad9ede4e494653ac5e13486d38df231f370b283e32b5138818413556a175a515961a8b82fab4fa2c07302ccf749d10929f009252427f6607dd24aeb4322e42b4e41b8689cbe18a7717db7c7b831847c73f2f2c4ed862e9a27a6a855e6934fa831c3b727dc88095b2cf0f356aa2a23338627bdf8fa6ae28bcf55e24926c28f3b8a11685e044d3c35e1d444171681f4e730ced28e52886f300f3332d4b423cced08bbf2594655718af9eec3f0633a30fe43f3636ca91868c60e53f3f3b2f92d3f6c5be9db77af10ec2d1e6b278f753779ac996e4d28dd514a31d41d3b8aa96425d3eb656a7ee6695ebecd585f3276fc9fb1e3cb8e21535b91aaa109530343544d8d0d4c8d528d9254cd52cd52189a2d779c4a4f7d948006a406aaa6e6f5e5f5fafe8ef21f9b1f373796614080d81f3f7ed8d86963f3bd5e0a8d7cd558eee54b26c9f4d4124c28a39e7fe6e597e7d6330dc9f512ea5be28c8d50dad6cb279a1f3650f2e90b1492149aafb12fa49a9742237fd8185eb6a6c64a304447b76f2ceb76d9b1ced83194b1e32bc68eb0d08edfdf12fbc661c2a051851142ace08e10d060fd9454471e35d83145ebbc8c2d7280c0a6c7153455eb818712361a6c22a079732049f992c609b0a0b1c7580fbe47d58051ea838bd49287b1326d314ca6186653172fa0b5162b779c4a2358ba7d63c160e1ca8e2f951d5fd58e7f3b7bbbdd7ed82dca630c86b36395a2760c4710c6637ca71d5f449ab0798cafdbf1afd34ccf0ce1b1ce386fb7e66bb6d8fcd8e2f4c3e6879c563cd66f3399a4840ae3a271b96a6a7ed4d4d8d4d400a1a171592429ae477ae17ccdd77cd3dce0744080fc4d7df61f1b6bf340543facf74c7bd9186a6c0c34bf7a6f2e79e04f25b0f5d3d68a790ff31da6c348f5adf32dd59d54cfde34abb5c1b847cd47a2b1fe85e6a5b8669e694834d6a17e469c56249415a8db3ff3a3840273c7b649cdb4dc3a8cff7493c7fa6bf8eaa6dbefd9306deb19db4dd2d64d617d85124a36c9304f92d63f99da03bff5524fb7a56e433194ffd0b8bebcfe048fc9281b193035cf1e0b9f86e6d963ac97e2ae678f7ddf2ecb1ef3dea3a9ef7ab0c6b2c7544ff32d1bcb1e5b7dcdc7d45e76f6fdd38affd8d8133c26bf46c68efce5ca8fb163a509edc851577ecb8ea1cbb2c758766430573e68c7d7674796baf2bd69e5f6cffc6765c7aab2635867ddac525be5d7ab3a9269191878ace3b1ffa89edf0b2325692a51d2186a3679cc5695c225fe69f31f7fa697957049e9760da77f7182f21fa67d899a6066935347b1942bf90f92d10cad7e6d5a7d4d4cdf8ac9ca23d53e2b4bfe83d4bd14ae5a57f2587f677dc95da9b75ca5dbef5f2cbf773f9f7bf92bcb6ebbb3cd59f6985cea2830566effd85b6e7f2ff94f585fa1fb97d7b4ddfef1fba9f84438ba9364dabf66d3a5c99b0403a6e3a4e4cd498679da6283bab5d297278f3527a37a36dd9e4dfed3594880821508814318b4fee9e43fee030df8c0b2c4115cd0fae716ff914936b03115664a0d5affbcf90fcf1741bc3195d485d63f9ffc4752a1070f4a32d8c1466b2bfdd28affd424cdfb5e7dabfe678bff70df0fe5eb87c17f3c4b82c7da0c69f39f953da15f2af98fcaa6d02f97aa4d1203675bf0587ff7f42f2cebf72fb7dfdde57bbf14a19c52ddd1ecd00b18fc87bdaafa515ab99c2469aa6fc53c8b9f57abf7f803fffbf05b3f4aa5cb5fc5182bb78009ad744a92b416686553c87f4292a4c5fcaafec84f3ff2cdfb51c8e5efc7d9e587f94fed84e78f11e593d812e5179628a3440946f5fc15068ff99fe031f0f943d0b3526965e552dbf165a5158f493bfe6528a827f9a36482c1aaf7feb3fad5f71752eb54a9de9f04fff1bc87794cbe67bfb3233f5df9e37376e4db4b65436a472157fe18568f4d3bceaea4ad9ac1639db16f2387f9f923434d3bb21d6197edc861ae3f15e12899a4eec861c248f9cf972f515160c08cf2c97f6a6f3443f3974cfe53039f7bda7deffdc84f1d5dbdea47bed1ae7ef7a3903b4a2696adc5007216e6b1aec5c0fd28993efbded36d655f2abe6da936ec843871b6b2c7c659af8eba67175ec8bdbe7dd28e7bd6f3ff575fb5f23ed0f534cf5f9dd50a636664fe4649d25c343536407e4a52a5fdf8974f499ad16e2c901fa2eb25ced8d4d0882f97f88379e4cf88b553ad98c7fb80dce030cf06391c300f0b6c85313240a4fb522d9cabf97e6b1bfdf9dfd7dcbbd96e6d6b49f1faddd7dc7f7eedb3b596f2983b4199852a9617aebee6614379cc6b12aac67289c98be9288eda9a947ae9d4fadbe736d5ad6db6db375349394939a9beeb282f7ca6793f3613b8924c21eb470e5bf659b642819f7d7936ec25950dab7d4119cdd03a5b3dd6cf34ce326d7aeb48f68a0c8f754629553b8e3efffbcf7c7e4ea4a2149fa214efc41acd57b166f34633b42949206d729f2469dcd29c4fe7d7ea27495afd1a5da9987e92a4515fd1cc44ad3e49d25634b6362509a44d514a008de69324ada60505d7d37ccdc6d66a6c92a4d1f8bbfc676c4d4679cc5fc62649daca3fc642f198bfcad69278cc3fb4499246fd5bf66b2c9b2469d5d6428ff9835632d5d863fe9f4d9234cedfb372c96350957b2ea44cf236a1b8e7a859c752d7573fcaa895359aa1d15759a319da7ca6755f9f69f547e954c54ee4442a4ef13d26a5eb4876d749dd70fef81aff8eb0191be1d0af58ef2ad5db1840ef7bb5f26c0caaefe7b3ff7c368655ebe5b3ff207d3336422179bb271ad2f735a520b4968dc163d918be8e0bc385f11fd02281a0e5c278ccffb348dfd7bd7ceaecf89e45f23c7993767cad2cd2eaa5d4475a59dee231ff69b9302a8ba47a29d5c6309f69482acb1eeb974e1eeb6c3336c221ee3b4c96a76e7a6ae25b96a7cb7150b2a9c97f6a52dc68865657ffabfa7ad55f85e11d65534d29084dd507144d8ac7c01e4b8014ad69c646f8b7ed2885e6cfd8088df48fdd937422944e8463c7c485193ba62fb2a9efd83d754ffe239b3ce65f6b18be5e77ec9efeafad63ea9e3a268ee38e1c14178683eab92367e39a381b75fa429d5c779c5154296a75c7b934b7cc257a47bf81712b7e6b29b7f21446aa996cfdd474c3348d32cc4cda7ee42fb3b15e975184128a50defe51367552973b30aa47b45b60bc1f04a049f1a8c98114e703487f2e1c9d6ea68726a56dfd49b2a3798be63634e780e61ed0dcd6b8570a42eb294a329a140f634be268add4b45ed15a86d640686d692d005adb1a7da5201c8b30454a47539ad1fa939ce694e620cd6968be01cd0140735bf3570ad23e69dbda7ca3195ad735c7bd147f51cad9d06d4d2908cd5f2908ad36e3963d26df6886a61484c6c979f3de7f94c2f6f95392fe45eb7e4a5248e3de7bfeea3f539440a04d717d9210daea933eda94a4a7a9be3effcb7fa628e17c608bf5e127e9d0bce70fa728c168539284d0627e4ad28c36f349309acc27bd68e14f499ad138188d328ffc29494f9bcc239f3904f9fc33228b79e4cb8820f3c88f115bcc233f14430e417e4ba4611ef92cd1c53cf241b18679e47fa20df3c8f7c4170791bf123be691af123fe6915fc5ca21308f7c4e04c23cf2a988c33cf2a7b801f3c877318779e4b7c801f3c8379a915d86c7cd4f9a6111a628cd68fe4993d63ee97cfeaeaa56f4f93f6a2bab15c6c8f8f3bb5804a549c322287d352c8292cb864550c279b1084a3a3f5804a51d5adbd70d8ba054715804a570031641e995c322283dad9f9f03164109466311a6659045701b026111dabec7e4f31b4dd9511eeb8c14aa8970a44df4097c29f3b645f552180d2cf47052028136bf26a5c97f6ccd2d0d09a081b656b371b6c63d0d09a0a96ced280b1734505beb0092154a4e8411c514ad46430268d3d68c5870a50d2b4d5f78a0f97cfa53923e1ab7c157a9dbafe4a2a938cae5fc6a3245519b9faeb771d1a781e2e065a0e6d2b4efe0d7b4a020befd9af7e2d76ede9b7fbbfd7a20d3f6fffa9aedf6df1cece0756a70bea6058599aff95acf7cadfb9a928be6ff4da7db2ee54e3f9ef535a7db2f755bc7d6c0efc0beb5b550b435229ef737b6366f406c6dbe6ccddffacdc6d6d8e57a1a5b9b500ec5819d4b31af5fd9daccb1736e60937668f5553f863755c501f237320fdabcd4edd5c730ada26e7f65a27915531447ddd81af8406c128ff5d7d8da091eeb9fb1b599c7fa3b5b4bdaa175ffd9da747229776aa71fb6a59ea166dc0bb4a9799bf0b999d6874eb759df5aba0d3ecb97be07970214d002c6144c45e891c51519884f8060411827d0e20a20aac0e3071a779c51022e4260430ba488c10efdd334c5089a60810a46f00506ae04ec30079839bc54d18210dcc139790388369ae23882052890d2c106005cf8a0214a05535401c50b5a3b0cb106120f70744152c3053bd410f4501a4209386828420b3bbe27803842054f4c59a28c3075ec30595b544105131633d8d842c7efb8710213c89047135e7a9803c801d09063cb1d5150c4808b168430c871c11620c0e38a1fa0e600130399cb711c0c428e6fb72b7770d1218b14152c88c17c39eef8ba3d82165220b1e08929534ad07a05b73ff41f9a1b44b0c104022d750c41ebffcb60ff25d2ac23b77097f0f57452ea85862681eb6582a60efd87a91b655cea7a4a296d30dcb8b9b1c5dd045298c0e98ee1f751afd77a71ff3c8449f043a40d278ff1bd47528400410d62b4c08830e0a071715cae8d2d976bc38b1bbe68a82321def8a28d3292d8020479c041e48517b3f0f50fe3a6cf696fa1eaf28d8d3eaefcf79f900d19482e9e8d172471f1aff3e3f28d0d35d818e38e3f43da628be6e20d36c0e8220836aec0410a36b0f420051b3cf420c55fbe7d89c11739b2e0a6a023984ab8fd428492145f7e5092e2cb0e53a49838976f6bcce0ae2edfd6a8a392e1f14f29e4537cdcb64996b5d1ed9725ccce4a86d10fcc1ba5a51de2bea85ec90490b5db3fbf06fda728a3f4e5dee33e074b98977b4f7a4b6775b7b3427e397967fbb86d2d66332a66afd79617b715dc1a6ea841c71593ce49e7d739e79ca2e6f24d8d34d430e32580349650e315451469e820258d1ba6a45183947ea275f9e6658fdb5dbe79c1c3899758dc18e3caa72be3b8e3cbcb953b562f6e5c7f1c33dcb82e4569bb574a6b75a428a75c222dbde65e22e49b972a777cdd6e94617cfe2f2ed71fe786c618d75fc755c0814664182c031bd00d060f19e56d3b450906cb647fe5216d8578887cea83c73a734e19867cba63bd47842cf943e40c2c38267d889ce105c3f88e35d7e51497ef2873899c41057fd20044ceb88209c0505438e58352f94e9fba3d5a4266b07f8553a9d27c62f17f9a73ce7ae79c73da71ce39bf37a8534aa9534a279554d249a9945648d24929a5943eb523a5941e49c9cda0e5b9917e9d51c7954fb2ff01f2a99d427965aed40a6220b3e3054fd2007cf98f08f925161e4224a75c898565fc438824184ab08cbfa71277da271ec21cc7653bfaf317d7ad7c62197f3b857c652e7f37117a976f66407d5078cc8170fe58c779e9f3cd8c5bf5a7f4690b66385d4ee3d26fff9beee84f7dfa3b4216d03eb2e25cda31fe71f6b3fa51849518762cd65f45ee587fc739eb503ff29676b4c797a7c7edbdffe03c3f09fe339f1f8afff8f3cdf3cb9bffc8d5f31369c17f62cf1c3cdb6f3dbf10ff613d7f12ffd9e0f97b7ee9e43f3aeffa99e74fc17f649e03f01c3effebf94ff09f9ce787c17f6a9e45500076ac5700dfe20dec3d78003c15712c1290c7794eb41dbcfdff4ee4c022710078d8573166919a7eec3d51c722e9fc77f0a0b8413ffdfa3162006c009e7b0f9e46142d92155fe76dc41c8b14a3f9fa3f44a49b47caf9127cb90278d70e6d839cc7f996889463a97c4043023fe781fc0a88a5c2a271f03716e9c7b71ec752a1a121750fe45f37effad5cf884837aec77916ceb3de65a9380dc9e65baf1291702c15190d29e67158bffa2922b12c9503d090bccf59592a3834a4d503f91b4bc54543baf9f93222124db5547ed090ea03f9b6542a0de9e6fb3d66a9481a92eb719ec652e16848accf796aa9c8d09068bef5352212cc52b9a121d1bff1c052d1a121bdbef501f84f440a80a5b2a221c970964a8b86f47dce03c052114243e21ec887229214a4239a8ea5e2010de9e6fddf5289d1906abea5fa7ff1a588d481a5d234a4f0715e0ad211cd5a2a08a021b53ec722a92c52f848318f24f348ae9f792a9296f3a2a5f24343523d108b04e4a948da5b24f948fd48fe48f4e7732022dd58242a9276f33916897ba4ee91ea23ad5ef5f2371091661ec722dd58249a47aa79249b47faf1afa72269402c92f748df23818fd47ad61371018846b7fb43648ff1bf4498c7f86dc4133cc65f23c2e0317e1a5132798cdf25568ff1cf88338ff1cb882978cce631fe50944d1e637e9628c463fca098c463fc9f28953cc6ef89d2c963fc2bf1e5317e9548c463fc556cc1634b1ee3e744b9c563fc547c8ff14f91048ff1bb08c563fc2d4a2b1ebb798cff481ac5ba62f1b8a36efb6dac6338befa855ae00b793ebfc8d0f749d9faa0e9f4ada0990587057ed06c7a8141130997173499422e685ef9a81d83a69586f50ff94f3b06cda586f567c76e46d1b0fea0d943c3fa5b08d73ff7f4e7fbfbcd7f5cf6d97f64ec0ceded76bb79df1c8c83b9ed601c8c5b7177b772fb3bb7c2d56ea5aab6935aa96a27b5f3f4f4f4f4d44cdd975ac3179d4b61fa89b827eedc3061c2840923c340492809259ba09a9a9a9a9a6a93b4d9a44ddaa42d85ca85fc8567b3d96c369b71740ab134b778acbf722a3b86f475b7f410dd3f97fc87bb7b2ef55cea28560f6962dae2f247c5b1479649d008df861071b3ca7a897e907cbe27b04cc6f8472ea9f8477ea93c8497b6080bc0f312c31f1e1b63aebf47c579e592ffbcbaa1be424bf28bffbc5e61f8e5765c8b320796b914ace3e63710e128bf40c92fd75f2eb9cbd76b2e351377028f75bc191ba110b3ac3b8187f0652b7610a16f51411737e87b20dfef5cda670c02ffe6c67a9c2eaddfe029fc9c31629e0328997f2f332f7ebf7f699f91a75c6fbfdfdd689f3188e63b18ddcad7ef40f42a0debb7a22b35ac5f147d4ac3fa5f745bc3fa39103b47ec300debdf406c1cb1a51ad67f233610b1c1344cca1ff2256d648da411dd0dffe25e1ad62f233a948fd1b0fe50f427efd2b07e96e837e7d2b0fe4ff42d4284dd6dc55ba96a7777b790eae17cf507666430f2d62df84fad6158ab8fe44f881422bfe90bf5142aa5b8c4b2aeb7c1b44b30ed606e836958774f69584b3e1ad6128f86f51b9147a4ed2a3f84a304038270c646c817051e229f6f19532edfc8c0e38e4d0698eb3db48ff77467c9b1a45bd9b2f9a32034fb8ee221ec514b5f5ff5abf7beaf8444fdee3f95da27485adfa2022e55b8f4b174eba18b95a72b63304121e1a5a97d82fccbd4ccd23e41eec6d4141fd7bfad846383d9729965dd8f32ca97c05c7f5ff2255f72e954653847d959a670944ad75f2a2d35ac4aff740f3df44f5fb9d23f8d0412fdd3593ae6ef1d45c3fc5b887014725d88c7fcbd65c7ea852bd08e2fd5df4aabe18c8774b6b7743ff6525494cbe7493919d55b7848f7eed9b1ae7ae955f6ab1dbf3b3276665c19158711ce8ecfc7f89278346cda3114927534ccdfc811d9537e08e511285556ccd93df75dfdbc5f3df8df83ac6f3dff2be6c38f797e9c9997f91921f94434ef7a1a9d86892ef11bd63f23ca8831a2d8125922288662287e5f153b711ec9c886a2c376563bd8ed3ebb6b40fb3e69f5d36ddb9a11f7dcb7fc7bd237c2e959fd8d544f5ffd46dccfeeab3fbf6b7ebf517dce7bdabdd1eafdf94399d6fcfafd46f4b918d5776fe4c98446de7baca4150db4523808bf96b4a2b158ab37527931fedc7c23fafd4a4068adf7befba4152db4523860d99aaafbae6fe43f5f09080dfcac6779a5fa49dfa8fbfa3523fa7465e7d78c54b67ecdc8bfbe51f7b31a755ccd884e236ffb1d428cecacf0a623a076f34a40686e6bf36b491ccd853830eacca0b9ad25b168fe4a35b429242795d29a520242f3af49e1206945a795c241cd08fc9a97d2024203e29209595eccd7c271d5c8842c6fa615f3aa9171852c8f2666c655e30a65eae46668c20d6a5c32ac37fa3ec4f1541d7d23ee1dcb06373ffe45fff5b25238a819d5d5cd0f2b85839ad16a56a6c1120d07488d4b26f4dee87bd6d79256b41b2b85831f2f5b530242b3b135a3d5d7b8644296a7eae81b7def5f33aa5fe39209599ecadfe8fbee6b46f36b5c5f33a27999af19cd7cf835a398677dcda8f5ded78cc0efdee87b558dd5a1b1a1cbfe8c75c9589c18fb0aedab657158d6055a9d37faec7b365c5956d9afdad921c810fa6b469cfd3a8410fa8da6ad1d827cb7b343e8e737ba91aa276fc64638449423c42fa47aa1fa42dd0b712f445f68be10510775fb898a0c491e623bbeea875476c4a93f54edf8ea7ea8b3a38bfb21ce8e21fd216ac7af613c34ed1805c8f51feaf7e66e1ba5e64aaba36a1f228e23a2f4858854aad5137d1f51ab1512c9c8cc10b9d310d5d4d810bd5e483ed1eb857ed8a0212121234684e40bb95ec85f28e685582f34dffb23f58ff40bc9b6a3909c9a9aba2d7fd8f125edf83676acc171d1d8d15d767cc5ccd85126c68e2e5668c716cb8ea107daf1f3ecf8adeca88a02e4ce8f02e4d6310a90dbd9b133e372fed40a7130353575a71da300b96ec7ce8ceb3f1671d76d949adbf62567151ece067288b4fca3a6c501b99936af3ae3a2f9c21899b0685efa42ad1ba546c543868ab83b5f2801378aebd22143457dfd85fc467981dcf3b338eb5af19028dfa543a2cc4b874491b943a2aca2f49d16a761724894f0f647615d1f1285bb6e751a2687b4f52c1ecf1f2aea9e7fd28e5b3d7fad2b15ebf93fef6381cf1fc684df723dbf8b75655c5fc4dd992faab942ad6bf3fcafefd2fc5094796dbe68de9a2f725da104dc9ba12299fbfaa1a2d5fdf14351b87bf3457d810c0d158537e7878aeadde071bee87585fc723054c4ba4351fa72609b65f28bb82b3f477496c9df409c2c938f235296c9bf11552c930f44ac2c93ff43ec5826ff25722c936f237e2c935f237a2c934f23ae5826df25b6582665b29065312c9361590dcb6858e662d90ccb7eb0ecc5321b96e1b0ec866540582693c9e41fe5480f1372ffdeed3431a9e51bc23983e728a560c0e0524a67985edc9144c85dbe8141c71dff4aae3d8daf4c7142773db9f1c1040d82804193141b679820080f5fa12b0c81b460ba018e2ca42002cb97a7ef490b1ec29acb3730d2b863f8de02ead37d7e8143f8727707e38aeb5568eeffeeee5d25645dbe81a1e5bb7c03c30830aee4e18d58a65b232dfc5a829a34e16febe4ca37ea23d946bcda3edd6295cf2ca5145bca30d658630d319c485abac2694a521b6b7cf1784858efeb7aad2e1c855c1fffc6819b1c37459d86d1a0a2b6c9ec721cc7d9974b5e9d95d22f6c97e3922ec771744e773086b8febaaf03c6941b5ebe3de1c135f5d252382f68dcd5c1e3b8eec7ef7292e3b89ff5398ee37a8690e33a71725fb9cb3d395d8ee368cb10f29d3fbfb2ceec2b4668b8608b33dc88630d3568ac06d771c63a7248c89394216690a38c1c6e40e32949f594831194524abde843b545520c565ec82069f6fa820e1c247d4335e77400134c502851c40c5a7c71c6175f805f78c1e10b28585f6cf13a72704a785e90408a0432340e2d32d010410a945290c71566dcf9e11077beab7dfc0b227c68195c976f5e9c71bdcb372fbe78420ac76eba1de53f1c1829c549288f713606cef6850b13a52497a415189a9466fed37dff28843e6d8aef310e8a8a3714984f9fda18ea4f1ad33cf975454e8080a4754fe777d688fb496b5a28205d204518365afdf93523eebbafd688fb188c3a6b7337e8e8c1469b3fe9f7bffc6786e036b19bc6ce72e537dd50803ef714ea8602f3b99fcf491a1543d1d2a3ee0e0433ff691abfd76abad25bcffaa11456affa966130855a25d21100df7bcfc620f3a07bb498775b64cad4183057fe8cbaf23b29a7f959f333a69379b0be07be077af6a65fd536288fc997f972d361ae7c562b35532fb5952b9f8a43f441afbecccbd81862be3ed340999ff9191b43f732cf34efdb1669d7cfc4bceb194ca1fb995f52baf2412b57be4bbce1fe88e67a8f8a43fd29b45ef5fe4329ac9ef5fe4214a879ff7deb2950033ffcd57b124c21e6eb4b3085ee65fe8429f565beaf2f636fe6d734c1e031f931a2ed664aa62b9fc63ab9c4a72b7f46bce1b6dcae5c89a1f8f2d81091bc4242431188c00b0da5704381d5b77ed53f94c20d055a3180df7aa6c97cdb22f4e7c77cf75ecc339802f89d8c1823def41fd1ea7b138c00d3a6acbe4501ef57df600ae0b71e4ce1fbd5339842685bf6c69f05058a9f5845f6d84abc717b0277085faa787344638f198547b42b1a1e77db74da36eb22cbe55b1757ba8ba5db48b48f7bfcd35338d6cf5d45e5c30c1bbb87db3fc65c8e99c01c5d6e5d70b9457dfd87e46df907b80d3e80bbd28977fabb8890ef1c9a77e42f29344ce2118ab79d963cee30777ef75eabd639761df7d38efdddd3addf69b1e572df493ec27e39efb77a7e8ffb70a89171beea393b76bfb2372570af7aee55753e67b9fef6e1207b849d0deab877b0011c4e575f9c486de87ec5e39e134790b7dffbe46b01e6cea75a7cb91d5cbe6561c4f5fcfbaf7dc286f187734123a3fcf99d0dedd7306f5bbd9809d01185fd6c10f7fd23f7f47146faae7ece0651fbbd03973b94b8d831a583cb372e6170c1e299ce1ed6840e2a52c0c7d40d4580419b62dcf9e11477d2409bd38e6e9bcc2e78f966050a6ebd7cb3828e2cacb859010583f95344e25aa6e26499fb51c8372eac5c9e3c847e3fe5213bdc977471bab34b02c8206c7461bbbc0595bafe5e7710a10473478692ee74bb338c3bcdd808fbf93686157ffae43f44c490ea188b1106caf64529eafa184b1de33b5230d79f32f9cf849a61fca79f9ef82644c8382b17d2d7943da178485ba2ee8582faf91275d69b58e62fc3b0cc5f367de92b615bc907cbdccbe59b1857eed85fae7f13118ed500fce3fe3fecd3ef53c898ff58802b522c0cf3f7296401ee38c3b893ff502638e63f6bf8fa1fe6d8e8c11d3d68f001ccc5ed07128406216f71f98e33cc752bf0b8457d6794f907b80c1ea1775a4a65e784c7fd236d3321f7a88a278e7062234c0c629085c6615cfe99340b78dc3ecdd92a8ef5d6ef7848c7f1108ef210ea3cc49b87b4e4219265dc33276d10f7fe1cf7447ab657b997d58eb55eeebb8ee3289dd3bd79487dee6509dda59513eb735d3b2bd4dda07e9fe2e84f7474dbce213ce698dab09d868d308f7135ec867bbe95208e3bff86b346fa72cf37a82f973e910530dd7e28b5fef19bcd669381d66f42fbf0ad0aa5db33376ed3c6f092d03ee16ddac85177cab439dd91c1fc4c01a3b4f0ad0aa83b321eb79f132760071771027354112730c752c3f8cedaa7a5d2ed0fa3b2a824ca942b94999824a1436a46682441000923154040482c188d08049224c8f10314000f9db05654a0c9a45112e328848c2186104208000000110091191207001897fdd35b915f8a1febd55527610e0efaf606e4470a3ff45e2671f2ebde8b29b8a5f4259bb1258b70fe55afae2abc29bba51ab102c939f975af1b8b2702ee98e0f4d06f6f7c724af9a3773349ce7f7a1ffa93c25b28d988256edea481e4569e34bc7fa2607ce91d24aac551305c5c8f45e1a36f9d2718febf095037906076045fd7da3e59af13464eb2b94d83dafe80525edcb3a6874e7c095d6e9eefa0edeab548d439dbe5b7194b5a8c09b0ddf22e0daa1f158a8076a3184912312627c9ead1c9da80ad2d466a2d8c30a905faf2273e4ea6882a56a7d5fce1b7db614c4f99a3c3277dbd38ad1ff87b88175d44fcb021750b6d32a3f7de1637976863345ca320d22951a2a3355a7df03f09020e0085fb8e1420a04e9503890633fdfd6f438cd075f5a973a0f81eaaf43ca856ddc37ff8f16419ba0f1a4144ffa5e28b2beaa2965508772c020a5decdfd87c051c1ec0d54b288c2922468b932e665f34f066802ceda2d38e5e037df11ac3fa02ba694fde044e188de392a5a6eb6e537943b21eb4d10d190736e6f40fffa68b4f42cc0217b771a98b44a8190883fe702ec1692604106261683b5bf8742eef4d4c27ca97d666af029962dcd724fd37d8876d9c9b27e37816e667f883a87f37b5eeae65407f94d652d0f14ab434f081576265a554f63dead8b596ee854a0b2ce3e6021b372af0b9553c59f900085c00fa8c681a9938a4aa762fc4d7f7eadd6f43d328a116de46d01d3b127fce9d1962296c0028cc646d99295643c508a85ee6f014c393402c880751f041fa66d4d7c6f7847e753a2b386469c834b25560df1df80d52405135715376e9e6c7e6ca8016107cbfb25cf5917475176d6f3cf2b925839bfe76e09cc9d9a1b3610d4a8bee2e07d1dbe351ddde9b73bab1791a81dd89c1bdd1e9bd79e64398c966ba942ac370a61fccb25d74c80a2b100e2fcf5265d469846542939742e75ed9792da3a0a0f2e5ff6e823c98390e32a1f0f6ebd3f4b29dfc3ffed369e5c5a3c0f4f8f0974a4c8feae5805e200beec5aa6e7c12df9a28cc5ab9f7be078dd9f4d1cd5b5184a18edb4a89d86ba5daec14ea6e5dbaa3a596a75b4b1b26d4e2a7b74636948cad314667d772ab25e3a5e2ae279abcbe415ef94c35354f539d05acb2b4c9b5b5f79f05522ed19061ead297bf134b1dc52fe99e60f8ece0d3c5d23495534a4691613a2251e5f5dd4ab84423bec98d1373964493ebac5f906e559a3d67b13cfcf484a4534511565dfb5a4a082a0d190b141bb36d0f7318cd5d0d8ededa7565f3a9e35ba59e0e19711d37ffbc33b3eb69b7c579e43684ab816e7e91eb62fef5e074d13518a376871f32c157a92ddc1b9afac295764eafa13c17767d01e635b7780ff1d78ae1497971b92cb984b0fa90f438fda1ae6d2fb847ddd7bce4c917cbdbdbed5ce5bb4eec20e2240b06cccb18429754d5d1030cddaaef808d8e207105ac0b4abf1f1e48fe3647278b2573938702dcc4a7546c13c52710679292ba96e48c19142b617ce9bac0bea7f1f8bf0dc6139c0c90b17340b135dbbf1a51d7375332164afd8d53061345d151f6fb20db854b43ecfa608f2b6a6b081f3f29fbdf1650853190ca194b3a749cfd988786e7acee418f51447c6af83ba49f585b92716866af051de80b92cfa77bf368575ac61b77c8b08e1d8dce1b4ffdeb2a17d9560f5c0c7b05fa484fcc36c4dfadc6794e9d5595eef14d5408dedeec7028759070f6520e2e77b002f5c5b1b8b55ec8fc50ebd68480ae986a3a36575017760a4aa1252cf1330d68506bad151642dc90561bb2bd335b3da1f5f761f17d7f844d23db389b4ad6614a28d864f83f5b2365afc8ce2cdb57834aa87527c5161437a87e6ad4059eb8e0d1763cc64af732d5f2739e8c2c90f77cdaa157c0b19bd419baca7b639d5e5f99b64b30621b94c19ad3ddc260bf1250f9566c34977c3c793aeeec0d1183ac2ff4402fdb76742ce54f0a9d3acb75347a57091f7dd2c303f4900a57c17389152cecd765e4053b42d64d38f9f49beea6f87f7a30858be818d3f740553a027d2962cc8a73eb5808baf96599e924cc906de3b1701843b4ed145bc630ea10d386543caa914e9506b7a2747af03df702aa74d1f81ad76f106a820d7db6c8391a808e3425f9a1e59adb208853a31fea7dcef5aec39f32345a50bb6cec8a5b59207368e92f22133fad7cd3cdd090c05adf3e874b6fc2eee561b726b105fbadb89a1f52de8d38d86d99cbf9dae038c16ac8cacb228b6fa5b87c976c65ca836f9d786d1069ea88602574f52df2662eefabe8f9bd14eaed474f2ae21f90bae1e6e0bf3b8a3d473a823e3e9a50fdd1be71fc83f34e7140138d6375b49b7ad8972ec74e747b811a9f7b8086146f552eae316a2cc44b17fbf8fb22636d28007cd81acb4ade356b2b068b94080826597d1418e7ef09b6d762c5f5f2bbe2b7fc00d7dfd1d175b6754cbfdf675080174b67d70de00110f23bdddf59e5be742a2fed2f74c9c344248f965363019d02ea4a18575bb80930453c2770230b1c787288983d9313570173744a81bcd72c67584801bcde83097d8c37b321c2d59a8d5486551c0cf773597504325eb97b3a6b6b48886caacefa5a9c327e61672326e92473b5bc6e164255311715d575989371f5004c96a46d62d36aa820c268a4ae20319a6d166f8cba072ae9e3252a30a07c241e3423a98a344a0744c723954ee030a6b7f9fefff1f40f5f7eeff4af2b3e52edd95b4edbe5517ac8a9b590a975f900813eae8db63d8c951c20b0054ea07ae5ab59727f7be146b81b9d694bf02ea71cffdb71ed15c24d1461e4b8730b381a12326d5f99b79f51c99550cc493d92f7f4d320e2cec7c6560d3335db5942f723f6a4b36c69b510fd5171d56c4c177fc6e749c5d1cc245bdb75c80d6e9f0a06ddfe62068af05add26584dfa3ff51999fed5249166025730da834b5bd81355c4f9c9456813781530b50c83648ce17d866f79094116722e30e68ac08e926b164861d4ff1b2be96576919a2b94751c4cd3eabb888a5661c67e00c62c1d727033b5c55da1f869d46ac50e84beaea2da2c285e69ab9869aae2706211ea7101cd5f00ac159ff85cb4013ca9d512c14d95704a8ffb02d7efd142af857c63dabab23756cc3e5e3048f3adce16516030ebb600839d12ff05a35f62245309b69ee4fc35436828bb638835db655a1b3fd11030bd2b20d081242a2703958c33d40b5c575d688b73f2d87fee46dd831d3a8e5c9fa2e221932fcddcfba5b2753c083a0b050632f259d6991429d464e8170be313ef1788d5d78084977aa7276770c276dfd7b6cbfab470c11cf510d47a06bf2b4a21143df42c529bba2a9323b0163f535c84935e0db94278b78408677b2c5e9ca7c896c0ef398096bde9e902f8b69d03cc2d1c5b2a5ef8ca4cd6011aaf5be4faa53203989680cf9189f46f0cc05c3ff8dd49770abeb6f9b59caf93238054640aa28f600d684f2cf584cb986b6464fbe2dfe43b4fe127543872911d274a10f06fd9e28044b8a2015b8a7436c1bea0042b4984ff2df97d6cf9756f73358ca4de466599c3f9121fa88cd333efd91db1adea500f39fd6c66d66b3e0596340ee31c21a5db0d794e55b0c67ec1254905b7020b5519729a5645eb554164a982fc53c11b4593a9593db92a285c9afc77455656d37a05abadf7be527f037bfd8bf7657edf13100c2a4677f34ecfeb7281b7b2e8c4f85d9926cdabfdfad62d81bf11034a9a169a9a6b83a02753df01edc779859a68eda859daa93199d80135ab1a2de2962eac26883e9f205e53b6971a696df6c29ad546782f31165d19076b19a11d841fcd547199bef04d5a49b15c57e393de89350838aa3ad17f28b522daa0597cc94834e4c0b8a28483f674f19539b42739014f45d98d2b79c3da858790ab0a24ca617c3945e6a24039bb6d64e45702494f45312d5520e98979d6b47b3008380209c35ea4a3093df0b66afc81c3512a4ec8a4726d1b9d01ed103c09a37716755a7be18ddfa73e3a68786a26a743d4812b1821fb90184741df5002aae2b18b0bb96e8493a80f5232ce0824541cc90eee597d1e92e5a1d33e585c38c81ec0ad08bbbb149149f25fb569260ae7242464697690102fadb7c2f65071632be17c7f974b0f69fd068b3684984ed30f63d7e2fe2c6da0c36bb9274e772717976cb96eeb9c7022981f320c8ffcf921e90bbc9e5e421a0aefdddf9ae068da7a31c70bbfb042dfee7a71fa47b9a6d0ac1b8d4422ce07cb039959ca364e5edd74570aa546c97b8c5bb1adb8ddd8756314c404581a2e787131d8261c111bf74f3981c09451df4fa776371fa530d40d6c24d7add25e031033d1a42f819f677a0d84279096006fda8d1abb080f1cc6c587ff530f92886b93d2537b241b0085090c58a391e7e8e3e94e58417ca5d2b1632a7a96a250e00f740ad4002effe2e8a95f43357d2afc566064a5d8fc5e1558abc056abed1a67216b9332dfbd82b7a902bf539b55e3b38a522d57d70c5e58c3956bf95dfd0cb9210416faae58b990e17944a021a54c311b8637490a608540df575595744ac3b97d3e2d273cc2cf8b0970347f4f20595eab1cffe7a972685961d7c905a536df6fcc9974282c7d9c02bbe3ba19671c17442444f6425de1feaf77ce0b3aca8c045501d12892bbd6d33ca335331f8b5b1da1fd0061b0eaf89e83dcd7901a2ed50eaf79d35ac3d19aebead6a70a69072dd43055140a93d50572b3a38befedc1602a7f60860a3a9c7737f53aa038b1d832cefe0322df5affa1ea9b02103efdaeb32d53e953e0f2f6e67dc22166d9eed533fb3718b52773a6e191237b44c206a2a21b517212ce18eff0610e22bcf511b5db565de28c75684b423f8e5b5946daeb86c2d4b8108e67e7d91cd638bd3a7ee4bdeef6b21b1131d392a0b60477f71ee7c21a345d8e6c588f120c717c50ec6ba020e56d3083bb2876d3c02d4c93eba033d5fc53a95858780bb33a6bb8d29bba6c4e04baddc157252ca69e4e7a71324c5754b9019f52d7193208dfcb495425fddb414f1c647ffbcbae34d67f917d3c5a6fd11d8708b3ce0863981656bd748047ad944d246b5d0ec0cdbbbd619eefb996ebf3ee9db7fd15c47112cd7bb846bb3a963efac2818ad5f1f23e0378b9d843906d98aaf46bd9b65b2c6d088be2c7d6602853b8c0a376b5565604b428749fa89ce4bbdd41dee579f732f54b490757671b4c816e3e434d37a736a4ebee0e3b30fd1401692491080aa6a4c5050cc85d8a40d112dbfb5ba080c32a219f9679c1076c166e36812d2cba3332122593268009a4389cf64f7d09ebefd682c6d5b1ff05ae11cbea4b33c1088e5d33053e55e925fc0a5bdd08c0132ae16bc5dabd43c34014c5437e160d3a1dab8029b931ac7eaecf1c5661c7b5ef1a1626649fcff68cab6d7ab1f1bb85c91c854e87c3068e674525f9affc9746f7e457b491babab1e69492aa6fa7becdb98d1c290f9f1e1af171b6541d1bcf665f7905e2eab19362f3d60d6b1cee0d0448e174b80d8e5342629b44c9842d111470c4103de2d891c2062d96d040b0ce65b8d128276d55ab09e3d0e5987ac41aa1c763fd92d836cae071f50b7c1718d214bb9a4e2fa3ecc97ed70e98d665c686e97892b96a9a1810f796005ff37bc62b0ca499f639580ed4c61077d94c6d9d8b54e17c4c2ef36e352af2029e3d46b008f8126d0d32d7969920f14f5969a11bacf2a93636742fe26e1fc88aae6e7eddcb1bc99cbf427a1154038b3ce6aa20c282be7afc0b02fbbadc9c6e092590347715a01a71eb1a20630999be02e646661c4bc38f519aa2e170f8985670988148c102ced6eddc48ca3fde0ab281355cbe5d9bad492bcbad00d97cbe1a0fe270f686501d9f21bfaba2abc01b4230718d184589c5a5b7143c1620d1eaf466b957fa8ed28f55f0080c5915415ad4c8dedb0c2dd5bf8190deb9d64d7b75280bfa7313374f89a8166c8bfd8101e61b6dbfa47a70bc4fc996ee4d9694930fa7aa023145e8b4eee7852d88c9838092b491029419f2c51273e91b2a60157a87392c4ebc3dd60895a1cd0de36f46146433e818401913bca3c3fee4d806fe06ebf3b2798755c7c4a890dd7d84bd399e409d34902b4f08cbb6a7b31a66d2dc5407da12dd5b885f436903b5814e68b2ac7197d5eb4c64de080bad9e55ddc8489003b46e550a14ff69f85606215e6ea5d0edb5338384ec4c19a4a3c94790c66bc17a2d4966463c129549cdfd1163fb121fe6b8f3b41f0f30fd401e91bb9e865c0c6801667a1c43bcb0deafb413b77b019fc46168fc64566a3a11a50591ce0a840ea37dde2c6635acc626e01d87cac33e9d37dc5458fc0b88d9240b46c93d59e101631833407c1b5a0e5d709137647e938cd6ded6225df261a543e8e870dd36a31369e0cf76640456c84af86d3b5d123ad92dffb1b911d226e2cc6b177ac933ca0e1f8dca174aa33cfe5f0a57e21e1198c6f7a8c9458a81b8aaaa826ba767dfb5431c352525f79a7dd542cede5d1585da69b58153725e153cedc6715a5d2f9af11c51039e37999df857a2b50f5f2326a8f3631399857bd149ff8bb4e49f68385b916a29c015ca9092f953f9543b557a8f1320fedbf6b49488fa57239573e81bcd7f42f794fd98820a5ade3799ede1a07ca994ace442c26e3c2cc54b1b3b13a0abe62f8b2790bae50026e3304be5260f9df67c6a2623c7fd78c2910ecb1e818ddc0d94c16766410660531a2ef7a0a6f19048c70af3640a63203f71dff53b247858be428838836d08a9feb0f3501179d6a1e63251dde49935cef5a1376422d2dd1652ce68efd4378425416ba79dbc7dad6b511c4eda675840c5607c704099bd7b5c230341ccee67fabe792f61c5885e2f06c4fc0dcceec11123617b8441943767e4d0194868139e7117bbcdabe012a56f245e3630572dadac97f8e7a8d23cd7c38608f82ecce7481f1fa6e0cc3d4dea6b129a518a276f3b934b02be3f6bb930bec0625fca78a1de89737a89b0cc1dbdd1e1d9e2b6a62e2a1d7cd1112d634004aa7fe5858055ba48ae648bcb81c512f4306782f350f80ba6e060077f15eab06aeabb6651f6dc5f8248900bf5301a2bfe49fe94401c33735a8e8276d510306930c43fb1f3224ef0831841ac7b879ff24250bf801139ac076a3f72a2ded7a32ac812d04e3c0110d2867e410748cf0f7f292911e0f06adc2bd433dafa62eb6a93b0e628fce174fd60f9a70ea020c09c956245f199df6583ec696f1c7138294afa4d734bcd086838c246033b26e231b79fed9f7c4ba72a3ad38586629778a4eaf8f631c981072c569a2d9fecf82267b6edc389df952189f0789fefda15d21a1f12f200e855e558e8f4cd6786c18cb6ade4f82963248ac3d2d20ecd124be021a4df359027a4b28afa305449c6ad604caee4a978d71d430ee9beef52817c9561432db6a588a346b59e8162d47628131302efc538894e5d75ddb5e898f5998473bc972d5085832221b9a69011368ae6f80ba48c7b4f82999c48c8b57ddc88d1254ca1fd8bb442da3b4a009b68100268e8150f869056aa1e9ed1ae1d9a5921e2293de263303222dd3d51ba8971a660c70a34b2d6a39d895ed1f69bd64d742d454441cf63db61ca4d9235d11d080b04886f58bb59f09164ab05b937dfdce669d31f2bd59e36fc94507043cc73b89861ca257a20838d169bbde00d4cc4eae6332bccb57ae45e217dadadfc5f8f0a5120e32fe6fc2559060dc25f523c241554ae3662729ef192cd25355c1c6d0774aace5f510de73bc7a23bfdc4e92ee53fff5ef60a60628da21aebf4c4aeffec8b4b40f710945a929f7b0adc2a39026bd158cd9a67ae3cae6767cd6f3593f92222c603e616128cec95764fe0ea93f79c92460dd066d6b12fd4310ffd32b5da88fcf136c8042bc70bb0b56121a34913e2bb4eeee7371a612dbde9502541947060305869a8e2a46483fc3016b55b4d4955ac3bb4d9dbc17a8f7c183a6b42c5c31b55b1fe6669fb0cee89459a1b4b3e450a01f135fa875cdd9809c3e7e640eb67bce5502dbe590cd0f62bc8e155d1873ce5a49dcda43fa872f1b6fb2b15af369e679d3f55aeb8395c9baddfcef18290cd8c4d2f2b93dd4be91a159700eb9ac4c30df9f246d0af21c235438a3bfee3008de60652a51502fb4a5d254e2c10342336e3f7bd869ba5a2a50bb95e186bd6f6fab57b078773a564d964c6f4ed6678e54a8a5f72801d19dd69657fbb2438ac8625384852e7fa317f060a838c4c54a55184a172109670d15b3a2859b5997eb9c949bb657cb8cfda1cf33c94d3f2d1fcd36a7a22a9bf203961b08f0d2f3c9611109959d2519c4de8618dd884b1f4e421495b69fb7c75ed271380d14cf2398444e1a20e5ed738e53074d31b08b8152082be12f730a46d7a9d28fafe8c88f81a6e1c1114b42f32eb008257542a860be5a67d0f1a968faaa134a2b54285b34bb5f16b83569afc7714214a3402a4338a902ef739b1c0cb89d6070ce83226d3b8684774942ecb6d9255fff5d3000bd4aa57fca04a345665bf49355c8d52ab7d454a1804ed904992b928516d408973ee851572ec405f06d9b10891f6c23cbd7cad35d59d905e827acc38bf67b23c5d876737195b27e186a4df420b07bde5fa616fa386ce3d8208b11b7e23b7ebef2f6409f31bd798c7105c004fb3a373e0a4b6c33486fc24ceb9bbebc5faadc16411365b510291446c221431a3e24f2d89b169fb81d20a58d8b925492ea011564d7ebd8acaacaff4d0a96345d0295558badcd125919b7cccc5b6466905ee47fe14d2115213f4925fc59db1c4dc13b7192646059f363ee57ca6c69937d2cc1739a654584335e84ab60a9dbf2a08914e7d3dacef27d5237fd3e28ec956d2e528c9df98f60c3c4268cc75dbd252c988346f2ee30f3e57285bc68b10a977a0e737e60f1050c92efede35624d394311ebc52fb70f2eb1e9143a3e047c8926ca74035452ab849b2b37613f1279d864d9ca35a47492798f6dd5d7044293612235b57ea143a8d720dc2f9c827534f8a8e87a10bd87ca3696859386e8dca65c72c211490d3be747b70018e86acefc749d823237ef305ac656e31a2e7a54019f2307bdb49f58215026de8f565fbbfb7db7e1af7b18764fa5e03a51790bd2d78c67df666f0dbf4bbf3c6c9ca8558b10c76a015decfc1da4124414d2b10d35f56c591b330e232b3c0b705f029e5a809343fddc46f2bb28771b43e1f18a5e38ac22417f05552182c10038bfbb10aef300ca2f140432a6754eed55c2617a8686bd7ef78ccf77c29e9bd5bdb3b3380c02c6285c052c0a038f008a97dbd65f293b2f858b6206be64cbbed7e19ad6ac7fe0a399b588eb11f47e7ed1e9fa79bef1e1563234a23833094d55ce0c626e8e7ca5ea0db83f59c69c316b28cb743a0287fedc3c8218b60deb12ae1f2b6a97c5ef66ed768e40d9b28fecc2c9bb0a0ae493a4e4a3ab60a92aa3e9517f3160539ee3845468b9c263cabd3fdf706bd2df9cb12c6876e13b8196a15d6bef56bd6e6ec622c170a129637542dd9081894c369caf60b27a4df9f052a8ea75902577ed50b93d239b6c5a06643916d916e2f45fef4a9a27628e71b91c21a7aa4dd14932f9d59d164dfea4bbc1201bc77799d7aa26e68d49d431028df03269a10e5d89d6be2022cd29788eb873e1aff961fb0ff480293992d72516c9619351bc6de5ccd397dd674662b69e4ff35f175104c29fab04a58d31c30abb3a6e5d13ebbde9851e21b47d44b909e206281a465ac8a7845aeb56c614b5d5dd741b5393e61b83b14eba4166af07f8c3e54afc3112a331d94a6f4070620c696598361acc4304080975b42640c0c6cd0f2ba047207f295079bfc07cfbdf865b609d56da63c31f839039dd31da21120cc4a13436411fa70c4629d23942dd62a515e827c4a4c7721265361dc0e5afd9d44783fa60bc8dd1d397fbd7e83b881349eb188f320292c6c1b086647942a26c8923c51ab1d2d181fd629ae59f7bde20345f01f11359566e775cb3a953ea48f7a3facc31729d345eab18ad0c87b2e3751f80bc8315369ec37bd7ea8f8cb060d610a5afd9ab5f516f413890334cc07536cfd7d6abac7eaf2624e2de0788a2545fc710e1c92689d18c67ccf07c9a193b9c0d64d68a6ff4d2c912f1ea1a2e87086961a67988089218c9f7b4b4363dc5c6777b31ab530ee2a03eb175876714495c64a703f47ab4c0e76b7094b3edb7cb92dd174ccc8a86ad85e1d89c0fe406f283df48f9a11b203f3837d6e70afd606364ad5fe75f17ae0e6e8e3a4bd6498903bd894e3ac45a0f6b13af8aeea704b4190a3952c0b9693fd23c184dd94dbaff4cc3eaa6d27892589dd351bba0703c09f3325cf5948a53505433389f4f6532d28eb7a2cecc5d71b90f5a9923fdfa5793147936f5a87357af40ca3a336e036719f05359c9fbb03f5515f1afe77288eeb2cc53141ef810313a5e215230fd3f8d61a375d03f6e12cf02f38408035dc77caa6d9943fa502285630b4a2bde4606c73397898667246453236db0ce839f5f8deefa388858860a4d1a14c95873b2322e562b41a9adee44c50406d7798121dab8b2344c32a4983a0781188562f7b9f344914dd245b264505fe01925ca5718136046045178f2239c96aef8bd7ca24cec22307156a2b500a6c73dabce31b60af431f7098d7f1e51a474a7c6dc6a1d7930ed1108f7c7911548d6f0aa88917d4960456ae550d824ff4efe71e1c4e8f64df1255488e03611eea58487c818d49236051ab8400616adbd0745e4f8350f27ac4618f396f0709d553ef4aaf9b2f24b30fbe3e9b731e6ed8b7c5b0a5a5c3bbb0cf049a212db8f818579e170ef1127c33091a1684b86425b70786b5ae586f2d94a51ab9f172154e1ba17b0d5c195f26dacda4f2dddd86e0a02a18ace11c4219e8ac0e49616465ae434a424c1186c65dc5766158d74359e8127b4d798dc46a08587d1314ff58efe21e6ae227d7ee1aee2320b457a27efc109d6c0ac42f859c729dcfdaa1fdccf5463ced72dec1efa94aa38d8c2f37ce5b8e027a0ae72f154c4fcf7f2332e6ec2fab8afb15330970ccb6c7466dd3d5c3b54f2218ba0017d372e8c96c30662818397eba54fa5c1095794f6844fa744d2f1c4d48144c852cb7feeacaf2e098e5adec090f7200ca15dfabfef2f79745097abba58045b313f0a043bac94873ddf1f4386e52cce853297b5d46df52429af9f7156eeaf36acb03734ffc16908bf080c04f40eec3158364161f5bbb2d32b3ed55fda4551c9740b7ab8a07b711cc86f5f61c6e8dd96052002347a24aba73d74fc8d42013b6c8ed77326b572c091726ea402d2ca58949d5a7b8358f89d17470790392793869f500af6da458620dd0b8815e55e9908eb2c61b57a4a88aa454f7012f2391676581d21143956903c3d96c29eaf2ef6742cf60ea29b65417908e6dfd1a5a996a03a1d541b7138e61aed5af14b6c54b483a7f48bfe6f328ee90114c3ff12d3f8deebff0438c69b45b5f86d6f93844499daa10d595a8034baa44112698b9c0620b59e793d079e47163c8040a589adbd733ddbcc1d1cde2d8e933ce3e85ef9bb4541b88605a3c2a1e2959b799db673ce281272d99913b2d8afb699c378c1af9ebb65605571cd482efb4500f3bce749199fe4158a08503d0dfe8ef5b5bdb56d85a2f532c8c9d66a8bb6bf01dc3934e19b4e9cc0f8e8a0109ecb5bae86954c049408f32f37bc0621e7377f9504f4fd80c36eb8e305727b12d202305f11e3287e7a524b90cdb858a00f1fb4f3c845baf8de8fb339f0622e0623bb31f3d43cfa84e8f9ee210d06f1f82b0517451f868ffe02c3265c4fe8048248be0c61c4473b6c6ad8043a2770c1b6c31941746c419150c39d9efe3388b7c7a31bf8b158eebccd6da19d04267db5cc714203e7f6f1f2304834da6589b8824c123ef2814dd7d46749b2ab685a18f014326382f7863d0d72856911b68d85e3ec3121f6fd491f70af20a18c5217b02b3ea3428237c0ab29cb2711f8edc717d7f267f4d11f0a81122f5b4b98be91239ad31026b7283f91301d24c9a6dd7c79c17f2cf0df12a6211fc6eb3f7b69c98230c9917d513be77c2aa1c0798f86c1e84f9c788ac88c5b4858cbbfa0789219d2e8a7f363ea22ce70178a779ffce6ec524a22ddfff3c54250529382056878163b825f770effb2f47721fc9d1657e1b2085709ab061b3a46ccec1bcb32c4ba9be61b8d73848d19ce6f0bd70d9aa3e382a8ae060a51a44b5ca88cc48544126f4fb4633bc0f946f15158241add68d5dd69d08d10952a32c2d80750f30a11bcec57bd7db3080c0cd68746b9670cc40c40fa6fcc97f0c716caeb8af29712eaa8c24c826f13b49acd7e0922e6f025da6cb28deca6c40da5f6249effef7059b271d46d9f388dfc19be5d099ee4765f13fadd8c1e378172b99147680a713aa160e79ef2a57a03ea462a51ca00993a4751e7b4c4e0db3c2fb8d5c7c508d73af3b4cbe1775bc8a9f45aad3d6abb982214d38df556b872865a5524711c55bd04bb324bf1dc7e2e676cccdc51963478874cf3856182da88ab829c32c24a29978e86ae30e87554e9c302e62b0274b04840032bcbd3f512da9e038b69640de180220813ebfe99c3928f3689ed502eb1f19b8c3fe34ae54858ccd4181bd02c367796eca3edb18410e5aee094253c64b70440329c3fa5603a53868bcf422cdb434a041e1c645eb15306042ca825deeeb0fbe1cb688f25b6bbfce51f140bce99f01db402acfc49dd3e63733fc521ceb1c0b01278668631fb788692342ee8f6ec01078e1256dfa3ace7a0f394cc8d04967af489a75254958207910ca019d186afb9851bc075268dc78857a2b061f683261f5137ac9effa45087ef2ceeb83f443ef47895ee83360d929d5d4abcd05de8208fc43b157eb6ea4a756e7cfe2f61d19ec90e7da22977a03da06f838c7f2a7d89d699a7b75c5e8ad9ef4d5b5a224e2287f056a423f476e00721b75ba3d689206953a3a2074576a3469d0b88dcb64e0d1782d46a6d54085c504fdbc12786a8ff0e04795b15b51e289116d7fcafd7c92af98701831fc4c1117c44b4e93ba0fa7ab1c4aac61e4298f2aaa50190eebe39117dbf4d31e1661b08d9479c7b4751dfacef70c4056e55c6ec2e08dab80a84137703c677477a4af0e84fd893671dd5c7d48c9fb2774b3a15e1740635404e7dab2b7cb6f33245e7c0a8416092626d8a02d792b029b882b0fef0bae832d6e0bdcc2b131f892c0f09d72815d3aa335f284b6feeff47d9740988b7a2f3c5e6ebaec66afc2e3f2752caa911baaae079479cf8c805a4e944b56730ff9025564ac66522840e7b99eb135a097f9a083238bcdf7936f2dc8a2638ced0d7fe0dcc295396f41543201996cb12eafc28641b2c0d824a042c0a84fd8b5bf4be873f5465ead0dafe596821abbba74ce525fa9a39b76dbc3dac649c318dffdab00d11bb538b88761d5ea1b6d023406d4cb3f7a4ff06070dd520032709a62dde07c6cda0068eb4647d3f832b1d35441f92827d8d9e5063304834c305c341a58dc05f523a2a8f063ac10d94b591f832b271062a509690c22a1ec7712e1568141f080c04aab11f685d0c10759afbf234ce0dce1cdf85ac9037d9136a3d7759b1c5e813f492dcad1a862a93742be73424d7f0dba1875aace73c15f337291a74c6143ac0735e54c1f1170a3181ca5e83edfdb0ce1de6b65dd74189b49eabe2f2d2928da724204d7255d637d4f0d19ae36bbeee011905da613d683b2deb1d10a92508666d2eca4416349db0a6461a5ed4f6bb19cd3f68f2ef4120c50a91ef92ee53c75b13787749ed3dd60151933bdef6d7c5fe2911db6351f4ae9f1a855a71da9209ad604b5bc5300f33b78ccb58a3692f02e52cb33b5dfff698c563bd7e72e94d4fbd0d93ed0281bc044f3b35095716adc0cfdf3a025345ddcf4e25577f9abf99c196f6a788b9fcc51c7ee15fcefcd539f9db6423dad58e9a2f8634cb9055b6cc037a4cb7ba68240cfe74dec57cd65883e1e77515748310b862e9325c542cf52e799a9b8bb41c4289677cdd6fef7c0179d1640c04ab3db9bb0258a96cdd0f3a799de04256ae3ff7717cb7dccd67a32336e599cbf6ae310005814ddcc15e919bba79f9e8102591711307978f8d52df866ab71c4fd6d846a92843b0b431644e6a96e0be51b3d83dc3913776ea398e3ea7478aab63868bc8e15798011149694aba9e4e374961c8c96b7fb485f4ce7bf5ba35a1894d59379117d362ce65c42e00539425eb2ef85bd7bc011b89c87c18152ca2a5beaf4679b153cddb0132c40099177472a782d4ea32076d33f9deb9bb3b61a9d586095d3504abb77dee2a606e30da570dcdee5be3dcce8b86eaf1fcc986e1a2d6796c9d8f7636121a613158ac62270ca954c21ec581acb6d42b0850b437755ea13e1bfdcb89bf1988956884493c4f236e77ac093fd13b974c6151f967bacfaa1f94d311463fc33c24c9a3db509f3d6d760b18372907e29f2ce2125c66127c96d8aff1be1144d94b0c27433dfe85d99ba9e7e32988d0ca1ea2158fcdde72678b815480951479bd442710e8c6605543efe465c9ef581a5d95a7ea2a3d12b9a976e5348aa321292195e9eb552e82892e70eaefb63f8136c231701cd76a3a6e04d7d9fcdb6cb723bcea60a07dc1033d5f354235930e07573a604e5244abe07b321a0e1eb83a2217799be36d7f477fd3f4d16e54aa55fe36f379403311c209a77101e80ebbdf9029006ef9662bd8a32789141991777774e73047e5c4791080a94e72d8c9f0e81850a7ce64d3f674c372243daa9dcebf7c49037e345b180a5fc66f10eb5783365bafab8d28db8df95931e89dff09582aa02c48eeab012d87ff8c37e77ea3568558121133d69c804dc5c4ed292b429028fa2b5c483051a62d6aa112a9e7caea74612cab37cfa7c096ca5b168675e93db009b961c915053c8e156bcc648024173044bb3f21c3a72003e215fad8f6b534b07a125f0b1a1cceeac16bc9ceaa1c303e5b0ed3d8b4c32ecd095d38f9141e343459d2450f25f79cdcd1db1825d5e78f7dc763b75fe5c8059338868b0887b9c7f198e977a4dec6585b72753facca502d279d268a145b821fc4890f3b4965a80fea6631b7fc473d9605c7913865948984687293c53cfd547695b1aa84483b71c814d2066ab578c18ecb664f1669dc88af8562db15d6c8337407d322b4f028afe34f83d0fcf8161c4de0d70ab36c6104858ab93535d85871fe32662dc80e6e8448bb6d5992e99b2c7b3be5000ea7c5e1f25d21fa45faa30236f12ab6a412facd8a23c39291dfaaac720d9a34b04d489cc06893a12b5eb6e8fa3563fcfe5c7c5572b7090966a33c0a5d27d76a8e0c1ea50041930d31995976f85ec3c995ac242fd6f7043f94ffbc961e1638abc89efb0e8a99d7e2d5f8b6cbbcb023e6f794f7ec946746bcc176c0fadd2706c4f8a011942ebf8645aa2159d3501a95a06c470bfc35cf7b67c00328de4144d3315de08418711cf5d291e61395fbc37cc4aa3d3a6e379386e0323d44ddb4764406d75909a7965a71f9f9ad625d43f96769ea3c3be6a42f83824039c7ac47359718e07409cf1807aab304f381cc022c1dde8ccb95681c8d6da4d176664d79b18f9692405b58eeec58524986551330fcfbba6fdd2177d6d485db5be4966bb08d793e906fa5e24c4d724610eb6837a0bc678c3cbba16a94f1c7dd75908459e1653d2a4a94c2deeb7ec440adcd5617696725b5f69940889c0531b588a4631cd8fcf9a45e50a20364ba8740470325c0ed3569305e9af419cd01dea608ebc3fc90df2b7820f0d285fe9d8e37c5d7e69f5a76068c49cc9b17423c307091a446f3317e4675600e610546f38c1c01bc2cb2f0f3cad273c10c908b03269ea22df9d41c1918674183600e390aa143c2b62e7aa2484a72a7e7c31ed2d8ca1821fc7b37fbfca8b08b10fcb50e7d17912c11905fd3dd04a7da161a5489941f4c23d377dc5dfa8f3e0d729830be6c5079f17392c787e7e71067f152f8a7baa757276e0c56d8d51da553a253a7b132669018fbb922fc49fc26f5b75c6267d998946ebcd349a123e51f05b36b9af74a832fb0c217b2ef32492ebdc8e7e0ce7318de8d380bc3b725d57448b853d68404204ffc9c38e6fc07a8f4f70e823a0817d24b43410844fba8efd80e81d4a49ef638622a6b8b314590291d048cc003a80fd976a46b940d1547174bb2eb1bd701175f39ec8d6397e0740c80551384f3ee7c302cd496e55f26e612a59b571097cfa7fd0638645f76e1f51ba400950797614fef95801e8cea9503b983cde9beaa2074e0006c5ab206c6a42db94ecb522134fcbf5a8dec925fa5a2890dedd427d484cd9ca65fdee2aa9310c3ae911da4cec5f687009490c54962aaa954485a265d79674bd3e41fa708725a3844582a18d84df11f6045f320f2b20afa0ab184b72fc999890fc6f250539faa5df0718f2df6888517847a5a1622fd61fb5b7f243ab841d5cde90e7f4cc6b896674c8bc2b52b81e4681239503c9c7b9e3990a9c47207ad1d4e35cd0a5d161ad539802b6babe2add9f0c6b40882171fb7fbd716a845bca85135a0a4fa9034c02eeca40cedda884d2c1499e7eaeca4fe6b6ca0f3260450c531f78f94ca2e77aea7ca1786d849e2d1a6860a97a891e1cbf628bccdef0ba96b04908bb7925ec78c18a31ca5030751ca32410ff67af724c9bb89876280cc25d43ec1be1775d9d86f561c4a742fb80afb5830bf2cc81c0282348f38b86aab2c4bc01539c67f1fff315f20ff9170a087411b4ace2141b1170bd3991766713744131090c4008258d5e5b1a28b79df3b74ca00b8680db1415582282c188a2ef8a5c3e60a0214333fc88c06439122502b392eb89cf05808056fb832ffb77c41ade9563b8cf48ead08c70be9c168692978781d2416d5bad28c9060b9ef400a0e595a0966cc23d13d612bd67ef80f51077b2bc3ba4478d06613a37f639184f4e911c72c6572cd370d9e9c4edecab1739d9e99629a20f8112e99c327a909322eb8b580c95ac0118ca59688bbda87a9d4fe20d4b18c5c74f0c430434d8b1f4dfef2086b509e2756c6b70c92f78c7258f2f0b7b1eaf4dcf47ca226edb46a4eb643b7ff67feaf7f018fbc844019c1b81440368f432a65a4f2d89ee8ec3965b00d01ca3c0ef736cf654abb6e210246ece94873ff1dd37c92566720c94ce78eb72e68eb6abb88064e834c3669945c066d0e68c6ce1ff47438d27ec3e1a1750e045526ba2dc5ab4ac34926d5772bd7dac4db19e4bbaa593dad56d540bd606d41dbf3f6c285c036ca8ecad5f5028a15f575aa64ce56e534a30e1ac7c8b7659957f46e5149121e24eabd13f6f53085313155f3781b5aa829dbbe35ace5443058e1c30c635c401233cc10bb2991759f6754c18cfaa62529955a727eb43d5407fa6c1b343c1fe86e96526a926dd56a7709ec81db783191c38f56787de29dc6922a07d8745d9fd60602eaacaa4a74d9492d9a525e5fb3ca288fbf921db18f1e453179ca899e813ff5d80bbda0e57dd3744ac00a0e1ef0461945a46d1e8be3a7295fed6bce24210430a2e644a0c19d4c61ff23fd833564cbea19c592051f83e97a76fe4c5572b0891423d8dc9be468bf3178d4d53ee0ff57313822c9d992c45e105db957f14ad70194ac9939a64c8e7466f113e77e43f9bdd295e1046938fa93afd3dc6ea8584a4a17d871fbe9a2ec19dcbadfd6846269fe4e02b59a5a4adb80837080f4dfa03267888e2301bacc541f4400d2d1322865c2dfad9ee7133d7f0ef081a6b81c3d94ed49713c14a4c77705d42daffc8a9da098a5d824e714df73c93d2ad3d372862d4dd46117042dc3833534f08fe2ca902141772c99679cabd1c3ea19631d00b0015d4a1365e8edba3c03c2fb7f5b9a2d1542c4db72129e0bbe9dd70cbff1cf49630e09c386d788a98d393c83c3f1965ca83ab6d041f04639d80a25b9f87129e3c0325c7888f41604683ed90bae42606f72c9a42372c66f308f0aa29f0a9d7066951ae77314685182db747607ba1cb6edb9d580cbdf8e388f037c59eab9a906ddda6df7f689912d6c7efe2b1e7657c7a5d9edab67eadff234ed2ffaa4b7d482ecb0d6fe0c9ac6d3b41d285fceed73b402fc9450462c619b9fb481c1aaff552191f23a29654d050e56e89a051612822bf0b4925d9e3616b1831478d8d91daebd6fbf5e6894833d2604c76d19f2b649375998c8253cbb4df5139ccf3e590e549c2ebf7242cb13487308d1ece1ff0b40b3f9415b5d92bca652425eac76c7e2a9b17e07dfb70feba5f289bf7752adcede1a4d844e07ae600b5ace9dd6ccb0974b43b2a2ed88407a951c6eb8cddf001d3d5aa895a9d9c8913022a3ea08096b74e0c7db29adf5e85408da341a13ae2e73a576310e9666c2d86b3480bea909aa3d009da95aaa06b7103009893a058026b66876d80071d1248f698a843e005b690e58ef3602030c1d8993d995ed26f69a68db4be98e8f6a312e13522520462e293d68edfa5e29538b98009f021d626a3b5323f81823725a965f046ac11d8170f69f4a5049189731400b14cdb45028e4d56f8c2be9bc2ad4a98a26d7073b5e577abe85e75ed260a13add5d007963f3d501284d002aadbd23086486a6f227ca25a581ca7e20df6f924912585e9b6a5028e3077ce3a98cd95dc76de8d26e2401ec5032edc8b32c80e5f4e012ab51d0a4719517543aa5c0f39d1a0b4eea470a1f23913ddd7f4dc9d63c46b649cef7e159e6eb497af63206f24ae0a9810629af6648dbb293ab2ede093f546e940c23c0d9f784b82ef2716c7b0147b1894bdd1840fade7c0d609b315b41949a19af793422d839f5289036408aee437c47506681198ca74dcc5b027bfba1be0dbb0dbb9101208e9c8897783f0c5c67fcdb75fe22fbcacbbc8583e842352cb832e76444b78106b58d2afa4603507eba7b02d91769e212fd873b0b66b79692940bbcd4ec64ff0e6348f05c271d2c55a3c55ab2e9b9505eb60d488e61a0acf17d2792abbdf5e60bde559c432fab34d76d6ea8a966aeda6d78320ee13e4ad77052dce669e066b4a2d74caf2dd587b0909fa7ca4871aa96b20f1a9e3ada835b63f34200c8178e6ccef1bb622c1a6f34b5993f690915e3c17109f4b45ddf16a83df991a72005e698369c8926011696c0f87b0009f49631f99d5d313083b982492b2e3849712c5d0361758c3423ef69866a03d6d983698cf2ecb748d4f6c9935ac03ccde00b9b60015ff13a523cd7156f9d50376de31eb14b190d8e4e9e2c6f3050d533d2eb02091192a9aaf77bbb8678b9390a9c7d48b9b4573c5b1c84ef32f96ce522e8a65153735535f263f9223f1b8d0ba8c74d0d7ca265d0914a9838479ed7ebcee122173f380ad2260fb10d588a19bc74c7419d65e335c5096b1e628a6598525747be1a7c4be989d2e01f8420b8d0b2f72fb6725720600cca8e0d8238146ef8aba4d4d98df47bce23b5465bbe151248cc7b784d4acf47e5375fe76125a2391ae8088f01975ec4c487ff715c6a810b7825e9929216487d05a37802631d697f529a8d7cb06d285089aeb69b1189012e6f50d05034a037987b08b9888657aa5919fec5ce1886100f26654655c1c0e8eea108b4eba41ae6ae8287fd8e816e5d447a17359403a5bff25d7458e2d1ecbbd02109697698cbdaa485794231509b6d8fef46d9f22aa4fa42b978f969465f88e5f36817ecd63fc065560379b3a004eac82bcf37430556ae67c93105b94dac888489c4a8646e5ed02a66158b891201d7926bf9cf7fcd1f218770407d55ecb9dc0e220dd025eb046aac4362232962586689ec559b25e4c88b6e25e64ac41c8b7e02bc5265b9cf26c59dac39afc522caa2634521070743c4740492612a0d156951b6a11b060fdd247cb35df660fcd6c74394a0c9b262b7923f4c1f237fef190c65f601211e5cb2b8ab3edc3dd498238efe1680185bd093c8aa5d766450a469dea708f0743169cb359cc0724a434d8a2533073fb09b04812c0335a7c6820c80df6a58053264da9ec7f92fd29cfbf2e96b7bb9bd5cb93c26586e8ca6c565fcdaaeb715012424f606bedd45ea26d204a96cb6a568384723aa85e4453c712f59389a691d6f96fad9ec881d85710f45420ce6bca1cc0bfb328efaf731166674c9b048611ef0221ace41600e41ead131f019abbdc7d665218ca8383421e51a166aa9d6a5e0076b2261c8cbd3022ad893bfc8afc55b3ae87e82fd9b529743a845fa36cc728dc51f82b0c823e0e612f8869da4b1fb0f30359790442d6dc34d604d2822343bf4c70b59106267e712e2c522f4a6372d80d7d18cb1081b1517ccea25ee26d7a9bd54d920df084b81edff692e398d68a8f0c73040a01246859e3858011c49bf91130bf5279573dd15e8f504a56d5fd1d216058fab258fdc5dcd3fea8d4e55d380634a7e207ba990e373c718b97e2b985e385757b440b993c3fcaa035b104bf02d4b7977fe5879762b97b0af5fd13e1818417d0b8735b73ce876e062f9c637a2f41c93f9c2687f75687d33867bded8a95934c56aa75c88dd4961042682e1e251cd3549578ff13457458a9dc7c632ba516fc0f930d2f1e0bc622b7f27eb5a044c63fb324eff17faff77d433b866f5ea96447501ad71ff062bb725ffab1f4c84099c925617e01ae71bfa25de831f48cd7a1d388f60fb8b10737b0b66da4eed58f3404b1c2755b1e2ce31a0788d54d8023e0720faaf964feb4c3dc5bf60f0173b8291a9cde3153808019e64a6e0a609a08952929a555a72bbb365cb8b17084c4a8b2ac4d5c29ad104b423d4789e83c97983b916b412889fcf18861d70e687c04991e80f544010b27e7c153a1c73636a5b8ea79ca65598d961a194dc6d1eca4d52e65fa01ef40fdee807756e7d5443c489a8b8180832a4c4e397297928d1b1004d9a43f67bfdad88d91c3d7fd93d713205f38bdaff0612ae97613f6d01de9ed2eef356868138c7628eb622c1e057dcbea60829e643f0f8e623f8a016a25576d68e981fb5f431718e5fe40100f7e4f8ab9bec718d66ce0f0a00db619468188c7d47d4ba2c4380f298f6576b313c03649b57888700c4ce42e09e6b59e1cc9809d4557f52f6c8d2427a9ee509aacc3f2c4c4cc0884561ae640dc8153901b4b415b03bf20d8bd06c18fc7fad14352d140a0069e6307472434a71050d896676ed17d3e67bd7dd91185561e92f6d32a7c37ffb251a99d22a9310c5779e56a950f86e1f701bdadbef742dd2f7be5a2b60dfaec04772cd502a3489594fcfa44b396a3b34da209fb7983ce51c87f6cef1a0130a0660838d7c355822c7eb53731a05f970f9c3de624a2a3c04ed25f4bd27039f27fc5cfca333e6b78bad66d5f7cd2cdc39cfb52a01890a2c309071a99d45742175f4ae36e8897f23b9f051ffc1526782e138c917a9fc390e7f0aef4bbaaec2ca74082805488ad893c8f194f4cb93397ea9b43f67f19ef2fbfe98642ab59d9c9ca72813473cd239079a273af4b9a89db3669784eb3b28614875ee8f15e89858c1ba69f7e7d79654dfe185b557133bf1f388c3d44f40733ad1005f745ca64e6260d4842492014932dd2553f50fd8d377e7434de396b70657bfb85ee11db33f2c181c363d3dcb7bb282da9abfa4d6c5c4ed18dbd90ccda085917512511a7ca43a1dc224b39efb330e462bf61a261513ad6f24d29524d6ace7886f6fd47e528d57199c9f0da2fea4023e1ed408cc8545220a9c8bfc2b8328083cd72787b4b2ef101a64e020aebb60db37fef16e2e182db4b1b29b6f426b3f1023c134e4e657053b5b858ffd403ca331ea428446b38ee651fa41ae83bddadc5ad5a32908ebed14db5c14ceeda9cd0d9e0a4da975bad5b7eb011097562e009163f67684ed80fd5dec0a5834ab0505baf31fce84a075cece0413a8b4e584c357d4e466abfbfc30ba3d551f4f049e5d0b1c582b09e7c0bf7216bbd2e566536e5ed57ca52cec3c6a6e4e97da8be4dd71b7583f56e1b0fbca58cfa7fc7cd11085b0e14c6674ad1c4004c00bb3e4af8002988d3df5bd8c59aaaa5f4eb73a5f9523ee5e8fe0e0740fb27989ae2d9873a8982a697206571db4de5df60925bd5088ca32e39d4e53c9c7672507c4c1b2f7fc1a3127c73bf777814a0780315f687b2e79cf1085fbe735494d1573fa2c168e71cfad0b6fb143d2c21a39cd7e45cc7b88068a863a75689a8001c617cea6e903f7276659a99421a7ed74c4b7e21ed63d96275f7633b65be80939f9e3a1f446367fc1c08caf845291605cb2deb8bfa4a35c340e99fdf0961803177cd30bcfe33ce364d0c052e5e3374fe308c4196ac002900046c4d6b0f493dd14c6106a8cb0355ad4335e0eb7f8d8cc83b2844e52976d7f78301ee83869525a911011635bb2b695360fe6d5bb04b28bc57233c0a9975e809998672328eac9578cedffc3a2df8d21c61e5087e45948ce19ac55f241c8b50d35b7c629f8166081b044bc6b9913abd242e3359044ac73e5f47b641377dd94f05aa666e219210bb4ed710a7845fe70c2c0335ac3182b8c83a743c920b6295d0748795944709bbc53c99ebc4ea6631b45befbb4020f8ea97bebe0ab4c558a886e9aa634a4c18ea942eef55bb0a6594322e1c3cc8a82ce17205d1f2172c3f5ca18ef8066090674292d8dda1d58a0b9fee2075651ca21335b5866f35a5937ed4dd0403c966ae2f57bd9210bb9aa8b3f3d926aea1e098e0a9b6a3f5f433192e2145870185550aaef8b8e1f89634408803b4d9befda99358409202b93ea02b642db4cb8ed1202777b427c6368ec7f03008e1b348fb684ffc28b746375ec359838eeb3cbb120b5068bf069da98834346ef8d79d9b23da02f5cde66d030c0211989e866179d83d8b23df3b74a1e9ad14acad6182d955b1075b77ed16893a22698b5e0ebe39ff26986dd5e4091320d67227ec9488649de6fe8160500d0a54bb0350006a81514c13030d0f724e760671074a8bdf9c2faa3593ed278c4c27c9d03bbbab3612bc2e6b5930c611c16c3bcfdad757dc0713995eb44c8ec843644139235aac2d14d0870eb151b300eb481f143fe181b9102c1a4c5121b654756be79e9b199bbfc2d885eb179c39d8b9c4b70adc1618db83727356a5418fae013ac29761fa48be22c8eed8fd4ae4787a382e020a1b8b6ffd56d488580ecbb76fe9fd46fe4e8f0a628fad7d05c16807d2091650f513702ed8e1229b81e54b2fa03019e234c48f4460ecc960ff2b9341fc87608ca597fb97cd5c60cf389f173ae2cd31037c31072a29d2be60046ab1f7c6b23cef964de7d2103a8c96a6ca8d3c4ad8df8b2fe15ad2183503d23f834aa7440c955309280466266c8ba8908e44321944f67e82a2fb10edb81d38fd95c3658e901f186014d2e9d5e3113940d801416d4d31bcfb19ef6a761a9e9f99cd4a1e7e1d37feb83d2b946d69ab42f2e6112a3cdd322cc42fddc5640e152f14cf2e9d88c17607219bf551cc3cfa9351f01a8e9c6678e585ba6765f457b7ead533621a03254e296bf9cae8d9ab3901c80a6046887209b60fe4cc9f1b018acfdbd8fe20a3c17e9d769722cadceeabaa7ed52509c16d3889c9abc80b835c633e9eec167994548f725133070528e7cfaed047c2e149cc1dc880255bba4bc3ae96161328f321cf99f2d384a8f3418418c2824c054540b58d45ca946170c5b004355ba6f12a9babe92ca6ded9acd31f1d1dc97f7ff45b7a47901fe724d4aa885c9745f409d3ad6e153160d34fa24f0e89e2d12e42481bb27785ec9db9878ccb1429843ca18168f25ef7714afddfcf566e5154298bafbbcaad044f8dd01835f52cbe5c209c8ba10aa0b9b412ea681c7fcddbb0556cf5534501b636a62e2702d5b2bc67866dcb0e19cf1e1c0e55f5dcc61f6b0d386b62e4f6cdd1ccdde35a72613323ec49098660dd0513cabd170d562ac0ddc96ab6fd27270a33eb95e6ca4f38c653820f03b4bbd79139d8425d509d6e0ca4b0b32d04d6c87fd0fb869fff16e32b22b94ab436e07d7b5de8ff33713c9b0d38a12b46b9b2c2440002e80ab355055fe6bc1cccff135b5ee319659ec3991bf1104d9e74f5399d21677cd6900e8c5e2f1743af5a0cf913b2cceff8a06c499bbb7f6cd377df36ebb00d97770e8b8d3d318d8c33f3f22f00e0687fec57c3660e0e41884dd52507188311201b1d5c3f0a9e10083838fd79701d767e378b93b327bae0c4943b54356f589eec3c8630936bb09c01c287be20c05a0d7601a2f8cace50bf1faee20b90edb4a15712332bff15127c5b07d7269dc7823cf216095bbfc8af8763fa2e197f6c6afa85c2992feb24384c6b129a2fc54c0d4d21764700e7105c4f67f84408300e75d91c5006969cdcda39a85c2ede4b3756e0b91e72de4b77a8cc517f7828c71fd386021d13866d10fb4af81be9b0cb52b1b4d944ebdae0860c224436e892d9ec4013f09797ffba5f9055024ec08bc57c8bc4a1d0c7aedf6277297841c3d32ad3e88645e17e0f41b622ffd42a198be86352cd23eea8313511a38a97f9924302ad6f102286a6a20eaa1d6330b78f9af11460c59a14ec924874ae5b8b199c6587c418f230040c4d166425162a571c612cc0adf4d0c594c4267dccfa048028b7cf5b88cf5f9c474dee5895e5bb1c0c31dde09ce6b9d9fbc4fd39d6ab0f29c6aca01264af7f652ccc29831a98c5b6cfe0458776126ce1f36703341b2af10ded95bd8e551f70fd8a22599f7132419fc8d5e83351a84fc3f3d1e351390033144bdb3422718081ae2d1c4a35af5d8294ed155b7ac062de55551c297d8e392db04e41f13e7424b7545f921ff120d1baec5bf9f98206d3311d5dddcf8c1916255d40dbd9f1b03c0fc29db7560ac62a41bf7d8435cd1a145dbb669221738d98a08d38a02f63e4754b2cda61afe65c1ec133c6388d16cc7c13060b24ec7d97519355d0ee1e05a7334b321df53630594b9cce505b6a5ebb3f3e0da74ef5b9681a59404646e879c652b3a96426e5de17bd0a9bc176ee8b380d1d1fb1619126914ed547e1242e12713db2016ff8661ff5558d96ccf6018dbb66543f0b121d30fd7f045dccae947a71a3a645f2d9c3a67d2502381c16d48a4d67a4bd187989aa148a2cdd27ab1a7d6a4c2d8b477906ed27605de12915e84b6c6f883eaa1923ef6157f69c04ae5a87e6b10506cfe49114e8e78bcea8dd72f9cfeda57142d311a78fe9eade17dfff9cdfef2be61d50f9cf17a0db554e123e9ac3563eb4ea99b98da3105f111bd06918ae8b8ea6a2be1c7930d4349e10b945a935b34e994536fc57640e951f3301f038dab83a9c5c876a386f88a7772f39b01b2a7bbaef02a8c6155af6adef606c6cb12f42c0b1106157e393116b64dff48bc1d5ac911e4dac14dc9c5343bfd32c84e7c453edda7f1d602e615002b54faafe49480fed25acbda1c913e17ba4fe2d0b9ecb6da351fededd329d562a97402ec1f5b983a60ba4aa24f9cc2e936d1e96d33d41cb68458a665e02a889588ede402e68bce53895c957f770599f944842b299d9c3be8f3c9014f2fc96fa0bd37b3f28884e91b4842c81fc556f053afcbdfa990cfd21439d6e9c539ad23c35be921c4175447a312b36dce2fb75baf09e392b45b3ff115d7269b84ed0e6f92ae0a488548a02e3f55e500d94b8e161759b344531cc15464e0691e23f4b6b1de52bebe7120b784baac42dbf19d446d5003ace9ca7d31303db38558ece2ac85ad5885adc310c561ef488c3a9c36925f1b2ad446e933e0890d1b6edeb636d5deed50ac68150d2a045ec1d93fb227bd518fe3da5f9e8e20f2ba306c090c0b409a1392b93347fbd4061de11b805b67e4c3105abef12550cfdebe83ad2617527309e24c6830f7e2e9cb232090ad013acc3ed2840b6860a9ee2df2b60b484cce48a90b2b5846cab6ea45d671c4107dbc485ca78534ce6bd0b7e4c3fee9ba39680569244c9dcca67707a872f212588867c8985ae9fa1fd3c8ebd9e1dd1d85fc628f95c94878d9f4675a52060b8b736cd0142596d07de7f6898e0dbcaddf25d4b7ca43d95486a1044c6ecef10d03457b11b177da98524a8e1a4510f2aa15f46c21b1a06a0603e1f0fbd5d88d9bb04183b3fc3c7755b0a971a82af65483287beaf6d8d43d083c74a21c902d502d01e29d7243cd8cf0e9572e2798f49782a5211b7dc1095a3800d54b539f0d20e26763827182b84fd063036fcfbbb8136d3c345a2f5d4d47a055d613151e37eb749fe1f3db102d3690153ceb480438a1852099ae406d0a8ed22489a8402530854e5283c44ba2325262860af891cd8a7195501952df4d25ce8efa5fc46b44db3b7ceafe2de6f8cdf91fe2ea39935d20450bef105dbd73b36c8a52a964ccfe3cfa531fdd51be1ca016828dddcf4f938bb0d95649e644234a4e111b44c8b8acf0dcbfa36ef3f0a0f8a6f8408ca8c2e062c36c22b38b10aadf57a97cc6719a9a8dbcf4374f1386e275b630aad0cdaa352aacd81cd7dbaec655b7fa2a696aa23e1bab3152bc01001f6fb6001c812405770c75769f801b1d5e645695bd0db46622082050801efa79269748d1c7688618937aaecf673a3ced8dde6835b03b09a2d105f37a7131ccbbda47f70dce0ffc3249f4ffa66c6b6b0de885366d390ae3175a4b6f1686491c857ff8e851c3661f695feae04c62b03cdd7e7f4fe7117cc492bf1a68f7f96cf2df02929be4a658b9818f26a5cd2cd082ba82d71d84af1cac6098e98685247b566a504fc0324315b083ef870158c0ca821dcb8e54a5ec710fc2cc5db9c51bdf31e97f77b8c362129a292d76a9898b78c46104b38ed970d2833a7882e32e6a9f562b564c8ab7c030e28729d1aa38909bfd691a720d3fe9f71ce443b6c81b49c9f26e2d9bd167f363ef235f9307d1cc58eaa0a2a4994e84b0e4303b36aee8362fc99a19efbada5d167e9ed312f270a6c7da2d0ca9a676b8f165bdfcfa73f9877154979853fdcf7bcb919e2d7b673c3e130081f200d81a70546b87ec61ac214c21d0e68c695335952c22801b254d45e9e50fd7295a731ce07e417156d455778c467c7b0d10ef203ef757e654e7b6e08b6aef952fce9782cef6684c6d893883606eb0535eb02171926fe7c9a52c27b20c2ea717661a0bba312649b4b311086a6dd9b788b0091640ce9017047fcc899c55e2307f74113a7094b8ac6032ffcda86020a98465e072ac85f9e9a8902f64a4e42d7ce91294600201efca153d9b2ce6f81c6dd6723d34a1b512daceda4327ded98fe41faf48c0785ff5583b727c2cf7c3b292d5b59592a2dca03604f955efad60761306c6224bd50eb929b891447a6851c19b4aaccf9f1b1aa98eab25fa7f66fc344df84af1b945ca59676cc26f6aced8d2546b9aad65702fd14c2db439c6f8bb0be9f2337ee3c47614694bd3be1981d3a784af61bb46bd066a2850452f3fbb345372ac2aff29caa46f088200d46d5d4fdc22a80f1772ab7390b108127c8087e7f599fd60f2fc80d80710f1365d6922e261083725f152d7d9a093700c5cd0dc8a8753ec38f404bffbfb62bb7cce55a49cc1a63882a1d8083c66a506883046beeb2726fb6f08583a5eaa3c3a25e57a6480320c7d21683603c3644c1c79060c081160a4459081e9171cbade3c0de5b9bbff71297e499e149089d6f5e091a30ca19f792d27cc2ca78bf21769463e47dbfe0ba5a688899280261a5b9e391802003cf0d00d6cf287404461e616ff987dc4a91b448fa19f6c34214ff95981ddf958ecead82a4bb4408c31c726e5ecee208027d750cdc255be2d59598678a790dd2b1c6c025a2ede7659308a69261d4476d964752056ac7c68de0325bb750f8259038008e8d3d5aedb1510228296a4b8cf3b0ee6ebf8eb9c60115c07877735ac8c2ec2a2456c4e4dcb716c0e268b97b6b3cfc102608b109184ecbd09d97b4b29a54c018607e106680755f64d9d1b75a028903a4f697c56ace8db3ef4793f498547a1d71c2ca5c22330f45a19c5e208c4439fd900d0fb39c847e1f7994ab80ecba681ebf5225ab4dc5e6bada6a593dbad57fa574a1b4da935866cad99d468b97aff19d65dc54d6d44bb88b64ea66edda68537e8417afdb4d6da396dad3dc3eda7b5d6de36ba417de6b6416f813ec906597bbfe5dcee6e1b8661ebacb7e9df213ec94ea6deede2bd371c6d9cb0aae8f386b51a9588afbdd7bac9e1f7569a9d3669684e9406e74fe7d5255f1921f6dab2b42f9db60408589a0840c084beb7d0f49089b457788be815b92d786a27ab8e146b26063b34603b634e307c4c56c818a9e14c0c659a34d11f76b6603b5f7ec448b3f2028d32aa3c28501f76a47c76ae3cd9323fdf5b686f5e82ef2db42f30555fdd9ec9ed5d7794bed89898591bb1313116f65e8cbf0f0c6f18da4ac38bbf0f04c3b0f68d6018d66a369b4864bce3682b1dc3b166b389e238925eb77bbbd94a6f5db6511c471287598cb75b97af8eab597079b465ae3af9b93f3fb6d29fbaa4eeaaebd153a7aa949edaa407cf97979819af2faf2eea842ea144282542afaa1e3c6d76f6d5b1d906ce0c6a79b6d79981486bb5f65efcddefb3957eb45a7b2fc61f7841d0560a5efc7d20188635dbb5d96ca53630acd56c36511cc94b92b652d2268e2349de6eb87c73b69566f286c3e59ccbfd005d20205b29d00f5050909050870e1e7457a7b395ea72e20f10d068cb205dd0684b0fee0b8942a32d3bb487ebc183add443781b42aabd75fa42e16d08e9ad797ef015c6047fb3b4d1583ec3cfd218087d752cd51834ae3ac1473cbb0b00031932446478682e7ca179d5f842f38276650caf7e544cb654bc72fdde4233e17434297feede5acf51de7a908ef7a195708407de2e34ac3fb35d018d47468bd261cfb258f71ce7aaface89766daadb1599ce1815b5413a39522c0b397f6fd1f9fa1d9d2e70ce0a73b8401a67380811d2a34acb9d1e3d401004e380d5a28e2316661004411d61c03869701c374e619ce8b573a45a4f112263b688d0421d2e94471c331c678e0db10a7396d8a20e95a694f9d271462a8d0f6a3547ca37e70a55983160c0a45056838bec069704df5b70bae06c9db70b1c2770b4aed956d90b368b0c4e31987d5d333027cb05f7bd05e70a4e8fa72d70a8a2ec16b332331aaa162d3c2d5d300b2948612b52a06adf5b655a655936aa940989aa52c6c35629832aa3f10215a2fc7d9f94fc7d6fccd4a2feda9bb1307f0c6fdabca93365a3d83025dbbeb7dc9871f3d5c12b0c1428d60e2febdc779f930c7e6fb5d9fad37dd7268b2deab0cd8e3638fe74de05417054917960cd411004415b4206413660b5a8c56a51af68c1264d2d6a5c2bc332a8ee3e48a22689161a5ca234ed480bf550ed74dfb5f9c5d9165dbf67f820d5839ecd1e04d99c3d0882e6d901efba5d722f36af08590c9156a5e609c2d3704d152d57e85eb1a2c91894c6c9f42eb07fa55478f4392e39a84d4733be65dcc73e8444b31e5bf39cc1413e6a0c4e8c4d25dc5f53eb637adb4dff956d8bd6884d74f6598b278bd0a9d740b8782be911aea44762930ea864e8b8921eddca3e2ac9f20c9f2c6db7921ed5f22bc917a163bfa5cd3f1b2ebf5bd6c6f28a6590ad6686e5b964ad4bd0b4466a838bdfba89b11fdfba043050577c38b39ec2cc5be77adbf5d636a531bb9da979fab3c5deb2789be3ed4f20579f40a60fe823ea7d26d60f0a0e215e4e5ba668a041098e344e56b5de971bd290d1b159466a9e9a80b1c1a27283deb8216d872d42e27b2bcd90ffbeb7d2f8b0462c16cf62f16e12e0405807024350f0e113d285b97c498a475b900771829f1eea506b21286b5a03d55b74c8cc50391db23250990ed998a7900e9997131db23050950e25dbb241878c4acdab062f311a3cec6a4707227f6510f610d720a6a3a215a1203646cd941d1a40a814d9941c44c6e4cfec536213f178bdd5420109500003aa8ab303a2dfb54800590fb2aa3f4306f527cf2cd7f4d080c6ce1a3465d96bd89a3c064d99181b19de90396b014d970b2998f1528316b02a6351e03089610437595e43e4fc684184325371d0d85083a6c60b19ef9921633c37a4a539236346d6068634368c7d8989999101ec6b9bb1af93d76dcd33b4d68e79bdb5b6bf855d71abd95f352c635dfec3e0455cbd93c5d0aeaa028d32a404682e1a5f5560eb1d921a7ce6e8b8448143b66e1d3b48bac0d4dfbabf35a9b783a40bfa627fb7a6e3213629a58d01c64e2976ea2dac12f8353309fb3daf7fc0f498526a439a335d35e8b1e1e9d65edb6958d3def67993d85b54d205ae60f861a4efc37e3f111c434ae2ffccb06fad8d1c63d53a75ce9c3920867cc17155e5648611bed8c87120c6061c2d6a4a88f2234a845bb7a9d20396e38d1d3e3d28211773a89a98e0f95ad3853e11a585d0009a2e3f689499e983843a4dc084f5456487992a226069680da0375c92bce1c3c5a5ea0ca541bf04b9caa2a40e0a5459b48982103860912343952f485ae863a69116e0a2254d0b54d838f9c1a746678f08b617f26849423676c606303d56601828275a3684e942852607ab21124680fa81c70b9b1b64c0c1aa0388302e687040e59192439e1169d80756192a27592330c982c74a17b5851565ac096bce9b3b7601289c1953c70a923028764488bb618ff8f6ebe7047ffd14faeb27f9d771afa8f988f10c45b3adcd6c5b33bbed0adab73118ea36a2f7832ef7146fd1f20385bf3ee27bc4b7a8fed5abe45eab827eadfb1bfa996b7e869f79b1590bc15b71b65e8ae9476badd5665a761399a179c1aefba64b8a5aeb2d79a09f154fbdf51ac9d593e4ea747c5b6b05c30ec61a5a3ae2ed65f0bb07a5e3a290f1770f4a2a7ff79ef08c408fd0287feeb8b67248b32273039e3d4715ca57cfd5ddae608292ba8281090faf334f3c1e0c739c3c88f9db77cfa90b8e3356b5ef9ed35418b88249cb0d28655d489a5c31e1883ea1394a7cf79c7cb887dc452b7aa86763ab17f5c21dd2b3f175ad7a35d6fcf7ddab3166e682c9d58b5c4077f83691f08636b4c16f110ac7bff6b5d66aa2ee68adb556eca7eef33383d56f77df7a6fbde6597beaa1afa81d75ed5bd43334aec21d8f46d55b4fd1c289f9d67b4d5278ba5e8dafe7b5d7db3388c780aac2df7a8aaa823a79eb3ab0b70ec2ea32786b63844fcf9a77ddd5ca10460d6ca325fb49d845d16fe5f9e33720cfe519e4d9c59cd7726ef3b1eca7a38cfca353dd8f4e9dfa6d15fd2dec78928e73211f4719e1d79ce2700e3e59caa0de4f853cfc9a7fc0f4a3d2e84b4ae00b9932c21fcd1475c7ab3b9b418bbab39e2b13507776a9e63405cee634fbc9f300e7e2e7a28db4d9461b892b97ece3fc2b933ecf09b94dc84c1a3d7c9bb7a8a418348a6e735c9964739c639b07551536276fdf03194ae08fae44fbbc52902f0d21f993de4f9a494ab4cf8fa68cf0a99922a877d49d9a67084fed0bd54a0f96c2af790b2b5225fba3b7a8a3932e549e4c3f7a8b1a54f26aa55202dac852b3c52843097c01b49175a5146dc4234d161de6c8d16fb672c8e66439f482fee8b4c95326df242de187689335b2a44b90fc712ed2d203ea4bf65d505309fc24d24933a9e6e17f30fa817eccb3662a81b852867dd12f19c3ff64fa2fe7fe39b34763c9db0f6f657b2e4fd083cf4573c97ae8403d98527ee4c1bb8d6e7ed3eae04dbab891e6c9f4e4494fea22ceda5a47f3a46e73d171a552085f7bb254b24348b4a6e5a1db88473d451b596a826823abab3bdb1878a0a4e5a473293ffae0dd46a42b7dc0f45a3a53ca8f74de6d34faa8f5c1e4d9a2d1d4d2993aa2bab3eea1dc9519d49df50e650bd285cd85cd9b144d6751776087b921ea74c90fd5cc17a1d65312a879c2e857021fbb0cfbd84fd0cab0e7672a814348e15f0fff9a60f8b448ae7ef264d8a76e816aee478f0f3099527687862027c819c10321665e4f2d30790385a684294a183a40a4443801899c24729a4e3872e5634f1524489aaccc8b903150b0a0c1a2476af5ca51064c93af2b6368d61541843e486a44e18cbbce15991ac652b043870935d287c8d747480d0abeece953768138d53d7b9660f178fa29bbd5c0470f9fa91b45fa4cd988a2e07b6bcf973d5830d6b50105a5274d0e69d7c90336603ca6e4c4119342b1f4a43d5d1abaefad3d507af0fc99fdd6b84db789777355f1dd4a6a6091ae5fa4ea49d7ccf7c465f2745d117fd6bfcf995ec4e406b40f3d51fdd691124004c7108f364fbe153706a1e3ddf93988490dac0622f8cf717922dd4ffa1c97fd6129a37ee8626da424d2fdd0b1bdd4de30363fffdc9e19a4968ad8ad02d77a4515b7bb12c003fa8d6befeeae97561caeb0df1cd23cae5fc4979248d45e520312c922554fb266be75571b83be96d61f77aa594917d576a54ec91b1a036badc5985a6aedb55197da38716e1c7abbef8e1a0d2bd8dd600dbbfb8322e20f0c6b617fd1acb3ba65abc6ae143004bfb2ceea96ad1abbf803bffeca3aab5bb6eae20ff757d659ddbaf8f657d69935abb5d6fe32a39ff4574a1bb58728881f18d6c293f73d46abb6e859cdaa5f177f60089ebc1ea3555b67350b7fe077f2bec7aae8d659bdf8734c29a5bc1ea3555b175f5e8fd1aa6b79678f55af27cfda40715fbfaa9fd65a6b9bda28fce25de940ec4cacc9f2a72ecf923f431d889d89a1067cdecf416d3aaa790886e553148ba3cfa5c2a35acd0c5b58db0114dfa406cde6dbd41aba1e426f1d81e073108057c5b5d5f4eb77a8cd06807ecd07f411685ea65bb115b189f0dcc962d5e4deca23f56788274b1edd9dadaf0e8283da7404fae75aa0f9797982f03769a9fe3581be490d4a7c9b5a20b82aaeadf6abdddda7cfd1a7f579931138c0d17769a8757783f6bb18dfcf76777718aeb81e829f64adb5b5ae85e067eb5a413eb55bad0dca7130be8d75d7362cd76c580e9f8665f06958fe9e86656cc3f27d1a96edd338362cd7a76cbedd8665fa362cf7d3db46edd6daeefe2ea65f0e02627131b6568eedeeeeeeb695c5bd61dbb63a6b2def1b4ea64edf6dd6d66ab69b12edf34348b657a27d3cf0b837f50535715c0863e62b0f911b7604012204ec062c1a745c7922a2c7e9e81bf29f1d3a65b0c4be15015959750219d7640c20c79949409ecd24d2714bf571e6527d2073344fea38a7241269b6ce5cb22fe4d771e6d9e6ed602ed90ff2eb42e6493f28a83c67bcc5f9e8e258e24a4a22d971c4c0677b29b9c1293ace47f3d6ddb9643fc83c47f0d647d285cd6d5937c099b7ee4617cd6c9ed797ec8fe6b964afd9d66da35bf35cb28f265baf57573fdaf20ce1addb9b8bb7f204e1710e54c918d96f9e2b71e6793fe7b7b2eb2ee7947cf1639e4cffe31784cf790b7b2bcff0b3dfccb1ee70dea2e64aeb3f2539faad04f29be7ccb0ee707e2bcffb386f3246cebc7587336d1bd01fcd245b25912c50797e6e4b7083da8fb7ab8a9ce76c9e4b353b90272dd507f233c8db719e2bbbee70e6b9543ffbb95495ea8f2ee63229e7fd62d32beaa2f79e48bd28dab1491839f39cf139bf792e4f103e3baeecbae2861f7df0ec5db3e3fc43d9b50897c4e765d0fff1fe5cd91fba255fd0073265d01f3d97fd41e55245aa3f9a495703eaa28b1ee46309e4412512d0cd3c9946cfe549ffc77337c79539ff29f3ad243d177a2eeb8b74bce529fad8a48b9c8f65765c7986f038cf9548d9ecbac3f9e8b73cc752f49b374e249146d23c67bce8ed772ce9dbae69a36ecf2510c610fe5ea7d6540ae197e853a1a7eea1e6396ac8c8a931c6aa6b2a489698a9eb3b277247e1ab1a5b41c8129b902955634e7cbcd077cf4993d47dc20367cc07eb4b4f992c194a90a25d5769f70acf084de8f07439490da39b1cf86a0b7735866aec059caa2c16a084b9904398ab12eed5131e631cc8928a7aa242333b53e1aaaa7615a46aacc99a2598769319a6c89a7ce120bb4d4ee0ea01f1eafd10c34f5480d4b972d23186330622363576e2bbd7848a099f37df4d33bb6ff2cf0c65b903179d8cb30227dfbe7b4cb4ae9dfcf3dd63e2e3cf7cdb64f2bbc7448a4993b52deab7fbee2d81f3f8bbb7a4cd153436c4c8314b5688225bc205458697185952f5017dea78ac3b4ce62060a6c4b319ba788f646cd5cbea3d6ed1dd5b768bd227f9ecad15b48b6cf59ad7e32eb2fee16b7fea727fea3efca9b3f422c9a70b5ca3052baec79e800d5415d5c316320c8fcfaee1da4aefedbb238a7d808cfb30cc59a7db7dc53e561539e46ef327769b9f1d749bffdc66debaab94e9ea3be836bf5443c0385caa8fddba884bf1ac8fbde62daa68334feb4b35a4af3423f4169596f4c3f245a5ff9927137da84ccd7b9de0225b45ba28922b2459b5cb9f401004b5ceb0161ebca4092f9172300adc71753808826017ae8540dc4cd96c51633c9bc44c92319cc1effbbeeffba26ef021c302b3aab2ae281129af48dad4a27e246761fe8008393801f3c4043d75c020c16303bc1107831f08d28ccb20a75acd842c3738aaf0ae12ae57e285330882e0f77ddff70529e3e4bc3e3c5ed8634d4d4d51351093d0a5163557e895c1744fc2ee4190e74475771b4c2f499b287cefc560af21c16c47837e867f0374afbb1d783d3b0846b93bef2363b19a8e7cfd11335c47c66e80fd90adda1735a6c277c9babc112e23bd215d51df7741b057e4cbea8ec93963c20392b428266aad67c46eade10cafd743ec97ea778f21df3d1e343c35950ef01ff8771b1931015163c5cbc94a0b863129a4f16821acb743ac4755660685de0e3329323c786ce14125c4778f478f27bf7b3c6c5c25dc5f7c5a1f42a259f7055bcab82eaac574897e2d13d41381486619c1bcd0a3b2e15228aa2a4f5f3daa2736be2ea68ad24167cc18de983b8668c5d37dfafce909f5a8dd9133fd49bdce88f2effbcc24ebb7d207885d55e42ec51a1388b9ae787a7a12c53bc2de6647f9d193eb4cdfe48bf06f88b3a6a6a6a6a319945e400cab8ab6e1b7e72525f09794c067fa265dd03ecf446906709cb1d2e1266cc4774f07970e2f27c6987a12fe4aec27a594da50b1f63c05a9562760a0bab3854d5814596f852049b0c2fa442922048619b6a4c886c8b81185062c3390cd80e48bd4961d44a2dc48b3a2587b9eaed5111d477448a102b18e1ee4bdf7de0b7af0887a82b5834c1af53295838e1a564148c081cf0f385fbc9c70c2d49c6feaced3169aec8431c6188ce4ca4e744e561238f5540ea7315cc2a4f0a60a0da7b22e5f79ac49cb70e6a68c85207bcec470c9210597e38b08b7d74c697d25c14156a3c8961c376e398004b96103933768e0584d9942b598b1e120d3c221e63675efbd9766c18145c4818254168e291d0e253cc4ef5e94951c5706b476c46025489b184ec09225810e3238b0413ba1063057c0c03ba4dd90a1d123ea8b182f332b3d1c515156e1e951558ef4a2a8f0c0a812fecc2ec34da107f5e47ec9e1772fea4814d51313236e965099bad2a44a94c737b470b9bec344c024537e998c28f902c6c307932e344ae5068d5befc60e1d40df3da81c46901afaee418dfd99bd0cfeaabaf75eae3c7279c9b8ef1e9495a7504fa43e7cf7a07ae030c78619d4930d39ebacb532d8e0f103a68cbdd6f69ebadcb0f6f2c8d6dead6cfbee3d4dc1e377ef898434f0cf4ce5c1c74e565e58a0a061c10b951133748a11253b805c1b43ee409550c58c9b20626a98e00387550ecab927c5c30af7dd7b929a33c7c9f6dd73e253ab83c70b9b1a6161da549192662408cd881771d73c69531a9a671894ff82d05d4aa9192e8eb876441d31828ee8daed1c41599aa60811240cfa29ba8988762688742e40c0a81fd4465d827411e2855ccd366669b8bab66896124a0404310e52b0e0d5eb95ab5944ba28ca21f8e15b81ada0820a2aa8b46f1ce08eb0dbfea4af854d221233aa28a0936b07f46ca4272818bb3cc72ecf36a35d6fe7083ef4916804094a8244df112348902841bad8ed481875d746eddd4545e108a3feb500fcea960489123bbadbed1a1755902b6d4b622caa60375a40c2a8262a188d2c182f2061d013240cfaf1308f77793c9ead94c7e3750eaa40170422c4650b82b2ce829ba6eeda4db4f97613240c6a44ba08e142aee6792f303a71c1d8a5d87d0200bc000060ec1205be9d4c7f8207000a80b6b773c65f913706f174419436892158c8d5e4911a501c0002d0551cbf3cc75ba208212657f31c530840c50ad2050b0ade4ea60f03100012461d7d7c13f269e2bb4fa61f42b25ffdfe4945d03e82088508b34481c243a0408102050a0a26408102050814282a0d4035cf113c35917288e377832076156b8cfa27d387f4047590ec459c12c5e4036a11b81d593304101c85b6a8964af46528759fa7de62fe2363804fcd90be9614b8d5f4d4d4d4740492318c5ea9cfa0ba347d48c600f1d4fc9ee25e08e1945ed4feb611f5171fbe45fcd5dbd981c7a3288ab69a3886a2281ab57fdfe63982272daef43609de6650265a6d12b1dd5a6bad2df1934c5db463b5b58e96245f60b7a40b7bcf19432f3e7c7bff876f6baf79dba8860730ec87f404751840df6da4658e75d7b9aebbf08626530faabbf09928a54344fa7df5f401a2e26382d163c7b22b87720c879b63724387b015ca375d1dc284a98d25980a2455a6eee1ca5a6bed01ac154703748f23d0910c2e3982384380dbd803c08de30f1679b4a084eeee56819301c5cf28019a11d0e8218c44d08823814868b4c5d97518cb1e22420f63871b7e7563891522fc300639a1408271a8c604776824c58008418cb62c4377825184230105a3509e0f214609d0e87cbce1002a47d2cd4f688e204cc85d11a3055d99083762fc21732331da58204b8c619822cc2073e9bc1c6c27f6dd69befd6461cdd3da4eb27d65ead75a6badb81bc92eb6a2b1940a2d18ab5c8516b6cb0efaecdb2b205db4e78e586badb5d8825102b46b62f43d99bab54663aee9f6056398464f8c3a234d79272e303261410545bb122446108968b3f4ee10144c006248820f3a0f1d8482807e50a0f8efad798ee0899c28ad35d332b3b3bf1a60c33067dd970b1479b27f2dff6c3c590ee822eb614dede6ad978fa701350701b3a7baeb3f79b4da5b6d1ac2916dfb8f9a6c1d6b65eb7db740184480e9f22aa126ff6c2181c524ac0b8ba8a94b07d1153c2546c835392ee4900d892f19938dc021d7c2488065d2cbfccae497b4304ea24a20f20a438257982122cac2fc20f1238f7b4a4c9d95f09245354475326946040cb9c3941163d946d9f1c8b74909163259c44cfbf1454502890a517454a021022cd7f090c002668e49831b11525298a292433423d03238c30823f903132196432f124d3290961245c0945006068814982a113380b121022d8770487065700dd1940c9e292127dbb67a39248168850c1a09cbb5ef1ed70f930d97d588355c53443d14867c19d1838fd82c6c041bf1a2c7cb145662e6cb14ce72f2f7bbe745eadeb23f04057fbd34c5609dda7b837691e19bea4ea7e4ab8370b1af3150b7de2f525247a477c2d5a54eb6741884e4a90da921d5812479f880bd21eb89810911c30929a39ad1e6898613acd4a90a524648d728044cca9de804a93f9d57c5d2cef860a147161e516e74190147972138ccef1e973c5c2801700572ba5a3dbb6f09d345050891137c30c943268b94d32c63a1162961d681186db8a5c9896add5d2e774e0fcb962b58567a58a2f01a3f7189d928e3c3863a4fa05ec06358a06079c2cb415846f83343c17172ed2df8ee5dc1e14a9a08578ef8a81d29820353204b4f923c75c8eaa8f9ba476c501d698a4251a549052b1f6fdac419938576b3eedcd00acb14d8e971857143a54b950b5fb87c5c31a167c5ace9139d2082467b9a685b0bcd337f354f1db69883ffcc93031375f79883efc0c45fcaab5a7819bbefbe6befb5d72cdbbe7b57c47a57ca5c3277a22b60a4b2aa884e382b0b678db0e34a0e2b39b8391bb326e7ef5e952f77aa484153e2a6ca559d1cf4ddabf224870e1b2a6354cc54f0dd9b92c2142f628400c975b1816d5cbf69685bb8dc9193c29736b405214ea1901c53378fedac369642262be3746318cb384da1220621bb8de118c6324e4152180b02e516a48b8db1204ceed40941b06a4148782abf7b53acbec377cf043de198d850b668941ef5e91ed9ebe39f99e8ab8fe1b552bcacd57955e1f527d15542c7dc3321cd57371156163e3de2e8391773a3ff9439f3bc9ffd9667f8d929e9e2667655f1e3d95bd8dc1dfda7c4f9ad14b3e74aa09cdfb29964afe7caf3c618cd6cdebabbd6144ba607324f26a4fa66deba50d75b0f7251a423b6f6ecc02fd94f0a72eb4d6e20e4e409e41edc9a6707efa0249c5fc795f88a3a2ecbe33c90bbf764c95b1772a49bdb9c5bc7648cebb818d9cbf3fe9813cd161900e4d92dce1c1ddb1fbf94dc60746b0e896efde6b71c124da4eca2e77c4883eca2df4cd1ecbacb394ef44f01f481fcc74471279616a8046b196d9a542ae668240000005317000020100e8984821cc8c244da0714000a638444563a2822c783a140140aa2408c821806421888611880812006831cd3ca5a03afba71746780aea9457f2a01d6bf3326129a4ed4800f292106a3eaf1fd7ed091569530270919f07ff66bcb27b50302a76f6bc2250ca0378ac71120ab7955340f211c6cda8368004bf5bc42fe31f7f26443069126a76774a388967e71cea1d45670b8a1497d8eb6a5a1e6e009dfe265a816cc2c46dc2243a887a64e1763566cac3ee97f20570f3a60a1a8c38a5042917dd1aa195904de34d352776d61485e647accf24be57901759ff51b11ce5299469ac43bc4dfe19f92b3905481b05b3b8e9253f6374ceba40ba5ed4bb50a2c0d976fc80082f4b228b555e30e6b9407c288ba19d9cab6755d7b50c3f3dce952571211526a0bd68b873f5aaca72b0deeba9cdc08c9026ef04405777eaca2ab34922aa043ae0bae64b3a6c548a112e37dc1937ad2ed7a90671f0bd78a48b526d4c1cfd970b356a4a13f498821d46dcf63cbc9f00c072de3e4ac509d801a8a75c7880fd6b806170bff28a50975257a158aa7304056b6b06d716f445b8acdc7c42e9205aaa8ff50d951c4f7f45e8740d7c65c509b496cc60f41d1066b9e0e6bb7470e8bacfa1a2b18a8e13054d1729810a75167aedfc7aac677c64b1ec55872b20bc6fe13a33e9a8fdc54d69f196b7e7371493f816d70b7a898693e94a7d40d86b51caf2f750db7ba56fe137643473146c3651241c57af89771f78a1e89e3f80809c2ef6cad096b752289c1b879466035e35053fdcde0f820ff93b7e27d9daf0c315e3feaa5cb742d83a424361e2ebe58cb898bde20bb968bf315f9f65b2fd576ad1b39a832b001c8aa9af27d6188c46a86db70cdd01cb479c82f3464e829703bf9d2c4607718d7bc14bdd76ad4d7708f16380d5cebfce779855bae13a0ee44ffd735108ee06ecb1761a285d7099288a89550618ded21d4fde6095aeae40de02136c82cb7ef1ca04bd6f5982ecca0052c42f98e4d420214222510ad1e77f98a441f9551de47ab45f801514293aed63082f2546db9066e2ecef6d96e4c78be49ef3a88371f9ab746c43ab4e50dc79f684360423fc5b30010a589fff19ef3be14357267fe36278235fc9b28251ff4481509edf922c987ad25b06873a65840d0330b35944a77815e6fa68d2d3de4caf01f0ade9a2c66c2fe6243c94b323f14186be25d9b9270bb349489a5c3f22a8e12022fcaabc40de5be91eab01c93ef20196c76afc65a142db3693205c1b6ecc0d5e9baa1a3d2ac90514271dae6b6ede7d6f0d02dd64ab74a0355cf2635a2517e1339d7046df58f06190aa42d36109bd2a0174ce3e230a8ba9c33fc370a3fd6ae01fa61d148651de287ff5622b897ba7608e155e24b2d996a20590763cf88350620046b1f0584a42a6ebb6b0f3ee85f189f3b37ad66136c461176780c27e02cd79e8cc91e05398ebd8c4130c5d8df43aa1e3c574756b1833da571d4234d43779d154416ccb04ed215ab1520881899015413c4078311b9cd02f11522633520c542e65ccf220db8688f2576a18734977feee88c7c137b09fbd7b8a3859f1708794e8f3cd1805f0b81f9ceb6352ccd3d45e66c5b8bad7980a15e503d208d7c00b5f70a09a703ef08c2afc5434ee740be082307b0669e227302f9e317ece83200c95b27013bc8fa1b20fe06d7d870020ab4e0418a98e2c4d1036c6dfbbd8c00cb04941e2a633add92416907ee02855d0c652e6216fcfa66a139727f8b16fddfe281ea79e7810ea6ddbb9729a3374b2dd089cb12a160037010740d492526d1ecacc7d2814df6a2f79d658096b92751e81968044528282e98848a09b1eb00503572147341cc19c279edad3861601fb830208f7f0ab748de71e3733c340ef99a8e142f748771a963ba25257161b2c41ba7386cd8be4b45107ed8f4e9a61e71abb3646bfa082a523b40ddb40d556dd46e3a16db40356d781288eb997091b9c1e83917d496c426fb4a8c64403aa7218d2f58a77adbb540aa51c73ca4dae03cfc5bdd80f895233ad118678c4b4a5e28481c5e39302a31693482f5d71ad621b529bd6982e349284b6500852e410425507d975bc94a209403fd8cd0d766796c82d87425fd8248c7b5276274b0d59354fe8e279e6f2881503924480013d51ec83f021a5300a9d01d8ac72684f608daed009a57d008dd06653e4c453607015e75aa1a8ed216adab598747eaeb5645a0f65461d801cd7705ad2f1d0050623045f8851c937910571f65dd3299dbd49cece604f04a64312a00aed2474aa0c07a100822fa5ae09a246cd2f310313cc33360d3a78427336c0e7416ad00c1c63bf5a1a7410b6170e54cbbe350173b8e24f30bd9c8680f0b7f77d039d147033130ccb575cefb1622a392f3258b48a3927f951905bdba305cb7aea83e9e567da4856bf1ae207b41913bd84a285d9bce7c193279d8f844d57165a2e1d6e632c2385f5353fac20d2eb64f7720faac3ffc8d7b52ff617c52b557df00fd36fdaed462ed44429a3cb566f2149d24a5be3b35314d04c2a71b524b784687e0967d1fd8259075d9e6664bd53dbbac43619e79518439c87fb5058a0542972983d93c1efebaa4699505b29f2c5053b296ccc627dc66f551dc245192b8598a3848bc800d68a416a08a71bd3268ec91548a032a6e48b80abd105e2cc3a4852a3bbd36ee4dae424f027a480ce0639cc029cfc1fec4d16d9e2d134369a446469ee2f88be536f53fe5226b1740107fad635a04ec153a32af86e1f89b230187f7e089593737c08fc93e5079cc7f3b481b8eecb40aeae30b863196968e0fed397226527dca85bf6402152985cf550c6aa795875d37597f498900bb392c074393701970bf37e7fe68665c02ee55b01c4e4d814bc0ddfd1cfda95135f6d94b26fab2bf5e01b1b4fdd47a443373c8b616ab91933974c9c4e7a2d0ffc656ec6627cebc9ec78a25e1a0c256ff72b708f9428c512e1e17367932adb2cb9535ff7931fc96aa44c82684e144197de326c0dc516f3f8f93d4114a82f17faba9036bb00e47b40485e3655607c3969018609c6017eb04cdd2c5879d2056fd95956ed769c2be7d2a7b5b0eef0179d99c9d1818f37731bd54af4f8269d82430e25085b38df650300d32250903817f9290dc215e663463a6f9ab2357f270e973a1f62cd84f7c8019b50a7e7b539654be01ddda4066f04be196b34708486c23517119ba78ee62aa56dc822e79e056ceffadbd7c4ca8abcde5d6449a376acea04589e316b171305fd0c2ec15e2901cc2bdf4f942a409cdd895357d5d18a9428e313617003822f2df79ab2f5ba7841968b4da427434f46f83d25b2f484fa7ab502e4597021e80d88a1103f23cc0775a1ea080576b7e00364b80de3f024ac33380d7aa5de8e6acfc3e1a069f75b875a954dc4d0828bbd4ffbd1090a8f33aaf20c255420029de1503e3b6de9708795f633b243546ed0951b487c53172e124d5eff9cb694acf051409842a8d0d091e447d68431a6f2a4c8cbb4e72e4521ed1d66072d0ff3b5ecc09e4edd658b84e2360d123d02ac01dbf8bf321ff0809d3ccd81140e81a1a893555ca8274e2dcfda5396d036d55f5427dd78aabc727524e0e4a8fd4765512146b88e77215787506ab74dcbf63949b200da14a85f578fc894c5a6024473d3b84372078d2e994c5f39663019b6ab06710003b5d6b691518cfa59b0b4fa5656c4e4ba0afe95296e651600dc2e4363234369975a6447da8fdf0f5520687adfc8d3afe970a7e6e7305a92afd9fdc5adbee634a7664a98c2e745a126e8f263aa5ab5b6a179c61c1d93148d30ef68fa7efffa2b1dd0fe5e856d12a916760a626255111d1e9b8a103daf62bc276b3af3ee14b15498fe84a2a091d829ed2e740bee8a209194bcfbd78dd281d516b5caa621b5d52b5b610e1d1ff103ab7231c304416e42eb32f213e06c60f390df445532170b7877e1465c5934744ad4a01548423db8d6e567a913c352162024a9112871f3d65c5d981e83dcf76cb00f7f7be5fac389bfbeaf0f9c8392fce7aa8e8ede124d070d1115722b986d968442bec4ab78a0b1d1a18d27d4fc6a78d7a3aad5764fa585d56fea179d648870ecd5e866a1b71266d10f40403454e9e9f72791db4d793565437a2d813dda9259a86231d21472c87d0d4f93d4a07f898108983f03b3fba5682761e94a72032bc428a7156afa58491799b09dc25c7aa46d7b3cd5b3c702a7c44cff0108cbad7027ca8106eb92a342f0b0fcebce1427b11720a042a4b38ef4eab8f182dd29d64e19c6e12ed7e5959008610ac2c590fe1828231d2a92def36b7f958e3fa67b3f205d2f301088c81d315f9555128c87a91196b6d21a6b7eb4a0d7ba44b99c7445dc6d0c402c65d5a702533ad1075dadf11c886a81c907ff485993abe92f453975aa3be085a4508cd9045d21e39842cf3ed03ec442451bd0736bb9585a466932b10e9735365e95573a26e4ab16fe1ba783aff6b42e65e22d7738ddf78bd61f6cb3b9d9f3730ca7ae9d70f49d525a074128827718c12b48f05653dfe3b7e1c5413039bf898d5e636e174454406d8ef9b400d5f5265515d0c0fc07bfdb9d5cdb2582374a13363a9c048df5efced37ccc4e10b543a8d1c02ae2024a0d1211c111c01cd08eecdc383563d96a8079239c81749cafb434712ebc145a491488d98d8b5f9c9370aeb55fcecf1e920112143767a59c8a4fa684e08484f6215a970e1988b37793aa411568db5abd3e4879490a3146bd7d665d4cd08d152421f007e4978b0c10f536bb9cc106d3564079006dd6f42a4e123c2ec05bb68ee91ddc645fdc49a1c7d36afb5ba6a2ad180f1ab8ac45645aaec8b4cb527b76c995f60d9a371b34dc16702b52caa5ed3682552710c85942b55214ca4c9053fe96315d62c919dc048b7331d402801d6ba6ef6782a98473c5202033909a00dcb350a79d34faa9ea54ac43e4f70dc222bae64f2bc09172a1e414888d1a00c818fd24bd2b777654b865f77b803f780954c10fc38472b13d9def2e6f93177f6edb95466d9be793ad439a7c5d988791f72696a1b2a8424aef2772139abd75216827c898c813c6997bf6d773170f68d5e7cb03985b2e1d2e5bf898f99974681eeb98a982545df69cb29c9bd54af4587734255bdd2b425b5db515b0dc713b0320f9e23db6c12ad3cc2319079f54e75dd47377ead55dd6f0df1eb2583edadb3ef93410bb380ded6c3017bbb46615f3875ca65ead011e13aee3015180ecdc6e1c09c7c457db0bf4e4b9c550a88aba07a434df44877867e5e2240841411893cd7a2915cc440bf1a86e80d1b926e581dfa0e684834426225cb92cee1579b0dd590560c50bb596ba114c67a420a09be55353775a5df8ac20952427e4c5cf344bbd93be954bb040e9ab026a9592908bbb12110bac1152d7575a7c053c9f7dd5cea768d7cc657a16d9a8eb431ed8c6ef764baa263078389a11ca7ec50dd68f568619a07c9ac7f097b2e7037ee79949ffa76be439fb1ebcf6c55ad398be0c5bf5d1cfd0657994b550e35b5cec0c40055f1e44baccaed110f00b1b1f543736efcacc9f6157f8036fd22864675976ddee90b37784c8a7dc2bcca6edbb3ca1dab93a0c57ac96ec6f233e7c20416896e7297213b8ab7f815c5d7b03e1c76822c65df6aea9021e5d4eb1998c890aac1f783aa4e1adb3afbf3d9052b23447f0981711ff6188a2dc13529c612efd51da2731d66b03f9a2db92c08712d02a80043f655c9d449be7a6705ddc55db1bf230e5d818f6b190e8b5a35fa732e91cc64de90724eac44909f248f7ac6ed6387bcf9bbfb943d40dba6a81dddbec05508622b614761aa1714ea38b2e30dcd57a5cbe7c29e34685fab420663c19716886d07d00a508e6b5ca0ec136005205312ca41789c11fc4954afde79462855669e3c1888989cdde0ceca625cce8291f70f8e2b5b04f1ad17f6a9b109fe57bbc2aaea8769696af06c8a306113bf7c5e916eff2410e540a1d242ed1f3bec889021f24e82eafe281eec90320cdaac8d8f0f18565ff2afb8e2633fd1fd7c7b3d83ab55eedb31096b05f5b624c4518516fdd2f5c0bf332085e10db726f08b9649f97c02ef4bf3f655b064355c507a6f292626ce53ef98ce1796b57b7c3d75729c752de5dcfdc690b3b2a6b0b3dca021422c03298e417ee74e3e7fe5c6cb2f351a3aedd0af3e2667f6c3eed366a6588f0464efebb89cc34bfcd86369337f1492741ac0ba3890ce60f4edc46408002276c2bfe055a2a069cf5d50d821ddccd955c5530d08eab1cace5b0c53d5f68c4848f1e6e0407b726f89c1dd67826da63978e97202b717928861524efac351024eaae6398971e92864b263853b89d1db4b031cdff641bcc1e323e5c69ec0632942cc3c3fb1738442bfb4611db70819c348dfc63e3e18b198a0985e5cbcd3dcd2aa79c784edd74a42abdf1864eef1d6ce50cfccab3d09e563415f2b4b2f5be4b0412bec08809521df6950b76529e2e287a5d7f82842279010d4e6810fba47a84578af2fc320c0c0b935ae1df1dad5858b2b5e4f85ff6e418530b15f296783f8ac8c18f645e60abb269c9ee3093ead98e2cf08a2f34085c7cb024385464dcc9b83d64d588e2c30d7f19069e02dcffae257371497ddc33c8bdb2d7460927e5653621b56ff11efa6641f9ee74237726ef0130dc1f8f05c6d807428bc906e287f7448fc072b1e4994aeb63b330c5f8b47668323f234486735412b2fc81f0e880af1ec96b455d6daf34507deb15ef7a5c67331be8d16cd3d7370b65b193b45b446b5883a8ae274a5c936ce1ece89820d3279231055433e4e49715e08d4b830c8a0ec0c9e312200725346720ee215aa0e18cfff46690e56e41022f8d0ac0a1ef22df58defc01fe6d5461e13cadc90f6c054d8280429c7f1840ecff63992fcda54578e2205acec92bff28d932cf96fbdb25a56b555d054665c0439e9c4149abd99afabd2b028c66bf781d670d56a682a03afe1da4aa0d5367a4b9a3981a7a669471469e0b656b74668942c3c11270d807d17a009e4588fba4825549e04575c881fe1a2251ec95a658365d2b61d9c3ed15754803e968b99de4810c30bdc49168b61c34297ed499d161c1dc979269b02453a588572159e5f48121436dfa45558f85d1dac924958d5deb21c0bcd6d5c4e0ad917100a291662d800ec0108b94937dc8574a8deb890aa3f04ef974408b73d5122460fc2bd79a3919e6c5b5ad7be452c08e448e34a0fae9091a93bad6671cb9106ca4a650b643e8af7e5e4e42d8db81a3c2cbf7e4be3d45db2c3704715ca1a9135ad0c1d9b1f975f141bfeb34d42a42a3b1a54e7c733df681c55020c63f89bb4602f5749152a9d586826e3ef8885e9f66860c173ae7f85cd85423d78117b93ca2ad203468a4634ac78f5111c6197e3e9b19cf608cb7c0bb70d7132094d54aebd7dac3c0f58bea9291d95419cfba252414ce728d0d68fe38a9495bc4db08d06fedf979e5ecea907923280bb6bff3ee148f9058d93700348022e25a84317d793010a6299040a27a51145bbb425cdeaed7d305a2144a204a26a22c1e5c831c6a39170ec125aede14e687dfe35444966e4bd238ce33bcab8d405082293f5d11c1418432782a5e11eeda3e0420cb17bc98592ef3686c2bc4951dada1596012f09c53ffb739795168367d152401a66c00e47773d082a39878326846f87a603a2a9978b826f45a3fa87cf0831a522ed6c20d95bff9469833b016476733b2e4a5c80d679da83e2ddc6d774fe43e426260f20f535335f0b41ceaecb074161ae84bbd8dfea2d5db860cfe416fd91c44038bf727ac699f147223f9bf5ade85aca11c7cca4efde73d344c2cc8efc69cbf231b511319c77048d0badbf35306ae62bb0a249150a782374824ce9282d3d8516992202f58d92cfb61d28151252967939b464c44c346f11402d65034fba8558fc8edbf59fc8fa3fc6d4d15f95290beaf9f474b95a6a11320fcb39f6c7a8b400dd03ddfa95625c38d4ff18d3da3f6658d4aa8a13fc96d705fc2ba5a0b4b7d8ee148920ddcd1f4d58ddb6d6693baefde22cdbe135ce102f9fdd9860edd61580d11403516154e8d664f0e3d5b900d8bf6969bd8efe574490abdc9b9183dacc2b73b2d8a800e8cf5ce9bc55b5604624e559307c1708bc8828c0ced423dc453651667f308baa3a8b17d7fa4d1a779976dcc7ff1e23c8086c13f4ac8b150988950056ae02ea56e71fcdd602e58bdad571d7ba8f9989e6aea70880782c4fc3277b251c18248e7b67b61d70b1c7c9675bf5b6f1e7aa7c26dc0f30d0fa6163a491dc238ff5e9d1d5d0e3363b51e95b84b52a7ab84ac72674da79a9aa22956704324f464dd4d221f86c5b936353083f8410e0faadb899dc0a156029f1858abf146841d9216ba33d9a854c47e20949017fd5ab93b727318ac8739e2c0530cea1ed45e84d5d7692606b56c445a42a651d8b63f4fb2755454fe6bef54719d5b806e9428dfd880b8089b21340d1b758b86f95cf223ffc2b895e2c0abb0b424eb5bc1d5e1c3e43d472588539856d866cd71eb2aac2662c5dab9956f5fc7b0be00ad2a78392811843693e20d34370f2703bbf6d1eb1e0ebc29de48e6fb4e2218cf69a009cdfa0f9471d8bf5343b66b4fa425dee69e2cd463211c978a1d1493769744d337cd9d866aa554d431aa81577960e360723e34c2407387316863334fc49047ef338ffb0161c509ddfc24e462b1867edd59e1f180271b41904ed920414e43c92ad09b8f50f4b32fa4a2bb059cba9b26549bf09b6e92744989f03cdcf41f35f3579e9b5a92670ec00e2290a5f67cb493fdee8726a29b61b347d09981d142000f701507a6a26ad78f297467f4e37e830d0561d0de2bcb0902f5b5a844f09ceb4be976121a05c59aa633a73119fbf14c9acf82c206af9803b0ad9d4f228edfa41500cd797b68afa2fd9fe30b1346c60d4573f8bac1211d9683f0d688c7a9e5ca7182d057f34c05bd3bd3ff3ef20aff513edd40385caec95275531bed7b0faa221c45c5a8b266a0363e021b107d136ccf5001b80667ca9512a4e403387530ff92727108a183bde8fe2d94040594c50515e81f8243b41ea8e3ea253a3de7b3321e25c1a34f9be694265c473f32c0dd6bb4be6f11b1fea809893f3fd5087928641ab3a11b5915de6122dd5fd8ab141f8a392802c2f2ac467df9eb7e3497e3e7cf9037da840a7c07ba7afe9fe2d837963325c2b2a04cac918548f6865b2dc3c51731934dd2974cd76751d27a92a039d4ae7e2762cd6d5d96942c2f07af464eb747581e24247e6a45db1a1bf1617cca544f00243300904ae8c1d053b1f1e0f1fee6a26a853a94cb2d716c1a35857d5dafcae81696f68d67677e1dba8c35f742ac3ef3a8a4ac0ea55014d7b25d7aa006f7b256069df23715f7c911be4443ba390883eca97b36ff742e2bd685df7bd895a4b0fb3243c4ed790bba495cc137be3fda1f8dae96250dc386d8d2ceb00a11b67f02952c03d46e4ccbd49b8603f1235fb6ab899fe98cc05bcc1bb31a6cf598e88648a7e9cb75862a074fbd4e550650ef891d22480d68b972cb9d5e1dd403d89ca2016c010db6a22db9426e93d2092d0103f28568daf6fa82c70af34c3c25513f8938e163e8cec1f35d6a5bc9b8c60f870687279933720318afa68d704ed0ccc6771d238c9eb86ce99fba1c796acfbe7e4f7abea09c528c8d450dabe260c800cb911e4616a624306bb28af4cd9efb5a16809c7b00b9cd9f3c1bf1a2cf012edf9dbf3c022c3bc9c61a508f8a0d30bfa97a9b6efc21a98b4ef5e09dd99a8d44d5ab722a29f20bd0abbb00ddcb6c5c2853c638e757a4e20f4850f8e3535f9a91e55e63efa10b6210fb4a6c30bb0a67fc5b3e12adbc7361b593551bb356df0333ec3a2ad11f10bd2f40a39ef4fd666b00e503abbdf90919ae7f85bb9aaec3486006aa6e5389948f4e28b0af38bccc5f247ca725a3c6aac06379acb59f341893000fbbc4cf264bfcb5152d50debb33c4e4685d5dae81fb0fae292f77cd039fc29ed2e2dedbeb410800f861735e5a34e79760bb243fba9426e460f0c72f53c78a1a1a2be7363a67c55a9d3b4f4d53ebf479b424b9a8b903e1bd100a5890329ea3e97081d59783775ec2f04bfa7953762da3aefbdba7c7875014dde4531a809a790f7c9554071cdaefbed2ab80dc3743755c4998b93bbeda5345ff5ef6f72c478c8b1889f60fe0b070c07edc7046eee88412b735b323d7512c6e5243a4412b1073427c7e214c033396062c7958f87fe6cdd22ef765b95d6df7817609259df341d6fb3ed4f72a1089ca82f23d2ede90513f970ed2484640e87a2063aed2fb0e907262871b62f69871d57d4b51e9becf2f4974efaeab92aa38f1e0625b48e3f942a07b164fa50bdd54fc252f45306c2f337b4bbd1650b9e5fa45d50c7db07d0cc3c016edcfef60531bc7113d5a1e0fa514c4f0465dc325dd0594df9b99b3e01b82fc25450b2c3780177b151d9f5a2b9484ca0416f7372100fe23e606e49766afa97925e7af303ba87ef9c50c9220e5e248a7bfe4c6c68b6b008fdb50d421ffe285b4d68596e54218a26348ba110356dd9c9f0716ed2fd4d8850c2092db0c5de78e9dd980411b96bca00ca86637776338159f98cf4543e86da32e9b647cfacbce9a8d4f1eba9415e5aaf8d8132ba4bc7bd2a0e709a248051b29633d596d904ada94381867633ea60c4fe71e3dc74c0350c2233ebba35b03a58422a4ec0e169292748e709087c8440a3df0c345aa76a8318b48c7e1a0f8f915b236048ce99f71a486951ecb9dcd151920c3bb98e3175bc5c1e667efa3e077d381ed16adbf3adc41c57cf49839da6d937b6fd8d842bb3f32a42da0b771d2acf51f28a1acc2e06c4bb3e5fabb1b35c28bbc54df7f420fe8c3aa156cddda291243bfbe652ebba662c03126f8391226a96facc2134fe9783d18869ba4511eaf05fd414ecdcc9f1f51eea10b4d610c78f9adcdf32b4ce34ec034a464d9bb6d88085efb18c3ac5a72d8e11e81064986a5c484a8e3887d4645567617594dfaddc7efa4b571396d50875c7460f755d20d951837a3ea1d8729e751fe4ab23fc7b225a422dee240ebd5e7990701b3bea4f80f9f4c535ede802e3eda20e618e25c3ba0abf1eb6dcbfe40eb910f42d7c5af7d25291c5ddd46083f29ca45b9dd82a93483c991ee710567bab252459d583b2873a5d7e6ba3ab88191d12f2d4a006add8044e56270c89fb647e8085820b3ff933d0dfca6ec9141f6843968edf6a2814d0b0030928aee97659d433e04b6b32140c67b6644b116fb32860847c68bccb16ff1406a42059994f9de6e2493ce060eec0280c9be442d9fa4d04a58a14ed224314e32e43560dc36ab5fe1044efff30e1f0aca6d93d6d81491948995f42bb5b08fa0411998bd249598bc8cd7b197e1220208aa612c6feb59e6431af2c975f0cd965c3fa128fcbd19621a498ed947eea5d0786fb2219d850ae8e5112e307f77654889fd0d31f9afa3e64c7b5638d9e040a90097abc0cf4be5480267767044be41bc43a05b9c8de291e7ccd854956972c41a6d0cc321850cbe693fc3381ebdffa4b74f49f8ae4dcbaf231af591abfe4b66b90b9bbbe970e1a1cf4d26573438574735f15c35f513c16da49e0351e9aa1d01868b0348028f8f529febff7432f1c248857f2d1d4402bd313ee22f99de755d7408e5bd95e585377f756e9eba5e0f379f6ee2b26b30bbdfff04b1d15ec2c5240e19fc19fd165531c1d31e462d19a2357a1bff39a058408be2d546e0c5e143131bcac8450e16a3abb9bf062e530cbee88781829bdfb2931f1a8c2f95cd5a3ab0ca84194ea187623eb8e7e4d2f75c6b3bfcb425dfa77180c066f51888b405d326b5365514ff777b656a73126010a8f615698ac711f61de1f1d3eacec6c116e13f6af87f769ced6c9e9f05a798381398d432625a77365e5010ce2182d393c44ce44d4664df39710d01b1a93a3660ff4d8a618ddb139da74a78038030bf5263ad25eac788eeba08ac99eb24d7aa80fcde0346754a4836d6b0a16c8c0cdc6a4aef3f6b9b514fbdbe3b610935ee692858f7a23279d129f880034a58787531481fa53f6b07356f53f6565d4d95c09984e8e8e20af471db5dd00de16d98f3279b8b773224ebc5e07e6ed1cf36adf98d30bb3b7ed16f69edda31b3dd7068f6ca64e303a41360183d33dadea133b1442d109ee95d607b59320702994f460336c681e2c987428f43368a05c05e19d26af01a4e2905c9cea9f84088452fcc5589b32132fab2bc480c5d8d3ac8c1a2a0132d5de36b1cdecc271b06120206e1e861d20f1f82a2e416cda7584af53a219d42a596c9411be96f6accac3c23ce7583ee0b6b4016a99070b55ebb736f4270b14c525ca44ae0548d24dedad997e7b1b49f654d7729b3be23801e7e99c4ad5da20cd4b77d61e1e46779101c8b6588d93b1da4bb28e7460fb59d52022f0f97b2bc73bb3028c201253935264b40df8eae31c65208667edb3a7798e6ba786061786f00052a3a315e600b4129875302d3b6288b47bd91c5eb3b82999e3d8c38117d66acd0e8c649defd937e239970bdb3a942fcb4e9fad66da9e6bd8b28b536454bc1132368b18f19e7a87d4fe462f3cda94dddda2b587e3093175bf2458eba86624fd9c4573abb15fa32fa6404287d3c7082dc741ca05013af824621c31b114f8e46d880178bffc2982068d88f33baa98e63d80cf61ac63c6ec6c872dfeb3d436fbfc48c589d99018d7144ad6b659f249a9009604377cbcce79d5374ab7efe433628f80afb6cb15a1363c9ab2bca9d47a948d6e1b9fd321e8a4ae74ee42e8c31608be0391ae6114ee86479b3382f61d49032c333a73cc8ee48d8cc1403646aa241026bd31e67074d1dfc8bc9617e88e8ff150218ff9e35f319ee1f1a035f99a57c34837dcd26325855fc5e976e44ac22a257ac50eb70425a37a597970cdfdd021932589d255c85f438d24798893435b2b46f17036d82599fa736a8e0e95797c98ce30bd65d3dab40a1895991c846e505173b34fc43e0d33a23fb706ab5defb39e224397e49c24eab7f3c3479eb2b389d98032a66a462c9d3aef4b587053191207802b3541a64299f1a26db35da63071667ff07fc39dcf68bfbd88ae60ad0f8ab7784472b197220106df5dd1e02db4fa50e48620aa19c8f7b055ccb9d71d1e43ccaa793e0f000b617afc6299ae1c72f7284bc8b92aab487a7871e79f644aebd297afc3bbb6387442af6b3488fc1946cb6037040046ca8e84ba76d2c270234d1c9218d5ccbbba9b12b1d8b44a6287eed788bbecdbef6dbf8e261cd7368bbbb207b394e2609706f7856d050e73d0f7a52d5bc4e85f40a86f9a5704dd1323735566e76c304bc16d664e57f70ffc20036de645135e45f69517d990d522c667108164385ceb6a99b6e9b37d793e60431deb78dfc084a5ce030a9feb82259372f976df19f36652054f1f5c697d3d4528b0299ee75d07bfef97e992c943672d59629fdaa687dc89d1fd5dc585ea878e7d2738d08d36e3243920e8a7c99278d386b954817e763b5dd05c5fce1a380499493688b1214796f1f6cfcf8c0b1a1fee5f99be632f36002ecbef80946aa4b5efc77a25e5361d62008df405b3f3f8010a333de9485c487e66c6f44a4466d66bf636128bfa8773741b195873b4b42fc037c95fcb4112a54a2f3b80dbecd989dadae80ee56fb345c2645e2c235083b93f34603b17a4ae0a1622820cee4682fed89261cecfcb3beabe5d146dfcea9afdbf571e51fb3bc77b51ad2a25b7c5da1ede4261f405117366a55d9036b303687a995b6644dd15bd3e6005196703eaf3d6858aecbcf98576a349cfc3f6069cd2db25c731a9214b9ed3429682a119aecdade611954595a71752f7c40ea211d4f4d980edfb7ab6a0e2d5c17dbd01b2f5cc02b9b74dffa1e2f2b46c3863f5444bc97b35f00a5f960103748d55777128be85188c512f095f5440f2bf9e8b650cfe78719b57e72159d0185ddc8faac5aa689713a1aab7165f35e613d321b8e5d7ffd5bd52293118060e875e5597bf725a52b40fee6a7076a676ecc9f893cda60817a5563b08dbf2c2731df806f8cd072c47d4c73228b51dc0eb9cf95f067007bfa601352754aa2cca628161b6bef01436a850120276abe3edadf211569e86f95c6ba17895ade1c8b87916f94060722928504650c3a65f5d3fe65b466f8662499e2b5ddd6b51d9b7806529f7087728681bdaa9503c45ebd69ae852da0b93288d28a9c793ac72c8002da4225a120613560eb35c636cb8e27c6b1df7db26dba1fc02f65b3b99c53d554c62b944e95e2ed2def70007fb53f3a60c106c313a56625959868c7e6a1cf8eadf1b0fb6e5bb45eda7157c577df9bce2413314f022af1abc6a52b3def6381c6f0c709d6457110b84087850192db0f449a9a4e01d67d53a077ce71a7cf043c3f2cb77788822f1a993a8895fab243cdbb9c07fea0a837f04019e0ae1142090d227a77fa1108615c17a5ed7ae58c3daef10392cad4ee388f3e458479f7fb2ab7bdd775e6cd5cc413919b512faf7781bd1fdf8ce8f074f26d67c06d1b08d109b2967c920050c425e5087e9ddc2478cbb050454d1a6c93c2e160b22ee511b3376d5da7249ce517f5e413bf96ad8dd028be22b737443f4acd654e5f20d4ac2a735dca941341c4c6d33b5646dabf153934b6f74dd603bf0e03f438dbd6ca6f85f029aa60b00ee66bf64ed5bcf471ae4ffc07b5ec83b00227230bd68bcfae8d9f76f4279d559f929cb2a72ec25715528cf2c02b3e91d770d0cdcfe55b53246cf549a3078bca536882a5fda69331924b75fa1d318b71ffd797f0af77b6dbe52ae23ba855267ccf2eb38632f0b2e17c62a6fc30dcd201f694f716e1cb55b2a6167ca2be6e798e18e8cb7bc94b60be8189fdff3cfe6e9035f0a41af8e9fcea25670f9a8fc6fb064ae3ae08bbeb7a6742263e058dc31ef77149ef2a5bd2885b3164ce3ff4dee94b81068b33aacc07c9281181152aea92a9bdb0a77a33379b7070dd014c64f72e80766ea1a1999bfec53a105d91a4cc3f4ee2c7855080629ed9d4447645a945f546bcae9a5df51dec621d96aaefa1e77f44032ecd19fd983ff7068755f4a49c5b675104f979ff78a7142d971d70822ce99706d27123ed2fcdc3d9562f571b7885cee3779ed4ae4cbf11f9923835d037f063473a2b540df22750832bfc56f4240fd414557af22a963c0186af2e6e610298a52aff8b9c2d3207c802fd0420d2c1c800962db849ca6ad0aeb6a860ada48277c8651c5098f20af0827c2cb04e1f3be637220e068471890ad032ca4c4b179c0fe07587817a10abb25e4cee9642bf866ff6437a7903a8b98329a61bce954ac24898b6361af07ffb20de9053d209527bbe8f25119cd71e00c9cd168c5c2fecc01bdf8d8c2d70dac8529650c5c7d5c3ef13a6320ce99a2c2bbf38830af8b0587ee07461749ad6bfdd89a7be829869a04a4f4873f5568f12a5414c58ef04b39d842f42e7403d3e53be0679e1345c10e8851080cedd919a90e7093fc6770031a2683e68c0fd6e8ae38a4d4107c8f10127968d5f25731c2b37f0805efc410f499dbf54cb679bedf6f90ab0422c2110f16d0dd93485bc154b468cc549d631d39ae3f300cac3fe5763eed0502d861746cab550057037be4c3c9f815ddd48fd177f7923fd1ee5da6714e689a3934e7b4e633b2df981a449b4e801ac1dfbba048aa78335aa42d5ca5d48d388b5d15dcba8c03ec28a2dc2d974c9944554f9113ab1ed9de020052d914a1770b11b7560952c1a74f274ab37abcf0fc7b36925ea05a3a327834e52cccb5e3599005f761cb67c1f2025d13ee19b8d3007d6af8d26f868d3737df429206c6561c25977a6b012e5121e6fe80956a2d88b618721d345a107f8b0e52e702e44aeb59ab5b106b18ba577a0792e3efa4c3ee4d272b00360724ed1ed75821510878af540da702ad1b1ff6a148f959944a6644b406274911063d5ab903719134972cd86e32313fb8646c1ec681d0ab0dd7a2c8c692b4468fd033c9c5ba332eee655f5937f7b2afac8b7bb5efac8b7bd957d6cdbdec2bebe25eed3bebe25ef69575732ffbcabab857fbcebab897dada77522e808a11b1a3c76bc16c035dbac0a5cffa4124075872171eab2fb781f0a3f38cfa28f6ed3d6ebd41f79a9297ba69f217181f5f6fd03a26bed00d4b80c6dd5330cf52eda6f7b5b30c2752819da09b6d1a30b9ed7b10a948fb1146bad69a02a89c89d8beb8be36bff50e83ef9eeb318506d651aab020abda85c85c2ad8daa886f5bf2f29ae3b9721594d1f0008cf1313f73ecf88e9c26f21ab96b07e4805e2f0a51a66ced5dbeda1e940b2d28162deda93f975e556b07b4b8c17931b80ea99c14f0028478f60221d48e1bdd6e93fb31c2f5b0dc24d6099298b968119139a08d2ec4ee17241a734d199ea96d007df63fb4ca563a47b439267003fd0fa194cbfa9748c746f48f20ce0075a3f8e19aa0ff0c3a94d77c0875b9e99d9f72a8d9dfcbdf5dd258a6348d26e1edf82416546c2436a87fa7cbb84715ecc62a0909b420e094576f646b0f6055e8b5577c659cbad535cf3a8fb3e8f181a4342616b22a46d6272ee92e037a741807b84e1d0aaf69c0d6597912e47a13386f18dd8acbbb471d2c27521ff6f7d9f1e5bc0efcf1b052c09501020f9bfb7117204d116a4464bfbab48a7ebeb0d42f0837487352bd11af3c131327f153f2a2ae4195dff29a6819a9e540bd3fc947ceb34e0157a0a0fe854d23bc23e375620e64e7f5f32f529181111495cfbf79510d4102cd80ed36a1853a6fe7d0fdba2c1cd9c17972a5eaf3c6a54e0e8f9a23422d9142d2dd11efd40eb1ce97e8cea63313b10b39a6047290f94d220f87548d404808d20df4927c255c44c068a514593b4ba99e4a46360bc5ff094d2538dff7a18a2cc4c71d11eaf133bc8f865e5fc771b6b97df45c9f1c38f8ddc3e8dbf4ab7bc9c36ad0c1c7cae3640acddf5574a1aef64637d5673784952fea1cb6c64f8915fe1f96cfca54fc865f8fb6548a3ff43efaba5f1e78b4b49f74bd7c888ff08f45a1cf3fc2969d84bec5b6035874c2e55c7b4c44085e7af1a9f30bd50207d4d330dafc562c61dbbd5c3dc9ee445ff6a272755513ff2ad3bcdc6df4a7ff67a7cdcb135475862f179b7132457e8df5f1bfdd0cd271d1f54ef036ace87ce5a204e4a5207f7bbd6756cb79b9a6655df69f60d33f7769ded72bdebc92ef7d1362a9cec541d6f6fc659a3f2e63b3e55b128700e5252ffdaca19abf6a2020eb7cd2a485c050fc089759fd407de00ff11c492bd4bc8de5b4a29a50c7e0c170dca0d45b0c0e0866e6bf4169dea0b2fe544452584b5a51767e525899f2d53b4d4583984358057a02e162737143496283d5758c02f84597cb85a9cc83be02c43c22b6a402c67ae4411660192b5ac099500b13c7db719c827c42c39f246048f9627f88a4d95854762e9a5ae1cf9b0c8c03229194427524b2f7503a2e5858c05069e2c34905cc22b3df0609902d4f22695258bf18a1930cb0f3f5a9c5c36211622292454575e48dd86805aa690596e371db4961c6e9614422d45c82b56f060096f4e3d940786bc8cb3ad52b0d9cacab0ae5679b58665307449a4bf98ad40d9c559180c9ead7d3c4d8a63edc381b02bc330de9de15aa8036bdf0cd4d92a88fb74b017b2cf766176866da02d05a3767575766d295985e119c57db5aacbb0fb8231a3ab1207163a4f715ff9ac55606a6fb5d6da7bad4029d5da0ac3a8b7d60a215a0c449b79d076bcf62a6112933cae1236e9cdf7f608da5dc1d66bbdd70c6ff8e4ada53607a9548516595966735cc7d85a8cf14b8723124c7754c7669659578d23d2a25d653f64fd737a0e597368022c2a6c4fe7f50964c73e8112a0306587f33a365fc043045854d8c69cd71c3ab339644d0764bfd49ae04a2aade81aab30ebaaee6ad24e456fd75777dd1785134589144d96184105efac326b6b192b4788581142a44a1c2355d8ac50c5cc09559e8c540913c48598d4532a556e5cb23071c182e585991db414647592ec684196c8228bb952c20f39e79c6db0b2438f9523a6e05045c7aaf246ca0d55625855a1357d5912a506a73749aaf094807a22085692dd963a6f8630a2a496a1d2048ba1b20394ec061463ab82c9059a2ab2941c91168955556b52ed2a03c1b58e806bdd156edaa394e292747c586f380ccb17457393605399bbce48d0a5cc5d61b0d0fc31333958008cc7ce6b23d2a27dabbd959ef91d86b550b674c35557731577a686bf4e7a7065361b68793c1eafce48d0611c0e0783dd1ac6b6866d8dea7eccfefa836e65b7d5a236d0dc1cfc757fdc6a697db3793bf0376baa1c444a29b55ead633bab301db5517a6fadd55a6bcdfa2921ce60b6edfe94ca14de5f1eb6078f2a6650a37bebb72cbf9695ec61dd923c7824e0ebb2421bdd5bf7346595d55a6badb71097d3b9ed2bbbacd086566b9ae51aabb2ba546178c7eb81706f618e038be9bdae241d3e3bb18b9ba64fc3d0bab5fec2292f5fbef9e68bfd52ec1463108738c421e8d7451004c14aab31100441ba0b9d7a2ae5d7c172d35b5986a17fa1b9fd5537bc2a33a4d8afccda964d37c96acfab335e5de255190f8743c07dd99aebbeacacb6743a876b519b9525bde585e1873bd73f205ce0e2c467f3d62e93cdf1f9270128a044a194b53bb9cb0a6dcefcbe329c5333a839f3db8646b654e1fdb6b88c49a55c85114ab0f96d6b58097f2eebef50a48a13bfad0cbb39625df4edcef761a1fc815e8590346bfc930014f7fbeadb7872a03dbed3b3b3e33b3e020f3edee323f0b84f8f4982cd428a8cc784f1388f6961d7a87aef1a556dbf2a445ab43fdb5717a28e85f6d466e589ea9edaae68792ca33bea8e22d507d8d32e5da3217a63d9d7745fd409071c0c06830139abf65c6bbaaf1d3170a1d96cf7f5e3ac9e6f19775fab2c487091c1ceea397741b84639acbbaf2331583451839dd5f1eebe7e4ca953a74e9d9abf9babdadc59f7d541b82fccbb46d557a459477357d857d1ccb3afb2af99f6d54173d7a5afb8869b74d5f3ae4231e166e9ac8e9778f755635f139e651eb61961918517cb3273e7a56bee0cfbead4dcb8f7d974cd504344ac57fcd7850afa9a210c1e44b0dfe47a751f5b006c0e59a7273687ace3b72635aa9eaaa99e664152fbed7f6dcd899f8bac1ed4b3e963cca68fafac759e92d9bfd27e2e9558f629f9413daff3d09a7e4321d43a9fc5affcca8f5abbcaf645967d1124e9107a875fcdb1a7d6b137b1648f1753a3257b7c3d464c663145bfd45d913d3e5384fa3de8e790ec11666f724d6c52b3c95004f0791d9fd6b4245c8bad68a2720e6c78eaec768aeeb1e31f4e7a2afc54ca24cbb1a4542c4310b45f693fdb81636b8a901fd7a953a749cc4f9589add13d29997aa2fd6996179e70b22e7ac58aa29ab27749b42eda320ba12fa9647b588aa3b81ef7ce6697ec819530d9232b65b2c7f7c9641fd903cc42e88d6b5f7de39a924e776557666dd6c6e3d5599d65217405c90ec290d695e581cdead7fca410ad8b2c1ed5f2207b50ebc2b4da8b47d7ce4f7960ebaa4949b8d6eb62aed5457e702ff68bcddb43f5f7031dd7a8ba8efc813eaf83b42e8263253fb0e4075adb7bb3eab12b9da087eab3d943f5d80c79540798204448788d2848f2a8f453248fb087a5d5ae305691d845d64e3d80f6a8f545d60723d983a424499264b5e10a3baea2bd387f60a85a657f4af2f84c6aaa2a0a724d3121d61d0d9e3a0d2d0678ddb8348a14c6a9f66ac9e0ca15a61e2317dfd0384c2d98ee08c053c7f4e5d7a8cc923f0338064f3dc6df2ba5990f4c324a02a3c500af1b9fcbb5e3040ccddcc8e5fe874c98da01c053a791ddcb5d4a85f483452592b141a344421c5f6f8f9e7a8c231cb4a12c7407a53b6a3cad26b9baa18d9e7a0c1c3db3158ba62e8dfaf581be5c77883bc5fd1a1131c1d298a8655d6474f5dddae17923c38d9bd4df1a451a91f0f45418688c8aa467a9c7a756b1c54fc97afa015ae33aa0160cad8172ad20302f68b06e081272a172233444442b57182232800f59690dfd76f79f21442ec808e14a195cbc1013848b81f3a1bda064de528f21a68b15da11f8e521180caf03d4a3d17bf2e625981fa7184eaf1aa234c1b4b8dd4428cc186b7c7434741ffc9c97768d5af46214f5685d6f08355124030b1e1e0ddeaa888c91d21d74eb48c2e05d463b940c182dee2e575212a966068d2efa767b1ee35f278a4454a3e10a4ab1b484acdfee7e84c565b432aa41e26a1c6931f3f9a66440df14cc87bea9169b019a5eb716ba832ed79794f4dbca74e878d5edc80614e22ec6ee9f10e16003e9f536a52289401a29dd4179ef146988aebe1d0037461bf2047123695cf3dba9057fbb4e688aa491d21d54cb5bdf2e2f63d02ed44a6b038de38f6814c9e760108031a44ec9261cd8b2490070782b0867b36500fdfa700a1c198cad9db24e83be2eed1a590f6f64df2f535b5a8b065d7ddf0c464a77d00c02800383a41b38008003c9c6510d1c462e1c38cc12070e1c388670b8c041248403070e1c3870e0488538401c383e0b5be120e9ffb8f6b7e4bf98fabe18832d10044dea1cdcb0dca07f7b7c9c4b1b9a2318ff9a5b84074d1fe3d717bf72d3a7cf2e7e6315213f568da19c1e14702ef7fdfbfd758c31adf9bff20cded9418f3f4a946c78d2bc089687f4c03e35cd520c6bd4a216f3d9595fb96998cf63b8f575ec2a5209dfb2c5f8336e9ced45b040e30e901d20aad6f8058d230c58683c6a82edd0c84a826814a22274310229f16264e110c2185551843e962d94e34f0c9b6349431863f4e101178d4340b08c91ec1205d3184537a16b6c21c76814d2d5a8f17b8852a48dc153af5f1edd6be3d2354f69149a179166fc1ee2615d3c75fbf5f79003e83592f1f53100289a1b4723b9b33112fd8091c6232d001879c4f0880993461597502969fcca1b1f25cad7531f96dfcd9fcb6d1f9b01184923708c3803af6bbeaa81d5344f1dcd8b1a546a57988a1a60ec8e4557c7a206a412f5bf43f9ef57db536c6a300a51a16bcd313a1dfc1a7780581d63588500c6d64cd7eff1058a51bc2301289cac0be31dd8dc20583ee85704a0e36a036715a6a3b6300c43737f65f939f60741d0dc9f19d2f082428822b54f36cd53bf3afb947bca387f20fdc03045c3944aa42a7124291d49caca492393d58ae9a9b36a4f4b6d694f993cb533eba2de8bb2265858542f8a77bbf284bb72bb62ab4c66154946f25566a39efae53d4db37bea390d0819d86bfb0c92aab5f7629c6bbd15e70fe7ef03c1304cd59a52557154d591acabd55859e46aacbaeeec8c958767a4d4a705fdf91929502d37eea9a50fd9a3beb6ae5ab6207bd4afd5ebdb1fb602a027d634b52eec737d70fe3018ba4a1c4925278bdcb52a5262913dea8b2e4de9ceb57567e75b0d75f0fd7ec15bb7bf49786bae424d2a893b75676787e6fcd6eb6ffbd65a4ac7382fe4686b8ea258516053d9a450d95880fb6a515f0d5b17c65aac3070ba9a1be71ff41e83525a6987ec017e980740cb4d14de9f9f9f9f1f5bc31e3c523c8e570c754ae513848342125ac0e8a2ad49e461120e938868d10b8ed828281b25c2f022fe8c40646b15c412d24324c96345f26805d520da6af9ec0cd9a1a14a73102d857a68b9b50b17d7850beba286d625244491868a5a37242272e1c286d20b170cf7b2a44919d8a0e0977151d1b535d5d2a1e396b6047ad182113496b6c280e15e96a6a954a4c391d200bf70b57f3cae37847ca824127d5cc4781131fceee1712344942c37202932e4dc3d36c9ef9eddd313b5a527ca16296f774f13aee709ae8749d7b3a4eb99f5d0de3a8feebe44b0040c91129e94c0058573e937cf4e083559b451c2cb09369c9b87f730fce6e9c99e480195440a5d1025e7ee79e1774fecadef1e590f1230094f193009d4dbcd9303673c4ee08ce7a9c6d354e3b1d56e6f9d07765f0a983d61a3218a0d280071baf09b27b6801a6ef012c596384f2c9c9b47f6487ef32c5d4127072485a8a873f3b4f09b87f6d6374f8d87890d1c3673deee9d1ecf0d2f0a84ede440980e84eddefaceecbe6815bd3762768829d1f2e464e1f70eed6d163e8091396913a6cdb9776a7685df3b4d4fb6182102862371e09c7b47f67be7f676efec3c7d5176927c51769404fdde59fa6c3b476c4870ba87db81e1626f5ddbee8bdeaa585182105e62d861cea9c26f7dcb45410342899a0c4d4bcead7129fcd6ba2854a0c989a2cb9228e7d628fcd6bbb7be354f472dd151964879ab9fe8dadbad3f9afe684cde3a4b775f3f6c40a3c3982968365491e13cf29bb5c31c2335784981290c9073b378467eb37a6f9b742803031d2ab636e7d6b03fe1b78ebdf5ad656fcfad917c4058653e202ca8d037cb89857bbb59b92fc66afa622cdb66ddde3a0b765f348ae830b30245051a175be437eb87132254a0b0840e923a509c9b6563bf595fae0481eaa14dae8821cecd9a3d91df2cda5bdfacdaf79bc514064e98396ff7aa975bb9c945ed56b99d6eb77bebabd97d512a3d2c99a19744cd4a123be4f78aca1036580c81824417c3b9573521bf574d396860e42801c30c6d4e38f7caf626fc5edddefa5ee1564f19ca2a4986b252b23ab242f276af969a7a4d2bd82af6d649db7d31608733b12880ccb9a18a0df29b54c24c11298c603972c512e726715fc26f32270117bab019028dd311379c9bd43d90dfe4eead6f92d7f39b8cca40c828198894b79b6cca31f2498c292f914b79899c6d92f6d647dd7dfd08c2095492208288a1a18513f67b1c22862070bcc8d00b33c3b9c73abfc71e8e224e58fa8108131049ce4dc2e8fc26636f7d9332fd9b4472662c7366841a9dc6a7b77bccedc6a6dd68dbdddefa08bbaf1f505e0033260a14386298c8e2f718fbb10465e50d12428c48a18a738fb239bfc7a51f3ed4e912b574820f6cd69c7b9c8db4b7bec7dac884a988703015718ee8468c7abbc5de4dccdd74b7dd5b1767f7b54193167628f4ac6841ce6ff1c65b4345902a9a9e9839b718e7b748d94811050c153244454939b708e7b7787beb5bc4894f780531095e41c9db2d2ee125f1c812124c53f5304d846d31f6d655b6fbfac194a50b1c2c4bac61c2d4fbadbabdd1dd40278816d2d060e4dc2a2c7eab726fbdc87aa0a104197030726ed515bf555ba5ba7054178e4af584e9adaa09c3544ab08ac92ed553c5defa56c95e3ce75621d9922ab305eaed4ee5dee2704fba54932e65d3ddde7a0a765f548c094ab2d4dca8018289d38adfa9d806275c4961a6a484364bce9d8afa9d5a4a8aa206384aaac88902e6dca92a7ea7686f7da76a292627709ccc79eb26e4bddd61af16e66abadaeead87b3fb1aa213c3921e9014f1018a8adf2195f3460a29e8b4b14264cdb9c3297e874d4d4a68b0a20d136f9e903977c8fb1ddedefa0e71e1d32d1226b9454225e19110c9db1d2ebd75b00793c5de3a68bb2f12d42821028e91314d3d9c6fac0c2c3cb1021d156610726e1027c56f70d664820c4cd0c09ca8393718c56f70f7d637c803a3d88051d88052c0274c53fc069bde3ae581331e6dd703636f7d83bf412461be32613ea8cfe9c9fcfde56cce1a55df9f94b75e7d7f57624b1fedadefaff6f6dc1f13143850e684e7ce6ea2dee65e53ce35e99a764ba0c87189d591218b9b73e7dabbf99d9bf2edadef8ccb4f76859cc4aea0e4edce47de66d9db9d97ec52cf2e65985d8afd8f2454b0f084993449b410e484e237bee15c096ca6d8414a0d52ccac3937d6b5f98d776f7d639eea378e3a83a39cc152cadfb869879fec30530f2ff5f00cd3d2d06921480c53c42173eecb63f3fbf63696f1fcc648a0dc3250a0de365da7a6a7b7b76b54ebedda6eb0fba26e8880e189203c175e40e1dcfdbe31299a48c2b694258a99d3b9ef9adff7e6440c4240c1030c416071ee3b7b35bf2f2d87ff7d99de26815393cc79ebdbba79ebf41ae9ececbe288e4e193a4c2811478a91f3092634402161838aca92c2b96d2dcd6fdbf496ca95284b256c8982cbb9adedd1fcb637dcd35bdf36f7f6b7850a814d42d92879bb54027b846791c4ea35aa0290924300d4557dd7285850b16288196020f3429ad389dff596abbb1752bf6bd4dbdaf4f6c9dbcaf4b4af330bd01c297a7fa7befeaeb233bf6bac0351921893822e8adc9cb3a703e1be7ee030c5943950b327604da77d7aeb0ab02f6df5adfaad009324c05401f224864a3523420d6d969cac507b623b6b133f01269ea0a110031c24be5426de7ad2f7d6432c7a4cd07b07f7d57b4a30abe8bd7345ef9dd28ade3b3cbd750f7aeb9d99de7a8cdeacdc57ff79d29bb5fbeaa51abd59b4af5e3ea137abe9abff58d17bd5fbea3f55f466c5be7a89d37b0546ef55eeab0f61d17b45fbea4353f45ec5befa0f1abdc9dd57ef99416ff2f6d58994d09ba47df51f357a93b1af4e3446ef71f7d5ca0b4e0f82eea0bb5a4436077dfd3853ce432aa54825705c41eff1f6d54b387a8fb4afde0383dea317bd45347a8bb7afcec2e92dd2bebad01bbd55baaf2e1485de2ade57077ad25b55fbea4038bd5536e8ad827d75d64c6f95ecababdae89dc27d75d54eef94eeab9732bd53b3af5eaaa077aaf6d553b1940b319b831eb100662102c483450fba2695c018f40e75663807dcc2820a0fca78d059a412e8c344efb0f6d57d6ed03ba4a37708fbea4259e81dcabe3aa9456f10f7d5c92c7a83baafae0a426f70f6d5554c7a83b5af2eaed1fbe37d75518dde20ecabb7b842b7b042ef0ff71589ffbeeff3d6a7c505da83351ef415a904d2313a7cca49522935924a5f08f5a19536501f865e645ff80cdd868734681e9893cf01e3ab8ba452b81aa2f717fbeae4137ae7dc5727d368a21ef4ce4d5ffdc88a3eaaa2775efaea3c60f4c6bbafcef3456f7cfbea2a2d7ae3a5afaeca529de806bd2feeab13d9a0f7d5ad29ca6e650beebfcf55a4d297e34361f6a0a74825302495321945ef5bfbeaa51067416fcbfbea3c4d30c642a4c863ec4536477e25b504f07bfcecf3198b901e8ecf1eeef019cb90349f1da43407fdcf3f52e9cba412e661d2ab995ed5a085a4d0426ef4aeb7bfd7359cbfee53e46a59d8cd71f4d931a994e96b0c82882a4c273e6dd2d7d97dede8f68eae46127aeff0c0be3a0f8cc7849b1cbcb3dbd19538e892890e79fa8d6e25d1ad25bdfd2b92ee7966b584d096842781ed152a7271d010ec17e3d1d9f81531268dc66768130ae5c6960d9a32316a9f1619240388a4765f9f3785a5b8aafdc0127281f6d72fcde6c050588f61587bd728fca4debd61efb66a48f2d2d778c616919e11e826438b3115640cd0e863a4c8d51a3d0c8e08ee8ddaa745e4452e1b19dca51ed1189671badd5e8c3e27e8608c4057f848f6c0639244c4061783841235a4310ed5c1ae918441341add4b58a3f6c39150920d2ebd7834b68450a791c891c6a40dac6f0c9e3a8e1645ba1ed2ea06d60ca237aedf211d5ee13502803dc90f83b0006536c70e6b7ffdd600308663bc7563048a0a6d367a222ddaa0aca6abc518e3169015fafbed0f16d1bbf6f2d2758ccd2cab2145b24311c067767c667304124e7a8d2c28b33230edd8f4c6f4be3e1466f4be321b2243cc60414e6a8048e2a4068824f705ee6a4f181f185c8ccf11cfa968dd80fed6f4be02204486a573070b5985c498ecced0f4703512c5f4c6ac51dca223108e1e9a43111049089fbae0503b531e0195871e9a2384aef21fa703463a148130f41f2710154dcfb1a4672df7f8d971e923e9ef58d253144b4a2a8124ecbcfbea62391481d14927736d34872220fae8a339c29094af9e5ae2820576d6154aa08244ef14fdc7f9e3e4e0e23204569d3a74fe737a8a0db0518feb8fc0463df661a31e7ba5a7aaa46758d2335552abc11e4b960e3c2350962129b494b089dee1cfe828008d4036b308a02080aa0c552d3117c89c366644181c6a969a9b1c8cb0600511a748afc5957ad1818a214e9168149b8ad03b7c31024d19e2f90edd119637f6034d77bf2c55e1dda62635182e0784ed0a316549ec14cb9db2be189606c0424aed14ed480aa13b453b8625c50531c6cc7982971f9a4e3167da631ab2748ae63844852b869d203b25844ce87d8d5065637a00738e40420f95a7935a0d48a85fc49cd46a10123975c96223c218a400c6768a4623bdaf211ef68ff0e18aa6d3be91428526202cda2442fb106577dafbd2758372045b2ba20a27b093041599a59387210f689aaf4ed37cad37c854819de28d71e88dfe7e7c96b50bc2728adaf1f2830f0d5da2585f76219820e3971e7abae46a9a8b1cd6961e769c8410bf50e971b3f2924577e161f525c6f2922488cb108d1b6f58acbe3cb16e50e296362b2e2f084dd981b2020385b8e50bcf1734998b6d87cbaacb099f53971d3035f0382d69215b75d98d5e84f88051417f8101c809aab5058990130bac30415cdaec7c81a3ea125ad3cb81af7eb38bb6d27a5760aee0c983a2f9eb99e41180bf2ed28c43bdba669ea9701045149a9e8414a9562044f108bdf7de7bef0defbdf7de7bef2582085dfd5eaf4257bfd6f1596d7661466f461131a4c86872844ef58a6c7853a4820ed7d0c04267278a6a3a55c6a58226a7c450a3f11317127d9d1431db68929784985a931b580f5b80b052c3152f4d0891a1d0c5f5020d372474188529851a195934686686115c4c379aa7071a737498c30c253458030d1fc064114289b468b7a84ee58659547b8d6c493d2a5c0358f34a95b000d5d4d6b54557df3a7f2cda03edf0f08103f859020c3728a108536476e070f6e796520980f6d0e05b8e51893a7c888a38bea0e8e51e1b46924c0e1cee03d5697bd788680972a5817b38b2b0628d667ee7dcb5504760581a87de0940cedd8096d8e1318341ce4c8ed584a7474b92191854f888d4c1e20de8722525e9d081556f7a7c6edcf89d7360e9824fd0d3dc2befcf092d7eea20cd99c3f31756d6f003b4c6469a25d2641f1c805a567ee7dcd1d78291a3df3997e5c8aa88c174e8f86f28482ba886750a3af33be7728e22a988101a32e3ca99c969518a21223334726672aa1673885cccb02e21275cbcb03d19b68e75232f6014a5c83630aad34a0484aece81157deb48c2c0c83453cdfda9f011c9755a58e837e19a6c7b2e9cf4475b4ab334638071a7259c409ea718456460e070abb73d8aa4722a928185bfa89728071933d6681747e8eadbf666e031b4ae22345cf94d6bc8f672ae675d3c349791edd93af49575d787dbe4d6f0f6c2c053e1f38e089873aedfad9c6b7d4b6f5b39778d6cd04635cc04e5544251358e729d9ccbb99ccbb9bc047dd95e96d3aa4243116634d8f6aed739b29173ad6ce6adedbdedb562d0d5451b556cd43832721dd1389a21a328c6917954fad1118ca3a317472e8e8e8e8e848e888e86828ef0d1d1d1d151081e7df9e8e8daa3a36a61ab7c44d2a764cd42d7dfd97374470b1801da88211ddc2333ade8ead65a1bdebbd383ae4e7fa0b6946e6e3f5bb424a1ab5b3c54a500b8e7860110416d30b6a0a386150d301210d40c16ad48c573952fc4087f8c782d67307c72783124c40526bd1085aa2286aaf846a8451641a1109a165e1de921a1e0096d0edf39e2a24316cf9895ca0b49d444c4e41495b5d6526bade57102e2d50d652864056695305d2fab2583ae6ead593a3d3afa196fcd1d82a795688e387413b3e88d49237a8743734826bd7108a577f8d4453f9a29a5d5fa11a2094408ffba682b136d710bb75c2d3ce2d0881a59eb460069be62f0d6c4d6459ea0776887e4e80bd6a1037b6b12b110daf196f76d39c49383c65e7f53dc3ba06e60bdfa036a55a26eeac4d76a447dd39d11bd513dbc2fd03ca246d52b35da38be6ea0bf52f9ead4dc2f5c14a93a4f0cbac66c8e15c0d0a24d803f9711b0afbab30eb0392ccc0df6ed83cd3dfea6b8d27e28669c6fb635e79c3375adf68f2fed83453cbcb475c1a754c05c516d210e5b5823e99e67f6558d91305ca238a9d725b4ddfd0f2742dc4459610d9b2a68e7e6e181dd170da324491237e470e44c9cd3aef9ea3c4ae80efc5504d8653607e641f29f57e0afdbd262d387ebaf639327665d3c301e13acab3a0f1abd79603b697676360701bec2412a0307090ac909e9e92d528e0786d4c40343b2f120ddde3a12ecbe7e2cc161f644991f900863c2a9e637524c0a254458d1c60a912cce8df4c46f243a728ea083c5942974d29c1b29cd6f24da5bdf483524a69d2d36e0ec6cb13187ce6f1b3ddc3572838bdad1d9c8e9de6a1bbbb76e63765f74ce2e0c94245084810187e6b70d1869a278a1810e1514aa9cdb8613bf6dd8a658d9c29b61f6f4c3b96d9cf96de3f6d6b70d9c8da71d273692ec38b1a1c4c6111b48deda58aaf56a366036626ffdc8765ff40b134118e192c390296abadf4745cc44d1030f7472330c39f79199df47b9a3dd5bdf47bc2338d40547cadba3a61dd8d11318d38eec684776b4233baaa1bb2f13d0e808e1b530c49a5b13bf6b8c2fcc00c68a314b4841e2dc3598f85d238a85999122c61421c50ce73e82fa7d147bebfb487684e44c8d32676a40d5707a7a5b23a77735a4e81a57de7a0dd87dd12c58388da1c1e996050de712bf6bc46a2cb978028d4c0b9018626fce5d4389df35686f7dd7a8d560a20287ca1c375154fc36eadd8c7237dd6d6744336a32ba0df96d84337a5a629464899112a32346482aefb7d112ad47338219c56eb9ed72456920ae281a884b8aeb898be9adab49c75c4b3ae69a69170ddd7d39004b18a614a0e4c44c29f39bc68f9a383b584953468b0be7a691fb4dc3e989ce9a222534fda0e6dc2e32bf5db1b7be5d32171256181a65586168406df94d23c7cad170ca3db16834b168d858346e6f9d06ecbe7cd08058b3242a4e94363689df34b2389145883a426e60cae1dc34646fc7fca6b1748b13850c11606290726e1ab3a7df34686f7ed3a8d160622d81c35a32e7f67b468f4573c3a24535cdc835e99a766f7dc6ecbe289913b2a8f1214b112b6c10f37b0603b0344161892db22154ce3d0389df334ed0c298326ed4f482c439f78c30bf67dcdefa9e819bf134c58c245328793b63a937e3c8aa87841593c18acd60cd88bd7519b6fbfaa00826624d3f2831c49913f75bc62d04298c78018c0f33c8969c5b0698df32ac44014514268ca10226e6dc32745f7ecbd8bdf52d8327238a8a8c2854a4bc95d1b4bac97872635ae564ac723256391945bafba24d541182841a26aca0e2c5cbefa21f4228b1c29423d2e0c005ceb98b9c7e177d404e99244090342167c9b96574f92d23f6d6b70c990c244b8aca2c29822a727a7a5bb42a5a15ad8a6e6fbd08765f3f5ab0a9d01405c6cc0e339c5c7e17c58a96a080e3846d0926253c9dbb68cbef22da5bdf45b522a61510382b2073dc44bd8dd15bc562ac623156b1183166f765e386266e784e20c9a277fb1da3056b604bb04003658477ee185a7ec768518598d8102266be389d3b4696df316e6f7dc7c0c5783a1323c999184a621c89818400bf632ced7abb18b018b15b6ef7d6b7c963fd36a3a89851a89852cc2726d35bb3e9662eddccd9cda4bdf512051e9860608384ced3142cbf4bea26892f724e80b3821929ce5d5ef95db6612288963558848039b769e5b7197bebdb949948969465969450a553f9f4b6246925492b495a59ae612347c604ca1a25557e9746cc1871836c061b9523e72ea9fc2e11a0029958094f946401e5dca5ed77497bebbbac954c2410382490396ea276fcf61e19f31c19d391b1dd5bf7d97d1d194182c4961d96b8c266ca6fa735dddefa769c3f9df124675c891f71246f7d69d7db396c177beb306cf7c57302152f08e90191c409e711bf61dc7230766f7dc3e0c188a202230a15296f61c0a8e9f80d638431c21861d0defa0bdd7d91b82298c4a0039d23ce9c46fc7eb1dbc109549c393b1b9ecefd42caef1730136868a20a981c8c08736e1845fc86117beb1b860cc6f8627cf1e2c5ebf78bf1c5f8627c718b2dbda0bdf5fda2f682690402670432c74dd45b17bd31e62237c65ce8c6d8eeadbb98ddd78f174a68c345052774d0183989f8ed82d6646ba24c992b900013756e17517ebbb8bdf5ed0237fe76f174c64592332e94b838e202c9dbed6249dc11893b17e2ce0591edbe7e144104962b4d6e548882a1e937d19a3a4880f1720314299c9b6888df445ee2388185c90e585819726e22217e13eddefa26e2114551218a4285480ad113a6b79ba8e946b474239a11d1defa90eebea89c18d03c89d196c4b04210bf8776bdb7b1b7be8964e26f22244b86ca2c19821a727a7abb8772e25093386413876e6f7d08765f0b10e2c29c3943dcc8c0c4c9f47b2836e4458b1055a08c00d9c274eea11910bf8768b9df43b52126b188101cb188d01c2137516f7d0bf544991094284b436b12babdf52d847b7b6ea1a7324249ca2879bb8596744247744248783d9e104c28f6d6836cf775c30a1caa843942892a2cfcf03b4886344070676ab8274c387710ce42f91d94fb12e68dd318d90d40e89c3b4817b47beb3b88f7f33b284ae524288aca8994b73ba8a916f4a416c4640b5ab205cd6cb4b7ded2ddd78f13c8e066f0c1851ae2c870d67eb7762c30224d19384f309460e6dc2ddefbf0bbd53b41899814363b30e9e1dc413dfc0eda414148e0b4cac0817adbcac15a4eb02795aca592b554b2560b765f2e6c479c18e2c80b39c4e1e1770b85a7a72f74c6186172c3b95b4f7eb7ca20c14687355bd238d970eed66c87df2dda0ebf5bb516d316385be6bcdd40291c500a0794d201a57440291d10d0ecbe563a166e4803c419294374f80d74013863a29c085143c588730339f90dd4642a4923a60d0a53a244393710ed37d006227f03a59200a59200c5f80d949a01a56640a9da4faa0694aa01fdc4b9116152c2071e144a9afcfef9418413283518b1f321c7c2b97f72f8fdc3a5cd169c962894f8103bf70f0ebf7f766f7dfff07ea252407ea2a480fc48f979f2c3e4bf7f9adec67e7e5ae8ee0bac193133d2c20c575c61f2bb05d01b1d7ac025892d0173ee1637fc6e41e11889610cae8c131e9c9cfbc786df3f31d90f92147eff2cfd2829d3a24c19a8b7bb454ee7a47b7aeb2d6cbc162d60f7f581182c68a09062f643104b7eb70061e643939cd8131dd4b95bcc7eb710df5c9133c37342b33b778b1a7eb7a0d598defa6ed1d4424ae8044ee864cedbedd3abb9a945d97c72369d6df7d67d66f78580a5248ac87d09724b72d2f0db8706d4440dae8b921e828039b78f9de1b78f1ada9a1ade68993224766e1f25bf7d6e6f7dfbe0f26f9f27383e49e02879bb7d964298cf9110e6832494f542990f2cf489bdf51edb7d6920080f75a61421e688955386df3d3711d0c014a11bb393c23b778f0df9fbbe9b8170511ccab93c1264954745e5d1aff294a86f3ebb85e5202cccc2705879d886156261e55d1e175ae66c33ce21d09c5339670fb3836176fa65b2836c8e38576b5fa83630abc456f9a07f39d16cb54a0e94e1a84b18417847d4d29684145caefecc015897104db4b84eb601bc92e8952d1ce8a44c8ea2b9c3a4a4a42bf50a112b67ae88155f81c7948736beb8f428da18a188ba321e01db00b221aa8711d8c03dd45a6d78f3f77d2008e6325f2ef385a3be813ba87a984832ceb88918e23187f9cbf793128efa421175350ce98dda74243d16559f06f718e2ceb0ccad6365ee24d2dcaedffa4753547df8c3fe79ca3f73ffa8fde7b8c4d807c57d0549a54ac9109442e751490f0cf038659a38021570c0d00d384b71a31a2092e0c02362fd8aad6313471c6dfd0e79701d3b364580efadb4d66a9d419cc55aa17d5ab5c6c2bb3517a746a9f0cb2108fe65f003c19cbf9c13e9069ada2cce18e38cb1cd6e3f107411b4a0052d686db6260de1e60cfad6299f28368bf55bff67ba28d275f1075d7dbb5c14873e389238a9f1b155016161e8db35923ba26f1b9f3db5526540660457a509ab1699f2ea9683eb6376b134a2aeec205c2408a48c28e09ff295ca0c29524ea9805562a5d07eafbf1e8e3a839edc1727700630247ceb6789a36795af4ab2a4174dfe11da0b470cf1cdf9fbbeefbbb905d5165c8414f4cbf7eb92290e9dbeefcbdff77d437c50a852da5d5cbe9c3535ca385586ba043aeb6caf945ac32ee2228cb355f9a6571e0fe071068f6d68df44dba755f4784cf9c68f77ecfbd8a957ba4106ea8d4b6f3b0e3200faf5d67dd5d835baae59a0afcc6d7f53a8903477a847736b51652a85dfd7183926e68112043cbeff4c1028d275728c06a9eea6e3adeba83d8df16355bf2e2d6428c0fe228ec6aeb2a96c695453923e9b2adcb8458553e154367ac6ca1095ad85ac8591f7428ebe4ebf5a98cf07a2cfe667a348d78f769fedb3511c7eb53ac3d1c2aff63c2730d55560bbf00a1e873e5c8fedab855d585a36b76c6ed93c80265d7debc83af2f761d7e31f34b62f1f63976cc2103f33d5207b4a058f2bd5207f372c4da854831c6617e0a7df97c10f0473fef285c23b5bc489b815b4a0052d903d0a605f45d867b7e5f691a98c2255a7e407df49ab196233ef9e76eee9fef39d7bdf099a62ee067d5dccb4da1505cbefac5929f7616cfac8bbcfb5174af8fce5dde31d5bf622e650848cb1a8325359e8a450ff9794730af20f792082210ff216819b2336f5e3aca835212040b400f96d6776765dcfce5812e72ab714a67d98e6372c4d507fe3dbecaf03a103ab5381fc578b8187f392c738aff0d87311fad237c7e88ecfb1a9a3064518863060c47e671bf89fa9ba51a4eb260bb6bfaeda523b82ca11355e1c2c8645fc67b6722ad43b3db674e8484a72b9dc5b58c23195c2f973615c77764138eadb4a49d314f8f6d8d46134222ddaa32d67247929cfec95aff98a75657bfbec35e36c861887f68abdd957e8d86c599c1361999f58a36b665a4de34cb339e895bb411e2de70c4207cee441df204fb5645dd78f7e502de1dfaaa5bf9e77a6fdb5b83be4c812b6b8d1f695107eb35ab15b8c31c6a6750eec8ddd3004c17d818e4d5bbb312f76e9bfa5da07f7044d0cbb46d7cb13ee12e55d1ff58dd92f3e9410ded837030227117df6f95c44777c9e3d3b766129a92b7bce395b2f3f6310fccbe00782397f1913d1ed1699eed8e1468de641df2d56605df9b3390245ba5ea308da3341fe4d7b749772d304ca4ec7e355ecb5c455872dc6d8baeb71cb5f6292141eb0461c5ca30b9a9f09c213aacba553172eca40e5e0aacc94199a1884af03fff2f7619cf4df119faad602de8b2fde68ecb5c7b6f491657607ca63c735ba233b363766a331fe7ceffc9df178f1d94ce128d275a22174750ce5779efdf5ec23cb1eaf091266d9ab6a374bb845b04e94ba3e3c0216c1d64981a5f2e99aadd72a02fecf6db5d47ee60bf49cf34de75c648d6ecbbab0e94e34a9add0396b9fd687ab0838e3c74f8b2e1e43b658befd957dab3e670f537447cad1e8d204d1839440bbc82a5bac5c7c968101b2cce4e7162278acfff36ff5d953650ac057fd7cde8fbd03f03f073bd09f724c7af0fd678640ebbccacc1429b7e073a576159a982265af1fd520e311b08fa4163a8cd161044937b43905eb389738b0d016bb2884238eb66eed35f1ad7549a44557fc1c971ffef0f8f533754b5b2ad211934aad16766c6eddeaa27dfcc39efd73b0c48185c61e9aa08be0984b211c713476faa0635209bc98ec009b2625c32b74c5a452e8daa7f559ebca5272f85f0b044b7a45950a3f103c7f5e6b0a72d21310d4f1d9afefd66771e5d9dc227c0ffa5726891a65274b7d55a9b00463e9d428bb58e6126410fccbe05745f83c60d5a953274cc1175aac8348a7fce739955539e79c43cf1904415095ca39e79c73c61cfce79f873ff68fc75ffe722633a59202d6a1b97d8c5da8eb73fa51a32ffc6ffccf2be9011da3c3181df0f898f75dec5f893107f6c326b6185b6c31f679eb19e3f2f35a8670ebd88ff2c250536cee1097ba8dc6bec311ef60d695cd6a82755d772bba7af863fe3ed387253d48b1c064cb633cd481c5e60828ef312f339193eef6ff9c86d7f53973d139059aae07b1575795941a81e1832b78ec2178c19cbf2f7c4a9a23703d3693941065dfad2e0ae03f0c8c76b98348df3b3bf59f7fdb07a5f29f0b26f4e7f7de1fbf2b7387a4b9f568ee96686e37b7cbc74173277d0bc7e6d6e180fbfa315be8d0e19394d4e372f1b8efb45adafc4c4ae541cf531efbd78094a5140934b399b307a08931089a3e28150f58ba2940863ab0feb9f5cf1c01a5f2d8ba72958df62342a41be82f93c083758afd7a756c7e258e38ba36207c91eed0644600fd6a8a703da01e8870df8650eb5435b5c2aa09b49af5d67a6bbd9ef197bffce52fe79acbecb80ce1f220bf4591acff1061b34d568acd513d9664fd9a195897fd51a2b76db24db609f734c68f5c4123a18729b720cb39b0ada2773d007827f550dfd78e537705505aa6a851f550f3943c0c65c7391b4f49afa72e87acaf1c9fa972c89a3caedb0fcf68ff1578bf75d2575b6ed776bde8db3f95dae1efa4cc9e925e23bb53ea5269f44af2105d15ba2d4155e9c3f561ca2969ef7710e4a486e943af3e5c1e0439a901e2c3906566608daa7360c367816652f8e12e852bdeda30a2f57b485f1acce4d08c3842e64a94b3baa6af1f26fca06b52460c902f50ceeaab5207c98113da7f87e2d32c2c54f1d60c47fb75112dec494091aedb26fa3a7dba6536e7f197e0cd0a284f049bc3b6f9bba586347fbdc8beecc9e6379dd30109e88e9c1f013720721ee85bb6547d2d43a821d41445baee29e87b6dd75602bf610883895600f6032000f682585d85d66d29d11c210707a03ba8539775eca1cdd1c3c1012892f51e6c2a5197f5035817350d409160d0b00de0dbc7f806a03b546f9d529c4ca43baceeb18b14bb0d4abdbab12f0eae11f6568dc2be89fe8bbded8db96b845d6c6197bbd839b837f4541942dd3f7cd0de833ec6071d7f35e957e2fba261a875cb71d2bb4c5fb7d8b1d7ddc53bab7b23561fa1f7d85f50a1775da2d6a4eee3c64a605dd5ec556b12b568ad15af765829a554ac1b6f9fc73884dbc384b62e1271e37cdfd72b92454b131504bf1c72dff7adf9c030950ac12f4b98efd3526b0ddff71135c1aa350917927cdf8704effb3e324c3e304ca542f083e203c3542a043f166a25a244870f0c43f013aab3458836587cdf6726562b1886e0b7c687effbb27c60984a85e017e603c3542a04bf301f18a65221f86d615204112178f5fbaa9cefcbe1fba8f8be197090f45f4623099c0c3174d0a9de992cb7a22f317ec0b9802b62ad50d91ca33bb253af6fa9e3268a5395b5a6a0bcf5daef0c73f1d54cd58ce4d252a47cabf88d1483210e534536c3b003324d5157f60cbb2fd2014228b4f8ec3bc7280e971f75e514fcb5d495f1d782bf5ec11aa6544ba52c9661d728c3322cc360e667af1bf8eb15c466a5481954855fb62b52097b8aec41d1fce798e41180ff5ca4f88a2a954a65f52abb0a16da1188488b76ae5568eb0feca9afd10e0e3647a52eec34bb8082b55e8cc35af4b445b4129fba8f057d83b1de483975f12b317551d7488d2abd11ba0d72f1966efb7bac3853574d6d153caed45541173cf69b0a2bc679749529fad2d788eed001a2b1a834aad7b1a21e540ccdd008182008000317002028180c8984b2300dc3b0881f14801072924e684c1dcae38110e3288a52c610640821001030440046888856001c866bdbc7ae60b7ab0e37ded08ce85554b9794227fc0aad105592e2d0ac20ad5588bd7e997a787d0ac6572162467f16454b7c70b3860fabee2e2544809d7e74e4e2878e2ead90481402b429cf5152a3757b8630e0f2f9d08724fec7c2b15c69b26bce93e87f2ef1c76ed24f58d8e6f000ce010a0262fc80e8b2eaf831d98a51e69f8c75dfa69b49f8f49429e32eb8b939fadd49bf973222c185542a788113e55a072c1801631e495f323a5a27416f8d9d5103d82ec980347d624a7d574b5f367052df2513e36307b4d6d397649c2c7f29836cff9e0088bcf07675f3e50b6da426b6c409d1e411c7d622af3dfeca44c528ceb15fe91929e3b2b0ec3c5768a6276a0a1b018ac64a11d11ed0022820560e6e4642f0ea959e42407db7519ac540c6d8cb594f7dea4bd338c24daf9ff20bf71e0ef67b3bf9f4dff82f3dd96954d315ad504c13f02d1a61132f4a0a8d11abc8a02b9a27d89e9564ddc4434429fee17d20442e54366b6430a64f25cec8b3b4f59f4b8e0b3fc5d03e120f352b6e82f0b341f48c3f39c6e6b6f5a29aa494da628fc124ad689a7c3d9d5ecd414ee656f680ff0ba5710c7cc3247b46cbe3757119f0e6c9228c4c927349fe4503363eb5a75fffa2035389f1d07950f741ba072e0a0240b1bf955d06ff417dc149cf1c387b89ee8847a74219a6492c0762012a458efe61b226eef96ab6b9a370d292b0897cd8c1d16cdc386d1f51d17215d33866e5fd63a7410eb6b448389e7f44dd152c486bb6b144a9c92afc409f23f443a3a9abff2b73ce26839f430594f9e63b0fb78f5b7d2222b88519ffe3a5d9d760e042100b425e532cb2275c54c65bf490e967d40339a5bb7458e43f16fb18fa640dcb83a3a27e1f21cdfb14d8a5317ef3a9db7ea31cdeec1a7efc6a19972df441340e43df72613515f4e5f34f91462df6b9514d567cf11f70531e89c288d43628cf30951feee2876bf97cc7072f3dc4b9683cc9057d4c7887dc300484298805ab1557e9b94672dc66dcc5167306689db4563f76b949e6cc07e8dbfb8aea7b6d2bd495a8d22ba5d70cebf2f80a75f402ccfa9ed34c4ccf729876238a16bd08762521f5d93b58b9321444d1d5b9b3fb79828cce109d9b84bf492d8b0b854189e33a8f150c150c726d3ebe12c9ea51a2d2541fa0ac7a0d1285037cb872cbac4a105efe1c77626e054e9305db92bb60ca25049891ce9f29b1bf1c64d6d5e1084381b766ec40e51cb6541ef757007d8677bb3a104ce23b23804a29011fef2c9e0dbec2a388bd246ff97e4634711b9e2c164a699688d9b5dd6bd1efde45b67048057d1b47678dd322bf0c289bfe4551e7daac531d9a8bd369b36445755135a6c2224c275421805ad4378ec83dd036d0134a6c5e8fdd0f89e91a0416512f6d4051bdf2e0fbf95acc8e7fc67881ac2031e97df81eb80b22d157e0333dce27127d238117546564313114b1976c3071f0a6982b35796a08cbcf925754d6d3b3dc25363678a8b1652e1d8e8d2c98378f1981c055219252e7b6c0ff3641878207dd0c73cb5315b96ed50713acc99e5a4956d073b0f2e6b4483bc76e5e02e79032a2cdd48b9990c492448359a6ebe373751e0ac7a370b4717d281fd7f970ed9248fed32bc5824ec4013a019e58c29d08773374131ee99b914806f1e882abd4237cb040fc06a5e5127cecc13051db63bf7522505c1210ed1275f1efd71ccbc12dad1f130078c12f2741bf097d96a17c6b982f552970e3d704c409cdc16bf4e35da688d36326288c6db8ba964237a3c7137b7894d96f3ad0cfac58f967d6c67c5d5ad01ebd502b29e3589f951833c4de2ba1758339cbbb12ed83c45893757cf5fb1a9345a59953056153c4abe7d2bc0a5922762685c30862ca4835a05fba66ac69c2492b4d6b6c295b947078365efd33a1f7580f0278f6ad7f8a26b3f950614d1fbe709d61dabca739cfcd2b7cbc38d9bcf341f42085fa60d2d956bac890d85918645e358408b0104684fecf2c8413bd875edcc68819d5def50737fb197c3394071f205081a5bc772bd43ef64ee7e2e9f68bd93660c6eadde722d56b6f0f6361ec01e907ad2faccef819248d9585fa2e7a84c13fd37cd5be2845c56930c8b5dd133f8ea586af9b4417f4650b2bf71ff625a1736ccf25fc3629ba990f869f4f7d737560b3049167fa02a07f585bf7d7c9d5a643f48f7e495cea5a9904d3e16ebe0b8ccbd94a78a3aa8449fffabf9aba0448f1959960d7189ddfd53cfd2d746d7c5f8052bfd8b58499db3f624c729ae46d2d5eb67fb15ecd1adebfe078594bab03a3be20742adc79d213238de9599e00cbf894ac12ecc5ad6d02cb169a5aa5a331bfee56be8ecc407491d4cf7bfa5308e8e5db028cc179361c599f7a6d5b2e41af005727a596f0311d37a9f22329cf1e3847838d3083afee8f33f8e809ec93e5e74ef232d056493017161ef1e20d33ca7cd467daca757f83e3d9692a0e90aa1a7c84f97f51b705e016a98d13a882b09526acd0189f1e1175271b502b26de13f25b38f2fd9119073c30171c200909dc79c5de1eff14b2dee0d793c3d95603f77440981eb86fa2a15f73b7e43afa9f472b81740f6c0b75393ee12f7b074d76a3e23a0df338041c939d57bc58f78e64a1ea904cf8aad3533647301baf18f14a9461b1e36c97838a5231cb21eb15e7ff96e964e9f78ecd9d32018849dea4a9d291c6bf33994198e768a3a2db22124d74716d024669575113bd089303cb59668963b93c3732e08303b8f826b300fadb67cfd003376a2abb7a60bea9c9a1f3933bc0911f3700d71292687f2209aec86e633b502eeaf310b03fd907d4870f12f9c15254beabeaa609150b59ebb383c53f0274a110356c98570c0affda61f532e57c38180081c1faf6b1c1879b03cc74aa0166f82fb7a35fa38f1441eaeff6f0c1951cb4b6e6eba7a6b40a1040688a00f5329a6cce0780ad785b928e2738cecc15b94b6649189efe4abb3de85c1a2947e9ca4c085fc9870b4ae770044ca9b5f80bc95720102b9f3da2f90483ecf1e03993f0000b13ac992624c662ff8cb8553307df81abde0425279fccb256ce5e4f0d6ae0482270c2566ee505005c2688ef28f027650d79b323c2436fcf6bd72c0c810626bebfb74b997e59469f922a2638e13c8a4bf81e982b57381150d7191188d1fbb615a31e75196566fe702b4caa3626af6f9b9b65ee4d84f4f383cf0afaaeaa167556ea561c966107cadb895aeed32d374592991835f09d1c677498e912d04828352200d453970740e51d5807c3d50fb83ff18940556b6ceac5c236b4c9dd75a5c126fea93780e4421fd3b3a033d9bd42df109908687408e4c0f1a692991ec17ea21530eda250387f57628b843147ab5c32add2f727920620c9973897c1457840dd45361a2d8512d4b540fd4c212c4251fd5dac8e282a421729b921b7abd9c2ce083c120608b1b9303df2bc24f7b65ea1478a151142025e04469c21d9bcba7703147cea7cbcb8c1a98479163c3c0691d1098e92c9487fa73597f50d90ec3293b552f4103a10687c48eb7e016db57b5610c370f54f87b51d5d4e0a32bd79881a9381e911c9bc7d36028cb6b106df3d3fa1bbbdf33e45df40d30a48fd5af1fb43ec150941464d604121af9cb1ca33e2f237782823178faba6e33e97555bd634ee57a2b7633813c39de40d72841f84941321a69a6e9ec1aad244023ffc07fef5b9c80e07bd50b728d0121a7b51acbc06a8bd6979a4fd4c490078aa257d04ec1b43495551423e827d7d612143af00fb7782f3a2574def1d45654c12e45aa5dcfc117f82a9f42b653fe43da7ae6ed6663f0460c74257d59791915ba47febbe1aa776723eb2b3fce91799c96d56b2f532ab635a78dddc5445e4caf00b294e98d7cf4ae1f4361bd57f7521073bca695324448a23f4e9c7297f29c9f28d71380c441a83081367b7eeec206e38bc8f165f964f906bcbc9704b3923897d719bb7bd63cbcf32eda4e750dc645a6bb4a8b8f8e149b9d122a9ded8b017bc018e56d7b716572e450292faf831f7e74eac47061b0065a9c2af696ba79f47019723fe793f998d1217f891f1f806e31c492a8d34262e837dc4501731487c9d3724fc7f705b26ab184ddceac7ef3b6004d7e5ce61e73d583f8e7166b25cc00b3108989fd6284273e87b5eb2f31a1314e4e18648f695b011950ae7856998aaa757785e2b622afa89b0e6f52a34dfa4e8739ddc0e599fab1f5c95f8cf9975a02241c3001ca49e42054166dc6a27edec0010399fe03ff907ebff87c0fac06b5e5ca10cc274042f7afdf4a506478605047e9d5fdeea0fd1f3ea50d8d2583c6d1f4546c3b37db2c58701fe7072086056e3cb14c34e038772795075bc9e446033e61bd1113a80a2a3a2812f438a2e407c76f5ca1bddd709a7f49016ff1662c9998d384b80d67120a7cc1f817e7c4cf18723a1d4873a813287aa8578214d913337d4496a890dedee26f9d51dba9a0b7ba586e2c524af9a46c030e93f6766063e2d9c161c0a3d9f90ef85c58ba24e26a190a4bb5978ee460fcbcf28f758a9290a4cf26508a07b47d40de616907b3e378b6e5bfedfaade3334b0db6389859dca7eeec4eaf863654edcd9045a7e4400821d20575ea7991a5047948d6fdb4a2967fb6fccfb2c735d42c3cc3871b9068d78964abc826e85ab49b489bd5b4be5b4306a699e11e15c6a16da0a4a8e04fd484f92391c8728b9bcb7aa5038cd7c46b4d9e0d04e8e8f937a7d1b450f3e395489d19e060b9dcd041be86720b2339101f60757c707973ad5c4c82d8b8e280b426eae11cafdbb33e4d95a52f3ac3595400dc809b282410634e2064ab9b44f4b778e7b510bf7442428fa3fc0e7f266165e365047f82c0dc93bfa0dba0b640152b4a978e0232cc17056c01c41d4734243798e4ecd042a8a581e7884c0d0d610f7685fa2d36c0995ba2a36c16052aef7159192ed4609b698eeda6a9ef884c7243814a4cadd45b6c44bcfe30e3f625d45b3458654e1698fe224ff24ea4d99623e0bcb284a99079dc7af50b199bf0d408cde61301aebe2ec1a83c4b4d0420308d8a8d4b764733be94b882b4b4b3421461e4a713f1ff7bcb2d97dcb6d70825265d291f88cf420e8accec48cfe668ae3d9d1ff06df0a4a0effa31b6ddeab5237ebb1c644af89cc1c99d52c4b9802270d595e5cc114b73144afb50c9f78b7214120b1f047e6bb02c7489f83c3eac53ad3b9ab3e017df70959c2b2a984baa4911c05b6cd49e060c7905ed54571f9d1e9489e44c65fe97470286993a09129860963fc20b4f0b1400c1689842023180b0614dac1f4c146c12188a6632c6c5b18ace15d2e34275af37f03a25bc3741ad8a6830d737678416795567756c50b98c4a7034c17621144bf9c6104cafc55e5c131cc822f9168f9c2619845afc9c637f633d164c2a889207c4ca25a814a396a2a8faa0c39d95ec1de8b94a11bf10726a1b3ff68494a6788fdce565c36deee2a24404d8768bc82085149ce5743d855fbf24ac4b1f41bc03d80a6b723e1d3062742fa991784a8690cdf6f629b14522a6942ad43407cde5eefa66410644784c31ac837341fa364a585452afd4fe1786a978a740759c819dfd25bb9577c84f0490aa3779c63a558d6491e076a8792b0aaa913441944cf125269cd7614948d05d0b7a2e4ba925ada979036c3e7a5f9ad86545156c5fb28bb3e662fc8aeee1f7e742c1eb3092240d056ce4e0781d769752ee7b6687291561f2609ad3ded4b4a01ed27271a33c54e7180b01db5b5f8059cc9224a04d8ab23159211414f08321e813a5d08a19612f691c8d104155ecc34b8cfdd86d9030b0a16055c5999f8283e5964492b23cae2543580cc1c4d683d6dcc7dd94b137295795cbd81d826bde1815df2415fcdc2e28a902f4ecae2e9344d40219548100662d96091919a5e3714b0813b310325d23d3a3e765369cc7547e45b62ab74b60891562579b3182f0456926b84570ca3a6853476c50ff1ec425768789d321eb5cde98a0231e0ad548b19c9a8106c6a8a975fb2cc72cb700996fd638e234b146d2988474a4fda35200ad9cda8fc80332e00dc4afee44eaa3036b7c9cbb9700b6e9afad502209fcfe8c0f20a2155b53ecb4e2ef51f7aca9dec315222cf96d4fe9f271598619403a56654a4713d03243ecc07b34735a4bdbc941d23e89003e1b558d70dd447501fc229fec29ef6f9123b75ca227714555c60a9f1e5585263077d09cc441c797c2641b01ff111a2794084211144cec689058d370fec14f5538820123a66d73f427cdfae26f972c5c8f4c630ca3c7907df61fca5e49fac9639f4240551ca104ba7e0fa0a8373f460c9ac3584b416114d132f781050e9703d7540b59771528f1b2da345ffa048a143a5a52996c0531f3684ae47ce21fa795e18b8de9481282483445c7bdcaa4239e0e328fa960b58d56b106db3faf60f577a5b059c4b41fbe540bb79e3af44a782cbaa55b0753b20f2ddb21f18f2409ca1b23d4286656c5e4667b6f2d338ee5e7dd51dac7a1ae2e98110f95a50e5ec9ea31ee7ecaeee232d7e31f68f2a448697d555689058779f6624d5d74d9706ef0f7fcfb509c70364b09dfa7ec0a0606733b548d02b3bd087dea130eddb3d09e922cf7b7a4ab8c949dc8a2a19eb258d23bac932d38c689bf23cca32db1e0610ee8892c9fea8085e80e11f8cf9acd73fedc9543aab70f774c6b517611f8a998e5203a80ac4ad0c290206391e9ff31fa333ae36205e8fcae9e150062d02d4f5fe3cc31c925ede7fbf61bcf17f8fbda1618cfb5884fa90192ca517959ac4b2ea4f65efe7a10e1e186e9e01556cde5f65437d074492de799f2db26005307b3c383a4c037b837d1f515050389901f35adf9402d94b60f589d60ea1aace38b27fa6526cde4a92397534fe368b7d7dd72acea43594446aaf9089b2ea575b99071b68e9b227f7debb3b7acecd02bd186aa38fe4a2320c065fc7e4a026fa564a35e21fb2900300df8765ad4e56253b0a3b612f80f8a7641fe10a6ec14ea9289897c3697c4da92aceb4aa47d56a4941931e3a31c499cd62b2b2c135a0c24f126f3809608b4c991b836e3d10accc4cb1d91562c7796324d961fdad55373116d91c6cebce54beb3c088e1b971eb25e1505221c9c5a5c0952f45115fb8842eca3f8d6404f9713dd6a869a4d745b2a47e711e14b0a2a9184ce6fb983fd5b823134afd2d070a202554ff58135a6960aa3f777207d362c84bf28882d3456982a26ff26dcf39547860c2ecb755ee602945dd9b6e49fd1c00aeb5e0763a36407b887e00e22392ca90e71f494e6b3f4c5c86b435af2561bc0a1140a849add64412749bb1f9e98ea8c991fe07639f1cf3d9234f30a45600782d8e376bf67e6ff12df585f50c86d1f064b0002b54f8fe4560c8141588b5b1b40b501f80977ed3299f576bc63ae220b2e7336596d4c2ad0b86e625d4aaae7c05f4a10a261ca14d095150d7986090899f4dda86f08aa0f130a510dbbf83e6431617e22113858c842d52251092fd99dbb795d82c66976ae70930eefc147426d7c906c584a091e686f735b1282eefa586f79caaef46fa856dea13744abc8c0d1a1517c951d707a9247181bf68aa116da4025d5f898bfa730c1e7f6597361387405e47577424186b84258327781fdbf392c601579175ec79568bbaa555108065f3f209d039784e49c8eda9ca6d366b4822032594fcd0678fc7f6dca4e3f167b693937949756a2e34373e1071b6ffb68d3d4511dc156b26ddb629301de020792584d5b3d3ea18140b9da6926acfa9c404b35aab524e687d098353bc545ff457440e57ae36b2b8d34e5d968cfbc30c6a7cefb17c9d9e19a59123f85726bd224c97dd1bbc5ddabc4c7ff1a51cfaa21f358b2d109b2e313d34635dd6c7975e1daa311b1960e24415e62354f6cda9192d47f42ead09d3bba3d2a632f989e82238185af2b052f4735a938ad071c4b789f66c8d648b8d8a4ac356e0002a418c075947db718b7bf82bff340e35dd629cfd956943324bfee5bde9aa7ca456f1a8f845f8585b414f332745117f36b7725e481f8f0e39a519d0c41eedc18317d66007c75aafee8853544cb0bcb3957be5ff922c7128d1cf7b402b511c49259a2e966fb058789b9973fe3e71fad7ff39f487dac88820c4f83382ee2a36044360646d6ea0ea5c86a55220ad2e4bf63d2b80f148470f7f1ae87d3500f570634b6853368db047c9c1b37475d2b4f6923debc16efdd5c49765a644235de617e22429fc2ff05164caaac74da89f869f3e7372794450771791d7b971f355ad3edbd34c69e5abe9051e7e458939b9598256bde1a657924f1e908820684757ca07230e8a13ff8278de1938276aa540c98cc64905c5e30755a3dd8d23143676c1c7776818024bbfd89bda8b92596cc753252655f40a22ab653ae12510c634f71b1cc9c9f079d1f0a9a9324a2eb010839d1c9a1928277d2c509f5aef58dc7b5cfb22e9f3e1a0495b7512b7933f51b7635822c66a383197a85ca167309e685561e9022a6d970d7cd0b06b071b91235a35b86c04125cbd4d13c5a68ff6884e92f6eb960e684d3030eaa2a8402c83c0dc93ad74b500c608ad6d50903127d8da7658d68940b1caadb20e816e8ef86309b99f163afe14d60ef825af73b4365a6718ac37a25d9f1aac25e04484ed092bac97fb2975e88758f381a257a2f74a836fec5d3862c6a235ce280534b8b9dbe31cba436cb88569b7c668abc781be8bbd0c3d2fd2f9708fb560cfeba5876a340c023ae2ae9b6f9c0cb0453940f443aecf15441f40da049d1bc645b345c52455d7b670034d4ebeee93e5198eab053773db1843ab8d1b73cb3c6b1a50b8815e9771ef672e1e36219977310674b86eb1ecc7f718fabc7b6d8bdc333e1b0b34f5c3ddf84ae6ce5fb92b5b69b5cfd0d7bb01be79aafbf94c317533ee3e8f4e176e7a2b16ee69587a638af57141e9fadecc8421d392a9aec6838e7bd88ddd186a651ca875b19fa36bbd3194fa6eff8a87f3f010a38bf680676e92c6dd7d96069a1b380cb9ef8a730ba39e5ef78cbeef6d8cfa3255b7d0088fa3a186fb4c99b022a44f0e2ee4852c1a5ad82bb89ad4b7ae6a593752310dcdd2889ce05a2c37a9097648a11b8727bc48a6a3ce7d00902a9eae7c28bd3c48ea1fb1dc789a9e09ac6758e58e13dc0f24094a1183bdc95b3104ea6c94b3a43bfafd9780c6341d2ca580590658ebfcaf35384406d7df2aa4be601a66e35b4c74596a641ac490fd3d05b5174f764253895fff84787f64de467bbac9e8f739958ab23c9cd67995e62c04252af2269200a56a6cba25d7a44f77b04f4ca9301230687d65a140622287cdf2604613308a55616ad2e43348eeee6205a7f3b186eaf892916c826a7c0873294075baef9b600759854fad794ff7e04957e373338a32cac4ece4566dfd6562aebc9cf5b782bb27e4903f37b1577fbe3c4e17d17153f986cb9f29e520d110a6343d770d11b9c03e3e2c69a9a8691e65ab8895b2faf12e84da04369765954e6b0ad67e58fdd357395fcd1c3b60bcf0e7f0ddf00fbb5b1952718bac37f9bdb02a20e094487319614b6df000a6a9d43290fb9888901a86c8a6ec74653bf0dff9e6b4287115f10f43bb109bf476257f742f556580a88e690dc9858d4fd1356a356c9eaf81f27c5770bbdcf923b0f083138a6f9b7b9425caffa9224c02953dd9a22b281bfb03202427db90b9f1edc58d9cfd4dcfc7803ec81da800dc6011789ddb013feecdb19058c291055a8570cc27d70665180945f348584ec83dd88b135803c3a94c793e6b97fc5088e90544210ab414120f8fd7f7580a98610f9de7369a9b8827969e0315b47e18e4c74b50e9b89e60ceef6b903e8045b4930397be8022fed4ee8e0754ad3061b99f611226a8720ecb334c2dc97a2aa200baaaf9b32042264225e9372b65ba9c7e14155899b325c4168313b9c915003622ec0a75506c8ce2f3df09fe1050c1e8c985179afc9964b02173b3193a2160287f9138772b7ddab8b28022832bdb10b7dc5b70bb22eeef34894b0be0be51787afa9836fd46c9b0ad1b0667959c574d1100e591d0b760816d58c841d5fdc0eaf87974e3b96dcc13ecbfaf2770ad19c86a5bc2e05ab1e07dd9c14b49c04b49602edb7200a315f02ac0659924bf690540f29ad201f735045a40b41a49a1c95663e96d4ba43a26cd39f0774b6cb348c05f44f1e8109b9a6c899dd16d553293cc9a0c30852fda1dfae0b5823538748d15552dd90664e8e4cf2855b6b5ab02b18ca18152ec5799910e5c3abe0230b8b62a61a6e80cb5e78cb253572b23e782b9682260c9801e2628865ae5dd88b8c3194d68079e4d814f1d02e5dca527658d88dbb42bd87b6c2220718067a78d115472f7cea0cdcc216e836543b198c69afd261f47219eab63af4d9e21c74a30158354cb36cb8f78e0564a39a682cbe705283920402c0013dbbcac03fff6879ac96e22c176d9c2ecff51af1dfd33338922e967c561a6e8625252fc402345a400c94e0a2fc5683341cdeb2eab1f54f8ad7f0e130bc335bd17ab09b077e6ddd6acf026b0f2a58b2bae9d9f887551511b871ecf3d8eb07b55bae2c2fcd43052737a9d0895f18923cc74c4f484c8e8ed0322665357f6f37f8b800432964b4f1d3cb595829096daa7ff334eb2b059f3a88aac6d89b7b246619ab54836871de0f1eb4ccbb70a5adfcdab87d1f4380cbc760017609dfc7fd6266e62b5645a8d0b1963412714dbbdd7103d47ca336efc0f437b27654d1a0d4f071b809f37cbc0913d3caa54e1ceb001fa700f6c4920101be9b3f3b150a53f34e5c10b2cfc16ed57065fd7aa8fa83a0e532088b432753e1af622232c8edb637f5102c81a7a5a31c12e9cb7da06efd3f744f06ddae90e8b1b050c8d1c197434e2314e066d13f07196b80ce74aacd9f40e45edb5182c9c1aaf5cce05bdab407ba558f51fd27ffc05c4b8002826568a57a57c8aa6a6c71c85bcfcf371feca0ec5720d47447f2c43c2bc165b226723c8dcfbf25b5cb7a6fcbc0a91445dc24dcc62067cde258f7bc7cb39822738fcef61bb448aae86aa2c48f28fc61b566eb6c8a2566ac02c0bb86b7d20047c19c489dbfc5d1f732bb9fc310134f74cfc890fe83972514db1f883daf4d6a66764f21d8fa5c3f2dd8df7dd8694bb94702d34baeefbd310a0f7e46097853702d480cad4e4b359e5f3b02f55a994edbe67c16d69c1aba10527f2c1f2b856bebd09e9db603db5c06aad2425a12653727dda8dd89bcd0e409b7a955f802aba752ca392c430c408ee9cec5efcbebda85487b240b6c36486b3dcf4ce0a7f6d33880532ee79d9084eb6fbe1ca5fa5799e1713698ed06ecb5ee6020c9468abea5a33596c6d0c8a94070cbd2aa8fedc900dc7f42b95a2335291b574db891b8af8bc5e8a87e330ea1b8f61d4d33f418a6b054cb81057bfb4b803da42e801f5092fcab4dd048d59bf0820a5a001ad223f6452054d529fdda0031f8568dfd0c3c3560c896d161c94520e548669ce38f180c91dc2cf801619bf033b9c138c7a7063c83934f19389fd99eafc42ace807628a4b1328d03c44e3e5126a445b6a0bc514911305101b5e3aa0223e1a2d7b0ff122fe885d644e1240365866336245fe1357f477228ac94902070245c0495048a07936d8cb4c3314251023f530995abe61d2deb390442f1bbf07b72d80cc68b044408de8d460f97fe2b028ed26a0e90b86395a462272c45bc9ab2ed262c7b3a09d8711e692d904c28585e468b146917f8917b9971815093627b0baea36462cb561dd6b34e960f99198c6dd2458de4de2d149b03af76e564b32bbed15c5e79f8a4effeaed649a5dcc07bbcc55eb0971b31b30698e92ff56f39f4b69d971fd0a9f6ebe1c2a73362c7a7f190587e14e7dd4dab9db3e71171286bae9f910b3747fb0bf6645bd54a9cf037beeaaf6ce3c330d4cadd12a486b864398c2ac4c41a6bc8511bdc7c846b7587dcf892ce3820d761e0c49efac231e17888e58bed96aa3564fb165ef3180b6a07a1b79d9a7942ed053839f0f94d1a8519bbc81710600f0c30211c3b9200420705c6f9cd5b1e6db9c99a80f1ca0252b8fa073be28d9700c53989aabda98268c53665950e873d09a31a8505f5259520be5b0e6f14165b31c14fd4693f264e74c936199653297d8b60578a49f0d52f25370252c70693a5e9831d50e1c60c1fa3273271d104551548bf9b8978b04c677351ad33e21f54f76a96b90518426a40b0cf9d30780a74316ebea3c5e2b1638e54d9bc74354f99d20b001a8224ade5749c1268804d9962429d02ba8e60ac311c8aad1ec7f46f7fbeb2e6a2334b8bc83861e5c5403e63cd8ab8dfeb31e4cd8e574232c4c49bc02024d07f941aee517adda15a2ae92eff456c644e84b77c4780bf4978f28db8386adfd8cd802295ecd417bde2281f7d28f7931dd0a36ab119eecb1ec2d1d6d99e6fbab3c182f6e491c37bbff911645c427d49fa7871e99b59e66e10c80b61891c88e981c3d36913238aa931f93107b7f1dea8608e346f1a46ced3afad44f149e4a942b4caa52267a2e941b28c35500158089f34047f4d5c60c53e5e89048bd1dffb0e2188690ab4a8095cc61ab0c778210f55b7512fee6b86723a0c351d65af44ba60f5415de37b45a2f4a02ec55d3116df18b2747cafe42bdf1b5bf7039b226eeea6bd899073ebe95bbce86bb63653b6c9987f73c1e86661000b7bfd56f3f0e94807ef5051c5370a0e367474c1acb4863613818c85f84e208512e54a9ad06ab048a4dedab49c19d5a395865591ca3016fe784fddf958124a39ce94ed7f3d7ee593d7b9d6b806f0f8a1eece9b49d0eeaeb466dbb0c820db74deaa47e48b192bbd661e10917935a6a52594840fec9ba15c6920028c1e2a8634c3fe5e41c87a97f92aa1696d703ae43555047337a41b033d4d2d89ff83e02f9764e76472f1e5d00a26d6e9c0ffc23779af102db95318e39c4cef53b8428db8e281346791ec7b698b97cdd725c5c9099638cc8906f67ef505124128e6929b2d2c5690e76cee9ec3c5b3aeb782dfc2cd29deb850b1215032404608a55e2fe5a82fc5af58467459ddef14bcbe579cbfdf03b5dce08669ddd5eb3c244638d0627a9d23971153b7f5915caa5e91f23bb4f9871ce31c114672c2b64bf3810fb1db69a6b275653bf55277f74a7ae7196c28b28497597fb06e464887c63b5de4c025d6473727e2547c7a5451bf484bc32242f1a7cc7678e78b79a5a912d7ded4513fcb62627e47b5a1cd727dd89382a892d626882c0d28bd31024b1db67ce73d1536199134ef73dbd263374faccb29966812f78e8a9425b050c9ad7b57da4283506b4b6556249d5554d6edb38f0eccfc8b2616f7857337cd0ed2f56bc04ab2daeee46867cd461c0c11b2407094814f2d37757935e3c0c75e3f6f54d26fd81977eb67b8cd321205f6f09be91efa3aad3f00913a896f8c6b84e1abf203502b4d4548215ede56abed560c5b80904af474ca3416fb8ac68693eafc7a763cd1c7e439288a1d83754a021b8f2548e6e61fddda557e819d0a97caa90894335df650fd7beee482d6888d247259cebbe1e1eac2a6e22c19bcaa004c682daf0e13e9d7003d78a5054441b04da85887e10782df943589c0f3725fb34e0340b2408a42896e96b4c06202d323fe2145670ba4710a31cc409c857f232c8678d74c76a25b53439092ac91571b5776a14f50af85a3f56c47b7539baa411df9e06981290836421a7e1edb0db96da38f23fd23260ecc5fc181171c874a18aeb75ca2f0a9c7a2a2f5f2604b08244fd8e736b3e592f53616fcbdbb8601a074168ffa9a221587259cf974f394249200eb30e77fdc9f38c5e9a9ed8898937771a1df41f87de2f421a914deacc1c9ffe44d74adc8d6d02844ec73ed13e9d24b93a869073a6e2867a50aa78c3cadd2def4503b2965cc19793c1006696160751db22d19678f5535e7c21cd69e5f0d24043cecbd92237983f8043969603de75bd15391c25c65f9193e9f01ac018db70dfab219ca35bdece8616003c4132422dc7f90b10abe49ecccd4808c3192ab02353824075b119004617e21aad776d1950393925c693e6eee43e7a40b2a5b89c6e24acb6b711ed3c7bde007ddccb0b74214ae35a443ce540feb73a9fd7528c040cb8b53e5940d24b19db6ff000e85874b9b1e305058826709dbd57a3a04bc7e75bd9f77da6448b1d32a0b5b24840182bdd866ea46cfbe272389e14092aff39dd7be2ddf7c20b34b689b10b4adf873ba6363eee5098f210f3389d7234b0f253f84734f7dbbd363d30f30e35f4c5211582d7d5bacf85e0479020ddaec85fcb9a67a81f1194bda5cc1eb0066b83e2ec31dff100681f42262ecb4f17f87ee86155ba0ef03402e976c2ad6f554b3bc4a0f1b0b3f538cc76753a5d09ea53e29a77d740f13a075366ddc5144af54744f7eb0930be448e1b9c5d06987d905cc19505b0d8870938dd536ad8ed188b420700d3db66aa6a038c021461d437490cd4eca99b7b23686c1f310e842bc106f5d2ebeb79c9f89053ef62aafae42f56f35321c0aa12ede63715005c759d9f23973793a4c3de017bfcbc7b7b3b581317a7816500287a3ac6d96d4098be5a92fb56becfd5b8217390ac62b9a7c9349cb4eeebee1d3e216e7dcc169d62d382edc5e3c7f915f65433b491a00c204603c12336de0f9672bc021fdd73f730b75940d2cb25cb295648e44bb77939009cdebdc70bf8df05f84e4dc05ce2f6038b9c84568ed5c066d858e2f192c3ff3bf69af6ab8c01321e7362135d40ebf6f32145a2045c4cee805bfa26422f09578ce6493070ace41757df0ce75b22f54cfb941dd03f764c5cbe9fdbb006cdf45aa03a6acb978429ba5ad084fbba61051fe3863ebdc385a82c889a0a50f86bf322d28f17edcc6439ce0f2cbf38585fc7c4af15b04badd7066e6f6bdb377ea4cef59a6c905837cd60ea3818f3e9aca03bb4f0ecad9242b434856e669dd9cf8da930ad1e0a6b231807e7f8d9468ece7969986ed64a8d9559c67e8e8f96b7f05aaf1bcb965b184636ac356ca8998ddaf8efe67f9a4d1d8bdc863b6c8102dca156ea01a6254bb885b602fbcad5d09f9220190268ba6ee9f525e0127d587da0d8141c23aa61fbfa1d2298c87b79f2558acbb252e3300a09b0cdac9f71cfaa25344d111b377726df73277cc770c0b10efe39b501e7e240b1f52bfa747eafd3d14b3efd347fd9286678aa97e8dabd23ad0ad065278fa3b2f8992c1de9e0dac7d7edb3df31d927f4e8ba0c059b2c3970c18508079029d67618fed0c875caa298de24946e997f1630985f5b948ede27021ae392ce1f280bdb68d632b37d4d5de937d87750479db3e0e6dcea30cfbe9a5020e4242ec8fb2edc15617e890640f3219735e09ec42dfd1af81d6d7e70e713805b04e3af862e0aee5f7f70a57e71b102a7bd7bb794449c94841083f1bb6344dd7480103ee0878d0547439853dd80a0f97f200eb1a08d0b44b8736140ddcb90adea91cefe362d7403c72fad9edebda3505c6c80cf02d00c8476f3c4f429c712d0fa6ad0369e2e3304450e4e2df10580c7648d961815238a3afe55beb2baa3c759d5baf6edb6b1bcfdee7af723ca3165a6d98b34d9119d900a708a5f6814d414daeeece584380647c1b9c8e72fa277764f16a19b31a3418a62deaad4388aa3d2cc344be2f984bd309ba01bbd6a950dc65d4051585eeba5c6560b70dcbd13db181fed16f90d235b13a7e5a002b29c64e8852e2441cdbd781035557b9acf57d2f1d1aebebc6286351a66f98f81778eeb3c313d5b12381cd5fed3d56c6345c04c7b09311c94fa63bac514455eb83383148a737ea95cbd24180e90b2bca1048d42fcdee734449d814146bb2c902bbe4d0ec6c9daea49a83e9a63688c23e3abb4fbea1d85f23b8c9a284c9e82dbee269391d743c1ee30bf7844e48795097b3f5b73b831a899ea2feebf8a9d37799f91a58a096ae7800ee85ad34cc9dce02bedd684d7b2c634575d8186fa99a314633ddbfb0f5f9c14280e33163e16ec4fb45ca15196b3648066cd0f8e537932b03c40ae4ea8cde0e2b1fb357fe028f9f65e9e6aad8edd65b0ff36e9beaef5ee761750c57386c8b959c0fb228d8790e7c173e30ffdd94241e73590219cc41b2a56a4eb7c5bc661cfde3571e8e62c45efefd9dd38e350a288991da80bfca2b9942a13243694193be496314e4211ad7eeba95a843b27d3e81339e02b6fdda89fe42761358834955c4b46223eb4910e77c82660f130ced576def767a700d520420f4843cccdc2f8aadd2028d892b3b1e305de14afe65386de607027b8ffad3281e6033b41a091f0d18e1946a30b3424fce820831cba31569e890bb6821702ffc5fcb095da414db1a4de76c146483aa4b6e54efbe84f9b98f683c82091cd3b49df38aff92a598dc237aaf735ae313594433bf59d4ccb05db031397ba9e281eba9247533ffdb4c130f294c3fb44c3859f81164cfec3dee702e4e5a8748269ff4f3a60f5f9de0cbec1677ad53484677fa86f508661931f76b0c6fa69e766adca045fb6ab57f7668ffafcac10f548713b30df2fe48428c664c9b5e6fd0da9933d2f040b079499339022265427622c9bc526c3e404539f9d301b5f1e1615c6f90968f0f013d50ef02636ed01e432f54dc241c4c92d85ca040f572969e0d330e1962ac36ad4e0a69ce7f75ed17feb09fc54732eca6c759bdcc11ca9efb6b880ff545c138cb227eddd83436da4d785c081067e4d1c7e1a83d38b496d1b4de1140176f2e63a75de2dbdb4717eb1f63b15b42d79fb8f117056f4b593defeb40852f49545b8cd22c2c5bf37cd26b953f753df43c25a44309c73b649a288c98249666e74753f77f342267947c0bbc34b9b8fac7809ead8ba3e7cd8bf0f77d50cc98a2d15bbd2d17c32ed6aad47ca5ba0c342c9435487744161754269fb3f37140c860086d432f12010165d953bbb913f81f2a77bc1645f4770b79daf66a5ca6dea3b50c11a6e70b1f80e0a42e88c758d16db4d28282a653151d6bde5ed0506073de6e3e90b3f320a4b4b0325ed97f0194786d7fac1b4e5f085e0953ab7a1b8434b44774475e724b87f75fc628f80927d2ecb8814934826950054a914a9b31c088ecae2a268959c4f57ef66dddd5bc047c1fff5ecaf5fe18e0a6acd55dbd840d09aca686bb47ef52e10d20d8e249a869ea14997aa7476906e56aba7aae8e05ae32eb59aafd339e72b39984827fd0e9be2a60b150d91f025be967458478946fe64df138bb8584b81304b234ccda631a2d80aa7032f5e97690d412016bef6c2313287b00e9434d2cd0f55da50e02c5a5b08a0f37c366ca5ba168aada767a6818b30c216f3fe31692161b1c2a180a71d4847e96b638515036550dc6b41a5964a6e79798eba72ce71c0e85a340c3c5fa43b1008f23081324ede03012ee082f0a5baa8ff0a73dbb7f0481f075f800073405db05dcf0cbaaeff60ffdbc72fcb6b7ee59eaf19bab67d0ccfc13c3bab79a7629d05eda64ec2c4fee7e0ddb357dab5046861901f65181c1bca327f5744b2a0311b344f9f4f5548959211cf763b283547b8ee0d191b4cab2391a4d2485f6c9c91ee76326d8db997223502f0ab41f0ccf4179253c26708786fc82b4ff13424a212a558275109a3d526fb763a64008c9b40d4e7fe45e193323ceb4a15841f517f0f6e18cc1cb4a228f55a08de630eba0a8b19239fd754e70610fc0f7f9dd0a1cb8080b92ddb866427ba4ba81a00c94a7a355998f2564a0a19844ba61e7cc7414eb48756e65d9cd6f852513a19079a5fc907c14895db153d7ab19a1940807f8c820aca255234d61f486e015b8edb5b6099d6c39d2b5baad519ea245d2d4ebf11afafa53cdc740b348b5d653b6350b6134ebd5b6d2910f29c2fac042768e186262a90e419429b567f83f71eec5e042188cedd2fa3b8a21b2b10a0357f5bbecd71c8bcf4f92629e677bfc7a4de0a420ad2a7b8dfa848e95c45095ab8580ca3d17128d4b0de3933cfc7b325f29cc44949bab70531d87040143493933ac759a66603239281e1086ee452738ef34cdd26422403606173bd71ff7c306fa90ce86df21d7f2388de825becf1ab69ff566337c02919f6071c2d6a9e0633ce2d7b78d4b47fbbb3dcc0942cfb77cadf2d8008622814bcafdcfd801ff060de6c5243fcbb41e8b4da38bd9e2d71ef244e75b621647e44ef86e2808197c83b4db2abfbec0551db9adbd3255b415e26396f4b80db4495c0baba07475d450b33c34d668ac5d7a354694cb22f62814a2ffafc975b6d23a35cd38ef54e29d4d6aff863982d8de95e4751a531e99bfa877791c5bd8ea34877c21fb567b8ae20dec21d8c8bea4ef7a1916eef10cc91e4ecfb6c80f965d79b24ed6c59529a14a0f08345a86debb16f78882aef2d68f6fac63b2672e915d3a92c8e2f69bc35b4a976a89ace5303497dbaf875edb803e32d828c7530d60eecaef68fd90d8907351251ed0b153fe73fb1c73d303a770a5b88173db8380ecec05c9a7f83de975982e8f22cf043b13e821611414bfc093426505a08941b50d3ce835e5af6351c04bf271687bb781674661482e29920e8f5f771311588024e5935f4c368df81da534edfbbdb5cb48f164ae250e91b1d884a2209fe34122442eb959438e347c09aaaa6435a027e203675e64088274355491dfd8d11584867907af171e0f989f139743fe1cacc87b2b3558ab5f0c38fc2458dba0ae921ac3aa8c4f03a6d5fdd5801c3390b40f006fa3efe53879c5e14de3bd7d76fdea412d4edfc3f43974a30d5923cc50e1d865158948e78a26467a52019da37273c40aa274a6851daeb8a8a529bf32b1a01262510a2444666deb4eb63be87d52dd128b50b9ae504dff1127e0255d6adacd0a1fbb025572f04d5a7fe72e301329d30cfb39f0f81abc862e743ee88c69d1ba77970d298a7c658ce6c93a47de41fa051e969441cbab07a5934bf46c643cbef34ec7f9a5fd6f87c28c7ef0134da7ebad85e98854942adffc22f24a11a8f7c7bedfb04403d39b6efd94a103a460073783a35cbbcf780ded71923e84ebd43018f29d70d646940b387fcd348b6c540529cf886ebf296845d513a6309e6636b67b85985fa668da0bbc9fc9f8999e5274d639e3c6f750d7fbe0c1f2d768c47841e45d57881f8cf319ba07a48ae6bc918697b8169e79a5d1018b3558497242eb61753ab65833135daac7bca2584a9344ff67fc926939b934ba94375e0391e22324753b198e8f81d67dc6fdccb65962a3106670b2a633b2b8e7d36b509bceba69586db4921335e9b7222269ca8697cd1cb7717c30aa52b7a9706b1c8840808226a7528380e206d89b230e7f0ca6df2a9971552bdb21110d923dd721acb15b1a2f372dc201578d5955071051ed19d6212142d190cdb2f6fb2861e02755bc72873d64f1a1bc37663a3b069c3287ff1507823e2bd92419c9980eaf0412d292db215c7f1df8c52342ec0d17883702d0fc8e90df28b32c0acbb1233c0712ac13541cd91b2e8a8631cedf8f0f808a4864b2c0a9305a4f86f1d911a350bd1bd94703202dbd369aa3c6f15998cd4e4f0274ccf1f191c963f31951bffe22b0b5e274410a3e1cd0515beceeed68ed30d35d3b71aee3138056b74bd6e5e96ed0d923258f346f2e5db2d056cac21dc03d5a4c13512b7d96f8e76822105dfecc15254b7b0a4ecd17f0fc5244f4dbdc9545ad477287e3e57c03afd37b1f23096f5d3ee7261309ff8f58488ee2deba30e338a69aa878d21f3088fb1ae527d91a00d133cc0749ee1188f0ded5a14e765f8f9b0dea51f45afa6f4213e68916cb56e5f61af82307194dd5273545e6bea28f68ab48ec8fc269a211d81fb90a15d807bd89648454956d5241f5792f2eef7143d8cc5ab2278af53ab46df75e667d1a75921d3b515d4d0ba09a0a632ed8a1c5f223cb06a7ac01291cec5c44ad9648ac51dcc888a2c839139cae8f6809df9cfbd804a9e1bfaabb9015c7c4133535f290b4b91daa25925e72e8c3299d908caeaef0a4b6fa9c429bd19eb837fc61b3bf6c9fb8de9f81152756b18dca9e7ee7d8203753e3c5b9edeb179901755c347b981a9e101a3db6320ca66ca6a02d70309750b81dbc2143bd013d54d13e067966dc727f4ca044d503053bd9842975a1d325120e9d249acfbec05fff081d97a9203a44e23bab46ba40ecd05b01135057c47d13a8ec8e84bd201b55d3f725e5325923d23404a5d930b9922c04c1cd31dfacb451deafeb0a799c4f81e2a47af4945164f875e19712b8b39c76265617b3eefcbdc5154fa58f7c411456da834e59ee6a9b1c8463084b30e8ce58d0a6268ca59e1680e7aeca8d9487017a242cfdf43a6ee00bc2943a0b963fce0c7f21f3d28b20c5a9478988d821f48cf8bdc2bc4a24b90910435b5f5b09a2156e9c9ceabf8ea10bff55b4e5423d7e99957195ab83415df0ff92ddab82a8ccf2d07697460f795b71186d701c4e2bb694cd66eb0d0fd966030386c9b773aa4b7a959ecc2dbb1f627c323e86b160c3380a722d836d9956862dae5429805f076b7a23421d6771ea86f9e00af257dfe9276e71c2d66f304d5edb6cbfad97c1717116263a3060b332fc3cf26b8393ec35858ff4c1bc4c0681e43a3eea3eb8b36b5b21d1ae2adab21477a8b4b11c8073f888f2ff677d816874f9b422028db4a52639f34370c32e924df19802440e200e9448bd51f87001c50352eac8a10b1e7048cb813a1ec9086e0664cb0da006c670afeddc2264091b6094086b9b9fd32e6d32aa0646a42273203a1b75dab1581ea2fa86e6f7b4bac9761d3e46636c039c9c263f46eb1ac97146711624d59725ffc9163c70bdac2692a4c92197e65b2afc0657df24fd80f374067a1f84e62f12a2f0d4fd49d6b8ba2b00e9b562a90a0b3c4afcb87d639de27707d472770e2cdbec236bcc6890867be9791e2c6247b960ab9068173affe2742036fcdf13aa8102f3fea41d667a203283011fdd95e9a8f2d520b17c9ee7e76a6021eb9e051485a9bc44d0e552f27e4d88b4784f21abfbab71ed7596ca03e253e9b78cd5295a4fbb64bb2c64d4c2b17f40145753fb8e39393be623e6765cc002e669a9872637a636e94f0612c9e9c5e901f2a7a1715d7ec3e8b2bfa2ab9466d1b8cdcd475242ab8414a5a284357cfd4392e96df4f31a55f2b8c25c3c62aeaba702d07ff4dcb79b3078476f9bdb02f5ef9a3270e64e868af9cd547482dc4db8eb97e8e8cc1688ec13dea2a69bf59212fe80ee1a1c45e28f131c77ba4d531d4fa567a72d3e6c7b334dadec6d71bd546f88daad82ea40a10204321e7af1f96c08aac3bb0aa088f023331ae44be083baacd33c8d72b27e3e9921f521f72cda724716fdb377aa6808a8fc54a68e4e5b8a3701ff435bc39f24bd6adcbbe015e5b7fe28c8ce1871522f5ca01a8760021267c21cbf13855b267f7d4606aa0ff484f00fc5418be835950a911c1a1ab7a5e38936685972f927fe7010723bce0c617d7d41ebacab813678a4911dcfb788209860d8d719bda2b4f14b0f9fac69104489c46c1ba0ae832bc9ecfb3c19ad85ad214799977abfdc8f4828e6bbf369a1c95b4f0413cbacda2ac98346160cd1db5ec90bfb5e9aacf68c913495df3e4a09841c5cf9bed50263e943219ff0c520c07d58127bb979a57442ba85dbdb503213fd21ab273f97813e61c51e1e88cdb2c9bf53b1e7121d42d589fbfa784718104a83e48eea966c08eb29367c3c4646c081e452193c7c9b19c0c26a250830f69a8ffa70b629094c1be816e343594cd1bdce92efd09307a098756606e4c5b1a5d2a1e2061cd7f49e579da7f955c01ce7bb84b06c072564e1c1ac36e71d0c642c22e89f716b27122aa907845bf40d7e364cb31d0836606dc75ae9b8ec230663bea367ef169505b8fc921dd753ed31dd6a63c7fda82a95da2d23bd654d81a9f2d45c459efc6f0da29028f72e06670a38b520f69fad2b2dfd9c80453ddc07e2b844b060028c05d798357318ae51f9788f1842739976f4ccc8b8135a42871ebc203d7b4d4a463bf41c41170c244228bc3d0025da104e3ac5bb0d93651725aedb52f61f22fbcbbbe744fa88b27194d6051a2abc93540d433550ca81bdf0b6d614758b05540f3ce1bce184535d7b5aca474b0fd5b42b008a1c1cc9ad451c8ea8c1e23aaba184650c24101960ca24cbdbe0bbc685d1ebec7813aac6290d080d9f7f22413c0615969778c33d526be594525b654cbc7ea50a89e9c531a3929a9d1b809a281d5628476ced7d700bfc59d2186ed93c559b7d999dd6e65829b82601d1a9821d5895c14ad1aa00fc0fae8473fefb5fe8b8379aea39faa80790136c8f0a67b6d7183ddeba6bbd487f90cfc71b2a0315d7c484f63a67ceb16dadec5790f786c9f0b8ab60ca8e54bf5bfc2f1810c8169285cf2f3af246de17d519d97df9a9b13c209047bae3044c84bf62ef2d2fb55bff8f3285b278d18659a023f4210c6fb25433d4360182204a42b8f814e72aa96ce8ecd8ca7ffa58eb3661d3483965b63e27385654db3b504729d1be2ed6c22d7b5572503479fb0533602f14cc989934b03eca2ec9e52148418d309ee5e6acc71aa34ebc084a119ecef13976f3de013e5379829f1c611878051f2f2dc671a759bd7b8cb17e317366014f9432b626193b0f6cce1589ca60ab24c1567417ffdc120f8b2e28c3b568293dd04f33a258a0344c004cc5a2130096aff09ce874ac81eccacb2103acc2bcabcaa7d8b34cd4ee2b6a32643616837279814cf49103e0ea6f47bf85cb2dbdc606cf8377abd23921b9ffb9a222645b5242cd2cc8cd86e6d452b08d86ff140f6105ccf9693b9c9ae76da5d76479b6285daa75ce03b5c6d71e3777ba99d06c3f52b800f1433ad653d08be88b2108f610f572cc6945c5d96496d97df2f3cc7df6fc7b376ad2edc0f7afec0732eb99be868fbc770c2987b9d70c68775687dcba0e285055ee16bdffc76e5439f9d6b1adfa9fefd8bbb6a5541cd8c35f5fdcf565be4c0cebb0f4c9f968297b5ee82e3bf10c691ee99d1b42f71cf8faebe755d967e2dbad31ee8ca7ce08f37eef1f8f985c7c6e64d956342bfa730305d53ab0be61a5859c5ec94f7fe7674d2a3866d9cc30cc1ba71cac8bd0197994a0b77ce08e395cd07beee83e99aa75bd9284be421a78d42c134fe8bb2789c57d40698424c029681f7f81f2ea1258550284865ea60531d0e829028d671b9ddce5584c6d024d0d15993c76c587fc4b20b5295477e2917a5a907e79b04a67f5108b12cc4b7349dfd5901d7f544348bd5eeaa6ff7e296b4c972ae42e227876bfe441e5158acb4094ad85644f4ab90007313083436ddc3dc340de8548cde3a298446d594a963c66bf7bf213d1f7a10db30a8677266eebdaf8f5f51220ac5f3a05c8e69638a98d69a88a1a610433c9b7404437b629dad5ca3530b8cca6e80a43aeb92130473335d1ec49d6ea569a126a9688c044d19ccc43ba5ec8d254e102361ffe7b3c2128e0a81c8204a891cb8d9ea4abebc96dba6ddc5daefd1957b9396a9d74d015bcff373dd48064d823f950b038be60528733d9d8eec1681f1e30be7d9c807b7e42ed64fb8b9f3bf9b65d9872383a71118eabdd1141633e40574398ce1f4786baa948e8bb1fc8bef2bb3dc0d7298080f0d30a2849ec7b07c7e67dd52bb51c9c83c5e41c7213983c980228ef0b8164baeb22dcf8220fb83b8a0dc1105912ce9f5f8a6d3e5a12d45114ee5e2692d8ae9d9a1587b391142ba84a34553c8c2fe831982a3d8c79090f7781a843e2b5e1f24b5f98c2ec17f3305b98f07f725058e53213340f02b3a248cf49e717e43ee3188b71308691cce4ab7dcd48b5220d53386fc5cf5810accff6c6b9c7964d2b234f5940a207220c79ae6043b8cb66f7f35488b8343279cd23d6e6de51bd5d89e30cfef37dba0a3fb0318d2797e90315508e6711f81426c2938cc91d2441094cb6613a131364ae7864abbed4fe95413ad1cd329742a3747c28062a63d96b7b3be03c580c6ed029159d6b1cc38a046071fa88168ffb88a77d6cbe09e81339db878eb05f494543d25c46441e731e7588a3e3835e2470af89f10e615120a592c1e5e34e98579269adfbc4da6c4590292fd6b90a4779cb25c94612c8600a620df1298c0becaca5d946e1485c4a33a54b71c6a7bab1165a020b554a31a8d1920c743a882f4006865788c2f786f8bd2ad012343bf8a0adaf12f02a156ec056186b0e25987f48210567490640c0c0a149432aa5016a41dc6b03e490af12c8c0ffde7d92056c1468866229a4457660d7670ba36c17a7bfc720934ddac71ee88b10d48963cf5d8a15651d7c12f2a626065812733aa1bf4cb509d2c548e30d15348b4ec7cb6e111e0bacb05ffaacb298e687fae92cd42c902d10d13b4308cea7f57f2a0b4b559bf8c54c40cf6ff1c3724f4af35904759e27392724b6c4571e2a7ca226e25d72dfad0b5f48f0abde973584a8111bfe670e3c2dd7c475ee534456672f60ae31bc27d9c7573b54d0a8e24a9063215586dd3efe81faaca6edaab693ef01817c5b8ca4e5310d507d1855fce901b1974c01f6f838b5377d952bc2b66b74062c3373028e6bf616ab18f097caa974702d9d6c42d31f7eef341edec7948b06a256b8f3ce669dfc350ec076893504205ef560ec899d779b8fc39f53abf3cbd99197d73fab4a727071815c0884c0bb923523dc0c00bc062685a15ac1666bb896112507c62e53bfe86a84789150e017639671a98784e1f9d593b3127eda41ad08660edb088ef1d5616601d4172c0647a914411a793f92b912ca6ccd10df4cc4de4a7a5797163e37180821e2ceb28d07a2fa2db8a96504c66fa99d7f67adfd30e562e6e34f1f54b713dc1d7326e06ed3af038b8a9e4233eb3260986d04702caa0dd6c1f1ebfcd1dc944667675d66b8968e4a70ae80f9abc6c08c80b93f81df7b337e47f00a6b1ca410283eee2a3c85a64cb9235404268e1d935bf470e27e186cde51d8f29421bac1b4a07ca12787195d9306bdfb6a87ca7fde19a07b8bcd36621d24176833162d7c1cb356aa8726b608366bf389556da520e392198a3ade7b7ed20f7f9de805220fed629418d0e28afd508d3a3fe719db3f9fa4def92f2b266348c2ee3bc0a9ad27032b879b754dbd8a10798748e83a7161cd33d5ce15729318e8573857c1928d05543122440466eba71931ea404a457ac546571211f33eb9e46d8ff1978f2f40c10512707ffbe0080172fb2e3c4e615c794ce66ba584a173558d440fa523d416ef35be4018ab1007a0f37e38f44e94a1bec0f2e478424c0feff7a67a147422cac4102bac9aa7d744582d4be01cf1f1f642f1b13652f1b4acafdca922ff319db32c3a98fe1b0ae7d64fce4b30981de97b096d965b8d86530e5a4145cca9236b4827c4b820411728c1b63f2514fada617421844533a42eaf45784b740741dc301ce3117732c1a945b4ac849d662b8516fe0f8e83e69a6d3b5e76338987c07879e555bc16e9fa58bba262da0a676d3f773a71673a090d1fc1604e681a49f41b34b019240d2ca256b0a69aa08fd8c9c6f607e3a8058f8898be5bedc9f1e55e9e3e0704d04646f0426c8f8e719c40ac919cdd8222c848a1512e199f7fb7198ac55b0429a82f74786c9687d7d7a19eec53e97051b3fa8e3736ed700420214c5e6e1e4d00e617ef3acb8905ff8f4702d367870393bfa7651ce01fbf3ffae767bfa052166fdd016bd8fdb751b22ff0d9cb944159f0016cb4949e9aed08b071313f5de29d98195b4a46f6ecd47355787d7605a8d116e356c78b48e44c9435d2c65919a1e9769186fc0ea83d0a49b64ef33752312658a390a103761b62f532561973b23faf3e9f2f62c11814cf4c5b467ed84e94d848e41c09004dc73e08dc02acf306f531a1afcf93dd4de9d61264306a8077993e8540e831e6f70536bff4fae4b56346ba824362c8ace873acc3a338f27ff57034fbf433349b8200bda9647e2bba6faddbacd03bdb7b7938d0923748f51ecb41379c1f1203c3b578e043a8404ff875e5b6923a2a5f2a982ff6c4855e15fa4b9f50558a7260d54da6da2d879d6abcc94eda4721b60a4bd3d84895ef014193010108f17e426582ad2cfc64a1f772c238163ccda9a5660f73a82257772914782e128b705f241d53ec58dec59515f8b095462df13753319566683d0dd46deba726f791e5bed22bb3d4b1060bf8405dc060d2d8681b5132c442b475042d9a9d82536e7430857ee08e440351ac079039446d36ae5836db7967fc44ecaecd6235c99a851457c660fe2d78ff3ff39ebe9801f6b6f022d9191575d23dd4f42e5c01cd3cca6603fa23b29d0e4dcfb8bd80da831850a61f75582b1cb3b5849ea5e95d368d0b70670cdafa6849621027ae508161d41704348cb02bf6be46177cf9181779badf21cb224b60867ed3a35dfb7e31cf1d5ad6d899084c5962a50fbb1e597195c2fc21d8ac307fa7589f98f0d6be28f4ced856249e2d07d197aa1bf88ea53f0db0c07fbb5dc3a991ee06e866b59a98c561e9a944256e32e177ca8fc7956a687233a5e0a5a15f06c22d84df97a9c64ec450806de69dedbb5d4f1e1b611817b9754f97de5b862bc1625e1e50dc31a9d328194d3319121d00dc7e025c97217b83f5f35374bcd04cad5b830b46c551f922782381beb5698cb834c33601c1c038a5cc67a5820d03a4e07243fb8286a1df33a3cfe8f4e489e8e5d6da82372ced1ece81d1842c17fac80449e4cc150b3e6bbf1d7f307a0145048256ab59b263a1f40d2541a1be963961e8119ad6dc5b939725ca310125ad2e49652a6945240075808950745f5a3ce441aeec1023ea851c50e4c941982cc00c0b86285953054d635ba01064cd4a8cca0031a49ba8869378ade18c3e8062775ab6b74c34f0e8da69d74cc6660654a1569246943461823fc4007bad5352a1aa27ba2a9ba46454cb81f23abba464537a06905408c94120ea960c7f486d22f3754e1b65031a3d4a8c6c666540353695da35a1bf5a310064edd46fdbceea7ce23a48b0bbc6849e3448a9aac87164a475814c10619352f49ac01c5fd77e6dd4dbffa85b41355b5d793b2c14b9a9a9accd0c18d2e96eacaa06e5117472685abdaa44b356940e911fd684e7badf6f8dba05feb190d0ec65a70c12b3f0b5bf55f192ca9dfacb0d9a8b04829880a5fd53c2d8310c28ef9c36721b894e4a454b9785f3eff776125610af1eee0ec9647d3c0adf3185d81545d706a848598ca9d4d0fcefe569c0770dd8eb53d987f79023f5028fd5cd78667b05b3173336dcf01a00485f5a36d450320cdd7bd05ede66eeece97b8d5e1fdc1da1efdbbe28e55fb797f6ced21103a0717fec2ddddddf6ae78b03df665a85b77150000e4e0f0d8d1ea80830d6e74e4b0a1ac9a958a4ba1e62623f4de1efb54a1f80be9dd6eb7c7ac9ea05f9f033114beb38e0fb9bb43e8eed0a13b7408dddd1d769d06377fa0fd5cb74308a3d7edbe18ea6e8f6577afd927b85d9e5d16308bd09ccd05cc70696f5b4a295bfe5c9ed4cbeeebad24b0aa7cce8542cd08c8c0b93ed83795a950dcee6ba550cfdd175f4ad752d67a7cd97124813bd85e6bbb166055a155f9c99c41bfafbfd331307452aa9a2a1ae4eeee44a1bbbfca238411b6936108217fc385104208650464804c3a5075930321eb1801557fe6aebbabfb7352baf2815c376fc31a083b1596a9f29157f73b46f831baf63de0e565d8c18fddac70ab2180eb2fa882d747b195524a9b22fe4bd0728c327a4b19a58c3146c9857c14e0c2b959892acf0a22fef2385d6e70ce08510dbf9010ce861326a5742a230a9b16ea52ca0dc3356deb9d67f5103606911685c90e76ab4d22e23bb7a4896ab886af7c9068cb5f1e638c31f2ca073eed85b0bba9c9c1573e12607e2a73020d4d8912b9c4a9825ca66f1bb4a1ac9affbcd5aa762adc0d88090c82ffdcb890d16382b4a1ac9eeee91ef91c98ea9f2a61032e14daf322a824947faa94aa2f975595a43270b9308ba793186534d35576ad1d1315578874c230a337016152ea7c49a1b66d8b01aaa09343548331e00874946a0b53a8b2d5aa526e94528a2117ce8550cc68f31f4cc77f3d39fedbdaf6b46224ace7ffc1d8102f543a5c395cad1e1236e681f51c85d5aa96db9424e23c29a0d031183cb03115ac8dabee2b3ecbe5ed2b3e7569a9f16b5c2a98ef9f82f3f4ec2b2e53f52c9c883250c1aa590494405f4e158d9389ebcd8a1967909538f83152851fd76ae0f390f3b4e6c367a62e2a2a547dd57a523f0fea0e1eb95c100421ac1f3b7110d394345b986a9c452236b94158e454bf4a6d70ce13f849b6ea10b0afc800115c1ea58c52c628b78e53a21bc9cdd7d1707e7f9622698b2e7d3a6a7a4f8d7189c6889a52e572ed4bbeaa7c180c01256c72939f925b4f8e275a78e8d93ace3a4a262415e912c2eea30b46179abd83cdcc9199996337a38c472b9b70a959b352a120ac06b682a93a2ea553274b58276ca3b6308556cbb53b672b4b37f5021086e7452961ab424713f4e54008652092a18a0c532aec985fbad6fbedb147db464f3d032a4440852fea5a1efa3d104258c45ffe3db1a7d6742b1597da501d0c455a4e95560942a992b2db5c5be3caa71fc23d0a9a49a66a5513cdd0188fa46a9ee33897944519d72ace05659cab3897cb38a8e25c2de3a48a73b16ce552c9f9427a3e7c1efc1f55801b1487045608e2d32f763823d03a3fb5d5b0c04ff1e9f6f0df1ae34902acf1a52fc043503f8effb20b017738b0c6872e38e76f1d69d2e32eafb8582ea68a9a119965943e65744914a78a4a3806d21b8efcb1638c1c9b99c639593e7f8c11c208a1e46e32b8e9518c8a889571a636948c545649c5c8db446da95f58650ca8b93d593893640cb695914bcdd80e162a2ec26029d700d68b4fc4799cce029c9001f83205cc82aedb31e924caad898cd0779065c418e39c93d649dd0c0a92e4d019396466755061c20d24f9d479e6cb18639cfb928f72ad84616e326e314ab9c98643860153e177d236f99018150d73d349f5f35af7bea4fa4f85bf2c6c353aed011b2455d87dad820f715063277f7448413faf0d3931858721d90495867ed498801a0bb0527d1d6cc21abfe70512010641cb0afe6220bc8441f06fd1ee6bb16a5a2d556a72a9a98fbf82f3cce525df6ae2253c27fff00ffff08f910c53c0d47391eb5c1ca8d0d5818fa86ea7179f8d573e92dbb685dd119742492e8ef055fe06b7ed85e8677646156c8c160c85b9af18e5739473ce86354c8afad80a03e30d8c01b60aa0c5125ab48c40399baa152ce93361facca43e6f842afc7eb24b67caa02afadd386d294691e2b416aa9fd3a68a9ee9a52835c03372e669247da0c6872ae4b836c8d3ca21d39a93521d4c28ff078bb0a9a2393a5a7878925325fb93941c6394720bf35ba8635de377948e6d962c4f6afc1e6aa51ed33c1c0cf5948e6d155f24d5d8b41affeba31a3f280c1b9555c5174bf5eb303536518d8f9a5bd33af6755337756c8bc444a9f1fb4cfc5ed2314fa2c65d8d207128a2ca8e81f8a73d26edc5f7800cdacffef34df87bee46342ca9ee6e449b557777772037a211b93b12d559365d1d94ed3fc77f3c06fcdc0d1a947b7e661afa31d26402ba46578ed4d4a77efe2ca5e25cab09510bdb013827d4e040513dcb626019f735bfb22c48bcd456cd392b6d89a13adddd73ccd4de0fb4e1581ece62db697fa0d918ab2a98e569a730959f0328e8c74b959f973a36a663dbb32f5156fa544afee2a5c8b592f37018fbe29f41e5af41e59f8ca6722bf152e5af9b78a9997636cf4b49f9754e6eaae6ec6c5ceb7a978f7c5e3d003e2abe74a51eca6da63e76ea63aac3f48b63d74a4cad347dc06a2b394fcdcfeee3f6994486f84bc814533381487bfcdb9ceddcc4476a55d092b27811aa9caba0a87eebd93d67cfee0925945042d8b05df0a7eb46ae2ae0b255c72c28e8d74a4b20a1c1a8a2be953a967afe0e33e7c775cea8ea54e8173fbb6c96b15465dd2c3b38d1b4015e2ad204f55505a08c97c8302d4551bf75fa40a3d01e2ff94faa6fa28029034c5d37ea82212383234346928c8efcd45da36e1119462ac7ea0c48c1993827c4d8e1f8ca265c99105f7631e04099b1a3ab0aacace52f9682f34a5547860345fecae28e12ba020cd3e56d2e98e743fd680dd2ddf5f40819e2af5a0e5d6a9bb0db114942c155440c55527264a6427bfcdda5b04c95ebfe04837ac331e26fadcb185a8cfc4ce3253f1d5b1d354f073566d2b12dfa0289857ebea81f0fa98abe60a37e5c8581b278523f7e52fd23b7eb0266fc3490f81b6325ebf96b1db03f74981d03f6e5cf8294cc3b28837e8bc44c48b0493e033907b93f0b0d6d11185f547faed2315a5d0699cbbec94c639a3fffe448e2639a57a6319024cc83faf91ff3c03f548f349b0501d5e99838d53f40e25930688e1f98c6b315bcbf0518e7129a3f710aa23a7750c540d6793542571638e967cc9831622011bf1459a18b266eadc16bd43ca4d096c8d769df11258ae7708712187914112516c9e3485353935c615ba16985a626af69eba674b5ac05254ac7be451a1ab23fe0c378a27240a55a4b5c8adb81c44fc79acca8202472aa2eaad50e272ba51a1e46eeaa1fbf01f29c20d711aa61b5b460a50082225b4609891661827edba4548b7d53081d5264ad50b2e1118424aafe92c846b59f27898638cfd64d7f4929e444cad13a43bf6d92b48e7dab2497b48e8cd2f2497555111460fefa64a879bf9ae0601401af801cbc2307eed615ed3c907088068c4944b9c569e3810353c7be1faa313f18087cff20dc0c023fb7cd1d62e8b7b5f8462305b135263d4baac38ed4a9824d04d05740f5ff52d551bf3d881eb68e876210f88336f061ca942970001199c23cd922085903f5b9a369fd8d8e41271de6c1a4c9a95beec1bc2905fdb6c60f2154810acb3b8ffcf8d0d5c340bab359107454ffef47f56d39a1e44c3c86e47b426ab2dbe86a598b284cf3cc7e29750cbe4733d5e398eadb3473708251a11f55b5b85b9b53bbdb4a93cc59de95eed1a3477787707f85af3ceb664df00f2fe119d3daeb3e9a412bd3bffc1000880a2d888a910faa70ca220d012851aeae11511969c0a881161f184151758d88b83c658101ddea1a1151b175521a113d5165fcd2792560e1f4c11a444cec4074844e91174ee4115286e841cc10357cd084d6b4e125611ac01ad4a6ae91105c64110249889a17b33151c628c374892306341c4db942f404090e397c71e3092b677071449416cc6021c5142d671ca531a24809336d08c5606806338a3882a6861116458051c5154149c4004306334043c9882a44d030394c71c49121acc03104cd89a409418494524a2d5e5ca18496c4bb682165498c310e2017a20bd50d64803aa86b5484c4d4a10c67444a297148396941194b288931c69844860d150d4a92ca78c18664b7a851e1dcbf0533aaf15039a86b44c51bb30aace5a5891f201b49b64c2186cfe0c9c81535d4fa8b95307ab831e2b2c4aaae111721aa4d5d232e4b906400032320d2780222065c04712587165b64149a1971e5c886315ca838103d6c5dc00401e5c3d4cfabbe43258dfa6dada67e7b6444454b75245ad7880a95baa3ae1195203351c628a708b3c50b13935313263f48a0cb1723c82c3511070cdc878a450a307250e2055d8e8014e004192649ac34e1041927324a1999f0a14b1a1f763073c69bccb82990cc265ad0021a9a8809620def41c90a08e888686b19a58c4acc7043fd7e0056cce0e86a3073d2028ad02ec15a6218b942831b5dccc438220d104f8e90524a29ab40954112a5155e7cd9b474e1c60d36504871c61357c8b8228d334982582801d3e42787ada7873daa9ef43344fd56a9fa86f16fc176a91ae970a6ceba463a98a9dfc3b6a7273f7c2932230b124662b4c047481a02083096829af080040d888e78a2e58d1f663bc0ad6594321220093aeb1a51716600409cf1411015640890058d758da80843366b7a9da2304735d6359acdeaf7b02a4194a01de18230604ca9f2a3c35a41002aae240943082b44b420070d6cb142c397245484e9c171e0200e346e38a20da119b3048ba635c020628833905c5162048b314bba24a991c64b928e882c5c5cf1e5e8070b122ab0284152a6ca143408410bb2258aa525904c510335fc06267cb2d002c40d6284f9e1c18625ac30924495274e6af07054831f89c2680c9633a21891460b23324cb10512a7a01a86e0f0c1698882c588500e4b4155a6f80c54d2a4892f4032c68c0c2268305380921b8688b862a60d303e9b411b36a831449113274fdc83083ea801058a1627946ce938e0a85f8b852c46783143064d3c405912e587298a623026a94abfb1658635d6480b531b3000d435d2b2a5a6ea1a6909403e90470a8e7f7ca6b4f5535feec0144eef9942a4b949948b9c6853ca0e5e5839fc63b6c1a5c23666a8f071563e90461eca1cd18419386cb1841435a49492074a890d2736822afc1d2b1f489178992df8e5ecd44f2776a64c95df5a63a8caff35ce9c89a2caef60e523bda4d96c5643123a4801c2090d386c188ac2440942082107aa2d760b38a1a8f2691a30a8f25b6a20a9f25f0d3135f0a2cadfc0938106228ad8028a2c3f715cc1040e4c744008e14d96fd7266d3952a9fb66a8084067154f93abe84a42cce2063e589234796e0210a29a58c9f63e5136b3480011a6d54f836052043bf0945950fe5d3958ffc99cd6648600e47a858d0013902006254bf2055ee9107669498d17206922c9e9cd1c419334083893266aafc9a958fecf929c32a03a642f8ab950f8441521ef999a1a6caef09414a292584aa950f841deba08c953877ad600289890b2bb86cc9a204922e5a2c2edefe20a3c2f905e1a0099f42f83d21400821ece8a45cfd6eaad4a972c74795bf5f90faedd115f94bc401aafc49afa8f25bf2bf0ca52adff3a1ca87317151e5f7045165d10cc2a8f287746c8bcc30a2ca9f2b1f99a4e408b79591a4c29721d4a004c50f567818c20d1752e203a7aa0ea8f027193242153ea4dfe33c23e862072e4f4d46ca9c71286c70adf672709cd0afd57a32385408bf2055225158c7e4fbe858aacaefe9587c299fc8fee0aa54e54f0ac654d1f65806c970927dd0c3efa4f4a69533e516b74d0926be13ce2e42fedab8569ac8b6eda6959404e917deb62c847cff9bdb5634a64cdd24049266ad1a07bd8103cd86460068688eba457094d104cda95b04c7962ce020aa700c79f15261dda237c4e8702d24b4bfb777979bb723ab5a4868178d71a6eea85b34e607aa5a4828d7ef59babce630823260797ac85ff0217c988f9efdb17d4d4b854d54e17f3beae781e99812aa6d7a4773f754b5ab6b67b13de0f790f3b4177ec1875f27d5ae420ccaafafbb8049ed0427fc9de6596f8f2653edff7c880005c78447753329dbe39c30573071a692071f063fe5a2fe828f72b5fc05e1e7f96c90722004f51fd8d30c7c13fc611703f5d7b6dadb9cf616feca881491ae8f2e8f797b84f86bb9fbe8ee0f696f9bbcbd8630a847c1d9d2d4f1425aa956abad7244b9fd7c6f96fa9901418e6bcec33eec8bbf88ca4a547ec8354682403520d8a9ba395110d6401684dbdb50564dea552ed4731b8428140aa5a3e3a37ef1ac3a66c7b58d6f604e7b402da0a09acf61f32ba35fd3bd7b301facaf4030a0201b570f7509e9018ac010242235ae22fe4afa0044616905570aed013109c50004437bfc4ebcc4b951240697ba48758bc438325414c699ba34a85b14460d4d362fa45d8899c0502e49473e84822c0f27b98abe141c7fa854e1efc33a26859c0786758a42cec33faba0edc1af5af9c4cab42946ec6e6292f3b0124fb01295ca1f8b98899358293293d0f660e6d8b55a93e3522956ccf171156b62ecbed4cbcfc1aa59f970a9ed39d7fcd416a39473da740ca65f369cd41e3f7f2c04573e71c76bcff39509aca75d0c38506a581dcc7b84b417824a88878610e10d285160652a1452e08f895c106ae226ae573648286594110a7121ad23304228a18c21f44bc8151a7f25017f7ae2f5f8bd9d7e2f0132bfe730bec7ae85c8dff085ae71bd46762c788d9d073b6fe7067ae9209df5200eead893a430cde351dc9f6b8cc460aa47e875ac81767c785c933307f9cb196873b98c8198813ac61d942dd65d4e7b73b6a61fc16d0ae862d952ab8b454b94faed525d2c5654a92b746cb16c09a2f6bbd0319bda8fe5e8a8eea88be568a90ef50761645193419949f16741038ed464f3e3ea04d46f2f5727b09e9e9e9e64b39b6d3fdf5d2380b2753827b06c7b966d5d0c52e24b11616b085468c0915a8ddd081a70a486eaa4f8cf2e0696e19cb0ad60fed6e1c0ef061ca9d5e92b13b69f5d0c385052bf32d46f1dedee5f59afd00f437fcae57590ee9ffd5b777bec7ed90fbbdbbb3f0526d81288c369d5544297eeb78aa0d8667bd89c808d7ea6fbc3a76beeebd51576747b300b30d4e631ddfd4cc6141eaaf1932805d9307fca671b966c189a2595802e18324375475d30646ab599a8990ccdda8b6f64bd1b27ee20eb88dfb4fe69a0fde1ea1f6f9a9120eaac63edc37ad1e60265ba6ba031360b922eead7442a9b399de8d7af896e6c68d3e2cfa6c567a7290633ede02587d56ad51865a8bd9b1f68e3b03cccb42fdafe4012555c66799ac66ad4d842eb3f5b49333e849f5725738a3996efbf527129ba7a8084aeb9d5c8df15cb7631517bf157bc8ab372ddd44eedb46e6aa7765a779fcf74b8dfc088e284c12ab393f2bc8f896a7c244672948f09fb9e93366d5bf974909edf82ba302b4ebf0cdc4d4d731e9e72d4b165247fc59f73032b946324e76925f615ff89242a357e17d518919c676549bcd442db23d6d4cdf23343fd680d210ae16e54d2c555da8b2fa55cad96a0316835f250d1183fdc52911732e4062ae9fa31c6d4d552b7680c202aaf7c88a4ba1858967aaea9bd7806e727c208b45cf9743784dfe96b13ec4c8044926652e0e39c905a19f7a90e675b192cd2de06da8b2d14bf87e2ab5c28780afe822eacb04d3cf357fccd05437b31f212a6b51799562311d73a06a7748c7ffa9cdbdc7ca98726d8b1507b9183fc05df236a8b8f8342055f2ced783e3ae630980f14540882b45c7a9294c6547f19212375ec63a5ca85c1c0ef69c13ec04117fa71eda863dde9ecab96a098453555f99719b627718d2563228982ebbc6d618450421977a73d87b26d9d90c68246d70b4d4209b0c6970fe59498d33c29a41d1ff50b52f775964748849057232c193e3cd0827e9e909e21b5df51d3b59302ec2085813d9eb3258fd8f1dce1b651b1dc5dd34f6cdbb6fdfe8e0e5571dd5caff57a58a0f633ff0b03b517c03f5dbf0bf0742afc9fb3ee4f551a1cff5623c70823e4eed5085b651d1714d951bad55de5a858c8dddddddddddd773a76b35e7f6b7faed7bf5f0a3715aaf6e54265d8b110c309ab26295b4811839fd94cb675bb2f6ef802d9b6c10ea15f0e8f2874bdd0bd207895dddbc357d0aeeaaed79329f017bad76bb617d25bcb6e7bcc7923c43574f9bcd023c0d9ac051768e5b6873f6a41f0117ad6b500b787fb74a8f522afa0cb676bbb5ee8ad5712f0d8ec351576d38763851fabcfc6facd0addcbacf67a3b1c8e94444ce8e7598e9f0d746c8d6e3053a463b4b6fc11d2b1af350428845e2eaaf6ced0af857a21add393f33b3b029d55f99f8fdadd4d90fd21bb077045cdeaecbe56dd3a05b841e9ac6e95efb32aa42307a9012194718b33c64dc6f6e9ecee7242e6adfbe64a5f49840078db7d9bb5bebedeaead8253aef5226a6e1aa8fe0cbf3995e224d690524a7f86b1818839cf7c9d8eed8eb589fcde2b12bc32ddbadde7fb6a049e617637fd72a2ad1d13d52dbf3f17b90a10d805acd53121fe56e6c9999a2c7638155819f51777fd0a63205cf9572673578e10343a3cf24665f676a2f223d184906810a272ae823810760c84ca9f820bcd136b3600c5a6201d5ba31a8ec82333a90617d46fcd54e60553f9a1b7af46e0d668aac9a46b655d2f7046cd796227e50689f2ef8a057f7aaa281afdfaf56c5017490951fd1649a74708fafd4c1a51a57edd23234d473544a9b0ba4747dea84caad1515035405da32b4c2a8fa91ccbe3bb0b3d462e2fa99f0bb1fb58ae484855b81f5722c88f0f9f690c8493c06552ddf5ae9c095565d06f6bbb4b969330101e5393a468d56a7ff0a36ca0df7329fe2ff5a8e7522ed7b70753a9d7f16aeae1a73ad43b0fcb20eae1dfb4381d5fd06f56089fb6d72f1e533f17baa23ebe74f9ca87057eaadc735c8733642bf7226ce53a05a0a193fb6fa65c28d797faf8db7c212d439d1d2761107e3a0f8c08a8892a8088c2cb19195c6d0f1824f2e0a732ab563956edb390f8595cf8594ef448f37490c402d3b1359ac14ccd81ac8ed1ca3f444310f5633555aef9a1818afab1dea8bc3d1dfb3ca0557e5e6fa2f27b307e1f95732ab76beb2eab4a5d56149650f7ac5a9dce138033fde267d61456951a3b1612ec02d0d41e8341f73f16d2b75382e7c10f961f980112205bcc03694e18b715ed3c8478c3218f2970c252b0d8eaa214f38f928716df8e9c1de9d80753f58b7fc7a9675fb36580ea5bab08fa6d2d8e914b603d0f7fe8127777f77660fdee39cc1c1d7e3b743368ffd21a3e2abce99a33a88c6defd56b0218c8b28f0a801f0a5f7eece2f30b7158c2f6f4f40447855d08f8fb618dc49966aa1cabbb75bea6897e3a9eb703eb18ffe742ac3dfba36bbf4e940c84a942170098507fee661aeab1b7d4028e83740a8fe1dd1ffb22acd6c5e056e75b6e771e5f8e9aaafbfdcdbdb2495bd53b5fc5e559d77ac31eb0aade7530c6aa7250e535ff4940596739a1fc3e6b3914ca0fdddddd9deac0e970bbbbab1c467f0eda2994b0696b0a65335a4ab83d841b64d9a4c944a19c267592106e318ada10ca891327144215a44e28e784ba5c2dae097dae89084e40ce1fae44e8ea1f553a3c399ebf3a6251fb3fafcbcc4d95578cd4de517b5c3a020ca48b1684fe30b51bcc95edd1efac1ea214f35deb5ad7f6d5df579687488f91d45e6c527fe92d1e11560f9b34d150ffd99a14cdb7fc8586ba8f6f4de8fc1137a93a37d516b8b635a1ccf1d0105cf4f4e45bb4db688112a72d7ad362d79311a903fda6d226a394713855196590d4aa4f4e376fc6d64ac0bce0e98a0108d10dea163d1179f1348563b980f277f72a07ca2fffb3c0ff2c943fcedf0ec68e99666f3c82e3167677b76c2965cb6f087feb6ddbba257475b3bf7c16babe7661a1fc5856475d8906dc7aaa52292ec7f6883a44503db5aff8bbf2c93182eabdaff80207638c3e7dfa74f7f5f8703746e8bb37eedeb1dfda61bca92cb0772a9fedd6e53c5d9f0aaa3a5f4a29a77c9fdfab12604575b0833a88066aaf7f1aa1dfefee0e270fa006026a5a3f69af3f471a40b5833638c3ad0ec7cd5b9d07f5fb2dee6cb607cc51e1f308aaa3f6654382ea2f084f50fd39c25985524af8312e3b333befb6db6ebbbb9d54c5684deb25383854c1a6555ec18e56dda9364d76cda406941d3664aff9b139337ff677369a306af7b772fa75fa613d43549b5e2e0b06855ea62cb67d838f30ed0d27eaf49971e5b31ddd7815ba1b4e5477438dea69a6544fc3061a347c7c97e7004d32396f80387da9f0291a1f9c029d73a8c48c5855350a119d080000405000c315000020100a060462a1603c9035d90f14000e6d944a724e97cb83b1280762100531c818438c31001062100186102a2a1b0007f316c04266d83d6158a8a6dfe5abc249c3376d19e6c897e315d67f816cabc2e41618cd66263028e1d118d28fa70730c0b0d6f375a458515fc1c8b27816a4a2d9aff975f6ba0d915edbd4829087b5ba39efb77288a7b0b010b546f743a441ca07a1a486e140fc93089e26b8673d815da018fc6b48e203ae7723d6ce10d72b68ff4afdca8afd1f909565009907edd71d5313f8889729b519248129a0ce1bc331fd072c7ca413cfa0c3f24a443446fd370225954c540d372758b247ac97843aeb4dc13d64ce2948b4068e794e165f7b2f85490f4a1721a5acaddb283c0ad26943d8b8c9e6fe86501a7575022a9dda46de28122dd65a1d556dcd3b4de6a2642cce3c040d5dc19c2082beb912980588bd0439381a1ed7dbd9d4bcf5e0923273981f531d2a0045e504ea4844e6face523a6ecb13cb02689e8144f42cac6d5b6d16776802d2f7aa9e1764037d5aee9014037e9e0d6774ee2aa3c3c813f69cf7678ec9388dbc2af566ddc1caa2e9a27c99af65f62cdc6586c4a0a9cdf074d118c59694a4ab84d8e566b8d9a118b69243ee9af9f40093990262d25abd1565609eb42d58067d211d6d4079028362f9342d8712df6b2ddaaefd93066885cf9740739ddb4045bcb4e180392b282e8274d87730e5538c84607d5b8fe0e2946e907ab433170481fbbd8ee59054808bfaa4dd8473f8a91b0107a5ab3030f5b67851445dd09c42970e5b0f0fbcf1106e9023d59a9e1f2f8b9f822e0bcbd9598ae55e9a467dae7dd0802deea389f3f5aa7c5d4796371f025b82015fce397ecd852a18740a8b03a1b2ce84fcc3eab6637ca7ff18fd2310f162f57365fbcad4ccb9c96cfe318b8dfcc391e05b99312933900e264f6e985fad0259424aa15566626b8768f9c280ef2c0ad199ae61db0aa31aaa7fc67b1e176092847288997cc4ace50e85059f8c27069baa240db50083c7ea448e2081c2bdfbad18aac8a04cdf65036bebb862483e21a9328246f51a738045a5784087aaddf0b9d375af49b576f8acb9952e8083c3c9617bc12230dada3feb7bff8168b172b1f1ae5becf238df607a7dceae4862d8c45829edc4f61352871609788585f43553379c3602b71b9f2260902af32a8a6fa050e40260644a389da53037cb11dea394ed6bf485e0e16edd63b75e6a83f7c0779bd65024ce68c149bd1be1058bb532e0539b8c6ccd147cb6de5d04ded0a8c8b39b998cb53041a552513d6b0fa2e023a5765a5c1cef525b7a4ba92457a477daf041a44b5c4ae5b5d00da2afc34bb9c0494799f6d536becb78c829d59e26dfeb9a9b96d3e5030448a261be72326bf28181f1a966d8bda5dd568a2ec7a561f4f6656145959928c049dc4c97c33716b0d49b13023bea18c5d6b6d07ddd55b235d2c91195f58f8474b1a694bd8a846e6ae49fc4f48d8ac8912dd63a7ec0d28987d77bf712d887ac852cd5dcf72573a81533debddf8c2b4f6454d6f94a9b60d44fab58c075a52183e8761b11a34eedd3563f6d0f663e22d84456ceda8dcc77cf2a25269102816b295a2e1143426bd284cec4cfce80dc285218ea9418b0c821dd860108dd86cb264ab0db129caa889fd11fa6aed4430b131991854523ade350496bb8a52babc4d62f2a12b2a86e6cf0f38a585be703683b193875028af0a46a3129a984ef42a42f95a6e8273aa390004b702d510690c3411a956905d4042c242a30922f3f429b9aad2653f2adacd11e1573aa7d05e6038ee246a286ca06e4988c40354e8e65706ee1af8241e9f1a7a9924f6419ca84b9f0efc873d77b5b867a7143d36372ed26245224ad0fb0deb0b5568888a6217cd2e89ad0be985e4800c0cdadeace68a6a3fbb54d39034c4ddb9961632fa936d41470020cb0c8578b088e6fd2d6f03c56a0550d6cac4e5ee370146128c129f493e41500170fd559c4bde95da5ff8a8b6b996d530bc94b3cff517afce274b36ad09dc7869d02d64359d32a069978db846621fe6b7bcdd20f606d637d2034ac65d591cc59dc3bff4b196db0f3c6ec6314d37ce9944b6c04f03e12ea5d7ec709d2f9295c0b45163b942e7eba8048735143f3d5d125d4dd24359ba338a769eb48f34274a650c5f0a6da430d75712e837fd85a9d2fd6d63c64da445c104da4c017649eb644841461962a4418a86f74ae8eb2ec0482cdc90dcbf2dc43594bb7612816a56a3e3059729b06cc280b173a73d952be9b18699b080b529cd1526b14f3024909e7e936c13280e014512fce32bdadeca77b8bf100a76fe95d2b1a5266a38d3a2147efed81875a0ed0e500b7c96a84c644c5aa0bb42fd78d539a23e479a1b90967e1d8da1b91707bc0f85eaa7a7cac54135d695dd90209ab1d591c2d19c9d61449f533252196146f8779bcf87baf05a866d0f9d421318b5cd10c175370cd005bca182c2748e1eaa92684159671da969e34d8055463dcc7ced52b43760eccc5820c3c64dda620bec47dca8d74220f78b27a5216a52f7671f5cc94193a5969f994c364a52783d74f2f7481580c7aff1f40884d03fd10330c0b6f51cb4518606ffb41e235f2ea8aee11b194384d5eeb5f981f0608d950cefa33946546175e33fe915f81822b173c0da3f68b3ed26182089af551e3a076d63276525f45860b12666aa0831b6b219c0d5b603e19bc547ff19822417b8cc5b4d4b8fb039cb01f97c2d14bc08c97608600204fbaf6ec1ace0ccf5c2a4884180a3ff04d87c7cd2139e0de335e88c015d62db1ad50467543123862e7b3c43615aac4d2983d70a244aaba5721f55677604733d8e8e48b7ab0894277906143766ccde443116bda962e2c6f96e6a3891c737476f2dd81396f9b91d255e25e9ac12455382e61fb2fafe0f0a59be2e535738ef148c9cc2d6fe6d5e0d80e777e5676c52fecc0ee4baa6324b8b00a6e7101684c9850886ab681882b03a8a8687ae5637bddcdff1d67c822f5cecc14ce4e774ff43c34a55818427244300cec71c38d8b27ba7e85c43ee0e80c7460352127f4c950635f930f4898ef7d9866c1fc6a7e5b5b1aaf298cd3422b847dbdea54a85faae1894a2de591ef19b154f4ba5317c5b967ecb803798a0bacc10ce8f72b828a32c52396cf2611e06fd583b9dfc3c1b2afbdaacd42c4b72c4121bbd2b85cd665678269cd4aa0e39c6b9c228eac05d9490d3776f99ebb93ec8a28a090869c502e585d253a626d8d803a0c7a69ae8dc65ccded70ef6c3d38c7ab20a68fb1431e43b20a822f09753d5ad2685637d6425995de1e4a9eb4f52c1c1f07fe30ae16043aba2e544e741c4b599a0d80cbfe2bd62c595ed1c5537212de0afafc1c26ce4564dd5fe67884f94e98e4c4f0672462f984ca94f6631ac5d67f5ff407660c432cffb78ec7e26cac5079c7b839227ff593410a6aada675f690c90d71459a2f31ca64ce3018a9d2a905785f137d22574e64918f2451eb1813f81f3cca2857ac9fdd908b2bf49ed3b1ddc48e491bd8e2a39259d571b2c1cedb4e926a84076956714c1edd0c9bdaf72c6a7c07f079d0ab4948c8e8abe50ad09dce542a7033c6f346fef4b37874a71a818c0237f163db17e51753a1c871cff05a6a8e2d4287515dc15349966d9c0054e7c556803e927ec07267d379fde95a88de81c4f96c4564e04dfeb7c8259d1122ac8c3d8ac7d86e0cf3a07cc39bf8b332732d51bd35a928992e771b1eda7ab6692955fcb2b6c40369dd7e91982f4885b3603777c0d98f0f5f9a83676a01af748fa76af02dd2ef584762b6316d3f83055b0a9b78300baab17ba5e14d5366ba836698b2e8673397b2d0cca8817cab0f362a9cf05b51bf1b72ab6868b31420a54f111141ac99638c48d17eeb6dd32e2a13886490b1f9d8ae7309c8d723f23adb6c541a060426c6602b028d896206839f1b40f482b003988578029a99d6324557d47dd899e86198ed4dc927131f47367ac2fd29050103ca5be8a420e78ac4092b75102a912763818d2ace87a416a38abac3389f5073003f59b336df22868f4dd6e053de60ce50740847f6dbce87df66be04271ac73384588e61fb881c8cc167011c72cb3a8043e3013f7fb3f76109ff45c863ca81f07cf67566809e88728ab9e26640e2b5b815252d8bb8718fce1393c4717f82d2ec9fdaea231b093700070c1ae89787df40726506c2c361528b609480b143f50387cb58e7e67133c7a8d1c3d12e3db505a752bd3331e8ac8fb6f6680185799c5aa66e5c62c0a425b5aa4023ffe008dcb8da783765336ff1354718e589fd023c5ac06de0655faff569f918f9edfc98bb9a78c8c8d08ad7f07495a61e010caca49085b7d6aa2457016c58ce02501f97bd9e75805a91c4b6fbca48ded99a97836d343fe990252b71245333f93417eb5034b549d2de289b403495972b7dcba97329717287f1dcb568f2e665bc3678f29224700b2b0ccff26910c5dd59de6a54a1bdf8bd7fecf9caec95be8298110ebf5ae8590deb49164690c794618cb7a4428c5672bdf33ba6d0b24db8a049810c431d192043338324016473b72e1b32dea9ea3d68427195be63c285f70104bf1cd7195ef964ba3d88a554743706d4eb3d967660d92f666da11ba53f7017a8a0ddf5d554fe40d51a24614d07e363b3520388a34adb5fe608e7771e7b6224842cab6390816b7e0ef6efea1399a02610b00467493669f5076e443a60f7dbb9ba2890b160ee8e4ae5369180c48776f6547c12cccdcd51b5dcb6ceb4d15dc253a0ed4d4b13fa7949157243105942e983c8dda05d28f70527612219f820c3e6f756c235baa97b841f16da92f76ebc3c90cf20ad04d112b3f83a840d55f91b2c1dbf79741d8cf83f3b4da305ebe8923f5aac3257f3d7c003073c407dd686c18d086cb38f7e3ecf233671e9bd3662a959b6610c94c5bd992e32a14e9152da87cad3a7b070161753d00d0556d955e8702968497c9c915e9966e920dd6ae10ac9b95a01da779416d19ff48a4f2b3e757883a92e7a8a828e1b5ccef4d547fe96052b1f3b55fc03c8eaa6ee683dd535ef1536d741a4de7737e8bafd570ebddd8a14279f85b807c727ed1a99df1e79fde1a9357039d794380bb2ec29877ed6afd25d3b7326f6d2a767a254e9f5bff38842598f31f1b3426634a4b30abed54c4c64e462c6a6631e06a3d3162e6cc90a81240db6a48f0bf5556506a5ae8f9f64d54a35d61de63b86765d3c01bb50d547c1a90273fdf7f8ad560806acc69c15bcdce64d5d103819e2198c816e1463fdccd57ce8164377bc6d827768db3f1f0b51b19c3c1d47a51926346b2b77d51610cb5a62965295480f804da449ba1d954f34aa10516ebab5ad8b6eb858e746d560ee224b1f95e6eb1154a7b4741ff2bb2ef7be3b666990224eab6cf2fbbc1e7eded9c9c0bd74b47f39b0b3da92b864aca5780ddc664edc38d6e870b20b3e7aba751cfe336123711a4fe1b52ab6fd62ca31bb2e64fe46199c791009f4e3d7b4e538b3e060762d610adffc1838a7302618f38f7a05a03d8f38abbb479c193b27de7cae5e8dbabb702f26c06322e3f292c4cbf7b2cd16037a53ee2b3d9684ab6103ed4ad24cb8e2f720bce124bdc96190beffb2f426714ca0900ca383902200b87ab89c975e0f3d7d4c971b326463ad300ae47229ea112714635a0b2f6c42f45785ebf333ba771e4c5a6cd0bb0d5935e1213743ecb5103c56e2a6035654e02433a4381ccb1573af3296c0fff50ff2ec149d49172b1a9deaca110edf1fb149c4892613ded4224441d412d4f0e6c8be3e1ee927904e6e6dab84a91dbbfa14007ab7518cfb8d005463a853904de3edc27e13c042ac8058777a38e34ba32e4b99631107e45e051c97e578a7ffecb24ec172c328d73c8734c78eb6f6e988d74a218fc74747ca0f1935c7c0f699e13ccfad6b04772995efd03af029b014edd9c2b7f0377a6a9ca165f74816ede5a65cc4f312f5cfc07350d71a184825511c7cb6cc1d4f805beef256a54d30d4d16820f8fe8c5351071e8daead4c4aabd5314af871e846e83d9485a5208ce17e7d031bab2f88a7e69d687502555bcbd8d8b42bf9fb98c97898e6e616fb11a5321c664cfe911559bd9c2eb6c8155528c9df1fe7df8a5c5b6eb05dc4caf9003e585ba75684e4095a8c15f10033cbf40fd041b3827dc5c770f0a94df0e99b31516c2dac662bf9699f1ac073a5cfa6ce7d4d24cef8197229586b0347133629796afadc7ff64258bd70ca46ec0dc76d9fb7da6eeaeaf3513d27c023c6c8808125d3d307a74fd57c9c88d1cdde9bb6dc6686e5368bc8fe728eb00fc7a332a0261f66fdaf16bc4c239d058c879b4ec96bff736d191fb4ce1033c24354bf170576c86e88efeefdf7c649d7831b43d97b8651288b6200aa2f940b21eafd8bff4c7ca93882003406f02a6d419f807cb3affb8f97c3e38467b191685373b3dce6a0fe6c614d177956f4d668f252c28c53a46c9f1828fd9b29a80522c1f297a4130f1ee4e17d85f9397ea45456180cc19a9b33d9c8460800b66d1fc117045a9000f121e83c92d9c33fdc873597817ce4fb495b8ace71e4c615ef33d16200b888d6c31febac9be8b2ea656b931467871099031e5ad1cca76a0ea353323faba4a9d86c4b761ff873bc9d3468a9768b71f4f4c8737b5d41399300d8bb993d252a5b058402af23786a499392ce225db3741619b8a1d4b92221693ac9721a8247c4c65f798d117694a9bf1e532133738c57af69772baa809d1c85ecbdd71b21f4055ecf7b2c6743c98af46bdc308424b83dbcdfd958ee7146a16f3b2b41a5b215b0cb1afe8f0560ff09d916c66b8d1c42c22a7de7f51aaf0a6cb726881aa4fedd817b756ba5676f08ee56ec594468aee2f256dee35c896a864c79ba8a3d1481c6cc894a4613f4f5f21a9e4ba84bd6cfcb165cb7d2226de1a8f832d78779995c799ec68fe42a4e620680d3dd1cf4c71bed85bf68b7f5d8e7cafbd3e45cbddeb31ffa7084f07c28624ba02041275db85b6fa83272b80c7cc88ba19773dbd012edf4f5ba4a1632379a4acc2e7b61f177bd76e10b8ea817d206ca65dd49c030afaa9cf2eacad6744dd5e8be557939637afd464017336ac892a86f1356ba87aa39db02393aba638d1203a51556da91b062ac74f1bb3faf4e36e3a817834820f60b37026a8d8d0114e844f741122eadaba949226ab5675fb4580c5052f45b47b89256b208c741adb3e5040fa97341ab886f0fcbec2147e0c9a9e16daf4ef1732fb8442c7a243e87ecfe6675af2310ac6a72904c3b41432d242fe3819fa159375dffa181522e6b172e540678dfeec08933503c369029963ff2038a20e847a35aba0d3998a19198de7ff3033eba40cf97266d7088a547f0329f03a5f450d1c698ece65a842e1d41727e6fcba843d0c1c3b71565666c97a9cd66b152f508b52163fa62a26111ee3c52c018e171ceddf382d239c2002a654c94f3868eee695cd696761bb8a384d663887c35d984cb978ecd5c1a494b53041713a5028892e0e0e41beee2a5b030b414d925fc9f2184273aed95499bb45d4cd8b1eaacdd82ebcaa7695f517d551337cb8155c6b0bb312ec5434cc79686be83c35b29871028c832471905b72611ad2bc082b52ed4c183c92af85c2550a30c61710bba041863779a60627eb87dc3b9cbbe91d144597e48c1b29fc6939018238099ec514ec3430730ab3e07028252cb4f0a697de45d2f08be7d3caa5c02ffa611f873bfe6d29cb80803068c9661231496cc392f2e1b9034565abc9ef06d0000b7949e322118b345ba36276421021f3753cdc81349ba166b0091252fc128795ac39b17aaf0648a57f46eecf31e2abd082d651f91cab2997b303f0ec0a6498d3b522535706147d00d1a15b87ee30a75b0004d3d4eda6d8757b8fe31554e29c5814daf94746f3a6b3bf20fb318c644afa135c28d569777cec9c0437b2641d6095e4e6a7fa06b139c76684c49a2eb114f82baac69c7d09bbf3c36ebad2b965e828e495b2cd3a83babd8ecb2766464654ee5d798e8eeb663fef909dd7b13ef54f2a3a6fcf40c18cd6cf623db8c372443306b0f487d2672bdfb5462911160e2ed121fc74e2562bfcab71bd087302011eacdf6be2ed983fcff651bbfb2855da404d614d5978b2db40a80075f835c1e60c864ee9ea63c6a3144cd6d01ac888066bcf10abeaa694f89d7656abc61d134622b1b6a23909362f32a8255b77e6eed53f30323b0bdc95272ca18fcbbb887d08052a0cd0444cca78856fe3698620b15fab76860e591f68d02b1f2e8e7fcd24bd68ad547016845912a3da1a26f53635d9c9161f0e00b481db399fd2e27434bddf7a31c0df9df41f93be617a63ec221010563ade482c7e78772b46bc2b619ec952f0ccfa7fb14a273ba4ee095aaa25d16aa3cbbba51647a5755564ef3a52cd40aec27cacf36884419ee844b521e4b873faa9da86febbb84a0d553433ba190481dcce4f1fcd2d322b3c1ab0df3d60f32e2b6a1693d6ff6806012bfe700a34ad879cdef4fe0e610add6c657d6c6019e5f3f3190a39ddbf2d6db60e88ef4d6ce8199bbfc46effb44851b8557add8ae717b9fc040d3698261bd9b88f76a9eb90672f928f3364bbeeb256065f1de261c7ae2dd4e3d880b8465aedc558ac3bf6d47b162d9546b6a54a20455591321661ae63628edafdb07e0040382379848677c99308717bedf4896982b8c5da207cd3512b6eec27c44a7914e2f766ff4aa18020492b24965a9b6df88cfa2bb33d95b01c6cb7dc42df5db14387b752603289053187d3accdeecd693229076e5fbc8f326451e1d935a78a35bc8be982c6d72e9f1fe4ee882d35b9fac5866459500afac2e015efdc8855380db88caed559f19a06a085e17e04da742da2f2758c763bd195c2cbbea21ddce8278207083e47c245dd33bf38f2ea9eb2f704bb567669e6e9b064ca9c25afec027c57b6a37899de0f51334d5838cc71cf3df5cdeae8e3fce13f1384ec9e4728db3a1af85f2cd4ad675d0867d241c788739c3bdd966f66ac6f285ba8d73a54f2eec7adefa638aa2549d3769e6c4ce3ad20f72fda866a3d9e897156131307e434246660052212e0cb3f8f2deb4c39df9eb63141a395e29ae48de9239f6f54a41aeb3efccb8f2b80fd25ffa401ecb1a9391bf600ee98d259d38a7262176e195fad5b44d1231db14d77f53f242dd7398190899d52ff09467609f8e864843777438377610568461e615c704d5951a15f8e3a52997124d29f0842877ccb137269af3d7ea2e8484400378debc0290648c56b1f17503f75e67175d68eefb4a46d8140143b323a1bde8817ef2e699a3689e8ca905e5d26e73dc68d0db0f6e403fef4c87a19fb6ca96f988c4574ce4349c93754e7b76955390957fff807e81abd0ae8230c53de6d458b283286ecc8e6351b9b0cb482f1ce414c0d343dc4bcda2cd6583a3f274e1732388b82071e869d3552eaa36088826dfce01cdaf36a159174b149fd3e042de8ed7974b7bf191c707bfbfbbdac272ca137148d039a324cac56f6321148b5e50d42a11454e34eadb7feb013d8060c819a5b9bcad13ffdac8a6205c74230bb7dfe56d9a22ba1436708f3ee3972281eb11c38d453a0838af7a5d6ca5af03fb50225cf1a08a892d5519089d56e78c286b5d3d85458277db035d8a946a5c9ddcbe2a9c055e318d0d0ab2dd1965249aef6581ce005bab0ffe359f58a42e6345208cc0767cd8c3634247455a6d7ffc5c4d5549d091883e8616f117bf0f8c195bcf3a0387806768efec62d6bee9d9ec5a38846bef57e39d99b9813e94848c47eeae752c2836dd5986028dcab5409d1a8bdcd88d07580e49642dbded6fce0f722eafb978cfd6bdd3d3aad4399aa7b1c9d03cac5d78a5504af1489f02bd20095f189e7e619c300e28b7c31632208cd6cb89a51fc3d5097d367a3a4be7f4edfa5c4c3ae584fa39b71038ceee5ee8d5339112c7adb94cb231ec2246bc37dbab2157ff0585a1097fb1391326f7ef1463ec10c576cb8069dbbd6431b745ac68a5a30c7237b086648a4d518424a513a33c2916cec7d19cab1d846145f6dc370469a958618f9e425cb116022fa5f45bd149019b6014ace7fffc7970e22949f1d29718027af225e6fdb7310ff2a7fd92d778af786f7fda58b422e735889c96d49c379aaac90bc6dcbe8cb455cce693510405f17e5af8b20bd108f20d017af7a2d02209b0e1de64ec41540543f18bd15bb8cd0d0aba734eafcc3bbb47368651f7ae98652a3cf4e0d3048b99f7ac7b821ed6ee3f07d2716f9944d89de07042ed4d9b28d609013f14ffaff8e85024eb39cdb03a6185708dd74f0e100b8dc3a9f8d08b1e92a2601cba2e7a863c6dacd3b94e16a1d04e3dcdbd9d12ccd7c998b9cfe91b1b2d4b8e085db4b030d6cadc772150246b6666bc5b92a4869c9eea5e66a39683e16b3e83b125da9687946b4c64cd81eda73bdada3bec03fbf4924198851e746153d0e5c232243637e887ddf3682754875a9c478d55591665f5087d4bed62d40e5fd344a88d52a2fd94ce3adfdf91b9cd28f445e1477e32b4ebe250a74ccb35149d41a412f4b2300a1b01750ea3c15a8469f9a12d9af94b0e6a6fe5b38039dba190f4bc303e8ab82d94766af96135228249d24a46b2214e92cabb1952794816a956bb2cf6f167a849120627608da24f934624ed664202a90e245b724d77e9463b2759d8e1a6aa7d9268e03b00a5585ce08b108d47389462708b50d23a29b6053752c03a635564b08f46cf13f352af5f887740b1ad40d126c8979282855d1e8534d9f73516b15b1fdad74289dd63ed3f65605aa17797312502e9a7864b316e261088648c3c85a35e8a0d1084f93409afd3d19e34852a32d3e22970aec7720d512950a413efd387fc5304ad8fc02ed583c31fc0e7a199f999e66306f63d4b9ef2f0a1ca7197826409f14ca0f58ed6ff66109067addcbb496d5e793d0541866567c7340d939b32488a232c0c95358d2557f1a5c87344d1a208fae9224eb5c81e469583b983c5b4f669f3808f47828934dfb0ef192b91419d525347f56405418d77d1edc73e35b515632e1fc1f3cc5522b4352eca398a2184d4486ed583a349b71c3e68b58324b8ade1eb16aa5b2d2b74ce734d612fdb9108c25db5136953a9f298f556502deeca6d197ff61bcfab6c98202ef592e6cda190c977d5c3a890f3c39e7145638b51d817d38a23425a8526c7d5dd2345e2a06c0422ca969704307fc0ac8410a415fd1c2ae4e63dd268cabaeca4b4b8f03e41c67ae56b5f8c5175dc1ec7f40c9c2c1f32fcea11aeefa06d85dba7ffe1854a948e6f857009743104da648ca589d3db7bba3d06c9b8fdcd86c38a3a3a9374e8f1d5d925506a9d71968537bac155ab70cdfd36643ffd5889b67109949e55b01e42fc353bbbe24cd5adc2bac5ec1b386af7c12c531536048e547530d4dfec81e636362e61c2f6e875817e64bf537878cdaa9c9f7ee3d4df6a159db554f3c675c50ffebfaf89eb9344f9778caa781438a94e277d580d632e34beb55f8d671078eb949acc5be03a6ef9d446abdff436501afd9dc5989e1ef1ac29b4a41574b9ddf26afad4fbd6e0f8cc20471eac97642a215e9936794096ae6958cc387d554efcad289d99691a8b56fea4b2e2aef37fe406e5b079a9ba6389f9b7890bb4e057f489ca55e8561ba90219444a67f0186e1cbaf187bfdb494cf178f662f2dcb655333f4d13c7e8e803351b5eb502d1e055e051c5f37b2de16a49592366093828cf1744dbc481257b5632b7c30283830c6d4d4a57e3a1a62ec57df180882aca0b0fa8b0ce1237346f5d0c7cdf12ecb11870585143308ab3cbd546ab118f0236adaaa6a24006d099dbef59130fd93074a3b69deb9f2ef38ae6f06eb701f9e543313ab6a1906fb8110f775daa9043d39a4fbefa5be3c042029f878044c5bef85344aad000902040220c90654f04c819b5c769e2ef151421607f68c25ff335726b1db743060ac820e146b3512591ca61cf4a1cf194ce9404f6e28be2df77281395c723df03d29ffd3affe6a6d65a904729d4570fc3e267f0b46b4bb6e43c23b3046a340e25bcccae2f6fa68c821dacaee7700b2df4c2224b0f2c00e5d49b6c2b82fae9cf9d1be7fece35538aea1c18f7772bc0b51677f43be534d8b61ecd0d6aede8bf4fa546bb69e8059d247a98e629623dc6ba1d932857c92c4f46656d3b2d1720d1da90cdec5c3c18a699776b2a9747f134c8b149c94d76677c125ed53b7c5120d6d23a5e41686c1e59fe56afc9d6e55d1b1258307c8da12e07b6ad4493398f20941741c333040fece27152bc1584f61a82cacdc1656a326eb5e4dd805d2a73961d2b9c5ed728a1927d47160a78a5961026681e7dbd69254f4c19c778daaa66612e8878cbbe6bd62083bb0542953832b54bd118d3d662ea1f17aa74822728c0a98169e0c0cb26eb51df770907012dada0306cd2d807c1679e9c6ce86916a78b037834e57bdcf4e2ced02e1c0aba071de97f4ce40d64240b2f0e457564e02ccb2f8616ab62fd1e54b24296b7a92d849cdf09c2ffd42fb972dee0fb505a437ba1ee6452224422efcbf211779528d5e0f1460eddb9a33ca8866c3922f367694c65810e823981fd48567310c1be869af919bd6ec8bde8887f796883a02bba1a5171e355b41d6f32d62c25beea724353c4a4f62343b34c69018a950576df2537d574a26f07680e4f528657c91d8931e5f923035bbc0490066816ee375da8d98de2b2321494ff8a9af9507eb9c71c48007af49fb848c032bf7e08ccf5891190a885e43fb3bf2e259b171fa8a5eea54073ab98ae1b0a9a65de24c5e8084df5bde6a7fa905f2bcf3f6c8e5d6156a0cf9388d81d2e156092b79a858d854d82c04944bb775504d663c10022110449018e317814e4129dbd9621e19b9fb425bf3fe831c1437f712233928830e36e51542ef7be814a28310308897412df3647a76cc3cac090695e1e6208449141ccc25939ab1ab084814f1223f23e1f7e8890d6ecf807e13399df4634ae608f7a1e3b316084c19ccfc84ac65accc071f9468f6675396d7ee8a73188be49444ad0085b36f3756a1b663283b08afd4f4b80459d2e3cb693f13898f40331e8f1a9eed901b7500b8f9588bc415e7a8ff262d336892b9667bdb0a84ef6f1827842cc03254e039e10d1458fe90715ab2e1144ad668c297265b8d98a15a7c7481a632dc5fcc4cc0fbb6f42c05612e2d39a9c335120709e6cfc2480cdf5c626f2bb63ac366acc9c529061dcda6c77c64dbb557fac1c4c99e9665c116e5c7a949bc83794db8a5c345f28adc43ce460f983956a5b57dca9e09fb29797a8f630540b86ff8c88f59196333c9c383fe792259c9fbeec08bf3b0ccbed67b2dc118ae225efb3b894fa784d1e8ccbe3b3cfe44f321b58defa6c949d84ea7aaa4ea26596b150117d8b49cb3554a0b36c87bf534ac05119db7806e572f51bd205195f20d2201335252ad35dcc870d5b2ab338559384db5219c5ec52068ccc2b7c31609c40f76a91dcc2747743d50f7be8b73f3c36b735e4f5407c1ee48472e2f2dd0de038dc5f21cc0bb3cba4e68a43dafca2d79544e4f0b8f8f6263b3dbb73b847b97c8073656736226aaa76b33602248c4bbce14aa2948d6de65b1287a98da7df30a707473353c4df65da40cd4b7fae13e45e33e6eb190f81f8f5dd48d02984214f4641ad68556a7d83c4605cc3a81a243469903823a1183216833ecf220110925c94ed631cb8220c5dcbf683a3f5108eaa3092da0c6c6ab274fcda8f9650889e54c739cd6da7c16bc8ae408112943d7bd421ffeb8416be34b7899c924746eb03a194fc61c0ffc5063303fee70acc9d3fe92babf33d75da0f0e55a4f362633ab54e2e76ac2a55b434aa9d80271d7d6fd254c9a7f547a4958dd55c4207108617b249b40e690b7bd51464576c70d3cb5c82c8347a1ac1acc19791273033dba6d31f31c22660af1aff125d465e1329c0b4496ada00274e7d344cdfa6baca7caad297d8eaeff0c4113576305635844740333d7843cf9d5c9587b1c799c23f7b876fc7e8104e741a2970086ea3e171bf68559e429f234b1b9d974717fa32c0d4f2552fe953f3803313802376d15311399c61f447bec58f098113eeea68f6dfc6e8a9123d32cdda7577e1735e502cdb0e9b160753650fdcb67184236ec5746b498f73df7205e42751c48ab7e206c9347846599301c94802a71caadeb97f700c29216cbe5cbd79e77f210eda7ca0e36a9e193011573d1988c87c1caca809e47b7045185314723e54d53e30e1396ef060ffbee0c2b6c0dcdf7440c2790999d3213a9106fb36b9851bbcb983be808dd10d12a5816a6d1027f5ff1f62a56191855afef9672433cec070a401dd3d59ccc778dcfb8842bacef28c9d192be7f08068c65afd3ec9b9a2e019554c679462df3dbd2e194ee5b173ff10fab365d074d7d1c9131ead5cd0b72708149a5f9ba2a98d7ca0a303e14e14b45841ee448452d7500c28190bf857af3346f4da1c74a56a5d35f226582b5cbe4d7d17dcf394e055537208866eea3b31164bb04688de1483db604a43c51472079ad9db9d58e07e65ec436f86a53076d6642494321df4c0e15ae8b6183346e7d2f9905980fe93dab02f08b7d7563b04e99f0f83034c413790a36ac027baa7a55dd571db38a3c42ca2928d78c4a593e31eeb1c28ac5805dc3948a33dfa5b515ce607bad2efc30d03b58978a394a258e9dadd196147349ae6c20298e735c3d632bbfab80a5a96e62b20ae059832d5e9a0164a8317a35dcafca9d493b0d77514d901a51177525380b50aa8da9da5c9457738f525f3392280e20ba1fb23b305077d5574798f00a40d9b93a92ca53713c79453e5577933c44c97a0641ae1eeb8880032e519dc1ac0fcdcaa823ae1a0a831f388859d065e693baa9361750bfe529c0a6ff94af838036231de3cf19805b8689ea8a09fe4d884b2b2e8db04a3bc926f80075c6a73502f21088146a039687b065cab3dc012604200d69819380011ab918a005d2a52611331ca4b2ec934e25d80a5a9a6d78224a197d64c10d0b74ca389e92f71457a932bea8bbf156e86f6ded174e88658df4df136d95ecd5ab5add0d8f38934560f6ec7d9456e053048e83cc1cd865c9117c02e49f980c389adb2a02bd409206cbcfa9b272dffd73636d4bbb57d7a4b3a6c53f9891a383e6d3b873bc34f930ed5e4bb53642c1d6a192962330a00f91b13738fb4318c0c844d6315e5dee811a5c840e23b9d6ad02291650c752fd349a50c496053b0d3ed873499aa08695d205e62260e90a1d2b78c20c429c2424d46a8f444eb925900d7c044ac2ce33d7276b8a4a9185ca3625210a27fad7d4c9198df3b2fa24ae15df8c3f5063932340f30315a475382bfa81eea97434974ba8b119dbe1f67cfa8f887709b5823c92ab518b1e6ed65c26a655449cb8bfe76b4ad731dc33d36d309250353db95a691b49ddf206775b18e699bc776a0965e8ef8ff4255c9334a55961c8f6a65d967ea562bb98f8b537d2606822e23f92d6ccdcc2548d39f164a45c987d54adfa8a059e3298acbc4b6f61b26511e6132e53471c205916bca72cd0c9a932c2ef951dd059579d536606e0dfac1d824452143ad52d3b6e586cc1a79cae3c46fb63092ab4f9bcd488b2db69d898d2803a7324b9b478aec4ce142075e0a7ff16a2fe53daec9ebd3b2af8a349761999b8e9bd57ff9e984028f4a9af9bff6a93ad6c7c48ec1e8f57e4d4ba672ca873d76f0b0d4130ac30a53fccfea36541ace404aba29749315b789525555f9fc75beeadb642f8c1594737b3194d4c87ce3dd72b721a6498f6eaef645742c25795cae0958764f25d3b90bee2484c110dfb60fa01df16ba1411f3bfd950179f3a798f8c4767226b84975268d4c667dd454b129c6c6d7acf59f216b2085d7d86f35a9cf0a735a13923e0510ce8d585e26794eb096f8e0c901ab0237b1862002bb7ef1e4c2b066e3ea3581a7bde5b5076b095f4352ef82c662822b6d3a85511b5cf7f62d5e2cae3dfd2fd5280d65f45277340b93f8c820c687d68e8eb5e1de7031e070db53bc29826e9ff07df40608711bfd2e4da03e1ec3ff6550cd30b0400cf14733c732f13498be31cd7bc712c109860f311ffaa3c148ef9d3f1c1d7c67f3ca7857d310385ac1fde4af2c93456de9c4ea252ccda6b41eef0e0ac9370db9cf7355c5fb0563c3af3d7e4867f141b459af37a642d174ee59818385e16776d55c97d25afecffcb1dd53c6737d2d4f08fb25f8ca85708d165811dcb1ee5b721a79b2c10e5ae41d86ae1a5503d224fdfb919bea48298e6dd48679aae98b9148cb7968acb71eaf7799354ec6c7177454349f27ec82264d01226b19c5065e52b9259a973edcc1354d3f246c27a1fd100a9d98849c66ad05f2adc2e3d1608fceb2b72746ffbe5b7b30ada59bd528ffb9efd0024811378ec7b1024254cecae5cde1bec08c30980304ce9ff3d83aacbd1a309f8e081c39aff43abe73751c8d13a83a3479d8c1231033966b54a054c8f667b2e1f804e7829df51940a95c4410e00b01e69289f5143cb7a6937a2eaa7f7d52e591730adb8251c3571cb46bd7ac1718d52a61454c0834068c5089dcc13078152eb6c03baa41162bd8040bcd40d985194046894e1b9519c14ed46eeb92efd599565502834526e8ff9d8ac1f7ed7a314facee1e8e20cb9d3d6e74930bac5deacff170e904ae7912cac034a2e4173e41baeb14204a9d2e446a10f15db5796b99b9034addac464346ea0e08f2761ecf68508a064ec93ae5c5d964589b487576aac7a50e06f2a88775c5c29339a18d56257030e8ab99d17d7ad48655c0379f4b35744c56b5b70f92954b48647c55e102d67410fa9ff818c6130a14b6e214ece3ac6aeb96781bb80f1b814854f6a90a583d31091dc1ba542454e390425afa926460b7d7f40c85128fecc0e9842556de15ffa1dd27aff533196351ead566d3796863639db8808bfb26c0a4fbf264c6dfa70d3080730e2d6fa2bddba7a0422def52e12602b05662923e04cb4a324413c0cb7d90926c8dca7df5aa286b98ddd15346e39ec05b32fb7f145a943f68acc75d5c7b310eacd72dab4c6c341d678a14dd686f08afdb59388e12ae5ec99feb4fa51a7a5aa30cd81516746e7fc6818bdd3a7cf739754278f9ba497e268192757c4c238a6a8c0d7b41072eb51a8f39149c7f434e0d36e1d330b969af45ba58208e442ef28f531ca126417b7abb867d2a2dc3d5a4f91d64233e85fbab2641176d164aa60b74b3d1adf83d96e02135340c83617b3b8f67fd1d634dd030944182bedf759306e77d45b59b6ba36c58a56c0a52ff1872d6016f97b8d9249cfd5c7a3b86d0d00a580268484c1862bc972c8b288701c1be38ed779703bc97de4856f6de00f600ffadc6daea9f42a920756c9851d0622df4ec74e548130f116b334d577f17eb7c1be1c5a16c3878c04531cac4d81f796384590fc5b74b1b186f828083344f089e832389c0a93cac82a152f160d31185213c9495ce2e2515094a6f61d45d45defeb823a3998b0eb89ba839cab34335104435608f70d70ddbc99e44581b69f4b0c5c23abc8da5b9cc017e44b81512d1a0377029c561c8a016632fa3ef8df9f2712a66ac639c6ce305b2ab4ce040985535ee598d945b196bd1c6b0b3af95f82d6f507aca59035547196ffce52493a833768d74b12913d9319ed3ea792b3ae2cf2e0c695ea992b30d06036b4d99b14c78f05d51659a45111cbb9c5c31a6fa04f15c7a29e549eba38e263d5802786e8ee08cf5dae18faf59bae0d3c199ac3cd4987a62394cb93937b2b74a8e5e19d7524c0a76f7abbd0464a54d2b3532ded510a327c7f48cc680e08ef6611d4a95640237c462a0adfe2287cb00248c58c873ece01fad64945e538391ae1d42244ef5b0b3d38136ec282c07f977031443c94a6cbfe1da8283b540fa37518b4c7a4638112c814e40b95dc6f618a135eae9c2571a29ff7548a75e67f7e45a88e190cce30f168eae3f437b94145f1fab0fb1898918378a6b24f931912894de5b616a98efaa3466521d3febcbab29a96c49d5dbb0cb9bb72ca4bf24fa32228111b5e614c25284dcf74f6dd64018eceddae74e90380d4d996493604c0cada9b03396775c10c891e72634fda5d75c6545e4fe0bc8a8f5e55e667bed66dc979e5c40effcd67e0169f777f2c35646db0dc733318cecf0cb007465da70e60f32aa856f2d9d5cc65d135939a205ad7558db52e5b4697574d2d811f463cc1dab5082fc7b2c64312721e334ad85d1b3910dc5d5f781fedd08b8582e08eb5333135ab607a3f554f9869b9e88fef9d1ddc221c45a3d7945a9c4baa149783823d59e2663f54d5d5d7f0436c1fbc1b7959cb89867ae60a1318a5a82b8f4c7c1824320d8c2c32e7389e32cdb57a3d7ab6345915e329dc5ce8db2e3555ad2e3eadf186d6728ce179a58a0296e4ec6c84b70852e0e74eaa03486e9b3ef23111ece87dc3de73674d7498c60801ea316c4f4e5da1058e07ecd3f80cd444a94b72a13783b70569104bad251ddd81c612d4bb437f44f9468304c7e2a59711918d61d6340cb2b05aac09c9ce11cebe65f7d1d9783087eb8f1ecc2209ad595757486b61e2c5d1404aa06b6de91edbdabc493e8612a780b0b82969673350f16887fe5dc34f64d84769e541046f65e2a79f7ae5c9ac634ce2328b054b74037d51113679300953a68f240dc3375b587417f3471faa51d706db6a4950b95381a937a46f9460f0a399e208417d8d968c7123fa13ca2c8ca58d9fccdd2d465f0a3fa773423b74f2f6cb220264cbf40905b99682c1899ec087e369ee2d730b861f8411920f11a231a083c40836414769850330c2405413dcfc0c80e12ab9228cf2c25ecd80c19242529070b7de613def261b5b595c50b3074b1203ab224f0c4142851ea44480ec30ff3c18331774a853fbe07c23ccbe05d09ea4e2b15e31fdfe685b66301dcfb8afda77d31586a58a35f1766c76ba621984f81637320ee6b2bdbc926ebbd92c14e74cb278916d76d3c5bfa3b383e492e7947edc5164b82a6422e8983c2dfb064d037d1b1f61b223a4a6c76e0d0206565602458eca183e1060124a978f3e0948902634efc6b9e47dcf258570a029b4e413da8e756da54ce0e0895bc9f44518bb2b6e2eb8252aae2ad5f9e26cda02d2f599ec10f7b59bcf93c84940c93ab414b70ecd034ffb034b8177686200f3093c9339a02ba28d14520761927a8a8412fd023fbbdf3621299538071975f029af08704e300592ab1135dfbcd2bc95d11ae14d310e6359d6d30f37bc2a44eae1d001cfac8989cb353e6fed01df86a9bc18ff0d7cb2e72540335aa361a7ed88217d92582d64819b20ee487d90a6a0e311f6f39d002419281d9e45a61efb2a770a2cddee25b0b97cc94f80028752ddc38a2eeb6a9078333e62cca22e5a4fbd0820e1d5ce1b31546689b48c5e8669671c21f87930483f32ce46c61f6225ef907835396611b86389c5c070f67a0fc3e52a24896a7e287f58c3482c885b35ba802e0418b01fcc47184123106d60db765bb4305952b9cce7639ea14d6b5b60e844d4c2e902a3e200a846b9fb96c0a364560381a12a81fd868f23733c025f0a31cc2ae9b0373e061cc02075a74ff8ccc925aa2c9b28327df2f09542512dd839d7bb7192a42cfdd5e576ab81f9f9055fb096256b20b1a240bc535f4d3984355b04e1b92dfd864f453e2869d1230811a5bd46ebdb10c51f473369228e0de70c621a9daaedd8d07f56cd84b442e9e3a7c73395b8f7fed25ad4ff39b32c067c4f4a3e7744a0dd3d3c3746bf0dd9bddfaf1817c846a26f4f367122b307b0372a73ff1b65368c638a3560676115be083333da3cf47942c62c9d4422f26d3396b0a1ecc2170436aa6b5476ebc9f575e890d29a2ebc06abb31637b068bab4903e6735d8d75d603b701d105d79000f38eb56823c548b1962073d6542392b29ee0d4738139d4be562b65c433030e0ec3b12f672df8ea63770120378a756421e95c692265ea3645ad8595c145852b98e01eacbf1c8d160c855511d29219a606210ee6a8dba04eb08cd6fa693aa5500e65835f90481e06822202555d9049811957af318487485d41433e4ad4e1813f5c319d6c1f793a70b780102933ded832bd79659404a3f921440f099e99b05f18137d7e19280b78ee8e16a451579389b589101e42f1b079f3be829aac7d051f57aacb180503fb8466a12c9ac9d4093077f3329c974624c74e853eb976df2e62afb74c66296bcad0bae2aaf9b140cb349f2fef969ba6b4c62f6560a8e56997c061c71e7b42b2d38aeedde07cc2a2001259130c4ddd842fc73f79856bae197612f38c68576708f3d7538a9193fe624cea92079485bad98b9a00975c5c3ac1d2849c528fed73b5950b6ec6ca9a509b64ba4857defb2d0fe11661115480bfbd44fa4073e6f76e2ddf08472a79e20a0c84968d0688673aadb6e7220c7b87c5729f963b5e6e3ddbb6a7cf13588f5444cf8a167a677081063ebc0043adf57eb42016063a60a5e582572b49369e598eef8d480c45d0f828c44d8081ea7b35e5200f97d9f694412c8c9dbab6df7c247448b5f99e7236eafc51a61650c9e0adccb9e6dbc7909fa87fffa199f1548c6c2de364cec165c4d1b945505280df7cfa939f14312a7e9db0974de6781a3ffa6e953efae6884db2b0bdc5d2343decfe71f4107090ffdbd6e39d93ef12f128ef0a5ac022d176b005c04ea32b1e26010d6ed4649275ff41bc7a07d703546eda0474b8cb5b8cf1378b3e610a8ccec121cf08f9a5ba693b99df75184d8fd0649f2b18ff17c57d17015d8b985f24070a327e54f38879fa4db0e5f500ed027e5c77c1700d32b3fd3d1175a21e8270a76235b20bd3cd402bb3207367247ede2457dad9749200cfe449cb3958dd90e3e4d8113a167685aa4689fcbdef523954ab3e2a072a7bcb9b6630503439f4ef48d180f2d574bda915c13659ab4b7995d8012b42f8f02bdb4241b9752903453af80869e23ac8ed656430a68819b1ddc092b742a4f0407fa2824753a54084f16b53b6060024d15c5405aa7064cdeb481e2c3c8433d4a64708d800f29527fc1640b07701370abbc1832879a740b54db5195a2fb6474b47a716d68ea6fb36a86e768974b7f0ae885bf9aa5b2bd972f21541de955086cd688e6065eb45772562bd26aa2025af3521e4dcf31a2927e86597642accfc7d684dad2e1111900303fd46d169abd7cd130c6e374d4c2496f1e5b7528cf544035954076f78726f8da37507adb1fe26735da4725638cb9d8ffea43880bae0080326a16c433146a88d2d7b0c0f0ab877fe26fdbd2a0dfd5da74754cadf54e48451406a933ff0b203ac3544ecffaa5fa409641718e1dc7ebedf68e9fc37f03c0c4725bf449b1e28827055dbd036777a020b2671fd46ef8768134d00e6dc9ef7c0ba4002a58049c8d01c1a3e7747b0ee5f1cacc09e83d577a6c7b4f52d8a8edff66a3f917935e34fd161b0c288602a60ecead9d1ccf62ac78c9dadb3fdef472f414621b860ea0b3822245a20107a795f9c699f8f7123d37d3e23e298bb05b65605a29492f35dc0fba8600e15c22541f9999561124b6912eacea1ae2bd07dec0bbe7079b95dc1e090f84e12761a242c1c9daba59bcb58dc7da782a74898bbf3e5d358d577ad2770fe06755a949aa00262d44dc9b2a412161c83178eb0f677f5068e7e93a0de9de821fd7562f5cf5fa0011d6c6c0620cfa210a60036b651c436206a451155239175f1c972e023020fb6017d1539a00ea10e657ba02b8ef071b4bd794ecd7ba826f7f2e4cd5e9da50ccb486d7577a64b4e8d25a1b5c0ae773309f31b78385db76d04ad9b398c786b45c0870718eaa070f27a5502a5b2719e58b15b255fd86a6392f4099f272a21e8c2ea53e3a678346a41d1fff1790639a5fcdef583c213f7c9f4a8479487f36b83babec843c1bca56afe434312b3bcbf3b9db0e9e5e64055156fb2cc8de793b46c69d05a70b2624eb8ee2035f774d2185b467c81feea70425ecaedbb48467f0a0462fb49e36624b957e5238b5c9ad23a9f3c8cdc28294ec185edda53ebc24a9b7b1e2ff309f166eb4735ccd340b16d5b222807e3e29b8771a692841f154746fb63f2a5fab07b1b2702a54ba7bf67b2daf16007aa214226dd380443029afcb90a8fbf80a036ae26a3e9ac7a11f30e3066f1b0fef26f361b21850f91d4b9901b9a69ec004c30349351d58f2833bb52542c234d078d41ea0995cf6068d5e0adfc3230e7883d2c2695d1b6f1a1b3428f2aa82da355509662e8c72f1b85dcc09591a8b2ce81178301264afa49e747be46330e0cbca53fe1e2c1bc5c7e038df25c707402b5aaef6882db18cb5a8578ca1df3b2e1db04da2fe699af4db3eedd6f7c4761abb0cb34c09a464cb0e3cba64b8f2ae9dac22ea59367e99b72fd8b620165daccc00b1b129aff1a7f731a7f30d0db1173fda439e3c98ac65dcdd7860241efda85945794818703700ff7ddadeecfd1b6e7a286e927989063fd418c1612532fda7f17c68202bdcb70d02b201e6f37916e42cd5c58d60dd7d5538c1e0e2c9d052fbb60e47985daf99f97ffbf96a106541810e0a565b89bd134ec521e009dab8f64d7571c83bd94765d55f08983d5db37f6b22c984ce08a765d666877406321b8bab0f744aea02093600387b228379143a32c77ed066226ca385a9703d4a389bc48c10eee9b0c39126d42b6863e505e9d096531ac79ce825d73de9df9bb8046db9f9a941c3c08f0407bf4baf9409234b07b7321894e53767a54164e7b0a10eebaba92a241ad6a9436baea37a8dd6b5f0e8ab444eaa53ea84909d3c4482fa5286c1535733131e6c744ad6f2d9c8ea2fe19cb20f2f4979c2b4923890f335e52e56100543305f35d0b895bba9194a610c8e01c38cb378c15245e3af6b5f4db5d15369d5629d854c92671d29117abce2d57394f176e9239355b59609331945f719d54c53599c3a68ae0fe720e97aa4c6923559aade77d24e199ea06c4680e400ed2ca74065e95afb9035a61a775a81885588175aa5e8f56c29be90a588531e6ed918993371278d86f1225c35455178079180c8689cb48b5c5e3c2ac98234913fdc41432d0be5aba6a449a5d53c79ac8337d12b737c50a604a1dfa73eb7ad381c12a39efc8c9e13dd4c3062663e2e2e04558826b28cc700615cec997c9d109274c432135f0ad5096771b1c88f88393c0edcfc4be6a683533b928928f0d215d1a5236d26f2dfca7980a2ebc3ae208375df3cd7cf747da251238e499c46616421ecfed7fa3ce3600a8b6bc5a1521320b8077e38ccf283817aa553b0135b664d55671784ea28b6e1df7f70d21f34be4c4dadd7f852fe2948b487c7a9330118633064ef1d54b755548ef82edc59fe7b1ffdfa0c8e49a6cc5a9a6172fe9e45277ae48f0dc1d7e88ad29bad465a7fbaaf00703d6379fa384872047e4f5d08cb825dc461c7d5091ae9c5a9263b2dfd875217271bb8303457fc86c9a948f6b5606575bd6f2a3561dae3c32eb5804d693c1c652bec7d01dda4191fce039c99e32b317493102060cd7d12263732fa1535261db270222afce07650a53a7198b3312c090361ab907391c4331e2352551f776dbb1568b92dea390a4dd782c51016d15114566a4c1e6bc4543451880b4b52cf8f83b3cb94dbf7bf746634307dfb8dbb976378a2064bcd998dcd35e6769e9a08842bb6db4c3cbafeaf33dc71e36c8bae619ebecb470fd604db420b912677b06a5b41e70d0f59815837f919e0351d77ec3c4d8abfcbc1e5407c0a651c5cce7456e95de3337ba80313d06a67ce7c0d369db4a0708c203a1c1404c024cebdf9e7a1a0e7ee3067f934e2c9490a86f21bd844720534125d16fe144b20b848063b95144a0e65e9b9638d046124a24a84a78d24cc15713324b24c564827f30b61512247810ff699b9080e0a0cf882cb9b16914472d598e3bbad470c479d0899a430ca10d7c2f6d3c07f1f8c918e53b95301f224b29c6829e01b4d405595712d0c15accb86978f88d5f63b5459d804b3e2896bf7e48541f1ae23e3837277b4934bcdf0f2901de353b78d5705f56cd8280ca178501b0354a58b334464361310fb262098ddcf6093c52c1889e49e04f0da354463923b7448e1b3a35331444a6c1ca466fd7999cc7b59af49b98a5361c84594c5779974fc63f5ca01ab9494a5482a837f5bb21a41fb293eb4a39d3b07e00cfeb75a016172aefb9b31f144ffb8104869e4a232fb63e48b1687c9446439b69e21a2c203769ff4b054fc743d22e0bfeac794940b7744c97e63ed4860bf00098ee2eb43c6d4e39e1f550268bf7b7bcde43b629cf3ed35ad0b23d0acbe2d9e108c2e0e6a236ddf7d35bfa4d59d780709f0b46e6362c1f758359878de620e8727586be0e3b416d99f221344b3b532fe107ead926ec4b591020bb7cc92120600c31a59e0046308e4393cc3fbc94c16f316e91b3adeef1148f063fe189f72eae0b702ee84b95698cb6b69e5a75ef9ee07a1fde23643933882663b7cb75e739f8c0e4e0286277e7d0cdb069e381647a508443a7143820336fb90b75e9b009c8a4b569726d5d85834074549a681c9436200718002dd58ea0039b4c58efae6060e60ccbcdbcafd80409d7160b2f763ce92bd50926ed7d8628b596fad6e39d0f8a199c7edf7e4354b8b10f4698711b054ac0f55e18ac11e1e51a76534507c5037a6fb0d0b8767849cbe4ce8dec945c461326b4cb020a12e6685b30903a4e075aeb77ae4e2134a1d12d351b63f235de02671181cfc4a8358fb745d5c3bd1d363d81088ccd650eb496743ef0c7f7fd708d73a6caf5247e0713c44cd5708e719f0b3324671fa2518ffc847d41444bda9652ca245392017206280641065adc220de628ddea22a3302d61b0a1a1580c0b9622a3ee64c75cdae39860f9e53631176f33776c6e761867d8a5c718af565d4a8f3105197a6ac73d3dcd49a9558a86bdb0148179752b48084a142e3c4f12d9af813c20270d8b5aa86ea3b4af555bd2b0bbbb9bbfee8e714185d87a2956046d5abd52a7d9f374462b434f727bec11c48a036bb316ee38e52064dd76815970a7fd8739a79cd215638c31084f5c3d19ce044ad54fa916c968740640637678d25dbe7858d28b91b53ac0970020975f4895dc977980b30e6659f7687309cc5faf20212851c284d9628b2e5ddc8613fb3110901387c92a3eaf6f33770f0530f41c76cfb49442ab687821a442d41f8f6e9949ba6af1cb1898d5308ffcd6b6c06debfff6bc66b19a47c714f716449d66e8350ef4faa1d72d0040af73dc2f04d73b005441638622a64f779f7346fa011a6f09d1218f098238e7cbd9c130610e9dde30875f0450f60cc31cbecd70fa4c97dadd1dc4e6891a633776148a4211d6ad2f0ec529918a18f7635da3f66cdcc07e3146da42dd8ab139a79cf28d84c055affa2866e4a32806ad0f5883405874fd1372f95d782d1ec129a38685ff2af8a5930368ae974a7f54e44343312c55ac2000010e735230fb310c46c58b24a574d2d9b2baf6040a7e6428020d131078590ab41a40c58f272e50fec429fdef6907034b97924aeab204fa344ec9037322922c2b537dfa9c7452f75a2b11394120330f38b707c19d76295da3a139c11f26401ef11f10860677da691892c2a1974a372e3f0eb3707b461cfe6e4f1ccec0ed491fd5ef8c1a72dba2b4802edd5d4a4a99db2573bb9c53327b37d0194035ea50cfbe5a29e59433cbbafe1ac8a3dfeb2197a57b0dcce9f79aa5d7ef750b97a5d7c82eb60bb6d92ea175ab5dba4f9fd2d4552b55efb21a647223b427756025b7bb94d264d2bad530a0575a4a4925a57252d36b0cbdea0d614efd9add50c39e4e5d6a79c49833bae5915b736e86d167bc837eb558e66733f7a4ccb3bb7a84edee6e29a5cf6e185a4a9f2da5cfe69646aecb4e4af59a447d16b4cf5ac16a402e546928eaa1560c4b152b63ee8742d5eaa33d140ff6639807a3628b36ef592dcdc2d5c355f304798010e841afff73e16ad7abbbe66160910329b76d041d4cb8cf10eb22a3303860b1608e2989a56a2de6454c48a85b309ec2543c1d3ed88f8382a2c4a21550903963074300c12422ddfa2972c4f3aa67e3c77e508c0b31d02cc8a88e9a55316e554c85a55b9f2a486545a525966a92ee6723c4d904c555b4f9b9ad73fa4f75fbcb41f31fca3ed46c826e7c5550d4b19d2a1657f1696a9db1f6a40aca388d13400e021c70e7ab6271dbac55c56e8f5bdf149bb98f3f237776524a3f39d9e568afd42ada334c11de2d4a8ba0975f5622728240661e701982dbb5ba5483e808698cab06053524361980620c8c804924295918f28a12031f71815d0c24a751f69fea426a815ec52f75d9b62179a7821108b79f833cfa85b0e4604ebf10961cf4fa85b074f739bd7b98d39cec5810e21d4412d2ad4ea15bdca9288ca620a807dc69970be8a5c4893f172e5bb65cb922c2fd3c113ccff33c0f0150e7027015df0692fdf8e7a7d53de04e47317994315a400c15c424f191b7b066b1e2e2463038a8030128e4f3583ba273f3c39d19b4c48d1d88e1813bd3888d3e4662301c860742713f0f0acff33c8fe5c33b16600e0e19f6e322af880b0fdc9962c8e0c2798b186009f200224752082304494c99580f05c8872c1f50477b18dbfece7441e2a983718505b61a00bdf8b0c5d39ec61d00aefa4bdc061b1024ea7870d5ad66c1dec0e59e919d8539fd35b7bfd2be5acdc20b18217431a69188010583063228a9763c6f870a18e851b2c2c25204a684a55b45ddfa4a46252d252e3ba51d2e0c7c3fcfab19c27ea5582956b242bd74746482aa8e12044bfde262b94e497fd2974dbf762d50daa54ab077bebdb3731b714a38280356bbbfb4518389aee8a4c3f4983eeaa4f813950cede891e3361150a7f4b091b8f0a7b8f17b28ea943a5703661d1235ca2537c67762c58dffe5f0da886b242f13643f09054ab7be865d5853a151e08e0c7a2247b77afa9c724af7152c8f7716d011c5529aa35bed3b3cf4ec0b45ee0b2e5cb65a542305fbf3f3f3d3432385e649e0eb933e094cf3564edbf1c4266cadd574b3cf208f4cbb590cb79eea370ca5ecbdfa27136a97412f3bdd8c03b79e4ab534f33c3d53ea2accc9b253f77940e31c7a99d7ad48c4044f26c45bfa1d5eed768c10a4bdf8343434ae759dc1a5fbf429d7f802a92d479645d2fd32571542a910dcf187173583bdb990cb17345c18b885e2cffdaa4f4da2c17e5da5e87e5468470e2ceac8668fd385fd6a12aa0beb81148ac5eea7fd5c7e3f05451dea62fabafcdf0976f914021a9683eecc17f73b11fdc01eeb1ab21f75b92e3f650ba9ebf24fa4a8a375a65afb27120a3d25d54248f69376c4934f644e06dbdf51bad51d0fbd69267652e8f3b48fcade43bb9a14a9504da2433da810ab0626c659833f6417f10fd9b518e6e1efdf57c09dd8751930c7dfc958f9a6db363f17aec0c618ccf11aacec3e7854c48a3ad9db2ef2af5bd645a0b8f21fbace29b1fd54da732a259db4d24a2ba59476122687b61b6cf4973039d42d31dd4ac12c0bfbf793b0ebef32765dc26aad3129a6e8eed1db630e237ab0478ee5a33dfed50c2c7c22fb810bac3b01bf04441661dcef35971878eacd89852a7681b95b0e262202baec00244939acb0f06dccb0f04f6658f8364958f838562c37c5c22f0d61f94db12dc6e04edfb81ac3a62820024f51201381fcec610ffcfadea552f0f91e3b1524fdd8a552882f5f7645e4c7acf3e2ea09fb6df73dce47e4894122eca11c941cec710ef6c42daef8cdb07fbf8e3159e27e5d646d77472332fee285b1bbb8ccb10e19318f15c01dee3a0630a7ff42fb23855f71650473b280abfeae48526e3f17b79fb726f693af57d4a94141f5be48e80a9b4335c63fe2f7d732e04e1450a7bd80550cff885d1f318ffe2e95582c1d3a40002195bab95fdfb0910a6cfcaf06c5eeb75d5a83fd6ad06d28ede56065907cb5f7ab2b36956561ed85528861c1ed1ff221bdfb751deaafd50edd9e5d27c5152784fdea2bbaac129bfdd426d903694932c4b1638c1d6367a5d29b4aa552297ac7c3a980c91857ab49385becd75a91d36b6fa487e68df4f0ab10754c5d6aa62b32f3a637d263df484f5f7ecba91057f289edc60dec0df65364c4577bd109e7440f5612f6038a3a304b0f3dfcf105a55bf37240e00d818c9d37151f0a1788b9d1d51e67e9e17699f8c3c523ed319f21051319ee078f22fbd8985893099efc23670a12a403f636c31ff2bbbb6f08ca63dd607b8420ed310cf55f18c1cf2dfde44240c3664f6188e14d1e79c488eaa05297ae30f16b28e6eeeeee6e975ebd7a756f6fcebb224b8c9614dde0e40625a6e8248c285c92c65c78f289b0bb418b959ffbc1a41b922e7f117641132c056189a464606188c15e4f0273f8dd06c88367ba5848a4c4e87eee3a72f93fbf49c470284b5e17122d01bafcaec45f0c05c2660e818c95dfd60281d08b320432d61d089078a57cd941d613d66391f6b8fd48b75afbd1361dec0793b29a09d8600c1076fee6c4d600c5e81a88aedb427df9a6183b1266aebb7eb07c14754acf48b1a75dfee46abbd01e7ccac5306b2620c614088385444cb4dc0f26bd46a45b90888995cb5f84df5da69e5c5feaba32e9c6f77a02226ff6cdf17d8101376321ae9c2f9f7c22e58c48ae8bae1b0219fbec4aa2ce07e08a5f066bc3656e72f99989c01c7620ef0bfb19b90cc5c2f7a01b1e78dbe00e1039b3f95b5fae756bafbd3dd4f42ee28c66c214fd37b84353a95b71c01f15d8e04ebb3b3bc7d83d48a975833beddc84494a96124ac8dd25449f730a8ffd3e85769d99992b73b384518c54f9a0152da0156f1ee69cf3bd9b33ab947673c620af9ced31a9ddbbddddbbbbdbdbddb9249194522a37afdd5ab8fb102ed61fa22e0f415d762f2638e794de5ebdd2bd21189f33f7c9eb40bc69b80ec43b5fa07796bcb030f07cf8b38b21de1b9fa6c670fb6589898d2fb596b1a594d2b9ad74838def564ab36dd6b3f41f94a49470d53f616daffa8dd18904c2ba1de9f6b4fbdc6bf6d59f763cd15b3a8c32c452a954eabeecb32ceb6a7bb1d2d9dddd63b87b77f7b9bb77bb7bbb3331c1d9b269e7ee5fe7dcb63ba5fca9ba2e339dfab2fbd9dd2d913e2965731bcc6959e7943fe5b7301b0634fe15eacc979da589ab5803c6bb32d6e6604fec6bfb09d318a3a5c2c6a71fe9d31d28b8ea7804fa802d5b89ed87dd10a80568cec993277f77777377739b7e28a59432477f722f30a522a5f429a54f297d324b39dda52739952de594b3639dddddddddcd39fb29a5f427a52f69adc1dd59bab3740f41f70e23522a57a7457d254be9d2997b812fa748b8dc51d350a81c39543b5a1f8c797b37486874cf62043d2ed21c0e73e6b36b854fdef9ed6dec9af20885f8b3e369afc7b01fbb188afdce88441d214549b66357d67dd53294ee0721fe7cdb14bb991ebd6abfb1639566b07f9ba471bb7db09f67615acfa46182aa8fa6e8ce376d5e2ccd859b177b337774c09cf95f5c411ef3e1dfc86221f00780f33db8f3c19dcf823bf44e30ee845cdcf973ce04ec686f7eec3c98339fa7bd28ecac3f7ffe4c4140be7f0af2bd4bf5a4e09f8a9d10d3f438565ccda71c8c5914f6db9b1fbbad3d6f2804320c77e2cf9f3f1faa66d7024d11771c23ea401384ccfcf547c82e5d4aefa875776cc87d100a77f97117723f95cded5d7caef3fadc9d2561e2961ddd5dc609579fd5c02c30c8e2c2bf15563bb3af791c75650fb025e0c2e7bee5d30a71f0c458d4813dd068d239c30373fa618c672609d3943476cd6c74ddb6bb14bb6ad9c9a7b91abb351c2e3e43087bd040e8331ecc816f621bdcefee6ebfbecd7ddd8d6f9a1d69241513ecfe2f7e7bc7f6961dd482a8eeee3ea5fbe7eeeeade851ca661e31c637217e7497ec2ebdeab507dfdd3d83df3528c627313e89f1c9f4e9f2894ff924c62752fa8423a0723a0972307dba7ce2533e9153c26230987c024673675d259573ce39699554e32a7ef30072c358a761bcea7714b00e0f5fb179606db861b18d2766bbd5d073ff78e137ffa03c66a40fe7752a301b68966525ad2be5d998473f64f9c04282bc343af06cb3db4af24bcc2d6fc9e7b72ce10f14f3681b310d1683c1ee507b54daeb2abdeaef47f18f5e02f2e8d7628509148c7f64a5ec668a0fcb72ef631732bf55a2e6f2abbcc8f2b1c318be61e70662c9cc5ce2c9cc4718885f3f44e128973f9e7299a95cfe1a7a3e1eba5bee87fa5445f7db71b31e377b68829bbd67d9db1e906ef65b1337fbf76107377b0f4a969b3deb071e6ef6f5e493f9a8954641a9ead21d97be53faf645c5a5bf2db99488072b2e25eac1c9ab864b7f9e7c286c65774eedcb71a5ea4af935c995f2b71eaefcdf618c2b1fc6bcd9c31626e8c116e07e396eec72a30e576efced09096e7ce844cc8d11429d052489a2e5484ff774ec669c31d9dec9114debc881df73d081ca4910d76d92f85d0719d7fdabbf4d729d2887a2eb0520c3be4a09a2cd6a50ec575d600364868b264c510d900e94ccd81a929c6a304483830d5ad28c0f3798c49c8c4852ea02a651b121431a32b10049456d43a5296852d6058789dab2ee842f5cb50637c813be18a267d8e0278411226ab20612980be8041a88792d39c10b24221c88407202126a8319d528a79453065844f10cfbf9f94902051658c847d12ba5941bac220b34ba2a255d10e08a9821b058c3abc1d628218011971fc2709982c44505555e315d133c3900be7f732d40d8dd0f04deee422063639057761ffc0ef0ed7fc8b9ea34cdd29c73cee9b2a400538f1d5b8e0fa57286566e0bf3fdb36c9a2219cbd77dce2e65fa69ea4ae85b3f7b9389a3fff92d99ba5409f24d0f4496264ff3c48cf39f4e3d63e7a1964cfed9d7a813dfd479a52eab3663dd16f8e967943ee3c0f2a534fb5a7afeaf4b95ba12fa7e7c53a68ff18d5c53978a80ec605c953a23b7d6cf9e27661cfdca516a648e2076cc32eb53dad1e95475e97faa4ba594df101500ca58be52d29ff53fbe5daa7625c0f6e8cf48a53432392231a150728b417a282b96ffd32e10fed9cdeeb3dd10efb6c09fc763fdf9fd9d0bc00c3f5f722d7097a2fff1ec52b44b01c6d5173bc057fa4bce392a893132113b3211bd99581965f46690320ad92da390395460f9654fbe1d7fe8f6a2bd688fd18610962337045ab9115a7182374fe960b79a352c7cde6c7b5d71e8af31816596eed25517e2f02e27a5d38bf92e272dc3babbbbfb74af5e7dfa0985eaee5ec88f5942d9d4a374a78e453de2914ff36442098e8263e157983c4611c1b8bbbbbb7b742ee5cfd73d8a0bbbdafdd92c22f274cb163fa4a85e35f774361ba2356bd87eea75d320acbc1205fff9e1e14522d31e817419df4e4d7270526d669ae4bc7e8dfff5462ea54ac5ce664e58affbf6fa574b2c240262e23a6cda720659b4f041d2f0821ca89849b20b89808e80edd89054f413c491afa35c57b71806898018733b53726b609a89bbddfddcf5c31d38b9cbf7e64229963841fda07460bf5e95a949dd2a232474c40c5babc939cda5fd58b11288036a194e0a7de7a4b8be87be76a4b51fbeda4fd45cdd82b36ba1ec65b39fae26b5b78a6285ba1538b098a0ea63cd46019aaaa6477bfd260981f4e58ed5c572cb8e9dbb494a7902d293da87cc41e8791186ef5ec467f033cfaf9306774c3bf2993d56ddb88cdba6920b773ebf264f65587e9e16c363d24a3b3c2fbbda9b9859d51dfdb553097ed98b9810aff3b4698686d2d8696be03db7e1a8e16900d4e117f462d3026251e10b6e7ffc8239fd351a843b6ce316b78fef5d9e368db1aad3dfa07adb50271f7fd40e6c650f5f832d1f156e17527eb9c03cb8122705ae6139c808ed3da05de01f17f2e806d30098d365f06436e0683637361cf360a8be7bddde6b75cf9d95402f49d0248186124b684b28a9e1a1189625c2b81f17311730a6ff380c8bf93889892df7eb9f3ea2fdd7ae5672faaf9df42b4888ca93fb35ec7e4de5720f55a1f9afad60b9fc5dd4464dd0703b8cfdaf915a8c9aff7a4c27fdb89c70e27e11e8b2139bffe2aba1dcfc17a34421d8900c1cada0fe8b58b4e0fc17b944a3cb1f8f221297fb4531718c8dff62522c73e33f3fe240ecaf211dae47d9fe73219f82e33fa7e2432998c1c581e3b7930f8eed6f9c7cb61b2958726fbc8d93cf8d6ae3714e3e36709c68c1c579d4c907a7a2fee6e4837204dc5cb9d9716f6e9aa8726f9a20e3de3401746fdee6e47303c35c9baf39f9d8780d9513dc9ab7279f1afb34271f4bc3841697e6674e3e3433ae3bf3a793cfcca7dd13ea9ede4f28d8724f4c10714f49f7f4dac9e7a4bde9e4a39996f8e19a4aa5cf4e3ea52cb24c092e6ef61b6c05377ba8040bde004ad09080245a005b338798162e393b53bab8f1372492b8f13f8919a60835c72e0ebed96279b375ca4bc93cc1162a74f0c0da112eb893cb9d5f4f90c39d4f73f2999bbb0b881250090307318250f0a40a0d5e77779ff9b4d5fd501edc2f871723a4101951e60822ee7c2804833bfff4cc02244e7076342e79119a420a19d7dfa4a306fbd9ff92a3081bbe1015714424250577ea2801113de41031c59ddb131a4e6c378bda5ad575aa17517ab8fed4321162422d435471fd65016c305b68704443bceedca604beb842c6173e5401e38c259aa4b1e3f2ef60219cb83e6f5082865bde2d114c40a6d634a9b6d68a83521a84144c6c4811b405d1a5061c2a60378200c3044585cb4610366072138413441a2e9b2a84504133d45021e626280724768a242c3f36f6872534598e6a8e683283058b7da2c9494b8c468b12ed05b019239769cbcfe92849090b921664832699162053509925f50547251b9050298eb21c924c297e2a1032892a91835f419a444d50d812c382499657174c509022466402325c2864817d0774e403f8f1f2f2486033290410026685355d0885172804c085172d573cd1888ef40a2aa94e2c940d05a228bd925e909098a015ae2a57aaa2f05206083d784943882f493a2db67421145f5e55be0801021216c785507c5901192c80be780102195fcc00e10b3b2f84e20b1a5cbea8b1ede0e5e7628123c01ca7d1c1f99b26127570baae5ba65814b91481b5e743b07e1b3a0cc19a23626f7b4003db37d57ff3a9f8366fa427d58ff3a918a3919ef88a3ad00b18182d4ee8a0092ac2f4f4e976e7a9c07eac5d2a3ec42908e0fccd5300a74bc99ba7404a76426c3cea610fce532a36b8f88a2b7f141783e2cadf867ba5e4e37c6a3eea8df4dc7029f9379f9a5d0a02376ff329dcbccdcfb7e98a2031bb14701ed515b1f99b37d29345617988760cc3e150dc1657d186b35187481ce163cd7cd6fa401dfe0212893a0c13015e815b6097cf5ed3676b856d30867957eb3ed6e52fa04ebfc2c09d25200ceed4bc7d53f7c130a5ee835b64dd07bbd4ee835b68f7c12bb3fb4490ddc75a71355c7cc19c8f61b15f51276e812bffc8035cf9bbed3e1e5bd0749fd765c6e34b049397ba8fc7cae370d44cd95dd40273fc3b2a69cf2350175dedb9ff0a08dbef3f334d334569e645b890b5e27064b507dce12702736ad46124e0aa753e30d37d3cb6e8a275dfc32ba50e26b178ac3cee71d444ee780a87c18165243e6a8fc5c820e443d5477374ddc7fde0faf3c09d78fdef08ee70cc901cde0ecfdf6bcf860ef6f371b9679b43e2fbf30beef4fbb3e023eac09e67253ee67a9d9e4ffffa3e587fcaf9b83e7da07c584b7344c60b49121653bcfddc04eef8f7b3138eddb67255b0c00a2a18a9b082741d565c452b184c17b8055ea13e5fa3b5a2acccf11f6f5705299038b9b2fbf8a592ff0c833936f070bbff83d8b10be6f473317a52c535aa2940f262808d3f857c26c618638c11be4fce1f6e5eace9fb249d7fc4f9b1f6da4a7b558aacd05eafd09e0d1d5660a15b90c80a083bffc80fdc8197a57d9fbe9f59007f084995c03f73885d7e2355e04ec63aba7d850b5caefb77856ea5a6d77eca69593011e246d49c3ed81b59e0ce07b79f81ea37cd4c09ecccd3fcc4002b690f88e397c9b5839d1d0b2bb4e7a161eba3cab01fbb5cddf23f4203cd0ebe0789f8fdaca823847facb0d9ee21504be54e1c6c4fe3029b3da8b46c194a7a1aa219000000410013160000200c0a054422915018c8a9b67d14800f719040744e978ae3b12c85611404410c318000600c418610620c62a886ea003de5e1d9a6350566125d925067371e45d432140ab765f015d76e64b3ecde383c80a8aec68372f645c06a6f9a20fdb21f7a15b373a77fedfd873f223d35808229d389e38e892ef1045b7da152b4deb5359a561cd54baee34b4c39d2e8ab446f9f902ef46af036857fbc91207720913d19ba0ba8afce2fe68e1bbcd0e4ce5081340aef8b7d91ccd1f44ecc6571816a96a796b7c9bb2069111301a4b6bcd66c20000a0796d7169110a40cd5b9488380628753c9193fa8f3512a271ee8af624feb46ceae93879a54025b8385f5de11a504ae9713d172d05f5ea13b69234cd46b0cad69e59b7c424aa2253c3fcb8ccffe5414af359872b7940c3d22907a94696bfb79a198db57c27d71e10de7f3e9c75aa629cd793b6eee72a03c4daaa834e26af83b22edef50ac2d7787d1c5de6b138cd076763a6a41068dd8fc04a5111a895879d2a1f3748873bf74e441f96db708494f02418cd0e580419b4cf32f515c398e7b43f86fabf3869d8408c10566477077487f066b4ca2f2c20a1170ca6309cc3f4cb0ae25a9181f88a59f8c702312f2fe4b91606178d4e37e52abc06d3da073405d03065ef7558f4e6877c3c0a60f129174f5cfbcf836221f7104c090c4d69419136775b4695424d15091bc6cb08cabce75fdb81294a378704fdc8dfc4ce246aed7f5f68975a2682c2564368395d1c1d55a858eca725e07602f16ac9f7c206efb827ce238b795a13bbd95fe285d26bc9e2259e2cf6b47bcfd3f2ab4899b250fc6edc31cdd036a3815f9d8998154bb12cddee55bfb591f0b165b0ed2dd5428ef6eff41a4420f2bf0d68ffb5eaa2e14bfe815803a8145d118d1d63a775433f5a54190042589a12d37e77b44141afbc57dd47447f5f3085d970efb9ae8af554c66fda82e45248db79a63dc8ff59e23019175c6a1accae9d4649a58341d325ca21ee53146443ce8ef1a2e739f182061ae0fc839b999f1949bbe90856e1372163fea45aa4aa1bab09c1a98174b440042a9be74abc33e9ad4cd026638ac1e21d2b98a8ee13fb5be093b0b7a59ad958bfadace2a1dbb6e56204935b68e7167b3cb4f8457c4200b48dfec56ce1b678a1d640b763bc8a0d21785f17e66344e7aab3f8aea7713679f111d52b9b2a0b7a37dc8a19d4b8a95cd8b66fd3a9dd5b4006b6bb89c63c5b3a8935622560a32055257dafb45344353d095f35fbfb7945f5ada3ad537ef82d6143ec638ee6bdbb695ab763b753d93a91b0d66891673081c54c2bc08b1a0083b77e6a31721d8cc5bb8534cfa90a88e64adcd117222166801f8935953b2da05650471f3c9a7e795e98dbc27b85853f053f97dce5416bf3a222e7298c683ee5d41bac704ae076da3f8ebf58450bbd30b3984f0360ca2a7a3e72e3809801c3c3bd35f5304009e728b29033d1fe384dbc12aa804d7239d2d814a3ca5c3439d4e60da44b26eeafaf7ce20c41c2cb41f4ff56e0916986792fa07561f003d35fcbcfea7a138b0f6a1d0a27a3ba24204822cf5c1efdd0a3417ed56b902c9733ca16306dd6ee822144f85cfffd42885025e5359eb3b8d24d57750a45fdfb6867a513b7e4d778e47d23ae53006d5dc448b2e1a97cb8b8d4fea4573cb193e1fa4c3559433940ed1208ea1a4c20537eefed9ba92c363d3bbc097dbdd46705de85dc5f5ffe32205197e46125e25d4c669e9e3d593bf8c291ccb71d5d523d3455ee885124901243037db0532b7adae9ef37d7f986b3647325060968c81a00ccbb4b54da2a29c2019b454758dd0ca08a078d3768ce5898811da85a1c6b20029553cc32162a8a647c1fe6bab8cf7b3d10b17a13372c75c6b88e9707518bf1479b489ebc75d5da942f535e4fe946ab691102bc258635eac645d8550044fccc1d89f86ec8fc601efd5f0db9f65cc49dd44eee80a4650f52a72e88c6e685df55fd921deffffde581be8eb1a331903af255f902f71f09e1105f4b12706443a706479b83d406fc22fbca0313144056cf5fe53bd611b30047548cd97b0592c02d46a96d2b454cbd1de411f420364160b5600f1ba3693c45ffb94e8db5f9ac35484f878adc2ef4183511e24b239efa95db0f42797f4727ee519f9441dc5afab8260dad74af73f2d5aa456bbff575a36d327320fd0bcab9bb282c935680d3d353d2d70ef283dbad477ad103e0248331f224a6f0409bb72ca44d602292e9894de5b634eb847cdb63381674a7a6d8d39211e35df8e24de29e935ad9d11fa5173694712ef94f4da9a33423b6ab61d493c54d27b6b641b302d5bedfe27a9d6269d94f153947bf2003964a8d45619913ec14f8c3b74b51aa92fa88388c27be27e1f9a50a8b04cfaf83850d5b6c885124404417113206e454fc7ad61d825b07bc4906575eb409b47948d2914b6a7d74a9d860ab37a8513ef533d3df45f17695bc04b71f38c8139a38743ee2843aa76b683ba2e7f5b7e9223017a36ff5c8b07d36889814d14d3a055e43e89cb36f80ac1bced7088b86723723f39f8e39ecd876778bb46ef7b66dcee81237dbca09d5ae8b346f86dbbe6b90501ab64e5ac75ed807ef1501376bbfc7687b662827768ddebfc2227328c917f6da034364d39c1aa9e4edcc6c3f7fd915d21b872ed020c8ef8e57fc2fea6878a4cfbed89b482fa70771097b49be4bd1ab8bbf7a80b69114d8b8d91f629ad7789b86e036fca61eae49c85cd7d7f432f5af0ad3518e42ca2166029b6fecbc3fe1efb929cd0d4ef27c70e4d018d49184c3d0cbaa45ab8bd67748559792787324806154819077b6189c056c462599261ffbb6353caac41edfeed1539dd5319ed50a257bb106fb01fffd0bb2680fdb0b6f81f91436ce5df002515018d9362a1811e56d3b77288f699da832ec54157d01cfe0d48304f2e9fa84477022db268d15158633d84c2613be8c2c8a10dca95e84ba49ecbcc0f147aad3cfe656e856e8e1dc454cce845fb93a00470131d207abe769477c95e44a89647e0e32e5fd62e4a344a41754b90e23536d03ce3f0e8c637941a541cefbc1d4a5555ac8042db1cf57b0db17ffdff44f8e2e0107070b50fca70436c9e0f48cf49c7e7a731f40585429f1eef818fec719ddfc89eea8cd15fe851812ca0b60caa252faecedc1575f1e390540dfc27b789346d77018ab61b96804909b19b263c46db58f9b6be393eca1d72ff07f547ecfa0f02c46b91cfc1dabdc12d71f53882ec9b60d6e496dbb2fcfe2214ab105c56cadc80ee5a8ea0a00ac827680b7c3efdc19b4216f3a311ab6129739fd412bd8507965720d48a8a368f77715ab90dec5fa0b8071de8928f08aaa980de8d1969e3476e2e7182ee09130f39cd626f3c2e255614cc596fc6a5c29a2adaecdb609ba1dccfc702d3d93ed347efb320fdf7e13dd04eae4ae4ad9730265dadb29708fdb8c1d916a682aea2124266a647a2c7a53044afef1e923dc777796ddfa8b2319e7896577b99201d110082c231da14936d87f498cd0235693a616ce8785171395a3f299cebfe7660fc0cdf04c167439a2e3f2b6d545bdc92e1b98d2e57ae99c3d01b0a7e589d78d5326fa9c0a850127a00e771ce2a3e38abb4a3941c95085fcd7a1f338663c77536b2068db33bdb889cb5310bb807681e08d74ac8cc827b3938173f1514b2f944131d7af2a7ee28319f16156d3241b8384dce64b4b6dd1d33747cc0589150770061f8509b95533cecbb0f67104ae1276c9f490b4e802225dfcc322b725a80f19e097b4e57b53aeb8e560710f195542850201a377183ac48b74e13d14a05528d91a27f05d292c4de184b2983221b3e66139148fb7e881cd4ecb27b0313db55c6cb7e0d1397697f69e657a52e608866189ddbf672d39a79cc652ece7a64a63c13024875b354009e0da54f5f2813223fa5268b75bd1c54078be0400b2e63acfe199e12f8e49e415803557a3fcd5ed591c2635bc63832d1e9cd3a8920cd9a29375356cf464e14adfa2e471035cd1efd9976f40660abec9f64a438539d4b70c57653c30bfdd38de3643815cd2f056649efd241fd1c7aa7d38d6e184d5ab11717d34dbde29ebf281c66a513e28cc20e8c9c72ca9c1b28cf0db40bf45bf2bc45dd3fbc60a612794cf1cb21e3a319abeaee817334e50cdd70f66d29412aec04d8d7f46c3dd883e6ffc6293044a651e1178b72988592c9c20693ba56790cda158b7519bc01c1762588ace2c4af0f1e5ea0ec0d64bb59d49f6a8c451bff885078c17442d35338ae5ad98c3777cf26d37e1b1fd2a33b906e538580cb758eeed6a3c5c85d212a124d277654c8d71ce76d03bc39f6cc72a3a64fcf8b076fe2e4f63f6ef1fb6bd8d23d250d9d1510c3b9a4168417d95f625b52737d35fd9790ea7ffffb9f7652438b9f950ef8a99a5267752f1150fb1893ce4ac3a0ee37d0904c858949001561923b44bc4521453c56407555980583a22f8252b8cd568de7e3deed604384b6120d67cfce71e7477094e92565f1a550c63148f7cc5b70a76c0644157258ca3b1cdad502a84733a1828c6ee3291e8354f127701a5e9a15ceb34046cf9a7808ab003b747e40255ba8642778f61bd6fdf38e75e8515769da8cb9320234ab136de500894529e116f2512ce4683049809be44eff0622750d2ffdc09efa7507e032e8f9f12e2332d96982bc502a74d39925cfb304bd6ad7a72774019daa91bac9d7e66a2ecc206a81a9e21f549b7f4465b8f56a148170e1b1a782475d537a558db5b2b340a0726a5c6bd5dc886e08e8de1606b8ece1b431db7ee7a4b086120898cf9fff5299cb549bbcc80438fa0bd8888806ba494b8b7d9822aeb2d180b2c9a9abff300f757dbaf35399bcdf38c174548dcef6efc1a0da90ab972bfb62107262674bf86d0920b4f3a631de0b97a07cdda0443777213766baab3d5ad7441003f5faebab5ca8c83f13022669876e4ffad358db70cdac4eacf60265feafe4605a3394e0c1aba828614adfc66607d37c8b067979f7c3baff9d81560f1c2ea5a28cfe5e608d812a5823d1776c98e34df4819fb288d2583ae1d4e52b4e61f79b36968f56fa23ea9c476b69341ab6048da433b8e2ce47caa11576be727ce520dca47f20a83e0d3f7052235d671f7159cfb373c7a843be9372dbce1d5fc1bfbf232ba754323a673ef7ed9c837ef602617d6202edffed159279f08050334163588728e302f75048eead5c3e6e8db3c3f0afed5fcb38b5420b6a0a66b51739c9694535c43a81b09776035f5a2cbb7f437f7c8b951e42a764ae492b801877bcb7327e355a5cc57d994f7b1a567d0361bbe7e31b8400adc0ddc53f00a363bd72e755aa009add0fc23e7875c2227ecc81b44bc5efc24928e4a8d5bf1f4b52d02f29fe56400b1ec64169ef0237cec05743580f9525b4a3114a81770db43191e74a28d4b8f6a122db5542552caa4d8a5eb27d9dd685ff42e2f0c234fb1501b0cdbd53d7f30b974f27ba0d5415ad84b551689fcb4f707e838abf04faa4092ed62ddc9a9f384caa2d166be2753223d3925cdc98fc2b106a26516a331d5d8cb3d476dd0e381895db8ff432aece92e18aa5e72dfcded81082de5bcda1e20853624f3ce3fc041dea987d1eadf0c7b87611cdf3a51848fb05f48927ff0413140c292b5e2903b94c8bd28939d806c4e87a43408e5fbcc422a61df0a75a1336ae11fb4266e0faac2b810485cd7cfa3187c83429faa3e7fab52280ee120585f9e4a726acf5c1e9adefeef3995b1c01079abfbae1bef2586f9ad3e4ef0ee8fc038d0b0268253846ee92807b6577f24d128f4feffa10029e10f2779a9a3efd4eab4c9e8aa04fb64cc3c3ba71ec48f198036704f52184252356ceedfbaa196d33335666d75954f7414bff8be9208137d325529753dacd0c644e330a9371497ca02e0930c4beedf2048b9f340c7f47e304ed4b2baf1905223052b14ee5aac8657e45c9460e072b7931fc7d829c19e6f3333e80d86b9d984b0943318d53d137746725b0a7f6ac1cbec509f44401e17999d4663e3d13e005dd271422e2dbe938afb21f348405f11de259eab154757921068c879a6175849569ecde30fa9236488230d5f79d2cef4ca488bb504b0d13254af13c77ac6a05cd4f42785865c7c562d288bc5d5d4674fa60c308301f9dae881d801039599c2fe6cc4d35ee428c25a932552c4265f5c8794bb968d89986454d6e3645d0d9ecad02a7ca542047c8f44bb86cad962813a9c1e63fc25d80f5156b7c7ba335e212e9ca593f40591148821ba07701204900dca32d179712f681ca5df4e6a32330bff409331252ad7549c56190076ce5fcb36e8ee7d6af6614b38a5e4eaa015244dac3d06bbe786b22a1f4ad9e5e77952198745be009818d3f1bb5a7705549f55568931c3fec26b8bd5e6d5fd072ab96e8e69dfb7b6ff838d5233cc1420957a5c12ab67a0a78ef5e84bc39760b866b016031c2616dd5ae032fb81e9d73a595b5c95ee55edf08d11e342e53ac3e25580258fd4ab8d40f000f4b568765d588042b820714f329c94bf7f0ac9b8aabefbe3b00e2d584e0e9a989fcf6a06dc978c2175aa52732e4ee46c3164aa7b71b79503f1c1e5f1a572b5b8537fd0b175288f758e9c94434d1705a6dc9863bc14d6559c3b8ddd7f01c7c951d1cff0d0880dfcf218625b5be9ae8769d93c173b38df8504f021c8b02181c2e93bfd8f874abd07c0061aecaa4b5ba88b0147f78cfbaa0c8e981ddba895b2dfa6a2e2fa9ac16792cb84d9b532f3f72e47491d94da3a7204d0fb9aa70ef0100f480734ddef496e3e39ecf1c7f92466a6b7f327591dbce8d611050f3544b6d88f0cda28c68f687c040503459a76264bba5633f3f8ba98fe416390c8c1e004143c526cf831ca66d6c402897b1afe62064d5517013872052e4fb015871e29a42ccec92170a6223fa14fd378b31a4295d0780d54ddeea6f4affeb5a1e80e50fea1e0567c4f9081a8503a4dfebd367b4c46fd29bf3dd4451840dc81e3b25f6cbc159e18601e65bd110f66e7b13cd1df0036fddf9f9cdb1e89aa5e1cd1600b6d9e9b72695bbb1da0bfd0b57876f32267a2090eb34cc2ff6a194f0ef0567d0ca86a9323c16bd2da5676c595b665a0b03838096e2e1dd22f4752a071c7bc935429f8019fabf4cd057dff4a005178e8cef240f80fe1e9ec48d51e8b78556a1af5eb7732f669ae89d2d5100365960e5cd22e2dff8cc564f4e0f3024413e28aa1af56a2a441bfdd8601eb180bf3f3e60753fa992274a508d10cb466bc6139b3cfe0136e23a3567ef235c5d664cff1ab62d6295989943e2cc8abdc36cf0b64244f9598e6e2e3393c4fda7301b12015391b54a5b5e3987ce0dc9a8c76590b92b33c175bf54622b738aea015c03efed5d15c3213d4472136ac6c22933f2c57ac73e370912be69d4a76888c73d67f8db33236ebe304e7a41ace177eb2ecd3a5bfdd56fd6640bf67364e38df4a3817bd762e5c27bc4d6a1585fbed06f8faf796b4b20f14386df11dd619626209c1912110a61c565601147914a597fe017e746e8452c079bf2d05b1f04dca482bc2cbe01ec4e0157cbd439e1c1f6f9c1b71c677a768bfd763767d79ced7ebd75a4cd1ad9bf18a7b0de6a248d4d629e43b622d9cebaffb52816579e53c8d315b2d6f56a6e84ebbe2e1aafaf7276285d1a1b19c2c250da0243e518e2e0c1600d470b3aba7dd90c840534cf71e155107278281deeb668e267fb58534f0614364bbd9677417ace2fcc338332b9f3ee82ee61fe904d1f89247d1d451c8da518da6032b059ecde727d56df61f49283a48652476a3e84f5ba5d5d4c6752f4e9391d951f359776242d2f540255341dd9d05285ba97b521a50a56f2b61b5942780d6c98a202abe6bd5bb28470ce7c5fc8969713236952249a6d6d445a0115d062010a6bb5fa051948983e9ea76f34a14eedf813486727639bdd1db48af2fa4566f02b62047875c505eae1c707f3d86c9c4a63e23dd5086e710343c8082dad2eee2b7d4684645f7421f618a08b6ad4f7e7c0ca6fad0c5b7c763d0eebe4fd396833acdf5518a0593560024d250be5c14ce670e48b24fe0f9a5e9eb807f6088c6ffae15e290bcf1395cb07bf4ef4e4db62bcc1474ec2a04e038a0a6e8200bdc3548874b9cac56421aa2145f750b6ef8e0ee99f001c6867c27b160862d7180434191f0d5e2bf76ee9d90ad576417f1008e333747606824090bf3c7a782a9affbe2e8a9426cd6c32f0b3b09ccec0f059c1a8a30fa02f9afe4f90928b8c3a34a5423341fe6273951757a9f528979a674f692ffbdc1bc9c30a0a7eb42f4f497aab5f040f718999a2c7f18885e11b3267a6dc88fafb6929eb01f5a47bd2c2520cccb5c22132a129b536826b701fa045ee12cce3d87c3277ac04dbbd387efad29f1b3d462804b0dddf8a868991a5a30bc8d1acb672b70d65e73f449130be70a17b392357f6c3d98736e9cf5a419b7448c2c8396f70a3e2d43c54eab2ecd28dfd9a3dd9900a0fd062c5a110961ecf3a6f07a6696a840011568993570e529dc51c852f2685c7b90718160a50506550f2ddd2ae21ea80834e2df5eb9b52c20c9399818a6d42b19dab8b129b96514ffc716e0207d0abf341f151e5f6367271dc7436a8a50d2a086a388f4236acb9f16f8fb9806cd3f096f8230b8ff98163a3f4d38a0bb52f2ef5b1cd404e428f82490665690137548f4a434fc0c01834089c7ae2bb61728fe23e82c42e5a5b88556763506e73dd93520a96f50d5fd1304575f5aa249c85c4db215d4c2131f957652a3a820a023924c0f4b0ffd3e0b48c4ad795da5e6c2557a38b9e17760711ae82b28cff698a810014f9ef9a77aa64be74e22c9823f84f3dcabb56bffde9b08a08200de8fa6f31c28264624063e31c1765caac2abf0bed0d6eba3893599830696098400cbd19318b8b13e240f343ac96c3d99946c5124ae2ed786a5a5d4c71d5d5ec9c0d5454769a899e5ab10b5d6e460316086a8e7b42aa4d0c5adfa3a546d9dec2c13d8762235fdec065055d16667706501f06393387f28c1666da9aee5ded3d51235798f029ef1e3a5b2ca63df8654d4f59b429328ad836b7c9163130b5ff3cc5483f8147db9fe02f5cc0c971884042b3ae76d10c99d191470765d60964be80c107d8c9511475b960f02046efdaebcf4670b66c12b3ef73c28e35f2d4c437f5f2a931571bf224fa3a142e06809d48452fd061329ac16a9b5b512e1a33699b3ef3978ac78472f92df8297e25f9146d1495e8e32ef060348e3cddda7e7ab6b4ab430a4751a0b0cbb39ab97f7a633183ee8ea7f0d5d95a4609218221fc4f99a48d581cfe1a89359f2732b92c46c86317f5f22d86bf0566864ef94d512a280949528fed081ce6b06c0e0a176b05eb67816132c8189f10cca3ec9e25bc13327131681ee77a08867f44b4497341210d98a7d7be2b53d7917ff7dff8e7a8497738b652c3e2a76294d097edeb7e26056ab5f7778c1e30044f2d717a38ec27af6bffbd834dc6a84d529019a021652758642085202f26ba30285d944f19b8f2dad25fb8e23eabf1eddd28b3702d0cd765e10e9ae85e6c677d609630e23e6c2d8fbb4dc3b1a89ec288c46e5b1c1efa489f35ef9ca2d69ec3198034b8921caa6bee2ac8e91c3a4638c445fd5441d4a26792a798446a47ae075d435809f0dd5d21014c50f9aaddd4f3817b816ac882d4421ff0b03cdc0a336692a37683bbcea21a625b3834166b18259b8d9519e9670a45c9cbe840123d7e670b11354f653b873eab307d14f40327958f311af571dae26887d761dbee7c5d5aed52664344b3f1b4a24fa98d782b3eff40115f4bf12db32cc05ad27ef23cadffd5efa1c21ae33e4c1595c0a779d584f6295e9e68f5d685daeb96f9b40eb44971f47c87ebf584a7eb2e85bd1bd812ea0d70fa7a478fadfb2284fc3e83a5393c33b142865cbb1c5ec36e98bfd33912d7e4825727b62ef39c22f619d3df61a2ef99221ed158624309c7ce8013da7f8caa7a8dfeae29d618c0a02fbfe63e6daae89c56b7e966aa7af5c57385100884aacf71f38a2c3248fb3d35027b4e6fd2bd18fbd24031b21f52ed602af8333d156ee69afedd59f681548a2687a8d4f49bb764c431fdf89273ec1648441c0e02d539345a4ccefb91cb8a6b8fad9f76437b5be6b804789bbd7270d5e05d43a7905d084554e6bd8aee8b100739a3c2b3303c107019117f3336ec01c9705c60b11df9d3fa82cbbbd0ccc91b1a92b4808af393d4f7d4d8450e0927883a9591a31b76841d882746a97d71fb16acb21beef9d0abba913961f4dd7066d9e38cb2000f578f8d0e9edea67b979fb4a2f903a515841c0f3f8d3bbc1b92b00f2478d513e062f446b53a938d39231e9635c26f2c71ce7bebec061749f7c08d4f656d1675ccdc480aa8fa863038ffdae98f5dcc8f01de4520f8cba5f3cb8134881977d1b41c082c4eb9df11427bd7b125c74d2cd5187789176640a230176aa6378ab71b44cd104f78ab575e83ab1193eb0e6be00bb41f3b539c2b39e712a3db28f49341399fa264e1024b7eb8e8d75b2ec3ff13c52854830bea5529b2f795ed4fc6212cffecb48c4216d728f83144a9961a5809842baa719799047a1dfadbc48a933444ffec3194f455a1c2b55f9993bbd8482cd08c25607406a213840ae9d2eda58d75579f358d9e5c376756e56048f610545165da4355c373d3957e908749573c180414eacdad3dd73eb17fec14db2abf03c3e05e054a99462f72c66894c81e68c0cc289e09490fb967b10167eec9cb8060777055ce7d9f201f6e60b307027424d42fb740b87d369ebe2685c8b91bba2f21ec080cc1a64d3ef393643d6fdf6567fae840deb4ec1c9e37671e86076ac0d7b9e89f38710688f330ea1a46eec214dc52d8bcde5886b6c3bc04bb411de8252c59989c3bb10bc5599a72869f04e47b4fccaaaa3a737e00141a3f4b4c3fc3bb0a5c653da02edfb87d93e7dac1daa3a1e7df4a4e2389920840c1517902a71be2d60d34e4d34bf7da1dd159fe07c06085a1c5c2faa845b47db15e0a248ba059854bb1323ffd614eceb5524a888915d993c5f6c7b3d98bac7f795b57ff925c61b6e11567cdc2a028b1f62d316801fd2b28deb49835a513cbed4ae14dfbbfc0963887968718bb4fb8dbde18ad6d302cf0b48cdfe64e6dddf4b9d60dd756d8d03f8c747c13bdc0794983251d4392bbb51d7f71ce70c74fbb7adce0f9d6a4f04d05b2252bfbc38fd930ab9d9938cea56af2efdc666318465e94739e9313134c2221af1ef23f16e8bc3f7e4d410616887a2cb00df9bb6203bba7fb8c21f7587cbdceebf3fd8990ead864a0971b5b5d0f2df4e47e23b963f8042f08055739f1e2d699e83182e7b6090745ac34457d01f0eab73ac00d34486ec652ad6e86816342bb45e11cea2a01b30a67219793231693162e323459eaa4722772a86b7a0e4df05414a82621a81405d9efd95fe98e45b5bb9f65bd7628008ad2b7d3d3e2acdc563e49263cde3c02b40554fc4a9b7a85234cf01b18dc199ceac2c4a5dda4cc69ba7160e44c70aa61fb0aed3903c70c1481017293f7b911e50965c9bc0104a89f207e926befffe80706bee0d7aca9e071d83776ff16289e3c03c0605c4aae3b125e570b2a2584cf08a2f1bf3755f90909f729b3674f0bc0162f834e40213c44a2ca0aefd0c15803d0fc2619a93c99fcca16b766ff72fcad95311463411b4fc7882a234c09a2021656d60606557c243c9253ba7c446d9bf4caf24f8c8f1e72e021262d0316c8e7fc60446c9a08938cecbfeb0014e6a952ff4ad7ba885abbf803645ee712b6070f757d19906d1fc892a0f93d8efe6ea15c69ecd8b203b18b103074e048af4d3114290cb717173d40c1119eb4aa93189dc6b3c3dd4b0e94bd2edee4225e266bca4accc01df5f4ac0c826caf28978ee7c15e5f5417ec29c030cf86fcd07b2e973e1ce7394c8d1984b578dd44b2f10c78a952e189031a814e68096b206215cbe87c385ca38436812320e30dfb1ed5c2b46d59362acf150186056d76532de0dbecc3614f6a14c34ee8a0971bce13ba2334afbfb1e4b4e660ba8af564508b8b0c1364bc38b5b59ec9b4dc56d8090248016247147ef3bdaedb6c3d63f8fd7342169f5074b1b335352987cd8525816aa2024d1a1c6b2d01ba01098f728386813aafe8027e21f81852ae5f24860cbdd0f3f2992f02d586c181a47c5166fb3ffde1070dffdf0846adefb9851b2e2b3efe221616119bc58881c4b19cdffa2f017fc760b1a1e8492a8d1710078460a34d3e47c12b9782296c4cb010b773d3a5822dd3f2ff8e47c0a9325c5dd15f5135478a9c8ef8eb42d54b2724eba1a646887d148634f602f53d04e5c1f47e1f759f6e581a2b2eb0240ad9a0970cf33fe2b6f4d5a4259b1234930c77a5462805240d3c8317c0ab8617bd40ad4ba73de220c527507263aa344ba2434627806ee422366d9ed060678835a63518e68b56a88a71a248e3f60d55ae3263014e2638d86c8eedd8dbe3dc789e21596d13b5667756d4c2289e9bfd99bd67aa3c64688a0059ba9ec88c276e62595a3f0b44c5d1d7b71a027d6996ec015ecf0d45378085130be7aea01ea12a4ee469255d76aa38bd4f65a282761f01b81b82513646b1d55b868bba7d902704605375c9bd2e22814059403e2db739b62831dd6e3815058fc154e1360f5c5f15a1768f6be7e66a986081d97b28ac19d802171612e98a7b9581f6c33c0d97f2e205d1f5bf04f747b5738e9bc73984fccea16484f9c44dfec9ecb5ff8e7d0edc2f9036ca3f821b4a3cd2601207c0ff3e6a7fdc48cbf0361e6cded2cfc9ee31ebd8da1957a8d8488cae3f5df2b6b56eebb00349a86b83b8c89486ab923f4914a2042b559f4b85fc980684e56461c754d661d64a2050435472f3e01948036b772008fa7508f2ae127af50d449ec22d9445a3a814c0b4a2feb40280164e2f7f9de115cb6c66b2a6ae6a5537a154bdc7394c7e68aff4b801d035457fddcc901d743f04d81c789f0a84cd45d1a36e0bb2f211661d6ee498a9aa92e12e4a4e78f766fa2e41ecc14a4d3cf4e1aa6a94af661375ac088b59c60ed0c599df434f157ff238edb7090e77f25d09105409f62a212ba3c778db13a536f4a6a00b0df7c5e42e3cc30aca2368a92e33021732c9b841c1cdaf4bd7c410373ecca70266dcba0f846b0f69a3594ae0d53dfa5dc78e2a9701a9238ea6dfbd1433998132862eb1b3a26a5c9e68363b5574698523983e9fbfcc363a719096099a233f86f8271e75f022b5872faf70917d6f330df8772e83bd10994a5ce2500585b4998e6552c19b25a63b86cdfed7318e9351e7899c4a50839486f4b9a8b2bb324d1f0423210626efd13d8b8feecc7c7477def98afd1920820e63084e383d837b7af09d70312afe2667bbd1e285191d40e862268345330350d326246cfa285997b27e56106109aadbb2ee84587538f34a955b4f58415d155a177ba310e57931ec927a64cc97f0f64e59105858d6effc23f80a81c743bd58855d1bdea8534675417d67621aad1654ac3446c7d5f4d4838f9dd03c162c8fff60745107669c3e6272ad27a9038e8effb1515b26c19f1189536e3d5fe672685a2b7dd1523002ce6bee881e1d57e94146dc8e1b62629142b1190a848cd3dfa5d3f2262cec7b1c21ba597aee2196af6216bb0d694908905b7314e41ff485c41465c286092af1dcd62eb388f09673784efa4658578192c1a7b8d12bfb1aa1d3166432e3386474b20dbced3b4d5024dcdada070df1ab5e97a67a727918b234e6e7257c1b9804216f844fb18a190003487e22cc7a6132ff4e0318d023fa9a725956ddb599e7d939e244b2c85df5110469a54762d340317f379910b827a1f817e636d30e4015f708c124917883df69b6f7f76ae52111bf8fb683449d12de24b489f9edc2638f158c6bbb9e13ff49a8de6a394c0638aaeac063ca5e3f0b8390a5529bb8bf2889a9e3c39840ed9b880dc93ce39a973efce239cef392d7461a45d08dfd478a0593736c15440285ba55ca5c6d7dabaa0a4450974b591a32c799a2bc8e5f2dcdad53e7184d4f7b799481f8fe95578778d4161ed6aee63ed90e0999d906a77f5a3f5ea301220ea1c725ad32a239492d8d4c3df074c3aaa0855520aced441a607f811871bf7df8337877080caa66062b7c525baf1a34779e421b53959b941199d81276171074d4135e4235b488f4c7a750942be3a9201462205219194a7c995f0310e5374ddac9b56fed515445553d3195be34b94df23c4aac01f0e27905500e45f2eae2343cd46f0215e4beca9bde9f875c8a37e446712103667b613214df663d460d198c6710a62c428c14b0862fc0d26b778eaa3c5c56b340330986020ca17401d4ac091ff680d32ea1de53904a0f381e10ab652b2922cd766dee0f13b70fcf9bd22f4161f205c464db27828eca16397ae2805823a19cc2750824ea7d69e2f2d5e3b07d4913579632daf6e318d3442ec7ea015d676ba4407d7ba806e3f9e3f30f97940cc64aad84e3f6254a6fa9b5dba0fff220504a83fc1f8fa1731e113fc77c55c68e9a930442ab0659a6044c383fc6539d68d03ffd27b4f62a92e4cbaea05832bb8b6d6d99590026111f20d8f0a31202cf631eb1aefe800ef8a32e3f0efea425c9e147010e1d487a63a8044dacd7c6054a32b8a2292d46fa4eb9e9282eb155332d1c3d5a374a1affa4180fcc5f18f402fe0b392567441b56a024cfaa41d6ba9701d49e99ed7b3660581e2a7eea04218aebc3543932ce112fd7255c49d8f7050c21c0109a7e894471513f5ff3008478e79b93f5ce3379bedc1da3f8b48df4bc022f202f4ed3db5c341a48d6ce1290b4f12aef7447e9f9f3810506d3293b91813680c090668cb32a41e79df6130608e7d02cd356d9c025ad80bcce91433d6b9000c3505b70ff84c1fba8b20a039707e0f14e30b05f7c7fc79960ce230558f08c0e3fab4b9f65f786f2b8a54e753d015466d1dc3ab1b9c14afe0a1e502756108a583610aa47800e299315b4c8b57ef5367fe784c74f26a9da6eaa98fe823a53ca74858bd9d91e1625ce1182ca0e003ba99ff985e6e31ffaab2a42c64fbc79f967e1085d64a288346b35d3c85c7d306a70c299cfd161beb2de1a411fdaaa5868d608f2fc701c52c8f0ab01f470f80119c69412a51c272d91e89d5164b1c68ef8a3ec54b0f1c5281aa55395b21248c64a0da111b66787db9f60cd008ba6911b6e0a7cf20a5d495a32eb323e2271ab69ec2c311e65d4299f9664a4ff4c94878313000721493a4f310294b3be3b146960223d7bff5b5fb99e28da50db50f2aacf4120c7213196d13c7a54a81171b96a3d64329bbfaa982671857bbad14584e7cea2ac68e7597f163be3d99a3592327e450309a67ae008a8a61905611bb504a37eab5de100758ba6949e06a58de6150e55548e254ede668f58c91e693b14e79d8eaa11c2e0421ca61df05cf938d7134e383ebc7871ae1a2c58c2f5517d87b9908d802e279e59528e3e537083387604da3bf35ee154f321e43a6140ced63af45bd6fab2207e6a0fd763009163901c729f0129c4a1e2b7a0579eaa28195780fed4dd0026cf0c7a67b6d1609971d3cd126a3383aecc2ddc48a8a982898cf098cb5d42afadc1c4a47c4a2663b57312932d7f32e7fefe28c72791d3af9f0c047b893cfa319dde0b3cdb8cb0ceb0e8cf1e0b95423e83aa95c241113ed6a9ff261a3a9d46d7aad76ee6de9c78983dd6ed30acb9d25cdc99c5a1be1e2a1f0d9d326157de829e80b2c9e115095b3373654f0f1f2c79ab2ef14e286d3971a03265587db68552bc1087b51668b4f73d848d185fc6e3e9877d9cc081aff78e1dc9431597304988c0a75f36ee5120144305f8346d6357900af093c6e46313ef64d50565092d11e799144631acbea0eee62230036e3b3045717ef8bd6aba793775b9784dbe8e111a7d2228bf51a1074f884cdcedd2b02165b7798e4440ac9b23f17d56c13c27e1f255adf03be24d383cbe1df45f22b13d7195d062681e7eaa0e818fc6b77a54225b72e12d3955f1ac4cab715d0953c378f1ec60fbcd96bef90a0e3aea78f3045f37274b62e2018b6f00c92a2c6b3ff6ded0367738a71de53239809f3e989849f4fe0838b95794374faf94e4c057be487c909314e001a2ef65670deb9baf78c6033782a6da2142dfc4ac579ecd8954128f9184738183e24ec0669f68ebfef5d45acf0c55d8066f5a9d90560f0f0bc2bebc532cff96fd60a0871fed64c6d486fa80577a00ceae9e0970befd704202313bef42c5ea60388220b656a349c33043538b71ace4493419f74ed7c2a856fa40b343863bfeaabb278a9476f002baf0661f307ae1a0b54becc819be74ee85fb4acf3d1b28258816e790b3df688836ebb6a296a4afb9a83f09cd605dbf1f6fc69138d630b6fb0ed7df78684ca308f3e250a5e5b2dd368de117e2dcdcf5a7085cf131845d52a93ddea3d9c5e5c3856e6edef39edc4c7c1418cb18f36842f9a14cb2d9ab4f76aceac7f9bdf5b265db42a40fba1315015df3870b9c9b72cc594a1b0e388e15189061c836ae34c82312c8dd7d60337f1a525359b2a6a5814e945312612faedf35d1f31598e61d6ef6fec051531e19499c327c86767f59c9351402cd2eb9b3d1057f517947f2b48f8e29f60cd6e0d7356decd5ccd2f8a6d78236a57345e217cfa010217627f59a984e7e22f46fc3ed44b6d782b7c0ae1b62dff37b4f29e90a4dc36db46059ca6ef10ca19a6a9b165abdb619e8a6e88bd714cfb1794f455344890db922610ab85a4f51b2b650d29d040cd87b9a641496a5d80df6061ae3c3ea838d2cafd7c2efe9f6db320c160c318a79da0291fad37c653f08bf83dc460de309f3678e5546e280fcecbc925fc078c487f52219c37721d8f8a988db86b875112775f07b3fbf22c916b9a146698c0a2440382f505ea43de230c3dae864bec3e5b936df2b0ea2ab2ee9f1f5a1db35cac543990ba7541abd46428b554f1b48e60389352702dba8cd6933ca96cd51b58dcd02c17241869cddfc4fec42d5e58a78bbaa19ee5608465bfa2a8d1c84bd89d78e270c378501a69bbae83f82485fe5549e321f445dcb2b5b3364d6d3e76a3bba9d0eff6723c9cadee792d6d4cc018b2da3c0923c33c3cb8d6700fd529fdad01b1e67dc6ce33c8696a081fc88e7413ada38af2538c48d01dbd536e514b39fc792617f254812425b82f81d5fc38d10308b34d54d5f33df66062e6f465b17bb111e699028005802c91a936982d70fdb00bce4f47f69646ea73d83d5aa8c5c7efc33618bcb1f3ae1fd930fac172b52463bca165e5a4b6254358cf264a8d0b5c574cd1aab2a363f83844eda4ba41b860bd58f9aa4c11216c8e8c9a16a638a5c44de488c8f6e6613cdc21cd1bf2e729970d8670a72e5efd23b598268b992e620aba4245c1c77c3960a6c417374826bc4547ec587573613ae6f7e3051f4490c1fae56c06e80f00155142fc7d3753a155b56dfbf190ecda9f3fa2e2573595d24de7b441ee8ddc0d7e7c35aef48df8242e05bff928b6934a03c8e79cc6d762f24b1ec3637bafa0f3170290203fbe806633b351a3a514c13f67a94245d8f7184bee14f956494b689e6034f616d49032fe7fbcf2d9b9c324deb1342e8944d581b84e7bf9c154713ff6f74c1b8445dd29dcd1110c243d277622e95639e08720b43dafcf82c29122767686d82fbc7bdf6dc58960473c0deffe9e5de40054217aa761b147be64a3ea5fccc2504680c2a94951a54e48eb68229b53521b91665f3f14903a9eeb8458043295dc7c38cdca52c48d8263161fba31469a85dbcd1bd23a39be57fa4226e4dd09211fb482c985ba202043adf62cffc9afc18bdb3bb50741fd6f9b456a9084301f15be12acc8aff89a376750437db0d8b044778fdb4ce47a8b0196e33ffe43ef7a2b1da333343f7f88a6807911a8c58fe2194bca44c5ac1b306fb0fa8071b2214226fa74d4d2747df8c65242d085b17e9741cbb857d2bee7e4c9d3a58aaaf7ffa10b47dbb55a9f69869cd4644ecd381cd92cca1cf7803d0d3a12e7935a84a957b8be4c112853e0531008e7666f6b286c3ccad03d4b255fb7f35ba30c1c25912e5f1199d5f13b503a2f8138c60bb9f0dc174abd4b0e50589505c5e163f72454c697a901c088ad7fcf1093ede25b2d9d061a2013871af05e67fa47c76c1b6d82687681ce3c1fb5d21b5435890cb0e6cc2133ed01ac0c98d2b92b47a8d00a6810dd6696ebfdfa102e37822745ad04adc6134368688d4a87c4b82bd47316dbdc0a4b3c4108c6b8038b57a71a326847d317c3067eb8613e704386bd377b808482d875c21fe4cff2a41276de88f9822fa5aa35fb029cbe4edf16b847e038a8abb896a68e713b2f203c2019a05acad18dadada8f7c96359af0383669ba49103e2f5b3581016eecf3cf573077752b29f43b894c266a5a521f6a8c56318df8da26487394cc88541e9b663ac49a379c4819b89ff5e57f50e3c76e1c1b02c1446ca4b5a8d9443ee80549d0edf1009a263464278ae68b69902993abb4879508c9653e7793cc99327e876236ac5d8f54e394da52b31be3f6a8ea0ca8f8c9351b6e85e352a9f8b834fa6d6839db58be27d0fcdc01afd78e08673c53d930e23147631fc7baf8be4e0633501ea34f7e5c77e6ce94057b84e34840b816492c09f71e6b39c7f1152a0a3056633b9217ab6854b4e2afdb4be7f45c39e2e6addddac8b0c50b241e065244d5dbbb39a1d71e2f4013598d92442dbed6a898254a43d65592f65327158d8a9456aafa105a28b97c9092ca237355c70f515521455967d4cc7451e6afe8c4d8b5f5a4951b8ddbf4f57ab9d222a5cdd10c46749216c5128810413b94f83ea429fa298e71644cd618f33be19443daf9d8d91135ea1fbb5be4ae5cd8b8361325cf7d480ff2c5109264ac4771df9dc4fb407bb4fc897dc3543a57ea915d1f98385fccdbe914e7e3dfd110f896b7c65bf523c1ab284724d2137160ea96a985f9ed2bca22a6a9aba69181296d72f57c87aea3942649ad034a687ce13ea39c8029d5142973dfce2ba5d64f3c6f5a3ebf9936584017772a2910c87cbcb84ff806c7fa6831b9efca3a1267438c1fc588443d097e1611e2c27f65cd7a7540f7c9a067edca37bed5e55ef6f9da7368da1b1dfc0f22f565391485143460d4ca222a69cbd92e636303ccea424254e581592b595630881f7e995f3403ed5993bec46e57129ba794f46aff834d653fc92c4df46df28f45d8b0b2445d98caa00992eea21af1b623d898ede84b4a6082c4e645106582bac1c9d55555f4047031fb8df804212fb2771ce2cf19e9ad8c8f59aa2b9ab31035c269f1120423444b9a87f3fe0f7f0c872e297202cd08f8f3b540dbf404d5d9a05256e89d66a2be2deb48b82c95c9b9e4b224dc7c0d064c3109cd6efbbf3516193688b387d4618d5be77d30a9c0c76f40044465beb001c6036b900661fca26b573c3f8d074b15e98dd56b0e1acc37090721625ceb4379c25313681edaeebf8d86e1e67740f33cdea8226869296c232824f3cfeba17660fcd198179bdbf1c49334b7e2aab09136e5cb5bf33c4fe6e1602fbbeeb5910e184570a05ddd88c684926e0f3317e9244f60f835a95f51df64a412233100b145884367b8f9e196f1377a7235fa1ffc50c5d7b56069af2e0f2c91534f0db92f84b7e4463f4da025310a78fa772b68d9ab409160e008dbcc15baab75424f328f5530480e1ea4c915a623ebb305dda5194722aee63681bd0bf6aa497dac98c652edfadf9d6bae4490635d32d7ea165c85d9c781da0fec61e742a7c9cf2c0224681c1ad5e98e4f1dce2353968290dde2303980a453fa535980433e4a5a1c593b2619df9566fce8feda5dbc0825712c35d9128f946129bfb0938627f7bd1a867f76f06cb1d3af89aca20ccaa65dbf7b6d436aae8fde021c3630bffea069901361c68b894a55bc6f3a50cf9d73c74806da80fe333164a7eea32180dac290ccc517aa936903ca84c87c99c5ae88344dd0d690efbc389f0ca025123e884f2910eaae3a6e84dc01f3141e2a0fd8c0b915d52805bcaea15bb7c20d4a61884eabd257cb8c0a4ed9c6b8232316f86167608fd57738d45afb47a239d3d7973ac6490e726674fede640c85337a41ceae176162a19998881591f7de5daf9f79d9f01ab93479f6087db740c5b72a78bf56882270310264bc914da3e7d7da26a2bc633a76d5e1a91e6d0c761745e1576a2d6289e9c2095070d231cbb5114d11c9847a7bb3e7776de7b83cd3478a0a89211d7cd77cd132056873c4c046e363e4544c9a3d8fd9d1179af9a88a1f08164c6cec6e1652de9e22ab4c44ff67d2ed3f8aa39f846f1f7b2a4148df0f0aa613cf85bbbd11b31a8b24bb711f458735928c0499f8963dd3192c0efb9a0ba1d59c008a5651d21b14196a28e15e9c3bdfda4c9a22d5c5b44822fd4713ae447d7369d15254e02f1c1814ebe29c44d6dc3d4d75eb0983a6c88b1bac8d383de01793260f35054a22c6ced75e992aa0b0aefa59e29b41e42567a4bc0fac0b1d2829288f39567dd6787d3433df090327d62e9636c3aea86037dd08f96f01677135660fad74987186ed57602a636a8d626dc4c8fdf431b036e6904c30acf2625976655dd06d4c111d483fd667d08dff1713178edd42070c7a0f29401a1f63d1c468680be0744e5447146739a86322f538ccdc2048127a957f437295af60fd7521bc681c56c17202c93bf33ef70e19c33249d5f39dd697232daf685cec6b50acc53fa72b73832f09af4ab85c8db3ba72a58d0f790b67598493a4dd1e97e3f4bc96b8a85051f35b38d636f9c4142053ebdc8f1945411831033ac7ec406cab8b730934d5e114159d1cf7de61bf2ded72d75362228d15732322fde735929ba4426470cd759b0216049da4dd7b1c0296f284210ab95431758b57923572929840da4a8f8e19ca8e91a9bc34629194c242867e85a28c6b48ece744353cf217ad58e9c24a631168a620cc5db1e2160326cf870dd104d1fd11e93d80fe9246a1fbfd92696c8cd44a8a88e4fa8a804637be78fd13c624ef502b1102e3a577e87eec945a2969ff848ac4e5c5d959639565088d0ac31e85d2dca5e695eea0ba1aad2046b7d25b3a55620c77059ea67a994cd6652e578ca4a9269e6e9022eb4b5fcbfff6262331d702b77a39573a6538a71d15faf5581661ac43160ec6abb0877b0196325ddb5c77755c3a464f1f7556f08ccba4182c60748cd83b3b60b8de59fac6307edac23c123143ab2968f7117aa6709fff663e8f2c7af04596eb1d5884eab2696bd3ee51c51929b608ebb39875bca48ded45a9edca2955f9ca42c847d896044708705e1068b5dd279e42e9b3f15a493cdb11ffe7d05da49bd594e22dc32900877fe70ddd57859c1fc072a7745c7ef68b0f89c636ba96feae8c287fbd36eacb9e10224aa90eaffdc7c73ad0985405a12d3269efc675dc0a404dbf79b039a2c36e489cb8226c3a21f904e8cf5f16bf6e63d6138f38e90885b08934387b1f545ae7a5380d89d127a68e1d8f9d582a4812980d213230aec1726326885d44890ec5a066f137b2dedc047daca66340d2f0a7104952fd8fbda9e7658f56561e8cf6a5f9d853a92c222927da3bf7a8425b19239a8558b5cd5d44735b92e0d2503befc08f93eb56140099683d0befd2a64ef231198f7fd678ad2af5c3217a8d8574a9dfd6250c8003a53b5781f7326928323e7b8973dc86aa3013973866c48a938443778dc464584040e12dfc36fad1811f92dc7981abfd02330cda7993be7218ec3c4d9853b7a6ba30af4627a88a798046b9d6a4ef8524eb7e14872609c73ce6727619bd83f42343429f91d82a24529f771be975c92205163d89d8493ed15d56c17cb1ee33645dbc6e5a4f84e77b339bd01e8e67efe5dbb088e5076029c362628682251d959eea02ea5fc038de2e7d0c524d8534172af1aca1124ef68f01b66d6071170fea31c280f334326f35621a071877d0a3b4014660a42c98367931324cca8148aa6ee9d9adddf189e0694d4b00625b020ae72d2dfd7080ada34183922d819b239c1b17e7393ed2a2a82323ca31bac485344009ddca5e4788283e862bc240c8c05cb8a8fed853c8fb2a45388ec50fe221fd47f1e48f76158b53eb7236e68af774cbc79d85423419d2804457c55dd500af8b77bc918e00060ae9be51e1599c6c801c0032ba61ccc591fcf18d26a7fa59726bebbf0798c78d93b4267297ff6ce8f26e658090c15cc8a665774507b1b560f7fd440f90888c2a3dc21a0da349b04af4e0e4a286d0bc70141107942d464d5ab7011c11af5230426ca729594a1fe0e57982ed328b47150eac46f0fdcc019cb6290d2e148d87240f26bbad4034369c36cb2b0313d20c5e9b6b75d159e1aadb048f0a20cdf381248f7653aa0d38fdc6a91e3132913f1072048f56f6c1bfef5a8d33bc0547fc28604bd20a9522ff5e1dd469ea2d3c7e42e209ab81a35f2700722a75f0dbda0d7d03501b3ba5a39af7008b41948d13f9f6fe55a56e1a27f471fa5d0adb595ae4487478c2cb2acb8be0bb697cd9c3b43511040b215042a9feb690c04bdc3b160e992842cb183617f4220484e199089d30aad9c2e660058953f33ec8f59833aa447b6a9b519e6a1c5ea2aa7bdc6bda675f220d408c246308f352139390bcbf6164db7c9ba395fda4253ef85ec4a9ceee1c256b091f82723989d02a9a4d5880a7c85d397ef4caee6c379bc7f7a39902bc2a03da5286765a30d6556d0ef921e45457d317e8db8a8a33782371b8c73a9ab49fbca41dbf616676ba833ad834c97b7321e3f199e41f7f518641010c4cc7e33df7e946d8206682338177097247d8099f2ca6c75a4bffbf576d77edcade52a69452190743071307e00fafbca356443233f833a4f4ddded5e1993770f711a658254fc0e6ee67811215defe7215bb3bb372777f3766b94ceeae7497ef60bf8b524ab9bbcebbbbbaa96ec21e0bb3650645fe0cdc0ee7f2cf75e7239b77c5102da54f9f9e512a73b4fb9c2ee522619353eea9b43f1ff3fca3c0155774b82f5b94d894db41bc1a4ca36966dca5cc04b12f7b3a4393318ab1c570a70e860423c5e4bd945cbca6a5baafb0b0acb4a8b8945e3c530a0c124c77e262b6182319da0cfad987815346ce384dd3d8adb12c50d8b89dca8965541b6d5c474af14a53a55b6169717931c18039c5c49031e33f50668686460daf412324cd2535386c1a4e23b763814cdd4681fb8d9a3192b1c5e062ba1309260586672abda8b8acd02a52da2896ba8d5a71517929993c182930a413b78deab651dc366ad428adeecba75f0662327346d2388daec1dba8b0a6068d9044e9ded83aa9c8a86b94a6ce542da33db8d4969a517045e05bcbac1b8dac1b0daf5b0d8e768d3024390fd6ca617146b36adfea8435eae634ea2669ea4c1d7d5d0456a753c9d42d03eb46bfba695fb7d18cba6d32eac6c5a85b175337d2a96e293075f360d4ada4b2c2c2c9afa5d22f070f68e0dc9aee032ddd0268cd7e6b61a99bcb8b4add4ca5bac1f0ea069352b713a96e315ddd62c8d8ea366354b7d7eaf6d1ba8159dd646668bc6e346a701ad7ad26a586376f18922428d766bee658633ed876465471c980bfdfd28427ee92da1bf8d1bccc37e34275178f101e154f4f75508a6ca462ee38aabfff9c1dd89798bd0e4e8adc3fec37effdc3c0d2e77d38d6c659fc3b85d47123aeaabce858fce54ffc0a1f12343ec60e14d4a811fb5cd5617758e2237be38abde1b5c88b0e270c75910431a4f64f171e024e0be0f7de03c5d30cf5e5f979eaf6bb6ae529f5bc5e5951394eeb6ca35c8ed323f53c53fff7e86d025fa4d5fb5defbdd3e1b5fc6ecbefa25afee5eb222c4a3cc94f5e9ed81b33f686acfdaea451a517e2cdfc09fbd5a1791520c7e1f17b91febbcc78d124e3c5180e44f3cd7cda0f2b08525d623013149e687a79f1053184f1e2c3bc683abde8c5bc4847c7d97eb237bcef0f14e983a2370394018a314031146f6240919e6040d1040334816288816203aaff0b28be5045ee71f944afb67c22d7cff2893caa5ac3beaaf6f3fb441b558bdaaff2953e0771ac4df69e3d0dd977f629a0781376a0f81c98fd068e404dc98c2d78a203f9d828715b0e74848646d17cabb3cd7c36ec8b0a4a70a27303f7840552d0e181a4616dfac56dcd7c324ff3813cae4d8fbcc4121effb837bada40a3c78f813ecccc7c36ec121ca218a17303f7c4053d3a3cf000e6c3382b031ae5e0c906768323a7c376a0ae3ad8ef329f83deaafd33094f742015d7778b15986f74733767efceeeecec8936549895118e1b13fd68008f78e24dfd1c18fabc659d0ef639e7d4b2ec247f6a59e612e398ca1c769adce9c03a06cc9c1c6767670f2bd7e042e5bfc921c20de7bce0e0f9f7d6f4c8a536e9fb899d0e1a50c03adc733654d187ac3c46bf75f6f636f0e86cbf75ff823c7cc83a0277b217b5ffe1d58704db63bf1d0d1b98034f4a27071b6e88b2441557d8a28b2fa2e86c1f844767038374cf81e04ef65bf7f3d93efbbaef064e8d2b550f9013e0a093c346d1e981a1b3813a6c1fc4037582200d7430e904d99e7b0775a03a41e812fd7c11844913246c81073a4178d0bf819ed7ecbbf0bedaf6863305a9d7f4633c4d93c5ff28b5a150fb6396083d54af4327de4da723632eeaac81ab58d6ef42ff4da3b2da6f010d348e0bcb4677864d2448e8501b4aed9fe96c0af3b584a90929072ca40c2501071d569d9039e79c2d3a08e209ac23f428a184ffa089ce082d904770ff3f83444a05331d4af9b2b999313b337b561282b24fd91207ebbbdcc807b749ed7724823ad2b82bb4e06e306ad984892d336fe63cdf677c4479347afa1aa5bf145c538772fbcdbb29044fee27a94b29e709b6eeeee66e6e83d2dddd726eeefca269dbddbd674b7084ea0474b8dd6e3251eaeeedeeccdcbdeeeed85c5ec9dddeddddbd8b43b36649bb79bbbb49249725db2e3b499ad15c4e78b35dc709c32c78fc3e6546473794a425a051fc061840cd476548e96ba411cd1947a42da3c16bfaa90643aca96118d2e0386177188661b87118d7cd8e449224df5260b4e0b1c7a5d06bf80baf756415c326a5904861b837765f2a3decee6e0a148b496fc30edddd5dbabbbbecb85dcf4b09f906af8d1c7951c4dddd5d3ae2dc9dc30e97e5966942767757c8ba2439fb06c5e3f7f7a234f5a2ecee968268423c7eb9bb2b6feaae208139f13453a76c395da6f432ce5d0327c66525d18577773db051bbab713ce2e4d6e9f08dd378901a0f52e341ce154f5d4b75cee971efb3ca2e01b9d178901b11662db029b1239826e82036b149334dd326866529cc2e90d8ccb22cc366064a99c5c45cc0ac05867d180c9a0d674d05aa7f1bcee7682e90a3476e871d76607f2db460d6029bd8d46826bf98984633b9438e2f2bb225895c4e5e45abd56ab55a61af71a6c6711cc7d9335593c85ccd9f1596d56ab55ab5b88ce3388e63edff4c3060604ea798981832a40c19de2c43a5cad58f64018532e85594ca56d84bb624919357110c98d56ab55a9db017f6c25ed80b7b61afda0fc6903163c6fff781325246c69b654af5e5524a49246bb55aadacb50adfe4c91fc992407294413266ac56abd56a55fb653e50466666868686460d59a38637d7e0461ae411a5dc95ca5a5ed361f86f32791ef5222fe55553cfab4c60d6a2592bcb5a58d69a594bf6cf6c34346870fcd5a0aa1a61b723a4351400120000f066003848531da654154d794d7bcb89dcb534e5389445e9068a9e8945532c9aaafd3494c5aafda49ac3715ca51a55aa5135d270d50d3cfead06d5485d8db1ae72958a722c7eb1f5338fae8449ed97ad20251df6e83ee510b51f932b2989d47e2a876852d3bc59932a0c73d1264f6abff61a6d4d3a6cd768c4e28c28a9fddd484a31d261b3523a1d9e2af590daafd2ede0faf5902bdd0eaede53fb5980b4c896166f6e59d0532c77a9c6209e285f2f2e4933607ad53fcd6aa01e3be83506b5885cce4a752b954aa5524de472f262b1582c162b954aa552a9cd5361617915a5ba276c2263508bc8358ee3388e2a954aa552b98bd52b168bc562fd340b089bafd7ebf51ac7711c552a954ac562b1582c5689c5c5b4327210b798c8e5641cc77154a9542a95eae52aea54f7b46a8ee3388ea34aa552a954ee72b9cb5dee7297cb0b07e3a4c22a4a8457fcc3cac0388ee338aa542a954ac5412d2672491fc7711c47954aa552a960bed25c39d917a7e46b745518fe9b4c9ec744f8a7791cc7718ce1ddd01c6f3405c95706c2f0df64f23c3a678be76aae56f295c917265f53bea47cb97ccde0b620dea7d495d784596f3973e538b345a9e7995e9c2b9f2b057475b67e668b640a3bd28fc7dfad46751a966ac016de4aed0d7f026ce179b7a278ec299e6d1bc5cc10c074e6f3b73a98b93bf98d92ae739a80d4c15eea60a00d37e84c5587fc446cfd3d76e58e8f9dacf683c07f27abf27f388f730ff6f77dc6de869abdfc26284a0e788b1cd8b5913b36d4ec37ce9cfeb61f077634907a4d6593d77060875b9beeb03dfeec25c69c499e3d98f99d411ef26975d0c11f5e9db0f50cfea32ebc07f070b0035e4f33f0fca80b4ff2343b6026a45c8c0bd287575e002fed4682133ba8a2a93a415463ea2271e2486da26b2b69525b0993da1fc3fb1bee7c80a776ccdaf4f3be3ff626de75ec73233513f7b11eee0df01d5b1ddc6190c7efd3d30c3cfc29e8c32bfdddb1c34f2918d3616f1c7ded4591fee8e76fe536d034da3690077ded79d08fe9b067a0afc5e8c29b4f4151037964cf5379d06f14c51eeb9d6c33285296b686ede0d740d1c7c446a3a682641ffdd942f118c98b0912222aead61c770a9073fe0eec77f06313939f06aeacabb1bcef1beae389b412b1edcc9b58387666e6af5b5004a5080a50735160669ed48aca4fb1a0c0d6f0346559e61addb20cc3b2c7407f1e193732496cf36da45189c929e58d3f4f606d386b8295506a0229b831baf0be3a0ed612f42a83ccbc79ee8c056fa54b6fdacc0ddeb494524a39c3199edc98c4a40604b74fc7b04cd2f69b9c8a4953c75f78934a8d7d3703456ad2e4cefd2c6094a7e4dca7b7cf205e14ec4549e76e29c89c73ce2c5be2e5f374c94d2ca3da9c73eeeeee9680b4709ba4e4fce5df482a3a57ac579680bc94d8144d2323a040810245be40428102050a142872ca2dc8174c285092b005285bd8dd5dac67884a9551cc064d04450ca4c3d48e4696181407b436fd356cc049f5e1810efb5f238981cd02441ac8808b019c0c1b34810eb7c571dd926e3a45eb360636c22ff48d2f7cf179e423aca4d908c7c047ec0bfdcc84977012cc400c8443eb721240bb1c1dc9c440401d4ae1f1731b359168e6d2b8a054ae6b0916c058020a7195102159e2a74eda4a604105437842083af16f6db94b76d88eb9877a42000aa2050680210cd1a8d84f952e94c8014dc55eaa729ca8d8112c540cf3609002ef8fdcc006d36726d164c82a89a21f686872a40717d060c50a8b228729889891021334aa298ec0c51456d4f0c1145a60e1a5d465828a1c88a0a2053745dbd6f2b88a924d45f0ba8a3266a6b2906e87ac1cd89afe2c6affe4a2f6cbde00131d784cd41f72d16222c63affe5899bbd3104ffd4688188fc9915e970ae8874384f3e782213e18f7b4a5930e5e0d81b8ed33fdfbba933acd31b7f80e4899f275660912a75a474b0870faf3ce8679af8c32ba66d43785b0dbc1e0efaf04ac1d3d70cfce13ebc4ef0f415037f780e27751809ec791dd26f3edd6fa763e3a953c47470eedd9c8122f6daa87273d26fc7b1e9434af99ed7f17ed786faa4803daf93f2bb36d9674140550cc53a842255be0b9d83a351bb83bd0b6b233190b3c124057d3c30f41af93e2920f51a299f847d363a94df7d395ea3fd86713c02bd0e6f3a9473ce39e7f4f94b4b1a3d29e088ea40753bedf320d49302e8bb11d581e046ea76d98679d541c19dacf2a03f411ed853ecb32ffb1f5e3350dcc96ab76327dbc92aff0cde17dbc7a35b1bff0d4c1d54dc408f4ecdcf7e03f3b3979d0edfbacb3e1e3b1ca5fea035fb0df4e854a5e04e06721d66b44393fb047d825e3fedeed9ddb2411ef369953d3fc3fe87d79dacba3331d2ba79777747df54eeeeeeee72c6cc9bc9ef2cf3808f1641a3e82f633293dc62261d1275c8600d19d880065c2e278de2207a98e03590eabbab49fa19364516d246bac64720b3a67d8ee639a9c6acf16834e2d758541c611603f5aa87e89f0e9d8dd023b406053b0162239402615aa665e06423327752e937d3eccc4d3c7147f126c74ddfd41b2380aa6fcb896d92e2cf371cc37c8ac10043f6f35bcab6d1a4d2cfe4b5642bfef759c2c03170f5e6210411d1b2d7441f4da4c541155b4ac1cd300c6423e8672f1f7b3682192189340a0baada97801c210e199ee0f5b7287d390d72ce67a0358263e03a7f4e49a44a4ecd235c890f79ddcce94332d3925d1c15db160c3ec3a83a0803bfb0d80dc700832ba9f3bbf95c0841191c671d8482d3f77272a4b4b1381e0c3e647271451fa95b0abf5883a96ef41b8863d0e86fb66d1928b26c1ab89f75338cea041b097e611feb7634d0917945a5dfcde7c2e7b97336a2e0891b24e6c8d0a8d1f733a07f0216c8c1d1a88992cb03aabd6863ac378d04c7c0db47ea76f3b4fd9ef665ddd7bed3523a92818621231e7cbaa79f0fc7804f86263c0fac31b2a3c69c909f6598b8e27e062e77e2a26dbbddd54c9a88c99cceddccccccccccceccceddcccccccccccecc541b6dcca38d63667ee63a520a29853d66ee5587fc4f8a9e34904e3d297af25212a484494b499092918730111ec22a6ee6666ef6e60c70333773b337df34377333374fe77697724e6c62589651aa514d1b8db68d1b6d1cd77524524aa7b4d7a56e07b70a330bb7f08b7373333773b337b333bf208472b1333e0608bb5bf618c7edee7ad973bbbb598661d4e3d6c3b8f53ccaed7b1edda7de3f414a49b749b7497bb6015841a594526a6bb31d834a2aa76a2f922546ea52211bef96d666396f6d7eaa18037383b7489010893195fabdbd514ddf4436187e7855273dfffed6f2b5d4dd1b2dcf4fc3de587956797e7eed8d92d73dbfbbf646cac480a8fd196351fba9c643ed1fb914b57f9338a80d7273083bf40220302b188bcc481fc981876de56379956fe5b7d2a7f29bf7957edb64cbc7f2291fe9bb2f656219d5461b47fae4cff71daafe0c44f5672caa7f1fa9fece43f57729aabfc441f516cc3f267b710ea1fa779ff7a4ef445fc45e50fd491f8cf6226645f5cf38d20763f46266a4fa933ed3f622cda1fa6fdccac7f2a4ef857b911aa1fa933e97dabda80951fd37fa2ddfae4d3fcbb7f2a97ca58f5f6bc3ef7d3dae0d7fcae7aab5e1277dee125964718b50f9479fc8427016623351f9b34ff41e2a3ba1f24f7e7ef9aa2bc3b3c2db92edd4f24e2d1d6c726219d5a84bb2e4c4329ab9e4c4324c4e6cca295fd24f45e85311a8cfd0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0d0500b10212121212121212121212121212121212121212121212121212121212121212121212121962c70bb9c5846b5d1c675a414afa4b2c2d2e2f2628201738a49b956a9130c0cd38b4b4b0c19336256b3e5726961595129cdf8d3ca55252f85d4dffd07c32aecd571dbe80361a8b2f135ca40191333485532332f95005b78aeaab15c0a68a9da290acda56e145e8b64ed8d18da28d5a2c3b633a2c6aafe9b2f8e0a8abb27a5e0947e5feace28c186fe2adf07b6a604f2ccf03c907a605ff067f67ec126f2eabe3b1da4358214ea3efd8f6b773a5ca4e089da4a94da108ddade5ffb69147764f4a3e3ec3cd228f937afd0c9bb4c445e6b0629a087e8d0ada0fd68ab0e3dc76ff6d54424e993423af4ef3ed9d321904fa6dc0b2fead03fc7717cf41affa0ea44d5e4aaefa486feaa37307ea44397c2fdb5956b2ce7e99a4a2177a5983c4d524ab944e0e65cb65606a2a03047e793e335fd3952bedcc2b7f058061996db75b0edcad9a06843651a6cadbabfbf4fca01b35c6d726219d5684b4e2ca3d9f8ea959c5886b16a7cc989cd514ec92a777577dfe0c0e322eeeeeeeeee3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e3e5e6c2700425dcbed72669b65dc9eb99c58a6ada671bb8665541b711cb773a38deb48de7a1eb77b295e4965a5655b5ab8bda5c5e5c5345ffd306693e93aede9c4eda7e91a624564884a8531c15a414ac611480a2bc29e602fec6584f533c46ac59c35c95c9e11654c3acc5ad86218b76319b7cbc901a9fc8ec3a2b40dfb39b53798348ee7354d05df3c6906270b688e41b345348ee3388e2a954aa5524d97919e2e97cbe5521da14abc25b59f0915b525c84a79a629279651954aa55269d3355dd3355dd33563e3ba8e444a49f14ab2c452676af64c1591b99a3f94c873999cfc2b2cc24695d7b44aa552a926d01c67d06c4d22ae23a58ce3388e9e4aa552a954b5ff555658585a5a5c5c0247a84ea9b539f5b03530e8a9386c4da360b8d890ab8217f5e7a58a27971027d70f27d74baa08e67309726975c884c86b5c5c8264d409c214c17084277640142332a4b28d4654a4b2f750d948e5d70e2aff0ae843b80fa5226a7fcce7409f0d1b2a3010c0868d027005e87430ffeecb78e2ede7f0fd46cf5f0d186bdb9b18d503618a7c5c1e861a6844301f47b4035051794d69ec7c16478508951fce894a7ca962972a75a9d105c86bfa4b2c95204a4a288d2e40360a80428d9ce3361487ea74f8b83caadb21abe4c09524418ed3adba55ed0f6a944a4f735058940a0f1baaa81ca74b9546c7d1889c88c52905616b7e1ca7c4f29a8ed52815a0fec1a25492d8b03fa58a5d2aa58a2aaa94baa2a2aaad028a2f5e09143d0f2c8d2a63e702e4389c1317a0ef04e33bb5bed3f89d7ebe1e3ebc9a3dbf0a0f2725b5a751272636ec528e73c2c1d600752cf041ed2e75ea3e982298d7daf46b448e73d2616b82902ab11c07868bad4902e6890a50a360b2d8b07f75851f34a2daa71e8aaae852e41285cb13fb42bfe97379f95c9cb82ce9b0dfe5736939711c17221757edef47b90429f16418692283d528ea45840c712042bc70204fbcb8e249e517bbc915476a3f4cccc9d5a82627278d9a2edfa949d7f4e3743a287872e59c723a1da7261d9eaa38b94e55c84c9eaac05e2a05bbfbf14ff38fdae0fccb2af7498ae26875f97c5a7ef4f91055962282d6a6c7714c405e33b2a85255f4825255fb786df85b3efa3f6366f4f3b289b1983aa00e68a6d3d11d91e9749c5c27d7c9a512863502100000a88c1df60ba0d3a1a2a483410a9ee81234d67e17a246891d50eda0252e2d17268d9a1dd0de5819631b69ff8132386a9a378634aa325e1ccf4a8fa00a24460082a4083f508470058ca79c53ca68c19b75913c61020b8fd645f2e4882c0b231892273540f28488172110100a41ee44cb206a020d7a5852440e4e086229a5cc154138814609490862890d163caa64a6076f3b027442103b90218247aa9b2408208210840f4204b143c803105fc82401c20a404ce1c30c8d0e1ecb10aaf0b824689ec04ac2632942430540f4400520828050bc4d0b3576f0b42c66152d38d5e899c1d00e9e8ca209dea86e9219308105a1ca972aa59492e68919ec80a6082fa56e9219cc009c814a052c324ccc00888c135eb7854c10cf93c210bc97960c0a92805728c25ac2e3ea2629320410de563749911f8a8a08f9244570e061f4e18e19309c6981a772851f6f850a50091e8c2432397834099a263c169f2f62c0850c5430b305cfa56e92186ce183d75237490c9e6005afab9b240648a8e24b7905104c3f93d54d12832475ab9b24065054f16f527ab0b1f606f65cf9a78a48e5973ea8f341221c576550f421375e9ca9c3d6e8d0430f3ffc20841075e7feec013370f6d430599245e589337586bddb21a362a064d5307b2a0b3cfe6e1cc8d448c7c4ed726219d5465cb33a0adbb87d3b1221217591088d15ac8b44a848bdf11b1ae8bf16c4a32f7a14ccd1cf83c72f9a8055fbbd6213144df023457fd506b7c38ee11878fc62db192ee2872a9908e57ea28825b54b442ea58e04c51abca73a486308792fc4a33c33e5b74d3ce1845167a730624890ced6dcfc9887244be0a0b351c8010a0d7436093f5638a12305d00a88e86c18373f1b360a29963042e786941f344167bb0022576d28f5e0854a67823c3a590abc70735450844b477eabc35136963b598321384d40da10835011a38e7c1e9d990eb9a794fc9c024f76c8eedd6d84693d2e722f82229520b95deec6989a593c8f39e79c379c72a66bfa19fc49e94aefdd658da5cfb68ed3bf3a2c3133a3175dc876578bba6bc5e664c1c3822ab9df2d02078a3c4454693302c5013ca07e345b83491b0954f97c812a599c152b810d8649907578b41bba3d0b5bf3a4aa3fcf127e9adf2347f5e7599b3dcdad3cfc5dc6cba8fd32102049b5bf8747aafda41975db6d5fe4e93a3f8e52fb136fc0a1f6e4fd1cfdbe53fb3bf96fe5b1efe00c07a8fd3d4e0b3840ed3f4094ba722789f69cb09fef148711d7f9b60391fea8bd193b66540aeecca824e657a5ecaab4f326613385db06cc1fbd7fda8f3e6dc45df780e908a8dbcdd0ed4040a5e00e022afdcde39c65bb247da0eb0facd20c740c9c6182b2b1256cdcc3ac6e3914af98212c3b9c51103913f54d40e4b892a56b9a85e000128a1ca9d89f66c07e7eca36cae52736c75d03b0d744d6c0cffabb7b00f63c9f7e293503e98e147e9e8cf9082d8b2dd359193d947a1e0b15dcfdb75979b48c91056f132c9c6ce08320591c21095da060dc510214511055018b244c2c91031028b902899391091f841042941430a90216534c41092b5c89d781124e28ba620a292041c491103481c3500d8420850b2889a09f1acecfa9f371346afe3c82d33a8d44156dd4391ffbed66e8d302c0d30cac84bbbbbb3bf63d41fe45edd61cce5fd3fd419ff254f9fd382da04e9007adcd3bfc371de6c0d13f2768e3863a4b29a51fa93ee39389278ef0e4a6db6f50fb092314d5ee6efe217d9c1650319007f8835609dae8b09f37292733b79d833b5efdb1f7ecbbe97067d7465c25554a3047873ffa776cdce4dcb034ca9f00aa2da31084c4901a80ba41480cb16dfefb75f6f5f81daef4776c75d0c74e5df9ed64b57b4a7aee65a783d48122fdb4e77668bfc351360e3cd1df2a7294825c8798f8c3eb0e175506c54e0123ce3ef18773a36f27dbc92a0545f9c3ab3383e20da97ac310de56032ffbfead061efd7d4a7b74aaee64393aa002a8442d39f5b87488060200000093160000280c0c088422390c658128e93e1400116f8c405c523419ca22510ea3308ca220a48c2180100208310c90a9a1a102e033232cc6eb722f3a856b772840c7c4cb52f02e5cf31490d3b5d577f9d67ae6c6aa16e51205ed9aa5eae51ac49bcf7694ebc569b758b204ba2073c15080fdb3f61a211f95c50486a3914915fb818aed2c23cc0cc2d4c77b5bd34040a8a604b992e1a49488dc33fb8f28e7445b371526cbdf0890331dc89db689c11f6e8a0c6f65eaf86036979dd8a2ad2affc552ea62ff00dc839803de41ea6ad607e58fd5f9d02e513afd58e49820d4531dc88ca9b2923a5cfcc3ec67bf83fcc0d7a9ee624f51121f43f6402615045db1aa158da2c331243e4f4ba3444db2b7f6ddeeb1c9fae599331e3db3f2d1a6cadd3d78e7384cc557a3669fa6a0200afcb97f09aa544c4c5430aef3b3c6c796ca9190cefe13192df4b1a29e1f0d937d7c404e0782a3714dfb243520b2915ddd31c65af9c0e746ce46af2800a1ec2bf39ff5f83e4fea3ffe134aa40b2e8910ffb588fb8069cfc44be9fee820bab48f4ee182be098a9a85597595edb9034d50acf7968ec5838bc982de50306b83a0643de4d2e3d6bec39ef1bd3941ac4a0f37faa37c1567b68ac9b5d52ccb74d6ac77485620904a52fa743108a2d22036d82a63f5be11c10aaff420a18acfea383e895e31fc2fe73ecaf161ed10cd3b151725115d438c537ed55eb4829f2cfb940972c3f9e46288c4950e68b14acb32fed7642adc62f79da96bf251f782c85fd1c1231d4a5a8893180f48ccb676061d86d66b061573577178cb49dc513778ca694002be77a78dd43bad6beac4d6d7d62247d2b2a455908a92fbf3851834d86bbfe8c6bbadf2a38273226e64753e805a84707ed9e5339ce56fa1f6812d0776a452653f91385fa8b305980fa840a660b774b683fbf1deae4004fb402c973cd9e4767af612af418db54ba6ff5eb1d69904a9a5bd4df607769bf3181a65abe3ffccb7aac2c805605c711d006776b1f4b22592e57d060c279b8ae33d5da1ba1affe5f51394eef811acd98193349542649110e0cb3f854afaeebe29de76a30043b880158efe94295c5750af3768a4ab1149936fcf5544f2d15ec1fe86172adb3ed888b1fbe8a47a7f45a868aa4dedea5686e75e7e16fcf2ea0a115a363ffdf5ceb9a2da064ceeee2e7c0f164fe572ee9d321ccfc341b5ad02e3515cacdc33dce68cd7dc002209b09ecfc40ba09742b0b9a0769ee0617a410fe116b40051f14cfa81e2d8ca36e908dc3097251a4e0738f04ad5b040e8a93c16f25ebe0dea9946f5e4444d791a5d0a975149a401b5c28ed922dc586d3ae91478cec223f0e1d95f29939355437922b133e992231d4b56f8010c8da5cb476df00ddfd3f1092663f3a03457c0170a79b94875b4ba6a60d8941cbdd47450260a12bc9a9ed03da80c653d4e0d533b8b70e88be810d409209ffa67ae5d5c7c718d3d03a6c8f815ae3c8432bd963762a1bfc52e52882805c0a881bd2cfabab16c68a9c48d290c92aa48783b11f96bc2837749589c44840b462494103d049951e239b40b12c89d7719f475a8562cabc3d0c99003e15ef3e9365c010370786d1429e62bd1202e72f768798085b95bfb944c70a3f956ef01b6bc1e0223e37fd16afc5cc79014314069dae73fd6b9f95197f72de6507ef460bdb25a8baeb25cdc6b5b9674c694f73d15c98ce28a42d301b88a152954969ca212f55aa42749d5a40c3ecdd75d7b5f1fa57644298a3df26f018586885a477468e4527aad0329eea15c9b0c35f78c6322f47c027555a693192a1d599b21e064ca88db40527ed3a0a718deef881de2d3acc2de0dadc7ec5b85d04b8a4471d04137d99fd25d914f97d991e4e71eefaef6d7a9905e147db003b86d878ef4f99949ffb0927a95009cf8169d8c2484ce2935d07d03181a976860a646128243c431d629ee18f81fdd918dcca8bfc285bb0bb64286ec8c9d3a96112f784a703c334249e636b11fbfe8e98f0965563e5474c504a650bc89196cb09bedac6f9d43e217458269ccaf62cb93343d44c1b47ec60e6fc7031be014f0510ab9a7794c7e8cc9d91a7753edbd8df04afdeea0e7c565c7b95005c8c31947f3d464b72096a6a1271b74fe084e66b128b5b6cd22632b6401dc45d90dbb76877001b34971e96676026bda75d72588b2ca9df80ef58e0361046c00a68c4243dcbd802007c0289d0e5aa3c66451e38b48418508b8399ba1d127e0b3df0a5562ee40196e283db9bbae1a1258e339d71d94a1a9d01329b06b800e3172ca15bd40119513451eb6f93c994fa55275d878714a420560b76aa5c94550163c858e93d149744cb651b1d85255c2a057aa83b720d4ae27825767401f44b34a2779f102f9e7dfa69c37b26843899094712d085061744e9470b4af034364ae71c702d3c73d4353bca0836e9fab2c910e19130ffe6482e1589ea3cf50899d82475a364218343ac75c4cf30d43d62a2cc4a9769b0528d68c59fe9b8fa838f56d200e14b32ca755a2bcf763c2c7e290d6a1c63781cb67ca37fd5057b5f67b39a186f7a048f891f068f56490d1ca2156c613b91e4f16fab7d8bec613531e263b649810aa2f375b87fee9f01f2f23269865288cac232ecf41644604526d92b5c9d6763063809487401f9b107ea62415bed193600d52c755b1bf6001410d22b8bf6d38764746120646bec049a2fa72a9ae4ddfc8a367aa9a1a2cf70c9c6e7e6393624f4f3b56dcaa71a2e858bb34c6bcb1bd9fd539c2ce55c83f07f75467aa3a11fb3d123b635c6cd492e872c2f949ddcb4c72a57baa38c9cedb2393fde628baa25a173fc5eada44724cb5d227c0bf4584b2d3bd1336fcebff815e6b94324e5f0b867d36f10fc87af6b0cb7a9e8cbcdc806f368fde3502ac0ad91c8cb0398558178f5bb2319e326e8da3da87d0c10563d31b192f2bece720368ad38c7ddd4ac0e563f6575b8acc6832ac5c8f59cfecee834b1e9cea71c2ac067f4055809c93b2573cc7363a81f39b31f5d32db218a6b3744b1a661e69f852316db78455661763cbabb9aa906fbd16af68aa15c2f36c0d99154eb17b61e91e7562db6426008762cd2bd4f5b99b160f190711d603e324311ca83a1591426ec1434de176e2af6847df20d7164d2cc8640db9f0bf44aa008ec8392b63d0ae5549d76680df3958cf52414ca0e68a16b440975e769a5e6c864c47990d31f5280c2806895b237242d2901325799e90a53f4ff82b3063361059f9b03d765b1fb8624e26d83c3ed2e0507b2f1b8733c48b181d4ef164cd1606352443702a58908d2fe0b7bce83493cca2297712c1093c9bfa4e24db6cbedc764c9c7d9d0b7db94801dbd322d8d68e32066fbc2631c9f8be4977c2cfb5654111a8c95d3b22e7bbdf1c7eb8a0092cf6b94a04c5583f87df58e182a66077826e04f82bfcb6797cf4f79c7a2de329b0ec7d29260fd51ed50b151c617d8a898679b40942288fdb86330dcb609e9f3f4168b58f89f755660d7b76693c60de22737fe6af21c45a8f4f04717573a0487e875765a4f4b7f2692d07c1f817e95ff9c8abffb6b5676771e4853beef9d3f2a7e0011f1e4be9ef3d7ad74effd6c076f0a1bf491d10c8f5466872e8cfb92a2f94a200cd5b2913680469c81df8843928acefe438334c08e540d9dc67a74deca7d80b9d4d81e6b3e241cc0a89cac31230e97bb6680ba1f4ae53ba6d9ed2f1180b3b933bcc434ae34f7236ec5607d97e25db56a51457cbc850fcfa5dd0fc047b1c6586de171f7308d9d04892de5ef6e438edc142082939f3deade3c04fbd9475337165108fb57d75eeb24c7703d9ef629c0d381dbf975ab3fde34939e0028cad7589072dedc39eec1d841f6c3af17e412a59813320627396dee45d916ace101a0984ecdd9b197b19973a1d4fa214e29e49e7931f95dcba68cee73a6eaf5242c357761f093d795345234e241407df406f0523b9a673866c8c0ceb391418a67c33f4650aeb4fc1650d4c0222daa82840f88e382d464bc702cac3ed34736ec96e45959d5ae673282124aff71e063abd6509dec5338dc14348e601444238450971823d240779b4d10ef3e4dc814804733382987959b468431f2349b4a36333c9248d25e4f9b9438b0936e94960f62cdaf4f89fd9b36d9d2944e174e28b3aa28c6797e8d8b859f4bb3c23d7a8c0fedf4612b702f1c4cd22c6529d458f79cd4d745f52900dd810c1ef70225b71f83f121776ff5f8f95dc32b5ce63839712e91098319f54dc2c229ad3c2d24f93382d54e72e252b60523c23c9fbb633067e547505aacda25f0878d2cc828f7b4c82d08fbb70f78af0d156109827d8a55cb29c98e26749ac008aadc9f3af1a6d6532b33970b8c56bd68ea776f72984718b5172053eaa52fb0acab75be8e81aed8568719b6ad5949f87d379459c90fafa10d6d1995f082613ef2c40399ee242705934524792957a0a5c1694ae2d49792847e991a6dd31ff91d65c1e1efcdfa1bbb629fafe52e457d6a78ff495241b348da3f97a586c940c10620f10634f5986fa27f711b2c165d19547b31e3d9b38f5e8b2f03df6bf7dde6a957d32f72281c0f787dacb80b006107c0a3390a4c32eb8ff1d9ed4e8ae74772df9091625c5fced760f3822adcca943c2c2d905605f25a617d5c4a25986931ca426c44eb456f87dc76ce0afc8f28541eae73d8ac33541b68074dadf505cb22a8b9c49e2a8b7d324058b738085e621ebb0fee580a663943401d8fad06aff8b317de771b08b1645aec9d76a76d4fa61c3acd5f8c4dc80cdb5ea122487619277a543b6fcb52668d8cbc8f7c9786e4f56af98255968eb07f703b4ab5db58e6140af69cf69385f9e4ef673a4aeccb313105e36e319dc318698439764bd1cfe3eb0da278fba023b1572d73791b1a654ef4dca79fedf266f75da6864f840e5d4b7d0b55a9e945219d40f1b1a1c2996cf75ef66bdf4d30be0cadbf67e640617173599a2a2bec58dc4959fa5cfb8516f5a4dfea30a579eb9740d3878a4efac8a82442e801fa1fc64a00b11127cf8d24844cafa128eb3235100043d5204dadc6af6881c7b45ffc19b9df3caa20a55209953a949860e04d91b4253df29e7ef4c4d24eff4bc50f8c5881ab3638a7ab1ca9dab8ae6a39cc103e6d08f07eed90fa602079b5a9f4649c5c0c71c8b6a9a3a1c3b0af69981dc0cbc9d81ee3390c4eb20b0c8c50e4ae3b3ebe370e4ce14aea8112dfd4483e54a3bf2a28a6c6764253aee5e1c66ca37897a892779fed6993e19311f888be40d7235f2830259a9f04ab9918426238573c4e0f241f6264ba5a549356425d556a32804b799a9e0730f69f2108eff713556db3a3d90d8965bda27b02ecd40b31d4b932c4b3c541e8127093a3dbc58b1040709260ec24965de8615e58378a5d4ae4397f8a574065086a94c1fcf18b94a636a0436972ecb7d3adda961734dfa2accf8b450bb63ed53e872b7533e74b52e68b03a36dc6f08a88e4e891c80a0bad037d4a657490b045de71dd24925425aac5155ce96dca6eca233af56b4633849240f3bbae8afa59b0d981e5d98577c3e21d68ed4e103f6fa6e8609b857df274d5d74e3f1e09c897d720cb2197cfc4eb9da2dfa3b5678ed30d0290c984459a60c0cb2f1ef29255dfc5735383dd8d9dee2b37ff091baeb49b39600576f10eb6c72f4a181dc442f04dfaf8237c633b9f5b5e801594d0b30345f775cd8b030389fcee92ecf47d6adf771fdff055b2941cb02b8ca357785ce44c5008a6d57f61f39e63d5ccffb2a223e0f687086c69ed668067bae63efe8c817b664bd93f2dc104017e5c8bc037e6e0a669707055063bc30230632e806b682754a9906e60c6316a5f73cabab99832e18d4e0334f4114490c2a126959317efeee5967d7a91f886170d34b077de958a6665c2d6b2e6abd3a57d6ddec9cc2a9be3628e29a635722f062486548ab7ffbe2aa790fbe83cb69c945e68fe2b743129537d5a827f7ddf9f6b1c185f0b37754d99220604265c0cdbed4a779c60e18d98cd8ee58ebefdfbaeee1054f737ed44ada8f74b5c940922e3e0d6d81b9ef14233d87327102d95f7bba8343c63a402673a5b901c882ce8f025de82a4c081ae55d8d72e4abfb853775f17172250dcde9b02d7def0866c2522160f824eeef24f38b24323e75ed77983761cdc8f2363791b7244906ed50f6f03ab2787193d6e27ffa1bda97a1eda3f4fa30043acd973630fea43aa8ca9fd73ab1fdea3d2c4b56b348d77db2ba3342869aae5a642c485fa3547948f9c2a8758549d00adbde9f826f5250d37c4118050657e8ce5476c53a7d7a009f722a13e8e059d055d5f62440b0a5b2734b3981439994c807535f80f117e0f4c5c31d2d53131d8f00f3e27809870b37750156d594302b7c8a6c36b8fd84649d875c88cb8bdb5125c723bb0429fed0e716d813374312d4cefbc6eea25341f5ca46a911a7ca440dca974d703e907c58cb2f30643158f5a9047f07cf269a01c0ad4edba858b723379fb5eef3c45a27dfcf8a82d1e8c92d3d657a722727c591512ec44d3150c36402afc77589ba0e3821582294602ba4d177d829462a9345d0b5fd597956cec61f3d25a4262956c361e8e1b05b5f73b400a4b07172e616ecb30874c1ccfcb2c7d2b18748f08e4761d4045bb764912ac13e9a3cd96f96e4a0029d7eaea8df5a621f05744a018c7a23195350a0354a673b3c4eacea336890290f8817023a475977225cd27954132cb01beb3dcc1e253b0a67ce48188f3313c523ad69e170ee3a60b9f279bbdc7473a79448d4f9207aa5c63cfff3ce79dc48b083764bedd0af4a180cca181ab50884bc3678d3bada2dd04ace630bedd7f38d890a7229a3c723596f83a4bda62dcf7a886e41045a1ad921e294f37b056a2d3e4ec44701ae9f0071ba3eb9d6f7c4d9c80418140769bf6ad65ff285f341d81c1eea4ee9b261268d2d49d94447bbf721e6dc63fdc53d2218a8f98aad12296ef4407990c0ac3d2cc9e03050c836b7720865633b83aa9af5fe87af6ce79885a41046a35f4dfe525658a96add72dc1993f5bcb3688378402bd2308ff6801aa698fd5cf26774e791256be1d571124a9b5ef93d0d0508bd81dfe636ddf27c7ca0078cdb63615d6c0d218ff9010d644e9038e6bbdd4cabe1dab806c1e47e5dce170ceb6e51a35375ce9f18dc159bc6d4886966e64883e8af2eb69a1aabce165d4297db2ce00e280a9d32c1969201bf98d5b7da5bfe295ae89a6809deac6dc6c802ce194c4c507b420b41dee5aa843707549af78af2ae54846c6fb50eed681cf93fa2547536a97d38c5bf31d80c27d2f24cbe425547b88d53765175d1ac9be3a8e213c3412f5d8ae40a883ad732a07d613c72645de3b9835c871a64dbd888956038b2a63dddb665c6d0dd2dbaaace26f1f0f2d57b9cf7c3bea8115f901a4709f544b421ff842c0d247a00d38536d8b4275d4f00839b2d8aae58755cf77a647111b97e21192601dd9d6079d7c08af69e8002abe2e48bdca3ac3a1b6312e27f88e5641284fb364c60604471391fce5c00fb20fc42f1d3a42cb9e1100be4e535fcf7057c6364809a17b13fcf10f04e6301ea7cdc767f21f87710ad3a9b00b8794e5fb4ba9dbea363fa0d7cc48c5c937b556c1c3b3dbfb0bd904a96c08a7148aac47de246d5d9c22d29a4b29c4221f9c4b67c43b29231143d4f1da1a2b8d08e096cf9872efac821788c146b9e040c439e1fd1f79fabce9694546564d07d23c727d4d985fbbc5e28a95fbd7d64a2abff14c7f2b0724eceedd61d37eb26b34f296bd6299c7493c832d590cf0629b7bc56f446ebb74fbbce9a16d9d5aeb15b0c1478a06e8e73b6d939d9a4c6422e9c412a96e5ca368f87e03e12bb67d1d8ef092108a82874ced8494d947ec73b1154ef0a4539d0df391513d1077b191b67c7690674ad90b14bc90735ad53f5bad1e5a2186bb50d426a58e5a90ebcb209af133abc5bd09bec63a2b05858bf4e66eb2017d2ce1cd330237c57309917e90bc1da664b85ae5eaa2a20bb4a79437ea9b1af27bb54a4e3606744ac1ae9b2b282203c808a13085312dc9214deb38aea47057c96b19cc1a77999350a2d3ceb450494f1a8b4c0bff0ca6b53390e5cbc0644ea04dcf3f7688d201dc4937b1c07c3caf7142adbaf129c4144557a5d6ad6d82237ee4f34ad40aaa8188e40ce546f855f51cfaaa0dba3b2fe242b46342a97c99a763c82c88400e46d647b1e4315e4ed4efb688a4c2d0e9cca7087bff444f72484a3b8bca2a907b857d6d32d5bd71d9c9a3726dc838f9f07d1b105198e8d05bd9477f32320b53d831bd45f1e39ceec4423fe10e701f0bf0a2f529411ac7bfaf5a7b65aeac98232667a898187d4f3b6125680f71dcd246004143106f51fffd23f84d5d78ea1cdfe171be5af8e3d6ea9156ab71608fd801f01fd7790e574b04a7fe0ae3b10c13a5862bfd36ab4ece3623fc06d47d6f09bc581da8b37ebb678100a6dcf9cce8e4efa53775b809e1a5525ec6ad867b41e97c01f34c5903316f9fbac8a9e9df586ce95c8e5148e72178890594313fc894b63922de28af613869576703b705741b99cf2b3212d7a1eb4b7aba819db27d218b950d79386c983b47327285512f01d46040a394a37ce8437d5b8a94111c67b6b08cef860968a59fcbc810e076f63adcf5c6abdbebcfb0406b7b4496eca16dc322803c9a7bd11b6019bb3e04117ddf4e88a1d5916eca4fa13e760ae9888793dfea363dec233fac0080e168b09bc3e9088ad35661b124bc468317145017b55b6aee8335bdf620235b2b53fb5cfaa385017134f3347597b0e38c8c15e4c7437a5ffa7a0dd7dae5d5100638212900ae5f6dc4f4a23e466e284a3421b45b07653041756c6cdacf2f95636966b7bbb4cacaaefbd155732b1aea6f7653ee8bfd67b32666d5d867bb89315ebf5d9aab354eb3dd3d5b7640ee8938d50c29f6236ca1a36a575e21c932fce51f69e7c2c1f5fb26269bd77c9ceda3a3db7704f26966b7bbbcc07ddeabf5756acd531ba0b67d958bc3e5b89f5b5be375c7a9f8c017dd96065f06459dd75109ced3762ab83baa3c4966280b00314454cee1760acc15725fc6db45e8deed7d6797a8d5fa3efe935fe706b5fe7c0ea28b10cec1c27050e5cf3f690426cac1f44a40902f468f657efad322396e3b1b494e5eab8fd953514a41068494632c2ecdeb6e6e0d5c2e539c1d8fbc299ecc792b33af605736987c495ec8d9aebae2f988bbb42ce542e053a9f714e9960b1b2160e4a2c9da259e9a6cb9ae42c818d602765cbfae47cff8d93a4cc29506f649deecaeed3fe767b2153339b60f4c265bbb1b13c0dff7dd0e306ad908cce2c8914e54fd0bba19cd0659544e305b567f88d692f66b97315e7febab9fc5ae5c07b4d53a37c5184813b65124d5c64198eda77972f190dcf029d49a2789505bec74d96cd904595eb274e89fc8983b35d26dcd803e1e28cdf6df68769dc78abe06c6e3ee5035062b16f50f60fe29a79896c824175254ce4e5d99210b7e0d8fa73beb45c9d544f314cd9c926d10ff0f987034f03b3650664ca0852c64d6d0c0f2ea7213b990e8586d5e8907e2ceac3388439533d851abbe38d410d28bb1c9978ad21428018564aef3c46c7e9bc17815ba8982c7166ab87cf698bd355ab1f4d4227247ef99b0b4675c9215e84dc2630ca5a300692a41c2c29b9f00aec0d378d7c8cbcbe3edd4d0c2263bde2dc918c4943730e674d43707b10e2310c0f037e79e856f343f9739e13b037075f1e8f8578ca0a904479a4faa174d56227933af7941141e3df3c595c0969687d1fb1c3b3077500f4f2123c9118b79f594f6d34619f42a28d7c7b22a33979d6da9019444c74c137558e193993ffba64c86e9c7cee5608b0e80f1e60a0b3847b24cbf1a64f5e07b8f6c02ece8c3d89b378f7141fb25e7a85af356b936cbec07896f2ac1265fa0e35eb994e5427b2d0ab651abb95898689c66ef8699413a7008f9ce8621aeec0486e58dcda8d88233e4ac34a32f87499ad13615800bc72f07f07604c7b2e1da034a4a3c11fb36c0eeb07751620020cd44af016d18641e0a314afc82909a0c87a503db8d6ff9a89c659fa3659b3cdc197c9222b4e8e7be7fd0fe8055687aca6e2bf7023e5aaa902573cc6720d10cbe1135a7db9722cebb49a1663a09c39b0954404b5bf3f638978c4b527fb984d185eb33b061f9180f364204fcbf9387201fa7867d76e21ff4a1d1db19205eba0cc786898640f47f6b428fbda64e224b9d140a86d0e42a4640bd140a92aade1b689f901dac97b7e40c064cbc48498cc141d02e73392ca9d0401ded57ec4e60e5fae896ec9382ebcef250301bbd1c7ba5c4becae4c1e4368683d7750c0a6a055ebb3126b17999ac4de7cbcc1ac86278029fdfcd79097ec43c71bd020347a1fac067c807d45fc801b6f90447ae600a0436f73bae6ca878c37241a30d6a05789a85affc51b3e35866856f2c12d8e24e6802dc4a156bc61938c9cd5045a53728f91c01d13ca2abe03741825448388e15bf041d132c42b1a12427d4b1f3bebffd580535b64b532b08639b06ee450e0c63864b8d9431637fb10e4a61c70433d957a4d6e2037b3d520f4732c8c5e60bf6f7203b93daf82a43bc5bae8f5adbd2a7a6777905bf315167a4ad9677607793bad50a1f73b7e153d6637941b35e7ff7207b9b9beadf27600371874e1d67f9ba27fd59ec7fa765c1023c914d0116b8c10b3c7cfb5dff7d8badb3d4e3cc2e1fa0ebce807bc68ca25da669658962edb2fb2f2e4ef3c13878a775af60b91bdb443779f7f74dbcd6a7350a738180354fb52f94bb12e7dfe75b427ebcd475d46c7dddd992c12f6813283e38a46b44c39117ae752a5ed7e84e040b8a7765734b94aabe33d9e0acecfd738f63d33db18d86daab28bd618a59f0ec2331a5d30f8621ac4b59781f0097d5ab7c1e6b856a97c1ec02b711b9ab47c1ae6ca42462224b9496cee314d2ca917b2e175a66fba534672c6e407a8b6b88731c4f281746b0e929e02de1222d026b6dc01b9dc9962b9e009406ed8f491ec4756fb5806c19c45a00cef800bc7ecf60c84fb179f673f25a515ccd1cae2badfc3f90861f04573a6e23c46737f1469e1873bf9c3d25131d3e6d06a449a371994b0008d75947bc47bab2f1ee08164779ecba5039be223f9f399bf71af888e6571a26f7ee6b3bb1bb0447ef6a506d935c0019bdbc3c40360d4b45c8241cccf88fd41458c77b77f292c8999f02ef6ac0a3502530a851ee55abd45a5a7c6f2fda802326fa5f5bd1b8f57deaeb8889f94799fc22c650d54930d8d91d90e49a4637b84c6e086ed26383be64b1478d22f7f87716ec84dedffe9be43af6420bff39520f413c40c40ad9ea89ea7ee345b948f20c3f2ff584a131a3c43edc50c001a726939f3570b32c7059f860adb793a176259586614fdcd9c0111c24541c645e2baf99684f0b86d65a54e468e4b0b7b56c4a96d5404e1478e1b89fea35b055d3643443bb3897d6bb64979b6a13734a67bac96a34b3d6afc9614ed36cd6f5288e992e6b8092eada8815b2981e6c0a64bb4f92a48ba13c40c3659ff69a7aaf6947614e218c63432d41e7f9aba162f5e315584389a48b92292a2835ab986c029bb815c3a468e45c0afbf80eb4386ec92cf7ed9403e257ce0723d9e6860f69891fa75578da4b11a9479241f8e37a45cb0a624db15aa0507b5f4ae1af65399d14100b0b4b7b7d422c6fb9c40a6dd8b2cbee8624e95ab5631b2a92a5a7b859fbe6a16dd3abaef6964eeb67831c578d1445352ce0c5124e529304dd5888949789640a9c3e586780e62ef5db20b9a54d291d821ddeb47c85ee5d030c274e47f38c3f3ccd92ad96f652412eaabb38ae68a47e7280f82de36f4b2ce36c07553015ef70ea0ba4500a18ab2110569e1c45c6e8f24c8c67d10897f8747edee0e5c94260ab955f911e43d5558a0c2d39067648f666276791ae514b36cfc7a2e90b002332628e2cc3f27d4089017003fe3cf93ebdab6845a7f2b92594143bbce9803587dd8240539a9ee44d2678a4fb6e4ba6d2a83716cccf9edd2fe157a49d57a7e6d330dee1d619e18dda39ae2d5038e3aef70fdb07df0d35ee9db3bff9bd8fb5d155facb82892744a8932628a5c7510c3a97022ce53ba6d96d4aa8513bc9d25ef0f1b68fc8ecc0b012e13d46469db4d32fc01756288b5c16d6204a8a18abb0d179d7491906deb1949f682791ccc26882b205f07c80303adb526c99f7a72a73a87ab5ca132c2300ef57c288f7a50c020015426430d015a53c3a1e160270fda6373826816d221a2e5609784a1ac42034cf46d4d13e3076e50431d2b7120ba8804c4b8c367d11c20c78d76664c10ea55c47425d514665806680f866d6ff280f707a545a76825e4f83cada6767d60a2b37aed5e482b78017e905ed68536543a18e0b790bc375115fbbeb85ec22f203ccb068cbd36261626990e5f6553a3b311778847a1a9346d7729dfda1d37f1419293876e3700373cd4f953bdfd13c889e60ecf283108022be5c939662a2751a3903905e0d89948ad0098e14d899cff07d6981d5bae7d35c0216e291b239f390e68f031e49897091517ab0f4d8202998b93c250a193c735fc86815dd670271109306fb2ff1b78d355c32542803f45ace8b18251b786280ac7c5abe8fe488d77b033d8ea108c4b513e9f7d4f667ca2943eae083199858c0464b75a1c0349fc57980589cd7b0a84e057eaaaf9b73e54d8ae00e7d6f987775662ae3b8b8df9871a1278a0131b81460bff3b400cb03cf312fab6b5adf556d0ccc60a60cde48853cf7486d39c92f3c5d99a995899c03a17e0d0474a287074f7dc886ac9515221d4250efbadafec74103fcd3a2938d0ac554f26e95c60b09628eb7cbdbc8dbace3da6f5d013b120ce68ae79d263bf003eb5fc93445e7fedc300804a9fbfe4ad8898eb2445e97cc7055a6f622bef9793897df03fdcba4ce1d1353d73e441421d848174f64f1e32c83eae4b2dbdbe409249899ef911f92c6059d276a69112969087401c0df8cb02f7bc68d6a0b1ea4c0f88ee733a201392d123a63c7963c03be3ce4415141f891d04d70391ad148f3021c614b3ccdd8b16b91815da29a8fd9061adc29cfe17d1f0f93c616125c8b43fc0c48b92cedf82a5f86dfcf0708b383032859322e5d74874e40c3d8ac1cc69a4db79e116261c80b9a16da231194dec0815b30a95872fbaccdd55bed7a83a28fd7acaf9aac074023a9a80788274436f235e43ad219a174e88122a627a4f77c9d4653145a6e8f1b6ddba3535cd26424ad0327557a4e8827b435b3cb9156de44028b6ff9ea3e73b4486dbfb7dfcb2762bbe78112b8e9deb9dfc2bb1f9dbb70c520cbbe5541b2d9307b30d55d6d8045f0c2ca98f716d4ad69eb842164930a8f2bc4888f23388d640643a0f121b82f6f304ea5008a6434db51aba39e2816303ec2791a18c9975246ff382f4608af2a41ea8fc6fa0f635c2fa65762f56b162455d120e22654711ba084e0bf531ac726a76ecf7cddd79544fc0ce6189c28b134e107e88c486ee133f89ee03cef3ad618991af5a83ee65c69a7d0ebb78f11a3bb8ac06b407f5709c4007c7448649d4a22330b40a681de802f50c467c7db49ee821d24413fe95c3ea27ed2e142fec042699a307a2da951f43a4f8b2ec52a4584552c82da41cdc36623d92b396e47b3cc74b042b342564bc11a271dbdb39a22ff4ee0cda7bf0a746ef4536ccc2f4217b945ab5073aa2f7d51c70df40733ebf3e58f575a8c68caede4f91b191cdea2ac30fd7ca195f1dc15a90a9167877017c46aa41d8cc0db97fd63a49cdf63a7fd93d2196c7406ca144e4679bed475cf6895aee5eebb7d3d8bd1263e731e227d612d0b578f1518c0cc3dda2442a9d0629b6045613081f40a0f2d9ae5a6dfcdf40b750f5c2d01a336126183b3294b1f3469db626e49addf89de63ceefc0bd44a79d025d47c8c6b8470dae98ba10995464212e651e6db1a32439ac72571007a62bffbfb75817f03db434663c873cf5a64c0bc620a291faea1e11e6ab90f0a024ded45188c6e174390aab410c1d4d25204b8b57546877a586706036d41210519f0bb3ef98e5681db2b79540464dad00c57454492edc97f9ad8c25a507a0c981a4d8554b0fa77e6580dd71e07652b051f52e27a9d325be30991fb5899614a625398d43a25748958672507163cf44c1bb29278a93a3e63247071ffce66b1013801bdbebd813a42d2d03b8701c6b40f2869243956f3412d9af7016ec34184aa665c73cf4643f49f70d83f64b2dacac7c1602f5580d120506d07218dc94b85adcdd6c7dd9542496a90642263f70712d6c817a70927ee30dbafb9cee3905676b6909c34d9156bee0933ae848cf22c0f91e0e3b4a0f0a6b9547eaeb8e5104c1ae428cf0e4e501d62fce70641296b8aa9828877480130026487b52e167de61fffa76d1bae69d40180b032643296212deef3eddad5a9c42185925de586180f2e6bea1101890a7de091825acd52339a230501a6c8c6cca7966dc43cba8478060112a0a7831466d3ac5312bc8cc83f1626a29ecd0075db629c7ab47ee4221a47934b635df9b51930c366f2202e0329421417d74e11cab9541010c3c0c76d8e1cb924cecd0482afde7608b2d09b95cb38c503857322f18bde1043d93646e216de907479e1ddae18d6d4dbdf3816d265ef385a226a0dc03da191072ccec9c78562716fac7592d8922096311c7c048be53958ca08a4022115444cfc09f7919db15708c48b05e5d2d2830c73725ad9ac66b41d0ad757ec4e695e56c9564ed953346ead566280f3fab433a596b6d649916846c829135355e274c5d83f04985eac92db74844876c1edf21e5ec862e0a556b218d3d46b1731a07abc222beae88c4e3ea5d041cd1082b72a76dc54e3a40b8fd9d66f59a070ee6cb4ba2064ddefa28e726b87d512d6a42d2edf2d8f5635617da749f68a824a07bef4a9b44c3aea9fa8f1d524e0ab122d07d84808f2bcfdfea8624a28796fc94fe3d09348335a2db5b583e91c7e80bdbaa2ec30a370a77d30c82a057d473184a880d1f847cb6b07f1f33f5f006a19d9b2ff193c5dd5ed4ad6f6f3cde6b69252e16f97867d13d41a5c3a764829e60b496e9a2776bf7964eca5b88363f9feeba6a3918100a0aa8ce35692b2f9a456938cd614b510d5025ccc8a6fa09d2a8d746dbd958cce17ec1bb8f996bf5ca0d1bb1232be92e0c792a014e3d410c61db09732efae7bf0d8a54623b31fffe20652c674248e68ef2acb8e35aa0e84c934917619b818fd6897f9391c285de896708d6654036cb92a253260f740db9cffae03b52068401df07f29d06248ecc13e4989a8831450ec549bedbe9773c35ad72e1056e15bc5af5f4e49cc9fb43ff78689aace7a61fc13b24e56131dd8a694c3ce333f3cd2183ded4c3d9d31bb2a9b3d49a0dafbb6810d57bdbd17c512dacef0bd95caddde8908f301cc34821eed0cf0ea34d38e211ce0085930e70baf8ccaa357c27cc20b2febe9f44465ad06174d54e5a3073fe50b07d0ea1bebda1a2d2ade688709d8bc9e7b376501185cd66172f865f6d651994aedee208afe22d56b1164be199426468e01ee0428e5212e997a6d7166abb42bf33906f6d1e26fd8c0689e356323c72910767cc01dddd9615ca5053bacc704fc64384be914285c406324702b9c16553c042665cd1cb0c647f7b02494fa98aa2932a5713e3a1c52878b1dcfd95bbf98feb8f0e54c54569076ed29d0308cf0f7afe677d10e6391ca96be92b6a0e889761c5873ce2b16543dc9bc6b1e0a7f3119c3079954172a826f9079ae2c236c52b2355cdac0ce6a62f48b0ae1142b8256a2319b2ae8447dda1e10b8ab95a8923c48c9759a37b30a39984ea8cb38a882483b5f2136508d9ac558a659c07b6e95603080eedd1c12bedbc0e18ccf08544f99f18f10d1e98fa3f764802550341031edc40f53579ef703958ec73d39d8bdf904b684d51c1fc2a525a079dcee86d323130c545fe9873f85d681e7a7db3e9b355ecf293b57ca0afcdc0eca7b8250798ad73a7ae0090c96770acd4ec3b90da6c72e38b05513df4d9aea280c7f78520a84a0d400674b5367456a37e2e5fc3e15d639168841bcbbcc1a2b656fda385c75189a2bac7f13a1134c8bb4df1f86a0963d6ef632ac22262a4831441979ca1e078513ca3dbbc0301e73425bf306ae29f887334161d93b22663a5aa1446f4859931cda5e1fe70394b14022633284509521fc950ffa3361f2f1e823a4196191c9b7bff89378cebfa1d2740fdf00c17f69211e32788d569081b41b5e5675cbb3d44142e730ddce3abcbd1503b45fee59670ee16b50c90a59f2a81a61aafd14ffb5e66c62a7bb2d34b4bb7c7636171a6ac9da63affc76c4c52f46456267dd0a83d668a0d39b316ef5fd3496fc54f8f02a37b0be1cbb57e4f83b245928066413ddb17164e6f86e8623a6c0b0402109029a809b04f182e58170f70e52645fc6ced4cdac24bca0d95554d102c75e5eb72a075bf92cbfe73ca2ac3636f76239d01b6cc3ae2372cf0abefd4c9c20916e01463d3fe825a30e6c957f2d832b512b6019c65bf7401193db79cc48065ac9386aac62790f2e6ef998eb99b4c042ee7e48fe8c0361d7478a6f4c28e527febdfbe71ec62590dbd372e7e15d1ff41107301ce1deeb6f29290da075b39d65ef17fb6d7db75ec94edf8f03a64ead461da86b96edeb9cbe497105f2e700ebe1e7679a330cde68c50769d3e58b6ad8429ecb590eb7d271ad02d5b82ceebaec0eb63c8063c80567df9b64719ae977a6fedeb3d50f4018b0af8fb22ef41b8bd2e008ee8ea3c531e440fe76da5a98545a5c02e5fee7feaf9f17d5cd550c303d11da26e99549b9cfdbcf3ea03192834ac01c1cf5e54c984e2e8517ebab552517ece1fef8e938967f42c3debaa00cd2309dc799deb72f1134cb108ca23920037304c725bc1564a02b59cb1c31b08ebd5e2efd474b9d74e147c96f272e27c8373551b953296a69254ef062546ba9bce5dfcd5cc2f5a42df8b7e34502874dd8bd4ef4e12a1c3cb0afa7acad375b45d65b35da04175e7bd679cb8955be3e1b610f5bcf5a7d9f8f2fb50d140a753e7062aca1d2c21116d2df3c0720aca4ca553dcd62a60d40c57b22bd468c02fbb5eebe3fbe2bee502f138df297123ed4996e6548594cda5456cc9fdb99b6e421b35a8a2a4197bcde0cbec11e7fdc505aa91202402df732b734f3dc72cb4cb004a30355b9f19af94357c8dc21a2179a9dad4069589152412bed43af6ed11aaa7984faaa14c7141307f26732b5546f32937c5b2327ac53fc190c445489de1c30d45843d0471ac3a8858873dd1958f2ec1000583c15c5afba1b2f64563e7fa5a5b1dffb7839260836e90025ceb0c9614501fc1cb36e76818a1f371bf4fe5ddfc614bab761f94140f973f2fa13e347fbcb505b7c51c6a5082a42cb5131f99347c15c6745a67ee69a595cad405a516ded66889e6ba4056a2966a374cccf8cf22bb04d92b48d49745ddf4ccf001c9ac9a8fd27e10fcf89a8f3d68dad8d7a5ae9fc43f833b39e1f442f43d4c3561fc6be5c3450c4ae9ebe9b37ec68ca43f293b2f3f183cf032707173477142f802d6922ae17c719fb40773091c2f312993b30bbef1de04a05828a74b07eddc5b2523f146245c8e84af0b72abe589fdacfe58187688435447e126dfec6642cc74cdc00a50eae54603e353acfc5a346c2647867cc44b7a19bd55ef39e3fc682751967094089eba00d40147960f2e23055700cfcd57f2564727126a0e431e47e78f8a7e3191a2d562e9b4848d761b92004e247cca5e8d93bfed05340f8a081ffffd66dc6afa37b062b40d78a54e5a0ce53cce15a541c25544ccdd76a3396cc315c3ff4e15c4f5e8525c3b5428932e4901290376dae2583c3b761366c4c62173c0ea85a59f88a0802075664b54d712a58d0fd873ac00911a87067899119320d9f2b8f534520b3ec9a084777782630c991680acc8b6d47072552dc72f2c7093534c01264a7ee47456170784e0b3ad0613c048faa77a13dad106d80d7e6944b11f130a8958c275b49e85021bccfceea69330d629127fa99f7515eacf08e53deeafcf4244d34652fdf5790f1ffc02922e163f9493d15e4deb39b70797d4faed2d87cc61139e5dae897368fafbec9a07cee88dda40247cf27341dd82341755b94d17c07549c84eb1700a0c3a3290f0ad7552511247595fbda58dc61092a95d0c00d8bb6e447067757ad9299e100dfff9da74a2ed2e651e6e2cdda2659a68d73c1cefc72eadc9850cb256a86c75718dd10974de84f535c9db89963aa59edb3db5d696603fff404cf5ee31689de64b1a24e5daf12698c40cbcf1b026052a6e59af2f7dd7a79538ba661df674213485e43a6eada3f6bcac857b6abab799152d73f140f254a63c2495796e94c84b06934bde2ac35d8662584d6c91b83632324c9938fff371965d7e48db0ba1d0284f5ae4904cc552da7e166bdf85f0095af8def5e388b7cd6eb6c6e1186bf12566c358a74907462fbedd3957863abb90443562e1f7daccb15ce3999c04ecee4fb47d225af542a34da2bdbf5014188399d5b0568852f9b6c341ba1a0a7f6195e8614c9e453de5e1c7f667085528b1526244d540e02110f1a86168a53208262979df0eded14ffbbede16c3380630440e6642020a8376eaf15c8dffc64a3676adf54e37ca12487cf58a13866fa07d8461563efb4a3cb94b170d72dca648a934f8065c436c4f4ffb8fd15ab4a4420054ada2f4a9fb3ba15c8e90ffee300af4b7fc6bff345200a6b505082091bbadc9b826408f0dcc9cd6afd880899a13c9ce6b95a1743b88ffee0acdadd0ab8d0440ad4bc5049285bd28ff3ef0b3892a3d2a9a0c23b94cc1d7491de50872b3d4f47cd62ae97a5c0a0ed4d9b01b66af0862d04004a182fe66e1adcf0da206ed4a7db83dbc80baf24f0f187cb8532463eb74a58082d713027555d3a9d621ace12f9063f25555d0b599cb02c7e4c711af9fbf98cb7e7e3ed30d8f48922ce5470e120cd13447974e3382337c0ab58837f79917b6495274d14d56e2b565a8a11478ab4a53479dbb680fc9f8bebf8aef0fc01d477cccc36ee4cd73598660eb755a7b60939da0775751c7a688e1b7d9e0df58132ae00d6dfe5404224a01d99f423684becd766645ed6512782a7c99feb9340a39f03102d552abc9b39fcaa029419b32886173462514d6364a0184a8763e7983799223a5b90ecee2457b4a43d547c210742c2abecd78279a92486f63b533b10a4b78cfa731edcf58733ea46d5e22e45ee0571817dc20bc26f4d5defeac01031b3bc9fc8621e0c1d22a7c27d3d5a7a953b4ec583fb212302e38c08e8a27aaba1bb202eba9eea04268c873819a95f30068cf166353159519768ab6df56be8280b8a0be94376ccca9edc97458bc1ae1a13839531fc47faa71f0037a463d6c52f3641ae199afc8b364ecbff481a84e40cc08310c1c0724309059342568d1c87214dc6ef5ecdfa7db6500ae260750db09abf1295a3a1dc4263b1903efc2c5b25306d3b15a249fd3e2f1b05796187532247ba330a4a71bef9a656724bae28d7ec0aac70b004512dfcde5935908c3f135a34a7407b1db167d7f746e337e4af45a0ae5b55da1fc995e063b75a2a4ac7d4b003216a87e4e980cb7a9c53e8ad0607407c1b5d4d936ed517139b511cb1f472b94061629301ebe2f009e99ea1e066a9cd6bff1bb082647235e7a7a1b367e722a9ab32f45db139a29b51ef9fbf9b81173acf40c1eaa49746327ad2a9221d15c9d149479b641412ab251d05e9d248acc224594b1141ae1bea9f2ad4db7dc78bafe12c7d2b9f590129f9bb992b585e6a8dc0c549e436cf577766daf3d93b9fd6f9e9cf4eff6c5ae7db3d37cdd96a9c6f776677e7d33c9bddf9e99d4dff7cdae1f93e894c40eed1ae3d3ebaa0e3f682be14cad48d8621666243b79be67d137f2dfb1494bead4283f54fa99bd00251263efd2b1c1c4ae9895db2513eac86fd04a0b23d802d2e13b8c67206d430ce0074c67980c6780aa44116f0aa55f00ba209f03f77119531947ffd5fe8dcfc269f8291bf5dddc978a37ab3b1bb3a3475eb48163b16481f4d645abc2110f5638465543a6eb6caa3c5b109175de5c08595410bd6ba1fb4d495bd1dc4cb2f688b3dd32bbb0eef0dfa217814494f58ba6b942412d55ad0b00819eb9077f28c862c2665662a104383b462db19b5372c802d3aef8ca3a5fdba967816d6742d8e77068945658277a63ff00f8487c29c7eb5b1ad5507ed70d34c729ca529a3d96792068e94539e27f06109c4a67e7ba6cc28444312ba215aa36ebe2a21e9dfac70ada1ab62c2b1f23c4afd3191a4eb1d8ecd07a7c2e532515cd2cfd1e438805577309d5991d1d70da91abd3b26622b562e803ad39458050705cbac44bea8ac67c9bc40ac986d22d60f30aac4455f5a666724094f6954d43c0ed844f7bddbd88f769e9f6223de5e1065db48422e1ec2da7e28bee55641d242dca92f93152d0daf49e35ce6178e1a7d1584595512136e12565f281d04cad02b5a4d6c6242f63c6fc77dd8c26a1703cfb7096ce501b9d9081ee664001bdbd28a041a37545183eb57a7ff8b55aed7a55590d85f7eae50107caeb859e667d07305fddf9b44de8719950ba5a275063dcb15ba3cd333977ad398064c902b1294343582c97494abb882c1c5e28a2075b16fad6a7b2de00131b340f19990e994046b965c72f41f94382bd4644f6eed8494672d510ae6af1c03247dd7a5eab47377170a4c99a8a6e3a578666db6088eea6f47827676e66641d58ca01dad402a5f06f0ebc6e3d3f50de87cd5caeba3423c8e920a37368c712e0235230565eb51be06a58aca038560f7f34bb2b6bbc97618366241c3739611471e545481366dbc8fe8e2dabd0fb288f1ef078a31b5a0791d81914358004c4dcb0c7159b781710446e0f172f20764f8e5c390cc03ef0686a2c897de0cc194d70396ccff69946804561e3432ea812e12825bb260af00af6444d511331c7b1e9f6454c220335df6c5884b069f13502d0e78adc492c3764544b0bf76aa8234962572c7b6960ba3abb97bba6b86150c43f9152531250452d8766f54e230cd62bdff14dbf4353f62aeeed82a4074bf9ef51839fee6354010a94affed4ebbf01be316614eaf401c1f30bfb5415cb098df61c567e0188c44e981a2de0866e611920e86963d1caa944e21dca1a005b5ac145e9e556e383597bf2f0a36588301f8bf072102a6172b819d65b9134d14f97634e3065fdacb9d5134b54b58470ce12540282b1d4b1cc0fc83e4c66f0e89b60aa4f941ad97c7e5ceb9a9bf5b623e9de8a1eb3b8aefb39c5e480840643b844769e1c1618190b14866971504cd8970fac5592486e38557a4a044665292d44bfac56b8b91698a6da0e546749f7c6fc6edf5eb69fbe4cc744043751318718e78f6ef5bdb99f67adf59e822a77ecad7c9dc8c8b11cc9c702bd2734007531cf7e3f8f01eb5dbbecc41ba611dc80651229ecec67e2e686d6a3aeb4442e63c4593ddd5f1e2b0da56eac50e61bb6aea5430a65401fefb62f4cb44cea430d5c491ce5068ec3738b2ea4f6173d2246b2f68feea56d2dbb9cd3aa99ea2f9e9d6cd27b33d890606e8354f44f186f0ccc4e8c56279ae08a83a5868d18140e1b7bf911e6942625d030467e4500c027d9406556994e0b30ae676486d1f587b24b854450a8b0a53ac0b54aa4d37509ff1459942191ff03b49a5c43d55a0618d20e13ad14e56e3048d140f1ec098eb10b39a8d2a65124adfd6609891387e722b3b1054a0ad5390fa26d7d06ba62132d55da5da7744b9d9834d41971b192260fe4283bf1dc011088e73550ca37f4b07533d123ffb56e1969c31f5321539d316305a5625d0026653180ad4252d79d33c4b2a5a3ddc1408155f3fdc0698bf09ca2d71dd61261d596c18d8b1cda6d0d2af6cc0972cf9a09427e8fb32e4e897da040d5a0873c9846dd86054a0186b92c172c0e25b2a8cd075f07c645d371947ceff939128a626cc693a700c7814513820c1910813fcba056c62833c6c0903f2c0dc76c8d287b38cf1a38771f720d3deea0b11eb23de7e300b01fad92bb2cab9e75d2abe8a201e3e1919f053135e282811013812f7e3a6a1d34965a5ae2c84928b6e44670887343d7fb6e4b40670af3ab214f4b6ccd852520efed4e87650eede6bb6316ddaf2aca9d9aa028fed7b62bf76514b3841ea190a53ffe7ebbed5be7f0d3e43385475ca17a4312136c062d65cf0cef55cf8a399b843872b557aad204ee86b6419385863853b9452bdf29cb4ce5afa43f35d9f049dd83830747ae54edaafa7a317cbbc2920fd56c48c5e0c959cb49d0ae8afab203ab60b8f9ab9b3af31c7c12e28b975110d028286284da057c1e649c1c347fc810d657010680ee22202dec9873325d71b6590c12c240e77df9a6a3ea56ca0f6b8ff19fd209c438ea9d1533ba692e7f701819999213b94e01bb6457e13cb2601e159c2b9ff24841eb1aab7c34ede8e999eb76bba45facf11e77ab95819683dc30e0b11e5ef13d64214aea4ad16eed5cc14c82a2fcb74a37414fbb4037a5cb925bb1c20069d6f26361de7264a940ee7f886443b34c62a86995c25361e488bd0f61d6a13ed044d4112d43e2769f6bf8b460f98e2b4e61a0cf792853a3272da6d25437b1d3df5994d09e584a19ef60c814232aea22a144becb55cae7b1b8d742ee1898d4fcc69598fb17fed3311cba56febd12ab3a8f499b1e2e32c8fb246cb0c4fb86ab71e755723df62ee64b7bcf4f900e0ef5fc269ae48531ac5b7b56b9b7a3d82804c0f43ef787ce39545983a13ff10dce6fac1919a68ec496d7e6aaffdaa77c458a8c45b52bcb52b73d05d4dcc3268e02aa544b589a21e8b5863a30dac251a54c55b3685a6fb3f30e5b491ebbf69e7506553ab9b8d04f54b4ac78a54944e9b72693cad650e37d52e4e1e5f36e3b83ea41bc81499710bd6beb0d450c1298e58411cccf331e2b325a9fe1d2abb1d970b4eb36050863046b665f1568b6ac0685e0dbd204eb62ec793780ffbe259f8daa7fd1a25570383b0ca01b6240b6cf7163dea40233f5e02be874c9043d1f5a283a0d7126069348eb9ec5a0d8152c44fd66af8ac13de5c0078a4bd870c7a2615bb0194f3f8463f6846507d374640010fd3cc6d97fe497f5e0701d398ddad64a1b4bfdd7f05dff5d438eb47231118780d488c7ed609cb8f3a553a799593e085188dcec18b20edaa6e83c3f02d08cf5bae97548d5fbf4f0e89bfa67a58df54a6742f25a85d3043b1c2db38f13bd5f111ce3a3e8c21ae3468f52d2e5e878c4cd0f4024dd2cf983eb69debef3fb42c4c7fa6355231c35ea187aaba94377980e801c775f663e04208dbc172aa7760ab488d5e7c0d7bebc7f5615df43f3967b93221834cae9a4cdef8132fd12c02e4cb422b38d4e2a9398080994d54ca4151dababb8ded5bf64d6f2bb7c1a90970f40cb97ee3f0ad416666053f6732a1b8616dd46acee147e8f7ea1c2c0157b8c6fd9341de78b6a1dc7509748bda15fe533de3f7c442c74453211616bd12b840fd9bb15c67b5a30b38d58e42b0248402fce0c09a6fe6e119133cdeca6dc64eba9938e54b110a8e0d4f8123b1aa9bb8df05e0f48462c24330c172ab1c6474bd01b44f8343e1774c4c9d64438ecaaa5ab853124dac30de8357b45ef080b51c9ba114389c0dae8642f336b0bfd912bc592f08a450ebe34a157e877e0ae0dfe081d3a07397d30e036c314b3af262803714d822dea6e26d2045f6ef5b8fff606dbcafa551f697258ba03a345a84adaf95e54ae8efe3065fe740e2b0e848f30783a45845ac23e535405fd8d18b4db323b2e3da1119f4c5291340223988902ec96303e7bf741ee7b5325572a828d398a1f9df7d8bb9bfcb3f41cdaa84b2ae024e92430669db50230811231267787c2b6d49484544ea610c1a97172889bbb205e56207b620b00e12b905cbf2b7c5431eeb637e7d73641f098fdef0a040c490d39677cf24927a297f49547f14c75fc93cbf0b0f62e155f34636e27e1ce63077f06ea33fe8f55729336a662c2f84eb58b58539610e45703820a8b661f1626490301a1093df739b1546bf112ab5db78a47d1bf7d6a3c288abd3a5fdd46bb1ef510fcefb6b112c1eb41f1aafbc393fe340bf5006d18ac9f0b41efc7039b556c36339b010d235c285d5798d011cad41511f90c6a59f0422eb7da9d5d5597db2a9786b795a6220cadd38707826d96f67f7c1e1952a308edc570212cc3320a8d74d6baa6bb185df52993047c04006cff1b91f4928591c2c5eda9783b9914ecd3b561fec9e4ae78563ad02f260719daa7d8c77f75d0ea42c8e61a3bba138a488c812a1f0bb63b0928c56d443fa9875aa769e8345fde419bdddbc242f3591b5bd0f6f78150c9bd27afc688ce8dd904bd4db47517753508e6de6fe81090faa31918b65b1ab1e680ff674c588b1b473587a6cb554ec76221137e18fb41caa0671d6e5face9354306f53c52b7d1dd01ee29c3cb1ce6e0cfbaa3b92e6c6280c04703a07f36ed5a375d67b34b94c67a0b5d25818856334eeb5b9f0e65914848f33c9957e69e404d96b55c0fd0d57130ed243a90bc5d48e0047107f184e19ea0a80170efcaefc80858dfd28c5ea9db1159313f3c17e58568e142875f6dce35fe12add1e0df965d0f9bdf6b62fda83b13f0c194aae7e3744ab0944141ee66a7182656d85a1af3a90762a47e5e0638d37f90160f5fa97fab38dd4c63db2f63c845f271c04574c9aa4f59982b414aa97aff8834a4dee5b2e4403505b2779cbfd9f6127957a6d5b29c1c036957282bc087eb08f1900a0f545be1fc08c93f07bfcffb789f14c4a60c386de0d7e21fd0811d78e420c8bb03a64eda00f6ded300054d65d62bb29f0a6470577388e1f37122c499d586c89d2122683c36651f7a6c1c133ad71f1e45dd3620b5bf06e7f01dd4af0140f747ff940a4cd5a0c83e4c7a1540371479f8a386f126a302b27d14e0154ea2be0cc47d2515b945d059f81e38c39cee3baebebd2c86f0d10fee441186e130230a67b50ea9973a7c5a1f009a35554c88defff99b7c63d48ba16b371fc403ccfd31f3c589b5af5729ce12d6d22771fcb7836e85cf602651a76ada45370a3efc4c31d256840832d68b97da852435f4ea2a88d9b1ac32ef66158bf3e33d72bb8340e332ab3f609d90a3856679d95ff8446e2b11678a5912c772926a7aa698a45442bb80bdae079288bd64c5994c1c9cc7ed6f5fa0f4a935162e742b766be5395bf85da0032a182b02116048906ccb22c738611394a09d39f263be3c923f520a4823242751703f5755618aa4b58b2a84ea05e459f9cefc8acdba40158a698e9f048aaac749194ea1b35ed0ad0b681442304edd02bc8fc34032675e242f662d8800150a4feaceb79a1f2789830f0afc84d10242baa9e66f20167f4872d647562482f4b7cb2029f89195ccbe0e54a88c6596cfb956a546efe4cf121aac3e1d5380200de9adc646559729a142e9cbc98d9c91a8ebe400628617cff71a92ab8c998b99bdc34aefb7cb003f0e462facc5498aa8acc5570d6e059e169f149bfe84bc1b224a819d4ea29708a1b71fc9226b8e89708cac510993fd3a04011b5570b161f765a25b5571dfa21d1c1d52bda527b4538f8af305a7f6bc20c94d8e405b4b9553c68c06c410b0b3a438d410b0bb45a7bcf2cf5d05b207f0297bf96668f62f8c0589d60797de1fc2f5633d89c1d21db2a2c04ea1c5445daf793fa6448df45b9792a5c0a05ee1da191eb4167a30b0c9303eace42945c30542a6e0e192ef6a0159a997af4cd3acfc146f921519553dab26e6ffecff6328bfa4b6c05e92b1b8465fd3b895f75e8874ccfe7136d8ec64c261ceddfd495e2a25f13a9d0f24ac9184a947ac4eed213f1d6c4706969691329a594325309f7082f096227ab34f835fa2aa970cc74d005a736d263dd13febbd24df49a9354bdea9cf05896050a27ba1922c2ea98050a9859a549d22f90bbd942a4e3d7bc05764bfc3cced837a67f368441a693aa4a839f4710f6d804c7aaded8279d509a189b903e385695061fd9f74d9958c76f923e1dbf4c4cc68754d51bb105d6b14cc7f193a9f8aa0d1e30568d216c6b1f3fb863be3459b2f6f089629b9a75f5d5dccd9c237b6c7135da0307dbd4acfe32b50eeba23491d6459d17a577b4eba2f2e3d7e845e91e9d7ae3a23b163b6c0a100c74a670e17c16bcdc052286d0c2f9ee1555602c1c1e46455c7005e239c285c3c3c6da2187808b1ba87078182571f90e29001d81e2f0b00dd9e17ea1b3821487879108c66e370e63aed2d8d78117467c707ab03cd86b81a0e99a1d1af93df4db31b5b794838b493cc079a4628fb4cd2df10e6793c36ab14d898d2b9560571aae2b0de9b8ed6d2f0b8dc84599362d3d0bd254da4a63f594feedf103b1e1a58d0c37df3884bd6d6e4822639bd547cf5219704abfd6ce7b493f0f5ab0d6225fb561ea9acf0c56eb4353f574089a0a41449f4289730a2282e89f06b7e7b87f5d0e4ff757c857c5aef5f3584264595313721cb8f7378e5fc2c8b679836e105605e1d4121bb05dc3287e61184e718c48c78f9f5cd4a84bd9b67b57b6f62c9cc2273ee1e7b8bdc7f14fd576f1e9055b9366d72ff77775cd1cfda660632738899aeaeae9bc289d4f20c50f5a74fc58243249ddc4a7b5714ff835d3f6b66fe4b7e0759ac85b258026008d34711d348108ba89511713ef186c735b1f2caa9b9c537cc2fa7d7c62b13485c15e2f6cfe43d99acc537457f613e9c1d8b3cdb163aed2689576c313c622c24abf2ffdbe98199937d5e8c00fa6441ab7addbe9765c1de73199d2d62d3f53ea6a9daeb3ee48d2ed743bdd0e0f592111a00ff84578864864533a27dd83ff7d20c8ad68263a4743462b6ea775cbf36c9d274afa66be999611ccabcc9c969f854f2b7c529564427c6879a14d604ed4534f13a59fd21659b44ed798a22dd776cdf0d1cecbcb4b7ab6ce1a1de79951cdf8c00a62263d5ba709edbe136697b228c59aa4afd6e94293485d2dd485569a139f5c7e62e9194e7a978a31fc792d57ebe542bf0ffdbe8fec34afc9090b89b8a89214e017a21169da42bb7406ad3b5a2438134d992204a2d581e7ce4da175b6d0f3433bcec3790b05e768351ae214cd4456623af00167455827121f9fd0c5b9a9e7234da8873f56a53191a0c9091b0d519202f6426b70b175569afb222b5b3402add1719e1a35bad4d3bed49e26564b27885ade3fa580bd943851cbfb629d892f149f5c2d232d2a586710b646ea6ab94ce8f991a1abeb5c49d096cb85b68e9c3be879ba5cad23e78e6ba70cd7e97ac136c5d6e972b58e9c3baeef3bce1313433eff077dc02e4e14b402ce4433d119274af29089bae33ee7e112b547123585fb261ea2f8f40a61612a453ddd77a5ba54494f9223270a8c541fa355abde7c2d551747fa45998cd4d2e403eb0ce22cfd9462284e95c0a8272b3ebd94453d5d54a989e80c27a520b4540535a1b1163e9db7dc71a12f58ea6ab9bef4274d4742f4fb3332288c5a684b880a455114457550b4e7d583a23d4cb4501713ad23e70e135ffa7d29da4ac1b4ee10cdf0497486456a6a342464e1d468e503fac0ec7d8a4422d10c44e7d9425b4254288aa228aa83a23daf1e14ed61a285ba98681d397798f8d28f1c9dadb38553218bd58a5d9448a6838a124d11cd700a9c9d436a0afca29e700af4c1a73b6a8d50008a6633d10c66ef4e74f6b3653a59a520d11422fdfe3591a096e0aca6e103382bf9945258690bf08b520cf4c1a95213144cd1baa892145f94c4484b60a4e989824a63a4ea3872bad0173ec1f0a985b684a8501445515407457b5e3d28dac3440b7531d13a72ee30c16a7dddf7759957189e552a90dbb1e33c2fe4b983b64e17da3a72eea02e5712b4e572a1ad23e70e7a9e3baed6e972b58e9c3bae73c7d53a5daed69173c775eeb85aa7cbd53a72eeb8587a68b91928e2fbeac764d7ff429734b1b5d65a6b4933e780d16effd68a2f6631715001808cafda3067ce5b863bb7b41ef66ee7e361cf7b61b4d7f75c3865f28ef4fa9e918a1abd13a74a5fdf6bd51bd1579e45c7a173d2eb774d2aea862e566ff6d7efd27a33fa5a6735e6ab69e6ab19f5545f27515359968b50cb5b5f07515139480f51f59ad1e8f573959ad22accc2a997afaf5bfad4ae7ad3f275566f42cf846c83b145af9fb388a24a5153fa85d257d4f2be9995f4fad9898ad2e92d63f586e5eb6758bd09852cf1796f9617b0804d438319bfa656fc2c38f66fdbb8f8f231d99cc6e98ff3904845d05a9f46d25bf290c211ec85bfc0ea0e25f774f9b51d88394b8df00c918c5c2325c497188568062214947551eee9fb8edb114b041b313172892f3cd23a31c465fa8845fe381adf00774bd167d4d12d29c66e093482612e06c34b9830140a737862ea4d4da914e6f0c460aebd9691c84db29bc27daecc9c06c3a7173ea1ad9e268cd4935792fd94d028cd4a62d493940e462d5941f820ca7e527c6231fd842f19be63f8e8db3606840131ff5e5e5eb811ec1fe78989810d6122c5a72e1dc15424fb31c13cec1fbf8075d12d930f37cc826632318df9541af1678bff3027ff8fc8521012d5cc4fa589e1934bd026cdd295fe19d1480c7aa418be76cab56a8035c21c4ffb986c0d243bcd0b91282146d1f9987e3a9f999fbae3859b524c86aa1119161191664def624f6e0a626a836d8e602fb18bca3f721eb85ddf7f9863ff3be7988bfac7796abc57c375cb9112b5bc2f82dd804345894f64f007f401280b55214f78866808835ade0f5f5d8af65b8334fddc32c707bcc7e0c39470a101eb33b1a6cf643fa2182b22a6e237c59619f58ff3c8bc27d3f9682698889b5ea94989c90953ac54a5dfdf235e92559afb3850e9f74b62d4f2fefd192e9a788cd8a49e6cb4903ca8d03a1f1952860792bd91b8e6c2275627c134c364f31024c3d72dbf0f7353ff2e2896388df3bc902452d3344cff3cafd3c25003b01922ec3c4a6fc94730b0c6a9b9f4af07b8b50efea7039ce159a5c2c1bca554fa172ee4e57fe07084fcf038427ed838ff357ee6359e832e4a7cddb20815253e514b510ba74c3ff8a4a3a8a951917ad22f9d5e1428bba5bea2a2c0295aa55bcfc328ea8efb35780845ed717f86874ed414ee93780893e1610b0f63294e852a33c2308b7abaaf4afb86f34286afbae33e8f9748a59ba294d19b6294bec52b447f5f6c527d8850aba3de809fa24f38e9e2eba24c4d6a696aa29e60a11b222a222ab7c44f0a9126a7494b6a60c6a3c7618ecba8a505268d6de3b8156e893b8d8b641fd8f6c36de374cae50859462ea3961f5ded87be42a738fcd7be8fd3c0b2d4423e623dfe4fd784deac0959587008dad8680f0386b84ddb9ff6ed4f244d9fc8eb449dd7bd90a62e2412eadc72e4d282cbdc63ca36c5197a0018628a6cd28fae9134d9600a527ad3579c12ba038934d940fa988f2183e08cdf038e1d9ff435b4a1447e2ef26b8d1ccdfa05bb5fd007f4017d575e309db32921824d718af4f6bf184e8d6f85740baabacdd983adb617d7fa527cb25f2aedc05d1ced40f8894f42b6147db5ce52be6e96fe10e5a2e90f66a029101fd0f98a64178553ddb3b9bdbab6811cae5dce97eff09d8cdeb247db0a23a46398153f5d7ce796556a6a7bd513fedcf1b63d515319552b933087efdc12772adbe42777899f16368cc13453551afbf5622006999ec91864fa25b9cf86345cab7d42f4af708800048cffe98ab5b6312c26077afe1f976724352ee8961686120331943d86b2671014816cb5fbb2dc17afb517c83dd0d8f93f93a08e38c3a9910c0a430fd63f0bca30fe31ee9d8639a0935b62d1eb87c827d4f18b7c2e2aca4dedb44ab81acbfd97c3a9d2dfb71eac9760256491335942ec8a6d6eafd945d174fc20d04d8940e2952b9734fe488a403357b6c94fd04724037d706a7bbd383c3ee92b89fc01b3f6efbdf776c0f21c3847f9f6ba25dfc9243f6bc0c00453182157df5b8a40a5134c5396712485be25cce108b07f247a96b7610f34b6f7df6b6fc318bcd7dd877efb7bad0ed3a5d27c36fcb187306c64fe511467b784a1c2b95bf2e7363810f4421a8b9a2a91326828fa8bfd03001d7f48e4a6be5b23dd17c8dd146717d4b9a5dde0917a63bb26444e74aba5e836896e5b40edaa37b5db7ff1f3d922cc08338e248cf1f61267a620273bdf483b6c889aa4e3d58d24fa0db4df788543541cae2e49ae2e4dab9473288a7d51a64f56693a0f1558539c6dad6e8e23d8b9ab8458bd11ed466a5d6bd9b4c57c50f61583ea8dae372e314d64826dffde7bb929cb68a222dbfe98bf6ab1b3fdd256559afcb16ef5eb19ef15e66c4b826498e369d072a1ee8ca8462a096a101586cdacd1b5ff78889bbb6b0ff26c7e3e3968b4df0db6bd3625b71411d9db5f7ef29d7bc297e4e70d362702dd7bba97efdc548914832e4f7261563d3da6883d3ee94dcfa76f382686f3139f4c64a90719bb6e2f12896d8a330e9676fdc2a7ff57b2bd2a0d7e5114216b25aa223cb1e8f86b0ef68f7ae375fca709a04c2413c9c4994c5f7ddf7461885cd4d63a02b373511b8c2b094ccf4599729e4186177af844e144d39ad666b825ce648f2db629928982462b9d75d63f2eaabe707b98b1cded5561dac577b0c930275cb104dd12b35ce9df0e3e1ba08d3047a4e496f82b01078e30a7fbd3298b33712602e5f81ff7a3a10973f67f19832f2a1b4001eb27f44a45107cfa0e6468af3b0803ed3d7add4118573a4af4a830677b302b189518f4852ca3cb62699bdeb40e75429d70d5751ee7795c0412af88302a21302b719664eb2f0486a0fe426028fa2f0486e6e763e6207a2fccd1a29d4a8539f955d8ba5e551a9d6d6cc29c4d04da3086ef7b4cd91d7a002a2caa1bae7a1302dfacc1e51dc2b0f510a957b882f7c3fb9c7e909b35ba59615c376f24d1f177dcfc7c3adac318ca9ec9236c91cc0b73f812977bfda13087d39e0bc3fc9ae65905f07bb26f44426cfba42fbda98faf9fe34c67a5c9255ef37a91f80b933847f109ffc8b90b9f5c402d6bfce4307e7294871ce53dfcc5777812eee228ef79f1539c7dfffd28ccc9df12de1508aec0824896c5feba4e537eea54f4fac09007932d9ace7a2386fe3e8b75b9a9512d6b9b924d893883615d14f7e2eca26ebf154625e4a2c2c70fb30ab908245eb92526c52018d52d85dc12660586e24c897ddfcc41a3a29708967767ca2f9cca2b809f0eb619b670ca54c3b883c986d2939e440631dd2f7dcc97bee28ce4d7b24fee60b2617cd39bc820a64bf2c8fcf8a61fbfe290c81e702e697e67b76fe2302a7cc21fc345192ece6e0a6f82ac56b7af9fc4b797299302b03ef44b6eb05b621829dbdc5edb6b835d54e5b8bdc7f12f392bcb3e4bc1366fa01d9bb49817813a175559dd12e95647868b663705fc31a2a08edfc4117071442f52b629ce5ab36eea94f4232986368cbf01b171aaf4f8b9eba26e0eda5eb08e9f27b9a9edb5a55cc906ebf8b5cef612836e5922c5b7b2f59b221918dbd469bdb98f5fc75cbac975fae4a6f87939da3177993a95d24df14ac76250938a12abd4d249458940559c8956b619aeb2e98e2b5b69ee8f9cfb58005b0065bae9ac34f8732f7bfd9833b6c94deecc99ec5f0be110d22ed2c7315c41c71f13e6e4606faf7ae39d292f089fecabb8d5c7e22e803fc05a53a5af6f72e3c75053255234c327fc245256472a283dccf1beb7fcc78599c1667918255b240baa372a9c22bdf6442db7d79bbad54d71b6d2ba38d32bd248c6bc209265b14d7ef2b3de801d8b5e335e6c5314bd3afedefbefbbff1ebf48c915ad74fc305b53e2ac9ecea82950864ff88bd0f18baa7f566c59c72fce702a5cadc4d92c8c61ebf97ee69ac44acf27aa4e7fdd20fa7d57d006dfacbdc575c0472be4a375cbcc47ac1191165b314b1d25192519e9dc12cb2e0a5f72f482859b60c8cd914ec70f72b3ec1b377510dd144d7176f3cd25150f49d357bbfa5e9267fc1a1ee9382412eaac70aa447212c7919b7bbc3b7bacec97fcb1c4b66f6e2f7176c3a5649b2259c72f9289a8045d54c62fba3252ddaf239d116b446474e4a2b8d139da1925b928532639ca7b6e897912bec35dfc0c63d8fa8d1e646cdb4d7166f293d54d6eb6bd3afe0fc706e0859c9a1d3c7aa0a0030034394e30210554ca46851b1f2bb0702a5bc0e1c28f8e73a38400bc90a3f3c6791f18b2846ac4993813819474fc62d0458d1d3fcc0993e4a66e62e2958baa4ba0f4c0e8b02c6c0744e8264c6b6369f1433761764c18d5c9772e0a577123f672ed8e10582cad2f8882cb906d7218d78eebef4ada528f31b6c9f974fb19b0fd9b5d92e47ebafda874fb980625abd17ae3d2fdd41b31c599286ca407ab349e142e1c4618c9a67e6d21fda55f3cced8d7e5f4c420b93e58264d52129e182e411face3b72457a5c11f9ab90475fca15928c8e5ac37014674ad23704bfd37900fb8a5feb28cbd827a510bb8a51da2a2186087d4d4e6c16fda22f877f76c70ea010ca8280b825aead7aa712347cd69ce8220f7154ed93c607bfd56b5bdd5db0fde9cc3a7addeb27205d8647dfb1f977b8ff43ccff33ccff33ccff3649eb73df79c39fe983624088220088238788f430e55d64d96df1e04b9ffde86307ccf7d0d09f03d67b290395459df7e2bfb9637bb6d3638757f7b19eaf6c974b1392e060e86f04d8f34c1ff6c68a261bfe86dd82f62791b42cf429ade831e0c21c9bdf660656ddbb907bd0278dc835cfb4f73db7bdf711cb6f7fedbbec7e0479a4c34e0df5fc3fdd023a0e2080901fe4d821f82fb2112fc4873eb5ef3b8ae69ef867ef08d9f4df8bbaf38979b3069a2e13ef736d8efc820dddbe7c8204bd4d0bdfd20dcdfaf389f09456c73052042bef7fec79501a73ed2849f34d1709f7b13266bb8cf996ab0dd6fffc2a69132fc28cbd8e6d871237ef3bbd6e30f9b8bb536ab5b0bdc506fca6e5f877ad38d36888d860e97bcc1049d1c6e697fd41b7b032f65bb86bdac34f6c724fbe362670b204d73b9b2c3633073db7f1a3826d9e0066ef7bef6dfcd9cc69126192a47f6406323afbe2fdc931d93ecdbcd528a2017bdb72d5224a6ca7e4c80ab55badd158d6e7de8f639308610a3dbb09bc58db1a48b275dccfa17caa18b42d52b01aa946eb274fb2cf506874a52a03efe21d643f5a64ae996343150bfe1b32e57f6bffe5b729723b9b173f8b5e7befa638730e00ce82e8870d183c1afb26dcf7a4cb277af0f8396aab562fcf8b9ffb0eeb66deb48136fafb5c7382c80f6e016430ce92e35d8e6e6f1dec67def718d14fb6bfaedd506ac2117dfb106db1cc568b2cdb2ecf76bea4dc8a5889dffb3e0cb919d9f47bba6254cfa6bd01ec7943fc8f6f54d9934699206fbdad71064894cd6507ffb20f6b50fb204266bd8c81a04e68a6dbfee7eef0f7a7cc8b062048a20cc705c8ad8a6fd502c890f0683c1aacdb8edb6dbeed5362d6cfb44c9514ff651e056d8538c4efe4919a54606fb1cb7b7bdb62cedf34d82b7efb6c1362d2ca80338d5d5208c7120432eed585dd281d6484ec82e4a93c18a8d04034e93d2c15bdebccaa40da20376085d83b80e541a1966b82515dbe7a24cab24ca45e1bc737681c1132aae1d95ca0acf1941f8aa0d9385d5f1bbea56b99aebdb1ff06b88b23628fdd979df16bef667dc58c89f8eb1acf5f16ff651c176e7a23cf24b72cb0fc527fc3e3529ecb5396f25f3569ece3d7d18e8961f0e0bc0a97abe25feb205dbfca874fcde8cfc82806e89cb08836e89b57e6b7f06685b0d0d81c22be12c26dd66380b812e0a2472c3209c025b204bc4c43641950a5409b91f950fc5a9f0f525b9280bb2bc15c8f25620cb5b812c6f05b2bc15c8f256206be5ad2c19f6843390c5a2ea38e4093de636cff7645f77fbd57edd02360d93007ac6c153692137157afc5ad569d54edf3cf4ba87380b0bbc610c7657bfda93ca096042d062dbafd6768c6d0d1f940fca07e583f241f9a07c503e281f940fca07e5baec0d82401a98f70699eccbf90872b11fe46200597cb5defbd65a6badb5b6da5a6dad953415d0cdf8be6f07fb9bedf8aa0d73c7d9b5ff6cad600e25ae37679b75fedb33692aa0730f9312df74316360488f257275ef0bde9cb70d93536aa9913ea827189234a356328dae3d69c5a76b640fba46fe541d1acb9b395a63eca242affdf8e4a2f66b3ffa6834309c6a49699470395a395a398ee43843bd25c5a931c6b9b4a4e40f9f01baa5f6233e33bba5f6223e43e596da6f3e23bba5f6213e23e5cefcdc52fb318653332e7cd25e8b9532aa1a1915c618e3ee668cc9999d5b6affe36621b7d4fe7299d52db5ebe4961ac699dfc72db15b6a2de92db596b4c5898683357e1651dde7cfb3aee58d53f5c71db95e712d664dd3344d9be9dba84ae7040bac6b2c9c6a49ef497b6d6fedb5ff367354a56b63ac25e5b4df38472b8d26a38ac9a86ea93d8f33767e5346d59d00ab34daf308c29651e160755fa3fd74ed3bd2cc4d04d14df2e7923569a5d1f29b38585d7b3347ab6b8f83556f5cbaf6385af54677ed4f80d51bf172b4de70afc9a8bac6911995e93bce7d4551be6ac3ec585dffc7d2abb9fb8b6f8e1de6cded815aea51c3e8d77648d72f924074fddaea0f63b3fc8f6b7351a1d728d1eb904671aaea241775dffabcbc6963292caff2aaebcfab8bd2b92856a8579cb2013faf7b21cdb26b17d2ace9dab6707c65c47110c79be310c7546ea99f8563d92df5dbe8475f20696ed898c6389bae5b7da6833dec2c1ddc385f9b6bde58f087fa257192d52dafce65dd526b0dc066cad8da5fac7334fd665ee18e25ba5c175fb5c162ed4ada9a87ecfad65e9cb5b6719df781214b08148d44a31e1737de72145a6b472d1c0f9f16e32d5dc29cb3cbcb9317f14594f23921c288305a2b4c0233c28c5a052c2a184923e908242bade2564004a9442a1d91c4112a6e0542944c25d39323d2235e4734b1c75b8220089a628e08e26c4b17a150282433b3e2aa98a9315323c4c5f961f13d19e54edd1abfc623e94132451e5b5a5a5a9e2309ca2e475e5e5e5e38b9e2481006060686248123914824126cb4886032996c94d0ca76f4c50d1c3770b4c050cec58db7ac51a3460d1c25cae52bca53791aa3a549c9e32ded0c4c0049208104124c38617602584209259470428e9d59ce01da904503001a0018d13242e775c44ac50140070074ac9088c1855674d4e8a8c9447618353b6a766cad73efe0b1838711b38d07495ec1e6d1834768019b468f4ce4dc3d50e8d143b79010a249196fa943870e1d28a08064c519d9b163c78e145238e20917ead8233ea46c52a92e059d189961a3828d0d1324d296282adca8a0020806b8b3e0909c482c2131b9f171e303b4fc569a9dac82f1090b56480491c13de163051f3e8e907513647284944ce45d785660618515a6e826c8040917b43429f9042c802d581658087374a5a93446f46cbd32618116fd3eb8f3c47352c302252ce8e9f7c152905d99eca0dd042b931d571f5b007df8f0e1a38516442b2e802cb0c0020b2eb8f0d2831fa00b2eb8d0b9807f58ce31d9f96acd015437621dff2753836d6e51a2c040f1bae945e5cdc945c5369f8b32d92dcaf6b349d9a85c54b8cd36a0ed8ae5ec05b71c6a2db05d3bb7711d9b09c1ce7f35a9dd6a79c0b629cef819d29ce6ba2fd49f0eb5263f11d02db9f07bf8f0b3e33aae130169fd91a64b3745b22d3a874dc153ee84db71711bc943e2309ef1b70ffdfbe6632dc7cd663587bd3e218115ddd42a1bf8bfdf9762635fec494cab72943fdbdc5c03c8a8254d30dc8e1fa8b573509ea53ba317b535a9a7fb59701b1869a5b99f6728d4d4d4b04ba5cf29d9d8581f950b0e89ab5c70ec0c9f424f8595558fe9958a218cd1cd1e5a5ddb92a44e6e79b7f47517bbe5ddb6b4d6cdb5a121d8fb6dcb6b7cf49b6f6fb90efa35d3f65088d7dee2f2239e43957551b8814b008c83697bedabb9012b008d347f606c81998e811eba047caab8bcf0e313f1daa5e4918fff69a088e757eec9230eda0c568633871e5a5d9b56db1a456cfb5bbab970706d28abded48baa176512c0f6f6b7b77f476ee4faa8b970ae77546ac04062dd85733dc32eca92162000fe06dcf27e0cb52fe096f72350fb036e793ffbe014e9c7bf3e2c22b05bde29426e43718a44ee40ee006465714a5fc39b48213fb88053224d7665714c5f7a1b4c5f22830421bd8934d9377dc5b1a154224d960412f325d2dbfce4967c4bb758c764e71cbb65f9dadf1365d62b945e974431d285f0a4abd02b15429835d9dbfd2d68bbc2f2f7b72cca7aa3f5bb89d1ef0646bfdb16fdfee7588ee5588e612dccb1360318933ab898b1bf5bb203d595e4a26c4c46886d7d6e595ecf92669d953536dffdf6da6fa94bcbd7d1579c12559c0a610d6fb8c33022b9bd90a4c9b590e61e919b34cb1069d3bdd0854ff7432efc5a53e16f2ead3169eece717b8fe37f6ad6b09014b0e91a69ca10be4e434b66401320481a69a491762dc7409ffc936d5880eeb5d7b84dd724feedf146e66093613ae0d73a1f496f397293257193254d3490def4368c5f2283947e7c131964891a4a3f7e10d30b45512e8874216403619c6cdb73acdfcf3152895d97f020d64d2862eb80b9108810d3977e8be19429c529d745659dabcdec9bb9c4f3995d2f53b6996796d4669945d250718498c8129939ce6e693dddb79f80293ab7ac56a57ba56235031dbd6a629b5bbac5a2cc7e58524ed94599f948bf7fcd8cce2ecacc3afda64e6e0ba5bfbf6d4f2ecacc017d9dae7c84955ba669d3bfa5f506074d524037a9371bb7ac6b7d8e6ca96db9003f2671d0a4f5b96579f996e49e2ed74b96dc5c1d1597b9f9ecdcf3ccb13e246eb2daeca2b4a04d8553a6bf317f7f63e194ccdfdf5ae6765ed56cfbd97cb6d83632429420bab9a5d675cbfb256e51235b3a858559987d7253e3c79e98ec5b9325f32c03ddd3fd4e8a9d5a275b6a6daa834604acdb27f18a33f28aa39fd836667d2e4a9c893725e5da1b2e2ab37c5d004e85be7ad17588db504fa40e085d9fa0e3b71b01b5dc5ab48085e3589173e00290f3b8e9fa6d0d3a7ebbb7ae913b2a8de66100edf78e03789d2847476186aefd57835336ea89fb8ad21ef8b5e4fec3361ad0b5b79aa633a9394fc7b3418e5be5fa53c2134065dc280290ec5a51a2b3c1e203fae9668d32e2afc15aaf4b80b810f27117b54395dbb59226c658d3fcdecb6560eb31d45e79b8617cf9bedd44f594edc673ae40bf6fb1a77dbd6fb75e35d6c86a2d15cc71f6375ef3be371bd83afead672da767d202358d8ec98a2fb6b7e67bc90022ef71bbecbd81b0f86a806c90458d0c32105698008def8a194cdfa0052ee0aaf46c5594a872a40a919d9a5b73354d2362960212663322b219102cd860116c90b1b3151bb2ed91816487bc2841b5474e4a38b2c71e127a369784f4626f489423386d58d95d1123cc28c110cc18028619ab2fcd5095c1eae6d758a1b1d63aeb10c69605e75c738831e619e79c73af34f51f63acb9d63ae39cb3f6b48a31deb88af9f6853999acb57eadb57e7defe69c71ced9d35f062bc638cc1b63196238e77c7366d196e334b63967fedddaba5962ceb0176320f8b47d70d62c3b04922faa6ae076d3f1cd71a4b953b15bf3de5bd35ce7755ee7edaffb78bdb16fb38fd8f637afa9dd420231f50be489cedec762b19045b3847268e32d92a1c66a2ae9b403c88bf6a8aca981a51b07c237105ca36b724d0c088ee9588e8d760b9018109fd81685584270b30001427ac1973f8c3d8c336751e036db358db1b556878a640e77361cc6e40e95a12217639c3f5bfbb5bec63b672bc6a1158bb3d66ed6da7671e526ee3aa7f59c73266bbd25e9edef9a64c71773f7de7befd5bd7253d4eb1686d62ea8652d739b2e63dbcf1ab7e92272d69a97b522b496b5c89ba68bc0d66a59cbfab3e67d596b1faf3a74fc03b50f6bd5745982e1cd3be4cedac756a4e4ab36f2bd60c538ebcf56185ec8d8f63347e69cb5e67595ab957b14724a2eb81b1bd76996d4e376009bc7ed7df9c33638057e858d75dfb06175dcaf0ff25d4fdc7fdc76fc03c330e436b226c72d51b827ebe35475dc5fa15f1b650986579f4415e8f82d4b08de5d857d7bc97d4b5b03de1af0541cfcb53eee8cecc7fdfe931a569811dcde79731875000a6410c5084d4c910204b6020839e0c230b2afcc0523319ef0c6607d778c2fa684ee942d42970a92d1754d91f596cf17e5c3a2300589d31864a0b6181c514d31060af21562505103935d01039609f6ae7b4e0c223218caebb9667bee0861245153e318421022c3d1341780c0458ebe524493d6aa048417be16ed3db4d8904ab696b33b676e5b20b862430cf12caa945365f4fca4137cf881165dd37e0c73b4126cc1c1ecf801123dbf18e6e4115015144cf0420a0d525d7b97ae69bfc7c72578a233656ba9373a8c9e3fe7173df1810b54e8da6f12a87208a8e7673961480fb498e9da87f70a6bc806f6a0899ef37fdc106264efc64acfdf5d9635011132c09aa6695ae5c21c1d0383a7e7a06d72168c1f765942200a104ca9228c1394e089264388f0b8cd81bb2c73dc54c6b1f5d571c08dd5a660480a3488c5931f247d5f2b458a6c95db1cb8475f403142a9b9352e3cb80284c88a550b0884d8ad91088408a53051111d96263f1b092bac4216828110208b050a203e2a5ce114423c1bfc80e9105d15b04f0743382b625e0f866c69abf3a2ca08b493f3228d95a622dd80d0c955a834228298c106e81111ccd0049644103350215bf2c50bfa36433a1bcb70d1bd2e2183654265ae9a5bc3654d2ba1063bd4eb122c761065937a5d8285141c6061042b022280e0aa132651b4ac93629ce0f78da9542a132c89ade0074d0764599dbc7cba75f512b0d861af4b6248e09062e75e97c45e80a38a980c6650943a5bf7ba24b684049e8d7b5d12ab828c153ed54e836e961d3b914509965089c1b68594ed52657b245075d3b6baeff47b9507547a4baf4b7800a57f16dc2c096a6a2cbbae49a2eb32a190a824acf746412d15cd000000000316000020100a87c462d18094a5792cfc14000e729252664e9c4ac45914e428084286186208310818428021a0104d6d0302f3162b8b7c929f430ebd754321d3001880b1fff48d957054b9f3d4ce93d58c1fc783852be50f64a24625428cc6be60e1150ba49931d134404530f4f73b02a06944250386536567e332607d2724233b94b1372182c9eb870f3175e0f05f853687525a2d72c885c540fc4c75fdf3c18e44e87d5ee607850f3420bb0feb58918facdd9f75689c808f771d0b71b5600dea6e6398bf159b1a3a20e3686fc7370ebf8ee1108e8c16be8e66967071a0bacaefa6da037ed61a9f0a303f19f774345b7e6fd286b9fec25c08268bff24557d619a0c45552628eb8217b6a925a1a3539996ca758cdd21529d7ef27c6ccbae9365857c4f32d7e57501a7f02e1e400a2292b687debc8916e25f9921a788bbef9e2d10c3057d1fe81122f54d5309f9a61fc5accd1d4889d6e52f92f8b69022fc3a5574316df329869b3031c926ef182a934a7d5c982e29319819d926e02f06bb7c742691408bea3d42a4a283bda3a3baea2952bcf0e1db9e0139de89405bb74298f3cb4279aa2a6e14c74406f97c04e70e527544466d307e3981955eba52b64b76c1075a67150fe63e3292668e03e696caec4f6013bbdb183bac470c2ca57386c43bc6d45942b225c00a5dfa746364e1033611bf55c40c567a9db05c213824a113784f2d970f4f341f86944d317d21044fc2a20642114cbede5a21617c0a5a6aa67d7a8cfc3c8f5c2d758758b98d01d9fc75db5bfa19c955d5d0fa2ae03d62851980c57a5341a7dfa0d0702a8bd8e187a23fd895caef6814b98eaa09396eb53ea7013a2e37a73fd9bb17b65e55be1cbe16d2ac25b00864b244cc5837da426cfa24fe68070a43d46d4cf72c787ccd8011b36e070723fbe21845c1016279214678bbd44ca074cb6d08f967c27a767c03b85a7258933dac09bc7d40254298392e38f75faa06a63490961f883e53d81b49c7a920ce4f8609e90ae8b46cc4dc58d4caf3196845ea51ca94b7aa3fee893029d0fbf46258b0f79c49f2d75e6a4d8dcb2fc421a145583c8e6e7511a38ab803365852de1accbce3972bcfcde74b45f89a4144b51a879e9eafecf28de3258f307f6f7a4911bee3c1432d458d3f585c4bfbbf32fb201ff61131afaafa9fc35721b396d040dad14b229ef940c4d74783455e850802896856d27c01484be2d79060ccbe1edb37a1850d445bdf0b3555bfeb19601a4d5564f315a0bbc9f1b4a8438900a21af2b8c55206205d73ef8c06d46b20c46b1f71416eee7d97c3bbc677bbda097c17a53222193e76989cc84104d864f86ea5620980fdf25a99b34032b68df5547103b4d7834cfcec4163fc8652a481deeedc5870236381d666f6c31795db6442f847dd832ea6a19600ec9d8c68f4bf018085598a7d27459e3ed81c595a8df9c18ed373813da240f7baef494b2a5f505b9909584070271b3677ccc2e6a467cfd09b9a6757b051fb458949a97c7312279bee103fdaae7f8a2c51bda50f1379a65a505bc17ae13930fe76512552ae582974a98aa84e3ab3051d61b44929073ab3db98a4d88ddad9ae38d11b6ac8fd6cb550f1ef92037c12d5ebce3c58cf2f2061a114f75653ce0f9c7fd1e535df37938e4ccdf0583be7af64e4e92f420aaf08530408c56b0896aa2e22e3b20500d29d1548a833486a8af513d4d8ceb23eadca968b9fa171ef2f66b244bb37c9acace1bb14a1bfa25d9d558bbc160720a1a6fd24850dedaf1087160f6623bce40c979011fcbb184687d87d113b3efdfa6ca462f4c1a72ec5d2c548e843a7910f759f18e436ebcfb6bad32f232c38f55b2f7983b2459e55b9a63bbdc1d722a8a8a95cb69a20a60e4fba48c8897a1df9bde04b4047e92d64a1ff1e73314589dd980d1eb099411c9b6115dcdb4011398cea5db2e3b16ca184ef70d512106c26e96ee0a14fe48ba49f106ed0c3a1eb3faad43ad1c7e92eb6447f93bb2b06533e7172aeebe7a1cb174f4ce7f958a8c41e046eaf9e7410731d3b933a677f037b333bfa033d8911eec406585cfb61f5157554d808f24b6d82731eeddc773c6b31d085824f9d00c540264b8eac90529ae8ed69d1807a75c52c046046c7d1a0fe6413d3e8ffc504325f08503ac6976890ed82ccc1c15ed5612f9989f7c0dcd20791d96484e5834e563a69ca3e4265059759dc1fc45cd403cec619ce46c2592e969edd913213a081af48d885bcbb7edda98838390cee9d8b75c9ed098a809c132a3bf69c0fa33cc3fe79ecddbb8e9a319742606361e1044fd8a1438e85019bffb209a505f05fe34b3ca0b6a68694aa36493ecfd77a28f3ba872de10537880ec725b66413a11c9606cccb4da9ebe379171edf3346060d2a4d0163f15d1482b093cce90bab8429da3bec019454c834e5f74c3ae14570726a330a6d2074fca81e1ec1a1bb813e3c82ab4bc8dc515d2810d7732096718c8461a300ded65c3392f9d624c3a9c182dfc3ff88a4ce57094e90febb37c28d260083ee93321fd07f6d2bd0ca83252c2037da3b3d6ce90de654250cdb68a1605d1c7aa5559b25b9f91e13535fb3c1fabb07480d1b92b21dd53b6ce55b253b5014b9282775343e3e0431e0d0bceddd762c34d5950a968aa13779a328a77923b5020b08c9f764d4ef3eae0ec64581459f3486caf7db049512c1f5cb47238e7bf1819c2cbf43fcd9f5f4519700e66976099e31cd7bc778514252f21577458d8a116a0df834219ee35d77681280714c9f00cfffdc6d47602a75ade581aa7ac0567f06ecc6e759b8d187482780cb4736ffb522658caeb305acbdf26ea733150b2d185775226691c5881b96df29cdb36d20cf3904adf86206d9c6accac3203038508f5c4033f291eb86bdf36b65299f0d90095a65303788589aee6347a6bfdbee565f6d5a9f0d508c84d4e3c7fa99bf89e0ec97898178c96c5f5de2adc56745fd55efe36954a3d13a4b6a8292032abd4b49c96bb4fc586848132e46d9483799c9a7037f31ca6a9ac479b5a4f1058587df9b0abf79422972909a6613fe7201bb2c8b32f135cd5df00f34d8a065546b2e1d0995e75532d70bdeb3c7169b4bf1d1212cbccf87f70ee2e414cb58825b9f82bb81008b5e797cfec0bd0b00f02e5c4ee8f2f12528085966666aefaac1352b686b129f67897754c31506f9fa5042cf38ec854820d45fe11bc856e2301d4835ff425807a6eb86ce784eb14dfec44d7728171cb4e133312ab0dbe38dc99bcb59adaa02ddc5013773a8e023a8055167b9d61c6bc277d20efcc0b5a99b80c89089255e165ec1cd353a412890304017d9e62923579cfaebbe35d8db5280d596310e814b9c20b1172c0c7a4dc509517bd6b71c9df96bb8525e704ee2e281d100de1a2ab13d44efbdf39a3712b1b4176db45c726296bdc970a5f3bcabeb33c89fca313723ee07a4ee793cb4e779268eb3ed3448e4b205050f04ad6abe91da5d513e04427f81b4dc201e7a15caaaa12c7367377217ff81a9f72335227d403dad779f8989907059de40e5bae8e62582088b151a65d3a9d8e8c952fe31c097265b716161bb11f23937d18326d0702a0457e3e8bfb293c50dd54d1d1d8908f7df53b21ba490b3cda771554066218339436f30d8c6c2e78e03b86e4e776289be4d7c7f6deaf31752728c8ff0fd4956631871a828200c00eea634579d9d639ea3736448541ff4d5bd012a3c8db61cf351ef72342c7d7891e456c3b5f7dd8679fcbd9d493687a51761dbca93f0290b7a5d399e1dfb4b07f2a0e3a0952ea6e3743df7594c976a3756b4c2b94f756c7d076e0ad864768de61f7faf957df47baf7bf15d29cb522fd50c9e1f4fa074352e30ab974e7887260e063ccf6f3f7a3dd3fa68fefc197804ff57243e4f097c6d4caa93670e1cc16f93c313f8bb2fba3562804eb9f6844defb23e36851f010e258743d12d43c52b93da4029c225fd71b3930eec278a9684cf92c822e49571c21f89f79c22ed94e0fddbf009a4cf707130dbd41f745c5930a650d4d30d9d675fd7bda6f67c2864012c61a44072dff9916237baed2cba71eee18d6ec4b8ddad35960619a0542b61907ba827e16a6135f88cde1a83a3d34adabedab376969129b3ab64d0ccc82d6eaa0a4dd783468905dd10e280461fd7dcce8ede0d98d8a1039391b8e8c9f63944d64c477290e38ba43e78aff27077e741cbe36a0a268d36a80641e39d233b168515f86934c80bb3d05d1601c8c5e1bd9df6c09c9e6cf3b18fd3234f09dd39ff5a9e44cf2a1caefd93f035c7d82f09292837121a251d0b86301f2dab3a3e3b2561f1294ec96021d70fa0b2e7e00c0c7b4a7f42fa9d5cd19a89bf3a7e4b2f1f02494ac1222f093ce4c711d9154fc214f3eab197844894fda436c7c6e2cecb73c28e16b965b991e71f41aadf2f79aeb088866dca74353e2a5337e5a38877351e370ca1ba9abd36403a6660bc350f6c9a953aaee1a8a3e10a123d2148e114e092e888dde9c3ceae6d0d2e20e13ecb93d8ad153d91e80fa9d59ee16203443ec12357c41892561c0cc0c3d99453d184108cb290c5636f6b27288aeecc99c4009347734b17b06d1d3bd000789ac74144a964bf3f6f48f4c29884b312508697d377c318fba55b14fa56ab3dd1b75f5868250f4f5b08ff53b1c4c0164cbc24756c08d1e1ac42875cfefe7bd7c33e90b639e30f03713934e93b712a547f409e54ac0d6bd3daccb4189c27906bc7cbdbf8eb4bb8e6695be74b19d5864911a3a68424e9acd88ed91f28c5c3e260a0c51e1ce3be19c7b5894562c50e7f120a1823a43b00f21cdacae93705782f043f818a4f8b6b7f43db9ed6c11f9afecb2568ce9f12d2c68f8ede1a624edc1740b0460f4d32fb8b031274f95824c8f5901c1cd5ccb26488f8d636e496fa9c4a3aa4449420dab4714bac02a76cbd057be2d17f16159cae7044b9d6999fcca8bfe56771c6de9fd9780667929603d2134bd0b77c02046072879380fb2160d579f26b58b1c73c81a18426604e7799af0a13cff0e0dc049c79b437072ef81d09411462b362cbbf29d55c9af18bf7a214b59adef21999073843cb41127f8ee347fa1b039c4c3acd69142d8d29a2822a679c47ebe94d9e2f5c4d0597a5805967ee18c0eb0128fd734b5bec7d31e55602331a1ddd810f163bfc73f44ece7873763e60bf1bc0babc505677dd2d42b0681a1d26d9501370026dc60a9c6f796ca69700d9f83971a761ba8abf05d4071c7215161c98305c6785971690e219e133bd47922c2304815b34b0a044a5e86471641dc926748a57cb11862281d52b8dfa9e9fc35023362420e3bd4cac88149edb2d590ec1a607b1cdbb3a78089e4346d730ec46dd0ebe34a9f73c8ec782167034cb9b65942d6bf142efe30bb2e1b265c8e61d3737832d4c6c202302190a934a0d49415928f2da924f43f179cc55a0d155f9b6d01125c77f3d76a6ad8ddb75edf085fb42fc44aa91d639c59ab92826191733c133107ea14c040e32c3c1d74dff277ac221c582da79b9422a37a3b7a5ef6b88dadcfe8a0e7aaaa3ed43808fabd61f94b1f823fb01e3174d42e4f523d172380e18381203e81c03043c8030a58d895e42a17573a032738e708c0fa688ff50d69b00778b5077e5a4e1a3fee37ee3d31b9b08b139c2356794dd7f8e1a9cc1a6154ca47402f63fd0005572f12a8baf05c1845ac7bcc7d8099a3b703775ed60c811148ebf5f008167f89fd3c8190ae5d9142fae29490eea64f102bda573ed0f883d7b665ce216cbe882e6cad95e13e35b3143bd6be71de426b4a1a231a3b06f34f05150e1cee5117e024d9efe41662666a142c05f6ff94967254ce300d1fe86aa6e2787e09b8dc5cb7c7d572d446c4c62dc47f2f2bbac8e334a706fcef4e335772dded8633dd07117eb5b2c4178065c67931c5d8a2dd6e7889c534e43e780001ee725f7818777ae4fcf15980a9b5f1be097b9552ddfa66f1877ffe0a657a53b4dc27ae685f6541f590395e351aa825a420868a5849ab72cccbac03e939fd0ca512fc0da477afe2e98c0460504b67c4688c384e0ea98012b27544899252268e5bb1cb4f7f29d6b89f52c251aec9ae49a77b617309ec77344f6f17a3bc2b972cfbac1b746f8eb30238e5a314a404b6af4d36d222a0a00d12df610185c2585ddba04ec2b938f8cf4c53ef2570fade955fb5a43fa571f1b2c830d36c355d9a88f9a3092199703531e9e86688ee626d0d9773f1b1ee718bcc9364762d3d0d50f010a72b4cf570a868176849fc29802afe7b78d24b0c7918449da26c4abb50b4d421670c21b4d59211de009dd4f65c039ba63c1c0692f880055f45caef065d478f69ca2cb5fbff70483da83beeab41b2b6abb913619209ebbe345dd063c5c59845ca1f611243524c7caf0506012e35b4a7534fd700d665d59c010af76da5ccfe48ac8287378ce1481e005982f7efb687c1512c54b2831ca60b549d15dc95894d32f5026bb573e0827a1f35fd0031de714e971d732008ac9eaecf87e60b9eda8faf692d444c7a8b517a59f9e598b054d9791f9302a5ccb5464867e801764ee4290494f8a5ca378a0104d9a3cc36d17dc134f6352b5fa27f3d2e6abe20169c50b62fdf39a6ab08e01cc74f381ae6c6c82690e08d11b8de4b84cb153b4f0c9ebfd4c893b8de3a03ce645ef71475f8cf44a9a9e8e42015075a1723d3737a3cf31fbc44314a262413cc25456a9644518042c9e33bb308a1ff4736a8a74dd589604e804769c05cbae7492a8c3254dfd809463234c14eed8e57c9f7ad33904ef355eb1a0698e54aedf80773d83b769f18a2e1dc00e3057c1e09b77c63eeff9835d4ee0501e18aeb3dad0e234f26bfb5c0dc852a0feabb60550d0cebf05e1f7fb37e1e2748a862beda878c338bd9793c499bc5165b401ed87efecea07fde92b5f9cbe57103c7d7fdd2f31d92835c59d831da5361b7989931d648e94fae6925fdf28b510037c3bbfa54e4a9d51231b72486da9fbd494478f2db593d0090ce5fc16bd58c43da332757c59a9d8f7832502e6faa1e6e7aa73134cdd25918b04e691097156d39fa07b867bfe54a7e62678724434c14b190874af22311cfe1aa240c222c64144f823ea3fe30bb2b387d517373a3cce07f8767dc2295389a2057f3f8f38f2ec4f84d07eec6ba5e95d3111be71507d43e0416b1291a85ac22871c409ba31ded998d2266744bd63465925f7fd54a41d000721fb5cccde16df68d64961ea044c3b148e45270d8cb1c16af191eeb64c42d98e748e9af6454ef8d8438c078b8b9d7c8c7e420b390161c0c4632d0a518333f888ef0475ab80921a400f1a46e553f9bdfa48244e9d3b337fee7224331463bbed31a801e2c27c10b06aaceba5e88bfbc6374c02287b600166768044c8cf08882cb8bc8d6645e851bedc4e3a38f54132f7a12ee6bea2e229219146e14b3c18ff2b3cfa6fbabcb6bcb8ec03449674a442b59830e8dd70a1e589d309ee88109838bd05f4a0795d3d23c57c33fb7c577ae841aea7112b18b53144d83076861351351f9ab7919a33275cf0380859e4a9db61a09ddc1645cf823dcc3cc3de4b5e7bf468b0e0a9d0ed4ddc850afb578ff2efa8bb1aefb01412fad0362465fa6625358ca66494c34894791f17f777c4ff0b25b295adb68239bf09063294b15771d8fc7f6dd201b8d15f013ba702df4b31a92b6edd452e4eb81a682f8aa5aef2d65d70e3e4ab81f7424ceaca5b77819b13ae05decb6229a9bc7517b839f95ae0bd2496ba8a5b76a19b53ae06522fc4a4acb8255d70e7b4ab40f642540a2a536b9d20b1271e4a92724fc95cf555893cf7509987bc96088d7bb19dc8e7aaf49ff079bc607bb86aca3bba2587f9b442af78f5c56e22f5f14f8ef2a2481e16ca100d4e21fa069c6383b5b46eae39e2958faada702ceaab53c011a56fb243e774dcbcb6cc19902aac7a9ebe873d4a30086bc1182b9944144d116a9afdfaa48059a1315ba93dd31f63b2af11ea9f951330bf9996f39414296e4b2f462e4aa90dfb86d3e87f9074654e1175e7dcd7e1b6017d94b87984b536d8cf1d538fc7d1bb07eadd91c03ab8d8784a72427edfd74a228d24ed9c628d715618d216886c02b4aa1d14d145d1fa391243f25f3b328371deba29e1392be4b4722a89a024c95a155472c30a21f6d500cf2d9261a9239e874a38bee2e0f15ec436f7e67e7cedcd434cb0232cd01e44000b813026fbd97a064f03a2ecfc8a11c87fc74a8496a809cbb39239bee1bc180a54f0db5dccb7f2e961086fe825ad738f58bfdfffff1d4f2966f1bbece56ff455b3c5e64f20c1c915bfb25646eecb5d75b90c77f12696aefdc96e0d699e0ced1ee000a5a99035e5805db2380cf52512e1926995d68e26c4a5739eb4211d4364ab07b20a4e1f372f6b0e5ef2ba8c83361d5b6cb7350ad84f72a32461c41107941f4d44af737cafbbb491a3161031f8277947d2677963ac9fd9ed784b1090f5061b23cd6c98dfef3ebd0b7f41c438b785b64468faabf82da0c97cb119384d164c11b9c7c7094d9c03d8752922e93464664beadea9be9a00490ec3ccfdc21ace419542e6418856dc4e4f1551ef3a705a3f65f7f385e0a7a24cf1ad2bb433a40c69940163a61866008f2dbd40552d867d73677b5dc4c75867eaf53828c827832b9ed0d15fc69f93e1efcfaebbc8893c3c683eee9f860e89c880578d8f7e3d9b77456f6d2659534372f49eb5ddbbb2ae02a59bd808a4a3c61140bda863ece10135c5e5cd8ca297b823ec61f2d3470fb6a4102dae3a90877fdcc6268308bc26460437532a7be27ddd494640a9f106cba55d5208216c2538f42c32f61b3de3dd62df828cd85480327c9c7dcb6273826f5e237da5e9c735e111ffcb3417588fecef37d135e4cadce4d88cce63f1ae0e12ba1d5ab8dd65278e7e562e5584bc06dc4d3d2681b4a1565e4e5e54ba98bfe08b4ab15bbbca8cb8554b414c76424e8ecfeb034bf6dcd7e2067ebfd99a0edb5a40eef0d80e19b06be4d84df450211c864a5f25dd61eafc17bb4d050d70aed52b5ea4709a1ae99a54dc801a2caed72068ec7679725a623c1c62c0adb17ac2fc83c89bf321c063d0b2aadafb510f67eb23d7a2dd72fb6d5e8ac897ed5c02c9024f40255195c75baae7668b8b48d714d286338fc5123e22bc5e6090a0fb8f4b180f2c5eec6f8d140c8bd986bbbb1c634a5b414e0816ad9bbcada58ab832fe1990303269cbfa46bb6d29d21898407b18ddfd181a28f4ffcfc00131c4f1f755eddd39dd8865028e7f42e8adbfbafabfbc41c78dfecf4cb7eb7ef74d9be0902130e4575f4951e211854f85bbaa79c897fc477e3349045cd63e9f0dc0bb8b20ca748bf419408e00ba1806cc17d765843008a3ab5db758c947891fdc2fb8ce273b33b32c9f2655299a01698f6140c847c0d48e2ca32aa90a1f56fbce17f4f57d9a5cef7bdc18ac8e322aff316b8757e3d1ba4e132b243f1f9a67140073a827f4cd2f19e46f4570e1d11958eb167f0b27653b90493b7b367867eac7ad803fa9b4d840f68cd6fada7d9d90476c144dc56c748d9db06ad3330963b940148a8bf4e9e1b92242c4ba1f8c9b34be1370b02659b8135ac7d77d613b6980743a3f9388ae17c16860841f81d36ade2049e2d7e71dcc59e05000bd6cf97ea64bb0b2484f1b390f8d034469468cbe60c72c6a65b3f3800887325c332bcbdda0d3be6217bafd10acff7716fab23a55ec4b3dbe7b412b5993fef77646da58de6d170dcabe7238d747e549f4e02b7da8a2c4b2483e67131363ec8d6abd2e1e010ac6122497daa2f19d1f5549378c93593fa6aaf1d8bb34b592126fc7c51d9b440b7075c4957fb17068a4c808f6368e6fbe454edeca95e80209131cd865108e007c0727110eec84d27c18177f6477592b39a8e1039884b77edbd865e8536316f4a0f11c5e09c477cdb692c100ee7c7e945ebf62b8fc834f77c6e4e91c87d9e9c084399fa1646430db0ca40b3a13a93a5168de5d62992dd0d324482dd74f26c72634a7cb626aa1fa6c723e741323c87608a69e0872d7273aa44bf262771d4362e8d3702ec784f8125853f1089db4076245e59bcf783200e861f872336ee3eef527bc10f340d208752851c3f1d37b99cf72e4433f2ceb7afecadd216b3a6e6611141542a41ceb7866c5420c2a331672857ccc900ac35fe1fa35acf83c1de711587f10edd2993bb7f92abffad189b2f35f1a7829c6ba67c6be586394f85f4bd4abf441e919be3619fabb4464162c4b4e3efda1d954d02b809b43fd51497de6509417403c0abde2d6af09a52a4a2f22bd2e723f4a25036dd0d08959e4ff4950394cc6d6211b8eb8f34be1a0197368d0ae0b039f0c7210d121790ce5ba52d3edb40820789f2c668c42618c929fd949aa803a1a0b3ad56f69368d032b51e282c3a2d9846c693e7f833740b3794c99708dd556592c690ee610ef1f372c70da813a4558d3fdf453e7f13aeb697fd5251e0a34d8b08818f36e0a33ae0708aa5838da3c23f58dfd206568b32216c69262834bd3511f06b1a1b95d103b5c3548fb315c113f53b413db840cae1acbdeda200112135b5b1ac9d9d6690a9e9a659eac510e446fdeda346ee51e709bc66dc82b801b236db66f6d78c166b05dd2158021efc37d1b1aacdc3134278a6e20822294acaecf7399d2503087478b766ba745395af3381dc521e507581cb9147f2df48c71718219cd3bc4057330454f5fc2472782e2b12228643e92d3271b8a0059306e3a35391fddbf4fec53eb277cabb501a85b7f82fcf23826a419f9c5121b3b3c17196d6a429c88f99c7f6de81834f32076b004da5e010b50f5e4823ca0aab18ec8d2c21d60f970635b2bcbf3d239356bef42485e7048442cd341e3215d4889784a6274ba02a945ec23844a31d26f383c0349f307269c321167aa2e300a4ded4415a0470aeca54337bfc88b1547012de9d9c4ca5c3a60d257bb8c7e31f967bc34f2008b6ef9c075cfb60a30ab422513c44a009e3e4495ea42bef88c032caea100c7b651e00374190ed50cd3025a50b1b9195b11c90d22e270b670b3d1d19bbd3aa384e6270b6b6b775e616d45170aeb16773461c5aa2f12562de428c2eaa66c06d53c9e29f5608d45531dac6fce801aac64f78b00c4e4005cd9268bb6faf0ae81d5b42072508bf34e65d09fc4bef74196f74504949698cb5ad9ab606d78e7d8b7c1643368725f6bfc23f6d7da4419929790fa3d3a807b1035f861aa6e9b8fbc020c15022b9ae92342e8bfc6ffefb107a1747ebf3ed3c4258555977b723a3f8b3e716f497b3228e1d2b6001898020f8072dd94f1c1b0b6bf6caeaafedcb48cfd4159b5b7c01743d39e4b145497bab3f83821ed9363cc13128c9b5376283118afa29314b8da95a98a8d4b5df53fc6afd76e24c61a33265e856f078a4997f7e468308d0242266c44d3582d0d2c403e007639cee44f4e6fb27377562fdab32c1639f60665fd5326ca4483ab10a70803e27037b06737c0415b872c8f69051226f79396b88d163fa537d72bf42e20378220c16443c9a5d979d31fd3bbd517061f8866d46d8f22be6ebf6d50a993e1de5628ad76de72c298a385b25b15460c58cf722775bd302fc0d7d91c80b07e0e15986e829f684a7dd335597efb03df68101b5b53d5c4035b7f29d0b21e7c36cf0c1bb34604d67b37f492fdaf0cbd2db614df9ea5f7eb8f93d66a99a992a9c67cb668744dc6f98552842fe08bb6857aa7bb711bc1013e88ff462d1064a0c87f7601ae5d0c0668606d0d3ee113f4be88adc273da7291f0b01f7829969d365efd3736e094a8d5229d5665af4c5f8b9a1f7357bd36fee0b78c0b52718b9d44346f8ffb2e205c06c035b60072966cdec75f43a86d2d2039fc79b7fa9298fa5ff78f739a2d6212154b4e00c2ed0e3c12bae7e10cad34d846553546ffe97110da47f59155f7371ef17b2f6ca0b789a352ed8ee30062bd775859bbd54cbdf9e5fdf49ce0fbc0233961b1eed79749a4e30fcec0c38b6dfec9e87a22c81a7751ecddeb3418ddb5f485e7cb122228390c8138e925ce84c694b57426d8619cc62964e221e56e9ce1f6e66db547b69ecc5efa5f75aa899bc51eb3edd81cc7c196d3c3992579427f1cd2b17746d6cd0c7f62ad0a64c5ab4f0c80b09a8cecef2fb7737c04539dcbd26c4db5423675728375e860cc97bfefe416320c73c4a99f4f84f21448b44441b35f0ed435726a1c325046b93daca7a53651c955e90093eb26f33023602252ad21c03e46cc8ca9016eba4687564480dacc4a9238876132d04c667e4ec594eb4740fbc8b99415f5578f1ad09ea5dddb6da928506da945912c3aca0c9fc738d4de779ebff281e37e99739cbedd40892d7b859c19d93cc212ea33071dd7f77d183fffe6ef579db70b43775a0b5dd8e0888c169c9e348299cf20a293c95f0ce54898ed846b6500e8043a50a090281577df9235961b4b166c68050a46ff6b61fccdac661661b32d752930b96150c9d306021acf7ca6d5f0732d3bbbf32778f4a9f920b2599c3c155058112a10d5a5e82fc0f67646ea217f59adbdff0363708ee6c1dc3cdeab4234eb8ba87356858745c3a5f89e0ab0fa9a6411680fd2b3d94c4d231c0cdc7b5bcb6928ca3aecff4c357a5536c3ea95b686888cd5b1a2315bbc745209d0017813e55fc552d214b184e29a26a921a50d1dc80d043d51023ba6a459df66feb30c37967d5fb8890c359860b067eeb1219b7c8e9ea19eadb5fb67e2e62856f7da397b15dd123b0526a4f2d5e8f44c064d60daf18b56ce344c2ca08b217760b189f0abac60823dc20fdc8181260cad70f64061633950384afaf0a529f655020f3a754734f9ac41afe463b5f808c0e9d07fd3db764e52a9dfb8771f85839b31d82c9fa616006096d9a0d522c00eef0b94ad7a04649021b9a48b08a8d2e4665cda798328d706211a1f314c86b779c8b801504cc6f72309b786f439a2ac46a140414975ba6914a96ac23ea446a97186f136e6159c04783acec7eac860077fb1b25b9e40e3be412f7747d5243b1656f5a2c3667803c5cf3681a6b690d400410a71866ab9e2a7d03ac2f820bc125e1e304e1d1aae31ff380887d0b1c954a21ad8296e96132f1a323106504d3d0614d38d05651363818a9b2c725c5f4e55e32f56f1c97997f1f9bd7058048c3a52afdd7d8ea1356cbbf9ba9bbaf575cf97da71f93d9f4d62740aff46c9b2d8456581ad724b2eb6171d480f3740dc8bbcecc34e25766a94e81c5e19f3e72f9a96b3b0cbe46b57f975794f615498de5d44df0a9186ac09a6d66b51c7bc4f884bc24024dcd5a63b5231a93038f2f8bc4ba67e5095345f177bf66bdd2350f095160f77fd474c7e3a1505662f1666702e7b12dd513ad4d78001cfc7a6e64c151b065dfd979318a3269ddff4c4cc7b5d625df18ed73b82e19da2ce5d456eec3fcd621577d7db49ad65ad9352bfaff9c08db988ac820abc2fe64367a9c2bd70693d4ed1401fbaa48c26619a1f9c3a8b28bd46302226bf8826692ee0a20c934d056c263df844de2e3755a63b7b95480540ea1dceae29c22833da33ee26b35deb04c99b60f0aec34d3611e5cae3dcd846686b0edf5d0cf3a1b1aae25e78f4a8258539600e11f1cda3ba31fa689b66811288eefedc7cf1e6f8e92da9b48b3e5f6ccbf0bc2c09d14d1e6a48a71e838716abed48b0e163cd7e66510233d69bec912a8d505fbd6d7908e13b1c14fa4d8ddcf047f994940cedca035a1e2495cf034d500f3a1926442bff9950962c8f38a3af161e2a61bbde21be2b91a1efee3724cc9b804f3901e47df7e8610daf1dcc10bc1b05fb880629e27adc8a3f9130f924fd5848d8240fb2d91f87fb6c266b6c3c84f96bf13f3c9f9de98d58f3db11e4c035d07140be925a47c9cce2524df9b783f4e0dbdc3bf740ac9ab8834ae79b330ebc3b4d53bc31f7b43014982c1dae45755aa5cff6ee38730de422e495998018ac1eb97fed7564c044050f3e379b1e7f5dd41840d2947f719ff921fbd28a3ca5cbbf80d12189fd3530ee6164acfebf717c15e40714252d9b2f039894e5259b09b6fdccc69cbbc82c9847fa15cb364776efd60aa1d0fd204e93d0af671d2d81c07c61c0354b5e25e98ebfc83a93229f7cec7caa426baa4064b59ef05f8061b4d6abf30e98f8d3db84878ab77d1b00cc39e8a0914d7768cb78e490fa7e0ceec1a1dd7889356de269fce4d62fc44fa7529915d323410c644b80784580e792091f2e6e69d0492223f819291ed805263b7e4b2900390a3c49a3081c8162f47b537e03728118e58b43d9168ab341440efafce688097e17249c8ca220f8ca9e05015489644404051a01a7aea924fe249dda73589f92ae114ca4407ae828b52d22806faf45f50fd27df26cbc1b019123c29f501c066426060949e455766e55fa062922f4eb59d9d26a736f9c43bebd45b1d84967ef51c6928e1422eac50b954a3aaa2d4839357343121a1fbec33318226412abd260eebdb707138af7a304bdccfd57ea497c1144cfd716dd791e6490f16af1ab4a321c5a90791da6c9ff06b40ba5373a21976ff4a4baf9ae7b2bad238a5c7e6f59682cc9465263efc22c3e40e5fe92b8b32a715a36445e90bc563a9e0742c504d7eb44a075e0f3c65449fc1ac4797c716e87ec09ad14db9c47400629b346e984c6684beb375418e84ebda2bf49b71001a570b4a027cef38230684f9450c6ce1f9158914bddcbf108cc1672c586c9402dae9d2bba3f9ac6ff8180f4f34baf0ed08f5849d57385104eed80cfeb0fd0716e360a4a41f84dd48d3b190c3410fa1619b94cd5f0d8c636d7f808f63340e68751837521b5a10f38aea8a8e6959ba8e016ca478987fde3b6663d71b6a6a6f4f3e9529c40c6691a97ac267466a946f60c3d798aa745dc4c5eaaed6743dce5e3f2dc274ebf46878f3dae433580cf03e07323acc8a8b182065835b2455523454c883013925c208290903f0d2b7ced02462c72bb4d508cfdfca3ce10c3438e8ec6831df7d74f7d109baa99375e7807f218c9862bd95470f1eeda08c569322fce6b80c63eda083902684ad180bb9276d8dd0a10f1e8a0245472c02879f6501eb05b231ac62dffbba3047e1e48da68254d809095f02db516a1e8033b74faec7dc025d643c8a1d701d1df652bd46f25d4de3327ff1608e62b269916029ab748f4252be3c401b182d2182e10dd084de377dc4afa5b8b75bbcbbeca07da4974c862ef47f90aee67d1ab28b8564446ba220d7bd983fdb61d539ae5ff5c8800e8bf1eaf214891f35d9293e37fdcdfd1594ef50db895892eb69d95ff5e6f6726b2ffaccbdeb5610b2b2294d903dd06041838d8ddbfed2b5bdc99a9cb036de6e73b8cac76985a8f9ba7b01f7fc0d00b07d7fdaf2f124313203b47cc0be92618ae6e58f7a1e2e5b1a2f44860931d9db395f53d5ac680df69aa567f91ffd191916d968ce4732aacd6dadf2796f75e277be2c160f5673bcb791c20fd7fb40f5129b7ac449bb3268a1f73073447ff8de10a73f36786a1061184e925b5281b340e57e03e6853ef0f339e21e3c42d4c7353b598a24696fad24d8eaf6772757065e4844fbfb057b9be644aaf297f163fe7fe1e7ef253c3893e2c9e0ee4c5cdf90de60ae7bd43c55593bed3de67039dfabb973c86325fbf85190bb142815eebbfde5d2b90db2d254d3af6b7fb5c64f75894c2c2b14473a7bb69ef0fde87615db6f8fe221da6f24141342b9a8a0cf7f305c8bd8aefcb00c7a6d03687431b29ac1ec10a66d2eee5b9cc4cdd9136648739b48f2bca884d3ef7c0c6dc12df566b8e4500b16c83f15e52279bdcd1ad947445c28b27615fb3f7a174233fa81213f8f94be9f045e82a93b4b4d4079e9a74457db0b7c9a64fbd7be69219bd2d838c3af698c698e31f485e90c2c766fbdaef6627bf35a1c9871b19f8dea5f5dc5fb2b13f005ff4b97fc02f66a090db1e83fb3707eb17fabd9f2b024c0076a83787c851b48bc77685b8d7efbddec6c2cf28c2e0bd153678cf1fd71c8b0f97b0d421891252beb24942155b7737e5404cd9141861991c3b69bf901778c82743806a528092317568e502bf5ea45dbfe3f40c73da3753bccbecf7da4a75645a200733adb0b19624b5acb387dced7e34d1257a36661619c3ace61c74267dfc489f0eaf5958eb4720b4c4ffcd01b92668c9dbf8592bb6e26b85c30759a2053bd4f5285ca7128cbbafa78ea0aa6452ed03da74c95313e3fb1aa0f1929870f53ee99a4621dea8d6b47e2091f7814a9eddc01676fc4e018fca0ba3f5ff1a3ce540a8ab160fa009f390a6566cb3011afafa16dff0288cf128dfc45055fc90ce0d884d76ad430698eb904467d9709cb86c3f2c539776056c49776cf77a564e87b8cf6c2d9e6ae06e46f20ffa84a403eaef5f988b26b8f3513c9b25f0485bafe1bd563c5176616746463edad0f0b789016e695c7feecb19dff338901e5ebdaadf72e05522711d931a865ffa9c38c2b119c59513de7e14386b30288b84aad3e34f8f5728d07111249027e6a0ccd426ac2905398dd1fb458857b3675ff3dd75510c04bf81c312a1075bc6e5ad03b1c901ccb9b1de0c53de273cd09b8718abc8d77192f0bf262648aa0f1295624ef8bcbc291f1d205747c6095546d687f1ac322e7edd39a7f942ad54c320db01aec733fe8d9ffc989d7a208d904584bbff49c3908a3697809f7c5bef07ef136f2f9202b04e2c5f9f1d80aae5eff163d0e30a9213de370ee30bedd0525f4f391ab5d126c258f43c1d4a65acdc22e02909c9710796bd394d2da1f6006ea82fc812724417533e77915dbbaf0fcd8675920896955f7bca99143dc4acbc5bfa98ab218b49f8df0a9902cf1221032e516173853114ccefb1083c767cc73b0419e0e11e331d4d65a5c66e589740b1152e0b51b10a17539e4e01dae0ffec5235e6a16ab46e40d288e21f09457740e02a4b21002a86a002988b6ee65e7ff190dc0049206d7fe854a132cce268ff7e6476f6d7539e030a1f249bd98096a20ea3b7e887562d68b04e9ccbf093609f424478aa752c23fb702a6c3af7c3f6056892176d0d544d1d91ffe148ec187b174c985c02ec0f7d082ced52655a0db010282bf375e3451c4696d14f92201c8ced6b53980d1e316c99f9890147adf06c388160338badd6e501df8aa36e35aba67c44cb3488b4d24872199d36091e3b3932cca1762847b1d40d15089de3cb8a9c009fa22dc53f0f02069fc7e80d881aacc39af07f81e5f8bafa078616f891decd76f6e321acba7fd7e487411553826f78287636f61327d630b42826b3bea40e647443f46185d595cd369c42d6b1d58636a99d9108c422a0207b266fcccd5a6b17e94d1580afc4d152d137ed5ba885d2e2793e990c31a48e56fa2a3867dcb143f1992bd69b85737e998506a03ef3dfdd5a5676239356e9a4dfb886a63484db25f76c8012d145e9c4abf76f71a94de046b8ba8cb743e7e517afa39d3640b60d1cdd3aa4823f3d737bf8f0c148282526a899be3868e7c83e9dc190fc8e49c3f1a536a27777d379af24fa40abb016d951885ac739427f19ccf0cb2478b5b85ba1554696b62557ee02ffaaca27d4ebe43f43e1dff004b76b9ccf29b7e51d25e53883ba62ea48b6fac2696ad89b05b1c3ebacfd771bbd20bc77913598b97233f9376d6da1671894a8abed66b404bde55af0f3fdc48dde2a1c36abcb3c956f1ede217082f52b1b5374e69095d177af4896bc249fe3659a1b1246854a8fe50cdf6de4d7137812f0703ab178e6dbabb53dd90b9727cffbc2971c12991952f23c264f95699bef897c14c103baf3e6ff450d0299bc968affa25025cbf117df7194acb99704263d65a3ee2ee76087a225a6062b50f4312a0ba201b8a3158957a3d3800d36747d15d56331c41a19e241f1a83f789ae7142c6fdbf5e3e78c843f39daaefc8f910ae4ba30fae43ef4d53715b8273e5a5ffbf64aa16f4705b23028021540a8e901a18eb0a9e0c925e9fc26d53bb73ea87df1d8a1d56d57da4ae399332f8c577bd47829a8a17dbbc7bec226fd4cc0365d1c2e5f928ef22f253c744b07fdac53a12a189bf453db5aa9f0eef588d0753fa428546d06e896d400902a282cf73debf9109db6b56aa6b5ec6ff44c163df7bb6af7b7d8ac1a921d77550b6f1e2a1fbc67acec1f01ab2c474fbbff9cc3b5bd9d9e4b03867d305a62ee70ff4b97b4ac10e3f1def23e1968a9f23e82f5643687d9e47014a1891d2495c217c0f583e4c04df1577152f0c89d0a411bcec20e017e27d84c6c3b2d36fb603d476699dca977d97ea83abf11faec59727b11d9b14b1618b70e8d18f302cec101e459bd8256d40c5025cc3052b8724aea1c45c2563fb82614869283b83cfb8797ab53823cc2a292af60536e9a10498b094701f1adc860c3ec054174b69a32dfd26a40977a04ce3ce7251aa41d55389706aaa4527ff41bd4f7f0ce02a8c45d180ce017a93da56a01f1b20995bcd4ca7d5779a08c9d3df610b271fa54e84da4e8e8d7f41dd8a61b939ea15f879bdebf6d392420ad07ad2eb4273947986a732c50eba95a7723e66e0863b07e4baaab18275123fa97a20f8094e9ea70d58fff5b336ae7c0982843c7479d3e828f1a40e8d9d55032f606da9a41e58c4488cb023a173aa73b401f024e26843d35f0e8e7c483b461e7b127528a0bff16e911c5408922243adaa63a23ef01d06387a921147949572c6578da183ffd10528a5f9f97b58c6debfd0cf4b257bd1575c444ee270e6f9c10138f31beebf48f8a226cad032d6fc66425671e6e24b0acc459cd5d8c25479c9e7fcf77cc57614d65f2f3b913b614a31c381aa3aeb5970054496ada118831dd055485bb2ba6122068761f7fc53aa257be5b63949e246a2fb5a8651b35f7ecc1ce7edf7edee18b9b72c2b6ea272c219b8ab2279a3d9e18d2836b633fe400793923e172bc5a241a4051e9e794a1145181e6a7fab7cd8890ac4b0938642ec8c0c1e9131540d25105ae417d322eb1ac0234258e4eaac4fbc6dda2b09981fd231bd08494cf7313befaaf53cdf8f56e21692bf81951238643937a5d3c07ab0d257bb845e383fb1517e8b114a16ec1c6925a908de6f9c859a9d29e6b729686dad48d64bd0d40173a30fe00581471843c5b80b57400f7b1e94baaf3a990c1794d25596a11a10cf7bf536f511f6f1c5e08ce2b043dfe7cfe8023eb06b8d8e1222e9fa566342660167bf9f0cdec23ec93b239a1c05c64acb1f6709fc8c88461e74d0175663c905e59ca5c8084b886e3c3f2f0750780feb0ddac927999bf210bab6e0c71fcfc6a1549ce6285caf01ed52fedcb60c31a87892441db461d15769e6f9869a9fd2024d527459924340f75868c2d9a2931250bc50c7823d17e4f98d550548dc8558d0146f0e63458c5bab55ca6a01b1926fd440d39feecff397678cafcccab39f0ebd305de8d958f1fb07dd3b42a8b1f7ebbe1c92df33fc3521651b82f18f290b72b289301487f900d4a4804ca112864a446c24108d9812b790caaeeab0d18e6e4b4ff11290939901ca870a5e04f5ffaac71207a9bf43436e8ac31e34dc8d3eccf228ddeed71fe6db23520911db840c7ee9a61720bd83fe1b00f7ff47b04a9599f6b61814518bcc2bf65f8f706e3e0ecb74901da5842176ebe328f37a5b7561a627fdd021314a4c724b61f1603e678f4fc66d32db0b13454438dc9aefb0a67477bed694f8453f9d97ead601b023034203bd418fe13ed2249ebcd9e3340d5d71841614bd6c483f755f510d503a659c5846e6891ef9cc28b89469c1e6b81720f245a1872601b7585e6e6db1ee3176f2ab7a97da531f0625bc52df852b5272acb0f27f155ab5f22794ad6edabfab316864ee534373ea78acb567559864df6df6bc224e42d0381eec81feca477853b0faf82ae4f33ad04d82b2600fd0a5d1fb0178ef5b883481b6e03143c36d07bf4f99f0e9f4db80139c8a231b04284d199beb95ca78f5fa6241d56a0f5135997e1c2366871ae31be6590b88132c99eb4703b6b0a2c9f5a2f5b4ca5aeb32a208d50b1155b3e95d7026c160647360806ee231db2faf0f0f691864dffa4ab01f827f6e594583912b3dcef586d1f6ac75788b3548302988a88ebaa24a1bfed8e77edb5c20825ba76bb160c9edcdc3f77cf6be08fbead3e5aebc01c7a9bbf509975905b6b4858144d91d3bb9c867482785d985cd5f8492e0dabb8b03f00f6cdcee666ace3eb629c44090f90a9ab7787291ab8c321f82251268ff8ec43794299028d3f52f5f2c9b02145505cf61a7a3911c99109d0509131b52d9c0100ae56e6412ed0abf25f6337f32e7d43312f3283756ef5cb0af681a9016d9a06eb04fb106e19ff06ae0d1310d14cbd60353dd09b1c12eb082c3e7f814655952a00a3ee1e2aa56b20fddad7d8e8034c2bb3f0ab0d29761c39ac975ebf1fafab1e4debc242eb0fae2691076c821531ecb747b806c3e987250b242c40497f5dc530bbd59cbf98cdae187bc49f7a8da5b5366a052b5279a7bd8a604b43059cf0fe4638f6d6daf5ff2371eef07e6d66b62e65c51dbc712607af1a1bf9d2232991768c7f658cf9efe33a7d1774970f527dcc3f05e5c0d2585911c6ce2dd1c72519e4e0023fcc09e999a9f22765c91e174d3169a3ee543e4c543d493f38c3bb3414bd9017b2b892edce7def2744bce1c592fbef5c2a56ee9ab63e888a54b6f03fee5389b6cd614d338ad53f7bf3474fb78772d9f44ed3e3ce1d424f567898324f56f804c39992a57fe1f05ddabe508a404cb6f23a44f78640c9f56965d23aace4abc9b9d322cbbb9af54a203081c72e16074913bfe8e28a74dd621ad65ab821003991e17a2970a727ca04410d20d163b0d3ba1c037fff5d8a181c10e92d706574302446fa5e67ea1d9a73f9229f94c03d6dceb9edba16a8ac3fd7f50ad310468305eec9d55c5111bd5b7996abb70105cc18fab16b3878d8535c17faf549f102ac74412b4c8e66ea7aa5f3ad32d071b15450f8c2a5810c8b8b7228474512c682ced98673340215a66735b08aebba31784a3ddfaaa5d7bc8879bc6a84fa42b88b3b099787e00f4081de2b919a072a8797e7ad9cfe0f83c7c035057337d4641f20f74c65e7acdeee24f125235c85922291cf022a304acd0b6258b2eb71858c39cece25434c9e2399fe397d00d048947700260f28c585385c9b3fea1843efb4bba615e3e04ec2767c98aeee118bab78f5baed0e45ae25d5fdbdc3e5441f5040311f4c0a2e11fafeeeff92aae9d794f06b0a4c5c30e67be94af788f73d764fee05f77ba6ba34c2fe7b8614a18d83eb1c30c9dfa4f36ed71388610c9492ec580094925cedc1c8a6d32f7124a907e72705c4b654ddc9c7cd97518cc198ed2d5ec3160d5cf71df6cf63a11f3be6c7edf366a0c91241e93c0a9fc8ba50eb1cbc428f0524d9065d6b1e11675301fe9322a57ac70bee16d3eeab693e9bae99d214fe45a7460f6b3edc983cd5dd001b280d239ee59532f2e3899effe4c4189e558ad6c8c43ccae728a1df6e982a35017b6a9f0bd10f5402607065620d474ea1c141bf8837162b39c04bd715cba1392ac4b7fc63194c292db52e86caae2c538daceb2c420607a47479594b01ee1f8f85dda90f30e1c12b6a1bb52462e9aef4e803957de6465f75dbeb17c4258df55e1ebd21fed71c5932cdf0a0ebe3e00dd67909445b8a75273f9d2d61c4229644cbc4167addcdf850119c1abb5afc31a19d980a0f7b933b1d4ab0b99275d8a9498230f45c84cb62d7abb07a5e06b1a178cf2e0dff63fc94e322276023e5852a481e1932e36fa28a85dcf2469f2247869814d3fd7c440a4cdfc1dc57780ed33423cb2c927514f91623b81ef41cbc0737b2af1412f2a94d39d1d80b67fd64ee1725d8508e9cc42c9d9d8a69a1903e83cef6cbe8909343a34689d59270bb2e1c3c049321866adbdb8569d5fb9379d740c2db447744f5564689de7213e6602166ac9843ec386517814b5790a62321503988212a1e1772e6fe7c27bee355fe9eb710a77805913ec1a779852b37e8e50bc6b3e1136d47e43166ca890375a344278520ee0ceefccb40adcc8cc106a954446f21b50127eb0f26aecea5b323086d9f19ea91883bd448afeb0cf5aee21a544af4e077cd901e49dc476adb08fbac106bdcb5467982b3d68507d02e6ffc262965fc82eab9f91fe7428ea47de149209ce4c4b3096f4f1619016d0d0066415eba2566b61066b886bdbbfa34584e6ae4bac0707a0034ea1750e21f415cdca25cd2cdb818f4a2eba52485df6a190b8bd538a3a25c06ccb273061b6dbfa1d90cfe5506c517dcf543831026ea1aec53d42a6fefc7b59d188aa040e12900f957fca6257a4978c17ce05831eb3ce370cbc4007300e9df8b4407c43613dbb6318b1fdd808ff190a79f0507a5147198e69a77505b0095b71d8818615a576c9b462de635190006d28091d4aa43acce65fd911978777d3fc4df4f0a2c66220f518c40f213e998600398989b7d73bbc5487c61311a013fc041797d2a12b36816fb0295cc24dc509faa28b46d9694e7d63d8620420d9b1f79862f25804395d7ea4be1f730a5e2d2bd6cd9bc7ca063a8c41dc496e7550d932f661f685fc573af2cd318f3d368c4be442a59d12f4d19ea152bceb3331c5cc53361cd47e3e21185d8c8cdf163bc63891cfb230322a31eeb3b7e0a04835b30d60b3f9b1b431a649e654a49a0562b13348b3fab6a87c9a51fdfa0d590e6da4ca10d019621d7ae1c6267d971c1080473c48a0e8429d903708d4a9daf3efa2361d8b2d5a8754bb3c32eb3888e8a696144cd0564c9f602ee362eb95ee7f36e33ed771cd5d2b44b6023db5ec622b0acccc92368750b98cb6658b5e0e81cd1b71119060b7a96bb752c2fd3375024b00813f958e192aeeab103ca80d858139a83fd3d96c9b832e0c1b216ad2cdc4afdd84e305cbec1d35b090ef6d2fc7f399417279c37ee3808a8bc914c130c3d493e665db029524683bcb863206af03230d32abc87d15349b15d6aa49a3ae9bb5dbc8d727d66dbca8deb1081a1da17c2a98a60aef6c21406dbe96671b30becbe8a4cde3ef8283308efab8201d040b80ff5c8f86f7f0763cf8310c5a1f903bcd67b56db741d11419b75040bb5a1c8c01981115efdc2c8c827232812d3c54d84c2772d7efbe1308236273f792387c1d71ea96e225fb19e3a2c02331cabc40c41c456c193deead1d8683aa3c4a1a052809fdb5c69101630283e1c25eb6f5271a7f4674723dda37c59db6c28144f464e113279ac04eb87c800728f6325109916158b26d36fe91c2b6acee6e3c53b96aa0f5b7c533bce388f97de87006bd88e95d07cac763448025b13160b32d08e8525f67407847d807fc6782a0ae78dbeb0c4a7f10043358220f81e0a40f4e6cf9f0f580c804ab24ac19d82516cf4c609df5ce27b1c17ea5e177e942d4d1cc17f387a1805d17e8ea5b537e87ca3ba0a1c98322cbfe09cfee84dd19edaf352df8d9749de62788c70717a18763b26a3e717d33b883a93c07f1ebb1ddb25c7f7e46fc98a1d3887dd2e84041631e9e629263453fda1c943ff4830ba7386b0fdccf6b4ecc340e9923971276722c895940800495950ecf46a674e38549f7c59a53cdfa39a26439b4b2c4df445ba15f08bc11e1effac8748968d06b0600aafc28886d2f4d4c69b9ac9adc44c7d976aaa34d9ff0f8ea5bbd6ac14ed1013480fcb3fed267fc97a97a2abe6f8a449c33b2ce9396127177ce2ad49dbe91cc5dc535bb2c253a699b29621eb0d9d468be068b04c77da12db646678cb245f8062f401896d6a54ced837b6c0bfab529e062129897be9a96a0b39f14a58c8e6490bce2805e1975672b1ceb7100a35bb1172b2ecdadd25d02f164f7268fd937078e0ef1580809c4a60156deeda50a15d612f06620c49b02dbf7f10723205e88f5bc675c097846725730176ea36808daa034f9c86ecd029d1ba01380c1e34cb04be4d65f88566ab286a0189f7b4d0892380cdc10f84384eb55371e844129b87ff3262440f928ef261a6b34ac8dd54ea18b9d8a51e5f8cd029f3b72b8d0be70bdae54ecf81427b43e8c4d3e7cbd27e18eb85b13cb197259796a6ff511b6e88d08d3c11a47cb553a671c2cffc17fd97f333b47c530e53045d5c123f23232829c9b3a77c669963a13cd89542064a6cb387aee638da58f4bd2314fd13af79cfedab26259efe09c701c9745b6d9df4032c6c8683d582f44fb0dc126c891f2bcfbc188ca0a8b7a2d824f2f692f948a8a9f122dd08361688676dfa1dd63bbcfee9b59ea6c3fc6a02a596381f7ff527352856829f8dd62c244938054ac8ee00498352a2f0e26e1c69d7d698ae1c6fd65294d05b7e00572442251ba48873071ecdd7105d771d79090579b8fc88a6657c2ffeab0ccd59f8db8cf1e1230e14bd2485dbfc78448e548a179d6ed852cdffd442f88476d405fd53dc47383d14281a8265662d4ba644af6817778e4c080816beeb2c2263103c3b8c184f969ba24b326fa1f2b2ee5523087f7899ece92534928d9efc3b28b12ba8a288b3039cf33c54783e15659944165fdc6750a5bd5247d7ba8e8da928abee002a380de61ddf66073bd7eb2113d2c853519ce46cb4d8fcaf3c452c30bf0c09cad2928a426a484d637129c3bed71c6d740f3fcab546c2695a9be68e73623dd7fa202ce5a481f3a7abf9e0db9459d028da160ce0c62069ee01b8cf9840c5e57c767b66b16f7078c0cb14dd1bd794e57a31eae4b683bc53aaa2f97fa683476a2755d873a4b93bb04b12f3f287896ead566a8113492e6e7662a2936af7c96c141800d224b1de5172417812c4678956b39b4553c773a6752a376f36d235eaa1d8cac2a90850baec292723f7e2729895bd33db37001274cf08ed85f61565559d2b6de550fe2e5591d0aec6791815a00da6de264dd9c93c3c8a2092f179af8adee91285bfb9c1c0012af4dc2f1292a6904597ce30b8f7361940cfc3096ea3ebbb81f3bb4b01688d0b0c1e57b094e4f8142216ccbb88dcf1295e9bdda79934cfa221d85cf0a11d45b8fe21edcf074ee139dd635e440531cfb829f4dd30b299bb6705b0c1ffc0a7405c78c1ba630e87848403f531c7db435322e6460fef07c4cf60df8cec9ffd98ee47de7d09d09b8fe73485d547d62bd867fa0782d71efba30995a93426924fc63d943468d1509e1aeee8dd4d372753ace601c66930da9d11603eca5d651f64d80404b5cd691d1401ea942b8416cc4408545c3334003691708cc97b89344309630a11ee328c9ff09b7b5655a0ad6429ebea931658507ba0a48614b40f669cde832975b8169ba152be4dc570eda848b3e0275686f938ce72b6762df3af0593ee7f8386a1e6deed7ccc2d4ac073cb7527d4fe88d24a9fff3e1d51e7994066a77fda1be8f53ce1736211e073544abb5e554c633c631a85e5153c77cb181dd192701d6c209f8d224d3bf4f29ccf331a21037b6a764235b7172d36899678569f7b2732dc9f01ee4d095ac7b23a3f6e9463f25937675a793278486a30eb6888cfcbafda49ffb60ec1ea3875f923e344e87167b8539592737c635def823dba1d82e642972e6c1dd892719b75cf5b468070942bb86bc4c68b61f8f1ac801a089a88e84fe1390bc91ede81a65336e33022b7fe21dbeca4d461a7c046e86e0fcb1fd9db6aa34cbd1387eb63aa90776719efcafc1e59cf603dc583192791bf27392c71c211e006fb3c42b151b7ba157d9b19e361b4ef53ad4c5aedc3ac4c0cf5f5c3620f3e6fe8ff286b209fe91f2bc1a5bbb4886931beaa57130d297c2a0f75b84cf9f67e884f0a9bf22fee410dcdfee5ab7c7a2c60871c3f1f2a23fff9083960017ff21b90f35e5ba3d3095cee8b1c8ecfafea52966f0fd3ed27b47b0353700cb646c9ae1b276dd51b616c9f5e800c17eaf4f090457fc3004cca65361a475f8b83a510dae712444a89a44530c0eaec40a05f9acc48afb6497fcb358b782afd1bb0c762389a099155489c7f00a061f51542620e52038c75fe99635f865982dd75d7f123dcf1ced368cd203e98c8ec2def9c7bdea0f6abe306db2cd74a85551a925602c59ac46581985c83ebafcc5a85437c0acdb1af1a7c5b91833704547c0435eeaaa12206d560c60a31a39114548bff98f18519d8b205041a473aed599b12b3b542a500b2a31107058dd1382067c4e28e5c44fc700e2eac7ddd20c2d3b66582fd171798ba51b45f3045300ce032871c00f37a70059b97ae2c8de04735e5804fca5c915a8e9bb3ac9dcd4df5632c25f053baa9208b7eb2b3965e9a7ac7936dfcf9918fee3c6f78d1064746539fe69e40378c1445b9d7835b88587a9eba96dae7984309f18b11a4b6386165baf8d59cd46c4ca10677b962c499ced6b97a1c790f71f3e37c2b4c9042dc4921060d51d3fc1c8bc0d89f3cb293e84d742f948a709dd91ef420e6dc1358b83b02af211150ec116072af7ff291b857008e37914c0fa606e8dadb9e744e0a635be47789b5c34841ff851359b10f3e07bd7a1918584db30a67623177eb4ed361dd7a9813fd70aa0ea3431e7c664f60e032eeec8476c2c25652044271b4ff9b070dcbfd2cb420daa9892a8ee2fbef64efdf6dce9ac3acd339bd977dc2934279838c5f271227e2ec0099819f323b75859084394e04cebea171b8801b76ea0e3087512490d5972ad4008a4df7267943a934bf034a5c799a5178452c7062102d016df3768a4a9169ec7a0cca9e015640431fbb885aa40c162138e9b5af44114705be32741af8deeabdbf71feac8b1d311c3d6c8fea189ae263b768a361eddd267c54654daec835fe5f1a20d4ff1ccc42cc2bac9759d6bb9f80bbaa0c587f80abb3ef30612a1bd9cf0680918cc4f2505667f321df1bfd8eb2cdde6e0518017ee60b10f34f80843bcb7ed975a0733b369f0582f06179142a5b6cabbbbdc07ed87a04be024bd9afcf84777a63b4e51c294f7f017f5a4573af28f838df85c089a9e5b8ea70deacf8d9115558462844543d967225933a154dbceded2c0ae78e7d6634e623475e18874194dbd6e34a3701656524157fc841dda6a12ee4503732fccc8e943330d9c7c21abfb4c271982252aa3f4358502570023340b9d3dad857c8138c38fa9fda493a5135f1e9707fc6910ee56f9543c9da82a11b87b8f97d8994de9426d8ec344f6f6e6cccd7c8cf837c833104a8207e0a56c2faa308a4401316818efdeffc34be2917a6703ec1451f2d4a3a82e59d5b85cc34da111c222bc8599503cfae5bab7a37267eaefc8aedf1dd4a44a8acd09b58afce44ac092006ea4877c0cb6cf92217c4a297925a1b431a08a8ca42bae527bbe327d5e4ab904436b4ceacb452849f3390ec8983701d323748acb82906962fc592c214c680f796199cb970b953ad7f138b803781e4f5a46693c0f737935627ec944b0af1ee5307b0b5ba2457a7f9a48ce260b34ac4a0240feb8bcf36ed4dc1d2d5017bb2cc36f360275e31b2e38b6eb092140c739f5734261a444fd14a568f99af0050332ff6f5f3f78ac99483784e3d78d33521c73c8e5f3dc3db72bdeb6a6734402d4e01cbaa9debc3ee2c1bb06925a66d54faa22c381f62e8e7470318f51b894da01a44183db3814ba298192c41f896cae0059b37dca303cfd36ec9b993c84142cbab01b5571bd2ad1b42345f02d76d97189740f8298634fb385b069dfc25636a339bfe1c4b88703982e512b149cc05f5f17fa99fcf4108d8c5e26865868013a62af0fb04a9f8cce98bd3770a382a6a71f8a2f221a20a0ec0a89385e836a15a329b7c627ba5bfa9816b85fdf5fafb8e6954f21fc0b3596aa17c9a1f11e3e413526329dd906540c583bbf6cf1e37d9f081735c253f23c2961415034a42ba735c30523a4a1b99e7000a519d51b2eab21aef7b9d67752d23c40bebeb8b2bafb05fceae3cc9da6bf47835a22144203a3eafb03d10004610045256e1917d04d43adda97f096ff483fdb8841861d641da717f8644b62629b48556f6e69601cc060a072f0734de7673cee9f94a847fcb7936d0f6deb79de7de2d6d407f48e8a6f1f5bfd8c55fbeaa41d5e05179ffdf73ff9dbaff348effec9e79e8f7671e6a363a743c8b7dfcd894dfa4f9c423adf9442ddcbbf67e8f7b18ad30583c8b8cc1a65a1c618c1ff514ebe4e8e4fc8e1c1d1d1d1d14638c31d631678ea923c7df508ab30ce5661f953d7c1929f1d5f5505907c477669f6e782509cc46edfb0ea4841281d164df779747f11d255708e9897ddfa5f80e1cc2cfcfcfcf0d2c78458c17fb4ad6fd6cda97af3e9b2c5eb8d1fd8b4929b4f815be8afb7ea60da1d8d378a761088d57fd89c63fd48ef8a01e48dc180826818e9f3d26819e6fb3ceba771fa740d35ceddec629d09f8e5da2175fa1fe7efce2abdff723185f95fe7e0ce32b197f3f8ef19d67dd7725be03597702321eb5698fce07e781c43d022db56c09838df3f4518fdfd29c73ce39e7753ea593a3b323e7eddec1032787ea501daa93d31dc136ceefe82a20374e373dc541ceb1b877fde5de7d1b61442d8863c1249030b92353809e454224e171ccd9531a49e0202b7270671c64410cbcecc91d8931e3e217f7ee532e8271ef3e095c0c2353f72317bdb877df6ef3ede7781d5ff378ea9833c7d4316f72bcdd37237443ec46e5787fe9f8fb9e05773a74cceecbd11dc136ea6f4eeeddbfe92a20374aeeb82053f72f8eeeb35df769aefb4edf7d6fd37dde8dee53d9e83e9efb55f3a97919997741ee684fc9fc95f91932328fbbefa4da321fbbef653eeb3e4fc665de761f4f0d07dd93791437dd93f91a9c754fe66970d93d99ef91272e6e19cef433b8cfde1781a361d2705fbe3fc37d7acbe090c86d5f8633fdc64dee33753efcbeca57f4ef4357412c577bb84b1f37d6e4478d05f9d94797afb20e89dcdadf77a1a4b95c0b2257d9df7bb3c7597ea8e19c71a0c407b67dc7f6ddda93afe4dfb7813fac6c79cec309ae250e95bd7e1b582d985e7749b637fd8d2d22c52c86ac7a230bd76cfefa58f7d1c7d9e3eec345b815344e881168b47126e43e96547373ba207f76a816f49bdea4df06568f5f0cc33016f0df2e43e23b3f9619a79d20fdde1e4de3e6c62ea63fe332966559a6b1801ffb8ccb1dc661dd3759c00fddcbac06e47eb600f9baeb913917c3b04bb19fd8bdf73ebed8c522162fc69edc99ac6d8345fb7fa78cbd0bfeb2af7bd91777dec5bdab857b4759b4bcf6cdac102d3173b248e6b41a56f1a17df1671cce1e66df696719861f839e715fc658e752dc93d808ecef67c3c6f9b1cdb22c8bd1de87b6c7ef95a4a08dfdb5cf822c56b6f6264e7e912ac47236b4686bbb22eed505cc872ca82d40bf942fefe38cfbe6c6fe06c9baeffe0d2df49759ae08b782902f51a16388c0fddf707f704b11af7ec6c1edd9fb67ee04f7fc71fecbe5fbd6667fa5c682f6f65d6341fb7cdf5ecd35adeba9ff41728fc4b9c441d6dc1807778ee65c0e7772af66eed35e7318d85e3ece1cb68f399bfdd53e7bcc4d8d85fcf7a9c6427e7b39140d347eb869fe8cfb92ec4f7b24bef34395c679eee18c6a3ef831e6f0b542e0be1d12dfd9631a91986173db7451a4ae20c4dab4a085ede573400b59c157b9fbecdfaf5f647ee94d1daa85ed4d6fea92987eebac97e06f038b839a4fceb2377199a943b5607afd3a3365dc7d130731be5fe220cb94c58dbb2f6e191cccce2c0759a5ef710c1ed5084527b4e4204b4d9a81929a83510f5e392055c1b02b48ad6d37bc82045497e00b2184b04e283f42588d66ad3c527250a73ea5d7be8410c618e1a79a50d60ae1b5457018aa19e30775788050077b40c3ff6ef6d74c085d7631d0eecb5b674ba9559540c7570da1e9139f10ca19213dc19452ea24747ca7134628dfb7b41fc8363659f7fcb5bc50475ba8937d2763b9dc47e826b48e3d5e4a0879b8ce6b799252e6585fc11d52e25408a1acd22455c562104259a58957c5da2a4d46a822e5cc6e9ea82a747c2aa5941a45458e1b0827a538f41863407823a91ea39372564939297ddb6cd3bd97522761a39bb801a10c191b33326a6650dbcf4f0dbdfdd09871da9f945242086bd0100185c7a8a1f9c0873452ce684f76a0e3beb1030d77ecf1ae898e3fa5ec7890b174484a6973637b1b1da1ce34759c94720a9584a4a4f25d1b7ec703754989230b512a250ec2d995568f41e9fc4f4a295b1b3ead3b60c6021fe734a594920afdc4104208e79c73e664dd044fbe41c7afbffdb87c611e3ade8347545dc0487ed78412f94028a1ca042ce09c780c2d5d4a393b23325e7915d4a9f731fb18a5d77a7fd25560292184fa642ba512fb1eaf34bb15cbee4bfd3005bf76471842c8d90da1ed3e7f775d4f1ef59c9366d7ed9432039ec516af2da4c82b5b40d970c72c682045842fdb2d0d0e87c8a2f1270e87c83a3da622763122a1fb6fb6d6ce103f6e7ff96560d7a8b1c54f9acfa49452ea011e14e1023164e08412312c2aafd8548b4d29a594d292e6438f4c805fce06a874d9f3ad0f7bbe5692b4e79f3890c49eff1dd8b308871ce068c97bdec0c59e55ec59a401a23d37a0813d4f0e6002840c905c5c5a37482b7a002263cda77e79d39fa941daf4e90d526cfafaf4f3f47afe69fecfb8823d99ec39e79c130651004d362dfab1b271bac881b7e7633856cc31aaec1e7b5a0a1cf10225464052b8baa8020a5136e18f2124418730844da9d6aa3927ec81104ecc608a1320e48035a9d89387277b6e7bce39e714c38b4da5a8026fb1bf9a3153e88c19b3e79fc4c8e1a7e068699310b4709281789578d0c2d35ac1a2692188e143e672e51e9edc1fb0102efb812a991322c05c46370c2e7ea840fcd830907ca043d80e4da607c2d40f304940942d53784800105f4ec02401415c19738549027e70c9d4a9073327d8c04d074070c4848e29acb8a20ba3656c78c50a1c8ca0038ddaf08a15629e40e9e28a12cc6057ae7805e1ede1cd37bfecfa78e3e6c632bf6d8f711f068236f632dc37f7f6d8f3e6831ad2384f388fffacce7f3ac777fc6771fed33bc5b333d5cd7f5e0e1dd9089997c95666831f7358ca2f3255bfc6faeaf49586564343692d99aadf6997f42ed95d7ae83b9348a6ea974edb64b2dbf4d0eb9b7e16a13f97b2b7d7be3d8feeb350f6f63adda73dcade3ea77ae1a9edbdeced77749f05b3b7c7f12f63f6f6a9ee3bd5972db913a5786a7b23f6f65ef7d925f6f623749fb6b2b7d7d17d272c7bfb1cddf7dbdf749f77c5de1e47f7a9b4d8db77ddc7535f1ac99da8c453db07ed0dcadea2eced6dbaef5421d0923b2a786afb317bfb1bdd7702b3b7b7d17ddacbdebe467ed91ed57d76fb1adda77d7b1af54f1c746fbb9946dbd7ed6774df69db9ea6abdbcf74df697b19dda7b79799d184fe2c2a07487f7657b9e19e4181fe8cf8981be7524cf6cbc93506ed6ac4ae5e760dda15ccf6998a18899c73ce39e75c0393496f5a6793496f5ae7ec9ac964d24c264d3399b4f61b06b466d24c269366326926376593e7ecbee59c73ce5ad6b4d63967ad75ce5ad668d65a6b9d73cea66cca39775adc9e73d65a73db6f5a670e6ecd4116d51c161ad6344d7b9c69f526bbf7c31ace6ae5a9d5860b1d897c55ab8d96cefee2cff0fdec7259f6a57bef8da5acd4c1ecdacf4aefffd9b071f2e3d0501685e290943824f3b24349ed6d605dee9b44f0671d3465ed332e0e452951c8bd7a1487844a48b0f41a6670af9a5e86436d1d646113d72304bb0f7d65fafb996b2cf8975e6a2cf863d997b26b7a24bedd3b213deedd219fdb75487c886afb0ff92a4ae9913b93257f76f625eebbf97d6b8a9c6c109af9a25f39032d7bb4b3ffe6be1820ca1ed343dc687ba9fb90ecd267dca79afb6646f22e7547b0fdc58d3b1954dbf55f4ed34f33de57771ede389957c91d99afcf234fd5f3fe2bf4aa699d2e71a71ee852ad5fea4e2822b4fdacb1ed91a9faf8e885cfd64605fa9bfbbee6a034552db52ad323370eb230219ddd52fd9b0080a1f17f46543b7becb52f7558c31a2e492c6d0cd9dbfa7267fbfa90de9ff7e7bdb79b9946247bfc978b21eb50f7b3ffe2d61e77a8db01891b3efe4d0c2d2477344cddafa6126744b5b5eecbbe02ba12edfa35c30fb50c7348dc66d03eccafd98031c6da67af7132a8760cd867f7628c71e9fddea37d1f96bcd3b823b0c8c65fe26450edafc88e417bdc719fca5aad4fa7df9fb733031214115a0bd58f42a5afdeffe9a435e5a0f6d86b4246545bfb1e5f80fced8ba8be6c44b571929dbdf6fd8d9379992ec985a2035b10b1926c9f4f805e3230630551bec428fb666376f6706f1c64e58d83aca8b110b9237267aa7dbbafc836a2cabef268c485b9f3de1e8f39fe843f4a2f3d9b263c279e14cfd71ecb587aed6fbe13cf89a77c3aa79c99d37b827bf76d8ef46538b86d9cf91863e4296d407f3546897f3f42c9321e3a7e5c29dd5ea642231919dc6737ee5a34ccd97d325c2d611e95f7fdc60ffdb4f16bdfe191a9fbf8317e8cbb4bffdebf9b08dda769baef34d37d2f834786677f3cfbbead9dcce3cf7289a31b6a406c373dc73d3ff8da7772a6d71a9ed1353739fbde9f164bcd472b3dd4b412d630fe69dd0b9275f1c8448322225cbb66c3a2a131f46967b9f8f06dd0f00546afedffd92371578076f39b5f1f42ace649dcb0880825b60d2188d0be4211890176473024db8b8828c26eff192bdbdfce9753e023183e8279d9bec5741f47c7254d3e90b84bf725869acf362796b13232afdf723240a31d83cc6bfc1967041a590befcdb2b7dc872dfc1eb7dc6b3e310c11185eeceb40fb3efcbcb5efc3cfa3ec1b66df879f2bd9b368e8677fb14b1629fbc2a229506e1cb3af6bd957aba951f33d8ec5bcc2006d39dd48a37d1fead0c1b21c6324a6358de2564d81e97cb520fa65fec4c1ade2a217eedd2f5ea6e8fb70c32b4210da0eaf08c1b57722ebc22b3100e3599e6d55db7adbea1ad4dbb7beaaf1f6b3af02ee398d161a3ecd140d3f428aa5672f475eb8e7d3639723a39adde533d4e0de165357717a805ad4e0ab2f126df7e25e0403b7601b5af49c2d68b13db65a24e27ce3620b7e396ac00b33f8cab6e01e14a237117d2622d2b42eba5a4cb4a2e8cf5d76cf7824b7eeb3fbbeee4a5deebe139eee823a9ea7104ebe985052469446306af52bb224dd827beefaf92ee4abdc7d71bbcb85b848c4c52a5b34177c85bb16acd52d0d88ef38330fcc5414527ab41662a5f9ef51a610eedc05afd80ea9171ae2c65ec6c31584b8e71048cae03c8aa7fc5d447a76b14a24722ff5022db744a2a3cd6f92e4e31c02fdc19710ade2abf8d60ab91419bbc81dd9c5fd055ffe822f7fc1177cf90bbe5ede492fdc93f0058d1c4ae9afca791626a216f754c8417fde1385bbbf3cbbe753be56358b6779b927fdb57b84c4e83496688f8ec53de9595e355bcaaf9942b70659662b6ea02583172b49068e909f24034760ced66089d4af118b9c0f9f570cfdde82fe93a399427ff28baf32540b99b65987420064bd4c798f195cf96141160e91952589acaca33142b3bce5b28b55b06abbfc327fe49725f4e7cdd6fc41cc8e9383f61d3b94dd79bbc77a020d6b744f15b74ae59e6f202f7d36ecf8393741d812a7d4a7b1443fa553809e553b94ec6640e229ff4b85feb26311b9938a4a22d0cfcd0d8685be0d88b06899249aa0cb0f2f960d819effc157971e2ac3c030301899814604faabd9943e047cf5c96f40acc13d5a43c47e6a708fd6f0c3f508493979d52431d28fb1723570f1878b594392d2a61f8776620d8c282cf2c08f119b46289bfeac511be2dbca6cb9195fd8e087e51a9148df0270e7776e58c2e364d38fd6063aa69848127f6a708f86d934bbf25afed24359d2b8e89229fa383de80f7681c188afbe0865065f7d3c4e3f0ab18468ce9c4d12849e0f77dc92ea195d232b15070193a01f160d10da1f853d8c55ac6462f4fc8a7fe2ce88a7301757c005d00f2b35864beec02053f4ede9f33616f38e3660a06b90a04d61e0b19ac7cbb376309480d69bf927d096cbc15cb4765f1cdad4c7531a7ca2165067629b02be88125d5c78dca31f454721fa2925b4ff175d41bca20bfe2861d38f51e00fba693cc1a6f1884d85d8f46b6624674e82bff438678f8b8b4566ffeec93fb9274fa69729cb17fa9bd932893ff90188172b0bc1c495dd290afd994c2f5f5d7b4a925f2b61cbaf813fb02d31ec4b9ce572141ddd9b7fda46bcb326233a0322138664d397e192c8781997c28b18fcb06630ecb1e77e1aa1f337c057f163adff59ae2672279a24b0ede37fe478dcc37ee37adcc33e05457fa78d7d8dafb40e45e47e7cedb3c7fea471310a2bc2bc583839e8ef1f8561188e18f682afb4c79e07fe2861637f823e99ba4fdbd77aa40c075993a381568e86c8615f514422ed50447cd3a75d0cf47d4316bcc1ba184c47f40618ded4c7a79ad2f61dd780d10d96edee50cb9433c0485f5ef1f4272e3a6aedab4f0dcd6e7e0d9ca7d4c90915cd4b7f99d239e77cf7283d6dea353841e82f4bed4e66cc4010fac10b9a332e49bcc1135c5eac6c08204cf9a179e90f8e51b2637c81a50272d93052317412f77082d05f54b2e74ce23f754ecde68c835f4801f3858c415ef62c61f19d080616b9a2749132b427d19e56f6a41e95f8eaab81c1575f5462c457128b3db51ea83327a5a2673e00431709c095d421091018edf9304c23f412a0a7d0facbd4a45c04f21413d66a4de7cf39ffc3b37633b8373d2ef457f385fbd588982085095eac1b24d2192e340525d6195b5d04726fa68cf457b3e78c46a630b01f813fa4ce1c8963eceb4408fd651930bcf9a24449e9c20bbe028a507c2742694120ca7623305bc92cfa414ad10f52c228b1ad2a867018611129837d6fe071d19fea42db00f7fc5fe85c70cf534cc82b72731ad0e7febe98ed8b6dc9b9d3224e9ea752f1f0c018e08e11e8f870e6cc39e5ad3ea984734a5ae39ea45ea5943243acd259ea62642b96e13ce79c73ce1df8b0a58efb2ac7389b2e60cb0e7a5407033a076cf971625d843a5e6bad310729c3f4e6ffd249274fcd296b72466b1faa2154db3a3622ba55713c50c2137222ae296c2977ba2939e851fab24aec8bc8d3e9014f24e28a711bdec7b6fc16640efc5137c4f4e6ff6a43e6a65f13e7f44aaf76ca9a9cd15a73195bf022561b32b7853faecd63acaf2016dddd5dcaee9b734ecca9d329a95777c7b42173bae71617e1e898cb59ffffffe9fc6a7d55318959b737daec7fbeafa0fdd78cf6a3fd2ca7f9f1348b7cb0028d76d022d381266e8a3ac045910f25d8f36dbc6042f952c384cb961e7e28eae10928ae3d1f35e78458c82a5aaf39e79c35349f49e349159bb2c0524a29a57409189b524a29a533341f3a7f4c1c4eae3c71edf9faf473ce39af08eab2e7fb9873ce49a3f9cc160c367512824d7f268b0d1634e061a2832c7828e2e1064daab47a90b103a8065c7cec790209fb83589668d161891d9cecf025e8057bbe8ac757b028a8067b1631a9b227ccc20487d2b6448811b40fb8cce460250a201cf62c02aac19e6f0a3182a1602818303f6832864e27c0d08904a5130c9d4800d1e408309040028938f47148074f3ce1f5884975a0f309a44975a093ce8a3469d581054b66d24c4a92326926cda4a420a8a080028a4985d6a04aa148a235a8d24a6712ad33a8053b50248a8414231245a2484827b993318c3d722be627315b02099f1004adb4d24a2ba543d02692549fa3e1ac65fc0015b723e949d293a427494f628462072ba66841a5934e24a49905cda222515a5b406b16262862082a545a62c4505a9368a5b2821534f124a805954291446b50a55024d11a3467a5930aad41954291446b50a595ce245a67500b76a04814092946248a44919080d0128356289268a542694da295ca10ad24c450a14245065b2bba9c73524a6badd8635a9079339cb592496f32326668449871a251239f722bff0077ead194ed390432da019c158798a8c9379af000ba91a3fddda296391ce3abb81d5c87d3e148e1b8f16e72a4600422a0193974e8f822945ceda97ef993c7b3e5d0cf8c7a646d3d3a1af244d080643b0e69d19147c8b935c28d979a82438805a98cca692b768db887634c42e2de0cd8c5c2d2485243181c9c1d9cd0c9068b1d29d0f789727ebb433648c09ddcb2d95f1c8a2948edec724f13a1c3a3c90d20a01b7a043c7ad8e8a1aa51a14800400d7dca9ce6847be18636c5052b77305744480002e0e364a3f9c8125622ac7668f26b874700299041945b32959920c2f6d6f520801f536484720beae820840300013861009b8f120680825ead341fec775428a85230c5b8aad895518ffc62f5063c3dad25a520b8135d50b6d7231a814c8838c41e1e5d310e451c504041f3998f8216646ef959e756c59bc625b6ff975b44461c45132211b0471150a7de200e753aa4d033250b096516f46c9ac3fee210de3f48fcc0259b757da8260a281040a5825521cb19ad6bb60f100b6405868b443c34273a1a90b9f78e2e747cac82cf901c54538f8cc8addc7aa21e6d7f5d8304c53d576e0509a2f9cc9fab0991a2119168e888204232843f5405c0af7d7665212f0e01b9a147a0e37f712812c9e824b7e44e1c6a0d0df1d080f4d89108098d75f0900278018844222b6408911882298f45c09ddc6a29b1bd75446bfbe3155424a84adbebba0962c000030c1d281125a24450c48811b3430880e40efd583f3e75490a1f3b69efaf0db6ff47c2764a34bb7bb484282392ee52e09fae282afa93134c29cd72a9c8f4aea3d1863d4cccc4399fa111a18a137bc259f6492bced55007bea4915146d16fb094ff4d5ab96ffe279fd23d9dfea436f276c3373fce3973bd6193e5fc3c67c60588b71d33919c57995d8723e3c071934ae1c07c0507276b3d68275d4bbb4ec7e1b8c93c72dce810f2bc11525a95b3630a69123266a2bbd676c30d3730b1ee23534a573b797a76ef933f4bf0b11280e603797ec0592995524a49a99454d2ca7dff83ce3921d498893e217fd9f086ac848ebfdd308001a080420a73ce14a49c29ec78520552174f243181a482b17bfb53bc2a6a00db39a747a18af14f609c7af4e8017f405534c1a454cc14e344b461f4494ed161e25f4142421a02690824a4a4a4a43049619292ea95ef2bfc14bb369b50f3b133d7d69c7cf0dc3c18cde57832079f736639bd08dc49fcdf77ff8bffd5ff6486737e9cbbb8b32ccbe89e7eb138e7dc74cf2863f42c4a2e1863bb4eb9735e42476acab8e808c4dbfe8ea913eaefd13bc9c4104843204969821851306bc5827a8c312681c481304961928238cad2d343a4a58e0a3d4ee89997d6f3d4a3859019e81d1faad3abe03d2f9d5f4974081cdd055a4ad752bb406b0d7fc0ad030fe7c95478a24b1d68a4b395393cb007fdd3099e921dcf165d827f9c3c3c1b67c31c0f0050ec9ce029ff28348cefa9dd83878707fe807b8a7184081da450410e520061085c4eb4525a4d18e3c78a9790173050018bca2d9b5aa1021af860a30bad673efd3e06c39bcfe6b5bd078e3c7422cc89f047a438358579236cf857c78fe7f1ec1c371987504dc7e53f9d6c367cbc01c9ccd4106106d08f19d92b7bd98c407f343441befa8cfcd028a101f255eca67b10fea0c164c85e3b86f95bc64bcb90bde46730faa3b4c697bd7209f447f3f3d1fc6cf9ae015105000c3de763b2eb26adf27ac5ff68161944d0ded86c74eb31571212ea5c2d1c59e886da1c3aae97dd0b637f343f22f800ee4c30b65bf8039e2c8771f08e9c93b38c537116eb388f1e793a8c6ff3a2d1008d255adbf0dde55184346a88ffec50f4a10df15d529e6ab8f8d08d94bf65ba4be52e95bb54ee52b94be52e9554b9e89429272ea823a754b927a54371281bdd019d7e4363898e0f7dca9aa8024abae7dee7f990f8543efdc8a168173fee9be8797e558d917c61f8dc04e286efe3f240f3a89cc4c833777c11e0a883f60d8b8474b0e3c392acb1a2e50b5366bec7f10b7227b2be5cb1c5048d550d08eeea75ddeb2e8fe255fce5ef595c8bbf5fe13b51892f2ec557b0e80340434bc0698018b1c49795489441e072c1702d7cc13d18b01c41000677657b3f35866e657b65b2307a09f7e267895988300c7a9095b7f316ec1c480920b933e345f852f7599ad7ba4fefad9b41eecce82c4d0753faf117add03069981c12ba923f1f3f37e47f7ea48f9ce9e2123ec34196e66224a2c2876e3ecbb2a3ac79491f7aeff33c08289d7ba8b4cc59a972d2291a11010020008315000020100c09c582c15814e581a4fb14800c7890466c5418cbc3b120896114c418638c21061840084008019a1a1a9200f86c68e5385e06638ec9ddb4f1a812a485b6be04d751345c15d1a18933875f8d1533f68a1be9c622efcad1ddd0f4d1095e85e5b9bfe2e1ccc4998d6e4f35e53a8bcae3f98dec663c3c9a3acd1ba09a344c939c3ed6185577e70aaf83986ead3a4b5653b032655d32ad942d02d283b128c032ef4e731605c9fbd26eee4e739adc8d11cf94a4409f91fe0814d365744d2f7e5adde061f98676e33e225eff397d54fab66628dd99565cc744fab4ea50b28d02cb206ba96953b608480f8c5d60d6bc3bcda11844ee0bb679775ecee6e040ff7bab02902358d0834499f4cd383218ca7fd2f60610e8f32a374ec3dff4896c32b91baf370e6531ed9ae7a4f4c38a1d86eeaaad557d73b536f6b1dee3f2401dbdda5d5f10ff922e02a8440161b66207fa1f86f52dd33b9d8fb52d6f0d3febc9325f7a45ea413ac30d727f3f3876f568a9a71ec2b9ce620f3096d2fd918523969f70b41731a3b30f36cecba9c34967275f4d2be47449f580ee86f463ec127d0173e20ee59d387f6aac6cd219631dbc791f30f6f50cfb1de3caeb4a4f9bd68ccd3b7365eb484c5bab9cd5c6db77a4f0bb72c496a1cf9998f1e09bd0599df47463d55192fa8295212b9269a46411901e8c5d01b639779ab35870de971673779883ffe0feadc8fa35721949e266911dca9d70fe6a5e91b157dc906e167d5718dd86a69bfeae5841c81f318373d00c52212dfffe4e02e618ae682e71af5f7a2fde288fa47306e994b92b53887c2d124568091544638d741a29c1d66a2fde2c115d657de50756171c89d227fed82da1e4de6de87ed066a6c4987bd8a487ab2c20397714d9e27b10724686abdfaf7f647fcec114929f97a44f6e8ce2083db2886ac320a3f46aebe094460ea0b8464211e1621ad1e69d941771571300c58aaf09ac5673d2e4070c5b447b6a6221ec680e17e07df0946c9054c0813a0e5f14cd3bad33624781829ddef214fd50508df7ae37830e916f160926c7661164246709db969ac3a3fa8c6d2a52973e4a18bc756a7af075b9ec5d7c6bd0f8d2b22646ad8baaec3c52211af3bca5770bb7bccde214881b2dbda809337fc66711b4e44eda561c63d5e5c918286aefec776e1914b505e05200421cbcb19c11b404504403316a6861b0e032105e6811d9ee86d6964400a0cdbda1f55c6658d8c34037923b633cf74fdcac82c2e1c50e934d9fb5a4e2e3962bef61d28aed107129404a8c4d2025b3aac8c39e57a80ff07ba2e373e4c191d5083f64815a95b08206dd09fcd0180aa44ec349654eaaff7595339379a66af15cfe44fd04b6433e0a6192fd4d4e9f529dc2d98e812dd00c3bef85e0658e187016d2f4ff7e67b7f543b287f1d90f3b0746a000cc2fe4b4877bee157d2cc8cf6609a2e1b2054d536f969f2bd00bd616de5816177e8aeda02152818b5d807ed3dd1dcf202c02574db91bd4de686a83e2ba4180a4a9baee5d00cf45d39d42c0c602bb70f7c65dc9e97a83f2433869c7316ac10e3086815e749ab73a1f23479849b7e242bff751f846bca18930682daea1fa4a720111eeebe9c7e824f62d9d895d549d7a17f52e6c9c44a8b09857c407de067d6bb53eaa9d4fd0264bd2ce08d12623427d1016aee46d4e0a9f7fca0aa901c4f2a9d37d8580616e30cece68cafee8a17be5d1dd184549bab6f5175612982dd4862e1c74b01fbd75c94def02e658ec13a15e2143c5942722bc0116453b4156965ee5c0192e33e2dd7b2e716cb6cdc579db656a3d2180da47cfa8cd6b44a769784f13b1be81503b22c1c13aa4e6f9a80d65c2a7e67b98efbb4388d9610b2561b432b8493127064a3b101e488c7920a2d8b9fe93d498ced96d95013708c41c8ca704cdcb5f79f8a903381c6992d0024c109ac0eeef61bbc1ff4fa9d2cd3ecb006aef865142dd2827de6ed3562087cec1b28e2bc5102cd49c40d78781d4ef1a093b2708da8173c7214f0078d409ccdacbddd7e0a99d47a98cdf35902544f837242c8d73b8f467c73165d6f76b2ccd23508d3cd27f8e2189329e0d7ee170cec8c436378534f5449660e1a0c84179dedd8b210604ce60928f0e5536c399e54f260fe93bee9eb12d48d4b32673999892b84f47cf87deb682928b9dc0a545a820d49add3d920d240872e6da3554acfd8240b5df0c8319a9bec8ab183e3b86408dea195f71aa3c0624272aa6878afc79bdd0be419bf3a5feab35ff19cde658c9aa1d6456e524a307afd855d373503a5b9481c5c55c38a168ccdb32b5052091b0e386cd9a9ea6d6143d08fe81a462bde1cc07e5a1da4eb8f5c9269296578eb890067423c77a053ab4960d992403996ea21e3a4a96df19592273fcc5491b5a41f340ef1e1606ddcc34adf72c052d277a3e80c056f57340080561830a32a1152d7cfdd16b0adf3640e623ce712d48b3ae2485ae6eb1b1581b18cac73f9c276dd4015eaaf71a58747ea620c888ec4289c33bb2486f64c1d703874124e1a992b7ac0cccb5abf1550938d3873a3976456e177541cf503d5f9eb57432f8a4d14ac6158d26ffc88bb1a2646488139e54f97dec9e2b80570431bbca92bf77c9894ec0a47062fabee6e217f129f47babebd6b3e455ddd6427c107c324856ac476657cf3e6f24725fd46e6d395f403e8966a677c2b89466291736635160efbdb0552c62dec65ad62c9df3b30a3faacf03f21e372530e2bb18c36d7a68b826ff4aec1c5c94cca9c0405fb8a5c74d980fe41157ddec0c3404c919daed926fa441ab7943580fcfde943395bc920ecf4c4683ad188269be07351ab1708869759e727d25df434870f6ddad9c34e1d21352f615fde6733e82b8f18c96555551f7ec2bfe0a55b92caa57d06d78d99cc6b97306b838f750e0cc4ec49cac3546ac9a40c7555e973b179466718248e81643d3ebfcc8f5360737f8c75609090154074b1795a2ad4a961bf9aa57de22cc1c2e3790d58562207689e94e404bb7b918c4940c2cfaa0d703a9ce37432c3f4364cf27242729cb65ef41d712f0bca6bb3c8509b930298ea1a2a280e48d792f063028dae4afc97d3675759cd451a46a0b5adf3b07c6f92d942ddda76fb99ecde9c3564c239c672cb487c5a13d3e6c4a98c5a891a1dc92f667c58819edaeb4d07f1bbfa41997c507470913a579f810387f1f8968c6ba05d4136d4fcc65fa947913bde92128bef3d556af4cc343e39f4fa7ccbb0e8ad528f4e1b0a15fe7a562b27544c5880501ca0398e7b703339d32c5148007e3b5d503f1ca9d7d174c9a13331d92348c6f6c0eec9829b5a617e993b17499b448c4a99b7ddd8f76182623d15a71a603491d392147ecbbd44337ef17e634d0bfcaf68515e7661b5e8831dfaca17811f019bf08976a9404a11db8cc9c5423adec584737e6261fa63d172fdd0e271646317d5de69b06d5282d9d313832a396238c5e9259e7b13a9929cd5457c4d83a31292463ca4ea95459e62dfad3b1079c5fe108540fa91468a73e313349980731c02d198d45841dc42be23b647e189603933b21691657c7dd65c06fe073fa4428789f09a3abd382dc67651090112c61daa9af4f1160d62f1bd44661c8c507e2b6e5fcdc72abc0b9ec7481bf6dc8eccd54800a7096b09b6b6986cd0b7636f2310eb5de7709b125c5066a385831ab496abe1ea97b4c291c590ef4caa8831c1b4fe0c5040610c931aea0ca31d17b11db770a6115dd9b80a7d37d57fbbf41041603bcee01c49720c8c3d56f4890f5510c9d46b6828db490137168ca348cd47424757505d7471b8e0da7de23120ca091af808ceaf9b8520cde2100d9ab28cf6a73c47e381af2d0c039bf9cc3c621c212e8dd81b5b30d0d647939845850c20df85eeddacb289e524418417a8c58f9155c56b47085d12d3defa1d71f3e3c4ef7de33486415d09ef6f4109ae50d7aed3b0652fe63826ddcc78b9af480f5126872c3143d6472e1a0a83ce05aaa7877ecf82e132baf87ce274dd96da8dc9b28a04d2d3595d3a1fde287da8cdf42f50e6d2477d2aff305d0cfcb36af1e602fda1118e2913b0cdc12e2020ff1bbbb25bcb01d801b05b411611244bbb57928cd201f8e78b4dc52fa1440cb0ad6e43d292cc0e306220a0df2566c5ab09dbaf2025d68c684ca4cf8199946f3f945ec907aa5d5b3ce8df18c6f6c8b44ae35bff2bb785f371e9e0a95c6b1c7e0a6c412cab3d0d17d764aadea19b715df9d4d09b8f9c73fcb495c5b338bbfa8d049effdb61f50090c94d5018ad68deadffe411388a0abab41678466aaf79b89f7a81e72d325cb9fccc20a128e432e83e4f74fa583cb8f7dd09ceb2d09fa40f4f7a57bd9d0b25a0f77349e8f966387c53e0f29b79354e2c6f514382815db18e6ed4bf8a3d0d0fad4196d49d906c4e86e6ca98f302a44f43a003ad6dc25e317b76e1de36a1250ac8516ef31150fda77f0d54e02c0393f83384de65b707bef288152bd82d50d57d0055ff5a224b667df50308d157771c449078d1679030f911a241f1d5bf7d5856c018628858537962e441620a592e8abc811b34cd26af87775c739271f4dc1adb581b3e9ebfc539f6748ec08a98e4766ccd40bfc0e44b36d123243845bcfadd702cc93d5f6901583b275c9eb7fcbb7f795a22d2291cd26ed04d29bdf1f45933c70a75e019e6c62368b4cfb7603152863dd57085625471db56209f134835c50cb27b96e0e3449a6e3d61e39bc8dd03764b561661da5ed6bf21433cd0578b92fda0a41cb22e78a42dc0b50fba88311e05e16088f23af64c04822a884481d795d519fc47a5b003ae9a5d926bdea03aa8eb5d378f7ce6f92bd71e1985efde1a5cdf5c2da09a466c2befd28e5447a8f25e59f6406628c787ad95fc01f2c7fb904d1c8d41ae6cf87b9d5759c52913f91acdbcc4997aa29276e013b7f08b91bb7ec451293e5f1ce2e05ee7c1c0f99c45a453854b007bc16543da0106f2c326dcf7e7473562efe16c595277883c675a672bf5d0bb8ed3a7341db245ca9d8300cb1eca94453dba807dfccd114453d0b4533695a20be99d42067f633f6c5300a26ea2f209b5c0c875521150827bd9cb174a3ebd046d436d3e5db859db34f3aa6bc218db8ff5a3964bc47eaec6ddb09fb0a5d1f2b9d812f8967cb39cf4af31b25aacb009b48b17eff38a311a77d7a12689ed0e257150a827ae939ece5fd4c05bbb1102215725989602eafee8158e36939d23b1096cab16495e9fd5442004eeaa4b05487f74c7081cb76643cafe44c3f9a7f52ef679a27f31e03091ef7b4cc10d41682032c09352ad92d7c4a3fa44cccce429666ecc5e9fb98d2d637aac784c6bb85c7866d2983a738006f2d3985604372ef1fc0156182ea6463d796b2c739902d1700213357aad8e88feb3bdbbcdc7e9a877a51eb54876223fdfacc204361995779da056126696199087add46a61a6710af68fa91bd8a2987cabd803720189a6d1eee010e2d830a2244a4d96addb4b3aeea8a0992765ef5b1997cfd03e6b1f51fae907e044f0b041b0070ca65084e349ead110311197fcbf9bc012f305cb8a3f5358917a195befa41fa33d0a0f25b9769c202e96d06fcc6604b9b1b1177fbfb4c1d72dd84dbd6e07ee1eec778eeda1a7e5e9b4b4fc86210d902b65efe73d353930795af9b055cc9ecb8305fdfdc238c882c0b06f10f7cbb32a33189944864e2661e3d6cb7b9a26faae2936ffa4fdc06fdb806711e6c03b37bb816070f919a6f59a9655325b02b088a361879bdf6133994e9cbd687b66418882b7341ad55bb7c7409dd8c1b60ab5b4474c7458874edaaef331bdb10164a7681d625255c3bad345da2e2bf3de71a1009f09ff478bd19775aca8683ca332ee0aeaba98130277541048634a06deb8f55d81c5a545a7b1cd418b030c612451dac9e4c562cb4cebcc26297740f323c1e46896f41e4bcfb5c86e9ab44f80af9bc819d92f6fa8217cd320530d8b09393afbc7af08f81171fc1bddae9b08c8bb0466f43fc77092cfd227b850074623d6b73d72ffecf0dda4f06c3603a79ce77f0294445dafc87a6e4cee2a70cb537e51324c14a45e8f55c93d498d71e383d6021e58e5c117b004417ed986a86a98add042ed9997a684d5a58d86bb287ddafb348bbb70592057bb1e3d7138124e036fa459553a1024645e024a9c4b1a62b6c1101e2fb3cc149bb57f8a0974201e145978d551065313cfc0a41ce388618ff7b1fe8e3fff9764549aa4eea5898446e928fd75cd6051a8e712bff58798dd158cbe20a2cf8256de2669b1e5f8f8c899fd74737c6724690859686ae059f3c3abe210f5e87cb1bc7d911715d4bbd14e4a124547875c4adebb79e42bda075274d5b907dab445123ca381df1e32dc61409233adf97123c2386e055317f0740980b89450ccdcb60dd8d43ca40ebe850d7db8847be6cb9def86619fd731454d597676ce2bb9147ad034c69931716daaf95175a3e688c904dbf11506765079701993bdb917363bde7d422708aaae36089baa01eafbf790e93623cbce95155163c464fbd8a848082db292d0c73836a9a4478b52cc0e37c40fb388464f5e5846ae842dc594989a1b4215c351548347a9f9ba6247dc3e1456f2f95dd674c349357e1f005516242a478d8d094f2c6d5f6e1b57e69353b63f77d8f424193f5a0173e0b136465f29263270106acd22825dfe75c0b7666021ca260ee3eec09aeba6351d3d92b29586c9b55c232469ddd6e94bff492f7ca0957e3306feb7af2895bd71b5eba75e74febadfb4e45dfba4d7a0eae1b5bb7c7272517ddd2b44aee523ff9cd1850e61e247b72774683d73ca0dbd6525737823c3ae5d92ea4ea275d8c81c54fad3cdb3460c60d848b5b23b8b6703e3c1b9db535360b4f9b3c0751c9e56df0df83a9abe82bbfd258ec178240a561c51ae91d762347ea34000624086d52f1274c3e9cb0bd5db75243aff4de9b4b281a7454e87c6af038422410876b9452b0d2295d5dad864c348a34774566d04477c172498a65e14a4ed6500ea285e51acb6822412230d9a8083328b5682c7d18de5fa8aa642a48193b3d9679f603381114ec3281d277b4d925bb86fdc801dffd39b6e5d51dfc9ca5f9b35620b708f7b975152ae3c7bcf31b7a71e227ad888b77232a41dba1fdf385c8a7fb96d9228dad164ddea30818d2e1a2c0699d61e4cfc248a551e33732c3f4a9eb61161d416bea5ff24291a071030b813ef6497893f6dd4044fb299836e2b7b8a455f545cca06da4464602a93bc2b706085eafec147222d3d9be4c607a11cf0c347b56ffece5fec4645111d1f417458f6614e8ae39a83525405d010deae0f58d75683fef90998772935556daa3313a9d6df06e566a08c844ca6ae2b96e5f20a87523a04c27f626e45ff771d1a7925dabda2b5460519587d1dc128aae478531f69f803e3e333b4784cee46c545250fc9288b7042e97e9da0d873db44199595bc1b726bfef1e6086d0edaea49a5f2fab0a79d63bcb1500b0fe8ed902f89fafe8fda1e0b7df5690b4896ce264463e6141c17a388264a4e7bf62e6962adb713265e09c928bfef4cf84be98e9d532af22cc1171d6af37e79a45873a4221eafd7a3f593e228c6ad3bea349016d5285388c5d2cf6674e039698433ee81f9c2685a8d83e88cf4f89415a6ce2777db881de02a05fa85b2095ff706428743087172c25c2f81b7003c91288f40a72fca9cdc88e244e98172599333fa209373953a53b902f18311c7076f0acebd689f0a39c16fda6af2ebd60e0306d51785fbda1ca8e24d57081ae15aa1c4cef6578ddd91ca16df58f5575ace30e755e812676ec8ef0ef20c23df0941cb78b946b92b28f06eee32056672ba6a0b7948dcf62e9a325900a78aea754c90916a85a2cc4f815b7b11730b05d6a01e9a6377bc186699d2578b74c1dde76d5ac07737f12d1d648b731fb47b25dacd8264c9ee000732a304e9bcdde61bce87a10ae4cfe17ddc50e38c3b1be99ff9a2ede5b4e2d4c790fe5488c13785ca69556b2766923e46e386845e41a8ab49b5888947611ae2627b05c9ce17de24d25aa4b53875a3006aa10b608d71f0b16b55e64211ab334073abe13730913a123372b62977acb0b975ce0c528f9a6633d337b5b5d4ac4b541733e233ac78c3782a01ab6faf792f43393cad395b44e19528c9f1f3d3ade417a896f4f5c20635221609d8974b8182a5609b549b0ed7fff24a6e7ed1ef2261de8b2b860c3b65a14aa91c0103752b93e49b4d96f22ea305f269da6d2302cc8b5baa80232cc756b8850d75b376a5dabb8bc985eade185c18c2feddf9e28666f3c67b7d703006d6a3d005a83d08a858f23225405931005428c06d0f3bc49851a1a4f9595a852a17f96669775849eb16216da78ee2a0f68af0d3e5c65a03df00cf9021133a35004939dbd1e338cdc548a7316249f9af4a6582f00d21ebb3f341a6e277147789653fc6e156e0e6d843eac46996dfb6045b6c5e21f4dc84b4c6f6a74db971056df59d5db802401e7f5c0b5b468465f18f4dd83333b4edb8f533beff6a5fb86d10e94373b7153bf89e136690d72e85be711992bd8934a57e627fc5b493c002a6383b6e86695a76fd4f9d729497f6021eebd4709e3ac3dc952ec4e60b5babec0f7ddc0f09a27785533b0b00f2cccfeb553f886537d46e7e71f649779c549d5c8a029b559a4879b89f4221e39bdc5dc6362a8e174d39f4520275d32fbfc29ba27801342c251381eb62c68b0416bff71f611984a2f0953eaa7a510f4ee405fcf9cb561a542efc9c08fb2589a19d279f81d17579ea55828ddf4bf63df77df21d22c0435d9f6b43c0ff4eb42241cd45c6be1870934ead1b4e08160b05b6bd3baa2c5a6f4c78b20f24b48c0254b74c146d6bf1dd3eb0cb8325f5204fe12963dc7822474be5a4d4d80fd7b300090cc038a5d0f3801f9b5b29e6def0349abf9696857e7ead5e465115754a9ae123b0d0d6e82a64fbdc94de95b23989a322c2b3b5614f965147b5943abb2fcb60030c3ceaa54d3378ff5ea113091f42cadbd066bcce4107de04fd34d0cdac337d80726d89018bbc26fe7276e8740da85eba4e6da8e95adaabe6efb613b36d8661ecae7085234041aee464bd9a1e3851c82301a23b314fb38992375553a89097142cf29fa329ba3bc7fab6caebba205f5ce79f13e7088fdeca0d674342d96d2a5066b143b17195c7c5588d0de4194401d586e3a95bdac0ce53340da929f7f1120f127a50777f547a8ed9f152d74e798163188375707ccb244210d87b500154e5de87a327a26c851309720904d078e7421dd35980b20242c16b68fa90dcd11556eb360a78ba1712257032d2f38d30d5e27d53f919898f450c59cb89b49793331e681b15c3d103e6dde5e176a4e591aedbd3cf4cc2f7e08b49d3ef1dbbac7a9006e819d1fc073df591e828943d640e8be6cdc8b4536cbabc98748c44e8426196c0fc731623cca7d2817e11c8fd1ba4e6f3ea8200db121f0c0b90b158f17bcf1b7cc0b51639039eec2e434b63a9d406015b20ce21a924069e88638f97a08599cf19fe429c4b4383798750a39050ad9c5f9f6d80f1f2f5d9c2a8c7a9b4e9ba1f65ecaa08161834b715dfb23f95f82f2960d6826ecfca027a8d4d4b3d35f286a1d47a03a4ac19ee43f00abbff004f16e6b792d08a6802850c9fc963f20644a0eae703f9e7e9415b33f2e5ce630c2d5d526abd5be46f741a5d7d9acd995fbf8b103305f0eb6fedbaacee0b49ae93b4fa4ddca9bda7f737e6c972b9e1acbb1f9fa09ad59dc337e0b50b1106c3b8ced47741046709264eca6cb28836a7aa217218235c4500b0d222626c2cf86b99c323616763442ba6b86c01eed05081d288360380061b8edadc1f3a5bae03c687078b0b02058e3f1bc95aa21b69e900f1c5eda112729283cfaa5ba79173fd48e989fd2b4ba5d63c3632d5a6254b0d87bfd2e8daac8031e7bde916fde7e930671c83869b15484b3f5dafdd32a65c7443a35b507285f4d38353441d8668645f142f83b268d7ffc72b327e62b4827aae5342a1cd78aa13bf6473606d9e0286a577a06758edaba04895eeee8fe4361b312bc818649ee22739df49166ba9284a249b8d8a87f84e2cf7d5cb1cfea847fae6f0f5ea2bc0746b8b9607e7bcf1efaddc76bb23347ca73d071e269a321769356ef6cac37941dc4b90234b0bdaae005139c1f788defb5139b81c864a943d68fef08ca684007a09d94af3dda06acd247bd2df3b8660e363d259323aa20cc8f36ddf5f2d406ad3927b0798b1723d74ed2e173e39e5a8424aac1dff889d7fa382f4f732c30e91b4061d4c632cbd456459d5d3153eb8db4458964af2b9daf8a53ee54c656d6a5ca69c429d53f218e443987569cf1f07f756d58cfbc3a1f215ae970dd38f9826eab7957ea9e1957c37b4f4a2d3d4f1a852a6e6fce305bca91740f5c20656bbb06008c79b8e6009e53903dae4f6eae0f03c68ee21bba30928c960eae25a4045387e61c141f1c4364ed804144235efa8465a4399a05756d4bde9d49d97a1425fc8140aafdcd1f725c69124c2afe075e482a1a49f7b9f2d967d295ab5cc97cb14bd3ade42e85499ea086cc329b621b348a18922d91763362ffaec7b9833ca004a20018e818d81fb1ab848aea614c4922df004d3c5e7e83c0a18ca00acead74b1042e3ecc446db7dd14df63f02601156485413551f59a00e736e7ba9f24833c1b8d3deb77e8662af70a9415c55a088fdbed0e139cb511f048e0fd0d7060f902b3ee0d21188723f4987dcc1b06bc2c216473ec00b27cb1b6642c94569d09de96f182bb50b58a2392b8b9bcd56fe70d960dbfe8ede943c5265e8ec9cc8918413a23ce8cb43b900ee625522ee3a2b6284a00fb5ec612742f442c3bee304d948dee6891319d93a98773dc263fa38af5e1eee2677c7e844d5b844df61ac97b2e1091fdc75548329ec1e3e7973d4b40e19628314af38083c9cd80683863f0012218f47b7ff2b37fd1fd59eaabe61d94e6d398a07d9b67b49a102066f0bd81382ffe7f9fa541e703a9ad0bc796499e111608e3d56cdec2a014f185f8bbab7987c10a477ae988886b4d2e1bb7f62d3bfc8765f8cdbc3444d5b4b73ed7a104ae8dbc259b7341014b7a709c7c50bf4fc42242f317347fe6f1c1178b0f5e826323e0a31644e4e00b30e5a0b1115c5c6fed3fd0e75bd9856b7d34ae519f220ae94920cb4c183752a47245a581db9814853b97338b1a4039bd3312f0ab60a2bf868f249cf69393783a16c4cc1a220434880dec98a041191bd36e637097ad32850b71d70271b291e368734040d209350dee799a095476aa9d77567545c13e90c7d3fe843593c68f3a6d6b2f01087d8420dea2d030f8a5273322f2b5e90281f3a5409d8b7bc5de9bf0121d5422e9b571104559bde51eccbe03b266f935582f4c0501080cf08aa240b666c674af11b3b64c9688ae71a3bc0d7b7781723074a1614b8dc209e16d5ed31eefa27e9cfd6385505d9ab6e7ce48ef0cba9b2dd8fa80b46c35386f1bd0dad92cd0b064b7fa5b42f2c0aaa4689e80baa6c6ad6ffd3868f10d5cc46712986680b59f5e73da11987cb0428a9bf826745207b82ac8c1e95c909dd716a26bc5997e99ef0855b3623b894f7f80f017c1d91f40483b4ceb378d18c5ba01ea780dbe8fb26eaefed5579711538503d796923dd7d8237b3ec0e75e6ef857ec52558426a65c7b87154500d8666d9bcc64f2f5985b9e5e094de10b4949f0afa96502586d68f60ee140398b5707de0ee3685ad2d39eb18e3ebb743884b5493618419d38518c08921f350affba38fc5699427cc6eadac9ba98514c07dfbc58574d6bdece17d442422e24f1e4d774ef009ac24988403eb79f24dd8c996f1f0f384d84932df40dee331a7b4f031887d4d973eb1d525a7a6658b9b5842067cb77b8c82e502d3084253e556cee2e46ba9168a5a4ca4b3a6cc74f489d51c38bf41d9a8cf68f7babe09c1ae84698922001c2204b94bfa8cd9054fa046710af12c176a3c138454f94664a6c645e256459ac4c54687d6623f61841869631326a63ea6ce89333d312cd13168d5a80ce7ca00838829d391d5448a48b16205c8526c811b0bbdef959c602a3701108e6bf78e5fdf68514be5c38353f6ad543347d3f342f0cfc05785fd0b40f4c6b57750debfbf111522b5bd9484b3416ce9e4c45c794535c306d084b2367c15bc0ddba69ec3fb35c88e12c1a14ace2b4e926eab35f387f59dd410b51cfc50b74d0cc2e75624d9427e96fbe76954deeeff560fdaacb62cfc4ccf9fc39b6172360ba7f1906a0bba6e4eec9e12e0b99b2b38221d4fba6030c3257ecb685f83e483fa51cdd3bdb593e00e26286c0ceb6fa2d156031a2f8dc7d06de2cab5825ec2b17d586ec983378d317a5d34dcf1abab4ec330db01766ed09dc4c69a0878a44c6d7f2e914881593a438a4ae3f031e29d0ebf8e87491112fde019e9a4c9900597d7adc25451be8ae392c183e8cfb2cb2af2b1593a216a7f3fa4cf6f199d06829b2e39c2b44c9f4819f86b6a5b225820623c0e4b66e295f146b0d46bd83554ccf2651ce08ec2719cde970cc53a5513b12ba1b80833698a0ca2dfc94fa90e4244d3438acc8e95e637c8d7008a6142e24af6f1356511338e9ebc444aa1b282fc0ca166dc270b4d212bb3fb5febe2ae85bd6815610c65ebda673289ca51c30bed8cef7ff111b3cf9fac8ef7a7e2b9609ea157080d344c465fdb16799fcbe24a3b4445e117ffbd57b1595e916463c0d20c37343500280288c5872377659bb50747cbea24c80ac3ccb0690d0007539878c7c17ea0a508e8288abb91ea0347373e45c2b16c493a178032edf5da08aee759f614262d8150308e5e2ea94ab131ab033e8639dec615b5aeda3fd11841c4f3e598b1c9b3172d06122c8269f884939bb7073075f6f514de620ac7962411aef306cf57fdbe52832ab28fe7f9f6c29c76e140e0d0e29a32e4d939c676981810496b7076669ec785f8ba50bf917c071576955ab0d6818bb72e412a355a5060b7e30eb1b50fd53ba16aa318bfffaa9f1349bcb0375b7c5ec086cd05c381e335b07d1b7f546155aea84e9a1fa2f7fd16ce27d2a0fed5a017baf5be296283c47a1638af6d9ec7e229956f4fcec3c870293d574521c17443a9c7fd2dc3a0d41c4196f6427c50cbfb1ee711b7ec5d6949549be5eba0c5740e8240c132904a94944a08aeb8ed09d063ec406f766c38153fbb88c0c039d34369339b029d50c7aa58b5ace38adecfa82d4b739d3278545d5ea1a4b9247943c5b93d296733360a77711f07481e4af14b7110c6541a92e448e7a1d785cf5b532ec13f9b208abe2960cd61f09d5f29f1cfae8f3fb97af6eb17141dac3e7ab445b4e42f2d85adb6bdc03d4a81faec529756c08f32f815bf7ae151e305a47d2625b64c13a6d6298b20378999c750032b3f0b769f0bd81190af99c75906c2ae98a2d742b680e2d2b8b59d4e18a75cbf1882fe58604ec74506791015490d461c010a3bd43418c1448dd2faae2a4088accdc9c4d282dc9857c83301d49dee461e8af6f2a4a045bbfe380ed2d1ed5fd63bf17dfc3d9b6635faffe6d9eed06b8540be90b4055aed276914f756367fbf567cf559d7113fafd592cb9b60d0084482db6d5909cef83eefccd3a89447cce2da3f180e253606c7c242b3943d66ceb9df95c2d0fc64c21b7aa767002de18b7d84373098eb09da6c7416fdc0ab4d10b82f862b4b65a8db85777d406a8816bb2b264ff04489fec2c24adc3efca6a1312e2e3debfea280180f6ccfbb54d49e207bc41a1e43b065038fd8fa0964e7e451f344bda862972b83657aec0d9bc235b2c846780048edbcd2b0779c6b76980bea4336be97b7d0de1b255d644e2b21dfa7011a3ce3804b639fd76f0b9655dca27fab1ffc6fa38e5bf2f8ed4e842a51ae86d20533a0e2badded15966c2652c31d017d596cf36cc985405c2176d3830d61aba8cd775872da1905ea9bda839a655b48cf6826a9013065ef24544b3182483c465c9a99bd56c1bfe21b3f9d187b9c1ab636193004c0cee8a7e567b575e2640216e39ff416a79d9906d9e4093cda53c49e96ba022ae0f09c00a02df69e0bf03a3a40ec34ceda1f3a2f07eaa16cc61a07ddd0cc7ca0d3d7bc73d8674db307260bade558679b9c5266a3062d08540eb239f90770919ca9e8417bb8c491e8985d20940d9dc8a37a2f3a5a278bc9f1c6d1d73e642155c55bddaadab0899a8750b22763db2a149408fe19279832705bae4404e130280aad749dfe62d17255046822550ffa85104208ca8d448c55393b94ab07f7c9c348dc9c843ee398f5a9aa8ec3850eb9b9febee0490c54c9da9c2e9032b8d128e094efcf9d312eea5069aa3f7e323cdf093ffe06eb32b1a46a62f8b8c9f56400cb370a43ddfd5202f769077f92aa77bcb89556b31f33f0ae6fad501a8ab662024c8d3a3ed3d4b325ee68087a07e7c0af407349315df8342334153850410d9c300a6b0cd79fa83f14c7f690be00be0db48bb1dc1afbf5bbfc920edd70f4fd01069838406206f68cfd04a1a408783c27da505afb58ac32b47ff5ecd832af82243de1e51f69eb3815d05b48c8e170ca8f3a0569124286a12e47f3dfd0e0f0098748f82dd8f31b9c2edbd284e0adcf6ecbe000694049f029575e2d913355e03503fd0d1f0fd1833d119887aaffe7aec4404e994d49c1e7ddbc7487752104ee2a3a4d4fe2646f179c455c280eae119215c865c0bf6941d1132f60812985a30980fc5307e14960c50440f142e8a46a21936e2a6442fc8b98f341523b79e130c07d4266d187084729e563e3ccbdfec9eeacc4939531f8d2ea721411958cd914402611c8107bc84dfb480637a889decd508d4bbf3f0c5494735807d5b7c631f99eefe549e9eac7b02c3db7ac1549d2712e3767e7efda63dcce12f67435c4f26966ab2b9f280a19900d7d128e95664c153638ce503f41cf27307a6658594f470950e7ec14e2787b37b4978c10af856e3c2e709088ba355559b3af2068ed9f1bb3168fd3cff02d7a7bcac37e50c62599557479c81c67e5d04f4882b6c4aeecbc4bfb951d9b316deff5e36182df4ad0f5093b83d045c798e7015e81480660a18cfff49647a8f8123cd9485ee4e2d15d28ac00e39ea82403a526ece5bbfef014934e28c1e9e2c6beaeca3b310d9ee30eb88f740d515ee4dd157d7118bfff03b9fc3c324a10ba7d62acd2e577858fe67d5a22e833b8b0c61e8ec8c3fd6119b8461f51d355fc4bcd02073b72922d0968ba29742c7d4024ee47998ff88316bbf4a5ebe556572481907d9305050d588a0076b8a3c75a308342cfe6f10a14a8e2f7e21f415e8509603e76ed025cd14845cf4b8f2b7da4106b4028c7ecb5a7808be768393ac78fd09b71283ec79e802077269fb5cd5f61e5b473797bc03ba8a974a42d0fea87daea20fd14cbf212ec6652ba32aa597bb28502a55712f91f8cf15217410a1154589909e17a490bc7fb1fba88a11982e2b7ae824461f3e4cc63e79932b00482c636399bf8c5a56859838ae9c95603eb1e0fc1ba41817644b9cc93057329055d8a9d70431ae8cb6bcac7347782395213684131920ea93575a7b101657eb8a4f5d9ee808af33327b33d7178d28ce9c914963f3b180897ed61ca8a8d6ed4bc0faaacdac23e3bc2d522e66007ca7dd5ea7c229a6b5f5297ff093185036f3ab8c505ee8fc33ae493371446e212f1ffc66e5af9ca9f6df5df07bf1b50ef76b911a12aeb1fe85d475756e5af0f7f272ff4c157f5ec2f5770bfc5f44eefde844027f1afc6c185742232a419ee970cf692414fc99998b56e19fddf69c018e39c1841c21a44a04f846bcc70aa536fc1142c8d959bc833728e1aa5125db589c3cf4e3c00fb897a3ba41f7a75f112aac355fa17b3ac63c6aabb40143bf90f2b7e79360f8a099a49e5582b3706d7ec1f0d1b446c0d4e97cf42a6e30e12bcc56f8f7a8752f7971afa52a583b97191f87ed41df442d0e10ca32f87543c6a11995972f145392db2f0ff1261bb6f2d31a8afb1e3d2224aa0bac98727b065a78723f486b8fa5397272671ad0ae18000db3d9b0df340c182a68ee045d16a3aead7169ba081d13243191c5ae05c2ead38fabff399caad24323d855fd4a852dd801637049e9b8b3b74ea71a9b6899b809cb08d49041331b1c22ecaae89268904d0920faec9f7e3d207a8a3bb492057d341410b5425a110930c4caeec587ed0aeaf8a040b9a2737c5048216f770428b8acc633a79822b0ea710fae545cf1a2dc6d52f27e144d4a80baca259372fba533271afa6ebb66f6347e3a82da2d76f459e7230e556774b7042586386826d650791571700c4e5f1f369a4b649ccb92210aec8964800e07ebade40d6033301121cf8102264e16a8de3b5af0f1f5b60b2664220b4b844e9d1dd13c131ee3ebab7ff51a6739036e3c1b02a8f0ee879221e81d7e40c8d338f0765baf920c759bf5465f2292f17e985ead2e21d238a69144abbb9eddcc2277a7757e31c1d93318192cb5d52d995cb19825a4b2db30e164ce074c691ad94f34c66d98d76ded0332c3e0896b74a80df29098c758dc70f32677046a13a52b901d681b12a366c60e7f6486cd8041c8e7f8f402505cabb1aa169d59ff71513e44dec565768ed88fd581afaea07283cec8aad561b09458041c8d18d44f64e660abc1219cfe8b346087b2cce1151c28d0b103eac6b0037a6dd60fac7ddd7b612dd31eb4a70c8d7fc9f643c6cea5041bb2dc7e582754eb6c616f1d9862aac3b8b8fb81fe7ae1b42c0f84a248aab7a63696451b826692fe550a5ce19000405d32201cd318cd609869bbd69a05897e178363c48626b3c66e43c2046581f3905d31b0d450a94206ce18ea3ff218f773670c2bfef66dea755d9c50748b713326455e2b61112d28439ca96f7192526c8a56a06a9620601f7a2140c16f99464f399f3e08282c69efa0dc1f745aada468573e7cd3cf5f0771446a13a497749be92e21fc2170cc8264c748e1bfda1160735a907079c73d4e28087466074879be9e44f991f6f1fad5c774e8a3b6f786008798f938aca763f620bc23f777320d3075ae8f232d028f031065bb217a11a5810296c840fe6644076c1be7968eefe28e7b04d7c888f6ed621fe2babe793f6d09c57eb219df9508b09468f5902bd177366438f9d34359397255d5a03c904e5901c9eb6c5ee4426bb5fc1a94bd8275a8f3be65be2dbe3a87a0cc32cd2e7b5be9187463dba948940ad53fe6d1ece7796cfb9e700fc25a2d37c7c838f9872a2426f7b247be78cbaf25362b4f73864558755d05213ed561c6b2413d041228b42013b001ae160a225a76733cdce37893d3d3d75643f7cfe73a3d97a5374138b134e93910b4ce7d4aaeb5c54fdd84bd41a5b7c0719d125957a69adfc7121972662e61878e664e8263279e9c38e0e0d61650a94eb49cfef157d0796e5edac6c7a0870b3d15be87f3d1a0392a75597a42f7d0889cb39302aee6ed03e6fc13f37ddf4fc8b79fb9a5744b40ac194794f080f44cbeaa2fcfeea11dccef9b8c46db044d696f52d6738354a29ee9e94204cbb1c39883bc6d1a19a9cc42bc3184b0095addb62150d7a4a55f4a4841f7517e0d690f8df28971915df1a1877c33e491a11a3d94534085d3f29aadb677a8da778bde1368193c7dc3b9d9273e866dbfa5ba354a1a795638bf9a30197eeb79c0562dadf42bae0c62116b8e51c4939b714af6dc20965325d3b504b57e9165412ec4e3fe305604d3b71d682668168f955807a01abac58a2ac0a3faa39abf25d074ba813475666e5b80f4cbcbb4833964204ec660763df311ce0ebcfcb4fc0d5c2a5414e26c8231a7e4408ef1207417b16a8802c5b203b9052ee3025e947692e8c45aad7a588042b6a67f08d841b6e150ebfebcca652599d3eedcf5b787289c31c58df6d9954a40887d60b1a2228cdb6f6b3c72554cc15d5b574fb4b17562fa4534ecc8f1f4fe63fe93fc26f1dc62fe0068e087c03264b01f9ea77a38b7fbaab2c8067bf5137dfc10637a9ba43b95c3d302a30ad42799f7e4ad1feee9ee5db39ccd7c2fbed92e99183e0c251d94d42eca8a6e658a44540921a51377744c6839d1edacb11c33f533617d6cf665b621657c90285915225bb27454020797a51fc3faae173e3ce0d6406d3979218b6ba1905957d41a406eeb7245be19c4e9fa128c21671c90e23884cf2554d68432f4651baa253cfb37100799204ce41550496aae4dc91b76ad0002e43f89e2d983619ac22cca54ed368fe433041fa434fc5f903f903ccfe4270d1bb5dcc034250a06756f523cdbdcba3485cb26c0a3aaab6553847d34abb91a1c270ec2fcaad8c7ceded874166533449cd6da754b67df8f555a0fbb1fc4327708ed33264c512d634ba90abea1a9ae4698aa1c8958a81896340a0c64d410da57576e6ba9ac3eecddcd824820f521d1c195510ac2c2b73659055d653145467e018d40c7819bc0aa524fb0308997d89136e204d7b4151d5ff21af74d941af481d2f9e770f6bd854eb23638fc23cc02637016373ac4ea15330e5eeec48fde906bd8e1e3309aeb2965ea9bcaa66368678a0f32254f8fd62c1ce7f86340741b9570f233b6e63d8481408772f009219a9df47a445230899b37a3cd90b456edf0bc942ea684c0341e382efcc8c289f97019102ef5b660e250c5e488d86a3107cf71c6932dfe8b2c59dab0fdc24e15196d9a5f848ed04afc48b5929450a6238ee6e5075722a3fac68f922968647330040373a7729daf3e7e2e3c557d7245752846b70f4ad6474b0a85f24eb49008c42bdc6b66647992f870abc685c82fbc9080236f66e9377a2ac24bc0424e7f1baa89c2caa7308271e5965e7d679bd29594cb731aa5141e5bd287898162d9f7b05bcfc519716e79748a2e1aabf9fbe3648ed701a9c3d7264dc24db74c6ee6b0a71bfdc841d2ea9a1f1c1672374370caba691cf772494b3884a40c78146d5e0bef206b57a9d7fa043b116939e958206b31f9b432c6d63773518b57aab648a6a9a816322ba9b89ce74b7248db6d58c47cd55352f3431b36b61caf84eba7b4d781428cecefb61eb99a96cd1102cb51cddfab989edb7f8f742b8c2b4715d5bd6a0b282553befa527480147866e58916fb31a453ed465ef867da388c9731e987b9b415f564feb4aa3184cc1fdbc3efb6f8bf9333af732ae46c94b6fedb6102ea12b2f89224529bec83d603d8f7f0906b7e94e990f4bfdd307e1d69b3132b711a52e8799ebcbc7259d1e3a89e166111284b118d673077d031f233295c3ea139a03f349b30fac3130e89f5fc3e7716638c2ef8ce78c435b0c61df2a982063ac5f1057af89c84c6277bdca5d4fd889b18ccc2faebd794126e391b32df612d0a718707e4d37bc133e5c0db0c0d8d076507c65b6ac4dcabc31da308b0c0f3d626d000e2e05dc8cd410fccf22a8a160a5079633bd2b3294a23d843c5bfbe430c6f3d76ed516b2b1da4fec0955ec4668f65f42474788e9b39c9b622861937833a53c401bc6b0121bc616da44d71a5dbca7a2769b5fe7b8a21b73f2abc78ae1fbf26bbcf9517c4ba7228e814d26993cbe0a31dce4dddf705a4aa9198edab2c01323e51fe2fcaa3262825a9112d9d0047bf3716993f6c2d6941add859e7eca93de04b55dd83bfb94f0a555e18a15d997e01da0a4ac4ad68bd374b0f9708e3afc2e74eebc3ca51ccb6dc6c693d052a06c32b33d12e1b06c23b4fbd6881b4e87bb7a422c73fe236b40043e782a973af4ccefab1e191bc7c74ebe8045bf72432eabddb237a47cda91eadf535bc0638d3329ebe0e8fe85d18a48173501a93661996488a947da0784ea515cfc8dec5e059d46e5c8fe03a09fbf17edbc723d5c9592bd3b8a70bd0bdb50548bb97058c05c0d70483744bc40c8dc8e069936e7761197a3d32af9e928a6c4f9c06f9914542b2c4bb6aa780fba2536ac237226ab7e6d10aec782535776b5d7a823351e55222cb784c2e068e65fc234366272bd120212f6f6b19bd04976c33af93e364c1115a9c7f1bf4fa8694d107e7d8860af101ade09087e6d70fd8c91adabf94beadae12b6e14c4ce904ab52d54b9ca8a8c6217a146a83ce4078405ae99bb2f1f42eba2a0850b5f71141f54e1439d7ffbe20564027b7bfb389fc1bd900846bd7c18301aa656c53dc2f843d9c74250b4892009914ce758f07f4a4eec0fe2152fc12ac2c0f2dbb0b4cda9aebcdc48282d12c39fc4fa40afd298011b5190d37dc61783b056a3a4bcc14b51b78b88df8f1423b7268ce46a60ce97c08f86e6e79e00dc494d73e14e2073dd11b7f018d48e31cc466536166eeda74a10da3e76fdc0e5fdca28409ead3163c4893c569ae42c2f8ffd288e723bcdb68fd7622e859fa9d2160b442a5aa0e418aa2dd1207a11bebf05b6522a2f7e8e2250411f3f051bd7fb489bfc32c1332570ed123a9d305bfff2feab46ca158cbe39cdfc0a05864320d6fcc3df652e922ae6c4eebc66ab5f5460e5e5caff2619c4e049769f2f9188db4957d2aa2c1155494f84f2a6095fd3c75dbd6df3f5cc454208d573a7d9bd2c3e66f95cd8d4b185c80535bffa1ce4c6420c56329ebd6d342ab540709b7b2809840ae8b0a21b591a8d33e73219a7d8de5c6b35cfe3c71b45ba2e036b192c6bf0d5a32e2f73bd1fb3b89a104a3bd4b87c16a0701ec949f288c71c6f7557642436d9d4d6b139c575473adcdaa82417006eb0e2ae531d3ae6172aa1e3d8195f3b2fe0404e6d53bf2aee328294291438b6a89beb78aae21a02f7e11618e01f02256dfc02d1897ae3e471e7edf4bbca55ab1897b838a956f66a0af33f7695e3f7d674af3dc303d4e3ce69ee30ada8bd91782bb53a51f2cb83f71db2fce358a9c7772634bbe8313c8d4484c6efaa38ce52e37c1eec95b96e4fa374694dd31297511ed6c0eda1aa524c820040519384ab8524464110925b4884a5b8936260e67672d35223908daa2a6f69e0bfc7470b5d7c5a77e2e8733a33128861ab39201a12fbd2d2a1f8eae660e1768afa15e7f0f80d2c5fa707190214d1b5d8be85044297e0cf1e988ae1bc4bd38ed016dbc8c65783cd80a6cb0821d39cb958518747518bc7ae9f57093863fc3f31620c0cb18ff8c1c0437aa3a37d38e71dcf72fc21e4589a89362fbf37216baa50b6414f85773f84d4ed0582c91c3248acb68271390c9add5798cab2d75ad1824a9bb5d6764f4425c19b05156e8e235efd5d27421f4326c67afeb2823db322db67aa6af6e9e1e8bcbf34aa405292462c38edba5db06c67a815d25f1b282c0ac50c39a3fca747f14a487149a442d09ff2ccea17d601f3d858c5f7847226bf428a04faf313a53e1e229f36457b2ab8f89df46514a455536c3e669b0538af5117dde42798c095f97a24992e3e5adc2c738a3c37cb6559de221d728d554d5360ab9b4d892f806f300277476f460b8aef5ea49c97583dd85315c5efb99a3a9f3e094de33c3c50df906818549491367312a39e6404c5f9345991115b592c203956978531e4114546ba59f8c6e610ad2bf6738b88da384f48b0502cf776f5a43f2c68f5d3dc176e2bf35fd95800be9a78113e6cebc8aaed22fb3297ab8335e00581c42e5b79c148248f01f1d7de0fa7950a65efd84be595e45d5d05ad8192deec82cbc54143355dd926a764c88a051c9b8bf6fd9d8b7a73e089f058407678797e7baed7252b0153f6c54e68cd5efa240028ce5d373741e1eb4b82616ca2cd83fa1a82e96d0f92df283fc00dfac65c920709c41825ab2e5ce523999805aadd84c22fc6754fe375058521b1f505575ae0e7a0fd09eaec007a57ed8901a86b6462c545bb388e394725f66f37477ea7dca8ea5e18380cb9049157020934560a3479019cf72571097f78db62b95f0b36a66268600821486c6256840221d86a41c8cca1f39d873b6045efabfaf9c855d4b5516a42e4f056b7373e3bf114658ec6c5bd0c7cbb9de9c333f55164b982b28d4dd02aac79d4978c214a3c02f1a3b6198c1576451e884f132962aada0fd0bca589c01ac33e48293dfdd250fbbfe027172e1e37ef5f0b0c752301f7b93f0503362f59ced774a89f0c7f6f07d640946453b6ecb1903bd8368bcd2ce0efb1c42fd0fde88fde74e3bbc98d93f671471ce3904a1723967745713fc3f241caf4f4be11e235fbeca00ba0a471b79ed511808ec93a7e9cb0e12e0cfa116cc1f79b94501bc6796071932d25207d8553c2189ccf060568b1027cd17bffae69c0d7c3e78c5cc4933291f5c9089f17ad270112d1cb38210a2f0e03e6e6865717a7d32c1e5216e56e59d36b84507cadfb59b2b636a66e8a60ec7777bd427880f27978a7072c17ce71fc40adcc58bf45464e8c1ab7ece23d2e3eab4b40675e40e21db9b9c938bee8ecb88384ff597dceed6d2bef7994dbedadfa510ee5357059a25d1428a374a5505800070c25d03ea52e5f4ab11cb47fdab41a6fd19aa79311f87b7399f1b8a12c8f23b478f10d1b241bba6199d6df4987a63cc417526c7431ead94d1fefe251689945a255c4777cf8327cf54eaf9ea9a548a4b0bc12cb8096934e1e7a8e93080984cda98e9a5b3d5394cffb949f759ce77b36609c75527869ac1a17d8436eb376add19864d95b516a70ea8e6db3dda92268f92e8ed68507f21031c51401c442c9b435f331a3d5f979a4be1679fdca7b25bcc255e372dd2b7ebf7a86eade8ebf3e3691b6bafae6e93fcdbca45130b39f53ec48860641691f6f8e64d379f4d916e99177db259faad1f9e59c5f3ea5f40f150245b279131ba578bdfa9c662a980cf2264ea067eacd707a326c6799ad4f950b6f5637a5061be89238eb2c038c557ab2aba7217c37242be406241498e23460c0295fd52389455d069a82cda660691772181d1675df11479982a46c2d0e52a8c19ad594014a1ff13123c6b5e8942d5bcf083a4013c120da26519478e0ca2354450682afa13d158ba53e0acd420aa41924dd31522e4ba91fe9749498b1245443920e0d0421fc915a485f3d208754890e20cd883d1d8a0e64effbd81430943e27802bf814bf163b82009f55f17ca3388e9c472c952e8c938a5b25f3cd33f6358436e96d189e0a9b1dddb41724988ae8aa9036945f563542962a1d1df644d9af23a825b6563c4209e9ccebaa9090e71260282b50eaf12a3ef050f9c69dbfc89780f3c332fa85c13efbd3fe86feb2a0634b4ab1e6007ee2349f6c2e664ae19fec7bef80697c794c57be83458211cb985e06e9296a06df92ad20d23c6f4199c909c921af40292da228d7f868a739f9aff10d729eed17ea71b6979c7c9259499478cb5310812856ecf82acb4ae82370bd340ea28431f68788b1c36bcec09f660ca8dbf81cc54336f32f23804788b600450dd541d3e43f9c7b3621212fe27d98e2e3e57a762bb618e9e42edb05691c52511a98a0505a770f2733d0a1e0e4dc04e33715a31525fe2c82c147a6c7a377b7f6ce184d33c77dc2461434be97f285a5388196c2829ca3a2c68c6cd0960e520b790f8156c330e87c801e03cc5e4a0d11377dac629ca2a68f74b3dedd8329ec3b280fbb5af65203dfd42d9e5586bbee88ad3223e575b9abbc779832d506dc884ad057150aba42186b7695f97b75b1d057d8d66e5d91d447d57003320a9f2d725880818403913c1a483be0c5134236dd4556c0c3ea72ada6b28da8975bdd9f827ed4796cdb761d5237cdf7875719c1119894e7b3d5658a3a15dfbf11b0d4ef1b9ae9dc30c2b627281a6fa21daeb3ca2f02433720bf77f206f878c8eb3bbd440746dd537d7908896deb85ed0870e0cd801dc4fac0b59d63f8b58795bfd11f0223b19782c02e86613af887f9ac4ba9be754a2a59588bb34e124de6572b55d69d98dcba70a889150e639868fee6d113213c1987f71c0db9c968c4185b824bb969d6267598d0c31cc744faf5faa6d04afad0e538bc200d1a47097b25555e134a4c21bf67cf1ffda1c4582665e1853201cc14293f5b995eff0dda0b67071c82746677c332e63e19c02927b048c6279a93220a0d895537571c3a88625b51f9825f677437d409891ad85e2bbc0140fdce2e4a5ca561658b59bad5f82bd0864e3da621f08d95e2b7b4d017b0be0a9a3c181a1e86332648e7456b0b7508c7c470d51f5c18abc18936d47306a6c66324fe85d736d61c1c8d6ff683893915112f60c658442af76a2ad7a9630609db27f76bebfdfc97505b428e18d560d33f30bd6a82504668ab04025e2332c303ad2de6f3dd291c1a9da694069ca9492f20162e03d47b05ee8e0acc9e0d67befc8da0c4bfd6c429994b06deeeea8204bce3a66dc53e2831420dd6e55d3e9a2e10f765d95688431cee45413b2fa20fa606961b5280b9947cf05901998e9666691dfb213520862ea8d34513f4f7e8b98bfe43f0cd2e8e02131d1f571b375b7dde6c0e9cd89c086b1f211f2a7231ccb02ac7991d839b8f13c56e16aa7419a2dcb6570496c4cee3be78d919d5703a474a68e0af641f2a02b43d569893f94473335e558e4b627ba85b27d8b323fcf114d1c477739390f372d936ffa3e2738f00790d89dc248fa7034b859d8e579b7a03531d8de215265bab86cd1479827d23b8383fe5f3d82ec57ecf6d423a17b6f20fe2a98a2aa71dde7aa46da5af7a2506152647667795335284927d63c75e610ca1b902eb1194d96dff6c7649d156724ef6425ec099f072fb34ee6444326f947a6d78d0e1830c319d2dd64573d8a2a6d76fd089f59f67a54a1c78a652881fd6361909013698105dc0f09030c88f625706f921edd27a0be7a42055ad914badc6d648f7ea4c2094c0a92ce93c8146f5b8ca30f60183f4a2ffd5cdedec86afc8b7d0067b7d4fba3eaf3bafadccfe297a9f53feb9dcb1d8d5d99b55d8f78f45f8caa5475a04407d504b4108e70f75ea39770dbe0c09a9cd8a7ba798987957a6045940bed84cfdfbd7537d8d8732ef19b460e3023457aabaa71553161b9d178c772af01c4982e073099ea25bd5f1a834485de6f906815790008dd09ce4d66a4b8785b816e6292035a70d5bd544d80c8fe3bd38dca75d3106da5ad794215f134c184acf7a33d9cf221c84d886723c7a3291cd303cafea29b5c30145651070a5848ecf0a157df270c75ea7330ff2954342884dd684739b4b8cf70a45e9e605e6c102852206970dcf2aebd9373785ff7799d8bf918ec0091261ba363e0d4ccb985f86f0c7b715c7c30903da180d8bd9bc8bda59449cacb095609c109b55455935812cbfc5de795ec3c873aaad7a6be4bb4d0011a2afa0974c4e4db553f818e8e7034f46fa04b4b3f10144b0bb63867f5483c40c7e0033a50c4d44a1186cca3154106dc8c76056b69c789da12ec623e9736f501f63f9f23c60ea88f45bbe2f8859c13cc6e4802099c5012f403d717ae8825f8dfe7382c69788c0ae9eba8447e95fd24a68280af22e68ce7f87da5d056ea76fc3c9f9f775d764146514e04b06fee82319dc2b8636a5461cb5538fe3a4cf24e00c9d268ba3f1cece73dd8b481554f567ab00cce0060c76bcb6be6f08a4afd502ad9f62893859572a85a316e91b13f4954d145862a86f602b38a51c9906999c1623dbcb098ac4e1f588fde08787c600d843702ea3d2379cf8922eafadc226e923bbb49eecf9d590fe6f1dc2456bc3e60489d4401709ac901a0f6947255eae4aa548e81a67c4aa96c77a794ab522757e114beb2019040efab7dada9731c824db6cf10f1a4b16f61b01df2041468d0a4903992a350da714f28b590f39492422f77cb83c15417069bd1442e73d7f40e01e69dd151c2b9677361956cf0084fdb6b3e249f7b9fc37ae653f80bab2d0c6b3ca3963b86e6672c41e3b9f0849f41cb650c8cbbde7fc532026f458f7c52880bd036a8edd68c59430566002c785478545d01821db071b3a2cacd329e34b3ae7613c7ac3102f5398782f417b4f248a212ea39ae1ec7dc4c84f1e4af1791afb705ba8553c73ae5abf79da144c6b59567e757c4e2fba8089a121434f43328c8161454fb1914f4f3a50d0a52f2a79f41413d4f77be035f01c018b2aaa9c35101c22840133ca43de41924852848cad0cf2029b627fd0c92e2e4679094257f7f064951f2a59f4152644fa73839f0e1f9d19b902bc755c31cd7577f80c3cdf5592d74845cdff5c1c7f57140408191ebeb6890838febc3600da9124840e4a2509ab0c38eebf3c01a521f6441e4fa3eb08674085d08b9bef995a81428883e13ad09b686057819f9b83e15b086dd4303c2e6fab20db690b9be13584305dc80c4cbf5a16e8064e6fa568c682eca44c9ccf5b18035a44e9420e6fa5ac01ad2265aecb8e850137c30737d2a1815cc84b1f560c8f5bdac5e567345b548e2c8c7f5c1a4625230313133263711571c01737d2bb08636b4016480abd20e4efc644c19b49a4a1b1e37d1842b8c5c5f0c5843fa8318c8c0c745c140e2e6fa64c01adea21ecc5cdffcbcb900238b1d9990ee300410c866884e9630fb710084df0ce801db9dad7c54b71dae7c747b8eebb3618eeb8639ae8f824d14f1c4c7354b9de3ef26cdcc55cbfb7a8e73b1b48313a718fa0c993024e18e13c330bcb6ce9c78908398abc3e9ca691b6ca782f8e64c79e3f6d8bf2933fb252f93a447d911998f4c4c86a7c79ec70e8319e951e765761ecb44e911ff903112bb0c19237d641891491e97328e3c7b23c6039ed88d98cd8aa22c6ec464c47ac45386ec7790fcb3613ef1904b94cc4b94ecf6b8c9588b6dd260c756d0fe7e292354a26444bd45e972a33d7699285846488b2fc923a92fc9980ca39fe1c7aac8ca7fc0c8a05512c700914b32f62fd98ecfcb80cd1efb67c30b19468f3d859f154cd60d208698ac1b3b3305d9c4c13df6146229f8d496751b4334208e3cf659a6d0f3d8cb14668f69a078ec34b58983e5b10cac47ece5ebb18c91d78971eb3146b555848ce115495cb9c0f9f51f9c5fb188922231e2ac24077bec3f6e112baac4e96ab194b15384144365c559c9164b19afc74ec6628cb07f36b471b36154493246c69a75c91a09a55b3130f2880f4968e412f287a4914f481f5ac5c2c6adb6ac63b761545bd7b1cba811b1e2ea07e7ea64d8ec15573faef5ebd3753b5146ad92d83951c64f25f1b5a0ec4bee15430060606c492863be44c9acab44cd6e10c162438f7d969c111eee456aef24bba758279e629ee3bae18956496cc3d3cfc988440a4f453de2d3d1877aa1747648216aa74714caab7be1a7a34f47353c159d8c4e472b2b2a2aa81bb14a62c7f873993f7b873768b159ec24bbf15349ec563cc978b447ea30d5234c0c0d091ea97fb012452e65688f6fd09af539f61bb1dab2710341ff28f875d7da23495a7b65476e6907d9c3715d873189e479617c2938d99142ed4b810682a59e52690729eb3199547a544a3b4859cf9124b3e93369307964472e31c03e293b815f503ef9a9b483fc5090a170a4478c2aed2093f488354093294226b947237d7ac4e48c94adaca44094e73989442291cafc2b25f2a7c5bf14d852da4132e9113b296459d2237671a12e24ef278965049e9cf58859585a5a4a3b5c5c4a3b542c2a952ab58252a94e59a552a9a84c25954a6522639306fb8d9fda5af9b056bcf17363565b2b1f9ddb1b39ae4eac29f9e8dc8a44ac77e25849eca02dd793cb8bca514c5c5e5e5c6cf404590dfb8bcae5c68e9166d52c1ea37c50b34a62efd20e1c548c4e2e91b24a62bf21e95349ec5fa5f4642a3df09e8d5bb3721efb676ddc6acb865025b163cfc68d64e3c6637c1b423d624f29916710117abeb421f4d8638662889a55dab83d764cc66cdc9a55ded8b9b13371d0c737623242646ce2f01c9732422f63eb117b0dc9656a1eed49623b9679429371d22ccfb1cbd86ec49a35d6d3e78262f285a91e572e228f7e974f6806d2503528011812823d76d4acb6ac0bbb4b088121c084bcd9a4c1644fb3aa0f64cd4a1df169962909396bd68a63279734ab62e1800e6308d223f696b024973c7696b0247f1e7b2a2c4fb1c7be1296a79fc78e0acb53edb1d370060ade288533d85358aa3e8733d8a3c72ea447eca71aea55513d3ff554d42decc2fe613fc56a6bba6ca81dda632f4f47b32fb997492c4f3e9fec4f2f9f77f1a92d9b493392856a6bbaf02cff3cb6a1dd32511e42c93acae313d1e3f2b3f91519c657de0e7e60188310268286605e5e4c20c1877b55948c7b19ed10c184381dcc1979ccf13c0657303ef3d37bd8189a053af620cd2a397621cd6ac78e1d86daea1cbb0dc6363faec3f84ad451e27d1d92b21e4924cf4961108f8604c675342e81a217723b9c11d86327633d62ff42b2a747ec3021296b03609f251cee55491ca3931b3b4a866be8117bd8579e4772940c3bea0876940f76940d3b2a0a7654122c23f4d84b1493c728da6354ed310aca63d4ecb17ba496116a56398d64a260520dcd2263988c3df6398345196edc508d80268a607bce412af2744dd775eba5279beecd2ac6decc9379b2e7b8cf869ce315c6cff9ed893de7b726d2aeecf5dc6c49e6f273d555de9fe76e3e5f5eda739c0c892fef93e71c77d49b71ee2d69568df29c7b3df8d263f21c165f7a4e9ebbb089c3b3d91cacb5f6044a1491febe38a5b3a73f4f6935210a453c453c453c453c943609410ea678c2de0e5f5c5484afb8dd15b6e85efbc4b557c4e0052730c2881fc000e35e5b74ad114d9a28c1b3f384bd4d8aaeddb1b749d1b53b1877dc16f6f2c03323aee58676ec6d5274ed8ebdf6165dbbf344086ed12d2afa00c8418182483eebdf8a9729315e4825ad13a1356cbfedaae22b61f61baaf8c7812b61464d79d085d4167d11a139e8d1eb74f4d73a571a4295781aaea3c4921f994c7e12cbfeb2755e75f675fadf0dfb3569ac835fe4945f8f327164b7afeed5d55725776a2be5f6e4d6fb35715cb7ee5326c32a55ce352fe668bdac6ff2395bb546d4a37593a7c23ac5755bbda844cdb255565b95a8c917c639ab64322e301194900a7125af9fc21a0dd54cbeb5b7426e535d717e4943f7d94fb94716911461f1945f202927a2e48a2767f16f967cb088b39227b1cc7ec53286bf9ed2516f1844f5599c3d7e9e0a672555c4129bc21968a95f5f254a2d29a70fdee6fe6edf47a90c13787e7a6581fb211dccaa7497e8a79b6a90afe5b035d5607a974a610cfac4c410a96aec2735d52037e8423805794e1aaa934b45d6baa906d9c68098cf278bc27305b572ca2b2b2b2b2b2f26ea3197b6ecf0ddcfcb9907639cda6f96cee73bb80bf4efba15bfcf360bcc29ff6cc90136c0c824afb4a36b01042fc92fd8a51e356fbd23398c0d306e0b392e9300d6bfb06512c03a17a6688d66514f047b24d18a5f0445eb8217f7e25eaf17a52febaf4a5ae7fc3b225b9b00dbe4753b2f18b6ab8f1c81b9a0ce3a6fdda93bd548b3fa458f7aacd448480cd4c87216771f6d28e6cbdeb91677dc249a46627c498dc4ac86c8d57ba7613725f83b3e562472535bcdc324ab0331c4575fc1d79bda9a2edb2cd1570d3d8e5ce4150bb644b2f261451cd091ac7ca8bc1557b3c7cf01714d252b3746eff44e78442ea9511bd1a366e1f4586fa614f5387f67a7597602cd682d5fbd7f4843fdc592233e567cd9b35911be6c265f3b465f3bb51ad1842fa9ced7185424f458e1e4698e72d93b469a55bfd6ac58e26b7bf59a8f14ee501769c7089186b501aa935c02992416f1bc5d68f7441d14e0ca6d80ea5fa8aa64c5f1c40fe890e322b90d917480c80e453a407205b8725c24241d2039124ffc4091761b5cb3844312895057fb0f7858f065c7aa4fae5661262b3efb85d33561b6d4e3fe15bb77268dad3f4c1aebdc5b28623fe05bb759a15b366c50a840cadb0a1bdf364c05452628643a7ca9c2db52f596c29a55d61f62cdb23d84b7475f82b6fe307170dcbfa80b86fbb2e94eef88614bca7d89bfc8ed9a2506c82ced9ba1834cc532a6b1add5d2c9715d873189e479497efa777d3e102c954c26153c1bcce08e49834fa895981da999544b0b6d616169a1a10b752a4e8f06df9c29ebebad7f2adccc69131afa398958289fbec2649dbc54c04f47c0cc4183d6b03edda659b9d2f0529cf5eb2b62893b91c647853e0769604c452789555461e2a89cdfd0849a2a3e69d01c5c0e6fbdc655259c557e036d681633b2430eae72fcb2466564871cbeacf95ae2911d15529f9026e9d13a15aaadae3569bd661cdd55aa9c1de39c3dcf2195f568bdc8abb88e6e18c639ab54eea34a488f4c1aeb2afda46d3d5a5711bbd6a375502ce9df5258a650e23a89de12f1d6bdda5b2f1b765f1e1847c023cc59f4b627497cec8ed591324463527b6acca8088a6d96a48df40e911427342aa33d47462f34cb09e56fd450a74e7ed27a9c6e65b6e7c84808ca925985552353886a4e8eb4ac5f4751847e96501e0abb05994f6ec05b1ee9a473c65af026d6d28e9a49a3624ac276cf009892c8539cb6da6aa25ea9f8516ed6eeae69c502676f27a28ff339c385f4dbbf0f3c42e6fca3b4b95aebdb9eff7d6ec38f532979d96f89e49811cb0e3c3e81b73c7b44892591e79ce420fbdcb4ab0935a43e4a9c93e6249635fc384373ac406b54afe3682acd383856afbe82e7953456d2e879d94fa76d5369c30fa96fc59b4953ddc505b9bf590b32f3dd5ff1962907abe20972895f47c90cf48754315e7fa7b76d169d9dcf108b5d587abf7870ab1ef9abe7b7e1f534d4da3c5f3bbd7ed38215572b17402ff90f93ab7869d302dde42aa2fd40cf4b9bcfbd4fe4d1ffd9a8505d071018aac7509d866eb5d056f8489e579f59796ef21c1718ae3c15bc70061fa09744223795aca0a8a30d507dba6c1ad7710423cf1eb1d88574cef9ba467c73a6c43723dd52a92a8faaf64cef295d647334bd9f740b885043118ad246ba756777d63cdd73677d64964468c950ab8622a3a369d43a4fba45633128b128312949ba457f7e96fc30f971d22d8a7972cf0bd1233a41ba458d8034059a65f2e93058a059ddb9db6836dddd5dd3ad8ea9f8a4596b418c412026f4bcf5eb435094e0f903fc84a2c4ec29ad9e77a5213b3ee7411f74cee43ce873b8568bd562b518ae615925ab635c6558660303525bb5b62ac639d7298471ce2a95fb38d6d4dc9985c56acbce7e542a98914a95f32c8671cef4e7abdb9bd1147b53a9a85111eea3ac93ef2c6716bfb3091486ce57bf3fcd7af9ea77e84ee9d6079b404b38bab6af1c2c0c147c7985be926661e4e0cb2be5021571ab9e596ed85fc3313289565bbbb6b4d0164a733d8765ce67ca12cebf341cc2e2f3d2f0ce7abc3f97497869e15d92e96ca5e22967f12fd39c3bb3a0e22c9e0a57fe7598ea951593777519505eaa78fb29ec9145194e9e9d452c49ae626d2a65f2157103f54da876ea5488f5558f2cc3874da87d1d718fb44331f2f512cbbe7a13d556f7c23b19a68a99c22e4a8fdd5027a523eab19bd215f558bdc23a1aacabc13a5b17e33a59e733eb66b3215c6dd5566d2fa31dd857b7d516f7c3c5acadb6ae0d5683d16033954f96cd5e78e7ceee921eeb15ba3ff7a6b2c97756557906d3d1cd84db17e0271013927415ca0f7215aa2529442e71add6ac89c38ab7956ed980468f4dc59b6655b126791b60e49a644a2eedeb657566daf3d924fbd4496209de34ab82de38e710e326a7e332f525fe89edac46f926cde671725c13b78ae3dcd0c9285fe1a07cf5c274a1a8ebe4ab1fd47572ea3a895e499d3c5d39ae59c94a9a562c983c3b909cef7c0614993441719266e9d9d41589d4df82d4db0d40a0c5cb309d86df249cfa329352ff5110f47c058a3cfac18f3e0ddb9bbefa8d4ebfb2a040b774405a50113c586d85664d5a10cf57073f8f84473a46ae5e8edf5e67f52e9c81bed569f0271796b39ef0ea46b3aa2aa6fbea372d54f731e39170f501edeb12be3a581d77b5d442c7d5175cc721c96b6b62c7fe953eeccd34cbf33098c71a1b155648a9bc6927f8794ec3cf235df1ba8e8ac3d989764edb8317d6afe64b9ef7c93dcfbf9570ba502ba85048c9e4345411cb1ac7f939bd9c260b98441efda69b16a47c3b4e0c426a4ba7ce90f0e2db6bd029c19cfcecf0ed54a75b2a98939f9b89359d2011e55df061909aefdc03a56ad4018ae367441267ed595bb4aeaa3e7e0542c2af7c754ca3879c9f8859736d91747c98165a81b191a1bf11ddf68c78e3acf2b1a6b4c1242732109c1392e41f19c501c535d5f7fbba15c6362a40b1361c3819330ea47c6946bbe131d78dd66958227afe17aad0a4f569bd73417ebd4eb3462ac8d3bea80b3c779a6375167bfbd613063e24e51921dfede21426ac1790caed66e298f9761c204318af2ee73e48beba5ec4bbe28a135da04ef2eb45945cd1c774cf8b5027792226d5da5271a20aaadabae9ca753364a8f3cb2aae58f03bcb2aea106dbeb469b761714000220b22ccda0dcecd0e35f99142022f7c7c7c7ca68f0e9fda721f1f1f95112414445f870e40001619018061a8864692e7100cb54e22dbb661a8b01eeb0b12b55a6d55a80ebd05a6089943300c4918b230bcf80c5118ab9c46b527cd2a2992afce51241387aa46f5759e6cc83269a87337b44d613447c310c4d0556d914bea43e39c74734f9a83f22f517cc29b8a14df9c292fed2d7e90a527dbb8f52e74912273de79a99a380ef0325b38aaa8898264a26433696caa47eb1d6763897eb28d8d0a3a62a0a15baad90a3f2a28424373caed54cc4c4e5d9a5dc2fa37a792ee30f594ae3ca5e18a76b8a21de6a72e4f43d5d36ea7dd21f8b443d4d3d55d5d4f3d77bd43cebf394b261f93c63a044a4f6d08a1a692574c968e2b34710cd516c9ad116b0137ca5b9bbd59c064f598a3f51a8c73d33cf4b016c75a4c9120db581c550b32fd7eec79e270e1345b2f50d2ba15c2b8c55b2fc3b7e5c4e2ad972f3893c67a6a2783b60ba3d6afcdd269bb6fdd07cb0b06c6c590b53a7d9ba66ccc5bb059cdbd3c1fbe395372b4bffed5792fcd2618aceb3ccee3381df5967376e9ed09fa754a8f7c94a7c9eb2588734a05525149be5ec190f2f488c187a5bea4b05212fc377feab3f88f8248f895d7182bce2714316a3fa18811c4d370c589359ef579089722fee3e8e4aa6948fd4ef51d4e2858d0febb209de5607b2ad2d03fa4fb0cd8ef5041fcd78134048ffc87411aa266ff91c00e57d567d00d4c7c751aaeaaa71ebbf756fcf7818d6d0821cf60ff3a37ab2d21951c6272b18943c6fdfcf5c9f9fc7521772787eb17f6ed340fb487599adccc9741dc2c529010d097d9d425d310951a521e1a0b67d00d434f4b3c4acf89342c7dc94d5e4e1b8e0bd3366d346a260e0ac4a4b97e9d00b34583a0e4f52b962f5f52988a134bca821335c197357f27cdcd266e8b7c5f9386f34b9b3858fe3a7787d031383b9be9f13a5e612952feb2fc9d7f63605dc8de8604922fe9cf5f6c43c2c9c51d37335ef7d1acea05d1539ff1cad1b20e98f07081c41286e49fe26bdaf3db003ba01fd83f47325e06ed67cad3db10d467497b9eb600ac0e4fa91342b839f14488103001c35553ea0304db67a06ffdf57abd3ece4107c92f7263d0a9d7eafdedd86b28438b41c0f6761d8d415b6b2d498e2bc618d77008c5a1aecf735c363dd29e21e3a92075eb331b3cb12a007102830f0a34cbea3c750b38a057984f7574ea2d48b3265012433cf51884346b466d5117ede9964e29899fa74e8f744b9c404a44f976dd348b7a0bcdaa4b3c95a1faf5cbaa4e63dfa517b8b661e981d8e32097e8afabd0ac0b9676556f5a6892ba9743ae644fe6fc1b7bac99a1452e27510c419a861aaacde1a9539d6a2bb6314c927a3714112cf92a12a5382386d431c6f87601d01c2d92768ca611b954d1d94a0e3f467ad0020e87a01da2fccbcfa01d68efbdc89749b6e3eca23e4baa49d38eb5c837a20ed57ba52317d98a48563eae97aab0080ed73927d23927ae7e709d98ab9212cea59ec5a8d151001a5511a186b6acab8a8b1193352a14eccb177df17d6962c154ccccf5ea362f4f4806478e605a34eb027dc3cbf0724d9f0368828510c419be9d8110516cf142520031042d7a8082891b0abad0a286d7bf0ac6b4483e2707e2207349d0414a106e781e56a4f4894afab8571480002ce58ac8d4bfcad964f0a4b69329644e9e3831da4abda6592f4f1d48b366ab93dd68d6049a41ed694903cad3da74d96440842f6794a7743ae1eee908f953c28d365da34d11b9c4b77b83e17c8a2b4cae1327edcb2904847312a6b1255e503cc755f19c971446635e1c75dcf57bab97d83b20d5b163f75c47c330e3b173349724f21193c44411939c4f124bec9d08a447187ae4b8198fbd87cccb80dd1329008329ac81ebc0f580fd4025d245a80d8fbde43a5aec3c7148f7a0498461e49ce425194cc8a0c33c2852198d854028d0ad2a7bbd5e26702dc00ba159637ea9b2e5da24e72fc00bda24e7771d0ccc7f3824b917f6203d762ae3bcec9cc66456e4ce4b1aa33d352f4310ef49e205bcc78eaf771c1e430504a64688d6bceca00617354bd52a2f7e389e6e8d4dd2da92af365ccfe310dd9abbdcad40a86aaa554511b23a5e5533813cd5ad79d922975388064ad1c1c4ad5159798fbe3a8b455f9e9852b35dabd56e6e6ab5da4dad56db2197b376a50c154da93539a2288b9818b75b172cc002c808202374e8a868d28322dc70c3e9757a1dc0c868094b00c3525706c32d60bbb2ebbacedadc4fcc3a6b25c2da246eed07e66a2fd78956d523a52cf8bef6f6e92dc595e39ab3c790490692c109be56b7c9730920683f97f8e1e8698901245f59a74f3c75f2b4b4a3f30e411f5e6f6fc8407066b9ac51a9541d5a1f5edf3543b954557f81a1ad5945ece509a6d7cfda52d55ada419a53be1d5bb00be7d784049834d56f58804963634ea0eaa521f2fc2b2ae9d493f6ac78ca37030d33654dffb51dae5d37c36e76734e8cc312fc6ec7a22a15e333b4d4439e3e9dba176313a04849c20652f800038b430c72a0404d6a40fe046a228237fd043a820bd5f7d8b2ed5e53a3033a8324bcd6d16befb56170b710dc20f060678f59f05027b63906cadfdb59b5839c02c016b9fb0954c5144f3dabaa70e28a659099df8105aae206201b9427fd04aaa209b68111545c6105e906415c1f7dc69dae200b1522f870395b67a3010f40e05e7a1080f872a4616f000a4208529001088e884d513224025705ea02a88b285f7a0da753aaa61454e880c41426d4c0a8411da38e4183044a38f1010b643cc0e2c7faf0a04000549df841084c3a1dc85a7e024d1982bb1c77eb0f371cf15c1542f0e1e154504510534854e0b00487ae15688a0eaf02f28208bff213c80b2c92a0b42d5833819f9b42d06ff881179728a59404da12088257d4d12d5ae4cfc3d40877ed936fcee4a2954f2ec7b18e79448527e0a0d2d040a19e40a2babbbb672d1edeb0cc8b57187005c6802a17969a5a39dd2a59dde4160659c5fb46d3371a62df5010612788a4881267e36c00b30088a503402c75fc0dbdde72647fbd45bccd66c06460392f98c788255e5d87e9f9ebd6d6e2d5ed0de52daeb2b5b88bade53a4b4d89285f1151626983ecaf9f4491aa84653ff9eaa65a2b7df2554a92afde49e131ffc27e064550824cc51e436bf4bc32502f9f624c12572c707e3baff49639b687d06b6d581f8728cc014c00ccb1c624690e9f35da67f457ce75344c69fd8a32586baf004c43e8186fc595f5f932880c986f83913c0e779f4a064da5d34aea85c5695b0e7b200a668ed22ca9e0e79d3838eff3d9f9741f1307a8927d7a0d13c7c9a7136996e9d53371a07caea4a89366bdf8745aa34bcc1c544a8b9714e8a7f74e13219aa260e6a04992a8e0a7539d3632bd03930998683a04668e205378d0f3890a5ddaf8e90498395aa035daf3a8a241034f29ead7d14f6f51a24af2e04a41302f3529aa7617b12696ddceb1cc4a5fd2198ffe2c04bd85740a2c0985b55b54c924e4e6f49455708298c4b2754a62498f6c60876b5aa8a9a15f17350d9a830a61d6686f9d6fa747d40b1adf3ee96a67e2e88a64e594523a6b6fbdae443a85c8069468c25efa545433801238918317bc665d30b13d10c14501031fa67841122a0854c043153b35a5220e87ef9b1307776d6dda744ebb0226beae7371aeebb2aedad4d5857492d6397b4b2c74a6496da839b5e9132a9e4e87e3388e8be2870a5c410318f454b1041147d810401104952f605064717bb0f7de7b4f507576b83af7de7bb92852d00141c7af0f6ae0831a144c64e143050f336f0a286c70c4b30d01fc0964ab81b75104547471a342880a5b0e8678be7beffd6a5b4a5b9dcfac823b5b6db5b52f9e756836a5a717f7b1a6bbce79f25c85be6f929eb2d01b3d5a6b6d58ce7ccf39676db1d7cbdadd57e7a39452db3de79cd336aa279760ce39a74a09f2b43df6dee6a8bd1c27c4b59c109cad9cadf43abda2b55c1542881bd8afb769f5eeeabc931382d3ad12381d866ea9f87432aaf0d36f746b245d9fe3e70405d5cc0c05668e15688df6ce7125dbaa847992dfe7ed7d4e3decf4fbb290c7f9f1258d2b8cf73bf186c333572ca7948ed263e6c6d66ecfe768ba3307a635daf334d11a82210bb9522ec4e9b17d34d92ccc1aed527a4c9a766cc51bce06a69a68e6e6a6e3aed75f106ca6419c1a56438172d00221ea76b262dee2009a42a8875453d46ccf9e3441831ba62081c765779c00620559887e9ff460c69330fe7a7ff18408160b2a18b893c226844d0a2e620ec0418a26f09083ecc90e423071c00d4e9e9c20040ec8c1565b9503a125a42448f572f77223a8e24b07c20b86aa788112bef42c04039d0b04031ffe5e4fdd6e07627414a425568bf912943f3a7e9ff0ed3540bafb73d0a937e83989b64a342461fce41254fd752527d93c4a9584b992ebe892e35248a3c97630b4292d911bc63a76cf6789e4556f52f5c63546c6acd17ec31993a6554a72c7826fce9493360b93b4255a7627b9cb934c4bdfe2cda4b149f2091387751b23cd611d855963ceb9f2e568bd896365b6404c73d059a35526ebfa8b6a85d25bab69368592ef7d5ada81a3e39170b038df47577f0ed5be54cc4c873048876a6d67f11c57292cb9c97d94dce4ed26918892167d989c4524b2e27cd58e32399115875b5cb9d0e22cfe23e528b108ca532831cf9692e7b84efd53aa522d2bceb9cf58ef990dfb278a6c7dc94ab8c26111755472c557382bbe7a81a32e165ffda02ce28a135713587116ff71729458e424ae3877f117ffc152644554d289ab1e9d5befdc8aab1e5e3b8bb872c1c55f7cc5893f5cfc65ba5ac415e72d9ee34a892cdee23e58bc4524a20474222becabeb291671657dc5390b28fa58f1166f1189acb038830f94677f61ba6c2ab972a1c553fea3c5536211253e4e9ef222592482126d3f52454e224e6a455c5971061f2b7ef217a66bac64f51527ae5c40398bff40398b5844890f16cf5ee42412f11f99458421c7554e1a8b9735319d6dc5a7ebe4a5c3f874ad884a563dda2be710ca53617696f0e42ba18a77a1e7604872f117a6cbc57fc87095cfd28a734ec4797120324425ed2b57798ecb45860c5149e72e9ee352a93ce54566255bbc884a1492721797e1368e64bc5e9564f1186ff19497f4d5e22c3e8194c7882b1c1616a7ae9515a7ae15d7d12ee174adc215e7319ee37a09579cb8c271f1f99cbbac7c252af1dca5dd2524a2c4878bbf884494bc305d3a4594f878f1ec458abc881496ddc5576ee36825ba9c1cc6519ebda4b2950b283ff904b2c3882b9cd3c9a94b45c5a94bc575f44b485daa90bab890d2598f3326f7e7f532853deb972cc96ce6124e5727a139a15df189add564d83f6f61e9c0d4ca870a2be9851ecef45873251b77079ac27e55b2ce4092cba6955db62c4ab36a596b6d7bb558f6ce8ada7a8452dbf6354a53a118e49e75b8c362ceadb5f8ed0b946cbfb4251638efee29c7eb5414df372b584b3bc01e3bfa2f41f94ff8ce754c1cf33b8fa1b6ae777e4515dfe1ae73951899fbf6eb33e8c1142568c114517ce1eaee093eb954914bc8e5f89d8f3536079864e7d3a96833693a2f6dbef3643ca93a92ea5c886407bb6a77c39b4a76dee10b94dcad4a5568b2f3d2127974181b60709dc77cf6ab5ec5b85938639fd8b35806191f3bc6a18c2832f6123300f41eabc78e3bef3af0054abeb8b6b00b8f3d621217198ba3924c4b383a57a77a7b879f4c6f1e15cfae9b5d8767d789e5bc3ee39641c69f3e2750d3a6d54e6c84e2e0fb66b3e8ac251e73cec979370be00c4bb0ebfc76b66758760e5f1d73b7ab1dda1ec7c0a15f5fdb863bb89ca171236692b3298dd5d9a661a94a59d0c504931b9ae3f549facb81ae76aa6aca5e6bafbdd662d1aa52f7de7b5d7ec814d7db746b6bed6ae98d169544f07a5ab2afbf55b2af488d90c8f376c7709c3114345a56f990cb5c7383a650935951fbe2afe7eb2a28607fdd2bedb83ebbf0610820c883278cf044ecade35c93c4a0eb668ade3a77efbd3c46deadd1c45b7c735eb002268ec0c30d7e7c8eb8ae05c1df7befe59ce079ebed2bf87ca2a88a319a98810c88b8b9aedde1ef084af0770a65110394cb9a9a266e339f929c494ec6200167b3612162b701b64e49cc724d80a0c793d71311740f286cf68aaeebba289c44f1240335c1450fb41e52d4b24a0aa0286c2012155575cd5d8ebb46452c09000f5011b401300154449405445153920220289400834506fddba264748817b51d575b335ac4cd15e7a4a10ef030c93b9f5f2685a92f979ce485315764ba23d2578fd6c91c642239ae92830de294bc9676b424914bcafdeb278d75af2d1725addb960ede7ad51103d19c9487d29e19ce2b7243df9cb9c10d6889175093da7ff756182cb2ed7a3ec60990e2bf9ce747accfda4d0b3835344ba75b2d331fd7e7bc24dc0139d1e1ef0ad4a3301a688acb3d388fe95175798c7ec66f935cfadfd5389fc678a36b6a8210e3cb29a4c2acd934c9a5cdcfb0086e4779b9310125e7af3426a67c494b32a09d2f2993af2cbad363c523fd613a8ddbbd3e73431a75a44180af1e13452ee98e0d9eabac29913ca140a8f48cb665450c95a2191100000000b314003030140c0744e28048309826122f3f14800c809a407a569889b328887114648c310418438001c410630c18a1a121020011376e50cb2d0205aa05cd95208518eceb9c72d5df8bc020229ef8b953ae2cce03d6a96c611219dd06d28dc33f379e831c0f7e97675675c5b12a04df7679bac3f8e5895cc3ea09209144eeaeaab097f7bdda176018d9140f85590827f1b763705399319c83a2b14d07deedbdab1d07c94e3f1e59eb0082eea11bf9a2b642258d4ed3a9d4de654f04bd6e5375549917f484b9994ec3c53f115b7ac6e0615481ca17c78869eea63a5cce06d0488f9a042dbf798a371bd595923c0259f545fa297cb2029d7447d661e18f9f9e4b59fc4b8996306d16c81541af23a05869bbb7686066cfb650d0d8deb5b73d32c3929d95ffcc8e3459242750aa764ff1ab6c80cda889599a9830098ac81cd190175d2bb023b8e801cb22d6e8203185d0a89efd122db92500ad385fd7a546da4bdbb420f264430382751531ad81193e108313bb28461dda55bca2b06b618634a40c5d874c47a1c953ad40564a270ee5b150a467d5a83c8a0adc1a09f013997e2942bbd1a6cfcd776c854f10f77a04f40ab6df74f252d139fff5c7d80fecc98dd5504aae583985791ae1282991944275da85995ac2910fad3b0e51c47b2d7ae305cf5371373c99dac66b085de73b1b74a99463d3e19a819b3c0c6ba51b41958c36e24e129545953cda131e1a66e3db4e0d0b30e38b55ef5243dc85604361ea05afe15f0945f1987011188db43ae0e4d991b4986423b132383a91a0044aa4308b94cd7a3cc6905fad953cb7b306cb5a8fd0eb5aa58f26ef7c1fc93108002fce665615c5c7ee1b0489cb1225e0be4b4025971c3c1668688ffae1017433d3acfa107400cb375ad5ed88b4fb5ea7dd6096fcadf4b7e9353d487ad84fc8a36e483223d30fb8aedafefffe76a7cde9b651464522fed9311460c5a9e05ad448a100560515301c261b60effe7f3ba312f69cadbe72f26ffea35c6b6ba57eb17ec2aed524cd40dcb6da8ddbb86d16ad852b4a81f0d40c9d31b425686a7cffc9d20f5e2f10649a61ef5fbdf2613ddf2a9298ca0c675cd9cec9d241fa515119746de564600b86e20b92e30ed7a4f047e29af2264a62617f0e31d050c2073b3ca7037a22b577948d3d46c19a02f600796ed2fa893ff66f1a224ed04165f17209ae181334cdebb79a39a97e58e2dd251f5c22b609c193986ca9c2e498804b0316cecbd88006a3004dd6d40de8545abdc41051a2f8ffc437ac9c3b7f644d4833fdd262289fb6a87320945e9d8f34fe9e999a9d9ee19d7d551eb4848fdda7c7e932b4ecc4108823457c5446bf02a3fff441eaa95a30971ddd35532bc20756b163e831574db1a74a9e19ab3cc686ac95b3a713194e74171962db6f000c97fc44a815bf5853f1dcece2b8c9f27b93a6e3bbf29611937c3e0802faba2bf958aedaa463c40c2f17be581231c57e2d93c352ae2e6226813f2e83173280882710d6243d60dabe6225b858f8081e2ed2be10e46ba8509ab3a440a1801b447a6914547096f548923d48e4b26b22773f32b72cfe8ee6b91e58df44c293aa638736daaa228d6eefa40ca73a52859ac83ae301837f876b47e847baf8e5c74652ce758d259b42074a2c55fd3352a0b26ffd81b634d12dc2e954e860cfaa0885d67d71d173f58e2ea6ee2d29c283d932cae1a4afe6204cff2bdd80570dbb9c45a082ac7663039e8b32d7a47aba2f79a24180186fbed9503973130ad41f7e80937ca4a09c866090ec5c20b2a11235abc180ab25282cdf248957f2ef7f98992fe307a73e1da40f3009adfea6a4c2c5de912be5877eb80830511e88c389787a2b328292f9843077d385b9b514cc0db8ed807abdb0974998cb22c36cdff7a0ffad36a2a8e1fce847216a4f77c234ac48c985ccfaf9a65deb18fabfb48e79275cf742001d6452329f004b646d6ff905904226e86ff10f99d08c804333ad194c74748496244ccdd91ff65f03dd06af1a6356fa34d388d9866cd1440f00f4fdaa906cf998dd4f1d0883118d6b903775d9719d236fc3fa816262c94f595b21575c38e82f49b3550726c889563c119527c70592f0f45a95629faed5096386ef493a701abf3c5c5554c595dfeb8c50d80a2151f907186a8002b9bd8d20a7cd11a6d920c0643bbc0817ed8508cb9b9db01201622a8b310a0a4bd3c87e4521b940e6fe41f7f26bf845784a23e1f3019d2b1d3bf2e8963a2885e81198ca3389e05e0b6c8edf21c4c1f92239cf8ecb184c38161500fc7560715d996fd0e86e92c7f1b970bcf9ca0fd739b16b4ac2f50366351b797ccb09b8103c0f6bfd5d3e120a8499123ba4557ca450f9a9b46cdb70f6c439195446e505bb139a1c05a30e796d47b8501596d4ead98a634bcf6e40943858692093d9ab0fcaf8cb1876eb53bc671fab327a164f862760664b0eea6b7c56a489a16b41a636990b944883853d53cc001b133f32b6de1b996e4a5c9195a1651bbaeaa085e8290e4e1b852ee6dca1ee5e4cdf5551089224148bd7a8c18a9185fe3498827ae8269795dc46e672c0406987543737586538acd2f71899efc1a6be6c65e8498ec9201fd84e008168f199b074b506b321da82ad8d348e3228dab0b46d89cf59645dd0af8050f90926fbf83cc8341f299d11e12879878747724b1bf741dc28c1bb1a8a8336df001e411560b4f6228b2c85d21922c033f1c1c26481e4bd114a29231571a842381cd34661f2823d91df536e8e62783d41f8dee8ae9a41a0aab2f0df3436dec889c30046fb3eb73d4d42b7493dbcb04bea059ad7beca87d9eb527ee0f05affd0dd73156610309e81206f31598e8516987a01ba46a99af88655de0bd2f5b93eea1e49bf97da9ba32e6afc43e21f3b1b5009581be29c2e4bbf2f034368ad3d0158f5dab1cf150819df5213c1ee0ee94c78436f04276324e968a6c790413bd87636cb13aeacbf8d728cb39d5098c8dcc5b92ad863044f06ffb123096712fcc39fd4c90e43a1359429d0be5e4f311f555f79a53309444911676c5983b4374cfa7a2418bb0f92ef228c2a486e51c5e1b4bfde5c16df7f6bc984f42cd9d75fe5823c37b06a81b242654201299bcbec2c9c98b7a081aa1f89ca80fe2476c8f2ae7112c150070d96de4e2a2489c6541fa5a6aff26950a6ad991995873ca858af980ebde03f092b3b8b02cf6ef9f09803f65f966d19f6d59aef718ae4a2b87bb3fb201115cae57092a5fa9690ed0b39d5f6e0979c5bf7daba4f6260947541b7313ab9e3c0167fa3b3736e5b57610fdb2995c60be720dc232c38b7863cf549f1ea9c60f1a47a52c64f9a106db8edc59f5a6d30cbb50079a0bd1801377c486e444d09e033c109136511aa82a9b1ceb45d2d626eae050b79b3c94701e4cd0e83d95391fe2624d0cc138e1cd62e3d7a869d00eb50dc71567a8ec089c116b6b18bd1bb81d7ac6d5a4e53e1a89db3bca8ccbd63249c5818770689ca353e7493429d4758747d60942cefb861684d16479a3ad0d88d4bdc7966acc157e826ceef7aae8b3a02170b0903c6734aca2f729f0f950c20817e8ffec2b4e250c30eb1106c4e2c03888aae588d3b99167276efe391c088e37995720098a1b86b4cdd2c4722bc88b02d25eafd3e575341afa910188dc1d3ba7923586f3865436da640f5403483b6d434de0149788fd0e05aa5563807ea4da51f5446133b042fc041ac8d0c81052e746f66935da635c2188ac5bb7b044f933ecd64e97f3684e1b034b5982575bf96bcb13eccb662157a5c28c3406d1f62c85ab8cf9e4368ebe69cc00af0563c78083f9d84a198ff4d9b42fc7817cb5474ef42862997dbf3a8d95d742ef1c0cb7961ef86430ab6d7efaa35648a3628d6fa5e27a09cfe85fee78be78a963ae44662c1e01ff87c058dea4e50a045be561dd0b9dd04bdaf87ea94a7d1a2c26e191e2c17bf494a9e435f00f13fe867cf116a183fe38411def54f3e0a1e01f09f8ea4ffc3882534eda340293574abe0f452c22fc32783245202a8bc238c62be8e0624bc46d0517a714373062c8f7a99a2cbdfdeeabc77428875ce60d6e3421654e343fd63b8c3b19ec83ba7ac5dd72aca3225d92d6351ab9872c111c5a3a8d5844a7a5677da7a4dc01fdb34aa9f8b901fc05d92ec7bc0c22a1f174a9f3b460dd0e3251d8bee73b0116601bfd7fce5f9cde379783c3bb57cebbe0b1c978ae2b397ff7e25e7a5d1aff022c0d15b491afe1d31fa0a6a08f831de198d0e60ce512301f4a7b7002dcf8bfb0f55243c3e05b84b6c35a01ad999fc082743a3ff981a4e7488f5f3e316522640a0639f980ffc3b10c50708de0e02f23683761cf5a8288d47e5d12ae2ea1273d4839c9fbc9f50b3d80853d7188146c3564bb5800bce4ed2e505380ef9e2dc6aaa98fa56d1e40f8d6b3d664840214de1f40da5a06d7b14ca1d5fb575d8f3811ffccc3f9cb8184efaff02a2d3abd313f37f25186b75f4270a180e5034ec35a4b51f24a50a617e4be664dac934f87ed06324aae92efd66ab2911100d891236b89f106d20831ef5ce28132fe9512d09d3c996e97c14ef03f05e694a3631ef34e03b3b33602b6dde7e9be51d825f377def136450b91b8e1955317ae186e453b9a3c1ce9454ef4dba9f29ed68a4aeab3369e059f8c567d137652dfc2ed2dde8236c8acabb2f7b40c869b8ab39abe0c6036a528f316b1919309118cc2310ebc2187a9dcd187af80b84cc6c4dc462290a06e834f20c1035d464f94965f62327c1f9c9f4b5f762ecb06093eea4b318399701c61eadcda922dc5263a43634d9b7db024e4d0e86a4c72db9fa690e358903272eee92762cc33be4d5d94030ec94610c2b92d2017e0bd377751024221d6bbeb7c6c1855f754d2e62a98e2e7baec1c81b35bf4067065884e02cb102a3ca47e06108cb6123a5ac650691970b0c09c721849bfcc46d30a780be14d5834fa93c790bf137250773306d3ed3c6f25d58f084fdce49d519e1bc577826841d8fbd9f0f67705ca056c968ffb34a71b1065e55b8f80c034a4a4cdda668b9b2af85c2f4401779e5004d456f4eb3771f04d50490a7e2833a6ca25028ac85afb8195d3d4ae134e57b4e82a3aac3e1c9a9ff52fb252ac066a3a4692ff2f35858173b27cbab84b27d847482814059000dca8b15454c9d6b4a3691a8b5308ff2b5028c9fa042403ada03c039470cccbd9eaeabf39ae68dfa22986429a9ea36ceb16fe2b912c5dd531b88fec68eaa90e561aef56edec0b6c31dd81edd3a13cfb7832fe7bb5f5028605358f6e3a8f6d6b3777dc7baf5273aadb9a6607e3c66a738fdee913802425780ed7e888552a6e789054481cc7ec0c622b0e7cf4899e443a867704780d2da1f98616119439e49e2bb49d7d1bfa12369cb8b1ae2b02c6b3e9ca42eb43eea43b099413caf2f642f742d6e9f67834be1fedc0adcab9e2030a110b286302664f908179343e8722a6bb8c166fd00bf7424c4c901cde94def2c8e70618a849e2255400554cd74502ca1f077e3aa4964c169d81d541b4aa9a6daa8a6706646ee29ada6c1608335dc4f38f6a652e24f65f3ab2070f7e366beb2fbb08b82d424608bc03f1d39029b30d1c42383dd151c02aa97c66064104bc883a26111b8cae42e9f2f10c3785a4ea918f9840fd3688ce4911a06b475a8f4ac3603888d4a018850cd7075377c4c5ee3bcd760625b005fbebe6643713816a2e71f5408d80ebb057344d597cd6a834faf8bb0b920eb8835aff048088bc1204ff68e2a0b798e6d71a207f32e3d3d2ba2df5121bf662fab507f303d6f62dc5e9451801422c076ba214383bf9be864d970dd31a515d1e473f1512f51771521d1eeb8d91df8cb2565248eeaef9079904ae493d28ae67c6ee34bf67c7b9953955985866ec2e4ad884f8d5e318d104f40dea9b306ef07302fc8c013304d7fbef180196d70b25a06117e47d8741f5830cbd1735116ff637c01849ec737da5243466ff43ca391b59500a05e13852c37341bd1bf46ceb5be1fd407c1a48b6d48e80daeec5fd2b0f9bef104beb0517658fc6ddb51118c85fb1839fb4616d7013441630ae7aafdf67de33a77d267eb70f0b0d7cef41cf106c6dd5b76c19f723cd59b9d75518fb35a88daa16b24ad86bd1b436b537f13d32bf9de1e68477f8b5bb27daab68c00600d48c8eb03223e8988465df3b660b3815bf9337414213a620ee083e1965d392ac1da273ae632a702603539b4b988891a8f6856bd31e18ebdb29ccac0e0d3f30258508449a8e6469d3236ee1c5b16439feb8d3de0dd51c74bb703ffed6b319b6e63b32e538203272e119fc52cb2b1b267c02519fa15f42349af37d80a426f636744dbe7a892e6e80823732f7aa738fe848eb508e73700f3a202475b5e4922de2c8a123fa2a8ab5caa9b818d1516899bb8de8fe80402ddef7e5c40b41505036504b9746352c776a3419199ae30803be8bd019ed9092b3f7bba1bb7e851b48f1e511ddabc5c34175bb6c99719413d668cbc176380becb18dca1fad1bb089c9a90e8905f51b8aa3a5cab773250434f2d632f11afae0d581c2fb13a82b08426d23a8a3e27681b08a53e0d206ac59c4475917f1ad3133cdaf0109ed9362c4bff43332a6c7b9bfbdbe68738cd7ff2f4c6953c5a49c482ebcce5d02f66de34c2205970e105a8120c77ecac6d93275117e46f8a2753c04a2c2dc8e2980338da422692df0ae8cac81f8f8b9c43c7fbe46a4f90f68afede0deff50a3eccd94df78c071a28a946248e9e8775e05749ec677ecbb2c0d01cd250206f1f81e06f8a2f9f02c4b6ebaa8f3e6175643755a33f714ac90b5a2a5d76574f6a4f8a0a2e51ce8bfc4fe5b6df9b9d0454590bdef390763b7508141bc2e300758eb7835ee735788534ec9ff718dde22a0d02038ef287c54bf64683e1c1f8a3c2cbb8cffaa79ee710b9c68022d5a612a31f2efac26714b35842baba2c1a2fb6672cd253557f677efa8b095e302d6c5f5ec12a3d198b9827b9d0b94748a742a99339f0146b1ea4702720717115f86322281cdb2411652228f4e254de20dbe1b0f4580a7ef9204cd9f920d8cbf88630b8c84503547c19b1d9880eb8f652feb65051cef6f57b4061b028707c3e5efb08cee4f68d97170700f1ef3e0b4077212aaa169e6c6c8d6827bed76cc59f221551e01bdf3b0bd279bc3564807bca3376eb8d77cd0779b08cc38feb97773d6c361bf5d150012a5b5fa06cd99ceb5146bcb278ad0e430548b05acc99c45f59e97ffe6da6b34c5c1b672a23c8548306f4a73b84caea241afe1a93d3e98a496663f45f630e505f39153b76321082b501f4bed59ff77f33d3a7a862690f8c09021d5610a85bbea45036d8bf134fcec5a74d6971001115aa88a9a83533efd977de2f10723971079419bc21f0a0824eba39f51fd0824bb3f2c1a6f51a8781f043e82b5e56a1a9a6dba4800bddd435de4544fa4b3432df58fff8a1786094fd7ef11186beb3c0dfb95e5efc79003553e325783f179de7955aa78ccd1aece079739c08581de330ee04241a3daf79d2bed72b3e63c7d74d011a3fd1c2c6bddd0726fd2e793d8058c47359d78fa28ae030cf624bbaf5a5e61edcf0ca6a79a648c5a1122e0b45fe8538509baaf56a7245bb1bbad890b25492f02b54c351b241fff954b6c1d3cf41467d17d26b7c9c19bc62ee2c41a15a7c1f39f111e0ba491473c1c40671f859380ac630e16a980834c2b2986bc871853a718dc30415d40a812f487203547590359695e4b3ce264f3178b99d4deb6d545d5e1b417d8d2be5223c9bf8630f696f8e86267d1d43d73b51b0439460ef641a0c03ef89da60ce0805cfe9792775ab610c0a0840e26d230d6f79366d0ff9fa2a8484696be1c7e391b42b668994da45dfb2af26b982518550e71200baa69b8d8d859706336e51bf7c5d5c048d8a70d9c1e32bfa99aa3b7aae937ae8c5ced6ae8b34bbb171a68e0b1e0cb87c958d37bca606aa9c566ca9b2e83dda200a37b1f33cff6b8f54f7194d2e480443b43253c3a42a253f5dfadf3cd1a4d22b65f922c926b444ee00ca5f65abb81e96e5719efad0bdc3c773100af98eef0e64df10228adad7a1f410a8aeacd22d1005463d286f9efa8be4e34e6ab5c0eb8e90c80186e9fdf966d7ef541ec0453084246fa58cc9c90d9e2e87b6b23d73a3c994fc9264ecd7e4fbc290df842229345cf6bc43c0a9362315d07173ebefe30097423490b9c7e73088dc36d5308e8a404afd673d3a30c2006625fe2da1380302878ae374c607382c98ec9c5cffda8c2896612a62900d131dc5ad0a99d8dbc66950d9fc94b518f2269442fa57aa8a3fd734c708be30e37420131c34c31b4531024c23260e3c22f414f68d276878bf6978612e72d20343b7d57eac711c4f31ba79d64fc0f154e3ed9db2f9dae2e93bbedf8280643c2d724eb28344ac8d8c6b3d848a870185a62236633cd90083a98618c653ac1b1753359eeab0855869184fc2a9e5dcaa2086daf3583e1cfb018c5cb297a24aa08d5ff91707918147bc7f2ef3408473b9275ba77413988031e88d5b61be3239a1718d9a2327d6de972bca40d476d96e00098b0d1bed3893d278025c7ca1931a865b537867d6f12a7c423229139b6607caa11203825d69dd6493b8104627e1dfb957380def0a63c6fcdaece98d0cac02312b54d9d9c7af2ae5556f4d4c542e342db81f2395fe652c3b41838210029b68d338e74ac4e3a407f0f4325cf966fe6776747777d811221af4f1d8c238e5aac7bbf235d730a66a3facbbb88d571036442224b5896e61eab8a2e4d6090141238b94cb7c61d0a4bbbf2d89d11c3f7e56169a42defb68968ab6e1d39adef14eb94155acbaae563980444e21dd83f2915f9497dfb16b2ae6a428ec30457192db9947186d3f72613863ecb93c6c4bb8628c31813ef778807fc117b8603af45058b70b4552a8ecf673b1d3e34e27499ebdc09a6845f6bb93f98d0a562961e9a4ffee3f0b42ac4c868918bfadad164dc5bb129759fb289028114bbfd2a91ec0ed3e0d2bce5fca40b769ee016e6e40a7e22bec13e361a9593537e0a86219e3811cc641ba01b634ca213174b58b4c13a41b786ed02390bce5065ee9803ec964d20dc0f7cb27f3695ec652772b8d76940efd79fc260310df4dbbf0c1e87db89c7f963ab0010c9f2dd0b5b4bde31046bef49bbf39373ef34dd3f1e44deb97c1d82e2ea3910699a2f966b8048e2a56d5ab7d335ac8fe286c21c550fcc896ea5dd22f3cc66e0768e8acd8da8eab28ff12b016df797bf104b1c2dcad89b0fc54949aee701a80fda6c1bc5c38ad29d0a68183f6d236f61be495a625a147547cfc1aca67019d612f4e79196cf937e21616c0fd29df92d4adbe0e5f0645b19f9dbd3cf0ac9fbd50a3757943bd3fdd087252017a663340f2a110e83ed8087c3fa33566a06d826e0f264cfba3926a055e28593429437a08a80406560d1688fee2907369d1cccd86088ba2afaab886984e617d6685ac49f30e852fdd2ee3fef7159ff09ea37cb5f0600c9d648339ef51e2351b33e3c3c524aab38fdde06efe1ed475982c68f53554e104dc539d0a2b497ca9eb9e4fad0282bb33faff304c380befd87cfcf0431937b4d633bfc0f5a00d2d8b796c4855f45b6363cd53042aada4936a3448d8234117d0617f67dd2ce4248038378a2f168b32ba260bd7126b7126ab816832dbb61b80e911594476244ac2cdfef1a24de334e170f134d2ca8725a3daa334424414658916875378034e0863d8e3487256bc5783aa86071b8bc0ab024751116a9ca1ce0c66c8735a0b10ba9212dc3e566d537e8a556bbb21799daaa901da70c04fd6eb5f5cc9ac064fd3f4e81ee66ec4e7c867e2096592ed52e31167dccb1d97e6900aa5318379f367f869146a4c1a90b58520f9436161f1b42a50ff0c1d7aae2152f733c7dc74c81beba23e3544ed33b5da21b25d07227f7b53611159e2258ab950232c498a028989f2c223e3f89c6b66449b12fca4efaae0e988f54c043167513ba6959aa7f9a46849801fd58ae95ac1c27c34cb4af6cecaa9992ff8d59e94cf013e475aa7682d8a5da7b2e66c288763e46f5b689d92903e5919e803365aecf955bc3677f0bdadbddff43b1d75147d24af912bbc5cdfe8a1a70a20c53188a6a4c761c009fe81bd16f51fbcc2d4f946c9b946e9b2b9d56fb86bd943ba95f4af6d43a49ba5ec34d6793eee9f7a097f903b73e0a24ea63ee2b350055e37d9e4a71af1ceaf1d5bc86616792ad02fa66a88ac06c41847c39f619dae21e72afaf6fd386fec27ef7e10065c8d87342584171a2388694e56f1f59bc925401b65e34abee5efa00886c8995424484547b926d0dc962280b84e79a19c1052f77faa5cb0e9770ae23339363dc0e262835d50d6e954340882900387246dd93dc87aa3c99f18aba0c9609b63674cd1d1c48862ccd6dc635c03543794e30563fd0e393b813bf137cbe1af41bc2ba9f53602ab06b13cd1fb38da6ae88dde8df20fea1d96948de5690e18c0c42e4f056db18eaf1f5e23a092226553d48fccf4fdc2b554fc57e9f42056b2c34981d2a60dc8591d6bcdc20b2bd1353e14a946bbe687cbc204a9174ca881fca554fded00182af204e173e56c94990f864b3a6d03677054662ce5af44c0e0bd2a1c4c2c8f36fb0dbf08a2ff41335f70e6bd1a3ee3f2b26dbb69a0d476a6c8428498f340183f5f83828648242d01c4a77ecc6f7f7a20ce54f650f0a2cdfe0542b1fc99f7721a3cf67695b2bd1da0b9bc8476976bce9a98f883152175c8b092e6d3d7cf3918c252a55f415ae0609883d0fc31b28450e3fab18a4787ec4e0fed366b20726a9e9d63a13af04428cd43b011f9638ff55f28e5359e10e980e35545e1780cc5f5c2e6eb8caf2a3fd06b788602fc641ecc1c5e9c5894dd9b8272433d37d324d11b0e9013967d51276c3053343dc3c444a8b7e67bfa43f46ad04ed65b603896dc86e9978b26c22a61bdcb244ae7a976391c2d9afab12ef4935b2d4b370e271f76d4f6c2374c41576d48d68321cf31e5c29fa0cc89a23132dba83a01b393d3a440d4436542f13fcd2496298fc55792530c5a42e39be2d8fed849376248df5f4bde8b3247d0d21dddf0f1c3940ce9dee54de9c8fb0cb43124b607e0ce72ce21afba19a1772a79f5d8b8da842224378537a56351fb635f5f44d26d169bc7ff8c94857e5d7d635bb75927bbc64485d2134610268cfb8876854c7a6e642c15937364fdff274bdb6bda72733db42885f69a8a3048bd69b986d2348a355274bd009e663429a9c4206d087870c7b41967fd1ac4a8ebb69f44d4bda8a82b8440695af0270dd0b9116883c25311e8011d36312ff46f10de54fd7ce86b6ea9356a6ae133b49e38d47e1e2e844eb19398787c68fb794144b48f6ee148bd6234d1757586a257ffa0c0059fa28014fd880af9c377ff51dc5cd41c5787810a3e481446a28f3d118d3a81d60affeb44cd9b88ae16e2426032b81269bff3864403d06a30639e73348666dc7ebd8159ae09e2180e2d3cf00a2459ab6b85460870e7490faf854da7f140903126d88a10668761583505ff47459f8c70197849e24bd0e37c6b025b4b0eed221a161dafac54d2a952b627e0bd0ee14be0e989a58c6989615ab4635f805399a24478085afe43cc61ee053e231cbb9a11da8cce8e3b635a7ff406d57e117a93e513ed3e388131e765444864f202b071f5a08300ed710c5d4025a7b4ab88f780e59616637ee972d887e9e73ab1042754ba009b8749025832e2d37e735d3d653e38d4b14139bf66fdfb0065cbd18c7b15571bb49a133c40e7e41b50701ecb63a7f3f7c531a44cc29c4fc0254c2b745289a442a2e81f2ec357bbdc9822bdf1dd62fb45377e3545fab04e0b93621c6c3fc2131b45244eb3a42ef805ad02d375457033d6f4cc631ce3cd1b22d77fc4d2ce557b6961b05061d1170a9a6227c0a64325788343d5600d76c7307520c7909530bf82b3b67e5a2abe090db257a822fe617db44719aac636f695a5fc2c51347e830493addc10447d0fb9d56d308e234f4a07df0cd0402d7b614dc6248b8a07267209d4fd07f4a315fb3adc45913c91f211dd7502809af46b6e1c18c667f11eb4d5a71d39caae24f93498957e45dfed87080ed013badde01bf5ed5fcf59211828beb5bcde9e49cb4717a9033138c34c20759aa3d5c3b68704b8b99920a794d1f6b2f3e57761b286a3dc2d3c72cd53e4700e6fbacc75fafe91a57c0f74abee7c3574a55489a40c893447d5950e905aea48aea24d601e9ee206db478131035cc4e95a0fb5650ddff074e38d60f672c5bc43c82012e02d7e4d7b67b134187fd73d792f49033d8f0141b93ca52ef28a693ae81555b9bf26940a884ef683226367ad229a7c2c41d48116032d22df375c13843c15277da8a5ef645e29cc95a873f55228b3476ab48f1d4591e4ea53b7b3d12ec3ecd5864064d8aa3ae6ac70cd9bab714b812b823090113dc229094f50adf499cd6b427ba9ecd3d9857c953cf0a9f826fca387d2fb729a999d21865ac8f8db29ea28756178e5bfc2047ed489e3882b92d9f53261189044d09703683ad10d932c3ea2e8b246f471796703a31f6fc43b785800711f3e31f020b533b82d64a1cae67681de69bf63e07a0bdc1ce69358c979927c8030858e13dae8e0c662d7ddf9132f9fa0fc7486d943f57d33bff3dce678bb762cda054c4627fa3d7301c39de26116437ac48018668cb762fc3a6c3c1a593d5c8125ce23500438216d5b06088ac5756227ca3cce1e552099e5ec7e7ae816e13a658e70f6e600f22e3cdab47489b9f763f94623319e1a73aa6c92a1c55f2162ed837a59989ea00d1e7fd4f930f45e66f3e2f72b5f786a68978207a185620edd189f0980bf242fbeb040a29747f52fb9df2a164c1904c3abb1128333f362c156b83a33c2fb6080adc295a0033ecbfda4aa44b79e0b0b7ac26f63c7244b426ecfac103aa211abbd3bf24c5e570362d1b204cb8b0ee34656d12665cec58a7162c67d0169d5d512570ee4c5706fa38169eecf3213dc502077d273d9ff8738b81126bb928b5e29e4e4fee9465c99bc62751cc7fddaa4716a1ccc58ea51d20ac1e45726b168d38f581c7439fb343d179a991e7672786d6c8c3824736b8be7a20ee0fe276ec0a22cd264fa6bde59c4e29d550f5a0e78154e9b77d98f7a6d44d37c6b643ff31a5b48977fd1bf822737c67c69f375564fa9defc3d083fbb0095800d0b2e448aaa30ba67713fe7f22f43406bef670b18b52aa0ff7b4c475100866b02c334351305744d2f0edfa1b6053b78ee5f10745cc1c67cb090c06e2e0099abebf45164ef9807fe293d6531e502e5795d800a899ce842b36559fb0abba9065c32e0cf4828a45b072f01c69dca176593894797f9cf6091a8ad7af0adbae9f437923749b648434aa9109082467b838ceeda11014e48bd4d9aee3449cb8ba12b5d8b434f8504e31c03164190d6f8c091cdfe67b6f7517ca230b660fc01d175cf552b62ef8007684ba71e01916b0339b99c7bf0ec3f1c53352067c89b0599e9903c944c77688fb6d5b040745f866ff9c62895a8471aa09c279ff5bc5493592d9360762435abe9fb681deca3d528ae8ec216d4ef998100bfa8b13cfa7d1ab52492219f49aa7cc5fe9dbc423cb1d18c842ff36696884febfd644c350c205ec2a99a79d5b4f45f0b1944d8f454c19bb01f9c188d769dcb6deb9d9e7181bf5d8b0403d6991e48a279aec329594b66955b0187f785d61914f7b7a55af65e37bf5f9a2e8480a67ff01b3c2f7dbfcdb92ce4378d65d365e99d145e1084a5d0ab3de902d2c762272fa7fc5c61df1e8d9b268501415f3c37d86b9603310356c5159fd69f74b9512789913d80069f7e027c4b8ff25f75e3b654873796e15711040a76545821a5e35be61b74cfea1700130240762805253fd29c3da4760d9a460a1986f633720e61706b6230bff4450ba4ddf95bb0498ef3aa54e64318b34ad99f455994e4acc6914a5c0027b390a50534563170b90ca043c4b30e0a28492634971368846bd029f18f5e4ac608ae445e6e896b44ebd08ba8799c79dc2d25b2d88aa561888d288c4fbb24341d49c647a07a1e7c0c1abc0f8c82b137dc9bf83df6f7895a88abaa2a7c7f9488aa7ac50791c67717a5405da09fae376c686ee3290044cbbbfa45e3e564f98b6cad50d91a431c31c4ffbc157d3ba294def0504a8f1b0d38bb6573f16edbd86fa0a5b322c8500605eb6c779131d1dcdc815686e7c7427db1d9c22e6c408afda2b9c0db03cbaca1548f9025acb17fad2a50e88b4c47d68f9cf6faeb39046bf04e2efb45373783157d52696e04b12ca8093ee25845e66cfd344098524b20f134cb6ea409aeb68e9aaa4ff575b263f470fa0288145bd0b249074152f836b4431737243b85595a2a4d6c99cb3d6f5f5f2ece58746bff7c609923fd620005e53ab32cd6cef1fb5500234e8ada7a9f5255be0331be21c78e62ceecbff17ab1e845d9e8e673e7523e567ad792eb063738a43af3a2306275abb6d2013304d8355a100d8405b8f8a948095160d774a8a46c01595e4f72bc398308d6a99df72e8b2cb25a744e43f82607172c16959b3c3ab7183208e6e3d6ba263182077112ba39c997d0c7adf742773180f77d01e4cf123d4b43d8172ad411a92d6a595fe008e10f0a2cd7c7eb6269d15fa9b12a089b692f40e88190ac3c0779e9c367ce92327c490194855b23941cd40370760bcbb92b307f6f61408a149cddcf979b2d0fa8194c10bcb123350bd1e9e283c2195480b0b2167f6b5590b91f84236c0e1a355a2151b5a32f0f85bfd588dd98e010a13153e2a434c81ec1b8e72dcc388e573f07f3aaddf902d9f40e3f611a711112a14946ee133354b830a87e4a52a2fb35d3a54114f5b22e67fcbb70259ac0a770ffb424950fb1cfb2535106ed97af03a14be582c5dd35c5f95711aa1ad57b63ac54a24586854559438a8059d1cd25e53b10cd75b4a3ee6e0f9ffca31f5b05c6d75ab3c208c1a1f4f05fc7b5366e63a970facafd68fac47d35bd3a82babbba1f8935165120abe7758e6469d3466832f957d189efccaf7161b51d4bb06929b06a5b894dd761179d05a67654a8a25d7d18c10339906255ea0f17af25f40ee51b9bd2f2420e02fea30a1a513047e5f1a046d1926f96bafa83ca3f2c7f84e826f59fa25fd4d93d369c60dc2e6262dd4ac542c54695d93b5ffee28f58a8045350754c3e8e09a44269bc3e51c7d2e8f9bffe85b480ce2dff74a77ce5c4ec1460e42173fca9f1d85cbcda4e5f75a9785523e8f86fff4d27a6046e2ef3119e971a394037075259bcb9e12d6d3b265d6a24f601b2ab7d729d174e5b1ec9e2396bbdab2c2bb33b486a8becd80400bf488f922850eb00fe03984b852a9b2e1e36c52e2e91e1b6a91713d804c4877b4a271d9f07739bdbd6d111b2a1dca1a80a4a718a1d82b442f1f7785bd971001e099de48b7f3eb4a7d86993f6a64abce4808af0aad2b86924bd4e1a367079cb5324054da250b74aa753cf5c8fab1315402ccdbd2cd7ba75d6326b3c60efc196d05194af21d7ff736c9d5ea37a8031c2f1a95cf3b45affaf5928c085f69d540a05657cfaedb5096196ca27c161bda1a475d07e4a3c427187a157689cfa201e2cfe5ecff7c8dd79ed074e6d3ed48895f0590cebfb97b665165fc65846321da87ae75383b041839416326e9df536e311b1f6425eed5f3e0748313e98bf159d76428cd6d9dcddab7462b17b57f51aadffa295dae4e61db5277f9de937ce36fda4ea4103ec67491f6bf9876648834c3858593e3171d87d0a33747983739f12c2da3d6dabaf5079500fbe832ebb00de3c2871050f0b7af028a90288088484edeb25d6088817e30437611ebe596f36435590265221c4a7178bff8f2410d92116a4dcb111ecc15459003a004a4e7e1184282c9189ed8219ab4195082c8853eba129692d79ada2cf9f4e74be17b2bf34c463c127ec1ce2a0b4022db7faf6fcb774622e5d6c27acfdd740ea6414d141425be90aa16426dd51f301c17627e41c054be01316f84188d0fc8d42b4c7100fdaef041987e32931e9685999090b515eb15478a6eb7ce69667e04912e3817445f00c478b645a3c1de28254401626b8c0b3d27f478fed9953be2074851f608867d4a8c8edfeb2f78678127e8bff2c44f02cf7b8410fb69f166a44500da8129b87fe9bf1000b50c05d2261204dab07744cdd4c85e89b25050b7d42364519392f58f39ef1d67e06ebc8a71197dcd8b7b42e3cb57a41e3655c3642e3257fe1093077a0f1a287712d1ba2f19272e15178da23e212699c2a758e8719636038a98ed9a6ea74370d14b83503669ab2cbd655c7657700acaf1169e5b978e08a08272b1e030ff1701b192101854858097bd5159dea3fd7eedff20a113c1a31e251324e5d32132b4796cbd346b160137db62d120b99ed3bc7309e5201bf1baa372ac3008f670fcf2e8aad10e54d3c38ef6c0a9f9dc9ac4773ea3e91d82bd73de1d2c3be501c867b84004656d32cd2eb69ac4407a10b82bf362e364724c6dd2fd347292548cbc79c2cc4cbe3e2fb38d20768986f73af9171b151b714721564d1afb5fb5a70485b14374fe5fe176ab7f4346f3b9336d9bf9769b59cfdbbfb87cb9cd33f29bd678278e5bb3105ce9a7f95cf6ff6024efc07427f4bc76604ea9ca1e888fb003b6b7d6f723fa2164348af914984fe262cab9c950ad887c52d65a2720acf07527a96dbe0a71df012504ec025ad69af2827461b1570c46785c01d34f6de7c863ae6723c58289ee4e5fafb3959a022f3eaf0a36ef81ef044f3e04c20b6189c4fae24cdab8f76d3a6b0c9e0188e12552a9a1f59fe1c1504279b3c8f7690a34771948974f47399701dfc6aafa27fcd7057b8d7ca7f0fa421e6abbef761268e8e9d4e66737992663eaa477d07152c28cf3281e098a588db46454217117754511276015fa404427706b2104ed555e12552968882ed9de52d01146f7d8ad2de4df0c14c390b15e625343cd1009f905940eaa2be05b6b22ee63c9b0a63e476dc4057c0a7520f141bec3df76160677348662f5b69e86fef488d8e93c31ac582c5a8fe688dd0fc2964576a6ab4d9c1837248e72857be2ba02b84f1e5ca6f239e8f99ee843dbe91cd5cec297a9224bb4911f2924b9e650a5379a3bc506f435d66527de804a367653a6186023d37f3cc4303c68a58ef6f01e517588fe8ccfb1e789f5082d353c91ba490aa5fb8e6613f167908b148222985c6fe20103d827de3044aca2399de97819445e1a6de8fc126f0dfc8e1a25e079df8164e6d3a9b8471686d08d26caa1df2f55b22ca57d770d6c8d07f6ba2a00714bc89b3221ddaa23285d26dd27263f51b6b0c082772391cb9b4689850eb762909d948446822932bf295ede57e567a2afb04c76377b338332ea01dc7ce058c791a6e402409c8e9ad2e3d3ab86ae71f059cdb18f47a94aa5702a411fc6c1ecfcae0eb0143a273dff3f2b1fb0adaa16c43bf9ed01c08fca84aec733cb81e3c5f8d308b0101108d3c25d4b474644206c75df6deaeb61d94d9a1e075427ba26f7762bdeedb49c5c51e34d39f49a8562f9607033260b6c05d418f04a65d774dd1957be511a48623b95003ce2b0c84e0692e47391a0c6773034edb711a8c022d0a4a84f42c6269425cb946442f6b7192597d2f6bd4f8352a88ae7a4f23894aff6b8411f8c908c36cd09ba25aa75beea4543bf41c617cb93c5406d211492046f6262560d0a1308f28c793f94de256eb00d81bf955a56514fb684368cbff8b3b690358162fdabaeffd12a5c64a6b8487e7c2df951a32910ad32a91baff45dc5244385894ae13be5f1409673d62b8c7fb832c4ddf3728707323b6572b234c959bc80046fd7a998c5dfe7f3b5aa8d9bd5340a2323ca75517476dce404dbfa2a2378c7a7f16bc9fe2eb9e36c0e3671268108e48b02295464f53c085be1dcc7bb8aacb67712497005920a6c40d344b0b57d864c4d632481188c1ea5c89b018f22b9c5a17fda165ffe106dad8a3e82fbcee7eb59fe1180c7f853d74aff8fc5e23fc7e282c1bc655cb84e65ebdce2a391da47e85ed0e1274c229804a3d62ef2e2207c4c54bab6fa0cdcfe85d97536f0ccaff06c3fa7fc2cab95bf816b61311b77fbb0bf201a9e0e0d1d86c3efaa69580d19ac1f47c2f1d27dd82e3742afb7012f491c47679ceadad1f38c643b619378b258d462489c06c810b6e375703da76d9768283249be072768eb2760428750c7c5d00ba1a961eb0691ae9c74e22d03f8589e7190acf54f0cf00c9b90a105f9364180b6291cea0e3fc7db65ac3d57762ba79999083a0c1261019a699f78bc26d4d1c4891dae7c8f46ed97baba4bac9d90ec3c8a705d37040256e7c60f9261441a22a23e74c0243dd06e118171f264262dc18f3a8fe0da7971cc5964c121d87419246d0b5ee7b4223fad42a8216654ff316ab931c17f7c9a66498104730c95eec0084697f64d401a79825674e7d69fc9268dbbdc483b629b67b4634d0ddd29d5cd1fa30130416d9b37a27e88c90b85bf8fbd83e713d954f6f944c1b2d37f1dddd57573a94cb80d0054a3afa92e8a23331974e8ecd52703d2a3ada981ee9ddff889ecfa9a281e318ca07408359356e515a8208dd4089a3258607377e843ad7081ed94cee0c50d9323c31c5242550d004e62b1755fd498474db55cfd8dcf500f70c5bf76e382c2b700412a1912bb895fa41a564bb38086a9eb06fb0a33d43ae482236ffefb719c25a7a0257d53d95fda109352016e14ff193af24a62ea0bb533165b283d90a1f0ffd232c04af1b8d199a63d91448656ea7b41dc0a307fb781d423ea4077a06741cbc9e0c6383060353663a09b0a9d41768ed38abc250ab8581f3c2c628735e09e1998519c25d299c41e69a343e5fe58176d314ab0b00351072598301b1d54ed5d9a4e10c0d940a1be11daf6b728e8135e10c90c3cee3182ef8431a29787398da7540c16253cc8c3ac92916f02c93dd85456e956ce7855da9fcd9b5ba987670e6c8117ad16529f7d9ff6bb223da4bb1959d5ba58c362c26d4066c9e85a3cca6a294bd6352f08f7f9db52bc1ac6b0ce204b8ab6a5903640fa08cd5f66d2aabd09552c44d94d028d4529b661fec3c7fe6db1106f39a6c3101eab0a84b1d58672d15ed61c2d86e0f59b9deb2785abfcd96060f7fc57162ae2dad63b4174b3eb09f96233499725f929027988336c352ecea647a277d425a82936900a83264b294266ec4560179c4c2f730adc5107042770be327a982458ba4a6a180a23c9723e2243defd10b706cac8138aecab183e4c8cf4f26a66481518c939d8c304e2f55fb70c8e9ca2d1a7982bfa17c3ac4831806d25415adb3099436cc8ba8bbaff10145d3ce5c28cb0ef1a953c47857e727868510230362359dc37cd4606deeac1b8fa4213ee7023ed95b6db6985983cd6c588d0c1003a9a2701c13ebf10add8d193e501822509748544b2f7a97259e1bc8d7e586c496ac255f926f6c5e71cd83e40119fcf3af0c2ec1a6ebd1b5af981cc0d169614b144b1524ca0423f6a05e18fcf3ce7f6b56959850781245ac0f795540e17bd508a886cb029546499a16226b36bd7b08b7a59f15414f70da9930c8134f885372864ee813c6878821ca5340b1f0c707e3304ef488890418130e085dc3a275391ed5eda368925d7093489e6c629f97a10ffe7dc3bf896f0db0d63944fd9a87d3cac214a722390e44f42b64e9c6343122a148280d595f337061c475a1604c94eb4ad6740169e2dadea9a1776864d2c4f5dea701efd498f7340a69e93adfd380776864d2e2daf47d41d148f31306ec315f5a2783cba45f0f9031707d408b53207386e6c2d4dd49d9283ec050fbdf422c195c868c2c830c2c1f6b572432b92c325816190e31be631964665964d096ed2debc42882325fc4edbe1b801b385b4a6bd46177248a0eed8d8e13c5c808fd8c88559b40255ff4b08a26cd8730f5be05a6c8887148432953f3b3161681e3a80f683b82df62489d73df81ac0058cb33c6158cc8e30f0b29c4af5ea466df11534bceb16355b2b845eb3067e28b5f6b862764ce2fd05a8777fb91d55de6d4347449eb9a412ddc35f5bd5047df547338b21d41614ba1dc88bdafdeb7755e40a15fecb6745274ed4fea40506a554c32af19e13c492a42a2ab7eb014da3cd32efed2176bcad64d5e247cc71234a20a1def6b261b67e13d048208a7b9d68129551b4d0eb10291379aee8c955ab60478bd5e5ffa41aca8d95fa58c5102a97136e401cee68405b9fd3d623e2cc1dec004d81f5a7b0cc34e82c0de1ffa4d401e6190dc0cdeb0f8f05172c474dba08831b5a06f7a8a9fd74e026a6bf0150c11d1389c044a704fa58cead6cf4089cea6941f0a6f259a5a921a31f72c1b32728c059f93a0edb14b2284e8080a544dd0a5960752be1a4da6d7c49b958630899e0a7ac6cf2e8c324a8823492d2e1556378582bb9607d628b73cbbb3b91396dc4812b81052042dc49f3ee982c212f613842c27f794754d81700757b573bcb310f19496f58b22be56ea8ca082376fd542156bba122bad317b783f853a2d85199e25a8e039b074ec964834042e660948e5b5006d00bcedd277b426f7b33b4349247340309f74f2c989d6e690fa4736963337d24500c402c0f1d88c3c35e211d6e026823be79a4e49c41cd8c1d702281c7420431e5e9b00dafff0065883171740f13e7f411b3fcfc239ec081f404421dfdc410fd4e49c636b006d6f50ab1ea85f841e5c62490a7c823b8f3e54dbdcf48a53e2fff2f11a58753fd8d501a09fb5526fd3ad61ce377fddca4294bef2c8d9b04019db0dabd5cc455877b1922cc5b67b076c070cbb5e359129bea6c440ec9eed34f5fdce47914f1623ee81c15d83af90b8152d3a8b63966419b6610ba409eac48014b4c099caed49082c2f2cbb254671433068e11f67bebcc0e8f92ff3e2201537631ec6519383c98402c9da3ff796d99825ca6266e43dcf4c70f48dad5d91569c9054544d2c959660f0406834333bf46696ade13a360ab75dfa7a87aed191e44c78274320a26a5cb7c7e1ce8a3cd603181eeebaf116051c95e6c98a14320f054ab953804ec763c230033bf76808b9189a2f39497d49bde4e5309fef9bc0de9e36602f862727a7348179fe54b74aef7af2a33ae3daf2cdd05c9c324ad21bb4b851993ce0f475903a0a678299b169bced2ca447963679ebf53398740e838f21c1fa7f7b37a1d56824d2ff0429df53136b73c1dce0caa508ee502eee3f5988f90c09562b1239f9a64ff1be30ba7c5ef329f6b0bd1f3ce8c7020195087db91b75ad854eddda02dbf092cb920e345bf884710950d1c8d6fca0fe055d0a3c15c601830e6be4c7ddb4b00088e411a61473e080c539abd338f96087cbd5639e648a644235413b4588ad8afc242867fcc74d9935fd3c7c30cf5d37cfee8877cb9c7ee4c4bdc3dfd84f58653a20d80f639446566488302f5420ee49df9efe67e8bd534431066c11c93d78ef4e3d92cbc21035698caf8873b7f666d0f70f0771a7fef3bd8b574f0cf9da8eac62d47b87dbdc25cf229b6cc32df95c007d3388fe8e89a30ca8b8b866c8d77eca2ec42f9342a83021682410dc5c1285d46bebdce11989b77cb91b596568cd8e4746f0a57ae75630d4a4b605316e1130f5033d831779ce8668be08983adeaf876b5da77da582359d822513a5b4c93dca5a5731da991107785cc8b70898b0c6f5fc4e044ca9509c54a7411cae0a4701a45ab244113065edf62c9e3de2b0d27ec1cbab061384b82763bce96772366b2c6767a3b658963ff5433ed35d7f7618f02c135ebb6df519fc962f71b929944e2610a14e7a9e1e09e82786d903045d47a8395cb0573f2124c3306bb1660a46e3f4088cb1f9fc1df29a4887f35e214d14241478751f986b1792d0ba768f30aa55b604957bd4d43dde2382cdf4a2062f610df36989dad503eea3e9e09bb98a6e90598a9ada4dad1b76eed439aa684a81e88c15fc6e7368c8372afd979b5b0ea444746c8b5d89572324ec408051ccbc3d3bf768f5445a0332d1395e6cdf7c37f01f68cba7bfaa99ab8a43025acd96eaced72a860d991f6a1dc3507dfbc6dc301158d94bcd5a5c8329de95bac8cc23cdbae105ef2f87e46888e6521728f21c74b5fe22f49326a5294791dc4b2ee35c7d7895b6eb78a000bea0b9831bf882a6a623d5cb7d748a1c0104f1f2982ae60ae20770e1372708b7242c38825832c9d95482103bafd6dd4ef46854b1d3dee1a214bfbda6c97f0831d25a0284b395c653465f1a284cfb0a5bb8f527ece0a1b297adafc1b2aa2774804c8c28b32e4c64ce8d10a5c4d6be79dc794b38651db6f696497d0bee3c24756ee8b93bbb46ac87ce653ca8469e599be78c3cd3e0816e39446f394c45fdb93a75d53c57f850239b6c78120725c2105ed1fc71058a6e37726bc348d4462929c78f9652d944aec94c47dbf814e8a75bb94fea0b2c74e3814472f6a51e70ccde545ac13c4b9e8f3a5b23445021a57a85711c88d672448b08c6df974487455101e965d337b1e7fb2be134e872193fe8ec8eeb36b953206f304b2c4f0f4ec7e11b6e2f28aaa2f5f7be93249a0831fe33f9c5ff63a0dea3cad05150d298b1f8a78c4f20db374099c029e5bf79f277b0b76c4747cb33bb204c3cd32f1fcebe960ff6cf5b153f40b05c34df12db6319097c2490a28c39a77dc1cada1611ee8f56054d245d1f2cef12e4cf05a704157681db0391503d1320101a309ef01c56a8a418d7676b0ce0818ef8b056241de3154d7f4c3f07de10bca0799ff5b3cb60ce14ca0208d4c3c4760320389ef0bb001cfb2efe2fabfbaf6529f4773090b1163f17d3e09028cb51d380446bf2a687a1e6b3021591a860a4d3f42e5ac95e6ec7ea65ada02353604bbd1ad631a124b6774a1a17dfe520e8638fb9176192b61d4f1d718ab2d590d634fd0aad3fef746dbb52e26ce3ee7bb2ecd8f40f87619efb78a847c8aedb3893393e72ffb2a7f9a45ee6a9baa3451ba7f62a4d1d6d3df1b7d7763eeb25ed06598182120cf6cad0e7b6eccbdd3f856ffef6122e655800bc865ece903a53ccab05a5372c2b0cf368ee6b357ee42c403a7c83f69264082bb0cddf1901b6d2300c30e7b16febdfa2420ae51bacc49a09e5b8fc68b64effec6b377fd893962af65ff96cdb00cabedfc7ca916581ab4ac04b9b169f655da6f39105e57144b441a2fee7ead6aad0be8273ae8b27b18f23f49e95993580939b835a57e82b470c9f888d71e4b94526605149a7f433f72c1833111241686e0a78163f5bf184478a7955322cb05c998b7d6573683506e9e3d739255feb15699a6216942b2ccba4760844949eeac52b61d1cff9717aa25f1fe593e97dd49e07002f18c9c6bc4fca9370dbc9bcb8aa9c292dbf92171044f1aff02ee2623b94306a495949d78c9add29d980dec93c8a4fab41e0a3db9b6ecbfb5ad131d15436b83bdbfafb896bae9ec34cd96a1d6afb80274c4bf34aa7ccd1a7ff62fd40ac9ffe4222bf43c45048b2b305289cca32af19e4a9d12d5a47cc6e2311dd10a09ca30b96eaac5df96ead1bbc724f09912faf9bbbf81dcafc3c8816dc80c218878536a6fc0589784a749b445791c7e5f31301b55e9d70bd058310f80365f6ee0712351ec90fdc6b3b5f96600abe7d144609f069da0052715cdabbaace7043f36daaa00fdc42b8dc1dd0f589ae2bd98f7688355c49d758c8599271cb6ab75e7a2d60ba8f6bb513e4fcc8bc7e29852d3fdb159199ed463bfd6d7baa92f35cfb36ae7c51fa4dc6f4030a9d3c292f14dd6b24d4e0806e66438ded9fbdb00054bbe38076305d6e237cdccc5c4be57b9deb028ceec602669aa380dec3b5acde67fc8864c7223108311b04dfb512a5b8e1a7885acc84792320295afd2360da621e091f33bbfef3959afcb44280a69c5f4026534b44b407057f0a0da127dfc8448f4f0b9fc955046952571ecf95a8563e9d95e1279e084f2cc70ff236087c2cd0a891e1da4f396526b85a6376a7f568f579d6ed27cbf25e265aa023bdff2169b98cd89efb75c720e97c32ab23e24854f651524d263407f686cc963e965e0f6aea48f14eb66782b5ec90d83fbd10e1621bf45194a3ee6eaed6e98974b8c621175e26597d08f0bc05b412c1f60c959bc172ae6886745b954c77974c84770cfe5231c97d0dd4fb3191acef99a18bef9b88ac5236767981fac2a5889d897b6b2290e45a9ee5ae209ad08692d90113f2bdafd7a0ab58aca5c156980f03670340b82d620eb0fc381f38110d7518fdab990a995f176a09da477409307df3eb35adabb0297ff9faf975bb7584807c6ef5569b7bcf84944642840593a7fc75f16bf3696367d67445970c415b80afc58a497397d7fb88ec13bccb374ce2fe057fda5c4f182b2750fcf780a76f3f632ab59825a63c9477ea902411245b1a3058749690548510da2321951081e4436e417175e57d5c375729db22293508c7480ffacd4f77fb6d1fe1b9c41d4348b031434a78d8d6c8f5538baded954e0f37a75f25e63d15beabfc924970222f443a3f81ac3ef57b162449bc8de7061d6f17cba49bd4f19899e9d2c36290ebfcc7c8047171e2b5fd9ae0ac6e47deda909ab16102ee303d7ef86d9d64d59880c91d9b3fa473f76c5f53f73e1295352f5a65b2149e520df7ec1b17ae82185d1fd7e67270de14f4a46f57e8377ebb5a1db56f181a02dd6562b80745f34339c667cd9004df7c13ba974dbc6eb00c3d1f2e4aba73ae829e991d0088bfe9d2522d05a332e053870309bcb00fb9203997737c41bafd3cb96a176ba09b1cfe499923a903a1316890371e85d95256d8eee8c1e2232d96ac9bc6bd90603660a76e80bfae53b81825b4ccf816fe5c6f2187febfe79f3509ccb7afef4ab0bab49a19c408e58c17abeb602dc66c1b8737ae661a0ddd164536505be258976713aab4265f33373b92dfc1dbf410f1db4d63fc2d8fada12dd0c5aba730512b8d6fcdaaacec63e875fcff3772cc71d324b1895709088736040a8219bff3230169bb6103cab2c51e997b808bd1ea814ea9144e130e9d9c1b3ab9ca2be7e48cf73a9c5a1e966a24d60b4bf73909bc470f9a609d7491b5a6863dda3cbe36c3f1bab1ff391500eb79cd36aab0f8ddcee684742e10a3aae5dca8859614e4052e58e33caa8a493f6be1d0474d6ba1104c65a1008151de43301bbb9bd30c211a682c510b8fb162398658a81e96932b968a6556a5c0661925545023e1b09eef8f33224f64d4ed9d968c991d5a2e69cbb0aa7b498316e040405c731cd3768d5a191daeb5c29e5829a120af14dcc70b6b8a51121088be63b2892a339be8c1449d57e03e3afc3539ef2f57ef75ab4bf2061ced382c7baf2ce1710babb95eb7cb056602e3d22209c913cab88c9f959270f287696f956116b23561b1514b3320214fe7125959b881a9f93dce52809583b854d8728e355baebf30552b69019b41561604003cef0f9100921a064663cd5126fcc72ef696b369506ec75601adefea6fca5b44a44d0bf80831f894ad75a8bd5ccc324119757a9ad21bcd6fc542f2450a3ff3b7dc491e61941a0f9acc74029771679b5f8b2c367de8ef8396f816031a762ff18c32629c78493c8fc02281e4aca7f3932cd4cd9490381847c37fefb324b100a4f7d34428e718111ac91578dbb5df9003510d34dc14eda41368a9b6241ab1e5abb5bdc7aac8dac51f0c636ada4dc52670462475ffb17dd2b4c6c32856b5466b8068080627246275e0267aca2b7d66d1630d0b96c156169f052bbd8a707148bb0aa0ae4464fc14191f6c5a2641dbe229d97fb3e1a4bab0fc93398a5bec1ececb167b039082a6f8ee020a55e336c16c742e723c42bff119785407240079b3c00f9d8f1ee577111699b3994db0567d1747dbbe454a29407dc989d3af5e6049d0ba9a71a408988c7b86922c3a5359fe1b06504ed8b3aac4feecae077ec94b392d67ba6a74add789645fcd19dda9ce244dca847537333bd8769fcfe01123cbd719cb163fc8551434c9c48c60de79d5595cfbd777a4078af9ce63fd256679b1903c8b078e57b8cfc40c49e76118ce2ad3d264462d895c9f0a16eb9485382ab92c1d52b4c7c5c7dd8147845c453cdb8bfb6d88099735478021fd0a902da6321a417bfe63084ce03692e0d68543635f6a387cf72b1c64b7d7391c37d0342573e30fe7d494e9a3595837776c6ac2586dcfec716b0b3d0353b2bd27fb9e163eb7cc42d5c3e7904107a01c198389f07ea1ed1b8844adc86a017c0937be6201d06c4d75084b49a31eec52304a359c87a5f091618937b1a17053a4377542e4be9bd828f667bb3e8c72e621c3de2fdec491729b28cf2a0ad0284f9fb94bda8b19772f658e47792a029ce487e9ce332dfb8732d61c19d3626518a45a7c43834fa23e01b9794f658753924d1d9520facf9055a8ddf583fccfc6bc3e0693292ab5c95fb2087c3dfe2cc1f4360be5a85f600c4001666c892e6e6ff07ea3817a91aeb309325b58ffffafe1374c5700859976177e39fc988b50be476cdd2fcf1d273484fe7d400d95cceb4d0c6478c55749fce6006aebf45d31921cea529388d6204e0eb788e555e468f377261ab9029184e66bfeb67e48f15dbd11c5d7e9ea96328c61bdaf23bd1b0b92f6ef8806a48af6bd5ee36596e459fbaa1ef8308bfd7fcb56eb52ee4dcd9f3ec3fedb0bf7d7331b12abf59e0df5d8deea1948d0e2e8686c51f5e9d24ff6cdf7caf27e7a716c0894a1bbc54440fefa5e6063807d1cddff70dda00ddac11ac5ef612344f0b39e046ae07455b1802b791a6bfa81f1fe375c049230f9b1e445cb4f3ccac5cf174bef9136b95d995c25628491ef87f51f2f4c2113548fe4235080879f530d6eb20ca2465c4fc801cd38b539e49d4cfe20454414c5c72214e0f60ed9111ba498fd609ac5981689d64cb9baea477c90623b7ff006c7e9faa20b570bcd8b5fdc3f7d0cb378aa74799def56aaf5415ec377aed07c1456ca3b64bbf93a2fc525a05eebff9ad08a14980e320aca6fb934336bef531d78d5a39f6f5d28d842dd2d41e0b23a6f2e8ede56a2f49812323e2423fe9537f27aa4c3caf1ffdb7ec232f1295e7de7296791dce9f3c495b606a3ff05512432423ae746416183982f60aa99a170d798c526a506d6ba355e703199fee4049d99346d9000bec89fb08e44b3c9eb9e0ad57b17bb4d8e7a039c531bbbb3b0cbad8bc0a6e3c3ba397c046b3bd9faf6379f52b9c77fa483e5b97bbe10cf7ba4dc7e21f6524db0c6dd609c13d033a562ebba06e61f7468f4df6378d874fa40ea430d5860acdd1fb2cdd899761cd81504800298741f9f7d34ea1c57f516a749cd6105e920e51991c0b8bf620a4a25cb5cab507e6abab9548c632575b40165490981ffa2694bbe82a3b1df8f60cfdae8adc32e9ab388c2f6b849b6b8c6f87316af360ecb712adeddb1b25c06218b08eaf17515ab9fc59aba26a8a64d5d1d87958278ba10e9b07068f978c634470b8d88b986f54c22e7eb24306e00c8850d3ca4594dcb65767169d482433c31ee2fb50668d33179a2f24db802f59a01647cebdc81c7d68a0cf52e1f08cf4faf25150ecfaa710a51a9114a8d319070e02461bb5b62ec00c3ddaf31202d68353220dc80e2f24892408dda2c8e6c24cd44c1972d45a4bd7308e32c423228ebc1c9b84e64adaed3cd2261d573f7e0f6b970af1aca7e88c23b89e8acb53a9464f7fdc4df5d3429dd0cc3138de81d6ed7fa05c76b32de9a5f01138aed9b8267754866c76bf0b464d49501384006710fcbcb8ccf087e6f4ae07889622e19e8d9ec583b5ea61192109943e013d67acdec6a94b581ad837686c7abe9156a47b8111c4afa6be3d97dbc5aab32b778f5e07908870357462290791f9ecf1ba09be7d71bc4a82543d8f64b1b009f79b7daea47685374b837040f65feffb96b2e075eba226f2d0f59d0c4c04252b37b872acc9229caa3438a63fa63504db6761d0ae051c36163c03f73b1a27ce00075b331422ed26783dfb463a9e8a0a9614f4b6ff01d2ac6a8e390f0ac07fde3e6d432de2af26cd3163edab4af96feda274c6d57e4c843c259d03207786c1d4089459ab8e932a939222f1a4e6b653b1a3f0609e0b89c3ab6d38a7a141d9d6a68ffe8d4b1456d27b809ee40e03ad44b855c022ebc12b496f5e4424a259d7419880fd532a3ebdb8ca1d6acd1b415d77f305bd8785478eb02cf92ade158b94844d44ad7293648411d7b7d2588836d7e27ca54b5d2226a756e2a7cd7506d2b7681a7cdf30053206237ba1377124c53c9a5f7f57c1d0b508b8b8d73ef75a3b86dc54b38d81c9e55f17c6b0d386021ff9d3b39f45310e72890f73050b31f2396b9ac9cdd14fb7b6bac9992134ac00584bd352a1d18e84ca79a330fc92e8f9c2ca3b42bb21064e54bee9c5eb5e171c388d405add8389de1d842b66d7a839c152b6a2c90bb0a198baaca6b38ea4082f65c7b16d0aada72985b925b76fe22aac40cb10a7cb2f0e118df2c1f3d338728100004b8d3871b8e20d1ac7fc1e0138f56e0b3bd7d639022eb25e07d0df2e9a3dabbf217c40906c7afe8929d1a59f717bfe6514c636351bcd790bf8fc09e1f7ff63939f97b23fd7473b0255cf9a77e5c658392c774127e70115163a944c782d96a74968968bb6b8ab808267fcecfa65836c1400702dd67eca496f933309a0e02188b2032d88be4438e99f7446c62f84ce7b11a8248f10306a0f3a9126cff7617b70a6951d38dc74f2aac360e9b85f11e7507b5b06cf4664b465a783d44ae0f4a46ad89ac4fcb2382252f2ad746959395ac8d5ae014c7087e2e5fcc5785c330db98c63b9e7ec4024508fc9c47e0e4b9916b4b818198475544b6f1219ff526139b644a0ea0d0e4088e5bcd3059c4dda9077e5311b23d4b09e7f5ec77d020b0d0837d8330633c0e22836669d7ce24439ce31778a51830e227265624aa53c744a4f95996ae73caac0ca26293a0daf305df3a07d69dc1e309ec31b6819bbeaa495bdaf7e7f93a45acc68ce90e92bc0f604579f613fbd55cd036205a84109198361ed0693fbed47920e6e887dd097b95ac05187a1449738d5219926a07b96f9239fc4f6cc114da2b49e61c63a00c6231d12d3c2a178cb90a8aa18bb4e8b4d657fb7d587a6404f8e30b9fd8f35c189b5099b7458169f8b0b5b76dc61ba1fb94387b954f2639867106be9acda7da3ad378585f32d764209867dd4d53a02ba81957ef60d880fb008f590c61ac7ad51c6e2d887d9254f7e321afcb71c86effe0ae785554faacbca68deca289af0bda7747f4ca8c3e574697bc3aa074f2a42ab439541337aa7b40323978307ec34099258c0b17860c64926e355fb62a1d622f9c769d4063c336ea321494e2233d89e911e1e0c9519fc8bc8640c2f4ba8500328393a37b36f3de24bd35bf477a4eb78e7867244832341de7d9651796c50c0cae4b2cc33c7b69867be26fd2ef177c19dc2a0f7c836b3a7fcc889eea261118e625498a2834daa072504e5c4df02d227ba1c679c2daa6ed3e663647dc6fb8d977f0f011bf9b8391ddca6fe56b9fbebf4a3b4e6c5e214015fecfc8d9c378d0362ce2b9c2ca003c215575fc25e118e6a54b51f2d0c45bf8cfef736515e55cfbf1a282ba6f9d7df31879b5cb8a515fd7c63d1ba0abb8de6cdd36a3197ddb7226716038551ba1ce0ded0eb4968ed2284b8931fb05741474134a2b97861b335066b11e08a22403c09f6a1790c8a0e1840a9b4fe46230e95c4c03258ad967d53403a09fa34e0daa5fb33bba060eb8093140ac0402b8195144acc79b2812110b7a416e95f4ab52982097baeba64599747c8a0e3843b1148d810808a10a1d7b99db243da0d886ee033dc54afc3bace84208c14414a0b1bfe53ea47fa0378103dc86388356feb0b28107ea7d5833ea1e1d2b2770607a8fd575932d1e6d090fb09c314e781dbf21e8a65b4d5209057893c3b9509e030ef7653c2c67accb1f5626f040bd2fabd41614ed37117bd0dec71a401f103bff93d983d21d056651ac2104aa5747a759309a59a5318929492da0b51525b5709581b3828ee9e66e54f4c49cbdb35998670821acdb2a6041441dafed221c38bedf9cd72f6ed8e402e7345c8a6d76e55d47bc7da6dc42a9780c6be7d1f911919bec2df7967b6f29a59401ea0a530a2b0abf3948fb3d97838e4ccda3fdea6f06d96ffa9bda06376fde2e2657081675fa2aaa4bae22ba024130b5e731dd33a7fe762e757d9203278cf00089a92f26fa52aaf5d792fa4b69ce3999b4eaac36383928305727280458b2c39844ad4533c7e84252b1b0c32b49ac4b755a2772f015b358a91158c62bc618638c71863f93c6abd6498bb89452da3981e943188f764bc0945ed775fd5c9308b7524a297d965d18a6318a514a298d788292a5c4ab3bda18f1690853ca512be02d4fa3e01e59eb85bd4aaed6fa53b7fc74e22981e50f006e26c0f27182744e4929a574562a84498a825bbbef860c77f11c329fb9da45fee25d1cfc4cfe6eb838f82f6a1c2e0e7e3866fee2337ff19426b0f699bace74f203eec0922924318529b6ec6147a4278c9e683d116447a42a7ed8557460afe85068afdccb61dd1e3e5d87ae3eacc29a4603d1bc46ebd0e86f53e96f53e96f0b8a49dbe9847395b602388d25c08f9b07e0c2cfba1958671d0d2f9525f0c5db3cb26e32cd6b8e43751b1d64731518741b0d5423c4a2b9b939cd63d43c30aed24034877120d56fc095c81240fc99b3ab717391ef8b9f118f0300af798d0612ba7772b2a301ebb06e7c134dfe3c55febc7ba7a1798d060ac0690e8473d58558b1fb6edce080f1cfa379cd8354361762e1a8b9002e001d44a379f0d4dc4603c5a0aae980c8d2a921b274e6232b001a00fa487c64e168eae15fd7a1aa1c5938c74d93238b850ff8d7315e39e9ef864a55739a075da571d004d5e853153e8dd08e11ebd07bdc17cc2f320c1d55b2dd2c39eef81f471b1f9543b9515fc9a1dc2b31eaab71df0d190efe06190eeaef0699bf509de63caad368a023f8409f779a47964a7ff1358f2cac796caeba4a037d9efe6edc9ce6386e4ea3838ef0a80ee341343860fce6373a4875189a65a3bfa8bf1b36afd14147786e5ef320ef363a52158e9adbdc4607dde81a1da90a3fb2845837ded97293bfd3bf9595538c95d30a985af1fea53c1bfda1fe793c36ff3e94cd4d6a459fb40e6de99e7289b2c937fa5bf997e2b9b149691e00bcc6cbdfb782c3f372ca537e936d1ebb93de41f74d49396a4bc92abf7103382239f96147a42a92ec30467149e9a7be2fe62b6f7116ff3e989ffefde5dfd772ef289d8ab192af439c9815f0d482850e0f73aad19f77007c2fda467f2d28971cfed48dba4acb498742fbf49843fc7907c06b8ef3f7a5ee7de5f1f836f94be91b0078cd3f4fe30080aef9cd6dfead681c37b7f98db6b90ec559e5a7bc83ee1595c76e07ca26d7e448552df18a2bae18c346a96cd4b76e06ea2cd967822a63c072a31ec62734f84c701e759b1a1963c63ad2383de63073502b72e33073543eef3373eaaeb9cd551e73d8cd50b1f15ee33d7a1a6782de6dfcf8a9ca0be3af4883a7c3babd9b6af0e36bf0a59d20d63813fcf59c722fc77dcaa129e52939259b2ebb7853fea17b676f51ff6c42db543dcff33ccfd321d0f61eb32ad364ce9eaed21f7ecd855834fac3fabb4173d57968ae3abe4a031dc19a47f51a0d74aac2571d08d35c88a54363be7664ddb94be7c891a5dac1e91d77d33ac01c592f7264c57c01c7eb502d637791236b2647968c0c5987d6d0fac48b4a2c94670b22ac14531c31648492e719c111290a485170b2b1479af2e900279d30cb13d8886762028e0251c7c10481a7b89b5dc2d92312149868b69b816198866d5cb6d372324061f87279a509f84bb16ea381208dab88b88bc0d8e5b6c7e149ee31c1eb87281810629ce088048524fb877fdba3bd59064102fe8a748f44310ed0448c14c8605b0510695a0706b8cb35641b51c0564be0cac1240537a0c0434964b58eb8f4cc67f2801d339d00ca9eac6b490755d14d891d919670b4e9ef8c749a8ad82bd5f35ca520eedbabbe617fcf637f4fb7730fb2bf9cde1e74652beeb96d0faa029a45a0820956b0b6c955f9841e74f551eddc29d5dd39dd83aae681b86b5a889523cbeb3c535e81814c924a44acbd0fb2d73e8ff058fdddb0effe5d1f0f77ed413cf6dded3b0d7484e79ed34047421b5a0461c8ce01013f8eb68fa7b4af63804eb12f5d2428f5abada7c4e27e3f802a380d52d544c08f2396d59ad641555d06e2cdfccb4a920f69c414ac0004ebc8ca0da412a52fc8a10c4419514ab964f547e771a0abedf638b4dfdbcd6a52cac78d6132874b88a12d9128a25c4b11a20c992883897c72801963a507da57708095e86afbfd3cfdc0c6da1e591fb8fabbe63f1c1e178e96b0b4e3b0df74d0111e8f0b474bb0b45bfdd1db47168e1c4a70c4102c4d7f54dbd8ae694124492007110e23132332294b25ac48b6a40432a74c8aaad9a2524a39d403a807146cb284004f4edac90999328746e1c8ecd3882329a9a41ce5516d3c20ae706ec80f20ae6ccc503b1ae2335de47efe5ef192d4140a6d1b49a16cc920392a275b14089245dc92886ccd1cec756271a9051418b523521258d8a10c125abb6590dad1101fda98a03ccf0425d215461b3b766551f2a8966235cb78b020324e930c324169512cc0f20371b523aa6494c143cca94ee80191216cc9fdc4951c9267c981945b72609765dad4e57376c676ec966699cd91599e09c62714986047437c917b1b7475b595f27634e656801236e0d1ca0a74d4b9df4eb6e3b31db31d3b2924e50c4f28baae1e98a09884a8263ca8c74d52d745012031584214540c11418414006104de9e882c8bd3e4046068e3d215c5d251a4f3396c24c04018b1a37e2887a2b641700e3a35c8a11cae5f55e6f023759559ea1301c65b0e692bf8e41daf8099835d0ecdab6e9ab31020b114b3b023a5c28ef4093c318238542541300afede71083d30d94b330896bf7c80591831f4220a4d8664e001775dd049c05914ba8913175bc057145e0081892638a16445d2124e1ce118716f8cababa66c865d95ca3fe6aa3832f3c2734639678c736a261f628cd7cce88565d955338b516dab5b9d71b92b9eebb83859b6d34c756a45544963a4f88a2debe903916a414e5aa55dd9588e733bfd08412e4849c5555570552ba4a4424a2aaeaa82ab5a41651862a497027468bd2a4e1110bcb00833411007bbae6b63bd22556d3d6d3c95f6f52294f858899ad004c7040f5406508530309102900e4ce108150542548886868650c04409378a21a965041549b410040a2ad1904a9568e20ad6891eb899e4a1b6f726b8b03dcf73020f3c2743406a8208576f134f696b242638b097104b6042899d691bdb981478500210551852674e5c4213a820a31c494111116e820a9638a2205052da9ebc2ab04b14619f294e800524f410042821a8272022a269014ba58070c2c5298c4a5df8004b88d8f5b50a1ce22ff961633d84a0c3298c4a551513b0409405812dcec4e9c187ca0463820b80a00da8a28a1f9808a2d9002b8a2a120964b5492c5155b44c48821024a2941346384c4c9c6c6217865d333d38a20411f86a22c911281c916246892356203901040e920e7e48813a7dcc6e2bbdb04ca3503bdb861201ca673e81830b900c51e18925434e4c8084218e3423f0408907b0105cd7755d54703ac89a58caa008418684232932278e30021eb22986250c211484921814e14715424ec0030b6909285882077a9044032455f861a44994a112f4a00221062110e2c108414029c2083e3c81082450020a4a3c39e22ea04ab00155020a82b8e19ca773eaf03a56694ca5309ed8a51f336710e3c35ae3f55a8f69997ad51905c7cf4b28314efc032c631421a3ae494cb298149ccc7f1348bc89977b654b2151e29209e298136099495bf64ad244132c68a289269a68428917b40d263b9dbbd22bcbf5dada966de42278ddd2158e30d8e78561dc962d76ed57b7635f35ad591d0aed6cd27a49ebc294e9f86c08269830c204134c30c1440c39ec91b9589164cb9b7e2bb792ef8abef6869747aacaba979cb56b7fc9b4ab616ffab559ceee86171dbb1af226db99b25007a16dbafcbd3fdd55def343b7ca539e659dec74387777ee3ecbbc977bfa2f5987de1cdf8539ec94471acaddedee3a73467753feb27b3cdfbfec2f99e679e97ebd9c65f7b22987dec394cf4bf9521ebf72eff7a6fc999e729567d9ef4a4675ddcda8afe48b8af7f15d0e4d5d77d353f2d7a53c1ef594e3fc79c7ef7e5554509953d19187dcdc4d393c699eef9ff797bb3cf434cfcb5de24dbf387bffb2cb4d2fd9e559f68e73f62fbf3c763c2f9e0e855cb2dd718f9d0d01d8b2933e74677a87b94d45c0f211332101d31dd9b14bb9b12cf71c42cd4f488532699461617bed77722620b03dfda3448aabebe924cf25236c7a242988b250c5fed25c4aaa4a668efdc9f6f68c6e07674e04b32c83048e5b66bbbd06656703a7b4d2c555685f33cbafe5b4aa1d69290dd394240c7a4dd3cfd9be9aa6a58e94ead1d5b02cc3324cd3329969ba4850fee791ccfe9c331d6ad7ec0c1baa0e3812210a4b5b861d874084265b7635eeeb891085ccf2a4a96482365707cc5fdbb2c3a5254f971c0aeda944053d3b5c1eca9dca92e7cffa325cb2aecdf7207864593cc434a7c5c3ba2d8c8c33cc261206bdb53afcc9e81294d29487314f274a2a4d5067a15187994df6d1ccb17a87cb2f4d1265c0c44897bca5f904cacc6171fab9146568a77f2a35845b29b3b553aa1150432dd4af96e5cef548cb0849f67588ae6ad25cb2a716a7ead0a616e76c61ec6bcb9ea6b0bd3dd9933dd947fb5998cfa528634e1b607491a098e7db3c9d4c309f661da34ae511d4f45c8a37f49c1770be7d38973a1cf940476c4c8c0eb35b1de2b0edf3affca97bc7bdcb5b9e7beeb1bbe89c81f4bf176d43ea3a2460db0309b16478900c3af5c9922cfda0c9d2cf7682df8d5fdbb7e899348f66ced53be8ad9e4733899983e91de14c2214da554f252dd7995687a9bb5c67ea10d3b48ce5d4b33c54c53eed887414c5c69ed97c6b76fb9ae91a26a8656b75147004b6db3e8c474b33c7c9ccb1faa7ee2733c76efbfc43b7cbe791866132ab9775070bb85c685f8cdb5c72b663e7807f2ed1d54f5dae33b7fcb9dcea7de3cc61d1a1dc4f4a82b2eb43a16d6dea2fbf5c728f50d376a03becb1537fc961ea57cb6947436e7b17d9edb4e85068db1b2255fd5a4ee91c6abf6c4bae67c971bbe4506e174d8b1103070704ff542ab503dd2e5ab68f3af4bacdf72e39757f680dae25c7cd62f7964359a7cd7a6c2cc7fd1ca9ca6eab57e25ec9dc51998754c94b212aac499b1ed37b4bdc53280c4200c73cb4f697c6ece7cd37321de61edbfa08b1a6651a7387dc990e85a4e907dc63815a7f595688b1a398809d6f73110e68b9880672cef95617e140d0ef83153b1b590349d675a4aa8c06f6eca2366254c59819150accb46172a34c981dedf926514c4e734454235999d0c2966048604568614a5263acd07277fa10579c9e4344a28bc8115d4d22ecc86b11d9b315e30c678b5e99ee39445c6149cc3b5521767788b5aebc9153caa22b89947185b5a86afeb426488b96c0f246342d9ae04cb2e7b156fd86b5a8c68eaa5126a9a4f29abcc228caa02176b4e9f027a3ad0952f9498d2a861dc9cf4d5b5353236a34ad9e2da309ce242dbaaa496a127b9e4a5d8d84c0218629cd9c905b32738e92c0923025b41a6149604758d27d881dcd384d45ee2f977d40454e6b392fe0c8a2d845c51057989e57f5c0fea53327911c22c49e9f447445a350d58ca1b789d0287435511055f373be469944f1e60438a445b488891c725d9ad2287425335573c7d00087936808fd21fca1fb8739658600beb21057338a28433e453f80add87352b1272da24ca86ad61f620e15434441cca1513e89a89293264b8a94a49260244c8cd027c429063a7364bc9216d1158d4289e8adc538959a5128a5c2667aca649e56619392c194898c12cc8f3d2f0e9b7e4a5a674e94719a8a5cc7215997ae434c49dc2833445cb5e88a64aae89310b1e9ef955c4b76c12ab4f593d149718e8a0ebdebb3a5a968ed5387de4ed1b56807f83bfda3315324362f6afb0c4251dc639c81129130286da572ae94a64182d02033f5949e3925c34c90522272866a440545896c7aa2170a6b99fbb4f2d34acb5bae335351c64ca1de63f44ca741e88ab6b48a0e82d2f831ce508d4818f4f8f784698bae66ab1a9133cc201206bd0a6d6d5a8dd0a34de765908aa4d59d7e06d1547468a936752d8a37f42c52c02fcf1ed6a2941cfe647bfea48b04a5fef2948e402ef7c1a2d1daa9439f14d804cfdbeb90803d8124ab25f5998ba47ee5221a48a552a94f5d8403412d0f62c5ce464a034d56cb75664b6639ce3ca497436bca21aacb3ce4a5df722d42edb066fa93ed4be32570dc2cb948659aa4d0240b516cba23521698d4b8ea2e86b8ea34fd61aae6a7a61ed8b7d65deb2481b6eb655ccd28af2c96c024d0a1b7354db72d600924caa85ad5ea371ffb0a195a48896eae0e7fb2ad7dd39ab63c7848d4ac44170de4f5a8ff0f81ca244a6736bd54229a40a25021e82a28bb761a74e47a1076fb1ae9e45253c0750a78ee7824a060a16847242c0c59ed8874052b6c9944577288a5d16dd91de120442a282a7abb2284825209077bc6a5a680b11dff490409cb961c32417ad008cf6b4da4284dbaa4d104e9a9001ec10e902ccd052a1bcceebb81dd9e07bbd55fe5c9aee9afea10d3a824954c90e6c83ab420b054924913049792a06c4a5c29e555512a5996653ee60aa4aa4730c4d1c116b5c37874c9cbeb2c598104cb6357d4a81863a47565ab76ac92ce58a3ae61adb5d6ebba2e2c5e55afa45421d64a694e6547ed4a2f5c6b55d93d95d65a6b44a2275a1ba3ce3b5a4a2fae0b3340f9a0503ea8285e6802ddb966eb8505815d3588cd98b65a281f7a6115095db1ab9a90e4a4f5c2e235b35968ad9335408c4b4558e9ccad136f8ae05a2b6a672bbb071589602b963798805cc996a436902b0944ea60cf7814244890b91391d8f5d8bd2b4faa34622130b516637a63b2745ec0dd086cda92ad1e9476dad913fb7a81ceccfbba8e3a26f2c51238db11e90a4feca15f4109ce0f5718ba96b8aca084734d218334801dc23cf1408b273178e2c40a2ed8d7e724522255808222aebaaa2c5913a45a1e542ab08542880f3772b064714004c5112420a2c8080a23dcd04112144e10dd4002040a2c04b941c452ca081b143408e2c50a30b623521142bcf881b91d918aa881865244113235c0d78e48451c81f4832894ae8304e59563d6db98600e31e0f9dad598baa7ea1c3c76e2a08302d8374d8109ca73307bd65a2b0e18a671d0a103872a04dba02bc9d2110a08567a80c3ebc8ae08c1e1759444b363a92be5e4d2d7936b698274e95a92289625144641c1a050e3890ea1de122d2269d32877a0b4e96d90781064531f240e701863dbd3a380c0a1a5e175741dd115f7cbe9ebe8caaa437b8fe82a460c1c037ba99894f1df5187566a9caac16a3357f10894d26694d25a63d01f6025aa285541c9a6d7d1a694d2288f664e521254c9a647f57b5698944c2505b13b9582790d3327ae5686c8508104043852025acca1865c4bbb9edbec238d6e83f1a67edbe07691019edced735c1bda256883aa2a935da5bd066ed97d37ecb7f3d86f9f01d507f7da8a32e4eba9a4464733475e9918ac753f373d9a3977e6ccbc9e2699392e6eac96de4caf63c7a40ec5f20cd5f64cb65d7c7636f438e28a3144d997f6914066b2dd2e40cb8157a7a8c059d89811468d96a45a584880940d96d918cc3442ad681eda2d071b2282f531076b61f7de7b6dd3081be2da578b5a8b314e1919d1daca74c5f48619a9189224148cccc513acdbd45d76334c94c52f15ee2643de747ef1edc88c0b694455f5563699442411ba6d3211898ccce5ef34a2c554221206971fe23f44810f5334dbb94f23336747f6696416b50087b325739da96146b0220c09ddb2cb51731a0da4fa274f73c9723998b1672c67ac45c68c1079f9cb632a11ac55af1de0f06ad516d69a57ebfbbeef585cd9fce6a1dd007888570e807c936d32f623ca008fb5a6aade5a8c5329acc562f496dcd2f2ab88ae6c5e7f1981d4e81a5f3631a9542a959294fb7eb564f6fa225f3f8c6a54a92ad2086534c17a17b9cee45a548d1091334ca308a3bed66b1d0df4db35ae763bf432c7aecc74532a898054340fa2b964f5501a4dbb0e09d852f5a0c952dda8b90ae6b5a56509c448c57db6645eaf43b9bc4d233367d33bc2696482425b464f2431a7423c843ea2eceda1d01026b7a209561de6c7b4b8cea4f7ca4e3bd5320dd86588b84b0984e6dadebe5d669b0eb1c75c87ca2d93e9b7eda1d0758009e2a4a86872c5964d228cfa1655557d26384a008bf08844ca0038002df9a8aa0f5d725c5d2daaaa9f46325cd2cf408d248c7a61077196c0d843d006678255522359a9518e11c4e1023432d4b8696a4ef3ab85e90a0720c4d505626dd1550d54556f2dc6a9d41f821b3fc4d9f8e16a87178db5e2f0a7df2d5fd79902f1465e97216f35d05505a24a5ab1a5ac3098aae4694e691186fcad310e5093819c4583b56a484ad2580bc6ca601a1ae7e974bae8108d3997e3d63aeed855ba19dbb74d63d8d59a60bd8c602dec580bb39b3b779d99b38f04b25bdc7633b8cf969c399cfc95323381901e6cee2a92687357e96cc84c20c4687392d33b58a0c585764c4d8c163adb90e06cab39108c196148664e11d6c28ce0ad86058b63d9b2c8dd61320ff95d2d1e1295ca616db95a2b572b44a9d496cc0ee393568815b1ebbdce9461ba9c026d70e80fdd3b766868a886cc86ec8a2baef8042b04b0eaf85ebdfd6af2f294e6508a01673ea2ec4c87f73e12c8c6ee23ca967b9b44fbda1d4272632138cc5a522525101a1a1a1a1a9a1a9a1a0984e627b37445a3ca8a66a6028ee083e383e383e38343ef83e383c3045a6be853e79c73bee61db1476a1f9c5def83b3a5a4979d0df2b45ec69c831b656e8cf16672fbc9f628c510298a28572ff663af13ec68c03487494c0824733597a8aabeca18c419a6d1136c08917befb32bcbb2abe790d99a5b3ea13582121555d24695b446589e5b3ea12b3964aaea9339a4a5676bb660364b7441cd550f261246f59199606dc91399ad09664964822f4cfefac2527f171d4e39a40b389c4b467369dbb66dfbe5631a4519dac39898c5fb2aa34a6a970e5df4c43e5b3347d6983085eff6971c4a24f443e86a86ae6634016260807948599fd0950d141ad9de7e2ba669daa5762cd372c564aa95f7e65066dfab73eca0bfbfea37ec62d8b71ce26c19d33198501d45f30989e7eaf45eca2509239343e8929c01c6f52d479a2ffac4aebfd7eee5b7addeed4a2cebb099ab1c04a0c1feaa1c68f38da67ee9349a792803b37ff917598687774b2412c6f790db7ff110b52576a9612ea3b8594621a164531038944f7a5a5ceecf2113899c6116b1b80c4876fd8b24d328de5427f3c904e34dfdddb44c9646a6aafecacb0efb96e9ae5d0e179fd13397ac982c5b5f9644e69095d7cfa2d3caf3905d679543e24d2d02cb21b7082c91b290b46b7644ca020bf6b59cb5314958e5f8b1c37a00e9d7cb1f732533835c2261d4a3c2b95129a62038944f66125355aff33cca330913eff572899c41469130ae6622c3106feaa55cb2eb2f6561616139f6b934a39839d7f7984f273327e6f58a51b962ae0fab31af312c78b3d8cd829de52a3046db7843e3e5f737e3b64cf7ec68b037225561402ffec90309b1661e3473c98add8c1d2eef7999c9ff64c96cc3af4302b67cf1a0c97af11b2efee2465106f69887315b4b69f9cf361394d8cb4b8b572daab20e2d0b1de24f87a91d23a3bcc8a10fce7e81b97fd1f2898b4b0e7d705cacbc4bde118f019c1d451413ac777928b45b6839050c0b2c03f55880ac614b8dfde537873ebf2f398c4bf9fe7947bce2cafb1ef9ffe1d521ce0bd58b2ac7a802738caa1719c330ec45c77823b384f2ef398c39ccafcc577634b8e897ecb2b1d3c6b0ffbec5e590968d7ee636e63287f730d7a171df63f7d9e5d343c7947288ce81651d4cc0d8c3c844023a86a04ea813eaf42b8d6097445a598afc3141a01e51c685ba5017ea3aead7c45dd95679ecda6e0686ea1620b4e56f0e39971cb7cc307fc97167ddcbe553ba19d82da6e7138d6b91a59c4bf52c8ec076cbdae255d61706bcfce53a3326fbe0ecefb59bf172f9a4c5142d7e5b602d30faf214ece5292fd9eed8bde81d2cf0b1c83e13ac87c9384cb0febacc3de24d7d8ffa1c9e4ab5d08772880b1c26f8bdbc5e12e991bfd85f7488b3b1bbb8cca18c01030ee510593473421f9ceaf27a5969983a13dc2e722aa78ee5d0c676d13152997b4b0ef19687c4b0641e72afe410a59279d494188587c4438684a86dcae1cfbbbc8009d673b98609d6e790808e9913b72cdbe4b3ba2180657466cef67aa01bf6d877e6a175f1027cf88d3d0437865d05e6172ef24c8ed4c6c674a8dd07676f5a87c50870d6d98854a56532dff2d7c6cc652ec2012c17d1c0cccccccca58b190d24592e74a4aa4b630b7d7076764d1799b9c57e3d065dcd68991cafcfdd05b984b63392188a62d7ec98c4d01131fca9e14fdd54f760a79f1ad33d7406fc4b563d633d02ff543c73ec4f9d532e19dad7efbd97bbccfdc6ce145a1e17fd9275e77254b94187415c369dcbf19c8afea1dba4431f2e37703ae5455fb9bd1ce2b0e7dc374a16b07ce5486310b2ef598c6c5b9f6506ac9ce558aee1bdfb95f99ee6eca61fb49b7ec0f55ee9e51de8b723af5d0b57be03dd3d2dcfb45fd33d2f765d8ff72cbbe8d0e950687b2ed2744f3e763bde4d21ee3a1f3bf79c7cd7f9d85e4ff7b8af4bbcc9e4c57bb97bec76c8ddc3bdcb3a08d5e8cec9eedce33e7d71f7e0c71d7f3929e3cde572983dbbe97367dfae3231151d668f74c52387a1fd43b70e716f79878f9db243ee944c07a17d758c37a6c7a7dc45ea6fe73efbd53da67bcf740ff7ae87d763dfdf7b99dae9f1789e1cdaf837873a76c4261dca21ec61efa6141d0aed149bd59d5de537874f513c79c81b5ede75d7a12aa7d3bbcce9ebd90eba4feff4f5d89dae33b9f79cf40e7267cfbe9453fe529ecdb8dfd53c76bc9b9ea277ba73433bd33b5094dec14076a67be463cb4f590e6d2ec7dd6d4f0eedd8b37296b7acbcbbec6cb867f9ec7656ce72834bbe9363c9de6367c3ca597428b45958728f1dfe502f7f3bf72bbf486320c1b6372159a1e4de8c935d8d952d754f96e950ee1b1fca7dbffcf2971a5df6aef664c7e352a3bb3405e1cfdc31de98b8eea6cc711cf7d130dd4b793767f7e279737aef668fa1fd33bb97ebbdfbf46ee24c2613103edd444d261dee984ca79b4c39ecceeb4c1ec77199e3388ee3388ee338d33d6eda1f9d8ba9eb6179ea2efa26eea914502a77a9540ac87e3bdc59ce9d659aeaee9e3d25c7094ed3b3dc711ec755d3e470f668e2b86ad261e5722894e5984c579b949c4e3dd9ef4973dfb32fc7a93a75dec99482674ace8e4da6e3895bfee10fa7cc94290595ca2c6fc92b2bbf99e5a97cdfc2b232bb87a67ba66e7657b9e93725e52c79e59eb782f54ecabf2eeca6d7ddeb66a74d494b6099df10ad9466b31eab71edc409d6109cce659cef91141cb38cfbcd7887dca61a6fba4793f6f47d0ce5c6610e2e67e9eec27297eea72424a13bb1bcfcdeb2d03f8e64a96bbf26dbddd3cda69ba317b97b7dec9c2ea3d7e9d0d3bda7df1edb748e33c993942b8fa8c79bbc1e95c77d5fa38cef579b7e6596377633b81cde73df524e8f4fd1e13d3ec5d3c5307987dcf8d341689fb4e9f858aef106bf25c709e26fe7f4fb93eee1ee753dbc530e7becd34ff732b5d3f374b8e3a9fc6452e14ed9a4c2a95c67725887421bdb2ea7289e3aac91bdbbd72fd0ce49ea0ba3244af6a0f40efff0557e8fca1ffe3d2a7f27ee58fedebb72754fbce9e5a82c87b68c9e1cdaa61e96bbfc85e5de656743b7c372971ad94fbff9e4924d2c777171c9f6d794bf9dee2cefcec27907c1591e90ac23299de919dee9ee3dcba6d3e9d475f8d2cb113fc6249563c91dcbbbabab91ddd32c35deb078c6b1c8717235e20433cd1d21d441e86651c60eb963bc3175f772dd373be51de4961cde319deeed9c70ce6eca1e97b3e3ccddc49d1e9a4e7a87e59fe933b570f9331d9f7b96bf7b77584ef770fe3abd736a39be4afebcabbcfb6dc92b67c928d4b9bcf296cc9d6505a5e304718ade49391def9c8e759ca04ac64fc9de095f25674fc9a7c76e073320005b5e09a5d47c718261af4d36b683d11a690decd76b57037ba5143bbde6c6ae57b1e5af28b63c3683eedc6075a63159437e3c17e52177d53f72d31da4182e0d99ed6473db1ce2abed0433ee371ed13aab3d4ed094edb71c0af5649fc713bc5dde21b79d5baef1e6de946b68da4ef05add937920a6cb6ec70053a7c31e9bd51860c2616f8fd3be760c30e922f87182dda6431f3bdb597958c7a9ba2a7bedcd384d23cb3bf2da6fde6acc8e46667beced57d3d666c772dc57d5e1a39bd7133bdda3ae1334d5e8bee5abc3bab777dee94fdb3bcd4db0fbcdd9efd6fdf4ed378775d70976ddf12fcea1ddb8c3ddb98c7508b4ad57e3e6b0b78b335783bba7aec6e976df74e8e99f79b9ae33dd7799cb3526b8c3bdd371821368561f8b2516834b433ef468c84b1e1adadc515baa8af73776345cdb66b3ebbe6593ee7288b9b03b3d977bb4cf10f3e09f748aaab6eb4ccef4cd94437b03d6276da96aebd12eeffd7a39c4dbd38c5cca7939de703a3e77d9cdd0a1dd0d271d7b3bbe97392f47ef940be25ebb1b4e1a6b5877fa87ee9f32a7afa6a1edc873c7f9742edf807fd291aa240ded5778b9e3ab7fe8d61eb530fe875aa19d23c461d016c0364d4c8839e79c31524a6916aa90ebc55865953ce4a6f4d87fba8dfd3fbf74cfb7237fe91d99dec102421bd33a5cd7e1fa0ea77d691de47fba2d2f5ff58ea977905b4e2c4cc15a0e85abb877bbdc2377b59abde6b8afcbfecaf69a3c60bf309c29fcd66c7f1dcb18c5a8865d86f2d8af5aab04c2bd7b465d2748c3f482291f65e21230185a51d6e4e6310e240f31004ca0344bcb0866019a508786b6cd260fd5882b7bc07347a42a4c4bc08008d903ae3b1ef92064cb5f4ff680af1d8f7c1802ca492b96516a638ca1c65de1757a7197bd5058f370514a290ca57882faf27a48af2b5353bdb4bd4ee755759499560451b03c7d4d176c1623c528fdc015e35f2ba5284a2b45515a4f4375dac78001cb47596b04b250c839337a51715dd7755dd775a9e03a49eb8549991ac2322b32cebe66df28a596c3281f14cad3b46cbb3030d06bcabb711ca5f4d266f7840d493a63ada64bcb78734d1f97a3820bb254afac4e91655996655996e7ae5ec8329d51aa69b4650cdab66963a85106dd36996a398cf241ddaba152305a4ee17357c454c7b61896d59631603a5a4abda02d714a72521e33e8b38ba32b1b355ec0f2b7666ddb0cbbd8dc57eeba1831326af2ee466dcc9c9b75abab6d70df55dccad836ec3028d4d2bd76d72ba730e63a1e33b2d367c7df741899683a8c4b56d74c37ad3c39c704e7b99407b07c1895a68cb59aaab61165c4ce34733a1bd20694bb851b8f888eb61cda934eba547f2f2761f2646535e97a5d1198cffccdee18ccff9a6515ebcc1e8ca41ce8039225936200ea539f798aa128130a90a1484fd943ca429320ca58348db959ead1ae2c4954893299394deaa993b96a59a245ad5d29ab9e259b4f9286cc9c900ee160d7532195dee00b0217556a671255c11481575e4f5b3327fe80e30e27945daf329fd0d5a42b90d216fd9227ebcab2b3fc6a59db4ab59258f254da019e0f67528bae6a88aafa68694be5216d652e99c5637783c5e74b962c167772455ece22bbb0b697958cba4ca259868f924929d9f1673723fb29d708d2952c42a4b2895d2f855a8f92e24dbd149b3b8c1255d57b5932c9b2895c922fd92543891227f863d7532130d0fc912cc901f3411c481d049295d25fad9209b68009d624a94469e670bb5e46f186c825519c3cd9b5ca2a6c86b56ccc9c501a993915885d7f873656b18a556c2849b327cc052cb74cca76783fd9bebe801a2e0a0535512ab0194ed51aeda71447da37f82bcbcf535215c86801a7ec8844c5139090f450a312540821b52f85d90820408c49e01d97442701a882c650feb0a914228948a1b4e92bbdd5020d363d4e6921079bfe507e6c7a100a129b1e670b3f6cfa183a5b70b2e96bd8421736bd0d0f6cfa1c3a68b0e971f8c1a6485cb862d3f72802d20524444036459a220a9b2251c1834da90c0396e2e8c80820f0e1075030a1e8c713d6a5827d993046d5e3e0c8aaa5bea1045066c0032a58819482fac3099a9c348ebb6221aa10d30e724e998cf04d464a46570cba8a1d972335daf6f6e3996742551f4fa4aa39698e980d27906d2735ed9057ec0c5395bd7ec0e50fbb108b32c91fa66dfca04954658fa18ca480155947a48d128eacee36a8cafe404778e6b9031de1a19fa7df74a781b6731ae8080ff74d03e9e8a981a8063a4dfa236be9883eb2b6a9691d13b4c781aaeced099aec106f7b4dd33d30217018a36cfb9925cd2c63b0f6e3d194c9edc7b39d7ed374c9d2a46daf39b122d30b70fd8df19bcf2ec4ca34d03d76a0edda85ae47aaca5afee6b70bb180be899d47c3be611a08d4522617e053bca1565b8ac56359f5129d14e93a95441b9344f43e92481239a128ce3cba7894f2094f70802d0a0ff0c57823934419dfebb121e40c6684d520ce505b5f922fcffde50b05627791b908629fc93682d8656d61d8c36a034cd3fba32d6da63da4bb89845131237ab40435a249e8d1046bccc36984196148b022cc4893db640b32bf02a416a8448d7585492d99a21911000002004314002028140e080583c150301eca92a43b14000c90a84a705418099320c861ca20438001801020000002000033b30d08103a4ede1a89b22ff90654ec0e745fb82121745cf4ffbdcb1ac44453eceffa0bc01323038975dec5479fd896195872bb31ae85ba7c5c7ff0eff4596906a7da582284f7f4775d6be5e97df2c7e7317cfe47b9eba8de033a21d392d99fdbd56fbccba9ad2a08208d00ea70774e7eabe57655262c0c31df7d2ea876aa7fa5eb68c4f7fac4419d856cbc892f3a1063a32b288966e0119d392898df6a168ba2abdf6a08727cfd6e85285565e98c7c98c6d37c1ea4ef35bbc11b80c48a5ba6c6c700b8209c8774c17935efd6ff3aaf25a598c771400665bcacd92cbaf3dbbca7efba7d46879a0e0e2f6ecc2479fa3b0f7e3bfae050dc1b52d0051968782fc3bb227e1cdcef62665849ad9c3efe47b85832d605f1c901010f2a54c47ea93289015a74a56efdfcbe19ad24471868ab99c61dd9352e19ef55627eebb76051f0f419d7c17623b9a41406f1f2ccf19dc3346e43de920cb068243a0db7402acec59cc050ee6fef9dfe07f00b10444e94e2bd5babb98cff8c8c7b8b6f1256ad1a0dc160c44a561a8d77f497633463eff087da4e4adcddd0bd47375a01766f55ab84c021dcb4dfbbc2db3fc0d70c52e09748fe01f3bb7700ea738dbcbdae4e98f673c0f848d315e82b77b96a7bbef9bb179cda3a05080efecab9823ab49609ec4715a44b6107c3f633003270d410b9d19f2128a75d281a0d20e741e12bfa8434b2d97731a88678d03e3ccbdbca2478c2519cc71aa2884f0bb4875e0b867b55b208abcd86558c0b090c53b1d96c7183d86fdfe02c27ccf65182638f15917c970bfa7fab029edabed6ccc15a99654f66e1dd1715074cb68540e08ea6f4161f1ef75bcf1c831d658e244af80f0262044eef27a8ecdf3fbca6e2efbc77b1a31840f42e7f17e4319a90ee02bb4d8ebf96a4937a874bf40e7d72f42b621c6bdb4cf47e36ef2b13bdbf5ce04fb67f48b730eafde1247a430b0f6c1f423883639bd5ad00763c9f3c76e7ddb593a9e6557d6146255d11bd63d76fcdf2c91240f4d69ec3971b5abdc08fd5260244efad85b14fa91c99f79f87dc3daa8098ebddfda3bca169de322ded2ca1190323edbc2f3d3974d8d1cbf715090a7859dcdcde3f3467d3d6f0ed7876de622460e63b6f45fcb648ddb9b6fbc75eefdc79fff0d64ca53befe77733145ad0cab5c3e637e57367a5598854dd6a8cf4f69a4572ea32e56a933a15d765579044845c9ce84a70249df30c7a64acfc020abd1f14930303eaedcbc879cd0361ed81a945b8023e7030715bde50c4d7d4eb8eafd996f7c44e45d4bc12a3e86aff0ade3454d9fe30cff7681e2de5c570605d5cb1a36401c363b6f561f2e4b6bc3369c1f68dac6b53ad1b2a09bf2bb740213e3355715ff9ca5d14b0ddf659b7bcff410d434ae8cc63b85375e75744a9e0b2d5bc91b5bcbb0f423ef2144d96bce56dd726144f9d2f457a62d0fc5e50ef77c75e4b94c94d4036579497211b5bde5f5eebf713797f9d5d621845cbc530010882eef06c685489d6f1de702a018e54b7456584e58738876b024235ed051180d3be089e8b3203fbdc92410c59bc9598e916bcc78d487556451fd8082219810df1f86f14ab88ddb06380b25253df494945e361bba14a0b7909d10e096f889d78af8af64b2c5c78c3ccc636ae75eba0c1dfb55b2231dd2055d7fc8b896ed095da7d6cce9f7300ed0da8aa1c7626108522bd5ba776e0c4de763337a1d21fb2f53e2a66c15b6f7b18259d83ee2971fd88c4f2ac735b6facf613ceb6de48b7d71d4bf50609e034e73278e29ad3bb4b6cbd39340a890bdc30ff7adfccb03476a7ebc898207f2df9166ebd493b33e56a9559c39413b43d395b6f97958a1f30fc4c73b2372b70d463bf800f202e00a69c19f4c3293c057a715eae02288724c89112b5b2804b723b3a16a40bf215216030e2feff574bb7ef3fca6cdc5394ca3ecdf08a5968ec61127b388422c7b95a3df64c52bc1d22ca0e97d096a0b7780e658634d722884cf65445286777579203c8fc734916c946984f5e528b7ad5bd5a06d70114dd49865549aedf3d0963165dcc4fd7f72e5f3200d48c1c00a1d57bc6ce9b6db823ec5aaa743d7151d365012bfa272b4af19ca74279f16a34c1df667d7653e75ca2150a9ee77940ee6c6bc2095a1422e061e55b828ad5be460cf77f0a56d295f0489c391c5155970630362bfea1da73bd00909525477a10a35a3d45c2026d1b93332cf2be2d8d82207893af30b49a8b2d894bcf32d0bb47935b46acad62fea79aad91ae84d1986a084b15dd4e250db9a5d8de25c4b6eecbff4d9881a742723b584aa241e9bb72093e6b2ae7e579de1b79e5b1cfe2053e1efcf8a18ffbf3ad558da2bf8453d884be7ca4887882088f2d17237ea3d66daff9e1fd7b448a06a01d4b2adc4d7ae8704995bf024dd6aa6e4db2dfce4ecf26596a33041f3e2f6a4d223604412cc49e19a7e62cbd98c42b8a5f16d8f495c0e446ffda209798f0a68d267556eacc2844daf8b9ac2a6539f63f360f3093e16ef599cfb810261d3964c8308e4390d56401b8b256f0d31428f054e01618fff3d30ea2d5e9da7f81b7490ccf8b54a774378933c9b82a75346df64093d240f9fb28dd6c3893df1fef8cc6b0cfac9f4d06cf8526289003c0dcd4d73629d9ec7dddad018d354fe2d17483990e5c966058f60a05e8a2b94de34353509173732d723fedcfb8bcceeae893770eb5ec39be44d02deb82f4de59751dbae088a00d458cc2776ec129f8d0f75fd518369ecd25e413bea6f1e8f3b97a5b460e948bbee2366f7083ceec3a3a4b67b21791dcd77693e7f30758dac2c7aba45dad7f649484304f7509af8e61d34d29658323461cd47d5bc7894f21bb58b5dd8a7db40ac34c1e58adc3c4bff3611f721f0729824e98a8acfba2801d6b126658a0474cc37671203bd5221b4a343cb5666f62cdf64863a3ca2f3e173d08e601ea6cab1e4b6d4dff086064c4c769393c5e67dec751bfbe381aad662b6c659019220ee842ee34fa8671a5584cd693b15170d9628dde09453882b469030b063468bf3c34f3e997cf5fb1d2b85c5d3f3f733a75878332905abb982bceee540a9b913c8c1ca042b2860e1f908b7fe954019faa5c4817302703ef477459fb3c0c734f4c592356401ba961aafda14784fbe5412d2b04c2c4c2fe59ddea2758b6f933da2cc47d531b05d0082a534f3cf111eccae8803efecd05e5af3e8a94c5d10044954a3d93dd4951c22a551579711bbaf66c98d2f5c1e99f0d892e16dd2630e9c1786b03db331302696c6715983c75e6bde38d75ae0dec4b7c169722b4952863330a08117ed286c092dcb153d8d413ecdc438c005985a8c9af19b2dd62c698da0d9564307a674260c64e82c0c9be7e0e3459ac12c68747735c830394fb5e89a1bd5677ac9bac438a5132aa10fef5f522d7e00ea4a306f8b7d49e1ccc0ba4bffda8fa2cae86e7b6676befe30c8d95c2928ac53d6c7a9d80e55d1bc0b00f27b873141d882b92ded66cad747c03ba8cc51063338cf453d1689f3ce953bbe43cb5be6b8523280831d0170679642cf48a411f898d86e5a7a34e0a290f2668c54e5be575dbe71200c23c453256ab9d1886190c249a4a7158f30384c3ad30749e63c247b046e3a11fedfc3b7dc40135f393a1f25759a8806dcbee1a679d6cf3acdc97b151404c739d7fec7f3041419ac0f4ea2eceacec210a6ed337713fa0a33a0ee33eb37893acab192bf0266d1788b80cfee1cfebae95de94a15ae75d546cbbf0949f80de467f2ca92519f17d6e5a13c731492c37316d58348ab960d3550c36ae1fbfefd68e336779cdacba697e7c7d51e8345a0a677840eb0e149843e577ca9cc42c4e76fe39c10281e9355d4ed56f6d8990300ab1ca4984d37febfe41951efd41954b8440612379ca3aa0cd380ae372746a896b8aa2b7ba086245421f20a90aef53f12253ad592c278c5e7fa8b0893dbc222b1c9843d2c82596cde1875c3deec95b796e254db98f66e24cc3978d2ecc7e875ceafbe1dafcc013c1c05282161b3d672823955f04758271b42d2349b85c29bf2aff83eef269ae9529ecdbad7216547406ce64fd3fafcbf3fac962ef276b9775f146c1de865e9e3e99a841adf1ae897cd1f6385a12ed8986e8d9a86c4d65ca155cc90bd9ff9c7cf743f9fce3553720832ec22ae34548e7eba6d73991da71befe181eb385cb4ccf08c8db2156ea637ca61c5aeea9da7023c8d6fc43b8d8d6f74e8388e860f0248f29585632d71ecb1d393a4297018a180b188e1ce8bddbc1d49c1e17590337cfe93bf001c1be1e4a51e4079d28d1a481db60d696c42fd781a3ba516b62188bfaedbefa0ae9cd79ea5a03d453a112f794c7dd495d3001e36bf240105438000e91c9a476fabac803ff6e9b744ac12c5ba46bba0680f3f4a40b7c5c3fc9f42998e6033d0c40883747eab7123f793000037d2d5889f8424f3f5e2a3a19a8b3888599544405c6190ea594f2831e9500c296a7a3f1e5a7fd4c55ef0ec071905ef5f50d5f3409ec8e1311b2a1677e1617c6159fcf2a3f94d8213be39bb5a0b94423162b768dfcc89e89aa08a65fd41cd18ac93436e2e68e6e02cca3023de773745993f356f9d77545d1b5ba28b36f0e57dc42d28fb5c07e85552a8bf1cf090a341df2257b134f23d92730b3d70e58060552eec216306e2626512acecfbec0ae150933301dca0f02276565e94bbc24bda5502487a0664cf8acd01e308acc02b8317d7ac78d6b8447e67b0d5e2dbe80babc6996f27f452066b2e64079ddaf486101973f8b14f36fba346733b8e2992c8694699d1ff5e48b32eecbbfbb18954619c1913fa67d979fa570293d16c608ca105db52181b28009b12c8e47b3eba4bc9342d92203ad3aa27304bd8868e6f6baea011d6f721bed71c555b66b35e5a9abc11431ae13eac1e9eef06b00f0625c343b04f319df612e3f3cd6ef5f8760b9378748025e6519a2611e76d5cbf283176212b7c609f17dfdecd238df7cff86e48af5bcac7c64dceb41b117260b05314f08ef6a676a7c6707e5c528071722f4f74f60734228e6d376fdfd1046f91894d3430734cd4a203ef4ee76a3153ca89f0388d01984904713a7577b43b9d136a37fcf1b64316fd83cd8f02c19479320c6670d276b53d04bf518317e9110c5fd10aede4eb1aa69385de90453d76e4998630735ccb5826bbe2ec63432b62769a8b6ffa8e7301349a99c743de5ac096e9e8a9ff9fb888b20c8bf71269467eb16acc2552dc91c0e42b0d4a138425ddaf78bd8389b12896c7e3e98fc374963359c5a2c86be75f1fb5287013e9edb58a237f35e63429807a7749b9d30ca9f2a6f0e96c13b38ae6ec50ab3d236a3fed685964b8740e87091080a70d6effd16e87fc511f71ed871a6ce48d6348a9f241f023609561d7e82269d1d4f242c908c3b3fb22f4215145b5417eca6c40191c05012489c46dea5fd6b16a3284d0c61dfee5c88a42ccc4ab0bd8bf94c5f03d30809c71e688989d997cb0a2cc4678665c5cb946ee9cfdef7601dcb614be4cca0588e48ac2e8f5b7e4cfe16025e7d72a4e75e65ae18fbb046585e9e7d10815117f98b2915871438f282705021bfd1a431b7fbcf2f36384e63703580ce70f06264f98e192baf29b998dba45a429ac6a0e3529172b94a09bda04ee61ba94561bf06d2e55766b2338f118d30edcd9a844ee6b4c825b6dbbea2c077f8fc9b17d7e1dd67ec0a33e2969e1e78e00c07cdf3073d3806741a8d944abaaaac4e6eee39c6745d161bf8c258661aa20eb028e10ace2110af5e36266ad01bfc33e9da895b51f4405085e4ced5b50f2985ef1b696cb998f5a0e4ed365738376236d11b001267dd9bf978c0c3c2e895a645c4cecb8693d50f39ccd6d76983ffd023eff8b41e4d5fc7f47ce0edb309284939c71797395ba960af626f9a5b0d705cf97f874ee70faf89d66764c1d6248655e3eb138038c687860b1c43231cf9458d259f7795d3ff2d9088182d1ff401fd3765d00560a93e7295304e91fc6600c031f58a85478b6aa97603927c27ff02581f0208522ea12bd966e62c359a4d53ee84a50e9e2949634042116c6bcff0374423b48803c74f2756cdd69f945e6e9d0520fd6029b12817a6fdffff4277e1b83e57fce9291c9f461025ee5285c91487c0c068dc8e66d2997e02baaacd6e65c46d55ac0a3ffbb55e8b571cd07f5f873468deb0818f821181030d8185ea254eab3cd7e19dd4da783d437606a5105820d133f0982a88625a03eb7f601da1ec5620df92d7cac77534b388eacd808b6268131566f9b5adc40da7894a33d1c24dbbf725561d32dabf5936e5a63495ec3b69b6abecfbb844158403984007409a8ca318d25b105f6015a2e91a894c0dd3c757030bee24547a66515cd7124ffc6d03243f15bd69300e4ed92cab54958a97a5749c2e61cb8cce3ec4169e8cf68c54def9930d6c5ce5bbe5599e6723868b098d34f7b2c5933ec8b977fd5dece3d05f11530b50bce089194c592c2b85a0521a655b23588f880ff7bd4016c9d763a00ddb2c3b06613611ced4ae9f8b91ef638de22d5202fe9516b93ab0db0f95cdcbf707b75d9d4769f50f1eef3344eb1acd7c6c22f8701eef4e32f373c32e7b14efae085fc4f7b15653b1010af71c0511c0702df601928d5e2a657c7028ee9cc2428cd14546bd94fcd61db2aebd66a4f6f015b9d9a205d9b9fbf7b4f83000ba85d1e3a8113cd1098e08f7789c56922f3f78b5a1ca14924a9b94e1da2641c9dbe9ce465d95c3924b1264664da04c854747c0cd960ab3f60c3df03c0f422bdcc39276781fdf27005d5c2a7e10dd18dc61d0a4e035d22f02e0f9b8db1312254d636d23fd74692bfb4c52d7c80922f4bff6f4e8b575e6a4510c3c18f9aadb442f14271c643e874ac3f8aef091126dc8ab24c8b781007075485e58506d5c169ca561fa9059330877468b319a9a22b0f5e5d3956ef4081dcee7fd88557d54654a6309cdc1152996b43146505efe2f12ea6e3a5697f7bd1b92ef9cbe5222319913638b848f7b40460408abf3cbcc3fb40d44f719e7c8347df6fb82435893c6dedfc79ed115dd6cbdc20f905cb05d7866d6de270f41335cf2eba6971d7508e784054ca7cbf608d4e26cb1d9b0847a218ad413f833facc2c8aa841a87a9ff7051021bb1f0626d20fca0feb34d9228d358f11ff29ff77e6894644fbd62c98467e4cba8ff25d9a5dde397272071f0ca557936aa440eb9e4a90445f4c2d59fe1b99eb73124e7feb1be5e4e9039c6223f9d37b4804034e75c234813d06978666fd44f9e0d59ad07c1578fc180ed9b1e38a18fdde4042a05be8de6e1311e60b2e5fb422cd017845e1c18dddeb2cf271c4df56083fe4b325b062755cb20557a21e4f7bb9210434db8c2307ea66073048154e52122ecd9b7a484ca5ed2a7ccf9ea7d59caec2373e26ad95a735df0560bff9d37f1e47363f928063880324e820f1b5809756a3f090e428abe1f48040b49cc68318eec8a0a0aa28cb7410582a40d9f0c2ba5aacc9e22aa212c708a04823d3455a7ef23d51dcacdd53f0eb40ebc3bfccd0c31b99f94aa03f140f00b6bdeacf8dedc0a8f75e948301341ae35e3f1a2f841dd72041ff7908c16c78cf44a9a11b4019952bf1fa4d5eb17872aafc38087b47d4bad6334ce7b1c446c388b8f0df1dfa65bd2b478f3eb6143f7e31cd655693667e9985d3bd895d210e401993157c2b3ea8d51ea32fd7fb2c51599a38a0c4d6ec3de425dfc26773d2805489462c3a89e70d1393bc6f4d3621bd01be832560b39b0a150a09acc4a1610a1e9ae5d4651ac3928d2d74532c19a23e0b8e118a358f6819841e98304ca38ddd8a1a54ab20f776d155cb9db32ce54fdbe27ee32a5734dfc4be7910f947e8ec109509605b95b83eca65b9b654f662f7dc92e1f8ab67710790702610e455dde2e5b218f57b04cdb6ce673c8b249df99ae556db84c50c0334881aa1a7fd62105f3312ab5c11d995b68f16e2898e8ad2b0ced12cd72274103ebc7ca93b2e8e6597a4751d0bf33c328a260e9dd56a73fe0ce4a677b6a1a0e1ae46de418655330d10bc13c8ec88f0e4774322f5243d64a1cae9f31aa812301ac7fa6f731fd700027784eb2d2d8bdef26687b40de8587633bd70766f505324c1711ccc2dc91136069704971bf3fe915ef43c77d96733e317aa3df58794adedcbab8a328acdbaeb63e61732923f9fa9b943263b81a647ec6a9d8772047303b0b734739c815edcee57939472f99e610784469e20bd8f7d6f408ef974822cbd1f034ab88e290bb5176d92f723ba1c0e9e30f9a80e2e08491da769fec6198c3a685f9e0ec0f87ad99f5b4d95bd3101141edb9a106c2da7a9739972d61e68417e8588a39b879ac4325c114ff4031f94c7fc80e2e92e0a7832609c0b310f23dd39e7095579d1972398b2a4907a7020fb225c6629ad552c877f832d5d217749ae1b2fb6ac2e7bbd31e5d1b33b075e93c4800f9e333aa10d53523d7fb1d2cd152fd501764f33fb329be970201198f9beca8966259f03db693dc01c19b6cf1cfefcfdfcd5b6b8393357f0e2560b3fc866b2bf3ac0178c40377136bd7e5b9c05d3141d07eee3f04309766df38d2a8b7520742a08b8ebac38b8e1d1a40e675beb9845bc28d5b27a1d4e9bd3ae0c260308b41fe5fa00e3512be14043c590e18bf11dbb50ce2829094855f9ea3ee754a4436464b36840b62eb52174e772987e945311936276e8103c07ce539a2c37fae31530cf0af300d94b1fb0b25441af90541cacd676313a303f95ca019516ba9c3246bbac622b4f28e4500328cf381ebfa06904deb97ed0e9bf279cab02285b06a3829bf04cd720c0d6696061ec38c239a02c309c7ef8f23a393b0d69e03adbd10686d5993703647a22684d9949e1361967b74669eae4e207e2db5a6791f945c327096accb0639ce2a8522f9ad4d6a530daf8661e4061e1d7d942f6cfb64421dee3a4fe228f5688238c1e58272d76f5d5d1d128fa9062b3b64ab12dbefa28638b3f9f7a15df5b31f0d21915ec30b67a1e6f421bad6bda9a8567af099b8be36a56128f73e0ffbf466657b87558bc10a6d0ea48cada2ce4a1c0e35097bf102a1f345dc4e713fc1c499ce656d26d328f8e662d13cd97c13609bf399e31ce6027431c20ad11bf58a5d6aee75e700ff37f98283281ff1a49529fb05d23fd38e2634b221f8873c1b81381cdced6b5a96672b3e7b86108f648d82f99e4b34dadf8c8a2d9e86d0eb8c826db73548ad9e7e22fb5c8c01e62cc2b74796608aafc8f460670f6061d842ee13fed4e04cf9ad32bba64899a4918d6d7dc9a260a2a8d8e2f17cd5c57e13e4e4cd7f48a7a06a73d5133493d84312937033cc5d163814644c4c43d1d60704aa668aa7529b32a4a85d1c748154e9785866f5e9532b1616d1ecd8ce302098963c5d6304eb26f4720606a0482c36fa726892e532c9d6bd3079c3983eab4e3a7f2571c39d50df2c94a456db24741df6312a9aadccd634b7cd5b97c2313bf56857303d29ef68b059405244ed3d05b6b42f947cf1c947fdc10779a5839256fcb3df8c579afdd1f82391e12141b7dacea888557a1ece004ed656867c36a6c96ecc6be8e567255e61ade4e1922ea6129dc8666f7a8563a335c71014abeff7fb8a76151304910e776cd6f182343534411afc2152772de8f7cef8033d75a7035231e3a20ee7e7e45c23310197a34cafaf6984383d8f57659e00df163119170d69bced71e6031eb562cd13c83a9fe9c9f932d05b0008fe8e6175eab2c19b21885c3dfacf9b8885015248584e749d7e155c8142f7c9cc0b603b1ba29c79e5ffc09e1b0ee944cdefbc9c37a2bd39bf3b1a36af2674b4f6d9d7c8423c98d77ca2828f041e4d475be399f8ee16ba815ed2b05f1e95141204c0b1125e11f75369439f4c1229853293a9cc21e83fe466e7d378aa3ed46b852fae355abcda71bf9e36244f4ab51f6e391ebd74c560ab4d1407e59024196d47cb6cde3b672b1f984c25d478b6a23e8c7b8c6a34299130055e2d28979b8b8554d8e4106312b4122d31efbd9ed96a6ef2fe4ab90dec46ee51e736a05e40218d8f5acc43bfba565cfd35239ad5c69d7d6c9af8045578511d3fc71b45e44455ec061f19092e9d59506965d53aa88b3852d1f73a01fa114f51c64b810339e063b2d9d886d25510ba39880514083f2aa14e96343ab021a1d0f60ec163dff59530473b41a90e2f28e9c1de3865284fd1ca903b542b2083d1ccc8c793d1de65bd881b2dd8f2c506e0f01df593264651cd6770ad1f930e3da02ccbe034fbc8c89851b56784a2225a9e68ba4b9f4bca640cf9bcabe3896b1ba0af8600fe3e1b5afb081c4cb221676e061281c4003768d23298250a6222ab57d26ee08b5b46bb11dd392b2a1fb0d8f618a66fdae4a59568ec6cdbc02f66eef5d85bb3a72e778487aa888ae5716560d7fecea19c5ee5703a6e949ea9ff72d10bff4c4e421ad4193af8d1c67cdc4e15ad5632f05dd5184756b15de7adb388f6e83978ba21276bdac8d841524a4a86aac702164d56d14edfb9ca6d331ecee1eced7030551b96404601aa77cb8a2203e24f720b709fd6030e5a94e957a98ef118f92f7841123acb850914f0018ba0e78b4f62b5e0d6f0c306610eae8d81c0918e4eaa3331d0c86badf1c97fbf1125ee2933c862a4281c3608317c1eb278c6ea2b4e3de9b09babbacc74441a13125f0b8a29f3c857b0f380aa8e9f4ad2a813a0ea4b3d50faed96ffe2f506329c632092955319310a36235a0227e7062ae063528eab803e58c0d067c6557985acf812d1b6aa8c0800615952de68d5863049ad51897a8c64444d44b5116f15329fc02235a4ea384b1c2db1854aa583adb7a4a8da12ff3080681d3fbfe24490d723ec87abbd42006011b28fca50b691e70ab9d23dc0463b90991a5178f430dd2e40e6cc85abc4b475810cb4696eccc61465e944fa3ed0269fb7efa7bc415c76f9c9d681664205dcd07f4be1110950e43bb67f4b00f220ac8dc4e8596f85201b18962bc2320ed695f878e8cf0b70276faa64b16de6b04f7e91e4f40b818b8ad0c2811991682407a73757a0764caccefa473deb2d7f12e77da9efb5188a8f92070f65daabe7b7ea821cf97a210e7113b99ceacca8f786f1a92e4f4832b2d10250978d4d4e74d780180054ba0a00b848d9c09b694531f902e44ec18a9b26bf5e2ddb931878920bf4e791ebbd4583520ca359152865491d17744c2cfa1382932bbc451c8f183f80a74a94312b67ec820a5884d86d2412a3f20d347613f36d399d886962f5f6b242039f978811b80582191b1ffb4ded520f97fb0ac01e469328a351ee9086b562700c804cf09591625c3d6b005408c08ef3eda642058c523229e52262c03c399c148ea19522768742407c518dbba40e6f783b08018ac597e423064dba1c818ec5d8fc73b868402c815c1492c3bf7df709c915f715dd1c9648b93fc843131c60d833f293950bfb2af40c0e2917d1204e023b8b263b2234fdf0391837825d30236a475cbdeed5881601e12f24581c64f4d7041314a3c72723c3c0622920b4a5e36b72c8561348e213e4b802c01b11083178ad213b3532c3d167ebac0a8b5102f5649049487d408c37c0de879b734cf28b7007d277f336efae1a9c5277f73c03398c77cea8f626076bc28d6d5a2abb90ef3b4574bd878afeb74943628929c790bc3169676bdf528ba50e16316766e3abfe8538173a81dbab9dce87a19fc1dc056eb7cd801dc619ecae95d3b452cf54ee611594dca9d247df3acc691d569ad1453b2985235dd4b1cfe78b21eec471213300b5f28ec6b0a0ce2e689d1cb31333644195593124e387c3c69ff88eb204338a5e48c10a5e30f726e41b051aa50738c21e130b75c13a8ed041e3d2741e9e58bc0634bdea2699933a1786b089a3112169dc0f481569a8fbff5c516b23adc6ecf15ed729b8cbc40ad0ec8109fda2e8729a59ba35378bf5da756db41979bfc1a6691b6ae231e36fa3c68f7c7cbef332dac725520583679d6047852b17097fa92da41e2b1255a43e79f02030f2626c392798cde527eea5f6e42728ddfbdd8cf61c1aa197a286d27d78fcfdba2824c972a40992a7be85c2f3b19896e9772ef382605ea3dd424c964f710589c4de0f4e694906771ebad083bd4e2f0654cf945942dc51224dd2608f7f1495be85f22cb480de754e98a7d328b6f8f18a4e4d2ea72db9e8a609503598baedcadb681a3ba1395c80053967c8eef9a867065beec886622c3a82f4d6d73b719296ea25d32b378a8e0193259ba6afef6eb97d4111371fd97e1ee43ac0f979eb11c9a51d03d485e323a03300746965a66305299c3dc6528222ab09331bc3f8fe5324d566f76e4a942b80c94e89ccc50310b9212686f7c191aa9dc11a4e0ef8e6c1da6a7829f8d10646f308a20c07b86d6b603adc9f73e3c1acd5062ef86671d500caf0b4ac444c94337cabc86d4f1373a8e71d0c184fe062d9d2018a8a8c17b0335f3e08eab45e875f282d44b0950ca646d389fd41d10f259877bc1c7640ef6a3e84c8c56e36d422edf727a2472241da3469d621a4dd3ed9b505e210dfa3ef58e903dedb88667f2e4b493868a57098403065f20cb948a894a7afd30b34dde71a7a62e86977fe62086bb0fe0998d008bb6b0dd5b60e839c5c82835b84e08a546596d83d7bb4529a991900fd1a2482f79092d863eacc3e63ab0f98034a413637082fb9dcc59fc9007d241cbeaa9bf7089ca11b0ba4e83cc45ddc0b4a4760e0e7fe41435a336196c86ae1ffd26447149f19427de701f4a59706ce86f9456536827259749fb264b2043e74a018a9a4779e9800d92b21f5f9b01e42911b02beb8422e18f7c7772f9f90836dfd6215adf90ea7aab2e0143d57f46b25e137091dca0f2bad452b5485788a6930a01dd972413c424aba4c9ea96db4aab423e34f2c0fdc62542a64f3ed1017d078156b4ec35ed30a5cafbf840d205514927e04d4a06a1824ad6757a6030ebac251642591e291398cb6b52e19298478d355ac156f16142056f13abc6b7e58942a0f11463e387ffe34ec51d57af7717dbec41ba17b82c75ec2cb20bbc203b7229d7d0c7123f3365178eb66671b6d1593333eea0eb08e2d387823d5002d0cb7575ff85ae253a236eb12670de9c827ebfde651da5a6496dab9131877e295711515fbeb1ea8ebfdf6ea7fa5d48522c1bd6cba1d5285b4cd58706195fdc17d604c004eee77bb383f38c81b31005398fd374df3b3d3619c092bb506f5058bd0ce26566f85e43d0b6300559d18bfe0d7d6dcea1a9b6a1a8e43d35def78cb68c0505d12c4c2c0fafa2b33e8d9dbd670d7bc468a0627e824dc6a109591007263f9257ca0a95b3d00695c9115580b83da1149978c9706e28ccc7648628350520cd086c400924b44ed6758be23bd6b0555693500da5d3adcdde28e024089acce8915cb9aefffdd730e55fa24a14e1a4f5aea330a10780deb97c8e71be42fe68c817a42c09407bc10244a220784d2140816a2a0bf25ab64672a75e0c1c2f1aa30531c3f0bbcd14dc4d742f9f452bf44d93c6cefa59cc6860207305c52b7b56cb84b021f11c843793e6d9f2129bdd64cc4cce5c54ca6c289be9789bea01bf58ee4b871294891a913bcb5ceefc4d69f439a922235c11c8e9f4deaba44470bf50c7daf2a3c2202ff44130c32225c1891193153d0c7ef251a648511c7c320383ce751c896d18f8f3c8ba135065b1a07b8bc0d06911f489196b11b4b74034614176af5784bf60f765eb8ee7affb1af5001f47ed7c77fcac5f96e63cffe8cacf8ff25f0ee19a8b6f5d5be5808d9124b6fe634ea30a7c20c2560ee26df74275448b79fe5d53afc4d861694829ad3c124b2836def7c0e84306edb61dca4162cc18be2cb2cfa19018d0a1f6f19dd2308d709a705938d21ac819c0a4326bdae089850441945d2fbd63b88a533feafb474529abac6302d643fee43bbbce21ec7b2e41627a609a8205e73f011a2848316973ac285eef47597031e4ffc290b88baa032a2b994167f4c32143d50065ce41edb904a9e5145694d1d8ff8c6a4ec5260c34d242195951b27d81840b77eadc0fcd04a50570c163d8c6f2c244b192b59ea8cc42d9a5192e016a84906db9c44da68ff4ad1c4e4c8fa475cec0ee7a87f0aa198e707bdf500c2a2c01aa82a583307179519637943cf8a4b0454b64c58990ac43db0e0126a3e693c3d867deba69eab3c5aaf3fbec93b5c47fb986e63a08b8a9a0f5570b0d2de7907bf611ac1247e536e840fdb3506cf439bc959bf2a9434756e6ba7a36a00bc2184a0c38ad5f944da7e03667f3b09a94b712d29031e30d8b94d99dd9aef8fc93e8480510b0b33ce02749da610f61e1527fe132409dd831819d62f5527a7b612277e272af0944d9f324a9e318b322e12221f696cc53abe913c078efb8b800938aba8f2d4de40685c62f55023aa0bebec164c9333619b7b3eac1d72312c533a8fecfe59d2b6c58ea7ad98d757fcd22ad07045815e4aa8784b997da3d8a1cd3fb10455cc94228aa25d393bddbeb592d4f2349de508ffb910cbf623b15aa9f9585e76db5d81c4683abab3064b66cb64133b6f4ec8c849634400e5334fad1116501b06bb4f18a51e2ecb5251cf350c7ee5a9786250bb1990887457db269783a3a191ed933619d400d8d63883abb462e48e065cb23d77f16d9c5ebbb387805732a7e7fb8246a83cb801257cbf54290c1ea9d53bbf334462455e551e59e99023d8987a311c536f4e3cc1548c905af78ac9fd3f81375647a3d744a69c1736cb531b0531031e7c897520552b0c3189a00affa34a4b9bf9fc437cd25573d7265ab4c8f6a3cadb42a587b9ce0c6984220ddcc0ce3722d23e6f6c2a59270c410b47d6644dbaf22affd6689e01f87b0ccb4df2b9e13b247c0665f5bdff8641c11d6e927d225d85fcc20e6c168548c74aff69851ced0bc84109622aeb103862892ba8088fed00df19e3a6c93741af221d1aa508a9258e2decdad5690cfb6add91cd54c521e6f07c4f7af7bc1a3896281d42755c1532b8e0b516a48d9cc087704d8aa91b5684ac1b557772b36cb1ab7bdcac7079349ee9c1e732062c501cd08991df54b75cbb436ff61da29cea122aba51c8958013b26a1f3e24e2330e1ba076f11899f07b5ad6b1751e7956780ecd0493f9e99fd8570866d406b0bd399851157eadf71d295a43b7e328222d96f335ca045a68e76ba958fd2bb929a4c51623c2bd81ec412c2be58adbfbee20bbf3d88745539a814af4abda3f98ab63e4e644ae60ee58f8942646aea0bf4279306459a3e5919a1f48add3c25b8f897e02d997d5ba3bb9df40b7755026a8d710298e96ed356f7d8c0959a2c4f24f3e4336e3d624818c472800507d5dbf6ddfe99dc477a5317b87e7c11bc67d181a6b05d182fb819b6098494e6c465097335f4a29a014406682900817dd2a8dde83dc4653fbc2882574c2d5600145cb0e6ce5682c02ca0ec974cb130b17462da62fd9f602d40882b6ab5db3e017a9ad6415080fff9dd1da048904676b3506109fb63929dad7cdf900ec8bf58b458e11d96c0b824024f103a1b468471f0a33e8ba72b931385ed844e945a19c02fef009e70e2707f915d2ccd9daf4f1cb788ae9bde9e05885e1243f0872134ef70d3c729da227a4c44c5f8c01210c12266dcbfad8bbdb3a8a22cad7e5dc446f21a07caca803a8b06057968c02f7a23ce1419e21cfb5a2f707765e62e5aa073d33b09df9bbc39903bcc9848ae7374c228715e3906ba184a454f788062d13b07fc0a3c033e76c9c49fcacbea9644ebd924613501491563038a6361b0c5c921e6c163c431cd91401ab277da24f04c913479c6b07053084a47eaa89b0a0b20608a70c879196cabd2caa665e88ba3113a872bca1bd63792a5f5bd5385b0116e644c067974ef94e4da014bc3c486d25ba27ad94ab37162e7a26492f552210c7454028139c8d853e206000ccd63e62d5f26483351afce7c0466addf927428f6502a42de0ab17903e85cbb7a41c9b8461d2a2dcfa1b51e5b04e07008f3b4d0c422dc99617f258011bf2bff4c0466605e0389af60c219a55888450e9f1ee540379035fe25bea94a4f171b4cbd6b0a3ce6e5a6f8afc43fc13f8b039993927cd66c4d044c840fd3645480a96e0d028622c9d8bd3d1ce5abad5233cab3ecfe132b7fd7fbf0444a3dd6f762708ed9f3bdb714890ce6d94e704fb95b500faa083af3e078b600215e94ddf91efa900dc0b0d8902f6e9d5ca25605c314c3ce594f87b38432ee0bc3a05bcee5782e7cabf599c669f6e13a01a2020c76fdc3905c837cdc67c092f69bdc43c7fd1665b7a5610099dc1120099fc7a0551b5f5ad6817d631c1715ab069d155e0f0388c459e6daed9e667e7fab90ac84b4773fe3d38c405a78309b86534294b241c0f0467157b61207402afcab67ff0b2a2e08d45778d8621ca59c1b60114c7c5361e81fccd82d30f9bc71d014ec28a35903112e63126101b19d387c31d0890d6355a58f7976dfe5d1d019eacdaef27a4f0b22e322de21b9b9b2dc23d9354bfca1d7507f9072a213966e642c8608f172bf7c84cd63f4ca865661f0583332bb32fafd673fd4424de3e44dc853593d22be489e67ed2bfc967a2549800430bc41481513907c849fe2a91b682f2688aee9b2db08f7f82bbcd7dd0c29ff83638499e07bfbdd17b70453d5c9eb1aabe12f44b0e5838405054b0805c3c45167333d7b0888e12bda3d3391990645433b3820658a1edc01157a8649f7b7939e7cc6e3e798c0ae2181d37ae92174fe80ab0a75f37fac3fe49c11f85070d1576467a3cef49292941c616287e0bba7a79cadc4997e827193934642f8e6bf9b2b9e5623a573ede58fc9e424d9098677e059d5be3f513d4a6ec60c5965185a71203a2996e74493f2829bfb1baeca57dd4e4908dda4bfb1f0fa65462c537e1df45359f7186cc721ad4f24ffb09a7465d161f60c67f3eb7e2844c0560ffbbf7f0e8d13072339b411ef3a38a450407ff60398157cd9461bfdf64280dc5de748aabf376560609904f0facaf7e0ac7f116e1cd6bd6b41b17654bc31500af2798e922983c2240983c3019011ffd1c98031870f67c40b42544b14743d08e34d0155206c0c6ed47e60599540e2bb305b3bfc9385f77fbc9c6c123893e789372b706155a3c62e206e17eadb84523c8d75a8afff8e5ab5916aca0f7b9527d6589375da1edde9c9c7751944be1f76df839358bdccfee9911a18e5bb969a21670190c543c2c5e8a4f0613c23f0a9b98d1f4ae78ba14026a3b91f091d73fe9b0870a3c633801fb48d3f54518f4fe0daf28e4c284869b3b549c92e6feb6c6eef681ee879749c35511b8de1fefc766dc518199d97b88aee51c7279ecbfb56db5ede9c2c3f3f1962d9c4b3b73897ac74fdfa5ad88123473ad2321cac65bce3d62039a4b3d67183e9f58a9d71e285361d3b08fb5f167eef1f5e3efc0ca48f554207a3579108332031e004d4de9ac1a0a152baee0bc824070f740249876747040797a10c07562445aad2f7de71cd88b88e90763bb951fb2ad7b80e3da343f9e3e369d8431961126cabad4ddf13085c3138e6d05c419c6d0f5ecfd32479eafa39a263105f9cfd0b5b4c16aaa34b17a1a240b9bce56f26f20b2dce67e3970b9ea3b70dcdce940de5590579067f84ecb39dc89578672a3d121938575695839a3d81e68da31a385f8d598ed3d52e96130767393805985f57e6338523cbfda9025654472b35c905c1e9553ad98d1a7c87f7e70491de0794ac23b869359c8dbe08bf347e9faf3a9ac1706ec7e50cab924cf96d5a8f96909fc1289347fa42c28919a278f538fc7e00ccdf70c1541815afe4d5a38ef547dce20893b7ccbcbb5172db497481340e6853a813479be4830fe175171984ea215a744464520324290be69e3df6d1a46a40888af8fcaecd137447f4cd9355907d7029b230f97e7bc8977092693299291e995eb7bae8cd2c5cc090a574f4b3b1204b70542535eb31ca6545c54431657436977ebe3b41660bec3664f415f01d9a9dd07b0c1a33dca49e8dc56750b34293561a8e5287338bd577f6d0e2076b0783e98a1f5c8849bf2ad8e64393afbf034dfa1b9489d63ffd25c5592104d0b94fc3b04c396463d53ee8ca5c3a422273b8a3601045afba39829d81ca7f0d83be6f808d5b4b1a8d3584a658f2f4e7b1e1cf60c375357db25ca271e1f8754d2c198896f57c23164e279288d60870fb89c1725745ce7cdc05e186a3a5fab04a7275d9f866aaacead94ea251b8aa9cfefeed3e1c8ff593c440264bcd09964209516d8710287c85206e6ab5876ef4b88b7ca926a6911e680e941102875c8d2eda012de4dde06b0893ca4e1dcb55382272b98453918ce837745c8263e897a5cc4e51e020b84ef4b6592aa9f986e1b215567e96c3bda68f7e4abc19dae93bd375e2dd5bfeb79eac9ba013e99afea401ce47007219214efcbf47a963d78e766f5cc5091a2fe108509d3b762c038a0b85e7da7a69120e452281c63b0295809be659de72589e05d8229fe57e881c0987759ab5b020c148b9a3ffa58b73b31a2d2cd8ea9952516ac48a2088f296b5101d71ba0dc840d739d5591e5b93188a4b4614b622e110f0dada579275e7298ab33c1aa6fe9fd4872ad5e47ef1f9f3d380249ef64ab704031e713847b23b36f7db089487f2012e1e8d2849c94f915d140f19766846e68c25cb3e6461c2a15b7f7cf8b166fd28af586325d3a5af2b9766c444784552de527e0f3075ffe56d8124e274d4e016b43b55da24cd7c18255bbd035d66c1ce4bee24a10020534592f13a6d29fe3aa032ccf75921fb48d80923c8329f079d544be48e66d897859be8b6f577f58cf3dcf47fe0bf25f61f87feeedda72e47a314209874c1b6efa5e56b2948d532800d0e9fd8653bcfa7bf5fb418805962632892caf18369d82b79ba3267abf03b289d6d112fc1227017d64254edb4540327b89150cc41286498d310d036afd5ec096944ab05c412f16fdc3052ffd41c9ad463fb9ad985831c4daa5fef789e374e88a1696719c300cddc5b72a0bdbf9f99ec4d802b2d84c5ddb120dfc21b050344d6048558ff304a057b23aff78596b591ff96eedd96a7e9a05dc9f83caeb6f81d59af57fda8c13503fff5601238257b88bc307436a21c60a3370adc1cc3829ae0f5b7d1f5de00b55fddea093246b3c70926af4ac22d89a8fb4507928c878ced80ef6cfb5dd8be6cb4c2a637759f9ee86dd96abe980f41128ee9b5162cf7574e14cdc273b28ff809ccf503fccb6a84c1794234cd7ae7297be19ac5e8eda500bc52b4cbf50bb03502e582633614ca4a168643ec6585b60280a9e55ceff7dd495620044b2df53a68b932961c30c50f7d42c83503d47a44f260613cb62fa8e79a37c2952c9346281e5b5f7a5e28f1af51111930a1ba5e513c761c4eb05c862f5b5e3ef7740619db2d7b0068a2391edbf3be2544ea4aede206d77884afa5be873e0bdf9365200aa8048ff15e19883d6e638f764663f0b7deba92d1f006628d639f3f8e46e436a7511c1be70f20fc5feb7e79b839cd89c670c6af3a239b4a2cc66dc8645d29009daa0cb3a8297fd1172ac2336d7f2f1e8e0bba8c13e0ffe262146d5760de0c0df3660c2183be6b8371953d8632eddbd07495a94eb5c5465461538d7cc4180caaa1ca4c9f08af923386f494e513ea337eb0e9bb6e4add2291d7a2babf3340b263cce4e355c09926729c3fab33ad685a1bc60eadc6143d514fd6d043ebcd290ff880ac45d2c08cd8a66951c1d7d3e1a2c45af4f963873b0b3b5e1281a8b5087d1e2510aa214e3e09b77d44437a97af58de16b103a1802101a3b64358d469c95ee86d5f9cd8e0cc6bf0a495f5ba9d3c4ec6df9d5ed2d83faaa20a87bd2ed2e16898b8bcc942aeb3eb2f1c22d88040a24e9e166b31c6f1f9157207c78910f251de2090fe8addc340b9b975d6e8d6387503b089f8d577782c26aa41c7cbfe182468e473cbcb07926398d6afd425178674746a8ab7d23d4e2d25432d62158bb758b2506888a1aa016a6307b908ea7cc6bfd33956cb89abb50af1e352ad5c60a27e828885912930b7197139b8e0c9dd9500a528e2e46eecc544324c4d60a90af5e32255340424a3722a5a896190c80c5a872d05b1bde05f011dff2d7d98fec0e472ee1175b825b20bc44f0676068aeedfff56ae65b8c17d68fad4ada3aa72040b8a5a80e2a63d432148e3659bc9f4cb3c934532f399da5774b860caf7b77b9bf2aae119ac60e4d4981419c3626af21050439d02db700fc37699809accd146fdc5fdaf57af11b351b8a9a1f7789865c2d35e34736798d20b0218fbfe4e7cff32c111b7701a80515cef928d93a13cea28f28c87dda28aaeb6fe01db98d89ccc3308074aef3c0a12c11ca797d7bf5899ba2a9eb1b01ef75471ca6aeaa5fc3021101191ddafb0427c88322a9f2e906f744549f820f00f331d341555f62f368102d70eb7a7ab0170af5ed149b842a08382962da77d2d1908220163091277f53dcce2ffa6507e4c6cac39011f7cfdb97b498f616cb9e7445da48fcbd75d7798de74230be907e3d937441f75fb59912e4644b6329b432194d6fc0ebff384cacc5d60d3a216b00b9296a6fbfbee9e80d19c0a74bbc640977f8a417c3e159d8a97c65d1ae47abc8fb47896af3f335aa3370056f48ec910705067054581f933ce1803b5de213ea7bd5c133647ed1606d275c0946ab64992c1d5a8e4e3dd20fa630d35bf9ce9b86bb0e775f35f98fcabb10f689a8f9573d3a422a1e8dc7a4d692afa722e5f2ea40a63c9fcce56b0eed55f82bda4e7e7dd5485430a5c58bfc6b83ba8054003fa3d02190709699d5210839cbe483fa44903f8726b997ca4dfdf64b28794f7076604d1416d9cc45e6710a1d2b7167ff89d0d49e699b54c3ad97b5cd78748b1171ae4ed19460d6899b1abc4cfbca105902935da7f4568466fc67630230ce1dd38cfbe471dad875088d4d708e8d03626c97ee2613d9a4ad317894c81043324236f61886258f3ae60918a519f40781d963150fd1cd76534a79d79a6fbd716344ace677af529cf29037036ae65a1618af6fd675c7604da5c34d303c8e3bffd90fe901589713c527bff456b648660e78e513aabceeaf152d4eab442783d01e5bccbc6713acf4687d8ace095bb63bd4da902c28966926022a69f7e31935b0ea9318344bfbb822b37a58ba7078f795eb3ab6065b8850d684ebc2144c028f8c22ff54db844ed1b875b81dd51a32309e0d8a0500a8c246885884241b858bd980c268d41f8f67ca57aaee1b80d4d3a8f1f1889de6947ee110c870ce72745964ca7622182859ec7d9f52f55a6e02c1806a6914f55418ff4c6b99b76e7fd324f372ae53ca4fbf1d46607c3a6c3591e14a19417900b08e5dc8ae7f31f590db8ed487ae43738519c156b833f3954ee3cca42c0fe422312daff18ec7f54733b424af881b621148553b59b2d91bd2cd2b9ebb56eb38e1af0c73a8d0cced904f2c30c8d6c25fd608e6f478c6d3792e69e5f61da31591ab8048ce0f6ab1058eae5cb5fa170cdc669e3af5f367021ebd52f897087613a65be320d24201b53099b80704ad1431ae50c47472065d3c709ac2dd1be3d875b02aef301ee61e687ecfc37159a4000c6cda0cb2bd420c7e61e9cf433dddfb998f28a8247cfb9ecc7d560f41a3cfe8b8c235d098c2466291e3e40b81712f8c445ed3b7e08cf7928be69e6e0c064efe17d4b44d9b6431b6a3faf417caa52263deac13bcf2c4b01dd3723eee86c7e38514c484224584ef709ced055471fe0427083a2e4cd9da4e3048ee44a43d9870b5c054bcbbb84a6a78f80820bc5eb098a41a6c2990996f459b4226af46e21b9e986de4bfd2347085a2a06cb15011403568c9dc9db7854402ca7ed2b2e0c5677f1cb7c67705f6b409c95d94d8aedb7602c9d227fdf094e16d757d6a0b3c44774bc19267ef7c83e5a2893bc4c21277c3fbde63ee896ac65e89468b7d0f2bf80edc3483288c10605ecc1e26d5a6f24d4d2903ac0dd681e45a232d21c3e0ad47d462d30b56cdaafb9d76436fc967270ddecbfe8e82e7fa42de1e8ee0c01d6d988a40c57b0ae89060d80cdd17aad53f839f1a2257981cd70a6aeb92478af061acf63e3dc69d4364a8a951998a0a440c3cd0799fe6e656e61ae5c2ea27f9863c1e6920de134faa82f89b77b7c4e214b76a4e6027fb11e0e04253bae32f0b5cd3e1ac5e75261aa799324708bccc18918bf59f867a9e60b1816831be487f70362de5ef0bfd97e208fb41ddf9563c1597c131203b7493af210f14c236ac7b92278c6bdc80ea2ef41bec40fddfe5da97b2ddd24a271c78ec19082e012ccaab05eb847aefeb1dfe9265f99cb0e94624e298d98d0f485f7b4e300d9866e1045e254b4df0ee655c27133278239c34826846b117491fb556df462d13635223c540aaecb85857ec4a1f93a1462cd0533a2892565a000d88e9932bc31c0016f12f9f73ce19b158eb053ba406b481e94f5ce39ba7e153b4a15ddeda8312f903b2143eb45461e5cfc5c957905712740944884ff540548584a4da458d3d1a551f1d42f0c932a71d6d9172ba3bea996ed8d97a2f51fbf85a8568966439bb0311641b6ba775616eb63c26513b7e42005050b90c4fb376778d92a483ebba858640de328c195c7e118ed8bedb9c84db238a6293d8813481420034225e8714dbb11f5f111c78ac0293848c1323fe0641fc651c8648a2bd320261c7abdf455ca637846c75b86347923e80e8a624c97df09b657b0ebebe731d1c16118a385d38673b1b118d6fd139d3a9818f0fb89a164ef8fcec37b29c9c2c503d4b4b123fe60a4f533c3f146aa38048cf91f37cd7ecbdca2b921930b159e0be23e0f706c60201107ef28c3bce60b930334120278a8dae87bcfa22a2becdc30b1ab78074e88fc86c5040cf756dbc42b1c86372017457b0fda7e373e15e8af26355c0e95ee637848cb1ea0582c9c9a12bdba17eb803ebf8d810eb541c48aa6d62d203281c92dc2de05c2e0d1af38fdc3f77e93701f1b926e77eac45d48ea19df99aa4fcffe8f92b09d0bde60fc9f391e67012516285ccca560d302ebc69d0b21520f8c4d189e4126e726ade234a10b56db113fcc253ccb524de516f284b970a505a8e72f315598c13adcbe5a018a99e208f58a2d6acb77094bd5ecd73e4e583f14e92922663d6e5a171f199da798f4cfa146f2c7838ad50d1dc378bfc4c5b6a0acad0cb718b4c5619127fc954b5f35996cad604b3ebc6c120c9daf2176855991dfdadd05d44e437b9ff46331fa8cba9e2b2545d3a41d0118964d5180ff8c03bf660f514e9850a4f6b06bfa4dc9cd04f40c681e41e9bfe998635a27d741070fd8fd5a05cb8ffa56a0075045a30c419ad773ceb0c5f5aeeec8b7bec8fec1a5819500e7dc8dfcf59a1b4a66cc6adf18f4b5f476296616303766358eb449a3a6667ebd3fefffeda7df0ac36c817a1c1bbdaeef7f93a2fc171a1c2c9d7c83889babf813618eb7516c08fcaaebbb53dfbc7ae9c13eb062fb171afd684ee0b9138ddc7e25393ced3d65debfc7368e4919ebfd491651e03f08fa0c1ec335540a0d1547f87fbe2dfe50b4b9bb592a8678c528ef13b00c148209c6b04b046951c9bd0b43a89101d2f4fbc2d2f14206a8fc4266c1730b14db2102838b12231f6c19cae3166aa1a0086325180bc8d25728e6de24cd7474acd5861879f9543c49c31c86b5d70b638396193270e25a64d7b4ef7033a12ad5d6fa8daaa3f329473c8a6c05401b2b4e335d76b880f159bca465ceb913a5560242077a969e9c1bf91a66922515ee1329df161ae5717c1826c81a63098c8ca97245e9d37398ace8a86c4cc8bb897a27b1e1827e6cc9e2372611127c1611f124531d05b39948ce7e3799de4edd60115f6608889462b908c31f84868bc436f0be78101244647ea789af0078ed6d3b06d1353718f4d5c1df090fd5ed62935d3c92d579f66c2825c37488f5fd894ac91158b64d105de4dc60e2a8204479059a6e48e3bcaf09f699f3c97664c8414a89936629d4372adb97bac2744c72d309a722571dcb1967f20f7f166217a6024c322b7ce1971aa21209b6dbb94d7b4a08ba1a8cef61f685357c4f14061ae451a0fd658865e19a08b5c5933b9c39a0408d68ffc2a48a57dc5905c5772bf115b7d754d724298f1ed8b7256b21f1a0f08a0bb9eba2858417b99e3882d44b705777056a80ec239901d7a10602851ac1d9809ebf243afe39ddb9b2b670899c8457a0ca8047c09416874a55c611e3bcc943534298a5e7d0df01f0d1109de70283db27d3e46095ad076c42bdd485c478b6886bda096692af8c66751e54ad6541080d47acb3bba13fb46a877e72e848601b0359a253c238869c2bba3bb663409f7ac2b498c06375d362af5c7c7a42db662dfcde1e15777467eb2f3b61aa59bd497e090ad3d91b783e2aab3a402ab46fa41a863384fab8b8ee3ccbf6954a20ca9fcc47b7c2e4efa43afc7358402e11fa0f32d2eb2702c9a03098bfe73fd164502a43f791b796a8efc697ed7f1f0112fca8c18282442f1a61b2d21640429785e4034ac03dde1211e3e1477ccf5f8128cc6bf1ab078df13133690a19e610967581e1292c0811c1c5729f7660a796c37f06740f9ab3ce049ba07c7bac480e8365735d242f635cc92f301820673499ad6f2104f011ee0e73f93858a0e1f1bbb3f794c4078c33b3424c5b089ac24565fc4343c50729e65e02173d814c8c9ca3be5f8dce714677aae7ff0d3e65818602b5c208f727857c132ccffff9f58af735f97c2ff7599c7a4efa9e2de21946587220f220ef4510af49aaffa3699f25263f8463445c58fe9b6bcd40a38844f05a2cce495108e4f0659bdf324934b29f8ca5445b6e08db2512d010c1962c2fdfbcaaf231f02a40277d083a6f1f82d54bea2aae54e5c5a2b1124559035803bca4d125b64f1956e191b19fa93755b6d399027933a4d4e1c4b34b4d05cfb02d5e8eb31026fd9c2a09dd54357ab6ea6700ad3562293db0f1e00e670be0aec5c0e44015569c75a04cf49be5a33c5015890d75136d41b04d7dc080af54d661cdb4dbacec227530cf3b67824851010104cd67b3971f18857e6b1daa393a5856c247e61fa185564f9c174d31756cc753d7683025ecc4c60d9dd3346b593ad11e0d7090f215b2c9b2a50678017001de1d767c63b5d0b4da3ea162d580d1b0515b78cec21bfebe812384ec1fd52e7d06f871a0c5163969887609a97e3440281803966aba5982bccd9e5fc0e10044a70ac710fcb50d6f296fdd2bed4e72b1a71a1d19762ffea759c00126ff57561d5d62b1c3d831822998a4411b50fd2e450e792b5c484b47359490d7361b09636b732db3f0252825c8ba3ba2908a0a40825a1f440e12dea885bbd4c897012b273bdb60a6c4f78c084dd4a2497c8acc17f5807b14d0b7900a0111f94d862691e1411fa747decb92ed0ca9f6e4006f0ac6c86994def026f19cab63fd1a33f48ad683e35b12a5ff5b4cf92e9a0b6a97e58fd6d02cd8b2f995daf9aeaf5f206ad0bbf7f89b044f9cd6056b868a534b2fc2279f35c8adfb766fe2b60468def937e6fbe202d23ef0532d5891c30de3046c4cac7cdc85199df1e3c34eefe0176cca25d2a7a868b5c0b893579db0d057d6ba462b23464d8db5bf4c1e579f508f43c4a3d19adf4e8da73f2eedb8013ea504b834c30d34ef649cb9028288d79cf28a7fd2ee3d6c198e667a809bfe9c7fd29bfd23bd2983927b83f9e16e9a7ba5f6c92b1f1d0a54b5e18432ec6aaecbe60c13bc475ff2606ab801fdcbf89637d511d57bdc4b4bda74add1983077cf14e04f18ca899afea9e0e84560da14bbdf497cc344e74706f2c1a51525417302d949ac7acd3dd2e64aa5bcc06d31338c84170f103728ceb72b0863ba318003ab1e2750bb56884a0241a27fd077b4665696ba2a9479bc8abb9f86232571fc1442b06c1d6eeb9c7f5ee179c6b0f6a2f57a37604a9f407037555a284cb1f577757af55d9a6e01e385206b98a4678ea7c42d9ffed1af3f90878c0f8fe4935fb6a146282c9e0cc511e1c8a633bc28344102d3722db1a9192ccb8d2a0ea30d208a062591069c06776aa7f70ce6f87ca7665e208db069f5a557d63d817ae4fa5b3c2865a22d98d73dc7832ab708b8eee2e9de4034463591a90ca67256edd087645dd7c8495bee24c9e94b3e519bbb8178e2024c0adae5562346f67408ad44afd474fc34c89dfe3ca7fa0bfb7c2dca2b83433c2a786b9e26d6ee4103c23911bc2991ef6a39e50faebba295969db2576e5e38fe240c56b81bd64e1732a8d0dc533df05ce376260777e341d04ff7efbf5d1397c10aa095fc40c5d3269a2dde4526894a7480171f3b502c2b21d3eac663911c5082c036bd782219d4cf94fa2516635d958b7a77249f2d90d15a5cccd39cf8aa696d3a0750cb1d9ecbb57b888c532fa1e5bb5dd6c4e287b9e0ff76a07552a78bf89b66695a403a0113f99f9ea5a3e4796ec509c204b37cbf6fc03a87044f0a1c4c35977d1cb2945ee0c8d9f445afd4b4f6e4b82287aa8980bd1f085ff3099ecf013544b2eadb6f965de975ccc27ded37cb6e9ce1cfee2d0bce8c359b1b6e835577c71dd80c075bed7d3fbc0154c96d3affa5b9a433b6680bf14f74419b616fa82134d963ae0a202712181e333aac1de26fb8fc3dfe396fa984363aceaf85b0012dd43b482edf09a3aecdd4e1aa2623b0113dd3fe7e34b9307f362722f4b3348d125040516289b10ec3320a61ac65651ad6505cc955b14ec33a0a61ac65651a16a2c81c9437d8826000695f0999210ce8ae15fc45fbe489f8af0f027f5d0f5ef2a27fac4f8ffc10b71fc177b33451572c92c60a4822023e6c83d26a81c66006f9ba69082a391b95d799707c8d40d8687258efb2444341f8f74c88fa13f32c6b72441aa1468f572ec13bee18b083a968c4ee4c2cc82a761d262e38907054c5f6c497bd427f21dcf35a1b4422fd19e31971a30974fcaf2763437f14ed48cbc733fe510bb2349fad1234e4591a2390caeb9972fce218c45b011426152842433edb8dc59f54478da178de4d23ef08c43b5afbb8a645eb070348bdf3e5fdb06a5a89ed72b7bb0eaaf8638486d997689f9a1888e5a160f4303f1bd90e2856a2844cb91637206de289288cdbe9130d8b326be4d9f6aed45470a329cc54e2f267d737df04aa8fb5b40ce925fc13bb7f17adf9e7b158d078f3eecbf5f6dc197d2374e17981c46e02d97cc22be732c8a1f809cf274312002fa477fe9e9fc61b761f3ee74708da9f3844b54ae4df4f83e16963d3930cd0c5bffd40472d4454d1021a611228067b220d795c16970e81fb2c3293106d76725fe6f1213b16ad6b6b042cc4acaf278f2378cafc1d583f16856d3fa76c2292106f9341e97d12222aacab33351417aedf57d682a0c71048035968302b55f12bfaa1974b67fc6647f6a050db8bacd334e563e53694f5ca977baa9fd93a3fe2e1c56a579380d700557eac399a5afb72351c714063872d6d2af1ffb43cf074f9651cae75061a341b1426814e0470254e3053f4e4d504d948f3d4cdf1552d603bbc5c88be1776ca82bc765dbe122a28043b0dbb3d2a2e2f67de6332a06eb39e25cad5e0772f77e51353d6465ceb115f3f475157fff81ccb80195957749de3e613137146b46a7d511bde28bb48715115a08a33fb67756f9d3fd06bdb8cba288ee74160253ca87a3324ee7120fb032353e76847f8857ce06b15e926a0ed62133efcf68995c9e1022ec96a9398d8c46c82134ce90ca3fa5b920d7fbe49aba65ca3891755e0045944979c611ec7dfb947e0492bc2dfa4c20c899fbd4f58dfae914a1a46168ddf09dffd19953b11ed6731308a440bb16dc99d0251ef76de92aab886556315d2200e0db9e9a8d75d3b3050aa5b3aafb0255d791424b297ca385819fd1900ce4ab5357773facc47336d54be101d5d1f53459a921ecaeb1c54749d51fcd75c6bcf089f82acb543de5915e9269ba3bba5d1a1041c4d9058975df4e3e8a98f36be938f26dd7a56e616f8e8ab850395779299f36ebf6f1552d18f774d995d6254a54462228a5297db4fb414137e8f8f9efc0c16718611a1ca5a87f24d736711cc38cf761ef005790fb25818f2968e0a12f08cb13e34d0d02f16fe0534c5edf0f902660bbdc3820482fe5966612aa7b3faf22d0968e84ccdcb7f9a11e67a72e54945fdaa2155ff55bc655ab253bf5fa503b154211fa301570fe0252176143ae8ea775db2411859e3e604b0dd96133c655542f89de09163b012df89b283640149ae98407785fe3c575cd99133fec142ad2edf08c307aa11de683d429033d63ba419c8129eaaf5d0ba1c5047433ff783b353f4b9a16880764204b034d10c4cbb219fa026f0392f11c9ca46b343731e2cf5c078072df75ef264201194e2e73ce27c07e88395402ebdde84724d8d7c2cf232c41ecffd40245f6b989d967ebf8961fe12019b92849ef857cf4a3e49d51b3971734faaef872007a1a7824d0fbc78b233fbf7dbde04acdc764f06530581ee7a3c60771a19a8340f7cc22b92d672c7debc7b930329f443771df63abd10a84ef297048f3bdd719b059c09603cdf6f94bcba681e40c2d8e037bb4622090417dcfd03101641b3ee5f2d827e6613cd4ca99d5a13e684975440737ccb9f05cab855790b0009efeb098756e5a3b227de5393f903834e546c4833af8628e6233d3465c72e0de2bdbc4915c3cd71a67202c8354ef35df304a7a0979878cdacca0b362c8a3d8fc251cd4939d25188cd79b87924a66541e7ebf557ef5528f06809cc671f31ccb35865e53874bc472174f6795a4e2d847845f497c6dc5be8a3194c96d787c38724264a2324da443f110b9faf878f0c973c7ea9048ffb53937ccc8e4166e304b08630d63a34b1cf04f6151ddcd78cac33566e89946fb6d0abc98b6b661e962198bbb8f583eb8987ee1348ebbc1335b6061e9bb5590ca7fabb63df44d2cd3546fda47a75aea26861cdea807425e09397c7d07c5b8c307924ef1eb435618e48fc60f224a850d89b07704b07ad4b36996478caafb8a742de9be8be6dd13d3d2dfd861113b031b33e38ea686f28d7d9a310c297825fa35e69135b3b69fdb31f56f00b97412a03cf873f62fb8dc101004deae5884cddf5e8e3ca32fcab39cd57e3ab87c20c4441381b47c4deb38c49d8d5ef4354d8fe072d05caefd2e24cee9610d3e582e26f8e0f776bba790a5f33d7fecbd2c20e2ac333414b643fc0d4489ae5c0166a921e80ca65b5fff82a907560737a4b03d752dc07f481f5679cb2788c02d5e77752b73bf877509f9830dbdbcdb50c6d2a51d65a5afe1e04bd12c401a6964665dc3630a4a272c8ef2f327453e9e856f0942b21e2075b75b142bfb73a3eca8ce2a1a968fc32e56b6a69a1e09a9fa32c208768a4a196f02821fe1926b6cca100e5fe10cef312d501de8e4ae68e6fd5ad3f6432cb9b908aeacaae33f1edb882403f78cd9f95d5082a4f1ccd2a1b6cdc55dd838ce22bcd42a78a59e6743dcf4bb77078bd58893b063296f2fd7b0f41519f58ce151abc1dfba9cc005d1aa3e219aa855b65fb090e9f26848e0adac7488af24263c946ba1cfd84774ed3c8c5b7f2d2a8484f85d69323d3a12e9982dfc411b80569bc66c35c3e456984cf5d0f387013c0bca4b0878f378f468ffb4d80e573165e33d1e753044d39f1233d3481f0b6ad362c3ec5bc4cda2281cc8cf7c0b67531cf71bd59adf88dadba5ecf73a7b14f31fbde7717cd91c805dc97ed81850f87d7eda60e3ddaf0c60587a2e03529b7ccac4ec33e2f179864700cfd86d9d9e5a9e8a38de9374c057b524524a131183286865c5e0df5e7210ef57a67f0a0a041568692dac217f0251e4f6eb29a9debf95f515897f20c2ecc55102303f40491601406f07fa9932b4c0d758ce906ff53be1ad5312c9d48091000180ba3cacd31b19bbac535f91e351424f4452a89c93389a83ae33246d9c2113788a8e3a0a17007cb3a31f7d9f0eb73a23652a7b0cddad2e93ae96dab8f002568c8325551ca5e0b1acaa408b11154d125914da353f7d0e4e324eba2d08cf7cc10771de4bbf5105c144ad9fa466722b87b21e160735ed01c95a0830a49f1fdc4398d8377627dcc6120928f528a35210d235e784acbe5eb497ccc05790e629c4647041c82c1830886fb6f17a1fd6e199f82251825e831cf5d3c79818a3b068f8cdbc9647cb8936d85c8769724e189128c56a22c4a2324c83e60e3b7b15a8db7b48d8bea6780b27892e0a2f3edc8581b38b56cc14025320661a65e106cf9638e7889c1b0726225069999fd056bc57bf7157395e50ff0125805d9b245d649358a799f49f11d1dbc5a83220061302d7b8fb18edcb5eb1fd0c219d5eb003a41f7ca26d26cdf019b6d77e00d416edcbc0a26fc034ce8bf04d01e11a11ff6861fd19caa490f8a174038f82892f13a282c99e9c6d11799b798285bd8ae861b7ae5271bd18a965d59797818ef3fb55dfc6a811f400a330574adf5b3977e1e071d11532711b17b522d83c0ef8c22278b9a166f1ac8faaacf268a3aa89a3b49593f8293e59a24b0f742c1e19d6cd1c18f2abd733a50a1ae78afa916a5e28634165e6a947f3755cca01a3891b9c6c72d06b17d1e41a7e23642c911570d6cdd8b27aa6a54d1e64a9a7a30b8962992ba6bf78bfd0e2555585127e79190dd3574cb1b6f2434f54fd36cfd136c6c2d683112e41d0a21461ccc05516f0cc074a0dbe222e59150350c442458de5e9b63832d10bde8842c5e7b65b60d4ea8ddf2add36a95f29a4600a3f42d048d3776fb580b95b60943b11e1f59be28f84c3e9460145ce1279eeab8a6ac3201ce44a23c30d641fe59c7f8c90e1071fb0284a2587daef863942cb4a47ce4ca94d0a6b88d5dfff318a5224cbc5965a2a7c50e1a95fb853a1490c04514731042bb3554be70baf40bf893d5cce14495d25bb1a8628b21a195ced04034749078e6841812841be5744b21cac97b375c685a238b06e59663ee9e92e334df318de77e09a7020e8a56e408e96eb72c8d646dd3a0947f295127fb361a4f2915b3ff4f6729f7e6cbb2071a8aa4b368ac8e47465f801a5d9a70d6e130469d0d68be9559f57f193315c9d8d4cdf4d4e6e3eb9a9401751dfa84234bb3f5cdd011e24d94dd102ba9cc57eb51445a460f7d4365abc563c39745e29844262d2c6d857baab41f199b377e3cb2f6b392710064de8d8f6af2445ac462d145409629fed4e50f0c7857e657300571353377d8f2da19e9ced55c56976cf276b84903d371c3fece3b18839caa06daa270b13aaa558360e3f4339988636a03fe104c8ce186d39dabb8cc00217fdc8faa9244f3602a69f907fe9c0fa5a38a23723141a547dd1578ba0f3866bd2e49532c5bce6c51270aa695d7783ea0e6f57b890f8ee03c42f813111c9948c22c4ab8306b11b3263aecc9ea0d8f28e27829843befe8a013c7756c4bd638e50f8c6c0e0043c43bcf275ddb0f5c2ad4821590e3ffee35d480bcd487f0d9ca8ae9299217a9adb8cdea7258e2d2cd669f70863ede10b5a1372d2ecac0472b272e5ed2dc6750787a667f285631616bd0f98716d6e6133cb24c17e204b8467f3bcc6306c62aae0a0c052136c556cc576881fbb090b13509e5da47a6feb038a59fdade7b5b5824634ae1f7ae6c8bb92a32f0eee796acab40b0c577628e344949fc9291c6703e9132c3f654805dfd82efd1c56e9bf2c514a17a3788e40fc686c04900851288779ce592c975ea14de401b985bf7ffe0afc35fd3991784610287045e4f0332c4be04476a32cf00d5521190ce757b7111e59fcb83bf99caff67a567f34e6a4c23f5ac36bf1da6ad7db596dbf16ff2b6079b03b93255c6a5dabb3fd4eb23539000ef0acd5a8b1ca15418453066c2cf821c111c2f28aa1d5895f8f139d57f692ecd2e2b130a5d9bea6171022a5fa5b4cb0affefe7b43d5fbc0e123fc6673d9930fd01c3fb62cc8f17d29c30d69b68b6aa6b5f4dbed458b9875c7b8d5440f4cbf7700d23e65e00f075a0aee1eba7510ad7a13d7825f06c0c27634ddc12e30cac76032c9d498af48098a597689e78499f4d8fb0aff16d1fb686a4dc0c8c7df0c52d0a77800460beabb03ff610cd3d90cd84fe4bd87babc028097416483d1cec1af16fb9bda4a2c97232e68c39abee318655422f44000e5a73c2f2fdb7009f8fbebb624ddff3a6f666f64dccbde8e8c54ecc947bd969a526cc4f896b9fbf9fd6469256d3107baa4410e9ded4681828412b75aae2cd628c14104fb571235f321e86463037ec14675c7aa2d766d8fbcdde75a3d7554125ed02ecac694359814a06445f6f67334637d5e889eebea189bb7e3c10cae99c75bf6b6903c6f050a8490a951b1464a94f238745fc5ee263a052497fd318caf9f8ae73b2e5d55652d7b0ecd30177f3fdd5498eee5b80efa5cf5db94eef7db3e606f306cc5edb57071ebc53032a723a7c5b3052ba4a07aa56446b8c6caad1a362781e5195f30a2da9426b744611f26a5c06e21d5fa243ad6887e72821901ea132598100480c5208612541e8f20cd4d63d716bad5cea711e6f4caa95db4f02351244f6267befbda59452ca9464000779072e085f33245e4665f6583d7e167b242274d230f99b7fe44636527a04a3f6eb2f18c5479e29a594c628297ddb974657567123398ab4733fd23afca9f797893dc7a1deb191bf4561ff9bd34fc96c14f51aa5292ce38fcab81d981667ae34577777773f9229f7f37a177bd59da19c4f95ab9070de9dbc7e436cc546fedc5b24ad636e43b6af3b668b8d3057bd6d2449ea633fed4feeb723ec29c771f8db668ee2d74990b48ece1e93dc0e8c7a7577f74a7123699fe9aa0b618fa7b8c4df54383aded569d330ccadc4ce6a35df9a5fe999a8c52cd31c4bee1edd90d59095771e1291483d4b8c31c6afbed4da4c752c99ba7717977ad535b6d6e3371abf126bf091772b542ac6e856bac6b1e4da5566c67e560d5ec59ad762376b156bb05fd1344dd330ec57dc4a7ca7b9dccfdcea8e63f31b5e45211c8c61187b54d84361e969ab6cff73654dc3df104dd3fc0a8e95a6619ae6575c2ebfb2cada7f435655ab5d0f98a5c3b2f815bf8225b75f61a2f19926349507c9afbfbd56af9735f8056ada36e7947fe4b96786b9532af10b111b65f3fba775f84b49ff74c218868f3c531c7fdae676440cbf2f8d18894874c5efc83d66aed6d1eff8eb7e66d8c8eb17f1e7d91f28cf0e577fec3f0cffb4cffc9ef8067bfb32ba5a47fc897305cadfe9edd38ce3513f62eca77decffb48ef8f284abe4d1357edd61359fd4fdc6f8442e9fbbda67d73e51ec0bf3945f377a616e2e6ef5e9f6f165def00d7dfb526a3ff5b1b776ce4c2fa499c6187fe29ff691485c7360ea37f55bc95a0773b44f953dfbede16b11c3b0788d3a8b6131a6be5a5b511dbf6b198b3fcfddcb40c766fdf8ddcf7f0ff232242295d67e65f1b5ee2c6b2c35a232fb5ff7b5cadab6fed7e1a1ea38baa210b45de37963c537dd674f53f0d1fff5bb4a4d3d75af35db66fd9914566d15a75eab75067f2e554a8b5d9c7376189d145561a609b234f8bb29bdb66f42c6f0fceeb1770de56fc8967dc39af927b16fce47d73f1fc337f67b8921db96bb3f7ddb7f3267fd461dd6efeaf03764cbd89fb8adb387b552194f2df54b7b7982dff21b4f9bd5300cc38cb81a0cd33416565343a33de7abaf594526cec2df9163df34d29efb298126ae1489c884ae1995f247ffc88db02f92a7f6c93cdfd53afc676c82d11cf94feba8da7f3132c9f4b9d770fb17b1945262b11b7b22bf10c214fa1dcffb61f803ca8d6fb8af4fe7fc39e737c6e6c77afa5f6482f54ffbd4550a35310e0b279337d246b256d8a7a64ded4eedce894d577c4abfe6664f73eb1345ef9f52c69fe48cdfa495f2312967482943ca0edb2ca6699ab661a3f99ce6db4feba09fbf233abf62afd5c72690a6691afeb49ff6c11e2863f8464a29b1a727edbfa3f901491eda1b7138d3b8979ce4240794a9fc9fd6a1619f7ded49e7c4aeccb6e29ff6a153b2bca60652f29659ef59c26412327cd96025db7024b7327cd5c0945f3634c95ade3e4219ffb580864cf0a0ec67f4c5deefd73c8c42349ce34f66ffedfb7e5e6e8a44a488258a6da47d91ecbdda7ea376b551a3d3b3de3d6ba726eed87ef4bfa31aa771b7d8e8f4da7b6f401e0483ba983f8a3fe9158948914cbfb1f71743cefe4928f9ab7fe446db17c97e726afd3fe9247f5ffbaa7e8d3fd924d73ff24cbbbf718d33ce384f7d3ac1cd2f0df41434fa8dfd5afb44aad7348a3f1ffed49f7e53a1df1ba5f6c4f1603dc546f4b7e758330f63ea6144d1af6fbdfd6d64e08de3e16fd43fb6ec1f64e2600fdbb0b0d3b75996ac9d2eccf474baf474e906dbe7eb2ab91ffb3ae3e595f17debaf6ef644d131dc54fee763a2d8339fc62aa6f0e779deec3aab59ecedb66d9b868de89fb6255a477da28c653ed51336a25fff86bfcef404b76dfbe67c9cec532bd9e21bec37a1d56a69c97efded4a99cdbcfd7734f3e9b9ec675c187bb49771358ec7f64627bce5ed83c4cf9ef0c7e1afade4fa1bfe288094ed6b9f652fb91d59439a310b64fa5d2053fa446e3b43ce87962dee25daa7d2b9f21509b4008c91e1c7315ee4e67eacd015c9cff2d71628b2b167276b5def2047ee87cd10c7fc7586f802ad0c9fc6184eb2d675d628c703cb36866c610ee77cd86cdb87f331f357645298a37204f06e0204a8193e013c436c6dd775b5eb30da755d8761276e6e9826a36718d61d8661180cc17191468a1e33a0000d46a1291350408f29ba3e6c6e3fc0ece69c73ce39e79c73ce39e7e41ee0f94719b0642ff21c71d0fab5970c49badb9d07f87d3bab5630c74b06256f95e14b062a596ea07900b764986508b66deff7c676f3dfd2c5ddddbd33841042482b95124208a194104229a1dc0e3326cb0a67a5f25430af7eca155768d102c51858a690ea5e6bad4116bb7b0cc257992b7c22278af56ef421fe62e0aecc436e47f7dc853f3c4cf191e70ed53de47ec8a030f4a3d5f6abd5563f5eed4f2d6881275f7bff5aab6723d66bd86b9d3d72eeb73f6ddb693b757fea3abb6d30049db8d36f0f33ca23e2053590e8e14bff50454e94a8334664528309d7921320d9828b152e5098e0e982841aa80089162801218a23567a851facb0019620d840c494a211e49c9cd33926804109131e9eecc007537060099d1a1e0b93314cc002315e5188a00bcf0d1a50f2620c125ca8eca08a2b4b4f39a7d4c19319be74a022cb15c86f21be20811658fc90832c3cc810bc7450c14b0729aa78e900e5b5648a9a246566814353122df91b322da5d6bd4876a9a3c9f4f911c3f6a12f7530c9f2752cf196fca9a38758db9768a2947ef631adc2b1f815187ca114d2b6d65aa45c1d22e5798f6296b891dcbeed41b0068dc13728c8b7cf4322e5491f29c723f7278a126976c3d83e615601861a9978ab5698a9639bc42658f892b81fd7ac7dde2fbd3fede327bcb74c8870cb23e59f2782a72c92e9a9079e3fedae4ac44dd5c955ec71adb1caf3e2e64ddc6f979b8db7ec8403cf0a698a1ccc7d613e6de119d59f9b100fd23efe101782b2ce7ec37da48f6c190a12b7c082c6420b413c8876905353bf261b7f48a71c7c43790bafb3094427f430800af9ebfcfdb44fe3f9af1a9cc4a1570d4c727c135ca88b5e338409c22f1ac4e4581421f7d33e53c3b07de48f995f8863c6ac3018d9503c7175d225db0f1ad420918edad3db2ff34ff887b59652fb270b6d5b4a2d957336124ae7d339c5c82e621807d399e2a63c717f393d4629fefa0b973df4e2c7d473ef71dccb5c087b381a3deee56778c896b30d66b27e9761232c7b78faf9dd77484e9f7d7de750c8aae30fe984394ca966294e9edfcaf3ed1055b64f9fbe106d0454d9883ef65aac29998f147f2a9928de13b9e410907a54eacadccd7b6895b95eecf16af6f5d2fba9f296b3ecbfeffd3ec71d1e8eb7da3f22e1dc330111faf44429c5308a6133eb362da354db3a6f6a928d8099f552d9441425b7e3f4d93dd55ab12a9bbc49ae14c3a8dd60a0996218a2d050863f8be1cfd37267d9ed332dde705bcf3eea7a97e66a2c44219aa7387a280c21456108a98771473ac3906262171ea6f3c46032c5def479139e94e651ef32ff59d4b7a2497d2734f3f5e7d35c087b2656dd1494c127fcad34fc1d4d975eb1d156dd31a54f31e750a898b64f863f248cb60fc54d79d2c63616a0f5f2915e0c3581f6e8a2942a712ec3826e26204c4098803001e9907a76cbedebf60332f5927a670b1548dd6e07a456a6ae2d000952bb819c309006d23ef2a3a0fe74a3a0befebc183632a5e21abe483a09b5b6d0450b615a00d342530b5f5a08e2adf9364cf93bbdc41f64aaf4a3bf3d84ae2ce3e5b2dfeee7c2478e8f9cbecc111b6518fbed3ffbdb091f0101d23a2036da1efb06d23e46946220ed03a46a1976eda4d7cb304bbdabf21e26204c40988030016102b23949a57a95ba1f526ab21e359f857fa0ae45bdeba77530f120d4dbd5b3ee0a85423149e1af334a5a1b99a0ae4dcd0f6a81afcf841c04680651d178ffd33a6676ce87f65188a866f5daa9c933b23fdd8517e241918903861c79d007995dfdfeed768658462f478582608cc24b1e0ea2058942d27be8c72d530a993c6fdda9bd95f7f4776c79715e5ce7fd9032a5f3ca58d39c15515eefe6dcb64d9e9e033a9dbe701cf7a5fbd3ed388e03da38206edbba5a6b965a5fb52ed58a6bc5b56220ee3fa05c3fee2bfe80da7efd533d7d6d7ce416b32f73b7e38fc3d8868db8effe90386c646dd72ab3df7c685a5b0c7ba2a86518ad150371ad29791027ef6c8e8bcdede0baa7df75f84798a530995e3aff872876d7fba161a60f2d47adce97f285ce1c016cffbc19b69d36b1645686af244a598bdbe422b7442d9e254b3ce7f6f4a5f712cf8a7d57ebc38fdc47a88d00848f1bae3c8ceacb6cb111fcec67d3c3dd7f8ebb3cffa77570d8c83e86023673e47ecc2c9b7e76b1f9dcadf32b82edcfec5accc21c4d04d39ff6911f12443af55625035c72eb90e10bc952d63af9410e7fb2b94f719f4a719f5232fae8733495e22a873d576d0acb6866ddb8e7bc4f755daaeb524f14535ceabd6b747a983b85fa542af51e875f8828ef4fa74fcda0fe53711f509e3592b592a9a95dea6b244bae640df73292864e4cc6d699cefbd37faa94f7ddf7cba03cee7f5a47f6d33e1c96d88dbfc5744a9ab64b922cc936327c65e04bd63a69f4d5975f6456cffb39b7cdabf69339f529f4cf4ffb649f456fdbbc6df39e287a99f7dc35d2bcd3b6bde771de73d91f79e6f00b316f5fe4bd27f23ffd87face546d6754de3bcd8c2afb2ed5b50c3ef28cc29db98ec3dbc7d7ee4ffb6498c55f469ae9aa820863c42afda211cc5f1340d61abbc6aeb16becf8f21ad5ac5db1896c89d11b9af24f86af1baa20a1822151ba410c86cd797af73ffd773425c743fe5cb16e1e487563c34aad6864666a6aada94f33533f255365bea65e9592a9155567ce380d7f4874e5d138f6048caff5fd1a7bde6cdb77b50e8b8d5e2032e1277386f1912a79840c5f47926e8072248cac45cefe11309927c3d79157d67ca3dc0efbcd6d2a6fc167d5d7fee31efb8f423698a8067f2bfb10a21e4215cd136115fee02bdb973101f5f6372cf3a90bbd2583c2d83d3f9a1ddeec0840f02a3e9ab9fe77c21f1087a5e4787c48461277cc30f6f3d33a2c366a14b42cf14ffbc419af5b50cee4cb63ef51a11978b9efcb456bed91ccda18630c42dec3af977c3a389f2ac3cdf1043a7f9fbba6cd31e0f41b2e72a3802edabe8b367c642b3afd11596464fb1a6c514311ea73b78b9c5b41169d700d337445db7b517d9a3db6610845a88f512dfb274ae0447bf643432e57abf5bf5a795ec49e561f70295b2db3747ee6b506d9960f6a39c185a02de28207a62894bcd8e083ccd2001aa658e185164862f08494e23505c90cb412db25bc6f2ee17d43b209e6c8b2099630233b0d39bec3123c675bc4d090d812800ee688734e2957eeb2cb38d83a5802cc49e0906394388abf023a7f229f5434eb416f2d6c3fd2ed13f67014f0bae117788567d004ee214e0eac76c39f0d82cdb0fb5076b82484055e8f9a254b8e04e458390ae408ade699119b2557bb0c3cda6889d20372f6605256135a5938542b028bad94c0321b27320d0c6dab62e3585870271a4e5d944e05d701885cb0f288babd91585f781f5c9a4b3c141528192864562916d3504ab5faa29a79cdd00c4153b3d252b332c18a8504cb8675c5e666c5831b1c96161c195cc898c10263068d550868407fd60c7fa5b8988504d758395123c7064b8e4e0c74765836ecf03ce169ad9a68f5b0c4f4d888c2c60d1fdcc061b305c764fa61c41161aea8d2c55aab9484abe342479616de40072327194070c972b59a93e6490f4a76b8410d9860a268ca28f29c73ce3981b08293ad14ca82a423983cdf44a90f8ba8c7861416d1b734e8287fde1bffce2e9ff03ee20f2eb9b82091345f1be2ad39391e78d1d69cc42ca8e077050ec0007be6fb0083a4123c207922cf31794af15627d14d2e0085fa482f9921cfbf4678f35bd36e03b2fcf7ff6cde1cb3f4e51d72e97ce9d7a50f1a33843141a61f25fd48df050fa2df75851ede223a610b2f4814d2f04d3f2cb22fa578f3edf562cf9caf8391ec78be144fe5034f852884f5f020d7508c51de6c01424a94ae216f4d1f4f038ce7d2fcb6bc35dd4917799eb228bd3af0254fa62a56b2915e020203530bf3ca0107f96b2d7976077d2fc483280e4a79be033c489e20cf9902c541293b6ed100e36d5478503e529194a5f914f3e26dc9d8d76b5f830d6194b008bbaea16f95935dde9ab8157be8ab80be90268f85165ca86a39a8df3b90832a45d293d21c0eefa12d6fb95ade124243e96b318972e48bea277101540f5a220496006951cd145e37a1b084a04c63d18a8a144abff0e203798b3e91e3d8e1f216fd19607813904de9e370a14ed2caf4e1116fd12cbc0f3609a11fa9470503437bbdace41d97bb90d0c111de96e1eb09163e3cf1b283032fcbf0f56405b88b47337c3dc9f264c9c9164dc218dd31ebeef64a59e98cd29d4ee931c6487dba74f7e8eede399dd2638c91fa74e93b3c42f749fdd40126295dce39699cf261162f74d60f6e01c08542de2a1259fbb2dab6139b449d85992d69f068bf958d934208697cef1b8a31ca9edd6dc05af8f32184d0f34d031265c4d3daa39c544e38e18493db312bb49b967d724a4a2d921925a5945229069594d229a9189487298bf80146fdce497998b4881f7c404649219c1fe45bae4c85c41e1f8225447109696a9292723bb4a7580c92dcc3a5ff5239d31ce07177157bdcbb2ef4884247ee80d601813692fd317f2398c3bfc22f93ce6921e6b2c3aca098ec2dd8244408cce17f875c17221642399bd549616760bc86dd60a49adc40c687293606009102252eace032050af9ca5f3711227f0d25b7942f2aad3f90b5971e440254c1cb872e25a85ad0440c0cb394bd345132bb1e2c75892f884aa86c4088d70692569d9414266b5db9a0f261531b9fc8e5f7941e45f710467e3fc9f25f7e4b7251d224cb9aa594527641340f51e4f9b3872636c4f03ecf05c4827f69608c2c5f90e58b891559f250c46a098b75b94bcb9476cc92dae5062946139dc10d51da3098620fd40289152e9214608c2662242980184b564e5caf1fbc70bdaad349e9dcb9828398fc793c5194c820032548787c7829c141a7094fcbf0a584098f16de29c39712204ef821cb8b0361a4327ce95025cb0c5f1c108381ce7e98a5fcc1304b19cbd0957df6028fce3f2ad019b68cf034e949fb9e07c9cf82704b7e9665d9db771179f56dfddabd3d8c42f1a390ff268307d35a8b61f8a607ccd8f38019c3fd1bfeec57a091727d5b6d8533053d05143a01f618210596e0d9eb7f22e4af95600922f4155864e7f282eced44f666227b83208bc98e7dad37061a438d160f668b894c59c13e7dfa935d805ff20b714c1879882acf8fc09c384a0c9ec545f6e9fb8f10867d0f7e29fa17f6747e5683a73df6da018b0a46340c0f606f56a88f7dbd8978058b6f26c537b3be02e8dbf9b4be7d5bf1cdc42ad8aff8874c5c819e4ab1470a145e37f196ff6c5909d34afe327af03e2f4b0f1a4cb6a8a0c91bdf050f3af2a0afa544dc4a3798f0887c4bfda20db15042afa0b4db2cb15ee6459b2bb30b2a250acd6fc51ed6473624873c958d1243de7ffc9637e429c950a5c95aa25979f6f07cfc500a9e0ec11c4ade8a50bc356688baa852ffa6414ac5033b2441bf5862e262b000777fffee202a4f95921d6d46008294726a52ca183f4609216c6c219d4574774f8f518c172c947c195da600b6518e727a8c16e572b99ab22896e16bf489cb5d9489103b503c2cc3d70e3ee8fce0c50c5f3bf4c0138537337ceda083159e67f8da2187fcbdc7e4b5c30cdb172f1d6a90b72aa20d746090058a2e3a5064a0cb10456ce10549d31355602a7212489ec04009a490820be9440e13294e40c50c5a341581e588a51a493f98a0a0091d40414313529860a786e6d265270b2da4ccf0626afa0114412841154ce078811740e48004104b32d044971a4d74c9d9014745d3182c3660c30e58482c3b4c475879420413592cd1822f240974c04030a80073240460b060ea81bcb243a50b0f0c62120134e5e313424aa652299aba94a62ecd91639b5393524afa92be94db4ba94929e7a6650b976ab14ca34b9a49132716cb345a37ed76ce305be9fc21c729c7898b932dd95d7f13020f3e95b8c16b45cae9df1768e8eb2c728c22fb7fad85eb3f3bc27f9e08ff0dfd402d900bf402af804cf00b6c82606018d8051403c3e8a436d2473a492f6926dda49db4524349a2a97495b6b294a5b5f496e6d25efa8a66ea2f40ffad48f8ef83fe6b0909fde78af87bf99acf1df2960c16783effb978f80cc52f06d77f459446f8af881411fe2bb2e5e7bf225ebe224c397e912f391669faaf08981c8b84c9f18b7491632c12868d886404e9488e484972fc9096e488c42447a426acff909cd8fc87a4942312941c3f242932fe434a62c67f48547afe43aad2fa0fc90acf7f485876fe23ca27e0f8af87ce7f06b8f19f0adf0a39b290630b3906c9d101ff9f90fbdf10fc9f0b39ff1de508438eff110122814a8e4142df72368510c21dd24dd9070fddf8804c500440def2176249092e194c77741440490a8194c8a5d039460fe13d2e292141856ef2464a1556f0421304951708b618994a20d841def20408f96b231f941d391faec9adef962b9782969467baef9b65c8a560e3fb87671b4fe4944b8187c7661a6feb43b8f5fbd69cfabed453dc770a21c80cb9147a478f1819d3c0169a0ca3e8410ace6a95fd4f681d44ed0397fc73a0d04999f55cde92f2cccfab65c8a1109724e5eee7cdb28d9f17cb904b81e7ebcf145a35430e055f4a4aa2197228c0a5a4a4ccfd44a197929264cc3c4fe4ad27f21ed7b5d743c9d8b8d05b23dc99ebad9a1b7f9594e3b36c6e706430e97192e3b778a0e4f83b52727c1c49e4f83774aae4f8d852fc8d86961cff6ffccb25c7c7177a4b840b63cfcfad71e3e7dc2b802e0937e80a7d459ae42ffe10a2d6e1533e90dddf7555883dfe235c16628fbf08fe3fb78fc41eee3693db4d5ae93614d46d29b793e8d455f9cfdcc64273bbe6f6abb368d972739b0bce6d2f7d85b7fc67dc66bafde57613cfceed30b7c578cb5fc7ffc6f52437e247ae27f1254caedfeb4eae2b5d87e22d29def2af713d0998c31fe806893dfe41d785d8e34fc285b147e8dab89e7b6ee7d6edcc733bef5ca87361ceb99e6b5c98f185f9661a17e61917661917669c0bf34d665d985730d3c0ac825906664fe8c2a2a00b8b48b8b008e8c2a2112e2cda3a4bce2efc92b14bf3cff5a5a4a422112e44c1120d962415b92e2cb2d8331686f7f9732abe1423ade27d9fbd39d7cf1bc5f52e0f722117f62adee3ef8a42b6c8a978cb1fbbc27b2ad93fc8842304bf3ee0e81b6e23f6c8d6e4a13b55c7e6603532acc518ad07c1d8cfd1f0209cd1c9f07050373629966a355343435333b352b152363237289c4ec6c9fa402346ebc36fafdd0c63356c4ed5a13b9347b6628fdb807d03c20c6be45042f3f6e8b227ad33d3360e7542751e4a66eb946a86a666c5b2b9d9e69c346850f917d7c8d1d9e169f54c1c38bc36b50c8d23de88d2862422259c3d73ea5079aaddb1980e96e5645a0d6dc31b77b9d34b22f2d4d1f05cf03a6fc69c9e0b9e87928192c19149ddcca9c30c6b866645535353b3a259b16658362a9b9bd40d8e0c8e0c948c19de0c1a5decd21dbbe00dd7d06ae464393a98ce8edde1a93c2ddaea993d36a48d1bf1060e9744248e1cdddd396e96d0a84be9796249a471c41b51da98179012ce1e9fb4452b4fb53b16d3c1b29c4caba16d78e32e77dae605e4a9a3819280d779335012f03c940c940c8e4cea260555369eff6aa59a61cdd0ac686a6a6a56342bd60ccb46657393bac191c191819231c39b41a3a3f12795f797db5c70f1866b683572b21c1d4c67c7eef0549e166df5cc1e1bd2c68d780387e38039268e1c38729c6862a0cdd8c0830fab27874090b492dd44963d48c992264b29a59c39f2b779a1b2e50362bc560b3c2011822b43f85025494ea1c48993b7fa9c98555bfe703e1c03c81fd014a62c954c1993e5afba64f92f5f1ec0e2034c642987320d07a678e0c75671d1a52940e480802ba838513d0e56bdd2b9a284a525839793e14bc9cb0d4a61d42008254b411481c1f076327c0501c513416c9183821d7868f06e862f21ae2c11220633783c19be86986167cb10472831c4143118e2064ebc9a0c5f509294a06c0067e1b5327c41a1522308285e746c80e28356132272d0001149ec78e1d964f822e2045d1041831c1a1001c616de8c1c6a60c0534da9a1030fe5840e115e4f86af22a8d8c9c1cb91e1ab083076c6f064a404e1c95cc13df06eb47089a2c54e0abc1919bea28ce151f2643c31e2e15cd1c922a50a9d2c3c55862f296072c0f0689272e07919be8ce88187031e2ac3971145ec78f15819be8c1801cf0f3c9c0c5f466cd1e1814723c397116054ab9f0c5f4738c1aea8c98190dcdddd2d642b849ebb15d0bddb8a0e051efcd5a6c48338b963c4f16e194018218410c2ee399d5a295b6e3188992f3cf8fe3047bb1b4529ad9df9c8abb036a86594f2ca0c2194d2b16e2fe295468e5994c78248b13d8aae638430b69451e29b037891631919906291764fe2af84101231e1c19736c6e8b7238c8ee445da3d498325c06f28b1853d78fdfe10df440c33cd443e4626296b1dcd101d678c32495226c989a82293783edfdd6712cc11a3cb0886166384314a196574022e45b7abff2c5b520e4139806fd572ed800f9f5ef1b5a496182184391287945256d9524a5831bcd69382524a298594522a31cc33c72e7abe95524a98adcc73cef992c865f4c05c01c793ce4f71c81968d083bef8f0e984d67a7477d742caf71e793eec98f064a5154f40e689870c39d19c7c971f8544212fca11e2020cb193fa480ca007a8a46c19ea6aead094000000411000c3150000280c0a068422b1581aa6a12ec9071480117b9642705a94c9634994832008620c218000020c20040005000435443a41001cfac4479965fda83821f47df75a5473f64e807bb27449d138657a8de29f40df6acc60f28375151874ecb91070c9e995ab18f5dbffaa64a2e2e0270c501a0ac270c90dbf5ef7823ab75e62e9380180a59b95820847d350107fa91912eedd5889c004d16f36c79953b9dfd0b2848861423d6e4d18e51ec1e9f0b7de91e7c403587492f8056b4f905b5f1bc6be909e50d3c237849eb0bcd217df3678afe9046fef86ef57d818b0ac296ba36ff20d128b1fcbbb9da902845a78e494e361566666827a8848644637b6665b6f9289b018ba9b3c46db7d7b92bf629e9fac54523ed21f3135b862521bc42587ebbadabd47d9a3928f81ddc9dde3cc2c0847ea1b5edf4ca79b126c631b1bc4052da2c50f396a4a1714ae744710a2f99867728d990dcbf03a32f63006edc49c35cc8360fd295ecdcb4bf1214722e96d8641773d19e1f1ee6ed31427f07103e4df87dd8ce79474157d814c767bd751a1f740a7e2e290665647477703e5693fc7c740fd09962211256b413a540717297f6b82a4a132019ac5d7c63d04d14c3275439dc9874bd31aa048f9c5f8819b1a65ac98029a199f5bfbc5c7ce546d3fcfeac6544fb0d6069829d2c492768dac0e530197e7d2e474e03226d643319982f5a5ce0fefb9762c642578003a3c070ae782a50bbce99eb842d31d97a5ffe337b81e6081d40f493556b5bf61ffe1e91738256f73375eb342d03413686d45cd8db7f3342ea8424ea38db7fadcd74f10366969913cfa64c623705201c865955e87921498be18990531b01b88113f908ccb431465191647c892e4014a6156c7e66e7e349fb2554dce167e9bacd4da56d0dd1d8bfe1b00059a2d5e95bfb1e381969fce06f97e2aacdd5ac1aff55c54b4b0cee691fe0269acd4efd2dde1d29ecf7651cf3619a91eae1d3e75797cdf5c5d100218b2e9de4f66431edf2ce39fb7ceac4642e1579bc307b7e010e4cd292843994356f984905d3e26820f9b02658dd946214ad07adc125faaff4751391a2c5825315608f52853d6451e45a3972f5e3484d7a3733cc7a1d1e06c8cc4ca2cb5dbc796f04651d681bf441e14f7c7288cde98de198f3fb6da671b551bc8fdc5eb9557cddca7e8dd7561629babebac1f6a05e1d133a53d63a142559055b51e5dc8b800f5a2d819c389e7d0ceb05ec037b9e4ad1ed52841a46c1f97bbaf59506dec7d9e07b20d0bba004818df07bd33043e8deeffd59c9e3dd95718670cefcaa37a4061c24c7350ede102911bac709c335c687c37a2318a511c75d90f89958217095d49580707302e84d14f6c9a386373bc3023d1b3df5dd2c3aa4f09c17bf4b004caa8538d490bb772f3fe4924f110d0070444834a98a126d05a2d956b426ecbe067d818187bd22ab5f7f62623d7e09fc56fbfba2bb2a68ae019a01f7aa76776b2f5550cf5bfc3a10fda7fefb8ed313757eadd08830391e3d2f6787a5e47b7479a385aa2a2dfd5e637b5b68ffa0ded3b9381bfe2dd3e8e500a6c97e8233a5bf5dadeaf0ee0bf8fd2e2c7ae1d9a64f7251edda88a57ebd7b7c0501448e3e3919b5947746948b3cd98b19753169421d28e1aec00c694f7cc88f0491a981321e40ecbff6496d36f2f5e966fcdd63163c8ecb82c9ee44cf42df76b0df21e3bf436ce55e3073caaafc57066c42d511341bd27af55bd1eb28a6ca86d54ffdc7aded36584fc99a062ec12997b4923fee9954a13a62f07dcb5e9b4ad4aae6111e272bc8a64113d473bbed96ed1c35332a55ee33efc0e7b42ec5b80e656f52015b43ae6b607b7967dc5b08979722f882befcf1e586aba9468f1f489aff5a1e5cdbdcd46b8ac712ccefbf03b75b15c32c74fd687f29011bf9dfa24f9e4d2843d9fa0dbbb885a6f547ca794f7cb8848221b0bcdeb3201f36734cb83f0f98da74076926220154a3f05b850fcfade9b9fbd48acefc34fea05284560678e53ecdfdfbdfcc1c1d8e089f41f6339658c9fae8fa525337c5b372a5766f899faa05c19e36feba3d2c88cdfaa1bad54b891ec48b18d7ba7abe877a41098ec43a0cfcab2a21dd4d8562ceb18ee925957e5ed739b38f5a11c32c76fd687f29019bf5d3f964b66f86e7d54aecce137f5417965c6df7a9d0b4785e0a60556551432dd515e540eccb080914054b7ed54021b4d7d8f76f07b4e5dafc6e093f147ef5e48d069ce9bbe5880a09b599f91811571c118e8f14207e609433be2869fde163e5626d54eba461568a16c5a3b032db9e9f06a3a17d4fa560dd5c1cf0d8fce8fe43c1f8c697ff183e1706c8486cf821e9e9d07aa433e6fc9dd4227b2ee1554d75175ada24a3778a46d9a67fb04fc7f76c39426ec3d0ad7d68fb3f9adebbf7d2f89e6ed63b47ad57ccd72ec378eebc058507284a4388817f6bec5b8e92c0dcf772c12f768776c282f1928dce8954ccd5f4060fbd199f0577ab0cfad3bff4a9affa42cfc2a1ed87fd7762bc469f07dcbe4b2a350c4b9d2fdb878a0d31fc04232314378df7262e7a387c2a7e326ecec3e60512a853aa7e160fba5b2f0a77a61df513bff5536ffc84cf82b3dd8e7d69d7f25cd7f52167e150f60afbfc753112dd17a06422f4c025a5c1fdd94c4f5c0df533bbf4532ffc959f8537cd8ef569d5f21cfff6426fc541fec3f2be7a7ca73de605d6a54e49be9fb53011dc01b630874fd485be61af832f02670951cfddb0bea6ae6c5f525fa22aeb30b16f31f4f7aa6fd6e02844b0518381f28630ba35f40ad001d4bea8521e0ddec18ecc42b0063c74c1ddc249943b1f877aad57bc9cc908fa018500cd6584ce0622fef39211ede8673609e8df0f436a515f59890816cfdb97800a11c53f9d4782974c2b11850990fa16bb188b4108de297057a612079e906ab8a50ca0df806c4994d5ff90a63f013d8d3b06c9ecfc603c473608876f1020ec8bf428946255909a72132fa2197e9db85f29e11650718cb23851ead878447180a23859f2d0f8427188b03059e6d0f850ec270483965ed9c46b057c23ada2ce8221693dc0c3462e6e4c92c37f856ca2fca7d8e82b7c943e101067598c257c343d111866580c277d343c21146759052f03dc30cb82249663f27069c216095c79c4a1d9192086174b83924bf4ada8189030f1bfee87fcbef5e35a897f053be60ebe7a0d149ddadb9bc220310e5fe3f3b3940923205ba9aa75708b9dbb1ebd2465853229533df43277c74e9feaa11d0f1a1c45ee0fb90607bd26c6519b1c41afce54a2c1ad1e0c65c85c26e700be00e8c709796264a26b3b499d2ba13ef6c85bdec9d563fe64315629c970226ea5d507c2b29ae1afc1fe1db0b6ec264b4cabd5ea581d5ebbc9f7f7a3a5de1887acb847282c1bf52f1febc09590ae4f4d49a973c5dbd0b28811b6c8c98e8dddde0c6972f64e284396ab3e2644f1ba7ef61dfc3a568164e847e3271b11d02016a507c9173b624b00dedc02ed58b3c717db0b289918edc1067344d21ca6eb25317106281d9e33590c1f558748a1b944156b67cc287d15d5b7328a3673fe9c0492dd968e876d3607548b997f01d82e5b46fbab57d200f4cc741d40cfcc46d7a38eeac5ff53b29dbe9d7358905ada132bf53af9733bf4d8cc422e5874b95c07ca2578a3ed75bf5f64fc3d78407bc7aee51c79aac7ebc21632047fa128ce9fa99029240733852a1fd29da897ccdf209c68ca0d384fd035a4c5849b0c1bf10f1a23888bbb4e0be37c06bc1b3ef974ac90e59aaf041c06526ef8ed32914bc58e58914b23ac988de533cac7b94118eb3fbe35ee8c1e423b14f6265c218a7563bc2ad826a1f142e0b4dfa0d9d6aa3a7040c9d1d88fca423a7340215138d4ef735555aca7a767dbc50d219b53484c660ed142b846e1557238650cc8c8f70c99be400124b096900178ad83a55e50a49834d6e29eaadb5847ccd8aa05eb1155def101a605f1594ff76a86862788ef7ccd631472e5bfe412d2ff3545d7141da1178a1b89f29a98c4104cf14e4c9e3f0a5c32fe3a7d92800dcfb150a52e3881ee3d6c24f5b636c9bae3e78648fa14d92d34b96e2bc75e788be6e3ae15d2788c876c1435b88ee14f6b8ebfb1ec7013a7871cb4747ab3828a4be07b7f2ceb08f830b5d2b13efb13363afad4e8e5446dd9409095c12d1a211a3dc695f768c144e2cca48caa654a27f3672c3fac3d03ff7f46e479bd0a6771d8222e488c3500aca44c401b3240a47a8502dd19ef9d0637626265feaa1a0e6725ab0505d67444eccb1788edbba83a47fc0c4817ced2eaea214778b827a5e03fab68d4626e4019e3beb3f702877d33422b727ad07ab1d09b6c80b7ed6d904f5d8c5d549d389ce813217265a9e2ac86856d4583d031119261776b8653384383efa7a3164b1bd4ff2768b196b5058a990184d11d7b84460f446144c2051c7fad36a360812ddda689d8c430ada6a39195393e52735130c4274c00845ea125c151726eb979096a59d2cfb64a2ba7ea5fe353cce9fbda54763a42695a024a52eaf512dbb9893bb748b24d695938cf60f567dbb08762ce3b749e8816e22ea0aa95d9a1dd903b89b90bddaad911532ed908230977c547d9274fb31d8099c3a40acc36d918d9baf2c0173f4cb278e90b90c33ccfdc14a3d7c84a112e8a3037692158940ba1ecdbdb5e4a9686179cda18291c95c3c140cbcd17e744e2c935a5eb783dd71912bb2b32e785dbafe39b5ec00d4ee33561ce8d2488c1ecc5cde8653fad0cd7780a5299f2b8ea5f122c815313054e68f400f53de11f242f68199d6bab792d588ac4cae6e82dbfab35a606d6f0736bdd3b2af1409306a2336bc29281b69d727572dd6b47649c2ac2c4ffd1907f202a6af01baf1da31ae7f59984211d58e702d7af2f29e8b3a642f8c3483a1e6ad202761cd309d033b2351cf9a73d2db7b725d50c671557533c47c4d2aca71be60252bc7ee29f7f69e8fa3802c5abe7f8bc0169260420c519304020088b9fb0dd0e0892269d06e02b935be85b22606c3cbe457bc3a2f739c1bb90070d3e2e4281b1c3643f835ecf1a3033e61ce0fef7e5187178e748b136e01a67a0a05645ba978e8af4d27548c80b612b3796760a084349778f75146eb990f479df898f6b2cbf2cbce7f5d32c44e509b67d4b2488e3a1da2c61cc58dd56971cbb577cbc0373a9d7ead8729a13e6ea5c7f56a5a66ec8a56cdbac4ee008272cfb004066a61d6726eb4b07c037c24816a050928616bd5cdacb7dd1c9fa1691f9c5db100aab038c65cba86878d3e115a313c8c3b66a58affb0b9fed2d43c8c6b165fb6975d6b2a53dbac35dfac092e9878918a6272fe8f8e5aadf485ed626004250446f7ca7242491b459d43ad0bca8bac12e43b4af90a2ac2ae2dd4ace5dffbf0d7e55d8c277d695f58900fa35681f485a5025d26a9fc68a8d1c820532e72bd4a2fc7414532caa8cc45e132fecbcd1b7e8963bf9902af26662478c0506bcb643bcd5ca592e9cfa9ebe55b3902a9abb6fd0e9862281ebe903613313c8b237efd1d2407299ae4630fda575d20f3ccb9b7fedb22810d55c9001a7b62a346cc64e5ff105a6605794cf75aeeb19048eab7117182be63ea313eb10891ea37e41f1145171c8e67e8138e93f2d825282068e18aa6459b6570f9d4b146d594664568f01af6e184303ffb9060bbc8723faa012f4d39194fc99231a34a06d6b957f18de44ce9bbc074cfb4adad0ad6d848ce4523872e73c76b913397138c75c5c1d5854b5d5d0a7e87c292a4a9eb51b6226f06894c11459707d8c1f039f12f847ef97c6a7230fe59968ce16a586e53f6809d7cc5e59e75b1b268df4c1481dbc18236b77e4e35dcd02236c8d986229e05b413c87062af85d493fa1586e38363e4048e4f3a11caf812d73801041aa7a4dd0ebdd4349c103302c519337c7c645adf48065a917e2194b0a2b8595632340dac1897dc0b56160d5b651ab382b4a0a84d16a50911f720cf8a13e7be97acd3dacbe8945cdb9a158b8ff4bb82f3f6197461894a441eb71d04e12726b850dce3db9200c7129d2ddeff60a915d1f5a962b6ee89f022c1d5e90c8c0dab19b5537f75c1a51dcda6aaa9bb1922e51be31495bcba5dc77c0baeb9e3f929936dcc9cab43c095f5b7996eba3d2e76fc71adab65007052f346d93b64cbf1e485ac4f077bee631138043cdbdde51385262157efe2cbec9dba227a728a4374f9d7c012c47ba9619049cc9c043b26684651bf2c162bf50a4cdef288b4af64dcf675276a4b161d743e4e980d9c92d3ebb3b1318eee460e6b743828c68ba2152adafcf4783b52065da1fb8a8c638b5c0ced3023acb28cd7322ce8a8e896a86188e08f425cf59087e181e652e7b2209471036c0e19a479c82e2420024407da578ae636951501cca63239f34a1bd0c03234cf4366d0d795f23c9a3225cfc3cd919689b97258cecac30bfb4fceedc26a5481cca51711f7c757b3b5398ec2dc34858147cabea8a7d0cc81091cbab1bb01a288b464558e82644aa06d4e03ba291e5214410365c1cb69c90526239fad811451fc90930d8ed45ad3b339593bd59a4406046dc101ef10b794d02c135d64023dbb45562fbc2cff2121be40cac52fda361d4d6a22d685717dfbe18d421855e7b79ca70c1b9c280d990b09f10576d8eaf291acb444b70511d0e0f637da4657766913c7d9db9bb16327d8d6b7bf0978be93c46fa957f6c416e0bdab93b3b1c0baf8d66b0133c974d7be3c9b634b64afe1e5070a30eba88f058e2dcb862b50bc202c73f32f418e9673d0ed41b4305a8e1a3b8067f00365fa9ce77611f6c74513903e6d949bb12e81af8cbbabb3cc8104d68b15dc8b3ac344ac840fd448353db56bf70e81d935a001f6bd7aaf9340775d38153c8fa902be676b0c76b4e3f604d16f96b416ccbc76938f7f6a0ba004b405ee315dbd70b5183fb0a0db4c0cc4cb182c56015dc6dadd67a2e00634ad5670958c2670a1fb4daf29b43a230f28e47e4d5b5fb09af1031776df7cf505ab2ae36fa780426eb109b73f5970339870f34e6c80407400018f30863e5dabbc77f50cafa490d4de192dee1e7e88fd25a6a8a5854828ded5b0823e38b8bf898ec595e9b456e802d55fcd1ef310211d511c05ab365e40417799af3aa007fcc1e9bcf5a71c837f830978d817d75a695ee0155ea1230b2ce0bed9d60a5632f2c0c2eed574b582558f2fa0d05dcdab1558a5e30f54e88ecc562f5c85c60f28e82ef3d40b57eb8c6b87d1d7423a915895b350046b3461f5f85db2505a1afcc633483fbbb0d5607355705bf36a0bace6e80716ba4fa6d50a57a9d1031774cf343585ab7be40185dc337dbdd0ca1d6de0027761fe5ae1957de4e08185dd3279bdd08a75dc5ed90bac5b5d976e315584f1473e26b233096ab0d1134cbaea91889ec168d1d90afa1d5a0d5cac81ff6051dec22253b8c434fd4dd687374b3672cb2027d58bc167a72c60b97ad3eae930f1c84ed857238c3558e97deed8df9e60c3b2bfb670bfe5c32219e7bbcfb74b6573e07d0e7305e3dec8adf1d6f59f33f11913090f50361c226ac4ef34911431eb443c1e6e8270b57e12068e47600464e181e454c4c2f334733804a314042d7ec4c098ad4a9660ee79f9ea17284f8b08d7f3c0c45a893ac0a1b19c9d21f6ff1eba601b2340de60eaef42c5a0d7b809eb176d0474acc7d958c15a90152c6ad739579c1e7daa2520aaef4858199b92c538f333f808bc4fc09940b6a167547bfe74242b1954725129c60d1e446f8f2b6afdd5725f271be8146fedfd8bc673f1098e1eab087aff5c5b48e5f04c2e6038f501603517e2b8b4a885c1192b7e672299bbc05d1de00156bfa64672b31954a42cbed776cae5f7d89c246faf2ada8fcf04a87a8ec15664db102acd0575ebcd3ea91df9c558dd551f4e4a8ef61f4d4446183c1d745ad0220ca28c665ed36cab4f685da334520db12543612f8cf683683b2929d2ce83eb7bc0acc08622e5e820d43646f6e531551c069e92801e75a5d6386bc5d47987f705088ec292071d7e4475571e3aadb682fbf053ea52d9ac9c35038cc3848cc9821afc2bbd1f7b64c26129369b409be0db736cee6757a77b20818020209e680883a4107f66c73bb86155362336e161959eca6f72f58e580fff1289df0bd648447bf8ef1217efbaeb45cb2dfe249b977e291e293cd8ccd2f15b61d4c1f2c5641bea3b7723251b8090e86a9b900c40546675dd15cb9ee805784a70369333907f8e714715c384669638b1331c15f878932501415f698f2eb22b8ae89721b021fcfabcb0b50e3155d234c4487e154fb5bd3d46bec4f33bf24003b7a041d92e4255e7b453667a2753f8c3d96745bbe267c33d3a04efdb4518c164324a2480944c1ad615de30300caba314c519290887960395677a8d37bf2e6827f970b6440253e14ea0403acb4d4b0dc7a1fe2c03dc5595ce8e9d03f9f31d5663172fcf6a0690980689860fd88dc8cfaf65320c82c6ae180604a2787a84441cb75a9247b71a41e4bd76a53ea8bc45ddfcd19507c814ccef2ec3c6345f6c38d8bb1f8b89140a1527b7f4131711094dca0f29af789228dfbfe9792a62568f44b37c705f1601387cd111c7e5f59a08b206ad38464448115e146d44fa8c02e78452e103a6c1a33d6816f00032c035d4cdf57b42c04312a6d16672e4981355312184eecfca209ce0d63a23385d31f2dbc3cb63dbf746e314b2dbe527f46b17a1811793d9c5911fa5b104fa50bdb7867f3ab7edec09b212b481f4841847f52707992b80bc702a44667b835b7f80297d63aad87a220b3e5ac6270ef3fecac966c3707f2150ef18afddff03d7f97b5b8f5207e310957adee556bc4d18ea8073ff2878224017e5fe9a98609afd292783c6527f7cb306d3664b56c653b3c9502414fc1039b8bf904283e233cec361d3ecbc0fa559878b709d4f17816630a1aba295311a1dc712bb0f23d753cbe99c78f4078b8afd53638f598e7ef6522551bb55326d98bbdfdf12842717692754fd2d4d395a7467c5a5c0180b96e59e4b8d0607c21ffc1469da8ba9f8b5ac14b6818bd5519d0f72a9201601c5156fac15ed90ee3ccf7de4b7eaf0acee80b8a82e9996a574b10b65dfca76b756c2366bf161ae1e9d24dd4a652a570ff6f1c5534085939bbd98f346bfd6157afbd39c4746b3de019181e95f7ddc8f1ac4b0febe3515c639855f1263416cf5003330d7dd19ea02bd1d89a3c5600290286566c4ee915af80bd144c12594db5af9e8f125b30fa682d5256a9268cc6a302534ade45cc5459d473bfd934a26bcb78aa26e1aecd4beac036f2cf1eabe78b8903ddaba2be2c40ba9125e0c9a614e7fb00923ccac7052439a1552a89581c9b49294a466672af15e3065936c447f192501e29539b31d604edb75dc8495add0ca45cb665a9056c748cb06ac02e20149811c526e8f7f075217e2417f133686e0bd1667c8ecf5d4d0ed3d16b8d1ed89b8bb7211ae3da1abc88e976b4b25ff02a884063efb8bca7c571c40d37748c404a85b8e5c65c42c58e0481b68c4c2473a1b166e2820bb0852a1b4541705c7bad7668d2b7f8a58eab70703f30a6c31b1a6067a56f87823b15b574abb62374181a65ed7920cf45804322abde591b03a61d8bb880b15ac274b9f6b047cd1c5d5bffee3f2382aa02ea6f1802b5907d45f7380d29f7bbd62825fdafd9dea57ccd1766d148f5c69a9c7f9eb2f33b0203db8d788c56698588855d4b14f47c6a3097211b04fa56b9682e855787ed8d02f0aea4cb8b1f097c8738335df722a46199ee5802a482ef1c20ff026e53956703618872deb8f6f042a1eb0cca004b17cd57eaab10ec02a5cabdbc5610ce1065382c5ce3b4dbf6d02ce175f171976a42c8d7d8719aeb0f6937d3508fc8a94cffe71749fa8e91f4d11cfc6f1d0e1fa4b5da051e3878abc54f37f429bc2c56eee1e02a7fba58a55dff7dfebc3b74e6cba5091d7964c580b12166e3098682e90c9b9e412eece137efe1d2fc7002dddc722110357535a8c9cce2baef0803026bba124b6008fec3ea10d41c7e14306bb2ed49a530962125c6519b8015b64e87d73135bcf13d17bf88a7292a58c8dbcb196b980068a3812738a8f12f59b8480221f7e4b98fa23bfed8964ee04668a6460ce3ff1b10aea8166d3cbc0ae218b90fab8777125bb6b12139bf9e8761dd6516973105a69a39c29d84d060284a164a0cca1044d2ca51392c49b5aa3cf7fddb5e3948e6dda21f40466ede57a9d222d8cd6e7f4e36e5002d43715d6843b79f22e7a3c9b6400b7621450800f2cb1e2c023d9ddb04f130ec45bfeb3caf137cd8833fe92ca2913c5adb01312c389c8cada91383ef848d5090c1f6deff8d25ab7a03bd95674750adb5f0ff17ab4249a6d7dd63328c3212179a861c16a920474ca034f962293d3258bc3fa08144df228dbb6322c1d3d975f21431f17923a6231a865ebae5aa8ffa53f93dfac22b85de6bcb1ddc1cb002fdbbabc434e1e141235c2a7c67bdb2e4a0aa49562c3c75f17a45fd0fb0bd73772701160bb975043ab234913a06dbaa841ba5c40dd272eda5d673d51b5d108a2a7bf7076f46bd41070eb2a885d19a61d27505cf1a82584dbd18ab1063260005e793232ad4ca019b730ce1f24fea10bc3df8e548145d704c1dfaead8c59a56bd6bcc761a1cbbaf52f185ff716d3a7eb01a89eb998155d4fa923d79a0ade5600426bbae23a1e2dba84a55c9d26be12c2ce3d15da0de59aedce492d08bf3c430d486ae8428e88a169fba3add8ff30cc19cd7a9d38fb60e9639100e8fc57969eb968eaa6008a0919a3a0f131c43099ab0d4099ea8fcee9ea64deb719c591cbbf5543650d0ce82d19d4265aae0c92503306b336fddd9d70647671f40769436a3b86f92d31327c50e7858d6166ee10d032358706284e83ad3e3671f07a76688a0067b1cc474eea8704ddae1b3c790674e9409b90447b4a063a4288fc9c9f25b3690d289f08bae4ea2bf506988bac5db4eca6e42392876f4feb1975626e9302c8352fa9ba44a1c49057d8b2121e303ad6f4f921d942b6249b3d5d4abee222b4409260011b4db265192e46096d384649bba75e59fafb5e6cad2ec94eb266535d9101021d769efd5cfe99403ef5a71c64578452e8a2fde79479e9b081d66e345201ada4c4917efa6334f6710258b5a2cb75e1ded057d56f670da0b12ac02af3c449dea8078402572d825ec09a602a928b0f5858241d847b9a6079cdd2469389fb0746b0b3b32215bd341a93b19782a6bf986d6ae3d12c14a68934ad332d110896353a7361fb9045f6e6b94309b2b6ac03e116e771df16a57b7d1ee4ae536bb332aedb4b30c725c585149ec78529827047d98a2326333596727250fc615a03f725214f61dff71292ebaf2f6d78e3d828b1aadb0bb2d347b55d73da07dc2ea0aa3c8177ba9939988806981e76934cbd40d8b4fe21eb65adfcd65e6a7333e3803203ba8a85231d3c838796bdfa8c423c1d9b7b48bc3b2210e5985b8d2adbad60c88fc2c0ad67d4b18608793561afee34d7f543f62a8193af536203d20652bea331e54cc9df0e5e24539c2ad0130724d810fe7c9eeb70c8bae51d4076d1420e60fccf43b2dae6bc3a0c619197ed84dcca3bec444570cba5a6ccf530cd0cc93d8f1f23001909499cb82c35b04080c89c40e7a2ef944af76eaac1d3b88af1f1a6e5ab2aeb8530df62feb2f3650bd4bda12933020aad6893d3e26b185650ecc2da149476266d0a2070856909bd1add26a02dd60c9343e89d6a9cf301a6d022c475ce2d97e61d7a8fe07047e0f165bc0d1d1800e11df7453a992f8f11a1a3859d03ccdaba3392b707ca26611638722d4752898d6328c9c9b1417264683b8afce65d0821dee6cbcc08533b49b565e4b9331a5cd4ea6af7b586c5c2ddec7b58e72e1ff9d8155c40909479f1c10411254e3c95e5599f5c13085abd7e82de05c5c16ca3e9892c65fe566f81ff6ba7ff82bb0aab541215b8c0a28e88d6a10dee000e5c5db126432c5e08a4e1f301e8fa8ee0a9ffea10b011b43d786712b149ae75762037c578c306add3617b078832265f93751c5f973a55b2265190dee12a54f0aab7a55efe26b0379c2b9000eba398a811a43c1f551fb20c9ee5050ac307344ffe9f953c23769430eee080f6907b8889f45c58cdea4e9bf6b645ccc026122b9b80604dbd04a2cf13772ec94aa5edeee73a95e85ac4aaaed902d32f9e3a4ac5a82ab8e88c313823153720e2e23b00345c89a6d48c6650b08fdf34675c28dcd4a017b2f6dbd12baf62282810815b2fb03d99a5a2336425906e6383b7ff7f7529c9865805fa23803dc453b428352f6e737631a479437e075e44925063e2196963587039e7e1bd1d16adb80905a9638989d42055ed6971873d07bd1e2e0b717c377021fe806b26b30e0904424bea95322eae2acda7e41bbb32f2fbf541712e434a5f865b94596eb20a7455b9b353816a46b8b1c0819234aae269839e0e5023d59c9fc207bb21440e45841d3e6bd2c5b79595e47873dae145191dfea1d3cd3ea1bfdc0394ed7922120aef5f5be0b29b0973b2050d8ef56740ec5194e8188926480f6ea0d3af07e8930a8877d1f50a6a861d62a69b6997028203787d2fdebedc8af9e01c2f4050a5635c5fa080a13a4a903a3aed38e17d1211381c6f64dd283af5694b10fc96b9b1899a1503fc10cb4c0b64111a4fadab70280bbb3cdea23026c9426707d1819760c7d7adc1d40b123494ac6595588923a32b316a894df7393070090def47ea24e8f1f3a5a5b23c6d39f45e378f0c0937e942dae76ea43f626e13466a46b2766a626e7e984a2155b33dc91ec9530e5cb83ef7314dab3a68c10c881d60f661d62c62cde1249c41a5088cdaff3966226dec7309826a12abff22c90d2b55bfba6160ea2127e847f9edaf9006ca530ff565a741f4b4023835dfb2719659cac9b4381a26510ee3619ab5260e2b422722cee328bb4d229e75384c217b74c814ae4143da8cc4eab7a23a13880f8757416cd2b50bfe9f5c56cfaa8d5c630651af9afab3de4a6fa11ee29dac49345671f4c589a3ae9e4a7b09259394a888839e2310050b5e75e52ef4b759bd6103ee9c4da7db86d0634162cbf028fd0e4e525da05ca8d65b3970764c4b0490b44c3b834e5c54e8545cd0a15f8bd0dd66c7fd3454e7363b50bf93d8a847c887ea6417e74e19bb8870927b6b739f2cb60f21866b6be5cac9623761879b9d86be6c67e2ec36432fe0820e7b8588887ed2b127105abddf3a5aef46b1d37b215b9676469cba3e5d7653a481233beaef20ba5008f97baa07eb75b64fddeb7e785abe66cad9d5691dc8c08d53d2b1df21babaf79215191c7b6e4eb163a8cb1675ec3b2135e3865708ebde2a4576e5d89c3d4bc1af136f845e097053c31347047b83dc3bdfe5102a74ec687d33a45dd3cdb6dee9eac69ca1381df6adcfdb72cb3ee57b8fc944ae7260e3d344422260ed08258eaa4998aee1f54d834ff91712de078766a31ef28b5b0836e3296c03dd9e375ad8b614c376e5c4fe9715524bbccb477c9e86307aa8d495b90feb0f840d50ba6fe43017d1e360ab5fa3d1dc84702b43f15f0146d6f450f02a1167674bc4eb9fe38f24a0b560e0bfd8197619eeb1408d879f4fb862efdca3f46c23f46d8fba39e2292645b1724625d71bd246a440a33d6fae9e51a895139a2030a94d401ce5669a3067e78f2f4722da9e9bd205801f48f6478c1953a038acace36a6a7d37f1b930d4fc2b638dc355fadbda03bb6ffa86422abab80bc4a064b5092b1c6df3cca92e7305cc8c5fbb6407a2ea5babc74f49b3b9033a77e423d7eb43e42dce5679dd8abc4880504ef865d843ca9a6fc7b57e00e4ae95820ecf25d75551a5e4fc562561454099696e20a924bb516ac0c018f331af91c4e8dcad5a6dd9bc5c862fae10a75b69547b8cc70e766250e65500b865660b64cd2733932f0ff81e438a8ac4783e8de901a489550da45522c2d93f3f7e53d518713821b82ef1996187bf2e450fbeb75593cab47da703644bd4734be9369f23adaa6ccf4c212a74c8036f7c334f60d28b556713ab655f01ab0feb38067a1417da672bb71301b755a50a478d1551d42c3ec8869ab4f21ad0a89191188562f38ddfa333ed15158898afaa16e89a05889146d2d88d20637a243f29eda95c1810a34ff60ee6ef4248d902d0b8309f30809ea71f06b97d43911684c485083dd591d3f94cef0d9ddf7732c0b64bdaa6dc2f4608c27af4a1ca268fad0b52690f57a367783fd59d4ac5040b829582b3d43de7f9472917df4fc8e0413d1d9598e9ecbc533ac7df3d8fdf581866193b7e094f5601b81339810aefab86dadfb50fe412960c5867d7fc57e6808f06f15268ffa8702460f0037926c22236113941def893bfb13204d20f9cc5150088e68bf7c658c60052d896b01193de03b14b347271ea80fc2c24437ef2e9ddb2bca4668b57204baba5c5d843a04f0a0c26942d5a3430b6034e17fd31a63029cb595edd853879f6f6af9ad9619ba005e33fe66c89dfcb89402bf93544551fa11765cdade05214b2a822cc39617354c58a8558217b8cac89f3a3d1a5030b5a47c9ff1d1972381423f9196883963453be7fc6bc5f86e500607fe7d71e5340aa225c7554f3c8c45970b5f22f045cc28ce978660f29a10591ecd4de4ccc83e2e863a7a26e99efcd8bbbb940bb0e1239c79eb84ba384932bf8a749c4f3c4d701550c659890ff6b2788bd8e3f3c314fc883517fdeeeed853a60e686518380ca1cb1dfcb91f61d57a931b790d88b7727ddd35743c15a053f7b0df3386d4e5d9df7605c0994414ffcaef5dfb15aff245a0137d95b2b8a125bf7f7a81b10c5668f28bee2cd961e3df56aa28123f31d7ad1dc54983763c8240a4545d59910c90830202cbbb89f946fa821c3e2aea07284818a95d823a1922200e1bc332666ddfbaa43e89b92c803c391716149628c68fba8b20d1286762e3d87cbafd6a58b42716e90165517dadd755ed33b27a3098b6bcc0820288a25f6035035ad8bb96545ac4f45bc12bc05e9250c9892a8e3c0ce90a7228399aad78fc9195f92b95478880b12eaf7a7fa011911483e8fc2c4fb6651ab493833def1c42fcf2b08f2e139eea0cad57fbcc168fae2bd6dbd62b8f683f64ac9e44435d5115a4194c0982db9873e2b082ba3c520d0cbee6ede2fd02d4c4df641bfae0222773f9c391145d4a38fcaa02454e7aaf8ef6efda75c98e5be5434cfc8fc77972040c2009d2741dfa8051d567baa58b759933b5133df2d1e70c93bac7d8504ea73fcbbb8c4e993b41a3a52aa53320ece2aac7f5926de3192760f07e072d69f17afe953ded1ede87dd076d40ba35443b767fd23d27897df6a3c01ee11c647264606075e6b7ca0ae6f8806cd5186eb19073271bd631bdbe1f525f2ee90b4904a6688759401fedc22f23c5ac8cb918890ad7b8299fd917aa111988c3a13c22291e136f3725bf88233aa444df7b76ca4fd605f7aa6710248e507268345ed72cd2a7e1f81730fad540ab7995a312e118a43d72c08c6e687acb9072d96555b7f43533c6a87c7c1b4ca5fc3567481f1b31b01f568a8fb2db51dd224493895c30036c6b531d55a615093cdcf5a21336d1748444b89cd8b4fb8f2f7924dc105e9580974c374572520b3ee77aa2c87b59abc988c6374f7743f927b201715e8a6c9c49605550f0189a20f8d6803d794bbb2a07d53c5463f2f9b2a58ba724523fe7c41da4bb9dd1784374ec3d88788dc0c6aa12b125904bb17a274b207f1fcde3b10efb7c74492800dee24c5c464bbc8f35dcca35565ba3e9f9a56ca9f00ff60124228595faf9bda46cbaa7762e232774116f7627da7269c6a0e59679e085b45d4b375ceaf08dce43c2cdd037336caa99423f7eb99ecd2fa2492b35e9a2fdc8584289d74bd1e5c739380e455d09971dd7b7a456f2c2c3c17d81c239d46321397daae9f944f6d84e26431cfffcc6eaf5327198a2f3d704f2e26a7221f3f6a80be9724929d60dd2e238ff8f294badeff04eff926c5b46115b35d58ed86aa177de4b60c727f20e51913c78724711da00772e4223c15ddca8da696c74a787419eca915c4e3e291e3f0ba4166df324f9e42db239e1145539e5aa2e58c4ee9ec7445e81dd3f694c56ca6698202cd597721cdf2c85a2a5b8dbf167e19ba80a533e94d20132a3b3b6c6f911e2271ddcd15249d8bed0a3c45fb04472e8ba9b188b351069b4b1e422b887d6ac02e54bc6e0c56388be46e9ecd915998a57778e879c7006cb66d0b8965dc9c8ec54a1bfa88653322fa5eac211a2a304e624c3b8d169e240cfb7c626351d37dd4cf3a78d05c7ee7daa5d0d2d6de6d29fc40b27eb6a7553d0be96b4189da67e4a72e5c3a8c64a5bb1dedeab4a529fd73219d29b04d5d8e9699db15e3c3ebd6eb952d90cbd2c791fa4fb01ac6063ecb760a940d7cb642553216fae9d99b32581f330c3fb9d26530ac0ea3f49a1946675a1ec221925aed1e74f30f54803b4bd36856db91f5be8efbfae476ed0e69aed87968e93501b71fa627adfcfcebf32dcc40992a20517db22e1226cf3673ca49613447b34f9540b7a010718ac5b0898b0a52051a20b0300011e19d62c3a429e56a664f7fef390fc59cf22c1ff791b2c016bf3cc31b46812e87de86fe89c93d4d425bbcc0d7895b4b140739215da7a87f448a2642ae6806f1f0146643bba20424b0a1bd03a813baf739e5bb604adb7b66d56a0cd895dcc213d50cddb697cbf91961d304e05a29ca60c7909ffa2cea8d79963362e26e14e37a951b0b498b2e94ae4a92f06a94add0c9b16dd52c9c824663aacc11483f0e0b8cdb0de0608863f1ea67b7c2f18319914b9bbd67f4d16a46535a1fa7566545f83336ae07138e8fa089ac3e85c6e22181af2964d838c2c5b15bb22e8aa44653e314cb415120068a3e0883ae042a7f6808730af4a28471f2be6493cabf8804c04bea7e8379346fed24c2c6378bc7662185b1d5b9fc5969a73c542898c456002c3e20b1be4001b4f9514c15c578d87d83833ea7ed1f6ba925a5ef8a4af93607181dfdb5fd0c1bd155723241b503ff9d319dcad7d0a60dcf5494be1d065f0e598a3a0d52886bcfbfb212e624accb2ca5d488004248d60f8889f647078473b1ce82267f751b57523c27188184300830635bcc0d80338df134bc38a2fd286872f472458cd0c8e75b9541e3a1ce4056736ae3e7cf713891dfd30d9f60f979537b56c447b9204d543923d716e6702e2b661b98671feb7fa949a58d7290bb3bc4acc0725087845597bcea1fea6499566fd9b27b9e16b1bf340668677452790f61767e153344f959fa604a158468819ac1d1ab64e372c603901cfdd39c078c32b2e6cfb96f20840a39cb5e754f13fd695d1bc8c5bd8715ad2b6b840e93fe6d2e5017436cbd7fb2ee8a2b7be44a90412101aee81ebcb5cdb9354012dd95542bff63430ae02d795ec5f8d3e2dc0d090073340db9ae197bdb2930a65fd952a76e038778057abaca640c677db491cad7756851fbd321af231b163aa5e0bcd19b4b4aa80baaccec4b137634c75ec2ffbbf9d3bc4bce3329f06d4fb29a953ae7cd36d1762598dbd5fc648598d50266dffe543f5747d54d17385d495c93e6fa511fe7ad5d177735721ed48a441d5eae7403254d14be7cd584aae6f494f5a2a41ed1d749b04b732df2eefe2be6826eb938e3f2d1ca42601eeff59c2c39a4690984e3f1d8e855bc15b6355d5d23d1063a36abb9a29d4545747d83fe2778d6cfb04acf224e1d783358cfbab78082afe58cefc1cf4ba8d149c95a3b67037389cf5250a4f053d9bc01b02e426388367492897330b9eb6f4e0c690cf8d60d295004bebede4831b023eee054915e6ea5e19242c88e92d287656ad9edaa500df1a0ec4ee28c300f7bda04f34060f3fbd0da0a7f3acca4997d3d37b045da3505da09aee276954514944ee522ba5ae423a3cf4ba5560890c1b05f1c7a6e509e65b3e7b765d08fa14b095e835086b29ecd335b38d9d62340cf60d233c38e73d3eab320e3aa045fb60995e9345eba465a72eb9d2698a800511cb5c9e81c752d46113a2c0455494b4c6686ce7ec07ff4b184aa4f037545972955a88103a265b8e7ade51b049bd0054fcbbf72d7cdbc71bf9cdf2accbb9e2aeac0a6488145f7bf537d1f810e7e0c15ad9f9f9dc9c77a6e58ce272ade6a993bd8f429e8f59b86cf07e2b68eaa333b9bb9edf4b232ccba4a6977af1c04ca1916938d048d5eaad8048d98517706b1ad2bf8ed3c1c29bc0c47b6adefcc68389f40ed731b8e40cfc52212da9831c0909a36e1ca9de3a1373f0dea39cbd130da5e0c9108dd7465fbb741e7fec338c3d2922ce51f94640545e33767ed30eee7123fa829c050d26cc5737f7927522e08b082e995b846530072fbb42a425e1b430a4aef1fea35445caaa86630bdf530d78f0ceb3d86dcacb740d223b0f0c8804fdd48dd949a819f4be49eebea42f1f47fc979a650ca1f306a67ce44a015214f0c15a8d14253818980bfbdc92cd0edcb2c0c899c182f52e52afa1a941c96e9e2f5122db561e69f59149c1871c67bf1984bcaf3ee72b1191ae8360aa313c0748aef4ed5846d8d9d4fc9667e355b1d00fc40d309b723874a637307cea87cec2f505316ad4ff0aac0402c3d488cccadb62fd773a3e342e1362baed25b0a3685e0c15161ee4d671f9e88bc3e20d9d08ba276608841f479553a17457fef6f2d78a0b408b7f8ebe61a59e6a8d42c85e5086ee353b8d9033ca821879234e5569a0cffbe6acabed6c33451e315d0042f80483043a4e9f05f46ee28a4714203b1e18d7e54c1d1be146dd2309bc8f6799ea66523204c54ecd7661091381b7b6fc9fcd75133184065a50b2db5677dd8b0728a14050328207e4ee5504895b2218e1e7d5c22917fedb4d0ba025a73262b91d35eb4f8167359f06bbdf7ef8ea1e6a83f5fecf6a6f2f935c0beafa8fd9a33c7a2bb3ea2636e9eef42cbb8bd4d2be4d3917c6ae42f20ec18085278aec9a8ffeb6299c9d6aae3c4a282ced5965c4285ee915ffa48ed19b7567963450d8639fd5f97c903d86cfc128bf844d9682092fb32b8b8bec36c4cc56b7008314495129c74348dea59046ee9cac7372549ad240dd9842c21364e650d6845a29c25236ca2dd5e3d1c7ff34c124566510b93f4d2c4373d83ddd27048f554460e00dfd01f1762161f201afc4dfdac067692844c8d76727c758bd43ed535b408bde398c85e37a9e17505ade189a85b586c146608e043bae8fb687031a3fa4708ffb5917af026af007dd3e8e25fea0de0ed735f2d50e439260fe0733dbb9240354e6afedf828937dc88670c481221033b377821ae76326513e91c34126b2349fcffab1cf23d55c26a9e5403162b17d5688ece4dc5c85f98d47c06a5f31e3cad02734df79690a82c27f92d841b9ca8e20f98cc8956b611925fc843724e8c57e0e54b07556f7e54c7f433b4d49b2b502771b28540900aa3302fb3724e04017a9feb98a8ca109143e8b806cd0c5e98f5a8c93a6abba0940942edb61c4530232ba2aa0821bc9886570fbf60f989836ee373853781a34219dc586151954c1194f6ac9b8c5df077258e6a17f81747843dfadcf16f5b072200deb9397a2e4005bde1186718eabe1c1a57237984d0d559f4c99dc899a360475fce8c7a243d2d039ddd2aabd6b4b18ed32ebc0f609eadb20b8dd50248b17290562a14a6288833b9012dc2602f4e6a770a488a4ee992998e4a5de540e7db3d6070cdd64e6e3b32006cc43e6a0636b5372faa7b556b741a6ab40754ef261b967dd826073d004b25e861d436558a7687965caab276f9ce3c4877e0ea33e75e5c726fbc996b3cd5d33bda78c1f20d9b887070a7947ce6827b31b0ba2cb97ccb1af846a18938dafd02b605a2bd0bc989532d81e35213bda442df7655c592f16c543888cbbc05e24743bbd8149171133acdf27b4e8289ec13580b7d59a8804c9cfe29d4e4fc38e4224043ddf58d11828282adfc3f099cdfdcd1c5d9155bbfeea0d00fc4bc39a40702eb9f9b099e86694c1f870aca50fbedcf93a7ed6d7831111517c255c8a2b170c810aa82a576a90305750a294a84155e8de76ddae2b698cc8de51b5cbbd2f344161295dedbaca02ae0e39484f8f94d49ce86af34c073a6ebd02014731012f92df4c6bc4ef41c3be5f1941284abc83b8db714e35fb60cd74f0ccc690cfe04a142b7cd1a65cadd88deb957fef23fccb5a342b70091afeecaf89667d14dae9edea5ab7e3adab6579051d51e5c1db6b2b3112459c03c8e630b22d445696a1c1168a65ae84c696b53122cc306c3855055aabe771156b4db6ce065c3d5d769a1e84d67b6493bde7786db67cb07e45a5ff0423b7e87a7e6ee600ec63ba18b972cab55d2e2562bcb42d7afde776ec2cfbb5ad80796f48abaa5584e17e6558bcee515893a6eb22e96ad4b266ab2845087fee01ed8d432825df08a8ebdd77aaccaf626f0bb631014fdb4cda85478962b94c985c4e402d5b9999065c9e4738914187edad656d04475342c1ff50eeaedfd7bbb7cd76b0d6e825acf271faf552e9f7fd258b4566a19e6abad6966b49547f9479023a74098f664b1703f73ce7fe90005c23b230ef4b7747d3bdd9fb3bbdef27e65684eb8d31cf5a38b5302846f9c7ecbaea77a064b7132fb8a0e154b50b9a959143bc0553fa8f1e3f2c94111b1581d74aea51341c7b53c37dd7847fe2fe53b31006e4db13627cb44431fd6787e43b263519bd7312b9ca05e8ac731e8f0bed6d22799f19341dff2f2d29233a0c8198cbeb9e3ab33b1e5e4dcef1e727b229b2a2155bb971318cca0b0c402c9baa6365eef3fc1cc476778b873cdd15882d86ed0b7fd85816b8164152d78a01271f6ad1d4f501c95b72c84808901a7811823a41b57d2111c7e1560dfd215cd8b117554c803a9100cc83fc1289256d650e23f9b2e26972a01f72d07afbba7f76743b4c0e60f3ceb6d6d2b50e4c9957f85be778dd724cd710a2ad6ec677947bc7fe8dbf186df335cd12884d023c4f1cc11ab650a44d3b9362b161b760bc4d5dedaa369eef860b92d8963a4fb494af92f5e756752051245b4239fb9b88a1f1535acda39d03a81aa3373c68f9a9f6c75f752c97a043a01066d084b829b615c73d20bcb8e2038f66bf3190e1ef08aa77b4c6ebfd75577ee8285e78bdcfedb0f2ca883ae6cc86db63231b0b2bde4d7cc50a80edc8e2cef0fc76874c71ec44f63a2935388a02303acd1b62e0f3fccb5d5d687beadeb30b7d54f27684dd3cca770751d0d4ba5c2c5bc66a843a1870c6263aa4e7bcf62ddf982da674675142e62122fc0266f4ed49ed8da9b0c29df896d27545ef96fc985964a65b72502abe774887171ecb6397354131121db76cc35e83bbead6d4a15e310b7e6864d456d2d03a86d861fb5a2f559f3908131ae4c8b875759b24b29bb0506f78fb6d69f29bf5558dcbbc16fbb73dea3555516e0b0c5ef7ea9710171be9d0d0436bdc57f2ffc8f22d2096bbbae8bb4e1afc6bed8886682458d676bb4e8d5e6785ac551bf205799e3d22ad3477bfbc883dbc672414cc023e66274e81f94a023c5a13105697a2a8fa794ab88acaa56dcb98c8fe37ab0634ffff67b76b10d3b7cfb67ecae51e869fb673e0497d1da45326358e291be2bd1232d976a2554f5d9a5aded5591284510cf6725ec2a3061c6b2cb7e2f397677728543d4dd4cc76e2333802715df5e31b4baad8db9f4312e3a54c9383cf6fe4ebdf05d57505a71c24fd2eda79390a70398d2b49e955587ca4673a19711762c75f38e26f1a0a04480e56118bf42a6962c97318ef0d5c180cc851b050ee7ceb18ae0404a1b7f515f688c1d19f0a3fb959e470c4f7814a63a556470e13126674106fec05022f236d6d3193adfb8e700305b78f65d5a9e85292093db2c26c366b30882db3eb3cdc27c88b351d83fd4ae775e9d53476af9c34a9b6ff1706272d5ab923b81922c5592fda366e0aae1f69ac4522e443ab98a8fbbda7edfe71fccf49c58a3245c3e2209eed7b929773d375b76e78c28b8de8a6a60382d83f1550c85c16af9a13be2191cf7ed96060c2ff3ba7c9a0751dad8600b9d3b41f512b9bf62c455c71faddb3ffef55361bdcd8cda652e649a9229ead4e0e2f6b483ea101250501b84c41287db0a7c536ab5a9743286942fc1d3c4dc23827dcc5d38986c417b5ba32676d214e60bbf0019f560cc84868e0d0e50e8452107f28f793f8e2eaece45e047884f03d8591fe6be02a3c90583f7213371d72448beac9718307ed2d9cc32154cd1d468aed2f6820152124a3281a3fa1de13538c72342f6471d25a56ee0d11f21018e12dc0a5b22684f8b90197852da32466e5960766d8dc9360f51e4992628236247f60bb5038ebb7056611b1147bb864c54bf28ae395219558840f3a24b0187b7a2663d31c53d25aa13368d8ab6b70b445820fb2f2c9e33c30374d00facfdd89c9924ffee2dc1dc93411552f1f42825f287123bf580c29110cf10cfe82e83f45fd5c135464a75b0ca494b582ab517bcfe54cba2543d5ab51a718c7bd8cfca76c43c80cb893d876c99282d864ca7a4c64fdc3cc0568a9da304d0387e966a1e968c166a153376c3f078bf20938459b59f5a3cca34b0b2382ee60f5fcff34476b37027865c000e860f47536581fb1c7fd5f10a37de74deefef0b3f9ce1e2bc18c369ca19a3ab02bac15d5aeb72d6c4082d5d2a2a7cd40695f04afab7b1c2b674dcebf18859e750afad0170c570a544ead98f7892974c8717d542691ddb59d64705e64b9d8d104452c556d71d6aebb0e4f5a9c3f1858d765877b224dbb61c7c529c20b27637d50c9147f519eda96e41797dfcd1d8e3bdbe200606a19aec914e2fa8bed1ca5f1d7b5a9ec3a05f855c71bc9e552facf3b005c1a39e22b2fe7259f081e91433ba40a44d42c90913aa177c21055b023883178c4f7306af10c0e9bdca0ae35b4c53510c0abb29120393b411b1ca7b457531aea28529f56d24bd9b1e8287805244f9772bfeeca80b77fdfae8050b71cad4625bbc11986ada65b35a115940f062506d058be8a91b43cdc35440d0f5c44956325d92d9539ba931e324c960a513f231cd4ad3614f5a73c569125c8fa78de576e6fd263bb679de6a89b8e47bdad986f4d116e5e9338a51f138206b2a4ef047606516959a917897dd7ebbbe3801b935841b124a9463ca1a94838edb4ea5a0321b73999eadb5addd4ce88b62eea367de9ad1560805265390e1e204b4469e6d1e32317f08bf7261b7d7e16d1c64ba9fe820dc85d0c3635607734d4318b3c98e369d8be9b9304b7ec5f2876209c2cfb19660b11faacce08b1dc4110b69284f2078292b6a88ffb2610b846ec94c795c0b794834aeadde155ef13fdde4ef7a2a46e607eb0251ffeacc37871cc9841a173c3f46e05fa33ed2b23ad67ac0d66d97ea4e1cfb2d20cbc78b187a4b04e33787a5f42f6505cef39f1e675261fa367d207624c1fcb5de88223ae893152109c2eadeb742935a0db29b12d96b6406ca42ad3b449e6f6d7524109f0f6bcb2b54c7aed14a35feeeb7beddb7360e55c9b395b2f813ca58f1373ecea51410520f71b5c5c52fccae47fbe8b7836f086257e5273839c01801478eb089180ff8d00497fc59f17f4a8bd5cbd52926c8c2c0ca785edd59ad24ba4d8001e324183a1842868ad1fe00815612a54034fc0aa38b7f186a2c2068c4f62058f76312054f22d5f954550235927a17a7154d2ae73f67992b02c9c82f610b562f32c4b05476fcbf8902a09e1020dd62a31e949ecc93ac084c774ca67e142a305d5582597ba10213ef7d09b4235b96e77c9a2cac0984b35e55b8642e030344bd353cba57ed0358f199261868e1bd6fd1f29c29302341219b5ff702ced8458d0890c2e95182e15eb83725ad7a179c3ee51267e6e974c236e6a2778f9cafc7b299e316688d0e5aa25a85cc829fac6d508bb3a4f98a77ecb0c934c704d96aacb2b9324ba4bfa56a5446259ae2b7c135e24513a2a858441ab283b549a33f3ccc023dede2542a9047ae4da7288308846c63e1811942a9de481e1744d2d38a49094f93d6ccaf3dc81e2ae613c4202ce941952ad5519b1f93267c4fd1774f27cb898e709c1aa1204658a131c27634d611e7cf17ba0aba686a774e24dddb7c2accd2c4029e89a8ed5e88154a5c167207481aeb8ee5cb3006c95ec02f96509ce36dc65e0c1f7e7a21f2a54442b0ae0b38ad0c735f5157ba2b7191a1d5c135867b9ea0879f9975a85b1482a10f78683ec37252cff915b3bf9ce4b09774b761d0c356a930e46e07db7400f8782933dc1fa2979dd08ce103a2e4f23ebf46442f97ea6114a809fc42caae45887077300b766af61abcb1dd93161d050dab3c4fd1328fbd482247ffac531adeff1e8a68de3bb189f7596c895a9b9b0ca5c5d95cc624cd6ce435f2cc3483da61e02f64985b8e87c6ef61b0d26c3f4bbfa6c3361431114cf4df792f78833db5800f63d8a5637f49d4bdf6f4fc50cae286529bf071eaf2dd816824b9623b30230d663697d8f11a716f5807039b4190c432c7a3df234d9e17ff1de6f8494704ab2b3aa3ec296757aa7e22aa58e0d7346a81e0e4ebff6df4405f02320ecdc89ebbb6a447705163ef0a87f6f20d53e9a0d38819319d18f1bf38e518f14d24e4c8743cffadfc1d8a90a4b560d0fe1da9876a228e007daaad4e2bf6adee816be48f43b99f2476227e874465fad6b39eebe7fde14ba989f7dd1ce652a419bdc0389ab7121746be911f2230e844fbc014f4c3e5c88cf64527ef8a9fc9a36997f01e4a968c8a649d92c0cc5e20634f445bbe11bf185801d622ee250f1d79b5860548ed17f25ba035b9d4bae11955d1dd21d74eb049cf75438b4c151bcafd11cdfb91bfb2148c61d3d8b2d20670bf61ce05b2a471d4d1c487aa4f0a4f4c1863b5613f9e2dfedada4ba68eaea34f2aecd426e57aa7180e05d231405a1016ec87bcccf0c06ce1037404e1c08ebed21506fa3e49ab257fa4500a62fd1641cfdf6a2d0fb3493dca55859a8d65852177a9de86337d7852f0addedba9a53024acd94e2e871a59281a1fc695292e9d44e878b7ca962bfcc9d44fcaa5d83689b1e886c12f3abf8c9e6bae92ee32d555ba4026ee3c8951fecef847e719728af4ebefa7aaa0a0dd07fb277f2e2ccd07cba3501768fc40c94424f1b78fc126eda284ed6298cecf18a7110c00e2ec3438c533487bb7592292cefd1b30ea4ea9db9c2c9582f7596936088d32a21afcd8c2bb20dfda18a6771e4387a2c8694e676e7f55a08a6a3857060968c6ce5e01ff9e56b0cebd618cea7e3782d2b6af51cb344c4cafb537bb5dce7f98d9c5bcb03f8dee668084a81fcf489e3d63ab11d40d560351fb1828c85c8a12a3c5e1232362114cdef40fd9bb2822769ec5ac007492ad1dd0635caa98143efb40360182ef4d0b620ecf09aec7803a18a43511fb5dcf8e8fffa91dfb257db8048541319995240880aca275fc6e29ea3cde4ac5cdf31b0227ad930e685de575af8f3aaaf223c30e0f3b712bc6e4b00e35a1b1688b1b741dbfd5120764ec30d6400876927daab0caf6177b61c40ff7e4851014e6a772d42884d86d90776bcccdecd90f647a2fa78b5c2397e1fc8bde9171d9bf592ee8c90d935b2cd3a2bc561afe9f466ae1c1b68078925ccca6dd62d782fabe06fd760ae334d1aeba324566f6aa62e91583dc25f518febcfdf87e4d5c1b24755e72490757b5b340e199d8254a0ff19310f5d5a031fb2ff8ced5e986000d0101fb142114d69f5bd59fe276057d9e2f398a4c2895b48b3a117d75cabc3c33fdbdc356dcccd718b39042ced8d6522eb985acef4972a37bcaba2bf80be28c55eeafaa04ce0dd1b8d6be03272e60c737db8ff84880c6c18de9bac95fd5ce878ac7f164413438ce6bc29c197ffc7beffb92d4f4ab3b25bff96fc0f1cb1e760e3c76b598b9f6d5f13efeae50cb6af92f09c86a98a1d0d268443494b30f5fe4cdea9b88a57e461e1dadd9012a876683756630758e51ee2dcbaf28dd29929be5c5837f4d83b308c3998b97a4a7fb7d2e39e340af15444475f18c6b95138b4f4813172f58ffb9daf54135d005b84369175098634d07a9d20b98e4608647be774e0007d8d2ed7f0da89883b83e22634f0565dc54bcc9d228cb9557f13a15f2dc184b3feeedeed9c362140b35ffce838a75d45ce6ae239355c8a3f3e9939c7a91fe33fd5eb82b06c85a3ccf7a188ab6efc28ab2473bf2d1cc00c4d2a83357064d8c111159521f2cd2d359e90aa102049aa1d51a1eaae3eec5c8a291820e20ed8286809883e4a594a01a5df73ea5a9665fca45a3a6480796c2d993a418e0904485bacca11362982e681990a6903cb43e6f105e94fd8e773f302264019464264317aa8c7da8ef865721e341761354db57824af4fc174e4e547a6e23b26dd806e4b2ff90cb8afd7e69f97197efec4c942108eee66f26a43599ba1ad18d1b8c393d8ef859eef74db0468d1bf8f1ea3f24e1d2863100816cb798cac5f3454723c7d0cb569ecb99a31deee6589803bff1a2d27e56f1ea0b02c0fbc816e9c1b6ffafe3c20b4fe799b0ba2140a58cff9ef052024a153da70a2f17d4d773554abc1f414129c119760b57d5e23d551405db701243296e1fa1d86c2ba36a14188b5d27d1101178de118698c4ce3a644cc1471bcb5e6f07f0a6286b1b6070b9ff6e58cec25c27ef3e1a4e74ede1fcdccdfaac2386377443cbec2c83990a2b69c76478fea3e37a47c30cf292fb632f61324fa1c39ec1f87f11dd22bc6efdb35d3b8333a8006f2ac01c4ac48d2d1b5d2906c92df92383cded84ca993a93aa4dd26cd0a085d028cd61d25c4449f8a92ed36d1139b8067281ae201b730d19d35c7f88ff4c600028079fd9b72db990eabedc5c5f5dc6a7c1896ffd1d9a0fc0fecd6f02752ee55f958528ad4755114941e5b35d5aff685323df08db7d6efd88d93ce2b1efe3db37c8a4c51385da5dc02620e94773e004b2feeceecfaeecc46c0db210db7d2b5add3dd013f000318b043bb828fd817a06cac282b633f4e7340653af2932ff28bbd7508b22b880edeedfae8e29a8dd0dfe41cc640384b57b20232e5e0f904bb7fe82d15e3bf16d944ce13f836b5d1702044c006a4c2c0f3d5067e30630112a30b2010101080840602112f9596c78602422b388cd4e445455eb01c311aaf845c88456c8b609d99aed1289ec1289f09b1031827e34eae000d800e500bff7defb7fdb9bd2bdffc1d9ba1e67ebfa9c0f54204880c96836ff0f2489e494c289567ba90a67ebc2f8063fd1eb63a66dbae3fe8124919c5238d16a2f55e16c5d18dfe0277a7dccb44d77dcbfe3ab1a45610882dbff343dcf8fe0e66355a310dcd3e300377f204924a7144eb4da4b55385b17c637f889dd7364daa6b96e61c1e42292530a275aeda52a9cad0be31bfc44af3f201147a66dba6be042cdb0e0a040a0d30c8f2392539a68b597aa3e92539a68b597aafece59eb9d55b3a17672819141352815cb858152079244eff080449e06faf0f0f0e04092e81d1e90c80320de77819141352815cb0593d16c3634b0774812c9294d4fabbd5485b3756159c837387ee2a36d9af3ba0e492239a5e969b597aa70b62e2c0bf906c74f7cb44d735ed7bba3f7ffde7beffbf9a7542c170cc6f4317d8cf1638c31a51847724a1fc929fd9c53b3d97830b9c0c890539a68b597aa70b62e2cd3c41f37cd759f27a734d16a2f55e16c5d58a6893f6e9aeb3e2fdf396b6d80c62c4db4da4b55385b1796690e36cd75de57eda52a9cad0bcbb485099be6bacf6320e069050552fe96bfa594ff524a2925b7e09c3ea7cf39e79c734a397f8bbde96f1a724a1315abbd5485b3756199d643be1f1c37cd759f37200085807ce71445cec3b0561ef6005ae4210f3b843451b1da894b55385b1796693de4fb4770d35c1721e17d140220262224a63451b1da4b55385b1796693de4fbc171d35cf77914da80a8190874bda020110191e0a5e9a5094284060e2815cb0593d16c36e42847297f74381c0e8bf7def314fe17fcff839ff7e0e7bdc24b13adf65215ced68565daa6b9ce32b9c0c8a01a948ae582c968361bda824927a734d16a2f55e16c5d58a63db869aefb3c39a589567ba90a67ebc232edc14d73dde7e53b67adf9cebaa156cb0037cd7501d5564082440444827f48e42191af582a104cfe0f5420b860321a6b9db7ce5b6bdf5a6badb5da712c204924a734d16a2f55e16c5d58f6e3273e209147db34e775902492539a68b597aa70b62e2cfbf1131f90c8a36d9af33a6ca5a414829e861e36783c209107f26050e16c5d58a67d85b3756199f6396b180d4ac572c164349b0d0d92440f893c90247a48e481a0077a1a329a8d8643c3e402238352b15c3019cd66e3c1f75f81e082c968fe3528158be37c0f47d1f91e8ea2e3384eef8ee338ffe1f7b087a3680131112121a73451b1da4b55385b1796693de4fbc171d35cf77903025008809888900885b3a8f3b22fc318c31e8a489c50551d13c08181c1a4c0a02a0a6210046118846310044110042140100441100481180711e33c961e4d5d546c0f1fe3d3c68807e320aaee5817cab89c637c858fcb3ce673b6744d102239ee892080e50464082e1d61b2787ee8280408723a36bca5c24a22b14ed34e47ee50f711329d25bfba6348d157c93a0f47216488a10da58455b81580b74a3a52d921eb3423d631d516202c9a06990031ac9232d2d1638b1d756c51476cf7e8c41fbbca80ea81ef4e7c3bd7238b255025ab78fdd925b802aa1cfaf726b404444f377400f9d5790b63e2a117c8965a44e8223a9aaf5400aae0b07042c8bccfb5992e83cbbb59485aa009b8260413d49173c776d0aa6561de55af86692a9456e0042eb35c8375ff795dd2ded75636fa1c8bfd8609d957dc81cb9f0a4074ac8503e67b8958e375ba1c262d248d2e1c6b735c56c6819c80749485568432d2383b21fae41857334de8ed6b43ed780d5f6178c32764607fa2a7602cf3b135a0a8b4ad62102db6cd524869914c18a8aea8505e24097a91b83d4ac939af895d8b614ac29a482f905bbaf7b9fc6bb988af3c4911697a3aad3a9e80f0be0bb6991c6d4edbd97b01c56b7359679e253b205bac36085201c324536563dedd46ac04ecd5eea4f1492e92fc319ac11e7b998334a1c4207d6a8b105dc6451ed2736f3426ee0ad2d39468a2ec68b142dbada17cae6dcca9d3dbd3f274da2e05aa5a5b5268e80ebcccafe91a5fe66b761903c99a6656dca82d92decdabf4ba03ab09e863ddaba009ac36d751d3bffdfbda079b2ca1e2bac211442c4b925ee5f1688e2ca0aa1eb9aeea428b6bad4a705964449b9c976ba1f5d5da13ad8f60a89959a46958b265f6f0a671d3c40e62441f47a4d0985d152dbcf218e5ff272bfc152928b4f6ecb609917493e8284c6825c2fb60b7e476a03cc1a9a6759d0425fd7c134eee734684a2240fa2ae5ce7dfff670e46dee28022753ccc35f5bcb987332ed111febb76105a1e5887aa1e0fb37af258fc3a5e196eec4ced942f2868d10b37c144810ead1659dcc201be6dc1272027d813f48c9a6ea3ea05367a24f2a8f2afd743ce8ce72e55c07c998f3962b2aa8bb4228f0c4a3fbfad352da4d0da8c01defe5018578ef0c6455b77af6cf7e8c41fbb6ac40ec4fd44680dc0542249f866578ef9469ec483f8292fcc07f898af4f1277e82ba06ef5885a7250881566c7eb7cb926c7eba1a117807b82e8fd21820dd18b164c4b0bac8e69c652ceb51655902268c2a5929030e5546999e3608931186d7a9ede9ea07a5729be738a9ca6f5fab5a8ea86ae8229c9405e7e8a415b3fb44b0e27faa0f3095c3c55570ed00cb8d4aafec8460d1041e9e839b5c83eab2a4337d61edcb4ec9151ea88f3104235b25d77bd7a7e08fa1e1fbf835874cdd42c77566191350475a459559a38363bf4cd1b7320aa31556ef66a45605d6df768c91f73f519f4ae42d3c3f4d9a1ff2cf46b5253d51ce3d3c7ce635561077c235671240296970a5fe9685e47995fe3f58d777095aef7a83a5bca9656d84811b01226300c1e6de6afb3517354e5ec51aa361ee7b4d61c8d3f8882e5d8134a58b32320632828d06cccac6a16a51e6d591cb83f1c85c82166b12ba111a475aa35b831df886928c474e5309a2a58ccb7b48f45aab7852822879c6d66bd1d64d35daf9e6f346c6b4e70c9e7d1cf3e6a0e6322ac9db291f36505d109bd09a34c158da9a8866d5a104ba5be51a5614ac7b25ba431586df49e9ea5a1ba138aef3965046ddd0916a60c8b3b2197a29a917a7ee25082cf9fb4c2bc1b2a82362eb7bbb9aba61349ca2cf8e27edfcf3fcdbb7999d2b0a8508c19a63976c26c32ae086867421b608276edb43d9aa376688bcc911db2c5c32a3c9ac0a56c02e7e0845d76f7d2b3095c93b70a87fc1bfa91ec6cf3c4a6af9e80d2a2c6d5713beea76e3b32bd41eb63751ecb033ee62bc5e5c8cd3277749dbb7374169956c0ed849682bb5f8121c84f63c8bad16c0c53f3037c98389c33ac6e0dc3f4e8d37704d4a3027ae359615d30d61da7036dde45cd8ebd6ae995430a12dcba701208e80e39cb48b1674f0bf7c844ba0d6d803bff742d4b1132a5f8f89ac1010c9cccf42fe4595fd1d0f1b6637c81b7b018c9e1ba0d7db517fe037db807ffd288ecb626f796322529030706ee051906ae29b30fc26f012a4b30273ca18545ef04287cda9b1f2361f2f24f7822c62e59654bec4f80220abb664e80224af3408aa1980f5e46b0008a21bc3cfe18944547f040052faf598822348217910f0943660b4f9888f222f242655623d8e083d98bc89cf385d4b34cc534773717cf4372a74f2458b2d873ecc0bb4e28952c9ecc92d98a27a57de6c9734e2b9e4fc9fe424ec9524a24a625a46c1cdce0d93c7165542d5858d95d918a510173512fa7cf33956cc755da2894cd1357cabc50d7e1e2e90d3c2795cc5cc34cd00a1fa91a9cce1bdce9edd3881697a2a1e1d50c553acc2a558b796e59d1a43ed1a4c49d2e3ebb56b328064ec0431d8e54afb4fb064ec05bc07195d2274120a8b1b1810d61528e2512467e0a71996991716c3a57e11d86f58a8bd8557d8635a6b85c54daa1053f5a23cf30c912ca22039a142659d59b0335cfb0dee9aaf08add0ad0955896e74ecbec998b8b0acbb1e26bd8157569b679f102c6b1d00db19e103e4c1e9e56ab5ace67ed2f7242b55477970c299a5cfa75892c7289613a996e05c670c053ebd24457786a00fb9dcb8011ad0cad9432a594d2294d2fd57adf49f665e8a16ce745e8c4004cf60cc91e1ac8b0c614970ed12117eeace121d96333842765cf4b49bbbf489df304decce1fd9e04e5cfe4982fdbfbf9a5ec2f42e74ce2c9f912d9054ab17309e33b087cf5d95dd7d529579d37d875d53d940f77fc2ad2449ae7161ebcaf6b50e655df82b278af76202757f4e5a90acff56b30f51ef73518f32adeb35f8330ef95be06efa3defb5edefb4e5f83df7b6f7a0fe6eb4aefc17c0ddaf754a4ea7b2b3e165f0b4ff5b50b172f1d56c9a24e35f0ec53c7c58c97c0e329bb98dac53cf54ea59ef3d47f9255813c4ad93740254af2cb9c3d8c3032a2671f00cf49e02938b95ace8653b238e7e7502f92abe1a4475ace84624a60004bc20352129f9fb52626650ec2fdbc795d0c97057796905caf3d902ce9d7c99d3e56a2973e997b512d52522925134ff29065b1cec0c34d8779923235c106615053e5e0c99bb1e4b65ad082328aebc3b6807241a7200d8bb4442967673c1851aee43efcc2077714479b53798659cca17d8df95abda14ae464e86ba53123aad7889c64a9954b610e3ec19c5d362c954a25a761b19e405514a34a078d583faf0472e1047374f355ec3aeddcef74aa7e3ac1de87451bb6f50996c2910e79cec8eda6dfd4d2b44c702cd5cde4608a4455e165715574c76f3a09c22275ead43f76718c6d37284192c4d9f7c15dde65387380ea9deba85de46b57ad8b97438c00cbd3ea636b869d3ebb952f5b6fb0432100c2d31b5a049eeca4ecd0c60bb7bbd99bf9c81377e600d6dbed78f31309bd7272c79baf32f471c3633b508ead9761c8c362a75eb8d4a6666448599c5d0e9ebc192bec796896723ee16871bbad60e1b36935d0c91d270de943b2b6de99344ac42e95f3388dc659344edbacd5f838693ff68c16d17a67da84a3ad99349a709c453393e6221ce74d8689f855e164c26287294f815da87cec990b17324a5aa88bda0aef4c12c09ac90b92bad6b6aed2431de5d95dc8a896bcb8d1c14b9f4d48136e6609bc23f68a27959f55a6d1b4227b381791fc480af00e4f6d4699b4cea50a979f509d415376615c65748bda4a9bb540400eba74594f38da670b4db099b4929e39613126883b9d0bbb528e34b5f0005e38fb4c4abd9869b7d3048a04dae5d953ee81540b4da25caef08a3dcbb353279446a3d01ab5512ab4a80a35a256e88dc258e41f5eb123b133dc20156502820e7605809a3d497564edbd2a958bfc179c8f9a95df346d6f4179e53b9003fdf5127978784457dd09648fe844ead94cbb7cbd78014e2dbc9ab1ab5415d6456a589504c77d2cee63711cc7712c0e64b13890f57d9c0d2c962c6846038d9d968ac64eab860d172c64882b711563860ca45bc3468f1a34667880c59a41f67dac151f6bc5f77d2bbeeffb58accf069689652242227330643918b2a814559941164463468b869dd60c1b3bad19365cb0b832c455eaf489ab18302a6264a456b068a1927131435363f322c64a0c002b07c7c11000346adcc0986143c7756154c4c848ad60d14225e36286a6c6e6458c951800164e8e83210060dcccd0b121838e6ba7a5e3da697d1c43e28e54488832e97aa73a15e2a1139239804b859ea50831138eb28443fa91691c4899f08a8578a857cc220677648ed11a778314a1095bd22b1fee78655049893d3b8da4a91bdab2541ca449722785018a1d3f7cb43c7b0150a080162a262fb9bc318173a834692cd286e650690eb16bd67061b7aeddd050efb4187625fb080da5c02b762d1dde3934d3833bdab75f8cf3e1f260d7e85ee5d96f7c0a5025a7f3f983758408e9f047908e863b4aa41f6eb96a0a7fdc2b917ebc88c11ded37a35c8f3852d56af6a3c961bf2c5a9f1db33bda4e76db7b18f140008de706120b7884c49c1b453327b8a3ea258bbde2e7fb452f6499a976dc5aecd9533cac3343822bd9ed7d35c7a0fc4d05ce76476ba406fb7e54f66dc75cbb83dfd5552c3ae8efa33a0d8bd4393005d05964d57b4743aba299a826978bf7d3c4b67c2e1047cf9e6ad920f2ea276d3c364a220dc79bef709cceb9055b3c2cce3945759824776cf1ccd9a185e28ead565bab82856a84d8621d769411334f78441108a367cfb14187208211105168a620b144c82891888030b292854b17c929e5e4976767a09db92536afd4407bd6f2ccb09191c8e9eadbe3a03972c769f446b207c6b34f2bbc73729e5798652d9e523cc3f8711afdfc9441aed865d410421619f1a34432b2c133f1d348aed86d0da97cc1032c3fa7d111e4ce4aaeda5bbd627f7167c8681f6bfc388d64fb680211422061040e6c304e2350aefa013fbdd51402e3047eba94a194acee22cf8729035810d1122ed8787e4812736e74aaeee65440a47fb7bb8bbe12b158f4d3b916fcd5e2e18e62abbb8f451673b854138f34f1238f38bb5c977b7fb83d7bca6f6c50eaa28b228b6c45f79bc9e15d21ddd1dd43afb5a0dd512559bce08eaa981d6a4cfb41c67555d62ac3f1c7d30a5ad661b7b11ace48a72f1d26499d3308fd0ee98c0c5534bc622f41b9964516577047b11eb93ffc489ab2618345be21e6b89095d11d65122764c8ea852ba5586d7091244d55da7755f25d856c2ff985adfcf45abd2959ac95d608f110829193f8888fb2b016ceb9cab3db88384a4ae53608a5f6b2ecaeb1f4eef6cacc848f38b0057f31920e77e42346e298091fb16b4e194d5c294518097c18a2343f9275584a294367d1f60febb04bda135439d932e43c3ec8c49c1b3fb2d6ee9af16e19eef428493775736783327260727b3b1fc5b064adbdb753a938f71af24a05faa3b4ed40400d0ef69b5125504892463d8c9e3d02577aa0c03aec319edc511aa1d02302507af40e95ab964853c70d2c8a28b4e9dd2df84b060ceedf3967a25ce9528aedfcd3432a591dfef421ca0c371cadf2cd844a1cfc52b2586c26354b2efb4c0c6a10552a2849cf4e73d3b9bc195bddcd7dd2e6e8b2cfc0e006c34cf5a2bd3dfba7a2c949d52550ee12207fd1f0e315fb0c67dae7eb20aa1a872450a8f074b11d50786e482a343437f7abb7aafac6e2910dd784823b76b1187b17e3c12257ec513c6fa975469ebdbbf6ccc31d4996ad573357eed86ad9e8867ae8c77b65cf9e9a4a9ca0ba366742ac33c43aec2d68b8cc4c6613c9e2211e12129a4c246ba82bc11d7b68c62e0729993116ba407c820bab30efa709e736ba1be8a787d2a937984203591fee0c7968d88a69e23eb9cc61cb5bee5060cf7ee3c53471c7d6f3978ab17247bf919432c5014c480f579e7d88fd68e68ff5d8d7dd3d7b7673d3b9ceebb88eebb88ee3c28f45163261acc30efe706777b4b124efa7057fdd8ca51927639d19ebb0cf98e08e1d33dd703b980b214e26ebd81562d7d8b1a7f2ec3d0327e38238261df4ec1e7884dd9b813b2659b4937a87d698e2b2ec67c88d1d3bfa9193d1b083f50a7481fda6bed28c0e61a59367a73775f3357865b8a3b4ed984edcf1762edcf1161144088b4c6bad418604dd512209f1f18ef7f6a0e4d9533f82f00fcdb36ce97557eee3c61405d2f3f6351c276cc80f50481027bae3bcdd9cdd7e1349076fbee48dc9866ba76cca642aa21e903cfb44623f9aa0d96567d88f73663acf6af024cbb3fb300f0f1357abe0d99fccc02f36e24749f4d3a45dbcf9a6e4f1611df6af03977de489c22b4964a9dc2a2a2b7e8557524a165e9d00458d0372a72621b11cc91eef69bdf2942611c353cec8535aa3f81d95f7634de2698a7ab4739eb15f17f26091525fdd20f68a3aa53440dcb18a9446ed8ef548d53b3b6cd46b10e18ef5a81eb18bb35424a65eb97040ec9a992e3924ece26241ece2669c128e0b532b621dd8814211b7a902c2b6633217d43baae662bd53a98b40dfdc2e84bac71254e5c49c3e4154192d3d2a27b34392a5dced76430185dbed86c2ed76dbc2855d74078fb63252d81214ee875d1c8c5db4c7122620ee286f49325ecd1539789e3cf94744832bdefc9cf31ba5d28edef9e1dbcdecd95df4e1d180196cd99149b815c54a9c89ba9a05cfb6ea8373938f9c01a4644d07f297e7d63ff0865726d154ea98b0283ff54825a64b28918314d63395ac9bac03d997579778a14f9b4a9452ae5acf40c94569b35b2f390d19205fa5b0f2f052e54aa2238a888ea8cdf028994aa5b07320fb327130403c3f2dd89775209e57c985bc736ec10e88eafb88a157d1883916403df50e7ddca6ce793bd72103e4ab7300015e9c6c276e60e245e425880517a014f122e222094494e0033e68010532bc885c231cb4d003292f22281f58c420c5112f22a71c08018104b117117e020424a6c84106ae0240053c7ce045e4647b35a176087740064498bd88b038e2d5843a65b1d6a9430e30e8f0eaafd5abd9f5a089180d5e442e92d7342a7a02cb8bc8cdc18b0b45d6995ee4e5d18fb343561c410a1a5e445ea478715ee4d57de0529d3984c612a024a11711eee1072ebc5aacc3d5293b2598e8810d5e757e13595dfa98a1dcab86403cdc6a91faab761248f5aaee71053909745f55862b74a97a751fa65c6b287bd552888a382ac2ca8b0dae2432c246544412911135a2228e4a5c08645fa54e3af5694b39ef388e936d4d6815e6cb2e5d5ed63b08ff12ebf2e40002bc28139e942ef6514ac99e9452ba0f15e607e197d283f0cb6ea1e6f67edefc3cb0899c92553d707ee1adab5ae5cb7ae1943ab582330b38f9e73d4e9f57eafcf6ea73d9ab22df7206377314f9769f3681a3eab98e44be9d82dce90035bcaed6da27ead6039bacc05c7777d3d34b295c81bfb325ae505a9d7c4d6ff7990594dc7a8f52d843d648f271f4455e455efcd3f9fdb15e230917884c922f9733dcfb8ad67e1694af2ef404d4f8a6a7ceba0f417abbd7d705b79d67cb9028e90755821241c0668e788f705d0615fc373f9ee11d08b0c2e2a70b81b94d5b94f79fd986303924227e7e945cd82bedd15b72889f3e3d474e01a609ed367eba1c6f9480ae3f87a33492b69b007676cdb04ba229b5679fe150b5e26972886989750da03a359c7245a757029bd0d9a49eb87eea5396c03e6da96909fc29cda8ce271d459e5dbee848e40031cf79cf53375981bbeeb6f5c5862b30754a47e0c99b26edb384e9d12e5d2cf7006a0284e77d885fe4c5b907647679f087f3169a00e1793983bd4f52be6a036c036868299f1210f3edf239b049cf39b9bed47005e6bad92fd43bb4f65e21eace2b107352eeb7b287b26b368e5a5de04976b1271114e5eb749e21abd095300d406da88021b472a09e0e50bdc3248298f4494791f6e615f83bf7ecd7759d801abaf0f9a04ebba39caf402d577ba69fb33cbb8cfc3ea64bda551dd5a977dcb373d384fe26973e19805a205d25ababcf5e290b375a120f22994f01aaf8987670c7ebddbeaadaed1df96a796b5fcba60f454752082ecf4e7934e0cad7c18c6e49ee8b09eeb4723392ac05bcdc70b9a42d92c51cd251af68ad578cc41db5d17337166bb01d08e864f09ad635d97d09baad1667f311e2d6b2414467610e7714bfc51c8625094165ce0677b0c8be82e18ed2a8071bc5302b2cf5c379f59bba2dabec85ebd46192b0ac728c75d8bbe7a41ff561affe70478e89d389d8c5d1495f9d5d148570f2ec39b11994549f271c3739e2678b60dd6f601d902884ecd9736eeac6c6ccb92f3c70ab0f7309f5d56529e67cb5d92588a4695d35d3c31d55309871ccda6fa6c4498a2b0aba23cf6696d2e81c298dd28886b894f6ec92724538b88245ca8fa4a30a143d7b0a5a786e54e0c7d01337089aa4a91dea0d5a20dc244104356db0078b28f0703b1bee6891a470e08f38bd25b6a6385b39624b72a2bc37889f674f89393728987342c21d45915e3165c31d45cbe38de7398b38273c5a9b5ee7387dd53f5f02e341ec2f51519a7d77fb4220fb82710f06fc69f2f279e98463823254783543ef93b19d70c85061b19342e3073746ecb25161d78b777ed3f94de7292994fa0b683f19bb50364817ca840253143f7eb3efdcf3c00f85eaeed94d5cd3a9544dd354023db02718933d35d9e379e7a618a4eb9b9962b2e7fb709062e763fda9319b242336267b4a1efbcebd1268f26fc6ae6a448aec9d7f38fc3c7b67e4d9479ba40f34895bbef31195f45d0088f8ce479ba4efbc0406c026593729293736c9eabc504c92acce69e070bb7cc955983236d933bdf3c02e95beeb6a9282704719db77d3c71bdb775e03c98b50485dd7759deb6391bb2c7228f17b31bad33be7e9407b7b879d731e3d1c0576f573de8288bb43f6a8788e47efe4f08a03ba3c37baee3b57b12be73b6ff54e53ef6abeeb9ee3b183450e85c4c4dc2263e639e79c6e6a9f3de764e6c973ce3927334fe61ecccc3f8230733fa78298273bcc052b4970a72bc05b313f1629a5f38d78903cf5ba45ee5419c81d55af585401920167a44651b17c75e2a9571b2d7a2a7dbcf1d4e70c673562af46fc32c3497dba55b763e752e8a17a63915a619142b92a6f02a15a61170d2cb7fac8b3c4863cbda23c346277e431ea1d5b8d9e3a9f745cae30fba276d96ba802ccbbe2d9d480e4e06cdf77b43cf905487fbd80cd07b1f93af32828bbeec22e0b3043d434e314839c5fd865a13de69a23a61c833047aef349870d4db23a3554f3aa9b64750dd8558226bd4d333ee5b07919be144956ebb0a1c91eeaed364fa40b25e442adc026cad71cc99ece6968b2c73a8c05a9a3843806d40a66a0523a86d2686bb07cfb88dae19be6098c8626592d431bfaeec29a231ceed07717d6be69acab693625bfd0f9a195ac7e2a1385c596a9c9d0585c31b9d347199a4dad348507f3c2b52fd929a5a15dbf1b9a5a67a569a76151d2fc74a6296869591402cc0b20a88af9e17acc0f54756dd7b100fe84a37b76cfef9025a5fb3e8ef1d5293917e219da06754139ce47f65248a733bbc9da6beae4aa6402a5ff8b6737b1a94f0828f2f6db678bc576fae3767f083b097b893b7edf50dc5122fdb80929eab18a0c60f0c18f9773c1f38c4c1941b07c6977d658b70e9bafbdf421dce97c8b99123325664acc949829315362a6c44c8999123325660a1d922c2e089ebc19756a95766b89e096dc932d27d317d34c715b6febb90fd3394d545210ab4c2ad5874753d15b1f4d55deb2890a73dce44c36166ddfce7289fb189c990ee39c5f7066864baa5f57e11ea70284710403a957d63dfbf1cb8389e1528789dd7add3ace100e0da7d63b9cd3b78e4383ecf96a903d25af208c23d6b1ae02e9ad733092de3ac3b8f5ca7a0774471cd908e3f676745b0aa92271471c59efcc17e7302e4f0ea87e431c59af7066bdb229a41828b848386c8c24cbfa07bba38d908dcd90ecf9dcbacd0e6e43eb1d53cd647b6b23746d5f84c465c699b486235385e0e208f58edb7a65bddf3aceac77da86138e38b4b730305ccf618edc51666693c44609ca5160a39c9022ea0a2a8693132813d81e9e6e92655fb8a3e916932ceb9e1236b0bc751b47b2877a0a890643c19ae7db4827982340669737757b0a8b74c1b09e3a92d205830752b43ea6b2bc751b231ade7a4a267ba8a790546079eb2a8e640fca4de08ba34093c3b8f113183c30452961b14f5e4cb41844bc5dd1f0d6c714d24a26598c7293a5bd751438565ae3cc4e6f1d27885d2f4eddc6ae17c791e1c084e0f68f38b25ac24df6d47ccddb1adc1147464d5794b068658458b42e3363d13a922b232433a3a0e9c6a2f5099a8e587c81a7096c04753483b73e4fa8a36e9431644f3047eeb4994996750289b75e53247b506e7b87b73ed22479eb343a6c9e968edebaf7c578eb25196fabf5d1747beba69ab5f79a6a3545d66d66b2a7ddd21d7064666fbd63d824cb3a0d1cee88231bdda6a3e651e1edad373834b6c016445c19426e7b8b237beb3832d9c33478ebf3f4854072cc3785a26459cf91f35eb8e4ba55a96e6871824a492ece2cc491b168adaf985cf61147a7f6a2041ef5588c3f9fe680bc7f9a45be9495cbd37a84840b7aea1c08029791a8c40db655392e15cd4c00089314000028140c078442c1502c1865a050fc14800a7f944e7c589c49d320c66114658c21861842080000006208192019a1a406319905401036448defb1a12fef12830426bbe599e630c354f41583f2dd27bc1eb3030a65b74e995ffee32f302cbc548a19d3e76cc5ec8d9fedcbe121316920c2ddc14e26c8c704619068cd2895038b64ef9b69f4f2df0df503150d7b822a0e9b784b60bb386251599c1c08d19034a1523bb644ea7d65e4e0dfeb6ea996371ea94fb00c4ad9e82f2376db1292759c54cb5a2e162f2212dcbfd3845f1d1547b979eccfcad416fb7cf1701d21209e801b1af6590eb1f075cffed54da0653d9813e2635e58bea29428119619d715090f964f637a5dcb9dae841b19ee024aaee06c3402ad318447fb70b7b59b7cdbcc0a8a0eaba6746be8e111642efc9aed8584251a8f39adc295e408bb91a3fa25a49c72fa5f546d4012a3f2d1894b0266ed161943ee8928f2ba29faaf70c9dedf7a19c6b060b2ca066723af53cd36580c4c8c083a9f2d333b5de0fe47a7e55509304369d3ebae3cf347c06c6f600c187c884736c5a478fcba5ee4bb2497000ede0739bc2227221df02d8e448f6ec8e9e1bd1ddc65cd159c6d448833c479b75d0de5819760644b99d47d020c4cb48c706e5d90be93d1dd1a282b316d44ddc44dec1c9561d3d69038dbcc0dc75f161742c5068678f8695c37e63b47c8fe0e55a7abba338420cb652ae3e2ee463621486456c144c671992d859cee6c577aafeb739b848778334823f7802a1848cef6a0a725210849cf0b32c07eaa401b598420863c3762454622832d16823c0899c06a374bab4f41361fd02371e1eaf8c3898362a2f28619202f04f142d2da060ab9b106c713e37184ad07f15c347415bf71270c08801d2482050d57707d3112d2bd6db929668654eabfac2908fa73f0ae7e18167278708c818116829b5492352e2482cd059385da76e8c843782758961666b67b426fb2c710bcfe0abf30fdd133a10f671908b85131ff9cae2aec1d40202f0707bc55eff10828ca47ddd0a015565e7d7a28242714cb253c4133c34777f343d0e4abb65093864b2d23ba126214ec42248ab551ea20db345ba89baf97389a369a1f70c966ae7c27a5d1b02f04f8a1273d0ecc9961ac4857016f8c83e13c2baf3d3846af08da1aff82e6d9721fa25f551a7b67cd6b89cab11ce1b9a7459219cab6f17d1bb13ba60c6ec054d2426607bef867ccc6186de2cc88fb96524ec2506dbbda8f7a7bdc255469e4c815a31377893af210191805c9182c9a6bdb876b4d6c7a55f52402b099b449da292a16dae77f81c2a870f0f12238d585c94445af8460896a8116d45c54d105eea0fc783cb05dcf5df58351802a8441ffe8942811f08a5f09d20aa2c61c7a4bc813e65782c71df2033dc8367633b3b0e882833e1c119210e3d94d60e460321a43d6af92b353856cb000d2ea06e9a55a6e3c79e28090a3559082169247df9f719c8f1a1d59ea8d5cfcb684e2efaf2f812e7aa3393a8ca823fa20ac2e96b37195c52f7668a90851aebcf6cc120b446941c2f02b1690d933651b849dc0eb49cd35824260031e86bc6cda9560f57feb25cd5186b86cbc09c7041889af0459d041933dc047508b0122d75371b529616dda18a2f3da66d013c4f99e79aa1fb230736eb5fa56aaaf041cfbb669d602d2042911fcd777649a2556077d6ec25d80b0abf16dad478716fc5ca2b128686cb2e71f968df6d777bc138672cdc1a5769a31baab268341d2de375859be5d9508c4c43c1dc3c3dc5f4e7312ccde78e554a9b7367e6ea5d14214282f89ba98e63f72b480b78df5957cf5b5b65e492e520c33d76575d064103161ec669244d76137db8ca00a1d63c618f120f9c68553a403ad430b919f3f55b55e7057268899865a72a6444b2ab3d00a96589a0c8f9c3291bfe03bcb3479346a132a8d71840f424552bc1be4426e54cbc56f0e13d9265425488545e1edc119f3015d34011551dd0cba8872876ab720ed16997db2608950ba40d271c2f23845c43cd12d8b5bf03868e1decb7ce626ea4c944c0d5144004e9ff577c28b78d4cb07b02c60cab870ff495de0382e7ceee3bcd8c138c4e4a2257f63ff66310f2cbfb184c53353b5df60745d52f05c0f6ee7f76133d188ccdeefa6d169dd2b69041df429b6de92fa0fc3255da0326ba5b376fb97c3fe4df8094154d14c7ced0876f98068dd801c0303450503d361bf741953a681674205296a40073346f7b44151f19c25a4928a7550a8e921d15a6491fa1124d66a24757a39697db3765a1ba6e3fd05ddf2c9aa11dc214b0bcf6ba121fb4647a1befa09fcf48a724115978326bb3e7049ab167dfdd084db62c4af26c45bed7f0f487dd5a9fa3a5528fc4701e82299b7b2027d66f0c1913d69e3f23dccb7dc44ac0ffe30a5da30710cdfa402f79394e80a82de8800dbc5e45732f8d838f83483043dbef02fcf45ecec0370a56e776f2e9c8699c4d414187c61f610b90c177131919102b451664d65cf1da87836007c321918513f6d0948006e90077b95130c48ace0c4ec72430beab089de4d024e11a13d0f893877b0b74b84c69c85c66f33c5922988d62216b96c92e0086c9f532df66757371ac2a4605b5628eac2cb180d0cf560421feb43de16f73591f7cabab8f6e5c1e4f8501d9aa98ad8a7a00c976c3a3016000a5276fe27adc3860f39d426df3f208c151a3634cd2bb6c32ba4f98cd9915544c5f3141133168380ce2eb67df35fe622f22dbd7e70d391b06c8450e708c65040ec0132f8726f1bd8e7e739033f3a04b80861d0d4a6760d6afdde95c46a360791d9a70091be162d5476a81f272e5c5e9d1003d2e0b0bdd901771d25d42b520ef1f88297108b4062ea331773d6a183c81f6397deeaa74c216390e045b18651f1cc00c187972bd4e6b06d459e5a8cac8334d0e0d0c441c4154da8190d844b1ef6ebd36c0939f4f91b4fc351a8951155009a26b52bd071615d0cbdcf479b0b34190db97c7414583153de74351e4ea99e68d9f54a424060a54c8e07e079437d2c40ddac18a24084c74a9f625424faf914c1b01193467a599e38769e52327f1266cc9221dfefb6a6cf8ad4023bb2a05692bd1a7e79fb320f8375b358609f54290d18c69334b0a4ba213ebf51e21b3c7b07cd5f8747813e5978c2aa493625e9692f0c5b48a9dc74e1510900d51e80ac86d0f8be6eb8b7e9af00ca914de1a0f0ad484a3b83d2e48fa532cb7df5d667eccb0c2e481476286ae8e43954a2f3fec01ac2835378cf8e195e1ffc31e8119c9c196af406442bac7576991158aaa8ccb3ab93313bc7f21f74cf65b76b072378db5dac523a35661db3118b40bc57358d3dd658baa4a102d1936f7ea80b6442d146f46ad9f86d50fd3a144799c63b8897fdbfd23a1af479405ef4d7a50126a0904ee52ee729da43348d2780ce9c8c7f57a0a317a119a34ef62cdbe2665d890b83252ff3929d2b8e45658009ee259623ed51f6d82dabfa8eabb102653b379205eeccbead9b8039a302311b6aeb42c15b8c86ce907822c1d7a05537ff1f9c0f77c940e7774ed3279ca7bb135b1651a0e729b415753b05aadad0281465e1a7833e39213a1aa595812223c606a3afcf94c8fc67a27027a63e3d1637fc95af86eb4ca5a3db4e2dce513de8cc6d1bf4a4a55b8c97adbda46d83b3ce93f81becb8ca11209cb24fc72269330a698b73a043def020938c83006babc6483ea1adf28a801651fb38c10c78adbc374aa1f30caebaa4ad0839bdf0e3145ef0e357dbc7a461a64a4d788e6d55b90de471d6ac26e9ce50c520350215ed880a989df8b9d19b2d42be42ed00d2da672011653a4874b4b9cccbf6e762db363778f221ebc871d7da276f898927db2ad3bdb0211fe22052c38a7a58750300e9464450d2964e71e6129ab4cc073ded90a5f268c9f5cec9a040d0af887cd04198d1d46cdabb203981bd53aaafe151612e066d7dd6bc611cf534bbdb2d346b92a3230dc78c5e7d40c3ea3a2093d0ff574cd2ae49e0969b7ca909b4263967bb1bd837db1a2726d43320d49413829674539a389d51be1a09ded0515438aa499804a42145521ae7008f4b7a4682ca7bea9b821ff4ca4d6f814424010eb3eb10bbb4e52b93f42e45bb5fe5cc0bbdfba9f1c0f1dc84833f6823d7a7f7fd61aa142cd3351a74a382e0f32ed47c9e25007c2d8ae5a0acd35dc76c5f335e24088a846a65ef80336ad651f9a71d418ffbe69a71963a58ce2f731ac96c0dcd05521ae47a10e8599241e0f684afc637fa3ce15cb14a5772b1d1abe38c73e5dae7623ffbc400d69af0786013f4c5d4149dac768378802892fe1cf23c99b33a855266394b3a81f5c36cdbeb721fc6a84faf377a86ef08c45c06e4381e7c91ee7ff7714242e0f1ad0226ea3b38af38f0c331a20212f532dfafe28d9d4108131ce69279be4e2c127d6e74851c951edf46e30b0b4ef03ecd42111618ed4d45b1c0e5f5a0d688b34f6931fb22b893aa3130df127b5e97405e261bfd6d18b215dd8c49e362fbacd2d2a38e10340ffd015ed190d72072bf86979c98133c06e70ba1a5ecf61618dcf3156c21e330d80f2f3414467059f014382a588e811035e1f03c81ff702c91aa3c931acda5791e24fa0ba1b29ec597e39ab6cbebe5d6255b4e12cf102ff588ece335c09be9194649da047b9709772723753fe5b4722612db51492522354f23af251c7f218f9af7c94f017f889ef85c51e6d6ca29bf81f19845a586bf767eeb60895ece8c8cfb3687e1c9f7fef7e3e9122bb73431178b1a24ffba50ddf1691f47eac958706cf101fea672ff30ac02e3e0cfc50f55e7d4058a00322b647a8da13e58ee67666c7e0dde96232b84bd8445e6d91485d39e18956aa95c66f9faa152222bde5f341e2b3119961d161e95ffb50a87cea4d27f0f93e7591ba1e3248650af1eb5c134c12f653dc49510f7065f7c364517bf07a5b2f26284e180a9d9cf1e279e8ef54198fd38d0f12fd5390a45c54539cc0a87a2fd4355e07bf56cea797e13c2ca54d550c03d74a50756c0fb8de2107afd4b0c28f9782763a047cf72a74b00b03a0d7ef94c4cb82071dcef42e3b00a93d0a85b1240b92176a77cc164f4703543a0fba4da912d81302a8a00dae610ec388ca24bb4507a02d8430954011c7e6913faa801e82a210c28f73dc9c25165e8098f8dea494218ecf283a8bf9bcc2924ba634be3b5559fe81a3e01ab272a4f447f011e6d36c97bfb000f7a3547bd16fe2a224b7f851d026fc4c6404fca3121b3f010975ef756ef85772afdad9160d77172eaf1c0c72e852fd930b8a565fd7b7efdab1b06cb49242341798adacefffdc4d912b04ae9ce2700c822032c722a4b22dadafc0281983ff49c978c898a605c52a9a3378e29df809824b31f6a90c9d1ee71966a13b1c4f12048841b86da7b7e9b3d07332af16317d53a8fae40c6523809c217028330554e18d5feff83c2a965ac9f22e4f5cf2d8cf85c0f616b5a8e5e3a8875d7b87bbb08516f92e8cde642f30165e94fe3831eccd01c726b1af2914ffc2613f90f8f7febcef0344822b7c679d14a010c1b26edbf2b7ad62f430dc4b6762b322fb711cca571a6221eb238ac069846750da0a4fe68ede68a6bc58a8d60e28106ec94d656d18403644ec6da7bfc6f8e96810e27add1c53aa3d17b2089a930623207c4b2e0b5a7ec7f9de142f7d3df0c303a3b1912a21873ffdcb83d6f3001e7c966b5ca05067cc781b0c772e33f6cd25a94f25ef0550d68cc8b1128a254e12ebd7aefd43a23d55ae630f9bb5b22f010a7ed588460be5f9b83c05d82b3900725e730a477b2143474ca2cad9f427093fdeac1372c2df731d67c4aeb9393f325f30e36c17b599fe882581f2d13a162b605249719d5ef236924de903ffe5f5693c2b1c98342401ac113ff23358e1bb227f694532d17fd0515ac2d9a73f08690fded614f195a53cdd2ec054dfc2b6684ae181ede1d256bb213be80f1ad0d015eeeced7d54221741ba11664ee64c2e0eb1fd1f1319a08a193ac4c5334642fdac755905bf30a6bab28c412ba1d3509a065906cf2239e0f99d7748db4aafc7433d37354d8c8e522285c28e0c1e9f07f14defd55c878ea647c5d469ce7052b82c960770703414d2a01858eeb3fa0b449f909acf9e8c3757f1013bbb709e5d534b1456e07e9028b754b3304396320a4fdb1e80f4e74b0d5626e346e1d8c4ab139f767bd1d898ea1c5acff74e6016b34ab59158e5ec315509f805994cf21b016256393ba37b5baaa29318943ba3e585bcfd4ab6c67d3171d4a62f69a6bea02a6025b8935631157141e94830b11df22f7ed013f8006d30e45667bbc7e737232cb4157629416885cb8d895e619f0da7c40eb27c8e32a837582d8495260d1c1e72568e8647f13e548bc8d52be306cbdc3635f79f7fc34c59ef4fa1ae19440b84f7ae32b28d05aad8180f5276b6742033b184ddb5105e5194b7591f4ce2b3a93f2a1bc95013a8d74c54617499d9e202a9a40a6c58e37ee571cf6b1242be2d98faf0577a8bb6b2f31a6943e2eaf16966a923354dccee67a726726d169504075a5da8582b300147365fdf019410fe057ce74219ef828589a893f99976c1cc01b998c1052d6cce8a89809659b97c42c87fea3ea4de6261b6203afcff489222174027ecdc80256ddb5d4bd6f25fd54e375ac07105cf2fa2d30222591a36448d4645aa9608442be91e0ecca90342ad95fa5c523c7205d4a1f029bbcc88c16187fabd01cdbb70a8a8aaf8dc8159915717472874c1a69090d94f42a28f0f0850fea5d702258fbd2f544d84c08dd411a8578858d4c00d62546c69afc070106e0048fc58f96a126d04558fbb6e7fbf7545ce2dcfba795f5353cbb57c68baffe05a3ae89ea6c139cd19e5b277ecf68403500d3b860306892f2aa2347d1a16ca1e2ab9aa833c7c3564463aadc2657e99f2c006e3cbf79c3f7e5782a7a80cb5e4fc8078210cff50a1e8e5ad5d03b154ec2d2e1e37b65606658cfd75512f0c41f164486982cd1ef3b1eeb8c7cff3938792056725b63a03a911ff215d238203f0e52f082691ad199df10d1bfa2233db5d76100e6f0e77e242a14e0354721454ce068c15942096e3419a2075504f1d4424c0ae00fac9bec40f89604b8fbc09111c15850b3182d7eeb28a7c1ac897e46cb89da1784d46a0c91fc4b00af13dddd9989203aba8fcf925b4cfce0ae4410645a3396fb89e5cc86280f0c8095659332bd92b1ee068580ee403b2d3940aa95a35c60103f5112822b84a24660c6292148e53943f88e1e587ff232760cd3f4f3d3303c20c081494b4fae5049efb32e6849913197feabc1a87f4aa5961d67b8bc4c28ea3ba85152de7b89c6eeeef015e3cef4983f2487502c95f0dd3c756d5ca2bcdb04b2b2ad114db5c5f614a8ba255ce745d1c0cf6dc1d7925863310aec3330b42560daa8b35cd86776214a6f23139112e02c15d79e300d6ab707ac65d3199615a95f9390aa9f0120932a73ff816db9f7b536a47ba4ccd3532213b9f3b0f70105d4b0bf4c3ad93960b862627759fda344609de92de5eaf679d9a8e6656f263804708e46a64ec18f57433e4cf8861be201b7df271808db7d312d848cd054343500ef7092fb62e55ecbf225922b9cd2fc13d2ad940808ebdac3488dfbadc173ae1339a43dcf4d91b8aee49adbd1ebee350a22df2ad11e126e568c29e635a794d0c7bce1e68c3c70c50a74767a3c9198eb4c8125ba1148dac8be00f716756cc76014573e9234bdea10ed1269a04915c17b10386edea4336ec802000774d31fa710fcef3e56458e99f76ce73edbb67f8c22f82ee9c314c31ee86218d2e62f709281d92baee7b7c9464cb1a77c8b300aa5eea071159c7c03835c718849f99973405ec5a354004242b1a955fc555522d26e07909e99f5c12154eee39d83713f7bef730602286882e8b9786076be0d6916ca804ab719029de290fd8937c06ad65cae46dbd963aed540e7655f93ee7728dc26cc5b782a45c66e706888d967f5aaed53bd8fb750da1cdf4fbd8936afaaacf342acf0cb64f42e005aa016945a13564f3a3ab3bc954883b06cdfddc6d6a7e739b83c8542e167159fbadabe5498a7cadf8b0b80403515daa813377b021b029f70b6e0a7a3d2864e03d09c08a4f1c26b38da430233490180cf9a024bcd0279d2d33cf10b97f69b0fee463211224f8f82a9903bc1ed39f6a827e55d28f8dce6ee9d048e4816934a5c50889c3f8ae37a9e318ba1273f1a15a906389673e10d66d8d7f86570ad994cf26f5a46958a80c0f0c14cb044a34d571cc444554da8d80f9f0d537dfab05ccb8ab68bc27c81e41f267dba46b709ffd4138999d164e09c8e43a657863fa657ce061effaa40400f7c4d401700e098270ab9b6fb3b38ee155851d2eab721c0a24e302cac2b6706d4d08e3a7762014d0dc0c1fa1f77ad827f7477b09835f2950d8dc3986bb4b7f0cadd5210d930a784efa99c672373d2c02e61c65fc98c10ad89733607611a05b5518f8041e2077f58f82bb8ab38d7a8d645c4daf8859bd24b4cd41a835ca0be713e35104a7ded2bc0f8eaea7fe1fe9b48bd69855ef0158bfb80f4be53c5959b465e25160b2b0804f754057b90cae7e952fcdd52891e91340387d294bcfb0c81ea6916ce6e82c57ea7df921cda41356b44d79d50d0b9e1cb5c9740b0f45c36551d0556480377fab518e97a47684d93e79b4111ff8c9deb16f4a86b6a9828ce088aefb05110b575ee7bb2f37c4eef3a0f48d802ebb83ea0ea18573bdaedc41888d8a8dfd12d4d71f739d502e341903e9e1299cbccfafd1629c75211f629ce03303cb437aff636c3e7ee52facafa2d5dea230d3a4146737d5aeac633578d4ac4c45030eeb7ef2fc803766f2762d119072f94f10b4f22de071d51a02b3c076381e68180404f64a409c5c8e2f0269ce2e050855627c66b91a4062731e29c0e2a3a8ef0513a30073b19c8b7195503d105bc243c67d471831a04b704d101178d303be30d5b3fc5d47d97a1ea3d5949171fe67a9ce9275e8c55313867aee0468fda23eebcfedf89758933597b97cc8e8c63310f75d6a62b98525c97f93007e7837f14b924e3bf798c1a9ce7c54d8b9b886d064767c778053d20e8d3cc1cc77b4c370ad64527ee2b4caa13d47010d930001fc371a756dd04759703671112c6992d422e4e600ce5a2186e8d8123f9832ee58301f2d4f0bb7e0299e41932c207bf6ffe513ea40c4443287fb839378408c9cda8c512ff79a52d636f72989f61115815e3131fbce193a5b4e79b8e13de2e2d7d426da130e34490cfd99017bb398df1c10050877eb3456bbdf7868c94ae8bd47dabf1bd2780bb60cc0627bd3fdf83d296c5ea37f705345977d5be83f01802036d9ee85a1072eef3566c04cd982f753cae579b6daa3a01c706663259a96d26a562852e4aad7666e8194f499b8d35fd786e28b90e01580a7ea83aee270ba3c40e45b6a921166f75f0f1ae8310a17542ff37b3967d034038d834c9ebf8ffa5125a5531a950c803a40c9956caa5087d3b0aea556870572b1a0230abf0462416ea2691813624a2fff061c6cb533870c2671572ff004be2259799b53dfac6fd0dee9bf24c57ba4694ad61eccd7828bab00909ebc1243dd66283dd4676a16de2def7b3283a7ed8c530dfa212ae77bc04c35c819b5ce400a00381b877d673c07ef95af1b357529f3ada068bef171ee25693e15c3e0f10d51703abd3d924ffbdd053951a16df1dcbc0d455c1970260aabb4fd85b7f5de41e3b9b16a39611241d2d3134d83e6ebd73cf331468c9d5ceb8bc5994b10ef4d6a546ecc07656383072eb0c54428b8dd017fa4d9668381da54a80a0147e362571d0401b9714c1f3524032260c63f2b0cec9bb64deabaf715ebf9416210a63969b25275977b1794facf7509ff54b03dd1536fab4c2bb43f582f559cfa81a5c659d26ba3df5be9e73e9122ae6a4400d82ef0a9d05e04b89ab82e06be38b8983282eebab7e39cc461cc365c33d72ed502f281c764321ef8352c3aefd87cae6d2cd4462e5bafa88e81d514fc5020da596a03ec15afd5fa17309f8822e8e8d92a303ee86f3ce05da0b674e33f527a7aef3b34f30fbd6542b34a5223fd5076d23d77d00c482c00a69aa2f873a8ba3ba231fbc79522c08d966b153ade695d8950ce04d5424bc5b5e0b7b435269b18977e76500af9476c806634d305dfdcd640836ae6177c08931743bb011a6508468b6d70706005f15df692f7016389173ab37ba7832d44140fbc6f8d44641fb0a005f613be1caa7d06d13b45e405bbc4232499b0bff03783c28ce20a87181ee534f256303fcc4f21950e63f7af0c4f0d3596f07f99de52b5c4d0c96139d5fe7e8ab12f39908716e420216caad7f742faee4c0c0488b63c0e81b07313a60bee8c3009c9d1bcc1538bbec7847bd4da53bfce3a8e7a2a2ea2e0f9619694cf1b7ad70d27b3764f5739229eb3d49ef65931476c98e56dcf439f740bb6454e813eb0e73f30f600dcb1d221f4d2b6d07a4ef2aa57a662c7b3e8ef1bbe22a4d6ddb9633da53428c207e196f441589b3284619bb50593a473eda21f61bb3d0ac98ed6746d84da73de581fe8898db6bb80120bfdd194f05c0ce1060f8e0391cfb3b3be53b7289343f315420dafa5cb1f0cf9ab635acae0acc7ccda7edfdb4dcb05187d21c36c7369ad66bef041a32d6e1e9ca68c5e881c7033328b4bd57fde943b38dd7d2616c328530cad725923af991c289e822ec03ae001415e1e204bb53d62a65dc0e6c4e7a637e1aec81fcdc903c86d804bbdbf28869e83a2b27f65042776a78bb4859305b3b003c02e90289e11150de1d5317e76a506b3e19cc072991cb57466744035c30c22f94ece8663b70d6f0e4f023a5b1ec35d9c445ca6348848b7d56ff347226c3814fef39470d717b4d6a8ca800f547a239ffb2f73c4d3c27a4099cc35937041beb21b88e151fcfadaf368e080cf8fd0c1ab99390afb59c2ebcf43ac145e218e0a5d361677cc03e260daed21a86c064984b16b87a07110899169b562d7063c06e449a8f48b18c7896ffe76963c6c0213f2d15ec263184a7aa0fdcc8396ec8fe9c305c3da2c584fe2ab552412482e2b7067d3faa3157671fbac8b3995bc333aea473c54c0340dc5df644f4de0da9e319ed144363fb80a8d1e4735bb816d3c9a6c4b7a448c5e6c81f4161cccb909782aa9ba3c12d4596c2fc09d80ca8be000ff42e6dd03429a324b178dc9bd3fdba006a68f1e6e01c6ae9ee78a09a5bde0069d482d513163ab882fbb8663e26d8c8b309fddc33b6b92f38d1851a23ed88f666f6f18fad981f824e95f8c5bf8da866b24ff48609fb9847c31ee4e76fb45b074e111b53eb32cbea9824023461c3c5b48f82428194191e45d1312a9ab739eda8c05e4aa15b09257fe01c80aa6d30c0cc293055acbf055fd2c86f32b8c5d5df2ab2375ff346306908a50247c53e1b64ab2856442dfa77b27b779cfd17c125e8e7e37a24cc37bd147973d45a52b89c5ce7f8363ae1edb7f2f5db0d0bcd8195b4997e798bd0b5f9c5adada562a5dc115e63c8c2be9f34145649c0ccce8d33ba8999d243be75009dc5ca4600e623d1982905175e2ba87f58a2392a32ec9b207de1ba4d52bdd23a1bf883f6c4998092e93821e07e806f08eac7f7bca216d990a3a83220ac10c3521c1b05372aa3741a284bd17077873263f72758c5d6a2460f79ce8e0ea7017b31f1dea745de7491d762ef3d435904a4c432ec05e0deea2c5eec9216392ae162f2407c38ea91a2fd55dcc98d3e793511981e2625464c7a36164332740456912236610bfb5fdaadc5cd4157c4da8f6ef73cce95be89c8dc4be8e599e5a18270a898aaa7c8c541a4bd840eb6b5d1c5e5ccf5acfcb2707b7c56a2137411ecb382c8cb992b489ecbda29ecea9739ba555ce29774da16f219d65ded17174560b55659d6464867130971af1cf8b6f2ab5b8e72b36a77ec10331c56f46bd758767799c05c58487ed60e6f06a509b17beff363186aff23fcecd2734136e4a4e78553dcd9b448bd83fcc4e36e924a01b8cacbf5d01150915e0027b64c16d8b47cc2d14d81d83be6610a79c2c5f14ef70c4c2b10dd29de9c4a11658816b5fa2ddf71a712f66f44d241a6b80a26904aa42d47713593a4af3bdd7e40163e749aaca58d1179673d43938cae0ce03375b8a74a726d50999cc3255f8140ed750c7c8faf29f2c86cf3052ecf25444883f339b400e875f846db945a9fc7e7a60d9f2073d2331da21cc439d6390544fa84d0484300dbe4e022df7fdfa0010150164ac428048130dfe364624ccf5990c5f41589c8adc6e81f49e80fe544c876031f19eb6642bb29e47503c5424ec019bb625cb26d9db9e492ed0398bd24713a6baa39fa9a3a8d73ceac9de5407df3b5cd95d14384710fb74082bbb6f2066adc11e51d5172574667f79ca79ed449bfbb132def6f0cc0aa2851d569d7e06f6c8015c7de8dec499ced5358d1a8191f0ab47c56f0adf6ab0e04aa88057c75152d62c4500e1607460cf742a37fdf00aba4436c8818221bc8a004832aedcb5b1170c89191c63c8dd9b3ecd2a68bc9df8284e0cc77f4503ab1837f3d23b931fdc3f1a5d04d84bd8ae693d8a1a4b71e41d00d3650c5e060d7bc440e47248e97415f0c3a2eb59af743cf883477c96041d58700fb6cf7450035a935d01b2b48a10b5a638f3ec94917b1c61633c1321d09564770e2851f0c59b34000893d9413382c4274514e9a37294c1ea519a2cf0a739511dd62079e711a457986fefc27a6d16bf739c9a4ff8fa589ffc0efa645378ecf075f050e40716f109050bafd0199d07a9330e0fafdfd033c6245258dd2b189e277e644845cce58d56cf303e6ccd6def1ce491a1d023a83e27a40fc60c7984173e6dade05aee1549e9f61cee0320a871884a31d5b241c33ee0461a7525308010c50b6ef98af8939a440ff2e68a184a6ff1e0836f234b70d74f9afd2729ba6d9afd3886b6044572d5a81d8b1dd2dc3a105638c2cd2a7840f8f890e38018c8d0332fd3fd0287a7309134a22d61f9f869db02cee3d9a369ba9c21c7e636b4820738f6726b38f751438763c14366501f64c83334dea8c42da41ddb4e12041da87be5319495d3934134a8ae1ee0f7f1194f1e69294722d8f4f2b0ac01a8dcf88652a7b1c345c95cab805acef02f2c6896cec16740dfdf3b046d3b7f6c9d3fffa73dac3c280be29d699ae59423a430bcf2f894573671a7884b16ad0fec79418d2e9fd5d9d9118a710f7d9ac08432f2be8faec9d8f2c523e99f54be687d86bb666ac31372b41a0344698ea8d7080d2d42b3622b0fe23c1d25134714d4a60d6464f3e8d4f0b519611e23075535c62e798884b055c6ea49c1fedc701b0ea2b81da7b8eb8a115c68f8137fbc9d7cf71d7b3b2fc42b27f3c5923eaed1a90c7ef81f1deb4746537ff6744cfa9e3a916f0935fe4657e7096df92b17c2b9081f07150d505058456e686e770b1fb171b0e8a88e244144bb30e2d9cf16fb8da2e82ceae718521584a7e9b3c4e3b020c3e47122c112e90cd89918c49e14eaa26ba3ee68f752879a6ba276bb3c60404c7c22a7f39b5dcd8c7783f84dd56c3a68e55534f92ed47a722cd1fefe60a4fef502be420edefbcdd9b68d98302c64705fe0582a1f7621864da63c459b024a191057e3f2f9dba90f982fd9c46e97d4e25fe07c3af32cd589365ab453dad97b97d60357d9fccdefbcdb06809a4af11a66a413bd2cc82c1eacf2ea73714f462de47a100448439b22276eac99f891641035ae2c7e16f87a07ce30b9b590ae06206278cb7088b4be1ac4de741088765904b177e1b9544f2ffabfcfac0e7dc8521ed468c8f0f0c1c3624904151c3f21d4253218fe0b92e60f4590469bcb7f1b5d411e2b5ba0b29b44936249a32d133996513561468ef83acd2f2490a1ed23fd3895ea1506b7b747e39e0c0f7c5dee4ab34d6c70d960704fe21b36aa2efddb72f3b63bcf218e9912a90b78e8e20886ed72608dc5bfec59a529f388475f0870ee5ddf64f85e37cbf5bdf603e4aced0d0770f608d3b79a9a3f6e165e6b091f926144f3122dc7b131580f259112d023102bba0b7038fdc0d590e4feebb81ecace97615f09ca1830ba5f1d0d54f03f71e0be2ccb48617e89849c4f12131e5c99f8fe9177d286cc262059793705af3199238ecb4d3f762e7c05cca16d146e2416a294876150ff2f26050b8f0d2f3a2a08f0507c59865c5583069502e4ed70c60e79ddea0aa1b8c0bdd1c70495f6701af07ad773e37ac40ff7156ceab88165ffc761a766b703758aa914b3eaa52a89d17c0d4dedc678a48ada17cf8102de9df687f9d2f7ef693302eeeb515623e1cc5869642c740c0126b943916998ff9284c39471d4a46f4dbe22f96c1f72f3181cbc39be8ce812415b30c084dc78e962d07cd6c68d24a2fe77e59c1ea25d115a9b02a4888fa39055ad8494e564140fbf98870d2380b765a11a8f5e8b5183ca5ebe7f6ebd9324521868bf281142c6c0bf5efd78e03636f4f362e82d7a0b803436f7edc6d66c78d9c2f0932abf188da09b32e43392ea6496f7a50fd5eb2d4ccccc1b58d2be1d0c3318906d79949282cb8ae5b5ff0e403ce8049a247af3272c80f9150c8aceaa99ecc1243d11aee4e76e02bfe426e6c57aed75f28c4b8c99a49caa7e3da618cba4d7d1d3456daa2cb426ebf72fd34347f3c43388f929ce0f9a70051c18f1620c8680aea6038579b408a147bb7299c73ba44351e3a1444ebb96fd2c5338c45614f614de11c612fb68385ed0921dad802c22a68ed810f3cacdcd639426265e01b76305c4fa080aed815b6e676a58511dea20f66036390e9870e8b4e8d96d7a4af7e366bcbcbf79e2ecc0f5b212b858794dc4c39e2c401471cbb2cf2b20eb093c9adc58055bb52b1bb7027be3a898b5a44ea74fe799e688a0ca1a0f000e30a68a2ecfbfe70c46a275ca8e87f7babd643fb1c842605abaefe052888382c517ae3e7ace55392841eccecdb725b7232dbc48cf4027031bbc39bf545e4d86df270f279bcaf3534a7fba89f77575b4e4b6805375aa544d332fcd296d1909259f1861393804b19620a5d07bd4479e92098fb8a710cc8d90fa9e528a646284d686c9a8d4b38a55bdbcb593ca8a49ef080fbeb8801a873ba41bcd109019825b11bc231e6c66db8a0a2dcf68a8c06ad96e96a471526fbfb11c05ef95aaca394260137d64c8b0b53ac2f4c031eb7f8e88483874f767df3fc428642713bdf1e97f21c0bf6befed45da35556f4744d83dfd0d9e458be6176ef49f2879c8a1e54de6aff9bc9409b63184e9c9a113033c27d452fee00eced57d8c6561a44421068372213ebea85f4e807a145aab49d8698837917ebc860407950baf91f04005836e65d9cc45dd98c23058bccf1023ab4ba7734d2bfaf1d90010530bfb1306271bcf3b3d0bd77f5fcb6afefaced9582e1aa8da8e8dfe6c9354ad27a7b0301c4df0c3422995972ba17c00abf834091357167f27744b47590e9511696095f3f22daa9fb9eec38e48941a02418024df3fa7236d6db6d791617d736b9be7dd0147c3c91a86e874a33ddec15a076d43203038de690635ce5db8f44a866ac0166d2327d20d9b51c76e5b267fe71d585128d7f277ff0f4a9ce88e02b63274e177bf511ae0bf1218815c17b5f7b142366d6e093ba5d0cd455165900335499864983271f9f8fe0ff40ed60cb0f8d2153efc72b74cd5cca6736c83a13c5f8b9c0f3167fc4d2c0792b1bff63a79de3e78cf0a3099327431784d5a829a48685cd00221c5e34bb9c471497701a58c953d417ec6e44f40614aef9cecabe989e1fe5dde59b9312a97a1849b006e8d5b2241f4725daf1a81c5b7408185cdf880ac1c0c1483a014064e5b8fabd5c643169b9b8eb8b3ed1d774e8786212d3b2b9b6e589b926805bf68d5d53a1b454d4aeef34bf467a42b2ed391fc83c151a22b2a8b76c498c892386ea0c66076f28be02da6290643b72557889515044303abca12d1271ea2fb38746e89f77cd77358bf5ad0ac13c97c4552877e37214ca64646a829babb0cb71e933d7f84a34f5253438725db19879ec58960d9e2cd34d781e2e8207e238951117959dba00c104d049d9125bd9d26d0bdb543130dd8c53b86a49c9f34d261c552e28e9a011e47e8770b2aea480778404f7423b780432d9d443f5f449af60c049398c69ff218c39c1270c911ba487b04a998387076cabda9ae0eff886c6d8302cb1a7e92cdabaf04ca3f4bcb1e382d327c01de4512de908b4b6d84c95b16d193f2c6b6cb91535422dba29822aa14b3366953328b21acd1dd4435d05e7d8610daa7ab0e63241317f35519c097751192df40cf5a9ce90dfbd3aaef5a4b256bb43a601f3c6d5e396c94861ca436c3ffdd56995004d75d588b087f6cff6ab867b444babe43a14f64a1270ec47959cab757c60964f639c758d261f5d748c1a00c4fd524eabac6ddf3f927d4061ae9ff88732660f6c18e9d38196a7a2e7ac004c9ffbc2e0dedc2c9ed24e4a49c1d2b1e0e4e3a4b2e5a79e4542cbfae656343b20d47d5ec2319586ba0c2a6528f48b4ae5bf617521aeb6ce79a2cf922efc26fb4ae047a7b197f77cd8eaefe5ad3aeccd560133fe1e8f82cf991cd15f32c5e3df72a7687fb55d53ce97cc11662ea025c0bdc01a5750cf2b3f622442282c7d918ca6fd43f8594fc72d291ac5733131b920c16906e09990b4277ef898a20cda1c45060651cdff896d859cd0b8d12e3815cc995edd22bc3b079f0874bc6fac1ba005bc2607b1378ed8d2437dcec6ae4891a49da0b13eceaf3dcd1447e0faff5bcea1ab7b833484670837d18fc073518930ee49304b4b12ae0c60eba74b69ae6c077f9903c035e552ff7d799675a3bad4023c03ab0631e2feb49b4e2ac383853bc2bee85617ba7095b1c64e1a2ee451035c743b917bb34c11a6f50c57739528dcca0fa4504e47eb5f4508f83e47170302e6c251085c6b66cb7a52a793e11498dd7f2624807c7a1f805b1e65779804fccbc38fca38ca5dd6d06228bdc84d0b5bac7f01b0b8bc5bd4404f0b7f417bb47141f35c8d6a761613debfcdd1d90a1163342bb80cc290c61f82978c279046e10a91cc864fb95ea1926f0b7d6c909e1b5e54087efb00beaede7accb68e1fa3ffe0db769bbedf48f432eafcd63892c84265b6fffeab080262255f98844b55ed76ae03f97d6b231dba308b730978b8936911bb64623dcb8626f61e41a86daa41282961603ef60102ad33e79e2fa5dc044c341337535ac2657548ac627b99fa606d62037362e71555a8192ddaff48ab964f5d15da36a58f64d142876ce499ffc7e8020ba8d515d5fedabb54de7687e4cbfc5d604de800e10b0a0182cfd83f7f7d01130116df05fb6269c56c2346d1e4c714c19c18c7940c86a9c4e1e3d622f06a65cda0708c7a23e9a04d0bdb9dd0a777747209cb18a50ea042d2f642094c5ebf579390be9799e210e3271dcba8a5c59441904a7290d4d0b19e2336455ed7f344437a7dadc63aa6688a66871aa797fac8885cca84484109606a069c073083b81235d0132d253827e28883067ffdf1f1d5fcac8dbbf8a24cce0148d6c8d091fd94bc733fc234bb6c862cd29a1cb25b6609bbe22c307bfe6f5700cc7e2a614e553543fcb6d3922db9ae2c3dea24a5cca13c3df66f44df289808b2db8d8a66ebf170faa250f2d92e581a63672cbe5bace6c2816b27cf272a7fadfe3c5970b94df04267215812a6dfcd4ca936c43dcecd98f3a5b9b7acfd4d12cde58a1b9c21f4cf7054d95ba11a65b440d330547becb3699437a9bf2eb9488eadddfb118a4357865393bcae5fa94c7e0f0673ba0fcf065776fad4b5152d4e1e4aabe421e032f574ce6fb7b50ba1599e4b54c3e71518b6421924bd1b75675f89f792791ee590e1c328d4da96ef5a66e38942e664ad27ed142ac124c5368fe4a11abf0b0213570e2ef17f3471b8bc0661067145166c3c69a6520eb2802987ea63f383c3db37ceb47a409f540e577f6d30b4fd160e6266f0e6591de74acf4304e3c450f3a7fb89fa6de4261ff9f503842c43fcc1831e813104c0d27b73cae9f0c6d1cb9bb1c7f61328f9b39ed4ad994f614401ef301685e0d6b23d4e59dea5dc800d9f7c20b7323389cf9905d6864edf18905ba9e92aff874ef7087761abad0652ce783bf4d1ad9b597b21aea4e619c114ecb3f2181e4dc391c07e2f2d900848998c461d64b039d824eda0e58bb55e090f0ee94a6f2737ef69514c1cdf6bfa7190ffc832dfd08036e1c8d297a29d4ced5c7af2feef8f4994e95f8b3241cfc176d5005f2d7b6d072b2bc5a9d98e7726e80978a36030a88c675548a670402018375813a22dc1020563129178bb359618e5ac03a59207b1b97fda33b1015a3d337e39d8530666f2b1745a33eef16444e80a6cc0b2b87a240a925b158213f1fc3a943fb39f628f858595bb57e04725f0ea856bb7127c7a22488cca3b6aa0f8d2d041907f042cfa0f817d61b4901b62b1c38dfba1d4514f380c6add1013264238c87f9049cfc4370421c3c9aa76087eee8bb6b97af6070ed5a84c4826f14cb2ca40da25f6d4556a832349e37de1f3c56612d3ec00441ac7c986c6261035f82ee50f4648519b0f91c70f41fd7bdb47ddd52187e1735b1ad861c907f5e3f96dd44d4d69a745bbbd27d11e06891f2a32f6d392d709f6a569c6b84bb84e4048824e362621b896867448934b27c1602354e892a0f0619eef88ce40f7cee7caa0eb33bc600ba62deb708986a470927df0932c5242481b0ec8b449c2f7407fe849d4656d1cbeff19fbe7a7c50b06869438694bf5c800155660c485eb3c8dd51bda2f6d2abfd76b067007052e67f4b39be50543164c30f2101967ad3c41a7fb2becc2ec2c2e8b99fd4991a608a3bcbf69f2797045da5fdc72dc10557ecbd10a947c80301636f1740346d1791fc291f7a78990e39d3a2d23806249481a26e94282282cf8425b1899f31dd60934728a5d917dd161961dcd388fa2f83448e7c97944567bf31b3e651bb273963c577a7672eb4c436321aab820874d1968dc2cae6b355859b94353d7f3887f03598dc7276cab7ec2dddbdc1fb7c1ee626b07d10492a8ba35ed793718e2d85ed9af5d91d9631803ac94846fdfb64aa395050eb1c0182938d93995045f16d8f8433fe28d8c7f3831a7790e6aeb782548b42291cd8e5e966518694ddef2c1786fdb02749a80fcaacaad43be2315a33ec577524be245101fb042ca48f37125f66ed5fc385ff0a2cb81f07f0783611391dff1073c4a81a4070601fb013b0f2a1ab7c5d36f3b3f868221d872d227b4e52ae22f58495ed22ca6f6400a01ddac11fd7ec0e61fdacf5e3ad9d82e881af09de30c65a8e72232937286aac2dbbb15f1dcfc47ed56b02387d5755b7b51c6dbee382fd9c41bd8d231bad0646ea7fad55d7007ed4b2f5b12f438c2b055fe88e8f62dca2c1bcc4f671e09a7fd8ff9b101427646c340005f653baf67553b5d8e0bfa094759d548d83fd56731bda05fb6a1006ad6a2a88307ec3057cba59d4cfb2d4abd51a9100866535d152c21d4ec8233861ad55b208c0392bb097638c2521d921bb6f8a11937ff8432eb16d8e5416f1fa5a2d7544058c2af056b7427628f8781de5ab22fd34e0be8cdd4d6daf310d7a02b50080e42a55dda4781101c61db091fef116ff617caf3a0d7233e708f361be3d6192945ff189de3366fb2b701404a6ba1ce869722db546237d44554317002c560747849baaa47d0c66f32f9e39a2ec7dd64eaf3ca541274015994cd1be3a603a479ea1b9f8ef4045d32c02ebd088449f4999b4ea20c0d2eea03ac0b072095203969d851a0ff2437fa67bb3fc0c45c31a25ecc288246291809f3644828d56901c232cf20460bd37bb19581d9cf4b4f8399470afccd4363c83f9249c22329fd8ab3b44b1a4e78ddf0ccf0697423faf53175f6781c0315af0540edcaffbf00cbb46ddf7bffb84890234f5adffd44177989becaa6ae9afa62c5eacd61598959a2f39facc8e8b8fb5ea30e3ecc7a9ff2d937a5f5e4095816489dc3e67289290a13fdd002573a8cb92f3442402891c4bb386609d29ad688bd2af2f465333d4c9480dcd09585e386cad3f4b86855a0ac62847dab2bd0ac163755e21a64cd9cb018bf761161b75ebeadbe78bde47c10e5de8bd35daf8268b8bc5e95e568d3c679195e2fb1a76ae11894f8a1fcaf9aa1eb725e309bc7cc08a731afbc0d8a9a8af4b257a2cb1c3338fb89c3ed1488cb9859885773ac237fb8ba9f62603f5c7acb49b61710a1c6481f2e8e2220559f9f977a9061c7b31f5873f9ae68bf676b5abe04f11f3de76cc3807fa014ebfb07c7b92320773430d687aa4e3632c4af1ef11de1c867709639585914d300fb191cb04f8de684a09f08a5521cc9e530b1c819e4169c41aff81f0a22d82c5e9303cc7c18934978a65674a698548028820142d47a06c67b7082a9d7e7bc19c36255e48a48675cf8af17415e6d46d53ac4b572595b137f402c301f257e26e6bd68d969e08aaa7c7096994dcf1aa86843cd2162dc9e85ea6c7fcbdaeaeafb0e1af43e6660ba6668550790ca3e532a14c92d7fca6827bc861f6b8fb8689ed77a5a33add8601873d39a594babe199607df8b9a041d05621edc4c3afcac8858e345fd72b543aa5c480f4951c712fc6e9f462853b74a220a35d28484bad304abf4309a50a0fbc369cb30fa693d6f74bd28548c177424f4dcc499833ac88922f06595b2e82245d97b907aed9f3dccae4e416d8dfd4ed6172e72a4078472b79f4421a369eb5bb0a9ab62d642aa8ae9f0705a445568365836f8018915968e7a2adb7038cc80c9f64c988c108803939fabd3b78f7418354dd0a703c7b2ec386cd06ea2b1baa36da6c2c811111c9042c8b319eb8f0a278f6191f531782a4711686363bda463fbbc9d5038864bd405806be2a4119cb5796c55698895c9a74de75789aa1609369cb69743045b091ea6699c09e57808168fe2c8c6219e54253ffd424d62f612a16124f22da30eb776b034b6ba21fd2bc1858b9f6ad4ea2a73a56705f28bdfec01013253d72b8695187ed36406598a655f6464cf5da25d03b02a373f26dc90d7b5c3c949bf7d26bc9a57462dbb504c1c3c086b1df4bd167e0bbc7e2fdcd45d1a8d2328cde0d87df00835e7d2c3b39a168d4ef4476831713aad58dc8ddeb85d268ab23dd2154083e165114e692fd3a90b5e67ea1a33d67a668c82a8c86c03998be7ec9b18c138d02d743e33b9483f10e5d44057a1aa117227d095a6f8338d7b530d5ea18ad3e2162e948e84e545b1f43576985c25a96743bb051e89569c9ae4007717570b6930e0356b15e9109f7e4c08051878459aa391a3abda16dac6e2fb985304ca094fa01e9c6406b89410c0e44bd91f205e474bba34cd598e0c9bd39d0dc2822b723f6bb764cc03d12b4afae4c437aca1fac2a6e50f638d11cef0d557558d627b9b52306594fb49a1cb3ef778eec183360b653e47234c00da793208ba944306b420ad03609c924cbfbd7cc092dd7c5541019d76c3e1ac8e73fc77b5ffe5b6c21b305699ca3a0c8fa4811dd2001ca11260624412b9d099d295c056920cf6b5b8e6f22b19ca97625bee281b4e8d2dd19bd04b802ec9803ea97aa875e3090325207a600989eb704813b21911dbb8224d2407556125f13258bb62d7675f52f09ae20f86ce3f7d67ba99462c3b0dcc53f3e4eef33733a1c1fc956be5e97d2a0008fba352f761cb3e526fe800dfd073f422cd97bef2db79452262903a308b9083508165bd9bf95d5d68d62a3335b160c983519e9da6ca35734746db6de1e4aad5e6db0681f65d4517eef5b778cdda60b0d33961615a4fe5018dc76e1bd4b745903bcb00d8eb48bf78523992f9746a496175b8dd4fdf1ec6d72839c40c05df485024d27896b5c2f46265350269431a29d35673606b14ff2fed5c0ae1d1ef3bdf73571ee57fb33c2f6fd5985b99f50d46169ba5c6d3f8d615ad55a412ba619367546d8b2449f6a421a61bd18fb687f646ed0f47e36610d695091d2576ddd26aef2d0ef0f16324634fd6ffeb8f03027d0c4815177dd4cd484c316382a5bdcc632b600e2e08b2d7ee0d9a248922d5e6170312aa145130150811629e0a00b2d968c6068983d83b4b041072d5e0800195a2c4af5a065a810000ab496020321243e20c4c48a904faaa6f39e41424700e08316f70c128ae18a2cc220220b2f98686fcfa02c84b2c861318481c0992a4bb3edcfa324854c5410b2de995f9fedb3da0a8399aa8b0a184d1f8443f8dc74797d46a07980ddf7935515cc34bb301afbf3400b4d5b8a544a928d92d8fe23dbc4b94ff202c9f60faf78ab655645d9c4a9b6c576a4d60324f2fc64d9de420b895a6e5e6d578068f4e29add32ab2daf42b3e2595aece837ffea33042fcf49d622fa3e1647a8d9f5c1d0366fee8b0ca82808c9dbe70d7eafaab0f10a20751fe5b1abe5271381c6f680e6cd7d7d5f13a7fbebc5beb7fe6db9ed7b49b3fa9a3837922d4b8d08e8cabd24dabe772cc28bed446e1b86ea6c4440340fa8abd9a4596d7555ac906857483f4424a02ca45ae621d9f0d8e12a9db5342ba9c0846156d83898c18a2286b08204e0120cfad0e0d692914dda9d6a2b7a7698728364822a641b3ffe175107c665b4a08a1ac490e40537223be506255a9b74c924002abcd8f65ba6154c74808c98173bd870031786c1c64768d81866638c31a6b34a2987844aee8b6d5f53f1826d5f9b6694971010301834215a816da2069f1269349d05802a53104d21dbf6458d45ac0421385500c5b6ffe58d6d2c1431c410112e9c40072a54e0b25236fe27a1d48085eeb027eae8ee67c721031eb6fd2e3f412468641fcf8d31c67832112445946d7f5621daf6afa8c352814b9a8d4f3063e3cff8f56de3af22c4be8263e0810da303d37082509b4c63143700e2e5876cb53651538c911716e0815b0e3d4219f7438b0fec05c7e406fd03cd0587440f69875c0bce05328c7c10d238277ac41e66241c1546421e7e46b82f8a801d9889af19bedd755dd721114232e4aab9f50c3278b31988030d59f6fd4043f7811f6f0445f0ac281ff1c2f521d63d91d91f863095286ca83bd02e952b30efc0cd52219a81ca6cb29ba67283197c8616e053a4b110ba62c8c68720aea002001b348d3d83ae404115faf70cba6287510a6d93450b2b56c0c04a133d52b088c18a114d3469cf202b4c381842db3d83acd0acccac90e2b2ed9e41562cb1cb5f350167aa1c6fdb3ef87a4d9addf253bf6aab656ca1e53c61dbc6f68cc9427f6028bed5b7da22c5aa2a8ab3ead7605e40459bf4336412d2b98da355531193f5c9304913d0c4991f0d4eb62d65b4d8f6658472fa0588d9d2aff9429b3830dbc6a039305b249b6d866d694e5a26346aba24d948f649519c457afb9614ab2d922d9b7ea55b5e66a8179f17d9cb9197d84bcf0bcc49fb245b6db9dcaaca3e6e2cb5d0d0b68fc7f25d8ac897d7b625c9b6ad4b94234e5a4a69a02b49e6a425c59c8c4297a4188914dbf6f1098f22f8c62f2f4c9c3583703cdbfecb8fb3c46dff05f762c55b7404432f4d9c3583a020daf65f82b67db16ddb8413bb7cb96dfb5265db17a06d2fcd5925c9a65f249bb3cafb6a6142835db634d9b6824cd82f3f23dbbe5b6a3fbf6cdfee5f7e359b17ca9711b4cca0675013b96d6bdc8ee34d745d448a4a473333a34bf767999aa12d80a9514a296542daa08714fbcc462cfbbec4b48953f289726d18d64375e85c70a45f6f957ba5abe3a5dd9fee69f725d0bf5fd65abffe8fb32a96e58a65583655fede8319757f2eed3271d23df732cd597453da8d178f37e7a45fdc1572f26611a2f8758b9cbc538a2e6dbb9718f6e3acf21631715689cb2945dbfd6f1196d16099e94e81a979551425a99173ce3450e80cf40d1b399c55e6d26dd8889560e77a6b0067aa9cc96d7f70dadbe3a45f9b0d567183d72f9dd7de6e74614eba0d554de89920277d8a938ebb39e9333867cddaa2ae99da8c8d89be5fced48aa0e0bbfc6434047a8b6c7ffbc9be196dfb7fb289f3b2fd3f9f6f565bd72fcd499fb9ed9929567f32182174b7ebf7cd3ed90eb2ede34cee0601ce5409c2d0ee1e9491427fb48806ad3842cdce5f6b767e0f045156d491e77c0c06a93f6107af0d564f460a9dbf14ccc9548f93ddc3621c147190c5c9eee79c73ca48a16dca964a62b6666ca9a2195bca0b2d7657a6a8d85dca067e9992b2bb9f612243a1a73065f15dec6e9ca9c1ee3e6442b7bccbb7bccb97333620d954759fc1b1cc9ace00d5560a9602da1d593471f297a1a793340523bb776941690a8339aba78be5f6bd1cd02fbfa0cfb6ef6ddf967d39c8a28e5b2a954a2517171295fbb3e95fda6c956855d57de91a9940b5f5f214e6e95f5bfdbe8f84dbf46f6ce2909efe95cd96cb5f4d614a285d55f8c130949142773252681cbea0a80b4cf990919a39d97d8ec3a052b7520ab77552b6aaea9e86882e53b294cc87875965d38fcaa6df0fbbfb52454405dbb4140015f14b01e0360d6754369df1d39ab15515cd88796453a01946367d1ab589236e1ab64dbfa411657f99c2d966006d3aa3b6bf9c11dbf4cb19b24d67cc368521b2e97fb589f36dfa30af89f3b2f59730b04d99d8ddd3d94ad9a6aaa39f72c16cd914a560b0bba751d31dbcf68cadb652b61490b36c8a52464c960d963b93b2d556896653e4ac1290db6099ac921193ec5ec602d43828da36b8aaea4ab4dab211aa2a2067d9489925234ab418666648a3cdcd89b6299a38a5dd3d8dd7c4b9bb7b0e6813276677afea6845423bc543cf2e53b69d9239d97da992b23b156e775776c1fb3645b2140ff74b1a2f97d8bedf829291c60b9b376590fbb36f0302b565914c95bf07de0e21b4fd565bd385ab425ecc8be5f06222b02ca845d9eec59ad47aab779339abccb899b3c0f7f78ee09c95dfbffa7849b6c34c321ff3262f96c34f50d21f37419f983850cc04981010f325b84b7cc321f32596626897d6496cfb9b50b68769001f9405fa5036098d8993f6c7c9267312a0042708a5f5c03dddfa56e62cdf1e14c6cfc94ef1d6846293386b42a1c12cd00f142543bbb460d86097368a2d6d93ed7f2bbed5d68a881d7a4e3043124f865c6e6520d0a5e73c37dbb230f484b204b77de8b2507210886c6190600aecb6c34e619e69123f7846df67903829640611f44593326188ac377274bd61ddbebbbb8fd75a9311499c6575a595c2aaceb08791b0fa3ac31e367738597138596f38294312fac254eb1b7ea30ced75db61a72f1a82a52eec7a63095d5298b34ca8adc9b276ac95bc0003e64409700b5ed8b4d8e1423193c59402d84c8f09063362688189064d80ba5a37d3440baf263c4d806a0b57725555d548161c65571c65e2b4d44ca87993b24094186857a03bd3452e97f3e12397cbf9c8e572ee9a21c3b014a6e159adab9be90ad7d9e991f70e2753ab306bf2068e1c255329cc5d1943369c55a9136a4b4269b4466f740aad42995099b34a2a4463f4c8b44167a49df9573670849a2609eda4333c6475e87df97adea5387270d8581d019dc9acafeae3acd2872aadf254589dd59fdaa43aa93d35c62aabcd879cc8b30c3121edccbfb28123d4dfad2f67f1d4d7abf6d417196069b55a3d0f1bab1b3a3e7e04c19143167daa46d5734582b378d858ddd0f1f123088e1c1c3656366ed858ad5ed986fc79df97b305b1e058beb5fb7385826e2d264774b3786b12dd28f7e67d40ceaad709d0bc49adc2981c25d3776f5029bc516e2dd461ce19c78ae4cc1c38040429ec870f20b1233e414ce041d3d9e9f1813347da997f650347a87dfc08c3d1479099b3d94efad36d71ede781d903412f7bba4493dffbf297c3e97d86b942dffffe7ef7d21a2b5dc2ffe5d46b4da35364ea7f0ef5b8bbbbcb60da193e017adf37895eded7856c83ff7d77b3e933593239f9257c0f7ef97d78edf5be7c3defce2f62de777368a7b764277b38098e4bc2ff1eaca28ecfbf1d9dda0a471cfeed42d4cecd9766bda98ead6319669b022292c85c207db2431850b856b8581871856e8004601982b956f01cb2e06614259e90b956f03146601b725937c095410a0d62ae212b50da075ee0c11552da2ccb102e473912243e422e57328444c805767954b2b07d8c326e00f4022598a70b5816424c016738039ffd79e0e781a0e7456670dbfe3ec0cfcb410269a6c255d5b14a39494bf0fefbd27b9393a202bc6f6c12820673386b4bfe2029ec50174f4fae070d7ab6bf0f2f8b404715c979433f445954cedd9b663779c487e15de22884f733f2e879a61d577de07be08e93ae935b22702528cf1bfa254d699b66990c2121212c43dc276ae8002e47a6280d46ae18a231b9111100f1e31ab2c297c5b5827503d0076bc5a392857d5200dea50ae50abb8ea19334842548502b0117b828497091498f4c2c606ae0430bb132c0080366a7c038cccfb303d6660a9de99bec077b068551c676d933880b2865d0d706492c0cd8221f423ab5e6cc5a0b0c586054789c1821e2bae3aaaadc5691c1b652ec92acb2cb1b31d8e5b445b1cb89a362711b06315e60cc600b233ddcc04231811c8ed8a208239a2079c2820c376811b4c5154982f8c1f592440c886290a50912445cae83145548f9009610bc5c3b9c5002030d29b84207295c0828010c366082065772081a806c0b3264418851c51597bbb626c731586dd225ad9da8f91323ba62b1a1654546d115a61960c9317962891326ba7882a87b014b0c44d83ab1c40b355f0206178a9482b070008b08ae132f1855f12efe553706186308b9b08a418a164edc24a210aa4482c8a861664f283129fbdb134a6c0b17b2b878ca27032257b22d820a8fb46790184d10a1049e81f6a0024f8918e4786e96880be36b6bac78dac30b6c39773983c480527f55c40ef70c1243885d3e26a20653300df2d52606b9a0d5c8808b99a9c603fa54f74d796bee4a24887e0542c3e4f4ae9ffad9f5496701803e99d52668b45dbfc4316dbbae76a5614293225bfe0757e1314e61aa976c7d71a935d428d0f4ed9df3cabe59ad2d5877345f7c518cc41a6c958560e87d7ff3bd1faa4ced993b7c4330acf53f7b3d8d824cea3426edcda00d5bd014ac73c6aacac198a0c7b5d6fac9f6955d0ac6a0e9d739653a2851aff6e22e7b1f188a23926e717929c1c4c89866669c6862646268c21a1b181b1a251afff228bc047f60b6ee0d8760fbdfd8bdd5564e1d6564286afc6ef4def0ec83e29bc5dc1bccc8819e1c707063b3365b40a2b904a3f122058091acb6726a8e931f0e003201f86e45009170330036996db24b12ae9444959d93635973cbf4d8d8738a1578a3b385bd1f0c3443c2e148382769665082e1596d917017cf2c9e9170599b40f2cbaa0ebc0e3cc843f346f320433de80840ae5607206fdc206b605407afea80243bb8b99db7a3aa747276dc74e8e4b4c8e8991893096600a14f1cfa964e6fdef8df8827d09d3b70f381ccaada6e9ff3c1de21440cb8224068ef24a2883d454e9e2001c23971640a70a1b8b7a9f2bf3098ad528e1583ed24dc8de1990af67c5bbb9572b59553caed236a241c0d9117b5cf0ec514008470953355fea4ea51a619dd42c255dcc5f69f330bd3143a4f2648b8f2bb9170df8d84ab2a1834fd92840341c624332a0d59ff4056d6b7ddc6d6a57edbb6f0d4e7d975acb07933efbdd96f5e06a5a4c95a6b6dd7596badb5d65adb75d65a6b6d47bd567bb2d6b1db275f8d5afb85a65fb1b5b6cbf6fe501f525b98540ff337c3157c2198010f8634fd8ac1a75f33587934fd5a69e908cf49f6aed65ae70ce79c73565a6b6d79bdb250ed9ca60b4d3fa4345a68fa345f68eae50e7fdf08dc5a6b5d3e5094f9c49850bbe048a552f6e2d6b5d9aead8811dbed62a2978a32a65c451d75c6a593dc4037e364e97dcdda959da8c88457649bb34693736b0d451df5667b4536cdd8d419362d4b348dbdf4bedba0a9bd6f1faca1e1a2a597061f74efdf32fdedfb58aa36fd1284ed8ef2ee11272913babcb6abc50ce126a11f24316d13c75e255cd4a800a2b2fd47caa5fd685aad34537adab12eefadcb1b87ac505137968486a09a1fd06acbf360d32faf92ed434b2851e282120f7f6068f15b8c313ef92842f71e4802714b1515654b1f1886e067f1e7479d44c8bf31f6cf6f4d90bed7da4fc4b77aa590c7a7fa73bbb516490d888a84c680cd0be809a50518e320f2c5eef22d75d18de5c495acfe54e863e7ef6006bda3e20e7b33fc8c12727727764f77f71f6a89389ef07b4ef4e39e2936c63f9a84d03532e4642fe7ee3fb07e27e4eefae5dcd58a7f8af5bd1d24106dfc3ace7ad9f85370168fb7a80b35283154d9f827c6b0187058734115bb9c5936f672876fdcc0d40a8d65125880eeec1dedc0ae9bd9e68efaa98e22e40fef5fa72048dd4507ccdd796f4f22786fc2b9beae41badefb75347dbdd9718eebe8ec37c2dc7eb1ebd670961a58219a61916f7c37e80d2b1b55569fa99b9ed8e8eacc916a671c71670471b10f1dee4c31b091bbec5dce5bd498e2ac1a2b1b99840378fdde31356fa6c994f3389d48a6b856b716d398385aa9a9baa35f3b5e5a7d4010d431124511354151044511141f9c2fe00bf802be802f2028c4c98aa2fba35b0443310cc3f0c5bbe744d10d7ae8216a84b9a90e49a8a86389cd9f94d0b4a6c655a533d9220d1768142c288aa0f86008ae447f9d304714be1792f7cbe7788ed35031f268f16176d03636334f52545b36a333716fe2330fa0d025061ab56cbe1e7199b36c7d312c6263f3a3f1f4e1dbc7f63512dd6ba27f7b7bb2e086225b1c695ef4fb9bc6178484460ee89209b43de2ac97edf19927715a133a6547a8b94f4a68ece4c317d4dc233bb6a0cb1f3dd8e3a44493beb42ffbaa3f7a8a2aed066194e820a94dc3f79988c2358cc4bca9ef287cc4fca0fe87c24ee64dc5401e38a1fd4b0b545b1887bdfcf5dd05cc01273eaeb63c862243bf3c6bc4842e810232ff7bfe4bd9c17695a12398edcb5965c7e3b418dd26fb2aed915d51b051107242b7c51bfd7a2c2f50b73896a5171fe6a7d800115f11ea78c4f15f1e9b5028d85d62210cd413ba4d47ecc4c92af33245689991486fe0a059d93091354a9fd2269a5097441104b51d3d7d3b428d27743b463f45bd3c0cf882127f8a54a431ef31ef220362ec9689192dccc912caf2d8d714cf05edf22e5ffa2cc6ee700afd89fa73bc05fcd397a91e57d513caf2b8aab6303fa81c9837f54b0e4e352e8e40374903b2062cdb465de9a0799cacb05d4710371d67d040812e9d86daee16d48c6df09de62c4d29a5fa4728174dc5113c8993f5f55397b1e55d1c217cf1290a1c45115e5ea3e8f69927a1d9a39f5edaa3d16be4f695ddc7a6dff2124740d1b11451a20ef105558a6390d576d8e82fd409fc9a67c175429dc4b769f9b95d9e843a917e6e4d4fa3277155f5999315b573fa9a7108cd9f5e44edd4bccd78dab1f99aaf1987d4bccdb3e09ad8061a5f1fdbaaaad2183150d8a34b2c5462a01d7e7d9ca57b390bac325f634a2f5f1f8bb4fa9a619a3163c6abcfae3f63c6645b98f68569894c4bc3b446a6c56192f5c5fab4be680c8ac2a0a850fd17141d4251225ae424cdf2a8e9a2198d4451f47ed4752f3b68fbf8a70b4d4368dfe5bb071fcc96589fa159ec8a0da05be441e3697e8a12b0f9d30eeaf428d4a3c621ff35ef58c85957268ee3aaadb62ead0655fbf2d94df29363853cc50520f87109d1bd1d8da5ce1ebd887af9745ec6e964f823d4aca18874b9dae27ff85414c106656355559f064ab6eb8b8416d48e1d1d13689d2d9eca90d23fa14ee369e7f4366f73a2945231fc93486b46a25883aa194f3b356ff336354f51f845f1f1d3a0a6ab868e443a5d34a8e93aa1a64ba348281e36f6c3c7cccda15c6dd916a6aa3e112123bb3e925d9fe66a7dcd9b5a9f020147a7d1487cfb7296ddf52d4f3d5927de12c0cdf6386b425172db150395f6d56424522067e15ad2dcced532767d8f1539ab7b1c848168f63fd121caf4a16c68bb98c9130023521970dffef5a8e8bf22d0b39624593e0a74cfac535176fc91c6ef9b9c75755c123ec7af0e6c5530854672de08d9b19c397b8f187ad1ababaf206885524a29a5f48e48a407499774499774cb925b19fd70d25195d6bfa37b57fbded187136dfa36553475a21d5a29ad740704dc1593adfed1b524bbaddda3d1e8529a17ad090e0ac305a34bad08b6cf66492029f262b5856f586b93e949d28b89a81d24e8ecf0e8e1c37f0071d263467cabaa2834dda5955927cea2ab18b9cb6923229a5966161eca437b68cf952b56ac54a932654a9428413b08070e1b369ee8d26462812ec35dd208d2e5b4ed7016fd189afb01a4e5b7eab5284b0556bb84d15bcfd97214577906ea1e04af8d4d676ed3b15c9d306f50ea6cfad55725fd11258d41561bfc917519cc824852a9c8c3c62460612fe8d84902312ff332a30ade6bb43057996d43194764abad6cc5af00d556c6016dff194fe8d28be1b697b9c90c96c459a595d18680886cce6295b568df9c557a6ebbc7c459dffb7b4e7cbc26e5aaf482b67f6ee2ac0c73d28b6aeb03aa2a2267d1c7e16e379bad560302faa13fbbc4b724f8f6b500889f4abf87427f4db2e01bcef9e8412fe6ac239eccab7951bc359578793e405cf17e3c202fc89b794c44183df82390c6bff7d218992fb56966c69724fd19a819940925838a41e99285d2847d7f74bb1a1e74e9c5bac7324fe2ac3a7a7ffca3df1f036127ce72797f5cc3369817189812cde1891857604a2fd32299640fd37a605a104c0bc4b442cc21a60926e9b2162afaf77c2286cf7641d52b4efab7a0aa9093d54acdd52a4ea2ea941bccc6ac6d15d95710291354a298d13b5289bc98122a9b5e6c832ec9d36adb7092cacad270dcb0b27fa24bcfdd0246600153f483f9e0a1e3f2f24173b62960a5d4dda99d6389d2847395832ef3165e91780c17bad4f59dfc182664cdb1938209290c09492105138652f8ff4fc1042143424c48c1042129f0d8e164fd9bbbbbfb4de79dbe4ce0b40607b43fad392a75af33cfa7d3b3bbe7dcb93b9ed7babbbbbb7b16c375a8e2232a9abe3f79a5fc6a1241144752e0210e1b9ec3599966aae8877b52ea3b6a8bd4399cbc7fbf24f30c73c407fc2e7fe821d22e856cffbc4f1852bd563a8a25d9f7a77604937d6de1ac76041259aa750674171ba1a5a9d47b5ab167ae39b38f590c1d9810f27c9862bc40488c2443eeeed65a7c7da59bdc7edc8004b95928b11520d111a91e0e3a3b39dfe5a54bbdabae396b3d83d59b8c5b0dfa965a6badb5d6e69c6db6d65a6be98acc3868afe5e42875ce3165649b67124d2dbe40ea08d21f4ed6eafe40bcd67720f569add4a33f80d4ce6631679df3e95f1c244c3afa0032bf9cb9f93f9cf4e974d2d19d3a75da7d7eb04301f1f163e6a68fece3079089479d1bef034890f9d9347db87b752c6aeb6b853f9784efa202beb1e4aa4c24e7fa305deeecdf2e7b9fc7124c0920ca7ee590aa0438712e2da78a3d9f66e2cc7d6fa53b6ad7d5ef7e87b3bad17d474e0e27bdd27b9d45f7fd71458257afb5d6ea830369684c7e689746fed0ae3842fdfae4b5cbfae4b5f1f7983875dbaeeb280e34d017e8adaa6c89d25bf5e8ade691de46cae44669732ca714dbbee3b107a5511a8d4669777c13e904685fec316facb53ec48f61a2cb999bb750f46650d11ec270dba83d836060b26fd863e23817ba9c37df1575c5fa1eaac7bcd97196bf7e1feb1127497f451d75356f788cc0d0393976ac3a31fc8aba1b3cb29f85ee047a83f1c400f0e98f003e7d16ec90dfe17f145500fa412e4b3b93be3bf90651d349d2b823fad863ded8afa8babd26cae9d9c85fd617475d51a6ef6b09f54b4eda3a96ee2667f96873d6dac7045126eda4b5357cfb265b75c954c7f106f93b3d9c65ff6bd6ae56ab5ccddbe6941529787fdaeecd366d3767cd21402ea5a6284a6a3b49e0a90f63c0d084cb1b4f3ade9f76de1b8708512e9180cd9399cb0504f0d45c2bd83c99b9bcf15e9b27b37befe55155f7bf6fbaa688bbaf36d8a84beda8646177e39016306e582be04cd91ac5495b6f3627ede906ea64e2cc6d730eabad371460a241e307bbb08a2248d1d6facf179af4e3aece42130c5eb1973b8a6d911db243dbbefff8cf44e11eb1dd16561b586d9ec55be2e8b7ca03f6dc0b8e9ec52bcfb6efe028a4342bfee859552610e89f23702208637891ed86cb712faa2df1ad38569b7fac4736933acb75d6d519aeb38ac4b63fefbda69ba61b05bb4bb744b27d6c4dd67a1722c0e68dfdea40a39363fc1c31ab2da761aaece340eb615b0b826d1f26eaf09e79631fc4b44e6c4775a44ee68d7d87e5ac75149a8ef495c22cbaaf9625409fc9ba77d94c06524b7fae264eddb7d2ac0ffed265277bb2a3cef7e14f97e509513eabb47d612f59ce5fb9972c47937821e7e3ac19cdf9d01ccde5f134edac7ee9324bad5c97d5d6293fe8b3da3ae5f17b705401fcefc551052176c09f2e15be0fc753beaefb1e124d472a4473aa1774fd92e674ee83e50c83da9115326fee53afdd9496dabe0fde07e99eb1695b22c045143fdd304193142113c7ee8b45777ea4c5c9be2d4e9c7562002e59d8783c652a9a8e2e1b3de6e425b368fc32496847e2a4e6b189b39a38d7877020dc03fbfaed1b4fd41b4ff47b0978ff8d2a08b123fef72a84efbd043ed13f0c5f1c4f10c8e38e379ef27b3f5de17f2ffe69e77bf1bff194471d97f8d4048356dda76288ba348b9338ec1b86c75c56abca5f232d72f23eada18ae87be71323aad8f7fd48f7f76991498af6f674f24425767d2c7db6efd7b87f2f5985cc9b28741d6fd871b56aa9e5206ca212105841adb5d59c3cdda0a98dd6c09cdafadefe8f89434d360863db9f3398576c6bb5fdfc7ebaef51db7f7fff1b870871c79defbd7188f7df78ba3f5dbaaaec0ff91e1c4f9705977d0f89ce23051ae9cf0bbaa2ec08e23649d1fe270880fffdce37ee78e0f43927bda33cfe9837f6b71785ee46b2050ced4f713486d21e7e8a6e74457dc4315640b5e5bd37522acb99e8e94ec93901a23567cde0ae788ba7bb5d9162d3a744deba4374065d69b2a9bbe85feb2f20f4e9ff7096a5c2e6769dd556f7d4be5e9e80576de571e6f7de1b8784b004096aae3cce2e67fdd2c9f1cad04b6c780b3fa52aeaf6a9934adfff86b3dea90d67fda675d4afeb5e0b8a74982167edc866c4ed72109a3f41106aa0bfcb9ec53c3ccfbbef7d09de77de683deb592f5b6bafcddd4e8e93d6ea58fb368718a6abb7bd3fc840f3b76eadb5d65a6badb516db6bad75dbb4d9f71e53acb5f689edd3b9503444ada5d89f52ad35d5945e6a29a53b6eac723e7ed0a7391f3720b51fb720b55a0e941a7e76a875d065de3805def3c2352e0e6b2dce39673be6905527a8eaf07056b5b9ec0925766497265b6d3542e7b4c04d8edcfcb540fcb8defb1b7f288a83c7f7e5f77dfff170d677ff334dd5a50f7a281e4edecfa2027c6cfc7f69fe9bc71c27ef6d0695f3d6e3cea01c17689b82d0a5cead009c29fd9564c955d75ecff6afb59eed5f0b73ddbae7d0feadfef7890228120da82f846e8a0413fe3355de7bef9d10c0ae5955f705babc40469c600779ebcaaa8a3eb5b78819c26d423fa013c7ef944da3c49c75a4acb1e97b9a7e9e38f7e95896f6c4133537f5a6fb14e7a4df5bd7370e59c1e58d3944e97b65f3e9dff929da9d95f70437779d803355dea1edd6dac9c2955dd9f5b1b20930439833a15fa8244d3746350915d108000000004315000028100c078462b158280b232d583e14800e789a40725a170b844992e2400a21638c218000020001c60098a1a11907873363330882552f37aed4698229b932cdba3cbdf14598ca5ec954530faa1aca89d51318855aa1b982490cee66057c488c69b504dc36a9d1f7002f7d6aaebb45302114e954b5b0f985b5c50d5fc882ffc3172b7dcee5757d4a2eb17b54428fdc0b7016d64198d21ec989f27eb90e41eac2808f636af3f6f1fe2bb45ac1872af4b996b50f4331453ffc52488b7ec86992ea985508e17d5ba7f4fef9f61a0bdedc15abee1a1d81c9afec393faa45cc5149c30a0ba7608fec44419f9a4b404f3ed25dea2822cfc0a7c26e76bc9ec712dc18c61baf5d40328828f4a7f8a32ff44f20bfe622d81e4eb34e3c4e5669602f34d6f85eae8539f780ae886e53ba7e81819869a6d47f233f738ae33c1b57f1b515cf35d3b31b1e630b13303b4e298f54a5547f8a948201853c65faa578ac292564229210b5d79e5240b402c65f75928ca5afc426e62a7040700895ad633fedc8ca4820e0711c0cf62808e7ef3daf87eb680cb7fa676e67bd8af3611788609f4ff6f496d857f7def944d697a7f8a6daa651b44ccd2f790b2d7081ff42468d9f3171f6eb830d0ff8fa92d8aa5726f1a1476300c27d500840e9ef8538142fe633ce1af6edf45d78864f240e7b55c267c22702bd4e2d57b715750caa0a7071aebef962b5201034d25076485e5c7bd5f39c7f1051459ab5443da96794d1904c2c06fc610002f2375bed4999a80856e43a0ee2073525e5cf78cb06d678aa4128bac17a5303129b20426e756328fcded8fd10fad3a0bf1d977c4358b10af7914690f0409e3d973422c60e1378b6b6137a76d0d8edba20e10113f9431a30d5038f35927a59f1013b5c7444edb7e62b343fb13ed0944afc636b6866ac66424e66773e17863cadb464397539fd445e3facb4c8dbd03f73fc6e9e844c355b532fa550980e4b7a764da50229f84594ee5726381b2c93afc4c16b941395f591385b536f1c1bd54bf356d92464ce236d4273af5d499913ba47f53aac79ca42aea32a6d9e9a8dd91690e6a6d56c1427c40e04406b1860434450090c68413a6522ca64f26768a34798d79c429522f342eb05134c79a368cecf7abb6162fc1f28976e09ef25cee145dd1bf9b277719c50a5af53ad2edabbd6dc65f6560cfe0fafbd050d4b9b514f9435306da004f95064e5b6ffb0017ee598e80f9585be3570812c9d68cbcad25de28ac9af35865b67c428b6d0d55eb9f9cd0234508fee4f2688d2137bc252461fe24edb4383962c0c99a606b8ac63a49d1bc8e6ae89f026c758d08e076fb6dec5e5504481914c080e1883ee9209b7e4c487294e2bd40d4897b471eea1a70e8a402e582efbac8abb518a679ad365b0bf3b68369a456f5b7c3e9bb44110dc007e7f2d6f789fe1d55840351c7cfecc6fdc2d25c90a7200146a23187c3361635beab0230c1aba19d26544cd83a31f7a3b93f7d3fc4e5ca467bfea0342d8d305c3dd51795301886bd94b4b8d6c95aa22ead8035c4672f57913a03c246bdae4f72d98ba8896aa99d28ce04ce58b60254e6cfcf859befd0f3d3a35de61fdb993d7e03b7483a0e5555277647ebd2edd7bab375f79e4af45bacfc410afe5dd93a753914db972a981a4a65469d8809fcc30f7042b2d17e0e467f4ea2a403b91b6459db12d9cf52fec36846da8e53502dae472febad49fe1ce5bc4a2e773bd1ae8fb5f8b1dee4f828d66babbe3b40a780a2c20342f0b8984744ce99adf4c180abdc64b7fbba966e12c0804f9e8d1e75622eaa983f2350932a0c46e884f7c9297fff147144c6659d9275e4d6bd294005dbb9eb001d20b7ccd951b535bd4cfb854708b820c0dfa71a73d662a19aa52d2bc13ab8fd67a15d606ede58df5a33fc7de74170c05fde76113308249c41d34832eda241525823e5562c32533b89e772e2b8e801faf8627e3b0a90a9296c27b46c2de4cd0cf7ec1f22dc8e29ee045b5bfd4ea654dd6b33f79593852608a43659743211bdd92399651cfc9cff4992743a99d66ee2a8093bfc92f574f237c801868de71a32a500b7c37a67e466f8c7527f4f06f4db6332872104fa9387c3072cb1d8384e2c922894b53f82e328724b8c7535ced675e054218787c491c217169441dfeb195c549b661173a61a1dab39ce5da4cec18b0f68897f91b8a658b1fd7b90bd30af900c304e27652f32e606056bd0f37ff89a2157ed27982fa349af6e0f1141ac8541f160a6c7e3045f6d9a42d120a32db9f55218f611b353bf7bcf61de90a096486c2e2b51fc3aa6e6de661e469a6ee8dd999ce52e79d3fe55886290f4c451677be8dc1aed793bae933402b43272ff6e1782e19e3028a7d2a1017c9960291249e0321cf473ae38cda01983f3c30adb1dfae530ab008b47fe3e08c815427c19e33983a683fe91e027c25041baf32c378cb8831cd8777e0fa70b2db06ac2f71883d46f0b833cbcff5c7bbf856ad03a48676b1fb6b83a9509318734948da11a2d7f0f25d871de76672dab8f7f9f5092aefd073f8863b55011fefd8d97fc38fce8a16a7ab5e922c75895cd925549ab42e06cfacaa832edb0a359568eab3d82108bc078e047c31df16630bad8ab5699f29ccd9bc1e4f45f274a545263e4854516aeebaa70c28c14d3aad7e84ad8887e5a91c7fcd32f2b07883ce4c1fd8a7a3364a7338263abf19440a29aff9989ea92d83f4f93c75dc70fe1122a7f581c4c212659af31e383cf5a5e0ae03f101946b5dbc870b519236f3812e1b1f1c69643e6765a6e424b7a280ca92f8e969a087304a1024b5d26ddaf6f32570f5001ee00624a87228ed93f8913e5845cc188cc94bd5037414fabeb308ecde7b8baf6216d7caa4b3bc8110e52cfc24cffe8d16bb9c1aafb9dbed931ce604c572ed9ac27192df1a93ff05b4e505e326e04b2765cd60e2199707095bed0cbcdfe4552d7d21dcbc578fa3be9b0b123d9ff01d53ac30416820c334f86b25e395d18ddce38e0efba23b6764db78896a99b34bfaec6460a8895b777e2550e2d79885bf7983b841230bd50b90b63c24b37b52792ef045b4c5546e3a02478b9b2cc320302478573c82517aafbbd62d5f444a6f804c2a24ee4bfdfa2a8282ddafbb4335e259cd878da3cababd9181eae44400d20fd1699294e319c88cb2106259de9b25026df01716ef8cf11eb7d33d7bfb69e1aa47311635136de23dd55448a3472ba261a34e5782f764b284a13cdaf9c13d5ac50c21c839aa309ae9ed52b455d1a72ead54d1e2284597b4b3cddc9e2136c101d3b53c4ec40cbdab85c785e4c72a52022e2162ebb28a11674ba8463b6f145f7529bc246a3552204fef31f488271be2163b57e11f749d33fd943a3dbaa5c8d5fac781b81196c18a253da350d29023cc2f58bb00b081929b8f7b81b9beb02c1a2be062918d5b4e62a67ce6837234f447336e6692187b707c565a109314b92741f9582e42cf7bcd754598d501085c142f5f41997f38d7132f2a207c60f8786f55e87db10e001402988199e6f16ae3065af80a62f9ab6751bb3bada687aed8d27f732b938744e0b5c34ae185f3a96326896b74735df5d24d5d41016dbab2ed126b92adae886598797ac08223ccc440b2e120c4e3c9fb20d22d6cec9e91b4d97bc115d2f194725016f398c6858229800a4081819d7114f3b7438435674c4d9db42a9f2b84c0f6a24e76f58c6565f6a20dcc551a4fa0e4a019b1f4aa1dd61f05413ca597024fece04e88f094a14e6c27daf0e3090da1fd9e8a55cafc51eb3eb6ecc34ce6b118c7540c8dc2fd55b4f51debc1cdb7ed7ea174400a5f4ca6e6f97e56635b6e3a6a99649cd9f0a11198dc33e7666cc8035c3731ae7a99bb517a8a1d0eec795821e5ad43e0fe72f6339a8887b3a326f6bf2fb66a22ca532a53cef70bb9f29c84b8e44eb29c3ce0a64d03cd82490e17f2633cba51981709e369a03b1e7af6f3463135fa1596ba1400f9726fba27eeecfcfb14d4d283cb725b2a5883a158b7af6077e61baf85d94acc7b08ca8a5417f5545df77599c86a3bfbe1a0e6902b6411f703891cece486cf3943ac46aaa2d7a2fda2ba13d2e423dec76734d71c0ddef0ae9536c95aa527bf48fe25a7b03e45a98d2f119273c814613140961169ba64871c39dd499fc56af1a0ae52ef50f4ed3ddff9dba0fa894481101c18256ee31dab0395475fe097c404269da0e6862f2a9ea0f1f4b7105626c5b680328e12354435600d95e8ef415c188373e701655ee8489adb8553b47d1d31c1b03c15d98ba2005535fed0b4917e50a06d70a40599bb20f302ca331264f7ca9be2df92e1b620f34d1150c881a1c7d6721afe3f67542fe98701ce200a203529948a021ef08169acb9e3b0471634146c225413b634e0621225d095316cd3596a4f3a128ae8c35e4dc10a47688cb5e33045d13c06344cff73020a5b4c6ea8df6661ef5f9fcccdc45bcc33bf8da20cfabcccc9d3061d1d4f7ee1bfca27c333d0442035b49e27bac3c93c41b06170d7bdee79d1ca01d773607cb477d1161337ec4942e06ed04f96468271eb06324bba4537275c6ceee3cc1934e9e490c0094b2bc891d1da1ce959f3d2adae73c856cf7e12e119e97ecc4f21da5f31796a69a5a00d6e9eda63d7f3dc20a8e2904ee2b149f66030d497eb9938fe30fcb6c3bb9cf69aadcd0cd980c32b5bac5ef35600a79f08b0bdbf827013706e102bed26b0b115a45fec7bbf643c2a6c0e6b48ced3895cb58047f151718957b052f7b85de8b123c187d990d4fcad438a6c2f7e706b4f0eade5da5e4aff963e22afeb05d56f5caf76392aea8bb7a9547bc80b06a1c087453a8257062255f4681f858544354ff906a367721ab6dd84cc99b3b537d581231801c45fb08147855b8fa2585edef9622f2fca3880e147494be05c8f57cc21e127848ff5b1e4e9c025de56cbe4ad3b84a154e1c4b262dd6087b531fa286254c262f92dc99008671b97553e381363cb21655329115c374fc8bad1b45fdd34f9b8ec2b2771c006bbdc5dc3a21e41e9364693818149fde06a5052ea3f53a80db2bb2960c010bf14e01733a4126a6ab632427e47ca5228d55950addfae9281df0ae10c78a45d4c15781dd84e5437059fb6e22643286ffffe4d2246144120d015b600b33cbd9838bdf15df4048653fd2d6d1b33ef2147d568eda3a952d280c508283dae82978bc3c933f589d098f22ab40f3caa175d0a1ddc9233dba760cd57fa2550ba517b8f162760648bb07650d746cd098552133e092b6ea3f36a6b1b058013ebc31da4c02acda72c7c6de34fb1055d33462f71d9f231811347cb2f5adc95799945dc993e3e187725d57f58b766c6e0d568b02e28a2abda292807828d99bba6db401dae686ecdd748d72c43985e2c00623702d3c3e7d5db0e29ab3cb044a7bae9acfe5e2a3cd65e4eefa1fbb611891487f8e4c5d9481ac309bc2e633d4e05c48a6142da6c3e22730949d19e0ffbaa8cc7217c42d36da242c12353ccebddbcff4e5bf68ddafaae07b62e1b1b1b3a86ca0689f2c0f03c5be27d9f36187731295f40bba8be40228d0ef684084fcebefc7b3937b2a644fe353736787ee99ce0d7e50a3b8c9d6222a39df7dce9654f8b3671f3b16fffc02b4af853c10b584e16ad44088a6f95f0890fbe5002a90256ab106b39b04e7c4db84c9e013ec068975a204d550e510122dd0c68d47d26f200074ab1e4d057895f91e0c9cad182d29a9e9215e80f063de77e50ee6a42b0ca0e4f40f4d3e5cfc69faae11cf00f4b5a2d82f44a041ab4b49da562829232a56b3a57a034fbffd0ac2b097d6b94f049fd08df485e064e36297da75ece501922e2861d70eb380a0a3288db19b1b71e4adba50c5732c5747758c2aae16985d0fe16be46a2086b1fe3a807898dec874f57b758d076b05cc9106100c9afc125761c150e4887646c1852a4722778b25f976d5caf6aa39dad588b6146aa23b3bffa62f3d844050a06c3e73eb4ca39b3edcb5b17faf9d0936a2c724fae0e13d917b5ee3a03f1bea1c52686a88bb3a1566eafa91ac043e46ad81a60fa90f3c0140a0632626dc5d2ade405492b21753994a1a672e43b52cb8d6b727c9e93ba1bffbf783fe2c11a137860d4abceef2f32febf330d4a2c3d206f713fc5f31400ab6a38f91aff541ef1043c78ca864e4cce8a70a8cbd311022139caa847219145d0e2f380bbdc8a0d5a9390896369945de876ce34b6f9c6f47524f877a21524347423e0a8afb214d6f31cb9fcc19f700b06a8505bc29c75046c060b518cecd2d731800fef950d843afe0cb8973b5d616ee25f2001ade7757c4ca2edd9bc103e88c4210f2c46c464422c949e53150ad7591dae21e8bdd817ca3e2e90f61856e541a414b0442e0823625da12ce07f5f2938430ba229a3d21075ef638bdecb9e6c0d053200e140334ffe32b744b22e466d4e5bf8e886e0bff1c2fd1faed6f821133d9299520c990d4b9f5b2fa929f3567d48b39502eb885d8fd4cb228363b96ec0476a34c01e820152533e0acb778992cee203be6b92e7d39bbf965c34e74fe872039667786a55bde4173c9e510c01381e101e20f3d09364a4adb4c722a55ddc21448a4f0f7275ffe3796d926ee40ca83be11a66f99a16861c8bb5dd0af63fa2949cf1359d9da8d9eeeaaf36499ccf305fe35928d190d889ee6c982ad1dbce041573c3391fdc17e13e5977f7c315467131c0f2743f5c02d8c21889372c6e29416ffaaff72881b3194f2e9ea3dade1ab48cc5a9afd24bc07df656db4ba6e2a8b37c7b9be4303f8fcb10c48a119b88dc149048e8ac0c2f9e1ac3407b18631f4bf0616772eacabfa8aa34468616c99c86ad14cffb114a6fd2f3563c26214c8c53bc1d9991d5c39bb12e498db1c452c6963204f258eb61b75c18e07d33dff337d87c9ee6e9eb2117ac28d938ff22e2ec2f2b8432b07427fa2aeac2d0b88447ae714ded7b7e8a8dff1078b1b8aba7c9023cfba4eb416016980cae6c0f7eac9237039e6846a59ca63e0a06f8a82b6680db713e9468930b865d23feb31c3909fc202d8620f167caa7e791ef53916a4c3daac61ad7da0c31d9a1ff7c01c3ef13a4139401cd43d0ca8dafef58a083c87f9ab4f0d5ddbd75ff9fc399f99e615ff882075655d14592073f440cc7c9916e516b8742782f7d6f27c796cc90d43bdd9fe08ab17e8f10fd8aae3626af85d8f1efb41c5618e8208a64bf1416d916831cf668e1a3230d898f3b6c2b43d2a075b40eeafd1b18dfac68d4be6814e2b387623819da309ba450c284c4b70594b2e11292d09a0387108217080848971f66148bdbfacd9e37aa8e04d85c2422c7e3eef0dcac8b6d1f1472998a54aba1809d75113c75fb7fcd19ce11370f41140642984c7fe298b82d285555cc8a8058d4c584130eb0af914dd3f6174ee213e342e1a026ba16231ba55ff024da77c2ab194b8c0bf57fc4913baa4ed10a1d1acafbc4a2c4514ec440026a342287ecd03f9ba9c4c20d1c9b126eac4dc1f40e109bf2c6037a8fb8575c8241bdf65025add8a0f851948824c86e5cbbef8de8c63b6c91c9983308df1ca4690252e6641945846277eb97f3d148392e22ce21603ac006c76127bcb5a0f1d143475c5b5abaf5687487f3222d81342606ef8ec0faa02bc8ae804ac6050bf44893356ead08df0861f1e7f0aa9e8023b57d38b714c8fb211852ef30f8a248c1aecde59d168c496670f50b73bb05e974b8637c4ed40c4191f81fde3041bd8d7ac3de7024bbe8f20b50b2277a0dca275ba22ac1b178f278d2e20d576e4a7b0f2a5b58f36cb1cb2e3661149cf62f0b95d224101d328c747539418110ce0884ecca2ddffa116a1ed32a551015c60e36fd0b4f466bb39a3b60e380566c0d7a757756418cad90bf369ca987ae91736f480eddc008f62c5febe96a45470dc2187b139822eef5a365d0cf25ebdb743f8ba54907f7ec440abdf0140f8f8c40cc1c6dd1423a9394ee8ae3411ee9335da16d6822c1362e8d8c4f065619bcf7293d634200e1dfcc3e324e4d9dca862304e9187240d5d0a887a890ed1cca095bbfc02dc2bc93134bfc07e1bd8fa0d204be836373ec7e08cc2fa2ebac03a3c88521a5091cd95d591c346be465528732bf61f4c97fad921aee16214c4630dc57210505a55897ca0a9ceb25d6e36c9ef5491c016403bb3643e2e4642fca612adeb083be1fa1281ae87c66ec015a36cddb9e2b4043e5860f8b91dee78af592b8211d6456bbda4258b1f0a1541440fed2a31006552f8860fe022beb0516008011e69c0c1c0c7f5ea7f6a9d074af34e4b3a03b7c6d5149f0fdb11ab7dde484846af02617233808c08977c8d741d316ad0528517ebd2de9a3ded7b5ffc1ca2cd9fd1e6aadb19c1cc7da0ff60543e1c049f626d3a01e2c61145a47ba69ec4433391596dd77cfaa9d9203353c91d7b32b70edce05ab1e935dafdead35bee265bda17fede285cff56b5757a184b6df675c15fa704f8142a33ec93e09f7ce81d0b54bb6b2701236c76758c45289b2b207d237433a4940b2a488182195dfc8e1ab8f769a0c21ce3a1e39f55322e5764134f659ef0eea9a0846d01f2495c7273be06970f6ed05586d2f3c5010d81ca3ddf08c90d791a67c4eccb3236b19d62ae868bddd99eca93c4bf50bfebaede60296832285db712299f6362267a1574b440e6fd43c0c13f0cd425de302131e6916b73f0f2dc26631189025c8002b160083d30b12198e809d2d538133901dabc61de8060acffacefb6d3fd2ae4e7c3b16e2244894128c94c4d35065da07aea1412e9cb822d09c423439ec115c5b4bb4b4beb272b8e0a39a4b01c272391742a448f75b5bdd2f05fb7ede46310ae6cff02b68526fc7aadbc8368789ad52d11fc991a17a60c0fb82863a17381e98fd1c1de217a636caa74ebe391916a15d9a93eb5da98ddfaa02d6911a576dd81b4e7eef598c5cb324461910f0d7632a3b44a66aad264baa411db7d255141a9400bdcb10076285ab842722c9788f267f20105c2e938b6608c724a506fa4b0cac143731adeef64aed7daf7476f75d8842e7211184bc5580083ea49f3df4fcd44ab099640fb8ab2043ae263a45fd4773d24e129e78b1837dd641d116d61228f98b53fd9da0ef5fea8f219d880dd3679b2e3c8a8d4c005e66ed6452e3ee77c25ea6d7d194e655737b0eb417ceb7e59008ed356dc752ec18608310878d0a2dafc1f3252398ff85299259ae3d0efd7a5e76af07e3d723c95005cd93feee6ba09dcaddea1844f80d881ec2bd3da50a07c86342597abfdafbad09ce2fccc7664e58555e906d2585c9b7cbf7aee6c3076ecca2436c8f7dbf32991029bb235b11e8feae105fea656e4c34bedb305ebd39ef3181a0240d8c40dda6f4ac908f3c7183518be2183bb9f2f2c10ed05f45230385b1e03d0891689caea4f609675a7d7605f4d6f8d0394d819b17cdf5cd6dfd4c7e6c01faeb231c14a0fff6bd18a9ac920bc6e4d88aa94fa17ec18d34de717a91f74d7122e7f6369cfcd6d3cf08d251cc56bd55895903d6ba82bf12d19229f3d960c5750944f2f6ada44508003e5738cd91f50d411a9d5b47780e86235b875949b33d14fb1c89809ebcc20509274dc470fc8c44281f7f7719ac6174811a39feeb6d24a3fae95346b368be190a781f3d5435929294cd8f7e1301abc5cb78e270e6181a6a329d407e7ffe23878d004f540870397ca7c63e47e67ec466b14c09b5c51acc65cb4b2d575eedd006840527c6dc3e9b785af186bff6c297d75819c1c7f71088c1a7995b915afa7b224309292949a447de2ae2e92e70ceaefa54888767342b588d6d70b8f9e8f78c851179a2d60d2cde0faee94928e3014fb877d93715a67493c56407f89f56ac4a5f74c869adae915ecd4a7f50fb15cef3207a1ec9d36d09223118b892fdd44fd9d57e1a0e2f2f04917ecb0a82290a8f0164be698fe4436458fcbb4ac945b8b08f8e59ba8dcfb62fa0b4ddaa5a69b9cccc3e3db11057021a88f42eebbcdf26a7185b3e05d8f4e3730fe467460dae646cb4fada266d043a51be18ed726772237aab4081c5a0f600d91f3a05485c2470f0de87b664f59214112e690afce73ca86f2471327e2d8d2ec72de7261d4171c709d8e3fb98f308cfe6abd4175a1171eee4b8fac2f27d1e999b42e5bc9b6d8f68b4f191a03808215aacd081551aba0fb1b50313f066fbe859b92a7d292e4572c047f838199e2d0903f1f6820a1795132841363f84ac487272cfeaa3f0a69b9ce524c30385f2274e24c6a4fbd10e60113c1d177898b1fac5cb8323d4803a4acaa27e9702bfafef4fa0de7c86a196340e4e927c50d22eb474c4142efde970eb6b38aec0c81da009d5d10354d41608c731bb4fc3a6fba2e09dcc3af9bd721ae17b4dc6ab18c9b4b18cc0569a1636d286ba9e84f36600a7d6b0b8e85d41dd2fe00538a24aa800369d82e9fff5ebd71e5d31af9bdeb65151bb49bc3285ba175ca4cb354afeccf95878c8f5993d5fe1b24b5c1e1a2babc89b6525b97057c0c93da0c7c437958c97a82e86c3bba05fcfc52e940a1006a8c38032f8224de95130a106eddae5b6046d6730cf0f69eb0c32e5abfcc59b35cf954432eb9504aea5281d405d248804827562e274c59e5ea7a5b01c5cbe810abcf1bdfc334067647d04d83d919938c2c33adb66cb184b57de92aefa6b5d3233350ab019d8272eeb653a108b9f96f5c7d653292b255c5b98e98369914b35c83d3e7c4cb3cfb09fbdd45b9831f6a8592f5a29987811be6a8feb0b14af9a10d5aad2c1b479bca4f4b1d48ede2ec189566238aedf0f2f52bd58bbca7da09e734e4547985aa642ef56234cb26b545fc219577ff800e6112f70fff02c9b88b9ff05b879310203e14418b18c475e2aa8f6dc1c7bd5c2a1960d3263df43b2573f5a6931c8ff8da281b06daa45f4f288a05f98e08e3ef943b44a754c152ce085e2df042dfd0d08df104a6bb129485f1918345436e706bc619b7b1c5b5ce9da40f11f7d2ebda99385a806b2b8bd6ac7e2b73827e8173c27aa16d72e99ccdece5480f2c610832bc1e96216de28ecbc06fead51c2311d20abc5dfae5e0847644c7d2dcae3a1956c6edb6cc53e233aab74e4d564f8eea1039f59d1123b9884ddcabb2428d90572a9232157ec670bff4b7321c426b4cbe9e336b7452b1fb97f72a055247652a79ec481ce8e8fb0a080b62da9f7d08b7f28ff6d6ac584ca8d794d964838aa400685a8fbf6f94cac1969f57c0d6deed25fea774a29700972371759a7c3bfde7f8ac43facdd3b68c181a9ae226de8d7fd7df1d5edc1e7aedc4239303eac6e8c2114fb831051c132388d0f772b9297401f1ae74fab1590f89d264b460173815cdf279f06f06151147b1da4796b972f3482acd6c0d03552054bb3ed4313754458ea9580c60c5934a13cb8ad5b460c83e443fd3b3f75439870a7ec6a5ff258147d321b67e2f416981d704b2b0d0da660d700675d0cc8ff90812be9a46aa763fdedffc2a9ae46815a1950bfb47d43ed2ca3c91ab939edf7210cbf7b289217eb34f5df8cfb47527a0ac9ea5c62f3b14d6d14c48f88e8fe2c0891b16b5abbb50b1b44c2c72626783ddc2d1833d7952d21d670535d55144cecea9cd2e85435401d0b0ffb63bb968d310db08e49a2ab2f665bbcb3910d9febbe9823ea74e7101371187cf8444d7dcadfdab027a601c467de424ba493495e9076bcc8728843b0c635662f7f806379d300f3fb351cb9e51db96b857878a90cbf5830ba10517f758ff8f1aa010a1c9632f77717acf23c86e2700d91103cb0796cc5dab1403a8c9eb30cbc9b3c66208c45ab98180eb3c2e99446c12e835b91e920060ce48489b8b01fc2b9996d1cacf66f9e238dc937398dde2b3942b4798fd9dbf4eab6949e4116bb3d1ca991ef5c4c0bfb34958f557cd44701dde57050ba90dde055035308b13d6551c03fd3b0ae22349a310086a9ffc02bcb7bf37229ccbd56cd51c1db73cf1ab80c28c59cac3b60fee26ce77b4d5aa7f14ff6035b0afa78e286f48714b3ebdb2b887175f4d0effdbb959614b16b6a2e22994d5b5c1dbf9754cdcf8485ddfeae2d6bc0ccfa5320a527909120fc535e7069c463f774d2d97ab65e836143cdc23e5c583d9fd1a47ed9c7fefa4404ef50afcaed7300d20e60089d958bf3607e7819c9c405c6e84301e7c3dfe0194fc0fb8e3362b8aea63b6d946d86a629e38b234799ee094051b9a94eb299b2e85ca45bc302c34e3674344f810f58042eb18170aa0e829a8b4b4a91c60c825a57a6db685f8a6523a4c8c0961b456a6bb2ba1bd885f740cd71a3e39dd9ae7afb47c092c66c367d413f567ad3c908b5f7d961a6461b70b160048d125c8efcbf9bcbf43a673dba020848e254797753361b0a2f230aa70a93c44389d9e9313eb889eed9ac520ecac6598f70a0734ddb59493d54f27fa7557e899e9d95cc6b8dcface051d437f66d52da52a86c69aede74bc4200fe8ee7c6198d7fd8d4c7f55706fb48dc31fcfae81443ceeecb5303d654451143f9aa86e9b9b200d86bb64e1fa1ec5c789c3def88956cd2fddabce62a6ad595117024c829f2f86be0027f3510b8079930c42f83707ba9812feaf2737e13d3b9c572a7ebe7f87b78229a80551ac28e8d0daa5ccca079f10a53b4ea75543ada85aad1b48d86f48060ad1f5485b76237f6cf4d60beede15e5311f4995526673a256234856cd93de6c5ba9d56ff4897173c37484d8c2113f9ef551c5151dd7cce61de460730a26218552813800a3161696052dd506d11a03760572f413cf5716f699a380d3b26ba24c913bdc3d616c90a9ead94bc76a40168645271fea2c37e73c33b92f9526b1b0651410766c7aba8c64be17df71ee71676aefdd2979fe7e42f4dbe58be52d75366358969c80ff0ac6ed016c0ca6cf80105c43873e9cf448d8271d4aa6c775430cce676f1bb2f89f730fafd72013f7e69ff6374fe9ccd8f3f9c63313a81b46d27b8225f358ada12eb272a2c5400ea2bb19349c5941650e8fb1d814fed7fceebc44ab957ec22bd21f6fd76795e40dbaab9609099e9e5cb6e2fa12fba060a6500064ec1f4406d9e8a04086bc7796cb8450231449216c08cc3ec41c509f5acab2761ce9d256bdd4dbc27bbc01e6044a7807763561b3cd3a29579e34206a2da3231ced5dddac7727810db8f9b37a5f5009ddd9bf8bb646a9a622a21e9e68c1281c6295f065b2f6f5cf5937b04b057b336f7703619a5926d71b241229139a19025081ad173742f4960a4708e69c32c5f0807a7b6e57ac95e24c2d44b05f18e3ac108c52b8c882585d3c9eee2bdafd418274f892f7644c54333eb3161db05ce44513eabe12a9939d1c9cc3f8a05adf42a8003451fa6b058b24ab58c37e01fc9ee925accaf51d1dd3228955400f77e6ec0cff525a3ed7b5131cb6454fa8534fbc58e0f581f49ddefd26e578a0977d29b567b76d8add4e848633599584f582630171438b8190231ea87b0cfe98ea1c52e5c0e11131c52a08f1f825d562c699d53734409f375652ad2ebaf3c8cb222f044e53092f5718f0862692d589634ac69d2d652cab0321653d8285de1ac4d21b783b92156e0c9f5298c75c4793bf488c6b819bf71821a41d23acf59460f2a40f2cde16dd23b3ee3fed0d87ba0022fb129d83d34b7c1212324c3ba095316708393600753a1fbc35a06a7ff6cc1c982d58be00296ea7aa71cfd811d601e32c9b2750109a4c2ae5fdccc67029ea44d19c6d300f1f50fb2ddcbc6122f5a4ab6b11be8bd22910e1288280ae49390e0ab5d14d9b96b062caa671505b294082cb62057e0a16bf9d5919b3561cd0c84848e88226de980a21a0f0a2c234721ccd24f47a203200c7782386c29bbed60d7e9370a39073a5448941e0cb87c3734e452cdac6848dbbd0b7205d6000c6f70893995085aac4e18c5668f310b9f137f2b597c24769e0e9cdb5ad0c4efaaeb674a81d18b54db49797e7418e451ea0a7594724a14d92422d1f084bf8985196762b3968873ae179fea25a378d8e68f2edef7d2ab5e5ca94ca28a14dbe09aec564111202b3c085928256fb03b10546db98bf98ea1d5088044c864b1cbac27c302f25eb001b38d3bf860970ba8c7ba9157785444a4a01546660280edf4aa368e05a39cecc3c7ab398ae93a671048e14013c3c7b0322f9bb64281e87313ec3523c3530bf47b2915d411557a019eee65123ef7fe0938ce756a4580e5dc8655a55f02eeb9d7bbafaf50c1bb7b230e81d3521831d495ba463861269b265fc3920b59b14228597223dc8827d4baa1a8e00b052ef8038c23d74482111b51ef2fb3399fe3901d4069eb55d02b2c3c0440922528d680c6b57fc22bf9b6aef6b440584b202bb833f8c35ec50c467b7792063fe98de386978864ad44ec5048844d96a22aa05013db47fc3f4b9afcbf483ba1fa3a9a1514deaa30a9b9177917fed334087a84338607fa54993fc11b1496e367e9bab1da5667aa0ff60a08675504a1fd2d56846ac94ac5704fd9c6961d710983134d7c2784f3664fd10cbfca03da4f8cf82125720e6d8a577712e4f41268f90ee3a7d273f614df33cbf0487645b86e70416f29fda5533277e4a12f4109ad64aae4e57df268e1e73f31dea55567e87c98523168faea719631d395472675446024af07821f206758ade66b920c4a535d21d64b855efb69ea09ff8a8596f9915a7d6d8b1eddbf262fa32cacf7665070cd152e5aac19819098290230da20b9ae5a6cc3bfea240ccb4679feb2fb42657d15836d3ac55fe212edc5fc81cead7dedb962c49ba926a1de8ec6a3c74f0df1453f23ef9d900f324ece4573f3b1c0139d7a1b27ca105d94c876cfdaad0ccc97bdb3fdd7e1637db0358e741a7a38b97e753ef6c65f4931ff166e13a4eaa22a93a3aad66c6bfa47653da92b29febfafc924c3f524ce180b4b1bb36e49ebc195dba918d50e20c7e0c6b5f00e5da51c46b773f8f108ff868f406eb5540e0b35b90c6fa2701eb7cba992696c0360597d436831d3a12d9e189c78eea212d55b14f0ffd1f52dfcda50724638781b6ae7fa660c71a142fc44f0a67a97bf11ac3f68d5d629539b13b3919ab344a9167a6c6fb84aa72174d5af06308cccc91d28ae9ac354019a3cba1b37e1cf9f85f53c10a64bd9d5f50306601012d93d778a305deaacf318981bd8575d14cddc51e475a22ab1130b7f4218f2b3ea837ad68a9185c23e995f71a9cbd5467cafba703859cb356e9abefa1410739415818ef729b4fbe8fb351998a684ed2ef14bc3b86695366b374981937f8ed7d37876e6d1440f7ba9965b4ce7c4a4bf8efa81dffb23907d727038080ca1c05822cf2f29443fd6072f186ade14a18311a58d9b693f7810f29dc590e61352de80487facb88bf059c0bc67cf81f8027531b38cada28b4217d705ec30a9058ad9f242a7a8bf6f3d1d6144794017809034e5b6a30ce16481095f9018d5abda93caca33d128a3a5da7e86a121d78a20fc4aac0c2f77a180cc2e4208386c4f6d074d71188e40229dd7b6c479cd2b8cc32e743f77f0b33cddd09427871cc46e27f7bff833a79779e9d501e2dde9f197281827748faebe82adc1d1cfc19aa2cecbf33e04ac69bae6033a535146477a2ae63850d728ffbc237db428ac237fceb69a471c7f66ed966fa85de295ddd192d39b8572483f9355d56ae571c99603fc7896f095962a55f494f753a6779d975a125d3099924056f526d47d497887a3aaea845e4cec1707ac00eaa0c4245ece334a56e9e35603471952cdc92514bb7b664c1e6806c8def60f9e6c64224bad0c82df0e9cf06425f64126b591963453cc6866bfdbafa81744a9170c45300256bf674bf9cd9fa5cae6a6ae3a5d77fd57b24d230391ce9dae954083eb7faeec6222d373c75919d0077fc5978b30536ff8f7a6492fd4f5dab3bd3bbcf736ed6daad13491a468ee486453409f405331a5b4f13481006319a6c17d4834d039c810cd871843e4ff0a8340eeab903e6428b856742e862bb87562129d8815f9e85330a2386c4203893cd20a1f7fd96465b939f8446720fabd7716201ea6eec298b3ef4a65e6bfb5c6e52a97ed3a126c2bd450df0a71c44886a2049703cdf493c04a3c2c637a42a2f728406c61536bcec19f8682714c92e26b9de4e66ed7af3cbebe16340428bd08043f7bcd7884dad4329a6dca4cfdd19fc8c067db3e8e8120530e938c5a852ef4bcd85076e7f6d8a1950c3880a2b3d728d6503033b90229477c3ba5ae1911385485a843f5fd610ba49811ce231f05a4217a87b13d960fd88fc2fdd94f59601e324e09d120e5876f5a96439cc6144fc889acb5a905833c4b24ea19f05ccbf02470049bc6e561b3bef00f10b022f8d358037b7814d578867041d79cf28d622c8fc2e928bdd81113b2612c249c8b26a3072f637f2ee94e8296e038cbe011185ff038e3d8ec6f19b030fe7911c15c6fcc0070dae8c45e8287507d33af2dc034b2d7a4cd6d4ee02ad02de619c5359456cf57bde8935a70ab19cb881c9e4161a85a8c05bb799d786d34194ef22936117c2b0562a880d41314d69458b06609082704d20ba853c05e6905b5adf5a368093a67547c0ae92080527bf26aac3bc488ec18045089dc1527901116f05b82cc3f5df65f1e9c9ac393feba80e28eed65d8c8ce935bfd4ca2bbb35a6fc4648255910023b3eb301416056c6d7457e66380e527f8bdaa6f1e0f324a1af754de8bf57eb824016146c08e34ddadb780757275300800a2183ecf2990940c7862878c89660103afe9df2425b3aed3ecc1ac8782bd90adceb517686558b2f9e2bdfdd0b95555910c51c9deace745fc03fa0200f0db5d0d4451023c44540a0d144998fbf810ec8e028c875506b05f03b1c64c284043f2f83f999234390c76cff92c28b5b9d82d26547d64446094f24f97361e5f78c805604240eb33396a2f681ac8fdffe104e274cc6983ff429f0d62e1f7c0b53b53e6c8cc011f91e23a839d3a8a1b00d8b77904360ef0d4674882d73bdc4c183e00971731f1eee1e307feb331784ba0f80bdac63e07a600acfd6859d977e6de22c5dba49a5ff9f33c755993ff46a7059b31ff66cc0bc1c9de4ab6549ce002669276a51d40947c8424a590d8f879151057a495b3cca47c52c32c5da1165e58aa65ca235d03e2a9beba468ce17d3015b1fed715ae055b169ae197cfc5f716f45cc8e1ba4c35b4bbd1af883e6d212cb63d6dae7589923e3f90f3f4628999a8b39affbf75388183890d6434269a4105fd0ddf1788ba03ab6909383a02d86682d6ad81151e27a4baea64fe4caccc7002f9ebbb6696d39eaa9639351bc8843a8c9821d01713413bd70117e7896097294d5f11ac9d499e4a6b9a726516b41b44baff59e647d72986db7c549abfbc64cc26262f58fb8bc078e13b5cc54c9bd759c5c91152494e36e02434736849d9c2c4d8b0227780df33dff67a13eb8a94029f026f9ceb7d628f2ec3f97bd1de3a4a84e0e92ba54c4744a506ae63cbc286e1ef80214c3486bdbaead7a1433348400222f6ec52698c82b7ae84f6a1709587941014da02291963f6acb59a5211a00646c245638e9b33fe4fdcd0103542d769cd4e6cdd0617a30107dadfe31c720c5764b008f8e904faa0253d360772f41245fd1826a18185903bead6caf490905785326da894da7926604d9e8414e3eea1f16a1193327fbd434d9a5a5831b2b7ccce358d9b84a8f7605c8b0979aa3ea48f91b8104c6aae85bbf135dabd82b17c114f4e3664cc543fb2913baeb148b1dac215eca78f0457cc90a3fe05442f005798da044bd188fa541050bdc13860cb826d6f02e2b50aa36e2acd511f12c5d3b2da9dca5c8a3ccae5a7af8252c6f1d6bfdafc8e874e5a9a43f1ee1bc4e0144d554253fce71b30c5d3ba37d5ccf26de095437d1c574f5130966b2cccbbd07bd34a2fc60fe6cb02113ac2b6d11f48ade4c298bf11ba09050ca1737fd37ec8a780f5d02746aff0edcc94a21245dcf2ff1f24d9872887de55fee6ea2e06990a779c15001ddee15b7434464065acc2257775a0798db37235e21e301e4b69fbf1b979aa5aa95f93f2511ea5b7d37ada8e3aace2ebd02bdacb57583ebe01b4a541401f8f80267a384f091284efbbca2df3402573531cc92c7354e569a14ecae9540df0ef1a2be0d285cc82084f12b0fee6c15a0ad07d96a3427bd4770a98e5a843b3ea946cc245022b1fbdfe8a67543e078f3a554a4f3e7077b484dad16c4fc3fdd016286ddc1e95dcd09ca0bd7cc67aee7e13987321ebad9fb52a7030129105a172961b5f221161b7e1ea124c971aa3c58f8649ea45f374dc5909d2c8baaa85cc73112591495049840da989e895a5ea880e0e4a887693c8b1aca51e0b5d11e6314e5db2fae74e159dafe70db3f9984c323705f436bcbf6e3e0d103ef5bb8253feeaff319d5982af29cb1765eb8eaf4c03f13554f56beee185e3ebc20db78c4afda4b6cd558b240a56dd1bb9e6c52d0150ee9580cee20f155d001d4495ba655b13ef7796fd22d48eee186a849333ffc4d3fa6dc845a9d42bb93dc85406c596336d4b854c46f610d695da96f98b7a6bc34d5d14fe25f5bb70ea6db011b8c648712dcc81a85df951d12917ff08b868db7c2c956c063cd0cd787dad3d577c8029c5db2f37cba62c64019c148153ba5b04a6e584475baf6cb825ee389963113195e39c8bca2792c1e6c58b6b00624e1236d324276e98de4eab8ada868a4601892c741d9ea2f6b042aabe97803f65c579f7ed89daca8ba5ec4e18edf907caea316eb7aea3d7207451d1f76cff02b8932dd481a02295b0283e26362cba0d163a66f9f2fae55a60dc28111660143ec92cb03fea41608e377004f698ff3e78a19ff49003070d25022557fe71c3699aa1975892e999c8dcc60e822fd12bbdacba8197511e547fa7784ea00073cbee8cda1d1dff86c93fa48bfbc2e79e5322ab78b134df3f37709c29fb6104d64802510195691297c64e0f8ad2107db349cb705a499780d51d8c9da9bb58dc3b266716c4e99d28546abef01c83ea79265740d87556dfdc3a983840369b1187c699d84a6d2b83aea81222e5b69a079b68a6a0861c30072f9b7d4ada64f37a6abfb35a2ec6d5862eb2e98199d47bf39d0d8efaf666f1b84c3ace39b61f14ae16b0c5e0202e440c365701d415a59ba13575187dca672277275799f882446c8d146a4abdbb1056398b5ed8215bd82d996d06aad2246c2f8f88bdf4008528455f5e03e3cbf23b31a5a6407513cbad28a52756070c4a5925f8a3f832eb04b9c2998d12272d202727962238273c1074ebc019284a0e55497e6177bf6785400cb62e29b50a593f41a0088200781942a196b8cab3d52db7f15ec2d83970fc4eb595d0f1a4e8bd44f2a99cd9a92557a951107101f3b56b93711dd52ce36cccb9910c51c760300952debc45d1dde79c49b3ca032fa93535e45443e862369716ad2909b9fb604fc6e727672e9a7ac20729d1cbca11b25090e791f7e04845b364b24c9d0391dfa719a3de34d8770cdbcc50cfd5ea7c8306d0f3934a2a9c1e4ac9aa46644d203ab7cd55ab14cd411b8768e43ff699078e221539d5a321b269a6282c79dcedf1d0088e29a40fc32079ecdf07e2b0708187a90a09891b8e085ad09c4a00a2f1e2ec51c6f15023b5ada763f659f92efbd168c9855836411a0d1474bc58a2056d20ce83b2c5a0016a041c2035af24c7dc243869e0cc96d37c91ca92792b4a035824faccaa3cf0ee5a7392aa4694468902cf9c19a62150a94f496d9ce8016a0c820c7bdfd625d251d57bdbd10080e0215dc5a6a2c9205912cfe0b493585100de9630e530713947d4cbd53084a7fabccebc9b9838eed995d2d8a90eda72d99239675c1a1ed2c412bad91780d6bfcaa7770c9b5d992e29f141b3cb4dc56d335122aaafd6a6cd88600544357ae51f21bcdf4c81dfc31d4f00f0fd493947da4639e49bf22feeca4de8074a426cb80955d8d665422ea8ad9cc55d78b9624f33ca74d7a6e283b90ab24a5e663e758200433e525e0e2bdeaec63ab9e0c4a99c7801f75df2945096768e89611092ec026092b05029316a34c50895e9df774ef7c5715e4a27bcf2fd6fd36391056b50ec97cc790100536a3c32d535f42cfa8cd63707a202347fa3b739aaa44a281f60f511c2b1ed2a9d7c253cdf8957d092b0102dc41c8f43be560a66ee4d35e7ef2ea6d926067ef60c0322424fb6721a6e94d4d7e6884ba72c66eed6fa343619a33b5647e4958ebb4d11cf235171739a6a2bead8d327678388b323647228f3279229ab3de63c41dea994c9031ebccbc47eb9f65227e7fd27dfadc45735bb3b23b21f9b484bdbdc3b3f8f81c176f878d1004004a2cf34c4459322082538f8db9517627fc6c18cee0347e65a5b54ca7ce0674da148eab3ffaea96143b738b0e92a9b41916aa4de1084a90b8ec8af664f98b149bdaf62202993909555cfa870b07c6cd46151f7f6bf76085d959cd22fe9d70ede43ca70b852882559622138096da29308cdff2571fc3903e03d1828ab660bcb434c29194e392171ce8e0648770dc77fab915f6d8dbade4f8c8474ad4db712a720df870848c1da5330b318403ea6afec16f08205bd00160ff5333f05bf0066f545df3536a33ea2c7d318f496c48e870ea21e3e926ad42abff22b4bf82bffb0a4f0eb5ef849a1b693d012eb36339cbc27498e1270015ab379b8fc62cb13aaa5e5acf3a64e4d73960bcdbf32bc0325243aa7125d9114317d215293c9a5458c011f871086610fac8eaf9ea771897b6d89b8cbdf5dd97bd43804cad82e33483f3eccc83ea1096374e806db575d8da92922161a62d009432c10a05eba86fd84c6f630412abba367c305e807b9ca5d58d0f9f7613fae86a31c94fe43f9c09f81170ee966316bc710feca22c79ff3da461221571b183f2dd6b94b2956f708aca2294f2083dbbad58931fc0bfaf678722c204c17c503ea6132e610ace7978b823badf1b9ab31ab4314860ef4bcd6d55e9f2469e3c1ea84c3fff6b0e7ca51c0df5019d28d857a38a20fc5978446086c955e3f0dca7134a563376ad70bdc956210cc5da073869dba63da0dda275b00946200bc49af6f6c5cb7d52580be5454d875c620e200c41ec34b842f8e9e79be6c4b33f25cf876ce4294581faf716b2475f78e93b35e8f46f0dd036148a3270059ff5d20fde7a9842e47c9fa4b9816705ec2060d3f144ddc9d7c5181bafdffb6e09a4db8d7bcf118de71d99d11cba8a2a3c2d5c059a0cccf8e44c29094feef27e974e24f200ecd73d63c3cffcdd15be669ed94df09e79d612c5da20940d531abf698b53f802af458cf7c5e2085899842108041bf08e3239baccfa89960afeec8a6a9d7089ba4044e1082e84eda9b09d6587b4a900e84ade9ff294774cee779138edabcf117fcf4b0e5d5576014703bad721571976c858b63ae3e2b274e377d5f2f4741a0c83f94e5f54326edaf92101444ef13cb9938fda2a41fcde2663f0a1e2b2e23df8fa159b171d991952fdd25268259c4000b240a11432cc21f8afc0e8ccf08ebb90282c7435471ede26d492a08ecd6c361f9a634ebabc263d2f467f9c0eedc9ed5fbe788e04d017a6e1d8c45623e3247d54407d81cdfe3faa403c6869cd42cc276c5976acfd20cfd505c987e4bfa474320df40a7156d3861804eabe9e7ab4fbc3a140fae88dd19627abec6d644c571b6f39d05aac21ed1483b5d8889894c05701dd41aee3902426e12a0c377d890fdf5a4c098aebda05c33d75dabf68920a0e4d9790bd37ab7d4cd9ba48fbe6c0f84c046450f356d8aac4880f4b9356685b45473780a88d04400bb5e37c3901ba09c68cb987d929f404a0951173eae1879906f7fc75f43f17f5feefa05d11adb62352ee0ecd0f44fa795bc894b17fc30e1d50bad3d0c6d3aba3e4b195340473df8295ebb699b34b587d8b551eea4c423d58d2209b3226557787da18d1a15dbd07c8087a29d681a090a62d0a812eec1a222e67f7558abf307e9c258986b82e0e0916ab2faac3d97e0a83608f5320d7bee4009491d088d01b1710f2b7e1da1afc89c72216b9b028e470b5174266c68a369240a87b041d7cbc3da7500b4740a273ed6964ed83b5bb4a1e0dea14922ad8314ec8fd5214a1bb2b1091acc1072ba1eb022a7c3ce753334515e5b454ef42ca5e720f101c15c7ea97c714923568e03c71ac6c47bc13b456379076e81fcdade82797d73f3e5e1b185e35bba85b0b2828b376069b8f2750bd226f00c5a1934b3650e9a510603c89ad8856d32c5e320580a2d623d8fa6d558d3c25c0cd0ab2d32eeefd1169a4e03531ebfa7e1ca914f5a718c653150b637e9bc3039d6899a268c9d6fbb6179b1e8988788a57c72264e9b45bc1c09699767f63d8262b4f9ddc8fe1e70c254ad1af480be3235b041bfc83fc005948fcddc6fd0ca2c39313f4af6889b1ac5e9ea946769048f7f75bad3b8dad0b4c0fd154b9f05a5fd81245400299f8babafd1a99a74f63040d8f838d0735565a5b920884a0e31a7d17da742f6a02e41746718542e2dd14270e8592e732aa15fca9077338f5f9f25f6efd96a4741753cb323cd065cdc0b86b7a3831a172e589c58690f849ad40d60e881f8a1ce4383f543044d0bb07249d460d0d51fe43501542f1eb8c90cbc0aa0f4fea94145783a453532a02c138e83ca278e48f440f70d37d0dd5d21a716e1c43b50196450e74eed1c1534a95cf49bc772fe8f8c77f53903c5907d539d822c789e10cca555db9545b4c5b5ca91de9a9edce763aad603420893c2178fd5dc532f1e577a5639c2f6342f511b5a14c4207fb07ca99b1e8717f15b43de721bce3487a15bc400498b612ac6d0c93140201fe2290cd1291238c789d6c637802551088ceef67cbbbd2f568629ff2595c114647714b7af7051a733ef6ebff7b35bfe6366b83be1de7f32c884f4fee474dd96083f75b4d0dc2da2a96c602a20c3a447e6cf6c01676e920298bb69a5182b301da35b1d4458816c4f7ce913a8bd628a5a7c166e9a1a2d834442a058d14295c7b46ce15581fc82183ace44054494e4a5889669f82f5949e7b582b74fc334c3da00641872ef6410c752fb1237e36f919404b17d00aeaa63bfebefce79db3451ad045ed7b464f31b9bcfc5ef142d49f05436f3baea645105a65f95d616b727a3c77ed9556345a6f60f24919f50544334a73b90600c3482d6c4077b4116aeb044800d85af575ab1d4df523e90eaacd2f42c82c8eace0bad6a30e3723bbf1d72285c38513f18f6ab132f157a54f6fc2680cb68feb0c391171438191822baad4cd0f570bcb2d202980c040e9025d840f9f7afc4d4080f4feb0b6c0cf16ae435c0364ea3076933ac8ca8ce7452193549f857ee5f6d04f45e08fc0f4d8506c836d423d132800832fc12fd40c35923a3ccc762aac4d762ff73859d0550d0c067a320ce3b2d2c43043a2024556874fa8da49a050dd63605039048acc62292c1c614e8cac22e4ed875c7763ae25bcdc21375ae6e29fc7bbb0826f5aa2d9905ac4fbc0c2da8c45662fbd6027001c1faec60a130fa33a365bea860032f65a8a6942c5c535c31fab5a2a54a6bfdb55a67a0ea4cb992185b382b86b05638c7712fc1ae8c233f5fb66db4e3297d2263225fbc65927ced2e7bcc81fe6b9f3178aabe6c114d2f2d622b1f6e1345343d41f859ffaa85722e0f46f9c793f87c4b44bd651be379ad9b396b0b6f794293d99b627b9a96eb21349cd1399eeb0a70b4409b8bcc08903ea9174eb8e6c7439726170e6160d0b7dde1cefb78a5da41f3ce91f4100a856c7ee8c0470514b46bab173ed3f7b49bde15eabf9f748d76ead521413cf4a4296b2be67d6b79e3ff14d713f9316ff124fac0d64f9e2493e2de4f03e5de8077a89373388729fc28fd24933cbef59bc55da70c5f77728d06b59ac7bda550d29643990d054f602607c57434a75e2804d72ef1ba1d65ddf5ec0495faf592c415a3bd1020738ff25d6151ca05c3d82275f233769fe20056115266094b0a9d229189234e6f7e3ceef75ab28ab34000d7d93e950f778a25294512989a0f20a7fe67020495a06f0563d9219dc0b82e5dc28dff07d55fd41d080cb58f311a20ad19ca399028a30d99e8dd3cbd9ab5d2baa980bc439e6279f3223425c488af41454d5747571b25e0309fff714b95d0c9563979b8d674dbfa979514f1c82ef379ecd61281d1447db95f2dd3ceba1378fdedef29f63728eb36972da4b1dcbf01e51c367c74f35cd1d3dd295522609df171e8eb72b12197430643547e53cc6c44052504cc2aeb909e9fbdc030766a4c3073a0bfbb202376a4b1f3464380f82a42afacd84cb525bee6a927269bc2bb1af59a5fbc5013ca3546d771aeae85d20b4ce8227b865947c514372304247301563405c1c389c498a23f186f25bd23f20aca43694af7f00cb5a9a5494b27757500a3110e974dbb82910a13c63e9abbe9318210e43569f507a3862fa40d368bfdc3447785c9ad054b688951abfde85a64d569e66f89a3a42ada929fa176b4702c4fcb1682309db9ac6e7f26733d5b2c36dc0e4d3f1db309268044ed4184b7c47d980c97c5258d21bf75cc55b8b646e252d119ccf581e8a910c873433acb4ceb3303aa70584cad008b9f6123771883b86b13a1a27609bc5fd1a2bdd11519f7e1799430b4ddc762771425a439af4e3aea4b9cb5204e3fcbbade990005176672016b1a01095f0037f99e016bf4b8049dbd0e4c9974b4cb0a24c446f251b0e4a965544542b0fdd5dc42eb1b0ff03950ed72022414196a43ca7931f622063704d5453dbb32af58e0d332018529d95bd0c7415e0c3373c2aa70a8180323a609e138abc613e31a911854125959bbeb0eab71cf697c210168f1dc7e4bc3c0cdce929d2b4d8f63f04999b2f53b139697b18b5901d61f332fc30b3209deb0834a72dab602abff4249b7ef5387b735a994328118df1cd1a35927f693bdb8320a77f301f8dac0361bb468d09de315c114a4e759eb592d3624c05bbda5387090cef888df5faf6886d54a69f134196c8fbc5a7e985414d2f957eae80859cfb954bbae58a18cde2c2a507be2802a6c2cc2f60e41a51280a49f916a368a8ae148a02956675513e4899214ba44ae9081831c743d2d98ea64b54077afea769383e2dfd072edc9eaf2e5e7b3644ba5f08896e2812a13da5da33d043b243c91ffe4b4f2a57fe4a310b0f3e903241d60bd2b405b6afdee8fc8c5e1e815774bc5b8b6e1bc4b54ed52e5c1319583a036e82d437b2d43d3c6beb30dad8023ad473fc4b8d6675d20c6e988db4963329855eabd1700777b67888150be7e9b69ba7149fcec0a83dd2c7d77e000abed6686df8ece56c087f093f130ea555e904f086e5c68ff59b080b179cbb4d1559832b871c1596f791f435b60b86ade7149e115cee59bd7c39e09ab2a195a5925e65cb028b3e9afd0058daeddda1cc3bffc0358d3c0d4b849a273614358f71721cdc4657622bb19aa50b813953c9e6726941d293bb7537f6d45b370acd99d3ca0fc50ac2743e858840f897d86e3863b1febc73d396816eb05bc43860e3878d8cf75150ec9ce5b929cf17d280b807e4e1b23ac02537269f225302f3f86d1025429997d56aed8bc2c0fbcaf6c061d53f76e08deb9c4069c55c598b8a6e56fa4554e1e737022918effb9961d1b91ac908546fdcd5927263c7fce19a00aa967f19e2340bd8e2354913b52d6a9e144c65394297c05651cb6bb3b9b57bbc696eb83a92b6ace3db5522a284cdd29d53d42ac4d4828dd741b2251ae19083220b55a2a113e42573042a665199a16a1b3e710635bbe4143606ebeb57a3d2e245a0e9584ba0851c73fc1764ae4145f43f525d43932899f08bde850742013cd5a36b04b9316abcc3dd7a7a3fa95e52a4929072d70b7888f2c3c53952d06ccbe759976f3ce8927ee3bb9c4dfa7145be2d5de5b2a9083169f8bef03dfc0150473c52df287a5681ecd98da0d921616415166dc616f39a478a90b3d6ed96886155290e495142e18324714ef84607aec6624fdb66124291379c04b539f72d6d3674b9011468431fa60f4a1689b44b3962b0a941462aadb8a531e06cd99646a54457ebed5dc33478d6180ded486154cba7bd7d583dd0e726c991282a9fd958daa0470b521ebd02a1eb517adda082580510bd96f887d42ccf41ad9b9f9ba94bca90393ab0973568e52789cb0001031a2f8db9f28e35564399943e81214c492d09734079d3d238dad02ecb5453b7315c1aea5d146ab00762d8a1a62e5297ed1a846ab087fad452d217642ac7732def1bd2ed13f76779503cb4c45ea26864505521e7c7a1d954d28bebf7a6c290d6f270e9f6413126daef2a4a857af71951629399c4c5039c248c9e0258745f4f37ff42d0e94838f7cd7250ab85022a5f74656fb630483ae4bdeb1505131ceb5590e262bb84a0464c276d7253038935aa3e112b4e9971866d19273a17f4ce051a0098f76826c0e4c12ca8828cac09c06e13a2d8ec1fd14c92a23b34371a9ea7a2d3646559d993ab2bbb0461b4bd84aca9dcb3de0528c16ddb84244592447c7efa8831a29e6d7c9737b3e0b3f0df8f76cf521d8d1f180f678b5b9aae896120b4af8e62d773180827438241cc9e91a4d649b4aa7bd2870808a003b472a422645ad9aa09b9635985c1ffb2fde1e9e6c09c347700cf2b91384abf8bd1eab912240b8a7266eeab8ddb1c483aea46c7a0669855b58ec62e032ff05c7c75ae09ec30b426ef56ae859ccb0c5066fae7e2e2fa6e8e5b088eaa1944339bfa68c51f54359e4982c77c0e6a6b77272b597d0cd6fb4f60194c64018a20cf67711939d53d3dd19278a18e62467a2299e38b67a8774898497f267e5a20293dfe13f9746ab84e6c92f79abea7b0676030eb01c36c59a388fe974e6d4c3bd885076d80c45bd18f5f917ea67550801a06c44254ff3f62412451767256d344f8271468b021e865f400e34bde108d167506e084f186fbd347c1255e27bdba583e682acc217e2969a378ee0f6afb999beecba4c2e394ce41faba6ad3d4f83ed6f7a6a9a0fc0b4332b7bda57620398743e6d86d680f6546e82658459a1629dac1f49e866b636cbb18ab5e91027133a9bc97923b12ef70de931086cabc002f159fbb62e9ab4fea211b1d586641d8eaaa0ac706c98770a59c48aaaae32f88bb4ecc64f981194662abc4f51e09c27b2b4c1132ad380dccd31ad8e99f1d133b5c4ce4cfe5147dabb06181cdba6ab57144ead5a246e29d8ca6342971aa749d3787ab7f1cf3884d16649684b9ba22bc0d5359925b94bd22ebe2852303e6a397e92b6d37977df6ef6e6ce0449f9c831c1ca4fa09ea916a651c1ad90956ef07cf074656f6c87f1fb124e5a21a3215325f8be8907af34ee02c028194b046d7399fe269b8f831c8c43625508291f64d1401130070440258ee7b5eb7114dafce39714e38a43e56691281776264161e2de5632bf0048cf3d549f8f2e870f5c7c3973604648a77d601c553777954578598d17158384720b9d012faa2a9898813dd685425996e9345c133bf0232654c3aa374c0e47d5a4ff33b011aa5274b0752f9db9c5e192cc39cb99d5026e73e0331bd54a5dffcdabd26262a7fe64a837029657078edfd8b26a55bf624f4955ad706de1897e01f8bdae5349105470c33679bf4eb928e9b9caf3290befbd5c7d5111922c21d378e2b010bcaf16763a70b5d7c1d8304dd8a72e96a7da9da513b7da43debc5f33f0206e5d04bbcc009bfbfd679bc9d062bd7b77d173ddba1582291329b6a006832292d6f56f40178588b212c6756e1a839bc7435b230e4a4847424ca5aa85749a5ebea67460f1bed73b6f779e4b5ad1f5fcc5df29a4a3b1bea65d6ddb100db89953ef13b77ccec32b53b741a077caf62b103411f772cdf8f5e44550ad54f9a583aa00bf3f7e134bcdab6e10f296879167912fc457d52afeedc34cd20fb22dab2fee2b8765625414d132bf8970e12372bae75954dfdc4d1748ab4bc220ff8da171fe9391019e1be79d05f85d5c7f96f102ecc58ccfe750e2dadce7a0ef3f327cd1eab964b226dc716b670a60b60b37b3370ae76e9a12a16143c41fccdf0a28450d174906ec3918f2a5a95e341697ed48e057aa26c3b72ec7b7e746fc25e7b7482ac432a50d170e87aaf58bb8ac246135825058358e124eae5af6757297649c1613da8064ba0fea4109e0d599f066489409a8428500606f3e3f0fbcd3bf2eeb44028865fce822d4ab0aadc8071e6502abf77cd4d03bac4d36c720cd5944144fe6b136ab2f7857646090319495fd5001419819515af2b2aa46eca2a38bad40aaab1091b347b0d1b8d2927d12a20884c49d45b72d94a690b216b83c2e477c987f55e3e5486a330a15726964e9df32205372bf9a7382b4887db7d7712e5f205075474b300f8704944f3408a9bc944595c09d5642bb2283b5ed409603b8b001aea17e2fd0ba6b8552a9b300274cf0598add92181713014a2c0a8abdc10a39442dcf72d52d90206bf66b63124705d84158dc9b5d285551cbad906de09392408509b0036610a61dbef36089ab9e7dffac2ad51a5072cf9c271038deae7dc7f1b162e6edfbba5595a5d4c1e6dffa6584d903a705fbab1c204532a940f3041b0d25c0d543fc807bbae2763173f0e86165a693978642b0a04d0e2b19328cb4a2388ee826597b899f69b52a62fd95acc4aef413dc25006bd37b60403301005c2a3f1879aca0e167a8021d401b1bb76ec49e16b65c9f8253022f3681ceed03d99cb4992f4db1c9cc9ab9c92aabdc6340e1a69242d69a127b73f9fd387b11b23c1e9937f8067b654b92163c2bae486b5abc6602724a4351dfdd9e9c020b1e8e601dbd04011b2b5c50c963748dd903b22a23267a1b3508672d341bc1215133c704f1714560401996ec09de0549f081030631b5f9f81fa410e4cc2e0333f4a181ae09b63cd7813910354ef619c5f50a97691872ecde0cce15197f4016867ce190353c365cd75d9d500c15be8478744f2e50a0f0e24818ed252c0e573e1220188f8d58d3240ccdba5edc119f9a6766f6287b516226111ea8d0cddfc05276c2e4b132a2ef3d0c9f7baa2d019a13d4a9e81750a8f94343309094bdd50886bcfdc43eb0b23c5790341edee482316f0e733e32a8b4d4b6e3fd351f00c82c7e5b56d6daf4bfc0a478fe978d21a230b8851797be19c630277a0a57ddc89b6662eeb809d4fbe8970435a159637614214ac630db44b3500c64e70f5a5ba08a292123018cec038a09df9e541050aa8a3ab0f2193b81cd70e7991a504182f3e28e6d56427588bbb6a7af3453f6e7c5e61de5dae307ac57d3eac015c3f884638dc0bf8e572e0a0e68e43f3566a196484522d2df27516ba2366e237b6f295392328e09270ac4093344649ec7f3c049e609a408d2611ceb31ae67aeef9b239933f304a6f5ad87f9d19f8565701d93c9b5de5b8f83bf8c50c77af5acd58b3fb258ab67fd2883eb192be68705b27e583f5216f3aa0f63ae4c4e06272384eb99eacaeca184a85432324232b96e619a1c9eb9d1e0468cc3e5a6c1dd723f0dae67a30c8e26d7b33145234433d4334f0697fb53bb9e7906ad1f997c065084f53c625c0be8e648f2b0de7be43ad6a5c738140b3c320bdf1cc99c1aa3d5e3c0fad68f2c5c93c3ae9a59b11e93d1b3b11ef90aafd0798577421887733d73e9f0117e0363699a24021ec2452b961ff52ce53564c89cc643ad37fdaa85a7f07816cb85858530cef41225a462f11feb91d3787c7fcdd050c76a8a3ad658a8654256acf7afc1758cf538d7b1c6421deb9a5cc71c635cc7bac6ca50c7baf563ff90099a25f4875f63d433ca46eeaf2143f2ccdc5f83ab11aac9d178a45e2668fec0381eb81eb564827263d9b1176ccbfdaccbfad56ad5ad57fdd86ab57eac47ad5f3d90ae483d7bf9c63829eb6fe1f1e556a47a74eb1bf588f52f57e6fe503028c9abd50a081c7dd4b346fdec647f5c3c17c8d41d6b86502da0dc7fb23f230979acc1e57e13c6ddb8f193fb3f19dc9802e994eee2ef6347cc33d766aae1a22bec875a81e6921af6312ef74b13763528111b0912d3033faf3611a194923ec5b40f07160462412156e6f45ba3fee20e211d0b003a6609728c1ee41127d33742944c873235c22e53fa6f44a61f3b821a993ed5992aa8200a338adad872061b35ba46a6ffd44790e91128a574468a9579e6f17f98841823d72e72fdb663688bad89d4c35a36098574ed0ad2717efd70fec33ae62358c1c6c95fa4847c2f61fdf3c23af6fee3c3a4e7c5c47ef0c3beb16f58688af5ac1dc7f07f9ef381384e76987b1adf52fdc8b4def5f3ba5cad93ebe43a89273a9224cf0c0fac937c00499b45d20b5954e4df72a9d3a8a8c88a4bf569348d8a5a2d570b06c6e572b95c2e974b7c98d349fcd6dde1cba7f756ebf4aeeba363fd7d3ac9d0ac320243c7dc084810993bad144161c799042497944bca252549326028b2e1ab54a73781a09d6f2025cd2d3631a6c8050686e65b32ad9996ab253e8deb67645c3030e287e2493c9dbe844a89457804b12d726d992e3c93265052d21624299341ec4892329963dad6338ff911147fb430ad161e5ddffad075db96e4fa7126b97e6ee9989b4c30784e5bcf5cd85db86d9e2426b58d84f77fc12338b3c237388d044c0382335825f191ea8229973b9e32ea149e40203b8a1da3e9ef51cc31d50f4cb7a680d46532a15c502e2997ddd19c269369b54afd2af5a6d64f8149a55c68962817981606a2f5ad0f5b2653ebd4725117a552c58eb328871ead5505d372ad60ae6bf5ad95474d260aae502bd491cb6456ed5c26b389a284a08c384d8471b5441857cb093b82598a1fb3ab563d415556547debe76db554acb72d6bed4b9665154d2397ee2a554bb55ab55aad56abd56a85bf62b15e7577f8322b0cc3ab5235eb9bf57d0a59dfbaad3b05881b7485add66abdea67abf533b75a3fbfa5c2483c8fac6f9490f9ad7b83aeb065899281a5c23998f2b4a175c14cbde92d1e3fdbefbfd3873fb3298a704ed6f75fbb5e503fa7ccab44558caaa5c2e37cd6cbb43ea685c7f9abf00b4f2f5161f825940beb4bcdd66c59f19f453a97c9fc824730a382d881ea9834e2b4199967adf068553356c6c658d1829fba32bb7c8f3af550412aa7d8f194e9a9c606f655b7d4149807d2144747870427bbbc6ade1127abe6553deaeee0c2c54cf6177d8a91fd5992367d66b2bf66c649253f0a04a7cffc1965e289e78f8fe8f3235142a80f4fc1937d11479ad96fba3bf8905d4625d9e59b2922fe9498ef7679a739e6da440c84f8e287e26562ab9203ea67951c504f1f85675e98382041e5f01423f1ecf2e215af0b8ceac1d28cd2329f1758cbc48e3dd48c43130cac3f08162515151541c9f52b3d5194d0cc1076e65078e28a7a66df7f5ae95965ad5efa9b5031ef02661717d5a3de7ecc15af943298abc223ea533f8178ead64709f95a90d9fb122ab42f78049f85477bc2eeeebec3cca71f8fe4a942c5d2b0a34c721e6cd87116cd2b2893e9551fa2ee45bd0083c28ec2d308cf2299618c384d46fc14867917bc138341114bd40371faa7faae1bc40e2ca44ce6d60d6287155226b3e99a9eb02ebc3ba574d5ac3882602281e779d33323ac8304b5d65a7300b24149d0823cbe87259492477663f72aadcbe4f774239c5687d27703f4a8cbfbde7f209dd3db6ba529dc1788ee66328425d59589e943d34bd37b9ec9f4f3ba494a37993cc80dd235ec9ffce33354f68f1bf6bf4b606c7e909e495d1e63b11f3cfe1c6ab561c7fef1f00e0630e199fefe81b5acbf84857bdfed789c41fe2d693984859ee69cb3ca89c31420746a55c699bfa70f5e26e09774c0c1039ea784007c996b122535f0e51d9548d410107b7804eff8832d57fae0154249cdbb1f9eb65610e8ef5a6cd8ddbb03e1624bcb64f62e902e9a740f94ec5b6421e48f836cf5244f064b620ce6617e9e170769d94cc28b3c4e2415c48ecc7934771d934db1a3dcd9403fbb7d9f21b6a165fe8e6552d85e61668a2ab0a3f84e43af946de4c2e48530bcc140e2993e929a6795307a0afd1e261461ede91994e9490f4b8a3f30ec180b800f99fc019b31db3dcc4c1f897b53e64cdb317096fa2657a15d5069a16792c88b28993e0c3d53e529367f2098cc0c2182c1c6451c8b2ef31ec433433c0f27a942c49b35f0c19f35b049cc65e2b713abf9f7cc0cfef38bf44b3f4308506cd9c8838aac64f094f2cf614a7d79254f911f0482a789323269685b4d621b7d5964de51abd846f14c9159a33f6bf40720e4951ab6c92bb559640e9157f22c027d39411afce713f1bebf7efb4f9c24c9cc10d32ba995becacc901faa10f9beff874c4392dbaccd67326bf37ff8f0bb0ccfd45752f3f04cc53c10f1f73e8963eafd6865ed7bfa276c31e9e8e480e8fc508508f8fd3ffc00e221276cf9b0cbe81cda9209902511514f96ee442a97eb4ef3b895bebffad49f9ed11f776e2c8909a763206a8aa503bcb14a8f240fae66e146f68eb022d7f7274dfb7238c933bfbedf8ea8d851f98ca2e4fab2bf9c43f990421739b2c8d53b22e764ce11155d5163172499533f1ce2eb4b42fe724e4345296ac2888a2e5714153b94d051ae2ff321e58abac38ea69c6a7e7d1fd5b332678e1bc8ddf5c39d1d20348b142405dd1bb91691f1422a8693ca8158ea955ce79cd37d4ef7e93ee7bb60091d13c71f74ff3e69c23204d26118beec99e941d01496c0d043939740f7cf135d505530fbedecd9b3c7a5f411c41d1fe9d80d726783b794f25d5a69a59556babbe7d5dd77742c153b232377776fef2f051dee1348c81b572fad337cdf3908a676bb5dea25ca6f2e4bc38e7d46ee1ffb8c172c9eb12fb34ac86761fbd4e089d276f909d4330a66bff4fb54ef503a937f23128994512c7406a2d2446edaeda1a267720ba227b95d3714f482de628b2df238cfa0bef323dd19f4288f7e25b7bf91258f246202a56793889d9eede8ecc474621e94056d02b5aca7fc014496d03b3a5c58cfc35356a64c57efa369abefd50dd2325a9372d89cd378588435109672339aa60f3dd952b66ce9b5d63a6d778ee62e16d6c32392975c319ee997b5204df14c3f9d601bf6f328e6c658a9149363a46cbe2873e68fd22867e5eea3c16a08dbddefdd46e08bb541d6282673d3885230f1c99288c92d6b9125d192a11c235a4245f69e66b1548653a61807fa21bde00be5ef87b27f589f3a123994bd129196d1ec78881c5ac0e618fa8a83a439a8c8720b25b2c82de7f7d4911b8fef496147304f1d4829037b3e2e7ac09ef537c5dd90b0a2aae124d7ef339af6f5dc5a87f326411fd0cfe79303b140e288aa460f6e0b904f4f2ed723698fd34e574e6ff89cb0fc9cb60035097a82ebc99d763d92ca06ed4e90179d5cff144b41d299eaf986e8c099b0cb2d6b29896261bf63ed1982f5a0d487f3f452c7e929ea057925538c43eb650e67e41c4cac610b676eb13eac474bd811e37ae0248fe9fb0a19eb0f6b702e2fab7f1b99335dfb7e4d5f83eb1a44bea2bddab2bfa8de31ae57ab775bf6159632078fac4f8d9e5df0588350bd60dc1802a48ca47571f09f790a8f9fb93344647ee6674828c28e34b8d4873c6e7da365fdb2964ae17a8403fb5088c8232ecadd1fb66e76e6c13c837960a397273d2f779cf9e589b53571fbf362e47ddaa2e3e2e815f3aaf0759bbcbe0f5faf57ccadc9d508bd6a70af9baa01297dd3a43cb68084666e34389a5c8d8e8686a6e6454fde9c3d8e40c50f0c17ad54eae6208d9e9acc2b0952835399c08e2d201e352f130b9e592f03247956df53f84c26a863fdf6f4313ac9e38f7a1148f2b83c0d2e84f971e6568f685a3f53780eea7ed78f3238d68fcc6911fc71e6668393393257637f583f2f4632a7df84644a0a5937bc996ef8a463d656f323f8b2b6b739ed31aec1e00b4b97ed7860e97865847df911e35e4689831adde82efbc3c304318e4ae141b480c61a441e5b40200d0d0d6ec2d258e9c0d5a1a770f2850f2e25e510d7b27e2cd433cf3be8b0811c3480048731033760e00216b0a1021498c01109440002353c80060718694011061059800266182243026280e10504b8d0020b2b080972801ace405430400152f8c143801dda0c051f270cc0049d120490736b1ec7e7072808972bea61e4341ebebf870ee3248f5b9b2ca1df7e7873616f735f1fbb37dfe3da3c006eec65b7c7e35c007c00aeecff06e06b2ecefb75c93cdc263561cde5513bd5c23ed55c542df493cbb540b609979afda9b9a95a4d0ed7e06a70f3a4c36dc28167a283cd66b3d53af03bdc1e7e037787d7c0ddc0e77075781cae061ec9cde1337071f8f122790cdc0cfc0d777c0b5c0cfc05ee0d5f816b81b7e15ee027702bf014b836bc04ee04fec8a5c043e04ae023708ffc032e04be861b8177c07dc0d3706bf8065c07bc914bc333e036e08b5c23bf80cb8027728bfc0c7701cfe3c25e0197c8cb7067f82157011fc395e1137087fc0b378687e126e05db82f3c022e0ccfc275e15bb808782197855fe1b6f007b8429e87fbfa207785c7f7005fbb411ec8c59f6fed0d7081bc0a377f0ad7005f80abc2f3dc14fec72dc0ef5c9e27c0fdf1b3bbf3b44b80f771678fc2a5fd00ae8f3fe1a2f03a77006fc23de1057075be846bc2df2b80cfb925fcdffb3537e7fd9eb2b3c61adc4ccfccad083be21690d37838edbfe6fb6b8c7ab89603d716350a365783fbf11d74f80d7c3f36725a0eaf81efc73ba721f97e7ce4341cbe1f23396dfc7e9ce4b40c7cffcbe6b41bbeff75731a06beffd5e3b40b7cffcbc76916781bbeff05e4b40a7cff2bc86914f8fe17ce6913f8fe57ce6947beff55e434097cffcbc86911f8fe97ce6910f8fed7ce69357cffebc8690ff8fe17d22b096683dd603d301fd80f0c081604c3c172b02298114c07dbc18e6048b0241b9bcdcda6c7c6c7e6c76941bedf06c826c806e7348c9b309977d4aaac7e04600d7fbf4dcea6c86940bedfc6c8692a7cbf8dce6906f87e9b9d8d0d924dd28dede676d373e373f37373137483bbc9dd14dd18dde86e7637474ebbb84915d68f00acddefbf41721acef7df24392d000f80efef71739aecfb7bf4382df6fd3d7c9cd6e3fb7bfc38ede6fb7b0039cde6fb7b04390df6fd3d704e7b7d3b8f77f77faf796761c65b4044649e074e22898e5803579359dd293cfc0e17e3700e176123acc33b7c849170d2cbf6babd7a5e3eaf9f17d02be8857be55e452fa397eeb57bc00be99504b3c16eb01e98cf0f50102e5764a4db1d2125d9d86c6e363d363e363f364036412eb3c9d914d918d9e86c7636473648364937b69bdb4dcf8dcfcdcf0dd04dd00dee267753746374a3bbd9dd20dd24f5b0f5b8f5e8e9e1d3e3a707508fa09b7a294f78f91b37240afdafdbe401cf04085bedf5f8dec01a0fd806e7b201b44087ef9c6f017cbf67735a09aff36dc2f77b3e4e1bc0f709df3ebe51f89e7dbf97731aed7bc76904f87e4fe7349eeff7764efbf1fdde91d352f87e0fc969057803a800247fffe7e3b4daf77f3f4e3bc00711f2fd1fce692b7cff97731a0bdfc2f77f464e73e1fb3f9dd310f0fddfce692f7cff77e43418beff43725a0cdfff25392d01df0fda9c26c3f78337a70df97eb0c769337c3fe8e334057c3ff8e3b4057c3f08e43422df0f06398d015fe4fbc19cd31af046be1f34729a03be1fd4398d86ef07774eb3b101b2f9b1f1b1e9b1b9d9d860493024d8116c07d3c18c6045b01c0c070b8201c17e603eb01ed80d667b25bd905e472e7bed5eba97d1eb957be15e412fa0d7cfcbe7d5f37ad9701246c247788775d808e31cc6ddecd802ca0fb82290346187dbd2e1b636705b39dc96066e0bc96de1705be36d65e0b66eb82d0cdcd605aecb02d765c37555e0ba28705d13b8ae23d72581eb8ac07541e0ba6ab8ae075c170dd7e580eb32725d0db8ae221786011786c88559c08551c08599e1c20cb930325c185c022e4c2e860b5304c385317ae1c2e8107061762e5c98a3162e0c120b172669852bda845cf116e48a3d07b8a24fed8a3fab2b02c99cfe7cc5202057c4a970c59c01ae5854802b1aa57045dd8f2bf25c910057dcb96292cbfa6937c61683c28df171634eb8313f3140313a3706e7b2fe126e8c006e4cce8d31ba313b97f507e0c61cdd18d98d49ba323697f5f7b8323797f5df5c199b2b03bb323f2eeb7f5d196c7a294f68bde8028942ffbd529ad0023a61a455e49832240acdc2313a99c3e3fead35b7ea6edd75ac052456116190691579c477a433c8aa3bf638a3c7516e951776a4a119a2290a873ad634452b23ace7b07e931fb689265e5ee6143040a7f18071b960440be3f240f104823d722e43b5e1792fd68a1e18da55e82ad68ccafeb0547885ce2aafe7a8227937af898a2549d562595cfeb14df4cca99c5a3532df8f73b8a86772c45672632322a61acd4b140d332f83033e7ce0e0c0603434f336c65a309a37db164658c9534a4fefcf292c2d05e18644183d6f53d8f16d90e90b2292b224dac24ab659126d21948bf0c992680b2c59126d7146fb89667eea954c3c3383fdd413b19fc249aacc4f62f14f4c44f5f62d4e625f49cdf43344bdea65ede482676660bdea8bb05e857fa84264f5aaff41ba0c8559b888ea59cfc23fac700bd965cd34e7db9bbad2651565c292e7bb9be83bcde3e8c04ab73542b014d5740ad0652ed650d91191ecbcc08eb1147c4c597338a2783286917519b2b1226443c58652f460c305f80b5bb3247ad28494275162744629a59452ea5577982b534a296577b7a4b4dddb93dddd527edd2df06499235f14417076b7007ede47b30799d4bdbbbbbbbb3d170e42091be56ca7d5fb40cf633a3b2f1d2c99ea07933cfe25a9923959b64d96b236820142fec2efe4a70fd5a8e94fe9e9e420787a5972f9524144029820cb53feff97c00fbd0fc84a07e3cccc37bb47bd909e4e32882040d4e7e212eb18cded799e975431b3de649b170c67777793b5928aa7eef6244f34fb4dfde89486ab504a38bb4f9f5f99232bf53cf99dc025ec042518dbf19e4710ace7493d4f27cbea799252e9d5126832812593bca6124843144a7edf576b0974afeeee626bb5b5e2ef8e145c8287ce3db4ea47fdd1ddddabbbbb7bf53ac5ce9fb34aa953cf13456bebf7e1f07d9573860bf74aa630cb90237257034519d15d09fc09e5799e872a6529d151ca5272a9214e98c5c8af0444ab9a5e166b85b45168552ca75e29044d6058f2e8f56e2e4d139dee64057af54bfda04f3da3a1d52b993ed4c988c80d438ed46044374d3147b2bf3cf9d0d10182da49f20b03aa85a20f7575a53e9aef252d9452fa25940b9f5d8488a24c759d5a6cea64b5ecdc4a1f42e661d62ada48aee69cb3faf271a68e4926cb5596a66c6a493b32254fd820688d4aefdefbb7ae634d861108aa4e52f298da6e9147a03283253cf0396ae38a27d4984f9e3821429565100d1194e983b5d6da5b7a8cf8ea0fc0c8f43d94105a2b6ace2a5d95c028532f2a51095ae045403a21d72ac30aeab8c387091d53f820084fd22839b102ab52da81a04eeb9c8492d8f92d8c24c09de9f6839e6f480a4a37220c6122e95607123f4e9e10e1648912444972d202238648c93989c1114350f0e3440b2743a2d82c153aadf3da626b9643624cd123060ec684185e6011c30c29d280e95e778801078e8e1092a809be3474e0060eb2dcf1240853f4a9aa504443505a20e4060cee109243cb7f95318c88aae88114eb0323f8dc80288b114421cac2045608c9a1e5bf8a1c2cf9d50f2504fc2f8d22c8400b387456378310ea5355a1daa25027156a8671c50570601186152db07d7a55adb6db9e50aada78447df8e3e9671aefd0cf42e330a2fef47d5990d9aabeeff827d0714488c561fb789ef7a1974135ec875e83a00be1cf785f2a83a63d91e62f635927cbf722489a634aa164ef47b7237b384af6e8fb3b4e4271929983254962d49200e1a1d146adf5498048d5a0461f087904256a55522ed7f5249779dfbad4d62878ef7765038bfad48f8ea47aea447a2e96f5ff8247d109161ead14aa44f61c29c4b615ae498d82a7cb2a3c8a8ee4593cd22390aa2365efb6dac2d27791d292cc2ce01843574b02441d42a356653e107309306a55523fda496fb239bc89631df328f59ede5c65c36f1f5fe1113ce11185291134a867a8f79e52416f92e766efe913c9e3650fabf0489dc89ecd52b2479590c1e5675e48b93caa5b9f6ae18ed2b2f6bcef547ba84b4f9736d131efc34b813af6f446a1d028f4a7633d1df3bcfef17ea4b7ecbd6c8ef66105a53a2606221973dc2c9231870a167cd829060a0b7ecdd5fa737a2cc76292e773fd187234a0430f389267e65a7520890a9051a00941d5b53775434c1383f720a6e958b5a02d9d1ebcd5444b59d51d3d6c3d06d33b0d4df8a80f43d47d094f42e883b77260e693775d3e9428101ca710940b787ba8342f1d93d92f38ffdb4185d29fee942516fc25cd60cf3e9a8f965139c399722693b1fa55e6d4afb1faf2a2e3a5c8d8d9942e652493c328bb125387514432b264a9afeab1a5e96dca9ec77a7ae958fdfe1d5584bea38af877cfdf38320f9dbf8f9039b57b644e6d3287a5376aabffe153c76416b1d5427b7a84e4d0f2a9961676046573c814151d9b299c0aead8fc58169b0acaf341ef1f41182e2ceaf238c5a34d9e2309798ead542e8a2782ae8c2a3150c44041868e8eb47f52c7eeb5d6ea5ea94bea791894142994b0d1fee4faa1aac73a1d3af73e9934877e902269319725913c5254621281cab34aae4ee45a826185851dd2b1fa25dc42c7646ed851ea62a0c5baec3849cf6c3f7b7efaf46c06142397c7162397e4b233ac53d3d323b405862d8114bff7c4779374ac8a64d816c9b0261e11c89cfa6305812ca1becc14bfe8ec184ba25f033d828dc861471f926a9d223dec437db73f253a84e4d0f2607ca53fe36f5ff52e3f43f19019ffd4db9f713c43d752a8961656cae6f05dd56529f2d5ad3897d557dd1ae4b2faf6562097c921695567cbf5a30349f278f4f461d539ed2bc293565dcdc99c5ab190b2fad58807b9562e52b8feb8ac3e90fe6e55f7932ba8cbf52b929f51cfe657e4322397d587e1c27e5fdc5cffb32279fa5b23573cda0f8d5c3f3ca2f2f815e5ec42f2963c185562a0d01dad6cd93f051d1f319c878934baee335ac7470ce761796c5debd0b48e0e0c17d68390de93ddfbfd1b0dc973b37f9f2179a898c51b0eef355a974ae53b44e6cc20652e776df46e86aee9b80c95bf9bd569a446d2b25ac24237f651eb649e4f987aec7c50b45956243adc20871d5ba76b5deb6ceb5ad767f44e3765d7fd14b7ae634e85ff4cae6ca01da1848120088260cfe44feaf5f3c09268c22f545ad0099531d087f94c8452babbd7daefb57b3b1a423e84e7799ea7a588de1246933ae81445841107d0105c9881820ac6962188287d600d80c8a7ade3cd4a6ba52f1958304ba21b0c603cb05e96443717c061bf2c896e2cc8e353a2db0aa6a7ca92e846829b4f1474d2f993651285f38bf0add305388984386a9b6bad4a64719ab504b1d65a7beaf06232550108221915618b19d8208d18d4aa1bb9562fd75a6b9d3e994ae1e140718aa52a6e392837319ec810c70f1a4f647863e7061145444db4f404b94c8244428c000919e048729904c53839b1c20bdd90910c5a36fbf5a955af7215ca85c83061ddefcce1fb7bd73f04dd145aeb260f94481907ef41a7ee4edda9c924692c2624ca3114b971b3203713d6b3fc21247a9261c2d28cfab09e6498b035a33ef44e324c84df498609fb65d487a1cb69a25800df8b61a7ee943a75a75f6da852d149252ca158e8ec3dfea33b969e8d8d735dcfa6efbc9fdee8937e0ac5af1c39cd6bfd957aae8b1ad742439d44ee2fb91492474a9e99db243b4acc953c324f9d1d3765c73bbb930c13d6e30148073830b0ddddd62969a530a7f1ea1fadf5ddf3d92b37ecfc0ad2d9b441eeeef246e8c99a69bf644ff43c0fcb6ffa7d4f3ff7c6630f214e4a7ec7e47fd9cb282132d7da127647a7ee28215def877aa19ee48f3e9b3e2baf52d9a565292bf1a6698d0f7ccf443fb0149edc253553a9afefe292aa2e58ba7cc5b463154b53101935c59e92b484b59abcde0f2cd907ef14fb2569a1d3a52b0aa857bfe45528a6e755283c3c658ef73353af72d224f4ab3e41907a5e3f10fcaa16cf699296929493524a7fd2ccf95e29f52afd9cd052c127a0e731ea51b07a948a20cf77d07b2d1e0f424e5f7ae9a367608afef44ce1e96332967249cd58ea252a8654924cafcca6ce61a34e21954dddc584a5cc313d903695aed799e9a55f1019fcee14157e69d904414967aaa996b09df22084bef7a753cf40ff0abecbda88cb5aea5ababb38aee148bfc0faccfe9d68cfaa8cd59727ea511004c10ffcbe989fbcce2335bca06c0d473c235e58a272cee972964c279a8a8f18d165094f29f8c0c92714cde5c797540abb8020ca8a5267922f7559c708ab04311407b257ef03b3d6f044737b9f77ea59c9eb491511f6877d5f480939810eeb4f1db330c394100a88efcd4a6ba54edc6e544024250544524e302bbd4831820689df1441ef2183285b721b4a546173590f29f6cb9228ca0e368405b3248aa21312c508a466845bb27c222b57b2c43df409401405594a389e737f39e2f818e590952e5c9ef1c6e75162f19147b96500799c4d76f2389fe47146c93e9b8062257b4e7628743841a4c41a4426b8e209d109ce8842e4c3064e47b444121522267c60022214000165296794da21da42269ee7799e0c862831a96354b18532a9b5d65aa5082e44c81045088d2562b044891e502314711a238a2088781151591249596284298a445084a690097a44597376a03c49828c5c9fea80c695319a788114299cd02d488461a2f46451a83509152011845c65510953c2a8e244880d336e40ed30c24aadb5aedcb0a39877e68bae7bc994e6882e5e327dd0fa20532224aab03df3f9adb1234e11ecc1f2a4067db625688fb744093c06bbda8222fa4554c0143dd43a4dce2a45ae25a8d5599fb44c4201a3d826442a4f452c7f5208b54ce651277fdfce115718a18018e0c2298280d2834a1c4fdc208e2b8a88230c39e250e3358775653914871caf2c87902a092a9329b5889a25518f15266177f7e84feb8c52efdcc38f9692764b29a9154c76230882a28b7943b3bb274dc7da8f6232c77f6744299d3323d1dd0b6eb48105500cda38028d3a32f084104f92d470630b2a948e1e2d4a3c932a4129a5ad64499535808860870f1873d0a49e27503c53c7a940800e2d54488105098ee098a307caaabf5a3f8f7ef47e18e68958986812ee4a4308db0ab400c21341502d5a28a51407d6b1ee194dc7b0e823c5851d455f428e18dca863063e10f2620c2168961d58931274ca308486b8e20a0feeb04208588a5c66d474825a6bad2f69953d28620da42fccb8c30630a8555a845c71d607181482ed9732a7293d499ef6ee9c501329b88306528470c70d882077604410484d90a2b41b7003346a7084a338683024470e4655dcf182a0268480a3a633834cdf47cfaabf6c25888c78929bccdafcbf634b6907f685c83f56c76b75f7dc73cfddfd65ad4eab1695ba162f65356624fbcf962d81104ad838914e2da59c724ae974528f7ad4a3e30bfd7977f0d3e9e91f499a44129192dcab5246415cb31ca146e0d971ca32825a6bad42e862c0440d9048411d0e14c58e1a45716596d1050e600086b1848a2565142146e3b4e0083838e208296458a9391d4276a222bcc8fe2f22511156645596444500b120047b36a7cecec73ee9a5aa37a6785ea1ee52fa4b7f3a6bc5524a3aa7e74959abeca156299bca13789e9c58ca4aa553e95406d0875c9d89714eb163b4564aa947a947afe77993eeaa0dab372c7d494393e74fcffbdc4bd78222f51258bdcf3f2c3dafd6ea795e8c0acfab3e3e6ffa7b4e713a26dfdb65b532744e2f8bb065775bff4f142d088218885652bb7114d7ba3aeac15309f18376cf1e689e629b2952abf876aac99f712195fd53794a082a065d267d4ebb2594b091cec679d1fcd1d89166095d489e899d0832c7931307ff494e25702ef31e04ad1545dce7452cbcc22e18851f05e34ae1d1b6bca8287bef1fcd125b9ff60d0cad492c3d28c59efee5bd772ce48c2e2163de7bdf38a7bde0971fdfbe0b920f0c08baac6d61241cf64e98be511fb9f7a0155f3753a4f52fff827f78f9d6cb5ad8ba3f2c69bdeb93b8f04c919777bd0bffe04ad27a17b62e9bdfa821add6555293282143aacc2021493b8126d004f2212929292929292c7dee6345f16359478af51c2989dae88df6b8cf8b2dcb6fc923c5fa28a979ef40ee415ecd7bcf499e497f584ec47298f23ccff340100475443bf842ccf33fb08c25488479bed78309650c539e5fcdd0428a35e819538a0c4e79bea301e492e7b774d0ef7c70be158bcac822db3c7f82208824963fece1259207b962c7a3d8ab58a6814ac0e9d24548f33492524aa937756c3b26fd89066aa00602aa413aa0ec5e869c51273276739a09fbcefb1efc120e4e1e3d080582276b4351bc65fa031b933cfde3f3fc367f7cd877b38412481e0ffb0f640e7d4c6f344bac3f9d492ea30f82d68ae23ffd3146938a8a66d12c9a3ed367fadc00962c287eefd51db06441f1fb58dd01bd4441d1f3201d2976f45dd0ee082989da26ce694a6af43de7345aa3ef45f4ddc8759267d29e931ce10f7f199b3f1cbb204bc02fc89cfe1100361b174cd4a44c21fb90304c3d540b28272cf8611b739a0b52d62f86b71ab16ec1071d3a165bc3d224421e7a00f3d7b5fa61afd03b43745ce67de827f97da3567891914158fa3e3390f6ee0973d82a674f09c2297f7800ccdfcb2c755e66f9e2fcd1b88597913c132340e678af237e4ebd4cdd297a8f02c193b5a1289ab00762af847d78494236696cb6b2d0193f18b63e155133c81a5804ced2055d26c59b3ddd9588e9b351e82f76240f902c796ae87c3923e94e0a24e41e9a2685f013a4679228cacffc519241bd674d9e3fdfc79c734abc23a310522379e4efa8113397fd435969f3d8d966a5120b78025fa6b52e34d2bc1c9039fe93ca5993c35139b11c29420c278e3cca2b311f3acd01c9331f25c44e7c44878e84ed87c99448054de446b90093a5bb58d611b665a56fb4825d572ab11cb122d288b0c6ff31e8ccfa13ebccb8207fbec43e665ca02f5f621c2c6518d23157922586a1632e649efa12e9a4f6210909d9a9681a8f1f97443f4550c69fec524e89255bb96166a763fe540870e4515ec96fb8df3a17030c3d934f24450597eaf0a50d07416b45f13f168b8df396c40050d0c0a796a4ca8c0bae240361da522b7d78a3fd92a77be68fb6d5515407ee46b4044a260137d434c986240ae28d2c77f3569341ef8690caa8b5fae0e7cda81072ff0d56de905872bfc4d0990170e486b4b03ac3fa0ef38ebc32c3d2af617f07a3a3a874cc37663deb149a110000008080009315000028100c0704429150248c4451491f14800e72a04e725897cb834992e3300821630c31801842c000190011a2a155e6abc1f0eff98a5a68a59551fd2a84a489e20c874c8d065d4848e9139e58a41cebe32a11dba4bf8ca7e59d069f016e2760b5156c3cb78c30907ad851b7e34b2f12bb8309f5099500f8f69f9d8a40cdd9a8b4e4786dc7a1e79c22c0f1762ea3b93c581235afc569846b9f4bb8d2dd624be75c6762b0cb40ccb203208814b1cb9609519dc0b471e8af3e56e82d4833a20cf7f075f3ccce0e5910252811bc3d580a25a51b9b2b1043332ede8a162d40e9496c8acd644ec816d2eb81f02c07bb762d30146f47d557c1c4f3b1925791b9343118a80bd4e2a2014855459707c043312d447c1625519a49beda77b794d305323f05f1efe572789d90d82f475b97fdfd662199181f1e36bc8a490b144503c22696dd69cc42ae0c68eaa354e69d184480e6fdf616e61b29e27e3b3391351f5a8ac78e4cc6c9acee6f06e3f855bb83f75e4a91f6a63a66d195b8b4abacfa57295081960f54f48d3e2c1607d3cbaf4c87626d1e0cdffa7db23ee7c1bd624dcd616fdc1441edfd96e7a2051f9fcad9893ed03f6043c08cc33078e414d044d8840fba3f67ec6a3d1b58185657b79cdab909708c66f255c9304c7181403414e28967bb049a809e8a078767f5f83ace74356124c3d921235d7dca6ce27524d3f93a107000258c5714bf429b747d7a39fbe9479101986cb0c8b19c435edc7d24d010f6a84067509f6896dae524e64f3e325305f5e99fb30f98b6549c45b266bb43b8146b6f04a50f54e47235939cb3e733aa32f72d374ee3e5317216a01f23256ded02572a5502091f53deaa8df15e860cd84b8bc6140ac9873281e7fed779c971527c028b59eb278bfd7b29a3655f861a920e4bff53fb6d63698b0f1c6154ff012220228bb28809a9602df5b59143024072bb620dd386e90592b1831484f0702650224f4636ffb70f887a637f391a8b951ed3341f8d15208af24c4dbb4b3ca50425bcf8d8a61a5e7852f45d67c6fb8aece4f69472c8759b936592602e857a110f487156d505750b22c84dd1c767edf9b4ecfa6e427c4b163d36c11a8a0641263bad01ba89ed3f97f7d3d459e124c8b92131d20fe07b38282f326aedd9328bc6002bf713557796d67b26c2d6f051ff33dd174ac9240ccf7ff06fd2cb20e1d99af1b2deeb9aa44b1abf5c7f5bfe976c98a015b5e349cdecac46e8d592027542a72903e5c9e5db88304d25966531fad720ec0cd2e3637de8164559cda3d890f43849e0b7229bb8156328d3e1b8c8826398311a26a9a8355cc49b41f17e4869a24756b2210498c10f496eddeaf871fb45a2a866f47e975f3cd55ffbbda9c627cc83646b0cb08700fddef03566c04870cd6f05a19951560913caa45bcf069f13b073b82d08eb822680bd4078563296b615925ef68126e19a92ab047e568566f72f880b2ded6c3c7920f6435db8b7ccba55ba0985d1f8636914b27b3ac29891925d3c66a65b1c9528bd2b20f8c0da37932c3dc35d5e2610da74eca3a81bf340448c8381e484343a49d1b30a827a153419400dbe1c61083c6b1fce9f87319c6328c961d49f18f01ab69a184ff8805cdb99797d3ebc2e11d91120b59391c3c7c8b27b9749505a62b5264c34df438510708a9ee884624e5365c9931a72ab12a351ab0fba5131ea68a055a08e97183945ab5b241b245db42441d72721a628f22e0dea43b312583de79832a168512ec3e10c429b83fce781dbdddc8d1944affdd10d6618340401d8b5404f3407e40e569fa2d4ae00a054996b47feefacb1039855630db1be71a01ba986241d9926b10cb331202d36ea7782101548c083b0d80abe0c76910302942d574968f38f74dc1fdb32ca1e543a30fb691162a5d89c7592fd13d3222a30eae25b3c210829f027d3277b1ab470527740807c75c76190150d6ab032a8af7dc4263b71511b66c64dd62105c6174f015943012d9a4afc9525f06b2a330e1d22a9f07e013da98098a283c2c88235c4dad0e3025a72c4b9b56bb7f1eec012c46b0029cab5573460f1340915b64d97106417eb770a58d0ef314938dbdb97629d1f8673e13fded6e99905f4322388c7ec27b8dbc19a60fc650362159cd03d5cf35429ea07f5d22f7c65c43359c8a329b8dcd661561e77c6025edfa083c20c3009c9e4a9b10f323ddf18f63eb53ba6246ec7053021eba0e91e564518803d75d82f6d5be514e114627a0353dd91e0b113f208ad61b301e01c6603ca11ca0dd6d69d028c735028259b19c0a5de131216a2d74491e903448f2f89ddeda3e9f28b60250630b23417095f29692f800b9721a27f5dc7702ab2528a4856b2fdf5b57068498e33a0d1c3755496f9bf063dc59a570d6ac5953ea41f2a356e581c72239801e41cb63f2f0aa6c861049d889617805023c1cc07cdb67a4e859b7890cfe44b5e6456f9f612799bf8dbc997a8162093ec5bc9dab82251aecc8cb5f0f5e9f61e87807169230830bad3e6834516e98baa95b7f7c44d604398780ad8437c169f508f9af11a0b51d10eaf3848db7d0f4cebf68188f2db795ee06e8f7472fea26e6de4e12d1c3bea469ef99b9dde43bc669c15a171688715a614f9dd6822b3e936ce1ee2942115380d07b05296d53e0072330b93e23e226dd7ba2a466cb239a4e74e5c20bfd52551b2a39f0eb9a5a3338c9161d93beb51181d9521444f5df2c9ea524256001de278e13f33ce5cab01bd6ba5fbfc04fe2dd14bbe77e7c8db5b2a97a6eb32978bfe721760b68aee145c2ba308a38131d8aa3c5c259773ad17cc98a8c289075c403a5223a3029c2d77ecc1a4ba2f07cca287b05b4697b6dd50ab4b53f2ba5178bab69f6383d6b215c8e4066ed4a961c82c95c64e2b3ca79dd2a105c54232ab8a78f12484eb61256c2261a285dca04696387ff69a63a9864a91153708ea7ed81eefc276b6482aab6a6085a2e1989923aa02058e6d137dd880090d4fb8f88453b5b4e33386731c3d1f845c881543a2b4c8fa7ab1c4853a08a6d9b09c38d043a92e7e1b31bd119a6e5f657e7ec23fb956b9082520ad5f66b16c612a1a9c0831e5aa68600d436197144b079484268ac140b53232f2e290affd539abf32816353a6e3023202bc2cc4eed037fa368184605c00fe28446f219afaeacd6a23242a137b29b39e5ae49996961c959d9d814530952588a80dc4a9c0755b5077cebab93de01ee06ddf171ad4fd4ba570f2219f568955bf60552e2113c76c6688d3ebf4fec433505ca5b82ae1931ab8b747e5ca14280d8cd4f9c22268a27a4b94c2df6b6a7951d6b10a2ecfcd274a6414d172f52e2c090eaadcaa7a997a9f3cdb2438786aabf6a59c8f2aeb64b9dfa33936fc0edb53d4b37878f957460c16bee57953b1921b8f179cbfd5fd8aa985c623bfd0e076ec55b2a8794180a13133d1c97e3ae7f364fd60c6fe53a5daf1c278e3d501b11b47929e7a272def07847baec18c995dd2c305ce2b066cd1e0b2410ad73c98b8678f3ddab0252304b47d450bdf7dc0843995b73be8467890f6698b5277c2d638e58899257fb65e1494fd70da28bdc183bbb9ac92f115935c0af0b36f21dd4358ef369df13448ceb8b411838e811c43615ad573d5e0325c6b28bd66eeb9c3e76a8c2d13e45308a6188c96834ff93acf5301eb022e342be4bd924c7339d31b86af447ec0a0d85e0a7ddf74f3a3320b0c5bae38680b2c9a6b35e391fda802c8886014769877642ef57d1d12df146893ab75c08d1a29a2d8f1d305d8e7a761be7c888d55bf8d2c73f7632093e51cf147f2c569883db2c6fd1e354fd739b1c3899d81f3cee8ae43c7090bb1595b87fae8d15d47744a5e873fdf2074ccb1f344310fccc3f7439943ba557fca5f1867abdb8045d727735247e63e133c0431a0d1086ed16145e73b5b34c44ed3f40f55bfacc6a49dd4197f269d644c182bfe309daeadaae42040b2ebecaf4f38ceb0def94ddd53c818a6810fee722457ea1b95663dc19ed578c08b8197aab1fa86705315475532b487406b64b87bd3df5e1148d26b37a0ca9ddcfcdf83ebdb972fcdfc77a9d99e6adfa42915e6b786575602211f930ca5a08f1048e33550518adf89e54ef20d2b928111803f482ac81243450f9116bfc4545351ad5153a696c480a01d498bdd0d005d8723424a732eb11fca180987fb6369539376c9ca52b6fa528a03b8dbf95776df3f0ebe0044ab4557d2f1dfa6ec0cc10b174f9ffa7c50fb742ded72746c128d411be1400732176ed18bf92f95b36b1d9fc2dc541952ac34346b039630735697fc5461a54e91e186949504cc6a9c7c15726a9f9be366cfc0ff959e2c910a621f87bb91b66df692af4c0623d277438431a113c2af5d2f00afb743250d5c55389f0d37656d2e60ada64f8226256bd6d7078d63b1681b78e3021d3b5c906d955ca95fccddf81fff58b84018d1750660d155f864cc9bfb5e2acb537a43a246fa3a5cc8e833e1a48de9d5a67d5141a66aae7496330bd55c51e52ccebd164c52497873cbb54a58320adaf3aa5e4229b1a03f8593001a143145f7d3b8b87f507b7b1a94581432c1278364eb82149d49de36dedeb456780984fe714452f0b14cb7865e4a8ea533b36769dc1f12744a158357a3905393e51f124898f6a2ada1aaeff4d45dea65d1a12b063a670b65e8ca0c12454888b544613c79b7308ee0ebced483b78b3c406827bde96dffa82bd43713ae63e34b415363181db63d428f8a9c407fddedb6973a0663284609cf5c259ae4449ffc6a56dfc7dc82a1613364d5a18fb5c045b1ee93dfa33292a80680328b718f1e99befa68868d7758a9c012bd81b9e3da434e29027d2234469710de972754d9dd3b60ff3306237419b29703d54c533e2acfc26fd69d8f5d6a1d9cd02db69c9dd74a232da59f99657223ff3b41197c1fb52997f733c735b0c63f6abb2e20cceeac7ee7d5e7f2510fa54e816ddce780d2700b66a8d9bfddcf66b4b698b7587c67fdc90127196c08ed2c0604311f65375c8e95b254d23a7bc28b8a1554801ecab5bb9871cb99f18a8647183a7b1dcebf7878d2a185a9ead8572f9b778f14f95b462abe30be7f45b017c30f6d5e714b9855c425723a0eb90702cfefc7f48fb888f0235b3822f239247e7ca7a18713ae62502f32d2fab7d6cffbcde858306630d34945dcc9c9d3d974cf89a678e6c35b952e324969a61095fd784dfbcf4dc8d4c4f0c06657be3f800f7d9558d958d3ed1d10e7fe588734f267525186eed8286e875c050e5e78cda2c0c4b22bf86b379bef23b6afb9d8dfdd1e9f70c983e1f994a3665cc0305ac63ba7bbd6e1c59a2540d9ac140f94f06f738b83e1bbc8b8082d8c1020b83845f8512a075164201059404f4c37f15a351ef7384971e1247f5fa9840ba62af9bc5f80fa870f23cdc72718de5b96b9194a4ccf32c21f7311f31388703b1cd50d72015c3af71620a3c2995da2775a1bf11f0c924096a4c3ef02ac8805728f5ed3a4713f3a247011d9738d05756b7d35ebdf01529b06013b0afa999fb21793ff676dbc63fb2e72746fb884ef3efa1152bb895b81e2055a4c4f92289fa466880277638685ab2713006cd7dccf7168c1912f05500ec2199dc4c195cd27b8ae448afcae172853b6de507fbf841fcd02ee3d98c32e95e773e2b2717ca879fdf6fa4b15ff0adcfb59f5938fd3231cf864d22b9dcae93f8f1c28b8f9ed4595d7d60b78f277d0080c0e3d877e644436ee6d351b5f47e7c201c2bcbea34c823c2fcf302302da85b7ea566b993aa77789995c8f405eaf7bddab02df7bb65cef50d91fd204071d1e53b92fb62b4943d06645f3e9dad9a85e21fce302b771087acf6bc72cee91534becaaca62e373f8cca0009ecbce751a6aa21b1f916ee54ce7cafbc04130199fa1c3656e9fd90ce38adb3c7618a63ed94b09f7182216964ea03f347e843e786ee3ef3a37525d42fa2491e39b70bd28ec16913e4a6d924ea03d67d42138660cbb065c26d496d59fc4635bbd98dccdf7a950625b630dc1d22349c0781699e1543020190cb7fe80c1b490feef033a32d89f87a75fae13ee56e41e4f3d887edff88278e78d41bc243db984d7c7b4489db5df6a1e77585eb8561cf2bd4a27268b1b6f415bc875fcb9362336018ad37049e47d216c1d8dc1230a2e236216a304bbf32deacfab4a9a52fe624e505d4ed2684f79cab9130b4da58ecc09fe3b3c68cb93ecbcc4c49cc04514b8786305044322ade15cb49c51a1bfaa3b272136f8e775623bab61f5ee376e92d61d861235054f1c852e7be20b35a7406cdd32f6ce7403b1e22ae2513ef948d75f65cb2160253dcaa11ca8b9dbaaa25c24c823faf6f7d57c2c383bb8bddf865e63646ed8983c8689203c1187a5fab090d4a0a0091953ffbfe447b02fec700729f17ca68470b119764b2b90ba5658829870c85fdb29242c1af09919aa295fb96b36cd2ba5b886900fb27225a30ba56657fd9dcdfabca83d2f5e9e1777e77328ef17a9dc185354089542cd5449d030d63efc53d37f6e401f01a1ad04755c6467175d88bc005210e6f221102a6261198edccea463b10e0baa2da10f5043c831add1b7394d882efd814588b11941a44f745c014fa3d21a4d0718779f084c66d7aa9010c0d71369b89782dd288607ada7bc73d9670f3b13806b44659fafb738274cc0522c6d2479fb9d63179f4a733f6dacb826f332614cb23824ac231f2c7001b9c88e13724a1f67f6ffb7694efa7960181368651079ad8c47c262e237cf1ea71f2088551eabe62b1b4bb042e07e444d295aa6fc828a09cd1b1f6d35110b42b897cd47acdc8db3f915e87a912d50383703fc5de6558b123d40cc19da7ad4e0a30715c7b42aefb1661059443a9996540849d9860d84565b6fdd1e9b30b49663ab99554b321460fc4bb5b580fbfadc15944476f5feaecf4be3c7ea9af56bbfeeb1fbf02486fa94aa18ed70a24095c1a94b24ff2244a9d1a1e08d620765d2a6bd2b05c42da052b274cc83d6072470d0cdc8021d916a2b24422ddb45baa3b3c8f91c130dd0d5b7e65f80402611ac4c31bf6f9fd0799da34e0dd0ca2610154c63d8dfdc7b48c1b0284b3f630ca12e2ca3a5afc3eb8d8ac5a5f7e109e231e330358b18a588c10c7d8df9167c1ea774b661821a4ccb77e0509213e6fb4f58463c56d9347958cb0594237e2a3218072e1aed3487f125bb0901174de0742ed5872d21b9791f1359aa72ec1201b000682de4ef073c067c31d7283064ad009bd65cbc84ec5e574893d8d94feb2ebc2218fbe458526d184223859d3ddfb955e6347560a101cc2f1358164f307cdeec1c107d3804932e46d892005da82e343a7412b0f8c26d42d4287b792ba8aad9f82b6f1e09fae8b78f9192c2698d5c277ed8fff1ec1ce5d24b7de4f865ecacaba4f822d0ca6c6ede6e8e714fc129862f50f787e9233145444bae64a685d82bb6df18a5d5e4765ddd0910874876dd2d0834be44d7189e3f95e3afd7020b37530daee140a3b1c9d57116f74bc765305fff14a809697deeefd7bc6159922b530ce6121a73c53f0d46a1088c4678cc771c1b53b76a9642446307412f820c4f05e06ae281ea15eccfaafbc6aea917b4fa3e4fd2aec0b3708f444111f8ff14bda82a48996f4b7c6aac196f2d972cc8a48060cf225bfa9c33052421f992f3182f2d7b59c19add1a14dd5c744640e41a2cc7cf16fd226cdc8af995961147c78b483b9477a847831d9753d1f4d7f532a82bd480bc7f64d19ee85ab7de84f99086ba2ebcd7f490dbb535bdc09504711392d5984f18b8ce4da003d3e1e1e3d0fba8fc4546ff8d4d6829fc8dacd954f158f155a5bcc217857c75866f0c70414804c4cf3c6d22bddd857fbcb1e9b5719e8a60d76b8b444cdd3f8930693360dd8d1a09a0cfdcbf5146acdeca6b723ff8416a0f8b43dfd625afc26b9b04640c25461bcd4cd9f2c74aa1be591b6a68c30ff06de3a2b9a12cb7c51c64043e53e133c75168186e4fdbbc97e191c02a1305e3f90feaed80fb00279617704ab3ba1e847a94a96d35d502bb9daea7a29263bac62b650f73fd2f99121180cbce2174fcbbf7c494910ad47138a4b113403bd2f0a3f2deea9f40d10f5f1e5d5551d3b6bd48cb50ac145623543a212283d86068a9c91f2ba6fc0201b192f6b2aa17d50290e5171974f691f906981a0171bccf4dd091cc8331c0dd189abf539bf88d1a70488353a9db138f1d2cbf457c7e07c3c02e4c5c0c4e898c259249c4bc199ec1cbbff1eb0b59244ea6b1e1e88cf829eb287c144f4c493042c30129046de9eff5a9e48efac6281088bfe6e2c8452f211fd5a43b708bd665433663d0ff173200f701e0ed2a62f70b9e47e299f7888262181d441ce92eaca89a99201e5c336715726b60dd87fe146246984bd4320e0279e8c5630defbaa46710e8bc6b11c8163184dc5fa8c8892b37500d7f66c58a6a0f1ac0fb19ff62d7302abee5dfd185086ed6e516f22940fb2bbe9f77da83c415981b452d4d3d900e0e68a9294b596025349bfd35452bea60c1b987c810a7da6841fe2efcd53241a9aa8e3b6bd087a405bc87ce63e5bd83efc11cf4217c85939d3fa82275fcf9463d04133aca875d92960cfa471c1c2b31ef3a6d934464848d11949c313cb8797a65b61a61671f05fbb851af58837faffe32e74dc9b7b59389b02e629408254b0d966e19c0b723f54d840f23279c266f80d090edf5a3361041c4aac323b4ae54abd958d351d91f360ae1d3724a32a089951741df34d44bee7d5cfb1813185da31b241b5f9c883b68965e770c3b1b1284290e4b162312f153984fbc0a43f21c7f84cd0b2517d4c005489e2f96cffaf8ef8c59d059914c78e2b3241621310cfca1a229f6ddc12b19748d60b941b4029ffb74c708479b93308f8adc894038054140253ed81e7ac2bc8b5ba6fd365bf66cac5dd04c183f62c5c188b5a2e9c160ee916dda0ac8c5e82243ac9824ef702365c9a817db9f2847ffa4e2b540155e44fe518bf5ee018620f0b9fb9e47c9d7960b825612f61392f42c825c2d65df85695b48b3a05b544abc6efded59bdd19ea1cc10d21b9a3bdf32cd4c43cf913f42b04cf4f15de539e75d07cf51454af945df8928816166ef0fca3bc7d014f88e23163ffae98b97d91858cae09c3c46b68028e5af618b3360c422b72ffa6444ced5e898b2e4c95b26b2ea0fa2b242213175e85f154376a440b97fcbbac9471d2c4d7b38f38cf466791a8e9bb6dea5565da0ba0bbab3833b847642c6959d1904af796224148b34f895e07e73f0f90551731c792e98a9ca0fc4a5b6a709740287fa51ce6d9adc7eebb299df0b44a534a9b00ecae12694d968cd403bd90d74144f249f366a6fa87e2439a4d024eac938395a3686300bf0fea8a7d88ca5697e9c6e127afdcad3f51710ac4219a25e98ddc6e2a4022ad938f864ee503f8f5e8212687a940674c2f9a0285c1278cd10c89a2642073a2d0e4ab43450f10aacb8beb7c7d603b6963bd25df3954aa371614920e286023f22a4e50620b1019131ab23bb064d22dd50fc315a7ad0211ed0cd9aef41afe6e41eb0bd95e00a727fcc743496069b8e4b4abd0e334dc3743806b47b4a5c577818daa5ea076bf8e40b528f4a11075b559af966d9e9c015f7b08331effa40a36e0fbc70435276a6c8797eba24808d25c678cdd9c72af49d1d38bd0e65ab841487c4afba009004da7662e8b36d244dc1a8a8c2508307684220e886426edbdec30b2785a243cd707d895699fd08409914064b98c968455f125d7eb26adb7d6e32eb1984616b2ad5532850da83ce91525794e8802471019e6260dd3d90a8992bd15d7ad49dc762f6ce297fd075584042e6efdc7ca3fbbb8ead94b6811b910c5cb2bbd0e94c4a3a61f8853787c6c5e2bdd6f45499be3ab021f7b7103ea94a1d8e2d44facb77554a833a4ce03db0cd5f700e06fdfe67b666260a57adf5f76fdd07dd4147f46b5867b7226e9373030c0dfba693cd718cc93954ba9446f399b9d69560a0fd40ae1f331a82404b0b6bc89a3b0f9efc0ee2730f05702a13aee558770f6b84c5e37f01b4d5eca14bf3b11ac24916c6e5eab31e020d7b8ff70e9604fcf17be8694328cb3d43972caf69c4844883eff5ce6aea1ed968c2e7c5556444deca240e55eaa627365bd12afe1fab8258d68f16f62d8dc6691378e1ab0f942bafddcf9866d90cb453b9a955fcfbd8a588c9a9c50b88113a3879d3a9318df0f97318182e2d213f28fe37fc5ebaa663c7f69397341da8a366797f77efb41438fe683a60603ebafb6543eadaf2790d0b4341863962d412a6e109f0d0ac3e9b92631775c866044d57df1d6f6c6dba75a65c25954a78ceb198bfefda24bd9ead925a930a145042b3f622fdc2b2f5944f5b5249153892ca6dcba910116d40f2c8d1e6fbc2b2b1276602c69515c8b450264e5a0fabee7d0be8a5670d7aca32cb9fa24ee8778b0d6d611d9a2b4aa4c40988a447aad7d9cf5a9861f7f0838685be8cfc150010a50b8103c0d083dff51a801b2f62cea61f8896eff7c724157db2a641ac046ea1b8dcc3d8f540eb756f09cc2c6785f9f487c62f79b4a52962da3e715cca88cd6935f063f7835d26e114354d11d7816079b107d029b807109817666be29b2d5c860e29db3d11fa7c073c954022e6df0be03feef8c587c376578d343bf1dfc522c54fcf3ba47d566e26b6de54b11e70025670e22409dd691df50a39a4677e5f3185c1eed125ad7eda40b8e6ae468dfa2f7a8b8f074dc3fb54474c183e767bf50be61fc95c747a5a3a8500340585d35502a6efa1ca78632210030812b9217a4e60a752dacf55c868581a857e3956517acfae2c8cbf5681c6e03cc1372b223274a6978d100091ac4345bdc144f762826f1ee889f5fffc0f096ccefe5461116909c723df0c6f0548c06383f091bcd3470bdda1de80dc8d81a383577d4ab037d6099feda0185cc47c2eaa76bd381e9b44f93a18ea5d8b2399557aaa094386e975ab33a9d3fd60a485c01c4debcc3e8305917ad80343638450c017813c1ed3b38b8f68712eb121c5d11e605352514775ffb31276813e2e02af0b087a890f4f18215585e99e5156cf15a9bf2667a457d27716783866f16ed40c4ad59c9c7aa2db9a68da2b37be6b01185f45d90c0b6476e8f39eeaf044e8125d47d808113f448e90ddeebc2a023e2e43b999050edbc9e246dcffb1c00f303677368caec870927fa69e9c68185b5e26fcac453313de16d295272846a570f6cc4e7a4539133aa2a8231b3649a236d32968cfe6865cb768000578d42fd2a02a0497be00c3c5e15f06ae1ed74709a15920cf77ca1a9d0602fb51046306e1083b612856786bef4be768fc3778c6871a28cb72f69ac62bf2988fab9ec06cde6776be9d2953af11bb9b099842699392deaad3a218a13689ec612f831eda42191bdbb482967e414b0633b742f7fc0bf00b8a23b696943b98b0c57b0dbe9c366e738193e1da154be4ef753013b30489ab77684519d15e6c9582b79c946a89559877e4919d5006804aed30a0c49537b815b66d4b969dffcc5e84561e4260316420cda56131c0754580beaa7085bf138ea2943cfd8c8bdcbdff2eb8298001e7f4a1bb2d54a9a5974e670583e9fd65cbd81a3043488a26e13a218644ca23c34f52d63bebf9de671cd0d01694867025181cc47dd3006f337ffd620e4970efa35e074485755f0efe29d3480e766559fb2a45f8179c1b302e7cfa39547fc33918f354db42618d6570b354fc73d373f8571b86fb9fc567631ce1a2bc4be7cf089f18a9f3334d5c88f3b78e05554ecad1cb5d9a51ed6f1ebdaf92d655f8688cab7e848c3f8e7dd61d5b814a1393294885e7003d503725830c8b784aca0c9096a3ad208306aea650d372e90fe1c1fbc10a2c59d31030388ba8774df3a32e58ef429a85252a0903394df34268ddf5a108b6f14bae58b330bf66acd2b9b5615f8639e810c5104aff38cbca51625f50b4bf1e28ce320a3e70f3141d7526844610eab3d335a50312045ea3a7524712bd509cd4e2d577a0dda0d2ae21e1e2e347881cd9967b9d5168c15e53f08fc4d021bfa146519d4e4c30ce75def323357803088bdc7011e57f7182bb6f3186e95ae47a2f66b9397fdf466006b57573c9038402d0276d7ffaadcca1b987f24386737be7bd9b2502183572ca313ddcab9665b37af72320dc9e4d60902d5db983205d2c7743a4bf09adfa025682fca45ca33f94332611e79a0ccbabeb7e81a9f0ca9195d718237455014e0723b8db51fb2b8998f9775d10d8b3032d5a2c042da4bfdd115a3647b7f31388935bf89fa9f3d897d843e9ce42faf38ac146cb5a17f21dec019f49471cbbd8e1817a7a81d1853d645bff0b7a01ab100c93b93a7585338fd7f49cf3ec013226e055456c24d83ea4bb010d82e0612f47039b9b8df7779c65ce80c07f6c1f4f045b5c9f515b05e2853cafb12be7e67eb41e790a6e5078d6a525bbaf32869a503e13fe86fc56d80ab6ddab17f9faee28cea47012bc6bd81d51ee5db1c99512c2c265358ae88f66374d02df3d65fafd0093ed20b4102662d1964cd6b1b666c50ad0c08f5aa804d3c5b36515e07ad4372878fae43ef8ab0e64d4f7e3af2c2406a418c6ab8a8cc7aace6ccdf94289a9064bd323010a13452c340025e4704e288c29e25c6b139484a390569e042703f596a4b2625995ff84fd5c85a299d76c36c08bb180ad8c83cac3fa8db33a274098d682819dc70a521d775e29a7233b947789ab73902c185908167441b7f15b7cd1c4dd418ecc56945403435cf0edef39e2acb1236d7f4e12a3b28f54af9aa0b3e0d6dbe9437d5e0b12cce82cfe96da5b171f82c405306cbbfbe6e1bdb40cbea49fff3c60fce95af8da6a8dbab7156b76185458c5d21f1f7042d45ff0fd62f3bf1ab9c04d6e4744ebdf3a1f847594860f9cbdb8fc6956dcc70af278fb92cd75973a4e8cf78eded11479684c56cf85d8dba2c7840dd00e0e0fc39a2e7257cb5e49ad3055ce85a7995c2b9c41de75e02f4bc97b5f465972081a0c41133e408f074b3b6830fae1c85217aa3f9733bbf45ef98813dd001523c6e7848c006722b4d53d0052ced627193dc7caf09d154aa56eb5eaae8958ddf567c68530b237b7c4d1d2eeed7f9d72f862e8749b0cd699a3a6403237e3ec95450d7e96a3a26b16e7d7e1a10f271ce7e6e9c79de513537d3607e933f1a34a028fde722cc03685005888a7bb8218b4508ada38325b88d4767d6f01ba3636afb20231651a70c63787042a4aa23bcacfe5ad018edf3bd540006161c36b219ef7fd980313f8db3193e9acb818f0e13f4dbc2b5eaee57fcf6d45c908d9c47415709439c0db2ea6d68f69684169162d11f1a9def2861374455e68d703abc89f018d29282e0898c38fa01e6a82aecbebc54327956daf251f03d7cb12d1c4b18ae220b727bd9e0d4080e603916ec1a81704b8ea7aa9384d42cf6c427589a4a2f0890877dbaa97e11d7755b8dc24fcc0d5fde5c3b0367c7caa9fc4781966757292b4bc16367f4225c6f1228c2e7701e99929135701c0c643c7f6d70ffc885d8ff6a36575c7de7ef4ff0a1bd46f19650951810902dc0b08bb2f2993c3fa52f98af2ab743280f774d592043917dc7c2178b930101748e704efc588d77fd289a19041a4988e6dc02d45cf32b2ba006995d0f92f5e599459990b1bc99bba6531b120e301d9a73a9ac6808e022129e253373036e295d2c4bdc9f4d80be1877ac26f04762b490fd5bda9ad78361872958fff96ccbdf10c7ac9b8147e5a736e426bd0e73e8248b93b2c265ea3007709ba5ef456cccd5b32f77dd94faec1a107d247d4f990086c31345bfdb932a6c4c02dfa3cf5c69ac58045e41a6f62c25a87849dd65810dc3613fd8a42b6e8945082a6998fd27b60fdf3c64098d6e26bcdec2b8200ebca8bc85cbf986cc46e25fd43f3c3be4042192e7456cb3707d561c4162a1805875e1057bf3609ccf6766ecd340408d62071f48cbaeed1cdc0608699256a91e586abf7d0296a76333f34505841270f5603d5c71be8d4b183d8dafa3c13909d6232a26c409784efe0b204841bc11d4446aaddfdd67a853f6842e1bb31044ac728cd630f33d00afbac8e5ac2f27bca47a076517ae549859466b399af19df11b46b89d46730154e06057bf5aa317906d99a76144154736cc16d19750673cc3a7ef9a35753c608cdb1a688ce5073422a2c32aba9c6100162f8abe6dff47b88e2e32cde8859a7b57c9ea5ee2ca1d85cd3dd65056efe6c4fd0c6ea602e23b37e8fc3f56872e8e7eba2125664a6985bb2f3c89e886efb3629d2a66fc9d5fb4ad9eb72fa7c41a8a9f6e4ec01f20fdfab0cc3411dbd7341e40e7ce0959dda3887432b46a80667a1484056263f553a87027b1c324b70990ad4d0a1f784f1ab6c9a3f3e73080223c316e918517912da55aff57604024187f352512e41c84f722a13e790afbd1c166bf7f93be7b610729a3556c25a9ae2831f653bf1fe99752e47ccf0d5b6c1c980d02764724b64cf86b61b4e420888189411e5f3634c5928025c1ae899417c1b11a689e835da358f5acc27e68bcdb653595fa32bce2c20db63dbc590169854ee567e5f30249ca0824eef6ec0c8b8849d1013cbcc141712ef73e3dd505cefbdb78685d09b612a7699ecf1197f408798ec6a6eb44f998c1f7584c3c67c3fb63ce50c1bfa96bbe304ea2aae0534c98d245c0ee21a090f15407b81f673de71f9acdf812930ae399fe6387ce8d09d8786568e5a1ce32508bfa27f686e40a1e9d80231cafc4eacb8003a3d906854eb643ba33b08f21d8e34309fbba8d9389f3c857e6cfffacc806384aca38dd7a9bb68a52e30dd1fb8716f7a11064f201800ecb0596843a4e82e62a03b0372280e7df70bd1e23f0f1047df71ece098dacfe76272aaa00e5ad904149cc2c7dfb3331c1aac28579171b8b0de1c6fa43366adb58058db1205621964c21a04aa4feed02de10e270b93400b8439319a62821845da38800883ca2204d999351d94ca9ea9c1a3fcf1144a629ec97b83a2417d9485fe68858f97480943f0cb0f76c67a9f8d4488e80ccde96561a4bc86afb11eebab5e6db6bae4495ceaefa72cab475243ee490d98f53347c9d8b81a886dab42080939bb174445b11a41ec89cf99762ba82888c0e20ea11fc2387c06e487379591c05da9f620bedf0df3e285b4502e507850384126767bff1525cdb0a297e13712eea346a892a8f350f6b4098b77d923f272cb6e15006c5bda3ef251338db1759670c9f559f8c83afba9012dd4f79325c53f525c8d08148435b061188a133c8b9d7ab84c2972cb4bb4fed6e9926fc708d735e813a1830ca08cd458f3709441b5306ae219749c3eaade1812e49eb4b10f75e9d670992011410ecdb939d8dc66ce30e75962506d45bb52f0e94663c75ca0a24c66dfa4810212ab2ad52ec2e93db23cf4177f50e9a17c446cb9138ab9d0d949e2d163580f579d3330048aa578727d930be74d6276f51292232396160fb4b7a99e3c61c6c47e1ae457aad947693838f99e7b7be1fe95dddf648c31e172b0bdff65b33bd3fa8c9d689bd434224d824c93068134b59558907751b7eeb8ca9fc2a05cbf5c230d45deecb0e681a2c9ca20fc6e302e972d64436f1f4bb941678ab514cfc0dc7c6192a48f1905150e7edc5a17d1109aa5c9b9e8ad214db1668ec64dc1f545d95f076193da0dcaaf399936a1763794e9d7dbefa5caa5150a9789a17c0c93c5a57d39865b8e7bb4f68a1270fc6532d443f186c0bd6774befc5f0be42b5ad65eb89b9ebf1378388a7c187977a42d211ccf92d368804f0aa681daee80f730ebb7b3e0d1a06ac9c9bb1a6c30fe89b1f3525952f72cddb07df3e8763618ee30d083f1a63e2dc92fdc17784fc3400799c6231284525a0f89befe4fac27c226bf022623606e2a514bdc090d48a5fb592256ff9002e1af7ac8ff06bb988f61be75c61b18a0fc486e7f83192d94fe86f43e9d9ffb6064ae4068f003088ed7a41a5255e0c975f15dbef999c4492ecca480ac13f692c091820b987703801838c3da1382f023b325be400d4f471bff1669d9364494ddb3c8ff2a87a48f62e9ebcdc1c0f8a6ad74d35415d532be3faf6df3d33833a91b53ebd3d259c9e1b809328320cd83a06ba704452e25bdb11554fc6e81aca1286afc79931dc0b8b9e471285f6b1ddd0b5b84c15d1c22533c945d80ebf8a015bfdd2967c16bc5e9bbc248f7401b914bccc0065b20d004111bf8ad3aa96b48905f3e48be86d7502cf73579f28bea6ab7351adca6e30efd4393bf76b7df341f0f6f39e91fde814be70f31a977edbe3fe030183b6d625eccea7f848ebc46775477f6b7b9e109da3ed1138c9af8e8cadd4df82fab4a92514b73f7bf3f30acf26f74b14f2260f034f18b6a92c51b029e072f7e6d3c63099dce0393fde358fc46ea9d848836b75fe038f49722838bdd86b702c7d80094c0fda12feb21f46af5225e0a1c8cc4b30df57a72207bb1d847b24fe3377a01ba3abaefaf147466c08e455f3fc0ad6c55cca4b150b1017ff595014cda1107e57d87f0b73062dd4043b40dfd81dc7494f318aa07f1bcf36c2a8e208186daebb77e154846b57512b1eea51455f0a86b133dc9a764cd57fead9a0e22f74c3cd78c29c971df59315ffd88359a150bc99e117debe46fe1d344d0dcf5dd7fbe8965cffdcce734f8f223f43b1728e701db11e5b916ae746d9adcb397b74fd590d521ef40437489d18fa0e94330c28655b90f2b8dad74beeb2bd32b642f18bad3580da293cea282e67749ca04d6ccf0be227434223d40624fa273e25100d81b278c83d9dd765dcc7a191014e83738fc535b7c1f261a4b4001f08ad2d15ebd946e81d29938ef00e5080b3cc8f016c5bfee2d4bea6aea3e431f7ef8c9f21737a2214027a2c9808ac7c9d3b330ae9450ee82e404977eb946a11184459d40f5601bd00100b3a19bd1ef8360cd8ecc27a51dbb3aff0eb32685ac6bb94a5d007cd7d57442916eeee06f1acd88813f90b214974b866986d65a786198d0d16681630bad1d32c1f6b5dd86fdfb4c87be6ef77713cb54eb311242bdc614f822601c391074020aa1e4991cd921ad4981b3bf5a9c700cc1a4708439c8304eb72dc56a7eb5042778cdcdaf56bbb470b3257078c76b02a0f1dd4ebc884da9d7ded80b63640fe1ac6ddec88ee5dfbeca8d7ec797db632ac6b7eaaff1e2530f60f0833dfe295931de9a00415c9a371ef4141e946a0fd9fca59a77ce706f45c6c3b6c88e18b52dda22c184c2746674c425ed210b29954fdf489577f130d58839da6c8d18079c5a963328a5c4fc7aa7bcdb4d7527882725623b28d16dd871b1405cc4be549cad6e22ec96afb78ca075b33a461e327544134a957da0b05db6537d969d7576ad834d48aaffdb5de440245589c2d46a2325d6a4da0e23e64ae15440c008d93f010d77ba3427d5b5a2b72e126b8452daf3b0704289d9df3e1ffe9fcd08b9c1ecc89905adb50ec1b2bc404bb20094e3aa395af3dd2325aea6c6e56f375595e5036cc339b69620f80129de0624b44a584d0632f78817ff2a1f84e89d49bf3c131841a43a03ca941a88e5cf62a5c3b6886afcb7d934315ce90e8834a8583b6b8cbae8a70c8848bc9dfccc1a3d3b8421040d0fc4c497196be8cf4a20b261daef5b677d0fd050ca7e249ffd27e121daa82f23afce9c4dac5535f1699d5d997dccdd013a09e93dd3ab65733a13d28afff80b30cdbb7140bdce1619733430e16c80eb66b8ab10f45c568bec6ef3fbebba7237ab98dc783519e181acf004cff39d2ac75d7aef9e184cf321cad94f8be318c2663fe5d66e51d6a5807619ddb08a32023346d26a13481bc7ebaae4e7315d1650915451704f8359cedf5539a2c66464dd3a07d49500eada8e1f7d4693dcb21d3226e1720c27d9dff92d01d6a0cdbbe039bdaa2db99e704b99a03a37adf4c5c7a18cbee4a147653381d41a92343d6e761d244b9fe16791369751f2c938f8d0137a7ccb5043c4b59e26c5794059a4340116ff2692608d2c726b0b50401b09a1047f458928e858fe46716e547b9c1b83c87b8a867612dfc581b97ef28c135570c3e63289dfe864b74a885b7c682af8306ce1134f23a1872845e4bce0243a834174b1e8ae3a82f7702f87022397a3443462ab55a2b60cdb92cd1b85ca4b01f4263ebebcf076c3250a694af2152f0998fd9646ef12b19108b702d0faa59028ba4ca43ba92f79276fd1732a8bedc0c24f1a19d0ba518301cdfd423f982cb2e306c6412309572d1bba9da525ea547ed9f52e64198e002ead6f17848bd7d97328adc4da97c9c2c0dd07eb71e7a021a37683fb40091c97416ca7cb497f14e525ef53f00eb1806b0f952365431160a2f7cf7a8920937a010e5c8d8f4c16ac326672775e24580722f8e56c7eb9c937c3168df98faa738a4e6af601e9d81e7bfae15939213da300fe7436fb38b0675945fb3f6c33909fb8ca51cf18ccd7ee4a30631f9163521efdb020174b90983b21f7a52ecdb36f222471343561002b82f90699061cf3f0d3919f60afc3f112d7fd5b789f5b2c311769736a7a621efa14f7d59a9ce642c687d1b0602edcff101b6bf8f408d8d616058c5618d9620819c81cb1eaefaf495b69a3f144175cbf5c385e974768e87028b8b738cbac5da01c172fea39c69affcb1025ceffe5b6d889c55df8140b885ce4949ec848792396ce7129bca6c0bda98a33ed8f8ceb916b775e1cbca73cbea80202ce691183ba0e106ecbced313a188f24d025c300b31e57ea3b3a3205d186a38c4fd633509a30ac23dce27fd362c30df06c4d9b7b93f20eb89e405fd08d3480bfb265ebb45702093a3756f2f50ae379ac548f5a21c71701bbeb8d97d11b1553f445ab036f9e8fa5aad72f6f5bb5e0e12ec20d1e2a32ff9ec16ef571dd2f525b1da7034b149018c01204b63d39151423caa7d5c9266dfe4294d1f513df8b85e7be245acaada028d30a31dd8363faa26db61d7700b1dca122c92f4cf1633779643fba8f4e514ee841ed81d64c81e43dfb751d4baa7cd4b1fd4b67aea035d14002ff8121a33e124e1fec8df5172e8837ac78da84be79597ca8a5cb4da99fff9d41c361d3a5aadf5d33a068af62a00e17b902f233aa2f064c3141ec3ed9df7e6b4678244126742181136054ff850d0e2ab1f99df212e4f0f0be9dd799bbb303067851f845541f25e60ac92f621d511de65d33b4b81130af3c8f34db6bce8baf075b74f64fe55c7456bbd8e5e6341e44c23edb526ab3f32fe7582a7de39b0059f4208c552fb15dd4d0dfea912e8a85ba084a82eb5073ecb72f17ee3135cd0582079f7111a0a31b5befcc579ef6670a7d14fd225848e947f9e70691b83194e05b13e0363332ce76ee81a04613b97c7d7931e6ba53f5695985c48b9e8530ad89d5342095d98297cc2ad7137d1f295e0ab28b58045a5f63481ed99b58d24477091ef6058acdaedb45e93de2e3f10e25cf446e642e2f014e90b978c727aadb92b94e01f4a98f654946105a00f788382eded0709d256773e39eacc10ec0516b530d51aa97abeb3d35d8bffe2d0b0013851864eb5ad5d5f1fdb88efa0b7f3f8f9cd849971d98a0bca1c619fab58360e533cf9054fe08b2b796f50fef0dbb88c2f80a4a6958f6f016fc0904c6e8c63719101a04fad34c3d0342b60458eb28ffba1bc96d9ae4f70d695a2b0857fde75bd05b8ecbc36312b433935b790de0ec92e3ad827b3645b9956597177e42a17b858cf5fcfd1564119c113a05bfd052658eb927502f2eb0f2baadb735ca6588c30da2816fd3846a0b4551f8d64572eead5de62ae59fa332c7a8e688dcd7afb810df5ac0284817fd8d61d35c1a4fdbd111f9fd90f9bb6aa9c001c1dba1deccad5d057419bad2e1a5a726423e0e006ce6cb3dba2feb55822da5798204a0b2928769c7cc666ff676ebe63a4d22664017c1ac8cacdfe72bbe827ca8057b915e7a41d936e3e9564d2e0aef7334d633cb11e1d1b3f54b83da66ee48ff00dc418658e9d90627c0b1febbc29cea741d96396016e557966c20395a3d069b60d118c82f3c2df88ae59187a861787c61c7b3606e460dd6b2d99c099c74fc76c538dccb6683e6fc0f05c7a6043e864457e40c5200faa044c7b06863fc5ca78de8754f86104703ded3ee97ff45765c9c8a2bb49f234292b92c96015d3151b76893365931a579af40c9ece297485303165f2900e9b8ca25b46ce6c82a1d832fcd5f576030df026df3d58b65fbbc2a87fe23ccf0565220990679962cb53f1e37f77756731ebe2d4c3c1a5fbb06195a8009341442a92533302e3c3c03a83cbffcc58970489239938060cd6c1d7fb2c883113446877ef0ebc42efb72c48a1176ccd9fb45edf17c4587509f8bbee511f602a71303f2cc4ddb043c4386b8d9b5229478c835eddeb6ce2e9c3ac7b7d9b5e5b58ee11c37f488c2b278901a5c438d923f28e2ec2d0545113061303a33907e32bc80b536fea2411a6b80089c463916a230a64532172c020f262cf76672573d36ce6ff9af6de6b3c86ab6f7f86736c306afb2880dbb7d81ed5cb0ab7e5354e6daff8625b8044cedc9796b312ace1ee62e3639c704dd8fd9ae1c10e1413db8ac4fcee2f834bc470e1c905504831edd9df3186536c52e88bad064c65fbf5aba6330e00068ce86ac63d3b1e549156f87644157c026695b978a680b33b8f6826731ca7591794c5f81f44902517644d1a5cf756a78229c39e577ed4193397df1e2f695464a74fac5dd15739665b72c5b41fae62cd6fca17226e18cf7429b5254458728a3db66f77c7634b9c16177c6fc8e467e5ef7a874aa2c8ed88769f5cee83d3189f716d2fd46ef50ee359ae5c194f17b2e681fd6e824399b0a33d813249de2833fccea82bbe99d54edbe4a5fcabf7880e48990b312476296f0313e9f4ac609de3d32ff81cbbeb3a06fec3b42c5012144d421949f74452156650b537ab485053441c0e6d4fa72872e2485aa6c7957f03e0dd0ee52a2e10cde1cd4e99e43bfb8bc71837350e58d05085164a47259bbedb7752a3c8dd16a1a7b80faa47769808928f04e658f1171f7bc70f3709bae7680846d532e90515685befc04e292345c3960c808ef0d546bcfd7ea2b5d7540fa320292cdc40476d273f4cfe0d45170c10080751e7c840f4cf252020b2bcdac36d34fb7b64bfa0f984b88d8d96b3037e5cdda569ec45083c0e056b1a3c0e0eeb6daebc578dcedb334cb28247cad946343b26d16ab35358c599eb6ae7ca14f61ae5a793e44219008191b0cc92372d14514512da20b0b64320a64999c2ba89a2bcb4c4cd089497d844195f6c86c0eeedd5a4c88048f342d06d8aed21c514d1a6ccd3359639a953132ceb09905e2785eb57b23f1e0dd01720f09acac60429f6082e4f9994dd517807b3312e476f21fc32b43c7a7db8c2d4f02f62a3dc9e00041af8fd3d89a01fc109136b9f3f689535f0273ee7954885c07517cad2a3128482735db5e8d9eb7a304f6c4a8ab724c57e21a4bdf3eb4fb2652044460d3f369b35311ac36d1107dc6e914d1f4376db708f98512ec182dcd44a47179c9e229ccdacf33c84304882d8d9db2b81e82acd00aa3b61d57dc7e74a65bcb412787b2bc1e35c574186842124e4ae31d5f64db01eacc4f50025d60795b10ea8c4f56025a20795b13ea880f56025f3d5f00364dc1f96e7ceb09cf7c3e5a41f96e7fe85b815623cb83ab87f02e716aa6b538b47aa65eb484878811feb5f10398c6cd94d85364fc4edc33997bf04cade8070d97348e32150923c6692f00c997cde086069b7ad468312e1d9fdd38dcabb0894d1a4e051d00cb7cde73cbd2b0758919ee9a9496ebadb7afab21104cf48c8758240726ee18191306915d8c4eb63e4a0c21049be486325831a677a3e09d3487720febdd32bc8fad1f9ce1ae2d18fad1199aa79962e65681776deb199a8b13266466acdc6554cec2f0b2f3110cdec8b9d79da58b729e37a63dbc54c439865d1314c5f762d22cdeabc51d7e0da84c66f445147a359c1ec1e4b9742b94324480e242671685a18db51f44010d78c013921443c022d05b086f8590eff13e9e805edef67e051a69af11e575dea4f24f60c70a4ab31f3fa004ba4fa721006b93cf890de29803cf10b850cdc36be961514f5fee8ff844fd74ada2d732b19d6fb44cdb4fd2ab39669bb4bae8b4aa842502642da0627620589ac634cb55e13aac528a4b8a67c6ee339dd38559569d9c9d64fec6db335b9968d747dc2e63a5f9569dbccd625df4526dc64e7b919bd881210dc03ed50197a799b7d9c7a0fc45047a7bf46dd84662f5d5eaea59bd92163129f4e357cc6c1eed5fc658a8a6f461ac097762fadf4283aaf5f7d277431df14a4e88d2388e95370e08d17eb143d974433650c6721b7f317626453ee7406aba2c9ea022d049f07806253c0094a25703600149b82bd2a45aa5d2d1dfe9bc658673329690e569dc5f0555203e0d0406506e8050f8595070165e9593133c4b2a72276c80bcf0a0cd0740fe4f1c506caee94330da38f1c941c59040a871655fdb2a1ba41fdd0a2c68cbdba7d785d4e16b3e0f36e40039c9226950a7ddc201a758394c295b71691c20f571d776c55762b7700b7fdad2f705209c36720ea4ad323ab7bc17f8fdca99011a156a81cd96ae87a9a5130f1342a810fda6c70e0c6710d31c769599c8afcf9f20a91ce2142ea3d6f36cc5eb5848d6beae28f99afc2dd67a2c6cb9a8b694205f4c07358477a98c180242460654129085b6d9afe5810d85f42dcf3b85c64ee30150f8feaa3b59b027ac45a8d743f106f0c0e7129ad8ef881ac147883b8e2c62b96ac4399891cc69a8f01e769011bf75e36f4f6a0b7835e10d443ee82dcbfeaaaac29950a9d6bea9a403dbe055ff5515f04d6cbb62d5b0601f3596450eb4d26eeea5ed0ce77a87df94f9813050d78604bcf23b158c82114101dd5d9c65d32e239ecbc3289ec56117da641ca565bb3fae786bdc35ef910686f868c830607c342ad114fda9bf5d2b8f526ca8d4f1117f78272c0539a535e19e89f1f4d12474bc8bd3ea3ee3a833cc145757f2c9c2de48ef1b90ee4d2780975e3089488bfe5eaf3737cb8e4812a9c600016363f4c13babc11f304938f988d9a13cd2faea13b87842611e105ff9c186b1b10b8ae884d8169c5d2fb58cddf1a184ee75f40c578571a54239c1d1c2fe6d2b7a4768f496dc8446cc3650ca072f20c326386c39c19a4e0be18e307ac19b34b4c8e144c694d2bba1664bf904f94a229c2f11d7ab47f0ec67c7918b8843f0d2b326c370ac8afc592e837bf5d6cd959c3c400d973de35108b883ca660860310bb3937000707f8adb07867a001f90bcc39eab10b9d146c5cb1f20480cb0299818ec6df3ade9bae9b7256f7077e340fe0d32f1c4ea1d3ecb2e7fab8e82894d3f08e11a51c0a5a60ac1f0377022fcc0822f23d19c20a912644a4b487e7d2e02a0ec1326b73bba101446ec3fc0a788667d8d5b13f3dbe68d8b181fa19d06569cbabb59c55d52b69525a93485a182991a6c17595194f560da33838de09eed48f62e24b36a5a1873b16cdcdff44207e0f168e6ca902abec5163205369e532c6682bd73f3b9cc6afb632d75a055e0287311b86da347136e1b7acd8715d3b8904ffed9c19fda5f8235eb9c532bc02c482903b53e2dfcce575864e50ca0fef2490eb3b6c6d713d5541448ee364e9d45f522c2f9b0f62563d105639040bd2c9e2491a1321c37f7b8cb09345d3b3c0bb0bed580ddbe0252c70a106f50b3b4fc3c57e232a7c0b7d1fdc425007a4fd1d182af40af3b5713d3975e009f328ce5387b7388a728cbaa61f4ad0396d9bae8912842a93a72436b450883be58178253c4e7a4e53005b729863a8a75a98b29f0476eecce002af0443771e78e0fbe3d85a6d3f596ae64a35d7e11c8d356b268f33d43972696d34761c0b068274133665b691ab849ba817e7b2213e888e95bdbc98fd9f257ab8346150cf788a1e6faf8e15a9107d212f2fd3708afc798f759252d27492e5cf280c5a841679a6c289eb8771188b5cfa62ae5f17d4e8f36116f51ce9cdfad80ea73ac509bbdcd840e838af1937e2beecea249fe38dc510fa752a8a4dfdd8c19c3d0f9538e5a7bdd988b2a95cbede841a374c03446faa9b6f608b2ad8665ed92fd42b70cfb023f1dba2b470ae46dca6c967db4b7e0217c6ef0749d1a47328a6bcae763c23584853482fdc04100ba95fcc2ed753be7846dbb730c34ca62d253a70712cf55b036f049b77f5793359537bd86129b3cd4b8a7bebbeda1e43a3c6d82f2277c0812b91b9801c4f93886c3b1f14554e91c9724b12aa6946b088af6599728bff50d0b439692a5b987b03be4c2fb29e60524cbaf674f1816e6d1db72d30f2a20569629df56979b5b036f485ef87a37c605c98188c338ef916c72de52af78ab69561c726aa0c6be17e9f04cd1ddceb8e725b3d26dde761057580e1932f347a8e0cc7387ea5ac3cf3196e1d49b4d5a2bf2ac48c145b0ffa1764b4adb77f15c6f01f25b06c227ab63c39d970a0572018e810ca3806f550ccea1702f4d5d5a6791b117662404b281ac3b7fb17bb0ecb33819ba7c774ef885cdd862c0080ee2c784100b25857a5547e159c773ce5ff688d77369a025b82e4c30bad94339109905c81e0aa735bda61d3653d935780a8dc9a010136dd8ae9a4272014d58052b00de0583f1e95a953af39cc070a264f25759d9e2521d18995b23387b93311357ecf8c06494e03aa36a888ef094d6b7ba88f4ed2783d72e28964b2daae1b4a3dc74b512dac40362543138af028b4b5fc339d8eb2d7e886d19d6a3f37aab1ddc881e75a00f3c5d73cc764486522cdc589f08bbc377c122e54336255787ed5547b3c6fa7fe27711176b8810908c5a9c6ff4a99a09d5d6c81336bc3021347bd3a87de456fcfaa7c9605efcbec0556e0c2a866c1b535b65cea9d874b5169891bdb84241bbd332836d23ba3153201d696973cd49691c7b80034742f8b22780962792480aa51fb039f7761b0cc534e42e62562f857b05443fae555da91e12e30526f0c944bd2b95a3c3d840cadea6487ad58e33e8064d05b962f43b2e3df0b931686e068b612a9e60cbc8d1f1cc6ec08cb4780554ff396d7b0283b6c89e5dd5ff0c98128faed71a757699aeec4a0a8466b97f182f5473c130e26d84941f4e53674154e5ca54ee6a3b6c482d8aadd996c962ca9d29a4ae9b38555fd7b4d0b662b771c201a208b841342cc7118a2c8bec8da6c2f9277af287462cf2c86ee7dbc1d6d57eb555533de636c2db3ec8c7ffcaca51e5395af0d51904984133e98e74ef42691ce4c43c73b52be6a3213df61fbdddccf5de9d08d213e6e37def3de0d205fd65a2c3a331623044f360f371edb0089d44d482d6fdd1cf2b593dd649a3be5076da405438a0ee060d66bd8001d3742a3251af136f956c17355372b6d67f60ca21ae53dc015a14beeb4b6e84a41697b4f87fccedc65a04159cacca88ab086d3d543407c2f3ae37c239f1f1f29797e4825006a36808038c5ca9b843f9d134ccd82b77ab268ad5b44f87d989810879807c1a1fb90d46a92a88958da59ced20aa209379096d9afc8194850614b278b7f02dfa8a903663e6ebc25e9c1695a1cf3699292b8783a1d804c4459cfabbaf39181dfc786e49caec19bc1d84d56de306e357f99e36a83a1ca23574e0a09c06c307f67c33387bc50f8ab8400bc18a8603835638057ad1fa4c30c28bb29708d50cc1c6a17683c796ae2c44474555f03c29a486f1a4129582c5ae293835f4c7004192992d95c32af0a01914461a1956aa2bd635ac9d088079a25f6fb4bf4f182383d932042c82516093a30b62969e5278c7bd235c67c46c339dca072c4217b3dd291c60cb938f697053d3049efbab52d9ade254254a06d813f471d1945b0d164960afe688448be30a322e3efa220ff8468c1232007f428cc32fb0f3ff08932ee0f6a6b6dad95f1fc4a009a9c2266120490c91cde4ec889e7e43ec41b34080ea34f8230823537c2d077c20c88616ca0a5365a8b2d48de7c5c16920b43fb32205ea09d3bcecf87798b42e3b5bbbb2a171b40a539b23dd4de0f2330cca071dcc5469e8ecb3eed7f7ccd215e955fbfd96b788be77f35a1cbe7921657b9b5d6e4a3e3ca475c297078c8c8184621247b9ef81d56eec1a3962ea585a9d8f51614c20ba32253981bb94958d88b2db93970fbb68b23ac056b00fe3ddeb5abaf8c850f059e174de065a8336193d6419a3ba27848833b3862a11d52097c3078d173dd036bb0c841d5f3a754387df19cd08e9717bc5f490a11ec06237d209004f648abbeca6cb748c5490f6669635d61b36290df5316b080eea919932d430fb99b817216ce97832a83f5854152a207b63ad0c1e7246e37451dd8b01da7668564c44ccb2f55917214b136e420e736197de651d7373e10d3d89cf97be8f18a159d07e05c2b2c58ece5a10e9c99b64528724d8cba139b283bf688bc7917319c5a5bee55d867ba58bd727f1bd85ef89ad420f5fbd49f1c7c6d0773224859c528ade73f844f6702ba86bd8c17eccae008b18a5e7863edcc30d6be939305a589168a4c00b74fa5f9b06eb0fa547a10e5a42d199b33cfe8504a7bbab8942783a8a719cd9c670634c5b1a394fe891775fc4e3b615e4a9b2d9df670ddd9ad7db06c5d9f6e9bc104af3f587701a84304928e140723c2ed115d8aecd8bfd173130fb9c70c4cad67a2976004d90d0da5e07ad5d6237ac1770be7e7ec762858f21eb665493adc02c53591e8d1950128adf1d52af656ad9ecbcd3028ac8c8b4edaa5d4542d8c7fcc57f5bcc6eb3f21461c6f21a1e1fa2c8c0098f923c0ebecfdcef25852e35a819ca7505edf5ed38efd09b284a3bd5d2affc3bfb4d51faed97731d62ea04fdb103912112f64b6b099458b210968679c6f4cc33a825b7b71ffab390bb8b6a5f71c07401edce2a2f72d9c1955e120fc9c1fb8c61afad5179a1075e77cff2063f665356611bf2003bf627b2c3e479fa4c9bdc458e786f1dada1be192cd8821eb63ff77db5b90fcdc86385e639af53a652263512af40d9e21e85f7122b44aa9558258ad54ef183e0b1a7579235e79f29c1f268a47933aca48686fa8e5bec58babdcc6ecb38793fe1d8a3536c937d46626fbc54599d792c4ccfe161d0ea7617a77715474ea7b957d2f6b84447ffbdf341f2b7f39139305f92085cf7279287a0d29c49af30de23b521859010b836da267736fb1d64f47f2e61cccfaa3476be4d25dc30a0ae799b2f388d52842b06a9877daefa28340ba6772019c2c2164e3af8e18b2352b6ce5e8fca611847bec7234d603f632978e31e0ebc185c2cd8c05aa3fe09d499eb612b0f25f15ecade8ca881e3f0993568124af16a13afe16cae8fe9cd5d228b9ceb2c0f20092c6e0b277d816f570c83de79b42599205639c6c95cf04359ce225153a955cf49acff0606948d04c7b814b2d2d5be2ffec93b3f61f75b2bdb7e111054ce9a10f17d62b9d8c7be2166e788b68a49f5e4cab612e0ef85d9df7edaceacc0cf4cedcdd8ae629f088e8e4a768fc6b8af087aac759d079767d0266d7b69c5fa71f24286d3fa5aba1c165e126effa702d6b7f3f497b0641b8ec97994be658c8baf79edc0265ea6e4ab89a4bc34a01ebebe9cb5b7d6a5920805b2f1637ccb931d47e74c8b54b0d06fd5557c98fdea3a6f5495c11cb42c328c1fa0e2ef03c73b1a2d7de480baca425129d48229693916584e53fead79bd5b39a3d82e316b13c27e4391e5e9b13ba93a7018d8521834d736c0f8d7d929192c1e648abe018c6d1591a2846fbb814b952526e032d3f8618277ae903fe1a26244d5d8b9304574b48b448116aa73394e00213f72d50f1a2556d5e0cba7c7b05ae8d80882462848bfa034640104c838b71ec9f93c46028dd437ac63d794bcc252380073457132440d6f9b12344ea6a3144380a3b6b82176a137ad35b5eae471fdbd4e0f6dc0d0614a5ea0d2f69cef6d645f333548e7f67b836c0d29b574125ce120db700f0af4bae09fd22a65465a96b397a25d53d4e704c643e90566a16c36b21e8e83add4c41dc57a925142ba252ae82efb320b6a362d8ee91ac8ef34721edd637cd44c8a4a524dd6e2049a54e53153b2aa3249c9f6b517ff76484764970a426ae918c5f44de3360b42524c72123bdc392a6d83463492d3396ee6e2497d58afb67f003749564de2c137082e105f07d32123a5d496268955844a7724186a56bdf1c1318e951db2037f742539a006cc74c74d2218cbdf70ec064dabe56203832f4de8e9d035323ec43c5acd32c9ccbd56a34fd54b92675c2df77b4301d4a27ec3f41dd1517d00ad9a025b5943534d2eedc9979bf4b06712e59bd6e0b4793097769b73b1b040b735c73455a90d0335522e719da56e4c043c813510ebfd0acd70b76b9416d7358c6a2841189328d9dbfd23484988286788437b007e03bfa904398c8211983a1d0028145281d27b028bd45691c96352cdbf8fc5c9c4fc5b2f2b10d7f14da79a3f22a2cfbe1baf9886852b0820a9940a027870cc8c9f0bf8346db32f30f86ff6e129fefd667b77abd2c4353212e8141fc91fb865b8075c09613758ad70161c475b9ed47a179dc1c2537d49eb8182ed487e703fef82e2eef1ba1966fcaf09f836895f4c1c1c57b4dab4e9ececbfe74e01a2b2b1ac0272fd2210c2dddb5fec7127a0ae57063ed0f81a23dae94473b8af88f8beb28b1dc3b02b217de2ac1cf6f93a2a40950b2345fe3857cb4d8d42e46612fee38ac35d21b7cd2ba021267da7873771a382db503d869e4f578a7de92ae6d45283842c7e3ec567b268be5611f2709c685ced41af16757e946b97d6cd3c3d4655b8cb08c43e1b0e8e7e7a3493ee34437dffc5c87ba51af42e10a53dc0942b6c7e0faed6cf8c26caefe9be91e3a772ec50898bf2ffb5a6314548421669d0385b8929bb619c0218677c5f0f495211a7d902c212cb58d848dcc5865d34e59684ce88961ccaf3da4afb3e4b224dacae9721e4b25aeb8bcf7c911c8e9310b08f5f65ea49149a8ec0cb64de46c495eb7b816afd4222c5552e66b4b159ac8084c7e785645990aad65c8516c5c760f0eea3f3de4d9f8b9cda7961a6bc04033ae7e9592e8aca73b64146f609a774897bbe6bfd3f801688ae1e850cab5d02a67e3c2bd16835e852df86d0cf47e837b3940466e0ae917e9855a37050bdd17d22da45ec6f082eba51532442fcc8ecd8bc3b73047af8aba9e655e35e9b7c21ec7746f3d03688588623e08390fe573ab6e6dd153d4edfe46d9c1c3098154cdc6d47e640d2ec18309d4331482566cb453601ca69785efbbfc9af342289c776693fbda9e7cadd8536b61f78de1928a21c3e02574a8d92801eadf9859b8a232e30c0e6e8b8d2f92020014ae237cb5ff1a5e21c577e59050760de621057182edf5af297e50c8d4fc1c478dddcb83727a806d618076081f70fd8547c4db5232777792449abcd49085217f0293ac899baf004265d19682b6d12697420547da1c0be62a7ac9f9600a6c41965601496692be0f4213fb5f72f89b8f084b4cf308f59c4ef35249ae5cea826feafaf5816d9db3568b8bcf9d8ff64d17eae6dcf123ac6257223c6b86571a649ae08ce28e4fdf1a452a08a456b366109b9bb4908ade7a9a6f3258a1d588cc7837237213ab731ba1446eba8e2b594f7bc3b6be9c7ea2a578df7b15433ac95656a4472ed5146f4e3f9590ac88e9e4c16fe73911a743c47fc09df28cc0b0895ec9e5eaffd26a62b1630a8622bf35cce11a81fd90d66000f2a1ab352d224d59ffa841d7ad182b270eff3be4ec97cdf1070d2ae891175fbaf861e2239c28f36b0c938e830832025314dab09b5300bba5403aa483d864301fddf43f1d7f51591e87dbad6dce9830ff35d4c0b0e4656a475318088065c08043c1a2a32ba98506fd62a5b0b6f2c1a52a1c8125870169199f547da901a92eb451b1ff1bde748d273aecfe48550f64ccf610a93ecbb1387ca46d6d8c3a3a6888316355f7c0892bad5e7b080e5b32a09fc815c180e34c27841e1a709830a41bed1465ef022d14bb148dd43090d6f0aaa35be2b85059d74630dda65c9c105bc5b2a52d64e794e350b3754655458dde494f25adf5e1ce40d3d7e256ce6a68b661bbf7d6cac3809d5264df179830dd86ca881344aa4bfebe4f8ab2b073188e5694ec33bcc6d6f57d1d4c9663f2025e5d36337b0331fe48a704b1fb947f6b4a186b944d86d362ced76567bb3d6beca100e51ba9cdd4868690aa9e63add26fc7435ebe676bac9615c8f74c39b569bf57effdd1a84de41ffa9620dfb4a61d2042db60350683b23f02f17da87cbabb24296c19054b86e1a4447a614ff9bf392a20c6897bd57d1ab83a78803a2747490f3e582c3012d9566c121f6a7a2b661f97b62fdf884335757ea3ae8a42837cb52be42c30292d5c0453a9b5a4859d29ff83e2cb2fec5f55afb6ac0f665b4e2ff0ee98829544affab8cdfe246b52e9001667a951c8d6c72d54209c2c95362e2a645653be297a031eb59b6cdaeccbdc01a3e4839175c1141dc773882a24beb901072177c1952b4b4f2e79a5382fce0d8c130a255b886b9b7e7d0763cf2ff391314600e29cb71abaf11150b0e7e3a59b8f293b707e0389e8e6cc6d9352b030b6af3f513f4c1133d2d4b99f37927cffca5386ef1bcd2e4d84754957017981c8f29d9c338a1fcea30d226670e4d239aebed627cac198bd8bf0b9548f3c9e18859d66adae2d26496a609e357d41123a8fbda9c531ff04c188c183091362f7271a6bd4bb12209e37a5815168781b136910b52ea632c8bb4a5b0f0b99fbb737e956ef94c7672c7f078d2d7ece9ea38e8d42cbdbd3f4566eb5be92c7703353992e8c7e822d0194a103ba9f2a875820d2b24a078eddead3be3998adc42fc570006df9f894f62b0106a866e9b27aa73c1a207fc23655a4545cd5b830a77f737703730fe0ae6a0c70e95e742cd8c6a2abf65b1df867dff2ad03ba2caa6c64efbdb7dc524a99520a7c08fe077f08bf7d4fc2080f00ee3b8cf3e47c09fcd30d58fd8d6943f5ec3c340fc69e260ac07f0e1c8f03031bf61291f6ded744a92662ae758af55e6e30c0105582177a26fc7f8e17f6f53e2792f07d39fd5e47c51ee10b5797fb007ce10a005f0e9c0fc717d655bcf9426be30b57365fb8fa9a2f7cf0169940a55f4de4e0eaae7298e05567f9e75ff640a295e9a5b0c17411429f411480fc2823093e13d42d3d46ac37e949ef58983d3a16eab7c3411f07270bf5c3b01fac33670b456eb0f359f6181c15eacb07bab23f22118a4dd25cfe95931004631221f26594b165fcbff183c141f9cd5049e41f9133f67264a16ffcc021d890a18e38cfdb2061c3bf12f4efaf01ac232511ff847c7f6cd714c2c639dce5df2e3fd522135e6edfd0a15889892ed115836e7c4aa1628f640a23a3a494328c8b8182820a03556f8761a20ee5609483368ca294817976c8e01e9fc882e29f79429cb283b884081dfd88eef6e748ab2c2c47160c4c4831ca300e32c51e876256fc5a991c6a853ddfac6646bae527a32494835142e5847109d51d04fad2c7aa831c0e7dc6c03036ccb12a2c36cc6972307617243a6e92febefd61a2a02493f3104556373531312d2d2525212141c52992e9ca181daa937f429c72639481c1e86408ed202e7122c421198b107130824dd3256343bf8e2a965f0791e5676f5009cbd96f55faca89d59e7bb02575c51e9059fdd8c73104571de9fc2bbf50caaf8dfad5562894279880ba0e7a3e5ae619609d8edf0d963f6cd75175cc68636666a69d65e39cad48690931b7afd21261ee7c0f721ff229777ef78c4ed1a9a6c8e658b2733ecf76b06d886c8b8912820ddd45e43cf19be7e5aee8422c336ca8ca2e3f76b9ae9ab074d5845d356165748a5d306b3e3fed52e82ef645a7ecc329820d5577e27037581598cb50375c5d161076081baa2e8bc8861de52fd6991fbf645fd8f8149d1c64c9c0861d75e777548bf9a6e2e0fc8eb26ac2c61bbf93b4ccd59dd89c7386f53661597043145cac09dbde5e53d877c717f3e8cc64b02ee42e07e76aa5729e96aeac8cad9f735ecc1ce5c67721e7e9b4784fff3014c57958698920b9c40d4bdcd089b8d1bd7152786fa886720f054cf4280c3df2a0cfa33818976c90f374ec97dd8d147ba251bbaccbbaaccbba75eb2e1badbfec8e6f6383e5966082baedc9dcceacb02ee42e2c36acee72225237c36257ac1bb8bbdca5c0dfcfc5eeacc9b6393bf9ea7db0f1c3558c4ada87328a5c2deeb9dfb22ccbb2eca947d98eed7146e92784880e196cc85cbc8883d17ffa378b3022adbdacdeb3bdf68549244864c9f60f21f2806cf336ca51a7488e5ced33a7fe8547aef68547b22fb429f88747eeac58e53be4e313b9d4734e9a5f12797bcc18d98a4fa43d80e39f1007e3673bd8161c8c2c256cc8493f1c6c81f33616c34a98a41677fe794035830d5737823cfd3b767c9c07c73fcec1f83a9cd8c8d33171d9d13d72d1dd2d57a53b6b5d6ced514e8ad54cce4cdb62a4373217539c9c1847398ee3389a838d2dd61ea3d3f8491a7d4629d9c148a974199d36e7dc11cd60b3ced3cd8ca0665d09e8c4289db24ae99cf3645d094e70fd3bab5c8956bd2ae10c6be3b25252961f6c775929098b0d702081c8d65c564a125ac3aa2e2b291166c7674749892f0368010a3a7eb4d8a1454c1638b0220929491ca194c410949490e2ca9fa10b20c2e88a2984b042084fb4e46cc1954056a4f041cb1015222e2d39975c29c31557d65c29a5945226e42ecd1275e9002ed5c28395524ad9458a932b6fae9452caae0b22bb20b4995c2ed70b38ac977695c8832e508aa09452ba7541a8369772d0e3870c80f482e386fce5064a20e180f4427abaf20821ae3c22cb954848b95209892b5766715d9925872bb36c71e5d3d531460f8c2842c7081f5cf9558716dc16375415f103018ab8e2cac7a244e5a00370412fa972e4ece84144132522ba983aa0b4a8a20644f032441557beb5c1d100982c71f4040ba5231fd460d5235b92a3c014214c181ff0b086132d395d574a71e5f790524aa9c38c1dde766061e281658c104220b133840d2c363408220a4d928a064855665c3534b842061689860664c84c6089d10c103354492159206a8043e79201820b156e0c520a88a71c36264c9d131d3435b8222ad9045a10b53551c50c69417051054bc3290b620d2a94a95e91810f6b345d49cae175650b1ec640615982c3045c4b58a8542982516471c592a5063151399a58f56a0c194d393d902104129288614a19554c9052861125fc50c61633ca682aa10c28d6652786401465f38ecc919b9d96b8245dd6c23c6b1229ab3dbacc46714a2b31f2f37cd2030d1be338010ddb532efb607ba7872fbfb24056b6844183a82f3418430d39064a0fa49452ce1e862efd4867685239558e2be50e1f3c146145ca95ff5692d8218d9d1984d5010a06738b284c87357a905c1cd11d7898213a25cd1d8af01e38492968c0300cc3b6589a5b30d91dbab841025c40d5708698132e3b610614ab29ab8a4aeec262927f98993f669dfeb62e19143207550999232eafdbc9105a56e212e5aec0b21214622e7fbcac0445d40debf5b802c3aeacbbbb7b1cc0d02b8a47778f3940f703227f38d85a7ca37dafca33fa4e6a2bfb8e1e236b287a952e92ce2ccbe8f7bb3fcdfc03323f9f1c20b392146068bc587aa51786e0fa73fcaac00188cbdd0a37d7598362e3e71c1f8f51c6e913003b4755a64c9796e51a918b0f90a0f3e0ace0fe81971fe83e031cecf9a3087bfff8f5fcfafd3df9ee1509ad5ad8abbcc7df496d61df5f022340e84de01f423b2decfb3d4e00167fb04e3fe6050539b12d057001fa11c027f43b59b5aec40f8847779983134680a3191c75bfcbe8f17da41b7db89d43d3ed1dd679383663d9987fbc48c8496c31c15a574a20afbb8498b4987fa2c7189d999bb9bb2718393ea53f425329e59414cac639213349fe09fbcedbdf0eebb474fbe00e5bb7f177e6ceaa3fca8e85be48a4a685941b95a91dd6f1dfd9915a24e8207b9e027847ac9d05f1950a7c35b2bc5bdc05c1c01867b88df60428ddd3e34be73033d4b1a1627f6063ee20789452ce59b32c0d4dd3b68d524a69d7c954a53232d60a459999a194525a6b381a4a3fc618638c2e80393954d3c6c6868db6a152d9d874416e6c6e6e6e543534373733f6e6e646e626d5dddcdcb8bf6b49d7887fdd169b1c6c7238e17ab73d4715836ae3cd1333dc53d9f24fdffe66ddbe71e3f6e7dc49a05bfe409cbdbde09c501e09394f141f8a3d1c7350bd322ac8c6ccccf1f5e57a92f3a4911fc0b5af358d6a54a31aa5946eeeeeeeee5a6bd9966559a6bab2e56b1e92d8de659f7c45594ee87563ac918a83413818a77891888c2843f2a82b6266c9cccc2c99995932b364342665def1a9f1b35187addd006038d2c639314e49dfbe6da7dbddc4b4752775dc41dce6a6dbb2466f07b65fb57a769076f439fa5ad64e4637f575100e527047e3a590993eeeab76e53c9e6ad945c78f73055922a2d7d993622d3b766b72e3baae657777ecee18a3dc78a6a6636913bdf06d7035aa1bcec6042d494bd2a0d86cec76e95576c7f80dc52827e5229548145ffd3330b07352492b9d81413fc6612a955d39d95a2b478d72e458fd53c6f537e79cabfd9eb6754de9c730947efc96c921f3396ece66edcc0c0da53f63c4b018638c5f48a30bb263d3237a84f50867cc0cb13869c799cb0fff563baaec376ef2b9d1bbefbebbbb077fa10b1c3bb283a9a79b4aad1ea84573019bb7f1436e7e75f3f9dceefb1b62a344f5365f7fe1ceedbaeff8054bb7fb540d27e3d1bccc5b6b53a9d4abc037f540b7f3c22f72fb6b3c1a2fec4bf329affb70d5359eccd3784077e63340f390f9ce0b7b5c19073ff5dda7bcb0c7ed8c6e7fc7da9e0bdc74ed17da558d335e713024693779c1e4847932062a85c9c979a4cb0be6914c98640c5408540ceed15c9ad010341716b63fd45c740c3fc98fba98cba5adb4c61e6e4997f3d02707650cdc43a55c7f2a467ed4b18b5131b29f9aac3805f1440494962827a4cb459f7210468b135c9aba387979fa0205268a3e4917d2e6a24f29fac43af4491bcac6b4f69db59665516badb5b15a1b6b4cbe7f63595604acb5accae98319ce82c8da0e6ec3c66521fea11f372d7eac0583ce7429b29e300f6d1ac32ca74bd1a916cc13d56070298ee118aebf3f33e11e0a453128d7a1281466036355965846c6daccf5694046c50c7b29823b5f324b7b81762bd418e53cce20f61ea6001bc33ddafb4e0c35c352f46bbf98c4eea6c535e494718af7c4a5c892cf44a5c98a5310373e1111a1b478363746c51ecc85b95c3f1cf4f7598a3d591767f97b61fad204260b9345282c46c52f636a01e66a969a4b3b62e397cc51e86ac5dfc7c99f65e64fc627977be21366d58ac5270cf24c93300ef17c29679a308771687e95638c5122fd4ca139e79c4cecb30ecff89f828d1be79cce29a9b981ed97b1ab94524e28db562f16141ab9311eb9fbdfdcf83993832e05fbeeeeeeeeeeeeee965894320ba9ad31e994347ecbaeb5bbbf9851afe084f8a77e8c31c6251bbf566b6338c1103918a9c4b882df6e30de43e71bcd304717292829ca75ba34853251a191c8e6d2a6d893654d99d10856bc62cf26c659fe4146518ea62051b96e65e93a174466d4a56073e7b74539e8bf2db1ce3a717a36307726e7b9b9fc9947bd388b9e00c58691882852f19e2c88cc680ccb19ddea4cceb3e28ebae0d85f8dd1ea6361b13bfd4ee9d7c359cc3b190efc35c97fd8e4c4b1e5603d9bf9fadabb7dae3b49b5916bb71cf795fb6d6b2ec8f6f6c361a1be7d15ea5b22d73ed06d2ff442ee72a997891ed0ed247e539d17eeb8da735e9873b50712376dc69be9b1b3034b89f757c9a7decb9997dec311a7bf9d560f67f96747161482126d9c5394f2ae28f5399288ee43a4007483523ff34ebe75853fe501f97c1ce42f04ba2a6bc3f090f6ad75771f778fdb43a9892f97b3b8acd484101351377b1d4196be0e19d81b80c49e99efd768de7ed7d67cef20c08215dc100591b9a6f8b9eb3a93c102e9a10b3ad80ee87e1a6fc68b5d10e68f08ebf4733711d88f79fce5238b5f06861b464f7d3dc559fdb20b12bf1ec221c7fbffa555718959124589ea53a27a9a07a279a056aada0c14f98838289f85c586ed92a9b7299bb7f9da95e3f296285192e5d71c59893344f5366ff3a9fe0ace1599076a8143587feb59108bf51a2cd61f489c2a4fc90f2a8868d262c10f32b24c69d17c57e2d3cd35bf5dd6ca7c458884b1a95f39b1345ff31c86711c37c48955bdcd87dc4424f6b44b069bb192c8cc17d6d4eace76a59e2f86c33e363ff5199953e6ffcaa43e9c5f1b7dfd72505ae9d79c29210e4e1b8f4864c9fa6d0c03ebc87c2de46a622621da675e1299992309fb93011d90a47605b51011eb518c7b96e9bc8c888345a6f65388093b3fa885ec772fe385f2cafcf44225f66307653e1564ca789ef2587e1cfdcd4be261bd753e2d52a99e7a38f3e59d4fa448bb5a48e57590b3e44ff9190e16e7f2961aa47040031c945fe3d11cd10cc15f8d910d2b7bf39d29fdc2d9373a00aa58ff7c4608820d6b12bff1fbdf1350bfbffa8e1e45f5e5add14be2b7283bb253dac0720f8f735663f272f7ed8042ec84e16c1d82e50feb4d92c126b9b6bb4bd90529ca7edba68cd1b18f1e126e3a3f9c15e2d35721ca5a84e1f8675b2a67c9cfceb0208b8648fb739a82ef83e5680e02a8eefeff99fcc223f73f2399a7906d72138000bc7ff9f2bdf73ccffbf790b01b793ec2126fafd33e09928331496a49ea7f76d0e3625f85ff3c2f3c7243f949e4f5467aafb5782399d0489de4af33ecb368b096cb4a9af0d18a8d1fac1bf92b0658c5761ac70e5af847fe7440fb151e79f05595ab1b5faca076cca81e4eccd5115da6b8310212681f13f4e6d193aeb08851fc237f48fbf0e6d14d2b56318c09acaec0a8d98d2c546615ab9886c307f9717ea44277684a0fe4ac621a0e295151514e6820c38a278c89963256764ada85194a0cc1064f558099610e01418c3ba3b4e6e46e758b21c35db1c471798b1041777559c98a28ec141be7849d640e3b298b0da32b8d1b46a6e80aa32b09291e55bb0a31a8e872115d99bdae948fa3de708bd2aab86136c4951f62504236241bd22deacaa7ae68574b2c7d8d6992cfe4ea5e6174f74b2cf62f3333b6e52fbdac644510f6be0361b3cb4a56dce0ca2bb64e855eba51460ffb7584e56f236c28878ce2535c5a8a4b71a98bb0613b61b19ca464c5d1ede7ec0babbd2bfa853f8f62115bb703ac062906908106ca00678891230c3966f640649db0425b74a878ad8183115f9461c5946284136e8619f80ba622d4a04c462c69d256b585c806222755c007270c6e0846f1c08b3150fc5005073b3b546056582e708ae2a80667142dbdc0fd2dd25b5551078512ae257665a79d2dc061f3618915d2d23d832d42597a8b10104238b8a1c5c18cf2c20ec040634c11a034c560420140184ce850031a636850f29d9c2d94ce502a21073609ecb2d2193f144d218f4123b0010c1df440892c361c11a5a0c02889c996232b388861baa0ca7cc24f46628eacc862440f32b03e97a5f749338d18e69c73f2f8420c274c5e60c60e425348090aa827709873cef914c578f2ff3ec41964d81947375e563a430757f0525ca23de59c52063b2f6fb12108243c61652e6fb1810b2f488e461a342a79b9b26db1418a9bbabcc586a41e6cef64f9199bf28f5483232955e152ea52e484c4f4f224c332ec69ba61127969e8c2149252ca29270a433ee3d38f9b877cf7508872fd270a42110518340f6fef0d06201486e28ceedf4b1b34f395b2c93dfaece1f8f797eb532e10df24b3c7973fda05614ab107e2584f6e08b40b9a07bf046a18bed06e24d8f5ef975edf9e340052d3031b5a205146b5e21f3d9c6727458695ef824a88f370bba07dc41c1b6cc84ff7bf08ef0c70e7913c3b96a144451835043abaf50b5d60262aad2862abce233fbbf27b4cfff498cca7d2089286ba49fa16a560be2b019adf7ce9c56f7aee8540ae3bfd633532c9594edae79ffa2323934af14f2ad575fcd3751cc73f1cb76dfcb36d9ac63f9a9665fc9365ac93fd645fbdca3ad963fcd39ffde41ffe497df6927fe86f2f33307bca3e28f3c85e7ecaa3ac23bf3d8c7d48e6213fcbbe7a9375b24fb5f6c28d94c7ac43a557e9736f847ead756686ce503a5f765d9844769e11fb85dc275f9347b6cd9fa55569343589d4b499196d66e69bd4c8f2998fbf1dacffcccfd85ca91f3b6824f536545ff3fe91a5f26c8db73aa2d1b0ac76664672f6c697f1140dd4483fed3137c43efbc28ac4485c8186f42bd2587045fe157f9c7ae59d73ce174010025d11603749bc520529e57f0edc73351c2703740474c4a9542a9aef9a12005dce08f77c2d67bd10e8c8c605669251a954325fd1a7840d5d60a6063ab2b151a99889c63534b02f3c72eb67a4292eb1c9e71c185c2ed7926b532f696868686868b41e736734fbbd706393378b9b176ff55bbb6e7bea31eb6c55477e61f6a9774148e609b9be698f646edf0b37ae2791cc2f8191eced1bc95e3e10d7a6565fcb3e7b2dfb906c37ab2636aba7f1aceb32ebcc7ca1fde46bdacb78a11023488c68cf3704ba61110bae5c4982228a95241d08754166286f1744a6c05c6b0dc112005df959f648b60f61b8f57be1c6ed4c7e48b60febd76c5f3f7b29bf3e90286bea87a4bfa227381e470d8eefc9aad5c4c6d77c4f6aabc98d6f629925ff66f54d6cbec9479fef670fc4997784f4bbaf375e131b9f12ad8a0e45dc50831250bc5a36292f14723b6f7b15ad1ee759de24475fab5e5f8e3d4a82788c125c08010d358ab0c69856cd33e99610d66a02d4aaf938b2ea6b99fc56a02f2140bf7eec56c0aee45b3d2efb5457c8af77e73ee085bed887e302765f8897ca19b73d6cf5d96bb576b5aaf50b85dcd0859d6ba43edfb08d604f1fc9fc10865bbf176e5cfa61f5628c31c60f09c551d3c5c66746d217fb0dab9f03807684f543323fc4be5f0a998fbdfcea615e581fabb7bf0f09fd8afae7c79f6cc196c33f8ee304352c33dd10e8e8862e30137dbece84be12a016a55f5855e0ba91a39ff45eda3827f49caeb37ba839a171b91a530242ad0bd65be4aa07d4da98bd53c16b9d736a1a1725a1f0e635addcfea903f354075ffc33e514b75f32f14ffca8c3ed8f2ffea11f94635ab9fe8d6158772a54aea87a40adadeb3a28d71011914f21e2097d0a9529cd7db9adeae276b7e684b6745be574fbfb25f348950cb75543345ddca671baddef5d90ae4d3fb43d5dacd39b8738535c7f1c3ae078b1cecd8b719878b0d40b39a778f3bacd39bd0c20e4145db1d95a6b6766ba20dc172d290d2d89737aeaa71c4441b5b2ef06a875f3720fa895c3897de1c89b97ff8d15ff1b23e7d9aeff0dd38d17ef9150bc2414de68b97e9374fd66e9fa4d97ebf1b57427e7c43d39715f9c077bff9a242b022d293e17c65f33467fb18e87fe921e70d0bfaf0507bd62b56a9bb66d33f35c0b2a5d34b5361b2ef3e29432be0cb50cf08227925adb0d572dce90ecebd74f0926e4a5a9957d759ba199a1a1919e64c51683ab1ea7ea82c88fe39c387f7147feb272731384bff887a5bc3192372f19a5c739987940addac9223eb0e1cdebe6157b6e5e37af1194ac1c010756f2bca9189d12c7eb89628ca856f5b8e539f11cb1f5af1c6ceae99637995c87c2e9aeaaf06a4b0873ae0e122e835ec6b3e3a0ab2e773e5348f3f09740dc711e181ccc76da553f998b492087f6d1549a870575d0daf63617d904eb786bc1a08b4afbe8a4e6e1cd45532125ac4c740ed7bfaf87a47f070b9b82934e18b1d8b0939a0bfee924ef7ef5ab5f37f78648ec7966c58f1fdedc909b46e01df165356491cea633f6a70222ab8dd5c76e9d34d6501d2728f66d0fbba158a77f1661b9593af9d0dd5ae4da01ced3e1006eed3159ec6348f3f0cf7e62d977ad7d2fdb0fc4b1e933c4e743f7ef4cd29505565fc8ab1e51ca49b33927c52aa514e41d9cb4334be83ccedb309f0fa398bb534ec523cb2486615d1059a7b78ff83cfab9fbe353fa58b782dfa60f88976212d3e2c671dce632f66a856158d77591857831f931eb602f65d45e4e1a7fa971f84cf6b16a1e5dea539fea07dbbf750701ec6a5fb34e967dc46a865d761e0f386bd53e2cc00e06032b225b5631aaa538739c343087120428a0cb6a979582b044688c2826638c113586d3184d4a609ea4e49191010e46a7537a8c31529f2edd5d7a8cee83dfbdd53cfeb2ce8f506b95b23fca2933a63dca49b12ae79c53665aacb526d56d720560314fc1585cfecbbf7aaed53ebc7d3004b01bbf6d9bdd96e2f8277e37b9e71fe4d133432fc1b7fee22f455c7bc11d9f2fac6027425e622e563430c6684010e2a6c30873c3a3747f47c20d73dcee79cbed0e70bbee2d10d4b8ddafc298e276cf75413a7e1a0297a716b7a9eeb671b9dbf654c5dd805074b7a72753288181a5ca279e8f6236cd39e7973077fe60893bbfb841e98b12d8e3882f88b04fdc30c78d60bc08c20b303e78baf18831d4386a79cbbb20fdba405d6f3c28f9a049c96906ae0308ed0320ae94527431c3955374e18545c287aa71c104e5890b2da02471f14514168e707151c613262ed48092c5c989100b481839c1408805a423a718c4c0429697afc088f1d4dd008b94e6c4c0ca5c568a82088a288a4a308a02092e6c8da2041e44510554145b3c8d020897529a434598c9820e6282a24c992cec408584282c7759290a349ca46002da60e7652529a20411830a2baebcac24c60b6ef83bf4854dc13d73c78d8f71e11f26fe69fe70353f6cc9638c31fed27c4556fc1b638c738bcd611de612ff8925fee95517376258dc884d61032a08c7ceced4e23ea237e8b2557807a79c71ca0b76cf99cdd5aa1bfc1c07a7bde052102e923ec77970e0b81bf5703c19d6ab92748691352765c2cc651e577e09f23d1fd69141eae7f00f76f9573ad8186dad1d41ae7d94c03c5a9a70fbc3d495238cb05a6d3fdd47ae7e7e39acd319dd301f5931f9c3c1fe7c2e9021ec0acc01a5e27504aa93562b224d64e152ecd401f8aac6d58d2f3664a8955094909b78c00c2132e9d38abdb0265cbc68d4142a54c6165f9e96a051362612488f1eff0361a24018628eb021330919e23c9caaa97d88f390a06f582d7bf92aebf457964fb6f6382dd641fcc37595e399c1acbcd82ecca5eee0e8010670cf4796f730a5b4050f38e845a8b01b8684cdb813cadd30ce3a8fb77b0afb8eb0ce24438a578459f3894201893daf1b7fb58a401e8b6187cecff9b2053df839ff192002172f8648e28a0e5b4c196c9038dc0004c40d3b50e30619c084b122c680082468a0028be1c1cff928a8184f9ee8408b2c6890cf952d6426f6b2d380edb2929719bc40b9e1ef6c4530fd15127b70b89f48ec994fbf02f1e5b702f9f1e9b7822b43e4c70f8757107f7e38fc1561dcd281cd6eb07fc31ddeb123a36ba165cb51947be3f296a3d796206e8ecb4a4a4f70402dfe1c39ced31747fe6fafa4fbfa12e0d64a49f73d50eb7722eb2ffdfa96befd94d49dd0ca7cb8335bdc4a3d7dc6912f24b2280924c0ad0650a056c84c977e38433857f7dcd7ef8a08268e7f3817c86cad385348f7e108c11e6708f7d8738f7db76217016e71bf49cf9bb9630a49bc3d83f52497ebfa0f9884705d8efecc625531b02147c9229115594760883ddcd3e700ffbc608bb40fff8aecd3ef00f70439015bdd0bad5a366c5702845662fc10f269751fb2102e6d715e0f792de420cdbe766fdf850405719ffaa0ed651e47be7da056e775ddcbefeca744e6eba45792fa96805adbe671de118efcee815a4838f2c38900f7db4bf90dd9befb5e3d1459f49518115d2a145954ebcfb28efc19d6919f7df58b1c5952286a40ed590b361220e93197fd5bc8c471e7efc41eed6764ff707cb1dc778f6d31be127eba5f91c8aa9b87c39f62c2e14f3d504b096f3f44fbedf9b7ed5353fbe60646d654812f0956acd3da6f1f3bcedb368f3d9c21dc6fcf691ecef6d5afa96516ffaa467027b25886e9cac639ae1bf979a79fdf27f668dfd2bccce3883d8e9020fffe99db1767be12eeb59fdf165f485090f6dc1794fdf601892ccddbc199bf3d50cb2702da673f44fbece767d96fd967230bd33e8e2ca016508d2c2c35036b5967fe0cebcc1a599599da23181e777af430408f1e97bff4e83189d044f4912492446d84944457f691f431c5c7908f18f820f241747d2cf918f24184421414845018ba2824a12084c2100e9b3771273f7ad8bb273d6e8e619e65588661528bd78e44f3f02dcea3e85ae49452e61dc7dfb55c0773bb20d2b5440860518b83326e1e816ad31be4156194aef84177bb4fe982a494731291b2d205c130f9b52a3539293539d104755597959ac6dc151634dc551d620b13cc2df853e3e8d21e54c46703408478f123e4c9ba9c273e3fd1075b88b63e3ff114d62587322536ce096975698d2389f615111e6f6c31a94f0b28cc0ff4110605256844cf0e67f573e9f283727127aec4f1038834a56849fae2448e9c1d3d7e78e0486456ff12c726afaeac0bf3414b8e1d158b6cb5c58d24427ebab1dad5b62a83fbc1d6e1a0a1a65c2e976bbe4b882bda1a415716b6c6576c97d2145e6e08de28c5971b5bf1392529b4dcf83b7086c8b4e86b37ec5b443f25287022400c3b3d98473ebbf8a77265feb984e392dba1ac81935de2a4132ebf4f01b68dfb306edc4feeeeeeba2f3441f7f576610178ae57fa3d9a876fcf59ad1f021805d6f1afede3a779f80f9eebec2503ce43b3af378bcc3a3b3d18ec1d7ee4b34673d9adcf803b3d47acc3fd8505b86d638c91692a54c14532c28d9d0acd42766768821b9f757a93336c3915b64e7e2af4c559a1b674410da118a834cdf665410a15d1400000000315000028100a8804029148249c88da1c7e14000d80903e6e56180c834190c4300a828c31c41003882104180308323554ab00103a0d4d5b6fc441b4dc7d0673d1baf854f69ac1beff3452617b0a1ff09069845c282e5a9938dfc19fcf4dea3564d3dc6c28384e38f50c98302876f595e87e1a495e3267ce8c231cdbcb98ad00bc9ea5853b286b5d8fc44d880603af8f86988e9202fe751b6d3b1fccf6b0a901a161177a0f97b611ec4016383f237b4b3795d9314078117af25a591594bf537a6545b01d29b51d5c42c4cfc46d6406a6344a5e775fc8019521b8b85324a05927781f58e1564f7181b775e69a9ed0636e4b713824afe0508004fb4a7ef93e018ac441b10a41d4bab43b640cf4e00db48f0efadb762cceb9e04ddb38b9e22477a15b16b0e60d69768084b05adc14cfc98cd85011082e1ee745dbb7089639416adcacf981731c4bf69c07371a5ecfbe6c7fc56c7822a3cef4beab994eee7e0d83174a34c490e093b64d02951f83982f40a16452c4cb4f566882a97d127377b73af48f4034ace5f440638258edd55a3d3d652099f7a782b7c2a836b1391daaa8275f69bc355cc428d20fa523f19499b4a2cf5239148567d6d9dbbc6463a5ac48920ced56e7fd32b14486d535ade0cc636c8b28500d0cd1f1e8a132967f1ca16c60d50b153e049ea62e7792586447a8993110b08501e03a4a0278292f859249534b40e8427b9b21414a1792687662f557e31fafb24887a62ec811c0093075d9ca2d20c240ffbd054e500ee4ffe293715c8674f71666a52ae08c19dc55784cfcd9139f2e556f0f23e2f605f2525da4444f3d7a2c84e4e7afff72ccd4448b6732baae3eb4484521fdc5a8360a030c2a84e35baeda07d846c05765cd476a7146c0f40fc05c049b8c3aedab77672cb2a64e3f9f0c0ecd62ca5eeaf64711589d73e876be2a2571a0cc986e3fc845fcd90c2bd050ef6f8d3e86774b480b5af58e5a2b895ea8f1f258c22c487ccb9b60f4f3b0b8faa2683b599dab8a0758e032a0b1a27b303c2cccbf946765718486b0f91a3a05f2748a1381389f7a1c93db976489534d9d430bd40cb5de5edd1c41f810d574ea4473dd8035c9ac4c4ac0465e4ff1cbb12e00a404e9c202c95e209b099e09e1f300da44fbe65e0fe0030ac0cde4d88894577d30783e6783c37b70000b64654e2602ab93f6419f570f0f247e08bd9b3ab316cada8be884deb4ae610f024521a7bfc2f5a2f68173e4c5b4c9e5529fbd5455ff55d154efb4b4f58655be60618c6051ccf57bf66e2d7ec765bf5e77c429ec2e646fd819be596a5bba671d16fc885f2d091c93ef28c9899d1f0b211118b1446b49123b4994de48922afa57ab516af8870614e4dd2d009ed11ff0500cf1fddd311d0567a13538ff8724077286d40daf24c760332d8407125b072e9ac4935fa4717bf8b65d0679bebe07b2e1a729db6474b25858daa9bf029490ba9a11ea0b6e511d4009bb490b143b3fe0867d1ccae9e2a8e5fd4876fc2a9eafa7ba05abc1d22703fc23fb9c8388d23f008ba46c5a11f196079f905bf0c129385eed731ed0a863f1800946a1b46fe703828496f03f2ad702066a76955404efd7f872e95db358b4cb00854488a3b4dd2b15d27d8baf1a4560394f483c2c41c4bcd570b5c29c98757c3a1bda2233b70f27326f1e79186d6a608851fe8e37fd4be83f2574afeb079a92accf6d4e8c246310470d6cfc0fb14f8455083c4f286070fbd46b36209c1c96be81adca7f07914109a915b83f24391386de56e83c7d8db9990fca7096c13d8f98c916857ce69df49fcd92ae13434d820d1c0c65660254ce41cf374f403681452cb3f09809308fd51a0dc1b66e1780f6bb100c1008b7e7ea09ac59216ea69dd440f3d055185fedfa3db04abaa87d4c316af9c3a8519bcadb1a4b56255d5b8988f7b0caf5992953d2a5c8bb4b438724e28992487280f36bf78cbd16621c5acec4175dc5b59ffba15d51e3e8c161457d5b7228f7880c01428d00793791d35ff1100faaa55b30705a89b6dd2f5c39125868d5af434f490b81772c9f4f26a082abff5c48efa4b3ed4681ff5c2dae4e5244bb684958b658a940aeff5ca358f85c9cfd9fab9ff8b37af2adeb5d604a79e1e20edfe949103918906fc3334894982527d7732dbf9ff65237f9fbea84fcc1b078ad62a29da56024fcc32d9241ccf86497a381aa65b484e8d9e7a4ea8cbf88b0caa65a4829e8878fce0e86869b54b2d4dddc115abaa123e501102e8655dec510d81e2832b508698c2173baf79d6f9e146bcaa566695f7b6e7f63400d30ca013d796fd1780785859605a9068b9f86d73dfadd1bafe274b106fd271abb80bc401f7ad58d53d593618dc4acfa24d9f0793e6892916038cb9dd343c2d7f38d5e756f495018de2402a1304c135cccee45965ae5beed0ef0ac658666920ffe490a39acd5824abaa351309e1abfe3809c4cf5ee37bb28334b95907c68930a1d569d94de83afaaeb4c246f25a8009690f5d748d43a721e41fa1ac2fd88bf742bfdeed02a4cdd0052bf2e7b6bb7a0596d57c7da36adceb09d8766aea5a8faeefa5dd916d27932d447fc9a2fde0628d82bcbaaf54f36d3a8ade832d9443b1d893a7eefa2fdcd0ca97e7544c3c612242d2a5a5439058f0a231f7092660c0c990aa6d9640de43390582943aa1b4eb273eeaaf61ca937948952d9695fafa955352fa283c78bf1be3a2250f795cfce7499f7469e13e3a1d9f16a6ef960e2981cb3a62449566fefcc5286af059398ac506121e76b2e4a21883a17d640aca9fa24566cb2259085f394274185a1ffb83df4e89314bf9e13455cb9492eea8ccf7599e6d2ce71d2bc86bcb3d76f2c87db2d7d3c4323bde5a69e10a584ec0555a5d003adb5b62a54999c611b20421b2592e63503431438592088e0bf6d8a9f2c1ae41d705b060ef2e93256d02758371f506fadac02494cc3c09fa1ba933edc56891678762c2a2c28502fe228947e0f496aa636bae78165f1319a1936c4eb6d6b9fbe27aefc44b9a0eda99951d986e837f84859f833f8f599420ed724d643b4608f54a1f79b5b979dcb2aa4a04bc8faf00c23e525b5d678b83f5377ab056ecabbdc51bc1c36248cfc1c66fada1fe90da59f0ccbf8ae0ec531d6cb070c4f8d1ee23a0e4262efa24c4c188e23fc30c812ba5d38667e4c309f4086fd7d51ad9f06111397e9541d7cd8a970561eab1f81be036c21948ccca010d646e011460716e3868679277fae678e23ac043d20c0441cd465df36b69e670e5a9f9ecd3cd198de2611e41c8e645b8493d5e1f51be5b41c0e52a0e3061089149c20ac3078d4f2c66b3f0fa577a12b809daa26e77a5ed645ad4a4fe9c044c40fdd4fe74d5ead20dec6d87a1471175b5d3cf329f070730977f90f9073017134e9dcfbe57c3606812d84bf781a653997ce5c198ffe27b47c7f49c414fb875165710634f918ecc4792cc1dc0398a33983045bb6c88f7201ac6c093914b3625c2f15a5cb100b8e809e9464a62f3af86c3b99fbc9df3dacc15435291993e90bfa4463bbf3a06dfb33c24fc1d4a92a3331ada07ac219de4a7a16975023e80887410040ad6c361ecbbaca78b46efc5d508cd65334459a965eaadedd55a3ef34c14a619dc0fa3ffd126d9a905a44bfba53adb2d2df5dff5f814c8db92b00a1f106807efa4c3c5a0db207ea18aa4883e163c36d83f5c5166bbc615ca8630d7d432a0b395cdde492a6e0cedf4d3bd290552d73886446764eba030677f8535a268e8b005cfb0b3be6cecb4555d0ea0b18f149e97c5d139669c4a831321ccae86b9286e86f1ead07cda1bed7c36aa05909f42f6da2215eaccb35fff662fa829906ab6f5ab9bf514f079960f6fcca9599e49d4d466229417b3cdcc606c970eeb0e2fd29c99f15dbd80182c0de415ba73c343c8d95d5291bca3e4b574427725337d2a5d5778312670af038e858ac313ba93a864fbc0fadde6aa4e6b9ff233f03218324b8b673140d255ed6c5250434eb677e2942ad080a756d352567474e5146e2620ffd3e3e952a245b1e0eefcd7bb26cadb4e3750374d1e1a35987f72e6697ecd04df0bdc925790024e2d26e2583acda8ddecb2921bb20f8724aae6b7c20901da385e51d2adf5592f70bdf707649c2c60225ec58638f5cbd249439a0b650b1b30053ca0a54501e301ba75ad0021a20e0ba23140009107440edd64c77afe3cdc3f003805752b77afd89bce419a9780d3198a735cdd9711cd4ce4df108e3173377a087877ba66569ae8c3f86685adab0eb91adf480ccf0faf906e969c33aaa904731ba976e6358da21cf635750cd85859cae267e65d86dd7a371b8a39e2c4b9da4dd3548c45aefac13fcfca33a2ab22c9d454141871035ae138944a62156a836c97465fc5cb207b1dddc9671081365e095fd7c9d339ec58ae7ac930902bbb227840991bf0e9adc2164a520fcb7273f22249c60d59cfcd1b99fe7df5acbc704ff3ef551b0a6d5576fa320bf84a8bd7d94748839948c06d45c933544f371cd33f354efc4d2353b2872362bfb37acdd8482341cf7e3e283c966756bfd322a1567d465e21c4a43a384e2d4e3315e4ba1af549acf403da07309621cea154649dc9211b98d4c63a746a3311044a82e74761da7e1fb8213a879e617a552a81458ed3cd67c534725fc426bb8f041feb1e6be50e49df519eb485fa13cb5d2f2a3d3aca81672d6dd2181275c762014e74bc81bf0e1fa62aeede47242f7e10be7ebd367802f27679c8bc0b1f45f41e5e27943375f7a142a135eef8118ef95323b8aa442f5beefc937ae4d7ebe5732573dafc994f4368a0ceee59821c2800ee8df2f1740787ba96fa84767e03564a208bd82bb286037144f3b6267556cb5fb7368c3b5c20d0ad433cc80d8a41603a3e8734b100166f985dd17ea6d55683fa5cbfeb5c036e08b3b73a09d0f1a5cdc7bd03cffc6288429c341f9422486c3db4d6821c2624c82bd2f965a0e12309453a058186cc5eb2a02fb9923828d7e9d84b0f392660e2c83981c7e2ffee732ce923830f058c0e40299b4855ac1c579c3cd2a5659ba54e3c410cfdca66c40110a759ee4871690134807b94ac4eb7914eaf356dcd317c5b4686b764018f90c8f45414237d42f2c5868bb073a8c2ca0aeb6cfd20882338ddf1667f93093d2a7b7a445c688feea7fe06d0579d4fbc09f5662ee29a59403465ec0a1215254330c5b1aa1855a828e57588b5816bb488c983292fa34feb3d9612f098b1f3738ece2614a49eede9c79b8acb0eb2304a7d6a7d463ddafbd2d728aa6d909345c668edd93df0f0bfc0b49f9b0df7cad516cd8e83625543789da0f1c8fe7b07338a6f9a277f1d17c12432574f451f3229f9e5f1b6580993f2db4301e94982725de008d900ab9ac603c090af2118c5726d259366bf245bf1105a885e5532505015e6473f4d20cd0a629e5e7ffeeb458954910289ce486a0c28c5bff339e3c059d6c6aca229ce4a984f0fb3b8bc1792bf20441acfb049f0f3a71bf78390d9597733db416ed9de0bd3a339a1475dfadd2a5408e894359bb4b0f5dd9d2646a0ec04bd9d66211383ee0a88a733811eb145a71159dec3023c7e5037a756fca772877494ee48d16a500fd0c159c7c604bbd75ca454cfe2977d878a95d24eeea57878e9850d9fde8daadd74c83a847ae7a3093dbb2b85c6a8414f47b84d09dad5856441dd6d784627097ff7f698555db719a750a3665dca000c6da1b2c400074c82ba66b24c4df37b962b1ce313065a874c1a0edf2ea0432ec8d705de0d2d7d89aee0f780ce3262ebf8c63f0f3a1f11f34b95618fdc710cda589f41e5b8979cd4aa015d80d440369643cc669b3b5711c4881bd5e3ec5db6bd18aa2b8c785ca7627f1d899ad6b4d5f97b33ed4c90f3cb4d6ae3a180c60dfa38b32d1d00afadfa1b9879c185094354cf01e74f300341e3f29601719cdc793cb41e0b98c980ad0f28003a3608c3848ec9739cd372e93046b9c82f3901df5cbf218d1d370bee8d709338f59dc17bc2d118603a37e593be55746f28cd288ebabbecffa6036fb04ecfe4b089dacbdc8f9c505963fe1547049905338a7f696b5b5823ada674b025456fbd26c1263155ecc36ba52701d92e16831e0fcdfc1c18b66bc6abd2f12ab76fe8538133301715d2aca729fb9e8dd9d7a8d78bef2509178d381740a609e53e57e0f950c0271841c2d84e0f1291ec56195a1408e24870528b2e7ffb045f2d6194a45dee1a5fd2224990059e47dd74eddf46828951dac4ad7e458021dfe516633ae4ba0c339493ddfc833c4251b0c53c143d615512ab5d07efbbf419fcb4571b82f3ff1ecb87c281b6c3d88f8d2768b252f4148efc0aa16262fef048d5ab4d748e699bd82194a85cc53b722110ddc5afec73bd22d10c9a291aa2abe55d33e896906909d650092a20e404c1d80601600e3bae1ed8be5142719c149a3a1b19aafacaf71ca20e5b6b89b1a8d41f05d4cdf2631ce0da5e06589ddb7e6e5b0dfcb475872176e9f06b41b8f4df1780f70a62d2fcaf8bd2f9a4982d3f662b88d91e5172c5df37780b46be04f92778fab2a74cd5a8007f989001e85d80a83bd418e1a33a227671ae05062488f12ab1127dd035b3ae7dec2d3e5a9b605f5b3de7e3b1b096de0785b76b5f235966ce2620efadb9a7eef390f19367da1843d86bce53d4a0ab347ec9cfad019d7bb8c4f1a288f306d12e6ae31e6f0357370add460f6eb77bcd7bb24064a5793cd77d34bad07296aadcc5e8603c1472baffda450f743620543d793fcc390d608f28bdc15d74a9c1cea169661c3f8debff85b39901784c03160e8059bb4ed951c9f028d88ed6c03c8e802fc9661c057eaf651c3a85ea9cf527b81fd341cd5e123174016c733d23a62bb2fbdc7a5983a3a810188f073888f1be781baa164d66abf6446c9802a8e4ca4ae5486be721ad940255c0c375538dc7d4b74406941a60e88e55803500618354201d71854c706b72dc561970de48b3cfc9c50ec82cea6bc60f0ea2a93fa1e142f545105e9caa07036eac23f47d25db03fb5485d9f950268ed143c037ecc3349a0747a921c53996924a400cc426062ed4bb0b86dc6c37047cbd037ed79a56fd482b02520679bb234eda98d21aca843d26e89b1205bd37434ff634624f79b008322206880e879817f2081e8475865ce4fce6c6799d62568ea2b2560acb918ce51b486631bcd4f4d5934e92f442c4d6d999582168409b96b06d26e954d6c60d6e37c3883918f8774b38826a9cddc84973f0e9346002ffeea782f72727d4b1667ed8a1bc67bf215e73b7d53cabd22009aae6898408d83ac5be9d92adad140f759a4689960e62e4eab29bb0a124851bbb9084d8ae85e50d3641b84886f3d6eeb802a6a9d77523fda049dd4d302fd3fa6082f92f39044f42e98034e37f9f1ef90c7c2a0bf56db5c36b6f176e796baef6811941cd798097bdad06ab51eeab5e6ed5cddd040be0ad9eb86897906823b7e459f2b201421b3a86b0b94cb96685bfa5dbbdb7d3eef15a217cfecd01f015966130b7284b9841bb339741101326af71214d824e6bd10f4263dde08912c139dd8f70c3d53129e46b4e9ebbd31b100b028aaa913f37518eb40fadde557d03969b1d79114e70c6c591b7d2fbdbd16d7a6b678fbb1ff1687bd66ee1598f7bac43e4ac6db4aec358a394d4bd57264b664909e0f5030052165d0bac0a6a1ced0a03c53d3eda328dbbe21ee6cd732348f3153b5fb4f5b7db9dcea5e48d8bba1740c8a1e80c6ba54ee4a16926893ffc9e6b20c4c44853a7ffc335f20370162cedb5c57c28076eec0811d32821c7e42e95d89002f0041b4214c119b63ea642ac09edf603497ca28558cb364091a053992013346dd21942b68fc76f11d496b953e07c0166b887b46d1c00fe8428d053a3c36c27dbe52a850acdfce8a29104bfac652c370615e6a0abbfffa86dbb707e4c9b7fc9f5d21d78c6b3d713f7b31d4e0ca43c353c6e8626bb6e03591b7020edc2b12cab88bc87791fd6aea8cb0f95c3aa37250f3888ee589c4b01ebc779540cb1d8b180eb2124d36bc2bd83dd0e33d0cf7c7019d4a1edf32c47c2d5889ef63c7636dd07075127b773d08a56a06f4887a30fabc0787ef4912c40719ca5e7d105b7d38e369356343d6a20500dd5423620a0825aea1c5661d26c6521ad2175813d233a417cf0e62d3759e28e5ec89370972368bdfbe730e289761cdb81abb39cae54766238d5ad7b63867c92c0ea932c5fa9ac90103fb49c588d5b38341276d101ba438f68cd436c276e883dadfd063bd1d632d75c343de874b6c780b0aea83f11004f76eb42440448dc2b1b2dfd0eb7349223359dc51b756f83dbba61922f36204b293158d9616e0c04ec9147fa9a187ba0c6a5db8bb6e0996179df45c256c3230d87df633ded1b20a6543983fbeb65cf750833459a598309f2ce7ad2c44f42758af947ad460c149caf62218a8ace34dc894579b74d9d70f3bfc7beefa22e4497db7b6a2d2d336ba5ee464b62c7e3ee757f238a61416746f82b53a08ed37e3279ddaccc38808e54d0f8edcd75f8bc2c2f5dfae2e473c691df3ee00d6a2bb99c61fb959ee5e9f5475f7a2251b18bf06090a44e8efe8794f6e2a6edfdb2455bebed71d386de7beb31d8e74d02a1b0c8b49c7fa4d737aab68b5129c4e888664d79a34c366b92c339019ff1cb87a333ce6604250ab8c374b23883968e5024882261f5d1dbd258f90aba1bbc20cb7e0922239ced08ab285191c91e43ee286efd1cf9caf39fdb64394fedd0dbe42a5ca2ed29a2d80767e9054e608dae5e3685c7dead1403dd1af5e4dc27a01ec0b41a3516e0b52ad8e439259df1fdb446f2c6a148f5ea8af84b4345ae0dfd20fd3f472123cf7818b33718ac1861df079aa209d7facb5960847568000655de20b4859dc1c3d10fd14c209a9c91c4119f69ebee13979f26ff073ad78ee03b1c48a9308de950a3778d0cb22f998aab5f136b972c78821543e7a1c588bbacd547c03512955d7a32202e132debc2eb1af510add9223ac71271ed25f38a7b3264a09dde51312fc80dfcd83aed9c6c42b8142b6a59162551fa163a45b53a231464ff7bac44d8a89249f4209406a41c9aee1a47552a03f81b2874b98dd1dd83b4d2782b48d01323483dc9992c6b1cee4d28a5e56d45b1f4dad0fb7d88de7309978047263ec495ef529c8b30002d67780160db6e0c2013de6342e2df3ffe3024f48b7ddb2e985630ecf7a87be029e4388e939b9555c99fcff31cd81c4223ea2af341aea2eb988e90f448f0686c0a97b26b33a3c934ca46b3494fdb265bad6aa8d2af2fd2a3f48d6a6dad07ad72dc5c6822706c3126dad9a09de498f2336bd767aede98dc5139db4a295718a10119a00d93b18903e233b55c2a2912302d92fd9b01caba86b7139d84faf9bb6e9ccd7642475f5d2790f43de3b6c109e16b2deeedc575bd08b130dcd57c2339cc0713648ebd75df7d1bc6c7ea7a89d079f187b43b3dbb2265181c79e82e3dcdf978851faf0a286a528f6fbc0b2faa0aeff84f69b3ffca013482b9766299ac5b4d608e1d968edea7a91953efaa5d13a5d2eedf18abe533286d2b421a3e1ba6e8dc36e8b40a3f2cde5d851b1ee01f1a2a58d8873da5864718ec7e3a11c313a3840f2bbcd81a19e875cfefa9af1c7b9226f42204d4e817cbeb4a3ac84408ce75b6bf58947b0bf66b4dd2202c10c10a922a6cc5c9f7f07475910328bf46c4bba35ec43ff2cf13949fb386b23b56d5254b25588456899d1101b87801d632b32c6f71c2119057140594aad1d7f29537b3b7dd083d16edb836716c7ef658873d9680f73cc6c3cb54bac6507f0f8d11e44be2eda7e4d25a6157e1ffb8fe8018a45bde9f5085f5fe74a9ddc069a64709531e611700bbe337c4e0e673e5c80dabd5351098d6c053573f99aef98980f4c97a18639a96af74e55d4c135029ae9f407b9291690624b7b568e11b0847abe6444cb82d7d6f48dc6aeb5cc58cc40cca4c0e416d25a9c969278af3fcd4b07e87b027275b59ad66cdafef3309d433db1d5984cc1599e520b918af336ff22cffd47811d44660c335c90aca98232d81da2a2aa6ff939cb37797565fccde9610c5c4d235c295d4d0f96a950b5803a3094a6e5e0b1e52ca99488fff8a1744516148e5ef9aafa101c7b5e6d2845c1780a629aab2913c39a45ad9592281be886677dff3120bb095f5bc1c422551b1cd120f2987f629aaaa1210581488e5393c857b336bcdf85b8f0201e1931f87db0b1145863d4ffaba10ade6e87db8fce1b093454545f99d867588e0f811f8123836f55fa8945a98e9e47dc45a5b3d64c95f5494a4d70285a7df0287854c90ad9714dc03aad269978f19e11dd925712620e425012438133f08989a65ae0a286048051a6957b691dc5e51527be6d88e2d3627f8e89c562c61c94b97a7750bca706b614fb18e96d5d5690d2d9878395f024f2b1da610109179dbb0ab042a5046ada00637889ee3a071ecf1c9fa183e8b6145b34ddcbe765b8c441d334b2d7056ea6151c3f1d976d832ff196528b3315bace991f93dff3250545eb2799ada32dd44169072dafdb52d945c8e20652bfcac2fb22510c150194e3d39976e2b61cbb071187226f25ecd096e197349d03c6038aca181fcedcd219e0da3f7720b1b7e11124505c686b28c926b51159dba3c10b849df7bbd8f8dde4907cbca265e02a0db39f3121e0289e932d62edcb217b8f0dc205ac60d448d5943a26754a1f7750c40adb89b8281c3082718db70936056004142388f4f9b814c3210021abf41aafef7826149f3b3c3f5b92ef65c28f31cb47949da41cfb2ae702d3511bd42fba1af97f61cee4bac049043f82cf1e8b2b3925cd56f14b8faa741325a4ed3d767bfbec55c335b11eea8f44a0a1ca5539d60fdc3b5c73e3613d21ec382dda41df861ca740ad2f01c133313d86e304043e4be7081d9956d9837d00f04c656ac2ba8a5d3a680b6617d840b0eadf526ce74430f9fb07650cd9b84604c2fb3fb32554c8490778663b1c91f753c0bfa1ef436f97eec4765de1e1bf6b1cd36b39adfca349c7a59a39356e8c6ed0e6a2091ba7992b590d047b0ac18c1f684f9e01e1b96382e8437bc4380b588ec13f67eaa602214b772c57c29c58c3e2de3dc1beea76c04ce3957adc53f91bb626fd61a1471ebc14c33f223b5cc7a39458dca342086632acd27bbcf3250ed85a13ab4e6989afc0a0adc2647a564649927e9482c874ca897cc22d0e09218b32b6d2eb35966d2e02b4067fa528da2c5376f59a9a54467e86d0ed95cf36df2214cc582febdfc888713c13123ee8d6384ab449a61323538a717e823a06180aa380a41d0bfecbe4103c79014df6b99d04955afe98375a8b80c303365137b5861c1a7b56d7b04f2396d773b34e667612ceaaae41b42311837beac591b73f13866e0f4ac056c7555d753705f4f3cf4523875c1594f3e97dfb17af0cf7071a8d9aec965df6abed593625320cd8c30bb8e6e05309870313435bf5db1453307c34e7cdf1a3823a150808f89655504aac6e877281250b217763f03c174e0afe60a8ce29197aeaa0f3e266c02a9aca63a0d24a94eef6f0d3974043b42a082a0f03eea69957e53b593174dc5e68b0ce6fb92443f5199f7b10c2134bed58041bc00e9d8019e4bafcda9d2f94706a33c49096a5a9ab76d3397b36b344a090a4501eaef63342f60f9d9f9c57581b05eb81fb80e9bad6cafe764a500af87e6d46b2be28cb464cbad2b5e8a818c68c6960898c6187c73e7a5795189529fd6058f250802b5d03d8f40e495c679a7c0b72940833006bb0f57894c720d230535fe1eea0dd166a3800e0b08b108d0b571298408320e45d1ad46e0bb4c0c2fec3410f6229ae60822cabf5822134173ebbe01d43711cdd94d1f976d1125caa08b403699a667b7385d429dba9192c7fe1918a66ea71f289a71bd0ce11f5a0ae44d5d77dcea8e61587e2707d22358ba0cf037b5da903b4d6b72a2d952c32d927ae8c859c24a7629537f1e2f5f5dba5044e359d33315b965f0089d4dc2fe33bc7d9a191e0e647facb4ffc68bd41891ef07a797fdecd15f56a7d9bc231db708efb884f276a39b7809517f46731f4fda1bb99d2a1c7e8ac31cbe8b57905044848854ae5c485eab372e6d9c0330541455c6af43909c33be42397244f1395d150dd5fb4df3b5da2db1183b2350990862ae640c919135a7aba364a624268d223f4350f1c9f23e28195970f3259d54808aef945e7a7861ae10434b79b24c712a577bc79ebb3f4ecebdc1f424c20d594b0e20033abe3fb9513ef669cbe2f855537cba7e200ce8bfb01e80fe73a2f81fadc6cc17e7c2e3e34aa4dd21cb8db7728fa811a789a66348dd0e91c670f2471911422e25bcae143247cb57133e7f1ea5e88ac251a02dd6201489170117fc4cababdbdf565fdaa29e37f3471835d1d63109f188daa291bfb67638f977c1f932b503d2a475020284233e6ec1de19e0cfbfe28f96ec468628d3f69d640ef0faa1518448f58d3e47d69c0267fcc9ce16974d283cc3126b055133345c2d53a064e9223a2ed2f9d9f4b02f79a698d9659f3e3ffd95862fcbfe0dfe9e831cd3e6c84c05344f0de61e340ca088be178e61099dd613544bac2410195c4c913c45418c17d965f15a79b7450c80fa599b193fed09731eeebc7b9c5ed3e23859ef2a1731ff95e2964ca07fefc455c69046d3cffc518a9657696684a301957302e4223aede12849f95428f7cb4983eb1cc0113857cc2b13743f098b3d9436ab2431f24b9e6e770d3be2c61c23ea8b39310621df40d358906c7ecf422453a0f2a2fe387f8e8a2b9c70f1de09afcccb47227872fd1894a806f5d9d746914303cf3e44ec5ad6239121d3a2fa4ea729f1dbd6d71863cfc10438914e810759814248f3b986c25ca028d7d2375a426023a9eb723c3a5c74cd13006919af25c0ccc16b83b81a84ca77c7e52f2b667586433d0058353caa96e9a7a88fe192e87eda55cab6b63d005385806a5228d5613f60333d701bc2c470b849757b8288456bcf0bb240a6b7890278c0597e14518ea87324234cecbdc5e923f110341b2b882bbae8fa76b40f6c0e739bb4b932727010fd1557da42715f8ac675bed53ad0fee2394f6508ce212bb277c6dab145dd133f096552f27ebd0ec4a00f92b2cc6e17bf15abaa4462ad0ae9dabd0aed68242577042ef9282bbfb93a3b904c75ed5b8d72c9891829b6dbb7f85da822bac8fd8b04dcce98861672dcf56b1dd7fce72f32c5a90bbb52aac0783ab2baf6c549e87b1cbc536c3f4847fd05e304289078ab441cf0010480bfc1a7a55f325f4339d7c365f286cf59b2d073c413200156d8675efd573b895984d2f61089e712fcc574685746a2440a6133c862b864d030f51238dd8993118ec05887c969cde836c8e7c600d34b2cd867b8348fa60b4204ac52ba08fa0aad244598eceb0723f91cd96f939f9e8e310635d7ef7195bb5f8872e1f8ce28aaa95a86cdd510256320601e905f51448cd0071eae46841d5cee62de3a2a85c4db7102eb008b99cab74b1ca9d362de4d2f924c5b9b58c10b07c3d044a4983b7f154fc473a863a081214c7a4e548b2a8993400364241ba378bf47ea3a56d09aabfcf354bb0a1fb41864700f32ac90d387197a606fd8e73abb03babbf3560eaab714cbd7919f4c90deb992be16c0e4e05e6efaa7882f5609ab5f130374e0040d1a9724cbdc8f16878649e4d7bb613bf1d8bbeca41d4c7e66a188b8df5b1a5895ca482433d0a9558052e509e99951dee01372c8ee6980f8538e8ef5ee823e4902e88ca9acc438221a74bd0bd0fea3d80f3f387f2ee0c5e1ee029b055e2b8a0c33bf7b6c4a113e75da56ea01e5d97ea333a0ee5e1a19f82e7acb18bf5ad4cb5055c61e0d47dd861e3fa56f72513dd99c1bc14f32a32af6b8ff2e46db726027be4632980c7781bb32ce064f5fd295ab6261a63679406ead716325e0ad0e851e321f1fb489e1dcb0236aec39810a550dfe0e95690649d5badabf701cbce1e1db6841a7de7fd7b27aae69731973d8a56a91d576a2cc2e687f25f9d35fcc369aa82517790fb06f77be1a9149d472e5e3fb8197b7e590199b6ad74979a5a9ef6a2f2a6586d3f74e43da3f55affa4e3cafb98f06f5e3200a3ccafe324937bacec4fc6a91c1700f4802d30d8605d810eb5f4cfbae4708c18b719a6154d9d45d3816aa8e4a40d7dc5b2f54588c03fbdb78a7ec128f1e92e4535d361d787f791c314ca21a2fa22f2702b5c5d4edda79722258a97603379e1a34bb20ca71c6ee9065174747c19480e5860099905b3b6bf29042129a1a1122cf46c95c2329dfe396e75685dc49060088e9534036c533bf8093d2da7c86a03aca32734864002f38aa7a6b011a7fd88543679d910a57f5d8827bff858b45290b116b72f86d014036dbfedfaf9685c1051a4adf67f2246782301907471bbd6bf8af7c3833cfeeaf4ffe053ff0b2abfb92867c99067e2905b834464f9299dbb7f94f3235306a9f26a0056aadfcd152ee26a312452f800b1411397fa938266f4f1336f1a2f855d22dae4f74f28efe520433110bd0c23445b4ea07ef376d9d045000a668094a76eef4c9066fb8097871985ce509046abd309b14eb9d07c2d139f787640608c4890b977124177d0fee2d5c995f27d0bc8226af2b276cbe32929b9632fe30f94a6f0f5fc4e134646c405f7514eb14261e841382a56b08790839fde089219e7f90a7faf82e0fca4d5fd355c98a168b0541d260242d020c361e8ad0cb589c2714636404038405109dc25c510df9eb0fc1b852ef3c2f2261a5953c84f69021b1d8540f0bc3612a61a9f9a2aa50782eb765b2dc04b69235ff68cc67a7f28d021045651c81d592cef06b13476feb563137881db25ea5959e8ab5cdb40df4f37307c322bbe7e9303a6b3dce578810f7183713eff9ac5538bbe861b8b43c1f5b23b201bfebd1ad9feb0619fa128eb5a146eafed14f40d2e6419207bb727814938cb8ff10a93b3aad883459111be50174bd0bed4e6c58de16c6afccb5bb2278c7b53443ce7d660efdd922df536a69f49bb540539664ce0c05613951606881cc8e40e33f386c00f5b38d5ee24b87f766724421c5353ae7b6dcb5d3c8faa58b9200b5fea8009fa1206e82881e290aecdb8a3ed42d7e78048450d5fe6b322cf97af05f42f244ac1bc1c65bbb212594f0d6e5e9d67228ede8cb4391a5568c59bbd56aee8416e1625d86da6324933a276aaf032626b11e67ed7e58840b202783ba612293e417b50fa88b76f26648b606235bbc591cda282040953261883abd9a20d7096bb01ab3500f2050a882104dcf97fa10830118a37af6c07c75ca55c50c962bb21f284bbb8aea0aecd5bc40a04312ebf5f2cf7727a26f07565bc20bf38a7c535e7e29bc5668a778bc5d74fe05d4d3f62c28719397a27e75c2a15090df4580eba0820eb3c43ce46073206d7511ead64cc74a61398a96575daee396924472874fe2f1832be05e7bf580f677d6d3dcd2a600fabad5d612664f88dac6f59edda499aa3e990cf96d05de653fdce441e3e15335f4f03bfe222902707c5b0b9227524b309844408cf09aea5776eeedf7dc2455b70562af3451eb116f5cea46e1114eab67142203e93940f137727183f68521bdb546d8e09f951d52652096431d199e09295d1180039898a85cbb45303c2eb0d2b2475ad31d4704144d9f948b5e5610bfc18d92b3b67cd0a22166c6de31350f45e51595a2777c3a9ceeadd72b006851e15af9ea05f53065bdb500e5420e9a183d6514d66909508efcffb72ae0d0ebfe5b3eea6f87cdbda4a0ca9c00e1577af2d9e0a31ac06e2c313d3c79b94374c5304a83cc6ba0f27e12aa0ed8f07c1e472f6bd2ded9921fbf5dfd8294d4b019b2dd4afc642b1bad613042735208a0e4891d2b58a384c46499cf4fa6e497064aec64d324b0484f782238fb4a8f45273e159280e7506b39b533d3f1ab7d118b5ace09460df3cdfb012e12ea83848f68f8b31f08b19a877db79db23181ba0cb8579cc47902504d020961241164e2497e61dd3c7f5d5c890ad23d2b5344c745ab0bc7d2198e20721bb3735e4e64c8fa37b5dd0339edfa9c1069500b69e9b910c899c5adb650130846e30b1f7ff6cb97373516f84646bf4de43f16a8146288c65bae471468671f30cf16885e2f8ca796948e8270cfbc1a39b2c3d637303957b0a87554c0fe84127833ebddef1d5a764609e59bc390c784d1df7ff9558a6ceeed131ae0bdd4417e55804b989c42bc2996d703b8166e52808f9b485dcdde8313fb7515002b51e17224764986ee3e67c62bae2fda5416a438414510a11b7ec20cf6041e165665a79f54520354cc7c06e51420f2679d1ee206e2a5f653c8617f4bb029057e4137bbbc4fecded7c763052ce45ab4f34c476acdc0c9a18a6c5a02e8cafb8c9138006a43891748eddfb498d3850468cfaaa2c9857f35b4426e009f5821cf1bf6899c34d8026ec994e74a05d369d8a0651e61529435c680e7059ab9b5c7329cb3d0b3f2e8676c49192c1e51d13af68409df26f6dc881de11df5db93d3759aa9aae4ebf42a74fa792aaad1dc82c3f05681a6fcd25e82dd446eb2ff82e4ca6728ecdd6d979a2904a39f45a645d6205a14d2ca26ca98abef356cfd1737ac34e9422925d761e6bd1c971eedc89e7bc9c00e29df62bbf837673f2138de4956a789cbe790570cf6385d926784dff6fa7ec93fd44b5d8a87c245e1a3d3d5ac610e6c9a4f57342aaa7b1acbf33138c68b1f53f2f8b59c3ee7643e114755be2e1bb097d28e46e5cff1aa469305eba6b06f16fe5689e389921e82b21790d0f3e85a66a92a987ac58d3d9058cc459c332ad2525191a1dc122df6d073b3dbe269154cb4b12d55a64abf0da3cf58e3fd21a115226fceb66bd562214230422b1f6622548b388bf483f3d738518ef213f803c4aec65ce3ac26f51b53d08374da717a695206ab068955e6c148dbeae0bc7a5a9a4bad20daaa2afe0adb78c73f227d432eec9d68d1e19df6abcffc5f9c3beba50f908ebbcda22633eb1b8e800b299e0fd935d4835daab453d03903ac482c572401ce1df2c1de1e40aa9c4a95a188406807c2257c73303551f5ce56572b29bca3678acd17c412ec76389a7acdba592577d28bacc5534aa6383ed4af1396a4a6febc88f9633958bed26457ad4e6c03d45d14557837303aaa7f536602f8d782045ea847c22cde0680ad76dfbc0d1b7d0eae57aa833236060f81cb0bc0fddc1e42a8c085d54e58aac389291e78e9323e74c90b3d00279c2db37e98d2d133331e372df08720cf3864ddc2626f0bcd67ed650e4ef5142221b22e3d6dac20928f01b2821ab4502c14d08a7546eb11efc91363e12df6a458c4102ca2a8aad52a3cbacee53e33b1d03887f2a6a945117d5de87961aa1af06a31044303392171585f5c13a3c9d8a0a450f00393e310315424c42588faac731b6f0632ff6c55866a0c3f4eae2b137db708ff14bdfa29e24a02cf3c6a02336ac9dc47ff3498b5a0a910f24799280530a0509a3c2a43edb49f38c22fd62dffa8514a2135473fe4fcaa69a0af5db79a2eefe728335e6374c870841a42840d12b66122c191373d1e310e9ca9d889d4a33dd4ddd797fdd174fe485c45d13199afca8f1e9cfba7c3db2b9dea87558ec828f10fb0e015052a2ea607652f52e4fa0e9d022e03edadc07886634b58a3979d9492248deb42b5a078239030d7b2eb1bf0d2d8a8362ac68d3a9910defa4daf44b27dc28546001f018b31e43af60d7293d4f6095777853377a9ee5f6de2db4be641583c394412995ea8a0d730cc2df1401841071fe4184970dd1cfc3cf4d8ce8425e3e905e3f1bfbf965c2dcaadad501b1a5f85683143b39a3e1fbcc2d67fec8c448487864bd1fe61e16d13097de830b532c4be391a1b5cccadeae91bb91c1985fa8a74469d797f1ec7e5bff8f38740e6905a1aebab903ad94ada767575291b4f80a0af291a70ecf7676ea2c744a81fc84f331bc1e2496f1cebdd9485ba3efedd3a4822057efde3741638b9d8fe8689fe0d61e830162e249267dc00bbe9fdf51048562b9b493eaa35ba6f36492787dbd341813d726c4c6d0cf6aeb413943b66ab96eec4a3204fcc785d390457c5427bd6d208e6d6f7773d57598d88765498fa2e29b4ea6b903e5c3f901d95053476c9c2c73e2ebd513696a0e121969fbc9a88f6fe1cf9b4fbf3fac2e25f5dad74fb7363d1704d29b553af14fdd0da2ee28981b05ba0dd5ff0f745c1443633ae2763de1393d80cb8922d4c62a18e211182a63f1fb18004d80c5190536ef0e012a1a4dc6c0f9e1b4f3daf4b828d81048096197bdc5054fb9884ae957bc4fa7d9880dec6a67c62dbb2c8e54d7b66797d21b95db0a4860cd78f2c4294c58de08ef7509e5f5971615c24760a4b05f4e01fee603ad70476150c980ec011280d440213a5772e57e23e16b7924cd6f7ea0ffa32c324740e8bec82dfb3f7bc0c9591c230c0466a4d46312208f2ebae72888131dc41045165e551f0257f50cb58e78ee88b6dc760f18766c44f506426a557db554d083b4ba690fc721112d763c5060f4ce67e83d79cf6b807baec0dd03675664996f06341431845d9487ce25cc5f6ee0dc7cc1b877d231b500542c8049194475b4f251feed4b931681ed08a2110e0c8a84524c97a15d05b26338b98a07fbc2477d0c639161ba3f3d006aa8f6098d8aaece65268b45695e95edc182b2bf48a3f7f3a290c13e7bad8388f5552476b3df3ae9dc90c122e51aec5325d82f21cb6ab1fb465b18db5d7b613c443287d0a698ef906f9d34820a6711ceb97a8cdaf1819698c042b1f15e3cface713045663b291ad2fab56badae7a279bc8326434915231e5ccb8c857b5c9951cb5554a897c01807a3820734c74f3e153cb1d0cb4d67c19400a0f703bcf69fb31532fcdda35040c230f511db47b3f6876e94a8ebf872366cc6a644e937c362ce37b10359b5bbb1fcaf1edf8f4e1db7db0b16dce99431fcad326645f3fe1e1cd1cadcc8a865fcffc2254a348afbae9e6f44b5f3d90dbf801dd019b5d36ce837f0d8641b976191000588fdf7e60e890e4706f189216afbc677b4476015a9e5101de4416ee4d02aa182030ebb423990dd9ee90073e8dc0f2b1d7614b4e68b0f66c59abd347d0fc6ce53fb8f3e8d3af0ba71e240f627ac13b01bc29ca65ec85148c594f0e608389aee8db6501147785b07efdb78612bd9c9fa3ca4d507e32531935a40bd9e9ab44a6dd3842f63d9d56e302b974ea9ea540833cc19aaa23244f63d80818b69f1740146215a1e0ad37cc80b6c83ca46aa7a556644dcbecd9a43bc339e5a08738743e94ea24c4721ff08ed185eeb3104be52d91c43c2b2dcde8eed013c44ce6d33e36b25a4cb1d1e845e0086d009ce74d4eddf0f709ce66b6cdd4a53402d2e433bbbd7958f85c222c70f539d13c40525e6e1bf1f43dd6a501c85846de54a887d97f20e7850eed782bf80c8fece80a4d28a8a7c3866d799af3c1228c4be797c3d92e7b2c982978bd17364980bca342cc38b336c1088d1824d26c14a97a7ca2db48f2083ba2e8b4e94d3f77646bbd867959b50650e4d1f0d5d7db20e61739e35fd44bd30a6709f6c8c0ac14539f604bc75d8ceb1eb798f0a31d3df26213dcaa11077a1a23d833154c79bee64af36d0602d476efe5fb1fbbb89491e96c4840090a2ce4d3546ef2a651ff10132ca8809565bdc3243f9e0567b8c965620bee192a48b5d10140f8b7ff6c692a9f28344113971cbf582d613be74304479e36c529c21929f25b4a83e444c52953ec8b2ea0e9eb4d97a7623f4320899501c06869582c49a9b4f228a21a096324f914985948b0c1261caddebd6dc4458a22ceca58f0da9fcee03611aaf85611ba17414b08e4013eaa203eb2c932463c13f07aaca4725c00b422adaad3a60cbe1f9fc9112e7fc2746b9b0bdc31b371937b04828de35eb36c0e142c471215a0d1a544701d7d2418ac807c25735bb5fcdc4d8ceb32e41f63f3d9b394a2664115dd8d163bec1aa4c75f0b2f2544bba41f11a20b40927113f7a81fa48a3e0b2beac5c60da28864be6958539f3048e9b80a50fd687d944225d77bbf1a26492a8e22f356aa2bb3cbbdb797a46def6f814aa16a9409aad0d9bfb100962514bd7e68eaa142528cc7c7500f2e5cd50f40be8ac1ba7e186c37d5a8e5479b185320764e95f8ec1a2ecefb37de23cb014675cd49d467b8a252dab6548f3d23f2e04380e72e3fabe7be2b785b9c35febad4fa396305a123968113bfba97da6c8a6ee6a742573d1ea0d283a22ebd4904a8ddaa657d4a7ce0a47744b8c614a48aed722ed23b848f475a04886861dda79cbfad6393359052d778667ba12a2da1d98bf367765e3966f783e85b22d78fade4aa22241bf88d0cfae304b23584365de036314b473116af23e8b7a1d42a24bb13427d9bed4046aca89c7330e41a6c2af022cce0f0b9d6cca1022b5cac710ca2e71315fd52829ca3ea8b26c866b981ec8c0497d1e817cdfed82067e33b1ebdbfeea7b0cc7021808af13e137e9a2f55af9640e3948c3480614282d2e5c6d786b674cc801ae95d094a98a15d700172e2211334808998a1d9338ce623dc16e248b623345785279bc5b376824b75c08eef22091a7ff5aeff415ed0d6c9ca08688af95e13eeaaed2233a78ef3c1c804299f72af9f0d0201390dfa3f6b1f18f5ed67f45de36348240f10a52841d5865c7c95d5a9ff7521fbc0accd358c675930a51309e63f680252c33c172cee1643771d7cb736fbc24e5c5cb52723020261d7df87d58600276f1dd6545d813b0b1b8884000198d8bf1073c578427c04c727f1748200f561eb5c092c27ddd70cf7bdeb6a943d9c71196d0cb81a5d91a36a1e8d40646415ff9130198cf401ac3efdfa06094ada3afe9ae9fb1eee364ea99f9e4362540a18fadf70415f2068176e88cbbe378bfda002be1af46c6f4d71ab2663fc33fa9f54556877f6d9363cfa81888cb4490a9243baaa5bbb0b860aa03826283517ccfac5e8290cd5925c4577ba61f8232418b526b2e4f85030f2b4af82079225376c0600cf11f5c1a442ebc8da83d61b14118792811b4d20c8181f84174d8c5c6d87a0a529366b8cf91380d60a4a93db1ec14ac688b011b34560b4cf15402479834b020b34197eec11c352e19c20317b33ae196f419bedf58199595dde53765e8645028b6496956bff783f72160f473ce156ccf8d61a851f2d1b82ce904f83835d1166d4ad97ad694f3a2ec4f48f17733182f34c4064b0c8f631ec996e803ce86aeddd29924096905e0566db0895894db84e04bafeba72d0a498497a2e151ecbdbf6a33a462c06f26bdacf0b944a5a090362180ca37672e40767bf3d87d2a31e91cfdfef6634c281bd71f223e4166ac39327dd5cf196ee7e4044d705cb2339bd778ab1da0aabb3f16b8910e7c222ceb3f1105689de327d07799d2dfa029d283da17398bc872a1188c53ac5eb8dd303b70d66a01aee73e0842a9999c3e93f9c50c422a48ad3a8f03201579ef61f6888613a10583f300bf54827c2fe4ee968faf8690d71cd135c9a389486cd2e6189debe2e46e074484fdf8be9934c1f9f23ecc32289687886044e1b8fb09018a2631442a945c4170d6f69fdecf320a8790a90b6235549e68cc6113e6690609db9f5c1bbc8593084c5352cfe72eef8336aa633f2558397abf2980723b5a37cf9cfef64b7739d7eac45c0f76d666439c3f1cc352757d74ed8e817161e0bbf78ba9df3ac968790d5335ecae7d4f117c71ea5cfacd468bd36178206ff8e0ab572700e1cbab84aabbd89c2b0bdc28274a2f78619c4dcb85b3e6108421b3a3650aea45a501394f537de252007f257a4952196e4046f3195193556b639428da1f4af0c63404f1d3ba5866240c843920b6a2fbcadffd2ba27ecda62feb1f7208212df5eabc41d1eaa4af39c5679899238053e35757b08fc236bd16776cf8fdc8aa548aab93c27848239f2d1598f16173a3c96b1f46e969c6d9cbdcd81ea58fca6e39fae3ccd15d913963b0930e5085fbdd92e8014c9caaaa2dcaf9210264376f4c725cc8bc9d4d64e643c8b0537b9e2903445a24938d7d0d8605f65dc1653ba9baf3f2af91e63cb8c44db6c2f5bd99bfd2d9ad98da03ba61cdede44001d1d402cc89717583edb40cac00a248cd8275a990aa3e4de01119bef59a593bdcc34903d8ae620ead7327570ba5f80539d45c93fd0a0b64af7fdec99f618657b90a83113a54c20b3f1f9a9a5aecc3767c995e73b2f4e386fe54169ba38894f6ef4b9cd4e583be351d5593c7689733aa7b0f1565e149cdc26c178ec7320cfea31a4c7a9af1b9063961d9c095548557fd186a52347d0d948e83db1d9457ba07e412a56e784b274311c1ee3b1037e35037da9d1af308434c9d3db10879fa6b2215e7f5320e2a79b84a8d4000ffd14e943c8408414fa36503f603522fb1bb91d4206b2b68e057f25771411d6952f9abe2997819543966d5d3983f2d6f463f9506ae01352bae193e37bb35b61c2871775c11d5535d80913ea2b6e913231963851a16cb3f0db4dc99875d9183718e9d00fcaa1971a519dcb195651b4626b600c46eb52dd0e28c42d78c9ae9d73ee202427bbb864c7431e24b9b08c8ffec74d264a010865bb433a149fb030f0d49ab543f0e63c756bda08e3de840a382a2796ab52549f8fdd1103589d48c9e12a744e546fedb5a2987952027a4746d88fb4110242faaf86c2604f415ce456131020a0714e1f97f77186cd782e09a9636e44524cdcba7b3cc3c148ba34c114456eb2acf88b4533af2f6b14d52b48ecd25a82e25ca3f5f8cf7c263329cc3cfc6baa47aaa838e58d0ab1938fbaff30ccac6049ee4561de7f6e161907fc28681ed01a21828561ff75e54090ca3fd2725cff1ab8ade691c8c80303514277ba6e9362b28b03a2158fded216ccceefc2a45a0a83aa394861f16d50441e8a1eaae103881b73813d2a857aeff9b1fdead84ea050c1547a558e8e62f2a640e9c63c319e6a7bc08f53597bf694e150b29389f1748d6573ec585aa7c2942627055f83497941847bb57fb156bcebabadb03a6cbc0662aafde036cd4f65db2ee300050d88958e53ac6dedaa0e6307dd558a5af9aa12f1163d72ae3fdb1206186dcc1a0bef5f805634481b4a3b574d3c1799e70a0d61e0c1dc89b121e661ae610b8a3b2cd8f48bc099ad9414d02209ba1662eb91d9249104369ec6ccfddf299f3f49b265e8c663172cb8bf78abb50b904980432c90c58713622730587d49de1beb2dc25f1253f2a4d3ebbc71b19e6f4faa9ccf65197891ef3435859a072e02b4f587f3c0edca080e4445bf6409c5f36b832441d9af37df0b9ce7670472969585a965a51d0c1584041cc6e69d9205a8c05fc7e31b07aaff55bdbd74918c7766b4a7d9e001e766d4899773cb0fecaa55b8e8a73435517763401539cbb55f5a4d3e264a10009c99b2be22d160aa313a2e7f22d6fbf0d3ceb061f4939435f38dc921027030173624c9c383439c091826707816b6b3610a2988d94223f971b0a891097cf5436d00419e8888fcfc04cec5d31ffe8f2d51203f247a5ca5da5e5744d148ea415238429076331e9994ae3101ba183034119f2d0f6f0f91b178cdd33d3074c660c04dd78d39cae9b1316a2275bbd1d27c38bc08df054bfbc1e7755c59c80446257255f98f624be04ce494f0f8d9b7eb384897592c786f19542ea6708b107b88ed19b9d6eeb75d427eb1b7fade13e223e623d599fe80fedfdd65957d5e86550e72c2648cd0560226b7302ca35eea8cf65f16bfc4ac31a88e40d72ee6af7302b68cbca47dc6c4f8a58e9f7611fa4f21a545f55452d3e2ffd4bacf1c3b5f790be0f672e0b90f363df84849af42143d81ff062f6a0e33fb59c9d778a55fad88f1e51ec4bd3373a955d95f6fd04df271819973437395057f47c7bc61c73098a2546911f650a8081c698b6f366e3d8058cd9b50cf04f186089ed1de656b0bd5da6ec402775e9d959f8004c41982de6542aa27a47658def9602f977d0726243bd750742bd27d83d85c628e0c750e7e4e685a3747528996956f1b4b8a996bbec81d9dfd5637b4bc5394cdb6b598bb6533266fe32f9b835327533314af6c7452bd782ff7c21640bbe240ce1543e52843cca719204489ee81602501ec5a8af7ca889713acec8deb02d8553bce9a6e57ed7918aa905175fc440a0b0b590aca3b824b1326d910f30ee90eb3f9a4136f8941b13a7719147300e458b6ff17ae370694f3662fb017c5dc46f0fbb11bf5b93072cc263aa142f7629560a6b42d91573cc9b751360ea20929d5db278165888018554a85d6544ab953fc3b976a5a61f5d261c021a6201b17fdc4f9c54b73c7f582af532403f4cdd210608e3a2f3d78d11be43528d53b81a95ecbef29154fa6bbe8f1d8658a33cda5f248fb5d3412ece32128ee48850fa7603e0eb778c3c28d4f7d6b3257319763d3c6f276b145703c082522647c88f0f789ac64f10c3572a9ffb16b148ed7ef5ac24320aa1db62c76c9194ae016a41586bd4bd40eb098a968408a145489839bf20b2d061464409af015794d5031926254463e82bc3004e86ec0fb20d853929b5fbdac89d9468cdad473c938a84df1024182fcbf3cc2464cfd96c394f121a41ec5bb354c068ef804b19103ca166fec70589f9b83eab3f691be90d5fa20d97917788a804227902a2cb71e79c61e9c1df2832b5d2e93ca08e2cea34459192bf7d926e23046272a79e698c7cba4eeaf26c53bce233fd4b0a5716f718ddbcbd9dbaa8c906e7e0f2a5af2c1fd412a0c9cbd52cb961a82d018e7883b905d53b2e91fd1eb7acd7d6c8df9381e64f06219cdbf68e9b2b31d0dadf0f8d80b8625c68c02c78339a4d59bb8fcbb8b5cd88a86d1762ad998e04220a72436569d513afeb21a676032f06648260e5ae287176206f01a3fdbc94be20e9c3dac2649a07fb9142d66e3b4117857bb13e60b89fa6a2646080fd63d42b83a12c2cc2c7d7a42cab1a384d006672e217482b10bfa259884cd86ce9feb9a841c041c92428d83bd436e5c63c4da29a161d825e7749e6bd594f547099ae179ca106283222f7a8a182f38b525c221785d6ac6d4c4473ccadc891f66ef65dd7ee67056531cd17b431fc15c3cd622c6e15e5e38b0a23e8c0c41f2ee783b452783d6e65d41a247400083a3443fbc3bd7b5d36fd387dd2f3e1d1b14b56d2beb290cf026b0df14a9f02929834aa34d33169ebdcd2170d12f8a9636217fa58528502aaf0e70c480df85daad6634b12d883274aef929c09a5b32c38ed9c16b782ac216fade2ff6285912f6f26fd8470962007cd92c7ea2b1caa5397246d6a326c6c769d80e2a1d4df4f3214d32be3867b3a408c396721d89fcbb0b1487eeac7f87bbbd2e0a05202a37520362e51034f25caa1aea5959c31ed2f832715862b3f586399577f2d53a4e39cacaf1a681e6e96013ce4d6856f6cb0a2f736cfe6261b63d328e501fb09c48541a118f6cc5a13c05fd1694becc577e096041d0bb6883246603ac40b88b7f2881b4d800bbac5fc97a1509da68e165461245d817c1bcd0d1d563ca9148445934407941002b1b415c2659a2b24b8dfe608450b193d99951139d93df3148c4203f8297c9700236a8ca8ef2567b4f99e616c0177840043964c310083c0075e501ebfd3489954fa419bd558a49e86d78ef60cb24cd3f008acde4d004c744457eaf1374b43b1a3d9979718dfb0206f15d36a077ba25a01a93028d75952060789e803776954c1af2bdd3602cd73dd91190fff185aa400d16167b2334911978830e3280b16640362c615212b974e288d23ff8f0b4e8bf437659e9f90449af71c32f592cc497cce91113c5af404269013a2693a19b566eb9ef0a5d148798f7d5955557e8848647614a4b2ba2f3dce668a8a94d1444e8bae7b6c223f3b4861cac4d68a3c39ac026e5f5d9bda219caa828c9edbeb4028fceb3c01adbf7f7da54881534505f5b2983f649fbcd3feca5f683b875e46210d26923aea6ae4048b8bc383c70409e03160a429483ce96b592400a96764008a75f0333cf3e77dcf92f712bc45c471049bfa7928ffc4a08f41395871a8191ed2c2db3114dc072666788ca0dd4ce4ce2ee756ca9aeb70abaa4f030f304fa6b71052e83bf606a65d2f04288f37ea2c70daefa76e6fca68489c1f7eef83da5eb9a30000ebabdddd7417faf37dc3af66f56c627f4fa5f0c616befc736c58c36d9b47abaca0b9eb7cd93b70f0777961c2e0d63890b24a0bc4d2d0040e1465662f70a3d147a0d7f0d3144ccc61f6d3bf01aef8c041978055ecc68a37334f33a18d74c8a0b65464beaf82a541fc43fa6770928744b33ad175f691a84b8a7791e0ebb0b7b327afc61aed3786b206f6a2e6151f73ec1a2b5d477a2fea179ac9167e8e23b430bc24548d6947c5ba7c1003f70ae097530bf7fe84f42993c9a5660c6a9ad0f79c72384594edae74e78482fb378ad669bffb72865cdb3ee1d180c8039098c75f5bbebbbb1347a6e7c92f45dd548e45e8c1d3b88064e935bf279b91eef8c6fb15973eead081aeb920f25c026d424ee1834a6cd55ce69ca98acd7eacae931462e5f3125a9136c5a10eb7e3ab1c83cc66ae3dadaa4c41d8f0e103cde01b16214fb7ae235dc8cf3aaa093f0b178ecc695cdbd369557623cb1b470e82abb442a1f07f1d97078c9832264b1e83777305f084ef086d0b06f42f407a461d963bc31321d456a8d2f98ce93adb3041b3c6cbe450ae8906c1b96c1c03a710692f07c255dee9f6f0858c433ce8aa14ca46183ecf36e39d0e92cd9ee001947c5fb4f1c04bf76c12eb5f0e7765a43ad1117e79634a77d403d431634d47d42706d9b9f982d4570c18aa42834e55d9d0dc4e1e088446e5d6c64ee310f9fa93b5aacb087339ca682d6f0a9e99a64befe09e563a7e4834ffc4e5d49487da4bf59b1babe9896bd4af0cde66799cacf7a3d8adbb69b9748d58efe2d07478e6b05b36e495f4c8241482a98024ef1cc82cbe60b4d1858debdaaa98930277a9d2b59546029cc59ffe42ec3b2388f920ad8e51d8b000150e9721de0df8b0ccd1f6983eca5d1a57e246b1f5a4b85586bd78e5620092b5169a400f6634eadddd0e434e8b0c48a1ae3cb35818305cb1d7fed0718921190d3462c018cececa5fc1e093e8a78650d6e4c152a017509d7d430fa9ffcf2662ec4ee20b49f4077064c97af03fe78ff0903963f8cf3c5dbd05dad5fc3ea70466df7992eafaf4957365cec0c4999bbfeda53d306b5abd9159691b718876d13fa68a11054935e7ae15e96c152118e8ec72fb12d0b11515ea2e2422a588e385a960cf52e676b93c69173f801ad116312e415fa67083a9c1a853d96414ae03ad4581afe16b469517db9ec7d347e5b70d41ea5f26d829ddd91f791a0e0d94d5323d686bdb4c8bb9eedecab464fa08d97ec9b564dbdb4267f3354535f2dac4f70b36e02af5d5c5b1669a7583a62b542c5ebbb39cdde534bce0baaf26d83c7e33d07007ddf75f4aca01d20ddd3e03969485822c5822e40749b37b10c1000e4cbf47cedd5565c10f74aa136e82f4a6cf157c7dd374f018f47452014f136c9217b55a207814bdac9767856ad5fce38019b3c6d3bfa4e243cf2e4dbad5fc1d3d63a7cc5611f0753187f59b60e5fe506ef5d4fefd9671d5983a3b66ddf1fc4fedc907d897ff990150c03c561c2d8f2750c04f06fb2ca94fae0c4032e6763f6b8eadeb542452cd1de3bd4f1f6dbb92c4d2ebab794fa7305635ddd292224315577516dbccf7480668dd38f67c6cf87621304b31ac4bccc8352c397f86b7e72a0c58e99795d87174f930a3fc0e8fa3156b978c561d760974891de10bda31d85299f9021c27b0304a276ae257aa87169341a9ebc09c157c77f0a27ecf2b1e486a4a311adb7da86d4f1a67964ba6d53a98f6552577a1e9104c6ff74168ae0fb2a24a21ea086f7a3a15c4a164a432d97f2b77d2f612a29145d7eedb6319d71df2eb59735b4a550ba76d461df5b2419875ad79a7f7672d1f1828986dd0f1ed785f1a99c1e07182288ccbc9359e004e282e63d9bc9a728adf32edbdebc9053b6a0cc9158da35508113e897ae7fad9c2990cab70916d971fcc2d2bed9f5a895b30551b959713a7e9375c83aa40e6bf923768fd669c38e3ab6005970e2e6c454c2b08694e8a4f732e944d85dc6117e8015107723fb6885d136c1596ecc22a0bb098c7c57d9d3dd44d13affab6f3d7393cfa2d358540b6c7038a7eea5c4e88825f0a91da79c806393b5d04562c965a4f23396ffa2a3c17672450fa66e9b26e1305cf95e078560402adbb531b2ad0203fc4b5b55358725bdebd0f48c44dca236d69ca7ddacb51d8c23953e017b9a6e9a6ec7eda882bbf101a50f7cea7ac8d3bb002ad8c4f0b574982953cd6ca40236db11cb0029838fa8fdd6bba7d4df3538328ebb41ee79576770a82cbed4d426ce844af421b7aff780b0518df74ddfc7b6fb9733af0d581968d337224aaeb449fc28f5d861b3aa068a6c28a5b12e9e98029a3154a58bed35ced1f06eb89e6d0ab82e2d6928be62237ac7b5c6c94824b80ff220852557760b9f751ee47373a562271a187037a4c02781d95b8ba5c04ff6a2d93c0e6f9620536d93015861d065a62b2d584e3526757c8ae500f73686fbfd9106757cc5d994741e589be443a9f11a4eb14af26559e929aa0e0dad0cd0d22557217e9672dc6d0accf0b6c732721579ccc643c7c16c2fd57310966dde8e59582834df3a262d86bd5399dd24554e1072709b59f6ec47e6729039df01527f7b20cf1d6f8f640b07ccbc30471d5210da7849930ac525c8a530adb814112225cf4490ff2194c4ab856d28896a0d5290e39a12892208286031c853084ac990203729776ce7ff5c6a767a634ae2145cfd874601d81d1a145769784b429392510972378a7d062228e90717f856b23e7961ae9af0b4d860c4f48eef4b40d747a13a70df82c4741ef65b0b924b275817223951adae69593c075a9759cf823b6112233a1081cd84c864dc94f04144151413609bb58d293eb26d284759e146ebc26d90b35ebb55fd21b176262965f3765ec850386c7bae03221de872a7eb9af3d3773fa8b6a62b018d43e9100b9d7b0406a3e086cd0544c51c91884e0ab89cdf13dda7e92769a5cdce167fe350e3c4886a74cb815847589c97ff48490bf2cdae9acaec1cd4c8fcf2bc0a1430861f8182672b4772a0316ec812d123f836321c270a01e20b5439acc5e2cc2072fa5910b2bdfa0d746569a1aaf436fefa2dff7252915e1c6467200c20f94981c533d6931658a0b6cb56b503101c7b77a612ca3a301d3160025984bf20fe88b10eabfeb4a1149f1c394c2a38d617fc4e4df76a0becc0a8a7cb80cd7be5d4d343f5226f40605e30de41a0ab2c1ef59221543abac4a6dc13945c4ed9e4853e36771ef6d36a074c4e68204dcb59d97e6ed5bb768ac934ac390c553102a867955d185a487f40092cb0cd36b64d485d0862e3738d6268f526286d6f5b751f16fb7491ef6262dd34e26e35a141f7256371714dd026fa7a188b521dd4617b0716fd020107fd0b32d21baad8c6546295c705f46f1ad1985b5859bac1d017be5630e2dc3b193dfb5b225d39baf384f63b32944bdef948354dd520cea4d0033a8ff6825a3054b24a0705db47df663772432a11b8be023670375bb4ec2607ff5153b7653b08f9c0f47e237677707e744839d433008421a3d775ba9ae19cf8564621bf74fefbf143c6af7c2857c6ca81f5979434114bf6265bee2da54c2905ea070f082008dcb43f4a828282825eda77bc2395047a7f2c92fe256ea4753fa0d2deae2b065340e0b37f9335ad7658d0b7148b1111111112444f4ffe4a3c3e18423885ab2c5b118493bd2e9f82de6e053c44a02d7f8dbbc0bf5da4c4bbe800403023c7db8bceca0c4a72e85fe2a41f8768972879ff9af3212a0e42d80bfb837280fe80047b9ba81b824611a020a8a8031eb032446425034f10421e9ca3ff05d6d1b2e2207fc9b42f708e9e800f812ff0d743a095d07adde11cdd92564e18b42e58d815f4520b8736ae39823eb4e91fe20f1fd6567c4e7611b0bdde1d2fe8fd772dde070d15b4c7e608caef5c4bfefd22a8bf8cefb05ed75bfa79416f67a10e3b71d2d4cf356f29104cd8ebb24550fe1b17b3fce3671616f4bec727961f861863d73b9d9f6df8ad74c0c976bdf48ba8b2f58e1afcc53d770fdd43cd4305178d6fd57f7bc82606b46fe7f008371d69a5de81df4850677b98e4b5752f7bceeb97c71f2ce441729ebf76d8b3da43a8fa73c4d0a6fe4031947478a2e8c5d5091b064e4c79f1eba8bd7f6bcb79fc8229ff6dd278eae82d46a9f754917ea5ea8f055e5ceda156f21a09dac047794da4d960c43f9b21e89d99070505d9fe5a5bf165658a8402c2c635978502dabf5d19ee2fcc953ce65fcc32ca85ab3bbd0365736a4c80d6c0304789310f09b51ddcf3bb70cef66e51de04a6457d3763609d027003d8010ff020c03afcd38c607df3b8bfcb48b0fe3d4bb0fdddce001763f0ef699b14902c05c4019cc3ff863e23726b9ae69a06512d31c8136d8b43b49cc31f7a0ef01ed03adc89c7782ac3faf728c1fafb192f38c239aea06c2f5f31e20248bd7f02e263d2331aa2afd4c75aa711bdd36e9e4dd14ef23b72ed2437bb35d7b4537b6e630ad676ba108b51f6108be7c49759855ef41838a0fde44b48f616a322ddb0a9c20a9dba0745b67f93c18256a0759873681ece44f784f660fbb93b49eff8b763795c897f8c143f08e60075b0ff6d4e14a55ad7cdff6c6707ce4969d7fd27359085dd485e633507e7a93b364794ffee1449975f50f6d78ed661b6691e91091abcc0fa734b01e14e08a8e4719517feb9937fae5239c5e840afca49f5a472823afdc2a26a52e2bf2407cb3b3cbc23eab0fe0eb1f01d88e5b0848773f813c52cfb2bfbd9c597d51d68a31ac33f27a8eaa9aa6c8e9c6cd074b2b1a6a0dcf00710427c00094c097677379445b24822e15df6fe30c2ff5c1dad42a5948e02a340ecd54922e0d0520cc92499fe25539d5d88218410106b01edeeeef9f135eb8f055e59cfefbf9352946651100d21840e5148fef55b59046da0d08b4a2ab27d5149513c87882fecb5b1fc2efdd4e3df3c5503f69ad0a651492827fa518d9a816d1416b65151d81b781c831042c8d9c75786414f12f97735cb14b5a0e2024888412446509185728947ce73803826e84531d925ac0ac5ba18a5c79e938acf29d4927ffe4b1c51281453929014982816c62cab37661f3dd9c546312d598f30455908b86feed9bb016e28e68862140a857a768f3ecd23d60e6a1df2e5d7c03bbaf6053887fc22a8129cf327704b51b5bc3f053867cabf37f63213eae533c07322f7f2952cc981fe7702e7c87f56bdff526f27f3abda4d19da2265fd6e299c437eb601dadf4874942e6a22fc9344fec9a04dabf7a695e04fbe94b2a5acbaa0d58b7f68d3d4a78664e36f2c14d06e6e4e4abbee9f5ddc75c503daf274e3710114154ddaf554d23c60854b38f08e59e10b3807e431816927f3f08e9455026de2cf49a9d3524b8136f1bb68165da9c15f704956a197952ceb68fd9d167406d16a44d06de401dbc4ff628641c9e8333ec6b9b578fef2cc09ed596982287ce701ebf0f41761d8d864d8d867d8e81ab091e86310b489af8a43363e0fd4814b5cbd5fbdeff25abd34ae2875e93aaa824b314583bf5a2a5ced002ec139299dff4410ab5d4cd58736fd1a1206a4b98a8930947400832f20f49630e86575345fe33972015de303b465bfcc96c0ee07e05824fdee2750ea2859fe79167a69acff77f33896b2d03cd8462f0241ef8e0d33a8fbfb478129f9605230350d1964b13e7c66c93108027a996927a2200b174e4a635879bad214a5194c4c4c994fe64d1f2626261fa659fd358305bdccd4a484f1bc6059a704bdccb49345489a21c7b03bd9ec8114f6361759b8c87a7c4cbae3c2c32f3b343ea218c6c5c5a878443806c531275628429d8959c176342c3034404242a2c111520b982082a09ed7c9f0405f86871946777710b6d07d487c201bfda5f38f25cecdcddcdecc5eb71f1bad432086ccccdcecad85184862141121c9b2155484ecedac600111ac944dc535307e567a17009653034059599973448eeb547cfeb197fd8b9d6d222c59b682ca12f676565081623b25e49d05d962b181d885b333ce38e30c32503c04d8ed0e218c319b130950d334140a6e1be4b8540ab6b4b4a838160a28bf8a9952e63761089419ce15c73a01bdf485c58281898189898961bdac62625c684c4c8c2aa6251513131359485b1614a5e4df57e336ef3616d6f78f65028ac2c25531034cc71871e0f5628c9139c6185d359c83dffdc63f7e97363a9452ca683715333333b3ea6b01c96c738e8e314615d10c9ea3c528bffee919172363514618b19a33e819184be93cbcbd75c018638cd373a037ec183fff387e9412d6e61cfc30c608b599a1fc85878d99390b22033366514e2cca89952023029b130342c689e170314a4c935262d98c583681c02216b3c9a136c9799b27a59435462c9b40486c4623603a304c7e635a368198126b8c75cc1c62c42adc388e9318101926e78c98d49e358919095eb4332c248ec8e527072227dc0dd1f739f19ccb4f445c0dd1ffccf3780e5067a61e99a1d1a271e1a1f15a3466bc6de52939b20ab2aa4afceb57b2fadbd6a52e591d6949b57cea88921c88f889c32172b95c56cfe33cf1a5ae38720e21a8e7cad92b293d1105e95ecb38abdd790dc56da2d28e8c735b38e4e16125cb4e3c3c667ca0554fd456f6fc82f9c94e58f88911432e344a2e9c17b3fa17e9acc8aaad21ac871f845565bdecb27ae9ad56d5a889701b2fda1817241f906039a54d70615fb01cc5142c56cada5178b044cd2f4103bbce28e679bca3409d98da439f0dd0a67fc6eb3c8636f465bc188fe3901734b613ff1a8ae72889df501af5a8687b886b47d18240dfdeee28a91ba427dd0c5be2f338e596f792dc481c21dac35a8f70f7bb692fb5d96fa821069080de1d9b7db4d9efc0c0d3e339b07f06180f06b7e9cfbc9d2476b08ac5c59129d5d4d4949404b7094018247a1115bdfb631d95fdb459c5e0637709dc6acb9b07328c200621c61c638c1063e6c720e418636494fcf61cedeb16638ccf317be8ddc0db0d4ee6c51afffa012888b3c3137e1623168ba15ef36e60787d2c5f1f8b243e6fbc39775df546ad625572bdcda0888503fad65dfdb15df421ffc631ba47c3a05dc4d5087b974bba1cca7a69ec1e208679fc9a50076b229b1c11911fbf49f6180dd9638f80ac2240567e816184114b19fcd8ec5cf371fd1f7c08f6d1596e433525bc91104b1b8d149137ec3120fcd8736a083fc6740cda365bf2da43c29af641e26b15f24b6614ea59ae837acfa2a5dd2be1d9091cf36b1d9d31532bf9c09bd67163fdb3383e37cd63851654b0fe2fbd94951565af4b461f8636523e565bd8f38b88b7b09f16ab3e3aa072ca28f2b367067a4dec77007a45a0170dd8674f04fb0cab2d7f7e11892fb9d2cedd7b6084113f4744b08fff03bfc59811464001049f8884f063fdf901da82860acd5eb228b54a9799dc486695c7efdb08211483b68545b8823dfcec61c46084f083b085b58532e8120923e47137d2bec675b4c7711b862eb519c44a63f483202236deb60de573c5470f6adb1ec5281464a51b21caa209c0c24e1c9c3efcebfeae97a21e7a28d486fab9cd396f5c1ece4eadb19ad2fba0032c34451a0960a0c9690de916fca8023ab9aef7864543e90e2eed82363ea3431f028b927fada2c276bbbb43c8eaa4840982de2eeb329a396d30d1bba3bd4531336bdbe2b641df7ae398169fb68330fc88a92098edbec33056c69a5a8669528b9aa6691ad434cd5be31b2df7c7a260b9de0658af3448e5d4de13f4528b85bd2a2c2a265629114d1590212588338e58c194162c0d21012b569450e2e8e849cbc9939884436faf0114284de088c287a4269e849468967f9e040f24a10495a7a727aa279e4081e24529dd9dc76d0479a007461856a3521148b060a0b93734d6fde903421f99f5c313257b5dff84c59c083a3641db08bed7047cce311b76090db1804806f6d258a1012f8ea04140545847f0244c45f754c2195c303333f30e5b1104510afcc916421d28a2054cddedccbfc3383b90ddab2803c3300cabb73fcba01081bd34424c54307b059c2491e5a779427a4924d12bb14515d33fb8c30d67f985d000d743938f8062804ea1fd911942c8cccceeeeee0d8fdca9b08e40afcb3a53017f9c60083244a06f2fe53e329112f97f720042b20c34c532d012966be42b3709640ebe64170e4a885e97edc82d88626593e587c942638c310937d9fea682d551ce7184df06ff8e1c6180e68406918512534a29a54060584b09638c5906bd4ab79422ff5450d0db45483c69e26976d3fc204eb43b2f389f3061ef6350508ff28313218a30863bfb00460b7840f4b136f42c843b493ccb11321305614aa177f2e03a587ea944638cb1665ebb0e36fa0b9ac67e478ff8d7bf0283d22a4a4a7352da75fff77327c80311178d615e7d07c7bfe61d7f977f2eff207c6039fa03e59a86426c94ff5d0b2bb33bc0c416533a8aae3b626b3585369307f43920037b5d341860e254d7ae73b271cdece2be0f52385585921e9468ca8190124fdabdfa35221a04189c9214f407ffacf080135814f1c42915eca08517330b91afbec8b2871c7fd0a6c1e8f9daf35824fc4b301b31f7a8957ef9e1f312cc46fef8cb3caf79cca3174924d1594942622e94d6286dceaeab33cec9dc495c368a60835f64847a160e501f1bbb82d2f03dbca3dad881c15df47719a0db738ffd951f01209bfd7571de4346c2efbfb167ec9e7c968f7938444f0991f5d93fa3eda1ce56279d16a54141df527b85ca499a80a94110e505a215866c3ac873d258e7c8afbea0ff326a5a65f8cea9bc7e719a96f5cb3d97c2395c092c20d022ca0c88b0188aa2839cb041d3b4a750c7e53524fedb6b7f59697bff0db3fe26fc409b28487299b7fde646d49f2d5bc144936d2b985822cb539b0104fbed579ebb789e84a464216aa2e69ca8cd3d96d242ffcb3815aa69f7ffb95c522c34523d8fafbea0aeb1266d823a2e05dac09fb35e4abbeefffb9aba4948f519f8d7d17c973229edbaffefd3b4b6ee7d05bd1d16d44fc03b2aefc02c543d161e853b61613702faaaef6883e76c7009666f0480a8a7aa2fb1dfb49fda9c28d407618baa2d9441976076ce979a974d2f5319a93e0146545e67711b2336c06e7a424a27b93071fe8284a1effb503dd07626a6238ae960950474de780eef48559f93521ff81d151df780a6bbf1914cff5161261675ca86545b07f93714c4017a3b08b2240dc309724b97af442af44edb2e970bba9aa0a91ade918a8e7daf058d435e6c6ccf087bec1dc76d6c803d90217d554d073d20c1d22c51a1f38868631edfdcc71ae937e29ffbf867243342848bae4643ef1349404cb05a13e7e847290d807b60a50b638187ec7fb0e003bdae4e0591d9cb0de3b4e72035ac562316ced18f79492411f48c508f425589a8a52b9296e4924c52629e0009a925cb152d59aec0b24c4a29b18c318e55505902972e68abb6fcdb7a75d5a965c1d159450a8296969c509aa6698f7294a679f051ee0ea36f36586d0494fbd45f667271a9dc525d566e1b0e11231ee7b956773e32286a8a45a27d12ae52c5b94e05d1eae52a3e9db2fe33f3ab3dbcd3528b71151b238edbf40699fc7342b946868f7fdd40360a9113a7c02905146ea8efec7d88784edc503cfebd37834f7f136575fe31bfdeeb4e104d0a8a302d8e8e948af0c88f7136047bf941b02a23521124288190ff8d10b47f0042f85d9c5c8440f9790890b69d932c8468810b82faf5d32ff8504021254ee11f0b2792244918897cf83162f026019a62e5774346e2ff598604c3705c17a02e3ac41216ebdf1f9c3c3258d08ea293788792b716d67b06d61b0bebfe8dd4df1040c03a9de4391de43e704e63403312c2fa631fbf1b5623ed8d401dadce7925016ee3463aa993f8b1641b10aa3b3ca09f2589b7512a5553bf6d03807fdb7259c6f50c9bcb45633196c56a3ecf99cf3a3dd026c94df48262373838431afb81f2d49d2c39f52ac0f66bb5dd6209b0f726090e8f4b6d0a4db7ddf0dd89afd78e7fee7ca566095585ec96526a40c90a16206181344af42186c1aff9fc5302bf1f3af18f95601f1fb693fbd98842ef4fd7e1577fb713a32ccb20129443bcea09fafe84885e5672db347e9c854e749f59cea59e776f50ffb992a06ffd074cae65998f7efffefbbef678a6d713047a696834cd997d3c2b882b579248a20c223f40447e8058896b17ade0872656b001248af0218b228490c0d27242dff213e8fc849f501f9ed3b34dd13810e313865d4081a26a273c6003279430c5141f9822c8064edb7391d46fb549935491ed539faa4db8ca28d7849ac4874618c1021e9afa1f766fb75341209c41480b83c2ce8802f8736d7533080cd8fb31651eac6c1164d98a165c587e8c0a5bb95205ab62f93322cbdfa221f5dbb7ba5584fb96e7bee5f91f8a80f26f2d5ecbf7b7d49fa3ae445a5e557f7e80723072e4e94a4f135f61f9ffac9ef55e89c0b83ccc03bd6eab9f3ebf36afd5b545c3f6aa2fd2f2b436a1df426bab5bbe49abb7e7d78a45554f5f3557f5a77b98caaa3f3095d61f55fd992edf54d596bfeaf975bfedf945ff762dcf2f5a5b5e5b34b05ef54558afaa4d8e88b83ccc37593deb8bc0bcea55b589cbc3bcea79dc5b0e61bc96b384625e9286a44449923214a59389812f18d3d0cbdf8e2223a57b1a0ff49a797ec5fceda4fe9f232230bffa9fa39f2322f259cfef527f8e88b834fdaafe1c1159bd4bfde92bf5879f557f7a09ae9656575cbae9f613b6b479adfe976f752d92aaad7ea097f62fb5e5dc6fdf2a2294fdc4de533fb0e46089318e50d4f2474452bf0d31e48f3e046df8f9f9b7bf3eb4459102875e9a5a62ea4f4c4cf52738d4f4d2f244c3c3663cacf36456cfafd55f6f5ab5fcf527cbefe2f22f170ef995d4ff1c1191f96d2886570c118efb54fda93f5df554fd71999a817ec5d42598eb4930b5151fe8c57a7eb16a2b561fa1246cc9afb48af46bfb7e6d9f7a983f22c23a8aff132b11ee61ea0f8c5221eb65e5612e5e1296c4fd8551384e4a93546d11a1aae76aab087d55cb87fb1af855047b0a22084514b11414f4824bd086ff67c85fa9b700f7aadadabea5b67c54dff2fc2d2881f20b5e8136cc908a0f4d64918517a9dac4025c0dda7eab2d1feeb74ff1df30c517054217568a6880a4f2b0160f532a027dcee21f3fc326268aa08dbb70e315cbbf61b1fc920514e5c522ad9b8c7af1eb4622270f3e411be60e7061899c0cc5a11820e9dd164924c1fcf1f8f08fbfc75f67ca283d4ed3a2c73f76d17cd705711c69946864d5bc7f18bf7c97527e3cc21c923df641b229b194ac31226d2008f6329344420c3358a909249070bf61c14a73e36d04a6828a7eba6d1dd503bd34b6bb9fa6bd22812fe3671b9225d2428b3dd6b1675371717f74443f900d8a342df8187bce2cc378f314107f18e78c43304321a64c618085cf3436098d85ab20d07fe95e82084b40bbd7995e4663a5ec1fe8e0387f5f75cf68bef48c685c677eb45d9ff125a1bb04f4d2eec9530f4f2d859a11fd7f7afc27a55df75f91d8047eacb388fc282bbfd8e5fdb473caa315c13b7002cad1e94d6d4b125cb90269a8c01b3f0240329352ce2cbeb366c0412323a2fcf044153720b2d8ef14d91e9cd8d0804b4a293029e89dd66873419d8ddb9e7b22db731bd7590099a4b3fc5f00ec19bb40f6ced7509532f3409477c38f455d0b48ef8608007167e7f74aa048b2c71e49f6465b56b12aa5cef6cd00b7e996105fc2f2fb12966b5a4002dd29b26cf9778a2ca7b8da80840788602f33d1306b3cc0e7ce9a8b11bab6f837b0cef610be12de212d6c1e2c6c1d2c2cc3c26fa4a4c94df64600e86298922343a0ab2bee6d367a5cc51162603995849b96a03d83dbc08fd3665d7bb8a9891291d15276cf496995314a29e394a424154b0c6ece39dfb20eeff86c3f0fef90b63ba8c3d50e8ae2028a6291f827e1261bb3cf9ab37addb969561ab7e9d9ed74bcc4daa19947237e20e205545e80c5bb7dfc33e25fbf435897b83542e43213ec9acfe5443680a0ae7e8c88db348d440289d903755a3ef163fde917ac2da3f8fc820ff4e23e2528f43a68b30115d8ae77c77233931331cc3882cf358c043ea66915071038a8e7f05c02ed6f596a88f6d73f424dc2182be5c25e17f7502061334ab525b3a93d349a791aa567b122a53333301f0120fbf231ab7f59bdc8acbc1799da1a22f32e1f4426e6e5e559efb2f260fec5838199a93facefd5ddbdb773765d7c1bf3219cd104db8de7cccf9995a646861d16e6f7f5c2736665bd0c9f10d7df18dec65de1dbe8c7a3be8d7afcfc9c6b04e451df463e7e62e97954a5d728c8cfdaf92780ef8f01f8fe09c3f7733cbe9fd2f87ed6ccf777ddf7d3c87c3fcf8eeff7f1c2f7f7ec7cff0c3a374584eb4fc0fcd6f1aebf395e85efcfe1e6fb7f5208ca11726108c7490b442b282e512811aa6f9bc7f10d80ff9250a072e3af7f5ff87de3f795df37f531bf3dccf7f715d6f737172fdff784aff9beded7ef5be34df86e3dcdf73fd4f989af199e3f06afc603a2618047792d343cf55605789617e331c906f033de0b99f91584bc904e004202502f4ac86aa6de007c27640521cf5ad54085bc8c016664a84247f3ae9e051b30d4dbf1904166c606958185173aeaeab59105a05e1ecf829015a690b7f19d90aeab97c6cb08e9645ee88847bd46429e05195610f22f030b2bbcd0918d7abb878146bd32cfe3676a9061356560d196a72103ea672a134e061a3346323cab86950c4f6b781b2f74d4522f8d1700aade990fc0731ed72385cb7a5765327bac5ee868478f17eae51ed5a30515d363c7af7aa4f0c2ea5b7cb87a5b1ed5e3270ddc0fd7abf023e66f6e50cfe9cca9c2df542694b25ee80855afeb676592a1e6cedf54267347bd37b3878eeb513d50a8d9a3ee207484123adaa9d7a8c7ebfcb8e9f1295426f42605d4efccd779ce87aa50afeb5ff811337fa8b0fad1522f7dee47dd41e8c855afd18f57c127e6c7b37c5c2abcd0d1aade96df41ebe5fe8577f15c7c54a1a31bc3bdf1382a93e923e6858e725ca8d7654571f8b8512fcfc7f8b8e142ccaf08e052efeaa98f5715c00548153aba39f79b3870eaa5efd2824a85a35e1c8fc2f74247b4de16b2181e85ca64f2d48bc2f481d3c2531f94aa7c50d50b1dc550af918fc70182828fbf0104851b2f74d442bdf47154dfc2bb1020e75d008263027101c8aa5ed6bb0059b9bcd0514ebd4640de0502e000f21f01707c2f741453efea73ea7579171e6648109aca64ce186a6058416258b6a632a1415e31c4542699ad37e65941fec5639259a301c0f454a1a3cb73eb9b5099cc1a1360e4cb4b4dadb7e64da84c684f65d51b33fb3208cdbf2a931944bed0112b088bf51284f5f24247b65ea3206f420f4d90973d26d0bcd051ac97f5f1e5e5c3542699351a0279a635eaa9993d31f8c39e98ca84b37507a1a31898173ae2a9d7a8e763185253afd1d0bf7abe5626d4ee207454535fe8c8eb8d7987f5c208200030f0d8f1c28e4e8e0b382db0e0d5f815bcd6bb3c1d2a7839fa35c3df78353e05aff5383c9bcf0380bf667814bc1a7fc36b7d8d7742f5bc1ff89aa10a1dbd8d5ae3d5a846439ec66b0df9523fe36ddf79dacb78d9f62c4ffb172fdb9e66dfe2a52a7b5bd5eaccaa0cde8f17e2f5f81eefc707f17a3c10ef47a5d086df87d7a332f450567a98163abc600c1bbd0c06435ba0c0420f7e4087a52158f7301fa270f281b5800b9075cf87cddbdd68b6d52cbb588e41358b31c61865c4309cd48f1a4ad0c813e3ac382ef93c3d3d3c3d3e5869869e9e1e1e56e2f1d133396682c2333637f41e706359fbad66fc1de3b7778958cdeb9af9732ac6771cd7e11d1cffe4bf6841ef5f2516c99268e1639b8781edb98df37e78db3e7ad9d69d6dcfe35b56c352fe169f235fb9b1cd59565dfec99d4ecd23c6582265f48ac4b0fd9622c24a3ffec92ef23ed945b1a5605e4be922ffa4fcb1f1b3efa26e29a58f202b7f8631a0482b567e45a2f2251d014c93d70861cb093227a4e9dde406e763a6d7d16d3bf3d8dff03070e351b8617d6ef0380a375eca1bf5c6b717eb8dbef13c7ec38bde12768af51f33b58a7f4e05fbd74c49546cc8806a5f8305f4f690edeeee864150dfd5fbb67b19efb69559612ed818feb9b7743fc6c43b1ad658c5bfc854ff847fcf84b75143be7cc725ce91056542f6626658ffeec690ea9da9d95016e49f67439e6386e7c8bc09bf49ce0bcb1f6b609a28fcad398730b648c89c03fe98a937da99df5a9cf8f6629e6b6ac3c098c53f871d5bfa97784743ec845aebedbcfaf5521bd5847aa7952f8fd5eb96f5f125eb7879d677c598966a50a1d1de2c48e69798bec6df2f32c52558235395b814e439cd1497621536a1e250a386d7f29b7335bcd46f90abe171bf45ae86b7fd26b91a0d21fc1ade752c10d6f0e8b7e7590821ac5148416467fe2d0f6480c590a08e2b411b7fac552fa581c4f225cee156fc2b836257662a66d304bdaee44a50e78355e9abcc36dd03604e1428bd51bbbf5de7652fe3b18d897109877ef170e8958743bc1c53f46e0c825894601196bb447a27c5b6c285fb3b51273518d65b0ceb6574155b4511a678141870ec527721e312d43942b1ba641d0b2a528e743b383054244a7482d36860e31d30b04d3f4b966182f6d0e0f1e13932f50363dad91f2d9441e3bb1e6b810c0c6b1b61c01eabadece77711347e16a3acf746c67e5aa2de53d4bf5db9c2c4b4b4a4a49484c49f046dbab615b677c756b1509a08d7e9172fc19c120d0ad261e9d54e5ac80c1fc3b358fe8ece257ed9c033c5690a51b48201279ef4c5dd3f38b9b87dc0837efe4dfe5c466c803a2da8f0396e52c0f16ef3fe010085f71b5ff327784e7df7deff6dbc7f4bf11c13de6bbcd3bcb7de69bc7f53f19c99f7ee5de6fd7ba9abc0bc7f5be92bcd85e7acdea59b3a4b3bf518dbfbb7199e837ad7dedf8578c764618577e9782cc773c1731951c1cbe125f194a480c3cbe1270805ef86d7355e9fe03594ea7514cf6b22de860935685a3466baa5666a2b5e5f692eb074937fee94f27a0c6e43f910e7f067c1dbe9a93a3c266899bb8a170675282eb31ae9c0a48eea4444bc779cc3351cb857615af2afdf1db5a4bda3965ca825566266ae8426873ca7ed9224b2f2c1803698c2065284c06e90830982b6f881ac1cb2d9cba343a8a4ce95543dead4cc0c000002026314000028100e874402b150342055754d3e14800b8290448056188963491004394c21638c210000000064646066868409027d23458f69591f27f40ca1d3312ec600bc33f46b696987edfb7944f8fbc46b87b44716bbff9a4535be43a298b05dfa7cc9e2ef762c2b2856d3526a41c57c2b317906fe3022a6c78a2079dfc66a2331beab35b203316f30892058c8ebf4977cb95b14233458f3f70b3f03c8366a8182cba45ac80294b56764f6b44bc63ff6662c0d8e0d01589f56924fb535591182517ab4b7fc81e4a45a39657439c5afda979044efd237e5a4bafe611876bcc9096fdd2159d3f5c8ce274287ab490bf4ac172177fa49b6706f8b6e7e5e3a18b909a861679cc541e8c821d48408c52344352a20706bf4124da8e03c07aaa9d284e378026a59393a41bbaa3c32681ccb83b62fa20ea082e08c678c8b6e915fd7e1ec3180d3be7c7995ec41b0b4b240164d655b47e09016a57cb8c3827b04db053cfcde6536b4f1559246215f5685ca811336b9c02a81214a33a9a51783e62a721237a6d7dfe20df7f90ad887dff248f64da00acaf6b18662d36c805ce2e90e99ffee207393dddd3f1b4b4ff463b369ebd4ef84d4283343bfe98ce5458b402b7298cf6d53e15914d70e8efaec886b69c87a488d7b66054a65b0ee4969191640555f5823441586681ba1d0d30e8c15265b42619e1acd681840cc12099c5f600126dd84df96521fd9d89904425e1ecb8c90ca1c58d2bd9d7b739679dae296cda2c5dce495703966a7d236863a665f9b57803c1cfcf8feb464bfed39f6670303d133cea399db987ac26c4baa0bd59d9c467710fe75c270c0591281a3697aea0aa0fc0ea2c14dfc260b7bd2c8543c81d9b0445aa26da69560c228b827c7003d61b4eda1419af55f411aece61ccf3693e7efa7721b6b60d87acb426fd393a8560aab3bfe0dad3fd2306ee1f007f438259694cc5de39d73e5ab117e88aae2a87d7428ae10c952069f0b423d1cb7cc0c95ac196efb066f68b8c2bbaceee6d1a4f0b96b6397e60efe1aeed2f8d561d7c565d86ef439d98392b7b1a65c65c0b7aa34b33aac3abcd63ff28123e807bac7ccb9b9ec5b0acde73be4900ac861b78984243f692d40b72b05fe3c18dbb608efa436e835bc21e90e7db02865d831cdec2345ebb120efab123f5880c25087a19852f96f19c9b134158ec47d934a773744e345aa2b6b2f7414609d17a6c9848f86bb34deb5e87307077c782aaa5ef8454ff9617dab56d18b46f875c85af5b0babd6980e8ec14429f4b779e4ff03502a133f6809c848bdef2ef8a14bb012e2f99ac17eb2281adbe9361226f776ad377e6c8f255147e5ef08c9d7e7af4d2f347d7e887443b69609e3d649838a3212da229d4d505c080cb21832c37855e151ce0c755e6bfcd5afb38dfdb250120ee5cf84f3874b2c83d3957bd3247f7b887dc5fb8f4b93152970c7362672121478d9201e1421cebe4a9b214d1011b27a1eb11f4876e20e04903cfa1d7fed0fe4bd93589452e42ffa2f6b0393eb6ea809d94caa4461919909b1df2f3bfe525834f63c2d20925ebb9085eb4bc189b276e964cbc7c4295410a07d04952444380a177869bc5cdb2aed8f480a0c96c1c7aaf1eee872b80b30c2223f51f74fb3dbedf7725615489bf4f3fb886d16eed8dfecaf70f1cfe31e89fa69afd8f5ed7906aefbe8500a408606ea2a7ca23402bd3e42d8df8c3078808507c3a80f81a61633ab0ffae7553faf02548001aeb136947d67e08165fbd52c4a6d7cdbc710a5b343af00a5d386c864470edac1e30e031b96b09ac23f5b7c2e4f4925d5516f6f36717e1fb33f15c9245c6a682582ebae2b784be6f60669b5e6651f3642ca119da3197f1cf59e785440ca67987a74c3db7a5e43c91c3af17111f048f577e3d8db941a8d14d01e940b5b609d1ba67d37877f4852be36eaf4ca78219c4bd2817753e4ce40164d532d0e98041fde44edbc774db6f348cf85584e72b75543498b3c2770356e357a53813ea3f88e498944653510a5e2671b59369843ba4e1cc965d6e3670ad4645e60f142987f956c3481e55bf94454edab0742f616fff09ed3ec470b5e2729198d243d1813179aa1298e7cadae8e77c5c50206065bd07c3fb90f604c41f1471cc4143ec553c298db4b897d20512e71a28ecb5dc80d4e462ab83c210b43e235376f19c51880127fab2e9914ccf4fd68772e3a50ba8209cc22e08da11a46ad569107e0ac45a10f2f89c55b0faa5f2963bcf36a87364fde1ed3c674ca899e7019b6d858e82390f0896c22f50e3264027525b3ff7e939ddb23abe186c7aa1cb9c069fe17c337a4887611226db381db1f38359ba60011101d1bd29819035bfa1fa6677cb932052f2f4e6eb66786650182dbbc7e95ff585adce804e1a1429622a24fc34df689fef08682151cd9c6a4ef48c2d4ec62cd04c0a5cd080266b755c05d10fbdeda4324efb292e901b9f5836ef9d5dff6d4999c86a6638274179ee36fa1d697b14b812016495a935d1103b27fc54f74093637bddc65d03ca30dcade057a440bd968c7dd432febc546a24dc362b7001f611412d9fa6390c94185ad290edcbd532d7e738e9b715a8b0dbf5b38577f3dbe89f8700fd02dac89bb74d43974b807b758c3c365fccc57db3d697e6638e2f710f4569c6cc58dca8c92b03b1ae385b355fbc3fd3e0f5321751742e2a1233ca3263eea54296e390bdda280169afe145924d3c36012612f85097845ecc80546b20c5dc82aade162a2613c3bc86ab05a6665342252bf0f809fa1044260f964b5ff97c179c780ae6497a65f91d236ad6bffb7800b1e8be6ca25a9f2b2b7c3df0d1ae817573fed3a5c95722d9fac1011c37d92e5f2388e448b8fefafb9589ededf49e2bc86b1bb63b57e5000785c20e31d36a54a4b70c5c04323a27f4ad2453cf7e1e8f24ae666eddcb6a97996315915e3dd74c892c293274937dd0973aae6de0da99dc0c317aacd849af66f807f3b48a6496ff2552c3648b56e88b6147e21b9b1fc57b6b256a51391b2ec9a2e87cf4d1ffd2e1401bcb38991a3abd91a1d6c55dc270a7889300cfc12624a506708e0b03f72e3f578d27a73688eea9f7b4884ecf19683d9036cd70956bc06ee36220100023f3f60302539677f0618b24c845a2cfc85fe1a10f7d252011b909f4216038a631b01350299a0eb4d9f281ea0a13f7dcbeb09b3e39c497132a932cddfa29bc02299ac2e63674ba516091d63db51f8318ac68a92558ce8d6f87a82fb2adcc2ee4d2e8c30dfcdeda24d69f7628c0874c8d637507e6dcc6ea7be30d7980a8c7c67f63b51ee82fb98d9e710c4cb3c887b2db9e3684682d005e9f96b8b57082650388353c51841e170a202ff4b84fb0d6b8be8eb367790366b71495b45cec3ed9b7a4bd013a3874111e1ba6602d5732ed49da8a2d6c4707ec9b6d3617e0e94f24260ff68d9357dfce0ab78c41657690ae9ae3a2451faabdff28f5f64912d8be48a03c4c399bd86433ecdd08d593618f52d10d51433d51892fc0a3a8b5a87439a3c446fa215e2d5571ff89122c65f2b90c4751653e7f1ade67e5d1a399405016891e7d8d2ed8531c4d6bfea7edad078be78f690d70dabca04525a8a29804bcd07187c224d1f9bff54a1698c134a5b64402d791fb6bf1e227b88cb619d8d0fbf0e280a7e250ac98b10450c18502860752b94983d5acfb8e5d1b4a1d6b64b8e241088e68c9a3ef61210d2d4c89e39123b38b7d61ae5529c5513663fa3990f532017500a2006a1d7a20ca42952b6ce9cb81d20a41ed108ca2397631d7f6137872f19c5ac0fc17cfe9b2b21c7dd972d07e85b409081d0c33eb4c27c9911810aa5a5ad2d970781af22a67620ca7854698a65aae699c53381c3c044d1a643964400738aeccf19fab794cd4127302a6f3f84f969d5e5358e17a7d7e5ee703821263624cc2235cf4471e93d231ac8cc7f80645c9f1a01260d5aaa500554d3c56a0919ce19426501921b2d097241fa5c7baa1550bfcc4ed47d52e1c13143d6838fd656160bf476073fc5d99b4a1d6cefc6abddf2da545e9814fdc054462205ce858db91c5112b3bb98b93faef3ce7173826fe3e338f19ad3edb6b99d66d637cfd2b07249a3fe96fa18086a2a05cb8da1e251d02a7c1bcdf11d334ae5a7e7090a0585d3a8f88af0efa6e082837461411dc61f4b93e4a0ab4f55aba19c72bb883f18de9c813747e2ba572fd614978b8ec81d2444c93283c6948f90314b980fa336353be647d26da5c1c01e57d7705556f7dfc9e08a90ad62831b576785b760f39a6031ca6e07f27581d30f0c522fc76ed27d3d5b03912217e89c89f8f00c5f935da4fd7462a9e7883a871d8872776dcb8d2445f26c71b7afd29484b3e5d219584c571fef0adc07526bf822379a13a24f65f1f8d5237b82f40c2bc49bbf5aabd970a4d344c72aea44bdfc82c59fdc4eb5525516cc962d8a7651b9a203353894cc81ac1c309a09efd29974b10aea827c097c259c307d9270c9a372b3302ebc4d9a49d4b01ad682b87725e37e3b58e4add3a6af3b88e9a722372cc948262c28b681baeb02b84174762bc75132bb90bf650f5572508026ee822ed48173b694d5db49e49dfcd329ec9b17d4d979395c2f734d0e8f52aadecf8a0ee2b32845028ce2b76daa7501fa651b31492b202e11c1dc383df4abb23338dc92828360dce6227663add6ba2fe7a1e6d458a40bb6b2a2988fde0551b625428a627208375b653706da74466bd44a24d60bc7d6dc4849ab62a05fc01ce193810706c33af620591849a85e2062922ad19fadc2fe9fd18c153a8e2399f9ff2afe7d727a193a1d94d69137c8a2adc95def99b9fe19132ba547270e4697e39e95fee660f273e3e5dddef9af351a0e7a384144451fde11c340e0b673e9d8ddf8cd7ec3ebe56cf281a2baad553fe2a1fcc1a7dd8c018129cee62b1764458a68cb6ca90b805570a4298a0c7eba17875abb858d4045ebf8d15d6aa3ee33e210178fb86561d5f8097e8a2bc93b321f88057421c9afbe48c08c434289f82cae7a8b49d293b0943b2098b6d1c6bd6b45ca52df184c419360ffbf8a8b4dbc18c069d842be99dec5691c92bb5fcc6b674f535cfb6d7dcb70f3015059ab4ee86f8c8da429634b71170dd66856465b1893c70e691a52775f4964b25222696aab475b4a98dde8dd49c94f8da5f7b226c491c06d34cf5437cdd9d0255e093f3fb63755b8b7f9b7bd977168b2832915472d2b6976e8ffd724e423327f71d193b4758d0ff447223334a3b255434fd9edfe3e548efb8b6d904d263fd1c2793228396aa78ce69aae7e85acb8ac3a45dea0c826498b383538878021a2f2e69e9d4130244a11673cfe17227b0b4487e847c7c711a48cb9ca4839e057935418e47aac12a5ded30230fe489094456b281a5007a70b6ec918fc38de251a327195f274de3a9d6197fecb816b48e7b06688c945015b3ef361d77d491fc725ee2dca12c59881d9cea6c452dbd2d63432aaf5b886f2eaf61afa681d1d8247b5a0f2c6058abe4150ef1f2b2e445598a8f659a22b2746f56156c652c099ed09a5d22001065a8af8143b558d4753c066ec53bb4915d84b9216a5dff81e8708cf23084419170c4197d53ca478c03a2054c469d3b7f44378e89a1c51035c9337d7eda3e0255ff94647d59844efeec281b73543dffb086563e3bca277c579506beab15ac6c9a38315beafca21c4c528f5ee60dbf6c3ef4301f2950e95a9336826f7a89ef3300eb6711dc625a670d2b9c314539e6b2bf84c5008ab044b407258344e6a979bcdf12b7092b68eb7198101c1b6b8b808c9bd97f91dd67015956fcff82a2e67a9f0545559af096db13b6b0f6f4b5524065f166d3b6e03efb2c047c2957ccc850e83bb62d7efaa1a7718e9a3e1b70ebee5c2c85fb6c67c3d3e91b8f9ff2326fa999b9d859d1b98d7d2870ee1507ee47ca89ab9d32c49363b29ee666c457ff04d2bb896352a86a29624e058d25e32abbaa1c4fb3cfc2bf01269030b2fd76e881803e84d0e4143ad9618aeefe684acddac25616ff0d7faf24d759c95c2c517d6c8e8471093cebc796682d86e87148f815e36b311c8bd6ac8695377d5e3161c0af1105d0cbafb6cd4c40579d66e8347d2cbcea90d05821dd768e7d2c671e9b6800cc791ed9d78954ee59d6170ad5c9566d9ba45a29950251a603789bcd9f79837e20d807bf5fb9c18dbc4f35d1d291dcc2caa89f5974f0846d46b9329ac30a333777eb865cdaf023c0c9143cd588218ea68528111f836e784f9f90a9e891924535c01c54323554cead5d98d6d0604b9ff8483df26bb1ec6ab69fbd6992fb77bcde24d624095b3bebfeb1283b008aa3623476fe3154c04b3a5eac07dd2c67748c025cf17dde164e5998b9744aa7f03e654c35b0331acc6e1298cbe05db6bb7753ed9a1731843517ae715c733289a0de8a74364b233de4e29ded7422069f59f3775ac29bd9109decb3c66c17c1ac93bc1ad549736fdb73c73571a68c4aca5fbbea45c07a227876d1e796efde744a96a2f115e5ad9a8b542369680b61f1d5120932506415192c7f9fbae208388ef286b14b79d164c8292b7616e1e159164e4f00e529af842271b9cfb5a5a2b10454da005f9c6c83f2532d765d51b7ad4e582b0cd0ce8e59c4968f1f780217f61019b695158683f47516dd57dc4f57aa67c23ffafdde4f2a0a5b42d9c4942bf350f1fedfe9096a55acef4be9ea12edf2b1851dcc6e04ad0e49e5d4de90fe2cd74bc2b4e11ab278f81460cb308df2e1d6892f99105cf80d37dd555d29d006f4b59e1c6c1b91b297eb1d91356736255b6f178c0735b04ccd52ad28f4fcade4fb037bc9b3b8035e742b295e97301104ad948a8cc9f714b4b90af70a98202b7176cd04762d8ad58180a2fda1f3c76173abfa06eddaedabada47db7a70e04c9f10bd6df990a0c42af127934ac290f406eaf196f5c50ae19276c0b35c50b8880118c254e375e430df1a0ab1c7fcde8211ba8ae500246ca1200802d1f242f22c3771c448111be41d005e977e3c8dae27ddcd4b0a3285a4cfa5a088ff9f0350782d18dbb3c4716a9ef655705e94f02712e45acd1b2520c19fb1b0e4ddf48386ec2d300f37aa015cfcf8851f91c83af49cf883d4b7a9c2ea4d4d97d0748924aace2c01562387348e139e25c5c256ba28fa503d5e211bc7c502887473f5f43c8b226d5fae73572471fa1dadbcfbc8f0ca9244fdef977b97af56991ac6a2bc3e5adc0c9576082107705ac60e82876f43051704b475604e26bc0658879d604b90f44780031fe0686c28a9aca56c840c26655afad8b8096614d7c52d13e7c16cf0d03c64f7714f3b9cd348059582c12099092c650da975b86c90128813ee540fd5eff0874eec4a0d2867cb87e1097f0b5ed3831ed408ee4248c860400d7c21f3386921057973423935edf04ab98e543a7791e07cb3789eeb14b141215e740d8dc4846a1f9027650c988e5d9ed3eaf694237bebe109db41c23d2e52ce6778762c6b2037c18e3d8b447e06da44ec150f1604f48602ee96eff326bc372e71e447c259866a30f9c20149d9367bdc9ae1ae16fc28a93dc1590a9a58fa82fbebab11c8a80cdf0f7d6002aee1e3a3b0f14b375149b0d397759024027b05c48c9258a52e6269ca962cf6c54752e54b88e4a483bde74caf0083ea40ed4f3b35956d98c6be17e0fba56a007a1c0cdd8eb09e4c2508d767c87318ad2f650091de78e098d1c0ef6bb84f4c1ddfe0b2bc6363a14623f32d7e912221a04a8ddc10a32bd8ae9b9dc498d12545804f823c4211e90c97467ad7452ab1283312fa4b8b7afa078d074070914a8479d24897a7874d36a96fad0c2758e51af28dddb0ba081f00b10557d218f1d2640b512855b0e56281899857084b6b95cec2e206c93210d9ba52bd1e6c334a29aae2786bccfe76fff3013d9be0b06fc6be9e7276b90a70e169d3ecd557e4176fca6a991bace89867a762f3e0a9a365c890acbd54601d64fe21b03e3a7359eeba7543c7ade6049f0061f798d9152998f383c7278022adb9ab63f7515dc6218a5ec2e5b2ad7a8261a9a80c9397c6342cc87517f40774c0f8deeeed11c7ffa2ec8c11107d8b23581d00b9f4028eaf369956c966302965072fdfec2b71599896f6ba926506a88090b51a26277f8d9555c6051291381a17ddb2932713e89c5f603c3a3b5a9f63e6dfd11d679dc49b577ebb309bb874a9fe2ccc134b3b924f46c638f691bce36472ca4e47ec3c2288d16420ae8b2e664743e44c4b182e16d5eb0ded5f67c3372714175b0417ad4a1e326a105f6f7de1ef4ba8733498a08cd2afdcb964863aa79a61ec3a8817b38e202ce349f8fb7618f5d43d75c0a3158ec9239d4208a003263ce05103d38eeac96b5b18ad43f3713391a15b8011054e07eabe51c586fb4e9f9a3ea77dec8654cd2ee9809a7376ad1e6b8b6bee71c4664d2a6409c37d31a4826bf2f5e758b43eb22c9aa6626f09141f6598aca1dcac3b18fa5ad1035c5385792db2cc2841e194014115f1f4fb33d464e8c5b680608d09bac15b755b265cc4b79541dc6e29b03629f1e97c83a59611e250d968e7caf696fba9c61e196fcf7650e149dd3b3efdcfc83ce6756ab90638bc6a7019e93547ee9c2419d845e4e2c0d9dcc504df69e590aedf9e5ce72f52a4a8b3f40b9c7f20834ca146b8e817081e353b5d5bd8e42f0181ce2a120365afc0130702e40c3b15af1c8b6bda70de1401ea801a6e1852644fbb1c24bc3da42938cf5972f5269d5a5e927094f7fbd1388c1f2afb0ff8891045bfafdbf231139f94f0e829122da4394f97571bcd09c98919ddd2cd9772852bfcdd36abb9952abfb03859784d0f90e611acfef0c4f0f1116a0e2aa0a26d79850991b0c8d01f789e91ec337d29458051524256a32a0e18afbd05b78e90d59c0a1732af72eb2866964ee2ef8ddf2857b1cc1561656e4cd89d5d5e7c36eaf8122c953c27e0b14f7733a4b75145587df1213ebd82e29bb24d596c55d33abae5a23d5d0c845d15c67d95c8f8c687ce600ccdf946cbf28b33c902259f54195a5e6958f459f70836819005828de81fd25fd6c5a579105ffe0ec15bc1a73d276339451ab6a098fb1c23c73031173310664573ceefcf7ccdf785cb33300aa50a16291df1ec76e43ddb34f3c06d8972c62bd63761c3506230d21ffc5881925ec6959b4a76e2886c484624737d4f594aef4cc3b4e3f5d0ac2ee770fd1e4181a9d53cddc20ab948529692c2b15175726ee0797d3e1873115d10685825e57bf4dafb588a0280146090d418796f2ccf510040798c0d72a1b53a071e438860f31e8fbaf3ced090eeb5164c1a89d18a25febc1ec15eae5e9213854e9d28269a970b9b52d297826af41853eea697a013308f26c9f67fde1e15344323bf1f4eac4911b9964256de45f783b0384067dd27935a2540618a0eae6112122125281293776b05ecdcd1e93177aed445573a77f46a4f6e88d247abad19969f82cd6b47add782a4fe1d039a2163585f80298151e1a5cf68d29236ec4815e0ed9d326b6232e35b596bf890ef4090fea10344095db0fc0521ee4cdad867df29bb3dbe920a4a9627a63f503f8637a783d5c2ecf72e1d364b40508a8d8b02507aae48fa1a78be008bd48a1d43d64d991bd9314afd0df104b1805f2aad5a8965cbf552301a1e14514d9f18e8a55be3a4f814e0fe991e8d5ba2a89713c0917908b92025b1717a7ccf06b99ace36d8ce994e804fe5ac11a0b183a6851bb05dcd44b165c6af6f6333b1e57820ca39cc9da048d6f2d075a3e355ecad61fc72510b8c6b6cb055100edaf483cdc68e7a56a06dbdc1df79d3ad68492edaf95728b7d6f36fc25b47d7fc5d857e66b432baa733f2a67d8e74e1b1ecc7f9908fbd9c1cf6831feea2da39740c5c769b441e658ddbc5fce8a5c3d07b4f700ad38b6d5a8e62c85f0aa74df8213b07adf7d395a13fbf10f9bfd0c39b78843196fe51882832b1759458ff4fbbf44ceaed668cb9df8d615578a29c11ac30496a4210d863bc7e7fd15fd239c6509dd70ba00614f163a081f8d04a274f760f33249739114d0b3f08a0eac85cee8ad1a6c51fb36413d1b8a048d8cb1ea0efb47b305b29c06509a3fd9f2b5bc6c74d2961809ca843de24009fe4628e37bb158925157aa4db4f81c5ba179550ee102027b98c3f673599c0a7d3b8bfb6b837e513b47a262a31871373d54a212962a2e01d4548b3c386cd7c4b05729d90821cdd906dfee86647f54071a1b3bdcef7ba50f9d8ebf61194d0fa82b789ed0806d82c77a64df22655edcd0467be3f13977d3196587a984576478e9dbe0c7f65c551065d09577f0cba66ecdc089edbf8bc6d54e064387c642d98c8d82f3394f7cfd37f86445af5962fe40f2ea09119c389e03e72787976f76e85025d7d1c55e58c7a4309ceafb3936d124c9ca5603df481c61c1edd6286265b6676398ff659d8dfa83972605d7d8fc1f3847a004bfc6e2c1699c97da5a1a8da9a2897ba9bd2ac6db657a05c953e070965a74d8ed2cdd7e002d293fa348d4f34ec72676df1e380863e21104e50d1a6a422c516089ae58e4e71ea95da61ddc34abf64f54bc68544c6c225d55cce62e6a4ff2e08bad0323ec05d9c2fc3244dfb6b79d477d5848b0918792154385890baa705211df218b0b3025e253180d1f41eee683e12a3e024cd1e45228cf83c53e9b2656404c886c4423655938e2f06c94f1470f2efff6d454a186089f46585ffa46740dd5dbd5800a93ae92b67f8dbdfab60d473a9e884504c6f9152349973aea4df29ceb5d45e60914ea1c2022a143078cf29730e1b8464f05bd0c99e1311499da87f67836a014ecfb6837ed40c4590440856674e7ab20f8d3eac269d132f182e71d0ea1452b41e9c02d6aa7cacc20577b1d88a6999b320f237bcdf02dc2094295dcba88c077623c4680052f184e4be8bfe2282c5383e4494b872b4428a09bca3a32ca44580ee640ec5137245362152523362c2c7c5123ed0be109977f0477cc09d4435357cc02c170d5ff7466f9b6eac81a3a60690d9664a0372d879076efd8c91ac3049427e653f9b7bec25eb010078bda106e7cafc19900af62599b0815c0460c204b3c8773b8346d3128f792b5971a678ec7bf43786dc3063f9ed8aaeac2dc8210abf5cf83d2fa1151ddfaa8cc4d84162f31c956b71fccd08d5879e22d2839b07d8150e40b21c63a7ba7122bc7033af434971d6d62533a3305551ebbd77151078e4c73dd37f6cb787985e7ab49b92ddaebcaf876eb7ad1362ed60f351c3ae4354a9a8604c5c1a483f65a006adcb16eded4a81daf1cd36c7f16d2020f61b3ef84b7364a36ca6f63c3ce690209b7c223037ced9a68519c3b85e804813b343e01a401e0fe6e158843a770de32779f24e4764280b8876e21eca86c46fcdd2667e00781f31cc369b266bddef3037ef99f3085b202c79eba75e234cc6146b5ffca40c8189cfac8d8bb9664b162d8906362fc34f73800e7ec124d7b7b9a0f7bfe1ca706a1f8d60efa75e6db008b9ff00a3450c36023e09ec7672790c2400f4c4b8b838a409ce3c483d99f5e9cf8a300558de49c0277c22472c78fbb138998a926f95c44f0883e69927bf5e53a94a4386099ec85c1914f67aaecb752f8904f831ed56ce9d8a4330d45c90518fcaca237e6073a0b00f1e0f37519ab0114fdaf9015d0ecae063dfbc1621ab9e417604da8880fcf961810426b23317f1f5dda84541c0361f75db18d7c72c835f84cf21d43cb1cf01b1fe7ced94d190fddef76d013b48653ae8ce9fc6b0980188b641c8ed5e1c2d7d373878fde46a62fe92afe4345d0ef01b3febc5435a4e41f663009419c6f3ba086780fd894f94959f7809650012cfbf998238a6dbdea8258bb8901b8807082e8d9a971007fcebc965acb104b33bc1354eba0f0251ac6cc379bf29ea968c99211ebdb2d81e28e802e064b234a4b48a61f905a183a6afea810185c9b0be3aaba6bfe0b35ddb9609c3ff15cf39fdc26aa0efed4f3fc173f0030f8afee17c46353f7d0604764746a9565eb29c976a3bf428984f55d605c9888425db0d9850e2c1c2696eabebbc644e100ded96951610a25d1340d72f6c42dd03ba3d23a5e78d9b514d1ab2ab01cfa81175929a05430033d6c7901aefc2d930f1439a496ab94ef7f6abc78328357ff017044ea2d71f5ecb0a9cd4c4d4f292aed69632d6e4ffe659226ae1488e0f9aa6442ab6ba0f2fc2d1676f01f705046415cad06689fa2816fd7413b990bbc59b45b71b7e4f72ad28e57a74df78b85315e1fafd0db471365447210b0982591d5262bb2c01a19520c86616232610c9fd9e6289dcc3a018fafd986ab8e79e44138943721da9b05403dd138a99f319fe43dcf7ff9895a57a1b52b473276e755bd1628c8e3dcedab2848314acc28e83073f41223f1cb47c9fe9967a1453154d4514941146c54c2845b54b01c5ac0e896a20a21a87b3db8bec6beb38cc05999f6b4858caea1bf93885c42dd0095ac819074afc01e4051cf80fb4ed26885aa5ab7e78580930f9951074f2d9f500707f897ded912c024affcd9b5327c2c3b7cbea37c24c5c4f9a32d2c2872ccfa0a1462c9c8f083516416089e9c7013d4dc5e4e9c824c95c1b2145c78bd0053a53d564412d1de746f56fe105e6ab2dcb3864bc7c490e2837e819f38287a0e3943dfabc612b5fb907a50679e1b1802595fb9f5428ba1281eb388d6d54978ff9ef92579673a7cfbd46ba57b2fa0137824890ff6357d77db4b21ce0ef4584d5644913d0c407c4707c2c571fd368493b24c4ec8ebf6c6dbfab6251f6a2b2a8516304dfe22ab9308b136b809fc7c97e71e5fdb46562f44c16831bb0dffe0953e29dc184d44fce369a800522b4016cc64b9335638d1b1420566e6b05b039fce0ac79c4c1de2a93b981c867d5e4b803aea19288b3edd852ab5d279013b7807f07b126c23b3037c674dba83a1141f4a9b57ba49eef7aa059b5cce62986a6218f75682462fae9e4eae932121dde4ef951d5a2b2ec977d230c63e71309b83c5de91dd103e0fc400d7dbac7c36697b4ca30fdc52da24b08dcffee846e797a3036c0b24259db8f89c3c1ba5e5d2691c74582d5ac5264c0f4c9a2a9d42d35f7d225d5c52bcd65a2109c45ea2975d2c66714db47cf73c6d56cbbcdc74811896b43b02956c2205b4c96717b0569123765f690c95a9bba51a1e8830fb3cbd1d8d74cdae11a17b349f3fc87170c997409c39460ba009c9deab51d7bc4a2f0568fc9252f7233896ef35d6662ea8579d206df2c8e27d15a87ff0c31aa28c29a6d71f8528490a181cda3cde6e64e3e6b110deeabc4a91005c1782488284a01c63352e3f1c7bb997c3a9a29bfcb730dda04a24673f1e439e0c2319058292ae169e0aab07c36b522b830cd8000ac4ab6728d805cad08ddd739fc2aa64039942c050581adbfee5f8e0d6a45a0bb05018e89118dd9ca4a0fb59b957d64e4895004561851775b71663bf03f00504560f6ce37383733f4f234aa9a3ea7992ba1d38f110e7ed9ede472d51c446285d9f84a2ba80d6f4a54349888895429edb55b82eb5f08213cfb7b83a814a58d2bab8d35cdf84c59d183d904e9916b0bd78fd178555f7f043b72284697e5277504c15c46d4fcb91adc72b00331b2fde0d076e01388030ca3876787e13b1c80ed058381d84a2de13904369249cd4d29a2e005829a8daee5d90968041562fbde94f7cfa098be22711b08be8dd02c72daafa01744973fc239a711057e6dcd6e59d1a5a056eedf0860f367766ff3ad2ca87af91669c19b0d9dbae972ef03a5d0176066a510993eab3ba40365b2a29f212cbc16143af2ac91b85512aa4acbcd382e296078157ecbcb0470adcc469ee719cbc6cb21e9e02058aaba3831ee679948fe84fc2d722ff8c6300c8868997fe0f33273e106337ec8a1265216a6194460541dfc408a518fe4d435044f8a6c7252b8d28169d298c16b3d7b37bc8daf26be3726a39347eba3108ab73b223e08d1146639004393495d4ab1e836201fec6b3134c8935a1118efac98c3f0aee20944957666a2c236671639c22a7cf1bc48dcfa3e5cb145c2e2f951d53a60829a01b52d562c75884c644348ecf07743ba001c1cf019fb13c0fc396c166d54f47388d940defac7472bfddb901a1324a6c3d047507ac02e64319aa939e248f71b7320b49449d6ed0afaecd017fdde9c4bb215a074dd1e5be1fdb052154b5d90218c1566e303338bf47b5799f55926aa63c6a0930b549fbe9e3b82d733e463fb5f97eed4a7b17734023b5e983e22c72b901375a88c3beb109bb25c5e79d5bcc4716715f7bacc2ebf648531cd075f78a2538c42edcd29c510483086f208edd6d072c7c58e8cee9fbc8c3c6f8c69b9eda3c809d82c4719f669a198750bcfd912463a5b9dafb296b73284cc6f78302a04ff911bb5986c048180c6d5c72441490d8e781c856078e8066be4247501ed3ea2cb220ad040c1367285a05600023bc0e04564873ba9c40b584ec3705c167c8c564c108465041477bfa98c84adcb8d94d30dcfe9c5a0f023d08aba081c8817363619e40a6ba511e1e93567dbf842baa47cd091711996520033146609e13e3d909ceff691ee8c008fbcb16c0f1a503263988e8817e14cbd1c95d7912882c22bf21fdf8ca185557a3ab3abedf72775dc481eff9f296907418f6d5180322e98f08416694ce868c139b028647a117a680b06a4b6d895e333fb3114bd4a274834c0cfcc417408b33f2f2949d2a8e504c4f069ea2643c2a4b8898406f96fd32d93416db282627b1fdc76e2474d611d058a1cbdf7e0ed2d628b92b61cc532e765883c54b8257cc20914a14d3214cd1eace0d9d110576b85600c101551031c033b3fb8c82a116a4301d6e49bddd3d2946fda0f1157c255fb72875a4a3f70840f87e6877f4d670a594bf42e93dc9ab3671905699dc5d2582b201e42fd8da4fdeda3801994a5e94921c3ccb048624d524ed9764eead410ed64da53e4c0ebd859700baa1c46509a20f541a4c0ce61268ecf35af0036eb006e83168ac2ccd40ff636708d0587ccd0f5706ec9ce8e55d52b25805bab47c99271d03fff4b103a4c97dd700e4232f858abb040d1e4464ac270a740a811c890863466c47137c016b988cb62a81c95c968fed7be5aa39f08108b3285230c105505c9a9e9616266bd49d192bbe2ddd3e83219776c5864713473398c3b484f05587b84b2f640efdc6d33b3ef70eb5905288afdafe45a1dc2aa050022ea52c1898c8fa3a484c17472ada52f0bbbc82b242d46900dc2d31cd45f8d7e37cc8f8e403495954c774e277b33d8b4350da1c4b9fb940686e591cd2b2cfdb099f1e405538433994885ee540f88749d9204b01e17eea23bd17ca49c20dd1905c08845fda0419b04ec21eddf42d286bda54e1d66454c3c4b25aa904f934f64c5b6f77304ec1c5b18ec7823d7ba8051a966c1cf6b3e0348b34be04cb6efcc68325b6010685a4f6206fb90a4301baea7d0686818f383e710d98cca448c22ba3b5d94c269d9fa703ef47d5642e94b978a42b02c4a15cabac20a04a5a4b6d8e5a7905e223cea12f262f8fa69565e3ec5e89346838ee4c40a0018c29690d5c017827cfe9ae3cb4b6a1ea6e6189db6d1108ff87053d720a2099e9ba40b1c6183b9907954f08b64eb6c718638a99882542065e0354172138086c30de290787116946fa1a38310b384c2433311d9dc5746728d03426ab2049424bf2365003b39ae4c4a5f9c0f71df3250cd8faee184c9a098350d5198591f9854970f62379ed06d5203811034b4208bab3c8e5adb5ad7ac787080fcd84fbe2e489916486139049f463f9a1d7c63d2073de6c2f462910544c05215971892a884d80ade0350ab3ecd5c4fb366d99a9a085e102ef8f2f5f240f9ba767734fd19442285570b8282cc9cae2a4ca7b305903afa0212d2769076a0891593359b2e903b9298aecd0ad30203ba9284ac9be8fb58125ea61f6509dd60812db6881708b10a83ead2dc1ae4e2fda15a16cc9096b67ba1ca747c8f33a1e91e8e063bddabb4d126b7ad702d65e19333d127a004e81ef42860882b121c58af02e8b7337bd5e55cece7127632e18516d8364c79256c640bce4b45d3e5a246acf76e41497ebaabae79387d43100bcf066060f44d9aed144293df91ed5f99f9bd73fae07335095a9457b11816cb436457403b0218ceeda76ec4814ad931ab5d02e8d17a0afcbc22d656affd180e78a9a461835eebf257b55e607fcd2041e4a0812370ed3aa7deed2988b09452c4bcd423ba639e6b8818182303e00910d2f662e441012ebfc7f6577266e23f46230004eb3884bfaeb98c200f8d0e6177fd204f2755e97c3df73e1f88c5213419d613948232614db36d4ed1c0633ffa41115cfad3da9141ef1e8c69dfb7de4f36903e00db03fed108445c340688cacd581240f49602cfd0bbaca6f057417a8d1465d9a1d82c171d8c941d39c2b617ce4216f62b32c9605fe14a889e0e44f0d47f47548e5439bca282b2200c9a62d2a14ac9c307cc9e33f7b4f60cd0599cb19be1bda83d4ab97c63e5f2d31a251af709c78394a496f1b557c4afb632c8b0e9c4340f828cd17890fd5a0520ef1f07e38984df0526eeed81b41cbd9490de4c62df72ec53134707f2b79eabfc183c025b1648b8dd1c1a30037b8ff4683fd81b6eefb123a85cbaf6e991e825e2b58a74e2f506cc2ba31bda7f66ed402df592b5758dbaa596101817c2276582f05043d03578a195f360459e34b3a21dbbd229e1c14897d800fb0254b81d885e10238be65a7e5c83361646c9b8d3a8113964014537742ed0f558383202e645a37e2b5103bceb46ce1188650841ce9276188fefc8119811c8c36479540c0c6b8cbf55e1e29aeeff584c6a55497627b70f809562fd8fcd7aee54968f325fa6422818bb60d438315e4ae709d5500a8a6e3dd0a561c6c4732463faba9bf3f64b0617c8ef23c8631c416a2dd3f6d2871370137650e90130a8b185d0dfb340dbbe3e24b05b2196b0ea0c41af7714427fdfd9c0fe3d6c1c557fd797cb0948f4ee867990810d7a7c45d7fd18bd2cb882572b9cf9b73da488034615fe1e14e20161c4f187e732d11c002d489f7431f6bbfb3f6b59c65fdb60aca5c5039777f29597857887eb496b13d054c78049f73eabf8aafe68dfd26dd04093d5ad90148f4ab7f61c4039654725ecc008a0b379414ac52d1e86d5edd23b5b03e47d441efb5804580f9ee2c80908da57394920d9bc9b714ea86709814d2951950aa6f9158f03f61f8cd2d8c00340464b2833d7e544e8915fbd8ac428e64e79a2b9bc9003811558c077ac83918d07290c3d8656d09280f344ccaeb533644a8d038c7d393081754bb09d63036971899001d088d47748593c54e0b623a125c1eeb5227d920c911a8e0f4682e78d88cfa084e8f055767f8477d84a10f1890523c6b2520bc69b519ea2ccb94f08d8236f40156a005bf5ba0379a6292e9b015f6ad59cf9b1384aa08d02af01a4bcbe283733f2021e19d0ffc97270b8168e2b7dd0548802f964953ec4045a7b803d10776efc39aa4a7f42c0a50962f4542730f79faee224807e9bdcc2605d5e49075bd7991122d8ca7d048c7a87d411f9c727042daeafcae9a13aadfcd8babb6c4906f9e7fa58ace5364cd09db3158e421bcf3734f89e51d53171c121d34ea2965bd4b33d9965fdfcae41f99a9fb4eefd62618e14b13303e4731348f630012c787855867d71305a98e6c1e98af7b28fcf8e91a6d90b9b27088551cd35cde4ab80d554be189f388bbe18deb00bb3bfeea0d3e73c8d6431bb8ebbe6a56a801aee96c437b9abf503e5bf8fa04bcd0acc5b4c4a7a7645df023c21e836338c9b8c69f92d2d77c21681a309d38657d3d86d59e7ec9b6aa2b0193ed1a334e9e8d40b90222594aa6deef198dccae0c5c383ac38d8e7f191c908927eda51d4cd4a951db7f0f3c4e233bcaae802812ec25e9af0d4969f5ac5450914656a5e55f4d54534a1cf88ac6a566cb22edf182e5171a1cec5405e84d92053c4ac62a2191eba615302a55d3214becb53c2e4b537d8c58e05a0e478134f3732f28f56ef8e8a339697354a2228c9b538543d68942ee00095a5472a2200c83f54d71d439ff7f633e6eec1a32401a32057d6e24767edf55f5ea6550d2db7a8bdd8ee470d1bf32996ed475a9df73cc108606165c1d2fa0446674a61e4d912a0c14fdb7722e56a866c1a2a623b540aa9407ce381f5a658d63aad7b48275da999b25f48f2a6fd3c0de271a1f06e61952699ed4c4f621d6787f9607fa5726eb46ba9e87aaba98a2008d389230d5404fa14a71621f3c52f9dceff78ec86ce9a5a227734a56a775d2386a5f87e6da01fd4562e412a102f1f540ec08e8583223a38ea6dae2961fb4d985f92b93e146bd96fa4aca0cc1848e3a645d1b47031cf4f27f8d7d350f803da340f1199661e2ab0685931c2e4335e009b352281ce78181e486255fb93e6d717de4a086c9bf18181ba4c47402c81235256edf14bc0a134a3904c9ee4224a6015227f4d00c3dff22b0aa45412ebaec1c803d81518dffbb88d625eed246bd3d642e767d6f1c42fddd4e40ad787017a3ce5071b4ca31fd4895be0d91ddc993f4d19335ca5b00897a0dcb1b7cc9be8307819fe43e8259f4215000b5592660e5f1114e3e244f6d02972c93fc06d1eaf0b180c6f6da94ea2624a3107ae226df484a0245dad2c23eb28488167e1ba654d495932f4f563626d713b29754e712ef1351c6305b334a7e73011169545e5d9d576a4669a95669a89cff1889420d2fe8bfd7949557d0e1873fa890283519cb595bec17f57f26de3d09aeb32040a5b58c1e9cbc58f10029de2d4d5309411e9acb84248af2f2b9255cf785fbcfc16925311a302c847438651a5a7cddf43ae030c145053b58ffd339e039ac7d7549f62f8a0742a551d34d58af98152f0a6dc95b9ffe89ac050ed43b4b3503dd1c5bfd1539c494d8a888b3e802f58359b9ccb7843615da5e60a34e924a51c501dcd551ea45e4a45631c53de0c72c6ac6f4a824d0a1d16c446949d04a0059fab43fda3df43152baf8594266f94700e4c968f444caa41290792569e3469aba01c0a196a2053d4513c63b167191e0adb7a12264286d9c923980f68f9f91ab2badd90f3bcc4b859188f2c134dc30871c488ed456f89b3ef03423113d88fcb3ae866a36249d1e2f9de2f9f829794f0effa999a9cf81495e0bc74ab44c94665eb92033e0c7b582c9eebab50a8f561ab09487a9a535f5bbcd21c181f46b69e1152a48e1bb62459b05f841eae4194753caf4d70bc07740f2109bed185a244ae110e500dc22390209c5aae66870d91710a6a574804be3b3a54612e135792a96dbac882ebaceb2b79af6ace16abbe908516072b3e28e3c0d521478802b0fb3c978e7a71edbc75836db40deffbbd5057fa5a740e5272cb9d471955ce0e88dd3923f5426570ec5591b3c360810c3a56ebac27cb7745696645e8025f7672996722349b7a5f2324c3d0b0a51b93d3d745e8edd700d957ec914d9534a6c143728d9997add8aea4e454bdc89a861c30621d8f4fad1d47619b9f27ab86cd70e8e458a9489d86e16d22099fb38270442954031615557adedd705ebd28189a9ec46f5a5197295b48fb967d6e2ca2bf10402d5e63a633b406f226a9af25842fb0e8bbae36f5e110c5618d1eab670a9156f4f56997d95774b0a23da81765133cb463a465033d6fe778b32e89403480c92b45e2a1dc2eaddc437a63adb5c84d2a532807364c1863210f1f2f6d128eae4a35e1982b67402e112578fb5a9887137e125eeb1cea0c49b5d91a6bf6b9e5aba346cf7b73166cc9444de7c55304693f2b882df5efdfdd465cf21aac034742b9dc2dd2a4177c089eb5bb88931152fbdc7688cb4ba734ddbbfc4acee45ff6a94c430615f03772acdc86b7946b5fd1ae6041d4875e0c17666c297648cd0af5035c2c23e252633e6f77e5629f6c5acb148effd95f472fbdffdd54048ec3329adda2edadc8b63cf8410aee6acaf2d8bae822c3d3243ded8d430315d5cf7e381d75825f543a5a460eefa75bcd45faad319f00e82ba7e1235886edf2fee7b256f198a6a51f5e604f1f3303fbc8991cc58e8780a22ed1a4758d933a9e4e2c4d7868a6b6e80e4aff1538512751dda987559a2049727795e0591dafdd4a2033f53329f983f127fc2f0bc32cb141d81f032a73d67bb9d805c4fa2ed01049660bd198518d26764c7db856bef36d9336872e739d5167c2688e3fd0b896b8c695d93a047c08d3f64021e9ad0c01a68f77d99965500f9075407fdabf9d4d2bb1959764755de2b71aa7962e7e52f4c7916f7d4ef938dee7d8c7af81e2730504e33be2ead75995b19e5396fcb043d9b8798112512ec053a50b34e6c04633819f6cd82f0cf57028a5b75b919036679feca5ea0107c9e6be258cac9d28c1caa37717a9034d62b59dbf1fd914f4cdfe56da0e3ae5506cde0552dd899a15e08141c0b1e4020147632964b594da1918323526634af1b48abe33c4b2289c71b114c299d0b5a55210e64ccaba5b5ab06efe3d9e531ab066ce6989ec4f4fd9cab2b91a07e0227a20ad4507c257095f076c26d19fb92c8b4c38015b565756a45f331d79bc7c4689e05631959b1173f5d5531ca74466d3040c7fd5ab9ac304b5cc433d45e97d8008a1c6db2819a3b3d036148ef642d7678688162d505fe18eedd6168589a5da10f8fbb427583a014d930194b39208fda7452ba8d3c0eaacee42259d07c5f952b711e5cc022ddacf21704e164d7199cab14e2acd5f030ca17795e26913b5281490431bd0ccbb01c7512989ac117fba4d242df567badaa4bcc65123c6f7cfa66a71ce53c75921ad6a8f85bdf1c8166ac7c4b4a15eb5c2096cf2cde4a16582600b543adabb00e5491c47dcb55bac038f55814dd19bdfe182f5ffd96f11ca87313941f3bf401f499fc6f04ba2cf4a02bffd8f8342bfe3b64d3c8b1f15b6bf7f268e083ac582877fcda453896520d4b9e64a62eea0620931694a65bede6ca444fbdbd93608af2df9f59ea41af33372c023cd42a688960ed16d83ef28d2ad49dc5bc458aeac8243ac8da34e4996cbbf941a30441d0974a197a6e5e444b2face33900d2de8696f24384b41b9cf9faad88d253913b1624128cee43e08e894962286e96d83cb6653442c1610cbe193da003aacd8b3c50161ac1ecdab89e1856e148324036c536dd7b286911160ff37c58fbfc54d4fb01ae0174265c99a0144374f1803e1b3c16cc7340804d65539404434fdb04ab7963e1e11e2053c6ee4202d2054dc022966e73128b7a7a9867821d9a61f050038bb845cff006efde20422baac4d53959fa691a9a8c8e4610488523a4aedbe76f91094630d3abce158295b7f4ea5c8c1104815e8f7431ed39b29a87ac0e3f4da4b14e9dcb2ae0ff5ba45989c34879d4a3846f79c4011488560b154d45059604db482cfe70ccaef52a3f554506c862a12417867646766adc6f9224a766754d15c03dd2a426f051cd748f2344c5be1e011f63d218c543b5f22bc82719f4f01c559bc3ef59574b3ce1869b0ea5fb146c62b49d81c667508c7bc5d0dbf9f016f6fa8e444db08edf440498eaea68bbb50cac5363dc546d42a751b96be401069b0b1ec2163cd2bbc8a76a589fe008baff8ece54fd00fc8caf4c8be47dcaedba929960f96878c418181cbfbcf66419e27e48362143577610bb107aee588819a518d7252003a45ba7c5b81048a2765654a3b4f64aaf46a04db09abafd42c6031232744a61f2e363620e69bf5681d8d9a99e65ef517d1cafaee164af3921b656d3429d2196d8675442ea02bdd841a1c3ddf62f2182607c696fe69ebc4c3d0ecda5b96c3a85d160311a53b32027e0c49aa1ca55784a5146d55365b5693dc8929f9145b93c4f0dad6dc8e84055ae32bc213880fa8b8b6976af662e6415e6160017f4a5531ed99d37e4e1f8a462d1b7b0f1c02a38db01486b0f9f1a0ea6a544182dc14707750aa197ce97f676a5aa404198706adb40f45591b597e69887546d03371ce5a4614153174222ba730e20934d484779a0ed9b26328c2418697d6e73e223aeb23a18032c8dd2f95cf1cc4a47ce4ac0a1ab0dd461f154588c1e70f4309cb51c2b18df0df7acc282e276afd60b325179359b0de2ca226f248cc30b39fba500458083d5ade4530cbe3610941e237c8e0b8dde8f50dc85cc0bc0450b8b08896caaed87783e40ed557a5d42f6fd032a4aeb363f43dc4619bfc80950cbc301d1d0c952ec107efa6342f0d052cabc03377674f1ff2fb6b746ca07be16107dbdcc7f9bbb6b31c3216d2549917918ae3c5523d6c38b0954822e9033c95196538d9c34e5c4d393f26602370ad7e9d36cdc4566f75c745bbf048fe04b5ac76860b116e64d11659683a077904d0131209ebd60ab4d5d4abc8dc6b37d5c20d7558ab3df5b507d2d2dc5a1841ba661391f38aa14f1005de24b2e05bd7ea5a9a858f60ad8307a8a4fcd48b75a694c44023afc2dda35df41e907b067dcd6304a9ba67c0c1db7d292d98b5985db36e8fb26a6c87837c6f7fbf44aae557bbfe5be2316423e8207080fd8a340fba6cfec0068835183a3f0f88c1aa4dc3e0e608b991ea6b285fe71f638b1f9df89992dffe0af42a9cacd9178f99c5dffbe406f83ae2cc70029e1c770a6e5c54c870770065911256d31b363872961dbeaae58076fe048b28e3b5a6ab455735b9865daa11ba60da646ed7842621eca71611aa4329bc93ec0944a041a92ad86f6c1dd29590ef844eac210665048b5a53c189925d0fc042c9fc0640c6f45a1d3904ba14a026c51fba9d8a727ae57be08d1dd4da0b2729932225ba0c6c84586dc42a237c8b854277d4255d0755ccd1f17ba875c10dc79c430a62ce52af065e91a4522cfe1fcb76fe1d6196039d8e4970bcf8d0b75b32220a968fbbe36b3629b5c71ba6bb2fc4e6ec7942c847e5cca932805368be1a781e31fa9a1a679c85b6bfb4fb9ed2dc1eeaec6d92e5a71cc91723a7192e5c11788a4b66b690890d7064f4823e241df8fa5ce965b373cc08c896a7dd7d0ae77fae91906d3c3a644415b356706288f5f2f9c1c886d9cadbcd71ad500fee4b94a95c5639d9aec267f834f462cbf8d85b6d5cf682db9559f71984794c8a7a16ef49540f750e866e677dfa0d83728a8015ed26127f0770d5cf94b515985a2af6e55e8b48e1b433060b6088658a0a13e5acf1741ae14296163800b6af6602674a4b4ddb09b2ce7fbc9a05cf0655758efeaecb891d24bd460a1fe1252d3336c3dd2ee8242c9956e0e3cf92ebbb86247d2cf9c8b1a8867d6a7c399c4ea134c28bb09adc17ac34665507214040ae7d26cd01f2016bb407085043e4a161225a2e2a40a8d1b5c4dc071354488e7cebae6a01316b98c344b6a1d8de7517267d1ca5335035def470f093879453b803e50cf6580e66dca5d3e7062f689f1aac0183f11eb92acad6e9c1185ae187f4d425e459d18a942feb2bf65bd4294a485a733261e3510c96b22ee09c2de9bbb1bf5464d557ef9e381ca9872b15e52c7b302ce1acce398190438a7f41a0346050740ae7db70b14c28a5e86f419b3ec101b0812cacd3c139fc0560ef1a2bb196f87f443fb8a6ace3a75faa245e241c7d19692e52236a15e8e7f151c946b65fcc29bfee27e9567a9af954448b2ca58d12cb9b2d4273df9a6d92a027dcbe5564caaabe884567fb53b56a36ec30caf7088822ac745d59bcef97701407b682dcb3eca12cf6e81277173d6654118a650f8100e5470deb1d0dc036ec11f7a7c15eb2453ad86994ee86247e647a877b611a8b7d4e3335e86eeea068b7d73f25a681a7e6f237bb35939af04cb78975b6c350775e61f0c380fec945b16312d5488ae4f7e7c428d180b4363ce406e590d5486cca9a3093f6b22b0b41983980d4b195245d7baf658099b162312402f9e6292a2933f13d32984022d25a1a101a7480ca71827e6b912c1e83f1e1cf49f721e2c59e9e47120ee556d174d21c1360c4de2d792152ac8f4142ca41dd7c1a835422f3c4b8dfdb420576bcbc0943e189144c3874af14384a3a98f5550955f6ec48cdc9a2e0b3c646e6f2885dab45ae0f8b8608a5c5ee64a985be09bd04df8fb5229b98ee8af64eef2885a66d104e91c2f8f3da6a822089f40a1f46475f9378c65861325b1442dd04d7bb5b7c2810a2e9eaf90eba638805c7334b071239c25103844d9699118b8f08eca5eb1f38ba78a751c003389ebc2e24a47aa5d5c47e64cf03309e76d6cd783270238120e250adc5fef2bd1572ecd5a19049fa5041a8f2db00f38e0f723ec5f2938249f78ffacbc7fd9d990a79b2bd243a535190f8d622dfab2a6ba80ae1eb6c5b6293af4f61a688a9c0ad3db182f7101c3189f78ec1fde7b7be5b56e4bcf67ffa5aaddbda3439ffcc7972044b07cab95eab92fc21acb5153a305a4380d9b7f0ef452e038ba940977a2ca5888f207a81f40f9e3d48b4a66315f3e1ac031d59245f4d5bd22a5cb97f68218f969acd66b4545a75d213896171717ce151738da359dadb8e385040ebb73feb216576372e7c66d87232782a758ac0b0951430a10e0e1193bc99535855c72abc7f917e706812496c9987f8d55cc8f95e62fe68acc6896094f22fd4869209c2d6cc68a31e217fb5f3577e2b9e798c8adc2fe0ad23edca7abb001f919ee0b33ff4639fd426fc380085b89ffcba25a2bd600cc09f8173e58669dc454fb4a10e04896910474ee1120d86de3227e0a0458a191e158701775b420ca5c640624cf1c53628b7889698ca837e2f572b70911298ce45f31dd4eef006962cad9e09b7d774eec59ff9d8469cc38f08589f4b14e257dc5e9942085ea388153523391fa2d6a54061ab8979b41059c525a68c0c66b99e8d3fe7d6aca14fd33b7c18b52a5dbaff3a77f3645a58c520e4f22d15bba48b27b3b5f365096f91f7102d9909bc3e32b18ef59ce2ad6ab8a44619bdcd2c65901a777a945393b69bfcaae53323f0e81e2f63377601dcdcf970969c7327f3274279e5c2b6498078a75a083c6d8ea401b47413121211ea56e1d4cba763b70d846e0e8548bbc616f222ab1210b13a85381940526e25f0187c8bdb8a7310106f6ba0aaf81c7cacd9b29c0e564c3ebc07a23e756b6719ff864bd6b82bab871bf29ed5967e9ab2e2288c00d1456c9da8d84a7a996464cdadd9334a6510d3935230e06101ceaca6f0ef2167efca7e901a1d30e238149035ce1cee771bc6cae524d33e9ff7556557cc74087c2cc079fd82e21e481f244dd867aac48243d339a252dd0e57b9c48c31802119e4b1e0baaaad12e791e1ed034b648e7b8b4819221a96a81d6c0aa45ffddee9f438f78175d2eeb2284ab3bbc7e7cbcec9bdba1e8b6d43943eedee4034eb1214656984e9f0871bcbbbaea36fec98fbcdc1674fc43dbc43281a7090a154f1923fe7d8b5c954a45e79bf3e229addc6a591ac198dd97f5880f143c8012a952fc302845b8760f8dab38d3fb8c376cd31ff1b4652f32af311531095f467ceb91c55f57d12dd33fccadf2284fe64a889033af2e28fb63a5411228062518aa87b30da296641f8027afef19f8396025f7605c2f3e51d7f223023c18e5661afe9377c348863d79d50677ecd892718f2b5cde41dd01438d40b4af834d007211a967d2af3db8fd10c806d30a7f882696bd7784ce2a89dc63aa41768944c48818cd07f16c877c3041e6a0eae8c22ba89ca76a88fe3a2ac1d56612f643695a5b06be1aa0cd160191aedbae3f3aa20ccbc287813ec2b5e209fefc505057f38846400a2bca62d5366742ffb734155fd908c58cafd86f8e55cf84865a3cf6dfaa1a7bfd8f9af08a93ebcfc6b1c2b8373fe18cf6a034df3c54a97ecf3dbc70508a46132e4753f7923df1b20acbd823d37aa57730fa4af6747f3700b20b3ab386304a73e890cb0dac1c5ec20d48bee0dff6dbc4505e00d8426197c64b8926a2ff083be29fe01fac244bf3111c977e35378e7941f62186765440dd32c122a5f9c5b763977b8702703e6158342a12be8c2dd42c0ebddfca78299cb42e26c2d031654374d736b1fe780718db157d871b011890b19083140d2082d6995344538b16c1b2e7b2441ffc6a271730eb8bd6b72c9bdb84592c82e68f1461a609f2e72268b908fda79fb38395e31f38faa62f3fb314611460dfc16259917aa04a062ab938a5223fe2a52c4a64918cbfee694295475df3c0bf055e57d7dd7b975f9c59342a307ca714bdf9218082fffe14693b6d8c1621e6bfcd289624bb4de434889a47e0afce9997209cbe09aa039fb5cba6eeff8aed83440605f9cafd365e9f9cc545240f5f1a3c9652a59c509a2878640387fea590626db57bc18e1d8a7a412ad29566617248583786f4f82afd060291404408739313e387963228b00ae692143134429f654deff71824659802490bb2db0f87a09a77f6fe06a7eaf829cd389ec081946683542c030b7372e865ded5a96bb3835ccf5a7aeebefce59e81a3d33c79ee71f352466ed9df67d52d2bdde09d6020d8377dc2fa0864249c322c2d5921f9ae5b86039c3a6ee636391c056714031213da0dfa7b14f4eb85974550cc7f910ee37cd4b67c32ed1a8a314fefa14c03bb6d46d752411033ca412bcf70d0d932cbaf7a74e52b3d431e505c07baae694c5d9b791f88be571307e45bd8a0922555515f8fbd275c06b14fdc51ef139c394509c91e9f26ca101165cf2e0ad3f9c60591a62a284bd15c94eb182fb46193d93f6441e1c1c14a41b2756e26d3e809811d916753e94a6adb7db832f4d398473e481cc2009320f56f6b81cc6ff227c8524ced33bf019a2425354a3d36c5215617a0a64891a8e9f24cb569a7421a40f2f7b5ecb2b86b63ee38ca0bc487f129addd9712ee01d2f47747d01b00bfb000260f733070ca27c486ec42931079e265138b5402e5a7ffc044340f9191ddde99ff0a1ec93a4947b0f4b7ee9bee23f6e498fea2c3cc0114da131038afc6866c8a725f1526702dbe444af73f5e4be66038d7446f3975c59562ab89647bdb0a83ee0dc21725bd5c79f6037ba13765dc000c68fdf255905f77465f1a72088b78b04d52f6ec8428ac58f223ccdee8f40ae96944db590b6d59aafdc2691b95081f5978253c2f40f4f70757146022cb84cb1a003085fb6283d31f684799a01f9463f2212d8fb84eab4adcaebcb821e804bc169345880fc4f990308b7f12bcbc17664556b4f3ed09ad4f96bedd78f4365eb19d24aa5993d39b244745dbe284bc0b2f40f42492612b70b24389c40bed3c89b6cc8d735532aaa664673629e52d31c4e2bdd5f176804baeb840738793c120389a2ae00bf9835dbfcf2038595fa64b570634a4ab22ee31ece8e694702d519142ad90706b54500dd5e15940c855497f4483701b420d62a77a50e6ad30e6c84661249cc4ac541beb40ed8a1402b6047a4ad867b6a6c01b85bd54171c3a235a5b9904e93e43b03a631526b6a16b1ee7c67d8cfb3490679af62702b936279a0c28f41094881884b416ad89e2d586bbefa5f850d33d7f208fcd9d2650c21adad3ceaa16dc07dfad3b55991ab358358920150bca3c8d9f3aab064337923cd018493a6eabdeabab25f75ce532636a76e2795fe5b34f0e6e08d323ef716484319a237f4f8d79490f1200fe09cd3b00e6e2d25b412236d9d67dd8fa09e11de28ba564f910219ee9d713d16064d8099967f9c3aff49e543a28302aae104acd6c47f8531b6a131235dfc35630a6e1c48061693d94530feb07688c4b04fb45ee8e892afdc5f80b854df644e3425eb7d5851557260745e6ff34d1db823e2549240dd42c4610c334e0447c76c36124271d29a1675a3d3ddc3f4903b0a0e0e9996e8d64493acbd502269ef9d78b2d8504d870031227ee4116f36628facdf79da10d1d7a88918ff05def8e8066b082fed6e3356d30e8af0199d47304681f55b90f1671cc979a45e67d7fc4981a8de19e304dc3c343a4ab13afe9985090f4bb86ba5896c0e7f76b48a161b46828fad6477ce78b48b04411716ed4e5626ba09af87011601873660c92d7db88c4ffd47f238550f02c7d1c64e25918b01f53f1ad8ff19a3e59336253562041ba8292337b961f15bf60acfaf5c70028d9e66b2f98ad2659cd2b71703014179a169ecf4ab06e83535b9d299284ad9eae213fdaafba137d000b3eb5e69279c127a5a97d1ef61e375ee347b68332486a160da41df7150b327be53eb8ae48e3f4d20a434bc5b8d33f01294bc0d71aa1494c09bd8b60ccd820022b68abe657d00ea582678addf4021c5ab07b299da0ee5a17baa0cd6e7b4941d04615012c221e109e3349bac666e42be3e8652dd201a8e43afbd3692dd71b58327d30fb2bdea2bee2c6c04e428f68e73b443e47a763001b45131a0e7ec6a654c211181b004eff38a213c63722606aee8af1b950d4ad278f2a517042f1399bf8b471ef2be38e7ef2bc33858171517ad08013efab7d81c42859d43e0f5e539bbf360b7e573da9c8c9d18e939cad48f593382fe858312d11e21a85eb9bbf736fd19080be8e1db12037139de09006275240471be1aa2f861a87314a9641c31459951e62dd60617558556bfed4f747254ae3b26ba54bfa8799b7a7896a5914847d18febef2b3c4a2f2dcc6570a87684b119ae2c6d0cf35372bd583f5717538fb6fb4eb010bd2b0eb66ebeb1ce5348263b9f1810afe084d9922863e4b120f79440a97305bf01741ef16194c5c50ab403f96093abb52d17a9a6e340de194269a23464d4aef9d14b10920098572af075406735f501ee899ea8a2aa9de116031d7c18b03a51ab6faa029336017f4509b10775ffdf4c6fe9f6018a330f8d63a24196e946ddd16f00c7094f796478aa6a10a336c220565524259399110a0ec1b62096182569b27cb935a8a4af3e892973eaa13e700dee4b08bce7ed8af391165e03497a40cdd888205b1349b7aaf8e275ac676dbca5803b0563eb65cca4e6c4b0b8e2695a666efa806e9906a0053f36457b9dea119ae2e37933199d7a7341a4e0d7889f1c8c48940987eb0fb6fbb97d4f4b64358e57f68765c853f43938c8d78575baffa4ef8b77cd7f3f23fea30117a5fe86af87e000cd92f74e7037ea983f258756e9cffb3ca52b2aed80bf3cc49a4e820aa040e155360c1a639dd46946d519cc72de0dce57e33eb60da6fd794dcbf4c0c3fddc5753036d7a7c497e38887ed41d705df87270036b19606bdbf8a4728d6643e46da1a125fc4523702fbc48613fd4e09e125c67486065c70e44d04d02e14e360ebca71ce92660f997c6eab8d67d875424a1aa3901b4cf5e7581572b8f2f2799c92e888107aea751e4b55f4cca491a280f8610b247ca9e73e59f0157e3ab65ce3a6f79174cd22fab53b781f0ede3e02152233583af13e795e1b781db57b1e003cc242866457c2b1e4e6c6b820a57dfd4450f8efd77e2790eddd46b7469cddf1e8b3afd86334fb15e97c64275e4dd2582ceade74e0355b5e8fd903a26f2b963ef94a2a5a0d2e56b1d0aadf1ba0a7a0941a79f51edd92052c14287c033d65c5559bff29565bdb74e7abe2d78a959202e510684b57f857c34678dee79169952acc0503378a72dac086843bc03ad30072a81e05f54a956780b638307b8b43ee32c551153579c82b1e96772856bc3f31fc54ca772abffad4cc7c10af7a5482637e1dcb77f7df3a3cd2f9295ff0f81244b4d2e647c5d14a1f49d7892e2bc78d854a3c902ac948a01b99af0ff5f0a78afd8fd0712eb7f37018a07723222e2c937dad602d3be2504327981b34601001856e2bc7d2260d9c21e26b71b2019dc48363fa89a50179a41af17c3ccff50c138ed6c6be4a845008965912b7b25706c7f1aaf1eff9eed0510174b26a7b50e0926d6d40508e92865d88548f978212f93e56792d0d6de2cffebcc24d0fe8f6b6232b3720429c1f5f882a617734551878a19334dfbbf9daa10e07f59a0bd64e6807fedb9791c277c3081548ee2ff3a88fd8f175cc7d752f3904d1b2f72db40ff3bf62ecbfe1f8fd608dfefb87800adeabc38afba66cec710e4748e60dbf40e4d006ff53f754dc948f27d2a7a114189c858172de4bb7ceaee75201436f5816257e6f90ceac27ecc137a0586e7baa14333874ce9b4c5d8f999a1f0d9b104064d4bb1b371f7c57eae65b7a5230bb453ef7d94afac665beea60153169cb719cc3de6b491024ef48a73b534d261c71676f41d54b947e6fe12e30e396e0712b7a3c573b3d12b36b16846e424f9b51c149ca4bdcd97c603f6dc104808ecee6f3ce5f13012ed87257b6e0ef9c45f9d7428e83c9412c7c852a5578b45f49d0d1b4e9b24ea820b49accf93317accff6b250658f1d3f2eae0ee1fe4a177761a55496449001f90ad3363fc77326fd8695b6d6a0192239846cb1173c5e9367d70cbf6dab2bf37034e14cd7df303b0d8b74526bf2992e2ebf5eb3d093bd56a3515e5d73e039db7ac09094f54c4a72ea06b9ced158b50d5777eda3460f244e46a320155873aad9466b6d6c4724d7c5babab099f9e4757ba0c39727dfee60a5dea2204c4fd14294c568e22467c4553949aefbe35dc1293208363f54a6cc325a3d8040bb1b8d2c866d4a7765a0b5f96ad374de45d131c372ecd8ae74a95c19137878ce5e8d91a81fdd9bbdd9a8da772bee3545eef5511339dab6da8731ef364050570a67b66c229d1615c2bf6e4704017c3353d5b62f13e29117cd1c13363c123f6c16644b27305bb3c0c199e7bc301d6ff0eda8f03be061d0713b6362e67c8a786a78fb5199eb0563ef21a1ebdb7fb954dd49856f26011607dfed844da14f0a8a3be2a893f8cfd71a197814f1cba40c3808581ff84c5c9049bc33545cd7c15d04b7130b838a0f7204db86297c6c25c32bc63726f50b7bca64be60b3c4ae2a9c342cf042ec76726dabbf095825e60e4145710d27689011423dd31c6c6c8beaf2c74e82344a72d97c2a401686f95c104ae7577b75d30b38f901f108ade5faacb52f0c1b65472ed3e18400d1aeeb363cecdc448c44e3e9814870a42653f5ac9d788685282e31f47dbe36554e3d9f4290fc1a04f0a6ffb678095333a5f6a572c252be5597bc34a59ba5ed033b4f42a14d1a5d19d912b99007de9e108b2c93b081809f45f3e247ac77d97b3fa36742ec090eb68d4efcfadc3d97ae68efee13d7ebcd4b4cd5dfc2bb47d259b2bc255ff66e73dd310f9434e8ce4a472bb2cf14bb4f297e474203c368d0f131dab164a6b67df5bc55c41c6b7a80058b37591554f432673cd2aef3dc3e04bb50940c306860abb30b7e2760aee7fba99456b9854032ef02551ce56c77d96b3f2f25045636ddd986d0da2f755f672f66e71780963d967d1d10e52d715d67ea344d3c5661b8dff5999752e01cf3420089341863354de383a6abe4b8843c9c381905ad0245e9394de198e9521c2d954cabe56c06b11acfcdd14d77d952b1d30f3f88cf0d3a1605282289470a4ada55b5754f3e922e37bc0dbeb4644edd8209c34c4a924a5a8f955ca96d0010124b679ab1efee68a316b56ff5b34580248841ae49b6e84f6e3c7ba79c3539f0c53a60e8b00f2f89c50a78d770cdef9e9d5cb7aed73a87d3cf8db4a14693c468b8dc1f3fd8e82691b86535e2de8c16b04937b00ad2b16b21120c828441a40944d5c9614aa5ee70d71a1849cddd222658bb24d1fd040319a05c278befe238114319205579d7905ecd6f52658638142fa1890a8d352eff1d3fbda84d07dc18d014cd79906e96ad7fb898ae64114b4e643ecb6e385bd26b7ffc59905d9ff4106527cd849a0da33070d620c90d8a1c91836854cbc2cd325669204c25ff734c093954db07d81844473c21e68f0daa6e3585b35c7dd0700d913bfab113e302d00ea200eb64d1aa4d1ce87ba221695a6360c1b07832ce1ed4ad522e2489835bdf9b639436f4f9848524d91620fc90a2808c831d174673af990a69788db6f01d170406a74a043d3ed68edc3250c2e103e4ba4bcdd040e8685be398e8bb5f64149f9caf84ecb3c94129d55ce0484a1a3138a3209fbcee0ad839bec4d760fe7bdf6fd9862757c6bdec22a492b95c6efeb14ed535ad4af746679ce29eab69cf49c3e8d1615e5e167557ed6ca099c90c3d9b9a1e69a30b3ed41fa200b4c232abe5c9797da509ff869ce02992ce66d7545d147fd6b7f8d180d0830910c4d5037a82ae8157200ebb4a076de9087365c44f747002abdeed92a83434231f1f7e0bc46d4d4c544c2c9f08fb53c4f89f532f179dc526f0e0c4756572d1459ccbb8825a6b1b4c4f23c7be79d4f7e27c282ab6fd9290bdf7de726f995292292d08b3073808736ee4bac738ae7beca3dacf24d85f9ff6f3f34cf33aaf87dbb9e7c7eaaf79fa9fccbf9e648fcdbf3ec9fceb4b923df6048cff93ebb57f82b5f649aed73e10fbed8b3af1a1b4a6a7133f179268fc4169fdb630ed03137f5b9790a1ebb1676769458c1be38394b5b353607083ec67452b847983eccb35db82f20a81901e2129a800b444d607ebb8958a06a999b7c1f2640c9a097f6a56647fa607ab809d95a74315800d28503d7bcecb96548f0b66cf5997d055cbb2c962f809b041b8f60756919213b243bc6a7c05f1028c8a53f1074344cfef64c0092a8e8480010e195c207328811473e5c1dff9bfe20634e40c3984560045982ad4a8c206b3c986b8b0c2534363cc21348866f89d1ec6ecb4a1b36e930c386820860c5778aa862fc394098481d954759b88a6a09ee6bc8151a12c9a43a96c838a193387e6f020a36e28a8217da721cb018ae23833449a2ecc9c9165862f534c71c20b2b304c91a50a1218894316d269ca85451c50c0f0e0efbc0a96e0ae28628ac14a0dbf4c043a41dc33b8e0dacfeaefe9df75dac146f0a1a158dd262a67567044c58ba465e6e5dedd65e6588b6d777863cc36be4167d7deced271bbbbdbb723b755b8d95bcec544efbeaeebf2865883b445eff718e3abf0be32f64cf5c8f52ca61054d314368e8a88a270c262858412106d2922018aa7262a60a690108590190e74d8220d1b94d61db3051c03d032868b2b5ab8e8a10550658c9ed090300c8b5d8ccf31cb6e6ee49695482f46fc34349c472c915c6832abbf46d43c9cc33e47953f04128d2a98086c2b7b8d6887ca967b1e98b5bd29736b1eb734a2fe991a5138438dc8a35b98d59853e3b38eedaf0b5266143983291abbfb9d303855db49f494b030bfb39f31abd14700c4da00049d1f8b8c8818644d591efe6c86b0477688b753b84e194c51e76e5597edb93b815bdb6b5e7412c3c4a0d10651f2620d9bd480da5b2a5018897abab5f908488e8099456c2b2b688c4fa41b8876b7f466e69dcc3db5c95fd66fcf2617bcfefa4075f9f906b9fe9a980755f7d9b43ff3626bf3be1f557e1f8084cf02db7a612f6a80053d0845a8fd3dde663c55be014af02ef02ba62b09eeb9a27429dd089ab131c394344d53c4a85ddda6294facc8828ac2cb942f1a54a1b46ed3142d030863ca951afe19364c54a139759ba4b451c31f001714a76e9394a80d6aa0aaba4d52c0d8194357759ba45ca1811b74abdb248589079bcea2bb4f5abbbb8f74777777b3bb63eddd2e65fbae0f7ff74e7777373363ccb158ddcdddfd754e168b99376a2a1d6db6c89d39bb9c57639485bdff4b6fac88fbec9459e69af466628a600fd0bbf496de1b73dcc4be0728be4129cf6fe99a6a55da461e47dbeeb86f7ed57679714bc9a0947273a4c466a66ddc3739974d5420d526dce5d211c3965282dec359590dfb9d6a3a368f7367791755de8adb20fbfe3d7ddbb89b2119abaf3a23bb5249ca7560dcecc009fdb773b8eddf3137c8bee350319beffa763fefeebafb94aa63e67aee77efd4b69a6cef6e6f23dd712133d9a3ce89f9a48e71d7943752287b77c7e96883c66fae33b2cfdc85a1dadf952a845231ec0b02416b154416e9d2bf709945baf42f5c66c9e2523ec92cbe06d41a59d680638d08c71a98d41add5713755f72c94c96d5a1b4ed4e2819e947474b5e39d77561338763382d4c66530811a79fbe3a2f7c7e4933bbd99ec6241b2a7fe8a3ee076015108d620745f647f5663a8fc330cc89b66d3e2af6b909582bfb58689e2d685cf2fa09e6318a0ae823b6037e322da6f227b141381a151111cdfec97ed5dacf3c1536d518948992a8ad7f54ad5dcae951772a9724eb90701d504fd7d333c2918e6bc9edd6bee6b1687b40406efb476bed6fb47fb2d62e51252bf406878b5c438dcf32ec4f346a8e5f4c5a45a3fe914d847d54f9e80722b9d4a100076b7d2b752b71db3f3b5aaa8edbb4957cc2382706d4a9b3e89c711cc109117137dcc080866a684a8e2629459d0f1d6af7de0db920a73ad0164316755b439d8a2618b82c9a2f30ec8b8afd7441c5a234350961615d1107143f3ea47031040c2dffb9ce3e1ec0d12683a22c38d278944328a1910218547106064a2d89a5a94a1b5a9529a05768f8b37effc41f3dde10a28b37a6e000a2fe88f27daaa2471ba5ea05a8de2605d59ff53fce285343ce8d21336e9ca9fe0c461b454eb48d32ac4b879c2d596ea210e560a2073a8553866815c3d2cd9929aa21213a55c6954e0ad26a4aaa064e4a942a8a952d8a5477c58a1683198e87a22c06a2ad8bd184214a63c3c41527366368706253a68a129b1454195a62135585042126366a90008311095192d8b4610309433cd8e8d8b04f8ff915ab687105918ab272588b45185f8cc8a7ca4114aa75a1c10f5a8861450b343498d2228d2db4700305542bdab94255599e28c6058481aa8ad8e182de342164837cb2a24ad93b7d1ad5c5c20da32a8dea0643d05977cc93192a94ab3be6096a8ba7341f4859a2393cd8d0c772d836cfebd6dd3d278bb564b8bb64e615babb3d7a5fdf07f34ac1ecc5cacc5c77aa8a6c90fd1ea007298b7939126d396c579115b249fba75bf52c50dd8f443ba3513ca253cb0033eaae09b650c218580510891df06f9917b72c288988f023b18ee46744aa1061d41e5a507edc3246f6b917a32c285f8a1bb59d992bd22c16a51da5ca386a5fbf39c7edee4b353f153688fc25e3871b0fc9f2481e2fa27a82a2d4793dcb239ff3da37b0d21e2474c9424dced4708292840d46b08146143b5cd942dee085049717262e4b381534ab18341549050b2f2398664c1c86c080b6ee21e34105dc13a54be9a00eb4ab3b66ea0a1c53442a6053431a83294cbd05bfd3051dc38619445d38982d63a34ce5ea8e61c3e90ad35df7bb5d011b50f3ec64305e32fed84b6c5bd8c5588bc01f3f7e4bfcd311e1dbc04a5d614fddf7bcbbf98d4d4b94bad825bd39aeaae3362d9b3939706ee80a002c1e3b7404a0874e06ef43009f57f77d8768a041070256fbb71d8eac0a4350fbb70d2ee9ad0a4550fb370e362d9bae0a836ee84ad549d506b278ecd09193e3526d3cef430001e8a19301a6fac1030e80830d7634f8a6aa7f23c0542d89cfbf249a513784f8fc7d7de12b227577f7817677d767ab138087225c847fa84123ffd0e484544754b7d84c3c286d1669aa476eef6eda41a87639504d3a4cd5fe1e56b81d86a8a110f7093ba9f6f7b716f6913dd4ee5144e36fbb1ba4958471e30d7f1ff54f13354ff7b32701176029a24afa875bfd31291e716d27aaad24b5d8f8e36f31c616762cd1f98cedfa7e3b96a89068a6c6f8b10d57c338c54535f2c75aba0f9a807319c908fbddb9ae8bd5c34b957f2409fff828351d99a94228500e439dd41154bde24a2d5576371268419af5f9d3f272c75e627293532ec7c8dce54ddfcab1cfdc915833ab58413ba3a476265125d6d233814e3d93a81e01a9e94903a2f933ac32948c18262291a979f8638c31c6186714ea1f9e935216eb1f045948888598898946a618a1549893d2ffffff7f365494884dbc50c5fcb02f2af1c215db3353ff3094500301f5f480e03f8b4569330edb17bed082da263c43f54f0bb158f4044508358bd5425b18513b424528a808658012b2e5917b53e5941fa84eba917498b42edc6f5ed00b710462483043abfb242ff6d10e21b243aeea23df4343b757f9d5047532b553ac3628f6613c5a344cf4f045053a605e3c13cb9849eaa01d6814025940dd3b0aaa4d387e5dba2f88799ec0b451a2b5ddf529c5a478b485b2b12485a93927f1773efb824c8d5f1893ae2d34ece9ef4e841c2ce488e04894a0c66f497ffc36c96d9a132c4738c050c39844e4080888324dceb06c72840de2ef03082b727311d77d7757cadd5d9f1f7671efeeeeb6dc4e604437ce0fddddf339b318e717e916b03ac3176a9451ce79c5256207fed73b995f0b9847d984caa46d9504dd6f5e2df8acde5d1f45743f72e433367e6666e9b3eeb32e6f774ebfb3e7bbebec6306ba1fba5f36f4eefec4582cd67a11a59377178a7c21b2fb508441225e37ee58853cc8a30c1a3fba925ea779c6cae7fe607f7d61378b6ef74d5d1929f5ee279c8b2ef89dfe7823011694a10c32bda194c1bfe6f64b8fdd52aee736c835d9476218867d218661d88642ea15e3e5854da494da754999611e3b90120b617a6361d05bc0e457ccf3ab6bd9c6755d2fe53b173bb8bc6eee8ccc2d942fde517dbb3bc8be0f2bb4df0ada9d6518b6699ecdc962cdcdb2bf36c3e4e79f65fbaddc59f9c426b329376ba7ab8b2e41fb4321b5070883eb72c77d9c41b762ebc1200bf3721874f7bf3e773ae437c8ba40fab23e8a4481a819a3f6efb00f4e6df79652caabbbbb63179b7677fbd744d6d8f3bd8fbdb78f95b0df12ec7daab1af190ccecea980d8bf133be0efc1cab9be492b3f4ee55f9cca24587692ddedddcd4c1ce60aede72406f7091086f67b67997c296599ba3fbf709ea9fb181a26b33cfbeeee5c6c937d76bd678796ce2d9d776273393dbcd97b656c18c4ee3a02a4833da76302f7daeb60df09dc6b3a27643fb7ccd3c1384f07cb9a466fbb3772deb6b20d8523950950f6dbd23c9db82ddab2555db2d7bc6dcd13b8957dab137fd6e839eb68288b8251f4487630dbdc9b0f6233a82082a9a57a9517f442a4614a93506bf5412f74e0c514422dd507bdc053a6cb15add587843de07fa11bb2d2d4520579587499a7fde6654197c14c768320bbbfa2e615e9cc9bbf65aa0c8bee3865e775dd77de912eaa2f0046f488575f41c94d8b4a9589c190dc5686201224f208838c84415ea7119030c811882dd614fa044cf74f56affa27387ff3ab577d92d5b7cda3faba2f09ced7fd8e2d7489f5d892ea8bf06a89198c8222c00dca04a8625f08a4f29668fbe66fcded9017670d2243c33583420abc8292963c54fe26dd138b4bd106206a24d297143404aade2af2229192528d5f1887f412262bc554fbdbc04a31d5c8b1ea04da6c23296301979fba63d424d59d345868948a623046ed0859aa4ccf20676a50d6545e0caa5f75ab7e557f5d2ad5b7279f08a95e7b95a615e186a27cc4465c54f9799ca0f1432e629f3046315174028a53404849908ce0154183aa541edda25075a1a92929a9a8282828262627a7a7a7061d28d4ba4e0fc8ba85df5ea6fdf45a6840262bf6b32be18584842a36590cf2f531d1882423524c8a5c6212fbf417678b7d07cab132a7896210cbc7a81cdca861cfef40c359d5d8e4777777778cd786452c62118b317ecec5ea02f73a79c7daf6614fed3c2d9b0ccaba20f7726da6eeefe24b8aad8384daecb7bebbbe2bbdbb5bca8fbddee103dd1692aa1c01c67e9bc783183cf222939cda2d06f2021a4629f691bb20931caeffa7a0fc6194aa4db453536d74c6c63ebb603631d6c4a663d74f8e59df41a07f72095e310cabfd921bfb26b3ca0dd23ffd3dc0159bbe4142ced5c0928616a5a0fcc0c41946ac418154142776c05206e78541c31fd314e18f65ced4ca450c7f24c3df84290b5a2a63a9ccdc06a8829437a470fc2e1745748165052550628d291d6e50c30715ca1fd29f0d98848460f8d2e26f6f630f464e4cecafeea7ee6e1e82a0e28a1a4240210144abe5516d1a8ea8ddfdde2eaf1b213a02f6811588a971d8e236754c08af5aa2cfbf1e33e55fd1d56ab57afa454efaa20529625916ba42f7354f47846f47fb7444f896f8769f7df13a6a4825786679f6d1d43475d5541ffeda4cce779e10235a0eee0a1b28cef6c41fb290f615e149ea42bf862c54a3d10847e412f541050d9ba96e0cd34c2d86dba9c9f41383576d2e4942712949d23e65b005cbc3a4893fd29061ae54f9920059241612092778904053e5d3248e601569a9f285004929a56ca623dca8ee5e48ada00557e8f08694151249cc569d1de8d6c8e52891a9fe4a6baa1ff1c4bae2daa1290724c9f27a1d1ae8d72e44dfba5e4c0d7be475050d67953cf2651b942e1135b03cfd3068aedb29d920fd3c4bd066ada9c00e89dffd438405a48790fdf99cfd39d23ccd3ed24709830d81ed254afafb4709f3f48b519d9fdfdf8f740e937677ea35b3b351e146a971ff44885f972728f00781f16fdbee04feeb0b95d479c48671ac25d8cf8f1eb6bbf385ac16e20c9554df00ab864aea12d6ce2d7efef39b5c68f6190b6b26acdadfec89c1dddd3df4668e9f55ff0fc01c6d900fc0182dcf56f9851e003768569755307390527ea52f778c41f7a58c606cd8b3bcd01c5ee80e2f74abfb2c2f54abfb936379a118cb0bcdeab2bcd0b97546b62d62d88789ec10270c23a262cf73021a026d4c58609fecb1d7818532cb0b5db1bcd01cde81903d0b0c62f3336fc713951fb0f4b8ee4801e5bed391abbff924abbf79f93737371fe4bf7a282dec753441fd8807197abd9314348c486d6e1efb28d53fabc7fa31ec59871d1237c80ef18797e76887a87ec890031ce0c78fefcb20039c2a3fc4a9a15629f6371e1f350ff69cd2978a2155eca7161a32968a61611fedb1e7ba0f1a7bcf0cbadd3cd88e2d348c4edf06d51e7bc65ef38218c41eeb4468c220f6d9a7c3eac1da319261252861107b1db002f9823e58314eaa18f6d97f3d0c627f8d80fa0937df092868d8cd4df641fe37fb9464f5f40bea5f7d479a077b2026ec331f0302ca3c3eda20d827607f5887e5c11eebe9e1e1f13c0000e0e606a8621f990c83d8c4a430ec4116501d24fd374c9d962cee4ef7ee76df75b9d1bd1beb7677776f77ef767777efd6a81926cfaef9ff058defff1786edab7486687c9f99cc34d7b6de387e4eeb28ebe7feffbfa6fa0d123723b618caef07c86fad66d8c5beebd10ba506fbd56b198c4b45dd29ea7c809317ea7cd0755f2704aefb6950bf1aab7f3d5202e9586f865acaabca760fc80b659debc6c6e38c387b1763bfdaa53b8d83c6dda571ecee76f33863de4809570c8f32e2641f8fdc8d146c31cf66b6e2f2c39ae9030ce937acf13572cd1b6b625c13e31a5f735dd70f6fac917ec31a5f23d7bcb1868b8adc2e2f6c66daa65a654b61947c97565d085e379c1c5750e764a786a25051243aeaba44a32f3129478e6cc2200b393a982889d2d1005861870a4b1e97be1dcbe3c8145c68fc23aaae4b911450e0b1ac1ea06562ca9c367610463371698926d1c8496eeb582c90885097a50d98281c44ada104bda40690055d91a141183433f30616445f9eb84267dda62f6196be10618562759bbe001186522f6466242ae28a55d3971b6ab852ab66aa4d116024008baa6114618497323fac868a309c8ece102135a3281150465a74d70f2296a8f225cba73f75f76bad484a333f0e777713d0ad1e725db8a8f25d362575a952c2d165a9fa164c0a00c458d901b5c4dac2061d6120f1e062460d395f44ede0a2a62887900e21231c3294728c6cb841139503081a2811ce11452b33906ea030528d0145b198a13b23b53253c48191a412028d954d0ca44e081864d1cc30c35199212b4369b3c1ca74d27ec06242184910990046941335987006890c0d26a4c0298c2313c8306a1a22063c4ce9604219424d5dbad460821851ac34518438f3c4152b3458ca828331d451b0a3058c34cae000063aeb8e3913d5c5994f05f46a634c0ad4206d8991dbe58509619fd6326d466e5375215817bc6400a32c0ca0b8261a582547d6773ad1e65ed3bb10fc5a2c68dc599eeb57def54246f805af9d14aad3e5b9befb8b5ed2fdc1391f49ff38691efe39c3eda980c28b4e58aca99da2ca28e4c5715b857d5e6f64d56f90aeb337124061d17c90618aed7222e29ed0806186a422e0b8e206215ac0c4193f3875b9715aea610b27294da56740735179793406991ba278e38ca717481faa60c1dca20a356ec862862ab216c8b071796265b42dfbc88d2377dd54f2db2fac285d4adfa00c9725c47001d3c425494a179ef3d56de232a5d2ba4d41ac21b5f16b2f372d3d9473b6f7f777edc1e89bbbcbed2f10b65e1f941abdf0b7979f7d8452358f858af9ce0563fbc62eb37d151ab22a7f8f6f20f6d1891fb7e53ccea390f36df3e03c0a3bae7816479febba33d2c2cdcd83b0f5e6a1d4f6c257817a6144001beaade8ea8b4b70dcc731b87df3b30f6c9ef8381e121c206ee17cdb31640254e3fb7b5d70264e9107a001a3a091b24c83bb8b38b504eab85544e606d203a4cdecf77f2fdfffd8ce72ff7f87ac53b1b98f9710397621f87a409ab9bb7ba7d707776e775eb932010bfa3b7fc4a6070b260084ca1b787b7353e0f296dedc6b7a23e621500216940b7040ed8f1e2c9800106a6f20df57f57a97504af0027ad56d0a42ca8b20cac03273d87abc884d41005165ff0001555b8aa97253116a02e289004339446ad86307480d851011537d7dd1f8fa8fff0a51dd7f522d2ca8feac1e9eaaff833e1455ff1e1fd0547fa02246d5ff08fb6cd30f51d51f090a38546f425a41f5a62d52547f169a8038928286d3855c4b952a26ec30a5054b0d26f09024773841186470c0664c18523f087150778c1842d7bbd7428ca382505022428eb04fd86304f6b9aeab8708fb2c89ef7fc5785dcff41485fc5ffcfdd7efcec5493471918475c19e8db8204209f14d08990055fe1cfb843c76e8c8c981734357aa8edbb46c6297f466f76b8d6d79cb418202606bcc8b01fb795dd86fc5b00ffbcbf3efeac7baa30e3751dbf2a042c1bac3830a75063122b64dfee5c5703d763df3755d315e7f3190babbdb40bae705dee90093d2098278aad96331ab3afd5e25f691c6676a256e25f960c59e4717da5cbe2f745233126a480b510a2b217bc77c45c830f73c10ebe4bcb96c3c8668b6496d4bf9e45c403d769132c81ed2cf79052bf7e8f15b82f27f7b7754b32c298504abc7bfecd0c5b0d8879d89c1e84c5f129447120d7b2a10ee6b82f2b373387b42212dc4da1f108e46e2b63a215cd5df6bfc2a7ab2cfe476db9dda5381c8a0cb20eb89fbed09f6cc795d72fde3b6ef0b0213a4faeb0b5a3dfdf6cbe98f3c4c4027b048760888c20e99b57fb7bb1fb06304f44811064134683855e89f6d1490f4cfeafb7bc0f7014567035653b5b3ab49f7af907942bc06ec90f9eddf07dca42b0bd857ae2ce409f94fff807a8468b84f2800a98d847db06f81f043add0c69998a8856e531469aaf65fb595aad9f69a767546b4ec4300d4f89b7d78536316b308d4ddc69c167fdbbee1189c1f0201ed10ae59967d02f667364ff6d9efae14599665590684c12cf31b0994fd663f3ffbeddeba03e1aba6fdf631464d8b3b99c482a9f2bc54bfadcceb9efb13b6577d4f54bf3df73d0193e449f6db9f309ffb9e743f9f6c9f4169655da7faedd309a2df759f24fbeee377f3b72fa8fbf941db675d8e17042649d8a5fb13621a4a5821d47af282d077df0b4f8aa868f774b222b02dd5d32f2868bfef541f5d7d943df0ef5ef50868d37daa0f49f330f7db7b505adbc6dce645a120169a875f85cf85086c4b49f3f0b710816d751f816d715bc75c0b5c65448a46484748461b739cd7fde6a936e9619f07620b5ce5abbcc8e44212d5775f5050f7dd1795be4ef55d9196da77deca4fc706d158992c13cd54aefdf11290221ac627cea05c3cd3d8e4141a9fdbe27f1155f981d09d08c6172f03744c184444b89d0d7b54fe9ddd2a2bc6c84db0c5d752b9c5ecc31c83510a27d090004d5d6f3742ed141928744df0845443aef2cbe7973b64bf58c5b63b1d5fa044b9598885368812346ca9966a35fc5235361c2c2a1da8f2e5491aaa6c428a2aad6882a2c25a77c2892730865833b5c6d41a437cea0f9d1bd88e1dab50d31365d836ecaa578d45502d4a8e798a700e30747e4483615d630701ff467808f8c72d91bf46b02f6cd27d3b12265cc52e0cf374bef374fab7ed396f87c16dfb0c0ba50c6e2fbff9757b9e1968d8a36eef5f921eaadfaaf286c0487fee4a909fce067aa1db4f0814e186a0fc5184ed5bd273a4542faca3117b707d372588284b4c3e5c696de52ef422c153f5a8c4252e1929611f2eb15e4d40d5eb53e09f6e5d614e987a0151c39cf6b41d75bb9c7c8055270c5ebf438a2e2999f9c2a5ca2ff344959f6149114d8f9a7d213b55f93ca4537f874422bcfd895e22cff597144024a8d78706a857e4092312f5fa90a75e491be4fa1f4a507f23712872d151b9887f786879e417a5c1a286b5b4596179e45f1fc9f0f531e9f26fc3436adad46ba31a161a7a2696c1fce6bab22f5c315516e11f51d0a48bc5faff7a615f4c924275b087524328284c33de75cd2f26adb39236b5ed4e8821556eecfa0f62ed5a30927152127f611fa5a527c438b14f0cf9a932e7c47446a94ce5b4fd612590fbed392755db05b9df9c933889db38ede35f6da4501b29e4535c988b4f3d4d110089a9cacf4aacb4930292fca227032b5cb481460ca010634c5c2229aa4b5a5385082168142a55e4889214077644c40d38471c884a33552443152a60e4962723d8684f4a316479f077fe93b0a24d511742e060050161849a6cc081055169442d8898d205115564f89edf594a230d8b898be251c8cc2e92ca6009739a969c6a06759b9646201b4b6d3175630752ca2b5eee2e658472456fc3d83773dbd3c106a95de401979702833e48f68c0a2b2861e2bc35094be93dc0ca111f68d070a1983aa8fcdcc10e3972e6aeebbaae25a2df6dd45876087f8c31121531e843cc4595060d7ba8fa634becc3d5bf872ecc0b80151af6517f6dc4a00b21979e60629f3026557fefee8e1bdb99c4845972779c209a88d1b08f0e2f60286a872cf11365f574ff27aa1b31e8440cfa53a1212b1979187e82c5d8215cfdb72632da322ccb26cb68492af2c4d25043c43ed83b73611eff22fc230cdd37fa605fe75d4d75c1ab0bee1f8fb618fd75626425f689d59fc3f8f3d23314fba4e19f0c94f88925ca341193e1a790cd848c8699aa7fdc36629f15c3c499eadf45ecd34354c7d2b43454fd990bfbfc7806fd6723dd84d922b7cb4bc80e616c721b8b2e8f46460c114d88a6655f84b5ec0241667083f0d32e7441299ba32cd49ecdb107b9d11bd1b0a7f68f1ca80b5e3b04126317c28c527bb09494ec5313404ca879da11c010204294503281126c96e8c18925d654ff1e26a0a83fc608d346c8c442f43b29cd61f590408cf0168075c788310493531a6272509ad281aab484596250d3b44cd334ede330514dd2171e334a5253ab86c3b00f931393611fec9fb5f04f9432ea1f14ccf48f9366219ce752a3104b2af2b625c52f39229a18263ac5a778262ec5df328e4ada2803e2d329940506e32b61308c523adc7be53e87a7c3fdb67264396d28137d2c148f568d4ef6b1667fe3e964bfad9bdf346fa5b35ad16721f6e198a3c6b82971518c61d2c4b8a21afded3ee0c8efa30c1ab250ddbe4f67fb8f9fcef65e37f6517d3afb918b98013afbc5a456fcc299146c347fa09c83515a93b467a31e198ba5a980bda001a45fa854aed7343574342301001d2315000020100a0704c260402c1c15a55dfb14000c76883c7c5c361a089330466110640c32c61043080108180360a6c8b601f817803f02e34b40fc14804f01f22140fc04885f81f129201facc0b5cba4dccbedb32290ea6c178a0bc3475682ae980f351656936a8096686d4ad05c2f0616a566105439e5600a56e7949507f66151e5dc01daf0cb5bb21c9818964bf964d622eb1151519a8adcde0c280e75e80bc991f58ef2248bf2c283b2b72df56b854c2a48b94ddc8f03eeef00fb73c8be39e47e0eb9bf03eccb01f6e790fb38e4fe0e615f0ed99f03eee720697f90c3b02f12d6ece985a91522d21e52ad13fdcb3429f432bd494d86aefa5d2d125030a32be62f5d53fcbda8b08ad2fba296150adf8d0aeb28bc5f1459a3f4fd2858d67c0adf1b95f1bff3a87d55666514cd8f6b20d575b1b1efa1a85f4c48c3f1643e7d71d6a8ea9db54a0976aada3b2f98452901a7358e9201cd84b5b9a42305e2d4d243f1d6ff285e415c0c7508945d83df016e977cb3da2c83097a6e9e73eeea41ccc8c08baf2518323450a082f4cba4565ef86bc2b30d46bc83ae653ccd3aa62801b687ba3e256d8166e6ec37b0102cdbc6541d3218ad0e7c489ff7f8ef85898e61c20fe909760f8904f8290ef5b56cfe9f8a1bc9d5a0dd9372663e717b5a867b05906f8f7e9557e7f9c520b2c23d0852e87f01990cc637b7c5e1c5596a1d433a5c79d7157b508d9dae25ad32ad88949adbeb6982dd2282f69611512028bfb63865eebcf28563eb82091245ec3966d017b31c140a5cb9286f24a74265c22571b32271f2ecac99b54668979a13ee2180ec755cefb314e024964556dd6e52b9c4c7b52fcc07afe1d8ab88f40523fa44071dedc22055a95c382cf695a7dfdfe64a119c9613623580c0abb240caeeb59e466325b106b6410ff09e2cd60bce89259926e5d512e50f2bf8427994d2c664d0979409d4410cae45454974810f42a0a8c870ad024816920969da8505e85dfe1e198643692886d0e766e5443763acadceeff0efcbcfc077426055059b03eb430b71b271efc8c0fcaa0a41d53fc0b44a3bdc6542f08dce343a53ead11be4c0433dd70b9620a8eec4ea810c1482174a9f9e013a65557bf9ca10caba15f447bb0f5b44c1e1cb46f5b967bd0069734b07e39490d2f75c1ffa5f7818dc69ea76ca78bd3859d7db4873800afdc7421e5d53ee8123251edabf3e5807481d9880fea73f02ebd805eea65a138695cbc5649901edd9fc8f1f14c3ce0b8bb8dd61d439aa309defc39d50b1966e1a50ba28b98b37fa5b00e6f0e50f9e9038cdc86ac6a72361946f31522e58c90f70387c004e821c43b173494e1a4f1395ca7181885f70cb0c5e1fc8b0cdeb9bf1688c17111c16526fcaba2e25e2beac9bdb4eff9946a3bd9ced9085023918287bc2be00227367e82b0afe60673ae1844848b675522bd09a12bdb4cc7e9bd0fefcf5a0e8dfd8f797cb0d77ddb49fe4949aad8a7ae9fde6d5ff96f1c0e743dee590a81f90f9a049a9d0cee396f0786112b0c0a300269d6018f7e59c4e8931231a53a024484247ebfacf02307c344ce7115a55487c0fa510d690bb1c10ba3d5675d9464c3d81ce2906d98d8d8913a395262f88189886c735fb597d4897b9ffdb25f5cdecfb994a4b2c7aa60dfef1021c8e3971500083cd19a6686f44b6d59dfab6c9c46db7edc1534d2f1967b424a09cc3b9028bb8ee3ad8c2316500ec98296e2bbf981208a14d166cfb3037cb808ac15501f0642459b67c82b8cfa6593f285266cd28904419e4b46352e73f8b64cc96b3d0556e9c8967477c1656c8cb2f7bf43cbd81324fa02479167c7aaca412113eddd5d5f2721065598454b38c91d6eabab0090842ad5917020b9bdce0cc585832b2378d2b9171b2323c96e4355b19584eaa7067b479e8285a19d401fc62fbba5a81a54e0b3da72898aa721a2ce648d9ef0838e3cf9a8abd814321065905cca3a7750061529deb5630dc5c00df6e9ec8954566b759985870d7dbb605c4216851bfc3c8fc0830b172e6661714e180b92585a2ff449205315066f3e00810a09b825fe7b265e9de139e1993e0a675a7122a8394dfdeaa791d8ecfc4cd6df5dc1e27d893b09036cafd10f76393e88999109ec0dfbf1d3a2d3d732038de863b4b2cfe26e6d96475d94485e7a7c650694c5906d461cc9907d08948107f9c1f0ca1017f2966f677fd3eb485062e8561da12a7ddc77fb56e9c768909319914773d3d2fd0e28908b626e577bb5555c8c88dbe6648507763e966159cd7223981bb6ded95d323e594f32e78515246ac6b23b23cb90c686724022dac0297cb40aa6f461f4149d0d0f2dc149725b0bfa73a25aea53d6f71e31ebd3809f82e558ce1e62c02469527d3612e06fe0b08440e2591447b875cd06d019e286c510cb1892e1150cd5837e5a748c7f5348d9756882b531409e4a35378fd4830fc3b57f10a576d285207b450babc283d40bf52832b3e5b00b72bf8ef681962bc2267253882945ea12bb967318ffb9d8342a00ba01730b15adfcf3b380ef12f9d1f19a24f3296a95fcd9029c18c577c8f82cc6e5b03ad32639233734e0d2669924819f28401667dfe0cedd13c1e66f8fe1dfb9cc482e8d398285699e2abe4f5f830d6f35df01c790500a00cccbe4894fecec86323d1dc31ea71bade42dba4e1b0201814414f8f561acd58fe8260614756c6431a9c2883640fe6a1f97c409ffff07926091bca8d67d89b2b007b387e4ecdecebedc2339f7964d3b307996d5275a398748da59bed92a5bf59b28ba4455dad6cce029aa947631ffb2442c5400b439ce80661d123023eed42e66f9faa2b6275ddb1c1a7f1573c52cd05fb4fe5792f92411cbda2c937043d81e373d184f7f24620fb8f999a08cc768b0abece02771ff1833402c7eab7503c83742056462a0825850ce2cd6dae300030c07f6b3dd37c7c69c5f4487798e2905139904294f19325dbe8746a2036a89b1f7e6f1d3bed2c597ab8a8c778fad9fc5a3f276d56d99f7ea24c6d44299a799f4d44d9c6ced9c068092aab32b2f8e21b8c47d7214df64f69a9ac24cceaa9c588ef9682123c4e9d89108cbd0751fff18f0dc4b93cd4044a4ba9096b461c87fc25da65d0f949c846d12ec1cc6de55e98178eafa8a496c043d750240af8374c33133b28fcbde8764ed4786903086a5cd52bcf3903878f7c00ac166634164748d6e7ddca3f5aab477ead18eb3bd38b2ed19ab2e63aaf5bb57062bed47f986b27e81866fd5ad096c0f1e6d5ae654da5f06054533c0bee5a2ddb7d275143da68f606da6ba868f3314bc8cceea9b7430a1e55332615da7abc983d438adfed27aa8e5551513d48d4e7cd2e79de38490e381266f623d6b17c071fb1f038735213eef3c49052e7902b24109c8279c4e999ed1b88c0dea4335ab0d474b19de3b1addbb3b7b27de34d851b0e116e3ba4b8591df4a37edcc678661bc97029f48f63104d49136c90a22d516f714627c7d4264aeabf2e1a2af5a49ebefb0d16d585ace5b4dd7d60a8e1e126d1a47d10afaffce1242a7003e44c127e6099d014a7d9da97cebae69373588cc582b0f31fe4c5fac754d067342a6b51aa1dd21e13d3c95ad12f49393606c4108d30d444f1fa9a400af6e407a990e9c2f78560cf3042b3c7251cc46b3ff28950fcc8a1c4dab40fe15db48f0a05cf6d6fd99d5cf98e7a213c08a33f2ec0e06906703ba4daacfb1187cccb1b0ad10ac6feacb2fcf362bebc331e8f5a28516f1a640f3bc6b8e0be9bcabbe06e114894a613f1407141d49649f365c73ce5d873c8fa8130864bf401898f157ee17853db606116cd1a28773f721f030eadae72f571b2c33b32c069010bcaaf98964e38b6fe2d033a736fa0a6c0b241ae0cbd7f3ad8303a017fe44d35b791a9f1f5413b1b6c17b663bcbfe3c8be9c93095a0e1b0d8d2d505bf9b6cead1f41fef5dfd4be944d5eb81d4b27a7ea3fe3bb36d25eb6988ecf434e25d15e2d567f25f89e877a1a6ff13692f4533c8c3a39f625e46161dbf650135579ccc19193c4a55fff77b7f622af52b639603cc10704c6d9e5fbaeb7993fc452ba5502e95696d670c7e5a6a0409f22e3d28fac9fd46fc88a4d4d2bffbf26708986321e381a9bbf97ef89f233df12fa8c9c70067905441cb862a9730fa706d03ab96f2ca4a237c82ae9c114015753f7ead5dc073371a71f22cfa0e68977a390cac8a756ca001c9d3f144c6579b84fd0bcd11c5a95492f1bdbc5fa9d8792b2e65c24612d4df26bba45b194819ec9d727199beed5db9c51f98397070a084efe4b16f13d145c72fc335f0758e8aee410e80ed808dc5d9d5fbfc5cbdccb8f79050fbff93f4f87b7e8d20576e8782fcf2ae591bac1e1ca1963d43bae59ee1fab7bebfa70781115bd74c4f3e709ba370035f2e39a47691c6b3355f39c59e31fb53414bb00362d62aa1deb37b8e0a81f39d568d223e457388eb5ab3326f9dca9a9bf3be0b626c974286e86bfb2018a3b0ecbf4fab2c15aae9225025dfd6bcb66c84d8420b8234e2feebe08c0a7a2a391020765afc17a94b8d65c8a0bb44fc17a20fff314b02e037a57ea94e0e5ffa8d301bfb0ec1cbbf1419203edc5d2247536b3d666c57887820808e62e1ca6e3757b8826541cbf233353dceca07c66fcef01be09a4f4ee4189fc36234c6efc71a83e80a3f4e3292c91f7394c598aabb2359552649ef7252328209d757e3f73d30188453c5a863109ef35beddb8313b3158fb9a485a169dca10d12a0f627bd2818733b47fe3834e9e7a9c37afff1824f0269f584726cbe4bc039a8eef8177c6f6c1cbea32afb783cf1bf31de94698c15bdc09363db79d241a210a473608d430fa8466b5ca4bee1c5a62e36acd0add70deeb29f5a655e8349f32b3c3fb4dc82268f17c5d1feddfe0e6bad19f840154cea5d750a0608b26b9a36120b8b5af3013d2e9f8ac8624a3c786b19ff1b8dda2a2a64c8ed279839a8e58252e705bd54dc888ec968c8d4c4befc1564457b04ae65492da4a7593df8597df255945c27c606248d95852eb65980fbf91fcd09f2cae2bfa6d4bb4b392e035255a1e6a9d0f6ae9bcc7b4288a9b50e0ae658ae770a74a3e987364e7230486e7631e21ff5f677af08303b328c04dae3ecb01ba4ef7248a0081ae925ac5fb9c7b21992579157b9be0f62ccc7dff6ba6fceef1be496ab27e04aa92ddf348d8497b2170263aea976c725831f5c12ff4451569488f284efbf6aaaf286e71919a807300e196ba3ff6fc0d3459312694137b696ec7c401bc6d049f2c46093de76544d3a879502fcd2dbdacb9264dc5e1d53e54af934dbe7d35bb6980602c9b695ba7fddf660cebdc6c31991597efb49124c802c28aec858ae7975c7e70a654127da26b87c26d475efea30efd55a69e3fa75d75c8596a0789a4c22993b8e9c23b39e8af926c6ba14a0a31569aae88792b09c71f1c8a6fc8d2068f82a3717fe3c54349f7a6c0d23ffe1dc841e063dd1ca442c56252bf3e71851eb4e0ed01d1f9a8cf52fc20ba9dad5b9b7dce142e1c46ebbed0277748c6abb8e84a4713da8861a95b135534467ac4403e49a8d9d2a47a1307da049c01ea83e0de9592b632f6e254ead7c9c9a490140899c17b7569b32a900a563f8f2f65ae0987e22452010c5130bc4108de8ad292194fbadb4dfb070cc89c5f220870cda27a8b92898afe137a7805017aa649c12aaf1bf25fb5614bf22c291e6234c80ebf67764d6aefcf398814a4b2ed6e7dbfdb827392e44bd1d3f8d055451a1a65f85c2644b0895a74425c2075ce3c79fb04499bef6628a436614e1bceed7122ed35386c26d719e940515d2818e6e9076b6b62dc785c6f9d163f4ea337a00ccee81beff51dcd46d01128814d5ace71ca2fe787af8587935054ecaedc8684a2743d2cc182fd8442c3d7f35129852a2da4e7af51866efc6941acecc017241e4fc6a7818b8c86d7567126f91bf3946a368fef6ae96ef362c7c0baa9bc44ba1862efa6912346f4fd2d5e4955aa929cbc183540d4c90b05ea39316b4cbbda53823e3f1a30f953ecd9e76059870ef22eeea9f6400b7e4f8aa49be7319910a18a5d4acfd83a57627659c8e3cbcc53faffd25c447f089c6516d76092ae67d816e16680ff665f00ae950d749337193d824db4f01ad14f89a2b853d8b611494dddc3304fe99902d1c689e2a47dde01a98e3d5a0c4b82e25a349b3083835eda6252b2ecc8902f41fae7747a1566c229d9421c97184ad26c0e9d856ea886ca75ab852c4699d81110df858b846580c476c1e14df1e1238abc45cb55a28c03e790b41a3846ccf4285776d64f4ff7c0f84c1c6c74cd9fef087285de535ca3f11f0080637981f960574b1eae4e1887a5d5e61d25fe9b08fcaeb4251e4a9aeda6f6c4a362a4f2b2f1a74eeda26239d148b9c23839cb2facbccbd8780eee1e9a19a8cc9a289f97598d263dfd35ac8a3977296846c32f8519a8c251ff68b48676b776e1af6e0a414bf015822532c02ccb9c6931be079a1cba786d1f24cf305762c8a7b2ba90ef7694e64077c3c2661dd8d985d8ea398800a1897f64c1d4abcbd30c6f16abaed1299717b4c8512b272ec8d54f129b7374ce7cf7dd24357763dc9e5df30da15ac7dc8789e2220ee01278da7a44261d17716430b26926564af8edba5458b6b4988eccbadcbe259d6b1e67ff956f59fb3b958d406ef555bab7efeacdeddf9130e479cc38371e7d847332de16dea7344b1f8f3b4395d520475bd79fd9c01a46baf3e5e2abdd9e4129bb2db26f7b1859fdacdcd65a6b70f85fb79ea2d6cb13656ed36b16a0071aa0e25b6fc5579a952e119116dfd27aedb19d350c3696e02fc63c73a56c2fb3c378b6a92398631a0a3098abd8a0f141067ff017a76bce3fdca55e44f678893111405e2e7e46431b47cf2ebae9e97de344faf342d42b523ab44ac055cac199e2c26662abf5c8edbb60065e20e1fd45f1c47fb5eb13100a89ca717a54d42fcd6fe39dcab3cb168e139f41222b2459949da9dc8439f8229054e874f6c7a99860a9ec63a9c7cb3cede3b321e488b561008bba399e137ab338d819aca6e6c62ce0c045376dbb1f9291aa1edcbdda768c0caf02dd506018f3afd189c2e474e09b2b3e2626212830e2864e423a51b8fae809607071a0c0f8db975398dbe108b0330b12493db9c8f75342dbc6eb5c54ceb5728426e2f60946f7a8ebe31b76a9f661b6bdd679e226b31a916603f87b92d8ba75a1dbfaadc5844e1a5f9550ab50a79b4ab554ca1006b29a69a39c918085682a9004e736a334eec34df09b42f28a285a6454e31221e032555bdf1346927cee0b2e93e1f9d2502eb6ecbc29154170b39640d9b4c4a2accef122ced2ef716a377c3eae533d01fa8aeed3d1f85b7918492e7e229f8e6e464d40ab82601b80d2a673593122a34802afe6eef6e0beac0fc8fcdd9d42ed7306dd1cb77c0ce5623768a9bd0e3751cdcef7881c1d298134e11662b3d7a8ee15254bd0afe51391e83cca8a70a163017da91a3bb7af2636d5ca6dbf012e0b44a77ccab84b73ea499d5b27c14ddd72c9cb62800a160ed112c99aa1a6cb12dbcf6ef8ff98b37fca3662b01a2276669811d891171fac7c3e3792af0fad82965529021891c0d57ae54d5b56c3a9bb3a6565d988b06ddf2423e740bf360e0d0593afb86277d85670b331469a9fc4b56e672e778943203385f4be6ed5ecb8796b5d40319d2073f953b8e6cab4c60653a3e86270600011d5528e8b3cef2cced43fbaf2ce612eea9d5908099087f4905df6cfbdc1e1692125f245d435f7d492cd19bffa902ef2146ae0bd408cc8d32d3516a805c0157ebf43b093ae8413619f9afa3ef663f6687d7f961658bfa55966a8f1c067f86239a38f860f003735dca9dbeb3519b7919f6b91c7ecefffa059b39cfff106c5c973da897ed6a15b95738e48ac2a2856abd9ada6399c9c90030b291e5ab23b0dfd4a6f300da5b89eb977886771429b0a712dd24d5500ff095616406dcadb42d98f57f49317c1e47289b67703b2695c7d5ebe28ac00667edb1585a5d3abac431ddb5533f47dae851252320670224b67a9678618a87d51213affc579bf2e3ae6930fa52d150401928443f604fd02388306d1500106817360415d0bcca4bef75699a490d7d1b15590a692cf096568e44ceb7ecbd03ed271dc02b44f454ab1ad1b47077cee021d1c875aad1cf4aa44b161109a2431c0d6d4c001f1682868a0a4e58ab30e794bf539a4325c248f58228f6f58019f9b6f7de63eebd3d709609e9b527674b2a4a255a00aff8f7882bb5b2d1c8a40c975c48974d0382b0ca1089e248047b01416d467f6ca02f33bac71ab4fe21a5aaa17274306d88608b11277ebda71f2c960c12601ca8398854af60a8275dbed11325e33ee783e48f1bf70a7c1af4bafcad5f7182c1240b624c17f32291bcc549c7487637d4cb025323dda0ed952a0a97b9b50210a20de44eed1d94c5119982f9b88339a674a07d8b976e68614591a20cbcf758b68498e144bf2ac88808836f1fd02f34a68eede182fc165aff42aaa28e3beb6775c6f266fa5385b691d5ff77cf9219afd3400f17739fba41bfa12681d4691824cd2a96c706c6150e5918998d023b84a5a02f24d9dc12bbda90925d3c705d6f43d8da1b1779ee5a51f5d85124669d4db7b481440b92ce86213aa4d88e371828d9bab60a2d2ef5f04f71b4fd77659c34d9b72b67a5b8b0793503449187006477720250935c46a72feab52701f871a8ff5c1c9b0350661b28371e60a94a21c1e39ebe506b0b01ca816a54827048f430b8de8a7c548f7a172cf28f24d372a6efa782eeba27fd30915d05f362f8a12fab2f7b431adff6aef01b25319d3afd8356c5c92eb29ac6449812bfbbb5a8409c3de36c58a5d0dfc5c8c4bfaccc588102a06d656e049101337289e4f0fc4f2f7253e0cc326edd75509c2dedc8ce7d8c34fb99b23705f17fc57d78c9b4d11ad4bbd95d0032fde5fb6639b1d861b9e27e262ab9ca32ead72a417ac8ca9752661586575e7d22668fbb77b68808b8b7a768233ffeae423ed4547b7842de154258d2e0f314f980dd62ab5d75fd87bfc271989b4ff1bd5f4beea44e9ff306566961e55d6c6422a2e3d32d0c1f5d0bd571205527b36e853c24456d0b3d7670b31278621c85e29a386d4852904af3a3fb051e019f759eb1223d59e15760d1f0167ea114e3f3002c01d781c4d3041d255b7339338bcc86685c0426b1be30126ccf9ae308b32453a5461a577a6bf8543a320fc7047d406d8ca91d979372e977e37c4e9f79af6561d28332a08166d7d33466044fbe85daa27d338db8e87bd55d45b01e7e336b3f628cc68ba9229a9403954e745b5201a66dfd1494d62d623fd8d9cee1298b663bcea4f96aed0c871f1505d4d153bf1b6c7f131ef0c63a726d1f7cc1619b6c7b3bc635dc00aeac45c7ca5d47c77c174b582b8d425a7072f4a7c953c079c6eb85170dd1e75a06812adf2fc5d8e4dee5de179583b3550a667ebf425bfe86094958557099a2541918fb62db0af6cd00f470b4b4d20ebeb971fcb8e090f70acbbd468b9d7c51ee37617ceb367c94c8709c25c65e13f2c9122ea78641f7d62e722dae9ea2ac18632b71efb1ee00bd9063ca51b3267ca39755c1fd91faf42b6e21100faded67bcb98c03feda918d371f535be4d85845efdd5e681d6b030c9c83dd8a96b1c931c1cab4f87a2e5d8ec50a89211912382a3c283624144ec484a2da0295f13ee46b34af7a5db5b52a89f60851f9bdf756cb298dfa2c019702be9ec2677069c2753bbade584e6aed07015e7b2d76d64e88937b759da7da5678d6a2fd817a25dadca282af8e3dfddfc7d1dfcf34155a7f9ecf7e7a2d937f8cd852ff819c6a1bac1bba180ba2e616fec5bdd9350db1b42f2fb2e771222ccb806c78b051d2503fe4c024aae43af4d3b76ae1dad4c955e97e06ee8563c4bbb8ecd5091f0ca444bb0a5bcfb31449cc60082e86e1432f64442c40920b6886fd1be51d3f5e3be1b9bfa8293871dc46ed2e8466c346fece910e83addab156dccaa6f834c1e624203115a467f9b75384e6efd87f0c841f8ab67168e2c73143d3e06634aa7a677a2281f6475a6bca6e3721827102c6c683e79f209494ed3b723558fa428e3c39f9525b6a40ee79f357c3a107b34aa4d69137e91fd0e80c7bd226a11443a1817f827f88e52317b611b6bd3b4c1be7bb8f450c4038b494f0cb0cc6e1a9536bf420ce7e4b8b5bb796ddc77c22085c37ce8f6cdabf146bdb9aaac9780e7068eeae7d43e93d0645b1389c40f061b64ee8ceea59154528dc4903592ebae9c85181763b587fbd4f989f7a9abe35da34f89e8e101a8823e4749d2e805ca1da1112193b13f5e21617ccfbd0b859575f255c0a73fece5f49343d1002abe128ddad66363c5142241601a290bccbc8ec184b90e4fa18564c673b0c83bccf4114768933b528b2183619920aebe5b653fd290082099cdf88d8f2a4d32ff0fb4b53df6ebb6bfa23b446b26ed92a802d6ab6aab49cbb4ccf3daf3f6b943c64ac4c803824d2376cc29966333fa7a5b9f1d32b00394ad28cb74ee67b0b4ef5c8b7d80addf0d2e62fe7834c4aeeb7009a80c0049bf884737e7063411af767da7dcc5ad7f4ec0ccb4cceda536373d53519af8fb11bfb2dab2c8d25754df675546a6b032867ad1f9f984d478eefb57abc0a9415976499c2ccc0120c46e9990e9b118894062df3f2d584db4541c64682fe0886c169804f3b3fd3a23ef357e56db5f2a05f694c7a938a8f2a6af52bc401c19d68874925816986fbe7614e1831aa9510a94fecd214492375f9698ece8c384b3fb045a293957f42507f3bd6ab137495e67a22572314b898856ea1c7bd4b8b8994d3435806d6a195a78843d524e443b1daf36469f7826e26d31278c10c8fc872e48589f7a46a708c821ab657a65d46dfeef32c3e11d339f1ad311b849475259280d5b0d54937810d96eaee9aa7c1bfffba194ebdd9d2e63d5f90922b060ba7e4660c8002dda49482173f5564e8688a125cda2a752d4b8b923fcd77c6a9a59628fabf5a815c6419be6ad95f139035944079801972f5967135ddd4edb727e8fefed6cd089f8838d6d4e7cf99e5d13b5b14200637c7108b3599275002b617a69e788a253757ca1b690a5036c413e2787c5e4b60325568a6cfe8d5d7458b06241c06e7b854e0dbd578d1449d526ccbd848c6d4bced06ea7fe1c0df7cd33bf704fa06115697dfa4105a60c33e776b4a092a36e8114d5f8890bd0a58790df71bd9d8adacef44163811b4f72ca31cf7757dc8f0fba9d4304e51cfab91fd58d7c762530d41819f2e06ec8698ddd1599ebba24994b53e1f9116238cd664827b2fa2ce6710847c545204ef0090ea445e0c2d746171edcb3045e1cce66b2d353db3a510c815388d558ec8ec78e5a37a63fda6df5e7f55068b17769d4fa6a8e7509b8decae119d8e928dc0363a3b8a2d630f1215a638491846addcccbf371345ac996694876bc358021bba4cdbb95e8f213753de529b4d546df6ae2f344a433b8365769d6f79858209d77787f574be51038fd54b9fed8690cf7ad0263302dbd98b790689969869068c91f979c25384616461fc8aef8fef8c871b7efa08ffa839528f9141dbcc85b43d22de0d71814b93a680be513a8fa9c7242e67324e4f4e1a441ed07a2faba46b4737f342884c834d1d65df1041a683a2b0d0e396755bf9d1f71fa485f3491c6b8227bc48bfdbbfd132d34a42c732d0be73ba051c6540a66022acba99d9794cbaca9dcb91588b1a6f66a38f8debbca3bcd048bc2191d0c6e875143460d992dd361228e96ce18980aa3e32eaaa57966c40335aeb897c63267e04e6f477bb86dd8ed1359f8084991aca65fca1b48ebfafc17d00414a0839e76cd37c404565b6e3c1b805e406e43c936c7fa026e7441a6867259797493463ad32cfb9afc27340f8bb752d19d0624b256f74564022d9e8e6ae78e1a70660b4452647fb1cc48f576e66ddef04865e95f0d3e11f3cb7c4a5ff2933a0c99d7330e7431846106201c6716c0d388b39c684198362755f33d0c409a42e88b77082e12bdcf14462cebe7f7470445763ff37fb62052a2c2f5633cdcb838b2d8afa37cb55c9f6dbe8e2b6218f9bea6a18495fa61d4540129db92dc052f3ba1fa5e60b342a9d356a52ea1acba1471c853b5300b15b776c33b597fb7ec064dd92be42e6aac93f5b9c94e45526f2ba90b5de2647ddfb059a1146a8b1217bcfc74caef8a5d0a4d5d0ba51739ac93f5bac93e48a6d669087ccac995cc4abd41d513c66fe678e827595c90acd2375279c6909b1903fd29864b512b017a9e2c292731f91b42de5e78ca75f57bebd9c445bca16490b129e14059a254fdc19df894d72e11fdae4c10b9e2e5cdee351a9f22b9540915da6008726b095272d6cd5925f2ff7bc7ac1249f0ed6e6218852de7b5a71456c625771795a5c1e23eebec875d346e5e952c1a02063e88d33a460fc6efd5b175a6ee95eb320510ebada23d36ec7a25a2759fe9a222c2ffeaf609f5447bd6f0ea487a6e48c5454bc8dd0280f28fe07e00a1dd9c7a8ebbe10b44a64fb90a8d0959ac9e133d881a186816ab79c40e3738de65db857f4ead8534c01484142d2e8465d13daa580ad3147286e0d365564c581630e2a61fecf6f4bedc1ece9fa0be0036c1e8034a5a796c4e552551ad9882d0710a211f64ac358425f12cfc8b6cfbabfb480ef6f4d37a29370a00ac24a68a8cddd2dd4a44a96f932e8e1edc828b1d5d0d4c920c7422f297649cc694e3fd522a00a2d28a54f3162c54bd827da9ecbc3ab7d95de5dcb3659ff65c4bc67cffc2b318be9770554f3558eb35d0a1bc34112923ea8a21d789840c74ebc2314f16720f3a1da9c8e18d54da80d13d119a31865d546485bcc06e359e473cb0625ad06135569065340d217f4aedb3fd8f632bb892a5c6470ebc3ea519da5c5016079395d5342506cbf6b6ad16041ba00c9f8d4934306cd7b009b8960e774f2870cbbddfc37a0c67d17199014ef4847838d7678a39bbd3c9c528c231e696125d03439429bdf369078f03fe98735611b68a15cf952fb32fb0d60f9544193ceb46039cbee4391c80362c9e4b276ecf24e3cf1db33715072badf762de6d04d8384b46620b9f18bc8e816cea30d7b040fd6295f6725c90176c10b564d0c2d43d9f0b70101389af981c7784f03efd368b4ddea6e41a85fce8c32796b6269ff642c50d908e06d3439cf27f628dcdb93f8b47f021542c156892f25778a5fd60cc8402575a2f3c535c1ab0523611c5640ecb8cdccd3317126100bad0a0e94bf2a36cb036ed1aa861699aa12d22d4ac17c9cdfab15324fc4f562f1223d632b06a5911d6b51c4a0dc5bdaf14f0359394ae70b2a1f452944d560b2bf503e8b6a95477a1b2d6a641e572e7fb69aa27a36474c83515fc11c134dccf32859140696c820230b1ec330978827565b815af46c03f9b14e0a11d9177e13ca2d1f02b39716dcdf6f147c8488cf482bc1ec196339e6c68ec29a8bd44c8fede80abcb6d8a3665a5be58d0d41787e0b7568ea87dab4dd8b21baca415cd0d668b8b9f8748c492cbb6d2bb2893a8b648f32aed48cca769693291e44cad31641a583e01e7f96be661cd0faa0128ae64c5215ccde1c1d49dc83f1276db512e5614be74d60dec1748bd78bf6aae2f86caec795df8e738d0511ae19a2b179de91697ed52eb047a0d426375ca794304903ea763d4ad0c2400d485ec5b9826e4baabdfaf649f91625c88dea6b99387296704cc9b51c903cb60f25820cd37b891ab05d77f41c92a1264c438970e97a7dc7be9f1b545d3ae6b3276152c298eeba4a5d2b946c68eb2fd6ba5bd65a35bf31a47a6ee7bae6ab727a1fbe7f1b19baf79e6398f53918ae8656b2c41d1bf6f9427068a8e026b023305b9c30961688794778e156f5866edc159e1c4505a36776281cc8b05986f178e75b908448804b60d9e0d4a60922581dad236ac68dba16006a815bd486463c2cc462f5cc716f1d26bfd2edf426760bf49d3d7d7dde7fd51f56089d4c68a2161b1b9185f74b27a1d731835bf9b651e0e7396403cb395dc7747c326c7b6e5a4f48d0c4a80c2280486934303a8f965320afc77a6a2d01601c8ad6f80853e3fa874d57cd76681fcceb52dd007a3bc022017da75c02a8512fbb1a5facdfebbdfd2ce6ca82762b2cd0e0116c8ef2b1bbb1eb4befddbd2b11546b62d2f61d947403f3a5002ed9a7909a231843d82a5ec3bb1ca2a80018e4a0c04c10173568b1a403ae3c6a74414a1a6b1421d466a9c2219a372b8d3e600771abcc5c53b1218653d496a5705123c301367f5e5194da3be20fdf52310dc504770af39e76810152232d71f107cda6c6f322c847a172ee526efc28ccce99406684963385565d93598092e9613339ad5660a22d665e5329dc12f226b46f06f6c194401fb43a9d99f094d40214970902b8f0b1994e5c10871889eca4922e10ea74c3dcede700f745c5440bc90062dd07e3ee3c2ad81b5737b5c300a4aab3717b83d0e90d0bbcae39ea2afe19721444742129ccb17ac3ebd5927ba7114a06cb83209b9c4145bd97524e22fea23ba08c58ae51b7d9f381d443d3a90430337f6c5ffab7582e66e9adec0b85b42238091bdd9b5df1e62260393368d9eb108249d12db23592d91843481257e2d077b5202ab8e9462553375cba604ccf0a79ddd289bcbc183d5bb5c777543ccc0d0ce15bcc043eb7af82925d70699ecbbc7c9062af5d0ac5778914201d5d84fd44b2be364f4cf2336e8b248996f3081dde19d5568684fb1e53fdd2347b1628db45035354833d44e7ce1874c4354110e771004e369d74906d2adbcbcbcec2da0893bed60114be201a549fcded8bfbc017e8a35c566e0d5646a39473528fb314a31e6f5ab098282c19e53c7b3ad7f384d34d26a504f696ff7adaa8bcf4118645427b193cf31f26fe1547db737b2ef23c307f6a03c42c29712481f36a0e26e29f860a5a356e1cf1595e860064bde626e1693ab5f10d64e9dd0d66b76eb92f272840605704a7c5e045b2089a9d744e3fd135c14abe743e19f30fcaa08f9f80238d8744fa33a3357d6a7e14c6eab121e375ee79f6f5775ab238eebbcef1f3429402bd7acdcca59b06286f7b3e6ca00a889902b0a3c0ffede7781e7c24922cb3bbfdd78c9666e9444348e53d2be90889ede61db5330fcf8e91165d0a641156fa63ff238a47ec042e8768c1f197bf948c26bf03f7e61d6688f8867af93dcbdaf38bfb06510cfea764ca38d33c1ded055cb89a1a48c1ab9a2286e8ac67dae70ada0df37c9b2ccefb04a6a0d66c81f301cf3950c1bbf2eeeee303b658ccad31240873b0de441b3595d968ed081ed59183422403e7f98adc23860c30c35cbcecadb1832c96b61dedf55e4af242814180d998eb8af605c60c44360fec3aaa35a4b7dfae3345b732fca4efbaa19e462606d96d740137709a900c6ee4931910bedcc672b8b04cb32e44233f56dc94a41d98c3c104dbe5bb422589e011f84a96f17561281c63522aa717e8fed5b723e277a8ba5bc89e0eaf5d003b4d78d10f0cbdc1ed6dfd78085147e79cfee418a9836f0543bc1b2afa18216bffd754427d52b8ce92578716515333358e685ea9c5641248bef77c905202702a26a4eb55e20e2639267343f1bb9d4451a3c36770629c9836025c17a9cfe2db12e768e07c092a418b5cb5442f4b2470d73e6ccbf7b47dc80a4c86ded5cfbb0cca6763a7db82e06e9be2ea3cba2be3a7be5fab7e841b5884c0c851fe46fae6430a888f937652df689582ed27e0782d8d96783f2416b1d9b656c64770f59a9da5d265f7b35d3228f80e9ca7c031fa28b04d346b94a71d2cbd9b8beb5cd12e351bada8db149ca8d7543e3cb231c179c4a60be6a42605572ef8c7ea2e9079fc3ba04e91df00e85f60a30ebc282d5360a8882301ee000648ccb937709db5f121587e7eeea557d939e8be782d248308e8ae907b9218c9dbd4a6371e2d05e752fe094cfcd1bd8dd14e753c2213215b24dd3bc44b5b318521a830091d9be2f0751f62a8ba45309626269cccf8b87a7f4d8df48ae0b6f6bdb0e0d227abca583c211f37cf87f8c4827b73db5212e02f8d89e4113018411e53a6d0c7f1a85338ea179f68a263752bc6b78f5878009301624112dca8c5df5aa0e8b8502ec0eba4cd04fff069c60818016fde009b42af93100ac60e1470fdbaed6b105924f27dde6495e1474e3614f276db9cfc4bd9faa32d8892975c6bec83e516bfa7305cca5d6639ca99d1b1223e488b7fac63c7b1541e8801e0d0d032e1e14fa5afebb4c6cf1bf7b8d76d92f53153f5a21c84de1fecffb127f9f9548b046e715e6c34efe93b934e3c5ba4bfc3791614ddf95cd828f788a2167a891062bc0a84518c4e5ed3cec61b25299558cdb03b9ad65a97d653e0a07f0d868dacf114aa312badfc5c967842695cd54d66e2a0378200762d521432c1a8670187e382fbe1c306717852a1bb0a3b7a2a13c891b05d942550983fe64e39da967c02289ca1b1bf3c71d665f681ca36c8270a97d432d3d3e84aaaf85ccbae7a52d106c4ebf780f4ff001eb16d756efd43f543b899d840e4fdc4746bab0d501ddb97b4b953de69ddbe078f3263a97d877b2b141edcf99b2130a937e7a1a80f627ccbad3cee9a7f1df52db49c9761d66e415310dca3dacc7f4403412ccca09cf56ae13215135e8159871d2190f6cf6341bcff1294093f8a93bebc0ce6ea2be3e5694bede5ef8cd829ba9be91597c1c055946d389b877438b336c32d525e9487620754fc913e3a437940c6f54fe42b4cf8b274f45f24d6b60475b4b421303e4eeab5797fe7400b36ff5eacaaed628d476f619a54c2bcc002676850d726afb29f183ed20833ac2776a2e285eeaeccb31f8c4065131933696ab8f1316f2db985c5539a300ff22759a89b0b5359c5f1ed700ac72874f0d80a7df8a482bde43ba0cf99f6eb51c749e9c9d533fa05c558cece71897271063d453062a16634df97d706be76aca848327d6014ba8280aa9d19b56aa8fbd33660e6a1a41116d8d58da13b2e0a38e1d7fc51ba0e6a0c817c54f195d4e2e9180e5bd6dfe5e012033bf4031524e84247a18247a973af5a9d53e14ec0a21b77eb6b846b367efa23d5c940480e4ab4474030873124438f204d30401db2191031b1eca43f19eab54cbfd9689c3f848a28d1553c8dc0cf24a9010135984bfb085b12cca5614f473cef4d176701cee89c924746473b494ca894166fa18cf7072072677bc4dc9cec5de1f2b0f1cb38f258763d4d018b3eb222511252551c76403e7d301f1a602b71b57c48490dfa91aba51d913119e2ecbf68ecf58ae88bdcbad6e5b933876fa5aeaf0141da7c1672222af86264e9cf698931ae8d5f9f486f06b50488653b1ed2e8812e804dbff33e8b9c2020567a3f94b0c15ce61c09b8f7a7298cf2c067c541162bc36e67c00edda81e1aefb884e2e20e421422d9fdcbef1abeac3dba4140367aa27b95ded05651519312a564d689e6f53826a76ffbc05892c4b7138381223d5218d69796a76807d2094ce1b02b8893c7d740538a33d4a14fd94e82bbbfe508ee52e272f639419f34fb2d348bf8e01a3b115ff5d071e5a3969453522d6a8b49592a57ba804f974a0e975624b5b99ba88fc147d2922d6a47c3f0914a086697a69048c6748dffea85e042f11c2c25686af4663ceac2b395bba457112f91881ea36d09358569c902630b619bd1368e93877b1963d25e02a637d2124963f7c3746489b310a1c7b92353e1cc492d5d370c56b0cc73d02cfbf5ae15b79e908c4f4898d31ac0000a192c57052e1f2ea63dfdd34558e1a654100c8a48662ce2044d29742ecaf2c28a96ce331cb0b2929d41b095c1d8d5769df370a8cf6a171248280606cbaf7e216c4995752325996a4fa00d3c599e3aeb072d7b2222abdb0a52bf3ccfe8b65a7fcb40a4dd4289fe6e119aa869ad62fa5404e855f37a278550837d0465db49a70ea9c88749154f405b7150125240b1d5cda6e23b413878c8ba4436978ffe81ee3e552a9266b3654a2e662e545d31898d89bf986fd3b359fa9db5330e5f1eb9cdfaf06a713ef4a6890bc5a50356bab45c486f95aefe9ec106dc1918b15eddc8a87fed534eb9e2f90913b325c6119c4c8fda61d97b0458b35e11c923eff73485b01147a89a1b8c6592ee3bd600d3793d0db8ff5ffcf7bc96177e4f25602ae9bbb21dcfb6f79abccbe3849281be3837a481081f247562467cb0f9137bf0fcd652ca88ac104227c52d731cc032cab5c2c2b2be4a6f6eb748cb93ce3a229436aa1cd9da593ab3fb85bfeb37c8a3b99565a531ab92c1b1a26cce2df78bb0991904b3806610df902a59210e8165652431b13caeaa530353a5bb496bc7d3ca69bd68059d0704d678acc8cf6a0407ba2e25fc609033850011abc17caf4955a8ae2d2b4316690d4957674c0ca6c51d5748419f038006aad6b52971c63592fd7df165001648b021f9a77e0910c04e1b6dd93ebc77a163b6cd73324d7067d578be5d6a5c9e87a5dadec4c561d133b06d4c0a1aec143a14308db513f084e07081971667d388afa9df22dbf256f9c6acc142281e485fd987900b1a1a0455fbc902f5989f2e2c243e97859b0fad2fe8d11f489c09d0e1c8db046403914d8905de5331cd6254da585d8cae1a9e7e1e4777dd42e5122fbc6b481cd541dab0869e6790d43e900d2b439049f970df8358292696f75a8ea8ec3df9ba96e386bc52e56bf9d89116b7cf3f387a988414610064ba6e3f637998103efbd1eee9cfe3c8340c6d9b9785d063daaba99109c02e2a4e4fb83fc0bdabcd703eb71faa02081d495bfd5e915b2693a234a6b2ee8f65b832ab7ad4134ec9382af2a2218b101287a1c57f71f38d9a2565da934c352587859a85ada22d1e556fd96a415d58027f408082431c086329eba775a0abc58f0cb2c448e5726ba1954db757a1f5090b6b4cef11c5e52b1ef8f4dbbfc57e1edbf8655f74882425130ef0fcfcd372244e0411771e1c308eb4b6177c08bef0d35e89e15a0b830740b3ef74c157bf0cadc2a85e77b90e0e2780debb56c3fcb0ebf0489e5a92c2a0daac6208ae80a1d26c2372cc36927e2fd2977b10da9cd1f20a34801a3f951b2990e1f8d32a391787fe1731058baec08264c525788958d2fc5edd60b02c10a0511a03da2d11af9b008a585f98cee2f0351292d81864398b299ff534dcbea5788f84bd8a5ba466680044a144683f86e83db353af9ff072364009a2e0f6067cb2f5521489eedc8aaec783ae3fcd720e8eedc147a8e34cb167413cb056c38e747ea4e71cba5d1a4643282f1b84c664cabc47a7e767908f5c205d5cd9d74165ae353b043273d077aab1ac025b945820586b3c998c64b1b006982b431963942fd4ade8c1caaf525f34dd04bbde5c1f905a7adb51ce174ab8eb4b045fc3239f70a95ccf7523b6fad7e43afa26313462908feb2d6b7db7914fa8b6ac973c379684d133366f3df6f7fcf680ffb1d9abbd0e10b132cbac9d98e80f369cb37a04e2afa4837b987dd5f943c1c4d272db1611d6911b91eecc71265c6ac7db06bd4a4c56826fc13ff3bfb341152f0a9f3d498742ba7beeaf05b8a348101e6defaa7908ada24fa4cb00e325041c4a91f9e7e7db66bd7f48ecf6e251b8dffe1ff579859030f57455bcb10366c0e9f960d2b4aab7eee1abea4324b2d8b679070de92d2e9c903cb1ff15916bbc2da4ab8029128da753ad7fb074cd10fdc5cf566bbbd400f2b787520b0f6ddbf316ddc8096b8a9cbfcd575cc6a8b9ced09d65a2806eaf2fd44b5563dd428248bf189bc532c1af516b0750a8bdffc9d13fa42609d5a49018ba9169e6e78f1a4c987799f29a362c9c855cc9af630fb001b96284bf3ce9175abc0a8efc84408c9aeee625d42618b38ffe6a115c96caa35757900791e370bb82fb97c5d9a19d36824fe6f95785ae2fa6ce95bb28faa9e4446bfcc2edd0feca8057fe640c04bd8bfbdc74a82397640d5880f99044d107e3af28c7290a89045d1d374c33cc7059f3214a1ecc31c854694de0d0d4378b486a1c314a4167b430683e4ff6c147fac071ee40911e383b7456bdc5eb3b27e137b242ca0cf44ef2c6e37ca64f42dd2d4e799aa728d6202e9d799db32b96a4363772b63607dd272e36b1cd471bfb63efa40fd98dc83ede95e27e1c5d9470f0bb53a0d94e5f4da6287c39dc2f34bc6428dac52f8c60f61fe21dad8471c0767ab872b90cc3d7ea3af7034c8a11e93a1977f7783923e291d740a18bdf1da9c72de0edda50d90f1205a442e64170aee040f30dca2bfacf52cca113044eee43de6a2db075c855703185b30d79a6b892805e9831b4c80942ac4dc3c2521d5813c884475c3d61e1c3159eb8b643ab7010c7bddf3300766a1329ccf36b3d00ec345d4cfd7c37ec6a310eeade1af5eb9ea269e764a048c4b44ada4943c2e4b28536a4152e5392b01e305b0d70f7b4214492e764004f88564372572913ce3244586a32a70ff5393eaf130195531aa95f8030860ef71143233ad9752b30451bb7fd39455eb7278fc47f8e17f181f301bb5ce02a9b19189a20c7a66b4eab5d158cdb984d258839859ce00cf53704371aced03ad453fc52d9c4ab200af40f3a6403c56cae5e577261eecbf06898cd9141d985821498ad0ea967396854e602892e0323e7d319b12ee41deed1a99b01fa1c73e5a0bfa483fb5984388b4293f705dc3fa81f30705e14f13e34b07014afe6a16ba52bc524220cbaa75fe2560537973446b8ab589671d89a3bef69b6c26c7fc15f3c08937829302689e2b70b465ffc4ae3d4f214becde232ae412e47be65f798acf3bedf154a96c8025ea0c542187c918ca9b6c2bd67b4662e39c9848b4790fea68ff3285202c6212f8d6b55d4899fcca4caf84c85fef681e58f2e540d12ef5ae4a3d10dfa1c626e62e870978ba420b1b07503e0f05e93188066407525ebaf26a7c6b14c881742e7758b8fe37f3e292363102abf655cd6300d923746dbcde85e2817423ef33ef3205a592678750c543802c9acae32e804da220067a729ed5923be92fd80531489f2eef1252ca61bd80a9cc6e9634e3243d049fc58623c71d4abd3410dfe6158e29654c0b9a6a0d31f0f10acf2f01c4eae0de762e6efcc6858fe2115d3b362f38563f7fe93704fe0a36b4e14b605837f2d6cadb7fa51e4b709cf6f30d1de20430ed67567d58049a302273a36012b020acd0bcd255c6cf92fdb1c855b417269027856791202e591bf01ed8861e66404ea85cce364e4ecaacac0b793263eb02ecc5918b4fe08ac4bf63ccdb7e3641b2adcdd322829b4858146b0df2ff4ee9c27111157000d91136df7833b49d0723b49c881a9eeccb8ba8f69b874a065bb0338ec2cef2427f601e61aea7f44e27c1b594d75ad1974604c7d5aee858f116e2d5cb37685f271e63fc4f60199c2536ff8e0ccdf824cf7d86ed6787687dcddcbf05eabef510ca6a42fcd7d32fa2fef9b752db835beba5ee318d835174acbd61d9a1015aca39487468b582222bb304c4555b307d80b83cab997396dbb9ede9e31cae5918bf4501d6e41c47105d7ccdf3e5428a2c475d461e676042940d6ed1490671c23b8ca869a8081c87c8529c7957e177d452b66d5945900a10b42cb41606f5700d2ab8c099bf66b262c9b93916d89ba82d287baf91217d06ae4b2133f588019e685f3d9a837c066d64a5e709b4f6eb19eb8e2da83e8665050ece1268a8a1c75e8b6e7c7b44b24326f589eb3c646823a6222883f267388cf72a379bf0fb62df42999e11e678fdee1483ef87f7f9637ce5946534d507302bf892fc28f22d808694370a20df0102136c2f5736e278201fa04a6f1ce8d0138a5117b56ea14fda044545fed05e64675d73e3aedf7a5bfb058589df18dba18ec1c2962da33f1c53d51bae7f85d2fe48c130364ad48208f8c68b1b7bca675c7dc6bb2c5c7e78e09334df97d13cf90ebf4dea1e291cb70aea2c6be0e543a6d50714ccf8896719cefa253a13ff8752327e16cd0964d279c0d38285d1841aa88c99e85c0decb3262a052612f91cd5624862230b8cb98e10e32a70177121e0b352cc0003a2c01bcb6bd9563495a74a767df7a27bd390be94887e25e8a549665d2398b754f30e7aa2e385eb57319a9a2e885d773a93ca1c8279f6706661913fa1bf52aff793070f386b747cc8440b2141d9f5af37e16debed3964e4cd8e04d86e34e14878e9052c3d6aa1630cd3bb904a976c6c5afd373f6edcb53b7dce69f7d8f1f9b021eb45e5bb9dd8d2a612d4f4494a8a69a5664450a8dd51d94aaf144124a9211fa971c442d9f82809b1233406e3280c8e0cd424cab1338bf404af93204d9fbbffa59b99696762bd6534db341d722ab0bc01881ec96b429e4ccd56103757301aefd7252c43c8cc9eae857ebec19d8744ad459fbdc92db05ce0a94c28967abb7790a18a05eb275a13ef16746e2bb70ecaf5010da2cc9461411dae9738116262807095cc24935785ea1058e0762f8351f0dc229c2d89041152bdedb1f1bf6993ebec3ca79cd7b97c4876d6881f782e4eef2dc94bc7848e551521d9acc7c5b9a3adbc4fed8adc1eca40421be24bb2a9691579e78c936fe27bef54f6e0345b0ccab31f35225ad6e11792e2b38f6437de4af708d8a473f14c2b160fcb5f14271f960080633a07c7cdf8736cca7adb6116ab3bfee50912002573d4498c3494fd535c8251454263a88a41133ffaa98461327ec038c45e6910347d4f6cf892cc7e9910a22e4321aaf8eb80dd39e34bdfc8ad42786590e203eb341018458add6d74a579c1a7e10032f63e1fe8a44edd51d806830d6998475b92f31f1913837575b32c29526db2b785458cf44a049cfae0746b5831ef679cc8c19b4c7072c995c79fccac0e6684d1fe3eee459d8fe2bbec90b31128e52007bcf4ccccb18abc9ab18914851a939c901632673300169d342bfcbc4ca3ef0d14fad3f9c9712c9000cfb7da2d6b008bbba199637754d4bd6236d41e9378c8fe4260d92eac47ca5534e7a4f93af1b32746ca577dd133032a45f12f2822c840fec556a5fb050665937e8e0ac4829c276b502f31fee8da555c2cc2cd26e41cb7f2f0d5b2126b01d1a008d48e9ecda0a61a76671db44f312536c8973ba1bea4b716d618a0da3dee2298a2bf2312dbca0aaf237d65026b3a029fe5e614c7b664e68821835001381aa4890bda0e8c20d62203b66302be7f62f80c03045e0d3b4f1c815bc96269d2ed1b466c4ab8e89c3febf5cf7fccf98cb5f151387e4adbbce2675a243bcdeccce0b0b9ad98c35a468e7a4a718d541550e586ede0f736a3834bd5b255fc11d31dec3a671d321bd3ed873bb018900781f9bf76279d882eae966cd8e7607071413e82f97b684011161d68250dde208479050ded11746795504b14f4d5e3cc3edc9622a1848091e1e8e3288473d32a701b27c1cd808acd4441bc9b5188a7032d35157d4803dc98a8dda19f2a4f0d27c5d9bc8245c774839b2235f12be037466e57051520cd58c9d36bbc0b07793478cc8c49412088cbc910d0197bfdc7c6dc08d1eaf5402baca01d71db189101506641e87ad891b91d926168a14b4650c8ea5d5761b85afc7c4b55f9bafdf021383742af5fea022fd8a9c3401d318490020529717464af5a7d89a3aedc521ff1d9308ebfce3a010732b497857bc34e842a12f303c2e88c92a3c45491af74187624bb3f418e6ed4ded60e1b777c882f0879318036c4d48615cd84a97fd3f7cab27a44a2d83d15440d3b4f5c206fdb6b816a92423f42dc0471c8fec076885450b4ba4a55069c12397d6e066e2d6e2d3547c22d1db6d4277e91ad2ba6d59b0bb603683fcd98915970ad02727d08f8b9a085ed71030a9bcbb8db02f0eb495523c955f42e0eec49e9e6f109a17e541f3aad4ffff4169bbcc28edc37ebc997a88415f4c6168cd59eec406fe082f1d5e9faba323b6e6dfac12346c3ce85c6c37c81aa90a7b02686e4b30711a8f3fd543d25539c81ec06c685476c0cb5b9c0c538835dee82c34ee331047d32abf6d45e1b0d2258d624b525f2ed571b089abc7657fe89bc23b296fa4fb74fae67eb5f4fa8889a0a9b3ae993cd98fe33634f733bc65b1cadfc7497998651f91ebeafcff4eae8e8f7415789cf2e90bcf783972480a400c7450aca16fa2e562768d7c703a04fd17975f6e0b9637be998c0f7ed1d33b07560d426148d97f47c69e195b821da1d44f0c02751b03311062cfd016490a3c990ba70190f1811794560291e023b225eada945416d3f0778a42a041fc39e84c9d5c9c4a8acf9353b0999d4591ec8998b28bcdfda7d1f202e853fa1a4d3fc2ee218be4a7b0562ca018e0e3d0ad762b513b45de39b84e0c2509918071a2beec6678d25d398a4040d1248c3478edd5e5b245ec761d64ea9750ccdec6e66516ba9f539e45bb2800fa5be02967445d0360503f0946607b532cbadd6a93899cc1292b231355f7fadd875f82b8057921c78c20d57acb0d6a2f47713e5da0cee18a404f9051bcae5ff55c102f4d74eb05eebadc874be50ccd1f891e318eba0d07d11ef163b95d65cdc6cad826834e1ad619d8a1c4a7002eaf608bd5120f4116983a43fee5d4576dac32070b93d5c6763332faf43c2ef931abef754768342c20127110804a51e2cba3efc61d0bc8c3dfce9d89bd4788edd722221691d811787696eeff09396c0d0a8ce2e7acbfbc05cb24364ad85b8bea0737f331f7d5bd72b06abd47acb10cba9b54c19960f52521bcf7225c9d98d9de0059cc28e3819ac66fcfe7654cd18d9a47d84dfb8c84f85ff68e519667e9955f5291bee500418a6a94290f00e5151bc74b78b2f41287d6970a9f8c5fcff931d52abdcd929dd9b35b3ca98a59a161e853b5280e10254e495a79bd4be649417fd449561205046d00c74ac4103705fc7297d35c846b8ba06fe29f6bb598d434d82af74c3a3e3baf898401001009bf39ff9961acc4daeab4f0d39e463055731b61e145694b0b2e3fe512759ed8945a82891ef4ab655adc0c43c57ac7aeb073b7d089ae7c233aa85a42ef4d22b52c11f68ac1f7d49ac9ae0c72682422a25a7bf84ea728164ac8a52edc76285c2aa9e8743083df4b148205dc4194986e9d03ae52a786fec6fbe0ea8c73ed4ed2c7c47cd3729f3edd5bd9a96660c854aecbaa986831feb7934511ae2756b0c5bf7cea60c6096bdc12c080ba09bea3c75ec8f17890430802585f786cb05a913dee0de143029f7a1f0addfa284332be21dbed22a761534816785d57fbcd53828e98a144345f3619923ed2dd18f641a186643ec81421ca3f32e84cd1f4f4061a9b638a320eef509c1f9933bb172472a3c3d3fb538555b8ed85e3f4a6e5c35866c1bf64ebaef98e6116586c1d9623948bd48cc1f929827cded45ad5c1de02689099a1a3d0d600246edc52e3658a37af4c639f1ba214915d41a0bd0fc175f40d7dfe6ff5cf267b24b717aa7ecf962fd4c346e0682a61f0085c84c34ca1ad4c0d3f86bdb44f802629bba454f35ebd1f3e3914778b772219e118b348f73b86e7b72eca2c6bcddad3dffc1edf030f8f612f294f4826db2d95598071a89e81961291973a61c217e68f1e90b5d9205bb93322176fc628166a62c55284c2e488088beecbf94b9330d08f15f90770f32a9dc3e0b785e21734d1e98963d30db3f51ed7cf6d151d02be00ffcfecaac8ec30713a3cbdd1485c01d0cac121aa0cfadded458b9670ff5abaa8f5304010a97fadcbf00dbeb906b9477b7e82fab176d8d769c0b6cd3481d43bca027872b31a3683d30393e10ebb5de691f410c7442d01d888f4e00d40e0f9936400704799301b251ca3ab0a746d89eb5aa7113fcc17f5ef8a933e08fe6f2c003f8adbf11a4c2ab9759e8c3528284b18a292493c1b65b931e776c1ac41276c6ca90b586b91e6dd79f4d5bebe48cb1b4c18311ccfb7a237f49d22771e4ee511cb16a30ce888349a4820d15251c9ecdb7122f601a0a60e65be9069ac57c106143fa976c479faaaf5cc23d1228e52cf3eb34c563313f28ca2b67c0a4c9dc95b9c39945e1e66242005e67bf231b90a19ce5b9b018312e09ccec203c2fac2582922accfdea8e8280b818fd217959c9da1a8feb4adb71524d4bf05b1ebd94808138da0e4732410770a7374a59fb99128f31dbdd37abb7fdbcb704e976eadfa951af8100b1b2577925b31b9c7ac7589f55a5140fad2a868b5fabf886219f308632535b94f8b871f6b5420f3a90d4a3b25334c1a2035b09b12f1ae52c76b1624541344975d74a57f3ae64a851b74ce1c903e54247a2e5ae2ccc591d15505a0438b304a6fe5df44a033cd2117f64d0540ea81d7c7a48e0fd665dccb2a4c5ee66a066f9b8b8eead61f7924b101408e06d7a14edb79eb2a085392f3bc025cc9763cc15d6028cc6338f2e3c6040d66ef897c10f3307f4ca5a8082d434789c80be13e7942911118c144228f7bd6d20f20906d210347009a50d0f8a69f62e02bd9e561e2f4fa8b16cb30781dd748cadf7056c035fc7cd586d54ebb897752d7f63f42d6efd261d56e9476304f158f8dd5e747fae0cc4b540685abbaaf069fe406004f255afa5bd4cde7e0088b1e9cf41e1034a74168e6c38348084fb529bb3f178985b58aac797a0e41ecb112e9e5cf49c5c3780afcc1f587263dc429885243f38efa5d11283a8df02b5604d558f9c90b0330824b9c82dca361c951e16b6acbe452b96bc36dbd138e764a79c0f43699204b14e39aa598d5392b71d5403dfa2c34ba35756ed0fb08ac9631c7ef458b982dace92291df27b5423734da64de158654eddd83809dee01e2e547bdbda2c568d5f4b1939adc54f43e36b86e45a65b45db3f06e4be45700047a2e50866134d290e1f8716281fd774d9b1812a71f38836c7e13ecafee9d4a48c75f6eb2aaf809fdc1d779a13f5896249b9ac3aca805bfeaf19408865e14e5be9b111b5d3dda9b6eebf344139867cf4d37449f2a423e7647e4555034241a3daca39939ca63541bda28515748a4dd38eb283f51bbd10c32fb77d21773cabc8e58a03bbcb6267fdf830dcd129438d0fd272c68c4aec97339274af951a39487a61cbf83528eb52d047d2eb768eae8587e1f4ede58dd07fe313751f26f2f312efb7bdf7325d3ee133f215df60e3e210546aac3b0f2bfeece1244394a4523e002fffc738480f3358fe9715b1ff7c4264842133592077a61dd3c0bf2ff7651bf6727242e9ba542a29ee9c7feb9212d90a08895daf939ba1f7172a2ba838cd3bef320a7d70dc9bb3458315e0e881f13321fcd9e1979c840defe0332d6517fbef7c824d8bca0ebe1616752f92124fbd92820487b570d0485e670c5a9ade68b4402142babe797631ef63878f7cadf2b312de1ff24e14801d5c54abf04848a6929134c462031fe3f31b296b86ea2df4c2e3df73a4c7c7381e26923ec6da3135e7c93b12fd42d509dcd606cf6491d0bedc94adba0f181eae1253d18eb1668ffe04f4736eef93a4ebee4e46b2690b91c703ff2eb520b7659a267c0e4da5344c56f55cabdbb2408d54dfa032dc9be530c607f0f29369280a3247d358d1cd043537902fc591ba1722831313314f74d581e87de61e714774bfdc87606bdff1bc8aa5940eff09c35aeb8e3cedb2a68b394b1a322a3d3173d7e689c3cda54999454a6d714f011f48203849bc90d78d3a39d2ed0bda7e7eeeb208375c98c4d5c7a1f003a8ec377904c34b663ddcd7558d90c93d6f727af7d839a28201c2658c95723f8ca44a3221f82d3ccf203817df63018cc04cc89c59c71a5b24fefbed850791d01d6875ee9f6f48c18b7e7a74c8d36aebc8c346bd9a893b4dd39a0fec255f46867e00b4a2003b4a37d1cd52479cc0d4d79ec61233f53ae3bbc6aa28b44c7f51b0c22e834a3131016b66030369e771dea111e0906611878e1e6136546d60fc69dcd5e6c0b77e965358819618e78350a359d8aa602c69db94b827e8cfcfb63bea24fcbf413657e8b97c2dff40671026383c228e7da0962fd8f7c1d00e35eb77ae7ddc10c60c838bd52bef75e072a5708719c0be9a92813af7b09cd0967e8fb38d099b0cf3eceb517b691756a46a355b591a927aff565f3e8771f55ca13b0bda36ad9b00780e2709273be66b9648e9e5a894a1ea943284f3054651b813a8ca1adff780604e1f2573b181eb67329227a4992afb4cf04dbaf9f970796ab863a93b4373d0b0d98b0ed84a3f8a75001c7ca270e05cd0cd6114a6c7758ee376aea0603ebc19b39c199afea3d1beb902c99f41e1dd6cba7f62f531c664a0550c90c450aa7a307d4c45f09936a0c6c0468054be130bde4470284dfec3eefcd2162380d420ceb8b99af7d588fff67f536fce7d37636f12fb0b45ba7dd3a2f6d81d6a3d679fc335f09284c2548345d3e690d67a2927e30eb088052c8523f5c4f7771a0f06019683094bc2d6a09c047adf45f3f9bf9f77e35b460fd9306e4f08d730b48de8dc8bd43f4d7d4ac82b86c883f09c88b0acdbab6c96878fec59842fecc2636e67a6b9f43ef7dae175df9811c2d69c854af0a74b820e1c0b4a9862dbefa56ffaff3c9718270db2e6ec902f31085a556f7912ca310da4d6261d949ddcd1e6bc4d6828c96a8083874acd1cc35701de2890002f8d0969223fa9dece9db31a557f0a7c256dfb11634afc4a57c73f0923fe20a75715c88b41a21994fb4c19d3a8f644ba1e43a2ef963f8991abbdbad1fcc7daea8570d41dd10ed2d101de92fddd8822165cb72adc0e3d0fe033a4bf4c63ef5849dcd42d2567561f1ecdaa1856ae59cd18c96baf3e854b0696d6a563275ff73a436ff4381af1d73b772610c28c49e690767c85daea20cc8f3a3f1915400ba05aec9ae6d4534d899020226390d774244ded6ab58fd2ad5574f3f76ca88e7ee8e6c8e5ac11b83d0c28e1f98c5a4f57398589073b490a18e328b1873a7aca8e2dd2694e85750656aad4926e2c1202559238ebd7a48aefa371dedeb310fc272d664fd1f52b65782569e165492ff5cb4293f1d6bf119a88d501a4a353a881c6040430505820728825ce90a6294a50f0507f6b7032202b972dc4be04d189ba1adf2820a043c73ac19c72f17da14701814e64ab20c459acf5c9f4c0319742e728ede5b30bc23212fa442625e1fe1cafd08687a4e83c8da1c40bfe34b4c03c0b479803f47499121dbd0d80d1c86fd7944d47e01aa774d2c19edc8e3ad4a52b53ed994ffdfb98bb97bd43d778f0fcae00830e98aad1b089b3143217f21cbd707ee5b4cc0e3dc72ce7dbb8ecd85ce2ccd6588ca6b892ddbd97249a061198eeb182d86c61b21fdb396923b425705ce098a2e0de2f2972c86c6fa88b816c246811301f58ea97620c3ebb1940cbdd3ff350f6743bec2456439eb11fd54011923ab977d3e78a8c94ea03aa2f6104a5e21df54216be27ad7eeddcfa8536430f561eba59ead6dd13b8180da4783d94d33b0a8de5180ca846b7603c0de72dc526db3b756dc9d71889c7415f3fe227488cc69e0d1afc8d00d731dac6a5c52097dbcfd4c380a64411fd7c62b1ec4a142d8ae32f9da7c4b4329442ad471e862a96f62b0f38f52c59130b6e53a1fd70a2bc6c295dc67ba2d57477882c13073f39eec03e6c9103519159ed82b0c85a85fd794b7a931cd6b2fe7a5c77f496908279619af7a0c9e46f011338c39db410a740798b27230186e7ffcca61c5a722c0006c55f853f98fd27a7d3297b32a5a0f581caf96a5acd74b8020d892ca0e3fe4f090fad3133178fc08a6d8f71d2b5e5e8757733bc34a7cc924ae24836aadd1b2c59726d82a4701a16439a6d01bd4028c13c086876eed7a16e9d80c49b393d028fdda27554ba57f5c629bbdc562a2d7f2725c891bf8dba1a2adef37b71e10b1743a86b982bff23cadc698552ca081856494934dbf2886728dda47024d0ac18b9cc0a32e0134afa30a17d23a19b22fc77600c6909ee35aa3fafea9689b3c2f4f8cba4ad944c6f3beb8648ea0d836a3e8f64734e5b10ab4c3eac9f1186747116da9f6e54cc2edc2d0249d34d49ef2cd28c614f881dad3e3872910e6e4d1cd62fa32906045f1446ba209508bb421ac913e38ef1778ccf45a3906e4f8bd7f18871d5d28df220edc57992c141ef55926226988575158d35774e5619bd90bca6175ccf315403fa45e796db6de5083298eafd6347ba64928e43d7d6ca98b4329d13bc97541eee9c85fea07bbf38f02594259b34fcbc367ff05984e88b4f3e7f0a7b14b2bff7de0d76196868a0422fa32dd77b5da30c04c1dde208772aaf00e726f46e0eb526a2f89db5ba0839bb11d5754d0c7fc818457faa0320585dc874522f33e5bb32042b3ff9132b989d1afcfe639b800fa087eb015199cebd2e8bd143ff8901e4c8288463f1aa6cec1db117efbf2d0ab5c4cee47c74ba01c7afdde1124f0ca8d1922e667f9ea28fcff5643abc49cb925505d6715f12fd28596423096e3d49cef810c8890481536a0c0c40bf6c8f3ffec22ac852f715484033366ff5bb3b9c56ea8109b87b0c32114b813f313609e9a14296b9833687e022628e2d0a0e328c068976e8892be7bbbcb2aeec1130a8be1044bd59fadf9e1ce1c79f66d9f6cb80ee727f5d2e6b91c4ec2016e7d279a7b7e72c3fb6d7202fd84ccb42cc7305b90cdf84f2697dbf9075c4a1c80022e09367dff0258a0f8a8eb2f202ac7bfde40c1d7060a0bc241c1887f830212273f2597e20967800fac2ba04a5a2f1c688dd8e01c096f2accb845ad4f0327a5143f09829a522e1c766454e4409f9268ff3d42a14d5f49aac892cd1feabffa0785fb911234a606085452c2528a042d062bc6f0dbe8a041aa4263f8f43ea0cfde571d55b04fb3671479a3b1cef68d9a090f08d50f0031764061e55d633ead4f13cd4b7eca0682669a61af9dc99de09048053c7d782dc280ccf6ca06bc77abe8defe5a7eae973af164164c7a71d5f50485446ccb9a01399bc8acc29343056bf6c9fc8c68af1d3fc6e5e073540cfa4a30a83a118156d89f88055c28a4823a911d25f11a02d761fd04eb7b190555143591a556c3c3d931772e27d15cbaa74c4ecebc3fccb51be5747bddb19928655d94b8d8234eb6ef053b244e9db2267551c79e463dafd913b0d4b548f6c2479ed88f5b6c142c755d90bcc8334eb6e7163b254abd81bde5b906c189090fe3e87e7d4f7a2a88a34fb6f5f7288e41b7d477d2a071241a10f784eedce8ee417f5b85bbb492551f4901c01b6765b7c83e5b8ed70c3e02eba76bd32167e21382c8d6b46071071c36d63f84aff70e9d99295eb3be4b2c45f2138dec4e71fe29b7e0c7696e2b02f208ef70c917ab25ac1e568a9e5384045b2d1f3d05971b6c40241cb5ea8d7bfca266609138937312706467f38df0ee99e03e506fe76343e92b81f3a4b3825a690489e0486f440c6d17c9f83b1cd816913738281c447e5c2d70a97404ea905da50b28888e25a9d2078be7066245d2aa239abd01919cf20130479475853a13a0a4d5a96d1029d91c620cdeb9b251d89e9db6c47afe31da0543489c5a6a55367be7b83213d6ac093b325badc7082e31e34f4c3df5414c860c6bb9e29384d8e30eb843c73380ffa0ac3d34bc95a1e1af3aeda553bfc10674d66a0d90f47f93b1962bd86f7107a60e22cab91040275562c489cee83c9de1df82b6ee67ff2e562bf27778f99b390797713dd992e487fda0a81b2fb0592d3fa5332f99b7e18b50117d80ceb3c3035d99cd083988449ec6f55744393059dfb6009a2e6deb47a83cdc0d8cd317dd194a2414c9ac9ac37e2a160747894083db02140f06f4bad2144c6fbec9ac87b9e575a022bb4a29a0a3fcec079959e862ae5506e2cf701da67f7e7605f478eee269ece70a295f580f510b7ae5f379fe8dd2f4010d6dcf33c9d0a5920d251e3969c91f996a41f2693097e720d12e63a4b1a83a928f13bf41100d775140a99ba835aceb10147e5c67eb1579ff40564895e29360a9feae1063f1869d94e1edec22699ad941b3051e02776ca584e298e54d1da2a6272918e5140da10fe8f2600a6f80857da2ab742db83dc793b6f14beaa2eae48befb2203353a02cc33d739f849f5720584ad79c88ef93466f1a2888f08b4fdab8d2ccd3f8642a4d0119cdfb81e494cf914f9af5d9c0e9937cf29c4083d4d4820a13c3405f2900d439130cb879964663c64da5ded284050a0c8e69655790345f01341d3da2c7cec1ab0d9c77e2be875ea9d45a33ddf208c0b61d8b0ad3e7b754f2d7ee0672025cba866128f8524b5234ba972fea504090e439c32c4d69d77ecee25f01f2527873287d507eb2cf36e226212e074187d2a913404f62636a7788037dc30ccc8757493e7ed4fb1fd9dd02aaaac8a93794305cbfcdcd3bd565120db0151ea9b7bb44b7d3419bafea0c55da2699a30cae2f8612587b302a0eb782fb2cd3a9a827e54a5991d054d91168043f872cca40fd93c60f9fab3e1178b8ce3e45b135bdc3bcb3d657fa9ec7b568384aa20a6de9a3bfb30ed679982b05ff172eae01940c04aa8563b95b2054aaa20e39aa252a7d50c66540ff326581d1ce09c7442151e77ab2689c91efd847d3fde60cc70714693f2058b8d000c0e7190c18407e2d30d4507354fbf6b9ffc952a65db01dfa0849a55432c62e557c21dcdd76cbbdb79449ca0f0bba0b780b74e7444cd2a853dcb5725d75cea2dfb2ab94aab3362afb4011eec76ba54e8530d942c6c406b9fada09957ce00b1a3971ccdd174028222715401cd991a24f346251c8481f568cd469671a34226ea40f94424036830cc8801429098e68424e1b1a435a90461421a20812002500a203312045af0754148d418a9f0d764c48112c63092794dc4e7001520c9be80014a4482ad53c7530d3420c52144b359300860f8ed09162a954f30e09678ca00c2e481f08a0c5143b72ba004a5caa797e0145116490d79fb505d0f6d7a1b7fff52f396b62d31465201922eb0766333bff35c41074aa305550010515c0b0dec46d3a9b506e98b806dce0dd7003cfedfa633fcf794e880a6d9ab3f3bf69e79cd3bac5fbd3617e63cd7c2a24e40221a1efdb0155c159f4692a6a86cbcbbaf43ede94fa91123280cbd22ec108ecf26cc659a51302193d9c0a2e76408a75889334be20454b8bc8a28b2748d1a3a289123f20c56f8b1c98612345b0488b217e48f196aa2062051aa4784b5e9e59d8e00b18909ebeb5e5ac39494d8640450f489b27f9291aa62f8a2924d8df9fce9f2c08f83c2d4487f9250d7fa787bc1f660bdc077579457beffd207ac8ab8320bda8b50ef3e97ff34be23ee96a21ee071186f77e38eb0771e7adf383b85a555bf3e7ac75566b8638636ea0a9d5abb7d659ab57752010270df0b54f63ad0e0bde7c73f841f7d4d359300d052e67ed69acca7e3fe3acf9de0a535771b43af5f71e3d1401e2fcb4101de8974efab93d20c2dfe921c327650bb87f4d830c3f881e32d441885fd25a07fafeb00d2611be186a21c20f82440ac327dddaa2b5653f8890f441cc0f2288595bdfb404f84fc8e2b6f7e22afc6c8d0daa42f545435010cbdecfe5e5bf74da67242f564ffbf294bebcd04c77188a62c9e5954846d606dda0b7d906397dfb02fdfb5797f4c30fdf7a6fbdf726e60bdba2eda9aeb5412925f0dced7c5fff67f2982f3a5b2fef85432f5fa2fce54b77e2959cf695e8e7c0f19ee37078383c1cdeede54b87f28d35395ef24b98639cf54261a06fe9fd2fa4387249f7cbd531ce7a9914aca697ecb4ec4998c0a497bde8e97d9e0a761611ff1c9fc3ed4f7dd91e76bbb99b21999ed24cf449f4e5e997c41b4f0365e17bef6b58c07491defb2fef2b7f8979acfca4bff2a45c278bfe7733fd9cff33a52f390521e0520dcf7d3ffc6e898e30dca7e17f2f864748b4a020a7d1bcc8860fb91337f2966c0fe62c51c8912fc80605d16d64349d727c0e93d3a19abbe812775d1c2fd61289f45f1692e377a0fb85f6a811d92623cef27e026defe7a7461ab8c5c6d70f72d7f7affcdedb9abb8adc65e3bdb7369bc45de392ed7956687b43dbfb4ed806d9207bc4d2aa044af675386dab535f3aedbed515a09b0ab1faea1ececaa1a7b348ff42c45950706965f5c85d39defb6779ebaefbde5b597d39d0cb93b46c7b9fb38dd596f7e268c717be9f818285c09ce53d0f74f710628dfcd4970301799ec4f36a496f3749973cfbab3a6779ffb94af19607deec4bbc967d08c8c3a169aa4bfe749de22ceff5114c7ff52d5fe39d66b48282fa3951347e23ef78dfe8b4faba56af740faa2f9d66e3cbb98301fd916e93e9dd7b4fe24293c79cc1f4b402745b5d963e7c9a3ab78b2a9593f8af915b5079075a02b3d3760069f05434f64eba54ed18eaebf5f4967d6ae7dd1e2d9fc5c2ad9c0422b8a655f9933845771f77d59928183f8d4fada950a542b5ea17eae3c7f541101ca2617caf2ae37bb0bfef27f87404ff94a7bd17e3ef1373a8af96ff4a627dd2b7643a5bf551b93e4b06331d9a2b2aa507a97e459c3f3520f07b920a4822d980ce2a0ea22856ba8f6c102479f6a8c88935b250ecd1a96849cd64a218eb0a503aa333677dff819afe471485915d7fe5c57bc5d24aa643cefa7ea6be686d6606fc3ea5042e599761fd3427ab2f96ffde8bb81147a2fc7d223dc5b90bffca7f336d9d05b3e1e77bf11b3fada24bd5f7e29cb2c1f7d9e004bfddfe1e8f3d7af64ade6d50cac92510b3573ad0adf215b0bbbe0ea75d57fe86155d01ba5574491f6b1dce025f08d53838eb7b1ee8aefa01e338030606676a03583495ecfe9e1eb9ebfe6712e7fcc057f9c0cfa1e65ab50da75cd27d7a1f6fe9aa987e12d58e4c28fbfbeffbbeff72287de2a72ae2aed37f7f42ed40b76ab6aaa8bfbfc1866f741c4f882f4e919644f14e52f8314c1ebec59780bbe616bf0777d5175f86f952d5399fb0b8d8a2284eb9e20ca6ec19654fa219ccb648c75bba5236fd5a976c5a73169db14ebff9ddb7fbead2870d6aab13ffaa4c22194cd9e50aef893431a8aa58baa02e555a84012e67d116df690c936afb31b8eb62d48c11bf27c439013c89a0880285ed53d99f9e78861ca91fb075163d420866a420095c4d6797b8cdc9cd080765d730b7bdea5a58545ff762acc355f77ad5fbdf504cd9f53f8924db966e328cb0edcd59e11430dc7d45a51d2ec32255b8f374b83352231dc98ed844293f43259c4f909351672a320497aafba66ba7601fd5fca2daf22f2a2a2a12aaf762ac529984a05829368adba3ed1f8e30fcb6b7faba437f4b5cb7676bbb54d1a2c9438abb665854f2010e77ee2a4d424736e7ae322cdaee2a4b509c6c9cbb26016ef0099a3c9c1411722831248a6a94994d3279f88cb5f762ac52fd87539ce5e12e9c439832fe650a2f5278c6dc11ee90c0f6e62e283e3b052160ab93ddea2bdcd596ff07a980f04fe9cdeec558a5fab7b7ed2fde701550afefbebfe769d4589ac1e15505ec065f87d306f57f5f86a38d7d5057a07a5fe5816e1beea69090b0b3da950cbbea92675313ae060b3c2376d415d9d423b2a9e763a76c5a8574653ddad4c8ae42f5352ef196bf9d526b3eb588c82eafcd2be2691b65ef60ebd1b5557b6dd7e693b4d9bbab1e6b361460db766ac4cab1eb099cad5a27ab7efd99821030edd1f3c26f4b471db80271facbc7c662319fef7d90d01fc2ead9257df741fcf290ff9c5227c4fb6921f5ad531c71ba2b8bf3e78b88fde5e383a4f4a73f64860482a64122b1effdd46569c893485eb8dbe6d0f940a903bc6ff2c83ce800eefa13e8d93ce8006e21f5e7eed973aca169ec1e4a21208a734e4a7b10ebbb8847e0f2ee2d3a25cd409ff430d027e99e7d73694b7affbbd63efd817ba6a20870255117457727a9402239c97d6e52ee4181ba5377f731822e0d0ba96a5fc4b2cddc56a040b5d60c50779c65a9eccea8adb5d64a006bbd1bf529ee5ea7538753ee979ee779f37a3d9ee7cd39e79df468d21df7bd9f936680eef0f2dc53973dec69e991b3eccfe9cd39ed5b951298e0843de797b8355bd3b50541e5823e11bf0f7f6f5ffcecf79f7e4ace0ca9d0cf9b9932b58677ce097e1e598520ce3ae79c9507b403b8be6e44c1f34bfc4e8833b6e93b757729db3dca76f71a9b3c6cfa029b3e79025eac2ac1d8a631dac405361d7fd8f44befc9180b8af223f3b449d4c0f7b2c1587d958cbc451f8aec68b629a55280369db2e9c736a5255b1a787e498a6dff497bb43d8914f4716201b0c7016c7bc2b6376c6bbe6e0ccbd27feb645f586dd151972af1564dc5065fb0bd11260b24fd6c6df06b026ecc9401abf715466d17b4617b5f3f0477b6e7cd6de91ca927ab798ce2ea6bceb9e32ef1e79412e5684241793997ac74943194dec0f1f2f3552b2c2efae95f4c4bba7c16d6b5130db50d5daae8e354babc9fd2255681bafcf774c9f2beea728656a0daa2b54597b765a5e9b591d2e5e366aac6d55a5b748951babc7b459758459797625d0b35a57426fc0fc33aa9fd8923531f06a094524a71b48004031f98842da862fbcf10b43fc39bc9b2efa0164c6cfff9d99f2bd8fef3049b971cce96f5669dd3ceba721c0693346cbfebcc0e707d6b6b1051144488a2f0d9f36fcc9f3fc4ed79def7f1e055c07b2aa521102baed3e6c0f17263e56243f501aa4d7954977d3ada7dbff4d0c0560bb1ef7beefb9ff7a027c47edd42bc4739cbb1b3bcec6139ae43708edaa69f01231a1052cd70cb077079dae518daf4730cb9cbbfc4327bca39eb14654664c9aea88a4f3877ad5ea8bee99f72f545c9d3d13ee9826cbe91554350551d434fbb4dbf646d5a62d9a63333397620ce9852053a41a97f1a54f27d6013a083b4ef36e5fb52b51411589b324d4c991418b475abdd2784beef3b63ee80894f9add9ff00b55507d957eb4f4fbf437854ea1df4727a54ebfdd5706a5fa3b63eea83f690ea67c39fbe5a64c094b600b134b7992a61f69e298794a7fdf94ef833b15c758050b9972f863be343e96bcb4abaf6afaf1754ea71f4f3fbf544bd58a4aef23cc67fcd27f630d4c7cb194c73c8ea552e9794270575f27bdf26a7afc3aa757393d3e3d4f58de5a5be2aea2dbf8e1eb8c2a3aa5faf8eaba6379155d73b555afcebda216459557d13ca4176b4e666575f7c3832487e5c3e709e261d136a8b6aa15b242364817d9222b84c370e57b48ac57ae13aafccae7a8fc8a8a5ef915bda3a2ef4f0f895f277c8c9f67e5c3d7c1aff298e55934cfb545bbdadbcacdde6c2eb4399b0377602e465be5e080bafabaf7ea55cefdf043bd43fa7bfa78f0e55265cc1d38c7033056a33b6ab59522aa81b11c1744f40516415bb5bec059ed2b032c02b76baa8bdaedbb41b91d959cf45925b4dab2d557f8423518dc767d94145cc212d8de1fd2875f3f0c9f07098f6cd72f85da93d5562569bbabadf0d6d2eebc1fef471614545b5588c7a43da1d20bf28abc22a19b77ab2db23492bc3492f4cadf750e89a4c7d38faf537ad297f063cd137a372f77ca79396f377a3b6fa792d5566ab7cbd1affc64ab1c9cd055b1fa0a751df5ce15515fed23fa848ce877fb88e8eb03c348e809a1efb325eb7d1f1894050a0e31a2d54d141c3285b2907a928a62ca8dd41052bb3b82fb937a3277f0f0680adbfe7c3d5f23a0ad9ada5116acfe84e88e9f11d0173884b6ea7fe0078216b4df3794b24d99fa5e4e299932f5c121f4f5f180b62a6581b24075eac9dcc18354d1ae5f5351d096d02e53351fb7eb546dcad41753b5c943c97c5d23c2b0965a9272e227f0bb2695529827a932e22e96d40d95badd56e08defa5946a824d7b36a51600d741654aa926b8b2b4a054a5dc4cdd5441bbaa683b75abad2adbf54570575f2452f8e2efdc16560b70f9ddf677fb70f37ef8340e86356653a6ead2872baa73eef82b1ffef8ab103f92156c343d8fca9fc6377d69369b65fc2c292bf04cddeee3993fd568664c1a56ce5a0977436d695d0eb5b542045ef9ca575ec833ea71d4e397bea477467d7f3e0c9fc7540a573a5fd23ca52f5b45e012a4d19837052e698cde8c0a03833bda4a0a97caa5743672d848d52a93daa69f2e179433b2eb7f51ea2462427b39798fecfab3fca4ecfa2bb08cf97ad90573e0ce0b70bf00b2db8316642c32fc72dce197a0105254807b565b75ce9400daf56b3962a43a09b1066349e22ff1ebd36af5551ada95f4a2be5192663c49f9fe5c310571fa745312a4a77131833a70b7eb93f44e0f996f0c3cca575667bb7e09343ccb814747ab1176bf9fdafac8495e9dda7d5fa0a4dc0fbfa4430df2843fea49525d82457b554a35c1a45da67253c609a6333027b28c304803419dbb562eec4ef282b9d90f50908e09b32a86a9ca88b3360a0a3e69d411be3767d5378d3794bc3f5e552cb54bed6842b522915542aa09f676f9e56e9ee425e22e1f534d70b8cb2f7733a8ab2dbb573368219788b3aa8f392e450a2fb04883dce9e1a16e9df2fedcfaf74747bcf5c5158ef8778e37930c9fc6458d82824da30c2a21d4111ec7d4ada66e58551a61e33879dca0da9a325dd7c8649d315dd788c9aae5fd59610516eb2f50141d06a9065b1dc0169cfd0081412e100830f6ddbedb0ef104bf41f535deaf4630a595c67bafe6194b30173e0da50ff50e121ac6bf7a6707c90a761f07094f7d128fa829eef4a1a6b6da32d94e9aea286ed6d6d51eabadf0eff3ccda22cd6aabc64ca276a0d9aeaf82cfd5e2dfcf21bd89a47b48d739e2dfbf2bdf43aa9c9ef43cf5f17d2028799fe7a4bd565b7545f50eb4a69dd643960ee4345a5bb1b9adf658e31c879ff43ccf83b5eb6aabe2ee9f748dd556ad7f354ff89a24fe7d1df16f49f790254dfa9cf17bd2a757f4579ee527d943defba5d7b9e3f3acbc3ffd2cbdcec863baaf63fad37d935e796ffa49eadc1c36300326c8ab579e86e13f8d63591a6bf052535856f2fd09a5c0aa586a07e656f48b82f3fd3999b214f8d37d2c215ca6be5c9d39abfe8446e0afb35d3d7dc459f50716be38d6b8ae414deabf123027e64bab2da0daaa33fc49483467d5137e07e2abf479e1fa6e933553442bf395aacd56fd3b4291bb8cfc752f12bb5d6de5aded595312db55c844ab2941c12eaf931b54de24bbbee7941671d6dc2930e86bd256090aed23ca02a8047482b6ea5796123cdaf5451440da94a99f6a82c12fc114440194be2fdc206df2f0af0f26018540164c1e570453a689c9c23562eea85f415a8a0a6a956862a676b15d9f6584cb2fb76bce5d2518dbd55d9fce5df46bcd4f7dddfadad5567d30565f3f33b283227a00850f7464fd16269fd0574bedae116765d7f767ca6881cbd42ea692d5fa0a3fb5abaa9faa1a677026f6066ffe0909a0f40a37a5eefaba4aa090bb9018f2205a7d5d23dee2514a513179a0b0eb5fa0c963c92dc17c81b9daba4ae026c01c0c764ddd76ad7f73eaf60925c1f7c75d2578bb462e90bb2e12656aa78ad59fd4ce5d17c859f56b6a777f5859e0128c95a99b8fbb4a30b765a4d1c68f6c4ac39bbbfcc80a767fee9c1a6034014419b11819a6ce98adfa3fe884d8f54b7047442cb59b32f57f82c623f35309a283fbb3ebdf9faf45d89fa63dc02c7bd66ab2ed15a1d99bddea2bfcfa295c7dddaf56db9b55a51ecfa91127c419535a9b0997841631b8df10b8bc34178c381d1718558166547061b351b1054d75e303b85485354f971b02cae9e0635c80cbafba8f160577713bf0004b07112e59e24c0519a0a9c004332acc7cb1216ab0020182d0c0e5acd5a0014d0186142f80603945625c01e587061beecce2be8881b62d826e78c0c489b61cec686134c141024770397328c43e1d130de4c21913216639f0b0042ea74e0034cf6686edc6cc20420f3be5dc7db86fc683a05be30117311f1a7b8979b31ffc80352532224ee092ca5c6a5e1050c0213e74468bd09917fb220520ed8b2b7e8cd01f51f7c58400ba34216c148822c1042e29d054a2f3808c6a378b14041da1412c3532acb833328640693409a595703f200215a2435408e7e18c82906234c404b44697d070496bde0c8a220ce48a9cd0a215701fd01246aeed0821501b354a824b6af3869000714358d01b85426f14478f280ea8a889682b824273340acd0d51035a3284d01222922ce1006dc9101ca03a2aa5864baa3be96c50968c312e8cd01d9d82025cd25d0aa88b9f2b84623e1e23c58c66592ce13227e2324c2302848516b32233c0a5cf806a35d05d11e5c7480c70e93f281bd1155b2c41c2811c8915e0d28156704998e840d0110fb2c58ca6a02571da14136651d8a444f1a403515c21250a5b13a12119e0d2856a25da1434109a820667004d613b630a1a10f19a2ff15a188b5951449113215c7a11ca3e11056481cd6d6ef4025cba4d25a673c20788891ff8cda1cc70e9b71910b25a1a65e08ea6c0a5e372357446319c358a1561a401118e18c55a908be239d7b994d2752d311dec7ce7537ce73253e205089e2011f3296bccd294e8400c191122705965453fc448b015c562453f14416352042245312b66459ec0659d853329908c4009dd8f112870597f646a5900c1091320242a90c906244597c590a02345b8ac4160cc8ca0b16646135a924af37057c480ae0081d01012b8ac424b8aa0a8d49658b17341a966c36209935a6d4913b8ac35590c4d0a24310b9481d126459223521cd1a2c8c90970598b6cc47465dc80a80082cda8092eabcda339ee0918b32a8c6e50a8c065bd159d8a9ed46aacc8e804255a511327454f8ae08e8cc065c50d99624ab24842cb42c429c902074ab2c0402eca12fa22259264d3b73377d5d8f4ad900a678bb86b12151dd9348644506d0b1a6ba2036a7f367d5bddc6dc55d6ddf671574dc10e5f63acb91af604db40c3bc3de0866f082e27ee1482eb052e29eeb3400df9262c36609180b3aec6a1082a638da77370d6d4ed8c353d7853703977e307ee16a2125410271f532c0c5cd2189151561a6be8ccbb012ee96c89f10437806095608914f7261a21fdec0097f4078910c85914e8080df2cac0250d5a15612c824b8aa3a248c5089714a732031525630aec177a170c29cd36e42c8f0a2d7156cd0b022e698dc957611fc4d12397806a5bfa37084f8c41d5c63104d36d35083e06bf4c9dd0221fe0921651239b0aa0dc9c451f0c5cd29b2e0632e69cd3de692d1533088b36f0e1cf9bc16dc2e405326f065ce820e3c905c30517304a238a219e30011932d8a63d89c8a0e5bcd65aabd7951de047952a95ea5e4f7b9e3522964084634a98027bbd62c6c4dc70564c15d8bfbce1ac1b55e012635a2958bfb6dcba757b2f59679c6549406170a753c6495bac250fef16bd92f56f8b60e9f3b6784b6058ba22a9149648a592480a4dfb567d2ad94ab6cf306bb6d64a9dce1a8b3533b3c20a06f07e7c4e2a3a694e1b7a777e6941f7ef03bd39e79ca4b1daeaee74cef973ce3104a2348a5e48f5e974f2beeb9b6a93c934794c10a47a1cc7c963da591aa7cb4e1e93cebfa3a92492c2d1244e197f51ac40c89bcefffc4eddddabbb4f9b4591cf7c24f000d73d89c8405206194c7880888c25689139650446b08801115600e10912056420416793570f0c8450810e8a4cc0840b9a2027928d59f40821eff3aaf80108dbf32430b355cea2f3a73661022508dbb427132839328adce0e706392661ecf604f0d6218707841a8835c79db57a9e32b55696bb755b6b5da156696d396bd76addab957edee7b9bb5f1626d4abf5c003b88bfe004e68ed1be6f9ba1757e2adfa9ff5ed5b5cc579b81b6a0b7b3397de9953dd11dbea5d5b3dd0fb56a8dd80ebbc02d37790047e9fe795461f4d1487c3c5b066a6ca8dd27903ee86fa37e070e207de3065fc27ee86c963d2d8ca136a675dc1c24db7684befd6a28f7a16b700d3b7efd45a1b84b5b6fed41a845a83506b103c6bbfd2af9ffd82e0cf028b40a911057bc4404bf53b008d25c00a76e6fc405e4d2725bd9f53e67b72c6a73f0b54b96bd6fbf9ee9ac4745b6d06abfe63583a404a75dc981c8cf1040455ec12bfd114ba8b316640c20930694fa2315a20062eed493486124163008df18383a05d15c2621546612ce543030318739105388351158b5de2b738b8f72dbe3318ab30b5334a9b5f547f8cb67fc5592d76597344bb4ad9eea5f5d9ee56c672438c1ed820084235b8e2e6c9609755e80647ecb2d6ea12777fecc4767ff75b925dceda5cb2dd7337e2a288e843675dc8764981828e7c49936ca742b4c80b10ec92daa8d1f63f72ffe20aff7c742fb2dddf814a0f02c309d22e3dc97617f2a1fda52fd9ee45dbdf6d7eb3411076e9b8ed7ea4f2a5e7a2acecaa2c8c21f79f4aec1abbc6b78c35355a1e35d6b47ca56154b151596cd4b38c352895b74bd46314ea4bbc518f52b9ab9ca8a78ff295b10655da2cbb446d963054b0597e5e60b3b0fcc56db1595e65ac61518961af0c0cbc002866c3c9182c30c2c9182c3082a42b3f4bd45eb9b1577e0eed959595c71ed82b36c8c15e793cd6acb850d82a7f1a6b54c25d9636c66028b1f117461bbf69acc1b61879fa71ac3995b66997a86d32996cec52c73699fe7a51c6363d56b24daf324181b24dcffaa205dbe44509b6e94b638d69ced7488ea55d2a7571b44b5d14d9a5278d35259715c46a4477016097a84d8a6293485c84b1495c906093fe8e35248a4678519b00fbfebd8fd1d8f7a70cf6bd2af0bb11b1450c3e3fb23d8f68db8fb26db5b35d83b6080105884f036060718bf920091574a1c483e2f68591334866882b805c8468ecf2673e18cc1cc15da08181effbbe4fd4c0d0a701117840446ced8713155ecc3470832c886e60c6b827d10d6e008538e74b4f3badb5d6de697d70f72f2e510da05c95ca426056c4125a6ce00452c41822c13d45819da43510c276ed3c723205131a903921830cef09fb2ab80b2c598d534f70c9da946af1858e12aca05aa060856ddf6b18a1e36fc4d0e0881b110d80b00409a30f18e9587a8247b00a10074c3ad061150c31ea762728842845d199888410cda08d586c805454b24109a30089b6a30d5c92ad0719008342db1032f0cdee9320649e0c3cd0814f36c0012b83cef63d1181105507433a58829f20c1011976907be2040764c841ed496d2683192a1c00111d31912a529930410e8e8ca8e1714fa223222450814b7b121dc5a410b9796be2ae0cb99cb7e62e31094362941123040ef7241203675f10e346248606ec9e44626060973fe3b90017a0f4d3738cb7ec3fabbec4b73fe305a0975ea794b610d9c7a2584bb865041f982f142562babeffe108cf584c51f1c3f73079a4109b3c4a44589a57ca342bd416acb6ec7b59051a320e25b00053fbb654a107eaa3c2acee4df95ebcfe326125d3eb5bcbc5fe9eec8f8aef4f356afce954e3e430705b0be6eb6beb6b62ba48bf82e2417d2fc6fef353ab6afbc4efe3e8eeb6d194c7d2873909d38b9e94f0bd2fe90d26282846679717554b4c1e1f269b3e671caf738e77c92bf025af4015cbb7a044eda20aa205d1424d779ea63affa171b7f1df97a074188ca0769b97c59fa3e7a44bf619dff4e2c4d1209af298a9bf9bc6f1659834fdcc5d893e82e183e197b40e387e7c9f1c6ffa50af440dabf1a7ffde06774dd5f790dfd3d417feffefa9cc5dab1f4ac45fab7bfa9cf14f7fafce31bd6a07c78f5f0cf565faafa431a0229992a4d50dff90c05abe285495e01de853fd104cba7c6f63fbcff7a7efe569fc45eff490f893a8f12285e2accf7f1ca8be00f09fce71acf75acce72f9d954f0f805ce349c8fa47c8aa8771f998d5ff8dcff9e59f84c993cc7992afab2fc77daffb444d71f476136b0955042e69118c3a79b31702eae329d8df4f2a80d24de0a31b3165be50fbcf94f96a9c4e2fc3648d9f63cd5d9ed67ffae6beb8525a7dd5f82ff59f8da46136f42a7c1b29bd0a6dd8d03b48c250e7e08c04965ff44a4e863989d3dfd3bbe057613d6b4b86c993a6b7dafa5ea437ca02cd8d2f8c9bdec22fe96d5cc1f0e378a257a21efe9cd363fda7f7744e0dd5d7f0b637ce40b7e39cf54171d6f7ad227e7453e67b1b26c0be4baaf37dc2af5303967a1a7722a96c237bcd67a176d90ab6223dfe1e7245ca191feb1d24a4dfc19163caf126bb6b649efa35fe947990909ec7fe09fff839f847fca1cef937e99dfaff222d8d19bf29ff8dfdd3e7d83fa59ea473ead7d0ab4be375abf2eafe2455aff3ea6a9c4966ede3f3f23eabf7b1f1a9f7b9f13e2eefa3b2f19f5720367d8ed3e3c82bf027897126d9f2620d95cb8d948dd54b4bf6f141bdcfcafbe037bd0fcbfba8bccfe9c7efafa6416376a0eab4dafa5e257badb6be67c96e13fa1e95bf49b2e449fa4f6d7d31681a67b184b0a77006ccc77e7d951b3da0e72f445266f930abbc98f3711cded220e60f347c7b63031b4f164d5181cb99f3f1de670826653364e9876072149fc645bdd343ae3c8d8b5e06027f6fff01eec22187fa727921fb2a5b52d9b6259da5bea43f2dab1cbe4b26bd8d5c7a55163f954d5f238fa79fe30acc9374c993b49127a9ca934ce549d6c89344e549b6e4498a34f6eda76fa0c149f1661b9248324c86fa00deb26fc304d8ee1dec067fcc3ea822b0aab66c04a68cfd9b7b7056cb3e294f2a8072fa60c89393a650ce2088b68e11c061cac8307d5a82114c9f264122fd9865980cbf947d86cc90e1cb30497a3bd6acc0d17b3aeaf0fd0edf7b5ffaf0d32b50c3bc56bdfabee57bc895b77af5d5cf09bfee2069d13be2937ea7f4e1f75831cc2d4fcaa867c9f555b20e3387c903ac2f3f0387c9c3c6b6d686dff239e1b7d40fffd339a447e91d7fd224c530cf954c497105ab3fb7e34cd2c707bf8fe97d4a1fbecfe97dc6f7119ff434be922749ca39d4967d31d331d399e907e7498e7992241c4229b0c7120aeb3b4b8fe76315e214a2c29e4458c4886cb33d896cb15dc59e445824d9ef2ecf6d6c7b3f998431b43dcd836f0aa876d9432c16db3c04f3451ca599636c1dc14718818e304353c9b36fce5ac3c08c30d0adc29ca81856cd08314f0209230cbe51a71c4fb06b950df4ea867f757be189216628d0b68ff7a177767cfc0d10176690e1851af269be003e841536b200ffe37bc820df43ea7c0f49c3f790357c0f69c3f790363d766c1ef63d7a7c0fbdd3030131c07080fd2de8554e0b6f803780de31c0b7f03d244e0f9980ef2115f03de402de867cbbf81ab22a0a05e419161309c8343a790517e464580c359c7c430da0591112c081097c9361b9871fe8b64da63213d470cec247cef24ff98016a9d567ee2a51ba1c18c0a58bce45e7b273d7a446e84f14513240240bd99e444f76ac3d899ed8368cacbe1440034c6c1503da2e3baf2207538511955d2ae5d04266a03bc7e778197ce7787147def13aaf64d0385e7fcf8e39abc6838939ebf3db78efabd51e13131303137b18998f5ffd9d2f9b5fe9d27ed63036c3c8607c6c8cf6916d72ce303118194c8cb473976589398bbae8b2cbce5926c870e371681c0f24ef4c253768322381fc4d5e5518ec6d5ee7e67d681e1f7ff337cf6323b2c8dce52a56a5e115f02e31cf128bc92c323170cc972c3118587c9ec6ef380348c68ed12c32673d8de722a91ee0fc9367ce6a7500d72ff30f5a7df97879814161f3a8bbc208c1d476315fdefdff2ddf82d2893819e74b98188e5ee504799cef21fdc52fb7cc3e19d32723f3c998be2f579c39e604791cbdf3e3836894aeb65a663f3205aa2d9cfff1b3b69ed66a6b923f1e1c6b60416a36efe34b5aa3b611679238da56c3dbf0399f00cf799bd749c0fbf839c216f034fe23d7d70f9cb72fe2e4557d9d9fe48f1ce475705e4707d13c3ae2ac2af54d3046dc55e659add4c1ed0f03546182fc616092f8c30cf9ab460d86c8ecab79e69f8be0641e1f8ff33f328fce07799bfff135f8781c9d8c24c7c7e3e82099c7e67fe89658109ccff9f1385f1f07e783e81d1f8fa35b766cfe879e55972ad8fbc8374f43e6b9791faf80cc8324e7e67d3c0fec6dde4557ef75d18d366c9e06d8db681a6ede879eb5b5abaf952e555997b86a965107c8d39145566d2eef36e1bdbc9241c72a091fda079715c4c8bfb900fc7bb68eefd937f2047ab67e91e2c873cf11869ead9fc64596188b8fbf5ca4b0c42a8bcc45179e00b76480cbbffdcd5d391e48b6f939d2e0e5a630d242378e3a367a9503a405a332804820df438e3bb2f8d9b644c71a980fec6fde4da88f71ceca51759e7b479e1b269730423045db7f01d907e77d74fec7e7c87e647f2e6184d8fe2fd986bc82d5f02b9c49d6a07790e400799b0ff294b4f9950e256d9e92367a0709ce247d14f0343c90c73958de419203fb1bbdb3b38047b282d93cce246d340f121e1bbe061f6ff3b067c0ebc8abffb95f5ecc7e64af3ee7d299d842569f6badb5da9898afb5d6fab5563226ebb0b3634a9e9bcd3ad41dc3c49ee30cbec45e3d8dd7fc35e7ac172260fbab17b27a3fb285ac3e899ba7f19c573f571a1fe1dc555da478cb71f8e8c8aeb9bae8606649680cc8403e32d5e93ec803f914a62ca0066de3432b40f320c9817d029ee7e6739e06cd03fb047ce9331bcd63f33e7e92feb0ec30b2faf24f614a10ed2af8e4f49009a8e1c7c33e07e76f70f4aa5a9df3634747efac603adf43e6e0fccdf304813d1094843d0f8e76dc0fbdaa7a078aab2dff1fb9da6a790dc8976ec3f992e274b47f8e765d6ddde81ad33d4f105d675fd618ec7134105dcb3a83691e9bffa157f5613fc99b9b87691e24393f1ef63c2bfb40be87bcb9c1791ccdf343afac5eddfc78209ff3e381e81d2431bf03e47fe895fd04fc2463740ecefff81f7ae7c7e3e895d5301a5e01b01bd8dfbc0eec6f340f929c207ff33cab0ac3799d9b873d4cf30481bd4e90cf817d9020b0cff91c98cee7dc6818500d364fe3d5458a02328c0c66b65d762e3a4ff773ac214dd1c93039194636a5c0624c9376cef277d1ed5c6cae42b9d64223bc56235b0b901699f7b9de2a947a542b0e48a61d9842c48c9c638e8fb7791a47e9449b0c23dba9300c4a5751bbda12ab2db2df9374f141dad45caeeeaa0e0d8c7709137bcd25484e10450a9e98224919a43f8c6cbe7a8a08c10629a802e888082ac801854d1f489ea488f2791b5b01d6b3285e7a1b7935838daf6fe36dfcb7baf1deaf64f8defbef9380e1f852b4edf4507a390b14d9d5023f1698ed4a81d8ae626caf56ab9a4b2fb7572fabb7b9d65614fcbd60638fb9617e8e3fc71a4dc798117ed697cd5b21313fb75744c7474e1106e623453ae230393265bf7c1651f839d6cc9c70239774df2851ba1b90b479dc16c097281d69575b98480d9ee51773cedaa7e6653058950780ca93a0f228a8fc092aa58fad7ce9a2bbf9c896940eaf64a02ff332ba9479fa3dbb44e972bb24c1c4844ca0a027a2a4c0a7c7b229e32e2fa6ccc0254bac9af0a22d619a091a0be12430c0c4268f00c004c11c81a1c134317998f03b66bebc7bac41822ef11651d0a56a8b35fe045dfe167fce97f893be566ce3096f7382de41e7c7dffccdf7e871c2e7bccef7f86923ba905728fccdbbf03df20a05bd830adf636e9bbc3a412701e471dee6576cf50533a36d9beed8a175729097c96f42fe33a60ccbfbcf124f96200f24dbbc4e7e5d6df9cbe47103d17fb3c98ffb9c0c9730b7ed285d9e6d7fef092e6162db45072373d70e32cfc3dd26c01071178ff78799b96b00ef37f75ac9d5d6a8f3e38300f939e6f4f8207a2747c3c880e89d55cecd0379207a0747c3c4f40ab6cab1e4cd5bf246eff840daac5ea05bc6814260233d041ff8217b48173080596c6e9ef432595cc9f94ace267ba409b90277cb6831e62c133201de265b02989059789b5c318f2cfa0c208b3216dc652a9db6c423aff003c8af3721bbde263bb992ab2f98d84a6e25b7fd459915b2f8ca62a6db95552ffe3077f8c34c9898189b3232796e9bb7a48ddef181bcd1244c7396bf8d8d5ee1a129e36f63a357326fe3824d8e91e202f0a7e30bbe65748c0e350546c9c0c864340ccb0bdcf24fe37868f290797f7cc45d3bde1fd370127fddbc3f26e22e14de1fcfdc35f3fe5836799cf09efa3247eb4b554b0b0b005f5ecf46c297ce821785eef03fbd00f2937637d91b7215f41c757cfccdcf31c785bfd13bab17e836e16f7ee78ee046dee8550a327ff33b332108c246debc0b28646f264f67e978f126efd01fac302a227d08712492991767f20e5a4d27686f3665eccfe4167c6afb265b2cc0f82177642f89b3ec9b903d2167d997c9de9229635f472ebd9f6dbd293c23de8a4259f088983bec5bb1ed074097b704ef8b6dbfa54b55eac8b6cff26c486cfb00f06cdb3d0f6cfb247851b6bfcb08dad381a5afd9e623eddbe45f3d1d6d5e3eeb39bef01f9385e4a79ba6c2e4789dbd9c7bf6e732c7bb9057392ebccdaf6cf48e01983889913b2ebc0f5a08202091d477e15df897237089429007a4bd1c69e01206c6c75d387429012fb75f7412b227611f8391ddc8738b303ecef255fdbcaa1aa5731609080c63354c0ca5dbfeac2bf0f7254c4ce7c7f7781f757cbccdfb98e3c2dbe89d6945083a5004d285b97bf46c552e452072d420ed3014db658f46a9da254ae72dd9a58bee9e483b5c04c6098f885dbae876f048b9d4119276a85dc2c474ec1226e642ee912739471f565b9925e22c98989f3ab04b98d9765bc45930313b5bc18f6c816aab0044bc4046fad0b6479ea437844bfbb36d90a5a181a915b2b551ca0bd916d5963f0cd9da6acbbf8417c09027f9420e5357db35d9de2c6e92242d3025b3cded6c754be4b63f4db6bbdaf23740f6725001b227ab2dff16b2b7b2020f0c4c1f85dcc382d7c00371c6dce995767ba4595b36af6e6dd9595299cef2f4ea854954c66da553c5af3fc9958ef390de7f92250f7efdfbab6528c04a8616b6f72d0809dfbbffe5722583f7f7bdbfba024e54c6ad85fde54944c6d116bd9c430bd8a5980d3111228a9332aed0990194839815bb3db9d893c8c90744b7ef0ebebbfd3cf02aa18556f264bc0ec6224c670c41b1e0bb408920874b8a83d163cdd5f70c5cde9df18f35aa0de052e5dd1c31383e0d5cbe0e960a37c69a991ce0720625a4b2450650466e7040f4e2c750018315746303b8a42b1857804b8a5b1160acb97a85156c8c359ea699b51e634d0c9f0670398b5239cea201a142a8744cf3a751ce42a5484400000000e314002030140c88c462c158288b7355521f14000b859c4e764899cac324c85114440c31c41800080000000300644aaa6c02188e4181961cd6c6edaafa28b4bbe28b41ed979d7d036bf25f95f10e916ee22f4a890f0ab90c7bdf099538f136616b575fb223641cc861ec8375c4e4fa8f7dd5edef94e40908430cfed6b2aef4e43ef44538ca396fc020e07c80769e01c0a621bdbb9b7864e74aa16962a740eb167f5fa23ae9e6941921adfb43a4d6b83b8e92510e08a4a70b8bfe781df07c8a55483c5c1bd456c6850cf3a09b78ee41933f9acd2e0db3dc5fdce3855abbb5fd339aa34a3cccb7f5851bd4fb182309a6ec8c747922d804bd9f1c41495c6d04e1276fc7c6da864f0d62413b4c230b7a72996ab1f83d04c27224a910174a1ca7932fac12eab4083cad6c49cf53f2ad6fd69233f8490e9d6f055f1101728bdd9aad027415954b2823019aedd23224723a806049d41a928122a1202e6c63f808919f03c1cf8d690a01a5276c8bda41716bdc166770fa20689b5fa4a2d8f7b30fb0f2c6a8ea628eb3875b188f1473fec750abfafd0523453616ec98782668ba65cd58a7fc2326165e730cdaf0155498493e6ce80835d4c12b8bc4127b67e043dc78a2975f4d1c9496256d9b64305795ce97c9c42842da5fedd266a741070a8ac582931116e07520a510fa99a91e1abffdae5323ed7022e424ada990d4d5a07b32957f2078f0f1becc09de1810a945918a0c534ae67ac5bd483e8c269ff0341924c79b42a2f87d105227c0bd384237ad1733ed7deb4b1cbcad89bde28c0926268b3df270d91224237a181af2d35df207160844e31f7bba2e894da6d3de01b08bf3ee9112744a71dbd4a2019addb30d6daeeebff5f2d2816b0d89a42380363679ace656bada6b32094c12dad09c40cbf2bbea0577bec0616449037ecbb22c2c555ce87b5a42542570f73b0100683b4416d85e5fab28c5ec6a53eec9650e315475137ac1e3f7934a41c7f9079b4a4b010ad9163feb453a3d95f2ba06f9b0f416e413ce414e8a66317be3f4be59433338af5f83f7ae506007f3bd845643a506f400369b9172fa5e48b0bf2e0cd98d68501031a1b7514b00d0b1130b5a165a32a52909ba69cbeb83606fdb51c0b73b9e967541cb1219a9eb59a26f15100bdb6dea6173aaff8c39948741385b4a17788ab3a1c6b29b7473e2b1233cc430bf79ce743283011e081eae0c5a203de2eac5964cb81e282d9d7105f73f3710e89e403353134e9b4c9bc7f1092746a19ce74a23af770fe66781baec70a24fbce088576e8b72dc0467371773159b9aeba9354b53f1c4f79964fd54ea70aadf8b1f17a8bfc81e03f2667870824d0a7a69d15467f875dccc4a2a9d4111ba83795d0cdad5f04ae154ae9d55d156ef049d2174eb525103bed465e5f7ba4d21b8ad1e077d7f9fd45c15575ace49246339ec66e97e171e41029bbe0918d4581d918c58b5549d0aae6b587bf59ad610c6ed0797b04bc00964c6ab8c678cba2b7e0b51404b144b7026f2d8094abe4cbaaed65fe1331b6f8259d18e825ba5fd81c270be5fc6a963239cb6dc3402eef8a0e492411fc65fe9a86d4ee65d694be1a955cda78b9c2d923f826da16bed96f32af6127ec0425a79c774b3ece60e4b801c527ae0cdcd86f4e50a85ccae85b6bf10c2c523ac0cc8c99501a6148cd493667bc56bc3ff1c80f90f420cf57bf933376071a04fad34b9682741044ed24d29033c713729cb211777290ab79e20643ad34e4bbfc02a8d1378f62ead329610dbda4b47160872f02743ac97b4cdfd921c1be6ed71aaab8a09c0eb6602e3b51ece1986b8b274f72b601e86550639b14166257f672a081e5488add638d46f440a5d34ae418c8d27c06d4241daae68ee0c05d17566413a4c68e37073bc1a14c462b3a6b6e5dbdeb0910f3b5da0226bd7ad54b7d2430b10b346ab16caa8feecea3f2c788d04a819b2a0b010020bac9e56408f04aa897fc06b9dffc43e7096b636733c21954f2dc8b13cd26c85054c58a061485de344ec11b84b7c95589994a006a23dc9d62fc7f78bad175286f4190f905de7006a50db063ce11c20d3c957ec177dc0375140e61c80a23d30c93900e2713856bcb074a1f0df9e1211f8497289d57f2913374cdb2d7bd94ccd655e0e5192efba1efe6d276c593184fb6b46297493a322d86bf56143667088070fbc45e0ab780394aa9b9b76c0e2524374737b5a7b5a09ae4b14239b4e9209bab90f7416216668076cb7413a840fedff8aa17272baf8ab4c132224fe20320723d715e6e8132de0cf01287e0407a8916db1a2292d30ff07b4d8e007038ce5d4aa68d6d485c83e2ca5d234708dd78c5da5c504cb042d8952479a992c3ce0dccf7c18991b170c604a3c915faced98b3516df2931c51ec8ad540cf05de6e3e3d106bf95b4e5ad794dd0aba40cf528eb8310d3b105f0f0433da8342b92fa7f3dc91ac9c026182219929bee985b51c8375452cc5032a7d1a4bed03b9b4a06dc207e71178f21c47282644246933a8c022a61ba8a5a2014ef1a80eb12d4e0981c8a72e2182d8edbbc24c288c016e902e9ed7cb2c5beb847d934c44042c37fe08468b00e940e122d53a6220a3d83d75784f82a003ec1a53a6301dc95c0ca0cdbd90a4ae5a4b6f675d3c63c4bda5e49bfd3fde28d54c255ce201b35f67cf2a4f12048c9a88058579d4856d9e711e0190e5609b1ded71c520ad28fa2580ff78818a1ba0f91c8be53d6e57bb4f223058f00d28e671b4e7eee800e21d1ca52921da8821f2f9f418be00bff428e499d3c1f6612001bcff5d8e74349524ee00e716e1735bcccfefeb0bf80cd985c0d1f53950883f4444128f16b0ac2baf0119e7010469f2435815bc2e02181ffccaaf17d2a772199117faffb6e5c966ff05c204b7ed5d08abf06e6a413a6792888258e4325f617822a755039930560da0c986c91aa4e07326818a27afc4419902b2d994bca0f75be83f103df76e22e3cf7171cdd34ef95a275a9dae136565e69952c085ea4231f51cfb394ea1832757d70b02d0120f076ab32fa094a321ae143194ce0645ea8aa7c6af4ac9d7016b1690b7b6a7c449a5297df4f935b8778b5fdbfb6ff20001cb4648f2f693a81f674e4f3a4b9205a842663518c17c0e194bd0475da9f51f332bea9473a0ae5fc4481bfd32c8aa3cc452eff38b4d382d29b13e4b5cfd0225b6072187ef6fe8d7d48e0273208b54af72812d87115c64c2e383db4e60273f58d0fe32ab24248e0b536a88bc48eabe8618dc70b2e664e1b272a6598580e013cff86a07c84f264133a538507527fa3e6ee4ec2104812a3051631540954598e0a3aa0b85a702cce423b07df56e62040b931544cba38dc724f11184d034bd8849fa959f6280842257ff874f99ebc9a8cb3db4ed4c0772cc3fcf4dd666fc25a4466cda78de2955fb577f1ca84e19f98e7ee1e0b18361d28e4744d9857e4195f7f2f33e18f68726eaef9edfebae327a555d9ce9576b0a7b41aa1d157995deabcb0b95e8db92c6f6a101aed2f55499259878472a4a2280951c0f50554379d8455ad8c845f32dba842f0ec93a521c9b44e9fa622abc1075de4831ba9b91d83d2a7c8c49952fb59f4a1bb59079b4d0bd43e76efab9877ca3d76dec69ac7ecf93ec558d0eb03e069c6782c293c79a03760cf45260a38525fe28b37f27ff9e183312c16165bce7e8833d937bae1f99796be7c2ca8f0c0eb55375bab909bde7ee50497f6e963ed4439dc0d2a2560e0b7f2842a98d1f282836df8ffbedd8af7c77493eb7e3d71cf1065b8b3f1fbc1c35f9b42ba1ad678a48c9d8a84d593ab47f3a55a1d6a0b768ffb2c4396c192ab4e59122cce6cc579d049038f9f08d823a5c850060a576007b2a39aee91eee1bdda5be1b57efaa31455cb8a3c6e629711a6b1af8e1089f6e571572e1df7a815176f9c08a5d9cdf284ac775a8c7ed6538821fef5e42cc21f727644fc3fbbf4c39a8d9938a26ed0f826835da3813e1795d4758995a7a5a5ed8c28dcbfef1bd5e830c99fdac2ee38b607ce204352d2ad3948197fca339fcc69a8177fa0e26e8aa0f1f614cc6091f417cfa82b5fb7a2fe6f4c38f0410ddd127046be3b2985e830270114d5f1066ca91d3ce97ddca5ca9b20d72a851e11b8b948e058c0b76842a6e30d994bc1da4f75bece0530dfaddea22c13ffdf84f41e695c9f02964c51fff72936bcffcef95b05010203b77aef054dd6d1129b921c2ab27eef81218b3e720588794ce3ebab374db894299545447be7ef1d6adb47ff0644a87058afde18c584e0268f7a2050442ade83be73c8a3e39c6e33dd6004971dc5da1fd4e61b8ed9e31053511b5949190c11ee267d8bd81e77d1453dc9ad2d08f7071a677120821e81c51706d423451b4946d64dc9393ab88122493919dad2543ba43a85d7c28e3d6a99f166c72ec57fd55823c2689227dfc6cc43fca65a6592df5bc93a9075cd222ac6c33647ffa31bc8073642fe19c62e336c3fa95f8cc1b9d0a311a77d2d01841b0da893d86d0f133600f5d37cd39da379dbe4d24407220a4b60e0204fe34de4638507295476c8ceb1b8dfb2a57ba6e177734b8952ebaee2e2e44bfde556c8b8ad6678307fddcab8ef8e96a4fee7057eed21accc5ea77defd4ece0c439bc0ec79b3cf95901fba89ff9e168875a110ebe2f0b9caad1f1bccecca31efd4c58d8e5fed4a97db2fd96c958beebbfb0bd14e0ea6d8f6f9bf7dddadc17cfa121e17c7dfdbbf8c5b76021b4ca2143cccdd1b65865cb09642eadd0fbbac0050e15d40ffe07bdbab04fefd00cc72c27ef9a348fb9e94c2644f77eb69e8e7c9f6b6c4b355ae74dd2eeee86cb25ecf453248812e685a3ca42194b37a3ab73840ade36818eab83933a1775bf14aefedf6e69bad6109dc30dcdce4db8d68e82fc71edb771c6998eae686c6b5c29d0ec68d41e75e61b31ed63f6cce6e3c3793338e8a0e51ddf8856b15a680b469e8e75d47924c5f89d3f79c151c0997efa7ed4cdd5d68deb78ac4b1542c190b8fe433b7f6dc1ef06873cee5b5a7a1cd1a8131a813052c6cf24960f10987fe2579ac4377fe508ec6ffd2fce52bf525487b7e14e9beb6640abbc83ab0e8f0801a604246abb544ccd909d599d42860662c6056669c3ae85b80ff9b294116cf563a73f8193fa3b3162d9353e314c0cfaffb586ab523a2532ba85c379d645d471198d1a1a1a1a9b3ee453051ac44231ba9a4e90720ad92e912fa778466f84b7ea5f00560675c9bfb673973be2aed46f5bd7205debf55627dc33b2cbfff2fb1dfb0ee995a109526ef0fe0d140d7983997dd80e98aa43f082953e4ec415165f61d007730144931afd2a58de5f2f15f41c5e969c71d1a1ff4c88fdb53626d20be8a8bce8491c29b78740ee8099a71567745a7315122425316b4e30dff68dc0397ed606d9e016d1fc92b39558691869c4ceadf07ba6ef048fcd9697c02a42837a298918dcf8a7aa4f61e9901929e95fc6a3c4e17f96c4fb78dcf87f2f79d8d97471caa951e8d537e71c5aafae28dfc4d799a848c3c0200ac396a484b3c96c0142152b6d671d85100a61861228034884094ae30b21649b81b16edb6905887a8f2ed7ef4069ce3d224a1720f72a76aa58f4c69609a830b6828229e14ea7264132f296d8e95141375f4131a17794ea8a6e450a9c3c22fd1ebf47a4bd64370ebf131350f88615ca1b566a2af850d7cc6498d65bc29e8510c8284caed42a1894a1a3af3b81da4c8542b99e2ee3fd9c2d385739c920c014ad6eb80702c1aa5d37df538c162163af716a287c51845c6cd1d96232a32c1784039268468481ee3f9ac88d85d1cf7c70bf51c18cd5f69839311f387522808cc5ceeda3e1dba8e4a679fd96c5c11b030f3be41111b90fcc5088c083a24eda90f23a8be66f1a077a989876ebffaf4cad4c423c311edd9ba6c8f8794ae5a4c6ae5dd72e28c1f780d80ed4330e6ae1b05ed0fc74941a240d389dbc2c2dbcd1f213787de5e907cb2dac792d10e963d4a9d9724b541c4d1e9bb18fdcb435c19a63ea2f141a346bf95808b6e72e6b6ffd65b26edb67532676440b8ddd27dc75c403ef4fee00ccfe1c04cc521668386c1e8bda6a4ff5650f73073654aadf151a3e665b55523e523acc607d643baf145564e83f911b9a24f06a8fb311aa08f48b596290c493f1ca9f21f3bdccd57d43cf34d380c0018c9d221c1e8757dbfb0864cb5655c718547403f23374fd5a56e7bea81b41610be72064e767a88f102b2461267b23bf2e47365977570f88b41c465481787ae588f5c745de2bb7c2f432ed04a6519bd92c3dd0068500602b4da0eb2c180110580523d1a8e0bd663a3f2f766f2b2598d49487d13187e64613716b6b3fd0a4464a009dcb39e16df2d2423fb7154f20bbee75c453b004b9d5e879a033624770b10b0190e9fbe137fe2bd98cad37b01e3f9a042614d59e24899219e448ca42dd4cb700e866d244fad71747d416aba1e85c017d8f33c132c45e18417c289f0c2d572699842d885b6c0918616c03f992180ff25c729891bddb74942b09ce98b90e77ef91ad48270c84a5a928e8c86fcc91e0471f985856abdda521717f00e25a071433d35aa9e23edcebccbee67624ad262fc9a3d04a1b0ee0800e3bfc1e50ff796fb9d0fad3d2991b0effb88b148089218da3c623622a7ca1912c182a4f1de382a04cf508e3b61817f34dcd2b671ed8dcc812c7f18330c5086c4d07f019306096329407307a819270edf05c3f8ddf8cf8ed4910826eaba2780840baeeb3d386ea7359f1dfdf929e2ea4439fb37e415777abc3f551aa5d1cc81bee055014dd043ebd977376b712aac120924a61e06af20bbe7e0032a6e8fc2122c44041049e23c026f1d85f0fcd8ed1d51ffa708d5a96b5b63d7d13aea1f8f4c2439909b70f59931e324d15eb538293fa93ae7b591da34fdb149e382f738258a216e2c7bf846af43a4c76b49230a344860135e5e94e109e09eb239e3d14c301ce1e0173e499eaed86e1ac7ba96785cd7e816f9c20fae8afd70426af20089f31f4391f1ed51a5a1137b7535d71924c01516e94cd6917d4bfeadcf3aebe0ae7479d2f5ac1b1b2a730393a3dd1e25b12111d8a4333f51c4f2b48b010c2bbcc4657cd24cf9b385a40c2415a6fa038b84e6d0037504ad981b9c38f7be8e48e1061aa42f4651c40c61725d1019d17e5ebb943e591acbea5c63716f786212f58e653f74eb973dbff74041df50768bd10458b205c17781bfaf49187a65b81dc422442330e75a4893b5c253a1dc03e8c01e7c13cd199e5e4a3ee9536a83f51a33c7bb8da8cfe3e277433c477f792853028f468aca96c0d028e186a9ee3d00ce9a70408ed6b2cc4c36b169249ed71ae86d05ebc6e46917a267be02c3dbe6cde60e4630044c5f4e6bab68f05eb7248d70badf88438b5a42a48ef03ed2977befcacb90b7b52a9ae61cad3c50f642d45e2d91af0aa24d4d4097c77640c9b63df7ba12c1c231f20e9820cfd51f013bda97a40d4a6d91840bf227013e7aeff2e69c4195086004b6b15c0ad925503772713ac636bdb3d1118c2ccc98b32c5d22250c868f648fc2fa5798d4e6a311cc85164c7602b2847b03c2330ac0d76bbb4c440117b08615ee3d3ad424bb6ca9b79a8ab998da322dace2ed7f59f6ecdbec3e036270335cec03cf9096bbe6566d1faabffc1f6d75cc03484b35e55f949390fb4dc457946a518ba02be154487404653a5f2d642cc8b32cf1ba87ac18dea9805bc08e7d53590cca02fd1fc9c09bf05388821053f4377745ea214de612024fc0399fde8393a755e416a0bff8af0f51d0a4da10dc0dfd51ffe830bdf3291e0878f7f19b05e363415c9dccf3b682c61a106736908375db2b2190288dd923cc9b37bea1c20197ace0aee958c214ebb0fb155139c9ff2f11b47ee98975cdd983b9ae3b6f9c7dc687ac883de6645599fe80747b4f297ab849d4e3c239ecfb063c34968f216a7f57b44e83cbecfbf102a81e083c950fad8c61baedb207bba8235a9e4eb489cffe60a2cca934012dff7feba6a3d05d475605ff96ab40f5289002a9255465ef719c0842cab0a27f6fede2e987817dbcd29a4ae5f06c9d02f30b960a4a21c0b31a815b81e385de81e37c6b88f9fbc4d8af1bd834b716e910203353c827b6b2794a1e1f8fae73972891ed7e2f997b71ca399bc2c68b701ab51c9521f37478085c05b7ba042c178dc781000653cf088f951e6599790057401d019d0c2a1e82e4961c065c172e86abc5d6bf0e39741f1c596796432f873ff4d44ecf6216222040b41ce43d3879a7d0cbd44fe21f707dba12a4549c8e0f55b6de5f4f0534f4a5be1d73a5f8b7793d19d8a12110255ee59d16e7e8d7c3ebce0e9c245bc987e7dfe13d80781b7f72596d7d4b960602f5ea14e792b4c1ffb507ea73dd18b7643b22e3b5fed219b921ae8216c41da0bc173907413fd438ff62d7efcb2d53414fee999519d4d07c8749f308efbb61ce828389a205f4942748fba2d395b61f4a08387cdfa3654910b73d4c31f85abeb9781370d6d5268cfb435b8de42f292f9a00fa46aad0fa13ebe001d559342f29889eb04e1c90a386e094060a13b016af8566377788b95cbe13e403da5d9528fbcb300b1555159029930ebde35062c84ca1fd84e86274c41fc4bd4ffe7ccab29aaf73ffc2b5f52615a67ee7dbdb3dbc9565a94ddcb8dcc93174cb97bba3ad3f20c85c8cdb4f9b5983e84f72155a6097dc3e23d3470572ca8a11361a144b9952e772a2b29bd7a9a57876274f0e18e28ba82b8b299d92b1c4109ecc000fbeaf469fa5b16672390575f4845b4da12d3561583b581756b34752cec247f6e1a6b4eb1184f0eb1df968f726f281ae5de1b6c780490b9ae104559d015af6bbd4e66c1e2a7348b4fcdd2de1dbfa87657a8fe43dff97dfd01239a447bc7b2420f5759cb1ea011d009c53ec48f0f8df52202389aca09c648da06f3ad1a26136038fcbc058a78de49592e77efb624efaad9571bc4f22b836608c16657bac1c67f03fcec2d769c88478323bb82dfaea9b22c41c5ce454098ad47b4364bd0e52baf052d617f0532229309950af87586cccbe498179941e3596ddd696c2533ead8720f63e4fde1fdf0b7ef94f72b25a46a572209f3a7803751dfe8bab1dc4ab609403ff490e9e036c559cb20faa6de8d41680bbe5c625c1d6793f10b1d4fa1e600d46e52445b94519bd5c83b6db9b702c8a08f65c1c002c572ace2da0e372232cb7d65cec9ce414a9c6959b37779abb99b25c9b4392c30e3291a4387f905a77840327d22d4376f5e3d41b8a074610c3b0737267485b06469cab4088494cd9757cffb4dfc63dbe74ba42831fb3c75d4833b82e395ccdbe0b57a10a71671fe70a12221888c878ee3ad18e2a7068a5fdef6756458b2110858768f505bfff399dce0eeda52f1c3c0c4ae48684c223cfc61d009580d640dcc95732819f313bab6290c29e6d6e3fddf9188585a31ba2661787de85ccc58a37e1ddae422b1061921011c4868f3a17290a4ec47ce56a36e050cfa9b8ad9a85219d50c44dc4a41ab6fc01390424072e960e558ab2874eb6662f44f8ad5e96b3fb2aaec1ef152e2426eb5583f66f62ce944e7ecf61471c587e14db53d68d15b430b1834cc5bd7f8c3231cda15222ae66e367de2d50cb7ffb8630420e26ec3e6fcf442bd040324aeba56e4eadc27a3128b49e11b6d11194082870466a6e01068d8d4415bd1db3e7e0920a3988716e53fd52a4b405e4960ac3aae5655a214ce3db4fe685ae014919505752e81d6ea657c8771cea6a81f351e8bda85b08a802143d85948f04f58a580ac72ba8d3c6a1afda51353f2d8c328bf551fa23e2bed4b350c82854853512a058fb85182123491a8476c0a4ffa169a3642b9615a20f10d772fe6e5d16dcc871496f08e40dfa360ebed7d0df67c4f2c8c0ed2db83765370b85c2c81a788471c08d6e51dfbc5e6358fd4dceb1b47dd1a3359545dfcb5734370302c4bef26e7dd7d2c316875512f7e3b7d0929db59a1daaa45897362299f967e5569238f6da3a549144169bc8a6319351f4e3b7eaee7eafeea95d1007d207450da11a76f2cb8048e0711b65bb1b718318c7797579e33ea2e2f3a8fc50a887fc8affd8e4532e3c5bc715e1dd961fdebfef7dbf4d0f634504e2359f50de007be3ee8792b87bb95b973bef1dbcef0b3327d25e389feb2876f2980c9d210d3c09c0867d3143a6b940d3d680cfee0c2c5f08f4bc75ab4a76232b92b4bf679c636124f6eca248ec8957b6f0f456ffa871fe9c17183e57bc8179fefcce34f69c362d22024b652664ce2053fa886e28fcfb46bae7eaf4e24e5bd911e0c038ab1dea4f0ef49bb6b223c08171563bd49f1cfb9a4a65fa3847604d43ff7a8e65f23e43cf4080c3faf6f413217512dc3220f6f4c97c6dcb471488675587fccbe9bc39d586f2b07f130cce1c552b2afadb5777de93fde037815d2d17c4351e9750f1a4e13d3facf8c086fafd3043bb6b92618761634914077e57e201403beae3a841ce6c049a9085de04b26dd7644a562841af8a7175f1ac38c343c00e8afda63bdf859e7f2d6fdd93afe3514923dc00dd9ea2225bc49075c0b4f15574da927a87590690f4b08d9a0d702f824cd0b31e678f478bdcb40444d43a4d057d05ce3a959e30ce38fb528b819574bf2b4c33626b4eb75847cfbbc57df60ec9dc2408cdeabf4d4b7317e62b8a4b6dc3a9b5cacccf27569528596ffa66dea00191c8f713dd2e5ecb1d1d41be8bc72e1343da6bd17d981e819500c8f7b0d3e5bcbb2430f1841256eeb25d1b339bb9401195a42b309860c2a335b00a288e2c2205a73d1e13fc678e7c372f016de47583c0819bf8b69222967a1ee250df46a3f516e3b0e8a8fe36c3e362144d29e05beaa0ea6f7ff862cd6574252df2b7a1ed7957244b48bd32736d59c164163bf0fa1b0af8068224bc283547c79550fb7a2464bea7f3a29f82620adcb21a30b38a1971318d2c13c0c30907216fa79f7b016782c27f01560271ef4500e5c11673c10a05f55a1c6e43447c0f27fa82255c49c7c95f4a4834dbce04df9cb6ec004fba64bb8a54663e67a619ce3f3fc5aff5f7fabc4ae0a2f241e333b7cf01dc667a7a1e095b1bc0a4a908bb4ff5904d5c193d19ca9cae754735747ce391f0ca7382ecf5bc7e53aa6dd4ccc2e664745d4f6f2150280e349a82fb3db134664a052d11689335410284a424d41cbd699b9e269c381a4f3799108094bb7633d4307f15f06d0ac9c51f7a9167958d6a73348ed056477ab7f1cc9bf4521bbc91c051365c88e761c445ab179d43bd3940c51c4909cfbc152d281b30069d12bda0e361b4c0f09c101b795606af7b5c4d34cb628a7e17c55594ea0d56e27d5adda63b4ab8888ba65c305f578ed7fb08b8028df6c1d6fbfde5f6b1716041060a4db3db2e77a3346838ecb424a4e879c567bd9d22035a0aec04412b11c16eb46756674b84debda992d549f4ddebe808eafb8165d51ae79b973d0ebdb5549e5129235c03eb825d0b63e191f8ca8f5880320d8e7d5c226d8b2752220e6e7ae281e87fc532be263633bc63f572a5534bc5b59432fb97e877a5d649bd5f5818beb7b88446fda1247707161d8105a93b2535a94bb9bb67cc1f9e8a03257263fdd14a1e861e1af7548a2f93d4f8e6ba88a6c10fd72709cb962004003577a70e78c9eeabab296cfd8ccc48b0c6954c1e02612c19f1e84f6bd03949127c1e7b452573b5fcd19f2ff45bc5992236c24407acd71fe6b5abc288e809e0ec3e58763ee8aaf837ba6f7255e4621b787a02b272e67f34decab9687649814e8b51d6430a08798ec67d783dd7ebd9aa15edad076b2572a551b039b16554f83f3de74e808d13031cbbbd21833c73a5e979464e24a41ac0e672b6e3b3b8e42281bedadda068e72c8698db2869d2c28d16103b0466772090871fc62f0999c39899744b4344e239def586a0b86ad623955a3b5aeef1deca030b10f24876d30d52a0476bb12ac21321e59fcd912bc0c6c7bc18901e953501fb057b2624f053735a4e064e324c8f0fdc59f3de3ba4a4f19ca2bf59b2d88970a5fea1a4767100b53f868f975e87c16943f7301911a65bf1974dc9b9ced20bd668f1e2269d4a03767ecd4463ad946b90231d2d1418f2b7e9cc9ce8894161a33b19968087d6067c525b326b27bc14124496cd86de84348450da6c42d573b489f3bac52c43bef76c3595787cfba5ce8ca727978f5cbb803eec194b170909d1d26b57af4dff8ce7b437089e9748590a1210390ca227c1b908eb1bcafb39bd84d83ad6143b414de1e920619b727e60591137b6fe2beb59515c351c1dde0974276ca851ffb80b64776d7591a091051d7c446b33e8f80a55647f8bcc77bf4a33221adc3be4b28778e84580b1aa99ac04827a755906575cb0563c2a629f55533fd9d0150a29a4519846ad7dc0dbc6a54f6d54c76b4f0cda082c39077c4f2a909f6c516c6433837e893c402ecc24cea66ac5dcbc1d3fe60c415c8ae23fc5c60b364e626f09890dbcc32549ed4143041f4b53b13777c2b84e05b837270ca8fa6b8c4588939e9ff75fb5e0f35ae12e7575c143881d9e748569f6fad540433ad6d08441c830b8baa88e419e70add0d30a03529e092a0ebf5f24432e69428eb3bd1cac6befa24da51690632b3225a8880138d09fd426caf8cdf39cb0433ae72041c7f9007073fb89f0819c3edf099cca779b413d43db84336c380c3b0cdacf556e0f0dc2002ed284f56da2101808aad0dec877c1c1d422d17bbb90657c390454720aefe61985fe4df68ddfb5534cc5889982521b4c8abfb82a792b2812dca4c0b47e1595318bd795648b4cd8c90391ecd2e62d3f5f98466e9a2e79024c0f54ac3bbbad170426614dce40448d7c7f70e2a197874471df9bafe5dd9688ba0f45a10260a98e447cf371eb58c398d4a34b829d9a38d990abded63b461dddf7897ef11f6f00e8e1cbbc46b17c69350fe31e5dcb7d9097999b4be21e963b5fe68da3f3c78f2bf3093f2e8ed1a90908aca6e0c5749c072cb39bc55f9606e2d6a8e4e7c78744690efe1e39955f2c457eb1927931df5fc33abcc03a400ce6b98a5d589715ef8bc2499224344b03c2372d14dd711976ff37d3abfcdee664514260326fd557247699d81be762b8550612d00c4b66d13802719aac6958e82bcb5c8c3610d3f0f2c622f1291ecd1161cdb446368aafbac2921841e8d094b1e945e0e00ae47c1bce0b9fdcde34572c00bf256509b0c7958850002d30b9898e5f247e4cc8498d6addb8b124a7a203188569c0c18408d8164a6e3b1320e8eefe548bbfbd43a3015a80301630c171bf29b23da4c70f63c753b41e10fcbcb58107a72b21532169c40a7e4149683f62e95e33add1503726e011bcd5d9eb97da523305d8302f9a519422bd6b98b6a52c62662398650035d4be9147ab8c5426560ce27a6aa3b5a98267e93358fa694ad177ebf07d87e67e1dda0d0842d605c96d942fafaff1dcddd3af7e4cc57c34e53d3240df56d08e1bc015f86fde8244582e72c55a90fa3aaae4762eba67f7de9c79b8448de21c2a1291fb034e8cd65b48f8463afc461da58a383b74222c446c3dc69d7c2d1185d4f3a394a62689839d77dab0696900de73db3dc70444e187bb23a6ea7e8a7add6cc11805d0b3e4fb37a1d09d0f8925171b473e40adcf01e64818bc0d314de4c27c9330800953b05a2d55ffb629b16595c825c3bd80ed62193ec0597a9d463d815b3275b03702de3f644755291af9cb842214ac8acfe2922474e4f93fc1fe1b40f18d0178c194775ac6f7e818314231bcf3525f55f4240119e043847aa3ca6282a359e7d99152229ce042d451f9db8e95dc53362a6424d694ac6c8e8a03bdf4d15f77370f89e16402621b4f5ae29337a806362fe717edb7e6b540a3185de330e5d3e401c73aed00b4758e38ae006ac3101039becd762c7eaf9b6aa62bfa6e9d17f8b0c4cc58a9b361b5e5d76c1ce2626d261994b0f5e219363d59347e727be36a2c6015f2584fc33bcf24f606ba1ac022cac8c48bc1b2f88ff340e6929e7811b5fc72e71cc24cd8b05bc7f7d989438b28232f742d12eefbc1c076fa85b89cc45da3474292a65b98991c9fc63011882d78829cd40911b0967f27e0f58a469b3d60ebb801fc424e5f0cbc988cbd58c67cea00e86c374a465cf5b07e70e4c0eff5cf135a4044c4c5831d3cbf107123e0031136df7c5089f28acf772e9f1920b4cfb0521910b7c28002d3e7a9972128bdd80355b00a6ead7de40171b10632a523822e3ebf17b79b8f0d21fdc27b280c1a100b51d0e455e866a07161c40fb4fc718f5823963df992ede41aa21bbfce6c6885851ac5ff34651e8774c33f456e8ae5c8e110dafb3b0d1c0d17e1bfb2eb96dd5f49c2601b169d6bf8fd41825ad224a24b1cf67e98f5e8be20961b84ccf8e0a533383caa9e7f333ec69af0eb9326e7827b0d416b43a73aa3670d51f8988ae35757b6666f0a744904868631bea6197d8616b6e83d9378c14bcb2a951f8c776ae52231e4fb11e5bf6ed0b4e3e87009115c378a1ad2aefcf386d64ad74ecf6d5488781ddd7c939d8a14a495d6a85b7b24f94de3418142f162b5f6ffcdea3d199f4a9c3a863f8ae93e509fee08abb549dfa44ba8711d4b93d95e1d199f5ada74413a1ecb1a4852a2e51a8e20b7fa6be379a3eac5bd084abe959894d2157d7d4fec984da150d25db8a6b7dca60a086ff38ff02379c187a53b960461284ff493978c9a5b0a45e27d82e29093ab3ca1320fa07e2087dd7bcac5f3733f6a970345459a8fc4535539fc9c4f4fafa4c464b94036f4b42e33a812b80b225cfebb3560a23fe8d28d6e1ae111ba63c0df54fd61a8f3b325549a95f89008867962fc749f90602ace905e22e211f1c1280d01536d337eb942509817f1d4548c4b930c296e336734b88876eff232e13ec75f6c12cfb63bd6323d1fd28fdda97fdd61a7b0c4c3ef6b1ad875bbf31a4f30011b99794bd3516b85ca8a64277d81f0840084e0b73de08ae2fe1d3591b693f5da767a77306ba0aa27aa02e384f7e20aa58a1b9add7bae0743ee21b5186a9d3eec119271eead744b8e351e218860456ef738d87ef999aa32ec4fa5f5c5c5f4ccc7eb214190ab7d8f36e077c59e3fc89d07fb13105c5fda07fdc809b566e63f63952a1e5a1cde1d69885440bd433591ab5b3235a9f56e3f868d578f0a0d6476f4f25f1ad9709d8aad2127738c1d66842ed0fad1477fa07dae75767593c954f5dbf528622e6025d890c382b3e64c4fcc60a8f73cf1a3308872171128b55bf91690c704a2684ca60163779e1b47811b9834c7801085f0a3e04245d1b0daaf8488c679c46f966bce0a854f8682bc1a2bbacf229dd0fcc7323c3e83dcb8c4c064840a1aa2e18111a5f2824d44beaa1605a0ec931c2d3ff7c24ac1e68d67ff028a995319252ee45082729b4c2489366ab5959f40a3159e65a06b12176211c3d43b665874f5ad28976aa9efa427e3c2c8f0bb7cf83839f18c8c48305a28a5bc6611a6fc011950a861a9e0fd415fd3a8aa10fd522a78b272ee34a95a6f76b390221c5305c2c7f90141bd28e9de2b03ec1f2edd7251bc1d5e802b07015660e1998807181d2080cb8c36bfb2e843a43d875168bcf028d8aa7091f0b0a81c1a504fafab097a98f792178cd69d99d2775909c08f0a48a564373c4406a15ad0e11e9496d758864c0a6970ef07d032463b3016d705e4f5092ef4ef8bf89465518117a2837114173f067ea53c8efc8b9fcd313d296f3d756384e1a2794f9c129d97f433709340ed07dc9e65f88f8c66d8e7ea3c8213bb54ed3ccb76d21d194576aa2b093b755833c3ef50b7f49666e409b05d052b5225c6286d98eafbd6205b8dbe754704d0cc8de188ebf8ad13b6cbb59a8cd236d31bba93e87133cf17d92e345e7f9596e4e61faeeaf5dd8cf73a04d225f2214cec1bab395a25b3fa6fa5ba66176615a34e232909d27b6bfd20ae09344574d1fc7d75344106ac242aaffa391d9364bf6b0d860f4caa5ea6d00802077385b3082113d7c8bca64691b8b9f099a01fbeeb69841ae6cebfa5e26685fdf2f0ecdb9d395382bf9963fdb685ea3c0178a6f6b3be66950c731101437243591f9373da2295e934b4f005853c4e446cdc0b056e0032550d01239c09276eac58b26f02ebae85e593db23b30efd6fa60dccbef3e96182166c5af94f44f1c3efbd92f086d6c007489a9005d7f0086b04651b61fceba9d80ac50dad47137bed8ca363f01c421812059a92f460535c5750b55b6232ff6e297979ea25ebcbbfb7d97fbbb52e3b866fee4b90b1ffc4d7a695adc4b82eb7f0b4c7372328ee94fcbe74d2363d3d358e61d4128de0f34c1d17f0cb100366bbcc9e00ebd01d5edbe054bef0acd200c10fa5f2ce6553c1e4b8e1f04160c394e6c5bdfbf2e69fd49a72a516a20d653094a5e0b3b0b475b8d7124afcf3c119e70c2b9b53fd4f44ea89d683b263055a1d462b728365d034085c0d2facae5a6566e004a1855effd4dd0bce20a71a3c3a5294e786a90b679be10f04bcd595f04824bebf152c573e3185c2d8d0cf5727981297b588ce367d39b303a1ec1331e1cc5fac1ca091c00a22483e28e023758b5eddf115a63137aa0245ae27cf6aa8bcf0637cfbe6e5dc43050f8d698ba37b2efe8936e49b0614986308a77f5d5ae7030437111a007d17af1784948d6e94961d2a89c2a9598043b9f5db3ea11a1a0c13755f7e3225fa18f544d3383fc90bb75990c87322bb6dfb411bd9a6624a4861ea8a48bca8a05757553a939cc741c2daa7db5d53e9b77ba08a1f8ca37fbdfad5601498c98f710bc0a9fdf59bfc7383154ea4a75dd38b00ff8a9259f84d24fb4e19bcf9053a88da1527313c105f3556d7350a3e2bb24060062c2e214ca3f491a080a7483a022d526576e5965c5cac749a3d7b05366cffa5c72b89146d984a8f5b53e659b06ac50cd3a99a7afe6c94d3fae33e67ef10e061d94b6a2465f03cb1fffd2314fc2bbc6812cb89c47a49b120b49a2ddbeaa4d63b87013eab4e9680a0175b2441162c056e7391eb12f7ea116886012df529096b85c1bc7b0d87a17daa60d83b98ddbf3eb76855e8a2f7ad80facd9e97b276b513148126e4a26bdc19d45f4ad643dfb5510d208f2244c40f5e155249f3933605d39241ad82ecdd6c68c9c83de24b610068cdb759f12c2bbf3a0745b1360841add126512d8fc2f8e766c432e15495743928dd52f3d2942ab3967f5d2ae670e3ee7036d958f24a866baf040f6051d69e78b805bb04ee04ad904371316dd133722d7981423fd7d0bb3d2154367fee4302b3a8b09e978646fb88f0ccdc43c72b098a0777b7a4b78912857576c6b7f6d280183ed596c5af879611c6eb2c5a22f2d2c768fe7d2fd3a937434fb6ab83cb7a4bdf08a1500f2bf92c8510abbc2c635b547b09beb84a64fb2f401d08e3850b4f3948eb15106d6a1f6e421708e70eb0b862945bbaa8494b017fdd5cf9254465893d891fca66f708471ce88fe2d401654a4f8dd573e86de0e212b24571a2f38b84c53ca0dd88d701458a566c23be800a20c095a886063af918c3de3ef8e8f3b5221909678552d9825c34be350a5c297fcbd4c48e522b21bfefbd52c446a9951e8ade1f1c7cc80a319fbee8edb7d8963c76056664ba861206ea487e60d81f9ad2e26504e0988c8d45ccadac8ebadf955c0823c80bb493cce468fa96c51a437c27b1659841b942726214fe8628cd1ae16e0e222252f5e2b6aef9924a9ffa2294db4866d553d6bec3a93118e0fb362370b2530e2b9f67f8474c359bbd2d8007e157dcc6aab54fedea8550644ed285f4df405c857e40cb4dbdcf0d967332c7c6872ec0224276542f833a1a609f5f78cf90a38845b96e42fdccd04a6055c66a8af6652fdcc5f0af51e4f8bbc61066168679b178d0cd8d1f1615fb8b05d07d6f5ce9b45719fed7f653aba086f9559b0fe89bedc6a6026bda32fb705fca54e8dac482af251f49e332f7cbbd0d182e390a56b4b7d9513a4f2429bbeb3270e326c50b0f04132a6b4739c42b164bc35cb7e4ce3c0a7c1c5e7cb5a53eae2de3b9f1116bcb3bc0ada26f5c352ad3b03d4662c3a02902c985e2db84174728d715806c657794d12f76515d52cd2029acec49cc66381df20d36877ff7941900c3cd2a89376dc405e8648467f7014bffa8893c20104c0f654a81bb2a5d1239b76b6f0d8b63e9dc52450c6f24803289495167387768ddcf227f09d9478431a0d62af92ae51f57d347dd0f5c2483cdfb9878805b69d1a87c45a993850447672e31726473b8d3b82d8e69606a61eda42f138fcf54692f6ed00fc16587e3759237a64a75d43cb9c40e630153dd65b4f8bfe77602702af754f0c4a0695b6c4d52cd2227a112ed7e8e2cc51faac879cb45f700508bd7adbd6dfa9d95f401e874c5b5013e6e9411eb45b68bbe8c4bf6c0da388aff845184b86a1cfa47e7090c60f08f624a6aac677aeb3be54be1eea8cc5d15b7b7e0f11d2792d9cd94fd2b66d76a3fa47bca4494fd451822291ab80b2d4d0eea83320dc5cc448a1849d7012dc5686b389ebea2bbc49e6e99f9663ad16f1180a563e8279af3c0959e88f8fc4594a09b686c034ffd74bc64311c17829ca8b5eac1753e3a34311f8ce32087df25e2fb0d4ea6bfb5d29a804d17e35c7dd4a316749abe7ec97212e6676d3b6a736b5234560c4afeb2421605e6844dfd3b741937506a8e8d483883bdd893b41987e0ff779e08e1b1696f957670a6f80e1ce467ff10123408059a736351075b5f3b455082114672fc1bb8626395b0efff8a73b2f1c8a5c5de4fb0e3438a641a796d0a231b49bed6235ff8801eba3d1f283d53312d85ca271fab1a20e9ad145e0e440b406889ae65c7e31e7a2c69940f1c1e4114c73d3704d1715e811291c6550e1604dd81e0f7032477869a4f9a9bccd73ad81c4e43d72c8f75d14f188dfaa0a9ad8b616190b4403c2362a86911201b3ba99d9c478ed0c732c2727835ca84df133a3026ac651e83a30a97113cbb83a1054e9cd90ac01ca541688ec065ba425314eb23eb46126cbebf5d730fe396cc2ab602a9d6f61f71692763625952f5e84f5101e2deea61e442d69db8882f3f33c3d06716c4337fe10f3698bc84b70c29ea9ad18144ff61ddc2127fbe5370b4049bdb5bcc2066d60e559af6c6f8fdfc4d65403d2d39e15d77a0a04d801f5bc8383d31575f7e89c6a0c9842aec06f3f8dc79c585205830867ec2abc48d8247e09437dddcd7080aad3577904389f15702f44ab97d28096a19ae8245ae7f96a1454a8b9f99d44fe45cada1f65d03085ea6a87dc2c6caa0b4edd86f606b793e6fdeaa4dadc0f765e388deb6c4d6fa814d39dc8f9b69bb992a72cad5febe4b0246a8a29488664777fb1318b878edeea772a1fd48d9c5b5fa05e67d35f22cc857cff323ad028ae35c3fe5cf7d73d9d1bbbc5e9913a9025fabfaaff6333126aace6e8f0e5aed6f2322382c5914c956c7dc27fa5840f93de044faf5944b0c8b5201e138b5610fcf203e1b07668f0041f6aa8234d16fcaf769f1d22ab22e0679d73783a292ef9323ceff6151d3439b55d728073e02c11ee9d63891bf3842f7dafde5779954c8c57684c8a62295961acbad43db41edf58aae42e73791ff4d88355244932acf9fc0ad835f90191d457dd4ef40f9acd45b1924235bc9996dc467e746b71e8036d36f70fc8a800c4b2c2e7fe0fb8b07716fb5cc79760525b7c406e3ef079ab8d59bc51b24ad55b4e53d8ac8773e1f6e11f2c6ca064b5b0b054e83b164ae8966037828015dcacfb337772c8d4e686521d7e3abbcca1f605e5643cf827cf53cbf2a91755d1f8c5bac7f02b3be5267b5ecd964680017c939bd27009bcce42278894721fac119f060f17a677f1d1a588c7ed5ca7f7876ad40ce4adeb468bf95f849d504b7ad969ff04c253bb26d78db993b44e4c0fd973b43cd25619989a270bbbe83e08831692005e5c5aa72ebf210d120726e52232b02b5d5d71bdd692677bdf60735795bb6e0670d7c4442af5a7ff3005ae7545588170e251050537486b0ff1aa91be05e0e9edf7fd5dfead325fc5c3d39b7640b6da04566afae705ba720c9bb51efc4e1fa6636497aa57aa6e81ced008a406ad24f96413a5b5d1c88648e6be6e917a3b818f7a64ed2a5cb6f66b710fa17fbdd1ca8954e76d80e798c160ba53db3b551b0de98bb77511a9ad90201a0fb207834b0d2f042f5101639e38da1da468e86a53698494632fb565618283493ac709c8e9009f734e1bd7f4eaf2e200846ccdb3a118f5b714057cf48d0bef5556f5add479d14c430ff0feef7fe208123863d77b1402f9445cf961d71902ccb20bdd870bf43a965aa801fbad6a05f3579b28e6a42b3e264680c18d28da88563bc6a81d6c6b8668edf6c2330e757f153d4460dd215e9858d3592670ec91dc7302beece75338116a83d17406f72aafff8ec967167ff53e0283ff028dcf71889666b5d25d06ef7aa9d2824c27ba2cb4371b068583c4218dd2fc09d69faf4561ec4bb5bac277f5ef7f3fe43d20d8f10bdbef64cb8592d56bff35f1f4ff3d17057f3ad450f8c3a9e52d8b3de1adab25bf9df19c86307ef4ffb6b5be094b3da97ce23788656b00dac921fa0c782d761c4df684ad50332ea8f30e01b0f71bc20e5aa55eccce40f222fcb3b6dbd69609419e4fdfef7f3eef4bf3eeeb40f235ca7891ecc4abf4224ebee14eee83c287981d5e29e97eb6bbe5cd6054653d019d6eaeaf421a9aec51899af9d1726bc530cbe9c3f7dd070e3fbd40783344f20a1d80fcd58a5f8045453fb5d67588f0c25b277506368d41d7f22ba6235dcf9ac680226594dc433cbe0c61a48163076772152b0f8d5376d635a9040a614cbdc3236b60b388f9601e39c22e79358fd823614b4f2fa37f33251dd592d6998960d8e82989c7335e14e6533c4679746e9fb95402f91ae3c9f3551b8e40ab06ce4b3b54ac6100a0574e7c63967d9d4b672be032057ff387a0791491fa93a0ea5a48cbaa6f167465892530209212124d1c82a799e6952a0a3fba82d1c966a7c23978126783103e42a13beb5ba71bb1b6c55c5538327a5ed929afbff884e5a17a61d233387e39185e0e2013d509a84601c5f625652df67cd98c8de28df0c9f923d16490186feb647fc5d447eb7a276754f4888befdaf851926e69be095eb0f20004c4b4dc2421867ff1d3b650b0b9c440700be11bb35fa1ba00d3c16b5a49c60400c03a09099a7483df717d5b496017bc3fee2bcf57cd9ee792a7b46c505828363e5d99aff51d633f41cbdfddbbc1a178017bf8c00a7d3b5b57877e8382a4cf35fe1d1e4d8fccd5933247f12d9eb964db51803c3963fa364951baffc436ccebf91f197e5647a36d5ed0904ae5acc549f7a7887d7d63eedeaab91fdd8b52e28b4b0e4f15a4231508ed5d21460885ae9729c33d876480b18bb74f09af42c4c2cec85fb17830eddcb37cfdd963d338aab6dc7e801673ce8005981e26f540b7a8409db3020a335c468876317686b7458ccfc60e44a3a276dfc53e02a701f0e4990b8243ca5014a0f54e6ff1ca1944d888805aa2babcec95c44cee17d8460af161b0da3fdc3e8670d96c8a95362b4ede49653ca2f561a35882a207a340017c62b711cb08a2aa823601c31ba107c238bfb339427851aa66c26354999b487c89419dbcecb15bcc9a036a7082a31d36520d30a59a20cc0e4c51a58d076add31d9e1509cd8bbb2d2a5964b8e0d3c1730210788577e87d3910a4ad0068b11c0dd51f44d2bb35d70fd43be5aa9b0d046f89fc929b483b73d7d8064cc1a01ecfd2173c042a12c53ba6d896a6392b929686b10f0487a8445e1b4e7f1ef0d0e405b86061c536aedfb3d8482d08c605ed60ac68f634aac84f22d316624406907c65a8d4adaea2411bbfe10412edb88c69bf80a692adf06f1a7eaa3ef1054f0a966c17e69332300a0b5081c6d83d86a3443516b045c3be565d25130e5504373c696e30201f739d2f0094b6995420d8a46c547f65da0167ec122da5df4390500ea7f28f77d0db9c2e921c5947769691a065c94391a0eeb2dc8592f2ba48330d047a6baff95d0123ca0b483a4142347a0742e4aec84641850e50c79263358f4e49ca4add3e567290e74cbd2e93b042dba4b406761dafd7c7db49b91317997e1384596e31e134ad3b012471da716d36d63244ff4f3dec857a7b881b55f806205a3d815c60d2e6980de72946bf47c34b7cc64280d7ebbb61b9ae97c68a5e4b4254dab726dffa6e0220797721c14a74cd8ce8bfcf839763c0373b6e0d424da056a67d6732edcef8679f2f3d84ad1c780cd615f3a8e2f9ca4d7c2d8fe838442b0e61d2b9dfaca59f325b60a19949025011e902c4761903862667a21543ae59b73e3e2cac5a181f8a2e7ff5f496060ba57b8f72bf8fe27e37e1fcb8aa3ac0b0aa6b654c2caff91e58ef43124a7b9ba03a4f2f649bec90650057e511a9e6823319b839837b184590485d1ff565b1c5acd722527c7a472fcbff5836a7acce1e3d8749fa034c7f4be9dac3837529fa3db0cf0e656ad921e76891b9c5b83753e24c73f8c3e37bf7690b8071e44ee1044eb51aa953c41d8fdcd7c7804c7a284087d2c0ee9bc8e4d86581bd3e97e461d6d85dd7978cc9bee2b384062e843c656effa39f5ccf64108cd45987095e61f4ca142fb88e17727c3b2faff1980b3ab09823a86c4ac09ea0b9fc74a58cd3f76964b4beba07293ac746288f0b0d2d44bb6b080001aa55289cbc3b18e567f6f6fd7715998b36c1803991cd1ae1f65e866e439caa521668a48010a9816be06b1658a752233aa667360e0b0b0d0d1aa1e694a88fc0a36eb95d16892125e232ebed84fda72966b27e02538a4fcb51c33cfed9f447713040b75260ebffa5e7299d483ec85dd06ae980e4170811370bd99ababccd6eccd4363f03f6dc75d5e0971860a16051cceb9229c6cc43727ea1918d3b22320704c5d524f14554b6d93bc8c8d79525895431caf1671bb754515693e2240e21803660b5892c15989b77a50c8e87621908271f7e71e75fddfec59df56cfa00ab032c69fd822236d8efe42261bb135cf74d8c753d6c879da4ae677d9d18f391619bba8ba58ea44dfa878302c5e190c11171bf5467c6a9db64049f5261c9e3ce359c0fbc5aab49c80da4a8d885cfa8911d243aa6f7faf74f58589ff620566524ae85e100c52784f617a6442a70b02384f5eb8cf9d2a8760f76f63bdf1261036378f85039ed1cb2842ee792bba6079f97a2456f527402466f51c61dc0413653174009aa0f8af9d071caa17d622a03e8096eb30e756b212a4ecda4d7abc7bf6dbf00885a8b3eb32513d6e89113a949ef831209051a1cb514cb1df3256e4f04a97ba55ae3e370aa34699e89ace9c6fbd6c19142e9121994348b68eaf4b2179373b5a445afca87b2a15fe3325c0e804203e4186b1cf0ec7b741d282929cec95caa9c57ff1c33876eacdd8970ebcf6fe1f63f3ce781830544f377f9aaa45e2ff4f6a99ddf2d2a759a9a5082453493e292a886288bd3aa0754c396515bb28eb043befe446351353262455088499136b431c988b50bf511782a6263a34228b8da90bf2ac24485fdd9410c4346b8559327a2df2aea1788ec439f77257747decfb7f083bdd435280d878af66f1ed1a1e5a1171c36210c9beb567c4e9d8098afaa376e493626e7ec8295fe506226727058e381dd2a78639983ea9137247478f0f660da0f4b5a002c79e1fc9493e3751011544b2878106c91d4ec90fe387361128e78db1fa155ac17f348caf0a500433143ea94db64db0e307c71217f65d2f06f0d0a0415e000525608e70c17b93f8f12defd14e065b8b2ada779785436816513a5abb48b09844293f185127ee27c0ff534381e1ac56799f955cff46ab419a3ee2dd0d17627e8e6db4965d4a5520d1331c16a9432564af8de5fb1eed3c55d8a92cb1acfb10472db14b173c2d691c867904c575bbe82ad06ae5bb6e1090eb98a4ef8db6da4b499559720dd5a825f960ce5da1014bd2b664ba733cc2a87a6b1c22c0d0fb02bfa13a1c8135ba05933f1a10c6513fd5f22c452951822f699a4f756df528fb6f62de4677e7140be6f519c73f3023b3911b6ffb1b2ec6198b10e606e7ca0547a696df71b4f5cdf7e214c8023fc730b89b7817f0c6c2118963c7735d6ff7fceb1d536931b588951ef75360e4258c60e23e8208080f9ac37051b70ec1989e6fa9d814a4298cb95c7a782065cce6df647c05561103e5b4de43b22344edfd22bc5a4b0e310081ff02bdbe6550013db73922f84831d7901d8957cebd40210ea46d5943844c2257c448efb3a1ad1d84c25c5a5313663ce58b29de88c57fb0d981da72d942b81bdbec2595a73876b6b6e3065dc659b58e847c27b82c7c9ceaf1bf900fb93706b7d1a982ad5b0a7bc1c4fecf998b4274d57b1e4a9b08ea700d2aee69a669305df8e117b4a682952a39e848488ec88b031a9584ad39606867d13f91b05746775fb7d19d9d916464f189e26585dac1dc19007ddc7e1ac8aecf20cc0c83974a59ba12bfb8f5e6787d2265e9878f463303770ed75c1b88e8ce705ce9db583c7792dff24ff47fbf645b20aab1cc41bb0f5449f5da5e4c1a3453d337e888667588ccf6a55d589d1eb9d139fcb0f5c97cf24584fc5935abcf77a444bb81454ea64665c4fc4b4632a9006c09c8a134caf077e2d734b7c7f68e709c05b12f89f945af54a373e8451a70b23b471e701c485217314cc02fa42d0c3207aa43695e5a9cc11c66d2f0d0be675c282163420bcd807950df1182cc82901eb1a76282800b62b1283e0ded4adf09911b631b816be77b93f3dc3581926bcf81046c940fe8b8fde1b65ce968384149a76b05baf938633ad35bc05233921435195014ae166ba9dab0922f19e99ccfd25a6e67bb94a274f03aad16ea061d1dd0cda43ba438efa40ce998a4b9097baffa78dfa0a08e7dbdea0f14ed2d7689163aa212bfd25d9b62cb688dd9595587e0f7d4f56bc288c3b3ff629704a03073f3ff9437dcbb8fe66b25142614bdb6e095260cdb8e8649d5c91d541cfdc7013de6fd9bbffeac1a077b9892a025086c73dc915530d1070d507f53e18fa4d0314899f293c519779a60829ba096a2e1d339f9f9b9af19b4cc70f8bcbce8dd6638a0b61f573261e591a037fd1a7d89fdcea1d3c9b70dbfc256e489f020eb1c1a977dd7872d8f91a0ed97b10de2e09826ad42826e9925c01d45855526cd6c7c6c7a7b25297c79b588c5c1b4e706303e8e57ced62be2cff26542049c56667286650c784445b5afbacb9b398b66b89d023e4914bf12c4a4c549db9e06bbbb4182cef02e46e4286ab80079780ab5b6574dba3eea99772c993013ac8fccab64d8fea9cc28cf5fbbe7edaf73293d33f30dd757286db45f5e6935824e663232ca1608a376eface088b2e978d19069436cb90f978334576da61e276347e1e22125fed269d25b842abfe0591ccd128d91aa907e3e5870f2be32b3f06802c3f5b983f5d0c79c8199553ce1a89fea09f12bfb7c8010a3df1ca2e304ddedefda01e36fa212ead043a79b303e41764381fa95a9c0101c34d443d5bc0d81550d73c1bc9d59ab129249f3f36d0c7f079ae927f54da58659fbdd55b800e6a35dfbfe89e67ffce513db13805e54eda36cd1a11f2664b94f8238c4d7551b0a458f0848e41dfc39380ca47d5e2632c56262293e85799eb92d313481e4b818f8970a42b5de82e4809fa8ee973f279a4669d75d7748531e3bc6be0047ac87c0a46631f9ea36b4d24cc374035cb8f9a67caf48be76cb5945014b1ec4b5cd6c4f5348db800082370467320bdb68dda97b2366481116994fa84e5caff28dd80d8f38818d2f8060a10884a595f3344a958333deb0f95e5b4da03da4041d67062fdd645b1087e374c3cff1be6db7a83a9dcc4e40dd813645e046533a938c14ecce6188fd9eaa38aeebef19253f3f49bc21788498c7841bb57bbd3e1ac94dd1dfc745b1600690bcf1ea78661c9c539ac38b6a7bbc9a85065835802bc8331cf55a4808839d87b395a28b091b20d22ce19f6473bbd3a6cd0d14d401a2947e8a20397f5dc4ea3d2965a96b329a36a68134997e1569a091b5182a959b18c4606f09998d7decd4f862570810e634bd910f132174f9881e64d4e8167f8761b571f201dc53994dbd11af2b9f17b7fa72ed86782c2170c74d00e7ab354e750c3b5be6aeea5e3fc21d0c5f167be40b83e4693d3f3eddba01cb4546ecf71a3d09843a07b2127853a30402a24c7b67df03866bf0e99e65ea47678225094a9ffc48ee8a8a88adad7d78a59d1b0495e14ebc240248b200f61ad065c8e7bb75643d224fbb55cb7d253a23d66497d5d6cdb8ed3ccc2aba048d28584d1482b3709dae2e3c5a2f1b19de2fc95441531bccfc7e2cb23fd2d85915a17994a63725a4be5969e086c00557573c1c0b3bf2fea86abcf522cbcdd6db211ccbed3069968168a1fca56ce241137a15169757c82041b060789d9c25aff0e9b03fc9fa2b9ffb518e2dcea09d5354ba4bee4e47193512402fb35e8452b9239006660ec2019795271e7417fb557e80598212416ca5e48ca27b604150a564bbfffc3ef02d55dcabf33201957d68f761f24a7f71fb8e8fe7bf1d518dc57b7738b5f8352c357ed84bd1fd1d5313ca0b33a37c2762968ad5200b2f9badcf94feb012f8090a9c05e2364a1b0172c641400f59e6d1addee835b2cf11badde05aaa624f88d002009756ea42766f119aae766a9e524983a3fe95ab70d6d5025c45e713f9567ebe455e31e7c3cd1bce529b817b5cdf301ef8c1e6bf30c6e9e26887fc293463e9c1f751870771839bb44a0d7ccd861cae7949c69809d149c4f60318f122852b04d8d81ad90117ba6346e57ee476281e214ae042e0966a66c14c6a91f3273ad1c63502d859788f57cf48010fa0052bee1abfe160aa485ba5a148bc1b44494cca852530b9e4ad4e4846c488116d8e3d9601bc752d9d3d9d650880eea5d9c91449e5fdd2da356844056d262f6486d8c93483b6be08ce1fa6f1b9852f9d090ece4e90158cef841332356fe49d08798157a7f64d50a4748da99ad8e850f664b84ea46146e03ee9af0e98bec1feda8cd4333faefc43601ee6b0b70828e0594719823ee8178f21e970f0d6a13770ee07e21c0e9fa6b05f5958b200a869afe7481003f0aa240c4317e04fcc857027cd3ed48e7d7c3446ae6d0bc12d52700e5fe57d9e124a19108fbd89e3ca57e4184094cb07bc9671e06c75f2ce9996ac5e441d276b1d592341fcf96b899276486a97ea51399666e439dd1b306dbd47e0c57e1bc33121d9c07b31030452a29c5b8bde4440f87c03951cf6d818cab79ff444d6cd43b832349932d46f9c81c4c95457dbfded713f0e52ee9e29806277f1a7585942f14028644200e3c3d30749df5a0c84e06c679805d98720cf9ad358f2f5e2f4419ff53ed7699c580d48c87e4a0f8527820be8d1debcb274bcf4ce831ad34613654d6fb44e50b1915a37e7b3b1662d9a12f2af848f079be7f630680cd54bcd29d9ecdb81272c8e3e5e087e65e505c988fe3ba886825cf28138880297c9ccc53dcb69920d91530dfc46f4fa9d56fefe9e7fcc0b7eb4a27aded291545bb0961eed06fcefe913b3bd87fe6d641021a1539e3077726602be1374b12af1b3d343b6febfbf695a1846d4f1958b7a932bb0ff0cd178ba06424b11f6e0935339a815411f094aeabe0322244a5ca1b05a0ff85e6221cce6e1a416b099f083023d271438f02ef802f85c77b1d9fac035c78cdf81445210f29e89f39f37fe55f8566bd4af59290c091fd2a71aaab14f3cdb82aaafa851f004da7061818614c542cebac6973a1c98c2e6b9d5827e47bfa5285e682709c6bd6bc93bea45c9071cb64d59060cf413de74ee869f2006624a28a92a8cd10f4009041f4afa87d2aaa4940157ee9e8938aedb687266ad137c617fd6e0ba6e79784e4a3edf23e82d46b3fc8b81a94da78b369b2e54941d986c720647a75a9a081ce7b2f160029d838978d18694a576b80e1cb8fb3e2655e7e67482fc426cd13d266e131bb3c3cef5061ecb7a3af6d0be58df0c37dbf5bfc2f7dce1b5d35397abe20e9b676701cedca16c62cc308cd0900f1111b0cc921f959c90b85a32784b0d964e0341920ba5f4f0a4cd8a31513e8a7f951b4da4980750462b53e3cfccfb6132dabba6d27e05709cb4a3a1619ff6a942e79c831e1bb2fd9d3a6283091db0580826b5d365c4fb3d214ad1688c6da2ebb46625420548bdc9e6ee93903f7346e92366ded16cdcdb3f24aa93bf060ac2cb0677b4800b46f338515dd5b72b5a992b4ee945e46ab0bf4192282683143ed71f6fcbf3ef64c8e416f9f2ac851c9595091fa9abf389f3c9d21f60060c5a6a3ed05043a172bbc434c0af2ee8e7603751afbb69ff7d00594398e84efe6cc9c24986292ce3a6307e73d80ec22cfc244800a6b17913a37511dd2a6055d2a199aa6bc78f5defc0080c833b7114e5b9963f7574d6c9918a06a16b8ae593946b9d45f774b65e53218768d180344acf9d06778bf6debd4ec2bc0e4888b5a5d2b8b0c910ef4b0358f12b6a33f673f3bf7088eea86425d55011ae48dc178124204f6fcae76901fd4969e52c33e8175be560032ee9b5a4c5a67b920fb754f6b3ea0226cc076f0c4d3e97fb4ef8e6c70bbc57f56fe8f74093e4799a16e43e6590fccb82b2609c9bd367f50762bc6d3a5263e739ce1eedf10c516ce2e06e4866bebfde205f455cdd4de665ccf54f2b401806810e8a52533f3e21949da90c7f4abe4939517e914dc9d9a9e68090272808127ea465b1d21628644430d96da486d4049a47c88dffe156080ac8f12e62b058e3fde3f95f897de108aca28be3526941e26cd2700e6291104cd649bac01927cbcd6d77146b2d0b9d641cc991e7f00b034c14a251f3a3cc00a74094090b3e0fa51005cbdad5ce2e96f6301386edf504de55c12b47cc8fc5fe7adc194e451002c90512084eb2414e037af942fe892f7bd296bfed9ea77b3b0f7b14ff29ebfff9a42d14e29000c9b60da7d2c8fe07d3149bacb9ac46a1c6010bbca00bd4c09d542011aa42524fc03e8bbe6ab6cbb20f58f9c07780ec739dfb2b130165d7e9a3836f683328747f1686b0eb841139cfc96028e04b0131007be0bb6dd84403c8fdee377fb73791e7d009177d91c3cd858ceef6e286013158e9cf0b1824dff4146fc98b5b8fb51c4e138464e41dc1ab2be0a1b153b436f49988252a59b53eb7f996b959e838ee942e567cdec351c3f999d7f1fca433b3dfb5bf8feffd83bc510f45a021c2bf84d487479dde29e246907b792c6a9e39baf1f071349dbf57b00b6b9874061679e1bc2898f5802fd0bfb2ffc66407a5c5994575030df8a8fc61129e7342a85e030fda4635c5ac8775644465c4a2461da7699774390c4d49b12d30190a2ba140e62d5a800998fd7e3f45ed2f8998edb60002eddf883bb0503372a176af9ec9cdb2056af472c9e046d8a039f2fedae8a31e92820653f068cd040090d2cff1b82523fcbfd03ecafedbcf7d15fef5f7ff6cfc61f213b0730d5dcea8c1eb987dd5ac3ffeb02a0f908d60dd62bf94fbe49f6e2520d48823de9fee7591c384d18562da00579d9b2fbbd969882cc5f2660e0599042adf542ba804f222b03df41b2fa0030e4aa15d06cbb7e598c57d011fea1ce4b3e71a589b09799f4b0ea9498731559a0a5f25bf87a057fc170d749af48da81e73a3a0e48ad1f93b62fec625455f085d9c614c06d78970085e9f30d8dc701ada5c18fde8b56cc706998a10752c565acefc261f065b895a116ae870c43ce7333f7c91b61c84e8ce09a36d8d8bcb4435a2cae112f5529c6d3970f9b917aa36f4a10f00bad900e63b11108a2e47e1be9a54ee27247135603a59d72d2f21f4681796fd4a8c3c4660454a31ad6600dd3408335e584d413c4a5039acc5a8e5b30542a5207121e37c3d4cf2187c19998fed2241cdbc3ec6cff61a304f5ef1a869522bc281ec672282b531e7bcf16c258eff3510c001a5b9a791a5af4472bf0e0871686b66e9854e95e3adc34b7f827648590bd7713b9a5943225199408c808c808f47a6bee1e72f70eb97b87dcbdbb9077b52d8b036e9c1db9464458d1eb69fc5a82f35e363a13e43922c2bec23c72c914e71cd75cbbfbbdd75ebb793dbdc3be5a075ea25723225e5e8f879e4b4dc05c1be914344ce6c8c9bda3a1903a5a05325022cff772b73421ba359223d73672594bba028f75966b4a7ff217927d3ed733e773b0b059dcce5c812f3367855c899e2053f3474e2692713052b79d684ca5378935b60931d882e5810e43890c5848ee0b6135c68d6777572678b43923973562faf9f688cd71157d4dc32fed35ef342148bd814020afc7caca1676dfe1f75c8774ce6a839ab029744f655a9129e4352ec9d0d99ba4916b4c1985630bd98628ccc00dd26b90c02e8138fc2eb490160ad110d64261f725ed797828f43cdcac955e1d0aed735a48d3bcb2b4300397d289ddb5b0fb92a6692fba587aca2a65c0eb10c8f382abeccb134ba9c5f4f24129d31b8b288acd93d8ca2c9cbd386f3f7e5800f0e54b10b4a228c689a226ad63fe686feebdf65a8e1b472e3a728d70463a2325232223d828679464f4a297f3d9cd122853f710577a516cae462e4fcd1fb9b6d0b364959a80b93785a76f094dbf8558074b81bb59e0886b90279e419e8fa19003983f22a25718dba055b112641c0cc9b3595b13a70743d7659d5eb24ca6378935057092a3c32abd1016570a43d16ca64e34a62f9dfc4b6ffa5378a2397d8bbf498465071f14f1ab246223f6552a323607abddc6bd1604e630c618e3d2088ad16b44241ce1386a3e188e5c33352ae2a9f9e3c88991bbc1f656ac4d701272e5f5c8d46cd0843faf678509dce32ac9844894277a47fd55cbcf2efb2672b3b96a11711232356f49c4dc6ce4662f99637a517ab9aaa314d94af4fe04ff478b24cfb7af9f2c6badb5762b85ceb2d65a6b3770fb52585949c821714cc1ac972d07ebc4141b6ea0b012f1d6d1cf5d8f0bae09f783f67a5cc5592151f3399dc919017344e0609dc150b29ce3388eeb908b715bc8f920e49cd4e02c50e4603335b714cac0de21d73c1c2c26655aba0e9b009f83713a73d5acee8b15148155537a0ff410bcc86121b93f723b5c2c4f6ee6a839db27b705da27e3e0220234b14271948f1523979479c9f347436e783538cbf4a5f044533a7de985b0c0f044037ecbb788352ddc29b4add0ba66ea149e6858fef42ca26d9db63f3dcbb784279a14bee553106d8b78da9e4514f9fcccd426d2e02cd39b44d149146942789a0b8b6479bee847389e29268a814ca18ddf422b8a8962d4270ebd297496283657f6258a8962f6655f21fba6b0b2bc9e3cf17b3d5206f4f3b71fb9599e5f7f34b1fe386ae27087cea3d7338e8ad80885417a8d0cdc6c9d80470e964b2051ca1cdb83a164b54fdefe3e0faf5072689ff975e6aa0df4436ed1827cffbbc09da675b8f36646aeaee302bf5cc5fdb4af28f20e2e06f1402bdb0fd26b64fff9a322bec2af999aaeb902472f57d1cf7922632379fe383a923b73cf95f0abeb464c2776074367e1d75c8d5c178f5cddbd9dab45d3539649acf100abf43cdc3e1856d6c8357275e198929dd3c4b185eca19ca9ce7fca7c5291b7b4212cc51b0a2470120733769cb89c18a95f7cad3c9fa316b73f0b288c5940b120553fa4ab7c38ea85d631bf456badd5aca6518d5a5aadb549acbdd329cc5ce19f3f5c05048b8d3371801244a2e6b70e4b6dd850c81cad83f9637320bb5920d9bfa9a6695ad3eebca9b77639dc3ca695b473dbeeddfd89333d3db865d0b02ea438d332d0aad76aab7577cedd2b98043642081cf9040d0a999a0f6a58e3bc17b676bdd80598c681c11ae70b9b481430edade66d6fdb5b6badf57afdb4da16703c48bbeacd3073f763975bb3da776190696d5769a55abdf77afd567a32783f8fe921fd1c204693ea6190bea128741607eab4506e2146926c43cf22adb3a1ecae21edba4bf2f65eb1ded6ed6b6ea9f55097acc05ecaf36b964bc840224b1e4eadd785bc1ed47a28d43029e3e5f95ca82b9d812787418fbb50e98ce9fd90562891b7efd0b3cd928a1cf8e493f6a1d7b2e71d72327b5267f77460e0b15d43c21a47cd253c315fab55bb61677f1440962d6132852fd875e388ef028c0b5205843c7f364ca266246ad26cadb54ae0eec972091425b99f9b1d6d4aa99dd65afbee757bdf051ebba72da5954878573ad93bfc4701e01f57c8f2c55e7d2f3fb171646afe14a5d4d149fbe38bca7f14f38724899a6f922aeca849d33bac28a58eb189b8d83812357f925cc8f3a77477399176d25df8903c1b8a759fddb4f6fa77087295bb2804a2594864701e3af74bfb49479d5a4480dc420c22596e214692fc60e0b17b6cf7744fb7fd3a6f000b4630ce5d3f511ce5d47d9eb8cc674e1ce5328e0bbb1f05814797d5eb515cd5aeea8fc9fe73889471792fe86a0cf01f4779941aee0c9f1d562772efb2e9b2f934f497bf464fe2accf0778ec9fec6fc3fe89e237ee9a8ee32a1ac6bd94d24beb74c9948baece85c4ce5cb90be10947b9a3403c8281d2f8aef6abc4221be2b8da5b3b8f7092ce3979e4fe01d72c0944cab090e7e7a083abbafbf95c6a0cdccd66b98a63ddc12cf5048f720664aeee96e5830ff2bcf7bc8a93bd9758c4b548ae7504b97e3542eea040eb985fbf12f1faaa3852c6fb3aabe268c3162db0f63cbc491e6b91fadac24aa452c07f4a24e40972af06cb0a7d176ed972ddd75a6bed6aad5dadd55afb321cebecbb3048af218e75966bd36059b3e3c2711373a8b3ac09206b4d885e137d7745218ba7e6cd37945903b71f70456541fd439cdf25e00eb863c23dbe0a43c8ddb9b2b2b2b2e27de59328ed24ede6c5a08d4ba126eb811b576017fbdddddd9bc2884124b619924217d8a18037b0c02e8e945be94a1e1832896ce053f5421e0240539be4044353ca77f2d3a965fd4ca18d70ec523a198eb8a565b6b4784bdf900d1b9e0c9da9cc71c291c2bc2c2c2d2d2df4480175e3c67f184a1e98175a9052b395e2c031bd4160cc0c3dec1a1a85e4520a30e00dd387a307f28d1bff61288ab7470bf8bebc48008c42326d1df26dfc2964e96438be90535a54089215aa3a7e4343f7f86dc0efbd4da824dae0d09f5ab4e1fb90e8f17b5fdb24c261fbac7ca16e45b23edc9f912f47a76fad7d7dc0fcf0f1e3fb01cfbe168cd639b59bd651dba0cff5bd3e9c962b508bda28d733b4d5aca156c8f3eb46ed08c5c215305bd73c5cdb3a50dd5ef30e3f21648ef97836575f083e25f0cf77449e4f3fd7e702552c6b1df3a7a86768fbce3b6040031d90abcfc84ce9d03bb093d6f119f11949b27d86b89e794196fa8ccc9574eca4e6ee87818705d963ec24cfe7b6104541618599e1388d5a2cf27ad4177932b8e57a669c15eed0a9f927a9469e120a222f88cc31afa883cc3145a3e4c15e8f13c55e7f7b41eeb7d77e0a5d98d5c1b0ba776196b785befb1bfcdedfafb510b5ce5cb18848666c3c08fefcfee97972d1fb8bbc3f8935f8bdaf098d2d3bf5d83ea7166b902c1be2cd0de96f54fea6f4a694bf5979d0fbe93cf47f8d431c18f64ad83c61cbda47ce940ae9077ff735a20f7562cdf7f84155e01e74e0a92102330d900f90aafa724692a49e219aa50e680be576418d0a634429fdfdf07d3f90f0cc552e7e2e2c51f33f571ef12ccfbf3af7eaf44ecf1a4a2be924ddd34f3a76bdbb53ba94942d04e57befbd295db5bf859eb995cec32032c7fc99b9dae103120a9ba863a46d50854e8b63cd53c8ce8154519194c7d60125d833648dcc5510999aff19f960797e46749039e6df26aed2745aa775f2d5a8ccd15f513b9f1090df500617211499851153d83a6ba5954e172e1060d039279d945a1cea732fab48e91955a05135da944e3a3bd4fa9b01dd2f736de9cdd02245e3089c4ae6af600559de074f767751cb0b59aed4c598227bf6ef5c64715009a6a0f430388903132443a2fca431a446b9cf69dabdf7de973ef3de7befa5f77eb7fefdeffe77f3b95c05fafbdf1029d3f9821f13f97e27c8f72341bef7da6ae46a57bbdad5ee73a070fb1f9d41e275148d82b7909bf7ebbc3fb69fa719b69fdbbdf7fe36bd1e9b781d75ff82c41a73d47d1417b8ef4b1cd7c2b8a69ce6ee3e694f103baa4b3dc19fe2ab1bee817856273df72d4a0671ad0cfac9209038cea75d8804f45cf88387386ccf81579ee1b8bdfdf618d03458d60c3771e4c06bfe7d1fe74f0ebcb2268eb6f64899a2dc7ec0597c4dc107cbda73564a19157785cca1713c33a5ede0ac903ab44e427194f6e3286df39139346f556333a5bdacb299f2c12317fb5adfcde7fa867c48a40c7d9d5cab919b836159b3f5861d06914166d0ffe83c65e69a8b45c1338f5c2cfb87a719eefbbb1049354d8b65ed83d5253889637c691a43ef7021d23aaad3d6349136d5b4165d88504ea39f6709f27c072f48db40976bda9452dab4bbd6385f85c4185a874b2cd42b972c44255ee8eb28a54ddb7dd489bde33ea76def2f45bf854d7cef6113f8b96ddb361cba502cd14b21dbb66d5b290af63c821ca5d40a1e34e1d1a2826251b831180c0683c16262603780f57579bd5e2e2f18cce5e5f28a8909e500e5eeee06852e50c81c31681d51b8e824f154832ea7855c60add6e8f2ea3cbac0babb394d269375739a4c26ebeeed79782cf6f22a6b4e1b437639ad070874f1056f6f2d936d9b73d8cb23e8120b59138e1c13ba94d2a62ddb71775566f7aacc5ce52baf95232a505670565c2b45547e2e75fc752352a7b964d12b97253a36572eaf1943eff09fefb2c15a878b9abd2e447ac7067359a2572e346897d75cb9c0e6e64224cf77777777f710159a648ef92e34e895ecde91b2d1a9f92c6c3100533ebc8f979cd87cc9017177abd5ea06392736a7722f1736d71ed7a07e1c5616085471ae8b2c1cef8bce0bc63809258a1839e2a9f92f4fbc207979c10bec258a171d9597cc315f5a2e31979794f11b57bd3ce128d75cbdc070e6ea45e735572f3b33e583dcf1e284d4f18394797141eb2547c65e72642cf6d2021fdc4bce4b8e8fb9727181c9d88cbdb440668494b9c46e2ccf7791cd075d642e321718e772030de40e72777790bb83dc1d047281b9070269d7530dce899a3038429943d3a8a6d28173a5e2c3993a152279be49e595a70a8e154fa44c6729c342066d30474101839e5be1085699ed20cfc7c2678b9fec452bab289139748047151c16ec9a2b17d94c81345896e85d6473f5d27259933cb2a8f8ccd47c91a83243618147dc1a55667983e5895d7808c6d960aeaa3bc09456d84b0e0d2b8b729a46bb90a66954d334aa691aadb49331d1e6689a885e0e44e916ba80e1620417272e3397279ed2c2042840e6980f0a17d03ae6df90bb513a011e6db8c8648ef9a527e0fa2eb23cff2547caf813ae4a80a3607335a3335710d87142ee98e1c505f3e74b4e9e3e5296e0b1c262b83557d3855b735559f339a77356d8112f92270f867022231e92e70e1fadc3870a19d97ba9b0ac6286e4016ee1580a7692c853c7883c615308181979beca13747cd8591142a333346dfcd888e2aa6d8bc2883c5f258aaf5e5a333545afbd8840887c93670a15785499e56903ab44c9f3557c5cb583a6325381a2f2e32ad0732f5bf43fe2904e4ec3adb95299e1166ea9cc384e65c6a9ccb490f83d657d22edb1278ea928f2fc9716f7d3cbdc8f1ef7d25299a9cc386e0b2b11dc5d3953d753ed92625f787a093438c981a6dfcf8404434412876442822279c4915bc891e7bba7719a168e54b453c4617aae63d7a75d451c26ed06415c8da0c3491c63e85bb76f1d36013ee90a0c8e88f8eaf42d3f8e8a14c0f457850763662a0655b9abc2c7b80aef255107100543ebe862e6cabe3c2ebc1efcc236e65edbde9cd7e37de17dd14be4994cea982bfc922d927133112786f70537f37ada7d1bb9b66de4da386b6d7bc8b5ce4390572963845c813f4749e439329227288eac28858c2191271538f62544f501dedeb3f772e1bdb5b717b93a6b1cc01238e32816249092787d685ac77c4ebcf7de4b4747e8bdf7fecc5cd9d74c795c783df782a1b36ee5dc7be3621c4fad5ab785327b57ebc5c0a3699e9a0612c940a34836da9748566a31b584a258186bf9d39b4ccf228a784ce2c9ffe42d73c5e995b5ac65df177a0f559eebf649ea5210c944322c93c948ef2251cc3b1f3d0f577dee95701c459142255d81c7981a03fa59ffbbf0d6289dd8b3ad966d75e71d3bb1dcd79d20654647e09374d4387772bf10969ca9d3cc6dffb93c2e8ed58702da0dbe9377e6eaf2cc547f7b0cc43f31dfe9596ca6baca72a8b2dc6f81cca6d081871ab1877eb78194f1b7800c235b60268185efb45a798a27ea24dba061b76e5a435ee0524899f95d3fc85c234ace413ac9f461b1fedbc4555feef614e00cf056a6a205e6d3f77ef41ab98a1698e2e947cb20330e394827795ac06bc571144e117fbda23072a4479046f627664e0e0c16853fe1aa53eb382a096e25b1c9ed883b182236694bf92038c418798ad33b4c7194c48263f2454f0659fc432970bb78c22938cb9f1ea44cc985c04624913d05d9939093513ca40ff90107484276d415fe3c38ca5f9e64cdfe3551b28bb27fe744e1ab56c2d36ab57c60c9253e4f7a878c21723f91bdd229a1643f8199250657552ab2ef80d9a538b6cb7990410a21bb94a13d579a5823ef050961f573331c3d967db0ccd13f051ee509244af1ce13cd7dedafa88972cab73f3a15421d4402aedd27ad2270078fb76be1060ff6971e0e47494e04727164d91e470fefbaeeaabf6717c707e48d092ec3cd777a3de453eac960ab77ada5b787e6dd97ece25801ad0743b84250e4b6f47a4821b9b53802893cc264d9f575972dc11af4532b2775af3061cc11f02824cbff7b9990298c6f380e834cc5148ab128617215c1176098500a3ce9cc3cb5ed0e7c5e505fe2e0ee3dd1207aee9908a1279bb26422049fccd1ae86a227da806bc73d280cfd0cbbdf42fc77e3666c389187e83feef1534e871b662af4ddfb7bf741fff7bb90fb50d8d52059a3e7b8f66ab04152fffbfba070fb1986be0bf173a1e8fd8635a4f1443cbf1024de78d4e6ba1045f4dfd37721ca7d6c4170459108022cc2cc14ddbae71ef4f33771fb90789fc7b4219ea97e6f76cf796803aad95eb481c453f5b7994f23f21781c49afba1afd9a664dd966bfa6f6076db49f34297b3bc0f8537401480e5bdcb59a1d7c219ef6d58431b262bf4a0d046f4a0ef424eacb901c200acee5dcde21ed7b89ad5fda9be67838446249e2ae86d4e757b1ad18368422f126bbaed79ccc671410d1c44aa913120243771aa41b2b6af913bac0d807e03db4b56b3c6c6c9f4416d84fa86c3491c9a80d3e323c36109138cb846851a3f0d85263889c318b03074c288c1b0d36a5527748193ed73f4ab7746b48e1329482277f7f5baf7625c0818f7a1f3382a7afc3db3ef20f041aaea5bfcf4ad8c894024e5136a6856e87fae66268f09beb58fc3ee6958c7c2d69929fb336ce23373d5b399b26fb5c8f6ced96cde8bf14ce89b0c29655cc8f6db47ca48eb3e64eb42e449c37689c41a21ac6ecd947dd538cabe1776677f8517e0b167b95bd97e3f71d578038aab4619a567aefa992bfaf6ef0d29533f1ceba033eeced6c38554cda942e631533259dfdb9dc4cabfdf3ba4aab9d8f9b7d7dacd6ef7de9d9ded5fc0ee9d975ef5920d047b47f7c87a49af1a093da0e72f5fc297e825d9c518a963f68e9c89c400e24bf8cbddddddddfdba7badb53aad4efce0883cf4a39f1e13f5eb0b9be52392df4ff47d9f5823840564a65aae97d7ad000596f5cf4deac65f3932b8e97a36579d0c0a448842af2155f687ded13dad4362d13f5a77a9dd6eed9d9d264268ca97efa1028d84eee91d1b903ae638eb9e98181829659483bf9ccc463a00f157ffcc727023a4d061bee33c29dfec59827500b2c21378ec1f207d636444bf2366477391e7cf9d9daf80aca50d6ac1aa813b3b365ace0643e6682394d14be858cb6413543bc9ce6b94385c40aa68efa040ffcc7e661c8f4e42819d9d4ef2234fe049aa7648d48eee711e3315f31e77c2a1e871299c67a70b7d17b6937e92e77bfb7801be5928343b952570877ffeecde73efd4a20df84362efacc0c67b5188238d46a1b711bd67f37d8826f49f0dde8b441b42ff89afb2041e7dc75f3b7345729d3cdb478f6515d15f29e2ebeb1fd14ad82c7fcd9e3dbf570a5c30226564ec3a0105a8223dd4448a0e2a3245ac11f291c276cdd4cc99296f8518e09db177f2fc513ac94776421f0a25ebe74ae210f573f5fd7ce9b9188141acc5fac1e30032f40021256545ae80fc356a2ebaa7b9983289922deb1df7986be147e67b11d7f1269ee3518c46a3918715e03157a384024f193120a0cb5fae84afc05f6e024781bf5456e44af78fbb7e806839da13fef2d7e484807c02359836ddfb4f7f1bef67cd18370d996c844c216cc2db08343a618cb1582324861f30f756e49951e1c3146eb0b4a810e217c3efc310fc0f459f02e96f84a7ca129e6a4bb8a2422859e28d50b25208256b6686fab0220f0b1a9dc21bdb0efafe347a17667d0f3efe1bd17fa6506854ea4cf8434f833ff4f643628de8bfaf011fe3cffbc293fdcf8a6f7ff44258dc3d5d20aed2a15f7d843e0fae924a745c455d8d43e95fcdced0509ad0e39158e35991c6f49f58d3bde94332537a10bf8d279eeccf0f7de845a14d279e68981ffa931569e687ba138d3f7e3f55b106c92a8937372bdffde86f54f07f1f26a98c5256bad18de843ffcde007a24328ec9627594e4121d7455aecdc9e6db3eeacb5d7def62661d74b19ebdb77ef514a2fbd49b01899ab24a97241a25c18f1f4f0775dc8a6f4a195c7df848defc26f88a7666afc88e4f9dfeb737d38bef236a12fe15ff9f95efad0d3ac3cfe2e7de86d5879fc9c4a111bd377e07b3fc1b7e9de64e33df8a77e1ad3774f03bef7d23bb54883e9bbb7017c4f468ae1b17552547e8ac6ee972962eb90c43b126d84cd6a1d9dd6d9ac8d1d2943858d0702b34e3fb68f1579f4a3c99467a391582384c5f22bf82039d1af41b2beefa15da79ea76e1c958671b7dbaef786310c86d96066eac70fa9fa7ec0b339b3d7dacd6ef75e7c6ffb6661549dea1d5644359ea97a8599b08952e6a01ba596da6ddb50bde36b31a1571f112d4e74bd751a078d836641d631ff332253f37db66ddbbc5b4a3374c041eb8040601e1d665ac79469b8fba596d6d661c6c7e70798845530f4523ba72743e8dd0af211d13bda07a963fe777b04e9c7311fb56a52cb9c871f7f279efa3d9b538ba799eebdb7a941628327dae0efde46b4097dd7792f126b4cef7dcdca772fa4bd1d82fce8ecbf438ffb33a2975ee9032defdf229eeeb77c27d2a4fce853c4d326d2907e3e493c5df1447a1b52def43690be85f426d2a78824b1e6c335a21f8d300bfe9e44fa4478a5f59166424d8844a228de6ff47111167d08ccd5cb538a5d33450120672e54fe74cb058050f42fe1377a51850f4f350c4f557a2710875d73d52f17c699f144dc12453f3ca21f2ef4be0bb7941260fb37c21bd17fda0d59c21a3ad503182511bef0c4199983d22073d0e701f9f61b1736f1fd8d904524fad3df7c3ffa4d3c81c499969414f1749fe585b0e8f398ab14441bd23be9299299943fddbf8fc5ef59c49a9168437afc5fcde9f1db98fe7b910d121ad2f7a72bfadb987e5e91667e29372b7ff3bde86f4a7fa3f237a41f3dfe510801203d84ede281f944333cf8497f93f2a397de8c48b24429234c923e3c26219c9792c0491ce3a8955df648e992dd9db877e1734876afce11913f73e6eac2c090d307b9ea229e9249199a0390fd4147dcc9c8ee4a882289ec9e1aa71131de85cb5065689a783138049e797c6b7b07287b300c32818bd02b6a62cc4cf9fb682504902bd7999e837e8792477fa2c473205d67ae7c08dc0d4809b6a2f378cc51fe2927b0f7ccc7380778f499f6c455d47bbcd2516b0aa9ced5c0be4ce9dec56dcf3d139d02a9d27efbee2d0b12ae0b65ee3c6fa7a39df6295d0a89143a8ba36113db57fb5a0af71d276ab18909f0947dce29407bb02c7b7a1f33655f76f42c61ca9f42ef6d842a6f0abb2f81a3f0a4ad84274d7a92c5f998abe6e97cf0b40b08156f90754d2901be9f12de6ccf3dea67ca0a2173bcbab043c0f511d9fed625c8f66f38c6b410546c979692f25dcaf47a9caef6d20b425f7b1ebe037dadaa7cca53f174c5196e7bfb385073b589a72a229919bdfd18f154b9a74979ee2f4cb6f8666b84b4df3852e6666b6ad7e6448c55019e3996002953dfbe02e46a023265df5ad945f672156f48f9ed21e03de9b9d293c2130ddb97fe54451bb62f9d6c203df8a4074b4f0ac113023a9f8264cf329f6a78aaa4f0549f546b409dde996957ab07db3de96bb657218935a4ef386ee58a34deaf88359d78d23cd1c69ff4352a628a6883e4becdfc6dfef634f337f1a45d91c69f249e34b106c91a8937371ff7db4bd6661b27643d5168ff0bb776e1db2e0ca3fe99809338b8a6d3fd5fdabfeaf48e298a7eae4634735364ff1187571d89f2d973d2d92e4a82df61fe3d3bca552e57d682bbbbc390fdeba4d327a5738ad79b5f821e24b07fd5f94cdf6b9dfda018701207262e98131d273d64f0640cdc1c44d40590acfd587fb43fcea7a04bcb43671e53869a9d9db5d6bdd6ead63e37a7bbdb4a47a9d159357b1db475d351331cfd46a1d13cbb675b4ae97c396beda427c511480a4700b37c39299d75ba9d5a6b5dbdb5ce39b5cb8de04e5aa7b66d9bc31083460ca65645ad26cae7bcf61850ed0bd40b31814648747d7851d7692c68e09b82c637ea6ef7d00c985b458304d22ec785762fa5d7250c577b90d7633e7695d5b4a9bda079301b675b70943f1918c7ff771ed55840479de18526a537a5defa12345fcef974ce30c5aedb11305a8377da6a6d754903df2c990461050e32b09725932092a8f003bc65c92488183009a2892174664ae298028bb26412c40b87141867c92408970c41b4701c21474a293176ff1b3ee7747797ee2ea5942ddddd09ee9f524a09be0f6e29a57435b8b6f582f02733dd140ec048802c3f94f2eb0d73d52d5a69b57656da6ab51a4716016ac994bfec1fe4cac71023f8894add2073f40d3028148f981b6208f0f20d61c8c71234e529764bb3e183d576b75a52468281f24bdd884f6e10250288186c1b1dfd05f6c8a2904aa041184c4400c6125e1c6992c78e5da1e5b1b5e0e99cfac30f42d65d7a6103349090810518421471451efb75a3823cb69123b3026390b184144f663fcc80e53cc8653828a488264400230d2f9a6c2105cbadc8fe384976cf228f294d586e7e9029fd8ba364ca04043cc894091025d8b142de5ef37a6ce05cb9eca60519f4d4556106c1c0751fc02398a9a04f3c253328f2fc20cbf77b5c578df4c1a72c8e72d5afc607c1dcac4e236bdf436b65eb3b3bb115dc083c3a8f0c64f115aad56a7d60a7d562f5d3f0ce95cb5cf601579e4f5df5429e5f464c8641812ee371d508faacdd48f609a100f78da1edc38f3824c9136e9860c1119c1a2b628c906c117dd822d367b9220002d8a7117d4a99f850c5934cdf86d783626bad3d42042a6da2ad24327dd0eb41496540c1a3c6154818e1a43229c28751698b359464fa2b33bc2008683421044aa4e184254720c1c1bca092e292c72e458b3cb2f880001606205869a37044b6360a5c641ba515458b3498c8f66196a4f145b66a4091ed92356eb27d92d7c3f20c51b2b56a449d64fa9fd7835e1818178a1843e7092eaae8b18245779029a596897dc1da97630b06c8e30bd9fed40095ed5ffc53846c1f6441b6fff60944800213d9be282626ff608a1d405163c70432f0a22a8181852982471819f27ad828644adf3381138ac0628d58826d950e9c70023a842cb2ed41b62b08018d9c976cff8e200dacf564fa16093ce217cea041b66f871823066badb567b832a53c202284309634111b9246ad62882458fb05b636cc81e4c9422573536881189bc133a4fe10c14b33a38b22e80f235ed60c3146307fe0ecd42566a87102c7a036f394f4f951c40f68022588b82162c81228332882881e22649e9279bc1583320041c4915491640858bc5481bb2c9754d103852a9c3c514513d0c037cb254a807029821222c421609be512254552b25cc203210c8165b9c40c2379e474727f0b592e29030ab793fb4f7f9a7f41145efdc898db836558aefc67a656373623575576635313c73bc58e892338c3e7e651927942d0c4519727e6a896c01a99fe073e7fe91373c0132df0a9becc9b6cefecad4e3c254b027671bc3db97fe6ea5a2153fd3e680d21f78381f3335792d572e589736313c4f1dd020a05136b82f344d7d1cd6783d2a2dccf19e19ef055e7e06c515c2597943184a5638dcfbd72bfc01a711e379fdc4fa7b74791dba5c8fd3dba0d727ffb14b9474f92477742eeef7a24f7f7588b90fbfb0ec9fd7d995c2652a689ab2a155a74172c79ecd89386f2421e3b763384486e1de4d18ba8f2e847b6edc67c62e078dc21aeba3817e7e25c9c8b735f17e7e65cd8d5d98aa0b5345795c9681ce4f57071a61e7155cda93935a773e64ab2603a01a139a8548df6453d2b15d10c000020006315002020100a078442c178344c1365730f14800b718c44705636138943510ec4308aa290310619430800860001646a48a803c14ed500c05468f837c3d47226719493c9397ffbbb18118d88215cf1250e947c270345e927ab7aa18b9f5c481735a3e2c31a04854a86eaf16b6f201153c6189cedf1c4ecc1951dfd8a46bbc6d21dd080a344cdc47e4fbf256b0de53d91078770e85942dbe8b4770ef0f45f0a4383f5228229b9a758a6b23ef26ed768ebdabff29107cbdca8dd815783da298769d13d06b2e3a519a5d02e4437b9c3cc9aed8b187e0dc49521ae840205244377ff4a0420d8e773f7d7fe113e5ea1414bcf891f3e5b2e7d930bdf7cc843f3992e59cfee307732c89d9a3aedd93e5900ac3882dcb5beb41c8eb6a6e601db173ff165ea9b3d7227a4a02541197799be64d6d33c68dbb282b6104ebc3639770705059736da1b2dc6aae45cdecc6b0fb670e0d942d9d438e3e03c8cb3f3ca444039908c3cb6f275109d963b7b3c71949ded5ab0285cded3c8461d67084872216cf15c8367c47d9ff4b4596de56171e515228c5fa297ea2557f2ecb56b26556c4c15af3c166e6cb65b1c1f58991eaa7c9d8f4226af9880b33a799e7279158187b9ccb493778288222cacad7a1196c610764f9e5851b699d56c7763c9c3a713b4ca6c9d849d7154323de9d56c700b54253d82db0609b6ac4fab7b5cc8ff2b1c2c07670fd579aa625e1bd487695ae349a80dfdef0cb4069e8dfe2e6ca825a08424a6f8d2e5c5832b09a11eb46009abdc22b81779ed32679baace2be60af8e21440c6e3835a4c40d6bd5462fa356d9673d0980116325c423d732d0a37151062040ef79cb19173f1ba96b11c58429ca724ec7cad878c3c9c951f2566c958e22fc88e4943c5bdb422c68543ccfb4d83ffb886b465b0b3a8902670baf342fd896aa3c8a1babc9ec9aeb3fdf9013d8d163f7b86fd9b49c09595058eb04c8863a371d8921f1002a58cc152ddbe6f8d55354b1738cd403461b8b1736299e9dc7c45aaa7b875334800ac46a6ff842b40776c791b91b8f56eb3b8ce15da3af6cde2e6c2c03ec324a507d38fc3ffca8a225bc6053859c7003d4be62903bff70b125dfa6aec337704e2d2837e68300f39692058d485a3cb27fd268a5b09ed82c1c7da652fb2db2ad398f273702fe353821c0e23afae8e20ddaf26615604a94c5fd60e23bceb4990352acdd3539a05376c4c66c79bed344586a75daefd42e3728aed4d753e7700a51977c2ed8af9255da899f3eedc43132c987d5290f5122597e2c3f4236dd8cd07c190214368cc482ca357ee0121ae2c3237c7e199a3ea0284cac99963958ed22768cce7ebb88fc0a8dd30439a569f71c220beae908aadcf5c3ae6481361d9e5d0b62e5fb03ea3f35a752c80e8d6d7c2f62e49440eb066252e5c729dcf1a2b87c78789b0c5ff5d51c57e6c0d2be770ce866d2dc8f6471f2759cb1faa99213ed2bbb7262cb24943cadce890893f61a4c86d51decc8600ee1aa2e0640604390b943b6431aef2583205a1d29661beeef6d6bb7fce320bf1175b7ab187d27d1141802975167613a15627ceb2e0fa1792954d5cf85516088b1c318a0e2bf91b942993a0b8be4f90c7b582af5a663e96995f636681897acfb1afdfcc6ab982cffa8c8ba2a97bd21581983123ad52c26b53cbd9f61e4833a9b0f8400ca632b55780781cf9a2dda71b4c4b2f120a694148d4a226e533dd01ace52466d2a61c9e1a8de3eaa38f66d164ef108e49a7ec0fbf30b7a81ed7594bd3ef4140d3ce41d6a54156078635360236ab580cf10542ecf96c991e2716477b7cbb71bed97e5f2e8ddd7f09bd63516f025a77ecc724488f0a9b85c220a5e7b08fe423e85ae957d6ecb08b2832e267ed9e37bb209eba22ac88654d655d316619b08851469ebe3598be390d00da77b17ac5f9370c3821460e53b82b842dd381f99fbf95403f422cddf419207a897fe0504997ed83c8655708b28963eb8594e9b2e9741d82e59a257668ce8963419b3ce038d81a87673d6fffe701ead60593842e73d1b366a7d1ede464620ac8fbd976b2dc2bd512a326665c842edb522928bef3e25169ed24e510ff91704652a8676be6028db262f22632971e4540faa892558aab8eb8834c3b94412cb3d70749c890eb51b5dffd9ef23e811e79453312bd0543f69c2545456020d5df71aa5eac8bf9284399c26efb9d8b5c63e99e93c106021c4eef08110e671c642a25955759d8e842b63c2125f3660c9098fabfc863b41aff3f3b08909d569c975439d39246c92f96c68dae72cdf5fea0a50825e5803d78497428cc4b8cd2c2e1d745186a47f8950d4b71d3c4e1410d337bac69003b275d0dbaf1e00e5da205e566ed09676022a8d453a4a24c79771a03f5cfe419205a074acebed9519865e65c743882cf00b1aad31c628c6076cb9be39b1bbb4c23c93ad8cca6a7f00ba4063d17a5126304ec6546945fa1b1e0be8c110339d98abd1dacf640d5a9cb95c98200b3ff63b3d10a6368efc0a0e69424956e1c033254783e03067c0d9a45b180bbfc59e756a4cef89162e7320d873d4d170441347d68763ddc3542b657817c69ce2927350af7f9bf78b764d30d55e80e251ebf0322b3eabe7d486ae41d1c11a6c9e39555a1d5f5f8d364126b6a55004686153bbc8a061dee1610a6e982dcb0dfae7cffa5d88b1e674547aa9509ac1679a826bcd9a3ed337914eba5b882cc0e71338822006192f01f806762bf13f6456e6dd0334b5e4d7b33d95c78638f1bfce39f1a78bff38b47a14f780ff8fcb427ffb6130885e6d895941f19b60426af64ccaf8eb9b04ce130a5668d30d4695b5f3208c727c9cfc0a25a4e1ad1882f08bd303fd647218941078453259ebc1a987c1315842cc25fe5940458ed857444c52a7838f54b8b0d167a0bb687b42a087296e6c99bf39dd8d295060e2994c38911866173d20a297d4c199d4c9c62dc9cfc3d2d922f5b85a8834efc97d170cf8eac9c1d3c0b601e6dfcb9dd8d8f61c1cd11c924f854d4a13573737efcf5c220f7559f03bc2c2983d8320703ba9f1c74a0e14cb84f9c03cd7061ae317739f608907b3935bc84ceaff4c2a5490e0883c4168d4718fb77cd34b77bc2896d5a9b8952912abfb143dc4025a4ea2ee9e101f41fc3fa6c28a7fc52b1f7060c6cb3ceddd42aef9a87ae7bc82dd392228524001cd75dd87961f8752ae515f181fa816d06eca77686fc1d428301171e4e45a70695948e426e95a04b49eef4cf5a06129004349fc00ba9dc288b99aecd84b64d2faa00e42610b2d958e84997ebf7d77ea099951f283ff5e05fdca2d44bd7719c55207d368a3eb841a14b5c85756e459bc37c75a1ddd2b3b953024cebd7a45330bfc19bd21bceb2278c76af8187df400e65720ba2c20dec283ace3e244fb324f1d9088b692a3db7bb0f56bda748a723d71e2d3bf768b9f8230340c15378c214e58494e06fa49c0c122d2e2c246a7c63443503e5ce6488a13bd9b48f4d6f504449577b9af415f64036098fd884985ff973697bf40b32a017c8d9f61467344f67e3fd2a76c9b014a4ab1d995b81b2d0696cec29b5d4fd136e58ead562fb88081f7fa3c53c9690ab6729c7d21e1e8ff301052bbe18441e3507989eb9c0f384b1d4a052ef74edfd0fa9f7cf6e4cba0bfa1c83b405524d8802dbf3af215fdb172a2ddf20479216c9b9606efd95ba63dc8e9fc9b1f3671e20c68b264a748b57fce376b99dc53a04e85b4343145aefb01926f566ff0385bd57d9cf6a303694e36e7935f32d26fc24832526ef60567c4f662cfe78e1e5f1e755284f444c5f0736dff36cbc315072da7e6318a3f55071da70f25f41900dd32c8cfd2735db88cf7c3431179308c1f3ee2a273782318f000ad2e338e7070455f53d401db05f5f4502c5a6c2e58ec9bbfe76057753368f863b95d1ab1ec75a7833a1f7e5c000f3c4628d2b2bda16a41ab406334fbe54d6153f58f7c8ea77dfd88203cb17cd1d733a15ae83d7016d83b6708d6bf1646f0fc512a90ffd2bb198300eafb6dd38b98bc514878614299bd5d70b6167977f92b2362dadf311a1bba689020fd18d42a68a9451c1a9db545dc22a3fbf32f3371ed508fbcaf234130a81b558c5b3edd9e995bd3bac578282ee99f5438971c042408141c23f5a50f30b1da8178e83332de05e9d67e7121f8342eceb63c028b73ee4d9d9b7f74012224e57ddeeb1c11d04399844044f520f43a804fe2c808b525c4b3eb061e6134e59a8e2c7b2cd1c1b3aa7f88fbf3df6c801c2a3ca5c412046f29d24c1e6afade2a0fb1e0fb8120625692308baef9e9220e42c50dd27fb925ad141f1a21c43cf1351911915af97c6f6d139350804279136acaa0d39b4d3bd63efbf840fdb61da34bee73d473f93c3193d8e8812fa81701638b3874428e295af93df745cc63c9581da7a7fa2131008557a3eda6e3d3b26aa696b16569d6470b835b13a68cec043236b078dee80e9f9aac6c3c13e8df6c26e60336fd29421e68be38d51b7dddd006755a0ee2dd35d4f28fabad06cf0a5cd03164990892337fde7baf132ccb3dc2343ee35927926baed5bb36de0b6371fdb91b9504c1eef1aadb77fa68d4e653625536cdda049690c5ca24a87ce4fecb78ab14c2e8be5470e3ccd272edb7eea120749e8084c00c78dccdfac3258201caa207d26a67a8886a7bc581d9c22f93121d7d01146027ff4c9e1780cc477921abfb9293b70c94cfc8afa549d2d9130ac221b9c3e2dba428e6495a9d731a02813e71b08845af18058ea12dae788ac8b37c81d32b5635e5340f84b263bd028455854dcf05ca53eb85d9d5d25ae2bb8457886f1d443151937204b42ef06c70588b585a1993e46223bd909a16c56e8da641e10d219a330cc0c142b4a0995136f7d0812f888239e29f6ca043d38e97699316b9af9cec0b83f5edab8e25d1a2ad80cf3cd6fb5b100eb603c87800d90601b462cd40982fb0e8f068e0acbd98d5c2dda9e585ec42e82765ca52fa25ccc9c89ca9044ed884666eb5531d03d4728338338f0a0d5438cbe19485c98bc274a5a6452f35bd7d650ac10017a45da15df80d90e4d62302ea56270b602256ffad2ee266ba4462cf4d9798ad74a185e30e952a7aee712cd9366aa9ac5352af67e81bd93d06438ef68c37a4f273fbb7ca5f321b2f760a62692e345c3078ecebde6d2aca9da9030de9e1831e0a1f6cf9bbbae2cff69b7c82af94bbc17bcf348e9264d4a6c2aa3a4be92d68acfec73152ff9e49d4ad9c052a16833fdd8203857bb0450527abdff5365c976d2fc854e28f4412e9b53f8e79502cecff54b0393f5688e9e74d17cde9d68d21fedcf0e4933c3696756c999058e9ec5718332fb4584a3e9833f011bb74422b056cb4980ea2cb9782e45bd485aee5588fd0f18fafc208fd89ceee33782898e1716b60689a35888751079d04d6bd4fbe0838c3420957d660fc117c7da39609bc0ba033d50b2368bb1f9a7f8023946e511d9c01237fed08ca780d61881494bb09132f5d42d2054003fd95db0eeff1f0e3841d3245f75da150e32b6567b59248655e3b82c19f482428c4d5e4d4bc0565dc87042adc1ba08b51680f0c02f8a7d1f7d9a2a67c56276899d5476072b29d9f7e3cd7ac4c37311ec6fc5c316cca6e234b234e650aa48232179eeac52465efde540e8ccd8f737a4afb56752c2a7b7b96d4208b4a6e0cc295cd17e2688c03466e0efb815b72272805965f1f25f4a93216970ca648b15d11a8a89d14f9250aa30a68e12698e859795d7e7a4ab37885e2f39f9e16eced30da2076d28902fd62c80331cc802a662985950fad6d01f0e641053c8989cc3bfb50a649a567462987224c4ed735f6637d2a620f5b5a6769a3c8ad4ba20064ba467947c68a6b6e13d4584acbe5684358eba51efab425e881e48e745cc4b63937563b6efe024d72a03ed138530dcfbbf4de2e62c7e635e5db58960fbe8b84ccaaded2357457461d44c02acb473e01e5ea7b1c8971461b31d1f1dfa60bb08c2d66be00950ef6cc818c4600b7107ef3544d31e61a30b2226ab7ab2e3a91b25912e841349f76ad072145a3056fb6ec4ca9f073915519e1f1b4d9cbe09846f2b96124036ed7876849fcfb05a9bfaf470cd278d19807575353601f12980d4916487a84c209429db93d301bb0246d8c28689ddd5ecd7709943e79e4d370c6cffd9459974d1a4b9178e09ddb2f2fcd909c33a1f0bdc72bc31afd6e72673ae3b25709807401f3e033eb0141e8043509c994eb38adc00f024bb1686b1e27fc3744a8a1bf7091a23e2179efd7503e656f01ea5c8a9974eece0b78f4e6724db3fd1673196c207debcf650e2e22e343c09498586bd3717577f45aac0959c1f4684a6599092ecd378157af0fc069b99bb9f26541279a95b3d8e40b0fbdbe5b3e27e1c0b2f9bca05346d42f6609638e32789a9b58628019cd3a07cb744b90d991c0810be061cb684b4be1430dc93e4288426f9612d7f216c7a5e85a1589d8fd700af152efd8cc5014bf3bc0f290378318a96b5f52930ac463a316fc1c265338379b78b3d8cee4ee36c6831c0d3384eea8c941cdd78f4e5b1ad930db253f2e8c065ae63910142ab7ef169e63a4250a830d09e90e5f02b26024b240cd95404dcbed3c423a03ffa33771bae3627f7aaf5361d5f1d0fb67b1382bd955b6ac54b663acfa5585a058aa70ac031169f9a10cddce552fe310a622748732a0b2d03b3d8fc791c1f2fa4d1bb19d1c83ec884fa6da9b1af3952a658e2ff2cc538745f56a0e84b9ef667d22ea806d7b4ce68113e2927f88345eb0439faa47883323c885a5249cdaed060d94aba34f034366d03a4f3e7a2194843275aec28995faa2c61398ff5c59e9506d47496594388d8e237b6ab68f6b2d70627599db11c1b5f68a40da1fde83c93fcbfbab304107b1207d2d48793ee91936124d0f67186bfd8600c861444f3b264bac2cf5e9d0107efa5938388a56a9ba379f0e726c9dbb58c31d334e00d024a352a75770b6d2dc3236f539c85dd9f93c42fced6c403aae41540837b127ecdc96cd5c89b9c689e66320a973a7be88d4b1d2487b36d3c81f4d2d9de28b90871795c1db74589487128c7f171b831c1ee8a0e6677860e2e0c20828cb99874431557b8c5f1e4ccdfdfafe1fb969b9311c9cf88f649b822ec4604644baf3465314c74a40cd0a886d9808735f86a9e3c05511d85e302f5cbbdb49b7261c07b9a0bdd0900add0a694d5222655dd1e7965f8f2c962654320e54499eb19cc6c702b0d19edf1b82913cef8d6b85a533ba165c2799e1b5713319ea05ae1802bd15e7f2e83f953dd4f9f59e13813e0661d60cc5cad0378235aad79ce57f72de1c450eca446626f7a1cbd49b197b94f12da9a1512b2c6a7d718bf51b9ee6064a465f2a1b9f7879d9006b9145c32daa3f726c69c69263a1922bab4384d2080251ea6b819bab594f61447589cb011cc8f1b4c8744fd06994140b0cec314a885f48179c071c1ccd2ba947831cc85cea38c9f706f23875c377b98a8714861309026b58b2609bf6120ac731a4e53d1dfba34c2929289db3efa2b7c82ac1bc3a21be20b85cb68158512f93c391e6d7b9f0d93a983d0212b7418daca795b82312711927022df7a665175fe1fb4592b9e005c8981a6c482e8e48b227b01c4669468be15149577fe423a6c38791eb03156216a1fa33cc0c2846012692a924034fd388475700d71f2b1c4cbd13e13fd68de593c2b4237a1e37eb5295cf1a44f74d7af24d40edb4a57f189d226aab09b513b17d2216bc45e084bcb88c248ab7045786495f409200addb056bb70367c045b3711314239622c0e55ea5523ad28dd370d858d1051427d26b4980f2cf368f1b4cf60248616adcc5527591a0f6a7247fa2971043ecca31ef87adf30ddb750516b5549d67031085c5842d5e0ddd5e0b0755fe130ff7997a2a9af94a5983ab0390b677dd8f9b2510a78f46f931d72f2bbde84c283091da66594e7a0c8c68f098b8ea3bc930b5435d630883085d833ae7b4dea7b5f7d820f9d208bb460bf38e20244eccbf88ad9ee39b51f39372922f85c77dd5a5c096386ff3e880abeb2e13efb76aba64e2c8a7bb9aadd5e9e2284da39fc28bf9cc7cac4b6d75d39380315d14176f3a4c1644e0ccbc0c629688cff68ca4a8892c50940efa0c4ace1ca12f01c485cf3bd1499ebe69a4977ed443f56734ec94656f780cd8acd484ab4419dd6209d1bd1200d26e2e61ad3ee3e807cc2fbb027e762ad9b8bf8c3ce89ff82af02b160aaff360a458a08a54744e11bf43d0dcab21a7b29f8f5e9605aa68fadb6b1df372288208dbcd4123b50f8a3a94e09e82206845d3440a003c18552023b69ba862d4e68f97d97c8e43384450ff0da778ae86aa4ad6411206203992d9515650476f59a9afd6b51a0324acb71ca0ab429196c756a7f5489c802639835c7357d673b01d956870616ab3ac328a19817a5b057551dc38020398600ae0bf8c4ee0adf742602010216808b7b3bd5d013e749941353d2fba518486901b1ee95374af6a20df5e69f1ae9b2891b9cc414a1e101346f7f9fb5d48e2ea01a922bb31efd6da515024329b43f1f7a4d72b8e4ffe6e00809f0accfc1374f0af0e5fc870e24bc34f9712bae9148ab31544f1be86cdaf7217014906780d723955d6d6c2fd5b1c6c4fcc1c5690529ba495ee8df3ea142d8159850065509298d46b3200924034b3c63d06c4e45edf44070387ad5d8757bbd02d08319c8ac53febc3c2e2228c24b85d12c4bdb2e04c69114576769ddfa34571a8d2beb8e8107e6e1d8156fc48de2a1d539641b86be6c166c5779ec20e920bc62efffd60601b8fd99085f3862b1476d77ea60ee46eadf7cb27712f0cf953ebd759de20f2021e55addd812660f9e9a51f74292bd07aa6fec6d585fcb39bb829bd3ccf1abb6584e43bcc646a3738563e1dea4e52eaaa8517bb64234c5fe1a142626f189a11ed951e4f37cd3923c6cda82851e6c30c531e310db69dc71dc8f7c0eae83c962e7099c85872f3b0bd15a7004377f2d674175dc906dbdb361e226c4cd401a6ce48104fa20174c9459464620cdcde5165d407adc8808482de0e2069263c952a145d8809a3cdbd826572bbd52a933d97081ab5f2aa93e9a3a79dca89beefc08eb05e7bc6ef560140638a674971cc594e41d569ca6fba5964796468458c677ca4dd15ce427832c27edc1810c5aef817c10a25218012d8b4ba3527ad599715b615a94e598282ffd206669e84e0d5282dc159d1f3d3d4a482a13ff7bbddcd7a7e7f6704245d70ce25f40ae1dafa50280e7c43285ec2b3e2bd8f96c673c161ee195a574bfdc30c627fd5e4a678bd9431c744efcf0fa0c9a4ef8119949a09aa8d9d97f9ddade47479ad8afe06ef8bb4ed17466594cf6a7dd631270638129f492099cf649146fc694dbdca019d03bf70be2cfeb0266a13fe94fffc20b02083dc4c6a41b44d39cd67bfe6b185863ec7b07c1cc82e9c181d0068897164e0714b732d8382fa42fe934d756f30c26dd207218bc4d2fe5701d11e6705fd5f5dd6beaca29a31d03b589f255d7493d5cae6368d41c54d779a21d9f6aece99240b0daf5418757c6960bfd49f0785d202e741c954e7b57cd0c7d1c61d1102580a00a899d54cc46e634d7c7ba8366ecd38b3d74476a98213ea5c322a821a98fcddc1d14461f8176138ca604220ff164edbf5c57652533ec65485877aa7b14a11f6ce8de70453e933f8b0ca8e89119903516d0fc23ad0c349db001f3f7ca88bb792a8ef4cdb72c7a7da39783bcb54b105d3bd496bc0cd180b8ef0954921dc240e612f23251eed8e70ad6047fa79328d1ee94a0d3038bb58d78f1bce28ba6ca3c168bc37e32c7e9499766aa50f2364d9816bcd88737466b9cba987357a2ce848a892aeacf1d43203ecf51a57288fa58a7d6e0d556f9dc207897d680502cf4d28438bfa5c42459a6dac85d3a828d9c0edb0eeb5c4572ffaa9334f15da4e7ae2808ffa0c9fdd155facf6b96435286201e6bb7c3a8ff1fccc7b5bd201b4bc987603e88f8ac584b6490d0d71565f8b810e01c9a97222c6069be930fb083156ab787dedc2bdfcb216b7db190f8bf3dc88a1924e3423fce2665ef9c279fbbf20b8d1661e14f6e91a832ebd9e9e7c318dbde0b97f9a026bca4913bc735d45fcbeb464dee8e41ec6df8fa107fc32be19fcb5fa5fb1f05f4839be87e6def48e20bb1ffc615f81b920161636f7732807bb5023de18d9a99248e02f052da9498caf49a3d0532be97a26c13b4b5c4745231e1144ca9dbb015d0f497fd33c4e007d99458cbb39f1cc098cb7c0011be1d786a4949129c11b4d15dda96f699f4fbda3fb31061290b9f239c9cdb13c070dee4e84e793e470894b38c17d758833db1e6b1905c729d4a262778499f3c38f2e9af7e2a919badf9d631bc8635cfa99ce61b350b5ef03929dda05aa0b4864426c21f110d37241a7354cc950592837b551012398bb31050cbaf7923fc5e54323118884aa12d9d9026ef05a69ca7c05a43b8495a5e60628f4cad46bb6bdc7c67bba815ad40dfe8e653a75901dfe1444aa0cfc0a9d75b54f8c3c823d64702a473e166204acd32e427ba0fcea7a9cfdbd30e40211f565579cfb6e934a65cc724c58ac89b4597bf2ba00d74a53211f8372cc0d13844d0c81aad607db35a69b823cbc00f61ce2096994f43e26260eeb2b8e73df9db00a5935256fba62ea55f5c1a39427cc9e4415dc536c742a04bece1fa9144b295a900690355086100f83883774aa05f46baf7f288d813f8aae87ac43d5d52eede850d303908f69fc554045d97807d404c20bf25b4c881673fbd61e8d0974c8ace38c46c982d817198402ca645b64d6c371cf7a4fbd0c4606720bf2af842ce414da12936cbe58cbc4d697808d9bc1a68106b7bd6672b27685426402d2b8cf97f0dcdc3e44157b2619d1ab6a309aa12ba6a24c7ce7e800b06347ede577d956609a8541db4be19ba0f53c360ec280b89935a476592eb5d6ebcfbcbe8953bf22e2d539fbc2915b09e2f5c59f970c5d5c2563fe5dd33b1bf626b373a13da952d2004aaffa839ed0a3ccb7badfc0dba07ffbfc97bc645bf5385f3e9a02ad22922ec1f7d280583d448b2b00523efc3c18572f30acd9228904cdbb093b5b1ba6bd9c666e7011b7dba40de668996527869203a9574348fbf94d86e7d31f0f7d9dd440b64573e8750d429912bf2445e3be4ddcf442a20624fde06e3ac25aa58376e84c44ac55db37aac764bb45df99e2af5f100e90573851bd6de207e8d4fde1d1b966cf4727d306731599d58a9409500d23b9c722293774d87ea521d27371aa36cf2be6999aa10f585e35360a8e4adf3bab074f266e0cca4ed8ca789434b77ec7018644111c7011627ba562b4ca91a8267dd80ec78d1abc6a5df5b827c48a5b0fe76b7eefdb3d793a579bb3e3460df601c305d3a4e00bfe6bdc852d46e6d5c801ae494bf3cfa37bafbf57bb8aab29de305d44ee2a0443901a390be1d2ecadfe0c96cde36bf5bb76973044ff4062cf82d25dfe289432d7c3307ebf1e6072c25a52fefbca369bd4915ad808f81993b3683a9da148b812f0ea0e6f3368137ba4d0bdcf9a0c6a4702862d4dd826e661ae074a2b6811d4ec93e724b196b5ed95be008cff337835c29d24374cf606d15cc0439b8366ea700cee2da178fdce2a74e7ca4a0a5674821d43197925f685f1788b4769140cb979b8a936c560e4d4969d48a2a22aa86238df7731621ea6ad4c68d38739a3b9bfb998a1986435ef06a260674aa4171dd7dfca27a8030b3082770cbc6be4386111de4945e548639a8e4b3f12e620b9702f2968901a30885078d934ae441acf3e21bc6c3d2ceb725261ad889e814208481ac8ce8069cc2f124eeec9c709a1c349c404f8b14b2767fd1a860c7be00fb99dc42d0cb9dd806b7fe5e052818469df25d986d6170b3f27db5c860603009c67ddbc235460383995d1f2de48fb2dadbb4dece3e12b0e4a99d42e2bc0d1ee19ac3bc9fb86a99d03033a97320cfe8bab5d4b58d5b0d1ff439bd949af1750f2a0877319f5b4bc3b88710fb4e459a36aa21d604adecf02c6bed73d11f30888b0b9d66f369ac25e12b1a25fb29a010974242168beb43651bb3faa1e4dbd160926770020b13a74552a1844f7d0c533785fb418a2b4b5aa0c21fedda544f1831b6f95d7f1f26612ef87b3f4218263e040375bcbe12f6a00590d4ba240c0871e5434b10647579e180cb2c331014c6554670e6d530ee8f37b0c020c75508a56f9520fca6945ea2f7a994267b23a44d12fe5d4405b72aa95e8b7cbd7910acae684ae14680c9589026612ca2c9e9805fe17a00a0f102a1f86d64adb1e1a52761b00085b9615c8f5c94d3d4a5931bd8af4bc26b2b7ba1feb26d1ede59704b468b6b032f1f26a15ae7021a5037e07c60748bad151aa105f0e1b17b83e5752df21d563533223c66bfdf929ca78c9d399272eb3b8c9823e7d8faeac8ada8897ddd15500a4afffaa405691da4bfa9a3211e0ebdf3855c8d596a8fa8a9367880a7470b6379fc1a4754486068b8bea1060f17a43c6cf02c274f8784dd966b90b29e27a8103a26373712367b2a1a82a6320fe137bcf1611ce6a1c3350fe1541e8893c9e63240d183ba65855b165be6819f5d5df5d05323c9df38e9a4eeff57581a7ab8f100ced40bc4769ee4dd793e317bbe41bfad1429a18776b4c40630893a87ed381e31a209bf0cc0733074f25fa62c5177e351bc1bbf67da819cc5d492a14ccb7c7faabf65c53d463de18090efc6742f66711f5bcbe1e59e71e043b237be4ded60d51d1406ca8e615eff64c677657eb9771b53af3fc12d26138031be6dcf8568d03e2b8d14563f81da160eb3ba2695ae0b013e2a35760729f4af90cedfc272778021eea5d0323a5b20464e665246141de29b09a84b3a9c2b0c8c1e1d3a3db6545af5c83a0c8d9f6edae8030a74d04bd0542e3597201012bb3c048260ccfd089ad038e700c840335d78a1f539dfe1a50c90407266ebfb689753112c0c6e214ae22a49180145386da21cbc4e27a4fec74d36f5a7363303303bc14d2b2c2cde2ea0f9c861aca56cb108d3c9e488f88abc9e53d3be63b91405e3b8aa63110604b7300ac9b1318b6d858b991cf6aa2ae9f6a24760037ee4d3264d01789c8e2e90a0ffe6c1b58acaaa395796d441b233c6c473aa464dc9c5591c34a422ccfd9a760bc6d7dbf1780c6141591c0230fa474668e60f62479379cb78a87af3cf66ba0132bb431159a3e129e8ece206278efbe3dd372a7c9f340e453373021504ce311ba733a4c789d35835011f471f5faf8222332088c71c4ba503814f4851ecb9ec51db8b832f452b9db80060918404cbd35146e221e870813b92b8bdbf4081ee19bd6c723588d4514402253b3c39970239e3c7f260dfa520a14fe2d45dff3bc11dad08886d61246592b83e645501e7639903d019e38552762459ba5d9b6801b8ced71fe2dd5dad5c40e02b85c06172b04118d251f375ad31dcbd17c20c3e0b14c0f6855beef5621fe2a5d083d580f33eb9ff6e944a126383251e401827f5cdd20026083f57a187e75cff9ec32030dc0d663b391a603b39a11391e3d6083541e2c76844e9e226877628511c43a6d08178aec8626107f74dc4c04cf188ab2574115717762c92d454aa90297190148ef2806154af03fefd9f84916be42f4488e61bfb48c4998f11eca1399e082252cb17dcf809519a82bea074c20b4341cf155e67b8a4f2c24fa25b1c9e4a40fadf5c201a48b0b41e94589fa2832b0c33ef2248d27ff7ad0b87cf37e231aa16008fd3854b00a454fa8005a92ab89c4ff0a8d907f2c12fc39ec1ca56c5dcdf6f2dac8b7ec49c159b78e12e2e621b91866e6743070a1bba93d0ba8f1ec8c3bf92b9f5ca0108bfb3a92d4eac71e0a860cca62c60e69586535a83583e11e1142c6e3d6aa4c1890fee49082795e150f5d7c61510bb0a957c1cea26e39d9f050973568a0b047e5bd67d81a571c93fd6a681115022839084d403e0f30e1b3d7bc58467772516704b808269c737721729d6b5b14e98fc8a1027cc2438b24e20c49fc30e5b9174a801d2d6c1d1e24cd50abf416db5002766cfd7660b8167a2e27bf22f1b9a39d3d45b0881913c62b3602c09fb3cfe1208a25a22e6bebed9d59d4a9d5d99dc01b1c78585ef832a452bdf1a8a35f6c8a9bba0427cb4017fdb120635a28de7f60312463f11443fd250fe26fbcf0a9f808e33c05010294d511514d116b3faab2b7d1a53c8fd40bd5b00f15b3f958226f17d9bed006284612639b93fa80edaaf5bf433768117d433862ec234e3d0304cd648ac9c201f0d7a7f8b0ec99d88d8df415935085fd1c940888033e3351050c107e503185464ab420efbf55bf0505f4f7249befe521eb0d999a911cec69d305d2994276fe8ab9a279b5189fe97332c4950e7570f7f2ef7de9798d30356362d903238ba804dd2bd3229000b878779d782fb4ef8b5586d055aa056ed0e64aebcc4a4234b682a891247127082cd5006f994c054fb947b3aeaec2d913acaa7d81fd08ea0517796deb021ee8aa003a08e712aaf62ffbcf6892f6d575e09238b68b45a29da47890ea9890739545288b885d9b243d989b0cd9456206d649c1823276006abe02adffd76454564b0dc0668588c2741609d3c95de5a24176905c20abb4c025c3e4b1a73ab760f717022180956a8b94c41cf18490d6943d76dd549596439c3ac836085c4b6bd42a72c2178bb82d5e4a2ca227a32cd4735360090f4cb8fd8a78506d338d30f8f6641e5a64323f3ad9450e42b548b4c9cd3fcdcf9557c0b41512f3c5c7b26aa389c5f7614d1edfeab8aba729e856e7170b1a5a62b7adcd53f4cd0ebcdfe0bf09e09becb116ddd5b2b20c3daf9c2a481087224eb9498b02d6e27bba4de0af7032f4a862b6bd23f5bb4ee939a4a57605ff4d69556d0307a76fe9103db521174a5af91f32c4edae49bac5b48e64521bbb2311d4635b434ea2fe62e9ae69b4e7120e59b2a8f38f06de3aa8e9e70fa220027d2b644ba298cf28872e1377b33dbeae8d74c4bc21107e90b41f27dc398f181595f3d72817f6bffc3747e9dd9fa6da6677c34783dcd8a162d1a50e852f031b2488e24973ae3089d874b7165ee303f395b151f48585bfa0afe74633e290a3629793c705d5f9f9769c913385c7c2035a839f6ea5b2088d08766dedefa4fd7b599ac8fb0eb2858dfa6467be4c63a9135f983be423412acf5c2693411d4738e7fc08d69f7459a43cf7d39ba09c3dea105f39f7b9897c75b2524fec93bc311f440b77c856cd7b599d6613dc14fe3afa3e8923db54e40984863618c401a17bd551c330306e9b69c48b76833424304bd1d611f09e54409970305b80ee296645301d353905c61e819a368738bec77f2cf0865b01c100bb30df916d258ca437de2bdb2f0ee1794b037e8ea58d19b7bd4424bee573dc375606b55053272ee2b4cd29dc151a1f532beddfc145649da6d0af328f0b83e5782c318ab952c8d20e7700c93f1979f860b9c27f75e42e373416f2cc7653fa7112a2375ba188758449d61e635e87c258f455a95780ac25f485cac403bb4baad06942927b47c37c79be2a4fc13304dfeacd7e6ce35393e05084aa7a8493199f16a9387906c87789f2f32523ecc3d9800c5d8018f09b90942cbb0a007ffbd54ab415b4cd6e7f8a9e332ac87017c380b0755bdf45d5fda0a97a2933035f009e33c8d299aa6d76ab197cfc48e971bbc2ebf9d28d194bbae33d0784377334363298932c36bc153f87f82bb97be8559dd1bdbd7b4125f1ade2454e6c4266e82cf98dc527afcb118b08e62996bc901a2512970d5750cd9f2b05a7b5dc8d83006a9e8b5a8227a34e73833bb152ddb522ae8fd8b0e1241ecce62030eca52fb04dc90cf3f094afb3704116af9cbd512963ba762e52c90b821fb8f84f3e05846af3204513d58356ec42f6e1365cf3ddadebc207bda15441b6a9c2c62a6f3ea8b048223879e9a7660ed5d8cd7dbd30419f65843b7a60f024972fb04fc989ffe1c5df3e3ae38da64582ba9e47e47eb3ebf6ad1ccfdb2eb43e5117122a748e5372e5b61cc686b38193bee840573ed3f48f48c68036a830088e94a4a308d33150fd902293d420ca35112708fc30c75f9685940447e47428d695a0bfdb4c5ad64021da6d11c928ce1d95b89d58b0313d788112833eba42705db3faf0f231315bb9486906d3e49e6b42b3dbc8a057c696cd145900700a9cf59f75e36e2728812477da3b044962d7a86dcc557c859a176f50afdd9e0498c8920abb87b7ea2b6e5068a6a8c81c3e8132345b63f455fd813e9a9838353f504a90f628f14916c597491a916c97b4f2154a3f4e0d4ad0ff04c95091286c4e8899003bb4b828f89b627e7f63fa8477bae14d8a087186fdb08d492a4778749c4cce1d0a1b6667e91b8d0494471be65f7c9d78c2c88b3f9b116e1a0cccc4f6b26aa62aa92d0afa7718d2e6324e309c624b0a00b8940078fd1dc0568e323a1d283a876f485cfe9cf481923d373293619c2db5e21ad8d432c92cda7f11d0d49b2f2ef8b14a7ad5a145f6056629018aaa82ad727844eab58b61dfff3b9d22887ec2088740e849549b3325812537784b8fc235bd2f94886edc3371b651a4e724a3a3860f6337a68fc451493279f099f2725009e1c83a86660622d200f9710c308c9ab602c74c2257062514efcdf418058621986cd780e5d664355ca08865df9ab2ca7a9e3824db669f73f2a7d9d7d61b24ec7e5f2c17ad8963f15658e9d79f2248a6c19c893bd02fd98a2d6dc85df5b7507e28bb39c26e9ecb99dcde3b01ee73ec19e4ec1e68c2f7621ed7a99354d46de6527e098779dc2711467e666eee0190ed28ddd4a5684c8cadecf9dac58a0661b3335e34c8a1cb853003664ab5325fdcbdf8c52abd2718b0285eca85b8689a9cbab6d693cda8e22f805bb0a994bc965c3635348b85a5a81f848b96d1b69e1464f45953821322056a3649e56172b0999ead532243638f67d7ad1781c94eb667993f6d9b5e8b229fb97931eebf41018f6a5ab4a951321af07dcd6951911c96939edbdc59d1082e412cde414fa4f4c3965fdccfca79982bb627ded81a757716b9f5eec31f02cbbe80ab6e49e6c37b33dd0702dd7b945d3fc622bce2755030e62fa385b03cfcb81bd694d91ba37bae4001c54f9cc0504f6e119c09a941c71ce897aa6f4164b7cb451244ea4dd680b3c3c42e6383ec4292839535b02a7120353f805e1bf423df0d2af97bfade81ac3303db59b1c43c1185ec370ba7bec25ecf693d8ed9f1703ecc8389b73c4ed7d587d82899972915f22cb6f04e8e144a870a02517e0db5426b041e905494f9aae1156b6832614845d08370983733da03e4a7eb7493618e98a42d38c9454eb8a840afb1cf6bbc86796666cb6df52e91b196f180322eeb4930b8b738f0815f502c6626597b2aa233b1d2ad11bb96fd112e810d5ae8ae30ae5af7062a9689bd62c4dcb66f3ff0040c60737cc7dde05266671c00f3b3c28b52f6cac3c9e487859559a73fb1a4b7696f43ac22afb49cc196da2b47433f9ec78465c278f3ddee94692a0c7b3355023f87d46a288076dcd80c44179a347f9e0edc13bdff1f8b20161622b6941842144b38ebfcb66f44411bf8f5b6b3297774342639762a10e554d6b38af93bf4ce93b7b6c0286decf894b8fd27509b5c4f7d189f854c9a35bf58cfbea952cdc71f279c9d7bc8b4c0804d70a81e124f745bfee4640a100e188db82539dc049796f5c56017bf73d798f089b7ae0adc5879c1c7f5059336dcc2bb7a78a5c658036909b67ec74e539ea87201b8061d3b266fd8b82777b07346310bfe19e5a64b592bcceeb9782a9351eb32770e3d20ca061d5f22c0ce3d651e89c968aa54c315856797174cfd7f9608d3bd5d791e2e270ced6d29de1b53e45fb39e0b3ae94e496270cc127feb34e6bd54bc6a1004d26104ba8bf546500998601c2ce9550c0dd68360b902659c044c445c653a349cc80e0749146efea5d0a1e981ac04f8c1e1b1a0ad7cbdc97d4015e88002133393d735c1721543098eb2ed7c5c48b6c1ed2fa88343cfe7fa81073c82d04f1f9bdb82954e10d61f09f7af4b15344523883c3c240b7670d2e0868dcc471e00dc6f82c427a90fd4acd2d449f9f4ba37a6e1ae1545cba75f05ff3320af0bbccfb2f76a07c18b4ee4b434e9f8050054e6f10f0abe78292db4fc686705600cbc21fd519468210080f78fc239cdec31dd26545888ac36c9f81b78e633829e555c08ddadac5075d81a798e5eba44cbf2c1464b59263fd0429f6047f1592cd5453da4a4557f9413fb33686e8033d6c0e2ee32320497faea3f824eb060377e4492e08b6fdcccb2a5476a81644a8928918344b688b5f1ec7c5648f2037867f43a8166b15e3cb2208564bc838c7bc872a9682d8655ffb0162f64d5b9b344bdc1baf0d256b519970c07189e11b1a2f5b9d2a1889606dc25fe2e6e46d09ecc96c1e0f7a59e5b330c9a7e092e7ecd59a2329b82d860d05f728f1ef217a2ccc97efdff9b2d39f445969fe2a6ec3ac91a00a16f25abfb7622758a3fdd40f8b6605336de3b024d0e1b4fd83012f4b6f146b252a15d63b40adf100d15aa2965db1e61a6e1be2b8654695b3ad786134e4bc14fc33390ba44734c2f2ff270885e111d33b8e089370b6377ebd34fb86c0d4f200b5f3cc0461f01518641465f0aa365b8ecdf6900bf53f97cc0e71e880e6f303591db968fa7e53fbd594816ff8d81b00a8d3ca0ee80c72466a261e08267cdb35b8885f125d8bbcb943a707dbe12ee1956b393eca2ee1cc25162ae4a4c0ca7f97a2b174d6bfff8ee8596749f9fc50b25f78d42514985bf4dd4ddeb6901ce1334e32285b9e440ff60f94b4c0935471550a38628e1224caf743c92305cdf2e91850684ef79cce409393ed9ee440c9a40f7b3aa9a863b86781cc0c2f21630a9a1f0851a240cd87bf9ed48e06c2ea9fe2925cee826a45a361116d41b6eb34a42831b2bcf3e2c5f8f9fc2bc134500122a6f3906d5a1444c49455d41b411b0384f00a3008723b462331d1608268cf03ec10847a3a64f7dde90f38a7f8d6a9fe61b18691c2c95bd55c6369a4cc0d59f440a0f4cf826da827b857803cf150592eb54bc85aa4b6a83664c89f9234e21c3aa27657614dad133f081a9aedd898b067c2d6a9290603102c62ea35b7268999345b4dc19fd84027f4183223432e69f253de6198501a2c3a942950d391e34d29020ccd7e42c4cf171b30b07bb97387ecb659a3feccdae4782653618df2026da4b18d3fee8e908f7955a858f20e39f0757020969ca4cfaf203f10d9f603400a72bf679ddf1ae1987628f1a5d9106d3eda55419f830eb7eeb8d7c08a8002ff88f06ae535da4550e0a3bf9d9cd040ca4fbb8acabd1a73a1adb336c36af162911c11b247225042a0a2bafa668800792c0f4b7b13838077106e9fd0a842f774e18e14b255154fb3924ed01ee13b2cd114942d9120105978dd8e3f4036e22cdb4237f6929b0cae4a3136d6f927c4194bdef5ddda90c9cca168ed79511917331c81933b7333dde90a23d62325e278c276e7313b4106cff00e4be7913eba8f194c6ebe24f2cc8090d6ef16099fba3fdb247ab02ae02edb83eb86ff3b455d3ed630a76ee0e308dd161be33a2e4a74276af4b0a3387bbac9c19c68e21339988360833f15e6b52d260ebc3c4575c2423c81c6fb512c421abf4d2f2921923418af71d75bc2022a07a8cad01247e9c4a4ee4a5a733b8e41a24a815880c95e0474defc219bf8abf4d04ae63c9bed21320d7269b2ca9fc41b8961bfaa567ca6d19b2ecb8799860e29e093f5bfb0b09e5e23822b16b4c7b3145c2e3df531d6bb6295a5b19c349ffd2480a69d7111708b9b9aef9150abca8b6def4baefebc4555b6e469b6a939682c34b49857dba1858598a4f84bd783d99bff1745cb08ececc0765bb4c6982c954e51b5f85ce3ba5cda2222f5640694aba67da6844c8b2c1e28d90b310c47ba570e037d690869d838e9429daba42d38118d6ef0deba4ad939e0589f6eba81575402f41cd595c0faa937a7993ee48c4070c71966c61d9d3050cbd6dbb0f29e8281d68227e2937636ef459490ba08e2b6f9030b3e85d181bf544415537bc70b495a0895cb216b12bde296876942818cdc4aa40cf0068960be0168040152f76cf91a0b2bef831441fb9463f6ab47bf0bf8a49f8813252a13fee8ea4cf093614218460f02641c66a6ade7f1e0e4803c2539ce8de5d63b65db31374137e3234e51e788126397e14b709ef26d78fafbdb634f600b825f2a52052a7e85bd0ab80a7ed413872a9b4d5fbb39e3de93c5851d7a2b80e60d483898d35c89b55d2dd0360c16666030a04343ed47208951c3ba1c118043a8a2a4e9a80f50951520bc701e0a3fc3d98ce21e6166a19c5f202ec4261189c1a1bc64a8f1e7403fdce2b500aefc11122089faf5c4b60c8533c9fd39ac57df4cbb635d72f5c8525f76b267f5455a16152bfb78b0f4f0e710c0801d463efa2aa621065c004e5f427a6242fae288ce6b045f301da8a21a343395723e75646e2445072c208f730904d0abc640e4bf911e43fb55fa9916bea6a0dd45c9ee99b65601c003a00b820864b9b1b7892ca21927cb87a8b32cc3a3292c819850a17665e14802e2ed7efbfc6b81529cad4f07b996daa82777131f36517eb0828fd53d725f05ffea47fcd9fde3ee2679e94e761829384de178fe9f609b16af7f67b408603dfa4e3f1dce0c44ee35f4d9292d44d512034c8391311683285cbe3f85601ba43552ea2a70d2e11114ad3866c82d029a119a74c7d6025645218b7506c43701812d48e2c0eba1257e401eeb0095010756626ea166e055a286cba7e1dd040f5ad1dedb127df0c0db2113ab51521fe91f0732aeac5debbd232303d0915f298a9ff626e7386ab13a46720f42bf5bc0c0ec6a4e3e45e006c6315e75c35b58635fc57f67c1bf75c9d9beb9e5829f0a7f643a14d73d2ff09271fd6e1070737e35854f000ef721fc6b13fc53a9b404f0fcd043ce450bce9c78bc6e18221eaca0d83046bd21e00b501e39738464bb031842d364e10a613303667789e9aa28f88c134ee496bca3cf5445bbb2ad51c67577401238a94f243f118327769d5ccd8e74371524b7a1676729c0a404d895872a4b2ada05c41ed1ccde5190703870b432c000dac5cd8a5ebcef06190012e001c667c205887636d952f59ff657169c6e093373e5b75d9927ea5309a4ca39eda92ec2923034b65436a6ba66d054f69e35cb5471de1659579cc1bb92f1ab43c8d010c4cc4c7413ed7da2431b333e5ebb1635b026fd313b713b5832366b93f3f19f33c5a8ac4ce11095db8638e29cd22be952bffbc5510943f5bb23885103c15e9bb2ce0e6f36b5c0a1cb29caa730ffc032d30e0347119eeed441909a3489da6212acada8c324825f9385c3b5f50546ee49207db0aef6f84bb9fcc0475971e429809e4c12000b07eb5a1b4cac365e507fb5a3ccff5ba9f9ad2e47b9077ee3e92f610955d1633448b1d9fc89be5e10d01d71c0575513141bdb3986b474a7ead04e3d34f86ae9ac4c96766ba3c8d3b8803ef4b808bd07db69a6ab8fc46db117bc526f971ced343eba7248fb719a6b8b77e5bf23a92116b6d28559ce475257b8b0af31abec2911d13262926b853c49eb4d4c1e3d6a04c1be3b99967abbe717579846c4aff90e63771f5c56ac01a21665482e91e7152601229c669f190e865a1928fadf9aa10a06d1cf492604a22283b22104802db4dbbe111cd7f90b531dfbe1e677e85697469e0fee539a9cc905c1a2c3726dfc3e6e06e9df8ee01267d0ab6b1cf7532d7531027482e3fea57805dca855022f07075cf3292eaf048a09a4c543f9c1a75de85df7549965328e6c0c2546dcd53c87694ddd489fb1597bdb3bc91dbf9ef2bb20fa0c7b350d553736366612a7e86144cd7b27b69c5269ce00ef75468d3be5d777b59c5e16ceb83ae1f556d29ebb73bc089e32264e21476fb6c85d11c61bc9445c6df553931f52f1b6425fec743431623971de8f257bd58c26a27408f4cc141c9fa871b861dd01dfa6c0b595fa7e5c64ec33bbce283b5950fbf7295ded209e12bd0f965e85b7b003015b06fd9023b476e58ea7e0828147a56ffaec2462792c87e81f2031ca400b120062e23833d7e3c12deccde7b60982a7b419bd0cdd11a89a2f31e2138eb6c85cb17523c451440205ee90ad689b5a63a71077c1a24d3503ae2c102305550ece73b9996a76c69a1eca9d5132e46ada21b7445c32d1d1658c7428ac504e422919762c141339357dde23cbf1fda13c7501b1d01374814e8db4adf6624b68872ab6a9a308d740b02ab2e453ef015181d1f08b177b1322f8a223064c841455f1c3eb002157f2bb1dd8ebaf23d4d1be0d434d6db88c1eea506c4401f335ae77f130a65601cc34629b36d3f364377f3f960c0310be78e88fdbe9c453bf9a01d727b3e9a3bccd83a0e71bfb4e387e4266e9889683d82c0c46365c964adb9a1e9c630c69139c1baa6bfe33ad709a62c78a97b86565ec32401f22f41241b69b2d53d478fc3f0781e666ca295deec41da885bc3a863b82f2d43c3705dfef82efc7989dce5b123dba7e29fe0a3e184c862d230292c5a07fecdbff307d634cb0b0b25a9549bac056c340d671b7c487297b88cc5d4b926ac7ad9a8a03e0252e8c6bcff6326d3b1ea1a0aa10d6398b312ce224a014f085ea31b6229e0d5a2a36ddbdbd91208a47e40c01851b2c609096ff33e052913b52fe9acb0037e61429234643ea6e0301917563106cf023e7ea8594b42af4df3f50c6cbad1aa8c2ccaa3f5ea4d324482d768b7888d2fe9aa3cdded3c95b88478b62e6630553dfea294eee0fcde2e2cce097ff8c8b5b41205706068be130b54943e4a7224f54cefb68fb00783c0064a16d1f29980c87f9672d88f14b01846354c877e566b5c15f2941fbb18a72b19278c45b3a2ec60341ee8c885cae1f583b689c4526bfed87f03c0a72da1366183b89efc6e540cb0e413f3962f1009061e1ad7b30ea3cf4ba1077a8f879f391894f3fd09175e3864f636448d6164affbf95194b4ae143f2aa0dd79a13309fc97609128475a05922356ec2b2811b63d036165bfdf826a1ceb86e7b1a8a90b6d3481198b8167995210272e948dbafb8be7027fc5c892d0ef6a7c1efc3ff352cf1ac6864af5852cd0e8a8a400c9a1df4563c05e0629bea40505bbd4c48dc46b2222c19c68a1617766f5626c91d28fb0b926eb70b64fd85ec4a0d881daa166999ce954709f8bd4e173e355c86e3c338fca0677e028d9a4786103e125993ed07f32229aba4ada76f54d607a4b06ddc5b0ec842c65a9298938bfa80c42437a8ff45ef73151d519523b29c9949aa76e0e271472bd576bda6f200579e7ac444418c41ec68306e4ccaa52c8abe8a929129a4489c3c2fc6fc4b31868257037639ccfb9dcf2ad81de146f2271ef77b81e8a9eed2bb1ac932e7b3e6b2004f85126316d585f64e2e52a90bdbd1fa63169d830959956afb6fd2c8aa8148535b53d1693252662c558b86c88beeb689cd83bab282141a168bacc3fd2070b35e41cc8d752b7e535f843dd4e6bfb558b93cc766a54fdd680922b21b801def33d0f57804b5632770965a6c61843bad43320f38b1ff548ad6da87d1b9ecee70d7560caedfbd23b465ac003bb844c95d5f93e7ab153d48935868cf7c4dbed9a9a22ba867ee450b586310d9e25ec1bc65966e92e644347a6524560a60e42221fd5c246c82276f865f5174939c16965ae9547106e888284ead74f9af4d298228a3f4ee1ed28ca36e8625af2e36d83b006efb03a29dfa5c815fffd8a048ee89c78de8006cb7c671307ecff4435fb0b4981c782499995b3a5824aa272049bc0bc2e48c879b33658c8d9998f7746ba624aa40b21dd215348de540fe469b629447b1828465a6b02d296ffac9fbbfd32a78fe51f648c87200d2221e23457500455dfb3caf03cc0ce4ce571b429100f3fd4b9a702bb2ffbc3134519deffc9e11a5ab701e79d0211f53deb5be536fa65041319ed3555514b1565a0a580486f82171a3eda01ace9afd3e67257796170126fcbfdbd28ceed2183559a87ab6bb5698418451545c60893191ab688090634dfcae4f4ab0fd7dc2ab13fc904c12eecc704341a4e84fe6302075b5499a4cd45e87cfbc12337577057bfda03c5863c6ee7c228fb65adb5ccf6e46ac2ddc5d535d93146681b390cf49271549163df0c4745decce5010c919b3ca27b6ea9e08feb9815b9dc5ff1146d7508996ef92d508e8ff231a7d0328cb3168f55784f54878cf7cd4124f7518311c4275b38633bb61ee387b89872fa534a8808e0a7187e1d9ae51232625fb08b645b779e8e20a673814cbd96c6a7b8bb3908bf1a912b31642019e3691ffc07a69c8a00b16bea3c080dea89e592f50b1f740de1ee14ebde902494674269b4ff20063bdbbb7a4530435990b75ceed7b891b478d608915a1e46610f28ba7426f43b952a1959bf1f4d237097e829b771acf247928836d1123bba85cda19b7b9762254a78e6d9efadb2f3868cf31194477e06fcdbfd3555e58913ee3baffa2f670ceef238179bf21fa7e23fc716913bd2bc8ac35b85e3b22c584e1f4f48091c3ce954937a755bf3863cf40423527845cbc45360fe8e695792f39028a0ea7c65f63ff58e321a0638baf56e4bf46313da0b7e6d3297baf4099b52015072c977656fd140001e74e79d5e9f2bc473ad5262d670ad4727a55e7dbb3de0309c84a92ddea04923c26045990008f720e105df67608c7b767a64eb5f9b9f175bd141de216f3d357f7bbc52038cb8b4e422b0d141e098b7d125438af722cfdd7ad3cd05b1d48d111e8434fad390cd33934ed8176a101a9873d5d7c0896f7fa55a620ccf31c082cfcd8622cced571bbff0f35bdae049b652e234ac39669bd594773668ba08feb9f7c3c095ed506759eacb18e46c4149531d5b323b9e435f82e893c74d7fa1ee47561544fe9b0fe7585b7f83452b4530e91d83968eecc13e9518d2c0e3238900017fc17924782d1c36d4ce6f774317374867fcb05eabdfb561e15db3278d5f32b581baedc0565195248166894678183c702d5691b652e1a10ec0b3af12dbb9fc051b14fecf5cd93846e8220c0cdeaa59ed9c050d55c7090b72ee3fc574b619eb029885ad4873a3e231b111180d85a27920fe760438a4a04438936706d946ae9d56e3fd27f69ab0fe32f0300eaf85f3f310ab561b95f78bc5e0094245f6311bf554e7853f541f7fb68ba3f83ce22daa40407a812775dabf08a488f3b8f47fd6b977cb825a7232d9434eca5f669e9b82c2b8d1889299328173c387b83fe2f979104ada391b35c8b65c912124b9ffc5d29c49b735ca61323c7a4de272d084406acee79f2d77c74ae3e55be6b3c8f10136ec4fe477839ddb7ac11e3703b8af3aead0aad2951aa78d99ab395212cbeb1b7198d0a14df4bfaa3e0e40751434292a59efb5db3336e54a827658b1a2dd15976b26e3845f1d10c6f933c52a146496591a641d9c893d12185f696cd54719c36c1312a626c2d2d8c5e6c4a4e69dc4002047621925dcf010def04ef220315bdc34a5db55a6498513fccc42c80f263beb043412181fd2cf818809167b4f118b1b7110c4b26a95a101114f0451461c7631dd37d91c9566109f6ad35e8de923b6b0d8e4abbe9928441c47d85d07e9b02ba49e806c11435ade71ac4d256fc52aa61e720485c8ae57290d50ab33c8dcf42d25f9151806385501ac03ec7b9c0e3a2026698e725f72a7351e9f45da5c711a45195de007057a5c296dc815aae4a45072ae8b72aff13f8b805cda3aa5655df284f0fc8bc461d52e5a06855b1402358e825eeeac27716efc7a82eb41d6bb4d3ea54a62a5ba9e6010b09c096372ed80ad49152aa02f9a94f29a27c0336a3ba621667b21092096aebe6d9ac6566d2d6bc06e9a340a16f6b3fe3776da0f1773af4d001602ea14a4936bb9dc5f5a3e251aedd75db414b36fc2840607ebc453b76c16bd6458515985ff949962e6196e778b94c9b958cbb6e83aa467f46448371cf04cc5872799414b485e161c294c2553c9395b445861a5690eacd00a818aabcd2ac609728eac799694977f2772a494a086aee585fde87ad20e4ac187fc71346afc93490f2297921ad0a7509caf7d8c9b5438859dc1eb5a845bfe7dc01eeeaa6ae067f35282d9414401e539b19b64d9b6ecc22e86df54439d0cb5797c8f6605a43f5a8c0f09926099670f1360c3e053d7e61c8021c451a220f0c38205f19a68e25ad22a71114c1e7eb7463021d34606927f12c3f13d87fee3e9659e2f42eb9decfe4989a2fe596d515f9fc44ee57363010e07c0a623da566564d37a3ec139a2b70987cea96914b94d581abff3bd1e54c8277f6058aaa99332f6c2756a1c915900586bb41405b923ca644f807e684354b02e262bc36a1369bff623019173510cbf25e04613042977e5545ada0c456bec4c7394dda8b73e6c7c1546dd5be9f2747c3329573dbcfbe35f7d1ac0954cfb01f99d65ea1e407834c7867f00cd43ab4697cfc344765f5c810bcebc81b2979441f397e4ba420506725373bd00e42a9bd64c6423d6b4128ec26a013662c8f68d5511197588c0c6b7c3a254e4311beb20e89a34e923fc2b2b06e814f3184393d8ea7e02acc6b1440db93a901b9172650c7533c1fd9ba810cdd18d4748a2618c503da72f1effc7c7f2ff775af914bfcc1018294445655597e2f8f5133bef6057e5bc19e376aebfe5117a94831a907f52373374b02c721abd3832bc98adb7c0d2bdec7593fe48ff8affa64e20a081f90f29685327d7bb0227b770d304b2f80bd2941980544dcbd4866e2cd341395fb673d3c130093cf820f52ed5442b00f7c60a2bebb4ef59cb386704ea51e66898e9846bc887d3a6424d15683d34ee93508681cc12fc2a6c193bb1bf613afe758d0037959dc225642dd8ae3c1429b133e87cb0f0d6cf1680aff652aba93278a992b6b0b9fe34f34912c2ef26438ee32722f51a43a6ccacb6a822ced915390cd32cdc386b06b43af0c480a6f2d294fdc5c2af757e3e5bee91be9458c62221c3afe07c3abbc023e5d01804a80475182b61a473d022d3b34714c9344283f65c8959621c59fa540316d98c06fb6aa779a977c51a169667fe6781759b75c479335a9f03ad9e941082a25e299a56d0ad68c79a6d49cc433be724ad9723af29c8590ee449cba2e53b47a7f09f48092821e2dabf3e09f6761b63213969bfa9e18614a6464eb7b08c5db79338a29443659f4239948dc3bdb22579496e139783b87c6249d1d1e79133696e8c2dcdff9004a3200343aad3e821f49ab93c54a0c6f1867f9d62867cf3613557730d7dc9a8cd1706e6ce351118513122b76aa38496a96cb9b9f7bd7d812731137acee41b28ef09d02dd760d4d5de2d64cfc4aaa142f9b091a39fffb78f7aa3a298899c012aafc08a4d76a1e816d4292aef3be48c2fe19bbe51dffb2cfdd6def0275c2116ec5688e8165fb5e42a1d39979505158202b0118fc961fe72596099bc62b3d560803f5bc729232e2090a026c2d3d99564dd9b3d787d89b0945567e3df233855ce982625992e8f8c39aa707f9ca0825d4b6f53f774810e0c1dfc85b641a193073d8912cc68541be24130559ae272e5189ff279650eb10be04afa2c01f2ba0db9f4e7ab0fb78a1b10eb8c2be402e22f94aa196dd1f6ac6fe34ea8dbacd5e6b637d34febff64a48c9ec1eccd74e2a596681ec7ede48e730e5da9c8fa57e2ff026941de38fa35c988b9f91aadbee359aa8c81a4dc8666e2618a103d44c9509b8924a1355a32a374e4cc847430a98353ea9a7cf4f3d917448ef48b307a2f1280dd28957e7f0db21a02f4f038a2642aece76b2d3d92a1aa76bd7b17975b3d3a3e7f553bd0aa74e9e14d743c9c2a05e4c89bd922f76bdab44b886bb948e2f2654cd45aaf8160a67d35f9873556c9bb2f4c642e241cd9bd4a41e6247f0cbc2143ff142c9a3d81a654d450443227c50d3a6ab3ff063754ebc43c07659296e36f513b994ea543c08124cc2c037f1d51437e61e670e06925dfcdf14e45c9a9aef4fc0a826bd1654c912c4e77550e96a035b0bbec7d6738db8644948eb00106345b4bb93abb93b7fbb3d1f100d394f033628b524f2b1ab55c2c613e069ae6c8240b35a58a3c7c1c7d761265ff4b930d839a677b29fff3971f1d92b415e36b18c540421760d2a0e1300b72dbe814f4024c0fb9b048436688863a6a246b06bbfbe290757950fc173e353eb5de792a3868ec2a0e590af6b6376bfa1a05433da3d3eda19f6991f7a821e24ec3a766e3991929d594068716b92cfaba33672ae69d70dc19ac1cb1d9959a66397ce00a95a97cff4a95f96f3325ec077d171ec8e25c09cacf771b21a0da96a8322b16b45dd7b51c5e2ef2bd2ca1f422cdfbf9e2ebd5fc7085cbdaed775621c2da58339da946e39175ae97730704d23d3f1676260663c76acb7255305dc9d9666a4f569f16ac6b1a9c568164b487d4d3479b93e410429d53d4da88442c4ae75ff17b4f045d54968c89482adf3548266a61b4cbc947b616444da401e7ef41108b83f56e3f4db980390053a0a09934e629f80bad655039c6a36f49946f4eab03f94fb46cfd857103380e75f07d33c465215b747c28b2f1631641663f12129f8ed3e0e635b28d883082445eb0f8b140d49381b56965cb880e952e0642d9fc1bdb070ffe3c09ddcefc6bb10a75664752e6249ff6ebe142bae213c004c7d29b5a31225c30a648ed0e12a0174eeebe8bf25a7cb5a75c23fc1229bebc45fe3c5fdb826c82c4a65f947995f085f17d7b11847d94714685694bf9672f95478b953c60bba4eb7031e288983e02b3e7a58c5d4aec110599d42b08242695104d2d2a12598c70276e7153974564d8858894a8ef64bdf73689c5feaf367a2819e3124eeb9edaa6c72c0a4acdb01e634ec5795a381303cdaf9d5755122baefda1561fa6a3f125ac3435ba7c069638b813c2bbd6666516a79d907e321f16c1101119301a76526113f46422b62f86100593f43b0e54ec98d04e094eb44f10e256475aedd211cbbaacc2936c2ddd4e35318b8761ff62855dcd50ee79fc938436afaebc18c033744193717eeafb1e0b1efcaa2c1be43f4950ea09a6021e45030c24f938fb0ac1b6a396aea08e1640444031a3d4e745b305616a703a970d4e139f6cca9ddcb006e6eab4d443dde3063b2d97f08ce30acaad56061c17f02ee709cf33eadb7030b56f9353100e67958fd7f29d701d7d9fd2fb79f000c612cf37b69caf27443ffb790b6f7de5b4a29b74c3205100745073507372ce9133697cc1b22397367baa8ec6e9774b98b2940c1f3bbeeee2f1181475193ae99d2a47465221d7344a7ec3715f4bb880d274b4e163859332583902d1464ef314f4c30ab83f274b9666a0ed127ff235e73165982e54a8204b904582ed144f67f42ba264b9bacc9aa55e77b62e62c5c9f1ae9bae966407878686e4a42e0d07f550958235921eddb4220db0c70175658d57151b4028f281da7d134adebbaae5b02d73c967201a428f1da8fb525e53788444b05ed5f93e88a8286b1efad8e89ecb7d4313e6fcf940e7df29ffe289a59f7cecd66401cc6eb24ce6b27b644c62da1bbeebaebeebedd7dbbebaebbeeee6b4dd6b65c312638b01b9d252fbb496fb5a6e7a98cb028f4792a232c0a7d4078ac395e91541d25d5beec94e8fdeff6cdc34c8942d927ff2d6814e412a432c2eda9e628c461cf932874ff3cd5f612dc36cb6ddcc6d5d8efb6cdbe8c7bf66edbddfe76f3ce3befbc77db6878748ce77e39cc765bad56d7e5b46e5c382f2348629c978ce8b68de6a553b794fd5de81d20e08a2d188157aea861e80dbf6c7277df2ab5bf5d91e37662221efb44ad3339a4faa85faeb5d65aabbc3536c122c223acb7b1a9438e5ceffd735f51a9b52d178ef5a2eb1f2f5862861949a8b1eeb66d6f64090aac699abb865b5802975e7f5bf7e2596db27f0b47f0586db24c6c0335900b33d05b38fba7ead820fb4fb92511b1c063b5a920a824a83635047504d55593c80e05aeae4d5a9d071f50b6407da192b1d5c7bd382f4f0963f0a8540ee32ce41f6838404f03c9e88b8b9880e7cf39ef3bc1a3ca61281387d1542a55ad9589ae7f5861051326c098c053467d6517b984c925f246129139ae4ed4c94f075fadfc4cadb89452686121adb894526861218dc0c09d47c9a24c76f2e775dc76ad1187a939481c46472a19bde8fb13bde68b44229108e71612caa5746f0a18b7944a2cffcd23a2b4294329925224fa4e244552762351d77dd7755d47cada489b235b452f419194527658a45d14eea1f1cbb848c4bd08dcc1a37c52f4f2bb4e14b68b7287e6e98e11fdf859047a29d3949ec0328fffe908bd484728c4f585471c043c4a56163d4c88a5a242652085855c20c5a12f6a6403690e129d1d5a5f234fa106dd4de93f0c06bbb00b9330182e0d4144cff46aad572405131e0c01461e514bb03fbda267eace949def4d7c34f63b6a9f52ed5d93bee649fe04298f3da3eb1f56c09c68148a2c6b509a648dbefc348d6a1ad5341afea09aa65177cf3dcc2cbf731d0110155b44f1b8000c2eb4935e62777234fad5d03ae66b8f3bc6696ca630a62c44e053a7684c7497f23da4b18ecd934b4d6bc7fde2a51860fb14fc21b54929a5b169414a9fc40087540bacf21d60aa831e348d55d15634cc7ca73d940bdc3132fb6bb3450aa33b0e534551bc97b65cfd82f3f26cd0f58f1ba0326cca90fdf840d1344dbb37df80a1c465621de39452ed1ed1313df8e0a163bcec52b2bfa4c1c70e3e78e0c144471f2e3a0f32323cfefc6af87e4850ab9aa6696f35cfe3b53f3aa4c0fe2f7f58a103224ac889324409ac2f640ee30ec3c21d629bd8a0ec6f99d829b6a7b51b8cc2ef041ee5b1249778bd9cc09bf54a1de3ddf54a2ea55cda228ac368b6be5b33b2db31ae8d66a4c5be6c8e8b26edbbef956b2104ead7dfc220f66f58b24c8094581e2b73f16a2c32c0a395591e4b33c47efdaec745b74eb25bd93cb9f632e2e213f8b3d622c68b49f6d7b4971358fe685f9595bd7eaf24506de689e6befd5e495094775c7499e5a9b6c7c660365f032a92efaf01a2bf169ae83b01cf1fad6c562bc359768c111a6465fde24fd1e894bda24ffea8d309045d5cf24883ac8c06cd2c433bc5453bc4b2ac8d95b58b54e6a2d3202bf37a9c38cc7c2bcbfe543653d4e527f930988e4e4e8efc91a2acccca6e5a825698e0830797911f76902c9c19fdf141e597a9063af573878ef1ec5204d9df47c7947e346da632f073b3bff417b7c0b93bf6ffc5cfcc61e81487d17e7e7c54176e59266a6bf3d9b61e3e5a383b5c40dadc046d3e3dba0db75c928b000a5224b1128200564e16abef03e9944aedb66ddbb655cf744ab5214919a894caa269f4cba43329fa45fb1f5b05c29116b14063a061683852232ad5a8aad4be01fae45fbae296543ed4af8f4f8feda6be7662b5b509a1eb1cfd3c7a48798109b4ecbecd85b2cbe0c917fcbba6634000410d56426c0e0d56ddf79740183c86395fca50ba200c528601f40bfe3105f0b2a3fac59f650613e871df9f8712c2911a3942f6ef1b8eb4c810b27f935184da75007df26fd487e1f7dd7e0f0f993790b6407a435d14c7c5d74ed07644a7823b13dde6af3c04fc496110d1fbaf84fe41f0ca0acf8d27bd8cd3cc14e96fbcf6a42fa1b1b272430574f911b8f218acf1225085e7b1e96c78af7d0478d87821f00ac76b341de3d268e4f6d011d3ab4853177a4fe5738026cffb6e7a9d273ffa2db9d0a76222d9208535a6af51513179bff2f84d2ba14987959f6fe2fec6fb9b7604278d66c65714aca00f17b5670125204fda87cac8da10fc8b40bf683cbc0f812cdccb8f723f84f4defbca865842ae4349199c553ffa5dba1f9a6cde61b2f66b589e7b1beef04815ecbc0226a151917111d52fdabbb4009b74e05abe829ee547b3f21e18c4df7b0e0ca2f168d9aac034336012fb1ce89f4987effb5656c0ef49d4863bfcbd99574013054df4fb1e9e6c89465ac7639e7a6caa8b56c05373aa4eeda94faa92ca539d54585da2ed747f48e89833a40c59744dd2391de342f6af483a46968810ab6174d1acba8328b4930ff058739078cda19436cdfe9daa4dd49c9aa38535070cdc2b393be3c8184f56238dc9cee1232d4861fde2afc467de3b4324b2ead41c172b8bc6589da94ecc0c19e5a13dd4a7e6c0ba9d9aa393e330daa4af3c9672a9e6d41c4a59bc2074fd63272728080994306abd9921b3e4009fa0b08266b9c4e9182a95c8242ec8fed84b3d98967aee2df56099476c8514aeec6343b1914cb21552d864ff1f3c0b5603e4063aa67e056566990277cb1478663944d34f400e34833bc0f69b121c67284731853c364fa9c706319382802bb8e5fe5aa4c063cd1987ced383c43224cbbf1b689652f278025012d62f5b14cc83860cec9255a9b52e1c110cbafe018319d00c094de84f4b560bb6e4468748ce8e8b7a4ab2e69c252ff0ecb8af127116601cd96b0d5d661b5b539dc45831560c08decabe7f0e5d43dfd03272fbb1c5b81f731945bfe0af7a229dc82966c8fe2e7774b083a9c6aad51522a2eb1f504c396306e575c64f1da263adb53dbb51f35e8c4b2551dca8c7a3c7055224a740cbb075bf5899effe86360cc75f755ee8bbb0266c01111bac6a84847056d2d5c411abee815875d6f391a3834614ca1c930c43a1f442f952d9c1ede274959a6099c7fe6ae4142e668083558d90fa049d557b0c35426a4061e5c9d7cdaa7b4d2586db8567dd26334df6e50f341fe942d6afb8d064c3bbf2fce4aff50bb0fb83b6baaa8e0b092ee0f961fd2829c28c9ef123074d7c8028173556eb9c95c5aaac7972d64cd127340a506b0beca326e0f159dd735d585997c2ec1646c91ed22972888b95c58325fdca9a290af4c97f2cd91cc9fe0e032c4ac1748c3ef99b71d1a052a84fbf7ca5d6deb87036276c8ec003d43a824e1541776bda8e77534397b4f05a6b490b1c9a808f24424a19b826640b640a901822c4ad42dcd5f6236a4a967c8172883e790c0518a509720f60eb028b60e011955d8612270b3c36cfc809784469538713421a3528fbe6da36e97ac99a1889e1c098e46cddd2e5f2ae3b142af6bf5dd085ef3c49974f918ee9bbe191267d66f5b9b6be7ce108eb579de8fd622033250ab7d0f5eeec475814fabc0edf2bc238542a7dff9e8842ddf6bbcdd0b95cae1b3fe1bc8ce420d109dadc2ba2eb1f55b096b0842551d2b0d134bf712cb0cde3a5940a200a4d6aa797367f7e7c505a6dac4e106e7a80644da8eadefbf7efdf99fa79fd711e9fd257c9d0a06a99fd7450f9d9e09fc8c72a29e3859a7d5685f045144ddb418265a963be203a8502129215119560674102b3b4304b1298a50498e508dc9f4a5609a25147cca811cd5aabc307e98304477994fb5b80cc341fe8cde58ed1b3d9a60a9b479b332094e257f7eac1224a13584d68c2841f314441b2191a204376e0d0dd6d677650a59942a1505f0d55e0953ca2b2b5d65a54c7d8f71f40a76c40c950331d93923b1c469be91727fcbb81a4051e2f093f018f2da33d5536732fce4b740431bafbf6eda46bf77eadb9079b7bb2a40a50308b0cc7fb77524d2bc530fd520c4bd3c885470ad3fe61f3da5702bbd242e1959dd28b553490bc039472b4bcdf8e67aa46ba60096088b112429d90825512f91254a902cff6be2e9c7b6ba52f4a0430bac324120e8398de9f64b241228d56567e345a1991482bf84320c9bb716fbc1078a5c2874292e5bbeede1a2ebf02a8f26058a384c3d6b85cbd210a79d78e4c96cafb752e2a7f4393adc15223ac5171e95cc015975701838c7e6534725959a9f12ba377f9518d0f82dff42e2bf579a8bce9798cbe46129a1b23d3abbcca87c0203a985ec5149aec876ad4f8d1d7084d3a847e8642937d11e9fd4da4d064490f815028fc1a151708905ef4225258b3128afc473fba110e1982e387a42022895a4a211c3842a11ad6b20080157280218e0700287a16c0d00aa0cb83218effec57637b15c021a11771f5862864ede8fda3f6a97dfaa157e146a886dee56d68ea429a9591fd1ba63008e94dd6da7047e86f84352e1ffa1a151b58147a0dc56d2ae0e883985ee55dc0202b3f7a0cd624d94152799335e13008e9fd475f83df149a6cb863e555482aa3efcf74c124342e3f5201456090243b482ffa203834d99f3ffad187c020a4d074431bee983f0a4dd45fe4efa2f22152484585347a2c12915ec643a49551af429cbbc470adb56b5bb183a08c9bfb5e914e80fd677670f7a15a6bad5e4dcb94d061ad6aee0be1a6ac92d0e741caf0ddd03fe46a031dedd30722ef60c3235c2883838bfe93829d37b08252fb421f0a6be42c09123aad15f7df6b1f4d88061ff3e4ff813c80b88abeaf7a28955a8baf77460411406e5c30dadd4dbb1bc797fbcec8b2e71d27521770a00179743328c03444892e3681a50b3ca3c063cba8d633b5deb8a8db220435cfcc873409923f728aecb12dd9ba51b554dd9acca32a870896f554da7b5ee0963caa54383e920ff02865513cc5c33cf9e08c2c5a861de40bde31f54b44b00f998281689c687eff86b2fbf7d371654cee0dbe4dc0363471dfb973c9e493dfbd9cc795bcc0348f2a95013a25af902a6943297b1973f15ed2b6495828775c3cc900cb664adedb92212195e8241a050da382869932904772e827d9868b5e32c2e6f0bcf03f8b2eca8c9041b6e1287bb2c3801a51269ace3b9e07ff227709dc846cc9aa139fe1b3f7862345b2022099ecdaaf5f8ce4e020121388c062a3691aed711867e1fa3ca14ee8ac12a13f1aed9961d9992d60afb439efb7803488ce40fa034ae9937f575610338f743602e5aa6566a6b048d4580e414616372b96ef4a6260f92c604dcbb3b480423857170d447b6a84682558c12a09f74250ad20965825b14fc7e89800b07c8c4af1da6a7996ef31a98f8b3d5860db32fa9a96af096b46bff2534e0d88d637436993e5b780547a5de8bba626c98e9667096b58be2534e1ef554dcb9bb00b88570808d8178e321e8f1ea10e12c8949973caf639cc1972213803f270d11da86390d0a9e94b982e25c6e902d96b933553f6097df2bf2228c295ef8d12b4c705b4a75fec947e09298f38ff8214880681b407ec91bdba60e711fdc9026ba178051ec56f86f6703f1c90c34cda437b680fbd61b151094234e575efbdf7de7befed69656fcdc0bddb87a97f84f5ab4e14fa3c51e87ede9da1dbb6ee84f33292f3ba503869dd7bfb3687455fc785f85e51a78205bef304c4eb9c9f7cae137d2b89428df986e35f0be4c685f332d2babe795162e1fad86022c2404bf48ada05bca288f4033cbf94a9f6251d1ecff344214f14027b70e791fa48b91a550ef384fe504a39954a7a9ee7799e28240a799deafb68ebc68563244747c9eda2eb019235e942dfa7033caa787a4ed5544dd5f875481a52bace645ca4dae916bdd1260e739fa763bcfbd18693f24879f29ca12f44bf63bce3549ee7f3bae9fa87154880e8b7ec089edcb223c8c84dc305c895cce51a8225f549addc56a9ca102ea026f703acfd886ac04cc7a8909d08dd61d8ff320e2c2f96788adb50d65a231801cb3c96b44f870f3948189e8628326e289b39c02e71a8343346c0f34717b277f7c864cb2a9db1d68513e48363ddcd4925dc8ecf66403e7c39eebac8d1ef997a2c65d098c8fe3660301a02e6414e71e68633d213f00d22f0f6f5ce994bed7dcc7d1e07e27ef96e290658fb113711bc7d7df7388e03af782b076e14dc3c0b1ef1aa17d6d499cc11a390019118b7508016af00fa8586a9dc73e1488db8ad97dbba8eb66e705efd324a814d776f4153b61e2a55a7aa74f3ba0d54f53cd994463ae5023eb64f43099b11aa3f9da252b5fbf8f4e0b82ca24401e2017a62330675f965607f4a29a5657cc77ca42d70bbf8e9900790511d4115c3a34ac644a552d5289811034ac22b093029add96c369bcd6674677ab7d6ad53740c32302d9181775c74a73e45e0f167fd3345653787060681c567028f5406f68b7f2a9427ff01b490ddfbc58be0ce34f6057e18a51427cba7f27594fc3f27860aa5744ef9b714c393524aa96f57149ba94d140353080377398530b069cbdf178a62453085b9f8ea18f93968d17f8aec3f6a3cd508a7cfedb8d830dc14cd5541a7e8903062f4a888227b05e5733b0e438368919ba24362f4a8a09dd4b6a822cf0e89f9ea171fa447c5f78b166a3ca258147215c5b4f9d3866aaf12e37e3a7a4367406edfbe46e025e4e3d8e40de413b289521179c4e90c3cf60c880df26912291f439ee07be90f904e8e2f83ad7d1f6894bcc0252ff0758ee3b696bc7d0d6832b27d2033f54e41fbd2befd74d80d3cc2bd0f87b95c28ebd7ed86352e72712282e7cb68d53e1683ce6a6c80f48bffd6047f1e3be62ac03223326254bb3e7241f703f464892c6644e24cc90da49dec8041852279ad79e839dc5b0684cbd9d3f9c060b19f284b7c767a80645476f7bd18fffc883e76a48f99ba17e352e95f147157120377220a976aba07615c2165552384654707abef85502db85825915f7ae23054746a06d63101c8f38bb905cf15d99fb660238be5b17fda63182591ecb6db7edd5aed11eb20575fe81c00226fdc73ff8117c4f3c47d0772df516fc2f084e152090aec59c2eaa67d0d35dca89c4026915944a768187df24f92040a28f2d83f63ff30917d90799cb0fee917a74e3625f0d499392e8a50664ece409ffc7d7cc0b28c090c06f3d97c04c341501fffd7be057c37dc66c1db2ffe7fe757051e5bc68007ccdc9043107ea6eeed189f2feb712293cd509fab056d2a522abae0ee14c7690025d54a13b83d17af67ee097814a9562b115af69f73a68608a15a79cfbaab9519c62d8babf67e14e5269d80478f0ef4e8a161e87fdc6b5a8b1bb2f2da53c00c8e0727c563f158429c058f78df59fb3b7a78f49829d36b3919354f1af726d023514ae9879aa9518552f198010ffecad7846190243b6a3cf8414c1f3e7e202a0e4d9735532ba1e9d6f8bac2caca8a8a8a2bcb4fc768641afd0a614d8d1fbd0547cfc9d5bef6e1d7004d3a681f6a1f86f3c137ed980ffe7c3034dd77f9212afc101b3fa4c697447348a9860d155c4c37704cd6b4a9ef3a2b5f47aff2d10c49e15b589ea4b232e2629d41f3545f05d46cb4560ba8bde62cd75f61e5fa2cae5c3f85d1fc99a72a7342f99a3fdacf5f696dbe82182b2d8ee3e64f90e6d28c44d15a401a4bc399712d7f7ea464b1582c16ebc663b1244bb274e8de85b303284173e3b8ee054d32f5ac45a9e41155ea8248095eb0aa11b202153e2bef856860b456dfa3d0e8948f799a411d434b43602d881c24c5068ff327f6235f1e83c7d04929bfbebef9e3a2bf4b0b77ee7972805cdd7992e136ca7635799c98417336531ff795bb5f830ddbc5bafda552ba5cfce6cffc911aa5ef8173bea808ee420e49924ed5227e24eb47b27e244bb2e65689f48bff090798a3f9a1e69ac31113113f85f367eee820573ea4e4c08fde40c3d4ffb1d3e04ad7d699993a42b2fac57ffecc1c869be230dbcfcf4fd7adb45aa02033c3430d0e34f844e17162657a7a7a7a7a7a7a7a7ab4c0328fd75a6bad160299732be00ba76146260c3c7e116ac4e91763a054b487a7492c26b39d8106cfeb95c3e30489cc48ac89ceceeb8531c618ef88ee3e3220531507b262e1041d2461a6879d99a712ae33345e9c800b18ac84b81258acb897dda05ffc65586132ec4dbda937759b52c986db30e9855fdeebbab0409b137ed9fa7abdbe3028fda7de9c937677cdf10176ea7283e2f2a7e898a654f4c9ff8a2df0173416fb5aab1384d003d94c67f664f652c2b5a95dab0c7d8bf04865851422ada8fc8f4a252c6a771b4566461a61844dceea14857bf14c9c55a704afcd5319ad6051a8b6564a2ab535aa2d516d856aab7a9ee7dd5bb98feb7ae5b100579d79825558f6af3a4f7a82fd455b60961ae0fb2d3081efdb6f019eab1330fdb1b67ce87ed1fe871e6caedf81996b38d6efc1762ec01e9859fbb05df4c21187f52634692117561c17bd9341a144d1e6b17d424ab2d76aa4e2d496c3cc595df5660e8137fae9c81cd883e44c5c0f326fb5555b371d53d32f26e854903ef9e7c871e3060b4b9ecd10c80cf00dc72d6b3ff64cbe9d8536485b81d5b414502184179ba6fd08e6b167f2cb8186be8637d0afffd94043d3e7987dfd10187a2ad61baf2d27f0b350500059d84cf9cb2ae999e34ca9add70154aa9e550ac4da1b17ceb5f1dc058b19a5b476775795ea8b580770cb6437f5a59c5f13204383d770fc5c47941671247b26c0fe77de5b7f7b1a56f0079a2fbd99ca6fc959f0befc81eaa836fca537e0884214a290ef91ef81f0a8aa54a55259dbf9a60429dd4d4b39e895f4232dc1f33b77ff743c10d56ead2fcd27ca143c68f824c186fee0de1bef73010176ed768c6b14c6041e3fd31ce24c717d67e87edbac19b56b95557677cbda3c9871b11262b928b2badf179c80c7d0ad7d5dc109f4884088c70ff0888241f555cae3c68563a510c5aa0843752fe518b2bf8d8e91b4de24f0bbe8271eec353418c69de156514c478d2260ed671c469bf3ce8d7eed50c6c51920acd5d078ca94fa85e2c8c1e3c78eb07e3573f80cf3e9bf8872987e6ad2fe9a344a7f7b028b22102e758c690132d77e4a9ff05458adb0d84f94253e3b3d40b20a8389a2288aa228ce548ffb0f96ba994769e3ee5e053b6b579c295fa150a2289e8a804709d3644cca602528601cb90bbbf742930edf77df77a61d212fd5519ef822090f6070054fd0e904b8fb20dc7bd793e07f0f20d2061684a39aa4cebdf722e0de7b20b29432f0a48484d54829484021a2b5124280339270df9f0ed90547df64837cfbf281c8f5d3e1830d4df7db24bfb37d2032a90778c4365ccc028fa51cefa29398e0f1337dedbb01671a1ee15eba4ab93f1156994898571ed10d46afd9cc6d3c4789bfa6b8cb9138cb6fe86cd6d3c3e386c74cfdf7f43881b7fcd6aae4f17fd63107c83e65e6e28c87bf0f1f723061198ef22567ceb23173aa8a40a7a414d4e904822e2ea3d1cc91b8e8d223c063c622e230da6c36ab75f4ea7040c608827cba5b6bedba53245487bea811298028f0bd3796052005a671511b618147fad274b4c8fe74a7631a63796593a08bac8556606dde7b9d50e3556be5669d4d97d329e98674afeccf4de95c1d928ed5dd64ffdaddddad421a587af7b7a7aeec54094fd6cdb30a69602a57d5037d95c215df81a61d0fc48a93d229dae2665d8eb84476da2ad21d31764364ef82c8fe14059de2ae12f848e96d909d837131cef301be216dfdc032e7eae65cadc9b9688b73b564ea7e13d95f94d331f5dbe756afebc08ed5d9844088cdea865d6b9eba225dabcb5122774ba41006e6f2d8b964485b2d32b899fcf17e36a2c0da8f9c2b3b15b4d53e35dc6267e0919b6196c354cacdb81937b3b6c62be4d34ceebd7dfbdeab69da275f966aa9869517e0b1f44ef0b5a56d73e1bc8ce8d4189d01a1d7529626987ba741cd39afbd5e89cc66019efda8344df8053decd0080000000153150000200c080583018168442c57e5241f14000d6d8a4676503817c8a3490ec4280842c618830c010401000c9001a2c2b014aa92260c6fb0a3f46e32b7fdb5d5c2ef3cb7928effe3d28d08e0070877cdfd394f2e05e8a2948d9bf96a2c2232d2912957a8aad31a8c88fcdf3312382cfc34e1781716d284e84c852895a1d650e28e660a92e9a252c3063a9b8a009c5d79c5606a237ca84c2802481f6c8924162af5e14b82114d0c9ad6091128a9681584d659aa5fef7c1d51fa2bf01c74b93359a0a951f497fbabf10f08795fd464c05ccd8efd342e827fb2cf4b3a535d4b5f5c8c1a01ef07f131c38b3c21d030a635cfa9bf20d823c63d282aeaf7e894cf1adaa94ba46fac53438c6b2c4dcc5177f2e89887dab0342313d3e0bc939f74943bc925d23afe5e79e9a517f35e3c4a9a49de71b522eaf8a5634095f740e147e1bcb21877f0180a37467e668f3da129980b4f6e844bbe6c1c6bb3be089406822c6e12c54f5e158fbfa0642e8516de6d848b567c0c655a8964eca19b2a6141478006599f17023a663365ca222ef09da76203f477107cc3c13a14cfe2f8f9b3204b343e101c8e1dc2b02c97d95a52a3d9126b7b6cea6ee630243d011f7e12dae4914b857ee1f89484c166b483610ce045d0a24cf7a139216303cf0ef2b034cdbc19fd0c817d4708fa06738093570413a27f8d5828158653a4d35e1e26bf9a8153cf90b5985e976c579d09a35728044e3868c70d12609d334fa134cf6fc6ca89ab01697397e18fc1592013b0d15ee3ce8db61ee17671c236100898f96d57631029a4e59e320120f089d503e68957470d69728cd4b91c832f34101598875fd36ebd2564cc1ab919a33fd9da03be6eee82be75529d91deb7a69ebf6838e736c3d5f3811468c57a4c815a4184c0f098d0fede963dcf89c71d6f5fefe2c9bf7733c74f5b40ae527dab0daf46f5a45c28983ca41fea7bed10d19159d061ccb97e160094643865b239b3a9c488dbbb482c45e2d2c248f43a624d570763075ce4f8c62ca4425a8807c6b91a7e5b26d7364389544ea1df5332df3243d661eac255302fccaca6ec5207a69abdce88e72308f309883bf930a4b41ee6e188259c1eeca9805ceeb3c064b3ae547b42f2fd353e4b7e2551b68e67bc03d8c18a9bfe22dd5e71852c66a38ca7f71d2fb39dd69ede947dfa821752460ac7fc92f29cb563b0246585591d2a0a7f807507680d0828dbca2e51843f0160871ef9eb5e26db1ca2a9cee8a124074c904370a69fad2dbfb580e9a75bc126495b00a2f95ac5669b18f1e47a5a83bde1e7e92fa592c1a010fd1550ba850bb899d79e6ea7271030eea3bef53403288662ac428de833f1c28c358fd61cdc29f25cc1beff55a082dbbf38fc7eeda1741799302cad803109f600d0b6236100f062079aa0cce61de73348886f47ebf94dc17a9ff903d6acb0fda006134f8898b8ef523b01e03778e91d2203f9043bf956a9a9812a10cb44d89900454854beb1333b0ecd7f72d32d06559aa914d117a0369c2621bfb1c1e48194ae8c02f8d26e78ccfa73faac5d3e9b0eeec09127afa9002cf5e90ae0fe47455633fddec7d303d1d2d4b79b73737b27c51cb751a06662c4a8e5049bc69c48e56a030e8b08948acc2d622c2cf44cfbc4524e2c1ad9bad6539f269fb95ac09432893c1294b4e7bb3ee357306cbbda1426350fb78f9d9f607a839371fa8917fe0746051c90b87ad46a68fc9d63d6c05efe541ea25e5982e04f49244c6ec0f9c27c66f0d2d55c3642768ed024a8085fe4f7ba39da50cc68bbc5682fc08306660e0d8cf0668c9db85417cb6256270d083a5fc64464bb57f4aa8b13ceb0407bac51f008c5e38a77dfa7da3bceb81dd678a8944ccb9e932173fc2d6456bf8cc2154d5c84192cbe2aa21285596baadf6b18a59d7c665a180f2e9fb3070a38a90482c547789017c3f72b26c08cc1cfd9febd6ebd8b2d0ed23b49376b98696a7b134435d57bc23328c553329b913e617315dfdf7aee15a2b0fc780ba9ea45b0af8ecda79762fef77737b159c048fd6e3ee8d296574d62b8b4c1ad28a4a03c397e0f1b2263336b41371b543d79d44e9c23ecda659e06742568db9e265b3d51bed50657caa7a68f56e32d27c33b1cc3554acf3f7b4607e56e291fc30d83c1f181d1b4b40fa9e2132e35dc18081bf66087dfefcff852cd73e51a811c1467e9c58ac6089ac656c45fa6e2906cbe2bbddbf9dce69d1e6ed80cae4ea670f3c34acd8685c365f80b2ed7fe3d82ce91bcc91edb8de197a1541d10110571bff5267c6c8669b5d49986a37060606b2325267099637f84c23dd8188052e037ba4700d85bcc717f0dcce5fc75ffd55e9b475645f05970434548bb08f2fe5660620481b27ab91baeb3e4ce84cc8e60349ce60d0f6d826d17c267042a05bd8a1640bedd0fa642f2e5a2121369f7f9a302c11947c8ed68dc00e413f9af94d7c801daf3f1d4f9bcd961f09ed405089a78276050ac22232526d914f75d10f37b14dcfcd76c7f1ebbda7f4328a1b34ebf914ea285aea2b2dfcbf76dd6ca6a7951aabdeaac889cbc353893a861ec24309558e9a4c77941378c219c38a3d592ddca464d97edf9db34b36289431904218fda2ffe3382ecc27c84e4fc5f18a1ee94fa64e6f389df56c331722af7526067589ee853fe569d172318328099331a910001b29de45b75861b4f0f670db529e314b582b15ee63d1ebecbd317c2d88164aa6f7240ae7b80ac56e981347d998980407685689abe988f638ed42adb0e0a94192d52b6aad894bdae1cec7f34b9b79853cb5d17c0317f689a1414aed99f84579979c68fcfada52e4e04498d0959950f6168db1273941001ce55f72c09b106b32900be3a9abbd04b99d2f9b3f071acb3816cc2ed696d1e5181b57382d32dbdf1738db9162aad542d94ec314909181a12f60c599070d39b28098c8ac4f0254813ff25c6e758396875a4703555bd813151abbc40490d68bc301d42ede051f6692c7f27795c6db71b2c9bc68cce57a7ef9696ba7da79c7a03cbf633ddb12564c19fec9edc549b672bb31abbc236f3cb582b9a26ac5249e7f3bce60b841ee311518dde1cee8fea1039efb95eb82274fa2b260db17ff0a707070747c5f4ee482bac63a81768067f31e8e8be39cecde5d22d64d54e7da2c380158f6c6bc63c81cc4d033ed41464c656d99a58c9bea14fea27b9e6d0baaeafe2625a8b1c78ad9987599637b525bd1f7306c9edec15348386364545c33e3a6208c2fbd777dcab0213d879bbf53ae50d90a9045dc70c5bcc034cad57809398c3816d4ecff01e4fd10ddf3a70bf17ba4d6b881278b456e71068dc697c315092845bb5a299a134ada504bc7f9aba09fc1107828e9720d1c6d3ada61763417ba04ae83c26000462b58a2f1c192102540648afb70c2852ba1646b5b526cdf5666997961814dfe9df68b40e974287f64f14c35cfcab16b6759da241746e4f4de15892759bb1dedcb8e54cc0f562116e79938f68cffcbf3ece153b9116f2eee42e0db3dbcbc9411db955cb30e8fd143217726a505334d4d2b78326d300b3ad216d5e77283a870ce3e1dc1b8a290564bccb5e87367e0ed882e9198e18d320b0ac10c504289f3f640abba9d25906d23caec1b9b69ddcb060f2514997079020c4c41be1aeadcc38c0aba5170b5d794a0b25664c2c1028a2719ad420b2311c3a75218aac2817496202df099ee05dd72144c5310b50d0d0814d901b2fcec1d020cb8c0f7adbb151658fb26219ac760ebdb6a6c3631af688663157574491802ceebaf4313b27aad06d51d31fffa9518ff06b005c1929ea993be72bef8138c57b1b31adddf4ea5ca24bad4b56d70943117d664956711f2a642bda9ad8c89c8cabaf52e2246b6f8889c30b04e70add7b6f66d5dc94dbcc77ee77204aae6a02d122472e0b964c4ca775595b447636087adbb96a4df7353f1b772a939b1d2c93ed0439e787bd5879a1781c58adc22982402b9df4b5293467a03af6274a4c6101373ab1a24e2ab2ad79e93af3db5dfeffe38f896261546107116392f1a7aebb14c63b51a59a8960aa458246699eb08dfa34d904b8247ff9f58dcb9ada26cd35149add888affcc15d8d066d7313ef195b34162e32ac4c0dff27c13f86e36147c312523f4ec1aa9cc38d2562940e568908cc020b8d3f2f274652abebc1040f767d2832f7701f111495e76a18220d62bf04c08b91752826563529ecda311758264b32a93976b902242d1de590e5f02e2bb4a30ed55e180aa51e23a7f40e1841fe388eb09142368850ccc127df7b20a23dc21318750a4c3e127c8f0e3a0ad9e0fb7c3b569c2f6232886e8354af9c7e2e55a6b26849d47c0bd7f481ecfcbd230c186ebb39ff1e77c443ef05c295490a155386329b04ae60c763e2f0641922657d07672719563621dce877bc512582a3cff94165395a62a89fc0bac47bad848051af9840d86072df08de7848dca306245f7d11bf4525a581d6c2ee16509d0d660c2d0b6ef22bf7b5ba0142922036a112b901d6a78e27ad15434015b2cabdc596cf82ecd91adcc5cdc56c4df325ac95331b418c987520ea2632be35016764f5d484382f53f6e265709ba11322f423f7a606843e3098db20d564f7a9bbcad6560e4f18a8bb39c27dcd870e576ff44cf898413223ae98518fabacc2d89ac7ad48960a9856129f0c7a9d3c439ddc7ad2c551239f27989bccf92ef092871abe904f5eab7b51c6c2ae50134e6cf384a5d40eca168a22b4ab6541d585678a4f6e415c4c089e26c15965f8e7830354b6139d634ec55aabbdbdb10f859e55cc7fc316407c7b20c237eb4fe4b02ef9b399ff96eee026927a0dc34199119174cd0e49a0e179ff07d944b650432e4708c73bcff9a6c8d915d7dbd34beb1fb0476d34781a8f352c4c231513350c920c9586e3a4b4bcc55777f336cfe6448fd1b77e6985f5274b299747eb2b0f20abbef221de42d9f3983a0b708848e8f371bb7a2c8511a27c68d3fd8411cb2d92afaa2e6f51827b08df6b8a236e9d2fe7fcede03530adcc0f37e720cc119414cccc9b289c4c5c12eed6192daae8021760e3332981e31839a9714d021c5348c370d836bb722ae3c62df41f0e8f87fbfe5f90a594f15009baf32eec5b0d50d9ef2f945a1c99f2f93978787c2a1a357fb317598480318e54bf14019f4e673247387234e8900705c3132679604e782e5ef183b9e3ce9a5f896168745ec2b1c3ccb887feef67d5e0aa72e07461f9476bff006b0575117d2a89da0654bd766eb8bcea7232c20d4f83fc6e38dde5775d3ad31fbe0a023e1f088437a4cdf1ac5285c4210e13873e059d96dc9a1baeb9f3403b042b01e86da60b8ef26437f02a05e3e37e8ad51d4f788ce58e3fcb0f9abe3894b1f56ee08e04ec6216881a13bd8e4860a7737d6a24181be215cb3cf84e9bc55d133aaddd8c150b9a5ad2b2323378a5f0d024a12ded8ba03802d58aa9a867a13798ec288a3cacf304444239a410b10bc12ea91d6bbbbbc91ee68b1ee3ebb3b39dec0a9ce76ae9617a9c0899366664a8b544e86e18b6cc3461ace7eade0875325416ca31a5e41a02c231129fe1dffce65437d876f47bf4988b3569e4d6412d5dbfa4f50bc89bfc250a2aec51a7aaf1c17815bfb2886fc876f5c143e4705ca9f4283301432f8701acfb251c07769c1a8fb052b7ab3ae5eaba4d2e9add15105fb705d3cfc09afc22eb95ac9381860fb6d43da53569b39fb23032fac01408c03d02cffd90638d94e80acf71c4c376d39343f41881dab790dcad9c0018479a42066c74f76808b359991f23f4ba6e48edbbb1d20efbb0a222468f483225ef8375ad5c48bef2856d377820a9c40e89b3a2eb307d08369993b0c3dfb7bb313c73e8f154782254e871e194a942884e6e2d469f5d4c064c29b3822cd2680fa10a2c1beb208915bbb4cc6ebed22ccf67f22798a391791604f02859a6ca368251781246b708bd40a355da6d9e1d7c639ea5c675d634220a2fcddbeaf4aefcb3097dc2c8b4ca8d54dd0e07bc14c368c2aeb9f1194f8734773e567161eb8e43aab90e835ead131a6e5cd4ad2e3dc5c332e767e811998c991025f57022d4067baf5beeee556205eef41ab548cedd642bc8fda003a9ee0de638c968050632e4f7b76278035f09a02f82533741f92bb1b752ea91a7058e74150efe37305b2801255be667dc405a97e37c17e1ca42bd0872e70563ea23767963bbba085ec50bc9a960947dec1111c22f494486aec0958728dfbe2aee9dff85083849280731dc95b882a995e48296420e421141978bba8d4a2c6624bed78946a555a88364892692f8a3b1982312837f6ae10c4fa491bf87e2715106410a30e87e74295c58b2625487c41480aad90052dbf3e920165c819480bdb39c8c07df76b81304b48fb512b837c58bc31d2f305dce1230ce4d4083dff77a5e83b5930a571f50a9bedb75f663b08608e911877798e62e72d2c02fe2c367b3032d3d0ad1606cc536f4e7d6c4d855fd2aaa706837f8b5cb68e4c603de4a02f35f8b3c6f61b7ad7e89a40d778dfb1ab072e077e9d2d6db0656ed9f8f18f8449ecb081124efb4640357b02156d38f2fc5ec6bab8653fb18955f9b0b6721406a40b422ec9ea2712682a5fdd5709fb24f5bcf214607d721f7703e5ba5b664b32bbaea590f8b86e29a19c5ec315a963e6e5c3209758c7a279138230b4978f3ac4d95e7b5387a182fc40041602396862af6373d6759ca628945a21b665245ad4e463bc719690bc82e7e83c9a3ae7a856549f2ac9d2e0ed5d6c944380f596f2ad914fd2ac1ab5738c968e20930b8356d5b88c8cef0641f6d2b0bd0282363085037698ac3fced0668bf845676e51aeaec2704181bcb45f056a80c6790220d63f49d470c7a8559f018fda33d1968d65ade2e1f72f6bb0504cf24814b19649608462dad72960b610e740fb6508a46ee471a86162366a5597440dd5f2ba86d07035c54ccaf36cd5a828222b20e536123eb20be25f44d1660318e93aa229eee80b58f4ff5f657092a02fb538015bffcaed74c4e99a4414894aef17648cf587f9d20af7e240a5173e208556ec4d391218c10f574fb72a4872aef3e975ce55d4a09f04218c5b16d23e5a629bbab19c5c6e821a6d704562f0f87513a5fed56e0175f3d18bcc0a736c268978736dbffd1167839620f9adda03f8719ee24f151f267b5d83d9a8a35778e28fc17c0f373d6ed7f2134ab5783e2bd09181287660ccc5cc671df0df0cb29ba1c8afba4ad32a2eb4ffb8b5d608d3115e65d008d87dd89ca0f501b8ab9211115dbd42c4395b73fc97bed177b7d9475eab4757bb98629b5a11c2965a45b5c9c221461fca3fe7c5fc0844b474c5ef411a95c2c3d5ea1d44d801284b9d50384f3b76f529ac1732931907ded1c5399b90b3b9bbaa2c670735290d28a1ce1fc6771b8bea3d31984620d5b9ce40a203e6406f9b2b2c5098cf88bbe35940383151b0a01f06ec79d02f0592d09119b7a4231468b3c5eaff68274d1f4263a342f2b4dc3169de0a4763389654c65c366c7584beab9d8d394780d814357223c1afed253948b0c584474773d678eb0032fcd9eab1521069b799f9ba75a9f1b4764fcee8bd5c2bfdcf90778146c81409e12615e3d7c2a33e54839b12616526e1edc308d6b71e2c708535e6529841173223c968f4f5e3cec9942536034bc9b42f76e3891d5b01da36aaabc287b35fc063b74473d19fcb8a40da34ae26520580a2c6676fcaf8d8c5f95a25917dea6e46dfb140e6a371238efa0df45cdbe20fbaf1d5f65e393ce6ebfcdee3273c47b6c1838f07cdbbb270e6e74a4bdbace398d3750f1d59e10cdfedc07d9ef68e25a6ad6bfa908fdc76e075b06e03e33c34ba25c7941161aada92db9bb73cb5e2e2f8b3c7edb14a5cab74d05f4c8b19726a20e5156667acd34cbbe40178f8f261431761845d5bb32b4c159c56f7067506b5d1ae698230c53f5179e3ddd8199a1d366e621a8760ef4e242c1a049cd7f6c883bef4294c95884777caeb38aacb3646dc74bc6d5833062be2280a7d733587366da3319083532e978ac0ab5e9fe393862fd598f29a44f347e1000a6449ff1c6d28c617d7f13d0627eb6a888bf0eee02e4218d2b7a2e67ade3eca1fa0d48f1d73b61bba90eb54bf95ce8191990fd75d06b0cde7b08742dab719644d8b7eddf32c4877a3ff82858790fa29363c314423c5137194cd793066be4c2fd7a708f0ab1a9cb12c620804f2914c175445069fb779d10b6e504813f762856f0973d4ba3c7ad20841b50a6676178b898123776cac9c61db4082e03d738599c7bc2ff85947a28f757c8f4d3de024e19753e7e3333130cc33fe3fd2e9faf7401cce220ee530d42d0ac3e2a8e6f253f94e2c366d609ae6d805a49c9f956c1f3352c9ccd47a5723fd270733d282a2af1e2820185df9a0ea0a8880acf90c8b4c1c5d45c9c492c54c400b5f21238c48064d02ea22c8f1b18d0b82643684b17ef1229d671fc54c1227fbdfb0945ea8def6f514732b9141d8437db6125139a2636767ff1a84a145454d92c4025373f2cd3ed6bab8f9f003a74986c29aff4b9e964e90dc9120f2c9841b148a7ead25d113303e448c8938fd7750965a91ddf0306b92c6b92e46b81c35ece9dfd859624e4dd91fa25b79b9ff002e3c8a2be7db2c3e458efd4c8b989ae1b05bb0401f8eee3e5b1832635b78ad87ac8ac72d84ed66e312a7676c5b2471ef1fb8fe987ad0a770cfdf7abf0a54b6c34860f16599f8e18277379f39b8541676e839966b41ab6c942f74c3e3412adec9d08984162d59c813756ef7b4304e7ba0d93627b47596ab4c13dedf952b483fd281ee11d0f7f86e8aecc260e7fc75d9fffbc1216c14e13a04f175a674662decf532466b13bd5e181a3d4e3dd24b8d039c85cf6f04a039d881417bb6bb8796baaf2afaf87d551ddb656865d435501997509549fa243f6dab41a3c3d24553b96522c832439a0b778d0b66fa0fc435646246b3488b0e9961ce2e731d191cea6bcebb4eadb1126b7fe2b1470ecbb4003369b9b2062e3f881707cbfba2d9d5021cb49214a32b45b154aab308283273dbc51f2337db627ec042075aef3a9deb6b61066c9bb89f8b1bd08afdb61ade52cb87e3b2d07e7a39bc5b9e5380bb69853bdd9458138acf3af36bf6882da3b4e81b32cca97eb9b5ca0490d0df104e9f9f3d52cc3d8f0924824ec5c98807bfcc6169e5eb6ec9ebf61dc512e8a4d358e0c4fd212d02ed025a6cd5b3a088c25ce6a0b1674fa48a3072886a23527d187d014b699b2d3402156a7ec15530f51ec5546902f4be6109b4138068568f52dcd7e7070188c56ec2666207fea8c54d0dd742f22151b59a459d2ab02609898bc5529f46411f0d8c86431d616737f995d2de863d9968855ea1935a9ddf178a165cfa037fc117b11f0418b8cb9fdf7f339be1b67546df21de9778620cc9ee14b10b6ce0595a8e358983d9be3bbc4a0996251c36440a69d090ce4f44803e0f8306ee8585d5d8022785c542f84cc8f126a7ef1ee810779e2993d638079c8bbc7755a71c11412edf37f7e23b38f85b2d37c561a41ef60eae49f19b2eaade683c059a9431f44e0f66741161bde4db951b424e6a11c4cd178d43cbf60ac8179925ec366d3816033b0b615223806c07d81c9688c7dd9d5288765824b5a54d06bce73326c44cca6e42a6a573c4c8615009054d057838fcaf9da44d83dcdd618038e66282460f5b5ae5427a812a7cc9a8aa02e30857cbcbc8805f9346846c1cb9a3b02143a186e14e430656a953f1c3dc2278e7f69c58ef9782ddb0d48f17d3193f108755e0311c29e0afd810a8096efb9a31d2adc008e020474e740ae2808e2defcc872d51bb94ec3f6a8bc23bc4c05066f3f2b4965009049186732a063ecfb89c0845788edfc7f4bd40f1c3249d7fb6714e15480b4bb898ffa05539cea453515638a3c1a3b65bb62ffcc39238022c7ba158f1435bb317069a389d56cdd153ddd4e2292c0704c5109e5fc62751139a8bce5dfca23386ddeb81c40fcaa715c985aa8170f28d11a9e10c575fd64edb55c11311734a374a120dd431ffe226a94731dac4553128635ffc077959c0c8064e0d34ae1134bb496f0044a9f4aad88490413274af1e7fc027407b911d58b1583d7b6fa497e19f041d8c0973f122c513fa46e4c792c5f703151d409736a8c6c47e53c7f2afbd9acd8858e611f05546945b04d0c7d4893eb4de30197227236357571a4bf62ff7774405c5fa5093dc4e078908560b12d14963b54e4a56bec89a9dc4b25f546ab2f48491429adc490eaea1f29ef2729f55f83f51199d2cf18ae8786d4e60d5049186e288bee720d8e82d18f527d7e4801917e69e614823ced046ba418ad14e3ce735307c1d42a6307c6232b754776925b1839c03d451cb5f44017caaa7a8c926bc71812858f4ab9076a43d450c9b48dcaf4d714c8dc06faca43e56e3a37f539194545818d3d0ca62665b8089ee51a40e86e45ff578989ed533887981bfe1e56e58f0bddff051db94441d405d04a01f9a82f512ca1a898e46ab4672b554f777e879b083c8377a92b4f803b49873770810d66199cf39e4ecde18b43e5cc80934ad677c227a2ae34a9ea6a8dd81fc4e4e8949ab5072614ea22253485b1047b4158a2408b82003feddc80de31f44609da7e0d9ed1d2d2352b59977d4002c1938ec43781b50f0163d4b21b052b01154ab4edeb42485375543b368bf5c9cdb70e31d72a3d752008a88edefdd256787393bdcab20398e94437ad4e93610502ee89855aad2dddeaaaa33fb08df79a45897091b357c964fa270aa5dff72ff40d9d6f22a93c11d7e0b651219fa6002ad9877880e4984a032c2b7f2d87f4b15fadb086b4828a151198249df02d9cdf0376e53615b7a5514c32fe636c3a1a89ad8a68b1e6d23c631a28bcad1d89c0c99b26fe163962bd156bb602957520758210d8fcbd3ef7459eb98ffc38e499ad5c91af35157df31f8e109243258d6bb39873f7da2c661946bc96fa203926aa529d4a9be3d6627d23d4a15f072ebccecee04bccd9bebead07137916a2a8b441ef98865c1e8b1d3629e9e0d3e57830b9b3d3c6239e9187cb1b7b3581ae0f77ca2e6d0e6c54c09374d7e5a4e29d1dd9ea0540a825f4da2daeaf88465dbfb40b50e4d10c30362577b73e9dd1b15f5abcbbdc0c1cf50301a9c6914a8dfe4651f3434db3f3d588c7a2d9fef58f36632ec8a37a17ce77fc24125b33252f3a16c2dfa7b425075bff4e669f140b12880a5ff7ea14acdacd74322cb66d26ca20a7c383a2a3e3c330e9054b6191ad618fb6bbdfcd27041b8b468458b907cd63fd110c50f86e421cba88520a35052067f151c157ecaeb1824fa75758c7690ee039ba2c51836d3e3a40a868bb642e27eb152ee8a37c6aca27d2fac13fb20398a888946ac4532f1a6fa77a157fd5853e8df361157aedf3be635d56c852565c1233125b7262058a1097361a7cbc2198981e8e53f475c21c7f198293e0ed0271f59b46022f885c155ecacf38fde32c74bc0cf431c2263e5912137dbeeea4800eb1351b35e71ff5ca6c007b223bd68660791e475a6ad995f68d2098578f6ceb0996cd979b16086bf2da6c5cebb1bf52236c58b1b3b14cde905bf3b5ad3396f8320ac14aa2133571830d9f9b19e46c24db57f5af773cbf5e6e45e490adbb40ac5c0241f4b231301c95dda965719a3520bea725f26f407eb58155ad4cee9314a82ef171d87015f967706cfe2cb36b39c1a4707049df9d2fe3cb8adab080cea884c4ae8d49e249296f3b02d5f19b352d0642054b53320720634e4d6fa9fc01b1749edfd8bbaa4b629ea520b277edb609f5ba1c0647e78ce936f17160be0d19ce72624ad050535247b9d166d750ae07f60a6bdfdc301027a230c2436109f397042804eaaf8651ac76b693390fafe78f207fa90b0a34554432b17912dbbadb015d7e0cb7b027f6713a396a63315299d5ad679193874ae592d58fadf57348c4bc1658fde092e2469919b058eff18105403e2a6b4123b20f6303b988a893f6492d1e79637bd0f03890150c6709af052a0ec57de264870fa739c9ae560f614364200ebcbd1b46032bf036261b29eee2fce97b633af89b24d80c04c672da60ecf3a4279999c0fbd7fee0202ddd59b9173dd9712ac5351d799b3012a16e2be211a3f02aa22f80d0d37f992e569dd20f626df0e0141ea111f2ad90116b8dfcad7dccc417de0d2b959867b7479794bb3cad571c9e86c91157090108a6df91cbcde3fd7bee0850cc43c45f80bf01755d10f597f0a275a3e3f3f24de9fe9cf1dfd7c458147a5890f17ca4e066819f20f59ce001453ef7014d41866848fa51b3676373d1318579510880a91a1bb6055ab64e0cc7d8824f6fa0f074cbfbedc7a624d06ccb64631ff6e4e8d218f9a61ada2b2ec340955f48a50882d6cedf2cea869acd90da82a7e06db8072e65ade6e003c28e76dba16ba24d1bc083a0997ada330dda4bced3f1a61e7ae12b38b46e0a64f68b3220383fb013bf5c935138012155c9cecb65f23a49064a601cb35887e3888a5c9d09263b0beb37c60a5bcbafbd92a71a0d084589031a07a7fc819dc5060cc312b8b264ce2f62b52818afecbcb5246ad519aeac3c266c256d8ad882f9a4a23e989b16ab73b945568d60b2e85374e20c73e9acb8b43e18fa611e9a9d464ebbab338579d8b3def2ec6b6aac02a32bb6bba4dc3bd7133f5a8e257315d628500d7324062de55911b4d82302a356b17ed01203293dbb6cb4768bc3ef9bbf59a7ce3e88b0dc79618ed2fae62aca117943505c42da5eff7d2ef3f3173753091d926482503765616d75191c1b2beba90cbae46c93e6c44975083fc457c19e6ed87e60e98fd46baee63b0a16ea2d06fc781903437334023a3735862fdc9b961b0008a2d15ffe1f86815cd518595ff82edc7bb1a214e30ce2c09df4396fdd34e3538a4cf8b296025700cb1fc1b778742ffa32f99c7dfbb08c3c3da4542ea10db9ffdc7451425e416dd90caf5bab5e69973403dc0911ca3d5e1d20a39f3777ae7330b9e08e17cbbce50a54ac7f440277cf60adb9e0c77394ac911f5689db91141ad42b3be00dc1cf6d3bf8cecbfaaf5df18929430a6cc52a252f8286d6b66c08c313af45e1629a1f3046809ab231e6538935f3db8e88f4f9649a1abfdf294d0a9744f379c62d732cfc45e80c32733f843ddf70892613a1bebec1d319b55c3b7d2c607c43b128cea13250e74e98d25a02be7abb0e860ade8e3c59a8a94e68dfceeece6c53a7487d4695e8ceb074c39757abbcb4c4be65a589ea44554005114dd5cf1f802ab9f66a65960a2ccf2e394a9f3cf4416cadb350b5457b3269cdad939f76deba92ea03fa82dfed7a94312bbf0f589460f72511ec4cd355a0dbd9c3c5becaa34370f3448d56ebb8348ff380454c5d7a26cf30ace53b7ec6c78e9c5f816efc951adf2cec77641637b7d2d9a2f64d451b30961f69f0060ca0f74f15753f1e23c4687db22bac7cc6c63c52415b637d7174a596843f19e27d248f6470c0ff38e0a0312b0748f51292a83a950d0eabe690d904b10b3108be12dd28f0ce56b63b25624ac73aeaf3660a377b2315d0885115a3116a31728ea9f347375f37f196a8b67d7e0604059a1263f7c2c0b3f09d236467627e1d51c77574968b8f553324ecbce91607bb54a503d1eeb12721e3818b54291978dabae196ce071d4e3070bb4f5474f68c46e638f8629852d0221f034da7cf3cceef153293a1aa38581030173f167d29f560af1b87de5c682f29296921e9ed208e47a80e71a75a00abe6510a6020a604040e7a15966ecddc81847b803522f033eae1c28e13ec1df1c8d130e68ca521044ec1f08d02a80ac39b8f6788ad03fe3877dfe9c2098d1f59961376ed706c47e40787884e561bdd2f7f6ab1b6926841008a0b5d5f78c98c8f4144674c7408d0e842d0d0b30541e164501c396f714f9e746f8aacb217b0281ced885691ed630a0c826261ea9c3b1bf37339fe831a3b399ee75a7231e59173f5f67ffedb5154ffb62fefe0d53224004f072fac656f85745a0b010ee4dbc907de8f31bdf001d68ca2c3d8784b61389750ef43d01cc7fd1c1171a778147c3e186627101cd01617447f8e2e62f78d6b9d1eca60662e79fb2efce643d9e60293ec8fde9391870a0be5e0e2052a700119411b8d2a366f4cb0d025fc29c16a6776383df4e82dace6557290f350dc04c3063c487a04f8b992628ece18293ff3472aef93eca9bc58731b3e7383c7f48129b0520c84e3cc8e2d3a10dea4658d8990378a9577cbffcb048d6c6e1a398698939cd4080780d5f7a8df366fba1c40c041640fc4d4525207c543c0e5f8c9733fe39dfa09962c1a5577d70ec2b1630b779e45f4b22e49487ddb6d364d590b5410f70da30c0d652c2f871bd0220931cc8236da03a865ce362c4629e94850d3c4a624298d5b912c3b16624ea94b34e5b823a93ba69fce2522a2d7ff457eb3d9445488e0ce1c3515acf715a49941443fdd06be8c1aa35e3c0e6a0d224075f696a816f91097d47557ea356ef0493a7461e9094636cf0f2838e42dc2d27ff8ec5dd8c22e1d1f4af70574f0388db6d1ef68c8be5dd6427b2ff590014fbb88b50d86ecaadf5a558fcc11e75c4931f61ccb86fd069c124f18df6bed8eacfb1830b5332c34b313b05b6642d8916437c87ddc247d015da9d78dabd8157d3944cdf0f26e52aa1151cb9ed1da8902d99de4f2ac371394ccc3622b0c209b8fbef262f6620daf223c6629e1e9cca8b7798c02583ae13c092b0041af45097511cfae709173d0f562a20e5d140290800440fd0054dadb774f385487b34c7aa0ec7e4fcbf9705eb944b692948c1831b01136667a8fcde813869c019f834dc06834e696e80189e30d0ff0f63ec8133363eba4ece7c02bc89083f8cd760128a074eeec90ceb26d3a600ed7d7875d2fcf7dae9cbb3f91eb4a0eed06e68badc19434b7746f59acd0e555ca1394c34e3220dca6648e402bb699d2183176bc5ed2c81241604c062a1e6ff1f8207cce9ce01910843e982cad9afa2422f9890a9f2479a2e83dba55c763921147fc5286926330320e614cca6de3f77a28017e8887f5e122fd906746df94998bdee77cb6a6f4d168f243fa9f3a9a62a6a689fcdb8249e0819b78534dbe559448ba0517bd17445c0b2bcc6043dc45bf96162488dc30376ddbd4e2f8237e16c04450a60bf0ca6099d86efd6b45fd114b3a6d7209d8e67dac4f6e44be0252187576558d8bcbeecb7c7d3e46abd1e620b20fc39a96b66d34594c3861c27d4d29b440e8be7d5bcbb5213d19e0d1dbc4a84313447ede5d3fd619f00c578385b06a09844630513bf697a28826c87a2b8bb25ae7f58160d7b6953112b62bdf471c4438f8594528e9bc605409fc5f9a88a2d1915feab498c225571c51d0665a84002286a41a11e817ab5c000b6f7f14cd801f0e50e97c7e9bf931150d0b894c461c97a142f7dd0f42e77f7559da338537a84bfc632e310994e1f06f4f4e662ab404699035ad10ccbcf672ded5d81d168fb246705bd73e47adea041f359b9d89066d84d085b222b70b8760cd2ccd9024018d3a3db475c709f1c39ad13f44c0734fd5fd726c2681e3c1173d93197f9ae8084bd01575bfdd9e5cab6bae05cab341de4ff1ff65d57da11d54da13f1b5d3dc96a424a4cd03874b9c957475974590c213d5449ca066605f8e6b1bb80c614959723aea30ddaaaec040b54cf7133831240898946cfd908be82d65bda7663d34b720c7dc5e84888d485027c4b10497fdc6621565805b8705e9d230860d629389b33c430d6901b8bd8298dd6797568aafe5bbbdacdb6b8dbb3a88d05a69479c41fea17ac03d0afdb6aa4e99e3d1e3dd5dae997aaa8232ac9c4bea1a115d29b1ac2c0433550bbc8596ba66e0100eefd6d5f2c69a08f0ec9d7629d212bccb98a73c9bc19250a556b7090714431a9aa294e5d17a23b35560a30a6bb272f80bc2a9b68becac23bc3a0ac430ba8e61aa9fb0aba87f116a5b64dc6eb777f1b358346fa68a069f27a1eb4ad7389623f22de3fff7a1d5dc35d445a93675fa51d6f0e33d44b7fa8cd5ceb644f7c60d76dda534c0004474b777deccc8629ea4522ea36023810eedd645502c7f9607b8016534d4d186fcfe6175a1471c780f1387f6ef3b17aa680cbbc2fb9dfe9e03d3337af4268f7ee3f46b649a93e1c63f6c515b852d6b2eec53a356fab90db1df8a9bb49afb3e67d2cca1179caea74fa8d99ddc4c68b4aa83cc76eea9baa391fc3be733207b80ed9b1723b89b3414cda4debed73b6bbc64812878bb23cf272ed9d6de5e7d244d505355702402937ba19330c581c6097be0cf99c26140420268f111e599daba472c8cb0a9f7562c83383665fba9b22269a7d15b97a7eb6c603b290addfdc5ef16047b5f93d8596f2299c1408a0acb359186ea5278e469451cd842ff54f277c468ab8b67173bfe87269735d325b237bb37d740dcb886183ac49fcca578a71aea9233a98a3d8fc28b103223d3424870321f7bc96454ef57c0e0ef8439e3138ccee82686d6971c22b115c3d82118440ed1bc5a86d47bbdc2ce934c2ac9843e092f0f9eb1bec366a5ad4f3860b769ebaee7229ed2de4eebf58468d9b3cb378fcd49199ee5c416a400bd63dcc53a91bb83ca1630f164d1d07b7655814ab16b8015426dd8699e8f90e5764af7795b6a6557c612a03be441a7be411bec863c6b03a3fa8420a3e52079b01f208ad9d9e69abdee49bb39d6ec16ec7300c49ca98a9f083da7b78de4f2e599c6281e606bb619cbdfea41b789c687742724afb766124da14ae7b063ac19a061a4aef3a06fd04e79e74320aa216d795f93e1dd97b92ca10a0f47ce80501a76472b8374b54326f8e6cfc89072087a25c732bca179c2f1dd18b7bef18a41819925ec3bd632add6779b07e6eec4aa70b6cd52128c3ac039c7ceffd0459e5f1aba1d7204ce393867e43af164f983ebd7e263c10d8ef8b6572615007270d6e56e7043a510daed342d1817a4b9ee667d8795c3b416ad54f469dec700f0d4a63af68d0f6d117f72e502358f666c407a5b363b2d0786f0174dd2a55957444c1e1f0523c41b1a901eaaefdaf6f505259ab4ad7b50bd9c364a3293f2fa0e9ccbeddd4e752f42deb07d9047975b585c1677db1d357d8ca56ab8e2d9d364f1fdd813f7fa39a830fe59fe6b1b650e05b26f0274a0d94e28f97d68e328c3a880f9fdf5bcd1a1a4292dbfc444da76e4436fa9c762d24ee9574c6c9648a041970b95dd1085a3e99d5b3e165a3b79962a521cb69f1999cca7d12522de55868a65b8815e3739d0c738a1ed7d47320cf3c03c2e8abf491284a3bf5fd9d4ee38392fe39a850a1f1694e2e820182402bf6a735bc3c4d65c2271e6ad291dea5a1ee2c34a88c1d030103aa4caa52424b5b5760746ca528278931782a2b90f624b81a439c370a00cce12390c7f013ec8b08a53b0153602d2b60b8a297852cca02e9413f5e04cea63fc46e8fb7bc6222f8c3369bc0243c4f5778d71a0dcb4fa039e39817f25688b390c2c909eda90b38885777f042f33085160a5ebd53aab094ebaba42a9c50f77eaecc93b89169f0854a66d5ba6378ef03a627ccbd5a2fd5767581645e5d2dcd463668651123a463d0c29ba0b9e37719bec3f4aeb959b8972ca11cd8d5003c074029b0617164302ca3dc5b75d97cd405e6e831991bd7d6e9d2a980db7e4c34d03962a456a0808ce939544da155338dea171b021c1a0aff2e34792b35396c2f44a200b8b793583f65e14e47656b2fd9f4f4d4661bcd71f8b8110071684fb3b747b6a529b9996ac9fde599c8342f247b4b4fa25c6c578c244cbd8afda691ce423f6aec8380fb9345fdd568ed244478a1439d455fef7a5a3e600f9026e0d372adfe807b6d58568dc9bfab7613081a158017d6aaf7fe61ed235c0ab52e4d12acd4c544643120d90cf8079f5c65dab20662d7977085b7f79e369b29eb65fe350ac9547a3e787985ab864435c477a68130284ea7a7a8a3747b3bbbd308a9aa488a5e28f78b6a631058cd4d3e0639701d3b9f875511d24123b28e33914e7249c970691dc4aa6b69cc8a535a3001a0d3e699be54a4459c6e785af82324f1728a5a8a230ad914b710ed1955ddda51d46e127748ff65e42711d9babb900baf72e9863b52ef17b0786094004959fdb1ae1c047157f793e0c6f28ab530dfd11caceb0b1ab56b84b849259e23e4a337b33f94a8f0ae6fe59530441f3035e36174376a477807daecca1a1fb66e170fb207e68fa73abf508fba5f9c517c7aeecc02c9f04cda2e4cd67e99da8ea9dc0ece26c30df4cb4ef222f98ada444efe5723a35a4360e94bf079afa5e204c6cb8da4168aeb3d867cd223ae67343539ac67ea0017ddeea17c74f239fcbcf621a8c6d691713d2c0fef11372869f585693c8960894b5c683a9076844977432fa301088a54891b803e0e4749174a7c41c9cf36aa33fdc8ce25b869a8b244476150ab3f2f64c563f66b47d792b934a02fa17326d0ac0d6820bf797912803d3c62f151598d4277a35880cf3be69ac9ec76490c4717441492ac12689a7f289c9f303b550acfa6f70240675c5d36ac5007d5566c4adc6d460049d1dfdf4f432b908f7320c6a84294fe3fc594164e090f5fac2a23e59e8bed6d553311ccf80b8525b566e131596b9d7141e26191173fdd8a65647ced196f91fb874a5d39858ec22e677ec6bc28294aa72cfa32a23dad735be0269afa650f78d9c7872d5b9c767d3af1e99de8b00af5460e135d899f41c0203e4f5e25fff4ef011a757bda2586eae5ee3418878379bc9295596c83c11977ffd3c323fab9d383b64f1ce12e4840b48dec96556d163a0e02b6797b39ce2c9004d435270ae78548c57fc5bf69d90f00fa630b4696c20de6b3857b85bfcbb31d3622348735f64458298d08eb7f894beae7563bf575619afcefa5e810230d06a5254bb719ab081e2284b8a07a4936068fa10f3a924d4421709b425155bd1be5de60c0c89ce7853e5bad2c74f69d6bab2c2b687122f479fd699f1a36b5b53a99120640d8a6399c53ad69634063105606428fd1780fff359a3adf86bfb9dcdd0d30077b0281720f41214bf1dd8d0fa30f8ddef1aa37f4fac34e3855da2bfbf00327138ed2707c0bcc4bfe873611be59525c4f2fdd6dabcfc407d9d75a6e26d0dbcdcd153b8836a8b3cdf8f9be3273d10f3f86097e1af2e64785710f1d37379dd5030957d6b8455b0f36e283c457145ad7905a85065eb8d137a3728f1d636fc3ab2b53eb3ccb673056be1a090862f12cd68469c322c7120bfd2da0bbb8f5cdd1cb33ce13d1414177a45a8a4aaeeb12a5124ee618fb943a8fe20ae63b2519c1de69955dffe563e8817112d082fe80ac273e4e01b7f963c2fbc1aea334b8f4ae4d310975120a5630e452cdae0f57824073c68caa310c6f53fe19cbd3ac9efd5ba8c9c7d342aaa78a873ae6c1ca52abbb90a1548db244c70133ebe6a352fd7ea92eb15b4e85eb5abfd65d4690e309320b06dadfd25d60f537e442deab74946cbde11bc8776e3160ce73fcedf40fdaa2eb5cd290863bf88daabe7f8ed4249fbebbd9bca3c8129526c4f46923330086aa9f1df639522236f8fd75be390cf5a267c7bf5ac7badefa4ec8a19f62fa149be9304e3911d3593725c4c929df4ca739fb9ab4eca3fab7f58b5a95e11dbfb36eacfded185ffc689998be6fca869ec44629c54c8fbe6514d2df095a85ad8f3eb75d8981b9997eebdca74437ead3c07f7ec3e8640713e79d34a45e9a9258efaadf7eadaef1413247585dc12bb63060ad6f5fc7e837feb5ce3faca94335fce02c2467a73ad871bb89d526f9a0a015094ae23263a425d49cacef9abb3a33d33c9ecdfe429866667bea9c6fbbdef57300fbd02916e7a4a4fe7a9e873ce4840c522688a8cea7c7713b67bbea5e7a66c972c308ed24fb8fe724a1431c8bd48781189880c1bba2dc8b38a0699c583f522a4d11758bf36034c0783bb82015545fc370110973d5f2fab75c179ef5c9700769140d14cf400c6f01a26ed06dea2bb08a646b902e14917580428400510c98698bf7adad69dc7162112ade79b129e66b3c3b50f60a706a83d9ec45b6061f6e907cb6f6f1bb2ae93602a4ef70de5a537a0a156f7c4efef8cfc466d41105abce8a754b2fe596a22838c2cf764ead7dbe14c787d25e3303cda1569292b2b8a7df8c35cec12b05c42780368d3b9b0515839d3ad2338280571df51cc4a90bf7ee2fdebc60daaa1d9a97e48f25f03f9d0ae9d0bf989b05a21aee8e94b4edbb491fc409c287b11534b177e615ad161390fae48469cac5d216a0e9a864f8f6fdb47472197fab95690099ec842135ba62e1c6790e8a49c147c2eb77f7af41efaf467b8dd5f4ae27dfdfaf04d103f2268d1afe400bacbb7a6abdc230203face502a8e6926a2248c73281dd782bb427ac13f2926acb77811d41339751c3745859d53596925a7590a8e72a0c0f5d486d19c15b3455c2744e731b100e0a3d2ad205052427c4881da8df17416a350ab52c2f40108b8fb8eb51b80c31bccdc60dae8d8ea5cbf2d233d6a195d8596f3a5d82b6679857cc87e2265903150aeb3ed59d9e663731524692949d0ed0bd09c838681f801442312a4430d7583a39016a8196aef917d4c27e3578e3a07296dd4f7bbb79ab452d78f3c64c3157d54ac5efc61b3f1a87be85037c35e21d8a5ba322c4cd02f23e3f889ca14a0af3184c52472af9b93edd155b89e330ae076f76851aec6d6f056479fa2fd11c8701914bdbd7dc67e92d0f85f314529b909ec0d82de1c7a8778f2095ffbba154a9a79402ef2a752a75864e99bc4db1aac4bebe011b7632a139fdcc194e36965bbd51af9c8614155c8f122443327db4f1ad20e5605beac47c02461a0979f9bf699308531c4040de1759e72a9b952db28d503cc141995a7e3129dcaaeb218711d27aabd076ea08c96d83e2d9f47eaa9157c48c9a1eb9065248843de9c7e4106a8131ce9aef6b6294d1ab9d3ea9ce4b8c83380ef23e81c7cabac7ca62772debc5d97463bb15590fa99c5cee68330110cba7e8b3752539eddbdfcb06ea510b18405a885c40ea86198cd9a85a712c1c3d3c3b9efa9bdcfd190400e104137015b6d62a6b8c0650dd7a20e87177a293ab8a30ad7988a9925a74dde6868d42f0c95fdd7d1b7c4d7c47edf70084ddd3b2c5170aa2acdb46c10ca4b32ceacbd62e2a089e27c23ac13fb6c8119aeeab767d17f9d40d7cd4f541973a2ae9956682c3b99a9a621a84c8c615ef95c6aabfaf848febee079d4e8c735d3033b5b1f9e1ab9e2153e00c64d510f98ee75e7274d82cd26d78668a44c324fd9b0aa4c3f8183d06aad7d280193deff51a72cc082949a86fc8ef5e55e9bd4ebc98186ca1f81dd355e20227d88df98fa9748242233309635734b107e9b12bb94d026e452dd741462ed090135c6ddc211ab1ee20dbf65685a394fe3dc8c2a67c800938d7e649b51d8eb39665e5108bbd673d076e292c7c86aae46e79f23c84c2ce68d395dcded25dbe2035004f5d04da9d6d00139ca0b71f416178adaa776a0b573d6a20683de1d89b28b40f6e73cdafba8bfd9a62dba9ff896741ca8246bd68a1a438152529af63429676d3e2a6db4423bf5b0f06672e559b0439ce31e6596ad3949240554e633d0ba82fd108d9de000243723a5ede72a055d3e9eb23fb29921ac9dcfc32ea51c2304b2055b6f25f63d159984e17f0202f3f8986a2fcf8b0111bf0543bcab5ec47ac245a76f5a9cf6602ef8e8cdf1253e01fdcad8ece03d4bf88f90b55ed94fffbd1c42dd27a16ed1fbf2e851b126e1dcb1185d6a7f94c80fc77d6ce91c9a21cc74c8e235c440ab3f7ff0eb7c862768a86c6da548f8f210399f86126dfab97a10f33979c5c193069dd0f3af063e8d6f6cb2ecbf4ee2161c7321a71908deaeeb1fac56e735ab7eb6e16048392477ceb1b11544bbc97c6b93a2b0a568973ba7f797750d1366a74c01dc84cbb184cddf87d1519651a304c4a02b965ec690d3c586bc1f8df4790f58e78b832c83ca258430d108e44f4127d5eee320013eb8559d67eff02b7250837c3d7cdb2e9cdb2be1e577ff1b242453e86edd25de1323231a389e7fe131ef78c8e8cf3bb4a532f64a4fece35d74fb22c2b880571ae4a159badff54577175c274f940b7f43b69f4e3247cd8c1700636aba6f0eabe55f623fd124818952e5eccba595c082f9d8770cc33b553a8fa268849b129c2689f338c004814fa1b7aa13bcd9ee8fde20dfba0c24358419e1c987ca6a49fc90640eb355faef230d4bf3a3dc12e3fad9247a82bd8d3f1f1079b8a73e4ed79268bc30768aa2c70705a62c236e42c81a48f7e8f2869e9d16f3454906f6443ccf91fa7f984e28c6de2639db3d1530713643b11741cb0f515f48dfe8ea150a525b1964743d9df2339bade80cb2c0ca6fda17dbca723c479df5cb8969d6f568c8564af4a8d19373da8e1859bad6388ab644a158806602334f95b9dd4fdd8cb63022b8e094a96e83def94f9185b852690a0897e01d4427ac31a36ec42b70d3f19c3f18d655fdba5fee2fe550f933ad3a54c3f5f0a857304fe3c06f40b8572568c3b53429abe3141a702d410e6884e6dfb3843fda01f567fbdf00c48cb856a9d48baf27889db8c4811f07cebd7c0151c3e7f3f87ffcce0a3273a354942aed1a83b8404e8741caa10b26f7cc3fbcf821bc10a07c43ec163f908f42e2b9c4430f84f69b27249d52ca25d9983302f026b6c135a7f5ead8e3a267d7d45da7ffae47647beceff9d89815326993c01e55803766f75caff8e725235a369d3972d43fddf6799c6c75daa602c51b31b3b945d6872dad92d074c9de5a8099ac993fd4ad4c3cd11161deca3d867efcdce3c4243a18ef80eb3059df0f890b2827c388b3feddbbd93f0ef22c92c15704a8a615586172855a5dee473c1284a2ac3e89cd049bfb59e0975e9b9cb002f3aac11741859d638c49969e49b16f4654c4a644e25b61392bc2706e0a7aa09e31acb2ce5f3377d47699a0c417683acb4788177bc2508bc3129baf7403956ee8ab99c0a123cf91a85f6f506ec814bb55664d0321924dd294d3020e363eaf1a9d03a8523172b16eae52e7319cb83a5c44bee7cf748b29f9672a93393ce1399d7265ebda90e2ea73cbfa9dcf15299cd52a7ae14f002fe5df21fafbc2f59758db40175946c08eac162c3fed3e906b06292e9a98698ee283645b84ddb5563531e7d3a5308732312d42eeeb8e635996eceb9c98bbb8cbc915e5424d2e852b0be84932d89a20cb8aca2e4450f8fef5964960202c56979bd2d76b1285ada7f699c444a84494405f46aa9ed7dc61278ad1ef7e2fcd8336cd0b79153a01a29cb93500cdb559c94271dd06856fd5f6d9812e9d240214f3941b85712de6b8944cd5cc638e181571f85342a0d36f58411b0e81fd502bb107ae85f2d12c7a9f93f7d81ee02a2e38fd972203398aca66118bc8408bc125fc7044f3941365adb22f7301d1b360d496dccc7a100ed98687d051b72019c814bd227e5015805f9294578c39eedba15acde417979f99dbcb189a57925a78ae7277f0e1ba777f8f8cadd223b251dfda3729390d665360b2c1ee7a7d1329f28f3853c8d564240cceaa1d1644f88df681cc116482aacc59cb0c6fa51792848604f0da64c414d00164051c0793490273c160563529274a651bb8accead7b36672d0578f4bc21b8985e79d4c5cc513ae045368b853f9543c14407e5db9ca48d1bda8c4afa2af5aff2905da8461d210330e85274126de2dd60b554732f43ee8a38b626c83980f438d8877d95660c7484f21a2057fd2c4b994d4515e0b679828a3c4d194859d49a79c01307c1f7af496865c1ef8eca8ec0b2b27af9beeb18023edcd5106900b357531728fb3d6664ab00fa907ae271163c497c1b4cce1dedf43c53ae0cdfd4299c30a6a94e5fe57f6fa250e5ce0e1004b83d7bc13470e8a0d9ac358657cf0afd7b2effeb68ee70cb566ae7eb35eed908a17124a80651df61f41ecd4f807c224007091a9a5dd4c80f0bb52988330540a4f69c3495ec818074615e5f5780828de4817ad2853933c248c8a746468b2cf77438fa29d59250bc880d0b4b581cb59e66393aa3863af4353a182ef204e8a03f22bfa837f2fe1bca8d07c8189b09ac7d64a2b23f43b5b45ff272d00eefd542fde8095f7ec2f18dcf02e1ca8785b63b108ee30e493e0b0bf58eb604156dbd5a31bfcb28e33dcc180a295cfd29a42d225eff3e5843dc74f5936ff9159e4c60ffa9cb032ebc195ec18c387ecaf8276704ffc8ee9c3c4457141ea8f4aa368cd1216abd76640d3a78499850006e82b7d64e80967c2a3c7b0f21949e9216c8442b668532f3ca22e1c7ef379c0f91ae4dcb305ec0d44716922622870acc851cf84c36efb839bb31338aa6ea67f8fae9e52a6c5ea9afafe0afc1bcc2dc2253c644c97297b9050a0fc541bec0097d4a2142cb08329adb4f8e789bf353afd15823c21331f0e3161803fdb308da6ed76764d995d03ba1268f3de72488b8703dc212ebacff15bdb3c5683dced1215e6432acbb6cdf7c0c28f41b1f56a01fd550da60d4375ffe23dd40f1b07469445e6533b85fe94b585ac332d13d875b85c63fa085a4778a61784161b9d0413a8d85a8ffeadad7bcc3e8c681aff16f1552f3368314fe244fe572802d81446de3d0cab7a1c056aa2e69c58412787695dbf32091d09641b24c12d6256c169f1395e5aa25ae4a61ab663f9f650e18a06f20633562e7133c8797648574ce66987a53a0c4d8a31586f2561ef7b23953ef7ffdd82a5600f37a041d5d3488cab0a13c40122f59c2fe1affd91b9b57206a193255c8256ba5bb11085aa310918ab303cb37efb8f478aa434260e6ad3d005db37fc1cfad4a35ed7fd4fdebd28cae8fc92efbf14f55ed67f56b8f3c9381f8b48dd7bd22035f6d640d3ae898a060a4113ff7d727ea1fa9594c10848669400f9c96d78ec931dc4e267e9d5447b60c6b9dc88e7132493144537ec23132f9f9b83e4111e1d062e5cad5e265d6e8ca0aa7fbe8da45ebe974c5b0372803d97933b615aef262766f791b11e86d6f0213b10fcd90ad0c7e1ab2c3f7a388f71a90144a89a1d5e5fbfa9501ae050a725d170a2f567aee0817a7fe425a77d2457c434a3948af0080f04943396eb820afbf9c004450c2899136cc89162c517ec2265cefa49c9229903b7d4b00a4af4221fa1cd84701991096c95d3a13a470354d90833959a959c269a896040cd7dc467ab0ed52c290600e43b4411fc681f14a11abfb67e313a291456ef939dc7b0d90260f2bac8f112cfc4f9b0c51fb0faac1308a60dd95df4ae716ed89bb52361584928c218f8dfd7f8129261896a4abd676c0cc58f402c166bc3ca6348c286f0a6da21b875029d36eb912008393b21f6b30860f842385fa447e905326959f0d75856c4c004cdbe1c607a5798779c4f78f28693e0aa6b1f63065f51ecb768c5d7f8e557a627e0ff37923138851a40e77d7f7afbf61bf6d0ea3a175da8247f131d50905e6d1240cb970f07e37a765c0f341695b0234302d769de3c93803d12a7bc927ca158e745f456be687ea9a408ecc84b0d0af5d813105c78b465b1f10e092708577d79471c6fe4e8b76fb02cbc0437b62a088099818dd13a951d3a94521140949a8f2cad08214e9da298f822da084081837a205c1d845cc6ae30b6254f65472423f5fbd491ad07a4f1b222d2d2fd7be7f64c85678c60d6cfc66385334658fea8163e78e170223a1ce1d908a1d30141871d21f50a2a89f936a523951d3e8c30721581a9eb55c271c308889e600b138b18bb781c2c977fd30c5708162e4daae54d58be3a043727cbb028b7126405cd5403528ccd4a13989acdd8357a22c98eb8440111e2b9cac15be60762380b22cf815841b9184a4e15a16fcdc8661729360851644f94a3625ab8020c943ee8c161c16d3279767017dd43db8e92255b5c53a01357f52c8d48f369a6233c4155764e5750688a28be6fa1ba6fa8677e10e38fb6d83b78da517850a751dcf1344dedec60844449d35f260ba3a61c8fe4439b05ba8a1d9be38d293000c33cf30e0d63d007fc72c074c2f0bb610eaac5b6053c0da9e79600b737885e4baaacec09c5a8ded12c5365333b96cb42a28b6e4ce141f21bd517ae7114f1e2246a7481e4a1d814f3b63b79408dfae18c76cf33271608c814042bca264c8d079b1abd11c87da9310d68e5bb059400ca136071ba54100d068df5408a770c299012fd461fe316314734ede77b6e7d9a6f6684b774440eff47bda7c076179fccf62819527426b9e7bbf73e5b4a4ce0b409390baab31d061f9fa356b48a76ff7fd5c11792fe3c6f0c5189485020e6a2d860dba1281ac3a7e7c413e787c714744d69fb732706d879a27d7c20c3fab0e4c5c67b2cf0be393be4394df7c1f7047236b7c4face3027b3e0388865c1d02fa135ca0340b0e90f0a84c04410cc6781169b9feb7e074a6a10b40c98f2fa84107141c2b5e2ed7a9e040adb66337962005139c4ed93d2ad0a4bed5b332a7020d0b8d7448fdd3cb5b7ad19e37594ed6273db60e1934f3fcdf2175cc50e9483a48939ce4dec81a5a6af823f8c16eab952fc8429e980a1c3678770c59bd6d0c25f56027bafc1e5804f6a00c818ead5811cb3f8ebebb739d9821027606109a033e45403fe96738a2bbe03ff60553d837819678bf9d67c239b771319efde34df124496e213e119b20f2163abd7087580e923ccb673d0e19e28f0298280d505b499d52b185491c250b31e74b2c37b043072193fc5f585c8a0182fdf83f06cf6363c60200a26d0e42ca85a168a8adf02374679cdf81ea8974172a5f25de3474cfdbec145be78f67d7c76f0d117288316d1778199de82931bd9bcb41829653a6d067ffe8e529c1264edaf4cb454a66e219d5aeac88979cbfa2f9e3fd187a7c640a73dda5b633722bf34bb5983bbe083fe0c3cc288da1a77bb0d8cfbba1990eab318cd0dcabdeaa65a14f48d62b90a7726ea04a389b30eda3cead9e3a8a904df164725a805ae1b077f94fae436f356720598c86ebf2e861572fe79c3bfbe85888af86768617226420fe73c4a57eb08f3c9f32f2bb5ee9b0b13b805266e44d80ca3de950c80ca1f3ce902fab5ed585c30d61da703e974f3b5dc4cbc6c17c9b0766b0b712e4edd8540cc76f2a9951c097a7675121c275ee2840012d3a1dad00384b686804ff46b1110c26bbe19f1b686ca0ad6834f217f94a18cf759375d38b86621b8c9de524a29a59449065f058a057c055a060bfdd5e8d8b6a60d217b7797d841b7bb63e807b8718a3635e3c0d2487dc2dc7f71850ebd0c0dfd6009b952da1416631c71dcc9b64a5dbe707cf88f0338c816e2264cc7891585e14e66096122b41824498b4b1097a125e4a12d19ccc9232d7bab655bb6354fdabe7ea1f5486bcdd3a8cbb6e8cfe6b72e6973a9481b9bf3cb70a169f0ebb071d7024b47e9d9966db95aaeac8bd6eaa66386122df74b4b287ac8979efbd35068bb3f6d5bb52302c59f88f6a3df3a1a76b61f759d8fad8b5dce34d91407442b477e0f770e06f3305d0f6992bf5d49a5b678b1a91c2bfc71a4679d9c221da7492a81841f96a04a5068e7ecfb765ff3b8edf0d40edb9b27bb4334c937b2e57f3553889b245bda54c6604e96b196b45e59beb89137373737574c79d18a830a37318a2d29a01569203fec119e4474f98d7bbb186b5c1914116daa0711776e1082ff7327dbf6156c7964da30055bead17e7b1ab4df6edc6f76922b95da7b7f7b1c89710f8661818f53cf32d35a6badc5580a7d4f829b6ce958055a85e4f790aeb33a3cda8f1e47e2745a0cfef3726e457a73bb90f43a1ebf6dc744c371bf575bfd8cb4d0ac7dfcf84fd3d2f9dd0b7447e3cdcdcdeac7767142cb8996939f1d41274590764cf562a3b56e3d7a5e8c999b73cacce1e4703735d3b423e20c9166fc68b9254ae3dc69ec6baf032af37a502d0951f8bd68c3664b94fc9b2ce3848e353ade2415d1d5b8e7193811ba94b988b2ef0573115583843ccff359fda8b4a891589aa6699aa6699aa669358bb0c27ca494158661d68855a9a4aa0b23f1a45fbe26b524244d5559f3a43b16cb7d6b2abdd23f1f1765cbd77ee4a9aa26464193bd64c334955e693f5bbed6831f07ef42a5f9486db559166cf9964e2da54459d53c69aaa9a9542ad5c45853799c94f41445ea8614416df861fcab2a6e9d8c4a536df9aa9cbdc767c52235a1d65abbd0547a2115f7de4ba4c95c1c6dd47f4185ba44fa7dc1457ff85a6c99dc1bb5744ae99c33477a3da4a793b31386e07cfc76d351398c234fb9a380fc31146323d9020c9e0b355c37eab53b186b43a074e6882ef926eb1416a538c6084de9acd5278ad3a68eef11a2920a15e325a3217cd5cba69141ee2a5f01d1a6d623a2275f93eccd1138b67c05444f6298eec35bd75d6f7f3548d3aeb6a4e755515952ca1a145491a841d85a9f950e24c74b628c38e648c22d30c618632dc35a1687887e0cd924d15a29f8c9deb4adb32bcdaeb219f2ed10be3f72c6d7feb084b0cca6588d01314fa3c9bef7a5c9bdcccf90f6104f32688768735fe663de4ad70fac59828142ce282b057922fd49bf10914621fdcc6bdd0c6d1229113449d619f98fba76cd8681cc92d659986ef31490ad1b75584b29256bbe5e00f86f863228003352a0a1abd20cb90070a40700a73f052ee667702fbee3669e8693798e93f1252e463683a62483649074c918ee05a7cd7086f3449d7ecac847592a87f1d09fdf074d8e354f330e9b2697e1a4ca5fd3c4712f663a2f9226fbb6e3d912c7fc4501c65b94aba3b930de07e961fc7d18fa4b4362589f0c922d4bf32810bde6698631fc5e6a6b24ce5133c458eb29a38aa6ab7922d99f5a4c224b7a1f344adb195a1b13d30dd141d35c4461ce77e6b0e63a6652b13fb7481b27c06bdb7f4d93b5334653b487ae288b054e3f01b8985f81eb5e058e1b00890bc0cfe06870f6a457d0b6ffcda16ded04a7cbb52d1d658e09fdcbd9c7f4f57cd2ec68275f4af4dd5323d1d74fc37cd27c3d9f887efa32a264e72c6d34227134fe311f69a04f9a7812b1251faace5c95669748c3fee5664c7af649dcc4c24df6f55cc2b61309b3cb0c33c724e631c7449362be6e3968b22d3fae73256d6e8743f73c31cf7dee68b24e0786fdf9f3a283a2f36f692ee9ef8b6e08d7114121d82998920998e0364ff304f31a57da777f35524a19edfb04025f73c8feb597c7fcfa3ab4eedecfbe5aee0aa9fbab014110a4375b238020086a5e220df9a00f982eceadf34163b10d78079c19903be190b4b159a44d052738c17b573f308866a6e857cb5b2b48793d01b30451c1ad562aa5f9e81c15a28db8f1bb2a253daf081affe7a924b82d42b4a959441b2a5b40419b7b13b6fc68bbaf26c1a20483bd469aa73a1a4b7317e55f6e84718771a7354869ce155947839fc6c7472d3b4091822b58a8acd34c34347443a07cd387172a7b0dc86c265947c49ba6ae344dde9a3e94ba9b05f0b85059979353a97d204431c742d2e6b65aad9c7f58422f182539e79c73ce3967e7b6e058e533ceb2d405922b0021f1168fb35c4a8fff648c71ce39679a475afe12111aefefe77b3ab8b13fdfcd96d1c67cf92335941afa9100067e4ca00243d5d6fb3f524319a752a9ec4a1248f72620da8872c4d2f23d76b9eb318f79cc631ef3985f2974374b76cb71a56441221990ffc630be79490bec01a88a0aa4907a287885de7804473773ce1e7cf30efb4db6e5f0b8ff0a1059ec2f8229209105f6ba924367679a886424ba99a626f4575f334b0fe6bc5b8e49e9cd151f196c47404582ce9b9b9b5a7db496b5d6622c458dc1f045d38f56d2d8f726b653d9b6c8da540c487fcfc513fefb968b3470d7b560802a05b5d65a6badad7fefeac746516b18fa44d7c200d3c8965f8464adb5561d25d0d3078dff3ee5c19dce3485ee658b2d65eb441bd565f66b86ce63591c3644858eaf4aadcf4a0b25a49e305d95ee589b5202c8622c4774a4f147a9b40cc018df0b8424671d73ce39e7f803480daee5780475fc06477a30febb799891cdafe9fcf901649e6262bc0c870dbd483226172d07838bf1233dc9c570ddd6e1dc3992dc4327477a11ccb225ad17528322e38aabba42bd5297fcd4a06aa5b6aa146badb596156d6cbbfef86cf9f507bdbf9ab5e41389c26a75af8ceb8816839c80c70a202ba8d894c63c580848d31c4f190831a538d1093a76a05d281e380ed0e1c23fc0345614863b390be292b3bf5e3aa557e9557a955ea5eb598e66a6da897627baee92134df75772a2e52c451b52ebcd7fcb4010d342a20d1cdc0e74dc41e33755a167909572eb13e9b09af93215934fc057967542a40b789240c50818eaabc991bb183fd0da9683a342836086780a810b111ed1e23c60e1ace8283daf8bdea17db60fc84f13c48648e4dad9e3a7e191edacc35a1779648f9f6e3beece3f371eb8cb37e7584c48d6d21c66e8628ca30bc776b15ad8980dc3275dd854165dc0f02508550cb90b2112a10ed522586badeb75c5e5c211baa9ec8345bdd28221a4400d29b2813178a2c40c27527a9eec001683074a7a60028adbacb0fd6b70c8131eb9bbd7881d638c31c6fe55478c95650272d30f349eabd57fda4d5168f7ae9bb1a2ed6b1267d13dd5bb987b384228e54a2ef12ddc8b54c91f8f499e0c04b36d94b91006e709631c31dd465b8757a1133fbd34c26d2099d8f2e5113f01c1c23df41bb44949891ec20425c9832361cb87e183fe3c8485188761a45184fefcbbf920ad592e3da1473bfb2c8afede87c9e8bd95fda86bd26a659d17653dc85e78d11e461ad2bb84a9941749cf8abfc030ba2e1004881274c618cc41140f1c7c33571623afc5eea9d0c68ac2307451e989992283653069237b7e322f2a2da5f9644459d195d20704bdea45a1e5fe3c0f856cca7b46345d0b15be45dad8cff2cfcbdd0c964206bb2bc85edeffbcec2f77b766ffcb605916f154c1098b36462f3fd3126f682f3fab22665c6256846893bf0e75b1e58b8b8b414d9569e1322abcc6962cccbc6430192946ca6091c615fdb7ab2ee38515facb60ae6c28cb223da98280456d5d05a7493e8c95fe32188988b405ce6071db01a382c130a949ce3e3e736e32586ba5f6f2b519f1148138e4a552c9023fbe682d649e205384d1e6dad81b31780d0c1bc279883f6bcc29c61b6decd7ff64fd196dee57afd65ae98c619b585e8bb36439dc19f100cb888a321890d56ae5e37885639c01a554ca690a6bc5f111c05cb009fb69e271d50d1c5e23a6220d18bee88751d99f5dc5a01a768048afc66456c30e10e945576582cdb5b1592c2b014d6289b04d6c145896615e958835fc876eb01d070c88a6b9a858d876031211c63e38cce0ddd8256ac1e2425ff7876bad3340fa7bbb03046bce9603e3ee04da7647e8d10212b0874e8ea927461a338763ffce851f000b3718865a7f097c4130276796100bb45a352774b6bf1276c2090de3841e65332fd05f8c813e485c10d25f8d0b36d05fcd1e494fba9084fe6a6eb8dd65ace84f576aadcd41e8d4bd37c61bbd6c4fd967a79244138850453010a440653508903609905ba6948234bd8835e4c7e44eff40b7b0cd68aff57e583806491cc1085491db858725e4a363060fbace193ce85b6f464c1c47960b8411fd315422848a02171dc4b518bb20f47308d49f5c10faf6a9ffcf907d34e95dafa45da45174a9d32f95a0c5202900b9f470595283607d6c4c884fdc2dc07c12211cc8eeed61fe7b2111467b2ab4618cef8c2beece3119bd96363c32786659357dd15f74c560df41108b0991dbebed70e40ecc66b72938f52fb7811c5ec35b8ed7fcafc76386952b8ed87e39bc63c8116bc8c79c8e4843e258213d28b1eab215a607b0207c802a52bd5c4125672fd2904c348f62d962eba4237de548d39ec62b0f8a28d193dec5b1c42a51a342c3e6c9778c52f2295bca48d31074dc3c23d42d876bd3aad05f84c954a13f5f5d98cc61ba3faff4446f9fb92f863bffe5be08eebcdafe3273b5a3c94f933b2de3450b5173a8bf08cb4f722b67ef0b908c61589973d2494b11c7d2132ddd84454ffcd6da1660401f733c7896f69ce1f59a5d2c592165c8085c30b95e7aa2edfe4a343e9a53c747136dead1777b8007716ed63aeded7c48d3e5222a4f89bd96d0a15348ad3ea31fdf5b6af59297764df65f5df394751963ed72d520272a2dad6cb82109adb57071efd39929c53f4d4d4a4af410ee1ea3a36244f9a663dbb9db6140099658e1417d8fdf39bbfdd2792f9d35f4fdc31a29d1e200b6fc1754e8eaf87661b773ff7b1c6ddfdf378a7fcf4d07c5fe9fbef75a6be7b6f6a5c51c934cb59aa3236de2085f8b310c0aaaac5582afd8e4b922adc82239543d7a1d7d841955a75182d1060e79e505d658a969933e6e9aa675252b4b45f235346528b9c0f0492b1220632c482d641823de62bc233ca2d70b135dc47a50da1cc58a886414898474d1219e82c2e50a0aa6487aa3d73ad2a8c319399552649004ca3e462b7b66ceb81ca494409186d41ee8d36157ac35d823439c59b9db656b73549a27d7d2850518cea70022082214bd9d8c31a13f87ed68e3326553557e43a6acc0c085f6af4f5fc317e6447b098c3a1a2a019ced472e41f95af5c89e07d8f040ac7d0982395829654d0db2668391869435b2a646d648b0664b296135121cca024a50823eab174459caa852aba439cbb2999db7fc1a6a7c84e7e74f65f0b734f5b91ce4ae3b86536b47404da53f7c56545844429cf564480edee34b3ce548f208c60b4d82d946305e6812ccb6d1407f563553fb3e0c201d6396e9441b71ff20da191311dda069acd10cdcddddc3a2e766ab464d2d3d2b9e82524a4b2ddf7c7a94ca53c31d974bf3d9aa7474621776616baddc7438a1b50b37d0d12d16fdc5f04b388a2fb2a1d29b58bc526b7313241811a55222e0723b11757fd0eea666a866884efaa3561f221f6831888ba5839f233beae0c727db2f2c925a7d7ec614edf5b4036472bf723cd089f7bdf6b8af824ece12ff95c61c6b572b78029105ad055f31ca7385c84a58346441100b919ed46e31c6f2f7ac3215b0f1500c4b15a82145669e5082dabe082e220a148c4301bea28dd9454bf3b18c3927c703edbe58250c776acd41162f9d1f14f011899c27c2a2171d108b2bd65a293c47144d21c21422f84c81a272dbde20902a00110a3f0d969e34c9143c490de709bf772f50cfc7101941a8abc50de8d8c4113f4d1801b41d25b744540d11805822068b732489fd45588f9c24fa8be02bbe7498d01386d246ae96c82d7a543f325685f095a9544aee5a6bad3294b179ba2fc39c694241a6f6e7436ca9234d4de8f99f9461ac280c436b61f47cf971ffff9c5f333f64891ea3b59ecdd8ce1d6d6c31b868d06d384f6ee33f34e455d7575d5f7579d5e55597abbadcca655d205aa57b740ce31fb7b85fc842e81aafba5cd4b3d5bb77f57357d005a594723c74d66a8134ec18471cddbde2fff0fe6ab1c5dd97599c618b010bc41a7cc72fdb8e126f818fe889f10adff9c3120222b560bc6ccbdad60492362b6c29f3f56482334b906db58282828282828482bca020eb414199ed9cc6473684660689d21ee6479f7543665c00eb821a520446092828f68b44222fa8ec7540690fd3b96ad4f9aa8ac7099b58ee6c451bbf2b6ce600369598c19cad20ce59910611d1241fa806bbc9a6d527744c1285a84cf0e307cc56b6ab14fd1567da77dfd7761ee442392c1424a6548122a81524d49aadd9ba1786ce0248a5ea09a2e20384a425b45a7255aaab65579b4fe86d7fde135af3e4d35cefbdf75a4be7f59ed07a7f5ea6659ea99c3810dca4c484dbc008250e336de1d540d3af1b0f1abaedc06f6de63da149486c8fca85593f25adf295b3a4d7f21af2fd070897ce7b319d1508ec5a8c7f58da4aad1e79dc8db84a35b71c4c728de71b7f9398644ed5c72da355c5a2145459a9505a15fac2d41cc4096869aba91cadb6a3a98f77f5b19251691d56243daa9aad63adcf0aa6c8da1868f71b33436840b4e101bd8078c33b0fe03d71441b130047de3b26b6dedc8b811063a4910aa1cf42e9619452cac99d2494db13ad2385a6af4dc383f4dafef8f14feb3128db76ba46874e21b5fa602ff7de7bff0687adf7de7baf0cdef5b015d26296f9dfd410221ac1a468812e98880484044352ab6cc301370db07107f9dedce0584c48fe6109651cd45af1adf8f2008278ca5ebe90d38de9eb5d8c11305163ad5e3dde8f771b6959c6771b6959c65e13748c315eac8d7236aa5a96f1ad3a62955aebb3aa126bc15788ac8445435b403047c8a300cd39698efe216214b0e0055bbe1be17443b4f1c29651f6e00425b815d1a7880e02dd405b91349994fec2fe1cdc824f591ee50ee31c797b6a4fcfec2a117a7a1b7f7de939a8c16b1f67e20d781b5bdbc3ad70342f23b44e8e8391680322b881031f20c2a51cf0822098b3b7fa6109692eaecb5a7bed75776badb536b4a14f4d8de7954a5ab6fa919e57e345b4200912a8214570002107311414ff2235422c014441d1febbb9b7c7cb09f495f1d2ae589655ddddbffa8ffe721a88547610ffd13359b263134c7cf6e73b3601832ddbea591abd77961583774dd995f42c00a868fb3c6215db7696959a272b1383af941830d037e802490f0422fd278017306ce8a9b93dc6292e9afcfd61741fd6fe3a747d02d89f0d6dab7611dc309d776f5b587aeb722bcb1ad5ac851363ad4ba5ffd0f37c7f1174770fda2eb45dcaf6ee5eaa028d3428c5617661adb536c7074d048a7d22323ec61329fdcc570f67473cf90ed1880c29283e66bef44462bc8c2732f3a5f760f61741b9d1f8d320e3633c0da59f799711e36de7a3f4334291ca5697b06aeaaaaaab3c15627c230aca7d979ca7760c9ff11e4b14c62d6e5de52918902f36b415e3eb8a91023092f38c295aee9c73cef663c63737168b98908cb9589a31a6d071db67c2b5ec955ff8a56519cf9971c6b60ae9b959504aafa5d76e38c88fedd7cc10e7bcf6da584c48ad1706442426e82ccbb218ee6442527a36134df267666cf023de819c92a804ce98e5a853330000000400f3140000180c0805830171483c261a2f6b7c14000c657c4a76543819ca834990a4380882206390220010030000042840544256006c329725bd4eafc9c4794687f9476ce61311dd7c09ad449e05fcd37221df7c6fcf279e12dc8aa9296282ba35714db578229f2bdae7dca816aeddfcb13e394ba1dd734b93072e652a70e5480915a04f8e05b57af9fa0cd2238c20f0f814f208580eba18c4154e7ebb15125d00f1826d8f7aa3838004b32b120e26d75eb8bef2b0ca4295cb2cf1119e15db4920a9be607fbe00986f5b84aabb335fc2a4345e7197fa0c4feebda9789206a74d46889e8af5c513b54699af4849f894f239c50c54830ebad2d594c3fd1319462af5a661f6ccb29edecdc9446f5a927e50f16e3fd046156da08954c282f6f43c93b69801e8c4488fcb889e2906deeb976db8acd6cfb331d06a1b6bd6cacd79e126aa371773eb93487300f4bab92ac9a28d217567e34b28d5c107b4221088c3b1b7c3d84062c71f854e4c69e6d98fcae46437e166aed17aa92191a16d87cd1d8eb6619d443a2d58236f3d2f6a57b1038094b16d13b92a823eb0400c4dc1578cfd48f9880d250e53d5fa205728491585a471f1cdce4942d3ab74975d8bdb5f6ac929c9231ce5cc45f90b4811726209a0f518b96bf8db1cf6d1d7e664832e6053c40cc657f81cac3550eb0e9e767cc0055ae4cd54102cf4a193d0fddc04bba0f974f605400f27f723c3320646a5c47f101c7fffd6dae538f907528909501fd81171aab19d41214e4591746e70ada31d8b9b38659ac58785331eab50ddb4d26a1f20536f1b0def006b4617cc5e854feb80deb337b34fc8b2ed4b6ad4ea347b9530bb79135d7232877d1a7af24a9d3c20e840e476c0f5124d278449c3902061db8f9d8136d74e2c71e72d73f7ff5c08ea2651c11f8377fcee45110ad8d958ed479e540948ae6d9babaab4166c961a4991328f69623c2a223b6757e7963d54e119a36f0943ec9c9665f8b4ebe6a432843004012b8497b8dc7316d132ac9a9621841fc4350c38738753cbb0b711979b363e9f2ac4e50ee11e79bec9e1dd320d690543e3ddaef55ac0f9e965af132d93b7a94d9a7bc9f01e9b7b329f5a376587c412128719e2e0cf776165cb8e555ccadb09e840ac632ad4905988dc5cbd2c6cc8cc238e8da4f44f1c90d928631ccb3c976d70a661668481e44bf5d25715a8d663971bda4bb2104bc80547b4cc908197132957e08138e961bb83cf5ff7b018edfbfa334d809e49c9a0529f2e78369c7174ea2e12157e0c705394ac90e5c99a8319c0c2f4ae4e3ed6bfcd4b5c951e9a77754bc3039e364d5cfdec860a53842b8a69abcf954fd07d21190a5c0dddb9e00d136a81a15e0d5b55025884ecf59a9a875bdc6b57227237a3611f2eba88bbed524701b4c3f769f3706b473b208c5b13023c5cc6971e6e6aeef1872ed34ea44b1cf24b2b3a499b74b8d1d87ee2c30c171341a8df5397649e84eb36e001e3ccf5988aa98da90e097cd09dbfc01382ab0649f0dd2fdec68d6a4e20b8175429cd17e67bc903f7dd914a5823d9d5b21b90c8f369599f0e3d66c6c34062de645d305341e8f1fad296cc89e130132d27ad7ced09b87469f363dae6442c9eedd250f46259c255d2198d7d69f3dce260fdd0619afd7164f9c3eaf89ab9cad076f09a1b08126861ff608267344b39106efaf38a4b5e02083d71b77ae6e9e1009425cc9ea72030d15d625f615a241ead1ae8aec192d4f0bbb23f072f5cda3464b5f6a2201ca4bd134dc373e4f56ee2e1f98e1bd7d293f550873bf9926f8f221c8488a748d3bc3381bf20f9084266841a4baba1e1418a78453d5b9596a2db78da859b2abc5d52727dd3ef3e3ed0c0771bac60f295b699450ff57c596e88185152180a6865b45d81eaa9152034295afe09cf6c50e1ff4640646a1124344eab3176d7dff5ecc56b66664f20ffed3e62186706a727784d8c815ccf29b4a15860df6afbea725bdc10e492a7f59f2f239d4182f29f2e8fcff07825049df9725e865ed97954c1772710d01636c97eb9b8118e29a0e90ce49e602df8d1d3243633ad7b29165b2abce428dd1a12ea07a380d0f021d374f010a96cdc65b5450c03ab3f37f38e6fecfbd2be0b3dfbee212251c2ce4122aa7acaeb6c40328e5f92e5a7a9c8452f2abff72cb662bb56fe006aa4694bc9a3e06e2c64e90f42499e130084f432a1b3eaa56fa1a1404865f04086b28743120fddd3a7bba3008c818cf89575984df2c063a632725f7469a45d9f86415c64364230ac0105f16304a48bd78e1f6018e439b21e4d73cafe596c381032fa3a168da7248759addddf01405e37c46a60afa4a06c503d0166a3103ddca320632f0b0d3f6a256d179b7dad605407eae8408c063f699bc9d2c485e5d16f4504ea23c7325716170f7deda07eb09b13e53dfc17092415d0b376342f55a99f210842572be87c6436aeabe94cf9eb59295c995de11db00cf6c6af00f439bfc97cd317d0707b5ad77a29e2cea1031b6599722daffc2d608f11f38a0fb452935ccc45b3e8a282c618e071fd152709e079563adbeb7b235730fc56b415ac8f53cceeae53d43508b056cb38cf8767092506c2f9c7b76d2f75033a91ed1c381af40ff4111c8a56aaa5e9a1a4e70cd5230e84c88da4de8dec43ffb2627ffd2a0a08e198fb0077cc3b78063558bc3879390790cfc6fee8a71126695afe97a03afd395a7301c7d792e26882263dd3c26dcf717c7bcccda34d328d2947e4ac2a7650c589a1e264a8e934c85f7b82598e93d7760f05927c1d1ba57a73d56ffec33e97d9f8fd1447d27216ae115a722ad3fdc4368eedabc9dc40d926d710742f806cfbb6468ad74a72a6840e2e5fff9664a2b6a45c21a920285d2a50a14867da831e6ddaecfdb30b80851a05b0ac6dc02a1fd05bdb3b7cd27e9b8a7a75d3f65cf9bd5180c1645ac0e774ab5188c54527bd7762224be0b9ac25835b91ded68c42c954af939920ee7bfeb551889acf1bce280f9e0aeb25db822d25b4d68f8a8b53dc3a5d9a4aea6641ff2287eb5369673d442ef88396a8af99e93bbcb244a1d039acf5c826981de821fc6aea3b8a67a53f6dac5901a6f28363905dba3c949604ed7236a3644a9b6d1017eb1cd8e941c86abca2d1136fc821a41954d0d87d335449ecff67ec623fb9c029f53f32f3be2d11360e633f706d2748a607f485e09e49feecd9b387bae6a92476177de7c97c7132ef3c69324de075c9dd9b142f2282e4f3498dc8b5fc493174950abd0524f74c1ade4b5e0a8a5bc6294e847c82d5b60a13279663708bfeb6f3a429086df4d9c13f4725b0bfd9196f775df4c6c72a7383e4d3b9d0e13d4e0a704af5571a52e8ad52c589fe7e168b567059b2360bd1c0b8cdf32d6776e5476e838e0ff0532eb337698be3de055887b4fe0135909a6cc3a37ecde764abc9770855866792ba91266219cf00dec127a88f34460088d903ee41fa62c7e78d0257fde0345a11fd5488581550adc0e3f2b3d51376b0200476b0d9a9e2de14b9f0f500016552d07028b0aaea8010e2341bb027c5d4115515df827059812ae8f429a8459aa92ba084fb0286b73d4f08c42b54d3a06fee2e7c0e20fb8f6233f46a6599907549abf1e2d46620c6c472b7024d0f101ddf1f9d937311e523184d2f0c9311129572099bfd5c524a34dfb77abfba45b8c459f98d239ff8379f318db86326c12e279f8e14fe439a39b8a6dd69361d1757715fcd744fd822ebef2f6c40764589ef029db83e336a538cd5ae5115d0c5b3123da7cd88f128eab42de9428920172dbf7b674f3358cfe3eff148a66146541ff940a1691478990c0a61ea228fc84a9414e0a5137657899fe640308f21b664f15ec30f0a32efc7962da7480bc98af614d93c1296ac7b1ac0b31bb023516b75c0ecd05cf883a5078e04c7f85fd243902072b81068fd06a611346c242e29cf47a82d61201d52c7474f49d725b3840a3cb0b23996fdfe6fbffa6dbfd72e49e32ff39120d2524d580ae5e7ba4e3d965f3ba3cb2fb6da0cc6ef36e27d272a01feedf772784e226cd4710bb89057f939c5883ef683f37e19d3cd4f0699039a78cafab59e444190f1fb27ea65e435f0118b0b966dcf06d0305bb8686148299b7583169e096826058c52e9bb3894d71c2abfa4908627feaae5cca99c969c84c991ea196664258bb2b66738d740b8ab9acdbe4ce64f4095fbc56f19278b3028065447f6654e2b755c7db12dfa602384ef5fdb9dc730dc1089552115b44382c2cce240b7bb0fa040b492b4568f9a615e306dfcff884e34ab7d253896b31b0a77e368eb5010467446f5f90dceddef12090daa89b87b05227b35898861fffc2a76dfbd41612a8b6589148890c3c09f60a65118f53436c008d17544dac7200e02d358745a42ee97295cb9ffcd8a16e260c71faa9ee15af6d5154cb476459cda72fa8472f6de8569e612a191cccaa30e13e93c9164e13c5981fa78704ae3055af0e5a279326c60de2f2259a5703db4913a213a46a86093b138110e2512ac71f9bdc7f62c0312ff1934c9f020a3637e71cadfcf0d4f87e326a0fa12cfd6bcc6f3c68d3dbbf8431cac487a98ff4ea16bb49797060b28bb921c6c37ccef53742165da7295168ec3bb017a48b5af106f3dec998e2078a6443532e22dd612337a1e68b981016b43928c8f7b0943df4e6e4844d351a7c9cddef5ad4ecf7821e082b0c4fa581fba7c2f31317d511f4736427bee828f89a5be1f39255ee5dfffdec75cc21529f94088ef0a216ff068194d314057047b9c96f41b2dd030eeeb941f4b621d893b4dde927982b7f346135f33c7c6087834e33829c710c46c1f95e916a15326472a55afa8daa46451a41cdb349c36f552963d8303273a8d05c82b3acc087b310aabfd214b18a698a5c59346bb30d95b10104fe3ac7957858b66a70699f21246393118c0767fbccb86a65505f24905aba433b1d56f91e4e9df4aae3d62eab3f77cf1ce709aa23aa07c4813d48df9c21e47cd9505a34afc9e18da98a2a0d2275d40bd5b72373036440f983a11ce43253d6253a3cea077d23030a00a9546c7dd21789d9511cb1cfc961abb2c417ee0b22e0bd76742967fec334a5d59450595b6760ca482c7a916451749d0035f0f0db8c1a712805d0a31db3c884d58d706ab83f98b76a3a79fe4a193e8d12d20677ffae242294960dfdc53d1a782d6432942033fbcdca4734e6df5bef4e0c7f21c6756b172cddddca64e742b51827428545427d5b8e57990b390fe42a1253130738df5b8343cf7d69a40ed0107d9592747e15b5e93f6dc03db210bd7f554e4f089452c58a45e8c7d94004bb10ebc67330ebc9e0f404616dc468a998564f199572026ca19ecf524000dda488672c023402568168119ccb780019625ad5983e8e69327353830c2c348c742fa7bd2a8265978c4616007b498a25a52693923bf4c888d80629566ea648041befbcd5b4b7a3eff63bf0f84b696c41da5d3bc97f55993b6bb8fa70e8cf5efd81a62571c79a6030f2ff409081668adea2fb1d70383902e183d81d22354a7cee062f5d47fbe941b1e86b3498303191e7033272743a10e3be4d47a99b3a207b342c00b4093f9f3b4f7e218f935bfbd8f59897f99630ab3712ecad127687df435d04270778e2bdd62363735618cbb09d364f69360f0334431d2fd9ac8e35d919788907b915c3263b947a760e75c3d800c06b1dda2d777c917405b0f62b4be2708f7e39316ce4ddf809a96948ff20df4221a4e65bfb00f894c787cf3d34637dd43cd55e42f06dc4f48438e1294cf52a26dd9c5e55b838d1c697f449be7eb91dac120efae1db48198237617e7c72d2b390a34cda96525fff44524f30d2099b7b616bc307d117780798105d292c2052b13ab1d61857450ee5fb77df447652eaca40152b299b83a3b4ca5d090c79d728c1f2ceb414b8778ba3abd8efe08b72dadf3b57c65f15195f995be764d7a64be92ef012dc1e62b23e885d373b4f2d0a457d7fcf83848059f32a4de52b247300787dfd2dc78005f6f65bbb2d35f0363e7095de68860c1a4733c5eb6b5fdd869287a99792092515649bd39ba0b6e6510912e4fcf4ab8ed4dfb786c344bff65a4113f9ebe49a3b800494e30d30575eed536a711ce04ed05f48d4b8d24c9ae93aad136828e90bff4daee52412fa35ff1a6d316c95936c90c79eb597a23ed2fca84206db3460657ec4e18850ccd3a6b12d5484017bccad91eb0d0e47477fe3e95defb43d5a3cf7000063dd88141c88e53596c73cb5acf0fa2e6d9686003d4453b5bc5facf2bb1e52bf37f6ad3bb29ca00256dcc0a9f5f458e4281482549fc358eb0034c85a28be75619d4fed60ea5b73ddd37769deac60243f0768738870afd4a1d1d07e2638b217bf3c00b7ab41e5f841854cdf8647993e2c879ae318ba00733000d7875051285561997da6ee48ca002be5734284dae74d105f38316a4538c4256316a9e017f1500af3fa61c3a1c3b8e698769bd9ccd1dec1e745b718867f7aa020c7a555335f4640aa129e59857c539e326fe3c5965e20f0575150bde2d5494f912f7fca240c18d3ea8bc5a92c0a3999f1a6608ba4a4ae9e4185fabc37c2f5b18e8da1d95657c7962c4651c79ff164112051fb885cd3f2b640350d242232380b366b496c807fc08b5dc789e363a0bd10331f73c67ef58cc3ccd5facdf5c4e92f11e93cdfbbbe76e3b2c16768a69a77c790cb1d14118ebbab49128a278c83dbd923002a24c73cd0e398085029b34d8030555c466fd81899c37443c58f009a97411af7c697eb0657620148059bec51e45534389b5ff45c398bee514b6ff5c6f56b96c94ab683a6124c42796347178d57b89e5579d864686157eb3b83ea7d598eb01e7851797d0e91a782bbbe2cf8374278143a78cfa556e1612d5cbca870bc3017540124ad8db557bca3c63068b996859bb37ecb50f51d6483a5cba2f79af592f0c5cc320555959ca5a920269032a2bd565b01ab0c9d7e6c62ae0387f02169954c17ac50c07565aabec1d599bc864085ee83df0f2a13c14879509b4eb66a87661976588b880d712c742ca9c27ae8bf91e2aa32e623dc56cb3a24c1ab0fa4257e20387b17ac8794e7b6588de2206074217e2c7dc837c45d9b022704f0f3022f091025e2ec7d90e0809520dd647b997040461df0bbae69f26e247844f6c80f04242f24f3fbc700d87838eaaed35556b0754b35a1e7c68640eb99b1bc9da003a027d4308dc3a1222ba64d9f5879a5ca4acd08776e47de76a2024428acf24fc858deca16c1a295852974b7aa51752cfff55a94c905904b44d0b11a5bc7796769c4b79fc2faaf3cfc2f33f22be00ed116a589af609f1970f4c501d369d525588f265188283503f07862c05ffbe4ede30f01f18013be03dd9aedc3ac590cff4c37c5a284c01f8d72262646bc46e38d612a526af509166e2e69e73aeae68fb960c52ac92bbbd884be7dbbe33077908f4073c232e9542967a8581eb90dc19a5a91808af7befbabb0bd97eddea155109de5e522b86d31627c88dea0c6bb78289202ebd1b7e8614e4f6337b551a33f25b4fb3a64be0aaac9c68ef66b4ec97c1cc3da6f14b453816c1970cb1e966867c9e0ebd1d44df9f089b33f56cb5b2c0092ecf30901ab1f994fbcc623548e0f17cac578b758beba1388488df5d28bd192b0901ff6ed9ae72422b14df347780689620e950da1b6087040a90574c393ad64bbdb923c16fd7e6f12acf238a75ba5e750a2c6c06c17f7bccfce268a50b48b76c0f906c5016cf990975810ad7878edbe361394163c9067312c6a244767ec47e406df021472a919304e880c49bda75074fcc09f5d37a68d051a5ce2ae550eef1982f08066abb1b1462280f22c4765a95af5dd114ca9065413c612843a54fcc4127c3c022db656f2eca2b08c6ce33c8f6394e05a73cb64f11d9ae4590c776bda8d73bafbd3026747a803d361ca49dcbc9578a49d99a0d15e6c8aaadc6329b0f6b1ad46eafc4d6ff38fc0ee96217a2fa9b5fca734da7c494e8aed08d54b8009df4a7df665e0041adec02954ae0416e60dbfdea07fa0915126ffac8073a2eb44093016b792c23da7b5def930daf2f4d0ad6adec7e4dcdf3ddfaf3c08de5182eed9d3e6be35acbb7a5f243899dfc40c73696893219d8de34e56c96cff3578491fe9585977f871d6afc0a87ffcbeb5610097db4fff5ef9aa2df1d92c4ce5314b3e7d30710b46b98dd85922fcab52132a981af87b20b1b11d916fc112f901bc43cdaebc8b56e160d00fd2e491b896298e71f1f6589311baa1d82c1bc69243e7a38f2398cf84249d61ec6b790f8f36b157dc9f78ac296458d5fca03c2c5e127664678be4577122242358b90de94804991026e257358c85f59a63e6e574f3d28ea166a84872f0da8beca9b05b5ee655f99900e60b8a621165d7ddf956e29dcb864c280199b981709ecb9652bc932f5a75a057bab5b62038bfaf512c7836b04d140e0ff3b47d55e436a9019271509182b6915390d09ede96442e9771c9a4b0d2729f97a715fa46073b982d25d9f452838143be96ad7bd2744b94044a66e2c35b14bc2daeadc9d9015acb487668d3d707b96aa14aad66387f8d6cf5a027fff438c3b5663a02bfedbd0817610edb748c886ac0ff0e23b5ad7c917cf389b3088c3f5f134d00f61986f591d31167805b6c3e8751471742717dcf04b6929c3f82fe91fdd539aa9f6d2b5edb353208107534e01497e87615fd3529c540733e7077c32dc78db6fb285424e5d5fe7d2261b420418f02af1a5f92b1d840cb4b4bbf13d2f8944b6a5a0c420beb1ce2ec7988a7090e9a03ad5e3c273ecc889707c84afd5d9b849170f6a3cf01566c3309f8195e869487bda58f200adc3badf85c32f740c8544dac5dc8194c2581c1550363babc0d5b3767dd7ec5ef1a4de8a344275da7676841c728a73b84ae96feb68063bee169fc0c5d017c31220185bbaa32ae59ae3a92d0eb74b9ddd6a2371caa93b3e8c561ee4b069530bbfffbe93213b4d1ef8fb00511b811dff70cd168ee00e68f7f9f3d6eaf7bb9a11d128b16e8df0cfa1a04ef11816cc120dade9739c14c6d66520005822bb1b8f2493b19cfb95a8a37b8f1c7426b79406a2df200d4194a11fc7f1132bde41c62f3adb74951ee7cf493070cde1a6dcbc3d85aa377c7cccdb59483b214f56569bd89140d6fd7111d220b101ee989aa8f6e523f414371de38614f8d07dfa50f9ac9e7899fcf7a87f393f050e1293b422de5fe9c40f231159903e382a1a8c875979495026bb4f2693260e9c9283a9903592ac833b9f739bfdae68745998770c0217bc308a175db573525c2cda576447c0e9b2eaac5aa5aa2404af69189d508ee9355c266dc0b83b4cca9f30b881c2b0996dea87215756e0f50606eaa9dcf61f2b1e8794645c21c49500189665f1146db34ae33acf99b0e98ec4f7cd2fc49c772afe409bbe5e5e7951153b9e933d1bff346e5806cd464be5dfb84388fd1832cd8a7a08bfb55a6422d2fb24f360929bbf695b63d40b750d52778371a35735d3f79b77109c628db94ebb5b39bf7552aae299c8b1a66bc7612ce8f2fea4e0d3b2f5003e12f95ec130138ac8327945c3dafc0cfcb19d2a439624dab49f211e06870d829d896cf7c922152283494cd13e786d0947f955f8ae7ed6e26e659ce60a9594f74becd1505955d140eb7b3f7c1614dadd0f618af8e1cbaec35387271a76ea32ea086f2087f276c5833b761411ef53d237476b9a49e7144551791435602ccef562a97040bd6acd5980248e04698423094dafa7d7503b9b37b0c7c391c05e2890d1d41bbcf3351da9a67605cfa54e10c3b895c990ead14d409d52bd70c07cb7be6159aaca5feb7b242bd0ea916a6b0fc13c52ff242ed6a9ac43f6efd0540fd1af57d68587894d8a2bd8614ab60f86abaaa5b2ac501b67bcb3ec201cd0561499289ff43ea8ba8e226b8aa45ec39184a5ad2f0b122f22adcf6b499790bacebd5d20a3ef1e73248de57b888643cfbfb62e1407610053c91291adcece7c637a78ba8a7b906eb8a05db1688dcbff23dbc452920a974fff38edccdc5adadfa29929ad4ea551a9d74eccd32b19104b4bdec344a3ce14adf3ed9ceba30b032e70149b24d0c80635a7283e844acc208f2f24ed7ff5170ece65bd9e421997780cb1be890ede45559701175168bf0aef52676c130d598a0a9a8c1c4df078a7f6c3ea5928257390c6863fd418582833070cce14ab54293969ab733a7c8e0a5b8a3458454d34dee00ad4f79ee7ce84f6f9448d713706cde2b4ce8675b9985162b9d684d3622abdce6d8d9791cdf7f1329cf9cedd9a4c36df1dcdeb47d5bc91744876acefe0b44be9df7cb0fa429c450f0a37431e6077ff999fca5547e2a4dd0f7444ed1e9f4565b801747c84b6d8c95bc1510ec9a296f32b575bc1eff1499666b0749bd98de672350ed5e48aa0153dccc9e701b48a0efa3a6702cafee83956a08cbbc942a24866780021dfce87fc9e1dafbb9d6a64c8c3bfec9d35dabbc64a42d2cc55fcb2f7fdf9882bc046aa647bb7576275ac877657efd565574e436c5c7abfc1a4de63fae3f4a12d9a11cc824ba577ca7f08777b4e266916fef16e1d17f70cde063eeff1282952533889bfdf383d7472423222e685e3fc4e945f7d1416afe6ce9b47ba79ca0bb9eb640d6c0e9b77a219e65ea3bfcdfe19a748089d43dcd98518af565bac02438f118da249f402f9b39519546d70a6a3b49f2d7c28f9bdfe50c665d6cf75c12c11e066123d10432590a741667ce1542ac25f938dcacd522b242e5821f2cbae5adac70ba6d06e3010960598ce5c428a60266bc8ec1b2d62c4fa859c930a3474cba2565b514d8af5bb9fcd19377e2b2d68a75f8b5e6c84c5ca16b2c51f961938a6ea26261d6efc49c72e41abbe41b02beb52c95bbd52438f0e041415f58dd6000ccb668d03c426c744f2d3f4ddefd5091bf56473166328a9f1cda2d3409b74a23c7df5151c15840e36ad5ff3fa27f8d983ae7bc4b37a019c64cb2ee73e396a8dc7eb7ac7dd03ae7c9a342d298ae192343df4c168774983988034f6275e5b18c29421fed0b54c4920714bdc4bfa74f17b880bf06336f134a21eda48adb165d2f7ab262936070db0e591ac69d2d7589274ac555bad5cc4106a59ab998b7fcb72fcf74c11953a84850f4537113eb5adf4a5aa9ea9e6e1959a9db9bc5c96be060c50dd8c971dc034d10b38fbd49ec53d73d94e623999d4c2907d5ba564dcd9f14ad91fc700f0435c2c8998745cff97e35334cd9632e47ec9231cb62839efb0ef46124f14ee303ff9cb5ec9dfd66444adcf2ba14f0250c67c26646ada42a5ce1e2ad8c5cef6224bc33e1cb01bfbd5f490a105b6711f2f5c8783582914f1266b026c1cd5f61b222ef8060f5fcb80c79895895b807bd6c869553fe30569199b1373957631fd97b321e22bf379a07e62021add7299640ca8e5feeab0a7de25269877780ce323006c542ca16f10ad502c927890146bcaf699299acc07cc759e86b676eaee54fafad1a1cdc1d5b2a3149230393c653ed2d2173161f29724ae9da8d78c653e3db0c582bdbaa8418199cfe291996f38ea9eab8c0bbaa796e6663e870106c31696bd1dd6075685326ccda21a6ef6d424804bbd9b6eb41fafedd4301338c852f55a70601b20b585a5c668ed6917c6f3d2a29286a4f8ea3d5a01faeca4d51042c4505435a92a6d7c3be623f04a48fd169131cc9480474cdb0064bf394e96943a5d53611a7a46b37ad8d2aa91b4237424872fab400d1f420899d3b47b7f626ca9f33c842eff6523679c4f9a6a2a8f3c0a1952ee9475fb978d25c2c253a9c297037270839da98ec33256460c90d251c53bdd15356816ba183071ea6b149a0a737b73f8c98ec98902d77c3c1ce04215d2e296c8bb421e3eed3aa09ef512ac2c6baeef01d95f5e9fc813be2d0ca54c5f8792168f03af4f5a42dcfaa2b46905b2a4285a93a6882c5485f547fdffabe0060628d38bbb89cb15bbc1eceac48193388db34964ced82ea0a62ae4d6b226ed11e30636dfc366debfc97b6da455ea39509ed44d3de86e076a2adc4e3736307b32b593111c80d390c24d9f2cb4225aada423258d8087210728999d0d9d9808653fe42b5526866754ca3939fa6bcace89181536f1061a186ded668dcb2a391d5041e17284245c552435403f2ee5a5b00a2bd713abb13fb699d76947b4ee7905c07dc813315468e06eb855ce80f4591a4b5c61b8be4eafa01b7dab89b404afd7fc601f86ce4e8ae53cafca477e93a36e5c47afc7fe0e1884d1939015be85f06d6a529adaffc3ee991a758a13208edddfec4c7deca8a5541c90106bfc5c3f4200863e541b3f62d74fa6ceae6e72dadc8e306a8572c640c2065298fdbb24aa831d1cfa1786efd62cc42648b400d6560823b948619a7f03f3b22c9f04ae766c35b33b570ef33060a36bcf1aca0efdf3afec6b3e7b8305867c2313d8d40acab2eef5caa5ac0ae4ee8a8ec633f00e2790f37eb36a45554435399eb5d2a5b064f0f33ab7b4915acd2fe0a89c8ce29e92b1810d4c489fbea0da523a46749f211cf5b0a922d6df384f491549df7cd659376aaaba17695eb8a26a29b1adb87f92e05255747d00b3264d7c9d4e6faf697c7a980512b79324ee371acf729a466f4481ed34b8db236bb1e1615429b0421831b80286ea40308a899696cadacad98ab59d43a826b3318a34ddbabd1ba337a8bb41ce7aac5e86de571d87e1c91290bad4aa7e5d034e025978ae14de45f7c1aa9f8d13b836dbd3b8757ba8887d30f9953229644c8dd154ef7bba045aafa72c5f1985949175d040c18912c7d9321dcd4bd204442979bc8748c200be23048798a505cff4ad10f0bb6d860a57e31e73077cb4f4d1d9413c398ac286f14180a17701c1a17b1953c7e5b92fbe0b216c482af12b8bab4905db3aad22908b40abc13c567a4fd89465c85d777ef862b1846307750791d7bf85b4904ef84f60d0468b0bb6daf8a462114ed4efc507f8788530f95d5fd8b36e86d4518794ad09c2a8afd7eec28bcec02a99fb5155cf3d1bb0b1ace063f28dba9e402bd2fe2596d562c882fbfc2b7f761a07e45746ae6461ffeedf956c29c4facf2bad69e4c88946f01b6623d6b0650ae01bd8de54945ee626c583980d6ebf71552019362031122a6ff5825b497636b31374ece3dbd42cd51979e5ee2a2fe8e67d2c598a3f23849c641c0f73b0641d4d2c92f5cd022b9900d1ea229397cd3e740e44d8770430dd6b0d25c5192e49c5b62876f7864787031bc4f205946e9c255d91de3ef42e96dc6d35675222537e7d3a0f3ff52644dcd94f992b56110dc8c35e645a46da001d75baad411e05fc4a0bc201f5cae0b4b8f5b7474efed4c9f6b0675aa161e362225add85e6ad5a054891df5beea98794dee606c029a937b84aa77ea8e37139eb152b99db73697e3af58a1cc6be18949e514097452c6a756d1474c2c6a5278795d4d79397972cb972b366a9dac2d5eebc4610359317a74048553be44462c1d494c3d423c07ea9c98e489d02a64e1753a36fd18c93f343d8685c92550ec021b8315887c50dc1a07a8a1b014c052360f57013a4765434661648e8560730881094fa6179593bc8c065d38f4a6fba3398e10acba88bc2a9525ed8aae6ce013b3091970e89cdc47ccc93622a007e2bc00db2838d101afad7c74a63364bbf9a0dae24d2bfbe812ca3b7903b79f306ef8b41707feb22aa920cfd334a286f35b021bff924faa519780cb4024f4bb8d448631190b05814c6cf0850d000a354c929ba6e75f997728c6755d310e64616f15e1dcb2a8c2ecd54dfe06a6d71b746fffe72a03dda662142d8fca5b131ceb9ed2f3d977058c01875e8cf007a0cca55038bd8184d2b6b225435c6adccf8027c8b73c0945d960a4dfd122de7ad5aa617f9a5d12315f7140b8cf9f141f769f200503ebc30df5fe8d595678c592187c6daaa8893bb603d47a710e50d4f3b2d137ded2b8d36be5d84acd7f334cec49e1961d4500711f475e7ea740e76ce7e26b8e3675e0b8c98e11a7785146a20117f7704cddff628a8a1ce737f5bfc3879476b109fcd490af0b4807dcbe6fd21732c545f666c18b64ed2a91f148334d4640f62708f3790a113ed641b9385243ae87c89fc68beea0fb240fcc5e608dde5242393a5dcd3e12eca74499509b14492618428c9402595cf93e311c97e9420e557104af13307c15107cab14afd8f363d19bbcf3b19edb84c2ad0067bf6c243ef630caa9565926d1669606b7c67438904f679c3b88c036278e1d8ea0e87715d3ec0674304c1a40acd75478ded3f598c06db26292cf9723af457958a47dd87ff01f0c9a3cf2b3ce3a09d71814c3c40e24c430f8d54b5d78776a97f053887b2fe5591ef1d0f430fcdeb370fc5ce099f687bec093d5452b2784dc0f9ac47c3394a12e51e196bcff26810306398bd4ce46b257c48b583fe0e60fa3b25926854c7ee2892c04a3832b56f593ca8de06a63a6da5d6e0b5b5839b50752234369d88d4c0422397f4284762f55c27ef616d23bb6d60a83a84a1a2c3ce491b13d7ebbb07be40c7047b8658666a825130f4d80e62a1641b57f9d05b489cb1b2bc8274dd6ce6eb6cbd55be7795cd40eb20934dcf40ba408c818a74ec58637ab6e5ea5699089511cb94e48dca449abbc7e793cc18e63291247e1f11b4f7211fd66232bfb3b288d239f86f9b879c2732119db738a4f5a24b004b536afdeb65c481758ee5a7b3ce414790aaf084c3ef1bb7490935e08d39dcff4ba2f4cb262555fc7232228bd73ad8b487cd511faa2aa2b761aca732bfc4c91f7d47c88032b2f9c0953467895c4af106b6e9925c810a50d2c9e57f0b44dc0d3d4eee7779b22a140d48b6689761491ed0b990f832412671fe183cf342bc132fa020a92f89bcf9b7205918199d0d16fecf0d0d1fe1795650a6484252977c64ca0facade113ca59c14769565c89cdbbe79f7d4476c3a31e40fab04665bde392ccc1f1bdb2ff39114dc0336809d35d52e15e31523cd75c28ca3d19e32e460613c8bccdbee1a91f3763977217b2a85e9126c812f12e09d8458f7febe799fe4a20940625addd6b5f3585d1a3e089aca4da0cc32d93d8f3c2a4614d107725027da573afe5ab7a42d672d3049d9e27f4f9538356ca6eb0187044a1efcd84e36cce25fbffe6e2f32643624cbfcc4e58c9686d11ed010d4c80d7ae91d2635029a0accac9768fbf6e92ac461aeff8427d180e51f8cfa13044cfc005f7db16bd39d3998e234ccefb985cb464184b87ddf797b5899911a5f26dd43e5263aa20b570b12a65beeebe3d26738da123945a0bd15cd30e2c0be48e175b6a55492878ca3c4928968d22151d6681cc2b10498227b7c6607d2934edd6346c34216c62b12ab517c87995fb4ab23614a3352362d4a150e2590de05ea752692a70fedc71e3fc670b875194e080fd4504af1a77afbe3e31766a3b1cae380b32a30b49ddbfa846c9f20b8a14d68f84250a7d0a3f966826b580507d6ad884a6f28e980c5cb859f9191aebb94846ffd73f116b44cf74d065ff323f0c74d6a3a12144ff5f9a955afeacefd19f4c2b971d0c79eb614b300a859ac5bf634759685e404a525c921a07346517814153e841e3c5ef373770725d278a92ff32580fb8d6a65564fd482471e374390fe3ba8ab8aa4946916a655fa78e426e359b31de093da44986bb1be7f8af754521f7bf979f09cfc4737989d04f01378cee496fcecbf3b69105ecb03f86809f16c0e2045c4750941419b97d9e0bbda38af4ba088e822bef5c9f2b5f96944a9b82beff2c5cfbff45c9e9562b0ed4f4dc137a4acf5591a71b2a29f6f8d43c51a5df74e3d400d752514fdc42da152d968838738fee54419faf7aca6e624e4116a4342fc082544c5ca9f3b9d507cfea0f7042b4621c5538e6f851d240360fd73663bc5e551ee367303685e0a66a21443c4bdafa5891598bb4f59718f20144c5effa60181908cb8741d39e969396a79518efd31eba6664c68bba1e1b87c04c60210c5a727f09b655532276e959931a7b4bdd4b3980b93649d3b004df3b1a8bd9c143460a7d519bc8ad066ab564bc312805325c8044d37a704dd2b14ca97072baa80259855c1ef13014adf9751a3d1da565a337a66993340b1d9bde0ff1930f51e1465a4439ecc67cb423accd03e7cfbf32e862d1adabde06a9686b6ef098cd120d6df1d97c710e076c41e20d729e0df5eed013aa0371cccd66e33ba2092c3c0acca4405d6e38067e50f4e1e4c614455a19f147094116f3a93a4c8ab9730ee7c669d3d585bc69ac20fe7fb309b1fa00cf9a95fe4d52de6dd84f65f880d9bfad495269721c59c16d08742e35e9713568594732b26d2c891b359e7b09ec2d1941405deac5fb7faccc7e694a29344f848320ad46c425b7ff2d613fe197a7180912b5b75a1ea2f4d6d7d69da28affcf8485a78eb1d63247ed5931a7934c78ef32c82cbf1d1e60c12f5ba8b3f1a09da752e8be1453765d7ceee544fed08b74ef54c52444363a6b1ce6485ec0b5087a40d002f4809b85d454096e49a24a945c285af7e7e14921201119535989cf93cd04c3f0d67f3ac584135c10088e66c121aa40f1a0741367537b019c5a187b9197f5f06458dbfe26894ea62a19dab4ae9be3a55311e11a3ee53b2c563e83bdc23ff05ad48ffe4764a033633afea13ed3d9b824825865521a6eecb046d3639b5bc49b0578340d7cb5a6113f716c2fa2e273947b1566d0a7170de60421ca56654ef1794c03197b8c884acb82512b366151db5b4de75320ffd6edb41aea1f43da7ccf58f3393ac8a2a2233d950a6c82a30d8a0763140c06d4b6d70ee37b493231355cbeb30ecc2ff43424923ee4f8b3bbb46efe8496505898ba07cb598d18fb59dbb4b46719af1bfcc7ea474dbac6bbc1ebb2507a2871c10485b6c70968e56f1c8395b0b60d0ad22b6127708695ff87ca14396452f7ae7a097aec8896c381e4bc811b6c7eaaf1e25700c699737d34951cf6c68547d7fbbc94775b6f2c1ed791ecb6c692d7df811010902f06e50b9709594677fd0d435d0ab903dc2078047442d61dbeeedf34fb04971a944b00ad259fc705faa4549c2d1ae7b5b84f3da41b42b2adf0d8d72fc8d7bd1b083b7234642dd00c79afa1e503cd351f06abf4ed24de84b54c7dc7c793687d98963d75515cccd20d44a51dabebd303afcba44c0d5595e0c98a7ede19c5620398cbede282c674f664b87532d51ace018289b2977d1d0c8e33560e4807f7787c9e11b35bfaacab00b6e6c3074cebb65780c1f8fc9ea934070395a2868d27f3ef5185b32950e936cd3004f1b364184a628fb37e040b01fafd8f301055dc843a3a21ebcabce7b5f951e1bd24a0f5076dcbd3f10438f1e3693d30513d826a0fb1f16cde2cc78f278e0f809967d6367e73ba56055690efe31748de5ad6a230a8eeaf60439d2c22ea3f546c3c746bd1fd822f8a102582410ea9ace2d94eca1837e01cebab4734afd74a7404d069b8a0101359aa97552fc563c78e6d3a37fbb6f9a73dc9d27b08a4a9db52ea25db5178a0b979fd238bfc0995e8d985027afed68b2912ac29e07c88e3f2a9c6a449723ac3b73ef867232711620c6dbfe133fe358cca442bcb82857a04bb97993e7a41d9af62601fe6e458fe8ccfc5e67eedf67bbe61edf2523be4f3f9997ab9da0da78286450021ccffe4e1c3c851be0c6dae5f8f27002580b4faf9421f933228cd8b0b33589a3b242e7d649b294ffd9c9bbae7d92085b08a7a5d3c2ae1c5f662718a10676198fd02ca4e005ab07f1641e563d4e7b1ae6ac53a8dace30188840f946c402fe48e9bdbd1e6c27073f9ae30b1407304156c655e19323c04bdcd16b4e60d8779f9d782722cecd5da15a646193d5f6294a50a9c0dbd2b476741db2667ee2d294b2a0b8ebf72e6f2a9a0fe5438cb9e4aff72f898fc1340256c1149b4a9da2b4c5cd48408afe39291b5584aa056e19ad2baf0a8bf6517e9d8dbeac7c9ea4497cc1c6cb1ce59636c13bca7a1553259b578f16846e190201ec2e40ca1ab547556e99421f5c7413fa03769850604a09298e9a015480ab679ea9f5a3e219c8bf9ae117e1c8e2251584a62486e4fce03d0dd68678488b046473c7efa1930e4e0293048432313792158ab48c151681a9cb22c52dfb35cd59892446b519ed81b039634813785d7d4b2b52266b7ab42a1b71b0cc94253c0ce888cb9192d13c627e0c46e5f9cd5119f2b82111faaadba405943b1f76da264b8d320b80c2bf83cc50d303456b02044ceded127bcfeacf8c4584ffbb8dea447cf5675efeb57e2ea178c47dd1892eaaa4352cbaf27d590e798d652aa757039c98439f7dc019fc5536e2976614b8de7bf378016de70a8386a1bfdb71800b5e9731999960ab31d5e59a2aab2bd404f85a6d05c0152a0f5676b65e20c7b3ccad84d1633dd21373e71356c079e8e5910f77a5e0fc44f55f04fd89882b6c6fbb3ea61586b3b3873552de643bf6c803451c360d036cff82de6ec8bb029238051de8b4d707e01a349f4f982bd1a03df82d12399b2aaa37648b6e80e0ce2ffd6a34a097268b649804317eaaa213c15f791d946b664dde4234656a03ea570d1305847e03e231a23ab481b786a86c5d40b243b4964aa82bcec0743d1905f1980b006c11986f2f2fc00e31da2d22600326a31db2d7e9bebe9a8cb78d487179d1e9dbc5f48c041b45771a06935125c52ecfe90ccc9c298ea727a9149a3ecc691305236ba7d9a7e4fc19e7b9fbc26eec6d7341f3189e62dc8c2deee6e80525b08e090a5bd7ebcb20f143fd509d7e063987b01faff99ea27062bda2c15e291ccb49c32edd71967f5c5f22863b7b5b37e42f519e0f666ac6fa305be3ea5c44890d6cc78c368499e62f3aadb147f782e94f40712e8437dbcba3bdb67e1043758888ca2be817d6bf8827b6ee368ae77d3d8f53d49ae68c7187c4fe925b608a5ce4134b9e037c77d882a70dbc16f60a5b6df7e677dee26e673cdfd54d7af19a656e556fb5ba3883d66df912eb0c01131ca2be6acaa26c84278408920536a1f4871e72653ca06bbdd74b0242b176951bbaab7f0e1f71e43485bf34948129655cab21d188411a5b473f40fcb404fd30568ecdcc56402993a79adbf30a2a20cdc71a045bb673f91ef5a4e8767892f2a5cf94111eb89fa34c5029b5c2cfd9372c6d2bbec2f73ec3332963fd8a80f70685cee4d707e0aa0af3b0910ebbe2e49690d278e8a79b43005beaee7fd6aec45d7168654cc99a5c9561ac5e03fa9d21b5c80b18339bc34ce2350b310b76c361f587bf4c7c95ce08a426a535d408859104ed2c6a8120f9bc2f1e5059d2469a7aecc23c31611261198891d5dbb2619c2b50ed0ed03841b568f8fcbbec127c020257880ad30deca9379f00825ac9fead5fa2992389c1ed7ef3f19edca5f7dacf2bc05df3e761ea4f1145d7033cc85bac55a4fa98816168c03d25b387b4a19e2da24a8fc66a1b341754579dcc50a69c4c32da4deeefce179da181109e0d22b293ae02577c4265f309a7c9f7641c67f634316feaa2507b465a076ff881ee208b106b3efe81e901de5706b62adabd0fe991f31ca8c74c7c2e984e6435df13bca58cc91c258269893a47bbdf6c7650d5ce37b50f17ca52fd466a55c70e908fccc4a3aaef30321fece308aa8df704573928370deb82a8a04988849cdbb6d16e6719c609198304a3eaf42bbe832193e7c6dcf41e377b64297cec1afbe421827c1212e9c7cee6d85d9a0d6022191151d2497bcdad1010433dbe7ed39183299296d8d235755f1059ef2849d28124cf91da5e7ff0b54f6e5c3ee5748d749c72354314804ddf56d4f60e48028d1a9c2d454180e09c01a3530ab5f931f0943df2b85555b6128de8bb466636395c395ad46a85f0a869e9eb2fff3fa2514e99eb7aacb893700b02af42942b4f2e1bdeb8a8146b007fe09d3de104829d252a2f0284514c4ae6b7158f116931813e6963079fec016569d79d33a0f5610d4fb130f8c40155a8cc0fd68aefe4d10a6bbfeb8c9f0314c2c5ed18d78f621e93e1e0f8f285bf5b0d57c81c6700a76da650dc611d232bfb20c1667148a66031384f23ca8daf1eb01c6ab0b5cca2578f4450095a500afe148680cb912fd37bcbaabe0ded6d7647c7880a202fc5779f718147463f69a05e21c1303eaec50d7668eb860c3e27929ea5ccd8ffe81e3d2a87d2a0d2d1580b8499e766fa83a5a554f237c90a77ed009fc77cc517c01a9e02b4c443879c7fa41276499a27d27394edd6ad38dbfc3639e0ee3b4b1ae041342a2bb8f71a4da87e12d0406eaef9cd5d2cadf6508877a281712fe37ffaa6d46b8ac1c6a9db563031890bbe57db034edfad54ba98a1e55a587e37726e0288b3b58aebed7d51d9acd4bd9387af84aecc1e244c32b5afdf51d5f0071c2ccb0324737e5511b370dbe4be6f07317a686cb9fe9b55502c3d5ce9a7137f9a8cb86197922eeade8a76ece014a02a1a5e3ced4211fb0afd5dfbcf751783954f8cd0d6bc65253efe3c528d572fbe1a4393e00eef57ab9c6495cb235cb0545dc202c05f62f40f6a487fc05eea300e483a5933c2f5271061b5216adb92dd9adeb4db0befeec75359e16861856dff06b2673f5df6b0cdb83f2aab2fabbd8479e0322d2b36be5e79a5d0148c4c795d7db97da78216258a25699c5a61ce050353203a3c51db27f27b8a9e2202ac6dc8b1ef362b09645d8610ce2661cd92cebc9f37ef5ee0e3b29a96da699121fd2223aab8d9fbf61ae544c037a20da18c1d0b60b260ef17749bf2fbf7845b815b2f9fd8693c1f3c441db41b3967c6b31a635dedeacba0fa96aa8ed6df488c6c0de6af13430ef40090f3d0b2d84b622a742c904aef45e193ec5e5efa6f850a5401885224d7827fd664b7f98e90798930beb8c0b18331751596a6520598bde09cab89dff3feb9348c70e3744e1aa7210ba8dc60c2b98d52b99b3074d57c869f7b3caa2f85160d5ec6df28b8aba7a63b3af935c14c9a48050b61748947a038ea6eed8844d9817ea55fd5668ea8ad81cd27ba123c870695adc8c12b3fd2397d5af299a690d101ea21456d31825972549d55015041d4861795e63338a33fdf6afbd9f2b037f178941f5151a5d9856ebc92f3c375af047462156f31ff9c78b8221595b300cc2fb5f0b39407d09a727d080e66521d83eae04eb447387c98c81054258ead06bba8c0fdb3d32a26624c1e54b1e4c7f06168cc9778703d10d3ddc2c92a5336b61f39140e018de82b281aa27411fb80a33921df462626a52915d41dd8391340003f052dc326aefa0cc15a503bdb9097eb2b11065181c0e3052862ae3ad8a1339f07b5128eaf0967a3fbba390e25b6a25bc7a1c5daa1a8f608c48f8849b8ac61d6499d8409716a03e891f92853fd4ca8b0755657a31e6113636bbec8ed9f4aea9496acab42ec816415d8b51466e2feec570207465b9c007435ead5c83556ba00a15f9c4b0ae2a15f1f8697cf87ce95804df298cbe258b42ba15709de047c858c6a09ebefb71f516fb0afabb8086d06b1fac9f2dc0cb8869fdd352bafa275bc7c3c1a506ca6d6f72b2af26cf06e13a7271af5baa2c0cc144a839827ecf357cb5b5a5bcaa106ec68a97ad8219a249b6f580c83a997b52504aee913a7bee000479dc23336da46ede05d76f9676c2318bf71dc05f5159b3e06f869ece01175d8ab05d56717279432db68b48a022fdbe8cc9bdb09f5a1f3540a0e8f569f3ba82b6bc3b084fe619d43bdb3ff70effc39b7f12128be448cf81836693f2801fcdf5a93f1d7305d3413b920f32a47ab624f5f9555ade2eb1bbf40d912fc1f24b728d1f9de598fcc0a68e40071c8016b648d714f44a6d08a08ff031504923162197954eaea896c6f03c6b08abd0a326208554532d30d21780287b4454de3e29b1f5e9586d7e46e91892521d17138df3270d10036c698a48c32413d29a650cc82de3bc49438c232b55326c7fb07ee8ccf9860e5f8ce9ee21807907cbcf75ae370b02739f43680e6384a3f0a66f5f5af4982caea7ab579eadbe834d101ea9f429944d372083b341a166e0233e13499aa4a871438d7b7098979acfe25c62a7bc39fe27d8b8de6ca48db86b19642c3c04748acc94a034bfee15caad757e4915acf81474078823da2d98c43079eb8e6fb58aecf429d3e1cec9e7462e30898faa4579538d12d654b93ef4edecccd17ab89ad88fb43b5cb1e8fb819daba488b1ddb827729c6a379e700506693dbc951aa2cb4cc58955a5ba05f4ed7397f54971d57838aeaf919f222701105e4ae7dd6e08287cad5b7e2d247cf93332b8bdc583bb9c524a8bd555a9f41e25e102b414468d7437e008121e472b33c1edaa05b637a7fa5569f72cd2f90e92f4b29c2002945a11f87fece088fa7c26bc61ec5effa43298567cf7de9f69eb7d59ec4f30171bc3fcbf072007cc3e7f910c7dd157e51b8bcd3b4552fef09933ec0302b31d5dda2c0661c9dcda9c7850733c2dca7f4022f1bf56900b60effe34693959ae49cc72775a8ce735f26631632b4a8f782ae847e77285d23f1975be6436ce02fdbd4cb00a8cd659926656fd2d039288afb73c3b6ff0234189ec0cb60953cb5e4ddf67d4ded3ac3dabf40f2a2400e529d7f09a812e98fd8bcd636ec4e46c728694495862898393250b9725af80c1d77603951b51f78962db3fdbfa53a1e1a06ce5609792ad314f623e37b8c1b279a8c57bf6b710e9f60cd46877462b1540bbd4ebdba32201d16480c1c8c796aa61dd6d97f84febaac548940d061678994fd0ab75974607efaf3e89748c940ca284422df47d5d8b8943b2a45e40b58159ecbd414a84e6451ea7dc6452afa3ba637af4b4ce2f0c0682ca917ec2e84bc8a8e00b70ca300ea65740f5a8f45f9dda6a054eb580fac07433ba5f8d1abd3355c9c695f296b015c9b5ef71557609b7c81ac1bd936ab31b15f024ce76d9ad93a2ed62e4f671b0bbac758d60332ac3bee7f6c3d3439597611f0d17dfa5e9268a16f609ef33864772ffcfc311a868055a75a25cf9c151347dfd3730c1373e3db8bc3ac7d729ef6501a341beab2d6ff9f56a1b85ea2e3c29cd3b72860ab03f39438bfd09c3812883288d7d19afee3cd1d080b147d0f1af7f18783734d14c219d191b643b01c4ed30b64f1f0fd8d0db0368131ad73464dad6ea036e3c9e71f4938542f4c5d9136d4204b05ba279c4db20f75be4d1a62731563e0fcc9f8a851a4126d40be2a9c2b61802fef156383f16e649a39d45c16e3d33e92bfb3bc3f94d0ba0b66db42a9a218ea28c942ec6653450d1f34c9c17a9728fc576e9bc5b73788d6c1b87dc75c3bd3aa2dfe22333eb378a2c23bda0922e4e065125a850fd1d02d5a65fef77ee21206fee3e306c2b1b560854b6c8ecb0a85baa433baadc156c5f8fb8132d74465c2d1fac38ab5be2b14a16a520b80dce812a1242c2f2b31a9748ee07c80013728101ef27b8341672bead7c1e099ae236e4b9537c4ff2662b50a9234ee344a43c05b5029409209775a646625313856c397242a664481839611d29d0454c7f3cace09bb0ad63d8dc93891ff5f86266e525e9c218ccb7f65813a5b7220f7c795705557e800552eb0f3648e59abe12585095f0486ba82cb6ed93d0eb66ec20e6f8653efd0958a558c787b94b582a5e13f25e5eae32655bc1d280cf1a7ffdbf8600e68caf21b401e12c9209342226de26843e428be653ed75fc96ff7e4db19033c154f53bb6801ad3895ce3f68c94e545a6bdd5dc8f665d98fa82c6daba53c9f76c2abdb86c8f7b52d7f859b62abff61d9b3874f7e2cf40cac4c7265bcd0bfc4c643c9e4c22124e08c6f847c56a35daf86162e96de0763839ab94832568fca545f87c4ac120d2252d3f9085c19d5ee2b6fd249f0d51eb7f17542285c68dbc5f9dffc1e796ba0f3e9d2157597a4c9bb4070408f9226c369d7009c24dce750e25e8b71eeff4eefeeeaa1b9097f808488784652779f248f215a2ba4bbac9e451a2b74e459ee97194def2002f7e2c7b6be5960909dc445525b7fe55fdfa8432407d4648dcc72361c8db29720828fe0e0183895d54a595037c5007cbbd833bb83a4476034838e7cbbb24758e881b5a5d366c279f51815095d44668b151b030c94fa731d33eaee30ae621ad093920a8b68004071a573f6e25480ad15cd71ba259ca06cbbaf357f87afdc9dad71f02d4417868fc5f0f825e3c0b855a2c4f6103ea033dcda0acd60b604803f90d1572024070aefedbb2e5700529aac10d8f8703e680f7674847e7af424c869807843a92418c6cc464c6a850bc8a13ccadf143297e1d76e871101f19686115640a4073dfc0b824bacdaa0600a274232b696b29a144548c3a7b2ff0fd916d8acb0ce10a9c16fe0b1c517ee6ed248e64bb45d3c4bb119e7b2d8e111f1e19d67094a17b8588d7d053ad5da02b687eeed67d59605535deb577650157d5b4aebdd022352ded894647d95de1a0dc6b55636db31cf40df8ce501b8891231e405115d7a828ad6efcbb9680297f5c00e3eb855e7a0c2fd5ffc180150ea4a3c899245a91f939c627899b23f14c433df2e8460627140538c0114b3aa591b690844ab729840e8a6f46ebc6067a0aa7bcd1e12ac6ac1047d48d8e8d02d783d040243905117aa91d0b3da658f36b5568a72751136e8b2e0727b0ee89b99dfa107b7c816dce7b4a03bf41f503165701ac319f2b7980479194fe00f9b4c93a88d0d4612364bb465d8f662b2bb6557199af67d88705ed043434e43915854ba0589447a9f32cf0cb4cd08e53a013f2c042f8ab8a6c8749581f249ec05d5a51d66cb87c3321f4db7897dbb7ae4812149f22cf62e6741864c56d19c0051f3e46a4acc1156b73182a00ca0433a1283e8afc66edd2328bfb3e4275488dca19f659a54346b31211a6c0bda0e7daed138e10c92404d7c3052c2db3b33e01a97de67e14c296f048e498b1f4fa70694b245e15a9a70c35a896edd81504f82ff0afa9a8e56ddac92a02b9b626d818f2662c0a6be421693327c8f3b94634cc25241c015b1a436ef4e80b85f54cfccfa99a92ab930140ebedaf2754622a8c4f522948e827238ca5c174f729460631c79a0e3c89dd5c6496692aa89b463b9ed88df911c80734153f5ed8bcd9977842c3e3cd020b695933d0c59ab3f24938b600c45dacb95096454352d404c9328ed06396aca9307ebd6c3c30e4b03dd6540714bc23cba09a944940ea3ee4b292179b8da2e3dc3d7b60b99658c40996cb7585a7e264644aa3a2dffe6483b8de75bff63efe29a914af7c0d3e02b5f9a51910dffe098bd1e563407875c1a4a37fbf8a1158cbd841a945c45a429e310e357d9cb21cc48b8b5207213d01126b883d363221bf6c724ef0a1a11f7d9b861464e1a4a86b1788c15f41b508051ab27c7aa01aca5e3ac3a75cce92f3fb53d3f715e1af035bd0b6689ff074895c02d8f452c25327e088261e27218feb0146e537a8bf91e837832efc226477cc4f6ecd85e92abc71bd815a3b330492c0f9c73647104b2cecc6b2a76240207a01ecfc027ab8e9595c3018d6a803e9930e4b953b4c596fb74ff5422e4949583c3b424854ab148d772a38b83340a409217dda117218d5c3107efcd808ba1f36c08f7f2bef4718ab2aa3f7a5c8ad0f8645ebc7ec0a4ef32715297a7942f6de5b4a29a54c52067a058b05a105ffb18f7dec63ff1314f177983eb6d882a21d2261ea638c31c616d30ef62c983314e90500e428bba0099063b2a4903133c6d21af790b51e1e0042b798b2fd674cbef87fe2f73316f39c6b562628741287f4e9eeee35eeee6fa79492524a29a5a94b5b3e9b44412ba2c4430fb71546a9f33d7c74b04489fb0a7e0f1a7219cb4862d90891eddf820f5acc47f2986f28ce189aba68cbc31a8ab668ce5a7fdf7fd89a24f0def324e87ce7bde729d011676acfd3a4c94c8cdb3fab3cef3d09baefbcad5a68faa4f776f71d201ed034fda7859ea0988f5896c3e480bfbef7b0b3cbce9cb5b63eb69cd723e2b0a7687f079bc3fc9a3bbcdd6dcb01fffc39e705ed8e3c7a38f79cd35231ef3c7ae8ac4d5b5df71d90070fb54ad92833d7e86d099d575915cb2a1680b0e2052628c91207169934c976cac4096d65d5d8b951a9b2eade94aa86eb8304d6e9846a2949b168461c954d3e9d6ab5b586dd2966fae898b866122444989079c89ca79951f984d21f10f97a37e76ebbd12bdf4d0ed3567cc18f6350d7fb39ffcd1b68237fde597fb4675b73b6b65e59c6dbb6c261a9e28a2a598c51eac193986249119188e4e3870c31c0648eab89b5d6a668907d185321fa0ad1765ba9919db6685f39b32bf35024cad982315829dbbabf8c89bd44f245f47a128389ae8ccaaeeccaec4ba4442412754ab0f625239365dc6f34b769a0fd1b504412b4db2a730369dddddddd3f1c36674aad0d293167be77e508c6f3d33f98fefd4053c7d6450433f452c10c629aa08b79edcc81df1f883761d81e88e7cd20c4a6c94cc903ef114260e288922c15a96f65647e0e94e7dfef079ace1df627a86ed9b1819b3bb699058f19ba13ae59d98cabd40e7367d1824ee6c0035918a73056a9eb03c65862399b4d9488a672d6fafbfec35094b3d6dff73fdabe1b551f16682fc53cc834b90f598cdd81f2f6dc8b9256d241479e2684f12af9cb90e8c84b24d2fc18418b73c6c32442064458dd6f28140a859a492fc044552f809dc918e9a2cd1c3f5b2d41d0d5431b831291eb059cb085e38887cf3a690288a1e7cf9487d2c339a5c4f0c20b3870dcb8e1dedebc4ea7339f13913068f7045310a2e7a31c464aba39937eddb0dfb77df73770ef75b46ece68c855a829691f82d543fb0c98a894fecd02d49e390d943051f8ce72ae5961a711066bb66c39452a0a26f7de7b53f882510c41a4c4430f9d21180155f10224482939c9c969e2a49c208edb5c9d239d94b22aa9619d2101906618fac1ffabb5d68a5f8787734a1a42a9ae95b44b45adb5d609846a8c21947a38c009c2a0952e0bd9a58649b428da220a7e1b68008d45fa8abcd21ed6e61858128ed7e93161ebbdac9cb3ccd20604bcd4799ff9cc673eeb3a949e76ce39e7df19e4bb749a333c78109923042310b2fd69105ae333a7d191d7d16dd6563ad2ebbc0edf42bef863d00e1efa8c8ebc54729a474df4049aa50e5e627252eaa10e512a72bf04a50878a903eaf040323c7ab8b61c3d9d509c30913597e23427e453993978f030fb6c4647526ba75586fc7dd01f9059c6361e28b2c4556bade53acf8ad759c99e8ed7717947be40a873fa046bb6f4524c73feb23eb910eddb56217a5a8ba4a593c8110f0983229d84b6a871c7711bbf39325572e792779ca73695504d73200f2998342ce3b8666baa3a0c9826d39ea0f4500440e6fc219740c2d417e27885230ba393398caa23a08ef0a2c1685a96e7933c55aaa9b21b0aba6e1728e8f98ea7ca51bea24e7b91312c5be4274a6b3a44bf8586070db90b14b44ac6dc11063ce439202061f01809c8177f778182ceb5869caddb3c7078e2a1894486fcc5d9924186186278e1051c1b2c0a5a9caa4c35a511032dce9664823ab2efcc3173083202a65bad9a07c89c6de5846182fa7b6fc2b580c912a80d4ab32629e0e3cd495d4ef9532e9922e7c696d38bc27618dd01ae9a5693f1c855a93a1564c8557881dbf7de95cab25055aa239cd860f06c42c2e4d750cc273e40f77c5176214a2afb87073460c1d51c2d1222d26baa547a46107475ce082d4e55e8211a5d5f14b1e052f4b5aa1a97e7879b47cf9c14b55aad56ab01c1585583ea42860ca2608cb19c41a3e59fa0ab16df5dad75cec9029225ee5b4096666b203ba32b797a828e1b48b280bc3403344b2d3c4c2a80d881092ae73d8902c5113977094b4a453adf8388081f302915e9deed94c7d8daae6b6991f11f8cadc5d6d27cb72d5f6aade761db4daf034a0f413a78788e8c995dc8113599be408161845759b9b0e98432c25afc568aa55919a0294bb5a5625046870b578ab12cb5d818be7985030f89193bc3213575cc8f8bcc85a67748d63f66c875551e21b42867ffffd7647f88edef72d559e794d1c10139c23f8503f20583e23d897187a041c8a5c5b7f5de948a0573e1388ee338163772389c8ab3d9dc3df57af988a3f190bf7727c61c0d1172d4712819334f983b71a7ac5ae14e74945146ec20db5fca2696f92b66a7d0db8bfee282c811893bc998293926b82192238206bc3790bb912f270f3f1277daaedd3667e25bf88b3badacd4384c3e9d38ce25088c65be793ee868f3216534c3c8cdf3d139627e970869062418b4e053c1fc3e6f7bee3befc58f34b10680c897890a41d741c1f6ef308d0571f0e121c907beb51a909c6b562bec1d23f6fbac7d1468fa13fcb2187e3e77fb7ddfbd2e20a078342f06efde9b3299e8486a90d4f5ca170f71edb3f260b6e6a107a3a32e67ad3dd8ee6299abde180aa253759ec9b3d92e769d6adb388c4a8bb6e6559131b127c81cd7051286918e3ce03579df81e27b3650d4e235895dec7ae0b5912ffe1f25347db153b56e1452b4aeb88184b93a9030b6256bd9239ae8541e285a231b0909b38484c9dfa970e696396ff4c6ed75e207db57c891b5f1901199c30e91304c198337effd2df73a38b2a7f8d99b9b2d7e48ecf9a245628bdffebe4ec7ebb82d639712598e47639102bf9e60972b744729b518e450d05cb0a234b1c11835a022a734c36d2d00119300520e04c030aed46a12be241229678b99c8b9f3f9c2ddafaa26e75c699dcc2107359a6c8aea8b7b254d61097d535842cfaf610350149d3d50145d97d09e2d66a7c1e7d38ebd7fedb55dce3278e87f5f24ddcfd7e69011f769c07b5e1974907e766aa8d7e294aaa6a362dbb64dce6628f95d07eaec54ce2bf344297530af6c31d3a811d74a0d26db14910fdb6489a14f305b8dcf9f41b64dcae0bdbf8f91074e56963378bf81b4ed27284e1b71de6cdba4d250378b8e9c882311b54f96bf66153eca17ff188811dbaedd363c839cb63ce3b68c6b56382ece5794a470beefc362c70d1edaeff3f6e4417bf4f0f0c4c3be286137580bf6f0d045546465cca499801c4d2164c8bf334f3360f3c4c3bc290fa52b36c5ce1e8e86b16183053f7ef210e5218f1527aced116a4f79337f318d6336a6e90cdb1f033e66084187b2d0fec59eef5f58408ec2fa0f08f76708dada2cf6fcd8a461c0478f970c0e74c4010490443c3619b3b5c7bd3a0a9dcca106a724b092d08465b170514a31c5dff7c95a0a4768df186f7f9f4e3ce7c47352fc348b95d28cb1f8c3b618d1a265b5589f8c99469eb0b72256b0832d86e2e7006e537cbf2fe79a95abc3ca39cb2c65f2b7750370e2541b4bde0c1add83476184204adecbd0d1ff4b76834c03402c5ae879ebdf9fdcc671d407e08242c6d16dce074cd0090f3c7da9b3523ce46f67498a68c7183760264300ab25369851940dc6d8a2a479ae1aa876cea1c99cb92d958e0364ced3f9acb0e57a6d5b4a55b3b2f134e1c2184b3cbd5ab79c73cef934338b5efb4e703ebc2e0312cfb0e51c9a7fc3e28c8849793d2191b2d49ef232945aab83fe6d2545a9b6d62aed9cd67e8ed073c8d71b9debb4f32dca6140bfd71a31c53c0039517c4625167b11eda13fb353c38cc3d821331b1134dbf589a3e9d3f6d7265a37c3d1b82a26202c8d8e384be3681c8da371348e36e387209020c1c963962d5ed049228400bcc4207701a8b596525a53e3915db09634499decaa090cb6385d19b5a407335b9c4deea962b1fdab87c44fd006fdb99aa4098a739c77aa2eca4355d6206da1082dce93ec649a81a19fc3073370d5ac5448748de2e160db36b9c94992ef7314826c902f0bc8c20adbb50085a621b8a9175bb88c18cad7c5a0285d9bb4937af06f3985e3a2e5254c54ce2f99c9d1193a418bf225c3a3010ec34510b015d786f825835ae1b8262a5b71738ef5484d2ca6ad5d4062c0616c7d0b5cdab4354b93b16e039cadb4094ab8df9198650248a8b9f12c46206d23b76d1e1633960e40036e7c444afe05ad9fb04fb866c75251efaab50ea90ba52ea30bcb25e692e372c405b6fd5d6e5c5e2e515c5a2e4ab63fad34461a238d91c6c8593adddb9dcfa55dba7e476394317e3fa3879f247cc60fcb4321681b346e760b8d11004900e002801270caf60769a024db1fe45a21c90a48244c76c918dbe16c57c18bedafc24cc6cc7741b2fd5d5a2e445c8cd86e8b90a3cf6891a031ca9724b4f8a9b1c0032d7ec615884898959a154619d3ad2cb1c2cd5e6942851ba38ce19e8589ed2f63ac1246b6685d3266fef8b9913136255f8a4818bb0219fa67b418bb8c2e23c62e23fdac7c650909f369e233ae34f1a92d61d31899c8ff597d9ab03346c6fae2a756b72dd218b76715a07cc61b446a3746171aa3cb783750859845b98c32c6b22435c997daa28428b7f862a3e48b73a9edcf112143ff2a5aea131685922fd3655ca1b5028ecbe832ba8caa9a102663acd553beb2c56cad552253b15b752299e8006b6c1b0e7c12089a82775cfdca359be190aac254739e32585ab4ab171d4d9692bccaabbccaabbcca2bafb5ae6cb6ac4b3b95665c8414d5bdee5fab65f942a70fb2e6a66f882462bb07594942d76af76bcfc3359a32d3d064c672d63ae642145a7cd7b5b55a0d6396ee055666cea96bd8e024169ad1f45f32b29ccde4a22efaa255a14d665446a950188d9263b11ccb33e63370efd22e57b8c1b9a2b3598dfd2096632a558eed0c45e6988c99b11c8bc9c8189ac40639a23b98217feafaac78512aa84bbe3c99b90502842ec09095a0e9e7d87402e583b960b0272e97ab6685b399bc2f30c65882240c0c255edaf378bcd72fbe07e241be9abce024bd00f4a7dc59d25b6b67beeca4573b3b30ce201b366491931dcb04a434e13ad00ff0b717e52cfff036aeb1b7af2091033b5b0288a16bc82b90884106974c61dadeb9c1f33768ef57de3b3cf463d0c57ac5d3f170cbea3df1ad59754b382ee74c29f5842fd769082168648cfd5edab55b296ece93ebc4e1cb71d58b3c45cbb8adeb5c4a8e70efbdf7e6178908e967c88fb117f7b284a1c5ee0423841cb1bc7f472363e6bba04b62fb65d12b9e6ddbb6df3c2b60cea76b3d5bc6a7bbad64cc81e2f474b8ce5be1386e5be1386e5be1386ed35f4bdab3d2e13caee338ce933dbd7204d838b26239476037af282d2578ce99fa7213dbdd5a3b23081e343467483e626851c2747091918de4a305100f8cd3240245e334d1b8af1d8ffb69296bde5efcb62c61ce719b13dd7bc061eaa8036b05a7a9f519ab8645e0023c245001ccc514e19b612b506c9bac5bc7db3e219fd7f1604f3c741a30d0f2e64b691a877952cad123d114e9edbd96769299e04c579ddb565522983f00b976ab6d422c94fc6ad26ab5b8158eeb498dec64273b29a5ccb2939deca49432638cf1f453a699669a73ce9decba558d21baaeebbaaeebbaaeebe45311e5464986248c0564d88210babefdaeeb501dca43fc62873a75b686c12642322d76396bad013aea50a7ee44eb58dd898692d0180cc1405b2a1e7a47471c6dfbd9d16c9a861c831daa3bc9b47db13b7527293bd1d146db404ba32d43b4d89df09d4fc4c846225f3a5460f7de2ddf2d2781d22d6f3590ae75a954abd7139b36405506aa39a02aa5ba8d22dab7e8b21a606d8552a03dd796a653d6c99bc755ef358769797fafe2f2787e06f80145ed9e9701aa583c2c2c9f4155b8597e82e2b780a4872c5f459be5755016907d0d12716c918ea398bdda12f5165d07bbe7e7bcdd684dc9d934833f70dc684de1e22461746465b515d656585b616d85b515d65668a38cadf932682eb80b4d6c32cd5a5b6d9d5f8d975f0389ded1f23abc73791d2eef111f5196046b4441652a10a1c59ca33fe7388ccc4367c108fd81428b3f62d8f357088296b5f6cc57a35323cb8b568a7ed152715b65b6c5f9ea4173beca3cbd3d906a1a1d61d8bde37cdd71beee385f779caf3bced71de7eb355f17c44daa49835c402eef9d1d57863cef9e17b3e745ed7971822815a7b42357051a083d55aaacefa82f08fea03f35d0e20e77b668543cac59a17178b827f83e68f1c51f385cc042cb7d5950a247dcf14ea03b2f52da1da94be9bdf8e110fe7c4b3d901364acfc9cd5ca78b903dd323c55e81c3620e37f4b19bf22e6d9f697f15a566bed197f8313c5166995181d76f800def5599e8586cc7e5df9f9d2a1de1de896f15df570a0a3f9f2b4d0e2dc1f920c3744317ce10b9fc7a1bf1b9efe64af5adbf2ba5ed9f23abc82f4a7e56967c7ca772bb5e527dd2d3f3b0c902d5b460b7859f7e68e4fb4285f9b29969fe37214b47847f187a87b4ac5294dbed8eaaf930d5905ea65a22e25af25af269698b678a36cbfb65297c354196c771a1dcdd76cf2ba230b516891f4816e0b44f284d0f6be486915a4491d3290be1bef211dbde0a15befb52cb42529a832b36488992543105162736da534d36638a8888c83712e1dd7945996a065a82b08f39a4cd65e131d392180182653c773476a63b766db7878673ce4a94b4343dddcdff18e5b9eabbb8403a789bb4f6eecc23cbc30fba188c46d3abaae9680f30e0d3e524881dd1b86f7be20f28ed036ee4b31ef0c027d373c0c3f120e5b2f8ecf7031ae59d9c06e16d79573189e4e2d10d1a79cb9ef9e9e6e901b1a8290258690a3eef33562fbd7eb7544d0f774b2b54f165ab435dd6da1bdefac82c8989cb9138dd869f19d175abca74f179a0445ec93c0766a00c11b3aef01e54c53a72108241a6087bb92eca619f5459d4223e86c6bcefa9ec28cc370db6a5638ae1ddc7bafa41d05c9bff7de7b2fe80373eb307fc8970e540143873943be5b7ed2f5813a68fc309be180f12cc7da1a106ee328e536cb6dd3d6449f3f833c7af0f05024b2b6c65620299514d95a9903282940115ad2b495c96416caa41bf734cc4d5f763eb0c37b1ae64e42e7570c87fc1da3a349ab2fd68bf562bd582fd68bf5baac0a4e2997551f0c6d50efcc3d5d9a8bbaa9abf270756deee8a1a92644036d6dbd29554679637c38725eb9817e960aaa90f89d4ab135df948a0948e0689b561bb5da9785d9da9db14fa8a5515b65539a5a82039ced3d1c46b42f98c8cd367dba042767444b74ce269bda279b3ad9e26783a8d09d6dbdd1ebc8e877d9684cdf4d678ecd76e67733c68bbd1935d0b9b363fe8c21fa5eda07ee4f8b6d116ac020904fb6776a70f981162d6b8af2136a59f6354594abd9666c33b6d8666cb1cdd8e6bb813622f40db940cb3c4d574c1fd30f8ba02bb52f2e96031b5956e7697d8a6dcea65f3ba0222cd6b4a50b0241deb6764054bb77eccbb2ecababf8da17b5576c7a83ced7e19576be4afaaa1c2d0521f76e99854ade5ebeae95912df13ccfcb4273dbdf781cdba7bbf752bcaed3b9611df1e6e58176d1389ac3f8ea86ab42056563a2b9370a351a4e675f1a1d655a0d542c18f7de19ebca74c44d91217f4e0c134703438bfac4d1f4c95734e49fb3d6b499293278dedfca2c1832e4230fa82dcd53c5bd343705de99ee895b9a3ed151674486fc9124d9de31d9dec19ce858f245eb16cb43cdca596ba9836822f410cd449d6da8b40e38e518aa110000410013150000200c080583e170403420962c9c7c14800c5f744e7460409709c45190a33888a220638c32000003002100881015ca063812f0ce467ec3d87239c699398997b48f4510f6629059760e1685ed6328d98c10063b159d1e59edd12711a2d9ff10acd8464ae59f160752e116387c55d5732f6735de722ccd76cb347909efe491a9104416ce3460bbffb1457fe410dd5f3cababdb3039e97b56d0d88326031b0ba0b469ac019ba00c12d38f3d147b09825a574aea93efff4eca7219e43a20e0ba8413feb017b0bb499bc23e95562110d915461055c016b6e03592aa977e827ea24b5add791792fe13f19494a94b4730d65f5437cb6ba592ad050ad711422e74dc4fbcac0da1cc3705e2de4edce861ff84559b590acb149c021564076b0add70b0b0216a7d61d3d18861830e9c82a9c2151833b48653c0ddccb6ba584b17a672f3e8edc86618267f77537bb10ab088eb4be2ddcae2c2ac33f0eb37d03b1ec432b12637812b030edce7b294f5a391aa483b5baec777e134199c125510c855cce4646ffaf918fef36fe6356e21a7ba7b190f59a5957cc0bf541bd23667aa704a356bc92a43eee5ea174de34e90ff60080c2d9fb1e5f512f57ddcc2fae46b9e8e6f6a3c44a6a21c5b94505ba28704bae1949f0e1b7ba608eb97cfaae95f737e6554741bed0102f527deb2fac199df53de3502eb4a5a453da781704cd7e49aa349afdc2db17eb6562f64a882b62ccf8799c663bca81242c0533ef476a4a30d29a774cd14fcf51c5c61b52c15a00fb57cd3273564aaf624998ec8d32355156831607176918520262eed5b1c741becd419e86ac85500fee571bec7870534e440b0c087c631439e12d420b1df0a629f210b3fdc052132ce16af60418d7aef2951a851d7203417d7383222755404b767f7a76921a4bf72a060930db7f29ae04afaf0bca0159ed9c3a388042b707a8ddc01ce57c382bea7e7e8bb938eff95bf1f2119b89ef14f3508ddea863b0a28313a79201b727fe221926655b51cbdcc30113215f5b289c465fa3dd7a241c82488d9d36f0f53139ad55a170f1a387af962fdd7df53c22f8571b191e1f2cfc0dc427e4662daf1b199b0e87a81855bdf95b223e279d8f5fa335abd726eac01b4a3e34b1994defbdc8caa7441f394c3857f8b6fead0a0dac1c794a7158b254a8016711c77ce0c68a90d13e67fc57b40c1c1ec1be2b2df93e6137e74814f256c678d96e8fa455ceb7e0a27bd0e774e1af45cb73aca83949d66b78fc93ea0df65e59ce6b2d75d53f92eeb373832689c72365e4e054f845c8081ee1d563868d3d3700085ae869d9f5e13b18213c60bf0081acbd221561cdee47c26487c8d2efc4b6037bbd15c9b034ad3fe52aa48e992d92deba8c8a5020689022c906c973355af16112335886840ce1fa18a94deae144ea8738db7d8c59a5c017ab517b8a80704a110606f5f5c90a5b465d16489238ba4615ea36e43d860a58a940be9cdafd4300e0fc3382395e30155a4f41d0ae037fb91f2ec3d3520e2e246306fd19e80f207d8bb838e43e9f3b55eb14e235f0b47936d43ba6d4480c28fe6e5348548a923ae6f7441e6c09a0fd611e429d0dab24ec34c7b6b08f7985d17d7889e2c38a07d8ff4b2d2142e2fa36b48e9a491d02b054b84cdc15951d94ec7afc66e9b8a7525bec02b6222a593cf0ebc53b825ac902761a6551ddc9a129f393ff426e149d227d121f24e186c0319f92e6ff4a10753829c2187fe6bd2c43b90b94b78581000257894da9bfbe97c189cadad17a10639ddb4fdae50c10c2c0ad80ed7ce6f9396aab9c9d33c544c856fba7666707facb6c9838653db996704af58ed49ab9d7659387122fcc9981ce012a00446b86a2447e5c557391ce5109265b94b739c33b4a6038778eee2f1bb056d70bb921c3ba34b56f869a0b86eec864356c98414a928c4d749ae7a126a50734675a72c2bc19739ecec321e167c28cf8d5888b81c597c0f90d58279cef4f654c8f66a4a6ddfc27ca7420aa0d30d00e909b3e8a1cf9f3830a0382ca878d2a0e125a41e8d6fc09eb239924287a4336dc9b77fb287fde5144910a17eba3535aeed08fe7ba2cf93acc3a2d5fa254dc9442b67fda49e1fb2d096f8cb0e09e1c9af709c34062131875740b473afc4ba864e1d405c3385f3849b6f7bdf8a4964f41009c79891447a889aa28dc34db24d3c303f8fe3682db6713dc4f074d6e2ba3559b9bfb244f277945f02c34130a59ecb836487ccc1434bb65ac5d68998791b25a82743892c87f1e66d7e48d18d261d17fd432c711bdbcdf4bfcb52f0ff2b44186aacc01a9fbc41c428a4dc2dff305522c9e3dd7bdf76f8b1129a19737d520ac94ed9e45490bf2b7de22798cad185615a8b9907d09cb496ac27027ec4fda58b48fab036876fa36fa24a363dadd053ea7044c161d11dbc22823fa486094d0ebb4f9ecc51dc4517fb15b387aad41408875a72229263d9021c59270b88a1e29f240c8ea5c13fa1bd395017bfe98aa2006f7874504eeefa4711e101bea1ba30ccebbc662adf62c0929d054b26b0627143560555b9ceebaae019e5455113989af953da40a73d538d53f4c1e47671bb406c77d9c0d75d636dc15fe1fac3b3ade64f330b637fff1634c8064ede1c814a4ef81a4d43814e012e666d684c6869caac1a043b4903ae834d3ab7418deb36fbd5145b51d5c2b08330664e7a706c37f4bedafd5d7a10a8f5737093446ba891fdb9d7de54f4ac86f72263aff68b93d63e2dc617001ed980a26ac7b1b2e62fb87fe714cc1cc363f9399efdbac96cac6cd69f7247004816ceffb456ab9ca800a89bcb696ce5f44f699435be4a250007b80c2fc35bfba5a2920425f6e5d2f8cda4e0bca0a61d506d20e568fa58190c14e326797e59feedfaf532e0da795c33d54c214291f92893193a524f089f2beb727603bb1b5ae80452c4611b93fba1ecb89074c1085daf8353af825f7e7975d4417f8ac11b3d28d42f966c8c54dccacc4ea94c2444a67720117cef1c76c7579674386e7467f03f7ce6718f9e29a250bbe01f6635a01e229d0c8d7279c60dda9b5bf4e9ccd8f74b0beab6f1cad42604e2e9a5741c94040f61a5521e0d251abeb1470bec1ec60c35f3e84fe79a4639c659bf8e23f6fc0b4dbebd8a782fdb387051112b79a191450542b7632c35435b5c761ac920b1d016a66e4462b09a46583c2a0d66f13f871fd4b86c3c8bfcec416d1ba928c25ab63a25246c633a49264c8c88a56d314294bee6cdbbe2f1f7e710b6a9a5ac93042ba48160b3c3dde639b3aa6a4c2a62a1dc23fdef64ba8b40b8c37a805dab7983d2aa945102b96ad2a575748aedc35c2cd30cbe66b55a7f85f57416ce7ae09fc0bbcd084d0a53255c35672b0200644c8fa9dc7f51835e571b25767c6c9a91d933a6569c2c6e791fdbb71afcbf03a41fe590dd898c5299ad123b28e637c44865515ea02f140a37b3cba16a941b454f83e62352fef469a38ac5b6b1ca5e9079b12b924504a37b743d756f59f8eb2d1266b9300fa8ebcdf7dac6bd483d43623a55cc418962e3be9c32b24c1f4200b69c2435c3fb5a444d78a79c124f46e07472d141bc48abf0740b85c2f95a16c441f419522204ca346750ef5ebf78d52ad34a110178863c121c9515b435db2c8aa83c63aeeda0feb2a3d71ee12ca71ea60e566bdf7ab4f8950d48e9d7be36f0cf1fe047c7cc079bf5a0655fc0a54f47f66d0ef87c3a697e3f8fee183a3ba68f23187597f64ad09280f5f6f117ef0b0cd6b1438bee398ba47fa0f911b1828f27c5b7a2e21f706f72334db752a0128f8b43b8ad208a71ae107f2c26d803dcb31d19f4800fbce5f83d1674f6c485aba05122398890041320fbd7c4cf1a158513fc3e744767986002820a19c5344b4d565c22852af688038bb01a654afe2c0de9193c82cf9548b6d850b1dda50e1c4e249efcce0a501d953742bfc52a3b189de008394a7c8684575393bf3c83acf0b1c45f49eb035663a8100f5bd6a1cedfdd0f08bd61f0af57598c1fb4e7247b63a065d88ee8de0218af05a0fdd592655524ada1c894455b212c3493bc950579df26b860c2be95edf68cbc03c944e706ae46dd32b7848eb031059c298db8a9997897175196e97c157f12a9278e332fb21e005c6093d1ee2008116a041e97849b687a70c2d62c1cbd82d7207f1e79f61ad062cd9a684ee5328cd1f0ed92a460e4df7f1c5623586a91e74420a9526680dcd13116cbaed7d03ea75db48d827f37886fe2f2a7355da344280c3ac39fd73fef482b139f5bb1025abeba2a32551f63ded78540e0f9d10a636e84846da9e93ed57598830059a3ea374c14d3419ddd831f8f2a7a572f125845e99654177a29e7d085fbb8d1031d307a7a1148bc4cb444faaf870dc65dda1d5fb41e88837e85fce77d318d2f453251651f8d25444eb8353fa330ab274406b1a2999e0c2e1a8946f77240b95fb3db5ba6c3907b135d35c28cf61e6e4462a0bd317889d7ab89ff3476c316a2496b5b22b041bd665b03a938db6c7ce7fc81d9f00e4b00d4c0cbf3f21a88a8e70d1ae65de5f8a3211a6a8f164ce02fc97acac834d9ac97bf419d3ebfb6c47dd895cefad3120b65f70abc30b3ff91762d5fddda01540b317a09c37b21822ae11c93b922c1ed1dc0f364135f2b3af67feb37cadb9c35bcb870bc429ed444626a74a764436e05a65ada04669b6c5d6a2916772b1c2795f12535793613e6446a5c899aaa02154164e52c8b6a02269c81a58e5522a9021a78a02748d458b33eeec407a7886f8093029a38073b9f5dbca59e677f1c71965a920dd2f84187bc01bf0177fb1ca9315098531cbc816005910b3d0df9a2970cc681c593115e2b99cf3a62a87354aabf25da1a50a08ff810636a256e1d0a398e133ec89692ebc044c3abff1ed43b1e5a6ed642e06c0eb80b3ff2b11fd2d46530d31131862480e05e7b57c792b0e9c2c81139c6e129edaeba88afd1fe4a78d3580018e213b93a223573fa33989dd11f82db4d4f24b76d701ca21e44420a1a6441dabe6753c81c4ab57b765b157443282e427e9dffac5269b8a0c59a24765630c957e01b807c40fa6346be6dcdf1ad7b811db1c59efb957cbbf99b924e2e2ad41620fd7625e38a5df24073093b23ccf52e5ff483b0b3e8ff089a20d8cd6067d1f739c6537e98eb02bbdf3c52415b0a07a21e67ad9e43107d0f53c249a2dc83a274591eb249f6db77d73a326fd47f8c0e706dd59b007d3f178ef4f29f7bd023f402c31ab3316bba807819c012beffb80a95c5a5fe587b4cf9a5e82545d8fb31755de310aa704a093811cdf3bf53bf82c8cb58956d8d0f2811111f53d91d755851b21c075bee497c6bbd6fce0946e9f00fac72110eae75c6cb28b0a32071d6600ab0db660c713ae35be0b5a95a40fb2afe4242dbb1a2ce90f9ffa7e77a35a1e57a3b3d2d48462118a540806b451b4c0063092b5b53566aaad01caeef5132785d0c11fa0e87e70bee68b2c19c139c97f9839afe0621ccdd734cab0850a81657b96cee2453cd34760ea2f44224e6034ec22d8b201bfb3b80eae26100f1d9fa0f11bc630526e5d62d25264c27ef1d4b7efb336c09bdeb22a2d9ff0e8f5c5c807d128f4c4e444542e2e5d227947470f72fea739055e9795cf585a311eea248df3759172388e4c12fa7c6ce54b6f4ce5de93a3bbcd3c55f53311d8aaf7a1f18b936ed199d4ab71f2f9f4be230c92fdbca4027bac783249cf89942353e51b5b6765829f602c0f29f0638383d2ef3c0172a4a42aac42268f0b22cad30c8654b48772dd76df7b685214db7a31d473d002e33a79e33933246de92614853a1c21742a26e74e037ca539d2dce528819ad2642c65f15cd8c1537001f735d603cc2cd9952a159dcd5dc59da0422c120cdb904f8bb0795c18510eb5e0aa7c85cfa4602314374821feeccd2a95748c4a19a728eacceafb41d3956980909221087dbef2448f529c039e0c65a381d4a14873bac6dbbfecba0239e9a19a39e6c379ad9220216c5a80e20ae26a1dc702147b3681b4c8a8fb4142b62f68d25dc40cc263ccdac2675be8957006611f1915e281806ac23a8fa28ea83819ecf8fabc943292c20fd17284348c57e624202619d13f4fd7f2453f95c33525f3086c7fbdef606a22c2c119f6b3ffc884fd5da9af8563e7ac1e3fcd04d89ff3dd4a6c74e224e0f245f820add0e8c6f41bd5b30619abc9dac252638968d929f98f7402e34018f814467a9091685073888f98c8206721099ac65c30a1414524001ba979392b778bb801c735a4645205414f87b2bca6584440174f3c10bdbf880391392167f13d86ec423329096e37c7f4129d194500ead3003dde9a128c030634d91bb0f56bf4613e11142d83a0a286401cf865a092e9129aa6990416c85f7a1d8ce52c974c0af4cd4273d0643c4a031cede65a316aa963e18bf67ecf2b1d5c3db52d418ee1ef9bc8ee095efe2191da1cf0c4a8aa840283fc6214030aa6c348ca74fe99570fb5d227e9199efdb00c20dadf638f7347939abfbb1d9a953e826c52fc892df6f60745d6014bbf07c8b5fcc590bb42495b7d2ca0dc506b145a6111591b8c1ae42b0f0e516b0ffd68dece91661012e126837df8719a8cef9869e91b258333cc58d3d10ce768097d0cf05b47dff084b2e22da653c1949e1a6f3b063236469cba5020842f73eab95b031fdbd3f5270c8c25685f3a4da9165a894ad63ff345b8579c0b66e2e37b69a4348bbb4ec2b8584e24be1a92ab6d0c97576038c3107ae46c4d7de261b1e555e08286e113df410851b95e1a3d2f380d30c364493e64fe8c45351e2355a0a255e983ff392dbca4a564e6c9cf92a7a0a25bc19b8a2206cf5068c5e5e2e9952ab13991bd045a0202b87ccb56423422197527d959d4a49ee4c5aefa01a82b172751d2567a572b30b42b2d60b6966cfe24da0b93e3521b1ca733c4abdfa6d505850fc5444838add22f1c558045324f581f9125bb34190db992795f32a770777b941698973b4a74153c0b1545bab40353ff9ad7b10b1949dbc82c2bd34a1dcc268720c83243af05d5fce028b2807206d7d91eb14fbe6bfb9e911f2e8a806dcbaabf3dce4197a9b9f937f00ac1e41568ff43186110d8fee7c3571786a9ef2785520f0988e6949b8c8357e20641d116d1c65ecdfb0b8584d92798cb485752ad8c026fc550f1c5f1099a7e80e40589c896c6fd6378d125d5b931359d6d1c2754985e8803646e5e0e1d4ec0250659a8687dda2d94b1999be60d061087ee9f267b546ad92148d3abc36775e71d3d8012175d8c0ba94fa5dd9018325db4c62533fa43493e4b14d5f7a6c1b3d5f72c8fbe49b567fa89c56f80acd6930994b01d78ea22d7d7f9448d4a50431fd094a2d7693c4d489b1ae877bd1a19c9285d31e9581efbd8618b0caab1f0d7a06b59ae23b0745bcff3dfdd1ef2ca03fb12b59856a35451b8b4f8add7318a4a8a7741a806eac108f9113caad47d4f6de9351343ddd49c87307c58c819b352f606e25ebed7113824b66c403b4c2c8a012f5edfecc434d7bda7ffd01e95a6dc4853d25bb8e18d42aef143dbdb0ab50bf5bcfba0b14e8143e45f0b3bd166491e4cf2851ae00588c324c7ff7ff52dfdbf102f731706d99fc6e61e93752a6568f6e34f05177a1db8356cd6309d3dd5143a7ee0e0155924ce07bcd4a85359834cae2d23886d012e7d09befa844279509e6508fddcd0a2d19ef91b2bdd6fdac364b10d3d20ac298cc13b6a6892bfdeb1de6f694274378b13f12a480c67c501205e575cf42b8fbc739ee2a43bf72c1fd5ee3ff9f440284766b4372c52eea815024aa1618551c01b888b20954f8e9f8fce4df82b4d765b5b7d2210137f3435395ec4936de24900d84ee57b37957a64e94ebcddb2299b19207896d026fd64691bb978c5267b2ba9b6afd6f999a7c7607837f2ae2f920470b5df4e94c1bbc45736a78216d3b9c202df853658e1b250a411e73742643f392ea17267c587bfb44ce1a1932f199004b692dc4f74413018ad7c0fe420a6202824b68dd034273850d799e24bde06973191705684f77bde6578c7b9e3692335917b47c947e61a585f5e266826f862a829c1ea0c383b5e4f9ec17439dc74689a3f7ff19fed2abd115a1c44c50d495d8c9f5774407aa435a0208672967b5d38f858f0cc425d8dafc435099e9fee238c91966ad5037d79bcdad8adb2c5309e6e9c140f80869d92cd17f54074357750b36dc344b7c4d71a50431b075a3c40edfbd484535e3d6e560486bdc19bf4f409f9700e62324b3d93d253150dc0dfe2800e0cf36211161ab9c0651d3097843eeda264d4a0a03c498096f44450ef0f23d270e26f42686c51a7f4d27b23049067d0a0a170274a7a01fdec426604d0d4b2313478ae3d44d6bb06e8178dcac49d6fd27cf0d57740be06dbc7f8182da79b7e32624b0505b41a1b4b3e9f0011266f69ea5cee5517f4b026df799db94b087a29692095e9e4084a6d822577ca26f63dce268ffa718408fa5cae2e32e0fb04a3405dad90133754c58dbfd478230863fa992e0ee940458db79c0ffb3f774822a69bc00aa39f303b46b7dfe21153f19fe5312cf79b8471985230b5025ed0b672cdece175dd714912e49094ca07e5040b92b573066e6caefd6dee0a54e2d7b5fe15fe3d650d86b062270c8f69982c5f8abc7483a952d432cca4323966eefd94781cbe522f9c72583a0b00872126c6a7af7a3baca82ac35fa26c75cc7da06aa6aedf56acde7f8afa5740353775e28daaf23b5d40d3ac6cc2d340fad0b4f733b9d64c709f0ac8a2b50d9db6e8e612f02f26e494a077dc5455c6192663099e659a1104d9a7819ae89167d9bebc5857daf1b88aa943aa3535e72391428cb95489a67ed93e6b9d8a7dc7e4b8bdcecdbe79ee21189b6abaa08de0ea299301ea35f9fd18da0dd37100b38f2947ee483ecb3231adb29621a22581c34b6945741aa2c6a0150826260ba3742786804b3abb350576cb57f50e9dbdb9dbfea6d8eda57446540e8d475a7c3ff59511ed30f99602f0c42a5ba227d4ebda77cf11685eb119c62acc9ebc93fd3373e33fe7ad6cad94bb66fd197786e1cb390e753ff1638b29ea953213dccdd1af08d4a5d8fc468e6a9b8da4dbf603ae264eca8cdb57ae6ce64915af0eea80f4003e373c191d8779be4a8977629a0109326ca03d4b42a4c4f12da3166dfa45f95263b9d14fff9b6224fc7a825a4c5ba962f88a5811b455b0d3270c50a346509dfa0635c7212193e5e9da479a47a66a21850d316c2a075876d231d726c8d8da3d3244fc22c185dce7abe78b5e6bb01c0aca73e8be2a6a7548d2f4807c91338c194acdfd5ab89952041a7b231982e06f9806d5c08ecac6df6ea1aa3f41faf43e08b2dec6307f783cd9319cbd30e32e8a7f02a9c9f56a6334374664cf398f7988e6d936876007f3cb16dd0110f2d72d415d312faafeb0b99a30c127b96a3a19b307bc12dc14dcca67debeb24b5626f622052079ae38c9b8479acfbd523b3088ecf586d05026af701aad51955e82ba3e35f6751dded4604da95606863a317fae0be5b368bc7194de0b2a57d202c5fa08cc6ac09ec1f9f71a733bb37b3e3317964b107f25eb160f1511d53474c30745e53d8069c40261b88d1d1a23dfba87e03d089f711a44810d260e5638f733e563883e0b9b813d007bcec89de2001b578d380e00a22a0c3a5da75284317d282a38a3294abf18c4ba325d73678a702a87d255dd2eb6af34de62637e7a337e9b3aafdc64679bf514c8c02a21c4b600b3d1e4ccf5f393e1dd1bc49d009bb439c25b2ddcfb008a8734f4379cbbf89f46fcb1d1a701c00e61f07e09b21e40e0965960a5fe8165d715953c51c2ff24c898de153b949cb9ad59afe35ff13f470f1e9af2c1cb4dbcc51bf662d74070404a99386a70c4ab2b2a22d499016eca4ecca05a03d2d56d7a632fb44d280b2768e69f08a34fb71ebcaf58ab289e7ded07170a3a5123fbc568747c1bd19658ca89617f3a6e3a668355f8598d35b8c9ceb32a41b13ebf4bd426e6f50bc5b647c5abc991052fa9b8cf6e32f6d2d8fe6be6c7270ad5a7372529579550121d38ba868a65d4ce861563dd2986d3743ff9be24c71e308d7920842069357f34149ea1c685efd104bb5d33545c169e1dcf82e043bf48c72b5da09adff405ebf61e22c2bd5646beef3bd59b04908ca8d157d52844b48110b0d684a288753f214805df9619b0887e9ea3ae0f0b56ec9fd104ba0442eb482da78270cfd3bfcc65a298d5c3afa5ce0e7d52fcf0d025904dd8729025dc137b0d62f47d65d81c851a6d95d9f53f0fa80eaa307a028d3fc3dd6c8bcff24418ccb301fd6c77a0c90c057ad58e6be97ef0b68edf7d6bacf3e0de9209a1a62f4e1a3e72a1861e6de4d2a5cb076983ff8fad204890c531b6599b995c7ad9151d17d60cc0348d151d1a28cca1d96284886393a25e9aa59e7d253f54a1973519a955fcd479393bd74820345521d657a1086277fe9ea187de7b8cb370687184717c46ff6ceff33e008cbc6e4b9bbf2b89a433c1e77db763a9f32e8a01ebabb1064ef7c175f9ad257a22f258f00329dc20786a5314efc822c5fa758d7b4fe9e07511bac7e0a7133f4561362b57eb40e06b485a19d8ae700606a026418858e3f7a08c41ce202dc6c8039144737863543e87de39a7bac6d28b2093507903a0b139b1653e9c5dfd996660fd100d99d357ad8388f797eca09c7f88dc693d343e4832a79163ef078d0931abad5c0b00bb093d4a200a167585704436d5da0491c18928841501502d56b72413094cfe22e9da35e1880022702e08de16839e6fed3dcc0b1168493b91bd86a85c9fcddd855761727c8a636160edd641b56a601c1d004f22c42a54815f3a1101cd0e729106ead29b856707e621b3a9f699804f0c89c889953b281dba0d1741c4fcaf944e11b61e63db06699269d6cd1cd28768633e60596db6ffdfceb8cf9b77d41856cd185b5958dff855b67f39c2a37aa1f5dcc1b656a62afe034f304b51f94f3847ce73e53aefdaf304ab1fc724e6bac7529dec5afefbc800d2fb054a390befba4ce18cfb2ef5c75cac8f856fbf88ebadbfdceaaabd4a6a3fbb17d72baa8090b464ba60dd6902a404e65d676ad00e0447d819e2be19d7e8dad26150525a06a0f8a04a6b7c2e116e8884ee923f471569bec3af4210115e090026c80b84437792ea12fe29f5f08d16ff74d6defa5f372f3737054557ca79d0531185d17f990803b210fe26851cec60832841ce3c690ac4f9c7c53ea88d173a2b8ff53a47164af35b16b6ef25b7a003d93bae123d64443223c686a95903cba6cbddc5cc702c277110591560307f479b1d1a32bb0c9170ef23179ab75439ef834b164c4a3e71c9d71854e65e99a3c85c9489593508a76815b14bdf8a7da4bcd64eec94baa08da4dfef88be94d92b46e8e0a7d3e9c60a598bc200ed34fea73b8fbca9957de4006b07e8625907fc6e12d917f745f0b5c7d1e22dac1defa13a89195dcd0987c097ad25c919239c28092c3078d0e355006ea8c8f8ef617e79570655e847d76e148eaacd75c0906ad5b783d3e0fff3636fcb6504f508ea7b82145096461c958fa71f2560aa4b6fab13a78081007a8e6fb42f634078f08c1985310c978b04dcfa0105df593c0cdb8b42af2ad0e59cdc0f254a711f0ebe9a15308a5bc26846c0b2db2468b54e27846870743c22918008fb2fe0643789b461058b2c043186e24e777685b218f9150c6e962914780718306a47a7f0622762d47b1c20ccf1386adef216ca3b0efc12902f7ae6bb851cd3acb66bdd538eab75b3061232f7771c7c0e3feed3002f03d49df8c8d3b8f0714ae5a4317e44621f3d775703df6cfeb0865f1d81a8bc6eab1a8e17e41148bd336c073379a2043ab60cbc138dcc1b9890a2a8f148c156fff54d9ebbd20cc0db6804a99af16d226eda1b67bb106a7afaadedbaac017405d927bc1bd1e0927d4b80387554843852fb7e9d8504e2dd3e30794d3cb117c914f97b2e0bf850115a8fe67383207ca6bdb9b615a0146cebd20b6f3ffa016b0f7789350ce0c407012dd45eac9f456d4ba8e68497e17e17d1288ddc8a501c52b62a2849906b0dd84fff8e73959c39a197e7042d3870b846e056498237d5227bd2bcb6c31f7f460070e5195f31263b8348c209b497fee87ff259691f38516a8d9d0b26a88bcb0e937530d6b7c526d8457208f586958dcbbff089d30c39e13890c23def6f82009ce4685ba4dbf306a62e56cd3381ae14a66282f0816cd57f7e53965073f858bf7bd898cfd29215c4f19d6454026566f0b25d0c75e9aceac85c1daba9996a708c211a28f23a6b2962327edff83aec9df61225cb6248ffc1dc8c394444afb8b25283bc121b69c09d4e0c5838b588fb7fa1ff8e0bdd641451135951430fe6429e4005dfd8be2e18ed985d6fbc9b2759504d1c54614bcef1bd44c1ae4b556adbfc026b22575b35fba80ba56a49b96ae09031247e987f06056ecd3020efd28956757459f5168c5843d86f02e5648423b5bb61987a9d9229c77c0ec9b968cb90825c42a679076bcb84b1a2b7d77820eb1568f837852b511fe2c72f4eb7cb06a031d88366d610860a6ff544e1ffaf9469443f78b5dbd7ca90b81e9ba714aed374de0a682782ee8c7c995270b3338306b7ddf249122c36e2fc5b50054ef9440be7d56803eaf291f126527f3c15155219021a1509c59a2e5ade4f16ede6653d1f96c46a41c8064f99a4608940c1b3505c9caa59faf1384fb6e625d3526f254dc824cd6d12d60f4cdfe6188a8f3baa70c204dc136e9273a433fe9c4c3228df4059d9b2c5342b6d2158c103f80410ac69de72745900a1ce7b405e940f076d1a3c79cf0ef5c0487abc3e09a53801ca3b9826f60229e3db77af2cf7ff96d6659f799ecb1ae4730fc800a6de542022f4ffb85c17bf5e49b9016cafab39911754fd093e1d53e3af7574b57353df1b22a9d82057067e82cb043a434877a201c45d915c5802a48cf2023b621b1602b4905a4d139473d23ea93e56f8f7faa8a6765f0964848144464384e8785801d8724eea1f438a67d462531196749ce9bfdb8271f01e8a197ec9f3d5018109a7934a1f96a66bf0ac94fb6fa37d160280b0dc08243fe533d05ef93fd8140242765ca3824ecd2ff2e35ff6d64160e4a64020a21ae6e2a4e5f4fe231f2d221f69db3d5c327777ce7363fa9fbef01da01723cb77c462471c0499d85c98a8a2279ab3d1da223168aa624388948817b70061060d339452452ea051695cac7be79d7a85b662b1b788d1a130d5078c32622a6503c284ac0b90d5a6aba42cdf230ab44917bb4258704d16e0ac85e30efaec82b8e4cbd654db059b959cf5e1d9b6d237172a5460c908d0a3734fc0e0108782be6cfd58b75b6bfef91e006ff2b035bbf52acbdec3d6856d8fe0ea8038818a0ba89ed62449fe58f543355c37f15d8591a8fd8f38ae971e08a69e099a35e6b7d607ccf4ef300793cb1b8e5fb32f004a404b702f3b8495a01d113a1bb8327e8d56836fa91b02e1e92063fe258bbc71a73b02889f902e32b223ad1fe4e4453b2c4916551473dea9843ae59e364134de0adcaa58920fbcf3137774b8c62aa315a850e2b125bc031f86241aa4f47efcd5a8cf126a5bccc576c7041e635bad847d72ef5c4be36a5e8e266a18b5b34179acb4c95e01f9390fbccab87e1f8346d041ed0c3ecc5f27bedc55140b0c97e6a15edf896d78b2374e320200a47da0a9aee3b66e03ec8ba78bc585b85b7aa5be68de144d2dc31dc79e199e21642e1ddc9e3de34c60544b136f7e3c5c2661339ad8ee6e204b512cfacb5b6aae5c1880aa2e3d47f6bff1839d5ce1098444af69b3017d6c5a0a289916173c34595f89b32bee3c5c8c20ecf369e95ae6437dac7b09719284bbeb91fa12dd1901335f3647d67cc68da251cad0d2f06bd2d37fabe72acd0f8ce1e74aabd225e34b3fe50c8745b08ade0fa2afebb01aae882831d182e7670d39993f4e00101d84fd35b1ad15c3ff45324dce23761c67da76dc76bb99e570bb4e731b477d9c8c0d73b6e84a5a7a8b4a2dbf23715c50ee6226e3e931e32071451d49245b01eafd713effd6760c8746777b9e15bd23b9d7712e51bf5a54f0630621aa830206b46d81d543ec9eca824520453abcf635537ece9663e5f4fe3e82515cd52e9f12ac1205943c2992cd77097a895cf815806b80e9011894087b1502cc3078793ed5806bc54cb61b0113b198f2f1d5f6ff87b7a283e308999be6319b63128dbb8e56b3f7ec6b54e25c8e1c7186923c5bfc0c36f36afcb4198d79b366fc5b957e365dfc4fb03d8fb26ce43651f57ecef5e38b388ac7992fb6176d90bdb33f461a0b27bc9268fa3103137750c6ed4a76b2428912193e4897f269703fea5ebf7a3cb05be0bdc444a5a3937a9adfcb01149790e9c3314610e94f11406a748848be652cf1cb46c1e67452642076684999233871b6cfdc69ba02d24ba3366538a9a44cc052f50e9e825b6457ae7586a5f554c1275cef77b0fab5a0ebe26eae47ded3099c8562aaf56a78b78db4f231caf74ace5317833be84d2aa16eccfa1749328d2e73eafb4f815d6490c3dee3d5d8c37e87321ad9045587fa1eec21f43d3f9488400ac39eb5803921671a6e224c1e67c7b3759f61ec257917bf61f8e643e85fa05e199dcf1f76a043fdda4d19068c4326cc71b464d667d752143964bee6af13114fd04690b3a5d572e3a209565559698a0a745adc3a327f5b4de68d39184c0fbe331d0800b406061199a31d95fb11699a41a7d43a256ea8b499b9015574b3944c48008a9799186dac7a6b2f905b288463231d38112e94508ad68cd76e355482d2409b1141604c92995afad1c0bda95e07b0a97d30bcf61371a01b8042de20287f2cb91628bf2e6c3a3c3a4e15c2d6c9acddb05d26460baf0c9e68daf4c29027a63df9b6f8d80cda300f4450255427c2d26785bef675e1fbae1971b0518617da8c0008e3d7e47f59122f9adba2fa2973819e9e44300cf5b9d28636a42bf26202cffe9026410b326a0bc8dcb4c07ae1bf5e329b7264860f55dea096b0272387ab996f9f2da0b305ee727417574f50630ac448fde7659f71d6284070de4d261c4174e7b25d390f77a040b04f0904df12e02692c8cacc0457e716a4a4d6299a3b991806de68ccec0206435309b6c326e6683b22c52dfb8149608e043f6e9b4cf5a6a1876a732ffc58a615208d17a3bf3dee7b5671951610ee50aa1041e2f2c325771a8013dd2559724452b59d7f3411b1668d5dd8b73587909ec5332f8a4bf57d3bfc19ebb663b7044c50bd5f32b82798c664323be378edadf27858e5c47ed5e76b276bd259332d2bf641495b189b9bd0cc56a691da8d549af903fe3882070adb5437e63f6e1308e9c0b6070a4f73af4e98a7018cca05c0ec7bceb565d281f832832daa84c2d4b4943bbd02b6d844ddb8e96a0c357bd8d7f1f4df515080edfafd04f17c4ec37f5581e5c6b791f3803ab88eb0ed816fb179b14be0e290c2c7a0e85c842c831693fc4024167900da8ca059f625f15f1373dbe9370b2d3605a4648c449d4084b8e17ccb5538f90be20f85a7c89c9c7c7aa4465bc52d9e223fdefb62a22e16e3378d8dc7fbee462c2fe7324137e9468717d996b254054c9cc90ac46cba1ce9b01909e9b5c652466bcf1bfa623cd10d7d666714939cbaedd05bca1ae39d2d8b871ee510191eea2df5c595bbf5e1019adfe840700205e925a3f58f931e5ea9f44240cb427015c0d44e07d27a0c457223843603980f8d12e86b2f8b51a638ec324ae7c1cc664fdff8280a2a5a3b55e26779fe86a3dc42f3d0752ea214ca60202e387d17fe0c8d09f2f0f1556e138d7ebeb27e2e4d6e7316a983e2fbb2734ba4fa081271d3db566dfb9fa5c8199fe4fa172e4ccfa1eb68d101882f5907041609b25b0d35dd23b0358cd405c5bdc04be6a5f83e0b93a7fe510893aa12a848cf7f7c57fb60501fb97a39a0aed4d88cb2dc00070103817f48ad95602e655e4d0d44a415672b3bdfb3c3fbf3eeeabbf5bf78f345cd9538a7c0ceb26fdeb1f208e125dba6005c58ed36f20464a9f73ae0717a3d8d3819fca385e4af6f80806ac0f044bbc808a05c57fe49c4adc3de860231424bce12046c876dcf745a6abc0e9c03a087dadda837a58ed7a214695beb999860cab8e6082169c7f641b350e6438d50458d9a39013b938ab394adc03b79b8ef97702059e64c16714042009c640968063970e3fb85cad2ff6f345ac8e6d0eb47ca246b5df934492cc85a57803530b2ef766d9f416358e891537c010ed9e96e8ae87b415b7c62dcd2f598625a7a36820edb43dc355285587562bad08aa1154f175f95aa0b12a32f46f971dc1dfe00de101e405ffbb390adc1f69150c960bb7572917b30b73f5f6f18d34c810fed12d3622c69300d91ef8bd41697e8e76d9beffbf15222edcb922d639ebd144712d6ae7274d67a61bbe2ea258637845c7c17e04ee31219eadbc8a283c79a8e15b259e63cfe9d8c1f58639e819c2e9d0df69fd2cae6739d8674919b656a734d15fb42928507cc09a6e5550fdeca4426cc9852be7f3b09e3f36137557bcb658cfbee7bb5c1b39a241e572c7693d6daf0819d15346acce02c85ab23d256bea97feef9e995f61aba53ad9fccd54440b374b00a1a8562e0f0a3046435c1734fc71409eba6d8398205362acff8f5b943e69678f21068f72756666322c5edfdaa6b704e517493512b524e741884dd1c21bdb07968f6ff9930e8b613c0ea557b126064de20e87cbca39941ad89cda6d0210e43db655518cb6ae4704909bdbaa23117aaa824d586cfb3f950ec05b65876a6e47c2ba9dfe202289a22a31c81189d1e15b74c9fd0c7d7b63fe33b6e646f6bc982e7aa3b4476fdf5bc35b3c5bc2ad94b3da90cc2b7c661520562daf0bc1671e77ad86b4184d97aa7504da786cdcecdf1609a780d24558cd02874c3100b0316f0082086008c3b2f24b82b828018aa3c0fdf971e298a5e93a7ca27b1189ff20a638489a4d1b3484a663e28d000f9b3050d5f38447ace7c9caf50c87019d3604fa1f13a0a1c6282cbf527f1f9b81e99e1144f2e979afc011d5818d42f20ec009beac7e6dff00d0d02b37c42fdbe51c626532974965629bb524dba0e145362c9e708a0828b9d9e1beda8b7974c2200720d1f2dc0d79b9635ff58484ea92d3dfe12635a5b1db73ae37097472ed0ec97a7dfd404e50d5e30fb01faccb1945e5c72104e4f5ec486a13ef94bd4af46464ab064ca6790b561460b77d491666c16fd6dde829725bde6cede895dd3a6d2d89678eb61d6745f6caee4bbc79da0d82bce4a40c2c1f848bf8cd6439ebe552907694210a6ce2a90345edc060bf5305589e7a1268f85afadc07a74e39d13ed806c1c980693ed2232d226991cff7ac555f20fde22da84f24c095b8a8a4a8ebf0420adf1213bb8e53a3c2f4c316503b8f812545e5d98df522ce7370f2db04f56f9780f5359f80be1f5b8e5bf34b5d873e3e201318f2d44bd71ae04466663be46252129341bcd61223456440c269a3c652da4953ee33762e2622c9eb3c22ebab14918f46a20be55d635c5f8c32edc37b4f0ef3cf55ed3da210c66190974548e81510c247afde322072b9e3bc4578cad29d88fae32b6dbb495e2ef9b728bffce48a83758e94b3ea5ec800c71d1c3e8cc67948587aa764a63f784198d90cd473be8bc3dccbc79b50a5fcf174d5f209ad48192e5ff1d775fb7ab1df158fa8c2d610a04c0e8e46ee37b62b367e685b9d5539552516cc1ea13d3cd0fd1739f50cea2ec82724707ea85b8fb5256e8d26a768d912f3ad3b655317b2fd8673119446204893c8d10ab106a40a417ff488fb06288ee9a6b4ef1914eb1630642a8080bd9daf0fd4c3635aa816cf05bad3ee3fbe763799ce3338ba334457bf6b6a224d7d2c4f87a7233e279cac253b134746b6d6f3f5862fdd88ed7ef10797d5e0b63271d9ee2f008117919494fb8c63e18038270b1e579a256008ba67e633dc9f884b1d53cd66cd42ef8040c35669d9c46eda6e76183059de0114ad4d6922e26f471cc30b64e7728d7ac9d9d9849efd0f3b26d372216b7f7381d1de57f492f7b05c69a286d362043f64e24baec47dcc29c34f7f33c06f75b1425f4b2b11086816b27bbabed9549960afa1ea8d12bba2cf2f7740bc56b40631142b3be7d4fccf21ff042b09d2d7601cba8d4539d3f3cf6c14b6ef9a7267f6f13656a09e3f1a711d8e77a7efb36cf18c438fc41380a150188df80721a709b87e6043d0dad2be5a10d17a4afcccf9637d670c6684929bbeba0a636cc02ee4254b479f5de3138ff88d67e3cbb902a50b3d2d4e59a2098dbb574377cd4cdb491aa6527128ca02a0170b30a8ec8e01fefd4ee48e7211391cffa43ce186186844d293c3394ce32cfe887270ba94f228fd4b09d76b0c2e8df3a17f27186c069fea0998c6353ff2a174090f20722d16f3effa0d7be0eb6fb47b0aa83dbe191a1d4d589a27fa2e682df24ac4dc6473acc2ba9ea871eb2f4188ecc609b5c609a6f1235dcde88c30158cf7d665d2bb67107b56eb456ae9d89478896804320901fe6c1782ca0082d8c12bb13fef0186fd9ad4007c3ad3ff3a5911d7dbe23a24db07992d77f2d00f5d136e555962a25ec9a7454a1d0a2b6179ac504f8688d9214a3fa0b017370d677b55dd8df9a995ac103c53ced2654854401d10b423a65dc9a62cfcff5852e2b96521e6f4219a861215552840ec9371b8d5d5620df9eaa276216c72a52877920e19edab9a9ca86cda80ee68654c5166e35bd14558c2d819edb370481e1755b5f1489972efd8880d229991d41de9c08a0f16945ae9a18630a9c289fdd38767dca532788a2f4a8b747ce000d641d49811823d6d6ab1c1a99ff6d6a9078248e15411b2741d85fc4d96fe660483ad286cd4a4a4c454160149fc5950deb97a3e71f94814326be10db23dfba2f28b6f23ce1ae6dfd8be4e592171a36620fb4f764a64d25f33d5676656aaf4397f42abbaebe2c314989697d293b0043c9040033f589a639751fc10e6c52a30fd5c430d1b980c882e212ec08cc884809fe54d9cf784102c6494fffa04d94d679ec5668821f6358378a65f4c2a618333769b80ab0b6773110e67d3dbd7dcd1992b9d68fb2933ce18e182af519eddc322a38baacfd56cb5a20a7aff3b08b1a7ac8255df02d5b098b1a666ba08891196e4148792b672795520a67c1b64554f07336310e022c4cd25fa8b91a67884c64edd3ec5682d407bc509d2545c351ce4dbcd75eba0db830c74dd3f6cc62da9af59514ea4ce6d9b7a53c02a60800c0503f2e15e81978d8d44d76e0939d6cbb0f729cf98d195a07b7ce53349076c73e8ade0af187ab1fe73ff4790271814d0e2ba76e46e0ef956092fd22a038f7e659239f41d0fd5859b76be498f84bbb7b8009b3b21a5e64b19e221710c529a162d81666ebe8588e69fb40bf277c87e1ae3014893cdafaa0551d04b285dffa1802470ad3830e3d07dd6732747ec666eae59fac78fa8a29a6e4eb7c006d07dd9b41a982d9b1c6b302637b7955070031c5e171e97d3814c886628d167420ee5465bf4c52c85eb002f441e258c7518c5dc39d8de1671081335b9aecedf74141968b6c38cd39e2d1ccb46484911c4cc5c7e9e4aceed48dcdb1ec3c21cc783bc040eefc7b4e77d5c51cda2f24d0fd491447669378469d1162615d762e9ea2a81cbdc0319850a565fa3616d27a57322c7587342908dc6da12b5f54026bfd6f3183c82d117198621a94e6a4e525228d6a2a4535b80f6c4c645d9381daca64d760005b31c2dec4e1731ce11dd71320827bbc6389b6a28bdd09446db49b3af1aac15fff8ac2f08281e0cd720bc3b2e38376ee01fd37758ddd9ea74014298a2b7fe086c9981c2999440c67e69be62ec000287515ad953d1deb1d72746f4294f1df785c041d6c9f21ec1242d019d92a79f5dc8ac575867b1a61f1503e3525e9df015e7adc094087b1118c189036bd0e7079801637c11409d4e53dc0880f9d44bb851e19d7047f05ce4f71341af43db4e53eac1e664511560b0cc887a14d79e273124e4e5431c50daabdf506d44acf5ddc4f4365228d3af6d3c20dee20f583c68e4d91beec6c48c1df3cb843cfbb322a6f375e4ac09fff92dd3095490f4d04ccbf61ba92d68800dff32f424a949ad5129987a4606297b1fa6de7d211956eb6d45c5c6f9d171710a45ac5ffa00afbd0e4adb9cbd5e58a343d76e9c3d0fe031ec36fb9af08a5d7c8145e9ca54df2d69ef152f3eeb4924626044030e45b06a374cd54c79e041b7e84d942e71d8b451aa739683c2a817cd8ea83a5e717a1845524104bf958ef65e807f9052de41e7060801b7d52a94f0ee04130f9abf12fb012657655bc2bae979d2dd009893fb195a8e88507e2d3cb8d3190741e125c3f82174d1d38b91adfabab0812721209b9d107c7f441082df0cf8c4b8632bf66dc18ab0a46df041a2ef9c55896a4072a1fc8323e45c52df25aec0aac9c520056460ab0c370d8594a9ca9182e3c0d9725199fc439f361e2ea8f4adcaaeaa81f7c4aaf25891fef0c760ebe06c99ef8342b865ecab5132cbea6cad177bee8cb8027db38158546c5b4a7c3960c7a503671d2bf72982814cb152dfeba15b10dcddcb3d348ea0d2aeec880ae16c067f68fbed4dd5b227de1e719756316fa432f91dd170c13d87b81a5cfac5cc5ca4c5e79e312348ec49d1e5bc843a21cbd4e1b6f06732123b922cb8a234904b459788bf5626e1bea6315e556386484231a8d3ce1de1e4e190a0d9754c385be082c51a65034d6ba19ed21a105bca423c2d0e009af1cb7a711d5f847ba4f5639ffad2c6e95067abe0bcae81a27c3b79c66c5924210ca6aa8cc9e4d432ae25e6d316ef12dbd78bb891ee838c814e1eaff065e1598289e96be27ded9961aad0bec02d6496756f2f6071c3d7b6c6a803be07da37ca09bad0a01d450d360cff7c713e91c06a4c4644d36c5f5db58f6e657974e7309b547c0711e4da73e527d9500f1a69e0b3c96e14359a39ce1148700e9e9882ed4f2ec6eb0686f5c0187128c852b604edd002cbf71d3e13081756c665f0f91e7cdae2aa9c53fbc8a1b68c8f9953d433c5f4675d35a6b1f12b95c268862a26d9460383a499e5ef3069d884c099e8f3f853fc268dc2560904e1321043a634472d689d9967feb7fae2dfb83ab2c54d192e8a5a9463d8dcf4acae9fc8ee2537322163c83cf08c5d4f2b9239f49dd7b7cd9efcc60f60db0761172e88f85a724881708b84129c1306cdcc41ef1cc44633f79f6d95305a3d57a73db3c80e5622423fce6727b3281bc0a5c4d90b42e5f77f5a1af859e4d7ee11b0f1b39872b7da86595181569b76569431e82c6e7d727051eb9bbd41e951ddf7f8e94652d6aa058f0243834152c0cd41e533dd4c2577ecadcadac8862d3f09e603836ff78a33dfc6412e55d895ea7c093ba7be1965941404a0106c4270ef9c8a0e1d8bc69e1b41b9e76fd8480ff87b3f5b0f8aae9894ff56380c68eb0ba2ad6b0858f3fc8c4756a86c8e42407a5254d82af82c768a51482320f87c8be3b7e104ea58703c4f989d8f722d73b627e98fa82713fa3f313712380b4036f8b5c1c83105ce8510558d108019d3ae7d4142804112f44bf920c9027412586558438587df40399b06c46aff7f9e8006cd1fef5b4b0b110917966b8740e02cdc3ba466f9b4e854bf51db3ce5aa99a61c35ac578890d67bfdb5ce64b824b0cb42dbb54bde47be20656055ea3a7a9c60338691b6b869d3c9d52901498fdeab7eb08df0c8f08c116572048deb9e9b71326adc3ddf0152c06f6211f3dc0d97e00570846247c78a01662f22feadd831da4d529d83a48bbdc20b0143011b588b1da6465a6f7a588c49d63f471af6b8c154126af8cd3e424df5affaec33a4cc32ef53009dbcd1013ed73fe4048fb6ea251d711e06a0379824bed104557918c90566437b0c4f85546219cdbc0e3402713bb90dd5d7a2e62d30b7a854779a74da269cf0c3951f5f2772428d37deb44c50797ac159bfee1174cec664b73026be37b2bed9e1b339df2575406432b957e426f5eeda5538d28ec2d5220b25c9f06f764358d1293aaeef851cebe8be503a57a19d5117ae080c8b962185d05ca3413c3ded5ed67247c9b64dee12196f33056977eb18c5ab325eaee15c660798cb949f7cb8768c4764a5ecf98245c544a19eab2681d8b120731aa3c8ea175db70030275068ed4df8a26c6211ee68aa86c7230cb9b03f553b4b57ac157e87850a158a592d968b7472b06e7b6548b841c24169b6d8085bc3840c2e6f048ee02342cf9328a17c283b5d8cfc893f940b9b12b4e674bdcb5668ccf9c8238847ca3ae65cfa8272c98144504c64c43ec684d0272d164e60c851911b4e78d100abddc13cd7113bfdb64b6ba7876de4414d57483ab41af0c5079774995970bffe2e7f197b3001e0e794772c32c8894c007f6ef8a8db80008e492082cafd31092a23b3c70c6bf1198260aae24b0000dd58784e81ebefc10aea5451b1dcd91e8fd345d181eb94ad24a98018f8021700911ec5bec851bf8f5362f2a915aae25795cd80d7c5e85ce4c51e82cb76f72006ba487fc3cbb5790f457e724f7e605f0b6fbdc189b759347abe52becae47cade498c42d9f8c44332a3f08bf05d89cd30cea525599a796522a1ab841bb5e7f0fc6cfaacf8b7c5d9b79f24b6aa1bb4f090d3808fdf0fa2247dd14ec97cfbfcfd2f7697126c6a84a2f20782324ba694bc595c760ac5d066f9966d2911a0b9f5142182570dec06590ab8f9d1de44d929c287c73228865b1ecbee1d8c662cbeda52bb05ff11c738b421e1048bd6a25367882753c71ef9de759504c2c16d9c4f470aa678ab7e86e98262fd6a2f32ab6f599d9e08968a00302f6b35d18778533a82ebdcb5bf43d71c95a67423077046ddc32d850949cee9c03cf06860e75c6bd3b0ca5fc2c65c031b1c50ee1e3885f37d48ad988b164853528970f3db4565a150dd5d7dcbf8541a934b89ae5b06b92af86d8783ff474ef9c13b8d4684e5a37a6675823b801d346341ad471c6ccb936eb6506eb7e71a860b3a8dc76efa6d5db1ab5e404920cf1243058abe211f94c123238d05f5a838c72bb2c5bbdbb72c4201c0e0eb9b35038b9e989fead6ba1b9c911768fab0aa180eece4a4aba7da92820eb4d6af3bd5e2eaf2efaffa5abf2485fb272c80c09e1d6ee0451b6c0545df4ee42d62b6f1eeaccdd045654360d3d27fa00f356fb09c5237e138f6113e9eeff1c196c2ae203196a07a834b75802c921f43e207f8665c82dd09ab42b82f0c49f80ad20ed44d12700ceccf67d9b9b5f6fcfcccac904d8ba6205012fb2c7940800972bc4acd0c831e0889fc2eec05141c284a63775c552526bf67ede0f86a31fc24caa7336e2a594c92f3cb37d91d7f75bd487524b3a9be344adb076d177a5b4175f10a12fac385a29197b47dcb29df6caab1947d82709e8aa8a255088f1b4486be9c1803bcfdf5082582ab4e7c76d16d8666e9e569d6a35a8985ce20d8f7042a414823ea7e21ce871fd5e30c1f121627e966d609b487ba3bd5d28ad94804f10f7d590fb3b1598bb3f2ab1950bab7f41a4abd55024cba9133387f2042ab26a074b40b9d529d8086de5468f4d22066dc5efa59072b8460ec025179912f7b7edb7c84a8ad4a4b79bad3f8fd83fe840c70f8bc15aa23087491671993d069478c89d8183123e2c7016d7c39de1dff9209f889172f0ae78a1f963190b4e66452ba893dd9b44be7777c536dcc8681d7b69238874dd15a478d0644e87e7be9a19dbb89dd850a8eecdb86f39addffca7418b445ead342cd34b4864e3b84adbba5178e7de7bd9160d20cd320dfc361a621670998629674632679ead157d8df8f91e520a6030180389b758321f02e96545d4f5f2a48379460edfabe1e039ca84671923646f360530eb75043bc472da4182044e7a0b35eb520f777477167be08fe6393cc684a4b159c60f5e3e8db8be29653f8440a65241eb7e3d073ac88b4a93426ed33cc3bc66d052416a5149a09b17ec49d7b006ebeb8954fa93e57480da97cb4c9e705d52d51e43c9212b9f9e014cf5bbe36d4ad22125a1a64d44b53cdf262ec965f75096cf14e4992a259e9f067c9d75a2669a28ad9d16511166f94bbb295a14dfcee244abfbab1827d723e435c2659528fd8a56f4885b67ed98d1342a1e5062d942b84189b6ecc992877f77f299282690dde287be9572c4a1f4f904340cc795148af4de37ab73cfa181e83f6adc53b68dc140e78d118a287bb03261e36b854b02b72c40c76cf7ca08e9dc23a99e6b9156d495340e38567854467eafa6c45d058516c9349d3ff013a23dcd0f2adf54993bb22bb3ada54c752e77503f14908299c29f22ef954becd77c39e40f91c985b73854bdb62345109d40ceaf430c409aa5ed41d082343432bda9f19c02fe2b15591f3501cd2deab30960820bac495f78a280f6f04b1fc6601fb3e9368d681fab9e72217ec62c95964bada63f0317e3108816276f00d4f7c088a94d9d0e4511cde4728b1a428bd9c3e598f39ac1da919530ec7050114e6a8a904da4dc4b2a6be8465532760b4500d2f24046d563396e4d4da6575420c4ad3b1c0d6fbf241d31ee8b34e5b31173fc5f9d9b87f2037f82a7a3e5d07d02962cdf72f68abc752bb2044fc376676a1107221d24e70a6fc2558b7f0f644ee99c30310168959160e88526cb01e2101edde4e1a7d471b803105ea92ac9941bc2928c4ef31b2e0c8bd524c0154ab3cc112f070999114c60c43dd1e3534c8680fe72d3ee61a1fe3fb9a4e1eeb4708278fb4ac09eb00c46e51d6309b55a78d4ffe2ce08beeb0f673afbbfe6c79f91f03fca4bedfa79867b77420c711169d42f76ce95248908b2b7d75a6b3538d0ff52e0be724c1827dcdda4e853724a21c67e9a6619f712e0c89ac887011773dd5263b3aae40340cec04e267ed3110a5700f5b3068fa451240cd83380f35c67e927535da2cd790b0760d41676b73fb74b9904e84b978282cf16797acf4b3e707fb0c91463c153a6b9c15ac01bfea94c2fcfa915239e6d61660613bd6943bf460ffc6807f78b9962a68eb2f2703ab60bf748aa94ad53524cd76a062e782e17adb08c542890131908c37dc761ccbe26fdd931173291129061dc82ce72b1428bb7d27d713a42590e24b12a5b24de8648f9b757c1301038e093c4d633e2655c70a62ddd7aaee004409481a646fee4a07f01262461f722f1c7e5e9213d1119c575a9263b128d6ab542598475f84b188f6ebea2c67342d2572d1eaeb9a8a3a1192fd60be1e3b619b5a5d31284b16c1df96f2335aa766ebd0253025ecf10affdbc333783c05fc72d94acc66995aab583526a7f01640749c5ff449ec91eb3c462abc14b5d8554bf7d711594e46a52219c3a98333168da9e4d72d0b8b01ebda5a1c862cabf3c361d7e1c68f678947ff961ea111cdba3a47b293c0aa1f3f380535e202bd744b9174fe44d3c26b15298a111917de069a586bd35f4f01b96db7366d1db740719fe2cf6f869346ea08d69f106624b6dbdccd580f1c547ef9d3f67b2b58652aefa7d467c615befa835b35494ede8cf1471a83948857cd1a297ee8477060cd94762a25643aabd722965e549a43e65e783994f5c621b7e4e5f969248357dddbaab55442f2ae4c1cc1cb601dc28c0f830196101b95d50e53910c69459e28b6dbee899c70a5927d626a6e98a5f6f45b5cf436c35ac06c36433ed9027581eac3d70c9c399050d826a0732399479c6b8c21e4d6232b508ab2561e6a8c32d3089a854d4f03440b9ed8bea05831a3aa2fd4a11c08bcb980eae98d979031c86ea0500f0570d39c79ed532b2c16b7cd7faf5a648b1d6438e4623c5455e172cf716abc9af2fcc06eb0f4995af1a26430d832efd030170d9d288422a44f286cd7f30de117cc17a1f6050a85755f6cdd491125ae7a236ecfc33293ca6906dc495aef080e3722e4e51db69f4434b6c7ab58a431eff2b08f05626f9f53adfba7319c8888cc6c29c821dadf6927db0d8c1528e14a118ae7e824414f757f4d05cfcc1ae0d14c9474a54615dd1b83a15540b3935cb2cf63c31ad80046303336dfd8c029d4796145e593f3be1908167d672217b977a85d61c272fc4f9f5b852d384bf84425c02ae46efcfc91355f7505f6f1e39c11ae53caf74b96cea99cec417cf85db704c8e98ffc2401cb532e8a51717ed62dc8046f7f47de29903f330cb0a78d2a2ae3dcb6d44e1989a22567055775487a0228c7104c832d6dcff0992a76e1de2dea54ade368b6bb9070c831b480a03b4ae03aa8a92805a30923a4a07c266a9d1d48d2f32cfd10bce09c13a3efb635496999d64246f382f07946e4ab130ce9d9c1245051ed259f461980b1440b0bb3be0f1a800f5f9ec1b8ee519bc26f0cd3e0a466d168db55f1242c8de5b6e29654a2905dc07d107e4079a03667b316643d08f5e8d7f04c6f3c71b6ec118c3e41947430c6192f7a63d5742b18ffb23862b508cddd78394446a58f7ab9c2ed4bf1f004ae83e9f80b0e49ed61874bfb5bd7f8f0b3deb83ab7f90dde1f7d3fb6651fdc436a4a0b1867f0196677bbcc66f14d56d5afe27af614e09d59effe3519d6784df7f1cff1cfd113899c7c1d1bc089cea6fb8d4b338d4dfe066de863bfd9e7cfab9756d2be7f95eebe89ca9a594520d56831b00e7f8af0e50fd974ff87c543f096075bcb53adee265c9c9aff16b715523a564a30302a279fa40aa9779ee58b283c1b4bd7faa8cad63b1d7bcb3787b21f465be46974495f222f3fef1e536c3b1f8b79ff9d3ccb3b88b61fb19560ca63fbde94f1c0bfbed538fe2580ad83ef52cac8b61fb5411ee58fa78aa3fcaec6040bd0cc7d23415c7d2683896d62d605da80e0828f540320f6402a20fb4fd894b0fb7820c9ee38fe22860f2a496e7782a2985d49ea790aa77b1a4f637f6524866cd186a12b44d92f0d730e95aab470f0d35fcf05516d73099424a21f5ce1a3109aafe292ebd5353fd6f4e4108505b6a9af6bb3e56ab23bb0f7bf8f26773dfc47e4fd28857d9bffdfc909b754ffd74a8c6cfec1a4b52c003a41e6ce857ddd76a8d11f046e886ece790900c3e4b01f2e1b3962584b59d100937c8da37c295657a21cf75ff86d4cf871c6b3b96a95340f6d80bc91efbfd1ba26c87fd0d51b64ee6e96bcf25d8d79e93d89dedb5672206c1f2a85e8b4255dcc6d1f5d6a43da784a2dea43d03f50e6b385e5b4d6b72a34961fdc7442b6d040e3e0ece5f048ee66fb8996771357f8353bdcd69046e5d2c1b1ab4d7bcd0a0a13a7e993a24daba361bb4dfa449250495a705b00bfbad3182ee6f2a2134eddba3aaf1b03adaef498593c6415bb780750101d13c7ca099f7d7fe7ff4ced69ef79cc75fd31e06e7493dd4bec5f2ac530703ed58a68e6512024d9f84e6e19b64ba2433efffe36210ac8655ed595bcd467b198e4f5035f842641e7649a26c9f047b99df3a21f4bd4b92ea581b7d8c636d1d4b01d9631fc3fc547783ff7cacbb218a10fff937c0ad7d7ad358487b95f635b497d19e46fb1aed6d70daba34af3dedb7eedbd3b4f788e8fef755839fbd0cfeae27d86b4f9d67beb6385a37844a897d2262eb5447e8bdbbdbddeddd108d6d7158f66e6c5fadd6c74a87bdc3bf5a7db16234b8cad5aad50c815efc9fa946864f40e0d04f40f6d73b3ea18d027cae43bcd904eff80990fdf55d6293c9e1a774370604433885f243df240e42354e61a5139065ed7b85cfddb209f0893061288cd20b1889029cb383a047d34d8d02f36242788cfe9c695ec06872ea20899584ead6fe125b6a7910c2185534c20ae16f186c16dc856ad01116d9452c043e8db969ceef8751e80aabc7a315d03501360edd8c42d462c623cee98f573077511bcb82c266142426b52430f37752aa5add38ce92557b2df0a048f55feafe5ac17ac71750d48f3661250a29acd0a1458a2eeaf71e0f527c4142181aeb5e9142a946dd2b55bcba6c3b24044b60208131069211105d96c008428a0db60885390ae345fae0bf418c089d79c89388448184422b91dea150240a76a704159bb06554df58dba6b9bbbbbbfba64989adab3564d909836075fcf985c4739c65b852ae5dadac42094dbdd0046593804279eac4fb3f6a4fa4774e3b935ddc12e9be15e6330b628944f5e1cfef449c471e2965894a340ccec340708ef3b09e124c44f5bfc105e54964897e12ca5196ea502413478e791f4e85cfcc3d179a7afa342aa68c708a637f94bb1386d29e13f90065ee5e72f204abe37209890495ea2e9fa8fe5056678608fac9ecdd938cb43f91de913d482103a5eada92eabf1f03e554e84afcae11f16ce27837442ad9d008ed07b9bb4f9e43eb4386c37e6ba1ee1b5575d3ce0c4f17e1547f212c8296b450bbfb4f4c4626a9ca30f6932bb22c2dd0aacb5afd3a69a67e9dd43ae09cfe65aebd589dfe16f36a6ff53e8dc4a5bd2cedf51113506cc0047c1d7169b24493e44b628cba288240b5e1cbfb2d33652720ab77ee54e7b3bb4fee6dd8c66d389b67eef704847b9fbe21c2e3789fb6e1a5cb942a4ee453a04861028a17eba3db584fe8f4292386f35042f9fd3f9a316a3fd14c0e9b4a3dd708837e3449153e4d127da649fa9c27e19d83531856e7786b57ef5c69756c48413f4804abac8f1bac8f0b70f5ef158f2fc12a0e219118f4f3a529b5bbf7695fda1ea7c6ef8e87537aa727563dcf025e592cf8cf9fdd11afce04c75a82e678ef372568c4a2c62b6a090f80cff1de679c8b69cfe35c8433285717d39e0ea784c8eb28f224e85d3a4f743ed6c17d3f55870e205b75b87565bfabc30f89a60e07b14c191d9fbd0ed7a123e3d7c1f9942de374bc0dd91bf10a24eb8a607548f63c7e4f2e64dd10fe5979e4e0f72507e2018150b21310e804022d814110a8bdf625f87231edb52fb1a238f744e7b73d2de0958ca0a4d3417716f41a6b9525aa02ac70755cc71ff1aaa3fbb82b82d51ccfa33be23547099d03a0f3292720ac25688ece99702895338342711e5fc2e9be99d37db346f7d1baa3fb5695848ec8899cc8219118076aaf9f0343e77f9088a877bcdff1cd100bcc028fe096dec9f873703b3a235e5dc767dcd68d49e0e6e3e8e098e3bac3b7eae8bccfb2ce888fd13bee15c1aaff11affe42fbd324f58eebf8790282f3f35404488e4f81ab0e8f777c0a5cbdf7e917582ccc21357e7a1c24da5104ad402c300b091c3c423a75ddcc8ea02ea573283339d0edbf5ee23858060747e020161c1ccc028fe00d0703d0bf3d08dd610f9074cfb95a6d1610426feeaf7b42dddd1eabb3efb9bbbb3bb7daeb02faf343b84167870ee1c464f41740a8028f0aa3c71290a0fef16184533677ff119650ff7dc064e639e7c3495738b567efcc6e7aafe4bdd971e86af882cdddbdc5c1eadd5cbb19ea1021842db07ce8515946d9c24f8db1fb60ada147e5875a7c9c1076dfbe74779f76c7a96bda9cfd49462aeefe081176f7ad2084f0a17bf7ff488650a07ea652f479c861843f218c3395da8a4205d9223fd2a53408218c8f42fda21e729fa9a22087fac915f19f1630d521a89fbfe1cce74cd3b2149c1f3bd47b314666ce344d3b6df053af71964aa5521042f827769fee98e309c8293e8afb5635facfa74f3bd830c6148a937fca4cd996695996650f3ff36afc19040163c68ca9903b99468547b84e54cba0e0fb539f91f8198929a43aba40b269650a2f957fdb13902ccb789be9671ca521cbb2cfbae959cc62f6dfc799a7794c3e0d37c3e5641dcb94bd4fea3df5a9d47fabfaefab4a3bfee99ea57e53dc4c7d0a48aa9bed699feabe9ff3d479f7ad6ae6e31bf741ad9b108312460821848eea298354dd4fed8effeef06fd190931e3f64387a927a1eea8871ad20da8af0877c0628eb5a96416dcc06582316b12d8a58672456d81d611610d0b1e2ffd4e83238a370c326f4cf5904e4f424053fc61863c45041688591fb68c560f711a9a86e08f6f0b713b7d5b9f7dadb2259b7683ae138374317a41ba59bda1c8c1df6dbca9b9eade977378dfff419cbbb15b61220ccd0e9874ea7a1d3d06968f7b5af937f84727ac9b113fef63c78f2dff8143b2b58b80825697bb18bf1e5a37e5ba6015faca038b6d2a307471845bd83fa8875b03d1fe745aadd3275dfdcba8f6addb7cabaefbdd6d7c3c305bd2b85b34d9fd8983163bca8f2a591c8023666cc98a42a53880f7f8f1c8155764362373b13d753cf6481f50e225a53d7c8092f395054173837a0292a869c8882074e4061e4841427a078ceaa565b84ddb0bb7777174ea1fc11a7b9bb7be3c0a9f2cc165537e76ed45c9d9e9387364946082536e1ccfcc6732fc30833a9f58d99d9dcc3c7e7bb973f31b9dca8d8f9f0fa8050e3cd07eeacf4591d3e0d61dba23beceeeeeeeec141c769cf7377779feedd1d9fd014c09d1b1adbc6f5d0513f969752b5b72febc79a6c454a9e4c5b9097895ab665dab699b424d92908949981ee30721014c2eda7c19330942788eb45cf366ea0c2776ce3fafa568312b3dc0ea3c466a66da6132a254fa64d4b5199a8655ba66d9b49cb646c647667684c3172da7f8b498b5b2fe6a8f101fb510f42639abd13d75b1febc3df447b47fb39b5f5e2a36ca82ea776a47a94356a406e35985c2bdd4e7440d58be4397de264242506d51f7af59c67e5a5c287d03b6ff579efc52aed4bdf0412c70e4b04aaf13fbed73bcec4161f5e31c698a28184372958c10152404685464d4851210400528ca2831a7fc608446a07721345118c89611866840ed00b2f320920fc0b21cf591530c13245d00b3a10328a720586bde005946c8915af48f0425575af5041858e2639d8a1036aaa7b858a1e7458a808b345961d7604218b0f57b46cf12920fc1b64a3db0e39c112315e62347901e10a32baec28824e2e3845502c0b0ed09919901003287294e1840e2d9c3c690209127c40675d23274c72888062758d9c085db13584ddfdb57737cfc6baae8e84eddd1dbdbba5d772f7eeee5ee1a8bbbbbbbbdddbdd677b7767eeeeefd07b3565e376984539258661927f6f7ea04cfbff25f438b39869b0a579ce33bf559fa747cb0a505700741523eddaf7a147d3894fa8e5687b914f51a6fd8d1ee8ee4a2eeeeebabbb77bde30f2e73ac0dd85b20474773746087b402fc618238d313a74083f092184d07bea76d12403c4ddd0cb863061b743092726a310134eb8ddc229c484136232a6012726a310326213ca88a511a58c981070ca28c48413a691069c424c382126631a7062320a41a3645b1cacdba17c69dc66446a9639845046c62633079839c6283138f422e28502af75187af40f234ac02a94ff6a22c3d11318e2901143432c5f4db6d486ddc7599af4effaafb2ecc9733e3d3d3f4f2af4ee8e177d603c1417057e3d99455586188a35a17f4b1676017c319173d24c1910e6186a02cb8b0ba433cc50f064c834ac172740bc31b364fe8da2628fbd3c01c1268f016a2401076aa4418dbb33801394589ea618431b74e1c1115c348d94787d592daa943fb9d0aff599867210802a93f0a1cad5ebf57a3581104208af28a2065bf4f00a011a492eb8a542082184b05bcdfc807ead75718b597583c3833b50bf1e70b770a972bb48b9624490521ab14532135572952294a8f261ef4cba7acfc88827557e8fcf0a308c604a952f030d5daa7c0a10f141958fa488335e6182a254f946239032244495cf477ca9728d90a0419546433f54c9453f54a130a9c27ebd5e2f2116c1077438451d4450397160ced9ea9646f403a6c45066d4834cc2cbbc824924013644183cc0253944108070389320f29c050a810b4a606122021786948c8860e2032e90e0b13e65d1ea160e152d41240051139322b49060470bb4b0808a162b24a880ceba57b458519dfcc0835b6120c5171233590ae8f77740772ce89dbfe91dc05240ea51cf825d0ca96e3d67fb7e560c5deb86e85ad30bf137fdc602578601f593932e2014e7798e179f392433a01cc4afa8fd02d6a5753744c13e861c434d188d719d5c2b44fb1f17d609e93f994c26d909d992d0eec7b54dce5d7c6229c05f7b07f807f0d785f8e10cc9557caa03d4efc6cad1529535a0419557ec7034a5ca193056f850032b7050a59c09431f474b962a1fca255a64b66b8ab4b4a00a332a5c2657b22c5d809044338b10e211564510100c4042a80a228482aa586208061c7154c50c983060e85545172360c00892260f584719a3dc2b3f90026ba42baad2a97be50747f47da83a17a42d7d94e5bdbbc6d24134f1ef7d49f5f7253ad0ef71fcbf9a40a9fa9f204b12eede6321dc5ace43c3b62dedf95404c8fc14b8622fb34f812b112cf256de82af89a2a795e9f5e20ebedaf30a8920d13c751f357519e755bcc8ad3816cfe2441116412221fe26def742cd424413a37215ffb3eef388daf3779a77acfba60c751e1aff1923a68c13ca04c74244142a9ddaf482a2caa89a6ff535b89aa5a1c6eecbde48aca86fae339befd3220441e76fea4ff1bbbbbb519d35973d2a4619971845890004da3f7f67688f7fc8fc6dcf34c3add00294e16890400d44ba9ef638e703f4e4e3a93fbd4f9fb814c7f22df529102c497dfcdebe4bfdfcddb4d4776fa9674e3d3c0149d1984040f33e3db7b5d75e888b344d4e3b75dd355435b17f7e0dae865371fdd9c71390d36f274e33714662d53606d11a3bb1a07da4e9788aa491d21e13fc2d16d509487794de486eb5c488da910afa3d0faf87bbeb5134d3a80fac0f67951750d0cf54dd43200597ba57c818aa01a86b24051337b05b3db752515854f937d42b6d1962c9480a23aa967d775f8fda3944a83575ffc45f7dc8d03ba6dfed64686f59e80a5767bbaf067f9fc64ebf2717b67b727aed7d1ac973f827dd9078bb2ff3fd39bd39ae0786eaba4ae770134d9127206d12837e4d5499a877aaf44eef8cd13b5f4f2b89e99d0f12557e72ea2edd7dfc7197ea12db3094407a418d1f6b7026aa7f3cb1b061288154a546d8537aa77b12f49c18eaff3594cadf75807a237552a784424ec55e1ac9959c07be9cc710d31e7f7b3d3f9aa705e85a210829d5f909fdbc16b8154c8054bdfbda4b0f6e99faf4e48887d5fb9c184a450b882d6aa52076231194f41da03b23f515cc7ca0df16f924807b557dd8bb7d8d91a5bab795a2ea5dc5bb266a0f28cb01f5207fb5e73922a0de847ea6128e68bb5011db0e31bab22565250a1259e0ec18909bd93df6f6a2951c56a9c6e701bb5fed807e3d35c6f789cf92b227fe0f2c7e02e26f8c3146b9adde89336812468ddf233636c2127dc529b61d120551108e82202508c9438ff5015b3dd6c7fc7d245e0fc0d81b1880d2605545dd6fc00918781866075833303d605dd6319bfeb3a81105bec1d9f5589d78020b389b131fc5c5162aa7da9cf8262ebee3cc005b55840d7929c308063f3c218aa206318b25a8482b4e20a59432ee30bba316c8e054850ca4f4f0c564115c513f8fc70fb6adae11152f8000b14e0c2a5b761c5159d7888a961d6450898111152a58c0ed8a0eb85851294195a96b44258827b61d92654b982661a6c42ffc36ecf32fcef7b5fdfddbe797923f49ec2ae0cd15d8d581459254cc8b78c59ce32a5064b3ad5c8122a6d5e9dfd599ed417eece14b96cc18f4295c7c1b9899bb21108b7fc46bec3e5f9cf6625b1cb844bf9f93d2cf6b0faaa2e47662179ff5d9a35e7ee4248d31a2663e8bd94cf6524bbd4f4738c3eac6aa06d27c8d0bf1258a66094af3ac8f9c05bcc67a83f5280e4636e2b79b9bb7e1b6ca1bbed141bd0df7fd541b1b1b978adb8a925c11d52f8a8f1889b9b497c45b548faa5145950ae553ea86e25436a050a877543744feac4ef3acc88aac48f337ba6d6fd5f1a0e970bae7cca01f1fc19f93d2d5eadff336e6930a2e040df151ef7cbda4091bc143f0790be42eeca4c25775df4f93aa7ab92d2704ea3c370fc3d02f478d5ff3db1ecbe6b77e4662653d7d3ea2f93929bde176cbeac05d9d9a8ef51f37398246bada3ceb371b6e45bfa036ff511554ddaa3dc8eaa84dc702ab5b1557c37a71e6c05009590f6f3ce4d23b360f9f937a67f5f0b94befd87858e3a1eae1b3d2167fc5dde88c7845d9c8b7516d3866715c6fa0b6dab05e1504f52a5567c43ba87750ac1851a8467d2fe91dd4431b1bab4f81ab0debc6a7c095f53e2dabea59dc0d0ec7b3e178ac6cd4e07a7c54dd8fa882f0551d1fb5076772a0341dfc196e06190ea73df8944b713db89e1f3e2bb420448669e2a3de59b8ed3184ae1612e1b5f1fb7e0afc027c668e0cbaef5d8f1ffcfedd11afdbf524a01ee1f57f38ddddfdc4a6226272dff5fce8a9fc3fd647aa4a77a6964ce8e3aca3687bfc2a1f2c969ed52a95b4645b9c1979aec43e05aeac2714fe9e820cb18057160bfdfdf4736450ee7aba1e1e8f16f7a3bd0470000677187aa77fb99618d4ffc3c1e99d7dff652f8173a61650ed0b6a02ba45f533a1f61f71eea6bdad05f47b6f2b1c5377570c47f81c6177c42b7746648d2f9f65c486c487cf2fb92df2294804d36060a112442da12e162a4e2a15a06a425d23a2312a6c1ea028f08d78758edd11afb033222b7ffc2ef033b3c45ee008a97b609bbdb3fb10426f3a970772ff300eddddc3b6cb03fdb7db5de82c25969bb78038babc775fac3598ea0db6f5411d42081d42082384d03b963783b1b1831a7f4bd9e8c231c6d81dcbbb1450b5bb5d1d6e252db14d4a39b1aeb7d8dce4ddc7a3ba2c0109ba0fdf2174251bdc18639c9ee3261b3ba0fb8fe3f19b33fefc9dbb1b318f99bbb73afc3e0de1dc186334ad8c11b6331a2b19ae8c74ee62bb302e779fa97ad2b638322efc85cbd0979c9379d1e51c6c232ca13b6df0ea786a7733191b8edc6020842ce572df43ec2106a1c619cfce210f107e2ba8a32e96a030ea56170b07803863b5288285280209e682082d588822b6fd5ab5a7eea07eab3a3d9fe6812ac460053af0e009a03126708151f9293311db3a8f0d31bc78b96e80c0882fafe93cb2630991d9cbff7169a9ff71c9fc8f8be67f5c35ffe3aaf13faef9b34b82752c21d8e9b1ff71cdff41fd8f8bfeb854fb356c1851fe1a6ee539fc2a8eeef044d0ef7b5a4bf46bade03960a8899301862754e328e039ccff61e8b7493169b328c5072332e87de2f8092f4c8a5c590f310a5cf98d1059254602d21d921a282863711e5633abe7f7cff95a9784d5affdba66c7ea2459c7ea0e06d38f8b9d393ee238299b016d281ed110d02b0aba566ab0b4c186d04d2f1db65486debb81516a5643affc9ca577160b1050e5e7a3de91a90dd43cdbd1625122665d4322a81f2b0135513f1653f9378d253542f7da801e1461dc8ae1a48c2297e4d6d5fc5bf9bb5bc21c14d4413816255dd4ee987d0ace82b0f44054651af0250b0ff50c0ab6c5f95e66c6b98309bc7081050f30ca1c044168629816b50cce6d5707a3b24b01bec669fe3fae2de3340e72dfaa623854c93d4b4896699cd669ffe3fa71f978111e33664c1a557ed45e58d5225c65f771b5c0ea21a6b49a13db814ac815597fcc3b19b95921376b1684ba452e4924a38922170ea73192f4162f9ab8706801b1f47245a1edb119564071e1604210907200c1745972e160021a2a20726d9ff0996074018d5c12f6419825170ebef3074e90a0b8e012683469cf034010526a810d9e3841113780f2526206563ad0250b145e04135b601973c5920e5828a103970cf8a00653ec808a2cbcf4106d0083194b5c714610b0e440a98bd59204144864f9c1103250e22e38092aa63842e30a125b22171fc8b2022856c045090a601091941031020f50114612537c11b7204207465d682941142330236af14c3063f12848dbde96b66186c24c552b2e44f533a9e8aaeb5ee1010ade7b0b18638c7d02321feeeeaf9b70eaded46d75cf0f9f04ac70f24e021414b926e8d7529240e7784703460535f9d7f261ee568f1eac052697940abfbdce1ef2c3771e96c7a548884108619775939ae4475f94e2d1e1872d55efd29e27ad8e63f11c7fe1ab3c0aaa5fe6a5ba6b9c07e8278fbcc8a33529750ecc450476777721dcdd5ddf2e637717eeeeaebb60dba43182ea1a899952dbc8aaf97f986dd854d8bac40775d59e505d715c65faf74457474afd6e6ee040d7888ba1faad6e5657be2c5502d4bd224650e542a8dad435423aa26ea98fffb73d0579827538c8c7bebb13e247f16fae5feded1b9980bf077dbfbaf68bc585eef7cbbbaf83fcd47efece61dbde767f987fd8f8c18eb009c00a271cc50baad4fe4c750b56b209800a0c0b6323931333a86dbb6967987677655e98843142e9bbb3777677a7bb7f3e31cf73d6dd3377775f775f2c8d6c17b6bb8a8e8938bed0ec0b9d15c7178a551c5fa8ac38bed058717ca1b0d23138bed0ae4c02ba8fe30be5ca38bed0adeceebebbebeebebbbb73dfdddd555445d30323f417eb8add5dc8ccdf6cd52b283fbbe68b81daa92f304a2c72bb0a4a2929f48ea6f6963bc696587cd875e43e19b9af3593545177991c380787517a09d59f84eacfcb9b038c92fbbcc6126ae43e126a845fa109665a7c0c54d8a19c90d25a9e6c5bad0abef67beaf8f57a3116a61d8d43e23944c2c8d8e470b13727be6b47daa4711916d8c78f2ea15c150413c17885602298ae104c04532318efb23d41762e29a58440f54cfb6cb54263b526943b37f14432f94155836a6212c61ee7c9f8f57aed0ecbc33f2c132d0b834918fd488a1f61711af8a8e9aa5f5bedd70868aa466b29351e68496986269f369573d3b46d297d4fa3147a804f27931697b0466e0619caf01ab9165680f247193d5a65b4e4a908570ad88048194a260e499fd08f9d180dbaae88cdcc9a4ce65f41a6d353315acd9642b23a9cc9d87039ad1e55cd4c268e4ecf312393b1e12adc22248f6466ddc464845a90ac4e67cc1c6c6f91206955a6cdb91dbd338e1fb9dd1cc813c9d4b46db58525d816e76b6e874836a7dfcb796e6523e34355f77fd63b24564ce80f3b4849925239a986667980a2c4efc07469b04a4e023424d540012f5e252704861964905c027c8a5a58e1478f165150e33ab0724531424408bb27cce66d0d15bb88cdcc9a4ca6c67936eafd6b9b89d7c7a6ea720daaeecfd9d3cae16c32550daa1acf962626233cd5a05abb5ee56c66b6cc52b0249692b4a37e2c25698714b4ea1d922c94b9b58aaa496da99a16aa1963db21465a2c0d61e88c2086f02ac3956a19ab14c64ffdf62ff053fb5fe88ead34f11c9ea2e441b4c7479ce44a47b052f5f8fb5e64a118858228aa22542fca82288b1b54676e17788743b09ee7ec0e2f65b258edf79f3530d7830a1affbb69f5a8310507cd1585251f22d55854ad08e56c0bcd037b05a002f078cfc7480b24ea1a69b1a4fa27a07758fc3295a6feb8dcc5dd9a96e784a133a0bc60c91656a070f1fc003d91f4840b2c72d0e284cb9f4f334e280bb110a320df9f81609ef9d87f4c84c7ff184a9035c159d81c2c6858475d8108fa3152f5d22318511b60fd18a9569e9ccd11fa54cdce4a3150490c4208a39432be00ebec20354d259482a11cdb37d73c3aca4f6ef2ec7dbe6f96da9aa856abe5ae753ee7142cd0018018aaffec72ac4e8c0e8010f689b12d4cfe9f2afe67aa2be3c907ca368428ffe6b015666ef162c5162b15c2ef1921c02d4338d307bae2d5c4c207269101508830274d6092ac2202df09e793242f9db3f59b148b1a046182212cc008410996b0586af244880743d09bba461ee052bff71e87a7ae510f5ebef5daf5de65e685cddd107a2ffbc22ce0b707659ce17284ac14f8ffe1bfdc016b1db0d8e1c9154b6378d14106a5758dae40a25760e9a235a8b4cdd74439cbd09000000000f314002020100c07442291382c9a2872acfd14000c748c44725a2e1a49b324c85114649021c610020c00061800804c51cd3608f8454be9b6dc9c8c32c9c2cbffc9021d1e6d7e272bdc10fbc851c87304a94bac24d47ff6e7bf16690161dbfebe0292150bd1f3253c2a1d4af056114f4b7fdfca17487b1c4edb6de2d16865bf950f89044ed8a8bb2c665d412730cbbb7b1806466544251c2f6a846d25bbc63056df68146ea43597d278086a937bf20ab5440627f27701783c3560144759347cb0284aac7a963e47c732dac2900241abf6566ba8835e4912dca0179eab0867dd628791b2ba0768afd6832fde49889e4965d4f06f7974f5c938c13b893d64fa03a30d13a1839b25a48f5f336819a456648ffcdbd098f64bee005cc76cb04cd841ad8a165cdfb28fa8e3be1572907e8af07266bca2aef898368301dbf6b07cef0dddd2fc8100c898dcc4b130cbf4820b92f01c648172355e90c88e5fae7f45b1938f6058b4571d1d95534ab89a3137b5f85f548bcd522a8ed970739430d482cd284317d4449ebc304072d2659ee9d42a4ed97170d324085a62e744de47adddd34d22d126d389cdf009a2ab0a67e7b830f1bdd369f876c6241d4ecaa977e07ca0bb6e67c6133cd6e386c072e62921c94a6f5b9b5b752f4f9e8420661ea851dd2df887721a72e4d92996eaee47f2eb42f2af2affa9aa5e3aed091d2d86931166d5ea784fd7c7a3aeb5d2b5673827dad6a883ed5a2b06f69117c5153e97bc0603a82a2c1595ac85e098a2960456f12ae8c9eb29821eb12cdcede45bd3cc126eb93737498b650e6000dabdf4b7f0fc544aa28c83cdc08b682d142856e1ca873b54b2a8f0942444c25077acc2c02eec20708c45f61b778592ea2e943691e296f5b9cd18750995544771760409c19a5b1f4ae08b0d64ba23c513d491a028e7b60b8c87f43ce582ade1c211afc6c96ae087a908187d88dfe3ba4e771828be6e9764c0bc5e5294e2babc772e05ddb0dc3da698510575bb785664620b0551f21328ced70ec940f0d3ff1a2390f568ab6c4f6c2f5ae56ec05a922916f143fcf4ae9e13c6390350ca853b18f6b1117577378e1b9cc4186536db8c6eca6bad3208d2bc8231ea8e6aa28de1148896d1cca74c578bff01fb90fe4d4f7401fe4646ba15734a3d2170230be93f11cf6af6a2200d7214407606a6648b8e92c20d357ac90bde14b575562db0c36ea5aa1394a3f4528a625e960146f47eecb8d176df996db4837e128a2b3d7ede29352e6b9da283760e8f9bbade56a0651a468a9419545fd5f04a06aeadd5c94d5b28f491f922fc45d563678156b753726447b12d7c9b02409acc4177ed0ff62bec0daad9cd8d5908e1e3264ccd5db207db66edb602f8b7e0708d147a1b9b3892634595424f7f8a61f552e683de03902b26470a8a5b33b740ee7254615da9dda6e6c547ad3ea29a5fba9555ed5d1a8a57a0b19c23a46c14b1758f8ebd4b7f619878c655644b869675440a862f891290989804325b6d51dcf2b750a51ac03998a67faa21a6da1f602c6f929d17229369574a3bdf18c15148ce48e71cea1cdc9d1aa80d98f45e11a0bccf9c9ef971773dd2a082906dd3986721e2901ec30ba5ee330f1bcd6b916ff6358e48401ba4c4d836e0b8d0950f22412f9ed7478c4ddad921c95489e1efb501ef2436a3137a7fe98b5e561e52924e104a49a7c68b928f1027e57e2ef6a5da2d08e6f0aa4473c88fcd617706824f2d8dbf940a586c743fa327238664f2d6108046b1d5357cb8d9e93d3e56166d9f9fc37eecea8bbff1b8e0d0e3198da19609d06acd930f17b767b8919caf1eaca55ad74fd38fbae059e6e046efe94587e003d10336bbc1a64d3e99b71b9239137c68379c4c12008bf812bf8954998c4c16ea5daf8513b8f609e19bfbfbe21701eada1eb1e9c5e956d43d2353fb33e9a884a912c24a8016a1fbb988da2745315d960086463e4306b65c2b1bfd90853858a5acacf1be93fcf125ac9d9cd552cc0431d725065044bd072b7143bc433b3e2d735ef4d0d67b8bdfc6ab7dd02d2e86a82c9b912be7245f629c4d6a83041d40629709cd87b7efa90b8aff3fd65f3ff7ecd6015d1cfa92a29638e1c195e2ae6fde63d9443777dfd25872825a0bc1aece77c6c9f4098583868338aed3b474269010381ac0196660036089821747fa02c0bbabeba3c0adc3ba5518a6e07ea686582bceb2f79ec585e12407cec6d3ce987c95b5016c23e92edb45f4a18280715812e5f6cd7e5fc43595e49a3c0802bd88311d503cf7637fd4c6492e1462b7df2528bbe40dd129c6147a1bd7a26e03edd6023d016f02adb568df44bc95cf64491fc76b5dcfa525a5bad157a78554faf9633b16be9f150da24877bba625c6b937074ab177efb1c3a77336a30f1dd25dae9dafc46b3e611c392e97c176c0ae4084663124b8c7622cabfcd29cb900b1404cc44a45c5ce2ad130af2e0a5e4b7b995981082b2cd478c5f5696153723cca173725ee6126368f820c8a349a7b889e3c9335108f058e45def14a31ae6bc9f12bb7ae101aea6c86fff41ca215d44e78ba5eb377b97ff4433be5ed6a536c99cf9223f0d6482b0817e9e1fb5811cea57ba61cad12fed75649fb4f18c1d2a11cf9c82fa6e8b7463a985c599cc5f38ba07cf7f271147398c91b1a84c8a2490599b79f95fe176cc37f517f9b873e96bb6e0ba75333b7a56fcfa436a70e7c51eb60967fc80601855f4d3db32a50f69446d425db4dcdc177aae3a40080e6b62c072ff860ddec901ac16aaee8416f17e241375fab53e772191944c59f62f26efe5653f04a202471173cea2ad3309025edb94cd30dd262ba82df554ce120f99f331efee3d31ddb648bf935acde1716f331ac1693c9eccb0cab74effb692203c55843a3a17e60883aacc8f89744d42b83aa5e89d51373d800389ec870c077dbaab4bbb378f90b388da8ff980e41ccf035739edf45b92448ba5e6b692cc7076d0fa4b457318525c8a406ce4cb3cb58fb13293c230a2d4f1f30fc5e8e006786a7787dcaf1462ddb68218edf353dd716afbc62599a73d04ff3003716875ed3035a50904db6495187bfc809f92042da2f8447827d038e7987523b54dccd2704b0cd6088ad09a2a46881d1207886a36aa679954243181cc844606dd2861a15e6c27e702a66b05ddeb24fa29e75e78abb1322de297a276fc43741871d8e34c9631acfee654cb7794acd25ac770b53e42a531404dc8329ac1212adec2c2bce331696fec93beb76785cfaeb0a631bf5aa1696d7d812f354ff18b1ac4ffa4516639846bbf52f51893b66d55af1efd903e986afb255c4d881b58294fdf50990005477e8a72b5d607538fc6d2f54c9ee0a4cb9e75069d19117c4ea5bb7ebcf99964b7ad8174aa10b91f2d9929515fb094f10decd513f24d9ee1980de659aed5bbd3068f5fb69ccaf19b1b47b38bf968cfb667ecd7d96363986f350867a090b716babd598a174d81506d14f7e601ea9398763bf3f4bd7895e591a32b4a4615859b308c728211ab59b6569ee69b6099cb8ceac7a59a4420c6694ec32202273ab5e27e14a9cd6de8d669034b60c6193eefe1c86b5845513da624e2a67eb678f309737e81f6f9915c855335b97536ef0816e2db43390e020601d82c49685584f9198e723700b48ec723165e5bd2b8f5e5b309141ca9a9f1b8b9f6b419a97cfb473942d3caa6b0b5827683c01cdb8f5b1a34c8206363498e98f967d3705076c68ad22ad87c115799faf041b4781d0eee30bee63cf47bbcb91c213aa01b49ebd283c6d3801fd23b0db52a274a7988798101870b1b98fe17d0cbeee734738cd20ca4e40cbdd63b562b551a7276870815098f6e64cc5f2a03af4421ee96a95dab9579b3733054afe58af238288e2956560c9c5c26a8fc3dd10f1f748eccaacc9912a30c283c4eb8449ec8ed1321f977a6f8760a5bc8a6aab37bd87416327d5fac3e306ed073e6e7a13706b92c5ca9fd8addcedb0954409bb1adc7f1a1d6d0fadbd071844c8bc1175da4668f7d6cfe4dd6fd2eb8193da43dd80328d439c2b7900a84df622d9f31f91a9b798dbcc96b531c7ebdb3b9f212dd286f37581e234a028ef5f2a9795e266a4266b80d89281fef6f1f4693e5d66fe62b314ef4518258e128dfede6e9e9504e741c35f1cab6d2cb652ba7ec4365969df54e78cd7883b3d4f1df55f2980ea6ef491f79f81c8ba23779c7f776cd369f576bb380c7c9c87fc0bf934d8585de73244eca9a01971733e8290bf69847b1198608d4f252b01537cd771490f9db6500bef2dce30063ec6a68e313e1aa89c8fce4d80be9318dcbc267caa40cf27230edb3ce06b4acedc85cb030e7d565b31c13b5e8fc88282ded2bf360d696001ef9f8d069061d8892bd6dc14419f7f543f4deea65c6ff9952afa86d86f7219d5e2cafe05a5207851d1ac8bedb2a40cf6bc7f6935c6c50f07943b842c8e4f7aa5e3c460077d17a65468534e1425db977f650ec11fe637018debaee59abb4e75f015771c3c04949f4c5d04b283450d57067235bbc5072b33f95706bc0948f40137b30e0a5769191a58d7cc953d9c667c33f27fb6b6b1c2a102dcc4dc1bcfe65ece08bf89c1295c30b67ffb1b28affdda6bd6eb1293df2293d6a3dcc6384b73bedd7c4e6b95f92802094fe0f3ef0252ff68c4a8a77a97020d9236b8da15f2b2322260713f99f5102baed1243729fe7a5cc8c5f8c51b317ecd20fa2332f1923f4a6ac50c3a8f6eab34659b705e76ed66cb15b395733193ac73b3e33dbcd4f47313bf3bbac0f98595084864315b569ea4ba0fb97aca7aaf0f4267d1bb24d2458a5fbfdeb70f6df5af0c061870088fd7c820110f9491e825be900a4e48419daf95778a00850ec05ab6a0f3370f118a81cb971fdf82c8daa695aeb962da9b1510442ba0000addc3e34e9b9bd147a1b6013d7f87280b32f3ff611221f1ac0a74c08156a3c1708b92a34e54225de76a00c4f40e2fb4b0e4ebea58e7ce2276d9527e644408195a07e7896d053a7b247dc3826fc733b80221082aa34e3a872ea31f89fa407265660cfee9df8eb8c62b95e874038799b1075b41e1b86554af7c3ea6ce58b834c5079377bc221e9813065fee06991945b100633ee44465cb44698354836503880b1706524746a8243da50e7714b1a1c9bc206a9265469c7c68384d4a928d58836c610fa2db4af209334e9121d093b958734ab06ebbf04b2b3bfb9982079c3c00fcdf043c27fffd52e6f71b1f98015e6ffdcd45a03cad677b6006ce4820bd042d34b06db01e0304ce8ac401456f957da10fb54a57093a4c6eeb650a14cc1888158c71069fb1fba720c7d6da01faddcad804323ad1161e0564c882e25aafbdc6ebda98563b9eba820a54a8bb70186802fa2e32a3dd33a8eb9649eda651ad5b1f1bc5766894145991448863a70c47951538aafa8d95614a7d3c47717a56877627f72200bfff8bce919170eca39281b0d93814fc7e01f1e258dbd0014301b61160a78f328028fbadd6b4b05dd9bf95893cb4b768229e217455c450b42910e88fa59dd5f7fa4afa0ba8ec5c4e1cbbaa3240b22406474520d2adfd8956b1b6c6cb1da4f38049a061a61e30061d5bff3a83702c0fb5e43ae3f5743df472643814b6a41564fb3f47112a3d39ccb2c105969cba7b722447c4f98a9cb352a1aae4e033543b51fa198c9664de6e58bc9bef12f11663c0f8402fbd837868788d9ede770ec77c05b579c96d1278ace364ac220e9bd82740c3edab123943e6aaa84eb91dde306d5ed2b4dbfe0e8303e0ac584132596510079d1ba3b002e0f4035f21e7b3822a1e69e73cabcfa16892e4534a8327d1da95d5dbf105f074a5301ea81a25a47215e3f4d97c023142c73b464c0bc00de2738da146e952c1991af025206633228cd8341adc50ae6bfbdff6521ea2c6af91b9cd615e314242df048a40c3ce197a2263fec00fca30a4dd2b639a8a1178ed7bc7e43aac299d5128903eedf32dbe6f89136a69a040f320acac995a771485645c410199fce88f2caa3b9cdf7a2482173c06bd6b5e7b8dbb0e8c303508d1c4392ed5d9fd7a1d1a7e88360b42fcd5446458cfbcff3807eae61595940799e6caa330705aca4d764e7d015057082fe6448e3007133417282aa54c88037e0447aabbc9515bbbe0522128e4e83347e6483cb9fa13d26292b2336cc1243941a3b2e2b25b61be552287ad5e9a205b61b52c1e05d0e70235427a00a56e3731a0676589a077bf03ef0fe5b672d0884ca8c9eda31673ce4f58890c2d9cf729e0dfd32a6e4d7497712b853d873e0164f220ac8d0e232108a009faf5208b9f83c688a9c0da2b5d4b6ce982be7efde272a5b8cda1841977cd7de5514c8d9571807a7c6de0d9d570ea1eb32e42a8075ae390c8e7c31177ec965b9d719dbe56cac89fa402b09278fdb4c2edbd77d8fdddb0efbdc2fef7cabdcf5383ef8d5ce833e3a298e12ef4aafc886b0f16106167aecf760a6ca1b1dbee4c23d8c29b650904f0772d5452294f0cd89ca57e9619074a28cb5828187340f02419ef270c2ac48cccbf16db4989c341ee589aa4d242d793ce6280b9594684084826d84bed924ec332a745994fbf1508564bf02404353fb0c667f7c8b87ce5b4edea913b365dbc047de59c5ba20559d606987a1694ce5bb8b9d13dd65db0c3e06f62a4cfb75e6692e3e50f84d3fbd0f437d9a571c98adada0fd6e08d4099b41048ba0f76f014fbe2a8247b26a78d2af14d442dfbda7fb49168510234d6c39fc8ff3f74beb6e22bdca555a05c996d1b0618d00728eab2f92c8c436115c83af7b20c54754dda65de0e9566f0d827d8a2019ae12e7218e5f320197159d8b986272e5b798d78e20674a72409a4073e128fa596df3ac81c4a686256593e8faf083c33d9f3ce99501342140836612d25ac55093b2abff5eae0c4b435a42effcad9c861b89d605d1bb145de6ac3af20f5708b930c949ae2f4d52e1dd6b97cd7baa248292fdbc4ccc217e8916d7a7c072ae6816c39cec40eaa22241c2bc60d50647221ae95675d6e1001f600b32f5bffcc5f6aabd66956e1e2af12ae4c6f48b58d3a207334c0687d4d9031df7b2892c5248ff694e9a2002b830b9d4d8b5b7685fce6e22e55f8fea77b617b1b436a0f60daa9055874d914f5bd3118c9fb30b6c06d774f3811528d8be0c18c7b71629e70f284546440670c3f22293b361ca90c334c33c1a5c54593a224628b4199c0b7b4e3af27ae3013c70e8f1aaa84b4c58ae27b1c104fa7d95b2ccae1adb9e3aef915e377e1c40b341942dcb93bd982e56d2bd5d0306c3e233156c519c3a57296b0b0a4005f671bb855a74db4553f856544ded289edeff67431c2f5acebedca845759d31d207cf70970ef0b65c703df4a61dce48070d50935366a88397445a4146a5e88f9b4eb03a9580cc099213defba8ab2443ad8fb9f6717461b95ee9e35252648a4c3cea63df1de4009d471c463f9887fa88f2b315a14d0320856adfcb08b3be40a57963cd13c321e3959d0ae8fa4a053251caaedfa6d072f4ebfb7e288758c5d659e86f3f8741f5e2d9ec226c7aef8dc895c3d582cb076147528fcc8dec1ec25a14a7d6cd9f67951dc63e822fc4b46bd1912e4264c033ace7db3905d9ba59a1a13efd1729745bf0a3d7e4254c50c56124f9cceb2f00e4a666dd0a3d665a45b4123fe9d510462b105a72973775ec9d77832fc9a1ddaf4d2517214e83d6b3020cc9d6149827d928b35410de88b7e8a4d8f0a5936fbe1d552c37322f596e3fe136f203dc1443bd7a586430c8fa92505bd51bde3466459554eddbfa3157600c153d78bde71268b3e709b8c007d3113021e6570aaaec7489af1b233c7c99e2730d3e20e81781b53aeb63da24245b4c93e816f440f4aebf0d017815c55d2e852f601c95f16ac2c9bc72a9f2626e85941e08237c8b72683208053e555a6a6991213d80e99b79e2d6e0c7afd7dfd216381cbe4759ba27213ef2f8916172a192ddebe8fec85011d5ee691e85cf04f3e53da0297f0c500eb3b9f457fd800c0153ced1ad9a4c5e416a67efaf250528af9262b654e93d3ae592228a22d8d29a683e3745be9031a2f000e3a45a3117a3c78d6850426655f5689a5361022e40c0a48662e95b2a6968567544bb53a7823729b8ed014d453211d735719df488878da265fb9aebda4dc99629fbe0cf10f0765954d861d47f05ea722e66599ab5b97bd6b1640e481ad2934a4ef3d06abfdaee983b50e6e80dd95ea4a7b7ad25af0b98884fcd8f56f484ecfb9d9cd2ac5363d0425c9da9ae931388d5370ee66d4c17fe0d0ccde55ca4de609c2d40b36914a6a36adee5a9ea95f9ea90a766c3f9e1f4d23903b06a00c6274011e1dd4a5271097e188ca04babfcda9ff9f440af58c80b3b641b203c8d489288981181ac01d8300aaba32fdef9cf3121a6e7499a33ca872903b4e33b595edd9f4ca57e483a3f19e3047563ea664a95385875b50f63ec22f463f1303d498234d558f4614ccbb991211318966748bc67afce0ba8969badd6ccac4f68d458e2db9df4caa4396affb7164022c3dcaf9cabac5a450f4ad95b6d7c87fc7de708606f8a3f2e2d774862f3b56c4d84830f227eb6ebfe42458d8580750912d14af4c90f4fdd224b559a6f7b8735f6f44823699abf52594bb934f24c87d6a20ff562b1d59d0362418c8d53cbfa6d914a6a3b7aecfcb118a4bf730e50fa0522c842c308e6be0155433e233ec8e1668fac4d499f8a9b2f09d8e2119392bbe052917b80b51b1d2df848630ec76d9b8714238cef34b87d82c3556051826d6c81f4d03e9cb87d0e84d1362816ad5d2092f46ccdce07a21a908f9c19425b3e2d9f20b091bc8382a253acbec0b2998f5a005760c7ab120bbad796df45d78a5411d9582da02e3a271ebd2ddc37d7590cdb2d48f4d4fde4ec561175677840e05e3f93927233d380f6324b705c759dba8657fc88c96f2f60349fad9e1bbd17ac54290ea413b638416acb8c2821010328ab1d1befa98f21690f2ab9c0f362d216b6b332b334d8083fcfd69e389c47474de9c103a2468308d35d09884d1241c4f9893c0b1828ab3dabec85337c7a28e06248b29d553e5212a75a29c0c4ca550b5d1c9f9a6d987902d5fd2d5507209adbe924d1b75c888a30ecb1d50c2924163224edecd646ae0642850c1371a69d6ff092d7d330fe59750494c0e8ae7965cf9dd69a755ab4c71838978c817e70d37c12f8e7c2dbe98f1bac531c143e52792f3cb1f57e764e310ffda01788153275e0175aa151b27c59ddd65d7b63f530e9f72be6e4badfe808a73f680745b02540a34828a2fc8672ac8813d6ba84ba38a0bf76b3ffac82694a077a1afd93377a14456f36c73fedd1b02b76eb752da4468d0266a401d1ac165e0e87c559ccc528c60477c2c31ac5682bf779c08a803e99411220a0a76df22f2752c9acf18c0389b4cad8e65dfc584deddf1ee702d62db6b7adac18480e5e6a01321f098d88611af998654459a31d1bcac5f214c903033e33490f342e47d2cf68c0cd10233a6341fd2e89988fb323ad7ee9a5f397683b0b514198ca192a7be0b83b9b7dcc3ed0e75a6746e32d910acb8fd6e3979a60c2ce4a5f263cd8bc7e7ec1e71e2ee10fc8f8b031b57203d56b8a8e107b7591702557409a31d5fbf43c78daa2cf75d4854ae87f703d82959bdf90fcb72b232982b5933503277131ec3d1c0a2241cd236b3c79792c57bd056311cad1d115c063e4c76efc8d8073151334046feec5988ed783bd8623fd244e89b2e4cc827497e5e9a9abc2074b5250e1d5a2d839f10e1a1977dfd86609e1186616a5917f3a2c2ca064390064f31fb3afbadcf5dfbfcb913ca48df55116f30bb26a688696a5954512c6a25258e8b952d02b5e1d6c2c86b70aaea025e13a50382531558831c266a520579b4cc71fb299c5ac9a86d48107731849814d641aa312828ab3bfd7163589f925379e69b839ff837b07a4b8426a77ae1c9a48a51e4a5fda99366425d7cf4b1f56ca4a88f0384cbc1bd763d18d3b0f80b8fdfeb92fcfa620bd0de5401f462259100c8320d5940c3694a98f41336f914709a34c8a664d6f686f546cde6f8bd95ce4d476c7dabcda0dde2d4a19bd9f9874e6b418c537515dfe875a85856422df49dfe10f9eb2b50fd82af8030ebc3a8e7178da63ab975edf25c012363aeffd793553b66686468d0bf548ec40977d836cb83b3371dc1af0242d2dbe676bea7595ba2d6a99481a7ccda1b3ce28239bdef8c98ad26e849c2dae63b146a5750511ce690c59e283df883efd9be8ebfc666075707ab68905633e5e284b9a5d736d989ae9418ff03a154fbeaa309fe2513320917fadbb8297a6a9b54dbc924544080f31e7c60d704292546e11851162360dc017aaab0e858951d754a7f87dde83eece56eeca424f981a541540b8ab9232c820b61a251e8debadd94bbe267a2d291feb46eded4211664e6a9a6de4712284373610c0a430ef71437adf97d1d2c8ac8e8d84d4bb42926503f48377292a6b6c22b83c343050a101848d8f5a2e53a51e5a767bb0826c372c17fd6bccaf4d13a9cdde79e727707104abe78f6567b78b05461c9b954ca3761ca4b284aa4658398936df26f6036c7f3faf8958150401364223963b6aad3b19e735d00e86ad32548bec8f6407e3663637d45076e901dc78e7853af52d5ae7cb61a7f478db22882ac54d9aee308d31809f0c5909e48a01b2001cedd50209027192564b64e5ab8757ed954ac36dba988704e5d967baea43f822db64aa0d7c653e06234e6bd48f07447b4458739bc3b319a4e4619fb2e0d7ee83586432a7adaf43f5c375182d695d2ce65dae0cf90dda4d9f4cfbf2dbfce631f02a416370397b7ab6cdbd2c4f5739c57931c04ac7256eab71d49a934a9f2aff45aa7ca4ce01ec10b04fbfa00562264399987c1f505844ca0a6f7ca9ad51168a29dcfbed68a75c0eb8eb95724272c6ff59a9b863e4ac5021b49d2812915b5774f1a8e2eeff3422fe7fd43beb344488c51e40ec2c5cbdc237b4a65aac2dd4e3c1230a7155530536ca4b38063b24e1d89539418d067fcfda106b920dd2d71a679005637f8213cc732c6ba65e26ff38264561208d6b6d203ae2650cdbccdd1953348ae56545d0c57575c246465f589a44a7ed101fe6f56a7db464206f66e565e978d095d65e0e420ba209115745ef13b8dd621a6251d38d90f368b5488bf91ebc53941c627934173faf655789b4813cbd518a2799c92cc6255d08708372bc46eca68dbf21ec6126981346787d72b3e4878f0873e2d3e40915a5682c38eb61278892f5e0b056e402347672136995ca32ca5c19a3cface2d1e99bd5268e7b4912c08127b45940ea3f8ef6c80de1b82fd8c70bc5a4c70bc610d8fa77bc6aae49e9ddc3d35356adec7413de782c786b0b5b02b8870ce42651dd2c08774c69b184b488ed54c6d01a78d0f5a976aa91999307aee834b4fef1822769066b2b48c5089b50e7d5f75d703c9d13ae7f2938e4d95ed52c4fb68be6b57055ee646d4619ceeeef7ba5719bca86b2b8a014395994fd3861fa74b99cd5bb153f69a14f099e1c5236a64a4852a13e4749070fc916cb7cda8152378c80d117ccb52cd37cf21c97982ef4edf31449ed0ab4b09c1c5ec2f4ca538b57f6547fc4e5d565af94ee383d74b23aee29001b092c1eff3b306e8e640fd4e65b5c9f3eca9aea7a4cffed62151007ebb2b7522eeb4b44c078299703771efee6123caf304f98db0c1c67924c984da0f145c1ab2522932ff2239b4dfc1cbdd4b4d254d2cad0481beb0ff12a97075d4d5eccca930fd00d026053786c350b9c7d675502338de89267108abd0c3d2c6dcc8e304c65165cccf785ffc3c070d96ed70bd0ca9631a7c98412c2d8033501057b06770ef5d70382582343a8063727bcdb74df3ea333b96c292613cb6dedac033be74a8a88dada16c9e645ea20eda6d57945e5e438c8ecd5feb2cd5faf44867596898855b993dc687fe4c76ee96c7e557df061ac6a3af65dfb5e2df9864de23718387355758df41c1c89fe7a66f53122ec5de1f0795a8f90e9b75b991ff74e3d16f9387f97e40aef12ee9f677b999ae0a552ba4e67da4b0db0474b0a55b33208dbb70fef69a6edbcc9d659aa6f2006ae2315f2e05ff574fc701ac15e8538b850ca6c177f60e0c914fa4c7b1f5d8b5aee97c7be3ee6771aae855770b8efef4f6570ae4424f6333e03de42980f0effea7dedb395c02407a037fe6b6ad8ba7ee00a9d4275ab824239767ff405de3912d4433b4d97d84bd3e76cfd635b279585254404abb2b3e60af7499ba833d17a69fdb284ffa47aed44fb2629078eeaf5be7993658db4bf7cae94c66985ba2fc27b3427e03eb7ee261c90dd7a890c1f517974d9d87f295340e7b83df180dc3acce6d378d7d4dd76ef36e01da2b68d550a6ba71066796e23098c99eba85bdf222a237029dfac40d3f7a8f7510597236fe658ef7eafc1544b742a0574c10d433ca554018960043345f0581dbf837e94b6843f86f8261f580055733c9ff18f6cb16cc0e5e8d7278ae77bd9eac16dfaaf4fe6276223e8e5d0608f39d4c0ada464175139022de52d0bef1c1b578d073cddaa1a8f3da02476c1400b7f4afc9db69786efd90bbaa6ad795d537b97f735f25683d2ca79334b53d20ad3d57518207059df7d67488fc76e6a9c19188732f59c61db2cd2bc833f91a8bd8daabe4a3f6625f205f5dada1e8e83f4ea098b2294c2d4976038b4e8458181b02b3d5984afd439dbb386722d9b64c39748552ffb04b1d3c41718d86430ed53fac71335e584970787d0e611d74c8c94d3865cff01bb1cf192ab19ffa87d4be870c78186d6b1f0c002a1bf6773f7f2f5b5941e88451ff789e767d98505747e3f5a722f58fe9fa555984aebf7d4b52445e9e9f4f2e300ff50f687185bd0f4b35344a48540f8d8b7081e9c8f7398e1121ce1e7898aa7638fde9f13c86dd17d98fe11c04250f240e413f39ae6545be379316176ce96f17a53e54e291161e81b7de555b18feea866b98276fe735507fa50471f6cc21db3ae4569169c8883c2693c862a7ee134d655b4165be7b5fc519dadd37b3eba77611d63ce05dfa95f455342b40de563e84573c84bd5522f025e4ecd24867fddeb4ae14ff1cd81e2279141218a00056e1e8ddc8e311fe5fe2b8d5c4e7692e3c58b164be28b9e9a0ad695a9560b8cdb672f82701f810e48a1741425ce4bfccb71a355ff5c63149dbe0956db6dc33bb8c0e91e94ffd846725f86d34272b82807651eac56d89c6cad05fa7085432e074f5e0570c035ab2b611ed482771dc8630712e22cc8d9dcbed5cb264c8d5d5d183ca568b1a212904d51b5d7059ea5822a0440592c5ee79aaa7392af5773764daf377caa82e45cd732c2fbdc8c20c6562b6ad8a2990a38eb56195dba0143c56ea3091e34886f1802255c50bd6ee4bfb543ede6487e10d1f437260b704cc24a718f7ee619eb098fc7ffec117932df5822e2ca2c43fbcb946a0bf96c1ad321bac3eb06a31f5b3217a9eeaa24170994039e237d01b4a45c33739e749741b93ae2307d3ad22335c5689a38aa2d7a1a03dd18443cd791b609d3c67a285dde97e1e29fe82c3caa48f4a5b4afa1450089bdd9a50908d5a1886d31db0df50e7a50ebbf1579b900a2a7b410f7f8fcfa2f4b2cd9228130e4d73a5f55f78ec2df04567798a99160353a4ace0102cbe0d31e327fb8d81accbe0f49d7220fb5047af0ee61b348f50f8717c6119c0fd1023b8765a09f3de5d5f47d764f2fbd3c0eea16cbc879e856d044a18a6d501dc0a1193bf7cfbaee31a163448d8b1a8e5d60b1131e852ab31b79dc65cac4f8ef221d249934b4c535562be9aeaea05d35d3e27adb2ece372a007332b26e6901942d6a33bff588780d64d415114631330cce4667d6414c07e2b543a921827f00d7ff5ce291e9906416c22f3b6b580202063835e7eba9471a5efa58c9e0beda225242a7828f87177462900669b980d3ca9b2f0a217f8cc23f02be60094397fa23252556b081e1ccc20b31988135f79c49b186d1bb3acecec6293a9e42beeb056d0c0cbf7645ea0cf21f6282ba312602753c3a0ab8bc41ef4fb7bc90fc673aac16bef8287b43ca03cab9157fbf87008db3d505a38562ccd79f2da72602b76127e977dde2b8c4633eb2d338fefc5cb483f377b5b64827f1526d4c3d22d2cceb9243f2057211d17aa112b14a249b8e5b2aaa860830d8687265e94aa80b8f47b87f1bf6c78585f6153e1ecf013875316234f615ad03c1354945f405d071932fc7a9830107f75eefab9008cddcab1adf6af363411c06e9840eff02ce0e90a4797c20e84af552f63cfc5c083eea33ce3dcfc2686a508443ea705fad58006b99ad18aee5b6af085f7aefdb3326eaa6572a1511915169634e95559e9f51344e43793224a2909f329fd5ac106c87356aa92a6521366cf8ee77b968992a8944ed698d45b80642a3b7d1f629f33a1b6327c67c52fbfe2b8b03c2918c5cb16b0e857588df785c0976cc05cc6e7216829fd2c7f1d8643832b0aa5c5a35057a81d1d422286eb30f72b2c56833200579884f186897ee6deed22ec0491004823f7f6ed38038d6800645803f0a4ef2c8b774c21fd103c95c00c927625b4a4572ee71e84800cdf852eee7b46ce2e00fd5111e0c9764b0578ed8f8d5beda1f062f8bf8988316af4120868582082ea913007f6489451e95fc5dd203a663a881115b3bcf748082b21624f086daddad81a7d2171174d9acd10820f0229500858cd3be01b28ccae4c2c00715d06a0c2dcc06818b0f6c844af7477b2ea904b5cba4cefcf36832e0754e64d971f6025ece8f6c920ac243d28049d481ca4a0d6a6906539a761719999090378178a4fa0d4f71e22c9b74268b96cfc51234f7c457c90f52099e323664e5afbe47fca7067f556139ad9a6a441d99e30b8fedd4b81d095cf9bd00e7e812d2e3bf0c6ac8e1d3c584401500bd54b115cbc4f5d70ccdc8c5dd217df7f682b3a2b862cbe2acdd3c345d1720f38810faa1bbef85098a7a45391c0256cea3e53c6c960ce3fd19485deb2238cdea71fee1654f2480a6a3e5bda8d033f1631c1922f33ce8dc7c42306c74c125c9cfc5c712fe5ca1a0c70e7e4799cd1e0574a0742201009bccced13d948cde8a446cef0ea5579066673de9666edb0779669f9e2294ece1c72839fee01593b4f37c8122a00923308b39e2acbcb8c0eb3f3f37c5eba9534558d1e6163fbc668cbaf9222177ada3e590156639515868cfeebc23622411e56e9925ba9da66c60711439415227f56591f0f80cbe77d76492ed57e1d344275f1f0cf0b54f50e80f56637934d21fb81518e51f717030c6a310124a992ff559098540e23ad5efcb99c50f5ba59024ea5c00d72cec3b9aa6114ffeb026470e88d65eb5de2ea3ebc60196378a5fb56f89a448b4ac8ebb0299fe2ca71049ae0ab64ff42ffe8d0292cdc45e29e87f67f02cdc2045086e82088244079850ba0725be79fcc02ba19f84f3456fe1356d0322c3fcc759804b9b362a22c059ddcce9b2793566dc154cd306309a122d914f4ddaf63546226f2321cbc440bea1374f9de5b33f458a6b92f75d670f08b20b7e0c0f329e140dfb9c77da4fe98cbd65f06d54ddfd8f0a8e04365528be84d78917a384dd34ba4841244f6f5e4c7f28659f36f0c8580dc4003b397eecace0cbe632a6fe3ab200f80aeb5180666b43f13603bf9162bb6c29a13ecde157fb51c308d0c6c7a88c84724de2e74152cc48f299f0415482c1ec96739cf150c23f0a9d51cbd236046c73060a4ecc6432cb340e3f6ca4c77537cdb9d197bf846c508fc395c3adeaf1396b3510aa1fe644bd8ca5dc0802df07a84811ec977e49ee926ea36e71937286aa322e0a09670ae61aa6c9e331115c542d49d471d29a314373a055dc5bbaeb2adf8ddaee2d426b4d78d1fcdbe4614e3fae0178e05a16c79567904c27ea7db6ac6655812cfea96bb91732c754af55e207b6f24b9ec63828b5ca0519e5436dfc81457ca05b8672efa16aab1126240ab5a561a493886c79c84972d94c8bc91615e8620d7b29cbfe422763551bb823c5f6d0ad21ca406f375ed5dd460a341a916943922652187a0adcd917080f7d3667b3f1a55735513ded1f557c6bc84d77968b176a604388a15d30b8a32c27506d46c308d7d9ef3375a9ebde188ec7fc13ee572c469024addd195b27745ffad137def7298fb4c47c863beb112f009778883d84bd459704e9fe2c8fc03b40ff386038a4c22e89a283c28245e19429799531d0e400b70e4aa8d143bb59b962b60a9cdb09985f329e4be3e67bfdc1a63e0888fd4111fac6bd1628c71d12157c512871903f50f63204bc46378612299a2c06b32c6bcb27cd6459bc0dac9bd585d3a76b9bdb00ba697235c1ea1504ac413775eaaba81032e44103d0e2bac974992dc6a5a48a554124bf99b33c5037016709efbac398851bab6e8b0e25297888b65033694442e05e00682b24d27b238d107274e441c30fa5d5055ee4438495a6f0e751a864d6820ff7a30639020f4b96785fc3617ea1d9ffcd880729f2ffb5956d0acd8c56e128879c5757071b9368b7dd94b80db8f30177c95e96f291147dad6ff1493555297a1b0981e73de95485471f2b0e4a2761633e185452c6a558cf345f16dbae88c10f3b01398b076b4d5484da850efab2e7b141fddcb8f0536962c13f22125ac8527ec232f8d35888d7722db6bf1e5cc97c75b732fbacb99113f583007de0e3e3b114b369c916919bbb9704c11041ed6ead298e7d080bf7f5d55b49170f0a6351b666e107d33d41a1352968d55651be929c80da96d7b0ee44668e7f3e710ec161562b5102470c9df96061b4e79700b4c3303af990d3d20d13217fcf1d4cf704beb75935a57eda2c79b28930128faa049a95cfd5432a2e5ed8655f3e244f5e0b03b577741e5e00768ef593ebbcaf8503eed423d574b20ff2a37d40424920c1becb3badc4b3b19bc94a948b976574de0a88434dc6c9ace4749398ad629b4a44cfcdbd87de1d75a9740b541afc1ea20f42cae66d8d83f9e630864d4e09e617cee461112f352d86fd1c082d033902945b59e805b660ef39e47143c375933a7b737b77893e7a4e60376ad010eb416d6849e048c232f02ea6d00fa44c8601d96df8b08595db6cc20e613352d922592106aca727104378d36f9d575f500b9fd941a051899c70ac4880d392778f5759dfedc268b0917275676e8f4518b7a619769ea70b573b87bd6d238927cadaef67917f7e54d2502f3a1f9f93cf1e62e135a91e385e238ec8c62db960498e91cf5a848b9f05add222d6272d2e5732c70d8e33a5d2d45c28bc33a70ab86ca1a58cde381da93f6ff197dbba6a340dd659412e7f90d4275041aa6c33cf9f19400c2ac5d193b22d979e2d3bfcd4ca066ab148ce37d6982742401c77763e3463f92a1dda50c4946bcbb7339a9d26c20ff25f42dff309b8da7ba50ad6b32fa56a5739fa6f470cab299097cd81bcf4ab20a44db8a38672b3358e46325e935593db8187b474294e8b2aed3899e538d4e982796293729ba6719e34554ec7323d02957862f32bd6572a99737b86d74e833e98e3550f7582229f5fc6b20764189de5c2d8b278bc5cd4aa96731433eca12f6ab203f21e885325da5d65e7c2b350275dbe59e450db9e64c7978e65d3f2ff124a636bd921ceac17d64744df6a5b3553a20fcada6d2bde210549584550665aed23e42ce691f258ba1adffd2d7277dea344d8d3ae8a13d608c56d84c5283daac6ae6c9b15d5cbd1a3bea91a57bfb4631d07b1e78f7752fd123ae1ce1d46b1a913bbbf67522d3550d3efb1fe359953e9ff358767d0c5dbbe6be9e4ac1a97e9746997c7e60cf59a940c8232f184a0b221a9ca5d9a3ec0448b1f8753d7af973e6e121c88500867eeb03b8973e245b6528c6252ce10cc8b3c91a731463349f4d79f8654d65918f2e73c7863bff62884966776f24b7d65d0c6d36a1b60b73c48c9b33cd02b94f89badca817fed5117d31bad9aea5ff439db74b2a81cfda33bf2b2f873a8f6e72df320b0ebc5be1b4295ef7ddcd0dec900bbd657f6906c919451c6ce2f8235734225abce4661cb7ad488af179bfe4aeac667089b5d92d63c2cb081e2a4ac61591248ab038e31f72cfa60988b34f4fae096e76fee20a396ae211b11e2c5d706d7d756ff891a5c47a003a90e6a0dd17d175d7c9bef0727efd766695648eb016eb0d81732789f6a41e35d50234e25209739da7c1872451b6b858f7ffef942db4936fbbe3d6c967a1c3715c10b4b0a7b1a8e2abdab58d002a9d202904436381bccc5ac760aa324be30658be52b9328fa94f96622415e8c8132c9f45795abc964603fbb1c84285a2627f241537e401a11aaa324c593c2f3aac520c4241eb08903a85e72d3337d3a7281ee71e9ec7da310f9dfb2f6f8a8993160b84c4a90fada7e93ef7a24ae48d268bf38d993fa23a15ddc55372d2bf23c6ba43aeeac3925402194dabf28b96141726997f6b94a0e4cd996b97d233634ab6ae0379a69d87ecf284b1a5452cffbe2935724817e50d94a9c3baaf803d5dbd0a36b67554131f1b4999ed6df8d854e53609d0501d58e53dfe217cf982e6c6b2145ce4125fec2fbaf89f62d61e5e180d38cecee5f1ec09d2b2a04fd53f616cf59d619441000795a4c0ad6c37aaf31da3f231fdf7fa9c4452f459919b672afa758989daf8a2d48dcb421966e4c1f722672bd75a585500de2c09a0fe8197c523903d82858cd01a053a56aadc9c6ed43421945e9b5255f45dcda260a2214c4f4b03f6394ceac7c97c8b5ce2e61a2ec92f75940067b7894f8a7526763744d8b541d20d4a6957136e11017dc84a2fc53c3fa3a119c5a40400afb635a638159c150bfbab5362aa1a8fc70f4aca4cfaaf8d476861acf720e08006cf95382caa355b5490d60cf8d6e88f792c58de82ad8cc651959535ae17c6634b8cee900b2ad5efcf7d4b53005a48ec452df23f3b5782d92fa9f17917170d588347e15e393ea628f687eec878e16df1fd519eb75755ac40f320a44b31413af47a31662731885a1541baa5be7854b4ab5a212de61a1da5b01feeed41cfb234436be888e2627c0ac0426b90426982ada62b2cfe4d10d38a89051eed0d8cf1aa2f47e2c154b49787b8e12477357333e6ee39bc35b0e17312e93897a221a071be6a2efa3bb68a6c83342727fef2fed5a26a165b473a2eaaf2628f7e8d6b9f91c9d4f45a6df49a8b1a7114c1a1937fca646145f87e7900bf7e236042be0108b8b2f21601c27bc47a06938c602eeac73d5f2d939ba9de9a48ff5ca62c61ad92e93524ce948805a7b5473f7a7c83df6c09d9c9a43b48a9814aaf98ac574d2ce1195eeebfbe2ca9d378b06105f4fdeb5fef866eacf88e135b4cb218614bf3a0300b4a75807ba5c73629541c568861340a98b3290db1f88b8b07f255b880b26f51b8c2f8a0b039c32c396d2dd86cd7ed67ee0ea5560716a34441940325f00243215cfb1de84aa03090bfebf8b7d1bffe3e330c69dd37b53a43956c7a4554e60f882d552fe369c590159a897e2b9eec64e1b1907d1490c82eb30981d607add602b7b6f2fd3d3f32747e01552a0d04ff7a766a2c33d06350b41ff82d8ac5256279992be7c51b0c32f0fa17bc332783b1f035c4b6219bfe8038a5b56275182839c1b7b1712e925f602dd1e0b2127a5f83498b03f48a580dfefe0c2bc040c3222139a07e3ab10db899a35bcb6a60deb24afa8d2285612ef1ce90b45c4d6437df75a549051b6a175b4762a2e862ed864c396f7ffbb77f34b904398ea0cc596f03e95a30137bb07db52a4233a4d3329e3802c014f7d866049f4d1581f1b3b596eaaf5206df7d5bb19c1e152e55bcfbb13e822c9a2419b44f39dd24780797d4daf497333814faee1b2161f0dd37d040a77d608dca042bd28f11d400fb2909dc270006c6cdd9836bb09df680cf66d9e3a783979ee7001b25f78913d814f0d344e53ef86521263bdee2b105d0239ad53a8666141153bfe20f38d338ffb1d05d7e59164be38ba14ca282efc1e7d90c2e3c30cff83a7ccbc99f40aa644776ca8d4218026dfb1427c6a214403d1433425fa3690f4a9ebf9f6f879578cd8a8506a05bd8fe66acbb8799dc14ff2d273098914d5a891cdbcfcdd880a4390318437504f7bb7969514e57e36857d78a98dbb0ee520037075842310fb7fed3400ee6af5a4d96d219227752272860dd4db9dcef922744d52ddc6480f394e1e26b50af4520efa2e436a7968da65580199b5d68c01584e083bb1059c64c56f3602aa832b6727337b5b5bb075dba57199cf9e5108cf460befb386e99dbcec1f6368671b07f365d3e7e63bf8f1b5141d5f3bc18f982a881157799b260ca9ded517ccf9b3bd5d2c944a9ef34cdbd54155ac3e9dc508f8d8236458a0536389723784ecdc874a87236448feb9340aa8062e228463216af81053c072e70998105372431f1d52188232f069e1a5b000bab201e4796ace4f7e3d977ac387303794419ae2064823a5ce900ded856ba7e6bb8d056906c7331df6e13491d32fcf7b168a3349519408205e13a6b94951adcf3c3ab933bee2637926c497ea284f3ae23c39bea69b542f78dbbdaacf58405108f8bab26e48bc02504726cdcb9f5136e425882ad69a5491ed8719599a2cc0c74fb645bd615464e50ff8c5ce6e13168488c468366fe89e21adb07431e736198cc7d342de1c37f5fe2667a2c8eb0b46892d8a367caa6dd08a701c41793d30a48a8bb9e2b671cbec7464e09270e080162c42fd553cf81e2095e2b83ea93a07d18680dc9025b2b021c8230499858bf9cf09bd0c27f95538c3e0030822e58811526cd3ad3a5e8db82113457494bb1d65b977285f8fb5455f1fe889b9432ffda32b1bd4b4d9627416dc4f134fd94975268b00d0e9d01a917ba6989a1a2c1b78e8bc925fbd871721001ee5e4625d5e97184fc894c4e51cee6bdd35db24beadfb640f0e0028b0104cb3931928b95d1bdb20ff6d771a86668214b64f6019f2b4acbd2961d2ec20759a16fa81ef6fab5483e2c61d1cc3b155a6823091a883ec141119b393dbe55d04f6c7325c507192b603b95787353b9f355188a9b5342d07c9d2c367ca30f14e1c7890705267931ce7bc6b95ef8cf3ec2022d266b1d291405c63cb58b0d0301e14b6bb1de494e7b62e400a83965ae31952e1ac70ad3b1c7f41c284b09f8d811bf238a2bdac431f742ef34f0ef35c4a42a3e9759d5c9cc9483a1985c4cac47fd0dbe6580d7770dee8d7e0aae4df44bc05db386b1b7265d8ec8e20a50d3ae51e2bb19d9ed14ed623aa6b231f9e29e9d4101084e834d93af145a7290ec3b55c85583f40447f12470da6b2ab93c381fd6e88e89871e6109ad4e103ab83424c968746f739e44c4764e54457e231034b91794f9593f9c65c715f8d06f5eabc811ad69ad22ffa0f12a84f27f2ace655644b328af564aa9b54e7905f4d38bb1df4129ffce20dab83ff332cc5a88aa857e31e7ae6123424f1e5c9d24618826159263491c86159a739e6ada2dea814f36bc191c892f527002c8d32cd45cdbe5df6ce4b481f5c82b1931c240e01040a0ec9cebe11659f4c46c6cfc87bbd5cfd52365901cc118fa7ec3cd684d5e28b5e5a6960d73cf6b4afac4c99b6d2743f693869bc88d600144c4f4c00ea1acfaf6591878c3468893a61d1908475922f9473c66a29f1325e2f155f1cdc8f07985cb33672769020107b89d2e4e34dd438a0ee62cc68d0609b0d80dd51cf541c4603a1cb2829e0c906b290346819e063470c916f51db4f922aa8a913c7d50eea6e4d0c2edf7d7166e2c56c8a791b7ca8d28f6eadc7ddf943ca0fecb56c353d0004defb6fc19901e1ead25505c12678950b30985537a5ac98d1c51c32311b19af31ddbe8ad899006af2a97f98e785dab8507fbd664ec0ebde03dae61a82468635a7e24ddb639601573914fd44258dbb8be0c0ea86ceb26e3a9fc01f5d42e33e09b11b6541d287719d6ac441d690b21182e13a4c9d1e75e130147d2c02c74f5c5d3a01d968dba3553a6e082bac447af9a075c8acc872e123109011ec35d657062241f4c35a8880acb1b56779121392c6b085840ae8d15aa1ea4b035b2143ffc6708f1bf7fe4d715a4240306da9a759915196a2ea20747289686b94b62f9de047cd0093886514175c61d24859e60442d5260aa6bc8810cabcd16d2666b60dc106356e879d861f286f69ad150916e9e8bafcfefdd79a0d36bb8e50a1c831e4792f90a93c091f80b4658b6296c2ab8712ec442f15a0fe17b5fde1bfc24f64a514b318dadb61d453c74ed0329ac72a7cb299c157803320d3b9879853145e2daf99d866b90a5821e331e0e0151c6e4649262415489ef81dcb90c4eacbbe8d941399f9e129e2d23c3ec44325ad42a809d23700348866ed425da81eeb7cfa5f98511113447d4bd749ad7045f49bf9d893f86f9e433c9a54aa69f0f784848cda0a89fcb7610733e4e15d0545c6abca6a1740453d1d1a7ac1e4c3bb0c303517bc50800f3b73856fe843ce2d12c2db6edc86cf6895ab050fcce1001b80cea1369ec3eecb519ae9de6afff85ba69df48718124202142664c4b8a7f226d1ff119adb9d48e66db2f373b91bfe4d23566d5b1bb85c4efb8478efa6fb3da18dd1fe12964f321c57a9fde78e625060ca85de69fa9869b0a50c27c506f48df69840d3215f9a6d33ec1afd20d173956f373b16f312fe8ca36014310aa4c2206cf9bc831d085e3c1533f52dddb82698423c6a97503684203282c3591f66bd5a4a88d98158ae9f8c8c01e883cfd38edb5c9e2ccc260e88d24a89e02b613447a73e83b1c5825c5be46c2ec1774535eb81ffd377057b4aec643feb02adad28c0bba34aaa2f9625f3466626f0db1afe2fb4037589a6900d6a5153319ce6e8430f830b66ea50577d37269ff886854c6fde2813fa4b8f8124eef8e3a65e2bceca3a94129d94c1414a3cedf97962f1857aff280f60cef7cf558f0827753a126074f436b3088f5e30831e7b334dcc3dcd877578abca48b1b0de7ab34e49024b24daf79c79f8f3271effe790e3a0c91de035f9a01c889bfd4c1c0d2c1bad85374b8303a738921f9b911a8ada411e178cba0a4ce684614401b51f7d881e073d21009fbfc7613d1c4fe10630013510b0c18476dfa7f94e1fa7c69f19ad2931043a070e3aa0cd2e3e44654988a17d05b4c0142d8a9eccef4fe11de1df9958b3fc2cbd669986306d1d3c6230a93e88558e6b055843ab9df55d72a1602ac2879c227427f276b5c11c2c0078fd0470d05f4f63d33488ff6eec25b2d95da407f087c606cea99ba11bdaf3e6f092bed4c21b86ab17738c4380ddbd95b9a6018322b7304651a93b31d6962ed561e46666542a9c60891cabf50981cbe65b31255c924d56393a7320772e6ad6c006a740700f40eb9f036abcf9a65178cdc2169f50b9ad97e57e5e3800e2df933341a94f843608da24ff00b73f5cdc07379fc401eade22053c0202813b9aa43bc1d10b787707a11d88055dfe6c6abd743b4ab7ae2a0a094f5a01c276d55d96cf0ed6179ed9204d1aa6612335fd3d843ad23d8ed53c64af33e3c3c05117ec05577bb05ce963457d4a1017239808c4cbf0cdb9a5e5025f96211f1e161a9f2d00b77557b7c9714340fa89651b00c8e028bc3231d8ee74da2d2b11e25a5c0615403c1c89434bf826d58a057282d2a39760744864077603a939ed665edfd0e296476d276a4509d6a44bbeea5206a8c08c5417d34905515f738a9aa0c3d78dc21b5f5d9284a421c4bf17507dcaa89640b9fc5947f0e0317ea6e63367b543ee19a5816425cb3277da6da522b90ac88ccc4b7164fe48d7aeb6dd8f8c9862477c19b32b1d0e0bd437be8d5a66291fda6ae3413cb2941c89eb2397d91024dd8b1c000e2e741d0381d88acdc63695d9a58e70af5e72abe1a54b38717fc57a519f7f9e87310555f9605326a44754311e25a5b99b88d9488083d0a4833287e6cac4ff3a5f040477198357e8631f15ac5458af88c765c1467d68cf77da814443f5db5f8757010f52da33c2fb62261290671acb10c87c4b2c21d4c6927385925b92da700f5bb6e7097c9884b1a54e57050f5d783aa09e11c0cc43e5bbbd6290fa1e26ea4e3b220997eb6bb8e80a6d181d8b7f83dbb33b304e61c2d8927c958fe5e82d386470434ed45fc607448ba9a1418f71c82c6607b56e4415a90ebdfa8750a18a391365d19f5ad7ac37b79131d3e6a2b126a4d2da55a0d682184029806ac215de6c20ade7af259ab8341ff734a5fc3dd5682b98f17778bb31a7f2d9f9263c55e285d5d264ba4b871fb3b8717348e58e7e23f95bf3259da357eb81a0a108954d922e3d57db86f7a0257ffa65ec6a2222413f892d901d03d96542d9728f1145133af1208f002487ab83af9d1eec63e2557b5752db1f81716ebb6ce9b26678fe8d209f828f6bbf8d299ad5b0ab3d6b82a5b8525270dd567ccbb19a9d042bcc61cce94223876e141e51929fb7b035822878009b8da1899747813701314e0007ca455a0e393d5a933af0256eeae6465653c8c8be268e131b70eab92e8122aab19ffd3508c4c8e4996347256e6a2e8198cd4cc7e717b6035892e785019cac219dd957bec48e6fcb6744472ec90e7794136a5edb4673ce6634de0700f8a8afe0d5c915941c0f8307297cf5991b2ae1e7cd6fd640ec6177e1d03756eab48618ed21ded0b1671503655d289dbc81f3995d6fdf3a106541df601c18041d29b4f0c7492ae537d52b050168002c3289056977ff23fb553d88e32078edd71289107252c12b1e018e05d02e4530fe3d6f89ff520d0e59c580b9bcb3d68e8868ea834af13e60cb15e2a699d2d4b8a910378de232e4816aed227197af9612516b031b92d299a1c0fcb3828b006d2557ebf89db9eef4716eb5d89712d959f74b1c5d2ba49f057fa73c4d5a76e7f40c75fb8c570ef9d3fe8eb5d6a9db129c3d75f3b2bb9b4c179e1621abf5bb395e32b694b8fe7f2a8764b72f237cb6477fbe80722d9f97bc56593f79af73e5d0564d809d1cda42b884a6a8d22a574df84c9d87b206b6295741274b86f15eb7a27c4014d284c3319ce11bf02128abe632c8486c3badf864186c1192e31c50d46c9cbd6f25064affaa75725079557bad8cc11d6ebb280cf2edca2140416defb6b3196597c970da3fc152f6b0576506942fff51cf084834c2dfa1a6b0d099dd023537c129b6514d87934a4f96cc5b650815cea81d263bdced0634410512d3504c49be0f34ce522f212412f8792b0b8329bd3faa1c9b19f08d1f4a1e44d6d5b147ee286b1a1ce57446ed58ff17675160584872f4baa750875de18923f96280474f3fae9114f0bdf663c59483101bd158631145a64a8ba3c556b98214e04d3e24d274497b678a6b44edac2e806fe78bf4a7ec2fb8af68e7c50e2ba6931cafb7fd7f933dd60edf0ec510eb1994e5eafcf5a3c85e6f5334f0517aaeb4f184fc38712433cfd104e7b88d35c78cd6ecbef99a99d45d2043b0f51c275525e2ca55f134876d374363dd7261708564694a4c24f75cd1f0edcaecffab7d9ddaad4428bf6ed3c06fe7f254c5f6fa93143da415708adaa270a406959c3511caec7e72093f378c3968cb1819363b247789074abfd74872e3f8ddaf995d2f9861a951b77afa225b6ba33074a39aed98ebb50e9f7ebcb509e72f1a77cf00aeef0dc68c5ec37d7533d97199e9d9caf53f78f5647e83274c80ca781b303ec29f6cd23960314f532e052d7660c51e342576aa0f59d2ec1bdf86eeff9799719259b3360bfaa2cde647f84ddd485dbd22481912b55f3b980d8d5b26769b65dedeefa85d3ed93022c8552715a16bd165540a711c3152adc43d1b459a3339d94458f74fb7ed6953bfe7c557309f3916b8e7ee9271cb259116954c48cc2a36a0edffd20aa238b5602f2a31c965a62047ba85bde3242d77c80c397c261ac54c75642d2cef69568a99a4a268c4c781e2a984d934199f45fdcdf2c5bb4ddef920e65d56df42cf7edc2f396ebe33fd0fbfd1b76d51094f814a0ffdc042357223743e67c6b36058a7a8f39e3c94178a84fceb1aec103cefaca962859babedbcf2658a35796dae48296d39194b65a3c7e8f73895e65eb7da8a90cf786287c2e462ccd97d34a2ba20fb71c949d41f517308d98925727ad49334a9669def09ff11b5ecc8ca34998954737746cd9e022389082963a83c349417ea372fcf479f24f7578afe8f6e6bcd5ec00d9782e8d77ccadd600a5a811c19844bb00b3a78fa49450386954499f6a0888f2366c46de885b7e7442a6cf7101bc0c3d16f8d88e518c4f9a38e9d79758a9fe7060d6e0777d76fd4ad780a6ba378e0bb9730d44ea50860cf7cd4abf7756f4399da76d30c84aef252ec102e1b74fdc9b7e2192168febe3260bb8cbc19bc143f21b01193516746962df1d97d9d52573e91be3589225260b1a6b20ef5c37540ffa6ad494d47e8df3e7672504a7e5ebc82dee922d75677a57d54a07aeb7020c476e6c27a96712af33bfba8c71f57045541ea608b1839fa0cb6b22b63dc821efcb3c1079c73789aa7804724316927b60d888a105c15a0876e9056751f7de4c928e6f9c71b7e1384577293693c242133259f5fa24e13ebf113463ef54f5ddf8b09509e41e67a91c22a0ef0df144f94976fc3dc6375dad01caa886fd7033d0d7010409da3145663640b980462cc3e9bfbfd16e859cd652286e6e14ba1bb86aa49f904cce1ea009c9e45c580d430814d2e55e8efba555d0320b605ab50c333f1b444fb9c38f6fb8a93fdaca058b5c1b649d889478332df77af36c8accb294f1c49aa01fd6a083bbcd8a43ce6193eed2aba936157526b8880cc13ce0d60fdf8e384b19aee69261697f4c2eed472d93f2f9495434fdd617d80e806922122e161c9921c6ebc6ed7fc5214ada202c07d7e180c541c32b45fa0689d96fd01ae7351a9ae3411721a4a5223e68b048b4787e2c3bcf101ddd1e0ac94f26c2def2fe112c0d163ee00d84e20ab106a052034cb4aa3297548e680cfc4673be31eba4d33e63ff6013cdb12a44a3a358d8ef2514bc349349d02217c8cbaeb24c5cbf8203477d7f39bcb384ecc005a50dc2123fa257c7f160e2db29a792c153041bbdb6d97de2c67af31848099d4a142340ac2f48e8cd213e158c2865394377be569b78b2bf4567e366a431333cf4518986686d8aaa907406ea3ad0530a1f37b009c9c95038620bd3d62a317f0e48ef8d39acfa1904071f6fe946cd7d69e0a9c5ed9d32f14253dd870ed50db6b395f0942b9299035432dff02e32e03fe453e6663739e69feb53e25336fdc274d23009c9997779239b4c937a078cf9a610ebf6e0e38fa5d8e2ba02984fd1db5ea21254d7d736a9058fa44fe2acdc060ffc8ef8fa052d673e2c0d298e48d8b4d98219d7b6f90148bf439265fd03122211858fc1ccb5d8e82db301d0feba90572ae22ab8abf43333e2ac3fe3055fe9d0ef12767f1cc73abe4b4c05024dfc344a4b23ba240ec80d1cb25b71ea504b89ab56533cfa7748e7669d5bb9d47c522f819acbf5cdc8d8ff039c67f48165735957e5cddba1973eaeeab292aa6fbfcdb385ade9bba268c6dbc88067c6e69d7453823c187b7749d1ff0ef9ed756c7545160c2341b0b76662a59a9a6e0534f6966c3037116e854efff1dc391dc603bb3486e614ef885691e9c7443029618fb213dfe2ab17f94320e07f0213abcb595011e063fd743e0f278f6cfe1a6cb773a320e1a094985c3127fc7d20ad40521a02f577cf7dadf633cd12a340fa09bc8a97f121d42a51a6ab9fb19e998bc4a5eef7f68793d6873096d5e33b67fb847d0ead872c70b6b7d1e1feb4147eed9ec26faa212ea96fd852e8018287531fecb3a45249fa254a165799d0e45d7b9cf01e662400367f401cec5f2841bf0d8fde4fbcea783c897d46b6b19a60aba3c92830b274f7f2e53366b02a262e73c32522f5694c2286427001154575935556bc726be561605328b418388acebb14c1bd10967bba31bf4816e0cc2af1b1dcba0fe1606f99c44eb83e8d8ea2cdf63cc5706a70f429113f1dbdfd2a7bcd809589ac2c6be06e4987629a387fba133b8a93c00560a5b5b2bd132b211862ca11edc083261665547a9ea7a304db22ff3fa3c3d529d1db09447da231eb07e3f953cc907b8a4c114a073af45c3616bebb3abba1a99fc2442f227390a8d90fd69ede1f14429f5c0ffff019285455091eadf22a7805284b631a741d79d5295f68b4b23a55701104a923640fef17a4b00c770bea5555677219420619015a02f978800c76a109595ccea6b9a0aa436e255e3bd8d9eae227837e7a0a6f3527657199a45abf161554cf3b424a201d797037ddf23a352bbfa8179472b6c4742edb6cc56b2b92ae48f1fc940505858dec603957fcd48758490502be8d4ac0469aed8e3e28764dfe1d1200c45474f5b7a9971cfd2f37723faaf0d0188feb9bd4565e5dc81c4e5ccbd42285e4b581fb748cfac10e9a8f12d68f12788d3caf1c26372fbcddf26fc5ed9afa250f581785183a64b1d256d82ecbb0e07b92f4b78552309542b65f39c6ac3e24252ac69e835413fae5d364f7ab1b83d023928f766c7ec4280250447e88d0996d7df584adda8304c798428d9b37a036e87f09253dd166843f270e2e08864ba826653f10b37d8025082d125a1f910717c8614cb3477ce90d62221692d4ce6dc2891dec988756e92a6fa0ea9ac7c7cc82be6914948e3be05b4cfed7d36cea2eaed16387d443dd15270d9a39ed5a95d73828d052d24315c576f41c7050f113d2b0f4893ced451f36f5847d78adc7c6ad1561bbbf4ae86ce2bceb1e8b19357095102146590b1972dd4aa8a688c007f31d5605f0ccfd861bb608f1896d9e64c23611e19f1a3e6b5f24c9a094f7d24fcee00ea8d90f432507af3abd181339f88ab9b64bfa5bd965c3bb6251851495e0877121ebe63edb4e20c2521e78f1c17cb6c50aa68668b4200c16fab8697fce5ff3731641ddbd768571cba3a6902d889b92019ea05ded58769b508f864de9a2ab00f9543e6509013cde84f5a44a4c3253b95a105c2c1cc81d0bdb94c0bf23d41891b0bf3def0f3c817d652b9a7634c0964cd54b410409beaf7f34a439dab1b6a38dc4a25b476a97a52dec79a5ac2fa2d0ff922618907b8534cbb3a9b927eff7f4839309cdd2125b52b24591acd634855389879800cb86387a0d3311cc14defd9197020bced826c33fe651a6d0029b8278b32ae4778eb2d934b6888d1f657307c99c9788429027f7040b71fa6766633d8bbf86b63b9b2dca4f93ea3d8d101422d8fa6f98b0cfd5d8b13c30601025de5df381b3b92fd2bc179c4f1587d8e36d2d9fcd53c5c19fca13a44d44b8d090e51b9f22ffb70bad5a0fb0e75e7a622f967333264437d5d54ad02e17d50495871175469c0f0e57c62fb36bb79c33b4922cdf5120178870c314ae7792bd1b6846ef6176d00ddf82e40466eebe8ce0d237e8d687d75b4aae6806031d2c9cef96bb7293fc4012a1ea32f4bf35e0b385b02ec2291bc0c201aad444451250e52c38f414276a3f1e4e3c563bbbbd9ca36fa982eb68df53f96647d9fd328a8ee41e46bb853a2940779400c34a4600bd501286a0164884ebed36f2d2b4c15a0cb8a7ccb2ad7572e0500dd241d09e38fde7a578f7ac75b0b79a33083816168c681707686b3601d359f917cfb9bcf01542cee8b80cc7f1e20aa67e7c2dcf3419e20e019f1a3fd6180989340e903d7b48cd368eb1620c5ec7bbba4b89c5e92a749683c7d40e1d357c51f91da16bce3f2857255f6d4a03df156f78c38b61377ddcd878ab5274891b9b3d5368e05d8c4bc938cf5e0d08949e96d64ed4734995b96e826f7cae171df7b96e6a6d40ecf689b27c03cab292d023541612cd8a23a082c09b4bb6af3a0ab183733f9f02f9e374c504f2305d784988268592c8ff5081140fa8714587ca6505999ea7be3692e3f8e00f5790ee7f42a383800783d589f8eed879cad191dac46e8a052b5d50307d41cdc086c0bf3b5dd057c6229f33bdceb2215460a6673aaf3bd117173f7d85be46b903f9f7e903315c82e3a009c041f58072cd18231c30a913ada7e667efafbb2b9b0674fa9bd748d23e25ced5b1a59180b28eb6d7504e34db6aa42864c9faf9152d22cb46a5380f597f8a2ceef084fc508fd756c2870dcd3c2b04f57241b957a22ee024053b56c9d23542428e10c5933bf720f7fc8bdb3dc1a51990aea8fde0506595ab68fa4becaeb9ee6af45ed9c35a6090cd3c0f3199a51c6548197380ec3c0234627ee5da2cf6c8fbb506ef6abf8ea8f5fbda8b25dc70dca53cedae3d3b020df25dcc104bdb2c4b3fab680a5a6ea7fe0084581ac4e16213be850b7407516b423efe75a19ff53c7219e02f04277824b36c85035682e0aabf1fdba7ee3c8c21a32e475b214fd98e1577d82cbfbe48b5a57aa0292a78d90155aee843e7ccc03f7188144de9ff92a8146763e68cbe17d17e9edcfe6630f614c2a9de8dd70920472c2d8bd7d4c231b39690072393144b55a21014933aca4a3a7e214a526ef433de70f9c3f893558c317849216566c8c0d9bed2c502cd2d2f5b09a8640b43543664099a337f0d81dcc4bb17441d05012c68ce82c76003e7d88c59cd7866820a45b9ab2fecfea30362d4bfdb96cc3b7f96ba9bb64617d45b7ab0a3a54babf670a8b9d1fa347ff81adf8cf3708224451246303b69325197c7b458968447173e89a65a901ccd2338dd4e378bde46c06c3872c1020c56c187d6d96f902adc30a2db9f22d90941bb382abd0e715cf3fcc83aa40ed785a27612a0a9169a6114ef342d886a02518fd05c36744f9a99d42104fa4ef7a454201a16251d8dcd14ff49ef4078779fbc26fa8a956f29f6934999a7ed6749f09f3431ffc311dc0e00687ad8be6819728aadbad3626efc675c885f9c4b793d0699bd88f6d55ff45b6b8d6c4208d9ad1142f6967bef8f0a8c0a440a2d377573eaf41cf6bd99d39fe600207c3a959e61ebfa943e754a3703e134ca3e2d88f6799cf8c3085b25bb448355d4473404213c1f5beee9305bd4d3e571bac522813af7a8e9446c5d9ff879a805d1e22750cede6233c42e3fd93c044bebd29eee625b1ef1c966d4adf325eba33de00d91d9fac9ea7eb23ef3113f6d3e33dd87a9543a4e67a02638383b67f3109c1d2e814de29fa6f386342386e01f19443b0a6bbf341f1a7c06462781346cb090495cc2859a61a7ba46cd70095cc2e45846b90ebb9237079a4ca3053172245e20a824ae1ea6146ad6a54502aa828851810da668129493e35ad870052019c236d81c97891ccf716a05390423d62800c91086f16a11a4002443394ce4b85dc477611d4adb05a6d3820004f3d2fa8b5a10f97955105b0a4032842d102800c91096aa1e54f00e0a403284a3c0c321f8c33b0f7185932151db87a116c45201163b346108c2f14226b00bf57dd449208d2a71f578624c0c40129aab360c2ac58fe88a2495e88a265000a36085a101b8a076f81131b982574cacc85891a58b8610c2f7d7dd8d1b4208312965b7b4810d8f67731d707c42cdb06e494343d3e30dd1bc1df0fdde7b106bec616f29e7a8e708bb64cb117659d3095e5068dfebd1bb461226da3c8a91aed43b832685adde108e5de510576f68b4435c45191d2432e016871824aac20418c21494af4fb877e00cb3640ade01f7b11808e18e4119b81f6d80726284318a4a052f91526ae3003060c211960861890699515144060cb0c0f2b242b96d710330b690820c337eb04617a40e0ce123a282490e2f68b2c9915442136ed88109720a966a60298fb5c00b2c5f532d180296ff09b024724114b03c4d0cb07c0f799c298c80e581b0004ba2179841450817188e61afc8055520e2420aaae0a46752564cfc88aac8821fd4e349c9c1046f9c81815471a5671e9687444d5081257e445530c1f934d10b4455b4a08f458a16f3b4b3cc018646f564a6f9d062ceab8aa7f91ba2812d03eb4fd2cbc22771051357d6537165fd7165fde1dcef270d45e2b69e1b4a5cad2c0b5a0b43cd078c92daef27716541c1d610861d7c84d10a8e39d6e5d0bba1d87a68e00c6518d85aa181adab30ed8c423bf18f0bc349c4022f70e30cad6450ac5b759525d6e476623d221620c1d6611ad146e658d04a7b8105e79319706e293fc409bc9aecd623f072b86edd7a059e0d14221a02b6ac28d089a72165868a467e5cc88f0c2b318d88255e2172c1b99db8f410d4a1a780385827ea6bdde416035b17eab763f51467fb09b4e2c5145087c6c1c3c1baa5851d6660ebf1e6d5948f81ad63570ab6b2f7e5e2e6a6025b8dddc056775f1db3c495755f5ce50e4a23aee295b8b29a495c594ede0e8b4993b8b2bedd5e923b0bb59174925612adc434620df69caa4fe24ca4d236f5b617b1c1c0d6ad7622013590b493d595591ae9b22e2b3166756824336a3b79126da095b66aa41604bbf2adaeb7ba8c388231ecc22bd04a5c59584687a3ebb01f761b4a4c1aaac42a7cf59368d350da490d10a125bcd5c3d9c50855086fe66120423d78330f5f970a5f51e1233e6516949211b0dcfe78b873a3c2671888df7d182a0c4d4a26aaf17ebaa93a9758a460c188c6d83a098481495c3dec047c23a70bfa895f1956c000d351f6ba93e7f02bc30a2618e257861551606a476fc73b569a41d51690e439278c4a133806247a3739f0b3a6402ab4a3efd19b61c96676f4d14562f68eecc4505330a96748a445fdc9be1b437d7f2a9ab87a7fa7d9a17bf4b0f45d56f852a94afa8ba417492f92328c151542a208c78045a7c3216f26bb09c34a377b375ba7194e213a426278dd1b060f16bc161695b3308b38f33e2d6cc205e8c381c4d57b443c56485cbdc3f7f2a352af646088e2ca1594092a90b6c97ea9ae0b880f4262cd85e79340c2d3a38a952b6e5c358f488aa2c7053cbf83756932bb02c3751569f4f98226d87a44f46242a8245b4f713581cc0b99c76c2aaee69c4f68663185de259419349324896f9575acb68dca8a1fcd20b08f3eba75d533f2a3439a9e917fbdc252c5337afc48c583bd8f5dccda54cf5cf3ba2c0a23248956f04416617959f3b126571959532718aaf17da41f6f4ef1908ec4936e7d2912500eccf0a927ceccafda86de131612b2e6490a9c7e9a8f232729deb3354d8446874d9e4fb8c7e613ceef511122ae260f31d40c85e6d0bb41e1794b08cf5b4de693882f0bd633f36d5bd650730a4f6c8a49f19c38ce804cb0e049e5098c82e73c7659425401cf0fd902ceaf0a9e9fbf35847121857b38b1458b6a0403de78e38dbeaaf79773baaa5bc37001131e24426a0655c38f4809150c8513d8c89c39e79cf3ae06d0849ae147a404096220898254f285149a8a284480c2b22cccb2820649b66006319cd88113b30c455041bdc28ad904138ad044133cc05907ee56b203dc444a6a804df8112911c2f9780afcac20fcacaa6403fcb010a8837c3c04a08df5f9fcaa80e31fdc423ccdccc3211260f2e83072d4b8823624a11e2179a2cd8befd10c4f54f9c2cb627d4a396f9d67de92f3d612d69c9772a2b0a8f9f8e54cf97965c7c601a5ef5ac822fa3c13aade97b86ebd2f10f2f33cf27309f9f925ba8897e7baef4bcc2b0fefc2047820101a80081e5b9787d2baaaf7ebaa786cd536f2aade0502e6a42e2576df33ef47e655c50bc4eb19a09c0ee3bdcbc50744b1c46a02176a8042e87ac2075c80890213c506ecb73615f3447dcc13ef4f06460984f0415844dbc41c0861eea109454a2a8913275c91860ccc09aa8452f6243a41152af386de180d9b0847264355961c21870952939cd1abecd9ddb34fd6755d274b8bd14df21c2ce71467a2c47deb17ea33cd7330c4469f6234241af8f20218535dc4c6d1835b69f992065624ad69cd69a5661a6cf3549c6ee0be59060b9e161534984736007eabd5dbd177e6593775236eec4abd2ca1669a49d493cab48269a494793be02d21ae8c8c9e743dbb47645050ce85d96a5352c809ea15218c1d231ab4b18b073be9d6eb395951a5d7253d768fac7aa67948bfee91a77aa62f311febf3d6c41093304af9ba2d2b81dfdb014f236374c2bbb03c8221fc91bd46bfee91d46808d2b17b8484c13c51e3e19c87394fdb99f71de1189c8842e5082890b1f0fb2a6641f8bd205ecfcc0cadc84f2104998f2a1d203ca242fd9471680634e22743515f54f879416074ecf31a45eba35b1f5d6b5dac67208c308a23b2206cdd7e01872451dbac30ac53a91ff6256a4b13e28d0eb51fb26d7ae24cfcfbeac925d7cd3ae6cd32d6a5b2e45581a13298a424087a4410abd74d829051543c47a476e592205e1042b4cc623df3da46c5939d66727b966d17d378e8b728593a69084020608e76573df3707ae63db3a49324255192b5c46a3224add83ed633afadf44c3c86d59a4a5d2e71228b52954866c1f17da506e1288570944b969c62ad41a44a67ce0b8425118e5912e18adf152b7268a04f26cf11961addeeb86a29e59452cafb1e4c0a0c35bfa123642fc13125c12032019109aeb0cc2004cb89276343f366e2274da5897d0921fcaaffb85aad62c72692f4f55e4d05164044db8caece9be97717aaf8f80423019f923aa2a8435cc050e58b3092040c223ac210ee0b0195c41a0cf715aac4bf1e1fd46123594118ea8005cdab333f6f5f46f5b86a2a389b58f72d2c6a4ec15c51a3d03c033de207c3d7df0e1ce094efbdfe7c4674c767af0bbbb0084f710553576f0774a3d14835111452e0fe293510c25272f1440e929841831f11144db05054940a23e445150b691b9cb69936ac61c31af5456758f35d99029110ac74510d923c09a36c3806ea0ad10ca4d42133705ee16e32832c38e7d006894993f8c48ba0a049069113f990f70c99028614dcf30c74a34468d5488648892b1d54221ff2fc86288a081545a5422f66a23882df0d36a8b04752e9b9b2888b22fb1331913fcd07912b898658a9844a5153a82280170b127cbab5e225550850851b54f3cba2f6e592b6d1c0fb43da6603ef4726ef86c78d783f2e8935079822d618e034ef4725b106877701de3bde3ade0478dff03ec4126b66de875762cdea3d80b700de0178cbbc01f0be6ffbfefb708c5863c33bc7fb500acc5bf5c6f17e793f89352eef9637ea7dd824d69cdea6d794debdb9f7611288040625d1361e28e27d206dd3010e1c0319c83e2fd2433cb71b1478ee2c423c3796093cf795209e3b0d093cb7159ee7ae1281e73e0302cf6d0610cf4d45c8734fd979eea2073cf7183f3c3751059e5b8a0fcf3d14e4b9c170c07347d1796e2f803c37941fcffda487e776e2e3b9b3e0e1b99b34e0b999e43cf712fcdc53e03cb710039e5bc9029e3b89029e1bc90ecf1da4c37374e3e6396649c073c4d2e3395eb1798e69d43c472b08788e5572f80f824b2592c915ade30d8c05ee297027914d6416d2897cd22da3e8a0a3d580fbf4027f9a0f0b1c27a29ca85916f5d83c04f7fc1c21821f2b027b84c5341f430e7b8825f21efb33311122ef5b3d43feb49e2144660f914f22456d03894c216289a888101912713f295e44c126dc9f415349b4a1d28c9e4870cb3370a781fb4486bc48c4be777b10b1f087a2665934053ee03d57e9ecbce73bef391127e27d6946ace9795f52893517789f52227f96c8870c1972229eb6d3f32197da4ecf890cb12a2bf46422fe13714fcf909b81f0900f21722831ccf2c10b43223d3d440ce979d47c10714a0411f6bd9ecf887b3e7bfe341f3dc7897128d6bca138462c8a532215eb53e2e081861a83f023c24a2c8b5ed14b5dc05ac0f6584c07d461059f8e212c8f53c01ee04258037c0296e641581c2e015b80f3d81d8f80d5710858021c087bc385d899efd8d57fb002b80f56e6412c00ee007baf63ed81d8ff87b5e13dd81cf76163ce83857903acea3916c7b17d398e4d9d01d6e50bb02d5780457d077bba0ed6f41b5b7a026cf71eb6dec672afb1db1160b5e760b31bb11e78086c112f6233f00fd80d3c5b0cdcc76ae020b01db8119603af80fdf17000fe00fbe3e1015400ead06a7838dcbc81fbef1ad1af8014dc1fa2ddc07d0a088105f7277005f7834803f7256005f779aae07e04cec07d089881fb40089982fb3b0f1803f77f20c27d1f86703f0818b8ef8028b8afe305ee03f9d18313dcf79105eef3d00026b89fb304f7f114b88fc38005280009eeefa0c34d16dc4f0016dcef7105f76dd2c0fd1a2bb88f802ab89f43df0815dc0f4111ee83a0ff81223e3250877805163c6c64f276f40f60a3016ca4b111071b0b60e30e1b75d848000bdd88abfe0d166689abfecccac22b71d51f808502b0300016ca5808806b2195b89a62838563e4b090c84229160e5908060e0ba3bc58e8058412577d1727fd53df642193b85a62e1145088db2c4c125748a0076c11d648073860717aa6bf013ba467fa1ab019b0af673060ab096abec5e101880f4278ac103d6ac0c113ab888878bd9042682405212a707e439fefc1e00753547bbc6991cc3e4dbf9b8bc0e0be6f0c6598c54545d1e04ac8c2c6bbc11a2690568c11bb7edd376f91152e63656173b6954d81ddbe0b9bf3bacfba15f7bb4f780af20896f327e2f8a69453c67f219352df7b6f0cf5bdf71e15dc126adb1045edcf29a9d0276574604a6650bc8c31c62069d5c0e24abe6ecbea2358bee79365d0d8307663ddf0411c610f5134d210d2365d93a04250779190b7a3d3b89e15d2f5057677bd8a7f2f25a56525c98e2c8661d8cdf357f79bf5392d879a80e194f835fc891852a1c4bc52cc07bb0f6177778c11c20b8439a194f2fdc84b297f1ac347268c6088f4c6eb12580450c3ea0823129498578af920bcf94891e98b1adf0da59b418d7f31461957502aa9f18d05bd1ddd59d0f7de4c42954c489de8a0eeee182ca1345084b14a7777cb0821c4b02b561182f26e72c044a9199b41504281d10d0c217c9c126d2ea1a07773b32ccb3e5b80c9a9051c3316239558337f4571e38282e5662c5e4dae2566d02d8c16e0c8022d6842368be2869325f26e340a4bca18638cf11acace788324b46346267c3cee2282d14acdca47309cd84f2c2283a57c66548c6509d3938a72029aa25ec9c6c09ce0792690e4c804b71bd83a4e2401c63e2d9cb3c808cf798db87086f8ba2090c14564b0bc3f114b5985d7fdde6b09a194525e4ad94ea0b1ae6b5ed7bc52a8133f222c5880050a52209f50b1d2a0a4bb70325fd558c1755dd7d58515298333aeebba4ea91c40e957199411c5ffc4091b167eb72cfaee7194d3ba3052ec695dd888da2cb10b858d9e3b36a689186ab2634d0b8ccf52ce4cca5399b5cdb72536a2b70537cdb2ecd9bc75842f9b5bd3ee7865de8e770c0b0bce28fbbd96dd2dd3dd1c0c2abcba271a5450f1041b98c4e4654d2a247659930a2aa80882ccbba1b1492d4752e6dd6018e66305459558ff4d1d64200e5d7320928936ab9e78759d0820b3b22eeb9af8a552bfccbbc98a301fc8404a8f39e79c734606556089cd255c9c21e4032ba0200963a461ce39afb07200ec08b2091836afeb92b28208455e010528b8b07285155450640536b358504861ecd8b32c8ba8891c4461d5543da5ae08d9228b102e820610863a02c2007050496208200963c8f880a8092a88d144952a95841f511364c0b9d6940ca6c07a227222497d144e9c70a814540a3c323c2b125a9f7e863fe01b18fec7c3f0f69138107ef7e823b419a80d36bc1b1b6cc891e3dde4c81113f36e62626060de0d0c8c4af56e542a1c38de0d0e1c2f2fefe6e525957a37a9948bcbbb7171696979372d2d28d4bb41a14ea777733a994cefc6642a95de4da9f476c4ae7b3b62ad1cb76d9a9665949248a31186bd1b0cbbae77735d96f56e2c6bce7733a7946fc74d778cef2646f86ede8e688120b490c016db7f79b98b7d788aa402cf48238c33563046932c35938d1f5abe532fafe3964bf0a0f622312c6198d4d1df61ee7258c271214ea71c27883aa534ca79394ff248406ce144ed96d52e6194b6b18725a8c261ef7b332d3f86d9702fea2d371fb7dc45eb01f5963ed522c75136ffcc1cd786f755910e31e9305675fd616cbea05cf2638c375b6f71c0c9675eb3523870dc9bb1d475c9613bffcc693310d6b45399c5690686250c0fad8871454a8653e01930ca29f0f20a9651469730d14aa70f1761791c4170f04843cd46f04f631f1c8f395ca2fd60fa7b390cc4e1637d52cb6e4bb45b1fc2d6551f02142c6f3a7d3a2e8f2d3b461c2381038b0008b7dc92f27455401e6eb9b4ee92bd351f5edef29e96471b9b4d7dc80ff2f1aa508f3f7d5a15ea2d9f2e2e2e2ad405f25adef2d3adb7d8d3e91c10885f3e9fba3cdaa8f3eebcdcba3e2f6fb93eaa5b3f33bf5c993d6a41341d554cbcb2ef4f631c8fa69b21c681c36626b09cd6d2006ef9219f3ef34f631c372f81e57b9e5a6e8eff696c6520bc04366952ba4dc4a8f24c2e6c02ab982fbd09de21958eb2790846bd351fa5d3f7523e00611e67e8215ed9435e97538b3545699b1c872d7fcfc6457572b9b9e2d35f6e0eb6be64b5e3746c92043f2230b2c0f81181a10453c971daa7ddae599d6dfb3c82bbf776e9956996be723fb1359d79a1b673bd1157f3beb8923ff81d93111b7104ffa06ea075a58aa243a834d389d4d242429daaa9d4d1939427543d691c77544bf78dee68e78680b90ac36a4da5e454d1cb03a3ba1bf7ce665ae7b9b9699fdb5595be9d5eb3aad2bb6b73ce394b976aa777d25f5c3d4ed44cf5dcf5a9efae0feab6084d9e15c5a1e639294f9ff2749252a3526aa729a5466f9e534aedb2e5dbea90b0562a99aa8a47b56d5d3784aab3a56f36d360b60ee5923a8c7d3d93429d6eae5dbd39b5996efe10aa39b59236e7a99654a7d39ca95a9a57cd52d54ca6ce6a360bc1735aeda5aacd6b93bbcac2709607e6aa3ee7b5b9693cb9080dcefe340b3129bb32155bdaa0a5adde7c4c927d33e91cc9871e92ba774b5b95f252ed6752f9513feb9b3a9adeda0fd94b6f79dfdc1723bd49a49ffa99e42e49dc49efd65a6bad358e747992563af726bd3f65777a92cd437ed82eaf9d5ad576ee3463b5aa36eeda49f49a768b54a2ef2e8f362ad5764a275d9fd2b9eb73d2acb499de9f894b579e744ed95f46c9cc646a928944e26e5d3b3dc974f312b82f7fa0a46b5c93fab25b8cdaa48fdee4d1cb3c046feff7b0577ba6bb87eeeeee5bb557bb9db3194d3d727faf9efeda54bab97637a7b4a734ed7df3b146afcfe8a411891e27ca3f4d9248976df3716b87d9a26a9c45af8f3ce9509ec469360fc14ddf567bb5dc711a6b366ff72265d2450084e5297ddb3c84c719aa769cc6a39fa9597a331398f497413c1a411cfc301f12366c89a52650eed466219876d22451524a9a0dc36aed95102c6fde9e1da7e7fc66297758abca6ea86beaee10343d33396a1fcede39ab43952da8a9f920cd465d7edefcf2f743cb4f4ffdedc88b9de3ac05bf6d2fcdb7d4cfeef353dba1e754d987503de643e438ccb9d5eadf36154f8e0b73b94fce6eaf36677fa777a76fdce5ad693afda17e3e3bb5aafaee74b5fab9de5a55af0a08d563cea3eab277370bc1f4d9cd42f0fc96fdda6ce66eba3cdaa8dcdd397dbb3ea777d7a7f4ed3831b34568f0f66933778bd0e0d34b41a04ee9be97fbd3b8e5f2dbcdef6697fbd318b583b299093c396ea3dfb296a89b97c05896693e489f36ce1fb8ed34bb59ce4d6a3acf2e6fd3934837d92c049bde58dbc47c7bdd68b0f4c1d51ed850254a15dd7ad5fd10d33bab65aa772db95495adb84b61f5e6d576a5ea43747708181ad25f767d48a7241317243b074fe9b9ee4abbd92c046f2ea4d251a77a1caf6d13f397ebb29d74bc1d75f30a6f3765cc45be74730a754f37df74eb6df918fb7aa6abdf6c2efdcaae0f1704ea70a7a7a36eea6c863a592060eeeb989b2c4f8e0c08737f3eb8bb5ddaecd5769d8d38b3b97431fa4c2f0220bc7d53653116e62a9be39bcd500896ef2c0fcc639e592062ce599e1c5775a8f5b0bd6ef661522e4253ada60222e630e789b9af612e8feabe9ee1b69b99c0f4ef3e8a49a4337105bf2659087eb7acc63a3794b18514304402de50c6166560d4502aa6ac406b8dab98b1360196a5ba1b8bab9ac55594b8d6c08c261e51e191e0080446c90684fae40f1999b80201a51cd4811fa71300dc3db0f683ca8471cbe1edd88050dfa9d47eec80dfbbcf0cfce07be87729b74e424c133ba034a68978f311fcde0eec8ac4126db02ce24cbc74030912254a309c624e81af8871053f31f02312e309a6314d508941356363e08612b1260da5063eca673d13e11838371437e2ea3ea958514c83bea73900e83e182f8482f426bd49ef53ee3afda2c25f7df5d5d745b20eafebd7755d570a53dab4618ccf2b7cfdba4ef36e4846c02b983e1b005fa7a4872f4aa22412121093ae0e1ffabe58a55a9f32d714421936a882e9a30da660fa68032c987e512d2cae6047a3853a1fe3839a57a75fb50d865d8b922c8ca4082f6a1fd6c9c4d588741d34efc600d8fa693cbd195d494d27d2896530bd8f424caf8eb882d895f2d154a94fc6c2c2143170b40370480d4d60e21a70fc7b107a80c36f480d4e0eb046144050344412030504a879e395a88f480854f02302c30b6c00fc8882a006ae740535939a2015bd9b4c6a822b7a3b9ae082de0ed201aca84d9c8ade8d3c4e63b509a928734fc0fd8b54841b36811bc3198a0e864141f8508a5058703148412c8aaba0f8a906ec22f936e3f268a346786391092acc3183c478130a7cfd208470076b4008619535c88010c2256081d026874873060d9630288407086388868d7ead060d1b314e01801803a08235e59cf20768e05c57270802186410b040adc68f280856c0197e444120838c3174bff7fa3df8221614fc0e5feceeea4511be00852e7473818d6e34d8884f50088150b3d7cfe6146762bdbea89d99c04155560c084fac0706283431c5098ab08431d24083921d98ac1da2a8008ba206969fd5b2e2185144e1085c14fd808c3344b12ccbb2747c8185185f68014b595560527d8104f34117c7e69b04c09249bc81922c2d4e0831243f359c5df144ed5321b8be30823005cbb78ebc4a475edc513e4bac5dbb34229f21c6b28831fe000b8635c08fc80745588915ea82c5145181679048a49f62b6188b62428d2f56c69918a56f6adac6ca79398ec35cf5540caa5930b4646b47e85c564a573d88ee302d56c5d3f298c7dc232d07caa1db765330160a65b6e670af56c6953d71a7b8dabebd72df0e9bb45c75943d823accb3188d4623e8248b2c6c123d03afb2467a0616d13338ae6afb12a89feef297abdaae1024a8b77c89969b9e7a916cdbe16e8dabedd22a6a865960484437e824aee0bb1e8652a056c4c646cdd00951acc96f68bb3dd08976f3cf0e09474d08d44f8f9a102d371da751191027568e9038b5ba8b5541e0e504bd2a39344998c21352e42005323023e7741e6ebc1cd3ad16fb7226cabe1c213c3db122315918050ef50c7c07733a1bcd882be805d4806a34196108f7abc1574e5f360ba34a51f3e9062b6aaafb475a19280bf97292c0d7b3fc130ccf83100c0ffff09505cbefbc29781a716199e122193724df102c0bb3ac33606718c11c19e19cf365b11ae6402848ecb2ba3ba8c2eb7a8710ce571bca96fd1a7b855f4a4a8a021a29e58487cf52f15c39d723d6e2ba4796c8891a134a616c39ad0bc37ae63d68682c3a22516ca463845d9835699348f222d11001e9992804a767a4a8d84b599a1615070a94f9868cb40dc411c230284310ca1b82507ae604b5e72114281b271b07e711d51ca8ad91823e1892af320a276029df830729a59472fae00b2fae80670b18a71e7c210c2f9c60f92b05b178011870c0ee0483b34c167ae0821e64c1032fb0fc5ccd396743014f15a081e79c73ce39e509064b1928686079298fd5d40e7680e5bf8335dcf0c60e3d7490419ff0a4084fe842a88b31728024075b20d2c1101429a05481e5e30d57c0428c8e2d886006175560f9141759b0fc574f5e704556b405132920d085a12db8700104aa5859bda096f023728288e8093390b0a68ec4501ad1030ee180090f57828282506059d64b17b294c10c28c0e0820a39d6cc822dcbb22ccb9239504e41d391c30da848418b1c3879c2490b9ca481a5ec01a710a262b32ccb8a4aa8421670d691c371de814a1633c8220d36a802d10da20454b33ea63f3c7f986e66029b8e3a67f331574745e07a4d1bdd3ca4c508d65c5a5c6e3682ebbb8fec10ac2581ebcda56fef9eb24560ede6d2b97754f7d7483c5cb292442265b67493d529cd8ed3ced9ed9d2565f599d58ce86873922646922489e9df88de911462043e54eca6d06cb4243be9c3e98427976d872f9f5dbab93b616edb4e1b9669759e6e1a4a66dc37246cc02200c2d96976b7d3773667f5dd7bdb3e6f49aec8a4e7acaa7b76aeb4a9ba4b9f3d3bfdc69dda5c044bca497a7daa76ee84b9ed1639e1aa711ab77159b6d12ccb64115c323d576ede2e95eafe7aab26ec74ca62c615c1db67692b956a89e3b0e9a69b8b9c30f7c7653617c95e3a65dc56649ee3b867dca418ce454eb9c88907218a3c2ff420064e383d2ff420064de81a90244a9aa494548a263db5944ef3a6596737b72957abaf7884e0face98c9b4c2a63fd36f3a356d5b47650593c8779ae9a78ec8e58566f5a8bc225c4d3f1d1513935df593e58101022666b5e280845e565093c074cb4974db6b5cd54fcbd5d77aa9ed6c178b2b2dcbb64fba6d5bb6edd06bc770a557be6e1add6aad5d777a557775e8d56e4e02cbeda7ad8d6e8db72b37d356ebf66ada6aed6c9074617ae9b4643356afe45ee34a4e933502e21967e4df0ef992bc71f5d375db4a37996e96783bb783dbb6ad94c44f27f1d3dcd64fcb8a3092444c02ff44c86da169b456ae3bd4eab95b94ab5cd7695d3dd16aadd7aa7555b57d8897ab3e04cc71bcbebbaaed7630dd71dcee52eb6ad76ddb5501f172956a3b0fddba8f68e26aab5dadb5abb5d65abb5abbfafa97217074b556f9f221542f77081cd75469e26aabb5d6396bede654cdab70baab55a5ddf4d3c9a4c51928d1549bcae2f88bad964755fff2cef2e0b8ea9b050247bdea4dc3cd6b93d35440a88ee33c2a9e97cb9d26ae68e2aa25ba6421e2e09e65b4dda7dda0665959a66999a66599a65d2f7ba41a319c3cdaa8f10aee6c44e9755dff61fdba4038cbb45f360b81b34ddbee05200e3af0885aec237b7d64616b9af61fd6b50b84498f361fd16c1602938070bc1780385c27d9ac035ff7452cf8c918ad35a83c96f9bd48c422ef5f52d775a5605e62725c8523b55dbbcba9662d1dfaabf44bbb3bd3a57475e6952e5aad2d2dc789f32d3ee478699b2eb73ee763aebf5c36fce0f2ebaae42f957ccb372c5825af4ecbeb297d77140a757af61fa76799949994a6d2c96432cd592acd92d5fe3459b240586a13755f5cfd99ed5a6e5e4209de5eaf2be3ea9f398e136db83cdaa8d65bdbc9f1797d72bc747d623e4fedbccc71658c4ecc7d30577565eaf22f37a7ae5269ced3c5bdf499ba48bfae1277bae6755dd7755d16cb14c6b4a0c62bb333c808677f99f579da4ed7752653479bb409f580bae9462cb8fbe9742cd8be54bab756964a9fdd71da945b8e1d6591803a91a4336d5e4209ee6e321d8542b9b8984c285b6fca32c9711c976d36036112691ea75be847a52d94509875a77737d90c844d59765541e4b3ff90cf2e103e92d92c04e62cea4f3b59208cba178038e8c05d951b0edcc02df811393103fccee8baeef4d35505e17efa0feea7fbe2ea74205cb259e2d2a510b86402c2d25e00e29065f55aed9c8d58b0fcf3a1655289254b28b9e610152511cb1ca21205869d23e2e8423dd79d76d94bf775366358be74b34a4dddb77a7dfad9ad0d844d361fc1ad9962c76c6adbbbdbd9a9a7e7b2eeea70d9667a7d4b2efb6c0955545a15bd3af5f4dd65907afa7a69c71da72d4e963eebf5d17e22e6aec6d1acb3ce6a7796d52ceb288ff8202581b99b762a77b3c4875a0fa52b9f93c0ddb6dd2caedab4558efba6ed74574aeb6d2f9975afb572efb82a7d3ad975df5eeb39ae727fb138bd75f6e1dad9abcc28a5b26ee7b477d5464c6126a5ace73aab536fb691e2a665b2b323ed122b1946f432d6d4d363b1e674fa2cd668361b692398a3e7e8b5d36cd49d68addab68d6ef72347a3632812464a995c5a22899e523b4f35db9dbd6d7669e95bdbd94e354dda6e38a21f51dab2337a0e427ab54f13ea74665b07e94e6d36f2839645eed26e6fcb9dc2fad14fb56676f4ccd66b04f7474672760b886c6afaf6ccfe48bcbd6d96f747e2d235995a769348dbb5538db469ad699784bd7bbb32d330dad96c0477f2128b35b166eb417b5b194ff5a7faedb55fdfb67b664926db0e00c2aaecd9f6ac745b66dcb9fb7e8e7d848d8ed3dde8da9fa6f9d08f3e1a5d7b965523385eb78a434af9233524b48fb48f364bb3d757eedb394aefeb8cdad131ed07bd196ed908779fecdbb9ecdbb3ed4aa9a3f5a0458947bf227e9a8ade47bb3cbd3cce50553adae5e585daced6c3a6653733417f24c4d8e862efce428cf46c23f8a79f4b4481813e99ec947697523e2b71657e9b99bc79ce6ed6396f763350a6995c348932d5cfd767a7b5d69f34d95dd69dedf4f5597775b64bebe5b37ace66bad5ec56c67d66aaedf4f39d6abb3af4f46625ae287105cbd779ebf529d529846b91299455edf3b50565d2ae297b3dada6acd62d7b3565f574ab524a29e59c96f4ae9b49624de9f353c94dc271875a0f759ebb79bb9b137cfa66bb57eee629846b92a924aeeaada425b8de5c640ad199cd3f6dce8d471b750a6dafb5449af33403cace755b49289b59a6c4952d9b42d9dd66129c8b4ca1115019c1194a5c912d8513924ca196c2092840c11a054d0fa6a7305866585219bc6158edc1f2e2341039e59453ce93899377ced5bc5a11192d933295b9b468afd7b46c72f5da4ef74d6e72939bdcba534db3db4d366bb4da5c6bede13e4f5fad8a7ba7d54dd3ae8abb3a2faee8cd3d5ab5b9d65b44861691a9b7888cccfce6d282ca50a88aaa15556bb53d989b14d60ecb014b7920dccbfb4fa530d4bc525e99b892d12a57ab56ffb45a379b7b6460f03c9d6e4e99ec8b2beef984276a9b13555f6e325daeb348406caa1585b23aa75bff3a9b7bf0ac57fbb4dd4d9d4cedbee51e5cdf599dfa8dcb4564389ded6a456480a688d2d3830c5c2092e941062e2401c3d350419f8c562f4fb97c04cb9b8f60ee53dbe9e4372b933eda21b5b49dae56ed276a8dba6aea18eaf2d6cc74979663b5fb7c67ad77dd33d4487ea4edcc773bda6d9698d3b4775393ddabcd9b0fa66bbf66c761196765e9f308777955f45245df5d45af4ea5ef46f5beb8d2e8113cb7ce749c384ba677d7c774edfa64ef7ea2e972994e765f6abe73694175e74eb98ee3b46d7b776eebb86f1a87d58ad5ac52780497ba9b2ebbbfa632eb6c96785e3b4e94b146dba92b2849d74f9cdacca6fbfc446c7a3efdbdeb26f737adcff6877f6caf9f36279131dcbdd840f19cee2ff6c599ee385dad8f11d7c35b3ef500b1e92201b1f639233c7d5ad34f56c764fabc56a3a90ba50ea8344c17d54d102a452300000020012315002020100a080422915038a2e982d27d14000f85a44e764a168aa32088619441c818430800c4001000011899196c000098097800a1caffe8413427c05c2821e69c8469a34033f1b444a0d3989c73c3a20df00b8a80a80df7e28338c5bfe8179e278aa44a9a9a91810f581b1fc07dd0e54aeae41ab0274dae6636fc136ac2ffd6bc486a55923c9ecbfb5679578d42d9ea7d1a821fc5702348db7609f5b4908e7975bbd54bbcc27dbda8b06d5062b6746eae5d2c377f44fe0493044b60e652072c876bc050c56c42668b310998750effa6674dd3a6d5460795672a73cb96b660b38e394b583b0ebdce04d4b12000a373d3e632b51666ff0574d00f096ab17337dd04e85fa4870b73485dcc64137bd803e921165405bbc159558e38ab2b51f3c4b371c4696c840f664c8b9ce5494dbc01631e658a8fbaa295f4f97180e3514e5843470592b9746fc553506a5f917a4c098a739493c1cc3d5200320adfe4962e64401b1473378b10e485ecb0c74253390689f18312739af9622c195424bfea1b7c7a0d444ad04bdf194061d8bae930fdcc226a780629a68029be881ada70042906e6e861e623dcea7ccc50d12713b34696c6bab86c9d4185fa6d8973aed8212a20e100ad535ef34fe322a774857c9930a61b5d35656f75f1aee8044c2ee9ce1a863b3bf8c58b92af16d31828da12837971206817de67e748d329f2d4e3568de282851fcd0fa93fdd44b2341f4f1fe14b248303f24bf3a8a8e61457d71dc688b7a59fceadb2de058506169faca3037cda03c2cb3be188554bf614a05599a9bf8764cfdd28c77d0c1f0e3266b4ff8a67fea29d020e3c5ab372022172109156dd07bfd9dfb7dbc3a4367b3fdd8bd7cd66ddaa55559fea12d9f20f0e689a3dfee5f7d733fbdfbd096c904cb3ba0fa4d052ab67ab3d45b604b755537d97037a557f314ada66499a31296979a675d1003703fe13255c7d4162423c8f5521e06d86bd00eefed25580dad772b30a30af7e7c80c980fd872667d12a5fc20464019ca8e14fff34d41efbbf065074f97d20761289a7f3ab4e86af7479ef0de5a7a099511130ab961484b14fd81fa0c40ee10b4b6bfc4ef5179ac477db20c705f2c10348ff2cb59511f934324004d09dbaf5e5d1c78fcfc176d046c1d20117a8594f397973a1bfe6bd837c52a9d43729fc202217f4c0b12da5c1bdea667fb77cddfd1bb9157ae03fc96f781c2f859e196aed3bd84201f1440a0a601c889f82704801b970a02009230cf199f5533c4cfa0b40175008fd8716d239663319297c576c25ae6a0999e5bf825727cbf2d748f9facd65bae0e4af213477eb1bb6d8a0a77b08ea7fa0a2f1dfa2314a82dc3f58dfe88f1795c83bbe9a69209425002997205316ab9ef52500f1038cad506a49cf22dce7b18431c80012758a28f728caa926cc083d56b5d8b151e081365836dd1a236f1424dcaacd51e07f7ba26b2286a3a7a3871f34e41e0cb059b0693baaa720e96a01c408a22b63d473140b7cf822d692f5a6542c4148ae20f35a2f400b36c8b18abc02894cea3b1d5d145b2e15b4622ce62bdb60c1b9b77e5991aaaa46793140624a944a52c6099b6f53582b33d1e955c830289cd07abe0507272140a39b4928905f6c81032e707d0406cdd997dcc8b09838b32f1284e2229f5c0e13c9dc0503ae11bee50ff2df9c9d80828a0848f745c36f47c2224b503b75b4711d43192d203e2418fef4f2dc9cae9820d3fe12b70093246e26c160271f4b7b6e22d4c0bc4845189bdef7a51246371c0a86b45c06d95aa00641a7b8aeb57992f919bec008c6941af10c88d13415aed42576f7f50e16613f41170b0b69993f98f6539ef9327f60157ea7ae69a88eb10488a60e247b7ab7697a0b05db71dc526f68a2b12a7ab8eefdd7257f5ff02f0b240b053fb19b1a317918bd39ed872c7b88013f3c52bc0479f52a36784c3839984eba5ba0b9e0a2e955bb1bbab0042aa262cf3eec7e435b63053414241bd84c09a3e308afafdc370f04ee44badf7397fd61e5ad2463d0eb3f32a562443582a6d7b64f3dcf79e235026eb84ed7c0a2f183196f3d50887023e2f59f7447e410a425b5035425746b64a48825b242cb76ef698522c66d68eb4a78b864bc1bb25b30aaeae05c575f83fae004a81b1834adb7e35753a07afdb83e60394fcb4fa522864ede5e83257f3ce9c0d47b536e1b6518d4560ca3c63569faa681a503e4d9e8665e8fa0bc63a936c94e9f301d2006f25a9cb1702eb342c49ca0da16f01ac8a491d22b3e2e15629515218e63b69ed68864a06b1785fc5b88470d777941c6c0f56245df3a1b1e908c0b57bf29722fb66e7f6f0914f9550edc169f9b306231320e85ed3184e7d24954da33dd9389b565df513aa5d73e38dd78935dbbe11872665ed7da93120306123f7e64cc47ea087152a63dac71292fc1dfce03383095f407aea40aef58f9968810c3fa0cb582f4845d3e0f5d44ea6b0f30d8fded39b793ba0dfbd94ddd4c8704f5a04d3a1bed0ff830625fffc3507f6c0d1354cc57b268e72ec8291092e272f2484af7f3fee3c49a0a0629b1cda03bfabc04bf15d13a922f421e8ddd10f7dd67fa6cf345b1ea34480b5c50cdaeba16d3ab4a39f83419d92628eb29600dca6e6125652948d9071266e95bc7e8de7263be0e0b07060b0ed8b7a8465300c6e83157e892a1ec2e09d7343f5c66d7b6cf43682bfcc78bf40154feb1314c2b1843a825b257e5a6f1bb0e20b888a00f7f7ecc680daedfc24b63830be58739dc47b5d226199365dd44a3a358e1bc4d701d2a149cf90b36f5ae6829e2fd4761bd156ee0cfe93d321e6d7ccb82f5c790eb02b81787c6473892b0d8edae501784b3d287cf221761c81d7a7270d84fd9a121200d265774989a0e4d49e36048020371785991d14ccf3901788cce9c7fecbacd77e966779eb9af31a257b6bdcd406049d0b41b0f49284a86a837175dd36f846814e2914a53bcc92182b26540a829a0d2a39035908aa92b9d16606da2daa58db8ead937579407d2c4466a4a728e0ff1b983a8a9170598a6131884a31e32a408adffa66de6ab9121d6a9d21380a51abe42974dc9f20f4f59085de6784291a94814183694fe5e535d63b0c4c264229e05c609a3afddd879a0b69838f444c82946acc9ae91204ad2c1c573d80763c933e6cbb1b41b2a93189c290a04c739538bda7c1f3255565405cbe4a8842749a87f84f12101141a163ab671b9ca4d9a79f754dc30e3acddcc4949bf2eed50a3b882b83589d7ad7967604194dca8d94b05546e8b04115d2d2a98fb70ee7cf06f8f42471f6a561c0539b9510f91a719c16c32e13638939a22db15d8ca0721ef5874a87d58fc0f7f018f427606ab66ff6494beb343bbae594437c329c90ae0b26c68cb24d19cfde8cdbb970e4388cbdc334a32a0653757f64f336186a8a5b457dad62b627af58c0bf282c939b870225ab4ea81ea4f320283b935d776632d822f98cc796e45170503ab6f0a009b1d204ffb0d25406d72b84a4800a42ec2e5dd85d33b49d24c0736cacd350826b68d9222830a0a8d808196657d48a193b1e992ed9c2c7f88d32a6fa7854854f727fa263c0b26fbb2d42c1183f6926ed469e4dd4bc36d452e4243a8ba99b3df2cbbfa4f5d4eb3b34633df35d9c0799d67ddb9b33344a3ff7da8dfbc1a1cc00dfb2a1a042a44328aaadc98474c5787ef8b4567ddc71c80cd9f0f26be827047ce29db705bf2260ba0f164fd8c234dafd3f6052811df9c4e7351216d3a57a03b0440c3c3fad78d88e87691e4bd21fd4d475ef9669f087a38bc1902dd866e5591b400726e323f1ec7cc152a17f1d51d99ea23f56205ecf33eda958ffcd08691add25e247dadd7d12b130201dfe244159841e9615240e2000db977277f4a1171c3d228170d1f37f08833904a5b89e76e0faa8e33989860de8b3c38cf4ff7e5a6a99105009e8e10bd7d9b8af6fe7722f27fa13c0254948d368f7403abdd85ca89d2d539ab50e0fb1c6b77ac79f97e7bf1424790072ec3d3f068d5e4aca9ae84245b58431ea56fdbf0e8d922b60e79c9793d2f7ed0bd98401e4b1add0ebe7caa3489ba2e3d6d8c4afd65505a3bb730ee9e2ec4fcf4b1e5917b9dd173fb7b427bc4cad6c897c2980ae29637e25c7cd146a19bf8a023a5a49ddf6fd0d52a75411ee8bf0fa6066639acc641db5d2caac14ce8fc5b828d6ad64b8c1d776c6abaa6fa5376e914cd5cea8aa7dbd8aa001bd4683677cb84a6ea283f792c4d92728e94172d90ea72ce56199c5de59f07ba8c58d9cda8886a128c3f3461642dcf1f8ed911fb78f7f044a7bd8283cebae693ba54cda6e23f50cef8e79951e06f329133368d9378ac664e1ad37448a124adfe310757193d6842e4744405558665170adb3425058727ec029aa5eeb532c9ce4749ac5ba1dcda4c28ba026b0455a3cba119fb6179933873fcdbb88729d8f1f8d152f91709aca28c48510df1ff78c2c7b4d98b1cffd1312a488134b835683f2c856744feb2a423895a6e4bb6b81d43aba8c73f02ac52f1b0a48f8f459b2d7b42b0f2361e745911acb5ea9f724cf36591be842eaf29b2a424e696a403b8969864044f31ae3ac3ec6e35dd45e5c0282c086f9c5233a1199dcab6ea4421a668c08c33ab93a32c95820ee5314ad38506014baea5d0a8a8b37ae70f4424c74a7e7b291d3609bd7cc666d3c89664f13431fe4de45babe4e17f5485c632c7fc6d73f610f8ba24214ab47a0903a741edb61833c9dd352688c8c6d156a49b9b651053771350671b2f9299018df13c1f364fad40f814d9bbd0e48f532a370869a67726080f43f72dce4a8861ae44260586a5a9abb02315661d8251cef9dcaee36076e6099a225a26197ee67d8533fc0694fccc78381b33fd691589eab960237ff02e3ac4069e5cdd023c3c78a814b44878cf4a1cc7f49831d84d22a186ddfb91bdab2ed83201a74b456d7fa97e95129cc97162e884ce808e1369393c7b3fedc0682059878d6101ec2b52480f311e0c44322031cc0ef2ccfdf6c623dfcbfa078ccf70f7066b5f9e05b5e926d903202ec2d7bbc1e079c5d963f8b1bdd6d51f300dac6b856819059c0a20fb4501dc0e570551dbbe0fe91626c4bc64966e618e25518ffff6e86d2d3eb323529a3e01091029385f7c0a43268bd1772b092dbc358b5db98cd2e622f2bb458670713b81f021b16583ea91d1f95054bb3d5625dba1f3df6f5b58003e28b0d22e3fa400a0c014264bf9476449de57fbce001c95d8599576f6e51523292989eda2bec798c888f8e5f288ad3e0ce3351a16ba43361b576c93ec672d653953fbd57d79706b460fa426d5c34a14219909c10c0e262d741ad0d8f735b5070cf0f5307f8ced1a9e7910c84ca49ae08cc14c1368ff0d0a3ff0ac1d7373f26637e10f599a9bdb1fea8753e63eb87421ec3189f406980185ca6d4ff5e2b3009c04d0d4e8f63775ac106a6f03db2b5b170161e07cb617afe18e6706810a76653d56bf9c84401f171181a31a80b6009c270854718aa9c7272ecd62abb4531528321ff5a36d5952fff38db567817d8807cb041c0f3ce7360a3af2a4edd5c3810b7afccaf670c5518ca3030769392139bb93a913d37dab605956fb0df2474f899f135de11fc7fc776d7dc6e2624a34e070db85e019e78d6fd54aadc58fc138ec2ce8da7933c9d8de402234d3da4869524ed352c03bd6f74fd516a23830c5c1a8a94e48f01c261f59a974ff49a513c873e353f03534fbbccd720ae44225ed6531f038b32ae64c5df0d1c1f3015d849bba7a0dbc6a41bab14dc1c54574dc151678e200a99a1c64e1a10202b5272adca59ec2f89fa8ab435986e03fb5dea8cfefdd350910ab685ddec3a54d09c4be7d28e2454bb91eff7091df0d21d05d7870f7f1beb81cde671d8572e90304dd91104a30ad286ec68a5b1bb6d6a01b6b75b784273a25840f0f21193314c952748a4c8d8fcf462b111b0e2602b406e62e7b999b779bade97f320f41748ce2531bc598aa268ef6464e571a4990b059d0a8c4d30b9dd4fd1ba391b3b060e845abb735a221803d27ccea53f115cd322842ad72216689a517c14bd4cac870369f110d0454ffc84fccf49196b1fa39526665640b714a9b04882d0943f8e9fdc175766ed66e0f8de47500991826e606e513879750e130e81f3e991670e700e1d157568c09a6980d5431a97ec485cb81731e3dd77ac4954b49b84b9b763e9cac8b5d2454abc20050cd129dd90968f322962e5e167d4edb82c8829a8cbd503cde045b332c3bcfa9c20f613b9c9541e82b179a745e85f3de2c1405daac310f87833550f6837fba60d85f9175fa50b8109cfafd0a9c399ec8145db732204e6b0362aaf704288bb8f9beefbb509a3e7ddbb75a180cf3572fafb849a73633393a9d06306a468799b77696733c626573b508c43eb0f2043cb65249c7bef3001a818f9a5c72999a8f988443f4a372a2d648365d7917a318b1b10fcccf9b858d180379aa90f8a848cf6b8c1eb22d9848a9e28f4a9ed71963e6aaf60eb08164981d7eb806ac7498fa0adc40b49ddc7f700a8432828859b5f1a2a150086dcfb84a9bc5c57533d48df22ca2cbc0ae1021b9f813c178a1f92e99357f04a07d069c578e85a97d2fcd3a4cca316323c13d9a9d8ad3b5bbeb96905119392b37062c3a2613804e89b982d8c94b0c25329f556490741967567157592a55084c9419ea3903d1ea5c6a38bb8ac8fa850fe665fc8683cabf6af4e9b5f2d20e9cc4d99f2184b5c78a2fc82009122307619a789510ef8ce3524cf2e8292344e6d78be15bcabe1667ee49b844b4f1419f6e50c705e1b8afd0d983540cddc78308a4c72ec8ed0b90b405699d1fb876a4fbf29ca6dd94b108d202368f74c88fff79f516295e0578e9a107383436268f14cb605bfc60b429b11f414ff6cd4e71b14cecee581b17551d8371e1b3e06ca7515055303f75f382a5dd739d6d7cb60e86eeb8695c94020dad2940edecf25ef488dc43b0b851f5c38e45a6e16cc99333081e814191238718d3b7513c35592850693668b0c0109b50b5e0dfd86aef61a0c1e17fa7c48a4b700a518662dd2d1e1dede046675454cd7bf5809f4185620c498a2ee73f5fb5f79a88086c207986b408a954b5f5860f7558b563b182dc31c82220c39b97dcf1213b59d71e4acd5d474b5f9c55e5660798e82dd70f2999cc6f1c6e301657d5309e77de580f62803562211e09251438f7981c223485690f9af09570641f573f41dd7a223e714da1b771cb87f46f1dae049a8868c4c6cd675f3c34ec9bb2eff48e6e9e776d093c365dd0b7b62c817c5ecfcdff881c5e679c32435fa6a106822084b7740e4b9698920323b309e934bca9693b1546f62682bd43a785d0a71245ad43cbfd79a6c8ee08dc8026b3c606163579c93c259913f7727b21b2a89247e3d61c414e0fee5374f334c4859adf28d90f92e86fca1d8bc1a160e59109a32a8abd5dbf46c0d2d40f7062304655b67254a5b65ce56315dee2940cc3a871824f4c8e4d4601a390ebbf33c5d2505e3d45f60e44e2571ef6f0273953d5a7e932925a091344e71763810a70dd0043c30c999c8c43f56e426548b1f2b4527e664a4983053c2a0fe387dd33153a95310150fc5234674d6a63ff39584048c9e879c5b277a592fddd413ba844bc314e8a872a9a2153d567b0b719c1e8922a9cfa3610a64e8d53b50772585c5aa753e17c3c02c7d24b25ef828de32e41c5cfa958ade3ebd1d230803ac0d7a8edfdfc67b7ecccc6a44caa12155fa7ae86679fc5f851d38c7cb1c2bf64188c7b68ee22084d71c6f2df35d649aa5023c5db819d7e3bb2026b0e439942c44e2a2c2597029ff7b962de765e6b0df68c799cbade72932c69a322f9fe5a33dbd749d8feb36568ef0665507153afb56b8646c58fef19559b651a23ce1b8eef8a9b15311a479d91ffcf5e5389f97c077a7ee89e288d25a58242f37c686fbd26ff0e2305acd5976979847e69b76070f958d8ba3e11fc622d426e7ac3374d362891280c8cd4995a8f3a14a770273e67a903e2fdb9ce762928d1233577419a81a003397d6ef743d626f440ac031aad0beee75e24f60f8e6958bfa8b0759a80b5f07feb14d0b00191629f8be4fa1ba424ff7cd445094f1df8c03e5b884eee5cb9c9c0ac51491764b0cf0d4a13a4e567b7275a68d9ec2ab8066ba908af1cc4aa2767df364ffc8ad55d1c97b7d38947daacc59ee9ef3405716a0cc08b8e3f8236ef84dd94c9abcf3f8a61d269fe8a5b1deabae144433633c86e532eb1cf303269a9cbf10ab3c2b34c29d3bf1e1e7b51ba85f77bbe5206682f31e627c60e6623836b34e9834c0a87067dab1c84497087d9ba7103a7a515513540cf02f3c6b33d82a61d2d3444d9e76d68aa73a84347197a47f52e3611f0ab2292749f314706fbedd640aa8e9f3de4eef80bfa208c291ef24bc44643f65cc7b3beccd18b9876a9029ea26e8b3780a58c70c8cf047eba198f900494096ad234a395c5a2af0acf9ee2ff94cbcf671d2bc00fd498550e582c9e8ea075769b8f49ae848c2b9649b006282efea2f62b93cdd4427c777137572641ff1559d493689c83fa799f0ad2a498a62b9a5e17dd8591afca494ed7ec0976886323d3a53a32f58198064e17c821f0534b88732554bbb2aa244c3fa19fab02e0e388a67e0e74ffbd02dbd9c837539b4f3d607e197f8d0b59fed03240c19625cf0b8d5dfc63f2f316886dbde0e34edc22f9cc51b4d8254098240ff525a31a37518883e96fce53a7a2e396719f3c177ff47564e4682079919049ac231010c2ba11f22e6b8cb05725e4a544d8f5b5d38aac5ef1cacfac7a5f6efc45ef773bad80fe5ba619cca85a46d025e76995dfaa289cf583d23f9e6388d6728deeb6fa354e564287c37e8c67940ae55c2effeac80e6bace7982518e3410cd0757d78f2dcaa7625e6290879d0f74697804d5d48ec8c6de548afdf61c5397a4a9becb91bd93537ed53dd9fc1da359535c12b7b7976a1214eb11103bb7e41b32075cca6f954835f45ef612bc3510a4e18950aeb67343fd4aff41a6b823d933a9c0005de1a0c7fc4c14d66444eb41e788b76aaf5f65fcd9b1376f20bf012aac9ae0ee854f49a8b8670ae2b9ff7f9030c81f2e58957bca0b2f070735ba2cb5d7ae02d982d961bed4f9cfe85248f35583d228e525b8a8c14412508a3e26ef56b50a333d1751ece082c9a9cfb3b730a198479ae441338658abb15eb547b1777f3bfa6de8534237f6068063ef3d02f7095d56038a586281d5a45ac7f48455600119e30ccc90991d6198d34b500003b708e0961bad21cb1db976ff61781e1498e3697a7ee87e4d85c0e881fb666dec49612126d3bb993e47c03f34db4e6e619f1046909fb9e5ff3c0622fb5a75b1bef31d9c078ecfe044648d19f3fc9c00eec5694c543a383847c2a6294c424c65dcf75ab29b14efac24586f7104ba957b3f703d176880cd723b5ca97df162034d1e5de0bbcc7999eb068b04b046e4bc04d1073b0bb5ce882db48fc2f9da84609a097b6aa6f089c18491f89e20a2936840600f6c9ce6b08ec13dd4deb968cbfa840c34206f6d40eaa7a80d2cabe5c402608c82087160d0a6f3668adde051acc730c81b96a706fac28d8f5bcd3f42dd70c2708f09cf294c8d9288f818464c698b12edbe4b1440c961997f25b5635dd668ba20638bf87375c819e93176de582aa63c6454a417cbfc92004dddcfbb36f1da8440ae717e23f84c38d0104dd135755fe3c629fd34c5382ee27299bb426e816c2d7c7d913390c68aca586c5a6272614df4a9724e5da48d924946ade0fb64232fae288cf74b8def90d0156f295cc4bfb2d23b1701424039b29639d3bea01b77055160a4eab48cdb89a0171388a28197a7489717dacfc2db372989bc5b69624c7909e9a8e5cd0c6ab2bbb23009770c0c860b8dd3a048a7f7e85bf5a383ed441041680f7bd92ebc6ba9defdb02ff5fc687cfbe146406871b740f4df3a998c1b5e6cc9fff53f959da68d16b73cb9e796f766080754b6e1da92ae47428b70c616a104e4a808ce3e4c32f345678996a6ad450108e17de4867bc770a9ff31250dd95c52d1026e4aba7b8ecd69c4271a474aae7b96140040dfc055167a347618b8e20b7a8cb8f25c62092a64a36140af0ffe50902121c0dd455127c768154cf6d931075060f4a15c20308b6d91858616cfb7be83f49bead987752abb0d73a74ab1805820974543950faca5c4efb9df068c00d50d75184c403fa1d5ffc189080dc969a2d63d0706cd5f22e2d9475a6086f984e71b7a6d91a28698202252eb835c2363b2161ffe4ae37f6ab76a07f39690c1c0e53dc9cb5fdd9812149bd7fc3cf543813195f4b51f4d3ebcdd6e41c066bcc37439ceb5c85b207f72545fdf1813901ef2194bab81915950acc47374f89a8d7548fc810d8c372c4279c3e0195b7362bd8393e7988bd0f8c7729d03bff49c66a84c05855e033f1a1797f5bedebbde0277bb7d37cd82ff095a6c31318f4d8d3dbcdf02214f6af8fcf82ae0f782f7bf5fadbba9b90341effb13df196966dd51ec269c31a922116ec2e18c0da0f4d232ebfeca801413edb806a43921b8197ae8ed8612d50873501a5010b75dda601e66daad8c71f6b7c67eba9207cf36b4303b299c9dea946b8a409e2fa237da1a3248bb36f00cced9b8710e5b6e490ca3d2cfed6af73328f733b5bdfc03df598393fe75f24b36b356ba27e7260a6a64dc7c62bfbe0e9d310ea25698960e1675ec72e60e4b174b730d8b0aeda5f1a55ec3846e27cb431768d5c2b520af97b6a1eb2de93f999996787d8f6c5ddff703c8cd9390b1ca0a157f66e9c889962068559d229657b275a13448ad3a7d25326b71567f3112cfe2a5f5a88832f896d0f32f9a39e5e983714e2d1d4170774fac80fbfc80909d42d5e7ba102411b2db470ff6b66bf40a560ff5b6b6cc30f8cf9045f646a178441153bb3c6abab25060c1dfeaa78ba38c25a2053f52443f021b9dc6c21a9b9ae310aefffa77da51d90ba17b888a7733cafb7951eb0a2e3925be1811836095bcb86d0279416f6a9086a0711171508bafc03ab2609dca02b343d59a57b4d8cdae2fe42ef953659652844065b438ebbc7d03b96f9e926b416184c1bf2dd7bf3230056ee6d3a1b34e96274db6a8c945086b2b6a3a14ded4a7d02ecc6d32fd09e7d1e58440c4f1c3cc39f298146e4995666b209f59b083c99cd73ce7e86f075f284db944acef61d1b1029a862544031c27960ab219f064b0aae2769b05a6e52cc5b42cd55239262a69d1cdb6315432743e6fcaa4172c0ecb56e9edd77500d316763449b35ab96a32022e1694e4c7d269a72b4643032eed01cf54893eaba560991b8753374209c0438144c3803e6695e5be0a6d3e2669c1deacbfea385db2b9ba3c5f7b5e601d73633da8b06e086cea2b37803f41280fafe8639933063984e6c5137a5b26c7f252aae096721e4742dd18d650c872aa203de88ad82a25eaf002168e3a45666d5494eda5bf1750a6d48de9665ffabd444f4d3e0e188d3cec3ff515709b7cb3b208a9152a9c06cf25669829bf7b7e9972ffee7ec020e064f5c72c2bd5a4b983e4d0055d6c4baa7820db828a4f91c664fa15ab4621335bc41b309aab86ff143d8a81fbb10295c3301e1440bf22638e517264b44f8a96658555c97927aa2405589ef8f207cb7fa30a137a1724c6e8c17521e6b7e826ca3958860240a8c75438d62b1d8a454e2b308118422a420425b12fb3e32b8d12b1169521523f3d046bafb2621e9b69e4b77d01d0472304245988c628c8009e3fee3232502a69cba294d3fb12ceca1f24f45f7e2ae19b5d721b7fc2b0ac74449ab1d97ca4a23f18e11bfa9485270c008cab3c3a2b731d0f0971f9796e9e10fdc76b8b83c71ec48922a577df48473089cb02484c0d19f2426c0083832844bd8223a49425765c8bb36f3280251bb08767df724de3f929124b2b5a3ea637863f41843e8d1f18b8d4b25216745ec636c4033dbfa20edec537866a926a0addcbfd4deb3770e6ba28147e7f935b68535a0dadd1778ea64c4c32863d29e9a17ecf056e0bbd2d426c84b1e515e76dadc1229a207ebe7ccc890f00ad019be2f6247c1291901f11c0fe8790fa2e4dcded323c09adf21f2779824b22a8238c43b80c7840ce787cc3c52972ee19da7423f5bdaf8d2777bdb9408ce426dec4a19091b34a9b1e1e1dc083c30a9bc420b588d6179635152094b88c8ababa355d845487a41ce6b7b321372b7655c6ed94ad565d5d3c142bbf165ca4435b2dfc276e23765f3f3905dffb25dd2312503dda1c5f7ee2079ad3282bb91d289b6902a5df97b166975654a43f528d5750f456fd7ef3506d003a58c0cef0b3c4d3cf5fd0ae22388da3795ceb6b8290107ced4cb62ee80235cbde6790d508be4ad864dd5e5fe468ba86031e9aaf366c822bcde0266c2591acebbb354f99b9b6ff05cb57e3ce60e7a9066a1771b90dfedee07da43cd6c71b5e762c135c8d59982ae0706648b28aaa8607ccb9215b05c742f8d3d2064961b9219d864c357663565f5d92f727d2f384558d84d095ab23707b1ae7818a785d6d23232077cb1ca75236a39b22f56d28528d7cee578a6b203ade6d5b67011824d971a9bc82bc23e0acd45b1b5c6dab0f113b9052ad90768959d4f2bac0e56ba1de7c75d2423f70777bec802fcbd9c4837370f6ca8027383725e7734fd03eb28000c264fcd07265d26c822282a7a1e940d32f3e1a409e9475d1c3aff504ff1411236fb15f09da0080ad2d9faa5500e89cb2ab78543286ef7c6669114150ab860bac2ee9323d5a17869cbf015a9ca115f25d2ee5609fde25de377d1ac15204a97d88710a0c28420ec3fab5c606467243f1676b35606dea499e4bc49e77b10dafe09b98ddae4669c1db4b263a39c2e03610f27a54bb652902494bf0eb4cb47908b654cbad28f23d10683b6b1ad668f19bee2a5b209fd877a204e16755c5445dcd25207a3c95eec8d9da5433f41407511d59bc407c40fb075a8c4a3d2c33aa2dd97618357da88627a4d39c1c590ad544a990b7d42e847c9eb314497339fb44b3432bdc45359f5bdc2d312f228b5b41cc578c726c09b48bf77034617da9acb212fd6cb741e5ad1a17d65a4ac6248b7fdb1316c1503819ad616c62a12379277305c10b2b9a211714a69a794f69f93a809679be5992dfd5aa3fcff80e15c25e5cc0058438df036fd247a760a6f27a42b00908411f0c1967b6a0cfc041d9ad4bc64a195ed134a9945bbc96d33b15210297ff5a803f2afd38f1fad40cbb2aef79279cfc5d697ba8c34b6bace150420ea409cd7a5d0e66beb5c415734954027ccc9fba373ad366f5b93a9ad2ac4565039ca539aa2f8589e7b38803fa7a75447e0d56dd68cd4d8a3abfe9c189c1d4a02d493f6eb229d1064be27164b192b5ea3b9874534475272bae6501e9c11a3267888cb1e2a60448d09502d54cb92e73de7e5a41f23122b5c6a7f8da83c2f86d16f21a14b053833f0730a700e4d62b0312f560424a0aa9df165859517ee45f9a25bf32262c8562fda19992c29c012275c43a1965a622e357c40ea255cc33ab0c1ca60e7244fc0065ca263dd6f45c95fc9f5620b859106c0bb085b825b265f16a0c2383828aa3f5d97321a46f9a31c2314dcc8aa112d5c15e97a47e9708f48c2bc7047240c78d6f01946d58134467917234d0430ea0202100c008d5c68a7205079b88fbe19a3af19f76faa0ead576b2c00d735948602715da3aa09feb104d686a6f7a07e42bc2f77b748fc48a17db5ecb0a3823db0744b87c47732b15e7e6408ae9633dd1d30a747868d766d498ea41d5a8d6f32f5c2e70415404220ea24805289d66565ce0f773bd17936fe792302041bd171f152a36e872688f784a98bb7322bcc28b9cfb69b01cd2317119fef494faa1197c44fcb2aee1f3d18a6dea8bd0e45013e2d6a645bd4f2236836bc0a7a6f6ac40a9f089ce028dba7eba45cda3b01cdede011b54e8869c2ecc14122bc7e6c6489258bc375fbe9d2e5548ca25b35bb14b79bc229205915fb5b21ad41718513738a223d05a07c74dbd8125b2262b05e54511c81ae23341b1438ec546c8fdd2d3a9ebfae039aad67dc25e3eb0df93283658efb1446f3696f957c5e3d47e5cceec50aff753863bdd43b503457b464453fa3faec9eeea8a60c72a06431d60e63eb007efb521afc59271aa3f69642b24a72ab88dca9d627a2bed39231dfd3746125fcaeb797f000e5ee109457d9ecb33707744e0e51f4bb48588cd1dc6a57d12c42339f071d03758b386e10efb2720459bdb50f9ec42fac23a01e819e0d86bd72a7d9af549fda3793dfb5224b3853c46f6be9e5633c53a91bacab2714ff936a33ccc6ce6673cd22a6aca12f1a04dd85b87ec69ee527a9e8a053497782a7051b542c58a938ef9125fac64df95a7d2ba99d9dbab4f957a0c6f5cdf9af00ebcf8cb7e50283e96a3fd20f2d79368ea0c8bc4ed254e2b0f0a80036fd8347019ba6926d64449f9c622ace76c8ba2af52d2377cd1f81eda788f3bfe6593ac93fa211af92ea1593f5a1a0488fa7e9f3c4c23b8558fc0cf966c7811231807e479f2eccda48a62e4f1e09a6a710f32ea4b119d6c8bee8c87b17014d01848e5e2eeeedabdedde1f6a79f31879299e426b3cd10f689545fdaf18dbd16386aaf66a2f539340c7ab1317234036c274da1c1af83811cd559e7467781c82f6f0aa3bd4ac312788358b626ccc06ed0377986c461ac421a3aa24258572401829e97608c9e852b66a8761a77bf84a5e461ae77d941e7964e68144a0abfe3663bc4f2e26679787f0e2d939db6c6085105612899dd5fc613ebee91654ad1c855e2c86cffdcf1ca641297a932ec242c45668cc597c8bede77294927f423e2d9520b30e7142e2f5032264a26a9bae5657f692269c51281f2c469b794383d9ce2d8e47abf75f2706b495e12cbe8834b6150a2cd325b193b4c7f48aae56bba4a6b262473c0bd50511ae8b752a17414b1abe0ed5a298315fe68c0655987edeaf493944f42204542d447483c5aa06bb400b013673a3c75a012bd8935b217032838e3f49dea13809b9d8ad97cc78fae2c1f0b5da9aa8747aca22e5df9528a59baa82b17897e3016d8547685b27d048a48dfa9cd47e169eec8b4c11098e9282dab33262cdc1f776d00aeb8b8b08b2258b7554629e7b45887f242fee209ed41dc9f056a899b30ff8e39f9ea745aff34ce6f0d98a5ebdaf47a56b8e0aaa520e0b82f0155e99ae80ae9bbb7edcceb03db84846e63799794828466d87dec7e9a3fc325df9565710d73f4c083567c8b78f121864bdadaea4a9f8492c5a85e09b449df7a84d86e562ae841b130cab48e04c78f35583ae4fb0c679a065f1208aa4788af023ec8a707a94d072d5c368c0130e02c48d62830bcc5683b0f9249c4c921374a9110b2e13db3796620bffea7da0a919438c16f211b85cea9390257da996cdcd767eed05b292d7038d2a0734ef4852c9990ecf07dbdac18f4954c8552b2c4db37616bab3a19cc5874cbf7ddb95f8d968b1344f705d9c5993745a32021981ff79d90ce58f3d8b7db386e0cc96e607120a321bcc5c5199c2e4ed96c84cb7fa157e1dd358f013ce55ffb7daa31e27ab5aec829bf4a2e2621fe59100d346fae3905e5900647918f99bb992b2a24bd229fd4c5e5eeea88b9d6cb44ba7909b9d08e2b6b35ede243e5f068c61a86714566cec28f268abfdcab370bcd4349b29748a1dd16e5d78d9f373a0c9db456d1e7c50a9ea79e304f30ebbbe1730c799d86e05539709d018ba06187cc2955f0c31defaf578d4b3035054e02abaa3168d69df14db837ff4a5be620ffc00d0876d02c2f2bc2ffb268755f66f1c31d740a72284fe20ed74a13833c1dc681f3710e5a3b340eb207954db1f36f94c1c876a9df1e6a3ad4414a720e75a7e45ace2137467666f12310d6063e902555a2f6554ecc4abff997218906ad2ec68179b6d1f22d6c9dd1027b7768779fe993e9fdd378c05345f3c2526e2430f14a7c14a98c390345e88b39156b09d6359c90171c83c6a063ad35649e36eed1f95e42ffd3352c199bb630d2cf76f7401405663b35e95316fea6b0ec80f14e5ba4f995001d8685b31eeb097a98d20b441f1015eb29e8580c75cfd55ff1d42a2fb717b4990ada575a04fe0ab28f731f8ef2e2ee2c471165ed8760607e5e54225c5b2ada6b53b0b92a6bdcc351b3ddf8020c4d0905b18d4917497fee37a803537a2391dfd6ed7db8e20f3a172640c92752a351a1e375403b43ff9c65c2d9451ea91710cc1e5c2cfb5016a661ca91a9e8572f92db7cb86b9e76c5bf0158f7ec27dfa8e07186c1e593755a5b97f06cb4f1d50ee7ff22e08bc1528c99904ca6f33ca8fdfc6b695e3ecf057f522525e3e549a9c0809a94cd2f7e964e857e866ff652d2289d3d2328aa6ec6e611381939f1a9591d554fc6e4315e69ba638d54580cad5d6a6a8c6f33dcab4aca4c466a2a33210eaf18eab68e42d607742fa5a7b3b47af6a164c08a1cf58c3f947e4517e07368dba70c96d15b2dac68117f817dccb3f200b3f432febae8bf2c7adc5ea755f9bc0b41b98fff26a0a19dacda8371294094b8a458d98c6472e08b9ee0245cc6d0e05f8cd85c754d562a691d54000ea0d009582523ae78170c201e10a500a146965d4ad5709281497c09c9011004a2ff5fd944b2a16e34a7dd21428a1fd37dc97622201f6bae4581f76be2114a73a3f8297ed1de2cefcca66e940718486cd467a063b3ff22053d7195681acf386dfff804e1203cd5893ab9d97fa5545689d68a078002663325156bcdb780c9c5e29fd093c1c18b60ac46fe110208e4e17932bc464f22ae45e14fdd76bf644d79f80b638b9d42b3d0ac5cdc358449969297cb62c7cd1bf90e39610935dd333d74fb7bb013c8f62f72ddaa9ed80cfc0ffee840175bc5beef244e1e011ce000ca18ac445636cab20e99281203dafaac4fba6c8668be594747ce6529018840c0822b85925d1e18e1c6a75a10d6713c6f835ee9c04fc0a07e5c83100f64cb3dafb451eb38187d60c047d46e86ec212491a6e01cda0d13c72fef6ea249c565f66eda08ebf04b6570380b67257940a907692b6edb015229ee9ccd831c3e65ccf8d184ee0a0ff0bcd09f8aff1371451f71dbdfa2f53800f4cc53ca9f36e078fb1ec8a13512e26e8bcd37430748e1007a1d0f008ce0fa4dae4ec544dbab2ba99719805f45e8ef475aaca684fd409da4afe9e07e591f02df2832881e8993e37d9370750580da6ed6c1d051bc526b784d0304ab3235f9884ccf8e67ef45142295142c22e1041395b2d360fed6693cb579fc6571b4e1b93a666f7e0dc24ed957349099f135174f2947eb144d38f497168a82ed92b9f089aac96c1fe6a098769ad90ed4ecdf3f94bd0d4b2543599bd8c19dec8bbb35d81e53aba7b17b285a099eecfc6bd33fbf75fcabd9ab4028cc4336f0d4b1debae90b7b4a775f58fb3b878534d4a6611c72409c9a4b8e42871c0a0d7904b4e481640915a48f863a8eac59312c0229b69afd815cd9cef4eb1f5ea32af290ca7a2a6aaab33ad524ea7939b776b4dd1f325bdf1e553eed4b00d9a5cf22152a592349aa01fdbf8270abf28026acfc7b76ef0c4fd6a2f35668d575ae9c04b8b1c7a37181f12aec36d9a241652cbff29fc48767395c0e95b7a8f3fa318c4f3f242e4b42a02dbced861a6c976990496c8bc1ba63fff91558f2c00d9aa01cf44547b092c48a5927886818f33a4768ef97e3e5360b13cfd52924c02584a36ac74b4c3267711d179ea3d067ef1cc370513f5c54a1422045c52cab0921045e9fce21f329ef29d0434bca93a968735268a7f826f15e6c7881bbb4522d0920a353a05afaea93eb0640ec70d9e59ac50fc50f78575ee26b54dafe0b117edc629a221a7a49fe4823f710506c3f61b416c147cec217073f787d8c4308f6d29c65183e7ef6241804c055075e60a735dca86f61131998a43f707f54b4a4d0de8e3832fbf0514a73cb6d08fff2cf7e1c47ce422b4ee5e120f6d11fbc9ff4fcac5f1977ed89baab6c4faf3dc63ebedd1c83571f7704240e05803979c7ccd7b1781116a0a9b9807ab15de3601c581fdc507fb6639f5720b7578043778667a284c88c076d8b9ec59cf8653c565dfb634c358bc81f949358ad97f979b197a5074d8aa66a3db69e391610668439ab5300e463e175c95b30bd43c0ee7c1a1872434b241d3f1fddca00b926f9b3ef66dd7cbd591fcead3f4852139d216c055434100aedc469ebaa41bc76bad9ca6ecd69fe33897b62c1c4edb388801d79660f8d7e56951e132c1c280dab6372d9f313e0975cc4a54c8ebecce802f48e2d7a5f2a14ff698e51877f79ee43a605ba0f7862fd4fa4f17ef3393e336570acee32f0770ae6f94bb7ec64bfed58377f64a9d2ff47f5e6ca44b7e08442a8ef28eb4a6d219644f3f04d2d95aaef39e81e60bc37d63a8b5823bdb2b5e4f512dfc5384cb157e55eb8b7a8a0ca40e3123fccf3383cfa2a3d7df8b204f368e49e4b8573f667478e46d3fb1e9c6d496f51bd3f32b3a9f9f0984f08c55cbd0086ec38850fa9d5b77cc48f7595478e72f157c5db57f578cff00331908f063ff1384b5bf39c198701e2845abd167205cac1c67bbb1b1405bd5683a7e403e76773177ab89a0e25d2f4f377973ad16dedbfaba66ca32289edb36814bf00b46c7706de844970a104f55720f2adffe67e8c60f7e1606676b6ef24b3921cc0f2a826af0fb04fcc4678029e94cabce070bb55bed79e265ff8fc3aaeb1e9a251618fb46336ccd520abacd6b36d804907f4f2456197f4a3e07293a29674dec22c13b09b216cd606822104160ce31b570c42c8ad5a855db44922fcdbb7a2f93bdabafe8d786a6c2c71f9a1aeb7070f5e5af63e73f871fdbd192c49c29957409337628e4235317cf330f4c6b60f951511ef3ff1d6c56e55fef916e711b3d259190a68cc886eb8a8afc35a253446f2da058d08c3ee9347a0269c159b2310d11d2a8e597924e53546c9558a9a48e841945f0ef1510335ba163839cf9f342c2e99cdb2305117680d134c2b989500904c0a3e047d999bc5b7c8aac93e5fb847ade21c19d6352ad79ca322343d6131fbb8eb1d59afa81de6d46ac8d5ce26f70e1a9ae90aa92dca139f664095ddc16d992bc69a926b8be51f2141da82b6f2c5f7bd302a4f34cf2d6ada6aa0e246c20a3d95bfdd960315e00bf117e51aba27c94bf998bb49bf6b6576684d1701e2246d1357d4493d080d02afb66d7333684eb6ebfcb61d3753dacd05691db2337c883ed3324c2e019982ff0e6b07313a9aff6e7899f7f916247edea9d751567905a32f48ec04b394133d48ff1ed9e59d719064167283fc4f9b8b08dc1cef1a40b834421c47da3a83c107ea766b669eaf062b9ef48b8bae6221c66272ec75678af73c5c73e35aa03de91e0a603e1416329bec4f30a342dead34db87c4a96ed8e7f1f97c181c6de162c44b75a6d80433af204b68232e2e7676101a70bd5b00ce0039a5284210eef05f5d02416ff3eb9b31f5f771804b923448d1bac7c8611278666798e3c754310b3ac8bbb16ae399c1ab28097c70505b6c0a1e9d7eeaafbdc22e800ce9297225e935cd95106e82a68a2c7ff98c54dd8669794720cf73f0632974b3dfc4394e45906c8d807ca608d4edfbec1ea9863deb727a89afe7027c3effe06aaf9ec2aeccfb90aaca0e46a30c37893f70e74763ba38220ed070fc62c994d57ba58d2319fccab90edf49e6eed88dcf754895665ee6582644e64d19856ec8ab919b52affa866900bba3bd9622f66cb919b4d90278119e2ed4e95a222b28363d9648243a92f1114c65eae7704f1d25c64211bf8580851fbc8be43dae467c998c556aa7d0d278edde768a59d2cd550695f67aa47b9ee86056f5a96140be78365eb13b60c36a3612e5ae8895d097ac5b9652f76f1025d0709f6ac34ba99ec32173e8d94cca07c89f90aacf78f1589fda58331577966d0f27b8b9b06527ded76174dfdd77601744bf7b91d15c28fd7c129ebb5e77a4338aa28b5b89d859eadb8e638a1db242a03444de727c953fa128f829192a6f423819b1221b9d13b2b8a56412c0dedd802695804fe21cfe0300a38a63f4c34dd8a19183d18a61a447bedf8e822b076f9b2cf3fbf41119ac0151c6a679fa4469b4a43a59c4a30d55e9bb137e1e18f088ad774a1f00dc1ce3715aae8dd591c176eb2a9d4e6493b5f397478092ecf31fe7f1257e0eeb97a0eafe8c165bff237aca7d0d4a5b3fa1df05d4b4c8adfe5d2b24ede7072090c3e7735d77e6588e4dab1e12bea3dfbaca032a942b9df858c48172f809b42ce2eaaaf7e5b572c183254f8c196554d17db8b991d4aafba356173be7e68beb63cfb2265b81711b0aa330d4de0b1b354342927d9055138c3cb76943298fd044cc9389c4f1c1d30cbaa46327e2bc818c1d65277093d76c04756c7287389be7ddf497c32f3f8bf2fd98720653a6ed50a161fed227f7696fd6d5f9b9af06493db3df98ee318e7a19ddd1c77156cc19527dd925c113d9559c116b2cdf95c0152eb39030a9611a5bd48ae476364c05d164990ccc4abacef47a9bd8dd8d54aeb9ce25ae539abb5c0175d522ce3d6889a4490968da421271d089a16ab125ed840625df0cd3d2ba64b522db8e9a76c0e442a7e3d5e5839405a0c5466ea691b9929387d3f8d9a26fd5c27adf76cca0455d49f38491b8124c36222f985cc0fd0d71bc92d7c0e1e3d1f19cc02047b7b4008992f2547865fbadf806c9e99e469bbe32693fe495ef82532f7c45c300de8c0b6700fcd79e8f12c10bb8f9268c1958508f868d3ae9bcc8145fb120b6d50f4e23e001c018cae1592b82efc562093bc6cdd850c3bb1319e6856382dbfb42322ddc04871bb3c1e726e668256658211be854518806bf9b43ab7f3237d647689979f6e6082c765e39ae5497824b20c7e2fa4e98558e426463d1a1c4c5f581424ef7fd301c3f5231de6eda8e7b744c1dc7206473b9ca3a047599180254130ef6e74b07ff62b31f6c8ef44cbc825290007d540e5cb6cf7f6034326b8737336fbfdd496503073fea9305bd23f310b3e6347261a00283fa9dba0485c8efca35deb4c9662f84d3c675c2b74c45d97a98c7b297683416c07f2023e3915e5cfabf229c5e22542f616b2efe2166b244f3c541201de46ee2fdf6436d18174d9eb320e28fb1af9f3a70eb4588a8e614d470ede15cfb08c3d8f8fe4a0e24409f2c18c713239a0ae17499e19c17227eb22c61f3cf387bd17b254108a47330361ff7df894b44bc04e886b8502ecc579e8c3d6d4ca19b341fa4954d2ab6b46da6b9611d966c7d121bd331beeede1114d67e94096cefe4021335ae074f56f286cad21f75aaf22b7666e5dcd56948c572035acb0197b376687bc46098cc63eea82515771fa3752356b174ff05c5c6553a9fe12f36ba3909b8081345b4d5286c05faefc8c7a2d1b5950521c9ee3c162cf3d834708e973a0f86036df4b8d5cbb3d899f99fe17560fef5d657700cde4e567970538a909ffd73b887db01b8c1a90dc10f9d064e77cb80cbea1c6c7cc10b1a5e9e721f0e71843e3a91e8bb2171ed47d31ad3fb9e79166e96bb5f609f7ff4a4ad82c3118ae4ec04e2d7815fe606759d98141ed5307b8559772df8630f3e7da371acd058c586ed2ff184d2a0c41d1b1bf940ea0016110a18aec7d5b40739f954346d1cd8f42fa1f92d3c5261d878d214c877b10fd146a44e1fbf717804321b46b3a416b29c9612b494e6a202679180cfdc61ca5f8bf7f1c62e8ace45ea3313bd36e4acd3a242284110adc27aa40d1a72549cf6f416bf0c79d978485e06ba0b8a41d9c433e641719adc8422102497ec1f93d66c51a29498bb50f80a8a9212d431aef20aa0b1e366f198e940c62ba00335108f419e9698183bae44dacf67a5e64973698f7b5a087893ab568462d110ac7a4ff2d316649e5b7fbeed0107ccddab614925f079b90f1bbca26cb4a3afcfd1f13d688527a6bba0f9900bcf0483a57340776dfca9489020efa9c81196bf8b25e23bff8c20cd8ea4633cbb8217695f4cdcfe36b8106e10832b52ce0d6cda1738613b3aad65fda0ce57d4b4006cf7cc5cffbe9a92870623c75a6b90759aaf1035b6fb81f1b3054289465950883d02125a7748b9e26a826381a0226b6deb276aceb2464f68f328ea4ee2b4e6473453142ec6c58f8d59521241d287b3cdacd2875ff2711fdad43dd0410f09086dacd530e31a5ed630e97de4f333e310d0d60c724d6f6dc4def9a043f7b43d9852c9c258d717d400ad6a93f0fbab679d126956db744263d9d6d8c684f576caf1b9513e900a56b14312df92999223361b06efbe4eb554c401c8bfcee7480271e788a03bc2b51906dc347a4039e9c123f8137f6e3082188c367c2a63b44528c879c319cc1490136bf29d0ae9f4cdf0f87cb3e285804b634d939180ab1f2ea6d84fe014e3ffd9d0c627af226b2b6a613c8a1a3d183cc4e39b4727da8137178a392602821c3b1ddf4b3e7e300674154be30168562fa17221dba2db200a014179f210eb0908e90fbf2f8c4beee88b1501396873d2e8b9fa4ed41b1b3a004958fdc4a367cb11dde9b4a427bcfb2304865a5cfcc0cb314e9c0ecde73b52ce3e3a71dfb219988fa47abcd2f24c23048be4c6639d9f68e8e083c476b07dd574b854bf89064fb3c3f8234bf894e5b969f0bfd9dc2ce1d24ce45ae229ce88c118339ed0355012198c948cafc855a8af2bed2b8696b761d74d457b99a0f0491c9852daa1046ae26a13161a343fa926702a935d16bda439dfccf586b80168043166a08abc103d122105c74a98979d3da46f7567851d2ea0593ff74f36fcb9b93cfc650e1e504c78a1be234dc70268656e21c72eba4a2d483f847bbd61cb1378b403c1ed5907653ed95a055142237cfcf894a9d72e1bfb85cda3894ab03a711cd0aa09b99a52485845ab9dae9d6aef4e61f128035d3174de3b573ac2898e0d85f7b1729876f4f24f63538952be4c61640a0baa052e2bcbbb153dc2560eec4230130af979fe7028bd0cf7303d61dfaf650df2b47d9b5398b07ef2308d65d259fb1da6e51c0e2464382c61ae1a68877182c6189f9a84a2e48d7aaca4d6642bf51026aa8d341321a21a6f95b839b1fa3584cd0d0cde9aaa6e855ee7f34b855a7b3a69d8181ea82b0af0c491517e749d80c4b9c0bbd544818232613d49af55cb54896df630472315dfe115143aa32545ea1cfcc707002e1c467309c047e93786e7d5388bbdcfa83a4663aeaafb5a9f04a739e69d9cdb254d7da8c19c153cfe69db28f86424cfdc8400693ec4b5b637349984a71f3f9e0ee430c5df2cc5c9dd7ec0194677f3059af5f71d159496c3e42b272eacb5fe35c9d94e99ee0c8ee855a788765f5ec865c0f20127c384a9ca9de9924b6c4e83f65768e1f48298da103869192bfaf7a1d562b93063c656d187726ec10e4b073527c481325ac46885b197bc47f92ab13410be54c78ecf753288e5c1e3565e0819fe905c6cb119ebe2823548f9260c85934aed2184f11e5305d7d00009d9cc591bebfec084eea7da45bd73bd7293d198b405a0666f481ddac2122369e9776fef7bbe54479282917eaeda1fb4c9ee4d12aaf9397b8178e3afde3f257e9c60e96922fb0206a586b91c8b7f99ef14adf406106d51795f6483cb945feb2b1e32d31ac8b3f265b736952a0b9f1686b285e90882b2b9532f83349e9def65d8221549a23ae26dbca785501665b2d6958e428a553575c401b42af09804c83f8b745bbe9b5f6ea6069df418419cf225c3bceeaa861d293e1bb3081f0af3416396629880a6ad45962afc382aae89bcef17656ef27355ea1a39aea6ee225174eb8d1015a326b4a44a35224a397f8401885e5f7f823ae0743f564d7add86979f0e827c4d655a523f4326919c24f0d249e9ad66049cc87cc854d151b2b430190148b8400c8ccb55f2f9d84aa729411367fad5fcb429715698df3b76ca9812caf6878d0ee0ade170b5eea713ba13c6c4ee34a4cb57805f1ddebd41ea9cb8167399b6b95569ca3f4bb4e6ea4a8f1e1da3104a64a7a5f0e21b06433c9e27c98293aec0e82651a51221c75a89a3ac9324e511948f907c04f63a000274580348ab2af37e6b200f60155240cb5415b0a4a59aa778b2acf18c7bdf5c519b4b419d48e4218e829e9879744bad151b4f4972403c75f3b353e9d8b9adfb3a40a46db7c120fff72285ac8c8fd18982c33438af89cd335924be743f16406f019c805c90896d01ffbb4171810b72ef44f6f6a93ce5b44f6716ed669a0f5d66c174a04b9fdaad6380c258703064f581d0751d995788e4f55c0035c8355e30e8c641185c6cbf2afeff8dc51e360bab4b6acee7b23b65c5d425b824bd352a067117321a8d7542539033707d74905aca2459f0a491222a8546c19b0d32791fc653daff0585c91e12cea5ef0c6675d093c7dd7c7ef58e6c97e673126990cf9a04d26d794c81e07b0b03ed56166fce22df7a35cb7a12c799c57231c766af9ff6b8c483ca53164faa395341e07f48dc1d42d0262f2d860fcfe92f00c9fdc4e2dcc25c5d05077586224a36782155b1c2cc96e387030a5de8f78ed255285d6a68b55747b9f06a0c5d6f523e4aa485fc66691a71c1ef2ff6eb010aff5b037e73c0310a1ee23c2a46d00c0ca8835922f22c60584a995a06949d8b03a29c8496ebdadb7cee8c3d2c6cc16444ab2148040210c3ab539f9e28634fd14df6689187cc5b3a219c8834af989535b6ef46410caba6158d27869dad09cdf3a93c73e7ebb7d45059b52a1b79b0b29a38bedca119f421bc75662d13a346a8082e1526185d7ebb9847af554034ddcbbbf751df64520eb79a5c646df0bd7c6efbe9a718e6f9590945e95ddc7a01b6a1fe084c5b8c8dd410edbc00d72a31b5defca675256b796ea722ffacbcb0e7b24b24bb874583105036621939627974e4a78988c530f50f01eb1b3c3d5946691f687de009ff2ebdc4b849c9541b1050f10e141806685db01313361041f90c7c2bcd4a941efde8c72c31e726ffaba0aa47920540764325e59cb06e29bcde69bd21545f006bd612762b7e8348cfc99ad7d7541185b5f751b0c075f7ee99f18480fb6335a4b5d2b91081c6aa8fb046f8e482ac0c845c1571a285097ac85838a0d0701a5e6cda91fe523e8511a031bfd056a8487f2252fd1757220096ae56a5e861310c338e65f42c8c532673c0a2fdd4289d1773119929cc395644bf0db91e1959e7fa4452b32ff197b831e6ad901fcc730cc22ffd6829f9f9494d7e08a3a53cce8a635d0c2eaccb390a8bff90bf8504110d0901c6e2a30961ec2fbd551a22f60375af09f4a53b652784316b2fa7460a8c64a47672a618ae3f534459e2a7a8c35d836f624a21e2d8cc7d3aa66cf0824aee7560934ee29bda06c89543b93ab1a1733dac7300be1160f26326a10cfb2ba36f0eacbe81db8b80412f7d28cddd5ae2ec108df7b846d80dcdfbfb75ba2ee146be81d5318aad4b94fabb439c4f161ce28526a0a362718eb922a2a9f66678275f5f61fd34324a8318e73f502632b827036b64f202079b2ea598a442c284e526e2505fc54af71608ec1bf9b6e9ee3a675867897f8a6d4b322739c8258deb074dccf78118aa44639f5eafdc53ee4570f605677f1b450db9418cd3d3760d602560ac8693876c0be9997676aff8ca5a4b2523eb6dbf5a1331d17504ba41e6b096c8c9e4a8522cf586726de5ca543b328af521f492b5a998fdf1af88b985f32bb62726e44157c615b13d1cb7ae11e11f3f95cf4ac871fc5a1c4180416e1be157ffa6b03e1a601a983b3771dd35f0c8fb92268bd5fafe54b3d0e8597c958ed03f31bfcda46f071937e5ed4bf71c3935fafcb98d2d885825d62b2666e39cfebf1f42cc8b7dc0c0fc0d41cec96457b5dca8dfccae742586b96c97dee2f76fa5381c4a786f39c29347856cd148a7dd68453a596086e538943294f62bf3d9beb1791b735918038110c37c70c40b152c35a97fbaa7474323cc1262fb445e6ccd905db15dc67809977eab329b0da1a90d08ab9ac8667f925220563a5ae819bbe9e7c28a993587684ba5d168223f666b45e5c3550fcc842a4cb35758024ab8259eb1a4bc041d4147eaab5b79f948550abc2228404467d44dce8efa00e33b0a33472c9e2c5600eb7792c1ae3d6d523a6ca3e236536b67b047adb96c0f248640568f26be9cedf947df161c44f7e16069e54de659010d5e33f3bea30ea42726dbe1522c8e998c33fa6071979a244a710b4aa3b988826d2581e4aae2f4a41a74cbd806616506540f1e57d77117a537f63afd89eee75c9c1ed0b7180f5a192900b98dc165063d45ffa92b2c1afc4408b209905ccbe0d3140d89a29a96f01508fd6033fc64d3020ec25c3db2951f178e89f7fca005729da26b932efa7a975a3f6e0da0969e88a81799b6348834fa00c96b80ecc3041fa9d0e859111a6258dae80242cf7ca5018e1f978ed31019c1f9c87effcfa259bcd9992964608a693e28df496ca4c316104e46e8e6e5ffbe035b5e5b56d0c306e6dc33c9408bf30d638e154d92b4bf367a190ea9ed516e655c763a0802eaf4378f9a59871692bb122f689bae826287a330175b16813ac5337a2a93266ec707f950416dd7877e18e85507397730ed25e8d04cf075f749f59c34c10463dc3a31dff6b9468484592821520dbe95172d56be8268a200db2f5e33df93e69a2c4fdfd16f3a48eb408be14c79f0ceb31eb4964787965bfbd09004cf9ee5f8e4df6a6cc91504ef4e611f2a51b59896132bc41dd7d43c98f0f0856d6aadd510eb1dc1ba54fad2976846ecb883ac51d72a957117c959a640607f36b1c01eb7cf802fb9494f7753cde3b8b31f34e96a24167cc11d963f1babc3a4bdcaa321c3bf89e0763770dd7c628f5626b1a083140aa8d486673fb1d1605ff30c39ade3e5b1af127b2e8b2636633b5fae66905acd8ccf7423048c97a86b483d1c3621fe9718bee26240a4c0705af3a9b23f4125c55856236d62e6aad0d108ec07b6aa012f3ad879ad58bebde8de1dd3c1e73f9fd0a7bfeaa7d1b135467593818afc6afa94cfb58a1a291ad60da21e7a1901ee97565d451c26b551711fa7f01d7c0a070e6208105c8a84e1cda2d1fbade0f11ff2c1b8fa63267251afbc0e847e5a84c2cbdb9185f0337b2855fa0408aac7154cfcda201c308bf8ebead3c7baf877842fc41f04b8280256d032cfdc762b7f58ec2381b83ce2193db47c34fc15c18bb891d6788cb55a615cd33a08efa31cdf224a581a92d3b3bfecfdf3299a9394ace87e8278ad09384b18ad0a4384bf9e540d05471ae580e0d513b2e8f646a6cf75192087f455a6ec8b107d69444a7b8f05bf626264c92dc2b19afb8b9bec900b8addc8982a83f30c4753f93cae67b3efeca9da6d17a7d7504d2058e92703993f181e11f49aa9378cbc86d0ae92a68e13bb2a0fca95f4b6b7a263fb0929e498467719afcbca37f3ad0b21faaf3e282ef6fe101243febd9af5f57fc403f8ddfa6d73d135c529972bad3547c698f7f8a67a77318657eaa1a0a122710a8b353154927d963524a865062cccd3eb86c04602618bbe0778ab5885d88c44025446e01c703aa9568990f4467ced40e38c04c7037922ecc224425d3312d568ce5c5f8608d8d4b6c3a24a8835a02e91c18988d5aa28ee5ba5995d4602ac4dfa20d6cdfbf9fc9e704299f8066a66b817a49dd3668d92bd906d95c3c4541da6e0cba507d31cdc11ba3296d64fd8a7c506b063618ab5d95d4fab6c8b60e0b954625dcdfb73d220400af1badd209039448c76838db9a5d80ca0d335122c28c0ac01d07a1950dfeebe8295486d42f285eb48cd39c283f51e18e96777c57f297ebc0693f4b4dc793a6dcfb50107511843009ca8f0a6682138d25baa21a8c7164409965c6c93b2681c0914f167624714ef7e231318bedfd7320c0a39a5ac413d1a15a58d6d1c98cf24ee0b8076964be6a6d0e0433810fdd6186b21f35e9e4c0af84d4ab21f8730f0f420d0c6d3d05c5ecbd93f1d551da4d6b2a8c1604d1bd9b87264dcbbd3574cd996f4696df8c2ab806573787f01112cc5cd63757cfd54af6a33aa50347ed913118a117e7e7aa2114d08731bbd48255935825a028ac17d790738478f9238624eda18b8d9c755967392255362c59d4d286fa32eb609768542a1b3b5178625384795032d4433a47d2a900e8fb4737510b55c4589b31da74883b1dda1dc98aab4b80e27f8e178c4441babbd31b7ec7fe19e9a644d05898ebe61b0f2a81fec32ad3565669be0c13efd137add19333f94b1fa1acc04cae4b6e76c66d44039c3b7171579dd45a70230c7c7556750e6f182416b1e5f93926833ec7772d734a4ce78aab5e6549d03252309ac26e7f7cbe07c60166fe1e735885904d448ffa88d1bdcbb209cada743e5995447fa7978c4169247809d19f8eb515ae6988fbdbd455f25ab6e35645baf90f7e7a8a51c943085c47165c699bf7bdd9c1c9266a97a55a0f179b5afe7c2cf61c9a80b947c9acae8de1711ec53987d2a69d8e20a485255a3e982444564e8825d2cf94777cfa767bcdb2e8c2795d160b70559a16870b9d0eb8dbd80b94f7155a4be3cd1881db07bbc3ba9395429aae29bd8638362cb8082f980df95445ba0538e2abdeeba462a279e62c249550529759cd3ae5b953eff6c452045e105dd3e14d3bb69e224f833bfead754b2633ec4d04c51b18974d47cfcd1fa92d2b5668f5781f5d71f989964a60aa79b985c56c04d6896de1fb7d621c0a65b013f947e6eeb0caf094cdbe40660801f569b9e7fa890fc16e8754ab8426ed5d1a2c731cd19346658f89acd3625b42313beb502c99878ea36f2068363e63ea16ddaabc9be59058a42c01e6528fe60abd89862c4361240b42d1c44004e884dbbd0c025a7c6b94882cc4b47a6d1e622945d28ba2c1a1205d2ee7df93d70e4889319f9bd4bdb9a46817539f119fbaef6c74d4c6ae85bcb7abbd5f0b9b01be235ebac83afa5b50cca802eb7ce0a5b0f6be95b35110d48c0037fa5d4dc9f00d780fb743891a51872f3299289e4de08289fef7d45acdb01ff163acd25492ddfca4aab9705e82922bf5c99a05064bf563efd21bd2eae7a743c31a07ccace19c8d6f01f63d744cf120c9282a3ce38b7848bddccbb399ed598408d8f6df8629b4b3da311505d65515baccefc7075a23346d7ff96e9c59047fe40cc10959d3fb881722dd3e1c64b4f36789814d24fdabb91e6948f76f0e0151c152f386cc41b1a64251b5a5bc7ef24a800b10afb72b003a5ab6164b8fef4c61655f484e2a500f3ff2bb36480caacadbbfefe7162dea9ce46240c8dcfe69f1e1f21a83c04a0b9c7bf1e3adcf6d2b296ed606b0049f7fbb961b3448d27e80a29857f83f4b9cffd5bc4652d2f4c668f5f5036c70dbc76689ae81503b879928dae0e1dc973d8a0b67d6981e468373176a30fbdf12e5003441ddee6a21bf3e18d950ca033b7d07d821a894628330689cdfe5518f68fc88bfc158146f787aaf8df8a3cff5efc1f40c9fd432c1da01d27c044ea0fa2728bee552368625b66a961e62953a3898a49facd0796da9daa4a1d28bd4b07aed7335cf3c46013dd1001e9dd6d6c05fcaf14dbfd7d521cf58bd79f409fb42b96194d27bb30296b87e0fedbe97b58c830f3b76797b170a27cb4998a6b0770a257727c10b5b4354e54a0520882c7f9420e68ea2292d29991790bc09f675abe7333330fbecd54c9f16ab67972ca9bfbf846948b2f154bcf8609ba0fa5e8fa4d44e08c948a7bc58eec1876ef21928002c008ad0330425b863352578db311feffa37724c008a5741a4e851e94937e8966bc48b147b785071b40b85365861b77bcbd8a2b89793bf7c1bdff1a019092b299df887c4ad137be469e9d26d0169fb284689808f57622f225a1a47013aa8b348ebdbd39d7de9f59e39345368120537a81337c7f08c5893e4bc4042e9e7c4f7012b120c51457d667cba77214f1392861dad4e0c53db63d14d83eb82eab6ca7164ee2741dafb251540b225f9cd8b63c8fb1f42b4fa9602fc78af1e6c25e0c5b2546f0128a1c2ed8cb18abbea96e8dfbfe2228893fb5feab04b39a8d4e296c2ee3ba4bce6c925a3d4057c98acf0a4764b00806198cfe214b6f335b83a5a142236b98e5b7c5fd85f5deac021d75e9ff6af7f8abc0ab61e2f4842385c27e873ed076da33d3fa7224d7a485ff5b3a98ecd8c004062ddb672cf1158530948114f69d5d090d9830112afeb3b96eacd53322596ab934002986f65c7f6891c7008cc380c775f79d5b0c8a44792460ba5abf40b6be28deac3c811df70cf3c729cdf49734411d7aedea10620b2f99be6844379f01ba72b4895cb4d8c701226491f25beb123f45b7cffc3ad12801cf15c475722e1281cf600d766264b74aa2d06cc90b373e7d8a237de28062e2e713399a989200fa1670c09c8a989c19e8c880b7613e58916b71dcf06b557fd99c8110ccd74946cb5c489f92e00650ef76585b91b6667bfa40c455f3a0856cfcc875184fbb653bef821cb0de285d669d380482bdfdf8e83f305de38630c6d7a9f75fb13fb1ade67fef5a3032f846944fc6012b0cc932dbb447f74b8845642c0cb2edecd48b765036bce474ecf44ffae7cebcb68648caf3853772fe7c2f6dac37fd63d60a535d659901a5bd06012247b8b9eb461f7be3ae7a7da8246b971670ae8484dd72e0d61000047742aaebda4498f34be5106d165c0e7f967cc4e03e7dafc8d250e82e60ba94f4ffe0f6f3ba98f348eb119b4ac163627fdc80a8a587ee44bc3234a3fc9034ca3777d819d2a7c771fca131e6028237532f2245590adab68c1c0599af87b0075114b91691be98731e620d3ee13647c97fa2a47f268615412fab1f61ab1053e1a110ba09ba37d7b3165c424483a2cfce6695d0b7238efe204ae28340c399f4419c676ecef986fd19ad8a12d618ab21f8acd0cca88eadaf904079a21271a8624c1bfa9d9a153e8b91ee4b84b052088641eb0accdcbbfa91801f315616baa86f4f2cac6e6d4c7ccd3925943e6df6227e985a1b47e2a01cd91a858118fed5196c14819c620799a542a218e6192f691186966e58dee9794f91ec60f50c19b383d4180d7d88715152d577bbfac5e60dc3bec27ae0d467accf6842393e9dd69efa391f73bfaac326df6578426c52a2653d78056f1229ad87ea75272834fc8c0142e8712c26c4102689f5143e5cad9378084d0e5d3c8d0bac86616b819ba368425893aa289e048d2ddca9915eec0c884dfde91baa412e479d9136f44e2e3fa25312337be39b5b707c51c09d9964499688857bdc2d396333f3c826166f6efb13158f15d0dd8a892394b8aec3d0675dc1ab3a46a2394fb851adc8bf2eedb6b04baa693c8fe2b77b8d03a6e6308e7edc44ef13a0cdee52883eef2137c25dd8ad56aa099b2f99cf1e7d54cadd6d5717eb17c8add78d5d6f6d3f6a214292bc77273375dfcddf4652f2e6320716ddb46d809e9556c80fbc96fe39b94090eb7edd2949dc6596dcbe9094242a089f27d692698dcc1c8bf7909aad288ea7763551a617803c7f1018e43f1f60716106a3c5cccbfdc012d00a8f3a8f3238604dd82848e9bbf9bafc0784c68e11a8d2ea4e9e608c16326bdba1f60929c0591bb19d13e6540eb1c508fd59984a20daebc9a75cf2c0633302f0b212132ae277f80baca03137d854aab8ca56e0507ff34d49fc1709d234f8108259a0e45e47b86efb3c065b706fcf867e4fbe942da42176f0bd0cb234047fb4e7204acbac5c61466f852d2c524fae7747ffe2a3205c01bc2267f6975097713ef1e1a7407784a17e87c39b7e34a2b89717d0d1c91363a6c27b35045b60937d26eddb658db8f288a9fada1f97df26b6f6287b01c89db30ba28a72d8147719ce62d6518cf492553ac3b6fb4bad052ca8d9640ddf379ba6fc69818940a583e410100dd50abf4f8aeec2d7d5fca9467db95e797fd4b492022cb184ba5ba54c24b1ebe2e2d0625de5c08b494e1457b99e03d9fdee8ee54df998573a2714da408ea020a4f92282bf177eb506accea51151b92a18409b70ef807a1b08fe416f6e89e15695a35b45de0192711a5deea6e2d9fcbd05bea3c66822b0462cb226fe9691f44dc60b7dd18c9921f84b15399488f1a3af1040edb4410300f286bfa08954064faa250224bffcc413f77d2e43b10151b89f5f39e0fde40d48e583c4bc7d04edf5e998416107426172ede45c82b987ecadd6a0337dc52328e5ecd4fdf1f0b31aea062450d433a4c1690d9b358f70c234526d29117b2b183bc4df3d31863889962851d79282837c2fe810bcb1c6a8d3fc051f407fe1a47c3d3b7a3d5206351530b5da15990a25b608691e5f05b8872d243cde89a16acc8b7e0177b342f1c0ff210fba93936b5aac0148cd04636eeafc0e837276eb861542afd085d4f3fce0cff799512b719df343e120748d807381d782ebd80540a8c736fa4b03366b1edb8c8d8af9d58c3104fbcb85def0655cc9f1dadabfe543dc253bdcb52403d0f64ccd801bd10735272d18d2129bb8eb08310b9a7b0577e057c411ef7e600effb395be8fc8949545a7f00cd8d63b2149cde49e3444531ae335eeb2574061749111b683f92f84028047ea89c7278e4f517c77e26deb9d3141dab2744deb5917a8a1d62da9907ce785d5d0d95c50942073bf987fd1bcf65733f1cf55b63cc877cd54277d22de84f36020c5fcb3baa332ca2dd406046a2e03a359201a56a503d91b5beb1f218695c4f48bfae36fa0d33ba0cc7899017518cb8530c42f76c7c2b1da1c30a84c1513e54c840170000f105565e9d8526d2f78e9609e00d55942422ee77b261e7d4208917bcbbdf7de5b4a29939401be09260a8f093c12676bc91cf56b2a85f10a7b653cba0e7147afad2571b830628efadd4e8a7335c175eaf670fde51727309d2a19f4d2aeb52097d74c23af9158aa06f0f5e5906cc926614757e17f2a85f164ad563d9c73bd3cac505ca6be14cc45d1b572ae38535dbf38813b0f6bfdadfe066543720e686619c69b0bf202504ea69bac9ed9936518a7521fd6e73e70462c86fe16142235914c0b2182b57f8c399ce3c8d0d53fbb3e5e6397860c8cbd7f7d19e43577005f9fe60978333180d75e7b998550c924c69b585f86ce5d3bc5b9a68c0c74ba94a17a5d6ec9a1bafb1278d20de85236adfe0040c9c465ea67f51d942d5036f1b07248f339d754c9a09aa279877a732e5d793cac3fdfbfebd1e112881fa19d2b90746cf5408ac63ab67a10054d5994e09dd1ffc165363461c75d90661c08520fb34dd3deb5169b372d123d6cb139c6504e4e2c4af0e34659b8911bf1a4e00f50dfbea4417e2581933d9568ff188678cc085249e7a4732ad1d2089c3ff7d530c315624c4c18c619e959c6cd222ee5169c7d0bfa8852089d0255a065b6f1b0be04a526409ca93be2cc153bba0692de188a968fbdc687a9a791de6111a667a6122c018e2d2b5a9aead8b262486f1b5d7f0701e24dd4b5d469ff783580e7bbfee135b165c58faebfe306af99babe673b7cafd93413a45181aef551b528085d5d32a239052e7e8cf90107b11fb77da11e222db5944674cc5b5eec23e803b5e12bb2b16fc9d934967bf874fc98044da3779ca2b7fd685f257d2c2824d3b5e6181f9456985bc7a152597407bbe879f546596badd586d62b3b6ed3fc070577d0e0d0e1a10d8f04e46024c31378a7a8a7bcc665244392e21f86f62a92b4a3b410f4bd7e94d79f5e975abae7c00275b2060c060863315ee33fdfc50b507f62f126eaf9b48658c1ac7e4068139282ed444064230a8e4f411d0b14ddbfe5795fea42c0ebbaefba94de367d371515d309a5f2dd7a730e34b277bf93f73d7defc32d9fe7795e0e72faef6442a9a8a8a8789e8af77da1e75d7abfcffbcf33997e973ebee7a1de0331febeef7b151515952fefd2e357f914b843e93d14fea84f26223405d2b85e87c1fb77eb52208defc0cd430e34726ad32196cea0dde774d90e819e797b6f7a1e137f0e7d9cb187f873bac7ef6df4bdcfa1391ddeb66de5d33ed48a0ac7f2d1f7380aaaacccbcbda743a4ee9e76b9a5c7f6dde7745f02f7d6e1af739b5e4b0fd3973ec794634e97e9ec4e777eed3690c89c2a288ee55bf93efc61cfdbb4eef17b9fd66d9e663269defd1cef2f9db9343fe784414e95b5e47839e69c7267023bcf3bd10ef3a04d6ffad4671ef3aa9cbaae45fb9567e93e1630e794537aef35b0c7e97a2ae0c974e2e26d31fdfdd37ba00c0110ef82404aefbd09ec51c2ffe1f9b5f4f09e7e8e47734e97739e3bf010023a319215156c2ad17827d4c6b282535f6bad95abb57adff7b5ab1fc7715dd7d55a6b7d0f7b2a55c5ab28140a85c234a592c9a400ef4d5d4bc9b452a346665131799e874d2d28940a0a871e0e94c6f3becff33c1c58b4d8baeebb6edbba6ec564525941953ec5627a6edbb615ec6df7c19de92ece7cdb57fa5bda3abc43a0b7ee7e8d7126ce7c5b096fa5d2df6f2b11999bca966231ad984c26538d4fc11f8046d6c32bd1409f0688031c6768bcf1eee944e3cc9c28140aeb2fc69bd27b2b5ede444a608c3397072d042c9ffa186fb4542e3dcb4ade24d05e2ecd94f2268251a76edb360fc7f7b6eefed7fdcdb6191db9e225187031664b9fbb4d90a469de9e4773adb57ea8ae6341e11595aefef7d76214e53e08d0f8d47f7fb97c4fa7ef5e930992eed7e2e51ce2943141d23641d27732e1ffe44a7f7275316641ada874a8aebbddf56e77bddb61aff4b194f21e5dca5ffe52ef3d53c6444d60296fb9ca3485402acb955cd5bad2df0c6760b9f2fefb4e600e3452499e5cd59a0269fcf7fd0573a091f274e4ca4be52b5724789500499b2049c7cff00744164c90ab0f882cc2f051f1af88f39690470f8c3168ea5ee2ac2f79e3dcb2a16afdfc9dc0ad43f34d1a1d97a3c14d1b1698a7a1f134dba456dec6db3c0f4771d82f10d4631f728a363d6e399932fe161f5f46755fe9fbde47d45f7e39bde9bfd27f2d8fefe937c6258c5bc014e8628a32b444bf1ae036ddb0f22714ae9fa2e1f2a8d27f8fca328c53a9ff1d6adc52ca3de414fddf9b1e3f77ca2d39a753a69cece2ed9e87b7fc88faf43ea23e6595afe1a3e54b7fca699153b4bcdd9fee83b1e5554ca6ef4cbfb5e09075423cbabcb32d9e220e1a65c22bcfc3512e2ba71c24f5f84d205d49a56068d8f05868641ecec282f1e92dce2cf684a78d0d4763a3a37bee7d22f72ae0c641abfcf48d474bde4574cbe31b8ad4f8afc67fcfcdae6eeff2f528a2bfdc92f3fdcbfbf872cc17d1f2d660327dbc25f06bfcfe6d337d090c716801ef88c4834b6ee1a2aaf23f294565ca92434ab9efb8dc458eebbac7387084e19b4ca67a32994aff187532bd3f484b8ffdd775dde3a0518fc226f0ab4fc1ef4fa0e95d7fe02e651d1add75ddc560144c39ed3f39659ba008f73c2607527f71189e1fda84d24ea50f73d229f5f17dad99ee7b33adb4d24a2bad343f80943efac05f7fd6bcef73a6ef7324ea5eedded3bdf796f087bfeffbf0874d5bc766ab41bbaf827592d2d3025450a92ef270eebfbf1708f7de570adef7b68dbe97deeff3beefe96fe0feb69794d247510efcbe8217fc3cea518f7ad4a3f4b70b6e11fcbcbcc2b2f2e1f7f096f70f7dff87e67e7f8f51ae94756c2ccd41503a369afeb5d1a64c69d054773a9d4edb96aff77937c7358e52cafdfda1f14b1a0f35c528af51d5a8404ca62fe54b534fa72f959ad44c9fc7a41d4bde291a9a30d455e55d5a6c50600d4e5e20367e7d9c4e6fa26f92d587f7f404620f6b6c6293a3e9d8cc4dd370de453e1dbabe0e1a1a1c38c23026c645d39409a5a956038c2e43a9e9ab01c61fda03756cf47d1cb7f7df3ec8d4369f37e77adecdb99e5751f5794cef477741cfb18f2fd7ad632381b8c4f77bca3d955cde3a3634dfbc756c4c50f423260846d8c026260846d480c55d500277af774bb7ab194ba7b26242d5bff7aa7897e2fb5fe974efe5bc2f7925ee6eee7ea7fb3c9cbb2795ab724d2814eaa26ee9a22e57f2bc54a9e43d4e81d469a07fba93dbee5622328310995a05e3bc3791a9ab0706f12a0637d638155d954a9d5053e5721cb7fd05557e037354ee7fe009dc21f84a799b3291f95db09453caf7bb5e0824e6e136dc7579f380b77f0fbbafe04d811d902d6322f463d1502c2b5cf7dbd675bfc2e275bf01b9fffd967373fdbe84b7ffb6af6febe6416ff8690bfefbdd8673cecd9b07ddfd97b7af0377f7a52e13a1fa5bf98eea6ea55b41b17cfd8e5339b19c4edb69ebbaab6ddf9db4a774cbdfedb44e7b0cce8d75bdf95eae14e7f4ba4dd3eedfef31117a1ff54188508dfa6d4a81d994f9f22642750d397858c37f8cb33fc2f2e54a0e2123f7bf6f68b955b4fcad434bcfa16550cc517fcfe870b5944fa5949f92e04b162ecfd140c14598cc8fa00cba2d32f79031cb6e98e10c9cfdbc35c83cef0d45742641a9b9094e5048d5590e3dacabea2e93d98f208d4bd1f667146db919b3b5cf715d777bb8b6d65a3bf5b4d66bc9b15abe0974cc34a4d5c330a49f9af56d6df90089de610c758845b1284aec35fe8fbdd484d65a2bad94524a29fd4ae9bb48c194524a29ad9522c162898e2d2c946897ae1fb54b1dbde6f5ce6ccc7cb0d2b1e5831ded57c6b83793963564bc915a6a51a67ead9e5b599ca9efa2055c3fcecc8626071d5cda1c6190cd29cde0227db911bda400c79650928e2d2124cd799732daa1f9a043b968af1e1d36f14666614a0ceb09a24cedd1f2b74a55c1bd214a1292874d340a95376569caa3934ca6bca74bb7a0e02a2262a231ce7b22d151b4e7449a0504a1202025baebf2f6952e3a03e9e53ad29b14d23289c65c5392905e594cd2363ad115098da6d97670cca6e76f4ec747e1643247a44388a11162282917516652571534fd420145ea90deb4a52515a2494495cd037ed31a38e037c541037e53297070d3fbcf2b44150580fca64618f09b06b180dfb4881bfed44554c9950dbf27180af83d9d90f37b92f1c371145125817cfc9e54f4f83db1a8e1f70c4202bc248b10f07bb6e000bf6712faf7ac018ff7c4882adf31c06f37a300bffd0a04f83d8decf04f8ba87216ce6f27c2cd6fef6200bf1d0c9bf7212752fdf6266a7e7b1434fc762a74f8d5425479d20cbf1d0502f8ed2b08c06f6f018d7b11e7e7f82dc300c06f29c6cc6f6986c6e15cf85b3a91f92d89a05d6aa15d56a1fda51451355b5366c6c8265e9048a82652f6feb227de682efc96434814688f5a8855d014c994992ebfe32b8611bdc8892a2aa4f323de60dff204d04e83f619140ded25ed37a2f69a3236337b40de9903f2c60db0b1d1530848de1903f2c60bc837e40da321b121ef4c0179e39cbc531a123dffc70a68aa32241f79673df2c6350021e9f909c81b46672d04e49d1d206facf37c1eb26867aa321f03e49d15206f4c809dcc47cfdfb1c39a2a2c0927efec86c5b2c91b466344aabcb39abc310d44447abe8ebc61346b86bc3301e48d0390776a3e4dde301adb9932f373e49d01206f3ce383236f186d8b2cd094992f43de590cad56919e1fb660c83b7b216f7c6322c5e40da3ed8a0a4d5575b990374c460222792430796736f2c62f54c8850ae95983a6f69aaada92374c2a8583f4fc14cd58f2ceb04aae79c368ce04c3a7304d42939c84965044d44a4a8a33d2b5096b48b42934208da5f94c27d349094923425b693b4940386b6550c85c59514634879843c41999f95c1104c47abde28cf492b217643dd92adb191a8a331223c2cac05e980b2b721ff7b9a0eb8e0504a120202952386c079301d683ad8a8ae28cfcade80ca4976bc912cd025923d89615b241b227cec8d7995d5926ac8f45627ba0e860ae294948af1f71c6b50d4a02514b487bc599a989b1ada0d88cb0aee0a3cdd0f35fa0c0feb207e89abe760c692a1dbf43ed181c389a100d375c2673b6a99439ebb403a1d9e9cb13d8ffa5bd6c34a11d002d7f6e3bad243da310929e3368f95bf3010d8d183ae28d6f1a74f41ab9e386225b87964f2306a6481ecadf881a2025e0ea11f2d178faf4cc091c3dc461d24cd58cd43db4e1d3feae16970a1d4755bcc9b4cff71883a692863207fdf89c04a57670c6b0c6b03eccb3e8fae91acad65092ce526e81a5a43834fdddfd805b7a541d3d945ae6ad1381c81e8ae8d94376d148ef4c6f1c7a080fe9cb0df044a2f37a05b15b83db7bc3edf18e1dc1c598ddf5e8fa5cb4dfc7d7c155381f9f025e831f136518a752e1a6d1b367ca7833faa4d56299b671ddf53e5ca2429a3ba154565852346ab4b8bcd8807910fbd79c0b9d0b37e7c6c7c5c474939565acc9626101e680b825cebdd0e1801cd194295a1204047459588037b71ac255385f81e20de7e28eacb5f685b736062bf3d65a6bc3b7d6c6fe5b6bad85796b5536bfb5d65af0adadb12e6fadb5b6e5ada5c1da786badb52f6fad0e9b7a6badb52c6fed0cb6c65b6bada5f1d60ac0a2de5a6bede9ad0d805d796badb52a6f2d8d35bdb5d6daedadcd615f2eb1d6ca2300b0d65a6b676ce92d7e6badb538acb5d65aeead0cd65a1b63adf7d65a6b1f756bb02edc80c1465543838e190410009a1c0098c121c30b312fc4c4a02213c2f0c28d18174e0ff3a60cbefe05f32ab9742d9bcbd6b26dd806f7b26d9bcbd6c2fa521bcbeac7aedeab4123c57251383859d4a95bc1810a8ac599ecb6fab1abd56a9338c0557b659bbf747d79eb286b6db9a4618cdd7219cd3c63ccb336f36b33d79ed777a4a9baf9fa5632914238e05c4d99ea8a37f3c755f34595d0259489be4f7dbc26e6efd324220ee591f94d65a0efd324f126fcfb74c75574b55ad19e0bc315220efda9f93db390146f608c5c4559ac231614569422afb1d145c4a14334fc9e4970126fc02057d1564ba8d56a112df19a8f22e2d0231dbfa70ef4fd09146f5afed22c89beaff93395e8fbb3c76b6afcfdb98288537966f83d89d0f705c95575b54a5acd9dd55c41f11a1701fcf6315ef186a589ab2a8be58465c43a6a79cd8a1611a70e05e0b7036128ded060b9aab65a40ada09bfafb3e8388538f687efb12fabefbc49bd3dfd7cb87f02349f4cdb410712c4f8edf728a9478a3e272955dad5e2ba48bf222e2d81f00fc965fe8fbb228ded8bf96c51a6235b9f3ef4b29228e1d9239eacc6f3985be2f97c41bd3df97485c655b2de9d3625d1cbfe511fabe2c22e2d82322aeb25264b8cf818883f1fc7d1ebc66fbfb3af1067b61d77d1c5c85c5f03b0e41dfcf8938d88fcc513f0eb176e8d0f771b80a63dde035dadfff116fe8df0fbdc6fb0b83be9f7f4f7dff46c4c18662e28dfffdcc55586bcad4bf4f65c4c18e648efaf763bcf9fefe0bb7862ba4e96aaa38a02953df85d58dd58fc4e194d4fcb0a68a5b51168b35247138160d43ba6eaf57ebd57ad12389c3f1e8a047ba3e7d4dd5d66ad1578bbe5af4c52371b6a319785653b5b1582bd68ab50d09e047d76dc55ab158431267fb09c090aedaebd57ab55e2d5dbf1e499c8d87a61ee9aab55af5d5aaaf567df1481ced2807cf6aaa34166bc55ab1563f12471b02c08faeda8ac5620d491ced6766a83555d9ebd57ab55e471247e3c1618f74cd5a2dfb6ad9178fc4c98e64e0594d55c662ad582bd6ea47e2644331fcb0a62a5b652b56b662e9fad890c4c97ee40b43ba625986b196ae1f037247471227e3913968ce2f93b7d79fe1070310a7e4857c23bb903350fd1b309e0d6ec5e258ba7e0c78ffc5f1c0bc6cbc5e1c8faeef424b57a375d4d2aad16a1de9faf98573d958432d1babc6c6da5843ba3ec8b2ad6cabed87655bad6cabbbadea3f0d2df5da78585e2baffbda78747d985396b58e5ab795b58e747d1b2a184a630d9d34d6d558196b48d77fb1766ada8fb6d256daea47d77731d552f6d278ba9dd7eba5f14c2d9560aaf72cca5a4759ab355b47ba3eb7b560d24857230f594319ceaca11a747e9d9268f5f33b45b355967f5c735e0a733d347c087b65012baff2a8d3cbc7e135a6974fe335a597f8a5773beee5df80430e3a48c0553fa5e61788a669423b3c944853e5021286b9902550ce71ca6019b3f12d36be85be0fbd744ac7d61091e668f702c2fc04b57f107c0a32f1f5adfdae7b0fbcff7d2514787a1510f52ba04a0a64791a60ea6b8034dec11adf02c23c0f97402fbf531a04651497c19ede1e9886794934ffb1f92fd9256fdc925b409897ba46b6026f89e449dabffc9e43367e4f2db4cbef890409f6dc0b28b50db0071e5adee5e90562e35b7edaf896e7bc7bb1c1c6b73c0f7f69017d90fae55d8a4f1e186ff1243c553b44197fa424df710123cd3c7c01ab76016bd0be059451640dec69609f029dc743ec59405f813e8487d8ab80de8302fd043a124f023a06fdc743ec3fd059ae0474200fb1ef822ce84c847cc8c3d683dec4dd49e649b3c86bb4d7f4b30ec480874e35a5f5b7a460d4b61a6447d5dca97f75ea1da5ee6ee447ee49424340b5761e1578673ea84b5046f1f03dc9a520798821cd6ce364d41805ed6dc932a9c3430f31f9f204c69e8ba5ce439abd443a22cd882a3ce515de88c682a0d8951ffd7aa6a125170f2bc6bd44925192e28df6d8cb2bd48895521e625fab7cad071eb46bd1865a310ca3e12f550069ecb91f519522c280045c65faad03470bbbf101efe0116b684da5894f8088e3542bd1d8fb8f87dc739cb53e7afbbb7db7bd9765f73ffcfe53def72ca5f4dd7fb4f657d3de3ba2b39f42403a5b82287ba7c18e7e21a4eedaee72d78e942694f5457bb6660f862306e5ae9b679773fe2cc7dc7017977539e6e6c020432917eee7ae14ba3389a66ae5b19944c3d34ead643f52c9192a7b147ccad9ef6ce3ee7ddff0b66ddef6dfe645d7b6bdcdb66ddbb66ddb76e302d9ba6ddbbeedbbee7639c75c201b9777f660bc40fcc36e82f439b06ea0d45036894dd9f9ce2a08f0677074169c439389cbf8640105cd24620eec2b387fc0e9e361923883bd064e247ee42f19680c8acb607fa4688828ae39b5a9cdd99a5a9b32d86bdacb88335b3207f6dac778d3bde67d0f9ff6de9febbce67714e27eefd0710f40dfa7f9eee3fb7db1a8752f8ebe3f8078df26de741fd27c987a9cbaf7defb7dbe40ee77efc5d8f71bff07737370f641ead286fd737777777777777fb935b80752c043ec8776740c3ab6b270a2b9994e824e34f39c5eddb5a9f6bf407cba7b8dae1a14f4239a8ea69335ccdaca3205606e8ecc3e485df30e18787913c2e0bab93353d38f5c41b3457952499c1ea14368eca71622f6534abce95e25897ccf295ee318941486ede9e47ef6dbfb0c7be904e79d51c0867f16247b6f864e08954e64148dbd7f8ce22116639ea193e0d41b182591a671af6d1af7b2bd36a4b7f7e76a3a09ce0ce354f83030eeeeee33471b17087d7fb936b8a624924444be93612c89249196399bae08e57289414ad2180dd55cd3b4cc6bb6ad87b6651f86548791c65ec7cdb9a1a5130fb19713604e4767b137817207a4600577104204eb0bc419ec2b1073603435553aee72974b4a6332cb1e969b33b344c2b97d1b8913ed267124e035f4fde57219ec67b6652e2ec7a3d7cacdb1592cd1aa6eb3139c3aeb3a4def01cc49345b8e697dd36f9ad3ef10f5fb5556587efe00224edc387a3e0b385b2e83c9a860544a46066b34b41dad4ffbf9dbdbb3857db77273bcec83d49ff6a90b44fb9b7d90da5d1e62db5d44361a7b9a2fb2ac69da7d1fa8cebe874f676f9f8b794ef0650b3cffe88d7c429a0f538fb19f1fe7ecfe02d9f28e39b38cf9a1d3b3a4484af119f2d710404e92986e0d36031f758164591ec9db5f22f1913ef3b7fdb9c33341d9e321f6a59b633d1b9a897df89f4a61dc7ae101b62fb9e724ebbd096dba40b2f7eeb1973f9255f2e6c538950abbd99aad56f6dd6fff2ecb9e9bbd9be3d907c971a044b25120ce60cfc37dc779bc863e863d67bb1dd810529398a4314cae3416856cbc46fbf8344ab8b4ce267106fb09ce9687d8bf5081ed4b4c461957bcc91efba741a3549a9eb74e8c6ef1816aff1e3eedd9679f79cdce9ecbddf6c737677bcf41b82c9164591e71d9237bbc267b0c49e659269d5060aa6c5cc65f286b61222debd137e7be671f648fcc3f033d9088d43763e0fa74a00e7003370dda775c9f2d9bf8f1f191401ac3b0ce779cc7572f5c1b3637310dd3dc35c11db6171be0d9c4672bde448df9088273102eefe021f644a4de3206688c3005bc667bec31b083d748220f311dda965e684c3a913e53a5c365fc776443b849cac9632f89fcbbcc5d52318f3d57d36dd504e2c087ac07a9b3a7992a3f7219ec312c8ac63097a2318c8708c3fc6dce3cc45e088d1a7b97c6b69b33b30f5267197b88bde7ce432c06cb412810e74460605fda97f6e57f174bf468b1d2f35f7ec05c144d9d529ddb23fb58e5f69203ec3f99b84a22314a39c14d26fd3945bc51624a11713c89cc419f664f7f2e893775aa3cc995d22420418e59294666f7f1707bd2bd0bb83747be7773e4db6c335077732468c15df5b4d6661c1ece4cc1091465e80769429ace96bf74f7c9ce8a590a9c14347dbce6c7559ed7d88f3a88f4a0ed29a745bce9ee77f2e62efb4beaed2e40fe96efaf97481e42f12497e2329e844d179274e9d3e58a026f4fd2ae57793f5df3c86526509cda039a2a2f034d8c676afe87312fc141dce5217d2292fef622cae335db8b34a5ab7813551e3465e80b416945a1f469c0c0db8bbc28ba3c7a74f7a08f994d98e4dcd073894705f6e7e63cf2906ecaa3e97ba4d31567e807e120f389c8a4e9e33b5e13c43fc9a5780d4fbcc19efe4441bcd99efb6d7b0b6e2e6fe92fcd81dbdf5f37c71d8a87f4fd250abc1d48534adf5f0e65fe64024e210fe9a44253cf73c93c72fbd2255d7b767389d337fa98940b46753feee3588f6c69fa0ee43594fe10288fc81e0d9c41e0049a4be20c7d99345593897b128933a58839e83b4935c1944e1167e86f5742d3e7689ae0357b4e57bc0923def807992fb0874fbf7d6def02fc65174bf878e72e7fce2c8fd86e6bda39e954f678487f1a790d0e0ffda72bfc1476d1ff23bce7cb97f428dec4296717238d2b7784d07a00e7d14ee3a19c59d6f4609f87a7048c05e921c80e7ffa58487d8633f510082e626d2b8eb484a7fd1db1a52da519bce1477dfab4f628a22bfde135914604a34c9c60a4128b39524a69a458a6482f46a4773e27ad5347daca6247bffd1f5e63eda76696a528d882d19081e94f2c12d52db867ba844af9cf1863a432888b311c9dcfc509c6cd692fa23dd34c63d3011b1d849b3fb8484bd843d4ef58145f7b1de28d7d93fc127ed1f23f2fcac8bf8f3a819987b48b33dd4f1006fd3aa5ef7fe0cd42a4ee72ca45c746c7f086d6410ab8be0c22de046db944d7af16dc34537a9cd37a54472d97481eaf0947a0d47f13029a6f844ec57c042ec69b180930699435150363a452d34ccfec4a5419a2c0f14950a3fd8ed6ce39b1d20c70c478cc19a7cc3a5dab86338b19f63c3cc618e3670f33b5a555eb843a7a18670da4bb8b87f29d3a75f748edb5e1d3d4517ace1f70f169adb556d9050884e56f5cb7c45e6252caad43df8a6a7f827166945297506cad59866173d65a6dad5698224e4a33fbf2b10cc3b09c9969a55da61915a2cc6ced30bf019685493b40a383ccefba29b3d7a1f1973230f651bb06663a4e557681f820b5cc34778046d74c732633e92ae08470d4f3b7ce268482983bb009592987b89af6368cb0f63ca6966d1e25f328d8d6f1287366990d59963d9681366a6c4e3338ce5f8e94fd452995944eec5252da7533fb8f74251473697f162a82fcd629c1107a66372b95b2f3cce0902106991b607621c606ccb7b8bcb0a468d45851419d4c2500cce0902106991b312e64f0616cbcb8b4d4a091625951419d4ca50980ad83c120f2a92c65fa251b46583e279dc86b705e2903cbc71fa31777c28f30bc4044e4e18e279d814def3b1efa3b8f87315c81b72769af35c338b2187ee3fcdb8626fc17b00e53196885a68cab6cf6e29e4463abb1b56c3b1b0bb7c2a9703e53c63ba129e3df3d75026fffd1f2ef57211e2d7f889d1dd1f267f2c649b47c1c594846d1f263a82e99ac44cb0ff3ce60c81b33d1f25fc83b35a4e5dfc8fb63f20ee5bb90378d91969ff3b6d1dbee687f2b34e583796747b4fccf1bc358d754edd8c83b25ff256fec625d4db4fc96bcb31a79631a79a7740a8c3e422c79a7a47c95bc332da58ca2776afb117dc1ed9d27ed98a1a32d797eb63ce2d14e1484cdc89627b8cc6b82d0a760901989b4f69c1664cebca5265d6ad87c1fd8b42fc139354dd389441a7b7fcc06edb79f20a781ceb5d8301f7b1f93cb5b7b1f24f645b47dcd3e8f89c93a37597b3c800525645046144f9238627d6e582ce89982c48b750259bf98018a271c11a28a27a078c27c81075440e485113ef0c10f4d581908f1338a40018429bc605544153428432e2104139e782186148a68c04406118b26a09cc1ea01909128cc203c5a41159a4c31638a2425844c01c2c918647c2146154ea86248102b6001175888a20a3292309718b28218745105245ef418995c082992833384f0842d9e28e287212401658a14422c71042e8c9c90644864c21856c0c0084f4c114612720657b002094124f9a000480b48cc1f86382144851122a420841196e058902189229a58a2032a9418828d01154418630c263839c2b5040cea0f428e68c20f5820d1808a319e58248654240c89c010aaf8810b21ae306ac10a760c410ad70d82b0c20c2a0031796480420997100f8448820b90d48842042728b104194801847d0111420070e48814e0200922b68822ad105204a42a3c918112640491c554c1101c4b6c01084514918493266508894a18b20492a32c4871c6121e30ac0b6880851e40218c188cd16a01d5c1901be4608c33be40a28a32640d844c255224ad945082082a0449a10543a810c5055b2821828b1df8e0c8905a54e48a1b208101144318c38926ec114f3c7105142694e1044a8f114354462469c2c80ba2d8b1c2169165f0832410818ba11e2d82008116468cb084154a7005cd1ee000410a404059b2832865f44c200c244b08828827b870c21221a45e31442621e4c50816984811042db290031608f901124251504213284140b02b1822861867a4800a4a60f18217f89421456a5046d0123f419002839d59c4100b9471440d8c70c2063748c20eb1002370418327b89ed8c214130921518a108060853090a0a8c2052a18326330e4fb02690a275853b4e02504088e48e1420a0ea40051c106d14312843084a231c8c8028b79058ac583292e08c2115b2461b55214c5083fa002105238b14008a955e4200420c8a0c2094d40e1029b82280422dce310c701846536e3167aa7b467fed89d02592dbff6445526bf3e902ed2f231954bcbbc89504d7faa6a10512688228a4002893a032d7fd719b0f46a5a3d735dc51999b74e05d252c6e898ebc386b69902c5999a69ce504460f93e9b00390737d00313ab3f8056c12c6f12e8ec2b68f3a67b03d3e506629ca9afb3ccb31ea6ce28c884863d135be6e1daac73fa675f1f7bc7dcb33a97e878b10cb442dc730f98e720f5334dfd1ff3a1e61e30ed7f86c5f649365f4818f6644a77cd39e7943fa704bf9873ce297f4ee960a0b23925cd93d4139f73ce297f4ee9ae39e79c53fa93300be79c7352ea4f422a4497908aa1ef531e61ce39a7fc39a53f9973cee92e776d5ddc00092ed79c73ce297d0973ce39a7f427b3ce25b851d2163ad06ee48a530ed1c008ed492ee95fcc39e7943fa7ec9630e57439e79c534e777faa3db7d820e7131a951b74e1040d6a06249a400165046405165700216946fc0801e9490f10a0c0d3f3a4e525099a42eb49147729494194272eb4062e464d2e1322284d9e6c42318c2c80d8849cd0a8d018f94cc11048381151f7041dc0201265d306088a2547003d29e28ec00324454fb0f85c57fc10b1f82295a5b22991280d8a084222596c8d409813205d017aa1e354548426e8e8f001460f2962042cc38cea0bc80527a8af181a6324793097941ec96381a40f51135a3e79695098c8c1eb897cd1255968225f4f70b0d0200a143a388ce6ca8b00c509e6ea8957220e46d7c50dba70a203239b4671c8e3d0132a44c1702332676ec1c88e1bf922e53a29a3904693272cd1098d885449a47aa16363fa09c2113a36469cc70fc1cece8e111d6fbc02d74f794dd48ff21aaf44266db1417e2622f5cc5b82e1b4f34c64ea9c8c0866033665ca14673d373b0c7031ce89f9a599ba158490de42c14c2600514666074849416f4ca3cbb3f01916a38d25d0506b8760c518466a06aef0594113ac904209260e60a568fb3865716402184144f102244cf8210b298db5e8d8d2a206faead8d20289de585218703146088d280f3d2ab0d4e1218e33f669e83633c218883396021eda7fa1026f4ce511fb41a2110f53c54367031147023247bcc9de3eb6cf65a0744920a908e90b2d7fc7275acaa7b63ed5f6a58f11f7a739d2c41adfc64a31e0118aa651727cee02a139461a297da4a41d5c46b2b4747712cdd0348a81e9eb10bd68cdd9b2d9bf44a22eeaca39d0cf39070f8b3c943f5d53c52308525c266a29049e7c43a691d29ca7c041d57a4d945428eaa178a385cc284ba32ccc522025afedbc82d4fe9e3d09a73e9c49da3593a68a0605bd00e15690d7b896dfa2320805f25052d64ca2ac4f92e24851240d1898b2a8120ac484d7c4555e9646d28987b28987923e47a7140f9368f94e7f531ae4354ca890d7d82050e24df6f22919f146d330706f79cb8c6a6c067928e95bf0a5140fe51462f2ba0a71bd67d2152616a48abaa6cceb074985d0921aa1e58eee616e61c73555948a28231f0b2d3f081449cb236899a4e57397066901cb20ea925f79bc66cf20ed3a4ae2a357d26390d730993f9dcca279042da5243569c54894774e24fdfaf2e712c96408a157e8faa21491965ef3136fa28e519858a2e34f1a17a640e27f8b0d5207a1ef72884c0429de24f19aa869a5914a2a773ca4f4a9a6d123f5387f561bc4a70e71263e954bb494ac2d595a7ae08783de3a91284bff13784f821ecff346b0925909878798fced33694ad9c1c1c31867fdfb1b86d8a57ca6f4992d2418360c72a73696122925f70d0d0aa97a675ad68ce3b405de72455d2e235f621c94d2f7a1ae982357792ffd6713979eef81ef319b42d1f27b709841e34f1ca4c77828a5fb739148269138f3e90433990387d68e42299b9a71c821ded08cba8e33be8be85a3395348a6b5ea3b97c84794d83d17ed36076c05ece24aff19246ea5902a620a8a4cc3785490d159508000000b315000030100c870362a1683452044da50714000f7aa0506a521909645110e420a48c310800430000000000008054918d02fed4e83671a449810d034177ffb9ed4b84e3831788131bcd44207a2f8e34143850c146d3913014a0be075dfa3d8ab48f435d1b4185cea710c7dbb995f18b542bb4315dcf0f96934e162610eb8fa34b81ac99f48b51150013ef9fe82d69ba200f413295484b1b76173ece753f5f072d653211fd03e30885e67145a1390dbe31508aade13cbd836ab51f2a27c9caf1c9215dd4e8d2fb4c4918eaf5e13d50cc48a2415b174fa8619e5a6b15072d64abbdad0d82b253e9fb0dc51b81a4358841d6cc1c9a0d99564092d6c0fc2c83ced4a033c8d7f3c19f12c36f391948049e47cd2d53351a2b9ad860a7c13090bc551025e87d728fff34eae1724d5ec3efff12583b8fef0929e92ed3e191784075f3b82391bc0bbea57d9d126f892326d158ec1e1dd6838f2c7541467a8e4aecabe3456f3fa130d541511cf5138d886f6aa9a32cf6819e0f2ca31cfb579abb20f0558314b24740a0f63407438897b730a2ada5044f7979236551938612028e8526d81a9d8140b873887a6612f8ca8460a181c3a7ca219f4bdd107834cf898fb4544b374edbd6e132bf65d97d64e139acd6de9ed9d4ea8ce33c706d00ca1f99415f3dd1519c11b1407637d4b169f57498e1fa704822fc6982e2160e27fe8b3a4dc615aed9ef300f1529568b293a429c15a893628c422267666fc0c8df00f8222a5faefc7df8e6189d7d7e72ec844e23b2071f81bd5d918215b7e009a712550109a161e5c8505416471a41645b70a6bb64424ed5398b001b0706c69c13a45cf42dc92b0d23000cc992170543152e2f010084d8dea8cecd8cdc2a1b95c71a1b0f322219475d68169b1908a88a3f61d61b42a5d227ea586f08b36f9121161807c1988700cbc3528822218c41a2404be583b72a8b617d409dc43a0d72b6291069e117fbd86f38c3147ea37dea593c3fd7484e178337200a5b7b26f81d241a1f85e16d5592af02a43c9d807f71b4eead6a8e0e740593636a99247d123313cafc9367ce3785d42a0a131073c9c8fb8137c71fd96422a6f137cc8454d9378bbe3de7c48f44981da7b8855157fcc73bc858e290a2fb1877df4d1bd6c437eb0c4a7c3b5a6610a75cb0db576904d88e6c43bd4b9be4899019055790a635089de70eb524f197837419ae04e640b91db42e72757623f75ab0d14eb6dd720a7d83913ec741399e9c34a88a06e641f3f673a7f5449f66cc9a6d70460185738cdd0fee9d2e722e0b116e9039b645b7779645baae0f04463f92ebd1fa3e7111cff7eb124b2ae6081f71a4eaf562f77645c2805d7b310c85a0edc779fca604720a4b19a71e00edb19aa38702eb6bc5842ac55f3c00c897a878783c28a6c271236e09687ab006b261879bd6580391de8c0b2decea1d6da13a920e5b38c661a3065bfb7fb3b161716f592e82cec5a181e4c5f3b5df9ac63d703e8f2463e778b1e844b06ff62d7e90aa68e77df1a78534792d3213c0fde12c58182f8270732a5009d5a6da63c998e67cd4e1cb316ca9152432422ce6c5254f9149acc609933681c223dbe2a436433b04f94bc62b47ef33d2dee4f8544cb6aa8f65a648902b921a350a4235129475d027f5309e8aae38e3293bfa5748475d1928a0151cc3c59f10f6515f3b2ac829530bbef65e332392b36249243793eacf69612a785bb5dd1ad5d46caece8e65cc56d26079026f4965f6ade9bf17249eaede84c33c699b2fd28aca694d562a63765e2b8e73a3c50d697914eb1980ccb07d191b7dc2f4d468372e85045c2ddfdceaaedaa3945c9fb91a938339367b62234b31f755b123185d2d61f8c08f30e77ddaed4ccaa833af8846cc7fc4c60aab645f5aa51d6e6305eb5881bdd292763a88f558633556f818d7fcc66332139868eed6487cd070dbafa1e3ad9175f83a5393dd48a037b26f1f84e2b731b227f048da399f485c57dcf37b491f28f1b40c8816b0410c8b7e5d85776eb8d4ca8e0f68c8b1b086a5ef8778ed7191ee725663c5bef209f11446089fd8baa50c453bed8ce2f8d4e5f79d65575d3fabe51de09645804a06ff6d115529502521f68d92666c4725f603048bb4bf095006b1a9003b5bdadb59467e325e70f3ec65ed77bc940d992149413dc00caa95d1ae978dad897309ba03a2d98e43a965ec0da88f323d820ec39c9438ced9416343e6d7f07bc9f0ce086a9fad24616c0e214c135e62edfa985c29acf8432c0c030d76b1ee5f99b1ab628bdb2c04d9811f26101099000c830ff11e75e4e2f6a05c2fc8b6fb9048f0e78f8462b7ad41b23e43cfa10d22d017db67335975bde2b027a25ff01905128de693537d0fd469339209e60e92a84a6237a33bc013afecd93261589292df39081e0b95b6865eba9689a1804c894479ebbbfe83f619bb15529d022f8dd52c4b6eda3de7e27ff50c276df571870e42a155db564fed6244110b262c3205d38f9e2ba66978b177ab0f30c1d9d8f8bfea6fbf5c31d98da6d2c1935403d366f29038b34af5230336abcfe02151b84995bc8893d41e25645bdf01771e2a724340eb1bd9f3a362f5d0fa284caa60d55ecf5cdbd34b7e205cdbe121111ab97914032385deeef405f8254777b9eeb078c2f178819633b664c4577ed2495fca9a17a58a85eef82d0769beeab3de9b5e477730b987752c20dc55b5a23a4b5eea8952d192ce5d4ead7c641eddafddcf0b1eabbe677e3fda01c0a94bf39a31649eccadcbdc5a8789d56ae5bb19699c780d6bd8968b8d099942854fd06f6c913ba106ed56c5e59a4ce2b83b0b7cef74f1beb80466027d55a870b7219ffd3994e6713cfb6368b780aa00977d972baa298080832d2906ac90c6ff0a03343b07363bfca546799b1277be2b80b25cdb9550a77037e5329a5a2a8d5086c19d6c638a68af76a9b7c98d623d19c79e7bdab9eeb328b219d0b44817fb58d0464d86db9b5ba3e555c02cce29cf655142ec335c152663e4cd1a1452c82e70ba338a2f373a89125cb3b6665a32389342fd2d14c5bf32845f0899df839ff3ea1eceff7690a69c4b42f975f9c3ce7f527141f068d0332954b174fb1458af62f523904627c5e32350cbbfc8f5f106c15c97fc47ea5518b6e01601c4b90280ba5e46b389348c7a1d14196f875931d12fd4471187071d6ea4d57ef17a591308307eae524abfc0eaa74ba456f7e550321f9eed30ff85499a22cc1b6d40e57cfc23ffd75e88b6535c0e4ffa3c3e4cf573202c3f180aa05de0fac1a45f87b0dfbbc8346784e62d2df1cb7c3d34c65a4792ae29f0b2fb9091d54b41ae97fcb3917b16cdaa28077cd94a626415b0954a8a7f9a08275f164ad1933e5c10e0f369c066e2f444fdaf6815787a38ff439a8fc0dbfb4232f2b993644c7149a839fdda0f9968ed65361867aad596a55c66d2ee5a263cb898e8312ef85b31a99906663fb20b08887fbb1c0e46ac98eeabc33cbe8608f9825d1814fec15d0f894f046efa704cfcaf605781b7e9304e9ed672771e354f96f3e7a99571ffb3e398e59a15a589d1b5e8f2c62b4dca3b7248ccbcb7e9c303c18eea9ce9b3faf1f37c6e1dde165575592fffebb71e8d1b45ba7f36d9cfd6cd8adcd35ca476454b01275d751a4f56464124951cc53f8b2662457e1bcc52da0537a1fc74499beec389ab10a3e9f968aa247a1c91dd111db452dbf218996768d9aad2e71266679f5e2edf0b5cff9af01376a2851571ddf4f5cf7dc85d4e0b7695cd258f010935663d3828b75ada1b60035e2bfe199157d6c27d90b6419db800dd5626baf3c81ecf72a51132690fe3794e4b44273f3f7b1d696aa98b921afadf92580716d33fd7b994036dee37c31644f8ad9574341b5112312cc1aa9b3eafe77cc26d2e89589d05c21abc6018db1253c46b7d88aecad6a79018fe342f10958afafc08443e510a107b79f5600f814ecf1222be295ee45e233e3d9513e4da3a2c120ecb6385298946e2c08d955e8b594bbd633b406b13084f0a9f699e55bc88aee5d44a6ae2deeeed27490ec8b1a1a37a4f740dd01adac8162a158bf61053c58bc0d915bbf5c58b6c018ec711168ec76c04ca0151d3a0adaf5c43ca8df5a71674e8975a2d968bf42dea1d5b8726fc308064a6b680b2bd1ae224104caeb0eed0f17371e47b229f7e9d281a1c1a0fac69df4b4b1d08748f592b2d1f0a83090eae442fd86a710e4f8e5953485b886b7ca63e4d762bcbfff53f7d99402674de272a0a75f3f49550c263e36c508ed692e69566694a4f074baa3c165f1d3a139a243fbe4b52ea96bd39f04d57b4d25fe67e72c9dba9445389f12ef96d94de700ef78048ee71ec0785b00430a3a09fa4dd321c2431101adb89dbe46118831d21ca3e57e5fa89521ac9e3fcdd7b929ea1e027bf0ac0097afa49ba565b45d9ecaf6bf3fa82433ff13a20a4e8f998add1fa5865af83bdf6d50118eb6d41afb24ab1e27d0ee268ab7840045ce5aa0d8b4e1ba321df388bdd00522ba682b4cdca7872867aa9cee35b50036db071814e7db786f76f402bb1c049bbd1a32da47158ebc923cbf23f80e07c00a808161c7624d8ad3d26ae0c3cec06126c165d8e93e0855272a1d5448a0ab9ca2fb90bfb4ca4106c000d2d4b3f88e27fea600e4d47317d02a718d9fc92c57e436c4a6f5a1700530e4ed0604cc31aeac8a6e12d5381e5841e51017da6fdf611aa2c8116caa1345d0ba24de2187b2b10dd9694050a0cc598048971ba4316fb13e358599b09dc4ed81b01b6aed0e96145098dde2e915a4d58b05e00acfe5f21416ea8de3864436b7a5563877972e89a9e2242230fa186fa4d3f160a4f045dd333e7aad8931a8a862541a1de081e2b2c116fac6f18b1bb7b604147ab909e3f031be5724cddca5025e226456c129d6e621c5fe7500b2c7a85167c280a5a4f7bb825d72f6a7a194940cf706ea8eea67a2a2c98073754e58aa2bf2d42e8e79369572211e987dad16af0dc24e330d10c4defe67b8a1e1f1a955ef66b095242a14b447a0e9be0707d34813a37ef7c2b57138ce21fe265a1aff4e4563f12f32abb05014c90e15e3e68f7e386b87aef0b502853f452fac9410b45211992a86024c275b352e96e9f03e56859cf1cbe600332154facb9c9b10ef564a8d1931e072b472c250b340d7b7aee05016ece8650617b834115cedf94bcd0f45e4d036ad67c57a74e2d6d03059eafa565c0400945186a8f8ed82d14c53a2115b62e9eda4aa947f8f90d22bf21d0d46f03ca357d323112907eb56e110cfd43d2607ad74bf4f70d5b5c5682a68ea6a95cc6c8a0532c29a7905be265e7ca0d4ee7255ecc331be1272b3738cb5d78490790420bf051bcfb07f0940e5535f36f3c45699dd1e7c13562aa7c8f7f9ad502be7ef203900f39f2b1e10f7f05c24581c72dbee0fcce2811b3c8812af3a298afaa93523de8b55799a52ea45ba16f4556fe2a5880fd2fdc969f39bdcf15639bd35ec20d7d0c81aeb4fb87ec1873ee45ae24062c3777fd27f6880b75a3cdd2ac4922f23d123b1e3c53a7202f60e2a82be53e602be3f0f6dbfa373ab6dcd262a85ffc74202dea7e83b3e8ef0304b0f438656f0bfcdc0a72c8cf19a4c07c51eaf6ddb1455975cfc06fe15602ff0fb646363ef24ae70ea95c5e0be9d447767231c4bfc2c07c18168a5c30685755b7ac375e2d70492192f00803f1bdb531e2f1f08b3290ab94cd6846e46ea9d5b3e3b22592d46bcdacd64b7b5982fa328471e86d85b9604b5b2ca30a23359f102eea3b97f80cf160cd515e5e48d2e5fa2f4f6e23eb2d1e46851805faa007815e78a25f3f2355d5c26980792a6029094ef64da4d1e0c8221421d1850f68f2a2406e24ed11ba8d1e52cd1e247540e040538cd6ae0484101f4d9321505990a7fc451d251f1b38567b793784400104b99941b728ce410fe934f6e60136e9a71990cf60890921aad12e081fc0114063f657e4aaa5be0ff1af832dfb381412777e011d2cb08a8d0d0894e9e362f356568e300152f726781a246bcc5717084d53c620033254d705d86875084a1eb6d17d353ac2fa93ade010aa9081c6152c65dc1217157c3ccc1571712ae4615106c022d883eeb87b283740ff5024cc8d41a013d17981c8420c7dc21e5a151dffc316597c0e626cffb4ea15b27158decc3b30bb70d87e22c0f4c16e71de5433d70d6abd57a9f6ac4c5fa0f2f17339188e66e796f1eb23af950d296771b0842c847ef3437505bb98e0dda3dfa338868ce46c8a2d2d2fec4e7a9e91c13c4174c626550116455ccf7a79f2eb7a986b8cf081c27a48da6c8081cffa4c2948c4abdac1ac521080760e3d3c7f416216a4cd0c0614885f83c9b50ce8df7d6758fdd89efd05ae87eb2fdc64602d541953890f264c1a0882dd125549f226cd81b09eb6193c864446c8cf841c6492ca48083fdb73151e8c529f71636e40055ae31fda0096d68a2eb3abd15a116ca3776676c07f33989a3e4dfd0380726b65243f439a199d0844046ebbe8c4ca0cf8254388b176a7d804e30213fc880556f02021f6009169b0656ce7b98f0a6ebbf89508ab2ab8a4dd01940de19074b0cc475128450e7bd9119e20251468d577f217cc48080c0314687772fa7813b9eb52e47f608d1c085cf4acf720f17d57d7fb60cb10b5c2e0a6d2eadc5747164523861e8570582c29be8ce038e2812cf117cb469a1e6b1930f562a603910927432cc86f05aa3948ffc8c79bd36d1a0a15e32660e66c0037110a12537f9b789ced5db7e4add0c25a342fd95b78c507e6b6f1967cd76155fa4399420add22ddce27a18a5a7a80368eb45a0738b5ce083bf31d038e580ea4b4e29f6eab422b4b19adb2adae0a3de4b865f45007c8c79d6d1b02d7c88860fbb0c0b8609af9037c4c9521bed2feb6334fa394f4980159ece328ab6695eddc7b9727a4bb89fcae4629c531def8b0e44b627f40f6177014841de036fca456f9baac5b0e69a5ae62ad17699ecadadf4dec9b82147c4b0f3592e1247f1be0664ce31eb58f21613d95a3e3e9fd6473900c604bc4cfc578315999f5398046dec7c49d6c98ed38b0b1f365dc97566f3ac5161c1abbbdde36b18726c5a7ec00fea2b4f3c1e8db4ea559743c37d783d1b030faabbfd39ecc6d75911a2bd7701927674227dce843c68bfe8352090ad70c781a2b1cd3dbcfddf2b76efa6b89bdcff6282c9d777d74e63b61176869938a0227eed112f34c818582a3b4eff30f57e09dfb02a6feef5c5714f8916d76791269baf8396686259c45a717055a3fc93b44172c5fc45587776c04f4f3fab9afb1b5cbba0e108d07f9a4ab0bb42febca5d467781e7ba3462b43765c6b8493b28125415f0005d47d5e1cdcd70cb60f5e08f8adea5e04a99841e6be0108a538ed0e67e14d3b61e5451095bb1c5b16fca7f77aa3d59acd66a745f8c838ef739c7e77ddff5bfc3a5b592be05de6ba4bc39e80bbbea96f5cf634cf99d2ff59886ec3e2890892e0746e5095fc02ca04fb63a141bb7accb381a16bd479e5cd2981c7b182d2aace81858b52f0e44246c21d045b87f83b2a691a0ac9b02a13713066a7e9e5df0f3e3f0b1b1833073a56c4118c30a090d760bbfe9e535c542cde0a9732576071bfca69cc2e0c9333a7c8217ba259743046e15a2d2b2be49958cc3f72ce3f66055ec4c98b51b8b282a8e54fb60a125f0dd92d253119f62e86035aa2ee1756ab41e678d0c3fc9951879d4a2c23a22f3b0f9d2408c8a980f0f3bce22123264bfa01a30c882940c2b10481b55d176d5ab99a6a9ad957001dd62d744ebae50a30f3ca1a7d27c2742cd0536c4c411b20879e63d9022338caf85f0e92c33b5c3ba351128256e822138088739ec111fe01309890c64a3e5e27f1eb0821ab3048401b4f55dfa01ef6352c28b8b657b5045c7ae5b18d490343204f75e6dc06fa5897721fdcd7a2a541c17602ee58997ba13a621a479cb17fc6d40d80e187bfe4651b66e66b73e6ffeeb5aa6f31036f7de263b56f95bc6800f6a123a12225587d761b35eafe75c057110edad59aba5322f40c3f3fcd87ec9109ba55d86208229bf927009829e2f95a4d8e1f8304299791a256f16a7b0829ef42f02df50d812068e415ff422f637880e8182e5890bd080f1813edb7778ad6c0a8ac3d40fb6aca13c5586bcdc90e28394163fb236eeaec3a23c8baa4d3825943439f3f8300c7552f24497e1bea2b156e5e06228778ce5f1df0138c2a644cfaf01a52743adfd61d27e5a4308a1b9600e1744a82a59232d163aca5f95c2b7dec7dc6d020aeca3df9160bfa00cfbd8d7594fd57a94b234097783ef39fcb100654bbe787fade872655467916098a7c3ecb5a0edf43d37cd582e210d0baf30925ee41a109a7f1c607b6e0a29d87b45b541678c42722edd2a5290d47b737cbe24bee884f5ea691185412a3a0fa074660b4c89c48a428496dd1bf510503a510100ded81e193420f023f4884777e0e856eed055741467af3ae8d5fe4f39e9285dcf59509231cf6ee0ed3e0d15485106cbc7c64eef6d11fc04edf95c8dfd6f00368d7e9ce0019aed2b82c120313f60ead9923acf409ddd6343a3e1c814d7ecbc4f792fa93287d7d8f7374f498cfd8154b91602527729c55920921a34d589dc6a414e6f119b2b52082930b9794e98873c4369892c90ee7510f7c6ce611d1f4422cf5d77fd8746578339abc04e9e4a9a6e053c210b90c683610d663bec8143a488a5af0924c74877c36b7f21a1ad51797b84bb11cf40d5ad3e608e5e7b21a67037f51ba75f6d90e7b31c0744507d77c2dc8a5baf9e4ab0fcafa153d0e5b49eab3900367b0fc6f4b821bdcd3982818bad4a2481b5d4ac47eb497c1dada94c9a0aabbe420df486a119eb6144ecfcb392585cb129ec0986f52be4e0007c52265313acbed82af4f6f0bd4f6025049c28e5d3830366c6305a71ca0b1a05152021b77020dce1c76900e6732016598914bbdfa4253e022af5751130b7e9ba86d30ef79ffd3681e3436cec5787b40ced5df4f93f611415abe848e14fa19b229dbb5ba450696f9db0dd57cd5466400530785794bacdf914b2ada2fa7891eb9c6ff9eef03a0fe473a23a3015e02b7313cafa893f6f640a0f75fe46457f5110c786518ff010de0d8c75781d6ecb8bcee934048f59ca9773940479be716a266ae57f5f221822aaade2f402e64b5a6cc2160b4ed33ae0aa493a68d255fbb388a405f10099e40070373396c5f4d6bff911495d6d12d33a1cfe92759d44d0cc6d11d837c93ab2318cbbeb184138739023b1c19addc391d9787bea68182717923b3422f49c6e6a79abc15e57c6dcefac01a919ddcb947e6f8c118e4e46dcbe23cd6cd136a4c5707f1f1fb660e9015bda639fad83031b41840386b2e8ef6b4b64169f4db409f2f6082a0bc43028eec12f1922b128788af062117ee0136749e82ab0431705fd1ceb7667b7a1b8fb6a24e1a062245a7fbe18b46d06980ea45a1b5f765541ca411fc6e95e72f06d6d3dbd3104cff0d1dfda0edc6d04ee2d542ba7e280fa424b1a7e686d9062cc95d421f6c8bac95389441a5ac2e1af4d550c24ca4aa2f32c09d4c080fc25dd6a33fbdc15d003746ed827c1cd0ac8ad54e1c12f40059fb8b8e54c0fba89a2ab9d3e16a02f2f87f12cfcae65b62392b6f1d90408a3e4189e5ba1b78ab8934ceb03778746b2ae1bc801ca259e5c38dd3e7c80b9c87d8c848eb1d4df969b0395711bfa4a8c1a7dff432eaf1ccd62001612a485b86f7fda2e9d96ae24cd2ced61863ef7baea060bcdc0764cde85fbfc0ca8db208b0f4c1a1d999370a84073e6f6c0fdd8e8f8abadf6b338724a4a755ff7bf7fd9fbed2e3b0d4ee9544dea9356822a746b706c67b4a7385a38ca520cf82f44ca22e3f022fecd5b2178a132002faee5adfb3d3b2d8ad0f4060f05cc31ffacff119d7abe807ced1a3203ec0bebb72874d6158d2d298f8198d76607ab2fbc23a492a55293b73c14c712eea10f14c73caf39a2d70cc475c3d79b1400e2db91351f17e3486323721c5c59f55e991ff22ad2327f8ee05dcc1e37196666f32a671a0f853305019faa888c9d79b23eecf64c1eb6213fb01211ab0c783cbde13caba14493b4c7e38b9fde0cd4b227857c7cbb1184d47879e722d9065eb7c3baa1c6fced6d70d352b8f7596d404f91dd553943ea7dc00d761ff437e646b0288dfd652db0b431a5855e996456da47b5a173a505072aa95faf7a0492ae1a82e4878e405a493fb714cfeb2d92814bfbf8390e48cda8eefc8db9c7554582e9278c8919fb138f4b0dd35df9df18b70f0cac789e2e6bfed3b417f1d61b5a08d59f4a7adede489fde4a029e269cf3e080130e00225c51b8b8fdd260b0d1d25c752d27f9913e7512e0d120c341eb71367a160245039b9907e653124e8d1bee4f30fb35dcd9d906e30419a5756d674b3d4c7696ea0147a92d5acdcd2215b5b9dd456a22fa0743f795b9b9fc8f91be89e171de6070c6e0f305b0ac12d243075167b86684ef1d6a6da2072dadfb1a511f2a3207ce3336a82184a06517d715a80bc41ac8e526dd56f9b61f3213fe41479651873275bc6dce0aa3fbe7ba84d6cbd15ed7e74a39596e3d4a3872b80ed769efe1fe711ca609e4385ca1ce597d9812d2e030fbad0c6eb821a5a78cb609a6191c037feffa1aaf1c5ad5c520b7201579cfc32fb933919d8394706dd778a07762a2437f804411a47357d5440c0f8a5f68f463c65507e51bc2101bd7a8a84436c5c694998ec5e20c48347e53cacafc31f2d45cc9e1fd6554d085db514b79e53af82f0f1ed369e0f74d1248701d634680dcb360e309c2433f06d80acc26b38b19545d9e281d5a80edd4d2e2dd469b8ae37f10160d92981c80a6a3f24e5bad2d949332e60d8ec3a80581d8a1dbf9782750e9b095584399ca887e2907601d8a02df00441139a9b3aa11bd7a1473dbd3f0b8ab29e8a42afd036a7fcf5f0be106fe64b0e2045d41fcc318b59b0e0aa84733089671d0dfe8faa2b069a881f1fc59e163427773c763e59a662637708cd2a3ac67a48f01634448529e2d40e9f94273e91ed8a13418d1b106f0f46f0628642732640cf7b67403f6fa954fa5480658ab689b7b920016f28c6909c863a0a4c36931306aa78c7b97aecf04b17594589ab993729d79864e3faad3406d43896b557f3cc6d736f77c58e494b2c11e54b804538512d4c86d5fce15c53c2cab50b3a7f4f203d122c315715a7007dc904dbffc0b86833343b006e05192e751e1e964a14f8388810faf754434bcd0242f6b2a47296b95c6ca4a8b8af510f15a5fb818bd33f97c3b6c7f0758cef27941a33469a4e85f7b642c59fc2da4aa6e6a178369c2e9fc3faa5aa6cdf36690028360f396e0bba5dac377aa69c08ebf7c3534c435451877896aff3af49fab76643fee5d861cfa494de8f6c3ba4cebde29d04e3a27fa84e931752e7682e47e1035f01d2728cc80cf6901fe3a5045e359269b984d58763b41221c8d85a7646dcd81af1606e4d3964ef5e92ef40ca755807a75e405c5c0fe51a44435db7f9092fcababa0bd4504a39a5f384ac61d2f76429d937d72b916d8ddf1e2a307655f3115cdd615e28bf75bdd3c15983c43ee92dfcca880ab1d5c42489ae0240c882950319fa0c588068ece4618782d1d67c19d6d75092aee0c4645fda19db92b3115120983a131f66472aa84f69167ae64fe3c576956ec2ce83efa660e5456f12ada8d1528a247deb35897a9c642427a2b7a2876e36f44d4b5b334ba84c366be37449de6fae7fa704305136fa43fc70d6b5cade667ee5e2e8e7dda942ecd190619a0d350ddaffb27e745cedba51561be838fa38536112fbfdd7c6dd7b00d866b162576fa518afea46d351c749cb20db1011ae1fc33b05bdb3f0953b73523057aa389238e7fdb195f26e8a8aba786272f63299660d925a8d0654d464fade4ccf2c64345b884be5f61f46a0fcbafd98424aaf8c395c6bd63f189f80e74683091d4a4b80514a10921682b4abba55110401ce13a5ec0b0b40ac56d9403b40dbc60690503b68e4c8d71e41c0d9eaa6ed0de4912ce7fcec6c3bad85e508ac451e0212facb662ebc96ba460ba695f70c8e70a6c37d8aa328a3f11399e47ec5238180a0df57054a7a6368e1667df2161fc80e05a1a375fc44c5fbb65a308fc5f175300771c31c25e13b3ff42b152bd5c6cf4b684458c79e9117abd4167f308b073f698e64c22f39bf9915e0d4364c2738f3121071ccdcf12b4a9a3bad220b40de5989b2c30fd9133cca944c98151c6bfe98074912710da1289469bb620e2f926060d8a0201e06984f16303c382cc9f9fe40a5560c75616a0f727c72529b9c40292b569b2f500cc169eadeba1b4ff30e339727da90534a9ee4e9045b52332fa82ae185331a9d8083fe1eb6f275d0c785a37384a8ff1187099af412077cd0b2cbb00ad5ca81ebd90b5594fdef2d40e93ae239a23e291819bf31e06523208eae572fd65c07d26a857675f69d99dfddc6c4c0096857846ce20705ae5f14a6834c26e87dc504299897db9009e0570a6881721eb29565fdc76f2364e242bd86c68130a015b17b159dee2710563feb0a71eac77b81a671e679939b61e1c65045f3b16133550774383cf0c728981ba1777a64156f7f4249c54735cdd09fc5f3c1a1c59b9c98fe1bcb0302ec92491be7f703ab4a69474dca5e6fd5c14e67569ea3f2a81225da8dff0ea237c5c82bfffb5c2e1aedc6908f6f0e6675c7c8be5bb6a5ffda5193cc37d5b51c4febb96d434642b5287150ac1aa8198b706b498b3386b2dc29748c8b2835ee5f07d004baede79efd095317c000e3674f1ceca3611d4ec88ad7ed101b20d815632fd94b6a1c32b32e0c111a3ff5b0c959da292f619772febc21052847c3fac7416ff62d8c0a2d51ed9a1a56629ac2156027f92bb3bda6f69264d6f709e69839051a9679862aab3c9a11620b2c4c58150cfc9a0cbe242404afbc68128897420d648af5732b8861821063da629dd1fc194e89458f8424f58177602be6006ad21801a00ae3137a2cc09c54b9de34fdf0800328940886ad98b6297749183f814847dac5f4d8f97dd1c3175ffd979a4cfc1edd8f217ecb049c967b984658a9836db20709360947fd97fdc0a541b25a282ae8b7014d95b7a9402e69d2a6c8d561cb31a2e9d62c561601f6ad2074c2b8ef80c251c76fdbcb067818407442986b73959e0fdc63173e30aff902fac318a814779a084e1950ee542bf9cb30b2e2cef161e0fcaf6a82c4cfbda0cd1157284be2c804c42f72ecd71a71d9ffb393f2993cb98204ff3bdad7d24e7e61a5310810f39dd73cfbde2ba24a01e27cbca7cd2301408822a8dd9daed2d41a32d03a9c00506cb9e39a11da10d3f803097da10cd5b629b10ee28c0011fc1971f0ba3938cb8eaa128fb5132b657ce093b0149d95077fb1b45f8a370cf42dbeb13cc25858e5866b4123f4567c1e23427ed45a2a5bf1158bf05c80f260653c38ed2ab25fb7d8ff8331aa0ab215e3988e22b457d2e2bb3359af38201b51cdf056c6f7589a629664390c5d22e46177a5cc32233b7a8cf414c02ddb51fc24ba383616602414f70a2849ab12d1f3de25123a81c91a7dec2eb3e3e0caa7902e2e9bd4db809fe36bcc66ddf9d9b7af82dbbc72dadfbf8889de61321f0c8701db40bf8164afb5501b67b09f02656c13e0d9d20c5b3281d8663f9745863c5e685289daa283cf32ab1a943f64b1b15111bd0cb24efe828eef3fccbffd03b12a24bcaaa82431bd05334f345531bd07f8b93566b290808a1a25b0c0db53bfa722417a4b5183c73c7cf18b4ca320e03b2ee726e444c93ea3f2db0e5f93f57416af06b9d8a16386a0a7eecccf7a2f9bfee69be59d8d19faa4ccf45411df6a3355c9e2be1ccb15e0721a106238e31ec24466169ae6d78e49690cb1028b82b38255437184d143aa2cabca94e73fdb2a263b7f5c56bd4a7b0d831261574645ef07949fc9916368b4cda5f7a3d083ef07e59c0c152cfefb090c14a458342efb7aa0d0130de77fd1f98eb11e6de12e9abad17df7435faf3313259dc02d49ffb48835ae70b44e2a411dc1b8120757e8d86a26bcd37d6309d3095335db1d4efd621dc20a015aad1b0ff3164f46e9f2db621311829528a9d6b4199fc973c1dfb2491ebd15249f280c5ed350d9749685632cbffa9262d8772e70c45762cad7ccff286e0c439aac428931635be8d85769c4ce0fc1ef04b62ffcec935abc295842458511d9477c7b216c5bac061be3a4c9369a8d27a970ddb3adb99c490ff5322bd01d3f16ed4a9f124729dd7d497c2e488414b4622c844796d889980c976aeb6748f3a2a44d0b480941705dfddc9db858698e7761e6892748b8439e17ea5e80b8bc7abc8a7ebcca9c6c1cb41cd7392e280f41c5e14d6308faa235b20fd0d3e805981cc7a8c8df7c220209690c8ac5f14e6a640f1d2df947e7cd29d2e55a1a21094ae817adec21f538ee8f92bf6bb449ad29b1e123c45aa245c49a810a69337dd7348ff4a8f158853093118233c22d29acbfbd59343624bd64569e726f13e38e570f8286c364fb4b98adff8110d5853039a52a92eb0c1550ae93dd61ee6c4ec8780febb360f03edd83ad78ecdc47dc408a4a45a494c6a6f404feb3a3ca4c73b1a56905ca3d6f4263da50862eee95653516f9252c43965cf234d9b3e8957824751fa2047b4324dd2d728e680ce2b25faf600a92127fade74231e225abcc024edf5150da5b4e41ae1be670219ec41a287c7d57a3be7a6de55eeace04320847a24776d95c43827e50ec9f5cddf9545c89fcb7d80c49ef8d6ee53c22035477b5d487bb9fc3e7ef40f956fb63d52df210c9f7956f388c10ae14431ceeb25da4f8230c520c72f478ef86482169561ceed178a59a1ba7a313d5393521944a45ac27305c1bcf45209c25dd25813a012a66371849c89578a4aa16786542c5646ed5ae59c1684d66badb885efa8011eb328b11011a6a31f69956624ea8a06f6771d5e3a1745bb050dbd61e238f455765758e46eb5f76515a3a26ae3777fe2beb340f230cc67d173c3dde62c798307845000170d36352c9e6a9274d16c7b536971aecd34207426876a9beacb1d51c28ed962665fb0c2e5df1c297b0f53438e5ee98549c9328b08ad21ad4ac96aef72011544c758f9a863fe6abe548b4bbce18e4ebfff63b77447ee83f62c0661b6646976a79e91503acbd98fdcb721b45a1693d324e35d82e2140abc03113cb763eae839393838d7312d897c27a4460b52950334a912fffda2745e3aa211e69363a52f4595d01cff89806d36e9c421c7cb565a594225349ea451a785f4e52b3eaebf94837af749c5542f0d7cc6864f22ed2f866bea0f126aed5b5877a8dff0dd816c561464407406701d8ee679ceb0f78d04904fff678519a3d2c815b5a75d0e7e18303a3723aedff9a0799d3b8b2fa43fc2125865d25d161c0449e27abaacbf97bb6e5ed61229d691ff29747f79797a69c5dc70bbbce5904fcf82be78faa643bb35af6ef5ba8daf8388fc7ebdbaca442331b6105d7d85c3774ceca24073656aee19e305a034e62ade9db7dc7983b41f171c219143bbe525c02222d9a988fa35895a34db47afed2f2cf94e2fa975fe45d91ef527df536e949e0a216be5dad96b9914a89cc241d39863af4c2785ef42620fe7f40e143af1646e0555feff0f3821b88d67de05d00d18701a37d535ffc62015c110c34736681285491f490437929c837695f279d8ac5bbfab9b09bd3a9799b1cdd179a3011a4efd83b9f69eb17e5aa274e922897c4f0ebc231cf2a7ce00f27c6ba00eb120409679e2a26545469d762e0a0ce50e6989c180c12f860f1e7acc5f0019f3a214a1b5386fa9f1ac1a7edd28ae6e871a98cc204e158d62303bb7d7cb0bd7b86a809c7cec92404f669679cc7690bc43a992b5b6a4c52a876738e13ce65af33acc6a65ba99de0d6eb59575937ceac155ed3ec9ff8ea6a0512c7be51b567b9384721272ac971948c42fd1c1f6b2e3bb28224edd2ab40f987e1307542008eabd595ff2bc483bbf4e5f15975cc87161a0c097ad9e8746e74e53f04e43daed29c760f82614f051cd0cf40e231d6e3f758c925cd04c548dda48fdbd6da384b1d6294d5ddd9de6486100431ec1b2afe4cf467ca55cc3f852c0af9ce2c654ea4c449b7d927160fc95c81e0ffb7e877f00bb6f8252cb10d9fde0a8dcdd3892f55f3c1c0811b6d5356584b45f7a6646321021dbc2c0d0e02b8d40c584bfeba8048a6ba51f0eaebcd999dec93c8a66009a41e0f458fd09287399f049977e19643fd1be8abc8dbc8d78a62e476dd06e4e4625dac19fb93e34474ceb8f90f8822b6364d5c5996a4e66ecc485a829cb340512740121b5d371c011264fa364472ca52b232a7dd0fd2c4454f7aa45e4223d351167530c515f95f01f6b738a95caacedfbc8ca26368287c3828b46d5a88e27b5db4fc3eac83a02a50370cdc68b2dea9fd187b6f90ae3038f898f84d4dc6008e0c7850db6ecc1cc16e2b158fb87c420b2010ca27d7ef0df0f741a70893b533f549257eb4845e929454bf74d21edf994b6a0a0196e17f65e11083f1ef53a52b2aa65dcc1ccd69d8b4b22c60036e30cf8d35c83c92041319f5936a1a89c65ca812b5ac6220404d65419cd6bd2fd71c6a38b5aa1e0fde464d2b951fa2948567a072eeb092efcb6c1de060395c76da23d0fd4bfbc883b6e8227d5f992b1148d71f904ae56989bb632b5e9c4338055683da631a9ce5ca0d66dadbd6a0529506f543abc1537b1ca5542018c53c769ee54aefd14275fd079200ae544b802dc362c43a0d89ae7d9106224f81a74c0fefac092ce5150dca221751dbb21cd83efba2fa81607c98493d62982039435794e4120444d9283f7e95a8d47e3d8ad6151c646c5324880c08d88af4289515a8986a7979174b536ac44b85b02e070b4a8c6e1ad161b6684dc4c3fba96bb9552fba0cd9b5a6350c29adf25b34a04197f8de463a5d35457c3cb78a4058eb473158984d31184dc5abf2d5dcff296543938b4857bd286b7cca559f6b629d1861e209d70cbb72d53e6ec2c8ff9f8f60c1e02b5a7108eb910903401525065c9a85aa61f391207711029e60b9c40cd1ee99dc01adaa300a857fabf36a9dc8477a7b8ba02bf3b30c31ae0d1b782aea7c149ff2c4570668834fcfb7db1c1e69fdfe3eefc43a849229d318d270c869fffe0ecac310a6cfc160eba5fc75deac1525ed401c2c702a397b98f1e1ca15bf6a4eb1af8a00cef472c56277530d1ac695cebe4f92737b2d7c48aaa81e639f683518d69d009576a68556edcb8feabdc1ee1189d1d7c3e9ea7438b514d754d02447227717ec75b2018f5a79f214548706fc0a542dda21e68c0c10230cd6a2941053512aaf05987866beb02aaa0b6d9703532f75d90591d6795c043f9a12a31da08b819c8b8620b82dc01b5a9ab64c69a9f691639d3dd3591c24bb9e651b6cb202ecbe8fd78edbaf9bf357e234f8331f234a013b839f4a18ea14b36568be843ea2efb695135536dac79444f57047d415fc1352f6ce61f3ff688a38daa1893b04bd11c624224410a8c2a9404860c9cb1ae0533d4139d9b0d6ac35ee348c8fd16ad51bf0880782137f905466a65ab4d73a75e55c2344e822e2e267e9e0aecd955d070985bb3bd6c75d6ef35fe4d6637f815674ba707cb5fb6bdcadaefce24d928679be12ded178c68ee6e1f5172ba920051226fb7929574c4688267b8131d3f7ed5637f494716fe60a670fa0f38f8b422cbc750eb79183e254973b6227cd9ebcce461224d2c77ca3e3284590a9db6c413b83f1c845c3ee6a6f9970f978d4ca165d59b17af159f94a88db33cd6158755963b039d5d9b10b15ed4925831fb316a7cd09d2f472d5a9247975991e734a64eb3a753259adcd05ffb96424732891e86fbe4712e5a6edc35ec95af6fbad29edbf30cac56810bbf43a76200b70e8ab17556469355d3af1ab68fd3548a4bfbe20ad68154fd004387904f90c53921f35bd5bb7c8a7236816cb00aa4a43eaf684eb1c3cdd0a2e91ab63fa73ab04e699f2490ecd4d0e894d008e76d5e1a15746a94dd4a318fbacf487c2918befe27b22e35ae653060a58c966a37fa331fc952bf6b466107ae5ea98f0eefff7246e1f62f8957a5a2ab5c0e58e99152ea0df89378514a04ca0324437f49f4a4721bbbe3b7390c573f23ba2615cd32e7c096969443c4b5e6e06773ee37624b5223550cb4d0ad6ee83152d90afb5f5caedfe8be5f6601b83ff8cc5fb3b5f151c85f8ce52fd08773bf0f92a3b6a2d65c0c99df8ceac445026a8600d3d5b1d9a20415a8462b2f6b3c0549ded09a265e2c0f50053279b84415d9b0e56cc4ae6c582b9252ae85dc17c03aaa8a76e58e1049916cad15b556aae6345618c999abd03a60b62a0da54e73f0d62d2e145d3a1e5dd0bbc011b93d0acc824e79b4fbb4b6c38d2103d11cc5ace1bdcddf329cf01290b0db80f2dd7b7b0ff0130df1aa5c025a4dac2f3d1eea9f8f27e0060666b9a923fd1ecf0fe718d8a603e4ea84fd0298ef306ae131ad89b512c198b2f4f97cfffc303282859d804c8534fabc49ff933982bbc92f181039a53783dce9e6317e586bc1b631c096636de9f164ff249441da360831f615045022ec3544eed0fa5d41cc706f10ff1d28aa0f13e9bf53acfcd342a3ca3f51ebb2a316a875f89e9831c2364758d8bec11c4ae9a944c88403e200d635d8bfa3285afcc22d382dab960cfaae8bf656a2a6545441ad19a51d0794c01c0f3538b7c72091ba4658205b9c880ad918a45d094293a1ef00c75b10450a0dad0a880e83c49102737f1bc6cdb1dd848d9d3e43981010518e77d65370845a9d326a0442b3f0ecbf8a8229966e027809c870e47edb23747e88680206e27eba26f4789d222970892a3dde3ba95b5d8b0c48fbd298b8769cd072b46c728aa35d720a84e82593910c015ef3325d03450c8a827fabc912bb4366a20597468b0a04896e22d2cd7b3f92bef68b569a3bf772158e9854c0389151007bbce3b0b7997da3706437a66eb5aac43bfc9dc8cd421276b8fac33539f7c52c4792796758ccac36adabdecd46acdb4e47da2213eea575909bf2fd60efbbdc622a88bc98f81de4abb058920d832b5c26844a8d096dbaf8e09ac83cc07747e86c5c787bc9c5da5b623da3a995acfbc537942bf11a6ecf4f2857d5edc8b98444797bda9d155a07fb0f5e380570e6b85a3ee76fd03682880615228fab92923b6a55398990604dec6452a8489b8130e74f31c6babed9ddf5b0e0e3b6c765cbe552e86c4c248b7e377df61824a66544702984076579821c9851e9184978c185d2ecc761e83a34faaef4a194f4f4beb36dfe21edaf8b38ce8040dc75e4e021f7713710ea8945772f89c8ed09b683368786fba545d8376c05c9ac89310442d0a2e75489b9958d4ffc7db54a327b1949bc7237683fa38bdb6c3858ae9cc10d7278e34aa0c226dfaf8de4dc21faf84f2d7474f563de471bc9b50745f345a88ccd066689ab990bcfbc89f98fe4c30460be5d79a9ae210cf71903d8e0996b558326d01051fd9c78645eac9fb40a10deba6d24b06e999c42af004d60a54399e37edddec0b7681979d2ead1100bd6e130038ee5fc18fa62ecf56ea793e8593f846a7d39784df39f6e9d199e0b927f72701089bd90954466e0dcc28625c3d38385a5c23a8c23637496227e6f8b3e16dc9524626526bd0dc84a8aeb4b5b7f45420e76f66c3d179bdcb37dd65e17d690a142282aba3acdedc5033bf555bceef220616aa6b618e3a2b9ac75f4517396dc29709af199bdd1a0d730ad578e8a72b4411897e924da49661dc322cc599e507b797e73a2d168de076e92bdf7b9cbd31254330619fb75261359a769f032aed12b5f6c1b1c47d0e85aed79056cda45146eaa673be38283049eb20f25a70e05f7e34fd403913dc9d80a3e482b102c2396b7735c78babe087255b7d91a674ad144629c122d1ab6d50afdc4b97b42499e8f2373f1eee0a47e7bb3af7e89f13cfb0e152d22b4efe8ff68949d8ceec2ed1bf3c7b4c25bc0525708fdfccd94f8fb321277291d57ed7f513ebce24d81b5fa1306b57ba6cee632ea3b38a53e969fa616fa8aabc62540d0672d0552412bca4e481920c13a7b63956153cb26ac2b3d62655d494410d92bb449c3c23bbb00bf33db05b22f3697391ec0361e1fc35e6d7cb665e16f1926d0822600a96d4564b0d185cd3cb5a1a428082bcb027e1bf52d5e5e45222aa5eeb804f3e9c4d8ef301a4eef44166aeaa559b3aaa8acb853ddb4d4d5e8f314fa01228bd8a7db5c9a783078ce03c5311dfc93bdbec141942946d48063952802d8d18813015eb38d037d3313c5be0be4c4a45378661556a39ec5ce5e766080c0f46e42b55399855ba114a147b6392dcc5c0362df29e8a36c9ee2d7ee7b8927cd5d28237f61455d4a5599733ad57d1793174936687e6155c72a99a8a0550016cadbfa2d40c74b284547e24a92d7e668718e3e8ad24f2484de4772dd90e1039e75f8af6ab185324d7d85f0037de27958851084ef5c9a8c00e41f88a2422145064020e02ad408fb2a3c3e761757e20241a09d67600167cc5d8ba932144937e4fedc94ea6a513158556d4100c24f834a5695b6aaed97c0e2d8757859dc27ee93973a93e5be27c44ef2c8928c55fe21f136deaf865d524df04cb367102f2f0687074ad3a61061e81f8494b9f246aafa8df3803080af09b57cdb151895d2f0429b564e04e69cf2adbd487059cfbeb8ad731f2ed6df03aef5dac7b8d54efdec49b7c9c9d2b5eebd7055676fb8d46b1f6ed5d96f7061a75e4efb644cdaf6503d31c7617e958ed455861526ece20ee8a28e5d975042c23fdc1d074ee192eed560bf754ae232cb3315f62b6066179ea4ff583d795765dc9722a80f9c48ed1f01b83d92d60047fbaffc382895480f30c5d89adc941dcf1e74f16557edbc06042dfa469dcffafceecfaf73c5f0cf8de70fb72ed0396667a113bdd2bda9ee5af7886d2d1d1af076d57527661c3648f44f63a04e99786828e13f8d403b31e3b041a27f1a0375cac4434309ff6904da8919870d12fdd318a853261e1a4af84f23d04ecc386c90e89fc6409d32f1d050c27f1a817662c6618344ff3406ea948937142af70490a6ffa7a14050f997cb64b532a45187ae01245c73cd89eca3f29cd857398487564aab3804b4576fe018e519a81c235026901728019ac29343290643cd5d3fa2b25c3e37d0f540abaf0599b1b3d0b7ee961596db126bd1b5dcac55169715d3426fdd2d2bae52ce1e2acf7a10fd715fd74e26d1504e97d61b56a1dc638188b0db2500e394b758a1930495dda59f3262a2ebae40ee01fda06e131ae7510d44431bb3c9d5d79c2a867293cb8f25aec988f992d0582139683d6750d4008ddc346991c44c50b0208be102a45d189ef53fae9e31aeefc4c093359063234e1da3d310a55e5e48724ba64918ca6a1cf3cf16fb9f9658452570ca47335931226a21492f505985501e3f82384c27fc16a3089515b40943b3cd4c3f9dc3818806c79a128d34b54632f0845907b6ef84cfaba4112207470cf27a9cba35784103ad7a4d3e88bac7c4c94dc71d3f3893d96bdb27cf93678758a9563d51eee807b4886a81a5f03775a1f6d29366a273344b39a32e4b28a1fb99af4570462ffdacb07fee52b6f8041b7dee479d78b9d630b3e7a64d2c57756f68e138a585b20e1df9ebc9b08b68e96c4f38750d5596e9afdf26c241433dcacffa1bcc9d614e1ae876487e5be92c257e6ff75c1cded8857bedbc720d4317717400d93a0c456b37b426382d0e0ef26efdc71ea18d03a25199c6a5213636892f39ac0dd2af4cca68a710e2c4da4f9bb21f88d2a086f4af0cd40a94b0d939f36d10aa0a2677c6ba927d181bd9948bb9a68dc3df7492d9287ab67ba303ecf4587a3dc4b579ad5c2f664d0444fc9decc034d2fec6eb3cb55e0057dd2d543900f6bcfd34692e057b1f6bb9640d66c3046729deac63dfc921f5b5f9d7db2630f9e864c9fd97a12cda7959330367666ffa45ec3dbb4774bc37b69a0c41429c4db849fb6a139ab00df79825ca3e9ccde196fd1cee71c6590038cb217fb2e6686dfc633929fd4021f37d5ff07840585896bd4c9acea46eb2914330e8b4e12cedf825c4532707691e4c4e9cf65c6282f83c8b3710b4bc7189ac61099c59548f402de990bd4bbfad37a511cfef2cdce8d66cb11d80bac03ea4e4506f58eccb9abb5c588d7aa73b279a96f4448631c0d8c5c949669497aaff9f49bf4945227e71325287c34be4c80947423b0b8c8a44c2c3660e86193275d1149fdf1d59831023cbbbd9fdc73539704a94d0d2327abf5f1869e3ec2786d099631c0761d6389026f54f56454daea052692fa738f03ad76deaf52dca000b48779f84632eb33c4167168345e5dc1162693e20875b82e10f7844bd79379af10eea7b77b921bb6d81205dfb7ce41505f6841c577327991cd53409e23251c92b5454da1b4320ecb91a08e75e3f9234be0ad562ac0f33a2a0d419c302e84a6273a8b99a57a8f3d573795b8ba81e584a60a2fe356ae8b676c273775d4b8a3b58889d6ec5cd0352d94d58d0fc316b02593ee9106dba35f242104a3f6c34c713963474e989df3e5e6f57615327808633598f18d3331e152d327ddd3493f439eca3f6b8d5e2789fb42b7d348360d03a9d5c2d6475005178368ef4210b8a71c0d626dc931c4c8febd555631c443f557094d23a0268db45322df8ec653dc266d2b172c90105be64dbfb304f3baa047a4c93e3c4403e87caaa0c581a151b0c5f2732ca73e30409f94a43d1280e29218389fc439d971769032182147ba792a1b30d1e9d90fd0499a100b594310952f21f2986aa40781c7a10d1b1dd059462a51e478c469fdac9a87cb167d34c34607742466e13c6d2fa3b210beff499d3f41038629cfa776b00ac2b7a22a0e4d7be19781305523c181eb8a7559096075f5607f2307c8c880908aa1021c718f10fdebce5a4265f9ff02caa3410733192a612f82314e051985dadc3a56c3d615a4b2a90a550c27a6284d87f712042e5fb5b859424ed5dfa94f300a8dc3acb7edafbb1322fcfb8d4d67822ffae7ae3393e6ea1daa2f84ac780de86ffa12a441f9465dab7694f620a3b478b4a0c13be2c1b3f3c01a9d29ae46450c519c9f94c97dae83a9bcdcd01a80927e2760edf349fe023973e737e032c825f88045ed7e58144cef9ff16f4566696ddf0c9779e342d5acdf03983852bd84017abbd49292a6910ac26f7dcc7f50dd0a57cb840db20ff960e7daff39d00fe0782cb1af6fe058475457c037cdb4e3b137f0692290b6bd02a809a082f8accd7685e533b8ddbc53ef08f518b3793f308c21e0a3b1ee0e65d1457bcfe801c9b87df7167f67c0b37df5bbc3e219fa09fa3f84e8bc15a00bec7c6a230e88225a316c8eada5be67ab38334adcbc9c2042bb44e22ad202bd790ed78606e12584e66d5c9214f59e397a1068f1d4004eab19010e2bfb024f223a7fb7afb471dc27595f05fa7357ead82dcec8277218aa63ba200fd4f1203f465bafc0a2b2a94401e547ac3754327fa0ce90cd6a520b605d89b0533308047c374794bf80220c94d0105fb1c09488ff37d7812a5ee4dc759f177b1d4c2913c144e235d0cf0fdddb6efbe27709eb5447d0b0d6a9ddb724a7071560f8e5a0c04f9f8964e47375ddbaa365849b66949072b700171af76da50558368c47d604a3eb67965e315edb6baab7cf7c606a7c05253a5dbe0ccc1004eee8105232454fe53fc5a8119040dcc309d92584d76fee0b1ae3066f823b5f5c62a4efa0a642597bc465bc0a47dbb90f76b41465aa0cf965ff4cff405672a28df124cdbe8e8b19a6070683a6d1bad63bd6b8a66a50b08722cc0056abfbff8db2bff614aa4020beba67f178849f14d8e0f6ad7e284ef435314524631d87ae4693b586902bfc3b5b7c83554c31cb69cc65ddc1892938a89a4ca4d49c534831cc4f16403ab3fbc73fed0aac280815e0957630d3ebe46867ceb43e9c763d4bb38ae754b5c7ac4f70632fec096bed48b90645ea183beaa9f2ac5fa7bc0c68b378dc7e9fa5764283a5974b058e1e8e189d00f49352fd2106963a5ae4c77c7249420562ad2197d5617b1c5349750acf17854af8c05e988444f2aef0e0a9d1c762e6778f66c3a642144b8628d86572ead4896e8733b5f52a6b8e500aa84002de274864505cf8b533471062ea1b0212c9d195ba56c229134950309361ffc238931e3141136f303fce8857a0b164410291acfeb440cae847220928ee89824e47cf5e4088ffe790138313bc7ca22ca5bf8b01700ab2f6fa13e54423051280d7506f28cc38a32801ef494d4c67008092227c53a84d1e7ee529e2ab865680d5b8a47bdf3eb44f788257056ca9fadfb4ee74666913325e8495aaf1a8c3e7ae116d8c570aeb36e2f73d4f4be22799333840cf46ea88d68b212f94021c129a9a652c932aa077f1d99804302c237b111c1ec8c827f0242f6484bac13b4fd3fbadb9a474a01e59465a93d80e5af5b944bf8f00450d3d60496e04b977afe860f2b802ab59e200439e974e54805a83389f9cfef76588deecc7df0069e7055800b65b96b864770ae37da2ab9c7451dc260b40e46214a952683eb69527252668a35d34504243188d0d63ffc0379f8b1ff5f46f0437d860d7b41f416c4a56b818a8b5fdf1eebfb21b52bf32d9242d22e54b64b4df9b8c9d601b72d80dc47f3031b16702c892f9f867aed059dbbf7e9ddb41c6fdd98565d43374b2685931f997b3f0cc75d95da7372f4b19e1833efae29b67559bcb2eb8f60baa150ea387634695b20de77cf8ca9a51ea1a3890461b7b55543898e0d05d023bf5387d48599e5274068a2b2973a017a83faaee06f0099b320f34d7f501027146f8baf3f5bf2a03d496fe23df68ca81f8d23706fad015015be92a3ae25de1b272385420ab18832ec21c9356fd36876ec0d4c4998046406579a5812f546f29c15702d7f1769bc5bfc35c6f1f97dfa37349e94cd2012d4cbd110e53c2ad5c9f6b50780d74dd43234255e60174709db0f3333db225f1b0d62804bf225c2c1ff4eb19d3baf4b9be613da30d8e4704f66bf09d45bf16ad04c07748ef3d09e4964773c5b327370a2dacbf65a49f84b77a0a031ac71f0418316ab0b9d8f63857471984a0eb52a1412aa3964cefdb6f6f6bc02b59881757a56ed13b02e72119bdd655f880e6ccc32bb9704a5dc106e92a5c0554c111a6366415fcd29d2068853ec1359ab815e158f5ec33732a3ef7e5b9ce847a970158d9328836e8b33ceb457d151540f562f7d200eeb6bbbebf5844bf7a471b3630abee77af54b18fa95648023bd5dadc1a06bdd59a89717cbf5f4f87be3bfe48933b27df46f7704523d1f9d40ca4f320227910606cbc0735f12eaf53793d9bf4ffe8cf9fcb3be7e19ba2a06c7044f405be8fe85df92d1d34a005ca1f4449bfde8806f0ae215307f5ce8a5903bc23668fba5c2a6a9e90a2bf20d0cbd30f5d736eb1b3f61f8652e1d0ec960e70ea580d8ff830d05685264442a5dbd2c13e27d4d6ff1251ff5d14584b1308513ec94482be46231ffb3e75580e68422ba7729f210cc2445550c2cb6964b37604f4699046a0e08f3428fefd3f00c975601ee6033491c9b599b1c1f9aa75309d36cc008a1c00ee2834d7bac94dec9ff1dc8efef61e58f06aec4cbd9a75fe7c85377cff86bee81c0e3eb192706451ababd3810b9d51282c0269c613424e4bc526ae70d0c70844729b013751e54fc66efb79ef11b12a9d43454708b2198453303f06dd172ce2dfd03afda26e3c5b1d9346ba8e6c88f19c5f08089947ff194cacf12baab1583321c7ea8fa9b291d98e6824f24255c58abc653953e68b467afc14806a97853dbe9a437129281cd9058fb3248ef21b1b70f1894204e18383349c4180e42d7b40ce3023ede7e72c0cf49b31ed007929a680d63fb4ae9f909c2d963e328b5dc82ce29608b1f89e876ad2652633186552f136f88f6beb17929b400716b4c8aa05c134bb135b937f52838919b22e69f063ac3dda733b64cc22c0ffb6310565230f5866570b548ce89c3f036ac7afa7e84718424956c29c307167c068623560e7a9459c4afe08508b3201ee470b0c8b0425dfd68b87b713cf5243108153330767496be0aa4adf09baf6ed9648dbfb33e79190458c435d3df7824c375063099d7bd961afec55ef9ff60d2650af7ebb5595e5094bd9a3a340e0a587d624b2437a1f917921c9612ccb93ebb91e46b923af578575a204afed8db785deae294726e331afb953e6f24d7c76381be6923ab1b0834bb2e6fceb2193d3d0776dd73f2e8f5f2d3adc04a129df6b9a3ddf554c248274cbdac23e814b4bd488dc4c360b4dfbc6dd05be3c82ecfd9319063da9f5e271ce4fc3933e8427fe719c1e3560a531653de8408731bb8b9ae18731b60c0429c5aab9932e68d391d4a681e6c1b99d87038999fecd11278f56b50d4d0c7ff69a1934d78c237242f49673993742bafe1062eca70385675b8ce84f83870484db292b00d4c163eb8dc99d29757f593b22e80fe74cb78873e7ef5d8bdee493388485412e24f7b301a51b0d581292634f25224cd1bfd26b9de45af7e7b182dc695907b808f05af977a97070efd63a92b80565eb1893d35b38035b61095e95462d04a294b6fb368b4903570d56f6c4180417de070fc86ae7f13b4572009cbc06702d6ef18b256ffe8f28a7ca63b8b51ab73152b9fdc2019aeeca69e129162ffe70a8e93a2d5bd3cedbfb2e1ece5e2aaaf51bfc9e5ff118a6492ebeaee0524c4fe8a634fcbadfcf5911aee6870ddfe9a9dbc91e4f0cc0228d626506d4112be78ce76c7f082dd30926b668cd2463c3ee7f4c8e886e1b7784b9b9c64842339c7980014049aa65e140fed89c33eb30615851b32b41a027d8667d84390f7b2e61e07419f6eec5029191d3434cc9cda99ad99961ad9d802c9d6e205b602974445674924a2d9fe0c9170b48d59147cfc57a0ae3b6d744381ab2d0cbb6f33a230e266fe34e2aecfa40550614f3df6a1cc9a702470d089d4a925fd3d6813c52ef7b8bd03e72882dcc0913f74dfc8c1aa3164e396436fc861e55ad8c36433e97143a56fc868409fe0b281786d84cde71e0ad141893d21fc42745467d486c6fda577eb9c51354488f666f4f05e5c80ec44a306c8d2926e2a4c8673cfc2403dccdd10cde6f3033a7e268195c1c075c3aaa5b00221acf25a8866485e85eb8b432776a5abbad0079ce7678fc26803113d5af6bca86ff0384b5051b441e807a13740786b61afb41873423441965e685bf585ebd9290fadc90364e39343b4996fe8240f15c5d543dcd0c6f8ddf79428764349b528f46d7f643991b555d4542b278b789a3f7446b295f639a322f57705a8358a8e2f400077c0f863855ed123a417088a5b8eb648ede71ff215ab25789fbfaa958570c3be90e4bb8b64d4de0632a32a6a0f7df4e03eb35611aaad09582f672fb7e612b2df61d1a47d3d5bc9e1e8a9819b2032dacb679d225cab7df6bf0523c7987d8b504315ed01d3a45e864899ea24a32ff195ae5fa4514267885b89f08eff48aba70b981bb7d31ac913154ca405832652d6541a48d0f6e133557450e29c00fba0b50724d5156150bf3b57cda53847f326a40513d30caa0452e2ce88dc88da3944143412df78298a589422e3a27c3dead8268d6920c74404c4d4ab7c360a8c3bdc072f377a30e1e89bec1d83345855a6cbddb12ff22d81af2529fc9cb09907b97489dc26bc9689c7929b9d89db566bc7d2b0cb6269228329be6f5c7bab0a9c1d3370b974d547bea7b1638b26b2731debaff9e9435bd3a70b23dc103de933194782a44d3adba3d66c3bb47d9af847b1470de490e0fb3aefaf96283c5996a84b9fbb1471d96be072b0533203676c3253dd4c2043baef850bc8ae121e94b7e08e471ae5c9fc974b61a1924902771f657dcc91cabe0039a3b89d481588acb7a0684996e62f7536f2896601205d4a670ad3d2f4f7f4265a773ce2bd5bb9e1060f1437a6960bcb76e56f4cb8fe752f1bcadde1c7fc5927d7799fb75ccbf14e80a606695e4616215289f9fe928599221062c799bb148431a99ffd0f0dbce5c03ac3250b512d885f1fdcde663ac716cd77b62ef588851f33c38314f1ec959a0c91e7a77e7288c2adcdc4295cd4073b6d7cae4e25bd80670acf70f1f1975cad51d07c77a5b195197bf46e6fc9dc92c60e030fb0b9099a16e9ca6819766df64923f6cf4cd18ea2f200fc00826e568ad0401c981791d215902a8b170dcdc4b94746d971dd2d10e057d387d678c6bd1c0fdd22d25c60225a86e1d0ff7aeb73ddeb7feea484cf38043c9d8bc0adf6f1f1338f54ff9fe442a14f6823e4db616661925915e8611b828ebf421abb6c0ca07dc612c0e6addd971f253aa7139e07abfba039b21eb32f4644ec61720085d07c1cc80ecf7358b044c9b7a6a8e4aef88b8ceb1b2adc0c54fada3b5a5065b880bf017a5a418a4e68c0dbf293cf9db674ebfed48d79dcaa94716a62b3c639613ab052b7255d3d09b353a209c6621da317d072c37319e9c8410f986523a58cc21610b81992b95cff5a9d28f9c504f29c4b2dd5690b9c9c2f9931cc1266a3e60583c6088f627fa2408ab0a12044e526b32f5e7f4f895add90886fb584699c877b541bc4cf7ff93587799440c0f93b9cf58395112e70782219be666e6ea151eecfe92cc701d2fde33b2e8690f85e68be5e7a959ef8f160761cc106cd2cda24799e30c753b83cf432667e7b89a4d6c046feffc54802990aa464019eb19c2b5c81f649705c869a0cbc6a90bf1291609768990d725ead144c34764c717abb8c030ada40238035d77433a9b4250e05392791a373ffc2016a17d0eb7e251449688a3d4e965de7e9e0a3eb4131f55a69a4476765465fb9a96206d94bc7badb00285b829e2b883a333681fcc64995ea2ee094017938990595de7602586fb4a06c0360899f2bbc82f8ff216f34b6e4129c10988d7242e66a0e5bcbeae00341cd639dd50ba038c466b075d8ddd4a18392e0da291d799d65b3b46363e73823250ea9b89b834cb270304915fbcbf03ff01f87717d0ecb2fc174219e53cb006754acebd98ae6b50cf25e72c5d2d935782f34c9314ce130a4ba7ea500aaeec957dbab5adab4f1de1d52b7cc6ee82a6f8901348cb45e628feb42c3e8170a8b25ffc04bf4cd70a388889fff238e612446fbac18fc861b3c5172647f7894659a8d026977caf540e685dbb2aea0a982abe8c7a3047de55d98ac3b76f37c4e0024fa5be2e6eb0810c6ab2ffeedb0a7fb345e873005d8152633400341c6745bf1595fdb55b80494d2410c46f14ea93436f8b2509a4c41342e59bb0b6bd9274c2a2c27adc5bd488f798a2fd5fbc5810105328c647e0519c60e4ea30af901d04ec386af46f66ea45923c9be607685cd1bad650bcec24cee170f89b96a89ac2f0e20d8f060a6bbca21cf5d83b416d25a1169bd948926ce12ac87602f586c2e6b91caf39f74cfe2eef5553a141718bfc30593b55301f3e2422fad34f3f91036e78b926025269351946deb1790ee648a86b8a9397229c22d527be3aebfb5a227a88d77c988e6b524018bcd928419eebaf218d3717388fb3bd59394c360dbce875373bc13183c39f949ae73884a68375b04ce5f6df09ca00db3f9a69cd7f9583a6e7ebd0efca3c1c7eabc6abd3f30540c8238448b057733b9297194630572f9d6c1988f21980ab22c6b6ee34017283457803ea1ef523078d0cc32f5fc0ceb693384499a62ec4503d28d56d9f09c7b16ed09391f7d10af2de788de586cf01e86e71b956144b5de29636efb42be3bd5baf1f274f74eaaafe0bca9e04122366b9967f716b4f1980124c37973ccd5ac0d7ebfd24ddaa796aaa868611ed46d0c834c634ce652411bc3fefd6f32c1f4569051b68080d7703c532f12e8c3e3f218ebbb81f817b89e7dde515581fc8b3c21f86403862fc4222f570fde6dd7884709fba8da155fd0fdac0739b075b573ee92589018bd4121b0ebef575ab90ff81c924445217c9687d1984da5cd858c177ec6fb729368836d36e34414616470fbd829417a6aa0d6eee0ed43a45724595e28389dcda238d6a029b97c4c722ce95d440949b89f4767ee4368de60b6a2cd3af4adcf6abfc3141592f20b08fa93f4266cb65e3ef4c73eabe4c014fe9f94b01d2bad4db6fd9f3070b443bf2305c86861626c3dba0209f51d822393476b9e706985ec1f81cec48fe32278b2fdab6f16bebe93bd37a0917eaf1300824a101b6de7232140516176f2e241449c74d3521a0b8f443123247269a4caab5d585b93c1c3419ba59509fd6bbf101a68553e15b771f8d2f5172ebe72f8e28c7c82855a858e3fa1c0c576e00376e5832584f7601342c10411392e6e2bd896195eb602820285ccf8056473230456fbd08b550b151e768639183f5d241c745b98aaae4a30129feda2391bdb59583050300cfd39b13e0ac5485081542be9adc906e83dd41f563e1a5eca3e8a9badd64535aceb8ca42694c7d71af485571028bff08d23f71e43c162bf288d4fc7d2accf97cbc99f7b75e9bfc4157accea098c6a74e48be33fa05cb71088200a792edf045651be6db91310f6791efe4507590af14f20f9f587fcf93772f4a56468dc52b03c1aedcec294126ed9a0a93fc833b4dfdf5dd3692c7a123181198397614e4a1ea0d14ec89908d21bbc6fc61f4c0f90cf8379b12c8ad217cd98dbbd7383fc854564ba03214c2fb54a63d86c48486e904040729abd26453e2abb7a49e64f8ae4d59a01fb8c42f8984c259a7d2a942a1c897d5c146993066b72eb07228f2670d85fa9b0624ed39d2eedeb705c065652005c10a971df690fb4f28bb87a9dd3ecd2125772da9bc569acbbc149ecacf7194fc457b017777befcdce86637be8c07108e149027624d5a152427c1c503d4d8c2f1332fc1bc98e883fe3a9c269ee4647acd306d04f4ae80f99f1a79de6bc05c6a4e61aaa93a851398b67ff0677a1f0ff0d35174822148ee77cbd43e3108126ff29e988b66b78d8e7264cdd9ef88c5dd322c72da500a07f8dcbb54369840d14dfe7d21658a5de887bcdb5c6337c218fa4efe67c1a3b58830ff5d4414c58e1443dc93cc8a2a79e4f07a3d7e25f6869a926c051c5242f3dc2214360cfe65fd8590687770fbb7712a9c0b9b3e231ecc077be681c5343593fe431f0a898d908cfd1bbe9f9cc473def0abaf5b2b198185dda83f9ed132e57994e17624ddfe7b036540a2fdaf422325a9b6941d39f2e8d7a56d86ec4937365d83c86027e833540179db9717a408dfac4edd7524312e74e71faf10f538824ba3ce57d6b91ded36c1c057a093dec847fcaf6045465c72d83cea6955c7bc34b366c349f2881023e0162a4af1427ee25f69a8d955c248a18db7ca76a86d312ae0c24f54388807459f8b2ee2bfdc017cac5eaeb552c8b91df0be44a24856f2b827a1e4db8404c0be5da1f36029f75f11e1b419737a04bc9ea46c08ebd102b246d1ff9a4a05ff229255c5fbddf521a6ae9c793a0c0586e14404e086cc7f120df9c0d4fc7c4ea12e2707329f2f15ce0bebe249d6e3eae61011773b6601a7139ff3f8c45af17753e85b01a611e366a59d351008a25be815385ec00150085fcd5c0f6bb645c248ed47c5e81752813e1349831df03754c837041f1f7614e199705b80fa3e28163c45e04eadfc68f56201c16a5035dc279f2724a8e0beec8358352f6f8983c21c7354bc971820a9d318fa73efef214229c5cb02e080028c828fb6c34fbcf32439d18f83b4f71b36304d80f7211c6a947b3259f1049c8de726fb9a59432a5147c08c408d508f4af8f25cc66369b19f6594b1152a985639dcce23cbe5b5f92fccb6aefaf69da6b6e83d21eba8d494713baa8677333bbf93a94896b267ce54f9d5cfacd5dd763f570951823175d1e2e925cb4dddca08098b4a00279938cfeeb9f67e36f8af18b3c9b1b7c15df67c7efaab41a6ca1ea9b0fe6924b49eed6c7dfe87a501c6b89daf7721cbf2159cff29aa1cb874b41f937d771164bae11f748dfce87b2d882bc0f318dbf6541ed54908821d17520cf6a514c95d7d80aaf5c8150e64a9622655e6361cebe64f79c3ea70e256a575131da53a13db399cd6caa5437cb78e44792ff953dc6f1cc89a58660af7d10ecda5ef3c73827655986659836ea39e29a09bb4ac29f5c3783511987703cf3b5a753cb3ec835e96f9f699c7cba699af6a78b39515175063960506641e1d71f7d8e30eae86f8c341e29fd29373fe3307bf9bc6e609406790fb3af1f24fb5aa9f336f2b9230e89dfcd4ea07b50fa94bb3ee3d806342a940c79d4d109fa68d4a8dce66771cba8e6cccf9f25e4f1bb9ebffd66be1eb672999b5099552d5cb3831fe55428787b32d3644c3f7b1fa8e5b77a1f4efc6c9460cf6f1529bf15912598bdd98159d2670928cbf0684f5b43515abbd4fd4a4adb37fbe46c0f3384da4ede0a85447532faae76f79c3d4918d6b9ffd49ce081ff30dbf5c560a6d4ecfddd09b6e11f32d7df999cde7f6a90c5afa4e0ba1397f7c9494597df39bd8b55f224be92b9737a9777b14afead6086509d58711412150a74260ee4aa2791889637fdf5bda518e0f2a7df71b1fc56d1eeb4d836597eab2b3a134fa8ce04080b35f3c7795837b92484a511ff6573d68a42fd4b39ff7d14c297bee4b2a71c7b9600be723ece63f8de10e8e41e1f27f7fde39cc7bfbd6f8c4b32d0b1ee9b50888f3d25c52b5ef18a57ace95851072e985ced33bff2ba2ed25f30fb11c96196fdf5937e6f4f4793729cf9b8f1318e273eec1b6366c3f3e3ccc5628cff62743ae94f8637fb96d9f47b653e80f05f2cc22d87ebce971c5f9c073b0df8dc6bf29c6bcc29454a940bff65dfdf1976710f733cefdd1fcc61080f5bbe36a0511f7663ed5198a8f7aeefeeeeeeeea63e8417cd709525421d0650e754dc2c7b9c476911173372719dcfede6634f33ae9ba9255fb9bbd32a5e48b9a1da27d92df39175ac2c7bceba69a4884bbb2234ce486bc0675e8fe358d73373e7c49146c530cb03bf1fa2defc405bfe99e5c5cbd0361cf2d65883e1d3008b993115b3fc062a9b29655fdfd7bbaeebba6cc7ff31f0bf155c3fafebba5e22798d051ac4852d1f754979cd38afc80d060ec27defbd7f6f00f7d98e7f32fff5f2e1c54cf3705ee420301428eabeeb675fdf17bf9f70c221b1ebf11f4a894c27e4bfa772803f3fababfa99e1b20cb7729dc65df44da71d0cd8dd5b400861cba8445fff629cb01b42f8de93b647bbd0ce2b627f7ceed81ffb79623711c3a7cc0ce364666638068490218490992184700819b8f1790af53d43092fa44299f9aff71e5ff2e13f66dba3dd687d0b0abf9ef81f5f486a55ebf6c38256d83abc8518a594524229a594dacf922aa594f25b83b5964a50ca8fd7251f46c8d6bb1e29d46203126be19d1cc6f7d278ef4d0ccbe8d3b6f7de7ba3510e2ed47e52331397eb7befcd96eeeeeef66ef7163f9d5a4e2e1a157e4a727ea38ee7e6e002f74313daefbde79e034b7dd2089b234129a9763b7c4d80b46572f9b99b39d0a8dd6bb28508e58441570e346a57e7d4a613d46b72f973a051e7dde06b5ba8dcefdc5c4bf4c508bfe7718ba9a5545b5a5a5a5a6c8c5aa6c8c105523b490c1264f646353b8cf29ad916a4e916a4b52d48cb96a3381ac1d168c415cb7c6a46bd19c37468534a398e3a9f2ca3daa633a3e3cc53674422d5089fea6adba84723861a19cd9ec58c2cb5d3ba07ff684422dddce003552aa9746682f89541e99c9886ffd4eeee1ec5878aebb6998c1e96729daa5eb785280821841042082184104208218410d6979779c908611e0c0c0c8c378f469dcf9dd32ae100a996341f2d2717f85cdcc5a55d6a2d954ca69696938b0b0c0caa64aaa76ef193e6e23d5d85ba41ddbcf84b47d8d2723ab9b8bcbcc0c0a0504cc4f231934a9d7298013375fe050655b5c7a9d44ba53cd513e694f254aa39a2361d1b5b900d885f9aea143f1b373ae5310f07cc1163e0bfe1ed0e3bc638e3c3b134f511f21e26ea546de72807b9e7cdf2bafef376adc554ed84c3dd5a6badf7ac3a39b620d79d4ce385da85da558d94e38c5ab52d54ff79491536ea7c68b716b2166c2c52089e50d3b6b59663ecbc88e7decabcea847aaf6364547db92f8de1199ef70c33c8512a07793b22aebfdfae88eb1600d27f3a6763bcdd6147ee6e38ea4e50fa3f4ec6ca0000cd29cbd020836a06cdb9ae46006832340d455c388396c30c1a66988135d50604763f0d9b4e7ca8d11093e34aa5ab4952ad740471fbdd61cf8e191a1e3d56ab1c66d46ee632777cafebeb1e983ab08cead0a16d3a74e8d0a16344d2a14347d55132b59c5c5e6050366ea46270e488e1390b001919669011eaf00e800df2baed88b86d77b80165ef57a3c7e8d1633c5d7ff8a89452c6e7a7db96a31694fd15f91755be8830ca6bc2399ff764794d4c6acc13cba80635ed796bcc19d5362923381a3def113f6b1b93f859da6844c5e5270941e1e4f2971c0a1334999eb7c9b360f125fe83250b962b4352be20923224a5d55074503fd14d2e7fec279a8963b9fcef0a8b61e5f2473180f0e12cc5c70d6df7f7208c124af9bc65fb7b10c6282f785dcffb8251caeb9a13cb60963defec9a189665946a1bdcb6e7bd6554d3b66d34225558ebf3ae4daa3048b7a905b6b43cef1693c67c62177e79d118060551a8e78dea9653907e81813030cf1b668e5239b8e54bbacc51a7017e1e59a0edfe9e0e8c51caeb9a139be2f26751e8f2675b1078a3938c524ddbb6113b33f3374722d5e64aee3d59abda92a945336d45ee73f721ae7f572ff7a862dec5e5e5a55fa2dfb6dd0f975d753ab9b868cd348c5250e40148fac2ae83c0976fe1f8d697285e9eb6d6f272499533327a669afabc912ac74d4ee32aec874fbbd14b4a8224526d12e47a2a473a526bfdd1f3f4cf3be2fae9db743448226d3fb249dedd2ce53620efb38f7cbbdf4726d2aab083145cc8279f5c9853caee760ca2a6fb4be802083bd5bd5e8ccc7def3b789fed2e192ec6dfa643310c4361ff1e8498cef5d2ff52c1ee51d9f0a20a3b80549853e8c218d4c24c5425e87711e87664b2591bbe5023d09d9fc520252213b73f3a61c274be849b0e865d5c4f14ea7e1fa3505f11842b2675d804fbf14658cdd876dbc37efbd108c346d8d68e1d21691949a3d9f6f388f6468af8b9a3ede9639f71479060dbc634dca3eb6e87776e3acffff59cae77cfc986147851052885e2bff72a47ffc72189d7fbbde9355ec4f381ee31683993448defddfd3e4aa10e227232a51018624e6fb29d4fbfa01bdf3d201bff9a10a0e55bbe7b4b947a5815d3ed62c4e0f2afd51dac397d37e5f3e348e5b031d60677c448af7173bc8db7dc9227473e85e39fd0b379ad160e2ee66f70f2dab0c10b35e65b3e478e989f3139622c175fcb9ddce0e0c5c1710ddd6bf26e0cc74c6323876557a538be7e73704cdcfe16ee2df194d06c707c6f707d71d81467a4889f1b63a3b0965ed735b2f136fe06c797b67683bbaee5f8ad38aec9756dc09c68dc7450a7d3a905e7cd59ab14325e8b7b52b837f4c24926aef28fa18adaf2d9bf70270f7ae15aae985a2f5ca999bc70958b5e38d28da18adab15eb8d18da18a8a8d5239cc7bfa794fb6d3c03dfd765db8938d9b8ee97a0f3bde02eb76ef31695d09baddeb5e4bbbdd6b5d7f42ddfd3ebe2734c471400509660c5e0a622b9d4f937b5989575627dcfe1195dbbff56bacc5eca702b8fd990cbcea9f4fdddd4916324de703475c77735977bec6752a14d756647cdf6c0523238a1c901a2a31f4c47dffe4c3a9fa8e0108b583d557a8eb3de45c3e6ff07d84efb14ed0ef6997ffd4fe4eae6aac66baf49a0723a51ec134e7b9e9bcee7e8ef17482b34ed89d22c4624e97569bbe7c9da7037c6c94ca01bbf11bda8905aad3ef357e2fac6be8737be0c297a398592979e4cf69595e2cad1c128dfc03028dd367bc46075771acb77aff9899398a1b70e084b82a8bf60607b5ab1927f3efbb5a4f11071d24040a70443ddc1420fe07490cea1610905f5d87b8ade44a1c6bd4be50c8b309e2adfca7c5ecf5348867c39895da16b2eee3ba7e0207164bc6da08a9914157c8b309026e41f84f715140ae4aa3c6b8cabb75c5008b35b4c0620d2d7c4ebb83035ff6e8d3def646ef4d22dc0d9179c30ff16cf811f11a29398b469f84dc54ec34155ef37cce9b1b300c635decf9d90c81794dc7566eb7aeb0582a151428592a5b612b3c704ec3fc542863dc78a4ef89f4efdde72cda3c33812ac88614120166034bed644bb6f8072b6be19038c85a31b72d8c904a06b5c301237471145d972dd982115205f190cca494d29fd86742c85c1efad953ec391246bff44478a0f448744ee99b57d83bf6d5624fc27eb44d6a996930ccd22771a38d592e52509142e644f258c628957d7ded312e05843ef67eb1fadaa732eb43b5fcb64ff9407a4a371e4699fb137e665976fd3402620d259c73fe9cdcc957de52460a2ba20aa431872378de42a15433d1fab8a11f867be15c386e698be1f042ed17638c40e2f7c76feb83e535310289792c53a992469b46b3b805890c055fd64743e135b365c6d4dc0021f4e136386fe5353f17e739518d2c4a9b2a95932b4e6477cbf750aabae137a7b9ea46daae0284da3950d740cf86675efb6b7fedafddaabc6b27b0e571bcc55b1509592ee51f5322e11f6ce565b952eaa857503bf9f433af70d65b3b16166592576592581b5ab1bd36a7a5d49580c027a703a327c203a347a2734656494f233ccb88eb0dc8c3a6b6e5706511853234dbd340f7ca220a572e86d9540e2d0467b93cd4a26c8c4df22ecfb4533bf98fe64f8a2da25c1ee2020aeaf210174137893fbdaeebca90f84de29727fbf933eb995db6c28be5663fbd66daf91deba3824eaf4912bf86b22ac6b7c135f4e3a3f807f6916edc67d943314d1673e5db60957c675e555bdf4a3e8a694ed7399eea441042256da7ba73ca784df6314654fde893a36da6df39bde9b7cdee98bec52a496ddff29c63b24a529b4d3180f4a6f7a1f42dd6644d9ae9495fa4c5d6b7f2233b2d6fb24ad8be558ac86894f2a173ea774eedaac93e490de1a128ce194d57693fff947132ae925faa248c9b97d41ce6400d35d418cd6dd239b1d7306cb451dbd90519522dd3304daba8cc4edbc1216d391ac11c63f48f9c105aa7fd7c6724906ba00df4d57b2417feec772a525099c185ef918a1454a0b85008ed42eb569bfdb2007f1ed13fcb87abdce74750fbca2e804c69232ee47018623deee2e7763da58be7357acaf5f721a609438d191a2282635096e962685dffd9d2aa4264adcb33ff720d4bedb216ebbae4a6ed627c4d8ada65ad3bff46e7b201614119436b8d2eba33b7bfb3b9fd0260026cdcc35bbedf470b57dfca33d2776338cea87d318cc4387e475c4742bdaae1ccddb698bbfd7c36a5dfb63fb94dfdba6d45b73e1bcd57fd9a97b8fa5cb9f932f78d5c324159a69b11e2ac7529b5d9634f318e4150fb66d9d3bc2feecb17c3b2d6ed4aa596205421a4509c5fa894887fc45c7f2a8582d4703bc3e2ceef4a465c8facdb36d5621a21d46e8654ebcef00324e666444ce33223ba7ea46f976ac13723640624cdabfbdb4a86d0e136914ec86dcbf2463ec61282753b2259276dc7c2b8e63a99db3fb6efaf1c8f38ed37cb2f6763b647664807a8484185c99d2d04b4d36a2c88c62b7aad7f8ff18687c76968a86e3c176a5f22b1efe338cb8d5cb3582fc345b75bdeddddf0f1ebf76c3d4d99e54291d6a1bc956b68d4f7dd83e25e335febda82c9cf24914ab5e53f6a94745d970ac1556ee7e3e4f268cf33814c4dfb89e38d6195a3d896511c2f12b7accad37ebe46e2fa6ed9b41d5719bdbf367aafd97e341a31a15a3bd1344dbbaa54a9a2b1d7506ab5694d25a8385ee4d9f8c8b0f814ab3f24a75508b5d0a497ccedac1bc55d671ab56f9d1910f9d1661188f617d771d10d46a5d65b10f91d0d968db0cdfe0bb5877527d62cedb5cc76ac5a327d878d9ebe892b71363612d7cc34d9c34dead01d26ac9bcb13b4fc28b310038acb59a811250b35a0b8f071de0684ab688fb6c64c13df134137b31a4a8ab8aadf0d214b6a2abecf1d822c182205e45df8457478a1cb1b908eabf473a11ba1477f9fcbcfdc4caadb4ee6f6a909e984693a47096a7fd741f20645b87fd9c3de85ba89f36f73475a67bebe81d30a656860a8ef27dc225eb9ce45ae7b7d6fb806855ae7ca04b58b64b065b649d4be26775df3c987a92190a7ed7d1cdf2b21a8b3ff3d2825bc384e2fee0879c955bfe7ad5f70c9f7de83ddcd85da17e7d9247e21f424d78596a7df7340297def3dd208e771abeb4b47a45afaeb2f8c6ea16edbf7d38deb36deb64ca31ad528ed796973f2f2bc8fdf5c1299c3d8bc6484cf8b883e9a472afff37a56a2f645bd55cb394b4ce3ff4e5476d58b409e0b4afa4d6a705eecc279d8d3c7f1e67ec35249cf4de23a129346dba6d31b12df6c43ee93f8e581ff92f8e5c17ef2e58da2625e66d4500b0faa51e130e47e595095a5f60c0fdd6e72841bd5ccd03da1a6d6e408b59b734e0885e47e749f830992e52e29a594725eef3ddcbd8eb872c5bd98e850f72a6a5d508b11005dd6620b2c5a6c11862d88f655931242196459574957d64d0ca3b6abf431b619e48e3490a9cd396d30775cb7baefb5cba49cd4eb716e370f3d2b5efb6e8e268e32f88f741fe93b91441bcc3570b7806a8fcd579fed301c6ac0f7ae7751d73a7b57a6ba1ac7433339310c93b355be0d89e15e97b45106553285da9c38cad0509b1057394f0d8542a1a6a4177744474810be38586a5f37d8860f868100f5e1d889ba9d437a13b77d9db6cbf1819a9aef73e7e3f825377bc96a65e85e6c656af561178661f379bba67cbfe4bb940fafb429f93e57daae6f10af146db5727b3c886783b3e4d5406179b6d2afd4d7102afc37eab4f8cd4d46e2f269384e1fcbae7ff649574d2e35e43de4fa7a406d3ae747b3dd0d35ed1bf36d8777c5d728a55466189238ed35b530b470b888c80e2c252104a70b4170801772272622f288b81857f9c30d554ac2ddf94a0c9eec94fef44a945c4f6951cd32224ecf39258e08d3e3a0e4890fa62ffde66d75304185d0042957fbc66105b1eb41ddf6a1bd7f73ce8ee95b9e88d29f3e9abee5e316443ec61c63c45146ed1b63dd464f440b114f484fc4e94bef5b8a01a72ffdce69a7c59ab41ed4d59e42cdc4a1ae70c6122b3925cd4601f494eb54c46ab06252b3679af938de73e4970968a99aa010d2f0e28e4e9cea5d94b8d82260ae60c1959c27263b93733dbf5225c9919549d5a0eb9f52258d88bc9567a055bceaaf316af6f453512d1ea7a00c351d540f618e249808e67fc1ded1c0a8cc5ed0c7711da83f2364b93dc5caed3f82647e92eba1fcc8f9a680f892c0cb4c13b1f79991ebc6db05d0ed7faf298e2f28e07d6f3becd0b1324df3d5ef8b972fc20b2fcd2b4aab13c3e64ce5f06ea348ed3c698d35d658e3dd6b7e1be9ebe1ed091f4b7de2dfdf137b29636e50ac93aabe86aa188e4f01c8efc77946ae0b1fc765fc29e5bb39f44fc379fb8aa28433ee1945b8b8c0726971860bbac030c22b4a9c313f8025088c43691155062e1fe1eeeeeeb6cc64743decccfc8f1b0bb49b194266e69682d2d67ce6f1649afe0eb201e9eeeeee7eddef7577c30b41409f33333333c708a38c315ac857caa0423d4cc479678032333333db0662cbcddccdcdfce0830fbef79ee5d903cacccccc186824f77d8c1fe3f5daa633fb923d5a6bd7a948e1be0565191daa577d0d3b9e773cddb4b76d2b2a767afcce7bcb6d8afc4e00bca8e10bafb9a18ad710200caf6115f1f03bef56bc66c7efbc93e1350df89df72b5ed3bff30e85db30fb1477c75bcec4ddf127ee8eb3400cb7f1a226e3eeec3cbb1a77e7fdf41477a7a9b83b1de5eeecb4177767a7c3b83bdf4bdce6b576fa89bbb3f316709b57b4c358ee0eab717776f88bbbb3f338b80dfcb9e1eef8b83b3377e765dc0606c5dc9dd3ddd1eece43b7813b3bcfcfc6864703919fe1f9c9f0fc649e1f0074780bc403f2415ec8d3e797808fe1f9bd8fe79e5f0c0e8f03019f03e76d3cbf1bcf2ff5f0e7c1a0e71ef456fe50cfaf003f6e4a355f9f1f89e675d0589adfc1e978de60900e0e42a1e3697c787fea03d77747fbd03a68687e5e1a9b1a42f33a9ee6755824ad43d33ffcf03d707ce30ffdc3777d673e723d709dcfeda1871e38be3f709cc383e33bc37146783c6f3333dceb817b3f708f07f796f0cc479adfe13a1e7fbd941bd7f9dcede94ccfcc44fe19ee51c183eba1919b3912a335c283877f5e1e0df81d7607d7339fe4dd19dbb13572dd063c0f9be4dd0648b7e22a39633b9f3bf3cc05e1c61fbe1b8003beabe101dfad20f01d1701094ce03bec52e0d976f1594f01ae79c53f0109440002dc035697df011cff0f1cef789c37c3f1f05167c7d3d6585c3f6f3b9a87e73076d81e0ec2e5e1df3684548485119787e74d8707cbaef2d65bf933c0769388edea0eb6435d9c67e345403c9bf7b300db4d05d8aedad7c176281f436c5713603b540eb67b21b653dd20b663dd8e8b8070d16b15c11f1ddba12e0e9e63afc5b1077803d8025802701206b57ed80e3500db55d3dfb88ded50354102b03eac0d01a8e1fb996ba8e179d3a9c14a16d79716e196fcf0487cce0ff6498f1e504a8f2857fe0edbf9dc1d3cbe837366c676f157cf839b791edf3c22f3609a196ec7f70624be8ec7793b3855b6e9ac9eae381d2b1dacd26191c0ab523d6d6dc5c1cb9bca42b9920bd97a36bec457f269b0dd9ca12583ed50570c5e49962fe32c1f00d6da0e75dfcfb369287825593ef75846b9f263b01d4a6399b17cec5febd9f4125ec9c7615f8be5c7d8d6b3b100af7e9e0d0ebc929fb21d0a4b25e3cab76151b69b5f5cf9303f2fb6435d172ee8d9c8f84abe435e49d922df1474fd74e557db55f924db4ddf80cc978ff346aaece766c26b5ef18aef65b43d8ec58ba600c17d0f319f1efc9390b536d0d28ab256d6e228648144d62aaaf5bb7eeda9d47cc33e722593e9d94dac6b525d93a99a4ca6d7bcc6f42f5ce5551cba89372ad6736d7ba25688c69d70e8b8e5f2fed485eb4bc46b3497d3bcf4e7a5363584fee9e99f6cf54a133c3b07591ebf6e4e71620d26750137f8792bae2830109dbe60428d2a2e5fc42f720079b0849452ca16054a025015b021001911c69546440104f18b317a40c7c8c17d7f42699787c698c1182ab082e52c2fd080861130694285c91258a8dbe5294d84a10bd544c6edbe1ae109b7ab34a4514797a73441a40ac3104f69c2083330978798d0040c554ef013ce2ab060a80a52eee8f210184ec2504fd3592c24a0b060f2f20a2fe2c7b6e2075d387561094bb0d0820d247e70031410a85861851b56f0a05aa1c576c41551c8504519ab257eb0c5c808549e3051c5cfc80a24c014810728f8810a4e519edc58e20a2fd838016a09206461b262061508377059e20a26e088c285cc1150a400c01150a890aaa26563c94b126d82282a6861421a4960314586285890295d11c6147050850842208616508880eae20463208185900d2084403b020cd41223482df1832f6c8c31c62b8e9039a28a1ac01c11638c118a095c8eb0a2899723a8603a020940f0c236c50a6b1c3145053c98628515b774798a15530840075d74f183a8822a9ea3bce63bc062a1e4cccb4891410d9090524a2e9e208d91c529d4f8f16304922340a25b0006dac5166530d13260c21170080c305c795f13304c411484022ec090c37a1930a470e5e52130c2b8dd476913b0121a8c263a8a7a7ca10b2f2efcba820b1f55a50a173efc276230825e33b30423dcd8c4882554715f26cb07cc3f06c034de8369fc85e84064885eb273e3f0f5b8deb16eb8e96180eb4fdf7c364f6e98c6732014fc791d72aef2ae728885e1fb33e72c63741c570979af244b96215c059deb2628a5af0310c4843e6fe2c2874f5c4057324de61e898f64f26553e4ad60cde88b3c08035695806b1a0a56c187d27a0c65d40ec9753f685ed6392098061e918fe4d2e4d604ff8077886713015fc177d5a804378f3ad1382028c034f025c03db09865d13693ff40fbbfec08924add7a77fddcb824ef6e4fe7233d111e203d129d43b24a3ae7d1f9cebddf384de7217997d247e11379364f660e044202dc033ec65140d334fe316d112e024c13015741696f98660bb5e32addcd0dffc82e13192425bcf01b0aafd12efc0ec36d6c20ea29a2b486be907ed3fce3c66b58ca145e5cf837788d016eb411709503980692a8a829ce8142857eba50181815cafca75477a6837c741d04af7c80d66799ee31e662b8cabb5f696a28b67f7373c5024cc68d12a480b9d96dce48dffafe5898d9fa9529416a5c78bb7e4c1e135dc40516601ad6dda8d22b956aa93e148a0b37435e127ee58a18d68b462aa844806ec74545fc230afc83dfc3709f3de2fe8ade2b6a31346781dbd840d464f88f03f9137d05087f401670fe11af7fe5e27d403c2af792601affd7ef716b0108f217e5fae3f62b5ed3bd24ae7fe745178b639b4e0f596825c13fdc474ed40e158314950cef7aaeacafd464f9790e14847ec4913262ae53d04edc6e256e1719d1f54fe9b9bed745cfb9be975c6f5be96ed8ddbed9e6e5b7ed5f3817eec4b53027bf8d1c006ebd31bc865c53d3304b84074c8f44e798de9ff56c4ceffe769ea47280d14eeb5344894f8ee9e75bf51331f053edeaab6e8306f0fdb83ec805edbb0ac21befb3383f5cefba62952bbe224b00a215011983db69f7bdf758067b271ca6818f450c83539a40d16c209af202312e7c5ee24c5e80e58e5a53824070bb66c185d8d5fa18aff12b5c5882db6931de225ec34354a45cf811f01a1e170e89f707fe11593e9806ba658d50508b3c9b7901b6e12e038d0b8db8f051ef65207d8a71f6bd0208e03e9a2064b841407f2f88b782ff82702b73351b57d3b0ab7db38de9351357e22a47e22297fde3b4df38230778314e993bdfb7213150ca98c29ddae44e38a81d5b09a227035e733d7c245ed32179370ef14abc037238aa422524680fed4009403904e0cb4a9a0a24a88114728a9036601e5096e9b8e3c3e7aeeede0ebb084edcbdddfd3d7f1028cba47c50d25710ca911f1f89ce79f280ebe3774e0a064a8e121828392f86379729a81dea3ee6515d1e2ac2cf25c295cb434428a2b93c4404a1fb9e631b16942637e062053c4002969c67bb1e6d7446e5212238b9f0f9dbddbd901f9b894a65812256459124a62aa2ba331a0462cacc36505187e2ba4a747bc9c9897778fd7bd2a3f7fbdc776883b8e1e444f56901579d9ca87f8d01bf9fc26ea006ea7a32d8cf36e5c718b6dc743a1a7163034911babd15a97523d2c334dd2220eab780abfa7750752444f46c1a4649d450da10217a30ca16418ba0a7b374ad7dbf3bf19a0c889e9ec6e2351d17dd1ea6f9ab7159c07a0497c80e4c01f114104b73539e02e2968b885e3f8aa8892ad08d4696e7824386cec2e3f6d718e0f66f71fb3b6742c33f9886697c038269fae70c6a6b0dc56bb4fb415ed31ad308655d645750413816b0426447887f41bf1be8ad3c831ec6c5cca87d312c07bff0e9c76fa0ac81a493278548d78a42fde3e0e0436e43c4bff02af0ca25f26c68145ff95329d75f4a3ff1aa64217a556ecc4fed5d4812725593a8b8cdbd8b6252bb998512d12f5c259d5c355ce5e3ce2c4ce34f7292e53ab6a476f3ce592b0af5af52352a0833034aa8cdf9cd71b23ff69cd75f97ed1ccb8d516ea48232012a84ce275ff580852512635bb11ed4cb4ed6a23e089f42389ffb854f09425366924a4dca997ba5c1a8a73d9cebc87b11931806dd067b0c7baffd29066238a843b8ea3d5441a1f6f74f12847888f11f858a81cf592ee47cc4bce744c8c95b9d514f4e9c5c9f53e85da14c80cad355f09f9583042c2eb691eb5ed061d0550c73876b0c6191a0b63d626488cb83e4cdcb7646ae988e0583da16baaa0458f670f2c480bc3b194e9d0959664d2aca9a4050ab3717bfe19239b13c2bfdd00aff8891a3c27d900799c36f6585d7f220f9f25d8fdbdf62ea9beee6be6edef854a7bad8c77029ee0667834371305c8680dbb693a8266ac7dc64e0c5763d5c6ca76aa97396eaa6d1ec4a3fb990ebbac9601a7fd2772ad5e8fd63980c2a8c98ca1d8d9ef966341a7d64ddd1cd1d7d01d8e6e606fed13f1a8d5af7e6d974167825d4b5108f4105277cd7425d0b6971bb16aa28d4ab585d0b9161467d1fe4e2d40844acf96a87e44225f4618e104c2d475195dfa1fe4e9becafeb35b7a17f514ec657fe5951ddc1d5a09444af9e73ce2cfbfecb3f9c665c97c10c9b994fa742c8ccf9e0d4ea296b18b4d9d91b6fafe5a7a5d2de14792b9fa6b71aed70fd65536054ed5360d4aead7066d4b65194beb158a9a86eb5c27081c988283d4b275bb2456a95be1ad73596be5d85ddd991be59d656603782d1f02de5a485cdd6d592ad693b9455b5652624c78c30bbc930cbb8953d8e671964dd2e7b1e7ef81ca960a8742eb6443dea508d000000200863140020201008874402c17040224aaaaa3e14000b8f9c4676609cc95192c31832c818034400404400000044a4690321f7ccae0976302acd97d54fee32feb8a62d542d99d189e5df9f2883f747962f2bc4302c4390c228888e3d72ae68a76e5cd1a2b1b1acb0a923dada9b3b1647ec71fd7112ae02ecd33261489d1927f6e3fecde95f7ec896c6558b83dfbf712cd17c02a8bd32e1f095462e377843e7a2a173024cbdc766827e472683ad1b2cfa1da2fee90135339a0696380a0bd12542ac49f2df84e5291a503b8b76f972ee78678814282df7f037fb8095cb9839dd7dc80a9d843eeac112e17984d66e8ec68f7c8150bd988330c1e464af110cd3ee32ae342942c257e5e57035442299ccc6cee902120ce89431b224b908b85bb6e49ff8425db47d0487761090da72df0ca202f474d82db1576dac517a4cdc2543861eb2891a303f9fd699fbf4c1edbd18bdf671e3d9ef1b7fc5507ccfdec751928601877bd34e46671259cf73e11085189f23c79a9663cd8d5ac816623cf2ebe8a574b35d88a5d1f63788178dd8cad05acb665a19f75814d23b423798802e102887a80aeb2e96bdc09f75de5d0e1e4073948b8d1e4a0035e500ca238c1b77e69ed1d2100648384c3d53b6748cdd29f44d1699b3839bab97d96483fdca072c1d75a080ea1c9e614e59e588bed02bd16f5a3439aa4fd1b6247963ddc033f7fd2b05918065efcc8d399ead641144213d924ef3cbc210a890efcc6277247343e4fc2591e49638c121a639b81bede0ad0d51200e80fa0807bcf99807040b818a01a03e92458d9d3a434d096f009dbf4624cb693c2876de28fd801561941c02a873043c634b5e905091908787dc4a144314a0e7a3e99a8a08027feb8ceeea0e94805ff16c258b0c31fe8ad1f13f7d4df5fe58e6aea13444466c26f33a21502e4c43eccb9346b1542afd1ae43e9f67bad045e75a58a9b9e1f79182a194fbdfede23a57ef658604c886f6db743a6a9c1ca2a1f64f45ec7c30fed064be86c81cb28f2a786eb78526f6d56619250620edc2013ee0c0e879fb40b0e5159ef11c29a849ca98630c88a6a9734f66114f281a875d36a4e6b3ea4fc4d6244ac4a848e6568d96fb22c1849d262334af2b5cd8961c35366c78fd4869c663004d78ed44e3a0d5158c8b9e5baad1f95e21381e42870bcd12d1cf33c1819842dc19413fe806284096ad2a568ec2a1be4b667a18880851dae4eb13d6c0e22392f91cd6ecd32a73b9b1295601cf2cc91624631da18c128703d400af41c0f4b9df0f6eab702b1a51ff17c43090dafd296dc4140a073bfebdaa626269fdab5bf55ee015c9e9ab66279b9d9f62013dd0a19ff356c2f028d763ed39a4ab36488fa0b972f2412f5bc907603fc633d51d636d8541df9862840f7b33232ca849d07bcae2bc4fe4dc3a2a05bde666f102f5aa5a0bd9488cbc9b64dd4743b66a8010b8aafa5393d265575257ce4e4d64e319bc2356b4e91ec9e9b9c36a871fa3ec354a644771c5cea3f449481915f55fa20c0c25e2e9286e1b2ab347c025b0ebd52d2d193254dada49098d46f0ddfe6c15e1253c32fca19437c94c927e6d48172b4f086d7d94213aca296642bc0e7fc5027f72cc27d8c9221add97be184695b7f2bb0afe58fa2e0f1b642d0476720003c0a23fa1bf34e60ab769751cb9f2d43bfc82abb9510b5aba7eb582696834e4aa883817d9efde107634fa2c08723adc43067ec16e5dcf123bcf06e33ee4b1d88470108cb4e5b033d2ab0a05091628378701ec4b6a95b72face43fbb685604133a1b4601c8ec3617df01c6563daabde7b38a576838ae12bf20c0f222f902ca4c541f438bce9136a00f3b5480e989c057abbb3534dd0555d442a3520eec923ee19bb6181a0304a88be0e3a1c8045c7d00b2e6932dd336dc7afca2f6c18ef4742541a2abab94e4f9f48d5fd2927bfcaabf07f375c72dcf40f90df1247a91bfee08683e5d94177c641b0ddf328317eb6fcec9b6172df256e0866c67fbfeff03f6840b661776388167f8e0ca57d0e57a5671ca54e71e55a6fe0969b22a69792a2bfafef8c378cb530c53a2c46a837b0e40522a26588b081cc67437414f0f737703bcba1e32ee17ee34923e0001b5bc815006d74910ce97d01e3524b48635eb234978f8eea7b77baa94e48b8ba0f1a99721e9177829e015e27cb1d656a11bf14ae592fb3bc6d3f4c53e2cd0fe7fee28a0ca5bfa8a3a2e23480ff75167421adfa4b14fbc819b35f4f80730e9b103c9e5e4f64491f13e094e125f6f98c169072b8cb7084c5d61a32eb736a2c02b7f6ac7f98abf0d80acfce4c79cd20cbf4479471fd01a3f7cab945459f187c1f8a27a0f952ae08f0664bfc70260ead61db3fa37808e49864752379a84ba9302723cb43f918fa3727a97b0b1fb182766f80ee3fa84f9d40cb0d5623ba93cd73cb90d9195781c3ae11c8933a25fa3d9cca611ee090faa38df52c63cd78520e63fb23c889a95e116e46682e08040138c5b1048f73f20965d8fd35e5ac8620edc37b6faa06c0662504c9a6c0dcc3146537584eacf5111df556b47ada6631587ed18ea57b007f558b0e709701bbd7909683ea337e4c08a823b031d17cb4219891b6c3e1de4a92f797e29a4e500693759438672e3256104cb02a33f91453a52303f85c5a41421a52f3a53c221368c4ed91306b7401ce0d2770bfc0375ec0884c8567d1b2528a4fbc062504af4d8519765f7acd0079ac27f60d688d441c779bb0836c8019ee2aa0c53750b2a4acbe422cb65116f5a6aabeb308b660d46311e7eec916e7d8a6f8f3ea823ad57ec0f485c5739994bd250685d1b230163b9a30419d5520cd069ec0568be213171cba77ec9591e47a68b0f084c7787c895a6c902b340ce73790ac31bb28e2769e4f58339840b5c140f9d31d4216c09c99329d21b66dd46bace1a2616049c81d56610353c8df626367b47009764482c773a19f4ddbf52ab98affadbb66a043ea84bc0d3196106721ef7a0ee6c031c2628d46124a8f3bd87d6a051d40a06fee4c18f7702586c0f186dc7c7a3f53a5cef24c129fc85f6bc0cfc8a514fb6d9c83097b2a981b2d2e7061c69d8b25b0b21ccea53ed65ad1dbd3020b57a09c72280d25611dcef09f055f40a9efc1c8b5b40738b699ea0d95f1a1d0170b0fc88f12285709aff88d269195b74662a9a25209e69007aebcfe833cddda034c88c5c07a132041ff3359c09077e8a7dc4626f291ce2188e5922733c114b5af2e7a602cde0a1ad84e43f6b133755f499120663c1b49a73a79a617687202bfb8f71ddbda15a198da0722109407f9748773e830c99b8319ca2b2591271d651ff31d091d8b4beb1c0fcacbde0e896aa1a6b899521247a354dc75fc9c44139baf3eb48fd6ce5ae785cd849fbb4cc84db4a89651fc8d2c2f82feb1030100f65ef518643b4257a111b2c59d708bf203ec381655427f17436a8b3aa456c5180d723dfe8c0a76aa68a3d23e0da5ed2f963a33b2dad0a823f37b3ae606e666ff28a31d9bb0db671f77e1e0b2119d785dcab68c52df840acc7beb606322a9898ba8f5ba0652d454da580bc4ba681e2fb2459948dae4b9499b0242d20b569564cb25780243e1d69782dc887aaef0e0b56e3c5a40374d69d1ddaf9b3bec9ecdf738fb5d22e3456e7e5d5f97ad449cf6ce20152b61bc09542b15542d1540c2cd9661004bc8b9e8edfbc8b99233005d0caaa94b285375a77848cab5b71e925473bb4fa7ce2fd1693900a9d7c35c00267341924e36120341e5cc037477049522636834fccbbcb13946efbe655f7722850c13b9d667f23a28fb168f807f705299fcee988281fdf82607fc9b20b285134086ad35aecda296d8826fd001d1dd88624de39e8791a2aac1e6662311c0012a35a20659b06677f59ad60c5c8a673ab71a17fc705e0667a017aabceaeaf9cbaa4e7643024d7451269a712bf9a94463cd118ab9e4beae5f8e30c6d0bef50866c777bcb4b7e15edaa53df067a4b9af6af5132eeeb7a6982b81d21ee77ef47e04ddad29325862e7a2017fa3df2656e2a9672b0f69ddc3fcfda4b78e62ae3f4b89e9ab51b8ffc6a0c4e727508c371e7b03c7d9973c3bbc441881fe5947b5796b6687eed79759d780926c2a45ab7013a5cc65645d2198996b29f877a28d86456328a5ab711a2000f1ac240d271a50caaaa9ad58af78627bdf94cd0e52843f82be6615464e003e72b3caa625a43591fb3c89dfad4224b38ccf9d22130f8aa76423e16d7dab6cea416a14b429f27b27c694bcc57229d1fb04c90ba88d315115b087d7b50a1ec5d130f283da2a7866ce79d90f35a43f12a07e7c7922401f714de90b93e4910b5d5bc76c75123649ab7cafb44d2cbc5ee46d6a067752a310c9185c44bc329341edbb056525320ea8cfe701e471d6fc36b39dba059ed3b6ffc40594dd18f9e8a58e6625f26bf4ba9fc16fbb66d6133fdfa75296076d16939073232a5689011704bedd6506d8ecddafc1e8bbbb595007805ae465a6eb86a18eeb82ad2ea5db1e7ebbdfe471cd7d0709d7f19c952b0501d03ce20bc12f9373f16340a1078e3fbaba077dc1901d5a48a8dc5bb45b783668efdb847a19723828bd802b386b56bc957522ab18ff1ada8f0a8fff9a6abc22a2177b54f52d8e8537797d7276f2d643833e3661bf514108df471ec189b09c00524b2cfbce467b60d84a3341fc528bd0a54d74aa0a64b5a058e02f707fd88baa311d4d95e6c7a290ee7f464af9df5247fbcffbeed48ceb3cffce345d35d8ecc5f0a06041ff7beb2494a7eec704f627e79b674f081a322dfcb341e6efe7980845d6a5a2140dcb831278f8aa5b2206d8a43f04d2861032103a893eb5878251b80909653f29cac6a2e1903560c0ebddcbc71c93d997b798791c79c990288829c47ee6f220982735a65cc9139a1b7ce538c51079c597c3a38d42ab0339583d9cf810c4869261173b8758db92dc7ca599ee9c6368bd64a91d6f1202921127ff66471fe88534c92e49dd98871a2f8d0b3d09adaab6fec129ffd1ca99f773ad402ad3f6424cc8b5bbe723a9251bb8e22f410678012bb032210e28b7201f5f9c4624bf13edbd56f930ed666087d0cd4913b7b89551556569b509382b792bec0385665771790124716108e7c3eb72ee630366f42e9bd600ca4481181e508b1693009c859c001b0bb20aa05b63d1fe0aad0040933b3ff51e9e2bd1084ccb4d95b97df58956246eb68a8069e2f88db511f77fd977a967e5459bd344a75f745e5fcd23412987791f803b0814b105a3d0af7d35c4fd0185ebcc9f84786ef78132221869289eae7ec589c83c61b12b0218319f009a2c1dcd7420188af3d7690fe0d83bdca7b0e191225be76b90ec7f245b7906d67bafa42aca5ca2a1c16cdd4ecd25f6f49cd58bd5de9e4ad584998fe5c7696b08a66e0f5e9efba7b4240a316f6d5f72eab448ce4410e0c896dfaa2c9c02363fcf9e15b5e28a6ad79a043327f5bef93626b24e827f58a4bca59138bf784b1b1ec5ca27a2890256e398194bb08ca917730cf7a8177a51e32dbbd230e66fb6f0dc6f819ac3580bf3e65afdbf5f81551330bec6d2063a459100ee73ea9a6568cfad1f4b235bb987482fcbf798415a445a4eb139142974c1dc1402d7d44aad4bfa6149dc8ab7381f6e471af6360a055841be20da62411b78f95f60d3de3e2a6a72e5767820ef146b0e6d3d913f1f47aa2ba956ddd3a93e631731743fe44878d09ea9fe7bb0f4d3d32db26b59a5f44261d169c67996fb9312742d91033d9184bc8ba1eb3b04df915bd418880813e47bc4006a978b017c5dfa664c3747998664431ec96a58e45da6bd64b0ebaedcb5a93b75165f232164e176b1abd132695d0214eee2f80a4f658a73f125a67a75087eb2925c14a4de70fcc734560e24d886ae9e0d987639e84716e327f8981c263907771094069b02338fd281a735bf24299c675de2b6e118ed7d069b106c0378fe1b54c1f239c17ae49a6a05811a9b3ad10a95ad8a148526a2eec8e08b1a157cce344dcdd1bab02504b6d764952dc812817a5537f7698a28057e7eddeccfb6e1fa87792216b1f3a998078bca85948b0ec031acb90dcedd1eb8be18a4d0f65b591f59eb9a8597b88e2e7d0e94af00b2ffc730328a4cfb66187c5cd9de7cf52e450b6c606aae609f29917c6adf274a2f95ed12b346845ee869fc46916685cb03b6773d75d7fab4ea3c13158fe8b06bbde8f082c18c77864cf081df70e589dd60884a8f9cf55015760c05eac329279d281ac4e25830598231403c35e00133343b4f1e1323204800c0871a94d9ee51e5c895519e26822ba245d4aa0543e598f3b83ba1de650dce90026f69df421ab0583a407910288ac60ab78abb5d3c990815b18b211b540a3d9c4f58ffac6e230dc6396c07da5601230b4f487d0a87efe0414ed5d0c6de22b60abad9a30d287d4c9a20321de68fd0a304f430446464b8627dffddce650f0a459353ab79ce9aa43473ff5276789453379f4dc615c8ea442dde244b0737d2805f102e0c08e271f98b2a70c2c3ae772d71efe2419d83f1532e4527e3bd9012674224569bff780a6eb0444380e2eafb4a1c6867b147f69d10b3bad692637409ac25bb1db5e1d1a0354b96bf0d2995a95d50f9a6a194020ea860e5b981601f42f0d66a76fd34e9b7cb51f0d7189a21305161e7a3481530b6d30c11675975ea4ec97947327af8e05ce738e7576fe3530bafcd2125b682ce7ed236cd553f7d172e6212416b1ea8db11ace7c18d274616925e3a936dfd42d2c69927837b53087dd453cf211c6119d3b134070c40b1f01bd0a2c5173b06b2c95edda0501801e1cfb379e09793930feb0ab65f7c1e30f87d36ec810c5c87c84aa7c193e1a9f1cf5318cc395e29d51f695ffc0b120c9d167d09ec68f232241b496aa56885a79d56c34735ff8c9e58c033cf5defbcf44ce0fb7f3735022fde43fa9fe21f963e8679e630c6e11d947b0b0a13af7aa1549c790e4afecf5eb86ab74e237befd855906296a59a4bd883f2d7a907d0725d4bf21f60a5f793e42552088d084ec813300eeefdc44f87e5a6b4687863f351a6eec23d316df5c02118714ae0295ac297b986490d52ad732df8af50b7d9e741b3ae54aba1658f41926c4911a58427396ef372ebd7791b75ed10a87cf2158b687999fdbd73eb3cecfcfbff282c41ea5301a6ef1a2852dd96efb94b9e864752ed5216033895b10e18b021bb151c696e54099d76cb17da93e74d3f085402dad67866ecc8245b08b846826925906095106bc1b40768ef1aa2f39d9e9914c970ae6056812f10205ed9a3883f50444fc03fd9bc4520fa35304c4366c57db67d4af6b4d05232e2c9b956ca9ce0f77a4cd742e016f14c46c58283e7a23459bbbdfe12ac9822d62af6612e6ad2a712ad4482aa5f8a45089a384e2abea15a89a2f0abd20811d9d53683bb6f02305f204545002e9ee13adba216accad9ca9025c77a5f9da0774ebcfc477eea30a3b11d135216abf634af7132544117f3fc5056588055e36c25d1f24bd815c616f52a2db7c28730679d513c0204890d91220fb200d2640f808749ed2e8fe31583025a7c468c3b477574f971cedf8d33a22f4e91bc41e257c29a264a03c7738f8ae3fa701152f203b8a640cdd2c61c66e0ef38c362414ae57144428ae0bf6902f7af9d459bd64294a78df53847b68ebdccc76049cc265eb9875f653f1738ae6ba1b6b015eae75a00a321719f30947c7e6746e21d4e2d2ef14db422b1daa8544ba2e991f2485de348bb973721a550e61306e59bcb8dcae0b8c6190dac88d5cfe242671659173721fccbf6bbb23c30aaa50f82383eac923a0b8cb076ca819ab48f7b48dc3c6458937c254fc8314134b04560317e6f032e337908f63ba535b50e80a10b580ba1e062edf6a1dc876f25e562b2d3327c77cbeefb0672f2682e94e450711d9251740724d99df693061532ad59a90194d28bf195960b2ade0007e44811df02bb48e519d9c6980966e6a35998e6105ca18f5aa33e1f22e15dc6bcdcd4e10e783109b66f1dc0108207f4fe4d14ceebc6ccc93cd8d6ef52839f4422fe804f47b25cccdeef71885928ba8ad8e0572f6ef5850d9b7f5e6a3f0d7a907847212fd23c9bb984c972fcc48be2b0f4a5b3bd938d027753d88bbfff0158448b3e8a614a3d68f86d86f313e78537afd91a140deef94cd71a0951817f7983e83a0b930c59a1baab16645e63dc33c583cd0de64e02a07be9214448b91eadca463b531306e2124876520bc4b5e7072708b4e7ebb04b29be013f7f9feeb707ac9141f7cc0785715d6559cdf858854bb3522f7b506f342e6179d4030ea59cb4711dd4fc3cdeb64734bb16b56abaf4713aa87fc3b0fa5c05d9fc29b9e2b3a399b5c635b521184a4b476b05aca21ef57d9ec71742a7050e095a38459ef38f16a443bd5128b7dec70141c5ee853ec8d782f26349c07227528f00c96efebdff9a28674e975414c6a1b4c1a07e0de75253d1b521e57986e28c273e480afd7e65a0a0845b394f7f940b48fe3a1841abaf723b9289810f4ea457510c1d5b6fdbb6d5742d0fffc9adc0eb80918e8b58e662342d4820e13d3f3a7470bb8577e6f61d05e7443eb22093326a9f598fca44670f06a1b9a8463fde3a53509937184d2069980b3b282286fc97cfa6f1fda6fea06165660501d798a19a1835cf2d493c5f3c2727e4fb0866d1ac1284e506529c095c7f933e5d49224d56dc4a67d013052aa3e3f0277511f7c81c0fd2f52f6da10844638b31a84701f5f430e565bdd711080974406f15c34c74ebc4628b5e09ad55685f84504e0d27e08fd75be0b83c416f63a62b7270808f175118b0388f559f82a15b3441e51921582dc48f57443cfcc8c2087058291282f572299ea9d4bb70913567711c9da4d53b02adab4115f620058322947ac4d58f793f4cbf7bf66d490bc85a8940a88ae6e432eec0aaccb0e2791308e56acd4b046f62bcb0c8137eb3d401f919a0fd1b8de354cdab5214e4263ce8addd41becb42133c0daadb1a22d47ec1cdac862bf8e58c26e608a787739e23794abc912553e42eba900b1925fccda72aad3064542144fc2a607278a0fed2c591fa58114eac62aa7b86fa25ecc95ce86367840bdd76985fcc0bf8a80f987c6a014d7d9daa1fb901974d69230d647f20e64e6a4e0b794366eb07465f437d23a83540f373f1f8d02ac706f46f201e9fbf18d9a2283e203c88df98aed7e76d2e816aef33f69f6da9adc981188540623607e6bcc83c84074ea6be30b8273807dff24ef749d2de7aceb341450e289cafb38ebe6a066298b8e875520b720cb06094bfcb157fa88989dac0db0b288ba6e3f3ac7f356d92d83e6492ba74670419be0974d133faa0c45107496fc62ba9f862fbb8cebe7174e174098e0ad24daebcc55d9f3df21a7f08f8e23d79681137f1acb3fafa794cd58be28da0e3486cc1086a6f2fd4a49779b818b765d8b02e9f473925c9781abcd5454a68abcb60e555f6200e3624fc947a4b27d080e2cff4b6d2a86973c7c6be8de3adfb398f44991aea2f74d8cca2dce0e83bf19f5b4035330ef51622d1f4a1bde2895b3da2b02d1412e09a4c0874a5787c30e9717c54409e73040fa0509d6b990d7387a810a7aaf7a90ac480be4b426891966a1c8c53e9990a0daeb6a11402dbd9746beb4eb331ace48df10ee612fab1bc973fd31d5b580702a7e3ff6b7605cb6b2ef1db46a6dc7309b47d6307793089689bec2ec07077c4e20d071a2e7149652d386932ff3f16493cd3f7f07f54ff6c3a06d9540ae8e047e97740e7f17ca3bf21fc9adac09645463a64106bf9bf93dee3307f8457b729c41b2597299ce15f8da51c3029544f8afb82dd5d8b6ef7ef412de5e04e8fb9f0351ddb7c209b3906ca68903167541da37557320cf440eaf293c6f6f53b73be15de64ffd2fcb0f29b19106070574a13b585d0b5b43e051264809d94ba99ebf610954bc2ac87e463c6c08818e322799a18df25beb3eb0f0cc77e0bf370140cef2314717bc70e909d8d4032a6b11958c95580d863c81dcb25050d33e2aed476c7b900847934b1b1e22fd44c84a494a717b237855b4974ca975c11b01ad70b55c1365a3f65141b5c5c0b92ea693188e71137538be38776cd2bf5476be562a2d14ee490115708a5469788be1c5048084aa10608e885fc8b56f189f066fe5565032943a12ab490df73a731525b91297ff86390869bcd378db33abe222ea9a0b6474c9bf25391436df7e0d82a6ef2ef68408782abc33f2a16f95e7d40af4eae4a1c7695fa061cbc84eb5f6a2b1d9d5763688095031b936d5e26927c42aa410d463752a5e230833f505a45a97f28ddf701321ab1de233b4b0ec17cc51129e74561c1e26ac5ad5f7ab87edc68f6f2f4702922b0ff403507d64e0014ed9896a0154a2ad666bf1f6ac164e29a6a967da525c2c17deb774d738dace012d1fd9c6b0d3b2940e161f1ad4dc2640bea644a87b363248e142a44e09fe3aacf9dd69bd4e2cf9fa39d7fbc234785026b43db9ec1c42661815e15145e215f97d60819fcc20ed0d40b88681bb2d475630e073c3074132760883530f74c1babc0d6bec3935ffa89288208e01040f7dc06b1fa12c816939d2394bee9e8e6e9e639c0c3cf8fa7e3dbe96af97c92795d24f28885f8704c765acf983b752a94d014eacfd11a7d4bbf91ea6021fe468dc9ad6a38ff87d6dacaec7d7082176666d763b951631e798563adb8e82f784b0019ec8916872e71a018ff365cf9f9675646e1294ff21350aaf3f50c2f1d4cb2d7247647dc8c1dde4a98f1cd94311458d0c94eedbc7e118ec8a94ae7ea9fd9054aeaae97e790421a41d7fcdf0e0c86ef59fc7606a7998ddd7abfde7709445c7dc194f383542c6b35ab47514a001aadbba1a2f8354ccc1b7e75cff0a76b32f13a8f65d18b935f2aa56e4451de9fb87ca07f7707e124f1d7c932bf0dd4d40d96d55991c56eb68197fbb9ee7c1b8c11a475043663ae4c7a3bcb90eb616f121de1048049eb7fa3cce111351a27760737418ba4fc2ea310fb4be468ec688f003c091c086ac66fbd9e1b7ffd82818fb33db66bffe9f18ca64f960340e4fc4598fd2c026cbdd0153817aba8f4b26a69c25a640d9753ccced30c8480a2f43f89c71abcc5ab0ed07366ea99118a75afa32a40f0e2ec3b8d4270c5613337a03f20f73fd84cd6a8b9a52b7da9395c9cf3a6386b887cb51640c2ae62aa0d4a703cc343dafb4e88803bc63839bf04d263232defbbf8f50ab814c0fd2c0af5bf251a6503f930d9fcf69398f411966450ebff0efb04c57ac72f213808ea146ce623c2c4ada98ddc27537f2ec474ab0a556cea89dbfa6d6612a0f0e6a80310ee31bb2e06af8e4405827a0acc033a888c70b86725574ce8ecf341bb42e2adbeea965c344e5f4d54bb3b0ed4ee0ce935c06dcadba58be0e4bb1ec39f2060d05a2cd2b1f2acae4cf28be8c2158374395f31e61baca461c1224c47c280f4af64c906394f04ab6c2f275dc14ccf93140dc6b2b15f6912e0142318a641e8272c78605bbbec2548770956c05cfc1d984196e438e0af0a557083aff18504a13d695ae1de775899d830eb1c097962b750b179f7d224b48d76572852908c8d6fef6c58032cd4120ca8e1e05f8e3654304a46c9fb1326a8fcc0ce4e1df02d04bf5f3b0afe4ab7bef27e79e6433ee270541afca3c4b4bb32320dc8008a4bda51b9810ec64d50a65f70f99078105b8914f34f2463e6b267649421ed1076cb513c5032b3a54c4316c67249a013bf0d54d64a15f4b805b055c74cb95b282daaa01716659b61ad7a24d113b6ccda833ae01fb9c8da4c827802e2b99450ed44396144d1233c035fab06eda8a24213b0f512959d77a70c390e66a4f94729b146dfff5f1a71599c8a93f300fbb7ea82ba794cc30ce8d08f12fa52e02e85c0b3661832066076267c1772adc04413dae26aae1fc4f64298cc078429134056299ad6f62c7c93ab0e7501359001235c2682ed3c47624f40d78a0495b6fd4aebac0e6447ab77c726df604abc89576de71c04e7f50fb85a368b2c13f0c2403e288bf6d26cbeb8c37f0a50f481f09d7ded061f1fc5c9c976e250395321df19fd0dd57e0f7bcfb34452088c90a05016c129c5e10ab7426075f03c8e4139cd5ee8f548688f462f28d6dc61b74aa9966e810ab3717e0552685af8941ba0d9423c4fb23827ee2861222d3e10ccdc938281040fc29936004b0e7be4991949084b1af7d9f62ee6780c4c6733f1728bfdfe2d6fdc18df81bded244028340de522fa0ad9ab7cc05f6c3f6ecf77326d889d6ad4777f2a95224c06402258293e9a620e9a134beab58d41a6ea0b668ba33236ea24e6a48079db4a24cbe467194d5d033d45a9d4e382551a6864bacc73d7bc517cf56372a57f39e966e96a435e8e0b2255298e12b4953fe03c96e4d3090ae33f0dc0bbe24e6d127ca75d05e0636277665d7c1dcaf07582c22eee236665c9b048f574aafbd4799a1e3c85039d2c070193828f37a43884bbcd0150e8514881d7a6e00eb736851c5af652553216665db87503f5211678a734248ab8e726d977a35b63c862521fa295d2b48abf5ebe9f06cbb982ce91fc349f5665b5b1baf28201237274d1b9454ec03a6c8dfd08c29b2d7d6c7828046c111d5b5b1d591815d0d950db63726527d7d0d865a1b72c4ed73c6809829b207eda90501411c5a7521f23fbf44bde3a5f8961d9185312660ff5390681ae53ceaac5c3a8b2a4674d62ae32d5f90299d776d37184e0bf8065d09d4720e32fbf6c9f47b0934e7861551f2713a3546b628e33e3e19fbdd16b7ba10eefdc8508a268a49cc5dde9dc019d6268ccf54fd54799c408d84f4378c658e6af828466556c03cc423fe4c8de9beaff0b9e099542a7d634d433b587e90ba4a59f61e6a328e8d3f465530e6d03b5128ce6d73e390cd3f8432866a0d64745c9d0d5e12720aa715780a1a735cf25b5587e7ecc836744c14024503931f6a837a6518d0fe2b18b2f54bd17895701e06a7ed02743f1bbb59b7245b0b90951fbca800b1d02df65b6109e2169a9a9113ded7aff88d8a2f61637ce539b36077a5ffe8e0334c528fd1473f4d47d51a85961657beb4acf45f4193bad2150b40f61bc94a0af4cfe95f386648ca14a169aba6e24e8e1cf772e111d2f46c5350d5463748603fa51605577c4a47618b92ab1da3f2a057bca460520054df519632e6f120be6bf6ef7bad5453a7be06d580003cf8c2aa4ff73cdea67d4167875f9d903e8f6d98896e6b6e14e6b5a689cca2d356878f2466c9464279e168f228309b5b8b3a689ea89701df7a11f2296d976e7d16adb611dba3974b5664591e70ef021abbeb702e8a41cc0ee71e802dc4f676d893ca3680dacf202f26d71d1561339f3ef983e272e962b7658627959a156402021275de3a4252c010f2615d5559bd1b253c6871ae7770d1c34922e39f71319e48789f17229451e650ad1a74374a74848195a52a5c2605314d52dbaa0fa1508b77a15b31a62371755fa2d8c983c4881438a05c7625175fd27e63b1887876943dbd83391c5545f3a4b3a3ef575eace38d8c52ffc39c6ac5b7643257ad4700e367e6fff63bb0f7e75ad64ce962a258cf2396f7c4430037f1fc79e372253963b7c474142ae6c87130bc5c9e2abbd511d9c6a78da9ed2423df49847ac1c7c61d72106a5abec084552bf621973771a1e5d057f4be8ee55ff9936ad86572fc766a9150f58d6f37af290552e96595d44cc30b8a5f11f7f2cf15cd543ba275c6a7297719ca71cec6de9b9956376c88fc6e431210d04c115bff2178f2aa648146ce9cedda43e16d4f3456096b1d053ee3dd158fd40644e45b6f9671614c1fdb64ff0aa1facfc550350541cce691b8c9b46c06a60c70b22ccd9f89c2436a0f09aa5747054909ab6f0d264013c81600461f00c4253b08a955ee6bb411011017468a8db8d6dd34cc540021c15fc0be53bd1a119a8a88c831a8d1d45f9d8d4aa764eb6f2280f57f4931d198968050e812bb388d88a1e9bcce1bf3d5418964d68bb4a72d202760a6d017efbca4d28199484e494e726f35327cd6f5c967bc7d9f6a3d8d3b1cc1f9fe77bb5f7dad7d8627332422286c704eb63d2f3280a9081ac6ffcd3043b14e0669b5dfcc28e39f54639ce84915ae8dcab46a4a13cdabdaa57e4f17bc3ebb877ed44d9c0de617a3fa882c5e48fee72547da7634ca2622e5c874bbba9b3663ca26a70edf1af215f0bfcae243e0cd445c2cab3f62a9896b2a9022114e19ddaf8ff89508146a4d6a914242fa925243ab0960aaedc2a9f10e4d3f667f8a94947d9c50feceeefb76654072666412c33dd9c876d93ef9253072411bba90d97459fec90586a05af52cd9430c4a2745f932a549ee566beafc0dc3cb84676889f25dc5888f006fa7745ca71cb244570dfd77ae0a1f0583f57e1f50ae31daa83f7caf1e65b79717738fe9d16e15404977553381407105ea631a661fb512cfe7bf1846115483beb03d5193d780e056b275821acebacb5b685d875d00143a935485f531704f591580544aa264e0a7a0e2a7420151e63ec7541f0310426e8ba193d078a22d9cfdd771914a258acd015bc560c32625fc2ea432db309def3dc2bdba1cfd392cb8bdf1cc4ada76b9beaacaa5a9cd5b732161a32b2080ab55bc73618863a06f0cd247c98c212ec6a824898c07ab3c5bcf300e6935895e0ed89be46386801cf6c6b4f69238685430960651c9595cb9536415f6560af5b87d333bd215bdf73de833ea6cc20ac61055ad362b1a25096a87934695359ae658909ca91c1d497dfde50d29e018e39fa765d551a2fc8f87acc29f53803d265cdd03fe74b53f0764ecd10e8a209b1182d4a650243d24f7bb667506e5b07f1e858c64981152cefc43b5899a0c26a97857503a53f8956dc0d8281a6b896c1537ab747c9001853ea9367bbc88b152c71eb7a195c32b0c06262678b2d76c301914eaad4bcf46d9337ba82e607a92f86d0cd862f70df9558190a913e5ff079ba6339a6d755782cfa1afc68afc51e2aa1d847e1133a3b958a5bfc5fb99bedd3fa076dba16de26ddb92b967dd0d7e22fa0d1f96bb5b0a42863462fb0f345dad790228399090f1ff449878819b58baef567cd7c42875d1412cd13e5e849aed40e20c01d16808380e55c20b9c2305b5a6a29fbbce60e5f60dc23aceceebfd7d7e92e8bd285e371453b997d0517103f6943d2455b54d234c6b35c3624d4ab0cae229f477f81fad01fe957a433f103b0f4c482ad0055d0313bc21bb95b165efacf43c3c45adc1a657a8f139073052138761bfa819269fdbdbafe60dc4b185c8e1b958bf630b6adf61188a435994c874f76c00102c09598d43ccfe66a593921f9d146364720a709b9ca8b660135b9dba6e0768ce7d0d0273a51915946cccf6fdeb004b05c6f3a4f53b122407f73b8cec46713a9b189a05da9ce9e7403e840c8875ee4d0cec3bc470d783ebe3d456fb6a7173fbf78a0a6e90dc5f870cc761c549128f963c4a534aed711c31606ea8bcaa272a83c7b1aa205f2deec7017d1f9518718bccdd0ba62e30ecf26abb85b07321c42cf0fa776b6411eac171cc86228bbf8fc2c9d60e7aa4f3208a5a3a46517b3dd8dc9754a242289d33b64aa66f67532e9aaeac554d070cd6e7eb79cba264dc818d6357d534e4f543eaed18e3c4a52431c0bd075b12f6023c8c3d62ff920401030b3b651159ba131474897dfce001feae96a4fdce1da9076a57231605cc1bf8243b7f716a834826d0ba9037d047b40132b588871859ce6aa151909c41d22b1a2cfdbd0103674ab226a9085fc79469fa502ebf60f921061921304757115e5b14e322efbb9ad5561fb67460facb841be7b113e8fa8903c808fbabb416acfeedaab1fd8c811ab3739a8dc10fc0b35f74018833c87ede7ef2ece7fb6cf221b9723ba6b16734409068ddf33d414ca301c9add28f055ed3c39c9c3853e1b5abc8d235e67c499165b41c5e881e6b0dec3264cd59b0bdb9a2e050483620866e48d6452eeb31c42f7f7704fe76d0b08ade64fea01c2657c64c5cb50758217243b43345938cd32c096aa0448e13c7274dc2f0fbbba067a96ac4b7b133b3f5c25663f6436c8a4803b4c8ff9b56645e26533e1c79f14246b1a89fe62ee128ec46d6c54077df79dcec064c1c4dd799d7c66c217bb5f5e2cb57c851a9c48a329ddb7ee1e7b4109e5f9cd62cdafc8112fcbf8ac03a40b4ea7e98a5537720f1170d6b85fc960c29f0eb7483bc340de8e4c07a2550d78cdd85a4305777b7f834870145ca3a26e355d865df665935df690e172bb69a53c044deee2b57f607370f011ebe0b0f702bd9978524362c98cc886a69b21fe4c6cac5e10dd2ac9426d6432fd3cafff5363f03db17214bf46c7a971d2dc625102911cd21245c871a68acd3ebe199c2023e4118421da1856798213d2a6e14864a2f5d32b5d2f6360995ac2e3f03c164c25c8d4a0d054927efbf1d3bd4f2a62ff981b05e8f5d6c01a73985048618704c6734e4cb6720c49fbc33c378c2fd7767b4c639c07c3ba39e630e68978e7cda0c130ccce0c0eacc2a6ec64f678a568c0d165c43a90683a2180e8f90f76c42e5ad0a32327e5018438a507539087f74000495cb0d6de08f2878125498fe3fc8137f2779824279a22ed6fb9ae30a9674f21a60152ca69e6a52ea8ffd7c93f3c71342164ed1f9bb13acf1fd32f4449b112d85a0af7ff6c4e99e9e201dc162150cde919e53d655f7f52438f66456f659bb83b553747a92cf27fb63c7f8c2d0a6769ff0dbdf17c34fbc65c522cc84b4628953b1155205036b4f310014cfad405dd410703866174fe4977471a417f8da5e89e1643da186d3737e9dc0a625ce7d977cbd670cf14d4a3a3b4ca11ed628cf8c50f91e61f36640755b6023bea6988e4f8eef132edff624c52a1ddb3b3ee1898118c028cf1d12987eb3025b69e0f5eed6e28aec40a1c1c6e741812cff548a41418dc971180e771a2db861a80da90032581a7d51e85b76037a2f9a3825bae3563049189fd37588d0ab1b9d7bef7d5028ec50d6ee8e710dbb33a7508dbaad2b16a211a0bc768f1c872c23ea2312f53bb84f563ae2591d59f03fe18cbe6f68d5f48608db4727b2da78ed5e760a4143380f39793cd1e440cfa053e221bf07bf4bd43b5a3abb8777abb8df135b4df29ed91f2c59980065d55a1cca8ae57536f9ccbd99c927f22339ed570cff4c0b04f160761b8ba200a7083faba667ae09f0e4940dd1f53f0ea4dd136a62ac24239f63a50d184b84a1eae8edc3541979e29600808c7064c8fb3552d32a43d8f86bbca4b8676efd352a7beea388fd7f8c93e5a78b143019999b8ebd0a18a73501b6e8dc80cd23bede8c8da2bf647118b73412a1888e2a1f9f9ff70ce44f7a1cb3e2e8f398bc435666ebcd46bd35867eb19d3f297e575c2487c5160303412c0f9071beee304da1d0337edbed945a4555444bd8c4fc9ca7a69b939e30dce0202f8c69f82d42718a344910b13af0422222eac8eb1bd9212d5f18a13fa811f7c545226b3a441581ed068325667204ac939e738279b1aae17eec43f5cae504807fa2b12040999fbc705cfbead3ba9e49f6a66ca4e43e6dc94afd885a4fd11571aa09ab30c0821f9fc9ccc9984d0dd13a319b3da38e63c87e6136a6a043cfd3df1e1b814f5cad301b347069c9b8911bc5d7075a6671c6b5052c4c162c4632882a274fd1e335994df5a37e4a90f331105eb3490ca7659808a800b20d4ee9cdd053ec1c175fbeda0383470fdd080a80e663303eeb797d78c15b68b3665549ec08a18388da0558304aafaaab0964d43a47d272dd995a6ad61b82e8e02e16f3f56bd223f914751243f373063f4411e94a2e2b8741070b9ab3ae59b9f485a4057d296b83468e8ae52640e350ee54d64b8cb27799fe6411d51a8e8729ef9f548d54178f14b0487e6416baa17c599de6f9ee40871aaaacbcaf36dba430f415f8f2e1301c14f021c1ab29a5bbaba761b6ee569c496ff933ac80ba2a5e937c82ec1b4df27f72ef86cd28bb56bce54442a9333964d09ac896dc5342958a034aa5b58b3b5385ce6555182a92ec71774990baa707c937c14ba6d5e92844a243ce43b71fea255ca771b85c72b34006ce2a27b826d66562bb63c47e69442300c384b78a416c5df12cd84dbe903d06df52c54b02e831d2ae7184b750f2d1aaf42ff44746dd1784632d61f1ce990ee75f8fb82ea30f2abde331ae5fed4c82a9b65d1db5d3be361a1361194508919dc0893540c408a8e97380a6e8a70f8d06008bbd7af52798c01bd90cd39de4e6e3306922c88faedd7435a8e55ad9237c99b14df3ca2161715117e505e9358f383ea799a8019597d4bb8d77677c0305478e37b2857670cbe5a46c90cdc24f46e505e94ea6f9135cfd84ea566a1c3fd29d1fbdac5258b36a5fa594d79a509c7c9c57af52df5382dcd5e6500e0181dc691eed303832b0a910ca053dd1658246d15e02eeb28866e557a6e9c3f27073951caccb972f77b690424f40271d2fce51dc5255b6478f6d0fd1cff5eb0f170d9956109acbd17677831cdc3f2ef2ed9edd1f938713ef4e6c4e2db9641b9c836e1f2d7d2d519e69b9e42f5b192a9ded5bce1690183e3fecaac80670e3a16e1ab64e695c2ce2738d623dab0801c50af74405252d1130209a292805849b0c7559fb659cc4a2819244427b20d537fcf390a78669954bfc59419f320bfc454ee794c0aa052a1ab1d44a4a7ba11bf699e241a24dff005d2b70bbba386c9c1abaf95133504c6747ac0de07124c866e892ea02962bf745f689410125025f542d6ad8349baaff1ae14213b5dd05d526723c20e50c202ce75c8cb0d98fce807452c9df43a29ef9a75d200db8e23144a26ef18f4f47d6b467a05b54062dc8de548424ede0bf6af4fd5a8d3c7a7a1f49e4ea257ef56a038b36567f2b1c0042eee4190ee4ca5df427c360e5b781b56ceb176d233e95a4c77adcc8d66fea14fdb0bc402a271a07dbabb52f852cbb5a1e1bc0a1a30aee332651bf75ae12fbef6b9a6ddcfb749ff309b167fff5886a1ee9ee01ea41ddc6188b440f8aeb5d5761a2b13a72d40ea9212d807bf81464ddf4a264ca4e56b795b1cd4480ad9416d8b7b011bb7fde01b8129d2ff1cb9171e1d630876fcdfb057e4410f7565a5bcf310bd5402f23ae5164d2aabab1897460b1d513254fe81d8612928ba26eef60abc155aa35fca88da163a9c08e3a76b0f141d1564828e42d30eb94bc053237fd582df3f482d3a70385571b44f6d068b41f5c29b7140b1ce61b9673a70cf5f6699e5fc91f163795d0c8a1f827ffa5395af9025b6b402e28d9f79a4144274f767d202aa67d47ecbe9ec073f684f5ad4db3480e42eb06284a6e60aa517d8d745b0b6a97bb9025278584cf26f130075d4b50c728329308fc07d7cf943b51d90d7f19ccc7dc67dd4d4093860cb700e15c976ec73763c561b9127c05d25762c6e774cc013ff0b07b7a92ed5152abc564a43c3fbd29eb6c8201ab373721afb52c9570294efd878a13bed727bd33a030c12bd150c7997bf383ca3b6647c86f1a714af178e1204554bb5d175e8f2bb82b29bc86687b4c2169d70ab533168bfd639fdfc8e5e586a7620972857c68f412eedfda43043001e321ce7172d97d8f323272e8cd74400219f4da23637b3880ae5dfdd0fb39bb1637985cd2da8dd270853333ba996d2210ee25b9ab0b7d5d0766d828078632fe556709691dc2a6112a0c41ba00ab2154dd22c9f8312daf67d1f94551722315cf23a64a2741582bfd3733bf4b96929bd8793ed1cb2eea3fca53c972fb43801a0ed60bd998b030e800ea339b431f5810402081e294567d3dab51efa91613cb9787aed9ed2b892f49cbd25cfff81a8a3875933aecaccec1d1d2304d876dbd3e1a2a3cda669e847d6a703d7ab122485b45a87867740bf6fdbf3f019b3ce067aa78eddd66b164f43884da2a98816f4cd732ee03a81511f08dd65be4e1ead5686d480bc7df941c20914086a99bf79a89dd7dc0a41c88e450ce57ea23b743ed2c7c6096598e85d77813ef5fa1bd719a7d8175c241bb2e7061dc383a7873f81e59017796b9754e0fe0c493db43515bd861a71fc28e58becbb1c56628abea6f8f81b3c0e2347d811aea75b78e9d3842071b0ad562c712907c431bbf44a3bfc02757cde35310af9cfb743260845f1ab538ec379d757f0401335a3c2ab50df98c7464e5d71b19b17fc9ce60caa9334f18c8a4cb1b9faa91cd92a6a74aac133db115c0bfc4bff453056e5958118abea33ea27396f779eed95c5be483ebfda98bf74dd3006b0a267d3095df9dc29efd589224aa3b50b11bc0c9621708dae0c6e6aa1a51e83b3cc60624fc9809e65b5e1d444955ee427ba1741f452e3dec62c7b4618997b0da3c96630935b371832252595404ff420a0e10809c0c02445138c180a2963a9308c50c4a2731c9b4b2152aa332276da4f58522d7b01b1ea4e36a86431825fce184f62d50d1f943f42b18cfe2da0b32324b102bdd58b433a90f27e7b235550d4811d61c2cd9e12953b702a5df6b119703c5796e73aedf223b112c906d6c7d88234235a344cf2e806e2e3166261fd7e0dc66b939b18cd5d1d57a74790902864f01c0dc823151a692aa47acea45698d81ea5ce0b2836118457d0e66ea40422230c27869ecf7be30378be63179de22783b6b913c94fc9b83138600c2c11bd2283f5b1c6162cf5f8fd38136bd3ce5ce119257096419a52a53ff8efbcff705f4d93bb496ec684da227d73db5eb2aafc379581dcbce01cb916c07d981628644dff7e6c3e698426c706e2dffeb80535ea0a62d16c348d07ff102791a93c5124719764a0cb36d276ea1c44fd95ef6dafa1098be68f0731780be1267a4629bb5dbce955e45bc946edb0fc8bad85be8ba5a614ca11ce5062a5fd91d84e58bad89f2dc638d07671af859b53b16a610812014b7d9f48ef76601833e1f6ff00e224cf0038f26b8eec09f5a63c8767ef823ca80f49e3d234cc8cccdb3af4cfa220bbde75adda67157c29541b97dd853cb32fd2d7d61bdb9ec333c736f731f869b198c6a54f541502e7c4662e55f1b42ea3f7fd2aa434c6ddf0bec849b0b2558d6b434bb077672af0396b9cc35e4ea24fadae195fce64ed9d6af10b57784eb239ee43fe0fb71a040ec5163140ae6a19fb3939e3b1b19a165cebebefffa7edf7fa985a7193d46dea829ed36dfbd357c198caf263ba66a3484f91095b797912b1a108de5f5bbb2ee3d6511e6476c8356fbc9e462a12198c4c12564a79f203ac42b3cb0be5d0a589f5e7d94dd7f23d333afdc0ff3b5c9c1acbb169e3364f6109275522daea8558c59b8976a67febf6d4008815d3dd50cc571d53b0d8e6441b9ccaf43c7023b9348fa7a35c75dc8597d0763d9f1a945e6febc205fa2c6faff22def4cd45127da80605cd03bfe58e7f6a62ce9464456c4d83bcd6b045dfe4d168c0b1a8416aa5d695ef2916deb49a605eecc70ab3de70f8ac24f930c1daeea6b8c9d7fe4738161afd4c6e2795cc044c295fc26415b529651c2b08511f4543d1eda7adaf33bc4e7f917ccfb9c268a06845a452fdcd928d090462350390ddfaa03b3f2e4e2f4b92715db1d03bb2fe4bc675b6024553c3f9ee704e1123e5678890b110e7bdaacf104a91859c56af5dedb5636ecfd8a7c2b3ff8eb4564fb9ef738675ac110f1e091888772ad8bb307273c2c41375617f6566025d89ffe4766c909b43be57378d3a4d908617f53bfa78f618e0ae6eec7d34d89dc4e86d8147fd831f45c8f2320843e59db113833d5da821d47ffa3d3974caf32e3345a096c37db8226362ec2afe7f759dfa070f9665dc3026a7d7cb3d21976f38ac739a04690b768c0b6ce45b802441291d0042e950b19678f9476269b66c9ca45540ffee0a7bc876d366600037a35be9d0b3232b63484c0c388cf1f9d5c2493383ae0a1d73c8d809188acf5365f05a30ced8a43acd7bf0a2f291a76e935ae3eeb94d02969f0883ed1243e29814df16fa2090fea57b4ef92cb3350b5f4cb16536e7d60bb857f41b476f8e81e71e007617a5649d7dbead0dc6e70410431b8d0a8d1c83e339d9b47f666f1b7f26f073c3781809608b9696e91955c8dc28ca72aa19c96c4d14122e1438d1ea23a48f0c58b09fdc87260ec4109a1a16fb3c49bd0b34ecd0283dd8a78d21e3a94aa277fe9182811971c474820011a8463e58cd8443db798c55a4af9147772eef75956e6245607378989e38160018a0b1c6e31c32937b761ed4d401d70024b84ca01d712e09515042c45e11424bc503eb1c347688f412cc1fa45751039b2bd6285a8ff9d5d30ded1b3c84ee70473b5336290be617ad9105534f49daa4c8f05623f918bbb762eb097ce0798530c896ac10d18f6257e48a306beb2908a6d3a7775ea334053e74f011a05c20342a0ae8f34209d9496a7f8e7a932fc6c9bd484abd280df2d52f7c82b01a60d66a3b616bd25e8a647d425383010ab1332b27841f0941a39dcee7eca10736de4b53cca8b12873e64d91472adbc67bfeb281690208371f4467edd7a0716c895f03edd66b52b6bcd4d60e8578255401bb34fe0646697fd597a029b59c7c13c4f7a087cf13cacdfa65e6a5f8848f24d8432f258878dd7be8095ddc298aed6afaa25fba123ee5f92211a65ba6214a12805f2f41824c2fbd3da36c68bc2b7b235c5823945d1314cda34a50afe54338671be2b14e0551bf8d64a06a3625e71364f006e053b3fee14fe48272ce234d8f961bb9138ea0ff221f1b40117d67b1e2a4ffb7964d5a6e793e67eb6220d3cec44af7459bccac5e0b0880165f288aa23b287c0984004a8e87418d81e30a74d0c18012487d83777803399c3173ffb9547d6bd1efcea70bff990c05790a5e4d7b5f675aaa7862f59ad987f6b8a89f93de61a7bd6d8f9c893f1b9e0e8cee3394e668d5c2e35db0277706fbf543de63d8f346147b60dcddb9503ae6062d8295361c8779147ce5df47b46bd9aab709b11ded14961f124ed19473d0ea89935aed42478a16c0f9890e7aaf6220ae85d8be98db63f5004c86c20dfa2355000811a8edfbc96a9d443511f4029d74c7e1805a9168d41e0936a710675d08182ecd31c9d3606c6e7650b2857e0ee1bfe747639ec42ead2dbad4b3a156a7c1dda1ce313db7dfe659e72c4c335f083e2f80dd081022fd4a8bce29ccde9be42dfa05be27ab54b27e51548266dd5b8878aecc24181fe621556890ee18a449f360d949afd15d3146341028eb2a3c1bd61bb35008d369dad89de362a935a757f24292b8a130bc36e9126337b86c2acd2b40b5fcf9fe7873aee6312379c9bf5c336699ed999a5ac6a4c2782592ec194e883f0238c997796ab01ebb7ba751f2f34e1d0ad674980dfaa98b41460cfe8f74ebd142f4a1cd3e5f2754957126792fbd0d5e3ea79da43bd60c5db83efb2ffad441fe0294820ee80f7dd06580dfc9cbb01b671fe0276ca20f901fe70723f39346c167963077fe38e0270b76556df98e10d5502dbe5b1c67003b483880d1ece3c2c1c4f8ca1e296e751f7b235268eb7d84d9e5f86c3fdfccd0edab0860443a19007310c5754d512a73e0bb06e56f1b04ba51c897122b93d20255d0618effed230cba90eea2831ad9941360c9069f6fb98d1e2b69aa01100c72138fcd4a90060f38347a087bec5b802b6d581c06db75f2abd4c0a92dead61b532eb6b8ef4a7bb5f1aa24dff3a82ddd051dcc1ba7c7154389945d8f52925811bc129fbbe82710b6c58089a6d4c09324a53b9b675d2e893edd4575a6d5e6fa84374263c69103726983bb926a74a80974bb63928af439ecc3a8c8d6341107d8abc24383c11fc3162ec0e6b7b620e54da121bab4a691a1233e43d95fb1ea72bd295384e232dcc6d700f665cbe6618b5188232041ecebe170791e641f4d02a5b0d2b2eb88ef5c41ad07c5874257058c75335e87bc91b926305dbc01b6b0171147f905b0e8bd0f8dd5e33e50e7ba3ea9148c4a803538098eb901c18729b4eb107118d754d6118b7ce4797bf792fcf6ec53e90e4781a274ef6011306a95c30ad69a9dffefe3870ebd747dc31c2d9fc0254c2dba38db7f8816a78d676e1762f0c2db5d52738737cfd97080849293bda7aa91abe5b47940bc7e3c31805a2f1668180e321cd7d6842eacbd6c84ed529c681b02c5b4a1a1127dae9ec2f68f65727ec362d24b949a1a6e1d6fb0ea78b9814b8b070c85fa17d1970a9bdb8ceb9e1aeb5dac9b764380337536a9dfb5a5b6ad12698b2e56b7c5244294ecef4fe576322b5859347c615a76970206936505796dd1136701ff82a9d6dac3c60da42080d39d50b3410324093ac96f90e601ad8cd9c6c352a4b29afd2c3e662bf17ac437283c4f2d1c8f1f0edc0d28214581204fd8d4a1fc69057e7aa5a51ec57f6b4b37131ef9d9e8045a88dfee2b8ddfef52d87feeb39587a5370c37a56d389a8c9d7072d0e0b56ecda03b7ca8350f9d341b803728b27e799648d0d79da9ad408184838b6e395f20df24015eb22b9d220a531610d06cf68793bf756fa95ac3eb011e863659828ee45e209272208332a8b30cf7310679c4ac14a4379975c9bc7255647c3e5468f339a8ac5086154096ad0ebb0c8ac65a0e3f0b2814ae8cb6211df7bcff7bbee8ee655005b23afe6afdbe6dfa80f105dc9515427aca99e5f8f66c0078361d04379e3d0791eed86528d477d65692c09c4dda50d1165702323990c6a91ec9f17db28f62ce661489eb1627ac61dd8ef4c8a992d67da4f44de5373715689d5efccf58e6044447105bc8570f8b4f6a12abe9c0b5b28c813b7313b66748fdc4186b85e75e4acc50921207c04187ccd19953388ab03851b6fa49417cff35837e98c62b4720b71c9bdaa345246f097ad045ea532f3b1524c73ee076fdee9adb56e5cbcc045eaaaf635acdd85f94ed51c6117aa105a6aea7e8552614140680dc116fa2c0d4ff78e6e7d73e1d33623c945ada2b714549f54749921cfe4dd96020bd317bdb4d2fe3adc712322cc8efb38d705b06150ae2d5cc862d54ffc6d665526d916a48637cbd727aef16685567ed2da77450c0333b4aaa42a0cfb0137e11f06e687837d877fa263e64cbaea6df38461282e78b345d4652e3c5112cbe15bca04f823881c234648ddb0d2a0f5b13e757c0eae48c5e408298429529d112dadf1349aa932c2172ee6e5ea070c0c5684851a4913e906a89af99082614349feccdd5fd0b22e6de52605c64215c8160abb3eee5929e122f27345e00091399fc98e8f93888ba7ed92807ccb14c679437e9d1cc4d9865b1c2c575d0957797a1c2137834d515d2525db7448bf99b30dd1d9d338b0f548977a222963cf82ed8088540c2fd122a41bc0ab16d4d1e74f052c79ef064a734965daba39f2ccdab92c171059db4c6c75f42ba079071a7494eda5f4d63bac8ef4ee7b30a9ba320078585f7614e6a9ade5c35d832f9353a2581b0f820220b34e2bf03bfecbb335293743525a36ce355c9dcc7eda9333a5d254e07e39d8d357d6a03df188ce47a4cc86a61ca871c150a5ef95625ed68520f1dc3c6b5738cfa795c633a5255053217ff5931c1880fbd4ef584fb996ac5ee84c837c3f4b09e2afa3bc778f3cf5d1285761a634d3824ae786ba2c4bf6177202c8958135734e576b5baf20734acc5cdda68e10497d92f3215c2fcc4169e107b1910ba817f3b0d9b3e412ce30881c80212c53a7aed63a8ff84deaf0408c210b50412ebdaa147a5cfd3ba59396a15ca175a9ea58a386845fa2882281cab59c76cddf5bad9682b88457ef28f17f4a40124504e68d062d5125a54092c5a4b420a7b619dea4e3e34cb75eac6af1b60e6b99c700fd6858552b484a181926df48a79ad941da58a66d12a92082fc5a19de7c4174d03192358b0338105dea3616cb651ed15fdbf96eccbeb90ec9601c36510ccb9f840e08867fe1e5ea49a04b3648c61a9deab76f8d6e5ae9e0f9baf4761aae4eb76ae8a19fdb78ab955546272e0796afb85186b8708bdf13cab03e3339eb0852408d55e0045b50145ecc024bd597389f2255a9bf0e0fc1750784dac4f8f5368e0400558c278a96a21477b2551c966c80d56dd383dd0806d15182be01bcc30fa48699dfb7bbed32a401bc9639cec0fe7caaa2b7b11ebee474325c190c341dbac646c24d0fd6816ce0b640c3a1e1e4adcf594f140e6d22b51ec6d284cb17baa2ea5622fd4c528c80b1062a7b0fa413a5a04a0015ee59522f51b1fcf8dd2e0678a04242ee808b6939d4b2196112913541dfc3ab1b5e5a03a3870b5538bbbca7a9322579f1847e684409c611fa65d8d64e443601219c3954afbe63035d75a9f41fe930a5e5ec5c6779d5d3dc61911bed2e1a915ec12d79fe0af29bbeef49939287fe81d224ca13e881279a00482e404b09c5c69d79fe66a8ba5c91d8d62a3a5e5d945b9aad32a0c3592b664caee6a15ec2301271a697bf30af08622f3cdefa2e6b45180f8b443f6d6ca4125be2fb0ec6455bfcb9bdea6aa5d8e9ed0edbdd84943e47ed11502074e1b6ab079e82352754b988c21d71dd39407a5b556dca2014d5b85f9ab74e1a167c1821f14fdd43041d3e5870b13d021b089ad4cac1427242683465314360e77560f717f4f40e6e3e94656e0d321143f506c48cb8ac9f6e6a746a4b203e74ba3ad08fda6dddc97c1678c6b5f509216946a59f60016a090dcf5f9553da92ac1da1353f145583441f69d6beb7cee41fc5b80dac36513aee2c8e1008ac3702fee6b8b3ba19a19ca7a7891458575bea321919c91ceb2c2176321e6cd706ac20964d7d5e49ddcef76f5ed739a7adc960e49b9df0634877b47c7992b351938608963993f2735e0a5947c30d268e0e06154f25cb5951c064fc1b4933916ed84dd02134a53a16fb12461c1238f89b51215836a661cc7106c88e8e0cac675e156c64ae6bab494d1790b1c00bee2e084f95535fd7845cbd02cb8882f606a55697690df82eb284214ad23caa428ca2bb859740a4245bd5a43302b006be244fb62013ce3cbae9489317a560045eb2058f164c962f87ff245cf38ee636f34ab6630ca3810f7c5924531618895d71e8a2075a4c9736228ed338635b98f95bb77f89a4505b0a473d96a653e2107227a20a5b8d8010f9a0c83b268c159d6a80582193641ce7cc57c230e862ea54c1de9017eb222fbd1a2d7f24e6dc25fc61ffb12437b49d75442f9ee5320754cd40035425b07d7050d548f2513610acd65bbf504a07d2447b1d20f48776ef988721132d1b9f6d1de79a59803cf8700f987649a58785ea24e9552aefa1dbfcaca5af3fe718552f168b535b698fd0bab2e33ec483578cb467fb54589d2b2562c266ec375eddc6681645e632ffd242eca479e9fc4f05a0a308262d7f27b8150e0b7049160277acd14343d01e621a604720bd0fa889c77ca714ec3e849153e1969a91cadd35c5a0cb1bec3a4f9e508f4f60c7c2c67d2beaa30f32d992d6639644aba22b062961f3b66c902a4288849f365d45b1dbb1324333ab84c1b15b50acffd9d56641fc41ea4c9cc2175c56b9461ad255c23e62be7cd074419e6c9591ac8173aa08727e0f9fdabd6ee3f99882bdb44daece702f2e0d3e80b1aaa1831881a673adcb37d455ab3dddc5edf5796a2d6780175d9991c0efecb4b264bbc5d608114e06de9b549ac2535f50f176e083016e468d339a81f05aad73d19e3f8899b04d4b25942c193815971d2e365913a28fc7034bad91e25be8e43022acb9d4f9667646e5b052176d34faff7fc7936b624ee4f4bd56b3387e6b88d673b14709b1b323556132b70552b3bd3cfea302c9a4de8fa69b22e77e936af36e1a8b9a0399083a36a441a625018364b881b4846d0d9fad774ab3b2f0cc82b0d8c4c15aad1b676a21cbe101b079bef62463d90444a9984dc8ca18d7ace29fc7cd042a13adc21a4db9ec3ceb19900127346c818321e36415a7bc084b284ad3a2d3687b0efeff9f3b1a6f7a3a424c474689e0b3c38f36f28d06efd16087f870c2229d9030211bfa2dd7a08ceb43f4def580df6e343955fdd019027ae0ee95028383335a20b93d92ae7f7e0b241b4580eea6a9ca77f905a02d5abf2f43cf0d9c597bfda0ccb580a56a5a8ace0820e676b087d131c56e8c36c209531b0ae443d60f5f99fbca600e04cd751773b20f385d5071d30e84833ea834293eb6f0bd621f909cf9b4a54add698dd86ca57d150b01640b19989116080ae13d2f923d6866b19e8a96aa42f05beafc8f76741f5729bbf9160d08a6010a7728b703e557ed3fae1a42592a440634620d9a1c6ee66ef08e9fe77619ed21f611093af3114368140ca2ec940fec1bde8620fe85051bb013cd4be2267286126c6b8a3a5ea05d54f9cbb448b211348d632a514bf44c25bafb565e13efd242b92f89561ec2be46b5198fe1b47127d561f416909aa6ae70cd97cb865f1ce8f202d93f093ad7e38fa64aff89e87e434167e7f363b0c5f1cc877246fdb3cfa562c83422c08d972c32bc803aad2ed5b3c1769aa238df30d5d6860e0ed5afb6c4fe8147bce3d11c1645481096ca2fa603da53863da502112fe6259a8362ad89c0fe343dbce218b7c2524e593522095620c40776bb9eb712edd7b9347034f6fa13cdd78c19fb0794f14094d794326c0ff041a6780454c056058fd65feefba1823bf84c24da28b91f5ada4b81043437a819654344d55da4d72ddb5739cc6a66860f8daa9564774b2684b9f2d276bb8a7b0e9043241ae54611faed626416866d8337940c64fdb9f0a8a12874405e1be5472c1bbaf3f9c345a3cedcca3d83e567f20e0109a9f84307e82eec4fd137ceb04b14cf8247ea0610a73c6e80800bbc26dce00bf313eff5564173aa05b3c101e94a6cafcf3b6cfc52242b65d85db951e25f206f3bb00b322f45ed26961ada927fcae54803dd4514dd424dd1188d514366b4a980dd2b4a3ce1fb78eecc06701c220527d9e49a1b07230a091d1bbf6aa6bdf11634c2eb85b00f7795df526c2d3e8a12c40be33b070163348c397361e51d8ad2924a0e0cf6f873ed74a6dd601cc652ef6d5b0e120312c1ff8fdc76223c8ec5ca5524b8d66cf991ff5278cb6d2f1661ccd0e00f008ae48f55176035f4ad712b5f427fb4b43c931b8ef0063821a1c9f3ea319583b4730682c66b52d114e3631996dcce9372928ed4fde67953024a941929ea0f3ebf278ed98182eb5c0116b1210e7ed610a8894be9f57ce6f1e1e038a81ff53db854025b551376c93a1c9888ed10408616cbb6a81a3adceb6c2c2368cfb4b54e278edf2a29222e4310b59fd58cd266d420a2510d3d461a65f3bce09b243e021476f928509122d9dee692e426987547ab13632337c8faea2ac3bf885f3f54d75f48daa9db726c4b41836fa9442ad8aa7ad4caf1f9ec3cecde98994e88213cddba1aa24ab7aa7bcb064b413ebcdd925303962e9c5e7cbad0ec7a89ce0ded2c36be15effcf8a71b2cbd7d4ccee2f7ccf2da237c655de7409cd8424cc018e750ea61f44ba56f73afb49935c99c8f67950c05167da6104de81190ed1448cd571165bb2b464aa26cff4d81c571c3a8326c43837bf44d2ded1aedd4c0045e15b4785327ceaa86bf73c4c9fa2c158f4873c3e104413c599b93b9bb7527367b5032d573f752aca849fb1100fe14e5c2f8a99331e872ddb495e822ae991769e198ad5c051d458e93efce8466a0f8046a22673fd88e0ac23b1d88ee7cc28622dd764763d421645081f1b59741165855a6c3626ca3d496cb37f4485d08e81ec1f6247c85d1f2daf1f7fbe91ac96da46f2f1f0ea422a96051c165125e3d9bc988aba3eb7e1afd57e12d2108f14443b185f568c4e1b4f89b06414745ba4d43b5535850f35dc1ab68f9489ee5a9a87e8f752f057a895988f1a42489b5dedcd6579239186cfbbe1cb1ac64710c6eda1b27d0c33d7635a7a2485e830a6139ea1e053d853358e26b82e28f3284c2ce20d7c56634ac373f5a2c8c3a5b294b1aa936d1538ee4f7b67fa7948cd3e1a9b5f78944f33b856611ec3a520e1c191b765eb50a63e0658c207a0f3d0ef2246a82f904119062df24387f7f879497e7edc34d2dbae43d6e376e628e7bd593643b63a083c927d3385e4e186ccec044059eacd11489db266ea181b14877c8b8bccc8987cc0b94d154142d998693aa92cf096058def4078ee143c9c123c61ed40a71697a9614a103d59ef54b65357390914716662230bd2f542a8d1c3ff2fdd732f209f029198bc2de5d3376970d01180b5b1fb92b2536922eda37bd1ad026592290773660a918a8e489e791dceb4b313508c551839b7bb0436ec40d02458bc38845af385a1fdf6214a34fa82037ce56aa60315639809ae6e6223ee5be4df530d1d96d7d9e3ba2d01e1c3961f0f3a17210eb4235923957f0a25ebd231562f4e8380e6f7dc22244b1edb9ecc2d3b223afc285535146cb20b5832f82b67e67ade63b4098dd3bda0a063720428f32ccb944262c1b36caab855487dac35e5995643d72a4edd22cf15157e666264d11f7f2f033290940c14e18b207a322b362c734abaa64bc582224bebc5232249b90a02c02d920b53459d51714ac3609603ea6199836fa2c12dc7425ea28ca80e1826f30304867a6b7d87573f253149b59d11ee14bee41af95b6e5c560655d3f0ab70fb782013b5c604f2fbb67470f96dfe8b59525795a646fda06b44b4d87f04ffde135ecb2411dd371538ef9f0b629d8ebae938ea3b996f4125063613bd75b1301e1a07869b76fc1586a01d09286ad10ba3d4b6178457cdc03bbc5c4e5c292f08912ccc0591b5f2132717343148dc1daf0ca0d738622b222c283b4f228df60b56813fa5ba07ca3a12eec1e1a78c042eb810d53791efc8f3beb814b818a262facafc0dfae7a89e4f58713f94cdfe440382e2929f845fe6d937360e744e996405b4b0ad35c8db9748e04c6666ef307eb5a0c57025a4310c1427ccd4946350588b7014922f63bfa77b96fe1227242723dc54e5e17a68865d4d5f00db4f0415693af65220bd08e08c43f141075995c4144222df53060f47352b04867155e75f76ced424305880317a65457215ceec38f231a49568d0e2af87819aab0770c419d1325588d117574081fb585f38719fb34bc806c6a9bd12c287c337ca6c2cc8bbcca630f0902ae24fa4cb6e783945245bcb5a07975fce87fbe643a018b6181ce3329607e2273e3d455ea2c477f317de3c5991d758857c482c224d8d6501ae08d177b8933f8a7c20d982c5e8d3f5154f1b8d96e8861bbc9af054e9b7d20a5c7cac30b0e52097bc164ae4f9bd82140ae44ddc767b269cca0715dcef4c247da12aaa205d165ea69921ef5ed4146036347b14b81be3bc5a5c5cab536872c5c1c7dcb46d054b5a0ab13babdb7dc2faefac329293f1611a07b55c5f890c3e3886274634c1fdbe4250f2ef1573204a1ef74305ab149389a8c116e8a219a94e62600cff6e428ff8b978a4a0be3a28524cd06031c863f7e071e8db536da39e42c08806252ebc180471fc0059986892b49d0342e30aa6598295208764c740b51bc0c6089f53c8d533c9a4038144e7821c929061474886d8900cf5231272b5b4281d07ffb70bfc8e1d785ace02089831a6a6d435f8649ac9e1f2330e6862459bef5e789f8e5020357e6fb80a0066297dcd2e48a9c5ca8efaa1cabba9dd9b3cd704cbe7687e24c562597ec4c6f92726c7356ab3b4e525bdb7a3257f972f07405aa19ae6a218de2e98c9cbbf0e6c9a653c9318c5897d1472c0c8c7769f1843b43186c1fc2bb91b7851650f28813723e348388f0a663c7263a2592f1ae7c57cb99f3db8adf8b5ebb780c2e53ab9529151e51e2048e441d9b818b5f71b868efe91cdc02b04417a3719689880dbcc1d81d95edfaab343a20c442e38ddee64121141c547708df917cc94b294a70e9cc647c0af26a6256c988d5bd7cafe9e38d081c8093aff1d60a8e02e978a2b97845b26f2e63103695a478c8c2161d0a3f421719414dd87121c498729dff0df521e2658610cec2cbe1b3bfe5c95acd9a30b5628f46a7f2ee6958cf87ad90f991f6f313023908c18e314e6dd86ce8b0fe78213cd2c7ffa52d02aaafa8dd1f354bc6ab8af4d709e318ea6dd03a34a32bca1eefa19a2403853718f03c5f5f899263d8a110a07b07b73313232b56d8a7d47c7dde4156e1870317848348857af58ddc80225744bba24cec5b7d5014fcedba448e80f5b044df26281160aa27d594d07706d4beda1c28778ed61a9c65f2f80d8ad435740d84c085ca761f6312767143ef56c6dfb03928aecd1c3d9f96b085ec6db2e98d12f742bafe36f8a15f8375c148b9e8db6c50ab9b44f7735ddfd3bab6a0437986ef2c060b34320fdfb9ca75800226be20fc08fbf050279d04438da2c4dd1c2d58d593810439c412ef884550e6ff9ca16ab71254b335c02a52be79033700540dff436d6822d2e4ad736f12d4c220689ce9ec8bc7a5e07ca2729bff24db3acf0bce65c90a824f9ad796185ad8feae1833ab54eb9b70e91a3de1e694b0f30b5bc8293bcb1c0eb3e652765135318f0e5595ffe3831804f937d41d6244a5b0cba174058d0f25c73137ff05ec9963becc8273a4cbae3a964f906ea4159db2df79c750ede0cdb08838623e05fe32e36256d86b727610f5ce485a17118ba6d83d1bfdacebfb7f7bf538e962150b250a32552f9a94f633e6c71b75f53b84260571d4d667fd64f3f27063d2d24c4ce54b0f090eb2c8b88b0a8c6ba4d516c2b24452b19bde3d9e689bec579e8110e3ee67948d33d807399a0924a757a51cb582f1cea360081bae38b7b2e278ddcb3d8dfc40a9a387b7dece0adfd9c8a7f41908a8d427c17b1d6595b0603115997541253a59b9865cc6cc8426967a45d321eee93d0f15f07fd83a2094d532b2f3d441c30caaa31672f3451ed2f206f4ab8de7731f6e58bbb633aff33b93bd5a3cae18246a8540c1d9166a222960035b1a4e2fffde623a2d567795b34b529d7eb233121e62cfa3a634e21e0fa9354de13f3ba3d7b834ce44b26424900317789385bd29ba192eab2574ca13616000f9192b1854ef3b0d7aca9ff3721f6097d8f019e2873f58ce7133063b3d18ea24a68b18f618229614056a39b91d0ce5ae651dc0db56e8a18a103a7264d440802aa0013e58f1908e5bf65c3b3ab0692f331fd08eacea6aaa18a00bdc7d054ce4d64d3bad66ee9e1d20a7f24897268765ff137627cdea99e00647c22c3240ec7ea650e27c95aa43fc31a70ec702585a4e23c684c89f54f216c79d2284cec9fcb52f58cbcfb071022a892af658fc091c6b5e4283e2a0a816b681c9c85e2f4566f91ca8bd1e30ef09b57d545764ba580a2fc90f2895382836b37d611f0de88fb2a1d6fa4bff0086e98876c675ab372e3677e37c6ce4dd5d1b16b7f2ab72bbf3ad640ac464abb00816e22a31792c7ab35cc5f9abcef3e95062d0a9afda1b58a51f0265f520f25a54fa8b2dacc6295f8aba87f15c9045325dbe6b30b84e54c47c7a9421159ec3d0aaf0f3da2cc712d76891a5b58bdf9a320b8b34025cbd998a0c12805b0975f8f515d793de942951ac14e9c98caf8ed7de1f25d0d7947edb04ed5c850ec0d798ea332f16edfee3e9a521083b7bef331c4d828f192fbdc52127cc46e0ec097c98e5fea94b20f43dcfd95690ffdb2a5550838b3b8778f7b3a844ca8a876bc9a02c282f3df441bd673a61122b9613c10a89629b4ae8a4e00d5637a50eee43e42882e24985a60a24a3ccbd69e9b52b1a72d9bbfa787a7a6c10e2aa25be3c94e64ee1119eb575fed07d8d53bee49fe6819660f39c13bf740c0520a433e495a37f0782d55f58073a73d3a068f97598a63c5028dd37a9f1b9caa638d32c5dd5b243667e3a6e66c834ffa1ff1301d2f6006d59f69c7773e2c688352d7bc497406fe2bdeac0a8da9107c2dfda867e0fbd459b58cc06dd4059eae5ffdd0d3cc8d23f32eb0df455b92684069e31785ee6c1032c46c4735d8073630d6126c068ac6a0d67b4142bd58d4d58d27440ad3b2cc8a63b278230dce10211ecea66e38c02b0c7ff75fb519484d991753245327ca3f0ce45a328f6ae7d959659f55eff252de5646641c489aa2f07ba0e886097fb5379d917f41c5a1e792cf27f374722e37709d9e795697ab001659c5466b65347bf3227a97abd84e216c793a3acffa6451685d58604e025cb68037fa1b6851c8f03b61a0674d4fc7b04dee327f29e870bf560af3b495316ffcad2541ee8c15a42b7bc97f01746cd8fe122e1bdfd6e412e75ddee9c7f97892d96d6bd6c753ab442acdda456dd777c99605d2d3fc0a4eefd978a76c7720c874965a4ed388de39f4900fa80771343f6aede2910b89db7ebd7a02df8f1bfe523319b60cf28b52d2fb7cf4dbff4649b92d07c939ec5f0d6a5348cbf6b10df0797e34141f514bee887a39727346fa6ba7c65831d6d09f80d50fc1ddf05bbb8f7087fff68d01dcc366e8188e7dea04a7836faac0da831f532f352b5ca062163d6b016c5df4abc77669f8a80805bd9f4d088babdffe4145b747b2d448fad3d73323c3a233510079855f934d37950fd419fef008790d2cf7cc46b03c817d372e167b535558b5d76c626fd7894cca18b84d5e380df3bc84cc39ecd21e8546444e53bdf86eba131e555d4964e191d72fe31ce0cb63db26d958feb00c20c7cba2e53e065ae1607fc299f5010c855b3cbabb3a43466281ac1b42b348e964dae664c1c497b8b5c5a5a6726d4e62c32980c05f7b20df7bc4b67f34ab01f20472603c10fb2cdecd5129ecda9d2fcc903be6b06d138c9026a36ab3aa5636bc819b16e848b2569446789f8c1a408e5baa9f4d9185bd6068cc9809a034dec868b0dcf34a29b4bf82302885855340814f3946f4a103ede4ce71c9cd5b758caae2ae2a9eaae150a5f22fdcd93c71d8bfd898509432781428ac8dc0e105a94c4d7224e187902f86d316e1b1ec822f67abbedb941a4b655129897eff71694f8c4b943a48111230f06b5e4365bd815d3b2acf4e4fc8b55aca74e7d66e25183cac47d829671a5b4709ad844b8028e0c5669000081a1b71b4844897693405b1b1c8986b36b747a71622cb2e2367bd76e270b381a43e83aea79e9b9d050783b01f5c8d5ff6156b2ccc8732abc1e0d6ced5d5257c5403a3f13ba70250996fb9ee75387c504f0518e58482a03496241e1d82d99698648a576116088c8efb731ecea805ecc24e8a67ef6d7509979de8b8f0edc6c6a06aed97d1ab212c35ba2215f3e0cee575e947fd99e2b089aa05af004b96737b5809a9f92147870cc37dcc949bc7bec032acedaceaa63fda2c7fc851289bff410f280beb05a7f206fbaea98eec04245206dd134b2959c32c4265bb680812e7528f1c2014d700fcd033ab29ece7a6d46610bb0e21f612911d8ebaa0014d41b8bbbbb5a6a4d40871c3753110d3edf7fa44ae06991618bd89046ae0cd275ba171da666b9605fec76bbe0cc1ecd1f42923b993b7500116d1c8f5b2cf6c9787b12bd237a1b5c93ea482214173699c358a4f0a462a3223e87be0667e2095b05eb75fd563b35827e848719a6b26fed5a7513909d67d5ed0c1922a85addbbabd16bd5c6f6fc344fccbce86c8785995012942e147b6b01ec97d4473ab06df857f06a74ce314d14e9cb750d8c99c2332279b302dba6aba8d0186cd9f29361d6c4829ec5be18c0c6082b366467857612bc6679cd6a9da2dfb58ab8621fe29ce3036599497abec33144fac42c1150f0e628b36ae1372260dbe3663268f52333989db0c3c10a360fcd2a180bfd127ac3adc733327eb6a20563ffd69ec1f91e237f94394df8b4ea62a34042d7a785c72adc8d8bc64f367b562d61f5225b20ca319f052be1844e56d0e6d006241147de9e324b5015e2ada8b8e8ca95ec19d49cc159f6422ea4298f770158adeb1d0b9f2d110722d6a92c8a5c4d2d708afa2c577c452c805d2a51f5d5abfbac549817c776749c220dfd636c5e43e14f79ad1280c6f702a31c3a0c45cc809870fe06d1a964632cc0ad82a6808cc788a4dad61fc2d8610d8f9234063b1e93f3f64d3d43b8c4ab4beb11250a2c155ecb5c430885a6756c20aacb9ce1f71cafb18e9d3ef6a13f2d116cef53437d434cdb43e97d807f0c2b1352853465fc3cba79c6c2a00bafbccd7f9ffbb257cffda23bd7ad0a2ae6695d2e6bba99bd0f282bb59cfaf9f77464feb86a1dced9834f586b7b99381c020fd932e3a039c87c8b50564982216f1ba33999edb3e21cdabf3894844b9c3e25df9d0147d13c0121c18ba254b07eb9a49515e19fd6b833b0e3f7e3b7bebdd0adce8a116c383c065a8add4ab14faa23b932c190ab1365023932fb3a791bd2f5a710876ebe5a3a296300e3bc848f898c7f69fd05d98c6b16ad9d591cfc614f8af37cec53a0342fdc5a944403e760a468259419f9d78bb0350fa48216b2c719f0d28edad91fbdda89131ecc6dba4e6c6c3c88906c0734135f791d0a9eb86e4c032139c48b36a67aaca655b235e278caeb7d733dd8b8a516ef42e171a268a65378f9618b7529a8ebdc37108049fdf0217498ec0b05c73d083a372f5053c1c044991f6e8d7f5453a6140ab081486cc155681ec4ded9e7a2be4453080e899d0e57fc1656429e9a5f42883e987ec9657c3b12c0027cf016ac183db015dbc6aaa43ab1aa05ffd74433ac1dab744d9c20b9ebcfa4bcf9dcbfebe79ae1a230649e60fd4820a7254e45e83f5993b1f90162d8c0e52731845d8332ee4395fc50cb996956fad060e62145e3e148df7d7d9055e0f43fae901c109b8a395a5668d6346a8ab27f8d35020498f84d40b2681888be42f64b359f894cb2004bdae4d1a72d7b66f12e32adf24376f81f3a9614e673a2080340931f6a68d0288249839b11db3f0ac0d701d61c169ece0c6bf2a0028c80dafbc431e5f71df5d6543a8e657f62596f04d807fd2934c590cab3f9f8aa85b2f86aca054efe4e026127564c35ccf6008765203d8e60b64d30cceb7a4aab2feeef1f6b5ec736d476b1639a33ad23fca158bb928db7d6163ad1ca7aba4db24a2121f0f05afa3af266517244eee33ee1af5e6a88d3a67ac153a0aa3cd16a28ebf72a18665ed2444edd11515fd8d8a66bf436ea46887ca1dc9af519dd8e50ba790c0027c144c4dddfd495d51425d520101a512f3a1ee298176715786bd1bfc4e2faa73a143713f45847ff96c836c76f535babc622f2e9b8018df54396e42dda8a9b016f21ff732ab1e57de1d9b077df4541881bb51de0bcb35d9b1cc163d22d3c5cedd245ff880ebc3926cd736872420df6907f2582807012cae8d4fe3d9f33d7fe113a8b9cf016323e90a179085cb885a692f17d4f9dd357a21366c9ef62b3a25d786e76a76e938d2e8f0c239d25ab6f436aba29b00c57919991353d60ad54cb2e9f8d42797f4faa476c2c446ecfb993e06dc5a03da61a67d5c304e425207ba3ec1b4bd89a2044a5f535ca4e151a1273c6235e4daeecef32b47dfc4ab28c2684a25aa382b33e757ba0220dc9c5f9c38007520e9f89bce2be189081b048266adedb6e6116f020ab0df56552116db36d9724b296592295f08b3078907b7eb29a58ab27d5b8db27d8bb34179ec2f4d4c2c729104ea9756f373948c4a5f524529a36a64c2285511f5d5d0d713e60fe4d5822b6c3114ba1680d022346c398aa1f0a216934ab4a86216fba8c9573a8a40812df65593afa8912aa204c53e6bf2952bb98293c5becee4ab1a4a9490e162354c001484acf2f9c82169cc3499dcdd3f764c58e7f0b54e151b9c93da9ad9d1d5274d3d690dfd2805e143fbd5ccdb20886b6abcbfde0a7ba670da9a9a3f89f6f3f735abefe5aa73cdaa3e8fd27f7f411ed089fff5afd687b7ec7b27f678357cc50738cbda6f35c11d48b1e90a877e3bce31a15e87353dd14ad9e511aca4f63fe3d067e5919577b83571f95ae7eb6c085d3781932111218810b2c2f0260621f85459a13752d04aa5da1b1a6c673bdba984c063e39a04dd296f08a5ab5a41e6aff9b7b39ddbeba5008f8db33efeb2b2192effc0b3258560b4e0932fbf78913572dfbec8208760a2804932c15801a688ceeef982281240a45ac97d7b81101de4bebd808bb6a6dcb727a8b839a27b01038ddcb727b29073827dc3c1d83298fb761404d83b474e72e8accf3b1951ca01f3e1e4be1da13199a42af72dcc4f066b1ca4e2c3bd130213baa424a43c8a80a809a02cc50fccdcade3cbac0921acb0753f34d038e677252bb9c0a39c5d2ab61d377cd727432d548a90b0d0f196b41102a983ca7a6c8a764c982b876dc74a74198490868a80fc4505ca0ea9a3fefc9e09eb7e7e08229830dcd1ee9b35612e390b67277a4c95021ee5cc02d1d106d115a6b6dc00a8e1c194933aac2ce7c357e9c7fb9ee9bee99aa4e98a9ec9640a52411e1308d2fbcfb4a2f9f3569df7017556f73b3c0cfbfacbfbce248e9e78bba7b9410fee4bb1edf7f4784260117ed4173e1bf08cc003e8d39f0d70567fad629edd82ef84fe0fe88cd286f3417ff79e67f6dccfa56fad2f6bfe1a3f84faf7621c86ff2c96ab9354badac45b1356a15c7c43fc21eb5d2c2397ace5fa638e3c86b9869d59ae1cb986305b550e29f1cdffee8e92bc42e640004b07cb597d83356fd0602319268ff24b96dfd9a892f9dfcd51ca21c3a07ba5873ec0602bd6bc29a2af5fda031e735433d2e808577359d610098f398a5cfe9a5656728190f532435213b32e05207254a850b1e206a3264d9a2071ab6292f8c9cd44ee9b971fba2b88f08873289356484a553ff677cb115afaa3ee518fe768296557918a16d57f5d2ac0b3f610997e05792a7db9a2b5b1645a6b77f7d7f7eeaededdffb48ab54b60d145452e4a5dd4455d7462812b964ffadfefa29e0e6f2eecf20f78ab1302f774dd0e97cbd5492a527c468a7c1272bdf4fa0812ab00df2701952593235c8f5f4a29edbed8257112f677f739db6a415d3e9d738a381ebc147d521d1b4592175491e7742470c9a7f678c1d621a1768a9016e6519de242d7755dd7fd40f9a182a73449d20386202e40228468e921072d55f2887f052d420040072d2dd800095c73dfb470296ac1109d25b0cd7d2b134499150c418262cfb3f072dfcaf0406d5bae1cd151e18a6c03293f58b1821fc4b05498e18725703f102141c136b9896410224271852d86301bdcf0979b280625a2e04243152e3ba0808b9526b804c142855764ddacb656df52c548adb5b61629966c20660b1079c438fcd9c0866c4a81cb5de21146e5be217124c90d3a346ce2618328d8e4c3063fe01a2100c002125d44227c0a93c7c761725190e8c2868bb200002e10330400255c8c8891224887872e6210d40518a12e8a929e9499254d215226c90a92dc5012113294c92581f1c9d13c58a176c499aac30ca334c87d1b93452ee5be3171441ef17b9a30946137adb561a4b4e0480021f356cf80a0610dc084b9221a8501228d4d831818cd02400486919bc8c8869fce6db5b6e2806f6e2214a0d1a0086cca4d84822a64c0a5dc4428882208bbdc05ae00059212169c6985323f1ed2a742912b44aee483a423e28b0488108389cc60844604071f19911e5a1022b2029a0486082252840f04b8a01161c24702598e888c59220121686f63266744124ee5268262850c8e919ba809241b54c1a8dc444ca0098998283afa5b6bad9d49706981258f39ac784ef2d84558f2d846fda5004440dc829861899017abc319295d9e1f063992040e3a48616404d782d1892f678ed8a2ca181a6273a2ce10c92f72dfcc982941272b7254e488ed678530b8d90750003139f2411899875cdcbabc207767b5b55a00f8609cfb36e627002ce054930d9a58c19d588f6432590b754c10b9d6472191cbdd6505a3ce650d62c05feedb989b0e164c73dfc620a141122ee5be8d5902cc6d4c9800ccf0cd7d1b538695466788508669a488a20115296e797c2d7895fb26c5131b10c19ffb36858ca504ab72dfa600d2c0093c23f76d0a15dcc81c890965c8059eb96f5d923c2b8d171c32cd7d3b534536a50a0d3765089fdc942e46829ce811046d0a99244053b84862bb516921490f9bec16851136acc818cbf5baaecb017751b513d2893ad0a04406e5a6c30f2f0ce9e0424f1533243d648e9018e990850b3d540ce1c87dc35da961011345413202ce703d66396f751e2f9692421129478ee0a4c460a44711231dc020391264840b38294034201da640729322e4d383852029b420295b7c7a20099af5f09149314ad2c3884c8a14487a1c299a02290a57d891f184586bad3df30961c11821b3cc4fc6b96f6586542f484d88908cac1324d65a6b5b892998706285972356386373f862a626851c1cc9054cb040bf0ca9b5d66ac150b95cc05c511224851b9828810222685d143179f87274b97cc139d2992a55e66c92c72ea2c136cb50c9796c3373c809e82b0d15b4146c46358c89cdff817313d1c0247bb98968a8795fe8a5a10c711624a0d0d0a98b0ba628b31adad10b5f0f32903683164a27a099841cf1a2187db72d66b8506e259f59878221efe705db43d17502439d32ebaed00908cdac1149e6507d2289a3c213d86807ff9550b0f9d37f5f8e6caddbefeeab09332929294db6b6cbde571366b6a209521c655257bf412bb311a3f8639104a7077f823d4e228e0f50c4b140cdcfaff9696bde411fe0685fda8eb9e7a626f2f39f88726dcb3d24858ec636b262455af1cd59df1562ccfacfe1723d6047083db3e53286d1e023e912e96b1d9bbed17fefa7c0d2a69452ca79471615c78b270e372fc6e1f04b180d52ac60cb1122908e880501420b155db820459520a29804845430c392e68a12601173a22d643e45d8ae60c12de6e4be6dc2ae782ffeeeb2de725109492925eac8a3662e8eb548a64d198f7ba18e0cc9fd5548bf50336739caa8bf9b4beee7d1b053ce000d6b1dfd02bf7f01cd807e9dbe6f9c64ff1147ee1b205a8753e41bda6c79494788c39fca584a2969a944c11235599047ca878247f78df134cb6e43e377b85c39c979273464a9b4c34f3467810e907f4b349fecef957e87cfee823cf2c75291ecb22b35c9b0018fa70af228959e478e589af13436430482428c86387a28239451ef14e919ef43a2e027f2b19cf7afb3deb1a935502b2f1e84867945632f91fd75f402fa65026b4eefffd361394cfdf865d4e3882815a438bd94170e0d8562a40ed58f6a365b386178bb5734ec2627718cf846089a7caa9d4e37b4138ca2f08abe118226fbc3c0f91b156ae6af5a431de957ada159fe9589512dc926cc2bbaa14d9877345b52877743bba1e156155c756f5addff56de9756f76745c9502a8443a118198af94aa552a91476e970e82637613344554d15260fcdf8d1465439e951559bb1f2986a06238dc4e15fa240c39029197f3a9d4eb9ec0fa368c2fc61c0b899f92b1cf29b23fd0a7f6896a3c45106c68171a4829126dfd050b39ba30953cd6ec4f047ea40c9240edc84d1106f7232c451460c31bca570a11987a96a530c715975436f31e4af5aa459f2fdc31fa8155a1bf9ab6ed822fbfbab66130682aa3661a19925b254cdf2bf58d1a1be21efc42b18b9d6fc753373560dfdba39d22c7f47cdb2fb511e514645137673743461e16db6d2481daa1f89c3ffe6a828cb9081f12dbb7794553fd9bd34d931c618cfd88b558c6cb3ea7c9343c96e72d9294a967dc637d843d2781aa3312367557ffc00b40f9a25bf66c5a319d00b681dedad4c1815e64c9c8425b990b2e754422ad789f239a594525a5dbaf5d58d4dfdb9b1d2d5dddddd8130ae35efeed3d81581a010eb44e935a8021d51f1f5cb39e79c738b84d5da6c0df5ce7c398982c892e62ffff1176d4929c5d126dbff64b704bbdb5795569b30af5bfd30b0424c14441c618158ae5638800284324cc263db8c5cd255556e94d8e80d153e365b82f97689bdae92ab53c560eb6cb5f592c163db8cbec038f0963c9a30d66cc90993dd41d561b55ce100429717e642dc84a1bc2561d75bf273da02bdb0820df0a2beac455ab0f4708971010b70d725007e0394be069ca31ed92332453928550c0d0d592a5200868aa0214a2ad2375e1c0fec132531949b2889a001e426f2c245be26257cf2e7264a824cfea869822b2a410804a975029d4d3583a001b5f6fd4df56fd5c91e78f60f0107c62039ef7010ac1dc13ef540835c3fb7cea43e9f07701325f125895b96b7a9f7b65b27d75283206890bb92f7d2ed774fed77ad93a9f863f008f2fdca3924f3ee0e0f4b28bdeb5dbfb9e21a39c8f96bcc81d4fdfcf90f78d3b549c16317e1fc35e777708b109f884fc427e213f189f8447c223e119f884fc427be43258e8f98ad3fbbb8429e2e4435b000c5179a9249a48c3d43c45a6bad4d61859a821121f5b645d592826c051b2406980c01c40b3c1019828cdd21065bc22052a021a5fb9c7352fa4fe031bce1cdf1bc1c1d8c39387056a9c61178b4f1813c2693c9415082df6785c9bb9dad269334758c1a1e97f2b039b4160cbbaecb41392bbca5ce966a89964aa55269964a2597a50064298e1dc82d62379d824e412728fea27fea3f0939ec34c4731a9a62a6b1e4ce052c7f3c0d9d864e43a7217f7d738aa7a1be711acaa7a1de691a47537a68a4ec20b5beac3d6ccc7e83dd537b3db7a13eb37c27f0e81378f88a021dab0f4ad9c3c6e89c52ce29de2c451c1f34569fc6aa0804851815efaa4a1933a41362c516e9be7546559109872cafee0dc51618360705146a83e2094f280a15bceb97a38a031da0ca26282077df38e56aee5aff44c6ab7b6b2024a6e65d53a9543bee81e39473560c3ee941ee886ab45c5f9ec8ccb06288d16cd521da8117281dcd96fd4b0119ab43b375ff932d057057a30064b486ad866da6647da3fb942c7b976ac610e492ad6f74df5d998c85fc811b76a7dcc98cb3aebcb7bb4754e452b793a9223246fe1a4fb9239cbfc6539a9497542adf13197f55a00a5bce5f66fc552aa5397d391d91507afb2731feaae208f26b3d3ae1fce562049c6577e458b99c6539b8b2a87746e8af7f9a95667dc316e0063ca60ac004fbaf0a0084fb3fe993569bddbf74d43b35db2f19f50e2adb3f9566bd132346eea2191925d437ece7cc00cbf2982ae2f169d0228e07f54928d95816849a55fd6317ad6c38cbab7ba7684432e4bcab0d578ede62c35fcd418e099b30fa3968f302c671c08c9ccbf7c7ce77b6eee77096fd6e55322a7d71960864268b93007cd377a5ff1e145326f1ce56f789ab6a942a9a2dfb58962d96f9ab66fb784850b68f67fe02b37d2c84af38ace6ec632766634e1eb10c28db2a79c441d9764537275c90474c255b1a1b312ddbf702ce52a97068dc9c9c193368d0a851e37fb50a4526f845269d08254c186ea4d92e936c41fa745f5d1dc1a3b4cd58e37c405f7e6769eb9dfbfe53680a55b917e32b6dd247ea9057e4159fecb1ef9a242da8260414649b57862695297445b2c0a9d738297d49048242cc13696db67cc0100832b3099d647f87dbbaa240ae33a929fbf7657f11668bc9fdd586e5cf4c935287335826110d71b95f4221612f64cb1f256133375bf2d5393e9b21f50cf4591058fe472795b12ed110312e1862825cb10c204985e12d5e1b5cdac10e331ca67c7901952b313a6999d21799524a698d14304535979b6e926bad8f53c892eb872f642215a0c895556fc0c206238e48b18508180b6589101bb80821835780040994ad4cff9ad121d3af78881213986aadb5d22092cd32fd795d2e4ff38296175429728d1b4c6504a0029673ae8e6c734ea05aab6cce778265fefaece3ff09925632ce9247f904cf682652df702ace9c3871ce72ff5615ecefee2bd8d1467cb39dc035f73b1415307d997a197bcd4fadacc7a8e84252f420988cefb7216132c406784bbea418436c6fa99cc0336709c509328f6dab53404b9fde8bb105b24156969a1fe4acf929d10239ab2255a49ac65fa84ffd34001a4c1fc523f5f46d502b8c5a9d50ab1ad40afcaf9a50a90e066af5e2539f5a7d6e9087d2fac6fcfcf9ea2b79ffcd8ed6fadffdecab6a7a5a1d8012abfd0d6418ab13647eb11a6b973cdf6635d6139c5623bd62a45d323dc114185c00c5c4adb42499e213c7799b810d30083383e6cc71d6761ef417e85e8c2d50ae4815c966b1376b7356cb09fed183ec0c561013833cbfa2c15656919c355b55f07891b2bf0738dba754ec89f1e3acd58ed99a6f2bad398b36bd30ec9b632871e636dfc9077384f9a3e421932c8e07fdf579f4d7203c286f498a3d29f02b09934797c9de80c79b77f8beaf6175fce53ddbe994f56bfd7be5acb56da5558739bddc363fe59c92fe8bff7dc3e50db27abb3776f71aea5d7c1fdde977779fd3bbbb59ceea3fc980a5bbbbd70a0359ebb5f536cbd25b279d975edad94ae9ed6c8da1a56c29ab746aa9fcd6b1d445da37baae3eebd64aeda49387f77cf5ab7e975b7a2f1f574fa4d4edfccf9abad6b4933ba5d359e77ce9934ee9758e40a9ff671747d7cb9ff53a54647dd6999352255feb5c1c1fdddbb722107c3b1187021d0b674be25802cb783bd68943648c888cd9f7e995cad00465591b52e9acf96bf690e50f91456d082f4ef2d7994420c15f7d433394e59720ab90bc698194a5fc5b8b5c90d1649147b9a491e4900ef460769dc9821f481dde48362a8b95a5947947cffd2b029131fb41625ef31ce87ef73e6ed7bdd7956257c471b1e70b1293669c25bde640b325345bf21dc959f259437894485a60ffd16b35281da3ab11fb905c12b329c223ce7d84307ff8cbf290e56fa0779a4e11e6c4e1449835b7972443701cb865221bd7410e2678cc3165a619dc56ede7a40e9ae553f9df04ca2228cb935c161a51fea6e99685508e9123e030184864b2ec6844e431472e8ba43c7696b791e5d3e976f59dc9d9688ee6fc65864c9631a0386c460b918598a214f2e8b59c10483ee4d19b08b1432ed3e92da9a4c2e0f9267cdd46a5866a48d5372c7c328c3c5f8553997158985365f157dfcea4f16294a7ec863caa8e72372c80c8a38a8cea96e753e9a9da29e72edd671d0d5c0daf9556876a16879584ea0f0e626a931a5485ea152a1d85e4af51359492a1d2a4869470b7841b554d54405c6eba509c599dd5220dc337481ff29cb8873c277692e7ac5982805a1ab8be313b14d28dac045beaacd2fc35a290aa4ffda94729a01450efd49f2a26797e8b630d2b4d524df21c6f8af2ec12945338e449554329269faa15e1ee9349f9842bd6a0aa6ea5bae2ac3aa3813be54e66301086e2302c744a830394120efb601aaee1265856c28d75562253324357fe3470bdd34675362bb532548ffa4b2b55d06ca198a0804e39cfcaeca6a86fa46aab546db6a66a4865a561a69faf1aea1d99a7aa4b9e2aa2ac0a22cf47214d9849547d61581251489e6a088544438a3c270d1caa081e53b5a13c5bae543ef48d99aae599aaa596f8ab894af025cf4f01f92b469e9fbaa5bc38ac02a59ad4f2540d5119caf3e71151096490c7942dcf7b44cb636a4b2a28cfaf54aa86fc359e72367f8d2a1f5457fc35bf3cc9a32a4b9e72e57fcae5f92a1f7ac77fd6b0590f9b38bd9dd3db65e1c55fe3bdd7bbeb649ce5eeeeeed45dac649c356f6650b7cc9e2a2893de18d1aa52a13a75eaddb542f0e8baf96bac64f27c1815e325574a694edf905f43640524cafc0064f91f00a94352daf24ad6b5a9001541b2cc9f479697187e502cfc01c960cb34511665d9f057df64e025e70dc8e7a096e5106b93c118398319f2d85fe8745a571dfbc06752525e79b3318787b92e053a9f57fafa324709ae1fac9edf110a61a02c83d0f2d8485d7726b4e967d4f078337dc9af2fbbcec954b007489018182456f3e3eda9017b401c0bbc78f96310704582f9404e0f7ecd0ac702b3635fb2e9ed8a04271fa79fe21d6f2e597ff90d5ec0e6f1dfd9ea6868c90dbb20307dce0b4f0f38420072df7262f2155bb2e97b6a4420d2823d6009fea3f4717dbcf81a11c8e95f8877b62af8812757fed6e6b1cce602f36b7e06101eef28c11509c0c7019e33dddda797dc1c4cff2a36b5d3e79c1235e7bbdf1b864d94bbd656eef672d36c824c3ac1468bf449abedae57fa6c3cef7e66c86420f4d2414ec3746c70607ffce81b38433cead94a6dedba1f954ef09467f75b6c593207a81c1d1bf70b16e3e3bb77d83a6d67bfbdf3c2747ba7a683c808c8ad863dec57dda599e8f7a0fb87edc7d7a31f474747f4074a05958ab5119283850819715cde653ae99cd3a98db675b4ebf27c7bebf7954c603522a594b3a994ddca25ce396fb6e9fc1a9d0d9d4e9438da4dac4e7e8eb3fab110967fe95dc939ab133ce79c14245369a5f7defb750cc1abd4744550f2bc2f270c3fcf560a7625dae75df975de7bd9337ddd07626aadadb42b7d261a46f180e59b3ce95defe5b52f6fc9ab515a8bd44aa5b42fa5d3689133b269d7b6ddf5759958a5ff3cd31581b7eaa6404c3961484da2d43161a7af798fa6c3b2e1e22007abe79f26d23a5a51187be0ab23987ed7d4d4cf745a796d05d4e360128cda014bb0547adac966954a23c8dd53aff49de9360e4781e765bb7768199ad3fc67e53567390dacc1126297a4fd2c91a5fc30061978cb63e7f2d8666240923b314449c0e0c30f1430eaaf551e4d79f698b3258f3a4faf913c1fcf1778c8f3052af224faf14109953ae6933737e8528650be1f7414d97b1e9d717f5e419ed37f6de4c40b4fb8745124896e30f9de315d45aed2351da573681bc2221a0fd12b68287eff06f94b66dacca1757496f15ea192ef7592efaf66c0f76dadc6f4cd1943c662ac707c843d3c665fc6c7f850042267493a2011c57e61128be27d90d8374d1debbee560c3123120289890c4a2d83c0a74c8865814ef477c34613d17976f6e5e20dba9b664e8766ff9fe0b2333c86b697504779f298f3f7320c8d38333dfbe0cb1e266eb7eb7c2991f43ac39a4d9ba33dcbd4d19522edf5b94ef788d8ef2fd1b74616858f737f2fdebe32fd3dfbf347fd5fcfdfbd33bfef7daee98736de8c43b4ba1c4f194475b5b5959dfb0422c2ddf1faf0cf9deaff568b6eeecd6a31aa661ae7ad43b12cd0b71c457e42b8e558a7c672e248267d01624b7767f69b375bf410bd8bfb3d9ba3f7333f779a6d90e18c68fd336618d2fc8e3ffad8ee0f1ce40f87e7cf1251b382c67ddefecc1279a3065f860f954bc3f6d3667dd7790e7de7481bfbfcea27f453ab4faf2474d9f24df1f5bf9d6bac8ca036727028972d1581142452ed6897716c08a28b258c754984949b128fee37580cc126c6751bf16c859f73fd1d69c75efbf90b9eebf589d20ef97d03ba5bfdf33ef5f6c12472c8ee1fdcf66d53357ff5e59bedf3be037f1d6b52bbbc45bf7bb75d8191ac7fd7195bb86be717f04c04d17b8e6f1691edf86bd73d30596b9b4bab3be716bb3753f0c31be1f70d6b51145e0acfb2538ab3ac163e74450c2acbe6bc2eeac5bf7ef1783076c6b54f27dbbc45fe0dfb74da40eff6b9be4fb350faeec1267dd9a1a0f3083a2adf58dfb2b19f0fd3b93e12cdf9f2d265f677936615e7104194233bab8b725687b07a66f5fae7ace9b2eb0fcfe0e9c80cc064063ff033553ebe4fbc673c9f7d95a03cf29b268184a514ad93a13565f8ad85dde29ddddbb9212e9935a5bbb6dd7d15bbb7a05a7d875775ecfbd9e2d1ec905c679b5d3f94fc13869a494523a65e7f624431ebbbbfb525aa7cd0a271970d2e8c249b969b7cd0a58e2ebe49b2f2b753b6935d9ee7aa55a6b7777b7ce3951537eadb57ad433cd3b7bae1a7f5d347146ca33529e81e18c9467a43cc3050c67a43cd30417357cb97a77daee922002aebbdd067e5ca09aacc99aacc95adff0b76008465ea9fae8292a7d34020fe0f16676e5d0f19c2ff7a31c7bad43fe481cabd2ca09cb5be22c7f11c81fa943ce206b35fcc81a35511d673d0692b5daad29791e5048f1b5f98bf314cadf0926693299ac08163645c0848d3342cb63e7da4ca799b0dee216c4823357cacc90242629ed881619ca2b25159f2a1297a50160a0855198590a51144193e45122d5b28da48deee33f35a0202443e4d185b27c213d4b911bb5d0431efd283b99299bb32cafe43cce9f59cb73c9389b64c9441e5119c6771019c6537f8919068c16a2c830fe05c8034326cb2fde06e47961b344b6790cf2d860fc279007e39c7c42b2433e7d0dc873aaa97910e4a9c1a00f11197c13c8039a4cb20468881c1133fd07f298be2351e4ef4b20cf377ab961a5f7409e524ef63cef312e7b4752903d2326c8de5f90c77bd1c002946f91335d734122cb5689222ce4d7c422cb74677625370c4fa10c43d614318362ad7d6bad25c18c0b541861044b8e8598a52e641b432e5b6badb52c94d191a9162c70c956005df0889f851364fbd727c967adb5d6ba581022c415d77a77addfef2c3b3982b5ddea9d35ddff9dc5f2eaef3f821559ce9a9665edd875f6bee86004827c6b51bbef372346e27a0747ae2f73bd63a6e504f64ee8fe031227735f9c559f8ccce19c55533290b1dad2481ea1c15e7d3954c28e1f13067eadd7266b1d5d1587bfb00bb6b9bb60991bd737ea874d60f07b0231555101162a319388674be2dc2749ad2c21f0c8c2e9a1dfd947f6957d21d96be3701b5a0ce49cd1965b602952ea3fa5fc2965be4eb0fff7620c9631e624831c424598b398cff29ce19ff827029eeca8d4ed7536390915d148008020016315002020100c88c4228140304c4355953d14800b6f8a427256329a88a34990a3200a628c218610620801c620028c61c8880a046425625ea82148540a432d2cc27522749e572d8688409ae5063d1b5250cec8cfde169de32c92a227a03e09e2cb50b1a39589c984a4589552a04e4271ee854bf8e5d55090b5ee4da62201658f180da186b4ee19b7c0554ddc3c68393638ed5e0a6077bae3678e1914e63c91364210a69dcbad1586197febae8d5b54cd18593bca0d2ab3864be07a91022be3033a79813343ee671f4a45c273be51481407db1b2c81ee0de913b54b33e32ef52b104cce1350fb29a7584c0066dabfc52c32cc4b236c1c2fc969c0d2b9f14012a1397061ceeac80b0c3ee31c9def71e856d28c423cf4a78386907137594cd9b8cf90a1616436d963ffab19c15910b7aa630f3815f481731809aa6482f7c5c8b17d1d68e1f0dc936e3f1a0575199c9e92ca2e5bd0f5a1b19f8cf59bfc078d4a65103b05ae36bc9da68db42497718f8b89d1038dfbb1306b3c1bb377593ce44763f906cc0439b619cef1b233a3f2963e95aa7d62f483218b931a446857175ceb714bf754aced4a89b767dfae24632370d712709b424d7f05614c510d84a726328f2ff949ee5def49eafa9b202e39f341d522cd84b23c90352880f6fa3114b5e4082d4346a34ef1c1efe7231dd5a5b4a5eae21a7e2948312daad9dca4efb6e44360687b8ec5b50648f10b2deca2b0fbf338f4525dad70f14d9684a1487ab9dc7d66c48b7412bf640c961d79cd219d8ee436a2bf8e2af48b1d59915974676b7f9723d024dd7ab6845421d361b02ee62910b275edf83ea831bb45c880ec4cbba5d06cb21ad216a99be601510dd00f19cdd6399c489d4ada0252970863ce52309264ed1b8a4151d92ed1476d08bf7a346f2330bafc078b76bf3241c0a95eb829c0fbd5be25a52b86d209b05391e27d120ad844ac75668957c212790d94e17088f382e06a95e29feaea4718799c37ce03c1f8de05a00049d4909523496cf710f109300242563d946f3a9e902a724176622942cfdc4aa3e8b4c7b76a17fcf344a91dae4d0e7000e065aa97c023aa9aa154fb186d00e26bb86eb00cfd8d3b4f1d38d4a97f3f7daba3ad8b2e465f522b56094bcd8c5bebeb658b6b7564aacaa4aa3d6a065e5215064cc6b259925fcb8df422da0c59b76fe4eb4480f2dc48afd9d62389218c36b9938430f565b0d4ef0303b4e279775cccebedbafc3b0aab5ecdc201cfce7f36252fa9dcf427008d5d34a17648bba7d3226d8207ca31ac7863a3ad4678c70879616f4074e0f2da1ce366ebff942b5588136b9bce15a70330a6e872abbd3522defd55d186030b13d640c14175793c782013dea215b89f8dcab77fc4a2be1e09381e8e1c750e5beec8e4ca4597da9427c0b0078f38f0e43f76c41a4c9b28fd2f40a46bfded002d2dcea6b09032e2be27c25734f5a768e41f7851461aeb75c2f84455752f7ee0bc4dc8d7d2680e3a80970206c034a6408478436703cc5da947fc68720921d17ec3b31b55148a01228377d6fe364e0b0cbcad62a120c6fa4a39db4a3c7c3ebdbde8a9a685e0f4502082d85d739819838acc7e61f2dfeeac5f2581938960db302552a2f52b14ea6b773a162f392ad6373bca49730d2729182e103879049cd9bf798c8d9406dc25611979837d53f3abce1cece1e9d42d9e69c09ba3290c2ec45b875e0153f4cae0e0b0ea301be1e2a6be7bfb0cde3caf50486177b905570d51e4e90d4da4d48775bcd7c5726d86c79e360d53ac8eca3cce359b670a3c6752f556566ea7cb416d6ce6ab08b68612a64544ab2ef5e22d1590416d1179248e56e7e209388ec854dd202ca60c68209cf5bda957bcffed1636038ce731769acaffe345c0739d95ba76b1b6a060e76c2a776eac44b2c07ec4c4ed020e1557faf234f4e08a600c2e05a72ee213e43eb2e5bc5cb4b9d492fca925dee29cad16a6bf1e499762a0e7bf658fe39e3ed7a5e79602cef023ed687acc88238db69960a18af3f2fa5dfd488d3a68f675a1a8591e8db824d3c1a0613d004bc8804483801b4ac8731132b049441ca1678a3678c59e4e52b07826388d72b1f4793e70cb2148d52eed41d820ba95445c02d5a40e21c7a62876477e1b7bde754943c9a4dfaa14d7d30ea4ed4ff920de7a07345c1524f00ce4c39c9c01f4eb824141b45248614d37f3c5ac4300e65d8705640aeacb92d39f2a3fc57d2c4f3700bb680c51e6aea8404e07f1cc772957cd23f349a0100410fcbed6138035dd6e1c1ee282295304aacc652187b5a448d0f6f4e6ad835521a1c957031bfd926cbbcf47f3d1d73a05f31037cef646235b70ddd42c03b57b3a4c8cf49d06d8c0129836ac5df5eeb5dcb15a9b3d89ce71035e4a657abb09f32b1502b6e32b2b6f7c31751bd4213a367a340eca36a497ea45a3786021820de27d9c74428370ab110aa2839a2d5f810396952f5f6e46140fd6e13820103737806403bd03abea76a473991c414d8a31664b0957c147dd12175cc1b9e4046bc777cd9095d7ced14dca3cbd418dd628bac2e1fa4e540554baa754f4d5188f04a7a287f9d648ce8cb52b91459ae4221cc4e39de593d72d587aaca2beaed99e7ac2ff1739027b6286ece2629b999d3162810e9b522e53a8a1b979542aade73e6cda35ae2441b26c3e8922c06f3cec16a10c1b91bf6ac01e7da8fab1e49a1d40e94b376c63eb504b8b6c1a097c96b424e0b378d63a0c61430d2161fa6393ae6420501e3a95476922e18972278a7f733143408550e70ad14680c0ea6db4188073bf3398cfd460a204cf6982d691486ab2c3ae34a45ae2348a10c71c7811b8d29b2317375843c20a66bd17c58b144d4111ee89e61e429e92b4e19410710caf32c4113e16d0b96624f5132138627537ae18be47c68d780dfc6c07a1a7064a9eb06132ba19a41a470c694431f5a8df9909f01a8e8b77c8c835c2b6a9d1754d1f6e515fa090e90bb828067f97f11fa4e5563913659bbe744ec7e72600be0b4a102f51232532a1109c61ac9b40b8074d66b68dfcd7ed229046659e33406681e7147cb5aaf267f1fe8b248c015f1d0dbcfdf7eba6d97979776b38bfbbaa1e798c169ecc1654989480e0cc958d1f6e3e1022af836eb49949c5bd2a123698b8b346a1267297652e660cd7592a751341a7803ac04856c9493fed652bfecd3a009eaaec8f6fa56c16ec31acc0f5a390871ca9c5cf459c60c0e76f3706432e8275826701b4433881a1e1df2146d67414950e54d87d4aba6e11a22b1dd59ff18205fe7d9c3b65ef0d7461f3384e8782cadcd38bc49883f5fae28d48727b0e0b5f9fb632f5c5c80499a220627c825ffa4813da5a79a678e5d484cd238b5789559718c29217f0c4716087484c51e9aa64721605d322517dcebfb848f44ab08f7eefb2703ee8c5cb80f6cf59fdfec5064bea5ca62dc56b44abfa338a3ec676319a4474d142b544ec9495e1031ba1e6e06ef64f24c96e039f83943e1b77385f3f43d9fbaa152b999166816005559c93bafccd9210615489fdbe86001c26a9d4e9482354c8595d2b15b70af051cc39ad8247ecdc7f0815bb066ec99d20e73ca6fb6f79ffc301655a2169aa8c804f8ed31792dda3693ac7edd7b83b99aeae3f3923b5654968651988de6a170e73c893495b20e3151182f9d1c508f318b2ad74fde1ae18ed217d9ba2bf9bd8249d953f0a8555e169a23c550b27514569d4352f78475641fe872c4b4e750751a680540ecbe35dca8205d7dc17361dc673810f57567b884776ef68b0e7963e309875db5ac1d48dce18ba718c1cb40b4a117614978984daa74071d8ac6ca986154a197f4d4628a908df546180b6246b8aa0b46af972ff1531e5cbb09ea42a5cc3ca38072e813b08a10e7adcb719165d1f4e0164bc46f243f9858d74c5d0b7fb451c0c972cca2462845f839cf646911d12f25d033a4ce5642d72adf907d759ca4ec8b281a304dcff168ba2432f66e46e115508e11831c36d7269539494b0ea213652b2a74cf66f6638807c4aa49709fe0f092fc8d67c1eb3f12600a410805eaaf16f9aac4fe4367316830a4dc699e8465142d80ff53f1dafd508e6440893ff82bc6315bfdc30a848322f8338915605ae182839f51f9006ce201e2cc74769736c94e0f36cda5c91f4198e90c69b09ea9ca796029cc6031b09006facdbc1244a2d56b9cc495c2ccb3121f164e688e8ae6663e5369a826c8630cffefe3d9aaf56e482f4d1098d0cd2842bd6d78a6289b5a40202106e42f481cbca46c184fa83bc888b0d0522f9b05c81e14a24930540b206b489b8adf50ce7938675b9342963df52bad51e871a432e38eeff1b7c3469efa1c491fb31cfc643ba8f423ec4e7e970499fa054596b8b28e56078271d93a5965b19a3f26e4bd888d619ad188fc6790cc943024bad6237ab10d546c45db83984b0ad27057f4ea9b7f4e9ce166a77e474cf46d69cbcb687a3519fae159c756200238553363c4a8bf650769fc8bc345e86cae302e05c9934aa7962751d88e709124d6d8c3da2127a310948ec82363ff7cd48f7f94009086eef93806f6c1f0d46e83e26d7b931a988386898cbe6c88b9e2341cd03e2053102bb5984079d2b34f8b9ce67a6af827239c81526239f62d043469ae4c412a85ecc28b07c4fb5fab6dd0c0a338149658854f47040b56efd97106bdc07f3020929292454402c9461bc315953378d5dc8cadc3afa0d3d04b346832c3e9535099a3dab9e742dfd70da9a48f62939ca426c6e97f9c72363df3d09dc587e8c3e452f92accfd8e41452014ce8385c25386f5b84ef6458f2d4f2218777c927015f3959618ba3dd14d75cba5d8f0dcc2c680200d90b414d0917f2115481748f855a3dadc2be64d56d74715070fb26a48f298748865dfed07ad27f44d390b5c418ea9169a0ba67e4142c9b7dfe71a054f557f6c2fcb8c0ad5c5257029a76057c75658da60cb811817cdf254575687b5c00bd6b2aad6f9e02cb380bffd253ab7cddd754e81083181053d1323dd7932680d6b9d7a8d72d5898d01bc0a89bfa30e78cc10a912a6208980939c9505f9d797832e62a847a151be262e680c2e2a167585f0023373e775c89026765a8afee3c7b92a335d69b31a1efb387f28a3e4c96cb6801b3a418f61bbe6f64bcb3aedcabb09433218c5dc18af4bf3d0a675a5e332057a801e4d945fee3978b368646288fcaeb54431d57d648f3c5b19867558f3c6093d4f9232ab97f8484dfe67f936a2cd9281e9601ac35c9fa7584af8013c3e861138b7767de506e701f38a998f0aabbb08af8829835a4660e9f0acc3479830f1bfd42005c93322ead07c882dbe8000ceb71c353cf5637285291a25e8eac98f07344371a39997f0c2c9c1b9f391b1e4ca43ff62a5d8a0a540bac3eaf0feb7902435b33c603588f1046c84df50ed293e8c36f4b39455151b1d344d0cedd594c9ef08a08a944f98f4837fc41296076e986bc1080d933224a3008840a854f514f68734756fe7785f6006087a864819a3a7893b3c80e3e6532c04e177a0370e3b3cc03324d149b070d4a2c23096eda298564a14297270afd20ddd3cc6f06f1242b7c0bedeff7b48a8ce08e9bb849048adb4156d50fe5429121d0c53aff8c2e52b965d97d6906c1d5304b4a7e7fd19a02857d9047fee43ed436b2818cc62bb0821ae90b361eed81406a037f49da4f69544c8e8202e982c174906c9c443e729027869c81f5662d9a410e5823a2b965c00b412e0464f281554898a3bafb199ef5709296b11e87e93086d2785749f0c7860f4b48eceb05a14e0b8a97220aab35d1135e419414ebf4708b9a4ab119b85c3a9996422ee49571e58dac0b3ebfad55b91b538ee661c69c97a91b194631cdec8122201e689531754ff1e6304bf1a3d9955e8591bc6685d701f4068591fa968748ec0d8093d22112e4f5a4efd915a3e06dce220a86627154d12bd5704a2675e465bd5f7ff6d156705fba7f5a364fb3bd0ed2a16cc8c513c2c56b891284d6ba4e0629ae2ebc515d1e0e22c47c5ad1dfe4189370c5046b71354a6fee099d83f189691928a7aebd1543259fc0fc4008dc0a9f182fce50a0f02820dc2eb328792f9ed224341d9a64fdf635bab92581c8d59882c22beda27e151daaedbb405de0ea23da0b656ee2927371be8d0c4814d8e74995859991a91ea766a86ffd5fad3d0e3557de994f22fa0f86935c0ee9d109c1ba5024dc841664d0415281fcf25d4e2d0538711080e3f6a56859379258dba551290283e5201050b0f285250b80662bed0419a9ac9ebd9f57d3be558b0ec586d187e13cd78c00a92c1c11392609a5a4b68347faa3d40b9c3cf70c687ed42d09251d3b7c9b6a77c9d5d641eba8de49638778e2525ac767949444cb2d0c3e4f9c4e3b27129f6e1c61924a15ae82302d835e047fa5a66f0224b973d104e4343931c37974157e85fd9d118e80dc684140f45c6862729d4bf05555abed1f62af6bf7dc2415fa5cd81399e8f30354dfb223801301b85f88a48d3dc9c1b9e4ecdd84b96efe3e39692eaa38ba514da6ab78e1b32fa5e92948fe3627ea0dd54fd68220e3a0560e5073a9866eb3400c47a7dd79796ddb4e5c94d072289ba5ddf31077328f6bfde3119d3b7e18a041f0884cf6bfa1dcf1e2fe2b9f0d8bfcce3b95e111fdc95784e0006e9dec0c1f40f2e59b77f6e204f2566bb0198a46ba189cb6a825c966fc313098a06cec1cbc8072591cc370e13292bc330eb3ee1f5a7ab67166040fa904162848b009eeec68f5bf6ee80b342b1a863828d909f07cafcae73c996c1f90a457a666901bc2083c30a9eab48683a8f89df467542333175555804a8abef903636a36426ef1f5e01fd781e35bd4cfe56da59503c5379d6b040c4b64eb2de916f29af2cab5b72d786445ab404346c90abd5d10d1fb1038216d6e6c85d1ea5f00a43a703209b3bd9503304f9e1e4a3b594b0ff2079d7c270de58bf728f1c6349f1c70a90f2dbe7408119c14a540fc8d9c4849d19549deb94fb11948c05183df7f5b2273c19e0f92dec55de05a2547b27e2da9b11db62a376772c738f3457631a78c083b3fdacb80b4bc40cbbdd5a104e0e9fb645b4c9c84b13c1d0ee63803fa01d54e6aef4bc1e5a34b9f33af8474de0c0c5bc2d15eadd9548aba07a57786d62e0647e6fe27f3e902ff52e2d2811990ab5af0f1559263905ac44a55e730f9a6e71ccc1f63de31ffb75af5a71cb683f2ba74f97f7b762036f78018a58124331140fc924991f6051c66ba78e324d7017634731db23cd2e57f35387ddd88711aaeb8ae44abd8166d7447a39ff7869c68a91f17bd2d8894cc0b91667440c1bf420c5377df1659c390da1af85dda88d83ec6061490d620e69cb6cd5529a2a8dc8613be0375d5cb9576735188dad800aa1f18fdfda5a082c63d25c0904c99915c6c7a427b59f60af3c9f90267ae9f051e91bca661a2f3a3ae77cfb31d23a05e2b278c3903c3a156de9ec5ed5200bd1e0636f0a1d27e457e652a537965a9af5329837bff565dc62972120e356f4ba84d5b8631bd8dd7adb7880f656209009265510812532d3dae1eb43fa0380873e2febb54231aa2421ae4b44554d47ddead34fe68106ae591cdf2def5a9e8f9fd4628b78782f61b61ea84e1d8925dea82543da8240da606ee8b3ae0f2c14e6dbe75446a23510ba9da24d4328dca276a5a0f6d7efb8d656853e570f0be1e8cbdbf1ea7cec3860d032372efdf8d9b51ff2b73d7a397c2e3bb303e5cbba4812273eb6bb6f7c0e6787c5a8bd9ca40d29ae7f6923a64bf18873fb32a11fb0f88ca91059c8d1623e1b4463759895b94ed9605b2c08fdd988084240eb5140a26058635a323f5af32bc763864c7a958e0463e81aa06d5c5b59a0f99feac27c48620a9ca28987a5c7fde6b4787515cd395d2b0eee907fb4f222078c546936e8b7aecda1dacc5aa75881152e0322879004d16882615cd7b324899d630a0f58765ad55973829ef51d05a5c6c21ac623a2324c999b956b79768ef1d925a820cecc20f8eb39be3e792b915264d4999acbe926f90b35ad2841fd19cec995c254115f13005d51d108d81db8e5b331d4e7669196165ba972740a742b6e2c8c1541123815a08504af3b29739c2ae020039303f21fb468f910992183d3bcd55a049460c93c83fac1401cac772f9e782a137de59ef37f7bb760015062170dc60d8bed6a54e82f26feedf31c8bbd27c3b7a1a3bbcb94575955700e39b264a5219683b19ca7bed5dc64e10b09ed6f30ea4b30eace8f44d0f4ff1e0e6eb5bc1cc3b2da7d3d3fa84f321d1be55bf606afbcb458c070bc0721c44102f97b1354e9138306cb6a60d4db3de77fda334e6b903ebd7e0f49b402fca141b34d4711503af8bc91a027316bbed578967db39fe6dbf9e2beb0c8208e9af9775f848cd86db2badf27ac9e7a286a9e0221102fd59c1409f56766453efaba4fbb61e0797b7c3d30c5667408b51c046a116fb2267294a224bf566d752a5494cd49b482628f48545bdc852e685a409c172c03d08e94248930d683feabc0aa3111e9fe69cc94ade517d542ea34cb2943100ddf8924bd71a2519f593a71a0b70ef2faccb0b0c6c34dffcd9ac14d128bd6a02994e1feb6790d69f41d5c313f421d51c334cb357e1278803fa84e108b8096914d958c572767f953c43ab87cb36132179d733822a62b4296bdf1c0906b943b28b088a9ad843efd6054dd55141f190f435ad54803bf0b274bfefdb92b37e62768250019852f7bbc5c2c6ba31d8410f41c62dc8ac1a7803ede7148823f213f176fde0dd47da28f8e81e4b2bc53143ca4b9b143d411598bba2ce093dc52dd37033b4f7060d8477fd5b179e4652399e0ed04df44ce8b686b5996353630b8b5e523f93682e4029a2701f581cfa1ee26ad2fbd0a2e10c76fd4376d2367c284a13fe32af72ed48039f8a562419d9558c32913ee02667f8c3dabf4e3c78f47138acc0824a6c61189d7e3525d3ca53c58eb352f8e68ea049e7f6bffd2a3529f82aa1b29113895cbccc518ced6aeca6a0c1f2a57305aedd7f6ce297eca6eb557f4c84ed037811c05a03a8e34600f79669bb104ece663a4e19ab07d6355d8a30b99679c2833b0159c6aba7d1e8c0d0c1a7e49602b7ca73df51b2a32945a78f9725dacf980ca1c3a51f4c4e4db321789ff0c537fe9ee1eebc89bfac2e66a41b1f5700d661b411bb929cde5386237ea1d8e91faa350c35bca845e90da94371c95f19ffe30454b2b2a413719192746a32c9ad43fcc5c3497238f4202d01d561a0a4e947ca075e61b1b981f0654ef6b0ebd86c6cf35931c507cb9b872efd496577019da2429176f10da2984860b427276c33234c60db9fad97ca8776359747215121ed9da68c8a76ff7d918c3b8325e89b64b2f0e93d6e6438fed20b6c967e2c933231f555bd89135cc9741e5c5b9dd29db9921dc34c755b330f3045a8b921c5c2f5762c221f41a93ce655ac5b474fd7388831ad1433b1a4ba6b9a15e339d930463f1418b5c2efdd184426a58fcc61f53216acee89164de0fd42f4fdf5590650beff347845920a8b5ef79933f26914a7029b07d0362cb799dbf6ce7902bbb561b59f9225852a81ce6d6d58344a12c8368b927955576ac3baf8fbcaddeeab1fae8376d4373cbcc8aa7dafe4615a36a8516618c7437ae345f96ac0cb086d0a9c5bbdb03e3e0a0e57ce96486c4fd5ec26b2aa57287ceb2d7b1bac64b98ce032b003ebe6d827abc578baf3b648b0ef12243748e938675b40b29c5ed243c62b5380c248d214aad9cb57ae5f19707e6cd553959e347b19438ae23d56e6a4eb02bdc9f0c203985c0d797de9c80bcdc98b3f4fdc1bc1d0a1a9234d9c208646561069123c795d2c0ec1e5a0757ca5f3aa3c44e0e49de9fe3b34c3b71daa88948c8087e182c013479c2e405d9bdb809c418bfbcf8ced370a4308e92632f2c57f4840507e81c4db84053491154b36374514cea9aaf07347350e6b46c369422e04554ab708b811ffc2b0b256713495991b921d3111b84cd69e9ed70bc0c6ec3dbe77eb6c8829ce4cbc73db1f17d6a4a351befcb5d3f3b50ee514202954ee1d2f8c35104a2ec93093e9e0daad7e922aac15d1df110336e8f12bb6fa23aa46f819e8c256ce14bfaa111cb1aeed361beb32956a72b7c4d5c064cd34aa53a43c07fe57f08cfe6da301c5530d1751b72daef8ea0f1ef7e8f095ecb1d0f661cfc578b258773938dc27cee70d67526ef88ffc19df6672310c20511b8f6422cfbcd4287c0e8fd2bb5f8c0858b2fdebcd8efef166931eb2c6bcb52697d056abd6e5fce06e49319a6556c9a4e915fee1b72b3efdf1cf8c69af84fcc4d59ad4b8415e1e9d7917ccbc2c1a46a509a587500f624a37b5473e0248f43533acd900d548cd0f10a2b3cc8f4c59ebc4ee4672be59ad8cd83e465fc5d133d5a7d91aa8912cd493b5848e45994f796cce21ed3501b0e8a9ade0d04d14499b9238ab7344964f76f909542ed8d576cca41350a6f7530d1cb99fea5d3c2e483a8589a6685a8787897daba6ddc86902c2ecd40e8013fe476d6daab7a3e09814d5d8b56ef76fb5ceb1262bca51ab8facf6f3c6cf5c9af53df69211c6374d85c4c25d1e82ed9608aaa742002d12126d228f25093c0473450eb333b79ff78ad09717d5725dd238d79e9d1b649f04d905af26442143e152fac6565f53701bd02aa1cb84f56e8b1c6bf0eb99c4cc56a160040ab349d2e83be7bb2da2b2307f4c68f7bb2bca5ff276684fc47723f5d9f31e964e9f819eae7f40cb1312c7472f203a0720129fcd21c905a4ff8805b20e8b5e8fb119d207fbec14497238fc83b7d271870c5839269b89622f7ff78dd06526c4e1fba4ba9833997c52bda6a41a58beded38a15a19da9b404ca2a0059a3c7725ecf42f82d4de7706a1d26d55234e01b93704d17a60675e994a03edd764e5dee5c268a46035987205786e0832357f1acbab1e76640762599b2158a3caaea3a87c39ffc6135290b7f60c8825671786670b0dac352c9c2861292bcccc8907bee3040fd2ca2632ea431c1ff95bccddaaf7acb63e99d9375955c6c8676e9922a6fe7ea2d3ed682a1574dabe890c901213308255a82d612c0a096b8837dd3e5733cd870356ec4c403a9c15281e3f79b6e00870662e96313360659cded85596f23a0063f16650a7fc400ef2f8f5f1b5934097888885a42a9e1e4b07d009db997e77874fccceae4d081a3d97dcf9a6c118e136691675a8f6ddbcfd12d92c919bd4bd9f583947eceefd3cf401e6e9821c7702ce4ff58fdfba99aeba92861691870bdbafc9c464ccc16a7f36fc7fcb7bf3d434ad08f8e9e0feb9b0120bb1cff762d0ceadd5102b818de24e9c20124c29c980a81249dd037b3d42a8192805b8be65bde50281bb3b63c060d6c497cef37a70936a473e4857b63a99c9b7f72642e311723d9549170974c2083b4afbb6876c1dc1d420fc2ce21d1f42fa4c6effe6c2e4c5d90f9359e236fb44b784004962118221e6661b6636b580dfbc8ba8b3b2e617241e3cdeea2838a80391d93430c2f26b0aa716d7758bc2b6a0783570c0e0a5ca4772f10be49b800dd37d94dd3602fcbcf3b0abe1840111ad2f3cdef920ebdf1478879cb9e14f614743ae0c92a52e6fd352de9984de48e1bd392162e2fa44a86304c7ad14b4b7af57d2b0da53a5c534bc28af1de35afb07682859886978fd9c6221a5749592cef20157d8be6a8171a62875438ee69d03318367a3596c007f67e4cce8bce07a944e7a498e692faed22d9334098289f79eabb95fd57537a85f59d359e90a0244586d09788182ca0f013e96c79ebeb549dbe9efeed432424e8267e7a0ef985dc288007092f0d8e86c0d7d7b1f1812ebdfa711e583f3059a0bc03e0aa66753b8f57bb22a407e0889824dbe179700bd7f9847d82455908911566f40fb0ba502bfe65342b47fe4a565e7437293d1acc692f20c22e71a6c5603be9a90866946fc7771b2a82cbc2a385dcfbb1b74b24fe8b816bdf4ef8faf67632a2814ffb6adf84b1b2ea79c033a6d023fa42b10ca08145d5dda39beb169c7d5b9b081a52cb89f25e080e0d6ffbb8797e139013713b36c2696c6e47beea6f625ecd8dea07ccdf4ebbe926abed2532105cb47f57ecc2f91aed981f7bfa3b7aa9f24e4d8b676701972dc62dc8fb186a040249504837ef6a96adb360848bbb041f137fbe46e3c3158e5c7cd48798e018b8b5c141362c5112d8879723b9436b1f9c534d8d54dc547a9a9f92e2c694e2299db55219097c9673036efe3bc459651aff10189c799160860ab9a49da932c0ba0390740027d488553131f8296bcee751b14b7ee730a2a8aea4928ce2e05a850b12e75e5495040d7b39942d5c1df52f223b161bbd1abe8a990572687a21c21466fbf0072f4cc3d7db1a5751bc6ce382d1a150f93a803318df07c3dcb91b958295a20abde6c248b7f7d3d8b99a28ab666d313f58783e3439449308d3dcc80b80ce029be163f6c27c33177a006a67deb2374abd84bd92cfb1121807f08536221c4c2288169a141592414852a33197a0ece91a1e2b9da6190e2cb8be69599725b86f2f805a379fb66c6d9014d5960c3ef157e54f03749cb68a4eb333f7bf08998a0650f07b25b0dbadfb7da051955494a196a04b153296fcd2aa8cb6dbff430bbbfe0f5bc155b4c07f8748c8342b09ed09a764409e02d793fe6acf34931456ad19833961a1be677ccf35658ff31754b70c717d11aaa1b113681fb11a67e022c78f51054e5cbac4bd73a07b54c5a11b8ab90c45c914d965f754040e18a334a49cc94f17c2d345948cbf9a6f63823731ed47e5e730c5fedc4993bb1c1e3fe7284f8ea68846bc26dce700291b696755278065192c7e0bd44b22753c1539c7b6efb400e60c9547866b745df8868875e3577eb1db95f5d40b9a9c4948c1b58ab809b46fa2e7e3aef582d2f8b4822a4df9911b202d49981690160d70940e866002918170aaa2b240772aaa521c9e4b827f271d9d65d95cb1307a1d6ec7e1f5179a077a239e8285a748c9157f94072951dd34752e7961b36e379a3afd9cffbe38a20ad158f5e846e4ebb44eaa379a08ee41434d19b8f2e19b87485a308a5961f758d468e780887d40a65ec9fda58ce2bcd076c0b44cd38f64c2ce98456744bd86f8921f01d85a658517a4779c6fe6304342491032a6580b482c32e58f7f61eda8e89ec5f4833cc56b9bcc82098897e190782fc81bfc4c612d9923ba7f720a5245e6e41445096334ab39fcb485cc46b4336c6acb4ef45562c4ffc25e8888303d9d67d43770c167ec43f6af177cf4a94a9100055c762adc0369394e81ded3a4d62db8d91e2f33ef4622d23fe8a3c0e6c694dd806a8d7ef27cf6b5198176e06699b44cc86ed30ff6e917c94ae73e0669205357dc5320126721d2af81bba6dee1e3f7f57c477bd86168ad50ecce5fb958e715c42d1e5de3a00781fbf10ed69e124802a5852e9a1fc797966c55afcb9a3c0828e448ca8a6fa664ad95d6c35089bf41f5710f587391e5aceb7c6f96ecfd048a5b405d7e5fc0ae482df7655535ce9833621b7d12617d9985d944c5a8024ec95c29f92812570603703e00bdf245966111c48794d5ced6bc16a72e573a74c6da2058d5c2f5ae1ef063b268909dfbc184f5a8fedcd6e84181c6f8165f865e50ec55e96a82cfa1ad2eebb05a19429392cc475b2261c45fa282b65afdf2325a89f1920402f9066493d0beb3f7b9a1c037df2bcbc634f83cd4c49e392b5267047e1fa0525b9ab851939060f7d946b6bad8a11b0be5ce9c0a02cb0b35dfb0515d275ad01f5b3df370aad8164d6a8ea14f717a4d681d7ef426c9603cf4140802317bc40595b211957a91da811f0f1491f2fa06926b7f96fdaf1be8b59cabd60f1248d28e04d9ea92bcda57348abb0550b8a0f63ca076685dd4afa7b51f43eb5a60f06ac2ce36c906109f67b7f3eb8138f0fbcec3db61c9359cb9dcabb141bf7b27a4a538a79a4b68b189ca84d5011d5837ef78436f441c30eda190d428af8a87984882c25c1e7e1647f49245a11fce2d45cc762e8c8f795b2cdfdb485b619333c113e3cc86fa6eacfac6cb7eb645757dfa6c9be7142110462c720df6a903b113ff1b9cb00dc6e78487ff0ec510e496e0e7982658cbd157f76b781f6ca7feadb33f84db44aa12ba889962f2b87bdee8d68d1c1abec61ffb2cff66cff25e20df175d57faa71f5037abebbed9eb61a9ebc407a60ab952f09cf20cd2ba94dc239e86c44747817f6a8638eb5eb9a2f192d6ba660bbf2ca2e530598331cea3fbf30357093a32e1e54b89e5a6a1bc953339d92a8a8b0876f92d616b209ceaf415abca99d319d24bb32014b31b466e37c36c3f1748986bc097ad9ab4da866bb9fad7f7c04713923a6d8a5e454fbc6892796bd4f498c0f5c3910d09e9f812b1dcc64c7047efbeff172caffd5dfb99d67b0e52ca43352824acffd7bbbc415054f9965e982bec0d632df7f9275c7a0134cb3fb0b28e9d8a431b36249c858a00c7498f7e15820cb50a3c3546568fc98cbf6119b2d6a51d02106789ec205dbad1c4d6c093e861061ff33a1f5a146d8047e01ed31399ee6b684ba2b2d5d5c17d8cc077b6d3c87cde33575697735d7ed147c28e7394432571c0a000e17393f2df07bdf7932f8465d62e9083b19f9920eedeb65b3461f66e4f6a91c26b5162ca50624cecb7cf8be13a8f254b22720e1ea370050353dfb5e9d653742b9ff3c2128e6078c842092bfc28306e13c7dd001624ff552f779b37c6ad86fadaf4cfaec1c14e48a6acc86faff7f1183e99ef15c0b9141628d22925f95c6700efdd857add7d341cb6c08e658d9cf7753d2c8c61116623d9078019155841afbd04e8c07660fe5b230a89edc11ebc471bf58ffc850bcd0c58f34cc978c014c9df9e288561e1bab170d7d832fe5b288f25afc7a04eae45e9ead71aa08f8d18e0c2b8845a1302541e36b080090ffa52b44f011fc450ddd6e72abd70b6e9d4d1200d25b456fada2fa1b0e106931b42af3a66971ea40422652d72134bb0249477b1dc381b662944f5715d6c8edbefbdc1987bb514ff408f2b0955aad49d66c515d4945d48e41136b82be3a923ca9c313c3ed43f0c0f9c504c74d89b9c8a84149433e61724d142507fb70fc9d239ac80b7adc28751bd189c283265a98e5cf43bf2df7da7dd6329630e0013e360d0c6a7efa9ff309ee011a3621c36631a0e2a3831fa8b7a3e815233ab6e98e9c9dfde1303b49b46e8192e70bf55a28f12cf2cab6a5209064efdc3881134ceb89e2e442c52443e3f048bf8329a57dc0d1b0f48349fd57d5272171e4542a28f936e4869c94ed7cab818ed1a027f4f4d223a171a81f211ccbf16032d5b43eabcfe00e7cbad0eb99eb83c70210beaf900d72f6c70358aa1619cdc36c91ea9c6b60e7be9d00270b866135264ddbfb3c383c26687461aed8471fc6bfd12b4f3243863ae33915ee67929a1879b2abfb9a2a4a8b5bf3a2da0ef28a90d43d95fb31e7746391cd422729340ae1ebf73e7361d1d0495006b76f9b920f513efcc6e0324153e7f6e0cceccfe40e56a127bc6edc29c9b948bad2d9984929e9cbb810b5da96762098330dcf5af4c1b0df5f9d08dd5f1c0f49d276292ff314ffdb38858a164b3935ad9021803b5d214967c1768fc6a98f4ff5f7be30928871f81428295ed5e951367f93e3b37cc7d581065d46c58e22404ef20a284ae112807fd6638e588a845dd85c4428f766bf160a259ae6499660eb663e8753ad801aa88c89b84d26b0628cdfe5a99a1903128a2f3c2726395fa2241f88ab0d2cc8d442dca57e8723469b0898a9d92b7288e20dcfc750470a1788b6119d8751e2278458d850abb408abac7d9d625b90c76504ad01b4ffee367a9e6d2873ae3121897d1d449d43a4a1ab286b6ce0deab361e0e9df651e4c934dfd9847991167542fbd7c13e84bbaa5e18a5c1df101758ba7c4a14ad24e6e7f138c7dbfa76208086d419b0d0687247ac50c395247ede5f93c0903a8703f8e24805fc38660267a1e9dc829d6c2fd4ff480366912948c02f86b86a1242abf468afedd4089d12835ca7647ed6c418003038d5c955d7cb227c001c45909dab5e68ad95e32f2f3187b0a97202228ad23ee2d530a96e3ed5a301dd5b0a825fe228851d3662d6b1016120450174f1f3f59324a2c9d6844ad9d8ce681a6ac15fd3fb0dd82e4aeca04ba306a577ff8db66cfd0029cdb03dd92a9b7cc303f2e91cf8fe285a7fc26931e1c31ce808a79999753e4312bc8d31d1d24103e264c0ce03031297d691d2c6a5080483fac539a1b5b0a054a11e55bfb2ee90d3d3c7f2aa422577307074ff788c1ae71683440676f013a083fe0d1c87a211ebac3c649f0c3db452615e935e6c89d6240b6876b682ca68d840d72dc132ba2feac2370da66288f6f96d2670467cfa6f0e9203e681d3d09eca5dcb5d27c5ce990eeb434ef6fbdda95ebd5da47d452984871602cff3fee9480b8fef301581e710c98be160a4d6b341d6db74093105745b28e9c19165452a9a6171220716c9bc0c4749ceca2da025150c8dfe47e29ff075d312f9096935610b35cf4f1839282f82f0891df103001d552fdd3ee6496a8f043db62ac23cf3fc2f012786cb851b7abd306c041d4c03f6850c52929dc9e418e0371f784e2014cc5c7e0cf40c3c04044ff3562e524ef335556acec4bd08b97911996f032bcf397f050938decc6345fac6b2f4ce3e4db77defbbc512d0a29bcf91f6bc9bb869f09de5a3d99d13d1c5a7728ae4798bc9c91fb9b2acb7e61bfb8d1f4d19a7f52e90bcbbb8eec0c55941b39e3df7da8d57a74734a01d7bc51cc7aa2621ddb84ffa7e47557c415fcbde01b835702ec1c6035fe18d89cdf8bd749b203eeb63525c6ca16495324c065f7e919339e31074c57b8dad055e99795af5ebc96d934f2bdd1fda4d624f50b97dc521a643fa4c1a0c35faa35420480e7a9f4506e1732dd0ed763240edfd66b7469a59fa29fc353abf7636a1fd126cb8c0b7f0e73b4b06d8a8361272bd7db5140ddc02d6b5df5b478bda1800a8ccbbbe1a77d6bfe7d46f191359386cabc37240bfbbde2ec34136aa1170718042daebecea14834106af723b093d34c36161eaebc65f510f278cd5c481704d20c7213039be7335c082c19c97d4ef128546ee379185c51d52b9eff26f9db2d59917d7809d1b624017900ad953e7f62fa44ceb9e1842b4120c3727941baf9747fa5c87b551af876e24c5de07261cb7c1d0fdc8ab37e05e8e2a50de90b6b2e987508201afea35836768da2dd5de0f61bfa869c1f62fbc4534550cb61ab105291e6e29373f87f90b15836d75e04a2984514b190d16cdbc316d4b7a6ae099ba3d4d6eaa54f5b495dd22b1ed98243d37264f87e7fdc1c6d3a9b3cabac75a3fae93946f1af4415a8fe3b9b1386ee7a4089cbf522f4a79bdf8d3d3fd38a056ec331b22b80fa6a51b16c7b1f9a7da9e8c2bae84199928066f79c6c4ce1ee97a4c88f526430ee21735456e01cdda347046b5251a8d9bc3ec0903a784c99d7c92f36a6bb22ba1394ef3e4deaec1d4583679b2bbd08bde24d15a09b4ff33f4c1ebab46f3eb93e8ed9f5aa562e70e31cdc164d3d666d4c9a33b9be0355635de0c1ec76bddc3bb714f6eaee81ad4d7713a57dea5bcf8cf8a0ba83a32b163ba4fef15be2d66c39a043b1d98e626f7f5eba5f6ed008cf76a515b76f42040f11e871ea41e4d56914299e14fc58ede3957f8cc74aa7997019ac4c0c0e6bcfb47082ba41cd1f7209f483fe8bee559be59b00648fd8e39346c78525d39a0f556ba51e376693b7d3463247080d7bacfcea43bdada58cdd066716902fdb3eb7eec16e570a584374504d85266388f2499288aba32524c592168fc3112de25eb8a8ef9085992e2e3303d81ed7d8c276178442101f06d70d72ef894f64211051fae91f496a020a337e55fde5e66cdf372d5d99425a5ff1b6289067e18e5833eeec68748b9e4f59516864580b61f2bd41eeed0aed9fb6b1b80d2e3e28ae255a8a0aa7525d68a1317a2682dc2a90c9cf52bb58b4c5aa27f787b215a6052d6f834242291599ff2b34b4153063cbf458292ac2c2db51d62f65e939991da150d85de9e6073b34fece238b94d8e57b4c014568a93c5d35652abffe49e916b588e73cc2f29ac4aba8a330c31e43674583c295e52a7cd60828583fa516efadf72bfdc5c6c80f02df6ba459732d27c24860b658b7336ffa531e30427fc3d4111f3a7a14c1bfb98837fa2a2e5222ea36ecce41f31de23ace2ed4871521cdc53b511457acbd69fa15136542ed44c76326b4dd9118334910bcd0b1c9b01a9a0311ce8e3f59b0f993037f0e84982eb7521c815ee3b0325e58323aa8662efeaa1ffe764c2c09d638ee96287e203ed25c6ec425c2c6d3c432cf53021beb8701f00626d705a056e50cc9ae2b9295b5a658cadcb49b8432be640baff58d561f54701c1f1701ec82cd550ab446210d80345310bb34195c3e801a85406bd44ec82d9b50fb0af614a0cf4aa008d5b7f37215042c534c599c80b46bfd99cc12937d7cc5a866f79d5a076ae9b12b87263249ad815fa930487227c62740cc43e0e9fa9ef2dedd28e47427140af5fd82918e4450957a37644812d50a4fd5fde92f27fbb24a8bcd52be2f3138a3533fc14c0b4fe73473b7d3cc5048b51d34213545cee18f3916085f579937c53ae5cdd450de048833e2f7303a579da07b95392e0fb749c9e24b38687bf7106069b232c5234cef4c5b44bf55bc9fb2ba62024ea5410ca7a18c842201bc87ad167af50d12dec97dd308d2193b3ecaaf279967811efb893d1663fab395a9db436c3f4a95083250280761c1dd7d383b39589ec2f755fbf8819ce272676f3688bbaba01a605888e269cf307cb067fadc4d955c960ac7cf382318f86834ee8401dfc156fca7798cd1062af43680002d31f5f789eb1c4118954c2a9d539609e40f2935676586859dd73035ebcc3208b3022a1c7d116e94e1f615e3aba3147afba508a719db96400d4a7d3b3b3419e409873b3bd10dc0ec898f6f6846737a6d593fd3beb0523ba2dafc48d79b4f3e35ff09f05ed783382eeb4f6ce81b5f403c5bc198a4b359034ddb2b7c336673b6986fe1bcb0af7fe2bc82f9e7f0d0b448730da3583d82275a887664e61636175db2435be7e85e5fd9c45bdf9988b9645e062946068528f2a5e2631a6e7fb296c89812eb787ada673cbc504757b54e5f4da9f122c0e7342f889a8948aa689ec64f98a94f34f64aab590e90412e9554e3f8b32b40e4775513e333fd7bc77568473c3221eb2b3a09f37dc73d503ec151e42b7ee4199e2242c8828642210b48321f96ce35f1d0d1508ed195c4a45106a52712603725f8a6ed87afbaa0803c513bb305b95c4122e59e13a135ceb29e2aca88ca0c96b047a2dbe70966c417830c6ee1f9d13682db9a90e2fa30beb5f3e7d85baa014f5af18c761dfce0a3f96271f618867a88cbd63be01c87337821b36a2f419a48a05f0a789baa69683369d2aaac43fd27a725a6d7d44db382883b65387b668adda1e95451e5419e4a04af7373c905fc6098a89d041de748e62c72bb8d91f1a9953cc88c7cdb5413576162673ec2db8cc16bce79b8b74ceeadaa5330d0d7be8a4d3b3aac0db85a0d7be6ba47910b3c53a78d82a4dba9c9172ab73585ffb7868a9240863ec9cdbf57833203193417d32d7c2bfee2758198f448a6a670fea9a1bbe635ecf513ef4de2291de2de6750185a69bd0eed152c40d2589fd7cb34dffb497fd4296bbd8991a2167b12e97b3e01b9b4aa26b79df4347abd724e5379c15249012ca1229a38e7280ce54b804b5c20ed010c60172afec664344fccbc72a4012746ea7de315cd670cee599e137b9c96480039c51c5dba8e9a46067d9232ef3a18ae20c4250690cba1d4781dc7e75bb48fbe0e4b61e2e9e31ab3615ee3fc530afef1f488f8ff0302530710d61d51c46be811f7f92f3ee4e4ea43d8cf39ca256b461107d23b1e16803ece874566cc3506cbdbe440d017f88ed52df11b56b70145cad6b95854cc497be854840f975ac04524a48b868cb94ee4777325b0e3f4401080c949ef1625d1804d7c02435ff1ebb349c7fd1251ce76cba32689f29b6ac4415222c0d301f37b300ee3963468f8744063a427303e8d7f6874dd9bf35df80744f47fd40af7d0efa1d630595d966415bfdf73f93902bbe04e488921c53486eda7eecc0655b7eec6612d943552d83112d9d92ba24c8d984b5f0916d7a9b0842afad911b4df22b6c7c705cda803ec2d9554a6c534e87441e02c3cd126b89af3b4514e80f41f735f109003d292d9ad6fb837903efea0df49ee930fa2af2f310a5f0f8a3c9ba0eb6746dcee925efc928a83d210f4cfa5ec2c995a6f53cdb1c7ac34e53f979b410ab7b1b7072647415ff2256a7acbe59f0ac6d18bd2d1534897537d5e1cd6e4d84d3a0ac6aec2fd56e4c40c7b1d2b72ba49612f6ced37606bf1a9b8fe1050fc914595208f85e1367b40dfd6d0a0e81d38fdd028a3b717d0818d327700471dc0eee21d39f392b615391b8346911351a70d1041ef5ae01651a3d3a0aeafbfa2ad4ec56205475bcb91af379f8870dd0816af82568f2456b51a1cc1dadd56b3c0be882c058cb24dae8a4364c6df8fbe55d70d664090a715bf6b6995a368ae6190e4db6f2630a3867c4538b4c06efe67254a416defeba2ca0d0af1f3224cde2c3bb5da067fa88a006a9413f3ed48f4da3f9030bad7984b48cd51a9ec9bab400cdf7710591e82fcda13f97aa7a985b5dbca603c2c276e9147403596e701ff6ba2c384f878c9d8f68714bf83ad61a7e873990b98cb886d04155c57ec0608aca6da74034c95d97c24aeb98f4afa04ab893e816233b955b5c3dc7e0cd4e0a0e10c5457b867a0a97e69df78b8b7df07284c6fff4a7924bd76d93a170ff33597d91a7a181a347522104c38cc934fd7c7732baa9f3194331744fb1cd6091e4c8865a93fa27e902af01d271012d057b99a5431d4d76be54468b07e501472578de40da6acebaba9f54c15bd202366b90de036010b6fe76099e9c39604531bb8665d976d2adbdd75227424559dbac9ce89d35a19888479268e0f5bed2158ca4da9c6147730dcf70f44909f6fb203497bb7c80bc8c573dd094d08f75a42404d7949530fcf8ae46117c3e99cb324ebdc25c5f5255fc461f7b552e2b85547ad39f286acda8c87f8f0dcf7f144d7cdc1d9e622f58870ea8bd74fbc093d6104ca663a830dd391dbe10917d5266ba6cd396ced8f71795d69735e7893381c4b3749d6f9c84a455749adf78f57ae7b07f13e071eb35954a07b57c21cb7a08856a799f2eb23ccbb3ed10a7ab4bedd954096010f02c47895a10a6cfa15d0d3f69059422ef36697b5de26104e2fdbd1306afaf1628e90ef5a261b14d7abddb4cb2b0196af2fab60028ca9f95b0b3b22de6eed4825260482da170210433781e34a281d33cc3ac113bbf3a59ae2c9c40392d98a18dedce38e5993f8b218a2bf491b886076a3a992228708998149ab136dcb5ab52d0cc24d236a81065c7b3de1d54dfb248657d08b546716decb043c0f41824a1ff1323da6dbc994714ee5c4d14a937a547e5c59877552bcf143929219c41550f0224fd8c2b68ee6abccc68aa81bfcfab3982cd5aa66c79755e96064c7916c37b8a45c03b5955a894e4b0af9b6b6ca8638da260b49fa0313c1dd50374339869a2ef9d32642744a2d74a9175b9609d108e6bc3ecd658cbdb93e872c25cb7b087b8facf546ca3349020477623f34fad80f35a12416d27bdd99d45ba570a6805ebcaee05a50eb9f8a90d4d7dee8373c195515d2012e9e598847f4a31f9e0dc085167466ecab2e5e6fb968c96fa2596b279b269a36f10c2ebf7013f199cb074ca44faedce344fcb52c006f4eb7c7c025528641443c70d96f09209fe83fcd1827872f6a05d0a7e25274f34b93799c691750bbbda884773b9d15db47970df21488fd04a94d80b34628affc2bb08b7adc4df2ff7e7367959d231ce17a0ce8301795a8f780cbbfcb52ae807ee40ade08f01a35f13213d17c0bedc74029096e672f759680aaf4d7c2fa8e14d07187c9029927f747cc94fc6aedf60ba2d28a844c11b2c13a5d72a039a9da3821b306cab1cbd4cc3f5d542ffb1935d8bbfaa7af64ceb300dc7784f903b9ad470c43f9404070763e02be1311ce9822695cf22eb021e6f33006b65d5bb2fdec712c01f6d39bce03e66b24c19de71c245995bab9a0fb739449ddd9c88d08de9a81d458071848904f39af692242a3cf137130938697a7911b40ef641dc3d1c43fcffead31534e0d837e65a6ac869a32260ec124d1a2c92534e1621316bd431ef75d49810734f97071b54658e68565af65182d9eb20472c4a2b7a8283c82410de83990d6190d291636f4ad7365e83c1a58ebbcc975c296e8779135d6d057296dee849b7a23e1e9455acff97905ff3b7b8012ead482d4b8656ae4fdc82b4efc0d8c9c1c91146c5750f029d9506f58dc85501ec68bbbcc810f8fcb0a69012fd4f06b9b104fd75959fa0d08d22707fa9a49ad8dc1a5a15935bda9177a91128e3755f3fcde4ecb251d919e393577d05fcf5ecc07284be7f9ccd3bc41e070f731c0b11e8a52a50d17710747138fc5a2671a956b239488ab64266704486729b25706b1c72a913dc5dd15c787b454d2db7c898a834547a9b7b2d7536a88b2851a7ad8440822fc06f503a8a9a250e018ac520f796c5a2585239431514d97d2ba0145d52570ea9b35ebb3c84647cc6008f626047372fbb5e4196ef7668b281d869a364d69741bb8b208a7ea17b5ecb89947ba90def23e4ba50cf795353e79d0e197aa22fad64721f1e0eb64b5ff639b288ecdabc94a9eed30f309160695f75767193ed8cc0a64d8e8b8352b94b19346e7748514557cb97d97f15707d21bf437accb527dec5c39e916a9fa18550b646a2817bcbbe481b33d41a91f6b4c4a3de0b3d2a0f2ac0655040e34d0481c06d74c2c83b73d380665abf878149b7f70a5518f0132956b78bf15c91965d45bfe6c92a0be5d6ac6ae747e43ce9d6ffdbe1c085279160d688a57968bdfcce73e3b24835642b43b4fcd36afb3c5988a0c70568015419eb5111cc90b6fa3c81052ad618b5ce4087df09433ce57c5e2914dbd7204f24f8d7c299752019d76fa0a41d7a258e77f10fb01349039290af478844dac20525164d4853dd3692741a7ab08429c89e37386d31f8fead231bcb10ee7934337afc76eb63865d872b9579c6b1a9bfdabdf1a81274e41fa6259c897a15f113bed9cbed7335e93adb839ceb6e87158043f0b5dbf061d2d4510ea47663f71d6ac8c3d96910a24bff3f3c6cdb371c86ec5b2b9636b8f65e928669613ebf69711e78fadbf6f1184d0e46d35b92b78d770d8a07c2657bf4dcd0b1b6012e32a038b3efe2c0c6b6cf0b7973c83a866471ace0cb5cfce4516c0a997947a49c6e974ba1f15c7570eff68c99a5ce6e91af9271fee24ab9b390060c9113c43737b872ec9ca642cc0d30f06c868b0383cb380e4bc04d55d9c65704a63f48655ac98ce221865ac2cf87c5cd95b0f94b504d2855902a0086b7fc0656655f2c86ea838016ebade5672c773ec15124859764a341bc89286e04c260d0e59c3fe73b94ba12bf70f41ec66a4f2984f51dd73cd62707383b718ce77bbfd577a9cc7c4428ee8170dff4f6f42581c7f6a73353fa60bb6c4cd0e0d50d2f86aa6e669bc27f13c6bb92646f3a990bbf4f8e93747f471d4b7f1d8c2b2f277f19209b86e62f5442f387a781a65401e270b40effc43f4544cd85474825fcdd5e31c08390bf1a2c729e57520fa68d85b9889c530031fd1f7c423756c36d2a7c1557fed5b38c4191ca86fdf741f6826d2eeeba47a1e7d7e2a594fbc343cbe3f02d2a657c10d041ae0ca13306a50489cb40c922e92b87348d2975b3e8e45683fb9f4b36f2d11403a6bf949bc1daa04cfe72bf428cc340c6154b4f71779002a9901914828697a2dbf9146ec007f73aabd78ff80e4219da022e17e4255772fb4872c752a5aefa82efb348780ff8002b381f2ac9e17f547b3840c75274f8ba4408c0ca0d9d6f3edacbf10d5e0144f9b3830395b2b4a42f2ee786e31a291c381eb416d623ca684324cb0262d48bc6b6c8c4a31571a71c51f6681766067ccb0c7ab9e15e9e676cc576908d508b1b87b55603379e60fea58d2757bc8c780f40a5ec29feb4d2c740998e64dd6fd0c12c39b58266687478620594963d4ccab6ce32e9deeccbd42ecbf0bff7de332d60a4b0ade75fbedaaed1cca7a9f9ae0bc13a7c41e95a25dade74a620edc5c8e349863ef37bd8e5e0be4d799a4ef6ca4c796b605263d1e989c5c76dbf32bc8b3c4a9db8724fed1ce74c8188a2a8743959acd7c88c8bed387f3d54bf40f5da1cf8d1f0476777448751fc52830ee94dbb4eee1c096ef02b04c7899b32bfd9206d277bc661a212bb14b11a33168f1f1c6ed3410ca4da9b36a70ce0b803c993bf8938f05124330d0e30425e24825f16021380f2c496cdbe13170a057a4336a03cdda442e82b86804ed0f7b4d7bd269bc615a297dc34c80fea3c3c0a4437c512b004d8bb833c3975e2a8717e2ddca0ac7d26d52b3148bbf443c1a2c92a44d58b147a11c588fa56f01519561a204a0505255c147896bc3f49481a191e419c5fe8d7d90bcdc3d28f0f03f97392c7829552b655c1c5c90fe23658a437f6ee571e1d4caa920a6123d26e500487faebd9104362f41b6a2e835899a4d09be5d6cd461a1a23d5d1962515c7a27323872ce67072276e9d9067ef8e7578b108fdb16e87d5ec98b998f9b057c931fcc02d8e804ea08273a45d965a04add9d22f1be9e92996856a5c2fff0a83da1690031106d59b057947860feec3bd5e96ee8af641a8b4b577fccd45d879739b8f7d6e02d164e4b52e759c62f01b288b538c888ad0c11b8fbb74806f6853bd85f72e2fbff245e499cf3779d4a0a2fd8b7dafbf3fe494a2246a513da683b4307b1106e316ae77261e4d4e0a0e6bd961d33a5ddb5ec74923eaea3cbc5fc0d438527946350f3d2ea8200ca4b85461d64d5eff9185d1996e02c22e16b279c3d36b4effcc79d19e4afe8f432abe35df4645fe5803206a2e7d4b4762196acf6a91eb9a671f9331921ad791b4b5136e7046ea0dcfc105bab6bc55cae937468d6b28ba10569d30f5219ae45a7b054d14e512de1ed8baddafea1e02b9d0266ad613d1834225a51b4c3353f51aa66b402137bf5f28ea27ec603c62b46f249acd4016ef977019fe0bbad9ecd5b60b26a74879256a5821337d851bbfc944a15d17d5dfd2bc100c71a8f53a89e4e005facd3825f88753a11e27521bec8be315c065487051db1901b60ad581ccba2d4b2ac4f1e40b15876ecf119a2e10a908cecf7d3f5a78edef389db97181cd87eccf65f1adb8c39a9914f10b04a68a390ed477f2914e8d283d496bf197e75696a149cde9f6785e2fd5be8c55569ae3f3118ac274288af3380a139bc16890daf3173dc62e1486429ee3f8c0c01478a69eab0ae097132bdcfc2885cddab202187353a60d7a2f67365113b4f164fab6a5e52a28e72d2237e61999e6adb56539442692196ff7dcf5b8ee156f04b6890f1bc462ab234578b6c6b049822816be1cee9d456984619231749b19e522c93043039bdecebbc10acf3ca52f2bccf851e55a5bd5ae5fc8072fbfd3c3227fb8568c7310ba77c0dc2e3f65b9eec04652e4d0dc5a80773a0190ab9066d74fd6f227930c53bcb080dc1e5e03de2c6eeabd61f8130e47ee4a66ca15798cca70e20c2e30e2a877f32452078b54a2c13fae97a3b0a7c83b351bf983034637b5af3417d82e015fc45cd88ffaec24298ea64eb1f067a8e2a443519ecf8b340c885a6164244d572db2e5bde86144d149cac25583fad12a0df32256ba17a25d6f4cdc69bc18adaefc51b56b12586858d47e8458f6f3d55c209b822d60ae46ba4e60f2ee7f557109855b77517538a2a95c8d593df3ae400a79f87568f8acfdaba22edd471bd9d6c093928e754c5153742cab88f052004321acf9ac206a567290e693e3e2ef00b98ab87ef536c707dd253349f8b88fe00059cb93db7c4e8739b6b60fd4c3c61312e55a3c1a8635584727de28ba1d7649d005f56e652c07ab195fbe25b01a65e89388d5f1ec3c45ab3f586d86b5a82438c482d62db1be945390f5e82fe78ef8ced828d9443484a25b92de5cc4577782d19d35a8b30b4e2b622b55cd157eab5cc8512c9ced883737d47dc55a66331add463596ec78c594289dc3b23067699172a1ac75a9456755b1e458ce0adda8205abe2b96f8964eaade0988ada2e0e6c950480c1999d7098fe3e2227e0e7d4e1417c6c7ed793c5a0ced5c29d5ac703f6db0ea4b180f6d0fe38f55940702a332c3170d80c931045bc1840acb89c75003bef15631dbf584eb575ebab24d2eb3b9566835ff7a92f1d2e48e5e9ca2718adfe116b6905acf0dbc3d08d1f30dc761fba6275005ba755ae3f17611b82bda7556e0cc05382c07bab89bfb7b545a265a7c90076efed29f516995fe6c42bbbe68d74144ef70b104f69764ef844016dc51a061facb24efc7f83c8039da7139fd19677ad6fb7187cb0c8da8a419950b95640388d8653ea97b7f61650f208a0443c4b4d2b1d173eda24980e1c49a188f082fc078442317994180ab95e0b675a1cdc3a998517fc6572d0582836bcaaca222ce3a0e632159858c195ac7140b36d4ae5ef4d507269da3c22b39af7cd1f688602aec11a5d9f9b88c31739f4f323ad6d948a18d9a34d723c42b6d2410c9cd0f96efba0ab98b9e06705b59dd5de61b6c0f53b2b6d295d04aa89722b8e824a303d14eb65f40195ce8968a4d47308886608c93ca3bb898a7176f7f6d8ea706e2b050ab3629b729d54b6b9b37359a8b5afbef79db91eb51d0fe2b3bd136a859985c69cbe8cba65cf1c1157fd1356d6787a0cbaca4d1636d4b51c6cc7fef6c03cc4c8e71c57c9a33378a69fc270cfd25e1a81db8efa5dd89d6598a22d1a83ac79b5130da9ae1e2db5414132e43450068b06812610e428cfe2c47623ae18d685b993c49602639d0409002100a98eade2da1e2b6f8dcbda5c3a733ad162f2348c325fa2278710c8155bfd29ef37fe4b29079f73bd5eba8ccb01fb518bd1b26a11b43a5f4d299324565095486c015bacacec58588a7b5ee59d20c46fab4864462525c142625059bf574e7b5091bc97222b5d2833f5fd7073fa02152ff6740122985a4d2bbcf99815eba4dea3fabfb99d0c8f12999cfc3cb131b9f0885138f4692f73d5bfb36dae35ca651c609c03f04b76d551cfd37b5c2727f001010461046a19539e5a2056324e07f165cc5683b76c432f2587d16e3ece154649619e767972f18baa5f7b8cd09c283c4f5f0618998121ea26e24d2c0c4000001fdb92485da4eae66c094269f168b3d1fd22978c4d36d4c17e0bc14df6de726f29539229db09bf09ac0949b757b1dbaed877452723446576414873742b253333333333334766e60c0a308ca4bf2935be373bd06d8f63c8f86c798667131163f7b70ecee694ed38c44dca6ddb9866364e3e1ddd7832baf1b51d2a7fec78b272994f52878e6fbae6e91f962a6712b903f8eeeefebee5e57c399fdf530d7acd41a2e698a086348c2ccb34cb514a29fb0956e2127b7cc1389c840592965896232c0d5ab9fc272b6ae4a12084aa044d01f289309e264c1afc095667f14f25491a647a240233c8108391222e0869a14129a5d36489ed72661addb8cee4c59c2a4a668686460d1ba99a1b2a1b1c3974fc670170b30a800040962916d1ad124cecae01e0f0787e1d77112073a188916e752dd30c1d81239da45ba8e7e767d2ad99679a671acf359e6d3ca79e6b9e3fb2ead9e6f9f43c9febf3c7a26ee178cef1fcd1a85bff0c80e79be78f59bab57a0ec0b3009ec1e78f5874ebd3c1daf1fcf10bee61c27309f663ce09293c0a3bbec96009cffa2283253cef74091d00bd21f2b25e00de0b7d4db05c02cb863dd77e7c1e041080f7c30640c767c3a0b5df975ad94400fc686e524704f05500d02409c067b255c9eaa39f89c9cd27df3601807d1d9ffd6cc873757cfccfe10d91578795392ca534272e8c30589f6bd1e92ba2e262e54e176e2419a93e21355860b9f1b590423aaaf9766c68e9c992fa7c3058bf863764c7c6a743c3470b353e1e343a42687c39333c5ca0f97630585fe69473eb0419ac8fda6124852fc5acfa287cf5ab37448231e47c9459f54ff89859a77ae4ce67b07e8c37a4ded3736d82aaef9deac9863c03f8703ed38f22a914c8e0dc61e4fa73600c31df6f3732789f0dfd194c5f4ab389c0751a06271fb9fef1b9e90d99db949247d21e137aa60ad47b185fb42b224da422ae098c1ac6a599999f518a5f74b33f144ae6a5cbbca4f7f4cdc8d4f7efcfbfcb399ddebf25eef2b98282bdf8fb33edb8fd364dd4b0fff461876e93ecb83136269d6c440a02c9bffbd4335af12f1a4da96107c598d571c4d19d61d6adac4ab7b46e65dd0d8f8c1ad25b64a55d2957cdd77c3e57b6c7e15f57e8472ffb2ef6276fcde7a3fa1a99fda6faaec87ccd87c3bf6a6abe2b3331fd5dce0f1efd49d4a36cd8733be7e63458ff543f3af3d1d40665bca8a7d741a5ce74adcf5363555fad911b5ff33596e74655c9b467c3afaaafe755f3f5bc545f0bd10153a99a1b3a457c72581cb63aebf42aee247c3a9d7ec7e9c77c61126ac6e52d5b146dd922e8e2a00a1640381a1a3d4532a87f77a1fec6576dbcaac6e750d9a8615530d43c8e7780ea735827375ef538ac932b4e6cbee6f9558343f5ddf8aab3505ff3d97cf5431e3b7efa92b012ea847aee72519606fdfa79cf650f451b74ef87cccb2bf3a9fc65befecca7f29ff9c6f2a9fc558fe36b3e957fcde7789b4fe56ff33afec6a7f21d33a837febf8d3ac85d387e7e0bb92bc7cfefa159f3aa9fdf53ba35f3f31ba85b323fa7cdcf7f1d393e1ca83fd9dc50d57cec278f19e7d45fc8f38286b2d2fb917d7fa6a7a936e42eb7a25032af3abdea7b5e353f23638bf8d8fc8d579d5e6579aec83c8f8d559dbee71524635596e786559d6c119ff93daf1e72d6acb1d57724d51c8fe3ff9fe78a11d5db3ccf152335af7a9e2b46747ccdf35c3172e3dff21c71d6fc1b6f6379ae18b1f91b96a78955d5581e1df64356626730cfaf1b5665abb3eaf3ab6666c981a3e7d6477d4958a97e472dade9d4bdf14d822997b76c01ab97b72479b95d34d57c3daf1bf36d3e1e3ef5c6d7a8be9e57d7269bafe775e3eb79a9bef8aaa9b19dfde933c57496bee963d2cf1e675543b68fbfcdef201a9caf7d5de5eba006e7a73e19a51ac6a50e9ab363339dc38bcc09b340834fe8671a615263a4c4d0611d1974b8e5cf3d5062b932c0ac185a7193ef134fe832c034ccf2c9b2f761135396df9d32a39f0fac2403f15b88db8f824eca5d30302bfe162856601d9da9e305c541951fce8a592cc3171800deb00361cf9d364636d2be44e6496d582f337bf631993d69e43e7616922961d0f10dfdd046da7ead064db40fa442b4519742927c66660d08466071678a9a6c7ea02d81094283f27350e58753c8a6f044cdee049a42dca3bb0c06f7a871fb39214ac394e4c9d86da11adc30a7883037f431a550b71c084b97b9a11921b6fca0b4e587a4c8858a29870a2cf18b51aa4b7d33f53bed8d51517ffaede99b6c6ecbfbc83d625e66dc2f43b35465c228641a227ea1947f2302bdcc12f5521df64f956e3cca8cb2a24c2815548128b744bd44201a1a9aa7914383c6b3f3332b3e8d19d4c7ef44e30b9fe60b39d60536140b2390cce7cf9e0be92717f5d223e2498085b928948db0069ba7c93701c6e9d721821a3299377e016c7c4725dd6a5e9a00f708c2d7ff6d7caa0d0a9a5afd6d7c32342b861a43d4b0af67dbc653a92068c14284293c0dfae046fe9278c6cd9ec68cfa57db01529feb220043c58b94a50c4a971b623920f500c4938f02f270bd7fc8a05cee77fac9f5257e2dd04f2e674327616e927ee276dbb6144fb3fa6993067b53e26ee4d139b7dfc6876a0344cdbe8d4a8db65fa78baa08d4ad39e5f6c7a36e69f1015344bdddb14b98206eccd2a45b7de5f67f21d252eddc16906ed7a0c6fff865e3e397918d2a6436b549a794926a195b9796efccdc99bf3b9fe75f2493937c57bac5a28312b483a0970d2c64c144ec458bac349815c18c384ee9568a8a8a707811fa2216f54b97ee2e3597d3c6a525d1cbf56158152983c2182a2a320ab2423f9503b6a7bfd90e744fff2fa5b5364c36aa013fc0828a2016dcfed03bf914a9025143ff61972c626f49267cc8210a25a624c128b8fddf113574585fefdba3dc761e6efb0f31e616e6b086817156fb9541ee92300983d5e852b9dfdc3ee11e9286a6a16fd8b0278cd3448cd32f8b6491b4228da4920443629141528b449249f20b7914d4ad5012492198acd2af4922eed1d77d3aa60787b92b0eb5eccdf2c417db39a70f90519629b020868ab0045d58b7c21803f281c56451944541957bb0136a3b401f87f8a26f55fefca25d6f106a83378039ec6f8831b36c82915e3520af04f1e28b06e681105edc2883d0460446d7b9b8fe340828d7bf063183eb9f126209978d23da3b50110cdd1c58b0459c215c29b31d5ae0f406882ce814710609756bce2c736a993be01ed963a9566610edfa0250b9f1270fcc828f78427ffc3905bb786611831b670d6eb43fe67b37dd5b40f6d2aac4d8d15b68d085f61159b80c860e788002dcde619cfe1c70324a7d2726675246468c7ce6cf80220bd2d2a578420edc235afa03c6710abbfcdc5c7572288d5ebe859c15e4c55bc8ffdfddddbda452b5ba096ae8b09b01f9900626cc8060e817fd1b5ecc04e6baf7999062ee32257da54e83bca16702f349a97429b2e041f103eee149c138fe5e4ca64b0d3d2477b1a74c48d73fe46ef02b855d26664516229f00855b1ee09674985311bafe8a227ebf628c361574ee3e8378efeeceec835b0154621003002c43c818d1a58e6f4297974bbf5b59914fe7bcf45747eecae8b3b8d430ae9e308b3e6711ba3797554ba896a8d299544b54f7d50f33b6a69cc55567d16751516786bae50ae36760ee7221398b3ea516096906f68951435718977ee842baab954fb7e8bbe8bb90dce5a2b4562418f885da5c45ee92799af26e6a8ccddd5c4597b2dc8634f7a30d6e6f92f94ccddab655145ec1b8070b97fe0a88c6d35fd1151197ae7eb8f4573c5cba3a5a215dfaac1c5499a779ce0be25db72b18e3d04fcda0ce582757ead3b0918dcc5855f7fc92b12aafd6080dabeaec2bc759f469accaad03b497b14eae1891f9ec9dccbcf60ec89cc87cf6fcda695696ea82b96b88d2eab9603bcea23ff3d5e84cde0f150cdacbbc11cd48f645b6edc308f38800e06e7406e62caa5aa266aa25ea64a9a0863d97fb7006c6bdc3be6d6606d620eba872276f7bff549b5dad7c1887feaac61375c678355a5067c77d16a0b9dcbbf782642276398bc433d9213e0374e96f56e59133b279de8fcd16317d327c317841391b0193f783b33334483f3b01fdee9bf169905649d24796fc554a98344869d0a5602e652ed123925deee3ca875b0135487fb32b5883740676e9872bd8a53f03eb563f7d971799a3beb45b4892d0dc97de812c62d79f8958ac5b959ca797085d7f0dfecce506d1ae3fb37fbcfdb9d398a840799ba4f0b6e106f84df052e3b37f77fcfe6ccb19f6872c39d52d4d1da5636e713451f769e3831adfa537476e0ce6ee6e7e2d0872ce19a7cca6f4ccdd3deb418d3f3399691e397ea9f141c9a365399a0b726c3c547881eb1f65b6450f03336e1a8809b0e9316f18bdf8ee92ddcc833a339969aeb14d8a03a2c6b7e11e5ae683a669da3783da0d51dbe5e7b73dede5d75d08b02b6e1b0a5553f37d37e42ede2ea30e5a6857ea003b9185edfd5f299dc8c2667dd0945b669c4c6a9ae723b2c0a9dac5c7f5cc2e0112b5dfe91e2a25d53eaa71ddcb5767796c7871360a65fef38b45308ebffcb2222388e013fcfd093029b8fe57ae97e0fa7f34f0df864ac8a1841faa89c854848019d44b542eb1a7fd4e5f914b4b9bd7ee6cfaf6f54b2eb98b97424f2eb177db2d25da5ebe361a46fce1b527e79cb3bf29d4e010f58c1ad28f06734882519556b8fd32708f68234308aacdc7e0aeccd6d4771196961adad0cbde8dc14404472d26ec91618618946c2aac8a6efb6ee7fdd371d6f6f2cb71d6d6dd18a26a1fe6444d568063d011eeb1c2dd3e49fcb91b9f71375309eafced9374cbfbed9574cbf4db3369d22dfadbf3748b83d54dc7e634d8c4b757e22ef9dbc7edb7b86dda26f34ee4a3de89bfccc7ef3253a6518059dbf311c6d93e3583eae44acc3b41bd7c272aed7962ac119977abd22c513f8de599b129676def3496e78ae967ec15ee3f5a31bdf6cdeb1e11558c05d2b7a734b87d2c6a707bbedc6b9ff4ee5683ead0ddb6d73eac4177031bdc1ebc9b67ca6883dae59e72946544ddb8375deeda24f31d71d6e6250a31cef6dcd7ddc87d7e8fb82bc759db53baa552ff2018e6dc1918677b2e49839b9206b7e7ec9106b7edf966b348aa116dee28ebe6ade671f00ef758e1666fc33dfa662adc0ce766dee5cea8b5c1ecddc52c847bf0ad2cad8a3ebfe4bb55514bd4ef1f3f4c05d12e7d4a6d584335000841d8940eeafc307502eaba8eceee1dd9679c9eb167ed5c3aea1e594acdbda567ccce724a6f31bb6b3e78e44476652fadfbce9c314677778f31d2dc18bdd21863643e41e4ebed72bb998f1e770557eb7ad8dcddb4cbb73fca1db71e5c6a5141c933338d4eb945e73866329b393c743c27a7ab1229e5cff099cca616d9b4d1a24ad905a16bdf62cd42661a9d7493734e77f926ee56e8e3f2f3e89de9ddca7e73570ecdc9e19183028393c8f58f59f3b5f98dc20b37cbb2ff213f66669aadb26db298312d68658288635a42c6e232c1040aa6abb48415766d53a86881040cb6c42f11849432e84a8c4c2df1e4cef7286028f1812ba1b8522a9174a511962b4b28e30464d45831ba3144dd2e67b4a84d95f2609a2263ec22fd272ef6c9767fff53dbd9cd6a60df18a26a9787a85cbf89a8c68f6d84871a4311236af82f854cd9b30c6bae0ea559add3fa11265f6a1325a00e6aeca6d2f14db4417c1590be1c3f3ee156aa8ba83aed8b30c689af8ab1f10983f123ada9d4f6a5baad540731d17fe854fd7c59663f38410e2d3faa314e730fbe4374b2fda7f7ec96eeedde73b60f41894ecaf6f6381947cafed349ca67e9d22d964e156f989bf8391d61450e244c9003093350d1072828892950564490c327892e6e376f123ae820a1053c62e94a5980ebcf474c6931aeeca2a604954566e4f0e0448a1a200b95156437454277fe340196841b57bea452e670849452b650b8338b1cc82d443834813402a1986f0efd2004a3d7e9e357f7830727ae89365185be5cf9e2c66bc3493a3e9454b9fd4c581671d7579952aaf36318708a1ab29726483c4c3e173ca9d3e00e0e206a188b74765ce816cb30038a8a9dd7b9f35d27076c67a7416fbfa1218dc95d8aea1feaf8d8699088bf6a8894dfd3b96a48fce93e1af4e9993e264d224c4883e1d38fe6f2a0a8a85e5c8619b213dcfe24ee257a51126388bc34f1eadf1162634a41a78548ebcb53b3148bc85fca5fd459fe27266a18611d12516e8822c2fc3306c378a3fcf8d1dc183454c528045858a85b4250c515bb8db2b1a586ab188f1786166418117ba1227d9a58eb8d317db49dbcfd2b2fee9af9f6aa578356a919d4286d306b50c395122b2556409bed6c8d2b20776532d4b9e12a16a6c215d06acb6d9dd5d1b7c2b2d241440df2f225898b5183dd55bc7c49e2d260bb8c0da67f8876e9d32d4f045dfa040c54ca5652fe0ac85d2b23ba326a7075d445cd3e5c19dd1596d5d18dee5746bdc2d2adccfbd199ba1f2a18687ee61d40336379ae18997999e7e17e934fab26f3993ed37b9ee7b9d073332f634f05c3cccb7c0c3356c6c6c0cecab40f57316d65f46e6516a4cb5bb21cddd3e52d598eb8b1b5c2d260bf8c5399ef8a7c999f79f6dc06355cc1c0917b44bbc2c238fdd1ae8c9ea8d4c65f19dddebe78635052f4126494f43a528a60848e3a8c41415de2120c68a8288674bb0b6c26a88ad06aca8f22291ceaca8bb38238c85760ee2ab6025a01754b4ee92add12f2fed550b7e60b6effaa08ee116f5bba8ab91b71b745a20d574932c44069ada9556c9ba14b9218ed91a58b0273c31512bf506064ec2a166d6ca9ab18f760e1f6af90b84776fb5758744b259f5749dd8ad602345789642276e35389018fdb262bf8563122ab2e32673c3174c3556c35a5c1560df1974cac826e07897705e4b3e527164da88fab90a204b0d7cc29566766fcc399a0dbbf8aad806e10a08c2a0393815dbe610c5ac55450a350641dd5b0276805d4608338a8e10ac8061070007bad80ba65019aeb11914cb8e0ba45e243ba36a13e6f150b5a05b2724b93ba8b5fdc524b4e08ec9ad30cb7f3a8b3e966cc23c6692039eeb6c438f3a883cd22c8dfdcb315e896017149ee1f9e2297e43e83c718ab47daa423a54990b6372a9320a59ca954ad5a26df67149c6c662798405d54e1c6141884ad907131ee0afe3914855b1c5283dc977d80597d84d4ad0c88bb825b991406b9a32377713de084707b1e6d1f9e322e69e39236190bd44b81dcd5355c1fe2a60ca85bcde0fcce38403fc06967d02c46dba877969d3aebbac70d469e9a0d57b89d01015d1c3703f254cafd497f9f6049b767129dc25e2973e57357becff4973edee950e387e93aee967bd86dea2f04c0751d2a07922c0f357ef333737fd29f98b132cb19e5323fa59abbb7661406a5bbbbcfa099c54c29a57466e61974d94ea02e95a2344ea9f1278c71d81dc866c543c9a99f73c6e8524a2981ae9c4797fdba9492a594d22d87439665df8c534ad532a51c23ea20c770771da68d8c33bf6d9031c6b8c4185a30c718612ea5ebc0487a6acea221252945264a061d4ab9c7a2212529456e93f222dac559e18a62456418fd20c7ad2e3fc628614ec8073b9be8a5e217ff238d57bfb4b41ba54046396ecc12e3f4db2835b2cb18b7dc11e3f49cecda01461797853bb2823baa933be28e6e3f77c43df81493488091f305b08cbe94d4aa2451e59869355682248c6e4f302128c2a7eb4c9c476483e3779a86cfd390625b4db3ba4c23ccb94a3c59f333f077848344a0c1fe7895a0be511f521994c90b7b54b6165d2edbe0f2162d60b76b93ea930df6dff8f87e616a7c971e2bfcaed7405dff8d5d9de3fd29f748bd3f8f8b64863c762af7733e7b44e67339a0d478391bcad7fca5c72cfea671f969d4e0b7f1ecfc35c727ad8971383e8dafc6177697b097da4b19b75f26d1b96c8fcc108106dbeb241d6ac849fd9de601f1aff952cf9f8defbe58f369df75d11be2cf1f5fa6f135d806999f0a88c797bd8eb361b9e79049fbed28cd17c60f24d961f3f44f1f92181ccfd7fbc2243c4cdf0cee927c3ba21cbfd3ceccdc3dc77da1e9725c6799348bb34aaea0d9703cfd54fcf2f2db7c2a7e7ed9c8ce48bb9834cb54240677f14b02c14612e578ed2302fa578e6fa177727c4c9ad54ab084dde5f6cde37023df21a5cdc7a459fddc8547271d51c34eea309a71fbc34e126a25a5a42424a458ece8a85b4b7f631187fa1b4bbbf8e5aa53da155f1d447f5be958743b8b127771b7da8c2f60dc168a40ce608e62d6bf34d8ed368c309d065b47dac8028686076a9853695851c39cda2d77ddf47b0f4960f8697051c33874f9999999999999999999999999999999999999993932333733471b3ecb24742fc45711e1f7778ba49f6dea767508bff7c4d8a4e39b259bebe5ae701969084137fb41c4756bfbfebe3ca755d1cf3e5ef9d376d0abab342bcaf963ca4f49bf8a887b3fdade9063b407242e0dc6a07893f311048de61552353fdeb0eb73fc4943c307a4b1057bdcef382be685748b6adab6cd39e7a4a17fd26f8e86dd27d13ee627f58668dbb7444b427ffbe9693fb5d349fb16884424db6fefd647770a69b7b7b7b7b7b7b77f77efdd9fb68f393d7d2131f5f36c944ddd24eba4c9523468b7b5d3fc92d08f79cdfb715aa22d6972a910be9cedda24a45b426cb823e48ada2d6ccf1edd2c9224d96b2fb397bf232433d1c0a1168941faa0915441159197403e975ff2a3be3fdbc266d42512d51ded6aa15921c742f0829ed376a7c1d8e526e965a674b38a7b44dd4f25dcc7effe2c301f09fd96a6e9fd20eaa46c4e72f2055d6ecde52d2418bad19b5605a4efe5daa76dc3aea87fe5f4971e917e6a55d4e4114be62e3dd543d99698a6699a2663d46ce851a399d3d6af39f2399a4a247dbaec07301cc74d26fd724a1a9723c7d9693241ce871cf31e3620f439be9e64c79d4f3f24997c20e47cc8b1ceaafc8deadf30c7e8861ccb4965230002a88754401a8b191556696c523d445ffe508548d35863ad63993d7b9232692231be6655fef2deed0a0fc4a791440da3172fe28211c3d87157fcc8a55dfcaa561a8b96f8118b1883c15e212331e9aaa45bcdaf20627c55b9b1ad279520473ec7b2507a99d383c310aee03285183b64914196022a3b6c5c84d97105169d2bc2c0c20559b4e0ca9ca94314a839e79c31086daef442caa75b9094aedc72e54a2b7eaeb482065508e1cad77274721c06528aa099261a1b2a74b85252a1832bab78ae4205441883054708821098c8b0ece0058a670a4936373b56b8218f2b7d4471450fa460420a30aefc14962bff412d595cf93950aedc3245962b9fbfc0c10a2c3c4461842f8040410f31ef070f5510eee2296210030215502c010519df42b7e4cf2901a20f7491821f96ba78e2353326eea4a2833be79c7342a1b1b9e972c31d4ff480062d88c205425cf929172471e5833129393da0b0e89e4ff1a311757bbe165c126f0d8c93c96f2f01aaef41c37c2d014ded9269992cd1349b01e7fb35b8ca5fdaf8452eb059f15908f75882811e9ddb39ddfd93ca3525e5f57f52e7372bdad8745fff78308e8f606660fe7ce618ee58a2011ba4db70be330d95a3402aba600ea8e3a35b3444514596db4f73c3e3cecf6c0d7edd25e3c4975fc000e986f4b7f8e2ba9f9c526e7267ce0d0fee4187644fe90bd96f2fa9a673e7d790ddf935f89d9f971a739a081d3f6b1f84ade4c8ccdbfbf317c3dce8c567fa5d5167f46f1175460d6bf5548e527cc781a6691af7dd493524fef63448d5906891d0d0577bcd128996fa0389977e4598df5784fa15a1fa534ef31e482441cd96b899913f7d8d63666636317b1cc7b1adc1af67fa68fc2e26e6b998986de3b82c66cb521cf8d964bf75599665d9b66ddffc1a35cd7ace26d42e67a6d18deb4c5ecca9a264666868d4b091aab9a1b2c19143c77f160037ab000800649560c20903508107ebd35142b7709e779880420e0152c031e14b30a104134a6095f0e00e134c2841051ea000fe46069b003c8b0029a09073c20076340d8c7bb070fd8b18894106f992a92a93d244e90aaaf6d12059e934b6d42e9a544b54f909f8f116602fb1bb79517d077882ba55a9cf4ad7734e5e64195dbc323acb83482b2dd075dcbda3bbbb1becee9ca933dd6577bb7b3663dddded1efdd40473744d3a7f64a61a38a54fe9daf77f2bd5b8e72db5d54ae57f83cf2f9f3ee3c43731ffd430cc1973981ad97f503eb5419e5f68a2eef373dacd29bd054920830c32c820830c2dcc9753eea29e4d3946cc0521d1d4e08f315c908a39318489054198585014e33385054dcc68af3062b931de4c1f4ef4c0892468ee0a9498885d198ba56e8de00a90648c38a5002284c0e707e6030d76f0ca94b819971d847033ed665996652729fa15612055d085d2d109ae5c01ec4a1342c0c3d48419377b996d5101d2cd3229a5e42ba594326e71431a9b9b652980dd2c055bdcac09236e160518642469b20c98d4be644028a38b6b9c56c5143080d2832513644142c66860048e06411d1948fdda0c967c0ca1a889606ea1c150cb74b57fb04139044cd09c3bcd399b1701d8c013607861042e21b8e1064a5ce10410f15ac9218a1b5a504515439050f0c05980d102a6059016412f14f9fc60083e413e54a6103a6941147481299498c2840f928ed0032d5aa840c60a2db610414401769480280c2f39a87206182422f880083f68d9ccb29b655996c162db167df012fbc00b3aaa6533a3cf3d1849ca20072a78a0041551c620c12b6b2e6ec605194688415b04f48608548488a09a444b29f2201449d1924a70c5c70a33823ca00da16d190336a58b536ad3344ddb5ea08496ab695750e9c1dce1055308793b44215ea0458b27c587ca8ca13cc6108e18821620caf0c10d99145bf430865b3145131ed83609e0c008247832850a2313645158e1c3185ae8b0d9e782053a5c4d83b26d488848ca810a6640c58a1119145680a00519174e9c1194ddf0af69dae96a9aa6695e26025c0006361110039a7393a07ccd0a2d34f0404d559a9ad52c82008c0d40506b7db9834e96659996655986022ecde22f2818358cd49747410826008b4fb358d39933a8088e84333e4029a5946a4808a159a154842a5a14445b16511849f1818c54e3ef176e3034b78f7e375a16bb9a942138cba4a6695a0f9a16d3a588b90b2da424c92d5f8c76903aa89994cfcdafeee2ec3b4bbe949af613bb9ad645e96a6fa369d994525a6dcb0f193f643c7714971ea5048917882ec6da2de90db52be3748c67cc20a5337feedf21a05e0c71d481e824cfb8f2bf8a13327fa364746516d48719c416198009c3872c07daad25fc0538d99b6635189d25fdc3bf296243ca4520f13bff1c9be3db6f969a3ec6f427a293c9342925aadf8199c730c53d8a7296b3e10c97db3a2d7ca7fed9174e1ecd0ab98b0f35ac37edfa7834eb3ec849a921ea7bd970e87ea25024fb9d961f330a92dff93d5cddf8939b15ff47fecf0fb79c5202e11f676650f9679efb38ab664d0be057fdce64d242cffb189aa7799485827a9e9e172a8bdbfd921866490c73ddbfabdd77ddc97a9d5d323f8c41c52f82b22894fd91799a18bb647ef7d44434f3739399b15150ff23837af9853d46975a192831cceb4af628cd6271e3b72541ed9ff3511f575106857a99f83fa8d48fccffa0beba4bc65667b1f744c7ee8a36373b2acd8951b85c696eaa6616b9261b26c9b94896701f52f97c3728fe3c3d2f7ff971c0dfb5d7fcfd7f7a5e6e7fb2d72c5f6e239a9f4d1bc5ff47bedbc8ec3ffe3f3f6e7ba60db3a710cedf99be68136eb608941ed80b0a0ef1e5bdf73bfd4ad97cc7989ea7e765a23654723b8b8489bc4bb40fb9afc12f11074c9f79454cd6f43f3d2f93fd39bd67ed12ed2951cc6b5f664384c58682807c6e78f282c2615e4035af181bc5f46eb29604d55f7e94d4ebc7f4de7bf24d96bd7a4ade90937dfc721ec6428724fcbc6c9037f879ed645590604a0a5e364c293078cdcf2c0f2bfd98008a970d5304615ed372ab10eeb8f1adca01f3b59f57b22f88503980bef6d4ea7024c46bbe66b3b689a9aa3232a9f3b0145550c0c3cb06f981d7fc9e57ab007aa0465b2512ba23c6798f72ce8e3a246d77333a66a1ce89647a9c48e6d4a63691ccef213de5956dea762d9b31d3b2f98599966959f6dacf0f49f6fd31d36436b329352b3131313131313131679c50322694e9654c325eb5319e49668a3ff71ce97b0c724343338977ceeca7d5be9bfcccccdb9d282a9e08e3deb84cc51349dda2af69da4e914da3ffee92f92cc6337d3dd9acfbec33cf66a6ef76ba08cd6636777a4693534a298d48e8a4ddfaa4a651bf31f693a6261d35a85fa4b322918578b337926d947ad9da5b42fb2803a01b9fdb2203a1fbb77f3637a839e9b28f868c49bceedfd19734cce9eff69c7fea539fda869252cb7f277bcc12b731a36a1fafe923708402dc43eb9ff4431d946efff375ea676ad07bd4571b5c5dd44ed7f0d640b36fcf6888f744c3ed7ad6d42035756765ec8edf52fbd8adb6da2767648fc970745139721cbd1c3bf693d82e7d877bf8f5f86daf7ddaf717f67c4b4ed7eb4f45a491dcdeac44425ff04c8cf351a3ca3b918578e7b730a946a5e742cfad21a2900046fe4b29a59452dec82e8eba30bafe3b746ea896ebee21bd3c57fecf94f39d45c12aa368ff9369d994f267bce22f83a21bde445444991a74cba8068871d42d55fc7ebe59b2dc7e8e45d900318e1ae42b7bbc650dacf8b2c4189c0214263a822e621184da1f6fba4583fc25310cb8a35bdbbbfb7079c7d9f063be7813e05a421bf7528ce4947ef29a3ea2d373a797df121b60578bddd093eacdbe99fde55e4aceaab89fd6f426eb489ca5f474e97bef495f2cf917d814a1228cb22071e912860473fa7cae98a47c22f6763151a8dfc45bba5872d3e611712d0dd2c47c7c37af16a1861eeb207cb90f12fb6e7c42d81169224e6e677a7f930d9b48665d8b0d6b88378c37fbdb85d2edd74e1f9fbed056db82717cb3dae7480d3ac73963a8fcec732e0d3ab9525a4f621c7f256ae8b158b7b420758b83e8954ed332291d51d7df9d80c406c232ecb926cb0c02c99131763346d059f1c10883fbeff4bbb41e84bb0e838eb3e2ebcc4ca3b9a1ce852148f4dad9dddde795ff030341b83b6d10ee4a4b8144c6891f8bf8fcfc500ea3e60189577e77e2bb7940b6ef388e1d2325e7c9ef4e3fb6059c60d0aefcce63cff33c2f368d914f2de5d8b5cb9969948b990f645a2ede9e19b71a6c4137be94f93b0d5464a53cba4534e845d78718c7819ce5bd20aff4a0302b9a560b72d697430d3de8ba077915a16ec5cda88bc0494349dd4a4dc9719f06db8cee2fdd6134974ef2a13d4f2ecdeaff828251c3487d3123f3b99d4db9366eb43389003ac0322a3c707f66e36a5f0a506a987910fe33a84a3714832e052835ac578649a6d1a50d72208558edaf6e741fd0d4dd5de8b9fd32747fd331b3b889bffc9ff90440216415588526526fb4a1929fecfd7fa6747ff993d91f577243fef8d30e41dd282d330afc8a1e914884def836b052d1193f5cc0884112aebc78aec4ef8936c89e533e29dc9d7bf4a1e31baae9683e765c35622d748bb51c79914adc85c3d0b209eee0bee7453fd57c393f1a8cd0df2c0fb50b787e094951bbd32ac8e7978ecc01cb80b91872e83ac7cb387077ff6e18635d866211c65de47317d95646cb1ea550b432a881bae590f440c7190e14d450e7eae8e848d927dc237c427f8873638c66196b5acf9106fb3bd260c72349f8234019317696659de9c439e79c73ce199b1e79f6fc2f270775fe921a97c9dde92ea74b2502a2afad08f73bcda35b3bc0ff5a5fc747c75ff7013d9418e6b5596e56f48f05c56e844977295dee52ba4b194b50a34540cfe57762859f5f57d8f292bfde36d8c2c5c7015d17846f4c7d36548ec115415c8ec11541770c2e5dc4e0a283f9cc2c1217b1a4f97142c8b83262eee29492bac52d71c12d0e08314ec95df30553064af7e48f743b895bea0fa857a8144ed6743d0915cd8800000000c314002020100c078402814830209465d17614800c7c98467c58a04ab32888719842c818430000100010010181a16900005058d91dd36e3b8e13d108e51ec42bee22cdae14cd50b913ec1749ace92bc43c02228a8da08e97747213088ab01f20cb1d70574575fc97f5115c42ea4b0ea3cbc2550a3c690b7dc5d33cb1e7d0646dc26d05ce9f74244994d7c60d28be264d9218205e2d7b074fccde5d8d15a740216591d4e8f97274e313889aa8986e5b4ea25799a6be80b44be7792d84a3915f822ee6ae17d72ee97d88450972883fcc1534cb837b706471f4f75b517de6fd33464b3d79b9d670416f7b137a578413d97809452d7170238f4bf6057b9d71a11b06814797ec6545544393f855e3a378dd105729a6820760b6605faa45dc4e5e5ab518e4acad2e468a930cfa1458d051932248a571af3dbc92a7b41105d8b892cf76a04d844d9b19024e71822196c538a4fdc3bbaf96d5f083cee9f44f8c6a19cb181fa43002f213b7da5c2d3903079209889514e3ce9c98d854217e07cc1b605a178d4517ccaac3f19d26eea56a9c47ada942e0ef91959805bd354ffb8a43fe8aff63756ef30632e72250a6ba98bc6bf393c9f6eca47c7382373123ed95790c8a2389f93e99a913e9d6216c3eafc74bfaabf8cccb7be1c8129866aab073dc34714e05aaa1d83cd0a34e0ba04e21c43a7c81ce6d9e63f02600475cf3c39e2fc44d81a78eabe8349a6699601ec7015fd17fcff4fa9e35a34f893acd1263fc7b64c860dee7d5620416a16c8dd40bd4288e14b125778119441fbc16c816f4171df92e9983523abdc2a0855c68ef75cc837d7cdb9f59f3496d536ac5ef0ea7e6bff5bb09f5de802b5378611919a4093f0ec74a76f9db1f316fc9e26c1146dccae8149f96ad681593c7e75b12f982f69c203d6b0c1f9a3905daff88221d5294c8e4ceed15256822ad7eb5837f040d4ca6a66d87ec6e846669a643a386f274fbef5b4b5c059b85568d4127fb4a81159aa7d3ad4ca9491ba167500d81d6e4062cf09501811a8b8264929f04e8d802188d37173791d86e3b53e73a815be7d0629dd7bacc1b8e94bcacdba2d54dbc7a1906857421aaa3b539107f08e628ce191d84215a75b7aa0544d6da8eacf6b033bdbdefeb6733d33a02b6d7a3ca502869e1386d012800ec84ee6a64077b2664e7a6b6c3aa66156b2b0175b4718dec488e167bb48d9caeac31e111d773bd2c1c8d6b21965c1a1c51cb0133f1eab99caf82c978d1e93fd0907e429adb8b5e2ff5757cc7f160cdc03dc4fe6bfda340923976124af1e9eceb407785d1f5946f3db1995e2f996d74000cc4b01dc036ea39e573877542b9fd014b2f3a2a3468abb7d84ad97fa5a757e84f679670be8f23e8c7cf02c3a7fca669715b194e147f5f2ce5043ed79d86835e250e686f1efd3b5d77cf85d511359cc5a00d780874d910344928990083520681c352a4698e411335a0f7bd160f2d960b2ceb70e45e6b911fe0097627e21000fa500b2009c046900a840c05fba266f33ee81b6d7927c21c39eeaa295c30afc25da37a26b2685632d7f83bd68a2469245173e5824e2d6d418458646b343f1f5f7ade65d635d6630dd95a3793fab0351130399ddebb28db2177eeb8568b1f1c5781a9db4761bf7413e106ffa16d8756ad699a2767adcfbdfeaf18ef22b5720a53691bb4a94b5feb42e47542bc34fa86e77ed921bc2137d3bf0354aef74a15fea4b921fc0701a5aafac606e6da540c66093e8d0e27bbf3ae5dedcca492dd71d00cafafaa5503726951f42928060217e2ec055f9781c8e4ccb33074447695ac03138dd29569ac62a5331dab163ced1ede7d2ff9bc1f2fb122e50560f15f3bdb3a4d848c3a10538b4b3c39678b547309932106878f73d9149b166dc1632fda1478e3d7ac93f9b636c698a8e36e5fc3e250472abfdf438f05251f79c628b911ae589c277d6725cd0c14ab5db93b87908b74b8d7c27d95e71f203e82d1d8e440739de3d8ecd39358d10ddd92137c32275cec2f21937c09322f78529d06812d32048f961398dff2b959fa8627c5e71a056be18c5c4a7cb9c782ac1f1619c36a0c9543d898310920d4137701e0eec2fc10958b9e70453de9027b3897b2832472a0f22f164c8b5070026057ee8c2c30d63fb150a02a27407f0950624fb61b558d65828dd9592c0d28793d1fcdc7a23b9da55957c9da70bd1430a49fe2300a4c160c6f91b396fc9bc5ea582eff6e9431d6c04223c5c266f8ea9317a9f002921d1c78f62fab13944143f001cc2376b4e4c7cfcf104a65dd0406d22eaebd2a765a19b34c4356016fb683908f4db6ae3d419b0d033d19e38605d85427f7d9e586b41787e6a3bd4f3a8cc3e5716d90cd03992f0ad642468578bea150f4c0838663c976d830bb6aba4796fe21ff7c480d0f2b326e0ee844ebaa3eee9c5619f8840f44f6f951256081f4b1970b17a24e2fbc0ffb8c23be0d4055a3c6c1e42b7ef4d3e996bbcfba0111815f15c5fa92ec29c13d9978ab363fac5de8563fa4c1936192f12bc1ca1172e9523f8259c00f910c25066148e175a9a54e9748201b94cbfd57c49f5b52a106e8e9f8346579aae37d2c2881418df48f4f98971b8ffc99f668b0a8c1ac2a1f451e222a88f0437ed5c5062d281d67c14cdd02696914f09728e7a38d43d179c38871aeec56d44bb56c37771fabba95868f72650eb4f150ddcfe1b79a87dfec383ac6d91a7494f85e31f749d1f3d8a1a2d81993f020499dee3eb8fb8d5760acdb25d72e136ee9858b18b12ada2c46cdd6b37dfc722ec92d31342d8e2cb43ef3c77d5610bd4712cd6ab2a393b956a2cf20bb450bc044bc1a4b0be02c542ac6de68a9a669c44b96791c6e8ce0856d0a62feabfafdc408691ac68bb3c061fe121910bec72c03001793eda2871db6f5aad41bbf118084b80f0ce41195a1090f3136e9cd33defe7e0cb8f68ffbcaab965e8aa9eae6b59a0ca74c70e6de45cadfee87522c8bc6d1031a223a5390ec87c4be63ca1a65fa885412dbacbc8765e390ea00d4d3fe077798970e86cf77598b35080ce655a34d7b7f8043f562f21f0db971bf89b014d4d7878968489195289c014a2e57e5f59507e1b930a4db2892d51f0aa7bc7272720fdeee5254f4cd6dbc6bc88efb24e5f95c1c2b2e8942aace1032cc09d5a967a19023f7022b239cb1c11c0bc257a3bcd442092d6f2a8d28dd30a3462f0eab0c892e8cfa0288b0383dead23f0c21a08f85fbc3756630b931439d3a919c3f2c96015994a0f3aa4c63f40364786632fc9701b992345b52c882eaa5cd6a8076817b39b117a65e1f4ef9cb8ce04b8267efabfda8584d99d600678246b6a4642e8b4c91e4ed028ccab5391b9894a63f2f34d6c168372ba326e88fffd1906ce0fc2a7bbbec702e73f5a8d46c87730108bb5d3b8d3af37616727ecf635f3ec937b2eb7dc05d99fe97af370ab8ee57885fb8dc9378ef9b5f75dac2c1f38d425baf99976ba00d3445758d997937fa3a5303de2036fb7db1f1d773f278e5f0e2ad8e20abb6e80371cb7cedb0c5d20d8432a67d410087b493c2fd2b2c20e943c82a0b1448dad0bb0ea1e365d0789813488d10be7612a036072c15f81e12f04b65c52883682d9518dcfc5aad9f6b0649319eb71426ad8c1d02c5fedb27e6dfd3a2d6bb45d5c417496d919cb46464503d0d16dc325fe2f3593ce998100b170ce19be798c581c484364655b899be2cdcf314e51a029db48de26d16072f479000c4e21cbddaf7d4f9171d3a3d81d07675e427a0ca4d166737b7acd2f64faf154bf5a38334281adf38ea934c6d33b3e913bf404fbbc9efc7c4e82a0b2c83bd081540b2e931709d2de0fe1b8487f87dce42e7e859cfa9cddbec27bcdc481d86eed02db60640b12c4703080e1b0926b631e2c008fe030bd6239b9f6b6172a78a34de6896c64bd324dbb582b0fb6c8ab9c3193e24252a19ed1d7df26fafce47aa0eb35c55e889c38c5171bbbca0a1b9cb65f0a08ca070ebe13bd5f7fa4b9ef8c134593afdc02c3e4c1eb7ccce78d5936a3c347d25ccb02d31839b0df347bdfe53cb2c481561a53f4615a90167824f9ee4368c7e32be3ccc2c4651ca90199a32838ce8f1328399c0b3b8852d42b78ed8464c516223a8e5955d877aa1a28f655e5816d2a117415a6632c002b0b9578839eb1a9a1b70bdd5e1d30f1073533a5cf9ef9aabe943561962d7b38ec124c5cf5c9d9d17b90bc3568e5680cc82019200005e9e2034fbec8d86a862d60e0d7acf0a0de86308c97e5c408405427fe01fddea0548319120459abd4ddf830e601aa6a7367f4eeee7b99cb75d6fa2fad335d8014c7341e081d52ce4aebbbc82960da39dd5633aeb1590149fc009395e8e7101aca4248e7d11ad6c2eca88f39844a363ce50b52d597204535f5a92394e0c10a45c4655af8c0c5c686457ab9518a812cb68a641e4d027b730c547533faae97d3623c3dbfbd915b69220dea4039a1819a78a915349d9cbd27bd0a6fa3545ff0fec533f3d848faeeb0540f286467fe71a24a3996888df90729a5c0b3676279925571352b718157416e446ffd7dfd416b27630af515e697dcc0dd23f8c706ab325c084a8991b92e5e186f0f9494361a843f928d840191fadd5285192a203a0d79c3d965a5ca20b0a20720bc13de2dff3c1d5ab21c184922a5ee9649a86c8ad047cc2008c919846af6249fa023165bf14a065eba32970e3306c7cc0319eb91c343616707045544412acd500ee5a037ed1281a2f8b18c29af700f76cf6f60102bc770840cdfe5739e9bd09475ecead0f20d78cc05328f7726c840e28535d4593ac05f1795596e05fd92e73b09340fc71f06c0dd241a5a5298f3eab530a030e9972a8b9f2c7cb78f4819f72abfe057f020ef5c7f67acfd3164f667039d17b812af9b098037946d3fc5f0d83ce098520fe6b91105e70148a02b13f376dafe14c825f8c520b0d87643b0d3281b989dd1e9df99b0ecbbf886eb212031cddf5e073ebcd458e628ae628cbdc026265b95182d28ebdfa0a8df7736efc7e2316a6fd645fb066e552bb1bdf1b6b1fa8ade2f83ed6286d4671a5519e3b5c298ebec2a97da3e259e9afcfc15c9672f566317c13f28f0be82a3a89fa5f8a4fe4a6b0a2af342d0bd892323ba9c9d87114760e19802966d26b5fc80d0b074b691d29a98f0e24a2801254bb664a34e9addc42c8d4511f32380ccf138f302c3dac799df7e59c8480d9c690fbcfc3b678cad2286a2881b1dd29fa32f0eb9f072cdd9cde89be1521da7d5b17b6358ce6de6a0200131e4331c98779e1bd3fc6870001942d5d9e9af5525651af9eeba02dd2f2a808b866f9710d800fede2a073439f4c3a2baba9472999a690baf27e0e5193ad5007f799a69aa7ab4b689ba4ae687161ea0f0e5bd6bcd4d1200ed503fa032bf864ae6fda0d85d008095f1e36d6f01a86ac52693425d7d0769156efa0f75198a802ce958855d6865e5b123b50a4785bde98cd7ec1f3c733db8038ef437560fcc0fe023125862031c884867fbfecf5d00bae7f873e2a22cb94e2acf3198f330eaf8beac075499f76b3d67daa631426034286f16d0eb15601f551bf3156a1c13d4454ecd8a1137367760b00565920806e1301fe839c04122b777bcc08ae33026b535442bdf01e1bc16fe20a8145662c78e2cadfd5aa48982281f46565ac7f785e8e786f0575700299430b90bcbbab622a5c18670069bed3ef591fee3975ada79aec20f27732d02b5afd63db06eb7a951277203389a71c1a38ec9d8c5ca930e9bbbeb0bee4e5d2098e8418ab95b461bb04a412a590c5f0a446fd082837d58a49ac1ce1401185f5174d1332d5b32bf6afd4922e53d9444c07d9eca34632c7d9fe6b1063f9baa0515f449d03dc99cda75d902b3179cb516419c3d87b21bdc000344f3bd2afa59ddc1b6f7629723108564200179ae8f300c7b29ec145ab80b84619e7e47f67557780d3055042da8c4a1d7ac94b7fee28d9485b70b856a86c4c5911622f4be5f20e86b0240a42c22fe56e3718a5bbebde77bd02518dd9321fc55f8d0cab15356cd2a4e145d75ca95e620cd6017e57082e2da04a240a3d2bf70c17e4caaa3ea762b8f3995070df2671f19b85114e37fd6fa225d72165c445c6a47477560a5cbf101ee9660201b60d17683ae5146c892847b208ecc3975fea473ecbcd5f09a519204d6b506f90e11c73e296196d842f1b9cf622dd1202d5b894e58da826b51d42d13e026f01b203d59460a42a2bd09ac42eec1255a0c259e7b7dbae67000b50c77a22e53566a5a4f4d909035128df85bb3f3b7f6e450dafcbe1197d41e658cb58ecf97767a8d9cabf6cdf082531ab63fb38aaa22e9331a3a71ce2b65064ce3a2f20ce4c07a515d64c6c8d943618a95190f57b44814ce27a7a6a5392723e58622759dccb0c387f99e18fad48cd0ce816e86bac27c58060c432703a328bb4a649323930fbdc9bc83c8546e2e4747b66008fc522257cab8486de127e9cf38d63ff401c4d3cbec357fd5bc62d2034f20a3be9dd08b31c1387b7fb0d0c6f4482c0a5e9dc8caf9c0f3840d812d3f0868be70f1d113d3ea91f37bccdaa2289a906fc7f2d8637a5a2021f00849c2a8df60ba5088803f66fb644a125231fe3fba43eeb61336d7ed99c5baa145c7657818260ce8821ce80cbd49998f618400e0bd206fcb4247a590f8822986d601e70245dbcf93675a88ef41925c21f329373ea286023526d5b7c9fd752e0b1a1544c314392f697f086dbeb6c84834b270c25be694ba0599423931852a15b80944df45b79ddf00aeff7739ff560ea4a9eddf2d8c41f3936090b454fb7e8394ae6ea082b740f4f87d18d39d48b188fa78f64629a18ba0e0731767402ddb5aef6c16c5500461c8f58770ce8656cb51fadb1013a08f831db2d30a5822aaca664dfb39c8cd6f3c40304d489473320be9f719a92b0a312e943d95358f2a33d6c09e5c3b19b2682a8baff2190cb7b3aabcfc3d00ea8cb3f9a1e0f16d302f79064aed9d77e0f65ca74e636d3f820b08f91b2c1e81905c195f3961cf4773f3285e14b7f197524afdf1b684362faa8298800b5762085b2d60e563cc7022585843c25110bcfe069a68eac29763e14c7c2a644a1546d0f26d6730e57ec70d2be489d00630617c7859c31caa849a8d81ba42a882ea875e02c24cdb91722cf2cdfd208706fc622874e3a1c9d55b474ca5daf0c49c8c44082153e1878e8f70816d5703e4fc32b3537db57b7df1ae54f53274e1fc38966e28c855ee632bd995e94b907635397b106bf4391fd823db690edcc42d48e1b1b25c92706d67f67f3832be813b6b8bc9b63f75f0a17d3f1aef4602670b9d08886b1ed09b7390e6fa4dcab2e64f2b60b6e7669c3efa2e116aecf3dac2b22bad73126e939a60c041498576ac07466677ce35887d70598b44425e5f7e286199378edd525379c711a69c624f7090233a9677ba72d8f345c070737eae7006db51503b2c010022735feec4fc35c4167b94c3bbc3f5ff3faa2ab20a1967d1b2abb73e4ef580a6c2ab8d56492365f9cc7ac0abff3c6b3461d974a0a16248ad2d8b7999d4abd971b04f55a0f055980ca14decc82f962c23d2106a3ead277cad5758fc9691842c23b793315d75f54e3b125992cdf9bca3b308e7a353f5195b4bbd2f6c00b79a31aa435986bd3c64c431ede75f630805723a3f1503ac0950e2fef74455f0d5a678b89ad0cd0ad801c2b8a71594fd378dc30741127f64a61054c28227ee074489658886bb33a4ca476538152a2a336ded0b60b73c2cc3d70f844dc9a1cb44810df64c2c71933f420eaf50935685def4299f6c33dd3be4bd89d7cbc084410546877725d0ec89a9ab3b7363ed53ca11877da5c7e7c177e5d2602d3340c1f4da30d3189297f419ba3b7d4147ed60148e86f833662c15253cd488aec3bc04efb2b961b2390323575390fdf72d4fc576e6aea584afa128670af2a3ca7a65763f1e300b46aa30ce855c7d9275ed34f33160114a96fd228d914365280678dc66bca597be779d2fa5c5b095581c8da44a5312519f7c93723b156cf4e37fe99f9c18b840293a06c7a3f1d5c43120a475ad752ecad7ad7352de1374c8b81792f6e9b52a4bd71a219ee991a01758c3237b3a98c858c08d60b79c6194ba751133ed451aa6cfc6da7f7f5e0a8fd5543d052a6e5d387038a1aab51d8f2cd48a149c8559c560c43757089af8e6d9a177fb89d7172265f89b2706f54f819dbf31766e39312a5cb9084aae0f3546afae88dbb9cdb7a12588cc4b1e08d49287d333af4d8d480f3d7097bdc5bc0633a1a158b111ebf05bc626b99641c4f786c229094b0a67aa42e5bd065d8c6c12647cd479ce42f5054dcbf3bce687cafe816a817d7489787a4ddb512412f992d0c3f308ba6356d7e502717bff868b0ea24b521986195cd471e75ebf3a0a00cc1d1ac367332d03bf4ff429775f7ae7123d9500b3a81d1ae959515e5e392aaa3d87282e13748b80a83c7b83feaf99f760fd7f7a2040a4447483361b7dd6a4374b009569fafae5154ccb76bb9b745dc2e98e19c1e61a964a0cd4487ca0e5e49b47b348a4fcb191aaf215e8cda961b911e8c0d0c3f07fae86661e80fe7d2e008ec1756d08fdccd67418a0b30238329ed87a9385cdda4c86c73813de4e5065b352e4d68297e8b5d9581fd95d01b1713e1a34fab9e24b0cb02f7f36d269c53af5c10b83b8f8efcc5b37462b4a3bd0fd8318b753480318d489cc7dfec30b232a84aae6739345f2c2222ad1e87f48dae2ea828322295ab351dae890588b4217e5ec93d1b6a078969754866fdc17a8c71672feb944bd1a49a0589409af614cc51b08b17670a4890634eee86688c5fcc31130ec750abb7c80a96087516996a5b90b33fc57d2bdb2b27321f11bd0831809587041836e2e22d17440df69d7f4c8f746aa9d6b426768104ccb00bb4f0b27ea2f363541b00958fbe495338c227a0871d50c183814fdf68ba822d5f82234a09705c7065c772f6a3fe33fd164005fdc6f765cb1a45724d1da5e490fe2b962ba0ec2a93a2cf06ff86dbaf2116fa0795c90a029cf606d54ece91bbbde61f9c4611c01da723b8a1c80795636e0498c082ca9c5b41511f7d97a6911d9148cf1328d8c524417f34d872119b949e6336b11b25ac17d3a05277f40d7b66daec4948ad8e6f95a073c24f90989e2c60814b0867de2e5f6b8e1b986b6ad2e7d020cc1339d9e68045d7be567434de52f9ba9d2e8352c8968995283767b3e9b8ac3907eb83555a8d11efa418824f49dd8094820df139b35f9fa99927b0779a51448d09891d7ca680154599375137f2748dabbb03e236f9ef9bf826641fba221c217e29b78fefc32e892690354dcd16b5b89b309669c1d40dee0ea7a415b63a5061f6f69039df34d9336187e2b0ea6e87a11bcbe28ebf44b77fd263807f9ed5ad35878e82beca71f2328a886233bc9621c19306a15e90effda6f92cfa874cce691828b9cf29ef6e68e0df1b4f97864d4689c5bac8962743130b4bbc5a232128d6e0f9aebab07acae70bce9c39c0aa4f7df0b66688e0244009e1c01213dd99f9d86b0ca1eee17ca1bbdea8999f396698d177c351c7f7ee50fef5cfd0231a1adcbdcf0a661e4f61a70ac2f51ae5ac4e72f8a30d900c15ee85a0b21a490a42537feb222a887499e7fe42080ad731668ac868731af4ac264c8f3e8e9e094c3e5e5460f42189abf0c65c5334d8895e0778503ad8234903ee2996412c5c5f60a5bcb2e66bdd8992c841606b815ad09c805911580c08452122c641965ddcc6b3e58b595a100875db5ab6cc565bad49f3bc080869ed79f890d411173e847583de175f9fa6b48ffa21ea1dfb85c5ee8e7f41a277b13ee3d2a44eaf8a3a84462bfd1897c2e3b4150a82f618abd564c00be703e9390a4eb2c523cd275a3247fda0a0fe342edaf00bdb1292d6a44dcd8ca5f8afa9ba049fdb3e034afdd8bc514a257931c7fd4ae4836c4140f28a08ff18ee87c0221063391003196ea181000a2c36e328d858ce23ac50c3016f7e3e7d0ab03fbdab9d863b87eb4e9d4cdd0e16d00b3703036bcc13d5d1a30b67275b1582651bdced638f485d3d5a5ee42e946c8e81b4320206ae86e3539d586df5442ffaf16b6b8183b8b4498caecb1ec46d9496073a035074d12f7dc7d9f589046dd02d9c10b4b0b0a19c039d8d2ca4db0dd7f4fb610705c2a14622acfde17d18d34fa1a4fe53809a4105897a3974a0ac57c51c7cdb02336de360e02ae208a84582d562047feddcbdd7e2549cfe2606df1620e84ea521264e249a99127b4514e62a514e7e80b1888f2dcf37a9512f0ff53797438f6c8240f7e6f63b26d137758297cd750a13a674e029f5e06b70dec17d6e732f82dd1926a862efeac82f86309f02bc4e93d03c0613ce9c85bf6ac23ece47c9130c222acbcc2c1b56e6b20dd1f93d6d96b811fba8077e8884c7235ef30a43a67c4f90f9340386e6e0ab27b87570c804ccc1121b46be6638125f866b5d3a41200d6b413270bbaaf71bfcf6457a6333ab79fb2d1e6e5021481bd6d685b453567b282a847de3190fe02ded12f7c66f21ce9e41cb807bfb9b43a8d5c4ec2d1ff310b4137b3503c5aab02cbb378317ad5a693c568cccc212058cb9aa58d3b2c54e0c8bffd2dfcb839e9ed9853b44a9b85902318ef6ae03649d10eaf5ca5728303857d6a286deeb79557750792c7eaca52677ed4aaea821c052533176cc158436e6b1dda2ba223b63d0a5959a87026783daecc153b213e8bc0b01a3370192a6c5a5c6c687c50518435e80ba149e934df94fdcd419c3bd5b483aeb65d4934eafd226456e2ba6f66aecb1141cfd751b7c8759597862cf79fdc887ffac9f933662810087ccce553b8d32b3d363291e2effbda1405aa36ca84d3f91774106605d9b38ca8a30cedd81ca571c435d29ae54b5f844ec519f65838b3fd0258601d7e021f9d8835afbbdc53f943294cfe2f0ce3f00aeb5ee3b5c1a99ad066824d8e0b1200f6c8eb117ad3f4caf144dc0c8905b2a53c288bf4d34457e537f8d22a10fdc01e524ef24d716f06b60a40cec8d107faa6cdf63426b593196b23d863d7085276efa3bd7d7f8c27372096f12e7cf1ea3342d7572118fc8133de6fccf47dfa04957190090cc7d7be786cba8861c9dcef30be7ebc0b924c90ead271eba6e1c398b2316d9f1870a9e16e16356b3d065e8a5b693eaca17c5f944416a7ebc5af3a5231a7aba838172435a2115e6725dcdcb8d4e8f02c028d06be2eb0290a5d0c0bc194b6db6bd6c8c3de787db9568feff965351a4fc5383439dd2cd008ca55c800841034a49632ac4bdebff7e265f67ca66b49169ca7cdd47f6ee836bc9a41f5a4dbc5b93422e20c1a07fa414922bb08c29d12f7cdcf950e26cc9887443f38233a1c6de324924ba10be596f2804b27a1b4ac651eb7363238fa8178989c09515e1128262d2e2e087ccdf7b6f2af3cada769ac7e70354dffcbe41d2b1000d148e9d9525c9da164402be5e8d43e7bed259adc5d79765107204ac30169c630614df16353da1b92b6d38708310b93a62c6c0cae42f2f65f6612f04d1d382485e3d1bf19841941e70626c98545fa1985c479f571605f55f40d9a662a7b3d47e4fd815963ea970d72c9676e9d9a266f5a9555ec75de1c245a9ed4f44af02c616b517cff94c5139b4771a6f32d1136f6421a89ffcfba0742044afff5e0fe049af9942f1368998de3b9a22046e3800ca45098c886d8d88d78bb42c23ff8e371e836985f55f2dd4c5a97f9c54b82fec5a08191eef575ae83e040861f2a337218bda815ac085c2cf171788a56c4731bef1c82bb909be5e45be6615492b350a5cacd0ce1e2001153d8a203c5de2c6999933d839cd2b5f632776c6015ad90829b26f5035f925223ddb6ba77bc13fe5636baadf643036c03c194d884e75def9ee02267039f44a58c4fc108482e42df00dfdfd5fc9aabf2856d5b31e6b6cdc3b1d82a0087022c16bd7705683cfca89c7ebffd832b6f090ad560f6fe6e7b38300a133255265170d00965986ea38aed1647c630108ea9acb0832562bb22090d9911deb2802f87958d2a41585bf8142f787d4e725d77ce8ff56ad814654cdf966062d16fd188411021d58a0cae8dbd0245ce87749beb7431b56bdede22b664da10f894fc4da8366e8afc30644db4521a96dfe7b62813a1131296d4c5fb8e37452bc9b76328a2f2b7df394c0276e4778f4196ce22dbeaa38bff4a8dea00eb0f0ece86c52e11257138fd2069bbe2ab8de8aaa804902d39e846c2372304ae56ab73be63b4143e64977be0bb818bd4072dfb130d19d625ca4c240923c1e80e1d9ed2d85b7a95562503c878cbaea8d922dc732c798167110c28f065cc6ba202a3a4d180c6387e30ce8d47c8368af7575dc0a804148d0ccd89db83c8d71e1a05ed3bb4e44819795a85bde68c4318629fdd408b4db985a077fe24965c49dd30868b68d02e724d5de682663292057a11dcd688067b111c52fb256e512494f585652b4f4247d5614a311a87424a7e30ba255da4a176d89a97d2987d55df9be0d41176ecd8a5e21125329b8fda00c3cb398ab90f6531efd0d42405b9d4a09aaaac68908cc0ec1ca4df1b2ece475b6c5ac0ccb2921c3ec42087c7a5f8d3ac0737b221204b66fbeae34dacd9d4dee8f99c9878df6c6d233886deced66928361c59e5ca33b33e0535e2b4b336a90967466f78b2089f03305b916d572e7aa7ecaf1ac5496a6f4df898d439ad0c10c362a265e20e10c8389db3b03f4a3a973638a908e67bccdcf0129661db1c8540c1f1e2942bb09663f1ce614f529521c559b03ca7ec744cea4f5e4dcb60ceb6e1ff4bf04ac9c1081ced233f249582162cc0df7dd076c5e6e680c994f370be1917ddc9a79e6315ec6c1f8d599b2fc068230f1b9b09c81c92a02c3912df0b05116d74408bef8918b170436568d57ba24d3e72a23c1b956fa7edc55b49edbb6e017ca70b85250505aea8b3b9a4d3b00170f13b8b1bcde4eb3014eafc1106dfb6d0e6b299ae97f01d7d9fa5c806600ce3a173f57e8df5cc1881e9ba22084181e86ebd69656e1048b45e77bca2d37234f0ace3b7a9776c1aac3f9428c868f59f522537e667c1284548fb66cab6d3953b10c9569f9996f597aca34de9fabac04ca72eef2fcf55d2e0d5e0eb19cfb9e3882c970521e614638a6d0071dfcb91fda5aa1fe8a9604ecdb1d59c0b7f9c41bb98cb6e82b16dd5ce2baa436958ba690965bde70de37908959604b6c3aae532550a0b917424aec9cd82d133f685e100fee44a53c3916dccfef9c022da0b2c4d5548f727bfcf1027ab3f9cd8e715330039af6550ce755aa866fb75e7f83ae4ea05e23d9a370c8a5f06c99c1e77777b442a5eb4aaea99d562e5b6e97a7fa600b64fac3b607e2b92438ceaff6e828c5224a57bd4aedb0cb21c7c09a638d61c95582958ee50a4814391110fc15b9ce046187426050b0a8ab188362701cefb2227afcd6e7cc8cfa4b76485a1fa05014412e1a2d1672daab5fc380ac4f457ac698ad4b40e796e37b9456465c1b04dcf97e68e1a228ccbd3b403fb4c4f54bc8054370d309339a4511829c8261bccbf0053176a4881241146986557b00d1c9485f163a300ec55652e04f77a48d06874f5cb533528ed60e9854aad8a86a124ba3708bd0d65d003fae32222fd30a3e48229d9defd7278e10156116d0ac4269a9ef8fc075e012a57a2a973c6d050728304e94f7cbfaaf9d8fe72cff2a4a18ffbf8d80c67bfe9e44b38799bd2d127c02cbe4be4b5c655ebf790f294b78c24182c2676df1ab80338750a380243d87fe890aed71ec630ca93a6483951a8ab6770a0b8bd22b91c0234e26ff00b3c1e091b620adedbf0bc412af6f628d88b145ef658cea7c590c0703346fe742b11854cceb94574f6de9adbe38027b2e478391011ec9958f596265e72fd0e17744578b28ee6a5cabf361875f021925586ff712873220535086f2bb46db8697bcc99f85d23df24617fffd1a1f3b0970c52460dfb2aa5d1e8c13aa84bd4caa72a2ee838387f8138a90de3cc873393a56aa5149a3f57c49a686cec9484371a4aea0dd31202062fd995c17c04a370182c471b94d63fb3f56864e8e353b974f02d03c2cf6a9b9d3a9e8cfeb24e0bbccc2db23dbcd37b20005b7f3a9e5160c09052361524a6e88964b73c2d3cd9bb60cb53ce2bb252f1cfed138ddb4eda52a023551b1d3bb019c00162cd3f2402100dfeec7448968ecd51c8b6180099bae90023746df82e96c13dac82219c5f917a36945f62032701ea945ba94d88309c312c62ac497bd681fde8fbe414d02efc1ed8856f5a9099ca917ead5325e10f5a8e6497f37f27c33c7436a8752170ec85958fc3de01694216f251052fd6802fdf3d822fc8cae26c2ba707607651b4f933a6e7fc6e1ba488705c3a325166652a8891859e89b2df7fea58ffb7bb099799d4cc54a344ac52a5cda47d8269cf76142fc974b7e1c90a6bb598ade5ff62fc6509c8c41ff1680c8f0791096361d8a32c9a6e15ef475cc7054202af17e52c86f800d8edb581c704acbb86a168e0a5aaf62a334257968a771ffc5e35a0594a24ba7cd34f3071e41fc05883d0a0d6258e6acec198360f0fbccc2f9032a69b00ab9bac5258ec685ab64b75739ace2a6d4fd10b1af016878d1e8ac4ef581760b90b86e8cec1bf447834235e77d6fad21cbc1b10937494bcbde6e49f727b1eeb313b651f7f73f3a864784e2aa650f210ac59a5c953958f0c2c4aa4804388f2d73a4699b46d281f99134deb88ca782cf4501b9e2a78dd8308e0b1f4023021640c1b9fb260b35e3e79ecdddba3886fbc4cb441c4ca3a8f5d4f5c1056a2c9b27f7c70bfdf41998c6c3c454905f785a391aae76067f05575ecc3a4af8fb27fcffce7d00cbe307da7598d5476d55415fdc22860733f291014b502b3e837dea7fce6a6e51fbe3621bb4b82cc44d0385878686fb2d5cafa96271b63401eb914f417f052f782faaa0db9507df8d79d2080a232020d7280cd7f8eb9cf41df5ce0f3714ff98b6860d50204caebfef247e9cf51c48ecfe1b6f20da88ac374082b7ba995962bda7d41d350baffa9eba01a9fc0ff725685fa80b52afdf06c85eb7e764055f8e119c8aba5af53bd643aec7a9f382e4723e9990e0de699deccaf380dfab2bb82da151f6ae85ab546ccbeafac03765a7457462ce277a434f1931a5c68688420213204ae1efd2f0f45ab27b3687298080ee8e5c03d66fb9de62b7953c4b81eab29101ea5c768b819da455024c66bccf1473b1486b7b2144313dcdda1678665e1b7cf698988ba5176f7688a45ddc54e0f7d12e062d21d813c45cad9b523f5b05201b31d39a265b285e356b9c7c9b53627eaaa8167c0dab1218abd920a6cae33230808442f019db8190522b2fb8caba2785655571e976d72f68c474ba32197e1c2df56240a0adc336bdfbe109aa9ff5fb72d0a049db0e75cf8a9ec154a6d38509ddc3f4a71b68118057367a9a84d58770adebd5ffadebf0326211a7a642754b08f0254d6daadab22efc6efa4c3c77b6f9fe187742d7e97b0862856ca3ca3aab1ab119c1e5caf44e283d070d349014061f9e4db6851f9a054c509aa37458e467bf64894b2d9121018459e141b90813594d68200b199e6fd02e235f0e037fb38dfa953a87a9be2c36f08b6e1d0d72b6991382cc01124039366226e0e2ae0c01602919d846a99eb0feb3ba63debcf32ef28672b5ae3f9b2f0ce8390acefa0a363f76c1219cc74282e5c4770bdbc5992cccabaf7f475543c4ff3c2100fea1c43eba7c848a08068620eba108ae4101e9eb9c5c6c3733b06068ff3beae3c02b1755c03b068961363753e97225d8f65a34d77ff42747f25372f7e276d5977b80d071ea260ca674cf4ce622cbd8ee70bc31c2d2b7694082aa3405508a75a8b849162d84d7e82112e5a50418291744f6d9ef506103f7e3b0e6ec397a4f816bd5da0f2b1a8bc0a8a14b296ac204866d3267174de0ed2a2e2905c96d693f2a08cbd163696ad038e79e93c2859c9f79fda50d13410b7bea8963e6447f2258422f57e117eb62e33023b825518ccd654916a93168ae6cce5fdb80e8e6ddd68321fa285c24bfa242078b6f028477302c2aae4f17af612a53d1e7f345e4aaaad7d4a915a218b7538309edaaed6786c5c44fc2b14aa4409ad99cb70a48e492c8fc1ff698aab2d2a56e66958c8ec1cbcbaf1edf4b2148384604a2081c50ec4236032b456a0652f4291c5176d66ecab76ab9e65cad6e668467da8875ffe8145971cb6f05c554722dae5f686a95ba1b0f7f25fce89c0125a331b1888e8003e4f8a75a2275299732af1d2a18aaac1d4a18724be33a945637f62faa4b6ecebf3fcc8486dfd103f5164f74f8af5bba9ac56f9e5c797807831a645c61432e9f0e5bf1dde67340827c3cd1ec4bc70a4a7db857b22e87c01c781378bba81f99fe1ae0da4d9ef2ad33e32696fdfb40283392d94c9f3c82d23d6797913307786effd23214ff37b193d9a80b0ab889b34de79100d32a73930f500a0ff53e7e3df78f402a556a39d76e716b421b378e938e97af9286a8bccdd05e925404cc57df2ff127bb88bbd5f2aaefb75def67322b788d1a23061159d5f230de6316586a9b0d9129190bedfb900c1c338e819222ca7d1d59c257582c94831463457363810ea411ca00dcd04d9881d960a6551b7c33942bb1a2a049b567bd4e7dbe7b0da98265eb25f77979be4e3e87d7cfe7713ab95c5e2797cfe9e572b8ba9c3c57979be7e8f3735c5d5e8eaf5746b44e6688563106d164d3d2795afe36cafc92ca827ce9b48437e98b03a8cdd0a4b7348155afa42bb2297be7de7bad4674818ab40735c46654637dd2df2ec5db1fb6bf925d750992b201f51edd55bfd68be44fbcc43a2530010b42789a58b266f85ae8d6a1513eeba1f77a579435fb39e5e061e0dff283cc0eac9de7445de7369c7c1dc3f66f5e7fce73e242be6ae467c6aba3484eed12644a15fb70078b7ff8167b39adfb424ba04ba0d3bf62f40d8e79baba900e4e8648b6ddfc82f41ac3cad4f4d84ddf55892e805716f4effcc53002bc51adf4f4aad0bc5c8edb5bd2a5d0dedc3a10e27b3f581e8911f35b1561eb87428dddbd55865099981eeb601c1f1207d03980e99c17a2495efc447ef8f9bcacc4b36977812185175dde4d98cbc7f7288fd39ec503f71054756bb5219e3ffb4ca27a386e9ff5b385d500abc732701ce587794936d6f1662844fc1bcf4c114d7dbf404660b00f0449814409e387eedc59be9f7bc69743fd24d29d904b231f26598b7928303b15b40c30eae606f1f489d3f04c79cfe2ba7048031fb6d47aad9af4ab43a81e77b87107f5dbe91bc15a579e86a0f0403ca52d3bec48a60fe4d282fd7f55f058aa2ff9821c5eb82ffd918f2f2cadc28ef481a44ea8efadf8828ed1b5654c801c94e610aca1c272f7b87ca280a2a0f43a9e777820815e79c0b8f452b71312b53d576c9de824b4141ea51c0e720187e1f473aac5d26660907f148f5ca7662026a94beee8ab17f02f4756da98c902552e8a467f9ac3374b55792ec4ca726e16b95b1608ce46cc8d8e325f85a9a2dca3f0e343883a04cbab9bc86b99a0f4903789cb7879475620ff77588f6c11a534a0d29a095bc6e6ad58c7768f284b9a1542d99799f128c146097379833d8c1b91089566f23f6d2811420d4af043ad54fbd95822a205d938b0b78d4dd04fdea3e87fe0630043ee1b61bee0655a145135608aab1c3f1a60186980820007655677c13779097a3f18206693dad686e3f3d8e7aca6e0e85e23b2021547f89366d08b02a86bc3d2f3411f8d2916d50503c459769b08fd1b125ec6d2d5f714b7d584cd868705c40d18542361293e920e2c6bd8f7caa3cb7a76cffd17b99f1a4cbbcd26291afdd39fa1331c1b2be22395d71f0a3cc0e932fc69933b2e25b2c261785284ff03d863cc49c72678c3507e5d17dc21766706742fd301583188bdc335771a3ab8a330cb2f44c515a2c503905356efae6219712312b902e8b91a1a71d74f0504586ecbde69e2885da43fc3b46a75a09d4bf1479592384913c0376005259fb875a82f621dec808d127ac99f64537a2cb2ee4fdc5cd4147986786945aa89d0e94235a2ff7e168fa4a6de7568ea4581cbfc3709c9a8eb5a41b3ff8ad50da7f9f34901c99871f8b790921b67612991b63e15b1d9ffe0b29814f6d52ea1839031f0e3f3b82087c0e0868c650503317c61a5fb64cff42541473550f82c7a43137c576d750eae9b8722a90847df2f03da6f9c76131afef90da4efd21524349ce1eef24b90d9b9b89b9b52a4a612ef76b3fbd25ca70925e5855e039493306924efa39f54ae6996f0b0ff71cf21514b34412825bfb3338149f04c8c4408449a2a03308a08d863a1fa193f1fa0ca2c3e949f3e2da073966c2778f491be9730312263ccd2a4ada104641c4da7185dd0b71062b1d8a58e95d5de37622d6518865346f391e8d34e0c7266035acd2352fa5b9f0e4550adc5f57f7e12103d7668222333993bfd94b69f93f5a59ccae143b073e0bbab9d0177754bde25204cb9a00983880f8223c9bf74800093e8720946bff58cb844fadad01ea524840359c92893c658a83a11fee26880ae674b148884047378010ec5e7047bff49351ec7106793974fd5b6749c2e2044bd955b8db0b947fc4751c6eec0780f458619e69bf20e703dd67ed7e506f3729ce530df681fd48cd63e315d2a4fa3a43e6816de9ba1312bcc85594b85e75c696ff3d8769b396ef52fc38bdc8777aa02a803ac6a116d020919bf613ec16db3c59178c1427c26ab6ada02c2f060b11aeeb431eeea931b610324b5ab48b5e1b8b69f20142fc48cfb563e8c1b2b14b4577c6f304afe8a5b69f18f49550bf4a42b9d9856ae12ae9010d7cd7d796dc75a2a71b4924f3d5c9b452d3fa138b9972ceab3f1300559df9d713e9ad3956f8f8afd5a974e66953781bd02ba627837504f6277dcd17feea5b46f14a91226111d508e34f6e07320a98838b7ccb21c3bafe84466317cde00fbb7e04273c5e403c95b14735a0c2448a4a2d670b70af5789980de94fecb53ed4a724540d1f35c2f9a3a99530f4bb378507a42a292e9d0b08641cb4e5b1307a3d43405b3de3367bf9ff0766cdc473d9b910c068ee8acb1417411d946e86630a5e1e481f6dda12c6cb1686441dba94642f248c6d6b3b2e375f8999a7070c44e126015baad64b251f9125d6d78c353e56cca93583371ab27d9ae3bbbe36181c2061116822cb210d56921f8d7b420118c6b6d561dedfbb5caa63e29b8312bef502da4780b418975b99d997f22d6acee7d9aa1c4c4de7e0760ea794f9544a2e001b3ce18c49810544d9e27b5c13313c8858b82010fb93d595c342bf75676084647fece4e7a85d2bf14d765c8beef4326aa6ca715de25e3b150a1a462ce034d59508b5c84b6f11e260a5fcf694549b33ed946f1570e4b854508a339fbe7b3389c45e1b101383d7c485440eb4fdbcd4bb5d10967e11160122402fb7ff1b0cf1507abb7291aac95d22ab1b0e6380125792e39b4b03aa88e7c5d7e17cbf0d3be8177e8dba50a872c24aef3b6fd4df8451c05df8a93c0223a5ff31b501e6c53bb6840562ae3de93a642f800c2bda85d35d474e0616ade3867e2354e3d087df2af841a6109c380c466934941ed8e17c5d82bb55650f1d031d606d1f171634ec8d910054fbf15697628c794fccdde971b33dd3c36d48fe4e41fa2710673dda872d975f7317cc8d26ea7a0236f8cba53eca77445f4d82155892d6714e7b6311b473dfd2fd30886304a714fff16135b52e97446bc11bfb0b1c3444cee897189e5f46449ce4ccf4aca66750abb15b57086ef7bfc7d9be11f264f7257a84ad14574dd18f05f0deaa2c88b50a3d6ad7db87eb990c5ae67591c55d6ef73ed7d672ff1fb802b9376b9449ddec6342ce9e1fe523885b8a46046ca681901dee8120273affccabb82d7ec85994ce264e273c8bdee7f0b212ce02812783680ce6948fe5e8d203e4ae9ad6f0d4b40a4f76ce0c072cc581d5435ee1da1f34e19d8541da515047613bf5585d65d46209d94b51e70e3cfafc9dde4b19d7c9b89fc32fc354144b8f422411d6be29a44f72ccbb76a9a4a69645dd35c3948a54f8754c45a5bcd1c633f2211cdbed9f2ca182544f0a8cf7c974f286024c96bc2396c9249a609a0c0b8d60cc75b9cdca85945b65c14d0a12f8c0c6bf54d700c220a1b580fce61692d04f59a10b889100612c12e10b7a2fbbf2f2698930e26f1b674b2c10f31384c4d25d7148958915c41de39d9521b00e2e52caebe346cbe3978d552df3b335133f5fb1b023ffe23a7308ca47df940bdf3565048c21096d92b1c84fef34ac2358e8eac75b4b5dc035179d541dbfd06b43bd4d42e7223c93250c6102cfcc3b8b8427ce5e3feb1010edd49da6749985438978cf55ae2afc53070fbcda5fc602823fed73866e9c2e873367cc4988d1655d188ce03a3b1b8b92b8659096a939ca8150456b44af6ae7282b6082bee75c0898b2811ead615bb9f5502a0ce57aeff94f47352bff41f300c631880d01706c2f1814539a00ff8303f5d0b555497bc6575271dc3f82eff4f58086fe00843a57fd93e4ed1e6ff5d0ee8076dd0ea875d7a2f8ef8d3dce08e4d08a7d6b0be093e301150289e0424cc8ea23d8c112ef8741996300202c62ab79bdc4ca8d0cf87e6125bad2a23d6ff23122de2b1bde7953bedf6908fc06229dbf3e088394a2d8b2d32ca562dd1a55cc16850384713ba89afbe8220ec320eb243895fb55cc1ea4e42e134f10967365deae2c264f8290a821498908d2e0a1eb0514432a033a00098ca2a584e2d62c96dd89785b1cba1f826b764529049b9ac5c3f237680ee75df344665f8b195900d37ff00bf9602eb2baa0cb81715637f43b9b3eb0e7fe1ebb327d3f3bdd9c3955b798d0084068e7a62ef2ca03aba73073c99cace51440bfe9b3d31b53a1223815f48a88fa2a062b6bebc289fac03a9ff0116056adad7efad35f81bdfb72cfc16fbef80cb190129f7baa418af6dd43b2aebe034d5f105433d0c6afa647f01e72eefff6a8c0437f73735f16f6176f3e9d32c31258fb918458805b3e5b95b71d167f07e2c6d1704bcc137a6e65234c6bd0d6f78a6800cd1d38f2e96127974d3c230c3ac08a6d56c9760122d683ffe8dffa9a5b4ed1dcff1d6d5ad38d8a3328d0470102b7c49b7191aa7cd24d0d6718edcd2481750e36b674ea9e57cb25549dd9d06f896069f5992b16fb2b117b0b95726f7326e55ad88246d8d9e9060ca1c970c0337479de73e149161c70ea41645d159e7d58522da38d25d46ea4175d871e91f37a29f192b1b629fb075d0e37a12e1abd973771ca4b67b447c224fac59884ce1a2337a9598d2e649b77a3b79817215dd2e509ced74ea19ea1f0296501093f9c88e674c5404b4301ccf510514478fc27dddd738ea1742b25fdcf83e1c352650023b5b9c2d0a17ad7ee9ee51b2155586a23cf67b75339f21de4146123e1296792af4b54a47edb60151c3c4e5c3c03b1df863127dedcb7e3ec842914a9f1639d8adb78766c97118587c1638c3f396bf30445e30ec7f48a0c364fe5dd2dc75ff9df8edf47209560d7fab679234b98702638b737db50705f94f865f70d23b941b792355ed051ccc0f2e1f3e356d59f1db8661893c0061e8d2e5b347c14564de0b8abbf0cb0fd106e2d18e3f7ced3cdd7c17f995052a028af98eeaf148a409802c53daa8926b36720c4e32df1d6ec43b2e8b6360eeab78ab6ec2df221816b354aeb1005f8392055af855bb168dbf0770372b08884fd889da4ecff90f2f52950a7902df8245d16880a74b18efa94ec0df28bbaaefcec6cfa758d7980fad017c7dac095cd8a9023b4879a2f46537cc4a23e0e1cc7c068374f7cbc1c6d90cce30bc577a08e478517636437a9ec33100733f9216787722c064d9ccb44b153ccdd17f109b3da4d8a63250d779c7ff984c02ce074391ab762e00f0802a096027269363e8010db74880a333bb30438db0d17885308c40dc207cfc0575bfa72ed408b601d0fc511d4dd017ed0460f76c27b4927920c7a0e5d2a0fe52bf87ef1dfee71e479396add2ac7484f86601dad4719e8e8c9b479cf08c61aa190f4262db1206eb5d8aee65d88c6418a741666a8e0ab574288cf5e98677810b80ce5740e8cbd8543d097abed07d91363f230484bfeec4f45e525fb164487fa15bd1788bdc58d8d45d0f0b44fac94678a5727fb2be99a20164382325df66bca9f6a1db299bd80fac9dc3783f7bab7c9e44fafb867c75276c64c3d9239529f3192f2bec09fdb3b98ad594aa8c59906f16a9c23d4f6f640c562d363ff0c2cd357009e26ffca308fc7765942735666d8bc1d77c819756d68733f0a1de747c1a1eed5f840bc032d1b6eebe351ffdc3662b1808d1947aed296775efc3ff2336da4c8025a61e8aec08935ea58bc7c0b3ce251d0c30b5db5084201276abd34b398e588d923a0260b2d9503d4b60b876e01daf166b22e41ea1a850b7b83f974e608c09243ce9c4c78b429069f35e79ef777cd6934914e75b2ebb930f78dde458450363396dd7063aa72192fce0edd55ebfa986900dc92a372f0339809135bc8cb0559136cf04776a469cb106c8be23841050ae1e3ebdddb9405496f6bcfaed01ad7efa19b36b1ec645d7d06ef00b9a95c2a600e06c68a8bfbed01a24bb5250a763df61110be85d4d849a1d31a583e1a2e5feee402c912f234150345174f700244f30f35a6286e35b46b9cd407961bd273fc4d70876addfe80f11969c0d1b579cea3021b5a743dccf2853ab03dc7c103dc55a25e23019657fa617472ba5b796bc688316415d191a9a2298337e80b989f49171e2ed08736719b08f71f0503274c86638f32a6cbdbc9ec982667c2a6819891cf8601e78d25aa793366ffbc73d2350068ca5673b0298239f74c0bebe570df954b7a84b75a3ee2ac9764b542ceba5d4b086677622822b89886ac8abdbc33e93c7e7a8f93fb13a20cb224b319621d907a8e781c984def4f8b2c25ace66aa8cff9a4c760a4b67c35440ffdc0e2d93c320cb77556ee6c4d3e0339a72edfea80a262e33d28b9baeb95de41ba48198141a3e2151b0138242d47404d54b7d8194e12e4edde81a30be6e5944192e7ec268218609a68e6d6b747b54ae7fb4e7d67d4e21680405cc619e2f670a61c55f346ec5370c8569800d1ace5bf29771235e1ae807400f7a4e759ad6138325be5140af4ab7ed066ab8f6ea2a7ee959e76fdc808af019245db6462112cc29152ccd01ac9cbf82d5bdfa6a919d181f777626b5a7b4f76e3fb3fab2fe1f3651449e1a9314243db7185b8d717ac5404a26a27a6f326da123a620bd3883772146d75be0790e731a0399dbb2b675d15bcb49738f9c0e8bf70a00ff1262a28103f28cf2e34a8e44554364d97a24ba6c3cac276372c34d05fe92f3f058f7b42cd86d804d7186d188e300dbb1d488c479ad00058b4050ddbaeeda20eb84bc528def2d3be2328196956cc02433a31afed9209faaf6c3754c6c6773a5751dff7f2bfeb44cbb60b2641f55723722b9621b7323830004677e14ebcba76c0549d0e9725868940764ec0bffd7628b601315b0c4e98f65dccffe7b7035821594954b5161262d325e2b6d262e229ad8449ef897abcc1beabb82b09685ae2d3e0749f603d0ccc2deb25b70d70c477fc9ef4c0be417283fd798447c7dcb70306f451d6fc7a1546fe96edd4c4cf6720daf21ce8abe37c0c573d5b486df55023bf2d0e2541b50b61b5fb11ceac6c2a4c80c89abd91379d1fde485862a18e025cff715283e9c5617b145255bd67b0f98e05249ace0d3b74cddf00eeb48a8c221d6430fa312fbabe8b22a13a4bd5944815c9a5e29eecf2f61ed5d57faaa941c7d3ab700cb9ba4649e237fe00095ab4c9c7774b867f6f04025765b53722040db0b81316ba4b4f72d16ed4c8fb058b22af8b4f52fb2af00f5548230c75e440e85a5f744d143ad8138941d5c8610ad1d2aec590fea3d06530db8f5b810252bf800ca0241cd38231ca692359004288cf2cb25c396ef19c8e60e974b62c02d2dba8df7f1949f266bc8f93f10ebb8fa455328540475a93434668b70ce3662337f40c26017aa87074adbd97c7850580bef45b702802fe2ea5074899fbf2c7bf382d26dace5fcafab16ac429f930cb9d4f0de814d78ccb216adbb8bfe8375e5c56341036c446adaa71d8392c496fab96377c958f67d1ea3b0d195393deab235d3aa0c8834407ba14dbb41d13059eee6485e41b4034e5f1d2518316ed590a8ca69f34a95da7e5530b118002a83250e54ba8d2eae029d56333df2aeecc8e59c1e34ec9fa1d307838cd9e158d898a02c31d7191a37c892292e59625b872459ed3d5853b81e3c0c3b0219bbc98deabb19e92601195c648fe9b7076ecefdc097d2f8416505d7b0674453748a52f880cff251c550f057e968a8eda6d179d05270de1e3ee90892ce932d3d3d839e9b91dcd14ea93c2fcb83c5bc9e69a014e37c81e2b3369c5046da2b6fc1810c696579c1f3946015ea7ec656e46694be3897ce59925170dca049f4cda1f5d63588b7ecd9aab18b43907570240d23b3476cf5ab9dbd8289961d08968845b75c7dad8ebf0dd506eaf595652f952bc061b5f4bc09c14dca4d3c644218947ea0f9672ebf1dd4c76ecb258b1f8c31124cf6933adae02f70a78c02056e23b705c1359cd06d6c3a4ef811f4bc9536dac637c6f0162f61575c0ce82b8fb9791e03b6572647e39631ea5295c9a827938a77a01c7e906c7d2d092f1a6521e77c4c7558939f497a35a7e3028874aaa8211a96631523d90a8e21d10c6beeeee52a0b9d41734ef293061723d6ac83246582b81370c14c8312beb9ad69599577afa707f2de726fd6ed698debb6815c134ad2c72b2ae3d3d40d06149339242e7ed8ce0383feffd4cd34133d658612999be37089960a95339e62c3d5baed31217e3ffa0657165d3a6f7de715c140f01b859b8cc6b739538938745c577e50206b9708ce2aa50feae3fc1efd35cc7133fb7c7c16cb890c4ebd21ae344883c390a013a2564640cc7731022287caf2f128d6097ed28164b50a78087409522b2940b4e98abd233a07885d5cd64a7276653483da40b2453ccc8033cf1041d570a543a199dcd7dba2983666160bf1f35e44497810ac23bbc643e14b40e1759291cd1be10865af890af4dca6fac986983f21fb7d2a46ea4274e1baa19ff1f794f8c56083e9c09a071966150715afac06697f2a029d09759f01d8b56e99711e1d88562540f2d9d8434dbca9036d217ea0eaf1da33edc691c31c7651922e6db0893e84c346255717a5a31b9e013887f04b110b9038a390aaa641b70014760ca1c98174fe536c4673f9eeaa95a2303bb01cad29f639d81b7ba7079081b0917c79a605830e36ad00419a70d399cc715cfebe0129b3642e4fd96421287413b2cce07ea5e3a7293e4682c1de1a84d41fb15c35080196f2aefb40c987627d0cacd78c3af05f19d354866e4ecad91f500652c3b1f68629362a85782e0eac1e5bc62dbe4dac011cc0b83dbb42c25f5bdc6f2e58f935dbdbf593e68000d4808dba6b71eaf1c99ecbc846177216c2e305cc0ba91ca77b652c353197798ea1131a0234d5931880e4677b6996e6b8cb1629281b997a49507518177cc4da8aabf4ee373bf062ce0a233367b7a2d4ac53539645662f6b360212828cde263b464b33760d128a96298028c9ce41a600d7f0357274925b10bf9943d339161bf1964807d82d28ebffec28bfcc80a30bf9cdfec70ad9469606b56fdd4a42d33c9c25c8009c9521bcaaa4fa2e00ea6a52715301457460b5e05a620d6e3d1f06f59566d044073136c055c3d05513cd06c4dce7ca070b13ffa4e619832d0453f4251d49d00da337db42a8e00f384bc856cc81836717a17eb0a485243a492e1165cc524b09246487ad5c0cc47051b70dc16fa59ff5881f29df487827a9218f6be6584109fc1e5ab52590dbe472f7bbd77e3f80aca1fd6e3bef77d79de33df45d3e95bbbf45586795bb10ac38d81c0155dc5ebdd0cbcc8890f62955f9d4d7814cc726e0ee93408b3a2a0c87e9471fd29d4318534cafb3f18f84a2fc1045753f631eba66978ff38e1bdf32801ade58d1a95f19e29414d9b0b5a25af920bf9b60d467a0a9d3b96be0870fa2ef3285b0d164d21ff9d06b4b4c75f5fe1d0981f857c17744024bfa900cd6625b6b56c4806161108192998b6e89c07e8ae88f897bff515e1e328671b21fb4754e75aed370d615ed14b32143d13b07e75ac3cc7f6fe49b40bb3d9d69d11d48717cbfa5f24a44eb56671b45afdd8931af72aad916fd425df1ac400823534ca2f6776bf06707e30f8931d647733036eb257759d0849c302f62ba2721c6376859dd1fb4d53a6a7a53cd1924e36398fa090dbaa62875bed33b9a4f0bb07e2141fbd28e11949f1223443f53be66b47cdaad481b79273955beaeb12fdbeb74b14412e67df92c17c5cb8c773103d717f42ebcb081ddd2808e9af4e12c935b2d8db84e999aaca8a38493a1e99774a7ac078432f7a0c98cd6301ae98cccca8a2d6801196ef1684e661e9c18a84905c6d453316e0b7db000817b97dbb245cb87e6d70688041265adb7dbc36031f87b2a6dbff9fee200e7bdb9a1d8fa36cc837fe4110c5f94cc89ff3dafc1a281cfc923205707b04214cc38bd536de6cd8577470cfcf0288827371675ebb244abdd1858347adb52ca84cbe920288040884dcea6ae2e8f88c5f4c4308524744b0c2880cc09b3e410f48e2b2722d045e782e2b9ab02b53a9b71fd320c94a6ea9d10308d1a4ecfe48bbd67d45b3060f0227bfae11761e563b89e67c5883eb4d21ca37603645debec18505effc665c65f456af7689f879ca95bcb3f69e24e31b87c9ae27a43271fddda92c40c33c1fd15256db45061847e9605881c4052f620bf3212dafc2389fcf970cf7c333a58a9340309a6e3bd74acab17850309287581ba8cc628171ec98a5531840d2216a07c084856303807bba2a4bc8aa95849d7fc918c30454af3b8c10a2cf3d40b2675bb1d5e9893c3a2f8dcf80d5668d9017adb17fbed00d21d456c5e5732fb8aa0a0274df69904d90086ba58cbece3b652b1528c208a710fe4b1b62987c6aaee3937e33570fc7170e9584c77d127a538512f8760cb2c4b4a0f62db36a315c1ad318a447df64c418aa38f9dba463415bb4671515734c62c23265f1679a0581387a18ce82272733669eaeaeb4513202e02690d63f6afb2475ddbb2f108a36faf52fc9ac74f7119a7cba753e9136f1ef4d8466de8a0ec23eddaf9b240dce6cd3d86ade71cec4a3cd54ac57151696d10d9be1c3b9dad7d2140b274b69bb3a9ecda31da49881d742452e39e653f64022211235b7944f52cb96987ac32e4e20badb139de571acb831f2ec241e13e4d7a223087d871f88213792684b4bd64bbb02c30ff355fb5f2217d8491dcc8b70dc24ac39f6061680d1cf8b00a53b23c6fdd44dd013cfa07c2d4ea8b6ad9d705c007edb16511161d3edf233e562c12a101f8b00087c211afd1dfbf41f481738018a758cb1e14c46b08a4b7bf590792d2d427d2e02377a483b50e1c890d37f3c7e13020e80f7ae3b552457630364c2ca60dd90b487c04ba06e8786a1e3f6c1066492ff9cf0b8b2c8d8415a90f816079d7c21ad60f55ee16a419e22629d96c2ce0d6d848eb4b9c647a222e61588a4942749709a71bb2195a8392c17314ed06dfb5d38b851a5b0a8d7cd0f1098e049a9704f77c302b5c315a60dcf38118bccef35c02808383b7b290aafa2cf13098f96708bc0482b1cc27dc085e1fb6770da27926ec61912aaa210cf54b00fb5e90cc07fea7dad67f8b086419112600692f188dc203b208160633d9fddc3c25eec351ec098dae8b33d641112036a1bd47c9482ab18039b87416c8072905ea3d1eb8f1fe8c2ebfc2698b49a09a46b0b1c112bcef61f32212307194ce5557b02755d576475a7c151cddf399bf8aa11db0ac735cda52253041588eaba418a3b4b82852ad95c6e19c1bcda3fbff25fcc57db17fce418bfff7f95d7b18b00012f28365f95a916b26f049420b14dfa639fb83c01b68f39db6ea7f4750ce8570350601c1cb6a7f9d2876b9984863b82fd4c6216d43f13c5ce504f49a92b9012bba0d0f96c57d5e49d54389248579dfde21b1fabb3b4dcaa9962d24adb42c97926ce1c8b913125df06077d4b11cd0173aeb6585ac2b7af343d1793d7280e2ad397360436ef0ff4d0bf3ee7eb8660ce1c8b91184407ec8ee130889f8bbc3848a3cb1865b10a348fa9d19b3ce0ba95f7e2210dd393a7a30d39ed9090118f407712df35608bb2f92f4aa0fef3cebd1c8a9dbaa16501101a5c5b2240d862bed75ffb626791c265224e82f630414d4632e31b6a022928c88eca9107ef35a3962fba220008bc0a68ae1516ebcebc374c42850a849c2a7f8011e55e0ae9004062112c1734cd3c3b6e9df6043caf5ab17ac00b0119c5045e04d4050ce69660d4d8de8604d51880f3107aa620ae0b888a61c2b4e700a5084d994b20f26be13fca1c7561293eb41d7cbde89ef6580231b748dc5a9561f4b80a437cf0cb7df86a37aa0b0cca6ffe66f5d2da5124bfdb6f5d1fd95a51d3456e7975169a0b0a2670c0f996ee59b054a374cf74f4fbed362bfcffb3adc3eb15534551e325bc543b7e2c21a1201c0165d7944f42ff01cdaf2e3d16e76ac6830843d204dd509ea41b8d3e7edfba465d3f111156c7c6b855b74a4b87b9974e5d676810d99fc3ebf12837b88b6fcc63d8debce41faa85080179a810523dc9722599ed6b2ee4937afe6fb54c3ae88116a5a4db4865344c2c0816f715f2b9adb4a2b4a58b73a1bca4936f24c68a11fb6577160d12e8d6a71e0c6b7dccacacd4dad6c6e2aad2c61dd47222bb91be20a459705b9a436631967b429cf4de189e2d28ac35ca2e891b2d9720d2c0b80baa171f375bbb6296025ccddf20c5917c58d24358484ed3ce0995277b61273a315a81b5b91b913af1824e5bd794a3b13e4796807b7403f54888dcfdcd4f9fd6c59c872242d6dae942199e37dfd03f7e9f7f8fefd3ecfa7d7ebfbf4fa3dbf5e8fd7d7d3f7fa7afb1e7f7fcfebebebf9fd1abf70d8aabbaebc58446de512c838dc1e6ca326aa852d7590cde68fe63b8e016a5c744572b7c921f870ee9498f8a289910a3d8a433ee90d2a9ea773297d493179ccb9aa9033555e3d7769d57b7e23adb7cc51a39b944e0daa9bd2ace99f0b77da9f341589531dfcfd5661c029b7f1120974a4b7bc2cee706ad19129a76d278e9306aded3af4daa28b40f81b873af20d0acfdf459061798db72f702b57d3b51f6b9f9b5e90af2b075bf7b46b0a77109ba81c6cb99829fe8d46dc1d9d52ea548206c4fdfb839c01e19c1770afa0035704ff385b54c3d195216cca4d5d5ae3e5cc52b91511e61de458258294562c35d3dcca1d0573aad087283ca27eda542d244c6fb1d70a2a63429e7b3918e651aa29b6bf9ce7c789d15b9cbbbbdd53805d539535cc442a3a5361cbff0b6588b198dc961bca68c6615060775b9e8a409cb0768ddcbb49619e8e3a214f0d6267abad5baa86d7cee84269f67b1e24d5d7858902733360fe7359d88567ae2b2d78d1ef5231b108c0788b79448cb9fd652683af13f30e9216be508a9a22f0c1af6ed867710741ce38edabd91ff0cb1f6f6ceef6ff118da2af5d8cc780be236c04d0dac8397a7a296357dd70978b13e82f497509c905679d6186bd0b80bb8fad33e74fef72ce6332e035f7a7cc9180d5090d9408c3cdb85feac1e1e51e43e4fbab255fdcfe3d486b678c7b32a023d0d4d3dd5b7d0276be7ed4ed83a69663d0f75f3f56d59fca89155d3c8b46cd066e6aabc194ea9bbc94f2bae0c9a3da19a0e5a7807d1ad4fa940f3b74ac045eb16973e102dcedea62172da5a79039c6192bde46bd59bb9708e3df56ebe94b015ea14d64d6304ac191f0a5356c098e60f463454405493258df7d9ec792a0921445a18211d4be328535c0f82c8ec1a0172336ae822d136002009355f417bf44aa6e0a21ec9116fefd0a3980cbcbf665235aadd5e806fbc895690015eb2b27a1a1ebfd264e04863547bc7c0fc6663e4233253b7e1e374e53b480d3195655293aa86e51fddd2955aed903658d5a8ec25e0303806d8f699a2d1fc753c775d9011b668d1c9aa01abf330e8ab53f6b9bfb089bb35c4c9ad11df9f55c087ee3f13aff213c4b7b30ff14c96db89fa00a01772f243fe1516e9c71308ae9c849149a2cfc920f5b76ee52142cdfd30428e7cf9a2da209ac87cf28e8602e76ca856316a3e595164ad5d87206b241dd922d7da3245246d976368819796ad3068a640ca5b6dcadc9ce8628ed9453a8df30b667968a7c608967c1302c06c7ad05f760bb20f9d71469afedff5ad93af0e734cec9394dba740343ab86446b41e2e50496f8745727cdd9d2c7d90c4c847d8445b6afe7a6d756f9209d2e32dc4e6d668804766a93c3a8ce490a9f4e18bed7509787819a56785dff160cdf9ce0de2b24e1924f4a5495978de2e4cabd6458d91be1024992e064cb21bc8e2cdcf40bc02e87631708f6f7f34cec709375a57f45858cc4d8f5ecd7ba383ef567d7c095ffe8b51c6ef1b6231923c8bf902e084adae804ead66583f37db0bc11742322a48fdcada6b4f09a3279cce2117568900029a313f56acd12a830c4bbca3f59f508c35b1e16c198fdd21617de877a2b6c37a4c75729b6cef9d5d4ab93ff33f72b67501637692fe94ae9222602f6529f022d1e93bd63fc55e67a4f5a5da3b43bce76663faf8df42dcc287cbbfc31275cd89349df2f70d94e6c1d48da2f4a05a087f9466e327ac73582d38418af3511de35d1b7e8cd4a51b476059f8c759f451393369c7ac20285c7117c25e5988309e9ad0790bc2110a757f93af52e3a8b6e87fdf60bc6f18e493e32b730e8881bb01c454d3331784312be51019c44cca57080a5c9a2320313c30af34f7c96f14b6dd7c4dae712c2dd26dfda84836c3992425630c5ff0fe72195aa9212d76c519660cb13af1db56a69032057f31678b73019463fc70c0c7e98c4756f68f201d380673704be3ab7cfb2d63f6fd705127b1960df52e763b437522343c60f6cf8322b3f41dc028bb40a507a4cc528b781dcaf1ceca43c414cc4f37e5b0e43efa80144e640d4c99ee08fc147b6da51afb7b385c683edef08ce49503a91f27297af2249156e8fa47e1bf7a0f58e2c6bd1e574f9aa4b88f632c54305fda67154adb9c2807fa42ec7d0e46f4843ab96ca3885d6696ee5452ffff0f0bbadd4badb5bd045042a1e69f37c63a66146b8d7994d43e94f9e24f6dad3623610db699926f5e4358627093150c9aba8d6e2f52715f2d21a79a955899dca26d3e0d224dab0c7f8a9a49b47d235ecfc6c7fa7a00ead3e87e4f3a7a41cb403b1f28c390cb39ada7684eed12d0d130be7cdb1b797cdb5a2a0ac3722b0856ee8f2aca1a13c819d46656c0958ceb922e5ae4882c1857cd09b0d6a084d2d5358ea11712321467ff8b820215c64e7cf3b0a1255dbfc54f3ae908a4f86de5bb084798ba079e178ed56aea9455930d98ee07ca517d3a1dad0803514895b8540633d2d21804423654f7c476c5150902f4dfe0f0b5e1367526d90ec7e11f184025096b745cce1962490349ad4a8320f86433f8e0ca58134bd45395a666c953b4b3cd9cf226932fd065945278359512fbbbe349292a5b620b751b19b51a50edcb9946b59fc0d008f240c5a33985ad8ed9a93f8f3e355b62fbd7ab0877684f2d5a4fc4f5b3472189a45a2f806034fdea274518c0f38caad0a9f247701841e2ac13db504cbfa283adf83092621db4743e61d425d5d464621fe6133818044c9da2b0deb916783713a0dbb868cad64361a4a1dfa2fc4a935fa254af0b9af155de6d5b41e094af33109a958da5fa077e2f8af526f1906173a54cc0033e87a4487d2f5c3fd4741eb6a94f2d2ec6aa324f48617f754f09e9fb7e6a11db99d63672c6e235fa5ef8ed829372231bc5df3c0b0bba747e99d909347a2f786c59bda2975c24adf78a10acbc4ccaf622ff2bdf5c3b4b79caae1c334aad3dd4614868116998caf6165f3099278a2fe88c68124502de0000fc125fcf5ddc4e3b3614313787a5115faac0afa8264d13faade766813e5d7b9a88a4ef400dcb538cebddaa2800283c5a7a8580e3f8e75d7ab2bdac01d9ee4ad50f127db59a2916c08c048ed7f286f7dbd3a0d14ab011fe26dafd096b904848d80997136e8557e010e675bade62cfbc14371acae3cc9b03d9dc9ab473420532bd35cbd4146da258ede76309a3cfc0cd260e118805ac96a70f2d4a18b01fe1b9ec1c768893df9279b104df65ab4b23b1681f97585585ca5da442bf54aa88da97227d8187adae315893efb800fd553c844519fd3a37c1c551b86c971cd0591b23999a5c174c05c2687b49a79e3c1a70c09af19f46fec1cd838d372ee8c000a39498608c017d3478bec02bf4151f11bc6b17e11b979ab04dbc6b80b6b4abda3a8e511a9bf04ca684ffbe24084c0c55e4e140b322981aa34a4c02d4d73e570904358183c76361a752684101ea31af99911047d23d271108ecd3a30ea457b383892e0b73e46166fd1969bbb39e991a07b1b512eb210322882ea091d8d649bf2904c58e9b57195e834275eacccffc5768b1f64533af73c08956eaaf481326df3b738be3023986eb6639de0f48239b970006c3edad861a2fa3f5ed53b7b708b7dbf963983a71340a116cf43a7ad5ed04794ff08980e90df79e996e7389b048a13cc7769ed4005f9f77c473b986568c6808464694c1a3070c706064578e25e8df64a96b5e47f6b136c9a4f743f3bb624340d745e73090735a99d6f229148d1b37a847030c44857410cdbc2030561027979899bdd5b024378b504aac6ee99c737ef300f5cadfa7930e957a99030627d7aef8e7f6ef4b7409aec5beea275b1d9f2823477e4da7d2f31acdc51816ebea2e0cd97017321e01b304f47079bb4afab2173b65644d411a247c81a77e90940b19aba3c0be2ab131231ea6b44c90c7d56c58932be41fb583a14992c0bd7aa15278893bf3982392c14993669c6a5565c21c60d7fae1538ad21d0cb681325e3e16229071f7fe77699c1420ed20681f0cd522cf32a5a5c79026dd1ef81f2ce426e4a14489d43a6ba9c23a5878732b4b0f69a7852c60a46aaa38f0b9bd1d838ef1103577dc34e3bac0b5f2dea63a6a838064d9bb62a34fa581c373afd8dcee7b744f8d6450a1eba1af30e90ad20244e4a36ab6cda315812f7d014d7cf541fb1acd0e9fc534d413fdb16f0f3048f08a0d5e4fa4b5e4a4ac467bf782793d0a0b9af459c033f2f7880f20b3e860e722aba0437fd82a9058ce41dced3deea2d694b158893d59912fb9fa94f7f73ebc62f725b59e480df5b01a4c6b24b661972b6a3fceed1b2539873b665d022b02bb29ddecc05c267aff61701f62331d607ac78363a00d33a2d97da0f942049cd1d328c99d0efbf91f4f66fc8a4fa17bb8488c8d538d7848d342fdde978ab8b22a14e82346324edc8664076458018aeb6d143c043a1449dbbf35f073c9fc6b269cb0ffb460262211ae4033e7ed2b36d3bacd573561a45df984b0a027b91f84dc022ecb959c44a8f59606d3536427316ee6f61239e91729f151c0bb29e76f7a8e798c1837b2d5e5f1810d32d8f793db35395cf4076a7f5e077edda8f95c9d36addc8335de063014c19d3e06490890c71007e09d1a524e75f01726ca7ae5e7ada8e670fac5f54970a16ccb7919b43213801720b3857bf601c67c33b93a0d440289ba3aaf2449ae3ec8bd8c31c08e629d3d05b9ae00d85289529d7ef7c5e6f5dacc51fde0b1654ffe27cf3309e65b9602ac168e582f8bd8e0f1dc97a895aced11963aea299bb8fe234c75fcad5927dfec2a7a43c0cbe9d6dce4621c53a155d60100edf1315a2a3d16315f7593b784bb97f384ae0718c886c92e09070995cf04c94a9482bd4d72bc38f08a70a73ac5930ae4b3e3bc3dc161d12bb53f5f09c70b34dd680ff4901223258d90a55a4cecc43a5517226541c5e31b3b866c24967bffe1ac60bb59f4ee4de84acf7d3c9d9c24f1cba8115bb349fe069b38b4180c2ed986cfcf024369b5f31451c73883c86be3fb31c994ba7a8b673d9ed12d39c1b24da7b47f9e45e00d93437571a73cb1a5be5c6beff919d432a7348f6c47bb3f33e62e765bd84b4bbf903123900258673abbce5bbbe9c39a032c3a78ba55177ccd01d930323b69ed01f400b4cef0762224d63354a51867f58a96703fa4385fc2a419ade0768d2fe6de8052eabce096dd3f806f10873813a7b2a6f771b12ab32eafa44397b4c3175e800ad99d41747f4d15922d6c8795bcd76268aa2c8a4b7eeb72fa6fa43728f2e45f9a50eb3c9d4b196bb10c37b93ca3e8e9f92e6388fd0e958f6bfa75150bc62b74ee974504b8d845f953ef0568c807fc832bed7f7e576246065a7ff4a5a745990c8a815bf523d594f20fb34464f0e3e83e81b65eb915699b9acb53ddc839c37ffc064b750589ad79492760dd31cdb519ef652ef924784145741858b94bce1aeba50165d385c01b6a269233bb23a8cd6049e03372687c19c9660e3378b26cb56cf3804e72236b048a38b314bfba1a8648caafc8d2f63c47a184fbb2bec8009db5a5e9ce660e74f783965f44dbc13a6bd1ec9a298382c4d21beeffacc7c3c5f7927cb2b4b926d41616f5f8198c28270e27fbe82733389223433ff892cc25a35b903ef1db18e694d656333df81544ff51961800f244d630e49ea5efaec9bca4f47efedc4b5e30f69ab6bb714707a33dc460a8b1131f46ea72f56a4f708d66b9d01819f269f16647a620741849cf4498b41aec0e19d3e9470f6ca808a828ecb458bd16e57001e466abe15d12760689186b9e30687a615cd3b66860996b843d6db762c8598888b101ac0950cb6d4e682767b4db4ca77f0812a522597fe96ef691866513b420446671d57509dee64090f31780fb01c1f0c97ef8091afccf1ad673bf5d16dab79d0e8aa38feb8d843fcad3dff4f93fc7f5574f7531fe2636eb9b87339b64e425723f05bdaabe52a81360387f982a6fc4c52a3f22b1a39d2e5ced81414b58c70ea5ebf0b96c49be25bafc6cd27b60f9c4596465915f468bd30da3a407115ec7e3683b9bc81cd05c1e553c097e2f311b19636843115860deb16d9d8008c029cb72236e159af8c3469d9c3cb1a5820039a1c01c564da4b1b31ba7f1ad8f3ed269ca8494e3e17741a0d036898a6fefbb2e5b803965da6c6a30f15982c3c5e88ff2faee740f9820638ff95212055304e0a05a053e1bd1ad7941220181865b833632b3cd1bdaacd3b0dce532ba7db6675d1103226e831774a018817e56cd71445c10cccc359dbb679f5e3b98f6e9be709bafedad4e3f08e1e3fe9471dde5ebfef908752712f32d4f9841773beb470deddc947b41b89b4820775f970cdf265cc31ae116a4540f151c59cd0fd5c911afb319b5496618b6a6b54b82a49b5c949068c66d3e0922671229e65069aa9693899d1ec1a1b69241343f49ebda1b7ebb6d0bda801da0ed4f82d75a284090dad1aaeb580519cae9d30ca8157ec23877803c315df391f01744456adc30b14248e1962c4152d2bc8f65708a059430c22316ad5b5e04c69bed9592831c750e4bdf8757d6c806eebc2f5915c5d1449191d210c396147d9a7cc79b27808185b5a6098a969233a2e3b4d11dae8808c38200ee48aaefe1c1c69cb696bcf2a22a1187f1bde785045bd106762b6be2a2ec64694d69c2fd53b146ea72ba8a2befbabb29273d1ec221131222b2733f3b22ff9352b8552047efad76b033053544452dc2b092252d4cf9e951ca16621e5dbe6a8ede1732c036f6a0334ff1ddb42b2cb29863c1b7bf00ee504f1d577447a682ba73272660f66ad9f4ea633d9b68c20dfa93e5644ae4a2391f64ac8ea368b3a79b774e2c6ca2b917e5c88dcef21baae57df392b778adc47079a6acc7e91a52faff7993237b09957486bea66ace661b3a3572b2358dd76245d29bb5c3a026ae6a84cff3af94da78dba152f65b2447993565272dfff68361371912482615ed36a5e3ffa8ae06f89abcff0085627dc2e7f48b2855add9e0b0ccdc24bbd9d9ce82615819eeaf34b7a632f1a5801748a01da2215405c608c5c5607fb1ccc82ec6077167bff0d246ba7ce9db93579a8c31eb36196b062b1d7fc7f7efd7d8eff9c77d579e2a3d5d1814f63273e7a0d99f821498550ae08770bfc34b4747ac4bebcae53129a39d8aa41a3a47258b95364dbfe3bea03f003e203254630f9f8a2f2709464a6587179c7eeee3e55cc19a68cef891a9cef9cdcdd5bf470ee4277f71fd22dc20ea9795dce6fd34f56c38220ff21ec6d590f870a01873d9c1011c54c2773f5567d3846b168b4808c39963c4647b2640f942db243f6fe1642b80f00ee7739277da9fc40591a37349f406a7c1298ce0f5382b4feeeeeee1b360c7dfd80175ca09b2b1d0e373e2f1c95c5ec606a9b86fbffff1c636a439178428eb2f60386c58c7e1132f0cad015a75054f41889f8e99aa6692d4326f4598086a0d773eeee4ea165c9f9088bc9060d122788c88b86701378cb39e7bc575ace39671496d486128b46a45f4051badf768ec297ad6e2054ae29a0d22ddda8d812b6c49abc0d2f8aa8de17ed6cc8765aefd8dddd570c531b3a43932dac386ede8f02f86fa9816a6670ff2be601a512e063c93b2a99c8ba314c4548495dddf0ea0f6cdcc657f80a5f214c6da88b601260ed4b0b14154c8bbf25bfaeeb0ab4e2c3b9fbffa7f8811d3c9091a5fe5e748212eb4acf20d72d8b65d992185a443cc2fd47d8a538b219a1a3217122e3876ca4497114a9c465a56965848d201f32e6e8a2e36cf68f79c4115d553496822ea41619dd1257813f30320355f5c3d84362f2b6c80ed91b6881d0c5102f04562e2648b86f321a33d40b071616980d1dde540e1a298ffe744dd334aa7f7aab360720810243c9b9e4f0212356c50324a1ba7949e897731749ce4a374822d0622acc8848e8c38d60ba8259321363b9a5469665513ec6824383b6622c3bc489795b64876ce79163eef8b81bd330c61823cda43694663dea646d675b40d2b418d7ee3e632072bcf8622246b1c80c3cf6c479d36858e5724b6a531bea0e7186a499cde2c444c1f911f5e2e8e063a3c84707ca16d921ee44baa40a0344b8ec3d106e911db2b770c941bdd1ce38307494c3a2e4e4977420fcda78772a04d0c0c3e2ccc2b9e7520b4ae3572be301a03695930345e96524e83fc920c9fafe2917c62440d17c814e3da8145fe21029dd086e911db277ceb1aa37cbb1b616a068717542274ac84b754bfc64a396e333b7fbf63d9b01b8ffffaf01b304b4d10dbf72b197e6cdebbaa6695a7390fb9a7a4ad9905469f2692657b00b219fdeeacff6ada850b2c5fd463190ae07d0b4ff7fdeaf6bffffdf10aa36743d8ad06aff21ab65bbe31d3bd6e025aa36747567f28ce0dcdbedee7e4c6d687267035ecced3d29c535c5f802862d84098946787409061a10a3941d587800a648795aba527528b95e19c856963afb073d8afb99725e811697f31dfbef28b5a14c505699c24f4bc45b1aef79f25a918ddabca90d75ae4f4d55cb6093b5458a5eec5c50e4a2aceab106f59619fff920fbab7339b778ee2995404c26c34e990ca5302264e1adffff3b96d8472dfa234adc7f09f0015b206014e128c1384951d850f16a2980077235612f5c345b9df4a5c6112b56a4cc50b4ccc18e1479ad886af2e14fa2a41839894605bfec3aa8144e88eeee6dcabcc16235260c680d331ae1184307aa202fe6548d2ccbbeb8bb3b4a94d4e1dc9db8a8c4e6c4d857cf9f1a85a90d6521168dc8a76054fe671c5cff68a66c57976a03643146d41ce12371777777ffffff87c08a89ad1e2ac066ec7062516cd9371c41297479c517d06a4d314c65a5bfe1cd694216bfa50ca21525be59d3e9eeaebb4078029b1e2b184641121e3e6309616812260382189584c2a848974a7de554bd0cc04642abcc99a0031d0a76c34b8792a60e783e0ae040c44b4d081266cfa4e74c49a49efac382c9dd1212c054f2b9e81079b0b1a47ba022fcb9f891f9624bd586aebd5cf3ffffff238aaa0d5ddda7e69c73eec195da50b62764d1c0454ce6be9cae3aa80173c2ec9c86706436046054b8374c8cf0585272d11574777fd1a536b475873334c70a2f49f7c14a62f5b95e37218fafea087934c362ffff3791a90d55ae199a4b5d4b8281e3611166d88e0f95c9b64c2693c5daa752aa3674ddbd2e44a381d0f14b6826c36436633667becd2dd51674894385548e963e106c90fa82812c02facac03d09e74d221030439ca14baa453385cae9c699f4cf145dd334ad7b5e06b0830b47b3446fe843939e3c7158c59e06eeff97b30a0fb99cf1cd370dfd0351b5a1abca733a712851cbeb14be637777d761531bda5b27e808f5094cbc68786a4e7c6dc578785cdc1a313fa9d1809fa1241d4d15289ecb68be4b272e2a879e6a43d79dba9e58e5dc87542823b22ceb014d85389479a3139610772c46c4a1414ac51217bfffcbb26ccaffffffff3f1ae434c4fd1771cfa6eb66331cf4dc2999cd5cf71dbbbbfb10d713e7fec50253f5f105a36509064d650c431417483b9bbd524f90dfecb7f7eaf8ff7f0631b5a14563851948bc1da0e262a7c90351865206af86e15ef65343a7ba5a87d7f339370f478cc143522b7fffff3c60bb6f9e449334a90d3d26b385e44ece3e9464f27e608c310c546a43adb42ac07ce92a7468ff8689449fcc55665cce3967d72fb87e21c57da72a1795908865d8e9c940e8a0d52937d02d35de60d43505dce178a76cbefd20d54af9a0d5d0d493004245ce0a89c8a8c9639c306a92916920479025c1f54a25653a6fef1dbbbbbb6b1094b37b49ac0a2ab5a15618439556cd17b525747563668575241b312eb041e5a6281bbd50a469baa6695aef3c49dcddb370e84bd2c3b96741e0ed98a635793e127e39a7bbe523d1201d9192ba86b12c507222c1faf1b43c96d20d4d9f192f5cd6b037b5a14e0c61cfdaee64c734eda70b98754dd3b456e172aaf888404bcd6f5764ad50188dda52e0191f84ae7e7c1c9da4eecf4ccc8319262db905d2dd3d83513167df3d954f16abf2b1617e1d892dfc86cb0b094ec394aa0dfd116249bbf2501a233ac49ce018ca69d9786d74bc7803398c3f3da8f0fbffff07a93871ff31b3183e763880f1d02809f2aa154e4de5babbbbbf327775dddd51dad486bac399bc010a4dce38c613b4d7c873e231979c7339fb8a9c6b807b8a6ec68568863f240b3c22804b3fc25d8e9110120bd5cbb22cf051a1e74be5e260578b1a2e390f20353e1f6a5a0e3d31fd71a9e1f86a2572878b09990e421ca772aa7012be392315486a6edf308cccc28f5d7b11c24c04754dd3b456db8dfe4c69da9a73ed6d4a01870548c4ed2b4b81846e2c2817011293a1251e2a28c1291cdf69e9027979b1c002a6aabc843327a6863072b050a541484cee7bafffffbfc592da506231c396b1fdcf455c2c21d6f7c7ffff4bd586ae2c59d86226f4768bec90bdff77cef67df6ff3f91d30af78f23870b2c2813af131352319c4ccc3418d00f6ac3d153b11775cc49372d5efbff1faaa7dad0f53f258aca12ce662a8d148b7b2229ddcb960fb4a70713a90373f9a3c31217d6168a727499c9bf2db243f62ec19255cdc98f1b164d0e55839772efeeeece046282eeb2f0063b2efdb91839dfc5762ab10b2348a49294bd6111d4feff591cfaea96b87f16f7b6bcb9d76587fbdd16d9217b0379fbe629500b244e35f6c46bf250668d17ca84d5549007cf0c620da927664a45c5c498094db92eeab293da50a60697a35c937dd1403d30a2c95ab9429f3177777fe2d020de0ece5d07c7dbb10b2f554b720160cd71a5ca053b7ac1c35681a04dddb0c7682595a269cb8972254105528552c512638cb10c556a43b32ec870b13de1050f2cab019c333c983051e49ed49e12321e132dff257acb862ae0726f2184f812a113d18a70dff7028c159d158a4f9fae699ad6dfbabb6b38faca1a90743a3703022ff38046ca8f02105e17332e24c0709ed29b26560c1b062059aef09e90ca1a48a7412385b654e61cb3a90ded0959882e8257a2a71eeeeddbba938100b5d1ef02563186bc7c5d264e583b4ca798984a960ad70abbd25b11aeb09088acfffeff6f74531b3a9ca199603cbac8ef30c678c53cbb1501bfe1ffffff65403b4c9cbbfffffff39a688a71041fbac08e6cd0c8613ada2d8b766f30c68b51bd0dee9bc52ddfccddddfdffffbf8543e615b1059e51cb5ab51dde1050132117032497b30f8497339397736edfdea5a604ea9aa669edbf09f890a070eddc8c50fa13914e67bc00cde94006862b8651a725dd35e15ce10c52ec43e0e0d813d4c5b3343573e46a26b1582e00800103c63b76777777777726d68b73777763179e6f4ed7344d6b59f096f1ff3f18abdad0ffff3bea8dd6a8e5683684604415f6b4c23b7992256f2042ce1db24576c8deb8cd09187122e686ca84f3240d01b414f38edddd5d47e842d586ae3b04b7adebce96397bf3d86efcce582623fc66b37f6b04fd54920fffff2874a90d6ddd219e806246840794c19cdc54a60e57b84346b85efe8edd867377770d31b272765dce39e730a53614ca4aab42ce97ae75952e6eb1201bae7675510090a3dc314de3e5fcff2429d4a8e24b0030b0c90df560bc52e8b45684404ea2bb3b3a44a48ab9618189d776dd4c6a43698e147449bc7d3ea76b9aa6758bc291b91851d6ab69395dd334ad5ba6627adc206959693c577a8648b046a9a4ec0704c285804a0471f026f379551bbab668c9ef77c4edffbfd007c618e35d32b5a13bcc23a69fb083facf6b18ee7d3b8aabcad5490c9966b12cbb228b2171a8508e185258a20d662119ca1b5e10118715565ecb1e3632b629b3eeca16d9217bbb3bc4fe72f0b8df7843fca1c0f0d89989eabaaab9d1af02a4615166c8492474741d44309402705e155328195f903269703915538106fc5ca39f124b3b55e98b2c23959ac164b9538011959a535fb024b026251fc9a8e60eabe707301528501d7eb11e3d2bc40ff21f42d442957b1bb3b02bbeca818b948c871d10522f3c3c87cdccd06d4654d452fa16e56154e20d2183a4d19195ab9a11e576f866b3d47d79289d5878a76b9aa675ba5399485aafa6c5388e295d664e0153b6631908656a4397ef0410cefdffffefeeeebc181404dd1418ac1d3f2e321b93db053b4442cedd3d7b8e10063067dec8feffd779551bbab6de1aa9681d00e5f961ebd9f4d3c2b1586c662c4a5fccf9ffdfc65042548072046e3c6c531bea56180e6b9aa66b9aa6b5abb7cc047d7158b06696d70e0d20bf6221a000db58d1dda96df0f6ffcf8289591c61164c18e7f5dddddd8780efff0f2cc1c053740c9e70365f24b158ebfba7218ca90d452a9718438817e314d57d4bf41cd59195410717dbcbb043d8812e660d143835323332706c8273102e1c17aa96052d0b5b215c2f595320356cd1f543427610c311c385555a044663c47292ebe1c046c9e4050e1408a02ea64c4c5a41c4d3b7c595f6c02173775fc195916c46f66a464821ce7fa89009e490a76b9aa6352e518fceae594aa146516dffff4b8072ce1f5a41aea50be4654bf63284a24524849a168224a3ce4c521353cfad4ea85c5074a2186c512abcaeb977777757dbbdbeffffbf06452cc63a5dd334ad5be016638cf1d532b5a1aff34995a5e18a4b0316ab959bcdba9a807acb9cd67fb7008726b5a1c7e4ce041ca68ba4608c31c6ef40e7017964433b4caf6b9aa6f5530db70bfda1d16313c6e1c331448a2474d5f2b2697824e717230f825eb0230510e630a810139276a8642c9f37e7046a01d31904184104511ccb2341761a00148008118e9cc0846cd430140986e1a0380c0685c24000180006830181300c0931100b53590a5b580725011bf41843e75abbabb6c695f9c0bccf6c3a1b690310c82e6202a01bb28aa43c4accdf2aa4c6e5b0ed5d07533947bde54a837d3c8d83371082d0eef408bd1211553f202b7894468e5c6a53cf5c5fe98406346e9c90bc57cfa0831fd2892b8b4b2138d5dfbe1be17d56fb60d8bb438c3d14b2e3b1fca45a81225b54d15be458f2747867a949abe10e7ee1c900a0f22a6a0b066301f120b08d56f8a186d65aae239e30537e7de0377e34459e9ad5a9f4943cdceae3144b0dba67df4d5bdbf8d9d10e5dcb1fa60fdbc248733172a8bfb0545fab78169d0006d2440a26803809effbf1bd3fa77514ca62505460b40294724b6bf38884a236024db745f4ecce24126989fc407d22b6596ac89f3cd4e9e2b4ad7c1ab887ebdd0392780bc2d57f1cbe6a9d6bdd827336c0ed183e4a1e3c3949f26006399bb16fcc43f1c63568a1d35e145d0b447fc898d77397973f6c2a1341630775eba94bc2dc8a26841005ef28a43b0202a7b562526f5a2f27f0628d692dc5006f4191303e6bf4ad8506a5e0e9a6a89e3c5a7e2682dad48289f0bd8aa829edf5b2f42967394e0b89290872f7bea044d8056b6858cf4bb2250fea4128d0642276e7b20c6d66d57f1c5fb13b59ced22d70bd550f29413843916094249a5ef954361ce833d0d1faac68e5358ed95b5fab3dc7b9a2b62246bf04ed41b2e8aa186c053e7e20ff2b0039f82a066c531543d713e43d5b500988744cf82b2074f53fa00bdfec6a8cabfc0d5dbe5c743e46812dce9d51b8f67189e21a764d9e85078baea8b0383f6761e24a17873a7789cfa2f3cb29cdef874efd6df9a58b7027a53a8ef4db6e44bd2b4552977d88d666f37d3024ee5703ff4a423e2ec355e29b453527070314cd6de32749d9496654899d28c57df488b00b3d4b9bc15a043509ce826d9934fe6bda008b970c316aadc6d02ce079a8f1236d722e6302897162b4477e3f0979b9c38b5ead4ec3af11b347afd6dfa2032c08927acc51be3402634ad56650a3b8ac1db700eb3260ab8ee8275c4c08ffb1c4302f9f70a2841594f98607c0f3d2c27095285201123450047a214e9ffb016f00702c45bedeaef5323cc7a7218e3505d87c6197f49ae683c9aba20f81bef00f87f44cd69e934eee46b7f10a674c4151c347064643890f69c7c94c38bb9b47ea277801e1a0e5915f179dc722732498ec6fafa4058da423261a6db5c47f62363eddcdeb89ae0e18a38f1a6defdc0aaaf0a2bd050c1f6ea53021b7a9c003af56f3be4234ddfba33e90467c55041da65bdd701afe91d1f64b570f4fa2dbef767c2c8773c8014e0d014b23765064278af486db9d79c1d7685b42af499b9ed6c70b0e30aa07e18bc3e99fc76946d0c18b968186ee45c4a99557ecbc86c2e52bc48a15fd73fd571547d85eb47fbe6feb5cd04f5a8e6b7045523093d3e2d109a78ad7adaf909b41687d8b71da5d206d11d63dd3f08644d0a08e8d2d3c473040a882420fbc0472cb63a845f289e306af0147933e9f5bb3e36bd159e53e9e4ff12a1264a2ec7608fb546d2cc1b189a6c22b07a0d5d4aa9adec3665b1334721d41cc7bbecf0553cdfd7394bc95e73f18aa0957a6f70acf34424bf957e078d324cd47a70e0659ef532a367dfafb926a03bbd86570d3856352722de5b3b6afa5f9566f78164d316c1f8c4735d3845d8d648023b3a867bcc3a3a8c11c0f38e9be054197708dfc39685ebdcc174374fafa458c05e07bd3808cb692519744268e89297c7adc92702d6defee1e823620bce2d58d533b8028c353b8c29247822b88315415d7967c6fb7be49874b618149dc0893d742cc509018ace4aff1fd652d19659c7cc2417b68454f1552a24ade714641456139443054d40f7b7cbdf52c2d59befe9706e899b5124e4cc7edb0c4bc35a9c06874ce8fbd4ad826d7c3ef99f08eada6461187dbf8855cc1e644aeef660d38139749e537684b2c2c28512a1da1e9fb8e6621078b07b1e4da7fee1c6621db03a85156a6d6d95727def3964cd18abfc1ae58cd789cf9504a7212d275c1ae97d4d318fdc26fab43f2364a486d2db69d807e69d3ce3bbc1177d9f162ead3bf326a78a2d15f44868659f8342a6e2b87b681953a7db353d9cc4a7aa55a71e2fd31ffecde2ecc51339096798fff03bd23972235b73de210e8934d531ad36d3f7e2b060e50aa51c69574459f62c5bb142b9cc8a4641830588a639a9cc63848be9a30d7a1c27fe83c25238dc6d8b57e13082115d3bd408e4c9bcaefffd0a7c4fe09b34da543931b0470a5f297230a2794a60d998cdf9a1e10146de6eaeed531a6c71a459cb158e87d22cf721b10e8a084338e1163d241dd781bb4919fe9f658b8d55e24bc4dee11502948e0f5d063b38478eb8ec5c8a9ca7dc7e133c9ad139622fa31ed436678129a0fc5bcac1a6b57e215094f07cd0e0faae6553424308b90b9d3c90c4b154c733f49bf06e6be8329c87fcffd61bbaa79e5702e790876c1683c16c220360cb14ea5d1d2a3be7915529319d1ad0d245f0513b7908ed6c11422ddf84694a071b4439434cd92d3ad6c99173d445bcb84efc70081c22b0a41b18fd41d5a43ec2d669fca9605cf6a43b0b6d6bfe7343eb5a013083ee73175a91da640420404bc20ec91e3fac69ef452a7234c21c0b3e0e43130e5796f76545ea3aacba3a8f20561e80d1ea34f0bfbe62bbdd80c11269053e45be362dbec787e56877449b9b3f3694c8b06c47168ad346152941ca00b4bd8527460ebd564435fe7533c71b711451e6874b2e42a431e14a3bd7073b6b5b282a118e939705bf3f56ad5413cd9f0da4b442dc6fc5e81688295f25fc5bcb082f25582443965bc4cb2e7741fa3234d3d26a569f2cf2fa7fc0db411c526730d6ba76fb15f749dd274c820ce60ec9316ba198058f1c2352d9679f9c289268c208702d9a67d2d888bdaff517ec88561414d8ae9309e4124cc1b345a2bc88d5bfc63bd7200303d4c8ff877967cc1b0eb969b4912c953084485c4c42c84bb29a813310e0a128ae8c26f35db338dc49e5ed3388f2139c958df0a78109163e13fc6072b18324c6be387f4ae62f4b3b72d5363d82078c7c88f1bd769576bb4477472f0f44c51537edac54887193f014ddd3c78cbceabe1ca81af069b09dba06d434edbe3636d399d243123750ab9ed755243d3379be320352a9ea6c5a97e54da78c4309f4dd067f44615885622b84646402eca7010ef05ef0289874bd92bdf25b9a4f6273e3dc1fbb03cec26b8aabe2e42e6ee3392dc8fba25c9a429f2c77af059595bd1937a413f8f0c233601623762c275d904ac10aaa9e34cdb84a531d7c86e6820a51415351e005cc52fb84615ff7cefdbd77809ffbf1e944a3c434905dee7a6be8a44ba045edf4ea12e789ab5e7aea8437c51888ceb07c44d14a9c8a5b133c0ce3c883c313a1b57406d89d9bcf35112c4da0f0b73468be26ad098840a5501df927f19fd9dd226cae1290ce14d513eff74ef09f0a46c91d5a9780cc68676d06ca2cb699b17acdaf383803bbef79610cc4950fe7b8ea42b4b7f677146d31ec03221ab272f79d9a1721612621fca2515a2b9827a9a9790a58b152d8490a464183080844639072892d0f8b6a90a2d8a050e138e542014d7ccba5a8bfd7cde6aecd32f2e4aeb961228795375925698d3a048416bdba7f6a579f8995817e2670fa8a5b68e7512c5ee5f16d6fdab8757db719fb4228f1ba0ad5181965a6f26f88704cd3a0a8ebaa6f290a027868c2a3d6873dbdc710278143857718cea244176106791140b027a625da5b1dfaba02ee030f25b0722a95aa74ec1b46486f17a57dd6a6d2aa7117de1a3179ec4054091140a08cdc7c1bc709894f9d1ee24b5088c659eab6931e36ec47c39a4c78bdfe2642d759c19d2b78b2d00360ca37b7b37708fc64bd083e27423e5c529d728a9f5e294143e66d7471aa11d7d1cb6375c93e255021920da05dac2dac96fb593f1eada1265e45a9da02b388f7982ce215f8bf8ec778cceff7f82996c89767500cc9e91b02b428d41c627fdefd7b12733129d37e567de3e3eb5cf1f9f88181e1941023d0339b20c99ef09fbd712c622f0d9e30c8c6e36e5f55a3c72f2528558a1b987309cafb9a800d1ed6558caec2bf77c019f8997f3682605f7ef549873cc460a1cfd83689f613e2318dca362483c61506d937f133f4b80318d229e1435c3407d2696de752a58db87e929fd7c20a188f0122759bfb66b2a73446cc834285bb9dbb453bc4e012409bb79382e11814f179b8986c704c29990dc6d6afe19b3081f05039c24851d89af1ff04c5ed97eb187000cd622deda400d2f7edf6ccf3eeb7d0437f4559e9a6a4b8f47765f97cb1133f2d0bd16d209093ee11a42806e636f3ef239ff995ad949c6649b02d7d4d7abdf58ca529901cb9a8ec0c020d1b2134e4319d367c35353cc4a9c0590295a5a9af3049c34102c69ef0cba4900956fe372030a82a73c6370f3bff6896a686231edd88dd703ee24aae65a4f957140c5f8f831bd08d626c8a6d4e2bf4c094176384a2bb74b81702d01108bba6e1de127a4f5dd023511976820b706b751f56bc6ff2c848fc0611bcf8e09b9786c935040bbc0f2e71d1a0b37b32b10727a10db458018d22dd9b2cbd08599720407cf6d776e6a41f9b6ed6ba884f7eb13be089cbbb99219ca1730a18d88984c89e6f56ab269815a078a715a1b5c6393bc70991788dd60f38b6b8954b40f36c2ef0f1c086a8d14a8015f2e118c916de3cfa736a5eefcc5268f48290f6c28b341152744fca9413f1d7972b2b5f96c72440eef835ba491fedfa1729ba1b010aafb39846fe78993ed06413560db0c662da84c212877f48fa312e625380bac82c60195a61bb5565802449846f9a686869a788abc1f7f350744ac46b52ff2e62a2601d8793fce3541b4f696548eaf80d25accc646d53027d938ab8060deceef169e5bff163ed06a67e9f84a3667b5b8f78b2f5b6d56a043a4d2097e202e2ba5a9e1a9cb9341715ebfbb6ee904b64f7170b85067d14301bcc7e4a328216faf35d3584437cb0f9875da15d1e7e8be622783a4a40b2c4e2e8a6b103165f6487ea191b8a38653fca638303d88a319b7ceee718ee2de2ddfd355888015d392675bd90069c522967cea9d5bbd4fc3aa1729e6f1e944254c2a60cd161942c91dfc7ae984cb210f854f4059f10516ec40284738930aee63cbb3e34879b12994698a73b9b6c65f71b0069caf6d60e969c23003546df85d7beff32c3523c1df23efd9ce6a0544a74ad66b2bf701b85f964bffb3a67cc5a2bb430cee1e80489fef82c91dab8caa7a11823f3359a1bcb14e7b2c4bce7bd594bc6c1d2143f5c1ec8dbcceba50d39997b2a6206249a322b586879018b3d2df6c85cda3ad9d836d5514af30cdc4a667bb12773f74350156564a66c715377ad530dfefbd99b7aab8a8d339768187bb29bfab513bb528a34c41b035fc66c096aeb37bcca027958632ac112863ad56f809fb8a732c980042992b127c6a04e321ea5a05e1ce3e101bd75c5f877e49fec6b012d8367f28e51bda5f49e8b107e098007b87df4acbb3bcd59087091284798df4a5cf69d0d09564c6f7da5db39a25f7dc6dc45cd1add6980f4ac9dcdc326ef1ffa92ac9969e3e309a82d7912712f7d8ece23964007297ab85c283f8749b4683c90f37a440ca258738718217ad387846e0ff40b7ee71e7b6435e31f7e8d2e635c585b53f342b18c7f059e99599c3c46be53a0cc314012e96d67ffbc8adb1e10583128031f4e829f6645455345d898bb261a6a7fb2b5016928ad50ef4cca8e995173db0c19907f6873b15fa62e54e23763152f244cc36ef174983e58a45fd8470de1efe3351cd6523e366fc29da59ee90e03e84e7c80aba6b7505c7f55521e0fc1a61e4647a2fe424faf6b1f77c095bd7e7bb3f3002de380e1dc47ae846e1fbec84c3532bd698823cf717d20be6b9119b0009b4555ec593e38cfd27867f40b390cc9545f008afb316f2ae3ea79939860843835f324f5b83eeb3db7d52ae7447bdb607d1838e595a772b238c719ec229962144720ed4fb81e8dc1a3f3c38b5a05ba9be19eb2be938e5d705e7b1254e7ad17b4d29c78b0bcea71d8ce7e5ab00a589d1207c846ee6ad03c54934719acea9c4c30508dddea44155ef0ae175ee40a686faf766e2326e1d7583d9ff560c1d25e2c2a7a6704c439f4626bd98f56314e9a4837ac1363d89535af62f6827f477aa5c9bc8ee31fe3fdb23675bcda0f99e384afc05ef00035718660aa7b14ea05d4942ee1fd8453c1a7b28074cce28bf7d4dd4aed34ad0661203a23451611f6a10def3e26837ca13280dd16cc7be69cee57c88485362aa588c658be924698d453e8ff5263a7be2b5c373dff47881342ff713f76e8dc273394bdd64f5082b2034f8f9f88d9fef98274b9a36d408ba1d421724e169d2f937a13a310bb8054932f70711fe7c029eeab352f0d18b32104924eab6fb941d746c9049d3b6b9b34fdadd076e35056da2439a6b289667e1dbead1a0c41e1aec5cb714822ff93e169c3749d6eb458516a323508f5ded92cf5a7159e3585c361082ad0e32d1a5e6b9646fda2ef33a0a7af39692b01d838f93dd62b21e0a036f7488567c17628517d179e1c28a4acfc304f0169b0d649785ceec633ff797802cc956fc1931047657914337cf98f60dc2920904996989753ab1dbd02deb88abffe1ec2aaabf5e7772334b69610347380ec2c1f38a16e83622f6763047b7de1c78e85f78b46f16369fb09d57d60038cd633fe82045f80fd8a09949438d1813a0d162477b96ea79cdeaca2a3d21428f0410c082d11856fe7d43c422ed31c1913c3452411368aaaf5370a6d19408605487ad0b782a9ea5bfbb0b76a628ad3cdbf6005defd1a2fe41755efa84654e97e7a9614d11d2f1cc874b579df335ba8645473778c4f2b498a801287ac035cbbf20f0e3f063a0161d2a0197e6e0f09f42151bd7d665561b1924a3657f9a27ebaea480551ea1ec693c8a77f5921009c274c8db5e63e59635a26d2cf8073c78d6f1d2f86d41eb28f0a1c21291a049950d3923520d9e3bb71975295ec25ff097fe8a27ba461c7e7165b1ebb07c5aad5e90976fab066ce8537b3ac3301325ffc95e65695d219681df4e6f7a184685c20929d88178c18b4620b72e66ece90d0cb0d2266e809692a4b91aa1f7a689137f49b538e18d7fe36ac45fd17f63ed0c893452a7c8280e8f7857d8e4b3fa5c1d98738335419be7f632afe03ed3accf9a11c838d9c5081250a0b3c20a2c66e7169c1b8a4231e2b849f9a3b88f43da143193e5b43bb285239face11a4435c482166fa93684b57c5b3f2f0a5775b51514babf0001996ba3041c6d920e944d5ced3ee23a451c6647cb922a4726802147b974eb1d41b6deb22ba3d95474612661a5522de0ad02edcfe39ad6612e92482cb80f36426a18d1c7b8b83817626e6e5102182336c01a0a8fb9d669386c242bd0c1cd00c01395a0ba78b5e59c09e83daf91dcd16a28253a4dd10025215173b022a643b91018ed5f3fb597bd8139f708294713e06db14a73aa973bda689cc98233a2edc7fccb13011016f6f4e73eb0f31d035d8ae3b54535416641ad49dd1c6b82426ee70752577d014187189f36983be2a8b2bf7381ee6ef4ee33267dbc03a8dd15138d87d0fa588823fecfecfa835c094fbb7b265dbe0671faec6e70db963d75419f5467d51761509a30b978b64cff4b089686851fc451750884610ce45f86f32d61852febf9b3256676f4604cf9cfd21c4f221fd49bb416e9414bb28054d91f88e110c9330cc38515355431b0bbd20000a24938a0361b5c5902c168e9c8e26b603ab291025422406953c5ae828b4cee1ea6f21db6b243a13e2640e8d04cffe0ef838e27c155fbcc8f99e2671f7f10be83d62fcc02bb29dda51ca9173a100273ffaaf9b8c48e721a294218bba84932f305f0d70b45e606659a4d7ec269bd60530cc96af66a699843600caa28cbd6b9cdb444f376529ee9f2701fff96e7d0e5de1cf2f61c86f086a4f7b9328609f06426c1870e001b89012b4e0e2231f0a2d456d2d5eb9844dfc145c7d60248fbae54927b1106f0e28911664ac12e0eed7d2b1e8e52c958587e85ff7923c62499a8e260081a85e09f0c263387cb0c49918db6a0a2eef86fb4925b47ddd1e36a2992d107ea4589ae0861229949a28b7eaa19fa2f0cc1c723f17ca4e91d884c6434023a197f06316ae9e0d2a3cf7db43cc1a9f2b2c7bfe8b2db40d3d79c7afc987da7f5e4cb06173fded45150cb65bd38db071509884a5c969efafd4f5ca02684dc663b7e41ce37cbf8757c0f5edbbdc965d67f529252929debbd0c8b4848fb241b49689c0f17c31230fdfec3015b2ef86d46f8a214da64963d60ef04b3e4f134022d99ca1473ca24ecd3e89014ac84b66533d4b83996ccab15a000706e7beff30cb8a5e19123b1a70d3e1ad02f2bbf1562eef53001a0b608b4f605eef2673352594a16f050afddf2066df2a280e9faffb60aa65b76b1409890826b6d5f5162f7c98b520a4fe8afc458a79da2e82348a9f2c875393d05dd25046c5f8b4723159bc87231603c65f681d0bf7c534caabb1219111381e0e561a4a250bd9ebd27c95a3a2eae03ea82d02d2ff8493fb4d7320d27a2f6624dab3ce7ec33d75a19e652b8746f85cfb2a8eeb616895decadc7b5b4ade65d19900825ea1d7d8798520f20d504ee274385430c4e5d677d8167edc397d3d2c8019ff2c9c4124bc5dac42edfa4314be532db7f5a2f2b3fc5d95c299e4218dc7a609922f823022aa582b65de1bfcfca8ea1fcb381054c6feb3de1e005b27465e7524d565d377317beb99d5c36f5d8fadf0d4141737c49bf8d66255c65198568716e6817d6a3cd36235bd587296427dc98de67ade3e8bbe5f7a2814ab4077daa919be6d107c5dda2292fd57a55a590e8541cb22cd8370d381512a34d97d6e8cb35470cc0ad2b8985aca9d1410861c62861708b07fb524ff46891364e729e21084cd757eb4521a8e52b68515ae3ceed9f9fcf27152bc044817064bf3959c1863b60327e8c78281a7f380ee76ed3a6f78b5864b73645b94dfe62f3e73206b91e387dc0af96705eb61d641f09df2c93cc2d8d0307e46567c644c26b8192b0eb12473f75743a42a2bad6d7f87aaf9d0387575a94c9fd7e3a79636886e60c0d8430b4957ec5156d26c27619dd903d33b62cfbc0db81c67edcd15dfb847fc74a40de540296ad68b1bd66445dd6eb1a7ab449d8d3483609f1b4fe7faf6607b4d62661283b4684dc8450f5f141822ec15e3c40b65285c4a82f19f71be7547f2c6d0246abc36c33d0365cc2ae2735b7b540467c43e49203916da0f4bb0ea313256f1d8412fec6e8df3688147ed5002f20ab0863cbbb5f255014cffbb29e1108bea7cd588573abda17252e52a6de380fa8c5661c7a0391fcf2f187989623341898d50416d2ee94736c159d948e3732eb1be3af432aa6a6539560e23a8a93ee66f8c0f5064d2bf24ee1e8ebd5441a2986ecc21e93d48fef5e725e4de3e3474cd23d298b0208cb9b6035c4cc25403cbaa8d596ff4288d69c16456de5b3809016c51da0abb00923ba01f3ee3b15568d2ae645982cca5a2cf85c7bb0ad9f8c98b123ff526e49cb8a85ad6e7323198219e04d9a5f02a2fc17cc64dcd6bb15e2b47243a7b15c47880fda68a67524d414ea3579e05b1650347399b9079a8bc4f65d73854a2f68a687ed5af102545d5fedf217046df4eacd77b80463fbbf4d33cdda2197d754328771e97ab289fe22ed2057d2fe32db153dd52a51f393ba50478569159d39a9e87f457e737ac4b4f733ae9b5aeb8b83659cec8134580f44075c120b1d6856b8f89a1304c0b49a4ee4609284b9154d0821ee0a67fd25141791a99eb9427e3ca7d7372a49076e410afbb5639460a512e9fb3a61fe9aeb81bf013ecad08e904c8fd41891042ce0540529b119d20c1af5b71d8b8e934978cad61fff9abbcbfd959a5cb285426bb09768a8bedb3c7ac75382a7213621b68a32627d5c0793eb149656a50c9af1956c6fbb0ae6482686a2c3e8d480bc9295921a36496f30203db7a74c2ef91a5e95e8eec38e1a3841527322e88a519f1af8353418386b01574a522d4aa0978ed013cbd52143df005411a7c2a6bbbb14b60de0923a5705c818dd735a1fe3bb9d81b86c9831393a0fe100b68807e8ca5f2027d5cef953ee0f45834c18763b7d353382c6a973bc68de5279996b29204cc226de3ed14891e691cd20bdde9843939040ed944217c60c535142e25374730be0218495ab7d96208821302ee84002611045cb969b40d280e4432be9ee99ee4ca28a7c5f4d29ad022cf38c865d450274c52a48dd4b0a66410dd0f56e421d02bff8cbf979d54647e5f03aff10500a63e520c884429c8306f3c5bedf564acc1c34a9df391c958f44c94493aae1eeed0d677cf5a65dd730cd10055676613f52c5e247f2725da314e8d608f6e716cbfb20d682418a15a952dfe9643175375f47f694e7ba32652275c3dada63348ec91e1924186d133b51daa796b824670c459bbe2dde87944bd4490e0eacf2d9599083c26b68e35285140ebb9801f4494794b6a66ca58b39c64c167ebf1084b4507c1122c1563cd99a63adff988bcf4f672eff6339c107cf9c1da37e4b6684586a66c515b8cce572c29a0f66049e0f0d000bb8c918f8627d45a574135d8e5884dafb81f42ca387192d1fd24064f72977cbba604c34fefc5477260d8f6fa9436c90768d532570851c8387fe91b0e67265a2e2df1a3767700559c3412e9615613c322ee9ee0f18f39cf4ede2ac2cda7bfec43244dc05d87a1287093936b667992ca79b15bfce688e8d5d2c2765677eff841efd088cb8ffc6729a8a069430d60791b875ff38121db9f4ec558987d9ba704b83aedafdf86d1ba110bbbd3b720abde9cfe3c13b8e51b2033c691552b69d59b4af0d52eb627d15e553f39813a1eb26aa8f4070a670fbc31a2a519fa1075f26d7327774de8baab7f3fbc736851a36aeb95bd51319fbdf6e51a218261b9ba5dc3f1bfc19c0b5d062cd7bd28d7cbc646affd1efd35396de383b5062ac6ff92e243cb07d7eb7b8e91c83f1ac91662c1a2f25ec378dff01d56f5ab33eb4fb49df78f1763b2ccc417a5439b78539b2cb00f8b39e83c8346fcf264ca57dbc1ac44b238579661982b1802aca017ef507189bf0db484206a4f8253b2683756cb2aed559f6422eef23692f76a4e4185a825c99cd53067b09440d9fcffe9d1115adbe0579c910fab65b6aecf2d6549399a8601dfde11fe0090001eb6f86ff2f4c1a52ed8a5f35da14d9a6a11e4210c62e270af236865552e345906a2a312d2962039b8bde3c82a246065e32c6927d5df3678b9bf6ebecb1d007fd7f310c94af484cc6bbbc12db61d6a3a9931f28e022395b12b1982e03a55fb30b9c64444271d2448f259e3a9a06c6b788ab17bb1a8a24a70bc82acf4f2443c3ba4789a6f4bde5d045749f5c3f5d10988a830e7d742416d655358d634cde270057814375245a4f788460d86c916c922adc108a6656ae387149728f48b7f7bc5f3491fec8ce1983ee9198a12938bc47377b18b1c7722d665dbd961c4af4f304026b0205378a69e8bca8c6931cf82cc704e6b7c76f9b4c661dab52d99ccb3316551e2c27aca2023a42a6f4ed00a89aa9d3751afd085a6bd8bf6decee64dc40ad2999bc53ea1fcee3ce2b3ff8e0ba80fa63ce5e510ce6c7582eaf9c366959346a748d9c4bff50e14a73744eb44557ffe4136ba943595fdc3d529455906a9a6c5d52606b670b7f73e231be17f3b85d295b0b5d7d5be4452fb17f26fdf1aeb4b91fcefdc3c345200a92c560bff0530bd895bb29fc019f8907678b6740df3eb78432f0734922644e016ae408335970ce99cd01abf596b3b4dceb501c37c8d9437cd3527608bf4911cf39502badd3550d8d75f952238b9a4103f8b80cb66542e36276a17232a97531a37165fd68fb497eda574ad86376f99ca4e8b6db53f551c63950924c22e8931b0317032303fbc6bcce54da460708841bc419801d1c836130ec1b319a0e5b6497f209d4e25624214db5cbf50086058b159022738d96ece6801a66888881a5c2c60f9c222acf11151ff4de2d7b3b0bae6602221b0ad1ecb616290a9d32b94d1663fd33b225c3311806c33fa57cc52225d72b5b73d7a303c0bd88e377bbffff3d9d75a602114f7ac6b7897d99e2dc4018901cb252497144f393d573aaf458b2b8686ccdeabaa25db12c2e8965710cd4a921bcffff3d3806c360989ddb655414c88009c11245223920a75350790374775729b233f5c5b11e80530070efaebbbb83c0e3b8b7fb4c7bdf7fbbffff3e76a6be33bb024101e2eebe7be2d2cedac1311806c32d7d458444e68669c554c3d87c0ae2bcbbeeee7e543f4ddc57a8e8a13f24a78e3f3c6b2b46bbe5c24c0032842ff05c5cdbd46da3e2fceebabb3bf304d2c4dd1641d08fd76d19f9cdfcfff7dc01587c82304cf4844a0f7c65317125a89fa99998150ad7993a2cba1b84c738f77ad5c0b1afb82496c5f109471931c02144a39448ee4550f209b90d8ec130189e577545d03712a4857699c1bd7083b5630200a51d172e4ab509b77670fa1dedc8f8bc00deb849ba0a3e4f4d7bf55c672a95747bb8ca8add6faa88618ea4e55d4649db8aa287e7262b3a549c0a6094dc5122d6ccb9fc2ae99f2ffeffcff9d899fafe4c6b6b1c4477848e4b62591c1b33e87404487deb0ee78d755dd7759d96eb4c5d727a5249393865bd0636966eea66fee5bddb161e854cab1ea46e0fb860e0800706ba9b5ac1b888cca8a2fa1d9014f45b6ca4b58498459044286236043184310432c472c7bc206f51913774d66a35191f9aa8f58ce2d075b2766c454d313a2d1959521a1f72d41315c047e5f6f29636a6798bd6a849bbbbf75e23e7dc76604edd7b6bad6b77700c86c170ad73616fe26b736b2e3775343696e1c0c5ec2df3f4da718b4b62591cab4f3ae41e4fdd08dc950b91be3148e4e41117325a642aa8135a2d6ec56217c38ab01cbacfefaebbbb07d999aabb80c34a4c56d68daae68938e502a4fe35b548b2ed709bc34eddc2ce4116f8e0f7425013929c9c59719e20a4dae9c72b420e2b4318567c6775068932b38403f393d5db82edcdcc40081f290cb4049dc2e56523919eeb9b0a382948a2163c1d2faff21fe821ab64aafdff03ff69035c96e06856b58c4132f0e2925816c74a50b9fff516bfefeffefffb38ae3335e9c147cd6b7d801e1c905d8e16bd35954b1a6568043006d7992a1cba1b8cc5f8ff75ffbfebb95a2c4368b1440226cfb38ba1360909e9ded879efbd9f88eb4c3522974b4e1c9e9eee74004027e01348059402b382b6e0ec3263ecb0ac29b975a6fa4e527e2bedbe4cffff71be4f7804bf7edf4c0435b4d2d4f164f5e2683d921e55d5c4eeee4deb4c7542a3ca9f245486726944c4f62049214569add5a84827b9448007c760180cbb3cd58aea0a69808cc542c0beb5c8a5eb4a679da9402fca15118e79551bf51616440e1fa61f42104335b30d19aa0972aee68fd1021ee60816a38e1a42445a2011f23de51fc1f4e608a6de4a7347ac2bd4445de6a4abcbaa3d96568b521e5337800cf5094ab121e67c0a8c920622227d4699bed6ba9a54b916a86e3881b42c5e5aa2a9ec8260a336e7703422a77b420485a1783748129febb8b4ce54a74dc2f1b9b72b093d5f4a2e863055519d179843294b4a2f5c36924c4cdd38d3f15dd7758d9ceb4c854647309ad672be1196bf97ae69d8da4445eaa977536e262e896571ec2237e082db7befdd814aea1d6eb26cb377c0a1dd690864d4372562805835eb900709a82b841c34488eb1f093a5031ef1884929ba668c2ba9452d96f9d4fcdb3e67f1f2f97f7bfb23b7a5cec09bd593975f100d39066a1451f4dc829179989bdecd5d5675c80b2b15371f64c83c5d389456aa5ee6d1e70a7614d43c53ea1bc33aca66c2682988e6b7b73b86ddaa73df2f428bd1e274456d45ce7dffbfeffbbeef52e5f53570aef057636e1825ef85c20db1168563a9f66c794b797ebdfe8b2c26fff4f2dd757777a9a4893bed5448183bf3de5d77775f1e6b137777779b33deead2c40cc37cd858dafda613b74518c67bbdfe71300b2a68e4aba39a69d2cd56118a1e95483149bb3d0d2c8f5227659ccdbb41cd4b948b56ef66a5ea28c65d5ab5bb5ae792db21178f709da9c3ed81a7b837dd52b1f81025476364762ee8928dbd7724c82cc5dc6f2b0d2870ea9ba75722def7dfeeffff4951edbacf645ac19b5f284843e7315d4dcf2b9ac9e618ae33b5784cd64d4e10724035189af13cfaaa822fbc8e4712e6d104f3ff3fc3707177ef29ae33f598dc1e7aead87f782eaad0526849c80986f6ff5fd7d6995ae7deda07c76e2f04b4687248d02c259c5c4064f050b93aa1075b9d1c044b4199f6ffdfb4ce54270c280c231a8b552002d1949a117de1598bb4c8b9bbffffbffef5bb921942bf159d043de58a2768a8b8515b054969d081f503e339a328666d42bad1fc549332b7554344e5a28aa142c6755df769baced45acef70b8200257c0d60980cc760180cfbdc32b51878ae38c2d17ab11bc261e3c75542d9e0660801f67e803e5d0b979212ae98a43d2b3a5eb4e85162ed2490c3c4a900a928773f1c49aa77d7dddd956c26eeeef4af1dd66ab5103f13152944f417cb5eb75c0aa755d41695d10fac6ff16500e66c9944de2990829019e464821aa3343782318d26976955babda1b2707c5401cd6062f991e8f8f686465f8a29ba9594cf1107b82ac2d9fb2a6acbe068353319cb7071492c8b63778675aeebba46b575a6e67cbfa070b8c1a898e346dd67b6e598c40530c2cf8d5c8f94ac1043abace4443455730c5bdeca73c9a867f8f80db892a033ad0175849660627c92413c70570b26be13b3a3b52b18e8bd7b7bc3f4e27729b954c330193806c360d8bdb1b9552a7c657777a51839a6aa822750e444cd3d66682b93168169f3c678e712bd1f096d85c6329eeaab71a9a450b1a215e204ef71cd14f40c4d32ba03881ca40864c38545a4428806e909854e29e2f663e8c462b2aa590099c4ad1e740cdd77647677f7119dab6b9bbd9c0d83cd736cb41be3ee5e2cae33f5b847282663eeeeb81e2d94130a0a15859adaa87909d0755dd7755fdedddd9de73d6823c7e33159c3b1bf0da1dddddd91769f010b322a52ca5e8f560e1d8b1e513f9e7622817ebe2cace47e4c3e304b1b3657898dc2c54b0dd4b3d9b3834997b322e3a424e374b1b141a4eb4ccd8245b44b22748a7c54f365905d2eb95c7b634e25794edb8dc7909b09da49b37203a4c930e5bddbfdffb721ae33d58844b1598ec091c84be315909f662fcf1186790b1c836130ccce6c8d9f4c5b95d2612cebb1340d1c49fdffcf927b73efbabb7bd20e6de2eeee8e63cae0012904eb45511409d957ab1c35e8d874661ddafdffffdfd64a0da58a5247a9a4542dd5f4ca6a8d9a8bc6108913126fe404a2a51436c7173249df8b7917c47aeb1e70c129bb2f0b9dd7994adbe8001151a046ac94f77ddff77d71e4ff9bebd331d5a8df6310c42206b248d5937e588b4a544180bcefffff6f84b233f57579f3ebb533bf5e447b4ec0755b3041215b3f4bc3aa96181ff037d79110a808a20e1b90d3b4f63ce58a760b478fbb7b929da9ef4d56232aaf4924901ba7f25a079a6a59030c1f8ddb0c264704c1b0eb60637c9a39a11243a32d428247d22491b28b0bf0e143a29ec9e530d7104a23f075dfffd17a9da94d4e6814253a7d9aebbaaeeb12c170acdf5d7777674a194ddca78cec94100b53fcffefcb5a67aacd65865de8580c6fc9245bf2bec525b12cbe3dd1eb8c4b4d424778d4f33b1ea016cf1792b8ce54e3de8044c67039dcdd5dc6b6ced4f9448616a0ca868595140c5c9128664b8dbbeb0a580a5d2348259732cc700c86c130c9ac0145799499ea2fd8eca98194f4a1e867103d3806c360f8ff77ce96363aa4e7a1aa78a3bdefbfddffff1ba075a612dd931b630c8aa4c630eff0f109f1d1d4f32da6ed157f712915a7b18c753a2e8965716ccca0d3b95c40d999fac210c52c87e411868dccaece15426de88e7b77dddd3d775c676ab26eda1b72ce12999a0064805e76b4ffff1a3b53df58d6e2fe6f3ff35c51c996a736578e4597c755770865a4136a05e3ca852accad33d5e741f8a35d3fa2f2bcf7de1b06baced4e80698692db781f639adc6466536fd5cbcd959119522092bc88d464ce997f7ae616395584422d2dd8363300c86ff7136110cc070a2c080e2581d1ca7e6d1494ac4733d9135ce0a42ad95288c8a1d49a8ab1cab0b35161b76aaf4b6c425b12c8e75b42d7befbd7f4beb4c757a5249fde497e52733360d6eec4f0730c75e51cab4f173a30c520308005096110e5a90bca08d8a548e34c690206d0b63d992cf8d4b62591cdb1aa0919399ad0c729da9cb1d8fa9a844eddde7c6806901d31968040d046124cfd31a63001480050b6688b87c6c0c29168705e2a040140086c240001808060201614020280800c2c3c1c19aae0123b67dfe030157e8175db09e76febe1cc103203d542f555acb36ac63b837027b59fb96f902df068ff0615ba425596211291fb688198548ae5ae1450c0e664e936563eaf6aa252c5e379082fff2a11531005ccd0d4e6856b5e8d0b1f81f26a88893f9d399d29e4ddb4635eda05312a4a6289fecfbe00f808eed5841b6e782a17ffed64872af32ab00cd82b0e51fd3208bc6e290aad429aaad1c15a73dc605ca2ee3bd48ebc285da3566c3f683d0c655d164a3dccb75d08de0de7516edb8bb52a07c70a6fb615485218734a6753d86477ace12411c81bcd59b459e48baaa7708a942de54ece14a1341b2d494b0a22c75b909bba791986d521e01323f525e01e859fc726d6ba9195947eb87c3a23f33e4e48c1f1997a3271d22b8102a6c621c152378d129b745ce285bf5090f3b089b19a51e329893bd2b6ffc8a742a2fa5007818b5a5aa802bb412033a090212bd01d80db6a954a6c6e2676c4a07bb58205e5d33a3130836c55b4e8823db67941fd7bf3e583cfeed7de49f2b2b02096edbed7bf146646a48907ea9307d80f418a958939d2dc1e0ebec775a3a171b257f816811a52b0deaa3a178b0be6ef335dab53c41cc5b6fea9ea2b8d24ff80d68e3008258d7560b9760e3be2e408f7f700811e335d304b090de9fc028e44878110469b9fc2c750f02645074dd7f5b5899af8f1cb22345ab2f205b3fe1af3a19f49d5ddeda723fa58679ae59ef47129e49d5981e9d939ead65f356b1d9805d2074956f5ab4b74a3a09c30b0e3506541b4bb4d884e7605f37cbd5ff0ee0586157012074552b29f8d9272df1ce9e6f46617536accdb43b285e88a33547e2421929a1665b8d4fa2a9969910ef0051035cc15cceabad4192586ea7957f3f3e6dbb2402632919713f3c7921e510c9b87f2657e8e3c2d8a6a32452ad2db6a36205273ae736a24be2d1a5523d4e6d08446105739a9f359c09e5dc95264dd90cabf320eec572fb7c51c14f0033e06aab9a75471b56019cc8cb0509bc3fcbb704e35ea74ebf936b02c12c7b925b1d678c4c05d98b8d374b418c4cf93c4e4eedd2bc5921a19a6711069486661cdf7c8fbd59b107cc0c42ef393c5f0398d6c478feb233cd02019906b595cd70945ac6e2d82a5975a2df8edeff5c468fa817e3fd2de14a91379db9afbd468526620abf865f5cee6158d28531c663bd82d006ba2038521b74029ae1d43ca91258abba45528db2006a33227dddfc28e5ac5a3969c2fe66955ce2863a92fecf3b4a680ec84527c0a73449349b6392814f5a1492161f764f731ebe2634db89610cd85d3a78b04d382072f42f1809fe9825505328b59758023099ac2bcef255a046d1073044afccb2362c6250d08ef2439c78f3acd0912d4991705a0af86c40536e920959daa6e74eaf1435ba0619778ee8a5db16e70c8d8f3cd43e8bf32f76f23153aa3e42962b0b0662fe8f7de0a1c421781e27ec2dcdb1ffe13fb4fe5f39d0ee785101181f388f85468c7d637d13deb4db908d80fbe661e457d959a624b70a9bceca7c4e6414e32950ed38a5e59f58f1c1222753a7792cdda3bcc01ddabcc79c08762a9b03c6985fd171346f1f0a5be71d310b30de5bd14f495705bbe5923c7045fcf410dbb1c6f632b85d48be3c82a3220a6eca09437d00bd4373feba2cf43289b14a1125aca2419959ce97b7a3988d81cff7b5d16823113a6d1416b0c3fcb0103249758fa19dcf3a328884b0b0577219b451a08db02e5f412c229b1925e04175971072a7e0e43928a04426085bfc771a7144731fda477fa340955949579d206f68c28fe89cd833b90da15605c8994643a4fcbc7ff7d375108d5a7c5d0ac96d91265546200624164a08913a38055fc4f876dbf0285a0f4a4d7fa8f3b6e68f5e7dafdc0d8ceacbd74b2cb1dba51e6eaeb2bb99770829de17bae29e91c5e4b9bd00525718616d80d63de3186c9dc8d09bcd1d75504d827d3e2df5e5f840ba5547b079b633e1d0ecd5f05d9d7aec738cfd567ce6d9a20a3f01c6ab2e412a44d360ad41f16c8cd42580319e0ffee46bbe56cec141d88eb2f01b1a8abf16b154d4880ce7e3ae302bc088300a95f13b98096bc2a993d5ea9cd80346364943422546318204231af64738941158054ebc8e96b9bdd02f3980bfb02d64728c86ee4193a3417305aa0a90d22b4d31358af8dd7a2ff850473c2bdd09748ceb6ec6c1e70db76b449bf9d5d327495f814007b756b0c1f99496b8b7ab751d024ee9ff871af05d5735e188c950f826e1724e173a155019315ef7df578da4e06db1d5e0892739a68fb6ae6ef11f47632d3a5218885a5b1eb045d464b6136c014da7f94329115e7630c4087268e8014aa5506f7eb6cc74cd817ed0049b3e58fdc9b9d89f997c61bc3a4df95bdbbe561d22f0b63c2fa5cd62e05e6cfde81c24228e4733009ee67afa1a60b79f7856e6047687c85ec9cae867f8f81dbba3c9fa897a87b9d9bca1ae62043144b2a84409284e8173e900b0853c3598b70162c334882eb935808e60610dfa55486b987a2dc7b918773c07cf487b84fc816d1613a732aacb27d544c633103b46484f85e34050709447840c21e6cd67506c9b5869c31d4ea7496e3c138046c7b4ea86ddd3b8323c6ce099d806a2725662dfc16f1bf3550650952a3d3c2cb5648b6fd9b009594415a501ef09b5f21efc842a5e44705c4f7cc1f099e20129240e681a0679ac30994b4fe6807c63b89207bc7cf479b1bb8ed8d82580612920570a455f54040d3bfc2b60619fd3455f9d58a6b5b8dd6e51d1f026400498e0783a08022f16b588fda26bcf459f06b512f93e4267d5042de3b2ffeaf175bdf4e20820a4084e8412886047050715401f20b2308931cd169e082b7672b7a5f5eb4e1de00a54a0ffb626a80a9ff8636f119330710c98b7cab179c5b6821d11ccb257ce59c433e8c5445842606cfd3a9aea1601ea192efd61e8cfe07413d0960fc79a732b3761b6764e9f277b81262d8c0d43bba3bdbcf47ca7d4d6788f3a5427c2ea064827dcb6b47aef1cac7f870ea9c421e01dd1368e777e7a98f90a068799f0eb7071de8fa1832aaf8d2b748745f9c86843fa209dd6db580804db250a3e7c9b51b29f7ecb2bf2311f05656b47d622f5cfba6ad2b3e9d2454aa7e37c9e851eedd493b0ba92754a381b21ad12eee0dc6d4b155c1f8f9fb6f19c307aa482cec2a53e1ed5e04aa6756f26588684b50beebaaebd97425c6e2ed6d3b84a0b5586242bb003810415d251c10215dce16d007383181375f9546069813aad249b278c307b4fe5ab365769a86e972e1e7c7aedc76a493032be0bbe7fe51d6b545d031c6a94fb6a96e0c677d0e64588b47e298e26bc394d9e134725585d1e55f3972d46b8bd142ace0484a6852041a9232714c65eaface05b3325153a1ad108cae512dbef4c951475d1b4e172f8ffcc59c6d702efe4c1501a7d51434fdb8f928cf5505f3f581d9dd1bad17b6ce532a821a2124e125c3342a62b709d1a7b2bd5899adaece01677180eb2516c87a60483a68e9141ec824058642069c949ec6433e29d16a1f9dc63322ba7ec8c3c2415e4e94ca66e975b088df76d8a21279c0d875ec19310458400cde80cc7fb4e3cb90a429cf79ecd32679e9abd5a92cfc3b1616d2f9591d6293e368c700e9bd376785a9ae1e6c467cc0f2e3dea9c7693c29b9489ae8d1a446672069c7af7462eb90d96604789adc319635d53d33f41762ccd095d855acc129f94332e127c9b80578a2bb70c04851f811994b850a10211c41141421145db6efb53239a7a23671318744e0143d11648305c8fa45c03d3e4ec32bb771d9d936ea5dd42afcc8a6eeb574e040646002d0255f83031e0003fa5dbc3465064806ca0ba4288d5be2e2159632c5bfb2731679e4254e9265ad0820bed08d6d381a1505a66f78aa75caf5c882f26f6b1dd3c36e1a25c7141f8a5cbbfcfab32bd1c5d086d06b9be1d693cf56fb80af3febcc283ff09f26845c2983286349020f40240337cafb329ce164920cd8bd88ea3fdb17763794485e7542733a52af55beef81858d63c7514facd1c5936639a092268454a5bc2952594cac49a5df9cf31c7ba8588bca1dde222a101d815344c26b59675b55752c26aad569f9763d52d791447d5df5bacce9b995fb008c0d3a010dc785417b3ce0c042d94bf224b1e964cddb91b14d51864c0047b143c564fe2f5a119af9da18e41d9b1db5fdd69ecaa648bb39e60e2b16126090df633bc99509be28bb5c9833e5ada8cee707ccb6eb1935b8e2a6140c4b4ac76d29076dbed3365cc8b2eb74a20ee5720006b04885a910650a2e6371587572d686c8b509ae5ce97e26a8a4c3797292a4c3127d37a2ac2889f4257f5d54da0a3a5c7affed9a4a78c2cc67bcaeed300348ca5ce9411c7b5a83f30d7b4779d4e70a7d454b3578ba3989bfe9003de0bde3c272f379208990b3d1610702c6fe126dd39fcc282648d384b3b6ba2fea61a4409f1fc20d572b37b96baa8b4a81a8443149f94db8071c8a2d8adb482d2acc27042989d5081264b8cb40ab0457c53bc8ece54f12aa0d5a5eeea2fba6cde0844fa08ac371100c361b27916ace83c699bbc24a86d74466b141252bf22d3091f745701d12b3375cd779e8a017d61db8bf6b72c2c824cf2f37b9a86099ed4d6ecc8d60bce594ef9f7b572eb7af6b46cfea143097af1a419defe382e75a07d2338af80bda215112e763a3fac5a7a6a511624c0e196e67ab8f87078215bd929d32c2840d59acc32dc589d06980095fa944439cd9fd8bb74890a2f11fb215b105c6dada74a0b90b96b2e4cccabd63e596df19af33ef68a54e0e9dda1b31a4f377c8c02eb0cb56f0bd2d7584ecca117605cbae94b268af5de8143c8a59c2194856548f4df34ee2db914afed6b1dc4bb6ce8d031a22ec1b4a1d4a6e159a631de1575db3f1825bc3c977b70a3ea76497b451e71022824ff0f7ee80e05751a255455f0b1adc4375e526b8c8f2b20e79b8e0d43dae60b9e215d463fed4f4d8c957fcac8e46729d5857447da071a171d70ff1c33286b1e315daf43dbb6ce51403c44e8f92d2ffa4dc2cb1dda536a53047cffef7124213e5f92e1f3e99a6f7354f42070dbf8735ad904094e79da65a5afb1eee23b3c693e7c170f86b814d5d452b97f003d8e69978e4eaeb1842adff62c817aeeeb5bb17ca1e6629f3822a2939760a455687543f07acb403c335f41f4914c8628daff6da43dd7bfefc7acd12f7b5fae062178744c52258b9841d90520d5811f4e9a2bed95278ba63e82220162f04406dbbdbcc5837171a892d86fa51757380ae880082e78ade93551ad4fddfc3cd5106da013a78e55a0c3707a721b4090d68fe3fcc5123d7043dd1b38a6fe7692725af45eae564188826b60424230d3521bd9d96210d1890c337f500e7eb25759e180383ed2a2f55b7eab5b8c1bd307b5a33dd983f246b79623778388674b2cb53562dc1453b0a29d17fe90bf46971164c8af6bf3ff12f5bab6867f2297a6a93a317d1ab5666dfa612ad6464021932d0f054946b587429a55e6421042c4a9de63ab824bc55bd6f7508980204b945f05b3b652f66e7fd053bde4197a814964e0603c2253de620d6718d44a45ed1275957e0c5d0c46b8fdac2ebfe88c97264af97bcfd1e375ede3a6210c4cd1d0c84b04d4070549c89c36aa77cb91cc5590a1eb5ffb416625a002dbb9e5776ee5b150042e1dfaeeb67b81e6fcd13a984ab8eb31861c6987484d3a13372f8b3ab45bf90f4bd8a45e0a1a4461877b94a02a526106173bb9d064119d37b82e04682fa522a64bd5b9c32942a6ab807c41a56e4f60d3da35518cc5791ae19602570c886ec4c2f5950bdadc57aaa1c0c871b238100fba0733e6adf2492ccb5b1a811224ab2dff997b27561b64c8f643edbe54985cfb50d849750ad512df58ea00588ae3a1c2e2cf81984ba8d4c82f5bb302c3394df27a87299f43760ca52518bf63b0a001c44c062dc78bb52d46a41dc2154ace61da57215c15fe20b4a54aa88de434f27a402920b0c6ba202d09410a60419ae35351b932fd40221eeb372302da0b6a1652e5afc0d1126eba43df39884ff81260d2c6aabadcef7777704b9108acd626894001d039bcdc08def0bd271300e6fabd395ab67f79467247505490069325bef69fd049dd3bb5607575b6f403dc4c90fbb0718f320f0915e80f75db45a349b3a58d729f04442808f28cdce520cdf0e3935d9f3140d98c7c9d9f64438739afab17052e12148b974734b54e494fecb2a842e7a3a8dc7f749b99dc039199ba92c032a9a52c9ff09f5d3b3a50c3611457a982b8d37704c49a226853f6f6ecc85a8c6f3380769d80cc9ae39b473dd910fccf021849658dd88add9b70e7c2134e00dce5b3faa088109c5254b906b66cd7e8e54360cae6a9a670fc9bf20fd226f16e041b79a74ecc1b42fd7a46f2d9d5dd4cd1e2d912a8c67c29da3419563ecb33bbe6a82d68e12e5a1c368816260fb91c3c69ab2145950e9dbb61ff7edf3c419e1f5cf469a479611dcd67646b59cef52155c3fac91c55ded4cae1be0e9d606c409f705def241d98e4d0c74511822cb47c8209f2112830f07db3ddf4759410a0057a28a6c228477367fba9642044c317d433f5129411dea5b7bb5d212d1688e9a345865b36d5b7a4c835589855dd3e27963cbeb21f7d4b8b9ff78b886a27ffa33dcb04361e5a6822c45fb337bc4089f95991d2f6edff5954cddbb6d0f489ad9e7f6cff16d99f7d3080ae8fb41dd1fb56ebaa403a2085f7ae6079f4a95b922c36c16643fa2fa9ae0383d419d6645b7f9874e0bcb46b551661a461379a9ab82c92a101085cfaadff8cbc78e40d855da2707dbe4fde4a318efbee93db666bcc7ea715dedc3c85cd3812cca6918f0d9983dac062fc37077904f0d02a6a47b0f561b6a9a9cb1344bca608d6d47b90aac5f63c69d69ed384c1ca68e1d6ed3701bec48d35dda1417b6bee97a6cc7f6447bbe07eb1f22946a2109cab8f4923d54b196170796a1fbef564ba192ed42e74831d6a50c5b8950b4118e4318d8ed225ca923a0836b4be8024f98a821b663528233d02b11ee93baafa9521b63b3657daca84050c6a19f15816923a344e20127269e4a0deed5117f0c97bc46914d1e3d394719e36f301669f43eb77f69cb3c110cc086b151419a38c287170a7cf8905f434cc255a1f918be5df899ff7d50a8d9a1e84c09643a598b771f9bcabdf8d56952b909799e2fa20189755ebdd552c38f03028324a317662d2859e2734b00d604c2d218f83015d326fbe3217b105e612d9d48cc913d804d8749f5da40078cee4948f5eaa84aff9e0c126058166eb42f8f39e9cc7451cd621bfa96700ebb331843440ad7f5d4d651b9b9c89717d03ad9c59cab237e22a9b9ffb7f453fd7ca13c8e3306b303f54fca94917b23501945c4015040e12ec5b0520388aa689865b5e655474fb3f0e34d04046540ea2be48a8750f225c3d5c4e123abf4845d01fbe52efdd17347dfb0d49445063a896b8befd1121d11ae719c5e50edeb49baa59c2c6018fec4d6c0186ce9991466e411b7ab288a278317dd734986882aba3bb50f2fb5ed67b56a7a2925d51a1a019b91e1fa29737a682d76a43e222dabdcd41ccc056489d80e189969b055935adf8b03c1fdcc37fc8ac607849ef09b71f8dc8229875059b357e49178fa1516d28bfd0dd915f2e888722fe6863710511b5d3e670785e7808a3e6e0b275cb20b370e6482750042184d42db243c5456285300d67632ca5c4170877f07546a40b1ff313b3ebf9e8658dab987f21abc0f398e0ff3c876eaf1fd2a535cc8a4570fcd00bc6c1548e30400794d1e4137dc51b3969c9bdbe5f2019b0b4db80f18a6b2124684c257e3baf898b63596e52a26f286c4adf00bddd47caf4c60ff347c61f990f929b5bf580f1947d61452df19b9d329c870e2f984d35a26a097ddd805f7a82f97cd0fe0946225f180f7153a42c5f3e1fccae6213ab8bfbf9d03d4572c5cea5c88c236b9a95c3e12d64567946a681579aa001dfdac7fe3cdf9b3cd4b8d05cdff1a062ec6afb1d9aa2bb7d31078b8a90f4dad92c7f85717ad7ac4c361d68a5813ec6ac5d7123725ead0e46c2aa1abe29701569894058488bdfbffbd74a5426004bf0698ac921213400b3c9965f3bf6f17b491f5bd48d66db972c9ab05cd896a7a85c9060f32f15c7210f251ae7fa07d60a86def5e30a904e9ed64f40db4bf4832bc89aee837a29443363d37739f4b8e8a80b15072b057cfc5cb855f960e3e73b26673357b7f009e9a5ea3f251710d8f91b9bab13c6b28754f33a4e546fdca7478eb33eb619d836395bcb481fbae33da42a6b241effa37a61561b5f801e59dfdf8c178fc08672eca75d8b17f6194e45a8dbfd8197a97818ec9bd021fffc1d84e987e736e7ab14a2d9ab23a1f1f4365e1a2d8676ad079024047da0e2f40bee00c7a55e362c23d5f3e445ddc411cd3455638ace66b34ee565f3fc7bde2386c60f6a07c25ae7b9059fd7df0c6bdb44fd021f3d7712bc355dad8d342a147b60702e458250575898022c3d4a9a7309a94f2535873f1cbaba04b69080c644b7784909abe07f8031ddb2aeb0879c29a25e534b01c038d820f0d769f8562547eae887a9fcb4ff9f323aadf428245a7c5d27292a0f9b613979b8b739ad0730a5e48b13804eaaad0f83440b836c0c95852b377ea3126ea9ddc96fb959bea3ef85bcb3b044c23c146bf6100fac96493884cfa40572889d28a35ae91a4a777431290f038a14a58f9cb8a4f6fb8506b74067f649339be0080c497677cda17603cbb1e22336e04ea9173eb8dfd346246e57948265e0c7338213c588c63c54ab7bb200cd0b4d71ef73676b3474b803c9811300325fed6dbc7961956516bcdec8b4d611e9b35000f9458a9c37aef57b6d5420b12dec06a892c5e06fa1600392fa8332b328c73e0d9e7c5bfa0f481fc81e1c1d8cc7458608f3163242dc20d2b7917a84742556e859677901785333971a02608c69773b5aa2f4bdb19a5b3f23cc67c56162b5f6ba4cacf137fa91617b5524fb7edfd8a1eecff652989dee9dcc458d4d80201ad570f10d87d6c8e9dabf9c83b3eceda9bac7fec88a8968a956efcb477e65819d3ed84b427fe47a7042eb6e1c4c6dbca33ad28d7184a67268cede08bf670546c50008840c228404ff87c9e245cca242f2b7fc6de76b61368842c6a29061086de61b081226e1da959f597d09e538767d4d119597cfe264d92274ddb927d22b52e6362c5f4fcb7ac04b627526e6dc04f692304c723f3fbf1d2a75c2bf479bbdce1e6a415a306037c0fab30fbe48308e8d55279dbde830066b89c6287488a58caa40041fbeda5e263c1ceb33c4f0c134d100009d741fd2b574708bb0bd2e2289efd7e1367dc53bd1141da2bd53cbbfa5371e3c6b1d24b55841a069a6ca0401a80ac5a8b36a9d2cd782100d028fda84b1d947d76759448a38cc49289208820a7154909420ad2c958bb95ba6c264f6f7a3815e7e13ed22467215976b21cc3dd3a88a5aaf77842606831044d837303713a1468afea1cfd41135b6544b89aedb76c982c1747451592950b84850ba89c24c97511d458b9aaa84035c5b368ec5937f85e7db8606c9cf24e1011d18db16ea02df404b98067701f5453096efbce456addec3e2f9be5d1560ce9ffd925bd326b8a44466f08da6410d957233ec05d7ba19e2c539ff9b3b2347fcd70c915022bb5a2a9e2e7fce484ffe303df4d33c3201ed4b5221d7f22f66d2d8363b1be160d36f8f8cc27a22e829fc4ca84546f41b5ce222fea657d18f9b4fc5d4c808977e1db088fa855a373a2a7375cc7b06242abf0683a588a62d7880da4305cecd7485fa96cad911dc7c158aaa268e774ebc269b444f1d8e6ea1041639e19d4a293cba812d942d8cb6559324f40cbba0aad688495cb315b748b7178c8e2f77ee460921d8d7df395bf19f6239f1f1e1daa5f96eb960d35fe1e8e1852fd969f834e7601269f2298e332e34a9f8aad38d18cf271c8a1995e42702fa90321f34250392125d922c9900a4380d86cf9c3c99d76ca714d009f94be04bf7b9916cbba7da2af082e5145c59c6cdcb25df112f1006859a28e5b7a814dad04dcf20124df66a17e2745161f3a8afc4b56232868566cadd41d6756640c0b7ad50a6c6a7a8359f886f5464a802a2e58bdfcf680f941a78ed015d50347a58cddbce3430db18d487d71aa44147e717ea2d0b2398be2bb0ea9572ac35f26a62a6db7c0f9815ba0f619809786d3ac5656e54661a922bdb9a65c85dd35c27b6b2d54d5d24e6a144d6120e4eb0bbdfe824749d4db2085685a98672794afd00bc0adeac77f5e54e83c4edcadab2057d4d02cbc728dda48a6c040c03aa52f27c5e304c429b0e75cc69f62d8e45c71acad7aa95b8b01647ed73b11d03e27bb0fdc806ae6eb50e66bb174fc83ec375aae09ac389c15d15a6dba50a287d6a33e8ab71d165652a844ae7a276c6d54a5a98603918361112d2f6eeb6f7967b4b2965a80866075707e8fd4b45cda9b5f452516cf554f8ece9d893d9630fd3eec7ec516a8f539876ff4d0cce5ef25229f69c0aac9cea2cab9289281d0555c798b3e5d44cd29dd1c5f6187569f70160f6807cec9547945325552925325d5b59e5d2ee47457df9424575adac7a0a4a8dbd14941a7ba089414cff749ca52b5fb3c6dc2b36e64ad4ec111f35797c319de4a5d245efdbf041df4fcba97e9f44cd0c6ed847f0593bd72d2c27561b3ba3b33ac86e3fbd3d9dd151e23deec8fb1b408977d833d9cb5a775a68570b4653e3a600f8da57cdc60d1c38395ab474af5b810df4e8e08729bb8220465c9aaa4457da95323b017b7974c05a44fcb18812793278b2c85c9c81e7961c98b5288a680d672e621abeb7b30af1a907b6815b639a2da9e08d70c51b414a087c00a96802053df4e953cbb4a6c014d555d1112446ac8053ae4cc11282a275af3c13846a08913a7a512c5d942841855d5492ffa61924d43051a3241fd929675de20a07254808810f534c5805165e4c52b2008860e1862d54a28c92c214ae0c8144ee63a1441815c2dcc002ce036194f18a1124cc338104de1113ddd52bef288a88ef16daeffb6870320380161b5a9081447fbdf26c98d245b34eb0410992effbbeaf26ca0612986857af3c2c51748be5044a645f0c30ba34a206075d0a118306ad7be561c101001ad033bdf2b050e161b044e140603132830a5d52c1a4c95e794d554eb49944c96beaf50ff77ddff77d9f130deb95d7d483928ef5ca6b9a818340b3e895d7144506145aec95d7e424469296590100259e88a1c297222dd32baf0621aad031bdf26ac052b3026df6caaba18a58793540097be5d5c0a493bdf26a98d253bd85acd886efff541f38b065c94d84cf8a0f229712f076b71f11850f9c7085bb896077d8220586db7773cc6eb5b17f7d70a184dd6d27ca0f4a3bdc8dfcf0fd70ebbb4354383cddeeae3f15891856b0819b08a0104d6edfcd619fcc25de3320f8c7c2e0e584266e2294533ce084133711c22e23b8e1fff88fbd92c584146e228c59a6b8611ed66c91fc0004d1edee7a13e1b3f70938261947f2c811163a5ce12b846a6ea8f735521efd9a7f3d75f4b972513b38f181126e5812850dd3830a72a81f4802aa883eb54c6bf0035f98e8084a42821b5830526197a5e866e1f28309352e764525a8a1088a0b2bb032c5030aec0f255745a032dec12a013b84192a3a424a4a80962a4c089001257053a448222a49d5f5818b152c7c4b63ce391f6008378eb9c81a15e584647031328e29a03261ec3962829c0b47b25c212244c1291ce2861d8e8461182240cc45aef2c1308761188621171250f53094a24f2dd3550b5d2837893eb54c6b1f907cf1a14a49099ea40873619ae05e542f3c22e2ee70a48d7a5a06856b8413f4a9655a0f6d398242edf2d0f483879d1e4159d4ca48601056248d01e852d5e50a0a0745b4043f555c91ffb42c29893eb54cebf0c8375595735824cc60ce39e71114b1cbf50046c7c52aa1a50929b52948a12cb90aa35a05ea900443e9a093d49c735e0242133740e9724505a3295d82d89910e5ad972a2f571a6452da2c554b729420880d78d149d1035193add51c28e69c73ce4e94be255fcb4b39013c5cce4c3e294646a01008a20085131390e04b114f849820828b131804b94bab3aa5a5f107089ad022af6546a614893265842dbc231184277c450cd9293a054c51121fa06589172857985c8142a4444913ae18a07421024b0c530c7184adc20823a48802c2b00443130ca93e73cef908cc55c011a2d89247bfe69ff7b4e42b626af00129a11f505075a44f2dd33a1bb9539e8c581166ca4b0c2830e1e504a824a8f8410a20c0ec9aa8013432a51466a9080f74a08528b7103cd2c30f8826968c3c98c110044190f7746915aa2735a501af4acc5270028ea8ca3967a21b4255a438e2f4c211302f98a0030ae0104c8c72ce79898823c188893eb54c6b13904c4423962ead36ed9ea07a083042ea0806710ced135c2eadf2a2be50f978c24a044ba2228f7ecd7f5854f464f7200e87c329b176bd725181b7eb2d7ca8a105a4274f68f14078346a39c191f02843e5bc245f2c4f47285c21bc5ca5608950180ab193ea61d8a4fe48a19773ce4660d052121eaec4a0a4072b8cc2275060b4d41f4c4b62118be585a9498739e79c73d11272031d9e84c20ce69c73064208a89e33134cb45b828baa09762418c5b55b943af03109433049965a12da720401c0904001a584ab198a40828313bb2ab425e584852f3320e154e4c230841243401175c513609c4041820a3810a1e4059513400181c40121154640aa4c4a44e2186630e79c3317a52f3d67218488b09a4ad214285494aca043e8444b110a422071f4744493a38a2b5d8c5e58c2cb124d8ab4b01d3841154b1811049215ee095b76d040cd92cba2cba29465e9ca9784cb790987c6a3ef87144d2e8ce10ab94bab3aa5a5a60d56d8bdc0125f7cc22a8af219c18992441522a529519ad0402554859baa98e853cbb40ec396922872ceb94b0abc9e73ce391b11f1ed723bdd4e69b7b46bdaed764f3b289149c7a4c4b4c4d4c4b433411445511473188661180aa124e79c99a8c2b42a5a292165895e124518854dae585da84858024219e953cbb44e2105a0388657ca974bab545607901266e800baa2b056032211455114c52f1f7d0d3402d3f0846955cc61872d552ae878325c24687002a4c18aa82a3df9a1c991100a8f7ecdff14649873ce39a7708b1441c20a91426e8af5e8d7fc4b11eaf2f7c90a74e9296a783c21ac202249120b55809092c210294be45e68b25465370226242431cca10e56e00f1dc2e8302c0206214315f0280cc724df062a10e59cf357f5352193208a1efd9a0f432358ea4ba2bab46a951446b73074b650f468ce47562a6726610673ce39ffd084aee78c7b64127d6a99d639491442946650628ad50ab02c718b90c2491351b21461ae86ae8aae8e72ceb9487ee185175e7857979d14c8448b69348e3927197fb85ad2a546d15d5a555a027f44697aa3a25c94024dc30b5128d0203484069ee044e02505768319a672d1388ee36803d3a555272d5c7808b0212ad73e231f06d896635e03c97c2ce6f5fbc4bce6e929f34056629ff5c7de477f0cf64056ec03c5def5292ae3f961db1ac96c8b8bd915d35cef137b1707b2721fc8f5b09771203dfbe172c5fef5a9c5bddeec99fd707dec7d5c1fe397fbe897f10f300d7fd0edb5679787e013fbd76f506f1df09f18af981674fb7ad31fe3f7ebcdf56995f28169987573bdc697f7fbfdde5d314f85d4c85cdaf2ed8ee9a079809a44ad36a0ad34f04180ef13884df3b6cc169f19a0f5f679b4788df5d624ff92bc5e34b54e1d3fabd56b087689c92ed51d0cd531c6ac2df69b831eb955b2ba8ba236688bc5f255555e9aa523514994e000ae66df42daa9dfb74e1c84f7cf2957ee4b60e700d3eec7afdd0d1921f19638fd40e29d017edb630df0f7b8e8c338a2abbde1904aabc5b50edff6304293a74b7b709ff5f6b29ef5a9902349fd96575f14973fbb0ffba09b6bcf2eff7b61b10fba91ac6d9af835c0ef83c8cd19c2ef83753ac6613ac66fdaa88e7f87be287e175590b91457d0260fdb673f5aef7a9fd6bbf88f15fb31eea3f58801cb65a3b3eedb2fb707f7b1b94b93cf7ad46e3e8fda4d9e7b6021f72f607bf9e363d65f168bf35c725369bdecda5a3f6a706962c77ff6b828fe16b4c8458e7640db6731258118c4207e107fc7b15e794656442655667ae53129220394198e9ec4c0032e4a8b114878496890e18ac5414a0ae7d35a5b8d2d683f6bad0e189dc3846b351aea2be854ec52603e3c2ed127e61ab522811e888e3e1a1863fc551445f0bec839483f11639c7ee9778b82d169ddf1e05c70735231fd78294eaf3c2556f4f43cd2f73f285ff96d03e02f8421bacfaacd7d16f50677f0490c02be224ccfb89ef9056ecf9c4545ef83ff91165f8b5bf8ac3677960188f9dde806f43d824784e315b9eaa4eb7e8d3dcfadd6a6dfd19a8e7ed78be6577c5956b42efbb230fee2e9595de2d774d221b97f8fefb6a0ae96a7620f51b456bb798300e30e01677636daa0bfd65d2dfb10bbe1912253245802adac13680b1757496bafd9835229bf4f83b24cd61c963da2288ee3c862b148d2666b6d69f2f83a589a668ff964abf5b5cc1efda4cb65f6b49ed425cb149f7ce1afc2c01c8a230b465ab3e5d22f16ad6d3b2992db76d2dcb693db76122c6b277589baa0ed932f13043207a92bfa905a79dd2565a4a32f1aba6018d0aa57312b611bcd57f26b7dac846d77aa09db587c7dbcc3b6d8d7c7396c3bbfcefca5a2a2b73e6e52732eee525d1bc661a3dbbb39e2d7d6d7bf52f7cb9dba39e5d7212b60cccb4028ecfa5ab6769589719525092b611ddc5466a6ae024ac16a4f2c1ca65d8dbd518a64512b8b328f76b43d9725de178604cb8d34a5edb5e38d5930a4decd81256100a3df20620adb7459d56f79d565bb0682ae12efaf6b311cc77bf106fbb94ba81ea6d1fc93d1458f722552b925e9621dceb9aa10e91829502a144996c874efc5b747727149d7ed8b238cecad2da39255595d85311261bb1ca6352de9922e0d56458c895b2625fb22a39255c98e700eb6045382e560b9b257d954ec1cc916256bdb6ebbcb76bc4d91a9967199089402a7aa4ea96a536589a90909a7a87e519aab2aa92f542d9c5d0cc191647dbce42db3a7fc96c9e3ebe393680b248ccc4b5679a90595d893f763cc9ef03fdb6725deae7ef674494ae09fdfd87bf142ebdec3caf945131afcbc85b076bcc4fbd5c91287d1294bb4a7636f1cc5a9b137f6442951e9a25596989af0908844159d2eed3e28055e8155a014283543de377bc6fffcbb445bd02928c5e31c2ac170469759a2e6d7caaae42c5e2a89433d059940a56a032e8155c017c00dccacd0efcf68762e4689778c058d380a5574c45d3ce672333a2291a949741277b4d29a3c64bac8c5a51cb6895a3efd53fcf898cb44e055c681b30d4a8d53a31411b6815457acc2b6b10ad37037670c4115aa39635445ef8356fd128d3db14a6fdb4d19adda6966e6b05c00ca00983de0c380d2346a94e22e754955caa58b5ea6b36bc1465f3535f6a0b0ed4b4c0f6df8907fec8146ddb27277c538c8bbb6b34689f7ac933725de349db5a9c41edc546868b808750940f4b75a89378b0e6e2ab1ffb868a3c47ba69361987b6048e3f839ff0b2b9d5f485e82e960b98bc258baba3963063f8f3825deb24eb6ca96d9037e71953848d0cf734d9387d8473ee218d2292c97c3b6d7eb4ac469a213664475a9d26b35d432319011d2292c97334f459a0d3661d21683c5c808a0449334da42e6333af0c75edd295958cde8c6de8c6eeccde8664c0c627ae62caa40a99b13c6f2a88b52fab244d564b57bfa32428954333a906acc615b59a5641a75a5d3982bb58c4b259731c7dbf51bf5547e19a1c62fbab177519a52490cc7a899d913f2b1178a2758b2461247d9aa1d4dd22dcccc5d10c3b17773c6a8b2ac726d333a4cbb333a26fdf1b4743a314f4b2d2597a792d7ef0c542fa3667ae597f18b0edb64322b2559183dd45434a33b9a798a4182ea3149bd7e6149b05c6cc3905e642e9b62228fe44c8f6d18120cb367e4b05c6995c14c720d8e214b00e0a632fb6ff620efcef68c0ed3eed36c510ad37417bd3b2b1d500a943a99aae87afa9dc506ab3678eeb2b74b294cbba01478a74aa86a735fdc65ae442a7565d20def537b1bfcc74acdffccf85a0df7a9bd8db7c17fd0af05ddd488b16bbc8c5dfb19fbe6d16de369d8d8d8d07819fc077d1aff33e36d3e48c607c5781fdac778fc312c7819fc47c65bf03f319ef64137f2c6d8385ec6bef13336cea33bc7e7a87dd00da7c6fbdc7c8db75fc3c6d7f80ffa36fe67c6df7cd0edc69ed9bff141371cbbc6d7dea7c6d7de7eadf637f88f8caffd4f8caff141366a346e6ad894e0e7a24ebb8b36551bdcbb50a590b61ed040c78f9dfe718bc77f753a2c92b54fd806e3f1dbaad9631aa317e925ba395d12cd09f4edb277f11f147e548bcee0a3e09fa815f014c55e5dec1afb980d7bac9b59abab36989c79f5d4eace3d63bdec4fd99f3f637120b23f67405c3ccdbb789ab77bc66719b0debe9de9ec30a53afe6bf6b0380f0daa839e790c7bec22bd531db3be83993d63f1107c661ef67826ad53339fd65e0fd9bbb0dc62a9347097ba639baacd0cf5d6506d338fff2e591db78abd9101ffcda1da608fd319fc2e64269599a7d9f6c99e5464fe9a0cd03317eaf5e3c615cdff3bacb4fc16c9f5160adb621e37613bdaa65bc5eab048d6c56b9e8a1dc676555afe173bbf6daa3b30aa4dfe1d176fdd2a1db7e0f6e9ea6ed2c5611a7e9a7d8d4e19fe996d77d6a90ad3f0d3550feb2d11b6d91ea661ab033fc6b65ba21bc9e2b6a9daa49768cc418bdce288d87b5d41aeeb8a81ac7f77f0e87c29a475e4f4fb177f07d8160001541d38f6e6d2a8f1356cb3e0519dcdd3f28fe53d923141a7d7a8d75288cec5f10ffbaa5d302ecec5bf987d8baf95e66b8da931fe0078dd2a1c7b467e8eafb71b371ee781e0f81c381e07c703c5f81b5f6f8ff3f546d6f0d98f1c8ff340723c0ece03cdf81c1c08cee7f81c1c087d1c5e6f249fa5b60aa8b39ef3aadf5c48b5b9ffbb831b1beda94ebf2f787ad3edbbe0e94d0b3ee329fa7ff2199e9e97a75a7cb54627b4c9ed12b74a340de8d42ab1442330426a3d6fdb6b366cd8a8d56a36bede2cd8334cdb33cc673f68340b2cb0e081623cedebade6a761636343037d1ae8d378a0196ff3f55663cfece3f87abbd9377fe381d4781c1c48c6d7f81b1cc88a8f8caff14031fee6ebedc4b13a04506fee9fdd9e3a7076f00460778069f769ec1eb5fdc1cdb6b16dec7aabed7abbd9f55663d79bcdae371abbdec25d7b0ec0aeb7aa63c1b6b40dead419788b5dc68e21c22b0800b7f5547535b84717b546d5e6fe1d22ba57483fa93bb58b4875078ca1eee4266c73d90f32c4dedc1eecefad7600447f2b3fb51de8f7ad0c9600e52b69d7aeb772d75bae37b0deee5984d6f715fbf2d5c1cd9919207f06690e527dc8cd0f72139c8d33d7c366230752befef2b5cc684475b8b8968b6ced19f83ae69e813c041ff35bbf41bdd5f80f6a7ebdb94c5e6fa559be7949a83b2ae842f51aa93749bd52ea8ed531e432a936f39ed0efc76cd9d6db5ed99e9dc2b4ebdab6c9c6506d8eac4ea9a7e443ac0edba4dedc7f526dea2def9b19e4266e31ccdc1a8d39e88fe35b9f5841ac4bbac043158eb7a4043658108760ad07aa0d7e8ba53ae0daacd3a5e1eff582f00f4cd0a96d02a9901f601bc975300dbf28e2aa29bd2075c71c1f57282020f1c90762fdf8df97f0a517a057de901612887cf181c667fdf740c6673dcf159f7c20567cc81f1f08eb47fe63afb080a162e946f213d3ea54145ca66ef566c57ebdb1760f4cc33fee7ac32fa46ae976f36c9d2ddaf2ecb8b62197865bc8529db456d1e0e7e9816df586a142283af31abad3f6bf7d81850aa178886228f7ca73b24216fbe5dbfd755753eda297c645edfe3a0981a1fafa77fa7d0eea8e8d61dbebef799fe81705fde65d83d0f5a260906ad34f23b40cf6321ff37a1f18aff825c3455e65a6943bd5e925dad3ef56b663bb561a6c9bbcda6d6fe5a3b55afad8442d7ad19a94ae0fdbaf1d04db5af8d617a2d3534da6a5e62991aedf6ea56eade5c15abb4008bbe6d5f53abdf5f6c9d6aeb9488176bde981f9f53d30bffc6a1ec02c3795d79b4fe3da5eff123b8a6de2edd620e3174df23f7b9f9e9a44f24465f45484166cf18731c6d8eef8762861610b92c5574488541bfc248b256d7b5aaf582c692275c724bffc8b638adb47b0f3b070fe92dce207d506638c2b385ae98f3b690ba588ce620bdacf5a8b7b68c0d3710244c72928f172ba28be4dd506bfbebca65e5217c5423abd4d521d8b4d34a4a8a423afcbf5fa35ff7105ddcfe0c73e08e40f82dce7f531fef3fa1f6c73dd6bdaa56aa3ab3aabe312756cedddf9490c83c91e16f3aed8e7980cff81f1ea8ad9b52ddb159bb31f2e57ec5d7fb98fec5ffce7f5b2b7a64665fc473fac1623bff2ee5477d8cbce1fd9bbb8365f9fffeaf789bde63f56eeffc43e267bd8a95f86af0567b6e82cb8a9eec0e8f8efaeee90f8d45760083af6d2f1162710a050fba9e3b1da6e13a6612bf6cd17eb4ef9e6931edc27dffcb4d64d21b5eec2096d3bf9217c3db54b576775884afd7ea92b42db47d2d4ef97d876ef7deded2aadd34567f7f5bb3ef64064af63fa65f9635f6f7cf6e3f5b107f2fa188f3d50c5b4170712fbd7bf38500cb7bbdbe5e990aff7d88a97ba85b2d6325df472eb7451fce593227ec15e2f58352bb6c5defc0fbdf29ae0765f094bf6828b5e1a3d6cf6a0c7cdc95cb45914ebe6b9b6823c17f4b8165b6bed051a581c9c9b53cf4fb45f6bec0c38b22e5738200e8e1645dd8f70a80106298eaa929ee0a2848ad0ee68892eb5988a5d0acc919eb924052eb82b46704c4c80a4e5c91095bad33285520dbfdd557c31063f90c76405b523c0d205fde12bae002b3a6220cce0fb4410f7308310c41f2276b0dae0cf690640b327dc17b85d1c470e02ee22ffaa4d0962f0f5efab82ac35325d742a769006596bbef2b292e87447261f3fd9e212e0e703f2f19f3438a8d0a98feec1fd7acff3ac3662aff54be212ca2fc1fc5b0a21798b4b133b9939c8f5454ff16226ea8bb21a9d1d3c3a3a5d87b41b48ffeb5d9b03b99ea9b33ead40d05fb3c7c75009ae877d09fa5f5fb1edf5401c48ff8b575ecd04b0de7c7dd5ffe2305e6f24abd56ae9ece0e960c805355e4f8aaa5573c1b581622f7bbd815eaf61ef7a06bc5e3fcf956d20188f6d2b3e2faeff2ca25dfcf59acf2ef781e977fd4cbbbe07cdf1b5cb345b66abd5d2d131cdcd22f96cfcda59a77e5c794510f4e0c42e49133a0c718513e9c261922e894e6b2f888ea33a37a7e68c2f23737144a7fa7be633038850a4830f8aa2d6e7f9d70e7145955e87b802a9cfe875082b52d0bf55b250b462119f389ceae3ae5d6603c5bccccb3690159f18aed3d59d1b1dcb3e0b9618fa26653b88687532bbde64322f93619b0caf986683609ace3e480671bd05ab1d31b03f3eb641f47992a0d5b1be57f2f47bc53bea0ef9f807506d768a0ec9ad0ea541eb6e4e6a898e6c07d876cac4fca7f50a9f7b665773837a1b92bdccb3769591d1b939b67f3d842f9ceaac6d7b100eb04df6f88d90c04079e20628aa6ef8abcc3340c66538036278c5b4cb239ceab21f3715d9d3b836d9e347fbc55f1b2fb72c6891ffa91be2841a01140d29290ec6cbfa2b0ea4a4cab45e29bd5073742e4ac4eaa855389041d144b04d3c5bd0e3b3de2e897609db25915ba56a434447151d4ca4cbfcca5e3929d9edb0b88b12e12e6a7196c87eb0895cd47e2af2ee120fbe18ca3e5d14d79dfcf81b50773888c0cd191f2fa0ead861593c7e2296484bcdc932e124239b539187a7dae0274bcb5377ccb402415de6c74f6b7de6679e7cb15f3c6bcf0c6059ef62cf7ec0f8173f8be14060fc8b19907f17ffefe2ad59cd04583ecb20f6f66d983ee47610c21efba07e2ad176df6a036357a00704db6117d7738778d88b42e929d993768a7fbde1988711c3673ffe613c907f181cc88a0f8b87f14034ff30feff39108b875161fc7e20ff9c03cdfe7f73202b3eb37f0ed4e26184a936a20c149dd61ecf0d82b5786a34fd7e16a1cd8e5f4f84bb433787fc57eab8856d15aec76f83a861ea8ef9c4a5eec05c9fda2b66583d988ead09527b84b64ffdb652a07e4d1ef62c42cbc8fc2973f29901ce8f791e27af179d919179f1633ea88f2fb3c7bf1795f10e2ebabf2de4a2609a63ecc9385b67efb8a8cd458003075822222f768b8d7417506ff0e377c2f8d3137f03aa4d1659ec7a0b526df0835f6f49e66a23244e4a987a7a5e79421a85375deb8ef83524adb5f6da0ce4bacd8051b7008ec47d1f8661f8610882bd025f555d143f99815cbf6fed6b25da0a01a73eb0aaa8e3278b6e4e15b6d95b357f8437d65b12f454572cdafec837dccd99c2cfc24655f956cd0c46fc22afa190ce202a84068d2e7a49710ac63a3347fa7b8b633dc618638c3166b1a471f7d1efa73a250d36e8c07462308bdce230fe90a727883f8cf11069ff7bcb810f6c33ffab3ad5e6bb3dd5e95f4f7574ca1df77b5b74d1cf96562d33471a7cfbfaa2b8f7e10a02c404b2e2e3aab7ef8bfd57abfeac346cf6afd6b39ed608d33e1646daf6fbfd85f2816de7572dce07a67d5fc6ea50ffde8e50d1ef39f8be1779aabfd14a5b5e75e2cd23585aa2c5c909dd9228271cc65e35d13d6e0e36a9b89ee7d6d4f0931ad4ea8ef8f86d549b45c154add66bb7c9137546c761c77f9bb0add6fbc29d8242c7f88ed031eea13fe8861f6580ebf5fbb4fef5f65fae16af254b9cc236ace1b9764aacfa34ba44a28c0bda4af57ed097a768b74617db34b85450588bdc4e5dde63ca661b666acaa6ff589ff62a080d72748bb68f5f46e425774de4acf4ae634c2215d1699dea1ddc1c2ab01cb6c1780dbf8f992ddade506db5aa506fce1175e7a35177f049840ea2631eac159307f6310f148b79f071b00f1f3fa06c0e48f6b1078a79d8839fdadcecbe8fec63ef1333bb1c480c87c5b8c6c17202a65bbd5921754ee8f8d319dd7e8caac39a506ff08bb298b75f53773e9bcba1dd03b47685aee15c14d7eee3829d47d8ef016074f26d0ee7a672aeb7db83fbae272fe9da7af328dffeeb3378cb6baacdeb83ac4dbffee2a910b46bfbac0fea98343bb83925afd716d59def4f3b54c390e4aedd1cd65ba49acdd5caafd77478b0cd5d7494418b1c7d1ff4ddb54c10c5c7d9da594e745aabba0ecf05b787cdf5e6a72d7aaa93d6a4347aaad35d7fc507b76eed7a692017ef77d11b0b771db0a683343af8a3135ddf0e61fd65b1eab358fae6b058b5b22a6d7c2bd6ff6b47b1dfcb897c20d6303f697dd2b1f7330e09954163460c9b9b1a377b46d6d833f2e6e6c9bfe13f5648ee73f3b51b1b1f547b1b019a90a8544db695350b95aa9101000063150020281006060322d178380d4210a67e148009749a46724e1a0e834110c3300a621800100000010010001001842908517210001e7060ca8f234793e1e5884db2cb01a15b8871cc878736a820f7a1bc7aab9787a6cff8ac531887f0237aa1427cf6cc3fcefe0efdb3790d4c0719d26e6e5c31b191b72f2aac808de794e60dce17000339f2ce58a61bbb75e3d705c89c2844378afc81ca8c337e8fb01621b88eaa549f3b35bff60b1666aac12d2daa1490f7a12f92b89660689ad158e578ee041c9f0d26343afdbc96b2fa8f54753e2057066cd83a79d02ae5cccdb9a787ab7c5fe2e1309148d1be2ee317d8f6f9ae1ff082fe00ec5fa6ae886ac36002b79838ba64ec1814587f42713c128d0e05bb58107ff06a9770aa65720b541c69c00f5f2e300c133aa181bc466d0eac7e98db478e62a9657710cfa2cfdb4bcb4d436dcba521cb3d0d69149a567d7f4e5db6102f349213f8e2ce4981334c34157dbe929fd6e46c31d5f87ff2d0ad352953ddc4d5081d99d57f5c5ea395dbd85740a3805fbe0fbedc6ebaaba626c72536333975827543ec81e84641a185c253c6e812a0de06b656abe7e7405c3ee107d9dfd18fc528ce33ce19ba1526c37d8c0f343f80026f426622c7536e08d6ca501bddd46f05110b5bba184da04eee3c5c17050b69eb7e9aa9827d2ec8e4c63124b4f61b0eb1912cbfb3870a60c2ce70f3a1bb021734f8b8e980bbb1d2c9d818216ed378b942c1fbc672140b7d097107fc0a8d47e042dc3e8a0ef4715d19d2cd934ecb5f602ed32ee3cbcab08cfafba01b737369803849902197d4e33d14932c8ae0d8cf7e7a0c66adf10c77f2f5f4d2392fc9203dce45fd8f7baea2e98a73ac53c568ce16689aa6c622cf8c9479d5cb12394a46b40845c9ad65b5fc009c402267b0643190f01f59cec6aa12b9890dbbe4258f6123b744087e197a49284d9012bcb49debf9e3f25599c20a8e039150edb2f83fa0f3a58f1ee20fcc924063c9d5f2e528c18810849b1c9210fbe37d1b626040ea56a351772b291cee0ecac2dcff9b35b87450120334a801a87fa182d9c9e97d1a185160bc75351e9272b8bf03962b84177537c3efc2bcfab3a7be7a86e6efb0bdbad59cc54b9bf56866c11e719f588a7a4864373ad26435284fd4ebfee0242536e08881de7104e8621b0e28243ef0882d934b071a9c31e31b4095ecf7fc1d2dc1c817d090aa53d97fd2963c3027f3a6b5afd105309f2bbd92a094cffca10a0a9add1093868dfb9183cf2798cb3814bb2ad5baaf109c96154115465a888adcc143eb816c76ca0a14e373028f6aba6ee0bc0374e4e27bb4b7d71e3430ed62b03d27b43ca648fe73ff97dfee491442bffd40a073483282df81810fd22f99b13968ef706dd534aa7b1ef1ff4040b3565d6900e555c7123d28172c1d40f01058cf6fc6f972268904d3cc9c168689b737fccdc037db4813f5b109a2effb6c8a803bc210ce9aabaaf74cafd01f9b63201d20d007b0260b140cc00ef403081f2c21b5fa0e1c76f5d22b6bd5a5c003e18fedcfe728cb0113c7166b55c82da5ab4004361750ee870882ec77df6f9e874080d9e199168c560f75c66b6af9ec286107465e87e14214910a7a126d404629201d9ae0dbd167e030f06611cade9692edfd80ba201b407179bc8b9f64a0b93cc8ce13e54a72b2937f9124db4d1e4ccf9416da4c29fdbe5875d875367b8bea7f8a0c48bcc72b990b5c1ae86439bb9cb166df44ecf27548fbe98c2376c55ee0c69b42d8b956f5da6da6404acecba2e39168d8a9f0887595cc8ce47394c66582fcd516db2ec0a6da510afbd3e575c671b00f75f3b6dc82527623db658778ec0f489305f201934ab397322b03f03bba321cc09041785658b6f4707a55e83515535d41ab38687bc0842f1aa6be20615dbe6fd9914dcdaf0dc6e62b8249537bd30dca07c0afa30dfbce058ca051656c6fe878599ea844a395149b26fb442381e98f375e9cd7a4239e865c2fe3a9c13131cbc51f7505884e716ff2a055c5c00032087459d4aeaf45cef987e3a8c90057ee5b9e03b22735405324ff3112554596357fbbe1283f45a157719941b140b0e7e1bcfa8c42a8a660dc679ab75f6d58ffaec81103d64228a6f71bd0536e1d47cc063c42c883988e125af7efcedfbcb951dc22623fcd09ffc22ebf4eebf546daf489af873d189b9bb61688eae84bf545fd08f93f883e3b7d2820ef46e294e123a8be355ad6590a714d12b56c89d8fb73379c4cfe980f756003b028108d604984ad5a996116d01313fba007929a199ddcf55a645aea0e6852ef7e3abbe0699cdb758de3dacb29fc8dce559781f4d55336023c4695f621e3d2079b177ffda73a14f3f2ec2639e770afa3df08eaa0e25d85a6e0a562b0bbb194b05e76c9763ee368a844d1ae0b9afeee2b095df9ec19c8a5888369d9f592e6c3362048a57d4dc0531b6bdf7533e132701095b361417a23053db9c6266ceb3b82ba7fb5223f121f756b89e7392d0963da0b4e0f804f098d99bd1fb1504c786926508738d4237f2474e41f78c9e97ed06650093767ddb6d8b0ebc97bfa55e405b98b0a9ae0e605345bea3a5e0df083c4421d371316e240251c1e38cb7e137fb9012de912981bede9253ce7dd15bcd616350b9c9e60414371cc544a9321344852323930f1f6afed2995e520396e5af125b0d5958815299c284b33c7aa25de051361b1c40e0f76efe7a428742a2b38bcdfdd3c628b6aec71b863a0229a4e9b64b6a38221a814dd1c86994645b7710f85fd4932872c3fc939c35939e8ffa9eace901a36ae0565df0a8d345db2495e192808b33e5443f54524fcb38ab74cc4057c7fa5056fc11adccbfe6ee105764ab39fbd6deb94beb163ed01869cad2225e915c580cb6087bda4626906a107f8e27c955956a0b0fd8a0a36a6e3e113a3a5cce8cc65a44dfa0e912c14dd9b653f199cc9ab117bdac93bb6354c0c34e43b9220720b8330dbe110d9a4660ef80c5596a32538f83a969376fc81c042c53e5f5c51db07949f1dd9047953e0d96b568d557a630990e8e433ec25a4d09f933ef1f7a3572254ef168cc5caa4b053285b703eb717fcf85ced988866dc3ed1e0c477981604cfcb2a020c94f8df3b403e452fc750de0b2bf111edafaf0576f76286c014ce0be3d966f49c549960fb598edffb9d166d64acecb16efb364512ef1cf4363aeaa52bf8c83f251998f346126e4fc3b1ee456f0adc7e42e33250c40673aadcb4c743f2b8d2edc449f972d8aa86fcc3ed807d0732a55e50961b4af2c0287fe5c01ddffddc7709305f97559d58f2a7060166de53452064bb3279dd30dc4df83408784fccbdf6095b934d30755e2519d1feb93b659a2a04dfcfd965dcc40c3bc0743730345e5bdb9db425fe174280d530af7dd07f7dd91c005396c0b43cb2669b7ea9ea85cc4b0facbdceaccb00046e8986f706558f9ff9dcd3ff28a1d04aa4931850d501e0c811511f9f52f778b20c677361df131b04beec49d64433bbda342b9fbbc55eb61e5439c8567728964a5ad1fe18bda0e5a96795886dc4cab636adf232085705389ec05eb2f06f27078d96b5083d5fc061a9ae2f277dc0cb7b80ba5ec88880ad4f5ccf7f139a00a3791ad7af5b334614d45bb11d90c7f79482744d7f671b0809a35cc1819264c5990e59ec7f8e63e8695f52677cde66a9d031fc9733184611b62c63afd1f6ff248cecdc593256cf566fbec08cb8b390fef37b1fa742646b6ff32ea9d2372ea2ab9f10c560f4632775929262d016d894c081c869874df861c90a71f302880e1eb4f56970ebc99b9387b8ce2681f19fb49d1c368bf80357e0d39cfb0679566f77d0903e2e05aa8f21d46ebf4a1b0417fb7c6bcf5302ff1f13a7eb8a73a32325153a07bec5974222afb9a3d8c3a486da393e55364105fb256420ac7a23fce9ee9edaf78eac8dad2f601611ff4e1bbc840651bdb4df02a5cc28152ef48650005df7a438d31819981f7d94c9e3e330b0e59423618444bcb95350310802ac65a9c72af5a6b08ecd7228eacfa78b50cf7317ed868f56983b13042649b634542c131c01155584c62d86aae480def9f7104086c968ace04456494cf00bf0f4c4d85bf36efa23352f9720fa5d74ad7a73de56b6ae44d1b9a8fd59541eec1b23ee456db8c6cb5d8d4ae00537122388a4a9f502e0de28ec569fa32725c7077a19d6d65cb8cd768cb8976b9964286b0284794c63ae631bda2206287fdbc48d0f1657893df6ad21878c741314a09580a5cf558be15765df011ab0abc3b97a1df80235e80566bfab163c10f7548aa6f45725a43d29190f95562bc4518857c37ab0c61ed543bd541aee2c559ca7ab984a6cd4501250b166c041e801b3388ee5f76dfbff32876f635dc968b0fb0424666b453df63ea18d7aec17077886720abc2827f95b0e03a956391ff24c7179afd2d154df6fb9a6fd323a8a63977ed131817a2ae78f8074826ffb210469b0e0d28de338c15e57e446170f84fa24154c7d87a1e159ff2b3d22f1a903ca5be76adb983e2c945f3426d2176545d5afcea9e6576be437ed6e0d4b41419d42000fc21595dc124a805d0ea1229fad7dbb4ab00ab6c2f8cb007b3d12e57464e8413c293074cdccbcba1f710a9a1ee68e8483825f13e23083bc01c4e1eb46b40ebae5becb2d7c5d534562578d68259e1a62c8e53054ff3d670ee22964eab6aa7848bbea21e8c21b3ace85431b1c6047669ab40056b7453e14511c68627814d00c56d10d543e0862a06d4ba31bc10d4ae888b809aa4c84ba230392477a17035bfdd5fa4e8721c1d55daddba333c454db19226b3eb8a52ea5bef476a2922701f7170cfa8a95adb9a30ad2678e0ece49c2c21dc40af220ea7c3cb6970742778229db0efbe9510955aee0fcb88bdeaf9ecb4ecf401179179d060049d0019d86662420a1997ed49da7e2c5da17bfa02b1de52d5163f2aeaa250bd3116145d610e807bb8647a908f259ba7452859a780d683e3298b1c0c80347434317391df63bdd37dc51a69cf89788eb927ce9887f3c26c9283fb49682f9a046b5f7a87b1b3767478431a62ed33a04f2f7abf79892c4232ce5a0803d907168f5778c8cdbbffc1a86bb5f350a761d20cefa9ac78057e3dad80f301b8c9f5f1f86f5bf998cff09900004aafcb766e1ab7a8a0cf71523613e0e928f041ac04533fce7205f3d283c8bd1e3ab936d0836af18c0ead5f340f0561657867e26edcf5ecbd0339a905efacc4b35326e0939efb320574a8269174876d045547dac11cf23877046d2bdf7ec3dc014819fdac996dcd68a60c894035b2bff220c053511ed741dd5eb4c5b134267a15f5ca239f907c2b26a688213145bef922774eb3d6e82baa907f34bd6ffb4f4542d65ad622ae99af3eea433c0063bae3297087eb5587808bdeaef19f6ac024e2430d3b453233a4d05d9a74adc95ddcda7ab660f276bc36d924ff47f8fb6fd9246cba9361d2070755c28020b6a52b9ec5681d247b6a14622e88ba1be5ccb3d4025d51ea847e65d5cd90a79bc9b9b6ea1b23090f6ec84c24218e8cf5b8095a270ba67fbcba4fb2871ce1fb075c7db19d2918b9386319550d8fe45a3ce5707e8fd305b09c998f8c568719d66c0f4019147496c6dc32a8cdec4902078c7d13feb4823fa5c907f660e016f7df179fbccfc487e8907c6347e1a22dfd3aa930f335490e1e286bad4dfd257db854bc071576e3ae5bedc1a8ad995ee5fbe25d4c9e05c877e8e0c0d00d05745db08003c4e3fe9e419982130c0520060e9f5e4f4689e246a6df7a10e30c01d3ae7fc270d91c7f344afdbc40ba34302cb59ad33aec6d0ae2c8d8bdaa3244aa024bfb765293a9e1f7fab75e29c452b1eba2803ad9d5dd862ea5c50c52f6457321201c6dc323f74c4ee4750407dba2a24bf4c9f6dfbda3dd4a24b93df61118e5434056626415fd7055ac1c71903db1b2b08c66be1b22baf3b2f9b065d6a2ec45a53931c3c782c7eefcc61ecf93abfa51668f061bbf0f8ef096d1807c9080812b2daa9f680b34343c898ee635008cff4bf5e80a852c58b84dd5b4b6b0130b67739f12707a636be68923b4499876b1b662a35c00b05ac20f5dc5b16673c9b885f9c27231fb35e3e54dcdf996e864d820ed9197433a96c99c36430e017fa256137154b83831324c50d7720ce34e4fed618cd1a30609b8c8bc3ae4c9bb70e103dbd44cc03dbd641b343ba9f75992b0565b60e48a7753fe6bce30830b840f971327ca2ed53cd253fedea2fbcd95a5186b70f49da943d73fa0ca91f02b2e3b9f99387fc6baf7dc7fd46359624aebe6e97261036c2d43342b252ba042ebaec9292ab4bdfadd04e1f877ff2d021018e9fc376be3eeb5a17c88194e2d7aedae7e12121537b017e446360a2447aab3d44454f273c70206c89ab62f692918b196e40748d2dc61015375810692a7e25126396f05c16cfc3fcfb1870a2fb7668cbe4523b7a78652d8d19b45504784b7c060435dca378e692c110b6ad95ba35388df9b967279d32e3e56d48a66c8e8cee05514e6033027781da317c3a698d7b0b5dcea80334a232f342472c95a6685cff919133157a79a49c0a37c2f739bb8ce0992d7706c7e4c23be3ef70de563ca59f16c351c9a2e783c36f15fde2e1153574c3cd7ed3d233e69bfafbddbc0d77bb3a4357c82fa47715be43aff65588f4a015e2c4aa4178e79d08c0fb965777a8328993c2edf64dd0518dde233e8fbaf26e975c632e64c1090f32df4d46506e2360431beecb6fe41f282ce36a2be3549f11f38cfdef6cb79bbd8c17b5061c81fd47d69bb4795299df07cd97ad9bb263aede136386b1d9468f56e8a9fcce793a49fc33ebf84cac2513a690d07c5710d99bf2dc3c74aa1da1b9275aae89b4d72f2a736d5f0bad014ea2178b5256fbc716c4850b85326a5433b6908f41a762043fcd9743e6ca0e0002442a66d5df5470e8a8a36b26bc41b85ea6381ea37289dcf031d90911f679fa5e48c5c846337b87df389d1703ca0dfde116faf6d924b66e9138195f4a8b1df2acae6ef4fbfb47766edde5d924b872aa4ebc3888271142798fc138fa5d0143d9756ec444cd59c0578f69729786c80a362fa8c546e6f5a166b7118f254715cc264ddee5cde90d8985ebcee0020d21ac463cb12d65abb47955e45edee576207ea3b81dc4d801c01266d1ed24c391f36d07e5fd963910eeda9f4b3751439182cd6f54d3271d91a9375d1daacea59784553d675d0d0c53197bcae898b4b357bc287e1f3f83a5f6d2132d6ee5edd35c8f8871bc5521ae8d8b48777059257d48d604dbb9ba6a72f3ee5a9ce43fcf86c2bf2187b4a55cd2592d8cddd4c9b90d5a379b130c3509bed148e46b4aa220099c58a29ce67737b129e2f2deed7172ba9ad6927f87be1e293c9de6923415cff7d999d5345924e3d2a46b37e3f7e2a20342f4a675c2d1bdc842d30dc6f6dcdea6edec89a0497479ed5de13b3d59a149a00d2a4f365cc777f938dc96b80de399090c15c1ec0c39ec515622f04b4df70752c49907da47b3a1f0ab905849401a5e1fa96d8cdecad5c4292f153054816721b2eb18c492842b23f75e45de50534da8076c898eb9c34d6df7a7c6946b8e504fe3731416a3bd2b5bfea186a44446a5c30f0e0a556c28e4f060a88fa418db14bd1b938544e89369186a0943f47d4a325e266e135e4a978589316facf74f6cce93533b40704b5814a62e86b125d300cd81e24b1530e8edeb80c9faf4f711b694a1b1d3fddd06ebc7cedfd231ea671f7af2a9634498cf23be9abf57a6eef63dc405d52b2f6587eb1d59d1430d3e8c0be2d4da9768e969fe57cfd5b3775b31c3e2d3ee15509656fd9bba5d294200e817745614ad409e4fc995b677ff12cffd7e8fd64dd4ef78a8c192d09f7a035cbca4f21a67d0815b3f1d0c6a6148f404933ba7faed74f2ffda3f1d5f7effa08029897eef089587b6d680d18cd6aeb7f9690f8d6811917a4461ce7e304646d6975f77e31aac44bdfeee8b799dcafaa6e4f2d6b8394a27e082fb7ad434b0ec13c7b7f75ed781c195bb1eeab43e40931adbd19172aa5b631029494ff39dff97cabb8e4cc87c2c3d7d0fe550323f8064841659021c2c4271089e999877a2a2c222341cd08c0fcdc0ed8127e5adaba020ced669007216551f35d99c990294375756c6cde39edee66cb7cbcb2a48b3a36e483652b9e0718c587fbdace0caf1010d5c310faf47c19dbc55f1581a09ff17cc8145b480d381490f215442ea2e62d161e2460909daba79f045514ff1185751eb08485b78ef1233a00a870225bf3a5071dc54b6561b4a979d527ba74f27751730fe3e33e24267fb7dbe7cc00ee2903ef9c03dbbfd62e334b312ed70bb37fa148e8c3761dc515711a4a09ba437be4695a244002dfe4b9522cad5ffc080523d13ae1aec647d2cab7f778a1276fd0b274de63c82f51b80786f93091023b7aac56890902c15adf34b9a7774f945b3cc846a4e188f9eb88f28740bdcd2d339d52ea024474ad536763c32e3caa826203c781edfeeeda708dfdc98480855b38975500b294a421d2c3782a73023461c4a0a32ae0389b2e483b658e911190b4ce41c583c5dc0359e03c36971412c6684bbc7d803487a8f4af35d2cf1c68617e8f714cf9a2a60e4c9ecd1f61f36e2c406abb5a27ea2bd714d746b0977d73c9a9d83e7b0fb60b287870765ff941749eafc9d77e3e2250e07a1139f4adfc23ffe3de06fe0cb9706e880be64de4d6b1e701325cf82c0086979b0410cb87b01e067fe6e77e90148081d700172714830036b18ca49ea65fa4b3e1da8434706dccc32095e30b3c99a77bb1129c8ae85a9775571ad03cbbf1cf51ee6498d2b2441e8aec443051864e4d0f1fc0ecefc9bb3b6d20595c8bffeded20a70f2c7df87e5a619c1600769b4f2a3fb7e46c546c6a0ecef22ff8513e0e745c2322ec61b61176d2c03e53cd1565fccfb547095b3dbb779d1e701468806c34b763aeb52c661abdc26711f293b4f6083e8d61278c326be5a9c0350b08cc3c1c7654411d28305b3c4aa62e8a7a80fda9eee50cd467e5f5f19aa0becc24148c1fcdba456ee52fdd6b83320d89e33b42b0df65af9a8ada75aca80338a258ea10aa157bfcb0188c01bedaebbf1021ecfeb7909e7a913933912c275c2a0d33779db0bae25096a57d15ffe2e75294d1d4c39de013dfc8dd471256dce898929c0abe3cd91c86dbf0e5629ce84c88b1b1d3d12c78381a1c657188b7139d3d3e14cb90e980b6c44f38afae88546f1b5aa9b0bc699bf4b77bb9418effd69ff3c31ccf3dc20fb2098f5b8a1151d968e281f7c410e90523980649888bcce8bf0c6d62caa780eeadf9416b21d15da473d02356c4d083e6c00b7fdee13d2fb92508ecfae8029fa352bb80e609ccf2464f1cbf8389676a81c4489d3244f038e2f4056a2fb3691969d9802623e5134ddea92a567420aea4f2a22ca70fadad56b945aa4226bdd15b75e58885caaffeb5f7dadd217351a2c00fe89a08bdcf42a81b79295209cf73f8df43ba55dd809521d013c7e2958f13970c4c17e0dbd372a395a399a02b28c29cd5c38fafc4ab65be1f7c599ab1fbb373a2d316b74448c6274fc80b61c98b4ba34ca98c5ec88685f048b074f38278c1a6cd0f186b28a3f6190fb73738d0c74b7e368453a553cbc7c97b6eb08573ff28bfd8ed65a677e4e42f78896445d8cc7b5263e03ab08de252b287153b1c546cdd3c04897b7f60f246b1e9cacd82c8ecd4c56ed084740b2933e9efa3c194fb145b6b646e498a97ac9e2e9f82080c3692086bb3884005d19f19611674bef0977eeb09dcc29416a4319518693fb15b653e9b872787e41b308e0d93f3cb4f04c7b86e5fd4fddb1f919c1b18e7fb4d829af13e300f085c9c140c1d6aa2e441f6df00eb890a872590167f86e1b5aa1dc8da60141d8eab6e1f9818f4c92c5c81630686109896d2bba905eab04f2fd82413471273a72c3bf0b05c902e80a1d47bd62d328e77d142bdf15d83831bbe87f7ba96fa85a3b28126552490c4c7eb23c7b34f8f3c2d473c3a27ed28fb9f519732e9e456b0d661cb559b60e9c029ba68a7572c9894aa6e377d1c81dde4e5f8bc181c359bc1b67c15884b98b46fc881e6fe4156324c1b48a487ebafacd26a8b5131f15ab68646b7fff35dcb9fe6d7e766394e437a5443549a53b06826bc806277548113eb086d2e94c3467b9afb66c907850740916d8888b41bb21f9484f6b5c7d42828446d7f524f292fb26f914f3ac5904dfd3f736abbdd4b3fbc743647501593b8c4aeefa433fe51c681cc15fda62aac5a6ed53cebc71dfa5a861573d750c52a4325d14aafd03dafc209f823c72764707cd85acb8f8c56f5a154e24d8e5d01c0d6fd70d6d84180bfd273c0e859939e80b8f235f864bb46f6b4f5f4d705c86a6c933487a5c3becb8c9883c5b29cad156b176a4c49deba834836960c022d95ec055252350945d185cadeadf6ab5c315c380f4531f5d4ef6ba62001d0e6417c280ba5831b43394cff1d1d651400076743df608e89f096e31d4af6931e16ad35e451b5ac0870990f79c678ed0af682aa1a884276357d68c2b2628c5c5c0228fff6ab1d421787603a7cb3b6dc3bec17b51ce9531a37c7bc1d207804e35bdbbdb2e9d9073c41a3fa210678629047c0273093c84930f64bf9edb3644e910dc1b29e11b64b0edea28a6243ccf2019025835ef958c10c2a246b2f433812185ab9d30452c613941b8c6c0a371a8cf2fc1f6fa3afb88a898ac931189a840ea2df45cac378d62c9b0cc588803446f7171c93c174e1755963d3e44e39647be5f7bbf3b9ce421c6b28ba4a434f216cfe08b4673649ed09c607909c0e14f209d453a8c125b3de4f723aef0347b27741d78300f9b198aaa234d82c1c9c445a4c03c4a571761ad963ea080c1681e46086a2f55b8059c6ed96e791d9da67b77f9909c018683a993379948f39e7cb446866382f232cb65c91f73e7a1ac2c4da63a1dbf89b7a23b96381ee9253becac6a33afbcfd253c2103e2f87bc8fd4db7a8f72192b6e9c3b026bede141d00b80335cdb61cd5152b4b07ab24d68ff218648aed0a58852616d3d351c421337d35412be2418df8ed0c764a39d26c02f709fb6214b275f206d46c3d153260b13e6c9aef6068c7a1a27e6edeb83225bee5b1f9dcc462e17bbbfeb3e70712ffe2eb0b840581f617316452c8ae3f68eaa5bdac0d55f8abf789d83ced6281f04d42a7fda5f5e46801c3ad5318d0a276191d1e6be03f9ec9785a8d0b770f34923d4546bc51b3353988dfc3209f5d602cb8cf0156d0d24bd09c5014556fe8d74fe3c16d1b77c1b9bd8be2d1f6be388401f455fc01438e470e56a89ae6deec7f036524d74ca7f39e329281fa45f5b9bbb49172895c2a5d0839ada8d33a64c97996a63f3b60c8b19625dce81a613bad724a197fccf49af99ce963f79248c153c17b012199994a9b84ad6be6dd337caefa7993635e7113b953742aa3200a8cc7c6b78b8e8eb094bb62bd476cbd1237e4ad08e49cbafd6f2534bd4335f2043d651144710823d97295bdbe8d2fa04750c4a8826f2089437462f2313b34ca7c04b549a6a68030df1f68dc6f48c37817e0b5a772a1bdb9610478d96207dcac1f0ad826bdc903240fd550d770b03409e537b012c503d3d4cf38f7335c2d5f0519cd2df298599259f6b2ec04e2405eee1c5f992a8fe1ef237da856aa50c91979a6eb7b7729b406073496456037af5c4925e1635cce5cb0e228aa1ac85ba8b8dc058c38773ca23f88e61d3a8e71497c36ee8e40517047bbd8d6b3cea5ba5600f6617a342b542e8372e748366e2645cd250efaf1749144370043347929939db5c14e6526f2929799deb893acbcdf8116fbf940797d6bf2822fd516823dca62a2130b136fa8c140f067a5e4619962286a0331332aa304be5120e0a663bbdcc27b1681171f9772c7a22158e65a42cb21f9439abd2e0ef1c636b8bf45ce467e18ca260db2c9f6626116c7ab4b169d9fc6b27d70dc62c31eda6ddcc200e6af63620c3180f092d808108f0b127036d5ce43c608770996e8229425db9206a235eee85b3971e6f89520c7f2a2b2d211de25131090ed8af5d0d12f8dd6b37713af119cbde6a3693367071b534a05b776c677c5f591df38c9ebcdbbc640c5edcfbeccece7c62d0f983f9ae7a6365b4acc3fbea6bfd4006288e4821b9e06823f4642b955314d3e07f5f7df9ac0afeb95fb44efd621a74234aad99398738ec0b9b6d07dbf98bd2d264b43c91c824914361faa51e41266e6f4855c8e8bff63730693a396b624592c0e8828375af3445eac7475e87223585967ffd2f5eccff425f9b5c287cc0d7a6b20a849856eeeef1b211c948568397665bf42589a0699ea039a92c5aac9b6a33171ca8e38cb517e08a8d8252a4586d04bbaef5c96e525654f89e40135837cbcb8ea9c8511fd3aadaed392c6f0808706739cac8377a525ead2decd5e937558c82b30bbd25e802d743f3ceca5a34493750842611d31ed9f09b686d764891d5ff6c0d908f3c69b69514be1c8caa016bc81ab61a7e192b32c614a1c2ac079d1bc6f44909bfe6ac641c357fcbedc58da994ab5bdb8ca2545e4978fcb308cabd3562fdd4b2c0970d9184c17760fc1c1d09c74543a45221e1151bd28400f238e67b680efc078641509c472b0dcb229b9d578df6f11a95f94913725a1060f75c1d6c47fba2723dd033f7d80280900c07465d959678b601c2d82732205130d5f322feab01613a8f17bb418d3f4910797b7b1c11fb1d1413bf0af3a04616888455eb71db0d5d50faa2ae7e56eff9e23499bb7658b40ba973acda776315dd5813178ae35f0547c6ad5aa2936ceac2cce017043601d8eae99d52da7eac0823f2cb9098ed0d592f1d3c2db504be70ed17671ec483694c55dd6f8dcb50597ea74cf8a8f101eaf88f676f75afa0ea7f71887770df1788b446fbddbe09bd9a9d4e7d7e46ebe115f19bd9f4c17b15924472bcd1e8ba016a12b3e2a9ffc63e51a188381d4ada91f2890230ec37b07adb178392c3a22816d0171028b835fb52fa35164e383fab2806671fdb5269b6991a58dad99828c88966a2bccc65be6347b9773195f81a33064581afd1a7336464b23e4920349ba89155186c4030a74aaf5cd912a5eb6499d404a7647f73da0b5540876fae8a4fda4764c08de98430eebee85ba1df7387983eb1dd89edc98987b40b1233a4c0db32b20655e48a8b865a5072023a874d6f630d816a0d24796d926cbd2c81df28d76591f58b74e91fbd413bbf5356ad88fdeb8bdaa90e6f49a1e1431b8d6d35cc79a1d68af1032b1239379a40e4cec13e6d27238137472e4f8235d6a3257960d16d7fe4da35ee9adbd75426d1cd604fcd06075520e6a628da360a9918e55c742cda98b3e4226772dc8f7353bef44bca4f8fb735978f3b1a572ae877bf8a65a229d419c5ad20969a2a9f1e51b05c0ecb9b514326b8f38f075f02c2e7ddef582c1a1649f5c93d8cefa0c5c0b2c188da13908872eb1989ed1e193d680d250d5eff19a95e500628deaf5a4fca17932888114e9fc6796d3b351412a0bdc504f01ccb40a20af92c2168f77e224c5a188719393c3c8212b8e29ce7910cd3177d87a07cd40048ad47373bc2c435703306042ceb3a0636e896a868e79d30b81ff8511bca0c2cc4402008043a4b2761d0b392af12c143628dd07a2cc8ded8cae14cafe49e0d16fa9ba008011bb484654b1d8b6b9e5d1f20197b8faded5528c9fed8f565794b73d070c1a643c2893f2c7355f0f7a20dc650f7b97c55a3db03fe9e7ea300457b59c4e027ad8f4dc6b1e39569250715dea286d002cd0dd97d01d765a6233993ad6655f0b5bd1f1417f228e2bb4a283510ee0e541f0c900b5ed5263377abdc1ead1f74602ebdda58a870249c4725d96353bb2058dc01e0101af349ca27b3b9a0c1445a3505ef16e4bb242ec0e72cfd3a3b6b53116105b1896a1c3c7b94c403c45cb15e0702551c4f6bf9dcb39ad71387ab8c2886285647880bed5a44f8d1ac0ec0a37facfcf34c165bc2d933ebe377a84c89a421392d4c34c4f689b8fede04aa67c4f3fa87cb57ec12527f6b4021e7b989595152b224d61cf5b97e20b7ac692ec7ef4c7b63900a0ebd8e4c87a51918546753acf550be3b68b868e4760a84fa92e044c24d15f63cc4b192be3d1d62d7f35a8b561ff4db86b20bcf01d56a728d0a6260a201095fa6845afe759f60ba2328c68cf72d73cfb5208eb5edbb77a94ae8892a804828717e72c5c8c6d8f1bbcc018ac58cf3519205fde165c3d54b54d1a30ea41cacb7ea243f07bf14e274a9cc1c4902d020ca6347e07a82c7a9184a567f46ae51f54868a644e3355c99ddbe89867e53649020d4930fd7189359ee02f07d9c73a02c6f851759023068e4c341238de910625a3cb6a25f7f72db7afe3cfb8b7151d0e0388a76642716ee22e14b32229bc2303a9f1b75b702f5ba4d704f481caa245b58ded2491d4df7c81424c0cba42ff7d64575e3644a9dcd5da3edd9baf90bd16b13c387fc19841d3d150d79ebd08cd3a43a081a272d41bb2bdd586ebda907d85e6b529b5515093d27fd038eee8a4218bf940facc4722b909e4aedde27c8ce689aec395610fbe1d98800bd1c2f02945e19be1f6bd4ac16eb3e8c3c6bc3468f9332a65f36cc3e11f9cf1047fa6f2eba211397c8d9a92c6375641a9efa6c0591f4e0dd00f1e63422c671c1b6380022ef421ac6b3a90ae3ec06f4ca0ebce88d769a86e9929330e555960ab58a9d8585de41b77babadf9a879d853e86b5058c7519adc59f3ac8d416bab44ebeb5b85a962cd675ec19df96c895de8819be6231cd3350f32695cf97325aad4e75d2ed34a7fac81ad7d7d370f30c11a205ddceb0ff38f44a06138812c31de96fffc7a5de22c6048986ad9a3f9da4de0c843e96561be32af1a856a5f4391dc56e60f89e650ab25ea9123a69158d7206b6dfbcace640e7c416908a1dc8c10e18c6281ee0bd5d711d6bd783cbade3375266718b76e217acf8d731484c15ff35dfed800710b28cb4ffdcc087d0b92086f3ba2f1d88494750b1944eed946e6f7caa1323c235cf31a5c352de71d057ad40605f634c39476885f0980e17a9eab13a4c3dc6f5e065cc660be854b2d5eae4612a7fdeeced53bb170a7c4eb28ccb82c3e0897a9f3838e2538792f924cfaee444d5a67d52b7bc43e2e6a17dda4fc2a0d458942811bef34fc86688091fb2265304d59ee469cc5f691932ebffb7804553835d8b4c0842b615d4b47d81ae428b2fb07dad5bf4bd772a4fb726272af9a008fd981c6a19c83d0c5fb11a6e652893bb9b1cd14211616e79d2fc074453a340d0aa5d3b9abde37e95811a3c53d85260573266a69306d8b8dc050a82426380b721b81d93605149085c93871c65fe7cd2cf9dc58787bf1b673c3749473d4f75036a42c115f015c19436d894df4b90e600613a485ca7d6175e75899ff9411b7216105010874b021abf08f4fc79036bce490447dd39dddd696e8362853a7c63c801f082c82191397c26189353b411420b71fbafc5aeac950633d157b772adb8b2030d37928f921f02b405496918098888d574418d934a22e4cf3d5be303a6f80c2ab59f229a6b9a2f592640c93a7f18e316a8dc2a8731662a463563c1a7aa0dd5b817dec50b9e2430154c47bd539d73973f86d664505cf20dae4888a0e90e2af4477e0c4081760706382eb877d782e11e712b89bd7d98500069e8889476d542a2031df491c4d05052e2c62d0ceff9b22835bf4d2fcd74abf4451387f51ec787adf91f51cd92ed3658d9c3d6d180d270c7708db3f0dd2e1746569cc264b4ab4ac76fb612927e023cb0ca1a40f6505f3ee02b3860e59ebc54304b80c13e2f94d11d5377d7a1aa35ef2b5aa806a327a77847d8c6a0a2147e5174949480bdca4aec7c7d9bc95e1fb329ba448d6f26be721469993393e54c40d189b5935d7d1590b07ea686fcda3f41ca172719d6a036465b19216c6970e193888ca7c948fb490b2dc6f84f1e2b042a13a92ee0dab266494dd6491eeda79b73426262e8e9e7eff2128f855cb9b1423c92a2771be5bfd4c6682ed22cf00599ed9526d9c5c1a46a02212909c0bba436c0010fd96e3444014bca8afee3abbf9a8f877a420453fb5527d04dbabe6916a3e6bda01c648a61627e5e64f02d6df667bb55d0ce4dc5fea650fbced509e3592ada6134836542b569470133fad022b3e1e1a5ae36fe9acf203d76128924017989371a3b5282b4804f8acb1fac8881c9f53df0782450ee7f0161565900ef0c3b6c3b3038721afbee6091a7cc820189e77ae76658777ed6e6741e9ff350151f8cf36c9b8a9fd61b3de884ff5c72d10b0a3cba0edb6ca0d6890a9ea83b4e7662408ea6c986d84caf0938a253ff62eaacbbe6bb6b44738b268f8b15f559114ae460ec5e3c6fbfa76d3fa891e337c7d6c232f8eabd34b88486ce997cd842d74664de309b78420ed3b4623c1ca0ac28f3f8ac832b4fc9c08c6dbb9e2d50d8b102cd7ae24c64a44f1a4bb7f3fa3c59bad44ca8ab2fa497a645d9b9fb939d0e0187239cb211be1220f10b675ea8063af5001bfd33a460b018b63c23c93608034e11705ac2b56029418e8c20012360f825d718aa18f455e7aa3d2731fb25d2305db76bf131f9c4d494e4b00dabe32eec85e6d828ec8b6352c90a267829d4f6ea8ae09b02d639d63130c6d3d4b04b1a9a3efaaefdae842e14aeb01897af1c73bee0320e2fa0a36501078b21c13b3c5d4ba7856d9891505133247694d2e8617c4e8b2c38676b85c10172aea8ed3c58d333bce71c01ab358fceaadb515c1c540daad62eb05376b0db2c7d020715c945ae02f7a7fc9f8a70e5d2f18e5d118a29b603a637990e4a9dd94a5e8819a3230fb25292a2a68d758956be862295e4d3a3e5a8db6de52227447d944385d482a7f2a8395f0aeaefb85f7f5d400d604451a972d9138d976195e20dce6d9122613588b3bccd383bebfd509eef9fcb12db2ca0130188528c577b3f7354c8c58a5c1e35ab4b794e2746ea455a8a899dc3fc80c96b26e520cddc7b845b7b61ddc0cbc596831556703022792e640d54b668d6ca36d81ef8a5202c32fc148ecd2a376fb579c7245ae8effd66d47d98944229fa16b1ad0d9da85ee2fa2f5640950c8a1e66a0aba916c880af253b8b7d1f1b46288f4a4636ba77f91773fd22c46d544277ee68c800ac12538a30289fd0c583fff0c5299292ff1f5e540762213a582c04c8f75911c76d38d35122c99ba26105817e2e0cbd1666684d7edabe716aecc93be42b986d2caf60bb0be10fd1ac1e62f30d274d282d6469b09f9b2a4871e5ed53776c5dd9a999d3f6c1b2a9ba90f71ed1000829d3cb186c4b1bfa5cdb89965eb4650eac383f43ec27cafaa00563b1f3ff68b0e0647edd4250db31f7c04eb4e4659cc085ccaef13d4a4b3e0b078803975d893ce472a201a5312ff96577181d9e928022149d709d8b1596300055f178965c391a96157dfc2f24cd80d2a75559ebc34773fe9b77658df8645e4af0c6ca910f0cb3defcfe66c3c91ee55910fd11b4793de97505f69bc7faa42834113744345798b53499a2ccc3ae306bc45e55d8a8594833156655acbb0959171648c26e0dd6b2a74c0c3217e2b125818bd790d28eaa27f9e0647248d5f29b261d878e2ddac051c09584680e995a0ca934c947b6392e0589776094e109d70a7ea52bd3a5845cc9eaa707b6e3cbb3762b089e8d940a782d08c71b120a5169214f6e39822909aeb70d361e34765e1091f6961dc7021c14f0b8043bb9af788b60b8a7c586597e3917f6bd6dfb10eb0199b78f6f05578275fbdbcd2347b71cd0fc78a87a55a6493383da65303f02285a03ebd5fb4b325c457b95a67c0790cae508ca71f9d8375dad3dfc0ba158733a942163bd1b90104d89441b44d19d410b3dec1a184e168bb2f828806f2fac4800aacb4a847a1db56567f3866135a77a16112ce53bbe8a893081e5e41ee7fd2cb31b5b381d9fd3c6ca2d8e52ce7f61f3f4a62ea2dda7a584e6d958df4d0352ee9ec4ac8ea2c3a5743b0b133d804016815950e891766e9c65f814da51d8c6052389177327ad95b3643a57452f271b58081dda480a17353eb65bff7f071cfae9c42db1ad15cb8d7d5c0bbdc9f573d5e63fc74a6ed5bf4c24e70f678ddd444e9be1942ab81e53ad86c2188a62d3d37cd79553dc57fb3dacc1829b602d6ed0a5ff7be62cf1512fea6b02bb82e8bf3f8bfc461d0e713944606e6818b9aa50e1a4bbd856e2bb38262eaf4ca180b37b8a298e635cdb706bb8965850434bdf40ef11c008b9bfdf2b33d1df7688bb04e753876afc834a2f681fd688094b19f5542cee90cfffa1a7ba2b8084358feae65d37d34e8299cb14bfe78489f6da7a4d0d9b73e3300f4fef9edea1bb54efe3c36fabe2ec531b0dd0d5c650472a902a945027bd2912ce4459ade8471c18726a15691b739dd7c39492df270d2388822baa1784088228a499138b2f2222150d51401edd27361f11fa1b209f4991c3dae93402e36b3d623f9854f57e81e17f9cb581a8a455ce7b63cc710c37cee7cb718b2b5057f09642a25f51da288140bc6130e9c4ce8c1ba7b75f79d051116f5a172276efc3468840ecde441afd95a5cbb8d6db8de7a11f98853b710a7aa38450a002fad7061d3fd69ab8e30165c2d773f3d0831e7218dc5c9bdeffd2b002ceaabd30c648517c101155a7c044ebb1a85d2f00284a695e3809128bda847cfc2d86c67236334beef283cb4045c7444676b143a0ce41b260631ef4b02d393e44a2f2334148401f9ecfe1c1eb4a07445ca071279a76200b51424ce259b0b24422a92f14226e68afb2566ae20cf188d5d8d6468b76608a36e70ef6ce312c817eac09d0b6fa5228381cd39766c7f9a0dedb455eb26bc6e507283602eb0a451567ccea268fb48049d0f242b8cbbf72ad7661c2d719d0ce89d86f2e82bb6d41401bc1bbba25a1c31ed69ad319416f459c8ee2627c4d76e56d8343229132cdcdb8ca6c5359d2dace672e3bdedaec5d3a3ea7052a3f47aefce503faeccfb8837363b387e648282640b4d7d2affcc95ccd550144806b3ab8492d08d1b5ab7fe85a8c94aa9413e7b6a9b863165bb3ef241290c592a74d49765fcfda482475400739db3fca44073ef52807f4254669013fb9c7ba5fa4f89570c6741a5c4ab498262e48e6a18f053b01f957caba76ee1b4c059846780fa38f4e35abbe4dec0b859d983a9f0c26b37ec65c6de270e2266dc99743ea7152b12325c7bea1e47577b98b8047c200c6fcfc06f2eb9c583b1cb4bd6e9fe3342e22f44c9395163c66a0a65b60816cd0a4a6451c5681a43119b72a9c6a7444b7a75f7ed3ee72e00fe8e5f73e77d211e200ac83b8bb33097fa2f072e9de3b20c22b6c9a1ae51b8b76375f1c05d6771b8d25e3094cf95450a4ebc4e7500404906cf6939405b8559a7528e97b9bf54924dfa9e3cbfffc4249d034509da2295c3ae2046a5a4eb589695ba0f715756e0bb62a1ae5ed354bd8396127957e448d566e200574b4a91220151f800a213a4c0a338c1882810042a0b29be44e6da81e7ad3a7e6c2b9bab81dea57e243a1df381e804eefce3ed7487cf07a9a50dce6c8a8e218ff4afcd825b9c3ec5e989d149ecaa015712345ac52d00bcb449a2e32529b2e83481eda9e3e096dad3848902d38f4dfdbcee58c08f4db2bdd53e48b9c26c4d83616bf1c5393b167e46e3974b9ba6185fc3f7afa9058ef7f32d7b4a70b940c368a243f8fd46f3b4b50d97cfc031bf8f8c0890ceb20586233eebd041c8b037b903a3c72c28c325935211d9cd8c9f50f5a9f1dba3ce8464a158a5ba4fe1e99fada8437e8eea56b95283c9a9172fc2467e4cfb9cffad5b6ee5c45a925cc5a804cd462bd651773116f5bccc6706d4c3c511ddf9de2ae97aae409bed64d00508f4c16694d9fe3a3af9563003f0d748b1aae6385a685e3daf4352effbe42e17f48fec9f2b46cb753c80059b630c88caa81e4255bd29b35a7008c85dedc2fc5ca13dc1788d8560be76b78080e4d5cd06145368117373a95a09801f8ed0523d872f9fe8ea62ab804af08f90843ba6d22abb614635c3d7ec9747aa3c7383d040d45c64d8fd85b96d02ec61029b1d3618484a4e6fcebc11d36d113751591b052464179806ed7bafacfc8b85278c5e83e25145af13e94dc00d57f0a62dedfddd3e3aa884a2b3e5db8eae829cae38dec61d0c6cb9d133773d6f0e4b1beaacd15c560c6b510b53eb04a61260e0fff4171370861120146a76a08e7f24f3102b4fdcd071031bd58afa1aaa3f4fd179f835d27d23b2ea8c274a49bd2d76a43d5902a22e09397c5d101bf92f7d005f65a421760178742fc5bc8b011d8e78db75d3d57ff0fd94dd5ed44430ae9b05103dcb266798825c836a9c9434a2567b8357dc7d8c65fdce74d78968db88165be2e65010c089d899b01a8e9ff4d416a686e96628aedb0c17202974cecfbb2c5b1b51f01255fc38f18359fbeb179fb2014f2f280eda145a20a1ec16c0d3842c17f467958982c50c89b6510c7e67a5c1311cdcfa63c7557c92c47040850bf7ab188923f6561e60a52f80d7a2911b11f2888f58e32f8b3c0d7e3832171908088b9f59e069ee9bb9e4438b43fd197e6c035b6b95d66d3fa6e83abf9ce71ee69b3be2a420d5a9e949acfda3270a043fe78fd7c572c054a21265111e2aba19b5499246df21b3c6689e5bd7306aadccac04b002623319e9517ec0a4518a46e65fbebc773cdfd58789c825dc797cee9087eb564a2422c7c0c2c44cf298c514969cd106c3f104db9685ae500c4ee18b4512cad3f225426aaaccdeadfe063567edc0e91817c3e0e366b6bab3c3521b0aba7d71a4e5646f3f598a561a73ca8ccaa95d275d0180bfb1074e01d6bd8a601d9a93ae7ae334dc1549cd9aa645a07643fcb7be6fed82ea1c074dc87b6d12011d9e54ae4fe8a525227f5df9c83a2ab91e8a9f5ce84f189d4a5db73081b66995d3a15d7c66edee97b6727313e731ae78e20f35afd0e254742fae83e3d445759438970cf05d022a1d9dd52556487b2492a7ac1b22533a894c562e7e3dbfc6c76a8b221d0b1f00c2cf1fed714ce054ea185dea247325e54fef412a8d062549355b864c8f7a8d0a08ffd39d726ab482182b046c8587b9145cb53358703c8e7405a4c5453eec57c6231e8f7f4aa002d23bac42fc991eecd92ae51d255ef682fa32928548e93c5297ddae339d779019b22a99482ecfc604b6fc754fbb90a51005b1b254660197d9a21fae421f6082006ab24d2f65ff34ee73b057c53d9da5446f1648c6786a8e52b770d459a596e1d84352243aa46baeb6eb85625240ce40bd2d16f5e27753e527a1f922dd72c63df8ac3ad08e596486811cd900b2864eb7f1bc04056f3d496bd8ad2409c05b0ab60e432a07a6a8b0602cf45d987e367e27861583a241f80c920a69036cb1aef9cc7f2025c4494a888313db5792a6f8ac0c93fe3756dab91afd8703b6d814cce54e02ab0aa42bb138ddbcddea8d478a8e10b521cf41f234277bb6a497e56fb967e0195e13250eea5e397f3375f83d1be19dcad94a35d6049c29cfb097a5da092cd7eec11c6aa35153be76c5df8a4a4fde4cb42347b548244abca4e98e4297c7727eed6d5ac2f9dc801f43efaaf230806b546758a61c9c05c402a80d45a2e3733cce1204f8119d234f1ab948e2754e66c17e6c3836ef4cc8825dd355898805ceeb782892bae2301928b6e1b14eb2a2ba865806459e2d20a4ab8e5a3be91a8f43a745ff08031dcff407ab1c59236ea2614e3d1899b1e62fa70b9aa2d39948431e3eb99cf5e36e8ab4290bc36611ef22ad1058c878fb226ce932acc4aa6d3dfbe1d1d8338ab46bbc768d844a771b3c9399436d4d56730f8f3813ed13447ccd0ad78503c2f83ef68b8dbff7c8c4fcbcfaf11521333b30d233d4dad2cc39f9049ff1a65d17077f7d339b97871cd4905893b167e683e00ad8944c580caed665d90b8791f7960999a67515f5686dfc26d2b111d8a1efa569d02a0e5017b5352bbf885b83fc4568b2066fd37d751263eb2c66736743d369c6a6fb774a4e4fbe0571f5f6d0d2cacd9bb4fa817b6586ed417b9288232bbb301fa159773cb500a0cb0e6096ebcf837ef8e948618a65b2ad4527b7169c6bab5db5a6a51c96badbbabf52146aab685c9e44b12445fed0ed7ca88d978227fcc8360936170d148e20b14ef84fc66f5534388243bebd9934c53e0113f07e6466aaaaa675460122f69918d5d1f094a7502386c845ae85a13b4128661196c2a338051a73ad3a42b8daf5340701413d3bcc49ddc3680fc8ecbb47e63c5cb53dcd8f18a7c7511d01c19eb2ef2688bfb5d20a65a4e4bd8b102afc073fcd736990769d38614cce76b51c6128e6410bb7ee36bc517b2fd1b9508696a541f8b9b90f11f80a05574714824f0a75691c77008d25b08a60f0083940808003dc9c9ffa68d7652a65b94b44ffe961582121c5ae16803fe1a2e63be0a73e0a3d5579b3ac028cbadb2f41222ef4e93c10668d21150fb94b47baededdd19405431aa172a4350b510aafc838a510f4f9da7500df58023a830a29dcc50ba4015b7b0ccd8732d9037264bcef92a4628f7e207dd52947e663d7fb9b50a0740c0ff4f89799c6254f24222bd5d7720475168ad2f45b1c20025f83535df8174af0926c5d8400790ebc02c641142538a0d52645409af89f270231fe2246b4df627ac1e692f97fc98a53e8ce13a5400a70701fd91c49746685a959403088520146004d736e7e6a42480292742ff0201f69c500f9f8ec6d35baf357f4ba261527a3d0aab970049d3a561487925a376a5a37f85ded1dd0d950a439b84cb39b9fbfc2be65cc7290558fdbb35dc4b8e5e29cd7f17522b2ea38c988b7dec0a70127cc0401d4d2a379a6b6a203656e06cab124270ebf9744ed272d3ca0294976cfdb8a765f5fb9f120f91fcf1fcbfd764441374f93237466788a8eaaaf9f8c8eb9cf6fae134faab1588a24eab64619b1e2482e8c42d0ae0b838c91a8eb26610042ffddc627555dce74f166d32ee30d3e6148acce5d426ddb8caf493f8f330fae8eb02646cd08c1c7f34867d4ac088c38d146e9111b8c4f88cabffb81f0142b3ed209661676755a3caaf89cf90d802c1acbb2f8fd4e86709d3ece5f2bc60370b4909cb8358fdc8fe0d005b991bcd9b40b81ade1cf7bdbcc269387f7b596f41210d88e8bac3b70dca50c68324097f985984aaff48872c4845d59dbe2a0caa546e5c354c2e4bc30b77f06d8acae03ff0f556e4bbd7f41f1ef8243a41fd46c5ac02e36081d84bdcc08ed63f40fd2330180ae63c06f59013d5cd893a04a006733c872251fce8c3b53166554e90e5fc5313889020235d37ffe043620a991fcefea23b51e8152297a9783f677bd273e9965f94f47220a2068a5e30dc9726559f1a85906da883db02a0e54edd6804a311f8b6e01336be600d8ab8ae63be81c9e55afeb5be24895424c1cdead447879a09e7393ba076d0954b4fa8ce5e86eddd88db734939c2faca8966c2553515c497d7a6fd17dbfb2268980301b98fdf1db5ca0303e5af5228932833d57a870781837d9c5b3850efcd0ec346f843ae6464888060c03eb15ff171923b1f831338e99dd6c3f968a615ca3bb9daf0978fc4251085df154b3cbfddff0ef12a380521994efc27b2b43aa5805b527bc686d262a9fca7db0e2eb24f2dea1c9d837e8c62b8d21ab7edad8531f8dafd29548696920e286d7678e7e21952f72bc1c64528d955771c72526b7c56c7b59984d2e6d18984ca419e4d44178a365282a5bcc252d06a1a5c42a86b65d7aeb6bcee24b15e8d3b9032c26030a227e6c5a30d6556d0e79b82fbe1a45a6e3fcc81e5759e8c49b5825f40fca90eae83efcce8e50f7ba83fb21895d2c66c6d639007ef8f745448cd7e772d0273f18292beb0f20941e9eb8b604ea950496ec1a3c566d51dbddbdb27bcb94920c070783068c06351e70678bb286a3c608b8481cfcb7f0250e52145dfeb605727327bd406edc5de5622f9343c79056a62317638da98bb5a640d29ae206771cc0c5544b9edc7136f7bb1c0bae2010a494880c90d03384084527982c249841caaba37c53a28a2d366a0a6e10f8122710a9e045173d45dc11044ac26740440642e2a55c10c9972048690c3582c8508b081727284249114e98f822a8670a2023526881c895833fbfcca1699e23478b8d75cf780e4f42044bb4200855b6280541262620c202892e885ca10b1a94529a1245191919993094e84efe528a5f5459019fd6164b88000262b59c7dbabb3bc74852f9c7d425a207ae8330b0c8e2055e1ca1a70a404218c1833b824c5c3c451879addcbbbb7bbaa790a8232d62e48e3fdb9fba10300cc3304cdbb68d6e5ab6611bc5b40cc3fc9b092341bc8810820ed806cc48e34a17295f1aa1caa41ef5c35c0c2184440db0b063c409581085eb07224b56444c2d18b5dcc69c73ce5aebac734e2ab967f0d4d1bb4d8e60e28ecf2df70114954a941295ff002560b24a01921ea80d0f210e0c315405d617464728016212461743b87841123a434e00c6d1117704819260d213051b6032a48b76dab7a6f16baf3df633cd3c0da3d97e4dd3b2771ed6e1c93a0dc317c36c78c0ecf4bc70e072a7154180b1d9a0ba5c7ff92f9d521074b9b308d01dbfbd795087d4a1ea148b233a00a2558489098e68c5b8b2c9102198e0eea6db4629dd3aaf6d70b68e6efd34dcd1a2a3baed71bae7bcdf5e47f7dcf6deebd8deb3379dd752d572481da5914d6734d3a8c66d19c618512da2de77250b8085b300598b7004757ebf4a2be2fbc3e14396651388d7ce926ccac973ca262218ba28463cc4ca9b8ce0498b0877e4224fa789089a10042e2099edcd4dcaa81dbf079bd0478bacda1edc420a0ad15a44846eb9101da1886812a58a88b2dbaf4dcfa9d0b9a353a173b51f1886bdd6acc4ffb48e4eb5981da517d8e54f8779bbbfecb590eb235a08b604fd80b24526ea9fb63f9aa8899a687ba24efed6129dee771969d46f933dc6c504692ef411f6c0420c388671debb8df738dc7f46fc58b863028d72efbbc7f99e7b1cefbbefb9d7e1fdf7bdd7bdf77d96c6b044c5764c40ded8de9f0212860052f41f80ace1df7154b32951a6256256f02011c4d27994f81019d33eee3cf2c60df2c6bcbe3d8b054128f0f7d676c24e98c5498273c2e8ebe0fefbcfe274f62455df732f55231f6198169eb0d75eaa9c86d5e224a9e15e7b1c6a4fd8bf0eed3b8bc39d30dbbd54d153cd73afd9136669be4d89ea2be76911f5439d3f3a8f768481e13cbee239ea97f3b490f3bc9ca75f29e7699f19501c5c71fdf9c85f097a749bf0f8e1fac0e514d6eced06b3e79c73ce39bbcfe4aad8ef903798331dda833b648de9b6e7cc5c4c880200d73f0134352c5aa81a02589ed466ca79dfde7fb71b398ee338aee3e410d775dd776caaa2f6b364974ec256b2063fb64200878180c688b22fccc180cecbb81c9b15bf45cd9ab08912419574a80e81431c10dd8f8d2321f2eb6726705a3c85901b79638230e024ec04098a904792c3ed6d348c3708c6009bd40189f277d3c7a8317d8caf5979f0e57762abc3f4316e92d4c4789607eda95faa5862b41d73ae98f2ddaba0a0368802cf4bf90ef3c2945a554a2515149594cd2b851525f4615eaf8b513af98e108383bcc1bf0b65421bb286ff4a3893da523fb4099d74e929726254c445b2cb34cd63218f91aa8f5565b68f871d5ad4ef570f3f76d1b53cc4ab7dabd5fa7068c142feb1aa0db7b4e8362db696ee9e91b267225e314f8baea38d20011d0289f29dd6691d9ed6f1913766f6232fc9747ae542744e3a9edaede99f6a9eda9b2423100fabe8c340c58f8a5a1cd151fef4370b3aca7560a0e247c5fd1680279c95115fa30cbb665bf2248d3837b3ec4393836808fbc14fca954d5649a882081f2244708208ed1e1257aa50e56c15c68285f71ed33e3e1ed343f56a6e4fb40b4ff46504400b55fb99ceb81eccdaffd5e4c8b65b42bda46364ab8568be6be40b7bc851dd8f4f8b1e1a51c71e3a6a1879c50f4558344cbb7c7e0cc9c6ea37b8e40d6ea2ecfa7fac4a9da89d651d2266910b9ebcdc1d9ffa9ccd1989bfe34fcb5c6600ed1a6ad1c52775b2e51c333394dc143a177b2d26432d1ee2d6bcf20975761655db216f78f72ebdb82e9740b5d89efb9aed39fa9dd5b8df5e0767adf644cd6ca5a067e1c5931e1854e14ce45aa9426555f6271ee4f3db13ff287f50840ef77cec158a0a6651fb763cdedcccdac81afe7db7272a661fcc02f8820208971157304192101889e1ca264758d1c5e9ca26439edc117c41122e9fd60ac08801158a8a585204308a2862832da64084cf8e09282942094552c0c1cf0a0b2b222878e932d69e928a5c24c0084a88e8c0063e4e8c60410c8478b23d0105911ea3a21a1b3b76d0b876d45aeb0e9a1a174dcd0e9a9a1da916d945b383f975c7f72a65a28ef416d9c085c416485ad0d3013d4e19f8dee3bef0fe7c44de6027e40f969597b214f291907f423602fe8861c798153bf214d7556c0a27a115e4c6b7a3084595b652941255320b4f268e4966d6b4c7306ccaef0894df9a261faca6a19a651688beb494d6c005403c4eed47ec4ffccd5ea466ce55742b2975787808248db384018014fdbbef539ee6d993c24f02c08a298fe1218fe42be54a3d28dbab90dd3f5f56b145f1bb6e0c33f9c0b74a51a76ceda0084db05085c9d8cfe777de50846af6fe403cafa2f6c4f6c4bf65fe637dccd2eee94a3fb7b9542a955646d26358c51d246394e9ba9f5f0c464df75e67339aa3c29e850755c651fd5d5a15dd55a948c9a76132ef0781a8a8fece5e7a4c26692701ceca64db135513b350bda945fb4b1e8e6a5a2b08fe8b622a55c4c363c0fa20cbbc8e5cc7797cd53cdce2c0530bd415146b37814fe96f402485a10b357b2c956a98b6d1284fb5f8dfcf74b779d7a60e47203fee7cba7d27bbdecd8e3feeb43de823803e47bb1b192c46aa6ffdc9f8b463aa4599a1ca366414309f36aa3bc8b4d130cd1ca42595fd33fd2efda56c5c0145a4b66c512956ec739f57e189bf7befb9f0d480eebd3fb1e57efb930eeeb7e7ac901c8e2aba15d39efb53f6a4cf516df6847ddffd49c7f7dd7ff6a4d95cfeef4f19e96bb82751cdd67ccf3d676f3efbc3621996e5085dcca399a1e198a52e963a69effdf65c78d2ac0ecf9eb4ff3e47b57df7dc9f3a7ba296fe49b3a70678ff7d8da7fd8d663d7b93a3e23803a98bd991e6662e34d8c7c3494ecc9ef88f9a572b4cde90d75ba9db605d69bd1d91f22efb96569def5d169a5a6c9006e9db43be3635f9da6bcfb2eaa07db6853da473f475d8a82625fd3e0b81ba37754cf7fd75deea3113b3528a2abf25c311f0126696d10d653f8f1ef86d1a06857d583e5a9799e51308486149cf4ae65c69c4485a64398a5fb55551db563a044fb5d852aae4c004c30ebe8b482395851bc06e8f7003d865a14f0a290de9b3843db8efbc4f795298f25d178e7ffa4ec6c8f8b1767f0a65842f8452a24af2575e25ec217fe53b1943454525087663d851fe06f8aabc6925547919ca6b4a09c7bf245a51ecf7fd8c7721f7a490fb2f94cf75210786a08b48a3c5168bea4441a18e20d8a08cd134881a42509b498b5ba83d64bbd52215aa64cbdfae0fb487637245d47e9414dddddd30e872f8a1e6987955f93c0446102600ca341ed76edb6647f99a9426aac90c6328101134c49113a82dec108df81093502255a872012b4019a95f4ce07bb69c485032b30c6c10ac55d32a686a11b41375a4caefe74112a018415526b5040a9c2b41ed47f5c89b54adee034c4af953ce39e7c430ed352929c534d10755bec402183c4804010845c4d10a5cc41d343b7031a1453b5d0a1729bf01cf0e0b3e2d14c1ca29321e57a634d1851458978b3007b5c8cf3ffcc3410d23435ef9b0f888444d71814eba747f8c1630a1cae7f7808b73c8215b29991654ee1f9e4031f2c52c3885254e4c40a243a93c4d6e9a58a6d1edb9ce9b1f0905a5d69237974a95562e954a12eb6e53ad9ee7cdc9cc3c794eaff664e65929db2a3ad1d23263060c308831c4f08f1286e08723862c6adb1a4250658bd2d2d0a94f432747087e66f259ca2a5b2e3fe50277812b265f4a8985923ea1ca679e4a93a8d44ad42a031d7577a7947d9b4fe71c00b59112dd65ce39354d7307e74f9f9aa66931b0d4585380cfbef3a72744c3c8676666770e3b091bf7fdfdb339ffe79c73ce59a74f6f55536db1634451bd87e0da53c1ead1b48dcb9ff2841ae3a2929fe21433cb2aa7753b5636a5b89f7a1150466ca5c38cd695df894ed491fa9c2d2d8a97c796fb2e2d18c6184a8bff9cef1836678b4b8b528796cb727240a823e58e2869b13921568b5feaa923c7e258dc0f1784a4ca1fb99fdb9c0f2785121900a538216abf0eaaa474891bac88d4600a9739453be7f4e973ce6fa9a81430115efe43808b67ac822d365bb0c506354daae80daa3769aa5f9049c93252643a81dcdc7ece4256717bcf17474d8800bd9cac5a448c7064c80e5c5b60f556472561b66bbe729f5a6b651f5e15e1d5f3c5584708eff08a77deab74a4977fbe98190694596cba4d711122828aa0011418535a2b087eed7846d6687f4e808d0d8f229b5a6bb5e1d143118f1e6c78f460d334398a78b46c228b7c34ccd8b2494d0f66c3c8cc6b14f652c382a669cc188e21cc6020b8d5991c727833fdf18072b31f52abdf0e15c3b0a742d4666cfc0003a68ecef56779836358d6ef6d7de80f422fcb1a8e65ad691688bbc546213343d24997ce9b1db3c3bd7c30a31a4a8a012e5ee1788543d1ea8ae722d5520a0f0719b95c292a5acaabfc4efdd2934cf6c42bf6c4a6af4979934a4a4a452185acd2b6af9b21720d659582f4cbc95af3a2f3e4b794e19f19f74d69ad20f82f8aa9d4f5221a21434457300f4d6e9bff426e6cb821ef639ecbe0d050076a606bdffdcef7dea30c790cfffc0cfd0cfd0c4d4b93a3e2ec69665fd37da67df7d3d678df0facda1e2564559ffabdcf5175e1a9ed37cae7a83a86d1ae3f1fc568357172ddbde52b90dc775fc37d87626f48cf7ddb9aec339c2435247b6aefbf10877ada7ba71ada7dd77561ca5f46e847aaf8e78725b459906a52b55951c12ec7dbd3c26bae9eb0a7d3a7ac731dd6d1611d1af66957511612e5eacf321d8f29f1e6aa1e07b1d191ebe53292f9643eefb7af2c968be562b12bb3349d3d65df65ddd790befb9e646f92d4907efb9bee513e4bf9147bb33da954f981a0aa24d9779976f93bd1944ad4d6943ec5de90be644f5afd9aeeebf7dd6bb66693a5afa9f46f505eaa6aeadf90beda93e6bc2961c40fd7e5f24dd4f151bc166768781c1909316ba853a28c987567042395949f692977d460a4662b4d541a79838df888a1c0968db2cf9e3f1aefd4cf5f0a1b95bef7775552e5faa4df41f9ef4b3c3c14fc4e6d6954eca95f25c5aaa8785f0a59c53f822c52c8411cc402681e0fd27ee4a0ef449362bbe93189549ff4a1fc87ddf9a5fcfc70a4684c52423652d2422df210b7ba1f99e396136a933ee5757c342adf2a211b85bdb2a2721151f73b279a53db4fb137495ae53bc5de54476d6ffa1c9516ce4b3d46e5b7edbf10a78493843e4eca93be5b5149f995edb5d2ab9c1a90f2a4af49b1a4a7b6a664fd66a1e90b41314cf1b4a48a797c7ebcea286f6dfd51315598c8a8c148a5dd7b3fd33de4319e8b3d100a7294719dedbb9526eaf81fcd0f470df51512e53f6e05f89e7e277e07485545918e6a144fa54f719cf87f042965249457499144dd911aa3f585dfb3fc0e49aa3af67ac863f8a5e91031cff013c5908e0ac59ef8b3aecfdec4b05cc4aef00756716f0a59d5f298eea156165629650ff5b7dc56d17c590440d6f75e826c285c1f5d87f4335dc3fe09dba759611769b1ab218a91c72e72fdb5e73f02bb3c06ace08b35255d2a77ce5647f9dcaca8d8ac0149e577528ed69f93218c60b8b2494f0f58444d34eb40dddddddddd336c76a80485c43cd22dbba5ec96dd537e7373338b6016d5605332a5b2c3146047883b584d9943142911b011524a91a3cbd1b5dc0811a5d1bde9519f714caf829324e56372009131a28dbcf1e231a62cd08d6b17a255267ba24951c94a2529a5accff2ab2529bff4b54ac9a5147a293882dfa3388a9b28e426b379f00ab07626844e729ffc732e5bf9e44646e132a2147143eaa45a8fed330c87f4dfb35c512d20af7cb9fd33f2c646d242f6157555e5952a923dd1787faaf95e7eed38aeeb3adb230876b7aff972dc6f99ccb22f7b4f93a10fb3b99bbb99a646c651bdf5e08a2abfb9ce825c53a4616326871c3336642bc78c0db14e900a37b5682f6a15b4d1a26351a5a5d25d9d06f8f2ffc84b70643fe40dbf520a71311fa47c85bc444600b47047d066c584d477d83333bf1602712b320c61d06898f1ed6fa3e6c39bf1aada4b49431fded52c0d398e9337072825557ea7e60aa2f0226621568c286a3de26ad2623b91cb5d44ee9260c868b9e520ff6d893ab972e145fe830e6b6961df7561f61ac8b9f4c779b7df68531eb8d75e07ceca16376a47997339d33029be5b208412e9dc1a054f46d4510e25a0415aa4ca163bd06376704ff9cbc732eb9452cfa8539a43a25c52f7ac3ad8e23d7f65931e23779444ecfe5313a2a349d4ec4db68294524a6f3acfde78ff594abf93923bed309f7b1de6733ec02bedd892520af47d9a4ba358805a55f9eea5e6125eec106184f9ec415a74df411dc5eb310c51479155fc60101b1f3f84340cf63898998072d5f6bc70e4f7fcbdef31d35450a173b7e7ee3f2fc93fa1ec348ca9c5138a45405f141b1f47aeff8f86215d7fe6d9993f3ebe43574f34896120973779c2c8f51782c2495163e2fa7b46ea288d6c667de99c68238aa378dd46d65842e52c8f1d282ed451ba687c60921de9d3cfc6207e7987eeb7ef8f01dbb367eb5b15543934f4badb77dccb169f72320ce277dbec0f1f349b37488b2e048bfa2dd640822a59dc0f2936619448d5a2ca1b69c11a54a5e42d300cc3304c629f6158c6853b49b48cdbe416524a29178e41e6f61af65cb803c4ab92f067729399b441260f06c832db833f1b01f71d952dedb34cb340dcc703674d8d3ac99f57da6ae46a2f892abffd190b230d137cfde76d4bbbc043ba296f60179c21573039838c21d5d87ec4810057f6e04a898450d250ca6c0916ce1b05b8fbffbfadc0f5e779fd9bcf80bf73879f92e7cce6c4583649cbc91aebc911bab206a11997128b668244c9922359f7749136d23b5817603c7122515246269572774a291fa13db4c89546ae9c3bde05184f7a68f93930a58e51eaee9e6173baa308e132939a94dacca6cf39312cd3e8d4268d2b3f9ba639273b33337363453a29c797f2479939b339df7b667e9ab2867cbe7da584c9b0e9fa59e9f4b72e4bf9dd4b28556278c34104018a1fb0542fdfbd843720e0151155a800f0372008adb013840af535fcf74cf9d2974aa50e4bef3160904183e9677a4509555efb94dfd32875421d5da777787e5062787e67b0438da78b872e61a76c51ff1b736d51475fb58c4d74b9b1b8fcf6f99d5b9e6578fe266af9aea525f4975f10bf3b60618411461677860ce37fc94eff127eac8a62192f3c16bef002367f0c825d0dfb0dc341a7ed7ec64fe1e8433e526cd4e2ab6708f68c82d195a0b75454e96fef467c68b0bef2222d72490955e5579efef6b463d1b6ceceb0bd7f38b64c86cf66f88e5297e167dabe84277f1bfee567783a6df3c5f0b4d906d8f02f7f72abc306fbf2355eacf1e2d710c5903aaa1b7d80f7f34f86c73a203377bee9dd64fa961f10d9ba6ec7993b6d0fd3d3f033dd08303d0d3d5f5c2708d64d20da056200ec6576ee958085845730ac35718b1a06fb8ee42412c923bd874062c0308fbb10434d053d00420bca3c5f368264d8b4716787d3f6cadba708d13d5d965668b991245ccef255125fdcd185be1613ff7124977ffacfca757a15c3939f0e34bce93b347d0744a345fc1cd57cfaf2e2d7bcbc686f92f8df9cfa6bb8ad7979f1457b237e0d7b23638772bcd81c9576c38f72c82639bd54d9f0a3cce5eed18d61f33b6e86dc67e129ec917dbd2de11804bb8186b5d12b1f0ecfa648aff2e1e0def4e1f0de14929e06ef49df7121cb6aa85574f4d3aea0da22327a3508409f6110be5393c1fe0c9df5015e19e8959f0c2ce13883f591ba32bcfd1943d4175ec6772f84235f0dc46468d6853f1c324ee19f5c5e7e38c2cfe9977ea29de97de5312fffc2c93771a4b9e0cf70037cc37074b1282f23e43ba3893aa6085d7e19de866f437ac3f024037f1fba0ce1c8b7ed0e5aeb621fbebcd35d444546afa3a397511191ab7f3a8825d41a1a6a09b13ae875d43acdd32b9fa3576bc8455464645444e41a6af18a7df88783584242ac1769f4b2e1061ee6619da3574a46b66eb0217c91df0eed42f99cd4edae61c30da10d618d50740b44bb23df0ca46e67479a3bd3f6b73003a9eb1f0e6b7da4eebffc70fc87618fb7a71d546ebf4a0f94f7d37c218ee2697da879791bde070748d50f47f1fb00a47b074895f836d89b1b1b47f1efb0394e6df8b1de10da30caa397972a1a3f4aa31a2f55228bd6beaf1cf410e53b44f91ae18986c69f3aeb00a9a2a17af9930e56bd3cab5e2cf3388a73541b8a10cac710b692216aff8c8661c68c193366cc980143c8338c00bd7ca712c60871b0bcf0624ae6b7d79e6bacb5de1a3c590db32f846390ecb2bce9e587031c65eb9af857e44a1739d8d6f4d3f4a61f53265fb198bec3959fe108b27c7f385658be636f25e41b83c5da76d277a58b8edc9f9f6612f692b05b28b65961afc22e12be40676c56ffe8f84ec364fc0008bba771e0af21e457e3c08f0a3d2eaa91869930cdbf2273fb573e1e528e5c8144fbd08b85ecd33e2d8afff2dd32d7df578ee2ecf6fb68b1ba4e143aebe341fae088dbb67dd86714efe82b77b5b8838af9e0f2b793ee27f286f467efa261bc5ea798af7cd5ed48827ad53e3d7d74f9f9d4df3accda94b05830b75827e8e8c788574547a94f69cf2bef9e9ccd40ea6e76a4b9da7748d92887bc6d491f0f1f08238c305c57b3982786322c218b96ea25942a962baabdfcce99137ebd8fd4edf71f7d18cda0426d23db462df2f798965f5dc4f0aa6ee4e58b74015e5e9edf9134cc1824bb403caf12ff481740b4e2b34fc360f6d4fffed330410d33edc99f5eb75dd422f746032b862ce17a93e97a09db49d81b0ddc1e81c8a89d18f1ab8ba6a8cf6fc51144eee83f97b9a8457e2e4a69d1d015300203c241cb8fd7ebf57abdb4d798eb5eafd7ebf57afd78310fabe50296f6da8fcceae8cf34a93b21fcda4aef23fb5cf96a1ea397cc8bc8135144ef517e67fb12bf3c86a8755e1cd7d913a358e928cfe224c149a97fc37df7ac8d5b16a7da9bedbd47b1cc729493e87f5d92ee202e17c46d9e4b2f0de27658a66194a4dd2eac23b36cf6fe5ae8b13c26250a892c9125b24496c8326209b586888a8ca815ad1041ac3d213c1e60b369e53b9cf6a8e44d7745bd6434320200009314000020100805c341d1703420d176acef0114800a769c487a589a4a645192e3484c19430c2104100000000800cdc8087600182441b004c98da248b62d8aa5a8b148b49afb95321df070e5c15cf422f9c1be91cab235b29e438f13149f61c748c21bcc85b2acd24753d303ba35e43741d0a445d8f4c1a948cf2c122d624100db97f89486f31de948ccb87de1bac978a916c265383296dc7cae9af58bcc7b6ae59367a18e38a412c8733a17a5c635820366acdec1139fbf44dae262a8370882d70ddd6e0823a0540ff42b69c6c5b3e11b3f488470085a57343e344f868253ac582e8d0ffb5722f49ed9516c80c71e658d5322565998be3d2ecd7b0817b223846096bdac1062450334cb9a7241de62b34af70af1e49363b2916271f9779ebbcd3a986dddb7d511073b1990c508987896993c891d2da5240ac6f975b8b385fe56b6f9279cc46c0bad24e985418070324bf313955555fcdcf6440c576cd3c3b05d2780892a32e1011230e5ee5e92e7de30c6653a9dd503fa588591dfb6b624f2971e8ffe271766ac3db6d26d5bcf28481b3669b1403457e443d1aaac91ecfe42c692c309b08e57febf4b17840f575523654fd792cc7d10a375bfcccadd94946b8358381ff1fa747eed43563f399918b9eaac8230e8ea88f3d44ad2de264b85c22949686b98fc289e540a63b6e787830b41f0955aaaf98ba69827ca6211a72362698fec2838ada5f9bd248fd588f36956e5673a62a2dfb50dc1fac1a21c6879af4f6c78dfc590b90d87753080297297822543b1d1b146555b23a3d103f48c539ecc7b5e88532edc6250b935e5bc531b598e5041a486b0d75940094976847470daafca48231f80237d2b55df6621c5206a9862aa2add0a8711539ea8da464adbbdda875a7858efa3ef9bc72e98fe001e5b8f5a6ef0a153fed70437c017b650a6d851c42ee521b88ee2e5f595d5519cc5ca87a5f39385173229ccfc5cd21be6028c4cc8e444cd2e9faf0a2f774b06374530e0cf5737007b4b03b81f36f28101598c4cbfb6da421c4c265728462c2b08ff1a0d9f10a858c663e950d9a8e9af1fd9a72f72fbb3816451fc630d2a673f87f7e0ac9dffee5604e966f0c8e708c39b32aa9a87d7a1d431930ed06982ff82f200c10d53a1f368271dcd01552769d180363fb619058cb8fc97d0f47e077018d58f93120e71e03f73fdfa4611a0b5f8a073e70a4b49e4a57668f14a676774ef585a8e710915d0191aecba24e5687910e3aaa8618ccf63c3fd104a4f7030e1efc0ff885b494ff46f73dabfcb573810e967fe86dc7323283d53c91083c9cd1585034d93f498cf6f67621fe0eb992e8fc1871c039aeeedcc96a1099049b9b3d06a3ca027736a0b2972c3b2ef99be9b5b965119b04ec03ee9f4c5ee74a2883c05b8459e71856015914fb16b86a53cb83622d36808338732217a0121847426d6b37fc80e6b2a39c5b542c4169a6eb605cb6d6cfccf7006c2a4b3f9100c2d8c7968e06beaaae362c6c309e06ec310544e9124fc98720a4bf0176a80e2ea3fec87640c46d4855d5ee6547c5a5255c60558827182844f0cec7b4752e55e65b0385775aae5290ee4fef55faf655d96aa12f5eb64d0562c8fb315745d20d566fbd958637d98108f1954005db5785e302b980ab68be0210c929d85025cc690c88344b807ed5d21c9b786166011b0887f17cf159b8342b9002a839f7ee257e23771d4df9d01016881d5fc7884881ba35598017762ba99cb72979885fcee6e634a643205733abc18feb519f2bb519249fdadf0ed48d5949ce2f6b07811eb30d338ee53e62f42f547907d7b3b3ca8a5b2fe5205c03a1ccd50f1a60b903c56f1b08838cd24fc557620e2ea6f9cb2ecd59b05c6241f8d21ad4c7c0451c34bdccdb00e87532520578094d4e6e8863a1e0ae0cd9d2942de493a1fc4e6a864ff2a56c399f132e6035b86fba790082b1a27f9c9b854e828303550333e6629038ea0eee9b38e25a1a4ffef07aa350a63650f4fb993ee14a8aee5f3a79c84a53df839515d67700d0f2eb0b154d35b34af5815a0d42245e6f90ebdc23180a0fe3f8f19138044caba245260d25893285aa10599ca9a200d52f64474dfb639260a53fa1747cba7806c0c2e3734bafe470ddb864e7223e12703655333c09605788a0adeda2e56a9d0d87daf9216b299bc0588642249ca0e21c94a315382a855982e5a55c1b028cfd08d388e7dba17887accf62fa4ebaa6d65550d8bfe96449eda3e1ecac400fb9edd90c345b821ac4353e8396dd7e0ba61283e78b60fcf64062bd8355264bcc552eb4fa1d6530e676664c58eb0f6b3c05d2ce565579212a6da65c170de14982636a24d98bc476c0a695f93132a281464c73990aaa039f83b036869cf0224b0d6519475baafa99554db04b480af3d00090599336e31388b8e4428c5b94aa736065c53f8ac5a22b5fa5eb1e683dc3d518ef9b3cab9486120528c92895133b1e39589ae374d280720143f59bed48c59068408a99292fcd51c5f40d28f03948f9e72e95a807969b9d4d94621385845694e8dd90416163475b5de4644e01009b0e2ad1ee37e6ab4673b7bbf9959d0a7ed1ebe62518af508222d9d6a3fdb36381d442db14ce03e4dfc8fa78fb5f22b814812a928f3283d2837ad5c67d8495cedbab9c963d439ce0968438cf040931b88dba7e23405e5fd69d24e3113c98773bbee5b956e4eb621676214ec085158460c7512d87c64b0f2fa0696b8e381db15b05f996816d14cf11a14d39960ba3220aec5e8d99dd16e9560920143264c4e70d5ae0d0df80c5caa854959a3180b76d4fd152fc7f9fc2e411bb0b4919eb5d72578d94c454886c3abbab7697138f6a1adebc054396c003074bcf229418f736d50d75a9ca3424e33c35c9571076263c41c5c393b02e8afa98170ebccd1aaa37fbb17b653f6274836318d1f489300dbb494fa3a883b422e1b730207d5cbffe13175bf2d36d005222cb99d0d43a760e71d7de80ef7f0653aebe42d5bec2445f48f90d2f8822c15b0662d89406c8ad32fe047ef12a6841bd9f358a54b738d097fc998390624bac334437432f74417b19a84639a2fd2a48b186740397b7eb850277ed32339c4fe67f02083fcff500704d5d0ac931611f026404f6d9007b1e1332cba0a32bc3ea691c0c424d30764fa3e432b0b2042fc28c9c493e15a0698ee7c7684b0fa99bb1ef09ae1176a065e78be067f7f591f373ad9f29de83b1d2442846ccf8265ec7e9a3625786fa920a15967dbf0b16ad8dfbbd293447bd7b29ab960410229691c5120a4ac5bce9311aeba1df1980b28cd63ba3cad60d66b3ce01d300c9c4142065b8402b516a25e810c91300e112b49f069fd801b1b85a5c0d58a4748f0bb6673d485a28aa066bdc452427ad8b68fb243f742eda43485eeae73fb9b0cdac2517d0db53b6722d27a2fbba9fbf77e623437e7b72c37dce92429447ad724ac1f2a72ab52d6ad19b9b2b7c4509f9d6bd4189c3ebec03265550c7781179d67f452e11622f9165b3f9b508e54c0baabede6d20592e8ef3fe72768db5112dc77cff5bc608f4a7144646c32ad95ffc8259e171655692bdebeb734c1aac664d4638aa00aacc897578078d51cdbc9435436e23e7b6026b378a75cc0ef0285b7646b5226b2847f845bebf7e69089b2a77622eab50ac8f1f3de8bf4524c3dde1b4084511b1ed25b10485c3c96ffc4176d3459af6fa9999f372144b77c1aaf423e35bee1c38e673eaf3b51ddfe67ccf1d5e3682609e18f17a1ba06f6579efac242b31ebb9ef9f32b888393d050996481bbd94e9945d304d3888391b55b230db575ae67d71399b2c851d1cd3441612a741099ade38c17f0605f1783b0f831175c19723f18fc0519fe709262b2b01eed083d51fefc5989a0d0f634c7efc9b1d1d1640672fa84b10dededdbc7e1e3630bff5bbf042c3fff4a5983eb2290996da1c29a4e14d98e10852c71a9a90f516ff5c03c506a304d1ac1e123a9fd1a16d901b90180000bb2ad10d23dea10da0c584ba60af5dc83478523d020dbe0a974bb27780df295c0fd903b9bd633e657208608f4e2d2943d248a00c981e2644b697dd6b4b02f8cf11df7990cf23d659819358a7e55a79686c915b16b86283e940fedd584326fc54134401684f54374792a15f19c6ad9dfe841637bc3e24ee4744eedf0be26ca55f507dbd6ea7d156b41d8631ff87e2a8dbaea100b44db2ce605de43c5290c01e54a771678d92e1b85a106be42cdeb38e795d9a860b7c6d0b56476a959a36c8bcc30db08cd0f6001696ffbaeb1cabe0ac4853dd4cea7316d9ce98bcde2ca76c04731c44a241651d6c4a3a74d791784713f47f8a4b7f1ea4db078d58eecc37e3359fd8fc40714c425106954a3af27432d671c6fc3c6a33131040316ba17a91e2c66c87c5061f240fc88cc4fc08872e814381ee6c952592f2b4435f20dd5680ff35199669d74b092f53529541da42e5fdf952f040c5e2c3ccd11901ced00b28a01ecde61d5ca56163f07cd18c1ea013901079e5d13b5867ad5bd8164a219aed6bfb8f52ca5333a8091227753a0277c87ac9da6cb38025e0e301824a7908e9ad472d67cb338489a9960e5a9428d0df1441073783a6b5859170272080433590ff328f64b82f019fef736a4a9dc8825a7f7f7ce413f419c90c01e01562fd71f763dc22e23715c9c61db85b1f6b87251898dc413fa6d9d4af2534f57039225ace8184d7e9903733570f28d96c4c0da7ad81c81dfbc4ec13543764692d59243b419dc64ff68e8f142283c98c33727b37b2c20e3ff7617f8ed15d2b76c093e0234683d4fdd2c049ab8c8d339d52c4a6bbbca5926acbaaf7f6e268f649357d9a100871ff6042e6bb6c503a4c9ba4c08ff2f2af85d16a1a415753967f3728d6c4cd1964b5ac4f82143a45204fde9f2dc112b8569ea02e168f650610044790cb6fe276b1d2c0ad7039df40c3375bb79fa993f30e6d4a056853859ead928453d4849fce0a0bd4f28218b4437bd5e3a63ca4f32af9fa1d0333f64f2595382040873231c14bcca3cb3158755424910b09cd3a84129a1d6284c5b0b834d964882292d94391b1d2547e230fdc5d0043b70a65a61c5b58947f8804b25d0ccebec840cf2561ba01cb8e8789a0d1d3435571574dba56d2aedc943307e0eac61b99cea495cab8eecf0eb2457fc304bb81059532307c0a219641799387fa5751d9f77df1777649c989643e144627cb506c33b47a3427a11edb371b19346f754a1465843ae8457e2464483e0402fe34c62a7deaf78124dc7daf47fde3100311419304eaa82aa4dae7ba97c039c41241051cc3f3ec381937eb4ad5834b51d392b5ef67e9a6ea0a89b5c0ef7e3d25821b7794aa5c511d850a2c42474abfaee8539cd661c1e5f2caa4c5e12d932016267f2e32ec154298cb95c7000e4d4725b3c813e051d0e05ff53c080aac0e94205d5e44a2604b8d2baf7fe6c1a75b6cdb9df1c0579fdb14880fe9991253bb40d8d5e4929418666304aea96ded23c5143c98d681fcac2d3f7363652c75a59026e928bd6424ddef2d0f9ee0754cd1cfa7cf0ee1764574acd8da6726a9c62e4ac6247a587af136ca6059b5d038d71e584b742728c4252b7bee0e6e25ede342dabbc722aa48e99039cbd07cff46d44a7050a2462000d54793f0c0968b0742d632d87521180001ad53e3c32a41294e70cb42e808e6b864c4aaf973ccc26cb0323644e03ca1a759c163ffc8d903c2c3a1478b66a5c4499b4169d5b613b39d0b02eb274ecbbccabc3be01e2546ba04583bc74484b3e956dfa96579d2e37768ae7a1eb9702d495fa08251037257fbdc7c656e64a31f860064ece85866398e2a0a6bd98b7d0036d87a64481ae62e1910c588974b135244966d22c03cd4d6699c5e2a5821c2c291038878f0fe2dc7003e0f8181f14ab403b46d62092b408455ee8461531428b0d13fa192888658c1514349c7c984adf46d9c65cb1c3840339b9510c89e21301163724370ed0d31607c99a46a3ac31f72a265ff5845480d15d4c82d849a4db00fb8a4cb045824b60f36c13b3b0cb9047a53caead371a7c7fb2c8a86b1371356d4a5754e6dc46db1689469d5081faa054054f698b94e164fcc727a77258b4e217e612b490a26a42c28961a412e67ecce07135ecd2ea2da22c0de08fc1fb162a1671f5a442b90babea1dadfb7dee6300187b8ca4c56415c3a01245f54e2c6dc7da3c5e2e9c11f6fa87ddf5c3d49fcc6a04f6a580c4f52e56a49bd6f2332fbfe68720dd795300d9cd0d257272903c58bccf04a4a0aaa82a9e92927e8a53153d8ee15feaa354365925cfa557d0ed213ac51784ac042967dbe2852563b167fcb061cd81121a4de16bea383c3dc340e99a6df3746394c2fbcae8ec1b8da3fa37e3a640fcaff7f14e32236445ec9c89dbb8d10a354ba0443c55cc3f3729380a6570fd30680ea99c7b168a1c9160ee009366eefd1dee174a45dc3ca7ccc5f0d1d1907b585c0eb24fbfa3b1dec35f319df9c377f733dd736027252d52d2a4c0581bdff0abddcb13a7e2a3a8f181020c6d95263119dfeb59e14def650c1aa603c5fd0f5d1d5dd362131f42f4fd63b7417b1a6c7119757e822a5a1ad33dda18afa686e651544f2d0ad474e66626f54371caaecadcb469095bdddb204826f921f4185959d3fbdd7bcff658801ea612d8227be7ddb15b73788949e31e208a0379b8a94e11bb698bbb276e72d158ccffffce5ad35b36689127d1a0ed25aee1724c3487d3b73a13d5b642c90d2d43cf15c3ea55504aa0ed1482e2ffd4174c1b50535a3f6e85fcaaee16e162a448e5e083a343d10cac3bb868f358be7d5630c2a5b7598a06589b5bd148e7bba63415809070a54573d0d7b9a4ee8d468d58422d680c2408770b27a0224e9f0ea560dc9c3bbd5fc21f3bb354324eaca61ba48fbc7980e1f8fc8ec957ee873cf919e2c858434e7b3e4fe710daf07ab263f0fbc03bc711d0a560fa2d14a5dd82d1bf9830e4ff41724bae4849b2eb0c95326956422aab488a0835054b344de4fe5f92f99cbf98703be2f1230dc0ec535571a3f8d14db669656bfd01e2136acc3f095eedd4ce0b68560f3e9144fdc7e542abce59916804707241c2cf4300b2ed3c8ee07a84bb175e63541afc93600500626cdd3e70836ef5d7f68bbe80aba7020ad065fa42d3c7130a5bee7240a58340539abe45c1c2f6e087373f8c4b3dc282ba93274ef2bf10211f504a903e679100b494d5efb9acef81565d34085e4a32e311ad9614468880aad286cf092737191e5736931fa4a4da502c16470335f6c0ad4e6f6495d71c82ac3530d6c1b0091725a2134d3d04da4a4ec074c1f86a8afa57eb898469f104482e90cccfaf73feacd41fd1b9fa3ecbffb7ed77d1158c31942e46fb29d3c2bdbf4f6cf3c598146c84b07fb4ffd0e87fd33a82453d2ff8612a0ee0d55dcd0949525b151000e41362a93c4e94ebd712ca4df295d5567b5e6c6d60d246f355c6800be6480bea2911e6281d073377d893c7341d36c744fd37ccfe1c1787edddf18e76e342c3b24e0dc5f3e68f01786bb2312f225f7f96d294c5462a565fd3cae8c6645cd2dabfc246f98d9cc602565fe2ea48861e0c51b975fb71aba4da46dd98f9e448731350522c4abf7d90adad0c300306829670fdd60d63a82f6fedba8da18eb31d2f26551dde6817456adb6e9815ae4f3456c96c3e5a337711ad6ab64d7a4dcfbcf76b60949bb409a85539a7345dc6a57146bf1a1a74213100ee35c726cc310e194459c97ffb3842abc5fc0f41eb693acf5da5e3b89f7f27655406e9e51c6b0240cdaf175ab1f2f6afdf57a3f9e5649a3949ed1974e5da5872f293b3eeec930467e48ec4c56b8b69bd188aa30698067909d766a94b8bcf50c4dc84d3f6e711dce5eadf1b5bd837388d4e11242253490683754816ed0bb08beee67509b927b767751197d0a3cf0425666519c196e87b82e61bcb9e24463be009d0e64f5496c196d90477695705833b3185d4815e6e24e5ab326f9984af16c61769882d4bc464ce3ed359de668acb8f61b04bf449c9a81b4ec0cd36d549f82b36e363577906921ddc02459c937795d3d2a4670a4844c40d786e4b10cfa0425e1a457d42deba4cb454d8b192f1ceb01b9dadd752d49b72b64f55bd6c700aa58d090e817998ca2e180146372c3cdf1eb49bf0f99c11fa923b1def54d380d1b663c96df8a98189596840b17f7ab164b06f849285d9deae7f87b370d110b0eaa11ec19f8e969d53cd9d49703481086c462713160004b51a3c3bcaa7d745e288eea4bfc886c81296a1ab96d1acd7828f2e3df291491e4aa64d1811efe439ae7536602705ba93c63cbe24ddb59092216f7378e0033b8cac95f7ec1dc83abb91f92187ccce987e7fb18984d119548607afa39880fb4d4f80463e37f2476b803821e4df110e776aac31628f398d877ed7ada77865bf78ba29e2cb53b48ae11683296a92534c9ff79c29dc8e06df824831f028db41381c9c0157a36ed8c7b057815fc639cabe07ee4f7b07587d519c6bfb75df6c51dce18559198bcc5a342c29786aad8b6ddb3981bb6b9c993d78c3693b1c05496fe328d669c332b06a4eec74548cd6ea2ccb55fd734514722ba90248adce6882455c51b51dc140ad21ab2028ec816f368a0c7bf2b9a8f32035cebd682d028d3b2219add54007684473a49d523286656c80d7d1f0efd0567e83f325bed64cb666f17d96baddf5a4dd83b7bff7fa604792e65221db60a074dabfbe95057b0cff65e37ca019f9e93ce8e6dd088882699302ef700695d153cc57446c0eb64f6f6d61f5930337975e4c324ab457a8501b6a48ccfe445d22a2d6f15a046404ea5cb3b87450df3b2214b0f2ba0da881af61ae5b4011d30284c770a0d16dc05ab80ca64c244580595da477039e5f34d382e51687ebf45e47afce54e130dfa91b1dbab875a5b9e6819462d42ea92b25eb0074a5ddd03dcdd5d887962f4bcb37d66377d2e6a05243bb0342b73529f650591408b877bf493cdaa35aa9e9d215c2d5b51148602e6ef0cab799edfa790578b1d1a97983ab94b97217078a48251c7db1d091684d911e9b29c77c6dec80066c0c335fc856159fb0550eb28e89461088347ae9bbdf87107c83f07adb9f5142317a0910ac036e463e4b7b70fc20b3f6616de6d097187ac36789f2d4fc463517faa89c20ab53460f66f85700593798e429cea70dfe757cc2351be0bb62645bd1eff99bee492d00c1cbdaa9fa27fd897e59590ab9d7e99a353aa436b8e6b668bd8bd64070be78691d6e22c0d7159e431eb8ff1cbfbb69d332f151744d4419e96a501b8001f0c6258a8c157f8bd3614da86e41cbef0d5ec06993ee3b32d20ddff4fce557d1444b7f81fbbf7dda9e38e33ad8e5fbfbc59aa77863da368832fd68bf5abd9af2b8453cf59c17e5b16f9a6f9af50283cd1c4c0e0db15c33eaf26060a6ae0e1d228fd7a9e5af181178d2d0fec2aba475cba6b9398287bac80902094fc269e4fb5745a2a7e60e5c78630c5214679cd2e5ddf8fce8b40f041075a7a1561b5f6680aad4384aca803a921015c652150a5883b9c06fca220227711748235896d87e31d930cef51e51078885d20b37d49add42b47a8ce7ee77a9ccfd2c6acfee382a8d5f5edba4cb73111b1eca4aa853e2ef4ec6335b74f56467f2c0241101b1efbb1092e58db85e43370e5f3ec16eb7fa4abd2347276899c3058f3d8c55556766f122b334d415602c1cf63b0c713c90c581618c52620d9a6dc9a438c98bf8e301e9b093858dd7e4d13a83dd48aa24c0564131177a00129774a960e8a77f5b76f9a2bb8e6816cc53fb866bfadb45d3c4e8b7b8383889cdeae41479a6782aa127de0d79149fe8795a7d036394e0f0492e1119b7a4d219b7809630a9bae3d16499d75fa6552bf49a394d9cbdfe57dcd534c6fcfb1e6f982c2028c01d6732f5b84ea6372d5581bc1c80f8f22097cb6b18ad2015db4ac46796cb1eda4fc15794254f7b0d81ad94e0181a5ce1507d5865feeb1763f644b60e9a195576ae02f0b2bc6144f0cc3d927bba5bd65f48f85c467de209253d8e4607a15b6dde23ea026310abf3ed46ee5c71b079e7c3032009a6ce3ba22e59c00e99babc1f27494ba573e11ad94f99bc312e59ffdf247da66b67c025562b4fdec2b26a4c1bfdfe09f1a7158b8e749e054c6640fa656560d4d0752c40acab2cd6e9d8f7d848742b818367513ff5f2d7b5191f535896ac74189b61f4fc7407b0e972f77c48cc6fa4982d046e03cf5bdb7b3c4382282aa96190a4d58e2a38bca920402ac204c91c0592b06e14276b8afe26a09f24136949675a27bd534e822b4fe5a89cbc84ed2655a6a9c28c4197f391c39b450d51fb6587d6760c96c88ee0d9865e3111a0493b44c30b303b12c0d8bf3b9088217bd96d663eb637727bc188b0381d9aa25918b91fcb68b40cd2281ac5e82968bdfc9e8c6470b28a2dddd86ff5d0d4b83abc2ceb6576f3082dfe56872ce30693fb5914bbd000f22cad91dca535fe981d7aed33357d69b69edb96e7d237ad535f1f668e34c78f242e19155e373c58714c4e52c77bb9249762ab78ae7fe0d0a42476c45cff5ddf1244baa280c6d5c799a53b1fe48e6c40fcce07d644a41a86b751bc1333e0e42a29e3262e83cd79269cb432a038ced6bb2e088eb8f5f077344278c8c1b7825088e88ee0c1a6fdd90962b004df0139b6d5b1cbb5afc4b98a0392eefb0853ae6c8ce41a1c2878dd2dfbdd9689cbe489a592e4e2c0a1b2f8fb1e246a8d01e34391c35d9e398d2021686816038bab3885908077bd2d34fdd06226dd2f9b0b9ea515b64841f012f0fc954147b05b9ea7417ef0cfebb8b16233e16cdc2c74a8b3296440be54ac5c2b48cec5cd3e16ce4ff616c3994b44d02c7d95186585a15432b162856750639048785f777f14b4bb447bc50b646168c43d2fecbad35b921b4323845ae21f8c159d7c79641e8297183e05f0e2a0980d321630b317ce6511a15aea79281fb2421eb835f896f4ce3e7dbc92ea702678f676828a9bfb14ef42c934475c76f51d420cc5d749b638164fa0663dbfc11042555dcc494d7b91918fb5c7f9534df11e02fab3ba553e36b7c7821e0a46f4c5499400e6ecbc356e15c99b4ed04b3169a8bb91bf9ae11221a206be3564438a27f5e5420227a1e3e4048144ac4b3bdf3909f8ba4b23b1689e94dc94d38d5084ddbe5d50feda1f289a7d19d25e410070392a2deaa8685f9b6fcfc5a0612608829736725ee4c67953fe94506e35baea4e58a019603eed6b88d7e8c09099ea1fe11d2e859a47e99e95d10bad335214348073a3ebed91c22946c8b77e4c134954e863413c7007133eaa779488359afdacfdf8871974d653f910bd2f6f673811a590075d2826dbee34c304cddced43f3e1074cb0235bd704265384f8f002008209c6aeb7e911ef7206e284b18b012f3dd5c21126685a8e1970a33d0e36235005ebc55dbe717118d43687ae92bcde045a281e0c0e385ad7d52985333fe6f0b6046cb737cab739174e84ab6d448b1a829c5d1208fae256de776023c4712c82d1b28f24604602b6cf07767f1670f15acea0c70479787f92247bdf013770546626324c0d8714a5889c955acb54462d8da51953d7d61aa6417c7e0c94b7316c05f2479bdb09a4d722d860fbf1666a5068d161cc959bff61682a022f1122d97d1a54eeb3206fab77ba92224f64d260308731f4dbf58a1e5e3f9a0752b649924d060b725830495d6c1bf91a1a3bc068ad4b42a9777a43bce10a1817a3438d1e1e06f7c23601d09291a8b02e340ae7e14cd715134984d0736f7c1e04c83434a2ae672979f33792d7f2580741012a4192f3add55b442592c4fa2ddd4697cedd08f9e76fc0ed2edfe6e2139c2f87d02361308228faa113e4475e308f5a63da2b9f39ed315cc2d59fc417202973b678ffcb4854e40af663b0427b036a11f32ccca609586dc8593621255e5a85474cd7ddc519aad837b26eb2d9f79f9f2749d8510e4f4cf423d8c312159e4dd85331fb8b3f2c89272eb6154f7c8147707b3ca19bbaded6c51a5322f81535cb0094ea00cb1a25f7863e90f3ecc16fc4bbc500548342a2ed9b40c89c3104fd7e27c353a96ee6ab3e34eedb13750749b98e1aef7c9f6ae96a57e2a0f408125bb2b3db534aea7982a4e026950b6c5d60b3da3865728851bf89b911ad4fae15d9033c858cc29ba37ca5283fb580dc2e9b9791974d58be8a69ee59bc33a1b761bcda116b36111743eee43872fb3cd2c8dd1e7ec348142df1c61b75aec42ea7b6c354f2d940064961565bc349c82843f1749dac83fe6cb40ca40849ec786a4e2e7521fb3405833d9c51e56cad7f6b7d8782d359d2bf591e629e0faf0ad660f069175e0e4d1f905e28d3b9d9d2a2daed1e3c4a56ea02caaefc7c33c05c2c768d04ecd26ac9872c225335d37e26b9be66951c2468854f091ee4c569d129816edcbd38092d84599a1919b2a9c422e9432145c4d0fa9f3c402837ce757d2cce431d3f330aeed24e9c96ac3817e02a36b8bd787857eb8ac2add06f7ff5e458fc574c2242ad7dad2443e688ae1138281789a9d21d654c689caf4a6913d75b471af2348f2531c2fa4d6eac406b70559c48f6c3b2092157494c5e723e28834c28d0b9b14007640375d4453d65eca40e7f48868049973d3dc754a11913f14df421d3583feb5fa5eda620fb1cdc6aa89c2d1b58a688f054acdd00c5270b31da9e973bcf74e044198604c4a3753fcf8de11c92a2b42f9974cd8a4300d1a6ec47611f2238ed2ae407e48bec3d5fdb682479ab5595c52fbf646947d20a88f05707dba370b356b2edf6eda1d872ae6645fd25e10909e4675fde81503794bc219fddc619d9274cfc0bab8c612a9225c6f11394d7e095e56c04d386747a86db9009b7f2148e7a7152153875e5e3e399bca0341419448024ef46c8ad989501ce65f8559d7366734c621ee29e34cebda786e8e4e031bca51e21bad831425e5969d63d7c7f9c4973ee335653bfec7f6c4a98223bde8e750e306baca600916e157c2762ee389c13478f62f7880f893ec322013b1fdebd3fac6a3645fe90107f56b3b55b2689cd928702eb2cc2af7757cb5b259c672f4a2e7f1a1ec57420d068cdb2ad358b5137f0bc4e41cf6af5bb59340d08d6351c89bc90029c69d78ee1293fa0e3440e7bb82bd74002b710c9c8a35cb113ebd7ed85306664b087e9c8870c2ac5527b7ea68b75390b9ea002f138037c044798397585b455d994a640856b05da4da55609456fa932a6e2eb037b68c14a75985d4d4ea47aa7bdf6ae0aaca9e7513ecf38c77dce9b7a045c478a4857bc2cace99dd8234851994b3509bc534c0c208868056d4662b35233ccb4d1a26c25a71a68fc7fd21b0bc2ad0dcc44c8fc2f8bddcdceeda1ee25d483b28fe20740a59716bbafaf3125f766c68915bde0779eb3ca2e03828b85d857596f344f2b5b8566806c850d9f78c2328eaf93964751a08dc02950078b4e05750ca924fc35746117e88c14d1be9ac7c1628445bf6b515426427f494b9b82f72f74349ad1fd242672951c2b020a6702e83a1f715c3358a933213f534681526946d08ffc180268ff48a015f094c2cfbeb311d13cf7c8010bd3d61c66ee15897dc91743b2757d036bf2343fc8a64d014de1c2ded1187a75312bc2ccae01d2cb58e0aded867f6cb7e46e63f0b98fa80d2213181a76301742f04d7909f66b0528b904d57c486f4b2f826ade02d147dd5c5748de205b710fc0aa22c74d00dd327bac8a953f5fa76c380c43665c5e304488a1a91d64c4540f79f969427bec25afe7007b13a0991f0a3b76ed52ec59ce505d00faa8ae0db3d659c209087621dd1f0da8dd7c4ef5ea49667d2fb9f5bcbc6586f28221ad8f83e59b5c6e458fa9389c6d274429de404811c6d4810cfe0625fd3a245670c5faf2f16b69bd4014c35fbb368756e5397887e502c3ab7094fb90f5e2d364de5aa6c1461a9e0c2b9edf97c87437e61e652f4df38c6f6bd934d7a0f226ddda96c458e9e367f4c37145de7f3ef7716bd5527eff79da9ebf38c2a207af41c25e732e04748502d3dd0e95b43db8ae4011c85907bc0a357a388e7cfc5d7e3d21b452e02cf155dc8c9766fba76b77d16a101415eeb23166cee650fd2c8c20a4e57198dbfff47d0f9bd5ab4b78535944f828e8ddc47c15f7c8801355f4a2237b1a056571eaeaa32647f1d89ff5a73e414a5ec9f44247833f588501287174d2e12af0a6e6e4d16a4bf782585fb53d58885c08f8d562f5d760bb91e01f3ea095682cbb13f0b6b35bcff95da3170103728737b83e7ebbde36b7d3dd1597c5d03dce93e22f3d7ba31226f70778aa20d4d580026297947a2a60e4ae516d5543b2f3eba74c6d00c59dc392790c61129382b70a31f6489ee1074c742d1c72ead311d44b96187db790c82f31b5b59118bcd1533dded30deb6f22fa9bbe6c2feb07b43c9e20fb0d481c1e1e735529a39b8e18fdfd2aa86871fb60cdc2d7359034d46d95d00b6dd41bda9f62a9459dc8c3396ac21778a71fd94fc17f3ebd1a501b1b4979baa0fa57476895c774bb478b15e36876767229cb1c60165aba275f4241d3712a6709410710f79f98c723d31b41f569f1158fd5298a2881341a0895ec018b1ce11ee4a8cd54d4d8391923b3647f7662ca697cc5e4e7a338600369e38e8b164a434897005cd20d19c417f73cba8f034730586c09bd59793029e1fbe9ebbbc8c4d290d0bd5018702754ad23a4d94705e5182fe3f04c335e3bd2f2f7e5d3ef2fc7fc02f8adeb9e89687ec6aa45114a2782faafa69a932656d4c3877f81c79180df89b0cdd27a133d9f29634fa6bc743bcc0b0632d02ec29344269f3ca90587ccad0f95e173a7b08b47c16b289a086e8e5a267cf2edff3d574032cd2b18ba6814a30e840f2531662843d983fe5acfd46cf4f98052520b1ed4d4c3b993a4adf63e6377b1bdbfe9c33f6caa2ef61acffc5d3791492fabcab904954af7c9173951e3cbfe6e97c6c215d88cf85696d7d7a9a40416ab5b08a836d7127885f66b08bac5e7ebfe8e770d2c42403daf8981aa4630a9efbd01ee1508f507d852c36c98e3cceacbca59a273e50b355f906520ea5f88088f57f81c8f493ccadbc4b5d8e44961687e9db62a63a5fafab09aed113cf5b3f5b442aeb8db0defa25a9cdd39394da32816f9f866a7386b717a396cdaee3de84f3b6d99d155610c05cdca257c715c701169d99c8e9d55f641a6b9e7842ea75ae774ed20ad6eeb309cc3f00ca6ae3388061a24dd6e08f27fb08bb1f107b5f716e17f67a6f7e2079345ff7f26a9f94d6ad4155364bd6aee126aa80761e828f1a354a7b239328198a3e27c535077e9f174101cca8d8c93538859a478abce0d69aed2352427d347ff1002fc13478cd76285e3b627829fb42f72aba821122b4abafebbaf7b4cf5770c1ae6e9e6f48519493752dfb506c2372e2d25ed97b08805ce503fe36d1a61ad3157cf2ca5f8f1ca19e3f6e102b6c21319be3bd4ac8e089272af2b4546189f2386088957448812eb43ddcc860764fd1d27a60c2d2918ab81e3aae47c3bcb0675f4bd8944398e1cc52f650c535e282177a29cb57afaf68159de60a6f83f8be76e293f86d1024f875bb73f385abdbaccabbe293077e85732891b2727c50f5ab9c5b3dbff441b2c6096b6f210f9cd46d44e408d795b1f2439a2abd522123109e09da4bf94f3cfbc3d98e8afe28f5c00d0178060609f41f9e2f594000606ddc808428e16ee954c60b83dfcd3afc2ff671065be7a62998a5fbbe98c808f6f5f01c162eb73fbb94c95ab7292938e588336e3a76649b81b2c2c5e58620b8822d671d8444f8ed7856cdc0418190b48978f07c65198909790a49f7d132f4cb08493dd959bb54cf5c1abfcb010c19419f089a88b4975faa0fbe294c1a92486ae476ebf858b5bda46c7e2f3d2ec1b62cb8255e69b8c3c463f0e4b135ed0cebda85329b4af49c3d712b5041c5de25d97285041d3df2985007d2e7157222891f965816c40c913f8d9b89f61e919c34b007be7a725c673698060b88b81867b7fabd548b37214ec0b1aff308ad916be052be2e521f650d3ef5d265749ff43944a8369ab19b0f38b41c5f34e1cb7296f93e1868a7f780054f57950cdb26dc58b8ade63e453ab945569a2caebb7c942b463ac74a988c055d3a628b63dce0a89e2b08d1686f0e838769aa450c1f246870972d1b90109a0c34cbc82b86f9861900e278d3e96d6ac4060e2c6d81c8f665da69f12de84f13ff959e4b5dc59288e643fe3d0453d0e3e5358e61f0cffed3aa5b074e11f9382568d7f716fcea728fb00b2be971a25f3ed62548cafc655db2a764a1c4fbeec7e7de6941cbca786fd4ec6509f87e4f5544d1761558431d927fb53a4e670009948c017db101156037c6b2da8fa69a228d962509095222624e2ebfed11ac01dfd5e1391865e6e82d9af42e18144baae540d21fe6a7c821bea880c858adfa9efb0a950f7f63fcb18fc1850897e6fc6023aec9388b10443c4c4b8e660bd926397f0411f1dfe331af408e2d90a00f05186c57bba8c72ef13fe553ef7ba37e8a5223e4cde6ea900c73f9d3a68e8dbc8f29937c67253ec627f0c058eea125ab124479cec91e9676d3d4c2c3bf15e59964a59bf9f9e86e8ed884ff8a412020f84fb7af53a9558b52765538736e558635305deadd104dadb95b1eb312f5450992064979607fa9258a269b8f8652b73bd25ba039cb3bc680be7f17abe9bc4959bab859efa38ff14b8164093ac1a37788b6cbd9e085fea1f8f318d8916aee0c9f60e4f20c18ddaf8a52319b98c01356955a8a7c19123349e9e2c15126c47e04daa2b64ee39cf650a26cad22dfafab16c2ffd7cb29639d241d090ffd16327647a91a4e2b73ebf22522ce255e6500aadbff58ce5f24e555607a9d5d11da54d64350f0e71d7190f13c0964679f688faf5b8bc5f1af6de093c99afe3196255170dd8bf5bb1daf75f89d874a5a4b0eb177ebfb03d69622d33225d6ba29a6ad4f285b8f6b71bc9538266e5e6679d528b321a274d0d2cfb9be0858cdc4cad8938ff76e604fc30a636c80fec66e66c0a4e913d05c54d7f72bb6f7ae72edeae08770f512c2c3559d7c96a24059741c0a0ec815a615a5436c8b05adb8fd8b67283b7b65feaabe4c559a361c733990346850f250e04182be49eb187ba2edb4557ba998a0ebeb7652012678da78075065689315311c5ac9d06f9a259549f9f1a5c814f3b852116ad05bb531ecf5e034b6e3d9a383cbc0354cd72747d3d30732d62666df306195b2d632c06970d8592b07f1c8e575937ed6487bec77575644b75efde3177b20b06a8d4f3376f81e4dc810b58ce94e0c2d5010c24319ebfeabd2bbcf8d5418e7217f9b2ce9a9e0a04957410e6a6854c01d14e202d899ee7e7fbfbacfd0a0fbafe01ab0bd26f65b8e2e4f4bab6db086e30094f74dd2383da33dc96c5bf512a2431c7ebaa8e11b8342c1268009163b59f7a4293513122f7abf075b82ccb60dabdf175d6039b636ae729fa6b4b7ac7287cb6dff1254a95cbfe61e679ac86760747606f5cd53b44e27bcbb1e166247272a63a2df29f81f7435d9757d8efa25aec9cae9724e1e6f2ba3523228997fcfa89296f93890191b30221cbf682eec120a7e9355c8e452127134cecafa2c578925f17677f43d48b6b006ceb26b4f889df708f0cf195350372664d21a0029d31d4d109e076f8ef01cf9c903895f0c430f33508fb9bf9057bb036b9294cf928db6dd8a84ad03920da1a8836e91fed42187e7617c34f8dccb6ff1e58bb92fc810a92d4e09ef87b96a7129c0bdec425fb9ab5c9a00a7d298560fbedae4d5cb83f35eb140e1159ee0ceabc463bf17e2bab016c96364a00db39b61dfaaba0e7d21743da30401275270dc08d12109126625eab25974657475adb8ace9158480fb8244f95701e3a04ade39e4a8383286cf313c764af6e823cc3aac9751823ea13b714514e61920c8264a536a917854ba97fcef1d1c6c4ccd5e7b8b9bc6d6e069ec60d012fa83a4d31520bbbecb61d24b4b2577c1918d8b6a8f51e5466105f37f53929fd65aca14906e356f6561bd7b844681f30c642ca06ecd31d1c6f024f48c944cebb77aa6888b4e2d2738f8242c5bef938e6dcee5338b28f2f1b88f06736d86417a5953042ea9effd0f4eb963676368afac5f2eea25d1a91c98697a0f43a61b648aa14a7313943e5b024d110b57b6aea5331741b25918f9f8adf99e78d46f23c61dfcf0499e30859760410f8512d2eea384822f4183923c4e348ccf24764443c296a47a56e3a5f91d0c82568cf99a108f076b815ddc1f1eb0e438b3ecca681a104c4980e00f5e622fff9628732e26c84353c549d1d204e02fb6a3183e9609d1a3597c368643ec0c53d0f5dd3588bcc4e3b39d8be16a6016a1cc77245e4a251129a6e2bd7202dac2ca6822388d0f23c9378d3aa690245360dae3876b6715e65a0fa717f42200c2d37681b44703299ed987cf333cc02e3669cbdc93bf4e79f4519d5bf997b6fd682ef03e81e3cc3d188431f1a46a5c02f1accb60053e9ca7d828f0b99abdb16a012c8f76c8c2487b7cbda000dd4dd8c70244c5353b46e8759021de70aab1a750b078d11d9abf0dfc555f3d70e07d263a4b38ad89811a6360df6c5b8973311720143ad3b28f8facfad03a3c243f75f299cebb9a5c0a7499afd0371d8fbcc5743eac01afbd73593995bddad4771503214a925cfb80e28c83eb07ec76ad24d128c041d680acb27039ec485c42d28868c10cd3bccef43d19a817f2ba3107ca786fc2f299163e767312f9af907de09985fb2b01195994c87356921667c0f891d2caed5fb43211236188345c146fb7b50df3de87b7b6f4201d7919f4291110a223b97f04b221289caace058f7051aa946a2abbde6835e05ca6c1f46da3227c57d4c5d915124eb4a721e77ea8221210a79c66f68096e293d4ccb95a0368e96a63d66046d25c387c0a4bbe37903c2fe91d1d0ef14a57d539cecfb9a826c4a09d8dcaee3e6ffa4cafccb7fd43a60cfcbd8af0ec7054526f03f904c14ed4f50ca4cbce331ad456feb64c581d8859dc491bf01eb602a2a1589afdefbfd54c1df0ece9b63277ad0bec082f35d444d2fcfdd8c9f4a34a44870fd4252c42a0b44823fe212bf0cdc7289903ea776165775926c6b60d8b58c46664cec84ebeca4a2a92bcc82ac9946efb4094878bfa493cf7091c7d499abc9707db8aaa0a5b7391bcc5291af8f7155e29366eea938bd0c9f4a95449fb8207273bd28224a9a2ee032a9ffe8dee068cf5e4966c2e91d8e93c7722ec010e0a0677aea2750f91537de26cab85b95f09aac1471ccf8a67412fcf2e3aebf90eea5d60eb3002edd185883185dbbe450853b80a6106bad35704b5121056d5e9c09a6d66f688073e4ce60586af5243a28e99abd1a750312a641de29d128a9beea15514997cf89258e91c627adb607b2440109fb3655841de0ce38801686aac058852a89493a6e9d05887ca5f44052c8b55c4d388b3d4669f230bd8d4584395c853bcf2bb2be56db18e0a4f833f15b0406e3890d174e64a8a75e38e342b1a92a1693423c6a61e78c2ee8e9608682250a3eb0d1e1a32e0387db624817272b6164fb8daab66682ba160365df2e79f8068ea12eabac020b424ac3aa0f8c3e264048b7855e0c68dcc8dbb550010ab469c2762f072de1e74794ea27610432091528cb2e34fd42329061d717baeb4288dacf9809479d4dfb8d07dae00c0ac77e35bd3228c26ec5d623fec08d66e80fb4cb7680695f6b082cc95f4fecd7a1bb9792788c2d741f99fbc25a3ad07658ac69d27b15cd7e21c553eabd5b7c1711d0c6e0f2ce2b05c0d7bb38d72bfff6861855bc26431f52394e1b794e1090ba1b01b74233e0a3401632c383da107251ea1d791afcc09fa8403acc75193b6826a562081deb3df61528ebf79c99e0bc13efdb988289f4d2b8267a1b37068d00994ff1a6f037a610a03f89870c1e62600e491c6793380d28fb6920f37042624b4ab3b6ee02b780ec1d8f6f54564feb23add1238981ef53e0270460484c4c465731b6fb9d1856ce044288efee042b2205baedafc6921cf174c368a9a582a57df77253987a4cdf8002e12399ab6e4b3573f11b8cfee5bd5351c898ac9b7754c2ce7a96b47a09a99544ed7ab77f0840bd94dff59c9ee50315d6f27c7e297f623dca2bc16363eda769ce4e798f27026e4406e623a7fd32700dedc6bc4fe74e3cebda5a61f251aa2a97e8e2d958a412bbbdde8b64931f32036699cfed10033a3f404fc1ba7dc4e23b29ff76b46226c56e3641efa05c9e138cfaedd0c4922a8a17af340bdfd826e230b40da18e16e63ece07ed5aecef2d05340ab61ff240342013d007a4413e520c81ba0d130883aa831da9dd9a8c401a7703d689e08c2211e22d892fb1bfa341bc5817604bc7ae4850879376d01f43b702d30889100c628798e3700d94130af2821cf474105fb661c8055c591f8773524001e2f2e2a7ddc61fe30fd48af1a08436c9f9c69aa4c95534a918308455f6996483c96817f26f8b7f9c65dc8a4f7a7500b30cda774ba17f6e1c9f36e5ff8ad84aa3c6c3f6716c93e2592452ee11e337e217532e558a1a44b814fca519df5669b5c1fb0b38e746d083829c37536c7fb9c68ba9aa88a8a95e1a0a7fd94e13d37cbcc65dc5001cc5b56c3ee14f039e84e837ebbd365260616b6a92c529ef4a8d0c570584cdc3e5ec27af74454b0bdc710a42887bbac8b82d869c337733ff36d97f790540f3063d9824956820d20c010ddf4ec8215cfcc2db371788078ba0135f5b711a7034e35f4921665556f9e20f23489d83663d0068edfc026b34ddc2bb1a867870c37dd409fe6d77db4032c482c62b4e464a2c2e247104c5ac8b7b8d77eca7c70bf5fec396a5105170fa7d2b221ee080683024e0413274b60256833a749e082c0735d11c9ccb17cd71eccff104f01d9c0fd54311653551a025379bf6dc7b33970caa6693e82668a320d79eafbec5894b682e32a038c7cb4f5d17526e5a3d8e4344b7e8f4934269cee47ec8d577b9394cea0f909e1cbee48fccd2ead5c9a581e5b8a6e86f4b57d8fe98ee294f7fdd732d6b757398e8de40b3d4773a83ed7d2691281d4d3f714329ad42bedca425a79991eeeb8f61ff012b47723e586cf846c85ab079ea5946f6196e9af443989c7469e819849f31af1c2b641c309b5325c14772366b98cd2a82e1738f18f113ff08a067c21f1f07d15544ccbb98e6c52905a4b7e9051aa64fcf48a375b181230afe1aaab877ac9156628bced312dfa4c3a6c5285d2d4184f3cfdeac86842963c986e57029c6c8135ab6d2dc994679ca6fddea366c900786b4725d7cfe7c5e9a5594856c821d31b65d7bc1391a0c09df7fab113500dc080de686964aa170d3645a97cda7454fd298a5e769ef48a9b09e001b77003a38266981f938c954abc9b1183f8899e16c90cf5f6fee7f89aea92043ec1e1fbda17f776169f780b10bb41f05379c97b560b99f1444d5781b8ccf500e04c214b86d5cd6db28ba7bfa2599e8b6bf236f8cc05582999570b32966ce756f3cd1c1f5f5a99ffe4f89fa0cdf49bc9fe84a04ea9edd1985ac1603eeeeb04854b89d9701160f977bcd85afdc2dd5ab4116241a373b22104bf1b55f8f2cabcfb8d4ea49c6fae0d6485355f2e3d2dd77922bcc75472b9f7f1f5b8d4801a8087d87fc39a9fd164017a1094fe79377cfcada3204b9f488765ee8cd690656be1cf56d747a56d02e4817aa5ef7567e8dfbc4d224bcc3580f0d9e277f3a98f6013b5e39d536aead77ef79ee44f64e8d51aa07f5779a90edb457502ebd81e696bfd0eb0ab2f86d2366bbd3350f81fcf5a45e3bd436989467ba98aa7ede2ec704cbba7202963ccc8d393d65bff8772c7b91ea19bc21096c2e131ec2c23d00a76e58a310c4387726c12f9687b001fcf8cd9510edc85f64f018a40f6a1dc65bed19aa44a30e5cf2f190984b59d8dddab1d44beded859bd823639a8bb79e83c882e260ca30b5dee86950a1e8df32d9ea8b89c57a489572709711a429fe2c9533dd0d4e879de5a241e55a523df1b35ed2d8d5d4f12540c175ba07ca017bd3e5165806d02fe6af20ddaa5d53e51643d2daceb249d1f516386f2f3d231ed380eba71d664b3c832d015a3012fd15ab8db4a43370f1c2817fa996d19b2a780080f9627d0788a48e26bdd31f44968894cb94c8aa34fb6198bff8bcae73c70d7b7a1a1343e2379f6ee09f43ef3b228c037320c5f43199c8b2872f594a3ace929a85687cf1f7230c6e3c62e0b10cf8e9aa354afcedbe9b6f6fd91fe8b9788b5028fdeb6ff9b5188281f150c70c621c09304a72d6f454a2dc962728d6e2e8dbefe77856f0cfda5156b14cabdedd0630a0ade6c191a903764962dc953ae8be92c70812912e0cef254e833e16783cb7592f2f2e800f7f8276d888a86b3a87c247fde4ea2410fa151b611474125a0c985174a4589c156789369d473a5b1b8b8d003c771aab9c3d1dc7727074ac946c67a2289618424d63a1a741e4b265f5af3720789ad8529216fb90f95f4744bd6cc261cb895bf2d992c3cf1efef82f390fc593bdf43809b0ea92bcc97b17d8ccd820e6d3f441550b41742a7d27a5dcb58b2536e760e9b297d6378638d490adb3a6ca7d80854bb7b20225a416af286f1cc862f36566d3c4f5a7f061e29b42172c28ba99a5f626458c202b4f72a7d930ab584e35f17c4009ed6b3918085eaff456d1bbf6096519ef59fdc9df23a5d6b70ea026e022aec9dec93959aac81e223c5c003bc3731404f4376561e8bddc4f4d8985f98eed5b6744d19be13ae1cf69b078e6b893e407898710a037bf179b864fd1c91dfe6a42b12abdf5f928b10905abafca931d9a1248e8c8d078a8b44cce676471c6c3e19212015a09fd9c231e886b15f9a1c564d5223ea03a448fb71b8dd0797666ecc797b7f846c27a28a5733d8f5aba12ded66d134c092c9945a35732d68d56f60faa14c1464b1d3e6358791e65ccde82b2ba74b05393d8d722010090948d2f412e80d33354472e906f61cfd825f5f1cdc5c14845f91f2b1f4fa1d67ff2cf8212a240b77d238594be8896ea2e03c09c246e97b77a3b180c0c3c26373b3e354f12faeb72aabad4c88021b5ea84947ea31bcc895659501c6a39a3cb537fa7fedc0b3c38abafe63a307f10a192360375d953168470d67292a7a6563a42b2dbe913364487e462881f97392637ce4980dd5966a2b5a3ca3675d5665de672b8f68fac535b8ac6b10cc4531c039710476a9c306f10eb8fb7dd199b3057ff95e84ddc0122f02ec322ffdd3e4f77139afd3f01d18c6b8456a34c793f758a3a6ac3afd018ee9ba4877a69464ceb62b28f5ee17e321e6d70d99a92a2e33f06463a2fd0a8ebfba7ba7fc6cc80332c959b5a96bce7969eebcf46c20308b8fc38b77deb0da08176654bdf203ebe5c8b1aa862d7ec4593dff3d848a30d2d823ff2ca704eb4e0b1da82d07bd1edce160d72fda76e6f49ddf60ced1a69f232987667bdcbb0df4d92e7ca083b8c808da032208430cdd6bfa0f0ffc21989be8244ecec1d5cfd6c33a27fae1ead61bb1513aa47b416cbb75c7d54f75a724d87df9118cfe4882f6f0c7123fda9d831fee3ac73e2227940b5c4c2a5ef7b58969d08160c809f7f0a2049a8574f3a32dba72903c07452cd20b358ce9f6794316e294c8000e4de73688a4398e2134531e606009fd216e0524b9d861e7fb5639fab3a970833c0a7fe1a534a7bfcd75070ec06903fb88eb2fe4b2dcf06b288f4ab10fba74a3d7c8794fd17962d53719c21685274e47d3658feb7ff437b2400c156c97f1e8c7198f160e3524707186167bba2317b134b4cff1549b867e74d27141550f669dba8201bb498a6c0f82f31c8c906a1238f19c5002714550e7bc808482c41397e2791c7783f00041f022d2a7662737971efb3fdf94c30055b64122795935a31a04a9b8524f4a592217b45761fff09615413a5fa21c9164327b4ab331a9e303ec550e3220b54b98c5ce4544c566756bb0af560ee05b46b2131afa6c00d13e0d3922c7f6648350e8ce9587479db97226663e2d3421d2f2ce1f0dc7839d20d4b2a5e4445d2b1cbcc5212814060a0246f73e0afb21de616f9174e240549afac89ee484e634388267fe3bae8caf6f4c620eb28149acd42d1dcd5f35202715ab09904290b194f86c77145e8a3288290a76cfc09bf87929c34041c6ad96926e47233b5e3614580243beec89d1b4c7fbe1e2a261d4f3332583f8ab6964f933f8a0c3b41a3254d1c4cacb0504b66ad002b0b08fbff746859bf0f49c7141c1db15c30d1068289caf9848a20bbac1ee630ed12ccc337686f5d726ce3eab620844f429bfb0b01b7bc152693c2fcd74fa31d8fe1b6ed1dfb8816d83c6c310b4e732b7dffea46f4fa7caf7455fab292816daf5654fb64e4ccf25fd3d50a5760010f36441d25c6f39b95bdf0ba81b3b0920377ee9d8370a525c4e9d472dc6a3509c018a031672a7bf659fcde2f6d9e38625f6cb508a62881c5a5cbe6e6878493316cf1469fbe3faa202d4f0759f1bbaaaf3914f7b62c7c4855786d60c1021ac96957b10dd563c7610e3e867eb2716998d654dd382b33040a3185746a7d948d6bc587840817de71d71d88b366053728a3779475bdd80331dc30e1dc8bd5ead94a8411e755cd69409465a355a5be620620ae5e1f51a7075b88af88483970c6907bf41c14da1311b629b77660f21e2bb75e450115d22472889c52f77f82115fb03677732fa112355c7342a44122a1039f5b464b258af6523b56c8701d3dfac69a9a8842e551688ad653b3d512188e5ccdff9d635584447fdb045cb80b12c8fbaa566ffff901d4e05015213d270d2ab9c0e59c4dbc65829f41b849e1f0cbccacac69c04d5787a5a7528981fc4140ca5344b7d2b5f9675766d3a12407dc11daab3006bd38a78a65d60e9004dd3dd2c5d29a98641b2f32559270f71eab4a0e14b55efb016ae7d23a2aefa4ca2e6bea74b1449af1b80197b421c35f9918542bcb130b23062edfd431ead0a2beeedd100d09ed0a57e131a30d87b6c5b0b8949b59e6836b68772611b8d9132edbf1fd3c94e0235a3c444d93a36c60da6d5e2328ef1cdf384ff5578d50b1efa74292d0af5670f73c161025892c42e21d5d55ba456c8a9f43d7c4e68de8100f6616fc83ded160ceaae005e5e6e6544a3e1529de3b6a86f8ce2d169f9a914d2adc9623975263b1e7eed3534fb9bf9b455262beca5a10ff90f959a57950379f832fa57928d43479c16921ab6ec650f0661f1ee5fe701c40dc4260691dcaa2eea9785c74d707395aa469b4f8e6403af327459abcbdb0167ab7e70d843207eae85dae5e888e5fdaa8e2a8922323ba282ca031d14d6144b83f679f8376fab42f1176a53236cdb9c2b3d8c8df69e0432475517a783466f331c156c25a3fe75a88cfc07c7576e2d628093dfa78db36f1e39781dd14a4909b0cd72bc89ebcf1f783634256d5a80026109380ce757534108c7e324de663d73648eb167a8b1e249263c53c26282b39c73c943ba3dfff7a3011f348ac4b07d21e7394ff388a8d54e8c743c27372f0354470fce0f96fa15c800ff3da0a57ca852cc01b149286cf403c660334e2762866fe607bd81ebc05512c18751fda12ae4a5b65fd9aeb62122f18bb9ee1f8b66c9e7e35b21cd0aaa5aaf78f45e73ef7f5ac39bc1b0d54710e718c441f22449da29d54b0d3713729b8aaf2d62eb479644f543bff03f34a8c9ba0496721581a7d47e4d4a2a9661dcc41c5da35a47b945f5d69325ce4fac2b8118c8faf7f1d59ccfb762b408f99821cddf2b0bb43366b1afb4fc1683c6d7e48aa59afe33719b79751bf9cd5494576c29f567e5b93b7b332c2321d67b26ca5d8d1b0a13db2454926b97a06c453fce58a6bfb5908529acaeb289412c7df85d8d35e050b6785ba37a3bc0fdbcfd744973f9dc33f5559fab18165961a019a2fa42d16ba499a891bfc4ae8487f30011f3f776a83bb52afdde0dcf6ca72cb735c53efd3b60dc8f0e862aa12946e39773ff9bf79c02dd2c2274ed0a9177337be89431588bdef523e4a31a0b2cbdc4ad3940be8d933a5b6c3dd4d960b99907c04467adf6a7ce78f64cda4004f3f66d20d97e64c8d156d1b0bfa65ef6231fc18391bc166219940d13a3d97e6eff25c037ead2ebd9b676df09bae1e88ea6c42b434b6618b0896671aaa499e319e2da268fa7ea16880553d1c37db1d735f9502403f7b4d892fc90bbba5cee9de5f11af926740d8c4bf266659c96ab59cf3db33566915937f7a5d0a02da262944ed1e4ed84ad3c410af8a7053edc97d5c72c013853b36d88a5c20a68c93f573f0c583d9b6bb5619193ba452764ade7419ac00636314a66bc2d20d8d2674891c2be32f4659cda48149a9070fec1f82666821f38efdda66682863410cc0ef4d299e1e9f95ebc0a2adc622560281686afad4f42c478982cf99f2c83bb09796f4a62709fccd039ade4698551040cb6c3aa1504902331a6c39f5b25148104d36a2074406a77d2a8d1567d02443a3e6d86553f90729b77b4cb16a8bfc5384fbb228017f43cadeb7a2c5e3e3686b6fc4e4c297cc1d8f7f14b197b42de59652262903fa097b09f4085f6d6ed66cd6e4f19aabb92a93d99ccd793959cebb4d20201f9f30fc97c930f66eda3f48cfa7342b2b2b2b97cbe598989898eeeddeee4dfbc3f0364b26c3d866697f18bc2c1b1d7c6a9d73d639c46914f69276f6babcd707f3de7d5f61254cf930b00fdcf12a56645e06dc711eff2af746e9303106f1ded39e50d849e1d8cdc1569cdee10036336fd7755dece0837c4a2967fde6f5f87ee549aee44b4e8b334e4ea35a9e9cc6c1c7772e0ee5514ee57d74d5422f92567eb16492d7ee126ebad2126594cb21afc95b848d90e4c5c25ea0b6fc2aaa268768a21d2525a5982b4da259346f1e7ad224b2494c22a1e83e7edffc5b3689268fffffbe58b67ffbe80985a374a324a1666d424d4a2489668dee8b89e816cd02299617adca01587f809508ac45146af2f8579761258da49d5e2d5dc17ce47c055e7ddeb747de9847deb21d79bf4ede614ede3e9142e1e47d6fa05c194afbcf2b1d99c8b321aa21a24a97266f4ca1a03e0a259327cd5bf6417d0fe39e24022a1f82c95b045bd20a49cf2fe9cb7b04547268045bd10ac9ab5a2cad1c48590b7e4a474ae79c538bfcf9f7de59e752d2c44574918212f45d4fb0ec4144458214e017bc7296c0f2b7cf972103310bbd6dd8303d27b83d3db74b4fab5d35f51705f7fc5dc129b578fa763aefe9db4d4dc1aa2db69ebe16ecaaf6aaabaeeeee4c3acedf9d53fbd35a9bed6bef7ed7ffeebd13a49ff6bc69d03633f9f4fced57b4bffd2e4c682ea1a4fd2dec5fde57c1ed55b4cf5fd2b14a49ad628c732b06b78a31c69f5352cf365809f3e1b9c0f27be8802505a2849d8b8e392c60526b0cf28b022ed7872f677c81fa52692ec69ca65704453af2a0c24cdc8b8eafe8814d629cb4bbd69bbf0596461e7a4ce00f762d1c38268de491bcb581756e32365e93d657223bdbbd8ed37c76d7c2bc605e2f0ff62ffae938cd757418984c6390d70b9637083e70c2845c1f5fb3cb498249ff12675bb0fc7945ef7d496b77f19c73ce79fde9bf1cbc59e606f46cc39513890e8a2e37745ce4e4106b95545e0b886217518490e3890db6aeac7250b8610ba2d65aab0d4a338081d6962ba4ac234a9025089a2c5790b254c5e4b2c420ca14234685c7245d80428e2caab290030b95ed0245133707851447f5c3dff9ffc208334e80c69437ca20c28ae1c5afe1c5535195a9578c34eaeef53b29e72d4aedbaaeeb9ed0c14b61062638810ba6183a82b2516794e1c101e509203ea62b4366f0188ac3c995a6293686000307f9c41345dc2794e8a17e35a2e9ab7243b625c0a10987ffff1d1a297abf0fec0629e58cf16a3a7f9075b5ebea11633081054b1532100267c368bae1956b2a32bae9e2147336ff7ac1dc08b33ffd37461dd7e6a3cb7b794dc70c4dac06c7622823db1468018338c6a406fc700662e0fd68a001690c65f0479998973f23833fcae0bc43a06362b20e981c3405039380af1cd4230538c908f50bfe92388fc36a0e4a03e38fe1fd2993c59a691758078e987b4fc42f4653b038e3881eb068018618316e83cd8b2a3c4c39d1458cac2f8cb878dd14a32bba2e7230f50616606c51c9620616ca89986ad4e334461b5d6630061854582facdc4e0533ae882a9203eb8a14b68b1890aea6f8c1e98c2a52b003d2ab13c3488a574476d1e84975a36802176fdcb044953178b8c27261e4c473a3ca839436ae2cc30c1a1a9db2458a17788a4bb1e29346dd1c52acc4829046c82d529ec0ba29524a8aab934651b0646e4325892e529648e3a88ae512658d3a25268ac98cad2a8cb66ed822ca18319bf42103a321b0aeb66061458b2861504aa90cc7205f0eb1700e116f0046171fcac8dac18b2e5944b10263e9724a14251a8c748fc2c872258aad8b0aec539424ba2da06ce5d0681053046e5c599165ea091c54582ca0b441e99c780bcf453107134c494edca05960c0a4119018565a08614b220c352c142b3075ca955078b041728520c0520988d2704a228c2b5b86ea942b7230038c2b387ab022841628363aa5fb940900e1060a5ed0c4165c1056c4e149244e40656103ca17600c5571b3312c86961d6e68cc18753adca266289d530b1d432af8020928504051b25460a13192549278d52072a47ce1840d36dab8810ed6c9ba5101d658e28b195855ccc84d71f34147a557dc866c1744f51a0051031715f6ceaff83843d8e2e9e9c90d281e5860a5c872c96250b15a854f6122063c8421f5c40e57d8288068c16b4af72912882e7ad068104ea569e6a36f5da194d2188ee9a2b3a2e2507483274fa8308205442d6802c288afd65a6bad5d5c4182249694c2b0c205926ab3e85aeb03d55a2bcf096e2c32715bd8a0340503a422b8c0c189140bc5176f5281830555457461822d8a9426a0050caa9c968478e3064f3c510396461838090bb280228a0c68f0f402cbf484aab35d8a3119510daaa939d0b0d272461355e975040e681441cd400a24279e8421732bb612bb1d9e70b1479e8062102ff096e9ceaba22e40046e0b2d2a737429a389275aae5b91633c99a24e893e97aec04ce91ec4132a2e1aeda644173c91528bc8ce084f272e0083073592c0820b16396a605b386a5aa3488fc3d2e84f3bf483154d8fa14f62c70de9cb0e34888194dbd20aaa5b7113c0541b7ea0224513d1961690a16599f0c255271055c0b016383200cb0735709092038d2d24f8a1c9a795f903131e15291cf10489398894c0a1882b3f2871dda81383628164bb299e002836a86a30b5c45015a51f8cae91dbf004175a6841438e2a2ab862ad14bd011344bc420609892c5ab26ca19554a5680b365a22450a7008620a252bbe58a2288a8ba511454837ee799e97f7bd32d62a7cb0c18c4b231f0c24dd400e28a8b690208d242fb68a569f301e68fe20a20b568e07216e6128010334d09079151268d626952e5b9c10b9a185644b42531a03864ca448e66441340216a50b0ca2c0a8b20505160932ba22d2082b0a2756a8608e147479b2388f438c4be515b10c2b3034da492a415253a2487d7183e206547c00423625e6dea8abe927715c060f38b4d8e1ca961560810612bb83540f5a3a349338858636a251ce49a99637ce18239d14c9e39cb18b92d27ce3c7a71871d377a54f1be79cd3bd5cdf9a439e47b99453b9957d0904e4e3134e0178918e8fe565cb876c9414955567adcb262d31ca64316f6ba57b8c4f69b5361be988a4e34cd2b1288627587e0b3d1e4677f729b0fc283d8784dcc919aa68f3d5c4686664700c8cebf86c2e0cec7bb9bc2b659f0e180934823ee5527766281d5f89c9e9e95e4a9dc86f7e84b35731da749c9452aaa4e3e36ad6b5dd3be5bdf74e4a299d382098f143df1aaded2ab536d3fc63478d9e303dbfc69af73fbe9c5dd9cbd1ce9a8c3416c989dae7f4bc0a2a82d042ffd0f1e30ffd5728a5344819e2e3e1fd5debc459f07c2a3c7fceb75df552a594d2e5ca4b4d5a92baa17ab1575d4e39addee572d7bbcb25a71c9a585eb662f0ea72ca29a72b4ed05daefad473af9b33668798dd5dbabbbb94d2dddda5bbbbbb4b6a9371f162c41f94e622d1a76f4a29f5392fad9ad61a033ee4b5ae4271f15abd9a3cdd4b2aa9282e5a9a962492342ac2f212b73a2239e4b5ae7b189c06fb8e4aeac8901e9dd897d47d259a351ff2a28bc1dc49ab57eaa1c4a32ae9ee3b28f94b57be4ede5816713aa8a82e4bbe2cef4e4b7754d6a63b391479e4db40d540c572f7f56ad662e888e64c87751573f7b01d579a47b41cd2d564f19033404818980c96a18931c69aa7711a9aa7a9a1a9a9f922e8efe0fcbeeffb093699f20362025c9f765f9f9c16b94039cdf5d2e3e2b45b715ea896d3622f9f6e39cd56879c36f3f22b91d36a5e7e2dc2312fbf1ec1f6a73d2fba5eaf04f6cd1ad0ad62a04b399587555758a06779d1629a35df925ff6dc1ad8e70c4be5e2a1a45bd556872a512dba25e919a8de9f964f41cf51ad15e0992b547df250fef34c917f73b78d57dcd995a9fe741d996c4a4a698d612ceb7ebfa281d4b1a68ed9afbc9881fa1510a629e38471bff22b261fa8b4ee232a0bce471a598020228b4d5e28b2a4df308ac4e0e1dd2cb068fa964a09e0a0c11b666c612be24b1952dea041a3ab41a0b0697aadb56f9f622b91d0f60905505c65b16544d30d482c19da4289425bfb40d6567986a61f9fb072f7d5f2fe20c33da614a1139349f1e43c116a0529723c644cb79c78e96582cb0a4c44edc04b4f43e04461d3593a43ca4d16a59c25ac23d911ced0141d505cdd0c81b361c2c9b05041448d134e3ab08c0125d6f46483c5ea09cd95ac1a2c6f48998922177302458689a689208ad06ae20920568802d7c493d10a4e543521b5c292ad092b29474dc4f143961343b8154800e544929193134e472b6481722237c40a501c39c106d20a4fd8989cdcb298a64059a1891c53952953283159a1848d098d2a2b60817a62488915a6c8fa59185fbfc709bcf1f4404729275efcc95adb597b7f663ca777abb5b63ab556ca18adb5d6facb7e3fe39cae1748ef7c5a1ace9afde8f33e40160c9a3c8efd7fd24a6d377fd6229208959b721bbd08122186a1fd7bf8ce06c52051098f417ecf6e533d2307961f279ee34a192738c618638c31463c6767abc80c55ba6de49cb3ce3aadeee8d45eebac162654ddbeeeac1d15a2738f521983dcbf5e8e31c895924e710d47ad594a094775bdaaeb0695f2f0baf5edd2ed5c7a2c425f7e916e5b1d8158901ff8c78ff5ad6b9aa3a5e00b1ec6e03ceeef1fa55aa83e3e7ac69f608f87a1fd3e5e1abeb2fb020c1deca3c5ba9776b5eb2a076260191da5ae9040efdf19ba42c413f67494ba028503a32b4eb09296eeaa94524b29063cc4618b8368a7095b1da594ae42a5aadfb192a5f7fb745d7c28c38ff165f2822956b035c70f54bea06470b99288ca0f301c1530716bc8073c050c122cc04a40f12d9104eccae382a6b78ea6f9e884a60980a6a159c20d4df332283e76b9c9c8e8ada3657e47cb10d132328f958843cbbc4c8b96f9775a944aa2c115347ba5f1c7c084f0a763627ac7748c948e914ac20b1da3c4113a660631eb49f3d0302ee80b892268b87871efc5d6fed05b47db1fdadac758688b33a2428490ed8e88d2751e71d3f1c64821af4c1f216bad57a0ba2883e82a8a8c1520a952bad64ed75aab9433304032254130828a074688a1e97b30212aab3d60e98a54024ddfc284e8f5a9508090e2ea86f4a8b18aae654815b185c4a4eb7f58651ed6a794524abb809206a594d25a46ad44d8740575ad8f91d0558a883874fd2ccac0214a0549b4808c1cec183720accf100ff48e0d11c50efaf804322f608a68b04c08a728f805b71921c08012d306948c1029b8c128e117449912e2063ca4c0c4950e443ce1989a2852a10d5b15505488c1511852aed0f04105ac273680b8923ad2eac18683910a2f780aa2480518dc92d8410537aaa486b85294759b3c11cbac5c4da92a32b8b19ab5abb573c2311dc798238a080cd3718c39aa76b4e0191dc798c38d2730d6718c39e6e8a46c40745d4c568322e7894617096f590d969ca772e0025b117a3f0b2420aaf245f63ba08e523639ae5851b378c59d38bcd8e6276b8ab00364373212aa4a7e117926d484ca9a505031480122929a7f491b22cffc1db280985bf69367febd18cb64ffe1ace9fdbaa6c1c0148841a64c15a66fb58409a550f3378def5e8ce50cf2d7a534f4018a3d0d0cec93cd4c23936f4c86c9b04c43a7bbafe076282ba379632f0c7d7ceafb15b29d4d8e729e59abc04e7d5620f2cca7c19c2fa198a1674d8661f2c4c8c0bb478f58c4ff36e3304ae06e3556263e936ef9fc5e2bae7f5d3048cb2ee7dca7a1d337067ad1d9bccf8aab04f9f72d2883f43c6b6df5f296f63b99bb2a68aecba2fb1cfa1189bd2103c797ee3379e6cb9f5986797038fec63959c66d49d4f59f6cf70eeed741bace0f9a39fe3474fa7397d205b8faa260f793daefacfd2551db2c840679d3eeebbdde163a3d8b4843a72d189154e1858c456c56663ec8af2bf4017aef6f0c0cecab385798bc7f873eaefab4f3e9d73d979e9cd386e1a4d23dd35067728e4b29bf2be3d687ce0430347238aab5d65a431c253063054b344022cb9e208a2732515061230643383175b1a24a0fd60469784d6d244d1a833966004713eebb8287ae69a9de80c50c95a62760a888f1ad11078d91d218a5554a29e527a794726ef14a0188123e2260d2f3e9ac0a2c9f32f19ca66fd478a3bb74e965af9e276f76cfdd5d26bbd77b9a3dcff3269697ad185c26cbee3e671239e79c93d2e6b725715a4ae939dd71f19042794ed328b1a571c73a01473867f599021ab5b6db942e9374fafefb3e49743bc2b9a2cc0695f362787d361096e1628c9452fa5198b4535e74ca1454c919e3cd8f70324b6ab92dc87b40e54459256f3a242e66c55cda748c53331fa16011484777f2a7486fcefb82f9f396e9daec1177e4383fc4c9db6703e98993d974d86c319abc65fe1763bf30d9366b8ea3389c0de7a2366aa3b6a7a7a7a7f7798a4fa10f106ee2266ee2a66ddaaaaaaaaa9eee7d7a72dcac51dce4f1c7385cc5c9701e3ac5698aa3a0a4b97a7918e9c55f8c917e4de65ce343e0b9700c8ce7f2603039041ae6611f0393a39615fcf80bf6b4beb83e6aefbda74ea31e7a395ea22f4b7c81712bf58a3bdbcbd2fe2f204ee05d8db427f995d7e2a4a2994a6fcfca51c233f2bc9b1958fef6b2aa9117afd55c6e2b5787a894d76a5616a5b2cac2d2fed4c86bdded46916e34e9b6a49d3669a75a288dd2fed38bd7ba3bb7fca794d73a2b2ced3f9bbc66af16ccc52dd3e4f167ea611ae2ef5ebc6673f568d63c990e8e799677c3c594b47763f29ab4f73ce90ae5dd9ac0f2bd5cad59b666d5acdbac79b7dbcdbbddbcdbef0f43ef76f36edd2d376b372b2b9795cbca9ab59bcb7559b92e2bd765dd66ed3231dd986e4c4cb3766f93e7c6c4c4a43d44c0047c842d51c0bbf0416e75cffffc3c0c4ce8fe64ddf3ae9f7781f78b1c79017cd03c02464d048c5a01e06612b3d0097817be06ee1a8cfccf13015d2ecc3e0160f410e8efec8d804dac76e5fd939b587ddfb13c9cfd0c0bfc3ad2d469f25047801fc00d303579e8b380358f02fc96691e403dbf7d7678e4f7eb1e417a78d0e3831e15d703854fe155f8d71f4d1efaa009bfaf064f0009f05ba6c1ff48c803c825fcbe3a7ff4dae73479e8e7117ecb96fcc65ac9efab5d559387be8f8fbe65497e63bd23c2efab773eface5326700b797b929e7df82fa7d9d3d92320ef3bfb03e48d676f809793a6ff9a9a3d0b74f62bbca6349d7d015eb3d97f307b0f661f64f647f2fed9ffe41dcebe276f9fd9bbf206d25ab3d9ec51781d7d4eb39664f604c85b36fb13f2c6b33721ef3bfb12f2beb31f40de78f6247c4e9afe055d55ae357b3afb11f296cd7e49de78f64a5c559ace5e68f649b29ec1602584f0d143a0bcdd4acf1e065b1242feaa3ca45fc3d4b34702c6b4063faa15c420f43f15c40fe8f7800909207f531ed2076d80a38701c83b049af6fb9bfa174ca8f6453ec284887c840915f9081332f2416ec16bafb5d6ebf923f7c811ac8ff41cf90b36893d37040b7ad6b3d6ba7efe7ad7de9ffbdecf4798d0cf07f996873404f087fe11fa46c0da53840858b578481f08ac35b042ad81a72dbb9687332c785f230f1663f390d6240f6955ca469a7ab0bda367bf0da0699b054dfbf9dbb387e8fb2f0fb604a65dd982aecf0103c36ccf07f94fdef7631ec394dce77917683f68c63019a2bd1f327b20e0961ac85718094240a9abcc472de43b1809f867669ebeabca695848369ad1c09a487d412f06a16f13033c7b20ff4d5100e47d41c83e79cb2a6e7e809b1ee42079cb80f4e819087b0f8c9a07643244771f82db933a0067901c80db7f80dbb9ec8033501fe0dec9e08e5c407047ab07b71cea016e99c403dcd26a07b87d48079c81e6807b0707dc91cb0db8a3950cdc724807b86592b41a8a7d479a3e0d48c3d4f865f25e127513abf15b21f28144eaf0124b1dde8381e578e4b41cfa3b1f98635f6afb5207503af90e264491bc3695a4e9127dbf72ac98ae539e6b84a8bdccc473ba3e0c56c2d4a1e848579f9a357a9fbe9ec2d8dc88d26f2ac3b63cf4b63e35e8bbfe662f874dd80387803e67d0230ef44a61d6be33220ffd34a6d8d0f465a029a5f49b8a41685013d80958939c8752bab136e1f737a5e9081ed2d7b9c16988f26eba83e9c4f2762f3af638cf45cb2be729bdc9d1c39cbc9d49d3b731306a1cf0739e8217702f5a06fb398ff3364a1a98994f07a594e2dcd0ef6f6c70fee62978738373f3363836363637368f033699372f6570e8534af39d4444f2be0c4ee5326142f549cbab3251270fbb260fbbca9423f2f0afd6bef32e5da6db749d9cf67df757cb7dba5c9c36f3dd5fa81be53499effee6ae94d368bebb9a87d6e4e99ec78edf1d5185f21087e6e0e0dcbc47a92c5a7a4677df29754cb33644ab9a7ad0dd774e4ed3d27dc7c56b20e03aa321dd7d77d425758f73436127485d2f2d6be9ce86de2d0fbb0ec9c3ee6f4017d81575466077e461f733600776499d524703764c1e767faf64dfc91e2777ffba799b9becd9ae9687332c52871038e307328571fe86c96937df7d6d721ace773d66ed6b7e873a169b89c562ddc76cdea19c877eee4e61fa339946bf26efd095b40d48417f721efa3d4077721efa38a037794897e4dc6467eaa27b6829ec65e0ee9a74f73cc0edb93d67a03a06ee0a55b5ec2aa5bbc7e09681c9d4b1bff9d83b087b1d50c7c3ee73c09ddfc3aec3f908b338f2a5952f25d531f00253dfe497b5dfbf3efa65eb7a0a5e20e6b40cdfbba2b0d2327ff3b11ea628681fe771f2dec0d4346f1ddfc46a9ccff9083b41c7d730354e53c6790ae274301464fee65fdee7b025aeff6664331fe41d91875dece9cf1becb7fd4964c13c6f45ae2778763f73ba58def66fece7fcbeb9b17ff3371ffb20ef6e4ec3f9ee6feecd0d51e4c179fa2f1cb0bb811d9187ddc7c0aec83efd0b13a2ffc14cb041c7ba180c1e76600b6ee08ec869ddd5d25d11cc7757eb7ec784bbaff9d853d0daa7a0fd9bc7c1c989814dac8eed1aa68ee526728ea08973f3b8e69bc83996d83c9df91b306a990ed006dc354c6d7fe66bc0263637b19ae66b989a26530f6772fc3e687ea0f732e07bd83d06651e761f0376fb6ae5dccffb57cc699b6feebaee6df7ddf79801de9368de9cb63da2d9c9f76e37dea34a0f4b4c40e02a8d454c8841809481a5def1ea2d1069414e0126b1084d841856136290fa229c10e3e703a6efae1dafa628306bb55edde6b710ebd75a6bfd0da42b926ac11cfb31a77ba9bb778139dd4724393681ebdf7a651f478137d655de48805fd7b7b9d6fa32a66e8b57dcd91dd3f524cccbc6cc3badb59dfdd97578523ae7906064014c1203a600b6f08287315060c619165bff159bb2bc78a8e55bd19d2693873c532693eb46afc707ebca2ad6292c0ffdafacaa2ad5cc754ace39239387fe9b06d75158c6649d528783890377dfe1b0340583ead60c546375c1fbb5d31e1f6b46a474ce499fdcbd830962c99796ae8e354ae53cf5ad9cb09ebc40d1addcd05451d5ae46ba4ed9c000d7e94c34ba62b9965add4a577ff22829e90e363d1f7ff73d9ebe5eafd824ba5ca0573dcff362f4cfde44cfb2baa2f1d240e9c556116b8a8a52ea45fa519f6a32bfc0b5e665f6d532f356a76291217a7ea5a24c609b1def27f8f33dcbbd38adc74f1ebfe3a7cecfab1dcafe4bc2bcce05562c0f41b05281d50aac57350be40156adaa0376360f73bc5ca7d6986101efd0cd27d311fb0ad6a9786d791ebd8649d27b6edfd2f363e00c1456a7768fde3e05ee9ba4e76318590c1843c279388d3c9cd5eb5e89a4ae7f45e1d76bfe7c581486cd2c8b55e6fec5e54a05d62922f01681f7e6a191871ece3be461975a8d1c69e2e6b466e8f973a9d65a2fedea14adb94e5124353d248d171713b89a2cddbd7bfc88c0d1c2e8f8027b464ebb47481ece4b7ac9586488fdfb2f136cd02e97d4344bb226e7e9bed3a2bb7fd124e14fa70a03cda2e097f71fee9df6faeebb28a7c57cf75dce69f8bbbf2f3a3595cb41413d3d3939c9246db13cecba305243dfee619f5bf0b0fbcfa51e06c460cc9327b95e95c8b978ad2a79911b39129697adfebb52b1c1e050c4e5bdd0420c305431815120ce74805c16527801f9aed328cf179e2f3c5f7a74827438345d8f62102f3ea10ca684ea09840558feabe70b97c041be22bdeb91bb2dde1c92ae55221f64ee40d480c955a2e944390ffd3d80095d290ffde6b4ff073edf0e9f2df2f89743acdddce783f6c779dd7073473462bc3ef880a481f767d3f1e93ec6ff6c5ab67a84350e4c490f5d715558feae375a3e203808009000d01152a9d4a35a44ac7db6cfa684769b8762d87476e4e0dcc874d8d4c468666470a703c3343d4f01e20496ffcaa935e7523ea3fda7cd69b116a7b29cca69512a0a2977722ccfdaaeb5e710ae343a396d7b94f6777f8f92ba26a1b77339616a03b8f1a4c46a27cac2a1fc7f69d19f9afafff7dc3ffdfd39f3a3ae1d769f97d1ee06afb8b3af4d7b7525af8f2f96c9708e5cbaee8acb91965b13d192cdbd2265ad21bf8eda5b6fd6c96ab14f968b85f230ca43af376f05fe69bfb62ac78ea1e7e8eed2dfc38aa915e931acb31fc812aebfefadb5d65a6bad33cb15949c36974c26a41094a404494c48c19ea1e5bf10e5773dcb74099a312ca5ac99090c2f5477f74b03a517c71652f050babbbbbb9be0a150cd49a0f0fedff11e39a5e5749f59e6a19431c15079bdbc498b377918957cc9c328b32b79a863bbf7adb51f342de8fdad31c829b5d67a2ecf733ee5a22f2112d644875722b5907fb9473dd04a1d3ec8ab6a3e05c302be011f19c024a6ed7dd7b5765f9de43d90494c4992277281989621c91371c007390d11b88387f90e3e279c08fb3585dbdf777497344dc222a7757494c2a2494b5de1a4a3d4154a427494dae2455f24af0d611132f3d4c8ffdca38b7471b019bda9541445ba7bcf993cef635f0720cc77f0b48f3016b0cd66b321914e7cbc12a9691fe4f6de6e9187f412d96bf3906e79486d9f170fbf2cab2b0f29bdd82a625179483deffedcfc4d359948b3277c71f7e81eb9aae490cfad28c6f643e461cc90873f39c6f6f321d924e10ff793bfa3189bd3963cfd9821a73de0e9c710394d84a71f5314739bb521e944c8d38f3972da0b09e734a108c68f3c9c728f924ffa013de721fd1918093bfff393734a9891e1e785c8c096087921ff9ac230128cfc8e8f8109edc8bbc9cc1ba9b2d96c7a267fb6979687f48580afad37f0be475a3b3ece998f5746f636fff3354ffbfdc96a64329b1f598d0d289bc1c6c6e6776cb20c3f7ff58e8f0f721bf0e76b40d9d730b5ccc7efe41aa6f691ad4827496efdbd0f7df4e7a4ffc70ff910fe83f7e083fc8e9f79003c08eff33a9ff3387ff3b2dff99a8f07789b37f242dec73ff8ff3cdefbfbf6757c81939c2673505a8a61729a92a71fd3e434a1a72f874008fc47f551990328240efcf33287974372c8041bf4cfd04fb6591ed21c402b71c8fb0e797943de58cf427869cb5ba6636cc8fbea9811e48d758c08f296e99810e40da45d20c8db47bb3e9077a85d1ec8fbb5ab0379cbb48b037963edaac1755d1bc85ba6250d79632d352067c8fb36c940fe3090b74cc85f206fac8dbc05f2be9a878749de327d4486bcb13e92f7d5478e54206f99eea140de58f74c20efab7b7a9e3281fd07f0afa3222f81bcaf2ef23ff2be11c81beb223f246fac80bc65bac887905f4e48f20779df04640f5ac85ba6f107b947b316009d37de38286f99ae0f80bc653110f27e9fbc430eb24ede3e61be47405e00795f0dc485bcb106f23708c85ba681bcacf607c8fbeadadbe47d0d9037d6b5af61216f99aefdce0a795f2df346f2be05c842f2c62ae42dd332efe373eaf154c7a790c1bc6528e48d750f02641e9fd30979cbb40e13f22d21dbd70f8823a40658848f7ac9bfe4b70494da0646c24bc7276128003d0924003d7d1b98d0922cc24798900830a118807e72c5d92da7c99efeb539ed9ffe1d721aced3bf443c9ed63c7dcbc542396de7e9db28a709799a91a76fe9db29a7fd3c7d4be5b41d4fdf5639cde6e95b2b7b65b19c063ebd235c4d1efa23b8967dfb4aa413f03acf7d21107b783f07742e38a05bd9c0846ade06d64488876c87cd0e233e7ede881123467e8cfcfc783bd75aeb12f29e15e24d211f61424268997a783f09b8634940222f04f4a51fd09d768c80cee4a17d1fa037ed005d8b0de84f501eda07418ff2d0beccfe835e659f87fd1ad0b36cbe245e0ef20e6ceee02f98e4836607202c0610e81ddc9ed443a606a4e2220300b727c52469fa234000dcb7e7084f275d31b307003d092200c56042f593802f7c0720ec1d00d20610f99bb7c4e92b8b74eeefd8fdfd697befcb228f4e0f6452b5e7f5e40bc4b42b6f269a494c2fe085b7200cff8209c14083eb05fc2be76a01a5b45f5aae2ba7d14f8bd3624f257ddff29a2399459abab0346ddad23d74946aa2d23b5c7a53fdf33dffeaf1f540f2f9a5819c817772c0c09fdef4c747631157847d579a9e115d47a926264ddd2acb951c1dc04e98510681a3545394eedec322c955a524b5c56afbaeb89ae434e9b428b585c869514a0bd5ae4bfac3d2f45d8bfec45806f651639a0f0690ea068051cfc016f00c001d6b3389e905e417323541f7bc2b88e779aefbde057b40196e663264870bb604e687fc0c1cf212c04798d00cfa69b83ae883dcb33c8b767f7ffafe7dea34217f1f3bad277695e5c6155696cb1580f7aaa7f77dcaabd4c0f7b74f51d11f3f5ce03641d3e20cdc54cf5ef3eb71d89222ae3bfbd97d216fc4c8ff805bea9fb781a180fffe87f41d392d3a6d86f33086a0ef8fbe417eeca8d117a6ef54d5f73e8d458efccdfb75f4c25de1fbfb75f4427ae14400a387b39c434208fff351cffe08186310235f03432184fff96fcac85322dac80701411b790f8cfc07469e8891f731f220187900fc8429017a23477a401a9890ab276fa98fe4fb4173f6f303460df4f346be48ed7bdec84fada7a6a6a6c6c6c6c626880e0f747ca083880e1f1d20e800808e6f4a874c2693dddcdcdcf4e0e0e0e0e4e4e4e4e8e8e8e83c07ff7204f8017cf606f8170b2bccbe00ff4d0100041f2279fffd0ff20eef7b90b78fbeb30ff24da990c2ec5120c0c7593b61f6267c9c250c60f6247c8f8bfa084b5c5989d0c79984ead98bf02ffa2fa417ce691126f4d3d3f33342d43d994984d2f77dc04a8041729281be40a63012904647180a3924b80ee15d87f0443ec861b02544fef57ac54875912546fee71db6a4f6f789805b6a22ef820b7f04dc521f792cb50bff8a2ff9cdb4c0fb9bfab69cb6ef91a64fff9bba17e3d751071f63edd5810b8f9b35e9e4e90eff01d17bf07106794904ca1da493ef656028e02ff232b0138e7c08ffa25fa31fa854cdd6553949d1d800000000c315000030140c074422816096e5799ee23d14800e69904a725c341c09a320c76114840c32001002000106100040a6c88804a0f2c95545adcafa285730a021c406f1217bcea3eea8eb15b53560d6d821643e5daed7c6ab7fa5eac793b9883e9687545f53a40f41c6abb5940398b03a600fd653d79f559e8398738d1dd97154910c2a26a881defc2c11dd04a2ace7653b7bc15f7c57b022b4a93e62fa62db7f32036ac62f50a5bff16881251098285790ea034c8e20fc37247de82220a1ea0f139058a1ebb74ad5d69beab4aacb6085c9a1ca0b6a7e15c380f69b7acbb04967717962c23eba43635c8fc8cd3efad59787533233b0be1a7d0b159684831670ad4f4db8e303a8d251067f515891cc1e51c7cd271ee05f386792f56fa1b4bca58930f9efac8b1009bd4ba3764984450dcbb2263e1fece6c482c475818dbb5ca3eb5352717dce44db6b670b32eb0c92331022e23e7097a167591c7bf5c9f36cf52132fe37c3a0e6e76ebda51aa1e23508cf37c1ef830ae4ca7d50b516442fda58a9786bace03518ab0f75363d6ac571fecdbc5eb1b44300ad9d3a9fcd446dec15b0b02a82e31cdb2cb7367ca177fa10caf4c8ba04b11fa74ba21cc56054855597ef6dcfa2099352ae54a29bc87ce552aec40ac1701d55c5f144dc1164aeb619e95002b9aa334a9dafefcd1c276fbdd2b42b349ef66c8b0857b62ad1a56da03f4a564d0b0086d37aa2e9a2cb9648732303d030ee1ce57ee3283cace4d78f657f46a041974263856851bf5f397d8cc607f6a9424c01ca3767ca5d0cf2e1a52f7652adb938e792d94df35b42a183b3cf2483877ac0d7639772fa2c27a46065e3a760d571a860b5f155b08ae8ec0350848fe7cbe750c4bcbd58715d3e2b0f565538387eae64498241e63d091a39c48a76497daa85ca225e9506165821af1db6a0952cc9b999b1a5805525c12673097d2eccc2ff414d5f7778eab3c778f0541020d8faaf3d2d2cb77babae71ee46a7e2fcd9c9b4f03706db2dc51c86cac2be54a40a35463b30108bf5729fe0cd484bec693cd7a93a0f09f60ac6becdd72120e1bbb2542ed46d12d3155136251ee79e319cb51006982959d09c6c771e61903d1256061208d52fd188d5b7d533e1d715ef97467c04a0f29fd9221e44fb41c38a4613cd6797b280c30587edbaa6451d76df161f3163100245e5a48f8b6e7ddd0db92ea1be71eade1c270d07bba08d753b54145bbab8b5f7aa1d50fabf38ee413e527c1fbe7bd4939d47a60c83ac13e7ae76842dec8c7284000fc8e6560110571bf1a7f2ad898ea2b4aba7af5a5013973611a101e70f4abe956e6f9762093c2d5c6867aed695f8917c247356025cb04a4efaabaef48e8b4e5eb2b69b009198fe00dd36683e7fce1a7dadd57fa68d1ab194bab71c58fa787c9832b2b2fccf325f6c32ffe97bb8994addc1bf7ac1e1dfe3c43ff932af31fe9d02109e389ffad802388ecb844efb97323b684579a02e42e78128b79d45086666fd2ccd52d9866b6a7137e3baf2fa8168f890de71426fc7ac2d53b979686f64d351458eda28815b16d7c5485f5552e9e5092e98e38dc71d962ce9f14d9b83cc476da52b260e90231ddeaab6e930ae71f6c1f6fe550633a31833c4f700148463d89066510051ead24abb3c3ab7c9f828b471aee086b4dddad4112355d80de0b359a3661feab512003b83c8a6b3d8d57473d01484fc5a094e9d8bce7ba6442422a9e626cb8c14c04772fb03644b8b85499a5b374b023e7c8cd6c0a3c2e6c5349bf8734af465fdc667d9a8eae07143cdfe56be52c29627c174466c68c0d88b388cceeae28f02ba66340a5e936b46adde789897a15465c47ae40e356e6d2dcb7c4be2d58c5ae530fdfb85b3041e3e6a551246782ff4299905ff49c4aec646d175a125337669c88852423b0546e43615cfd406ab393875b479d950e3a783bda916d9c2233c160c0f6d16b1863b163987d84ed8773e803b72de26368773e4dbba44ade1c73ed3028d7befc30ea763987011948cc06532eed587add431dcde17167f6c65e901e55d1e1e706fd5b851a0674e4dcf369dbd4f1826057ad4f8391fba2fdae21f0ce48f79e9793e950133ed60149ecbbf8c5a1ff85ee2bac19fcc5599c2a22a223c18703c9428729968fed46431a6dd184c81784d7cf5f47bdbef3e817f69009e02fd82a17de89840c8ba0042f001931754c474f1bcc50bfa41f616de8c16d43eb4b0bf64b7b557dfbceb18afb172b9578f05efb56bb9966dd1fba14f6a5cea75f8b2e032b3fbe485997c13c4b4fb9cccc7f200bea65475f1c6d83a0138c20622bb741b16e3992398feee5473b5062a8577fc7aac03ac475fd9909f348f7c08f4b2a7326cc48bd09260480b3d3f4dbc9645eb202cb53b32e4c75204a706a45542d4d07c6ccc397a6d893551175d6ae736a96600386c650dddde81723d105f981e4505fde932904b6b55c5bec3a42912c122ea37decb22707c9e6a1db5917dfb0b214615d746b1a3c963324f889ad7096e59c755745ee41c7f82a759b9df55d58e7d015776232f83f4270da0f68ce49806206a2957e655e6ac123bdb0025314add7217700a71fa156fc35c0f80adc1b0d5163695ee9899b43cb9a28559ee236ae341695b99576e0cdad8f80aa82a0b8225ddaaa874f68e16185135b0f7b1a674b646ce071cc608aeed08277b8bb7965cd4ed4f8e394d70be190822378baa6ad716a0fc3fe8f8822774c8cb3d5c948dd2a8185a9907ede15788173f6fc078da67a800325686bcc94dbee522c49d50075ff33328940f66944c86c363151de21d3bb768a3d72f8897def2f3a1fc3465c25aabef4359af779329d1ee25ee147d487e2d86f65bc1e6fcf82194ba85b45b7aab2c727da7835931f731a29d2a1f1302b76da79441b8b1f5a36099fa239b035b302930f3c92fe19aa768323331b5820ae36e908e669eb7f7daf1cb9564d548bd460b6d149b1badbed13e1c41e4c834473ce9285f479f3b228547d93cfa5c8f10f808ab8f7cd18ff6ffe81190ea2790ba03c94c90b86290fc0ed21521b138213916d21143620936a40422d22645921c18697323e5f848f829927298a49a29a9474be284493a68d2e74dfa1f3b29d327d52194ba45e97b951c764ad619753d10a86e70cad470653a42131f62193e5c46f3cb18193335cd4c51d40c227a258f7cf3adb73dd55d1c1b68d0aca7f52da1b042f564d21721add4c7079bc55e938ff2002b00e734de4cbc3ae1f7eeb4df007b3efebfd6ba9eeb588f8ca551117ca7b7111d61cb708a0e30159c0d539b94c6294f8b0389481c76334f61a248edb88cceb4150b4af6645055e3a0de5d9f795b27dc1595618e51d814a256af91b699eeebaea4582b23400abfe40d2a713e9a9a285a97d1a5a0cabab46b0298bc8cd2234326c5783629c3ac930aa57449557e3764d3ffe8af36d30c86c44d0b4116e1b737fbbb804572e3b22da0d88baaf760605117853d890202dbfdb68f2d27550179024d3bdc4de3f7df160452a16d9a30ef1a8b638a2976f65caab8d67b1b9914554b72d44b61ee258faa4fe052e10698cdb0d4d1cbf2b27c7e5e0afaae2796916adeff1b8782aa93e5a14c503868c382909ff1ab44c283a2b6da01e2781dcfa9aafdb453546def40db0e832c6107ec7cf4ed25b6f69e42a2ef8190c2d92e95aa7b1fa1337df80714958e233c68f126bafcc03775a8d9cccf242b92f409648d89f1916e47edeb463a5070af1d40830980a6c0120899f7c4dd3b308ae5a025c633744850589a9d881964613d0e4528a05643021df5b8e40032c72bfee2d5d8687564c92443624d1a4017cb683d0ace2b8f13b0a5247937747437fd2c722103d4ec0b44e1ff78cfcd5756363f219719b60991cba0700d8fa5245188dee4c4b420315c80e680ba851acc51fa25d85fbc4a93ec2d8bcbf9d0156a24f11342e61f65fc32424270f9cd80b4f60a91d58c79cce89ab960a49e597f72fd2221d067f5667bbf80900c929ab279533b130dd473b1e826f7c31eae73c793837141b190fa38172300b4ac7a6be85dc5fef164274838acd58caa5795b54beb0286830384cc96ac053fd6aecad4e66b77020fdcf3b13f7fd29fb0d9ee644d3bc7a75d55b4a521b542d497a9327d4f3ebb5090fc3b8afc5427dc67b42947ff046f6e32efde7393ebf09dfcc9d453af0f3fd52c9f96dc1fffbf42a7e1074ff07d0fd345e5c9f59dcc116c118c4e6c7bafbc18348ebc8855335a46562a6255baac9034de5bc1f07bb398b529f08684970d27ebd3a1f444c353307625de40c2c0cefb4dcdb7909a14a0066787a01c50f6fb9369c22857b72b3087c5574a8fa1a3fd8c01612c2080f8e893298c09c48276dbb21d8b78abd91fe9476ceaca525e91c767730e2a81d655c109a858563b9bfda5ac88ca2cb614937979ffa64053d55e5d5b154ca9ab61861e1dffa5e4a425187605a273ad3499027196e124fe8d5315951314a873e2bae974c6add3cc76b2349714fa3c4b54637f87eb97571b5d86577c129e2fc3178c55a414350a4c8bd8c97bb90232098c1d3f94ff49591e7f2fd71aefc4fc00f33a4696fb4fcd32560f7905745702b7ed55fb5d45a83c664da8bcdd39ef6856a432c5896c27d11172f0e8664c617b81d68709fd7f81c4146e47388088223435110c6d09dc9f84a2c08921137137b5bd43ad0f869a24f8232293bb0f795ef07e987930c1c5e3e9fd8214c37088d15371442d5e7da04fa83e4c67e1d89571a0ab6f1a0e31f9451ffa67b22613427b4ab7e74a4f3bd387c013dbbab7e7e84512ed6ef9c46623729106c98ad05c06cd4a04bb390ceb624e97308926ee2429dcc423c1454934d4eba2e3b5c2290d8c533e8bef697adce5a44a91ed03a9329a61b229cb074548f602000776a13ca80bea8438a06ea82bc2dad515528363e5d35de697c0aed23c9aca088f0c73852610acd900e8a174b776c1234d86e604400e6ea75096399a893bc90d40e1cb9194567cb49d4a84e79f84aa89f0553c0c888f6368c7f20987b75f356e1f8d3d23f654de05b62922457ca86e181c261825761985f2468345ce913ffac38d3c790c2a6ac6dd64fdd7ca1a95ccdb9446b158e26c0e8c747d4e7202512c1208f0edb6ecc3fc1bf61edd1aa89d27baffec0358382b0dc8e05e8e9b010bb8fc8038e090a034d14b940c26144ad41615c6d06dd789920429c1423b032ea0cc7825dc80c66f993aaed20f3cc9d953d375de41f424d77aace160fcd8d010004e6434bcdafc9d2340dc247324f643dc9a215a2aa2bd3f0f2c91e92628e1a254b6016a68f0ca5e9e0073c899a30fe11059db901db29b3f6d301f079d2953a1c0171384e756a0a125ef16d4e0973723e40b7397a18216c1ed55c540ead13c65438db10fa953bf16b50841fcd9a321e1297da3918e8c6177b8e05429faec1c6341fea07ea001340a07afc0352e32b6b42d64880aa7db2f19287f32610d32856ffdd7d02912256bd64b2fe0bade78ebeca8cca72d51a011481d42a2377416589742d9535f560d88be5761556a4662f3e900d15d342ab78ca3b1a4209ade193501886e504ff05d88c4be94a2691b19ed3bd9d1c55fb3a341752a8e76a7daeeb2a7a6370fc8ae096d197d9a10b525aa9d8cde1c447d57ed0332baf391d385f3baad2495d22ba3bbef46468357e94c4c229b6a4d34327a2c546b8553342227a3b542f0e7298156b3b604e2c9e86aef2da3d7ca380396ee44a9d9e693d1e997e99b46c4a1bd87ba349aa1a2ea25e6cd01c35d2e38b12e3fe778d54046e8191ce0bbff57eb601de11e5b8946085284212042a0376dd9865e32e4f1f7ed639045401ffcca62423708fff9b898c06fd410899378013ab0d970cd0150db581b623c6716bdd382b92c4274030742a4f010e6e2657be9bd7354b57db75a6fefffbc594b897431d4c08ed5354e6341634589b296b2bbf3cda1411fbd6582766bfb8ab02e9fa2f6b246980552029b0e096377c6442e10598561b4e3fa8ea77fd90e6c42ea63b24ba77a520e5e018af8fb13d2c0b4f0f1bfde60fe18723131faf3c3211a9de91a287da7bc6fd54cb1eabe1e952ff7c0755f2beed2075fc1e50b43deef3e11c7cc7dad102fdba1b53233a0d725c98a3d3c11f48df86eaa76fc90581929db9d59d2033be3fb58def7fef0a3deed16ef8fe028e9fb0122e1f6a32cb565a620dbbe10a53197cff9c21f9f7dfcfbe519f251451084fc642c035a2a899e1223c565109017e974fe99ec7fef5df4a33554e26d561300a88a782041f1169e715bee77195df8957b5c89cf4de292da70984938e115046a69d0a56d6514ac791dbefc01c278d56a6e0d5c64ef9abdbd57a52a8da8e96e454a9a2751b10e48b93a0140d1ed0dad805726a1c278aecfb735f695bb5c6c8d9f872e22f8b707e8c790317422aba2ea540daa2bda0d1e847f0838638238dc1589ba10d05efe7e1254e209a4d9423c37f74c2508290603a8b4797478652c090a3dd33a2a932d3632e1a5983835f74c0457d79f19b5c8269202b3a2271c2ec77fc71f6c7cbd4c53505aff031a917839cd6142f91f90124a939c7f505daa31397c561c3dccc546f5f3fdb945184a7a4123c1b181b4b4a903f40b8e181f2b685c2dc88e1a421e20ba162170c5b4f075248d6c725a38d6983d7da07ce947a5e0718b66a2b507970fa3d68c7cc9384333ad01ec451aca0c8d1da56b8ebd342c41c559c2d01cfdaa330a30bab514c1cedf9f9245d45f482ea82f4a85fd5d78a4bdf847ec3a7deaf115bcc877ef8e876c6710fda43120420847a65c8278496e456298a94d5f9cad66a24e6f4f502dbba11c4b0f06150b122e85a942489186cce3cb8f026f1aa0be9a9f48071af7d6af75aea1a1bf51f6c0f310bfb0146c2789eeee90ca01308ac97976adb800ae6c73e5749ebe5addb6bf07e9840e3740a91ec8f0d05faadee92985135c0a5060f32e17a84f2e82190ab28862accb03f4615de6d59711557bf4e017e2a82c6977eb4f961e0c785caedbb70acea4c7b98ca242f18851102ef02e85644dcd82b792879b6ae9c3b2c1a91baaec4dde3204c8b6e745806c2d254fce09b914b4bbdbe6e093f258a6618b0716c28e4ec1c55d03439b70ddb03f2c7388432d36b0d46e02a1a1178a9a7a89e03e77b58ab0cbe63389ae24b51c2a3fc8a87d19bb166acfb3df15a3b9499ea11ec07ef0950f17eedf33ebed7b50c5fb0da7f23938786246581e556c108bad55d3f6bd707a123061bced4658ba1e8c0c760834e2b91655b571658e57378a7057d85ca22f6f759da233e63cccad9f0d82b02934a33da64628190a1111f4ac87c40eec42872dce2c2b0084e11108f025c660923160dbc2f0368700db6698f44e23f0cba2f5d0e0f3a5e5c585d2f2d92f08d95caa2275e476ac85beeb45e6904449a893c818d0b775baabeac45b4bf864098579efb3f90df1a2da39d838a660dc169d3c972392f6c3bfd02dd9799d61d165837199498b35b3510ffd7553d00b4ace278e962a12dadad7c6c81cb33f969ccbf00061339cc066f415ac3001986e9f86121175a62d5c9cda6723ddab1860aa57f2f97e943404c64d9fccf8fc778f66e7b629a3ef9d26bcf1763b7e94e372fbe9b26961b5cf2428ca6f81fa825850d037bee0f8c4713cb4d8e52b9d19cc2620454c950f57a6c761802b8b26cbc85090e90453fb6501c94ca94d69329961b782ee6accbafa71f3ca5c44e932c8f68780217d162c32002b3c8be4c2b500ebd76765450f2f2ca5525d8b24aef4e3f41edbaad5a3c1b738326f5a24f174db9e4754479fced67fc1059acbd39f2aff0ef2a22580c61bef9a846386bc28577b5ebca872d185c70e55ae586e45eeacd0f6db360b761400ab08ed41bfb8321a5a8e6a81af7ea3f91733b54308e04c44c6eea48008337ee551dc8f0667e4e19a20a971f7e3dbd1337a0985a5f609a72bcc7c6c8a9e36a34e253b941a3a407fa4d266d84bc66b3a25681f40a597ff0e88111301de0972a95f6ab955a038f062f4158c4d25ea647bddfaa9b2650cbaacd280779d7c55f910c28705a672021521470912b44efae412b23dee2987846db96930757db192d9851976c2c86d00352445388e6e6a4c9b295d4874c4b481f7b3c21b1953f7db922bed34936d2a863c078bd6d03fbdfc8d2e76f9feaccc16fda3abddc4e1805370a32deb420f1a35bf86a5a2b54f3e5550e79c1c6fa376207f3682f2ef25436b73d325b6b91e3a29fe6cda7ff51109893dec191845b3544fed305f724b00e1da152067680ea69d0b4d394aee151c8fc4adf0b5543b2605711577dd09814503512c5da030add5e05d5e524b2c227b57ad018446a84f7e2c54ae6fbe3efa87555eb2d4f191751ad9e1d747c1a53622af3d7172d46cd69098b8d51dc5af0a30dacd0e99e1b4c507b78da5f33ff27b0f997e22cf232bfa525cb046782dab2eafe0820a2c41477fa90a3ca4b5dc9a87ecbceea4d59be281d1c582a1ff6250270412a0ec26a6f908ef11100001988850a390c083430a48cbd2dc9c6121b623e139caa2e08c7931f2c915b8c0916c7a14245760d94f51dfac491fbf056ad70a7716e446d817a2496e4b536b547647556aa6adc0997f95a2ada9203fab345561f63151ed5a94976d05637bb08e8a8714fd0b445bed7d9611140193cdd32a710d37ddc394919982f0aec9c6170b9610a055344608d4d10e1426f74a3c88af770efe604a6e272c2fd8f57ba77176123efa2a79647a3618a1966699fa56ea7d7e0024ef41938e4726cc7ae7e3548e834f68a41668eb6ba109df86fe0aff85d9bed041810bb122cb3e5d2e05b22df1effeb43fd251aa7b91ca587174c8c18a70bcbd9265caf28177cb0bb5a19443fbae5bf9ac43ae258e138e5f28ed14c7630c21e7051698097d6ec01f4682d840b0b0551e67fd0fe9fdbbf7924d6efaa69c0c35f793e626927ba3e97604181b7311f32067b17ef35f5aa5b75ad9af259aee0eaeabc71856050f74120b32a3ab4b16e9f91c77fe7b7b95cb852670a8ac91f72344e902416cf1e106664f1bacfd27b2c38ff8bddfa82be2cb2476426ff308c7159db07125370f28c80f5dbe81be68069fd0bf714b357463e77ab71cc7751517591e5a50aecc24fba30687a62b10328fee58b47bb94d48cf799c5bd363a47bbfd5c3d0a07b981402b3b83614d1eee95c25dfc1b3ff1f2124824b31fb641ea6c7fa606380f8dc3e21a0e9a0c278c81fbbce5e4338c3ddaf0d06375b0fd624c09875350936c9ad08d21eaf7a9bab281a6c7d2094740303706203a001c392019c4f67122891048318617ccc4815777e122047343bfa1260c811fb8401ada354ea89a960b79b59a579c07e1c0fcfb7f381ceba0a521b32c534f9df71d3554b98902338ae7ccbd2c61a903aa2fd671eb4b2078f755a0641fe9c74348b717e1036501c6e61bc560295c06641e939ebccf4e9b6021aa39991f6a2193fc73b44739008cdb0760b81542a45b343280e2f1789661cdc282cd333b5a1915b452ff55c1f961796737d423454681c070df4b1677afafa83dcb0a64b5abdbba1088b5a32b851155ac66415cfa4dad193d3c4b8f436b14f1647f44abda664d69c7d17892c6bcd7759164f9a76ebb8059c3dcbca6bb9c07f55bda702befffcfdb885fb1241ec46a7cd58a6e9c09edc8b23fb111856433d4240bc843e1af5d303d03d98aa4192022ed6c0d40e15ffdbdae9925d3221b8c150e7b564eebef86d744924fc7a8c2e41b226d79025ead1c5e6d6ebc80a6a6960a1e2f146c0510c26137cff2b7c9da443f62901b1c1a6b0c4e5a72b8a415adbb21788e6881e1454d53de20310851efbe96e30ce40ac03432bd1494f9e004ce321a86288160bcc558007fc2e346715d8a02f68744dc97cea3b271e24189847b4aeb40233d860b887a0c938c9276b78b3b2def329b314594ed5a18d94cce2ec4241c7f7112fdb5429b85573c23af332712c8d86265c073ed730453ca33c90d2f5b50b95f9f1204c9ae2094333438ec51cb2810404dac3429c7ae0d58c3e87aa01f7dcb09e6b46f2e8ae484e03f241cb3e9d2dbbe62d7beea282572cad5bc21c649601098e92c7d5564fdfefc663f7edd8e4614f7d935f9f2859001d362cb974d9e20dc918e3ac7a83f50894dc887e039b8734d758203cd719ef8df58074d9645fe155ee4c97718879d4ca43a96bf39905af2b6d6fe0e990552e8db98e8e6e0a874708b3339a7a00d4f4584ee1dc8362fc44055fbd0d23e5fb5efd477dcdecf703f244ace93d503e6ef84d87e11c8f430202c811307dafa258b76d7f7be674d3dd336fc15362c39b16fe6c2cd71a8306fe9dc9bbe5949a2c40df1278802311b99ccae5740674f330121a029d6c63e9bd291be89e75ba17ea095d504f9ee3d66df174e9a51b673f8c832d0f0090b453a0fe8f941f92687a1e92284b5043042f86132270118bde1412475a69c68e75513b90601a0e018f43caa0500dd6692b5c2aef91fbd59402993797c69a871cc2762610be69b3a662ef1bcffaaeda2bcffa3e88a67227060c75016d3a918c54a704f72c415f400f9025211f0eea83cfb03764c703a58f353305a8fb3de9f1b6642314df27da84a2781998015516012b56a35d9329c102ac04f7a7b6ecd719ed2a246be0fc4d2d4274fb437b7f2ba986624b973a65c1a75b6b03f43bd2e1303f8862b4a4cf317887e9fed504a0fb878bd1f7bd9c638fac9fe90df0314b4a88b27d181667b64420301dcc1e81b9987a5a6a83627e782c98fd1f070a28d70e4446bfddc01d151ec014dababdc1752a0800da1c3542b5d1e1dfa1ce00449764f652d9f8a92ff1fef66e81c91c0922c7220122180b981c98cc79562f2f9945b4fcf29359be2583a4fbebb73a0b2e38927ff345cda9590c751a2c7ae8cd156e9ab16257dd5451a3432333a2d6100bab78f00a80a560059c8f60b1401106b0f8ab4aac685984c358d556e0fecb4ef7315bdf39e9a5a5d99cc18c0bee634b9179b0d6aadc2beec7b315f066bb0a87573a62ff6f8eb028dd1e47b46b27833cbf698bfec610c40384c5f2eaf3c9691f8fe7551831ffb8b2068fe7f349ac87e89be487b6a6ef1cdf6dd59d1b091fb227dd762ee8812bdb9c1b6dfe995e0e3fd59ddcd587ca36af494cefbd16ea429e674d757fe977fd5c7a381d34e5b8c9f5f6cfc8c7d267290c7ec088ea45971043d1814597c89371543d293a06c1967ab898b0cfec3a29732c4479bacf7b05b7d134ca743db6d559132bb2f3e2ed91a266de68f8aaae072e9a0cf1cd96777bf974a084f9d7a5ba9724d15f3053073aa1bedf00b158e544f1d59d9d81ce96f8ae59c99a8fdac989cff3cc67062029031bcfa670f6ce54a33868ab9407e3d41c115a9332dc2cc566510edb6f5d4fff064bc9e1b66f53e014d1e39e53ba04a39cc2ce886a8344b535f18f549e306e9928f4f73c7a944f49f281d0a72b39ffe3d8f3e42bee56b780fb85398e2d6c4d56cd739ca41ee8aefcc064b7cca4083baa7e5ea5ea5ae3a8e7ce7d479fdfde68ce3eef1918c491fbf03d3c85dbf23624e9d40c7877dcb49a92e35f783d6fbf7088deb6258b7c72686e877c3bc4765f3488b60cb26d6bc72127d18516e10934c015537ed3f2af831f9ec8f2d9d3c41786081a893da6b91cc3f604520b47b9aefa8b54e64916e4c0e6e8e94cbe80488b1ed8ba403105e416106cfa0c2d83f9e14ab2e68ed59887ae4dfdffb71ac191d9991171f41e6b5e8d1b983904868694d189e6bfb7e266ccce25d4b65a365fc2156f929ca78747b913b77971b1a0d3248fbebd58827f152cdc5316fab2042e2b5b30c3cb7078ad566b48f165d3fc6e25d5f1cd1af267902e502a0b62670e016c88fb5c1ff4b65506a69e20bd2668a4878e10c5e4d6d5cf29cecd888e180ed70e08e3e9a5f5394adcbeeb7d4a693d6fdb26e6c5d3ff593e8a5eca8f99e0bc85792df7ff4c2acce1efb1cac7d8931924013d8749d4a3314d99866319aab354c4f6ec03ee9512c01c563852431e3a9272234146f61795e966c9abe451c6a00686db55947300fdc65ec463dccc2be4d44de62ed52129c4ffc2e4b2bc312c860b6dc8fa3b58c9ed9acd42b897b2a7055f69ef2ee8852ac20c2587f87ef0308fe68a36b3a9218c7217ee12513c3575565092e27334b9f6958761d3d5fd2bd23b2adb3713624e638ac97d59bf02b3d5b3119f4cea19111349b0283be8f253fa9310c795423e66cfee2812cc09e1a2faf7973175f9d43d41a0386e4c77033b9a43baa9496828c0943ce03bc5af3dcce361d340a9cda319b4472bbb1df4e37ecc0c8aa05547447504725cf3cfa0ba421a52a9790dd7437531be2ad259efa5eb5d208b87da056ec608c15bf4755b19132131fefbbdfedf0a363f5d701f161554a1d998ae9af794a6aa26d47e5f3ead6c97bc8fc87b34fc9e636b0275c38aa79578126cc07cad65b9003868fd2c76d9a81eb081c375ad53180704de5515a02dcdd99dae4d51113e7526e50bed7285f283aed990eab23f23b8bb494b40127f4dfad432942f74db15ea07a2460daba88d1e08e85e125a54064f41faf64cb5d7a0e73ddc96596a449629110374389009c6fa92f8b69c4a6cc35823236ad870d84b0e8b5743f70d4e2831d695f437304686af9df5a0139786cb371823869b4d5ca84bee6b48440c9f39ea4537ee0cc7352ca2845bbbaa38604009b33f4fd10bb7c39f36ba3e0096210640f7c685bf1c4e5fe31bcba57d91bd512e6c17be9d040dda770fe5983abbe48166fa7ca375f05a2625095822c792602fb496152643ec9f5c83e98de83dc53a466cb4b7fea1858e8aa9d7a7e21e32f0c79eb3cc64ad4c18e039e008c5e7738b7b03268ca650f2b4ee3fc91ad94cfc6481aa2cd62557aded046e6d7de9f948652291e4e8acb24f820f72a747db858d2c2649a8a0974977aed4ec5d2129c8d8e015392bf52c94711c3429fe1ff23c7398546565adfcf74c2413e43bd21bab8e41be394c896d0f59df6d7b6d836457e56f6317d27957eee817ce6089a8eb77cdd5431506eca519906bc7aabf47acf646ba9d9d82de0feebab1c467d4c5d06a5db86de202c6c8aa1ac5fd53414bcfe9f80897cee60d2d368fd76bb48980a71350a6f19f472f110b4d55928402f2a7f1ae1e6b0d117ca108f385af64d6616eac0221e47638bc78f08540c85044f2f1380d44116056fbcad58a6f685b714ea29b6783314bfff72b65ceb5b72b444b6d84462c075a1682d806bd11ad9ebcacac0ac5231133dbb4937b081731b3d69d8b71dc9878cd483cba66d36f5fdd6763103031dbe8fb907267b5124f6b536dc87c5afced1a32f769e4530c57b3167052a45121ae2a2cb97ea5e3261e00459b7502d57dab7e199db4a0cef41112a20981769f4e2764fcff6011ee9c784c0e84054a17d50f7195eceba51ef2d3e1da7f4e0e2bdeccaf681c9f101e6980a59995dcaa31d140d99a0b4212e379780d36ae00c1b3cb9ef436259aa0882f139e904913c6bad986ed94e6443b6256160d2c1e408bd8ccc2c2f643b0bb9d5374433427c3cfd12b716a712a3dd666529cc838810b9bd115a5505a103b88adf6ed301a1e3150a4106aaa1d0369ae824678fa8b47446321f27e5ef7d83715a341e24128be0fcc8c63691d386f9bda05c64dce1d048f5dbd0fade0351706e3eef2a5e48897b7fe2acfd67655281d226b7f60cd09ef5863026c30e991abde5f387f5287eaf471f5413cd8586c9f82bcd70b37e062ec7c48a72f9447c50e768f230a4f6b6f5a4d1b41379afb5fc4e1a9fa9d0cb8735faa636fc1b9ca48766ea83024d87708ff830a3a40548feb7a9daf271706db03d9a9e17be4a4247ffef6cee34cc765627538dfaea567d1259592ac9058ee4bea132ab3800d9056854871790c529469fcb12ed0a946aa4ace71ddc406949c78840d5adbe6d517a04a509c74fac5c4898f40e6e4bea9bda102bb1968b04331c980dfd11bd03a355b446cabfa20ee4e522c3d8507d913c37fecd7439784611384001d0a2f762adcf3964b5b8e0fa5ab8bbf751a556a265e337be4545db7db260293305c6d913f4890df885e73faf3eb9d37fe6c749724ae673771f0c870d0a00ad98de906cdfbee768b146639216296bb9302aadf05bcd9abb28db9f0c2cfa7918c8f51c92ed18f2a3c0c1a6b5bb6bee6243682e7fd59df198b0b4c2199cf78ca5f0df921324d965eb0909e028970d1c091cb1e81fb26cf8a980e29a22fe7858f9dbdfb74439ac6e8fe08157bd683d1a5314ab5f253c8ff821134b604881a734e004b5f347fc52a6a6ca467f6188d494dbad537a9d12b985c5ff86140ce3c957996ad8b441132aa30b412f3fa16d181af4aaf9163fc3f9580a3880397f723088e51827d189c1511126a66c9909a03671c49e86089a04db1f43705882844c1dfb2053129da720108327a6422c5a25de237ae950ef18801682b9e09befca21e9591ab683a16dc3aab85993d8f3c03b77dca3d37755e376d4f0944eedc54c53fa7f6baf8d76b333ecc21fc515383c9b55b3728949c4cf6aa420083878cd6d0261c4b3d11f1393b930616a7ac2bcb6ce55c5736a70f12a32e5efe42c94128dc8a6f50caf99e5bd7859b8a736b817d392ea75316f6aa5aee8f38c9dbe0dfc490b11eacf15b29031685487dd65adb92417ed912aa98cfdc7e3932bba483ce3a2181a1e41a0f4a32fcd262a0722b941cc3fd0f8531124a2e07f22210e7591875958c297bf86d38c929ce8755f710af2c98b31751d5dcf396bda2482d2c8389d50ec2c3042239560cbe0bf978eb606987d26d83589df921f02c00f69dff23278d836912044172df73c91d2041724544c77b48aeb8488cdc99fc8ef4ae882a4c2a446eb140871027395c6adcafd5319c20e100e616013ba113940ce163aa5117cda63a3de2e8fa867e80fe6433a57bccf11f72492c48e40599b2fdade1da5e8acc97e4843cb65442b99eb511d4394966c83b4ac2586434a8e1e49e221c92d3481bea8ca8a50fa2d5b90c4fa5cb0b331abb8b6cd145cb0a3eee23bf403281f07783c9e2b84b113b96851a05383fb7c38aa1d09185065c8312f53b07ef1b33393809d80efeed8eefbcf8d1cab688a5e94f01ad61d35915ded55e93600e236f65be667aa757621e82c6ba62677b503bb32756d470206920157558aa6839d4b592fb98e8067643ae8c0f7c903eaa4c0ab2b9bfb27e15a054a4a5b4922561fd703487e59681f3d06859bbb0523262c5df18dea781cdd283f081f803ab3fe4a81270cb5fa931bd53ee30bfde82444a7a9f51839cbc15e3946ad046caa35ba368985a7b1cfb2c680099cf388712d3209bc7e5c4a72008f4577f92b723b940c9f5f680885ca2641e331ad5a0add6d3323ba3c2f4eb3c131d44985c79b8547c575534b518569dc97103ee4aa5d819902c5a273f1b27a2a764689ac85fd55b914f78e661cddf1b96070dedb9e97457542e017aef0d1b663129eb69945e0507cc91537eb7fa36a7d896e478675225449a78f652867ed489c37dfa387ce8008d2ef50055ef84ed4dc8547af2293c3891c9a1bc0754657a7e46fe80e4404f1fc384272229a9fa1cee3791a2e4f45bf8c20d34b4d0832a05dbf71bc3123b95dea2af70a2e440b1c4802a5f3c6aa09357e1a789114a543f84e74dce5412f221ec3c818aedb3d121a904c769dba29692b6104719ad313280e678e89b9b25a2df8f073247dc317660489e369844a18a08218be505e4423dea0c3b42a4839ea03be8f192294bb422f2d758f4c80ccbd87d4637797a34f8401a019e459fae2374a9a85752389012693af215487d4b457859189168e611c8326b02360aec4bf069d4a98d5d257008447b87d0f009be9e94815a7fa2ee94096a588feb1e7fba8c900180d0613ab26870ab24a4a8b67b43fec0576146e050685671031886597287534d0449af26a021972df1489c451884dd9593cb8db8dc1897ab38810558bac5622b3cdebf9d73c07714be69799df7a1833051a2d51a07548289d2f13f6562e9938855bf274e75409d204b63b6b812cfc1e21c8052ca0c76069c6f0ed0ec1d3296db0af8a5d6b09816462366266ab43af4bdaa25bb61d7206fe149bf82c46fc07399d19e8ec1e5fa9d72a7e0abc0dc93cf86acf5131545faec04d716d97590542de8ee47b1d3aa4c6b94847b8dde153cc8c12b218576fbbb7b9aff93ff2cfd9a4726e3652070244664b3747671dbb932c113de57f57ad83534b802e5d79bd5d2b2b7625abbd5b307f8ad4b86c2eaa991cca096b865660e297d92a60fae61937608130073d9b9c7ff555fd852083ba951a2a36b71d52db734fd5857220538c9d1582589c0fdfef827b25ba5ec5025689b40b53a7b185fa5263585112db56deac83fddaf5f1c4ad548a223efc560268d6c35b4762e607027bb8ed6031859b28f35d0723bea1f34d7cf32352db1a23ecbf5b73b641165ecbdf566ffd58c93a7291045d321770418ccdea547b0f6b7aa26346bb3a9a73f432a3a2b79388034f6eeba0b7da24196293d18b25f381682b371e74d50cdadd6ff7ecd1c21ed68848e783c1da9c3bde26d5106ba69cf566a6f5eaf2aeeb2941c0af5901b8d616501acacc12b55bc1502f01ce2b8d4acc1c0a7620e3907ab648431f6243c3787c17c8d0710cf17e586cf3225099d8979d0bfe44764b5bd088c66bbf07837fb2584fd7016471617fea13da696f11db22062317a77a4125764acbb99a4cab0d4947dc0e3c1de1beaafa758cafa5d435ef2bd7a4685ede7e80a4a1287fc3cc0548167734b8024282072ab76357cae431001614c841b7b1d1dd46ff8b6af63acccafe963b2a5168bd28f164927922c407006fe2c7d52bbe2a3a5ede839c2a7543a66813223a12e31b84009234c5583942da53aa3422ffbe6d5249941f0fad5ea995b8fa1b9abf9312fb9babf668c6ee14bbe522ba81eb71c92a8ade59568a13b78cdcb43473ad09d0a26dae4b22eab986669737d557b95a9a0f5fe989d026f6aa0efd8967b11de55f45fd1c84f0bc1ca9ac1cdfc8770cdd7a1c6a282bebbcc1b35024d5849c6443fd6ed92587b3307ffa0c138b7b1eaa1831b73ea182505d0462d274a9803acf0ca5ca66ee544223141469de5f3ecdd2e36a73124782157213fbbf33f24ea899a3b2f7e4ea4c29ca8707a027d593531d13b249b5030b9644afef0bc81f894d923f4d4a91237100c6279a5dd6b1279103a93752690ba40d17ab5f12d6a7b6e6b89aa81043dd6219edd257a5f140d3ad0d28378f1368d49763beb97540181abd9dd9cc5136c51da42f4fdd9210a6d4cc7828473b277342f86eeee1814a2ec072f773bda885ea06c2770014a28869414c721375e856805783cfd5dadd57253cc1c484a75bb72f8ddc545fa197a73c8fa79a45143ecf811e76efaa432efe8c9ca38b49691215adf6ace334474f7f7122280da6cd2880809520a693c933b86433b75fb51b7eb91c918895a3f843f643b87ddab5bb821edc38b4fd411ee25aa13ff73cc0f20770cff1b2a516b5a024d6455e0f00023633c1a9b2f08534e107c2afd5f044ac3b4c5471626c3708b237fcff98771d2cdf29fe4634d6093d8892624a6dfb7e9d5836b6597b8bd0ef849c4dea5a72fa87bf8f22eec8bfdb1bc4f133018dcc6eb98b2328e17eff85a2d9a25059f87abd41594e05b1c6d3419db6bcf1f04c53fef189dc93223da0c0fb06b1ab1dc85488c8b16b3f2d3474f246c8d7e72c3149da07a46aa4ddbe6d20d286e922f2299df5551538058dced82aa252f5aa2d0c52e4486c9451d2844e258462888ccfc0a8c5d700c6acfc5d6404c4c17d8e48c29f860419218556d1efd954a329c9c7bc5bc15e4f674bb9678ce389b3449c5e67bbb4da8fe99c11e95f18fcc91e3360b5491711ebf89f6c30a72c394b3abc64b41e237eb9372b624407cdca595853bcea81b4236b0ce594328e1022d15977877b2622a9dc52335fcfd0b04f20ff8d0291d9fc8aea613c21a0f498a78c00b2c5ada5d96294f63c8d5f0b35096ffcf9a38e6ec894619d59612aa1f01d5438fb566d3bceeaca3426dcdf30c69d3f8ad361c09b74e029c1bede64e1662f0a6c3102448a1e0446e52afe6e9359a5152f03bc904e9f389c6ee2967bbd8edaf1ba33267f29badd0987073a343afb8e36b1bc9e48e8655c558a34119f9ec8c2ddd21b3a542a144519a7a739190f15e0a9ec21b1042cac13b2d12ffdfd708fa684c4c5ed0cf1a9ce9807d8ac981d7d6f29a51b9b5a2f371244aaa675ebb5be3e5c53632db81b29166841dfbcc3d54d392838c0d1d44fe515856e81749f530c57d81ae8a6a055d27b6b5b36197c1d311a2f093f0050d20abb0db9090aaae8f43eb199341c8aaeb3056340f81bf97809416aa6e2fd3531668b7f84a4f6f6521b0dbccba3d88060c11d24c244cb9f07424a775b5ca24ad41648ecc9d0c08e26f29736f90d645d15752dce8935cf20ffabc4d6248e8da842c52b2aacc84843c49616b2510cfde6c8129494cdeee9c688e10ea50dbb7a6369d5aad2d6b0e70b7d6e34a5aad380f8f684e0f0157179514c3a5f70a4251f5543fd7a0938c0994c762461d07b85996b6fa521847a67eb8654efd620b279f2a334c245ec2ad33ee74f95af508bb452c3a870d2c33477714f0034db8283a6727b6a6ee1bb845fba02ed6963ede9ca608f3244aa29d04275b1a9907c6207b1680057ae4a200562e84e809c7dc8b3d463475c3b86a73090cc937dcc39ded51c3c5c21b207a6511a483e8f25f04e0ea753ffb8aed692acfeec3834219840f9fddf6e0dab35677cfe024910b4a820613d86ac03222e0769b73eda164b967b89cc9a630abf47b466bbea1b33f5e0cb85d0a48cc5d7ddb619845d4a46fab274849016391b05e341e3f6bdcf8d2d00235c5be94bf5de49926d1ddad708de20f98b5db7b210fb7a6bda1c0c11378af70e1f85f02866d4417c78f52eeba9371733fc27693139547a280ad8279f63038b1643038c7da66b538653c0427d2f0c8dbc93e883bd356b926c3f12aedfb1880bd92c24ae5b7876f347cefd928eee64d7e4ff106ab576cddcf99eadf7d85320392d9af1850ca0af41babaeca9081d9c14f2d42dca92e1d96d76a23fbaaf78f9ebabb0b7af78994e4b50147d18de246ebb5eae5b8f3c479771349e69077fa0fd610c396d8a1992890a4ec72177116d1febb7eedbe13b0d90b7d09885f9534944e705dd9819ebe3dad0adcdd0983f8a9b74047df62a0bf5bcd4550760a5675e09cf0c754f9e447a72f470020727ce2931409d67bb59ab0ca347fbd6a77cb364ddcfe56e95d73248b491ebcd266e5a8dc8beb3ea2e327e1d58477ba0ffbb3fff5cb1f7a65f4b808a3f05634d6f9d23eeae7f144603658d5476805ac9d51b3ecce218f276752224f64a547ac896b8cfd944489abb84f1bf2f93d47d88b1f218e4bdf34258ede7f3c64891321e71e37d5da815c4fbc5ff7412841578a0c09e38b5de6ffad87b14a2aba02c3e164a0fd985573d9b6c4da174fa0f60bec0540f6b9eea738ce5d8d226340613fc7e2061ce0a7a50387b745a573c76f74146624b17fe62c9b860ddaff0883132a2c9a20cdb02b090a76c7aa75836f07003cf4fae037510a6a245ddf5a0c70bd4604cf4d11006e49243738ccbf2b865ac9c862aec989879b446ecacfab8ae126abd2500bb8e5c5b0293a83cb557d968c05548ddb843655e7baa7ba8f3c5c9b486d52b83b29f263310652678b87b873e4d95eb4adcbe3e7b9352b8aef68e26e6e9b94962c8d0ae244c6da4fa2b2a55020ab7450cf398846b772280589114fdf2b04231883f861a1fdefcb477b8f49a00f492067e8df91852ca12b98f6d59dd97817ba5ffc9e51a0c3a779c56d594a963cf15755410d57a6d0c5eede795791482ba2b72c9c6b32cef613e4c1e072d485eb110cf5bfbfc84994677f673ef94cf17ea97924a442341863a94904aa0e086ad7f0f15c0bad35142181a7d6800a82463a5b5e361bb64e88a130f12090f72031bc3cf69d09031b1ee4c6e65444cbb958e6c4670c1e02005222f54e6812d1fc93bd81162c5388df424a5c109f3051d175f825205f02020cd738aeda6a87d5d87e49ae1545576b4634d878ec26d8e5a03f425436fba4f955cc94455087b0114612480de79a294cbd0397a6df71e01c4fdd487961cb336eae158301f60cebd748a0ff76fcaa28af45a980d6eba8b28b079521ef987cf545f40716fcf41c9ca10b572dcef09518ce1ada0578f044c64197cc01e74dc423f8f07644ffe2671ccd82ea193ef8d9423c9c10caa9457bfcccc5acb47017e180be6b24503809a9b3bfc3536e29fdbd9c2cf7044b70af0571a1973a09fc794057f1bf8a01fb20e322eb8ba2606e0cb49f65d3354abd7444bce1586849e1f598f09cf518f01ef69c1a5faf099164fa1da98570a72cb9026cf8443dc449c3fe8437a7c38dffe1cef971ef0ff839cd70172465a83f7b2342f3bb36b4b074de47f970b0ec1277186bdede4944d21f4875c3e086c0d4beaa6a04927649fc27e0b52aaceb1559de7c68177f985445ecd0b29c5279ae9845c043796cfe0e90af290a40afd473c0de2cd2cc8bf165d8cf7be73387f323514c98852a95cbcb4e254e1cdd2f2478bcef8e6e3d2d020266a31219519a7fc3818ae40b0c4293c8dd0df283df55039810ab64cbd2c93ae362ab439425a48082ebcc477cfd5a4e4887bb800ad37afb9d37ca07a82acff1e3b2e134bb57eba203b06c3b90fa9f8444467242ab4053846ec167973d4e80ef6b04097ef38ff6ec299f65f02a83cea38f895b99f55b00cdb82a4481fda7aad39b599655b74928b0b3ae9e04f746e40a4e9f6f529c8aa462d67c167130b5cfb701f0ad2c1d2227d45fe2582df3d55f99699d91823a8386196651f6a1a9960ccb2333a2e0a6a663cd5c9f9d846ead5ac59be5a374e8879232220fff3fe5fdd84dae653f02e2ec3d1701c52da0e4f33e9de0067d3e1eb4f3b06ce44380ca3703289c977f3a49f34083da0f9732635d644371c6ae0c60b124d616a5219bfcf49e44c064abee66959e542a8a28ab54b54c1302ac48416e38605226afa43a52d17845f320b9638cc512e771a39d9d2c94d76f02af050f71839d543143a35d96c81f26a66fc1731907d0fb875b73c37845dd541895cca8de2d260572a4a50917a3fe7795b2c2715db1c65c9c6685e4397252c02e4e3a0436340f11a4f8f0a45fc69b3fdbe572b5ae6cb31c1587b7f68bf206d5cecc7cafac9c9614a924f09030d165439b895b8dbdadbbda03e5d2681d9f94fafafa0551509111d643f0d059d259deb3ab299d19caf9ccb2755b769f72c7b8fc0026517986ee722696c7f959c201d8b7032293c5a1c2166f3fd7cd8adc846af05de93a1d990af00bdb369d0ef74cb535744aea5436703d59485a1bdd4bb4169eb8517a1561492a963af0aced6eeb7615d424bca7b715a4cfc23c3c9a4293ea9fbc28b43fbeaee29a1e22495b60cf8be7e3a98254553e4c93644fe436a2b6c49427583ff4761d38c4dec8b8209d14e4713c54070e56471c8431416891f85a7903d75a3ea1a331cc281fcd987edabfe8e445163382398fe8d6d6238322254a38a2947a7079a441b4973ddc7b60cb7aa7397436285175ee394713d38bb15b88776a1780504b32d9129031b50198d35ea01096a1be097275bfcded302718f9eb62900c00b321cbf644e1c892165900da1848a64719295aae4ebcf1319a6da7eaab6264afc44159a2507539abb379ddbec2dd96f9586a3ffd52e0dc5b132aff5f8529cebe2e99c883710e0147672aab48fd8a1588bf44f37386c2a5faf110e3fa69a1e69220c920cb2e36c88b2d6fd339b8f0d1ae5908fadc217faa1e05b3103c8c17fbaae37519613a3611aaaa4969133afaffec7b43eaaa5733aaa1a4e6aebf2eb2f131ba465eaf43af85e7696130565ae375421ab4e41da8b6d0b78ad80bf455f6d019027ace57095d714cdcbeda99e94012ecb153528d671fabcde51a71c646abe21cd9e71615155314e7461c1dda4555fe028d2060024e23c24809f8e7c289215b3ffc571f99196c8683ad9ee8eb291a1463496415bba7e4ec3ec188cbb5ea5c158dc6a9fdc99126bed2e9cce54db1c88e19552518c37aed1dc90e40a555d88e775908315203b23e7038297e4bc5c36da9e4b77de8a1f198590ee3d3b61faeadb9e21f0c6dc6b3f5b7e6ca780d8884d7499e24c678104643158b68b0fe1211c9ec80d9dc20268b8b3ec6039c4d3f18eeaba085191c2893319b3f74d19233418028332631463af3a681e972c64379df039c98f5612d892f04a65bfca4fff57f99982866884dd9d009685ebbc634c25f86b737e9a9fdccf5d8cf495bd4c3f8d4f25ed067a067327cd4ed67cd692b96c4632f0408dda114281cf45f3d3ccf6ac4532531593bcc4fc439fdac033b787c86dbb83c9d1e2bf4ad4ec01a9f9d949a7b8ce34c78c480caf9d4f5571804386d31abb7e71915d3abade73c7d037994aab009ed21e8aa48dea3d71ad0feae94b4ae7ea26d84848b5a7ac673dc0b392fb42ad7db34bbb45e7a64269b391d59b62b272242039bf132b0e3400eacf86e00f5501aacb4c655f9478a2adbb07fce1a6562aa7b404bf0ba16c227c6337e25ac2666b0f0e139b3714c2ab604d5e55196f861a37dc0fdcde863ab631ab60570fa6aa43481f2310e9b9c25334e2007008706c168607cc67080fc524d04f976bcc0f33b6a0e660171d94842553b41abe99b99fb1cc514bfcd7077b3cc11b7e481d8225cf8f78d6799df6daf5d0122093a60d9d061edf0c478498cf6bb96159af7398a91de6d9955313c79a699679c3cf73869045669f6f06f27d5b8c66a280f6a0263e7685f6a137d7c55d348e93ce6672a71f340f7d2c7e4f19a4a4ea562cffc9bc335a00e821a5473e7dc40ba28b147c75fc821f4b01968622a7b9454e44d03262979f32d1cd5ebfecc2bd34090b98024d92a4b0829deba2643c8e55f9cfd8eaaa8a5a0f474299e61a113c38d0254a22a92f8e74137a24e4e45cbba3e2d12d87c9e3e726d4350a39ff9f0cbd29ec4993aec3b491e6f6540578377c4a97d2cc885f2da417e669842c5e0dd96c5ddb12547667ba85098f97262abb11a1e3db75b6ac8d97923a51b58ffd53525d71125d569a9eb0edf962f2088a60cc8d4a66832c18bb58d98ad4f86a6dcaea3461c11695f1945a9b05a6de0b692ba557b2feaa5bf710dbe489f877410d4360f5c78d306c16e8e01f08fbe169a0e4330d9f0a2fc293b45e69882ea77cd29ce06c681d2675f3bf38c959a5644c051cfc9fb1d5f33bf50cf0a4630e906d75c03c17a9984360305b4a1826d6de4a6a057f570d497687102487ef4b1667682b49b4a4992c18d309fd4d2b2ae3539ec9563b7cf2ae5637652a981177600ca4bd4285ae5c3cf0c8bed4f4151c82d2ecc8330e0a661a548c797f3477ff1e08786252f6925874c1b21b1d0353dcb125ef90a0656a2b5662e114e997dd61c52dc4bec248809fc27dee1ce833b8b9c50b8e66f96e238054468459014239171db08bf9b4fec093e90081bbb48d1c0a4729b35d4042dc47c929d06f57a07fd2181b9461bc95917e9bf9217e30fccf5ab2891ef28496b71d83e3696784d9aa0c2343544ce8d250ecbe953dbd3e9a2c771b007d76c4700cdbfac6d0f975981f14e47706d7e37c0b6976dbb2e6c901751876de6246616443c5f638cb193c5ab578cc36645a983bcb42a348b5b7a177e6b97841b0e1247496c40fcbf4eadd38a76e560f1067b0da8838ad67b162c50875694edeb93aaca3e1b2a79eb748cd1efd357e8e1347b7eb9c5168af4b20ecb41e88721c602f133eff012b4a4e3f98873d552b680da11c4356a448c5f062c1248ee9b40e8bf35d4bde6243fb431354b30827993fb2d5e2e624fac6fe4cf732114b071eac3adb7a5b40051f985a3454ff0dbdc0b2423e9b1ffba4501010c0d95f508d8c5e529d8ebdba1a7022842f4dbd3d9135ab76e851f602757caf40c6601d6d0cfc70f8ff218721bac1f46c1fc6f1acdf297710b86a2120a726d0aa06a7557f5cccb90b35f88806ede0f6bc356c2215774b6bb4bde3753691ae700b06d6ccdc8c4591bf8786e51518b94ebec8f365fb38780ba67f18d40957562a797c758f704926a5619bba548cd0eefbe1ac6d8032bd94256c3939d2ee5f30bba845ecd0df1034d6f4864b772ab49cee3bd3c154eb2a0c3b50e6d942b4c50d86147380d183ad909faed51d886e58511320e6e120ef1db649b30afa8b37259f62ec4a94c2bffc2d82912d8816a34e28b182db11846f1a7d1ae6cab4a39a035d3fa7316b9cd56a73fa5c1fc790ee19bcac8a70ad2e543e6cf232420ec88d1053a4ba3e179f3f5a3a81b85a3f1b665d14e691248af3c4a32ad066c0b850dc0fadabe9f244132a8381c48f8097b7171a8fb878527064c65fc3f1702b2c690210efa3279801fb7d7ffdd4d8a1c2a94811fe45d6fedd102147528a0a133961731f13faca19f2d263978095b0bfdba8729c33e76e367d379983d79a77166c453e08487c1cdb5952019afb545e83d09de0a3fcba9222d42f4184a7268c92959fdf5f4dcd80150a6a056af541469a503e46673deae1249cb3e962abbd5fa40a4e13c2093ed574d9e3c6a7eb96ee40cb3699ca79c265363b15d4d663eb6db5b0a95178e6bc92089f2825192b5219cb4b2861afc375a7da75b5a4f55407ad4f9da4935556c5c9ca4f233b024131ffca0bbd657bc2e5792ba9c0b2e5e95f6996b350e16ad74dfcb959539888531942cd129388a2c63b49d8b53b908865eb7530f1fc50411a968d0e1388724559a4580ca0e3b0effcc4bd911c9701451019079ce48dc4f2f5ac1fb2ab0f3429f066a2dffc58d4ccd587b98d9b97000323bf1835b6343a65080461941fc2d44eec44f788e1da99cd345e1a1e3977fa39aba94b9c6be56dc93e2bc24a50253396e41bf1e87865b4d8da5052e9c3ec1248fb6308cd4913ea8a2e8771f9cd6cd2a8a66c528b15df19975445f2e55eec96cde46cb3d8670c8cd482b5040b804dca20be3bb4a21b9477d2b486769b58a51b735e8538f46555b08256b9f0042f7f5c0c810ddaa67694413bb93544ad5650d43adf657a26621a3c72a3be2fa90a209d4fc97a43fba44a720fa3faee552a5c06d40f19357e8320244915daed7b114ea90ad6e2c33375afc823c0a1e4ea27a3276c4269fb99686cb071c6f7c15a7bc455d797fc87ce02de1209262ab398709cb557535739ad340ed175668b86b3053fb952e0ed29e5eb3908926b8445c8ec8e33cf474907a5f7254728f90625fcc1c18ded2d1be2b5dbd305cae8b9213349f1b5a3116ac9679356b6d4bffdb8e961277c46a3abd12e7d4fbd2d0acb4c1e9cbcd6e239eabf45e7f2b8b367e5dc76612b8175e73fd61565661e42d3e24da58498fc3c6e4d6167931eca8da8077f32e02c6d7432a45d914102447ff540eab0aa6b9889dd514dd69cf4302290b0b8e4b733c0875fe23e6aa3dd4c0506c94286a08db913d0da85fd2e284b8d63f72c2103bcabb738461d20a844c3c98f10b220a9c0f0da9aa95568b58d08ce1bc9a28e8344aa5186600a99a4b91818ccd838c31a8ff9b2552dbd14848a578f71e951412a5acffd8d66c46c0480415529eb6c061a1d6865dc9f4412e023cb0bb8ed76d0724c0f1a09bc9a440962e2d834bf80257fe66bb28dde9dffe052bf70eaad2d6395a5e6a662d2632c298374f447e88888c05ac043194be49e270363a652390765c93073f3711e1937bc62319ea04c3796d1cc3ffe64d2c71c02b82c324a25ce3447337993565c4b9ffef66c885a8d15eeca521646de0e328bc9a8ad4b6abb25ebb7d6be666c0434c6665f10026d48936603b692ca74132634ff09162ecfbc841f1fa67eee4443b9e3ab30cb116459d2b8705a10c4a9f4fa83415f4247441526328123e8fe154bd1d48eaa4f465a46126935a81c261df3bef848f9fa6daf4a5b9128804951ae7d8158efd3a0723acbbb4e8fa9f34408369eb974dcc5f98d112ffb0b213ec9d954999381f2447eea89360823a60f476f94c16dd8f7d595a5ef15d7afd36848c2db5cc339e0c61e66f32ad319e8a18a1bf9d581277af43386f7de24b1a2c0b0604658a01b495acbb739cf11f4ef1e8f00e9830c222b06c3a9004573d65239a95f26e3890c9aaa065ce4c36818e083a9a66593dc9fc1de2e6fe7f1c1bd1aaff5966e9ffd7b9529c89ea14e6e6d4346618b224244d627e811391c3eab6a3113c67f8808537c507056b892f47fe4040f0886307d572efefa84a24383a7e90a709ebcbb1232c8fffd35f0fec0961013e89618f6b66d66370492cc8c7ae6bc4f08176c5e577f65d4f1c3759e3ea3bad7a039d054cfb76f5f57aedeb2fdfed910e750de98764237b0d791e1b5eed0d41aa240eba48dde66677ec3ccad544e4e7822f05031ad099ba0ad48ed86f35fdc4494fb32ec8d954ff4ad38492a964caa90e0ce7b9022dd10821e3756605222d3e440979a38a92a4e46c1aa99fa4e388e73d3a0e8af33dae060a0b9f54912f17d6df0e49a8c58966cea3bcc8d204cf62b020c5648fcbece2dc29c9ea3a5b4dce540083ab1fe95250cd0b7505d3bd3ac9522777cb33bd09cdc5a70bb1943869c4ca2143cf6db85d068eda7294b927185bd09cc116ebcf8ca424796cd39ea9369f99809fb75f024441271f62c92d211dce283acc15fb0b6ba9f28737600b7bd0d5b856b8b00049c59e4b2ee711ed586377c65a99836da74c99fd74f317ddb5c67a1e1252b4b2563120ba1f1d31fc3f68f56e2b28b3c103ffab08e916417bd2285835c73702f51a4169a03dbb17bd5981f49187241ace054401729079caf3f758c895bc152ded65504cec413bebd395832fe4ee0d9815227c7959b3355b1088d44e40fd6b3bef70233f3a26924ad373b879154b123839458b47699853fc300d94c2de97ce8fd5122859e90880a863651d76c66c7161477bc763def95eaa941fc3ea4171bbf36b6806c9816141a4d83ea445b5a404f5ac7dc043ac9ad54dd11662b9beba4b43a185ec0c4f1fee3d4e6a35131d57082affc75301165474cae43d7b16810d869f8cd11d9ce95b56cdafdf279e68bb7d31af1548485f9896ea8bc77ea08e5ce00e9c9eb888d1761de11f52d2ddc42b35c8d1e637d319f51f8ee56555ae8f81b914503d9bf6ea6ddce08d853d68d32338ca3dd43bf3b9ca4e70bc13f49c194258cddfbdce5361b5b813eba6b8235c17ec705124c05da6e6568b0355a769d2f4fedc7209639086a192b165bfbd20120735eb33bc18038a1b9522b97902312f8c474fb70284dbbb8735f9ecf0dcfda8e198c8e6d618f1f188d6521973b223dc342ba20c613ec35b25361506068d762b624427d1c8cf41f75a1950715ec27e59bab5d30f91976b735be38011259ba122fc8da81c0ee4d137d3ab0e4ddc1a3d2c2e98646b0213001c3a3b0f4ca5a2c851355fa12295b7b37d5a9b005e0c28570b04abfc86a4d98630347b4a39a18fc3c7c692f5cbcb9b346e429474b904895e212a0b285d157a7dee1334686a0c6622ce394f4e342ade1ad044f2aea2b60229129ea33fade07a43bef320bb53998cfe62a2cc90b93d26fe0079806222af3070aad7714f1c16155d151cbc4b199796169645f797e5fdf50c19293181d3f0d9fd111d17f192180fe87cc2530aa274935afad92f6991e85a09ec9179b595d136788f2de29670918b2d09a50247d751442512276d612617888fdb1a309a9992fe2ee408f1ed0840b5b89929659c3b82e399c3d6be7e349e69389b02e58e6a8ba117859710d7b33d3ee3b87e7c965126e201db7a324501db1a6bf3261b827f06dbba927e2a233bfbf158eb1f21ea517c8f4fc38d54132b063889627eaa11a10693792105095ee748d493f1ccb9dddb5c8ddb6ed94ec53927b069dc1c0b1dbda5c81c3805df5fc85c009ea4818d148329cd760f49dd93d9d18fec4b330ca262ce634c8707764b78df269f93d0a6365ba282e75cb8275d8f8675738b080fffb175e9b0b7ccb517718bcab4299072e6345b07291f93cfb43217c48786cd6bfe394ad7438a1337be8a6931959116440808b554bc09b9a367be61b0c54c3a39dc09657f7e312130eb190c99e08132593b099ffde507f2f810a993b9277e12ed7ef4a99783457ef1dc1661538ee319949473e3a77c5580d5617d74ee1eead36098da561b1c881aeb2eab793e9b4af4f8d94a42df911fa1d715a33639e728282d782ad24456e231c0411a89c6ddd0876f491a94d4b82c67acaab9ce8634739859b7227244294be72b8c8ad11fd5c1f470708d5b0a9b1f8b02c3fd7a5c1495b97b539b5b827b041127fc67a0a4de42ee1da217c4f696df32ee2527fb58a92dee957699d41092ae07e9d6b05e10d9bf7c63ac1739edb32c45e5bf41b232e6da2ae008f3579fc2c5078be3c76c755a40113fcf5a882c41d9d9b62b1afdf25420e18ac80e2826ebf40bf96128eaf5a1fb3cf85a49f1a576e24613254f7fac0826a6310ee6921f742598dc5ee84b2fb527ec47c52aa0cd6298363d66e8c05d1cd4a8d8083dfbfdbed231490d62e49a381d91f3d14e3877320b4a038d81830e201ddaec91e628d6d02040d9d3e47f276121a6926449cb915401adb8cb0dc96f9a2b3c814e901a9ab44142456bc1da4f8f833b8b10710cf647dfb95c78552c1fbfa222e3f9c0451264021dea65c68a41e87ce2027d8e773f76b26904710ce865ed216bc38622c14d18fc4a248ef3da49ce416b1549738a18c16a48c6c910667f511a550d02ba1d7e0339c3a8f8a116cfa93d60969c0fdb8fe663c1b26059ceefc892dbae83cca22a9e14f2a775b82f93cea321ecd5b440711ff18b22416cbc4181ad6202664969961f696a4cb0feed6ad2ef367218ca463e7c98be3fb87ba19f0c13a1c474b279c4e860937030be14de55e4520600d878b2bdc57b94793e88cb8efda84c7603e927d5fbe358d44edf39f2288c5143cbe7c7f1ba4d136935d2556dbee0156533f4704ba8091ffe7a0c9adc48659496b8a4ad02903870250a8e4a612feca82d151e907ee47d4a185e89b6f88565f3c71b987994b8562eb0049687823f76b48884543988981a83e2ef37a355414ade8c512991700a71d66506ce48d6800b0c03713c30d1d296a2baf7bbf0c34049dcae870a16e96718bd92a6f3cdd581ed5729c5ab04a48929155bdca349043cc902535e6a88b4cf9ba438cec2b154bd8e348d53b293902306841c40646f200f9547cbad4c0f81552fa09607f3632935965fc38c0506e8f231701fd76f90faa16213dbf02876b856febb5ca618f0805af0a8014758a6c505351a1bb2bf9b3c1b36a5e69bcd6ce97caedf40e98cab71bb73f10e105a31c70bd472cbe9e6349f1326b6243b29990527aa71e20d397bb482f89e98a4aaca251f3fd1230837e8469f5f0640d02fe8f26289897ef172303da6ed5350376ee95b3dd1a980c154b84aadabcbdcbd783ba0ce7b55221f6878bdd97e21386af5e8e9cb3d795f1f5499fc2761f015366a86db3af49b6849428f58924c9c190eeb61bae52e5c205387d1089b9097c0cd22929bfc2be427416307fba39381df510b6338ab4291a609849becd2008df748589e9a4b902e305dc58cbef567c2ef6696591a608044ef77a29959c20d9479c9c7c9ab4c2915ba1a5955a3bdde90979bab01b85e58808ae57f2b8a279d2ceb91baede0347cace8428f0e9c4e371d222f20ec5eeb8ccf88c9680e7ebb883be6dcedfe7bcb5df4ac79c130a7c7c87c382578587a6ca4870dda59d24dcfecc0e038d38c66f01220989b8cc1a64dc64983196a00f5151a9fa4cbef1cf243827c9ea2d5dd33417488c76332e18157d52971c812007c74634006699f428d9291da9627364ba2eb09900623812c36f4b5b133581ae18b56029cbbe89694d9c8ea8b5517dc0838bf2a5f75614e0e6262ce71cf71198604e9e42fbc5a7a8cf2da06b88e19f3add24f73062348b1332de96539f54a16c446d4c46c9655359bd6893108b81c71477ca04e9482414be44103ef1d99a2dc7689ec9d21f1b6c1224b8e21313a03518d46dc1595160fb26a6e75849a87b20b5c5b03da69ea7a59305656a503a51250d3fb0e262b8e3157307a94ae07cb07e572a41aa14711be13f5d66c925164d67c6655df969bf5901e9d07080cf269470444d17c2b7426a923b695804bfe532e97cb86f57cfb446eb2f7265b6e29654a4906d5071a075f07f5b23cc688fdc471b5ff86e0b8f5b99ebeda7fdba3bc0ed6f0d3ad87f63cd57e7c6d40b4abc140bee2468fc53d04c7c59eb39fcd9d5f4f5fec371bc9e01734ecb35fba260fca4ba7f43e1070f7e913c195f2ca78e98fec5e3692c12c4c2b952e04c04fc76f94c1ced8878a720e3e0e43088473b86eb978a385d0db0044eabda2450426784927c32f34d085d70415e6780c6cc04429e7879947a368ab56adcaae1d0b20e2fad7e0d3382e43dfc0d610827cf44d854a47dc0f42190214f79a38fae652badee47e09680fceb40a09b5b56e32518c68d590fb20832d043560072a6c052129084b42907261ab092957e9c2561326b83efa06b69838b9f165e81b947c3803e48f830e48fc7dd34905b93bb52d7d9a0ad26ebb5490f9a907c09c697d8e76e6d3bf9e73287d7e00cc09ea2f52845a95d3c4ef6e418d1c399c26ba9328478072fcdb9f5f0241821c227992ec72c21b0f6e00f4e6d7400a900bae89be29c36c2a06edb1efa13d667f6ef7c7426e7bdbc30d7a3f179adee465ac45a6943d9f8f855cfeece1f673e1ea62f2f9f2883fedd753223b11584bc295a9c3742f2e3f9836a22b711c57c2bafc4649edc39d5964587b52dfb80f330b78e347a0aabfe7bdd1a47e7ee4f2db10af1042bc80061d85b8ec9e5ff721ba0f3e5c27729ceb341f12dd69b32a7d63e3f64f9fd3681a1545399166139692244633a9c8288912d66c3291665291cb39a7943e251417a22654ac44434ab548c38c862ad19012ed9391ecbc27bfa49717c92bca4814aff83bfa92d14e7ef74e98d190660475b03f67f28bc699494ed350c7152fa1231790912a4b6a4ca599e438991a5ad054d28c4c28da91b9a4cd2a465c40470861463e74a3499dff61bd22811492362edc78b85c7933d6a452dfbcdcfe1b4cd4f99f0fbd5c99e4448e637acde43991d3b0c9e451a7a12bb16f62ab62e3c4d6b43a1f7ee7dffdcb26c3cf65f63aa7e1fa97def841fdea17bd683e34145724a85ff58825093a9a6f52390d3f6624734d9e0e9891e3f8d0d0507b8c0a777ab5553798a81f667433e7e6d4c53c0ad3311c1bc7876e6e3051bfa8f9cfd5048892ad76a85f23b57411cb0a8a876ee54e17fe6a87da487db3a53a70638b4609b2420c6cba224908d083ea0fa5a5adf29ccfdd3bcd3f3a141a8d261619fe911f5258734307d7e53232d8344e9c096c496dc2cd0bab8022e90abd10bb29600084a0345a5e04a144165008400e5e688104184421850eae2450b1c452117e618b0746bcdddd3d761a9123841046da1042e8300265304a2923c39663ac545354386ca6d8c87453ba999ff21a9d425bea940a618035fd30c0e0022a54a850a14285998abf278938d8c62601397270fb8cffaf542aef96286b95e924944a604cfbf209e10721843042389d36d562c4660f669841699065cfcf1a6cb188b83d7d63ec6e8feda91f57da2f03973f327b91c9793996b95657403057589a2b2c20889165d381103a6cd4113666a6b968d976d25eb853f5224669dd0a8a458351096ed1606cb4b848298dba18cd61abd89d4589ca2997494163156e4008b556f94729a9bb0a5af4528837b478438ba81cdad3eca603df03c094d2dddda574970e3f0b42e550b9576042e547e52000010c60002ad411953fba4a95322aa38c0e89bbbb3b0e2a3f6c870f5b344efdb86ebf0c780f3e0821844010c62ebe4038a774b9e6b4e17eb540880262675de84a587850f9230b0a48ce6be59ad388662694966951166d5acc4eefeeeed1e864d44d22961d547eb9b94714d074afd4330857b0ba86d358d790976c211410c39a195fa64b171fd6c84c07183d498c28a015c8400139843206a653319b0e7c97819fda74e0bbcbc8581a3c79420315283d3550599a50929292c0381a8b95040515224419653cc3731c872754826066fe828a1390cc66b1b021166b5e6dd4454a3ac9199d04a6897a28262625d3791b69a1164ac1a583ba815250c1066435aa70156c88c503962417438902851b5a82c59a170ba949124a4967242591740512b7c42d714b49a6282491c4c256800d6140409c46c258707b482625b14091441252121236e4a4098b098b0a8b1b4a82c54a6242091525492c6a9444126b562e22b2c1498cce304ac286b830adc1c2380808c888100f11406605ea73c30af2a2a1420315283d3550599a49496608098214835fb7dda613b1a1a42b90b0212754409c66b1b260b1582b88c10d35ab997053b8256e4963a2b134d66d52804d07c9e4968ac01202c4e196b42792a891290adc1237a571a6ed161236840d61477c013b58f392accb53fd19cf721c99d42f59492ca525549b336c6c0cd0325d67800370cb01645a80d811880d69acdbafb134268d239dc8a42faa9624bf02cd0475d14527572e7cf8cd389288e510cc38d0694cf793449a91265c1165e8c287d085645061237160e6c09ccea9552ac36ed6214bfd6068e10e8761548ddaf008b24c83d5bd219e04da1e3297722b5381a6ea910cceccbf6b14d2be495dd83737582e24a51129d4ae32c2883aaf8c62a64cdb4e5c45adb0b4c8d8d091eab40b7f2261a52a4b303231309c8484911829262625d3a55e52704941051b2b80a1a3e5c2159ed48f22b912160f5892b8e0f64f6999b5c21735890b8b920e66e54e3672245c34d4dd0b0a122e4a1c092749129302004a2605ed42288588720080a632a2ced02b281277e1532a204e03d12c6e0f35d08d063a723f49746a20a321a1db4044109d903c6d83cf7c64a8634142009a4a0610ead0ae13694037d420a4096d48188807a02ac1fd245106149efcb92bef1e8b1af7fa540cfed7c3fca5d3bdf4608b74f7c75e7a9f3f77fde74fa720e25e2fa73072b3f7eeddb3f1d23bc99f7ebd6f3dae6779eab13ccae3c9beecb95ff152ddc3ebf2f1eb472fd5fdcbc36b3279a918b287f9ec616caab33c7eeecbd77ff9fa3566ebe1bef22edecadbf0beede9b7783ca8ffb92cf6cb9e529ff178e857cb7998e6f1b89ea688f01a1dc01ca3182f5da7182b5d77f720aca11b037e96ace85f5b03e2f3887fbd7bd1469f533071f9e1c75fc987ef1eeb3c8cef363e0412ede793e211ef8eee8dc80d4123c801e842a882d1f2c0774bc4e77e7e61d7a6245a5a1a7bad25888ad59656ad8aa8f165b45680d0e7f4fbd35640b774d1f432eb4d674aa07ffb07f46ff6e76ade87bdbc3ef37eaec98349b7c7efe5537e97c1652cbfe3c95a80e4cb6226d392fafdabe62a07f5fbeb8c31cdae0a84bff9aef7f7b180bea1df109bf7216a9d7f4dbb3a52e1651b213d4188740165f085aaf96066b63b58506b701eda7b8eab41a4204e6bd7fd027c505a6bf7afb29132361f8135fdab263ab8f2416d6e6e9e5744ee874f3525ea0d3ef7aa6105957b5ad5da855c438f7b32adea6ea544fd3e86919232c8472a6c4941c4f59ef3afff0175f0e5f9570d2fe00475f077f15c3f63d4f887fcf9198b477f45a66fe6d095ffcd6f79b9f2dffcd3d3b7f1bc019949908a6ea6cd4d67e5a9575f86fbf90c61cd77bd53496db66933dbc6e3e7a25e26fbf9836e1fbdd4cab33cbca696b7e17d33b5f2a918587e7b96df7e7bb805d18173842034c047dfdf85c543fd8ac7e3e7a2ac8b473d1ece9e3c9ecdc2565dcccbd12ab69f36a3375f833a3a90fa11e3ad7d295fc903320102ba5412e1356c20029780806ecfca35bdf768d704a4864b6d2002c36d58737dcfbc980dd8f74c2016b894c88d0bc36558733db510ae361ef1e767d8e663c78570f5cd8f1a0e086bbe93ce0f588303ffb43405fa9869598c317e5a4fbc2d1fb2220c193713ee4f95dec8dc184df34fa7d73ece64f174e2e4499e7ea583fad1ebc12be90c4befe8df0e464b0a23f5b9f8a33dbddaf5966bbfeb25f7d8bbdc74b8eaf574e422b7692e7ba4ec1f8e5d0b4a29a5f4a2f4b12cd3918f7912c3306c7af3b16969ab2e29af992bff9a266f033397273e7dc99a5d05a1c25649cb269e3c741d11947633334431ceac84e06f4551745dd88a4208d485ad28846e17a34892821cf8e3a499e8dc2101f285cc2312aadcaf5e2f9000e5fab7344ee7f8aa07b53f421b6602094a2e6c1da1c93dc085ad2304712d8001a65167d5830a5bc57c79b155f2572aa83d563ba8f20bb223848ba87d61eb08476e9c22839da93c9e735e2ddd37e5f8598e8ef2f673c691080cb16364284f1dac812f87c89887ca10e270c32bda85a6a209bc5925a95fbdb5f3d50d3a3f42d01180580af919c59e2ec5cbeeeeee9fcd8df663fb5d0e2fc3cb1f97fa263e534f061fbe82355d7da83438a5b576ddbf2adac47e1bf76ad14c12ba7f618b085014a1cab5b9b05584225c2896ee0a17b69ef8e2f267543e757fe83198ae5f2f85c0eb3cf050dc7420f566bcaf31caa8563f547e68439b067e4378a37b2d5ea523401535b0a2cb215fdad8ac80d8c2d99bdddd3d5ee76e2eda598b1510cdce1c8d26f65f7692b9d071561e3ead5088776519db2fde28849fce8f89e0313d0e97bd2fa3ccf17dbe57ca93c5ec4ddbb36ff6eb6abf9ea61f47a696277bd3471929cb1f1f1ce66426e27ef27b9ac71f871bbdcf2f7f9c965f3ee5a71f1f993cf137205f73d97fd8cfb769d4ccf6f4bd6c4f7f989d73feb7fdfc4923c79fd68b36657afaf2871016e217e24febf1439d78e23b5fa611657bfaceaf74c6aa4d1b9f9a361d2ccb3c689a9917a3330bf1db5bf9cdd3380f9b5008b3895e4f999a2c4ffcece9675ecbe561be3c49f69b599ef8f3f91d673eb51ff3c7a7ded7e392be346db685277c3d7eb3978ffd4a8f7fd0c9953f33fbb1e4815f60faa6c7b08f9b0e363d28ef35638cf15ed3320fcc828c75074a57bbfc2c8b8c60745db8b0d564e936615dd585ad264437834c5461ab09d2cdaeb6745909ea405d5fe3c28509f813ecef17928ae93ccb340cc33013a418a66930cf18b5f4e5ef68766aedd7ceeebeb963a6cfff1b82c331cba37dd87f6ebf28e78f0f0e375cc95f91ebbfc3e537fff2785c1e878b4928e394fb4dc62c8fbc7efabbf0f7f4f577f9b874e7154a158bcb2c68841a6cd8ceebc217bfcb7b17ab06c7f99ad1cd64ddfb602c664d7ffd1c82f994fd5e62ec573b97d800f96ebf1ff21d08bfe0cf167bff6296eef575ebc1ef96c7dfe5b90dc865bf17ce6ef6a5b343cedff17f3196937fda7af0f360f6e38da5fccc520b63fdbb17cbb1ffa66d3a57d1cd34794d53737fcffde106445e7f1766e18b527ac8ef9f9ea3bec5bb58bcd3b337abf7bd7830c7d0cb8d35ce401df4c2f7d1372b0f519fc3716a709af894c2a5fb62a43d7f3617c318ab9647bef61819fcc2f7d9b4bf9d7c3dbff6195f8fc989f1cbc7e4a7e85f3fbf06237f79a901cfaba4fa33cd3d7c5a15501f42f89aefb07df63b9c5e7bde76369b59e8343b27bbc6cd5a739d2041db673beca0d96a2bd6548c6c0ba0eba5164b77be94f107c87c29b1ef1137cdfb7c14c0fdf57303321f7efedbcfe73ca1cfe17c14c0591fd82ec0f7e11e07d82ef4c376e10464be343df4b46f7fce83391d1fd3aeefe93b3fd36c018d2ae5253d1231bfb718ba9cc178a177cfe691cfdf1e81b0b18982521b9ed163f42628e8da4177628510cfc41863cbc916379a2027465f1dc189132e7761cb491852644a361c5f5cf75893eb398f3a0d6689f806ba3bed90ee6ad7f617db95111ebbae9b169e409f5ef4f2be5a899f50a88ada5941712ae580f8fe12e8fee553d7d3f7972f823ada417dcb17a9ef73b4c37d8bf55979ee7d58fef42f5e6afecbc31cf752d35f02a87fb1b6c8cbfbc31ca3bbfdf545561ef5ee1579f9940358befe0c2b8f7af65ebc23af08cb578f4257e1c256129270680ef4c0f659286597e673c4dc4f0ec723800b5b592c5d2744774b39c0bffe0c2f8f7aead07e3435c34ab53e47f45976561e657d3867056e41824ecfd57039c01ff533bcb0eca03e5a9f954759ea346cbf219d6f3168df7fa582d87878775cbe857a29d3efc447fd8e7ffd9513f5cbc1572bc21579f953f7e21d657ff28a9cdec6765dd7d55df49f3a13e1eb2fec790342c4ef6577b8a79de7a35d9ec5aa9c46bad8a37e1bb6c8d1cee9b9165be414246807169ba22b36753deae3ef70b229d3a7a8ddd9a9ef9c4d99ac03501f511fbfbe7f4a02f5fdabfd2ae7a1fee4558ec3b86aed09e65c3d9185350a07ac823082622e6c61f1c5c52e6c2561088c2f32961563e8b00410329cf925e0421c8d4373aca8e28a18a3ad31c69615516e8c3fd3be8262162509d14baeafcbfe4d19bc9efbf67c8e76b42cebcf1eb33ba777ebc37f7aedb7b6b5e2088a6fb2fe5fed9777b1f12f6fe37d8e765abe9f3ffe0e7f8c3bddbbf5f1ef6c10eb73b4e3f26c7d6c9ce67a977fb12ed66707dbb0f179a7b9dee4659ba7599f23ec7db4373d6677b83f591f1e729aebb9e767ab599f1a9c26b36d7d38b343fd6c7d7c8e76f8dbfaf0b3f5b180d35cafbdcf571bd4c31ca8d47f7d0b6a5498b3b2c33916cfe76827fb15ebc339d9738ff28a686ffaea1539dad12c1739cdf5a62fd2821a755e9f594ee234d7e308d26c119fa307c01cf9b6887c9d2041577c910474e5c32d1564728efc99cbf230cbfba2c1135b3c115b8b9938b37a82ba93d30655cf71524aeeb3dfe19f63e3393db7226788b1f2743a9d9ee338aea24e9fca7e06984ffd0c321ff35cad94a26c2ab329bb234325979db8d373dc89e352a8df3971deb771dfe9c47119f73b7ae3388ee3388ee3382e559f3a4eccd7cf74b89f21e6bb1b2d8c55fde5380e2605536bb51fadd5b4652ba8adc5db4959e83430cfb2e23960b3df906edb388e4b6d8ffad3a7bc9887f1649ef33ea6e1cacd73404cea4fde8e8c85a95d853196b3df902edbe1d22c57d070b318b9ab5eabfd6890a7b769557d196bacdd0572ea5a55edb6c1d8aaa2c58442aab1405a89f86b12b7bed6aac2881bdfc6ca47aefec97e43bad3b6a538fb036561ab4e9fd9d3c797dbaf9c7eb352561a640af5d9e9b4d98f861d7e5aa97648a77d1dd2dd7ab243ba215dad2f2e2d365a5a5a5a5648387204f5ee2b2b4f1d07a6b339d9d418182fda6e4837a46b551174b3afdd47c33d3d749c9867a931f5cad3730fe3d130a4abd5fb68f8b10de9867434c02a6a50c511b7bb1fe0cb3690418ba835442f6cb55a2da368e48822547e2de367af07bc9065848cdbf595e41b172d2aa4dcae55bee9b8c3e7161555e2852d2accf0fbe1f0fd5cb7ab56c18f42069b664fe1cf5cd50d75d875a5a7c871eeaeca32cdbbe6c5e4dd3c98ebdefc980bcbb29e8f615b0cbc469c89f7724fd3348f91a09a56bd1699eb1dacf14fa2c637cdcb69bf77843351eb590497e7becc7e3337a3327dc3bd6ce91b14a5365eb2bc665740a81f64b5602fdf876a65d3372c2f1f47df7c2c2f3fc74b1788b5b8bcbb68ef436cae66c36bf1e265f13494075b553dced3fee469d4fbb2f799abedf0acb6aabad556d8d1c8e0cc6529f320f38f59b5a01255ee5451ffd938bc46b051dfc8efedf9325dd7352f4b3d2230cc49bdc9cc7cd1d7344da3da4f3a4d3ca8dd549e4c9d56cbb4f9d2e7ae2edbef7a138e7b997ef3be9fed33cd9bd49a1e5e3d7d35136c95c92434b45252e1571fdee42f13cd6497873d0db16f32ed667b9ebf79ab25448eb352b4a269b6a555b3b6eaa2de90eececabcf9e8209f4a5bb54485b53725247cd3b30799994da6cfa067d6e4f15c4f9f5eefcf3dc4a9382815ca7baff3564b6a3ff69c5769067fd35a2ecc4ef6fa1dbe795f77b3d7acc98397abbda6dc3ade00ceb8746511fc095730a8735e734e29e58c4b530e65cf5e3314d22a8e91c977aa9f872eb3ee8ece600b91b25bcac6e1fbb97003f2c337c86ee63b3946c1899611945cd9d39f7fec18698cf171d0914bfe97ffb42d1f6e402219cc42ffec494593298070b3d61a8773bcbdb8e4f1272eb5aabf6fda462432f9531c71fdcca08f1d176e0db01d708ed223723d46a402d114245ae74197dc98fbe3822bb990d0afd73e7bf1e4bb0490098c02881fe60f1dc4c2003f9000082180f8013ac1041bf1132a900b180610430061f383143643d0099b1400810415233e8713c65803850a59dbe1715a9ac6658ceff26394dc4e649089babb61f76dcb5db0d090b2bafd4127b75f8666a101743ba799dc5ea2dace69fa75aacbf7afccf3d2c69b68aba751f99ba7dc74648cae04c5cfcf9899218422b84c7bd371f959dc6490970814b09e0f1dfbe77e08b8d0c6002a1aefc267e6cbcde3a76fecfe9f25cd13bfb93e452671889fcb9776b9d67f035e8ade4ccd52e56a3fe621e313e6e7c6e1f6f36519aaa408a20d533e4316643ffbc7e8c17bfd88d7cb5f12b9f8d9176bdfc418e40fff683fb7b523d4012fac81ffe3dc4148f97333b93580d76016fa636bfc427669d4fb40ff885a0d136a6c0975d06f4f25b718e6cb8b6af2037de9679846d923fb49bebce66f3fe6fb43ee81044dddb8d1d7a87cbf1bf4de803ae0e5cba6061d35843ec898b963a1c26756d54ca9fc39dc3d462f40ddd13b7a04590d4c21c61863fc9a34ead77532ff33fccc9257366b643cf8c2f76b05127c0e6d17e6f7e0fb84eacf3d643cf812a0c2ab63c718e3f7d57534b53f352ded6aaca8f2a31f25535518b301b402fa1b87db0aa03223200b408531833311d6605167aa7c19001061956a9f90f1e0eba1b2af30727dddd6d8a07ed5ffdd2d92a6f6460d3aba1e7b8a7910892bd401dda6fcf9cafbcdca54c852a841474c82cf81ed420278a072e4f2c35394d1cea85fad2d9dcc47813225083d8156f5efb4aa3f48ab6ad0d81132010bcc29fd9f64b01db60bce4ee5ec07d25fd384eade5cd304779749b9bb7b4d1a9dcccfa8622a1a194c57e1c399bd540dd41cd52cb9cc506a03474bd7b1ecac541cf6c216135670610a198414150131a43061e8f2ad2142fd9a21d4ef359bbef9725ca63e5cfe191c27687705b87b0e52fdb0c504a10b7f9c2730c475bd7c29ffe766dc05a1aa325f97dc6210c1957f5d1ef9fec5aff3877caf7d7f26b71019aac2586b922ad733b20533a45cd8620294fba96e7f012e6c316189ace688da37f0d69851bf678bc46ff81989d0e7b83d552a36eace2cbc0a478d13eaa752ad6c70e4d0581e84ebb0c6775ae52f43abfc7db4cabf868a0c4176a46703dfee66ee98d57e7e2530321e7c4d155e190fbe58751bb0a34d6494d60aaf1a74242d093ea76b17bce509758a8c7f4a1217b69a90e4e2b8b065861a176e3fe6b5b3421832b904659545af414751be6d29a9045dd89a32a5005767a655f2655a25bf6b95fc9a343a999f516541973d1bf8c68f16c97c1609865a54886ef4606b0a933b2dd7a0230f3a62d94119ac41471d74041f76dddd3f5e625183035885a6c5942dfb254b29db72d43c496d691aff8a84ca3a72c6e798fad1d16e40bb3cd5cdf09fac34bee06adfcce72d06ff113ff677773f4fb445b0b920f539adcc4195efee13b3745aa05d6e3a17a77ef4db0fc81b6db4f1235e6b1593fad1cbe3cc47b887d65212a70b5b4b33b8fcd5366c814b4c562e6c2db5a464b033f72123e23565f4e69f0a5b4b4131ee20839dc90b596750713b99acc6a8b256b4c30555c04068e9c88833a250c60f645401843290c8d8a248690d20cc58e2451269e0000a6528a5a0052d327e40060fc820bafdad127255dcbdbb0f51c140010612b47b072e28a208151441050a8e2892410d94a8b1548231988ca1c41835b830feace0891250e8f003922aa248638d172c6982134204d1851663383182c613c600628c1e964c1923680a1967482981942755a2401192528594286a7a78a26607e804b4a2074eace0074be8d08512d7136c58b25a6234b9fd332bed72c2859095c820e4a20cf6cde7198437fdd16fbc6de8eb6b74ecbeddddd64b1084f74210598c1e5c485c0d498d0e353a0059628423906086112c88e2a22205062b529238f24c86d8a1ca14159831744d9192824b4a1046a8444912034acd0f5713a43429414d901825108308b244f04b80024a16500063094e7448632ec18b2570a1061a68f097801a805b33730900801754cc42ffe7ddd8b4aab74fbe108459e87f805f786f0062a01c9ce3f65f0fe0aa22408d2c21dcd0379c05543511dccc055371bb9be016dc7eb6c1a2fe754b84df068bca83990ba8838bfa855e7f11e2380f69fcfdbf971b70e51f3d18e0ca770061412ca594466495524ac983058342198218506ac08230a0f45044185072301206eac256184b617cd147541df813195cf87d54fbb30b5b4f86b8f0db06355ed87a12c4850f75f00f114d409941144480a2648a194786e435afebba2e2b9420441150b688a24a1113b2d8a01801e312451103358ca050c5939c6be95e5f91eef585143c7c9346c191264e34998115579461c40a84f05518f08a256968c10314318e9ab8c8f0810a56604ca9dd44cb0d7cb0a9ddbf4a468f2b33ba80c1aa09f57461ab8b23f7ab2b2a5df420bb08badfdb2cc1dc10d26c1da8ce106e90f6f7671db59f4d0e1acef0713571580381cd939066bbb203d71faaa4c7ac4d4136ca8822a394416e87d8545965adb54509494bb0e9aa74f9fec40f515eb0831152300323ae31bed001fbc2885094525e325e52964c6898002e6087241d0cf1831f5a80861b41895282fe55315ecf0fa5174c2ed7f2820a150cb1f9ff192500e1de6022810246b3174974c124ca1753c068298148093f3c79f24409890b2ebcb8800cba287aa28c35b610e38aa2a4d483129430022535ba5052e282b585145bd43c09b2412b8c229030019b800ba41438a9ad2d76b045122db2c8c28baad424f597dfc3edcfede9f1c8ff78e466facce41a6ff34dec574f5fccfa673e30badcb62c7bf83ea369a7d3c36fc66287e3fc2aa9dae0389d34ed619e70a884ed765539ea949a1900000000a314000020100a888442b150381a88b21a7d14000c8c9c40724a998aa32488511463103286100300200400430c1999a9a11a00ef8310bde74b3e7a24ad1b7558a53ee2de80beea235d13dd21a01e0816f57c249d5b4b749f633b28fde803fd99d6f568a4121fdd6bad10510f10ea3d847a22d66b88d44b8816ea7d109d63219a0f8add2e5cc90f86bb39fbb515bd22ed80dc251b278aed6407bf7ec0d3cbe27bb53b7e7740a56edc5dc9d81b03e3b0db90aeb13b5ede9a78cbe3d5898c2972f1130a5e66116a89162576e6e48c63c671c0adf48f14a7b84b6ab5e8690836d0a1860c0ad0127b00e8b8b5bf37612c666eccaf2f2575b4550a032a627853fb2b2417c09e10222819990bc45ffa813ede3eb639bbf45eb37c3378c69b0ffbc654435b8d57f65cebc753cd6d859d98260dd61b22e045b18fcc8a29a04cbcf0aa09dd3fb581ca28339c1f7bf683fef502daad84b5962b403d7c32b4ae247c9f30d0d1e7af6cb9c1458cc2820ac0515981b62f866cc002b17a1ba074e80427a222edf5000319d33cdaa0f188b3c8ecd03f9c9ced4cd9e279ea2c7a696612fd93bd43e0d3f644da914cc4e186df20591d6bc658e80db832706df70fe790f6dd9317277ff39fa13d0ec8794d1c28bd2aad9dd2f90c76f0bccfe52d78eba6250171bcc67a322b4921ac80b9cfb0715f437c453e2ab3b96f5481806030d40be0af443973fb4598a1d4c4865509b060d8d9acaeed8254931d8d7e5281d3178f6db0dbf93362bdeba4b1f547be24e23dbde7895fa8e3848908c71f972e180f9aa9fe553601d1abd279e4e0f60985bd2b56b15a097683e648272e0a4a72007a2cb2140dfe290880f4ffbdae5b0c06e3780378528db598ce77a818dd5612975762e4c96e79ddbc929a3306a1792ff2fecde267268f6dd7abccc11ed4c3f029b4580893f0b3d5736005d2593252b93963ef7d436b6f75c071c24c1e14e02c921a9d690236768d5ec96e6a23a48260ea89b8451f086f95de8852350b9e0a8d2c1e28a565c7530c016c99bcd390113d6363df5d7f347a6ba15c411a5f87d4034f3bb43c194abf57e7d54e61288c0829eff79a4e9385e2938129790dc226a08f293b6c906a132f80a0035fe0058c223de15c20ab3ba1db4e64ff4822c4dccc1f0b6a5128f69de9808a04da5336e16338aba943715fb3b2c0184ca9da04ea4de5a04f86083eac2e871a48f3fdd65e6dcd8c1e4a5c6bba342e98775f34602841051a28b8f00dad0437e1c138252628004d55411827b85011c466a84ee705a5939d8c70a46b3386b9599cd1426e2911b0b3ada88ba2d13dbc2dc00fcf087b07638ac8e9120de114d14509b54318bacc5d94bc2245c868bbd62956522e506f368533e9b6eda8493c07f0f46f8d48e228135b0799cf1c3236118a8a886a384cdcdef119b07db1911782236d166ee3129f4e3823f1050c32023348dc876179d7b5c708dcabf58ad08a1ac1e187eff26a6d525140fc2ad96fa3b14071f935daca14e3e8cdbeb141b5dbb013c9764c710c21538169a105f6f5936938397d7c1c24c884e9455e38454e64690a991177070c34317b5a82784d65b2091c6532b499e47d959a07708f3a5bffa76b18867b99c58e9149aafd9694a63f85134622b80a477e7dc07ba3f165bc6389f4c22855717059dd462250359743a435fdd80cbc870dc8530e826ad26c1618b82b2c2c133b86ac32c001adbd96bb45f8fc2c9209c19b0450a7140ade17eb1a80589777d30155662c914f719556a56165be9ba894bc34b8bc5716374c84db14230e56aa274d1aae90d2018110f034af439502d530e88f709ae67e3604541fc37b4bc87e6b1b50a345ca60feef673720f6339d5b8c2900af3d9fd0041aad36f0891fa58d613cd9bd8a342f30b571eb0cb4acab4db9e22bd5baae98a294ad1babd4947abe235da9b2e72b49814273988d6423204e890f90bc9b9574f0e719843f218f8f18e85adb4ff73003b253ad2a111a4b047ef5d3142e372656019cfc4c37dce8e97cb86d9eae8c8f73cbc49ac8adaa76b483fbc2c9894eadf0f6ba043a998e94c8ed1638fc4a6df40d822c053ff72f4de1840a5223b6163b0928c09187d06da4e33e9d472f0069283f0bfeab64578a4a2a9c224f5000be1f11a52d763f33244c9851882963b159bad405722f90d1b7df3717e881c18ee31d8a3b5cb7ec81091ce5b244c693e32135e61e5eca525d78aa9adbae6542eab34cf446b4fd6cf5c6ec1b3f9348054f70801136834d43dd3711c88ed8a0dd92319c2b76127b47eada7936e6254b01ae53fd91059a5f720d0c196024ec48a8767493071cab80376b989b9fc6bfa96c41a9ccd1d2a7f1be8a85ccd92e3ded0e16f4a785657967c498b94e6568cabd11c01f88e54306fb18e4a5c5fa02bfbafaefdee7c51ba9f1ca69f7932b3c56d26b4ff7c01ad0082e48c51b391d2c71052c2635690c6ffc6fa6f8d1b692715bfa002b9b86b0204c0a054181730a8707a7367e8c4e71ec99b8ed3455a3b44b46668c3bebc562e4319b6242a3ada82f4643cc6c37f8211226d996213c7da75c5c47754ed6d82f8a20fbf50f04284c55778f1d623ccbcf4686aebd2e201afc232f6ce0f2631c1364e5c4075c97f9288ac222d4ca7e0467ab2510f7d6837335c87e6a3fbb3318068228c36ec90425848924ca1e4e3ee6d7210062d63d3dc13d5800fe2b102226a941cc076bcfd62a5ed3f6c8874f60b8383e38c6f7e1db194a1e80acb5927665c651d8bb9b79596a8193adab73a083c62bf7372ecd2b08355688fc2aba9cdc766aa38a8f1ea07fc4c0ec8553e3583e7a9b9edad8d63cf80af030d0c40e21c3882ffac2f532a54f478b23da12e757235e5d3f61ba164749bba03a08c66b28f024bd4615732236410f9483e0afe72d60e597a95bb68e83bde419871477f38009a47113c5af86dc4f5503ab288514522629b5c63d059cf94d09127a53bdec154ffa3bb828e4443ce5edfb67d62a03eb649fc527a028c50550f42e369c38543bf91929921ebc50cc07f30f45774046aa72367b8e05e6f812a03054239d6d68b0147ebe8cd4267a19f33ca36c7069e639e8134a24bb382c36285db6fc11bb57110f247d1ec8c171efbd1fa9fa14658f684256f82607d407680ca3cbb8a06fda13c60923389240cf98ad7f3a9536873c9f9760c23b2d7f80ed8f81eae598d849bcf8f7134ce30215c72ca0e415173fa94e2efd226f479657c0fe75cdf8769455a092ae08f3fb366eae8264f728aab856be76595d23362d8066e1a6a2a8a10c3d869eb2aba4369a22b84bd67cf44b9b415d4a9d645c449586f9ad1f53b07d8725a2837ab32e608f53b66007825ed2db35a4ddacd03b1e83c5899d49fac00e5b868f3ea1c901683afba7465932d8f2e7966005a5d02af4079da88746607771b2e1ae139d98f29ff4c5732f280840bce870d0d5ebc2be8602c049c82d04fbb4f796fd5e1464bae39df0d392ef0a6e6de7cd81d782852f9a1d8560eddec9c7a44c9453bee839c453bf262ef9d9b71fd4c3a4611c5b09734194d8662ab92b2f32539786942d558d97880ae4e75005f425b7ac58b921db1855fb8da34dad254a1b86c327033e1cc6886a3604e8c6c3f6f5764b666432d008d35143590c8a4a7c512ac32b4f50f12f581157fccb46fd267ce676ed35c10f69ba244bfc7be0114601ff6cb9710298a7625fe3974b64c2ba30371537d0a4331e91f9f5217a0b82001e66a599501a2be5862878b40a8281c3f5c3fe191882f34c5e4879eca48691f72e1f4b51095cf60c4dfade37c2b91ea63de6de7a244cab23006233d4dd97ee5da502197daf9ce2b4afd9e3beec2b12da39fa2224fdbc15d2500f37970409c9c4b91f68062b54bd10340560ea26e0795c7122c42978b29da796943f38330338a7e43e882f53797a27970a2ae7cdbff41c6ed98041d2515543e4cc31132a618a2f893d1dc8288ac457ee6d023a274c26346ad525f09bff76e963bee7043bbbb01ebed8bc3c5ce0d2a7b1b0ea9310208f470c814095467e060418f0b33bfa976a693066a3c7edc5327888858e4a6cdcbf597336612e3533f9879843d2c46196d86193d4c88e5816e16baaa8ef65dd80e8fbb9ed49b5903b0a06ed0ef4c814847d74358c5e22229801c99d1ec14ebd4245d07961545801e068f1c883c08c35de3d8c44a452974cbaafe3204d44dbd14be585419385ee723c5e6143db6abc91fc9889662a838f044b86ad128fc38b3070419c3c50e285b4cfe539d28f44a0b0fb2e81555196c5765d6d3ed8085b52a678a95c471e2f380dae0cfe169fc13074f70056c38fb23918d0c080c0f9aedc0f9b5c1355867c7c7cc20e210bf3bcc77fed2077d2fd2177da5ad5d3b49626880860d5baca6eea1b330b8a357b9f9e2c84e301e24bcf39962f76e8d4dcf3a3f44ff7721c4155d1b4e9874ffb360fd9ce24c37a151b4ecc249a8437b74e6d9523730cbb97c73766083a0d8dc2e61811eecb66786d33ae26ee500ac81cb3251049a0405c581de9a773fc74e4b36d3807295da1f8723e03ecccf780d5687053b669aca9b2ea71a0c31dd6e1e8b84df621e9983404299c9f4690314ac89b0df77cfc92522d3c349517bf419499d114b25f8a155d7ce83943d41f10b4d16abbc3791e23b2da64be746b2878f46e204ee435bac07154d2ec38d523c2776331dc42dfab145ef9678eab79dbeb297b22011ed6e281a9649b523fd3a90765a5f9bac5fa4df523fb3b77d92972f0ac9d88edeb07d22db0ad47aacbc8aed0ce758c19995f850a9d8550c5aee003427386d0442f023e244c71779d66953fc91dfa81e3667a7caa4479eb798d331b42b950098cd76b93606524420fc56b59088a748a47ff3c12a2a18532fe7f44c531f4932d8df51277a6937573815f206bbbac8982d02b891812e95206e798f8c124f268342e43e7a61e9c11c4f322986157c614d2a47f834b223526af9d5148dbedb101346244972be687beba04dbc186431c36746b6fa12ffe650d977de3bee555ca7c69808cafbeb51a89bed1fd938ff52632ee5f0a5e00e27b370f46c328ac59c71e7241e5aea5fd294185e4ea199da56ec1445560328db5390c1db5194cab44f3887783d9f609a76906481a239eca682e0d39661614d87a766cd86574eb4d3a947742b7c9754c6f0302d26d816cbe3461cc8d9a4edaa0e22c7ccf5a9f7a39f85a390730a68469c33048dc7e4bc4d8ba38bb5adc9a261e031e4e85622cd756a0ccecb5325ade31b00cb141d12b5c7ec5b766a7ef37767eac19078fe11f73788d0b0c00453f5f1b927dae58d5fa9f90d3524ad98ef730dcd4bd7647dc842657aae841cba987e65921e9e5728ddb2aa607f246a4c9dcb6c60a4489d00bdd2f45b3e3a177eb2f72b32e7dbdd45a3519ae25ef6397dca870c8e386e8cd3512e13062798eec37b84a1150b0e5697cc16bd735e867e38d0f5bbe07a334b48c63db9e3dc6cdbedfad9787fbbc1a4a1e3f41ee563562181d87aa9c55d55bc8da557c294f57eebf6e71fd06614c82a65b225ea8f88f8d760eb2b60d297e58e3a69c27a6b12340f668cccb28164ff180632b7479871a8ff8a8a4ea9000f798072ffca2b93f1350168a49b1eeb10ce7ef4f9608b05cd3735090966092d1c150552bd9d7da4b957e08519c2f138802ca853a588c2dea50ac255693b28a293b6046af985ac4dbe073c7d47947f11e62409eb7c5f527a830c314a3a58cfe359d3fd11881fa42a8fff8c8a12cf2ae1f1f731378b2b368719962dcce5f9ff3520f5f27c9952e1a1d9df10b383a378ca9f50ef54d2fbee00169271b07352cc78ac81fb3852b0e5561516bf3d6dbaa62b160dd13bd40e2b5f311cd7ddfa1ff9ed8edaa90902fc57f1b79b7496581b4fbbd3b4ce29b7092d7ab637ff83b14469913eb7b0b00dc2f6cc3993e10e666f11f60b64de7936cc95a7c08a138f9ee9da4e0bbcdc59c0605a25b1d008b457d7ef791f5d8c3f566ff96e2dadcd18801d44325a57588d748f6bc29a5db08721a7baaa4b0c382c05b446e060734dfbe5aa34a0111b02a7dbb82624a4466a83700f7c351ce045d90ae21ec6635adb35319c9168492b602ac63e4ae236db361e8546a818646c5acecae4262de16f48f56e3feabacc6c93c59866f364f3528e68796ebec45bac17538189612862b2338da27b54b93b9abda72da8e8080ce03b098704e6cea4638125300cbc6805b75146e6793cb45f7aa7f23691a4472b4704305be051076d447c12bdae68f880cb408f6bc59575cb76eed1048a81bb93410591a2ded7194c39f81ab2461a9dbfee8ff51d52fed46e9445c30de51f1d7f1bc1dba444d75bef6111f63e1c4cbb5c52786ad32da2c64738603d8336bcdac5183a3d2a802b8ac0ad7dd707845c513887c8e62d0320ae7b892bb0c282c57ae0bbc3fcc5770db665ab2b812739189d5289d6401271bc8944eb69f42630d28f9e9d2d0cceb553f60198a835da8ff8bfd07f6eb8a45b366cfc1c7a029253ec0a5243716908452ee19cbaf728936d5abfe43f3accbf79e01a6a40f67101575f8ec7cdaf328f11586dcda69885d22358936d4a1710b153b2500827cfd7960cf723f6ad30675d784286bda4cda05c5ba975c08b7aca448fa86c3c2bd1ce79a507c0d736c4178e91b17351ea53dd0683525e64417076e11a91f792aa17e6af5eea4f83a2f2b9472dc9aa9f36ca6f405d8e3c134f551ef4e0dbb1e066dcd420f6102ec96a5af82ccc65c9805f4de48c8f48e9ecc43ffeb1ae855a128b8d9e15b54112ce7a64745e1bad8b888203ac0da0f8924a95979793f3630d3ae84b012c9c747bbb0887a8ee4ad904ae1992ac907e0a70e35b4c6907c044b9fa56fe8a2ab7fa21dc18e9c326e0e560d3e81161c1a6f58d55ac3347a0ded787f15a3f5cd83840f6c7522e0fdc50c32b0d2f400b390811b74cc40805d30f691a632f0b8903354cd6f607acbe190959bc8e1775e8d6c4ea0092384c7c05a959b1c716f880e631fe31f090022a0d983a9434276b0ebdeaa9532915b4ab4da92f40cdebbbcc417aeb93f36bbd2c99d30d22c921b68054fccbd71c3fc95a3f53b4ef9c875e7c6581799e83f0ac519a19909eb2b1d5b5625657f9d6e020b8a5421010def8aa4805e0ec423fb31ebd4de9a787c5ba9da61a927aec5b970e7639dc056dc3a56225eb8d4aeb7fba91b7a28e8c78b1711fdca95dbcf5b5c7833d020bdef1f80e751b22dde4fbd313cfc8e95c999a6dddb77cca0f6622f04298b2fb4a001316fb31663f8d695ad15de2617152f9d33f782d240fb7890f98e4e91533dc919f13fdcbacb7bdad75d6a92504a0e18ee425adee1823788876630e550aab7bbf5b3e3882f7324ea909d6d2be80ffebbbb0671cb2a8473b398132a65f96c0044861f94dbd42fa7abb298a67ada59234960027c6411efcc14781dba6c7300ba395d621c1be9fc1bc462e7b90f25f8f7591aaa6a900bda24b1199647ccc5816e641c18a6990059d15d2d10df2844286b800dbfc9474df21f57ad689c4757c401c63a6b6f953cfd42cc3da00285ca3c56d9233c165b7e06ebd612ac723be6ea4c9eac710c4d190225f8ebda19f8f5dd5db01671ee741a0865d695051dd11ca62944039168052cb9d5e10f0240663c7a5b43ad24472921b0729fbb6e20d968aaccc65cd7ab6e99922151a3b8a1ef26eaa1c9bf27ebf687fadc36a69ca3ee6a3080804acb5c87535c8bf94646784677bd7264ba8ea3546140d5ba4014b3a503a044a71fe113c35220bd3f0e7b627f9a8475f9055297ab0f9284c85c704de714309203a107e5f55db234f701c15f5c3a127fb2ce858a139ca96e676da7e25f049d4370c9408ad6bba10d049c1a84590ec175e5aaf8b2883e8b3f70b2643ee278dd5b2b12624612766881e7228bbc7adc5803f49a4501d0dddfdc7590c741f3a0ce77db3be75738956f4a2ea9a80592aaaf5e3cd2995181003f1008a32157d76ace2550fdc334e03603d19f8cfef8952e3b4662bb93c7dcd24a0c1fd1894f66266ed1af013f213b428aba0cb350921f0620e92f2d10b92860a9623033b4164c1e7e9c19a6c3ad80baf4237c1e241d8463af988903443d3e1330f17ba8c70d00c52e36436429d3e6de254a8e1d11b194ae09f3b35ff0ecff487065d83fdcf9a9b01f737e3462c46cc6874f58b7a791f0692136bdcdffb2427385bacd77de2b157dceeee36a91c1bd7775ccba39852bd85db846461a4e80fe8340a0b185cb6a35b9ac407993da0594dcd087296cfaa34caa2d155588ebb5ede50e4a0e96cc92398d076a2134afd311fa3b1f55af54c8d420dae4cb407e3ed75868ad6a6f2650e53d82f03743a7318541c7c77846871075c1504a623fcc3b6b18dc368d8d043cf8799762b3770ce37ec36ac2eafdb495b6528692b90f15d78ebbefc8ab01a8c968440ae0218276d9a1bb03bfc0089f0e5b6f1a1169c4b9cf746b1cf183d03c549108e274b8053229395b63b53c92480400b356e424e315b24d068fade09b515cc2fc705ba5f0bcb989566f12881b05a73fe3e98f03802db2ee8481cd3a72e7209d0ddc6bc99ec77e4f4c280f90cfd2e0278bc02c0298ef810beab7bbeb97f31487c01df84573b1c6d1550c7870d5eee2df7f259ce0d12eb148b1ee29d17fcb55dde7a6250da28ed2a79c7d40f8943a048ee79b48a46b14546d08c5776dcb1da528c1d48e4fcd6953354b453d983ab02b1adc395f246caffed2382f8894593950f5ea1d67adc927c4423574a17cfd1cf0e5a2bb78a8d340ea87efb3b43a155c6e3e258e64e32904b5a0cd80737f757ee73025b72b7c0c009f61a6c3d812b4dc025d93e2e013d17f9a426756963749fa0eaa4ee7c8a70eae839d74fdb38ff1d670b275044a1de73b311486d9a0f20f215fc1833ef8833b92a6aa69052a9385be1bd1694a5af42746ce4ef72b897f6f5307153b1c3d52d43c4d8b828bb1a46f7cb48ac5feabc440c48b7dcd1829c6ad4b1b2cf130af9ff189253b0c443c3150b5b518571f40fcaad884c596d906008a7058990710a5f5ca04d8520cef88c5e4fd8b43e7abe29148ef794bd094919f3d15b7c5e5d86364db52ac4ed768746f2f2e663b252fd9fd3188f94e7f2e9faa4da32385606fdb6dadebdb5d0cb4f36462b51c7e0b1a8be2a33b9f04a3ced3341c3e5f19db82ec80ae15dcb095f4a33e8e8a7273532036c58b4c18321fc86898ee1aec7bbe692dad413341c81c4ced20cb3a40f90319a663436947ea1de88f1e6ee80b9866caa7bb0b5fcdd35fbd7d169cd83b15fdedb07e8f66613e930d6178d6b9216e925200f8bcd9648268880cba40776fb0b6cf0e34ccbdec970c9c9ab37f633f6846b3f422bd915eeccb9b4282a0e62d2a963dd2e0540f7aa2b71cf3c042126393a7561449c937249933343525c3de694d00a6ad6dd6854217fc85668626926006db1374dfd3b2712b1a0f8387c65646c41a5169a3f60da606f0e56c17294b8ac70031d67b86fa8846db52cbb81a1d87f6e426ac575e99aeab60197877fa862f365631188086ea45bc74c690408716d8fe54a267154b1f6214b42882daf04ff8f970ab157713f5496e76e208cf14c2e648fa9399005a7340ec22d75333545d4bd5d10195055a03d6294dc3927378ff9e09cec98f2245c7318194074cea961a72daed8aea19305286363ae76fbca77b8593b833e4a370c4584472a8ed36e323ff6f11f6a01e0b18d5ff760b72c827a10cbc835a5344ec50be97ee3869cc5bec3fc0c181035d566d973f9b77bf47a6236e54b0a66ba3a3b4e136efb78d717e61115bc853a23481f85b65e5a755aec171f33e33b00a138d1a6998fc363643f20269f84677dcd62f0737a3b1a650f3f306f59190dcd76d4148fe76363b56f5708f16d86cf6d15adb719206e242f8df6c6257c8a16e4b6b61fd70a841aea8a9f588cfea96f6ba084d1ab81073be9dc1746b9a2e2839a864065b5757c8b4cdbe7347183a89b7eb43aa6ef6dfa9191241d5df20d2366258a9917646e43454a2a6b014d0aacad05d0f9b3412e25fcbcc1f12268640163094c3a5fddde96e3649d6d7bc1372718060d0de4439ffb5454978c931bdca738b59c24d66644fd7296241104880ddd47b3f81772de78a3919386bcf87ce5481f71aabed0016b5e9caf8c0d6904867804605f122f901b0553b24c883a5bef2bff74b9e2c75cd65e1343c9deaa03971c087af69497ed4a939138a15e0b0d6dc647b491a5c34dc07b3de5763e31d09afadd6bac5ea8e0d3f44ecb16f8e7b1a3a05d93469f1fcce2470fe9b6ec4e697c34344169a6e9d1147bf400d67f9c23ee7d57a3c75bbd5124da08989386413074cfd16a22c48f7b42d1416066ab454a177c61faac7a3225f740ab01d2e7aa86e2aa1956ca25c2f041ab604f974c5ee4c664cfd251b3aa5fdedfd37d79a37b5f01143066d6cbcae520b5453c18928557c9491df5c792b00a32d2a66204ddc101959ae7610b52204d2949b2de0e07c52d8aabc176bd809138a0da2a3f4d5f58b9c53bf456ba2513b975829656acbd10c762ede3e15b39482895d2de9f2a357752acadf9bcedeafe62ea9cc4486d0c2b9c5936ff4d9025f0aa4c3d99b0919e7a55009570d6e8c787fdab48fce44f2c82f5b8240da7e9c151132d5a44d3231d74901a2fe5e90ac4caa47b3dc3841c601a464cb7eabd744a9fab38c9e98fe473c1a9ebb482c550842c6e48a9cdf2418f00e329deab36422d1049109889714e61c056187e7a660ad53b2dc9fe86610891d459b7b11f16862aa451535289144fa9db1f8547507287f470382af90279954bd3974ed83760ad35f47836090839f58731ce409450b57e4aecd39a7ccb24c9445c70db08a47ba8bd57a8e260f3f4ef11568a24e4c44d0b63f11c0998df0a6e640d877e4d428ebf0e763a02f5d78824516723499c141debdb83cde26276f6f87603573064e3e2d352f703071be8a3249a0834c64ed6e63cb50ce7bd7b9682050a92398dccf9442b51cec1d9c32758807b63decb1e1d5435abbd12a6b036513e5015c211100a156fa2ef1fb40470b2263e0c2fb7650883fd67021afbf9ddd974816800fba55d328fa7f97d4381c58340e185e1d45dc03cc9737c6504de2ac435a4ccfb98ccd13bd12d178c31a1d64f7f83f6712467c972a65c3899677d7a09836d43273e5b003d7e8b271ecb04a0acd94e25030a549d0012c6baf75f35e26c15441b3e0ed02bc3a48e065f69ff920934235e23829a3c32c0fddd6c4c100f6530862d494d9d77123fd047cc696bd49e63a7b939bc2ddc2dbb3a187485ab875322ad6863475c1f6e25bb01a7407d7aa3c1fa314c6591f25e1f10ceb7800667748fd7bb82259e1acf3bf2426c27fdea0f5329459c9c453e5cb9ef40307dbf297285c25cf0509cdffa1d69d14dd670e9993b3925c16aceef75789103c931cf6114d830711df90a63cd7ec242d9e098a5a51747f19236ee88f3acd41ca2e9f3da2f4ef55828dc613a62d1bf18860e2df25c0a6aadc53bfe106e02a7f5526420a4e811b4784e9a2548a44f06e91934d5d6fdbb931f387064e0e1a588d8bb995039c8123ea60ef14ed3cccf4d7a0a283364eb1baa466a54868800a5698789e64e056c1c3a29067a105bd87d49bb826117991f79525cc8184217ea450576175b3563685b1f0d63448d3aaa7ecdb2fd09a505ee42949f1655295b46a268ee0c1b9219db378d8d44172aa364aca9a9cdffde46ca1851cfda892424d278328c75d0bbbc2debd035a9936401af2cc16b2128a293800bc681497e55d9081e03a77a1faaea74135c6d2e5a42f234c67c507099dd8c1bfc9bc24b3490dce8d6e3b3213aeeea1b4f28a078a5eab9a889e67058923bd6fcea9c62573483f75800304026d6b561230e3ffb54db822d9965c622bb356bc924813b1584b821b0fe051e09c88bca23ab68710b8aa662aec06a4c1cc0a3f88873ebb2368e7d9367a9ec3ecc076761335b91406c4179328ad039a21fbb3757c7f93c080726318f688095b932af3e1cd8a37af93b0ed67541565054ff27d827100f5f8e343cc755e69b86f338995930fc83a6747245d286816b5319a1c2d277b6b862556171b2a1ee62d1d6ac73098e31e73a8811a7511f2047d64296d9fd3b703fba3669252d19dd84d08b0e3bec8e3df40d45b6df3caa9038d0ecc0d65750ad8897ca4345fd4927d3aedc849dc07881ea7f386fae60709a3d346411388389ed5d7111dee7fe5a0b0e6a9c11e9b2395d2e04b48f2093151d3ffc33d7608ee9aa3135a76b5bd50f6daf5fee51c7d60498b3800712c57c014b3f2cd83be271f99ba1ee74f574e34af1398c7b489b2cbcf5f12ca711eafa24eb55f8f7afb78d74a8343f8151984e1a05c8562dda3bfaddcf1ab56ecf362dd026011ea0ec6ca84c31efd58472604da551818b03d8ccc27e0c823cf1e3032f90c3ff38d40673927b1e2ca9fe3ca40962c9b8b9f31cc231cfc5f43eae2c218f44b21d23fe4f9e45af045fdcbbc3f1a45cb16071698d86de73be46dc451e03cf6c6cf459b1cc6ba358c9c1762c2e05ad064124cbbadbbbb2a6943aba2978f36fda3f99c59ce253093f063692e4b46d8f1a177366b64a808ebab40922a88d4467850c4c54d5f3bd08b1800506f4eb0d3b137e3a6fd669a309ae57b163cb80a4506f74a0784c34f41505e52c498a7834a7dfdc969f5fc73d5433d4277a061c4afddf3af9512f8bf314ed9e5d6bdf55ed8f522da49dd1f4874756142fd0478acb5e8a82c43b09d11b6d5431256957470708f3185f4928745ea693a211484d7a4482d3a69debeed477f2acdb6af77883c4328274fb775d187b1cf04fb572a394cc538f22044ecea8d7a882d0ce6a35ad6fa197d9d725a45a251848563f3b49b4a55da52835545d7ebbc27c0782d3e188808f9e592bbf1720a5809010f853e4404ce1e4a7787b02b8b6d8a297f343cb4a9c6307c8941880e0b9b969df2f14985a8274a9927862ea626e5cabf69244fdc984ac5b64ce396ddf06f0d997d6a81753fede92ef6778a4a876b908d08462b3711dfd85b5ca22323fff380490630a7c0a102c66c8ef898ac5ba6e195b21909a2e8afb1d36accc5893879400a51f64eb82100e5979fb78b3b7deaf58ca737fa5aa9a914a04d58d2e3ffbd1b32440d5dec28454cb8f803dda8e0840cc649fec3653709eab9491f5b9a9bd857bead474197cff840f69fda33520cce67889ce0105c410ae41f2456c2cde50f9e514c7331afef3bf1921b03e0bc1f2435d07663233364a7b6928dbacd8144b81a8aa50e064ee425ac103513ac853b38f3c77cfc106f74cafa106a0a832da6a589cc5754025585f03868c81e332b329fd9bfd3c320cdba4bfbf67bd73b36aa882b7ed35d0fbf54b424ff71ef04af32ceb01c2714244efc64d5d487f89f3c5fff09129022b76d7ed169a3c90aa742753c223c9bc6482589f456c4dee073a8c631ffd5a81d109c32e2afe0986670643d49a1571adf390f24adb2f8c2bf5667bffec8cfddb410b9fa0ee7ae71dc46dce4c6bba41596ca1214101362dca6da0831642902cdc9325c5844548d46497025942f908c8a09a7d6147e30a135450c16355fca4c0368bd5f5197300df99b807598bb27c62b38d407774122e0752b3296f74160c28bbd344e6703df4c87bb2202d443a394391f07b4ec0bcd489b96355d282ded153c707f4b93146f4e8143605de2a208780d4894530c70877eb251f9e816938a2564f7828f5774f2b31a1be1648b87ce8abd4d91fdd6b4b6f00ce0e25c26a3b57fe5991ede3fd821769922355ecf34762577be0228896ea779f0f9bdb8c4d9314c554186638f4bfe275cadde43391bcecfed7146fc5abec1d58ce1147eb1fd65db3538f9f82c1376d52f3bb9597a9a06af3441b076d9b75a6e4129607ac3352780a679706f7e3fe6a48dad2c324733f91600cf9fb980c92639dd71ab7678f4d9c98aa35f24313fbf07d974490a85daf7a00c616bcf318cebae092f495e6553a198f83fb2f2d9e3ef4390c55cde2345bdc903973f7e4a316a892824cd7a9376c036acfc812a99c2cbac3e1da08492fd013990bcbb4345ae7b51fe0b2afaf9208ec6caadb0dbc9df4d9bd5f67dab0b93e9e1ee5cb19b21053503a23fa2095cea3a62c6f392ca843f085786c4c887cb1cc7ecf9faca8a8ecac529a5ebf8a8c919f5a49ddb8852bd223f700b502d8ff5fbe0a3f6d7239b0014cd65f286500c379a384a474b053e07f4a8b6d9afa89e991eec53c26d4add7243f9bd5ff4158e2a1ca1bf3a1545c9b0636d7ed2a2c5760b20213d1ff6743a2b89506fa1cffcda46e3b977f5c354848d040cdbf0c495cd9d1f02f05300d26d4ac3539f5b6102fdb22f43e10ba6654fe53b10d7ccb3e0b309928f3ecb58e58d95cb0e5ea46c36a30993525da78595d804202c298587da25922e056998605a8f0d6c1fe73aa66dbd886068f417c9c5b20a7cb9693d9ce7cbca4e9aaf74f0d7ab5459879a2822bc257cf01f841f5f5e0f4c780ebd2e9a7db271ac4b8fedb00a9c47190778b0722d6eccc5f9a83048151dd80ec882ca883a788cbbc9b3f5188296e101f8a4dec0c71c4e63c553d64f3056efb1ae86967a72a35e3bc0550fd6c70cd2701a426de55fcc145414e1f5dab09de33f5e0b13ad047b129a7e6638ee5760f4d37f6df352a188b69cd996b11f2b72671109f7d0dba7df0d9914fe59ed2122f0e80832562d6122c21ec799ba6c67de4a146ac6e1f0d36d6cd1650fa04d65a35cfabd333a29501636241ee3eb2f6ae16968ae26189f141ff9fba84aafaa3f7be7cbccc8a538458c428f0a2a0b510bb73250d1657830463273534692fe8f4ad866e068c1269da0147ac7e64b846b58d1a161c3f0c00fc4cb64ba35cc29395eb4ee30a1fd156adab79f0796e37ef74dc8c59de0541ded5e4d5e8033c83a39c93d9fa2560fc14fe7455f862e5115abcbf3ddc7f5a42c9f38b0583bcf1fcb9706a0dc269c73c94005d4a0778d0087803fac04041fcd88a9bc008422a770b32069e35641dc54ff63adfc455c8884b5864710410320f7fb7bcf37779236a3a92ed7ed5317eac85c60acecf259fa2ac0a6c64cec57954768d874f359886307681ce251012bfc48d9521659105c1e30bbad84cfd603d57426d1cb14c0a21d5065bc1e9ee3ff0a2c202ffb1a20a754d043b5249e26c21945750d3c2d4f51d0c8eaa0515fe3a160b48caeb40f79d26e0594aa77db804fdbc6b807db46806d6b2d8ff36b157cbe23e7801e6b0e2ed10ab45cb45b1216b5d95cc32b7c3191fb96e112366362d87292d8b52b71f86a2dd6ffb4ba0e712704dfb507c9f0b091748c10a6e7ba20cb748a79c9a8fdb5795827b0857631ec4c791ea2f303b116bec9faf33af287b2afffe26a6899a99328a95ac52a75b3b7424b36966054ad55b443cb8c1299501af1e8f769a12c2854942c847f03428e1b06ba3ca310a234aa8f0456f636b683c0eb186f4e25f2579584174662c00721aa7d85a3f2302e9e2fa911d645d301e1a95f2a2881dad169723628fc75832cf74830029a1f9927dd3369d436a2ceec345d914078e7333474c2150fe1176157b659115dd1c70cfaad103063a89b624b09f017300430fe9e7ccce46060d7238619ec9c18ff3f7699c98f51ee70fde54809c149264a780ea500a247cfca5cdae2b01d62f9235cd50b958d215e0fd48edf9b19b8ae46dd8eb0ff6b5110212519e709ed076172e7a9c9f26c20830d400ce2a01cc79659b82cc875b8e4afed398200354260b9dacd547ce0db9a4836022f80a14c7a3e3d24506d5f9dea528300c10fd9fb9b209768a91dc34b2e20134185fa6281b3ed3a14059fbf63eb06b522b763fccecccd6c422b8065295813c8a3d35b20809ec25de00188a6987c373d98806cc7fef63ff687226d3264000918a95610a493a6734ed4aaa37a1c14ebc90700a62c4eebefe1e1331130b6525bee261bf657df48a0cfc1f5a873f7d60bb1d8306d5470939ea8bbbc07ed1160998528d2e16b5666f4dfb58c71f1e76eea323e03a2cb453c04c05807ddd15ecdfe2be54c507ed9160942f9012990c944ee5361a34ce3cc22b8c10021f2fc901915d7721055a5188ecd1ff3431a89e45fb63cb9bc2f5d21b603f43868b76113c96763b6fafae99124d48874730812caea9d72e5fe20cbd386a665ea193795f250a202e39832d5b3eb74daacb4af3a68fd6c21dee9cedf8cbdde8337e98bf0d7fd58624b8dd6f5596a87c1887bc5cbfb3158c4c025fd3404111e4ec6e03ae164fcb5b854413d365c1cb21922e275b13d5a0b1d7dabb13457cbc753c4b60522260a83403da48c309ffd8289ecb91e5a7904f9238597140d8dc77097706f03c532fe045cd52c4cd58bebfe6552639a3b07963128c7d973bd35f1f842dfc3fd3ee3aaa18e03bbd5025302c0fecdd23bd71f1e1a72f43f444a5e90ee6f022022aee4e0fd6d03643ae17286eadaa0b3d562f7760cad7968d74c3105b79922b4565ac3d2b994fc00c5793de346842141fce1370459af931acf46f11b2dc0a4f11f998df144e93399b8cbc8696b85c5ad3be38c38deeb364e03f6b37a1d03d50ace0ea4c91f3dfbffa375f78a22cbc8d0dc09e97d80c7588d13910e52dff1c79d857e565ce48323c9b750f151efa3a90f49687a8d89dbc3eb0fd954dfafbbba764f42e574caab47916b785e9f8278538da41d915487e330e0d4265b279528ddd3e0a8bc9fb3fdfcc2a5be2054eae7a9afb73688f4464c7f666dca09b06445dd0748d77cd608e5b15885fd33b7dfbbf4697aaf4f5502959e3d30cd2120b12e64e88a6854d00d9c324ad532d4386bd77cbeb8b1f3792d36c54798ebbe629d754410a0cf9997442bed4fe00de774f59d33c9457be0d1bf991ae83379632df45cb8479d79ed9863de0f25d2a618ad3fd2bdd67f493af5c995020d42c627f308b67f21fa8a9bfc12c3a06851aea7fac2f958d047e80bb24d4d35184e67db70f3073dc4b5e989e0bb1e740f953b383f169e4058dc7adae514ef16373df47e2b1eabe21fe49c7f80b3280d12dc44b1b595bb41cbe0089a169772741acf44417a56d725525dd3dd8815af8b35a9a691cd0ea0918dc369b09b68bfa828b7fa70064fa017e51b65a390828527c23bf4e5c750f0a5ac3000a07a5e5b4ea17ae4e61d7794d5e746e7067eff5bbbbd6b5a70d0c351276ec609f35146a1174cc6dfbb6e0f3503b774b9fc903d7e83dd7cdd56114e0d43de5275599d8feead4c20c33c44e0ae58fe9e49376fe2f4ec935540ec404cd5dcc10e239b256dec6a8e32207f5a4f8e68a10934eef3d2f899d19c6f282bf9c240ec3c8c4bd55bdbdfe6c4273818b9d2b399911e1a4f462a74f0663adf79760988f02caade9da1a42a1952a0c5e476626b06218197acecf9b1efbe57ba7eb82a42024b519d0c54d3187637c70bcfb5e98a0d0e57398b38e00b63244e33086da40458d37de9ca01e2fa4fa561a198e0b4631910c87a6cc483b054065b0d1407484fe1655fbf1bcc7d0e77429c067e6eb1324c96f2465d09e9941736c7963b895621065ba37748883b63e7d734c9b43061f043293140978481b802d78c71213160a0cc2cf6f39ac42547790dec9b2e6e62ba62a7ad1a6a642ca6f2830a630ec0e8d84184d47d22fced0823d3e6eb8ee24200552b94eb95622cf7567abdcfcd3d948e440acc0c6581c7ec5f383af7e8c095997ea7eb304f7f0de140816da8d06c8ad6a952c5c8974383f5811f03527330357eb28610e1cb8faa4854cd67a6baaa453ca4328dbe02fbc6b60295c46a8b0e50b6716bd49ea4aae3c858372193ebfa23c94c7f28fa2cc989b89952d9a6713be9da0a100f98b3a39910b5a6960d9e3916b9f04ae8509c8991bef8a93595f9c5c2cad569c170dcf2d0bf124964a8b4caf0dba34531b4e5917fd29a9732df7c089bdf905daff5adb4e886ffaba9561f64dfc1df8400d258fcc91ef187885ebf79606bae0a633b2026270d39b0753cf004394a7c628a5dccc6f944eecaec34f92de9f9b12c4054e881f4aecfae1d3c04789220113fdeb2fa0419cb2953a8be440365410ddc22b32a26bff3c9022a4737baa9f73327903e783cc5e482be47947f01eb9d632f6e81311143b3c8fa9431c170f861d4f612943ab19239a8e66a92894d8e900da8c1ef691527d8b502b43ddd49da9ef894d028197f93cd841f054a61a3deaadb0f7eba0df2216727b5e7ae862f8ed1e389e2728481112b3bc2ed5999d5862a601b190a2f8ccc5c91c5835ea87f26f083410fb49d5c9110b1a72fdcaae5ce170408b51cd43803b06848d9f1a15f3e82af1ad0d605e4b2a0f92de2c2aedc6e7b79d162170064b257d254f1f03d14cc7114ee616d8be874c734fff344ae529474ff95e0e311f788d656bca671c446b7c44308d50accaaf41e777ec4a89b8ec4c5f606b790d6cfdf12151b76b4e4c20631bd9537894a5b0d4106c3779440ca76e98b41376122494906dc914a0719e1eb4e9345d1271ab3c827b426323363b5191dd4b2bd5559c26b6ff831e21e75f0381a451d08102889695517a114ebdeb313f03d98a70e7188c0a7f84d0ec113d1a2ebc741538727c9311b071ae9ad04a3059685adfcc33194529a9a31ebd47e954459629d0e44dea045b8727c45cf86951202d418f112b87c1a5a367418f012692c677e7827aa7009ea36e94d338684ae69b1b4c3ff3a3771802338c0bc6d248b25f194e31eb1e4aa1048717513ccb39648a8cba37fd2672d2bd669f188978844523b0a21d0a57885bd42407db1757e748540c48d96407ee2e8bf638a795de24393ec37017a77080c7240868b6d4736c960851f88c040752d1c6dddaf125535cb4c2425cd6acf764f7e66fb637f83b45679836d5210ab125eb64b9efd9234e6268da22adf813805cf08dcb892ed402e8bd9eb17acc0380dedf0b460ca9da01fc48e1e3c4ca68a8fb63e3a7d9bea33bde011ea1dda5209db19be0ede8d08ceeef0b2b18e61e48107471d0828bb277a2579dcef974f104bd43ba03a8bf237be31171e8ba3ae13fc05fff9b406d715a38826e45675307c0d9d0b11e3a422c9e40b0346af853e46f0223e963f15c8835f161b9063b621bd25052a7764b3a854554362952c7f481a144b1d01bffc2a8cad409e12a3402b1ad03b6626b7211a5f6afb12c06594f0401d60502cdc2caa5600c2ee7d150b3ecf06f4e96cb342de12a29a41da5af3ca7beb5a81716b3c39c1900aed2b379de44cc109bca5e414c2b9f673969cb216b6d4a2664cf0dafb6474c39232a25e456f8db81af286ed46f3c6af28cc5b1bcf9fa05774733d03e0ba54e6d6facbecb24835347daebce8ca21b06364bcaf91bebfb1498166de8418b0820424f13d5a9e0793c9894ea16e5fadccb3604d93007515f1119b5d656384e8ebe6e2c2536658d00e73bd882fab109f3fe361f7deb4131b68c7524bdb496bbe2105c19f5c0e5bf2b01b66724bc250eb04fb3ec77e1d0a84bab9ce6e8993a58576af3db81ce6d0ea041c3bd15df0a18834d503afd0388e1a6a30ba64aef167c47c251d3b9b97e356451979aa8eb5f14ab5a035a96d352d20c42158cb0efd772b163439080da4c4322920d04082fb9d63d24fe1b697a8d2cfb15adbbdd4747ad7e288e0b4a244f5e5d3898cab71b1fa29648841b551ef545850b96dd094e127fa9b6dbb723f952b63d8344623d26d5a8441429d002a4b6e138146370e7c70c9cb6df0ac356ce2fd185e43085ccb2099318ae3952985320a5f52b0e3b00270753aca2ed5d915bc664efaf274ff5c2f3f1033d939bcb003269dbe1098fb00288dc8e34c34fd63260335aab93e508b95e0bed499df679a15b66be8f1abd2ba7d10f1a035eea5ed91a585953a48506af760d416f2390088e7f4b799ced9f610d57209a75d32b8c0d4c26cc606c292677c18d91a051827f21346269f135da6c475b57908eaa5e6d2965a6368ad481ee0206119d6ec51293ea0d1c4b88c7fbf8e5d0fb53d55916e2285074bd3fe0b1d416ab540c2049b6838136e953ee3a21184e9d8aff1cfcdf7cbac46b77d0fcf9297e3bbc1fb8679c97528eb667006ab1f81ce2a2a8c6ac622bef1a9b81bee56ab9bf050653424260ab7b175c94539accfd8e638e107d7bde13d1b10455214df9c221d3c001bcc00f896bdcf22d1e96d6d01841264ca215b0be53936b84780c6dfb6472cfa2513df01f9a0b47c3729654306148df6725840a6f32f399e17a89d8caf63be8b0f71aed7ed8fa6521d75ee24f58cdaafd3d49d1411b0ff6effdd2ae72174446b32921892716ab9b9e4612701ad956f2edb8188bd8b8a361ab91994b675a3619d85fc32bcde5387e2a6ee39ef0fad87a615ba361374e30d952a6cdc01e3805bb2d0cc115145768309a5df6f91cdba130ca0a0631d9b167ce697a3a7299e197e07235452afbb62f9f401fde604e688676d7b97072034b9471891295b804bffb2f78ef3105ec4b3ca768fc5b21b1234a014f12ce843af60c5b344e331406cd01df4d09491d92d2d2aff634dd2a53e59ae5f9bf9fc0bdbcc0fc92315d5b24e37659e7614316d2f873b365cb3fd98a18ed4907e5cfd9d0ae90d1a57885a7480a16dd903be5accf55bc37ea7dfb1fa167f395b168a596fd821b312448a1c8c05b2a1ca33facf843996fe182bf06bf0c12678546fe5abb362ab16d6fa9abaab74a5fc65557c583dde5162c40cd6380e7e8f608ca4f0ffa444f8bc3c7cee8a2211d67880b0a78090f0c88c6064cd0944262fdab97db026aa467a4b413aa249a3d2a4cee7760b93691599ecca4811ad687c81c2a11df88d44b4ff52211fd6fc9b1f0e8e8fee4ee5b663921fd64d94c3a322ee1d9aa3aafe2c35576f71a83ad8a2d8fe65bbc2e906b80d7bd549dd34478dfef3573ca44e86ec3f90d7fca6cdb3e47ac97fff6314280f9942741c72cef4f83caef47f15e9e9517dba9595286362469542f864cce17de1b2475f04752c3e09a2831dd9aca7af10eb91c9de2a49e70d5b5a55f99f603b3c656d6f56c42a9e42792418185f215724ba0127a1b9a0801c7d0d1e7d050ee7f32f24b658f08d8f85be460fe8ca7377a140b59f8d143a6ea33e4326c231b003219d0a4b111fabbc16e317ea3632f58746e9184ebf6c1adaa988128575c95d6dc2003271c0d95944134ce2c5e07100e6d7afd7a7a59bba02eca4fa4ac2022374be200839485aed9cd83a109aedbd18bda442858b4f80cd8b19ffd39d2828d31881ef67b872034377ff66639ad42abd6fa66a8a2979fbe83ed4acd036e1e4104c4f124ece7964b06c10f315441e3dea706d449e2175c28991398aa55952f59776dfffd50e9e72e1f8d4907ea756e6ab90ec94adb6d42249500d8749a6cf8606e6a47c3affd1a9e3122560b27166d781f72a2261744599c7b19acf8615c6179b417ae61cbcd5cea1cd52b6e8d76bb654981787756c609d4082dae7c8986f0495845424777a0bb70c2165a44616d1424b7e898a898018063002c0fb749e810f4c5f2088ad3147a4b227935cede5c2b78477afff7897d5c88635343c81aea6b1d1678f69d670a085bae9476af0242abe67fa71749026f458a034d8256b73dc9652b100a255d0e20e89629498891b861e2be165c5a7076da15ce90dafdef392cb30387754142b94192f3e4d2377b6cc75d820297c15698c9feaf4e4f75ade249d6ecd15cd6849e84d6a9d5841db45a0fe5730822ea3ed79718ab048121504a3a0a862105fc1096b31d9f42e23287a0aee4c637518c180f090c2041411aa6975586580d88e084b7fcfa8c993bd3537d62d8fa411b0be36a06a687388f4d79f056036dbe1a2d3ace3533e3e087ccef94e6cdd2f64f8802a5af41c8ceeb4afb2d5ea68e4890586bcc67c72b2ce50c259f8796e1854805143a84981e142d9e5310c47f455cdfb019db2f1decc02e8960f9d23bf98c044a3750476ced7265bb5a581b07e53a42959b88be744fa754283733f5ea93f6bc3387831d3a454b87bfcb71a365e39c1e5266bd1c89e25d663232fa6a77d2c0f6d774cd73262c75c690e7b8db516348a2f93f99b652f711eeea23e0118b2a3b20f165bdf7d29167f2be72eb1cd672b2fedf493d6d955f84603b6270206ff9b07dcd7d39ef29026401216e0514c34459cd2a1a77efad99f168bdc3caa02a0bf2c3365823e7f0fc89851d996218bf4ca41fb0bda70582d86ad539509fd52e65f33b5829a4f61945a01341130f96adf50ab801b982c23a369fdc2cbb9bd24119f40beb22711c7ac6b5297101e42d8a450e35e2c57541afa235ab30b170a26a648a2baa12dc294ddc425eb97029367350f22459d004daa1889adf409ece6d83d689561771076bf86f51922b4cfb59e0371d8a569ee861f3630ede028e18becae80307202cec9e53e357fac0607d7f20eac5766a9a7978170121d7a57b9d583f0f2dc9347e996818cb5a13e646d14b5408e2a52f2fcf3519971e6e2b67d1ccb8e15c8338422f6a26a17ba055bff7aae48a78e5feadea7de8d1fb039af5853d037e92d7052a46e2cb7eccf310758de3e7c2b98c016713305351ca59a1292ed220181f390657706f8f8368c27c0b1e6b5b4f5810bf4fe41013e59b833d093820c42b6631e0f84c9867e086081ea60d9c92da2259b9b2ce523b3f6e377589b0ecd150814d4687d8e7daccdb85f500726d8cf1fbb682253c4437b698e9119fef7b2fbb2fbf7afa729d41666c50251986c1ec998991728adf5c588ad07efafc97edab7adbd8ded9e86950aa951049176f8aee5dbd878e25810acdff94a55c28e6a4ad3fdee9aa94389c4c99ea99b46762208c9ab7129a873ad2b7a1603c588f23ec78bd05288f12158f4ec89a7bc5f2e95156c333d2084ea373594c1cd12a0ae333ed07265165fedbf2ffd4ba50daab76f047e44716d822b1b7ff411775fd65c363d839db507fdb8973bef8071c0cc9af804a2a88f2c6e38087c175635706b9a238f6a561f7f73c4519f8465076d7124ff3f4e3f9bdc3517fe2a499683fc78aa8be50e153ddbb8c03c2b004dbe2d15ed81b385ba1026cb2b9ebc576807a2aa9008cdcb800fb85864f6b59181d1ea5fa9f110e3b6b8b2fd0afc167ae360439dff37f5e4ebeeb6d6ac4c66c10c3c34ee0929d1fb13498f2cb83a1ff7f832b47744c090f401067505deead476f2caec0b8c3c1f2fca20aa25701f94ce81520dce03477cf4e77356ad2f7510d8318670b56215811d657638f41f8759104d1944a0fbb1b11c3594496f682b50a886dd80d738c6879bbfcb34800308b5802920939103d06faf67a48f377fffeeb44bed1858d73e8f4a3c9ea7fd792faf596d0f4cd25e69d66a39fb29edb88211b0caac62463f038e166e7d27163b3f1240f1940c42cc3c68084d50bd06102bbef6eacd2fddc6cebc49f018e08b2a627eeb501220498f9f9cc5b5acd22bbd66354f2cd6f4a37c2b0df7fddfb0db712ed26d8e1c622ccfcb14ed6b44927e0d8c5e31ac7ed34facf00953b61584b1838a999faf7e0bf4b20f0e80fcc7c85a8c5bf5f352dd1e5fd5ffe3b86382fe665b305887da786960662cfa7dde5df5d0311d9fd9897266f0c43e10f8996b7fb89a836f95f895fd4c91d2f4e49dacf31fd5c75010c9623e91a23b74fa8ad2678275f0da35a94f60b1513ae94bae51a3d3acbd81a451a9ffded6112d7551c3e2322e174eb955ecd12d0db3475325ee30afddada2b40c2abde081f44a4d4963e04af4c0501d7af82fdb5d3b0496d1daa51f2eed017f49ffc2b355f3b2bc05dc63e8b0b50384b37bc2eab388645df729cf0bd0aacfd46bb451e6f6ee47c123f5582a7a703991796312fa1ab4e7c25609f130777bf10e1e6ee2cdb02c5e6973f583e95060801df9bc40869ad8da1ab5cb52e440eb567a5e18e3366f687f8838082f7531614ea2bc194003164a1ffcb0200aadba9e86283ff7f34113b77cdaa212895bf5697596a687af49f758d8f391424505305a75aa03e5a0d90d95a5ebde5dd7075fd07471ed0e99bdf79d5c77b7970d2af62379179ccd2888ba9d29b1da7c6c556df26f1374861be6b1c09a257b4fe9723253733536a2214d536f0594af0c90ed632c304a04210491c8737bdfd84716c2cb6771541778c634301d91ad8bb1a80914761f003c200d032fdaafc64d304af54b97e1eda831ec2b9ad122d96cd2dc99c9c92520a28fa2b8e5df5d7dcbb5912b6e168e83b1b5d0ccf10a8b7469af4c0072aecf58f1ab18273cbee53db785dc149f7473792149ce59def6a21b1ac8b0c40ef9064f6bcd0d43e756b31c36f952e96b5af441d27461ed50273cc1eb689705a6513764919a213b41ebcf0582e671943d7b1f6dc94b00d6d766ee795417e9f75a297519e8015fe732830676f1ff13380b4b7c2a48b10c5aa6275643262d5eaca7632bcb34c6c186a96436b199e39ebaf25547eda98968fe94efea073d258473abf84126e15648034bf4dc6206e42e60ac5730b17907ba0c3ea4a88e297656e88b84ea612b35a4d0af8aba8cfcfbba6e7abd32e6c41d34ee03537bf4ac97fab64ba5785f059612eea6901f7a3ed2f16c7b9ca2b1b58215cbd7bf7c7705ae4d4498bd2af919a8d7b078f71e58f9c77f79e0d4807e4a67bf29000ef00e423d74dfe7987be10b4331720058e3d72b20cd3ebc32ec7af049e7be54b4c535b363c4df5b6f67a45e642b41bc99959b12fb1b58ff5109c8a04c02069c3e98afb27a043a66987c9d30671cca72472777f2bc6c5bd7ef87bbb649e7c33a5dfa76087127090056ae74bdcabddd7f74590b51acb014b2f6440654b0c41613b273081e063af8fbac96dad6a5fa0c2b7aec006e4200896a7e9b6fcc517245705d15f252834f11abe3b17415a0c78417a511d7db06f0264215fc920308c3d549c6163608686951e09ecfc57f7824fb1ff58c71cf4fc66ac12477ab920cd1910c209f08859cd45570f60921252d10cf6a6b3571614a25cb54566c543daee27055c089b43b63bd10ea82728c2c6040c82b78ef049a93912715f4adc53a2593105f89869fa341020666998f5f50d22aa1edda0688d0deadfede718d6ba4267790e88baca58d56318417b56741242d6446919fa129fc92731d2f5d0c305264096332d63e3a33a70e209162d6a0af5e5140dcd06d6deeff301d4129c364c0c87585a95dc327125046f0ca534695ed38e1638e738c1aa6393808fa6643a0b781807f757b3b9d884b0db577731d72b1513ba016b8b68afa661d11beb8d16cabc189ff18027ae45146836348856b6773f10159f513242a3205aa8edc96470ac4738467c917512f8bf787a137c6a72d0968a9aca6830f1f28e359e4fcc55020222aea39d38a1cf8d84ba9cdbfc40ae09b4ebac5b7548a066146f4f136ac60f0f405b0c132f9d14d74af270a2f0411c74ffda36229c198025789b36a1f0a15b9b35f54fc8fcf634d1b4232e1905f49f308c96c1b50e73d85136d3632eba0e5006decd1390f1ba0cc70e813f8dc0a8d5ec55e733ff359377fc69c3cee99b458994cc8e24fdb2aaafd67d3f868176e0008349c3b3f946e93aef7bdebe734e9550acd9492a769fc6a8e0c61af031436b735f8e6db67d365c0cb193a40316d490f2910cae0ae885759be82e252a4d33019541fcdd8a0044371a67ca64d3d72d92febe87b9d0ff146d591bd3427d3f01611cef7ca3533ca3aed14aed4dbd445c45e434ab5a3f1fb68c3409efbe182c2b1081ce897aef994949cf3aad3d875985f3b1b68575605b9b223eee7b024548117f0ee07eef5bcd3a77a206a5e31b89fbda7854410002ddca63812df489e17d5eb0f60454e6c61226b5f9325ee279f73c2f482533d833252ff3b10ae781b33eea7cec97666b3b7314ddcaf638730a2e4926606d3792fabb1cdee67c6b5626335f3c90983aee2c825da85e641ea8a2323ae9d15222cc963a76b5f56bf87d5f6697ae770cbfd3436609b791c47ac5a12c55b1dd6b1b91601641b948e288c029a82cd7fb27424f757ae8ac1fd5cfc5b837d146411cd7547e9cbc3a670b009ba2d409a20de585000b1081de9e41a6c5f6a29bf4c2630bdb31f81a792544deef91e78f01e0977e9ad5444c8b4727ea6c6cd57889b2407656e502ad836775052b21d8ad1e1b161bf0e4ad56ead150ebbf5f790a75ae5c76f18414f335fe44219da5af21308f15258259f98f6ae2adfda9493bbbd2dc980bbe57a3edacc8111358cb30eded8846da281b9dfe5e5b888e108d49ceefdfa2503a462da11658b0580e5898c288458c711e3a461e76991a1996767889e79599627ba54ca71ee9a2a8cafdc7088ef36631c543be866c457a82739f6f44f50900237e3a4caa36fa8da6cb2b6cb49717a3927998921beced4ad02bd610cec6f79b1917e355b6721ae7f722d5ec24605fefb310546e83cc4c4405d1fc89e2020c3c297bd48026d3375a9756837471dc37a31160130846b8e5d1179b2e1aac7391c1203c784adccbd22b41ec846e7b11efa8e582a16f48b313c334cb53f3cfef5ffed8f88cb52c28520800c7e1e34c3ece142d44459916e0a3db46271ab07717f8e25c22df3bd644e2f65971f4eb657d125e4fbb605a2bf2830a90a3c0a8569ea4a82b19344345d73f266aa09902310c21354a941d2f6a173b99b69f21e167832af24f648b1ab1b057e48c0691cda830e07daaaa15e67f68811816ed31b49f4894d0314b9e9104084e1a75deef27c100853c84c97c587883fc8de10185ce4e1a14373a86fa9f343b3e054f7f44ea252c38be0d3c71e5ec5d247761c4dceed0f9bc62538d8f61a18c4e0b276591c108383d7e04906b2c136ca46db543d2e6be2eb04a3f4af4011bbbcb37819bbcbb696b28b6c82676a7b36ecf5315c0e84e585918e0a0eaeabe30aace41fd527bd12255ec0dd01ed90b1da7261580ac991c2607c88a41aac06d2aea933d13336550ed91248ae38abd6fb86e90496e9a2c326c99f135147c6147ccd59279e51aa30ffca6d921f04ddf79b2a933d97946735c3be64ab29b5d17b08ef1c08565716913790f330474095c8255ec4856a8b843f20a73b0d59e201586d470c46fbc62786c14ab0337efb214bf7b54f5350874a32650913ca17ce6dd34cc9a6ad0a618c6593b66f2e3ff8b8529539a0b2672ab0983b8e08703ca50e5763ea58897d5c2ff54d79db897c453248e3bc7580d065ab8c525015e286fc7534da58f91c06863086dc407127ac4a48a9121fd259e4cac1c7035f121f5efa2b526850181e1d0bf59f4bc137d6a0422cd54140dbe8553a6845a425b68ad7b385683dc8e6c8c533482acf77a1e796f9f044152f9d60adc2c117a860227851f7c5d0320bb5c9dbf6de856d817b9d2f83e63f37e3ddbe0b2852744c67c286c9acc752d5d2794e50c4c59fb4055ffa4809c92462fc6e0fa00bf7ac5ff50223ce377a802da08d7c1850f65a62de76aea3a32247bb44cfbdc167f01d925af2524d6c593890d5fbced5e78c31b9cc7974ace2bd9467bb4633dfb8ff10845653c4761696dabe01479300c174a92db5eb8e5943b094f912ad7b7a67f702564b147a247d30f35b422a0d6fba2d64bdb281c2bbd5d61357439b542a7f0c31a80157387324d9a10c1ee649c85f15141e584d07bc7401ba0ffd3b5950cca4d50672ae15156659a65966d55ea999551db1e0b24b9f8d444599445411906d5a9d482c980a00004d934ab818f5844e3fb1870970b00dfde81e30e8f0c0c770eceb6d124b53246127b7a1ebc76e914b76ca24534a2905cd03f80347035f3bcace85facaaed5c22afd9942b59e903e54413a3f040d9d32827a3e2ff542e63ecfa36b406f1fa73867a0253f7b8d734e75051301547c88f61110f8d3a148ff8828ca3f288a7e5a08fd7405e9be5d7fc47a8dde14d1d8bbd220f65c0ce9a2ca94a8e495566512d29622025570d0275969de1e433e438a7c98fc6cf2db958789a8a4f7ed4d5df55ce49c3558467ef171efbd79ef2dd1a5e9c6300c439de8d3a35296491144a90922a868696969294bb1fd73097bf80c71717171912061f5795b7d9890220f6f7b59bee49da0b5175484a45d26f876eda92b5c14afd404080707c6598902e19c80706f3de9d115dbe9a3eb6b0add2aa1d0a5a593c4dae3d37dbbf6087d966f579e2958ecedf4826c0444d1671f751031a2587f5afc74fd174b444c51109576ed69fb7cadc7e7f5b26fd79edfff76ede1fae2b76bcf150e47903aa5be221b623eb6a4b8b35f27cb53beee8fede9057adfbd78200da1e5c8cc443434b317eb01ff31e9499f01e64fc0a1b7bed4c0fe183b83ef0e46c727c0e8cc9b09ffe6706747de07c69483bed919072e2be040c98b81f9d863b0438ad5c7ddf7b08f6188f75b2d5a2cda8f2fc636725bbfeb0c88f65b185e998660f6ddfda3a570f1ff7d9d4d92186edad71959f41fdb3e0eff3a1390238bcefe970286bbf3711ef0afc73be56e8568f10eb922687269189308921ae59c73ce77444b8d5c4017b4ae5e80a4264d4a584d5a9cf51f921a45b547c6dba2fbcad41d0b888001947a4105be281501bed3e73b0b014d1580cfc487ad8b65a798dd2196c91562873cf121dd301a9fed51c386eaa3aa611ed58901533e55bd6251e75451856a818f85daa47ae0b36b03ae929b448a1ae313d3a03ed9b5bb891c2dddb852a4bad0a18a50b5c2351f08354ec56c6c47b8cc6048698af185b4e45ba14af974a836cd4be53f3b724138fcd2e2903a0c200d4cabfde27083ae90afc825ba3cac13232a0a33d54a15ab8284bc4c643d17456767525703968fa94d555265f82e1138dded606dd8330ab6c806bb2e55007c96478c9e7ac788e470f15d3238158a0afa2c0e0be47ad811a71ea9540ce0db51bfd2487ca02ac077c4c792dba38dcc5ab9686faa65b34f2c953b5443d59cf3a00e07c661eb47cd527f3f54af1df7c468c9f495a9b6899c4a8104df08abc448cdc06783d49061363675438509161d04b83922a61e2030d4fbe2845b96a1ee381d4720083076d96ed2ce6793d82539d4140ef005511fe0eb5c706b90539515f58a6a67bc4951e5c07c9746085be5003e26eadc8e0be134e3735343204a78a440e1d1055661bbf87b879c8825272acc003cea9b717ffc541bc6a526c0076583da44e50538c012ec6750607d8522eba538247cbb86780aa164cbca521ae0dd400f5b0e26a1b828482ae4fee367215365fe767d4203018213190d1a2bbc7ab4f7301e1cf141ae75d618120b14715e45daba8fa70ffaa929e88968bc329ada8c2d02959ef69a889118087e54aaa62c4129d1e6030459086235127bcaf104c6d4ad19c6f87e60811b476d5561439cc4e031232c4c46c92b5fc6174ca34380df018f95c9695daa4abfecda526483f631313c8cf73d866e4691155f99b48ad218bb89e7b77cbb3241094a7f2b061830d29cd7a5a5a50dbfdf9bdc8f2b486a274805bd030eed6bb8b4bef7b7eb92d00c7defbdf7de7befd51e02d826992d5cc6978b318dcb843b8a7c93f9768ec3de6dccf5d7c6580db0cd112aa0446a557afba28eb4904352035df6e6764b5b9463bf58df6cf610fbe75ddb3198b5f6f7de7b41cfbbd6767b775859be649db3d2d952859c73ce39b3284133a252e7388528cd408bca185f83ab929412d3099fa618e40c5e4a97f48255a9e7e76fd70f57fea905576e31712a7246395b73a06633c47e2a3c4057a4b832950e3961a967081f349c1e3ef0a049e4502527238e240129b1e3641b3b7f5e345accb8423fa0429b9e4e261d4e200f45531e7a6953d0a4274cd69e0841d9cc3ea871d2003bc285c66539993897409d4a3e4475d88036e9f0534525edb9a12a94a03d43ce9d1e278f1bbf1088bc50db4277aa509f11a7d5d2092209094452d0112b285c14d4c392146a27941f3f706810438b8102b19881424cea146a3a977ce80b75280552774e2771369a9419c942439fe87041e304d2d5f601da43850e12a70b10285412fae4233a57f87ac2a4b8b50521190a72b6ad676428d6d79c8b330716ca55e24a88b3cac3170723161c7c502073e80d28674f9293280dfdc0038a0d2932388070c6d0f271a28608d484128a04e9080e09e8ec50e52c7b83c1864a1101f3710e2943a9c2d01230cea21567102b7448d40fd3d811872047426e57d0187048989c28721239a3ca813a9971f53b570fe252a0ead48f9311556a83062b1b784e35b9244e461c3103822ed901c25811af13478b1757a817d5d97b4a853a8828322ac36f57a35e08733d3754091b9a42cde7ecaca1e39c328646f9428fb8ce33ad73435591a8a02634844a56442457d44341983bb9dce6d8521f35df198aa4236d6cedab8beb1cd2caaa4265443135a51ad4138c88e854897ae8893914855b5ac4d6a4e6c1990d1d678bb1f3c6d71817ba41eb4755ba1385a2351951d31e0d44a8150dbd26734a6e466c278fdad3192a45c7d4d8a9e10b05d7142d13556151e75b13ea817a35442462a8877698ebe106832d84dae9757642e9a03226f795830bada2f556751e45a1424d24541d4244288f50efdc317772704b79d870a89d54ce501e3a98c6d2a06d2b1558da6ae29722a9125afbdae31372e0786d30861c1c9ebd0e0effa39db91e7b0dda805e6f7cf5d59e07769203ed718d36b1a84b3b737d36f5cd31b8df2dd7eb34adccdee21bd0ab95ba7badfbb5dd66df7cbfd5378e4a8a2ae95fbfa97cfef5fbeddb9fe1ea0fe0dbd504d2cfb9be7bb1df7defbd7c37fa7eb7ed3cbca1277d8efee38b38615b3b437abed3edbe83f95cf47bd73b79e1fabce381a18efed704499bedefbddc6bd266f3f6defce666d08b97acb97e9b3b7b6b41e69ae08e2723a669254ecbf7dd07f645bff5ed177748257dfbad0f89225ff4a11765300d8fc5f3ca30345d4251b71b7d28fa70378e16e6b3ec783b5e065dc8db2d5f47ffd1e7e80fbe8c135e40b025c31fcd90c593bbde42dae8bc688e38a6a5ef8d0127049ff43afa6f91657b96ab499bd0ebbc48ea48516b109aa267b1208ae4387a51b7e39e452477305fb7b39e85244dabf39ab4d1ed3a8ec131e1064d2be37bc0fef5535bdffe0c5f6cd918b470bdd822ca609a8b2d06bd0cc6bbedafbdc1fe7ade77dbeb1b1ee8b5e775c01b3fc63b1e68de5c8f714e3225f5297cbb4aadfdd5c44e89255f06c3f63cee37dfde5a0a397b23296f062dcc97b133d6efbc8a0831d6a4052c3adddd8d9e05677283edc76be637317b0b7321e77eee53b4124bf5f8dcebd2bef63adc405fb080b456e7fbe875f4b7d68b38d74667726f4d9dfb479377b379218b3b1bea7820f7bd669b3260ceb5e3cd46f24df6a3a580bdf5a4a500e2b4fc6de2ecb5cefd3803786f969877fe1641db07fd4dfbf97af8ad23aec496ee45dee5a40621cefdd6ebe87f3d4ecbbfa617b9a9737f68f2f23575eeb7262ffb161ee831d494bf03ec43cf438f6fb8b376067f9e773cd0e7dc1ffa1c9a37a1c79eef4af0ed8e17fa4cd6841e7b51ef78f7eb4ee2b4fc0eac9de185dece704072807d086a9dab73c96e5a50c37df639f7ef1bec73ee0771eed754da7324edfb3a02ea77bfb5ef3131208602fc6b5e5041eaa44cb3cf384af067d01e207b9aebb5cccf1564996e69b4df1bb41cdc10d4d8c4a502e24acf1bf504325cf366fbee2d8ed1be7b90acd9beebdccf4d1ed6b1c1fe06ccb9db8668310dcefd474a9efea6cefdd9ec2d76e6fa164bc17a094040d087868aa2a1d856282239d6105a2bd41ac22b35bba1eb0538ac6c7559fde09a9b838302da4a742f4c09102c6428ec062d610d3cf050e942e214452a4a928425bd706869efdd8be2fbed6f18bd282310770365b716416b347a7af3bd39e79c739f823e7c404c413be3d11545a56605c5880907f5174fca68300d69a2f5248b84ce3a2154be942e6599014595206255bc707c00d496050534836f09d9ad1223d692de1dc152941765476c4e3e4e76a07493ac9fd01292a3a0ebc374cf7e56a0cd244b2c08d710e29c0b69291122e4b4f7de7b6fce39e73c0a6e45571113ee4b9824b9fdb0b286a4adc5c0d1d97c6057822544288713d192105c0929333e983d0149d29364a119d5105a5ad35a0369f4d6b48c641abdcb9738e0b55ee79cf370efbdf7de9c73ce79c8f7de7b6fce39e7dca7baaabca6950662d1e87918ef2d68035276436b48881548f8de7befddb2a10a2dacc95aefea48909613513682e5040b8a904c99d414908629208214a9c1b1760c8571ce39e77befbdf7da5757971c10166c57716a596d9f1b1d952e651946f140ab0deec84bae0227f2b92f817c9c952408e49c73cef7de7befbdd19868ac293d4c7707e6e3885a8f0cc6af0fd1a2ca5b3c1bc09e8645c587c92beb86d15d61e528e59c73cef9de7bef1df2b0e4210ff916e23ce421973952640a0c1e332a16157817f239afc1bdd6601a1ae1ad75f69380123dc89a951594002aedb5a570e5a3e2ed5b1545bef5fc6aeb5f6fafa4fe043b633969c15e9b2a29bfc7343c17983e825ce779a10db7e1de5e7b7739477b30b4b1b17e9336a6d699b4607757837ca7613e4872707df63a7b174c63ed0b9dce873a9d0f39f79dac02ded8c3ce411d2737c835a1a903433f5ec07f63ee2f59d37967eae3fd619aee3917fb7c7f6e2a20aeb4dc6350f71a6e760b3e6981e30f823fd0f7ab9f52f63ced73df99b8ef3e7b3045d907fda660873b74a120a460025d4a182f19a6c9df0280bc707f9f77dd3d9e20c24df7a08f406e40d67453e398debbfd3a1c234220737137bec0a41948800218f800097c909c4adc2d4c1300901c7f63d85f46ec6fbae7e325c3349adce0ae29da7435dd736fc972acd9266866acafcd20cbfdb528956028b6be5dad7a585981597cfb5aa27879e2c7d6d4787741b498cac79e97e13b7dbc5a157d8cc3bfb533d9da19ec7370f8b738069bbceb77bcf0739fafcdf69867b836d65f0fda1e32653062135c30484beee237b8ffeef7452e330003d9e2d44889c1c719ec1d2fc500de6bca580c68a003d95f006a502381205abc9640fb76a50a8e97a8e42a1d4f4286684a020003180000180c0806055112e42086e95a7914000750ac3254321c5a320a440251300c06034110c03008000010000000c3200c0862145bfda534b080e51c6f210c4adedd17572b6c393c77f971146fb6fddb9d2796a5f618ccb46893278edf536c322c7826f928758c6c1fb80bafc895b37d95cf05fb5894d744cc5429be83b77b635ea4be3c584d2e6e11b6c04ae7b5069936c71629140a05e692c464913e094136233c72b6ad02b1e5a7dc277510ccb2141ca9165e4c7165e216678951d3e27f1085de6b15bce084d33e616be40862e0a958d4a4248fb9410809af7520ff7dc74c02c4a5d848ce61fdf90d95d6a70e6937f83eda9c7ef17ec6dd33e89140a6c189832bd03b7843fbc8c23cf05e19e1901b118d8e30b1bdba04ee9c912b66bea05892c9a6fdc89f19c8ebd56a8bc5b5a4a3910c04ba138310d8369f1b51cf3812637205e24492b843af768d6dde6912c038706ff347538158fd225236667384d364ec3cca6a84809d00c4168050fbe6ac3979648d6e85db0025e062f4695b720614ba8513088cb32b2e3401b77ae74340b1b457685763057cc713ba73b4aad5f890795258d6b91cc7e921e644d679d38a1620aec9f7ed5bcfbc0a1c1e1a881d4378557d5bac7063bdab0888d6fb77055eeca8a27c22a62a5ef598a82118359041d1c78c0a808699f55197652e02d184d4fcec18c864e3fdff3e9ccef93092b6582502b2e235919f4a23d5cfc2ea22a1bb1f0a16368470f0c7c1a1d4305495e2fdd6c9b232b5881fa1ea238b96327e1d58a7b15fd8d0c02fe876804152cad0ea27abb2ec913b40767b92adc77930ea43755908fbd7c1ee757d9c4c0d9710f4577206050597d9a87382284f9c1375694399048d66ce1e0eea43f4488245f93120ee4c4936037c8be9eb8d10826f9b03c22f693bd819bca44eecb8ca2a6749aab42d498789b24f4a5573ed0b1e8d7e93cc8c6a3f1815a59e162ac40a1010112b80ddcb0ae66ce44549f2583ae69272c4f51db74ec9c3c75f7fdb31ab7a6d51d5505779be2473ca9db801ec2f45fd8c4843f1de8bf1054d93e7e453494443456052b40fa4034a2181c2db8acbc09ae80b070403beb0a98b1cb88efcfc2e420d18126a7179db1b6c8ac2326d5dab9549efbd3ffff1cfaf20bc6609ec2dd44daf0adea2004175f44232f8153407a4dd9d46c80cdd70f014f3bdf3c41671481e1800aec6cbaf1ed4035de151e9cf8e7b110c6b3eaaea2c0e26e9df03ae7f560c7b4fa75c535dad59fb427d0ec9c36bceeb1a420ca49353ce1553f37b995525b0e7c8b2ef59551cd9f8bc1038cc2875dd9d61e03d79e21783ea0cab181df05b2b7e6c109da41c57db9ab351e974620e3e9ac7d50a41597e16688bdcb06a208fd40e4617714508a14cf9162f72878d1017ae455dcead7ab20917cd809b896557f8475c3cb678d7f2c6f93135de698eddf22bbcb5178b21bcf348620d5f61d8336a6d6828669cebcbbe9f15f70b3e02a5ad70790b6cc659ae8295e54a257f931a7f2911bbcb1c4c20e840ae63940761484cc8b60e775cb80ff2c95146327a0acac1abfa3ce30a09e7436ec83f7817777e2b50994dc4892f14e0205796e6c6993c323278025967961ca3b6691d524aadb3d087fae21bcead841a5bf26eff3b42a6cbe00b969e625420b94c0ff137f80f30a1d361fb5f0bf751ec4edebf4d20ce59acf8a9387755730fd595212911017216aa455711646c22e80fe36dfa04846732f3aa113a9e2eb691fb06874dd0791e159979d0e894074dc69d688a6ee205a5920ac76ad497a03c2040a3aa68bd91cbc6570a5e9a6f13d39c44cd1e28c80fc9fecbc534b62fa6006a478614855bdd54a93c9faa0faca3687101ddaa7c06264686ca37254659667699eac7ddc09316ad4fe037123e83c935db628e09bcfd19c941989e566faceae5e234ce661e599b4c9c6ae01f59267d2cbb6e691d6deb5d0f98d886c526463b2a55990d842f19e529956901580bb487c5c1ac0562f2f77c8ad5957f68c90d12615d86d36dad7f95649cc1c590ce4769abd0406b33646505ca856478a09d7bb6aadcc86ffba385e5d9ab734f05e2a8f05ae633873c232ea2507f7f235f3e8842da3a26b2c51d05f73c2ef238e2c3f42de262e4c494e196215811a0e12862763c8d92283857cbdd9ac681abba0899b9e8079446ee6ec7b5af9c09977e3b10ec6ea4de8a8de1d873bf7c680ee1d20b66c6911a981f04d34cc117d8821d919f051467c3be54ed41248248eac688eecbadfd098f6696d6490a8608ed458683dd4e21bcd75848ea6ac525082157839cb43f1ec04c7d034d377be718b06c4425753a80f4026995165d5d098f7d0ad9abd47f1ea825ec3f6bf38a133e036f07251ad5db9ea31e33675eb4c87e6588ee1a2ca389fead5816a4902f1b7fbc0bc95c4a0190854adf91a65aa625fdb766440411707e7c4945402491db18af03c2e7454badf09edb2e84be4d7d5213946c9e7e286b4abbad905a608e46f192d273e59d8747a04c1bc3c0d4c755ea091ff91c2ec03194bd5cf6a6b7f17f7458131758b82d333925eea4cc96036ada306e58676fbec40037ac1adbf7fb3bcccd04a3d646fa29e5a22680d2c285c7262e545affe84a8d1707c5149f5c08871b7603ed086d88ace5b1ec49b71713a0c9602c74b9ffc16d9a643aa2b8804b19809041ce5d767b6bb6b6d753e731d785c272c9f6d986a9a4f444f5b22d31033e17001d7defb4b72779f89668ea886be5b855aa22e472fbc1db3f73537acd07e17381022a88df9a14f18ddc306b88c3732a2c02f3610073d8ea01aa0fd8d826f6da6a0fb23b76ecc4ee7a70bf969a8ce3bf129df3c6033e3c99602ce37c98540023485408ed1572672eb355c6257068852cf0a29d93ebb16d5db7b0b7f5c8a35e3cd07b18b49a450bb45cf1c371b39acc103e505f6eb886d11406d183efa034059a0a5f4b0621cb28c442f9c78cbfeacd1c9847add4da1cd73c1b5300bc6559534fcf124f9b6409082fe7bfad6a2eadd79b2d41fde05108243e85ab27b2759f84eb28442f6e0887b83e93c0c90023671eae06cbef598d9f25d5902a813c76b0f99da43bb6b05e5a8504c4bc7279a7023d4b20b10896d7e50b9d82f14b81ad4e265a42150a2ed9d276763b107799cd99d904d2d3bbcdb2eda756ed68cd35aadf116fe0c0fd20e55866a88a8e063610ce5f3ea60db0c67d3373c3805b37d445a68c844c0b62b5e84799b650edd70d1caa25b1af68416d26cbba1d3023d82ab862074cee321676aaccc2825b196c15f423c70547ec27f07d04e06b49991da0fac37712ac76edb1a381c8a14899c22b787f69383bea5ab79526b9a9afd550fbdccdaaeadb86e832011e1a1a42f7e341d9b559e99f9cd862339423e6895b0817205bbe38e977406f9e98cd101b4e7b24c70e3b433a8454abba0ac57a56ab861a3985abacb1fcfb9980c7e57db0f81f7bc78e2568d8913a3f4fdb899c3d81a5177e748cc47310f5088f8480ad256c2407357e6f62400a3a2db000c92b24ee1a017e690025004504d7fd2126dd12ae6f162fbaa0b9dcd7756aa863cc6d970341a2fb13716006e673f5c79a3e2b92c60e423a9f9845ff9329393bf241cad6a98b6388e8ee5ee0bdbcc4b4ccaa887b82ce41587b0c1e7573aaef27ef2120afee6da54225563ee1a455c7746cebe4b8761e063a4a2a5064d87c686617d43a9387481e4319b414e3305b7a7ed891df191e960449b691cd2f136f1bbd1f6d81dd2e4738100ae0d2d20ea63a529ec6a9175a74d43b90d5acc2c3cad73858cf2a7335cfa1e0a2df20a82f199a2d41de5c613e529c1336c81bce95de5663b2a697e99032186f61955c820c4cd76a85029b2f4d7a3f8c0e5019536dc967eebc13ba8288e7d3062367cb0da1b1169bbaee80cadcc21c7c69b888cc210e7c62a9111ac1a13a72f541e5ac30b6f6327ae29b84384e9a959cf641518e62fdc9d51c160e320ce843014ac91787d2ca9e7bc4c03fb24dff5ff597cc915fb496f66b9acbdb5677ee312b6e98f408f000d8c0c042a42c8eb4d33a89852f482f2885880ca85a8e02c33088d6184d48a8f01c9b781f094ce8bad8a3a534a1abf696efffcf5698c37a7370c9bd4de216be70120d56987d6cb126ff25589fc334dfedd2fc550b9d8a712ccdfc18d29aec7954fce7dfafea5c20d283a5062b11cef388860e0f186658ecf14feabab44029b6bd6f0c47e075d53382c47a4b5f2c8a17481a2e917a261054dc6fb557569b68af35143fdba13f3f3ec49a6c5594bbff568cad844396c1e09413e77bac68b92d4d82f3c929c385d0f42825401f667c452d8e942931b368d28b7ecf3f530ec7baf66d1a6b6417aa5edf1500cbd0a997ac961942d467051df975650a2697bcddda2eb883e0cad1c70eda5b7dc209b28118df3a19b8131d2b509a926543bef4194b41e216f3451a25b9cf5b2dc330ecdb7a425a8a5fa143d7f421140df7fb8b0e895456b950cc9915fe9ab39e5efdca9fbedd77180203f4f65d15c704847443a8d19ee6543d59504af6b049a81f5ca643d45054f9744d8a0ac54186d37927e391309105816d1dc0eb79c5a8700d80aabb91b303e1e8320d59dbda662e9e9ccd793c929a3fe6e06ed3bb4755af1ab3f9438b3b07594e431734e2199be19447b406254e5ad2eedf41712ab18b2fe90eb83d0dec0028cc97d27632192ba16f377b6bea07f47c48535c714b4ce58ff290987058c37220187a0d099f180740079e3aec72778498a7c70693a1c29344343d0fe9198e2e71fcc489a10d8ce2d85861dc1135f2781f18f239bb06fafba6ad7a2e82215c2fda24fc9b9b40c8178822f2fe28fd266f82db0ae0d0f944b8395f9f290d920c50d91f1a3fb37ee90d01de621be0c2ceea80736aa417cf8f17b45f2c5dbe22f8073985d82a84c563f9691e70aab90ecf03175e6c0eefecfe0ce1062cca349eb7a4e2efc73ee78607c01fd38643bf039864fc4e485d3a84ccea59fb2a157859c619fe579289cb810114e0db09f556b7a193df543ea35b6a69b629c5533785e8b788920869ff59cf9491c98c19a198c73f5dd9e5cc1203e1acc132cf8c5b9b3754ee13bdda1f9a1d881af81128947ce0bf100fc999271448f484972de3291d95a27efa64b4ed93e350b5dc327e32aceaa12ba218c0a622311b9164abb161db713c63d7905c2b29be5bfd15cb874aa6cc9f35dfa9e3c5ff1dc5dff6776eb5f047af1730b572f6eaa631a817ee0e132dea5d904e3ef305296b4c75ab7912facea2987c3616e89ef3f12d1e0bba06468ec30a9a954d3fc3ed2b92bcf9e87f810a016afdae1ae273804cd9ce232768c21ac78bceb1aa12a64a73e523742dbf001457f123f84c53b36477e1ec680b441917b450728d2436d497a39515b7dcc055aa274b9f17e823cc1c0ace007f053b8720fa4f55793fe0187bef9418f50b837427cec5d22730f35a85fa5e7e0f432e97b8a3ea5835de7c56a250ced9f9c069b3439ff982debc7cb65276aa73dc1bb52d3c7b290f6807e1a51e3a2ef7cad369f59bfb7efa78db0002bf721fe8dde8e6a9d670218084fc8b68221af4314c44be9dd1170aaddf4913398e19f64a660b03664c3a00fcb266bb911ff8cb4617a20014f575fcfe980264747f91e4c399edc813f341c3964737f64c56feae628e313771302abf64278c71d028357c6761f34db48ac142887b052832786cfa43f050c59efab226f8e7c77d59ec380bd66d54dcc49d2d8e12eebb124f93903a80c2ab6edae1706c69eccd30f100b582b5c13a51ce1d572b04f0fa108f1d0f1cf00b9d5906a881621a6988cf083fdb282db6c1811e16b3c5d33abc8609f032f2defe46cc77e6a5d03e6fc4a3f0ba8b85323eacd6499b1b2c1dc2340d2ab447eb52a06b4d6799938b18194b4849b9745193e4fbbd31b520ef800483c02a8f28da2021a5f3d5410ce2a536a1a8942b067b8fd5fa92aaa0fe61f9f4ef0f2d452acbe11988858c85db9c53aed7b3db0c72a58db5263822ce03e5c104dc0d503e7742cfb86dbb57c330d5f5c5bc6f54f494cde8ebde1da2f83d8f544731819f39d5605ef3c4bdd6060710674966209c80292f96e4aafcd144c502ac35045f182aa3584400b679ecd35b2f37eee63337c4ca1a20e4741703fcc8664c521dc1197dfe37c6b274d0a5c742ad06c66f30e0c4b380c35176159a74aa29af31f903978ff8267615e9c0fad0bad802228fee39ac90ee4eae1b8e435d5f01d16e76b30b82e61b51b7b8e916984829ee0eae4466eb379a0891039af2d6ad1377e71e33d5df70fe3990811971ffd2897657e4d7121e1199adcd3e897136b7b9216a38e6644a4afd7ae28c2cc42d7a0af16a80bd429b073b88761b42530e35ba3986e729046698479bcb1540478df1ac18c8cb94d0e823f9df6d76dbd3f1bd67954183fca700d01e7c3cc1067c4eadce9435fd004405ca8a632612e192979ec2f9c861c1f5b0eb59a7ec5be69a4a28664164210a0bbb79de0fb4170a6977f9f300809c84678e45b22c464da10b83dc9d8381e4a7b838080d37c5442eb5bc3a7546b6394914994ea892ff129c293f8af12ef6a9752c3b1680612814968274c1a317170cd1784cfbaca66e730d6d51937b2cb6d4b332e09e855df4746860438e46ae438489338b49d2216ab54fdaa12f53ae6680b225a1e8e0b8a093cdf5a8706ee26dc18ae80c7d07039517d84ae285937fc77776ed13b674ccf034bf9e8787e27f57cda6734b79da2751dfc2a35c8e804f68b53fc218d54c32b9a7c854f47468c8c259fe4ffe9df0ce0a5a4e0c7bc4870686a9111f792fc72a319d710ff098d0922be84caa32249959efdbba3bb91d855d5e30b59abeb639659459c3b74dcefe4f65e92664a13da5f408798dada038a0da855b0fb8aa80586d7d63aa1af4f46f41fafa492660af8d8f9831ccd3a6000b656987fa5b9a8d49ec231a01c3401d57e920d3b25efaa13cd33dcaf2f50c5fa04375d79b44cc8c242628696f8a24f5a16b170fce0598da348002a75064994e6f62b17f58f1c6f45698b0bb8d11f69b21dcd789cf97c2bc5d869385462429d9d8148457489e128bbde18061807e284db2595f1cf93b1894f4b6001aa44a1bfeaad42a8b512d941f05f6a1532a66ffc97c1202653daa099dbfe60a5a5c97fb3a4518940328e752958c9aa3f3dc604e481ba90afe856db9c2066823e00f52ca6845a9c69589b819276c475d115d5fa17ae65027aca59bfbe372c29a016282c01bb0537b3b39a27646d83db57fe79c2725aa73284f762ab9670ce170222eb8bc82f17097616173611325448a7cf5cc312ce1187f45dfafe1dd40608b4e3e4b166611c0774768e52b42b7e6bbb10caffb4b1ef91bcafcfef02ae93109f9899fbf18f594594ba9c33b6ca80da1d192f223854e6844e35497d87b60e5164460a1e6326fa06a48be56c609a19fc28783163e0e7b377db80f4e25c38636d5db758d203f92a8b4c07db1887221a72b49aa64b820a01410a318021988ea081c0f4c7402640680288a411801b58ec04cabfa288fb2452c9d1108840a2214054003521d83229a62583e41188040251010a4e4460aa21316a35b0c2ba02540645041cb283020d6120d7b48d66048c575d0a00ce141e80c2ee9d8c9b46170ac220568123644a4ae910101c30b271a8ce65286b0294b3900919a5d86040c2b7c4ca53a82c414b33ea284a62683a1463338164380030c4ce9e344ac036a1c5468b90c49099470201d518a66471085c2127a9098a0466730083460d16320ac29becd205fe36a1bdd0774c25096e44354ea12d3d1908608051e3a0e4d385b20e74a03515dc4690feb234a686a32184e784475e0a2a7491cb1eda2aae57a82d0714c1282148885024208ece0aa8590d0bd9ebcd20bd969168ee2082e3a048e35c5377c14313a093ced6e3014a330023a80ea0918e934a318cd685cc320a80da4043419928014c9194af844654003573d01c55aaa215fd92865314ca51532a74206e35216c49fd202582c926038e111d5812bf1e4ba0815b3c97d60c9d51a099f5973ac714017e159c4c068f1322c63173b307a4eb00f52f1e76c582840410df33e13c8ed3e9c1e29157f5e40b41e65ab7109ed0cafaff71715d4424ca3d80da6d7d86d88c3283dac3740e1b329158ac0fbaec081d293ea7aba6962054c5a24ab32386e2ceacee8e4d194f3a1533e4d17db083dc137b7fc902553f4259f4e6bcaa40d7ba5c5f9b156a9ca4c7df43338c02e02dc97abc67d6cea9ec53bf27a66e0dc3ba0c20dc7096b1fb353918ec7880d87b312cc31f17885f3c67d9b18482798a109cf164e0ee074b217801eaf5a6f0574956505bca02a066995c3edd227318bb55f6b5ecc3b65ac5df1d91e8e3d9b7de6ac3e3bedc99b5621225c1719da023ea26741f6d16c6ed8e25c0160990185f14d739157415f4d3057f5291d6d27d7092ecd73a9e055505867c764e1dccfb598f67f77c6e5e1b07fd72b8c0afad799713838003d9505dcfdd6f3d798a481fba952a7a1579565083240cd6cfe9997eb1e0c7be113651703ad2b43df2a1cd69c748b80de8c65eda2e5008aa89b928df27a4bef0dea548ecc03dfbf16d02177419e6086319ecaf6fde9762ac3e1a3a7f877a7d13c39f69c734dc8d7f1c85a7530522e69a97a1cbea3cd6c61a2edd1eefb519f11decf0cef7e60c61192bb7da58d84f57258a3e02136e5aadee72c666660243b93a5b859853de73113b0600bea081f0b2b595add9b76752ffd55fbfb7cd2e29e00ab89b7ca055883760c9901007aa6bca2152b0cbe3f8f4cdb0164e819a36d820ccc3e114984b9e63f349c82ff1bfcd357f07bb3564a0b376c91e8e52f80f55371512c88a48b3cc5457a496978c78966e0140552f30121a6cea18fcc60b203d46daa5bc00aba065a4c576df1198e423fd559b97c19ebd2ecceae17a988be89c647425e47de6590208b6838be4139d63249f0e1000ab016e74d41089caeb185046caa6a97751c80c2ac5778c928e409c258643b31c607a22c59f08a453d0f733cea6582e040c6433038d296344d06ad716f65dd16cddda5bcdd8851a70fa5edb95a2261c536e266ebaac243ad9ddabf130f80f9d53cdb90b51a846204850866449bf472109c515f0fcca1415d90989bc8c306fce51b74804f7293c89039da96bd550200cb4105e007e2b610a3897f0da786d3b49b7786bbcfa6214db73970dfbf57f74b540207a051075ddbe96924d0580505b7b3c9f4ace69af22acb1246ead53231d5ad82adc0543ccd7790ddb12b17a342fc94e7bf5ca5031e4dc64cb6d29eb7e4c2e080fcb17d823cf3b52eced9540e0ea31f5d8d94264f81d9802454c7da343400c787619a1481d293e2af363fac3a2cfa5369553b75a6e7265df2a18de8bf870db12fb8cc3808d47bafba3cdcc4b61e4c32469d9a1f11c135669d488b12573ea6d849d3190232cac3c6566276ea1a58ca2b573bba376b57bfb7cb1ef934409b3dc655140bc3f39315e0e2357cb329918e293ed745052ec6c376cf879ee7ae7e8bfe7c728cfedc408dde3ae7e7981e0ba5d6892de387245b061ff4c2b88a0bd6732640b22dbe548b3c8cec580fb65daa060e43fef6190d762b1867633e74de7c8cd2bf774c3f55a343f6aed4a24108cc5e72a6285603cdfc961d8b00640e0afbb704d4a12f753ecc10239b8684f81ec02a54a5f1ef1ac3862997bbca96e20182f92ce38127db5ac07ee01b199760d76d073462b67eece5596c5d288781634db17d54296b77a241845eda1063985ee5ceb33ed68eabf5c6a8dfdcf8e58948753fc2723d87ada1d9828eb289ffe639c4f2d808d98a487fddcb2a71f310b904ff1826772380e2f6ca4444fce0e682563f7d9b15620384b62058fc9f1fbb1a583e22b78418415021948ea062f9e19b01e259a00b8871c1adc13e0470e6c33e0c6c3ff30fb061dc87b0a570d789bb62fd005d36e2bc0840479f3bdbc5c72771a08873840e080e104e04c4103421cc42e882e0406e0e11e17e044e0902d2040bc1e2fb8c6c8a888d2330281f99b8a0f28fea2610d389508bfbbc1d02e289b05020164eb94941303eb83b2b1e1fd37921de02a456aa4f387493cfee8e45f5c36bd81a0154f3715a0d4017e73a4e651c3efb3a8cc30f3f6e2de3c771c788b6101e8428088a21101561c5e2735dbb38ff21897e9461a146e06284d0fef37648215e08e8812be67bcd59e2c4b0492e671df1361142d90fcc153662e5df0723a796f233762ac438c252805838ea00ed23fb607518d28fdcb9a3d40fd7cad2509f42f025566900f8c7c2e251dce9285f3e3772db527f44ae56100b1e7378e75b3e6277cae526b7116a038e486afe6c8d5ae807068ffb92f8e2ec9621461114205041e0020850ea1db7fac7cfdb19806009f10921e28816954fe2781e2104391f60dc5ae6580d136cfadd16118e20428009482ebd512d6d01b002d5085867d600f4d0c81192c40ee3e1230c17d4fb415d41406a01ee80ca04f8a43659440ec40688664156c46f9921bc103f02096fd6ea1b4448d23a4c28f768cd10d28144a7054d6c57876001fa58b68788512330521fae668dd844781ba237be8fa8966ac49fe24f9d0ea8f7933600015d64eef84007fa20b77910f920b611c78e888aff63221754fd19395d2158883e7dba2b3c1fc485469c23501fb156ffb957bb483f2f878c78444086a04598227441708790138111f9a1694c210a419882d045f8fc6f521550b5aa8d20002575e7e11310d15c1666c78103e4b49c994652e2a979c4dd2544639a6ff44d4b7d45a5d2ef30fa1fbe9ca18e8fe9d62322aecb677134051de5f5eee77955b17d3f66053cdfd25c6ee1edb8a3a9b5fcdcd851ae7ec4b4ae11558c3f46832fc4055c5651f30ee28e407c5bc4e6de67d464055da8a83bbc7bfd8c69b08ae85c6c5cbcca5597e46c0cea0e116347607c1f914d8d188fa040782ac273e5a73a2c0d97579aa76064947286e123b690881310fa208c0b6185f319dc1440c417719c91cfe1e403c1c2fa19c57d11f345047e43d056c3f871b00a3216cb6eef3169ad280ee546300223ff69d6557efe743463c4b42200f53ea26e8dd831286819dcbbb1be1ff4168a38036db7a342b058f512638199be7b74ff4c1dd08194bab43a1fb4e8dff1caef582a979771bda111a078131bf1720764bb928449873859de918c9010e728d220d2581c3fff3ae11c3e78b4b7c081eef2850ffbf97fac5b3350923e333465a1b4b61a53e24cd3ae4fe1676d12885d08e8425cb89fa15300115e04c6e873a2a937a28acb676d3401bae8ee8cb8ae7c7a471611189b0fbfee14c68f43f658bf4c9c02eace5d5e605092596d0e55282749237368292435899857b8ee5a1774ef7a88eea7c3b74600de34544e02b615bdfd426c38f850db3563a822ed32b121010800100200880c57d95c6061740fb32de730f68d6d8490ec78dcde6ce9afedeeee2da5943249290303061806a3053a2c396cacb866987e00d150f971842d6d6badb53afc30c2c49931d24959c18832031a27e48cef488e08c810313c2065093a1836702820c1d6430dda8f0d990d68d046d4907f10420cfc0313365c52c60c4b9ae00627593ba48b06320827883c62df3d83c82254c04155c21c62524a29a594524a29a594524a29a594524a29a594524a29a594bed3ea8918d835acb07a7251290178c8d0efba75b7ab6fc686afc71823eff02df1899f928f874fc8477e27f8ae8f1f6c8f167c3323f860f089af828f870f323c0a1d2dbca3099c6c47131ada87066badb5d6ba8f0e8e0f0e327c6ec4f061c5b0d6da19d527537e3e49dcf4589f2446c06edd7508212373ab03890c9d82ef0606ceb9e30c76f4f935010c9fda77e48053dd6774be195fd00e24761125f01a9a1736a0b7fdf9d54c77ede7cb78cd66c1b9dd8237b8cfc01b38a615dc77a03e80feed7219981f8669450fd6c66e3aad7bf745b062cb32d29e1978837bcd850e7e7bd3b82bda1a68674ce7edaa7fab73d26a3daded0d1c5518976d597418cfce7af957a83afce68a0cd4b683ddde40cd755757ebe1e7c04f7c07b76d435b4fa2fc74e710657f59c547827c8c404f66d4e93e67d83c6e78e4f0de713e3c78e0d1021e3ee41d6c3336a816cf392d0f1e4074d643c583c9e691648b9a478cd37a8cee6ead7603c618e7cc62c1366559a6693d603d48cf078edff488897cece063679bea494ca13faf7b06f100428f1e497cc04024127d9f0f1d1cd827ac6da60694ee68c26b42838f8e0f0e377c5839e7acb50fe9c363e3344dd336ce07890face32818e493848c6d4688af42b80e24964e30083a7a7083714ecea3c626d89183e661471a8960c78e2d826f06e918da0183fd8d483b5aa0378dcbb22cd3b61dad1d403517d9665e17cfc860c91861065bfcfe07c7163f093ab6f8fd0d3e5bfc8f063d68f89989e1ab7b06e90012a483bcf9b9ed3f0a1dad2dbe8cd5a1df4c992d9bfac06aa18ec835d0e047d3a01523081ae41801ea860ed271021d34580c03aa359308a1244315c653350f1f0ed34f6dc91cd9f3eb6aa86acae4bb31cdd859abd6d0713c32028d448c422325a98ec681c441fee824df9089c9cd9e65c64fc40309a0c25c60a3ba517ae33abbbefb687176fd7b534fd507478bf4c191b3c69191da8683721bc7711cd7f9d0aeef792972173ab127275ee989462dcf4ab43b3adf77a26379767d14bb4ad9d9f5473a244b2279a5249ac144eb6acd14f9445ba68c5a1668d7275958c9ba6cab9eeaa6a9aeaa4ddb6beff54aef46e2485b49bc37bbbe8acac455d12ad9f557ec108b6561f14a594a5c695371d0db1556915425d45471ecfa2bac7af2ce86eedbc2e3725d5cbc5297706585524a291575c6b6ae6ea633b66e5b5ab8baaaabb22ccb126f6539549665595eac5f5eb4d65a6b527fae9138d365395496655992648b244992d4d9d699604296655996d55a6142bb8e592b87cab2d4ca3223c9164992e4e53ad1490a0896a4a6699aa64d407f1da7392f874aaef4b22cc916c9914e9224b8c56242b1582c163b4119954c2c2794a40c11bb8e76925d99c864ba2ccbb2245b244992d88e761c473bc66242b1582c1663b170b0582c166ba6c867627139f16185551a928c8c8c8ccc5d4d20368ee3389223499224299ecaf005bb458fd515f75a7f9fc9f4a70df37afa3799aa9fbca8bfec96a59ddcd57757a2bbf2eeaabb5a2c1b2acbb22c77fd9bf958dfb64496f42cd959d22da9e94adad1eabcc88923171402c8b414ea621ed362594c638e4557ac4ab3e160b1582cbab9ca6faa168a1c178aa3910e451717142804b0c50b135dd5ed1b5e948d4fc42a183e31e989cc6b69b12dfd6e7fb40233b639a7bdf5e9aea1188215501c9c841c3966e020a30efde02689010655a288ba838b7590a3068d9c334e8e1c44a801e3fc32790924288500c4832708425490041a2740410406126a608c31c638e79c73d6379e73ce39638c31c64572ce39e78c31c618bf4ca6535d33dca082040ccf39e79c31c618e321434962b8c1becc2d02262307216ae0d50d75e80737490c421928868b9d9f1d372091c4119650c11221328e22352a12395e2003074bd250a48922465004960225396e721851430149fcf030d2c40e866c348103a68d86cb0c5c280d38b66d83d9b88e821c8a099e5c3b307f72e99840a5992e1f7fbd5d091bea864a5b2591186618997010c92182830d2232204203223f1011824811448240a489222f8ae4145915c951c44891218a04a18812233318194f60e405358cf8300264248991252e18ae172b38c86aa0af5de810416389ca488c192f5020f399fe4fee7e6388903de415832140438c18a2840c93214a7a68ddf0b448d0caa11583adf70c6aede03537307e450ff97bd02f7efe26aff19aecb9af9b03572b2aa8e1150ada5d416e73e00dddc01eea6fd6cbe14c008e5eb1bda69d76f7660ec31b5bb842a51dae60b6393083373478630b41faaee1396988f3ce608a7ad2a0ef2ddbb2a9334f84613bde1c98c2612ae87bdb26573d11860adadf389dc2e5a00b30a8baa93d176893ddc2816dc38d71d89cb53176ebd6baf5b7486cedc1c1aa3c39e79c73ce39e77c3136408a7216cc6c9679a599f6b005c529a4bb94cd348db360a6eda4408ee32cd879222b1279a5226eeb3c8fb3a048c459f0fb5cdbff44b47d275d0ac53fc57f84c259701b75a951c5b1dd569eedbfa9742913673b1bba57eaca8a75bab2daf6950cd59baa1a1a2a5d2d2058ab45d21dca43575487ea0c9553482805ed6c3028ce560a14bb14c54ff70da70673a6691bd7695de795761db7759e27f2b84f139da0a0a4a070232d85542aa99438d38ab6b2e295aeac702a2b2c2c2d2c9ccb8bf6f2e295bebc702d9dcdcb8913269ce01ed440d02b05350a1450482105ce822a9cece9e4959e42ee3b1bba2d784297a29bbe055174a9133814ba14dd296c29a4e095a6a03d14b4d7d262e350d4c0c65f61db8622fdf9f3677a9039c28f2131a0f407ba1520e713bfcfdd5e8ca9cf89f1b4a0a5bf438f0c4a7b060dd94119697c9e3c3f9d48364d8d619efc457f3169aa8ac5a467689544a8e2388c6aaab8b0977d6ddc3146daf8af8db1de184ef5497365cc93ffcd6e2c86499365649c5a71bc266bfd7d9e2b8e67161c19f4fdc53c5177318f397bb7d361908bc9103b9d8c5369ba1adc69e8939834f7c819e38f62c1777222128944227d635e73225461fc89d0425f12d3d09fb67863db4599dcfef564c6c8278ac6edd6078f9c2af23bed6a08d59a593b7fce5d673b931f3225f984aaa88ddbb5318796055698ab40b1026dfa62a36e3efa9835559cd8b3a28c5f4e4e6b25848916ccbc2048880c2139ec6fcf202134a0725039a81c540e2a079583ca41e5a07250393efa5896744557e284c1726a388471bc24c902050305a32c491205e3a33fb5c6396c28140a8542a15028140a8542a15028140a8542a15028140a8542a15028140a45abee521387adfe56419bafb3fe001f8d5c5cbe8f8515d958166e64906113b1b0298e43cdf089a3ae004b3efb9676365a573ba7cebcfba2b96767d322dbf6e9b649668430e75b141273522ecf98faa82472fdd966ada9991383387a05c67605be3774413491f0d1f69c31415841f2e2024a29a52ee7619b51a2a6c6be9def9d03e88b3d7fdb2a473b162df86f70f40a8da357e49fa008430b55b5427f06c248b142ec80ddf75b5ad0d5bea187220c798516f1b7b4d0360e5d10ed1bded02bb86acf1716c836f383397f85ea417a583083a82075daba679b01c24c122df531407f7e0d0bb0e46b69417f3e0d5d6c1794ae48b15147dceb430b4690901ccfe19e414192d85ece16bf2782e343bc70199aefbd3c82b000df7b83a860df7b2d1282a4e05104d9d9e2cb78d09529c257035984205f12f29e414162f831e1c48b4b0bcb8a49a5441a612652504e8610791db76999cef85a6722a815abd347123e96fccc70776b7f7ab8149fce7b7939f8e9c10f114e7e94a0e011a478383f4a401aed19f4438752ca9e413f72a8fc70997e00adfc3862341a91483f94b470382e9ececbb7026aa2a67aa22090232f2f2f2f274e0019222ced1904a43c810403050a0a50e801050e45c702050a145d0a4401858e85b30089fda860e228f883113f080100a43d837e6022009c0c0170348834418c69cf2072001c054d04e02819a4420a28a0382104df84132f27efc4c636e30324413e5c7b06f970edba436d18e28591b6dffb48a2860a3e96d848e167c60c28f4f8b1b1a78f8d135e34c21ce4803d98f13f448861c28f929c132380f18243c3a504325a74089fb25fdfc5b62df7f1e35003374c693ba5edaa846dd649694c47102e202c2296d82ca6d46d0c0794525adda5c4555a6bedc5234ece39eb0c881e20569aa66ddbf5e98080654a6ca819747385d2206e805842291064103ad38dd89eca706d6ecfa0170f9bfea75746a617ec159b73fa9cb3c9fcd9912638a23e5be444fd52027c11a1de1936940c52d39d7ba9b66883601244925d8300c2c551c2b5f75a120b94a0413241021ae38a9bd9b0afcfe00832eeb5f4de7b6748d93308082482d8410ceeb43a8da17850c85c2f02c5c3ba976544a7da558573a333aa706eae8aded6252febfa5c1c9755b77147876735eee88cae162671e97fefc517bf654d1cf0604f6d87ad7fd22582ec9927761b3aecf974ce6761aad8beda1bc35728df52dfd8c5e38e0ee6c12b3ce21dac83c769375cae7a7870b0563d3c2b8ee3388ee3380e8649ddc240bb7e8661d8855bf55431996f54b8c44af010d65d8ab4eae1c1c15af5f0acb8ce6edb76b7ede9deaed62b8d07c7aebfb17a78eaa9669d0d27c4c53818878403e260d3daf9b3b3d66e769b5a86715968d7ef72cccb48767d11503dd5dcc3a37168d6aa87a78ad98dcada4d97ddcdaeefa9445a891ed2658ab4b3df66ad19d0aeef19cc3357d6aaa79a71d90bcd5c69a479767dd2aa9eea0b768bda38456d47d399a136d246871963548b69312da6c5b49816d3dccd48d3d6466d1cb5916a2bb565c225bd1999915ea3573a23c38cccc88d8e3be5aaec2959a54f0983c160301865e1e64ad62b5fad7499bfcf64fa3f9d36c597d377d39e29a57aa557abbc72b0a5246d9d61fa73cf59b359aff4ca6b38d8f7994cff27c779e52baaf1c525fe4c342335a5d46d86c160305849b775d06593a805e7a4a4ad514aaf56c1b4100683c168e9d9ad86dd622e5f4d3ba69be36b379d3f585ec5b88d357110db411be91219595ba50dd18fd875730ad2bd817303e9b634d45d8ab4dd5aafe39c628d8371300ee671b08e83711c2c14ebeab4450eb6eb6bda37967b5a879a481b6dce3abfd7e5e772a865e4aeef98fbe9359a0e453a6efab9d365be98d3b4de361c6e780bc5f005bab3909bb9c1276e2cf78d455ffcd3a97e5e798d7b5e795eb90dc5555df5b0caea5356b2c4a4d3a74ab4ea1bc9ba43ba34ec4362c2231ebd868eab18ed89b1623ef493d0e567523d8eca6b6434f9b94cb057954a9947da9d0a042adce4ebd1f1021f1e6496c4c007d68e0fc827c3e7f2711171fd4cd88a96951c458fb5b4206dcbdaa26579e004bed63df103266c5aa6ad2782e04f3e91d75d4f0c01883d510461f644184e083714f45d506a5d2eb4a5b2f88a3589a395a74f575305cbd3a7e554d13255b83c7d1fa78a97a7efb1a9e2c4a79d709d27caf40e5b7bf15b62fb9f003d7602b4ff028ebe255cb6174f5adbff05b4ef02924e5a2ddc8b2836b6bf0b68bf052cd960e95e443962fbdb57413962c5fb15d0f42c293e6cd1af6c2b950b9b3a6b0f56da26908519435f05a4ab1943bf04d272c6d02781959c31f447a08f338674f2e27da1c1668ca3bc4835d58cd95629795ba5581f4e4051b3c1f6ff40d1fa204e1b8854874d8bb0e973a05883780de7c1a6355fd8b612c1a60abdadf4dcdbea8e5ce826c455d5f7b192be9ab1925ab0b4e79d7886d379b0e97b6cc650d065832dbb822c7b659b36a8b2fdb7195355d90a4ad554715fefdbfda5e177e0e680cd8974fbbfecfbf9c5fbc263cd18d75430d216a950397ce268049b2ababf2ce545d9d98b2c25cb6ac638698542c127b29056db84157d3a52913607cebd8934965264d1e105bac591a8a944eb03e99ab0513bba786c3b6d897965715f716bf2abb20bd0c4672b6baa28ed19e6abda9345dad3b2306c9b759b5f6d37e79c3d32295658000b1138024484658d3e4e5b4a69ad2fb032295658000bad2340b1d1c7696bed05ecbd14b0806b92296460f8266963c6169f021798800578d09cf8a5586101280460809f47b68fa38fd3d9681ac5a0922ea69156838955ba04f4375a9dda149b7a283369f5eaf6decbd98b33a775d659b669dbc775369ee7719d27b239392975a91415539722712ba593ce064c49e96c461cc9be9748a592575a022f754fc4c0f6b0c2406be7f42dd49ab57ebdb351d939772cb496e59cb396b3cd39e79ce96c69aef88a197080f591668852b9ebd499a55345fe9fbfdd17178664674bee0bcde5e0cbce40af74798da7c461aa08c7e5955ee9959ea2c3925dbdd2616acaaadcf54bad5a222b0d2e25a925a15a22a296806a28968e88294cca4a73872a8d5552691c5fac021d2703b52315a6869aab9e5cda917aaab01953df2b5dbb8a17567a439e128f49a5116153c52cf18f12b9eb152d8f3ddffae8d8e2d4818f41767d711b29f8b2b5d16b3cd22347cff3488c5ff4488c52842c88476a234a99427ae4ae5fd2298d95c653c81432854c2153c81472d74f4969a5b82a0dd6da71664c697b5822636cf6fdeffd497f529feeb9b0bb0b85c347dd450f88ed7fef4fd1aa86eddad40601daa5a81ea53326256a79407efcf9bb5dea041504767da24dd946bed18e8ffea419add9d49a57ff862d2deed74f5d0ed4d0c5b63bb64d3443f1b2b6773678fbec8aeaf1d974b4fb5a3bd0dd3b6baded7ebb1c07de7befed30c618e30e25e4d33e67634c936525f3aa84d1d584a1847cf8ebd67df6a92e6c69b1b9edb3ecf5cef4bbd82d58bb7ef6b3e3c216eebb6fc9dec5ee420d70a1cdcbdec22cb6eb67a1cdcbd6a15be768268444abbda3d7a83cbd3126cdcfd8f4ef2aa494524d7b96c354b29eea1d324f357355ff3be709e3ed8a19b8acad5bf059ab5202a7c3b0c82131e6e9541f0224510e260c7e51875fd4b160e14686d2cb401a7fbbb4ba9d24d24fffadaa98dec58a52e955de5f45e54d6108565ee54360fad2bb58b10292c6e930a31fdf7d52e8026d42c2992a7cd24f791d367d9413b07b1192a922e6352a5fa7733f27cd09f354df83ed3a0245d28e091b3f0a78128aa418dbb72814453910891a4c048a2450fc006c67e0b22e6b67bfab0993bfc698a7fcf54fc8337f16e6174f779c30f94be09cf9bdb3c9f935688bf8fc7338fdb220b146751b82fa81fba08cf9ed779a9fec7a7bf6fcbb9a35decfbf33e61d670d8700fae10b1bf8c42b634f2fbcb12e7cc105dac47dfa6adb7eb3997e8e9ba1e3cc18872180e8316ad0a733741c9ca922ef793f832ffb4e98fa5a3f7e511bedffb63576f548d17822546b2a508589514a2b15459508165134eefaa251a45369ee57fb6185b90a65ccaaf6817af9ebe5f5f5f2577dbdfcf5aaaf97bf5eaffa7af9ebf57ad5d7cb5fafd7eb555f2f7fbd5eafd7ab7ab5b9d386362fbb865906db44218a2e0e0bea081969844fd476c43b8a99e79a2afcedb3c46e287a406cfb62b6ad879e6bc6d847e1f05551dbd9f647d16a0754a63aa56e4f27bf2d6461aada68dbb56cdbd005dac46699bb8c8cdb2e95efbcf7de5b5bdc705451407c2247b78b3d3b16b5b6b861fdfa75c6cc98945a6d973ac95edf4e6ba14e7d210de98cc15d4ad4929abb863aabdd02b4adab2d64ece9ae852c4c9122ebeca45d03e6b6a14cad1d04b2d712c8c2e9305d2a4f6badb5f61d603590d2b6fd94469b503d633a51aa050dc3ac4b6d5bcb58d353f3eed7fc370c69930d8375816b27836d5afd89c41b636fd7135d7caa85e55e86ed35ee5be8c2f92d6ca176c73d3f85b7fd940dc6174ccd5d27addaddb7b6d6da7dc17befdd1ac418639cbb14de3ae79c73ce5b5b9665c5626519a27c641d03463bffa63dc6617e1d6e22ba758b2cbcaac94203362f3bff0bce21aea063d0a6c9b6e1c59931f3e2e0bd31a959ad157cd92c78cdd55aa57aeace80df1eea13196bc6544da5f21ab6494d5a7baa3f53fb77dbece735a62cfbcc05185431d0262bb4dfb0573a2dc679128066a0fbcd363b0f4f27ea2d2de8cf0f011d6a87d9b54be56d5bd8af019b48a8e48d3706a9648846000020082317400020180e8984c228c891288b9af714000b5c76406256381ac9a4a16828085210475114638831c600600c300621438405024012b7410cabb72e38b2967b34fcf3751904975d9a7f39225a9ca1c42f682a38d361d92d1a7404c01d79825a3f0a265234eb8ee01ee7bd48e1504e7ae50d3ad591f01ff36d18464fad336be52af1880e41ee380ce8efafc0c8081d128dd4dca008334cbf50c6e420d42ffb6315067d9975ff9232c72bc5ee42179b710f8ffb7a6b8b47ec147570d7383d82a25a2f4995d6e399e4b0cfcfe08004f40004d54f9e6e8e4004aecdb71f215674b9e140555e926ff57576a461bdf19958878c7212bfd7f82792cd896a5018a0ed323ac1c66dd3d3d5ee633010e9dfb63957e1ff21cecb5103e0c932da076368788bfa4433ec824134bdf5368d7b7f9d8b4960743642637d358d7d9768720c0179800fb9d44597e4d13a76e74b6d51a6fd021aaff759763e4e82322ba743c14a2b36bc4f44715f01cf3c7dffa5ebafc80821e2a64e1a9bb294e655ae2023e6901258406f880a7fa847a285217a274c9896085dce04dd13b45ec0472b22f8ccb1890c97f0b115b19236a7b147d12ab75b1a52c2397a96d09b55eff43fa125f8cba668caedbee0d5b2b7f007ebae341b6ffc56e5732605165b50c5db357bb6840a5b418924aeababb975ce7cee2714acabb694df92fa9e4c433058d79bac2d4edfd0c73eb40c1eee6e588132d384d16fbd2ae4eb2d3aa8cc7b65b08c6412b1aa218d93161d1677700830c1c89527da83e9c3c2ea40a62a232aabcd9ad9e50aad69c670d39a7b536dadb9f0295b532951742529b0b3ad3dd502367ef66e9333d2a2e54f615bb1240b621ecb47515e36081f88e83e9b057868660259058870294e112c0e504c5471b4e86228092529ff946eae66e3b14a5232ece7760001ac21543aab0485269c6a17e982948d4b7878665c42e64d6ee876495eb9010083d0e08b8a766cf1012176fe859c8945efd3021f16681f02cefca2e0b18233bb59ed80dd66a4629ff29ab26ddf7ef2daa4456100ae5b0fa0c11e38f64adef66609670e08ac3de4fd4f6f432c7cc6355897c7bad6b1beebc1ebab5c405ca3db189212a8e57268dc4d7425c0c30ccc1d8f593b2bb5676b4cb61c01f2f03a4b51fb2c880fcf00888ecf4ae8502ab8435fa97f3619cf43837d1361bc425904ee4ce3551d0024b0a6ba330519119d6c795a7da6af4512f05522671cb807ee92c8b33c5a7faf8a4c3ca936c45c6cb06865b8e64189c29f788bef0228aa1ea15d4cb4338af508107d43c5233d5582416b98657b8c0dd786cbec5a371d6c5321f930a7022216e8b2fd220a91700a0cf3a2fb5903d58a9db53ec91dd3e23afcda411193cda4ef7a2b6cd3f4be050697a3603352c2396e1ae50e416b3e1d2a7510847707992652b94afef57048aee45b559a1c3fe62c8a02327e4dd69c0358f4bb236064931ee3be37d659842b447ee59a7552028668f86691712cf6613856d9b599c17ca9c39d10e3ee0e5f9eef8b41105f4858437b3c3a5a83a6c9e7de80a3ce3ead6fe4cad1d4d54c692b295fac1c6405d84b69870bb0dd4ad1385ffbb19346afaa41e48f843ed0d7923edb269e376e1d405f58286cb63d2304c8dad0d70e442ba6f60c802d9b30b28cbeb85525640a64599011d0177ca24ce439803001caf8c0576de88b3136930973b5a7d486d27dec81826e1cf57fbe7214672dfc1d2f289866ecb5865f147751baf81ed98c463babd81453c835ebf4ed900a398c988803e7328b84512bdaf3119bf96f7f1f5ae31c8e3dd3088aaf77988f0ff817388306bb971768cae3bcb87f5941e6d90e21811a6f0f0d9510689f46a60b576f7327c4af8fd2705c0c9be921de68bdd8e67e2d647f528628978d36e905338ae888f36d2272f98e624685b235076838ff3a67c8e8c97c3e966902b72b6cb64cf432aba88e78ba2a2d367f6d460be9374cd103fe7a6c33bb8b9896f5d891313dd7012c6b6a758f3b8f114f39c75ad4808e22cb0dc719de9b308d783b6e31b10133937285e1b35763592944470c281f9c8cade5ad24340b7e06f587b06acce5bf9fd2fe9c47360231dbddc27a7b43cb287d1d41f7b8fe1c4c1e74a3032b720d5063e89b70873846bee8c5c9c6fa7920aff465f5c4c6e53eb0c003a146252eaa00ff1acf6843d158e2e227d730a422d1ce9a302b233b283acaf2d1bb486f8a8864af9ca4994ac9049160459b5bbeda799929f696f16642f758d672c8819e5e3d199320cdb2b92906c75e6f83d258cce12416bb51306d5251071ad5d654d2eb70a533530c012e102195b360b5d1a2240250b84ca0c87952af62d164be5f08741c1474d7c37186c5625afb806fa055137a4ad4b3b8e0d000fa1343798362c8ec4461035da8135922610a4626c776dece0dc0a1139a96e37bf5053574a88731771c62c4a96721dbed4ee38230218c09ab9e8428fde51ae81028d6180430453068c0f8f4aabc2fef32a717a985ff64757ac11880533eaa23dacdaa3e839d31dbe01e267d468882523b35c506ca8ae9d20b2ec51b12a27d0629351672fcdb411ad1cdd587a406b5517c2c4108e9b1e747a4f92fdd96c827f18d22b64e83327a5203f773a899754e2353ef6960d3d7e203873eb8834d0988212c647fed9195c1c24ae64183af89b294c834589b5a148fbf470a3fb8129175dceed29a96b246a59519e5961a6da69434db512458ab36da440493e9cf6460d9cf8a2410beedd0182abb06dc2f8bda8bf3ef7b63a9da8658a9e949837d3e3ad12092bb41e11e6559ece220d3d6117aa8a25cba207648b3b316693fcaa59b5867c1ba6232381147ce8f7df520fecb29979b4631763161bd699321a3d0cb4b583343e85b9963e403fe287e71dbe934a34bb36baf8ea4f32577e56f50ea2285477c3a4e2b1449ca652f4c90a5b9fc3c89f8e441118b2bc695c3a0683ce5e2b22f285ed576a8ae591d01e266404e232beee547a8094c484990a9ab73a49b1e32bd6d03ce39ff76ad73f220c9f901b822db204903fc2af8430c9d8948b1e56d91b5a53a31441b6a9c99158cf07c49cc84c1d6904db0093806985702336dc4e07bd2ef4461002823c018217e09f42423431e0f78ecffb9969e803592a4a78911b0c19860d7776abdc79027662e5137afdd516f6d4696ce4937926be42313e3486c434bf903235a92b10448d1bad4091f0899273b8849a262c2b384a108b65e3159fd200e792756858e5fad70d691ee39662823acb51f33646bf0baf91b55f0464728699e1ea530e570ccd708d16366d52c3e562717f853e0f3b54605f34fff1eaf35dd9ea615fd002b8643c238c9db4d78879ebc5cfed852190a9081c069a6b3b83cca2c8741f3d41eda51e083b1676ed960faa4c1405000222234b1bccf1decbb47a12a82232742c3f10340eb6577c2ff4877cf10a0e35a527a503fc43fa155588488af353ea82b78ad1e325e92a07efc84c0c9262c10811bb8548257a81c2704c88516ab59b144b4856266bd788e5587bce44221bf5e21a7afb95e002fd64ece006fb339682d4fe6f9254d6c2d23acb620a9de6ebc5cc769a4d67e6f1e442d1e59d5158305f0ac9aa4a141728b2bddc34c1f83ca5cc8003f93e0fd3e0a83ca4a5f915c68b44fd35b695910e115a583b28b1f40f01d59a02be35700e0e007e84352e65789e888ecd9399ce6c12805cc5278a3418a6a8350d1ba220a602bf4518d2c0990e3a904fd9746825cfa2edb894028383290022ef6851f70a8ecd2a399b64cb83d90f15c7f74b93054169fc2e57fb9912fed1ed51d59b42f6ab144841f01e65626fbb84a0b7fd44e56932ba0246a3115ff19dcc91e7099df6071e2f113f980c5537c2f1453da8830201c75c7812f63b7da4dbbe32b45b5ba3706f9725c14ac441af4d0fc5a3ee04c605c913aa93cd87018f01f1020ee8c1c512eb4f13d1a2f9457ed324719e6b235bc1d842e606a9510f69708ef1ec4c92f93cd96cba094a8f8859ac9657c7cc837952c98d16abc6a96577c71f22a8dc8f850fa20b6d30d447dd193c13e75539d7d799f4dd1511353668100a9307e89fcd1b1f6eb3b7fa15f9395c2fe9c0ea51e0f25dbda44b4d92e71d3f126c7e6b19532679614e6dacec4007e70c507d0d2a01638377a501e6dacc82e2477e21e1e9f1b3ff4c8860d04ca107fb86d9903c6080c323789ed8dae97e09fe6ab0ad924217afec5beb503619b37016af7a73cfed4e331229dbf875752ae05cd66109f2d154951689244e87013ee517f3b61b5b57faadf6e3ba8c1ec847c9b66692c35f466c73aca46dc07fb2ed35844a4940adc0eeb9eb140d255b89d3c33f838da8dda8ded7b38bb91ac3b5957d8680833fa019287024c1e59c2843b5d9c5eb51785cf1211b036115f06852e492fb66da5f1ea05e2134435b392df1ba6dd55301a9dfb743adb09339b0d9468d545c968ff6707efb99e78eccda1fc09b94b65fa8f37f21563242d50541fa744814db6850cbd5ae521966a51055b7c9cea2eaf5c3e4cfc62e6e32f036a3bad416663b9229fedd5553ff8b30049d92bd6020867e5c8705a6f8fef3b7f4804e8d7c84fbb38898b5e992a8012d1e6ae123982a298eebbb0aa11b1ad73cd886bb84879eb412fc69bf28ac0a0924cd271578cb163122920922782fb66552215a009bfa439304844f5b79a6ed43dc6c18478b17e643e4e6025a4b92e3dc647b1e67cc2cd194b53ba4e2126d4cd2dece7851c024a463afdad074b5c410ad2c178eb8965d02bc26900934b42622f3f40d4ce02a2ca84e4418591a5eb75a931d61fd248e3a22dd341db44a5c3350f71d1cb41a77a3b3afbf2858981a526145235a638ea934b0c68dcf252ae78fd4702c98700cb559bf3a76c4e74a7ac557f200bf8a2f5fa73a375d90e7c204c17f13bc5cc02d8d020106601e039cb600b034c80ca5e0445d10191ada4f19f092d8822d57605aed8435d62a0e6e099f8158b3a889500eb1023a8d6d12955cadd1daf42b58a73e2ec80282435863de4850caa63acb52fa11fe67ddef2248af172be08d68d1c7f800a18832cd229136572e6b84f10949ad0208a3e893119e5c0ec248b920e887c0e2c4000feb939b0c6a114e1c236279eaa7a149cca17f12087ed19c103c007e85d8bbeed14a05d1e9aa8c82f46278fe34b663be6883be4c59e75a7a3b419a43318ecbca9af41375fec6acbff5a97e226d6b1140a02e8eefd92eb3a9cf9a75d82268e09336d198932641fb5aba8e9a24c77215e2cb7f732240e5a11b722520235114d10d2d9f0dab4f5b1addb369aa66a0e74189c6f7425421e6afd3813537cdf2b556706c50b5b8d2b680140270c2e7d77ead026254a6c2f85360c05cbd251c3c8f87d8f737e93579280267027c8448a6f4965ef8a5c70d3f629e1e7c8df01701f39eecf3496d21ac4aee72242855169a07113066abf48399c0b03e5da77c8a87bfd25712f47868ee986315350b94273ea99252906db79224cfd47bf0a20e50d9e5a9a53fcff6c919c3d752657b56b126a16a09861fff16347e47aad5e7f9b46d8d99c4af7d8dadd815eec5c6c24e537eb97320646d40209c11819f825b5f8b4cd8e0d8bef517b9ea10be01e7adb7a846baf38640929a1eaf0c53ca10291c5409c4742ff6ef1760ae007b64e5c70c6e2007525cf47254b4b01df3367d00f573e580537deedb0c514e06260bd898d63bff87e496e2162369b7f103e9a10a698a6fab2f1926404515e9508fdbac6a0254f0de78f5b841d291aba3bcf0195b8b889d72ca5c7b12252c949faabb14d78a94e4756b1a8557e8c18c62402f2f928b3540fdf5cac1a3782af2016ddb2c2455ea139258e40ddfd424eae0f36d65b1afc5f3324f2883bf7ad438e3d684cefc73ae1c686392d7b2d4b02f99d908142dfe5d947ee6116c009f3880675a2bd842e7f17e5c2da5e2bc86d594d224852889167e049f921d6f6eddaa3008ccbda49e57645cae8ce8d220721498474af993554fc8d4337a1327086a6ed65b1aab4d4643255dca31d2dafd7bd74cfa4efd5853f5cbe2078350146a9011c7ab288f2be844549963490ed370ab9f74542b28324a7946ef658c140c829c197c7852953bb3671748dd6750c5c04c3ffb3fe3cee64d5d74e6aae7123cb1648b518d22861a04f226831e931601bfca0891b530b4dcdfc5a30133bbb945dea1d11bc5702192320e3327d297f93d8668c50ed6c4647c43f593249053438c58af374edecffef8ebc7cda44238dcd789687825edf47430496951af2f81ebc8651ef322cf4081d73496b2e80ac9c89ce1b2d674c7edc57142e370af33167d2105a8b062688b09533d6e74ac1a3c9c56886d23b51cde1c56321641dfc39cb33505c03eea07e6de2c22b75efbce83e61bd78a535894dc2a27613f437b57e9e05d85a72f4d8ed764534243f7647223717b4e6085d3b7624e673890e85ae1b36675401aac28faaa6482d09e43910451e02033138186def3bdd863c09917f5b76e00ab27a92043f4545df11f11a517aaade7f00a677f4775c68cf089e2d8c5b0699906dc535357f87cd442f7a3ad9b0393c885651d91452961e217ae363a17f6491b629da0aef01cd078ef143bdad18530a99f7d144e0da642067d90ffb4e355811a228921a05e07a750d4b698f3f19db9a9cd25eb228a80d3f6c590a7d313c0817418c6273a7d536a60c45a4364d07367da3638d27284be27530dea3f5f0f7e66ef4831477deef75c2ce94a9a7b672a31ae0f9f91623574227391ec08ddb1d00a601edf510a05b11a8a9b7d6bb7d7160529061947d2fb37fb3de719721fab77a80a8549cf03eb42fd90aa8e97854516791ec07264608b08ace746665192126745a6e16048a5581ad8d1c10bb5d0e584a8b0e9d4dc2d3545e8191655d57a011841b28369d7fbcf741d20070e101f13003d449622090e2ef40d535da16667c730d4a11abb9897f25ef09476dc22e5f91abc22bfae2bb42eff070a77bbfcd87662cd9437c080c7b19221b3b5d5ebdc73e4611864017330c509c6e1afb4284675169deeaefe28754e0634165905a6f44c09f9ed2173081341d8c6da4df60e944483d3ed02114c606faa53b8ca741c2ff7e987da057a9c46bed500d211b5bf12fc88bdba668dc32cdf15b4f50f5c1c3ec12c2680dc33c309593d0a4466cd35860d9a46484fa14cd1dab9b27f454883902b4d2f8de9c96b4e17074f228a9aab5d20acf4af57415c97442d3c6d36660c22641668b0335c602e431940528b7c6c5385fea968735f132e82dfc0684a7ba26043c931f31d6e6b85e2eaef9a064ecd06241dcd2038b6e65683e202f023575cc0e4c6ac4125312ef9062748b889465dcb36d09300dd0cd9cafecb88836fc54a762cec87f18ed5a7a296daabae61d907c8b20c5fdb2ebda4b83708987c16b060e87be5a12f8d33365c390acf92d4af6266134147b8746840bf748ffc9034b002054bf94c9a28663e68ab2d263625b6c074f4626b27c91cb8c81b56d04c98f6500a28d29d9e2a3bce7c6e9fc7649c6d9ca558bc667a04a62449bacbb57a3a47c3939fd6dad9b9409638f4cca13a891c00e1e74060e78a1927732534c583418ea7c16abb2563ddb2ff3d25e311f23baf984130ff888325a30660698e499808b370b412f13fb26c58a0a066a8238c47a4218bd3ec24358b4861c622df20612c2e8a5d081fb0e9a1ac51cf235bc7c495cd5de1b9946d2b284bc5e43ff061106b5dfb6bf1fc313449f27e0734bd82bbee41406f7d6144ee1915ee0aa66c8cbb980b20afb6cea20c51867b033b0bea0e824bd6b9fa5552a827c98b1eaa19beae1767746b29ac2fc9e87a51adc24864cc7065beff63ac16742ce5f3afb656e1206de0c5673b802975130205c73fa982fd59a452292c95aa14572ca77330c479267daa75643c3b1d8466f164bdcec7d8bf2731a369f9626d230c1d863147bbecd32f6b06ec10acc634f8b93b9bd192f75f907f670e90e614379770651b18f351a3e5118890de92e0d8e1828420601371ffd6ce820ad6328cd770322445f2e294d1f41019aa1ae95dc8f2e5d5bb7037b64402b13d0ca085e1503e087cfea9b68fd83990392f11d5312156b1352ac4da080e6d81398c5c000de991d20f8ef0c6528ca6ef1e8070598555e1acf01666806d6b8d1e8fff008b0597687debe4b9cd643cbfa291be989855b022050382a616fe0d3fae97107fb3a038842bc533d92e5b9f7850a8014e53041c710c57700c87a1aadd933c251293c554f0a3e1a449dc0aa4bb11c794a3c2b06506424b35b43b3a87e6c0cb4b6b2f28baa8f517167c4e5e9059b7be6dad86dcd9a2c4954ff8dca1be96b49f0678acd2ffc2cf2610206b5fa646aa47a4949964e85517261b8365c2d3ea60448140dbb1c6d8a185003c7e0b1788a2a916ea1e2a633f41894c6f56e9fa38eda5fec0b0c063fa57b24e11ce895b4a0c6170eeb8ad1d05ee8dcdb8d49df8b2c090b7f8918b6303251559a09356ce21c28e94c984eae122a499c841f314858191b8244a110eb1bb5a46762c8c0ea2370ab8f0964428fb70e07b1ec081c781332125e360a6030f00336f1fc098fce3a50a5fe2dc95616e1465035ae71fd60d0a8614d6fe338aac785d05014195e973265bd69014f24373933969f3997734471c1941c3dc454b75821af0e84e8babed4fc051f2fef5a595083d46faca4acb6e05e9e4559c6cadfd008200a231ef74b8e0062183a92076323a498f9a97148cb1a20044744e67912b7303e2b18245b6dd13a6cf4653a6e2abd498091524cb840c33939b205408b2fb2909c179447550c6d0ab811c42dcf1a1abb0ebabdaaee8cb1c2c7df0dde1bc70ad266eb3efcee42a5db5b9674733c2914d6c8b85023793ef11239383a902009791265990f4f0a229eb0b9559ef42c4878c7eefe2691a684f418350af250625592efa9350fccabca15b04bc2929ea8961f4aa0b3a2229813a96f441ca2546ec0c21f12a203d8c848a314c39a0119e343cca2541d4c5d7d587e4f61969ef36fd5fc12e75ecd40b1fb9b24d0f598a9c20d3cad450cfe89fd7721ddc00e77b0fe20fa56fe0f7ba1c5844a22c90112d53e1bad26e6922c8d1f25c69af59370791fea42947d22c4447d6cacd3d6070cac4d3970a8db89582e8d9113222315218a3a4c0dda1351895ed1a6afd5494fff802235e1a9e6a93d4ee43bf748c8e1fc06bf832746ce9a8785e77f28f89d35a0a527c8c3fa38fd72e161cb3f843d296defe665d35674f06aae4886c54d81dce95be2cf93b1481cc013dce7afa0275f636ec5f3b1b55d9b1e8ac078a696c816ce551a18e6d49acf21533b270427e2cc1698c7aabf4a81fc678de07c9b3d30dbf7608d112eeda3936eae10572d8dbf0ed1421bc8740c51a37e6cb4147ce7fa9958885e9f501df302f57936cbe81c7b501356f7e66138cd85b902043a37fea0d311271b843871bff17054536a7f4b276bfd17434c59bd083e014d4e7013018f2d855aaf4167cf960fcd7512444863020b2b9f160653bac443f7a5ae910563dd2fb104a891e55b3b367178a67d4a756f907faa80bd7cdc20a29eb9744fc2e32341369158cad3c07fab10d89a5b7866cf54acd6d9d3ca54b8c1a02bbb30f9e67ef3ae332ebff659f67be8d063f73ed116d10178dfe360ed17c1d2a52b8e00d6e6565c51dfd0787525b7d79fcbbd5a42c26e3c23d3214f4d01554fb2f3b930a59381517b4c019d3c1524969c904a171ce7ca6e84580d084312e3914441c97b5d9f8c99488bdd969c7c60b91abf0b2958da00884c47dc58f60b150e5bbe7a78b9b5a42b5c6df47106ec72e8b1d10bfe6af91a22e6fe280818f829c2664820b362808687a3bcab6d00eb332a7dbbccf9048f558aaa00f1b1d910ba8ef1b79ae2e1f034f1dfe794e49f51d6a2973e8e6af5f1093f759a70ec10708db1f71ebfacd0a5ad87191f18fb4f85f1bee6933ee0ae880398ea9e4d3cd919124f3da09a61ec23897725ba77b79397bc4ff000cc11f4fdda4c97cdf8af8c23bf2d985e4fb8c49d00dc37c8741be3b5e7eeef3429c44d1faa67471821d87ad402393bdb13de85ef208b144788e4db914f59099902017331b34fa2b324ca927fff4ff35214661641a8996217907d3934cc49247d282bf6ebf088194f1c205c40ee018e9867d6497de4808d7ff268c0b30940168f2b904b13da62202b2d5770a6d55c7040c12df27d91be541933fcd8ffc9a4e0aabda31fa85f6e4c5d56e71a0b973c1102750e7973dde6d00ccd231b83cedc87f81e49317a580d2f742deede56a3534353252705e882696d2226a9305a364b2a96442b1529ca71fa84c1885a193a17fcb32ca56e500bed858c04e51a661ae5d20b15400d66b84ef9f4f5dbd0035c691ac0712df62f9ad7f7a2b1f84c4b96846b00550a9fe5d908106214beb5cdf82d4a4a64414f0691237f3616590e610c4aafe5ff162fadc7ff64024fb07452ff67da75aa09cc4d66d499e882f72ea2826e074ab10f21fc37233f81eb67f1f9855707b4bdd5406e0aa0afbe10b0ea038159b7cb060905baf34b71c16c9b83f8f04a710ca22b7b90e66df179f9f909bc2de0e75ef98bd806fcc7a3c61811cbeb55acd049a78fd8a5c97a9587b8eae69ff1c459a0e449c01008c52fdcb7f8012dd85a8807718d037742e6bf22fd7d5a40e2c8d8bf8ad4c52f0e908df3d0002d36c4009013b0d82284942a496ae8ddc151b2c5d183a451e6a4a7824483ff11ba42f09091c1c53e72015696963b0667ff97a3596f330670e2b251391cd74bd88c487de8c9394a205b7e2a0429456deb9b6e0fc2d8831cd311f90021c30efea16d69ff1b6198c4f2ef9fa1e5ef948f77df711caf462451103c14085c27b7de401556a7ac38e104ab70af2e3b4c92a8f769548f624b04e243e26878f59f025a12dfee721047ce1bd2075c7710dccf4910a5467d8bc27621387345847fd4574ec2d8794f7fa389cb5a6bd03d9bb8b32c8653edefc40951c2adcbf9468f782715570f4ab6942139b6229a3b414504653ffe1ed006343165528ef2b3eab1d64f52f8336af2d2d1ae35385e8b424efafff79c111b48a4fca302a2833bf5bdbce2c6cd8ffa122bd1831e40cb16d650457084351b85673c604193d9af532e336cc9771b7984f0e56ce09cc80920fcb6f5ca51b8ff8503740935c3fc2955b7ec6d1330b6e7ab42d18f25def3d24cb35c726c68ec1cceec6556fc55f841c96d535c4b45c16a02165f077550b103da8ae23abd4d9831306f4cb23b7fda7b88609b0e5c41767f7d76c19fd9d49ad6f23312308b0eaea25ad49a730e23f6e55e45f051b14d95865ee066ee09cd5f5953f24b77718f9b82a2f0c50ad06b6287b7661465b306825a1014655efbfd3c1b6b5e8f18e25bc891331bfd6e757cac54b623a2e11607b9a1b8e5db809668a05afbc5507ffd715795f8afac62fa3eaf5cfdcbaf567e31559fffaeaabada398ab374cd17bbeab380db5b120e34bab9a6ae7ea7d90f795985c779d7104ccc1513cf5cd3ec7edaa78180be462e084ffdedd66766ec3da8d8f52e9855922a0e2684bae91ae5e3ee348f334f30d7b6b746b8eff104acf38c3e7e3ef73ee37ea99129d1bcd625281a1f73dc0438d81e1047feaa83968010002b93330ce383428556ec0fde59c036b0b24ad947f43c5eb99ed35536ee4199ef04a7f83953d3d8b97970a8f779cb4d0c4fdf2003095bb1af4237a9241d5e9f465bd2a6bdb7d3c668453549101f08cef61e4e48f6939501a6234a34f4c30073327a494ca6af763bcfc8fd404c5abbfca94743888233bb7fea6caa2f956f374fd1150abd835e7886d3c3c5d75c5d1469f19ad8ffcb0c9736d65f821a940ccecb5097d57de81f977d86a1337b50f564857b2f425eceae54969afd65a444f2d8da35994ecdea1283723f0545c35621bf84ed2c09aaf5f101d5af78c4f4c19064109ac31cd2f5a16cb6fe754b40c60603b6e94e8fcae7d6a963539c1280c2a5d257c6456bf801a9be0b2c29fa7e9b7715e4175f112e6199db4d772e5cbd1f75b9500ec896e0234054657ceba6a881a71b68235a13490ae5e95160670c8f7f9a3f7d6f9243ffb5fc8f583dfdc33dc6a5bfc95d2badc877003d7c03a097ef01ebc15bfe43c33a691f5fdd301c0bbadf3f691538bb2268ffcc2b4977a505fc9f1c5f9eb9b9bf07e61a795b976454dc6f8c5552c28575438f8623db9b340a0a89e06aee0077c055b0d19f1d37e4967d1b78b2f360ee09c3c1a98f75d56f7023b3d36e980a64d52f10ecf1926473210a0e518bd1062bc3d9d77b08ea586a83602672ebeead332c79ac5473565cc6d90170a3ed113d4136b236029d79e0b9a3f1fc9c750405b9c0c35e965454e338b59f8ebd7c0bb8200f049c741c641ea4f10993e933972bb35164d3df8c14a941f66816b720e6841c077d013b778836485fb17420c262599ffedd9609b60a965eae08a74663e2426bd4221ae942d4890348cde36ab32e8d6e084d091ca3838c25a05e9b87e1237fe6923c1897e0a72e0295d119d0c075641bff1f4be5672e460493d9975c0d29af4bdeb81143b6f9aa3afec080f450453b56d258b64bbba8464a6f10f018bf54c240280ae5e17cc666ce299f00663fca0884be1341ca19e0acc43d3dd0cff2ff65edf444d3cd39636ab9919de3d63f6c84de8fb09fab234313bf1c61f3d00760dd624c2ef553bf3599c32b53637a4706b23b0608990ec903a91295e90e9a132c4e279c9724cf53ceac9c88c8730405341e71a81e09c062cc87cdf848f2e1afe87c1f92468646965118b4b0178c8bc8e9b208811fa020959bd72aec7c3a9b68e011d50598528796e11d4d8cf12df55e1ab8badca422503caec6605b401744d6728a28a058d07eb768ebadec0333e0defaad3990f101166d661bb89852437856b4867cef095f87710ae11f0516d64ba14eec962f43904256c622bb727ddb258c43b4b55998243a9f52901d27e72d328d10aa5c7f990b8cf87f41596bd7fc6f4a085470078d79a15200d42a7a922f1a87ead1cc6744ba4832ef9f72376d76f15ebe5118220fea9c9643ce9acd562f0477c2681ae420b1c048dcea7264cec6279205fd52df69ed8ee64392395def052343e2ff40e4c748790685edbe8806d484a86ec2c61c85a18f0ee15b4ccc26dbe9eb032b70c7a0b2a26cddc90c9d9e3f02775f5dbef993f2cadf676c1fd921878655613609defc0c834cf94de609611004fab03861503a58fd2f4f678b7012336de1254561de1b28a2d2e9129672a9294594adca5c6221336c295b2d544b2191e192785bb3b02ef56a2a191b231ff871a48b1a841764e8dbe8e162fc1f322a4a6e2fdd7bde7e7baa4609e19eca1450030c521d52f87c2652556ae9eb0b1a447cd78b36c6d4381f0eebf2a63a9974e2b3bd137386119e00a5cc9fcb6ef8cbbd436501cbf32127aae860d76d477aae22020f5f9085347f980602582257d90e1cb44c5d9a6a5ad9cc3a579426c78ec6c13de1683845a1645c52f93388bdbb632602ee3cc7250c44ddd1f1c8cb4d12417238cc2d65089dbc1f5988503c092317e5b45f8ffe22ceae679f7308022999de1f318d996218cc31d201755466173ced0fb76ccde28bad462431938ebb746d22546043c783f9ed083dc4752f28e50d1cc66e83fc46f01b6a1428300a4d9c1c35ade5013bf803bc96d45896265aa5069055e3f4709011b829581301d8da3523b200242deba892af796e523ac412731f1be480f54ca61be9000891793dedca383272871dd2d0faf78c9839319894a5318e213d717e5157746402552fe7b2bc61d413a3fd29e67f170ac3e78a07402d4bd9aefb474e324c9c20ff33392a6b7a0be3167ee603a1816518d08644ad92a852eeab4154f3f1c31c292d80c1d7f4574ebf672f39886f2815a509125867ac8eb28f0dc98214cd3657c621ded7937a616cbf504c5ba033e7e4cc8778dd011073cd717174d1b3f6081416ae150b8e1e8273e1a61a46d4fc3067921145f5cb19b7a635f69eb8c0fad0a85a30d29861021bd51799619f7120844ced40b34eda033c0590bcdb0236db33c72f8e70e20e2fa30b399e30e3f526008cef6e54f00e22da4050087215c8f624fde6f15d65091e249c89abc8df488a1168160fc75d40954e14587ea13cc7d79bf10eb4a99720081c8e5cf91faf5dc464e4a5a1ce3e82b02a3ca9e8a1aae28b2db3d1206e03b2592934dc17f8e27bc1382aa7b17195a17f1aa11d33028ff11e2f242bec62ca9d59653b5ab480ccfbcc66b29867c0b22ad4a8f14cc50740095cb58461419a68459a8174dccd672ba0323d087c0ba4467901ab4eb584bbfdf3ba103d9fe15ba8fedbf8edbf0441ccb75d30bd2e3f8fa3732d57f4df76cb2fa17634b9dd5ec25ca79283da8a65f651505bbe23b2143157f00bfb0fd21c082380937ab2b0396fa925b1af4d8202a3d41b7b2bd07347f2f8530f8ca85bc74f7f6fd6148677a6c6aa0b27d91520afc707c8610fb85be92fc02c6db7dfff1f4fde4de2570b5d2079a9fb679f016f5c32af3dbcb6e40bfbed0a020e7ee00f540f5fbbd583b7cf5ede8adba36303b87f7d04d137d853d82e2787b9066fa7c1cf8d70f0af3fba80d3a7bedd03b321fe5f0e93c1f66bbbb671baac12d4d7ed0950d91a3945e39888d6586ec45ebe2da94098e7d7449a88e4a00723068d0dad59c64c651b7b3ba11f10a2c777962ff0c26bbec834bd6fd00622d37fc00a80a0bf412fcdce4aecf64c30a441bc947ec5435074e4f457c4703748dde6dd42825325b26fc1f4e9a5523067ea68ed059b855c694e541cf91f01578c8a512b6b01e9bbf2564ac3ffd8abe673ccd40982fe12781cb197d101dc90510a6a3ffec9ea6f4f29fdbfc5f0c646011946ac01e98abe3250b344fa012d9def2e09cc784fd0278e3dde028ae37efc1ea49a458cd57c70e687d2fdf586cfe313e8b18ff484c27df09f836d9e5d2adb5f25ffbfcb23f4d228c029c1a6ffe8d5820afe5f8335ed958b75e80b959af5138c30dabbb3a9d1b73c4365cc7d127442940f4f05c3ed6e4e2f34daed8af96749b3bfae070730aaf54a64987d2a17f228e6cabce874f13992d10e1a4a01613d52fdec94f6389f234feb71ba4b08a4671575f15482ef2e84f0961053dfb3fd4c77b83bdb0e3cccb6b3a24b7a700d8873dffb39eb982add1400b64d4a6797a997a1ccf4c57caaf610f3b5f55633bcb09933025a1f42be5eb6667cde4a6cb8d75ef38d67ba42722ac95baa43147cd26f668a5cd68d8c0d6a9a5c584cc4d0cb20ffc97a3bdbfb5404181cb2a09ef43a506bc38159096bdf643f2cb88f3e24768d89230fcf7ba1f8b19a97f681407ba9623532f37e2552827803fbfa0cc6118f9651e273ab123809ead2524505290e3e076baba8d858501f1bde4a6fd1bedc58335847d994bca549253bce94483b3dd6e6c47d5a8b4dd82cec5ba9cbc725308e43038085def0167acc10c0c46e9f59dc242f7a475b97a489af42cff780fcd0ba97af82368f51842baa58e90a1556a828d27dc3dfdf2d7d2bba19d74cab5d95c21a563c9657f1823a183addd797e24d366fda78e34d366fb069a35d86bb9d9be95d583d07126d4d608117ca5704501c98b2ec46e886322bcc9cd0749cdecba2f9ea353bbaf4fdbbfa87f480ae9a4abdd2d00103d97575c3f9941f1d3f6a2fb974637a886786013f00ecd05414ca28c2f4dfb1a8f7bde9aca187dc382b3e9fbf8dc0a04be18a5c259a9862d543c360b2d3056ec5213f7019abdb64a2e3258a71b5d9b4aa852827af2a0a05b256d0e9785d3f26cc403a3384f4ff1d786e2a7a5fdea39b48082c54de7d04406340509642782a0bdf779e3f62a1fe807359650c7efc15f435e498a97ef079e5283f3848250e1863f4f835741152474b1b47e88295a160772105f672eb22e596b8d2f0d57dc2c125063424d7605f6e35587b5027a5eefa0e3c788e4167d6348b6c65cfb3a30d69057fe4f94554b83a61a4da56e8af1067683e651e6fec5e8df72366922a1d46a442dcad436732d2425d46ba5bee187dc2e177c0093414f95c0b53b9d625e6376581e5b523be7b66787f026abb4f4c3b0968dec8acdbea8a79eb47fb26bad3f46f9406adbb625c7253f0b5c3c968a716eac509fb9e7992a8d0d2f8bb2d3d5ac25254316d9df37e62c9a78926b1c1fb2391be4c112bd89b88f966244ea0978ef3654e7c483f8deec968aa43dce45b07e09000fe452d93d6767c7c65469b1192615a504ada380734a1406fe80d2741862d0c83e40264a096915c98352dd3b5bfcde75e71c6d380c659423d94315f86163bac6fc4f833323678df887b65324eb8d710f1cc645cc8f4bc008ded5881e2e6c2b8c725051bd55983dae6c23d741fb28d1ac02570c8676b7993a71c991af772cd740bed15bf19c8010596b49b4b62f9256acbc1929daadc23ebfa8900f31e92399898603d9e07ded79122bb7632a4469c830630332417b1694708e75f1ec0d38c5cb211cce66e8e3cc988c6d8344906a91127de68461ee91196a502b094674898b344eabdde3d72ccdc1e158c48186618a4487126d977bf72b279c9277cdf7db5a503ed9056cd68b82fa829ebc16f0e1688a0d7f1ae7920f65820e9b52664a636545b6004d34020d217864ce9eddd86c628c117d560b2fc28844ea798644170e86f26bfc41ba355bfd681e6a93b464e4f6dcdce7e256b6b0615bf5d59976485e04729fbef8404af5cb34d4242e8e4e59e420245d5c0220cf23926004ab77329490a026bee31b5a5f795a4e065a9787825b7a6ff9289766784ee5772d5a8a397b10af3d3637b74ab04aa7fbc53a0423c0316811d70c4ec9346aab6ea7ec5a64e0ba331f3241f2f0d1c07ccae0dce0dceee5b62e364e80d5528cb6e07ad536ebd0fffb48c4d5fe9ec20139ba9f377484d13992755b3a2feb9aeb96645fadfd57960c61b114437416767dac22f06036c05d748a77a7e575b79e44ebed122f5de53923707e3c95813ac9fcb095f61d9bf279753563cb33003e5c2500234d498e1e27dec881ccd8daed73b6f66a1181da293bbcadc19a6a042c64fcd20e3941318935b0d629a23264d2361e58937270643897884dbac881233078b1e1975104807d56ecc34214319ab12012b9faeb481850d85610713aa650889191f53b82026b3b8aa5b4d7cc5fae80531b4ebbf8a028d25f353a6c01a59ec8e2e32a6bd637586948a6a0ec30cdf934c44bc3221884e43842b8a88941247fa778d9e13895a7cc7d332aea6154ac15b60ebd67210f0ee6b9713f5710111b11797b2ccc20dd24a6e1078951980366ba2904217d56ace8645a88cb27c2082cce55859f2a2ff1586bb130e385c97bf2570a06cba5363495c9e4a8e28be3014b35fa80f6839011b262f5652bcb45130c6a31b4e0c45dc22326d0a46e953feac4f0d91846e8897cdce48bca2300518ed853b972b27c6c3a26bb5a932f722266250727dcce679443cd566621c335d994c4d1edafa629b5c294ca79c2c654571aaf79e05ade450af4f0136f8d6f35853efedcacdb63aa4bda18a8500c33e7b1bbdd36eb28af3313e0df1bb3403c990ea7eb97d026c3b478a8c49b86a618f64c9182cd5263299c8d3bbc0ba9e2f77e5012be6773248713ce80d6ed5d698fb4bd2c3cee0b7a7a89730a001ab2dabae30c4cb2205541204e8103880ecc88aefbdfdb3c09e4675051b5e3980afd323124083e0f07a487fdf32bbab0908e0e6f4207d163c58d202eea07a0542d92556b1d06b74893448f911ce51f69caf3ca89269e50268cf0ca5625fd095526a56ceb7bc5ea1deebcc2836f0f8f581548794085da2080eb6572608ef06e57a2beb61221bbd0cadc2e2c28604398c27fe575481ec44ba246e70773048f26b45bcfea8cdd5739ca94a60ae44d8e901a3fec48ce0308aa911bd8580fb16933a0f8b2efe2a8d71b081afe87537ba14b396c878b979b7ca59752bc923dbfe88aca3422279cc2901a148207bb2c74ef685747fcf0db463af0ccb5529e52fb126f1dfc658343800ed90bae57e9833dcef92106a01d6328443fd8aebd6156230081d2601d7049aca04b45a15982b77d859f3df3b611cce33d2889c616ccf884fbf4c8872a8a02e100a5045bccb5bfe8dd8f5a8ff9d6f27d091dea0be08b52de05b38804f38823bdf08d0b2aae0110e655c6ec4f2fdef91e62cf0441830d080631e23203e14d1a8bcc389b44976840740d791b8c050abd5353cdfc03cca502ccdcd99e97df6c4a1802d9e5b86f09026549d32de9ff0e4e8ced50be62bd00dfa997f9f6fc4651553f31f092e6984955345fc4e6d7672807c678c83e30bc585b584bd91b20e8246dd8d209977f890476330e394fa37f17a9225ef230a122db6d090cb4ce0b0f0cb7354434bf9db12573b8447b37f78e85de671298173ff92397a66508ec199a3e6da65a41c1fbe8281aab723e239013c6188b381ba9c97fcc3835c9c7ef2a0c1178c996b9606e3804b7712c65b7277f45f51ba0e089e48ba403bcb628c3160188edbefccc06388502431c8bd4a162a952cb9c2492169ef6b7fc833ac0972c6ede4424f45334d0e4d655d4cb94c7ef120805b0542ce38da843233e7c7f4b50a7fcdc10ea2d9c7dbfe67b293dc1ba6aa58ad78cc508fb8f9185f196b89d9f946f6af15a28f0dabdc8c2071574d93ace0026637b8dd69f2660b661cf011d163c919611478e25bce468598871e710e2d0943bf026cef3c162b1eea2dd09c1fa368dba2971949b94a6319b9d660d6c20cd511e6b1f6acc95fb4a40196badab8d5fb2644449ed3b9f3241e17083512a0ef0e8975313c99b9a3f901de5e068495255651ffb2a482c94f8ff9dadc7e1370c7b474d18d6fdb45499f51b92b6ea2d9c32a0806b5c85f866b8b161bd32fef25952a028e76d4065d319d4f79060635115c23175114967301f3c4223738a1d9eb76426830d1ce4017dd784c05fdaeb0a0a3c9aa2b59bb35463712c0a19b86f1c67b3be96b9ad2852d93c0ef01eb2d1e0b288e24b712ab05bf9590a18b19af8148972c9a7ffa5c84e281eba35fb669d1945db6c5fbb3e7ff1145ddf9b91b307d62aa06cee0b31c96431c72114d41d727f53e8c9ee14159e5237eeef9911b3cc6118cfa8dc247413ca7d7106c609fd1a4e8cd3f3d6d45b4f50ce54b2e2ad8eb8b0fa42e2be62d9c83fb528b85cf3ff85fe6acc8ce997bc05628439275bf453d25c965cea3d86ca15ea7b93ca53548e3a32f894c713c79485914498c78076c6a24de92349eee3cc195405d8f16b2891ca5634b12ff1290c30942a3c869bffd830a21ac3fad70122d9347a745313d98cf77e59a74e90b96316a169134c9c27726051a8bc212ce09a23bfcb3b7e1f29c50aca74aa9401b940f26190563b329c6b1210d31930598c4811b5ab5d01bf7aa9931dbcc10f6c2c95a402da59d69e5746efa5db42bf85039c3f128ce8cabb4c323a2a2b0cf652d93a237398bc7e9b9b836885b1eb28e44dc336408d13dca7ba3366d415183fab3cfd6f98b85ad218ce15874580df99aba9072b606171b63ff295bce6d1ae24b4e5ceb45d4c5b413bc182b11d7c3111863b40e29ee0f0c7cec30dd09d9048abbc28572e1ea55e025d958cec6a1f01755ac1acad15c8d99666b86acc28b5eb2e59fddfaee4c4bb997505bb8c50216eb0c2a0be1f2dc4e89681b57fc4f37afc0e546c9b108c06948562dc154cb2823a8bef68de5adfa1e9609916995b8239bb1c86a1d83535219c803df602ae705585d49689162e002b1063506264fb0eac21951d4a13a3516634911bba3c8169812a90b4e588c80b45059b1585a03766c2263ceddac93d61055288a55b56ed62a55a257b7112bc73d456cfb567457cedf503183a80b23dbfec94a937d4f12f794af344d19c1138f62faf1a28633e829043c604a0a16fa549121daec4516c8c48be1e777ca7e38c2b2c9246e0945f5912b84c9f261f99ae3407cf6c038ba1a08eaba62dd581e0d6ace98d9e7f91726bcea577ee67633220340281fd77712cbe4bf4bea43b95eacb21430efecba1c64fd5226a8e8f05ea9952a263df9f1d263dc182740c1a99fc45f2dc04dfda79be0a1b61594cc4242c23151285fa985fead31642eb2a1f135014ce2f5d5e1a99f6916229b31117cd2aca3302eebd06b44cfc915ec66d2083b15905fe1265475e80eddbf37c94491263566cf86534364210f21b14c98232e76c10316ad419dccbf0c743c56eae8ed96446fa9c083ce585a87b508beec83d8c88ee590e0e099ee96e692ece74adb23180faa1fcbe258fe4fb44e2f56d97e67f842a087a6addccb5d391ab192e568c6dc96a3b6ea6e950af8f5d4de38dc0d91a770c820e77a9ce021908a13ea2a37c25dc6a2c6e63f41974c88f41f1f819a42c31223994430f9c8963501bd261f0051083fa140fe7ba0292db1039009328c884c3d460c0e403b7e02945676cfb583943625aa65d9f0865f3ba470167a06aa16baf6d160584b40c092e4e02b7daa6e3f36c73624170c2de079db72e64fc03f4fbc0e69228f29ae0b6bd26950b1d36e2b066b0f0860679e72d3f933beb649199a74d2c63e4f0c5d36739205fa927620eb95c88c7bd10187d2d634aa015aecd49df36b27d700ece49930b0cb9f30a29a9aa6445acc9e6c4df0e5d7f7141cce7470c65ba95073f7d7bffdf4595694a44d1a6047f25a937a5279c3238a93a5454d33b96117945c2ff4b1675626bd95fac06d77fd786dae6e70c96a26598884cc9bcdd0ef873dd4e1c26846d55c36564c6997484f4f99c056e03bdb0b97fa36c37928ce9f8ab2d34a2a6ed9f12594a99ff836851ceca23b7fa52bddb27c55e625b4903e307b174483b584c534cb4fb6afc68ad5737489c2a40ca51046505a6dca6d7cac963e9f6325900e064bf10290a3a2a7d7777af09aed3aeef55de72da69bd30f5e8752a7a86cd0a9e6d1b8508978b8671d58ea1a34c7fb1ce8aac34b8a67cbd340d03352f7118ee9af107c49cdc142db5aa011d7cadebb6c46365be5e95250f89eb08185d2bdebe2320e366be5169aab1926fe1893c963ec5068f9f142974187a527bf82d42e4bf15d2b5ec5b1797705fe1ec18571f9a9554553ba832647c77b36c652d5bbfbcdc593d8be58b30f0e7d64844fc402c470a4d73f2cfe91756a63e2e69e4ecb567413f89af9fc92e49db40941dee2779bee02e4c5a18f8ea5b706455ab78bfd67fb83ea60b093f4af028630c1881247f9d2e931100ff858859dcdc76e5cbbc1f5a13c346ec7a4cd6648d9d9d0e054e56e3e1651902d2d78b6dea7925946912548568ff687594c242474eb26a6d3ab1ab04c65270f1bec7e88fa8973c9963f54be12014e5045803e243d57bd5717b92d15a0e211c1c755f076e32da260700fce8dfb2952d05bee36592ce32098a8bd849e5b98a3dc0e7ab7292d7ee2b175ab27f7d25e98d20df28a5da2a8c7e6b67eacf7599e93b2ad471a022a4f2b150a1d8edda0b4f8a0ea00217f3404f838489a981c1c664aea258f1a37bdbaa1bdbcacfaa0e12cd72bfdc99a9f8099b0bafad0d8cffaf095732f4c6c2a03aa4176725f50d219a70dea4cd4bbd6b46bdec4b74c9cc7ccf26f3da0dcb03a656cfcb17c6f7f8da8a12e143f602dbb9617f2496e53600da0572cb681011c4638409cc501dc8f4aaaadf7dddbd97e5c87b4d8482693c8613d30df3621442491c8eeeeee1d5907cb06fc06958984a1cf848990d093275028a5749766d0ddea8cbad579d9128fa98af17f4a32e88eb9fa93d65a5fafaa52596bedeb75efbd779b1fc6189752bacf9452b0631e8bbd5e51155530a89b304b290d6b601a749b349bcf9b148c91345660323289ec98638c31965bfe4c9516254b16b25451895a5b159549ed8431300673fb349016905ffb1b59cb4e70426bdc966ed0273891d1cad16c5acb7d821335308d18de5d8b9873ce39e79c734ed29cdbce39e7bdf75ed2fd1afbf2af9473524a6badd55a6bedbdf7defbf3235992158bbd5ea51ab60969acacd0d87be7dd7a686d6a215ff0b40161240c0a2990e4a3003d0fa6908234bd0d2823008f77c86333f85c5e7eadad8141d306da8f34b1f0790363cc027069ebcaae99ff3335066384e0c410a03c41042886a228821451a6a0a25671b3011966d041430d36a47670a003381e803172266ecb03c6c89f89f6865a63b0c6aa4f9216ff44468972d7588dc58e9879ad8006544091c41042843459628225401845ca83ee158b40091325493804526244898b4320253a404a765012021eab4e8e1f5ac90c4a70e2033d018aa2640616e00c287ba843465043adb5562837e02121a051871690c0033d60a01f4062a083e81d7a0a0da4d201e403270192c4c796e4956408ac15c98f243ff75e8c933849b204e826c9d006a46200c7f225891c2fef1a052420f00187899c25949460c8135aa5059a078d24c8061dcac48f1cfb840c5aab14d1e2349830000e7fd3259440e9bc9f8efbf66dfd6ca19451b27413ce2800872f3c7234233e9f7e959bd9228d1b9626180e25a7bb4360cad943862f360c1268ed86a3a1d9e7cab1f03261e0e558e0b8cad16ccf6d74f39e46e31c0a1386bebd17db9aef8623c7829c70ce3967f7db77b6db18c6d4ed723411c6dc194a1fdf2dc39ba6651a950d46a9d14dbed0dff6c6d140f8d2e10b7cb8691c0da5302667dc461fffc6b140ff33b7656e0130f0334773e1b66ddb1625eeb6c71a8c5af7deee36df76bf00e7f686c1d2359a84285015b410abd83fab3c818810e210e8c709d0cf900522efda8f47042b8a406f60850563dc57d1da06f8fcfb793f3066d69ae915561c916a54c1a30da982fcfb7743ee61fa799ad63298e1bba3fd08e50deff6492adcc78f770def24156aee432ea594313b458612c99118a39448842039024910d5a1085611ab22525c16b10122a0d41b0e7f70b42de24947a11f001a813cd0e7c523409a7a8b0cf8f05584f0ded2f282778ce407943424d181e4091304f00080329a00b119ea0f862c418fc84018b284db406b9da187ff17486c808408ef6f028e02f40383d1048c26603401a309184dc068024613309a80d104f7f27eaad6de779f3b183fe8c83d1bab9b0acf5efe4853fc6c771fb9996ebfb89149c382472331168fa51dba6b2c1d1823d6e7ea6ff5737dad7ea6c5eac2b3dfbefc695ff782f4ccc80592e18bcee286cbba298c0fe809cc16af897f024cf7fa5a899f65e1b2f3329d6959ceb2acf34147de752f4362ad3da9ed6c47decabeee106b0fccbd308eb9f0aeb31597f865488cb1d6d385c7ef2e1d6bd5f70a9d22baaff86171f92b7e380bc7aad97af1be22886671930de1f5c2e70b11e34f6dc108626f706f5c90122022a888263a4108a1ca76f89ce76877fa1c8df7f4cb94fedcbb6b9c1685cf4f79c2e777dd4a0acbf62a2b3a6e155f7b265c7b16a0217cf8fc94e9d9a0afd168cfe53db9046ceffda41ac77dfd859f15b89f9be4fd7cede947f23e3f25799b86f6f9f36baf3f4ffdf5ac6d2f435251cdf6deae61796ddb2c3558f64a8aca8a2ea5ebba2e6bcf791ae573ce394fa0e72442844fce86c6339d23fd596b1a7a771bcefd7c5d5b5af4de479f13e9e738ee35a7ad90f13c1f72136888218470ede7e49e7edc53fa32a6f761a07bfb79d7ccd73e722abcf0c3452fdafa399a9f5eedb37c176c38fd9c61fef9f5173e182fd0f37b6df1c965386a8bfb7a0c79f718b8f69002b10bb05ef89153c840058f0fa790610a1e57b8cd4af4929cb0021bf0233b84509222c2084aa03d13d4a0ed9017e828728407478420840c427040881e42e41ce17124e70890233f1c61c19122476e70e4e708d01123ac4f106a983e4fa424087ca63822c30c4768e05d3f55c287c80cd327063ba40f8fca0756830ef571e2b3032268d0943e8410c2ff70bc4c95990dc67b67d763e0f55d2e8d54485105cf413f721932c2ac70fa595a3b2dedea5b3865a07dccd118007719f1174eff7e107f54c2c869e7b4764648695737a9866500a71b93780860a05bda47888fcf4d8c514a9f1f3e3e208c31820a7da37be81c0461069b0327662bf3ae41102588246e4e8093439643c50d470cd5408ba0c885d59e283a1071e083aae0a087aa43af74e61008073f746cc7f1e2041bf407b40e3a47ab34edf9a1ff2f7a8c9830ea614cf7c49846d2f990d2ecc528254d8db837961288949426926a503a63c8f4b34729a595c482ada41af3e5d3ccc05e5aa73665926aef84314a3927a5b53a605e8a6b66b59ca78cb96656bb196f37e32de3b42ee3b42eebec6d9a13752933fe8c108ae2a77840e617254bbec487320425c66324c98f111e23afe823aa64fc3985aa03e44bfc3a38fdfc7281f1173b38fdac43629a7de41f4088d0afaf29236750fb6dbb62713a23fd17b16d0a4d398ee3a8673def7ad9735e1551ca51141051cae7ec79dc8bbc17b53053a8c8137157b7f4d76ad147e5a0725039a81c6aa578f1d88343201e08811df2ac725b7bdc7b9ee771ef79dc7bfaabe9f6f1c7c0b94e3977390e7bd6d6bb71cf795a7b5a73ffd5740f797c91e7719fe27d0aa7f5cb90229d92c2c9a43c9c322b545eb4aff6768f29af92f22b5244dc8f2ed59df79e97e23a4e85ccb5dded674f925f37f5e46562ce393b595fa256a8152aa793524301e9b66dd3bedbbe6b617ab243ad5ab3255bdcd76ac947e5a0725039a89cdab2aea0287c001c0205fd6476ce396b62e0b156ae3eb7e14e79a6cd8de336ae9f7ed4e4875bb76dda7bdb7bdae7903cb630391703afb1f1deee27958cd789bef33afde5a0b6bbb0fdd671e0f9f93bf188253cde9dab2e90cdce53ea8473c239a97a0e7a5329f9b94be5d868ce39ef9e838e4a52ececed73dc963d6de7a0f7c4a385c63879da99e79c734e8ca9bc57deae011953cefa9047f990ca1fbccfcf215b983cd2fbf0e1dd41120e8343a01db078f0e3f200670742f7da0fdb1fd5c82c6b7b779b7b51392d341182f845adeaaca855865ab55adacdb289ca41e5a07282a2c8f045d7543cd39988e526e72985bf1ac821576346b9fb09529e43f6b8e17c2458bcf464072a249cf03c39f948c0b800380442a2c5b3dc2c37233f729b8adcfd7e9677aae7f71ebffe7e7bd1de6a8a77ddde76af5ef695a0d077e7a0fc6ebbcbc0f2c65153fcdaef3635daa69f65f3e7ac3f774dfcfbf66fe6756e9555a5c4d3eba4e22a2c5eebaafe90a6fbd6e6b756e56d5559edcb5efb78eb8e89638cf84fa9134ec42f63e2af9f7e705fcdf631f088bd689fc3cff9e03cd18987c7fd86536c8876977cfb94dd25e7fea4e2f663dc31c628770df7db5bbbb56b1f5ffbf8f4a3467e0cdc7ef2be165fdbb09f7cf08b6d74c9e5c7abfde5bee3dd4f2a7e3f87c418ef9e83762c1f7fbff4f1c41863f94baa68b38ff7db4ddaea8e156ac43fa54e3811651f5b6bfb49c535cdd1a4bcdd35299a4dd1b0a6ed940e73f8bb8703c6767bf1cc6d1cf7d9a79cfbacdda43de1702c638abe2edecf3e8d7e2a0f4f29f972b51ebc06e55875a449bf0b0f871ebc3ae1b57e8cd9771919275ceece65dcf7138f88d25626885bede3a82405b76bb4b8027e0d47dca4cc42180ebc76cd09fe9b83f2c8bdf75d06c6b75d8242e3a8a99a7a95eded2e03e3f16bb8bd2de13a2ed5bd18af7fe2b17dfe532abfe566f249c5359b716bedf30cef138f58c2b52aac4eae0cbdf8fccc3dfddaaa43aa4b9aeed3af44287c1f7ce3f62d0f1326dc001c023101720414fec221d0113e9c890e9e797ed48a67cd7b88adad2dd25a948ffcb17e0ef975c95bded669a79d765a6b5b5a56a0dff232649ca11ba5ba7fdf7eb5a592a22547a3b6e4eed8eeaee3ee2d38adadacb90d0c12a542f9902820bc46832d52a2f2a37c64d40f2b5b5a503911254d23d2d316d2ee9267d48a5b4d53a80a65a15f77909e6eed21a78266f3f67076dfe24740a9503ea444ad72cb6b98c5ca082fa25f1f5b4963bf46ee1e6d6cdcbe568dd0a2dbe845f1b4a07c70fb95f4713ffa32fe11be16dff6a9502af952e7b3d81db368417ac59e7a77173e61396f35555fd284caa9b6d6e8bde4682cf75ad094d12a2d28a7b8575bbc867efcfb90b311bd4dba9fbfbe6a3e7ee12ef3b52b654b50e8ef5f3f7beeab291893bfc6dad878fe97295377c01be0a05d7c3e2a27a2b27dedb347a9266ac5b1b5d6a2726209a3c82208264001eb8106b01f602c2802ac072c0786c3922196e800264304a600c20e4140c941550405508460c9103ac84d4c88baf2e03201ca92d7e51068090f0f254f94c49440a1848a253a967060c90d3bfe5f2c593dd12c18638c914ea809694f34285a94ac23e3641ff2479a5870f85a907c919f575825f184333e0bd72c20f29c94054daaa8685de78c97866e4aeb678f7403ffd5b2faa4f8357bd657d1583b25b7d43e7d1a5be78c71ee976f632dcddcd6868c73aef6f1bd39df7baf8449134bc986120d1a93bcafe93ebfb74b51e86ee717ec454f4aeff3dcba6fcee9514aa9f7b96edd576badd5fb6cb7eeb3d65a6bbdcf77ebbe128ede3eabac58ecf58aaafb1d06dddbed128ec67fb9cf5aa6f136a906e6dd63deedee02e73e6f528dee02d7de86d7e83e3f4db75bf76d78e4f243aedba4eebd27e5b7e1de76a1db3456b8bde1f7f3a6b1d2678bbe8c693b0c3f1cc7cc397543f8a2e717a5252874b72b4e2d0f1367b2a48c55fddc014d96255fa894c92c10104218d594c9ad09c39226ab63798026fb037ca1f47365fdf0f4ad0efd03581dfa3ad2345340581d4eebecc0ee73a636fd790394c99eced4e555fe04927e7405fa4b50f4ffbffc1a24f422bf0274d0b0d1b07d554d98fc34207c79c9dc022084d11bb725578281de368986a570ce39eb6fbbfbedf3b66ddb961f76dbd7cff2ea92a65e5b7cb37ccbb605ce7bfbf2d7d6d4e0c4b7b6667e995fcb9fe5c7f9eff7cad1b09ccb5ba6413fefea922ff1730ac6b89fcb8e9a22c2e3cfcf4e915d88bc54a45444ce39592c4a69adb55a6bad2d15b9454a4562b1521129f107542dd8d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9d9f96da35157a3fe82934e7ffdb69aac6bad4ff7ee70fb20efa0467f459e5bf4565841b95f792c5fa697bfe6fcd99c9f05fd15a2a73ad3c42a3adae5177d7d4b00f7fa27973bba75a2afbfe06485eee926e9fa91f46f5f497ad310fd96e99639eef3aee15eef1a16cf6d2a5fe8b3c82c58567cfdbca2e2adf0bccddb72d6dd6f9fbd2debac6d581fa1e9774cf36bdad739127d1689441f391af4455abfdeba059f29afbffadd26faaea3e95eb47b5df16e456bd6362de7bae2b5b7a85ff77525f2687ec1094ff994dd71d4d5f6e9afabdb57fdc9bc7db9e777c186d7dfe8d75f70521aa229ede8d771d455476388deeaaa022e0e2ff0f3829e93034a2cc1e36a724009256a6bc9145209ddc47a10eb4190975d88799780f04a40948ef8e9c18fe751ca6d8efbbca77aa60484a6d4ebc1ab04042d015102a2a3a2e42ab9a0f4825210241a229512cb18358df1a9add53e0ddd76d7148f514e5a6ba5f69654a0e54f15d06089bf3e0d262172d993eadbf06cbb80370d1278e45a92d3d99a9c52daa29cd65a5b95536badb578a6d4a2b99c965a5afe0c0a8ac55a7af71a1a12b82581d34e5b1a89120a9a24e104e010280917cf1e94a6fa91525cefdc309660ed4cad58ee4819b38479dbd9d76b2b6f9fe8bba741931620faee6f88b4f6dee748a9ac785a4d03f9f6974b01f2edd6df6a701b967cd0f2a78c89a3b6a4cd7caf9bf363a0369a9c4d32f54a299894d65aabb5d6de7bef2da5a094022ae7d76ddf564a279573d3d68db556914aaa3d3da94e2afad9ee32419cde4b774ca552a913ce2975e2014487f5692a6dc5eb4ef5903af1e82195c251e15615426e450a33805ae58c5ac9977b6394a2ee58827cfaa17c70fa36a2726209740bf1aa05c9975a3a81963fa9cd8461d71666b5b674022dbf435e71c561f52376aa540e7904ba57166bca682ecdc5d25c2ccdc51281e6d288682fcd883459cd47fb91a60c833139a54e3c4e29213a5a4b4788d662b17458407484b486b8b4562987ac9e542c960e0b888e90d6109708582c203a425a435c271e271f9a4b87a5f1e8b080b484682e8d084b739d78b0768fa39d4aa558271e5ad066438bcfaf2d69a275088f71c318318b5b456b1d72fcb8b71209744ee1394b3f744df63567932afb9026fb23679dac9385e0aca9b2fd32a68d5b8b225f86be7ca30d4913fd7c234d37de48538f251db29a6d9bd20efa3ed4867ee888df641f56698abff11e7947e5c412e2fec1ed031da10de59534756da8f24813043ac267be16459a369f9f53d204817420241367c0ca9353d9c6362acf8cbb76177a8cbbf3a0726209b99589dcdbe3b649eeb76d9bd9fe94eafedeeeab086b3cbf7af83d7bc3e3fcdad9902183f06edf6ff298b3fbb8edde7b4acd93aade49b72da87e2ee5a06ba296268c2756c1b8ae7e70fbb53e167d9e6bc244171c7f170463664a30d0f1bbd65a1284c7960beef5f0b873f77ab8fdf945c8d15420bbb2ba20180397a4d090091e3fd3ad16b7397e9a8d2ddeeb4a72342a10f9625d387e176e1f5befa5b5260cbb7eb5e1d6d64f258893db13f67349075d73bf725bf9dbc7d26437942f716f2ad254696ec9175b87701b635651aafbf3e9cf6d83dad47b735635fbf9dd998b1fa5aa8f52414e1fb592a6faf78339471ae374f48af14869dd1a4f8988b6f6c5e3c3b0ed479fd6af9562293a8b5a795a94d242e5a488b417512a540e6ad5fdfd3a940a9513212a07b542a9503958de8e148b9b149b32199362dd0595835205e04707520c95d372431a6a49a1562428a4282d3a4831540e4c6f5f8269912a627945ae94cf415386e5d57577e13d07b13849719ab203a0c3f2ca442cafcc6379752caf1f8231f445aafc34ffdddd45eede028b5451a4e294147371faa51ae84e8a719a897c149cbed649b100042162c427099324bce3a020d40a95e37af1fcd00fc08f864169d2810e7f0e81604ce4db2f7e8c362d4c2e6724be8f45a2bb6ddcdd6d220f9534e18f32e6e466f4df4f639ca1349d529047c8ed9f54f88335f399ef06a7cc8a14ec3dde2529346d519b83447e8a2f629f840e1f8143a02470788e5b29075d83bff2d1cf88479af0ee363069b25b1a19f9485312698abbdb8c5e2523f4f62523b4a755204ac55f09220867d96e5e04b9e031fbbe12c48b148ca1da7716950bcf84a19ff2c109c3e5ef5a052e6230868e44294ebf7403dd472f4e5f38e92e3f3c0715902ff4c5f243a51cc9901ebe267d9b8419614ce10a6ca56e2c22d7ed7048e412b9442e914be4ca309615d80a6c85c94ad08a9395272bb19521c843eaa4178d2174cfdc8c056860867d1d471823238c91f68b40cb4a07b018e1948587d37fc066b9199d77cfa327b588a31f8d9ed442fa962a5554be4fbeb2425dde05c98834d127b948a4974e62142472b1b4a4697bfa2c43585c2c44a4497baa93e07488f43633e4e8497f63f424971fed1ba3273d69c3e0e247db6686dd5d063653beafc0567c87432cf363b11f8bf6b110912f7446ca294087cbbbf85c026ac0e849f80690be450328b8e1e25b5e032e9b6449780db8d8a4b91740c28f9e64f70d12f68874e349dfb2b3cc3ee4b63ae7b4d9731ae41a9739603e20eedc8231f4495f9e49b4e833253dbd2ac8c262ee5e5736673a2f37c369da4e957cd056caacfbede767c365976d199641d9f517b81c7ddeb3f8fae42cdb5a9dced26269759df2f551129cbe087f56c7676f6ee40bd5215fa80c02c2d0efd103071c769072c327f4a3bd9932946ea96da8469616c90563d88710ca64d884a12fdfea6418dd1bd476778105d1371e492e1fdde1500660b8c189aab892a6b9cd4f25669a12123d7ad2f708c817fa39e40b7d926bc2d01f7d70c2905e9cfe28a87444779616a79f61d224990449931369924fa429968726feae225f2694907616c2186967239c4149412cf29198af5ab1e048a63ee5137d19ce709f2b9d2da8e5157f4354bbbf91b2ab6ac274db739fe56638ad5f7e251fb4fcfaf1eb2f0cf1d8c5ede967c3a3b77df775191ebebd8c99b5aaabb67ed0f2ad0ac62a2bbeb8bb8c49e50b0eea6436a45b4fe8fcdbf79cc2d12a1f5eeb469a7448532ae3e4b799116f6c9ff36f30de0ffffc6c7c6d774f055e0bc6c86cf7acca3759474e651cf9228bd03f59836941b13da9c438fefceafd6c789d2f63d27cc3e557ddaa3eb904d31df2f018a13be489b14444e94747bbc997eb44e6fbdadbccc077db9a9598d0f4a72ce54077c8d392830644208504a4a000c8040699204d2f4d52f217ff224d333e11e456595d1410c6b89932d94b1cdeb358afabc76f3323c2bd6140017c18f0671bca04ddd03ed3369c01e3131a7ff63d1b9a3270867c4f47c7d26219946c288b124564eddeedc0e5771a45c78231328b653128d9501645bec8ace2cf63cdfa314a6fce4929a5b50a0909d97befbdf70a090909090909a9a0c2e9e76c3e8d9df5e7d3d4596bbc44949a949a949a949a949a949a949a949a949a949a949a28a1440f9258420928554a48b4fd2b47d70639a19dc01850acf0019fb35b6e851318333d179f71fec098f935355f4b64f8a28f583c7e1e958ad05d25a6b9bc97e6d25c9a4b73e11f6168cad4d48489af52a9c4e6a8253b2730263e0c27b40f4660bd46d8c1073caac45e3c8ec08231515389f148b52f1bb1a80bea2ad6600543a8ab920e4a3a40e2943aa54e2a3bed875245396d9d9f9c76feb57246596bad5bb52f43d669bf59e917e19c754efb906e2a23b4ae1f0c2f6723f318e31769ad914789cac91b7faf75d98f6a57b9cd71f56544be549e25f2512b1c235da251ab5999c89911b01537814320239c702654f5c403e31a6d78de279fcac0a00c8937c8d5e8d9771bd61f35cfdb9f3b0eacb1e7fdfdeccdc4ca922f13887ca93a9f5239f9f5eb32302a5ffbfa493573e2114b909f7d7ac327bc29d12755e4e25b1bcc8e43018d0b2de778b58fbaaa6ac25c7e3fca0867bca60e8fa6c6b88c1bb58a332e30463eac251ddd5d8236393fcb4b3f541e13aa1d9c312a3da1dd683ab4948693e9c018f23b84d1211aa5dee038034e1929b5ef3e1958b65ff6da975f72bb6741321d1853597cdbbda6aa0ef952ff7ed9976da743972656c173cedfe950d7e45b4d6a9f0d97d7d2214d35452682ee35082803a716a409694eb4279a0bc6882f612d88d07a3419bce8ca62b5f2fdb418fcf859ae45d1d1623f682d3665b420208c84b910d1a24793011ee25d57222cd9e2c1c2f836f28052a1722a5e226e70771c4ba0e9f71713a27df907a0d9ce11f94c7c498a9f65199e9148e42388f08f43a023563cc74d9f52549ab47db258a71444774f87dfe7f36b9e939b29f9a0b797290d7f66b7f623a1b49880fec0182e2e222f232b16e85e79b87c27eacfbcc9f8a5dca954a52d18c3c5297552f1d3eb943aa96219876764523973fde4e4e4434e63a058daa8b3ea88b2a256b352fa14b5e2281e2e43ce0fa5e266a89412ced9c2e5f26984b39bdc465b4408489781f19e83f213ce2905b4840f20a1a1938a475297bd77ae5c643c3046bac873b5ba46564774afacdb0aa2a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a7a767247b40fb3d70c061871d82f4daaa2a18e35ef9598691caae855845afad1b9952c9b3ac98664e9ea7d59467ba598c6be539bb4fe30cc8956ca0a5e6823173f69031e1f14b3eba57178f2cc819999c716555229fa00486307e6a10972f4b40aa0e8c71b98c2f6195498b0c9e18a8148e146739eb148d040000012315000030140c87c4428148308f352d8b0f14000b8b9846624e1909e35914c42808210a8031c00020006000046484b40201ea55c06543b0e0be64b0eaadaba9e8c9937bf8c8708c5746b3fe3e0523f8128960b950c0fe62d6a4b782225248879b80bf4b403e33e71442ff0b0f5c6099ff13724a5d186f1b0cafbcf7e8e052c6a7ecc4a02589b13d4347df46fe843e15ecbc0818c15a247497e944c85a9a7bbbea3cead0245253dd608b08e9577875d1826678a4f1fed46303a11620e56825c22052f142d250692ccadc3ac08c796edfda86977c1e0ce6549ee244657062761900fe8f0d478c03042f0903198136c117ee281137610ddab6e2c9acfb3c5b9ee40e34b2d50757c865baa096a727539e0205df4ca4f83c3b82e796f7cc45b1f0647f1be0949d4ed9019424e1c7c337dc30a07da5e3104cc661301b852d519d41b3c94a41c53fa52ce4ad84320d77fa6de301a87612d7eec68fcff220ad1d864baf807eec1478a96b9df16e6d52891401c7657c200488564e4b90bd2e51b69922017490df6d9aaa257c7aaae1431d55b3505e75f7c89f5fe08919fe961a41f87fd034f3f47116f79b487231c7bf0e967ca89cb9c686057544e84f858936940a78490ece0d13271bdfca4823c90626ce38f43f44f458118e1fd462764afa997fec2377284459ffd71f37208c4cfc39959fda3a69e0540f9b45c0df9650df8bc5b1d5f7b553459f1ac1d2442dadacefeb0afd35d17b54d5f82556c15d6297e6454da53fed5db4658554862c244d8766dc3e2bea6ed237c3d72087c532302a230890cb47fa59f0ed8c209e300272ab66cf92c93ede8197898dcf483a63b1c5c848c6484a51a51abe7b38c28ce025b84f3b32378ca7ed84e58de10b60d4a4c3d6b8d72691b9b3962ae3e592eeab9e2ec4343ddeddd18c92246b99889ba87b5edef8ad685570b68f0e14b805eabb7f9aa853e913c97e3e00d7b5d397d61bddd30cc76acd0622cc13648ad8a91c4098721019a8655f522391201114e06071e0d99232ed784d819142b11f2c32a54d79e158ebac64f6b9110579e5f80b97680beab8a685f9e35c02926a0087e94098df7c228a65b98d19fe9537111da90531649b7bb80044f45ef91ed97baa5c06a4056ae53ff3e65f6ac6014a84fd93e6125ae39c7fd6dc9a7432b6b0f557fd93d4650887ca1f2b35ace131655be593e2cafe53dda30da4e146d84c1a6a670404ccf90e090c5e666db29c4d1f0891d95f189ba3af6a77728d53f6f9a05d0805141e5633365cf30a86c9d9ccc6e86361af8aa69bfffcc35cb64b605ef88218dc9f35891a414f9936c8ac89062c8a2a5a408ab99d11b6aacedb23961c0f2d80617789ce976eb41ed1ecd6799df41a9782a3ff378faf5027051a3ff971fc0d3a35b85096e37f9167ffd87ae0f87dfcd988c89b843bd8fccfcd5a8812e6dd370417cfbb57d35885ae2a7eb38ac7497e13bd15ab5046f9ee4097faa03646753a090b8f1bfd85040b428cc221a3542697ca270a09ae40fa29094d0d712cb240694997be14b4993ba1574a5545d2d1b4ccf002b3e2a8b85e15f08b8d41639a997b33a3d361160b7b7c4b06dc7e4ef4845cef7dd02f7e1c493b4ad27030ac63117862f7fcdf0974527cad21a1160b3112608715284e98bb8e319715a7fd5a9c3956a2ce2e2cc4f04ba5e2cca0f85f1d19a37c68e0b14a2d54c0174370a93bd4b209ab8c2a227e63770584718529e243ace9b107f068d51c3a956a7c679fd4350849909c62d368426ce8d28f5fd8fc8db82e193708e6ccb5e9badc6478cba8ca342fade87666556c0abae05280e4d1bb3b961c12fae71775e7d7bcaca8fb7c57398065f80892c3ff2440a4b6c755bf2a2878772aab509845b1fdb4119df8c5e9f36fd28bd86fece1246c8674a012c0b04eceaba4404c5996f7fffa9b722279c7e268b2beb8f2f67837121d5e09ffa01f2fc5167a28a3ad2fe07777164f02b3e3cccbccc83a98a0edeffffec915a519468c17ec203233221b40d9399c1c3abbb4a593572fffb334a6da030c9dfb53a260e90540d4d836f38acb28fecad22c5faea6ebb2c541cbe3fd55aa75d19ccbe6f4f07e6ca6e2bfdbc5a0d14976ec695b4a00c66c3db28e6bf5ed89de112de7a79551797858e6de3b16318e1082b57f663c562c14fb7d552fa8120c2a571c94ef2596260df0f73075f2d4583210cf6557e8832bddb96332c68e8cb0be5eb6550a3ef3f4dda1101062f02c1f4409f874b038fd36f566de794a7d3a9006982e29536dbc20e29be4d705be497248b6f57335a6e8c8458ad32b42b2770d34b75801fde2afd328b46d78dfefaf4d2b80f776344632d007c6cb8c7240540f15992c8cd639d7badfba7ad955e5c4325ed12702b9c2a3ee9e042744e0a035a4a3804d0960243b7cafed2605d835baa61c909908f2806fe5b16641a016376b6d1115f74a138425f576fcc33a35bb6f3a1a58735799be5f3e9a6179230186fc2f7a4831c6c1b2ca522bb5ccad12893b219a604ef48001b9045e4b68f3ab9cc79a8babb3c31d2332a8b414e6f6cd9221b05d69b1d114f29a6cf6ba8c687289f03a9145c0b7196e5f9c6c1e0213183d440d30f5c543f92860c1be8477d440cf5ccb2989deb9dfbca926287ab12ac094ab26019f79ea8a107cd34305bc3e4f083ed1890b5fc53ac2ffcf1bc6627b92830883af561842be037adf3c22648555468fb44e53f6deb5931bbb2340b7083ea7542fc0a58e20116737273f70cc9342db04cf6ae1887255ce36712caa6732326de53d6bd507e654115ed3aad6dc635cd9446b930ef7d54e609dee9b0da19c32bcb1418e92e8136757e90afd60060e595207cbdf13c312bdeaef5d9d82ee7f8a70ca3d42b6ed11994d05c07def194a3aab0624e2b5bd490eb30da436a4b5ab447e600b2bf281b8e2ae04052108872dca98a9bf18030b66b073239da7614c3165cb014d0dc90bea1ce5d8a835370a0ea03d1a551b629318564bc44627b3779f7a8b8931a8f1f7a8f960b10cedebb83546df96ba1a04cdce8fa127035f0e083eecb923fd05e10a08b69cc50990e82bad324c2ea05e141bcc01614f9d09d21d59152624991d50c1e9e6f13119a83757c25a4f5f1974a316abbd734501366496c770c19ca5d8aa44c97202fae1caf980106d73573fcc04fae68a6f546a03d72e47a9dc332b8294c64d00c0d30b9c5a458f558a7e5c79e3720ea4fa7c70c971e303dc74e9cb0d0371f9f49a5e62d4c0ec11adb937c09976e3c92cb40450bd719ae60121939234d089548288547f80cd2c3233988919161003a9d0e242cd557d17703479c67934f024ba3d236766b8b7078b39cb3624825416386011dc46d31b49c8cdea33f540d750c35c02dc810aa2f1bdb15b510782e54b3c3e9c070c30246068af498016cc43423e835c6210ac5f1c6a791fddb0c9313a522ec400c55fc1f9d4668edc3dfcab1fa31f63eb962b5bfd4cb754408261b5262ea55360d7edcf90d05d16b8c8cda439a306e62f7351d9e02d1dc753cf5427b6d6a0a0b5992371767f79d1be356b93d9f42f74b0cb33fdf2f5253d4974ac27ce6af32380df4c24fe3ac9c05236dfa79770a9157fe3af106ba8dafc843929f2cb962af7f35dd33f845e036582bd3443afc415968af85937c3823b80f39c606c7c6233ce2f8a25f285df4d3bce031a733eb4a8f4337cce6640eb847815ae1b27bdc14a982fa57c60a1271a137cacab05ba53e2ebdccfdc6a6843abecfc6430808a8a33e097149330df10f056b1705a97ffc8d67f010e86f4976b0c003544d7d8e32955da570f77c36b546b7923578feb44e075afe9b87117e19bc54b882348c0c09ff0e827b1ff1ae52e1421c0b909a9c00d80647f9ef5f49b37eea43b81212db0f41a74bb6b90c9a9d4ea6d5f5c397aca8c5619a2810cada3c2dbf1ab79843962d8d2da3066563121ebe1941f1d69123ae3fa506419213ccd67d8690d4cad9c5431f20a79f8dc384459f93f02d682f5e70e10a625575f53adf4196307b37f268560c23cec9a294cb00518d998e2b505347805b7b35c4db8144f5ba95a3e2aec8854e9e64fc9e01d826b6ce20c84330590417bfe60a2c5806ea0b3211c4ff8de40c9a5875c442e3c6f290ce3a12dbeccc809e5b20e5552c34fd816be415c56d54bcebca2db31a1896a25db6bf9948758d2fa079c805d38a0268284a8cbe9120305776991976261d639e6237f7d1089e7f8a8e49d0922b1f715e05c7f5a5089709c1ba346896a5e15a5d06d1d076ed21c9f26c7b4e676fab72270a939b50f719a7d449bfcce4878ddd537c16cf5f0e82c3b80cf7a189744941e05ac02692b575aa7fdb12040cc5914691895d5cd36b0e2c5206c33d8f5b958827c0b7fd99a027b9c0c404ebee7f2608357ed24061ad7cb1911c55b4dd3c4f5a12ea0e6c2a70a013f9893cd5dec85370634574ec98418f317a7dd834e3340ae70aed3e8cec5b62556ece9898a10976a79ffb28539287e13f0c43e917a33063d3fed0c569698781224a4f3509f362518c9c0343a80863f2a46a926e416ac29998cafc9775c1e6c8db191640fd8169a54fc806b282d9f1434ec016a2b10e115dc4416cf86c82f41ff4e563a1431bf2e50ed0a19961f0b4709bc96d9313140f82d83ad507144caec3cf56b94f3fda60f2f41bd25d59b92eaa3b8de140407c82be6b36b6cf3169829d6ce61873913bbe166b90b7cdf207c4d743842b8ef411858049b2fee049c21a58c908afc9619d866e68c0f2a47de35afb585255f6698dc4447824517cca13e53d028c0df62a6166618b6e961fc4e41cfb9249d4c0b34401471e3376a0b480a3aec4152d921688d5d473efbc4c5c201d22679bc6a0366478a0f7b1f36405e35b2f4873a9b108a633309e23907f6648553f87f9945a33a0897d1a6f704764397bc5559d22a8224b2d334b0c31e6b4b0f713b5531db15c06b1bb4b88535099a52682012bdf81f18476db585acc2109f3f0edf1acf1af25be9e37fb340b7edf64bd1a183dadbb54c72d15d272a2aed017e3a69db3c5693f57f64b6233f9280a7914f18a9850ed9c840add41bc2b2f8faf68e89672729a18affaee5df94a0bda81997708a311576319a8dbdd1e89584f5272bd36625cf8b26c9a0fa5bfcc348f70b18bb2377a0d6d89676d7c5707e25470c9c3de0c13f4f730e1d35cb9307bb6bd4a6a6bda8f5152136aa1c41e2468b19d1033ca000f20ee9ab5f84a7d3853dd030185ddfb3b6e56d83ddb5869e0b95408a523bb7faa91325bbe86083a87b5b40c9c7b82ca82948f6d2a42f1cd555df05b3eeda583b48aa0e2ad3ea450184867334c7bd8c6c4d694fef079f7123a9567d6d25774d63b28a455f0cb5ce6049465cb4f3a5f6eedeaa5ef846634c708472fc25126f8dd4253117d6015170731ac1e3b8e4c1e79124b72259b17760566ba2025e69564192ee1ada111a04177b013f0c5381da8f8b31acc370c0ec0e129972db9416b2d09cc92881297c1ddc2ad925fcdd053ed87a58f8840d579c2cdd0f9c501382ba46236d2ed053635ca73b7c83c0a9267c2f249a7173c5b4811664a80be90bf71b17f49e75acb19daab4556a2060de4c91edb637a659a90200933dff7f194d619389c9e5fba90b798fe6d4935471eb3d2368153af2b4dcd5228046659a000f6b32978342f2171e3c97ec0a49a67fc95d770509418e3bbd8fd406883039836fa2cad72b378d84dbb15e616d83bdfb56eee15a6ca8529581ee0d1ebdcb1b5e4830c5eb95e92f6b428e81771e7d13fdf58fa42f86ee6d325589436836fde159cd541d0bb3536fd1140e7ed41ff3ac207005407ad8e8fec4efc28c19fd56e6170319e581c2e8b1166f3f12c0f7510dc560906d05ee9fdab1b6b7c76c8151e03d023f7170d4b1f03cc0b5637d76fb9d7dd9799efc280d9e8e5713c7fe69d658072ac5c60df03441ddf16ca7cacecc815045bcfc9e49f3fa2d2abe563f7c841c26192f6cfab812ebf35636a9080f2fabed5f28a562d048d10ffc70af00fc94c0397d1f8269c6a7bbf9e5804cee8f2204b43780e160561c27118909f376ba66feb7b6b5510ecb125875c831a5cb82664ba761ec8f36a953dd6ad22706dce3df57d4c2b3e56836c8226df8e673f39f0706f15274149d5c3e722a361d29e5bc7b58cd28375038955a10162264217ed4a621e5977dd1bf9561baeddebf56964536a61d67f1a2a64d372075267c9caae77e80f5a05b8ee8c4bff66e0096caf881af7232a8fe9b3c4aad3ee382fd804cf6dac8be692f6a2f5c06d6fbac5af52c30a7023bc79b16ba14cd131ffd20442b4a465b89b471862025f74b9d6e8b03f438bb86f802b031bb29cb6f064fb1a70c1374e5277206d62cfbcdcb832d5d8f916f46cba599b4831e3a80f5a31d582eedcb16b6ee7402638119cba5c4fe06cc9f99b0109946c9e69641640e6e8b0908d0ee6b8c388ffbc0c2a0868e51ef50a8f2719d1c456e813294863c9ad7c3ab9eb40db36c725b3e18367f93901f21f3212b1c624ed99c27b53c4c3b34b7c75def0da124ca7ff35ee526190d199b32e2c00ec6de001bb78ee14b00a3d5337a374ddcda46dea518ad2ecddb9423d4337bedf42bcf7353d7a20d1be1429c88bc5af16e0a0e90f7b3a4cabfc3e1655791d30b55cf9404eddde68ac541caded0a0f23434ffbf2ce8c9eae219412d038b54128358354cbf28173689d5734ce2e7ef71da650a66a09198e064f46ce6a526ca8b0df5a5b03700c8f258a63c9e24ba74f96b636b4319ebf56484b92582296df1abaa08256d1a41dcc586d2076677b1d28a1988c9245bb54a2cdfc8883bfc10874cc98ca1fa02b8aba8d5e8be8f357ed6da439737a18adb3227a50b8d1a7850f03ea224b3096b6c6d1279f70677788cc4f64d39a0b8a5eea4aa264f00b6a97116ac484ae94c3fdc16dd5430ab445f0e690f2ce9419e6ccee947398d4f364782dc59ea48014ec153b5ea63c9a794be79271d5afc2384eca12048d3b38f8c6cb17ed617fa414c16476e45196544d22b10631890944509f1025d1c5f878246ce2e3f33773d08233f7ee16fd0aa3d71bad30731f2eec445aa3ebadc04b5927f17abd2c9f8daa9b9e85ebaab07ee6c00294af572bcb703d307d9d01fa4c4b0e0683df6d913bfd1cece62296b6e82e38019e2c1f10ff3e7e5998c5ef094c6a5cc37618f0b173637ef64f361d23079224bd6349d868c0e823ee564c650fdfbbd0a367fee59eddfdeac38b244c8d0398ee1f18d1026d0a31a5169f6f9139493b3ec6427dff633270b11bcd28fb7ddd556471c0345ddb4a48c69d19aa21ce341b5e452b6686c05d68d8b8622c48c41241d5d509130122ac4250230ac2b8e54d105b33835dafe1253e752832ff7340bfb4bd3390f69221235ccce93a1a10cb7baae093731d0ad91dc882462345e620bc496f5255ffd015189f00e2d72b2182e4b20ad2cd82ff09f4a073696004c6a87ff6a7ef9864333f507cefb3a2060cce27f36815755818029816176825c552bd046145ccff9216d791a8df56655d730fa61f97452344181c3b05555fdd4d055f154d56f4155d72ddbfeacb13d554bd32860d954950f988994c11c37dcc5b33faa3e4e7081124655d9e15bf6923b562dae167d186442e8a90a5ba4bf5b43339cdca7aad9db3d5654f554c3cfc650c7e7aa50d11d6df27e508da6a7570f150d7722069bc43962d08c885720ef1867aa76988a387eb9b57db80900b15aad788a266fa37b84521da6be8a976afeb94192a933a50ceec7013dff47577be503dba4b5cc8a474a783bf9a9dbb1dfa0f965c6a9942fa4408c0cdfcdc898d471eaa2bd96ea588dd46fd21aabc9a051baa3eb987b912ad63aa6efd31855c3265bdc967f8517befa46c58bb065b21a55bd15e3cd7d902387b02e9510f87364d6030d0eb469682c95f9e000de083a8d31a69428f27bc2e45c04e436db7d83b85a4b4c6755b6e3b4bec7a005fd9e8e16f32cdce70a8f184ed33c248c0ff4e30306756488f6060001ba1cd098167ab9f47a1dd53afec73bb9b6580f9910f53abcf645768b079a88891e7900bc7d643ce9713a32a163ce4a9f3f724806435fb7acfd7b6ccee7f5e4359a67b55465d5101750e5375192db0779f60738fa278d5262ad3287bf25e459f4f272fae1f2e82dea80d54fa24608b74943fc07d1aff980d634f8630b2d59e7922dddebc63a77f0d7f4e2e33288702ec6badbe31454c7196d34b994f0a929e91e22934be93e30f20c755de4b7a12ac4eac63f45162e545e8c1eacdbc5140abbbb2db1e7c032d00875456bd344b6e7d15a41154a4ae15e5e28f90b96066f3fa1e196340c340f3091cfebbbfb74e3089f5860a710ec9681e435a6bec933012edc163ee8c4ccc251864e9f54b591d773d47c83583f63228b795b9f3c23c000a9a4967af194d94f92e50eff1b9816c6c4f097a8d2400b9e1f8b52b0597479982c9538747bf58e62a7fee7b176e9ce7ce0c01b971102a22baed72864f83674e8c82b40b98cb37538eba0ed3cf0f407c0739c0db564d23e3b4f2cee3f87f15b7414417e14f880cb51e4adb25eae67881b688b3c55ca1891fe8a7e1c024040c350f5939bd28f740d8315556e15ffffa85d98ed610c3430071b1675ed986df56121e365f422965863d7830c2e51b6dd1db36a83e3a54b09cac49271138b84522ba15a78af585e7956b4312365cc29459afec57257ed0911c03396b770ac599295785377f4a13f54dc582c40aa12f480f039e6d27fefc844a8aef55bc7726e6a1f0bcb278c77e3c4406b2464616e868c2cf562e383824b6511f954dd4bc4ae7fc73f1e7c76704337b64912e4877d2cc66eb8c6874e7b040e1f065b3cac1993c57849f0d0f94b9affe3d9de89695827797ec5ea53b80ff2ace5d48b71aadaa4ba7cdd952d0052308e57aaba85b1b3895c05a13ea0525d155dca09a68e001142cbfa104fc62b87d47a6ddaa76333442887a31c5ad8e4ed9a852cf8683c3ac3c64752bedd15327e5b4ab82952209306214033595c50d6e748b909eb4b8cb241fcc91a8d38f0bcd89ad216b5dff24a659d2904502a251e33865aea3a711343c9fa888ad9398e7daa524aa334843f08f650522f0801ba3a79761175d02262bcdcc6f8342eedafdf8b6a07d9941784ac2645a6fd5fd7da911bb2801988cb524b8383650c618ae3078180d4e88ee6c8c774032f5c46bb104133545a0ca32b488d98c6e741a7549670c8bc731aa144d3fc0d534cea046d4f77a6e11ebac404db1497189d60aa3091e7f461a8dcb9906999e3680b7f923c05cdc4c5436ca97413866c92855419c718e6af5f3b7d8715a28b1735a9e721c318df0170fb5ad49c60013cae3274fad8453618c216cf1416113dfeaf801c0e64ce3435395fa7ed89cc03f76c43b2f958906b62403e8658e7680967bd39a8cf4c6d6f601fe1fa3caf4eac4360ca521b30ff39a0fa52be916c98f8c878d9d02c5e060227227a35f7333372c83b85cd1d71bf17bafab193fbc70d8fedcfa97fecdba873475d977d946c71d57a639a1e98b11ee2a303ef9f4d5bb745e9cb088fe6ca10033f9ab01fba150e51720e59d71d4247c0e3c03349cc73b9c0fef5507f034014bc8c6c286fb600be9d0d28db62dbb91c59d77a1aa37f6ce5ea30cdaba0a997549fc77927b0336b1af18c1cc58b1ac04475830edf1ec3dd03f2573e3d815c9c9f50b6c88d0ce0684230ba817a251f8fab36238049a281a8fa574a1097e61f9d76cd97b8495a88ef48ac2a3748070f05746fb0c801d667d048006fedd20b6b0175b44cdb1e1667b615796e677b737c3b8a12935e5ce2a81a558f2943b2afab1e6925f26c11ab375ec0c6409d9056ef3a16519d3addc018a6e8a51ca5f774467d5dbd9b815693b2ef66e615e9d5bbae83909afd8710b7b93bbc449fa2dbdb99923769f4dbe80a86ca31d25d4272c53e550de8f1b0de2e961a39c0dfa67d588f895373ccf81bfbd58eeeade9588e3dcf88eb041c8d61204f5c6d93ae85464bc0cf48ede6b19e273cf0f5aa625991dd6685d6e38f57b412b4c046a4101a893d75599cb50f1925251f73bfadf37541d1f0e50f5a1f96651a47e3a65b5fb384c445a0c6d37b28d3488f500bd76cecd5021cafb490e5e750ca9afce6cd3255baf5e9385b2d546df878e2650718fffd9342a85b4839e5f4561028211818e21aa9d256b7a0d0c03805b7f5446325202c0a9da1d0c35c670a69c10263f92737998a4573788b3854ff33d018930ca18391b04b95acb64ee84e3dee4c683ceafcde699babc45644d31e6d65f064c0304abc3c72e057c86d045a32f6d7d6a88ab2bdc7537026b3213f351e4f5c087416ca35799c157fdff014b7739c98baf17086bfeba11343dae7821a4d35bac59e67901792f518edbbffc89f21fefdf8e25071921ea622dc71ffededefad9c0093a271baf23f7c22062012b29d44bced6018ae359f8b09c8c815f99067ba08a1600c851350633b5c30c90c9603e70818002b96c9f7808dc038f8a922da52e6a9312f89f260cc1372d728b3b4c76288d946797b7edddd4ea9dd0bf9c5e8f1214cef0e07c59605896a499a6ae7dc8449c43ae86c32aec7e4b5a7b0766f55343f62b4c4dfedb0c956bc6acb2fd66d8802bded133d356c7d1977349a8d6cb6c5d6fc62cb108617944c6ecdb0ba8a22a3246c0da1f9dec15987160d5d0d59e497d96f6153f41e3187d1f0b7b10e05798c90dfc4a76ede9d882b424835e9013b8363f92631e59021f7d1fa09c48719ce31737a45d88ca6d1345f68635cfdac7e6babadde16886c3ea0a1b97c8e589109cee1f445123b707ea972d53cdbc8928fb1b1298792f3fd08fbf71fd2dad47e45a65af25819700c3211be9fbb945206e50f2f64ccad1461a28b4599e7ec5de1468da67f08ef87e3b598447d7678869606eac57229f1c2a6486c9e6f63ed7cec14462f309ea66904ac823e22d1517d1d199ee2515ef0735348915cbb9d9653cbb6e82bab9f29d3834c92dfa967431e962a13118722673ff9d415bbb28546aae84369fd34de6b88fe906d583ad670257358cb3c57846d491e00cecffae442d5b2a292fd06693518aad04b09805982b564c75f22441a365203cc418869e10f3fcafb46a751b5b9be32820589af7be8ee0a035b074199848e6bd0765e60804e931b6b58cc29e7c9e8171c01067fd60aaae86484d173367907d373b7020f063e18a9435d515c62201ec9faab61b6608cb67429202206c60884060a057a918dac74804951d5db21e9c7a25b42ae6cea513024713ebba6600cd94d012dce839f201a4c018579e432add3a72f6c3daab743bad396039755284851100c67f175ab608d6bc52133a7aa70a4b0ecdec845499eb69c5ac0182584234861f90233c945e1d212a85f5102942e85af395f1b44c3f3fb4cdf8690b7a90ec050a7c3e832f3c9858214a07317a30e1ed3aed6452199909e39d4be7aaa362b46ed38253e07ec08462e2c4a8b580c4b7668c9bafcb38ef706f0049820fece89f6c5201eba6e15676348925dd1ca5d73cbb9e07d4b84b0a01ef352f1050c04d61171b93564d2e89ee0d23c308bc21c5868d1a4ea082d7122bbf2c89a10cd091647549cd07685249bf6aa75a9912106d703d686761da182e523e03351868220d829a059b1125976074bce44994beeb61360c64834be8e12bfa53c861969c88959d13c7e4ca96937859e8a3b61cd148c2dc591552c729b0331f871dbfaa0b3f18f11f2e40386b8cfefa58290070ffd8c4295cc83f34c902e309b6b7659832635bd8a1082281ae87ee13521adf007353b93a14f61c8464bc5eedae1820e4461dcffd861efed604d46af090182e854d6acd02995334c1a0062f9d353043e8a375eadb810b220d00fe688a78e7cfc14ffdc53de1b8913b7fc99ede285ddac229947174340ae7f1cbc7863f55e2bc5d0854e2b0c74ee770c44189488a9d4f6352d95f0d39b76e3cafacc16c1cf107a826d5172cc04d2c48503c04e04f0932721ffcc02ffbd317f5f18ae6fc6d881509a41c99c429482c195ab8c60a4dacdaec049c7591acc51cd5766aa54d056d5664274cc155b23120dd52c67c804d3dac995aa2465bdad527b65484785102ebc0533967b5cb6aa511885ab349802415c010ff0377f9af239518832da5526fd503513408b7aec94d38e5d4855010bf9dd897561c5fda6ae03e963e7830ba31188401b8ed021e52e2642ca1dade95109de359bcb90981893a8668c02a64f812f3422b961b94a237b4691331563e2886c28bb965d53b1d8ec9161ab30b89730c16f674157b0a8e6900efc74a1c2ffad5612dc609b37f6456aa804bf48ff7189ebc4e331ac8c507434086a19921ba880bdbae7cc0e1273d8594d51e2c56efaacb9a19ec405500bb997a9d0e54ad3ffe9ebf886beba220b6971a59aee4c3207e952928ff2f700465bd5871ec5be0b74b502bcdb9ae46d950a4ffb617c73bd683c77006f3ced31d2853b2976681244eb5b10ea6f267602260078de9c0c7faa549a1244752ff3500dec6b76db70e9a6101f37afd5d5a6e38cc851522fcacaf6bef5a5b91329151a53e6deb4ce0a04afdd57c57e80329622df6a0f1de1a30af5b1216960f1217133062c21c915d65818eb29b8a22d158e58a33c49150f0bbc0eab016941fe0a78bc2b42b66078e915f0c42d2848df4ba59b33be9cb01e080e5a18de6b8afa80d778347b5318ff1f5462f4d32300265482e977564c87df20a9d42da0c13cad8831ff79b83e1a9d824e6a54c6994d11232890d25364dd6dad8f8a84ab96ae4d39aee14217709bb34f53f15ac542daae9e7b420f1acc69deeb755e58c8423ccc7c864e6426f3868988d6ed6cc50173d0cb140823d2c7ecf539fda29a0ebea6efe9fc5a3365faee8fbf831e04312a95b82d1d6a736d25d5fcdb24efbcc453818d7cbd520137073319d4042731721d86c4afbc8be435709d42101ae140f31c2144c6f4f22b9c4c434c20f8dfa33059ec223fb5641c6487ac7b59c32fbb98d44e2fe947bf71d9eb77015e2fdf0159869f537cf48d27e2cfc29dfe91901520fd1d480eaa18d174aa94ed75e2a00e6d942ee3c7ad65ce7f720d0476667ea638446c14981b641855a4b37184457b295b8ff76f83c817086b9f4647213013991a092c114b8ac51b8cf423450f1a7feaaa6835e5812abb77d9e9992ad6ceecccc84f9629f0c8dbb43f9793650eb6661441b4583a50f72f335a41b8ca6d5a4205dfe25158f041ad43c55530230ff29f0bbb1971f25e77a22603a37e684a57c06f456a9f831c4a447d1a26751a8740ebbea243f205359b8321ed385b1b437ba6c96d07aee89e5b9b14eb065bd582ffcc3fc65497735393c1b8e5e74226e8f2efd665a24b5092ff0ddb2e9e6618d4c3abfa078544c1a5117443e67d75c0626908cc931cd2a9b1a64b01f8a9f32d645ccd6991309d9fb558fde828e08e609da8a2002fccd6c04e00e843e280c142398de66a578fd1510a2782764415009c5a010b005befeba1a01996083c606f1668808def002c8651df3e0d9ae2969fb76dae441a5403467bd2832d68478f984fec266c4fd644d054a84fb16ca0bfd8b3a8e7d938cfdb984bbd792889071b3931194588c5b1db856c3f24fab9f5c40ef770ddc936b8988c426ece2874b2ff244d61681acae53064115bf5f8e6183428482dc99d511c5a26db4231c462b95982b97402386d0c1825868c877f11fe48a21ec4418d4fef9499928597332102ef5ec61fcff87bfd9c880273146fbcce69e41fed6a99ebc9261043cb898c27687414cc6bf91b638429563478f6aac8d132b4c6dadf8eecf45a5a792dfdfcb1756ecd5c957acb02e9afcb477b5754ccd24cdcfb7b6ff57a10f433e26a367d25a7bf31adacb81ed2c65f1f56bbfe092414b128aafa1b0996a541681b371b2d2d9d287c15207089bb9643762c6ba92bd5af3c123bee18ba44f6247d28ff1de483f76166ce52b10f62c9ee1cddaaa415d313da251512c4346b3100e1c13e0774ec99285426b4fbb7a5274c3efa1c2b90abc1f0364d6c47c951a7bac5c9b02707595e063dfbc4b536db65a22f27591967d6cf11c6c2683e298dcecb2a48f789fa817a75fa621df97ef56ee1b09f1562ef588d54b8f76a24503c74fc74a8cfee83198233fae1ecc6e10e77b195c8b0478f84fe6555377a98c0e012c2eab142c33c08449eff484e9af84142b62e4901bb6348c55322370ace6c623742ee1ccfc8e246ba0119923fdcdc92088522efe08147a8be62ce0957d0f39446ce90ee902df3bbe32b6bc1846d2a1a747e1e9b5d41977dbf92f56c170dea3be2dd7199c629016d5cb0a8164c3ffbccd75200eb73ab1751a11316e99a5daaf7a787e79da81dd2c5627ca5f746d74139bbb810b0235e4c2a21d18ed97912653d354ed36afe8bf903eae3d46a01d47ac3193b2bb7c72d4755dd46c6253c804a38320714f0e7a48fba1d1dfc4f499679eb5d43c5be063065ea4442e0c112c8507c8c0027505d32ed37a20f31972dac2f78f927de2ab669447adec9e6d9813e86d0eab8c9add5d41bdc44a283702002b7c85473cd20afd52f34fde73265ec08a6bbcf0257c87f48e5a5e11f7429645aa558cd565842912011ce559561f1c700e2d7a84f803ca370681a52032eafaeb386151cfb5ab58f0939eba034844cb8975f09905109a799309e9bd9dbaec08efe8670ce563ecf8fa59107eb8f7fc313eed1f342b7f97e9fa361db571841356ef2a6edebcdc32d3d57f24fcf86f0d5e796e6dcb0c0b9da1520c48db93e2ef6ff431d44b852c54d9dac04ee8bb944451fd74764abd613d22e5c7f309f8fedf50ae0703f5a012adb75368829466d18ab21f4509bb1fac4b022c188db511ffcaf07bfb6f2a96918310d26637e9a07712732c7b9fd088f9d0943c40da5261fd4840c896d3f8a898864c8cfd4ccd4d8ee7ae463d9de3826f86dca99e35318e1d8e48fb9df4d975c298ff352bfbc7625477962b98c79a815f7a37edac7d573bc6f9c6cca765945acd90bdb7eb066c3f41bb1e52a7d985431c61c1c7ede224aa34044542413fa525fa67bc22210d3d57e6611ef9b7862351fafca23fce4652d2cce058cac58234132765fc3e870d70a49789302833345dee7d9fbe9af5ed22c676f295e98c8d06a1b69dd5821f5b58bf61c37e797591b0d170357997c226fa36eab137b98c5c65f5ab1ea18ea581ef48485a95aa44a6a91701d51403ab511ad949b7d4d2e88f76b078ea7c0e505a5dcb462786f50eda89b90b227da7ad09be98ed5d0bee920b972a8b0fb991dadc023dcb74e275ceaac99889f1984d601d6ab28174bee4f5b097be1808f45663ccb09e5e2cf1955902db34c9efe54e12342e956431481100a8dbdb2f89e341bcafa633f1bc3da4abe3969e1b74e0457b337e696e75921133fb0bd6ba45c4b7b32c30119ba6d0f67530654dc3d026296d403707721e95b8112c05263a03351ac69ff497062ea342533fa0085277409244eeb163db11a6e931b09ac6831421e2c76a76b8a60fb96c4dd2052e64406e06f30d69090f4fd85a3430666887d65a2afa8a03b888d0f6ca1f182881dbaf6062c90c9188c233665f8cd7c75e1904f71ff06560ddfea49447840eaab3bb952fe45660e05f78a559f9159ad5ea2aa1cabd0007ad8ad6973fe35a35d127518131ac9ce912933fad65545696724552d37bb4c35d55afb09585b3bc37c5d6e7960b0114cf1edf6d13d41b9b56741827978c6b980ae0370b1e4ed4821d84f2751da931cc05316a22507a8517806b9fadcaa31a11a1b982617a8137a4bd2441eb4c37a8ba9272e0ab7f31c426388af12d2ac3ffbcd5fd22d282eb5b100ecf7e1e8eb0ef8a257adf683fa2a7d3e38a8dacb931ac43e1953a70776adeeaca2e05825aa555d1381c3fe2312079ce93b09433ff7be9a107ec2a8dee6959e2cb006c83dd754b252e2ae23ad42e7f0df638db129cc91837b3047bb1ef3bba1436d64b25818fab7c00106b50f85b319e73283f60d6501e3e7cc9327e1114aff4ee3dc6789dd58e08390fa75cea1b81e7092f0b227d32a4a574e5f3da4a7c4bd41710f430a46a5c855d987dbb3d9f32b7bd30de8087422ae5b5486f6f318820bc530b10eb16cf01a06bb99c9a5abd6ef8840d787e9f046c5e6b5cd8b5fc4d7c10ffbd46cf838d8e415f891e8128afac16df381ed7173c422d97c0c698c58908de566b7554ab339391fbf31d26c71ec8f0bf147d0fa69b2c2834a8f366e46192817fa791384f56d6a543b9eaf671122591c6801cfa412c9247886c8481fc73732f9cd6f38f2e6565ba18d701c8b5630538e764030690a960436aba51b25eb77585fdb1a8d2e2af556efed32aeea82b1e0eaf0441a693bfc3c1735b9cd58aa53166b78e213f10e27c2674b7a63e47927b211b8f85b1688fd78fdce049afd323b42cd7570d280a82ea3e4ca18ba757890b6926286f4cc3aadfa29028734d93e4c930764d682f54f652ddcc770a3e70157af47cd21444b47b9647c8271079197377609d3f87e38b66cd99c25b403fb441077901db1e1862dcb0c4604715eefb4933a8a73d9e96a6250f807761bddc39a95d10c897404114b6f4f1372a12fb420f92542fd85aa087156d34e6013cc9042ec64ddd0d1ef6ab71c77525c1323397249363184a685b3c4dd43a14b3b1741ea40b474a4f5c78de31695703ca8329475a4759c7585f2c12cac73d72f5d276f07fba341b82cce633ca29608046ab18709ee36026ba4bd6b9359dc6100e487043dfeb4ab670cebac66853b3c99d4e1a8e00e196eb4056679150922d1093bee97bca4447087cfc63651e8c7c01d9e56554f2ec3a107879a9b2beb6ec97fe122a59efe457a4bbcedc1a1664eca2c23676d1bb7c8ed90e3821beb10ca0e3a34944d7141d8f9a922014808ff6d68d84f21467758113bfadce13eb8b013216879fab41f238ea473ec5e5d073c0e1b514a0d532445f9af43170253637e1d6aed3eb199273fae20c8ee7538baf680c85464b3f68707d27344d43c9a0a8ab53d6727ee96383c21e015481a516fc3ea6e0d7fdb97f0f5158aff07a95cd021ae8a63eb8288107438cc4b193e5c2a54d6b581d0e13c5dcd16b7e41cd6ad2386248d4b40bb0d660e0288aa4b6241466cde1c86e4f00068b2f1442a58e634d76b53137dee71534c570564944a71987bb806ea69179c9781ec32b72dddced05b607c4c0277396ca1a043e0150dc486059a68e5cb6ab8882d41e49d35b2766f7d46b601a103c34c1fbd601c8090f82f9e3d92aa73051e948ddb6b5eea89e7001e74e0a5a2a81a4788051e82968e0c106e4b2cf31613609e048be480f73a00415bcea6e1056ca3494c2dec63d802f54df7b1b1fb18117a37c9cde522c5717f121d62b850ec1e5849225ab127bdd452fb52bb9fe918f4093a76c17f3e1c913173f44dd53783984ca5eb320faa0ebe89e3197834038528b7a57c987b4fc5d9e699f06aaecbaa9bad6627f314adc52f488fdc702b44dea5ef7143d1de6af89561a2fd56d6e3968393c7207aad3144e97a7bb75389b166c65260652d217a1b0aed908ea2a2202deab17ad31fb70d5191845c4f64b24de304938c86b41413abe58bfd13a6831ef7a0a3df9166cd798be188757575fddd108f9e473cd1d72ae4215e6735f5fc1a9f1a024fd0b395ff07b9eeecd5c01860cbca7abb64b69f078cf054e8c8236d56e45e38efa609acd97d88517a98eb6b882b71cec6de9a06da5bfa03120fcf125533a3156cbbf00fbd4002becb15c590587dafd87555aca4752b450c52db88092a3829dc804c25cda8f0dbb992d4ec002042796625c431b0f5d4c8481b09dcd850664c22d67d7348fc457c9e244fa47418041646e2403cb60c663b8a14c0daed86383d363f814d3f3531bd21333b3f1630d5da90acc9876b15c5768631741c30b1f784fc5448db524217fba82a9040802d0085a5bdc25fc8cb89565995bd61ba20c2b7ebdca122349da1ca103b04f33f10b0c53cd21714e1db17a8c7f5552e1e569dc19f7f70b1f6ebf9e7388ca03baa153b02fda912ea475f6242b5f9d3d3f9c61c840d80b06a68572716e2e9b904a2ba7d998121ec87681b853ce68732c2abe8cfbad59ea8035659ab6838fc044605cead7df42d5f624cccc45f2b76ca9008f917afb266c4061b5d9510ea8ca5636d52d3cb26d293406b6989276bc89b41f077adc02d35343fd8c8143843da01b4beef44825a318fe4d60f1c58c77deb66ee33705cd6569ab6040fcc3b5ab4bff7fde79ba6dcbf963ed551a547bdc11cac272017963b75c32d8bca6e7a472fa060d9e6e7ce3ef24e6a3b4d5dd1391da6c26a9dd42153df853cb8e1048d41da06eeac333eb9d4be0d4a9dfe642cfa4bec47a973e5463b5c75eb36f5e888382fa586d541dd4dde63940f109c521b8cb9c1d774c6eba56bb641a56eb5dff596a9497dcf449754af2d143b94d7fdd311983c38172cd81956db31f7469b7a61d29d4abb69552e4c598e468ca74f2e777485e99408f25d5b42e8efa2bb7f53d32a63f64f01142c9585c794aa2112e3efca266712ac5deaea50e0c81c616719276aa817c841aba170c46f6524931dc5cafa9922daed2b0a8a29c78334e96bbad10a03f9df24c5759e67c34153cf9befd3f45466577a0b2f59554cec121fbee8253ce6e36b1373083e146542f9b05617417d1c86cc0d0ba8d67b9d79ab5d76f6c5a43d1846d1e5e98660a584de8f8c114a098e4696a34326bbc91f42ba17c502a45786b957fbf91efcf6458e7449f58c13e717b0298f7ae9047ac9925560e0ff5fb70ba802a9a443c53295aae28eda9b70d0c0ddf368051c4dfb0c36bac94d13fb78fdc823d5e035655447d4a8b6e390ab569ad6a34c16fe532bce01bcfd25dd7e18514196c3d35d1dd4e8d790afe853157c71c9a3e3fdd2bf1abfb24bf29dffbb14b129b125a467e0761203a2cbadf09fd5e7d8958af3f37d67e18b47cf3d4856c95c6961fbadfd8b1d5ab2526e0290ea9cb8532b6f5f4b14c50be94384d057b9a04093b297fac4150441a0dadc5fd869a1ef89d88b4ab9b1fc54b61ba4cecf7cf08c9093149cb3eb1fc3cf3243759c5291d1b0f9b4820ea8260d90d00ef83e9d64e3f36b4759b34a7eea00ab073cf87cc77a645ef57ce65084da4636a9d32374a489251df4c11cc03e576369479ddcd117593e11ef3179b40c2c99042a36b965873325cde102882c0bd35e3ddb99c1f637e0481c1614f4c2908acde551fccad4d9e321e506fd771b273740b898e2a7a31cf04f5dce4359a61576c470214524161015ac39ce0546794151d0ab7d4755bc0758edc9382803fecae112214597c51ef0cfb24ac5925bd7fce1949c414de281a59be0204949b134fe8da52b4ab2341c95a577c92cddf168d43d596e3e4d3e64afe7d72aa62021026f3b5b11974eb02f0ccd7aad2e9ebb75282012adc5c42312364ff26c35b56a723b6258d51413f83b51c17b5198a95aff8f656ff1f2adf99f1fcd68baa492ada967b7cb032e3302a70895ddd6ac93b8138ced9c6bdd73e814db971ce6b8d79a16e90ca439604985bbb527bbdd4a6ba252a6dce8ae30bf1b85c2cf62705ba24a04e1ac720d5cb96133b36e848553d19be80f3e247aaaabf1ee0003aeef4afd005c1123d325683f13edf31ad7baec44436c3220326214d58b81c1273e8b8195181f5f905fdf4214017bb12be02db08c817ce70a857e88283182bc0bac13600772e7409fc7c160eb474fcbe325e41cd1afa6b3ee2c633873722cbc6dfdb88e8f37fe991cf53b52ca908d3ff0405275e3e6e8204b1918d87dbe7c70c63891f58cf768a78db25bd252078825ad09a76d74e9f2d6e9ddc2981b6386ef311700221c77eefeb8b526b1f5824b95ea1a73c3d769d8980bc4355a8096431dcf84b48e25739f580f22dbb33b56b9839cbdaa785d9c1d324a6c661d0f2ed766553b6ebea54d899fc7e304cdacd2e55f0972a48d77fb8d1d47d13dde5bfa86b6c1b381b7ad9de41219bf3088cafba14a453e4ec45a9c07a939227a15d32939b9cd2dcee75b9552123d0b8081f3a9eb4e79cab1d2817b989ed6b43cedd8bb959ce951eec8c80d69ae024e0b88a773772d4777ce63e537c9635c7028fb2d9b80942012cd357a6aaaec87bc2f961a48ccf8273cab10bc5e276b08927fbb3b5130b74933a90d6f619b4b3487b01eacad2f118c5431fd4439de48090cdcb2a0bb9a72130dea7f3e73708c7aa92d6e76d994e820c39fe3dd736d87db7a746e52d85cc6c1556245d7cda4a11fad87a32a6b90d18c3aec289c27c156aa5d71bcaa5e0bb7828cae8408b4bfb66cbdbea920420a052ad53849accbe9be85daade041ea34f55a858fe4e9ea68071befd4d80657f227a8af0d7ca49ea46ecb849b4afa8e130acf026e7b7c8fa3fe47f764be7709c3bc55750cabfbb9742c2b551a069168566d8ace44371a885fdd54e4858d7958c045bc64c6889791b9e069dc1eede94dbd85d0565a04428de4f23538358c9a7602859930f68b9b4363cd7f8868bd5a916f1bf451bcba4c1d3786c876561af18621cd4dc053a3ce3d60e02ca6f45fde5951d51188fe8bec0e8003fcd506fc32e7853b2d1fb71e7070a3e3fa140e5844d9b3ad22a21ac2c547d358e7bb452d7c8e7555418ac0e3bdb9f3622bc63e57337a9e21af258420395202178703231593c1da7c8be49cb8e38a7ed459b94bb7a3d8f78308de22fd3394cd2862a277328888f932a4a725a95dcd6cb7ffa546dd4d548bd980bec97e9e934674971c0370534078d0b144194744aae16720e91a31324375385256801e6a48a0c9f59e5de52005185af83b25c5aa58f1d630175277fc5c41a1b294b3b972d701964fc66604d3437a5019183f0359b897ea459e72244ac705491a4d1ba114501e87af32ed2a3b8b3cb126de9df5d29358a437e5b4b0a85bdcc8b4734f5fc3126c87b2090a61de97dc148d40c0231998967730b42fe62f348e04a1d45ee1f1397e75a8a151d2331f61c204c6addbe0156a22858706b43c6c45cfc7716b46fae6759c4eeb14ddea99b629dcb26c04758bb57dc04da88d03d37b60e90fc5f3600b677a0bd41dba3514289015c1f12e3d02025a69edeb7790ea91323123ccf918ce0f908ada4aae631f7646bfd967ef4755a2d4195a1e55e5caa64a702dc97b991ebac2a32273215b368d109fe40cbc1b8dd7e5af8ede634a96dc7bfac22d6a6e92c971fd79819a74367c37259cdf607a78982edf1b4ce0f3b58b9b7e792c29fc6bf837e927a6432d75ba021b2248278cb774f663e2301b69318e6e05d043e023c4e0a1f5b1be0ccda622bdc531419ca48d76f0eda6f780e0c81894d21156e11ce19c4f36a42c5ad6581482458770a55fb2a1861380ae7db304a82ef53853edc284562a843b17d49da7eb48b3aa5b8e435a0b571d6b3ae6ec17a01a04945778bdc0be2f4a1345a5f89258f98ae21336a46034cf04dfbdea5aae17220d408a3a9319703827378830210a6bfe2f2b93ba3e0e1e6b5ed13a8559fd3696c7c5cdf02b2238975ceceb29c6b28233ce25d271198a4a70ee741da4b4630f24397c044a2e5f97a04c04df40a3c3847e8439ac1d2353b2c85abd3e7dc2d5090d58b2ddc5adfc0e481824f3a71db42c0d42ce597cf602478a59fd95c2200bc66507a092637f51cae5501d2b5f44d8b209881e74a3a69cdb4fac34e73ea22e788c8e54eaa90bb9646164d2721dbd315950aaac391cd383ea55714f64962a9d030cfba07641e72f6fe69d5d54ba59606e7a07f4623fb1ad0a95c3d25debc1cd2f41a82d85b1f9f98a66211a70d336ba9dc2340752e03e52be9515780bc8712e64f4fecf69b712869ce4468df67e01fb65937300f592a9bfeda4aaa208ed0141aeaedd072bf737c1a8f12396dc0cd040470f56e384c8262157f2811a68265881a916ee85a712f40b54864d54b4e055260a81b5bc4970078b26ee65603ce85492e70fa3e294cb1f0d6da95080922683689f2e84da028781f798fa1f5ec862a0097c27ef952c01f290ab21ebcb4b3a312ef967ee236cd20ec16dda767447ff7a94b7142f3261b78c0d84047092ae49bc1e95190fae8d519064ad987f621b8f3584531d4ad9727f275a255b597b8d1ff532121bdac9558468508386cd5200e89afb8140ed0cb65687f2e989a91451e37262d08337d2b2e39d37ba1c39a29d1665902d9407ad6132f9bdca2d5af6e81b4d95a47863e364f9127470bb2786b70d4b5f461510757371ef20d3b02baecd153421a86c66a359f0e72b76d74dc83c63e337f04708b44b4a733d575bfc41966af3406d71defe4a00907302f8280c9bd056105d346e16031f0c7cb0b443003eb015c469dcdb1d89cb4ee8d3279354b748754695986899e4fb45e587289f82bd956d63e5948692539e366c99544d13234dc32f26fdb475b5c595b14cc10d283ba694ba96a96b02c00b8445307267768d294f0f5a26dab364e0bc71d11a2c01e785029902b7aab47abbd5cd7dcd98d2155ecdbe063a762e2cb3a28c27b1503f47cc7ccf85e8ff0f695ebf68f8e0727350b24efc66975229d80cc59f0f69d173aa343d73942994afabd3433d77e05a8ccaee8e096ed5031ac3b1734279a0b6592859d41744bc6e21f9bcc0d39c267bd2e424d9cec1f03386ea38c499c5225c6289e5836085a2b7c6074373d5f35783fa8df9e7b0a5f4cf6059aac04d779193102f56c07a6a6eef15bef7b197ea7f6ddf3d6d2abdde15fc5ba12b443d1183b172bf01b8dafe3b8e6750fe66a145249f38459e01a790c784c3e5fd401fd08217450579ab1566615da05282824bb3c349d4f9c6d5697599366c5a9d1294d90bb541d5aa105b36cecb476f9528c9625e9ca402caada370f4ec1844ae59b0ae50db2e7ed3e376a10422e0dae185a23d53eab019dba9f5f02304b6c57809f2d0de56f18c05edd8d8b92bae628fff2f506afb29dded3b0a9bb74fb27ec30440fce7772ae0200a709850102087ac4d3461db2c4bcdc43a2cbee08306e8dfb82b54364de16da543a2df4129bd0b65dd31d4f0e620f4ad60f3433d1cfaf814a872f97ec941f569b911c9aa10f0f2c7b74b5e4dca2f87d2264055d34548f95a0d16e28e2c3a4693845f3e2f806940fb23c99a4d75c40f9641bb7f7df6b2c7690a71a8a1267d7202eb4b2245740dc0c79ddd7304df68c3d4149465e0436e3c8310e0cb09382a84aa46b0ff656a34038087224d31f37b661e1f68aaf0560d93740380ba871e2fc166320db3bb2e76150c487e0a923b722c13bda94a95dd0b3e682712feeab11f9162f2a612908c18ecd7d0117d4fcc567d3a2427767a61fe2d37ff123b789b8552ef850f8d0865ad02681613c20336b3e637f17a7e2dfe7aaae07bedce437fac3b86b89d9ecd21905fb691dd6d43574947fa7f4c3f1cb8d146805f55ed2dd651d478e748d2251548aac067b3d561a1ae6aa7168e50376cdadbc940905abc556c43566ad1cbcc12b88a3ef3740953c795ed283936e3374e9295bfcba37c56cd54c1b2f813af14cf5f359afb14b8a984fb5101b39111bbb362f2ad5e4f1f96a4ed03721b110903c8f101ea11705c526f07de0cf74a9b598021afe9f52809289243fd615c23a3899508558f838110a19f0a96699ba00df4929796ac7fd2b93e15296b0ce7198c7a4b2381fe88c9ce4c6420811905cbb7dfaa315604c7ba676394a32cf3f2016c696dc282cfa1899e6531c2ba657be04d6973f3289a9f1383223b993122e216a375f32a3e7d54c349819a506fc397f89e17e6c04d2f3b5ad6a0df09fdd78eae97d28b711e3836179212fedb36e8e07e513ac927c64a1bb95c0cbf2eb44e1f97f96a94232157efa31c5e39dccfb5c0b8e17ef121d31d5c0f68a14ee70a5054c28ca388068190bc1a5168a70b398263426c3b6119efdad032fe7b7e1f8cf16a39d177ffbafbd0584b956305655fa1c23fd6e6e539be0711c189a46c95cb95a4e84ffa8c25a94e4b254a297d686665662f0c76ab14a157dbe7cf99b7d54e106c67a6e4e9c7d7b126eda0b80a864ef01984fcd54c0c0278c421e5b12da00e6c5d8748a84d3e2a273c299836435123cbb21296015ff70ed3fba09561798dd1a9bbf3983d86ed9027f72bf698671395ab3b76275a4776a5956635d50b55241085c84e833b46dfe5237ef264dfd6b13363c64d1d712b32a14d6f024b24c666bcf12bd7ccf58398fc310da4a51ecb74e7af8524baa719f6c5aea1344617caa8da9614a0b2bc5990a108bb8d99884813c686bc40e40435fc3fcbe3bcbb1a4501e8ce3949c7bb35af658c6ba5342c88c6b85617abbc98c99a878b5503f8443b9fc035adde5ecf6e5d7e9954e41329aa840baa78cdde746447b2cbe3dcd029ae917874a792c836796f6bbbedc40196d7b0731e4fddb7cf3388c998391ed7c2e44192c3ca79b21aa47799cb4f7ca862d78af704a58eadf73bb757ddea7353d54dbf1b2a6ee3042f3a6469d4b31a2bc529559b70e75a09fe6f7c825d197d481258c3288757f32f590e5bf38de6540c1b37d750fb526f65956c4d4cc8c53aee76b7ee9e13bc803381a99633ba56d9f358befe913c341d9156292dcd25916dc02cfe301afc793a63b16a1fa39e4af620784657b2134bb7fdd2e6a0d963ef7af5ba986da1a1ce2219e9a7ba8d6050281aef47536d0fed725d6761b1d7fc92b1c051bc09226f2f2ad6a660e2bd5f280026199dae4e41212d53159441fa9ced434cf210743f49f79328753d639fc059aab807271910036b89153f3e3cac7fdb8c0eabe68ec7e54012e42e61a55b3b78b496684f6a32088fdbdc1319e1553580ad5816283114f13785ad73c5712547623540137b8cdbcc596071cea142aad8505c470f89e17c01e3117094f25d95c204348569d2a6f64edf76a0ecd8ffa75f7362f67cfd613847db4d254898f93a18f1aaaad00572dc7fe7ca9c8ab869c4de71e851a17daedeefcf9222522dfbf0174f5dba9173efe680b30cb197cb4ce16357ca76d72f51a4ca5727eea860ba3d3798719b34aa2a631e7d61560d098bc44d2280e8401ebb97d760cff970253ca954f8c373a04b991d4f3ab59b83731afea323e5242b912fe82051c2dbb669e84f6479555e29471f4c29c90d1284415f4fb7a0888133826d9c269c4134a1c41c5e04256c9e196d0bfb36403da7602e83639fc076de9246dfdb52c563a99cfd4f6f262aa524b7b589f9939a622bf94e36a12dba3179a09b2af8f35be3474fade0268204290cb37238218111149187a649d6354343016e036c60b176b018acfe3e916a6522f6f66440a00d4c581699a1097184a66b091dffef012b51d17989c9deb17ef854a35d4f6a10263c0699162a252a6ebe4fd1153ffd06020ddc17174cdc010f160af0050add8e06850d8290b7cb4f7397ae80ef13aaeac5c1b09f2c046985520d99566857e26a7878d2c0326aa50af36074cd6bae1b8c1d39fc4de89418c7150319c9053f7c80a09172d9716de30ba280a448784854cca01b863f11d5e616be4a9ca80972853f87cbf05ec841c1091f7dde0c2f68084b7557f2a2c67ba00b2e8047cc0e6358ee6c0d1912a1150e7d8f4f5b1c59d4acd28748988dca5ad40f67373322d1d597cbab4828e82ec4bd8ab6e9b408976f046f5ae0ea7fc270eb98352c77dd517cf4ad5d6c36a2a533b7d87cd0240dbc9c644f4d55357af072a8ec3b6baa1b526996eaa36b0c682159702395fef6f20d1e167cd282127c5cd6c1d038f078cca8304b651d1cbfd9b845c1a52f0dbf2ddc72340940e5d733f91a5db04d6919fbf30944707517d06585a8b6803d87ca4ff6f25021ef6ec40f18b5dd10b0261364e385a6c33533fd1d6498a7cdb2aab52946e97fb80f830a70fb38a715192bc748b3f7c6ecb450aac6b0bf3974b974a8ca15fa426a9c3891f667308dddfd6fe3b3cbd44eade08ec2fdab4b5cf6a4bcd317ed04520631c71a4f3426170efe77fa4207031d9378d87cb2e4fa1b73f8d3baab605ef704261070957c90d3727c748d1b8f483d6f7ea50eb69d11283b686a12dc45f151a6e6e84a9d36008528b6e97683a2536a1ec0a9ef58626216e08364553816f4f5f2bc12a1c1acefbf6c08407f3d977b54f6fa7a7bf023293ecf92822e539853b56da43718587d7b3d32f2dd62ddf4eaa53cd505fedd05251354106857361d00bec401bec401bec401bec4097c89e344af5e7100b4c6a3a5ea419482b42d25eb9672b32edd4892dd424817d609b9565c89ea245253976b18a61194c556b13794e4e42071e1350d2318d484ec9d02de150f12e811284520028617d4769a73c2ae4c6004406814303c111a8087638c4619638c31c618e30a9d9200027a8c402683e6dc03954e0004dd853f4620805b4ca724709a41ce0f3c3a4544153e5820f26e19141d08004248f7d20e72a0940526343783259c9440d5a4516e5861830d94c1a8512a3180c02b06b54679820b2749c63046ab84609141b818a31b4576590b24dd5921c83b12041fdd66a8a2c988215548b94e0f9c9082311ac5870dbe27405ad0a9297000c66d21d31c15313f6a5417f4892807001882498aee868418a8413846ab70026e30e466eb930f7cb6383521f5e9e8a8a643094c5a650108fc50822d0cd15d163841a832e8d028048880079a8632d0285a38e2022e6881750fa1036560800d0cb40a470e01cc7882054e9d51503e138af3686f722888150d3bdd6134c11a25446954a382708df2849b29170ea56970291bb8195c0a0eaa479f2080da01a54b4949a14e1cd737745e77cd09810a826b941fa9a6a1e29ae3b8546a47c7d235c771a72e88e350b88ee34e2a261dd771289d0d481ca7e250bae36478a74ea58a59710ed57528271c8ae3ba15ee0b1da7d2290ed59d9ee394741cd7a52875383aae53a13ace0a1dc7a93a4e08ee068e3b752933489d50667036701cc7753eba1a29270e035cc7a93a8eeb4e2fae43ada8ece85a3821295caa8753100ea5eb5037a795aee36468e8700340ddb0009d8eba4675d7010e758a41a53aeed4a908704ee0baebd56ad55c7328aee3b2c0a5743a38ae4b75dd89e372b81a2e856be9baae53f57039ba0ed57136278fe546ca0f9c0c1a70e826c0a5ba1b1c8a3b71dd1d75bec2a1baa3aa7618a78053bfcc80eb2136e84e9c8a43a17032b853145d97c23a713b27aeeb50deb5a8c470298e43b141ddf060c3752baa948ee3380e85e3585cd721e1a4e2543ad4a9c6c17423c79d683815968e4b41e1ba21dd0edd0e9d0ea73e35478353751d2703b53aa1ba1b5dd7712a0e25e3547ae058521d97e266f4e0388ee3707442282c2a1d174b6941e93821b8148e3b751c8a0be274e87c7439742c1d4a97e24e5cc7751c8bd3a163e95050dc2975e2b81edc898be154b8168ee37e703b742b27142e05c5751cc7e238950d5d0d1caae35228ce47c7c29dba1db8d3a9eb501d8af3d1751c0edd0aa7c2a5a03a8ee3589c0edd0aca8943a5a0388eebe19c0d1d29404e40a4b813a7c2a16c702a2a2c962270ecc00500c5759daa43796e55c3862588e33aaee3388ea6515a6c2296e0c218220bed436c008c2e867881c2158e48278840a9095fb4ebe5089db4811f7c92f441236d400b0c20bd58232136a0248c23b963c8d00676e84290ccc1c6c7066cd4f89033ace8d104193df47859e1749ac099410736460674fc0cedc1c8b0030d8c8a6ee60b0fd819b7d101c493192df000f3161efc061afa09008c6858aa01ed2827ba4fdddd37f5c197cd2f717cedc8b25277db7cb5451fda247c3d99e57ca99aacf8a0832614151415d48c141d1495930e2d2e268a605262542b293ba8161a1caa45f542d94e324e2e282f9ca840936a4687a2829a91a1c38e089a568cb44cd4cc0c26ba1d38524a284e0544064d41867c5c9ce8502ba82199303449a1091d5d30c1a5582e3c0c61a243e170a211b91721292086d0a452f170d4a4060d1e029c88305180a61b2a475a6a68a98109500d3105af80a1094856210273c00a45e52423b584324002984841cd50e9c0d1c861620a1c50d141842629624c6046c7921ae282e20355e48bc0a20900a4625680567e502541e940f1d1c40a3640a4892a1860c3caa6898c6fe8003468621965167042060e0dce480ea71f283774985841f1a15a499971ea2144e4a4c30a10189a5650846424a504e1f8015a51096a499a4056d074036a466745c502800cd50acb0fcc111e685a4909da218680a6d46995e25442a856523f543a84f0b08c2a395282542b283764f8a8f4802a52b9a1861c7ec0c1061d29401441fa818995140f2547464e0fa1239416140a0e29d64947a50595c387a0a8a0aca06a5245503b43b8148ed34bca061b9594efe4e3e7878d94151b547a30d153c4b2232506d503aa0755154d3a66a07c5240a47650e90195038d9b930e4d347935dc4976a2419d52038039e2012fb0750422e8620b2c4650c5140758220926bc24fb0f764412229018514a3a1a1240106b2727e6071f02e0281bd4600c2d5c610a4108f10106871b284f78b0830f7840889f20583ad4686151d1400b1684808a0f4c21c5069e60402926478d67810ab892c6288317624468210b30785917073080ca84fc5841a1a2014e7aa818c10b1050c1f2a173430d2c2b292839e050410a92fc342a128010d04f0616608002d0f0050f178c4004552c71c4480f1d1b35a07ed045178c0809a2a382a222c1132c28010724f000040c400319c800038c8a84fcc8d1c291e134864e0c54189e850e0cd414ba26a4bee08ed015a12382ca105a84d0fda0f341a7454782d308ba259412ae078e87141d5239c8b8d1ddd0d5e06a7001408a86ce855ba166742ca9954e2525a54341497528eec471aa9641e384e3f4822694029a50432a1dcea17c818995079a52a916941f8ec0046a0337a81b5aa6b042758026d4908a0d2b39d870a24965081411a71d58b2aa2505286547b572fa616325a583a6942c9a6a48c2844a8f1306b8d0c284a6d4184da9161c88d0d492615ed0a462634687f223559382001435586e4ca00954029a68bcd07839d1b8d4a4d87019a3891410293b28404e344e4052a6683a11ddd4a8565457349d585438a066586e4e1caa0535b3029402026508150eaa159592961a5a6a50b1a16203ca10273334a1c2e1844513292e9a7c50820afde5830e28560b0d950b8a3bd19c7a50472d37a83a94232838508a523566702a96530ad5723a9dba13ca29e5a4b29203ea84a28442038da3151714150a774241ed40d5a0b8941b271c4ca8f090b2a269c6154cb8a85038527c9a4031a1099897f71867988211bcf8411738e0629c2535c0c90f4f10417ad8aa852cd4e458d14841298208a3a2317a200420f0c0009b282630a4024c28820f6e0003158ce00335de0f12183303f0fdc216c248c210845003142ca1c4114988406254440488871d6eb0418b162c3102112891c44b871c6ce561061396b0246c1ae30c61004392226eb0c1a50837b0410c60a082149080010b30c0eb88218e181509f9a00736e0810ba20842c2117c70831ac0e0051e9802010470620b61146108307881162568d2f453e8c74546185180021370508316b0e004206880027ebe8e4852c411a19f1f2c1917193ee8010e3060810634f979840084807e7eb066c8407514a0e0831ee4c0062d60c109480002072ca0891102100af283d563c78d0c0d2ea81e230a5058420e7060831ab48005240081031ab000053471c2cb882441d4786520c350111a3394908393042000c9111b0e28000137a610a88c713a4367861419ba31a45881aaa20341f7010ea7bb39d9701e0bcd098893dbc043970387030587d30dce06ea06ce061500d040c36985a2d13263250387961b2c39acb8a8a0a4a8503a952a953a718d430e3ef4aa253f1893b9d22bd6fcb41fada30edd1c4a4b90aa572d38ac5a68e8ee1f7ac57205198f71ff4971a58ea967ea3f6e575e49fb5c526761014b0a562c5474c37c56e9d36c2ee34180784c10205ee9ec632c4c2b96b01be632eb987abec58cf03caf08a120150e36dda91f30a91cddcd43af56c0687cbd7a3f6729d6dcbc5ae9c08a934a33fee99e6d75fc76ba4ccc7f77b478b5725792f4ac9fa5e3d50a90591fa6572b2b2a6238e832eb7eadecca8cfd67555e9a0a17f87a97f6851fd6fc4741acd2c40edd2a03e87e0c4ad98f3777f74b4a4a8d0aac6b68b828f8b871217eeff8e9f0e163c7470f1f3a3e78f8d8e123c7078e8f1b1f363e7cecececf4d8d1d9e1b1b36327670767e766c766c7478f9d1e3d7ae8f4e0d163478f9c1e383d6e7ad8f4f0a1b3a3d34347478787ce0e9d1c1d1c9d1b1d1b1d1f3c7678f4e0a1c383078f1d3c7278e0f0b8e161c3c3c78e9d1d3d76e8ece0b163c78e9c1d383b6e76d8ecf091b393d32347278747ce8e9c9c1c9c9c9b1c9b1c1f383b383d70747078e0ecc0c9c1c1c1b9c1b1c1f171b373d3e346e786c7cd8e9b9c1b9c9b9b1b9b1b1f363b363d6c746c78d8ecb0c9b1c1b1b9b1b1b189d930d9fc2ac5077cbd70ac353994fdb59f11dd3d832a626526662526094fc207e03eb332b332007777ef6e20ba5b4777cb74372a074a17ceba02f6c40a85090a6d85620483396b6506067356963de8be0293c9b419bdee59f6600ccc59f3412a6558060912e4053fedcb328cc9b142b98162c36772e4f02c7dfed247ab14c3e866a978d0ddde2b5508da31cd63cc1dd3a7e53c12d9ecbd9667a582a2dbf36a77a3f44a35530169190702c46f62fcab2d8279b5348b4636ddedad5251a86aa850dd3231f7a98ce6fa53287faf2466f480ee2ea257a928babb73e8efcaefb66694c75ad7775b3b38378f254f77e3c0a11b9463fee4fcfcbdc8f493e98cfad0f2acfe10fe6e8b361b6dfdc9b6285b9f59a52095d735bb91d23d3fbc5606cad07d848c7ad4743790ee4ed22bd492eec6d7c3df95369e0fcf8666524b9371b5df2d8be14f35cad622e52792eb674c71b55f15ba3627cdcfe278afed999faf15c53129db22fcd316e1afc91f9a1494b52a742d90ccda7b549f4877dff0f3b3fb44b7bb8ff4ea64007cbd1805f3b531d9dd35ba01d0dd3d749fbe709a020d3f82b2e6b07b7f605ea557eb309918515e5b1d59ac0c8ef891603e1f04e5d7ddabeea6d1dd33baa5bb59b80b74f710bdeac455077638e86e67e159471b7399f53c5ab7f985af77e3e1783734f8f32d569383b3f3bd8fd8f4e10347e7fbfe8626b49f171b6999ce6e37633afb5b6367577e5e4da5a1043f94b806dfc74a351e048877f74aa7a4ecd4e855e79d292862876509a3a1579c17ba41d9811b7ac59da0bb6be815f7a483dcc79576b78cee14125cc6d79b36acf9beb6e290f074b70dbde266babb3ee840fc633ec1d1d2b0cb38a631cef4b352ff9a0dffbe4469c3ddadd2ddcdeeb6d12b0e85af974399aabbb9eeaeafbdf7bd4a9f5fef98ff7ab534cb5c3f7c500ca9672a6ff659a539cbf05a99cb4ed5dd39f4aa99badba5570d81eeb6595076bf66fd96e92745f9e1eb7d5f7bd9e4adf92eaef92c08ca9adb953746c1ee4e9d50dddd05d1640828400111951bb6b84246053840e248092f70c97cb0830a2de04fcc8b1476ba00802dc51b43145728020d3085ca0e8c8c066eba00c08d03782711fbf4108412280820454a106a5421012cbd455353ab4f35b0f0054b4a2fa51ce59d8c1f98254e5c11965e724a81294d9a60a243c12ca19ac5a1008542a152ce71dc12e72847f10e09259c0b600995a390a8759eca274fb9ca879c52a714120258a295e2a7160a0cea652905b30489960a4cca513027259d73282f4b2948a050a7d3097542a150a8d3c939194568b43aef1408585a49e7a7ee65c929d542a756ca6fae75aef214ea65898dd65207b302b3048920ae95e22a304a500eb30489160accd2527b2f91c2752e90f1d2390bc7f1c8484289ce53609a3ae75a525e9aa7a5c555505650be22e3a56b82f216e75e925071ae5391e14ba8bc3c1104cfc9575e9a40c1f19cfc892078502897e1ae93732c2fcdc3f2224386afb038141ccf4a931667e984681e95262d2ec3b99724569c5381492204ae15e73c0916ef56327000f516ad2514980fdc3a57c17ce076f2205aab149697262c0e85f3ac78ca4b13199c0c98a69373cec13449428993afc0349d9a40e13c32fc2483885553535313cfc965bc24a1c4c959609a4ede0971729d7ce5050a8e67c5555ea0e078549ce5a5c91341f0ac38141c0f8bb3742f324e327e70088172194ec4c95b3ce5a589ca91257864c024e149acbc24c1c2b2f2a2a2728e27e70cab253d464b05b3f4815be71fb8a11ce5271c429c8e381947286f1947273f75aa15f0742f4f704fa09a40c1f913a99494e78cb14279caa907124828d1f9c995e01ce5488400892650384fcaa5e2295722c557bc619078c27952304828a1f21518289ce7e42a304aa4c0a41c054609158ca7604edeae848aab2c3b98686287133cdc0b141d144da040c1846049104f84604910ada593776f71846547d3aa731627299dea9416e73f24805275fdc3c90f09a05234486dd19d38cf8962c53987059785173a5cfba975ea5e525ab4b3383971810a6500238c968a8a4ad7a756a9da533e12e063013e9ca850d1c57427142a8ba64961d1c59c3c8702abceb94e41d1c9b49f9c6c814ae9e1c5a907e7dd354c2a05812d68783144954249a5a454524ca9148d9d9c24ec00614a59a1b418aa16e3c90e5457a8b0c0828b194052aa14151629289e702a2c52b050350ae5291516adee8b275ea4742b3096b052e2e2c486289a75f25e69f1f622a80546494aca0a8c9215171c0f4ebc4819a033406743143b606a3940181df7040b139c5a291825b4d5a53ce5d483c553304ac456e74a68adce7150c2e48b5607a3e494938495ca555dd7a9542b2aaa2d9cc322c539e74cc0a1704f522a4820f1a28544b5054a094b172b5db4545e9474195870d062f9a2c571471c12293a46877bd2a5a068e1b26871aeea3a94379842a150a81e58b8e8a2eba18b61e9e224c3e2458b73244f3a1d161c342705cb0e5a9c732c60b4386e8b2c4e302c5c340dd7a5f4d0438bcb31c22a8ca6e13c87072b8e6b2e5a9c77ce12c64a14357c51e38baec74eef9c50507694b0e280a85a0581e6420581be424aca6a65c38692e66207c889f313f745eb8b568ba1d519610586c6174c58295971a18a828b56e7349ad0ea56b84889a2bb02185f80e10307630b1a5c8b9314951a3800b878e74734b892ee62b54a51b202400a0d356aa46aa46aa46abcb478b152b272b2c2e2a56b39e974ba56b760e66a8ad6898a16ad8b39ad9c3879b2c2826b29c2aaf3293c6151a1c8f8a901d3e2048b2e4583ea8a954b18a71e1c4f1952a91a30a9540d8ec50b5d0c8b1829ae4f3358c26871d2e99c7288b04275312e376cb0b070292f2bdc6a45038c8c1f4e49ca4a890d252931c2f8a9e12c327eba54aa4b75a90e66a5926184e24ac020a4767431279b2e26072b252c61b44e2c61743a9d9fbca589c50b2c62b4346981a2d371d2e9e0489d5c4584e24a3aaf01939272161b7ec306cec60db7e1ae1b6ec386dfb8e1376090b8b172d28aa259dda9c70d5792d2a2218386cbb071c36dd498a24614352e50e349a773839f541ba8618b6675ae1263e56405814ea7869f7c15c58a021b689d58c210a375ba61c36fb8cb86df804122042947e286db48c1b870701b6e0306091b8e030bca4b8dce95b050a0862d9ae6c4e24a58c25839a9f1b282c02a8a0b74315dcb0d270e47e7371c07b7f18243881b8ec30dc7c15d38dc86e3701b8e72e3c5c64b18505c5c6c784979cb70a951a34657e38506d512ad8e06242798245dcc292546d39cfcc68baaa9c35845b17262c54a4987a164e5e4a7731b4a56add5eab4721c2f38bcd87071711a6a2859a205004791f103006739c1409153c52ae52e28285ea3468d971a68f01a35d0e02800a0c1052645490a0a1a330cf0e4c5490d31689d5c25a54375d7a166a47c48a752d2d24ad2d5e87868c275ce104e0468711a4e00193ec3877429a71e498420c59368711aae92e1337008d1e234dcd5e23464f80cae85b9568aa3ba1a7284b04a5101a3049553c56ac59988a1f2a2846b192928577959a29582d2838b948c165417a830b0740f4a707ce14506bb18546ff3dfa133ba8cfa8faff67e95eed019699f15dfcb785432a5b7dc63cd2aad571e3931d910962d9804fbf998e4c1d7abd9a3a9b406949f0533f51a1d97bcd7d1679536012fd0dd4f91409b2209dd1deb95929fee796d9677fc5e75940550c2021bfdee86c11e8ff2fb58be52744cfd88666501e00c15650db802a2ba9de58f3fdbdaebf6d59fdd0f3fcce028653f5fbff4c99b5f194b19d3bf6cfe5a38cefaf7659fe5ecc19f75c4e2ebca07bff1b3ad7db6b5d77d5ab6195370e993600c94d88af68a768e18cbf9f9f15fda37da5a4825b6e077fbf9dfc764ec639286e6d0dd6eab13e0024e10f2a1ac3e02a189dd41badb252523c57120287b26b546ee83a0ecb1730c5f58da5e768ef893f8beb095557a69a3184efaa2f8b32f4cab48f30429ed132966b257acddaf06daef75cb9426734cda393ebdaefb335925d1fcfba228ef113b4799fca11b12dd64ff3ce187a44a0b4e9bbd3d18670b265d8964654a62e8731fcb2be59547b9fe7d5a15c223f855a12b6949585e7934cea8acda9e7ca5783fd7d1f6605a84691116a96b8294d6839fe63a5a9e9fc990fe3d9a517c8d3c9212bedd11cbbf2e91d2f0cfd187b687f6bd0becf1310a8588dc9008941fbd36631a84454ac3472e2c248632e398e4491ac76e2e777398bb4bba39d17673955b0abb39905beaa4b105fe5765cf7f55d6fb354be4be0c57795dd516dd6aebc59bebc664ef11eb938e847b8c90fc268ff0ed8bc8fe63748eb2ceb094578ad586f4633256e59dd1b082a5740f15e8ee7e81a1bbfb15062c033e94801c70848eeeeea8e000088e00d0022e7a74371784038a307262000c68d1dd1c02acc083cc4d01b1a2bb39199c9608820084c084d6dd5d01025083069ee0430e74d0dda72f60e188125c51030a60a1bb39243e000216369830840674378745cb015c38465005a1ee3e050985706002ddcc08babb1bfa09220a08c881803074f7a90603bac8c204a2d00208ddadaa4004c4e084c03ac390eee6a0f08506205186093ca14777a32c0043a1004d074a9860e3e1d468ec673f7b5b012f08f44b071d1e38414794a13dd0e484947e1d11c511517433d9349edd161179e5914c66546dd66756e9bcd2c6aad183dfed7b191d92571e197145b78d637acb62f84210f918d18411b3fd06d6d792707a10c7f34a5bb5d9f9ea6e1fbabb30ac8cb0d1f87a623826e92209029230f5fdd995a03bd3a49ec4c3cf34094a12547703f5aa8817c8b8106792a13f2d579bbd33311cfd69d948117b2d8bf57a11ad88a0404d4dcd77b1ccfab598d6e874797fbe187eceb2e7b7f26dcdcfb668ca0fb27d51d2941fa4f4d3f60c11ca2b4531bc34fce3924702bfbe6824863708c909ba3bc6677e8bf97df1da10c9ec6e5ac718c7488820e9a1bb85d030bd575b5dd6c78ea91fe9c1eac80962c231a44c32b4b3af476031ee7e44c8911f47568c80d1322ec463fc9bd9af367944841484513d281e1410d44ea36a502fdd2d805e1909d2f87af769cffcfb32d9c883ff6856298b3593ea0f12c6a3a431fdfc2801b922208623283f3b843f8f7895048455120fba1ba9574903e83622c94c11499e968d92682051010902445dac905ced3393c260fe604cc2eed7eceb3f5abb8f613710946395a1dfcf12f48f79959f7ba01c27add159a957f9317dfed91c6348334264a18d48e2cf84629ff11979a588f17ff68afeb159a3fffdfdd02675b70ebd1262052b2196f84bc7257f7d663e1e679534a7b98c843822448c11497ce643fbe5d11e51a15b66dd711da710d1910d564754741b91c427f5229278443d48dce79536518969d2d7acb4c85fcbf455881040be37921fcb647607d7c80346b1f63edb9acf2aa5f92bbecf772c6d463e1475019bf683b9f7d37e0e64e4c8658cde0fc746ecd7fafc4cfd3e2dd37779a5e85a1541d1b8bee89fc7ef99de6df6d6aae8c856db576fad8a56e0389ff6e1b1d545f7944f9b42f2e6f48ae800dd0d9b14e69ebcf2c8a59ce2382b2d52e9d24b5e297eaf1aa6f8ebcfe68f3f2e113285d0b00c9af269af6f49aea3fd5e331cbe9864f8fa99c4f8c317930c5f3f932fd0dad8fcf05259b59f2889feaf8b07df7e69ce4a8b18cd2aa5610926cd4a97f087341709558de252ba555d974aa15028d4e9743a9dba8e53a952aa148a2a854251a1a0a850249edf4f2b1cff3e2dff64994c42c2b3d2225782e3ecefad484796136b4d9d1f1f9aeb878878a4744489f65122ae12127d251cb1e8888f9c241dd7922190dc7c326098695e96495cb374ad2d7ff53c670d2129d5d1cafc637e93618c7b4c96be218a908828b13425adcc34be9127a2470f0a6484088a644909528e8bc991008268329a245afa41120ae198d20c8ea1ebf0c0a1690525f9634bb3390eefdbecff7726fd16fbfb34173282878e1136384490e8469a3febcf6dcabf60cb1665a62f9a5f6d18daef95afcc49478fe50f650b267d4c3feb88416b6359fcef931894f2357ffe579c2d885f364bc32f5b71c50f8aa1c42f0b8ed3862fd9ad5d5a9ed4f67ada7793e0cf172ddbfb4c7015e233e268efec25640a0999423eb7db2fbd6ef76bf6c3740a9942785a7a5f7c4d237072e63f7e8576567985fc4767a5afafd1fc492146807c6f44888ccfc400f9de08c64c3f69af8f8665d0cd7fbf29746d9620687ba690109b181e62b1eecf6b592c9fc994072767ec89c96a475666a4c8f746e68742f8736edd32fda4a7f58072feacf6fba459a54b9fe4c9f4a3a0c8f4332b2d924711539f7c6dac35e5d35a9648ae8fff1edd8c1fe9683e15c7ef33fa6b7b6e37d79f904ab067cabfb42caf3c12477b89fcb53d99f2c4244865ad855363b18c88a27ce5faa128cad7b559b2583835160bcf18e2857e2a1b6283212b1892c510127477b574f6d7338dd1b8f4d05e99ffb5194f69c1eeb60ae28a213bb85219daf93549737c9336503a08529be3299f368367f0fdfca1bc5204e5b8e4314da6b1d51095b37e5ada27ffd6d1e7dfcff59d05ca7a3f578aaff71f056f68beaf651acbf5a948bfbff7677d3c857072461a964141e83085c0af55d27ac4f0064d211a96413f6dcfa4a034c262552a699fbc529cf283843ce96efcfa6bbf57b6532e8156a4611944c33248488a03dd2deb551024ba67e7439055770311c30a8817dded4180b8b36030cf588afe5f95b559e5f7fdb43d0770e288159021d8de67e2b34a6f60b53ee5836eb3e34c634e65b211fbfc2ca334dcdddddc911f5be0ebe178393434b74caf14757af5638925fec326e7081caf92961de3076f553afef04a3c5a5afb7b2444c8ce08e47b23407072467c1f8ff7973e0b7e76886670249a7fbfdaec0ececd285931a80005a2e8c7d58af891c20f49a5337a8d2668346b0be79f5de9ba615bf43f9339c948f8315dfb3dd283313aab2350b6e123dd18b13132abddfbb364f4e3c2adf9e167a1f0b310cef448cfe72ab4c3845ba620cde3dd7182a5cd41507e3ebdda1942a4573dc2684973e995869fa93f38ab147b6bd5238beef6f0185bf550c2d6899333f6e059e960c103c1b761e933b34a33be54e632ebeedd407094f9a4d3f1bbcc3aedcb9207c748ae4fbfdaba3192eb873729be1ecb071f29fc4cbbbb014efa99503c64f3d89a5f6734297c3dbdf9f559e6510c6dcf8c12859f294ecef84c280f27d42a796695d2bed11a9934f648b3390a207fafe4913e9ac55f4abae5a79fc54c3fab100f9bd50e27b497f1cf6623f64c9bd1d05fbc65e9d59f96679e96c37176252dfbbbed8b9276c4da68c70f2fdeb2639c2d98342e91a2d1acb4c8ac7469951383554ece71cf8824d982786656ba5444120f3f0d4b10fb67f951501ce7fc9f8e29cde55eb620f60f6976998fcae8f722a699952ec5cc2a1df6aa9662fc18f6a228690e9b952ec1bc7e8dce64d6fffa7ff56532eb553aa6fef769aeee56400270c8e0acfb5926f1f56e18d2542a731d6d48f3e0d2fd90c5ba6178c3104700cefa6b651f7be125f9e24b14258bf59582d5bec23aa3492c968f1b1e3c702ebe71a2efe74c6dae9fc950e8feac52207176045219fe644b91627f0494b31fba4950c4d4c785671204ca9487c57ac92c7d7478e0fc5f9a6b497edf17d1e1812369493a3c70accdf54b12e4c1c9b149a49b1c9b44b2c9b149241f383689b4836393483d706c124907c7269178e0d824d20e1c9b44cac1b149241c1c9b44b2c1b149241f373689b4736393483d6e6c1249e7c6269178dcd824d28e1b9b44cab9b149249c1b9b44bab9b149241f3689b46393483d6c1249c7269178d824d20e9b44cab149241c9b44bab149241b9b44fa2a337b55e305be1e7ef19633adc935288f0add137c0a74cb1e8874849fdabe6845a30315159515ef1653515159999f330ddf656a300daec19f9d3495cab0c652cfc39f9d35352c2ce64c8b3122d7af7d11fe34978a8aca0a8b25c559e59de5fab59f154d537bf3c311ffa541f2e6e3518ab9febd634fc674a8951fbfba3b00bda251b5379f82a228bdfec71c4b9ae7c74ecba374db177d9693ce2a7b44a5fbb58e48f763e113d50f67f2d2c4177ef067957e75b4f5917072c6a48c2b95b3afd92b8aad5ba6d72a9144f7c53129bf3edbda042d0dffa5b93e5b23ac2c1d2767f4cf997478ecc8c161ba99bff4d9a1afb6e8a3b56a7b8040a23fdb1a8b75fbe4fd6cf8f3b3354273c3f07593fddf64ffb1950e0874f70bc67fe7941ee4fa719bfdf6453e0ac6c6231f02e8e787c7f3fd1a08b63e4c89fe8170ec25e26ab17ca40608e9950e1d3ae7a8f8edc494969df6519acd675cf3f108050a25d3019904b4dbec78264199cf9f5549fb44eb3f569aabfddc669f4f6ff6d10e8104ed75444c12ba1bc7b3f16e6a3f3c4648ae2418d71c151cbedec7eccdd8c6c3a1096dbc9b9a570ade27ea6ed84bb5d3dd467a15d3ddfd77ccf2650ec3757cd59660fe343cfa7c3026ebfbc73ce331f459a583f43acded97bac78db7c3b3a19959b0db881c5e14d194c2353531d1b4d2d4ddd4d45d539f9ada004d8d000474afb44a7743d17d80a656696a62a209014ddd4d4d07686ae207274470447437ac573eccd8e4cdf1706e3c1b9a6ab33746c392e6438a3b0dcba05ef53086ee0f6dd2575be4b2b22af453de99a894b11ca29956212614949502fddc40516c61493b7221bd44fca1acf99362687b58acefa7fd6a3839a390d77d9149864b9f05631794d9e617930c85006192e14771a53733fdebb18c09c1c91981dc3f6292a10d5d350034dc3fc22cd6d267411e21f34591de8c59219636205faf5ea0d0f9fb7bede7d956ec2ea3ee98fad35cfe03f6baf6059b4fc3b45299df9f201d79f0f570a62105c3cff8a6d4dd9c6b88c7a0bb8fba1b55d433999d2ae96e24bd7a89c1d7cb955a31c7b3a1b9f91e1b15e1eb81d271b4e77939f2833359fe9d79b645ee6107a504c70f949fd332b5f9acd25947ff2bfd8fb0c0af3df8aa96e64fe22a6f6635e70487c3dd7033b854772fe9150f3e2dff662c13531ff464e0630f02c4270df1f56858d26858d258ac1d90e8ced7d2b05b9b6958d29cf5f87eedafd7eee347fabf401fa6218b85eb2fd9cc62e131cb9cf45f95a0e43162c77fec8c45e09b3cfa97bdf04d8a184bf03b926933fa3617e88001908e311cefc6c3a1b1b24a691e941fae338a312dcba35677bf7053283f08caa36a29be6f24a9bb8986baf1f56a6a6ae4d7c3c6466653d3c3c687fc9c9bff707ce0ece0a113a3f92c6fc6b111d7e03cdaa5ef695f4da6b3f9342c697564b17e26afcd98c5fa90e63ade1c0890831339d86e98b3609ea57f9619bb9555a1dbb559ce2a8940795f340265786d11c612ecf1a17d598a984e160bbf3e9457866ff208ff10325cbdc29105bedeac9f99be8fe8158ea0fe8cbfbeee67fa0aed95bdbe1771cdf7b59ab7d189e1f0d0d9a123e361237dcc1c9b1e3c7676e4cc893363b11d3b623d7ae0f4903992878f9a2fe3f1d6e098e9e1e91e6a3f75774a77e3a0021c48c064133393aea2d6cf9091110fd20f911f579190100f912221245792bb7e5c3d4643434a45483f424042aea21f1f2177f5fc0880c768a8f583e4f3e36a21fd102915fdec00b9947e7a8a7e9484f84972fd247df47e38161df168097d485d3d2ea50fa96b3e130acafbf5893c18a3981a99557a73d21111cf8d247477115e6424e46af5080d1d1db56e60d15d84f7080109f5fc1c25d1b890fcb88a8c7a6e442001f3f337deafd14c437ac51be28d70756376b74c8c1b5184ffb85a4684908e3ea4aecfd207a83ef8aa0fbefef3836268bf2a04ca8f565be5576d11d1a446dd1d64523ba9d1acd2fbf31ae54f32ba5f33ba3fe523fdb44433e9fa583816cda4abbb817c77fff87c8b559bad4b5569265db34a2b95e1dfeee6317fdaefa7cc92b523cb4addbd6326f38fa034d2dd3eaaa599622b76f7ceac74e9062fba9b47b545ddbd23e7439bd4a7da037070218b1d8d328292012566141db207534e0401e240787df0f59aa03d5d2101949154b74a08194f0f12e4bb98c8c685a080e072eafe69abbb743be84640016e9c2688f7b3f94cbad5102ea19ed651abc78138d3a45d23082fba46105be81a43628608758d206c5d23880c748d20b2e8512387837104176ec7b475078e6743139b344f6feecfa569d03bbc1bef860694f6d25a7d97cea2db13eaee70987ee62b75603c618c2674e3b80e17e5f79aa0f520415c264694df8f4b7ebebeaf2d893461a591dd5a37078631c0187437dc17ba1b3a1c72747734705c681db40e9270927152e9d640136718cad7e29ace068cc93c86dd5d4d77cf978929402f519076d3ee2ed22b3314e1d46a706a2c162886f44545895363b1a8286958acdcab323cd15dffda4f1ced9d655b7bc8d0e4eda8d531890c4362f8d96766c890830c3990a1c56764f24167c5a68f410bddcec2e1836fa9876dc622a5320a8aa184c1c4708ce59fb94d720f26d27c9f3eed6d3018cc7fc800e13ffe815c8703e1ffb2578c077191e6577ef0878c4873cc07caef15c43e5853e37f6d9dd1998cc70b83c1dc931169765b639c09c53437f04a908614bbf43a5e9a5ced95c14019de6aa9d76a459a2f8e59b7d961ffb2170c1461b74c617e29b61646a4d94139e64b6b3030d85350cc141cc35600b80cdce8e6342004c7b43b93311913ad18d4dd4bbd02434d77df30e4e1d9d0d0c4963e9f2a3485c4f006e5d16885e5f346109dd7dda8ee869a8d499f8f6dd17c262afb7bf4c4b37906fb7c9abf47eef94c9674c9fd6363e8364b734cdd73e9e1688bb00c4a52caf60883f291a6b4e04d1e25297561a7bbbb7043176870218c196771d1dd5cc0820b176867599acd675e5cb8e19f9e47cb05212eece86e67cd7877bf2ce95e6a0dbca0041e9855797fdc380d96a0ffc0f16b7f36ff0546a07ba6bb0dd0ddb857614cd1f87ab34aa5f0d1b3551834d88ab5067734dddd0c103aba3b9998ee071f7ae8ee0200f3d2dd390f3b74773ae4d0e1e8ee70e8ee6e747736ba1bba7b080f961fbf5e3010941fed931f48657e1fa1ff9a05418b94eb1d796695626102dd2de4c9a83ff5a7652a6d9e8f90cf28769c29bd3f67eec873c798ccad4a97d198bf52c43399eb7ff78f3c3cbf468f64e8d7caaae5f1963e19f3c74fcbb5e55e2cc7058262debfcdafd97bfb6c76efa70cef4f5be437113bbe5616d2c79e73541aefc178b45fedbd3fa310363bf459fa4c6b89549bad451e8cc949e5d13f90126e314922cc2489aaa5d9caaa90908c02129ae08329fc1474da48a5441e0c2601cfc38c3f4bd0f6457ee5ec6fb645984912e596cd0ee1505e791405252888a1fbf1485de893600ffe7d9b63aa43873f2d531fa1d05beeb9cc3a4c7e0c23839f525ced47435bedf7e0ac3616e31804afccfb59b579327326c738cb733cda246b5daf198d618aafd7842e40109678821760784c8801139e74d778965e29912076d8c0071763b304a376852c16ae966216eb7a1e3042174a30c14a09573493dfaa742524e0092580345f6dd183efa3841f25ec284187125eda6db6fa8c4b9f558aafb7a3c662dd247c1272e8de51c78bb19cf5672d71acf2c19e249923ccb428a77cb158f75fe1c71444af9080a46fe06749e7872175d88f37c3609556f9c1ba9ba95747f002ff8831ada17d9fb374d17fccbff98e5fa3581e8106ddddceca95862f495363842a686ac28fc9083bfa06ded47a0143e84277e3904af0934580e95ba6a0ccd7127901e3450d2fbafdf64bee8eade8acfcd863d365323b842138a0918410c6cffae2ac5291084a1a7fedbe0cd770c6df1b11c22a085404610141103932dca7f7c7256310c397b10d5f59beba3931ae95f4a3b2af1f0365aed2f6353a0b03fe9775735ce45ffa68c6607831c9b09bfbc2a4afdbfd714937e7852e70e171a56196f7b36137b7850f65ede662c085a1852c841f533787856eee0af7f3fd6ab3b79bb342777355b0bd3255d2cd51018c29747352e0a2c0414126065faf26a7f63131bd7c108692a460eba3a2fda8685df9937e5a22fc0f943f497eb64560555afaec50be16944af58e3c5529490ca9047b98c456fea4a04f4a42ba8d3c414c3fef73e5833d3df54523db1789e10dca9f9c0fbecb07293fc62d9bbc9396e911a19c5af821e1c1aadb592eab893bd841bf644c87ea0dfbd35c3b80a2bb7730d4983e48693671f4d50e7ae8b6f799e0697b7430867679e5b5f48a3ab041fbb5321d24e9ceb6ced05ba64a1d0d0f5604ac089ff9697b28ced4abf4f36ed226bd26b1907b3847a6573aa659c9bd6a69967ea9143d7cf9e35e683f71b4d476b17ffe369789f1cf954aec6ff34a1f8f0e4a9aeb672b7a6db9f7978a4c3f416bbf4ca54ddeeb92d61cdb3c8329ce51adc58e5beed55146fb32b561fcd7caee8b7e7d3a8e49c7f48e53d2d8994baf63287358962f980711e23e428ea9bc52143ff04a7a41d1bdf949c7f745bf34d7f7a7cd464bcba0f419dafde9e315e97d507aa6f9431a4a7ce9d3b28bff4b6ffb6bc35b951f3b722f94dfc73c53c7d227fd666858d240391a01a3611974e3f9697b6045d4eeb53deec90bfa7c99e5a499f2693e422eaf3c024109ba6e323a6de8326b04ec699fecc1b022aeedf16013e6b7d8e71e4c9444b2dad19514a44c63cb3d893f5acb8ff318f38c29882993d338ab0ab98741b0956dd13f2873d2088465467934cad648928fede949d5c075f1846e14aa050c6841d6a20cdd58095a6021c4b5408016ae6e07e2312fceca5882550b67e1bff6f3cf082d502dc0420baee0415edc594614d102167437ce34f60af2e2b1d7fc3cb28828f1d0b4004877db2b2e7d16a4c134f31fd39c84b0000656d683ef2ff559faecd0b5f41e650a8a49f3ca59654e9a31b0c21578084aa07705479eb3fce5e9bd926705439cb5821b56d0e2ac1967cd74e0004b9c208c0a3cc0094cc470c2c62b59233e5568d25855b2796cf1a8a0460a22d029f8d142ae2599ab109324f2c4b7f578581279481ef61a3ceb8b499e485dd7c7bdfa5fa5f897e8cd494c92c8bb3d2dcbccc86b635c7ab5d4e7274df26ed2e6b36aafed43fbd9d6b0cbf9d371fed95fef633436a9e7c04fb925d2f3a6ccc76e9228c685d0f8fd6c8db8101a0ffdc1d8687dbe59a57656ed687d5229fac7246de647a57226637efd0662f7268df9cf193c696ce696b10d6570cca431c739661dedbda36db987fd43fb7decca3969cc7f6097ddc058953dee39a60fb6dc731d4dc9936dd1912d9ad91ecd2a9d9427db2226497481b22db2459d22626373e3423c865537a04cdfaa1bfcac3e084adaa7ca117ea6b28cafb5f98f20411c94f5c67b7b5fad9242ab663849240d418e10f5cca020c9c8b1d3c15c01a45f5e5eac08831560b022095608a15ff75f33352efb5b834750bc237ecdd097155878902041ba3925ac586245927696bdf77fbab9bab24255c518aaf88226fc986ac28fc9bec28f29d3f9f77b55fa0a3fa6d7b358e1c754050caab8a28a0d5481848cb34019e3ceca4c3fe3acfba0a5e5c758caebea40f043f7b45fae7fdff6f5f5d9d6d7ebbf6b6537bfe694f3f158c7d72f59f1f592d5c4d7cf23221f098ad6c8df2359ed48f6ea03998ad7a4b149637594fd14ebf89a3feb8b78c4af9fcd51c92b3fc661da10457777cd186770b252820b4c06a00520babb6d4c118612910b6c58823066a0bb4f39d050400e950c1820aea0b8820d3f5001880b60101101ad1fd0c56aa70931967a50c10204a0e8eebe81ba424c375703952c65fed5a67678c0d5588880a341b6168948c4f9933a008637ebe32bdfad75bda00353747bee79961d6862d501a65b77dbe8550790d0bcce28eec04ef7273bb0ea6eda975f360515ba3be9fbda6b3e8b25e2ef8d4c11d41951dd48b183951455482105adbb3116edd73f800107baf8bee6e200adc6c318638cc181220ed874b70b71677d8d26d318376e00068daf5723cab0e6ffe6580dae76033bdddc0cb818c880360577c3132dbadb1af9c7a3ecc9f5c3472a7a222c8fe495473fafb4b5e6cfd9f2329324f2e4c78896f05ee6feb570fc6e4efb24bd1fee71cf669759bf799e6dd12df6fd8b331a734cdd65d6ff99d02c3f96affc20fc77ce56a6211d9a553aed577fa6d0fd3f2a9a3f3f5b234a60b645f3319647f399249137df27a4394bc7de7f1406f37fecac198d55f9cd68cc6fe0fdda8cc560cbab4c66416b7b3c9aa54f5e57c612c80b479a8ca5ccfbfece2aad5539ab3453f71930d7af32bc2f4a9b7bf545b17eadcaa7d9b274222f1cb134e28154e6fa8ee992c777948d38fb8ccc7ef58fcd2a95d94a430fdbbe0e79538252066799fd64fdf1a4056ffff2c35f031f874fcb9e691dad5779bde679c4f5dde62599717d30670aba046742f207a08312c9bd4c65328d715c9359c7a2bd4730a7f16bfd070cf683e51157c67208e634ceca1fdab2cbecac12cfff8a337d9ac4a00472ef06fa8c8d78fe785d3e6770b5f4beed5e098e1f9520d8720fb41753a0c909f7973e99b3f42afd07a8158eb72afdbf6a3faf965621e9394785b9cd3feecd5f92b13a7acdf86d16947249fa8cff5fd9cb24befd92bf4c26499f966673b94795dc9332b7d87fcad06562aacd0ecd2ac59812cde7b145342c834079648be6dbfc48b34a339547bedaa2fbd91ac9b68886f78f6c119e7504f2c9b62863caf4833f5b23b9ca8cab50b545f745516956ed3d3291b024ba554964adcb66876695666b64d6fc928c390bc90809e9c77b8488180d4d06f860400f1e96b6623a9190e6630bf60821cd9e0598c0731d71cf75b8cb817059fea45b0ccaff2428bacd8fada57d3e65cce5fdfcf306d22b437a45cfbb49db0d1cedcdab74e998ce580c4acf238f7b485a442c96cecd28717dfc37539d9bd1f1e3310ce59dd92bba3fcde5b26bf32781bc59a5347fc54a61b3fe7df1b18fe730199f899159201ce7995050ce29c1a7c9af5d7bfbb08c0dc1cbd42dcd264a22f7b0cbaccd7e1f8f33f3636e337520f7b07b7e29be8f5bd916d9fb44e07c6d52b6450fc6e4d30b946dd14d82ef33bf058234274dc95329289359164d4899245118b81f14c0893b878302249147dc140ad043b74765f47ecd93ac9e00c39b34d611b17a820a7b3da9733d41f319228017ba46802cbabd99f1cfe82ceae205448040169d051a20618455d261048105b815229c388313656898b39cc0818be392b54342b74fce7e08cf9f75b43c471c1030fc93e602678026c4e89e3337f87a356238ded458ac2660ed53c5d5e820703a5ee0a0a9c0e5681a704b36f87a4d4a68124253164d53c88032db18f767c1381dbe5a1fdcb2734c9ab72f32e91c939a524b20a1bb1bcb979de3e3d7fc3ada39e29a77fb25b773c4b029d482d93926fda5e39247eaeeb0574a9c414545650517e1a1cd78ec515151597955098aaf57be5614ea9512b3bb3dd17395f4ca5a8f0b04650f7eca2489e6db2c084ac74f65964912f987d4e5c97c4cbaccfa2d8b7f1df6398ddfc0621cf6c11cd76c41ebf3b18cd9de6d7650d21abdf9a319c7ec151d53ec1ffbe169f1cce4fd9a741f6f2e7df4c62c763bddb6b0a4f9f459c556bc81194b90f6c99ff990fad35ca227f3587ef233aed46130b7311094b2d1de62e8ccc792dc9be0d35b66fa5ced376795deee8f42b857ad8ba3cfaff2c149e5ede65a3fd32ba9db6c907b581cfd2b053ddb8a679670a5b29fff559ae49e0cbe31eb36bb63e9bd47637c3e1395dd447b7305ad95d9d6ea95fa1f710f5604f31b9a2298df4011fff599f9b34aec8f25f8b44c6760ffaa16269347318fd681908cc89ca3da1953a90445bf5d394e7014ade81ff36b65d2b1a4dd175d461df6a14d8239a632b2db95d78ae1bbdcbbc925eb78f6b9525961493067fdb88c8a6890181d71c9accf2aad301b10949e1ffffd6a3d337df5b7f90ca6d2ffab46eec1825c448a7e865eaea21f22223f49af222321578f12922ba9c8a8e785f4e353a4248e2eb3e1ecb157ea341953d027c65eff6df9632e93599a9ff26697fe4b32f43fe25eb5d4918adc9bef9832b9876576361fb4d9ba4453a9fd68a4d3be113b7e6cc53b8a33b72bf1fdda945eeb634bfb3095b619a6f76b81dc93a1a9d61f83b47cbb5f7bff250ac638a67ffdab752c7d562de816fbccfddadb2ccd6730683f9bed15fda33451de99cde2ed7e7eab32f44a8768117916722fbc9ffda3a00c5d7ef547505669a68ea5cfcc2a0563a19cf9b5b28fb9cba8c85d494a44b74ceff87d9207c03d1d9f0e8cbf8234d7d16d1cd3f937f0b3f46c410f3f657af7602fb039a5b4e12a3fc4e34ba56e8baacde8f645907c6e31ff3ef5485a475a963f7d87ce11380e824b40cf67955e5b67425d06ba2c32751808d225985febb05f9219e6f76b5ffd6dfec32bf549fbacf8d379c0bbe597494cc3f27e01d92bf59f14c31c3f96c9ec4f793fe471186c8824dc85080122b3f4f19979c4f2192140582c19f84940424a4b1225511077f701388be5fe201543fbd90a83c17e3c00eed93c1d675a477ccb74d27109fd1a055be27f9159a5f27d3007866d971dd8b4f73289c7d8b5d5f3df7ce6c33157aa030c743796b4967b173458420d51e87ebd3c3c1f033236622e05394881c00d1c3837838b2bba3bf9e0cc20859c01a880064e7470f0f55c6cc083074a5c1f7603abf42c6795aaa8a8acc80f566d52c42a2a2a2bd8f6f5fe4d820e4ad7cb8c0186649b8c2d18862a103d132c16b8a8c00c2f350c20720412028098c10f96ae0c6d5f943403d80c80341395fd3ddae19194e4d54c471b93eedd87c932bc16688707c630bec32329c9e77b39f21389f978bf646b1f96594e9bf1a5e34fd0c6781ece3464e11fdc061e4df46a290df6d8ca6a96898179961306fb8c2de81fc3232dbbcda1c43098cc0c8be58a818d19ff95d910d32a69dfe3fc20053f9a4c9b51d0f147c51610191a96412c96cb6fb118ffa868b34b228709710181854fcb324b33b399c9f2b84753a9117b84a92d0bddf1dfbd19f782dc83c1fc16f3fc492e9329ce21ca3006bb8767f2288252a65277cf4708044799289fc6fa50167d2f0a59179effdf8b494c3fd615da9e6a8b4050f6a49a7407fda06149bbe38ccaa62d5a814a165d900214b2f8411634c8c2052e599c200b0d6481812c2ed0a275191f629ce5352ee383fb8c0fce12adcff8e031ee2c37a2889ff6cb629605518c64e1eb3df14cfeafac8e312878820e5460d3bd45770a8e6884b8cd82cefadaebc562dda41e2858e1eb85d7ca681d6b30a6738c29be2002170ef4d039e1095500030c2948e10953a842159ef0042a744d80c2143a29747750784214ba3b2874774d7842d784f996c59a55ba24337e893883a3024c90e4da24cd357fc458e8fa4cca33ff68529e1284a00436cf84de64f47bd9242de7f99a75944d1a9b34f62241029026e5f17c846c92e6f2f2e3bff36db149c1196871b59f77dff6b697b5dc1b3f4ae46511a43c951279544673ad2f8552c4331a13479f349645fa34c6e3552b8e1e1b99607b3fe95f6d185a1905f260305b8d8084805c62af3fc424893c7b9f09917b5efe1c1c984c8fb32833f860cd3d9918211bd83fb6b4b7d86fb1190c8379a518cbafc924f7503388ba2fba3ba563c2fc25eefd27456cb1156d93f26471521e7b5495c09ceda5b9321e7df02f8d6168b5e044b084664271feff29f280041a7f8d82f225fe2f81a07cd5919bb97460a9c79d299274cf0f65ad79610982f285e58bf66519a3656aa3758a1a7a0c2980a400428a1e383005070ad01ce861e9ca99145fa27cdab4388f9696a94d5cba32fccbad34c59cac80c10c5ea49081014d2e369e78d2dd42b87895611563851a366ccc20b7c0a10762f802474c0a826e20ae7a704318dddd583447842acca05d9e0ce95b95b76bc30f2de8c99857f975772ce8ee5620c5119d13bd347f89ffc879d2f0c862fd945fa7824e8a211a6829409155e97e70d6ea5f29586904589081a31474772890428af99af3e7881bc200783a0306562e10740131fa0244b8800d2e70006739aed6412a632e43141304731af7e657ca03739aea32ead73a8d058339cd0c4c46862826c867787ca6f6578c81396ba952b047082277ec3a5ea537105b8731fd0ce27930ff19b5d959a90db437c93d2b131f86619e63a39d5ea9d77f9ae3aba5b9c56864329ba3da2b66fa59d6e8153a6a39a63e846e214c200334271c24408109184d60c70452ed8923cd7de91fb38f5b3435d6357fce960d9f687ea6f32783946782606bfe0d0425cd571ed97efeed8b7c0d04e5f722befd12911379b007a9ccf73f504a19985947d957731361623a623e49afd882c14c70fd521abb56d2fc6b9206829702f16079548566fda942570259eb9af50704659864ad6b0a4951f6dcaf195da349793210b6453ed6759bd2864f548564d788951dddaf7dd1d0b47d91d12de6367bf86bd671cbcb9882209537cf1e04a9042bad4f536db575562bd264d983feb18a29d591ffa6c3e5fc7aff9332c7d265e6dfaf54e696c5981c1b6d16042d907b5e6bb72a0325ed63d58ed3656e3178566991bcf248c64419ce77518002bc249704f8a0bb9d4553930056b52e795e224662faa220a12348f7319548b6db9561382665f93e4f7b982491d2102dd323980ee54f9ad4e75aa0fb59d69aff5d4bc3f2e72fcd8f645d784866547f0883600be3fbd9debec8bc7d118c6d1e5b4938394aa212ce4c5f548526e539aa230dcb20a1bf3328337d517d26f60265a62f220247243c85f2ffb53d7866b3ff5539622c04ca6c5df367f3bf48f6480f8af4baac6bfe6c5917965d23980ee1c716c4b88ef728d7affde0db1749caf82978e50f9ef2832a95b49e6a84ffa3d9824918cf3a5a24fc34337dd1cb24ae4af8f645a88f05938ef087f41e61fcf5b31c0a3f242f9349b21b084a9791ac0af9241999429986a1fdfe1e1505ddf23d32f2479c6164628be62fd9da23c5c6249016e9698202dded554bb3c44c92c8c33eab74c69b79ef334c219324728f36a334bfe5fc571c63f88d6a848adcf311a2984912794fef8b34b1117bf466797d843cfcfc4919a6b1117b1fc592e763fa892948bf3ade40505e1a96365b59ed4ca6add8881de7c84c33385398d8886140e995e6be3846a0c9095ec488f631b799e6fb622b3626c9a26c8bfe816cd16de9a339a97e8d12a992283626559b51b6453ed702f500f188c10b54501179a5f33ddb3a290fe549edd0ddb25d982ce9f6686e37bb7726e8ee94ae04dd1d09ba3b2c9ededcdd8da0bb1341771782eeee8aeece8a76b93d71b941a0aba2bb03414a4745ee9800f48b0bd316ddbff402e567db0a0f2c80c91d6054830d2c80e5621b22045656696bfe9cadf9773caa8523164607ece8c060309fa9d293c137e22dc7f87c98cb4af321cd474c9248662913e3bd78cb2f201c270706bb367f12a8fe4873390ce6323b82a2e3db7dd1c3b16e4fe6f64b317e63b27766b3cf54a559958a5eafd7eb2682d3865a844f6a0fba7f96a89893c5c274663adf861f2e591104e5ebf318a33757cb83452a52577dd1e80582d2be5c429fce584af0af4f9750c625fc0114a31d535005a0140dcac4fcecca216b5d3f6d8fed8bbabb0fe0a3eece035d078e745348d1dd4b50f4bf5e1d521d5d81ee9f5d49ebc9a3a591dd5aa534b25b03423242c3320808c98851517631a25d9438e96e5a6933f0886ea08eaf9176eb39656c7c197de5c74a5eb111bfe694b11a1bf12bd371c9cca7bbbdf0b3d06be6d2cebacd296ff82993bde2df517c81205daa1f4ef9ba31b5ac74af04e576096a6a97200ab44b9014ed12448276096ac118633c135a6fb3de6677b784ea7a9ba8ee89166da659d77721875c42dd2d8a3094235ca616f87af8755ffc68fe10009496afe8f67e32f41f302619f6e0405c8649863dd42c8901e97f5ee34b605d91cbf7452f79ccc3dbf16c686695d7e56bd24d9a24718945015f4f0c3f2619869d11182ed20b4dcbf4ca1a2cda1c24cdd1271c2832b8481b3950318051009600180bba5b0c2f0d26448e178b9563fe772dd07c303cbf9f47ebdefdeacaf525ed88b3aaa5fe365ca5744c25114d7516a6710f9c5539eb8fcf1cfd783099239f118a8161f74a1d2604831dd1380bbb4c2cc63d5ca9cbc818f7de1372efc53babcd82e0d754a12a45fad17c1483298b856598668931ec08e634eec997f4b3184b5fba32bc9fa50d5b105325f75a79bc19069341e233af18180c090c26f3f2192431b050c230ec56e567ead7ca68fde4d717ad0cfc24ebeab1f78978263409ffdca48d09ad4ab9be68e4f2427b204833b6472eae2c3afff5199c1f7b917671cdbeefe2f2e15a75fbbb247dd13e36d525c902dd4dfbe4df204930492b242ff48cb3821871bf56fa2a422663787e0db4f8ef274579bf24f7eeac8f858e5a39689982d6c6602e6532213231406c18cf1e7c8df01117474e9cf5afd7112c63f7fecaa3212e4739b8c5e3354a02ebf64b2fa31678ac97d14cb4f9356334a4bd7729dac2c5075a77dfbe48c672c8ba8e96b0740115d9dcaf55c885e80ced2cb0fed0ed8b30492221359f786924add1d0d0cc2a0dede75126f4c664ae3649c39ecd66b3b26b81747cecd071568eb38c80d1380be78687632afdf1486b533aa621cdf869eed76c06657dd141f9d7415086d8ad95c1e6675006c1322869427076e8dcdcd4007116f5db2f55aba3e708490756f21b4865fd2c274d661abbd2ab742360a2242a62b1604578cbbd9f493cded1def2dfef87a88504e45e951f2843eacdd8fa78746cabc51fcd32b47994560ce9ed5a99cf2a6de836d7db2f591a1665c5ee984912cdaa1db2d675fb2278d6117fcdf4c8943cd6224dc9735f7ed20bdfa7f829aeb6073fc55509734124a9f114ba3fe507e1913300c70497808e07abb30142d23d7da8f0b0ccd29aa47dcc3fdb29824f7b4f2686ad0c7fb6466ee0953fd6baf091d0e62a69472f22219b44ea39824bcf153d14f064625c26c66d5fe4c16cb6c260370e8463180d287fbe6de99309c8b6fbb48cfd9368331a64adebc1af2a4dd068bef451748bf1bd2fa3234093a6656a7b5bced11c085c8640610817435c30240443ae689f116d769f2f81293410861b51c411e0d111035021063c20020c98a24b61cfbb8fdd4e8b6dae740a8139a6327bb3a0949f7f3e94f9fb1af525c7f3da0fb4b4a5cf0ec92c7db89b91309c2149118d178b3bf9d06628420d2a4076f804ad8d161e0e07252e3eccd0a5e82008dc177cba2e573174572b7b9f1b93adad6aab0b0b49b7b3be71da2bda3bafe02306977669dc0ababbb6cbce10ddb4d217ed630bd2e806dba5470e9ae6b3cca70b90c00727f4cbe651be5eb4f97b3dc6f8bb5ba65d74b2f4db2fb9e85cd1dd3233b75f8a41892e3a9e8b8e4bbbcf0f814b8c518e4b8e1bdade27a2da22515e9b0b8f17e5b5b9cd12537984ff81aa12d24d082a81f02f49d7e339edf74f6f53e6fa492d979cd105e70baff9e3ed157e4c38cffaf80608ddb7291f69019566e9d5beed6739329d7f1f869333c2dcb3d9e6e39ecc7af8d4dfe65866fd8e36db8a41b0e51e1eadcdd6a5214cd483c4c73d191094379ef1a824c6671e6560309f3fa3c303c7717e4982312cca9b1dd3948066fd2490023d189355e9c11815cab6e85ada57e523e1fc184b9e29796cd17c8c6d76082f7d762829dba2fc440f8495aa50f831bd667dec0284145c80f8a2bb6bb8c8b4b3ae9539a6443d48685ff831d5dcc4fcffd9d640fbc2f48b69c9e1856e677996b75f3a6dc125c7cde5872f0ee084065c7a68f2e0575d7c6872e9a105dddd2e3e04c0a5871f3de8e01280240460083098d71c06739a6ae49e8c0e1df84af0fbe9ce802cb4f0a402dd7d4a7da1095d82043ce9e67e000201785711824642143d43bae50a0cd880711854bf80d1ddf3f52f1342b795552dbafbbf6aebebc94b5377e3db2fb9bc80fd8284e9eb90ee7ee9a15f2f2dddede260d8d7ed975c1c8beef628ba277de5c7afec48b48b27e9c6f8c19707dd6cba6536bb8d6e997cf075c3d053b2b5f775c390873078f882071ad0b0a4f1304577ff155f5856135d7868eae681d65d2d0f417d8bbd78f06e1e5a70aeaf25e174d9410c2bdbe10b9cebd7de65872cba5faf1d9ef44ffb35f5eb5ad98be9e70e30ecb2c3102c5d76c8a1bb6596f3bee8b2437783815d74104237be568bbebf74adede5a2c393d743d15807b0f18c76d1c1e5a2039076d16146663965fed045871a5c72284377ab7eb8e47002971ca668971c98da6dcea3c883aff7611ad67c98862e38a60b8ea3ee6e677577479d5111b8181475441c18432e3850e1e1eb81348f348f2e38342dd3256b5d2e37b0e8ce588aa2286f24e9ee59a5f3ffb3f7c83dd0d65fb237e698dabebadcb0e1ac710669171b4ebafbc5796cf0e1edbb5ff36399907bb00963611ccfd8869ee537e3985239236bb62ff26618c6decbf76b31500b5450c210495c0ebafba75d66848148055654fbb766c5299ff655d9eb35657ebc642df89a556ab16592e12b632be6d1be6eb197fd5ef9f12b3f7ee5c74c327c89e1f87a31c9f0beea8bb6d2d733a118835fed4b7c8563bd34311c5ff9f10bccf9f592d5c4577e7cfb5e184bf1167be5c736f9f1a49e1fe7c736da85c602ba97d070a101a4bb8e373b7e8aaf0726cd17a94ba42edb17b9cc507291310417194980a0ec11a9cbcbd78a0f8445eaf2449aefbf9dd5ff44eaf2f07d51a499f649a72f5ac79f6f3cf78f64963ede2d5b91e6cfb76a1fa4323bf3d3f1d29521edabcf03c62e3862ec9e0374774ffee72aaf1c6732f071a64fcbe158dfbf52984cb558fe8d81ddbe887ba224c22275f98cf258eb12a9ebfeac1428dba2faa251f8f7a87b19800b8a4ddbe0e0e4b46c124988e9679518bf28845205171429b048337e9b7c8934bff2276ffe6bfbfa126916697e752b432a5b6739a335c9c5526c5f534a49d42433334282b80cd3a43159f6432ca46b94653fe4ee5e930cc099267d756106324899a049102101aadda874d02926c29e251d43684660041000002311003048281a8ec6c311c980526eb70d14000275ba78985099a94912c514428610620000000000000000236a04a00f4da19e635e841852b470772df4109218926ed8ea927039c168548507066047b82d7a747a600295edd01c7b55a7a53e0c735fe06c51c39ce7017fab1565ad040c8387d59dca5dd4a58a1ba8a6d800a6e911e1ef1149000978ae7775381016ab541ae667749d2b1bff14afb07f0aaadc8aa2ebf016c9917093b777d3aa99e69b9ac5279c43c7e37c1d6b50f281085716582abe678f68a408565fa2ffeb806d02fcff7a4deda7da15817c9d26e78f23a5c682565efa6b4556d923489c7133033eb7444b9b198f3b25c93d3edf1e2f415ac5903c7045a29a2e82a843f9bc32507fc17bdc0fbef093a4e5383274ee3853962199aeaae70497e3d59326a7e84cef52898bc3c8f950d9812a5bbbbe19139ccb54f5c9d7a8ca96d01a8dd2e4d9b0f94d8ccafc5d23abbaf832f8c9390f0562a808a6ce753962b27f74d40a0a5021dc845d9642fdfb1864e8b0fc6acb0425106fe48187fe1ca3b4751ebf8deb72706191849e4cdde49b7e96a3012526fa9e9cc1201b740034da6b99e9bf8ddff98ee4f2ffc23b99716aa067a62cc21d33313862d6f91533a036fe4ed3a3098f74f2533d25c49ad0c1b6adae8a426601f846addcf11a0059f6d050b4fbe7f621d33e2facc2a89023bc8dfa045df939799812ed2981677f03aa52e741608c5c3f003a8151d5dadae26d6443d41147077ff2ae19a43ac36d7a6f6b50ae5db32842ca80c28a5b61cc592af6a57f8949d20537b7ae2f1f4db3388652891b8bf1d9e3509f62a4376190d0a331f9235654d21142c62a87ebea2fd5f904bb4a679f751f5e8fd865e875f9afa031e89fce95b2c22e803c4bee782163a1432ce6fd6472059c943283549c63fe0c0361ae508cc62dab4b73ad0c1e9803a61977038953d9084e29723de60e8426aaeaaa8b07e0cb80c2c2cdf3a31864370b0d4d7e1df649068559eaa156537aed24c16b72f0a823c1d522476b3d0d6a37c611525ceae43ae10bc929dafd83efbcb6b5b08d2d1e80026c1c202e7b929c6cde3db7871e7cc303e08581512d0323848b304153fdea1b8e98f382a06869401c9eb0c52c6258b1e0077c9aa9c9fd30e7895c3945b4daa771906f7944a3cc0685dab85bff21b38d21b8fa000c79ba4bc67088e9d3987d2454f5e6eaa916a1d24caab8b3fe145b096671ccf8fb4a6a9071d87da8718949373c47a0f9acbe583a55993396374c4ddf4a21d677ebad358f0c97fb7d2616152433655003c152b74fe2acf0c6141655fbe16e0b66616a5ebc9564ddfed271ccc2a31516cb3210af2186e98022df979efd84febd9dae723374ab38c2d0cdf6c7da9e436f708a2584d5cc2af93dbfb625532c226eb80569f832402c0d52b811111710e1b1e47c7f264666386d4c81cdd8a4248221e93643e43fb4a26330e4d4c7120f367136cf69699a74d07d9d6f82d1d711cdc0d2b065f4939f611bce3d17cb27f233db2323a727c73a50b6e4ab83e8753a899f5c60047eae4773f3ccec0e963a63aa81c0e7098786592960fc8eda186f0c23e1edbb4c3855ecfdfce4b8a93cb7f26926c76df8f468c41aab388e83eb25cb3ef2b8ade4e0e79e11fc5bb3aca0ba4f12b49e1ba28247830024e9d6f6f2fb26163330848c14c3550efcdc07a6d3a40742becf7b1f6e2834bd96e1cafaf782c7aa6a21241d40aba0a090cab193a45d8a05560108bcd6956791294a3ef97b422e86f715aaa4716e84393583a0b508d7c180d48cd70fa1e6ee06de09a4c308068ae56b4f18cf34668ea1bacd423d7309f705a85ed0211ca253f341f7274185eca24328a8eabf0cc4955e4f5d1ba65c0edbd4e06798994af5fca5a5a74ac133fa22d831404f5a4635a3453cd4ee13a4a3d9e208216d99bcfa4ab81a0370dc3ae1a59fdb0b30b6f0f2a32465ad410bf7e8c8677edf7b7c5180ace3a39ad36dc5b670f386dc8d6f516186ec0ac2c6d719c17b7f5916a33e92d5efcae971f7edaba0355f52159c6d12d2cdb9dd59bc8ea131425b31b395b1da7d0703e9ad9ecc5789f3f4f29ed94e2f8d247f14a8548ef9c8b91e0de048411caab47d4e65b65078cced53087e33be196d3cdccd7345dd698c10c21b831f7f6263a43794635c236bf7491888884e88cd0a9794216d87fb69c724d2aae65f489353a1ed9cb13fdbbe960341264e636e0660d2c587c6698c35e33881a98b783e4f7c31432b26fbdb65d751a133ec34d79b8811c58ca1c4640a8fa0b78ade51c7158a12fb2479509070ee44ad86aab6325bafb74e9f3adeebfca8b9c4635a9136189e89e44007f670b70f338b9715bdc1ce32583b0c56dff33aae3a51fbfb0be8e1dc30bd6bd737a596af1bc2c2a2c384cfc97d178004fcfade223ecdddd99f7f2a8be8e8d62f6d240d63e137fff6aa311c1e46dff461d042b0e8be12ad7e7f5eca17dbcf51898c66a524d05b63bede70d092e430c9b9ad4b5967c21aa58a59c4457c897c65eefcec7d69c46f004cb9b1bfb3d5a7972f7794e98b36b6ca3803aabb7f73bc7f7f5ece74540a71159fb9fbd029418d34dceddcebd4a410418f559ff6f02379a38947c64cfe3b9c0cde037462e796d5a9aff7c1325d4f1dd8580fa6ef8cc3ef4da92a323734dcad180450710d2438b832b49c9593ad6870e090f31453eb53248ae865b1f01a3f746354df6aa94647d827aee8f41547d50e7d5b391f3e7b03819f711aa17c53eea91cb3c3aaf9315ce79f25ddfd0e4e86c423b787fc9b3f6f0d5308a501cfd45f3f412265648ab02e5c91434c71eff453e9f28575d3d9348354ea24f4196dd99c1221aaae52d65373457a2524158873e4f347266dbaaefeb6c2f806e30edb9481384f32048e88e0167e6189b120f98071723f0b8027667fdbacfe5655926db60bc188b3fd10286360663c85a6adede76f6300ab3ac656a2db3a5ed7071266a89d794838815078e0d32eddf99e550e98e7a0221cf2092d0a35336059bebe590c3ca7822ccb29469789886af3850bf61edf331562f5e06f1a558280e75e7d9d3743ce01b5d235ca2564f811757394da1feac9649bfe93420210d65230e554a3dec02a41758a02b33a13ba8486a8ce5f8ab70b916c42020ad49902b4b94396b7196078ba3b303ee8ab749e48cd34faae4142b8eceb9adfaa9e7b40300f6247caa7880fb6ed391ea013a8eda0a880769a48aa86917c9ca86ef90686d41bfabcd1a13343432726282223e33daa35ee11991dcab0160c85b8d7e87e27fe80befc67d39e6058cc0235aad35cd6e3185d840515d4d911057e6b7670e9853c5232956da7a2626452a3d8b85bc54fbe650fc6e7e085eadcf76751f23994894be700152270f84db5762595cb4b57e48294d72147bb47cb29eca0149f751f2d5aee6c0b8650428b6dc65df8af4a002dff048734c798cb82c54c5578b3fdd3074153caa7330d3b6283e593ebdef0710e26ad58844a79108119b3638b2556345fc43d2f98e725a37ee8f2f6a3177f887d39d271270a433ddeab90bf6748d20b6c1a752900e11c37ad430ec9f8b7da420ead833b5bb86316c5997d4f3e9975ee983ba60a5b6a9f9acc679945ea3a9fce9b5aa326a2683c9d71833a6b9cbca4e140c40e91cbbdcf032dd7d954beaa705afc5ebb0ff8c8aedbe067fd53d2fe43e59633eeb0c8b7a089f7023018b5b5f85e4a8593cba506759ad27b3223e670a4a0740c128223e34147e412037855168ea4e0e74c33bca351989b1b44771af565a74fbc2fe17077eeb1b2c3023f46476b933a9c885562e870d7d5aae793bbe6ef7b4a6421b92c4e0ba7b72e525b6dcf94b28d348cb207d1f2d9f787b545f854002161e7314bdcaf028fce63cde2991a2ec09337d4989bb9d2f92afc3e66bc217e008a8129876a01ae0dea43076c4f2f777e0af58d667104603271de53cac53cb6826500f81393ab8be9468ed881417d0060080bbf08003e2634f161a57b54058ec1d028acfc4153eda79ca0da8416eb44df0f478d16816887479538d74b07d9c8ec7528c4ce13451d66ab12811dbde8ed376ec536ee7812556b24fb6b773c784528a5c85283963a2dfec0c3e2fd7166c7c5b84bf93473ed7f14783e278c145519c035dabb29f8d1c32750abd33276adb5df4cc58179b3f0c0f978cfc4f936d009326222cb7de1a0e4c717d9f8b366e71e07a0ad17a4d2ec7a7c5ef39f405a2548d9e0a078a16a0c5b83b1e0c77350bc5c69c83442a7c105b2c215cbaad743ec193ea07951abfda48d7b190b28dae2abdb3f298b65f556958b63ffe21f7752f3be9bd7bbbd179dbcb8705c6884117654e4252e8fa5a8d62204bb2031b7a7290bd3825fc07bd35e86788623e5e7ce40fc82d2e299c20b51c157f14a6152c2c80860378232747f1cfdb300a5022720fa8b467897393a42f31fefa0ffe6c3832200949991253de1aaf13f92f093af4c213425e90025941359f8ffe1b7ae043508ced2b417e7114c2e986b21854a004bdc9c269481bbb682380ed663a1c1c8a3c4aab8266d72cc0b83c0a55652b2df6c03b41f36ed73f68fa9f4ebb193a9cafaa8527dacb77fb38cb307abe844ba2d34b1a0d732b80702da7975c6fce677c98e4d28c4bb7acfe65c08148195d556008f16def3bee4b3f2356ad8a019016b93c462a48be1bcb102887feb863b77b1e29d7538d40a82f2c444bc079ad200b4fdf91d9201c033782e6049b4a69dcbb65f40cab692b098945c533633164c7e96e0f19afbf1d953a07feb2e2f672e2ddb7177a0cc5990ecaa1a75318cf42899bd3e6142d54c739dc71cde449242da21c997b2c308e1be9ec9f2bcabefcfcc8866fd7938b9185a1b7c6afd1f7b1fb8517f01478e7835f9cceb7e8accc8116cec4987e168c7d678348d81257d506878ba9e9881b6e1f7e838f8416c878c7b74887d2ce1a168bedc94fd2ec6bf8e64391088937fc02fc4f275316d0bce834a880127cbe4f7dc8ca571dbc81096316a4b4596340637bc032da9050a8a9e4ad81f16d051d11bbe0c2f2eeb148c75be1b4f57ad5e213870b5803268b2f51f00b7b50336104a747effbc8453b9e94831191cc80e09e55050dee113daa37263a0cab76831f3d0329d5cf019b52269f4b11032b687ffaea150cdb150934242d3ec01a10da9b8594655b2482c1db6d00522c5501d458057a8456cc1b8746caf3600bec6ae74939fed979e04d0445716aab7dc064acefb973f4642ee724e7a9662243d0e08e0a147aa261e82c49032835d113ddab791cd6870dadf82b725857c05ea6d0b4143643d713fa4e788dac371f0c286d798bdb97b1e02ed9aa08e3f2c95d9f38cd8a5f3675c29b2ce81a5db38f8998ddbd88244cd13131eb647e2e3db0aca4e4405cf35c7ad87c5e34a045c6074e0fc02ec09f529a1a67ec89c8743783ef1930fa310485f7e12a730e5ba258eae367e9c8d50cf602e03b4d4ccc86e5eeecc5161226b0712b4514275ee5e44aec13fb027730b9e0e8c7ad2c4307920fcb831bb17df7698fdf65e58cfe3605dbe064e7f5c83e6e7adf44993891ca2b7d11cbee93e23828fe2e43798847fb5b2c3d0ffef74db161f9428c1ab8dc44b4703f9abaca2785e59511aa098f6dbfb9b8c8443ee5c0a1a6d1096a727ee1c87331930728770513f709a8c0a1ac98f0ec56f23f3920c6f220b54014aa2c6420c6ab13e0efa7ab875ec354d978ac0a02412007684f9ba4788a0408305c13af65ff192beccd30b5f68f9dbd66130a3cf949e5d1fd928465178eccc0ad4301492dc1d61f402e950346315d805c0f1a7f91047ddfe40bbaa3429540308b90733a60ea5266b6c320abe602f64c079a2e63794d41d29dc2f9b0ba2b2bb7c742730e3d13f2b52a601e3056707e21791873fc23fae8c4669359d393819e59b7c90f980b2d01f11c1766b34cfbecfd10f5ddffaf2476d29e286ef08d1d0d2ae6c56172386b8ddd2d32c74461cd69d4064ee0cf7cf5b8f8f7ef93927413dab0d19c8869654bd59b1ae699c26742ac97bb5c02e6acac75de558be6c6dca76934e3029f02dc4f7fc1c9f04c5084bf85aec69d018623231119dc2762ead1a71286872f5816ff21ee2265460953b3973e4ea91ad5590cbe7c25121273d03548cc63065b13ed17d774caec71c11271645530ba21431cefc0888787ad11200e24b6694cda6f8e3c813f323ab129304e08e75c452d4086409405fa29bf7e56e58347f82a9ae22cccf277f8cf06897d89da1cda383488f05ac201e6730dca48cd5fadfb7ac077e3b4962be684f46de59ad4a027da75a037138c27fbed9878dc1c70e3036e295a4712cd30b4cfac1163502e5bd443ee1df394b44a11c6bf3905c20492e2098846b4c5d636e09b8d43ad108a15c41aedbac27e1662ef24bc6b3abd32d3f61d6c5bd8ac90ba9a817a7b39444a3a4fac751fba3b0d5c05a9212e45f387f688205882ece68dabb2b45d41acd8a972ebb9ed098ce60136624f02776652326d944cf5a2ac8e658723258b4747f8b892424f96cb1f5a8f7ed51996f9827a24c03d12037f2e347f27f690e33ee13a6ca61e0ce4c321b3907ff91319b7132e64899cd4646c9cf005068cdcdff1506c41bbbfb8aa0b399069fbe9fec4e6938e81261680937af79a60bb8ccb136e7fe16e811c362bba603661390a0829f51e09b7c81fa7cf437d50db1482c84525286fce7d92ce4ae084eed355b24116138bb5948e744b2356b9b53f8db44d17784b2febc0770c3fc50fd2082415e061479ec5171f9207477146b3494945b7435ce8840d5739595652e25b7f8fcc909d5d3ec142a81cdb8262e4aa9ccaa50894670488082b705f0831bbc85f9c7a8195a29e2c2a685e26dba781cab2fbdf69467ef165fc1d6385dbef4a38614e6586d543502c809a7e537d6dbd148a41288d67efeaa482715d7c0facae80836864ce7ad74ff5f9bf7caf9fc65dc7f23b5dc77d0f3335d70fada0380da0172e58162ff1c02c0af277e6d41099a4d6126560a7606b26bc864d73d3591a80a1001ad92b38615c5cda0eb3b55be82231734a4ad0bdcbeefd8d37544b5d671e76e848c06eb6b8580e8f857d158c4ce1c13f69e8e78353a6afc046dd0beb4b5541765312bdfbec1fae8988e7597e68279a48359429fb41528ae70beac17bef97b8695025d808b8298be43bab5c5aa9ccd8c336379b3d0ee6520b781a8cba2745f0106d8886e0a21ffc7365f0d832d1e35bb6fd23fe7ecf2382fee204f8dd70cfbbb1e475e5d65cad12f32c4225e4b50b6f21760ae5386360a05ac110013bd0601da9c4774968dfa26186275399af309c7be3114e84a0228a1b0014ee5e19e13daab1356c00a5f5dab1c5daa6b94b707600969bb00d5368ce72d4283607959831f7b0a061e631ec3412a3e0b94e6ffe365ac7bb84014b856cc34ea96886521abd9a8a5b0e50255dc82b46aa0efb952e5445da6bbdb12d3d5bac6192df9f2dfd326883bfca74f6aba28f8c7d5ed6426127a880f2899f91e45f2c180fe0ce5ce2632cbe19249f680b8869a04d6eadcd50f3d2bae1de55a0bed029a493d8c520ed6e52a76884e4d0ceb2bbc063cdfa842325374a7d04c2f96f85a8796ee4b6e438b0c2b9a7e61583f476aee31bc04fe73512080297d1061be34edfbcf606a09dfd908333f6fe227fc3284532df6e4917c9b0a7ad74b414feca19872158587e010963c83de8ca72768de1e9ea19a053022d9e461a6e08e8008e95610e7b9577cc0e770b99a70255b6fb4bd196950be1a44ce0610e3f281ac54a15ff7e59f460a4ee9e8cd26db5e97ad7a19fe119f72da60fc5b6cb2c2f7a83aef94387fece4570590a1524fe165a88abc5176df97df2aa729c4ec7f6ef3c3fdf21979452d2181c3c491a0fd9eb0d9fe7b58ee4cafba2f5c7170303ccc51d842641e40939699cc64e30c4ea7bc3a9f12a9a770d0a028f3b2621d0d316e428aa530e7649c57dd3c5cd257815809293ddf9353e4fda338e04a6a972c34b182dd73255352db3b8f21c9e3ae27863e62f4b3598750f052891f4acd6a44b77eb0b03b3da7cb0da6c6380396b43742c9dc4e19d979762281ab125711345afe7fec2cd1e6482e353e7faa09b9c86a350b4e131d88f02f67452366a802e47326bb39c0a32473d33d91be8a463c456be5bfdbbc78a98799fb027bf156dc9b3e8bf11052d2314fa149e95fb8c49a598771361978c29bb8fec83637a6e3a096ba3950d6bf3761f5af4a239984ad445eec39c7dbddd67b859d2fc064607dbad525ef578f8fca440509523cb9c9c97103c8f1ab69d92ecfa82f80cdb58a97d040af5547d7fe23cd989b4a78702969217e2d0629aedfef07653b10394f316287db8b50e757e8477e7894be44b4bc0790e9b17d5b68439a57033a69eae897e50ec8de36ffcb4b4f13ab8cddea5f518ae1f3509f190851b34cd33f9aae051919765d42663eb10f3ec77f6ba3bb9127445950778bc124eef9a6384de4acde3cdedbf2a02e5084bb29762be69714a60638f6b57e9784fcef4c6690d174bfe13efc3f936a92a6626c9828c4005b10867b5b98df9df25d2711757fc98e4be99a7b85b439e9569e48bcc87a04c6f656444f3415ab35b8a10d702884b3a5ba9417b31717147f880a51c03d77843e7a3894c0f0b419c9a087088c3d774a34b83c541eb798dcbf46bbc604ac40cfc2446fb8ae6807fbc8f59e3f7ef776843ba847b2da9078893994101f217ae1cff9b4ccb91e6d4649e83398070fe89d5b687405e080d1467037623b27360233a72971cb408517c1a49f0345d3a109f8f83f410d707cc083e4dde94b48dc59f1094f1a52820880cc9f0bca1dcedaca341e07f12220fddd8c089277c54ba73a2b07ece40bf67062ea64221882796404d89f444d52133740e63e9f4f70bbb04087b99796ff8a4279c30c6d1e52210dedc2978c79b728881298511cefee399adacdefbd83872aa3231b0386fef145cd44f1dfa931d33132c6b5462f7e608a649741c23f976d9a271a72b207cfb4b99c457f960f4fa365e35efb6060db03a65b446f12a03a26597d179b87e763fbbe93f2464acb9293d10af9961c23a67a93803e0132d24211f67535d2977531fe21d77f8ed8e63c43869a9b3330e87fec20c37dce8f800b2e81619e645eeb66242db51f3ca7724b6d7f06fdd2bb4fc609c8a04c9cb172d0ba7156dcaab83716629530cebe9a432c5a7bd630f9d391d6ec13f5eb51d684b65d798b2d513748414a0d71a6a31796ece64e096fa2b4afa7ecf4f361917b1518aa4de789e62a36eace11338390505d0b35d56833559eb387ef1c6de8dfd771d2c4386306aaabb53afab9809b35f36f022f3813febe619631046d30214c965c3a348e27a94a19e57bf1b58f0278a4755705a5f2ca02fe657849310abfc7a76f330a285758df280ae3bfd62f520bc1dd8b3a0009ab06b1f454987fd8645e37a7bb28cbd0b04b3c87d20580bbcac5c096601c5c62f90981b1696b924c9109458063e1a19d7b03e303cd7ff343b813790db28f6fc60bd19b65cdca0143e60389279eb07750970528dd2cfba7bc64ce00943b04ed3afff85512cd9a337fa6883f1787b0265714302e127c48154fe448de3673142818f5e0a98e84af0929333a8811ddbd875ca8fc44b7b136e49b02c1b477fe372f5fdea0a7c3489ef117d0063719c3be330bee5a368495cf482482626004bd230cfcc5e4b3b63d5220483e6048538a80b02da1c2b60cf34daca121e12e85dedf73bdb1f6430c4499ffa7d3a6f195e5b18c2b7ed0d7a9eb3c8101647bede6b247891f8cf6548682584564354a5b0dabe09fa8571b01a33a8907b00fbdc03f0db5f389a751c7a60f41c33b57a08f7e61fab2a3cb920fa8eba2e7ed728fcc0ad93653b785c69fe20eb0dc15230793e48e1bc0c282453c47e39ff742c4069cb25c23b61bf8ebe0de119ca2277b4e281e18224647744c2f2698c40f48255e853f58dd849729e4e8ea2bdcb0748227620e9a434aa5684325a51671fcab271f7a3d050183f9bff51504e7b5f5dcc1b687673a0750f9170616a8f4b1f43a8264b303646770d1e603c100b95ed83fad83cc7c94da040ccd02f9f3d06f3a74745d977b5608d3734589b126675542e10d92f6c6e724d3fab5da880ed8df04f118f8fc3e43d8f274d9a08c8f810c5be505c77d263de089a052759c84a510e098e647c900a03896b6c9d0423b339d2f1e178e0778bab98f5f568b1c9611fa91f9d75cfdbc6636642371b29b788c0ae7660151c15ad1b809e5c07f498678739b6fea0fe7e89b5b1d279afc312b4013f19c148469e4f342e162fb4685be8484d653061de84ec91aa719692701a233993238463ccf9800aa8737e83d31f4dedbd90c3f3e03b026641c4272a00c135ab408891313d5421d12318959825bee75aeeb98ba2e0bb426ecf9eda6b1f8f30692f4d40b318f5dd41d8f5f112a54226432673afee1d06a468fe5c3b0146450aca654a2bcc31e72cc81de290569387da1b9ba07f65033227ffec94532e5b5900c11970ceb04e3c3a0563395e693ea4f94117dde8d118eba0a5b12b343339e7034843d91b0e784dd2b15f8a9d6db0c78b6e81cd5ae07ba0dd752859edfa2b30a1b3506867bcb5b0ac10b9e77bd3bdfe9b5cd9cad65b799d29e01bc5a2221fbc02512464f0196851a7c32c2cc56a4e194d7106259a64ee263ca04984e739bb9995a235bd0b2ca5cc0241dc5c2b2ec1ef6c36d43f522dd7f669c9c4b5dd2c8671dc4910e52f69069a5beb5ab47582cc328796a11589e336dd15e9d2b0a7ba44177fce448f390eb62d78bc8f7ed99027d4ce849e067f1e4c77c66a9ed3f890d776167a2d2b6e16a94b9f827e4c16430ee479ef964f749d6075d0a4e6f1e8ed9f378c991b67d3a43c2de288da17ae36ac404f31036254af920fb74714749ea2bb65f757f926325424269ef342c64110e646e9eeb680f9b47bdde73d078a9cf888be0b3d1579637ed7079b1bed09e32c9aa61b31224a4e296eefdf0b5c8de233f1be86d84da7fb9284d34e5c1473bc8e2757d9e1abf3cad8327ec9a4f03d34bf69649b7ab10d251581a6b7d0155d45c0953fed443fce6399767d9f41ffd3154b969abe374f6b1b2ce365547c22d0d5aff21fe8000e214e556c6283bcac64507033abf45f587cebe549524968577aab100e17bc0b2702b27585d40d08e183d67c2b8a37c76d13581d8e77d24d83c161e5f034d5e2cbc15e026963e2f64cf40e6391ffa293381f08216c3c5b5f114834021a27489ca8d0c9ffeccc4924a685b306a1814391b6a2a24b5d6425fdc34c79cd6f029cbde4cfb4c684c3b223640b46691a4a15337d4365ccff0c154a922dab4a1bcdf598553fa74767af2b545b24a9384cba5928f7268164c016be83b3ee90d02b62ab83332a29367262d83650020b295ce17a3ee9f71c2866f5c2877f7450a875d14fc95e03ca67c426c60993a28a24c157b976e9129cb05f3876f10aaef934cb7b9306f536fe5dc12e996227c05cac44173c53f5f01f03d0f57e038d656297c495eee333d120845b77c36a69c99cc436531dc4caa54725749d22573bec1c6a8c9b964040f6aa8d514ec48b8e8333800d76954a86174e31a20140b1c75de4bfdb7e70f49228e79757eb03ea263585446fabcdaff120b60163671a13f87d45a40a39c66f42f94c09ec8b3585e931108493502ec74d7909760a1f968ed415a93f9ecc5931a574f060ba945b48541e5f54c3e7909af6ca887f2e9b0a13208044af9e11bc0bed20a863e7efd45b73e4e94dc4772b60971c87c0505e2ac449c9f83df4ce1b3a6bf04c5b13909b0899b2d2b6ebdf858dd7e84c743c818f12e7cfd438389308e14a8f91e863878132b1ca2c70b90f25d71651c352dede2609daa7cd434d19d456a3abb4315e79fe9f81e6d96b28e15d4e8e6c49a93882a1229e4c0d2ac905cd3293d5dc0eb634810a812dbe50e4a921812ed1df6732201d2eb61b641bed765253f02b893cdbad58574a237c0fdf5c58ecacae679118a7856bc5b973baacd8ee6990e77f4ee3ba657363f8ce84c29a38930721d432220be7242ab988c45bc42f046a138bdab7880418f02d345813b81a6c7618ffb9e32e4685b6f8c105fc706dc5dcaf730ad8954b843c4f4b9118cfc7a4ed06adf2048c63290e23ba89c794f365f96194a48ba5a35226269d2f62ef4536d497b39db50a493c9ba270d42e2a19d2dcb71498a4aac84e1c7b20ecb60aa7ec244244b5a8e4fb9b8ff24f578b978c7192ca8f177342cf21509cd0674a28299b948f4f03ad7d2cc6230bda2e55ceca214c84481e5a03eb109945abd16e89c98b458a6df4f64e049527aee15e213bc275716a4418c8ec6b6d668f71d16ef874c2985cfcbc62f65190f87e0c2b8e7963e0355e44018bdc9d2df1afa3a7eb012ecf6be046833c2aa083a639afb76b8a62f41777403e2d41d0d67929f3105e94d9a36d099d8806f7969e3fb332b67ecd6530a35ba060d9e1d60e104cbe06ac13ef0816311d08d030140840252967ed8f3b710eb4de7df6cfcc06f4afb476213be562ff8d3dee98ef1f312c80bab244d935c1cdc73596ec1789a1f25afa9bcb7242c83e96120c1036a63624586b68d58402ddcbb6317c70445b94c10a4eca946f4e6f15fa359e21f1cdb62ffcc820eb15fa1f0ff580ceee42586fd078daa0962c81af8840b09b63656c05a788ee8f0ad70172784457f7a31b6e40dd4660cc89229c7101a797d9a8edcf5c0d41fe80824cf76246c8c03d00e6df3225c1cabd5e81432434529f13962abcfa926e0660e63ec1338d56126fca008d9ad28f9acb2fb9c795a389f47344d3db74ced0c6682df376afd04f2c2cd909ce73d1ccc9f9fabc1606800f3dbe1f86b7c827a3de138339e1970688525f9392df3dcaa542d92e339555457d30599832024e9934088998e6b044296fcfc4554c0cb1e708aa90284c1d65421327048d476218f5ec6e35bcbcdd130fcedc7dbef20e13d6004fd06127d9b431fd056eecd004cfd7e19a2d75a3f8597b2db34f5475a5d29fe2b5ffbe482562c25843cbd8269a64fe2ac1d1a5ade04786a5cb22fc4db34eda2edefb16f12834dcbe3093859be3ed03810ce263c77bf2d096ed2a0be22f32bc011e6d3b4aa6e2a28cc5b5a2e95fe351025b64977fc4ba7d82883ccc1f84a81e101acb7dc90f557dc45d944b8b5b0c01721bbd19087e242e34658d5e8061a896e0c9065ad2d5f98b17a53c1c61ea69761db62a28e2c895dc1af1a7d01c1ddf5e0006e0ac2853bfa80d6d9ec12cdbe3c638c8adfa92f4634e7cc24f9b28b0d7b71ff47ff2f478dbaaf05e6ef3cf3be375682908c73765231de573c615b668ff3452be06aeb2771bcf5fff3dbf489d7ebca2afffe8d286c85bf317503eff0056e80fa0cb56f91223ca1e1bce2d983c3f474327d5ac8aea4fed9e14247d775dfe2120aa893e5dcda2e7866e1a11b6a29b2dfd79345f96dbd898da9ff19eb5caf35c2791abaf9b89d19ce4c6dd336e03bf99be12ca7a78ef1aec3a11550a61400b1887168a1251e3dabf3256e9b35e948b6f12ad7c8073c83454452cfb1dff421987e359b4f875812ef1e5ecbf2b8d9b91bef34b55e2a22693d11bf89aec7c2fdbbc8f70daa22ef3f42a3f6ac3acd86734c00e40e4c6536ec0e74bfe806bf2d54ea4ab4599e38741e0cae01254830cb3175ac755bcc0b107e1177809b7a6bc95805fc2cea5bd6b833cbc765ab16d704bbb39871fef06f37a3e2e05d773fc2ad3d4e57310b8e524be6aaae51b03c09095a8f98cbb79b579716dffbe929676e1d94e23ba9b9547d1e19c0fa576bd0422199e7b5a26cb04e08671a07e5e94f4023ae8c4720429f617429b916402248ef9197de2d21bed871a6b2d82b473ffa11d9353c36af369481d968d21afcebf2edfd2004c4f4acc80a45b3f32a8c9857b1f0b9aef2b576d6a251c373e719d4d8e71f34a3126f0999c57338f8a3173ec7afb19847d9118313a658710f72d160cd60f8b3eceaf8d871fcea04e1a15c98156c6930d5f62885dd61e719009beb5b1b339470a841ce66e9855406d5f513d8d6ae02d4861bfbaa5f96e04954fb5c435e00513ad183f2b8eb9f372c5fb842c8ba99b38b30cf0b8f6fc8e815138fc26693fd6e58c6c8c1a86bf47de49143f1f657fc96e3b55bbe81656f874b90d103a2ef06e54f00316514ccd21d92223706485d8adb12ddcbd13c482900c3775603ff22c05d92844dd3498c48ed2fc4008fe26e33c9f51c611f6eaab4a3dbc5e18b8c1d088793bf4e93b1dd51f44292e060a49b2345a01b90986864a073a98e0d605458901947c61c65130905bef5e35ec8c78646644fe5af490f05d26f92d81e80f32eff6123cc08e27700bdabdcd5d4127fc4e35e11194ae763353e4da7fdd16d84d059f9a73f269c56e4416371a5a60f7d512d3f23bb40b548c0f750bfb5e4334d1eddeccb5ed6856e7283e1ff61edf7e0754f5dae62884f54db2f5e846fd35ec3c9316c79b4e71f5672fd6340829929d6c49d66d41f81c0b46b064716a7ff83cddf34889de3fc45ff66e7702582e58773f51889456b362b36a2d99456cba7955bacbff0f5097cfe38703acc4f15ba76d37983bcd7df5c4aab373f2f05beaaa1f5618289bf74b55f0e5b11acb19a2a094db801e103b49b0ef8cfa4cc30b1e93a61b7ffe5a71cb1eaf790ddbd97ae04cf1835d687133f6ec2f7c3cf465eae1c9d437e0c4db523332616c82a491827d29b05504ab5f85662ee0dfb8eea05adde9a005edec689e3fb8398820eba2a41ca64f3bde5fbbf162075035e80a8813c34cdee0b9a41c7e4af8a5f834ef1264efb3825b1997b8159b5d51cb998746f79cf8c5c929c9fda0e0010fc9f63153a6ba0536790e931be2dec86c1b49bf3a5830cfa168ceb6652da12d58b14ee87e758d13f5aecf32c78e9fd2a6323eed8e9ea7b1be9be3be08295737fc759e1ec5b8532d38be0cb70ffa816d5946afea601b6716f189e0d976be62531e7fa3ebdfc91614873e513f0b6845557902a0dedc51e83bc858a35a3c6cb8ed910f812b38a259df693219b73c8de9baa913a36078c1a0e4132fe034cc0dc3ce70f622c5b08cfd52ab148fb885ebda6a9d58fc0293d505b123f76ea6d700dfe33823e5dc45775571356085fbcb19e94f3de4730eecf9be1c92d9c5df687e3e4a5bb9077d8797e70c7e155379098ef654697976378cc8e73961a018a86afeecbfea3383efd1da39a5daad68d67ac847df7e3b28f4a599f7d86482671c5926fba47b5d7759390b9fa96b178e346e041a936e0b4f0d042421eb59a02d75048f2b40f3d117604840737795c96471a3f109a78528d2a394c8df8640c3f88dc2b5decf65e0df07d713a81373589ebe12a6026c23d362948d13296e43a037016bda69d02df0320f3f4f8bf9bf8c86b1e0395309fdeb860121bf7d1673ca31d35c3da18cb4dad3c973aafe557e39790988319c65da522c533a09bf60825b192e22cc9e7f96ceb87007323fcd5145cdbfa7971fcf47265087e31e4796bd0f3b5435e1adf361c74ca7392586b5ca10b510735251d842bcb06382237f60f93acd2e108c3752489f998dcbeed4ce4953bf5b009d8379e37a975c2e5175c9c75edd0383205d0574ce3ebc03141fe51c91c75478a02dbe42834c7907444a5aad9f459123593dc0898dd961bf84d770dd404677dccb18a05bf8df98c5e380392015735db77200bce7746e676e7e2741b998d7483b6ecd3adbf1e3d6cd3853e50976819f27ac794642299383506bcf24bb3baf4e0548e9e99a70dc233032bac0341f3fc3f94c9717599095b54083b2c572e8399e125654ea9596a2f174beac7cdd6fe9e5bee749946e53a81cfac36570a359ff0b8fee8550ca38bb34decc5b1daf40e16c388c3c5eef92c1f57f31fd16105e978c6fc4e60eaa15b00aff5487618611d0d0905957d183352e1345d647eb3d90c06a2080b9af910553bbe0860a3bf44185c40b0b3d45cb1f32b4c599a93a28b9a32b65f0c51857cca5d45388e7f31597cb16664f060c1609168487415188b2a0f01590d0b2739da4bcd403700e59d1c5ab79198562490f44bc829b9efbd1db5c1c3da2ad72fbd21b103705048e6094ab1c312f8a022c7f549d3670138a63ab0369041e0b779e34a01ae0711f44c165d757704cc36e29b9874f918f3043d9dc426c907a6e0f8bcb6a8970f0683ba3caf8e5b014d2b350aafd21fece09b2916154c475306b0268b01effd391010b2872cb11e9a1e28364daa63bbbf49bed9c436a05b000a38e77d2258e5f6a87976229b4fe533c274f57fd285883c7b6cbc78a7a0be0a8293d228d87b7549dd9dddbc86867e098c2aa7d5c955c116588b4466737fd630b0bad1a01684cbc0ab8b5a944f792ebafe16264f5e8f4f4d532b79c5c7a3c03dd7f06900c1b05132511787ff470ead0fdedca5f43d63ce27973a14e70fd1f9ec3288f3082106a29481dfa48cf08890cfd6d0c9605b28e38893473c28d5504c66f9a33bbbe7c7157be0b224560e2b707402b9d8d972871454d100fa43d71ce654757c2ecc7f36b51ad23e525e4a8f390e4b417c04ec3f26dc5091ec4a9fc2365ab8ddaa702812f74945f2571ce331dceb73f5a904096e1c70a885ebd093faf34495eee6fcf49014231b31af40cd7f791f2ad2115e3f194c0d3d7cafc4d8b7559152cb3151036f507b2514ef9dcf5ab1fdfcd79eb712cf3c38edc7f3aeb96588959eb67d4f981f33a1b0121f37f3fbd205f1566b89ba52befc317f327a2ffd5eb82a7b32eb96d9b1df7bb415640e6f99fc6137b396f2a63265ab3f106cb4ab0bacf1ee0e9635612e208088c559f77688df261551525fbffad1098f6f4fd181711a9df645f43d7e5065ee10989ec5ff1b7e5232cf8ebd523e233fcc3c99a9cfe7d8c16521bd4a16a67fbf845af30b8ec3616960362e9818d0561ff66fbcd35edf840a8ce5932b63ddb1b4efa0ff6fa6a96f538b375899bf363a3148cc9e3f9b7d6761d52f4c80d364cf35cd3ce638be46ad8d46c85bbf4ad19767707903fbb456bf4fa0f05b9e56be1e44210ff2118cf379bbdf8775d8d708d75f48185a728abd12cf2627b9e4251793cbdf1f299c7ce3817b8fcf847b80d539a16d1a2863bc6778b937f687699b70267fdeb9eb92dfbefcd97460f68c0047c93410dc2250fb1ff5b8ef175d2ad6bcb7755105108b5f99719377f7bd1683980793edb0be1e2e74673084381d2a9a37eaade860e1eeeebd8332af52e43087955c1a1538c7860a517947915f0ca60ed8fe2c24e969743241eeaeb569efed296dd296c026017dd76625334b434add133bcc08aecfd0bfbd4ac851a722735e8158c1f5c6ba05170f7d716cc3dafcb4bbd642bfb7baba3c3ef40068f00d26f3073f984aae918b3bb3a463b707a32e711d51a0827fe4a1ff787b437c66da01f0bebdff87ef6b207e15820fa36c8198824f4f8e5573b0c0342cce371318dc4364c05568b17bd8fc0c14de7f2bae85e9e839d0f97695adaa54ca2bc08150e8f2458fec08b5f64d9fdccd5a165df6b5f3f9a1ff63aa15b5b19b39fb86146524b3c0ce8776f8c38f20d384ada943af0b34cfe3ff3d10864a2a8fd683afa3a8eade8bf5b0551550b6877bc24ee1a58088c49aaabf1004c5ff41c0dfdd97eacdc1722f36cbd9a4892c6e76a5922435d8a5a7795219914dad7e1ca1c502019e1260c9015f18a1ead2ea30744785a624c6f65b08cc442f45d9fbf6a7747ebb72c4477e3b3740f9277559ae8d98a97bfc5d0e720fdff671526f6c5344cc2bf1603a3708bb85d7ef818eefc3e885ff21bfd1321c8228df096abccec203c69a2b7495857ff71a4aa82489b133f3741fe5930e6b250345ca93914a41578b19bcd0c49ed26b37dd8578163f1a88f68f327479496e3e36de8b6db52d3faf0722bc3b8badeb6e179a8ee9e7d74dc7df08df239b9f36d251fd7d8305e81cee6c0f2239dd1ab0208d11c6915ad1aabd20219ee1007063a64e5985ade73ca64c459e6148035eeab91473f6e7c57bad7f89c88655e5c16962071fe097c046e3db667bc9206516fcb524d63b53cd9e61cf3bf810ae20bd7390646ba8f61c0c107af0b92918052d7abf6f743a76343cc4db538e4a241b28722ea277a6348f202bbc228f60a16ba03cd1d96218f685de78c0e67dc89fcb2f4fde0b68f599f1398248f7ebf448611fbb7150b1bee6f88332e0321e2c9d53783ebba8e2e169d0607058d19f004cdba27a84b1b3c08fc87b9778fca281f71cd0336642bccdd7d8fc97da6146ecf9ac87af18bb9b74fb2d180c2fe5bf3e3ec2ff5b2db481f4732ca4023a9133bcf49a7807002365a701bb2e5427d9724939cfc088299e3ff5d84f9af0afc13ebd9d38bdfe56ece0f361bd39d09be05161af49769b8d7e83c3cf3cc40ea6ba8346304005602576c65233a3bd164bf8b270aa9f1e36cc39ba0cce762d3df1e678b5619bd81bd90cd2e275a315fb72a2030087e9a2da8f8c3c250f29ce0ae2e64be9ccce96dfaa9b7fee3d70b04d513cd6fbb46633990e70480cb20b6f3cfdb0490c28ef82c8bb16def28f8393a5b437633d1d34d2f1fcfca3dcd01f229299bfb792c3d001d6ed32ff8330a29e851ee62ca55024dccdb3044a02001eb4b486bea007455a0e006c04855b328e6d5eff6676ce475da04f3ba9fe776cfc6fb76c54d9d819e6b5de2ab23cc9702f3b08616f3e8aa50bdb09aecfdd95da32800a8e81c5883336dc415f21b30294747842719f1d38cb29780677e428f48a00d04185dd18d596dd60050f8e94ab8da62c089c9c544a98e7dcfc0768572c46254cd5b849836274302ee9dcd5e7d60b593307725beffb1830c6e41b27600bdacb26d74332b36bbdd6f70455bd570fee2480fdb0587fc7ad92eb328dd03bae3e45d9d016dfe0c0a21d143ed4654ef0214e175eaf17f08af65338c3b6f4b2f5ca16ab8fee8a3fe3f3e16e3d30c44babb56b93c38a1f532ef50b0ab912a6209e4cacfd41c6289d8e3db58b987277ef3365234f44a900b1f162e5ee988f6f4e641b28216096d414181cf2052b9a1d68ee4960ee962e31c73974132457104b0998a915988d7ca11a95de424de381330b539ab94ec6ee7d83b3576cc9b629288abb5da55df4f13a0fbef13a8f000fff2eb1940d57f118339b0beec98204e3d54ca5f3781a2c98dcda21b2356f945f3b84aed9a824b3f9a92b5856301452184f132816c04eb8cc907900ab9cb79f4e7431454185e6413170fba787898e53479aa9ac6360c1aa8716414dbf25203a35304173bcd9f7b0931e0d767443a60924045c8ebd738bc54e4340b851c32883f9a8a4bebe9a28878d396ab92933fc13abe2ead216fd6dbd524573374cab02ffcc66a2fbe3913dd4d42ccc970180803b7ade1c22786af2c108881ab058f5a201fbe2d08e402aa76ed8aad3a58dd87234ccfcc0672d4c9b0490f21fa5775d2118761882ee2b6f6f7c773399ec7157b206f6e92887616f930f986834586c15d37244fe05dd7bf2c0d9dab7f122d2d2b7563f81197577c1ba0d83a9c145f00670d4c78d4d81c0827722a8cd61b2ee39fa614d40d853ffc437c597c7e32f5855974d1e28ad94bbdff1d6c3ea68e9603ccab08f6f1ddf8d75e9a6f98ccfeb213dcce3a9d3dbb4cb077edaed2f733d88620f0e24d35dadbd4881dbfd37c38a787582977192ff73fdf720bd724f2637e068ae736ebd884e5da6b1c5a6be495b9c06fe18f4c6c55a010fdc146a8a3cfa46c0a45137ce8118154100e9a82b9a506f15948ff349dc480d7f18afb56f2fe9f66bacf69230bfb88a7c971042b5a9e6e8a3ea549e748966074bfb2205ed159385c987fe428a38f10bb655f60aa8ade6475ebaf5afd232535cbe0ab18932a8da9fd990eec04145c888602a30d77b642bba67b93f314d6b47dccf3c460e21fc300de745240327588ba2fba1a57a010f88599f7822d2ac4c4e324c57d74c078532bf96533c8124c1110cd1f9be0a8da8658406950395e39fd330b1369b3e733c96a416981622b554f77274fcae9b7cd3bd4e2026d67b25253d5184f2200b1b53c86470ff2aacc6cd934504ff5ce7d56b6fdd7f8ade0bfeedb239e4c511c404ddda11e6acb4dee3f2802b5f080572d1682a6f15357b2d691bcf1aeba762956f762b8d2593c312c25aeb4fc01d51e4efadbbbdd623ef58c99ffe18100898c18a7298fe27207e1533a11d5601ce8d68767e0c85d05eda97413311405dfa7f45624384ca9e2e69b07aa99c4c31f2985d03ec3bdea37686dfcf3c08ee7af3860526b24cdb06bdb02e7d25e4ebfa51b264ec43ef2bae0716956536881bffb730c61e58f3867799336debc15d7d1d5ccb657c183e796720abbf45b9744ec03cc07cd4e89141daab52cd4fc48e7a9865ceb17c5adcbd7713c4bbb027b5fe33ab7ebb90577cbaf46da3f855cc134b5c567799939d8a67c526cbffb8de7a18d8a1d84abf81a62bc3320dcc7c18d33ece83d5fd85b8af92310e412126735f7985ee420c3b18a413618869caa4578745abd8d370c1ba8079eadce564d443bc33bcfa67e297254f79755bd38e5c0e28324fb3ac2a01410cc96e37dd1accf447211883fa89def0e8bef5d92482d3d2b6c3d00081541a4f366da0ce3478d9126d0b1ec418e13c28f633c5f8879be53f63c4650988ff798e448e63cf5fd99937281394a121f8cd8c444a75222ed1b457942353a9e8e22d8fdcef23e8b78d94f319711b83b109142e6646b62c334d84a4da5bcb955b4b29ee5989b0e1d119e9b5d5ec88c7564f73ec0653dade4e84702798e2e1324b6ad2d2a9a2ee21c0eb6f885064f2422efe0f7673e7beff3e9ce00331e536a600b8a50a2820d46a85eba9b8a8cbb81f3fde61181db91636b41036dd075c9e82b9650b942c16e76812d9f38605901bfb1600337beb7ed6fed1798095f6bd992e5d936954971b8405fe1a63c4a61f9304599a46105c76a828f833740681efe7ce02471086d8f600fbe7799599834f892f5fc198a01f75f2ecb13325cae73d76580ba27f685be05d58d8e6b1238588d843282d12444d1af4038c6eeb21e7f44a748f33ca45e88f34326f1ecc513aad91fda6c5d5787ad247fe781082d3e8a61e7d4f5714ed81de6f8d4907b9f6ad272606d8f2f316e8d6a00359842a40951ceb432c1603ba01d5887010cd015e204fc7b003d3d055ad2938303770e25d41455d5112a7287b1a1be32f7923e0ef105532fee33c90224bedc6ee05820f9c1d203dc59feef5266706d7065699f63f0471fd72170e385923f43869a2ce382596c1c601d296fbf1436e751ab9a047cec41aebda5106d65486c2f6909ebb5ac18f9d76a51c80a2649f2be21754ccd8e52847b518e485b666acf77b18ea34f356618162e9a9628738b7539b2214f0b4a04ba6f75b6a93d44ef269f3374f8f70de4062adeced341202e18b0c47d46eb6179d8b052b0665804b0333412d87a577ce61e38312e7deca2693182dbe1ca0d30d5234dbf9cf96cb3dd2841977d4529b61742d95cd9c53983ef6c74956bfe9c4c4f243dad71396346307c754d2b2c2b6c2e29767eb07aaa1aaf81691fd26905de27103e90621e2eb0b8fedf849e35cad7784fa0ecd518de7209c341d8abe67b5dfbf93c562754db39b93bd3a2a3e28f667155ff6d8fd64c4aa1490f1863043eee9b6760840eaa5c3bafa5c2e49ab7267edcf609e114102e2a51d608ac7784b8f214833797f95b5d234d9491fc38c36cabc8c239da6edaf1e0359dbeb73a2e4e7bae0c4258564cbcc545354464daef3dcc44d13ae648ad360a5a83dff89372214c29eafde923bcbcf39a02f768a45b9c91eedeae4429f8d0d287545498e20a06bc9ab11f8b9a484856cad049d4d943caea4ae249187db0f9d89846c88022a3a65ed47dc70f84433846412a269e57fa8f855879d99fd8ec916f31e3db3d75921174aa341a558201f8d448b4c9711e653f371ea8165e20e245b4e9109c3c0acc704de6ac8efdda2ce14a2cb0fb9c290b1c97a1062362cd6be001e80c9b7834931d5ab99a0a18be892fe72f5999f064798467c6a3396c61285666950776e680023a5a54714bae3473ceb2a583d1a599941d7fb168026d475a2fbc1e5e1f0ee4c90f86caf522eb4e4f0acc82e8c0433e368a4c09699d782ca5c1be97d4209f6df0ca32e2b8cd6cc3301096eb3309ced64421ac9312fb34876e3c60e61181ca95d14ddc952269c7960aa13ff2b33f3f2ce6843e264633fad6b406a89ff3836b871af0e4989850bd65446493affe0a661f010277c378a2087ff889edacd052db886332ea22a38df2aac72117d755cab6cce1a911e64af4dc6e8c848133bbc4f5f015ada078fad7f7d9b2f907e0b56bc594716f4f7bf1b59a4b287b48d4d328d5e675d238d1952261999d7aeb0498ee7b370b6bceca5a39198113b2d6af63a10440eb0caeb2b3c62a821b27601f5845da21e7f9746000c17db6d54e5e89173885ee6be695aaa2d3db0bc5f042468104afe3258368726a24d2046934f42a291fda2f1f0cc10dbeca4f526bd7d835976229f27791bee000378c751becc86c72c2920d45eab89eae32a275cf2c4f5946cfa760be440bc22583c5e296fb5f337b983cf2fa5f33f9531641dfc56173a3a528c1e8c09b5201d92f20707c9b266dd0731facd3754695f5f11c72af7712ed39e41a9e3f4f1d7ccb621972b73c3e1d855fd0cb97770ef9c575187e7a006f8c5a8922fe0567eba692b644d53b92802b7038943894745e897aec2dea5c70e95cb5d575581c4994d087ad9ea1ed4768aaacfe78ced1150ac291ba842c88fba1bd787e6134418a5365a9ef601174700bd63b483c8f402164a4880bb878cb2b6d3502d6d65972301f9e62cdb8d630337edcb5c7c5cdf57b6176f9a0726818afcbaa7731ac724c0cbe513c23a5db451a7173b56f0861b214f85eb8ade25604133de29e75b353948254932d9076c79d8b036a7800258a32069b9324f6d7c27334d581901e404900b82c561d96fddadc40b0d040d88462972abac9611a69340a9edefe89cb1c3183ce030013a2e479bb86936ef83a9e68d68fbbecda97dcd9370180592384e81263c8433e36a6d29599213723eeb500d6eb09901a01a4eb92c265d5ccc2f01a304b2ce3de3f7e5f18481eb56a23ebe2d62a063e328b0f0f40df0bd29ef115eaa12153143e26fc4b467d31964b93e749e62a43a5dc3168298728b100b1b80ec6f8b218db07b6a6ed390bd8995f21525cee38962ac591ff9c36b94460e9a3cc488380238310435b5faf928e96d13349cf93d89d2520897ce80fcd194ae528ab782902297ae0f1b2ad16a220d7c6dc21a4d14a1c76e363c973e57ad9a0e60d548bd0206fb8c7b9039d13db8243ebdb00ee74439f7255bd1f4ec21d9cd0e0b6de57b464f1a7196425c1f18c5f541548494c41672b53671b950c252973d8e91b9e3cee09d9d7772270015423c13af1f5d5e26f3f405c842756b8cbc3d85dce19538290af85c553774188dbaf8131978094bef518610e9f7624fa8a84fd8a0278db74ccda9f7dafff5f9d9f237ea02dc5a29ab4b919f9528c393c3de9c164e7cb35ae32272beea0bef233962b32db0e0f16877e8ac823919351a400a1c24450013d0fb925b988fae829ae0e4970c10e9169ea475dfb2e5e6a64ddaa28f54e883ea317c13f57c468e05ecd4f4dff10815c7d3056a04b4b4fc73e0a0c9d1475cab1aca76f54a0e646f8b0735d7b4b6eb5ea0c0528940d31f22abea33e5062c858b8862aecd5bba846aaf1782c06f7738b365e70313ada02b18d54f1360c2263aec1406ab81ab5967e84297d973bc7e5c553bb0180c5ad7636405e370a1a47401cfa71ca718ce08cc01b7e37d55782ebb35bea97efdfcdf1aabdd8b5cc314668723014d488922e9b2c85acb294021740271d2d973b7e98022b973ebe6861c44512a6f7b9fe3ae4896267d0099d730c6074e37ad1c160b3ec77961ab073294e63a919cdc2f78bdba38f8aa6237e277a78007960b3e8996322c753481b8c822afd57a9d2c7663106a31161b80ebe55ce952927cd97c1f715e7da7089f78222323325d19772a3d96953f7eeea1d3a0b40e0fc13161cbb79c16a30951624a95ce5f1a52c2693a207f0bdf9ab9281db04a51b9d5c56b2fa0a29affd0d93d4899a33864d32465ea075d319df2ba953be59c4688fdda411f93da0f6d70ca2233827f906523a7bb9fc35e259d304b1935f45bbfdae89b04468fd7da7992ce611cd16a0a129cb1ecf2e30b6756600f00bb11ad9a333336c19b041282ce866dcdf33f97f01ce908ac3cae53ffab33411a6a87bc29ef3de3748c6c5e52492b9cef6e00997fb87bb3ae9b8e28aaf90b58eddfbcd2800e7084d529e64facf896379b75d5445002d0474673ca73af35f7b2337a999e0127711094fb97bf163cad4816e7297c8dce9f6f5058c45fd547366dd92def29cca68968f7986467d4b16d6f83862d4e4e7f5783aaa3db2aebb1e72d614caf8b4c4d315567f6979ba7e23ad9c0c52c04a4eacc14c78268962ae30eb1074702bfbe997d978f4e90e04e81a9346f17cd755bac0dfe3421bdcf3c76f496a6458f463310b9bd428251c83002b1a0e0a15132d5ce1045fdaa9f29e6a1acd705fad96f29b59a7c8793715d953533a24f38298e1fcb71dcff2c1cbd1efc1a68f7c40ebb1f1e59553d1bb37c89de78c9134a3c07decb4f195770e55b1bd580a124bb05791a403a47aab7affb2674791daa3b3118ba5dd460036470ac5b56d03b5e8d475b814e1328089fb0768c0dc5887d0e25afc63ca3be308d19aa07cd7029901dcc43b6cc0f951a2482032cf8c8df443fb896601360f6dcaa5bfb67576ce896199ba15b2dba4cb04d5aa7240a9ffb64b8380034436109cc791d688f0444d7b0c4b0388108f0e9cc88af3d6887ecfb3ad50702c895ab30c3c4a00d0d6b63b4710dc2ca2d9be693c1407c94adb52c9111661118200bc1f84df3dc80dc7f7fb356219543d3c4928665710d1c7799c9f527d19501addf47c29a60e876b845b70f9170ea13b4ade5283f6dbf02354397b17052eca2e57bd6c329be4ccebc7c5fcf13c1f61a7bdc2a88e20528565754e84ab1e0cd7ee0f5398b6844909f630271b887f9e30ec36f8a5eb4d00d7d2c39190e958b226c20d948e5504496943104b9fb99ef8a45d644ad15847c6a601977f66915b7142bd5310eb79321451fa669c6d017978b615ae7bcee1aafcb18fe6705f61575b8ca872a7bbe253bac4521454f29e2526c0d2c0ec74a23639ad83e0e4221065a5bb25f3d2ca3c9af50f825930cabdf2de45caa81cb12481b829ebfec8c6411a51467de95288f414abab9cf5522f181d3a81e7985029c337d29996d664e988b51d3c8a123ba42cac5dd4543cee78a73c289e2144f5382b7cf875079d3a98328c94e33394b37a46479702b4eb128732bc9956e6b8b243c5652632aa3f38a703308cd23f6103a0f96c9391c0f3ba3e5e9f5f47685455b4c15234e5a0e3cb260da68c47a1894330b7ec3d81273a40ea83aace035e68a9ee6f1cc4eac5c39084aaa8c8999a6a9e1fa57152d02eeaf8e10662233f71e8b90c782036d6ff777712a7b883583848093f716565686e6fe766a35e797f6070f0337f70d5be6e7d1d8c4171093310b636fd76130a6903c797eb0a005c9af212bacd1815daf0f9c777a0d388dcee719a289ecb1e2f5115b2954d01e2234f4c7928323f1d55e80d51b4297dd218f8293aab14c07515ad861f63d92ee8c970401030ffe6cbce41f34bb02cc72b9f1b4fb180147e2e62df55e8534f602f9621d239800ed35bf4ea1c92dfaf72d7d95adf0e64b91556e4e90df226a6e1e0093cd353ffe919910eb4e2a8a5c4029fbb29eaa1adaaeeff729f42ae45c922ad6d7c27e37904902ec0439853692811c6957ea5a61654438615aa6ae5070e114cacf170f0d5511bc3a52a214b6ee97505bad45db8d416e1efe0a1fd388aace07174163e1d67b78180555983b53aaa8b21cd8146647c58582e86327edaabeb101e8a2ce2a6793a35c0f062bf64a851b341905285cb2259c8efc19647a47c3c8f0f920af27f98a295ef08e10a233585c9f57d99c9e67d5fbb96f47310b8c429ddc4e94aa8e61b5f3a859e19f8cf92066b8e1724275d83a86573b39f707ec2ef5346c2f4c53873439abb14a5b524cf4f6c8cc6e6ad17435128a83c489b19dd4a062349addf582374e995e5b5692d783a4ed86953ec171bada22ca10c79e96c6ee5782e841274bf55138d3c725877b8f1379f235d0b13f2924f73741b96598b97b7d3e054d4d112197c08ccfc540ec5788c6f894cccf61dabb0cd92e220eb3f5ee3df26a8d42dccf6fe88b645a91e586cc0154a2c474d8aaf2596deae949efb8d5251ed424ead957107c6f440af1dfa49d6f72ca5b9494e49fff2bdb6f4b449f1c7e7b14a4165dcbc077f521214da4cfeca7ac8383c625bfd6d539f4fb3f6ab31acc7cc96a16a73f679460f99d827a806efb17d930a48fe54e9b18f3cfb94e64c4104bb42be94d7f5984d168a57789ca65c5dbc27acb948d11228231a71592a63c8107830413c4d67fbc05a729fa10749a106fed54b7435c0cfc626ce9f9263fd926e70402037ba325d5ce74940790f5472de23e6a50a30f299976fef0f58f0266f9b953f2ddb9ab75d2290ca18352da45b23767984f00c193d3ab4ec402ab87f2532b8955614cfdc9b01443e54ca2248a512e4e1a79e56983de5c209d6c377850641f1255913ca9b1e6fa146b66017b2fa514984e86cb098ee105b6b354282f3c2656c9fed7a0f0d5699d9a2f4b89e9091ecc9960cb49ed642d30f4d9b522950de4c09959b0a50e2c40404424c4d3e009c693edf3552b06b625b238ab862d600786bcdae727270902a97b5521b650665077fa14f3a4d9901fd4243bd7ca890ae82fc59061b8bde6a2e13a9806ea690b7cd0d5681e568f7203655f6824c0f2822a1c787acce99a6d40c42521c375853bafb7a384a59513a8f94398ae74e896607ed2b0748a9aab7cb14a25cd351b06fe1a55f1ea1187f5b299320b1e5b62350a7d3a81c3a47864bf997818ff41048ebc6687e830bf407df38c0715944acbfacfa1e59755e988547e1f835665c006ee417ee15e2e433ce65855e7d3e497ea73a01ec90033f559475d356f590ea00e003fe154253602cf41d59d2ea79fdb70d2bf89304af27deb740af81d61d0a9a25f3266ecac49fed5f3e36cefd6e9a9435a595e3a26261ebe863f791a2c7e82d3fbb51e39fdc70f78e7c618394befd5d3e810e399d5cfa2c0923937a8bf1e1bd274c356ff81c05d2ac6ef13ef72c12aa202384736c7c608f89c2df1b772c48ee4e84275e0cf54f81d4af1bc4685f2b4f350e59b64f12d93325c160a8af4693593f1c2efd0043c35ade79dcef95744d137a3eb556373f5831c838480ec40b80e77c486596bb834ed483e9951be30c6e081061bd927ced55479d5b74aef064eb13dc808947098e1fa9c9d3f06b6dabae209ca913b919944173214876f64e71fa17e669a17cfd6befde18c7c3a63466629256792adffcb7894059ae8960923e0903d75644ee6e5e89484c58c368dfaffd87725de2555b7615f78966594195a4c3dfbae0293b0401d7ce68b1b695c832b66f20d534c0cda89aebe589c8da148e7e067eb05d248113ac09c0944e42183e468af987407d5956972d7cc8369a3155f6eda986bcc8f00a5177b3dd79abe1d31f175e21c6a5ea4d068b697d938aa4a89f6cf93e1c023461834f755d407e3afe7941fca5693525bca8e5faab1789db73163da483b44fb3e6e3af547cbf35d9eedce34e1dda783ac6d98d2c9b2024f4a4c5a0683531939914a23de8a00b9575bc59c02cd0b32dc6da884f75d457bf7e3c56699e43326c545972c72bfeca24c6410dc924a83c07cbc0f4d2800e7df7d5354aaa0101e8019090710170aed0417b89576c595834d04967ef54822252341842f126a0dd0890ec50fa927837f2ddd9fbd57a0c69b08b846ad8f8b3db51409d15902e1a67b6ec310602e8c82cd30cf4c9ac1c4b19ccbc6049c189947a54abb99b074353255bee62586166a0bb8016a560300de158e702f2bddc2efca83444cb337e2e8b97412a7d8d014ce75981e1ef751028a3c8301a977512c82296d2c1b630d2b485fe00b175f9c3a73baaa4a15f22c3050dec52ee5c9a91a0217f6b406192044c1c549638fe3ead60ad0f4f54e13432a9053096776b8076021505990108e42ca92245577f510f4eef3d600356082310f88bedbc1c3715cdb4f7ffede90980428aaa0fc211cf19ca66f90d4150d85c07bdd87361b1776af9465e73e6b7032d3d17621b72534f204f75aed0300b9d18e99894b1808bc3f38a4c397f5485c6a1adb87074d26e9b5ea6fd7d1e9014bb8ecd15a24430483a6dde13c582536add2524488c428c7ee16b342ca9891676943c94b0a025df56eaf844849205a179bce66d2da0dfe655e238aea77d6a448e23a80ada3965de1b1111e1dd32a1711018e3271e37c5133f2dcb43cade221fdbbc164202100e7a3aff67defee61f53340d512fef460f8174aa30b451846e78a9ae1e7dcd1c7fbcd94039e5831ac6d2a2cddb65b0c8d3056d6305d786e4e3f536cc765e693ea66158bd4df5e9a9f583a8605e05e168a9e01f83e58866ac26f06a557c9b59deb88519d5ae63153b5006082e2c14e7159b65df18cfe63de51dcf16f1c8441b8310d92f2dec59c17fc053a98e61a96627e8e1ca90ccbf2419d88ecb5be58dc83f3ff3d926f40aceb605806cfe1f035a80f72115487a2e7d5f818bf3b7fb4054d4efcffc348bf876ddf9174cf933788be0bb327b2f57cb3ec2a76fec39b84ab693a03039c57fee53ec500703440a445a9333a062186c1ceb48fcff9000c9e5aaf5576f0798be29bc440eee2bb47648d3a2e208ada218e88ac5ba7caa360a73b20cbb729ba426d2f28d7e67871c689d15e81f52e4913c44dad76ce23680509c05261930ff21ce95ebf5b310a178435f7f3b2ea000d5f225a6bd64b6ab0fdbafa63186ff45a9945f1cf21e068e3f73dad12e858993851533670b9cbd15f98636be589cd65a0deeb9757e61f0a221d11eacfd78e9066d96a7f6f688f46c7d2ccca5996f39e74c453f2c8f9b8e4571d071f3803805b66868f84e7bb733c2e7819005539755029e411a07baee0ab4109ee1bc8bbf5cc896da9ebf1caf1497cf56fc2a00c8eedd91d5bd941b652211d7f02aa573001c68c45d5dcffe8334ade181f0699feac133ec8ccca1fafe5ab4f5d028ffa6bec49826a48727b98689fd463d9878c4b6c7ebc02b7ccb3112b21f3c8bfba7a73cffc50a357e018fe97b52197cc600ed3141861f1f9b5e5fc7d52723ca63830d2db2ef9daab53167839008a26f23c0ee2a7d302c14c98e1fc869089c91daeb3f49f280ce143f96d573b977cafa51553257f5d33d9849868019d66bf5b1cb1f58d59d08febad9d1284db9091f1b2b5325e1a15f7e1c56bb48d71bfa05b459a0a4be3061a260bc9b6308d073210bb5fa145fd7d1b331fd35450d41da8ee97bd1d84a4e563e8cc249b6dadf6c0260907d8816608c0820003b853df9500009ce7e33bd097c065a188c30f017cbf988384f1ca7217099fdcff1fb9a6d718b9b2af2091dff4e8206f4147697caf852e6a12187487d4e19f50982c3eeed9646cf7dfb49b1e969b37eea308c8ed016e858331115867370665060cb76d72c1ad1e9045d3000b3f2c65bbae9b3e8ff8c0d8d9a19fcf95ea2e314b6631ba1da094a0d3ba93c77de85f8fc02c64895ee1e1d467fdb9a9a5998f25c5ccbee4345b122b7222303ff5c0a0048654c2d92a09f1253098e736e43309893e6904ac654c5461da85a76035c9723283908b54d0cba76f5dfb7d140c32bab52028c4469c7dd051aa1c650ded18f40ffc974701212a3b362fc994472dddfbd1a0c00d9c43d6d58c32e7bafa535cdf5cc7b17309abb81eb8dcc4d6cdd29ba0492b751a918a63831342e5adb0a5787c10da56212c68ef0b170ead7f4394ad6d7f3fc7dafc8dbb3ef4134e914ec3efe792ab1960f0968db8bbb379c1369403ff85f8964c654a25d1228c420813220bbb395c0d5d77d7396af63f97cc0e0c4a766d34c34359f1885856c691a51020d40a7993aaa568c1363ba063dfc182f7e1401ce0e979da9bb299b8d9f95331c68644fe5124b078c52c1e02447e458b2bf8ebee8dfc8dbd8c997a2e18844fd06fb59dff127ac28e6f86da599f4ce2996f8774ad9588c6a45fc059906c8a8602a70961234186b6dcb4392620a9f6609c0645b64df6f2fb8c48a899543b44ed9f4d961f4a01089814f184b1e42b2de1a4076fd294de9360be77a5b373231faf40cdd38417cc3526fe6f09ed52fe2884f81981c985341209c1b2454888c3d95c97ed38bca11d482c5b0974c411c63aa5afce43d9eca93c1891c707c79c9c1935f1ad12276b48b3bc380f76afa377c1870c98a4380cb267304bd6bc4194a79f20b5cdd4676b3d366862f37286132b4fd0d6da8eb659a35249386413fb6e34fdd2a8ac147c19bee5349ff7fd8717781533d2a62b94cc555a4f585253e0c309e7c03a0b044d94507825d899f4e73de764716d614a8353c7a7c897dedfcc1d5c71feab455c9c230b002010a420412128e01fb19fa7cb54f545a2272125679c297fecab3319646a7a675681c83a14cce91d9cad30558cc9d5f84013448e0122db258f6f662f772d4fb9e53f91a7d7db282fcae9ae2766316d6b234b3b39a2ce728bb055453734e6101191eef7591ab54664d98c4d4a32fe4651f89391ff3fb48ee4860e5a6e803565b9514987f195424ad2c6fa8155a8b96f0b13cc204f49745081a25ea910d5255c6d6403dee7d4bc230eb54a6d8b7abab65c8708ab6e8479c4a7880b38c55af1a1a3b4cd98abffe8d9817e8aa58f0a7d72fadb52f7e2ef32099d78ee74daa4734c11c44ca865e91d678982d61838b57d33118bc877a1f200c5a7c4f65dfc95d9284004b03915ecd07ea7eb39282f354432eba8c2dc1b950fda42d5bc398988f98b9592997807e69b9719f6f31ee426ad1fb6246ae9b0c7ad065e5ca2ef9d38c470fe906d7af62c319a8df6824c6b62accc28a3231a6713cf0f4e9186145a5d3a7bf76b53ba132866dd79225229f46f10d7dd06a609138897d466b2cf938034abf2ccec01235438a87e953028460e91295e960809eb8d245b65ebabb4c7ca5ecaae42b371459606f4e9687ec11d9bf0aaaa736af4ddb77e026ead97500a684a018c16dd3d31e3cd4df0dc7f21c52e0873b6505e8960d1d2a096a96c44341e3e1781dfef35862f6aaaa4122643bd255ec63c648d78adb87f11e56c7223feb019b38203e79c3721c9cfc26d16aae3889542b34571fc34907a470ee7a561bf42a1937a19246669a026c28e0c186e0a54c5c6988aff6d00252d08baa1f0ff06f03149d3aa0c5a17412b825a0dcbc43202674ed4ef8e87d7a05a8d20339845d205a20389c5f46da31134a1a0f375916e9215655f6e2ec66dde2efe663b455bb3d6c5a4da896094d764c213a3bd1b7a49d770a9dd687e9edde89f1ab95e07dd0be03cb862061a1fcb9b8a9b7efcfe90ccec291c0d65d34302e9243ac9ba03dde2dfb5221bd9a0e103416047ec14d90feeb6f4fb65703a15b1831e193e747932b25e91945091e8f26a421e90325b5831ceadff1d21256ae48f67571b73606a7ea07472f9c9267173c1dc9bb428d162c437d3ea12fac1fd621d9844f7c56eac85182b6ef11f9deb94bfe708d2e591a5eef8a794cc3a71b0365d96bb5a5899db4c957e918abc9790d39ad7707bc0f96f3983dd3f4ceb196235f5cf82771f5bffc2878905e6633f0703ccd57715807e976e1d0ecb660b68a6e8e261d92057570b400fc76681974b4d5d89cb97c9c8f7042c4fe7095fe436357e11339cc469dcdc25d2707c87a79a17a6fe71fb4d1817f0f85edd1f2e203e84a7cd6c9a1bfef23b1af760775486446a2679ddcb73b86c293dddd8352468921018f7e3a33a4bae62f64cc3f4508445c2494f1f5110d0e7609b69f8105faf6f8df2fb92193f5a2fbc4b0eafff4b4f90ffb5f58db3959e33e267a032a4d9576d56003107e902e57cea7421636ac0fc305135ea74f3a340483b74adc6065eb23abcf7cbd129ff5ddcc030bf74b16a9491dc7757f9ca5b40dace3db5111f3bfee00f748044c3faee000b069b19c2854c8d8de9118dfe4f9bb2afc3dfd396b027580ee36dc3e83aa455f98974c0d203e3da04e7d725a729fa4da118da2f6298ff6a47a98af72e1fd5bb81dfc9df2fef27d8d35838aa5f2c83b6f2761afd269a92bff7ad3012699b7ede5585a65882d94812ed29f9c3a4e5c8696e386c4b1a8d75ae9bcad2d512dd3bb61fe35c959fa18b47a56f682d9ec114c3e37affe94d97ad2bd559dd8660dd37d301748d8d34841582410b6b26c1054f5ae8995c3b6fc570cbc2a3768090410ad790d9322e68a190db1c034838f55a7c91c1addb71a1185750ab57d2ca70a9122f1d58bed37313d499a3aa2f1785a5806cf11206a8ce91d7998fa9823d2ca773d603d2ebac83911c1fabeb736b01a793b88df8c45a053812d3b127b6528c4048d26c52bbe5d3eea6a3d5b52cd6aea55f1e3f0afeb4a62a7383c3d8630a00e773d3939a105e84c36677b757bba2244d0d88f04f410fa3f42395a027d4bdc1ef1c62cc44837245b443b1fcff599019a9fac0f18bcc7e3916e9b7b7b30cb65f9443babc5747bdcd77c2afa9f5a881a0f56794dfc95f0285ec8e7c1d9e74b77c3e46d24e10434a7e1767dc53e27b0cac542a1523ad656f280b327c9db4a9d7539af6fa71f4d480062f487c322a6298febdf7524b9bfdd9a5e1a55a44ba2b7350be4b9bf8e54b0f84d0b54c98aaae087b0a512a19ddef9fc591e158e4e4a11de1cc5af092744af4ff915aa5c5af9a9aa52374aac89032f32a7535a770e9de3047949cc9cd8c47b33a8e48c84c68340a1536d7b50423999e6a2fbe60e7b03b8d127dae89147b2dd0a48fbbe707dea9d12b52c22fdf2abf19a919da20cd2a4db4198228afcced980be3f3ff8d1cbf733d253b9e6ab450aa859ba73aaeb260c20292b40cb258189aac09dddbfb2dd834b33d40a59bea41cf9f3c225e398757748817e4b5fd9738b58537e08d6062944efbc726554ea1360f3228b1aff56b749ffe5090c080c529f03da0d2ac2d132db0b9ec88d8143c3f2055a07ccafc1bf4b76d13afeaeb61f91bf94b5b1f674364e914cfdf26823a479f3a410d84747650c84722fa4c340724d1869eafbfb6ab2d61db0bbf1a644a0023f7937124f2f077e42dcd7d8b7c7169bb1951fc63f36e174cfec89b89fcadc6e1e7a5176c0de38633bda0e8fbe34f667df518520bc2fb2b372b281f52cf53421fbd3ab4baa3cc6602fea3423cc8d77e9c625c7b97ff5b978fb67369ab1739cfd9e0d370ae41038f6e80278c77645f7d1c000b060b7a0ac1983db5d4f921187a270f916d9790befbb2150ebad671eb2cc9f70af69f50b8a7f11e9e08b84f631c2562490bd6309de4285f914b43a3b1574f6a7fe8fa6d3413ab51fcfa788c1a93037baaae484f05fd4b6260f6018880c634e894f26bcee031a28b415484dc834245424f5a4a3bd188ae6f58c6b941bad997f17d4d36576b7c9b9535eb879d906823615e59677c79d7e5587819b9afa89133ded77454fa4315557982b1bbef0f719f033bfb88774812d7bbe74f92f2005dece37023091d8ba727b76c512e7af4fb8d3110dc4ccc3b3c7d258fbc73bf1707d030d7cf71e1ae65dd2c26d738db7edc392a0690e15ec233dd06d799b4bab25946d78f069365a6388fd0cb0cbbc76e94f83eefd30ea0ff83ebce17f4ec1bcde300f0312ad7738c199cdd2110551181b71bc18408e4652c2e3171d470f327dd4a385a264857727fa93f7624508d2288bca8f5a66833f15137b9421c100564d9f0c02ccaff5074260dd1d98c9d0f9ddf4eb9c71243f5153b01a1abf3baf169d6306bb079cadfb97ec907248efa849f89ed7eb55ce3a06ead766e9a81d6ffec87fea3640ba8c2b96d1867d7188e5c9b50549716a3c31d581b15cc9c9e73bfa9821318a8474594072d33e4ff4c739afb89966ee5f7a4e07ee4976eefd032870e92981957fea353f991fb4359a9f3b50c9109502ff8d24b97c2d943307dbada7cdd8bb5fa5e669953e5a3a5bc25cadecf921d407a61c366c2dcfb834b15f2686c796d21254eb8292039df228fee9514793661da59b5894cb379c528835ebdeaadab1919a0f3970fee5be89bb0fd141d4c58a903ad05ca9dfb32d1c76b6dfd81cdfcf76fbbc8c513c0c93e625378e1f82fc647ca5518bdc26ac55fabc29fd0d26bdde0dd7730b6dea7495db3576974d3903014a7d0cee9f9516e24fe99e571e3a7acc97c59f50b41faea7302dd074b3b236ca7de219f377d7a718615eb9492636df78790671e9a30525964b3caefef7e72d41f08987cb00e816e183356016e22076efb8d8dd93d89e3569c990e639ea88bd591691e0f79cb2f61b39ecb03a4e508c7188d9dd36713ace720753c97c6db793b15f1833283f34e7242f8036a56db146a0d5e03323b6f6c6ee63d84b08932f0acbdb1a1453c1ffedc9bb66cbc78a1e835adb29c097d3ee47cfa2326cd1705f2f8baaf433e557cdf6a2b6771637a112aa23da5586142277f1a3468dcbbe6da19adf699787c2a368e1fa7c065ccf06b85e3d16eb0c8268dbd5e3804df5580b31193fbb2b9d9e2c4f3d0fb156481cdd8acfddbc86182358e398b90260183fc497e65d0a083979e58a80efeb373f79ca097fd0f264a31d2539ca0e3deb8c5936dae66ff66350bf90b8a4abdd19c327936b1bf2f4c7fab2cce688119e442ce637cee44213d757f0419d27faff9b129475b5817fff607237ede5fd2758539cb16ebe3ef1c49e26b5f656476c6ae8c45df2751fe5116f8643648b583e5ae4feb8366e94fdf0f07b6fe24cf2ed02ff514d9bdb3571d1c49c68cce974fbee7c5d88849dd985f0edcc6f9faffc8bd41deac4b757e8ffc11f17d652c549fdf5836c3ec1a69ff05f67f187e71e0dc010306905219419f3bd48625c4fd0a23ddd58dceb9e81673da2f4aff6cb32ae6f8ad2632054053f11662d629a8f40ed69cfb8b24a92fcbee4746243eed5230e4902dbc67a7792017aabdb67d944b8baa649885ab503f97dd88d7e80f76faf273ee57abc92325cf6d4e67abd03847028b4f2207016d1e5a076c570c5d272c33301ed51394b5ff2cef2d80e83a7efbc3cb5d1aa5d31b7562cf27ea317804fa8586528954434bb833744509f76867660dd1259f40165b88872c089028a717c566f649e034f28cf742afc52e0f818048705d026cd29527e4187fb5f01d4e02afade340062be18f4d46f3b0cc8f04aa274698164aac74014c4ca8ca4b6601dd22e9c74ce825dc2d53464f73a4d10943394f94b06c6035049e0fb8d2e9be4ed37479be108ff4e2cd02eb72170baba66f715384f1d23b92b4731c48ad76b3e717a7dd1c5b5ad328803eecf18babcb447160e8ca0d0c8d755feb07f3a1189ed9b8587d6dea8a5173bee46377e8b795649a15de8591fa79e1fc101271b3dd22439c481cf61bcab47e8450dbe9f897409f7b10b2fa180266726df67f404e3acfe5cfd8059bc0d83aebd289bf825944f8a1d285cdc7fd834d326f70d2147be5ed1da7ce1010bb154808504da27b7c3200bdb72deddaf5fed061f4cdfe2319eca6f17af5c0e40d7a25205ca324dd71a1b1dbefa5692ac73a6a978125dbad20608d502059528a7a4b079358b68c5e841d8b69cd0e74fb4b816ea378d18fa980ffbe84be16d85c34688bcb42976ed540494b40b6bfa79096365169b54899c07aa747890ad3cbc365147d4019bddeae79ed2af6ef475a06837cc1638579600f9896d36385c9ef814562c1a6f691e4596906508ce5a461ceaf901cba8c93b2ed92508b13526e5e690a5a99e467dcf575b7e11a31e99cff500df2ea3bb5a4eb439570e5a5e04c7963f1139c32e627977cc290fabdb59675d8b62aeb98ab990a930cba68168e67074720e1e9a4ca68a64258659cf5c5e9bd97c42179e668e11fa8c153f8c43d017fcbd9d82784107d389feea4e31a677b2ce802da90c060f7b9337424094902b7a380a6cb5b0888b815913715b846dcfe143fff18b31a916615d07180d8a63fdfd3c94b3f68b1a4b0354eb6eb5c3f279999e9899c0df4460c80c51307667935b77839e9d6404074a5a6fdc2d88b90a620c64e26bbc25d16ed4538309f3f97fe29aa4f4688bb4fb0f9a8fc7db4c0a74791486f61e53dc7246102eb4fd07117b0f80290ab2ae210bce6c48242e252f964834bb12216436e552a5c9400ec0580951234af6421e021c1911991ac8ec4ef5d9526f950fd8334813b0aa37c12744a3c40d4f0d5451d40f1a46eb810450a5d1dc1df0502994c56b446ec14d27d0340d4c972e373af4cff177f4bb2827b063ebfe66c0b3d413669d94b21345b3c1cb9787cc4c8262cb8369a9f808eee1506825ed0249d48d1b31f57955739326a92b4042c114cc2c1df67c67c093e80ca48fe56a3552d4a376f7cb9ee6ae17d092b651aadccdd95891cb6708cecdce18f7e09ccf04a3fbe60c1513bb6fc1faed5fb035fe8002d06be43cd358e66b6f9926bca7c087a8bdc934388c2e97719958ccd9cc2924ab7dc03484aee702fb9a8a86861f238e2f26ab8e3f6a82d64623d381106b7a1c0ed82e53b49829bbe915b7a725bee9b5d5c332d01b726e0a7ac4e91b01d5c5aaa944bdcac0dc7c908ddd274b1cdbc1be816776923e799f4723d00fccd28b9a9c927fa7a78e260bcdde496215b2ed16f4eaf0379885e5ec62a52781e7c3c924902b5a0cc2edba44ae305a678468d63c89947b3546d37d2392970baf87386dc4d7d6e4e99508d0cdeb2daa3e6e445955d6655579dbecec433aa69f3b96362a569402e948d2a014526465fe0d26798aa3ef91cf58af33a5b9ed718ca9ecf46a593cdbba724e0cad3c98eb1f4ee5b44abcc532c9c13a132ce1bbd05262bd145797eab56616fc35b707702d9eb4852f13ec8eec7294768b6d3eae87c96c3a4cb8d1ab1b3bb93730adfe6410c2e6cd970c6cb23e0e9c26a6d20f1949ed4b6011bd963d5caa2d4346e04d25610542c971e642e9ea1a9d6b148395cc4a55a0e0a314d22d1281ded2aa523da797045c547a9fd1f34cc805c574c5288ba61b297a51b3b7212926358adbb480a10cd8a1a462e4aaa35744707245035054556aa9754d5d04ce884bc0435c2184acb1035f66a9543040c5d63c1a42949c1a60e1ddd97f122388936517ca6e43c3d818291f9c5aeb70236dc420619de5ca371911f1a8b3ea52a8a92a930320ca65a37df21a16b0d01bec6402fbd0353ad43749da614a2f9dd9dd7650ecbe39090f2cd11b4da6a6ad25bcad8cb15aa5b542c8458b36d7edc66d4f7d16bd401ef8203122130915692af66e8b19f9d708a4ec6f66e3f3ad1ba171ae9395b6bec4a60b25e0255dc379d4bb81bc78e8ef12e2cf8ea349aa2ba9815af2c8d8b9693a0c85cb72d016f7a1e1b6631e5775ab720c54c90da8201719091a802bb68f3b3456924e81010f3e39b24be2615bb4a47862e4c1c33c1f5afd9af6ba6b986a277b18457164547a729f502680e4130761eb5a0353496480e1c839dd6a21ab581afd5a455953f9c4c396e684bfe14082d5141b3485ccada344aefc2b484dae3d7b5e8174e02b8d2dd10c30b2a57a8b57dd8e11d0a2787054604c1a714cca36414433874a730955dadcc0aec7707372a1b6d26b7524a297bec87cfd0b8cca71e059f7013f176efd00b1c005f80979c5079d1af02aab6f622bdde7d49af03ed58968f19f47742bee14efc6a2ca440e7fa7553fce5c5a2316012fdca284b55ebaa1216ffbe329684a8bfbe79c77f75c8b91ccd4d983d58c0275a2dd54068865c2fc59eb66c3b90f395858067c3d084b7c6bcf4580fedc1bd4efe3c1579fcc2dccb756d2cdc587e2c8fd895e46ba588c930aae7b8129808303f54f3fb2df2584c1f07e2427e3633883101ccbb579bdeba0f423f7977515a2f07f86c4138b53e89c011fcd2880a75224975138c3a7e039ed05befbee02d586e360ea111df69feb978c1b32f6a84b868914e1d9a2028009b624956ac3ff442838e5b4aa637dea375e00e7283d1d84ef2141b5a1757772486a15ec38c2d1f77362a00eb58ac1240e4bce83057eeebd23154d8f6a9d532bce7b66a4de8ab9171af8e6756e7e0a276d459cf0e79e134084e09cac64c6bbf7d54f89f543e8cc9674247df7b3f1a79862b0bd3297d11139f89d9da6165459fce4dc8961f8e098b681d0ae61d8f6a4f6ad1c5d4f44ff83bd33d5326efcd4abe6ab001d044d38e50e97ce6c0a187710fa4acab08de56c262d07cf50064053307b2600be869c099c5012161c9727419061759f8a1a6f4ad791a2f772b6b1a8e42b3591a32e1ea2fad2400326cd7c5b2cb485bcd635a9a5db6ec0392e6840a0c9ae66e1d04a4480c2bfc458b71992409dc121fe69e1a9f3af6d0af0148e346620dcdade953d30bd912c5e52463e6e06bc510ef2bf88b126e0ce581fa9e91c2104c4e0049f529eec4f36d08b876ba7099b13512c9efc5f390ee040ea57eee30f4b9b855fc3879f30a27185a39cfb6aaeda3bfa0a0713f2256ffd417de71b375ccd3739b7a7b175c4c3c06b6c23e108e20c68c75a7e6762b6b347255f31e461cdca7a9af0a8209fe9888ea6e3654cd432af4dc4441c28c50f43a20bf16113746426680c0ccc1b23aa19819e995e736de9c2a3b240fbb51732825280736c137e47160c3be5a9fd6ba5d054c16e50f25005300f1f58132df1d60606405bac72aa03851316f8b2ec4882c5d50c404f1cf1af62ca0a10c4b7f2227975da9fbef65b79120f21c1cd190c790c7f0113ab9f864ad835996950efa0a5b266b8a2434cbccab179fc1e5149af42269004503bc3aa850f5e8e9d6d9ded50e08ed27711a57c15ba55437fcbe55da8db910ea9d685ceb71668b4e3c12d4e55b87c148aba563354b4b3f12333c02509e864e99c18caaf5348a07251733166949299d853f115ef4052d5f1c9ebd3415f6c3b38af8878ecb3c2278a83132bc48a0161c27a1810df62102400c33a8246d05389a064012b6d90ba46122984f2dbdb38f9917770cf62564f271a019e3e7961799f350286ba1ec364322ff270a887641e7f78ca6fcc7c61d1791cb6b8864d3194e960f8aae0040dc42e35c6b2d671774a50f011a59c24bced70529c1f433a6faad3ccb02112f8b3d55ccdde22516424f175cbaf07599f3c80554f92c93c5eca3a4161b76b87132e8e5c762035afca214a54ac7dccd4b6eb5d2cd2693e26e3eb99471926e3e4ed245e0616937195485b8c3824bf0be30d842c2d55eb8de789b85087efedc4d2b92786d1335a5ba59b1321accdb3a67a31ef7125ab41fa0ecea5c42f6f2cfbba925e4c0a6ee20befd142f9aff1956e1d81b2c5c9c02f8d9225cbe9c47aa9f187bc074484ded9f8cce30ab552bb3626fd480febbf52f0f309fd220e85455901b858d744e86ad541b4c753d8b98a9858a6e4006b408c833468845b9aef7e6192e8e6141e837260c8c33055a158baa5110186c913ae3019497f97ac39af3473f5ff3fe05ae0d3f84e7b1a589f09ad5897b1bd76e24716ff710d93c4a8c10594244353a024dec0d2c775060010d38ae2074d9639d863b6203e4ec9d440c4d309102c70a390aa00a348e4621506f15e4ceaeef1f0d340bc9b95dabfad4e6530342630d32607c1183e5faeea1db01a132a6d47812819001ff42356e40a53c4db536b9dad70afe8584fe8568d86085f81cd4522e582dd4f630daa35bbbe2628b11c8d6cf00a30bfd8cac7dff34ca182335cd1c04881d810001f2e369b65452f7d29150194463034d64fcff108d31c6186306d6c8400bdfd38b24eb26657bc231494da92067558bda39245547aa8cc61f71d61fdf1d651906631763dbb32ea7dacc3cd5d993061266e2dba139d5f59860690dc4b667dbebbf9cfead4bdcd8b9c22cb6fddc6ac7188de5340361bc272bb3aaeee534eb2cfbd6ad8a33d63caeee721e9e27f7f1dde659b9ab99f353ab96abb36cd1dc815635d1dd095c559c4f4d85fbcd5e74dfde7d62ef6ef7f869bbedb85467d96a086b04c71d6d72b76b5eb6e9badb713bccbf9e775cc5d9c9d6eceda1fc4cb94edd6bef1a2bff561eca771ab43fed53750ffb54aeb33806c33198aa3bee3acbfe6d159842d9a9aaa2f9a76f261775b736d52455a3a26074952161741519fda73f2670c2efb736a9ba6baae0ad17b928dfe9aa304f9434ba4f1ecfa67ffc66724ec179d6461d638c3a341875d857eaaa50f3b892dbcd274c534aa96075ad61cbe3d962bdcb3a2cd4525803cf9d797998e6def54ea3362d6dd6e63e4d73ffec79669e6f976b168bdb6e64fed330c0d099ab7188cb50d63854350e49d959ccce60d6ceec153b136a13dd568cc88c2459c2a435de40ef78a382f14692f1468d1f6dfc196d08f17666cbe1aa9bcdfa1421526c6821359911e5755fa1a4cc16c2b4d1cd723929dbd38dea4955ee0905352a1bee96cbcd7c630d3d28f4f4a6b251e80f6eac91646ae186c2e447a11aff3dbda64eb3aff7f4ce66bf9d70149a60a481c28f33fe1c71354919807ea8b1568e322983086ba77d4c97c7b999d3a1c6caed7e3b058eafeb95c1bfa7575d7f3a918c3d8f6409cc111a40ea940b70f9f1a78b931c1d0019da51030920c8ee6cfdbf016213655e6ce285179bd0e1c526f0bcd84412b5170dcbbf685bffa221f1ff3dfe9940d0438297929b7f2915f1af26e2bf9a40fdab09d6bf9a98f0af263efcabc913ff6ad2c5bf6845ffa24971bd7c8809b874ec50c0f582e0c5e3f52f1e47ffe2e1e45f3caafc8bc7f92f1e5efec523857ff180f32f1e4afc8b8715ffe2e1c5bf7a18f0af1e3cfed503e95f3d9cfcab07ee5f3dcc7ff508feab87977ff538f3af1e6ffed543cfbf7a00fa579101ff2a7afdab08827f1531f957d105ff2af2f263011f0a14f5280234c28b80cebc0828ce8b80907811d0152f021a34ba7af8315ff493f5a21fad17fda8f0a21f1a5ef413c48b7e9e28ea21e7ea5d727eef92a3c1bbe48879971c19de2547cebbe4f079979c30de3527c7bbe6f878d71ca377cd51f2ae394b401cf8051af80104022140a6942f4e497a710a9517a76079714a9817a7b479714a9e17a7fc79b1cac68b55462f5631bd58957bb16a8317ab5478b1aace8b557c5ea432e3452a3f5ea4c264141118c929412f4e91f1a214212f4a51f2a214a917a5641f4407dc78e578f3af1c78fe95038a7fe5c8e25f39c6f817918d7f11d97f11dd7f11cdfe4514e55f4417fc8b68ff8b48f82fa20efe4574c2bf8860f817919a04fe5f87a823c7509102619a5e0c23e5c530bb17c3a82f86d9f26298ad17c3c0f06298362f8691f36218235e0cb3e7c53056bc18a68b17c5dc7851ccf8a218202f8a41f2a218262f8a817a518c9517c5f417c590f0a21834639500fc5865881fab20f16315287eac12e8c72a63fc6801022ed71765def5c59a777d41e75d5f14f1ae2fa078d71759fc7f022f2a4755b8fc5805cc8f55cefc780b0e8d55837ea442e3472a397ea4c2e3c7db152a96cad18f54947ea40245c5ea472a5b07510e05c604748c547f7ebccdf8f1e6e3c75bf9e38dc98f37a91f6f577ebc61f0e32d3874430116ac78170b83ded5c28880103f2290c48f0840f1ffa44b6c527ab1c9f66293eec5a6f4c5a62c2f367d79b12985179b6278b12987179b8218bab1c3b5a4e4c5a5262f2e497971e9ca8b4bfbc5a5ac17973eb821ea20127390098011c0bbc030f12e3051bc0b4c16ef02a380776dd178d716f9ae2d06deb545e45d5b4cdeb505f5ae2dab776de1776d61bd6b4bcbbbb64278d79698776db5f0aead35efda02e25d5b4abc6b8b8a776d75f1ffa4cb050800ef02c4c2bb00e9f02e4041bc0bd00088708c07e8d0eaefd2cae05d5a20bc4b2bccbbb4567897969a7769b97997969c7769d979971613efd2c2e25d5a61bc4b8b8c778530f4ae108ade15c203445db6bcd825f862972f2f7619f36297175eec72c3ffeb1013189d9a7e7492f2a313fed1a9ffe8c4c5e9cb8f4e637e7442f3a3539c1f9d8ef8d1698a1f9d04fde854060336c403b438f0a296085ed4827b51cbd58b5a742f6a01bea885cb8b5a487851cb0a2f6a41f3a2161e5ed432c48b5a9678510b9f17b5fc79518b175a14e04a60878e71898a1f97b8f89149e84726a21f9914f89149c88f4c467e646af22353d48f4c557e64d238866efc7f023dc6579e372fe6b1f3629e245ecc03e8c53c5ebc68448d178de8f1a21165d1cb75859e775d71c5bbae18e35d7e6cbccbcf027f80ebc6e718d2e1c2418c77ad117ad71a1def5ad3e35d6b84bc6b0d9277ad69f2ae354def5ae3f4ae35b777add1bd6b0d9677ade1e05d6b4078d71a31ef5a53e65d6bd4bc6b4d0e367a8c13d0f0e3043afc38019c1f2710c08f134861c0d864cb8f4d42f8b1c9981f9ba4f06393176e50c1c1bba830e15d54dcf02e2a8678171579de458513efa2e28affcf41946388eb799143f122f7f322f7e245be801781365e0422f02290c7ff13913ee0e879114e142fc2c9e2453864bcd8c3022ff6a0e4ff71e0807a11c79417715cf0228ede8b38b0bc884383ffdf51e44a63ef4a9bbc2bbdbd2bc5fa7f030ef8272242e00fd061c098a3145f2c79bc580679b12c5f2c2778b18cf26239e5c532bf58a62f965b5e2c4578b134e1c5128617cb352f96725e2c8178b17ce2c532d08b25182f966590a3e84a20011c43070ce140208d7d31cd7d314d9317d34079318dedc534572fa6315f4c83e5c53419bc98c68317d38cf0629a155e4c73e6c53439bc98a6ce100e3d84766a6c297a2a8095911206dc292aa2a5c80e6d434339dc701a63a3ced41456a295541d1c3a2ad8c2518021829eac2242f5746328e620c42684395c8458918bdee77ae84e7b7a8d6c21678b14fe9ada6a20df758b6eacac8358b90b415c6c216a1147d402276a3113b5f811a88e1634024df1811828823469cd020031d83b91c5d11b40b885f50ddb9417f1eb3bca7c4a3930d5599a4a5d6da6fe6d5c0da8ceead9a1ceaabaab9b67831a2da964e1a689e66d4dada267ef674ddf5454ef1d9af27435f70d9d02c6157b1e8a7885972b92442b02fd0e1a387442235a5145147626ac62cb4ef3784d54a1c3cc3a1c5460f9a902fcf8d1e7ceb7d0474b4fafd8e7e85f8429fafcff9d426b6b8a24dfd33bc389cf1e7bf6191af001001f2dffcfa78a4fd2ffabd99a30885258b18214e77e12c50a3a2ba76e5d13a5d5f65c068a41504401c500a01873e635cbc660d76a28a2a0000205d1cfa0917962489c249cb0e1bf9f79d394f43891b4678cffe7273a459b7b5448f5d4feadbf3d44b30c3b49d62fe53cd992d5e9f04c926569328b24eb62f5ace60c652fca9f2c97d254a2151c343134830a26c6d49131e19a51a48c064bc07e50c2cd0c3933684cf1b319ae6fab5b7b1123fafca024b0fe5fcd404d35c5bc7128b5af4da60e72137df284a2dc9ac3d3deb117cda5eea71da2357b7bc6d8e6ae7d0157ae52cdcdb55bb9b261cfff5bb9b2178bf39a0d6c5ec897ce33efcc27b486323500ff3fca8f353c40c39ebfb23b4ccdf5a67d4195732a1aa46888800623354bfc3d3a3a2a8f906c117c9e79872d152bbb3198d5ea4e833f9ef230561354d3536353e3a486a626c7a8e6461a36ff34252b64a94976adecc69060362ba329592137971b6aaca08ee1a04631cc9adaa7ae69ac6a6986fe1f0d9bffcf680d8d97bf29a7cd66382525215f9acd7033fc3003d60c3d64a833cc3e7dcd1cb65c45519dcfa95106550623670c80e6cc0a67accef4888189ffbfdbb75b7b0ceb0cb3eaf04479eed60e3596c97daaeefb6764484bb5d9a476dddb665757a0af67a72b479008b5898e3034f1db59cd664b941c71a225ad3010195f18c4c30b645e485f70fa177698b9f357aeca0cb456ae6e0cff765626aa6f98f3605a433163d5815c1dcdb8feaf0b0470810617707fe5ca363da52bff71d5b690450b28b4e0e4ca952d29f891852658d8f2ffb5ab6e94fbcc9e7d65ac2883662cb3f5a58aea5a99a51502ad40e62f8ed9d27cc299093ecfcc845790b282022ae84153ae835975aba8ee2a9051c1e9ca9595abdbfb6a7ba6928217291020850e5228ffaf5c955c2dcb4c060b3261c8287dca6d99ad9a7f19052350188342d30981feca9515e65fa99eebf03c41eb042e2714d9638296094afa7c69e5ea0ecf287b877de5a9eea1d954573ee4aa35b34e6177989ac3730c0b639c3eeb740c29e60b316538dab7980bc4dc307dfeffca5569e52adb945b344c993069981f426de65dcf3e6b4bf853c29bff2b57a5952b34dfc61284a9e6e14a38fa8df1d69e21bab5e53fd57d35b50fb705fbffab653a1dc1ecb9a656750a3c75180726cd5f3040bd035374516ecd1db4c3f3cc308b06b915949290a646c2966be347127a24b8fe3f072d476d2ecd11debcfe8de05b4738ba9cab5f061915fdf845cf972d3766eaf6ed5d0db35facfe6fca79b62f3f4410e2ffea761988b5cba7cd1d987da99eb2b7876e75e5298d769e9989d68737dbb3c52929fd76563425218da6766dd2683198d26f6725e44b21c809010de1821088feea74776d9a514c567688662d1b20c800821004fbc1023e48d3b52e4dad79378ac92af33ef0e1019dd1031a3cc08d5e12e0850b2f65bcf8feff12d13fde8958353341f956f53924a2729488b5bcb6d33e15e57a63a93b3c4f6b9ebdfec33d14adddf2cc68b65db8e8024497f3ff6f149315b6b21b538159cd3e182ff75b0708e8e0870e72e800ffedd8ca2e57854ffe5fca8f5c3ce0b2c1c8a508971ce316335b40d8f2000703e0e0e42008073e3610628373dca0488325feafeed9b74b57601493954c6b9eb5c30c94dda10afce9287bb5e60d77e8112456eb6ccdce30b6b20b43b22a712c762fac841db1c256eba8d83bc36ad726b6b21bc564657b289a2d8f03f30eabefd4aab97714e3610696f8a7d5ad350f5b1ec71d6b536b2897abf6c46970a501939630fe6fe79c4add96ab4334ddab1d62f59aba72fddb6a4ac392f3edd4fca3c592565b26ad4335ebacbe472d45ff57a7197cf13f9ef232609381d6676085f77472aecba2806b6a75ebf450c7d52c66facef2e5ff9a4fb8310bedffa7fc38d4f3ffb7cc651e87646240185a1b02bfe7e0d0e9ff0a0799c2377f63305b136ef97fb426b4bac2a3312868e543adb37daf3df8e6511e14be6a83d9179cfaffab4a8dc12c41c37403c72c3659c257b76ecc82ad68de6d1edadbdda7a63c38ae83feff66a0e52a901fd73c2b997175d229ba3957bb91b9752b8dbfdddcba2348561a4e8967a3e5b46e987fa30a7c13cda30aeb815628b8f7d0fda4fbba95b1ff18533c290a69142c626011f43726ccbf2b56ba6cd6f566ba187314697806356a75c7a511deeee6d6a13bdb2f589460198171aed6cd30cab195dd219a6dcf16c8034e8d7c109f826bfdcfb09d616c6577e52abad332e59a6ae4477fbbba773c1b35a244a02da05d46b41cd112c521bbe6d6cd6417636c79dcdc3a2bcbd62cb78e669edc9743790e28d4a68aee154baaa74c1de439ee0be25877ef1263630f0349eeb8b2702253e5f4ff547424f02a82214191c0a0187cbd49928fbbd59e723b62b1a93123071359b0b010c588013962fdf8bb9312ca00d5a76d420b6a74c6510d16c1bfd004396d7274a7eab8c9ecdfc63bb7ad465fa0d1d7c4e87bb34488d6448989d0cc47438bb1b7f5cf04c60c2c8212fc0b25fd7f0da108ca18799aaa656bead9aa93e9e1192c79bbafea2ec36ce7aaeda1db44d18c2fb644acb5b3de6559a77ca7753ed568786e9da937f054f9137bedd19112dbc41e29b144ecc65c45b9fdd5ecc53a42d2cd3a57d18cee1f378f8e8e9064474748b61c0afbccbc7b0af7ac53be436df676b573271a20d0e8626a2c48b688c5005b26785b258b01a6b1010d5268c96d6a0aca2ad98d5f092ae65eea4ca99eea2a3f6f9dc7ad9026161bb118dbcbd5cb5355a779ea62242bb3d8f6cde4c8f6ad7bd6c98e8c8059cdb61f21f1741a93e9d60e4377d01c9eb60c62a2daf2201de5b6af7ced6d15e528e73ae552ea6a4bf35457d1ab4d34f39de5ea951bbb25cc5e531ba1bca6270bccc1de6472a6a10afc3d01e6e08dc68eaa1caacefc7fd597aa9d9df5d0b396eaa9fb83ba56bdb19b6e5d769bd33c2575de8439eaff21a0e280ea0ad5d4e7782355122ad87f69673d338d52c078a8bcab46297180eb4dca97293b3dccb0f55ca6c8fcb3f0ffea8f5306d8c0804afafff4f7cb01bb8d00b626ecec8a959ededc6883bd54af1d416202115b5b3a5ae674ad9dba9db1521ed49d57b1b7af6ab64488e4a05eb2b70b27e8fa97a592f8618e0e23d4191c76f0200b54d3ff5baaa8a8f4f783b26f6a5f5f87186578a22ca1d555dd5472a813459ba096eaea46d78b249624a7bcb73b906b2e15d45038c7a5369e4d5d6d1c7de252410e9572533f19aabfbcd34b4fe8b6c29c5e8cee1c85ad69a2dcf6ecd33c9b81f9f670873addabd63d3b993a383ddc59322ea9ff7fdea1c62a62b1f9a48143dc5047c1583d8772ecdba559773b4c33ba752a506319e9eeb3352e35d451fa5047e15213a4df43519d85eb140a4d0ada15dae3542ec5a59ad094441895bc3c52b9de9494a4ae9984c90749aa384e8fb32f667bdece4c7463d972e7caa92a7c729e99698651d238b3df4709aaf8e7a8954950226559ae0e6046394301a207e3ef8e9bf6b1f8fffd630480300ef37e6bd7289712e3858c4bc4c4708387718913dfd3bb3bc243e345c307114aee4c9d3a4b4301396e6a4c826506c9025ac801d7df4e98e3e6eaebfbd465b5eb9ede273c54a8e2727a976a1398831d6bc7cf9c69e6f116fd2fd540e04fab231202fe2d946e448f483a7e667bcf418d9a5b0785a7da029e6a0b82dc77e3523cd5166893330973943047a5d9298b4f0973140ecd3e5cef1aaaffcff8c1d4c05fea24cc517392bea7b7eb46597094ed5156659439b1a59d755b32e152f8d18889f7f5ec349bed76aa77583b2dc4ad77a9c966b54fa58a8aa28a8a32391a8359aaa8285fe754962a2a2afdfd6eca6df69d2304148c311be3034b4ce5863035afea9e8494cbf59cf323c6f800d492ff3f0266b5ffb6dad315a853def840d10c1a49c618876cd1a74eb7d1bf71c43864c828e48e90030116892d3b126caaba97662430fcd366339c92902ff5bcd3554758208ff8821d63740a89148744da483b8eee1cf523dc5f8ced79f6126b9fbad16c4bdf4ecd387bfb6fdda57b67cf3363d9b0258dac218d6c195122af15570c79cd9b806ccfc53ae31c3c8244640a631b0302bb69573e54d5ddca87bc279baf4ea1dc21cacd5577a035352983955a9464c8b282225f9045ec14e1a048d365c2bae7a5d94c67bbdebca71bb31b66f14ce5a8ee3c813c9efeb44ffd7135ebf48d080d4484b09e73b3192e93441420637f9eea669a996a9567699567993b17f3fdd76249afea7ee54a987f56ae626a874d01d3fa7f0b9bfaff0c8319f519ea48a333465448a374fb5435cd401e8f9b683632b70e823eff0f419caf41300204ab916fa7d61ef813833d50a7f600997fc02ad5c1075c43fe64ed2387dcb943cc0c113e39c409480eb1578820744b09b92324cd5f5288d63585f8feafca512149ffff428afe8304d1f3ff5382b0f9970a32c2df54ab1cfd712070ab0ec871e00ce9000b0e38592fac9effbb72285da3dc6ead3b5714ad911689f54102f102c80e249031312bbb3cb2015f033b4806e8900c7821198880811ab65b97f227fc0369812dfe3fc8930be419432e70452eb0c3c711a48f383e84a40f2b3e76903e88e2900a9c53b71b219db1a9295b467575db8ce3eaed66cab72dc2802cb2f5280308b2c79b1e3cb2478cec3183e471048f218f289207022f39e44b04f2b56447a08f2d2d01d78ec4cc51dd7699c53a2bfbca1ebacbdc43cb4eee80da0123b7206f20c914481b49da18a918c9fcc76c483ad6b74d4fac9407453e221b91274a21c51ca44b0ad2758774055d4a48d78e8f31d92236ca343313cc66e628988d2986310ca675c3dcb33e392f49046e20110083c09044e0898e03903a00e97041c72675582175e020e24312f140128940125111fd2073ec21731091830c99e34a0e07c803ba380008f2804e1e60c3910012c70e240e1d8903ca902072e8cc7fccaac74fdee6ea92957135b5321e54550eb43e35036d6fb77b1cca5ad9c6d8a65c6631b6b26b725ff0c67bf6879a5b97755607b17659677b3f1db425d6d8f64dde1044de3053e4c91b48481b5b903670b001246d4cd9104903a238b315cc86722b8bc1ac95b975e8ca7d41732fd919ee1cc83337baa6dc660d9752ce4b775aa346d61022850291425590426548a12c52a8caff1f3d291423694c41d26043d25081861592c614394301e48c37e40c34e40c2c728612f2c9205f08f2bb904f45fe12f94265d029032da3aa0c21329020a304326863001a4385319ac410248699ff8f59d9227629ca16b15157aba8ce7a6265dd0a66b3b2bb754bd916b14cb6885d82d9ac0cc7edb128dbe3278c4be1a4a6d898724d4f4b39ab5a140f47cc48d05a6b67b6261b0e66634b30db6682d9ec5d82d96c2c0a66b3b7e3b0b2588fb265ac33d93286ea136697ec6ca8a35c357774dbbeceb06ce543155bd95df99063d0f7d69d79eb506e6e1d57397a873acb31b0bc14a3c602f22ce0840560b080212fcc3f9ccd469543b2c21c85ee5401aa0292143023014324804b0294061d60509b415983ccff1812cc86e3a6992d572f36b376c256d59d077156a6cf35c55626b338d5fa96ea9cd53b94fb54949b50684a26bab10615692c8b8041d7e84704dcf9cb9342c016974280d277a3ac7dea280760e100eb016607d811869e30ca8431258c1fff6f79bcf78bfb5063ddc0c8008c1b18455f70f1050a5fa45f34e0851d2f522f96bc70e154a341dbcc1cea2825e6d9cc275837776ea8b166b30e1cc690626a6f7ab239769e3ccd2aac1b353d59bed3ba9b76d85063a15dfce982cddf184c77e1fb6f7aaa7561c4d43ae599681624e85fd01d415aff67de09aaf2ff6f7350a84d948b2b2e807031638b365b686d41650b06b4b8f39f96338cad2c26d3292ca7724ed5d355f7dbe8a97d81b608b443201a02951068964517590491c5f9315839eb326b356a0372d9ccca643ac5a801de18603580054404a033ffaf751aad053970b57f0ef067893f6afe90f027e9cf11167dfeef949d85a73c19cad1ac7f6bdf1c08058b2258146141e4078c23fc0ce1e7053fdacff533f4b16e8d98595359243b5b6ab2b28bda90d61fbad5bea2d95ea1e7791faf30e10adcff8de9ac7d5ef1c38a3d3706d3bfb5ebd48a137c2a8d56c508555c5581830a3754602a701480875c016ef479f377a8436d57d5fd3c7daa19d468ce54bbd6e1a0463baab14e3b54b7093b3a3a42e2325eeebedef6a9bbdcb3daa7f6f1d2074a1f1c53d8f97fed536d96144d499b5bcd3929549f1add27fa64ea734d57604ef389e2ffbfc6070d1fe05f9f3ad4f199faffe773f4ff3f4a31e8eff05477696e0e76a3bca5b092e2280a4151dc3199a2d02acf338aa49e3e77d64e815acd67de757d9e99290a5fcf4e4b9056210e0a099e08e38933f7f70414270439b1c4ffd53e27a89c78edc9b347dde3f4ff57766318c37aba6dcc84592a02d021401601a0fe769cea5d132434f18489329890c3c49089a3259c58824c0e9f59a75df7bc846bd8f278c6c0edeb281fe6739bb2754a89028c51828224c6480208350908929881440d48b4800414124374ba02538d73aa50f78cad4cc755aea6d8ca32ba8742be02edf0d4c3829e283df68910a91121622f6f5bacd31588ed5067f98c02a92729aa1a958b4e1940d5008e8e88c2801f8f20c0115e8e508f608008236a30c2ca881a7900e5a121cfd5f772433952fb8ac1ca8716ebd468e5c329f6c630d6bfdcad99d7ded6fd6a427df274969067aa8b2d8feb53b77d5da73c9b2d1accc05b116cbe1721044f1178b4f06880e786870222c0f82bbb269a6f7686791ce5bf7316eb308cf799757a9e79c779e8131156ffffa88d0818117fa70f3007eb7ced8e198cef3859d99dffbbebd967eedd5e6f7662b0836dca9970de3d116a3b3b785c00820460e6ea6e0a003f4d4751dae9aa244bd6a18e421bea2862fcdf21f00cc1e61fc79086d0faff21ae104e08b1831040cb4d2186fc03b3f6d96ea4fbe9de6b3a4d25081382580a222908581037805000106a80b80244d35f9daac3545d751729c604b3e11d9295dd98ceda1de53b07ec186671ec866465d8e21bd626df31dd6c11cb74fb21891fbcfce0e4ff6fbaaaa96eedab1d52b1448810217235568ff2430e75ff74fa44f7ec03d2703dede993d90c07dc6a1d5e2789cea0ff4be70e1d32c0add27142c7ce116404b8d5396486464c3dc7d7db3adbf79c1eff17b8d58ef3f5eca33dd9528e03720c8883449638427cd8e3431e1f541f7a3eb87ab0e29164387d376f636c4fbb53538d71d836f540c281020e1e381cc081bd59627ce3c21ba837473c44c18399ff125361cbe354d65a3bc3311ccc86adcc96b688a5d2366f5367ed9e066e3507dcaad5bf8c6aacac72d432096a946f0a7630c00e7576d8da4129005604c0850068a51ab8556ccb8b71d8e2baba9570c3831b316eb29b263707e800860e2ce880eae02307218c8c2ccf44b3ccdacbe3980ae3181570abdc17c45676a1a8a65859920c0a6e8acd960970ab29e7c92eba31c653dd08d559bf9dcf6cea1fef6dc470a24d0c6dc0b439dbbcd8c86143031b0bd8dc58a3678d96c7764645d76465b8c47dd6cdaca9744d5676316eb2326b710c0966c37636b4b2a6278c2d70abd6d4bf3dc32a47d1deee18b8d5a7bbc332e0c6010a1ccae090010e341c76dcc0c55f8ce3f17ee6d55e8ced50b7c3616b2f6f5b8c9fa47dcf66381c856a20979954be9e9d525a8701b74acb9927bf61a86f3b0c53bb7dead629dbc4023179849b233e38027744f93c2aeb5337cab1d20d342205238646c0be296f9d4ca6b3d03c74f2a49087823c444584518499ffc7312453a65320476d2f71dfc98a6842e249001e3878befc2dfb89a7868788882888b8f32fe412818980808805eee0df6ada3b4b76bcb0f3c70e0a76aad869c04e0d3602b81240d41062fcdf98b532346798c531a0d6a1353b3b71e7e9149b2837f5f01c028621ae0c011b624888208428f3179b318c61420c050127081982d80a62822086806803c406ffd7f6ecd39dea62b38762ed781c7781b6eb61eec38caa2b47d3551d9e67564d549f59ddc0bca3699557952acfa2d13aca373accb19b2dab60e693532ecda57584ba8e53baea78bc8efd5b478ace9da743e62f1d27e756b3786ad5ec634267a8d6e7ef9c373fe7cb9c3da7e8f6fd64ee9c9c0de450c9a1c5f1224e1a7de66df31aa7880f837cf0e3439a37b50f13f8f0c3071c3df0e941ebff6725eeb3190ef7a004270b386de0643808bce973b536b5c692712818f37836d137230f7378e0f190e3a1090f3676e0b3030e3becee3eb3d5bff2eabb4bdccf1cd4355959afe11acc26d3e59bebfc0cc0a00090f91fea023005e566d0a79ce7e68d1b374edecdd0671deafcbfd541f8a40e3afc0bf32f873a396ce56035ec391cfddf3682de447b9b3a3cd559da6c6993a47f6cb0f8ff61e7271b12d844b026d09a19d65cadb177e5436b873a946f9c83b6ecdad43335c8b9f2320e5e7078c281e886216eb0e106dfdfadee5bd66cc8c2063729930db11a9ca8c1861acc1a1aa0c18a1bb35aa7f5cdeab44fc5ea130d9a0606483556a831a3462893e1d20891064b9a5e9a114d1c3461d0384133cef0c30c593358adc3329091014b86990c0d9cd9f37f7390204170361bd519a7334331e489014d0cb9181a80e10918bcdc58ace7783c27c412b118db221663d81d2eedccc318cbda94f360f0f142122f6879c1e985b20a3378cc70f9bf5df7e37addf575d7d5ece3670f12c4666b26e9cdb85017fefc5f17b6384aba30f5a40b437f555c0b7b742fcd2d98f99f6a414aae35c1021716ccbf250b36ca08a00c0865a62e8feb1303b3f6edf2892def69852c5688f37f31b65235279cbd3d897ac2d92754b6282b65b34d4fa0a06a4cf6c9d2edc96905281510a0029affdbd3cd77063ea1d9ccfc04d28e2059613d74f7d0adc2910a6b2f053d9f422d05272990b9f364c8fced319df21fcc0ed14cc6c97f8d8ceb6635a3b007052d9d558d5026240a4efe395a4361e8839a77429fbf29b74770276cfd1de6a0e552274c9920c65f75f776a78dd9608c933143c60889b9420c0962ae8819fa7f2a5bf2e12943b92dc9127e28414c09584af095b0c0d69fd816952d114c156062008323c1bc46b9149335d16c01cc7675aa654fe4085d46b88d30640403bed0f9727e91f28514818f086b44e889c0030076003006005b00f014021821b410825508a216175a3d68f1b45c208401820c204c9120307d00c6076a3ed0e083093c30c0fff7f59cb2322b9688e6ed13b5a65e2f8edd6e36234f567663370cb337549f32a16a8105301be67108acc640e0b56589dad2f3cc4cb688b5c016b1378cee7263d96cf66224accf9cb5572c375577a9fb7a6614669f54351783d96e5a59ca71c77d3d81b6dc1863242bc3bc9d51ed0ba69c86eefcf3c0eadf03d8bf973e9f815ec8fc7735f5e2f45e8a1eabd7baecf92e6f6a5db2ba1c5d74e75f078276b50ed2fc0fd16c6f075b3a70d201ecafa935940e86fe72e973e35287e4b275e302dc53ff5c922e97a2ffa12a35688b9e7fbb85cd96ad2d4eff77cb111a8da624e44b34986eedbab573c0630330362082dc40b8c18cdcc0febfad6970a5c14c8b175ae86859436a09418b94168cf233731ebab33e9932b0197c963b59b864016691ca52244b8f211043e18dc976a50c53c9b0959195aa6fbca046d53403b7108c90470a774225c2587089e008c161b024831064219165c33f952d62ada830c65af3ee8dc154ddbb31589fc9b8ba62a0350fc7db362bc77a80958d044a9090e8d501758faa831a825a815a3e55cce4bb145399660d5b598dec6b9fd29b3a90b400e90f29302dc272e7ffef115bc4def06d36c3615c652ff6f57cde30a622b13c00a402f8e695245992e446e0537730cda9da730aecc113c005f125380a9c73271febbb0fcf9c572cdda2fb07b33d0040d82348ee912562a96c118be448d24db23394efdbf474d39c32a181fea235d40baa0435fa89f117f3b8d5adfddeae5b7bedd7fbf1f8dd20cf27ce2e27fe53ab379672986ec52ae1c48a824523b114b083c18a81150642db870d66cf36d16b245be21815cc8691ec4c26b3cada14701efa6485c7673de77a3ac5d927eb8dd13ba28702d90bd3c3d253ea09f110c02b8207040f03920744e3d168f05063e566339e0dc36cbfe1d894b5b18e979aacecf69a95597cc33153cb64669a7d3059d7ad5d669edce229999d8a05350ab3dd48b7e2ae5b3bb6e8c628c63a9df67a9966cb18cd965430a59daea229711efac479e8ee3c53a783aaca777ae69e3e69bc1cb077eefcd3345bc6b29a9b9a604a269089e9f4af9abb41ff77b727a8a57669747defcebc5b60f7ff25eeead86c52a745ea7cafe352baa2cf838699ccff9319f87fbb516642e235d8eaff6fee8b9c9a9c97bf2b0fe52bafc6d35c02174871010d175cfd5fdef6732508f20a99ffbf33acb3b67af5e60a5fe1b012c78ab6a2c3821f2c48490b8a5840f47f4d9deef9c95eacdd06ee50dddbe736d31d248845f910cdc333a6cb7dc3ecd56be73e55a87790ff80ab3d7be8d6710c4c1dec3ba353c82a69aa78f97fd2aa0aab1facb458a15645ff9fa97c40a5099521557eaa8ca81a5699ff9a576acdd33cddcbe88ffb82165bd92d9fec9da280296da664dd1936770e5b1993d63c9a89725daabb5ecd9c9a735aa7bc1c8ecde37c5cc54570eb9d9fb6b44175d5ddeee89bf06fac6b7d4bba31aec2ecedff49aa3d35aa2f4fc5244510700825789352e79f7355ca96af49312205f67fa7044dd5599a12564d29fdff99b54e79b9a04667335c2ea8519b10586c3ddb8ebfc39caaabcecaaed63d917223f58154506ac81532d3bfad3e208104f70ab6926f5182a284f88bb3d9a8ec50c774f54e67a3a8441541290105029413a81f7fb1ca798a6ddf58ef5098d569a9d33386f179a32050811615ec90ab60e8898927119e929e20782a72cae384c6c9e67400057c285081822a140cf9bfbfa526cb51cb3bba2dd63007735686ae6756fbda349be130cea17c36436ddde21c9a77b919d5b5c2e129bbe7cd963bddf59b728c8d529d42c156fb4828244071020581374ff493049ab068e2816c42d354c55406131a26292493eb5f88b557ede9364a755f75aaf6b5021bd36baac2ace5aa2d7daa2e7bf6d9f3cc39accaeebd3b55db32d5433403750a5cf9b0dc5836a7a5cee9539773166bc7a13aaab3689ed6292fb7ebfbb797ae96864c8de55357abf2f4a9deda9ebf57aeac5c59b4564ba372b466551bfa9d933cb7f71c74e27302e49a7df5a94813fca0f1a1fd40c380a6f4478e34a9d20408a94484121725ae1444e906932d989cc0040a93a1d918b3196653122c40823347742fd548f848111b83a9397767f848ec88595e2498552d0adb1956b38d32d1bc437be8eea5fa07e4328eda7c0489f7a437ba96da0635aae6acbc63a27d2aaa831aedbd544725d949ca20e982241f11f489e0ce2d49125d04e41202904b62580280254b960c5d8c4dad2ab949fa240922891732c98f4c8284840c12c915ff7fc58a2d6dd903af1ba80414d7eba064684400000000000083100000201c140b876452b9683ae2d70014800159b6a868c54696e789cc2985902106810080800004802409009b28617614c99a6ad16a96b749b2388955cfbe407b2bbced21b0db669e7996ea27fb4b91597d29f7cba606efa1b4f5bd08e905bb3c9b4f7c76d9d5e46ce0f7cdf2da92d67791a0fc0365f3a9fba1e990c2929b6355f56bd3fc23e33f88fbfbc1b32710a197948ff4fcfb990d48e5073e1744a38ef0ef21a543162db4b8140ff6c5845f4ff94b8fa2cb83b28473e7696d31ae91cbc9db1b052484e8e5689343ba01435c603271e94b1a0398ea8bc7a6b3127f34eec8798005dbf849896714d431799f3712977efe81b926b886ffaf36a670488796cbde4f2ee5dd3b143ccd8f7f6d9946f6c11f6536c97abecaaa7bd76f721219a2d74ace888ae12df178be43bd68950f2806687e46ee1beaf06cedc9ea7a6f49efc72b69674b0a0e12fd59992431237f3cddc73db49ddfe158df6537a30a3b090685e0be64bd0c3078a80fb71a668edaf9df0016ef7cac2cdd61ef8b481684cf9ac21fbaaa9e375a82730a22c12f82b6196cd49cbcb76d04d25c02deb82eb7df1fffba4a9138f71ec6a10c643c46e7edee71e009c331af6499fa234eb0430c5d9309a5af645339e7a3a7caa19679dec7cb769f4cb2a9427f5ae9f2d83e4e044a5bd79646f6bcf1be36dc56b0110f45b88e791e1874b9ea44803f3c4c4aed700b1c1817f633a81e97bb8fc7095ea5ff9b06c3f603a748734a9b3e10f134c94c2435d53cdc5a6931701704c129285522333496b90059234969158ca6eba2fe427953c6c675f2107a5825f2fe0ae0306d79bb9089d4c15667c6b389cf041a63bcdaa00b775808347ec30fbbd564abddb56599dc627a4a6dd0f8add0490de1f2b9f3cf25d286f4f30cbba3fc5bf7b981500560c254594a6b7f840b078d8a5b85ebc9119744705ae7de4c37b47f9393aa3028df317e9fb448871114c67feab0efab33304a3e36ee594882c6c4aefb3b11ce6f7340cfec569dec3779ad271327a73d386dd097d787e41d0600cbb35ebe0abe96897dce02fcd4c9a689b46fd675cfd8cf4ed99b202d97aa1e62d75afc8831ff3870d1ddaa56479431b875aaaf2e79095290ed2755d918cebe85162612f621d7d4bed9ed314bb1793fd5bd13b60adcd07f8f7e53b9b9e5fedcf44d5ad788709c055f449953a4a564cb1a4904ea3c6c629075ad78b256c36467247a051cde2b77c7f31acd1e3b813243946dcb35180f2d68e1a7a482e55224af1c15e04153e2885b871448bf64c3f2e8611e71252121364e1c606ff780a283027592022c5044397ad07feffe93d8ac89f974b57a6422ded351f728884fb1ac74ef7e54e7b43ef7e47cc4b7cd85eda8e65a0ef2dc12dafc37364c724e0a8178ed955c9a6adeb8ff2518ee68b47838bcc7ed91e452037581e9ed3d011d660484edf24e5dd9821cf739347d041176d60edbd5461b12bc24afe58bc8111ee1854331775be9ae511d9271c4dd3302807658386ad6707fb6ad784a0f3b6bd51041dfc6ec7f9704e59c3a8fe64a7c3ae68b24e7fab466e314a784c762792f5a6753e788520304e606492dbf0dc558fd5eccacb27d18eabc1798cbb400de96f6a95342c2a9e9ce1cf27fff3e79c00e40b57bfd97c36b2d4a6b3d39005a3ede4fc0f13a40de672058bc8e6615ad09fcbd5fca52d16e29728b27ecc0c7dea2fe92e0601224338770444b465305a8d04ac20a1738b85ffa24073b25db38a4b14cd8b72d38e00c81b0620e0d004bbb5fd359eb7ca0edfb52ba6f0016cb97936ff40dcc1e89c749757d4e9647c738bb94d677ffe793bb61a75a5c553a21ecbd78b8232cea78adb35ffd03f71df7f05ba4625bdac2f1a463b42dd0abb020bf26d8abd1be97fd790ff826feb4a91d944fe66c33b13c8f0f09d77d11a8a0234031803c6868ec1a9bdd35f134f998c7c6b7fb4d2741a830160d4ca93fa3b93fa481ad45961e9cc96fd9cdc378ccc40f16921b42d9d352d72c276db2574d346b367eabe73e498aab7382b1c8041a85ed6d14f2a0a7b176d5191b60c3d71adf1e7c2aa5b5f9597763a5f328ab15691ac53117ef530ac058eb81b13e4412fb30cd4862cd0242eb79e565c64c9a06b1f8275ebf8e630d89d9d8e5c796a62b3a0ff9fea1416935736f88f379d3ab84fdfe260d8ef04846648b8f83198cdf034d24bdcde0ef1423b7abe8b1065097df0014dc59da7c2389fea800001ba939e9bfd6d91432484975086a33ea84d497d3be77707f9d63899542894dbe7f9f2ade4c5f438c1ece46a7c60d002ec14f0545ea76dec26cc6206c098103b2c6cf7719660ec19aa783b3b7e90dfb81c2be736f81a1feaa1e799a9028388caa1aed3d1dd1441908f5537a2e73c76c047afacc1de50a0e364ebe8cfd25da07d81d4b7a94c72790e0426eb833d00dd2dd2318c3a28e44d8057abc7bf4fc945a9aeac52fb670e8ec26756b2e4582216939aa12e87f973d4a29eb81fb754d177c1238b1e1fcb8b398d1bb32769027ea165f1584b33969619085623b7ee130810543e088d1b09f62f796ee6d01422289138174c7703bb481ec3bdef8c6fd1df2b3296bdaf16ef20c953b5e48ef33acdbec6e229a3d5dcd78efe5a7c63795d6f3a09ad2ab7de07a2e130f2e571d86e23ce215abf769c8d33066cf5bcf3c0c6e2719544f46f06860bd93e9ddcc6006f93d0ce9ff62f23660e4faacabd16bb02bc9a8148530164ecd3a9c8cc766d5d4d4dd866b33110fa6387c42711602d380b87145f1a163e0660a9fe45ad67d98f60c2db749b7dcf0c7c488728dbc97fd2408e576d5495e9243b375e2b4c6c63eb63152dfd5618b12ab5784c265754d10afffefd6f396dc2e7407f139c44d3f55e682ef65277648e9c20709058c268551e87fda5b0a46ad61609d67f079895f9446070379741f4803626c8007efc091860ca9d8f851a2b91f5f365fac7874d515f0790bef6f74a36c061d76a992b11309a02954c189f2640d1da1c163b19b11d95efdf816f0a64ef9e74565520ee91192bc5090f458b90115efa00a7c4eb79c5c3f2908c4a409782c9d0203082dfa4569ab00a7254fa1e8a05fe59c9c3ceca4c998aa855e1b9f726ecbdb2e507a8b2bad0bc0522800ce1e3d5deba32efc7fb23334ae092173fc6e05361f6ebe5171a818444f9e18125ff59214748ff7b28682febbcf1bbe10b8f0ecfe77fdeba3a4af0cde27c2ef12f81eee8d35a0f4c9fb07129981eadb5add17fd3e62797c37a4ae39e4e0efcbf4326e70f1b24e6e98acb50d86f1e1010f39fced0f57b9f47c0c708d83c231b918246b03ebf68933f9c1240b4f1e71fb5c3b6a739f1d8db49a2bee070c57fa72f2bc28bb6c623725084ffcad1fbde900715a6c1f148dcba77ca366d1d7f12166eefccebe8d1ea751f5b2ae11b073e0c2faf9ca583cf54ea78e883c089338de494e511a18df4e69f6dcd11de5e28736ede42e53e8630e6c4126c4f85027ccf4cc141df81cea5ad43f2b81bf3dec3bcd35d115cdec423d5dbd771cf88e7c31559a5a7281ac7d91a31eec9c0be0019fd526f42946096d46989094db5245a6c68f0286692bc0884172f1e3e09025c2253ac644ab00b3f40ba834706c5c408c47e9fbb2d96e875856f5cd00d2929b3d8998ec1307425b90bd68070b33b55f5fbfbaafd7768cc788e846d17cbccdfeea4903ced1d22fae8008024022137152868d22789b2fb22d7d49456a6a1f3256c737f15af01a451e117d3e0df0de8d26792997eca3854ffd7077ea7ce4b76db31d9f723b5bcfc4c84e3bea481dd050a02c129b8db770429dcb03c8073efb260eba9b6f75b5d968134645533f54846bc6c7488d0e298a419ced7397c8754430e9193030aee765f46eff7f5aa4dc4725eec697bbf57dec5fbe21f6ff4eeba7a5b41f5c481c8c3d394ac07a512eeebe17e5e865dea6ebf317375b5f8077f17bac1b8cbe8ba7a3deae06f15e6d890752270e54dce4cc65b774901475d9cce2eb21b7eea42b07fe2e4b48301f65f5a0724472c6d713922f9710f13836499c6748c25a99a8e9881d13ea277b78ea44cfe8c0cfdbcb36983740f100557930f8713e62d922ffaf17db1c34c77124575bc1232555ab0dca3645cb223c003a4c6382bde02fbb9fc9794f3d74de4b8b0ac085e47570940aa9dabd78adcf7aaa8311895ccca05a52a39cc7c752fb0a921496ff228a71167ad62ff1ae6e3a8d14383e2ac2f9ae00e421d65e0e240c0c4347d5384d5403227b455447e69eb60258c9712bf3c547f953c9f3e756a4228ae4dc0423ea52f946e5dad31f13db2b9dd1ab762b3a1e694411d2693ab5398a03f638b2aa22d6265ebd3023f374a23e5876b1ea9ea792e74a0d3f58d3b130499d49978f31ea85ab1445d3932826ae78dba2de39efe2365d23f42aa7b4b7a555c961ddebfdd5cd923587594ab2a086c6bedf6ef71b34912fa87ab59f6964ca5d261f11f21286d77b5d385ae3c077fe53b8e6399be4774f030c3a574172c90cba40303f6c84d43f925da0ba17fea9e122970f61cfc38248bb38b3cbbe83b5954eebb6483f9bdcbfaa0a0f7914120df87db7f7264e1ff396efe7f77cfb2dd114624c3bb9f70a197371cc47acb9c4fa8bc3e3b31b36c6b2beae38e80d2a117ac144a85ad4a3e7b188955b2b7e6a8d969e0cbbab16046ec67a0a58f23c39c2f58525f47266f8f2efaeb3fd064a39b6eb9e0c8419e6ac22b800672addc90f75e2281d6bbe2ca0472338193b70fa0c123a7671c13137d3e81586db97ff38de9a608e1689f01b0640908ed2f1cc2406739f724807505a777389d53b4eadb8c571d3a6a7847fea871a1b36d3456c7b8f719cfff03a3fb60ff69c4d53b1e970a74ce80ce7ebaac53da2bc30f69611ed2c22b13be44fdc208e4f80dd0a7c23e760a66e956f5830810301d365640b5b6044e886c5bb0b931e1874653036513388562573902eb897125a787dc678e39280a0a9f3a2131823c03cef8fb3714b22cf0182a61190251f0ca7fcd7403455ff205d95168b1489bab52ad8182f174b1810210e988119fe84aab4c2cbe065f8d8bdd3d327756df3acf0742d4e1142cb14123f1fbfa22e09a8c9747d4df30c9973cb4e1a7198c89449e49bfba00f1e2a26bc39bcb994ae3424824c2a80d806df9be859645d4d87bd98f4a3d929af57580101cfe6103d0329e7366d2b242ff7f37b56711069158eb9525673546844cabd6ce17a9ac02648d91f1f1f4419d001d8923ae2c84cefb71d491cfe86600105dd17509c7a978428af9a7db80494d914b965109e1de7e5afb83e1b543baea4aa5f6185470e58173d578aa61deda245c3c2e34852467dd66d3afaaa3f863fe6c720f2bef31dc35a83eae69db6ec426a1c58433f6c79d2f76da03bb60e2f14fa61bb8bd5eed35f7e64caf92be379b238ccee00a5d16092ff704ec1ee9a4ae6f5fa584671cf5896d50040a2baf13d5bcad64f328dcab7d4125122d98f624c7a159b9d83cd579a078ec06c2fd10ebc042c130c681bd8ca089fdbe43a5dab2b55c7def9f3622ff1fa2d820fcafb58ad6b0fc25c39ae8b6f845e570afe8377a8e3ff033e01b7ad6a92b5586f8005eed285ddfac3050891fdf829e35927bfed01f470e75be09f4da06e3f5e47d811a134c283aad0c5d71a813e88c9ba95c6212ed6b1b11271248f50de768d354061a8afbe4811ac7902d347a85a2ffaa6e1ba1031d7b24b92e2ecad38c882f71e96f1dadbbc76f9386a1155d5fb119c55ed0fd1ab1b0081e59a099d5e8e504d201cfb7376f7a3b06121598b8d25f76713c65fcee01df0a91d1debe0ddf67df3f431223d04fcfeec1d1379cf49b32b006cc6e2faa64c26caec4cb1b2a935258e3f9a83390a1d1d155d6c073c79b37f8d084f73f1d2005d73e6f3a3602dc329798e8475cc0a42593ee53d054128a7f2592c8d339580b038b6581ee3ac8ec99631e2eba99966632e413b4285c2b1fcf86d4fe8eaac7f127ce801312f71c1e2c873e06a50e9102c2993d8bd337e81a05e44592b5c9f5df00f0f4d4929136a228d0d9a1de971d82c59bdc6807fa40d1468e37d82d152bd5b6df304cb8d304a4aea25706b6142fe27b1ef414e6f5e7ce8eb2ad732ee6c7e0734836c37e099ac079a503c5935302b967255cec3adf453213887d5907a4e98f24d84e95f93ba60951dfa3eb2a9b51668ed22b4920e4ae3ff0712df5efb96ed39e18aafa51563ef48de8bba5b2acece7d9a9780b89cbab2c9d743c60913640950ab901f60e5f888ff2e6b24278fc686f1cb6b4ea85fc37e384c0d713cc0d6162d2328560ab080957cfeb44e63702adf7ec873afa55ff0c5e941a9e5fd9253501dd9841a8e3bcb222119a81aa54d78fd21f9c0ff22b25da2dc3e7d23d5ffc9e505afd7b6ad2bad9e19985b20459204a40123ba411a19951cce4fac6cbf50c3c1b57f88b162513bd140103343046a0b573b16bfce1db70ccfbbbe435010fde51a902c4399140da94779281c171a8ae34831a4694331c2c5a5413a8526d121a47512556b456cdb8d33aeaffd2f9e1372a8122fb5113a51940d1e3f3b8399eecbb24f3b33361b1f7c823517194fea8a18c9ad2c5066312d6aff9e4440de0e3dd0541fe0e4402ca30630bbdae276d0eac608085652a4eaa1ac93ba3398f2c31a9cda01f9691170f8068148b6fc31a4c8d60e88706971c6c544901671fdb3b64eb498dd0f7480993d10e14b77f18c8af4ecdb76ee5cc73c7d3ebe5db473699f0bc66997a6ad124bc3d2d764ac9a3067a22c0966e8004e2cddcd9ece0d6d8f6bf231f982e1da5809b3b08f4ef6fc637042c3eaecfbbb5d8736fcf4b16403016069bfae06bbb3d25650b2c202e2d4ff7c83166ba33443754bab1324155ab0272910f866f72738b96cb4dc913e02a0983f33878fb4f8263be474c4ba642dbd2598a2bbc25cf884544a77dacecd46e0934e60145155a6c5bafe656c4f9b52e6a3598c4180dd28f1baefd7ecad2f4ae4a5e97e8ed4fc375a6326654dda41ff5e208da402981d9df48bff045f03d69df5079f0cef17d64d1ac278422c900feaa3d6d08bd97c0f20e43a37be1b6578c881d6fdadb502b6a277128ab7fabc09f0c00fb8ea63ef01e6bde2f2b2795de5d45c9394305fed40d8f31bfedc7d40e09576050aa9c54deb0af2cdab3c3563cb6de8fa7e95f467a1a63aae2e2a0f38d4abe22f76e9af9c50def84c4a7a96120c018f496ddc138684bfd7d325661e6bc2aa418b32cfc45a827d25c419733c4ce5a3b8c497ec3f3cd783842ec7ba11fe549b23c179e7234bf0e5be166e55db548e1b16bcaa3588fcfa36209984db2799998ef8c2c5e974eedc4d85a4a39d632b830bff773618d325bc58f3aa186e921ffe08df7efdd0940d268c2745f9b26d2eee212c1d6ee9705288833eefe1d1f608e80e3ad9320a20017f94dce6c9fcc76ba127241fb54ce8a0965b585efe1dd053d4ff70cb8f2e48da08f24db47cf4c933fbc80069f7c3e891675e8fe01ef14dc4fd5e4ec1cb460b8d8753684baf23cc072b1c85983c00b82f2a9ed9ecd3901e4ff3934bc7b6e5b8ef79cb4323262d34671f2c2d91561899060120af50b346ff25a0653816918ce0ae1b88529e9959180f53598025a93c32f076a014f56af4fe379a6b98ae86db417982345f21d719de7193eb2484c1b3c9f8809518d33216a8b30146d081125bf5271fe864492e05bb2404583e35f7e7e1e13afacb2f76a6f8462821574938612e47867d3dd8afb5377afbd433d235a923c4b3dbde6881b9cda72fe08123edc9fafedf55072a6b738b201c532bf9c7b858fac9f6046040dbad5b01bb16f108a86673a94bb3eaa7e0a29aa6ee768faadca7b4dfaf5801d1968fe16f5e88d031c081c7760b582b9f48fe50ac19af6e13dc28ac2886768372909a708f6ac2894a1f28d376a426f2dc1a38fc96f8f3c4fa96da8580b99a79e9e0be48d5605f94bf7e7d2b386756d659e4b4f19a7f3a8568a743149d6a07900e36f55eb541a2b0d70eb62d0b610f68b95d57f6491c32fe268b196a7cb171a46391e90534f0f534b3abf2e4d4d3ca010d58c9fb53352cf9ba0fadde1defaa888db193b6bb0dc0905f1e297e9d09ac4dd8298a91f592dbfc4bde95451e9818a5e6e131c4fb14f98b9c78378d6f2a0ed8c0ce53e245c9ae9fdaf94377219b2be4c3e5be8311f573694ee97beee7db5a05fd5903de4802f63fc103810c8ea8c4ba69a39eb57c0c3d1acb540577a396dec342bdf5fd8a2faaaf085a24e4005d99a25719eb2cd1b7a5d33ac387aea1903734ae106871f67a0239f4d2800c39f35b8299364a526256acb57383ed50e68b6c79c102b8228d7a67f71743182058d7fc9ca55085892dfd0796b3126d47e1db885411b022c24630aeded9ef62eff16893812869bd0a4ae1078d17cf790e528c7b0bba3bad64e2dc0ff0b286972e439f610ca3f5476f12f1264f40ee05478662f2c8f49fc024070e80854d74c750e7c0b2786bf3c3154d184fb6b3de48d1df153cde41149c480e920588dfc9d792e52de917ddcf1fc159a8c4bcd3b1b8d0e190ed3c262a826bdddc3eed21f61c162dc7f20960de643a4f33853f5a1e0dc16d7b9b6ce8dd4728c99ef9e0e672dec38460e7d6f580f2ffec38efcca576e42f7dcd388ffb52372b910570644eb68a502ce9e86de1f333a68f1e40a8c495d2e9af0e301cfc286ee2b7981859b47af9f1c3c8a96407be5f459c2d709734385be7afb04a46d4ecde8b4ae2812d64e2614d6c63cc7375ff6c974fcf83d1e1c6bda5dbf4daa050af02e9e8e25ecbfdb32c5fdcead9f81ff7efeab9e7e35cea33610135629c3799be49e36b4d1db33dff464e14e0d3e1adcece50a8268986a202e1cb11ad1348ef2d00d9a9bad68004384cf6d9bc24b07f56bdda771e90e2c6722adb8cf40fde22c5c7efda7bbea4861a21de2f95b0e9d3ff00da322034c1355e57e7f0833d1520b1aeb900e37a9ada8a3fb2f2de8e0c2aca526c128123221529b1a9273bc34d07741024e68bd08aeef13a107a4560e9c33b49aba004cdc3f23809c93adcafa67db7e48fac874379ab04a6b95c0e2d6855d6fd9ffd7398781d13ac7355ef18f3d39cf35ed79ac91c8e86e10ec1ddd48ff3eb22e4276b2e09b8531ed4b60a8585fc95f0108af0a18021397644eae7f1c234fda439a48f208e86e8362135285f7a0602b81f373c0db04b03387c59f188728979a28f80a527755463257e229e12701e414b06ce63b00d0adcfc98e7611f2eec7d49846427e9c0840c672f5e1814a6b6d69db26f39791aca298a06d042ea4a1b471609ce2e0126118f00734cceb98344bfbaa8945458c559644ca9f62f4184278eb1fe0e3a2df73c0f021ed1c81277e411392692fecf473f5bd60a19e84ad4d9413fe35c808f60e84f3b1ac7b21071b0eecfec034557adf09948609dd90351f00f850dce221202ece4cc0677760231978d4f1b5519a45176991b34c45b2ebca4fdc164d7867e592b690f443ff0e0085f5c872c110f1a1debe433f90ae18b59d18d561a2744a5813a6a61a75bc81eebd894f2e8f124ad55de04aff91dac28e12c3e30a547ebf143e7c00796c67e6b47a93200d003af6fc2db066ba8e0284a0155d3d4e20e998cf3247ca4d612c181a7a521ba811f85c0326f27f39ecee17fc01aa0b6089716a42a33d85dbcda9cbafdc36aedae7395fa8b767f25867422e2ced9be077e982f0da3f009f1be8adfaa03ecb1d3ae248ffa21ab6fc6145931d18a75d6956184fdb229d4c0442f864e1ed9a8fe5400c8485d16f0183978e0e6974e804cc2efe7a69a417938db611d8ee6d7a665b88449ea27de5d3f9c87f337e3a809a541e2254ea0052418d5fe2add59320bb0913ac944fe2de53567af711ae78ac8e6601e9220a9f7f9cf8f2f5d797938f68e8aad44219de40b47a842f3f8a9b0db8d410a4a57edd66e927674029cb21d2a505cc3651521ec9f7afcca31b6a8f92c19f5ff38e469f118e93269208a5bb12712b930e4d45e87931b5681939caf46d8348737d24e28d11c6770f905dbbbf92ffb5fc48033ba72b8b54422708c9dd70f737c4b82da661dbc4c4b0401f2329b7de04bc0206f58bea699ff96cda02cd4c1d50343477ea039df2adee031726fbf262d4feceedbf85fafe42b1a9d0618be1c56a671faf3beade8ce4a1429e55d0e2a918663cd325d1d8ca3f8b75e3676bee259042433829a0674606333e53207d16699993ab0d6528b89e5d9c6814beb0f3182a7dd3fed8a3f74c1ff7da98726223add132b6d5819c9d1630e4286075f622d38b22fa0bfa8cb75d95c5658ad631f59b2b77c5b8ee6a2940ac0b45d525a43f10ba44a8793b8f7c875b3646930321518d2ea1194d31ef877fb213b981187a12b1796748e38ea502c4dae20bc1f6c6f373940c0ec72cda1681601cf09ee64997d21d943ded142ae2436cd7a2150de3f2617d3a948a8097723e33938f49c6a78f985d3f8fc9fb03ce5a25a761b33ae30fbb9bd81c1ef68c3c5c60ad44a5693fbda671201bc3345ca720543bde60c5daea432ab7a159639fd87e586bbd091bbd60f4a801b2735dc98182c9ded8890270ac164a72150e388857053046355a39a1494fde4a3aacad96dda93bf042d2762c39ed094cd19a7eff56f93138533a957a45c40e838c88ddff8dd653d61a8eeb0e24e81cb2277d700341b2c6e00d2f15412a49625a985048c565412120141e3fa2f9fa400e9c8df238422db06e67c830462838fdcb865c9628ce555af6e85acb1ac88bed97678aa70bca53c6e99fabe6914cb166c1ff0a1b5dd0987112636615146910ec929db9d75da72bf63f4a0660343784303096cf83a8e3f59440c7175c579e847a27f23e9e722d750a6421374af1f002211118a36b4bebea32464c78624b41d605b21c84e08e35f31304188f2cf61ec65978806cd356afb084627e2071565b7ada34ac63742fe638a7d52b867f42d954293439d1d84e7eb7aebf4415b62899afab8c75fcfa4df386acc99fb7a032dd1097325df8768049843cd21a1297259f0426e1d7b3911051e29f0e95e4f1e0caae61eb0478cf710da2f4218462adb7ac755374d078cda908ac25b9555ab217ab1096045d54b33eb966ae086817331171546cae8b2808fcfc066a86d2782c68bd45b51f234473668ddf3e6425154402e5c7e6b55f4482820e7e2f6e6102d39923afc1c0f0b816d8a350e62275ec827ed3e5df2800bf71c74b12f06bef0d2d743746689cc484bbd8959bd6b9c29c3ca2b21914eb796644e216da5e9aae3470f19a98b8c9d707f76e312f3ff1b38cf921486f8f1ae9f3131af4e49f54a9bbff9678104139fd86bab173807e1cb51f3e10f629c3f83bce8e10f2a30e9afe46faecdcffaf002cc3803c548cdf2d25f2c428b7e9468dd822c4e724dc54c275d0d4740fb927e2b26b1246a8b5fc7cc108c8eff357f57f080dcd8edde46cdc9fdd5176dc12df885762f5b6e1a4809a815f008c861da23864b88077d80762f31fd8c229d1b897697b7dc1d9c39dba42e142bb6f4c6f66eb4de49dea3833aa57244b6288125fa2691376e93ec0c8a7cf4cf9dfde7be8c89f4494d56282351053dc4c308392e84a2c73dc2e75d96636ba7b17d534df2a6767c81fbaeb354c508d2ffa9faf81146882e3ab47de12a3e03f9e36dea17a1aa0a864646746c794f79ef1f868cd4fef1778c251b393f8a46a031cf644c885cdcc840a64fa5e7cf06cdce03922c06fb60f378b3a3d2d13290b2c8b26aa1bf2fde79784a846e1869e370e7b3c5b5a5597b4a93d9d12db7216afbf94219924419b629f079edf2291e09d5e2bcafce3cd05b67d595864c67517c3decb648eb28e28d429e6034d53ccca4ca91418d321cb6d9f1c93b0cd8efafb83322f86f1d907536f533834cbf61f21929bb8c70d7172a603dbc92e1b1399beaef86405c76b2990584f3f62cd563f1b9a78f30c66799625b353658d3a2245f30792fa5036cc2247cf1279fca8352bef86a6f6e796569c3e6e258002f1a5456d4c17c4a4a51cdec0230612f5584ec2f331741aa82f7fd723c6992c90809c650dd01f248c5675a27a685162c72601c0da77c1c18add790a3e159d7ddbcd947bbbd8156154d009af984a0a15acf29bdff080879ec88bc402a01f650486a0522d184d2f3fbef84ae22e52821320c403f6771e7950012c24a3d5b853135053f567ec848f0b56d55bf531c9d50c50cf135d1f83b6642001f56aed04e4c1b03a5bbac5c4d74cf13e26cb544be6ce99f0f1fa83c9af9c51fe8800dfd085a1a1c131d237a2a93bc2d384e4816f61905ffd3ceb720ed536842996ff5b91fabe77c8993151b6fa1143e644ceca6d39fcaa3ed3c0114bc60fb7f34de4990b2c1e83f3b3e4fb68bec37a3b993177bbf7914ce5abea9cf8c63d128cec0e55740dc15a823353de033a188ba64f1cda66ea2b4b921b6cf0966090249df73cc6aebee309eea4009eba0158b878048334bd0ef0c967e8559c19ed947a2692047263f6a6446b31867fadd53d83170a157d67e8b07e1de1fa3aee95e0adb2b353de23a04edf4dd7493a7c78d74dc93feb39c35056503570accc568b8fb157fc7033dbc6845321c91d34620c8c24508046786773a902c4e4fc1c7900590396a08cd395c2bab42918da02dd93ba62625c243d6bdf2089c8decf56f1572821b54ce897734936a573dcb2953428cebfd813d733244dbb5f13993eb76d55466c36cd9de00685a4eb02df855d753f53da0441ac25d3444ae03527ab2dc14fff0dd7fe5667e25e163b000f59fa69c2a0013fb4f888f00b01828ba148b887ba5d24c8176a6f4d548f63de9e7c96e8ff35b13f85af725d7dc4bec9cb863ffdd1679d632bd2cf8ec9b3e775dc2f6d247ece1aa3406422bf5f20df614cf4bd8c4cb08d12852a2cfeef1459e8212b7eba3dffe3b2435c9589f8f688026e3e9b9452c67913a17c078d172ee46bd5a27c9116fbe7719803912562a53a2053a5ef5cc3e3b920c4c1d0bd3ed681ee1bd74862b111968f9a3a9150777015f05a021362d11e3dad7fa213d57aaf9a380205057c00c649b6a8b26077eda154cace8665c0a7712c4c8b20d3c07c647f16f6a97144184aa58fb3710d2b4ed241fa99eb828b60bb82da98cb71c9190f7fc58570ab3d8ff4d0cff9507dc8a208d8ccfd2cb4a0f4c33c3ebc0b1ca815193ba7e288df75af9e7005523dc20c6217cd887eee32311e612363f6b986374ba41ea3b53aeddba9c85cf366b3d0ae25358575bcaeeee3d8d9f03c00cbe826b0210553a43ff8b502e8d3e3636937e8bc2538789074be028be52d66b703f79831baf108f0b8a9c5890f4dde0fd26906ff043ad572626c58ee4c46d5b36c5e29512e8f4e19fadd9d2c2de8bb439d7f0ce74f0a69d495b770b826688e7194fabbb4d145008a0bd997db48afce432cf8b142a1818e3cd62a5456de8c8077bb7cd16715011df4211ee1eaec11fd51e01ceb5677f9671401735b7a95b614a5a28c9356bbc00e5e6046a36826e7e37d538e6dc9e07cccd93837d22c4c5411b6084248458e26daa001b26351fdc44b2696ce59ba1d42b4bfc226dcf57d1626ba8b2aa5e89775b7db9b332c85aeffac9cb0f91d7a9b9cabec50796c5a3a715c0fbf985530e5fd2921fb1f5f0e21be21f3232c6598abea8c220ca610ba8ff3c9381012673484f2d53f397ede0bc9723016eeb4abda3b6561566b50e8c591e1f50420d8bfffbc0827b3c3c9e3bb141dbd7e4693f4e6bcc3c11abd0536f47ff69792786875db10b3d0c4838a5710aa0eb3cedca31dd0e94356ee04abbbef1200f71a8687e0b1510009ab83d3bc6aec04271e0bcaa559ed01a08cb0ce358415ffad716203c4ff9aac437d09c0fbd46de31193515543801b5b19aa3b878efc430a8a58808f125d2c1e67a93c12674b3835e5e0f7269265687cdd324c10bb4b8b0529609628166f31bf8f70bc826b224a0adfc7f5d2748735566e4b2e2330b96ce386e5260c4ea8f64a3516acd543b812697ff88c273da1dc425da0e678267add9f3dcdb90094cd201a816f4cc844eec16e34e8504a9cc7ed8228683722ae560008a62e442a5d31945e1d9625766e4e2f0c752dd06ef07ed37cdb51d65aee4d63f5c18e1a01b98f88f20c5a51747749553764b21d0cecfc419d7f83551cfb19d39ea73b991d694b81bae8ffc0eb313d4185cefe9f31a13cf42f8b4d30036d0c9304ee6448ac1c53c7d369c83947e859c39e9988c814a18a049993b761493e5e4bdb4c8f7447bd2b8f51eb54bb57ca57938259cc7d6419c4b2c2c6be54d3fdc8fb38b084e11d2ec014aba4b7e2fd5c17958eaf67d7b36cf89064643d0060241f3e490b314f5c7981cc60ebdbeeb935ec94bd762f5ff787581b221db61dbbfc170eea0ed7434ea47c744182afb62669085c34fe83db0dd7cc070239dd42154c5b549ea49634bf45e21d228d8cc91b8151708963032be124bc1813ad317876456e1127f364c2f51ac7867e4deaf3b52ba6954ab7c881c83174652c662164daa8b086801c6a5be9ed6b0eda510ed38a86119e02c279536e3a4149a348180c62c1d8989eb3a9b5a1d9e76f8436194fb6a5c196e07cecb06d0978c5c478c4432ce7e0860c01c93d2a34b00f7e567be42c98b7ff8d7d2cf5f3b4679eba381f10d50b300f573f502d0aeaa1b93e88e577b928adb756494b931739a9bff7b8d6376e9721a0594753bb823f76d7404e281920d242184b66ecc11ebb2bc349a728bed7d911a403a2c7bc08b240c5aad9007304f86ad97e0551d2581f0c70102a45686317802b8b4c1c4da19edcf45d56f2c135988a85a2982b7b1716b5077041f9f94c52d529cd5e4b7177f06275b9cf8814d9334ae45e5266458649038ee9c3b213d4861a7b9913cf3ea6622fa92f9d461f4aa3ee046b8b7deaefde8d6029285740e12ba90f394045af21153061bb679a224f9023cce33f0769c3222007ea2fbd57231a2f007fd35fccb501aaebeb7e3dddc82c47f364eade88496b864df6ac7e3d7ccdd87e33bf694423f7c670b47abc0704e7419c019c9c08f5499a1fb94d8bafc0ae037f972d7b34df856a908b803ce3fccfc0a367ff871646d33f2e54f46fc5770871f2081eb5fc6b6f88aad427be33a9aebb5f3f2741ddd9b1cd2b84a2b930f1f793f42f448f54df94a3a26a79069f6759d9bc5af7ea63a7a4e204f0e9a537b26feff41b8ce402e9753e7642f550919579a09c51a3345e1f66a4a3483873124a0da065d59d23793e10b075d3bbcd6e8266b745e8b95092cb1d66240296edd13f9b930889e4a778af98ce05dbe17c5c4382775e83ab04513d26098344afd7889e8904d0040262f57e7524d492444d95a55764078e45f443d26684cb57d0b18183aa8e2c36036cd270ca819ac5a24b444daf9401d74cd6573e69e2da3d11f0b1d2d1d25fa24baea36dbe80c4c34ecf50ada13b15430ff5bb3c9c6c4c9e6687c23684aaefd74bca3bd5989b995f39726f20e91d5fa0aed88f19aad6efd7a4a31ca0715434a358f621075e58a785dd1e4281d8d3dea7196578b4a965c8dc85725717f5ec95a19ac940020de034188db86165bc4e185360f46cb7af065fb0c2d8c36b33f81a42a512ef4fe83e9a053d7de219f693afa34bd1630f9a334ebaef8b08a093ee84d17ee4f285d2fb8086381fee9fc68fa45c8a52b8ba13f3a2b561371f796d30824d5e085462147628f7fd4d86c7843827a0468bf27ee11f70e62886032f3bdf842623f72e07aab07beb030fe47992b8b65338d99f6dff9c8ec67df992398909b8ec309860ca647ad4fb8521b4b0be89ea8f555c9c4bb918c586b1e3ac911516872a8dc841f33bfe6bc980d725940dfe77bf23e47a1800bc278d54beb88ecf85a72842f02bf98b9c688b988589bb2fcf46f798d02debf51457e8995462f13f469d442f7338428739830f85c52e68c8dfae6f45bbbf9f40ce77639dff99c4fc3f93b9d33e36798f497e79c91d8be45d2bab5187850b6f3313095fc652332c675620a00f4c4087a0d43f142e110db4f3918fe671d9ebc5492e16f9ddad0086d20b15f7f32ea194703175d2ab4c4ad4effb00c78ad77009923065e9d42baca429b17d7b015178f35e05165cb697305f981c773df58f5221351b4b421b0776641f65d3e762e9eed144d7ba4c7e43c009f5f88c12e9a4d43e7cd6fabdd398d273688351a98824f70583d05ef83d2453afd7ef135d1c58e2517f2b08a47ca7705b574a65bf26fc08583101ce875828e08ee680e57c54e85fb212ef9290d713fd831bdafc122c73028f975cf3eb33d0966b97d14c1fb34d5f98ca09f9c15c7900fcd668901eba62222806c185408cd856c485ee44fd3836270ebc38393fe6e912e63c9f40975e845628d0baefc3a42be249605ee0279030751857e4dcab73eff8e0b30056f0cc4c7eeec1efe1861eaa1957c017514e7d792d0c5f314485ba9b90bca6bbb7d1b9f59cbb783e666fe438e7bebdd7142682960180d859e24d11d1a9e737644ee7cd0d8feb647c3a93e807dcae1163073928660bcca3bf6944fc608677596c06526019b92c0aea6d68c75d07f498c2a00e666ba24751c7383cc03062e13f9dbc45f079274f65683f03c06bd70f85703373eb0c70d3f0aad049cb29041efb77cc8ece411f0ec26cb1a680b937d71b01f617ac77dedefd8c4bcc67e19958ec41536802817a0c95924c3eb8908ac07a31532e23051349e115d09cf650a65aeb5ae78c6f528ed1ffcbb0a6962fe9f3584ed24b21345396b51f107dd23d6448ce6ae298a19be72dd941e293c5317e54c8cfcae0efbb09c7abbe2c856c47c93efe57a117f898f32d654114a1e724b99cae2ffa70ded8bb8e122d9d90726411a9148b901e8e4c97f890b1fcf2bc54694c631e4832ce850868cfc00c26b21e1552dfe69579cb99bd834a328f11690ed33a235b2f97c28e940c2ce8508b5c91ec12413d35196449b7db1f13e6b3c427fbac675e65e0bf28fd37f3783671761b61f60dd063d572507732b068e6cdfe303c42c45604c886a45b48c759bf45eefdf197f86c39a7dd05c661f11f06cec744842cf8a2d699e407efc9da301686c638fd72e9c0933289f8c2afb6f411efc9e7d46f92307fa413b975fd436a27afc06a080e624bd1f05e18d664935427a39478dcdcc817e6930583c08cba966110df6c0ffe8c3c6182f06f4cf33ea8e7859f61edfd34ddf2a6a677c3e99182ec9545bc1897884f98de443a7f4f6d0bec25cfe8dff9b92888b0c1bc722e15b2ad8d182d6111df67d214bbded72d2e792ed17374efe78e073a6edfe90f3f2b1e6767d6031dc85a76ddaed64a3bee95f760bcc4b353cd09c5cdc07e5dac7cb01f093582989def186dbeaeb40a8e5b2a28c70b099e0bcdcdf06b76f2103a89d73fe573bb654d6fae133cb6fa05eff14eb63f3bdec30d6e8506e4d5f8077f13f334c924b903ce9566c506eac922684468ef168e8099610f3a2376a84763061798d367c09c91b66c4f26bfc26f8c610aee7294b4ec5cd7860e573a6567b89001d27df9085ad167eb081ec39aecec4551e1ed11b939586db452160989336cde411b1619e38112c664c00b966dd0b6094c2806bf15d705bb5f6cc837ca6020064bf216f822a4229d4956ff4c468d13dcc8ba1450143e72277a6af5ab9ed9215eee565a36649bb8bde85e7851481c72ff1bf863f558ca73993d1a1a6e259226eb02143145e0ed45330c3aa360221f7f2c3dae8116f38072e43c60f71d3f4da453047b6e974abb481f2baca2379b1755a16c32574bc0ae6d4dbf071b1a2aebfbdb1c1f2d98bb4393817f5fa43985867cea8994096c861efa045a159ebfdfa27d4fd80790e4be291453b346a31b60c2f225bc3c1dc3ea7cd4e329baeb263b279737617f96bd75fecbadc8f19be53e2e24821314fbbdce27f080120398ed273735f8cd7fed7651a3d17d6f1f539a0a62fcd987922cbb208f58365eaf1aeae08273109d95974c53932323c3583e02ec3ad41499e29dd09c99b90ff8f070f5a7355b9f8ee033e55cc34ad054f334314824f165067501869a16d3b8aeeb30c836a4a176523db32ab089336255bfc6454a35d097fb00d54b458f15b47a7df7f23ff9d27bd37aaee035affd3d0eacab2d27b67a5d18135ff856ba9ef3f9fb65faf2e0f4bedbe23bc787238b42580f9dfd3f0db3cd2e195eb5084e41215df6f27dd258a6b66f37cd8812ddf81ff542589b7f3cefa097d1ef01edbefbb472a3c4aedff4703f1921d3a78e06b62432691830bb4fa2acdba25903222c731ea81efa9b841c5789c1aee74f85a091187dca30ba740187c301541b1de4e22063cc3797b5906571e3b1251489e15367a512d13647051200aa4b46a307cbe0b5d9635d2ba22d87b1f29ba679bb2dc3b51be0cf4a953dc184252ff008a5e2e0abda644c6df90667bff3ec0bbd619575ae1504700d18f37c32c5180bc18cb2de2fd881f5406148e83df03c22be1be1b4c170f9a7777a441f6d06cbdb54299cd1762fea8b3276674b0cd6cd61e3adfd39ce4a52098986c2d93360275768cc8d104f89505a4b1ae331ea2e84b9b641e920129583947e4bff9523956a81504b422aad27a3da551210da634005f21c26672d0ef2f1f28045d0f18bcc61f972b7c0942b5aea982060adb85029f02f3c12b28b6ec4ac4051b0c7ee08843aa12e779469e24ea6c4ca6926f9a4934e85828c5ced6900866193f9d1d5a3acaca0a3e5171422ea34b90cd3435783235c5b46e8a1d2793f10d3342c796719a5c976a9ab99a321c4ae1f669628e5449868deb6bd308ea9bdd67184cd0ae0fc845c0642beaf4ae995ad232aa15ddcade22036d7824c40c337a19f9334ce0ea2be7efcd6016af6222be48c2918bd559fd4c7511a4478b1eb4cb0eee48840a05f1c4fead265f6727dfe63898d30132c55ba54c989b0294424fe83a577497a4b1fca1ad0a4763a198f80abca1433f3c6dab3f6937c3fb70a5e3a0e712735473836bf95660d85fd357c40345cacd1c796e2821e03dcca508a4e4a4b5e5468d4e56cecbb10480f1b181e61f6ecd8ddb2a3cfade2da4679179b67476c148360e728fce6b60e3dce56cff7ffcd764f4bd9b652e04e3333ad8763650ba4c0d3ef23c627097c4cedb5fe93fcbd6564aeb27b881313637b2b609d20e91064e3d8fde9aec39b0995ace3f5946fa4968e000da43a4fc15441b278b543fae468cb8e81a85e0501d4e186722a1cc1759806ce524a8d60a71c247b76e4590018b6c49cc7eba90319ef0dbb8aaae14631dd80f06efb8ef8a1ab3e6283a3c5109e152a47c955fd12a6d203010b4e1ad1fbe8bf2286e14e3c5a64e1f1aa67678805681f6913e2afc4f6b20a616ee9390d79d87bbceb60595ae3bd9f57be92f9abbe47a18843de3bdcd7df63280e7d8061b51cfc7a23648d2b9dd3b3014cfce5fb5bb70f2e6d7a395de0a6a87b594c823c332a99dd00b5b3898d43e017601c19615722c0f8ecf9ee7db181f78fe240cd8271ad6b02c5c48b848b86fe625373ae2bbbecaa6eb0dec53ef5f2f1c69a7d17b8989cda3637fec969c6e126eaadd4411348e1f44680d8e9abee0d2a2c2db09ce4ea7a8b563787824e6da06df7c38de3de02500d2f5643b310e8ebbf7f3bc0f4cee33f048635a09a568d624e94fb2f983d9ff6c161dace32f2da1da44a63d297b1fd5570b09d6d5d102dbf4c2d1ccc0c3c3f0227633809a130e4b6190970c00f6dc0080621bebfa096fc753665f09810155952916967f4a42968d009400a8de387009ae61230bf09865cda762dc0a09ad0c503cc7f593737ac33add9af5d70fd7c166a0c3b0c95a5af6ef17d349abc196025bdecef249e086e1f6c06633b6f3bd9f3ef4a65ce498fac2c76a33b87b0ff9e2579ddabb7710e17685c418cf2005b755ef0e75b9a31a923b8ed722cf03b7484cb9bd9dd4d77e4080218ebaf224bcaa04314a8279fd354a1ead24d44cf886acfb6876f2961010e2ba6b585307df369ddc4e5b403a594edad8565700fdfd96a9bed2006ff4492d6a73fe97ab5707eac69d5d58622200c73b5e502f28db2b2c1b30a1c777f3f08e401bfce3171f15f89daaff6cfff2fefda6ff681432198003c56922686fccf9cee66316a8efa0d7dea58541e404cbf8229c63e2c845c135d484a641a5b00c403f42b28c70caa59905dc7f3a7826e88a851d077d8e502e85ea6523b699a875c2d6803702372d839b96137ca142be72ddfd61c7c17841305350b59ec5d136be695fd7f39c27abe05cde8e6edeccb91dae4d37b07926bf3fd049f34c6f68da6bee76c5569060d73f3aee5893dfe4025dfd499871825d8616621cb3c3a3fe6289941fa2783fbcf127350fecabd39eeeea9f5a751a5e4d8569cce7f8c720a722b23758e34c642d99d1c19880ffcc11e9f1bab94665557eb6fd5c13f7199bd8111c7a16a9e8e3ddc8f47e9365dc44bbc423c7d04c63462ead73bc8070cffd4638767f7e7133ce08f0e3e705ce710b9045b8c3728e73cc5bea3db94558db5fb4b09c0b8edb01a435079a25ed5cf6643cabdb566bc3003e413ee74eb9f2463baeaf47ea739bf4ac15ffc74c5d76327f9c177f0d67d84cbcb027473481efd4c6d058bd4b852669a2a28ba27a4c1f99ead11a2749c0706c61b82f48d0653864985fc48a0058dc5a47b521792795a199755d4af17d24faa9682b30d379c8f300fb567fbeeae3207a45e3c17c404d89d25df37fc1f3a7f6a4f531e2a43ed6972e686a86dc09d5b58e734097f339751401c28531daeeec26d0e7a1fc29f01d0b644d3eb75450cf64e5ad13b914bc1b9333255e496114869833db619412fa2d32fd6453a4690b2683a9c9e541895d4c5b3951a0cf36befb5c400f84dbbefa9a46efc716bb3f9c63e0418e28dea15052de5dd6bbd87fa6204d7a019fd5f913365bed47711374721aa30d145f5d47c55a4f62265c8111ea2d6f35230336cba2f0b2db41302d5c379f7fe63171894860c6b50fe4316f4206c35094a5e230250b0fe9532addf9f7e8dba62bf996dbc152ee60fc241fb98165672e723d1fad13e0f3d9e1391b11231980f36ff72fc530421a85dcf44f263653de288200ff2f842d0a2c80b5e8a4cc52add027061d00541176d79260628802fc0f64712b4352a3ed94c4868ea4f90a99ded04a47ba2674455a7a6dd5c3a6800ca1fc2ea97058cf7aa9b7b5ff26c233c235136b5db74203575d81c81fa084c90c832846a0a7fc13ffc426012fe7aa2a56a7b95275acb17c8fdff55c57fdb24b135159368d1e3386a427ddb00c523110cc328347bbe0275eb6d03949586955bde7a2d9d48bc5637ad23760469403458d61c737fc35f4fa0ec8686960949b9903dbb457ae7f5fa69806d31141874a24bde759dee36652dd444f6183f3adfb12de10c7fad6cd1fb39a6afd9e09e2a14ffc2eeef80e146a8174fd5edb4a52717c0c32cb25268b7f0c56b8c72cf482ebc5628d63a9a1d177d55fb1bd422dbdeb39743fc4159096f6476199378dfb28476b73f48638706c9708121de46149f9a30cf5eb41984d0d9c110ef3b3108bbcb6c2fa167085594ce182b3d5ede1ad367e7619f3d398e55664ab8f1a7b49efbd4d2d10efe14bc88bc6c40761143d77dafb22b6dd83b6c3b24ea9a2d057c046298bc1a64f9a9676b1a5b7662e64fec9d0fc03601a0a81de43e6b1d566001e0b63ecf419d0f78c862d001e3935c4634b2b91081239113f04b94fb2b0f28057ef64b41e66f6aef94f02d808b434c53f57306e0f3d0ac839bd2bb926da58979e57a2ab04c69b43b1eab0046d1914a7618d79a18cf52d5a35dc7874d8f33e2ea175850ff1e35942e16bc69d11a5259ab3d6b68f577404118121300347aa61e2e5219c2053a7d0d483ef947d5fde169ff1c44b13251663cbcef695f0bf6a5c042be554ca8c69b8c06d0b3cf5fe862d7ec80af00c0702389f4eda0ab606ffed604cf7f1f02d2792290be02af616949f315cdb271d1f652688f320dab800c7fda952e385be0cbf25e48b0a639136ab80287b88dd77be3ac54006c788482b9535da22cec367a25c39fe1e3e302e596cb49b0a8c9395ced01fd53eb61dee84c354b027b6d6f262fff7eb9f57368fcc44d970134580941b07c0636a1274de2fbab904a3756cc02e88f397cdbac861e12881ab1e69f91e3cc0cdf18bac1f0db6c59d06e819cfbe0c2446dd03b5954bbe23d967c443a2eaab131c0d779539eef464e45ffef000ac713a596b3fe83a36b9381f6dd308fef690870b4f153c4555ec6f3fc3d5e4d610d9e5a5dcc6b670609965f3be9af719b0833a83111a02892a7561245fc00ceaa62bde751444dd871824566f21cda608722adacbb2c6eca40906362c86b91d843a40fd326e02ad859d280c62dd41bd314fae5778420bcd740b17125a3a3b033f522e438c0edee517b72ea7ee7e130fb95ebcb73896274610e4823edb5ca5a1a138ffe87d25d273b67c0b0d5a33680c32613267cb28fc4be97bd21dda23f01852e42658b81180a9fa9af14d9ccf69407f2f05c31186c6ea93e09f0f568c11bfe2a0e81d2bb1cbdb4145aa701374348ac05fb6171793e36bf92acc9a829651b0e04ca3e3dfb762838140c00d018dfade9ca09ce10308a4f956d4bffe0b1e849c46eaf0ac11a3b5335eb0c3701e70059760414905e75dc17e72e5a80c8f198caafafc9070f0915eede9a6e76d4f0b20f651ca25e15350bfec8171343039014b582a8a9b71ed70f424c55c89b6f42456096ed713784940cf5d84c60bacf2266d1c56a0ad13eba92df7c2c4266492c3dcf57f78cc13b4adddd927f92bf9575fb4e059508df0a8d72f70416b99724f54e3636edb5185daa4c1a5dfec2a187fba480803c6383b8aab044626624425dd95c74db9bfff113c18f405b544237765c915fd7c9b3f041f6cdfd410dadfd1ee44486f1030cfdb60bf5aaadfe3d11d6a989a585dfdb98afd9d4efadede5f944bb2e9d2061788b1481700dff080906100f7c4d9eb8301b0da9aa4b719c83c086d7643be7149a46a534eef801642713c060c72207e02d83b693902208d326574eecf9a3e02352049b3cb2e0c3127b4039ad860e5f236c0305a252162fe8781e8d119ac64e769514f8dd7ec1bc12e0080c3fd34e128028b0fb30a531988595784323bfd4effc890cb2763bb3be26c976dd7ba1a1fbf2e722804d8acd0aa388de0d2cca325d15914878950bc17c435a97458630626d9778e3f6ab9ea1a30ff39c686a7f406cce422896929ce6f54f6e0b2aa845bf8a837748db57514cf1cd8053e7e5eefeffb883fd494ab8435938ebcd6f6dd3eaf5e9bbc8f5f09133dbbf0a605d3e7335c4d51c08e78ce9e4bd74f8f79dac1beb466ad5ed03b44e1f0b41412203f5c2b581d51affb00f0d77c5c08d90373f632d5ab5d3672ed685293c383bdf0b9851b41c38575c981d740697564b9bb7db4287a3e2bae70589589c126a0974539440310690c2533139080e0467f96f0118a3642c2f1cf8e58a5bfdc08e6c3d9c7527a152e365710ab6a05ab17e3ad2585d448d245c99b336926619fe1f01fa9a4bef4fa3990578284940424f360dec0d20cc22d42e9abf9a7620bfa9219cd629a9bb8b23c4492e6ca96f76a934339b945901a40b3c5ab0879b2db980d6703447af63899cdb84443d202826f9e513c7a2235cd49be5a9c843f86f02393c0f1f51a42c8df08c065ec3e0e77087160d54d9d2c05d6b386d934261c08c0850477acdbd6a58495cd1037488aab38583d39873426dc312cf9948d88969a12e8b51bfd06234ae024bae132ee2666694da33a7dff55a57e4e7bc56773847696267d45615ae843d9ed7f41e89e6de90a0ba9cc166ebac68e67d1b970b64cd204cad53a4649416f2693e32dca5ced0862094ced9cd07a2cddfa26f91f3ff242e6f290040501e88b818ac88c06489b387e603824d8d0d9065c1d7f7bf98f87c5fb62c8a10237aec55ac65eac597580744bf8fd1cee1be3186fb8ae65f52f3f16900f6dcfe09da6932aea103d6ad60d2ccfb944d35072a41c9f4f583c861e23543362e60b64cfabbbbccb3826337e8979c7d781b08c039f503da815c66f3312b81e573695a41971978e9cc57f50c78f81f327ae3386ce339369eddf677998f701f0cbc30612773044c4018a55984bd2075a6d794a45bb77929e090d909e707a641d280e666debb1e26e127a9521416b44685f356c7aa15e8903ff77a05a7c6b11904ce4e2c34a285dd761489e3b41561b9d8f5a80043ac7adb71320eebe019c8edc415cb1f52b8e6e02eac95b8e23e7060ffca6b6e3646e8bb7771ab48d987f18672eda2c9824c6e49625412ab7aa90316f6c783e0e905e5408713f5b20f8ccb95d0117a94cf0fabfb6f2ce95fcc54ce5d897e4593024cd6db1923a648dccf01bf2b73d95b46fe529c93509e658fd6e41a7bfa8d2f364e8119c950d39f3aef1de0c08c630d5ec0ab92144a3e7ba015041669a051aaf094793853569c4282d83c67217e89046ed0376e7dc900d39b4f705ae166073b08e3afcf095a308ae827db008af2265649ce6e96d6d18a3ef702ac060929a7e461c40673a18fb88284929ea9cbc4dbd39e1128a4d71d791b0fa65b6a2349fe4cd71184bd24adef0bfdba13733df10acc5a2b94b8a28d0e06c70bafd9c44340e857dd2bcb77a81e1e20f88d4ed522c25c90f118e4eb371c61c683c6a634558d872074c983408001f327ce24e141f7cf9a489468892297e85861a9a148b158952d466571a3d4d97264b39bc5f6b30bab4f10762fd47820f28da313339f094ef8d87efc12e0f1cb7ab206a218ac23ca5743d0d0092cc50de70f0187a3a41a9f1e535f40932aebb9ac5749d78d0aeed211cfb61a4e8cbed09f22fdc65e28b91e1c03f8e770e47f956ea7ae96db69e4e7fbbea681466fbb8e0a123a2951f81c2deb455dd81edfd2a282a86f920be16686f5856c91784e0853f56d0db2f040efdc3f97f3e51280f1ae14bd5d3e8af58fe2fded15fda51057cbb2813e4a3241c15ff449723a2eaae001937e1f74ed0fa5919f92e5cadd607b125b75558d6f52115e72b1b532b19658764605bcb616dce8da0c751290e168855468efd4263f53fbc60d967d663dbdc13eabc7d17e3c54b1d829edd0dd19451ceb37570e0e547e9c8eab1f5203af4a98240d574774954461c5f6260bed0c9aa908693c6e121bb2a08fdbeaad04f090ef6a1dd8b6e1921092bed370f88b2cba760bd7683f9ef8cf982adfff1630df48c70c2799e33dfef6fde5d9a21ba57aa42ce3e31f15482c1165df1fe2e2019d8d1a03e3488ca0c14718aa8fbdf313d77e27966cf378fb18d6ae30b0456a928df00826c011a760f1639787c5148dd859cd1eb9385c7d24e21b29a9b3960757f613b4ed57afdc75cd1fcfee21526879797793c263e5b6df7d1d17cf8c67e4818bde56add7366ceb95e4f647a83b105ff176dc3d7ab69c3953072dbecf749cc1484f02aee68514af98e0775bf6a53c3d26d6d63b596331866ef578e380362a7f6f77fa5f19c0cc832563fc86fc7fa3a5d5b3a4df9e2eff05e21eb41f6748a8dc4216313a3e8ca704afc7629a49a0a777dc3404815b78f864b23ceb0ee6adb19c1b493041bd3387214a158c604f10a8524285b1c224273b3baf4e2c5d0c8ab60e9391a8551ebe861d67cabdca479dcd951ef46fa97c3e7f3fa7b9ee4acff948771b4ef8bc548062bdb6e1c3e1bf9145af22ecbeb6fb35a81705c3ad4246c023d994855eeda8be51c7fbe3dc1263f3ce8a906aab32f430c1661e676b22f93285652d4e4d9b11a0c71b508eedd020dfa166cc1fca8661b5c4a4e6c3f6dee357d4771f2e14244b383d4d43c48c2c49cb17852b40e0f4661ffc319a0e0164d0c1fcff64918c9bfc1ca4b3b7b6e41807f7fe3ee5272c55b0ac676b5a72d9259a2c2a7fe003b1f75f0f328e9b540d4eaa03857ba4f8f96a9b05d40f8caebdfa1b6b90341d2e9fcf9e8f50a4cffb582db530144258ad672308b2bd5aef9fff946c38563fc06676330137504191595970c535ad27fcb99d6d2095b43e7d272d3b4051c28e667b6859788baeee79125dc8af2e98a08d325c6df6be592166f6cf60ccd937930559a1a5f38bb5795590f1aaf8e315df4e06190603e05fce832d2863234689764abec91b9ff1840875d4dfe7c7fca304e639d820df38264a64286005c3a7a0a8eed7722db57a5c2135d514d5b200e85585b3a56892ae7b49bdbd8af283561e28c32043726ffd644760fb87959e4b4e866119300fc072977461bea403db503c8c93b3ca98a22189dad9ba197169b43de34776983e1e5b66e8f800a4743e85bdbce3ba46e84dd764eadd632ccbc9b4636010d09206e93e877da4210de9d406e129fac9ad8f6ab9cf2a5fc2d3c521496e496d82d0168a99682b45007df3732e17d73adffbfda04ee8b43e5eabfabdb5dc106fb405fd06b6c50d3898d751c98899498a1216c6e2d3a7955bc558716eaacce87964f7efc00785d3f54b7491c977f47e3fb80fd2f94ad5d1f15d6e7d53e2b97c2f63ca4a6cc236c07c20d6c381f4fbd4e74da929b863c58c83b8ca77befd727b4ebcb561ea511f3e495f622ebdaf36daa65c9a43824996afc77d46dcb87ccf8ae4642ce9fc780858e9aa62e8d27a655954da64d12ea6b935b6cfbb4c4c480ae69a4402382538beaebed0d6dde6585bd1ddd4a8755a283128b4b2a823b128705e10318d05a5a53b0d2a8f8adc208de129d7418758a90477cc9133ea9183a047b1bd680c689ec6ad6eba6aed1028c5911fbdd0aacedc58f8d65f17f78c85da85bf1b00a20072958cbdf066730aecb7c3fcd8f2820280767395bf8a88220d9bcfbd5ac4e48607f9709c7a8d2c8aa01709f72d92d3476050dc1c01e48c68bdd12e35d30f445517bbba319cafcdec7bc6faa1c486fabd8a31fd1f0d279c14d1eea936a8c1eae30117d07dd8a1274caf841fa48e4dc6b1aa40e0c4e4706380c64dedbde9330a7190f5e48adc3df61cd83caedadd13cbd040591f6eb158d6eec453e5abd1c0bd64116cbac56cb865e1ab2ec48fdf329c295eb29adaa2bf3e4210598ab41273b3ffbbcebb108d229b7c6b1bcd7e10ec6697511c3a519e1f5f0751231254a8a1c8dbb4d5ea6952aada584e1ef83fe76ab737c5d3f33d018ef29bcc29aaa2d9f86a94f3608510576e7fc331ec6d9163931eaee14e26665f25433de21673f81c5cc57a952a664a278cbb736416189025ae60c761431ea4539375a104d2022f81180bd8efe109c3c8b82dd7ec521913b375a139c609ad96560cad43a01a228763ddc1c1f368dc94537f2d8e305d5db2636769dad01857a70c6992e4e06e075185e19d90e100c967a014ee51a55718c859536a95fb89eb909b0cce0f8faaf14852de6b3408e88e2dd59c49ba7f804b7b121d13288b535e1fc8f7dee0e609ade8565077c42c32df3b83160febd12eff44405607c647fbac70a9e81e686061631391430d0ac83ae27953d10988b5d4c45261040af13529cf6e1c2632512179a7f3bf860c8e32183ff297a307c660533a1fed1d2313b7ec8e5581f6962bb08aaa4d88cd157b5b2c6fd459e7b91066e66b37e369aaa06d5b6938524e9228b30b4fbe5b33b10aff3119a4d27d6c9ca203147e818ac04aab26d20ba979a363532c0435b4e22ee32ef2efae27b22edceb370e5a30d678f1a605d44e935085904fbb3b9f62f6238e531fe5016da5fce77dbcb2dc5d60eec0b75c93ea9e7344f409b69a43e34adb7207578e089b1e83b83f346b3b8f7755b683ad0ecd4f32febbc7fdd1f2daf0fbaada1be30d281bbb3f69f8087871d9b34bf68e2af03aac151ae3c1bb44cfeb50c8c0bbc10a7a1fc0188cf57ded7619f12c8a71dff043c1c1831406504c94146000dfec3cd01c3f8c353770fe89abd69210bed06bef645468dac2e82e98f0cf3d854219900db365eeca16b4e32757592ad8bd6b11d9b3a3820ce80957206830080ff4299ede8f325e1cef515806e8d3bf87908c7b38376f60449768ccce62bfa089ef52a86b856e3b3202244026ddb2a130a2c6649df04ed03f688957f7c23494e88d318fe1c7336a13180c1b65101ff2162d37f4a651a844e293fb9058db192e7f5c02d5bfe4cfa253b789f8f69b2a5ad031b9e1b7355d535b027b47f77f322f58d4c8904cb84eea59bbb6bd563c1e0ed7f70afe934add49ffa3f39994c0f69970726fe62bd1a16de4baee59c74eb223471191a2fca7acb7a0fcf21950c15515a67e91d8e04a3ea555c841645a4c2de21a4f793c62a176d55c2ee3e77f8906c23269aa39e7125515accd3197e5d93e32b9c64b504baacdefe40ab4412f5b44229653072448d90d546053d0102cc32731f07b417aebde4232379288a6fbc100095fbfd71a4042d7adf32d6d98f29b610d301ff9ba7baa91ef9a5cb613005e211cf2574ab7202300de64537e2557c9751ed3b65e4ddcc2f5bccc376095107fc55c304db59ce381a8b2de19fc1ab54117291080f605c538c0cada4a1801f12691f3c55bd02e326933509670ed53222c88b2eab397949804488429b9a783f6054d34f96db06ec354336c1724a17bd39c89e310dd1883f592812bd62005ad737a639903edd5b5d2ba38282bfd5d9a1dc14d1199e09fcc37eb991d83b47a4021520fe48d5dfd8c2eb2fd6bb0eff0247f814b8f482f8d50312d3041d64a966113b1d4fbff10a3be7579c7d23384e843bad5d452fef3022256f706aa36d4a6ca1b264feb5b6f56376a733368ad18f1cbd63c49268900d23b42c5694c17eeb6e3eae45ce6eb3c5f0ccf1bf9f2ea7a366fca61e91c998f3cf450a0b746015d3a4fe4d55b488f2bb38c3168a548300bc0e58e7491b027ca2627c058e1d8cb5dacb7b56e9bf8a0251c2550412ec17d86bbb93b56c07afd8db77fcd2e8d2cf4219839842415b99efef811aa0e75be7013fae42f607d341029052574d315f84d853b95ae4e24cb8478567989c99cc25a3f7f98159e4c861afe6ab11ae1362cc9ee6918e4cc0d87926556ed675ff183becca3f691cd3603980d336934c6e09b437fb0f32c47a3a16f28198839b598413ae3094faf2e38660cb00f15bb9ac29c1d2d3995d2f89d4e151a942518e166adad10fddfb6159a2843441a2f76100b33147d98a62850be611620044dc9c19d31f6d09f2f81882a093aa87a146b3356835df19d9d631f597ec01b52f4306c75e37793937ea1dc54d0538cfab89eb24bc3c69ca1ac3a9b0f82b910303826fa4523eb060d67e628417cbd751defccc333184152694a265e189c08c0d5a370d193ff361ccd4bcaee20810a89c7a38eba6b24c8ece48c22bd7ddea86f08701f7572af8a933e44d4033e164af06b68a5fb2e153cbc159598ea3bac67683ca29c4f5dccdc02e9a1bc832355fcb7e85617fa9814aacdf994e6576014dc0597ae9c1c78f8b0f60652dc17b39b0656d289c191c61d8ef365daf2a0e8226ed57b36a54073773f047805e4cad4c51057b7272b3c967ccf84310b77c9eb31710d6b42e1354c55b7de5eea3f7d7f97e9c381aef4f1896f88f787ffffb992353e5f88ff36e5d96bf5ba737e809c4bdfb183c88184198f2afa7b5f8dba4d4058b028036e35d6be8f549de00733963d653f0d96b37235b6089f97767ccf82f86d0790b4e2a1e1dd23db7ea7b1773c6c911d79a824e63b65059b806e1967a7dde880dfffcaf6b8c43e83e10b6bd65a607cf0666c179ba3d0e9ca27bc6fa0c45a0f4905c93a7e3b45fea0d4c062fe7cae0ae8acbdfd8da13f1dc559d43a84553c3ab68de997b6f06f20cb1ef30a32e3c25085b4ee2c9334d95ae45095f8fd017e0ef7a4a80192a5967eb6456fa5a11fbb490028be9cfab90bb312a9e51f4116730f1f715bd354e1455b19206d4a58a4e85829e5f56174e0f086a3e1f4128625cc7fa94d510092a8fdf7e95d00357375793464c100681b2c3a0d2ef8120082c2ae32aaa1d3c600083862eea48a5f98128a9c23041d5631717f15f3139053e663435ad80705a0828507524d5534ae2ed1e191f0e9a4c5ade8baba3bd4ba1aba4ce52e3c7830c8cef5374686f3b231431ce14e38f98241768a9cbede864e5096b258ad39eee971d900be5e23e7bc1a80164a318fd3fe29da3d217bf61f76dc47ccc86e672aeee88957ac360f1cb79111faa5d6fdec4a2e86cf5bf80f35384bb040d3e8147b7367c5ffa5d8de5a986232730dc70cb5d41356d9a6e5d56c1ca7df9e28a1d7bc8231cb9fbcb504e8a46c32baabe8463011e70c5452690833a7559468cab549668069074aa6438eb44b07f8dbaf5346c4ca4126239641eb74bf116f44664ee6f6c00d7ffae82412e8d5a4c8bbd4c81fddb9ed837abdac9ec8107bc66eb008d808dcec46f022a1339b8f6f6b346bc8bea91f36bb744956c8d2123f5367610365f4f9d061873f5944b47406e8820b325dd638973b30471450e03c3279156fcd1685c0f33a072677514d1096867717cee2f4d5d92f786e455285cf53b60b1808e0d21664013180e0cec97fb08aed8f88a41570e04ff8c89dbd62566742cb4605a7317b99c21ada6db72927a1299c3f4a4f470177c07ddb5bae4f301cd7c58fb0ad8de38f5e11b845ef3c7b2b034e12b83334abd174b94157e969f3086cb30f4083ab4318d530a063cd395b8a57941918a604f389b83d291647a171229d6ccc0b3205269f4d153b787afec31a36735d30fcf4a8b10482084e450aa717c204b890f138cdef849eb2ada92c5d1d3b70c967e54b430d588037d4ffd53f2b398c2599eeefebfab4a391cda2c557a7cdcc2ad52191fbe1173c4ffa2d9b482d6131884ff6b1f0cccd92fc9f2b4b21675a10a590a9f3920ec2c3a313f87d5bbe2f45e00a0d5dff9f23e76bda3a49d97cc0ef388455348261bc65c8645f1cacb773cb4a0a2b627ee406ca219654dcb77760772bcb2bc384b254b62589815563df52624ac8c672946cb16e95b15fea4b00874858e3475b56f8c2c7ceb38f401737ce851208060a524a5b414cf9093e911bc447bd564d2c4c674a4f345999567f7a4093dc0b07782425bfb5d025103335910636582ae74cc5f9f1b870f7584105cb2926b63ffcc96a0ffe9d50e1da6465c7fae087839bbb4188cf87e8c7d040365fd7dfa0aba98b46a2fd5a4487b3757e8ae3bae9d8ff53209eb9b6e815a4073f42acc263b04d106296104e15de77af67e641509c6ed136cf3a162b1e6f34c355409b74de38bc995a6eec0c0d25f85d040952dce0774e80599326d8a6724eeb7314dae9505a2ab13ba89ce76905cfc386fddc4b2b49330d6771a668dfcbfba20010dce22adbae4cd9864bfc0e5bca8e7141b7935c1dbacffb68481c6e14c3d0d7f0141769cc661ea726dd501040a778ef5b7122ce9b9d892a4160b13a39a6692c9fa9c573e2ce8f954d5176ed0bc58641e4bcae5b42a35487bfca418c56aaf42b617ecfe15b5f8a493610dc76ec74ed16ffde8d0d26fa972036752d61e8960d5cfdc3ca89c9b22a58b368f986eba7d4a0df357898c2d5d9e9a380bd53f8a4828df011c106954790d2e660a30941cd76feae3c0e5da7ff7fc1e538d860d509c19d8a6f7d8ceb2bac12b13eefe1212d433a04cddd38e71381154967e6f30398ea0e59fe6c447cf06837102fc405bf82ae87700b9798b401f80a49a3460fed47d78fb3c8e9c20e6f6d41253d92a1c1945f8d45518bbf80b63d66b354672228b4b0d9ec6cff9a204d0f7433c25f3ab431b599d75c2c7f3aeca84ec2749c80819d45b47e48a9fb03956401f8e14af45e121f2ae65d6f39c335dac837b685f80efa6ae282779779fc32df549ed243ff413e9eef6320b5defc28c4a20db89f2c77989402e3181e2b215f39a3dcfebaee16879f199207482cc61cb3910c7c40568c94bbaf6ac5118e561b0a7c3b015c49ffcdea878a7eb75593baa9135643076e4799e4c0beeac139bcd6ffab44a7d7ac6a1b58230d8816986b136942a2042fb68de5ce6980101552626a343e2d7c1fbc54c4da291d338e6e4b8aa96a5e96b64186c14f9a0a2fe95c9e9f130800c468f2449fea54beffa29c1639b8d0cfb57e346343efd5a15a4dac39d3637521faa05ec176915d5e48a85ea632436e4b4babc9d978705e76c716f270679194978b09c826fd29de79f7a7e104f11030d1d60295a0916688ab4b8547b23709ddd468cc38ea516dfbccf8a359f76e1dd04ac94bc597c12d833cfb0ebb5ec74b553f9d684db3e66561eb1d5860c31c602f206ccd2a10ac60f4c98b41b7da3ee91a68cd1f9d8ad7596bd4a4ccc44a54d69167a0a30a3a4ecfef0de9a7137e8d4723926ac26b98b8906e95473fd3973f8857af054c9976e106a25a8a54ee197c892c5e209817bd8c6b192736e4a941309b331ede61db297ac951070a888ccbfd395d78da4c98adb00960af2e4570e8b49d41ab8d3e3434c07ce50e6078d72369e82b19b7a69373f6d5590ee21231e0ab4910332d436fd125513dec4f1ed77922e8e8b1b35483627943ace90ebc760738c04223b53733524a2270b7b0441f3825f4effc211f45567f4473845519efd6bf91f34a9f367ee39cd741555147a75baf6614cff7a234a87b30203f277f673af6e187065c74d817b2e137d9c5ad6d304912a09021478c8e601c6ea401acac2bb024403437d16d495c0972ef191ebdbb06b13cc5907d0549c17e216d0f3854252970a1bb56e089c03815cee97aa5a93c19c970d52edf25d06e4f5536785a5097da7cf768534a5b753bf535b884e3e3008fc384506cde1d430f55ea9f9ad844ca246996b2f9c959a6548fcb14376f2af86d5a356f9323948ca51c1ca5fe02f3018ad2b791b17b2b4bdd0e480ce6b11a9c92cd26fa7f2e66bf3a392f37896fc6d39bb52b01a6ec5d4259c97eb1a2bb69233ac0db8addfe0df077d54582dc1ed503dbf967249384cea332133124e1eb9f5443ed9498cdc8b2b739e39cf9b6be75e60f72be8da20825a81c304362f1e6f00ba06da22c1ce1df952a353663a2b9f67c7160cec3e4b226f029b2fe84e0d966bec06340754b081790a86cc01e3fa29cf7c8a93e9aa691a8c90695539beeb704cae100bd80d97b5f0b8314d52f62ff85298c2c126f2e60aa5954ac43e8664fb7737274f7c94f3c41c0fd8c1c6066a846e11fde01d78adcc2badfcb3e5e6e5ab31709317dee71ac03a6dfb982351abb4085f5b655369e0fae48e40613c43b761b62774163e9cab7bd52799104fc53298bbdca518156f1e0c8a50172d5a11228d5d98d474069afc09a9088e79e0c973006335faa069490062435e5ccfaf1f34ac491da2a4e0cc1f23392ff89eb2f8c2df2a9f89f8476220086ca93d742a592140270c35323e132d24d048e063758917bc69a31d7e5ebdacbee73f42f00b2fb676e69ddc0f7b9644fb22d51a9f407aa8f73b77a42c27405819d094fdb7403e21b3be60406e806278f3db20398b55a09cab381e7d12c6a811648dde6008d0c924d0ec375e293a7f89a3390ab1658d3c0d934aa3b8a7b023536035a2c931dff0f8fa2ffc2506e8a50170fa62041c51b70f1c6bb328a10d7dc481b6ef7cd41438f43d75ab3121635edadf02a97c2989ef72d4195918f6fdd67126b81ca695199483f7f5589d26e50fa05c17e05c6aa458d32fb09ef596d74601e54dc8de4ced1a9550c54fa2fc8f60d40985d33d4ef1867b17d9b376b85781e4376a0ae390355d2f0cd82801bf9d1cfb5a084876bd21c2fefa2a7baafbe7371e2fdce223255d2469bc96b3fafe286bf7cb06d0d9ffa863b8e4a6131fc09667fd99a8ddf0f0638c36e566da7db750d96f6dc8cbe8af81cc427498df010c284d486c5e15c88df3b589caa86e30a252b5564136ab724c4b23b65bd42a104d991b7c1a22d1f6542d98364bd281f779640f399a1ade7e18f9709bf842bfcba6022c10f8aac90798a1ac9c9ec72351a7e15c1244708c7b57afcc46f50b0a04ea7ed0279dbfb85142fa0ae5b3d401d2fc01def6860e0d39dd629ce2d0b1db2533b14ae2f7187c7c024703a8a5cf4e36dbcbd18cf75f2800b281acf58b2325464faa3a935060d483b330270b8453a076804e69d6b77f9044e41ccc94a43a2001e6c0b7998996c0e2c441045683d9343fe368bb9c17dbde3cc56311f840ed2a71132b20f52cf1170c6b8825f7b386ed888a9005c6c947496843dd29733e8236dfee3001c882adf1c577fb2ef49ed739c24db0714f23438d74e972c649d1671ba8b7338197443db4b18ad588e0b46fb8c882587a3fee461d320b3594b06142ed40576fb549d8621c2db68aca86b4aba49c016d39df6a6cc9f6ddb5f7f1b299093443253321be9adb014e71abf96722a7e8d0d922a62b455297c2b78abe680a14f90ffc88977f663e73f4df83d73f4a12c908a4e19cd04b648ee6e61f1434f9023cb35de2e0488acf1cbc1e15c52f00ab9a9ac280d4bb037ea564037bff94681a9fe5114ed66de22cc04b868984386e3248312988f733e189996d071de53ac4fd983530f9b8ee00f00ce3df4b379216a5f0ef64df66d840d747986256f8bc915d9da3486815adb66f8f9f15e0dfa506f2df507996ae142fdbd3fa3908794c7203f1fedb0d9331d646f1049c7a79cbd32e65f7fa55d133440acc6d3675da56692d8dee1d894b36ea9f7de6a63918554695d6c4e8d12992653c36bd2b03e10a483d3a39cc28ae503e2c799264aaa026e978d9c1591cd471a2e4fb058a419727e76269ddc73557bafc80040a2c9164e61be9af1206f6ae831c87e60e1787102297a066153db94adc8d03b09d824b9eec878634b09d26feb3a083b9d30a74cde331d3974f1932083f65e44233d7c15048bb91b1548e389b087d62f50e86565f2c9cddf4819ce24e37365b1030f4c0a21e8bb3d8d24054e465e7a40fce56860f9c3dbc30cea383ceadabfabbb0d1e764a673605803266aa5f3d11408a7ba9c82d083a6c06175f9a9e5118a299a9cd1c6d96bb5a95473768e0de2a8071d5ecd2019004c358cbb031cc730f9daa1884fe140e011eef0e2e6d33075c0902f3c0da514a695311b0b3b227a3091bec2b5c4cf5b9c7af1b77a6ccdfcfe41409fc1467608149c6044e45c3547d1ead0e2e7ba9cd80ca0401225b45e6a0bf4686e6fde104cde7a315c2cbf8b5e59dea0c27109aab6ece456fc60886b9b17214a1b108316683940b1b4415e12d011c646fdb3f9a01cbd0eca1acd08230e3e3d9ee2f43a49ff96523b2ce98b1da7d2794d75be6616ca69c1ce12e0f0195367c0537be3af06e5cf814cba278c7b97db5716c602a5fa3650227fc40e9bf543335fe33534efa13536f0fde8236b3b09e813bcc732a518c7ccfeafb0b4ba06dacdebaa7349053c9b8b229f23660c54564eb14cd013791fa94a403c67c26fddf0f0bbbb1116961fae39a275505086e43735e2016eea894964dcef06ced73fdb009f79b7c3703d3ae7c1e6d72340b032b07c492deed5a2ee9b76ba6fc240006bd2b9f6e9c13ac07d955df3137b5b01e1c5cc17491134abab5097ea3de0726539c835f1d86dca5afbef3b16ed4313ea44031ceed69368962a50922daffbb8da4562801ae695c61220c5f183dffe1f589cf50d0167a6491dfb039456bf6280bffabbdb472d0b8be2c4555d9c99d0e080df68b55bd59fa6f63c4368e132a0ece5785dbb2a40bc63234c9532b3cef67aa2b2976faa867be200407213f24252cda132533fd46ad3ad1c08d4b2b15a13616aa8a611848105afbc9c46f07f33d6dbdbceb99053b4dac569dae4796ffea19c17c81595a2bb04cc6f8ff01c8d9d25f806505eb9a3695b85c70a9fc38989128244f9512b05e16890a09d3752e923e62eacb1b5aa42b5bd127609f36323cf51416255ae0351244b0c3e68545868cfc3045caf0172ed827071a5bc63966228aa52ee94a1be243a6f1786b8d970c3c4fbba62977dac226f86178159f49705c340042c35c04029fb18da5056586016fe91f593c56227cc8fc2992b6766c591d920828d794ee7142b66f7d24320f44b4ac3b963d53239857b59c051736895591e1be58eb1ec41bf830e07f94c0c0c36df5ec0ed592f66e3b24981441705b8ecfc783b62e9ff73a312e4bee32fdd4681adc32b85472d3aaf0971a60e58582f4ce494b8260c6c376b6ad89ef9352d4ccd424d0b612974d0d312e41b6d088b8c35a1a14486e2c4acb3d149aa8e73a8ea954909e1a52ea6fe1aeffbf100eb1e62c85cc27a4a2c7deba2039e1815764ec17586ec668542179c58254fa675417fc49bd48893a1a9028f61c6ee2899a95097e8cd24d91016b43002c0e630bcbb12a7c5240b32ace439afc6ba1a80a819d9b8767a8cbbf7af494a81ebbc05c1437828165fd0a178226423d57666bd6dcf163048a613ec76c1e0444662e0a9f6f31ad29d075a0e868613c5db73fd0208afa64467e8908899d2ef067d3d0ed57550b64b0049da1bca285922a1dddbb0dfb4271680f349d62d33140d2914b37f17156618e1c470abb149be3cd5b830aabadecedd10841f810bebd6ae0c4674ecdf6bdfa06da6a303d273da63417c1099cef36081ab6659959b32834c02cb34d384611c5af819da8783e1a5613710a490f189af34b9693a880cf0cb1ef1171ece54bec4d6de9464c9e3aa8ea2fbcd1fc02b1a867e880c283d816d381b37b51c322f56915cc2559b7f392f3fd5c1553e4c68e77e1f6a83c23dc6d4a2ce2019d035725a2974bbb37124269b95fbd027b998e0b9401e285b0d1686a994eb77633f618536bfacc940d55c3a377c77c1a20a2c79603d054f99088d997f0696a55defa37bacfc037e69e6f8a62eda1d86858833b5820706d32664e61f5cec1f2db30c7faf45ff3614e3ea6363700098c54c719f84035676a18d49cd81a07257b76a539891df14e068b57e670f32d20b13cc5485fa646135f7df2a4bae5869a48f89ac8d1695982e12bd9f3a382ce75bb38909fd98a998894e64b931bdd3fffcb80773de772a0c7e68ddb8e0ec4a9d593414e1cc4a434f1a0a95e5641d5714b94d326c4127000fc391c76d009af8387e8fd252c1d356bebf096f3b32c7ae2d77afcdeacb68d44bf9cce455fa7bc8b1212f50a165320efeb47fd40ed638decd30fc598e77e8dee9eff590287fd8f0c8b6ed4405ae05b052f96692546c41335d850887f1cb8a59b969b5a304b112fa3d17fc4c9dbb528ca31f6418b240a34612af31f32ce29ea23d3246e913308024f0a86c1b0b3bdf9e2b14eb59b2286b03cf1b01ad89b5af2ba9be1199f49d24ce2a029f22dd6a4a928af97d0260a7757295b3b46ac000af4362a0092a62d795216604036f331282ccb922ff3e422aa562e3154c4debb020acbf275b9f1a38c55bbbaf3d829e824a2a102c16949b60d23c1ba213d1d1a40d14ae1e2c25cc19a0a1006fb1254fa3e38ed7618e6638ee325c2dc0f638fd94e7ae43f5551072f6ad635a66d4ef596ba1188b37c117b1dbe2d8af17a35e4d96a77a21538e473a3dc8da30976a6e5066d8b34db921c934696ac379541bf428394b553a0a637363ffe5b9716aaaa10fffb10d2ba5eec13dabdadb4abe8c958dbc15907153197668446b79d06e325c213946e8922b2649dc51a4ebf85eef7b8b8dfe8a38270403827129ec18d2b18dd0299a3c17e1947e36356e207e46f534238b185e0f10745b2d293b02656b96d962a326291f6074d7911ac124a5fe7d142f3c64bf1fa78fd1cd7f11ada52b03f5133aba5be87208f2981e45642f68dfbb388af1068b305847b937272c0a94a10c0fed03f41c2071ce041c21ee0bbeca8edd7a25a7bf20782b7375fafd1ce3be6718a9bcd82ad12a3ebab6a24e4ee2b7f81bb81a6f9555a61efafbd4c8ab5bd5cdc5f7b2e12674c3aa51719a3d53e4ac2d1ff08fd82e6c3ff666150009179a2524fc4efe5269496348cb2880714734f18d23560f2e5883fb894c3f612c0671360d6f5d36a22c631690265641424e7e3d1b78b917c2f3c0ebef75a73d7df40a1740d71b617153c8222a7940103744151bac641910a2b791c519be0b9c4b59f57d978cde25524213e68a1fad7cf7bb150d08fc5b6a3e6c381bd65c14c72cf5508880f1f32f92cb449064303748bd99436a43a1e61312572c85f2127a378312521e7eac1cdc4d5d586e701301bf697ba53f2454dc2706a10fed4f3472b19c66bcffffd1aa5906320c4d75e04cdffeaddada4574d7ca55af3c897e7921a579d58c11400bf23adce37d7b5275f085809815bbfe76d028832de7efd9665d67fabfbac2da2d47b997891a64847e35892b8cdff3b908fa03fd56bf178c2366f1fa1a3289d664ad065853621c39f5a2e8ce0f360dc8bd857954ef86e4617bfd9b03e7e322f6e981a9ad0165e16ac828acca93fd5f0921b7e70365e049298587db6561ac9700744bfb9aacbe991a54105aeb73ceac485d4b4eb402f6119fac27d95aeadbf8b3900aa6cad18d94cc1fbb8660778c9967164457981dfc010dfd1d92d0ab6faa817d1ff794df1d1affa546a972159f9f7fe4942af44d0fbb1f1e2d883ec8fc57ee401e240df8f5480647037e7837c3673c15fbb92a39189beb0e53aa147d3565cab75af5d3dc18bfe45d79d0de61187a90f671d0da20d2fb00199e67b5638586287d68c37eabdd4c6601f8722072812c3002cbbc01975f33bb1b9a879b547e6fe0ff6dd104c28936fb32ccfc1f26034eed2e01b80d81c8abb7881ddcd7074c64a066e72d039080ff1fd714dd4e04d7114caa4fa72e2bfc7fc9b69edb4e7ebc2a8fca81327e963b92418b667ead97782c10283ec9496503e8c11c5302801723c60f5a406ee586d4f2614c9fe4bfd9a5cb0cf7f67fef71010b9f7e18fa113e4ed614a28f080f875717ab2be1290669d87a7a0c782100a1dad9069466425c2c791ebda8ef09771cc264bca3c22eeb99ac6650bdf652cae8d343d3ff142c48471bb370e11b47c88b4c241c27240602c7a36d0217f4a237198bbdf971f4431929dc3a40f7b81976c1f1eaf402501204123e486f23fdd7fdd0ed009c16ae9da36ae0f12f23e19d743b9a963429f20fd84ac771a6c0dd476df209993f5ccb5888cafb296c09a5264e84c09f32f6890636cd9775eca825c7fab0596a6145ed753f662ea8440e01b53989827e2263906d2ec31a18278f696d6cea0a37263de197d282a0f8183e267cc5f68395a002f1c5b977d8dc98b1fa11819790cabc51eb712d980f898265860ac504e5895584635d37605c903497705fb7e840e19f51da9fba9c979e8688564622989adf1ea2f5e1c24a4f108d27a1d0c16e2dfbef3487016a06afafe19ee2206c8e6ffed1258e5d50034139390ae73425aec2cd457e82fcd9250f56c2ae9e19d26c6e2c50619861365dac9e6c00d9a776c83979c851e5c6bd8533f52705aa397264bd02d99638bc57d9185871634358c5db58529735a78169f1398c425479e85849903bb1bb6ed4484bcc75d5095947b8492fd8b53372a21335a43cda790006acb59df2de06926e44590f549b5a5cffadd8e96680304914346ace3d71c59fd76752b5722246c0b4bf42f4a34c55167eb9c12dbb0b5b354a6cf1e33b10eee4cacb862e2fd84ae5c18eee43e840c6b8e7a48c3e2b77c7d5bb437a5b15a838da044ce01edb37d409aeddf8945d779807a5efd96f8dae7b3ab122459d43d041cf8b64bee09576bec35f9c09926bf997cd5e55c422bd6cbbef7d888311cf2b6e4a0cf172f36748d0449848cc90d11c3a6c35ff7ac61bd7ba2d2ff6ecfe1b6a348afa9b0427ef196a503e84558f8947b9fc2d95196a2a6baa00a59f044738bbb2a2e1791e2f9862137b7276bfe36be68d96de1fd079aee5e2457e5e7cdca0f80599f13ab23a4efcbcc52beb2db5c04bcd6ea30b6b00cb2e62d0ddb3a1e839f3adefaa9555bc9ac0168e050f28a52f64cc1145d9e5f013abea1c0a918af97d654ed0e9bbfe00f90c9fec4d0de3ee9d74ea037e92a45d9f354e771bd3f3e09222c314dc23b89b4780bae617159751359366eea79adb6f8a770bc77370ab0284dbd53f86ffdc49877702c8391075a826408a3712ffb8f46b39d97a0e4bc3f0409301ecdc3189c28c48d24531b107c6b4cebd3ce5955df7a13ecf83aa1b7a506ebf0b5cdbc1dd8716a530f4556dbae16c6ea6bf631b90f9f1482ee03fc29ed18b280bfa6cc3a3466367766d2d598631e8b048a4cf664994b73befb1a2e4cda827288daddde68617001becdadd2ffcbeae6f603bf47ca9d017d1ebedfbd595f76395f1c95efc849b9073ae8b669c385b42ef9848d3cf7af202fa410545252c7555738312e81a89102cf4c109e267f48c59c53899e635c52d6bbcb2cb8ae95a02d031f4db00d4dd0fccfe770a2512e238851ac61f23cdffa0221983e912ac9186b0b469fa0ec6b7bf4823f2942de158009d2db78141389ff424f1f697e0ad555757d4ba87b688f0ad112c77e8a1533e6967e5b8492990fbb0d8b1810e3e25fc726ddf3bcdba455152a5669b824fef0df050a37a716d6528f96a52a5880496cb5d54af41eaa2c3ced12092375b94cb9c18d6ac2a103ac42fb79a0f1ea36ec0abb361a81f206cb210ab96ded7f1c379857d83f3e61864c26f9b441112b91ef0a602d7cf0a8764aae93eef642f4f6354e9a3319d3db13248b90c37d8596539f0fe03956b8e39ec11e40ee8f7926c110a26c0ce315d2c53b15b5351a18b427a4e089da37f32da6a1d60d18ba463dbd17a63380c0b28918cf537490849b745d01469bb3bfd3d7ed31a7deb1a607b23d44b6804beab67d46b1bb19beafc124ab91fcef570943764de62b8de48cc1450e82bc881dd6aad05e7ad5a0440261d3ba6c6813d2489b1c1a3d744be78ed07e01e7fbc167123127cf5df007eb85f1f1d8b1cf405834d3a6c47f23df068f0b6982a3b3cb0cd087b2fe695804e44af25eb53125c0749cb38404df3e0e8c96b70311865eea5190c7d6d08e3c4914e07d83bb8a300df7eab3a3fb1b7e89220e79e99a26997fb82431a1b98a9d5a8ed6b0cf57585c46f3ef732b072022319cf096cd5a5fb66e845fe4d6b6bd673dbf5949fbe5430bed11ec40ee5bbc4c4f23791b26507e869b87240f4153540a1d1e2c8462310ee8bb72215844a2eb4275f6e6d0a3e21a5033d1886e593a2b85bd1ec559a0615bc73c6ee4fcb1a552bca86bbdc077bddb1363957745a0043b72670be7fd753367b6f9d030ee01d5cb3d1e5c8763c7679254eda22e6242aff184216d45237728fae096f20bcc704e5475778f2d15bd707f5e61e423c7314ba4edf1946baacca1eba0b7676d5ef260c7707fae2668af70947d46c0127d53af3a61de03a9686b053648a35c90efbaf49915fd103dd6da04f5dbdfa1906c40f11f0b1a787613cf313c569ecf4831b8b21880c11e87a493e2dbb6694ad4eaf9833134733307c702d664f12fa73904aecc79ae5ea43f99262cd2c3230205181b97f00ddd42da6609f8fb30570031f203975502e5abcbfc852fb735bf6f3ec587c899eb4d8969c99be53943908c5743f31d16cedf7ebfcfae3c596765e202796e3ab5b9e107cff0f8d9d6fdf312eb2f7ab079572973f3cb8a6beedcd0ffe71cf2e459f2a163ec6d6f110cdcc88879d27970bc757fe292b071f4526015b5d674acd317de6391e909a399e05b5f19cfeb450f48deb88691484722b481691ca05fdf78ce96bde9ce97b3c9d8d5208bd1caf33f651f071d7ffb139f7ace7ae5b1b26d3ad5d73e0bf597560a739f05766eb2a132e1fd0df08b11c15ec5cfa1b9fac69a725d049a08652060756fb22ce53c7f44d9f67e767ac3caeb80534f48ba9ad7ff878e1edb6d67d06f7afd60e8fa2ff657845be159cb8dd355c5efe40b6d384c39bf57696fc3fb770fbe037c0657cfb04b10369c86b4732bf6767ca2f0b504bae189b97bbe367ef3a3f55f3a763bde7b5d6b44ee88b17a69141eed3edf590acfdf996bf391dc0f1e1dd4b9e8c96a7f666f32193cc43dedf00759ca9a09c31964b78dd57ae22c1e9c38bb75a7a607e22ea6f4498f255fa9ab3389ac71f4ca8fd7ddc2c4d7c17b751070579b4e46477eec41190df3ffdfad9c28ffb7e6ebcadbd25e6cfc301d79cbb377f6f90251ad78a650f3ae2ebbfa65ece2b398785257bf0bd4cc3fb46220b9c3c92b89f7c3b20d9fe9288d43db095d6eaa3bca24fe4a3e69fbf1ed572e7c99b7cfb56513cf64971b9e3ada6d5cbe27c61506e61fe6abd6d4fbe5f715edd17d6f880bf1a9dbf14b5929df4ea0823526ee5e862ddc56a1b0af2284376928fa09c00b99cbe60fe7977cf01be26eec983f4699087e727387caf6f38d3f992ca7903568788d3c6afea90f172ee1435e73ce679505952b8e1f397fe9da9d353f1900dc6ccb904c000c07e00d20004c695dc60833f00660036038b03336cdb3cca1fb9e99803802507d2343c75c7b5b11eaa06f2155b4f7ce79c46d41315fcee8a2b040100a71b8f8546eda0a8bc05c844cf8ada62e475d39263ad2b5bf7fb682270a55dffa80db349b21343d412b926a9df76e277d24e06055fd462efa997e29101f4d55fc1d87ecdd00e643f094399cc39b3eec1c42b60a3fb9fb18742de9e204595dbf50a1b5cc98bc89199b66b66f42c0fa8e5e3f484ffbf4c68662674978c8a90e29913a8b83e7ef5f0ab237d15e7cce0a9d47d7906992e9fc8b60c974cf8182e84361791f9bd0d96652e5cd5080a46f6123278e4fe1560f311172e6a1a315481d2c3d0364d8ae46a6c2ced239145ff2700d43bfd5b1f323baeabeab4efd53b648ea132a739a4068be81717ee2f1fb9b09e8d2d00d934187d0f262432bf86517e7090ba5771d2b49b29dc8a3efc54869105658c2a838ccd6a6cd9a8b5f02c74d0ba12caf57d9fb03c6cc80ba9232a9db9cd5dcec96bc6a0ec00743b7c27b365e0751986f35961b13ac4a19e88b777135d3c6d1f77f64df657929e56c2010a1f39ae0dd7bdf2465ace4e6c8ddb6063d192d7efe7a3fa20148fe99403e866dfcccc2be08bf5b65f21273aab6c2048a42d5fc140946401608cf857d5a36b6ef41b6a49c4b17cebff64d14677d85f797e834b33601340e92f50392338cc640b808cb1d59641c29078863519208350267889b4686c7e8992ceb463ba8592cb2e6d68f45bc6d5e3a7213dea8c6253f6193d30317d410c6f69a146bbff8cc9f9a7a1ad209da756aae2c0cb44e3e899020dfdfceef5cb5a6f7521dc653717dcfefbaf0f758e0aed7e0f191f06ff9b59bd40d67f7519bcfb811700c508731494275b1f385ba922e28d6ca5e6aa0df0fe35627672b2eb48fa0f8dfb26716eb2eb22c9ff6f9dfcf9ae405c056db86b7c032b372967ed61e6a0ff12c8f745e4308a1ca1413973a97310eeb7f1731e1fd16154cba9c89d29b2839116b524340d89982580d3c7e7b8e67b9ce75a55f51d252714a26f733446d93a9e8bbdf0345854722f9bc25653d73adb1ecc1a86f1e003bad622d02a5a1b334008f88f24577f9a1576e86dd9ddf0b78bc1ab4776e0813aee2917cfc7e6f825912253bff29fd9f703ee67cf21c71c6a10e46d826c8e556fc2f42ea0aa8ee69333a389b65cfa7828f510110e199f4bb18caac1f6f69eeb34e907c9dda05b5c74f6a3ff779820157a596262380b9589cfec547ee47eb94a41f3c1d899829e1509b0f6d93c7c177a080b26850bafb19fdcedf2727608322a612d15ff60974be0c31bbf953fbef8ec6bf53af29dd17673a35d4053639a47446a43e33a7ab444093cf67c2e2cbe15eccf17df6fc2d8d80c707cd09997fbcfb16cd69fa6ada10702b866a8e15540bd36ee2e302e44ce07bb0b6f3271bbcfa51db178dfc2b73327ff39db71355c0b757c387eaf7d783b3c7060bdb1abcfc59e9b728ae1246e12602ee1de79100d9b853a91165b32f99fe21a630895a30ec6e699081d625356e70039fc0f79b3c4258193936971a5265d84a725a2d2e1084b0462a2a3335f37b4a9f84436f7156e963b520a7c6bb4be58e4eaceb83c27b16c8123bdd35f23bd40e343ef0e33ef20896ad667819c82e330b48b97024694927226fddb9a3d05dc1372a3570d58c0c67df65da05349afac05fdd563c84a6d7eeb5ad242832768677b3851d0ee8219d8f76f1164312638e1a0784921e661307be5ac66053aaf852de4fae3c10f3c94a7c678cdd7afa9570cf7820f16a22dac341a6442327236bb983c381fd4f6846512e8dfb72862c0d87ce7fce4b1ba421cbc1b091fbfb15df8430b987200dff129d09a48d5a0feac8e869e0deb2415681119257c8bee33cdbc0e16dcbc254b43fa07e699283d9af1e22da6629f9f83435217f5e54da15cd69630ca3a38f4c45b0c3766895348ab820a379a92b92c035fa7abe76e880108f43b1a719ee946e88add2e2b376902c431a9cd1a9145c0c959aade7b44e542ce1cce94a08dbf303ec031e1081352f81d61204e261f3a4cb19138343420721d0d5d733bbc094c6bb30e1af34dfde80e138ebcf36bc7f7497e1fc8fa11320b50b08504b18625194d289f084c04e5f5d6307835919ccd015a00a36c46e02308a0cc6d064c5d14f949e220007f84a90cea729715a95d6395818011369b4e7d35e5f2ce079bff66cece5f39ec71f49ba9b1c900574bda9065217a2a5649b499f2291cb4f204ca997bbe51107049d406701c6764c8f903914857bccc6356431a2ee3c6e9c3745bbc2a8474d58f4d916d42f56e1b293329d1e0ea64a37e80d727adb00aacc2efbd29b92929346a35682556378910cad421e2b76a9301f00cbf0c1c0b365715043465028131e7bc809ccc096403845d248a8e0a15659e2a94163af322bb2775503ce6d5759b2cdbe03fbbf4f9a67273a5e84723ee8146a35e7eeef4cb26a5cdbc4a1e73ee31fc53643e18f322c7ef808f5dbffcf627a7d4905ccc392ff244f2f83ad6d5f71271ccab5ae2c9124f5cddfbd4124696e0710263daeaa4c59ca721b61aa7cc395d4a9faac62ca635ea88221d734ed157e29339e755894de69c228b0f68a2e322999e4c975d994e734edf4d3a735ea2090be998f302c31f4c111c4dde14132e11eaf033c69cdd035dc6d007dc27d3e6968f08563f441a008606f460ceaedb2617227b946900aa01492e9eaef33fa34e059601fe80d89c17cf68f2a6d20e4b395c3edcdfaa7c8870817dfbc2f0e9a0fa6cf071d557f939bc142f856780b7aa2e03293a92798d65697d2057d77d5d177d370467f952e9e3037adffac697217c76f80511c12024488a23398a2328a2bed3e63124e9c1ee3fb8497e3a6d13d721cabcba0f4f28b2ef12d4a93c12783ae5e8f508da52e6bcac3094b164761473764c5c9674bd86c9ac3a3ae6056e9e0ecafc60d56931af2673569dce9c1d4bc7634e4e0d5213df390670435e44d0121960050386a8984481490a9820c1840825a0a084119448554a045982c612212c69322fcf97ca5da2c2f17bdb97ca720c3fd9a1c0965417378b95f24ea691bb10b979f150ffa57770c6ba5a3c50138f3aed90f440a30702cbed4d7b9721ca04fed4189e58947841c9174a9828b1b9ba2751e3d77596f74051498f298e55125392186326f124099d6d8475a1462049e49064ca9c4966302fae87e3298625a68b60910a0900a4d103450f4f0f0d159232b852f426725b63c9d275a435485048265226ddc0f3041e322a1e283c63c513c3b34307347adbb22ccbe24c28df592f57d7c2d2e2238264f92d162b2666f48ddf74715e1c71b89d9e302c608c6a01400bf01640830e11e6bc3a4b1cad174f9efe58962f9db5490f6e4b66248ee0d58923f83da9d391a89bd14546e7081d19727a9083831c26728cc8b101070a57f71b892b06e6f2df879443c404eed084da483944ac31c88be0118edb64d9c4e33481f372248e39aff203d964798941d511284c9674479ea88ef45c24d248132a2355cc7995e058a6c45458a246ae2bb9172b233e1811159941115f6487392f4ffa92b8f94791aa23a0ccebff9b303ca234ab2360688ef8e126ca044b51e6c68b39634c3cc96834c23419674cbcc98d655386cd07e69c3649d8888ce8c19c57d78d467b5b463831e74c6256460461c4e59900bf274f3550ca9a2c6a74660d4b0d8f393729f3ea37d607ab0dca9cb3da4edbde783001fe387c8944a4c99cd7478923088adb64994692880d0d1d73ce6b2c4f3be80bb14e150d142237150d052e6e93fb54cd40602663c0ac64d6a86482647218e283215c5cfe13b9212264c6f290585d901777aa212d454cb95caa22bc282200316188014215e3c5ec5431341011848a882688c0a98898214234afcdfaf1e322c78fefef7d8d90ffe38710cbeaac97abf3a55208911b19ebc78fab5b305ec070303bcccbb2866863082dae6d7de31e4201a31f54a391556942d0c84aab95060318e4d2620149f952397e22e8c387156e713491be7cf111c7d0e2dff2a6cd5d4edb647def952ee506fde974da411f8a4a13a10990a5cc39af4f7e223716866174df585b8959e59e8db8bc4b398e99072e634e199cc59c1397f0104c8e5616473646f6800b860cdc9acad631e7d575610976a351677da05582df8631e72cc7f06f722463b81d6665ed9cb34699b3aa4f64eaa9aa2cbdef8aba31e7d57d2a002c0a3605066241844841489439a72744884b0ad70aae29aa6ba6ba8090a37a4941f5529ad30ac2933e3338968b08baa02a9705b8a80861861031102248885008ac12a2873782cc204819049b73de5cddf3b1c60ac2fa2edd07bb8e1cadabe5012d392d37b00c81c5094b372f7104bf10f559960802b14005c457400c00a486208450055182209808225741ec00441b406c01845701f1a302420057d9c4f7f8f0319616c8a4eb966c1008890b1984950a4befe3a35ae92b3e7ec051fd68e3c7067e24f9817d7cc10715e69c44cccac717958f287cc8f810652c5f2a7df8a0d1b9fc777df00723aa1f74a87e208045466559c0cab10450f930870f5df8e0553e902a1f7a18a1872a7a2852f540d3c3e4410c1e9c543cf4f050ed8046b5c306aa1db81d7850401d735ea9ce7ab95eacb1042feb02fff6c1ebb4531ff4a58b04bbb891b0ae1f720c1a4b17d0c5aa71499535b8582e3138968b0d8c4ecc0e111b981918ee7b7688d890be6fffc9f1e37eb9399a1f13d36f6060b8efe1c25d8a2313203996627c1f6982bc587a9e981a5a625a58c80e7237bc1c4772f77040e3e997a237c5d8c090634caa04636c60ca13e9c7f0cf3915302b04e8ea00d501a0cc7905fd31887480ae3a0036e7b480e4a8d0718da5a06f0d51a94899731660562a5af4bec94ac5664e95192a2915165585aaacabfb5d17370e49a87018a37719990a0707e09064ce692afdefc6529001a250198007950132d0fb6907f18c46a4de77278e06f8510027540578c12e9bf8b1d4b97697f23f289e51fc3e55002227b02a808f1e65b4b0543db4a87ac8cc396566d5e36f9f62b1aced238240db879ed5c2428031087022408f398710c75fdd10655ebffbdfb8ab1b6e78e2877e43e90616abba81c79c1d01b31ac094590de0493580276635803a2729cc898989b981114090ca863154368451d950031b7c65030e550d745435c4e0c8b678ac4bdca46b142d72b47c6a5b624503131a0450f138028f1ff0202b1e46785433bc3143946a061154331c51cdb043007e500500075500ca2a005615001b2a0070010023a800005600c8a112d5e1c5d10af262d77d3a9d8e65f9122459723acba56b39d2e90479d1ea70ba2338961096ce119f2d6e131753bf0422faff7972f394287331e996581cf419439f2d762fd68f0bfc2e5d8784733dec1e3c89969f39812520406625ea2a114e2522221a4025c30f2a194a50c91002196ce697f38304f94db64947872527c8757da38b4bb543573b4255680b55888b2ac4a40add2ab4a39a7354538b6a0ea9668603873138190326062768400c9f18aa3088814318c26f5f5a3aaad3b1585d08fe176bc65a2f9de5d2b51cb146dd67b17eb55e48547747a36fe4c64f8e46dd068168ac4b2c953e425c42803bc87fa5120cf2a82f8ea0b7ff188e2e1d0c130043123000f105297c61065f70f2859a2fece08538bc00032f945ec85e084017c8e80207ba107601892ecc504713ea78328fccd0aaf389d8c9d9d96c4837dbc8d3ee835db58888a954e7c5b28ef8efa554fa74335d6da19610d64c4b572d188be55f3b621d357514a00e0070010a1750c005087041667633442c21ac96aee588e523823a5d77a4d3b184b08ebcfcb83a2e805b2863ceb90530aebf852c906ca1b4059b39e7b5851ede0b3917e4452da831e71773643422058da21666e042164490059e2cf490851bb090032c5081858b051faeaef49f237dd8e27f76391a75d637b258578b98d359dfc8627596f7529ee595fe2e9d462011fcf99bf4f37719738532ae00655e21c99ce4e8f9d25fa18715c0985790173d69fdfc5d5a418bd9ada0e34d2068851ce6dc273ae89857ff70a003ca9c2fe228d261c59c31deb4717efe26d1c132451caa40842a3c6161d255c149158ea882352f265db7c4a2421da694388a325430c29c73f69898d18883deb4c130dc341de4764c0c09c68727140986fb9e2944998293398a3253d0b9ba7ed34d019b73f629dc8013c34f27991b29dc48c146618e28d8200a5a44c18b420d2e2e5df737215b912296d55ddbc5627545364b08ab084b4ef7b9981a642c9718cb45a3361763b968144c0739d2fb53e89f10c7139e709a73ce27e85cddfb584fc8618a9439e509f7534e53660a3665ce399d10c5094f4c712ce9c8380173c217fadf8428be89c769c2936d6a829326d8ccab0939e030c79429ce01c61c4d38aa8b232fe7d03304e7e821c71439c090838b39a71ca7392797430e1ef3eae4f87d9bc4843098509a970bf853211398c03299c063ced9b3043afe2e2d21ca9c313161b869941086129c5082cb9c938341a5154716e29032afae857e72fb90260e1b38b4000719703001879024bcf10d016e97ee497f838421200108091a1210f0860fdea8e20dec461c6e7ce106136e14e1864a1b6368e3491b1368a30d1cd8a842196cb4808d15b051c59cd32299501d1c838204f140e108246ed2038d2f2fa32eeeefe61a4d5db7c3ebda7e144172b45c5e46df0d1b3ba46041ca131ca4905288cc39bb4f763d2d3d2c3d63e97b4a6b2c7d4fd77dcf1a2f58238a35303598a0860ed468801a2f6974210d31d2f049a39af3ea3639d6d070d1309656b72e72fc7c443004f7e7c571145f52612a448343a39ed1c61914382333430e33c4300334c3c811b470041e1c413c82d53f101f1114c1eee5fa404a11c59db6273bcb12f241162b5582a3f86279403cf981947fb3f8327c50c61565746554735e6339a29628cb21587c6a731fecc61e3248408648c645c60eb3f37d348a21c18c46ff349201b5d65a6bad94524a29a514a39ace38bbb6d27097e478c47433e79c539c2a3366cc3937e9858c381e24d243d48844d018fa19d13331923522923945357b664e11cf8ece88f3453b738a1630a74827dc9b3882a96d64c499539433a70867ce79c4f36c7b86e69338ff972794df017bff20cab37ef9c1269fd892126f40ab5492a0b72df15f6288fadb7b3b9419a28b305ecc292a32a7e8883945375305260a9b3945355e1c7144db141199534433a768466632d994dcf0704436223934381bb793b3b3b3719b112444728e7049648e9023497a8d8a31f9f2c6670c63346aa3199d51430bcb9c73daccd0136d8c4f5e298ffb7f9f44422e718ba00934a1446f4d32e69ce454d175ccf06402f9fe5e6c442fb3fb25ac214c7f0759a3cde8c95857f7e547ed12a99d8444f3cf2992614ed10e518848f7e12e77cd9ca2398639671ee7c445a8b67b3246a398dc0c5b7babcd523ba6a592c5ccd9c1b1e788272f46dd707a6fcfd4ecf47451e69763186402cba01d74b1a9ee40c836233383ca116f6a767abcb7675a2e46592e17a358f8378e1f0954b3d3f391404d7c17497f427d8a84f6d4ecf4d4ecf488e00e7552e4fe9ed4d1399d361f8df6efdcd331a710ef74daa3d1e9879230513001a00b0a940fe8c98ca457929a51790112654814e7a30c080412d19522e1018239e71253c5c5c89c2e617061381a71a7af33735484003d5d29f7ab456994ae1475312a881682e8396580c213e60c4972e3324c71c29c54fc3263794a9134a5088e3a1a68017f902c5e8876506119f2c304801600a842058818f3cbd00439e64ca900b151092203f393b24f4252e51c72fcf2a376ac52391acd3931ef1b510982002a40a0a6ca0a13a6ca8f70cab0041994a0e2030a1f1198735653c58749e58707c0918439a78ae564ce794300f4903977b0e6bca1c79c33f098538628e60ced40c5079b998439432d900109b3eb547aa842a50752a5079201944c151e9ea0c283115545872ccc22be0b17539f861a467fabe80004151d3e30e79c3b9ce87307cb0e04a8e850c39cd30053250175a824008d047c31e7b42c223d3a96ef337071f11cf43ca5e84d9e09906724bd923094f1221232874744e23d59b3c9add379ca11a7f4b74dc9c59bffc1237d7b9b4d6e1d4f8e34dd7bb2e6ef8c462a2a0f98738a44100215951ef366aa546274cfc1229b0a0e5a50c12188f449d0fae006c1521c2fcb32919e74f9ff47d1721949cf8417c1cf832724ffe4fd0ff7895c63d9c571e66a61e9e238e303faa42c9ee21fc83fd1e0f23f3d2e1feca09721b570d6d5527eef9163108bf5236ef2847ae9a00c69c4e9e23893da3a23090939537ed49113925d6e2248f87254b1a10473ce1ca68a0d55cc79315962a9d8c0c39c178afce518f298f689678788cd2e37119c1c72b4a940a3d1ff7facf9630dcff7a08e11a5bf6dfe97f3e58c9f78e36b68444ffe3fd2fccf04c8031649cd7c713ceda02f67e7a7fcf6e510f95fcef7503ce208d27c39a43fa178fe6993a4ffbf9c5d6e223cfff7ed6dfee777c21d7104534028206489ba1071a122eac10c3998610b15d19039855cc00a09a4766c31e75491c147e8032a3ba098d334f2f8800df0a43504f651a71da2a912e2c1dcbeab8478cc89ead6688c4a0c5e702af3085f8e40a4b87dc86b865463c8418637aeee97b0c210457aa097b1a3687c78481b2444409c134802c91e1e24ff4848c323e3bd3d13e302438e3561b8696846a31a3a38f68c461cc789be77b074fa6347713115144f6049c650ee571a03030343dec0c0787b06c67bdb1b492bd6df30710c000e2ac071051ca739e7552d21ac9114e1a0e93770cc208f437ad316fb4d17c11f4edc41478c9f0872312d964bb5a8708f9f78b34d3c09e9c13ed27820d0e77bff7590fb4db6a9f43f1c2cc9b1048bf853aae4c8118c114750b44030269e6434aa409df4c6e90dcc8d3a66c7c472e9accb8d5fb991c48dcb8dd9869439af3dfadfc693395fc45164b1da70d2864d1bd69c3da38e25fab0017636a0b07162c39ad7969152c79cd71896142728292c931c53de1a53e6bcd618639e68d678628d2497b88635a7a5861a655c5f0d276ae8392f92c59a5183c7bcc434d09873daa4318339e737ab3474e6bcf6e8d128c1131a32982d172fbde5e2e2b18820d7b94f969b3b838e39cf9072c619a53358408b1ccf30838c798d6319f38d23a963a4f4b78d194accb066c7440971044d60790434e664a2c41225aceb08e4116a195528034a49ce94f1cb18d2592e1d5ca244377ea532784c32a490a1c59ce01f2d3292a04e64f4984698322f2394fe5b46e8a611b07915a18e7097bf0851e607bdaa084e7a11868c5f11e69c93084498f322420b889064ceab2282350429353d3a43e062564358624e12559aca3f042b842d5c17298ee32f4b20e20682d2114238854043106230e7bcca10f5bbb82d977d1304278220240a1b51b2b04ad1f78efabe8fdcc5fb6cefed44b101421df30242911f7021043fd87c70051f74c007353eb8a10760f4200b31247d8276f795fbff6c1ffed2fba43e296265e87131155aa42ed30398d40e63cacd755ffa6c70a6dc5cb9b998181c181e9076f0851d943167c7c4258b393b262e4b3a6b073ad6d577e0430752e6ec9874907349794bba0b4846074fe860880e78cc6b0c2863e8cc943706cbbc3e588951c785591f14630c9218dd9cf312c5e09103293980928327ac1c0c010afd378d39c8615e551851e6f5c308a3140610f3f71b90c341c701cbbec1931b7c3780993660820db0b041111bcc1aa8a00622a881916922432ffeff62751f8c2f809106184fcccbfbf87083220a8c206860060dc0e868c0e31a471fcb7ff0a3ae9fdaa1efba50c6ea3a6b77a79c19dc60067e06a4305432a0810cba96aeebfe837fb448df45cf63a08418b42006a61810f9fe8ffbc3400530d8000c7a6070c30ba258246a4c7d0fc7ba4ea8179ce60b8a985fb0e08b137cb1e48b15284880d205940fc5e6cab146ddcbe8faa8ce7ab946ddcf2e3938969df5ff3eb9a08e59eeca0560b8e089f95d90c40544b460ca05b4ff6fc117f36a81b6c4ad8e8a055ccc12756241c7821e5e40f12289b8821540e12b6882f256908338d25817398a9b0aa2cc39bf0aaa50c1a7021a9482282938cd29a6a0c7f4a7f1c993399fe8cc79fd6ffc4f7acc79a1800428b00205fa0237597ef142c109c698733c59be449de004d8bcbe09a4589609529e096ce6dc259832e7258224efc610d5c723353b3d632f819359021bab04395896d5c51873ceeb7761bd7431648a604f8e8ed5457591000b24e002b53f92eb93be2cfdb738595a3c24d011371f011d2390328227748eecd858e2f6a7f1e439e719810e1775cc7995a853c94514cbe2c2c9bcc6928b245f936de26286936702fc1e20c3030ef0c0cbbcbaf77e186e0fe4e4f8813ea2b77c62624830e44892de9fc6b2034ee67cf91fec40929fbf51bbea40cc16745c9def7c50d7e2721a4b966e0b3078b6d0e29ad9a2546e3164668b1caeee9bec235af460ce79f9cfa345490b0470800c0e60c181221ce8e162d28d461bf43b17936e34f2e52679b764774bca709782ca71244f63c9fd1812cccfdf658c6702fc315f0317d0401119b04206589001243280812f30d06160880b3ce10218b800cd057858e00b0b0059c0c697254876beebb6f53f93eee76f128a8f7d261c4b9b047da92cff0e0abdf72d974d8ea7d097ac5d721dc979b2eb7efe266dd2ffef2df1c6fbcf7a39759f0a595c4ad07ba18c75f16c3d37249c8d06e7c64a624786b4e1e41cb17270acbf4b5d4993051a596421834515b0f80116221609b86207576431270ae422489e4e28ebfb88e0cdd5fd47a5422b458e4ad03a813fff6402bf0b582ac120d06be2ffe6e215242bb0604508ac5062cecb07e5592971b730e9ba252c165986db1b431f938f588518aa48c29cf362d2e58c55a8a00ad29cf34a792ede7f2e9dcc274d289133a144aeaa805651600a05dca080141478a1420a155050d151c1c309119c30e1e4c7490e734e1f8ea4e581466fb7744b76089a401ecbbac26e7d7064bd08a49a00cf1463a8a67041350517531c3185106a481101293c290430afa0511c7dbab8f7cde5e27fb85928b28ba3c7fdd20ffd075d3811457ab22b51df687571f47c145e14178a2c545004018a2673ceb1dca5b87d286e1217519fff1268402581215188c01611401281f944159e78e3092a9ea84e78c18912cc90f3e5c871a36fad30346d9204830421e5e00409628da545de5c63906559a36f7409c71392cb97e3583601852632d004114dd4267654102003024d2a08dc2bc8fafb0ac53d9ebe11261d371a2d39a1becdfaf1e3c705e422c49748273048e692b11e50840788e0015170e5f63fa6850586fb1e078cf17925190764218e95038c38e01b79accb34925fcb8803c60d134a30b1c384e8847af9e1486eff535e6a4a4a8b8b1cad2ed55304c84113b0490eb333919e942a4fa6adb3ca1f7ad28b24e8c34489254ab098484f92b1aeddc48ba3dfa40f8ae31ac5202e824e735ebd0a0a12c0f7661ff6518d33ed7aad94a9ae14c595a64f1b118ac0d5ee8765aa6196f38d3311e42e4671fe93fb74a909255a9cd013fd568c7bde5cb317b3be9469467a51bc41e2c486d5fd557aadd775a7d67f5813dbe77d36eb19c75aff3496f150aa4bd3676120b06998d74f637dadbf56e35e29d3eeb94b71a63d60d33c7fb5befebb1cabdbc364fad6b9ae4f7a8d7194703e0ed8b4ae776fcd539b2dd5347ada649088b2147b72e495894d639ebbd733caebc6346ab50c47099724e5510c7f156b18addb7a7b37d9764633f5be5dbda7b5e63f6d88a0eafdce6af61deb9f476fcf01dab0ac3f8e659ad52cf6698e9532fd7a84dab02ff3bafaddf397719edaa1a559b969fe6a1e9669d6b4537d7329d3cce56f9e638bebded75fcf2df5c8afd38d6d4d3da719c63c5f62c334a6a94777dddab3ded3271368bdd3e6554f69d7a887bf2f5b8d8d1bffacc55f96316f7fbefbec46dc68cd5acf357bedddad8d9f78c34171eb5c57c651c27da60deb1ff51eb31ece99bf9fe723823f1a166ef9f3996adebdb852aeb7b514d79f2dcbbb66acd2ccdf8febaf5a8ca38453a2015bfd74d632ac6bcf6698fb7c5d61e8f9757912dc6cb6358f29c7346f6f766f29d30e72fe942ab328735d29715b1c25dc56dab8b6b57a9a5b4e79f6795a29d3ac347d41f86c1b63faf1ccc3d9877956a3d5624a7c5bc63fbfbd8de14eb5a75837e9373ee2deb92eeff34f2347338e12aefb7db3a761f4d33e7f71ce7a2953929115d29737d7e5499aebea1e3c8dfcbafe55b3b352314a96a75017bd5e0ccb3867add58cf3ad14d35a63cccb9fc616db195f5fcad47371e4c27073cd733147acc1fa9f4612dfbc7bb3cc53af61d6ea8b2bc6384a38cecb1a46335da9a5b46218bb34c3746b8ca9cedb67defbbabd174709c7f7f6598dafd679c5dba3fdeb1847099744b7e9cfeb1efe6af7facbb4d7b86d6354f328bed56abde38d95324d91a5fe9c94b99f93fb6a384ab8cb008c625a5671ad37dfac73be956a566feb39ae58bd1bf3be832377af0f930dbbd7cb9ac534ae7d3867afc49635daadad9e5bae6fd6f292cd5eaeddefc359ce30fb6596542f8e12ce0825dbf5dddaec7d1ee6712dcbb452a6ff67fb13577a1f0d671547094793c4b66b86e9ef769d6946926cdac69df29bb58a77f52a86c4b6338f639c526c37f7a896afebba388ef37e38ce384a38b047cb1ad5b2d6d9d5955a9b31cebe4b77bf7b67f5f338a697e7ba566a7656f005916c38bb98a6e5ad334bada75e29d31fa4ede28c6f9b798c7adc7a9767c328d5faddfef26c31c76a29d39dedb35ea669dd63597fb6daac52ba008ab3fdf2cd346feb77b94617a0936dcfe3ea6fcdf7fa9d7929d33ef2e46874d79ab3fceddec71d1c2c630ccb3eef6699c71b6bacee1cd934cfd332efe2ec55cfdf6e4b996a9a8d78fbc358f3b86259f37cbeb5928a6cdce6dafbcebede358d63adf433c547f8afe3dcafe518df7c3dd3489e68e5b9d9a8b6fbc731ccc374a79cee52a6a791ec14b3d974b57be3ee7dde7bdac57c298fa5a5466c997b967e9f876199f55aef52a65e1c43cef14a69cd56f7d55ea55ecb6886bfcf2b653a967a66f399d7be76ad7b8c617a67a57c5dd76533b23c9d88e48a3586b3b599a6596318cdf4320185e1b5f18d659f59af3bde59f3ec0ac9881572fc7c509e27129e4c60cd4c28d196a62f8866e35ff69a62f7eb757b2fdbef1b39cdc8cc46b37db1ead10f6bccd33993d9f6ae9afd30cc67def5326de39b211bc6be9cb9f769ca31ed555dcaf4e32ca598720f9453c4a6756db5acdb9b51af525c9a3e8b634ce3c8f9901cc783882d6778675cbdca77d7302f2b493d0466fb76d7baceb6e67d18e7af9732e5b21e62fb34d718cb68df58c56ca6a54c35cda34dd3cf7a8fdb6a73e657db52a64123e943abb679fdf9ec71ee71efb1f5bd9429597e247ad374e32fbb7a736ebd5a9a3e0d49de3c9b7dae3bebd563ad7b5cca94ebe2e6c64e6b4e026f3dcb76d634e6332cd3fcfd4a99963eeac491e3c76199159a15d20ac9c80af73d417b47a339c351c219c9369d69a6f6d32acff277372e654aee12e7b0eb2a4ddf85448932715886a38443e26e1a6f0ddbf4db1463f57eb994356aa566676585646485ebb992e5c97a72e41747094784dd72c5b2fb695ae5b9f28b712953d28b75d31fe6519c3f4cdbec3dcb4b99feee9bf864748564c4df2b5845ad5cd75e211959e1ae86a3840b39a12d18f59ff32164e5fa2c2f2c2e5ddcdc1562fc3f827038ab2d9403c2920020751c491d820802840e2b3dfc48808fbfc30f2c56053fefc30705f4d077e0c1d4c30ed4931f478ee55600f5a1c357a27848400e94f3256e07045cccc3019a8c41650f2a3f9b73ff53e1ac5a38e84ab9ea7f76e87125cb0025b94b2005a83f7a883ee0ff810094e50612880198469e0550e90fceea89fbef6203c752c30f1a80e0c1713f66e09a6c930f01a09c8fcf1826000096e8039121e57f5c7694de0748887224c7954d7ccbbc520851c11c216fdaa248c80a3c20001b661a530043a6053ae3ecda4a31172182b4b000090288951f3e7eb07ce881871d14a043027240c001542a1c0cd08300370c400036d440038f1902008039e7ec01448ed98325890c5ed830d380421532b3f4800c421550f9634c1f11e4c2fdc9ebc700ca9c2218847ae8c2bf739b464076217a81e80b1770505c30e712e58aca89092aa650c5a455c2074c9adf6fead5987a633833a76805734e51132a30f124738a2830a70802a22bc64fbc9953c4c54f81e8c9f889371f05a2136ca4f13381c889ce2951017354c0222a60cd9cd3028d46a212cc2992a28b7f5229a5608aba280960aaf86c24dd87210ae78b23981265aa081601cbcd63e249b8f02528829f084210893094f9729c98531482ee734420f8738a3e20a2be39451ee8e015e24853729939451d10479c1ec513778ba9b5c034b5c926383067b5a94d92327f4e51063030e7aca74d9244525c608a2c90c5fc312afb88597b4cbc49bfb13d738aae6822025364451533680cbf930914918421aac687de2e479c1e8e3644e61455a024c7d3488a484ce00e69fc48faded7f888e088b341e0b44992376d9c265bb83d9111e7878f46badfdd5360a24ea61fbe4b9e3fa7888a2972c2c9bc7802a229b09af2454452cc298a82f4454231674e111425b94f738a2440a2429d39451130c27370ec29657689e4c9f148bf019f20fd0f288e47e61439b17dd0c71b0937c8c18e3ac27fd183320d188d6c6a664e511373fe90634d6a46679bf64715e9a22fbf4762078939451078c0f4e458fa9b4604475e8233df93de8626a9496c929b244b8293e4243ac96854814623136ff2ab051a8daa051a8d2ad0686481b8ef89193f1186fb1e72144193376d31e6efd28d69147d378de2ffbf8720123130dcf788a8af63aa4b72eba4fa3853a6fa381313532d4cb54874a5288d4af99f8b5160b5a8189524488298994d38198013483c314353a042a88d100e4261a8f4a0216a4344454f694e312562e24311135041a24517c2400a03e9098c459a731621522274830842f0810fcc59c50426404514524841c60c002c62886a0161893ec42c227eb0441f662a0ba023540022a60b5ae69c2cf01182992db29858cca9337b8a983be84431fbf6e4c5a89c0ac471a79fe3844ace12395d8b35fa466bf479928514347e8de2bee78327990f9eb68f189e4c200e9369c48c5139b2831cce836469040773f6707b1e4fea6cd26f72cbb22ccbb2ecde7befbdf75e6badb5d65a6b6badb5d65a6ba594524a29a514ab58c52a56b18a55ac6215ab58d5344dd3344dd334adb5d65a6bad73ce39e79c73c618638c31c638cbb22ccbb22ccbeebdf7de7befb5d65a6badb5b6d65a6badb5564a29a594520cc3300cc3300ca39aa6699aa6699aa6b5d65a6bad75ce39e79c73ce18638c31c61867599665599665d9bdf7de7befbdd65a6badb5d6d61a17f73d49b6c3025bdd9eb7f6e31fd72ace3ecb62f39963ecfdf7d5cfbb99de2e7660b1ed9c71cc3f9ae1ef525be98e2b360ccbb48e655ecbecc678feacd87caffe6e8f69c7d8bd1797f2d7a31d556c166f9cd59d2dd65faf1986350deca8c06633ac2bee94e79a7d56d319163b28b07dded7acb5d53ade557b98bec00e2a369d59ee39f659d634efcb7096719470a51d4eb6aa61bd5eff65daabd6629ee6764c60bb3dfb4dafd638dffd665dca349bd18cd831c5c63dcf668f61d5b33abb5b9732d5bf525c298e128e668714b5d27cadb516cb19a6b166f1b5956a9b720ff74eb756caf4baae4bcbc8f2b4238aedd28c6d4e717669bdb7fa247640b17d56b33e7bcfda8e695df324b0595a7dd6db6af67accf3700434ed5e4a2dbed8b51986613467f4eafa716b2b563d8d5bdf773cb1714f77c63bc65aee5ca3b59469a9f4dc58deb2c926c3438466bbaeebd2384a38264263a035d3300d6b4d5bacde5b356c69e7d873dff3a7b3ac5f2e860dfbb8bd39730df32c7f5cf3e45d2119715dd715869cb5aaaf9633d6ba529fb3debc6b5fcdba0fe8595aa24ee24da5949221306c9763ea35aa358bb3ebfdbd2efe41d3756194a3fc83a68bf11736ec3756b1c6f9c328debbf61b8e7a61dbbe6b98a6f54f679ee7b5dc73358e126e895017b68b315fe9a5b4db8d5d4d31ad63c3bce7b46a19f599679ef65cd87476fbcdfab3bc772fdbba85cd57ecc3dc7bee554f6718d3c25633de5d671977ea2da694fb9fd1ac908caca47c114d31ca71b03c8161e86f16b6abb16b3f0d53cdbf0fd31a8e6773d644080b9bef99ddd8f3de679d67ec9b59a15991017789e622312a4257d8b0de3bb6be7e9fbe159323577a9f4b75b6c246b16633cdda8bf3f7659ad71a08d1b1edda73adfefb76b61de39fb681501536dab7ef59ef59db7963b697321d3ff1a7b6ce755d973fa5489aa3da522b4254d8acb5147b7567ebd9ebb5ec466b53d8bce6d4cb2eae976bed69a691ace1fec4c3652b850dc35453ce7dcd95734ffba2b071eaf92ccb70ff76a5987693084161a31fa59af3edf9def1b6f9095bf7b5e79ce9ba6dd758c742532cae5a4669ad58b317d3ec6acc6b5bab18fbefc37ade4ed836f6dacdaaf5de775d1a470907146ac2566ff61ed62eb59eceb4ee736c1de3dcd3b4ae3d86693ecb726cbefa8af12f6f5ab1a6bdca844dfbba96b34f6b18eb8fe370fc6eb96b5668566e564846564efbc8759db6a94a115ac266bbe5d9d634ff3c6a77f65daf43b1082961bbd8b658d53e2ddb1e96598da31608c5b1615fa7dedbf87a2cbb38f3fe9422792004c7a65dea658feeac734a3ded29e558104ac2967d35ebcf6a6bafe6f67a161b4108099bf7a8e716bb36f334c33d2b657ab2e4a8735d9804426f6c58c772f6798c729c797adb4b7bdcd8b2fce9ecf96c774aafc530a62d08b5b165b76b1bd78efdc5ba6236c36c6c5aee9ad714676fad47359a224b71bbd48b90946ddf7c79f57cf518d32afe8e5cd7a540d7a531cad14b812c77d7d8b45a29cdbc5fad79aebb3696e2cd758da508962135368fdaea617a5fae2bc6ec97c666bdfeb4d799d5d9cdf00ac98895d34812b9aed348f6ebe21e080ba1b165b47a5c5b8cf1873f4d578c72f4631284ced82aef94e6ddb1cf95f28cf75cd775a5caebca30cad19c2aebf8892066c6e63dec66795f7b7dcd377b6d8ad011367c73c5acc7bacf78a6699bd3ae8bfb4e32b2f2f99d92efebe25caa04c97dc2aa089541961f45729c0e2132b60f6f7b7bef58c51adfd733c2e6e99a312ccb1fd56aee1a2b65aa8bb0d98d39adf6cb32562fc79e089bde99d719ae5d7b98663dce7094700b080d61a37a671df33d5baadd5d33216c9a5a8b59debfbbb37ef3f5d9a49c5010b68b310d635fcdb8c676fd7694cd67eb599c61da2d6637a62f4f0808b752fd652cfbeb75ffb26f40e8075bbfd766375bbeb7c735fc75112ca27d9055add56a2f96310c534da3d57aadb55af5bd5e636e7deec1d6354c6bb453ac77cd38e5211e6c9863d8676bc770f79ad7ed0e360df75a77ef967a8f5baddf9b900e368cf2bd2ff630f5b08f677c8ced669e57ec35cbbbc7b34cc5d8327b337bb9b598a7b5a5be947d36e9ba7c76795da4ef2b353b2bdada8472b069597f588669d87e98c6aa0f63c31a736ab14fc334ac720c071bd556b318e639d62db6ab2d65ba84e74a9ead908c585962dbd7e5c3d243fdebba2e8da38443856e60312cdf2cd358a3f866965a0cb35fa558f32ec576e69123d00e3fce070c438f6b2a64838df36d33edd7b35757ae597d8d846ab06136ab99873f5db1e5f66aa54c7dc77668343a9625a99142606cf6d36e96b3a77dff387671e8411c0f34923ad7457fe8fb68e22a0d4388061bb6da53cf568e698ef7c54a99f6be7b9711c15167bbaedfc91dd4fd094233d838d73edb9a663dca35ee5a065badb5621fa6f99c75ed5697320d51261ba28e5c9736231483cd779de5fd75ec616d2deda54c7f6ad078ca60b06535eb9ad7cab9ffb09bdd52a620c795e412bf5e57be22f4824dc374d69eb631addaf3978fa5a6d9769784bed83e7f316a3d9cb557bf5a7b29538cd64c5f8cb238270941d92cbd36c3eede14eb5ed66c29d31fbe4f37bbaeebba18755dd7d5c5ebba391481900bb69a61def5acdf15a3fad25bca94e4c1e40e37fff8c787bb7b2012c531c551c2c5845ab06dcfebda57b9a63df6ae8759b069765ffd699ff7c76bb6bd179b56b10c7beb33eed5f36e26cb7f318e128e4968055b9661af658cd3fcdded331b5201feb4cc79f79ffdbc4ceb350598e5fbee8ff28f673cb3f409f6bcc69df3fc693ddb0c0ba160cbaed598ef977ed567d8864eb0797b631a53bc7bc5bcaeb18b4326d868df9ff62acd59bd996b9c663b54829c7346bde5b4534ff38f9632bd389f4ca0ed62c3fa57f9c5349db1cf5e2f6be26d481f341aa90c089160d3dee59eeaeabffd5ded650dce8446b0e5af568c5ead7dcd1657ed99003f924b1cc5eb32a1448ca384f3425c6c57eb1ef5e8a61ac7f0e779764322d838ef34fb3eafbd2fd33efe69a1106cdb569ee1da2ff61c0779d1929e872c7928cd64f9ad1602c196694ce39db1ffbeecab9a89137d9829671ac98f4b9d469ef50cb5425af132d48a567de8031bad9fcfb9e7af56cd7aef339a9007360da35ec61edf9b537c6fad43421dd836ef16a3fbd3d8bbd8cd59de62b35d7b58b759fbb887697f67425a6c9856f1d670c79e7b949724a77160d39e57b9ddb76259d57663a20fb99a11096d60b3347b6d7b96697c9734b0ddcf7ed8ebf8cbd47afdfb4a99624a963f031bc53acd1ece5dcb1af39f2f65ee8395fad0db5a08039bc6bd7cefb733cdb7ddd49632c59c37f9d269933e19dde5ee5ca5f988d00536ad52bcbdaaddebed6779f92db0e9ec699ab6d4e3ccd37ca6b32c36ce75c6b3ed3aabd7722d5f2cb68b6537d3cce66cedbd7bdb2bb6caf3e7b9d737b631fff15bb32d64c5a6f9aed5cdbdedbad2baf7af62cbd85f8cd9ed334fb54fc3a54c2dc7f9a03cdf71adc04677aedb736eb1ae65b6ef52a67d9fec15a2c0a6b1be5fd5d473acf12cd752a65cad0951b1658cb39de19b39f7daf7f952a67fec976664f971c8c996352db3db7a5aeefaf3b49fc086bbd6b847f9d555a335dbd0149bb5d9ab3863af6b1fa6f786a4d8f0de9d67ef55cde358e71c8a62c35bc36ec61896b3dd3a772442506cfcf29b6998e71ad77cf35bca34dca48f2f4590ebfb5429e9cb1a4d8702a9c7a8a473c8a63dca9019000080a96900231100202820188bc6232291542ed8853f140002539850b86648174a14298721648c21068c01000010000091915000e5ecb0ff4626970e83086812d5cc55631510672c97e748d960312fde45f95a6384c0ac0088dd687bcf47079012ce4d4f6665dcb16cc35d9334888da27cb7a16ba7c404d77c9a3acf1991f959e8baf19717880d2c03fd098a86f334573789d85e00c4a7dd01351d402ca34a11814e521a1184d8f6f2475302ae3a5120ffe3d299b767b2148e0229eead4ce7ab25e86a9cdd29fc09fffa8a8ba5688067d80471f2e1e3456f93c962dc3123ebb34cfdf18b527358a985130f95fd2fcada79c18749e33e9da47353c6a7fa9492213d26e2d5eab848e5df822339254f629d62b2473806d59350d231bbe9637835636036a7f4aa7b53820b4208026950b9d4ea0e9fde8268e7228c24249a0770727cd47861bbb574394fee7f2d2c000f2e4afc6d055a49531e3a157a5e895af6e0de6735ce4c4328e0d11cf7fcde0c10e9525126cac0f13292edbedab9c6ef17643fe03150c9408d0c4f8b9379280529187214e428b8966197c811a6430b9683bfe0238430e88e74b575c4c39bba9d1652ddaf74a0afb411f495351b4121e83bf7f72b3f306de94056ff4971874ece7f954d3b47652d8bb533ab524b9522175018174ae0fbc33bc087fee32f7b171420ecda3a95c44babf6d64003c0fafe4227ff15df141fe69b09db8c237db3f1421b97607b49fdb111c45e070a9a33b5b7d55d5518bb41cacd6a14510d81bee98511ab3e6950c00b019560f16336c7553b22c8948234616446061d7c9d12db0c58688d39dafbc7b4d03a6218b6f97f960b2f1a0588e103bebcc0c779269a6af5fa6424b565d7eccaedbe8ccde1f9215e753f4612b84197143ac62e828150f80bffba08d46c03cc8b8bbdb35557c30665b9a35815ede81624dc0b3dcab715ea6f2b29830ba6191ab78df43571a81827af758e6975da6db286331dc65a116e90b3d50a85bdc47d75a664ba268928616473c768137aad3fff0e6b6f0afb39c96fd8622821402e85112879723f62de646260d41d7de77c623ce88f250173df3ea71f9a2c3e56ad1fa4ca93ddd6b96fc61a18bcba24ccea1c62a7c4e4e52d8bbf55d2d61bc562b1f46c40806da0b3b72adde8f32c24276d07120f929325d64e50808642ace6d9cd71c370e4010d7a62261b48bf764a78d677d73e0e8a8f96edf076e8ec571122d7ca7d2ca31665961783b54bd6ee53a93ccb2a64a4124ce821c428221e5c98068a86273fa8a9b999f4fd82d9666759cdc1c9f4446d92f33dae1b5a422cfacfcfaa342ac6d0a3f3a799296b8afc99e214ebb6963c188baed1331315aabdad10d860809b4f5ac5212b075b5256a52b50a9defb8e375bdffb9f380e22858f4f06cbc6f6e7211ad3618d31a6488b643753bf9d682a66a3d0523b81b326b531d41b3873a08483b2fad705c9faaabd45d61fda12b35b6254a207c305792098b0a0c71b6abd550e9cf587c29163c8cbba28e16e9568b6a6b1109c86bad23bc6847ef9a8bd82a9b8258a290c478ff1eccbc4f64394c408497b92ad83a6e23695d6e1db91340b866b2e8379320a8311044be961c4471b1734a24cd6a5aee878bc1bffd921abc6d69765f30550ff6ecdecaa76352efa51b60d63dac80aba621ab18f0386c8808016a09861ec36b52236d6c200c42674446344793b0b23d4c083c3b0e958b769955e10e3c3ff39e43b090bafc3764aa81569b85f18d0a0b6563b5d0724258cf80ca0e1557b3ac2300f2a10a09e6151cb898952db4f38e8a3dd9b10f8fe06c1385c513f9201a3a7df0e46e087fb4b60348383e0368df893215976d1475397712ed209a2e5289d8214723e9a3cfc93328aa293b19e14245d2d3ea9f243c727c4d6f7ae408faafea1c22d0d0ecbce8798ce9db0b757c26fa702ca7068b2d2021554aa14709ef499543a41827438918f900aff2384f4263883bd9906e0af8607d6c2dc5dbd47f9f408048733c9651d846172d04e3991714fee580c56053200d5ed50dc75a0b965539aeef74a698f7912311508924c99c8ec973d0301c6360101cbb23f16b460f309548e2949797ebf22e132df47471099ef79e8082ef383b43df42a9f283f213884cd69a0342b795e85e423aea08bc00e4c427bd191272cf4b89ba5d9a12963327b61a727ddc89a687a7e304aad8a1fade59cb5deed1266f77e9d70e29f150e261a419b489ef65a47666845b0e2c64ec20d6d56807d01949259fa32db11e28ff87ebe268e3bab6404ebc11823c5ea914aa784fca39fe9d790aa961ac61e8cef6e0d0cb203a701a4374c902c3666c82043daf577b3367013920125386e6b774533a9939f8b642b3021f811ca6433cb9dbc4212c0ded21ec426c840cb489427db4076b3b194757863ee84657abed4aa09576cd1474640601a4a0e81617be60c8268e6917be744da41ecb61f49b7b669ab0ffeb39e9c4f57a4784b5ed1622f79c5c2e25d8af6019dd077cc2fca54af7b0c0895c0b8d35931410f4cadea0174afcc78222203bb69d5e9ae5fc105389c504785933dd7e0977e64785319406be36695c04f62afca8b2d7631da6361cd6b7ef66d88d0fd19154fc84139b77b35a31e8ad9c6309fa680125c7c62bda8f8165937f2407d435328d7a6c2d303ab03466e538bbd0858184c68d4961c8e7e54f82dbaf4e5db0712144f457c7e5dcc9b0cac6217cd8c016b4ac13871cb095ac021eae0c3c5e1319c731511a55e271a56f727c5140d01dc9a65c560a10e1cf0d4d3317fc638a44f7fc19075108c4a08a54486145096f1054203988fbe0fbe5c1849a943a95a17e233b45d35e242b68e10c91315a80b74c8e333fc3441186bc5bc6c43fa8dbebbe0bc275d4bd80ea688b5efb55327dc0358b1532bf347a24f26406e2c13f719508ee51f4de7a2503cc229dccf5747cb38b3e1af2bae76ed836e3a009dc8ae5407c2ebb188ad1f4fd30150955a1e6188ddfbdfd44a7eaad10d8664211361ffaf4b93cdd17cf47606e1ab7525c33c0fbd023c8ef9c1561f06fce878d37059a794f263bc913594a2b52d58fd19aa6fcaeac5727bb02d7fca45d6bb132f62b4c10d36f6f107ac7bb11ea4f4e7ba240f056698179c0efd5e3d02d19737c1639ab9b0ef2d954820ddb15ec0dcfadff19dcb4d9788a237f5c87e91891eae3cc001155c23917b6dc3ba2b24a2610961a584cca1af093747951411dd1d2d11b5e6b1a4b59869a6882ff49f996e1ba06f35dad6c4a4171751ede0578a0915dc5d5f09f60e85d7a3570608da68a0cb68c6510d64a3ba3c36208495b08b9ba7176d9611aaf4eba9b43dc2b7c1b84ffffb2cd21fcad55c876f9a459a0dbde3a249ea0f19c9823895dcce576523b310206a5a3f08892aaa52929611710fb9330f9c4e790b8759eb7fe003b28824a4103a2429c7a4d9c75460c7654ea5756c3c021d0af29103abb40933adc2981101dba2e0802acbb6a03aa1c575a94c874e1f19e7c30d3add3f44f52c14e7c6dc967bf64cb2dfc30edd7b192213e3076e8d1e87d314ca26b9c83e04abb9409703823a530ab58446b28ba84c3576f6d9516d7da689fcce392999f90c08f5fba6508bbe44ff22b026357eb68edbc514f2e62d74191bbc14436d5c0f93fc03a3f670033d3c15852228f83f4679155f079c8ca6c0246876dcb6402ffd447db43a58294d0d5cc1752b9f0962804b8224058105befbd8459ecb3654093e7894cbae0c167d012290bf16a283c2cdc8a3435ea613489e701a3f9ea47871cf74937b79a1ff8bfde88de3ace2432d875ac208e320ed9c194e139305bd4177f45263a54d46916f4afd5f9d60a5eefcb42ea59c45ff929c0df6720d1d1ca807b5e687af689e744380e7b28a25c5199cd28b4d4a9700df2220bb921c1cbb5cc8505c07d157921f21cd7402e2c1d53606d553add280b9cee292d5d9edce1e691e8e95d6e6f0360a962a308cb9b2347740c1e3940488508cd37e4d74e1d21f5be31a48b2624adad1800295ea14a4b98de56ab80309efc28b12e59d45c46d1c40c4eaa5f7c16b34840027750b52452a4f020b7a0c8130166b077458c9d90d2a429af2a69f9fa06cf57ad0661e1ec631988fdbf529d4e6e068ea40523ae10de8300319e606627abd4f6332c5bb195a607a098122e4cc3fff96222300406211451618f819db3f43939f94926378456582918712425211189bcf72cb7fb09334634163785aea9f503740e9f1d9362c0546d43fbdf1345494813d8f1b9760bc0ce50d71f5821d0a15dd7f8181f77082621f4cd85b26af8afe72a66834b7d616e7e267146cba80220a9b9f8d6b155c62240ee54bde046386add6d1c96c1f38745014514f65fe972102559ceae99d91ad77644765865d0c6c7423cef196fbf101f8784094bd7d5ae43c70628a6956f7eda97be14039faf9afbc797740843354f2da593bfd052976f1a674b9edf01ce618f537fd0efd96f302f0e88823fe7ef985e3998df20bb422d80349a44ddfdd82db679b1d3a9995c42311fbc595982bc9a1d8438b3f30022f90102777f304ae3fa0c3ea862ab293c4fa79fa4e686dd689d41c3f9f5317865b209b0f875f797b3dd915757a905160b891e9ada3dafeeb3a14625eb50f995d44883c1c5787eacdd58279d727905a373d407c8013fd1cea57d85c8b058d3f8126a7068148ba4fbf4cf14b38694e9843e6d8fca16f3cb5efb0d7c376b0c16e7cbdefb0d7c2b428588589bbc77eb2fda67cd75fcf6564775ba3fe8f07f3870dfd94a83735c26d2692de1c214627d5ac111347a30a05e7f8540d534015f35f6fb34b2760a6f264b39c6dee29ca156a91184c585882912de0b7919a1fe4389fcd81a3a912792b4808974d2709d68492c2f0f9c9ca6f6ee6de525c0c2eb8761bc564099b9c8d00af593c447038b3e2c12fc1481d71144b243b7717d5a8df22fbf84758bc511cdd49b7bda67b8b59b79d0aab44dd59b8a0169a9ed19a3fde0293fc7f8a177b937bb9b8328bcb5b3d6eac1677efe7e8ce52331ce4e74b3ab44ff075d4be1bbee573b3a9a37d58ea38e4b0343d374a61cb509483a28b99ad35dc703c98bf77ecc28193882807e0878b463940fc9bb42a675d38eb37d2cac6ae0112a938a6128526d71f4ee61f69ea435775933f5eb56dc15ba1e0402c5519323c2855c310388a525904f87f0e8d1fb14fb5704f0bdd895dd0e7631e9eeb96ebda8f3a76b0e6a7e6a4c43ddd24d3e70f346edd4ba8d7c1b7a3164c1f11dcbd98cb26115e17a8a073c51de777eccf373baacef00337d4ce7f5592bb01ae003c59b0e9773643105167ec6719f55db8d85d36d0a4304871c9d2a0633e378e7dd0ae973b927972baa33b8be82ae4b1fc41673c1f926ba37fc6d5a9c73fdb32ff247ec3578b5c4b625e7c146a1c10096f205c5cbac925addca6bedcb29c23058569dea5a54b8b938f99b19393d6eb0bfb3a49a95f87aee9610eb5391a47a11fb717de3588f4e1c38bf4ad935b23153163a3e61f7e61794e222ee524f515db1a277df7e29a1d0155fcfa2279c0fde1def62fec0a4528b7035d7e80ac0fce00b927710bf82f5bbae29f66062a71e4d93bc6ec43cdb8f2567e7fdf308e4c96c6edd98e585f7aede30a5a5acf6041fd82e1fa7ccfb8dd94958b9f967d5d68aac795877b7122edb66c054797a3b6e80b582db8517b1671cf689ee944c633af54d013276b9445ee32d01020ce8340357e5330b4605b7ebd4607fc0184a4b7cc34b6d631b8cf92a19936b13f63453ac559030563a8c73a37629cb9a02bcd3bf8e0347dcba7b44a4e6d308de92f29d573da71bd1cfc09842e1ce7a42bb25b1ebe1da4fd2c3190a4084e2861b8d25ceb16c0cbe6a526270fab228a12ee3dc19bf8a07f87bc7a3e7ed2f8cc1c2a5ee3809e400ab2073d54ffde57a0fc1c317b600f06af149e16ff78e159c6e654bfe3d035ecb9ed6f55d456e385557a5827a4a866e77904d7cb72ff274b690ebe9a4e9d7b5edc757f2e225ae4e1a700e978762ef910d8cefeed09d6d19b851229824d326531c413b30c78b84c889cf4b9810fd5c348c32f4002269eeaa7c71dfbd573890e11f9dc706c3401444159b4306ff4d539e0babc90186c7845377953fb11807016a570a3d6e679ea5daa71ef085fabc6e399920f937bcb8a5288aff16c4c7d90f1e166e09c18d484779f1460aa3e37259908d20a08c2416eaf85f9bcf324685f7e58303a2f390440dc1d01db261b8242a4c0668b7b874da5870f7abdd60fd198112f1af5cc7c4070e3e8b4bc4fb7cbc79f4f47e2a3a013397b2974d165de6e316af0b223a79f393d2ba99c035dc42cd46e8c83cb65b702465847c95fc5c6f43508bcbbc3f8ca76df4885b1d7084f3bf1335a0531a529eb2623830b9e175f8cf83528d585930c9e9ff1f8719998cacb05dce4f00cabb595bf79ba39285c898330c58fe1708c9850b72ddc5b7358d40cd41c9f3ed7e9e41b7d3bb17a52579aeeac3607b3ead4e769bab4b161a5c5bc92a15b125b6978ecab502924aa11f772763e0f653718d3bb3f99bd454b552bf6bcee127af9c98995665768ed46bf6b12bebb2987eb674dbe5c7b554ba343d3dcf7a9ec9063df87c739a03b6fbbb57f727c33338cc80e028fed249779968369d6d0ea05e82d24fc36d7b29bf1b7c8ececa35f56ac8bcfe5c753ceb4b0de210721a5d97afee6e2ce78a1e3953a68da00a3077470f636a25b1723937998f447ee9c0ec3d3db23823931f4ddccc6039635dfc3f43abda6a8570cc01b21280d23f4b2d210d2f54663f88b17bc7020db1fa87d0cd36b111d0bd9abfe19e43e9eee4dd6021260959e180abcbda852e0d1dd9a193c22ef908f4e2d7d0a718254a8bfa8fa1084ade667951e911bbda934d3d37be51ca7127d9f4aebee68d55ae34cf561828cd9a39363f7e24a911de707c4bc449f827f14c5bab8d60522fcfa5146ff52dbdc6dc15397bd4a310880a643619768ab09bfda6eb82724c344315b7bdf5b7a2a716fad2995214cf8c70135dd6881b3990027da5dad830d02eab9c2c889327b8610a2b35728b5b6705b71d75c401cf9a837fb851e3f98a4b635e9146ed4b833efddd86fd0688364b0de8723d0d020e5b6b057bff0a2059b7589e6fe83c71f9dc7a2fedc80850c61da7d6ac805c046676439d9727f7d02067a740e8b7af303173a9059976dea2f587c11f25fdebf7bf00810a5dba7916b20b1624dba6b5f7f41208f9efcf2fe2ee0c28627d17e2ddd058a296cbe4b5b700f1d77f0dc3bfa72070c267009f76deb2f547c41f358dfbe73c8d171245aad8d27d810624defe05d0adf320c6ed66c73a5adba6c13b1097a2d686b6657734cadd278429aec7577ec6328e38d71baf76e8937e0a300acf46dd223afc1895378f35d6977fd0501f2e1cf7ce75dfb0123f4e149d1f6fa742970d18b34a75bedc3e7e0c71ff2ecf76891f3c083116659dcb7a7ee8517a5e8e6b1f2e6bb1f729c51c86b67edf10b64d8c49ba413e04ae38d6e0acdf4b90567fee6ce99f12ff70f7312d8bd79f78063c690aeb2a634c4641c7516f7d403f021ded0ee238b852705dcba861362028a142db40aa5fd27e933e840e3860fe0d6275b638801b1fa74955e547dab085115612e007c05b2813ec0e13cef5b05dabbf93d35f35e5e5acab37917023ae5d5ed279d26701a1e46efc9467b561734453b5d8dc59d43c6d23eacdef842a0b527589cf7609e3b7fdc4e5c740f4da14e9b85922b34a88313f77ba6cad0204e420f2a670024ed6f6e5ef9409957a89081ffd1078c6e1e7f3fc0685fa6c98ae6673f9117fd0625087bf6a085df8b7585bc218931b4cf615ced7b52988fba908da53e614afd79ae97a4f203e9f047c63491bfe705afe935a4faf74f119b2e2ecaa21ef33bb90aeb33a90ca739ed534cae919eb21aee60fa030fbe3e5ecb01ff7a1e2001b329fe8b1c69e1abf9e04c604000c68b6eb0ecd08a4aa4417d19626a6fb587462e615ed39d1272359ca66e094ccfbce51b3c93deace0b2aee840507260de6aa8c1c1abbf6da2bb008f0a9b2d9f2eeaf7289e26d5e1a551e657a5598c3246505aa9f098bc8ed29d71777c69b6dff1e14a8144891414496a9f64e837dd9ab5c91cd668564a9b23d6a3cd698639aebcd91637f061c0ad8b13d8a8227c80f69d7a6adb8b29f260e3838af68b34a3afdf212a2ad468399243adad16407bd7a7e766865a7b4e418f6a37af664974c207fcbcf19a1d9ef372e09906fca14e66b1a722143fdb443e000683ebe746c418eac78b72e60a20a595dac7ee61a8b4591c092803f56c1b96eeab6bc7c6b30cbb5ed1ccc26848e37f95417889adf1cb7500d43f069ffebaef2cd3cbf3fd773cf744f943d2a9ff1e7587e37f4d1d7ea78ce94ed85a7e4695b428d00822da2007c8e7ec8d00eb3167ac6fb6902c1e7b891c12f4435cac19e82e1dbad7c7b17e085a0c32c89ee072b04e08a099d41fc862c44322bb0529055c624be98466f152103869507d84c6d23fbfee3fe4d245d63a4387a01b68e0806e7e199cd1d847ba5f0d1c7f2f74cbc8c42abc98d9e5739f125b3ea298eb0919a30a2c2b83d1d7867ef4198f984c00d22bab11fd58199e2eb5fb6ea39ce10b8750477f1a82362670fcadec831181238784f852f3787f4aeeb4fea560bf78376d3405ffed1cdda13be0439135087147ea2c3ed99d2a5b987f0af60709582221fccfb010b511f8622e9c1f209b2811679c85ed6b233a5b1bf1e6d2689a0f8d6394addaca3d330701c31ed5f467ddb3554da77fa93a78229c5171613ca6a2802999e94e92a24dec471b6b886617afdd8485b1d50923cd480943c9f9b058d00c6d161c2fa6104b3b1a42208ae2c5b5fede28460792ba5e5f87cbe6006df1714a8a2667f44b8349cff2ffebf82e024f8c0a92983417173b467d20c4bbd691e1044bb9a891cef589ccd9f18c033220f7719086566f04273237f8ffb54852bc333849916fb5b2484b778961d43616678acdf8586ec301ccc4c1042019acc98f8dea5b74c09fd61ab721ba12d97e2627974514b3484dfbf1a9ef81d0c4e0388d6cb4189909ada453ee10323674916199dc3b767e98efc2da8c8d7000164dab94a3cfb03589f75387569e8243e6d9eac299ec533d8a9d65d563bda15f80ac67cdcd8b3461a6ba9d93a57f4a0decf2834c82badb28918116d9f531a423246fed06c2a6c1e2eed07b31d0422c288edd09d38206d92d46138b31a614422bc984d007274faccde7e65dfb82a4b7b6854f159409579868789f582964a790d8f26883a512f85d780c9edc6f1cfbfdc285f0f791b0ca129da6e47d0c6ccd3be18be9f575e49ec231073385f8546c59f8b39f0d297049bbddc2bda36c22e409ef2a7932c330c6ccdeb16adebbc1cf1fc152640d5fa824788b32e71ec10442f2938fc6be398dff7c7743ca49b69b153adadfb0cedc7bb06ce08d20ed0cc2fdf581a8377dc9260dad86e5d3195665283f8eb6fad3ac369390017870b949fac4692e9f84dc07f280fa44fe5747d985ed1ceecbb70cf95d7de5c23c3bc354f2e934f2019922c409f84bae1915344e262a680fe7e465de3c305b1ab6fef46410339b141b64b9027b7e049a7cd08e37774168228a636f6c3f85b08b5d701cdd2904e7e71b93f90a2137b817f056edf67f41da976c4064c5292a7578c4e2c96a6c3214ed18f20f3efd6d560618a45dd042447436a961de8959a613a4baebd969b1d2be078cdb9b6196b08179839a467c7ee86363ba8f0bca2b512cafaab96c007ce6a6d8c84797bc108679e5d3e1efce12f75f881943df59fe654b32b798db1bea1296d7bf337b3621b5424989457d32713797883a2528c4d4a7b003150f6f272626dcccf6cea01b096eb4b705df46715d57d7a264a03b526e99ad1b7ffb9fd682e559235ba96e2d128b594e50ecf46c5b55b49c20d9644ffee444131c6e2750880e3ad082fe8c1056440c136989b530ef7ec0ff3be1ef196267f25b001c96578010f4c6b184007700ef9b800f2c1ccc898386f47d0d487a162bfca293c7a5ec2477399de68cc49b84ae4c639e2d0fe7411f1707130f9f9e065b8f1fa44b81c016d6e74d04dfb4357d8ba3d73b1f161f3b53d7b8864b6a66a0986c81a9cb84b892055d7c22a943dbec0c6e50c125c28909f03bc4faf8682c05f947f7983a7416ce61da209cf82f1f6b80232a4858d0d914b7d2f8fdd19f8556ebbd548cafe71ee0b93b1dab81fd6c4c9794410bcc6c6bece4a48ee3aebe9d79393ea770503d5dc4b046ba2e704f776b92d83e143a7504d70ca6c4dc881d7bf93dca4aa07675dcb56aa260b973106680a1c795a9f4e059e9bece5a58a50220568dd3fb47421557a967f787af298042845a46ef4a4f851a7f87c3e2be4db9bcc216bce559effc798aa5e4e9376b7856d8e48b7a3acde919a45d3defad441006bcc162057ec01b4d45932f347d30970eca5cd531aa927e882601c9fd24e996c2a634c06afe4576f3324045e09bbfaa1e8655a7860ee7ad41c6f3f1184006e77b3b210650888d0fe3af93f0869b8a1edc029d32c49c7c4d23f479f56130218aacab1ca804bde2983c1b187bccc43d1db9514dd2e9f828d962a66ad5e051632ae087f768705b9d7a3149a433bfd37066c0db86efc741c9ca790ec98350dede3ccd1f7a53f4f1331740689e293337aff105b9a0e65a97732f68e50e0b25d37c92281f60121af889edb3c978a6b82ab2622483b14186169d06b2fb2c0536c0b19a86e1de43f144a801d63e0b61b6af6c07744b2bb747a0f968d518519b8c350b1078324c7387f1711e95133bcac7ec4900e9f13d2e1d048f4dd0522e8ea24f923db7946922578d2aa29272a127cc19db3eeb24b6b45555f58f6279a8963673ba2f899f1aa97578a6cc1124c0d154900890b4afc76eb566533151d5a1eff51ed36a68530eb8eecbcb7bb91afe8a83ed2e17c3cbc4bc884764ccb25c257fb34ed6a3ffdc7289d18745cc202c1e21875e1edea6600e2ce87de09bdc0d2de198cfd148a5bbe9c0ae3cde6e2c9b5852aff75bac69baa52289db2846886cec0ec9d6406f041eb94aef7d9299406973491bd77c05364b0779d891a5e281e1c5d8003d37630fd57c91e1c5b81a4419c34f8264b886d7853055f9ad289f4c3f115f29c88dc9c89eed842fbe72c93364d374bc05ffd23a0f90072ae3c20882a60fa2e70c4eb71174a1531b1a0b56b42b53b86546f2921f54ea6164fb758b375af9240e27314f38082242869bde693c98cdc92548db90ab6d7611775278f55b94a7c18038a8108df4e4970eb86a7728bd02e2b073c9802a808c07ab48eff7b6337b2ca9e8c1f0857cee9ec6f4822b063e29840e19093744837cd0b835fdf1f8b4bf5c7bec287527aa1c18f036cf89bc8d58d21218c5b38f64853e34a8287c228c75f70e271bd0a6b9892b7358e4c79ee37d8bef4cc6ecae855d647a7d644995628228cdd615e917419622db01c1473e8d583242f722389ca7783bb48187118bab698cd985498d908adc96d559543ab2830484e448c6b124e5d3442b28e3540a958385d82635066ef98e148f5994772315492bd01b5479df44d18346f52f14d0ae06c4915bc11eefa20d66ba6c73351ca70017b145c6c01375a3ac09ebd1782798dd90b29f4eaf2d5e6d56d9894d48967f66098b3d3c09fa0974f022722f98114abce1a314df98dd312fca9c81a3c9548b29086eb97c5774ca416f304c430716930e3f9531d9589d1e05680f2d6fe442f717a78faa4d667a5cb26a12bff80655be31e58455ca0d38e7ac42ae5a1fc6873aa4961e99f0587ec7a862e4288c6d3141e138234bed218c4e4d66ac44de66b8b2599a164a6a6fbd11164c5231fffd50fc46d509bce90a6a817bd2eb3fd42eef28dca05b4596643ff74a63ef3835970ae61f1cfd9cd033f31e0a426c4f5ea0f8b71c763c52ecbbdc4ef8ede831a135376c9b1140cc302ea410e4267a8c66f870ae5c89e98a0e23eec0e840cb5e222a14d83c9c3058372776fb9bb75856e5a1902394e64eee011db2227beebe0e02ee464027f0a0246f0d25ed6ae02ecb32e86e015f4f842e72e2085d13e04f4d485d6f5b0915d1e25123e451d35ee5af2cbd365253b094e8331ae32ee31f3d289b072ef3fbda9960087efc8011e0c3e4fbd8381987f3ffd31a7fe2d65ffae59c13b4309a6635e4278dc51be01f8bc909dffbfc49e243e2ae02b3ddb6bcf01b66e319afaebb540222144391031fd58d155645acd45c7da3d4937024b53e85033cc21c6b47a02630474f8be41ffdd5a3c84eb6c486766b50f23f1104b27fcb09b4cfe05323416081b10d6255d632f8f5b977be46aefac8a7839d20d633d2f02d1ab32df53705a4d77596e8769c1e104e77dbbdc85086154e3dce5899413e547e66cd08b846c5c5f57ffd00d26b15c303fd59329a120b30300377a6122e2026b25e7a9cbdcd749ed0cbf9ef2c148df79b53ab0638ac2a2b618de3ab544ec42fe3afd60e895fc71067937a0b2dbc721bdb565e54ea79d6580d5df6dc33e97481b33431933b3ed781a82f4d92c98a17b8ee7f31f12811d80c13078ad8c481b27002d6e3bcc423456b4c42e0b388edf9f5800951b728e27daba796378225cd3161d9ed64855b09aadf8de8f2d4dbf48c564d67e8af9ca3aaa8b6eb3898d9ccbdf925892d41daf8c1e02318f5842489ef346bea69b095bed469316c004614424529892202ff51b1080187d5b3c844b4189c85624bc4451aeb26c4ab4b11d11b014b238c189c787300f16e026e41550878f1763c24bd3708574a1bde56c0d9f075afb1f7fb331f98d69bf40c17f1e878e2ac63ddf3af88e648bc2a7c70241271fa2b4528b38097c5ad53908a1c6d06afea7f7f3b85ac557586f88f806dbfb510116f11abfefc1631dfac7e4c4db0ac57d10553c2cf8360c15adb5640a3ee61d4d683758dec17a7528791e3f85d5d1addac8f998887bc32c4ca0d63976dd4864164b82228408f614f258343ffa9b2fb09380ed99ca8b4741d34f74ce97280e5f58a1b7f08156ccf89882b74ac520d46cf36590c7b5bf2e9bfdf414baf1804353418e30428100af507c534b55e4dd4c0f1715927da687d8ddb9c3eccadfeafda531c179534fe4149f19dd45f75483cb923696b25774293b50c8d6a429ea110917f9f47b11e328c5108c956c988e24d276c27248e901043d4009f3e2da6112e5a978c5ce17ddcefd0c66bc926d16a1662e61c27165c2864c23f0a7a033aa50a9703c60a5d2040d8c4ad06a6a8a471786f1b3590a7d02b5856caaa6f0bafa23cdd5d86947ce3225f06d4a7a158305655c296aef478fd783a6cc749a85bbb4b3d9b62585a912d71ab088748bc701c20adcaa4d76c296d763ea1840cd3a631ad846cb519949e23a892f284931a6346946f2508b6b9f594c38a1beee3f2c3a12f98a88b29a592c0475e525d7025c5d744838d281cbbabc918479dab263fe77dbbc23915d5def1af4329aef9a4f03dc5289305bb8f0f33c3340f3a4856003467fe491f6107f798e597cc42f604e8fb41dc160a5bef0f409a416ccce9332380cee59f52e9086fa36c8f10e0354aa4f5ff1f91782299c7a451999cc1c638abffa42e96863f4162adbafe8c03f1fc100989de499e80151ab8d424974b86106a8ce63e5833d03ffe06e84ddbc00ac90c6876b4ba7835fe12b30c6da48c2da3b5fe23f2911ab2e685e551f1df8e2404ab3345752ed430808dad707b99010f8c1423b6fbec9ae421e72dd037f7203382affbbacc3abe74f65e57f13ab2a4e55afe5cae9114288e21aaa2848450b495ac43786df47a890e2cb1ec32e1de385298dd973a77c6ce11857f881ae781f0f43b145ddf9559d6a5e0ec7d711f1667be6dfcf75e2e5571a9b658cceb406d7cfc40d4323bd6df875e7b91ef531aed2dda26114256dbfe35d4ae44e427db9923417d484767c572524b189e16b7c6e6edca07e86532c2a135b6254b88970c48a11daa2d1ec325aca3ac5367b6755cf213f7a4e70f43db04e944c0c700ce6a7dfb0c98c2c3b736e036baf4ed3cc0092c3c0ca1cc286ec8d843f2d06566326b50d10a142dfb44735b744dbaa8b9c7b0d46334c9ad8d343710392506bcb274a21b2d5bd054a8108c8abf4184e093faa4615c885a37bce5108d4cae5d980d984c8ce553e5799a9eb2e8d602b6d04606f5f708aed26afd746399511876897565bf2f83258dbfd1c03c74872801c9adc682a9af64a2765bca207614503e9180513ef74193b5a93352da858888dd8ef1c110ecce223620e9d8bfceb88488c38328700c6ede7edd0afaa7eb85c8d342010794441ded542724ea3225d24c4905f351a0bb717dce770c302e085896c7743e19e700d2e3af2c5fac8d55316263163c07df14490e281df0bb55c889f12cd04dc43e98b0f6643c71a4bf92e7dea9192b8f5ba6f8b03568df8967f60671f5d21b30e94e535635987cce663fc98b6461f98cb62914eeeb8dc73c4ff3a72351f259c1f6cefca1178f523ecfffe88f15a7cf26a4d67fcfad4def8b5b65858a5f080c688f9b236642f6cb52815ac172430aca3e693a53a2d0189a0605bcacf49e4bf36a0d0c8217456de46888a38578c4a1aad4056dc3f4eb04331e79a9d84b665038a4559a0d98ef4c2d58a87ee482e9215260e854893758241ad9496ff4d4300b421608a38df6205dd7b027dd118c772e18eb05c0cdeaf8036ad3576020cbe26021f3d1d53633a6f97879fb61785d27d9f82776dcef93477806de5d7b99671f5e7f92c48fd9e962039759ae5881eb037627858ce7da693a4fd6b36a42faed74b61b922c4e5c926d71b7cf0656888962755612134f6d70e2adb837ce990611cf1d01dcd4e991f4daa389ebb30459b974aeee0c52e89f2d40b42037af6cf10f9e746445573c8ccd19f1a2d61c123f580a27dcbc997e92ffd5fc686da08ec66cbed780169d32e7914a7dc51477bf5d6f4756b89f150c7b154efead1e5a232558c8b23d472bc72931d5a69f89995f81be1528279e87df63934460018ffe190a6d23d91d9fbb5e2f434c38471d7199eafb61159695200a3983d6bb46a8c04225e4c13f61685c411eea1c8602e812845be9345da621c12ec985ee40f060a4aba585122282417540c4bb0e435d1fe25c6073ca21a08d697cf51c145827b8e89f960373542c65c9fe082e28e9c55c2fc4b81de6720a75c6080db6171b76f060470d78cc4c7929ad59738315fa8264e6a3e52bad5d5476409b4a6ccf9c501898e69a6e70156f05397a4aee7aa3e4144606facf42d912d6b1c9c68eb7f35ed5a2695041c610a0fe520a7defcc0700d136c88032aebbf24de1a27a6aabc155dd77e04d861e35af16493bf1afa0018a2e1ce0aebd2d260fe060972c5041a74b89ceb8b974642be5c561eb8fe07910ab83f2ba6fa3211fe904b288e1f967c5cda1b371b681264938db63b50f528bd6a86cdba87351735489ff47b102794552bb1e349f7e19893498e96738f758f57ba36d1086f07a271576855c9459e7b60a29f3b5146564a2289abd2a1e7cba02519b58c4b626e1cc2623f4b7a5d4fe9bf67799cb19a50a257855de1cbf856f82a99bbfc3ba08829f6775324bb4c242f32681e356d2e20f06d95a974c9587c0dedd809dfaa64b4c8dfdad0f9639e178683d8780ffa9dcb431fca8ab8d2e66c9de4c379bf86e6a5f1e60be2073dc8d2bae5c15fd79c240e5040768ee55b41549a246fc649d1d0db36bddd9cf3e44cfce1eff8bdf4eef1216cde531d01d57f980e55b3d786071587c4bea80812a77966108dcb482a0fe230b53a641f2c84f8efe15491ca1ed956e20efd5d009162f9e79a3b69382549d4fec821640cb7fa91cdf489526d445a0003d5d7688ddffbfb4f3b3ae453b0c09081f9953d9ea15d4dca4e5654b4006556da620dafaea3329e7c195d9eccbeefb37493c776f8f348471c2fe4f8ae276a7910db0b224b0bff6646b428cd0bfc43c04868a04d07a7bfbafa121303b8b7d28c345a8e75339a4e9f8ba56d06252684106abdc37c304ba0075b1ae565bf473f44d5a7440343983628a28a28dd37ab2a5a8a1f3940b72e6faaf20a2337097aa29affda329ff4dec97d7aeb2714e7c646d9319b15bb1fe6332feff78aa56288416c16745f56cdcf1a6460857d417a93cadf1ca0792302a664ef54374d06e2af1d51db77492887a44f61b0a88993f4e2bb10f6ce46e44ff8b154d44f4515feccde6434d642d4a18e772c6e03bf744286525adbad9147dc5756884068cb265d36cf6adcebfbd0918367395e58be7a128ee128a18b336b38c2517ac03a253942bf7bd3354f9b6d3a77fb6748e70fb628007c21369d63aa1feb56d6df32970ff236a13acf2a96115f1db5bb143e8a640c258acf66b2a32205440ce282338a73fd859043a80ef436eb331ddc38b79059f07a6730cf313dd7c17b14e82473579b364d7c6100a49ebd365621c7e9880c841708af7a73f8830e8e222cc451bde49bc89742caeec0493ce37a70610d3b5f020532368eaba8eb9fa454fa319a8a6cdea58321dc3a6a9a45287d528b47ca7570e237a2bd741cd031f58dfb36a220d0cedb0a6c947282072b69ccf5361f39a265d0cc5297c2bca9e1f67f4b1e5b397a18d75e577887bfaa736ba1a71196d88dbe178feb0c72ec8159eb9ff7cf7946eabcdd244488613162de1a3eb9819df8e8470a249bb73291301bc25a723511cdab0f05dece2b888d40c26623efab0e193e5dafb6f216206121ae45ef304ba38d7684154dc9f9a31173b51b311e17e91d1a38ca650a94560ccdb5108c807b4f35d87bb8ab35ce26bb6e036ec5ee7ca99f37274c1c0321b895ea26d35d18d9201012f3670eb24f3001dd8537977e25fc6c2a78de0f8cb2d5ba637610eb459e4b8f2d02327978267ff8de3e0fef788418c1643d6fb7bdbede972676d6d767a0bf80539d96ef84732c22a543d2d137aec519c0d48b7f87673eb4b7a96088863ed3c90390c57b061bb0dc001866a8bf5abb4110d42c601ffe0fbbf724db00353102983bd0affc7f83a79b1d57458ec481e1bf021b6a0e8774cf662afe5125b088aa03a9f542e9b52ecf7158ac2b7651db0bc075ac59e908493b85736a3f49b995039c8efdc6dc2dae1bea05d4433bf5c334e90f53f9c3d5040937b7c0fb62a2c7af868d42b2a861767018873b747290499d6a2e6dbce76d17e383004f23b7b8130e2c70a5ef3b49140417301db780457f136e4b828d888ccdd9d84aa47936df099e3860533948d65d2dab0c5892ad4d81981285871383712c4e9d2e59bd74e23dffe4841399b73453c457a707c86fdb3a3b3016b32e6bc7e22ce00ca77353df96f61ef1a615e5b774d4477d5c0c96374e3d85c34731496382dc3a9774f13f6ca72259d9ae884ab873ef3b34180950adada4a617474a2dfdce7cc534db7c479857c8cf0c4356bbe5fb4b518743e3fcd26002113df39f496e7d7bb44660f59c04fbf32431aeeed8b809f6d1f85cf217f789d0dd910f6f08320ea3bae507acb06c3cd82e27367699bddf6006cbd616b5ff97e112bdcf56433b90cdefaad3851fccb3e434d54a18c6e1658bb7152fb7b4ed3bedb5d1727a720cacf2b456fadeef777e573bbcc167b637048e650a03c73f70e7ac86416c9d22fd4ac92eb0abc76c1fee35789ca42ce6aae6473e638833885dbec99bdbb14bde9f1008532c3715cfe4920e558257af77798ac3eb63133d575633c69b7301b6c6cdbe5a71d580aab42e687492013a5b882a05a98872c07922777632a44e403dacb452cf7c1e3e5df0a5104c9c896a4406a020b0ad5cb49966c75628fe7aa59689adbf2f2514c54532a4d5c7a99ac6d9425c61a0a61ab1a58068976e0d0348055a3361fa3c82b3de9c7d28131ca06e25d94da13230dd497ac163b1dbd47a8b96d8080d5ee87d81972d74f8b3ff84f72bff227c756b32faa94754154e6c67a94d3558b0507e4a8a4242002c66ef2c9cdc7a747e280f71bde2d519dbeea393f8261a1cc73e35071039e1055a6bfb89ebd823bfbdb7bc1550f4d854e61a0c47acfb95370eb4f217e0e77281f9a47e1ca73809b5df74e1f9a78f47de8232ee814726978aa7cfa58c693a75aa851596af55411a76a30a2c45754390f5bbced7ed4ff26a157e486d8e47751301b82288d64dbb8cadf25e6680b6e69cab1ff498b979deaa62616769b0e014bcadc61c2ed07040cb7a3725b3a9c34fdaa1be85336e82afa96d28b0230f513253d0b894bf5264bc424f32c2f476c1730e6100ed8a3fd3ce479c3f1a2fb9de963708fdcff0491887aedac2c6334e606f02b10f0db5d12c66d9dd0c573fafbc395bfadef854bef441ef358ca0a8d99a2c8795a5a3c899dd30ad62de4893d8587da89db991c47a224bbdaa42549bf81d5ee249a0e33296ec78bd6cf7dd5e0d0b820cdf3c9faa8620694a32ca1a510830b3a341ba89f1e77f5dcac97df12186d5bc720f8c2d449c34b85aeb7d7772f0946f5032d4173b6ee5e524b6e8517c00c274d00b84db74891c988fe297a01383be495034eb600fa863604b45b663317722b3ec2abc5711b104899754a99fc0284b9dbb3cc0d761188aca02e58350eb458268925b14f0de31ade245b677816ee9bfd735e5de036b770c0a45934aa95086748593de4038ad4efde35b8eff5574499f9bda99e2d1b66bbe8993b265e67957795432f0627a6bb4edee14d109a52610c2b369242ec93e22f999a052955fc15da06cb56db800b3cac4c66766451ea9c7079509f18dc1ff8d9cc9c179b74626b9e16ffd8b58e6856a895a0441244f73bf741b379489aa812dc6db60406b1f4235771b3c5c5f7207f8aaf034e0a57acbaec7cf408aa5b082a27daab61dd39ad1718693e26ebde76dd9b68172e9c9a6e6dd2e3dfbe365190392d05d8289cc10af273a5a18a637dba7417cfb192fd2fba2bb5a7228d1df833c3c063c86c9de58312e2ca241856c1571986ff6109ca1ccc636074d152e202f3c5229a9d83afd48a66a2a50e129bc3694079c210e5b096f1c532bc4208767ab86fa3d41ef20a05152c81b3667673d790f5a688d7128d8976b551fa74293681626e91046693e0cc2ff8a94ff04479ed1f2471e7288d804b8c4c97524d9661eecc524d9052b02c6aa33bfea6c6399784b30ff1e248adf11d9444ebbbb7132060bff57064a4611bda40650ffe86b9b431df0a326ccf1e385edfbd30395298187650263e657027d9c33c5cd52dc09956302ea1e017fa1daf46f1eee1d9456c14ffa9fe9c9b9ecb5f7ade2f621d6abbd0bc1d6b2695d51181be85c59134a001fc3a4ede63d31ab60dd430b62465df21cd977344b7fa74daa244906f86e3854c3b63fb44796bc4f5bbf8afd37f732b0d20014ba21e312f4d6bf80eaec9816abb3521733767d771400a60d8e30297fd30dbd71af17cde74ec33b64af7905acc1c9eeb6cd1676cfa4e95fa275ea49afe04cb31f905707c96931a197947d751b115e8e5856f36de18dcdf39a20799bc8a2e3b1f0964301a6bf2abe566d77bec303b5f34ba3f0447886304be8c39976cf77a92694d9afd372c687f8c9c772d3112ed0590071eaa288e01366ae32a44fdc5e9b20cded56c447b8b45e1da9121f0e6370e7f2c32ad05c44c5d9796b58e856d9ceca9a02d9a36f67494271eb70ace23e501080a518fef3d26b5e9d4714e3f3e09d2ef357ceec0ea992d318743e632327cff166e3bfd9ef1dd298485725f41ae59fb0850745167addc4e94c62a209180087e7eecb826d9b10e48a889772ded053edca3c7ffbb752c9495fdb05c9305fb3f141ce81ffcc6450f5130d59da43d3b6602eac534d3c56de4b143dafaf79f672f9e85ef20be8a964687c57aff86b4b0919ceb3e3ea74745acc65c1d3f0e013c24dc3ed4cd6e983318fb49862a521e28f5350ba112f79ad4fb4eb78199ad18604b9c67c8ab4dec11e7b395d88d681b8c3c67fc7d48c63fd6e01634e612c6f8c049b1bb4c62c195487eeb12b3ac7a45f3ea75b8f332c85877f438e78b5db9e4a1875bbd87eb3714c162c467ea2ac696a4ca3c7267275683a9e2ee6a05b4380e2db138f2c4bbc344a8b876281aa025362becc02289f60d8575ffebc9933d08fc04601edf0c69a197c8e9db3dd4dba6355bbff9d5ee50c20dfd6ed52187db492e6193f1ad02b7e6000b02d31f58f619c59fe3a6a55e61d1ae650fc334a7f3da628543a631c7d723cca65a82e3d05ef7b77370dbbb4305b8c6556f17ec2b56646a851ed8467c6ea82e7e225e7e32237307713b77f78364fbaf294ad48cfcd119913e2184225232664bd38b380fe6f1ae9052eab751bc7d15f122647ef891d9ec257a1c03d6877f1739363d5bf48badbe44c0a6ad52b1ca94c0caaf7a731077cde3ec6d7d220638142d1f433decee47a08c7829ce51278ebeef69b563499d3fced02cf4efd905e0f15ef3ef68614f564af2f19c6d939987867a7a1e3b2653b241537c9e94aff7c95004481c09333a929bf2a7c6dc028b04e441bf6061312ad78e4150af37e0c42c779d7da33d662cfefc14c95f5e4e5a9867dcd86f8b5223f2e923f0c3f74563fede20c80f0a2f9e0135e8da4e91af4bc42bc5805ec69c81b1dbc4fe9992dd81f1474f9fb7f34082854fe187ab75c22193799e259fb1ae3dc3ed840bef0122806f2ba6d1ca3727d457905a8de3e4850945f1befc3ddc7a5cac6ed7224e9aff26f2e9aa9d656948fb700b14be271cef24ba0783149bfd5738bc607f735e42a6f38c68cf78bef79391e34cc986a33f2b428e7b4ffeaca5cb110f2a665800f80ac1edc3b25d1ca8dec026df088288084de2cb48b4f16ab074e6fc6609ccfd5f8a3ef67d90baab5ae1fd9d312b0a2177b7b13f9dc9dc8241893e8710fbbb2b83881026cc1e652c4f0a108cfd19d969391d5883088c2d9efbabb30f7b877d266bf604ccefee00ef8c0b5f5d60f577d613bf516bdee9e2809beac314a8acc324bef60a08639f2dc7b296c658ad7ccdea5da02f64b6cf0c49a23692481b44b05ca5430089aab2f1967f81a72282a79144b947986b5169c9e780d2d10e8f04a959d4abb1f3705495fded1d3647a82f9807343fdf73abcf5ef39dfcf3d3c267eb276a3e438bd32b4c9b62132468716f1320829e672eca697a20a15ecdac2d612bd1d32de9ca4523637630c416a58b6875c3f07ebb8d610832f3b18683935265da1be80a7d35e24a4a5fb03d0f2b2e340ca495d4471e7f5354a0b267d0ea5e528e9d3c34e1cccba102f1db0c6311884f762fd3164723726136a5a4f5059573ee938ee737770f6ea8afb82d6c7f5ec9f4076fbfb63e5dba2da92943e77765d05d47b8694b6a83d36c48d224fe55374bc5679e49974455862477b50e4f6a4635d782b14e70219e544a5b3771507009661ac00fa0c1c9d883ccae6e5c8a2787f541ea22ca1c3942fbc86180eac020fc613c81b603a0419047bf42a3f74f2d5d1a7ccbe9eada3cbc0ef8aa1f8145712ad3cbfe394680491fd6d055ab44b0115d489f2ffd9ccb7a0552eb7d364a9ed58172d2f7da8dedf4c72f169d0a35f2f5aeaf91e06b93d3f96ac73b4153a1ea040d5a5e714162750486f2ef4623c16fb82c57c2e0338f1681f4d62f63f585669bf726ba2aec48c9342314af5c52d106195355b8a296a938aab37144145a9e2f53ede480b4ec60aca8a1097a9aa1d51a2869c0253d081db2135578f689213a0ed46ed8228c57670c83c06b67ea62f9baa8144600fa242fcb379c6649b16f092b615dceb0701d9d2a712dd2353e14c7adb31afdf117794558a99f3648ee579c4106271c3aad1cf05f2344641e0079484abfc7c8b687527708f2db8c7f89030f89f1507869036e309d3b0fd5c0c00aa0f64738047573ff1a6e551fe4929db1fdecec79cbf66e7230c710d4fbabf6bf2455ad7d3e7c7cd6d847adfba72e579b4f59bb91b65c139a43ddd3084d83fb56a2361b052280e4888f28a0928f719843df413af21a032cefe93b9c27413601d75020bb4c24e7bf6be3068a7f9b7e0cea601c7dddbb45de5430e284e6e8747735703ca118010401fb8734fa8f06c568c39ad01a99aa03e5bb4596fa06451f796c7c62979877e4cc976581821ee49b97f844e1f57583da5531b087a9cf221c4b8f951f35bbbbb3ba30b4878f0436711cd4b427d766bdd775be7198708b9611c36eb25152ec9454249721292be0775871994a6762099f350f2adec64391911298ee20f12918c7b6ddd5ea8524b38c7aecd1ab06cce3c646f759dd3bd6f431f323c6821b0829ae141cc0572bfafb4a014f2753e732c90c88a2331d22931017a797547cff825e6ad8fbb4e8adc85e6d7148ef371a68f1dab52e4694aa091b22d4d92ec647ff11fcef1539272f0d13a3c89d8ed55b719690ccb752b46b8986a689514ffc0395ca2c389718d81e4af2cad44e6b29ab181428482f33aed4e54824b6ca359b8cf3b11fc6d82ddded52c696a75d5b7c83f72c4af3d38a45c86616c8b2a265cdded299041af473e662404a8de5135b995fdd75eef6b3809015c0ae7766d0ee7d2318e1a575bf5c7f363e241585ccb919a0aa6a245e29bbfa1c89f53e37cbc91940df806babf7b3a78eddd843faf9145408377276bd7abc89f8e4a247ae97c6b913bfefec2ce6fa4883aad56ab7ef2be4ec026f34f23e4aad8603024d91a4eeaa10c6b4758d66c7f9be53dafbf6305dc063a20f6ba426b792017395fd33cf6e601182db79203b487d740b9f2ecadc599d3078e71df6dc1f430dcf7993e5f9a110d9fb7364258ce965ca9b2e405caecca5482cb2a2cc7585fe1df297f81967b544c87d07c8dc08e306c6fe074946cd2eb9ad87c91c01e44e26f0f8fcbf9b36b0ed86708da114b58501218d49ad969b33f70e092916f88955594b862b57358c79ec637cf6f464122268386c9cbb3883b1eec0cc59c3ac43011182686aaec9125689d83651a6d97d504b63e77fe301d36d99f5508942ebcf50e291d3f18d29784186975321c8b6e70ac903fd66e4f3f45a6f60fc97a3f582e8fe86e0e906c026b0007eb3ff372a52f274c601f9b332b4c92e1230988f1e66eeb7c7cd37d0f6b4b54e739a0a624be0be017dafe1b4ec26f7a68669eb8c1b45f69f731e286edcd83ee91e516a909c4e03d7f0d55b144e6bf9f54e73a4d94183719a79ac10743f830ee73ec5cde2544c37e83794b758ef764df0fa161ddec63dd05a02b7e5fe4415a5bb84937a827e9d91e85d9b117f73f91c9f7059160b897a360e63c9cc567776fe180c1126b5098f9e15b5242c43ae8736748e291b7fd3266c9ef2154da55d2a8f0f5c1a78e826db49cc54a6a552ab472562e3d1c176403619b7c3bd028181f09f669128ede0793b6bb199745300ee4f88412c749c0f03630c0ef76c826b269f846647c8ef357fbeba445b282b096f888e2521185db250322dd503c0db28d9a8cac23eac36f795d5024e109d3f67b766d777ec56ac4ca471522eef3d78809938ecb6bc0261033450daa9692aa941ed5d84de86666daf90db2266ebd30117bf00438b519fc41f3fb189b10001c39c34e3045f01b8ec646cb704ff230ca1283225bcf6624410d84194867b0bcb6bbd1d6cf30d588d00d02f76588ae1075f54703620d42f9b06839c8872e4ff303ee027d52990ca8aa49b10c02abb27704b2f861a13361780b66cf3c3f832dc455c83321f8e75d206483535249801ab8e424ee1cb3f701afbb289a5708464c440272533df34ebe63f815a9e05580d5ca12528b6ebdce63dcb1f443f8850157d79150c38eb250f4dcdf0b4da2f27d69cbd5565e94c0adbab227f2fba2427e9967d37fb1087f837ee2745ce67f11dab633bdb9131c1e23a034d186e171031ea2da850cbc7a65f4ef3281b989878b434ab0f6e22b61cc7112b0a8af36217650aa123bd5b0c7ca36ff2658c5e4fe14aa77db1f2b3a932d6aadacea9433c3b106545cfa530bc8b2a3bfc7fa9ced9ae0c3257325e02c5854fcb334b08e54a90cb8898666b3a4e20ce5b14203d15da92fc5dacb5bc37e07b187fec4d41aed975f92801e4497bf235d9f2db645ede70986f0693c5e705e8783c75a39bf01f149b51e355731ca928121a12ab216cd59bbb35f061b73b84c4018b07184fa13cf354226a9766a4779d2dcb3b3e844466ac6813af2b6ddead5127545e6a4a9c7052f72177a737d8f34417f4ce4bc2f00fd291367642facf17700bced831d5d8713580b0f4460e15d86cf6e961b7e0132a722366d74bb81b0312cd5b8d451651399214a71c478d7ffee71ec1307dad1373cf5523ac28e795ca5a2d97375039e008d10b2e17b803b89ca2da02a02c70dd570c90917676e6fe65a2c81eb350b4e8849ab71314c4f3a7b3d3d9af4fe23d6685ef1e787413e1bd44e145f30ffd4731debe3ae6dce1ef3c0ffcc587718bb11316b1778c344b31a5c0a24f5545c7cc7ea3b578dfa289c9f895a2f60c1d5642309bc30d46b7054e4619895a84896939b681ef8ccb3361a930a57f405b0997fc496f6ee4ee735de936338d76e4c149f766b3554c4bbcdbf64872e97d4e09d7e0dfda146e62c6f1d95e89b1632413fbd13e6dce8fd3391233369f3dc112c469f13e0b43f092d663debbc68df4b69c722af3323105aba15cb4dbb834d82b1db12c19705adfde5cdbba787fe9cf77dc93d5d4d4cebabda3de25986318c875faa1caeb3435a576c620021b325bf58a772cf6d6ae748516c7406afe7713732751289e51d240660f381355efb84c2f8c07bf9be8f254cd8f0e6ca913c754725cb52bc219bbe64aed804bbf4676f981e4018f248ac7949f1ee0eee70a8aec5a1242e520673bc06308453c6f9f726390399b57560bb6d8d84dade40968d417ed0e4bbe50b6eee04ec0709b4c1c662316eb2a6ed1b3898865d8cae6a6e0e3e23c31183e74005d5de5ce55025165d2f2d73a8e3dd3ba5080c541e6dd0b175f86c149bc19a87ebdbd61f9d929bac5ec03910cd2ab201455e2c29441e1f52d15a85ce349d5603daa3b72a7f42a5e35d43c423a596b7bdc22730db429f6d4f880b717fd33f4e2e81fd01e6ab9f5723fe406fc652eab2621aac41ec1ca94cdb520b386eb4c684eafab62eb9bf6d43c79af3351a8a610ede5a3b11aca82428d4a92f8cd90a013edf3fd4ad80f27a04f89e4a93adc40eebbd4a5c83e5af0f389627c2d1b28c778592e783eeda85720e5b534165f3be570ab7d734837df14a3a76f76cee46782c32c8d4d18556bdd2ee737eab731edc34144dc49e5b7a8287ea49a44998092379d4c15320d131d3a2f3525b94ef360b38dde117ef2c350671ebb289e853c1d50eca81aaa870ba91400c22dc3c46cd8435c29e3f7108ee721ef190b1ad755ff77e20dbf0831178d5243edda9c0627ad6067a47dc50de1f1696c7702a32f13e25a357556f968538330d1f76084b5e78c8236f6df06b8b0862d1ab7ed6e1aa6b6385b04e0ba46b6f187f72525fe1999ec0fd0ce63c80cfadc4b39f07bbee5bb072f154bd0b1244248304c85b58ce7832242cdd087bd5239e6e19621e3ccf4a84295d03ccbbd233be80fee1fe546679889bc8a4713cc7dbc97c8489ad9ef002ab384c61813f23289bf4a563bbbcde42e8d723e25fb9404e40212c1e56c92832b18e09c0cecbeb64a142c3103b101e7b385e8c150c79b8026338ad27aee64bc222c1abd9c59dc78225411857b9e0e65b994de491238a6271268a76d0b317189f2d407ec709fe2ecd1fbab00519c5d3a77b740d42b503a915539c17676367c8d938ec5972c0d53a192f39ac1d2c93659cb1f0967d9bac417498b779d794a92386f7bf5146167a91e51e89f807d9b0c9677ee5f5baf4a3b443709326c9ffa5cb5c8b5000a497108792c657b73e4e44c1514d875df22e80ee701370c33cc82d546dfea75a02652339158103f6ab434b1860e3f002e93dd74cf00a767e3faac113b550c0580189c46f16ad47ae6f88b1bfec7319ceca02704494d04b76dc026d8a62ff92369400489337cf139c3c4914b64c6d718cced5ed38978702ae980964ef5c25af0f63180c4206f5857909e1f24e54c447619bd26f9730354aec2b6bcd5a5364bc1c45678cfa76d27e2eca15d707519b7ec12d97c5731143a86fcdc5acbc94d5d0f5b4f63132313d7bfc157856a8825e0468a24b203fa9c2360ad2daf0a2fdc274de0279d94b1a1cf82110d6782392ff067c5bbc9c9d9a651dbc485b8cb3ded13f8274b45754a61ae571685d7322aca7b40d20cb3abf1bccfbc24d3d1db8a0cac4a983cda9032d30e63242fd5b8bfb5d3eafca0a87f4ee668743642ad389ac462dcf24d54ec27f3ab47d958ed55c8948f4e6bbabe4d85fe2796e984e6cc50eaedd35289b8a5eafe64471db29f91e6bcbad866d5a2b7cf5bc2d8d4dd97e32acb7cc84dac0929362357d15522dfee7118cf82befb9ecaf28246112c1da39d65c0e29af2ec4267b12753a115e97e14d2cce25cd0aa7b8ca337f4662003f2ebb5e14ae98b18ea9829a0d59284f62b5ed41ea4e1607e7dee5ff693d4e4180f9bf6cfa34ce3d31c5c998a205296495919d6bb2a54ea133c0d55246c41a24eb1223703fdd05adf90ae14fdf559154254a2f344724b62bc308f396eda02d7ae8257fbdacc93ab33a2ecf4277fb9867b0bda68d4daea52b8e517052400cbfc81461a178028ff9a3145acd23cd00abbe6d2a4cb0d61ab9d22c59036e346479284f964c2ba5e3028df743bb9524ce8c9fe05c00570c7c53967ce9e45b53ccb45139e8380c3f49c1ad150c5180b8d28cea6c3d8f6ef80c78313c0a792dcac0397f0a248510217519b739b4920cdd2da5480f2b9b25f7526f40290bf5bb3bf833cea72e9ef3bb4e617716ac16c85363b492e459b717475307a7734aadea6ca98ab0522c58b1ecd1d9eed81eab75e6a1adedcdde6cdcce195caa1a5a23d293c8126a627eb70c272d654c47b0b5cd74328d89a06c2afee8e93dfbf8f1e75985b38729fa3b05663a06508946ce786dd997aa2587e685a5faf601376ccd9323c35c58110c84112122ac004d03df576a06bf2c30a890740bec4cd506fc79c1183833e96b67d694a834206ce59d0c626bd878949c6e92c869dda08b271c19d9f99621fa8ff47a777835c339485efe0e5196c96c6b9a1702fb2a0b5166c9e8fe1f6cbbed7a45a63dda424e7047a60f584ce1a81631f90d4d6f226eaf93778a4c0c710a24db833651a16d913121438f175db0b632723f14e3fa845806874bd7011b8b935116773903982725ffb537e795914fca03c38efa7e2a2449259d2fc31b06d15fffe900f40c935724320a1ca5d4300a1e1ee689d97af6c14f64ec25b315acf780b43456fdabc3958168c2ead4c1db85ea4317e25a83945c9f7283ca6397bd66c8d18440fbc3987dd63d031901bf9d51f899cf0aa637861e6c738558193a8ddb7ff0187f07d519a4360bf3a3b22f07bfa2f06d406febf128063c0afde37e6b241e032a6f4453b366674cd7aec3401b7857c0c63f7502d08158f25013ca28670560d3ef51806e05739b2705c65b1575e396e22ec23fb506fc79848bc4a526b44c500b4dad7a93cd7cf000e685b486f9ceaaeaeb71f423c38d235879d7ac2f9c695578718000f678165bd5df8715b196af383278f6f122bbbf0bc513e91167aa3e4156599bd219205762fbcbe1674c31a6d05fc073fee9b594c489373671b8c0fe9a901d77cb7a72c76dd7c2c6bd10570f7cba7a6dec7357567b1bccc280388b84ee078217ee862a30e81217913d2aad475398a7516f20a188484d27cd7b6b6e8d0ae5b1f5e195cfa5a07a86a05e8c71d408b289fdd15b77510d8d6c691ba161d7e8743c1b0fd30074c8004481f9985c1eb38d667b90048f526230c4af9894c8f9a65ac907a947051664caf106c8adb69aa3e406952f7c313051e7a1a9912b93d28463f20f166043d65b786e370aaf54b77177168d56019191bba8a037617d7d27782bdfdc8ae9ee23607ada495e866eddb7e04210b066cf7321fad543f0440335f75eb7fdc0d913c8af2c846a12a4bb60c1bc640a6c630d100a83a12746f1171ea8697798ae89fc117dc2af1c09cc58b8caab6a5f99cc89e11017377b6cfd131c706e43a4784d4419b67c1f1390186bee3b6ce1eae9ed8aef23492448b9083e47eb31f3ce6ff8f70c0a3d07053cb2a1e196438393320cf5ce2bdebb81cb053d619b761e7b344454999d2ae30b24a294f0dc736ac0d07698badf5091d620ad6b127cb28e92982f8998116bde8f5b3695addddf3cbd7f08b3fad945361626536c3bf98f0030a82303a2feccd1a9f7ef0b02d4b8c0a0e565394170222504f37c4807b405357a8e02f2247b4b5f24f5bce4cf75a2e18499ac13c0db8285d1a325d696230ebb4e76003ab9a694d16f557149fd42c43a638533236c6e3e41b166a9734ea777431ff873ed86363de6b591156ad1b6e7e85bf3ba2edb39e94c2d633e89cb98b10ac53be5a7c0a34da8fca02950eef4337c6fa9fb3a33c15a7b845ac80022e379d5d9713b4cb4e530dd41fdfa8fcce43d84d3b224983e01b9e911849dd337df8b7f357f155a507d3085ecdd708ac6aee6046c6351d158b7d8c830f1a697a291e1f9dabd58dd1f48dd4b80774016fdc3952c21d42713a0c5e16483b5a897c2a9db1159fa3d3e0d167e53124402608b40be6df1f78b8a0bffead469ad992734fb33f3ac9bbd17d2324157c8925e23c9011642e8a4ab7146141b5e090a40272badc9eb39a817ad46e29f34e8b5bec04f9aff40ce4412a25886e635abef808f336c664946c2f71dc7f0cdd1c1263916ee75a354294ea2ca7acc86e132c57c82ae420d2a5becf3958876df8c1cce6b3f76800ab2563fda866f46e9beb4154754ae64188c815e5cf820151677d35620a1cd0d9cc260ca2c1a099e7550655194c4c3cbabffeb256cd6ce517d4ee439f3e972dc674b0e7287eb3e335e7063dc19aac5b9b4764377eafd5bfecb6cc1009c6e697905e94daf7baecfb0405369d0e4066eb9847f9b41d476a96466d217fea59e61a4241797135042f0034f76bf0e0c55df4e3ca2dff639803415084f997c02e05b11c11bec1c0442eb817c10851e87d231a3477f62d7b5c3cddc6ddb217ad53e338656649fae796dfd7a57c954d855edfd484fd8a655ed9e7823bc9fed3866737f1bbec4321063815b5a5e25195384fcdc433bf545d8068fa4e635d7d34dd36bc764af6485ad3f52650e5e83217df9d6224b7ee8f275e105e29df2f792475d5ed24b9934a34c61881155ce113db35b890743241c763a076254a7ba562893a8e7353e89e60d4698c7f8429dea68fe1626c951a8c3f21f1ab907f6db5f4bf143bace01a1ea7d8d203dac51e9dc3c945944590b9bf42020f457a92d9b3106d8c7d12afa4af0433f2a91bf3891430716f817b58c263c95de7cd3a0160a9a5db9e1bf4748b7db34636dd2a6b47ba5646eeb4a4cff9b079e2e87a0e626e44899df30f2fd0e2de80b9b32132836738f7eb5b800b75e3ba6f6dee2d5a7d2f0c501aa902e8104e8e05f361112076329e234a813de0d85fc85033b97d225538bcf721793f931297d06415b6343a11d3684e00222315bc21161330106bc7a181f2615aea81b222dfde8acb7897f48864f2d426a841989ac9fdfbfe84a335c35a4c720fe1172ce39ab022c055baf68a7ff70c2aaa985d3d760612389bdcd213285f0c11083f75baf1d597b94d9640bdeefab5763230b2a5d10fac3360e3443fad63515d8d5ce9263ee43aedd7dd1a2bb8778a29a1a633a7e9d002aac3d70ab111a3ab608a1d85e263c43ae288c66eb67bd27d4f911f36ddb5c9b5afd7343326c1f435d5d6e2bdf789ab7b271d8c0c2a7903848fd69aef90b29e76ae58baeb1aa6d3575fb3511cc52f66a2fc7b28da7643108759339f9d5bd5d6754b300de5dff8d0785a13c535058c2bc1c19f883a6cc080b33aa507490d514d9819954bcb590287df17294f8a2203876789c5a707ee0c88b1b8ca3c7f6a14238e6533fd64f6b1ed2385351a9bdd90743be0364c6e3399c51a764ca123d38b07fd8f4078a500b637912412db9da72c7b0ef795980c3124660e88abeab135036f38b25d964666a7857156d0b8f24336d38c552c7a2820713230950966c671b1bf8e0a79cd009e36c3a549cac551fa469b7a0723665c314c75cc004427775cad594a11815ce7e783e2fe1df09476b2e2420522f68a48d9405e8f7332435f18ad47ab7cf48916ba9d77af24e726b0d2ede50f2e2ae23960dc8879270020d49985039b5523120a180368ccdd1fcc96f1e7ed3c43ac34b934e52e1d0c23964a2e255b9c2f05abe9cb9b0738b4f55d5288d6475c993891f53839b828e110679b0a5e7ed1bd84773f2e616d89fcb11720f52262342813632264873a1da53ae864c476b488aaec9e3a16def5417d0b460c7dc74e952508ecfaba984e3dee422b60642763e95d7fc4263f70e658e8f9406786b2e953a62fbdad6d1b70a8fd76b3b02b381a8ae4e546a660a5391c7fb24cf3960720cacee9f9eae3fe7024a0cc0367eee2cd3b9f0e02afaadecc12dacd236f69d5e51e8dd246c2441c977a82ba3445993ada419c1462c276d61e37887baba6deaee8552bb71f448881ce6b09d447ebf746fe83d8dd5746904ca787440596480300f23d3fe4136b2a9fa8e36e8c3ead86aa55c2b998e1e76a0821299e2f8d616e6a926e6b30429da796f5bff62ab1a67d828d843da1ff0ec57f203fb94ece1d94b595344fc00663930b34c61ee908db4970f75786c8e3e46959835d2e51221f183ed383073f0f7cc4714d3949de9426eac65a46aeeb8d3dc4f57507033716e4d601fd5fb444334fea08f918db76b935bda3d12d174d322976c0f1d28bda1ce175eb32aa7647970acfd9de213e29c848dcd9b496def9a3fd37a74d8948778a661a0fc3a85a87010087bd9eac05549f2889b6e676ee151c24a56346925ff1c0eaaa5e5e7993345d38baf0b32e6190831efc4244c5af6854582d8d7d190d0999bf672bf36493a159e45268e578771559e00225efe6d0861f480b601fd6c6e01b23979299eac5aa8513be55eb09a552ba3fede808b161de738c019e0afa7a6d2ce91f2b936aa7b971f051a9dca8c078804bdffe95af0b45b9feeaf92f1561a2d131d3f7b35134510f2d64128788e64b417ca73b3b047198d68a5729f94fef799c36b8ce8461ee4a9ac4109fa4dab9c422173316123a186fb09cf6480d2177f2a7a5ba22a72a867e61e436d1cfbfcc71de2388b9d38951d65f6a7c35ae29f5520579edc23eddbbe0a1c0222e0d11f687f9b1439810e68a4850afb41260aeeb7d9c801afb032df5afecd7525401428621c2cf0760fae1332837d48a120706a1a46d7679af979988cbb3a0277eecf393805c6917b408db175d7e7a97a179cf2ae58609e41bb32e4763b436522b71a60175fc6d4dbe2bebfcb0490dc215b1e609ba207873925039d9cc4d33e2a8a9a238953483601ea51bf71fe6838a56829ffd4c9dc7a3fe76118fb41b58cc5ced971f5c87e55b2a928f11929b62631e577b115d773c577e98ca9d901fd56ceeb26e501ba39303146be2dcc0ca8b83c1e117c44fe890ac97b1b0355e76848cee07b21d4676e505d2fc96669675f1189d6a91e83c6356e4702fcd7c4972554cfb195e889d773ef018599794dc42b41d380c35cb75411196133cc5fb908817078220297ec55bb64005b2107d3d6d6c01d29141d0a9d8e0ab83eca420bf1aa2adaf2502123724303f95dd05edd35bbb51f26984d9fb5047e7cc3cd06382bdbdce40c8f367cc581719f888d73dcb472961df54a30d2bf235c3ec000c5bd0e1a212309c5aebdfbf6b4233f1b22b3eae72ed60710a9cae2eeb96cb572bdec31ee035227fa9e0999fec0e225bde4e5b5e2da88da61d54e478d3d9e1bee65b6c5b046164f4a1521606819808acb603c42e47f9ace1e6b4f8aae176c467414f6b2f26af6698cb3f69e53622ce44cd050442cafa370aa581e1f9cf3595337efccc9243d81da38b2e6493095621bfc72138aab9fd6d234f0d4aecdb36fd25ede19dbf15647968488e62b177ea4e24306fe97ea109df6e35a4850151ce498c74402186bee6bd2ad57076cabe180df541442ab757a662073673bb0d002872257584ed18228d617d517772e6a921bca7519cdc2bf5b660d6cf2b1c1e4219e022c8c35a5bb716c2f1b09f08d4ff603bdb1da690eeb0f3354fe228f69bcde131d94189b1bae7bc9b02832c87ee8076932caa42bb8633628db7c09abbe21a96502615b7ae215ff032db8ebf6d0d3fc4590a41357c469a26a6864bef77fa7ada772235841901e2c6514da7616bd0f71e34345aa4511a631c9be07c2c34b427494422c635c38cf9d8cb197c804c72c6301b99015763f8219ad5e0782e9f3f9f18270aac7374db076ee80e8b6cfc2f080c193a5a24686289114ad7552b4fd45580d5d1b7535e8af4a17baae24d799122c38263ed89d00025a85f1bfcfb7dc774e915b7e74cc262b71037086819b23527d30268df8a2f09be07a7bd347a5b49cd73467b9c0f65c1855eb8cd4cc3c5de66d1973b408ac479fee5d2aa1944ca8d813dd2aeb5a7449eebb06647be93e4d9a22a21d479c4a239df0330f60033bdb93a34b947cb0741eb138e156dc7026aa6c155a883f19707f9dff9128f31d2d776a3fb69c5329e475a8d125d1fcb402fc76184e97a6e62ebc3e4cd2bfd03380f3ab7c93bcca2914aeb9176dfac7728d5fdabcd9897d3f750a925281661d128ddacbdea3f2ac9655a191e5d35fcffd8377217ac4f6886cc721501364cdffeb2c28edc5c4e0108d1b0b21edd17534c59d578b85ac282ba2bb2256349276db17abe2fd737d273617b8b7c405e6da6a08fbedd52531301bdcc11d3f16b58bb79b522cbb8272960462ad6c301b7b5d7a69eca2adf2d54dc9aa723313c5d279c3d02b958cb6829edb610d569135c5f8f20a0414b9026b71b60aa192de2c696cc69e745297b4f8d76fdabcfef04640b9429e52101445a035c7e2f1ad4539acc45f85bbfaafcb41b9efe6101303235d1bc8853ab641838f02668b225682c3e09c41f152f5d75e9eb49dd7e8779eaba4e37bf15f1a8802427a6bd8e39e1de89a197b86ccd014443320e4a3d9727910c78fb134cd9ec3ceea72dce210f4ad76188d162e0c5c3c96c85c7b2d6b3821f5047ee28e1f6f69f7b45fc6545573b7e2a5fca957c56206a63cbdf0603fb82041f5cee477923c564ea9af07286ed86e3e943cee5a2d698b2a4333dab1c7229c7491d66feee2e0848eb1120636e62120b2afe077f69d7b263cfd04ff9c4d4b4b4ebf3cb183c709b87de9ff3343b000fc37221fe657cc98e3ce9485356a1e8418609192f7d90983835d4979c9bd0d7a523df3cde629365b0d7759b136bf2ee9b7d062446738d6cfbc3592916fa6eb116055931cd03e37f01945829a34e9071ac774e9662ef637aaa4cb58d56fb1463c542c980b28409c446b7a54552f36deb2de0cdadcb569c21eaab54c4a12b626664fc7b7c15c33dda4e2ab5257bf3f4103d1c70bae78a72c1189ade4a82d6445ea3aee090279f86dfa5f95900eb578e3ecc7f8bedf183306404b0383a0c8de14e97a73c2e57e9bde4fe49ab9a2ee61c3899a92243bcbe433049188b79d56099f6e4517dc35021e1b89ec125167bfabdab78f248f624df6db61d592fbe98c881c301f3bcc3adf31567b5348c481d743905ea0b387f2b401a74d59291760434725db3fd4fc873ee50825da35d539437ab38c5a431cedb06635c9e79d5f9b74e61aec5959fdf01690fbaa7a7d5d45cfb1a9aca0925764b82c8bb0dbc12b1c01b56b16ce10667e52b42b3a5a2600713f7222c85808171a0cb23da9badbb8063fe18a17c3441c5f9c5fba8ed43dbe80007fe2940859f828a943d501105f59765294bcace4a9e30fba35dc9df7284ee6836187c3939027b4e4a142bf9ea49ea8991f80bac89f82121e9972b74ee91e4d6c6fac5f09e0ea48e1496b7e25f8c997f72db4fccdeb838e6acf5c4229e52d7778f8726d37c716b642c125d44b6b1a6b80030e9305a6d855e5fbfc522e7e84baa6180f0e1ab4320fdd5cc51fb3f42594489ebc886056040c449b94a87f875098bb34eba2b8c5220898e10386d6d109b0a3e6a4b7c00e7041130dfec6c0c3bb35aec83c87ed647d0edcafd3529672ff5427dbb4ddb04e4e626b309f7603fd8ccc12d18d9f36badcf107e98b4e42cd0d7e7a88de530c8f96eef6ffc0ee1eaa949f9677fbebcf354b719a0f64f6e06730f54fe30aecf06cbae992e431b52232cd450f7e2b8493ea3176cf508e6a444576332a81306b372f39e3aa2bfcb52ce21194a2027470661d1d034fe5952427df6368177d1a0c14c905fdf3d1ba8ec41c4d8a81cd843d937965284df5883880cba5dcc557090cd532081f34a545cd6454410ac6c49f76605f6b23ca11404896fa8f962b47d831d155201e7ab9a467423edbf3c7fd525d26906ae60ad49055c0eef4af769d5aa8da881810905c7c2738e04ab9ea8a46a743611543bd33c5fe85fb2f7716dbe2f0f14e58260ec6c191aafb5646d43463b69b13d710bafa7371790ec2b02b4895a56fbd0ba63938dc354b32b14a0b44a158d497c7de57f4e735943d7862fafec0cec211e6179132306f4dfef887db77ecdd2434a2c1bfffa211ff4af7913880545f8603d86035d3de414bf8608c447ca742a174d0e40ff708c7c6c067b5600ee58426645b03748d0edbacbe8b5792e1b3d91dea71a9f47a875bb8b37b9868af6f89450e4b5ea9827ec3a9d9817fcbbcfd4304dc86501e223349513e44a7bbd6c70303174f9a7c58049bb91663d7c951bb34b7ade53a3572f4820a9eb7dd6f3b8ef99d302ced5f20cbcd0e8a59c775983fef74f78dc97e883f7ca055dfa40a04e52f5598a292e034743833f68da7ba5d01d2638d1f8d5cdcd1728dffee93c74067eebe5c41db3d5f1a8b3a944dff4b9a6cb7a5c3b4061d7e923f07494d11f8d239839e460c6a605c3e781cd2e4d6422ead9316fc0b025d7c17ca8efd99ff1fd22673d5c9c7c281ece263ed09155db867b515fe840b0b2da3baf735c30d630fd02c12c5774bb6abec974cfc82bbf0f30d40076d310930ea8ab77934d353498d030ca8335ced0349dda6095501be53895e4444db71d774721a61e647471f2959a8bbb3dec2fd68e437d3af57021ca1c12febd5a551abf0d780c38c286ee6c0179a859a1b05ac0b1af7faf0055a9666543fb86da2a0baf954277fd91638d477d9a4d9f464bde6ee4715a07b2a14ebe5994fc8fc398c1655d1ca0a3aadf17a9361d71bab626ffaf204e0c9e909ad5cc989ed901115cb1ad7383d9744290fab5eb8bd22554be226bf6196728d24442fd2b1685d07581c26355c870ea550c1956b6ddbb0d357c3a2647660d751da5aba8ee5400a4e85cb39753213d9272289a3d47a7630f913818a6ddcbdf97ea4fa269999432109aaf249e1f4561b8bfdb2d313791753aacf0c300f1f951e8d21be5180ecf14ec5a668692d82f3274c49e7c9388eff9ec02bb3705845f044387afc1239b3a964ed5bd6f51631ae1fcd512c196c908d8b7e13461dc099e628e7cf72a877f93cb7a6023879cf08a86d154102416080efbf37b4f48da15121ac3ce2e9a13df55067b02954b61dc8cbe2fb0ea118ac1995e7558ffc0c44aa84f749120ed2d5b20130ffbe44baeaa6fa0ddd025b404c2808d77fd6daf0e4017e48e6fac1754f102c86b3b6acbf208c3f0008461f2d1b214ba7bc78bd1cb39780c2d747487759ce8cb1238c6fcbf09475f489b7f3b6e8d9b9ccefcd79618df33ebc2879b035412da9093098358218cfe015e7f81e2669c8b481d6474063a64283d92bcbaba7c2d75c4d567aff9d7896b55ca969c0ca6a70103041d2a2a15bffd1190ef98373c3f07f4c5ea74139df5b2a0301010fb7b2451a80321f0ddad0876b41303e9023b009b13843cc965561820b977b11a69d08a34169065fa06a9eecc6427fde7f36a8dc3e58080a4602bc146a05caef416d3e613b8ef5866bdd9a332bbad95ced5ec6031767ae6d78614ad093fb49a7903952e6efcac5d38029ac9d1c759015c834d292f3c882f0e7bf282753f289e952f53785e8552974837278f1944c18c0d3a8f4f92529d10ef8a7f05d98d602d53a480c3650c788eed4e96415075da71611619b4af653831965502c5ef6e6658df81b56da9d1b1557f63c3d37d36152b19e295e43e24e8aba40db5699360555fa8f85530f0d35019349114047d7b15d84803668848c76029e34bf56fc46db3be11625eb442c3f8c9dc66c6d028797233a6a911755e02265563d15931eed375c7574d833a212219b51d076b31502a105000cbb03805ba204f5228e9e019d2071acb382c8dd0db22402d992a1a4e1b4dc2c88af3d6d80c58a7b1d123286c8dd37122b1ce1984d2c21c38cdfea082479943493f9f73d87813e016d42d5e256fbb5eae0f9ec925ed3d508a0aa1ea889bbbe952b785c4e48876b706e9a2a19b84f8e95006eb8bba52129b02b8aec730b55060960ca38a99f2100e54f64d994a9e88d17710b654db4d3e47d937a66bc99b3a68d0a51d0806c822dff74a515d89a0c32b253670af42cd0dc94e39160b1c4f753a1fe1897da88146f94aafbcbd19212d0305ff09c86a80eb3da9445a6418c7714102f34ad62e1251f285b87f182deb75763913d6f0bb4291312914a7960287f4c54711a4267e2d0c6b3bc822feddb41c21be1c56bb54b439e72afc312ba848368f1ee4510f605d9f66aa28d99b7eec5a568af5cfe17aed2d802789ab1676be11c1c1a11bfbdfc92fd35e0bf80cfb41a36f801a638ab43fb1196db9cd405f38d4422e5a902f403d1d50f7473936be0b2fd96523621393372ad477d699241ed016bb11886c372e726d22048080cd4b9b89e138b5ad0efd103f571de7124f8a5d3cd93dcaaac8696d0c1268ec0ab0651ffefcf8b2141def7936c4bcf68576c9d0c1d3d52839542c9e7a58f76924bd2b0d44c8c78823fe1bc3a51b4e648ebe71aa63b96cdc748308131605133ffcea9247bee13c7c7aac23b8fea6fc2dbf6e7939c3409e948c2afdf8d05f210c4dbc9d61352e6e286f21a4c4ad23ed29764bbe670405bee4b747e2b9e0cd2a8d78e942f82019021552424ae6669abbefb8e1d85e339404626ccb227b038844b483a43dad591d13bcf394f72c85422b99765d18624e062aa0141ee168d137a265848c3293bcee3bbb2cd2b0ffe2c403dc0fbe050b40ecc5203e4f9ea2dcf7c6056f7760a446ef1531af978b53916947c4cb8cb0a40f02c47cb3f3aa86080eaeba42c48e069e4d9f441aee03c4c279d5aea619f7a55c4b6bca9776bbcfde66c336ea41ece31c2138819bfd4e2c97ab85c54d8f7854ae4a3a9cb0f11760c5db7cf796d7505e6ac3e857301fd72142b22e44254a30003ad5f54f2d73d6b7bc1c4852ac1055ad31370f35901385d9b39f614adc3de81ca6dcf2894034b71a9e1889f7a7a151cbde4a53ba7ded688aeecc64018c059c295f0fb89536bd04cd9459644c7b2cd7ce95109682348651895ea2ad0c09f68a4b9a49ed45f5cff54edb88998c5ced3439606684f92f3a21b0807dd280f55de8c8bb1d0a30162557b799512e34f7eab80cca92d2251e7b8d1ee1a91845dfc00ac48354460f7bb858764ff0c10fd9d1c5048fdfb06ef6fa2220cf4fe69ed8f89e726402bef7bb487a9b807dcf63e149ed1e4183274aa2c9a736fa89f6922dad52e4ba00be95cbf403908f9d11b4635c5d16bcd1cfb2daaeba233e8c29c3e436302963193f59fd70289fda14dda8851ac8b2212cf1f6383f2917870a97fd63e0f774d5ab8897b3ed235a16f033242af05fbfffc28de55f027e610aeb3689d6158a203e3fe99296115f866d95c67773e2880b9771a241f1bce386a04dbc90473dca89825f5fc21cf04f22dd18fa8e24fc17a6d05eef23a1500415215809593d7aca03879c4a2792541cfa5796be98ba94a9d4034561d39bd7a9c3bd9c34e4759bee21911bf3b2472d2c572c2602dd067d1a70108f306f8e904ec6482749cb0711e49bdd361a1afd9ab286ea4c701952ead521034f06ed900e583743782ed438ad9b56f8cb99565d2842ee803b1d40819175857799688758bd085a0b82bda3c77f2d04fa422afcb479f692ed302a4568046c2c8cc0590cfd54d264eb45556753d48ed19a2bbde806021810df590a2305a9fc06ed999d3eb316c5f3633737b09390229dd2864d11bef9af74c4b3bcb5d9fc22ed8d3bdd3275318657488f2f55fd374fe0d6c12739a0d763f694b8c1e3b452f32281945cd8ed0756d11285826feb466e7c32a8a996470d1f4092e22e6035a293c45afecb5622d919c95180e4b8b20e03d160e0b6d054fa7691478045d127f54f35ec2521aef050355ca271f2c631b75233860ee6f1806ef6fa39c98553cc6740abedd91037cf7646593bb3cf4aec303e3a18945b30ff2b1e9f52f12fa571143f99a5b4e7dd0d46fc1b9abf9398d87fc0dfd601b6d2c11917414050cc46bcd9b59b369022fa32b98d78fb2127733552f2eef05eec636385d013c6196f2edffb4beb5ec666cbb50369d6d0c4ecb8c8aca77e54f9bf4e2b888bce7cc43de80dd21d4f2ac35de84005636b52804dbbdcecb10d859100916f31e46930ee6d5751575fe6a05c6a1e4a2835afc432a26df3c518a2870e35515a8e42655570a3c471472e2576330b6bc7f2e18e8cd0ca6ba9d7776674b45fcbe42cc44cc89ffdac9092d2377f6549255d0c17493fe1b342061e3e6e644a155b1a8764303d2dc8940a194bd70044dc7c7dbacb8a5ac7412bfa485f86a0e81af03075d41517b2c790a54e015e48b179b2878b05f7b2ef5d6f0317cd56e391a41d5b8b850323d4d8a79a77d68b8dd880c58ffdfc2a8f4569460e9f1aaa062824f23fc53284dd272519e052e01df617c1c878f150481fe006c0e3e33f97cb75118d398b04e2a12b4ec2ca10d8a78c87f1e3a591507b9460231e2b35ee652a3d22b13edb820ca5124bcffe901fdf2fa0582cfc1968eacf30ed3ed6e5d4d81f43d75884ab5f9ef6f4fe5c16572e8fb2c6163e244b595f5ed6c3ef79c8e5ad7db3e74156f586e7e4190c7229e9a0ca02eab062a049fed51bcc355e73ecfec2cf79786ab48158cb0135f7c47d45e868d053c8b9d0567701e802bb1522029584bae9700c5c256ccfcf31e8450efb1f9b7865a232588509ef004494c4fe068cda667f9f4d759d449739cab5c5153697c0f3af8c817d75fb47aa6e08e144d80503830951938fa401175121a5d81142bac58d0a0004fb939e6f787f99b361777036c1f406e27c7fd63d78d41bd5e55d1eb9e05c2e18edc5d8bc7a74bff17f95a2efd99ba6a07d1e63b83d8f9d5bfd6e377bd2766067aeb3c32f00ded9bb6cbb92b59fed31acdb387a964024cc58945366c88c4f940b93a930945c7ec7928422c407890c1da9efd3765ac97e18d7ee5d8325a14abfa88f25880f5c4fffdc6454f12f2c4075151c280dee27f995845c544d9d739eb9b8950ce467862199a18bd9a988c0459f5e70ac31837d74782018fbd5f82f57430e15cfaf7976cb80bc2dc4bdbe09af0ff0a8a7ec21be815bebdc585cd5fbdc10ec412cc87ffd99e7ac2cebdd742875506efd67bf0333cc1311e577c2526e99d509c1b565be149a9af54a25e4c808bae7725ef140805d37f925da885c2ebb1682a9e2c437346a0d3f1d477b7e87b79c5fe2c183297d3fbc9571d09148056ce50884585b9e25292df5114c76522435461fe67ceb68a8ecf70e1f5ff2ce4d3dd05916f6dcdd605aec1cc75925da12410296a20b5946cf8d02ccba3a06ee301c6af6f8b037081c0bcc97c0a4b3782dffd4cb020e6cc5de0d3960ee24850300c3300cc3300cc3300cc330cc0c62f2f80a6565e7cea921084644ae5a725352524a7b3a33f33b7807efe01dbc036ceb993d7501960d150ea40d564c66b895f058be4284182d3c9a554978b429bb673cdf9853a34878ec5615ee667b726c7e844731946afc86c4c85a8c708a64b750d58e2421c533d687b0bbd49a669f223c88cfda317b8e73579d666106111eebe60cae6ee12a4a4f9c3063088f925dd548b672ddcf1f3043080f6ab5ebda42f36f8c7c6146101ec69c2e8f884a0e1f24ab85194078d09e6637a31371ff52112accf8c1c330162eb9dc569c18e9e898e183c7a12fe4fbf83939d2f7e071ff77da488b7cad98193c78f07be1b536f51d3c524f56e735a365e199a103e6543452b624594faf2adfc9697d53764c4566e4e0f1453cb71cf14eb276191d370aad093370d08fae75fae56ac60d1e7bb69f2c1dde3da5ec0766d8e051ed5cb62c6d7d99cf8c1a1013613a233224648fcf8c48f1235b4a7911fb0c1a3ca89826a3844a15579f8c1c29e8822900821b2dd86216c67495885b6849900ac958b0852c1ed6fbb778bb44876fb788c5e3099772c27bda5ce9b680c503fff5cf17f25262555bbce24148bb34616bb5354f5cf1f8e35c0e3984d120a16ac583b6efd9107a2b39c4acb0dc22c7a8878c584bb465554f8bab57f130453658450f975f2b466ea8e2a14996f8887153468eb6400cb648c5032f97ccd59d96732f375eb0052a1e8fef6c98cfb673ae9241c691c147d8e2148f3ba2c414bb9bef41bbaac216a678ecd94387a9ea4921c6b628c56397f655cb48215619842d48f1a8dba7fbc37898b0e3281e6f5beea8d1efa3b76f218a07dba97621f87a9c5f56842d42f128ad84f03987f8fb39dd81e29156cea8125fbdadfc271ea5fab4d7ee6984683df1a87427bfe4a810c3443bf12085a8ee12d593e5e471e25104d74e99420e57fd89b1c5261e788a15fcc25b67b657138f3b67b5465b6c4fe9cb2d32416ccac45b857bc65bb5c51cd33031e6d818130f6223a43ba64cbbbbb9c423cdbfdb0fbe251efe7fd7258bb2939256e2716cf024d6173dcfb808d882128fc4c2a65524939a0fc1b1753589877ab1551d27f37ce91d1d1d1da602622a30309c0547842d24f1e85c52887def6efdec6e0eb688c4438f285b21939ae3d286842d20f138523796a5f0ce212f5b3ce2c185fe988cfd0beb9b32c8f8325a023bd8c2118f27a64ae91f3776421ec7160e325230066b92a200086e28608b463cd25f0b9373fec4d58e110f4cff72f6a486f1202ee2715b9ff8c7e9a5c95d110f3f65980f393f294f9d8887d16b79d1217cca6a41c403cf3ccd48414acc3ac4e9e1d69145ba5244be5c52c85031255a8cc133c463bd0b6bb7163f84cb16e2f14bd0898bf611e218cf8c4d09d92d72cb9a6530ad982ed7ade3413c48f3d46d11726a9bf0d1d1832d04f1d82fdc63d47ee55149201e56a730293e53b7d20b8847b9f1f99376d43a2dfff0382a9f679eddce67a21f1e65f5c6b4f1d1dd89f5e1719abc8f49bee2c3230939ba9bc489e377efe1d179d7dd66a81019737ad8bbccb2aa3245b554c5435c92979f4e1e1e66efdfd45b8f0871f160a49a4ad492ec8a90b4f5542ba7f61c5b2b6deef0289bfec69311bdab68478731610b3b3cca8fe616ed2c639584b7a8c343dd0b29bf4416bf3e8f0e0f3f5cae943b6c48b9b866d8620e8f3dfcfb255a2f25cfb790c3c35ccd2d9553bdacc5e3f03868ce50e79dbbbc3d7078b0996e99dd34b4e4cd1b1e2791d87c65163c2774c3a17215c1345a53228beacb78fb870c612c6bc3633f9fa87b1ba2e4ccb3e1e198da59ae7cf9d2e6890eb658c3a394fa357ffdf33f3c8a5ba8e1415ed8d3f0922c64d37ba360b0451a1e87dc0db1edfc334986068247ae788f1899356dc9779f95b3de3de5d0191e9accaec7b419e5c2648687fe9fab1d3d63fbe86400618b323c9a1c424c2695a9c54c86c761ed77bbd3ed92c6c6a086cc9bb848799776d2f64a97d26aab181ec546c6786af0c8f59710b608c3c39c5b9fb090e91bd22dc0f0f8a2c47f8b133de4a87ce1d15b87ec41d53dc9d95b78e1d1c856656f9d68b1fd2e3cf2381fc92c35170816deb19d25dfa5e2ae69f79ac63c844a6eb105c4653b3422b7b89c64568a41928f498cb40ac716f1c0165a7850a1391f52f53d3734822db2f0e8c6db7e737ccda6e01658787cb24927799b26e90cc7961865dc40cb01061897038c076c7185473bc9efe5e2988c87a9cab085151e546788d92b569427b9a3a3a3836f54d556e1410e12cec3fe3f6f8e5b50e18145e65ab989d08b932da6f0a034f2bb7a474a4b670b29546d31d1d169da55297d0ed2ef9b39bf5b44e1f1b5a71d4d6d31a7f840e1d16cd60ce2d9273cbafc3f6e27793abbe38487e979573f67e98b936fc2838ecbd9f5dcc12e263c8eb1c526a4ed944367090fe2c59c729a18322689121e4444934fae1a423a9384872ef173f7d5e3690a121e862056192e4b2ccbfc088f6316d3ec695761a6628487b13a246ef98e27b9088f3366688ba1ed296f447838ff597b4e2d85aa7a088f4b5d2634a51c2a7b2c8487d59751c75cc6624282f038e36cb4ae20c1520f8407b9659225a325d3fa078f3f6222443f063b6b7df06844639be689def47af020c5d91053a8e8799bf2e0818f58db7acd5508e70e1ef7488c55e6beee16d4c1a3c8909ed3b577799f8307133e55bca49aa63878984d735d2feea8a93778241fbaffab4adaaeb3c1c3dd10a94de921cc5d8347a9fb4e26799d4eb5050d1efde5d4f12d6ce508d92c1ea4f3d4a331248cc665f150afa47436456d4b158b47b9ffcda62579f98564a0052c1e65aedd18d7a35bbe9648d0e2150f439e3c7182e4f3d5cebae2515d788efa1ad2cf4bad7868aeb13a6587a5f30dc7967674182b1e96a73193ebf60d49d762158fa3e4f909b1d4f3e4a9e2c19b6c9efd7a11bb3d158f3af3dc563ac69cb2848a47eeabb2e1dfd3a5774ff1206eb2b3666e27e43405b21122248d94557309315653e76acf15a9ab29c583900cede8d450973ea4785019aa576fe234877e140fae72dbc844cfb92ea2789831e1a52d265a8a43f1f85d2d4cceec152a6740f130eb273a628cb497ffc423ad10955af51efb754f3cea1791d0152c65dc3bf1c02297fdf745ed9039f1702f85490fa33ada6ee2d1f666f6dcfeda9c9a781873687a5ef29b0c33f1b0f37a9265a84bf9154c3cbe8b9eb8ddb256f94b3c08493f75ac8576642df1784bb39d5ccc1d31ec4a3cfef056d9b6d3c6e650e271a649d25663ded9328947492e67049f0b99839278d49e2684d84c9f458bc4e399cdceb1cccb27241e9d9c5ab21861f72af28887bebb65b3392c7c7c1df140cd765e7f2c5579b4110fdb2b3c7f4e15ee6632e2e1d879d6c81f97abb388072b9965b655621b453c4c9f562e5e3f79d824e251d4dbd9e51436f342443cd454e539789857eb1ce2e1f64d4acf512bec37c46397a0bbbe9e9ff2778578f8a15bbc62ce611e1b211ec686cca57997b3c683789c53debb143ba1bf15c4c34a5ad731669970410ac443094b73f7b49f7d22403c7ef9d02793f387cf94053060010970a129d0e20f0f7b54420c9b3666274947470702410b3f3cce161d93a5d7d851a93e3cc83d17c5c3f6857c90065af0e1815ba9f9445dbe9de81e1e79f577081716d619d2431224678c5489ac04f9b20c15835bd64fb2de3e0f8fc7567aef3b58b0533b3a00c0042df0f0288b4b58479d7c6fd61d1e65b8ccf8aba53945b20359434656254a08990962b5413f5f8ec5e7ebf0e0d2ebee2bdf48a80e1d1e9de57389743f933ecee171bca09bd284fec465f9466117b490c38309d31e2ed66437fb3b3af84651a914b488c3e3cfd1fa91d270d314c7d61bf5373ad0020e8f5293248b8c216925cf1b1e574be8c4288d8d1f71c3a3b09426ce8384a8b85f86181ce8e8e8d0363cfa8fa9acb071c343920d8fccb3c376ca7e9d4c5ac383f0dc948a57099f1c353c2e49b7becce9dcd36920645cb76b453295915cb5319ed152a85c6616343cbe300d7d9b7316b94f47c7dea8d4e20c0f2759140b294b8e9498412dab128dcd98334b8f1cea2d3158dc448924025a9481880fc921b26e61729191e2d4e610212a4e9e6f10323c38d794bafe24a60d95586580f5b418c3835839474eaaea74766789e161f2103ee98d67b5c49002b408c3a38db2ccb2993da60de3d8c26280166078a4f12c8714c7c62afd1aa0a2d22f3cbccf216cb25488bc5e0b2ff0a62996f2e99911b22c79b2cbb1a0115b2dbaf030c36c9c8ed118aba8165c7898b3a7f0a12b738a12fe18376e500004373ab4d8c2c34feab1adc6a23c5c5f9c8480165a78609e2b346b0e963c2510e38b7380165978e8396edebd6c3fdb2c8ead15430288852c44dc4ba4535e24c6899a5a6e557e5954c997a0046248600c3128d0d1510231bec81b5a5ce1d16769cb5a485d3391d649a500086e70a18515989cd26d2621c3b422d36b939fc4f9c5f3088ebd1c658c71ae45151eed85687b2925defa440119c8004b8016547824ae21c6f78dfda7508c32540c0d941653789c41acde2bff89a88b638b1830c4c8c1808e8ef227230b5a48e1914c6eddfcb53ee9d90cfc023a3a3a12d0d1f16178714e7345418b283cce9ce73c53acc87410c7d60d2719381d1d9a76026a82165078ac39524a21b1662c261c5bba012d9ef028f8754f885ec9415330a085131e6aec9cff21ba737785634b8c326e9041aa68d184071f73a6fc95e3434bc3b1f52ef0823da005131e796dde943dd5265e65090fb62f56c688641829b8615b6a2ca0ba718a4ad34e801400c10da385121ec58e8f2945bf88b1cd8116497894425d8ebcdcaccac9121f68818487ffeda51fea312bdfbd512dd0e2080f32ec734467c9339f43812fbef0a2e4780b74747474500004377268618407ad7a7bae6bf44beb85876b799ecba2edc2a39f4db9399ba67246b9f05052f6cc793a6a4c31ddc2e3fa0e8f617e412f522d3cf0f89967323d2c77b2f0e083a7b64d21e48b9dc4c243b1689dbe7426d692577818cba2bda79419ce925678f8d1bbd36ec6f9bfb30a8ff3f55bbcca1d82a4930a0f254d8a12cb523ae7710a0f32c5d7ed8f5d9736288587532f129377a75310a3f03082afc7d869443f43283cb44ba67739854f78249e619ddb9bcb73ce090f2b4ce70b8f56d5fd9af058c5ed72b62459c2e498f07082ba6c36dbf534de12c833e17be3fd4a789cee2fc6c8a13e69121e7da79435fcc6889c22e171c6b8f1ef3ac6fcc98ef068632a74b8a6f9b218e181a7c894fa315ba6b18af0e02ef3e9955b7dfe88f0502dbf7c9cb199a081d161200b02308447f1c53455b5a4d0f011c2438ffa9466cdb2dd27088fd45e93494c962dae40789cc2560ac172de10b5ffc183d9afdc1729dda78c0f1efbced54ace10de951e3caa2e0fcdfa1d9b230f1e64d90b12655e3a7f66070f5d36623cafd0493b3a78ac51fb5323847ed7397830a39735ed8ec5cf3878bce974f3db764e29e4068fdd5388613dea01b0c1038bedbf63b1fe52d003508387a36dee61d9cf2ae701a0c1034951d27c0a9114e9328b476b5d1f6a559f1a17593ccec8641bbe3ee9c54a2c1e58949c147a762a4f05168f529890ff1afbc978bfe2f1c6cf7feb38aa166e573cca71bd1fdb9a1892dd8ac757d936f665fdb45e973f2419eb8ead57f1b0f65b2ceac2aa78fc9561af7c3dd72b9c8a87fa1d35c5b3dd549951f14864a62e322a9cb47c8ac751c2761eeb138d934df128b5372d77dabd9d90523ccc9b5cd69b35e6104248f1a8824d0c972a69fe8d8ce261d48e915136c775cf8ae2c18d7fb4e8ec4f63d9503c347d8f08c1726fa717148fe3a6a989dfb296a3fdc4c3cd55671177f5c4831d99499577fbcab4138ff35e5f12f3cf9a3e39f12857659c95ce946be5261e5f8ae97952b07c1aa5261e68548a31724f4276ccc4c3cb9725264ddae71862e261ac9b68bf59beef5ce25184bec9494b65fbb7c4839b88d4514d3a84f855e2e18c485f2ebfc8c91d251eaaa85bfc46fb9cab9bc423f1dfaca2be9daa3a493c0ccbfe8cbaa5bdd145e251b889f98c6369276b90781cd462d48c8d17535f8f787c419288667b9e982e473c38cf21f556e4bc1656231e44d5dc5c214a42be8a110f33aa653efdbd8807d17bad2cc498b3f88a781872cc286f9ba95226118fe47dd32f82c4543b221ee669f609addbb3ec100fdd353cae974b5988706c71a18106b48086211e470f65fe41e386f544a3100f4b2d858e654bc93727847834b32147346ccec1231bc44311b5c84a9f90d1c569c1031a82f0452264e78aba2c391d6804e2914488581e7cb632ef38b6c01023c7e9e800438c1c0c20e3040d40281ab6abaa5ef532e40fa6bebf4c127fb224e687d5d35884a788dc08c7d60d626fa0d187872975ba9a7df3e181687d48b27599f247f6f0c083c673f708652515ebe1e14dec0ccf1bef5d749387c791b367e490daa654a335a0818707a1dc563b5cb61096dee1a105b33c33fe196262767850fb59f67e936a57a80e0f3f723f3a3cda3c9d52e2a61cc94238b656d0396e94f125d88f408e8e0e42630e8f32a43c15c278e6e8df5841e72093c383d99075439857c8d0e0d8225507a0118787c95b2cacdecf4b8c83910230bc60414fc0ac0b1a7078942cae5628db94a4d712dc8d06d078c3c374f37a33911fd257702c7519bd808e8e1c6080d1d14146e7680bd070c383fc0d3fcfeab5081b1c5b37c600c3ef8b2fc600a30b0b581b1ef7654e31672d49e816c71619ef45757488713a3a6640830d0fa64e63d01ccb6fe342630d0f2bc56ab4e85c282fcd021d1d6380e124a0a186c7391297713ae52c250781461a1e574841fe72d77f751a0d0f354ff2ad689269ebdea0718647f97d9fb3b4246574cdf0284a49eefe0fd7efb1400c0574749867811865739431c60968948199b1d87c41828839ca18e30b1a64203b5cd44b563a3ac4301d1d1d1de78631ddd1e145e7d0005b8e32c6d0a21234c650fe49bf41e2a59cb50ac38b2ea3838c5640268286181ed954949863b4e0d8522e34d0002e3a6c0a34c240c54ba15399c907cb8381d728cb9bd32fd429458e70ae1e29e88523e727dbf8701e5238b6b8309b022ec0f00207191d2ae0a26c0ab8202c83461776515997f44857099b66113c59e46c48192900839491820984c180c4000d2e3c944c29e5b9e23c6647041a5b7828ddaee97a271a5a78b899aea2249dcfb1a92fbee82ef646e10d6864e1c1c75bf828cf98ff452c3cb819cf629242b2147108d0b8c2e31f75fd8e689737476858e1d1df77f07091535b2d1a5578105e536affe54bc3a4410565724b54319369991593f459f434d4439ac6141e9fb7e4949f472fb7dd1b95258587a124f54dde09bfd9a611854729588871ce36b8fcad690ee8e820830614081e662edfe6e26191dd5fc35b358639bf0d8d273cb698aa3df3e212e448808d8186131ec6d4699739f1bd53da84479d3597924f9c10bded1c6d0116d060c2c376dd93d8595a19a2b184c793cc2bc7542a9d2a053494f0a8cb52ed65d67e88ae4978107286c759afac9e5c1a4878f0913379da8677f53f07348ef03843e7d10a734f9d27ff39ca281d1d52a0618407eb7f2934b7691acf4cd740a3088f2e99eac75f18bd3c13e1c188a6b06931c6499eac82038d213c887d1ddfa3c87bedfcc5172960404707193484f028c448a2e163e5c66ffc09ba8c2d321a41781c1f63de94cc9cbe34094835d000c216de662d12422458b65984d69c473a6dce9740e3078fac2ac7ffc520394caca3e346e56036d0f0c1a39c37afeddca75dbfb3078f2ada7d68f9f7f10a7381060f1eae7ec4bb883d06183970201a68ece0d1e8a46d8baa461d3dc723011d1d6380910347470705407043063474f030e24c46fcb4a99e42326e501180460e1e4f59fcfee819061a3878786f9662a690d27fea1b3cf2f4b79ddfe7f7cda36183c79b7c53b72fd5d1e145951d68d4e0a1467ef11cab1843c65fe01e68d0e0519b65b656bdf74bdbe661c62c1e4a487e91ab5358e5080362862c1e8644e457db0be9c38c583ca8b71c2576536bf7670c3052d0d141c6002305078b8711f565154436784add1966bce2519f568892adc156f40e00a461862b1eff4afe599f10de7307c7566e2b1ecb66094f22da1b52c69371832c03a408192598c18a477b236da1e6a7c27356f138fe44d0efc9965a7254f15837c386bfe8a4e271d0a095553e75bedda0e2917567edb39cfdd5f4291e87cd15ed3683a6c56c8a87f392a731a75c96d35a8a07b61273a47b39733b49f1f0d46afcb5cb513c3489981d334f5c9e45f13075b3ea4cf86c9060281e86c9af21720e0b3187a078742b2691ec2a5f46ef138f3786cc14591126a4cc138fd2e6deb44e1a154975e271da931462670aa163c589c73ab92742ce59737fdac4c39314356f6f73469134f12832744a3f87348f31138f439d56bc13d39cb2c7c4c32cf997363df3fdd29778d4f96563fc349de5434b3cf29c767aba1aae5d251e5df7b68b07f7ca314a14e1228410dd1561e3c3a3f244b0d0de241ea4b8ee5739766ab77310982189079baec66afe3beec68b1ee30619bd7ca30c31be20838a023322f1e824a7d39c25fe4774c9166640e261dc9bac2fc94e007361c6231e7a841091e33637a5d6d1e18887e131e428335331c982c771c30b2f9c8cbe21461956fa98d188876e652529e5d41893ce8847a63164cc1533fe935ec4838b09af8fa9b41ac38a78e4f113295e1f054070038c1989781c66164daff32df3d9d15175a3cee63003110f53bededb88a72ab93bc443ab8fb3cb1b437b57433c8891e73c2a8ddf5438a3108fd723af646c959d8710ac589c7b956aa65edc2897434ffd7b3988d7376744bc94abc7c4b1250873c892631708d2f4488a775f13c3b1d56390417a0620504fcfa2d1a9433982197fa02cb66ececbf08311f2e221136526b64b464d88be501f7b738763cbaa025d7031012e3420012e16701686170d861846950220b87166f4e151c538791f5623e64cb31866f0e1b1ef48ea97478adea51aefe1c19559d8989ea9e1e233f4f0c054f35acc5b694d7e1c5b61fc1737c408e3463160461e1e49f6989db4f62ce5e3e171a81731c9cb8efb913b3cd00c3ff219113b3c94c821a58cb13c225287475127568c59737de7960e0f6572dd4aba5f8eca1c1ec496ded8c93e49e66e861c1edc6fde0bf2f329a4d754601c8787c1bbf4bbc3cfb62c4898018787f596aec3c3adb7e40d0f2ec5c9c8bcb17337e700175d7011012e3420012ed80d0f525ab6b6d8d0b618d38687b17a25598b7986c829e333c05098c186c765294be6483b1663f6d6f0383df276c434ff9442ae30430d0f2647879c494fed3ad98f23016234200d8f37a7756fbc9efefce11366a0e191e75aa428cb9d5a2e499871860733c97cd2b2c7f69c69418e32c27898e141b0b815914290ecb4c1f0a2bfe8820933caf0587e454d731abb68891e6106191e869463b4710fbb75d1cf21461746983186c7b1e3e2738cdbf9c4d628cc10c34371fb9ccd36fece3f1c5b37b2140333c2f0a072b386cb4aca559e1960789c82c72a3f55ed304d03667ce1e164fe65eddde6cf94171ea69c6347339f57f6ae0b2ebad016cce8c283ca1b627a0c9ba122c554b084195c789c49c2e54bf1cc10276598b18587d27a1635fa3b671621c20c2d3c8ec125cb87f3934f37c131ccc8c263f988a93ec6947afbc718a3af4c05c65878987174e2dd855817c61957786c3168fa4f1ab7c2c3d7a910ddeafbd66a151e26df508b97b3c778e9195478b4d9528ed8f790459f3185c7215dd659cb758d9d33a4f0384944ceb8591e2b3a33a2f0d8d6b355b8a457e0dd8b2f325086170a5800606106141ea4581e269ac783559ef02852d6424cc5ff701a273cd6184d74c3ebc708e1263c982cf136e4bc61a35e263cc81e7ef2678f4b789ce3bcdf13c73c22b460f124863bf9efb9e8c2ea46a57bb154881a8778545e6176d2799bfd5c4da86188479a82548708259bc95a428d423c92adce314cc848a74e884761a66edfa26b984d837894d7e1663a9f201ee8ec5728cf14e13e4ac0faa146201e6a06b3885ec13eead38004b8b04022256a00e2c1774da447e5db4ea1cf400e30c038c2841a7f7814266888de467e860a175d70c145175c70a1010970a175a3f41135fcf0b0c2438ae6e634b12a7d785cb617454a439289910f469acf3985c8df1e1e64fe9f87d4bca1d943c4302920a3861e1e6b9568699a983365c545175c28808b2e4ae0051937ea0d35f2f028c94d0aeb5936556af1f0282a7fd618bbd25cd2eef058e277e45436ed8c8fcbae50c30e0f92fd7886f8f1575b52878797f39bbebe8abd5574789cbff9f543ec18b6b1393c901c914dbed52786550e8fc33a23e4e6260e0f32774a5f39e1db2c85c323d78f1abcdc32dc85def030546fcf7256cdbb9a1b1e75b6b7dd74fe270fb5e161f9c77b8a1939eecf860741d3660fdb0cbda1b386477e534125c75f0d0fac2f22a7d7fc2b95a6e191e6ace953cc9432278f86c71f3be43c1b62ae8afb0c8f3bc795fc13c1abf254b55bc30c0f36652cefab2dc3c394839978a8d5387591c1fa851a64785cf213af2e8364996c8d313cfa18b91834252fc618171a90001774a82186071b2e9b85942e0f86171aa836d408c3e31c42744a2cb71c7ad500c3c30ee6c12b5bcabdfcc2a35a990cf79766a0a3c35f0537cc9320d4f0c243d7dcaf0e9ad3a985886152b05d789ce543e9b5468c2919629c047c592e3ccafce99c1472e7bedb0b25d4d8c2922a3662764b76a4f6eef493162aeb59a8487b3146777468400b35b4f060cc5c762dc20f08438c2f7e50230b0f2b5373ee24f9bd7952030b8fc6e27272cea5af51ac7185879edd19d324b39bb0c410a31010d4b0c2e3d68bd27359fce23755789c3b1397c9dc5cb7b64b4152000437ba06151e8686c8cddea19bc62629d0a400086e78a0c6141ea658af0fe6e19de7ee400d293cd6bcd9dd193e3f3f51781cc5aa6247f15c4183507890e1eb97ea2e89ba77a3c6138e8e8d146ba98cd808d9d3c25b4354d9d3108ef522471937c620a3d606359cf0d8e38ea5dc1d39ad669af030849c8fe79573e57d0aa8c1840721d2ecdb7d4ae1795fc2c32db176d19c63ca9495f0c8e52247e7298f31ac49787065172fd7ccc65b8784076127ecc708b106d438c2231b93bd8c715debb8111e4ce896cfe35162d95f8407d93aa78484cf97b310e18105cbee71e2437854a3617a1d43213cae7c9db63abd75ee9c1a41787856162b6eb0f9ba4f0d203c0e8b20396a56cb293d357ef0d0c52a6a8a4b15f57c0d1f3cd8aecd293a2ee13b5fa3078f7f4663f4ce9f256ebe060f1e646aecbd55eefc97afb18347fa29e213f4d2a8e56be8e0c148a83ca2725e6d7f8d1c3cf498d24af86ce9ec7e0d1c3c90ce5031f5bcdaeed7b8c1e389dcb1ee972d0b7e0d1b3cdc4e49eb7d2235685fa3068f425807cf715248d94d0d1a3cc8bc9a22e4680cabcd2c1e549c858c27b6e963238b0719f24ef486b19847138b0729bad934a47ceba381c5a3e0ee36ff9942becfbce2e1cfb56b45df6ac5dd158fa2458ce5d2d05bb1b7e24169465c8a1267c583b5fbd40aeb70ad7c150f25fc5eaed4fad32945150fb236673a33de854b49c5c39ce262b48a1f378614543cd4506ffb8c6162c895533cda98fd35d7b95ff48a291e4f674966fe1fb3ed5d8a07f329859e4489f4dba47898ae21754ea31deaed513c0cfb1d36c4f5b41a5b140fc653f8c8143625b53a140f3d9a5669a8e9785383e251869af45b492d67a93ff120c374f09464f3c483cb887ae5b1dd3d853bf160d6b28614c2a5fc2e73e251cfc6c8c1423c4f296fe271c5ba7871dd344a644d3cc895e12eab52c8e671261e6a5584f5183e764e08261eb5bd49ca609954477289c772933f986e7e478b58e271250f2d39778a3b7f2bf1208592bcca2b57cd2c251ec59075ca3f7d26bb77120ff7753526ad3adb6a25f1d8ef3d26e5c60c9347e2f18c26abafb442e2a16fcd89e690d222ad8f7814b5345d4ae66f3156473cb28a952f7859bed46a231e04ebc9a9d75e4c4765c483f4cb2f153e9e82a88b78186a697736869a6ca9221e07fd997dcb49c4037591ed28a97daf47c4e39a2cf2112fcdb2928778b0a3f39a69bef28f6988c7494c2ced6de3442f0bf1602b4d3ec9f4398e9484786cc9ba6562a43a6306f1b8b34786be89088911c423f174f277bb39e51d88471f33449a9c45520a01c4a39053ce2859a3d6b47f789c96329f5844f0bca21f1ec7d86f179a4e62c73e3c34a99dccd0ff20413e3cac8d1fa3314c90c9ede18166cd31215762585df4f058275c4eb91ee6e1d1c4f927ff4f2ae5211e1ea51044248ed74a4ce11d1e6d2e3b897423e93c7678b492f4429e7578d8ea712f788c389dd3e1610e234933560a9d95393cec609d2f5f7d7278182a73c2c21c87876fe9a93b6ed68d091c1ee7781e67e53ff784dc1b1ec4546989f36b2147cf0d0f37bf460babe35fe3b5e161ca21c4b5bd0ee9bd63c363bb5497fec89b7eb386c77efad159d2588a460d8f6f93c4aad3cc8b7b1a1ea47e8df6bed1f0e8ccf5574ed2fb6e3bc3234f317c95570c1566333c8cdad831c4c927b596e1619f557866d664789c3e426a9bc929d38de1d167f30cb962a92513c3e34aa1342f2a0bc3f2af99af9619303c528b75995c77c3f55f78b031632fe7168fbf292f3c704fb59727a6d2d34f171ec859d54de427f74a71e1e1eab8554ef95bb35a5b78789e9b2921450e374b0b8f5d763b37de2c3cd8faf4f15635967a58782415329cfc5e67577585479f7aa925b676fb5678543183ecbfe4f5b70a0ff37f481926a9afe65478a81754fba436549f5378ec3947ddef9f8a05a5f0e0f2e6be986ced49237f15dc1040141e06c9a5297c7c79df8d632bf1100280c243b9fcf1cae37d7792706c9d71e04b2be04b17267606013ce1c179c5bdc6deb41d0dc7963142004e787c62dbb691d52b4c0a8e2d1384009af060def4bf2dae052b1dc7d60d2c2e34d0802eba280e747478314602728031811c608071841000131ee474ae7293d2667f1d1d2b780f438c305a5086171d1d1d1d1d1d647c175c74711ed0d131810d7474dce822c77774b817ca0105dcc821c6b9f185bfe9e8c8f16c36e42080253ce8c82337d3614aee52411080121e85aa7c129ab9262b9a84c76127e729dd0e121e5558a6ce933dd867ee088f4374fa82e9c59c2e6e8487712dc36e3091d66415e17104b5ce93ac4ba715223c92ff30b16f6c22aa16820086f0203c63feb6e86a4b910084f0e84ca38c45feb4951cc7d68d85810082f0506ac424498e4e7412c7d68dcf3186ad4000407890ef9df3bc3357697e0602f8c18310d278684edbc1edc7b1459608c0078fcc7223f4e7682b6e9985b1818e0ed30401f4e061f86abeb4418263730880070f2cdb4cf64ccce5135719df00820301ece0f126b3d050a6d3513f02d0c1a3681ea285eb98d52c470039789cc27c78d96d4d678f0070f0e02cb247e97ded101e01dce0415448b6ab416b52fb02b0c1e3fcd65d0ff13e79f602a8c1835871b3cdc592d38b11000d1e5576ddc9d693a98b99c543ad0ed61237a48aa891c543cb96d6193abfa699583cdea07ed155ec3e870c2c1e8ed4e7c40b593579fc150f6b7e6b2e45f8f9b0bbe271c54f1d53b548f6c45bf170df46a34b9c150fe24253a87eabbebd8a87966343d2bff55d54f130a6ec9823732f2624150f32546fe7667d9f51f1e0a292073dd91c72778a47126354e63ec57a544cf120de68b0fc8beb952fc5a36839c2db27ab8c4e8a871a35d5cd52235aae47f1d0d2a79a4d9dd91d16c5232d3d0f3ff1d14cc2a178e8967b4363728afc80e2817d7ce84e8b9552987ce241d6c5f364c12da4ac271e6866dba8874b16d776e2514469b60e69957ee1c4835c2ed3a975e3c478130f66c3332ea4876789261e249b1cd534ebc4dd4c3cc8a2763a952cc50a15130fb36c76ea8def417289472ab162ae98f15fbe251ee7129d387fb3120f3d5c9c5775498907599d9da991f3223e89472daf9155a993792c89c7539772eefc18f5a31889077a71395dea6ff20f241e88a55c99a1d7372c8f7810f7442ea2f5854e1cf17883c70e1bbbf2a6d835e2518ef4ee786a1b55463c4efba79933a4b23b8b789c1bfb53369256f615f12867aa9c634ac74f4c221e56957be4601b221e26d5ac93f71ee261a9977b6a328b9533c4c393ce292f07dbcc5315e2c16825f3e8ffce3715211ec4b9ec97c2cbffb98378983e6bb4201b413c9abc537629fc2ec2403cfe98d692438c7dd7118ead2a1a0400108f3e5d9e60d16bbcfbf387877541234468fa1bf9f8e151903b8baeccdd269d3e3cfe147231826f88673d1f1ec7a8f2d76f9e9a3b660f8fcab23cca5588a5a7d1c3e3586d1d37b64e4a9bc9c3a398e4227db6b6b1327878e0929129f6ae2f95b9c3433d99982cf36e87471d5fc1d6bca72de275786c9197fb93e6dbd43a1d1e06b1b8a99b51f2a5cfe1914c76a898b60c17b91c1e6ac520e9ce2b63e84b1c1ecb9646f009f313ba0287073675f693b7e32555def030e84f844d9cd18a8a1b1e44698e6c8fd09026dd86879abfd63bbf171f69363cccc146cc624aecd45ec383af98a135eff4a286d5f028d2848eceaaf9d4701a1ef74f86d6287aae1546c3c3e4b212727eb3a48ecff0a85fd6d593a8a6e9c40c0fb3dc26a4cf61b2c2a40c8fe35bdab0f59b3ec7840c8fd3c4a0ad396da633328687351a73cc1572849c2262787057b17b11b5247d360c0fb4ac3d86baaf5379c1f070a53c750c49cf3bb45f7894e21e267ab4a8785491251d2f54447e738a07561e5ea927c39ee7f44b803f60c3140fd3ce58f525c8f113c88c808d523cf01dd9cd13632e830d523cf2942c35d7b025b9b1186c8ce2a185cb933af24c082913c583d2f0dd31a49e4a5964b0118ac76973acf8939bb33a04c5a3cb9df54da2b9852885c1c6271e68da08691e327b7eb46d78e2c17d77ee7411c7b1d50202021b9d782421dfa2b735cf69ee011b9c78f4ee31eea7c872af171b9b7898f273a285dc2fe9269a789c25238d5b8af3ba6fe4480119613c59261e4aee781a76ff1f4305c7560bd806264a12ea29697aacb438b6caf0a2902ac361e3128fe2eea5dc4aeef0735be241a69012dfbc5c4d71251ec7a6e0f3192fd3174a3cb654a2f92f9d265d9dc4a3da149aae7553292c493c8e49d2a7a4dc9faa7b241e9a74e8ba0c43e251daa84e95a65b2dcf2de04c808d473c0e27ae62593c4cc7700f6c38e241570c21ca3a94494a49c146231e8da7e0fe97bdd3810d463c1eff7f95d7107bc55ec4e334f792677372c5fe2ef0041b8a78146fe67246a2663d8c63eb4618625c71a181066800176123110fcea27d86dc4163543c477fab7f8b2b8ead16fc096ee410e3dcb8b186838c76000e321a8704de8b1c1a90400eff1c1d1dc5dc782f729471091b87781855ecf376aed968258e2d2ae424d830c483fdebd1509316529e0bf168d37c27dbb99471c2847818bdfa5b4d3759d675108f26a7c858a14a73745482789ce6c522e4835bb011884731fc9c878aca0d05c4831093bc763ffe87c713534e216ee48d9d2e5ab0e187479e42ee67a61c530a7a1f1e584ac59c88bf946b3e3c3ccf39edbdae6bfba322b0b1870735f29ee24d5488b068066ce8e1814c4e4fe46aca15421b7978689e9221b9698b851026d8c0c3c318526629b377fa7c1962a8400c1b7778943112428c1d298e64a4c00e0f2f6ece89bd1c3be64619fe2608c38b6d818d3a3c48573165595275d11bc756aec0061d1ee9a6902e425666cfc4b17529b03187c73d9dc57f836b9f375a90a38c2cc3861caa836cc4e1414b778e71d4ac3ca6e0d8fa2f8c1737c21063bf300fc8830d383cb69429dfbef8a44ee7def0c0c73dac578e1ab73c373cba378ffbd1c2e7ff4c1b1ea667bd0a912ce6c4b0e181b57e5f6af8d7f0f8332b84cb12472b2259051b6a78b8ff51f67dc6263721b091864717917f15fb215e8c25066ca0e1c16469d0ac3c4deb2a9760e30c0f572fff5d08e53e1bb1191e07b3cf1ec23292840c2f980b0d3420c3b05186c719ff453e5bcc7ac990e15125d590b276fd9195313c08b96eccca73c448b2181ea54e44b99869973d68011b6178505ad9d22d43af4b05c3e3e025761e72aac7cc171ec693c939a5d01041f6c2e352fb51cd369a26aa8226a30b0f3e6467c5d81d65f3c385c7963e4be4bfbfd0b1ddc2838dd12f1bb3a2bae35d12e30bac401d056c64e1e1c7cbcad93c3b79593a3a9460030b0fccb5d6525f7f929f706c5571a1810630400561e30a0f3aa6a51ce3caa2ca88638bac0b36acf0c0f6a3ca250f4f77368ead2a3cae60d3f3a962c5bc07eb0a36a8f06827d5abbc77c81e4d1b5328264d7c3bdb7851716c9d400c3170dcf82f8c176678b02185076fd9743e48bc7898e0d8ca283cb4fe20ea7f792382af59b00185472a5f9e3744d6d049c6b1f5d7058e32bce800195f7c91002ebae0828b2eb8e0a20b2ebae022035c6840025c3c90ead30a369ef078afd2dd34b26a4c97369cf030fa7ec7a5c839c5e069c2a31c51b2a6ea79b9ed045d061ac006131edcfdf44994bf8447fa3e7a9529a58d3941800d253c0e9aa43494d567863c098f35c562e6f35c881a23e1419410ad14d772f28a8ff0d02bb3d23f7abcac88111e7fec75cb3ba551d35b8447e9c7a622867d79bf6d10e1d105b98ff14eccb52b17081b43783c23a92c7dccc69a8a0d213c9e14837a8ada9f5837088f7b638ed95944c2e64078f4bfa51595af6d427ef030d2ce9acec478a7a90f1efba46499bb57542dd98307295b49cca521f4f4e3c18348a9c13e7bd6bdcf0e1ee96e4eeb93c23ebfa683472b9a5162cc9d522e95823172f0208ea494b25e556ec9dac0c1c3f89d1f379ba685f8060fe6b34f738cdab0c1c3fab9ceb8b093498f8d1a3cc82de7a9d2621a92c7060d1eee88aff5e7891ea9338b07d152d494e236d35b47160f2d841f99d32079ec583c0e319747fbca782179583cb49c23cc275c4f76ff150fb46ea6d6934632f55df1f827bea73e754f7e7d2b1e58ccdd7489dd937e563c1c4d1ea1dc72c7ed553c8a27395f86b6943aac8a079b5e6bb3480cf9d6a4e2d1ec25cf9c4a1d326a50f1702d78e590c375e7694ef1209bfeedc7ca934a19533c0a49362d91f27879bc148f7332f3e59be698b093e2419bb6e6d0f8d1f1f5513c4e3134455465bb0db9281edde5da74bd79c97c281e4da49f363169330d281e691eab5c56b1aee29f78609e27a2e53abf654f3cbeee301fa1e35a943bf158edf33564d3b89fe5c483103fd7273e476dba89871a7b6b26cf5d8d5734f178b53cc9665bcbcd4a261e76a484a65afd985205138fff7622237bd88caa5ce2c1a7d866956136ab6b8987ea194bc353d4cf66251ee5d8c78e5126850d9b128f53d9da9654aeffae27f150d37a6d4baa4c682d89472131588568329d431d89471ded62883edb2571483cca202393ff5defec473c085b412569d8142eec8807af5359be248d86cb8d7814db3c42fe38ad1d65463cd69453eab0e936529417f138bffce7c51039ca64453c8e39784edb79b4d824e271e49c462c5f08221efaa6f1d490337774c9211e9648e88e1df4630a89211e7f0c6aa366551d355288875bd7713f354288c71b7c3767b2f1888c0ce2b1977ce6b0fd39eab38278147290dd142b7c4d6503f1a025aaa6e59ca12c6401f1b0fb72674df53f35d93f3cfc190f1529fd2d84eb870731132287af9bd8b47d7814a2a710d54279bd46f9f0c026a44a17838767ad7b7874e14b6f6422d265d5c3639df8b28f59cdc3c396adb412354ffc55f1f02805f7ca7f77b535ea1d1efb854b39a5fa42dad40e8f53acf3cd9f429aac691d1ea4785448394554494a87875d2195c856ccfc660e8f35e68a30bab9f19594c3c3e89ebeffe251ecce38e4ae3e2164ab130e8fe35b47bad9bd4c38dff0289f5e38170f633e49373cc8b51fcbf66d3eba6cc38314fb3e7bce0d153ec886075983cb4d9c4d1e39b88647972c96664f51c3838f9f42bed385930ba6e17148bdb190ce22ea8d68783c95fac252e6f1b0e2191e9f7cced51735d48d6886472ed952ac8e17f673caf0e855b7a4a62ee6f893e1419ad4d1fa756b2f3e86c79352cf4577db6417c3834fdf6ad51c413e0ec3c354d9d40e2a1b933d303c0a53d176fdda6dcdfbc2a398ac7f17935b5ef1bcf03057be78ebf19713af0b8fe23d67aa4f9a2ce470e171ea9fec125b264ace161e574a7f133a2dcae45a789899dfdd7183c7d066e1e14bfc91cc325b31685878e81e172f6693fc79b32b3c6e518908f1d3df9459e1e16c6c85fcbfe75859151ea5cbb81027f58cc78530c045175cd005b8e8820bb20017169000175f8c0186174a8587d11a2ebfc5decace141e4c9ace15d19743cc4be171674c76f270315b1f85c71b52460dfdd0b80c141ef5e6f057979ff04833c76ffa62a2cde58407c1bbf37b7fae635c4d789c3574ad4dc896ae2d263cda48de651139a7946a090f733c89581f722d44a584079f2d37f2ea497810aa114f3faa5a2791f020a514215ae7a760e3111e7786ab893944ea8c111e4916e990b44ff37e457838a251b672c831b2a20110e171879adf1ccffe462d43789ce29b3f225e38b6b8020310c2a3d7b89844a3367ef3bb3280203c4a31b9a393e4cd5a1a203c887495a8eb512dd1d930801f3c8871e1d4732ad5181b1f3ccc1ba3125e73ce167b1a06d083c71521caff674d1163a70103e0c1e3c9316a899da7e5618841c2a8404707192710430c1c6268e04b051d1d60a861003b789c3c83c749b89c2e85706c1961b43707888dd160dc7f8e324a56dd18800e1e4cd0e9283d2145b44ec1184c06d918643c069083c7935ad11b27736fd0607f8e323290e3c3f0a2bf681f000e1e464e656c45440d99bc30801b3c8cc9d264e5e5babc181b3cd43933c9647ac9c4528347216fb68b9f429a861b0a03a0c1430916c3670e199143b68c27c366f168ff62446fd1d2df0d0a3564f1b8db463bd436cd7d8763f140a62a6ae445af0981c5c31c6334d2ac92c98aaf78d075b19e53da2b493957d468c5c30a9ab376e2c70929c68a87deff533e169ff29aab7814f4433a79597be98e2a1ea485ccc1e28c86114d2a1ecee85cea665fce92838ac79b45cb36af869b9e9f50e3140fca25ac6af2dca9bc31c5a334cf72570db7e461291e784e9f68a73a17196584d1a478ac2329c6b0ac4a512d8e2dada4408d513c8e139fca73af468ab91c62e4c8f150513caced14c3836cfcbcb1106a84e27134ed97b8da4da910c79659193540f170227fd56a5779875150e3138fca2c568fe6dc9bafe0d8c2e1628cf177821a9e78dcbeedd1e5323289a346271e9bc64faa8678dbbee1c4a38b9dd53246be18a56ee25112ed60fe31a75b734d3c8836b9c43fb26a748363ebc65d116a64e2f1076f9fed9877538738b66eb4d9834b0b1dd4c0c4c330bb696db977ffcd251e74cc64131d4b4b3c9a6bb14a137ab34bac120fea67f6dc3d45d72bf8306e8421067e1815e8e830450d4a3c8adcab49d998facd16a0c624f056978e1bbe35c4b14535a82189c73615324fc8b5390fe36f90412810c623031d1d8a891a91782817626bc4bc13ed765a7de912831a907878be22ff5da59de5df24d478c4838e515f9df528d195cc420d473c2a8d131aeda6e2978d58a8d18807e1d9de555bb27c638a083518f13085c8d7e9f9d7cb582de2f1745009f1a6d3dd948a781436fbece68e5c21ff5554a8918807559a528750729f8c9ba804eea5e2a138180a85426140100c00a2ee7703a3140000000c1c90c6a2d1781ecaba79148004443a304a3030121c1a10141822128983814018100886c1804018100605c2a0704a3c8c62d45e0084bffbc369257a23f999bddb7fd32b21b8fdba2d4880301b99d0b95fa21d49b69c8805bcd0dad6b1085b751399793f2f3e3dc4b466ba7720140fe7df9d8506336420245c729dca8547887bd994cfed1d11e0ef6c0c30189d097068a387b0f838d86ceb5f1fc09d0c2386149bfed580b88266b4c16f4421f8fe091d836d0d922af0dec84ada40c4d08a28297ceae059c005576b40f547b7e9bbdf1ebe9d1ad62af1742e3fb2c78dd726f2b433ed1943239334da0985626ae690e52350436e83a213a414178176776e4d71b65b946aefc6ca1d0e679923c57a891d89bd0d9f10b758ba2d39cf352c03cf055b85c14ab430b86d026a212ace8e862fe1f6267bbf0e4296c785c4800aa28c30122ec74b5c66608de1d39ecad92d204b25326cb0c1a0653788c7c483d7983d092e11e9eddd1b80c43669cc23109514a22ce9ff2125bd799ece94d0fbff04b7674709bd66c95c391db78df6b314d9a87fd228480bfe0b5b930ed49f81397425e29ba576024ff475e825a5d6b78cfad60e391cd3ce2409d551788b73338c9a996b14813c35e2be6307778ee01a5d50de389a6798be7b36b0230d275d6ec7c34560bebbc210b5b2fda213290efef1dff8670a4594d80bb4c987f599ec7d85d60ebfef19be57a2166296f795669f0867d6cb88a071ba3124aaf455c7e428692439b66322b1fad4413dddc423f1f5b8e4d770d4e85db9250fe00366fffbf3e06ad89a9a22c9d4f67632b5a5360cb3617d3b326eeba77f2e1e070e752467ab2faed20a4560ed6a3ec9c104ac44f5749fdfcf7fb8dd4df5197f57002c9d311bd8c6715c675a65aec41d7b742ef815989076b4c52f4873f0b93a9d26546debbed8f8e89e4bd362710229a82b70aa84c3e01a500cb1bc985df1fecfe8558de64f4a589c4e61fea001522436a6cab9e5855e6df63efa0b2e087b6c252be42e8463cd1ee887db54558d72133b987a97548d995e6fead59e8c7345818a84859385f0344aa135af019a5b1338f53170476ec89765c36f913dc7a66806670813a737395ad077688a2ae50bcb389077cabbedc9f3087aa83acd1864eb2be51ac5c9aad7055496680a19eda0c6451f5682439c4d5b43ece66447140e6ed602828a1a4d199e6f581a1405955abf7d3fddf2675e59ce01f0b06128722647d8c348c74e08c050e3e05a381725dfb94541a44d85c1ebde3fae98a5733b4a90b72e9bc4690a153831643de096afa0cadac9b926acb77dfbf5409716bbc0e9b296b325b4f9582ab52c8b719d2885b0f6e1eac6a3d7aba8e21429a35186f2482a9289d4ef5d1f8788a5e026b606bcc4aeac2a45a0e9b53e4b4ddee62fc389e5499d59435c04e717640a6abd34a5427a5336951c738ebd229902d600daee8bed5237aca2c2cdeca2eb021a6f2ad5a230e16196c60f4959fd4114725fa19e7868177d27b8620129bbf6f9bc7ee4e90358453842998f0d7c998579ec462d242d2ab0b7f8379bab7e5f5d68750bc565a318f817d630fffb5fa84f85f05af5871c9a4a15818801faf88a5d21f2c5b40e402df20db2c155d15cf4ff84be0577ef0f288260c80b9050ff8e46bf5ed514da71b7b8fd11a96eb062331df454982b13300cce0aeacc4c1542daf375e308afe9c4cf2e8ed17e62d1adbe29826cd36e9692b3300904d164134342c1671d0135ec4dba01ed6042f54b28c1ae9858dd69431f2abe4c7a5741f4c0735161b268d80a8a184815d9f4c9e8e39ea3dcdb5d3e642e57ddb6ae3b5777dad7a78672916d7daa549766433dec81deac9d7ad223b668539e32bc77ba492f19eb5535ee558dd59db7f594b1dcd8f4ebbe0fc4850950ad68d22daa95ce93cd03c8a8b8fa48408a9aae9e8ce5aad1a818e28bc90282559184eceb53c596a35e29aebb691c6d79d09d3c69965b99d6ed8bfd3a5a70ae1445f77a3f6395affb37fc0e942b3f8dabec24a89e3d69acb8b7d5ab4e324b7d469ffb414b49887dfd7382345ab70bfac5f12214973531fd1244c937fc0a7431ce3b3cab845896f55a757a91cfa89cb0bc58def5abc158ee9e6670fe3495a5a2ee59e4d1333c25ad27d19e56b8c39936db730c035bca14740ad250bea59b0e59b165b41ac92c7ac4eaf48b77ec02e3abe804e8330989f78ddb974e8a06fb078877f6ce1c11c428a23de9e4c1aeb7db0d125ad8d2931547ca71437ff3b8b2e128a99ba05a1718422d4a6228d4c9c607f1b732456b226e4b21c14263a0f0a34054a22b7a5fb8fe58d5dbbef695f7e9390c63932dfefe5981ec9af2179417fb79a24e9c97f803b1107dbf0cf82c40852577ec668f12c31aa3d58dac70c9679e3a5ed6833db7ca2857dd217634ed648fa4b4ec99a5128fb350d72268849135fb74d202c756380073839b7af6dd1457545de570aa18a6d5aa4c7b0059d6083e98115a7d1f9451bd8d250262f166200efc9985c8942708d41d922b27d32c44bbf9d03eb9a67a68be258643437553b5c414733ffb7cdb0301098e315697d2545769da55eedac49c77a5d2b8a9fda799662de09284b8a11019953edf17c03a312a10ece3f0917a0408328773e872f2bf82e8db334f3b7045efd32555b59f86e1836cde924ec0ff7e4024889a7033b71ebf10842af8d7dd1500277a83c502c07915990b9f9535f47fd83c180be24424273ae9f5f924d218da7e3f9442cb4ee1774ebf5075bf837a0bdbdd7c164386b1f8c743bd3bb72ac3e89bf878dd888e6cec38654542c4bc82f93530195883d6870def883f15dcb8c1a335a8b10dadc27e9ac0c08134fa6914117c45626f75e5d8ea068d6cd5dccc92ebbca285ed08a6828259537f8c02d6ea6616873492b28bcc05aea72854a30cdf4cf862c46ababfac98b32608a7bb30b04dc4a1653e714a8b5dd7d2ce181e1ede42151ddaaeb4a5ed45cf511fd58ea6c4bddf8414eaabb757dceb6744fee1b09aaf241d4248879ac14db4cfc7a3367051188dadf154b9edf7c2de4c9a2c9a5bd54c2db644317c396e80f9d75c2b6009b80885d7104e361e1ee07c84dfcdde92ea28c05c72773dc8d340ee254d2b8b6bdfe14e1a70b927d46c50c45818fd19bfda4633e93ba97ccd702ee32e861c153fcc89666f3f380ca758ad0b9e0f9c4a714196dc5381754eca04e172bef91f94d9f3c8d596c6cc2498e6f74df28365b423a4153b5a7765dd063a28d0b9d7931cabcacbdc01b370b5694c3f2ac0af9303dacbe01feb4cb653d48d998567a07c4dab6df5831fd51794edfae43d511523c3118b295660a25fcb2a3bb5be02340c606331dcccbe543a012c660389f6e269210576f2fd568b94606f1aa1699335c06e434ae18613ed3dd023cf732a0f5568594f04a08e278b242dd249ae6d800260275a1fe054d2c789d4b02aa8db56e2231ab2fcb9f760a9852ad6b6f47964975132e29af3dab9fba07ad458b8b52d4f880d005bf42209816e3528df51eb287c7c92dbc9cd7310d92cd437725f4a93c654b1977a560ff164405b6a2dbf473422f4ed9773c962cf38349a50e6e58be6e59890861659845653ad1830b75a958ccc5892416b89a93e4c9b2637761fe66736ec62a37651e299e4279301ed6c2cfe544ae71e43d180166f066d0b165f0c6cf4daecd2c65c7e332cd0597db8cfa6359bfbd884bbcdccddbfd9b028b2f7dac7683b9f1cb28ccf6f335aadb143db58014dd04e0815022dd8c985694a238f5ce4058bb1ab8b96ec18e951fff8df5059d0f576faa7dff26ac8d47c38e87bdc9f0086938158118cece82bbc9f5b70c476230bbb4e7d67de142045600be01d707dbb59cd91e98c1bde80709cbb0e944981e2df18d13a3156c9ff3d9a8c6523c60700c8ec14f9134946db1941d39806d06a176b8a0b187d02ad686fe8420ba6f48304c79c257d152b33ae93fcff972bdd03d73f4bad89f59b6843a340c30ecd68e6c06cddfcc26f723d0c192e116e436bc24e3e43f4aa47f6de5b52342d8638a1145e10151d9a68e062833e0efe19b8737a9fdce80ff7b841e8dd0c440ad713197b4073990431c9a592fe94d6338463f5d9137d219c4569a0d8dc66a2302089713eb731364697f29586730c6d883ff6e39ab4aea47a8533415358e0b3a51afdb2c496c06ceeba9029b6fcafb198a0547bce9cb558c5c0fe3403b819c249ec4afb8a6bb875ce8c5d8806301a97eb4f6a971518a678671b264ef19c86eab20cb21bb342ac9552d4bc7602f6f0cc529cfe628f5993eeca71d2050290c1088cf76595c2d0273a5a6c133991088c9f487fc0ac621578944466769aef36198d935486dcccf2e153cd5dba7001a7f9a85eeab99c823bbcf0d33aab6ff25a5cf90ca3106ec175948e6e38a266009d361e4b0f4fa013b5a3359c8c575480c63818b3700d4aa3ee3f0650b2502ec56334c327d4466b7112db62090da2306ec45553115a013f4b8adc1d19a1019a402e6c425f179c64d8d41bddfb4a59b0100f51e0dc66abb4a9d6ad55d4c332e86aba56ead0e2c99e1c86259ef0d0d4f4d54bafbab676b587558e2b63d3279e13a4f40cc3346e59a8ea8aca910083a4766bfd3d7af7a477342d176530c5ec27b15e3d53ae4657f6bfe4509916a85ce68c14f08cb543de9b50d50595232106a3370e97a40721a5de68f5156cc345da901566cfa8ccd47046316301078389cd45fbe08cf7ac3a52b12f488757867927151dd269f7211b382a76483a4ee0361eca010cfef4520da0505b005c72ae154c29fbab618fad4778831654a9aaf78f12f32e4d76a5abe0310d3bcee4714d410615c74820346e4474ba1f61b85128d2f83f3f364a08676e05f10d8b9728bd28d3f11982bc4b18c66314feae8a22a7d880992a785420bb8e5a737d88ddebbd48724916349bf588357d41868ef40918981dd07bf2255da9c34d7b79c34b5d23a274cd444d82853efb57584a33910d7f0f33a68d3faadcb1ccdc787253b94de79c89daab354daee8253fd370ba46bcb7e3f9f8d5cb53132242816b66ee31fa97d039386851506ec535599c6b8b90cf71ca76f143d3db19df02f5d7d195661e227cc7dac2c9ecb0cdc685119b99d0109922b334acbb114f80d4cece1ba0481befde0116d40cf15159b0a419b8bdeada56f2defe9926d36273d4f3aacba7aac6eed788ae78b8433f373402686fa2c3c1c800de6fafdc003f7c510ca3bf129b33e20b52d705bbb829e161360bb642a0f76b78420ab9a2e19da3edfc70158e20beb286c79c964d2bb75a18eb953e9eea328e080100e6121b5a2215866cdeffcf1c115080e7ae863f6f220d6564d8d003f4232ad323e7db819731405aea1d171acf5594d42831e56a4af3563db3786d6547ca3b7905cce99f6e24372a158cc64be870e71c3cb79c0ed2942ccce83730562ae3ac779dab0d700fa0884c32b203ac03de772ed4c967044c6e8b48cd6a2ebb887aa20ad8dc4bb4c65a06fdc520833c5cd420173c089dc115133d9d42f9a92cebf6fea1586020865c2a81f1b25b8e07085d4ba12d734b3c7d782e71c5ee003c57f0ac9da60a1ebae8eebfcbebb49dea6ed6f5f6329eaea7e6cd7b7f4ff1f77d8f369dbb69bf00c115c68ae080d1067af1ad16eea0619f15f8cd9702ee7f0641bbdf0761cdd02634045ef5ba1f475f7848755e48291b6f464a5c50f4f25d0bc1e08c9f9ff0a130178ce43930ea0cd78469717800a0b9641ede252cb5b4bd85c0600beff3f319830b69f688d4a16085879e75775d21cab736e9fa31cc981306cafc312f8c2e73cac432f3a931e02c0ed58663764c1a46cef067728c16a3cecc982f469ed165569958e6c7c864f4cc4a26657c3232cc3693ca6419ffa4e975b4d401d9cc1693c26c6ca28e6346c3ac65b24c2ce3c46832eb4c9a64d41442693778cc9af164d432a33460152bd8925c1c3b51492765e3734c68aefef8031fdceba2b0e8c76264024dfdf48e66477648b467d6a82952393264a1ff77bd4f5d9bc64da6a971748e78e7d9693b6a8e8e333e599c601a81e34c27e71a030b67d6c975541c08e7ebc87774ce6a27757c388677e726742f9e4467ddc973469d6347e7a8f66c8a42424747df5173b69da8e3c0d13bab9d9c3398f0bcf1a10d807e7e8fec47fa234d887ea12a9c7fc3b45f25d48a6a24ed2d06e213a8accc1cf502848478bf6f30bb23c2ff40466d3b7d345d2694da4b0859f5126d59601d1b28f456eba1c2f06b94d442da153f74c0568b48384d8181fdd316a331e498751b45867dab9100aa3cbbcc569b91356fdcc698c98787210bb6c33d7b676b4bb9810655ffc2c97271c4ae7e246ea1d682a72739b451f4511e68cf6fa079781cfac058dcabbad213647c8e9db0a2ca83a1b08e03d828ba6220281524ba180f1061dec23b757b92700820bbf216716fd57eaee4f1930af117021ad660738303770f21ef58d0d1dba91ab993d69c10e48c1648547f535eae910d1eec99ebe755c571d85f4731554d18f3064b392f38456bdd17983dd03ac403a0ea2f4c5458141abb065ae87e10293d2af5e06859ca435a46d2ac9b85154901e6cbc486822ad3544cd750723783b1b3ccf6b22d890a44228dc389ed9324897b750aca5f0a6e98c335986f14bc9f3e221117c9f57f9f405dd6c9ee771a4eb88fe47fca9e476b380c80f3b573da24203c774d500ac26df0ce79e1c9be44c1d086ef60be9ba27f027de8ab507686d35d3c2e44016eadeec71b69400573c6dba1957262f8321223809c1f5dbac1650b65a1327bec3dfe639f0952fd0f7f6a4d41b2a9b08787580733382dce8351b3a581993377305305a44751a7d66abfd6166fb125164f516967c754e3ee59e3b28616de230ee90305048904962fc8fd9e53a4321e64799d9585590ecc324faa09e16074ad7c2963fa01d6020946482bcacf1d62fdee77fdb828879a48d2555f90436db4c32b0b1bd7646a3ede4a673816214036c3504602bb54e4d419059afac899d7a5a66117b80a5e11a6cd63f28e1833b9fb5f944ecf6aec0d3d60d82dd8647aea7b0ecaf917d27d6e08e874fe97e69a417bfd7d7ee036addda7ccdb69260be239d2e6a61df83166926a87b59d9601f2c159fe562ff7c6d50131d196dbac6c446bad8429bbf2191197e86e45ec379f6621d6689b002a3b34f7f2320b297a40abe853efaf52ae1b70df4606dccda45c83c778d4a3a3ed35540897f3518872c3bb9bc2f195c203da8d0dbb55ce13f632a3c99fe01543c1d38da4160a0fd09486210f04966bc33e0345cd5ad89f3f13112bf852a5583d585084657417b7e03a3b104734790b8719aa983972e87ae29b5b3d4fe85dda954384f50c6dbd880c45afddf50d6ac3f9bb05a8fd045a8d232fdf76ccd52cad4508b65f98d6e4fdb69655859582a5fe8ad50ccb3a74d893ebda8e800c40b6c65226e8b62457ad518cceb695424f683321e8972a70835b3381b44e28376dd04d8047e056f76e1416af07f84f228b7106decb181e6d4bd2f481d2871e734caa6774c08039c61e204d0c15099e29b949a1e5d3913b7bfae4c812f3def92f9b1e0557df0fd541bac641cc32154f0c370938bcd0f99c886b9aceff6716f5e3d37f616b83b425c3940969944e0a994cd477d266140e82157a978c009c8567cdd0a5d0f830e7f311920c75a77eb69686e816162d32ac1eca8d7402c7abbef1ec81a095dd344c8e85dc8bb5a470f110e8719d227b5c2556266b526eb5fc079304c14da7528431e7095f684cc766ef42d42a1312d909012e1a3c77cc2ecdd443c36a4c850805a10fc61617a7b1bb80fd4199ad2b3a9a33ef5f24f5cdd8d59d8b2709fd9f297bee2e72ca77d0ee646c0d8cb9a746712ddf5dc0ddf4d565768817fd5ee8ea6fd522ce0d75a6da81897378e2eb72e8ba7765f1a76b6cb911bb195a7653588c0d65ac88ad624197778033393757f9a8465ac91b11dc1212e713e85ea28b73b607281dfa28bb381f2c449d52fb5f0fd508a9529c98ef0c6f527e404351c104afc1c93cf30fc8e04a62bb6aa31f27940ea1e1c241a2f5ccd07b57a56c2a4dbd8844d64b8150916a894b7c627304521fcbd63574620f330cbf496a90308e0ac989baeff03ce9d3a2316f049558f937a497cd309723a34db980ce4a3578c05874bc584dd4a360cb999068b79f703716b74552cdc3e5718b6eba33f37fc79e94d53874d97b949fbcfed0f04f1e8c13e133855b20e274b19c0c420cc848c32e4c5cac677de424eab911674c98037d8c4724f4b0803fce0ca19c01a8228827785e652c0739479b7185d49d8b169ef034da738b3dafd16dadfe54b3f8d3f23c697f5c18b1795c4a9606ae648b2480089d2af4b2800f2b390be21c1e938013ee574287b4d6cec82ad4dfa2a9dae5e9a4272589ae52c428d831c35657a134301af3b14bf7a2033a24c1e967ad6204fe625d090b9a37afcd9e925e08e4356c649a8087089c12f15416ce3416f88c2c42a4933e58573c46c40c133f776486834913ddb974b46dd6fa6275eab00b249f485274329409c8a86324bb901a2f61c72ae6e3986783b8f805ce937b5300803420e4e09f5000ca098a075af9ccc42412b4c967bc6b7e89ad9d3592eed86adf901809762503fc2cbc5856472f24a8bb7945456aa160ece4882b94dd7cdf21dc1bda739093c73695f9e0c7234a1d0460ce3499322caee02d94b1f566c9cc85fd79dfd148b8c6ed30c3585b6446d2cff75161e92391ed88d1fe610be3fe6d5942560111753e55c035de525d1d7ac62c88f32b8b8e9e5b2aa0edcba4f84113b2f82561002892fa11b136b4f620a7b8dae6ba51e536289b81e3af1ed9631811489ea50c919cd1f0c811f2498d919af15f547803f0610518aacf5c498717f62c54d513c9511dcc8be4e6fb43d7d34de08e96ba514c4f0f6c1875acad8508517a0c8cbda23286c339f97081b102fd8bd336677ba38977fc9fa1c4f5a25174808c77055a98d31d5ee82a047a19695768be461d8f873b89a4db42687516af955378b772400ef44c0efd9dc93cd04b1c6f99f47f486fc13d2179bcae0dd0d1687c90811c57d0ab50fcafbfd03cc2b41826909910a9c05935e092718178db9823a776d95ec4e23e9c557db2f60e1c88d30c5c9e98e663e6af00c9ec2aac44e7fefa1f3eefb242981d921cc11104961792470bcd17d1cbbcc505962d81bb44d61635048e7a4508da5d9ce50ba721f713f75b6fbcbac5be1fb880a8f984756b20791e2f903540da105889f7469e222a2a264f252b677de6f3125a00f3e979b932cc03bb982ba7e17081dab2a46e348b774dd9ad50fa3d27f0f70a900f778d44cf3ec017f439d036d2e9e004db7378bdb977d04bdf5a30bc031d7a28731ec85c042652ad41dc8b7451255fac50b679bdd46b70c176732e852188fc3ccc9e171d365014d3cc627683274f5acb223b3e85b9aefc5aeaa887ca1bc76c0df536be70491fa7649c3ac846835092c3423d6876aa7da75e2e9035648eca10c543fb28e6b56cd54eaa4a40a88e1c84259f1a04318ff43ec7de21fe98d03d358e33ffccdd9b105f5e393c4e49d24d3e1fb049766371a821d62478be203d722af4b4904d4677f0481e45f939553b77c572aee1818ad0716390f4d63136e6b8093cf1c07dcf8e7eb4a56db23c5921c80dff573ca63e04ec2266c6364caf9ef2651821c5acaad7b4d2e199567ffc0d8e6b76fae555abb1279a267b2a4fc5979ea97b9072217749766e60fe68501d8e2999ae770d062ec3a899aedfbeddfd1796c214ec20454dc17c70586120063c7c8e5307bb20db86de8005e696cb243b23406092292dba34a9eb0043e043bee8451d1fd436de1e98b6c36eb40d2bbcc103c86cc4b4e80c949d66b8dce3b2ced0a192ed9e44be6fab6f2f7349cb6bcfab757d134e71ad242a32e34459149f6cba26a6fd30a88ba08fd25c03eee2fd05e0d5531c26900216e70b0b129c8e3f22a22d4fc20a73e4667f165d814602c76dd3379149444c0fc1c08120c561e2fc31de2e645c81f0708c70829b6e68a3813d6dd8d5dd58479da4bbefad20aca59c25d109b06b512a531a09e5546a26b1f2da9cd19f9b09b2b806e05fb95cbb0b1726a37745ce74c3c16a70a3397d93a79820d204ca54adf4c78dbc789812adbc1566de0104fb7d13af43b25a95d493d969de6d242325831a337d57ab897613ae1ab396ac6e0846a785ccfd0ae784b9f4b8e277b8efeb9c53d490f2227d76292a27baec838e80f0a21dbd3d8dda8a6ae3349f988f2e9ea4e915139ed23ed2e12e1948df47347e3b41b92f4ea88a7330f43541a5c2f266df5a670e9d5c3103053ae01b01642c65c127e0a339699ed6d17748f88a8e29416b49847cdf58315a73f5846bbb5b218a67c310817a10c521b310148c08932b4c468229898d2d70cbe426c7ace3d1c4a878717174ba1848294c6ff339c9531f9b3dc93e0c2fc4c5b5c1bb123b4d08cb3c2f227dd58e4ecc97b1ab9bad005d463cdee36bc5aca3a8e1815b60ee4fe7d016656238be25551c0965df609529edaed323b816b8205ebee408088468607e8539a65fec22b66aaa48fc5e8e2bf0de41d7614bae44b2a100076cf1a4709ce935d739dd520696631d7ee4221541acbcc9a5cb7935b442c60c2487980805db854426d1c4d42e0a2652c822cd27d0076074b12bf5d661155e9092826d5e6883b04ac29ff4e14642271e1f537bc38036ae0a904ee95ee3fef99e0e1191209530c80dfcf7358913a3e50372b3282421e2869ce881517d739584601b8f77ac60a09dad4ef029670d5809e9960169763190567ebf753a7e2e9f99898e479a0128c3267f1d53e7ffe846dbec23549b4c9bd01afd26134bbbdd680948857f3949274b77e0847d621fe6c3a3faa4bdc1be30333a0bdb989623d36aaab189596f5b5ed3c054b0e9d9e74da6a6375bd1e2b11f266ba65d5bbfcb35df3299b6dd2ca52cd1fc8f11347705c824a8ff85d7c1f370d2d4e5c4abc02cefb134d3a17e9138fcc04c7458cef4c0d9ea9792a9fc30ceaf2487798c282b9e0d8b9b3460385d989a43f04d14458b3073ee3e17aaccdfd7957f414ce1215738ec7c95ecc1b11045eb3ef8e8ac25a064257589d245a2be4830d14f47d3712b7bf2e54a7665b6cc9b0ee4e26ce4754eafeded9bf732f33576f00a33795135f42513716df77a8691b8b76904843b0a89a8ed209d19926495cc83ff499463059a6c102f74a569199a9e5becc37d61a3ad4e03a37a6879c01606fc29f08964a03e4a2762195eca113fff9ce2a2412587b7f652c7b075337a903b95301e271016431f9d984270ea067bce179a0949522810754369260b9c302202141b8258b9034b93fe85c9aa85aff5e214b0b3f5a2b922d3a66852d21728bae96d50e26dc34e7a89a512954480d00084242b116e1f50d7a6f2a5f458db5deddd29f71305a5ee34d73c1b944fa6c4f52d0e0d4ae1500439b33c062577ae9ff35dfdb9fb7d3d9f4e76237760eb340a400d2273df4b7190d4638a4e376d31e08b12abb7acfd2e24d2e805ad251150014aecb219c32dca3e468760fa6d745044cb4cc6e69f7cca0ea3cc99db66ac4baa08e2ea3936c7438e8d886b84e7772ec1a22cb3704204b596822d9507c898a4ac3150c1e2830c054ca43394b7dde7244158d5ea3ac25ed8ae02a4aa02adbf5527714ede2ee3911008d2b6dd2bab4f10189dfb4423600a34f8c4d87369b17729e26fec91e4b0afbe239f69d22d424208713d93d5ee0af24580b43bd1028a9f1363c4b1cc300c5c370f79092c5787d535811ea5b3ad3cf1eaebb928ad0d09505b07b241da8d7dca39c451bd1a290e6126ab2463a199a6e375f5ada45677b393fa7950149a53dc19522e919c5c919474cf4f8c8f3e4dd3e4b8dcb3d4bae4d44bf0d64225153d26536dc933ce73e374415a935e46ae32c08f57375228ac0ef26161548ae450b8f4edf0feebd01993039ef42f4724c8b904eb9468288f194ec784628bf07834e8ddc1c4d9ffeaf3bd17a2c7653254efeea8dc4e532d3bcc4490e2636987530cea53891bdb582716d74c14ec9359c745f32e7d20c3a45aa8dd919b215c38787be056e8d65e64cdf3622d2a95c40073520443b3edc35a04fc481c03e0485059309c4d2e4407cb984ffbd5e86f85fe99ca1ed93318cad5a17e390beb977428a8d5c63ba27b4b011cc102ee5244710b3b30eeb4d0013cc3333cc33311882c3aa6bf12ea54f3b6056bcd7e37f265da5246cfe9a4ca24df8d292599644ac9e9eeab4d0462a48d9a080e42be1b6c0b490b1e0ba7053f1e0460841802993bd7eec5b4e0310c414821fcfb7cdad7cbe494680218a0ac841002dd1f55757049b72c4e4fd9dba17470b743b9e02d6410e8d16c17f5497f4d2e8b20d042b52cc7cce8cab3a409043afee3ebf51f0181daf8ceaad163d6edff807c31e8bdfcf1b2ab674709217e40fad60b7d7d262f27973e204d6b41fca557eacc4d7c406bd72ebb8e27b4e5cb8d08217b40ab9616a53295f3ac4b3d2057a696f4e6fc924613f380ac8d69639a17e53ec76384e001714ade79fc51f572c877406f6c31f1b28e754fb2036ab7646edc462deeae03faa59e5799fcc427edd001b52e8b5ae775774a35b21042e6809695a6e7a657b3e9b58c1cd0ea99a734cbfa38a0477ef4c52ea15e1b38a0b53e765d6a72e9a39a37a0b478bde0f1e5ac36f56e40876ffda4336b17f5ee362067e483f9795c173c9c3d086103faed74c6a99641f5e942d670d62f677b26a90b51034af5bbf2779d4b033af6465772b51453b7a20119ae758c4283aaf5287506644e27730eb9dd2cea6606a4be4f9b375e0c2ff55306a44ea67bb5e0725eec6b83104206947c613a6939b5dccee41d848c012d5b87d79f255f7c8c8a01f999749e7e9cb9d6823b940b72101206b4e819dbafa3fa98f14cd9430d84800125f4b396f46d797831cbf20b215f40e878bad2357721c40b68b1a47faed064ca5e1750b2a6d44e4b794175b6e8e0e16ab910c2856e7dc3b3ed8b977356215b408da994b2a553b9246e14952d84b481faac52ab5add324a9d336c84b08196df3e7a4bf9e52a8a0aaa11b2063a73dd95d4f2d6ce0a53f6d440a67c3f97e55beb8571a885102dd89932b331d6dc6b4c2e2ef55f7813e77a5e54ca1eca5a3d50be503abee0902c20c7e5a756e2b5b4ab65ca1e1690be59d631b769415c69a5ec29e7f17c85902ba05eaf7f874fa37e3298b2b75e0565d3084903696fb2ddf28ba96ed52beec39c116205c42a759aeedbe59d6c52f6d0409af43b17c5c5f62466ca1eca8a8e3423e40cf466bc7e472dea69198355083103a9579f768d173c534e5540a6af98d4a2ab9d4efa1f42a880da36d328fec27e7fd214106eea9d7a75f0900f2165e0daedc5bc8f3177089102eae5b813332fcb253dd321840c64cb6e3acbb252fa252f4b4814909d95b4952e97162f79cf21040ae8275f539fc46339843c012d67945a88bcb67859b9fc1027a0b518ff1ed53b4de0a44e9971e76252f6d643c640d9e8bbbc6131563c7106214cc0131a842c01252eb4377daa8ccd6af538c81025205e8d998fcaacb1fa09429280cc59629f5ce7b05af0fc878e747874e0878e14460812d0b79d940e3b1a5ed6ef40c70f1d3c7ce50808937ab6ec4d3dbc1a53f6f8428c80962593c1a3ebcfa85bc7514e8f10214540272da617f3c971b1ea4504b4d85adaa805cf2fe6f4870c01255c8f8eaf54997a932142409d99d2a252aa0f09024a4cb8784aa9cef2a57c0c905aa045992a66327a76d7295a20a3f61566ebb26c9693406681723156abcd7c32c73f1059a0ce45fb2cdeb37b54060b20b1407fe9e8327dfb9f7aee3c0204164871f194bff5b2cda87d05525c8b5fbd2d7c949a3ce60802c415284ffbd452634c34e715931c39589078006905ca3777e9f97c19405881ccb2d851efa4d29cfdb50ab4b43985976c7bbb7a54810cdf6caea4566bea41930af4c86dee0cafb3f39f796400410552e7d61d4bdfe699ef4f4eb19c36ede66a2a5320bc77938ee3e7a5aa3ea540bc9678e13be6785599d3060829d0e1a269cbdef868ba4681de9734aaa8d42d893f7101441448a94a76a6cb194fa95628902eaa879795929fe7954081962b75c64a355ad2952501c82790bbf15607ff9cf77f0f1fe909a4fe14ef32e6b871bda1014827d0a76549fbcbf4362790ae36e7fd18a37906c826d07267d768068826d0e5edf26b1d33799d09f47ece0ba7be4a283fc2f0b19840b9cee2379a947956c653f61c450cf7817809b4e0528bd3cc60b39d329640ecaccb92c7cf39575f16942f540f30b212c8dc4c953f36339e43097438ddc9c51693d249bc5276053c4e80d7360099045a7ba697b3294fbce8d206104920eef469497dbed4a9ed8c0442ed34ea541a73c87f297b394ccc848b2d4cbc0081047af58b99f57cea6b17bb007904423cf89734579dc3d7208eb8136ec49d80306211a8d3d9c58c99a3b90c2a021d37cb2d9feabfb8787262adf2c3470f401281cca2d6626bfdf0dd9a0d0108225032b3f692dd219adf49d95b78fc8a41208740e72c0639edb72fc79852f615175b98e4305959f9f1263972982c2238393115c0192086409bccf8e2baa8b4db0d5208e4bb9472f6d4c935f192b2a7a357004208e44bdff951994ef7d58e305652182b6610083b9ddf0593e9d964021041a0b5bf653e8bea2cb89fb2a7f23a547e04021d3ed766f1b28dcb5fc56e8772812282000229344bcf62107f51a9900fe40f08d3d95c6a19a55d00f103f254fa9abe29fffdfdba0f68393c9e166396add785cf81f00169735aeb347d321dcd1ed033e72b937cd0f8da15d7036295cbe95ba8adc65806207940278dea3c54a6964f9b182a5d5001040f686dd3e12b3aaa3ce70ee40eac27b957dff65903c40e88cdeab4c3cb6a3b36ae035ae7f0d55ad789666a41e8807a71ba33ab95bc2c7c2897734089edd77851cefb262d881c90f6ab39cb3289e38096bd4aca8b515ed4f872e08078bdfdad222fb37a654f4e7600f206f4af4ced52376ed03a9f00e206efc63375d3ccaf56bee011464a0e3440da803ea553ce66fe2c87171b5022fef65a166ee3723865efe4e4e4640b931c262130e9620b13c0000508206b40aadc96b4a069275f675a0de8fcb254e5bd2a3dcb2b0d48ffa4c5d29b7fa7cb931313c000c50720684069e1b3e89ec469f460fb0fff80e730c991206740667ba985e78fabffb4470c1033a03f5d77c7d1531d26fda587094e4e70005206a46fca67de8caaa8201032a04d6c7636abd87e57e7a0478e93931cf45051b901c818d0a65667e987e9fbbf031d2b772977af43e5478388011d33bd7acd914f9f65c280d49fe53d1d5efb632318d05a5b49f53425733a198a182a3fec12bf80d896d23dc6a4e405b47e0a934f3975666217501fb3946a6ebcced5817001a93ecb5cd49e83e887c243c72901c816505aea1d0fa7deb5b8cbabf4f8b1c23c40da38ca6eaf741565f11e602c60bc8e05c206b2652dfbc668bf2d45f1d1e3878e84e263457f00b2066237c978953777212f0a8a8f15544b2b6018733c0051037d6eb7de42cd938b262d2063b5798cb2d2943d1430c0f045932e408092f2c3c72f3a00c902d205d3fc82b6389b838f0564a999bd4fea6975bd02ea656d9afd355c4ddb34101f9569f55a68b6af06c40a686132455e279dd387a2d2c31c26103450732f690fb67175e6150620672c7998d32d7b72b553d4078819c88c9aa378ec0852853bd901420594c69341fb47f334e652f6b80099023a4fb3b3f4724bcd596520c74c6a496ffcfce3ec17804801194573aa7549eb5e7521039df751e78967eaf05514902ecaace694514999c35040d6ea6cb772a3d8d015e409282d2ecbccd1c5cb70f1e8a1b2505256c2f061d71b007102caa5d759b80f266fb2d50494c960328fc640c6408b2f2b4595cf0494ac36a565107b7d9a65092851adb533aaf605938228019daeeb63d67399f39b297b7c029204848b26d34be92d7b1663020812d0327f576f16953809204740cb8b2fab9b9596ad5fca1e881110be26a56a5727d6b34540acc6985ebf646b5f2e0d1022a0749f34ade5e4a2f0b40219025aaa6bcf3a4a8580d4f0ed49ebb8315fcb204140d74b532a744bc9d3a511d402a529274e4b5f93711b2d50af5ce5c57a9cb277ae04039805625d7cd4df4ac664cb8aa7b02c96d33188eb4c75bae7d103c56a30805820c35579149fe193a9c350e911c60dce8e01c0c2175eefd87bcba28a53f67ef8fb7895d32d18c02b7a93b15cb9340dd3ca8f1e6080e109e5550cd10cc015e896d574cefff87ad4a66c2bd0ab5d4c5bf9b9cc5acea728cfb1629015c8f03f532fe7fca14a95c30056810e9e1e3e69d09819d524e97519118cac012ddff4b4d65ade93f352c3a5e29fa783bcd28014a7db5ad671ea3e7634203bac765632bb5e56ea33a0c3e3ea072dcf987bcd8096e3e26c77d5ee5ea70ccbbb39bee49b53831132a0f4c4a6de13ee2d9e740c88d382cb2cfb793c1d356240a6add2822b6ff1e30ac380f4701d5cca9c3c77be6040cb9dd483468f25ed4f288c7c0129bb9e566c0c2eab157b01b99adea32b17d305747df09747b55c1346b880cc32e6d3bba9520b1e2583912da063d4db2e2ffa2e7b0290869136105e9b6a2e47f98d75c561840de469a7476f5572c3c81a48bdaa63668b8b9fb58a0c236aa0b390d7ea5cef799a78d6881690aff695a6d6a2d497be198c6461040b695252d8f867492dffaf1d3d94b6317205b4fcd6ab5363bcfc9e9134d0a7de59ff05ad0f6f5b01995a6adaf575653e2934902a3c8c968a793ed9198897b4ca20bf32f7a53365b9488139619870b185c9c9c9c909df2446cc40bde862a94e952e6a29a5ec1d932e40605a305205a47c7135cb6c5a3c4205e46769f59a5b964fe7d874208c1bfc07d4b3e0b0b91899023a3e97c7e0fa8a4a18ea55f6874a8f1583819132d0b16316e475b5964fa63cde8b66c18814d072af8a6b96566b7c4e064acb82684b5a1a7ba8ac60240a68619a4fc5546c9653e9c3a060040a489d4a86bad8b8498b9e951415142f3ce5952005252881a1ca8e1d19839127a0a3e628b5fcf2caead8b51a469c804c9d77e445732e7f65ca5e9231d20494ec792dcfa27ef517eb61640cc4abf818beabee3b8c30019d2775ff85a77a0b9a3c8c2c012d5cc7ff4e7559aa7425a05fb3e7e4afd5ed5b6c879124a0b4ce9c646a9dc7ac0c129069c5e5a4bcf838a7f59123a063ec4ceb7b2d353375da3062046467599452ea7cd9305204f4ec96cc8b9fcdf5e928e78cc1c10811102f9df0b4a249c6b039313204b4c796a5896af935571f110262bf956f4bba653dc69b180902f2d3cb3957bcdc98a54e8f5aa0fc05cda37a4b2aa5a552f6101422b440665399cd51c5cb667f16e898d3c76729f35e5e8f0322b240c9523abeb70bfff27462814eaa0553edad030b747cd231b5d9f2719b57a0545ee6f5c9b4882bd05a54e23dbea597ff6f057a645daed49d175467a5ecf6ca4a0f1f3c507cacac082b96b57bf6d8f2a31d386a126f1222ab40ae16548feabc0b091155204c6f16efdb37d545d3214452817a5f51cfd1f49d74d64105325f77b4d1ec28c37d22a740bb9299a53fe5e2b31f5581882950b6a9a48ebaec154331d67f0ede043c4e70ae1322a540460d3b7361abc4b37cf983d1cb7f0b3544488196a33c61c2568acb7f397e101905e2555d9d7a8e597eaf28109e635ad952e4545ffe059150a093d4797bda360b0aa43e9d5c49a51fff217f02a9dfe3e2dfba9e409d7c7f0e2ffb7131d50974b9cad8a7731a9759750b229c409c6971536f47f92d4f4511d9043ab94cf254efc5d39db1404413c8682e64eb36cbae33355610c9047a538a3771794c203689779d5929f5f4a54938885c0299fb5eb679fdfb1ddd12085766e2fade59bbfa4c728871722246259059904df7afdd5ab68d0e5674e025307f10a10432bc201e435583cd7e700e229340680b2ed8bdbd1c1fb3229240be0acfbc3ad77f4a5724d0f963ae55e26b1a44208194ff1cfa41957ba6fd112821ab540b9b73da2cb53802211b9bf5c9f52a228d40c7cf1ba5ccb2b9a96718b15a7b7b51b31c3f2b3113441681165f6c0b0d6df3d09015812ca539f75ceaec132e35834822905a6a83c6d9f48fab1c83082290b1e937cabc2536ebf510c8acfb362a4f2d97aecd1068b7afdb7159c38a577341a4102861f3ed1b5698bcd4130225372baf99977f47641419045af7de8e69fe92da1e1404ea5c661db4d3849e5a0502e9e26fce9c5a52caf603044ac7f818553df9f7fa7f40c6987ac34e4e7e40867bbd97a70b2fb5180c44fa806ef5724e93b8ecb3151f90991f4f69ec7b4088e7797973ac17135d0fe85c159e957692d1dd95b2b779408b5acaed6e3195147b2c2c8207f466ada949d747fbad53f678f4e8217207b42ad51ef114db1a4f4e4e4e7e6000c610b103520b2f2ae9397ad2abfa19227540b7ded662f7e598e5ba5410a10332d5c4f53eae78b9e780ced7d266c9d6b386881cd0d29d9ed3bbb5a94d8d03bac4f3a7bad7c001f16269de60be5acc67a340e40d28e52bfbdcf5c5ecb36a37a03bfc0b31fda7eabf665386481b503a6b1736a7d669b6f71d88b0015d52067d73a117ba22b206a4d4729ddfd2c9d8f1b58608226a40cb9945adbf97b530ed77b17c8ee5d28096b6ef722ef7fc4a251a90e2df320a33173e4aa97e40e40c8819973633e27dea84226640f8cbfe6647939f59be2c03da5edef98ada8746a915578308195076e3e11f3309d5662844c680d4fad7f23b6dcc1f667372b2bc490e931c2a9fa27e9874b185182ac7c909cac9892844c480141395fae725434c9bb22abff24c0c44c280d2f0abf4c9274d32b62c820145be807ccfe6a27e7965eb1c15f10232e3c7e96cbb2fec679d9c1815fc824817902db7d256adc6b52c4b6888700125f36937b32c6332695a7cd10a9ec816907eaa7cb350d90b226da065469963cc769eb6512988b0813ca969d23c0bd15b9d8e1494df818e95ae82c81a28f1dc4a8cd9c74ef2a3065a9619c59972a5b75eaa05d409d390975d536338b3801e73b15bef8e5840ce8b2a664d98ac5b5d01e9da4aac9e334faf5f1aa871399dcea673324951c810b1025a7ca93d6f95462dc6ab051134904ad33cd76a55a1597efc19a8d5f76d15377ab2313390496eee98498b930d912a205e56d8dfad679e14a1204205a4ac97cb35ab964a6ac129a0b39cb47ae95a7282481948d9964aca132e7f5e951450f2c574ebda855b7b193344c8406997e9379c7851c6144601bd9b451daac2d36e0b14d019f3c49bf29884cbb993935e9982c81390ad5c4757c2b532b18f21e204d4c7a7df54b9d12c6935019dbd320bb6c9bb849e4e4e44c640bfca18f32f34cbda73224c40bed8a2d0bc1defa57f4620b204b4ed67d5fe9eef36eb51ce8e0f224a408b3268cb6f4fea650b4592809626bb2fbc78b3395f24a077d377abcf59f2c23f822c881c0179aff73eed4ad728af490e132e50eeec41c40868553adf53bd655fec1401592f1ed56b8e8a10019956eb6c7c63eade8e4183c81050aa2e4915af5bc646d9c909ca191121a05cae7f8b3a770b184482d0ba7756e5afbe568ab540dbccbf34bf6eaa64450b94df78942ae3e65a579a0542d5dfbe4b62cbc234a2f1624971c9b4a4eca19dca0f1f6d84c402a12dcdf44bf681053aa65461e2d4a6c9d72bd0b95916dfbecfcf7c75057273dea4e329fda0b669054abe976b9757ec9b9d52f6763c188ff2e3bd60932e40e0050f1d5d6c7102ffe11f50e9f14305292841094e4e50547688204700d810c20a74549b63966592615b6715cb2ea63e77c1fd7498b2ca5008510532b7b4a7ccd174c796a940675fed4a9b2ae9528b8a9053a04b0b72ebaf9de5e439299b8313fcd283875953a085eaa9f9552d8d6b580af4eafad5b2634ca72d2705c2d5accaf71c35cfaa4761f4b81b3115196dcd8c5912aa52ea1df59cc48738c073658488021dfa517c3e5b61b2251448d5aa3f5e9f7cf5a705054aa82797fc7335be539f40e8ef77fdc6a82750ba346fce7f5cce974ea0ce5e65dd05d1b06d09e104bad75cf8b049a9b633433681b0dbd352d4633369414da0b5244665ae4d2f956702f9f572eb9823afc57d238460029d5f6d85a9bbdcafe52f815ee952c7e95de5bbf20ab14448259061c655291f55fac564082550de519b96f2cf0ac450e9a20521934078d2139f4f87d352658824d4474824300412e8ce32894df3bf37774f4ec0f0b143c723d0da65f196753c6f68ef08d447a593bd26bd95a56a043a79676d2d2b46a0f47f1a93d2b3c8997c11486537afeb34d907531581f6f2185f548f19dd930884eab85aca252dcfcd2002d961b3a83c4997adb70c39045a94274454b8924acb75ca5e775e7501a56bb5c99aff865d1317d076fb2a337f0773316d01f52dcb26a3c9fdca2cb58158f595e6822aedf2cad940b98ad98ff1954ce5af91867f1d4676a5065a8c52662defcab4be6b01fd3aacd6c24b4a672d9b05b492329debe710575e63012d86ebb9fc827c05f49afecd5dd9a6819e7bf5be52865b7dab1550272a9e45d7fecaf544031d755cf1ad59b629ed19c856a6a7f2859d79ce0cc4794ad93b5d9e29c32a2056f3c95c2eccfeed5440e6975bacbb141ee373534029754a47a5afa5b8be0cb48c255fda51e88bc648a4805ad32f8f49cec7a84b642046b3fca7e95fcc4ff228a0b3a4ada56b33d3d3231490aa59e5ebf6fcd26b8fe409480f6fd551ada6727b499c80da209e1bfc95347f2d491350de1b2b75669c640c1f244c40b68766cd37fd0d799780d4f295cce25deeee7494809665ce4c25af21490252ffb568a639e7c9d5902001a964784d3aca93878eff7130203902ba65392d7c8df25ff80e4b3074fc08c3bc80c408a8d57a6a5e6ab0514052847d4c674f9a743b1f3bc2c811901001f5d95f6b7055dbda539221a0445cb4fe252d21204bc6969eb4e8930401bdbeafa4ccebddbb5f0bb4d83b2a63e7bbcda88516c82863348f7d5451d3320bc486c946b9fb220ba454f5cc980597b3b88a055a2b179a33c74b7d9382056acb57a68eb17a054a76dc0cf73ac7cb47b9026de39dbfb94e2b2d46b502b5cad4ea534275f84fb1022da36cdd58b7dbb24b5a0532a86a19543daa40bb98748e39ab974ba940b8a4b72e2af1d2bb202a50ba1f334bdbf878964e81d2dedaaf79e3acd24d81dadccff8794dd3cabc14286d0d931a46c56e27055a290d1e5eccb217728f0269625f3499759ae6952890ea25d5283da5d62ddc50a065c7b493595577cb0e28d059f64d5e52aad252fd0994cca8ba7f6ba6a57a02fdeab4244e69ad85db74026d71b384e69c9c400b5faacfeb7552fa4da094e7998b97e5780f5513c8171f378ef68bd5ac4ca075698bbf2bedac57830994767b6fad54a745312f81dc6c8d49664137ca165ac2526d25a5f6b212887bf3b029251033f65279e7a4f9c449207e5fce5fd47e9e752789565dfe482cffeb8c2fc4870432c7e8feb62e4bd9cf235022763aba9d9f5a63297b285ee8583c6e3802f95a96a129a26a047a6bb7b54ea9ee9343e2062350eb613334acce2250a7946affca2cb753a90884ebd12c8bd9745831f1ca8d44206338d562729751e6cf1a710311489fbd1f51532fca27dd38043addbf92f164f3b31673c310287725c58b75ea12e24621d02dcbebf35aec6795e1206e100219f2faaf65ceacadff4120fee4e77a69599ab34a10e8954ac7d2320502d9e2d657dc080864cfba8fbbebca6ce93f204c5c6b27173b9b9aed07649457ab547db8b4527d406e677b512669b62fad7c404bbe6ff7d92d2995750fa8f7d75996992dab6a193da063358e4bad3379404be95273f4de5993423c2036dbba6c9b193fabdd0171afb57eaef3a8b14e764099f612cdf1bb0e68496a69d2b53495fa311d50f30cd32463eba561ce5376e774ad9d03f2b43fbf369d3e856ae5803cf9b52feda655c6270e08dbacc2455e7040bc8ea24a7773cbe95637de80d8d6a2f7c6b7aa5d0d0437dc80d4b25dc9f6942d2d5e6eb4e14e6eb00119e6659db3766bc52487490e13931c26623c094c7298e840c77a152e4cc0836fac01e9a29fc7a658ada55476ece85b0143c78f3014dd5003ba857f5ddded59879bef0c37d28094a73f8b3d69aa6cfcdf4f9e968d1b68409db6ccc24bb2bf6e3be70c48d36d6a538bbf2e6768ea70c30cc8fcaec5d2d6c2b62c190c37ca8096eeaa26fda3d271f327b84106a4d45ae27236b1eeb83106846ee60fdb4a3eefca4e1537c480f2b4721ee3fc94878268d205087cec58410e1e3a54b043b9e0e4c4c78e30cc70230c68e5329a693c5d186e8001e1526a52a765aff2f4be803039eaba25bcf57b9e6adcf002528b5f194fca39b170a30b6825e53626cfa4c4639e0b08cd3b1a376a510b37b6801a97bdebaba57831e9db40fd6bf52e95f41733c52bdc6003a5b33fb3ace5f6e9978ac18d35ded6b59fb570d11b6a2083c6d7a79e678a8b49c10d2d20bbfb653636e7e4a597c28d2c20957f166f5a7652731f5ef1a1e3071937b0805e9976e5b510dfb4ca943d14c61fdcb8024a4ba3e7b6ea347b1f3a7ea0f858f1a1e3071837d2409fd47baf95bcdbb86105a4abbcdd602e5fded5b2e243c78f1b68a0a38b557a2f2e794e3a67204bfd88cb599d958d9ab2b77aa0a4ac78caa6ac7808ccde3003b9b2e3d3a6998c4ab9f0e14615d0517dacbb2c6d2aa04cfe0693ef2ceafaf370630a28295f966d498aafd222de1b6e9481cceae33f5bcb920232e952935ac94dffd245067a4e7ea7cef3d955b6a280d4ab71cf47dbef4c0f056486377b17544ef65f9e80f0d0910fffd3dca872023acba89ff4deaa09e8e4b269a68646695ac640cfb92c85beccb5792626a0b43f76c697956eda7a0928d5e0a3baa48feb2c2b01bda75bea55ba64eb9c4d0242f625a933f4830484c63be52aa5f408e896c5bceea66c579e6a0474960fdf78b14cf6638a8072af3d79cae5d1d82711d03ac7e4b224c5330494d09634b958f631bd13027a47b5ee53da8d20207f33c998b3d4a9c7b816685fadcfc533135b971fa105dab4bc63eee6feac6366815aed24e6a4bbde52bb2c909d356da56b799b518d053ae718b7979f1e81055a5495daa63c7db9cb8fbc021d4fbbe98c6a4cd943d9b14304c80148c4882b909fa5df73e999f45d6f055a6c1dffd2cbb2de9acd0ac4e8e71caba39ceb8e57813c2d4bbb87f778f5f22a3f50de87185d78c0dcca59c4882a102f2955dad266a5551c7cc1271223a9409f5c37139953a7b4ac943d1c7c81b2fccd9140711023a840697e71390552c6e0e2fdbccd6755320552e4e45b78ce4b81ce2ec59ddfb7cb2b5b52a053cb2e5b5c0b1bbd4781785d52c60f9319f79c563901005831220ac4067da97ad3a84bfa2e8fa23d464281d6ccb6a66a1b1b7aa7eca11c82026d5a587bcd36ab9c4f20b63369590ba6f560a080e1ff6305e50b30c2487a265d80c003fd239e407f2b1764bb35a99a964ea03cdb09cd7ab5b0d9559c40cb21b342e6445c297d13c8562a93cb72ba3581d4ea39567cb88d466502a95d704957de07e5de8b05b1e0471825383951b1c35f7af0300148630413687f19d36dc6189b5d96b2c7cb55707282b243e920472e8130f760ebf6fe5ade5a02b9d957bd58db2d0bbeb5096080d283914a2075b7980597adead1c50825d0f6e161fe45994e2393407874d93a9b6639aaec92404aa54ec6737f52bb7524126ef274a9bda37fcce91881045a8e864be1e9d15ccb23d0b977ccb5c7b453978a32e208a454266fdd75bf5697a5116869326efacf276ef65e81490e13169870b185c9082350a62db9283dd35c6ecb22101a6b3655aad3f9988e2802fdfa5dd4328bd99bb4d39144a077e33367d7473d8e8858ca2cb8a8baf466b3974320735f92be7273364f1e439c25d5d5eee10cc14821d05abe5467fab4985cba7df8a7f0082190df5267f95777068172593475d7e97edf5641a03ee7b537c5ead462881c180904e2f73329532e0f0864c97619c5abe68b52fd03d2bc5d14f2e29e9c0de50b7f95646e47fc80f2a8fea9e5d8dbd15c7d40ebd0a4749edc17fd94f8809632ee7ff43b2db98ef7807433f90ded24569b540f682963c79ca5b87b25e601612ed57f876f593acde00135f22aa69f33667dfde0911b18b903cad7bffbdfb42c653ed90119ef1d7396a6257b3dd701193daecb61d2430774ccfd8b7a5dbd1c770e486ff9c25b8c715e472307e49bca7dd194dcb42e180764bcd62e6939cba5ec899150ec98ff870e330207d46b17be259db9df4e30565aa503788a87182b2603236fc8931d236ec85f6ecb743136d6ccd8066450571ab7c5dc62fd363ac206f4471d652bdb7a096ce078033aefc7f23ffdc27bbdb801b9f331b54eef2c894bba028e36a02597ef659751734bfab301f982a80717ee355d76770b38d6b0cbb83a692dc9ac0b1c6a40699525ee65394795d2839b06b498fecbde2d8a060e34a0f5b59ebee9dcf4096387c105c010709c01b95b9fc973e8297bc7a40b10d8e981c30cc896d6e5358fe6e1b35347e0280362bd6bf5cf98d9de461138c880d22dca3037e93206b46eb79227574aa9ad8b011daf93d2d52f4a9dfce543e00803623fc826b5fe41a5698e1e708001392eb6957add52258538be802eb13967ed2acdc0e105b490174e9a0ce7b2eb2e0538ba808e626b5566d6a29fce05b4ec691b64b3f439cbf5169025339fe6dc511e39e8c1e30b94151d070e38da40d74bb951988b0de4e95c32b6d4c26fb2d740da7d8c4de9f2af7a8b1a68f94c7a522e7b5c54ba943d9382939393132f78e8f8c231006ec0a105d498da24758cfa32706401614a26dd3e2dba28568505747ec9f46dcca8f3f1ae81e30a48b52d27313f9db5b6121038d2409c87dff09973fd5fa6878a0f45050e2ba03798b655ed9539b5c6c5ead143858b9393b357e04003f1a5a67586befb061c67a034a6741d34665f6d310319ff46e73769fce07d1590abc5cfa73f5b55b8a880f8f49725265c36737c0a68e1639d8bbb16eeb5d9c516262826394c4480a30ca44673d7b294d2b3ddbce0a123a50b95e7824780430a689352c7f4ef5a302d283b7aa8acbc15010e32109f656195b8cedb2e6d14305cf550f1a143bd0a8ae29d5de288024a5f5ee5bea3a9d2300338a080b693fa664e57b60504c8061c4f40fcaabc476dff4f26c7e10474d42fe6d454cb9cbc34011de3e55c9ab9f236268d816e8f519d4be261de75ca1e13902f5e360a9dd51290c1ec45bdbaaf12d04acbf31ff52af5e2799280d6927ad8962dc7d6a941024253c596d8301e35e038022ea8fcac1db3a7d608c7d2fcc95dc6f2d51c8e222033a9be8c41030e22204d292d8bba3c038e21586ebff992c7955a140e21a45adc8e9ffe9fb7c51104b4d8ec69f58aa7ff70d7022f7d3ff7ceeca205c253b52b5d7ab7f30567817457fa4dc7c7bcc83394c8229532ca8f9b5447712c9059cefffb9f594dd77a871258a0a56aa593eb9cb77e5f8152c26373de4925b532b902a5e5bb320b6ea799de56205e0e77f1c15b375456203f7d309939b78b3aa8ab408fa6275d7d97b4b6540523eb2fc5e6659e7c5281cc9974bde8b91d5e1431547eac1d4a508176939fba64bccdc1950fe3d4a1e414c8a83b7d0eaa54c7545a4c81cef679498ba7cd37794a814cad656f920f9a25654881709d546fcc9a749bee72144b72dea63eb731e52c0abf84e6a8a3693f1333148bd53a279de37a5ef58002bd7fff9234e592b2878778a7f2292b1e028b43c927b4956275f23df5274fa0eba47659f09c6bdc559d40cbaeba46d3be61b32827501b57eba4649d0b5fcd2610e2a9d5cb6e8a170f6a022d36798967cf2da6f3101eaba0241328d7a2ca2c56e8d6df9840b8a0a5d13f3d66f19d1fbfc2e782924b2047f5a61397a50e4dba00c1ed104a2c81fcd6d9537a32d7d2b1a02c6625905ac8dac64f2b473c9f9440994e2d9d7e1dfe556736944c0225cb5eca5ddbecc96427e5502209649694cba6edf41c0974942d9eca54e54fcae3078f2f81045ad897732a31616bf692b2779ec70f1ebf258f40ba695107cf2cb32c2b61ca9efea203072d861247a04fb57b16fcb35bceea56a3a411e8a4c39f8caee57f49bbc70c258c40d6ce9e4bf265542b2b2b942c02392e7ffe122a7b32c74a14811ed772a7d5616237df44204793523275cd6a1d23184a1081ee2cc678bae674dbcb1f02e5f2abe75f2d6a36fd0d81cea2ebe6e9ec0b819663945987b7934f5a0b21d06ab3f253eedf415dd220d0e2f94b32ef6afd8bba20d0b2ac56a6976707022dbf98a95f6c71b33a0604c265b1bfef54cfbf96fd034ace2b2da5e1fa0199a5fb55b7aa37e29b3e207ed5b99d7e41309cc7094c72301f90c2a5b70ff3fc5ac6670f0873b5596796759693eb01397ae2793d67a3965d2579406738bda7a547979ea9d7a1d2c502868e941c4a46091e902df8cba7748beb3f2d7e5128b90372e3e494fcf8e559b3d228b103327e70531d5c8b5ada53520764b9727ba5524f07d4c68fdaa7a7340774964947318f7d9ac5960352bb5fa96ffe2c4b33c701293695e9e0727af817030774d78ba3f1a57d79269b42c91bd02de7e0e3d279fe7161943b444694b801a126d793bf2cda6d682130c9610202931cc82487c90772b4012d46a54a87d75a73c35dc206e47ede678cb36ad23d932eb62859035a563dd7a7bac4ab7abf503db658b9324ad480fa2c834761ee39e5c7d1cca1240da8cfb259c7974ffb337972a22568e0ce7b33f98688652839035ad6f35e5d5d8ec2c327275d28310332eb6607d3194ce6a00f576981114aca80ec7c9e35361a6dcc44a3840c88efcef9a4cc4ddd7e780cc88e2f3dbfc48b79e7c50eab502206d49e4b1b4d6f38f15b8501bd19734b5b7cdf9bb5040cc81977157bab74d6b5be80562e8cea10532edba15cd04528f1025268d22dd7ee942de9025a4ef19b9e33b3c7b55c40d9b9f0723c665c95e927946c01996173dccc358691bf0d84ff8fed86edd93bbd174ad840777ecd1693daeeec15164ad6406c0c2f271536a73ec3256a20dee56717836e52f26595a0440b88795397f5aadf9379d42c20b330f24a5cd4f7feb258404b55dd1eeef38cb9ab4aae801abbf7e42e755eaf3c65efe0a0240d74eb66113f2dcb28c434680594cf6779b85861e7da1f2568203f884be1d2b5fa8607a24ac919c8702d6937293d3d9932654f77281d188f1233502a5c50194fb6d67da55c28a9c279d38b9ee9af36a7023a47fdb6f5963a4dbd52f67cf4f8b16274e0164aa680ccb16aa3a88bab3d355c69a3a40ca4e91685bdbfcba21d93b2e7050f1d6c5f28910232bf276576e6a729e5a3f2c3470919779223288942091490a1aa9594cdad16943ce14e6050e2843ba77a50d31c357c67782fb13f73f31c1b17c6733e7c879d4a8f2e6902d2e5a4e15f8e4d4afc65c25032069630012d6fabd65a6e7155ef4ad943e1d16309c87579fb4b7b97d2f9e8a1f281354a94802ea92f54c96c592849024ae7bc39785e554ab8b0184f8246027263dd53c46fe3c6a825941c019d376ab8f4ce1b01d9f3497d6c61b36d8b292902529d9ce6957a4504b4d4d2aacce129d6644ca9503204649693cea7149f5cb99210503266593653eab5b9b019a32408c8ce2acf736f4cf659670924b5406631d3b294f63a5b7e5a20b58c4a632cbbfbf977166871ae4d86a77dcd9843220b74b9ce9fca35ab4661228905b2568ebada5cd1d00f9641020b94bc1df9a8b576342fbd0279e667b341547eccda15679ab62c33beb415c88e32b9a09d95543e3f2b50fa73fbb2a3291d345e05daa5ed8d27d73fed8e2a904aeaece49f35beb6970af498696d415dcbfc9e91a0c284e4140e20314505484a81a2c34707b8780009295ef1e8c1009251388044142b62fc17102009850e1f1d8000092894e41326249ec041d2094e28806413280520d144054832c124985874a0fcf81504905c62e575e8f0d181069058820124952000092526f18347183d54014824f1a3470f951b2491f8f12b283a7c74c00024903000c92352563c2502248e900049234818b10092458891501481b2920844f458092039c4ca0f1e8f8337040aca05480ac10012420c82022482980049202a4002880790fc6105a501247e5851e9f163a547080e40d207141d3e3aa0f25fa8f468010448f8e08517de850548f6b0a287950790e441012478405900c91d4a48ec5000923a7ca17a80917090d02184640ec8ff684253292d5bbc9f440ec813e79d76ce1507747e496aa70b0e681dc6c52d4d9936b9a437207579eb9865932fef9edc80cc7c52f39a49f958f236a05bcbf82b3dc971a5673620734fbe86c6790d88d3f8549fea339bfd6a40c6cb82e620a73420b378f2c9f379d2f41c34a0a5cdbe4c612e933ecf80ec7139de7756275ba866402a975b5c25bf4c976dca804cab762b6596aee53c3220c46597fd74ac7097ae31244bde7e6240696eed2f9707cf59e7c380d68da5b6fcf4a8582d6040af0cd35ef2ee3bc62c5f408b3d573ab6109332b3ac3a88f9298eb0a894f1a52251200c0682a1208a6118989a4700f3120000101416140663d1703832d4a67b1480044f30305636381e2a221a0cc7e2d040100a8502c170200c088401a11808c34090e768ccd60700c72069b044958751ab0ceb036d79b23f65ab1410d6178834c5f91b0a8b39d1f55aca458ea39813257e8d3726ec45999c7cfb589971d1bc029208337f73c06021c464424153ab40822d5fd25d0c58e397c6b7646849b77f407a2fa963c15362e336a05664126c5f5b28876beaaa16d7d3e4d24a80f550941d69aece43753cb624324b203a838ae074b196a6e0b231624cdfca9913058fe6a8ae6759d190b5597d4a4acbc8043ae0b462a0f281fec1d20a390001810d33639c1ca0897fc965237f7f443916b4adbede06226cd368f9534bca7b48ef44e9d2e44aa25b9fc5a54c2231e4c94c4e8a63d4d00ae589345718c867b4255a62925d43ea9b75335e1f40b93729a1570266d1a4ac309a549ade3225e89234e4fba27ac2273c719bb5ea74fb5ea2bc5750a0579efcf02dc245b2533472082e94e803fa07c3e5cf592be58ee7b851895b7743825ca29301d6dd67c45b9e4d8f2cfab14a5bb61490e2c8a600a968b74375adf888f98611b7c4139ca58326f91531caab04daefd008663ab55eb5f11ae7a9d2b71850888dca54ad3520ac08218e3a0a9d85c15330535ecd928da5a186e918aabfc0a1548886f282eb068148b2024c21bd4577eb279411741c46083e885662a8a8e68a7581beb057e4190853257c983d8d539632b07f7f2d40c7d161839ca04dcb48e09384dfbbc3d691995d4facd8098d8c070039b6077b94b816c97393f900551b4f80800a47a79f7af9a69d5a86f9ae7771406fbaf7fec16cfdd7ef7f02a3ef8fe30ab717ae70e3b081c05e5ea0a1e815e5a3bc82be622c6aebf69cd9f51ea32be6860840f04674267b6140305af441a01f33441f4258527cee0f31ee28dc9a7184a1bdae4b5c20580bc461812d7bde3715b22ee6780fbbd9976943778029261b7c3876d42aca527abc2b32223c34212f19ed303ef6165ccdee09c2a083d1ec9cc483a9ab3f5a11a7a716061891cce81f1fedde945c4d5d191ee717fd6291e73f1537aab07054f96a19a1e9a2137fe31a70a3e1f0aabbdc68928589fd30e7cb04ffc289ae067c75a1429c6850f75dc84c509296efb10e4e934162a70e81704af22dc5accf1386797976266bada5d5015469b56e569542cccb9839311c8261d7ab135f2b062ba7d771677d61517a02e0066b99013e449311281c9192d117188371de66a38ba164254c14aa8039a4d54aad72b21ade152d40888ef7f8e875c869fd6dd96dd436f22bb07d50fe31d07e8341dedd903c66294d0716bdc24400bca8a426c597c4ba4b960c4258ee6b55c0b55ea1497aea13a1f03d78615e128563ea8a57e0c5f5a910744b5829a825f27944864bbea9c81992640dc2d6029de6c539a3082bc574089193893df70476b536ac0f4a5f9c0049f130e4b422b54d2b39dc624cd7469e0d5ff1e90dbd44763a7c4644cc8974e2b715f23ca358bb1c200516021632ea91324b125a8f35a37e4c01d58b5175262bfe1904c3e22a2c2f1870e27800ee5af760c424db5b3043748d436a29aeadcdfa81f0d18f06d293cec9b03fd8b951752b25efa400bc07ecd5757f30c81d14ac4e93c4ca8040c3d6c3dc122d8519cbf8f3ccdc7c9f8d4284813fcd4caddc252b21216644752c08205610b0c0504ab94fcef3bb25d46cce6fd47921ac101ae2957023a4f6efc729411045486edeb283bdef16142474c7c95634f21c7435d1814e82ea58da4e5039a0293d60d82c60f2a84e42a82c238238debe85169943300e08282aaf708218a8f87f93c2d4f895706404d1ca7fbcb90571cc64fcbbdc0c68e59919021d68d6703388c30a3c13e36f892a0f6aed6f41e22a5ef141a23deeb0bf72e71882113e6f0867a25250450ec2d6103421900009ce2eab6874b2115e457853106a205c193e4384bd1381439a03bd37eb23f711e4b7e682ddcbbf8f6abcc6f77394778b12ff68de318e1c5312ca7234f8ba28bfac62f30d5b1a31e158e03c058ef993613978e2c32e0e2aef5517affd0034b4e8850ea10b14d72baf7126b1803d6d52eb793c332083474998c38030ecc152c62f717f1a109e203649e49f0d5b156220f0f5707f800a8dbc09d527eadb1a590e20e165983a5e0b239cf96ae5182a84fd10ce45a81204ce4e7c16132656bb0a04a73e3c3652381013e9055199da1d9ec941ad0b240cc10d06119905685302a3b4824a005e2210243bd1e2301bf6bd1953b8658851e5839284dffdf03ebd25d3d73e38750ea4f2d8a59e0b02ade1bbb939e98d4d45a88766e7c0cca08862f1b33a7e75c16d5b2a0cca9c4b0f0732d4fc10c76c1f727fa30d636ee4d1c7c6bbd8ceaf8f9389aef38c308481cfc86672d226fb9677c6c44d1317f702e60646db4c00f17b54ba42bcaef4d680f192fcd3d2a0621ec68dc0925cbc23e3cee036ebd448e64deae3fa87b1be6d439fa4aedbd8bb89d381f09cbd9361ca15443772430ff00c12dbf27d96cadab6e11cbecb1529d3e52df73f0e06824cd55520741fb4e13b166065d460c635aa962dd0f5319586b2dbd2691ba4cc495e0f5005985623ba161b18cd8c01a8719e0e40aedc39f9369894ade21e6b1c552f94cc8e9542a164b0360810a11f0f5457d880ccf39caf973ed4d410408548a34281640412c794e24a165423b704cca728883883f1bd8a9728a106bdfefb3e83f2b1329276c6de85517c3b10633b44eb233a2c98c7f452e0214485ee93d20fdab2d68fd978d3f2957d82460181080dd679705e38fbdc84905146108b1292351f4bc913b7c37bb09b6febc13effb7d9cb2608c9ade754e865ca30c6194cb03f8a4e39c82909964c8e4b43b33646d14ecc51cfe0b5e47e807f629e354ae77f41e0778a6feb83df822c0bf0ccc9cc423768b63e8e09e8c7de47fc27a5c8228969ce750eb676e8eb7244c5241e33e861a82d839f814af07a2b478fb923492388f1ca8d7daa413f351a8ba0eb50285895cff9606dd88d3138c95fa454f4c433074e9a7871d18106962ccade1a8d3013ba8c544f0c7ab248559c058c25963c56ad598d32ad71c57a2b5e450d2e715ba277c94be72daf32738dbfb9574714abeb9d4d50347b67c54c7c9c53fc5b6433573eb067618be070c4189224ce9c56597e703c6b4139329999503c176e9fae247fccf742932303ecad573d565612cc15c5098e5b59a45df1bf91d9609119b5062e3aa66eb99afaa89f023db2b3dc486942367d4848edccfe6b9f44ebb7486d1f26ac80a185dc0c069a30eb56b2a3cb1f1b5cb8a0a58f4fc29f10ff19c13decf510f1a5aee17be6e7c1d39e20c5764e3db0f94406150d01aa6942dc3a16785cc3453e06061f2bb2a8d653da8629c72e2b0bc04293167422b3be70eba8eb4c7734d33d836da05467454220d604923b5bacd9213db0cd09b0a84e983766742c59405f19555f777d4d8c02db285a85f0e04c0300e09bc2294aa2ed6ad394e04b4352a1f312a95dd73a431cd03adc29af0daf8bc1cd9eec64d7bd1247d8137e54da156a77545368aa97775445c51e05b4217cb727438a68bfe0ab7bc0d0f29bc513ebd07ad108e9f08f29f75de452097f5c9b51e46ab525b9beb2130708700ae963248146f45341492bf32def0a6f014bedc290671fe3d5f97163acb15612245f73809ce2c0ec1ee7a766af82ad264e6da8436a76b2e2d40c9d10bab4278518688434b3700c1d7c06820c62d0059481854d3d17ba3cc6c0ffdab6e930d011e7a088d887d162b28ca606f499103b8e463be1ec39362153c3e662369740fbc6f40d659d372437a1a849fa67e355d800b166cb17e8ba0ad10dd3af52273cc233528452c560d0d18eaac59a8784fc9472eb4804f9ab90b67c044bec090d212a4acc202e2826239c3c919698523b379150c12b547b12390b7bc51457319a65b7a8c4708b7408051563794548a9b403374dbd2791959b9d508280e58181beb15946d4c0a0bd44942cfb2cfabbc040ffddb27427f4dab86f3441495b7f9c32edaf50268785061ab5df02061df0008e4d93fb0452693bcad1e6edcdd620da3a0da211c34e1344a0ee10fc5cd6befd059afecda791422990bf40af6e599db85fa0a7bdd905131d8960d6a508389820f68a7a47349ce38a01a60d4bf8d4836250bdd068ff10ecb42e50c8f4439398355d80660c70e9e9d61c8bc1da90d254dbb205c314a1aa2588913ba73e68d72a97a70d930ca1ace857ef8dc8a706548f5df8ec12152d96d0acca4cbb233fd2172e24ce24a0410898df0129b84e21038135520d7985a4dedb7143ba23f74e048cf6d4503856ce51b24af90aa9ed082f53a4db1c2444f99c52d4ec4156068137827d02a7426040652a2b06127e115828ac1676c7905d627b56f1f406f0c525157c267e9143deadc344711a52f8ecadcf6085d784413a646f011e51d4c3ce44990ca24ee4ee325034776a27d1594f97a85fdb2817e06662418681ceec03c106c36cc5abfbb863a316e3e3158cf282f38f99d9d49f666c5e0dcfcf63558d66503f739b7feea1445ff2308130f5396fa3e1a3239b47dc63f0173600aaf5d88ed656d53faef5478beba30194196fa342245c25e3b8a21a725bb7a205698c22eb171e209c5d407a15875a391e62964ed030eb1c5e3c8b1fa446be1bf5bd8f052a7ebf664142b9b3482eaa0d628e90e585c8314325beafd223e1878e46f4a40a458e0d0d23b117629fd09042e314ca4f84e28d350627592c1aea247223faebd02688f273082a4439307416518b843c77883b15756c111488721fff22aa80917d0e1186280e42780a65329453e378cfa4e5452548559e64bd1dc999a89ea1dc26ddd4595a5e774788de3e9d0a4e998b04bd28a718ba4389d4f1cdadb165407279268708df5431f4265d58a65645c5d76003729e2f9de93a19e6ec8581164cec1a5d21a8404f8f9be1029dc748e5a39cfaff662b41b9a0db4104749efe9081395d06dc6872d5d4753be7322db868ae0a3f477b29c8522479c27302182556ce28a35903c0f24035976d49e3608995cd0d756ffba19ae5a6837bf9256711e05555b073856f9d8cea206a08b40ef5e8b614e968b2c9da1a77e732b5940a1e3adceb49267a16e2a502bdd43fb056f7026c85d069d435a32ae73643341f959d437dfdd221b433b8536ca436c861df5c76d918a5077b32d65b3bdb219c29f13a4a0745a1bb7e184490abc522bb94f78a436b6caad074a87740f8317a217792d3833a5d4f70a611e87f18809fb2a49968da37c6202005f34a18529774beb177434ab60e9861f00897b1ad12ef8dd1ebfc946a9f2773064444d0cc02992f5322be1bb12c7b62ed35bd4b5421be24f93a4eb650d583cf85226ba02eba2fb7f2315d18afe335a0e807da35928d6fb01b6fe1636c785fd440af8f969783fe179b941a43e8239a4e18c5ba85a61bccceff2f769683d7e0db02e7de0938dd02247d5b024e0ed53b0ba001730fcc76f753bb5bf95cea6ed21b59b00599039a76c4a8c2aa5ed6489532ea51911aa4806e92e56bf37573d7f3af3e8f39407920998c19ee8c800cbd444c08cd1d51a0a79e0de5bfbb6f353ade79e95cc17600882f2d2713dc4b4f0d0118624b1cbcc60002f41e74b946b24f7bb1d6848d4d522c66eee7e1c53194c101b076e4ee4fa5fb1d18df93500f56edf28ea23ea1d2fee2a136aac02a6c1f8dc7a912fdc068a99acab6280b19639d18a441ec0dbe33d8d569545ae35fb24f7a993dd2bd54110ea02f6964169d10f608ae45f6b45c5c1f4877808c7d8dca71cecc3f7ae128a1d0f38c890ee3ee61730372516df1b439895420070f04d6f08670bc57fb807183bc3bb8148c7d55f42ca52c623c1437d5cc7581053f49b1e057aaf659fa2b8d0689b17f44e3c219416829e197e78f165cc01cc4c1a30112616a2b94fda14969f8142f6d4946216aefff6ed0666076cac5811dd68e7888452a5b02e516669429cbf1c6016993b95cc363022b0eac45b3bc1c2c498b18d3b2b8dba8d56774912afd263d924dff6333047e26411fdd587f83d1730c9f5c046351c6a278d0f2a12bd1712934e7130fcc1031bda6ae427b03b58dd20c9431402c40b293d21347a6168b01fa1d7a07ad63492b0c97afe245831d655cf181f1043ec72bf4c38bd7ff9aa8d0efa3df2dcae8fef5d8804f47382058506e068ad70f713f70a90c9a1af0028847f17a14e05f60a78236dc72ae9b38ea6ee23bea6552d7e00cbd5ada5455c6087b0d3754e6218853458cab44eea51e3efbe698f077b12be0784a0e8a80d4217d04be595c01efa54189a027152e1c247eeb757c84d84c472f96c3fda9675d9c233580878a8fd752953bbc90a0760c7412bf9355fa419b9b0ae8b382d778b86201c80938a1bc61598ec75ad29365955dd6725998fb1b701dcf64f2732259de0a17cb241f16710faa133d24c7f882df183299f9ddb13d3f2f4f66062aa7939b1dd315d9a6bef867e1f306acc2e26cb7c4161513e0c85601f48d3dd174a6afc250390471fd744399400875d427f0b27e71057a66ac6ee0f8822184dd032d488f16504fbd3044650786beeb0ba7776418710d8d32a299f67424ea16c718097476a8bab366ef956a4365b634857ce2e3e1ee157e45d75258e49e1153a45c7075648df889e0ceeae19b9b16055a65ccdd605390c7e3419a58be873419f9a6ce9ccbc19beba5acadf12ae14a4a805567d0f3b77d211e3692617e0cc964802a00f9c478abf71ca3f7841c95eeb5dc99f71493f9e54519cfed0c2ad65cbf18735dd394793f69a236a4c3ee42d5132d8a987f04428fa2dc701694f8c84b4cf4d3f73967be0b0d828010d9ea5a27da00c75e17dd9b42d24b566a941be506ece3fc69299331cc4a324e4e181738e9e2a077cf5e21c21dc6daa537ba4bef48be15306da9e864b2f57657414dd992109a32fb729ed30be71dc40274fec1231f773062eeda30d693d4d811f20816d88364c3e94a7197bc3c842bce1f1f5cc361c2134fe6d826ca7e951e691ba1701719f7d9d36fdac8f35acb1aece78b74b4f77fdc5196523a5d810682b1e9f13623ea72f1c0493e2ec96e39b4b953fa676e8565416161632517ddf7795b4de8fe71170874d59af2d90fea252662db8a9d7b66407c1b48a461a56ccca49dba9c82432f9aa612abfe42c848626e4d4c91dbe7fa1b6a533cba7232ef5f7a00cf3c0defb76dce859ca2ee8d6b96344e8958fa3a59a7a3861a6bc40e42693a0514bb2db68ce20e7c03dc1cdc97aad7231a5f32fc7acce59d6f40848466c7725a451a19c1324b8299fbdf961ffcd42da5dca93c320451e9c70f6b9c97d5dab5f3a5a53324ac45d8626527d6d623eb6bb707c649783291a482ae2720ec03b79dc78eb7da60ea399b69e5879484061c231b6f11d2688f92d8149c63d8137b2e0d89368e39554bfe34754fa2b7fbf40aca09b437b4518df6db0a91f0c0e3e864106720b84a25f9860d73ef8602b10797077c7cb292d2d99c31ac17ba2233709dd9a9566bfb90b1eeaae3cb725c958558c2b640d40d3d64e1fdeee279e83e5e2e419ee684ace273d49831a51a4ea334525f605a83a16b2b25916cd52a8e23babed4b12023b361545ea6b12cc282c08cd895a2998e1ec10ab6505273674094e1edcfe4506fc9746d851bee497c4d1f7de43d1b15cbac9756089435a14325f49227f3d6f2780d37ea587096d0dab20b0320fed5fd578334cabec77af5582d9a68047917a8052bb7ddd8bdd2ec4405365641a20a391e31f3c8ae95211b014c7217fbf9aefd1c2a9adc70fcaa60d8be887141562664afe366a19dba49d99475b2d4113d53f6816a1808301284c807f24c84073dbf6c5f0a7c64b90b4e157a5e44a054958b5e73f9d92d9dc91650742185cfc9ad15230a055c094f4d7075e19d774f0b4726ba6078aa652187f63dc20dfa385902b4112375db6e30ca2ddc28881ebf8cca84c855df62f7448e0b51a1af82ab5d60509255a317499d31c3523fafdb549cb5948a4d0c57504070ab7fe07052fad0da47409ef0db87d6765a21ef47e9e45f69c0f617806ff3931b4071c7721c8d42fa9dc4b53d8ea3945301f8f0c1655eef80d50347bd594f3ea39e159cdb111622bfb8400d17ef1216e7dc49dfe641f0967feeaf742408aade765092e8d694c3530f9b07bd8b331fa8516431d01c091bbc8e97f5a2458d1c83892bf1d6bb0495f002dd73c4ac21efa2ea4d76b10f4005bf6fc446951049d98e6faa43452e86cbcfc80d7f8ab1128874f8a348eb40fc38bd244dd85ea0e574c0c7bc1d6a4ed2c8785e1fce6bf225217c5cf14987e2a37d27dc1423b355ab796a0726706b9e4ee81c82501a98c5fb53952f8bc893d798c401558852c51c3629b0454ac142718c0caf21721330261920e4958f0df414ba158839772d2056d52773c5b20a2e9010bf01cb69de302250455ad82097973e61a0026d103fd39c4450ca5ac9467b88c2b24aaa9b4890a1c5a8800131ce156302816c335033b2c795c0e4f5845be2c82a4c8d5e8850bb8bce3b198f9554e242b337f218df563de9926d7242f45da5c2383c6625861a64aa4a2cbb10320338c42654c006c4de83099e516df9be5ea2e000f7cded438068407f0006ad08b9b1a5fb09c8ab1ff4a2f1c6b42427efa4fb21664b3a7a43782a2d6c12cb4e987e13659c82f2e31eb4728497d36de9a95a27dc70ec023dcd14dd71dd8aa41eb1aa77c88f69b603d110c035f0197bfa2129d201f52274990fb42d13a21f01b1ba8154f187a5a13388951fc88b4ccdc7485c894a16f6bba50b7e9c2d1e05379a57278786f3bda79230615546bbf6e28738992bd5cc00a513b78b41ec35638722b77fdcd506ecd85056686bc1c6c126b4795e99802472aaedaa514e9d84712c13535050254761a9d7b94aada965d302a31209fae0fc2230ed76995f05e21ed26e47d77c2a49db611afcfe236c522a3bf8388ac4ca293ea319452019815346fa559f4e3c52e87c5fe6f220ccc4b4e1828f5bbe4a710844e630d7cc642229b8cc334c29781db8f3dc61422e416d054f79cb4e05a88db1e68eff863e00868b0b056d86afc83dfb640ac311e94016b7996eb17dcf103d2724ae92736fc1fbea9faf685cf3474fc2e142bef35347b74a3ea126e8c4c82eef7333abed61f1fe3aa35a61ec14bc8ac55dc79531c13076bc81a24638f1bb4ab4863d0fba58d4ce27fe0f09c0fa22520a408b5c4badf9780df47d1ad7cba3cfe12b7611839adfc3d6f055987b6bbac009221e741ed1294d8b8c9a9a618d24c16b7b27819fd81ecf7d61498a17a7140745853d5b910955253336394cd3ef00c139e55b580a0df924f61f8d709d2f581fbcf1ea818c3eb7009f997291dd90902e6173b1924e6a7a82a0c13871667e4baa67da373ad05a4469861332a7388888db1c0748afeb46da6b9cede72f0168cbde88120acfa542823744d889ba1cca4ac5b38728d432ddf04b3c19976503a0528969385128fc8ae906cfa09a3fffa9f8c3bda653bbce9447fb7928e33a876b0659836b68e297e28f59413909c93f41814f010cf0fdc9f7e4346bc805be9f7845c0fac0f65c30d4aa094f3479ac34e1605bba38fceb0564a34828ee49a03c9a506878ef802784a39cb9b1cf16e0de9e15e9792bf3c0c5c4d8431f3ff75f9d87c6137ae5a29247aae03aec834511a492344d34778b562282384dd96cfcc22afafc7dc8085aeed046a0d1be11a60c76c4064135614681de18686073f6fbfefc6f0b59682922856b7af11aed7ad6cdb0c4ba0751e698969ffced0e5c39cff4dc8a9a3a3d7021debfc95fcfc29e03bb2f242e6c31e550c4b6f1b3ad4e52c6052e96fd60310e9b8f04139f2bb9967e9c6ce30bc6f0461360a22fddd631895d662cf9ef70e14b24902b9f09308b68ed4f15dc52264d227b6a2fd418105e76af698981faca2c4cbb8f295c744519f8b0e87be400d67860f8f7c147055dda045828d0ad0d145b0c5e66ee00c704a4c84066e6d72d8374dcca3b1c3d06249bfef47b94be0ff0a8633b15e2ade46b2378ccc3d5feb4e1faafaf02830c08743b22956fb7f5bb01a1423ff8b8f2236348e8af35d51564b7bb11791caeb99fba9714fee122bbeb4b1385b8d4d4c37101674dcb87f7a9c4be5e4568b8b3c6c4b62285c8a2f02ea86a2281c9d91a9447890e9f0da9a93a00a2c934ea410959a0c09147ee4b22357f62e5ae3045c7ebf9a7c232134e26ae8896733fd94c5049e3194d8920296762337464183293edb87fd648e469bea976f464b838347444fcb404dd50f59cc5fa284cba1780d0f84f011ad7e00eabb990c3a65898d986c9459cdedc56c4cd08d4ddd829777d0cd0b1a27f30ca8a0b66c637f1e8e56b1d1a0b8f0fb3e55d32ba92277d81956dba34a6659c4f76451403cb981e6133dd6b20ed5404680c78cf70633c1954486639aeb3413bd06317ba90f95a1b1b087e6c5feb69fd06939d440ad08416f118e5aee7c072930aa6bb6327b222dbbb0bb73370cfc9430988d5da33cb877b75bf1689a3420feb711511e4c98893006145406a943d042052e3014aecae4be270715f87ef82a136a47b59bb0d4828ce7aedbd45d3ac8e2314c4f2001193f6116ab83ac0a18cf85b16fb0c070bd3c514676031317b01647368cd18f64f427a40a2fef4c76892201f0a55bc921c150cb9d775b0b25dffb162df25a1e3abc389255bc49f5cb300dab2275a234bf4453d1316aafe7fc2d8a2ee811c0e53820fd808f7f4194da13fea7aa5bafa560b503d123446fa0a546d98498c5f41c65bd69a9edcface6161a5fd45f212d12eb42d741dc95cf95180c91643ae2baf9155252a866c7b63dbe325460beb116da970f180b05e184807e74786ebe580928c72d3203e60ccecf053bda8ec446d7c567e1afe8868fdf630c08a5567e2fcf6b4fcf60149abea0e9d1c5271479b0bcaa018956a0c7dcad09c8aadadd6a13ec7294aff8d844dc02469ba26b0d7a90c16274922242e0e3cb3929c6e30267176042e0dc797b27c748fc2d2dd4d3c9f269cf823dbf51e4bc06913398256fa25a2c34e0020240210dc166e2d4ab34ea2f9ddc85ad5cd67280f44077fd581dd14e42418a4ab5a846981ccb58da5a52dea69556b773ee111f8a4b6049c25d2f2999b9d434ed42c582c2c36bc3a25fd351c03de12c1ad1c9a917e311e057a72a0873137cec9dc1a1c55deb8d3274a5e63d815c595e74d1d2a11aa75bc04a2b1293c9f727ebb100f286de65df16394e5a3a845511fbd098c107c3632775ae1202218046def984bf297574e33683a3559ef4b5669b8a4188a22721296245b4aa7fadf3cf9ed6730f8f558b7591c05bba4c11d37fc759ee4981b3244f2f4d0c4ee24afa8dbdf649948c566aecccf2a9aa465a295159defdbdfb427cd580c392a3d3ad4c748be187510716fc59fe5e1f811bc4285c8615c84d34bc87706b7a28006ef0609da2740bf80810d54b1d68929556363e27807a4cb8cca284a702e8ec60ac724692c5b639660335239ce73794ef9003e9eeded4b10205046198e618b90c80c8df65726dba2deaade5410575eef86083cb25bea4819e30e04ce9f71874d28fbff6146eece46230f026e5a9a9f6b09a9f4057269b91c5d3315d54297c23d71619bcff975eab6fa7bb0111577a8b8a0efae34b099f24ed7f4d19c2f75568246b02d904c432c0b81b61815998721a6f7c56fcc9fb8ad4d04ede0e526f38a3dfa6502877a6d3a53482d9d7d045554c70d959e32000d236ca93a33360015b1223aab6a271342c173174515bf280f8ddd37722fd2697a2a61b19b8b3f0a0605386da62836aefd7bc527763cd2958237bd9607d7bf3dbb514cb4d6ad2be59376d1c1452ebc87351f2071960d99e9708357593d05fad2a154f65e8d169dcfb1894351d38f2a3bf596adf7b3f1527993d41ec25424a9a7b05c482b39e9e66197d68920d97cc76d3d80a3c13fe0a0e492890ff1e412dd320ea8d63467124204c972fe9b831258ab2280dbe9ab58896699d029caa188c7b6ab1dffafa8cbba0299f031bbb41145c305468468165e5db7ebf110803081935bf7d0d4c48b08db29b0bd1e320a8732e7f346cf78ec69932f5bf02d0ad8cca922562962642a8855dbd5b2ee478161d56065b28e4e46d8464a107f92e457b710efdbc44f82a5374db02f6c098e7bd6355028a56eb04b1f65e30aaef2ad811e46150b6c935d5afa5592ec5cfe4aa9037716b0c7781e3636e01c151152b74ee5285f2ab9e122179b5904fb7db5caf09ec1a09cf5d398b90d1eeb31f0cbccde3b1ffc53a282fefb4dbcc76341aaf30a3b4ad46b6d1c9e5d5bf582c69993c795cc11583220b8cc148355a4eaf5557479c09c0461943d0ecf522bc45c83909f9829272ce279d4a5f49abb2a88070c915e58906069cf5673ae7d80812c0ea44c71bc7d05be66d46460abf5fe5ccfaebe01936d026d129a394938a81af4a964b3732ac4d02199309dce0e50482788e9883610a25fc8d25755bc471eccd95cb414598e51b562997262ad1bb3ee651807f0501f62992c962318806dae1e72e9aaf8d3c91032a3694e11959ead24b2742cbc69acb3d0806ca7c0bd450f61ff4a13b20eda0cd266a6b87cd7659e1a20ac3395de9a76c9f9519c2ed5808b3b102c756abfd2c8bac99a6c1a6575285205a80e955e6d6527861cc3909112691957f5f18c521e7fbb75c97688b207a962bbff8eca19f30e0f20732b00e25fcd5cf84dfa06349802baa6dbb076c0706f5c2892a1d2ba02d33fdbd417f8d6cc1e90a8aeaa3836fe82955747e5255c956fc654ba1faaea07c4335c10eca438b2986972c7abaec2db089a7c2928fe51d803206723841564c4e1408c12f47977b82e39d1e6c468b835e5224184055e0ea0c30a7e863b548638666f911c70de839d841d63c640afb9be7f7b76ecd6607f5389c885e30aa029d349d39b382d418059d7b3c38b090138e607b819ab970c33bd6099edbe047a07b7d6e6a88607a625c796ccf29c194f4180422f73c8ef641084d7ce3551e71bd0bad56b3bd26b6c08ed704adf196a51ff60fe361f2eeebbe1e2af0644cd29e399103dfa12d844aad238754f4a7221a354ca73443a49e02003aacd8cc0f4a3345256235e8b667e5f0cca3463e29f6a483a561f94adb071dfe0ff8ada8829a91618643629845f0b2a3e68780db7a3db023965362690b5458fc250cf2ea2b908c806423ce87a269aebf172348f4ce8492a54656f56cd13440e3d4006ea95bd1ac19350f03894c60eb898c68450e37c667a2088966a50004e19a8764e5da1b4fd19badc29041e58a736c106b5144018139dbccb17ff486167605ea12615c682b0fb59a6f3bf1f49f1352d35fa0b66ab3d760ae61b306d7bac221cbf30b41ddd1347da8bb9e6d692f598bafb65e7ea3147510f2a3d42d6cee2ba54ad36ef60a0d502873ec4497209f19c050d921caa46dc4b13845b490036cc41d314915867bd8651f5017c37817fbd749c197b628e9e7f334256221eb72c6aa0cc6f9558f93de858195d0058e25a0e50f9b952fe538aa3fd96442a9a08534b9bc6435ca2e3a5246c87d8292edffc1683329068b7499ed34db82d059e1772b794ae016f5848325012f676a10d1165475d16f9c28b2822c41dee1111c4eb4907a32b66050b150675f56830041335d75a0e23217d8ad138317838c0e8c4a392176d618b906f6ee681a2c1f51044c143c44ac6e943ffe6cca8a187685cca9c039743ce962f6826a6b6dd409405d1506664eb50571193cb248d022fa001182a67094af3635f2ced60d93c4bfa3959fe621bd42cf07a0d15a557895c6ef61f43254eb060109dffbb2bf0619f016f76e3e42b377b4ae0d19af53d317bf25a5f93858c0a2c669a16f91b4bed0505fad6807eba36d7d4587cb3f901d3bf4fea3a7648fc824196a385eaa4bf3246a83f3a35895f95f1ed1fc2ee0b2543feb24baa3fde0196a7afc6a8c4fa72bc5a3b9748ab28e4b400a5a31f4dd95fe576b8a33d7c594acf48f171181a1503200a7b5e1fbe0ab10a1f5f0cf20995a67c13d8b0871293adf4303a8e380c136c2e997578b67605c9227d5f2b2ad29fc6c46fb3aa64784e7e0b5e6f9709f049c0e8dcc9ae08c73674bddea5406004d146c215eb5265bb180d44351a2bd0fd8cbe6b802951f5cb27a0426a816af4fd6375414ccfe8fb25c887ad7a2a58a5d094e78a1009c43f3295bdc35d340b3eb4d69c01027e7a9754362fb51ce3a6afde2e90119f1489e493b84c513ab28e035a974993b0f7c8aa575c0db9ee3bf4973a7a6b8d319d0c16dd79f0de42be4d5c4fc3342cd59b00967ab5903be0d4c3514bd219009e44346e25fc1c8be3e9038d4f44e72fc5d99acbe7dc87a648f4e5e87493ca9e1115b2ce0c5e9d4cf23614ce66b6a534390cdcbccb29e23fcf634db937d9cffbf86353362a5d6758df47d429515687b61d30623f73aec9555c8e5f9edd1f3431000a8bb57696c6e60a757b922f68e246311760f92c03a11880e10c97b92cc7298e231cca7892a5316204dc18beabbe303960c43fc0a446c41e64fcecdc3b3222c506ad5f35254dc8491a9dcb63690ffd8647c145bf54c0a4dd8a80dd3fc6ffa82e8ba97c9a9657178eeb9526d6bf97272e4f7a70114a870534c27adc4ba043849645aa5353ce3e9f082d51cf8b420413c203bfdc021bad4e974d9ec79fd1576c3cd2b5507de6a55e29f1be9005731557e6603480a824063fb7b5fb809dfb69e381474d987e486dea87dfd4ead1f31c2bef9f788001428106b6179f354281fa2c85e437f71500fefee58e5bdc8accaefaac8bac328c52ddecc770b5bc46ee3ea18b61caa189d87c14faac1e0b00a5c6a34474983f135cc6b7f519f756dbaa1657ba9508c6e80522d71382686e21047a248a2b3d90fb828237c051622a94c50857d113fa6785716ba07b4373a7bfaea6956d9092d6962bedcebe25dd23d6fb70d957b1d8dce448b3ca65aa261d80e21b7e4be9b3dc38fa3af2400f53ebae3f93b69cd199732d8aa4da7259c2805571ab025dd5e484bbfb17ca0c9dcd766c6410a7fb13b8bde97de15e2db22c03c58807204695e33550fb51e90b4f20134c1b08863139cbc31cf7fcbc2d11ea64c278dc40c73cd687c1bf1484bf312cf242e57e34e3c3bb8b4706cfd0b6fbe8208745b93782225967347f3c4a42bcfb01ec92024e3b44d40a3960b46439330f0f0f0f0f0f0f8fdc30d0d692d0c8539320934c12c0d8426a27f022539229a514494f67e6f4746602d7c8de840c139f46b00140060b9c0a040b8a89c41231210612f8f39c337f8658debb1d813bcfc153236abab01023b0ffbe559fe465ae0bc110a308fcc40cf9db73d2c144cc0a3188c05af92549317607fde913620c81d192ac934b4c93447a332f053184c0ef7b92e79f29640d1d22c408029f4f738ae393ce34eb4a88010476625a0b7a672d4aff4988f18384eeb3feb4fb20d9773a419b961074ac07e8cd17cb2bf95e1a3d0ff0602ae91c8274d57770488e9431725bd41829bdf23d644f9a64e7a84110dcd0e20b442a6d8b1ec1791143079c727f1bfd59f935213c88910326a60aa674633ee5295f420c1cb07944a6a082f43c7ff1068c5f36917a17028518366063acd5b49b57c4521fc4a8c14176050d9d55eca2ea0a0b24a08b1c3f841834604ba2a5ba5cfbf9d53521c60cd89839f7e753adca9c0cb851d371ed72a64d3177102306acd6c4d7a4ed3d5a1f0b7821060cd8a87e312c5eea8824d3320788f102eed48d6e92634a26356b0710c3059cb4d13f512ccc62364ebf0d1b3d021a294709b6528e121c89d102ce42a5cbbe7da29bfd182c603782c8db947456c157ca6cca2a348a8eb72ad84cc246d5eae51034930ace3f55040bf1ac54b3a860378f1625dbd5631af7147ccedcf5a4793405e3debf1abfdb5476ae147c4ca1c63c7ffbc70f29d8d0e81da9a4ea48b146c108612771d5b295ca8ac6165c1851f01644f05422328afa2414ac77c60b952f07059725e9e32619479e7b3ec1e9cab4f50b2aa5d5f78b0e4ff01554e4f7d7a0bc4bdf0936ad4285548d1442e4bbc051021e7470826fdd6aadfc4c9745b409eeb3e267b7c535c1584949b244ce3da96320800516a523137c4abe2a51acc504bf7154e416895e82cbd60aeac5a396e05c72fee7ba08e2315a09fedcb2839e5a28c1788a7a3b1acc5f2d9b04234a77e50f4adf7892e03d0829217b48d2dcb4916052bade1591f4e61da485013a20c1f5c69c757479edc65c3d82cb39fd9b6b56c994b48ee0d7d35f5b7ea7114cb60afe19acb4a5b95e7430828949b3630ce95b217b16c1888712dd5a118d92bf418722d80d566ad2ffec4bde828e44f0295af5eafe38e8400493da54b4547d9a41c721f8cef19410a6dad1456808be4cfa6648661e82ba0cd05108de3ec9bc2ea5e287b884e0aec24a2591e2fb0451a005179f83468e2db06e2cc01ed0310836e6e4efa223a9147444104cfe11557224895496cca223108ccc22728ea754d7f81ce8800e4070fac4f6aee27afabec8d1c58db7b280099a026526e81c6720c0011a0ce8f8036f3abd6dac2d15e086169de30026e81c5860e1074ec790628a9655fd2964838e3ef041a47e504ba372fb5e014c41071f18a91b4bc913b98379b0c0c2c68b20470e1c376a381758609172948086ef81771f1529b52c24793a1d7a6053f77f0e49f579e043e4cf55d2441d78e054b57deec0efa9b86b9aa2dee57ce9a2c30eacc7d2f1a0377d68f7d481eff4d9f4057553bf668e2cbae0c28b03608105093ae8601d73e0bddab3738bc6a433a7430e9cae203a4f66875039260edc4916797dc13243db0e3870b965e717635de914b1c01bf85cc94d8d57eaf0e0a9a1d5458edec21ca0c30d277b4d95b3a3e94a0f3adae0c8346eb14f9a10338f0d68909e72be8f961c5d6cb1828e3560871a343d75a1d28baadb3c47175c74a481df745d253c823e4d22b5830e3470ea73a385dad75fd7d4a0e30c559834db0cbc8699ee32adde493c65e0f23af33d93f0582a04081d64e0be72b698f669081d63604d86c62094aed7ee62e0bd26ee662ab9123ac2c0e5f54db7b62996903960e07aa404a13bbbc4a46447e8f8021b555c53948687984a62a1c30bfcb779d473c9757481cd92eb397b8c5f6addf82d70e05da1830b9c590a2995daa94c1fe9d80237fed7ee77d617a44123cd091d5a6062473399773fc33253438b58123ab2c07bd29f6424192b69cb792fde0b12608109ea3405a5f984f6db6a685d818f5b93837ccb0e392b7095b194d5e52bed0ba9a16590d05185da3fffa42c15d8db2f194a62eaf735d031052659bed1f964f80509d6d052237448818931e7896399de27af35b44e081d51e0ae4a7475538cfcdff022c716e4071d5040d4f4da598778d1a1e3097cb44d6af3e91f8f215971e87002af9e82a5d3bd8d269a434713d8cb95fc3e3be74fa632810f313c4d0eb1355ea9c0a163095c887124e8c83963a85c098cada6afe476bb172def48021f534fd231c6c8228173b11c2357daa4ab24396ae01170fdfcb134d6d0935e5ce1820e23f03197b64e89beb152ae088cba64eac97d5246525d213a88c096957ecfa942359bee46c710d8f174267a217612aae5438710d8e09f49498db7aabdd71e3a82c0f605192255f2f76dde01043e65d71c3cb5c955fb74fc80d19372291949774ab9d3e1032e8dc9d227a2c94a16567da0a307fcdfe868ca9a549d9369e8e001eba584d21e3a9629e6d20c1d3be0438fb457edade425d7011f345447fa8c2721a4d0d09103c62e48d16984fad2278203466eecac0f69a49ffd37e0625604d7984365d48b1b3a6cc095857df0b6e8a6820e96a1a306dce820bb5427e8e41003860e1a304988d090bcf63f63f00c1d33e09204954f4d4be3291519bc913d990c219645b83ae8880196bbcbf4b45b40d001032ed47d5b9023c94b241d2fe04ac64f974d9b2853590f74b880af24b3b79d9812f629332e74b480d3fb1ec32a5d07c9626da183058c14bd26427f7375b2e4580517627eca633792020c55f0aa2159ed63aaccdae00041016e44600438722000004a80910a2e26914f431c1f157cbefdfbf7bc2f21fb5370b79de65e6fb9248b4cc18eb2ce78ae9ed43d5b0a4ecf27a6684dd55b2b29184b3b41995c4f72ef51709d257a84ac8882516557fa534eea1cc45030692f6b4a13a327d313d3010c5070134ca9acd291d1048c4f70a91b2989e8399ee0b2ad68cc18a3b605189d602b788a1c2547458f162cb0584eb02fb124ab8ebe09bef76c4f8b88a263d46882f18f95ac444c9e69a33032c188fd0495d348f60003137cf668d9458e21c6f25c821f15e59d83101e72d658c22012433fc898febd29024625d8381eab82460dfed969030c4a707bca326635c198049b3af173e47b0d9e3a1892e0cdfdc2b3e7ef49ccb2b88244e08a2cae2010b8228b2bc803aec8e20ae2802bb2b88234e00a0938e08a34c088049f1b6215f485cc5dc91a5a90e02ad9a8f8e5743a088b11301ec14ef4f3fa9abca5d3a886c270049ffb46865eaab5a8b611ac08d3c1d2fe766c432c018311fc7b8b9ab49d52ab5ce0d8e2240163117cefa73a9d90e25fced18d040c456422b8144fd4b64d6c740d9c000c44f022a48788164d045cb4051e603602188760c3f4071949a2b9df641d01c3108c067d95c6bf4e847ebac08101b30dc028043bbab3e8550e3dbae2c51637b4a0b185175d3c17560b83108c5225ab2ba99cabd369107c4a27f43ed32508c64608cf0482bdb5cc6c417d882c9901049f3f7288d24174d357fec07eba28aeee1af4f5c2020c3ff01b4feb3efd4ffc54fac0e76c7742b98bda1bb30a30f8c0299d33952895b3074e45cd29b77bf4ffd86a00861e98a45297f0bddb14eb539600230fecd58e5ae84bc2031ff15b42d0ef775262a9041877608497f8574826bc84ecc086b4cdfad1fa2b0671a0f502461dd84ffa99762b96936be8c0a889a221afe510844cce811521edb655b4ee04a91c583bf556cd9c315e48c919c088031749ad678aa6799f2638f0653d2e22f5047da284018c3770ea6ea983494fa3b3ef06468bd039a7b906cfedc068035b7969959ab27b8e393630326a056daa4cdfc87f0d9cce2f4d53f9e3251d6b686dd1347020d302186ae04363e8aace395f824c1af86f3f1b4da362d7850530d0c09d52ba7fdd6be399c9028c33b09949f73dc6d20a30ccc09f597bd6d30dfd59e902070602e591764a6705953c780481ed0e2d519a1e49568a65070f20b0f144f66b66e50b1b36da0249f0f8015bea572505659e1b3c7cc0f96bbe49c147792ef51559b0c1a307fc26f7b64eadd73b225c78f080718d79da012b4a64d139d4ed8f7630608ce0a103b64764c7942d1a6e9283470eb858d15ad3a25669ac78e0800b26fbfa8455da69d3e3067cda18ae95b6dfbf760f1bf0fe1724e4b6a41af0174da704952a5ae6102878d08089c9b5fb9468dccba719b0e112f37496b8870cd84b31d3eec493470c58936aa663b9ea0103b65277d29073f29d2ed5d0a281b6028f1730318b56d2bd13628ef80d2f4ee0e102ce72a720eb2de947d215173c5ac0a85ad0494b4610428895050f163022f9c63bac264e140b2cf2093256c1b7a789c1b5b65a748c2a18254fff42a9a8b952f6320a3252c1f7248b21aafa6995a81364a0821fcdadcb25d696659f82778b69dcccff3d9f70024a90610a46520efbd0c92e25c5c82805971942a924adad82ccca2005274c6ee9268fb1e44e648c828f9d937b7dba33b5970c51b0ad57a6bb3d2f9bac50404628389db13c7abc9259336e72083240c14e7ef124719446c9b14d21c8f804a353fa9c9737a8af46730c323cc1a6c959bf73505b3a0875e25c373dd9312983136cdd473a2f11faa28bd242c626f84afa53c42443bc810c4df0a5f54f05534a6ee450063232c1e9555271afac24581a0a3230d1c7a046a9a0f2a42f6b6881e006053e070e1c5910eb1a59748d2cb0c0a26b78d7701ae846e7c04b70429ea920ff7c5429650d2d4bf07749568e41ec35866c046454a26450824da624d5a72c39a9104a565ae4b000086e10cb808c49185a6db3fb595c81800618e0000ff822078e11fc08644882cfbf92213abd1a5a39cc202312bc5b5291fc4b7a92ecd6501b363a0235bad0220308061990e02bb228b3a4b954eb7f04f7faa631fcea810c473079fd5583d4d121a97c0d2db302198de03304bb8c51dbce4c8ce07cef645dca2b22428b607474bfd2bae4f9b622f8334f3293c72482fd12fa354b9075254d88e064d2f93786e810ec5bd274a9a26f083e6fc5493e6249c7e417825b73eda015a2a6bf9e10fc765e9295fd20d80e566a9266bd98d448106c87c86c3e3e26db8202c1576ab69c3be5ca9e4480e02ce2e794d24e501dd11fd8a4e993aa538e78defdc0259da47452dffbc0eee7a712b24e09353a1f784b5ff1438699b87bf6c07e6558d0a3c6ebd5a307eee2fae53051e781dd32591ff349cad2693c701d52b8ae598ea76fdf810d22f78b4c56db816fcdf9348d77444baa03a7b2ba5bd42bf4fb74e04ff7df653fdfed9199039be485286213840cb6910327d4fb8a7d480a939a38f0667b213d279714a4060eac9f3a1533f86eeca879033b21894e96d4971b356ee0f265fcb3b2d5b7ccb6810b253a923eaf0b895936a45348c1920a77d7c076dc4ac2478dc8995a35f0ff1a52998ed212529b064e64cb35297549c926450357757a72aaacf94246cfc085c9f4d553db5b57cdc09a10ed9a7d19d838c1cd2a5a88f172c8c09e30cd959244b3db6360445222b9dfb6c7560c4c52932a725493ada48481137fd1ea6697b246ca6be9a544734cfa0227b388902ac5eee4592ff0b9ae64aecdd4d45d768189228299ceadffbf2517f8b8db413753b9c57d0b8cb99e0595d2a2d6470b8c08b18ca03a59e0bff7dc6d64a7a06b2c704a82df7f8ac12bb0a9e9dd5743bc0332acc0ef471ab3cbb00a5ce8a5a5e7cd0bd11e153865caf5b4655a977553e02fc9b4d5efa24a8ba4c0699341458b97a2a28e021baf26683c615e120305b652bd594a7b9d92f6097c88b7e556d7ba56cd097c3edd9fe2675df6a4358191122d9950f7fa90342630f174d0dcc15f82ee2c8149e129c898369a6d5502779164c9378ba56c4d02a7b12d53540509bc67ce1a7235732b750446079dbb16222458a48cc0a7ded688489222b01bd533c5d29aac324b0446b78586105bef744a1982c910021f713bf4c79c6bb30983c009759e93a8ce9f395335522003087c8e272a560e1d42f7f4035e74870e651dcd44e3036e94e5ea5d111294567ac059fa1ddf71cbd1390f1821f49312ad417fd3b50356644e6aa7191b5a8800bf90a103267a8e1ff4353cd59203c624e6ca7797b48d2ce18077f5787e32e7b01ad10d782dad1f53860475db06acc6e8255a444e0d98e4fa290d3811d28e1e13490961d2197049fb285d794732e037ffae5730b73c4bc68015fd94efb34afe908101779743f53488cfc50bf8bc3515964ac4059c6b4a9a2adb022ed3b7e25ff82790c1023606f78da9dd2fa6ef57c1e66870db787255b01d2a29f4c416efdd53c189498f41b7ba674413157c0abd087ad92aba3da76082e86c49778494333ba660844a557b7f3997fa5b0a4eed890c99a2c8c9fb92825bcff8f7e36daab551f0e75d393acdba34c4100513f7ab130a2e4ad093a2272928b837ed903dbe8564e6354a4ff026fd5e43c87cd38d7482f72ced7e4158cace2027d8482a54c6a467b52fc6d8041b3172beece59ec73b4db0a2b2f366881e93885c2678ffa023683d61820d29dcf4ed4910eeb904f7de66c1366e96e0a42795629f054922b34a706229c6ccb30d25b82423fba710d4fc359360abf225b51121c5519104f7e6a959b762d0212491e0f55c45bd3d5da694040946e5684893fa215b0e7a0417d2275bf04b1de2e8388211fa734a513fe586b43682539f2d8d927146b079b35f87169936b365115c98fef39443dfca2b8ae0e3a5f017959ca4263311dc7dec8862724404576e22654e232259c81d827f0b7579c753278861082668d315457c4748092a04a7a35657969c105c4eb5b4171293eaf53106c149d3196f44ae9ab28d203899772e964ae9ce5e0682b1decae239adbd630808568255903149ee0f7c252b8d29fa3bd72b3f30964554e7f9a7254bea035f97548e0e0bf181bfcef99a83ce983fa7f1458e2ef6c08ed674a9eb4b7a60725411092904f1353f0f4c8e989bf5273da8bde081abd3494d64e55a931d0b62dc81bd8a7adb813713fa977db33a703ef2842ab9eb3bb2dbca62b76a0b31e8c06abec73f0fa1b4e714b2458c39b03926e51a438e22c23c07c49003932c9979aa4dd67111fc6f1107ce3e6b4ab5be51346f5fc480039bb2879c4d922acf0fd5d0a28103bd8113bf92a2bd2a2ba3fa458ef76202d780186ee0549e9eb0584a6de03bf37477da94624a0d1bf8ec2106d31a455b76bb06ee83aaf7c53c6bdf8b1ab875d57055350d84bc31af88ba2a061a18d9492cdaa6d3487173065693e8e8bbd529f6db598861064e661b291aa2e99ad06b68758c327026a29bec2ea25588410646c8b7c8223d8a7be963e0f52beffcfc5448dcc4c0755f4f1212e3a8742218b8228b2bca61214618d8ff37554992f36dc7c710030cfc77a9ffb652e954b03821c6176278c1627481bf54224482c5bc0e0b17b8f497638863ea7a9d696102b4808d761c0ed0fae24560c3d8e857408c2df0a5458750c126dd6855530c2d709a17643e59326530531638f9273404252a2cf0a9952737d6e60a6cdaa01b72e9ef53ed5881bf524169da8abeee688c2a3066e5db9d1323c4a002d7b14582bcdc2a3a79a6c0b98b4c93649048814f4a4c69a94f13b2269110230a8c123906ff536a200614d8acbdd096423f5469623c81d3c95e7ebf5da2fad31ec470022fea2a9ffd26f79cd22670933e555a1eb37041108309dceba4a0966fb4cbcfe1c5166623c612f8a44db7de44520d2d74438b942188a104b682fca06267f60b3192c056a403d69e608375d23194faf191f64727f8a8c1f6befe46fb22e0a2bba041727c70a23e36c17ee54ff24f928e39080900061f9ae0f48da72cdad78ee223136c1cb198219fdab8f89cf8c004fb5d5f265659744d870c1f97e05584a6077551f3326d68d15dfc0122a057f8b0041fd9d3f595ba7896d34a301e3d84aa46ab0c4a4909ce73dba98e212d4ad056671ff89844294f6e52a5b981430b6288f89004276b34284d9f544cdae7f0a28bbec147244edd25fc4f977b0c143e20610e42f6d80889a3454df87804abdac9f77a27d9048f061f8ee0f3346868539531af683f1a610c6e79a4688e78f0c108ce36a8a82e7e9afaff8f457099b27490134b648e8a193e14c144d7b8923d7a12c15ba67cb9c3d46709e61ae103116cbd55ea8954495a6e3b848f43b096b464b34a664aa6e9c310dce5aff64b7253e5977c1482ffa41b229b8e13824f7eb2b27aae84f031083689525252104b107cf8bd889e8614632995f011084eaa4735b55521c505042751f463d829bd60152b1a440c1f7f6082e5f7eb7a8931bec90a1f7ee0227b85eec91d6ef1fee8033f49d8c6ceb9d72ffe1f7c60f732eadae7d2223487e4e0630f9cf6a7cd13e4e8ec273db0fb5e166447cf1b4a7e238717c774d16fe36801821b5e24f2898f3c7029f259fce482e2030fece9b20cc93e4bc5c71d58edb11c96eff9795b2d6ed098c2871d2c9d5ffaee3f754e2aab03a34fa37aa55811b72c5c6871e3830e5c0e994f554ef0d23721c5ac96c4b3ac2469564be219161234ab25f1eceac899d592786665c4cc6a49bcaa2265d604c0141f7360437b298ba8594b592f074e65d19f3469d7f4410a848f3830b1ee4b8aec5b912453012cb090c1071cae0831a2580aae21ab55f9f10626e66d53968397e3c30d7cc86e5b22bbe4c8687061021a83f86803f7df77aa91563b85c706c6425353ccba7694fdb10646e975ff4832a4064efd5be37877da485b1a98a0f38e9dc8213470ea32e7e474bdd37a9f810d96b348b6d790983166e044d988e8df9cde6796814da732554517c9c0de9b78d6d0ef630c9cc897c5a39fd0b668137041e3060e6d1354e046045cf02106ceff45f88f8c1bfc4e1f6160cc7c72854afa7d2729f80003ef96367f27593c8d200ba4a780f9029b16e61f7a6232458f1f5ee03d64f0cec973143da11a5a07d1e0a249715100157c7481c9f95d1ee37692a7834ef0c105b64d74a467afce19f38f2d98c27292289a73ca906c1b5b8ce0f5430b7c54bded564f77593b1f59e0a3c760bed63b21288b0f2c9c738f4c275d92f60a9cbe5215926448305589e0c30a6cd4bf208409350e1ba51ef051053ea8ec3189680753e5a0c1452f1a053ea8c06bb40a6271bf34be680a4cd690fa11f2a5d7a02405fe5b3fdfe367149542386e5c3dc20101dc8f28309637f2b677c8916afb1b26c04103471759a4001f5048a7a4cd644ace9da418827e42795b534a22e9a4bf72c2e5b55173699b8dfdd1845454481b35a7ec63b20f2614c574aa9c7582289f2cc1edfc934f54b0145df3a104f6944ae93f2388c6b4a1001658780e2cb0f0c04712f8902a78ef57881a2c0909dc8494baed92d0f61784818f23709e7593b4c4ce63ef31025ba9ba4e787a0d4d3245e025e9661fad5019aff241043ee57a77fba91c9ffc1018d593325f529b4c3c17c29d2d967f50eb471078d3a29e2e4bce3d3a42e303085cf88a14dfcb5816493fd82b29cb075c86084a834c9b74e7b307ac04dd2773dc3b33a678c066d4b439a60d3a72867cec8009b124880a2a59b84a74c075b609b7933f4266cc7ce4807593496db23cfdf55e0d2d1a5fe4e81b5a9cfbc001137d8236ddcb59e08bce91a3f30624f8b0417ed48011bb4cb77ef7be96c7400d2e5a0159941d3e685058dcf89801a7922cf19195ed92954a918bc2870cf8a42f25199ee2a5ec120c38a0ea071f3160533219b9543b8d3297c6165ed010010e1c3674021670c0150e3025f8800117f425b9d71a7f019b7531ba9f24ff4b7db88009f67fe7b97d34892860eb20087080c6013e5ac07a2715f58410f693a235f860015f5a536fb2bf79966cb4e30d045879ac824d0d93646d2a8ad25ca281a38bab47000e0b64202fe0a10a36c4fc3cc63b956f7b2a383dae7741d5860aeea2a7abcb0aba3535a7e0ae7fe3ee04ddd1d514acbd644f22544474ae94824fdf5e11e487789082cf262baee85ec424b4329b80c728d894a145f6a877059d7888824da766eaff9f992e29148c7c8d61917407148cbd77a890e7415bd44f70969fb266ce57196a79821349df4fd60a9dee11ac11f809ae13dc5fee52d183d29b22a88616728273519ff2e8aaaee96c0dad337226f0d8049feda56468f09052e40fe1a1092e64d478917457b34a20904526b874198209dd1f3ca698b9830726b86caaabdcb2b2599cb4c0e312ec6532112fdc735bde070f4bb4a243963409b9d2e286175bd0c081cc0172e04000178578548213211ec56308f315eb0b1e94e0fdabbb2de54b3134ccb618013a8f497042c7e4e7d65c4bb13d24c1ababe5e8916975a954d091c123125ce7a4ead2548578a35348701e4be654d95dbfb3c686c72358cd41bd77f4ea9538312b0068c1c3116c5095546a3d1173b4de084e7f0cf9726a16dd66a9a1754516578ce06d700defa20d4081073c60cd3082bb1892121d7352754ff0e8060da4c5221839499a2ad35839828722523977a604214203073a22782482d39f333c9adafc9d5b430493de2405cb1b72866b73f038041f1a63922055546be418825d5149e4944eae5b5eeae051085e949698e2af4e084e7592a7b28d926d423a08265a3e5116bd3206dd0b82cfd9f2c5e8162b929f23f00804274fafc6ed6225530d10bc0489717b4bf4e7e91e7fe03fa995f776a84b8f993478f8810d2a34c60a2ac5b5df1c1a3cfa40cc5189316e928bf3e003a33592fa7ce5494b92ec81f374b5e62252ee49d94578e881bb90847e911483e413f3f2c069108d6d19c32a473cf0c0c50dd2344d145bfb60c0e30e5c05d39ba236ca850d1bad40f0b003bf125d4bd4efaa07e1d6814b926ba25ed64f4a4d1e746075fff326fbd4419ad6068f39f06a59f485de9cad6dca81770df65617b48995a7068f38706ddd7d418f0e0e6cf0facafbd74a9e375a78bc81af366529349bb8eff6010f37309ebe2b3305112ffbcd3078b4811565e51df26e25cd0b183cd8c0df989c1094aabe0b560d2d23038f35f01749fdb3685878ca45bf0d1a88030f3570d1ca829955b50429aaa115f04803a3ef4175eeffb14c5b2a3cd0e07106d6e4fe6bd0e75d6181045c41812bb2b8c2101e789881cb69da16ba4248a21a44804719eacc493e82331a1e64f83d77b2cf4b3f3971f01803a3e3c7370dcd55c2430caca40942d677b5a66ac2c0c89c96fc53fbfa9b140c7cd06d9f34678df8f90546d86516cfcf5da93b2ff061ca32c51ccdd839f1e80237667263ccde49aa4808e0c1054e9a722dfbcccc3721e8861708c0020b83098f2df01d3477a8e89fe5f0b5c0555bc88a499a055e3c49931d39a53b49b205840716f853cd2cd6797367105d81ef94ae4c58ccb102a31d3f6bcd3a55604df3998ec15390f43715389d258a4c23ee14f8ac29a287a0d6d2ed9402e3a9245d30bf14b4a6a2c05fff98de502aa798443ca0c0c70f93982db94c5348024ff078021b427decb59b14ff6f0f27f0392ce7c97bd16b94bc0617fd0ea804800d3c9ac07f9296ae9eee2d395f0f26703974d8fe5eacdeab40d037fa010be802070e0a7c173820e0b1044e92dc5049b8293729391e4ae0456b788be55393738f07f04802275d72a7b0faf69445677ffa30c003096c862c4d3a9850bd913f02a78334ad29ea87591232029746ff7d537b4ecfbd086ca85a9224b22455192502df2d21a5f57c9bf22c83f018025ba254deb38e1b646f8839c043086c5a0d06a5e0bceb94903985b44d49c179f6cc7b9b96a25d46c15b0621dada1405a744fee4a6fa50f01135c90a522365ff40c1e64f4f51426c0dfe9d4f70b741e63c9e3e4bc81d4f70325f1aef3b4d9dd8e90417d436977d8913ec760e6116692c07f926f850d2f22fd6890c724d2027c7dd94ad6782af31614ae428f2d48d09eef35bf6bfbd2cb1be04ebbe29e99d8c2538d36317cffbb7b2a6127cd0929b52ee4a522f257889f1c37290aa9bd749f01664e7345e694f4525c195752891423412ac86186348a73e6f8e90e03ea614cdfd477ee91ec1259d630a9a3a82cb1aadb26e643c6123384d2e9242e45c6a152378d19226eea417c19669e8584e5a114c1edfbac876f254d289e02c8fd958dceacd2044b04987a4ea3685ba051d8209aa69edf476103a3704637aaf3c936d50a253083e681a4dd58c2104f7a2da379ea4047fcd20181bb9396f9fb4b6d7582108d6bb325fc6131adf9355c406560482bf11aac5c54b407052fdd497ba0d42af7f60342de3a6fba0d49f7e6052cad85bbf294e0cfbc026115d545f5a0b593ef05731dda6e655d3dd1eb8d7ee8f9e15627c4d0f4cce214a72f1dcd2e781491b9210195478e0f39576ae2062eec09bac1c6f6c62ecc07e2ea5230813bf50aa0327315e3e3d1dd878d629fb2ed5a53ccdd01bbbe4c0c83725f404ed15c913076e45a9e1c0954acc0de9b26fe0749970d758f1cc94eb06ee56cf4a5ffe3bfbcf8a367095651673348fa3ca6503237f5c37a556661e770d5cde539d6d62c6da70d5c0e4e45b59279b68fe360d9c5d9a328de6a5ec5b343021087d3245b667e0821ceb0a32ac4d9accc0fea9ec75bac1733095810dc1c5cf45755ff0c9c0a62ff1d40d49abde63e0530c3a5a432e3f252306de538fe508a5daff8681b31054ca985e30703e4aba8fc8cc21f405468a149574de125e412f3039246d5e3ae5a025532bbac0875b2ced0c41bdc9a0da82155c608469d07143740b5ce806f3b0b42d5dd2029bd4fd7f74569be4b3c0660f1d342bbd958f05366cb5a367a858710546650d2295d235ff8cb1c20a8c1c39ea4f761a15761578532d16b2a6ae090d15b8b4493a2fa353e02da5d3f0929b3952e0d2c7dfd16e89023bb6d921ffe4202457ac8002fbaa1625a9afb96dc58a27306a92080b35feb6bb59e104be72774b4c42574e59690213d4872413783761caf49f96a7a025701b649fce7fda397225b0219965a63fbb4d3d098c488ea179cc737eb00209dce998beb4531b847e04f645088b315ce4a61881d7d4a232e5e449534c11387d9f6ce344cbb40c11d8fed2b1efde1c026b5994553aedd9bd9242602b59a8913a9a27951904de244bcc1259753a4c207022f2cfa2a994f6a9fc01df9d47737dca6fa6f701275ea72d899a88fbf7800fb6b1fdbaba1a5a344ca110ace00117636fca7ef91df0415fbe5239a5bd1ce9803b4fd6bd1a5aa4c673c08f674b9a43fd76ece0808b712b9a08218d48ba01af167cb286166dc0a6f6f7a034eb82b0a20655ba7439bd5c1a3032ef4e0ea582d088ce8031999a4404a55739ca80fdbd570b31c638d1c31870324d1659c1cd5e7f187021825f3eb59f9205bd80b5a47c535392152e60f337c34478ac68019f93b0ccb86f7521c70a16b0295390a4377f37d4abe034f4cc6408870d071019cc5005afe96377105dbf6b2ad87c196216f35348362ad84f314b5b226e329d828f94d27608269ea9291875c293ea782918f13849aba990820949338a4adcd041a36074df2bb3c4e8399ba2e04cc815116f73102b43c18b509b8450fe7b2650f0318212a21d84d63c7e824d516477775e8e2b7a8293492bc8dc9b5b31d709eea347f2681a27d8245f44fc0e3a54436e136c56cd90da4a9ae0ab3a6f0aa64c70f69b63eea531df8f09366c5333d7a4dee79760afd2356b825097216f09f65aa45dc4742598689fe9cba25ab018a304bbe9e3498c1227fe6b936043507513e48848355b125ccca4aad4dd48f017c352abc7a8396421c17528a1c646277b7c98f108ce4c82f96d2e1983c511dc89949dd63ae94b6a049b55f4fafb6404ebf7bba55ae7bd61d7d02264063316c1e43831f585c7ce2645f0ad9eb3e913c1c5a0761bb4b8bf88e0f7cbda43a4ded4db21f8f813926a68d5608621b8aaf449ba8e6ecdaa108cd07de579b3c746cc200467a13da7e717bf11b141303a8e5fb264972b82605412ff11f12b104c4e93a46ed7a22b2a80604d8fbaf49fe36dc5ffc0e8244205d97715fff60363bba64f4fe8250c33fac07d72157733cb273da2c50c3e3049585012e2a6f6c0e88ba3520a9eca324f7ae0b24dc5bfd2c4cf6ee5810f32e5ff7417ffca2d3cb09d25f59d091147a675072e5433c7b074ef2eba38ccb0032bb2edab4e439d5d07468425dbaa5ad7aad0818d173f5da8b4bb53ce81ab243c5d3d72604b96e8eee4e2c087e4e993b449cd2738b0e93d8dae51db8c37303a24a43bcded24720357aa57377a169ddfaa36cc60036b4927e61027846c4a6be0d52575eec898bf2735709f6aa23de952aa4769e04bfae6a556d5a4ecc40c34f041d4fec8989372cc19b8a4af3a26292954c4cdc0dbe896e44dfd2b9d3294af2be7b6fc2103a3f535a4a06fc4e3660cec6f922155452f778c18d8947ff1477a5b079375614618f8b03e1dfa73585e060c8c0c754244d017b8d5a0556376bdc0eec5a477a36756624617b84af5f89fe55a9ec20526ed790eef52c233dc02d7bfe279529756cb30430b5c64d537bd4a799e2cf031da49fcf62471c3f3851958e0c223c75cd18bb9bd2b7057b933a6d46e1abb4641ccb002173dd287a054053ef4a3d7c50b69b1a202b749ef77af765b690abc8fe8ca9425e5ff5260946a45bb5a6b70d136b8c002400f664481bb53224a749ab609215fb40d1a65a3af2630030a7cf0922be2b9ebb17b0213b3937a4bfa36c30c27709da3986ccd23e9b37485194de06e54fadc19bb42c821263042ad3e96dcbed2bf49c28c25b015b42a24ed29640fbe121819f7f4055d229ad2d3083392c07d4a13fd1fea5e620609bc66d7a4d12571cc224b987104d6648f79995750a53c24cc30029b332befe5dc4a217e3430a3087c36334b49ae1d811944e04753ce963575fedd8af660c61078ef4c2225f7cdace0f3608610d8fd087eaeb9450917043382c0de272f8bd934a5d2da096600e13c30e3078ccc9e2a783667f880dd979c63141fb5b0b1c5166d5682193d38b299664732d50dcee001577aeabf235c3c179fc36cccd801a3f7472d57babde64c0d2d522198a103ee447afb4efc2d9b580ef80df1636d8eb9713c5f430b3d8def0247098c093370c04851d23c68edb82b4159987103362c95e67e48e955846cc09adc5442d3e50489755561460d1853f77c32c7a073706b060db808e621654cff0cd8be8a9c629fd5376635b40c05da6e304306dc79a84ca2f44f0ca5a5c28c18b0a1c3b34dff88ed8660c0c94c62964707fb11fa0bd8b8d94ee8eb522723c5058c7ef7c82b612644c41670f6e92cf60667b0807deb2b1b25b4498ddd2af8eb4cf5795db4bca40a2eb2564e1194aae75da960844e2a479560a3c29cb3a90b19299b3f82be41434fc12525bd536bc6943a1a680a4e599669889b24960caaa155a5605b4fd4450f3952b0117256f718ad521ce528b88ca9f1830e95e3e7d0133e44f1e4cf514f631c3e42c1a7952022c7d06e25391fa0e05427af6c69648e102cd2828f4ff05ea22d9a028db4a8647145e25028100683c1601483305c68bb00c31308001034220e06c2d1804013b5f5011400044b2a204c2a301a222414162c160906c25028140a06038160200c0884c1e060501c0fa73cb317c52854e37011a6fea8c000700a21990039b006bce78d770cfc7ff7fecf8a1c83eb83b3e04f7cfbe9a34f1026187dc1293211a42921a730e0a04e307de1af1c60d36a22f4277848f8e78ca422104cc818654db818b95d7db180dfdf177995407cbe78b7a13e0194f0d1c1ff63111b3ac403733b685bba013d389bdb05631bbeccc86bf3d31df73a44c36729a247e7e797d01a1c96340b1d08eb00f50da9c132c09d22ae4248e9a7d0802ba7ebfc91837c15d9005d90846f60c32a5506c84139f08080968a2965c538822b29783f8bc69ee81d42fe1c77f487f840fe0da49be85bd2460d9e52eaceb97f1e3c62f25ccc1f1d8bc7ba2be9c673e9c03ff11b60c968f70b0b17047d82ff82a1c1d7c03f30ebe189a06fe322e04a5ebf6f4ff2390c00908771e6d5b42af5c00be1a3ce0914be598393a04a8d8b7673db70b8e3b7d7c0378c126315a9a0990f1b01ac621ced048538342272d5d0472c640b2e351b73fdb8b1e1b3219146b1efa9bd6b8037fa148806a9c7e1d76deed31a8c26882820852ff6a044d32f43805d95afae29a92e235966c92aed6faca48a432efe7d00655c3df845580528e3b946f031c14f1b75c27c1fbc9360bb43b087d4b5c9b0b2172de4440f39c70045641714785ee333f2cfc0b86025e81d388871559e167594480f940f70a6c0f6f259c0dca3f402ab9cd02aa716d791ca4368e0bc600572e3e3265cd32f20e29700dc3eae4ccab0a3e514c89758c4b8c8a2a7de59db33f10bad295694ad4438efbd3fa6a14bbcd62b7739ea35d86b200e83415efbee53e491d3e2f26cc1a30e9e810308bb635cc4b310c45430aa8024472c03cc1d70c375802743e8418de0d4c08a19bf6ca31e14e0fbd517df949de112c8ac6013e5c6d533414c1e50f76ee1f5744371276372e5342562e205c0e014a7367fdef420340c0e7d887a19eab0d04e9117ac6cf823fbffe9c40d7c4f76821969abf122b72f30799982e46410a9c5255a554d11ec205652489279030b28f5345fa764938793756ffee5610ab5172b3adffe9112ab5394ee6f380ad7966b0e0319c398140295e49e963e65b9c9752e0685804707cf9543717980c8b486545579b1b3c04c4a49f2df3a5ca16d9432fbe7c8268dc9d93c0be72c815d0097a09ae04e7f70bb48505c76774b0369b8e16d0d9f271a25d6badd18220efa061c95481b0850b5e4607fd903ca627fd2fa7ce29a3b2ec6a00ee28c6aa8667b1c2043fc2bb688b5e9a590e904b2423862b1c1b77d52f43d6035e944cf973fe27b504ef8daaa71fa724aa2dd69ab719c4167f04fc1d51075b7d7c47101bd005c31045ce4235e1a0e50f5adcdf8db4a6241fbce706239cb147c3cd5ecd6e7e6342998b8a8ce8d96523ffcc51024c5d95719a75d6816349c34ddb05243484a00a0206b10e22a943e805b8b3fa7002a58711a011b2ea907084204881ad070bdf06930c0b454057218caa7a5bf931474270b1d5c9c9efe01e48aab5ee7c807352042c8083503c28f6af39b059506e1633ba2e6c4acae90ddd5ed0f12aa9224c420ca05b912d6a51e2e8078a048c2f7fa0445b178b4931a420bf708226836157e905d0987bc0b3b645058efdcba543261f0993cfac9b9c27340f67a1d40a450b686bdfb1b144c5ee605b675e18eb06a6d9c45171f91fdeb2e3a31cb002f805871c91e832d808c7599b4fb0c2b8cd0675e26d9a3a1f581a3f43c8cb3708b48a397c63b25732bd10247e1c1b365608baee72150312a79070ec48f9cab0023b6ae148dedd129bfc25ed2d8c70baae42a12076ed8060c5276eaac00273b3632995922e43fdb125069b31eed8bafde4649bee9e7fd1188aebe57296e995d7db31196449e5ff8d502305eb29dc717afac4c25833d17c527d5a7c9695f95ca55393b2112d4f44b3b8b0bcc30307a3f8112fd625d28f0546c2d3a8552e8ea9789070b6063add9bb022097816cfe95c44b3f9f04b854328a0fe5d8b90abff44e7006c0150eab9939676b23263ad3279d0edd07ae65766221cda2ed5f4e50fac98b7dea89c98e4c04af968d814bf53bd1c3167548ffac079d4292b215f77704636d1d225c4fc703de2eae1131e98f2c6179449430440e3970fe438290e7cdacd1fb799b630f11a8e7d8a406629cfebd6bf2607705a456a759fda9b1408a33ae47642fca3e0aa81957c965bee1624299f0d62987bf30ee2f2934ec6696d033867e0b19ac24d4edac5e651704a177d1730ee141d389277c20bbe697cc954831c86c60c1461d27340cc0b55c6676a44e1bffbf0a803f48019e289e7974085df1042fbedcd9fddb7c8647f7bdf6dfc3c82c2afdb1e37b11fbde792eb25696820f51c1e07d91fed226a3fa75639ac0252b5fc1e814ec5128d4163ad7102421f0827a593807864eebbc0de62eb91435b30635660959fbf2cc0c2c482070f6d585f2e14db31898565425b63cb7d5bda0d6ba8846c5439ef6dbb27cc5795ce775b61c53eb1558d225e9f4bfc9e3dae7b644c1b16009f6e7073c4c22e7b2ca2f0183ec551c57865f38e0d581304bf95d5ae58d1b7d71d4c92775d515b6aa0e6131dc8f211e38fc525bbaf5282be9824ff08763acdb97500eab36ce541b9c42e9089a1abd23e7a8fa7f97493141d5ad0c2a971a81686761fce6df0049b6c68af1bce3a1c5d1ecd3059ba0e0095f6567de2e7e6b07837fb7dea1f32c6f2d7ca9a2d434d8f16e0380c3fda3f0be120f4d0c1dc5ca86003e330064aedd727da5032d9a4345c8145bea77f89110a2200ff81b304426ddc0b6f287a5271fe91b2a5877cf81c4c4476ff2ce4e6941ffea8e6c96e8d01d14f678111ac64f17e64ffdf2cfb0e090b2b7551bc09a2c51328840b70f3c5a8a49a9e82e6b3b680309582d09e279528c2812c899284fea98ff44ebde8fb1078361393cc44d0ea89d067c60d99ad0c5d2b13417d1c1c263d92efe04c77942c3da10455dc98dbab9945fda1053431e0bf47dd85c3649ce5396cb570e31e362e2664d211cd94902e3a67ede1fc6bd2a3974bc720c15b4610e30348d8bdacdbbfbc27e8088473d245c17bec6fa5afc8681af075186121616004a46e4b73289312a7d029ecc9eccb989943a8ec9b776cf7eca82f9bbe406a01bab3cdb48609007dd6ff481d6f7b132c8344248903aad53f47e369b7f52ff78dea5f44aabd05aaee88bb72fdffbaa678f04ec43f08e98b707192c8f84a5592f1a2fe712dcc3f588a7352859ef9002a0d1c0aeac68fed96a1548f48df8e5a2a962390a27fb42679ee8e9e3f45385eb2d1c1f6663d7590407a0767c4aa2bac953765980fa3cf1ed10d061dae4a4aedc655b41ef220672cc2364dde328c94b0ac37ef3eca80f37a0caf6fe62b5272fe3bdfbc0315d4c542f8888104d5dbc84bca5e5e421c435a631ddae4b95b1dcd8c663420d46cd3d162cfb4d42149f05172d67b3484bcd852a03fc6f5acf54d8964dfdbdf8759234d0fa5f70a89e37ada321bf8ea3714e7f0e2a8ae2d17b6f63a3b641b1e7c16ae17f68628806949141ab0466a3a50c400c6c883fd6c69d2306368961e035e044b92e186b4780660342c6d6ecc520b6af02999c255e9fed4c1c84178965d4938ce72e4fab11d8c2306abb17dd04240e855f1a3f99b3ff841819e421b6f1f8f0d37754571e1a1a2454d08efdb0c79dc4f0d9702727383e7588fe740879b0551233dec1fcb016adbe5600294dc362ff596c8ba3ecbbee9fed7ea8e92691251f7424b0d12a5a105ed6ff5498ad1138ea4bc54cf9fdc46d55097d6e348ec91df150799b986b565f6f31b0f37d55b454bc24a2ba6aed0e8de3d49f241345ef8ab58e41dbf0d052e2c7594a430b2431b97b8194a8176fea2585d227b70910838dfa87c6260d977d16b7c3ba7b543a996a0c8658505ce7f6acc4b4aa67afe8867343a73004fe39bb3c4f8632a8234aee7f218452909f811706cedd1b903e57e517fd0d4e0c41541775a4f337d08cbf3100306c929fca530bbd08f829259af85c1aabb3a40f7821b1b37eec33ce6c58d4832162f06713809743042b200bb943a26c1c9950a829c4b67671675d61741e049e708f7de602af96e0852f715b0609d01ba83f68ce41844a8fc3a4154384c7bbdad29dfbb0c13452b2720070ba2bbf1c694a70551e745c6a06ee102eaddc84d150d70e0ff2753e865284bb5470a0eb4b8b98df4e9189d931fcdb1e2c7f6785c701b9907659a01eff2f60f41cd73d080aed2fc9de3272ea9f0d86e3a07aaffefddfe4984cba9d450404f9cc2251427788e7abf3e263832785f6c4ccaa5aca6d5629abdf7133d5eeb1a9144fb65a5cf3bd1403de55dddc6a3e9f86ed5c4a451cfc051924a0626aa62e310d8ecd93af1830f0dc355f338ed40626d898727470a5b275c5e6d10dc27e3319370adedd594e5a84ce1707e005ecde7080a103680fc79c445cd1086b6771140cb0fe11a084cb931df36438c7e58898334c4a2425e7e5cd51cd0034ff6b483206503167a8fc3a9b716b32a7c49c8112c7d2557e745b3723e60cc8c9b0a7e1c91638b67aa2f612bddb37577da92de22c0191555c7c141a814a245d33e8d42168e563ea09a5bdac4bb89630cbd3a64de1146eeae074621654114063138c1555c2a6550acab0aa6b2d25f7f49103cb7ada78d2b771a5d3575a2b32060a358310a3e31531a2154329179bce0a03799bebe0acad71ab763ac170b129375c5867b15ce5a91b3782cde96f95ba9c1493aea11c8ed7607589fde1d1ff67f80d82a65e3a0e09394a81c8a93960a9bdc8a992a42ba7aab2393a256215db4140829cdb010ffecb90954c0c30f4571ee4f0cf26f83b26dd8b4c795951c445079adca832c739c8444474024b9234ba818cf6bb70220771ec067832343014a3dcc596b4fed2b5e5d20d629ac71c055e7b7ed0ced3b116f5aa337fc776c0628dc2e50c00a7059cd8db864d1b9d42ec52eccb649ee79f456ac74ffd16fb49632f3312023f9fa90be3471048d55e12f585641b23cb6cf7b1af5c3eb9c61b8cb8f362f12f38428f1dadaa5249f1de649d22c0354f8216cbbccfca069086f907284b6484c482e06fb25802abd9bdb54f4abb62da6596bc2e768fcdfe7b1b70f1a6b0c0c158ee5b04457326bea568b73211690854a271bedf76eb4c33b34e425441d6b340ee63a748fd4e4e85a1aa08c522804e24657d744bf573abf63ffd307c2646b2d5978cf87b28df2202358ea5df3ce9b5d1d6e4b189600ee24920c041838ad41d371ca12da86ba943071b1660e10f2cb7474b0331e1f69636873f1528c83010ff97c2338d2d660d2d89007cd773845a12d7217d68c3a2995fdb7c11e31a1aad5e0c643b3a911a2995579de57a34d26c0e18f8c9849523839fbc1dcef97603b39cce36df835ca94e9a19ef144e20e1e1d8b34009fed719a5c64464192f4f178d62258099a2edb1181901059c3c73163e805f2d1136de65931b56b75905dac14d90b33d1ff439ca25a217fba08a3580c8559b9ffd8260e510adbdb0058cbc5317d4829de6e3f4be0becaafd68f8a9d65458e0b92193ea4a3336443b2f0c8f846d1e7c1f1329a4b8caf746aa2650277b5492659a4856c8642da72caae924b4123f50993adf80f23329b6a5c650c65a87b9467c832a277d1c749f860432b0baf0b3923810e09cc3d6a68c7d9d152384922d0cac6326c7cb72201486cd0f87d248fe39c2ebb3624fa6133feeb7ae2601c4d9db9f257a6d634485c8e60806401d6ab4231d9a9c24b13d61310ce692e61bce7e13cdf6607855f77a9526b39176b838633a1a86e30b0107551aa8f6999c3a85063e9bc5fa822224a4d6dc0b2c16ed719b48ff0a9b12979d4480356975cb983f8280458e00714f60ca68eaed351e73b99366974e8c2805b6a340270f2c35916eda76f4a205497fdd5cfe62fe0c1f400f9a5c172e4371a78a1ede8c2c226a559e7454f451f497f4f309ba5c59fb8abc6e7aa96c3e69df9fe609b6d328613e78a8001596e7dbf5e5309aca29253131616553d172899b549409345243e4eb0f522c6eb3547663a0852423b8a04dcedb5a940d0da90b5b4fd2f36e82d4114fc4381f9424d93a7caf8a4692c46a890a8d0e13a8ba088d51a3687c8ea04d707d8ce646b5e54d9fb94213a3ef8dedc322f2a1f73b0c812f9bfc90a2ad371325490649b61af9fc7a70a25e3d46b146a9e23155ce6915177d8b314ef893a936f6b64c553c86c525cfd9dbb296574bce1ac3e2ddac2a21ab9bb34c6ea9d3b598d95de8db6dc64193df7d54d1102d72c6ce26b5c777c3a2cb29c48685f8236896bff0fb8b30cc9c8046007564374f8c6f170ad6c138bd6d60cec56d3a439a99ab93a2e711faf8b6b6dd9ec3a42787053ab445ec73c61ef3418761dc98d55a6f1344295aa5ba17e7cc5d1cb64c66aefb0ac6dc3d2bb0a8f12d5900de6cd8326bae040c1b77133eaaf822cdcc70396a64a57e29568a79c040cab082f241e85bb215bcff834b333eb58b2b0ed8533f626cac790510a947e370e0428e408b4a614b1e42eb3849168584c0835e47bc149869aacb0aa163e9d8ec9a2e93b2fe4755a7a2bb73ac2fd94127e7d8eb5388d28e8cf39231de7606a14d499a440b14ee8ff626cf4eb4cf34235a2bfca38b196649b0872cda69aba385a582f6076a3408fd6acf0f2128be381f4e6cd18c13fb6c1e5762cadb9adf38965dac710adf0edc4f286c2443b7f1395eef42c225791b9cb28de8e136910f1759f3099f74f6e39aed9c30f54900fbd6a33ac9c8cd13114275e236f406e953756fbdf465b6365c51fb53c3eb0dd83fbe6aa5c79f366f31f3d8d7f65b3b6d785ba2867e90b70068f88c6b553184a498a9d43c1fab5c0547f3e98f741c0c645c309394db886cc6c97b08511f3547da72e06dce8bf58126b163ad5a5dab1d1acc75296ce068a3a80e7e2b63babb79091be91088f6ac5d6e78e006d94632f3dde5aa915815a51320a5699e0d4aa10351d0d93801b54109a48a65c474a61406a67fff86944215a00224b5b7a42eec1a381754eb6d50a5fc99da4a6e514c07609d36def897337ac7f81a46bbc6e8dd959ba141b54dbee903551a0e60e4228457a5705540a8120db8758d942e0af0a36c531835449e09448e2b129d18bfb8baba5f9862a20b698783bba11bf7af873f7e186e025448f0d005ea6004173ba471aaf80d4e8062fdfc4f96a5b8a5082c1980851116b1188fdc1bb4c85bf8d666d536f0e4a0065554bd6b915be62029bef47438df2aea97c3decbb075d3d88268d1d1a3baf1d12743371a116ce08dbc2705893aaec0c5af831f5dcb80ae5922843d9ee6b44a42f468a869f77abccf0a869f10fd26b97fa3ae3b2173002738c064f987aab659b9a925f92ba9c211f39e56f3373fa01631e64461a7fcc564f551132226b9b57a9dc3c585a054cad5913ff2b49aa1554201ba73e4bff5ec15050cb63150a9fd32b46f683bbd9b11b3efcb63a3bacbd06c0788e7fd3b8ca533669aa41993fe4e077454caacfdd3547f1e6c368baac8374dfc890e80fb4fe25c2249a2ee6f96934ef8eed39950305d09f4fba17b42da50f4181d639c8982aa0326e38e71716bd06a6586b87b597f8e94c196c46fba2ecde71ce241ac9aa6debc42359ea7c788395f2ce6dfa4e9ea7fc05f0f1aca9edbd9f887fc541152c3c38bdf9bef350a278e4218b75e68044e194546c4f8af514a9d58eec9fe29e7e98b13d1075ac6ade5d4760869007ce7def5a26579baf3881ac9365edb9d3bfff264ff2843338f71ee9c5e8d8ac77b3aba6b8b7d8909d9d7aed874b114212e2275346b0cd66ba4e439276a157dd8a1e59eb86a67f3c449c7138b48aa422893a53ec6a9e48dd897d9a7fe3ac25acebb1f1bc8f3f7680a723ad773ba4b074c00feb607e068b3ac85dae66a3c42bb764dbabb4fa77762f9b1516eb93c95ce0269f47f71740d09ebfc406b90cfd155d0b0309a95af663f40f7a79ab51a0a174111f08c64a6dfb4064fe0c952176a060a52c7a1f82f711f02491793b4c52808b932c962e8190a640b57207cf35b309a2f4838bf60ee8a543cc0db740665b5cab901e007d7b21c0bfee2212bc5c4565661a8f5d0a05e39831ebacf3de7580549e50039a1bc1fbe3bf53ef158b22f15495bca32cf4cc3260d46b1c9c77505fa70cd41e2ba070b3f05c77ce3e48075ced9cae069ea204cdfdb51aea78412c96a1eaa19fb95bc0181c86c17c19952edb4d680e40ca99c2692afd4d85098c3358930dbfaf2520b024b53c8c1645c9ec705ed5f7810178269994fa7a678b23484bb8134c1c5fd2167c3fb8d1e1a5a21ca3436d832caf7000c76a790c72a06bbec03289141093550c19e90d79678fc792e84774eb97cf6b7affc282210645c9f3e68da72179adec35663ab2c83eadf10e30a105226550a4cc6e469c19cea83f5634dfed21de9c94ef79ae3995bc829fa259ad22dc90ec99a4bfbd37648721d69b7b45372cf53df3a690da7b5549ee40293da12885b904a4da9564651e6244392f3248152380900e947c96ed2bdb506728c8d644a124a12270991ccbbe91e2e2136ab7f554a9581297396639239159d388c10af94502a4a064fe6ad3c76f58f18d5733b57a4a90aa8f08b59f9e1742cb34d453ee32131451aff915e0a41126af2ddcab7957eaa5c140e697749a749f795ae957b4df5a96156b1a53243391020c6807f0d0769e9b50f3e00612605ca4bc256f181a7a8b02970b4337754eb2c7cba40f87d7641e6a8f3a758b9b5d954fed13dbb5393318d46781c9ff964bec3d79a3cd50fba1ede66c6045e1bba430e66dbcc719b4fc5f13561048c82af30033fa1c2e2e932fe4943827a847c7c33867245bafaeed69764dc9e4a16bf8b9232d7e43dea4e33a0c458658c9dfa12c0c465a631c6c1d6dd269f9f941ef7c5311c42fe5ba6fca5aa18acce311a0082efa1b014a70a443961c8aa1a5f7aa1e8be18c6bf9f4b8adccc9061fde17a20731566063965601a992de8b2051215985866f2a7f39f9bbd3eccf29377c6ee70c768756688655af471c8f601a63ed9f84909a801a7f6ad49a022a38db18171cdcc3bf4ccc3d3727432bb18f3a8c94f1ea8d11d13f9303ef17c6703425d59dea309679eef802d47237f742f5b0d26a3e7a477cf6b42bc43f2c4a181e290c3cc42deaf2e8989f97d87524b407df31d9e08a66acac4237ffea8c8e595e779d03b64a6021ea775d8f093527c9c1b897a14e86e43e2117b2052b1ee0f7395723d96d888259c5e4ccf08b49556b1355f5923559e7fadc86999d6ac34ff8ddc53945e0266f0bb495f15d6a6e3438a69d0c83d150fcef98b0419e74005d2241358e196c9d3e5054ae0e0298b095f49bf4e024a3eb444c5efb8b2aca9ee80b0be61ececefb476b0afaafc5dc473821ca289beccb9866d79b47b554be122cb2b0a1c232f16bc859e35d45d6412e309174c641e35c4a610c9928edfbf3a41e0d9a0f8505b9e11f3981db17b1e616cc2ba9fa00392c6d95efae4e810b97f08a1cbe5073ed3a811846e42ca3b7bd1d69a0842493de9e95c6eec9b591ef4767b9b9147512cef9970239237b9c818dc13d63568833adaccec00dc6d6cc88799a22b74f0f9d3b7eb6ddae6abee6ae3ee2911b6cd588317490719154ab2f498c0ae053fdfba981a5c22eacba5027e410b3b9bddd8d4e8a2be342f9a64284b91d5f2cf2a42d96f799f01d829f6ca9b36df0472c149e70db26035b4447dd7b06ce433f2062720a0a3ca88d355b54fff3048ceacc407a72c9566547ecf3cb9f195ab5ea909636e9829c0a9a9466d89bd7db21ecb8235908198ec83341d383ea70735b417e81b405689908e5ab646fb2c452e1181a82f72c77e6f8ef3b9f11cbfa8117ecef3acccf8661d190a38e0ea1c0c6c5673f8199a542d3e0215b55faad7c1ce61ec0d1e5348d2d882ca532b0d16d62d3a8084fbc3850ffad63f2357d05b404707e9acf09878f4d8154c63e5dfad892c1aeb5c72b25016ab06d225f0e98bb0b5be7b50b2a98cc8539273fa90dceb37a2ed3161b25468a02fe1532d8103e849ea9fd03dc9de78f55936b8dcc93944898be6f133052f78001ffdf74f0f911cc9ed7a715048284f89843136a50d382a7e03432c5fd81ff248405afcd80a464c8bbe1672bbbe81c2530c003db44a34594e78ca018890df7f0b5e1d8a59311f234e6ba1f43dd12b6569d5349da81b0332e9d5f4b59a98c4fccca5c09fa595f8a9171a6d44f993088492248887dca0256141b3b5ba6a249b74ce1a366d74bd811cda4089c550269095f265e1996ef2f87878d99537eff62bc039952e51e9699298eaee577347c6bccc7dc627ad645ee2849968cdf2e676c5e6dc4c00c1f5ba1d8d91f2c0504b6fbc1b7a3a76cdb9dc1fa9e1986662119c068e8c2638b307ea145e8e2be8fc3d920a499958cf669fa128af7a05130f6254c7b891fdcff7ee54c8b67c6753b5e3f63c7e07ff94e831e922a1858f1402d17d88884cebf794fa93cb1bf9184081398c40b66586187d35f4a3777a360c91600ccf8314118a0ac50fa6b34f9a65f65f6408e5f5f2b71ed9876f19d14d98a10b244ce36a620363468f9851cc32c7909a50e5e3460266d4e5e7f239e731ef53d4721394ce87a2967c897078a188170920d81e36033a3b0092a0d03ba77c1d98100c3342ec888444334483a24bd15809d88c155d4c76346d32a1a2220aa653f4da5444f2c48ea8488848269f649af81a899320c4e65607c29e9fe911fc99e078cde487cb2487e042d7fe22519d443ff4d8d33e051c851b11ee6a340a1fc809bf7403173a303a041d7cce8609f245f8de01f26e8fe6fd90346e2fc04882a5ffb76b8e1ab78164d540db26e4ef256440e826b0ba5fd828561e6b685fc2c2e106170c7029bbf4783c09476f9e4e563ea1cae70ed96c0a058a3acb2e587366addc617f885135aea95c5ad74a23d761ef74270195b3af855698913eb7080fba69e765f6fa8cebdb1d9304638734b4fcbdf97718af1a3a5e385207a5660c23d2541a3b7d68390c5699366e28142cd78f92ab9ca277674cc014d820d0c779aa434b26386035141090ff773f60ad25d382bfebc0958bb95b446173d8805a438087033b14906821efd23502f73ceb8de98780e18f05e387f6b29f5f8d6a8cf2a66811fe64d31554cd85e1dbe5c141bd4daa6922383a3c83253a021a027b0e7bc2f1eba0e5406d038c7b4b985e1005e4544b9a926e88e97056d8b81a714b200148e252c947e4f8bd77c456a034cbcfb134251ded438309c25c3459cc10fa1095825aeba9f80c0655e002ebef9e481375833433e5412b46f4ab3b05a4a07323ad016587efaae93a78fae39b08f813123fca840f673912706755d388d801b943c433b80b4a65763abcb66191dc6c9bde093fd42b6f630d6b65d4ac7b08bc6516f3d489d5a543d1661827fe205151f2c49e5a6f67844e326e731c8c502dbb6cb081633210a43963feae9f0b3c0a2871108d1282b2f75e93f2212ff6a8d95c12f24bb41f5b45a72fcf4646a9cb74f915e6c66194160ef85dd9e9d12c9185163557a19af7530b2373b6b463df47aebdf0748641fb9b594da4b001462f76847c31a70539fa3e22f0933edb98b80bb49ba4ef7e8ea146d6ac13fc1bbab7de5dde04b19f03855d264d9b1c4c2d3c91885d1681210a1f035a8ea98d7be9dea0d9221796120e5e3195d6e21d692d09680baf6b6103bf602872461e8b446e19d497c16669ef9a90ca38701578ec7909d44df940e5c282d5e56c5b1c2596237cf03d1b0a02a3f63192d8294476c7a846659cf2c975cb7797b01ba0c38d58b734da32bc001941495209b26bac1cbaeffa91f89c6540a10e596e3f0ae4078f9db79b0ce9d920fb323ff7c43eac5984d2e298f5f48120f39be6ce170c4d60427999466dc55a78da410e9da79108e18f5ed1b353ba3ac49c5861cf711df535c4844fa6db627604c5c25a53c8c3a18aeb28a69c8e2e3aef4050c2779738cc3d1cb5e6cbd5e36d3e125216cf8b2d110e9dcd4a80877ceb626fc32cf2e3dd91289d7425ec82bbd6a7653a4adf0aba80acb2838d8aded011b22a08acc153e617ff6902881c0309147cbcb314e8d82da5c51bc200a260418aa41473a74c55ef92200b287efba57d1c388764fdb5f493d0ce80debd8e4230a7cd96a2604416f95732ecd839c388c618a07c0c94b81413e4fb3369b2bf9528a495e76218cf839cc1b9f067fae51e52757f5cad08d32c61ed355f1d18f2cd67eae540bc68806c68b7861edd6d8e3d01cb616e9f3d6567b43b36b710040a4c2a9216b3901148308ef8de028a9dd8cd88e4e422db20736be12a70da0b1d9a6d73adb8fa0518343f2321176b4bbae80768045c0dd890ce6b2e004c855684b2802982002a2f9a5e9f6dc578dcaec601c2de1c390c888a18103ba3ee296d56a56cb13bd70d31619aaf5817351d228f9e59c87ac743c9f05021ae08ced6ffbb8a62bd5084b1c2135b59c760b26f99ff0f80a84fb71ab2b0d5f561d41a4a40a659b14303ca703aa94e720566279c480ce0467ce2c79047db4d463cf648e986c837c55008346b57fced17da727df1cb2340f875394550ea9f950a10bb50a65ad5b11a25171edc7a602422f44f005a8881a5299c3b4e0c3cfc455ebd41fb19b0c66438736891e0d9589667956477ab38c8e5accf56f5d112a9b72f79d5435a10ad7db28992efd3e3008660ae0db44179a0a0a86362e182f175c677e5408596fd6f2fa11897de6e085e5a53ac5d52575f357670458ba198da5cd95ea0c38be02ede1132e229c31c82ef69d1022bab63799c278f2d03d2744fce19f637292cee204d100adf5f026848adb5d6906553163d2c8c3f2cde5ae096fa4e396c2d215fc496d29d30957497f2317ed9b40d186c9d419824af0727fa8b7219fdddf4d3411f47fdf5b16f6ef49f58d55c6af8e3b75ffa15441babed8e47309d9305888bd220ef7f9077d3e600428f21a5316fafefd43c3d27d001e675ef8862d6fa75296bcf9ab51d5e28a0cccf6383c6c6e540bcf869726a688b1679e10e60d2182c3fd21a77ad4c9ff4039334dcef4912dba8735b22298c818b77e962ec6975c6375f70883730f3ae6abf8a57392361c29ec451e54c9a0b2bcc7634a4a277bc70e50f0edab91c55e1346c0dde86a28d4597fefe22928d23f5b983f907a4b8d5eb2e3abfcfb6c8c4e462870e24301f55ed23135cd29f79541fca60d8886ddd91f9a484f90a3189067434d570d8a18d0505722a11cfbd78f1612d16ec42b6ad05c55340da9556277f6e62613cf0682e7d25bf9188af37081b3e50c5b8f6f0debd9135932764f44e68824d2ecc9941dc9efc3df6e2bea1300c3ebd6eea16638ffe9dd4307f4483aa6f440ee2fb0fff5739ce331f86212a968b102ca19532ee00264589707554d24062770b6f55a24ca9d97c5dc142804eebf72cb06d4a2ebca15218899ae911ece7b21803565c4d9c8bf7c792b1c86c05d09ff4a4a53502c6caf6d201522a2b14479abd235b95f5a48f34481324520d0499acb8d7630e13ed393e0a082e15b381d535266d755bb1f36709e11b7bc9113238eedfac112feccb1b124c1a0bfb986b5ec1df1cdec3467c6d36b389141cc4b4e7de2c95b91206b6fa56e6c3d5eb46ea1377782f1971717c366d9a336f206089eda64af486c48e20ef7c39b04a9671116b8dd12891eb9642556e35d016589efa36ab4e65434e253b1590809145c26d4f3126a1bb491e4034be9a2c1d4b8422e0c76280917504b748e266e26e66284357adb16e72e6c2543254d645173ceb3af230044fd2fdb2be9ad9dc56f60f0322932b7cab869110515e57f8d1f364f97a3a1df70eb9e02caaa3059512a8078da7582579a7930a2843aa2b0f4e4ec253110470d2dfe5cb12b0f30395d7fa67949888fcad3815c1e158f91e112bf617b165c9715ea0bea09dd7122352e892ea2c1ab71bbca3027e5504060b3660b46439330f0f0f0f0f0f0f0f8f314942fbc42d4899a4ccae780659ca4c292599924cc5c4edb20edc8b909d119fce4c7c3a33f10501d70a380b8f0a8c14f35ffd08d983083157b47a3aa5d423b52cc4a4158dc62a954f65b1a2b16c49a98e68216636ada239a5b9b52fc4a8a26f9117fde25ee7d7492a5a9341c8eb2c2974c451d19fea8d994a9fe7683ac729fa9364cad33a584cd10793a7d9ba2f443121257094a2d91271193dec58c8195234d2b2bba6d89f775fc3318ae632b54798ab1ca2e8b7e2e53f968e5c1dbcc1118a2625139f2726332c7940d187204d53d03ef294fa893ecf98d24a22ea31b227faca2ce51abc3c5e839d6844c38794c2bb4a7e8b83138d4c0f2228576f137d25d92e4288753834d178ab6cc6cfbf8c3f13fc57c91c7935167060a2f3d714be45236f0e618e4bf41b44456a77b5a859b244b3a99378d21827e712aa44236a3a5f7d2c88b82b259a103427a94a133af78563128d8b103bff93327abb65010e49b42149fa8a8ed6ba39b4800438227144d9142afa25897240a251c1532fcbe6eea50b34021e411718b8117461e3be0b6383e3111c8e60bd745e8be59bda42ad0a472392831124e05844a3fcbf426f926f295c4574f13a6a8a66e1532725a2dfccec93644a7220a237ef6ad322f276d6f021dae093fb73fce849a92345e030441f598209d10b675953882e7305f15a3aca76ac8c081c84685de299c8260da2159d95a6dd313b6117446322e692b47892829802d19bec0866a67f3963d291130207201addec9fe449b314747bc7f187462d5b4ff2d8b992c51c7ee843afc4bba7143970f4a1dfd3d27eb984578a48d3c0c18736284d4944d65f1fc9eea1f78a5bad3172d86acb2438f4d05c09ed271b612f38f2d06789fe2e191ae1c0432be17de4b28513c17187ce3386d5f81c2504871dfa3f5d318d19a54db81c75e8b56784c89453c27a4887c69390c1dcf3278f1372cca153cfa462c724377ff81039f4e9a527e98e881d38e2d056e61391720cc1378570c0a14ba9b924c83849f8cef1864ec927592ab5c8a4fce2b9e8c2a8009900d92084c30d5d7638e9251ea4ce65b650a3c1d1067f24a7544f3125896ea1d6020e36b4494de75f6a390be158439f4f0819e73d5fb36fb6505343fb51ad628a9bd7d5f22dd4f2031c69e8522cbdbcded72ba6e540437be2f26413e3f32638ced0e7142d4b493e99632ac97398a1b1f0b794c36716111c656872a969acdc9e83ac97070e32f4573af937708ca151ca2c74caee6be0104397948610cb3aa82a5911121c61685efff3b964cfc8a2a58007684c80030cfdc7af143f687c830b2f15a000c717bcd0cbc811b153501abd3296054717fa6c7acd53ccc8fc5cb650a3a1b0e0e0c2271b2d26d9402a403638b6d0b768cca7f2b382430bfdcff78ae74b3947b24c81230b55a95bcef13f163af11153a87291ab1f8602c715baf41c72fcb32aa5cd47a8017ae0b0422372984f984d264c8baad0cf8ace532a4f85e682dcd7d1a69942a772d613b9d219951829f4994d87d39ee528b41bb2beb8cf899c440b8546c51839b75805a5553ea19913277ae47a4e6893cabb3aa644389ad086f8729592a560e2241c4ce8b3930e95b3e924b5328e2574197276c38506fffc001c4ae84b89c629fffcb6fc93d0767b2c61dafd44bd4742a7bc3c9ee5d918938a5b3063060de303c711bad21c1733e7d808cdef49f052d244074d119a89964987b79012524b84b6b743cc224b66b576089de5ebee6bb6ef97288466de930af158f5f792efc011842e49b518177b5692ca01a18b9d8294517233fc44387ed0be7a8c560b9b93930a870f5a1d4d51917bdbc23f3d68b3acc5939ea492fab24103b9800b13a0630e1e74221f1f3ba3a972eca091a292c5cdfd8d9b646e02870efa8c296e65c6f60ff2dc02470e5a0d6e2acd62501d53e5c041274ef5a26a980fc182100b1c3768334bbc2c6d6a4ae6880dbaa4997de9be9f635e5ae0a881214be4757f9072d0a0fd14f495c8b3c298451354fc3ac6d80b295660c8a2dd10a6fa6e152f7f60c4a29528dae1311318b0e8936a4cdea49167e2984c80f18a4e7b3be5bcada32d27686880e18a3e261dfdfe0b956d0d462b3afd2b6bee712b030c56f429f173bec82a5df1b38a3645cf1939e9fcc57755d144d13cf92c99240d2aa50b3052d1e5ff1c594d55888fa96a01062a5a9dff149d92084966fc146d87e56626dd710186293a9d74624c788f2d49578ae6a275eccc180283149d7b47f2526241c49c1c459ff4a98c31c6674e5768c010451b3692e6e9183a336842d14cfc9c4274fec69c1518a0e84bc5e83d51c3fbe4824f80f1894e894de2f3918206d53dd1ece41893c8fe79af044627fa98e1ada3440e21aa47a3880c6070c22434639021e886792f52408c083036d1ba78b6182db17182f66168a2cbdd27b7945251b73418996862f42e251e83ae4ad241366cd43815d062015a943fc0c044afbd92bd84660d7fc126c0b844a7c23a5ebe24153391126058a27fbde89e2178cc13bd12cd28e15bdab48241892e2ea3484f534ea25359b5ac4db6e709db146048a2d79875ad3cb699fc104e028c48f4d9a489b87f5532e25d24c080443341ae5f5e5455caff11cde9079544122e27d483e188e6fd83ce22a4360a188d68e3e69821f5357810111e6030a209ca4ce6ebaf4180b188267ec90979654cd201188a683b54f485384a441bee59dbab62340621a2b3e0573a572c9535e810fdc5a05573c57039830cd155dcbc90532d447b216acedc2bb2728710bd25cbddd09d611e1f442f595bd67a43458e11449f4418ad27f42419e140b49e66f2324f40343234a6a4f0a5e3967f68749e4859b3f443af723232470f2953d9872ec824a36d6a4986910fcd75873c735a44266f0fad48cf498e7adccf123df49d4b76cc260b2642f2d029bd553adb273c34b2319a72f269cfb174872ec9b8b9c428d9a1d914ba4cd63cc5af43331a3f968a2dc93c4487c64da5dee0ea162e3487b645e4f25d3573e8e5d09568f89afa716882509a67638fe792c3a16d9d93922ffe864ee650f22d4becdfddd08508d918544d98dad0692dd1dea9393f61363441268f9167b237b4064dab245fd2514393ca3be575d2d0550e1ff162661775d1d02695a4e41c646758a3a5d0a749896098a1bfd28e6439289d35896094a1491dfea71d93280b22186468fb74a6656c12ef0fc118437f1ab183279dfbe24330c4d097e787c80eaf973204230ccdc68b4af23cb173856080a19710b3e48f3927991482f1857e649f5885242f74da9b444e122e3dfb2e74ad31a6c95536ff870b8d57680e9db42d74d273d894dbc2fe470b5de66c268457c59cf12c34f244a490920c163acf9774c7a8b942232b8518239b8bff56e8847ecd1a77ae42a72ca63032bf5468ce5487f4acad9d5551bc048c2974ea33739173d53d2a85fe339b4e525946ac1985f385cc4aaa978701853e97a88888a99874ee613ca1d1a4f3891f21dfa5b29806184ee83292d6a484f80acf35a1f71847e5a304613a4ce8573eeb5998f7cb9225341277d3e299ce652aa135912765c8ae9b92d0a4a87e7da552e3558f8446a5ece8d73ee13f47e8d537454e5e32c279a2fc53d27e119a9cb44e8436a8a859a9639365cd109a1d0f1a926cc62e59089d88216772c8244b8583d0c9201b1ae20919740c843657588d31c1c4a99861fca0330b2e2aa852a9211f74319e2166b810dbdd1e349b41b2e859d22985078d8e961b972ca9c8eda0d314f2e57bcc60aad441a7a2f23d29b1b99e1cb43a1bcd37c583833e441eed90d4b9417b398bdcff581f9d6483369ca448217905793e8c1ab4262c79aace3817e477000c1a342beb9621ec678d8f0360167df6d1e369dd3959fe0040169ddefd501ada62e63d165df8072df194679306168d9c5ade9591417f7e45a7fa1753533637775dd1bf68c5ab9456498b025afb09d32621451bde3293f8ac3a106314bd69488cd518e6e348146d86af9f90d93cf37e28da0ae37ef263653c088afee7f74db8040d2a399fe84dfae49da4fd2af89e6847e7dfddee37193bef443b7bfa1da3674e34d6a5ddd14fde44274d44ef27cbd9174db4fef29d93ea33d14f121322f989897e35690e498e97e827454929f3b796689487389b93aa9568a478274b9a7d738a2a259af15e27d1e80e23eb164b844eaa24da902764ce195358fd22d19ae6e7c43831c223098946e5e4a4b5b3fc049d47742a1f5b934bf0a41a47f49683997bca85d8b8119d6e131e613506955c46f4b1bee1347606d7b42ca2b1ca93d5948ce7c628a24b0fd94d44a3746c92b15d4444a3937e4cffa49fa28587e83be5893815e179644374792282687caf10fd76c6cc8e1de27972846884bef4dc991d44bfa93b6cf611427552104d70d14148c89674ca9140b491dbc3347c5c05150144a337c77275ec943ff4875e466bcc24c3a5e7df0f8dbc5c31f16296f2a60f5dc735655d412795b3c687469bb8876acf1492b53df4f143baa9c8eba19113b2a4542aa5889b872e79598829393c349f1725e910b9436fe26da52478c8a155daa19120e29c3e65964c8aead0755a4b904d21c6b0704103dd30460736829c498ae61dda194273c510316c17630e6d9011849e5429250bdaef2201378821873e87cc8990e4a4b896cd20461cfa9c3ae715a51ac4850d0d600c3810e2e64f393cd7458c37347943fc36abec9244c5865a20861b0e2d9f3aa518332c82186de84ff20915c2cf6496ee202fbee8828b0ac460c3a3c4476356d31ddd426d0dedeef855d03e7ba144b688a106940a22a696f3aec84e8c34b46a7d313a57100dfd9bf42ad31cb4208871863ee48b6147fb67c8e8ca0cbd5a126a72266acb46cbd0a5885c31c49c820e8841862e2d07694a54b80805628ca179b9ecf5127d8d2e0a046288a17dc93e5b395bf2592a0c7d902044cc24ac433efe31c0d007398f1674d42b75d3460d2ef00bfdc79c772eac660b3562d780185ee8fa749f2691cb7343880b1b1a4001c4e8423fa3bb31cc58ecd4202e346afd418af08c62f92e6ca4e006b241a38b44e3045f9815d0403752f0058d1a37ee1410630b4d96510df9f3b788cba18007688c208616fa922a5a31448f16d940df05b291c68b0cdce0420148ba305e7cf18018593846072b5de183486b58200616fa3599296c882c317c17e30a8a06955622e794df3841035cd08215ac2086153a21b20835511f49aa71a30b082ce06254a1eba025c34e90416a08a2421b2b787ca5d44fa10f29eec90f0f17e774a4d06528d38ded399b4d8f42134b9f66e5a0317ee550e8c4faeec91cb34a04f113da284aa6dcf59dd0784513b16f12f2e59ad086c61c5bf534c88d24139ae01aa31a4c281d8396d0fe69487942648d41a88426e44c42bca850e9b19284dee2a8d44134c8982712ba369152ced15b820ac12374b221426e76a91056ab184668ab3d06c993724568cb629293fb27421776ab947bf76b8887d029518d5319e3a62344086d49f889ddd13c8c2808bde65569b41015fc03842e6be81c4c89680af9079ddc710f2942add3f441db7a252ac60af244aa0610a3079d882da1b1cbe34513f2a0edc9ef97aabf183bb0190688a1038d9183d554453f5326e33c5ba8650c1cf4feba99a45888c4fc8521c60dba6832a55f83023366701121860d488c1a341aba54f89fe4166a0b405cd8d0401a62d0a0d99867b62fa714ccea98451b2956260bf1c5bbd2218bdc94d412934d5db425166ad0994b34853072621250000310173634b0c6b0e8ddbbba639fe7158d909d3764f93615f4ee8a2e36c6131a5fb6a28997fa2bd6d52f5f58d148d3b369c1eb58456bde164faee7e8997b55f46e4af27f692715ad7ca538d597f9a5cd53012aba10c453b0d2b6d84d323b08749ca2cd089b622d85e0a0c3144d124153c91e6525944e29fa985825fde43f3dee2045a327b4c38e06b10d3a46d1f98b0acf51914f26a9289a7909aa438c7952c643d188afa4626913174d8a1da0d8c36aa8f490f94f74319783c5e50c891f4f7491e365267ea9136d9c581df9cd5392b30e4e34416999a6ce29945bbc893e4365d589b2492f474df459829e1441980c5ab44c347a9358d11443ea56eb071d98e843c6ce4168d6583997a8e3125dcf5be68bf58fd1d394438725da20db651a29ab6548ed529082eba8449f62ff23ac29bd51e4450a68201570810eb27129a044575a7525450e1b2ba21d93e82c48d9caba1b49f4273537fbe5488f5871249acf97a36737c4cd6fe3d001897e5492450eb11b3a1ed19599523abf520ab27bef7044db65ea1e317eccbc25ed68449ffc94f94b081b3a18d16c5ece5e8e29d39845f469c1c2ae78bbe8ca1ca243115d1c8bc163a665a71827a2d19c7d534c2265a9753a10d1e59b85324d210143c72122d061883ec9b5a073bbbce46649143a0a61e7106d9d644692b5c0045e78613a08d1fe6891f1a94fd931883eaba7ec86ee82e8939c6e89a8f1927f0c3b02d1875a9c98a93d790801a28b2062cb857d4f79fc3fb4792dbb55d0ae2972f5431f563aa8591c9dbfec431f7cbb5c6265f9d0c844ed24de67e753b787265bb82c2d26f47a04e9a10fd99c4f4c2e954be279686367520bb264f0d0a90a417eae083a40c71dba70bda43a9c858a6dedd04597d51033af25a4a50efdeb075dd34187247d3af425a6cc7362d6e0fa1c7affd1d10b1a4264433934a64a4711b25172cc89439bc1d363356270e85f763e8e10157a2fd5f1864e871141cb8ee61456baa1d1397fe562e5dc54ec68031b1adda362580d9dcd202a4fe85843f3f139f563d051d7b380dd17c646d0a186563efcbd7fd64a6ffe06173d63c68c19643bd2d0e718f13321c28bb8301a9a20c4448596ceb79271c7199ad911ddb31e53ccd70c6d0ae2a374ce499e9b0f868e32b479469fa718e3e4530e197ad13f79f295d0142c1d43a3f7cabd7464f48f498718ba9470959c424718ba9ec961a3e99042c694143ac0d089247394b518d92139022e48806c9869a10107b4a0e30b9d0c5756b139fec538bd68c18d2e52400399c08b1370f1058d1174c185175e1813d8402aa8d1458d2e68786156f0057678218f20b63c365c1cd1d185664b5c366dc1ad246c3ab8d0c74d42886c3104cd0a756ca155df92f1902a62a1430bed093d5d592d47cb58b2d008fda65d93e83ab0d05b98dd111d254232a18e2b34b1a375a5e78bd1b3cd408715faa02ca514420c8b89b18e2a347fa69f2a7598091d54202be8984263d591426695cc7645081d52c0435cc4c8fbf259ee414714dad4e2c157dd82c61734be0bf48591187440a12d93aa273231469505293034bee0a2e3095dd0b9e6922ce5996990ec704263d6f92a9cf5b0e86842273a8c441da9593f7430a113b27294a45f39d5d21b44c7127acb89339ad9bb6daa2dd46c6800101d4ae8772c4c2e4d8b3cd5b051e3c617dc450dfd8e24f4e9a2c9e2bfb540e84042df23a762c41823a658b458c011facd5fe17c949bf6d53a8cd0a589dcf1355258e769015a68b1002d3420012dbca308bd26d31de4c4707153244213ab640a7ff24397e8d7d03184368e4c122f58940b1d42e882d2297b47d2a729fd2b7404a10308ed558eeb1d7d3455c4b650536202736a4820037b35f68b8e1f7491936e93f99292e5a7f541339b61729299f79c320b9831830a1d3d68dd4336ca6e47fe4f9a3103bbd0c1833668a4244fe8d2ca1f7aa1630755161d74c8411d90636cfcce49938830d13842838e1cac1f2ee67d5d6d025a2c6003df450a6a28e0ce051d3868b3d2b38ab21ed74ed12474dca090f924cf76c44e8db71774d8a0cd4f9e4c4b5b6cc970143a6a40d00eb92c26295b4b8a943dc6905237cc84f073b12233e8a0412745e45bd0a099e2e592058e5974b234c4caa4332e2ac7218b2ec83c3992ec921bc172ba48818d1b348e30073862d1853ea967d963e68f1f166da5a47fd37f2b9bc6385ed101c46e8f070d3a4b1992e7e4a5452d67166d8b0a72723283eae091c5e96dfd3185d763d16fee6a8a95a6ab840c2cdacb722574894a4a7ccc2b5af9cf49269932c94cec8a26c9aca4613777ec0db7a293d6f159f4e57b8999156d9c31512d1f82759057d16e859cff7f5bcc3456451b23aa5290f225a3bea9e893ee98f466d00961b3a868cf82d86b114ba2c73d45af9ae2e1724842b2aaa6685284abccd9bb84ce6529ba4e52438a4ed34cbe7b4cb6c89551b49f4488d6de29e73389a2330f3997ff75ce178ade7d2b4591abd9a90445739ae468e506571ff1135d8acdcc3ca2f3442bfb2932998874a2d9f01f84080be1447fc1c3e25f75ce21b24db41ea3c3449a50e23fa689e65487afd63113ed78fa5f509d12c26598e844b4825ce81c31a74b74adafeda63c4fff966852cc9c8e3aca43c59b830054a2cda2474fbae63031534a74a9744637a8088d9f9b4417cdf22789fe620e5571a5e20044a2092a75b3800bb8308139818d1a14b0800500124d1e1143e4ff1fd15634b1a794521df4e78e6847db3c26a50e91b86944e76625fe620c233a0bc2472b77e96c3ab38826a5fc3fd934e6ae2715d1869cdd42eef6979613d17cffe95ca5f7a35588883e255319cd43087a21db001ca2d11cfa5407693244d7b9fff2f59bfe8ff942b49fa4863ed1c92c5a9c105dd06d72d6972cbbc90ca21d55c99242b482e83ce58a1b9f4074417549f41ce2f1530a882657cc5dc9cb4de6947fe8a35ee4edadd8ea6205c00f6d59c9346199f1ff7f1f9a7829678911bd840ee2436322fb547f6ff6d0eccc5e92244449efb81e5abf8cfc9672cf43a39410b5704289d8d9f1d0a8d88e1e4cb8c68f9b3bf4a2a22f2d0551412e6387e683ce8ddff46871db3a34592e2f63f8920efd6952193931a358509943bf495f62e9a7c8a10badce6d7ac3bc9318874ef9761ced51e7330c87f65255c87b26bb4b86bca18fd139b45c3b557ea649010fd0f000b881a083bb6802d08646071de244137fe13fce862e84a6184dfd644100d6d008d3d0d42372ce9d2235b49735e8114146e306a5a177d1190b7f19b3f2188200a0a1dd2043e88eed0d594a67683b37e9987354fb84c90ced96f20e7f9a452796cad0e5f90ac2aa82c8d02691ad2a9cba84b01943eb1f52b7787ee8a962e8ccf562e7ff9c688887a171131535a517181abd9f2d97e1fd421b52e8a4bfbf173a31b24f73501e23cb5de8f4877d89f1e3429be474731ed32b7d0bad6cd0fd884999a7546aa1b91c334b7ebf64a10d39061d4659b0d0c95c7afe543b4e3ecb15dad00defd2a61fdb3d2bf4992a8278ce27e4e4ae0a5d5b58afd896a3ab42a890124aa8c814daa857497e6e8ce7500aed7ed248397f4c149a3072c48589dcd0cfa0d05c1217f5741e0c017842a39ea3e9f4d0412fc59dd009193f527cbe099d12c94c5d4b57489909fd571ea1d9922e59262f21f398a39e4fe738a120004ae83556640e32f248086f12daed6c5224f426e3e88eba1da1cffa1e2dc94d12b4458cd0e495ef5c77ab08ed04b5321da1a4490c2601024084bee24a1042456f8c091a427fa1f32d73318c752f8446279d5fd24c74f4f6416842f6ceffa5b273df0384b69490393f68fbe4ff8b754cb654f141a756d95269baf7bc3d68c4ca3d66df2ae909f2a0f5a8955993bf3b68247e5221c82473ca4bd1600f0440076db8780d1dd3279afc396877467be69494f3c7240e1a11b2ef05f3cb5fba41632159a788de6d200036685d4e8f0c1743f2f65f83b6e43c4c4fb00240834e5f47164d25747bce2cdab8529d2723358698caa2112682a934af64c4a2dfa4d42568e865c0a2f7f18b173a4119aff882c8a932c2f2292f7507325c613364b4a2f5189344cd17835c32586133742063155d0991d5caa7a63fcbaa0a9b910ae473251321a8d813c838850c5370fd29c5f45fc4543a8e404629fa3dad61a5bb9a31a3c828649082a08c51304a958e9ed172438628faea0fe5c99484284a2914fd8f129f33276512b3078a6637a9363d49aac42022e313edba8cc6909783695001323cd16588698d9f5349d2934ef42147881617d65ae37500199c6883289daae2dd2cb4895e4563d03849a892d4cad0449f9364052dc1cd44a7faa2548ca5e23c2531d1e79398f36e129d5d2c529071892e94760fb11da29a8b2cd167913aaeb14792d0984a7496654d5baeb41845fa04199468553f2451e155e73c49c6241a8b116dfa3789fcfcd338c88b2fc6204312fd96529d475f946f0d8a0433c2c257fbc79de41669e386173220d18ef4df30d9938fe83b8c7b0e56169ff2666e60e091c970442752577f84526a441373bc2cc133f2793e31a25321355b92d80bdea74574b2536911b3a8a6e349117de57cbf20533e659a94883eaebb44b312a9274e88e833c42d25e53d442349a595774992f21aa237efd5d3d1839752a64274217cfc50a2d2455e12211aa9d1df73e56cfd4a1a44133bef9f88a144142d1244e3166793d0e49eaba240f429650e1fcd67b78200d195c9d09d2a5d537cfe0f6de924a621f27297f87e6844b69652aaad71beef4373f23de69df9b890c48776ddb2969bf016a5b3873e08d5aea6924c6a8d1e1a8f99cd52489c13f2c943276764bcac664b423c7868633bf2e7abce1dfaadb0b174e5e7d98f1ddaeddcaa55d92f72f73a34f2e1528edce9d07fc795bf5e9de8253387369be6302375238736678b72264c45d7b089439bb182ccdda7f2879ee1d0bbc53391c286ded0f96565a8889df31676437b96b2e3be48b77c711b3acdd29b82f7e80d77d9d05e4b52423ee7ec11b38636cb7366cfb363b86a6833c790f59269519ed43434eaa6d71f328b9215454317444b4511c9516350cfe0a538bebafe31431f4353e991fa5d7a53862e271573b97c7ef44c863648acb220971c432b1ea2c9af4b317441868958527cad426168936e6a469fbc39ca60e832d4533fc79cd6b57ca16f2b15641ed3a1bc2c5e684ef3cba41c74c4e574a1f3523e29a6a44c79b9d07a2e55219c6bf08d6ea1b59077de3f84064bb1def1fc51f62fcc42974336dfb2de1cd53c2c342f292ca894cdb2abbb422b627734864cacd0fce989de5e323a4248153abda4c4442f19151ae1e6f12b47f4dd189b421b7325fd4dcdcdf19a14bab01a4ef495a2d04eaa60165b82e51c824257de91b2898ea944ff845e736a5bc8a613ba14544a1e63a926f4a77b79b437c2847edf63f4489a25f422ab272571ed318594d0770e4dd57c2ddd949791842ee81262345fb2b8a0c94082cd9071044b66e6ba4c2b7779a72537e5252c54d09b475d54c006ba01011946e84d7a773cd19b17f25484265772cb58d94484b63c3ec7ca7f51bc8286d0c58a2653e6e664f55e08fd85e738def359c9fb20b4114cbe67111d20b422dfcd4235339eee3f685743d85811333ee8c4c5ea13cf29c4bdb807bd9b871445fcd483cb83b6f449f9287262e2da1db42743b4c8313ae8a389d2b144a43272d0256f9390e443ee0fab0c1c745d22a8a5387a535954c60dba3439b94cff4cd4a494618346e95805c99e27722665d4a03f91536ff85f1166491934684d45a69894a423c665165d9414e6c265c7af1665d196f0bd9c3386b16893fb25fd39b6839560d1672b19b2349384bcde2bfa0bfd1bafccf7fb3c57b41b52aa9cdd57ab625ad167b4f4183ec6108498b0a24bd9ddb2cebbe61425ab68e7f4948a6bd0a07354d1ffe8a886144b4527e227469054d53a1a2a50594fa768640a4a08d3cc8d41a668fbb5279812c9644a4bd15a85375f70f1aba9e872e8fe92b2afa545360c8d47b2810f547c9cc26654e0c31436a314eda40e9a7f42102a6c5f981a295a1397e9b3117e135460c60c54c18c1946c350058465f1310aae82c7aa7c8dc7257c88a253a9bb2fc5207b9a310bf808456b61b4e366724fee21c6870f50f423c35384c8793fcfb23c7c7ca2f37c32d752598720623cd18c7ef7d4966d3d65ede1a3138db24c394a588ea5c1e7441fe2df573f76e6e0211f9be88390394263e79a68ad5c3e3493b6a718fbc8449f47291582d2fa97952a3dc20752c6e5e487571e29e1e312cd490ca933a9acb80cda405c9c59e0c3128dc65875e987b897afc439e5cc8ef59883c407253a1329fe58c8d6ea3b4fa295cddfe5f351464f761bf12189fef4c9e69c6aded7868d1a348c0de3452165f88844bbb31ebe2366ff6233351e0924d4f24c26f5c230f878441bf3f87b4c0be141366ad0b851a3860dfec287235a39bdbc3366229468d4f86b4413b78488a4cf67534b5f703102634457492bf3b454ced1750bb545f4a32a7a2c378bb14365111f8a68c36e0a3f49cb7cc59c88de5254f8b8fc1161d494d1fcb9d18f43f4a1c945cf07a59bc96388be7733563215f25188462f5e4485f4dcf8204493f5b53285b2247b928368f4c8f0123f59d4eb101b5bdc282788b6543849390925f11188ae2cb353237ce8cb1840743a7f9fd211b1cc111f7f68552e5c5b7835114da285061c40860f3f7442a8aeb89684e94b99213efa50a9595f3e9d59447cf0a1d9dc416c0842c9f812df433316af59434eedcb29c4871e7a0ff9f9286ad2a0a129f8c843e327848f251d96b9ac2f3ef0d028b1b8dd2174548a31093eeed059e9aa12b952c65225517cd8a117594954b85baaee9dc69fa0868d0674c1450318141f75684fa8e8999ededb2dda071dbab07192c62caf272d9f43bf9194cb09319b5d3372e8f4668a62399cdc0a390e7de69c1343deeace1de1d0a82a4b164344ded0c628a133e49651d1bba1fff512a9d42b2e78a80d6dfef4b0d9a3cf867e62969964534f32cf357431377cf2fea47c62a886f6258f48b122b545917ca4819054d0e1323baff8404333d27c541042452b7a1f67e8e4e9249eba295b280d14a02f886d023eccd095e549d194ac2d7c94a1919a4a45d18ea3f041864edb63c68f65321b949cf03186de4d66ad36a96b3a571f62e8ba53e9e64e4e930b73612ca0888f30f4124e84c66eac887a880f30607d7ca133ef73b324c25ee8458e6cc938fae842af25246913fb3d49c735111f5c68769452ed183b1724ffb1854e881c726f14911e34e6430b6dea1c540cbfa5b4c9fc47169afdf93f096349625c3fb0d0ce494a2268c81b0dfbb842db41b29a6b8aa4d5d2c387159a58953b4be4a435e8977cf8a842a3628a6cc1e573e5873fa8d0a98e3933e2b807c9291f5368aedda4566a5031841429b4dec13bc99072767cf811854e87387a92525fbe7c3ea0d0891c52b499186d619a8f27f41f3794f6efb0134fe5c3094d503a5a4a56f227bcc11f4d68837e1125773d86be7851434df0c184d65323afcabce5359d47376cd4281f4b687fcf623fbf77d264fa50429354e7f309b21d7a32aa858f24f4794b67ee12393ca412099dfc98a2beea294d910b1f47e86312793c53d21783788cd0c453315897b61f45e8b4770cfd8ce59aa2e483089dafaca61ce6fa1842934aa5e095ff7d08a119cf21b4629548a2c72dd45a80ce56f01184aeac336653493c9361207cfca059dfcb3985f07bd92a1f3e683fbb95d0d6a0123e7ad026995ac2e8a9dca66256f8e0413fdb1e4da28a9b28918f1db47a2966db75f53aa73e74d0c4f0bfab32a63f96f391833647517e2ab98b4660e350f08183467b5f5e7b5e3e6ed0ee883d7d115d4c495b804a50e3b1c6870d3addc9d7796619b30699c0bfe0c2046ebee08201c40c1f356884ec8a96533037f95172850f1ab441c7f39c621df164840a1eb368546cf1d8303aa2cc45165d8a8ceef175f488451b5736c48aeb15f27c0f58b4b9e33485dc1d337a660a1eafe87a444a1e235664f4de53f085122d34e00008c4c0c3158d05e14148aed8b3242ec131363450430313f068459739c2c9ce938498ace8f433683f0d19cd25c21bb78a362e64c26c9e184687e8a18a7e5358cf8cd09027a93778a4a2d7f55c6da94a5b87b43c50d156c89ceca0292157a8789ca21921b144c38798f0155374bd1bfac34af6e4ef4ad1784ea1df5bd1b2b8e6418a369bc57eab782afcaaa3e83fddf4cacfb6e54e8aa25322a648ee7c09451bce73eed121e9ecc1f200451bcf7470f9b8179295fc058f4f3449e719c931db21abec8926c4157d27da4e42098bb371c94d3f4e349e3d1a77b5bc33896f136d8c5b1673e45e8c61849a684c08a553ea6c3a622b5ba8b5c0c60d33b5cd4417d3ff3c01ba010163c346021260021398136460c68cd3820726da24443cab7947cc3cf1b8c4175fbcc0c3129dee8a074ba5ad93ea49013c2ad1f98628398f22f46f06081e94388f4934418cc8716a311a908016926874343dffdf3af488441f6337a3e824c52a5520d1e698887539d55934d885118f47f4b11e43661125f170441be3e91f279edb7cdd420d4d0b0d38400be2d188de22a5a0829ccb83114d121f446cf03725522d34e0002d3c16d1bbae67ca99740ca1816ea4c0901b5f0f45b4d982c8b62083580eba47221ab3d81583ba75bc8e37ba8000229a1054c94f396448cf9cc721fa2d93be1e460f4334214e8c14d6743c0ad1c4fd28395f5e66ae2c091e84e8a3682dbf5c0f92ab1a44934a8b4821a9283ac14310fde9b0bc2eab8a989a40f411773333bbbc2b7800a2b5ea10a9c2c9260f138f3ff417fd5aa405d5ba27b72178f8a1cf1f7a49741c1115e53eb4a34b4dc7d8cb830fcde8121b759492b124b8875e4ce7acf4f0a93a82f4d0997f571c9dab7c27de068f3cf4f12f7321c572c8d1e3a151e2bd4f92dccb41546af0b843bbde7a31c888650b310f3b34af29866fcdd5d117e251877b3ba81897ed84071dd4ec187954d6f06a0e4c502a3e6438913c8c481c3ce4508ea3c9b315072455b2a0944a1a3e2170488c10167aaeaf7d2b5bc6e0f18634879ad088397707c986c1c30de5539dee7b1de27b8df068039f5ab2ef0911bc3378b0c17e9f5df594121e6b20096149ae83fc450d9c864db22f04e5a1346ce26445b28ce79c3b7cbaa8d185a1e1b6d81cb9ee225c743d84c7198a78b9112c3465531e35c31fc5f572c9ea892796e1f0b927a2e9a0aa27433a25a1931a43795ec7e3c4f5ce3a3a4125c2430c98feef8aad34f122203cc290eaa096295c317880a178a931db3748b7d08b253cbe50c89510496abda61f273cbc502879319a29d1a754068f2e1897bf23a720a76744447870e11c4b7f25ddd94d786ce1129293d0e0a23475888716ccbfda2682ae485a1a97f0c88256f92946fc0adb3904070f2ca0da4dbeb9cbe6b0160b40273019983103121e5738fc9e0c32a322838715ca3ccf92495585ca523d5ca681060f2a202ec976140dcaf5ac84c714164f1274470ae7eb5130ecaa05218256b040c128a7154e9a9e0ca7113c9e70691f2d39756898283c9c80c8b3a629869b409ef95391425091094f8e9429358acc124e5152688d89516396e0a1049306f98ba3c93c7824e1491d41339784e0818463cc2456902f0bc152f9a898db4a6368887dd181c711ba2cf9ac547c7c26cdb9808711da0d310999498589200b108d1a37681c598147119a4b9dacb3494a2106dd83086ddcdc1b21e5e4d6da09ca093c86d05cfc7f5c8b39e93caa2f900a0c32019b8d139ce010e021842e27ed329d7313fa241e4168749e6769a920ba3af30042a743458bf4b936f9952dd490081e3fe8cd54f9ff785411ba0fbad6aaac494f452bb5076d94a04bccec8b96c983469be766c7df3c229576d096fc2443a5b21cacd341ef39b96628f14f328272d0abe9fca4df73cc31f6386862576ef9a0757216dda04d195376ccf8c58bdba0ed9493f809f978d4a00bda17945bcc038e2aa854f1241251281288c3c16014430164b66e01e31308001038200cc6a2b1609ae7daf80114000450281a423230161e281a14161a168d84a1502018120602e14028200a8443e18020cdf32ded014d4c28059208bdc5c19429d50a97effe23cd1f04452d2b7f00b7bacefb753b8d80ed8d0fb0a9989d231eeee4a6f7fde7ae7356f756c930ce4781763302e899078290fc0a09e95d4e4afe8d709cfd74bf2ed1c03ee68192544be6c069321038992262250eaab6a277a832184e2e722b4c29f6156a900af1a300ea6ec684c61418215ff072e4789b55b5d5425bdde6e6e931a3403627772f54d3bb85489b219b345b9e1efe0b7e62abcf296b7a255a639e859bd2a836e1cd01c03fa7a565293011111c00a8d2783b19a8f926b3681ac14111a128c2357bfe8683bc872384e930231d8ac6e66e31b61642688b30cbf1b934446d753f9fe4a44ec493097b319395c9b8061dc7d81664ec43c3bea25708fdd88a60d1dec6983190491164a9b5b8bbb039638e5959eaca0455269d4f8cf22846650909464763b1b600f84f1b8258d0bba67c76a81452c3a68ec52f738cf7a8b3949fc21dd178c4572b4da66655b19d22a9ba14e4959331178033c8aa1a48247177e0b7b2f38a22ccc8e7be638fe6a399696f91b2a0731f96bc89728b29596b02acf72a47417a2bc15ce9aac71437024497d48a05f4148eeae528310c72c02877dd0f7cb4aeca46d461545316288674baa63c5a962d682c4cae92a26eb3a833ebaee7c72d75bfc7a0459dd03fe6ff8add3ab57e49b17be0dd6da507d48071051ecace84da3ae0b8536cee00d18c69a30f659aebcbd9ee4a77fcf9034ec9b503dec624cfea604754d5d7eec11e73834c1c1078a44176f1940971114abfeb9329bc5dac7cb17ddac1406b51324b4a7660ac9a81147b7261e20a7fa901d89b0ce485d5931a305bf79d88a5ec40274e08ebb083571f3650607edf48f80b9c947315c094a0eaf1321240c00c9d77474c37417c95dfbec3d8b1d5b021248ccca78f19a67f49b23e8386d65f75d8defb314d510b1f4cfb461e97215a2323c5519123bfce2bf6bf2a10eb18229955c8f9c859ef95604d883404d111374e52b237be4d97243454aaec6a27eeb7ca3a7997eeffab2c07923b030c0e8780fb8bb6c831f2d01b3b0c8575569e60c953947dc39aab81ef28c39ffaccdcc9f6d3da6854c11a7c985225a3347145c6c57616c23b0b178640563fa55c7a210d62d3a1a5c71b667739a182dc25570191190b46b74462f87ad84a62e64708fef97e3530961dcd0325548a2c15dbd6de778faea87fe487db7ac331ee56e48d95e12aa0da2476b160b0087f42fd12678a57bbea824f8ff02d73890858640015b32fa83a806b080453947a023e0b1c3e6102c6e5bfb7833e4631429f30fc31f2c2949c378295d68bbafa35f343b79fdbd49598a79b2b63ed0687499a9c4f6f98b112721243ed249ec6e3cdb0359a7808c7e046bff4c0380520e4b9d15be945f71abf02b7b766868dc336341bcd987fb153c3f340fe6935ba0ce709837a00d15cff0785c0e97c0c64a601024595a4f0c3b056e8839e2198efadcc8af6075ad55d53a8035ff6958407cc20c67d21a3f8b947223d2a51077b7da99d19a0150ccbd96656f2481b0260db42fa7e506a3c4cd8dccc8084fb7d80b0b58880a33c41477af664281da5318538a8760058d322ca2aa7727f90c27d201d7d9d602169e64b8d0b689e448c8ade63293dfec39b5a640e0db52e76b72c3bb24ba3499d96d7e155e11244ffabf41a92de23553b51b37d01ee7921d72a91c044aee5438207adb60fc9260b475155773e976900d2224c497223a572dc621a65a6311b2e26ab4bb3d150bc285a6d26e268670c3a4a24dc08687262bd08db41034af769e66ae79510373cd17b7885ec7cdeea31d1e2369741c8f7827175decd368ddf05c1987167d96bcd2d73611585421be7a01e8bde8b398e578d30d1d5f4ae0e49fb1dc1008c554daf87efbafb897a32f2e8e5853a205d45923b62e65c4c1456b5ea73bfdacbe39f45625375578774902c71443f53e4f84a6cd1ee2a9bc601cfd2c8ffef63527b60253ab0a6d06da6ca70c1547ed91e4cbe171ddd0cd54f6200456943398a889161fc15ca010d3eb3227181403f6535c9c073345967492c2a98b47fa76b846b1e81f763bd614035f8629b414469484c84e7a0cc9f7bb349df14b88b5480eda425626a89358e7957d22d2b22d7b0a417d9b223cf07e253ae272bc60e047528781cfe68d2590aa7da8171e175023c4a8cbdf65d8e884399480ce9b3b3083cfb5d5666691b55f446b01b56cf4302d001a8c5e853909231a5e54bf762041e4e0fea498741c2f93130d2293704ce636d11c860b31b3bea9684774a4a5671243590c6c939e15c7ace2cac7a5c51a6c02c35b598bc6819856aeaa97aa4d9231185dbbe38d2deac25633ecc18a655ac15274a67ced2064eeccd0544c1bba7ead86312589541223107c3e99d2dce30fc6b9498bc26fb49786640c90b70a4c7344a5c9292bd3bc26956918a5f72d4cd86a282d6e1449cecf5dec49922d5b9a3db5d26c1d5a658dc65c0557bf583e9da67f63966b226006e16a8a5ec2da3cff31cd1f7490af92a71aa41b0d79e8830134ea167d80ff42b41bf8df502d41cf411b46fb1dc15d7ed30f00922ad75e1d19459ddb6ac098d9f67e9c45f7469b6c5ae80218c37818a23a1cf1f598cd5c0dca5245723f2d139cefc3a291f3d05db9bdb1dbe38b291bd4e824829225b820536442c328f072f8aaabf19d2e19416c536c9a5421593c336dec00b7e5e923aea1855fbc17bbc64d1fd8647b0c2009fa0a85e9b46fd5af78093cf886908788ba225eec5bb5c45368165882c1a82abb94744a67d2af8b61259c310ba3969b27e0a00e8e7822cac3a4db19a5a84877cffe613bb549d46ba7c8579b3d66534d5ea60e2c9a7719201b860e9e352fb53bd88ef399f5ac2986d8cb79d8af08120eebf99cded9a2be0e49d59df2f02917da4644981f86af84bfe02ea293da2e8996bd7c0a0b2cb9e867e6307f47bfdf9318cde8302e8160df78367b20a32131b37094ad43da354b5c2dca86fa9b7fd51c1e616f97dd86d731968ecb5a30e904fe7947fe6eb5ff9d940eba70de61c529c9ae0942286512aa97d679ac6b640880a205ec633cf7296c61028f36c103e8ada2c518b9d2a0b8d6e25fa3ee824bd1894e6696760048d6c1893e1020808b682eed6c01b4865a948d4bdb976c5b31b84c33a41fb453fb8b02e8c05b0604730473e72b292051fc251c1f4b30171a53880089efd4243d7c006c0974b42263d6ffeb88976691617ba169b7f9ecf6b717c1bf58a81c08100904321950f7211239b3e8a3b712be9faa8c6e3874f1b011bf94f269135df43806b965185ac21dd1f1a48ec763a0d7a6634e82e59231dfe440daec826a0f70574accf01caeeabc30dc74973a7d2e0d923fe8b5fe7d57c9c44ac7c4620a201ee1659a169a8ad0b0cb6052ccddc60aa9f7d677f0f2c729b960935791eec22aee741d8960099ff5880a4ff304f2b1e95912140a8d9aacc7a255cd02f662f7c08c976700cce44aa027fe5dc42f0708c73930b93563e8f699e56cfbcd2e38d2d8b4870058fe49ec59cd3a88246b27b272e18ed17b01262ec99f9bbb828baa1140f38790c663f904f2036601a0a28c41bb5273f70b2ae81c29a52ef7523b9139427201505ab893af07c01f627327dbb2b11e3b52af9218b227ef80b3fcb4340e1057e779b9d34d27c5554374cb3729bbd051eb445978043f157e76412cb192b54654e8708f8e837d6ff6f332bc62ef83df63489d89144995e4c6d3b43c91422e2bb6a2224075910f7805d4303a7f55fa98196f4fd6ca2550cc6b06cec1dd241fa47321ff161bb42bd0a89fe708986cc0e084276fec543617c9545927c539ecd2c012e31f63c360d644aa5ea2c50fe723e01863fbfc04b205593c800f77ba7e59b7081c08b87caf55191d010cc4272db1583b57ffc34f088d4ba677cd4d92284498967a18ed3efcc03817626cbbcc75129812be18782c005de39df04c23f5cf9d938109498d1b76df16451024efbd3dbf6666495fd20b1eb36f62ef8c13aec207009c2166db63611e29fcde02214ecfdd6b115ea68cadcb85c9ebd0258e8693cd3783a519579349a00acd880a307d00c7fc2789d3d94b12f4726978411ac1612a10b9a5d1c3ccb07fe9902ab7e6cdff6f953865cf777f589b9141305c2d75cce2d7b2efd88e36dbbe2303216d0a2eaebd6b01943d4e82b05a05f00f71b0a0be33874e06d2c071e5faa78525f8e9162cab89d4d3f68a6129ac0078757eef3820d8c0dc585c0828a9cdf6c8a7595e837190d12c3dd52d797eb0260758d7155f6cd5e2a26ece366139f277a315ce956a6fbc91341e3ee0ae822311e1b17efa3d1191d9d4b57d59587dfd0822342fa4640fa20b9eae77445ad54e048ce06197ff154c8ca1caa8e6749770ba2ab211ae5795e37796fd3f544cf942bdf236fe9f436adc56950145b736cf44a00a000a03e0980d10757216055d8ac92b2f9956a3cc9077f5db1e61dfb6dec39c7d368b5f199d45602fde49873b7759af28e020684679a79c077457d2816cc4d792e3f35573263bbc35d78ea1d338749420eb1651d10156ad2de63184f905e7a05cc396fefa74d7f619462ef33fabc1f734f4d3dd7154d3057ffee5289f68a981b1bb44922f1301e708b730c1734918c0fe8e7d9831e8c5df3adf416119e5066a73ef05d0c122dac8ce8a67bc41d2aea61bb3f848cda0ab2fe75a1d0cd7d9bcb3c16979fac4bdc5f7e287778fb101c3a6808274adb9303813bba0fe7517d2810a84710c1909a20bc1524dd2b3ca2cb53efb242dd5981d8247ff31ca17a92640f911a776c17071328ff985909c1a886726413bd707883516fd3da0301647d04c4322f37e4508e09ca4716519eeb057548abc2878873105600eb6ee28f75e02049ba41688e80155c182f137453f459e2a89ea0a53557958a015c8efeba9c49f257d85d6a3ef270763c758af7c014791dee7d428ff77e77f2c6668a8199715fdeef3006dd285c794f33849a95d3f8fb559e6f37f3b423db5d60b50a00225c5e5478b204b905f73ceb07e615b98b96e3ae05c96f5ceb25daf0175313478eb2927a3cd969d36a38037d9805b4bc9b64e9ad420a51186fc7626a00591ac81c9912713fd6c099b067617f60884e99cf1a61c6fd8ea1f814a4d58f07f1ff54627c15a874c1e858ed5734429232ac41bab9b364ec6b48433082d8e15806712c61bb3897843d5d07e81a23be4d056093d972298d115909b3f0f057a005f4a7a01ebe045e82419ef3697d691d46a540ba9cfa0995729ac82b585019a02eeba4f27cec0c171d2d145f6c01acc21fd4322887e844f428740374327a16ba057d1efd0dbd878e3a694e970981e725a9ef57c920c5546d60fba37acd2923d41f50decf29a372734ac4e1d493826e12d740c343a7117a82c6c2e3e1878ad4a947aa50b20c0eb5d72c8cd90d617c4be44f8c66e3c585dcf5b1c62bb43c651f65abcecee5ad23141ed4208f6a73c23a7665518831d6e814865c8872e9055dd0ee8fb0f5c79c489434c7c7c34b20ca6484d4b335111da8517a4393dc0b10b8f9a77d2050bec687efd477b073f138957178de8d430dad758fcf3bcfa3d73e4cb360ae10287d4439bd13c4ad3e376f746f587e9d20d096076709fc89f68808bba849931c8847151c6729c79a65191d89cc41d4e63e16493685122ea219cc6bd94300e476e00f13bd4807c0b9403c60fbc1092b34832033e903e073195c060fd08c0f027214e013610fa02f40038d2407a4de61cc89342b2ea36226c163905cb0cb95c1e9a8552d368475d840cc89f1cbbb65d897ea9a89b0fb559e9d266be3e38e6edf95a1cad00b7ddca4d9dcdd26ebe466987e00755ed90dcee7b80e47bfee6646552581396d66e740c35824b1195372c2f11c9e03d69133411b1574661b875b3aca99cd8c994d31aebf6fe6024527042eb1f1d2465c36c46033ce9bb11ebc08c20f494c19d70dec6cce1864ad82536583f17b331b639e3796704245e7c263e30b0289e44172685f5b8b6881d66a7f9598421a16e74c70c206c21bd2d660ca1c81d04bbf64b73609c79c0a011e22b4871515744ec2fba6634703bc38030095711a7e5e13cf163d32c947c052b41220c7bc3a86d470af1b12a8b3b1b3c3e73bd12f3b354529c4075e0f8756bc6b1c266fa36eec03f437f62d87a141d0a1618f7c108423cb2dff619418a28c5282c1ebf2e1b38293b3d2519cf4ba94f6c720096b8c4fd5bb54c4af95d59107c439510e5414500334de00c805e72f25b322ee758c2037afcb80f55133156c3d00ed941ce144ebc4cd80f21307424ba07090d60f0891f31cfa7a2386ad0acf6b2f0ca1b577b55cb85c58fb10b1821a767433c2ca0d3bdfa6b39b1a89774eb4fbb23215c383e8d604acb487f9357ecc429a13c697b14e648f18f22294f567c1ecc6072429d1d06fbbb8bf3f21da1407e4b4c9bf88d661b05f81cace3a10e451f436bb3a856e4e3957efbb077645556c99c19ab6e14fa4d991a3ec4f68113130d22b2f1bcbdc3a893b307b407a30845206dd9a3c2599e9d845f72df3ff8453284028450a54703e6d240f1060f55856680fde378132c9b59e19d45cd306a4e1dfd76efeb44302fb564563c2fe6ceb08bdc14ea306df4fdc11e6d6b05b8d12e47040d20f1081b586fda350ee2944b740e79e4fa9945136e9c6124e9293e29429bce803e84ce58a49fd02f5dd4574b980797c6c3403cbed40b263f5addb5a139d59d6fe024bfaf0c8ab6c751e22504a32b0d520639c170bac3b5b37b01547f7813cf7601bafd2d6d2a129f538fd6a24307889ed0e46f3dea9ed83e5800d929f9c12997d02cbc110fa67d868e8d4cbe951768f9657ac892550ef3d7378247bfbbc47de60f38690b06846d33eb4084ad2e3e24de81de96df24d059ee96df21ef8fd36bc215c35b8d51b52bfc78ecadadef68501ca3ebd054f8b6e209d9722f63d5ac9b36eab9e4e4fceec3b058186a29ad78577b9b7a4efbbe144f0486f8bb784ef911135f1664328b6e1f4040fb8c7dd676fbe53a4cb0f0ffe1fb187d8c068de197ddb840c0c7f046f4fe474dbcec323a527bcbe856c5f5fff8487a3798ffab2fe8853afa3b734bf47cac52d95f5b0c0e158000f1dad3dfadfc3c38ab63a01b9faf635640266b67cfc4b98c6a6383fbc43feaf75d15b06898896dd0718d2484559c244b32e9f2b59ed5b21f3fc6f1855886f8d4dbcf9c420753fe5b66206860d35f8d15023872831b730ca5ebd980dc69bcb4d62b26739d4ce98d3d7dc8e87e6337e3a9fd1cd1da2a1a4a1bab39f0998e0779f9ffe9aa87bf949b6045017ad655bd24e6843dbb7b6a79b52dd38020a39199e07587927f39300a5736e3d151c77945eacbfd42ee56f8e227f0932261c23d180124d29635a3f7e1664612910b836d3628a48e7f61916aac9ec39b56a1bdc25f55e7ac1a259a104b140063e508423a5bc64d13b17994464196a5f65933e599f8febcca45470569f1f857a34a672ced48851c61b2be3884626939f0c7feb66f6d642da3bccfde069d142b860be49d5ac34b4bdc6a11b13dc75cfd2ef4d1f5851ef0b2dd860eee674f528650b2ded76e3576d36213da756f6c6731fd8f5d310a650f7e4cf4bd897b63cc98271a235374c92e58e7e723069c89194cbe2c15332d0c5cc9cb6018374c5144f04ae7f30c998a6a70876bca7f6578e72611e286b34d8452c2533d0fd9f0198eff3f84ba8dcb54ec5186da290bb63a4fbbb0f38e1ee13fae7b34766a8f5675cdc18a18e650506281deb70a9e401424ccb6c657d64ba3bfb2b476aa25eea7426768d16b70652b4e268e8d08d072d794d8cc73da45d9827e2a68dc33e6efb7cbbe3059a2fa750c16dff88ba259eca90fa023750826712d01aeae1ac07780daf02664db79e3113b4602982a9a266bb973645af40a658455ba4416e96cab75e8e81369062e1a457e37cfbb6c340c4234c16d5fca57e31d8b8db1b1eff5d866545deea1ffc43336ed01f0491a081076f33f993709b961a7b69525ad1483217aae28d8b8648592ad15a9cb48d597f8341a1630c16af1f1f6c8dd227eacefb4bedcba58cd31672594e4ce7c1cb99d261ebc26d0f1ba9492797a46c418366a98bdd7cd69c7cb6a2ddf176b44c08c466e2ecf9508ace6efbf1c4156e68a26135e2b0c0c8247a49c7d9524535eeeb45319d93c9a1296607471600d9c5bf010ff1fd20cd8bf97079e944b2111022237c545c4ecbe34720dd27a38d9041f7c002c5dc317d3882cd5f507600cabc6999cdccd5390f8da68e42a4472cbec64439325ddafbc521e67f50812818880ee3d3c7b87f5ba9503223058c801488117887bd78f4f12f37116534413b241fc4019feab572b4bef6c8e0339866e220d48b2ad5b1d9348c232c1df8452772263ce043f1a31fb0a65e73a845e625e4e8324d5eba0fe56c9fcd07b17c0c1c65d44a1789ffb83087e52f82ab2e010801f4da8df7d725610bc21edf2072b59786c27e1f223c7e93fe4623f9e25ff3805c315a66f663bfef04b62a62c3422c5d30be0a2ae3bfa1f2b574db0bc5af809ecfbaf545bca074025a7df05b7835c77d7b5c8ad80043c89506491a10f4a5ef21992e6b2da97be36705c30e39fc5c01b305e298803c684445fd01588867e0c5f77a41539b5189e4e3faf8a8cccf50424eb4dd63922a8d6adbdbf8ed0f5f2609a92edaf772aff922108bd470b3f104a9c318d2fd1a206b9414c02c14bbd028dd8786844e4c38de398181de1649a7002196d63109c7b216275a913d123f6c5c1497d50fceec07db5d9ac3dbad5ab93967270588d67088203f604dd417a05a0812307168a9cfa0e89ba21ce49f41a48e8e2203d0c6490b5a9a97a4011e3603e30ad4d9dbfb2a2f9b4b83213e060102e215486383ab32f21d1e4640c6550c88881bfb008ecd2f4cfe04e17aa58c4719f80d5a519b45e24f08d15be8a0a7259ce5964edcb3f2b167b1053b4fcdaa682f9004dd2d1e59850c4d2eed4044de36c984080aaa87ca33ae729321f244d94b6841084b0b74cbe69438a050fdd711f43ed8524516c8481cc9838e1e41a33ee74c4efb888345872804c54f7ecc45a3b719cf289920b758126a4573b435570d049823ac429c00a2358ca2193a4a2a3bf276b06832bb7a40a85115c5ace2c1bdfb18fb45bf1c948b365fd6a547461c3c56fa871aa93d669fb51b271bb8bfee97cbfa5f0f81c3334120db24c8b716cda8c24b3616fff79f24429de5651a6aa9734a40077db8b106529de7a9b573e1c81c67da8c5452a402f02c976705345e1a929d684b9384e992c3876d0dd54f917256ee6b87f3b254537c903cae341e800db55831122a19872b2bb4d308245be8bd2141aeb7f3b97b49ef90987c6cfa07f8f0073ec9bf0b10d1212f47eb64deef0a245ab31c523e3cc8b2b110bcc97e9a8444ec9355582efc2375890e9be81045309ce44ae542925fb3a1ba397d864b1d09e45eb85074c74bf47a034c1077249ee811e611684e046474d899949446f622d875680a39043624724514b2e7c20a8ffe061d285c44e21324de580185d00b24dbe26dc0057b53317e6824dbb516d9a6d954012b451be060a24262eaf4a2418eae39b30edb82b1ecacc6a69bf54ddfa80168c394f29293881a25111d232ef2fb92d1cf9bbd8c7533486b711ce4a47056052183473d7a556b1283c7e465a46466b969546b6c88f8fb4095fe8d08676429e1c460cc8e4aae7a8526b4750b5f7a3c5b6c797c08fc76240241ec97a9dcfda1c567d2fae486097343ae0811084b03f67d4917fec99635565607248be373932ec09915ce3a4d870831ed2c59b530b0d05b46e91cd20322c50fe9f2f7ff99e16c1a8ea63f1b6e135f74763d348456ce68373af0794c75c2e580674b9be55c56529b3e587148b57312346f8316078773f91c7d0db01e1ac6e04e7cb2bc6878a58759c1fc9763142a5f5116fb42556fe89702f8a39fb4c68708c4991731b560acdea7b0d1632ccefc78c0119ac295b0234ee37bd1c07a9d966ef9c07283f386a1fa452e570132d84060ca38ca077e9af325aa6adfa1470049df2c6275a4ede753b32243f931a0b537d7ed11bd9149f27049c1a1e6cd6c55d8839da9de6799314b78479988d9aff3fb803ec87a6354c73f44c8f8fb760887fd4dce6b55aae20d466761230205edd3f4af0ae687e1de5cb1952d2905ae556c69bc5335881df67245c853bfe03bb1ec287e17854f2fa3a0f348e2e93ced8c3742352dcdba42d035b77a1dffa984c1bcfe57a56a8beb05344bda1664b17af205004672a00f3587f8ceb46241998098abdec53112db581f9752041ce10a29ed60fcf6a023a64b6eaa534a894c01f0c3e0d2e624de11a847b5b88624535bebbcdafc583f53a086a6030f4acb292908075079564dbe1bf7ae36935f062d2703381aa8b42e526b61c8d665d15a394f3373e460c8efb3e12641ad22258a88648679232741ae7d52e3682ed1adbe47e2a83910625957a49397297aa6d8a4f4d84cb097e27dba1bd3302745a765d937a4da111b729516d7089f5650f20a43a0d0f4de0d8a64e811ef5df72f158ff25c79358bbb1f99b6b00b2d876a8e21285dfaa232ce4515de0db49ec83d0282e224f830850a61f64644b69e833f4de51bde2742fa168ee37acf62cc3ab0285d3fe45ec0cd30b75b820fd2ea51fbb3db17b766f574b4e5c1e82ecedc7eb87c9c592368043e1e582916c9177ad37b806ca20ac36143526b888a9753889327a62384f9dad3628a4f27bacd3268917b5642229d462a05cc1c254ed71c2a83caa9063882d8428e6a6ea929a6ff07d07b372f00c9e63079ff1211218d537896948c08b04c070d81fc4a3b20f1b66ab9e800eaa1fb36e7123a38b50d2ed68e61e42c9df70cf61f5b1a28c6522c40e5f6a0cd3364d2b50dffb721dca0590fa13e57c5420532b2a6230e810d58be0e740324fb3938ca981e7dfd7b08f2fd169056853e1c8473a001e8ee79b3a988467d9eaf470f30ee073d6cbe78c648b15b832072d1d86e3d1b8e4b7793f651f68b579d262d86c94a69ef40036f452d6d4c6e1be66acef5fa5d4a7027a353d5eadaea9ceeda0dac2e091533284d71ce09dc4bb582259a3c39aeb0539c1fff5e114daed2e7ef0344a0d36f2d56ef4a09d3de3ca2ac850d0f46eab747daf772dbbd278fd266ef2cf948b1f8e2481344beb07d08dbd764df52c55f758f4f55f46aa30aa8b3d33efb75eb9d920cc10eda40110e26682fb9a9a1365ebd141f735ea688a5da50a5c61afd22eb4077c34bc7d0905d5117d608c8720c5369f5267d6dc0bee2fcae1b2d8f675a871835e6108edcee7a1dd8640b23d68d12814cd5141313638ce1400f6f28803e21b221d1f94fa0db278d8d3c2b04da8418c9ed3e129cc2a8b564b71c0326ef0e4098162d1f4e4545252aa9545c2a787a8112d17b9724875574a43dae6910d84ac07d2ca945c63179bab7f3003f14dff149d7336d054bb816fcb5b983592d14b6e05ceeb05a7f06a9ff963d8ce93174be7509bffce571838e429410637bb20a7385022f8cd4e281c8eb2d29ef9265c0d31c9ad74af3bb55cd898a9e071475704c0822dfdca383588ddc62c83ef2001b66b9be8928d0b278d33f9172d764652a7cb3f8034ae10709f04eaadda8ac239ea4292190c7a81bc01b70a98c0b29a6d2ca08e072d4fddaadbf2e274866077c42beafc77b95aa781d295d5ce126499f1a715bb3cdcc8f1fee9c7dcc5f79d26ae43d386dcc818a8909f334030799302a1656c44994042a4ef18b682c73f73a7764817af24891aa2fb2303cff148ba447e6ae57008984089470463b3a0c383b4e73a9e055141b1e95eb6a67c918062a851cfe2d1d954a56bfcf45263283062623974b41b9f8c17607e03accae7c2d4331316268ef094963f4c7ecd7d81f7a18ecdb3047b274acf88decc0c05dc02025dc089993aba36689b636483cc2075c915e9333923ca9ce17d3e78b8bc21fd8bcaf81ca033b52c602887154149ae650b98d3e298bdee8b656c0b2094f9bbd2d482a9154140a6cbb58afd3827d43a69762adbcaf792761981f938e59a44878b06fb42996b15e6b1a05d8a221a07860c29ee50c2ca225b525d08d1b9c915f0c4ad6030e0614bcb2030e982f2ef37fab8fda2577ec0480c5de7c85d36e0a66aee7c13559f6309ef05900450b6cbccc1307c80ee10a416bba058e7e96a5023f7e3043279eb4845dc07d1a5e74006c670d017840fbe2d6783631cafe190f258b4469e47db0310794d58ce22c97217ee0bb8a6a137f8d4ae847d028ae3ea38c7c674f5ee77e3693e988c717a9bb792aab668651e54cce75dfa7e551b480b8884c8a1b243264be9c6382acf8e6be702f7e74253c13af4a139dfdd5d6e0836c3ac273b3d56ed040927c68ac04c76f3a92a61791b27bdc23407a314e425305c5f44803f822d2b23dcffd77008198cbae71d86b5dd2224cf86c834d164bc13a9df48687020cc192188d205fe2054a2bf3f015e52d230a30365f0270d6b412ade95e4f90035993ca0403854fe95da9038a3dea7cdb7174d45fffcee568cee5140d48fd445045b86cf44cee28a82135f424a192f2270214aa50ae3e9544f16c367e24a4bb8ff2f7a080b03c544370861f8bd341613ffba13ca77ac4ba070648dd880e2d0cc76a01d6b507638c38dd534cd8e91fdcf651bfa3be684f24c42bdad2b96e01ea3c60af29221dd80cbf60047cdbcf774cd997929e6221bc9016740d9415cea7328c5043074ad77d57034bf3b6e40393bde00299948d2adcd0f5806376c5fb183a4f6fc2df600b51b483c9cb6cb5aea7730781531efc0b52d39fee679d09fb31b2602516b2d4ef05ac53def9be53b892744430ac14d8f83799e2c6879482c0d561143d7e264405c16737b367afca3cec61e65fc81a8318a3ad3646250bbce25d219728629a9b7174533f021baefbadfb7b0cf35e6de9c043ef655289a140fa607834c43bbf23a080014cd4ac2662b801ea814053e679d24a54f9aa6bfbdcf1c98638fe2da9483fe8388e024ff563752d0abd2cd43c6a9b51b64a0b7bae4da95ae2667eb0b5449ca4a34113e87a84397dbb306b0971405c0a0e83b47cab9ccd80a81e534c03bd323db32385b23556142aa1eddf361a0c29fcc6cb3c2adc73470a3e8d9b36455c684061d12318ea7b557348136e9a1e6353664605e034d7a8d158a86327ec07c85e57c25225997f2b7546a9c4228a73163e2d237f40b5a81b46b29aca51a633a6346be0a29b32f5474ad6d1a8370a51e8e60f7d80019461c906feb045802ba06ac6e5b2c0b2d2ce94edeab65db484d783a00166e3e393f2671b5080926f42e3f2c2a60812d30f88e1001e40e89c3b0a4b6b83ffc75c3e6d93b0d692b89e911eda09045d72688f01b8f549c421727d4a4fee547b03a98cd4a7919cf2459d5d22834428570b99b919e655daff69e79ad6eee5cb7d1c140baeafc5e4fd40d573c04c6cd60cb7220c7e1d7060763168bc1c94da67411cbe3c271b1f87f0dbd9fedea1dcafd3af6d1768dcad4ebfffefc83ee9bec6dc9becc77ea48bf5ae4bde1b9cb4a049472962de2da468db7fa96cc401456b8036d4310f4f26bf060d7f958ffdeb968edbf16008e0c0c31504bd557466d8cb4a3d721658b7496c3494527194e509c35b4652c3b2940f4f35fe4c9ba48100ecbd3ae0e81e1b384c736c7392b8a6c5c0cb23d9974a50d6d5ed82b32f9a73b67bd05044619003faba31e5390d05d1059ea20910ed37ee405e279554a3f9b285e5cca3416ccce812f458d84656d8dddb0eebf0042131ed58e3f330c4a11bf42512919b5412a0e65168721aa701b68c535a3ca5a307134228ea2656faef3bc5b6448f94f127133c8cd59d8740bba45f8dc568064d1a7b3bd59a189edbc99c6a861d275b13fc796f2a04bd3db424f01a34306811e0542346ab30ec23543d481394205871eb0990b7822706fbe70e363cf121a620ca00f9f06e1801c30ac9fd43633b06fa537d856d092e4072874941c820e787157dd47473233824706ad74c61c903aae5207ef915fcbfb8cc42eca37f18ab46208d3107671056229b50c072ae16dc483641cd83c67243d4cc34ea35434960ac115c08214df86f14751f2b48766c8270316f494c812eac402f45cfe2e0b819176c603f74ed60ce94e582c0077956c72e6b6de865f9c1dd1d11aeb338fc7184f19310e37055eb56619ae9655a06be2c53f93a9858871387b31e3268693088fd901684c005fb64593eff8aab07b89d9585ab72c21c11c086d35b77a19a59ab571438182c14e40c4a0e906d8accd1964b496306f26fd8a30aa33d4ea1b691b6688737c0024598069460c81f57079d7e77d3aff22d182ac4dbde706dc2574d10d2b2f164cec19281bab9630632a335508150b075be20c41a5e185e02cb1c335023044c029ee184e00b2f80b4940ef030c30c33cc30c30c33ccc06cb7579495128451152e0312015352a6dd125c245754fd27a154ff49281425f00b950bc20b34ee7c61913589cafb7731f7c27a31ccc1a6d88565a44e32e45c58ee5374a764681d735b582fcfae84445d0c4f0b6bef25fb8839437a9785a5ea53c8e83e641a87856557a2575843c63132526e9c636685b5fe3253a82c69945561ab8cd820ef4e6359a8b0c747e3b029ac1a2a657c5629e4ae4861e9e839e6a8f19ba3b0ddc73cace90a01a0b087a8e7a7127d4d2785004f584472689ade0c31430a019cb08898245d8fdbd1914280262c9d53ce251117212185004c58c2b233786cd0e82285004bd863d2bc29f24a58721e480c2149fc38095ba3ffcd2712d6fec760f3378e907d35bc98792a46584eb6cebc3243d4a914614fdda1d13344d8d4c7fad7eaa19743d8fb5264f28b091f85b05ab41875c3444993206c35bf11723b26b1a80061ed9bcb3e499d92ffc18e3a998afd379cb80fd624c95175be49b17bb0a54721797aee28270ff628996156fd0ef6b9b49a8ed7c1162d432635cbd09c1cecf72027bdbd9c1fe260bf18ab4ff3da87ee066bce5849890e016c60680aab71bcd762d5b4996366171ac769b1af75cc1b34e420293e8bed628afa84ef9c435c164b0ce1f5f3f058ec19a49fa49d69d786c516aa327a101b0db27ec566f951ce9b3a58feaed8b6bce681a54f9a5bb18a6518374164cb32acd8e6427752e3556cd760f2814555b148d294d365998acd1afc5e4e65323ea26253f3b5e8f9d13f8da7d8d3c678f7bd8f52064db16679e5b0f152ec0d2d37aa7f756e48b1f7ee8794b4e162f046b1a3c929a530d9daa828160939458a8f9042ca42b1f8d759aa7a460f03c5da20a5507339d2fd8945bb437268103723c513eb754a9fa5fd08e14eec30f6b266423da4e2c43e950ef4b33e34bf89ade185d43f67febb26d6e935136ba86ac8f01a9858aeb222ce7e89c55104d18a2db10499587ff93f460b914aacf1cc1a672a9f129bc487aa506a12f9492cd270c3aa28893dcba4e73abf3e8cc4d6319286f790d82fe4896097aa62fd2316499ffb1be638627f14bdb39e22ae7a1ab19edc4fccf9a39b1e462cba1226690699c65fc4965639428a22168978f4dd592b7d22b6b30a0da253a483882588ce349075349f436c1f72b206315c8edb104b4e6b9091e6ad8585d84263a88ba39d738a13624b195dc71cd383d852ba0679b720f64eda37957655431d88f557463353aed4a401c45ab9e5a75ec99265feb0c599258fbe212eef8735e5904fdd93cec3dc873d478b631e974358980f7b48c9df9df3b318ddc36a36dd208aa3fba8ea61fd34b98ad166cecfc35ae9ee573b63321d0f9bd704d5bdee90e33becc82f439cb4633da61d969ecf78c3f7442e598755e5632d787f2615e9b0e69fc78b328df18673d8fff6827cf88fc92387a57245eb60bb32f1386c579ef13ef9850fc361f910f37dfadeb09a8feae7a98e879c1b7614e33a1e8fb561b1f58ad9a4b161cf1cc3fa3a7c246159c336913244e96ccaa5a861d5307b0f1c250d6b9ca87955e3374d081af6f4b0ecd279e6869f61877d294d7327b39819f6924ab95f9f2eabcab06588b1953ea6f893618f667fb9e518c3f1ee16c37ae23075e7af8b7f18d6d03531a71a0c6b6ad8d48d527d613f9bf1ad3069df5179618dc9ee269c84c61855177618152665c79daba8b8b0c40e12bb31b88525358c4c9afedcdc6b619f1c73ee45f67ef65958c26c2cf53b1af6070b4bd49a448fd593972b6c1a6f2ef66185a5c74a3cdc36ce5761df8fc6f9b6f306091516f5245f69a229acaba97b12b614d690a931ec694631d75158ba92758c56e5183514b6fb90248314ead2cd4fd83ad766387a9fb5b213d695fc93379d4ddab8097b909c9212d5e3673013b670b8e1c42ae5145dc2be9f362773a4d45309ab4c88e88cd4242c0e5356d49d11f51409ebdc656810f6738ee9119664a271423ef5a0a91196cf60f22b2dc2f29fb6fea2335a4389b0a6e8f57be193c73c8425650ed14f2339e852085b4dec5c2995535e32086b5768e3918d2155202c13324c5c929ca1037fb06a7f486eb08fe4401f6ce171e7e7c369d07ab0c74f9a94373956c68325641c5a3f9dc1566e078b9fa49a902a22a64e07abd7e97dfc2d075b9dd5f7e66e9ad20680833d2c7ce876dc9861ca006eb0c9aa4ce4143a645819800dd6f239df894a2d165d8f8d6326b4583686ccc9633266b1c5fbb160510d592c9e43a50f31331e5d2316fb799a5cb4062c76589aca53f414a7d578c5963bf6178e57ff1cc3156b086962baffbe7cd168c50e2c6d8c9a9311e267c56ad213bf3b7cbeea57b1660c1723e29add7d54b18e45a42499f7613da9d81ff9fa7aa894b27250b18d68fda4cfbcdf38a7582c4b233490109677536cb33926ae3e8275bc144b5a7d06b939b6344e8afda3aac3eeb164e91ec53ad23026c57d28668b62a9e48f23444c89b909c592e591e976cb51cc80624f6311b52b74b0cc7c624f72f126f2cadcce9e5882d8cf568ec989dc891d389c0861232c82cc892d74ed6aae0a7f5d6e62c71191423fce983ea889352f87ef1c25754dccc48e92c58c3cc39ff59858533fd77adc28b6b9c49a3211f385c409de5962bbd3b4a039c6abc95562c997ce3b58d4f1c851623d0f4b1a376199ba496c31431c4958cfe44b629dd4ba4c4562fb7e743d69fa2787c422a13c74e6fc31a61fb146bd2c5feb384975c476396f98031bb15e0abb9bcd18b176bacd9b54cb3cb1456c8e2bda8a4711abd6d6df89c6675a12b1c7c7e12f45828865f5ccd4d18758266da428c9434ad0104b0841ab22a6a4b25521b68dab9ba2e6343b1521f60a1e257a4ed91007b16ec70e6fe829ef13c4b1d285ff4a20b614d7642c84cffd1880d8eb6a73f034918b3fac562973d6c43d188918e0c20f8b84db5331e910f7d387b52f7e08ab111927933db8e0c3a219544ad0f01135c65cec61471fa79ecf631e5d7c70a1871de8c7e025f7512d997f7091873572e65ffd44925013778187b5f45369af7d5cdc61b9897c141a3d044810002bb8b0c3be717ed36158f0dc74012eeab0c6895e556eae022ee8b084ff9fc6f8b0392c5f391f83f4d1b51d59960af80414702187e52eb482c7182a828b386cd3c8e36f44f7e4c75cc0619bb4493fe49cbc610719578a5be9dff80d372c7962c5a60ea3ba5eb7611d5dad7c9681aca40c1b96d988df39aec3f4399a12a02004ea031785740c3488cd986ad853f490f318ff7f3c4ac9818b342cd6b1236f326858268c7ac65831d2aaa736707186358711b9dc591391a10112b08027806986654b7e26c3ac2e6778199614e22ec5314a5d9923c3b2b1c6735dda8f929b8b31ac198544d565a5df3ce9e32980c0f11458406934c08518f68cabc369bedd45188802d2b800c3ea7132467135a6cea4b8f8c25e6be65931784a19243d602170e185f56f33928d24cd18f32eac1d255aaaadd9bd54920eb8e0c2aa0fc47365878cf7825bd8631c45de1472faa4980b2d6ce621c2aa2468dd45cd14e0220be4cca99286f419982420010b98043448c002264121010b9804a5062eb0a02eae80c4de8a1fc92f480a5080145c5881727c198564450609b0880b24900102d470838b2aa46b67b1117d16b8a0c21617f2511b1c835b0909501f708120b898c276397e672e7c296c19fd3932cb65e9d7f303175150248518b7c6c22e37257001853d7cf091903c3de1ecd3cd702f76c2d611677384ac09450c93ea1cc5c62c2270c1841dad2479e8977e3c1e2e96b0a79c3154b48d95b04acab8bf903e797a92b0fec5489f92679063a628c10512168777f1b71d4cfa4147d8634b2df5ac678455eb9257ea9c9f23f9e6a2084bca289b3ccfe6a14858c00226174458c3ad8784e93f84ad574f7eef2e6584bc10d6d31444522e0ac21e6b7a494d62fc6d18109691ab4e261d234770f183356236d776868f1e8710e2c2076b74908e51f8a85170d183bd26ff983a7868a13d0fb64719c32dcd0e96ac4e21c54cab32ce91004742c1850e96289d55d13ef85c485ce4403fcfc1244ee7689e708183356a8e6d90fc3925c79300c759810a42d00217a4e09ca0042d2072061737583b323a4d2ca433fa63706183d53f48c9cee65f4d0a5a5002a8c572d1761be5f0328d8a167b9f5ec8c818f7045343a00217cc6293f960255a8f52c89d8215a80064b184280db9f303ebda42a00217a4600523388cc516524c49f6c1a466947356f00280c5621dbf4f4ea39a7d4e0201bc620fc9b721018e12b86239aba84953f45535c909a0159ba7cc9b83940247810b8a0058b16378f1ff22af588ae5a1809238cad4997254ec3858665db20b299e62ab3cc7e1fc633a889b628f982cc4e6af7c0e2fc536c92e3dacc8733c2996dcef591fcf57fb28b69c4be5a79671cc45b184fc8612d2a1d8462aff6ede550941b1e4cce49dad3fb1c34e0de3133aa44a7b62c92921333adc893d2722e4e306ba29cc89d553561e2fbba8066f623991b44b3712724635b1e7ff358e13d2624433b175e694f61bf5a410c5c42665969116b17de625d6b98cd42497d51869893d644489c3989629566295f9b83719ee841129b196696c64df8d2c8793582d5de84f158ffb25b16546ce7c5717b647629b3ed97f1483c48eea2fc98a75d8658f58ad4a32dedf8c1e64a948ca30a79c2e8dd8614c1afb415fca97c2887d1ae6fd141ca54e9545ec1d19abe520e5bc13456cb5791b36ce29224312b15ee6df6e79a6e80822b6ff0c534638afa89143ec1f1e7e3436764a8821f6db7850f3407e2d5288fd63fa09dd4e41bb22c4f213ac4225bffcf031887562a7e5cf11e582c30862471fbda2e395c3354c20b634e1be37c5ccf3c900020f632924e490f9c39a4954c5ef320c32193f2c9e974f33eaf20a92e9c37a9126d433f80d15193eacb519cea2d457467d0f8b86f8a871a3d80d5d0f9b43c7c0e1fd597d9d87fd5277a42f1b0f3b48b9ae0c4fa25c7d871de8c544ed3471bb1d5607a142f80bfb7f9a3aac93e1a610267aecd3d0616b1c63648ea6984a338735d9c5a025a91c05590efb7648893f575e13c7619f7ab42395f3f446e1b0c5ba5cb3b5248fa26fd8337ae029d3acf9c70d6be50d8f3ddbb0a6cbc7f87250c975b2614996213af0b814d25cc31afde32447a31a96af304fdb99b9f397866d63d5e31083a6c40f0deb3fd89e1462ecc4cfb0979e86e7dbccb04fadcd496d9ca9ad0c46c889f969636458c33b226cd467e86c0cfbe40d1a272696268918b6f0e49f24ddc478240c7b8ab1be42a4e4d702c3be9ee773e3d7ebd51756297fb017f6cac9fc739a883938b80b7bc820327ac76b540de6c2521ba1c7dec29653ca9228a21a72b4b0af7c4e1b72cb73b2b0c4be502184df491a622c2cd7a0e1e752d194bfc27ac1d6cb22d3a3e05b61bd8c0fab18dd0e5661bbff99309afebf4285fd6364d3a138c8299fc23a3be161067ea91496463196a7f2e4688fc2728d337ca3f41002054239f4096be6ab8fdc8d13b69c62cab4fd2183946ec2127e928258cd843d8768214e928d8fb3842d75b4d0879f7186212579f8debb8c1a20093bcaed94b77398ccac06404212ad1ee585590d70842d8698c16495e6f5580d60842d34ecc7c44c4abdaa018ab023873134e5a4488eaa0188b0c5e73cf11f1fe65635c0108c88e13cc5a64258f5a224d9afb89dd220ecfb304cecbc68e549202cf62144c4e8ce9be70fc8d334e328f5c1ba39a5920c2c25d37ab067c74c6921a7c9c283d5f1578a118bd7a81d6c973b495fa54949a88325676d78e4b03a9c832dcab34266cf43fb70b05884d98db0016eb0f9ed59929463b20d60833d43680c571e634cd762d38994ae0e92ca365a6ce59579e26599876c16ebcaa6e4392d8ba56347326f701ba7120b4254585f7e082cb6890b3a9f24afd861e38c924c167a21ae587df36a4a6386dd542bf6524b29793566c619acd84ef4411ecd90f265ac62cb8892a531ca619e54156b8aba0d0d254dc5fa9dec33c61d31464851b18a5485b4611fa3fc2996865f9fb136c596418819220e6ce3538abd3603efa9f8197787147b4a8795cba8c46167145ccdc614c317c55227911c8552cb34144be48ee8f0bee35140a1e97c8ecce84face938c664ce78628f099330fed1f6d289553bc6ad1beb3c937262d308df08b12982a49b587208d1e8e2d4c49a8375f8ba485d6666625b75d8a3298989c51efd68a8d450c297d86ef5fb6c3b33382db17cee0fa9aa5436042bb1677aea483f25b69d1bbfd46f124b8c8f249608b183587d524b466295ce9a114df922e520b145c8a8543b95327dc41a21bf3ba9e57a9823d6b8fbf9444b571ba4116bd478e2386730624b79e3ab8d456cd5d1951eadc62f15b14de4470712652296cc172a55a5c1469488d8f14e0811f2432c0e7b67ce3ca59436c4a23a9b3af1d126b1105b0a676612cd43389e106b9e0693d2245fa906b137d0ccff1947108b6dc8d0f7e381d8bc37dcd56845e80d88bdcc32b4cfdf14eafec39ac14c7ed80f64663facfdd53d292d5a877dd8937d848fe9d3318e0f8b66a7682964f6b0a4e432558baccf8c1eb491cbe4614da1d632aec4491d0f5b4e8b14997285b9dc61cd2ba3214cd80efb8e66d8d761d3d068ef3287473d1db6aebd89701d9ed17358632c7d4621c6fe891c961da9e3b0448f3c9f3b16295238ec937faaf1966fd83cfb1ba8d7633049376ce61976694e1b36d1b08c2c579449b36189136262cccfcd415cc31aa25ff6afeeac04d5b0a38791cbf197862532564cca9d72900f0d4ec59d74ffd919969481afd984bc1033332cb142a70f21ef37cacab0c4b36a301b635856c8b0a694223e0a0bde371943718264dc618a6135fdf03c69ad1f858461898866a912d24c1c0c3b8ca222f131f95cbeb0c3f8c917292f0c63929f4f9d2e2c3dde17e5e3c2be3166f23fd354d916969c41260d39c646450b9b4ad09c9b9b668f2c6c1ef179f77258586a3f3ae3fb1443685c618b8f2e427c2b2c1599f32298c5b8abb087cc948bb5b4cd105261c9b974a4d164a783700acbe44717c57ff21a845258a3928f79a37cd4208cc2962726ff0e857d2648d0dc483ae34f58d55154e6749f24f74e58fdfca61fa627d99bb0e390c93871262c37292f65bc84ed7fc2f243543a54c2be8da18fa586d52409fb57cae89920610b3965f3dc5adec711965f89b90c1d236c6932fe8cbd1761cfd51f428e3b11969c435ce834f1d0f4216c237513736c3c945b087bea184b527ec8116382b06ca474c9bc338c9901829d91c5fc609dd018554829790a7db00713cf0cedf2f1b8077b69c5d97a1adb0bf340fb9061083f77b0448ad1a8526764a10ef6ccccdd73d11cecc1d2a74ebae260f59417fcd23d1af5069b68d97fe9868ab12c800db64a31595207d662138d8f1fad9ea58ed16235796821a76c16cb07d1dc9b7c37844c167b862aa5a9714c7d97582c8dec415a0e6b8c23b0a0e3c15ac6c82b9668de40f357f81042ce157bd2e825b7d5396675ad581a6e0e99a37de3781c2bf699d5f5cf8d55eca131fa4f7e5f5155ac3351638f65879ca662e94ea91e8d57be0d15fb68e5cb79256286d09d62eb8a9e4f1a434737c59aa193a33a8e61ea522c21a61aa768196b52ec17133fa5e419c59a329974c78862079b9529d453e77028b6d5c9b1dfb929920e8a25ba534e131f3d87fe893d48f4f0cfdc13ebd45a0a391d7d8a9d583c79d4cef913cee3c428ecd183bdf42636b9b8e239454d2c36d9bffbc9c4d6296d454729858bc1c496636288e972ec10bcc412f1a6d1fd47873963892daea18665b0f820a6124ba79e904eabe44286123bdaf81ffaa387d8f024facab14b29228925e434163b49065571243691885595ea72c881c45e296a8e681eb185f898320e3a62d5cf99b1316dc41e836418674e466cd53973d137d3d745ec1fb2be1e74a33215b1e7f8b1297a4a111113b18747919d6188271a44ec3b1e1c4594075a1e62df320f1663f633c3107be660dd783fa30c5d21368b93a2e58446b127c45f11b341ec397a6454c304b16887a9a4db29846481d8eed38760e653271640ac5fd231e5287b18ffc3e65b199c6fd845da0f7be8adbf86b19932e9c39e5149c5ea638c49f8b0a3bf0c0d6afb3f5e7bd866cc815e945e0a4b0f7ba418e2ff68a726f3b09f8d478ce77952888755bac3879043a7cdeeb0543eecc8976176d84c728a1baea3a264581df68c34adfce9b005fd7c3639849ce1cf61b34d4d1fd323873de59ea41d3c71d8663a6e2429d5d10e1cb69c4226b3c98a957cc39e36f5a4676ed8d26668e2b037e64b1bf691af4e0f1bd69831136fb66343d6b0cce30a793f58f84b0d7b8786a761cb182f4ce41b0debaa5a4ef1332cf11764e233525e6d8635376ce01b19e7545386ad7187ece64d957b32ac9e77f93a935458790cfb74ac880f736edf6258b31ade3e7450936918560de14953504f2a2618f6b20c3beb3f4ddacddba0c60d291c4ca3061a369c53a315ac3a3fbc8641cee07963faf0861a0e27296d54a434330d8b65ac4d954a46c3921ee4ba7c55f93e83cf90a4fccad0347277ccb07e88ceabaa6a19dc8dc9221faa850c3d8a762be36d3106c32fc3ddf1dd88c5b00739bff028a68bba64184cd65b551f18ba4b7d9e2dbe40085baa8f26cd636e0b2f94d673a7e64ba1f1648b2e64f125df202b565b708198a972904d773bea165b70e52fe3dc7b90e35ab6d00231d7a306975e6b626f9105265599390efe116e81857167f0c053780cecdce20af7af64ed4e56d8417e8aca971954f058159a94c6d46472c3b105158af21f7b2cc314f32da6a05f2e9fd248e1f8b2f4d57f1c6514d87a90ab2a28181b723a5e4912299fb0cc84901bd7cee25d8a13b0896a19393761f59443e679d4b852086102f1c258d8e9de8d6b2ea19378b18e1fe77a5c5182fb69ae27322f9f684930ca878bc142dcd48f04c246a9cd2166f807cf11ea4bcb540deea6ff63844d9335f0cd31c38cd145d8a208fb4cddc4f2be9ca1812ae013902d88c089845892a39d9443e83c642c0f9d777521943966fc98a2240cc2d215c7724fd41063f84038c709923a5db07fb0578afe485ba1ce82c6077b67d49d3f3492ae997bb086c7bb69bdaf3fd43cf827adeaf94ef53bd834c3ad9c399de588ea60e98f5ba7be16d342748b1c1cb5f1924e78f0a12d70b06a0789b7973a91e17983a5ea1a7d384fa91fba2d6cb06a0aaafb19c72bd5a516cba4dc6e181ba48c41082dca88150ee56294cb2c88fd18e1eb3c2e8b25a793a419c272e532166ba7208d3cf467e49082c595d12186f02b96adf031c8dde5fb10a9800057e8115917d919ba6a051f7a5219c38b21ca8a6f3fa4b829fc5ccc2ad2927c3975aea4a02a6a74a6c294a33fb0f3a83d39820a233cea587b39c548bec2f53688914c617857a3cca1521031d4a62e5f9d9214cb9a7ceda4cb9f1d8fe20e315546f7668c8ac214338c9c799aa160cdc2a1c68e910f50ac6b3915435889f0557fc2c8d1a672de134fb8be0cae4e94eac31e23d190724ed45b9d111a9bd8532b4b1c6e4613a677dde718bda3f16522af549fe23208198d89ad4c6c63487f0d2fa824a84b7497a342ce6c091f487a6851520963daf87f3c0e4a146516d3f924ca308caa7e92b82e6598a48ec4294fe7102f8ae419126703bf0dd5a33b7e3f8214f13d12710421544deabb11de7c0c35592280119b87dc0d523c9ddcd459c41ad724d5e3e9c779374411d738cac939f82511cbc646d3b03626fb0c47c492316ee7cda83ec452bf3d293ee89f8aa021f6b0f1472a836d18f35a88519e9826248aa4602321b6ac4b21c41ae7d506b1df787eb81237ee4453103bbe1c6237db71bdcc40943fdde83a0c0826e451cbad3021f7873d7459fcee0efaa1bb92fbb067456864b7231f76f0c032a5897b58bbd2e2a3348d793ad2c3f2e761aaa36485ef97876df3224e2ea6b58d142420000f7b4418b3bc31a21a7977582e43d539d3701332cc0e3bcedcf16127779aba3a68daa3bd693767381df6bc117732a6183fa5d81cc8d191d9f9e5fc4fe4b046b5f4739bccefe171307e7c982125f72c70d8f1e449e9386afa0c9737a036b73ae369c173c39a651b73de20f63ad28625e4f3a01e532e040860c31ef2a44ba426a4ce1ab694ee4da0068365506b19591af67073f1a53a1acc10d988a9caaba27f867d2fc620f10dd71a64cc50c6e39ba33fca259561c9a8e3eb61a4d01d93c11c69fae0b452f73a8635ac727949cce49b9e18ac6cd48da265493d8a860af80404060808c3729a1e2f4ac69ef88d54019f8034010160d82cc614b6cb2c76b4ad0208f8c296633a355e29047861052d500102ba801f400017324b7114322ba41720600b85002d6cd3f863cc7a04062bd8801610908522daac0669f0974200169610c36720296659e9e50908b8c21a39d9512468694f0a02acb03e90add4b9af0adb9d7786d854deb71a1536cb29c944c5b06821ee02044c61a990e3e3bd1d2aefc70202a4b0efdffd2507f171ce5e3c404014b6a9cc557e663b111a00800202a0b0d6c45863214499e59fb045c74175b72c3fe49db078066992e7b8c839a709fb6c547fa6de8fde61c2122d5423ad54f1bcb3847526a36eac57beca51c2b2e919a58816a33c4e12965092267210097ba673b0b72651e311d6e04973d0f4b8ba7223ac633ba23169d132bc08abdd67fc950b517288b0a7789a39c57d8c9243586cec6a1de5fe241a21ac2a6937839de8e64c1096799c71fae4f99001c2d63177e8fcfd2106f5075ba6b4982ca73ed8f34f3d62d80cc3cf1e6cf31d4bf2e6c196ca81e7fa928ff10e160b99dbb8e359a6e860f33c76b7f3b163ca1cec203ce25138f04e1f0e96aff98b1ae672c36fb027c7d77396610835026cb0e4b0b2741967726ab1c7f1dca92ae3a4f0f28a9ab4592c17aec43668b258a63365638314692eb1d87ef284181a65eca4c0627b54315127381ccd2bb64cff69713bcf86892bf68e7fd429ef649c9056ac9ab2328244f748082bb69849e9fd4af90859c5e6bfd1196f279b0651c516cd61aa89b1423e2b159bec26ad0ed251ce42c59e32aadc8d758ab553f587aebc5dab4cb1767aca91f37c6c74299609931ea7c8d111a627c5e2911cc36f0c7310e947b1fa972f8afdd31fa4f37836df876249adfc205e1e143bbe8af9945babf927d6b08dc631ce209e399ed872fe4892b3d3d49d4eec1f7af7d166f4ed39b15d6acadbbbc731dec4ded051a7dc3d4a514d2cb1a1a6ddbd50f16562ab7079f25c98581a3c28c94f3f69f24b7ca97565d13796d834a37ca17c53893d3eed84c75d99364c892574ac867ea2521a9ec41ec3ffa7e53899332c8935a96ade509aeb668dc422197d4ad126eb4e85c41647f441846aca481fb14fc69f6728d7a8928ef8433c34c9343662c9c124724bf3658d8cd86177dc06da9552e616b177baccd59453c4965d9aee3baac8e412b199693c10558f2107119ba4b01bfaea3fa387582a86d0602e37c46686d8a2f4674612531f5921b650cd380709b1afa7c88f56ad265306b1ec6ad09a1411c4e22806b98a5720d69b4a76e927a7370588cdb7e452567fd8d2e41ec9ed87f52698e398696f33461fd6101fbf95310e1ff6bc9291bb2b2f5874f6b0a59fffa30c3a7ad824e74e1fe367d4cee761d528fb1904bfd3fcf1b07c944a1331e6a896bfc31a5151d2bc7248ebedb0c790738819fa3a6c357661b2427fa60f1d3687394ff7672b87670edb9aa965e83161abcb612bf3523bebc738f3382c9627eca7bde1b0e7a4ddf5111e62b2dfb0860f71c31ef453ceb00fe96bc396d144138df24751b361cd8f6c1c33e66c6ed6b0ec95cc38dad849aa1a5647173f44f754f4342c979927f8458a1b346c7219f54cb33ce4ceb0248906318566865542f4838d29c3629e2753a4a9f8294886f5e3e4cec01c07916f0c3bfe14672ef7e6fa62d843947bf465b6410fc392973f43aa0d0cebdcc4b554d917b61852bc512f99f8bdb05d4ea317c32ce6dd85451d793f0ef9bd1b2e6c395338af8876312e5b58f2830f1e42a4d0b568614d6932c71cad42fe2cac5d5e271e828525a95ffe360a1934728535a654fbe12056d834a3dc1c371e37af2aec791a1b3a6c709a2b2aac62a37177f7ac3fc3a7b07772d097f3e452583afa2e4d5fa5c67d14767ce3c0cef250d82e44ac52ad10397a9eb0f83abee87b6877394ed8ae4642f3f6262c9e338c6339a645cb99b0e6a5daaacb0b1ad34bd87f73c61999ec5edc4a581fe6f3e42984afd424617f0ca5e1a9c64c6690b0a38a90c26f0c8fa147d8ebf1e49e3429e5c946d8628c1cbad17a5e938bb06718d343f71a598489b0d6c5d39fcb341a1fc2962639a6447a838d10f68e9e73a99985d16410d6ce7198728f369813089ba846d49e44ba287fb044883432f5370e823ed863ae444edb9f235f0ff63fcfdf7bf2605b4f49f2f63d8ecbed60b9c990d915733da983cd3ac6470cb11c2c571a3e761e073b4e21c5bfbec17e3ad6c0414cb92ce5003658338fc6c50fa9c5fab5b67ad6152d2d5a6ce30f34eef13f4acf62f3d9d048351d6658165bc7da903a54cec08bc5fa403578d4e9cf28b0d83c8364142b798cbf62f38a922bd954c972c5aa167c321ee93a07752bcef1b124e7b362914b353bf52a7620b1347483349b8f2a9659eb1abde811d1938ab5826402a6d82b4d320ebef3413c5d8a8155f9cac73948b1c4cbb07329f562147bc59c3c7ce2edfef8a2582c25dc698e7ccaef8462bf739897e6626be2088a2bcf97c7da147d6295181e2235f973c8399e28c7f0d02924dd3bb14dd88ca5b90c27d6f828de9de41c78b189b56ed524a3460c9aeb923378a18965cc4b53ae94552f32b188c5ca39d97e4ad2680528a0ea0526f6c92ba28dd6fb3bf8f5e212fb4dc8133345dabe9cab18bcb0c47adf716573455e5462eb8a69191b471f255001af20051f022a94d82b2ec43cd363c4189100c78b496cdaeb510ffcce3bcc92586c22874ed76d90f888c412a4f15a90f5b30f1f2496ff8e31a77c3f622880022f1cb1563a938d899d532cc8178dd833c3cd7035060b1e5e3062cbe8e9394d4ab5f062115bde7b14198414954347021cfe42114b4444988efa2d4fed4522caab17ff5248db0b44103e37865c37aa123439bc38c41272f464e17b42cc7224c0d18266149c109c5e410a7e0c436c128e42da98611de7b5102f0ab1c94c68c94395308908b17879d8dc6d90e0c52096d8f7794e1b2599b5c81e5e08629bc91f9988113dbc08c49631beb8320e3e631c092016bfbae8d968457ccc0d1036bcf8c35619d3828688fa617b1c53e6d89f565f921b5ef461fb9442c4fa7cd882464afa4d68497ed6f0620f6be65ab15b7320b9173dec919df23493aa244fcf8b3cac96d26ff0cf14f7d402c10b3c2ca51d2d49ca502a897c87256efe381e33230b1aaa1df67c3c3944ee4d081c055649785187e5c26af2909347021c2c28c101e1051d964c8d29b62aa3d2f6831773702e45a554751a12e050810b42b082830214b8600572d8afcba1671c0b4a503c781187355edad4c4102b1d1f36780187fdc437ea2ae35bed9c00f4e0c51bb6ad7cb45799aa155eb861cd2719ae266da8f0a20d4bc70b92b3b7e10006ace2f0820dfb68f28bc8b95188a3d6b0d44507d91429d3ae230d2fd4b0fd68a464c34d1a769416e1e043f4c394816678818645d3e64e8ae22b9321768625522aa20489b1e9c4f2c20c740c9b49be6f423e1abc28c3e657599662a44fa99a0c7b4e513442723d061e84bcf4331293677821863dcf6f37762761d8c2aaa7fdcac47fb0bfe105188c59697e61a94b873963b0b317e6175e581c57f851471a2b661032bce8c296414a1e1a636383fa7061935bcff321c764200213a830bcd8c292f77b6762936288ff0b2fb4b0df861f5bcf19e48f2bc1f0220b8bc5c5d98ec63f3a8ef3c20b2cec781e5814d93804ac0b2fae509e2032493f4aacb043cb0bb241ad3603130355d8629c9c6617d4c2851754d8632505d1ccaff9bcc9c28b29ac5b3b9a9d2168c44eb5a0042738410a2040627821854dfffe364af5e6cd79155e4461b58fdfa1b687c292e3ab529e077d21ff844da3ef5590af1b0bbf13b6bdcf0f9d51ccbde0376195cd8fbb7e1c8f5a9e09ab5928cb13952186d02f61910c2ea71c16493be72861b393b8a91ba883879f24ac3e7a49aa3348d8aa1e5c2a8dfbe4d939c21229c5b0173aeec146d8829c5de6f2e968781136b313e9f1a413617da0ffb04cf421ec38c50b36297ea93b4258ac4cb673bc83b0a3dc94d25977881005c232b2db912f4a7a247fb07a08c9f038d83ed8c461865bd6289f4cba077bba1c2aab661e6ce331e73b2c7e0eb91dac528e3e2a3eca9ec4e860cb39524685d6c9fd39582292a3d57c29192b0ef6edb862e3971becd529922f7e6183c53b44d2a43dbe97d7628b0c53ca8de930874c8b7d83850c0faf42f867b1e4eb8f5155c7a7cb62eda095516faab1d83444becb3214164bc80ade61fab126455fb14709e9a7275f0ceabb62870d92ad58e2a798ffe88f7d352bd68bf13841e3556c5121443285dee75315eb35d00c82467c9cc7542c293fac68aab3217da85864abd4638c7afa254fb184069e766e4a53eca59ac3e5092a21674ab1864f48dea591628fde8a99cf736e221cc5969b42080d6a516c19c2d7314809c5be29fef3079b249271a0582f53de4495ee137b88a0693288e9b28f27b6dc68f3b191e38d7827160f51ba5337f3610c2756bdffb0331bdbc48e3e6620a3fba0a2c634b1e3f8b973fe78e8155a26f6901ca6f0b486d2996162dd4c12c25a46c3906297d8bb726cd4a1b7c452d52987b8b121525e891d83ed4e7ea21532a6c47e658df3a6929ca84e6251bbfc5ad91c2d7845123b5af3d47539550ead4462b95499aed2d4c9570a24d6c6b9cb6388f1f2e18fd826e7bdbc9876c45ee217f3f2a7c52f1bb1af35d4b01e2e98a43062bfe8d49891832c62b9358d7be9a3886d74a2c7d86022741c47bca32a44ec3395ba2be487d8343a7a089a1a3e850db169c6e321a4c40c211662f98f20bb16579b1b21f63dcdd3b38c416c31435f10ebf9e5f05907629bc9f3d0fa2b233901b14d0a310f24c76420fe61cf193c0c62b9cbbaf3837b399d61a646a4484049d3867e464f397cd86f42587e6c04bb59f7b09cccc846a5f75fc69d15a400026348801ef64b1e76b13f278c4c13186448401e16d91c24e55c0a416388031280872d49de1c292eb3f3ee77c0f143d3d8618f7a7e97e294803a2cc14e82c6cc44c81425800edb07db103f447a7bd42c24600e6b06c9ff915806329d2287c5e7cb1a6c6c8c655602e2b0ed6d374c27ea1b360e873d73bb3baf826fd872de67dce931a8900037ec305e70589981752a4d0afc76908036ec132583d093197863582212c086bd435a6c48f5d1c4336b586cb427bd63a395058f9000356c3a799e9ab557e9b934ac19279eef780c11d3868635f49637dcf50cab370e0b0f43c40cab838b3c16559661f9fa183455c75648001938cdf55dfbb25cbdc7509e4e4e35958a9592003160b1bec385f9cd5b02c2b055744cfd97e9325f1e0c6b978e56dce67c61394ff3f18edc0b4bda953faaf18ff8bb0bdb54a5182b111fa66ab8b059f66e64edf55590b7b0c6cbe599ea206758392dec6725bd1f5e16360bb77bf1308447a3b0708e7cfcafb0839888cf906f633e8f15b6d29826a5709c2aac7266e128edc6e89f0a9b848f168d7b9fc29651a5538c649edb5c0ae60c614b6b8cc20ee2498fcc9d46896928ac725ddd3f214fd8b461ce90133b619f0c1be4a4b3366195becf509b244c1887d95c692e613fdd585ac92f4645aa84bdf26474929c3d219f0432f47590b0579de470910efad379846dc5227f0aba9ae49146d81be4987b152cc2667b129f728879233f220c35799fc6186d08a6b5d030ca877498040861bd86bf21197663f841d8614ec928131016ef6994914894798cf2832dcb63e5e750f1c11ee35427ed189aba931eecc8ecfbe3f6e241d3779bb50fac1dac52316c8879658e9ba183b5a3cb2fd41c6c199c64e8289d370a290138b842026eb0c510c16264a7cbcef904d860bb0e92eb91ce3ce6be16abaf7abaf415c75b3d2ddab5a0c961b3586d43eec9fb1dc1638e2c2e9fbc1a83240f21b1582ce7eec0628f2ae351ff7255795eb1c3dc611753c6903edd15ae83ce35eb5ab1647a7a8d679a158b54aa885d8d5ec51631380a2af153f8b851c5baa172cad214638ca949851e9346780e15c7c63df1692fd456fe14f883c9c042baa9cc147b67d0f9ecb314eb78ef9743d5580d23c5ea29634793141a85a358e7338d6dc5a2c871e646dc782896f814ed413c791cb68282fd49c7e84facd17427831a8d0d42ea891d670ea229bae2cc979db056e4625d9cb061e6e8912b2437b18ec65cf8bf142a2bd4c416d3c6984cc153e3106662f595dc40cbc7c462961ac3d87e67b42fb174889a46735f6c9c9c25081e33e7ff93e8b2129bc6cdf1e92846896d2336c838c6244cb08524d6928e7a933572a647629b90f267a68a39c31a126bc4cf2925e547ec1de3c54ef3b3f941c2c2168e18c510d3a6ae4f8e6bc4dea9d25a8558e9a764c412bfc44f6bd3791c17b1480aa12ea7fdecdd4a11cbec7e4a9fc29108196c81887574b3447d23de5ec621548f69fd732f8ac3106bec0a4f9f772188f4a01da2e434898c10e394bf97121c3488b5523585a3dd9b18fa2d04e176e847895c862f10868cf291089b620204b9a295c7fe7ff8e2536c1863cc3c3fec311d3bac560ce9f33eac12d2754d5a091f8e7ffc191f3bba876d323f24fec77cc39011b6d04391737bd65673cee581da94915069edb1051e8a39c95148ca8da19a2dee50a3fe18a5a31b73daed60cc213c586f8c145307a37ee79bb1e9f09664dfe59573d83bc3ca713e230379bc1cde580de9138ac336527e164f523a79070e7fc4358dfeee0df887cabce1e1862db7f264a49d89d5a8b488e64202a2c161a1b158281284c5e14d66082316188023f2602046611cca54e107148002541c0e182a1e0c10120c060a0a0a140e06000404040a10100c06080806080404040e3a0963d80ee707d446fbc186d2c22a53cc062bf8c675c9484bba79d89fda906f5baafa7940e8ff6115c038b46ab4de51014210b3b51962b936b89828585684ca282300a345b20f862400e87c7940010d8c7b1e920703145e57fea1a6c1edcfc41cd918549bfdb0bc487e1a612234980aa407d46a0da9d998cdc5cfb2fe444ed8c985574b18748b46d63c7b0bbc5f04b3de0063303e01bc95846305d35e040ae9e5da5cfb94fc4534117c4381adae2fa6c860b27338c1edd91c93020ebda2e76508de783b7f0e675c62fe8efbc6163551ab6d36eebcd32689789d7fb39e0b55225c77ac0018015d6ecea2e47fbe1122ded46fdec65c4335abe27fa2d297e434f3e5b41ceb35f0002e3e3c8589db7a0e6f618d9edad2ff13dd1e5a6d28ba9b001582d037a14005a5e1d18ae4f2dd465e50bd89e6b667e7d87d02f2305fee458cdd4577bf7beaeca13243ae370a80d96181e759cdd21647c9ec95812f8acfab39d3a57a26565b1de12a21358a0f1c73e25ec73c9895844fea90dba984bb3638769619a750f25f9da5a80a09d68d321bbb348eedae89565c263b33d75479ae8f6d66c84b571154f26f8a687d0283fefac40eac8b45b4e999ef54ed3e370822f21d079be3e0840b9ef28db2dc0c764c57721579585e184000d8fef07ccc4b405496086fc24dfcce4f50d1ab090207b59c9e1dc88b958a53855d2b78030eebf0d16936a45006ebe795626836a456cfd25a0d29e9dd168966251377fdf0e12c18e86b576755fcff543b4ec0793afdfe03f079c36e9e931682e08989d79c9f44e2a959f674187354f606cc1dbf5db8b5848dcc2c96092a195ed78b10f2673335d1c696899e5a6d106d09afbf0977dddb413d50a21298583fe044c1531dbb4ad2da5e6e75a06f2c035d41205cdbd614b9748751a46ec70f136ebea79eebfa3352d330fa0ac0b7d917a821e14ed2a9da5156abe8210e8af6b4a424258ed5fa757a657f662ed7504251ad4f0db3a7eb193b040b2a0aa6941f124d8e11ee0214e7aa8485e867400ac30e8b968f1eff7b752e97bf67be01ecf15985259bee5bec0d24322d74acab7898ce4685fbfcef2d08e08274dc9c0fe11d6008aee3be81f4efe9ea8a5d7b51395c3a7330024c683f1083a351cdfe59de916c6ae4d7ceabbdeae4254cc478de1c1a83d57b586f52123625f9785a19fcdc12a6aa43e1eb6172af49026163de8dd02496ff37790c5427d4db6dd9ba6d8f768034dd9083d16d444b7cd1ae3e821cb4a5c46b9742fcb04b7fea2cd224f02eb6099ecee5b410bc1b3ff6a0952dd71e6b144bf7bfa59edf8c4f0c02ff87af906ee445f017101a125a328bc10d9a64d16f4b7fdce225e965eecda143c09898690a7bd66a6cb8db122aaa2101c5ab8fc623fb9493528f31165a11451b9663d544f9514492920cb89b074da0ccb52f98f58b985cf66a4e6c02a3ca17e9ef7aac586e502ab6069350b160dc829846f6cbba7e05599cf6884b391924c2de1f4ca2bc38cc31d7610a965a03d88bb908c03b21e598efe22056a4d0a4ca2fd89ed5a0177184f00e3401aec5192aad2a01ae748ad605d7a3d377f1a885fe6151283a4180ae7e935d45ff962e7295fcbba4920601d955eaba5665f717f2b696a85617db4aaa6845810323cff3ae91ba02033cfb02adec65b3d4ff0de536e84bc1532114ac9eede75ea2ae0dd8750939f1ecb358f9577ddd79163c1d75a35e0d2f35043d148d4fabd09edb282ee49e49216d200f492a22d33952e85e2c5ea2ba29ba46753174077513a1ee722666873a9317a8abfddda3defa543be0b171dd730e81d2f0772b216fb6abc67dd2ebb5f7a2aaf75c47fa3221ab6ec0deedc51f1becbebd3ebcf0bb5feff2e0ade331129575f2d6e776e00016e1027a775e6fbed8faadefa3b38385be9b8d270161bd75b55d13ee3d7f716b4435d818bd5ef2cddb4bd4c8f442f53af532bdcff08ad9eeb966ddc1a7edf20aeff91ade820df04a79b78eaa3d96fed87b9e7f4b27375d92487739933dd7eb77d7bd28bdb8d7db4b5190eaf7eafad4b5d58da11b4bbb9323c0d12bf8eff57ae17bff7965ebbae86677d3b7371b334184d87b69bd73c55b67551b3beaaa5b870abab337e8ade73020cb34ce5b8f67eee30615ed2e6fe03e05e8dea717ae778e7bebca19d7573c76eb839298c4eac5c170c1bbfc8fa9653cbf6a6fb957abde7acbf43eaf787708432e105aa9cfcb3afcf91b0f8e7424001f4734a36ee96d643c0c1b1c69466ed3c44c0a7da01aab20da102a5f40937d6b31bc2727bcb1c943b246cd41ff9c1be4c6fb5362407390c12ace837703bee2927b54af1af7d4a9205758ea2f619be0fec5373ac4378a0ddb98e43eb45e2521e5acf48c519bbdd6a96382010c408f13793ad47d64358d52f45a3dbebc4629d7c0c62853488a13329c5cf7af796afd32643dbf4d180ed8e9235f2fbd29b3af54252689a6d145512fd2bb37e6cba1d569ee5856959864eec8a7ca968126dba8b2716a008c526ecb32c165eb21603d4ea99b3df42ae444bb7c49e4ebc72972a055c0278f13649a6dd4d6e662fb388aa556ac16ac58e8459a7bffbebf883006f2b8da2308dcff301d510299c10e3a9d011a88674753bd5f815a0102023b022b17c8ccd925cc750932aa16c208f7f8c569cdf4a989aa522990df8117668514760f907e82975cc8ae5528d066e0e543e8da32356044818cf5194d9c32412646afdd97ac0964869b9759a6068270213f291b4813ffd230de7afc1dfd1235001941315637c153e316c424d022d0e2032f335283e00204f80e64c606ae848c818aa1c9473f028bcddd6f0b5eb253693e8b80cc032fde90e4d29404685120837c3ca4360dbc84c6371a1e81a40732fcb764d5d448908119e87236af0ea15b3f17b1b163093cc2427203d2023e0470f9890546d172b0154ad6d215e5407d1cd7cc33044e07218e0610dd5b06b7031c22c8583f50d1e13efb7144e92acdada7da3589c3715f8197ed8095d421c05d81e7f5039f35bcb0048f89d8daef15b6ba5d88d27fc81bc8908482dcd72c7befebba8023c034079977fbf0c4220215d2a4ff8e89aec34d5557f439b0ca5618c109d3e193f8ac57c511f83f1024db97130096996893df1e00f173e9d116f021805a032ffa57065a59c03682cc660315dcc7e7da6b729f1664858b8eea9a4046bba7afc22ce0e9a9da8694371a28577b6b0a542e41e62ddc1dd78a204a9676e9f82d152c82dd5ac42434255a7892303073a9c7f242f990efbab02e9637e2c18b8b7b3dabe0ea04199e24f06b6a61989005c69214cd2d53d26652542706ea4b47671e2e725774768320f70415dd18acf673f84e38212010300fe08c93fe96b4e75fcf8320d303ad0f5dac209c76c469f093076fd37ed5d5bfae0ca5382073d9a73b0e70c9c7deeee3fd096a2620622366d794806b20f6a06ae90595f443a54bf38060e712deb9e3e4e8352d5e7c755febe68cd6380a6b4ee581d5fb39df4c8c9d540355df690a175a13d601a912ddaf5fd54a8eaef7ac29b85ce2d3675fa1c57ccd90de50e68d1cc7ea4ea1445f34d0bcdf75bf32bd8978ff11f2ecb233507097bad0d2e1a9f2a5eef4c3cfe09aced3b925a2c54a4ff3f10a3a51dab1b6c8b77fe2d8e13596ca812b67ae762dfdd6c502af5eb5ae830a3997227679f4c8587f309a7d7682b7a8928e3c61c7d821d50891f0d4030b4e4574c460e550a0c991dec80e95302e240b6371a0f26bd563bd6a42e9fd1e3bbcf3935b10a45049dec9da0ef16297913188a876683d1e75bcc2fd9f8485dae020685cf59c48df8e803e4f45a3a29778c3ad44329db6594907dfbcdf95225a4850761a231a040ee6debf035683a6a87b04290e42e51914cc66727dbd13c3d04cf63fb8f939748dab6ad52a2fe454feb56ca73982717c7762880e34f9c005c4d61fa28fc97440fb87e6ef8c84e20d99a79e45a314b2139021d728418a4619ebc69ce386a015545132641f7e778e523d46ddd201f82e2cf11c26540dcc0c3c6a949ed9e87cc71ecdadee1f47062221e31f7b18051ca54b36427a4386216e541c06944b4d61275091c53b850e084e12b7788d7d3a66681482ad12e2a457761cedde3e6e476d9393325e3edabd717eb71d58241b8593930e1dba76fa1dc8287911c57a847547e3ae2d99f0a2b08945a450b3cd14fcde0fecd49d0bdd794950b88aa3f195266847136669f4d87a033002be30249d6704a459b94fec1c800da1a815f68eefba5788338f6c7abfa2c98847e581fe5b4cd91ff114a83e97c00ada98860e423901084c62b0d0262f6db741d3b019325afa4698c20ab0cda2915408f2c159bf4b23e84edee52dc09ed8797cd9985c674130bbbd19f69e8a5cb6991eff56cb160a514d47f60897c28b0728e52c86fed87dc3433bb764f82a791148b5968ab561246ff67dd09d20ffd19d52e36deb7e9d546b597c7bbf40514637c67f8ec648948bd3b136cf79dfc5dfd1a2dd0615a9982283277db44e69fe0f9263a5ca1d0bddf35932b95585a28105aa06cf9c0c95ef976109419d415174d85856434bbaa4a12409c27379189092a3ef9ee47ef61e0474815ebf3a2a81bef4ff9e03d7bc11026b0db21989b0c2b0dd29ea47948e430b621689df42cf7d7c61fe94e179bfe722ba62f8bc008dec32343a59f70a7e3ed4fb5418005173959f41292e4692ba8e8aacb0dd7d0ff6e9707a446e76d5806b8d4777c17366966423b81d532d4bcf36006063025e32b3b531d7b525718cd1e341d6c70baf41338378ad7ec027094c025e8f676d8649e3715d717f51968672100666c0d4c0867743dec70e7e4209bd218306f850a381d0d28a07444fa57da3d562a410b41bf8138f3bcb398f8831fc514614b5cd0a79749316965ae628021a80c6f789fd46b22329b78d114202e5a01596ef8ccf3e90dcee377673a3d9a375294e1499123dd52b42a1e124b6f8106d1fd2db084f4b58ca92f8e330c9c7aa6dc1347a1183a24aaedda2fe70abdeb913894006f48613b139a46d93da93064d0acaf19e9371651cf842854de01f9b77d4ca93ee790b479d93c7e1b554eb10af58c5b610ba8c075f82c29e82cb1ff11516a4659db2285afd72ea5a7c2e99e993df63351cc34b17cf6c807c3b9584ca02e6996d982da5cf9e6f918e9f1862b327dee1370accb6baca503185469826befaf5a42a7c9fbabfd9011666f98c43c2cf00897c984e9cae004905d0c94fbd9f713f05d94fe0711b567fc918022724c51c58c73dc74b778a50b9a4b904319443d302d151c7c2da3d5ba95e99f5b4a1a5cdb377650eeb6988045d995b29c40d8bc55a29f533f734b467ea5c35221a5c10e25e9b26c4acd43e90f95bf3f1c72b346e922899c737766e8c89341bb59f3fb3bd3446e3c8762d86a1886c03417a0b177761b2cdf9636beb9f5d3a050b2adca947c880f3d95f5da4695ca1025cdce3bf65b52e84011c6ad5eef4b4b9eba54ad73a979da2cccd25c5597c48bd3d411c4fd996aebe48eb343e9303520bb35b20d62738bce7bc24a71b3e98ef2d92d177ab9fea997e765b112c0e8d81c4cac3c12bf387ee683615ac8cce374cced1ea37881007ee48dc3a1687dc47e7383ba2ba1ebb54a03cde35812a8f46c468ea317502dc685091cb2480426375fdcb751c68a6225622e7ed32a590da0bfd6cefecfdb9bb1862f39c9d55252cf42fd5374b0548e9529b6d8e38375b1504612d872456cc0f369ed32d5b9c50c6da647c77c8e2972e3b53f1c526212b90326004ed0c98386b3dc1b02712e44228b0018e603c34dd93cc9b85c9ed4e131d80477e65108a5746251020d4d5821245c92d710eba9efdb6ea3d9f8470fba799dbeea2c7719dd6d4ebbd21971bcb4796876d4e497265ea20f6d025dddc121a9d70425607a61706af4d1c5aae591c6450832b1183bf33228c1e6ef4aa4d6ba2842de3d32ac5929da3cb8b76d684627583c60da8716355eefefb9c893b3a2ad6b007effea53806c52dc5f13c33b779667682964ed284cd36f75874ec9035df66573e7b960c1b6cd5ca199a51a182cc3a06a63ded3b1d9fda3e3afb580fdf72ef934e232cc8ac025b047635abda57bc5ba8f8e04ed37e0ceff1e36f4fc79211b24f4c1a64ae21880daacb4b9ab4d3a31ead009f943daba5bb3f75a94f751a2a41ed1fb0651570dd7471b691e548e377b307503d7488b6b3379ef0d0ce3b4476d3a67b46db8874d2f5de26b2a7b980a339b45b95771f000cb0ad62c982572fe07eccc97eb9bba063274bb518abc28030ef61907101cccc36f77671b376881b9d8e6d41aeaecba28812603efa894ff523138b9624cbb07fc11f6da0a0e4d08c8f8d6ce4a32e2c1f08ec9a9fb2f21507f9a1fda6b1010aa9284ef65ff39bbdc94d871cfb53b179e98fb83ce954206c0e07d1b1bb788c2d9878d310caf63ed9b7cd2544f008627d6a10446958df9d7b197848513866a8c7413f95d117381a467913ead92dcf9975f7ec74b79ab60a27a2050cdb66a8ca065c1ecd85f6791749e20f42a6c5b3b0f7078cb0f395e22ab8d179a49c33fc90a22cdc51447c5b722914e60b18ddf0a8bc3ad1287038e5b1a9ecabbb3a78f1930492da2ff174c073974338229a04f83d886b6960e1f0749f8b8431434281d8542a776abdeff4631c385681191aac2acee97e186f224d3d24c027f1afdcc9a83bb2623082eb09bbdd3de1947e1baa19546084f52de8a05443d28e6f02140cd685066a7620db4fbaa3ba558a8fa5749948d70c598340103a11b0cb5c792a1df064981732721d7ff172e3a5293461b615e94001230d162a6c099c7d802bec0a844eca9ba12290a1b877e11c0a757b57a48961432a25bf248514f038c27359838860d1b7275b6034261912f229bf1cb22c87987bb4af7e2c9e51f03bfd8a99d57e8557c03b1c4066339df8326ee803a9d7bec25262c02303d54d81ca83f12344023263c93243101e1c7b803d591240c6caa812e286da3f40d85948f7bc14772250f0dfacf23b1af9eda4616d77cee7a7ee560ff81c6b26795a9f6980a68b3e5e01410c8699ce00d5066cf3bbb8efc5c65c0f1ef354dfb97ab30a81affe53c8740296b79f5ae3faf7baabc187294071fa3647502af4687943e79261f4045cee10a80aeebed04f0b8e4d8a6317f8d34a7a2e00ce01bc2bdcf5c9e5b1383f7e15b284edb2495aca80c18c9c7546802cccc4c1e9745f1b224ea075f3b663dfde225ed84eaf52b0837c6c8e28ea8ae64e04ea9a6cbd5674185981ca7fb6a4352010760ae4d8635245d84a262b7db5155a87aaf6a6ba36ae9278f6099d46226ec9ed3e79ec98c025c33a6e5d9f4a76150696e0c993d2700d109261ed5f294590192e143635775cb37461bc853c2a5ed3f32ba3aa29505cfb07b2b2c10b4580f33671d889747a458e5eacacafe2a0e7820ab95a4cd23786dc8005109950bdfea473ac80cdae4daa3f2d90d0d2791bbda3e337e50e2464705568e0bca1e1f383efe44eea4cd23dc72064c91678ec37ff54280e39eb0e31b53c69b636b49a3ef66e2a0daf7723a7b6cfbe3dbf24c5ac3332951b4b9a87aba8acd92aebabafefa71c1a28d6001d846088a53fc00cffbfab5f3ab1ccec48c9631688063563360d9511b8c3045e8c0883dbe1ab26e656d69c6d8fd8ce35b5be3ab168448946c1d5ea1155cf3b168a7aa68328115fc08b06b0d0af3d366564844bbabee401d506ca65c0aee35be26671fd40d47a1015579462b5fdf0272103af85067ceb354d701dba4df6826ef7ddb5e75163e685b980756599fcba9e982e0fc871bdc0284c931d7019c0bdd03046502ff61ddeadb125f43256ab15900b00875266d6582f375e96ec45f24fae25b771a3e4fba0bb4c057cf5eec032c48fb51909c71ba6f381bb8df0943aedc3521f179b438bc7876cfa5edd392be788c437c11438242c29d97843501ba1c12f45bf893589286c2342869efb9a26fc1f4e168456ca7abd7e19788533cf499db1c3e98f8f5828be326b25b1be7be1d4624fcd54b4d009adfa6e13f4c77a6e726c066632b8c9fbae3aa6ed6b8f35b8aa5ea8978597e27af2fe18625aea427bf78166c288aaf7330c955c119f70633213a4629e3b8c791a091aa31f9496c9e651bc7768f2a0c91c96524f3f37138230f67f0a494cccd8feb0550299ec71a8c320434a2b4c5fa4af46eb9ae150d38009b0723f21a3d8911802e101431f540aa73356ecbd5f86eb7b4a371a4e82f060848fdd4945166304bf42bc09a6fe7ac1b878d08962296faca75393d8aab405a7f9a180d449107c408748e572983d7976e624905e5af4301dcc9e7d61360c3e559e396249173cebc93b3bebef4bdce15f3d4ee4a85e63a8ba87783cf889c968a661b3152fdf22d7b05b7955c5480027c7a37ca42990460011a154a298d0c798afc0f294b5af53d14278aa6912f1438b239508ddb6b42cbcf3bc9cb56bbb137b62e6c28304c4aeefbf52887adcff925981448a7ede8f9bb31bee0d060c7e64f3d434f789288c17e179219a2d212522d0dc5bb24a1be3542f1057d24c06eed023e8e90b3050cf133de54d2cbbac46a3540522db2f184614ce261abeb210c2dd6fe0a2fa021eb0dcf259c8035adbb414c190edd21a9a21b107f0698ff512bfad260048d0095cb03612a71e8545ee2698d5f642aa8551933088584b64b8710e2c12f5f71e769df6415911365919b2e3231f45daf58a173f04950b682b198078d6ffe45703688a45a6068a492fe37a44dbb19ab3cfa56c243ed7b9d84cd2aef0804d0b763d23ce74ca20cc00a088071263298009a2b8d1490ab93e00ae2b6e5e2d33aced3ba3be8a4c48d6ad5e23f78509b1af35997da81cfd3889a8874dccebba91cdbd5d0bd6c18f6262a9c3da599708cdda88b34f8892986aea349d3e144316cd8d086c2bbee4cbb4f6286924f04d6d563c19265b49c157c56adc9c4b6e0b6aff215e5910852462bb352c13359900e1ce30de1a3ab022e163f1aa1d70183b3e15755b9706ba5744f055537d35a40455b2f5c8f5ea0d38f49630f8364af62556f728dfe93fd14653fcd6c8f3e4cec3c6d2e18529abc602cf29a5128ab7e9496749d678191b7454c78aba6f9b73f7659883df797fb29d019a2f995b503446bd579015cb14bd172423816b5e3f67c15f3996d9ffafa4b64222b31faeb5c11a3ade8beb2898baeedcff087b55cf0396d1185af2e753c97ee3e4df1e2d38321f016510f120dc317ffd8b037d7a02ce7444340b2f40b46439f003fc003fc00f20db08898db4184994494a91f0b90a9e754a29a59452c26467bdb01f60dfdad713654a038c0bbd0ae40a3ff0000f1e65052fa0418306196678c2733b557d375117f752d5ded4e035cee80449bf6ab40f61a6f7b23752aaa1a3c7183792042108018fd2031a34fe94543338413ea53b67d9748656d0065b8edd04c9743dbf23a56b82385f75bf31bde26f90aa6046264861f4af2fe6e095bc6483ad538f32ca3041dc6435c2e47dac8ec1312e414a7fa35266a7758ca71e63dcd841861f1e3772e4086658823042fcda7b9e332a41cafb323a36c8bc9cd6b7308312649751413f93aaae923209664c422b15cc43875b12e4243687973dd12ea5d24139e7751009625041574b5365afd5830441c6d349ef869c259db5c15636f8113974e840c00c47a0316ef4608c321830a311c79c513a7ac9ce290f1c5f63878e1a64941c666a3b831156b5577b877e8bebdb68e5cdbc1bebc1a3068fb23c7a8cf139cac0c18e0ef82288991bcdd3ada39850c181e3860968d050044185d6ca49663426a56283ad2d11a4a4675d41253522c8b7b7275353cae3d91d82b4bfe1d2a6343204a94de5d68fb210a4ae68f25fe4829493d54844330841ce5935261dbaaf92d0d960c31b04b137c738aacfb4c1e68220e758f7ad1d46e8e47d8d409064122df7a6591b6c0b0892f8d24ccac4f4c9b56db0a5ad60c61fc8baa275b4e7b80d36f743651f530e32f665830d073a703099d107625e8f9f8682197c20ba09255e29657cff188f3d905289ec7bce1f6b3d10d46952f6d99e910752d2b65b5df2ebf3c343878d1a7b763a6ed42083470c66e081609ffe267392725dfd1d08331fee6290ae1d72510b37af1b0d9bcb10cd4b2feba6779b5107a29d9c924b212c7508d181687953e5e867b292d139f81534d8b558e82198210792f6bf1853ee50d9abf303c3068219712067db2f4f17e7e26688071cc8194de60da62d7eb6bb8c08182d23021108410b22d082196f2048d319425db84a9e9433dca0b8c55b5bb77507f973b59f1d84120633da4016ff0fe77a3aa77c311b08e795a53ebbcf2935ad81f023d368aeccba69bc196a20272164f6c9d229f3fe6a61461ac81975e6ac35fdfae3788519682079e5dcf7619ad31178810874bc200533ce400acacb3377a96620292fb72bf39836bf5f06b20531f9982227c31d77966f1aef19b397b39ae5c6402ab50eaad7e4e26c8e8f30430ce4fdab581e67ce62d6781808d23e4d7d6fd21f4d9c0106828aba0555526ef3e65b84195f209faa5055d14ec74fa9612a84195e20576a8cb7bb632934ee02416dbaaad2f2b12a337a2e94de3df49d84195b20fb7fb0a4533ed47fd702395c56f4f8d99f910582baedb0a3838556c7ccc002b133687abd9baf403c6dc13f69aa6658811c5485cddb51c3944e7df023a041c3076f63461508f3bfb39e436dfafa675081941d544c98310552b814fd2b3b07b7f7a540ca7321140572c93abd0bb38102e9d2cf9d99b49241974f208ee7b3cba03eb64d4784194e20e94ffbf9b529f369cc0d1d31c831a309a4cef254db941e35f465cc600231a48653b26368c612c8d9cee28d6ecc0c2520a6ee5a632297669b6ee1edbe84349537cf4802c935e584abbec90ba5a6c20c24906256ae7c585a918da3200a338e401032ecb5fea58b59cd0c2310dbe282ca7513a6afec5106193dca50018f8f62904236497533fdf96fd381c3053468b4123e88414e9e1ed4f3ba69d1f1611073f65b966bd8cfa685c1af76b2743193c1a844c4aadbf2bbbb92be0ee6df6e3a25f8000631df4adf8785cb14471fbf20a7584a2799bae572a8b4f0e10b524c7e6db943f7743ebb8641e1a317a44ed1e2ac4c67bd7c0f5e107b3d6f776b7641b8ce31cc088fae1b46ba2048d31aae6d16e3aecc05d13c8a8f8e5e297aa53e70418a5f9d844cb79aae53fc16245d31e7d3bdafb37ebcf0610b62857ae96827bac48896868f5a10745d8a5715ada2671c8216c4600d1fb4206554f7cd156ec3c72c48e2f45f6de3c7bc8a3e6441306529b5d45d6241fc30e2ed475b1fb0206965fa9c4d8f30b1d6de14c353f8780529a911e1a9524c4aefc615249dbedab957564d3ead20cc6bc67d688c7a1f67c56ab16d73e5a55eb9a774fc4463874b49ab20bcf608b53a4a6b840f55902a85578af14985b9b564358a87a820dde91c2a9f5d0939df292c0dcb6f0bdf1744aaeba99c2948e69ba39743ac548ec920a3e0dd472908d2935dd568bc1069210531587888fa65cc18ee2848a374690c9576ebf3290abfba6bddf56eabbb366d4507a12a7f5ec772434190966a7337e936d8c8c87170c7e9b316d0a0f151fe399d2b9acafe021f9f20bde97aaab3ec8e1e3c706c8f316ec00007373cc0ec095245b3ac49be5e28173b41d4d0e469c9923a95d49c20e7f70d9e4628a16483ea6313c4a44aaa9a1eb9fa948281698218c4564c4a5a3ecf73fd0b1f9920bc88785d5b8db14fbd91031364ed7571d52d314d42a74600b6f07109521cdd4ba5e5c10d8420f02e4307f234b404f1f39a4a9e5e55829c4e5bc796d13335352548ed2dd641e9e02408a6ae9e63312589b63373ed44663f776c2ec694b999748334234138b5281b2c5ff87bfe0109c2cd574a5fbae2e5893f1e41ce59ab4a29f1031f8e20885a5396ce939255b20d6e046974f6c638f24c58bc8c208ed2fc246d45a6b77d114451bde39dce7dc187224872fb4c6afc1c634e99cb449074de92d7fb9e0f44903735866937bf77f73f0e4190f3a65312519d4bea862057c9dda45dfc8307ed07dd20f828043969ad07f57e4158b03e0841ced9ca3308524cba5d54ced218edfb100441c65f8e9723fb08045954f7e5a66ff0b8d11af80004296a506d6f960db61e8f831a3b74d44012b0edf84ec1c71fc89e1fb273d85eba343d089e8c1fbc80071f7e2068dd0c42ef89b7ca9c3e1054475129cf274d3bea071fb46b9dd3f014f75caa267fad0007192ed8d183c7153ef6402a2db77ad3bf1ec85d37dfada971e3eb3c90730cbfafb05057be7ee0811864b808edfea2d13a397cdc819ce1a5739350b51f153b104c45d19863ca516ecb3a9044d97c1ae57934998873f8a003b1f3c5331d6b693fa4e5630e04b9a0f4281dced7537339103344d96fefaac68e9d95110792f6f41acfd9ad538de040de9b939e3ff53d76fa06e2a6b60baaad33e9e7d7ca481d7cb881e8da6a29a6ef0e72d31c7cb401f598735c4a31d4a1c3288e0f36104e69ad289d53068edf4106f7c71a4841895dffabd97bf063a08d1e650569a34721237fd0e3f2430d97a7aee899e57965cae509add82cb2c166a34759010d1a367a143268d0f8410f1a34ee230de4d9e09a5d53afefbc03d55883c19b1f1414d4f5b831c68d31caa8f1e60725c7598ecf8106bfaddd92d0743903e1b47d127336f673a519484946f9e9acf09dbe29c3e3043468ec78b443471948b2d5fd6fbf94d2dc9381143edc92527f19035173c6ce1eda4c06a18b819c32a95590e6313cb76120494bb9d963fd4df960208ccdcb8ef4ef8ec9fc0241cdb49d6bce05e1c10f2f107b7bbde76b3d47641f5d20a5fbb421c4cf5c20272b75da9e944ef0b10572765c3ecfb539e73c7e68c1ae1d7935d77553ab4aeaef4aca66544df09105e3dd5c4c7399f9c002f1fbca73ca395a4c130520868f2be8f9b2f5d55d1d7bdaf1a5a3c425254e26bde1fbb002296ce4ae0271e3c71c5fbed69407a94010f931d409f33ea640ce1bd33fcc3536d8c8b89143c7183fc0a16305ff89068d257c4881f85177733d0761e0230ac89696b6975a796530b519747996755020787acad19a1784b013078e1be6e30904cf94939a4b95647eca033ceec3092479d574b95f671b32393e9a40d0f5941e4bbe82658e5350831a38f86082d1381f4b20adc7567c153da5a3ab04727ebc06fd64418b4ecd406b7c248118de39326ff6f2cff80712f0e30865637c18c168b4a002c5207de57c56b6fc5731152006d9e4e8ce142d67d1af1906c9f2933e19633705918541fab936bbf899f12cc120fe6856bc2496b2c517182469f9371a754de918adc02fc8ee9b2717a3e40bf25a898d2e4b3959a67b412add16532a335ba7245e90e7e5e3a5e5fc2e882edab7aae6a29632754190d9c227352763a53e41a8402ec822bf825413a23e861d17c420d44385aeed16e4948468cc6af94f267e20ae66ca525a1a0649e9187b4b85c8e99330ea0ebf9729fac1208fba8bb5d55b7947c020988b5dade875fe9c5f102bc7fdd3ddf8821c677f43781259d3f482144fa7247ba547e60b2f08d2b282f81cfc432ebb208d07ef18555d90b27edcd5644146577241feb1703ff6a5fc2ab820a8d4f6b8a35667f15b903caca5132364cad16d410e6f4a5da894b94d5d0bb2f888cdbb973435a6055983e77ed031488bef2cc875dd5956d3a73ca62c88b21743470dc68294e2bac590396cd0e2c382609a29e792d1bf82b4767d71e3989b65ef0a62f01df1eb657ae4a915e6b8dddc31775841eeab2084bc8a56cb2a885ffa6da54f45af0a927eb8d86276eb692ac85bffb95df6f734830a62a9523aa96f8b6f3a05496eee9e6b1aa91e3745165c54654ebb14e4bb70b9b24849418ab1ed63f76d565c47f1e8cddd4b2744a220fedba6c8ed949b46140a62125da5d245040aa2dc8ae9af3c665ffa0441ff73d2d6ce66f1f704419fda6d72379d64d409a297aaaf341127c85ef5e271e2bf499b20c9399d72708f268871aaa1a2693241fecfef8bb1a4b7a5608268d29369fde612244fff2b7ac4358ad612578e5f2b41d070e2c9d4dbbf554a903257cc761745afa693209e52bd5b29290952596c26cbf94c5b4682b42ebee1c3538a122141f4d6950ffaf5c2898f2007f7cd1c22479053a98bb92e8dc7d708926590592a668c20a6b8c9fd62761641d057aa674b74ca29751441501f679eb2e631619d4490ad846d58372182244406af1c3c999c7f0882ea2539ae63b9df1b8218844e73f771566d5408728e1bb36a8a0841503673293c6ade6710e4aba44bfc7b0441f8d2346a9e0904f1d369e98e49944a2f2008227aa136ad7f20c6ea8ab7a4740535fd4098ef4c9e3a55c4977d20d8f867cc3932c93cf28124e6c63d10f54c2525ae999ba20782c786171fb3b2dcf240d09c7fd793cae0e1b424bb35d5327720ad2633a161f79a4b76207a52f93a103655f4a01ea20361ff5a5310262f9b660e04213769fa50aa84cac881e849ed79a870512d1d07724ed9ea3b6556668603417bfae58b68d68ebe819416c54bab53a657dd40da515199e63db6d336104ebddba8796c209689ba6c2df649b33590ec42b95d279dd455450d84ef9afd98511a08e2327dfaeea08164328cbcd79c81f8e69b945015339092c658418fd0cdb29781b06a4154edd65752938118f7320682fa6c6d95b66bf71603b963c8d8b9864b7b87e1528fa361530c863c55d0544ae70ba478fffda03b96797a811446d80552d49071dde102497ef8b4397f0abfb92d909452bb5a0f26c23a2d905b54fabcf1fce435cf0249ae3267b8946381144793f6a045d6ff2b10e3c924e305252ba4c964ccede12a90436ac69a081dafa502b9d3ee894a27bbd94f812c2794ec59d3a474480a24d9a5d29dbc97fe4481b8f79a49e9b3b5190a0415e254aa78d33b9e2790c2e737ed7025e45b9c40da24dc538c9b40f0f39c0904a5737a0944fbb395403e4fd633a63497469340f69015e599b4001248725487abd8102e3a0b1c817c31f4d977ea4cf759c008a49e4b2ddabe47bdd7c5209d8db824be2606d1528de7a841d492ac8741ce33bddcdfbc49ae160639c617b9ee7b1efa0783b849c8e4310706a93275d6b1786ae2ff05c9c2fce7dc97195f104dfc5eaeef9899d20b62101973ce5d39e7215e90cce2c3e44befc6cf2ec81d9314ffcd9a6ed20539fdf5680de782a0e26c4e42797041f6a0c662e6bd1c53f016444f4a6573d5b598b5057953b4de9ac514d76a41b8f05acabb8294d398160493994bc9799a96c6b320a83393751ec36da558160429db31e937c58264737fdb9eefd29b6041f40d152ac3636aff5f410ea394cc267d5790aaf469fcda7e8d39ad20c8183b3b7baa4c7e58410a7a1fe3a918aec26715a5cf1f6ba9e4aa20774cdeae9e77dd7b2a08771d2eeb7dea5e1c15c4d3316550bd23ecc3a720c7dcb53fdb62e3495390bdf279b0123adace2d0549d9a557f7d431a7e09282b829c809edfc32157714e4e4e71b7497fb25d58a82d4258390f7a750902ec99853e53521420914041da383106fcf1ca24f907a33266d17be82fe7882ac2e72bac5d20972d229b74d4d7888137da5dd0915f74d104f084f7229af09a2a74ca6c334e9759e0982cc25ba6b3d78ba8c09f2768ee94ac59720e8d8f184e81b4ffd5a82a06f6464ca926569d34a906398678e9b920625889b53de182a9320dba713a3672409e2dd28d9fb9c4890da2bf59c6aa5fb1c4890f64d78da8cd5a59a4790477610ba2c7e8cce3882981f63ba5c55cf551a51bc8faa1db92723085f16836b2e174fe95c04315f52195d3bf5514e45106d35252582a4a7ef439bce393f4d44907ceef637597892661e821cdc4ec85625733f1982a839c372ba8b6bf2540882a7ab6869e1aa749e10e424eb2d3c752ead3f08e27c86502af53dd52308727e8cdf1b33aca72610a45c4a3fbe7f976c0610e4ec7c2a6b903189acfc81b8fd27b2837f98d1fa8194d274f584189599ed033128b1a1a26bf2ed960fa4b81557a407d9f4ea1e48994b574596e79b530fa46c31daf44a762e887920069db4f3cb6d8ae6211e486997a12ca5c9581dde816c6af232cec5965b680752cc93f1156cdced5407342555a2032977d2a596ddb6633f07f2eace26b19e3966480ec4167dad76d9234f7120e78a31959f060e6433f1fe2c9a3710acca54bcacfa717137103fe4271d197bb9f536103c68985ecd4c7173361053ce1723b3876855d740de9864e74ab25255aa06920ea24c03b972982e99bde12a79682098101a4c7a16bb78de19885697bde4986620cca813b35e9d43c43290d4b80519e7eff37a6420be5f8af1ca829cb36e0ce4d23fead7f2664f4962208aaad8dc48d1ce7d1808fa3a6ac7940306b227a562ce99f205825232e4ffc8244fea5e20c66031cab53e4cda5d20a798ca4184980bc577906e8124533c9490f57e49a905e25a4adae4629b05b29c0869296f4f3b6858205f10c2362bed4747bb023975f8b7ed921508dbf1726d6cfe5481943c8d2cbd29c62b4f055287b8b4a0d3eff4680aa4d23336ae2b3aca470a24bdb1d154c71cf654a2409613e7d9f269dbe250209fd42cf7e93d9f8c3e816429f773cf6d5f3c9d400a3edba7c27f4e494d20659015bef2d64e894c2045f91b1d11eaa3e59640ac4b5f715be6fba204d26a90ae49567a492d09441da163088bbbd02381a484b251395445e308c4d8dcfdaea782ec55348c40ccd2417e8ba714839c738d4a61ef62381dabc10c629083c86691f91f0661ddeaa48ccc0a8314d3a5cd6b5030486169f38a68f10d160606d973534c365e31c6f2bf207e88e634cb754fc284337c418e9f53eee8eabf239bd10b52d26a97fdf2e20531d87de54d2ded825cbf29e5f4df67e88298746c3d2157e6823877bd2da22de50ea319b820c6a0e1db53498fbea319b7206ae7c8784159877dc716c417e59d3c836e9219da60eb5a90375cbcc9ca79e9131a2d486631a724f2748fd865830d59306316c4b879d39d96cf5173cc4316844db183bbaaffc6eed86241d21b948ca91f3c3c58103bfa481f254f89f90a62cdea9cce783776f4485710840eb954dd5859d95a41fc4bdf94b7e229cde3c10af2fa777f0a8fa543ae5510f535ddef83d5bc75aac83cbe7e6cb150a682983aea59d296330b5254906e2dc71ff53a9e82e023f4c5f86ea9deaf29c8f9829e5a56abcf72762948eac3323c9385140495d15042d9b5f55f464130e959dd6fffd9414914a757119b9a730afb85829b4f3bddb7d2b9b1fc668082985f4ba72c42a8b7357d8298ed2c6e3f3553897190918304014a2027d794b45de454dc7c4920e65e4e9b357a1b6c87ee8243024176ae2cdbd01108a733b909b1f6f95d7446207d95b8985c648a41320d9a33e3e231e78941f49cf272a4360c92d6ccdd7557110649850b13b63507832465b582fafb769f161824f927527e37e694bdbf20c73ed9ed2a4d71e5f505297c873219937a41d277eb8f99d3fbb7f282ecdb419c85902d7fef822897eb3c48d3ca365317c439254bae96980b724adad29c8a31a75bb386d96801daa18284e35dc00ac3c57a971eb4e24fa9b9d73461b7b07254ecc8922d4ae234e8f7871f6bc1bcbcba8b99b6d95cd676d21ccdc5aa32182d88714f5c4c9f0d136c1664cf5a29eb79a63ee6d56441d2e199eaa3a658902a05fd4ddba72e270f2c086a33758ce625daa97e054996be75d8cdae20c7a87d213ce4887e3287b58218be4ccc749e8c15a411babda317da2a485f2f2a895ccfa9f2a60a524a271f36a92a1584b3bc262316b5aa7f5490cd3aaca720678cbed97e2f7e2ed34c41ae9c4669b7a60ca2530a6206db3319e39382a4e37a713ff5a320c8b318a63e89a598240a52aa3ea5297d65a120a89495368d6c8ecf1a2808ba4285934b514e5bdc3ed19cd86557ccbbdb6b7c054b4167913b6977b527082f3b6652d4e77471ea04b93ea61483ca1aaf5ad449304e10bfde3d454dbac9d35bdb04b965f7837f90124c1384f70f7af52aa76d19a560996034a8f11fdd9c32a36182a462856aedfddd8cb8a3ace0126ff08c212bff567adf12e4d26b69a9a3296f6095209dcde5cf4c9fae4e8512e4b158ea39ffa74f9a6493b8f63c5e5fc3364ee34ff6986771d124410c7a9747afd21609728bcc23533365902065bcfc2b164c55b04790c2a7d8e2d9a5329fcc1c41b8305a5246b7d60882f08a1e4425a931829ca59bef34b4088214d1e4171634868b22487efa3df69ff4ca7822887964eacdee1cdf694490821272656b3e0471662bde66fea4c88620e9b38aa954868dda168294f2c77c979f10e4d4207645fe8e28330d82d8e5b663671204492859952c0805822063834ae57e4a34e70141de9fd7b023c37cecfe0fc44f419c7cfcfd40f020bf748b95ff77fa40f8af9c838518191f125a433e9a760fa44ff283fa9c437a207e9b6a8afd4f1ec8b9b3a52aab3bb71f3c10e49cbbb78bc853fa3b10eb72675f77ccd36f07c29b898dbeef4be1a90329546e2d6d59b9394c07e28576cf95e439906c5f4e888a166bd5c881a08456d513af2517347120c81a4b52e752e040904df13e4a2f68bfcb1b08227a6773cc6e20ac97a99727759d59690369c4695f0b992b596203c1e4bf9fa77dbae8af81e85541fbaa3d86935103e946df529dc5d340b03c35e641763410d4964c2675b6f3537e0692106541c55b54dfe566206a65cb31dde9c52b2f03393cbe3ddd65d6759a0c24ade2a972928f811c3df6ea2521ff312b0672fae7a9a0b39e2dd56120f9987ec67c637b3d1888a2576497d8ac76cf17c82969caaca6f102a9cc4bd6c7d605c28b12a739ee3e8c8ab940181de3879fcf16483fda3fe6d70251e7e546069993d2952c102f05eff2a09bc4c4582068101aa47997958557c8345bd9f856209f6aadcb94ad5501d9bed398c65a2a105ccd329808a5941a4d815c992be307219f63a652202559cb3f1ed6c2ff28903447cf3188d1d71d820231e8ce9c8cb0d1314f20a9bf1353a9ea7e7102793c654b49b4b4bcdd0492901b64ce6b9f3e844c205e94919d378fa3b35c0261e582e7942fb86c4909a4d938a541b4654e7e12c865723286fe46af1c09a494d174fcbcedf1b447205fcb8e0e21443302419e95ae5db08a41ac20dfced3fda8d01731083a74c9a80a5254af6190be449eaacd4918e4127a7f2d74c1206787be112aa83aa10183fc19c5d7ca5ed5affb0531e724c7e4c50d4a4dbe20fc9bba28523c4f887b41eea0bf6cf4958fd2f18260df5fbb1aad2c59b60b928cba23db743c7c5d10be2f6e52c14edffeb920697d56699c11964c5c943c84aa3bf96e418e21bdeab4b2052968d9da9b8fe3a384e9860d1ece830c1d35aa6a41d2216c93521fe64b461b6c63141c2bc0a20529afcd9d85d117e21fb59b05713d53deec2e972c3cadd57ab177ad5913d10eaf0ff1d9572c483a96754c679c5213c2a123f1e05b4083060f7e87c382b4b142cb73baf881159c2002216841043051af70ec54c6d3e464ebd3f4bf3d647312a24a1d942b48a9d236fe87ef591eab15044dafd92445672e9311d950ac20d6c8344ba192a84abde0041118230463241a349a50ab2099e6524a9a8ee1339636d86ae02887aa20e7af17b5db738c4a056183d2b9c4da86aab4a382dc1d7f2ca9143aa5fbf028382c07750a6226a5e37b0c53b963cacb14a4917e2a6e2a7dba837f3e0670a852102df32561396e3c48419697f7534a95aa96f4c68eb25110467aabf67989caa7823b4a1424a137068fabbc4d4145ad478582ec7a62466cee75b82005346898152848fbbea1838d2e99f3810e534307a7e030fe387a9832786c0a6a506302f509f26d8d98b89ce38994eff68b70a8e007d50982f5c5caa4b947d43f4e105fb4d3b5e86c8dda047954a3cb6bac6ca5ece3418d1e44a134419cd73fb53bfb162a1304fd3973a88d274c9033a98b1784ab97e85b4fb44a930a9f4b869620d97797b097177152ab4a9077f53c3e8627f97592519420b697fe3b312653f79c04d1329ba9a7fe4b12c4d6585d29e662544c8a0471c52cd6d4251122870441b39c55ecfa1e41cc0a5ab34c7ae5d2bd23fa2e8d2f71716b1b5bf1944caf95faa4e56d04415fafefc46939a15646705ae3592f664a6d5e04295b7e4fbe3b7284488b508a209e5bf8d0359d312a291124a1ab2be3ba8908f265f60aef983a04796d94676c4e3204c13a794c17acd4659f85602bacbc4e4d4df55bbf93c85b8e1621487632e6933a5a28d420482363b5d76b65698a9620486a6525641cc5ac94b103a283f3363e508120baa6cebdbe1a0704f1e33a09a129a905fe0752ce1f2e5d5cadda587e20e7b05c4bab6ed94168d0283bfe46f581d85f1d664e6ed0b5311f489942add2d3625a7287507b20758d79eb8dfc94c4675350831a36283d10fe82e8d01efa34b3c3512a0fa4f538b5a9772667e3811c2c785cf9ac19f4ca20d41d48266fd73974b78306aa0e243d0fbbbbf4d2819c6f945c51b249410d6acca0e6400eba4cb749d5d6b8540e24d735edd3d0791ec23810ebb3e5ae913964f40907c2fcfb650ef506e2e9527596224ce6927103c1a4851e0f9f94a5fbaa0da4f194479a4c393b47a8d8408ea9e5d97378a798d5326a0de4ca92317f9e75f6a349825203e1ebd38c92993d89524a0361b57ebd53f28d5153d0408eadcdb19a6ed74b7706524a9a94e758101aca2c339084d08c99d425479581184d4e5eae74b1103a1988de3ea69d84b7a90e7f8c1b26878e733606a2a692b2c132f8c9d19418c849e59c4a64c45f6120bb25fbf1af4c818158495a85fcf777cbe2a0be7065675577a7bdd55d6a7c2e4d72637080031d386e81505ee82da5983a752111a549a6cfa4937414171035239f4d9741eda0b6d05dcaa556ded8ab5dc7965d8d8ca79cb9b440b84e9a99d6439505925cacef9cc7427dbd5820bd85940f623f74345a5720858b90d9f25b81947c4c63d01677aeb4aa0239d7a88d3bb6a3c7ada2423633da329b7672a3991f2bb3d49b521dbe5335059236dfe0ae2629903a77537f970765fa281035c77ef414f492fe408130aa828c699e40b69c4b393d7399d03881a434377598f0f7aa34811cab1f975267025964533d09dd6dcf1208ca5ff5aa5d251054da54a3b24920b68f78a84c425fa94820c7798dbd94d9b4258f40ce0aaa4209b18c4092cf207be3c73cf18a41ce175f9be6aaeabb440ce20114309c5136e3ae0e02ccc7058bfa0420f0031c3d6ce0e0c618338a062f0d93c0e9c1a38c1d0508c00fcc0c0500a0078f325a4080003c0e4a193818a3e040800078ecf85306d2b1838c04c000000100000000d080192378c00232c0e3061945010138040078f03034082080d2a3201a050840e951908e1d340e0080013820013b5e07a7f4e051a3c602001080061c006ff4e0c10d54468d1a09482590df3594aa919f538d9b0492ee941139f7f3400271bec48b4ecbf9f1311b6cbc790472dcd4ae9c7f1feacdf139348d40bcb3cb31c83a6d709f957196e377d4e0c10d54033d106ee02837ce93c1c3adc7183790c718377ae0b85186a9b1e371dc2023878ec3560cbcd103870d1ea5468d042031f0460fa4234719356a24008781356a200085f13cd09123c7e7380006a3c7f3000619397e81377aecb0c103478d1a09405ffc808c93e37318007b4152792bc868dbb593332f481d3cec54ed671704d51b366c2b6546fdba20c9d9a4d2ad99a6ef1d7341ee12dbb5a636c9eb8eb820c64adb4d31e7bbaa87b72055771a192593574a41680bb2ba9990f134c955ade440c65a10b59456a5eef68c9b327818079016dc27a14267b2d4d9d92c08d71f2a630d029405395bc72a95670c602c4871336f83aa2d99dfe3b11f405810d3d4a56a9ced15c9a44fe80bb71764744510b015c70aa3b18a53c5a5a25171a758dec4aad4f6446e5db7459c8b3235d9607b1d9417d0a0c1e3d014a4b0cdd7d5bdacaf9a5290ce3428b968a531de4f40521094ef7bcc201e1c05e14ba58f19f3c8c5f56880a22008eda0e15f63673b63287c6b7bdd761b9393dbfaff948d9a4587a020dea58e9c698fc973ee1304f5a6ef2c9a08f15df223a027f235ad0eea65d4a613975bbc868c86887f7e76ff4a9e2b9e0db63278d4c03620270823f3e870ee29362eda04a954a85caa746bb4629a20d798858ca6646a3d7d26487b49db54faddec3d6382743a75dad29e5f82dc7da74f26a5537eacd1126493c1fe1a679520c6c8eb511b22f3f5dda3a01c9012e4fad8399ef4bb54ab9904e9dec4f6cb863c39ea5a165012a4cff021323ac235d6a30c14ecf81e248804415b54507f69a3b4831012f8087404314c5ae9204fdf083755b4edbdaec4cd544690f2c8111393bda145e7831f4349b0e37b90e071b0e35180f738d8f139ca7011e4bca9f3a6cd0e69352b821ca3e8dce23da7c41a7b820e7840052710c12226a2ccaaf5aadb38af4fe2d247d3a64ec81a11418abde262eac243904adb4fa357d810c470a6f4b685f2605515820941b0f38b0d1e84a8c5100741504d213caa673ee00232ca400f021a34767c8f1b6e4041e065f67ae1b96d1ba775a149c818953cd7f736d87e8cdb017132721c0c84d11803014150b329f95bced1a4a5f807a3e107a3b17d383e1c8d3da01e1aa59b9e37e794077250f93da55fad56dc110f462307de61d10ea4d37361a3c894c63a180d3a188d1be01c4819964ee83e1379e9154026500ee44a613405d3793735df04c661d31bb3da50de61a2e6daf23c403890bacee4fab9e60d24bda197960d05ba81a4b477c6b4397fca92b681ec498fd88fea8a1d93029804b2817c2294853715b6324d6b20e8df0abf62f900f002d5404a7369d1b3e8e8387f1ac8bfba3986f00a5affec71238f0988065234edcd0b73a56383ce40d0b216cdcfbaaafda23ad00c44dfbd582ad23c9976ca40d2cab14a3c8489340b928178a51ac326cb3ee2f6319042c524aff2eb6deeb3c1b609c540fc8a71f3183605a19e30904aa8cc0ed234e9be0ac180aa271536f99af00be4346d2916d7c1f52ce805a285a98ca557bbc32e102f77cca97ab23be4023166dc9431f73c9dd01f5f15700bc41c5a4a63a7a0c1fad702295955cc31fb5f5221bcc32c902ae8bdd84f5d7e15be6b026281a4e641052d15c4557e77780562b2a4b11953e814d52968055225cb41b705391d948d55301a33402a90da94587f3d792d6ee3e11448a53387d099b1cd52f4500a040f3775e7f2398c02c1c4a8c6169badf8593c840241a6b77cc183873e75119f60340e9d40fe14fba4673e9315546cb0d51843c7183578dc50116013c81eebe1f74cbffbb277364026104e792cd9ec9d62da1d974010a64133a8b978a80492b0603a772e0f0f9360cc778578c8bc786c9c8a7a6abfb50c4402413b7c34cf9e7b77ef0e8f40501b4ad8a58c262a8dd4804620294d222f426fb018c46cb13f58fd88c42078f8e859958e510be930b818d66289555118a493ae2ae22cdc559022068370a33e6d86c93c79b60283307fe2b531cfb5e72cfe829c2dba9ec63706dd0d0fce17e44ad324648ea96f3958db0b62d0224f8926b1cb3944ccc2f1821cdac5c4532aa996f65d90f3f768f6541684d09f435d10f7aee484d0732a7be12023c70d1e4d2e1764139b25c5a4c8346afe1d645c090e1732b85be09a34a7f6539d33c916e47f4bf313997bf4c66b4110be6be93d8f08fd8f16ac967d8ecddca56bcb6755cfa88db0cd67cd82e827e3a8868b51a569445990621242da696c0bf258202c483208a53dca05a51fe27b05416abb8608bdbba2555790846d876e4d2b1e375e2b5a7715b1bd2c6f8d152499d237ca07bd297e661524313d4aa89b85eccbaa20d65f8ed07cb154104d96c760a5ab9e7d3d54902c445bb898a55310f353aa95517a5390dc63ee121d6e6e735d0af22775316612e19182944ac38f5555370aa2b66690e3b1a3efe7308f1305c963c658ca34e8ed0f4341da3dad0b1aefb62dae010a720a4ae7ff51cb17a1ed18f70992f064c9b46fb577e63c413ed341e54b19ef7c8f07d709826c4ed1f25b7ed5d51c270837db39778c579a1cf526483a73ec0b3e62c3f66c2b9c2608fa739a6e964dd750e14c90c3c2835d7fb492165c4c905cb32825323e5ea5ce25c8a6ecaac336e62c418ed6b656bf16936bdb84ab04b9e36264f5564d06211f25889dd9e3e650e128dc2408faef3f6d3c39bda7a427098d0431c82454a8cfae0b3a2408426fd099495b8eb99d47905b53bceb950fea457ee31c41fc531fa95d22e45bc3718d206ff9f9dea7dc2fea0a5af081a3c331a22a657ac382f9b708a259beea8fbf11c32982fc312dc7dd92ca722a1b6ccd814b04793c88558c5b74708820a9d820b4fea5533af8a88f871d82d4a73bd2934c162f8ef00c41d41cadf2831d3dba10642f33b15c6aaf7e3784f0cc5d6c73dceacf07413cdd99d3a758d1b3725979e00441d2d3f17ff9bc409063ce5d959348d3321510a4acae1684cf78e61c52e1fe40f24fabf4963629691a2e9c1f08c2cdddbffbd49bb4735c1f18e59e27361663a86d303a3e90833ebdec81ec71c3bc2ed5099db71e88a7eb4494a57bfcba7920c89cfa7eef984613d1e181209bae7288f4ee93c93b68d22bc6caa2313c3b10738a5be1ea5f1e4a5c07b4baec6dbc3254e4f4b5fb2a55a94eb2baa303d972d2bba352d017bde640f69c3dc5af94a8da1816144e0ee4d9d4da9549e8e2400eb5267e32f79492cdc1815c99d5926e46ad0c3b0dee0dc45c395fe7e78f1bc8e756213ea7ba0d24794a76e48589722fd9402a1d458718fd1a5bab5b4319b6e3557af6fda7b69d1a48c2334ca98c9a95e64b03513fce796800c29d8198e4d74d86bbd860eb514ecf0ca5a0b45359caf0d87123d906ae0cc4a4c3b5c964164dd9c6e8c081831a64a82e6fcce4cd4557546c3bb3a5bc3bd1dbe05106193c06f2c50ab1ae1bb4a3f4a871033b706220a628f129ba3d6ee02083875f18881ed7313b5ed4feaed8603b30102f85254f2bdd170877ed6db6b72f96432fe4725976e2969719e3c2e0ba401619b36767f7d335b2bbe302c9e4fc6d6ad76e0b0461a93288d218ee74f0fa92705a209eceebcbb7a9738f89775930d3c36a3364b556f7eed7a30839dd0f0e0be4281663df06f5967157208dfa14a32995e13aff9f1548afa354c4df2e9d7c7d5520ba07f10e9dcc4fe7141c1c1588a5f73a7f4a673df1e28e9b023163fdc8ece979669242102e0a896d0e0abec7fb9016e19e1000239c13c825473da6289ef366afaf096db873cb223d78c784bb259455b719eb313b8d56bf830b8bc6a8444de68202592c120b44028128180693ed1200931308001048200bc662e16898a6c12e0f14000367301c32342a2422181612148dc5c250281c0a03426130181c088341c13028009129356b1e939ea9056c921dfaf7d50efdabe187dc5f658517b756f198a760b4b183ec8f1dba16b9e2b0dc7f8aebe699c33bb6a4368609fed3c50a34b2222dd55755ccdbe84a3331a2f1ddee65de233e57f740c267bf1c957d04ceb3f83f3b1c7df55d2266b7cf49ac1e1dba46fb6730c3d288324673fa52a78716669c0d185dc794664852b6164e246350c3a1d532e0cbdb8880cb98d4036e89ddcb7d5a38d4b8eeb3c262c5e6aae5c1e82dbdf6237ed3a98aea33f03aebd713a646b0ef9d5bad0bcf253978114c96db21f3b991df261f8822ff2d05f6434c45e20bdc8a0456a89f0ab126b0def65e8796cc3faea66f13e6807792b28c87eaa898b916704560b96c380b50cbdb47329b292863b9f3ef067c84bb28efd5a0d8a18c51b02e9242ac44da189b75862f866f2ff412de44ffc3eb03c0011f4b010c1eb24ef88381a90e41afca47da0bbd118f0e6463cec712388cb40ce54007401ecb48216232baecf3adc4983cdc2bef109750b99d5f15465e4225eb1892dc0cf243dcba5217fe51a6438e88a04cda80963fa7f356b45d0df9ad89e87f5996aea0237dee7fc239a75f4f1444c09ed1079139d63617235fa99eb6bbaba4882c6abb18154c9feaebbae577099d07644198db8a89878355496e5d5badc44e814d3146429c77b1349218c6adb85c98e21127ac9246d6471e1b4680cd8690ae0e8d01275ae39217e97c354408865bc524bcdafaaee56eb48dcbaf48305b6832e313db5aa9be558734e4914a3282a6680426ee875b754d36c156975b55aef7eb78c7febd2f7a78c858a1b08cb4ff914ac6f1377f79256eb8ccb446af76814f6d2126c1a3a67b855b86f3955e9fdaef329ee74e2a91f37816910776f9b87ecff735fdabdacd6d2d7871b7276ef6ea6a89790b47e87a03e660aab9654ea5ac2ef3dab978ab8d62fa3e15a32b35fbc0f8cd12c732f37737e1cf11d00ad68c760afdb483e5386180d7924b906bd9ef0a7c3919c4f933e1ffe6e820fd353009d35b2123d75b02a91c6ece1e97baf6121f2d17de23ca3b5d53ccc900196248d05cf88316de2e447773414696a4c00dcb19d3981e74d8f46f55518dd5463ee0b4d4a0c853cd3f9e7cff699c3e47c02120e0a21a15e1ecc6397b582fb86907ced48edb7cd31f1edefd3dada273915e4e2e60e550ee9863b5556a94451f3558ffbf634c170caf25d6c83c12d21b4591e4b704e8d6d67ef098e36704c27ad6d50537cfbdddaa963340e4eab0eb8c60459a04753c9692181a7df180544c9340fed92c70e04bb4b8eb9e3fe687c2738ec510ca9af150412f1c5548b0778d8b28f72de65049690f1376ff2a7745bdc162f1c789f9cc71a6ab7baa788a12f6fb25b8ccd95a65053fb242f2fec15921ada1ae83709b840923f9887bb3612d2ae30a282625e1883fb136e5fd24a7c15584592150828784051198437db502ebb514267aa24ed0d219d0bf7826789c482f4eac781f61e64d7d05be0551148164c851a232e12144381fe7120fd038618d95ef2b9e44f4f6fca921ac8945a42abc387cfbefba4abc85e613975ec145957f93b9533fc0fba8bc785b6657e3438c54033d2b34cbfe423883b84629a5fe29e40c00d59424ffc5444e91c81e9d033b94415b0856fb7ec57cad3e1dce3a6ab0c40a2a7a197ea7b844c19f363bb1be65946c96b2677c2d46d5cdc35da65b8f8d2c02762f8297d4450e127a7218d6b890df37d871cc8b05786879f60a4ef8fc6c37a5e730e2ba17c670484ba4a772494d39eb940eb2566ae688ec8112305ae8cc96c786797e0613d6c3e742dbe5432ecc554272140c5e80817031ca4306633d4cdd65b80159bdd4d9515e3296f40eb473d76ea37e10e9242666d346ef5a34847300e063308220b55338c6e41d6863f74af02eda277029bded4c11eec56524a273afd49be877fe985d4913f225135da306bdd933c5ea256c2fceb636cade9c5ea4385c27d774a872ecbceb504357e68e2db605994e50771be112d2f04bac58875d2851ecd343c17c7a38d549422ab910840ef77c4c6d30117da965585a070fdffaba4f9dbacd5b47b232ff22ef7071893365151861525b58fa876e271e6bc796c75c3ac5a98208e4cbdb7d298c03d16646744ac386213f92f7cae77b28bfe1f914292a99b2546d0ca94e030854c98e546df46e2e2ee15e4ef31628deb891831e28dd3bd89fece76d2127ab3e02f1508f4bca84182daeba379be6436c927821c29632bc85da2bfba5cf97b1dfd9d1619deeeea3333e0d67510fd218ec8275adbb7509845b9b3e419e074f7e3602af9fe2386d786619a222fde5488bc48f1923341f7b227fbb9517fc63f98879512000eeab34515e2d3217f3ed93807e2f5c98352d12bf8e6764f26cc817bc04dd8ff0d52760eab957763f18f7a82ac1854ada511ca769df3885185d504c60371e2ec9255dc944b8687236390d7cd98f4a9d68bb2ac19c4ee58f0d3ba4714d064b7bb966e50ce791d117cc42ed741045aa25409ca4fda26dc6a0a9abcc681d98fb9fcfc6ef3e78937d0983818281b5d85ea11bd7f87bbfe5c397c2441a18085b91f5b672025d98cc0b5a49a000fd616b8fefd08b7aa9cad38c9719503eb8da9d2f51a0eeec59dcde4b9eb0e1a3733c518704bdfbd814f031dfbbaf02b5e0a487f77ac9e467e4a5d4926fa7a2216a3df4a826001df6ce939f445a6533197006b34f971ae3d8dc7e39d2f4667f01497604ae162f2c7542e65df16935fd486ffab362e2a9ebae55bff3ab7415a93da3219b1d1ac86486403136cacb4d6be63901fa9cc6123a10beb2db7490a26631c9f43c0ce575032bddf888bdfa5fcbd446cfa75393bc3cd257672c000f491feeb04804f0ade19552a03a5f2e706ebfe4fc9088deabf07c09520d469d04e67956b14720a3cf92ae50d3738477d7438d3c210598f97e9634c610e2373fcc4bd0f63b3c726fb144e40ad63b1b5410910e2aaf85137a600d5482060e11238b75d2b1d15fed822c03fcc4764273459c683ef1bd828e8ac42dc573c046fd373956a9bfa5f060cd62973fcf2054bc7deec6bcc0650fff0e9a36ee212c36d3016ef85c0f0c1755b2d0528b0a41da907ca5195f1781b81c4e17041889eae464f0ac51d83d8739cb25a81b96477a7c0d9a1240e17cf37f116fb1fec9703e841891ba28ce6ac4fb15efc96a09b8758b127aefe72438723ad0dd0adfb6d6d6621349ec7b9a1b6ea5d1d4853c863bf892841d76cb50a9d0091e36fda0119c24207471b9ba6648204b7aa745a0e0507ac704f8cbe10402248e4c2dcf1d0b7366ce0114510bb22b91694ec104b2c20e9a0c62b23b5775a17ddfb1d040463bd492b63cc6d287166224b2fd48c710858e2485374cdd34a21bc516f841c97b35e15bb18ceb93b9db34412f2e4ab0036cf5fd254d3968fa60caaf88722bca94560d5e726d7190bd3954d23d2c708818f3023195d1b3306bf7b723e8ce4dc8c1e8b1365c383395e66de0facb7e344854e8f69aa178146d0ec31b3f46fab6e1c0949f07858919180fb49cc3670996606b342d4857e460d5efac917516ff56170a9465b479cebb28d05aaa52b771986049ab6e726577059dc2a98ae3aef76f05b62bfaabb9afc8cfb2c8697c6b8f709c5b639769721889ce1ff1a022f86dbcba4b749ef270bfc5cb1354bf6ef6a18f9c2ddfe10971d46a8663b8a720e48776097e47e514c4fa9fa8ea547c26b8f4700f01c29b194574235040b58df1b7db5435059a82636b3e67abd91e32ed6073dfa1a585ce6eafb1bd79eebde40683ff578b4a70d46a58f1169b40890af1e343c3db285e078dec7cf6d83f892748050b13da805202dd8d8d6db1a2ede81376f521750bb48d293c0ca8c7add2803bb80748df85f9371f92e19d729ca5fcf8a33906e733f11e5843e1a81522ff628b940fc37ebdb002d2ade1b570a601d364e46f221ec74f403890f02fb9dab318254c13c82670acbd428b1376535c6037aed8dcf830cbbd2c6e575edaca71820e5753d2dd72578666202686ec9e8d8dbba436f2a4353b56e8f3a5b8757501cb9750b02aca3b6d5e12aa6e42124f3e687049e379d2a8df8a51cec8b15702c1ef0d914652161904bf73d066ce25963f0d80cd738adc7cb0b7fb102a29896a26f2fa4654c9a365340964803bb3d5a42627d9d887f0c33dc5a7a86093ce3a35b3d1e6a0280c4088edd39ecdd6b5cd1c5e79a13bc06ef623dc23575456195ce028f051117240af5a0eb4bd773bdf52402424613bc7435c1cb61d3c915b5773ec6bee98a98dc96929a30828824490b699b22c35b2e740ffd086508ac86db92e296688c0e1281bedd4571ad1370287dd18f0361bc38df084bfd0120f59c15d327341944d466804c8fed587cb3a09febb9187a40d0874ff56812f80e6ee506f73fd2151a1d396439b5245b602afc8e939d1d46b87e214b40d773e45feb822e6c5100a58e2a9f028ca29d44ce111181fa97a0708f84b79e80a39381645ae0b07eabdb52e6b1342c78804084e0a28dfce552c89046888fc1dc988465c16d9613e4c4d81f74d41f9b0fb208b13db987035cdcd5b45ca4b8f0123b28f3fd76d18cb9efbbdc49034d6319f042cc499510df5ad1912593c0cc7d5f1d043b11c69df8502d1da41ca9657de747e3ef546e9c5fff589e8dc18b961047f6e531334f4834ee0994e0be2ae03162c5384f1d29acea9bb8fd03ca69c1ddc3c15eeb1443036ee6cfd38422855d64b6489e5c6756435a0c7a1a2af51137e45387b30e9fc0c5fd322b4f6662903ade5058a55ac0f64a79ca09a2a5c5046dedba9e8b23401e5ab61099e5de1f62ff810d77c949f2e24ba18b46b58d750ebcfc1457651ce06182a50f925a44306267077ed810be8afe3f513d8502260dc3bd3a7fdbbb6da8d2a01e2bc378b294edc23b467b963ced4d8de244debd2b5e3ef3a6e4d42e7a5f7e210fd01e47ba1b98310c087da98d49b37591a401d6cebd7048d85c926e30525362103d5020d0ce43b834cb282e7f8444800296c50584dbd6cfebc5728d805a0d066abbceb2efb6046195a6f0dd7548094836128de2ed099b99d5edcb9134ce11ad46a4d6353279134aae715136f1a9bbf999c5c08a0d012d732cd696ce1d49289c595614e42a164492883dbbb533522298dc819adb308a15f4d4d0f014e18f25b8802c680438bdf90b2e6bcc405a5c4acba3389725eaa37af55d1a5b2191373ee610b7247e3b85ba5719c2deff13f076259e8aafd6b0c96dc823e718db1e9368ea4d2cde6a2a08e92a992e38a823b0c3748de7e6693ebd1621383a6b70bb24d514cbc6128b65f4da9c97622245e64e8f08a3717e6207b699b92d618a911b09ae5ebb8d986bc59ad168cc6dbe0c5fc4ef9043006939f18b103cea8520d364bd1f1edc06cf0522dc79a7b5a277e3297bcffc062012ecfd603ca07c1ac8b91c51a625490dfc48fcbea01eddbd6d738a5b91ec0606e7c4f397ca3b0d3dc7ad5765be2e80e40e051ff5efc2b113d119fa59a95950ebb55e236b279b53ebf4dd528f95a7bd414bb3e6a14792eb5f425bfbc142649179aecb7a8b27e5604266447ff0f12b6d5ae464ff70e6df144bfbe18c662f9ebf0ce564d889e8fadfd5b6d21f8f56aa4f397e998d9529c0a9e7d75206c8350c9292304de115f6d35032886ddb30136983e10e5ce15ad2b836746ada77d109e5d2d25da8c7de18ccf50f9e8a997fbbd7da865c452eacca1f0acee2ab2fb28acabefe8bb17dfdcb91b73bf0bc288140a6cf6699f9fa0fa07cc00c1f3c6470ad4e0074a4b121df31607eb746c8c54dcacbee4b8263b387dd9917f2497b693f66948568a840c2ba5bd227429497fb0f689e817bdb51c651ee82c8628e423e1c46af9e86c61b00093ac06763fe4609a10670bfd7e3de9590567d751fd346ac95822413100d5cf5c521ef75413b2b21587f2b290c01005140ab2d01f247ec373661adff6566140b55f3baaf937f1bd3f4b314bef023aa3fa70935a7ac45de5d9f61fad9abfa3c043147a165835abe23ad5b90fb3326bb602203d2cfa5476b23d1cb681bd8eea47e1bdb802d3b91f5ad78c5331299a51113344a395b7f4d86e8baf501dee94b9f30a9b8f7678831e817e2ab957ccc2619a1394cd3fe76eb15ad2bf67bd4386f6c3f063bd79918a289c291d8c9242a7a6507d9fcc8499e26bfb45a8c18168b9d2f7a2afbe6ab68ca692916613f6a18fc002ea8803f924bed9fd04270154e3a066e304034c6010ff242d2f429b651f29dc0a6625561f7033a2fe7435a12307cd03ff4bbda6110ca434e491873d71a519c980ef6e3e5dd2661753d1aaa20245864435ea3b7af8c0b176692398afb84a52707b5743eb6b8a0653f65bcc39bd5528110dd784697f81d9b7e4d615006403b0a3999b2bb4013f201013a29e33e81466326eea68189462e6aa13e86f9bf9056b41a606bfdca4b1c21820502f939b78228a48de48d63dc5616a34400f709562c09a7686d6c4e003213415f5d1cc78b94743e9aa4b200f971b474cbe6b640627cb69818b86443da1cd3063e5d9afedd0d5cbac09f59c689e43cd19be6c4dc76841bb8647459e612e0bee3ef6121b3b8e94a91084b0c133ef60ffbd804c7286411fff0ca1ba5383faf1ab04237f37557d0886246b1460fbc17302ec6477ca99ec91ddf9ff2469e4a1520f2b10ed576d6498fab84c16210d20cf596e2b0166fe3ee4564d8ae6ddfb11c96470e3f409b66fbad3c81a9ec2a209b4571a16dfb4d81a7724758108a7bf8768418e45bf7bddbe9bdd2276b992550ed12bab2bac0d3287e17bb823cabb7381a31eab7aa1f6d66c558cf10da82affe2640e29a38144dfb7a0e37630c443cec076978179495d3b0324881923915d4ac164ef42d504f95d4547760a0d4c35c4a510c431913b04896f76eb937edd710598d466801ea0f24d432ff701559021a261725ff7d4826115a302ad196ed28e26274d8e3446ada9e3ae0742cfb24d8ad3d9117f6a34794da751f5e51886d146859f0091059fa64977da7d69a21d374a1a00dbfb5648d05473a1d7de292d0008ebd2cdda862900d7b772a13b27d2da13377f4d57a5a10857c7b7a0cb65cdd66bc7e66346d739b25f1f317f337502a6e82c95d4e60b53a4805cb77a4c1e27ca665672fe96a03a5d33c0ccc66292b8fa2d6a581f7ef9d59b20bad52b504bee8cc52b4d4102cdf8eaa87e2ab84fc351b40b9097cf69ce51bf1f77df4b2cf0d6d3d70f99df1aa73bc18b2748649381ad6fe2dadd4d1db85fbbe917753badb717848bba399102717ad72a67d37da5ac0a23126a1e77cc42fe83f761f54c25f5ee2aa18f692185c0063439eea3f57870cd44e2c87f77c8bbe9a67a644bb59a4d07ad5fa441bb578a846256360268a86bd624f492228400b3a4a380ea1ffe38447675d73a6dd1b3ce3caad35cf4d15fa7939a9697cecb3ace0f3649420ce0f987357779c07a10e0203e40b4a8836ab4a6637d852b99633665e85e116fec0dd97b27956b99ab69ebf5a7651fa8e26640c0ccdf43303fda234975a7ffe5dca0da375d2a98f463dc4a162bc416013253b74ed9faa4795fc242ddadb79c2ac5cadd36211e4035dc36af08ac2a1e8136f8ca0f0ae0cdfbce9b081e0353df5baeed320ffd1c87ca038a6307671bb26199bac09d4d7b03230936184815caf56072d0d9d96cce0a51af90d6b92444c099644b266bcbd544e299b9f78ad03a314299905574a8e4bcb8760457d7eed1293309e65958ce752e14d83fa62ccb57726a0b3562550e5198400e737746b4da3b1b6575dbd5f526b9a216dc2be9034e2f84b97d9c8e2f3d32ce459c4ca7b3ba87ddf55bacde0ee00a1d1c7617b2443d0753016f4fa69466a3b9ac5cccc2c45ec53d9d50e9ac0945d11004a2424150ebb74bc4ddb20b411b94c6e5cc966accd6c4944e70c6e77f45c7b586e72de3f0850e0284fcee010729cf8a08b5ef3b941353a50acc2a6d060a8fe2c047f83362d2cfc1cc4c710a3f5d7b49d0234784ae090d8d0971fe3198dd797c3b24df315cdd074cb399078a305d4f73b0c00ff9164880b30db280ad9f878547642dbd130fa34dc74b7a2a0a39503a2cefde7a1083121a266d81d6f83aeee83ca75de18b7585a4b9d6240f04688b97ec14be987a3beb00789ee433e960604ff91d80792636a4baff41709e05a7b6bd4211726b8d43d621140b680f89210a5c24e43773e39f73774b7288a859f2db37dc3ab169b1cff1db7870272cbd1e3694105496deb2e5268f5042dc423d1d0264fe2a8341e5b3286e88cc7210c90d3e9386f43bc76b61e0296ac54f1079247f385bf543c308473a9e1a97a88d9de21b99494e75e5b55573d0a5348572554d25baeab9073ae5967ef492ae403fb89bbd6ed2279a42367096c0bf4e0c6b5f3109ce552b0bc1461f781d7b59cdc90f5661287684ca5544b8b3a79bdd0f9b2ec7e10baa21536e5bd709694d65b9f2d5f4d555a8eaa75b113a5e986fbbc9d55a8f664cec5d0989f054a6f00b822631df992cc8afb8ea7b40c885bcde8ead63e693e327ce42a9be3092b7f13eacbbc9dc6f521b297bbf931f4c1c21dd04d0782ab2449c1222ba8d768e6212d30ba1c753659c72ebca2eb0a7eea6698ec4cc862ec931d1c23a9ca4e42a540bf38da56802c4f5a63aa8fd19368dbeb468e821dbd56410bf8e22acd3aeb354ac88e4370128ccdf28711dc6c578984bcada35b70506dd1cf986081b08a2a0d8cbd95e68773a128f5194b69dc11c21d4b10d452285e22fd4522ea316c82f14ab889d7cdd11216dadf96a6c44e3933cb169c8f5292e2f60abe3c9a8d4ed2565c658404cd759dc097bdb0a51bf54ec9add06b4020add7374b9b33a2c6db36491bbc7fc69903150efaff1d5190f76a1466a2dcc0038d3a240ea1469eb66d3a369b8448ce18f5e426e9b2c4c1edda198d76bd27f7bb709d21c332636dc12b7b0052f9ea81905461ea1e8c1121aeaeff866e0b14a38736d9c9919199c1c4f144fc6de69cfaf62d5de22e263e4f971dcf629d89f6b934fd2a79c9e74136a9ed779c344ab78323f06f508df444e7b99ec7d3e2825d51b6efd1869ce3436324693c8fc0989a708598c05387b71189e3629fcae7c4ad00681d83fb3dd1014bbf6ab8cb00bb579a7e4ac514f493ee5c6de9b33878750a5ade49d4388711750318a730aa0518e49be6dcec13c53855caa13eca6328eef713243574ab14db0d8c76c8de9aaf636a0e17d774996863e2c4c57ada5d50c6b2d81fa74e308c331ec5dd145942032e071d539b74e21c14bad6c230eae1ac9184e63699e3daa2130731382b76a205e069c2e511d653fdfe3d2a52e2e5b75fbaaacd3e5ed909801c3a7c6fc3551073bb452c08843a3dc08daf0503e4640c5edee7c526035c9fce789d383c2d90e67862d37639bf756708012b4a811b84e3316284c1616e32281d6bfee56965502a360f692c8c1b7b9c210a8e5fbac96de5bb5859c6158c878741a7bd733b51015328952aa67b897ce87be4c91666ad68dd4d5355556064f988b6382b92c29251947ee71529e01013bd7e245babeea06cf708d8d130bc5b34172bd7643c2162474fc53e5c350b9855b8c12fe1d8cea13b591c48924584b26e4b4791f308833de053eeeae4e4cd4b98a9464de54ac18184b1aad4fddcd397a65fa0c1c240049d584701c448ff707876dba0687d1e228c743ccc66f91028c375e89b28a4d73ae006d1331ea707907de43ed431d44897a6392bfe12b6cc0fdf7a470d082bf1435d3b0ee659263edc8f106e5deebfb0a29a3c8d4b428998109104443a0a0e94880233a88c1e9b0ea03c58e929f8c52a00b7e96fa20739ee1bca1a75d1c3998445aade80197b114ae72c66102f514dc016ec6d8de89103a72a8d5d44893517aca077f171ccb92f40006632653bac6a3c13762abce941af1f9de619eb1a1226277d9b26628035e9296308326d5a9f351f5310699cb95cbbbb00eeacc16305cf35a0e2fd21729c03a85823834e00ef339fa06622927d302ff53202765d126650484e9616259bcad6205f7e0e9732bb650628497d6943318afb39c305d008fb370f9d4dc0cf5db9bae408df9da9a4842149060260670c33b03cd516db7cfe6983d37efa44d388ae51a5c1b0a841e3217772f3ed4c1ee73352c4402e72d58539c639242ae037d855a05ee44edc824850ae7baa7c186f32382ab2d280e62a9e973788aaba142e4c5f39598931948318bdd3f05e2b6cf12c019d21e42900d91cf7d085351b0d9865a17870c4bf5da7217141a267ed5965ed34f75fcd46412927da81da2b1a058e70eb8ba30a05a77986ce485d25a4b127ca2f675c1e6888d15dd9d598bce046ac8a878c0927cf117651c710aa868d0138fb81d3517e326fcd81680f9751dd8d1f2b4abab3f70e4faf06cf8f8dc62264610711e51a8ea86a0cab45416d8d56cb7546c2eb0817fde6e8b61353c725d282cb06a17a1a5ce899574cf25d1412e0af1a34874c5a5afc9d322af4e5c38eb23114ce698f37494aa99966e67010f6d30d81e4d57fef3feeb0206a75e5334c0fa0ece07152b277100c867949d0558563416a85ed687993900060299077fe8c15cef003d5b928a0ac520f40129f069ef8ec98803676927fd18b7d050e530b397e12ebdbf4e67085a8756a06bee2b97e59d24911f5d2726eb92942c3c5793cea5a6a6f0f41eb235230ac5219e7dff7a280054b7fb05d2859b0221dba8394df9f1fb59fee6e6944b7022c57da72035a385d0270ed552116123eb9839e63124630271b838087dd3a064e40f12f5d2ba4462886faf695274e7c6605ede79817ebe05ab966bb35ccda357d488b1c7590be3000a150aa6376fae4a3d4b9b46a125d08b92384442ae7a8806ec6ae00cde88d3945063022df334200c090e72329b45a0007115788ec5638e1295f78b5384fbf6a5383c4e8b7dc020a58d968b4b28447f238ec94731f52bd83c0cb944538c4c4ba894da9380358d72c451efd333bba49263324b133c9c362b44c2c55901895f2764580f491ba97e4f6148929de6e81db189cb1e7265fdf75dea4da87f9c1dd03a9fa8f4436e38ce7c8ff50866cd1e0f2f52f693fade836b9f4d92ce8e93a5b7f3a0134d7472c26c0598b089da508fab09e10a88464d6b0e2f0b96b01df275f25701cf6cb00878feb3358945dba982c73b0c62fe6d404a5f26ced7263aa59de64489eef6d5c0056b5270f18c0c262f957175e613e915875fe894393efa06114257ce349a8b2c5b61a6b396334456e16d248edc126f92c39779a7cfe5fda325a3d6ddcda51a86af5c673b40aaaea232d2a7da99527fcf2e58d570e4e21844d250c30550be06567a8a329ac9cc81581bcacd1fdbc92c02fe3b5b045893dd7d764e7f7f811b3899980ecc94067e21a742dde7ad8d51210ac0378072f3433fb3f7042e3ad01ed7f5dd0286a3fac3a1d9ad14d625e9fda5a82672e7264c69e79e259926b110803ccd33dc7c05e9ed71c3639bf0e7c74af985ab39060180c7fa627379e38e4a31be87b446bfc5a857b103c01906a08e6187ebba2fd528623a0360c2f7352a3aa501aa880ce53c16e8524fb59c100531a087e6ef2ceb8e47e17ef661b9ac7ce125d148b3c380f28c14ead0d67508582b7a0b07752c82634b92ea35297f75137efdf4f2624ad24c2e75f34f68da16f8f5db5b25fe09426963e9a0b4030a35fbccd12c11dfff20c344cd0955435d5ec9d8d60613c8eca874f999a7989d45d6e046d078a3c44dcfb94178ad804ddf7dee6e95f986e81194349a25c7241935473fa93749bb212a397f1372fbb9922d09b266c123064cf984108cd8d428bc15b4171bfde1bd0acbe0eccda7ada25e24f85860bce4b29061dd09fb81379a4fea9f5199a4367e41057c17caec94c6d086e1ccb867292485d61532755e8ea441865450150c539bf65a07ff38f668929fedec0d21e0c17906b36623020244cc7620494f9fb6ad8872a50200f40ccd6d6135d580626926e34c628a0c38a8c5a4c237eddc28d0c17055f7786127d69887a0c78af9d3c9ed2c57c457c26cbd4c512e3843d42072d3f0bd3617795a2744c7894616166a4ac9430b67764ce5e01525b57f105d92e6393b272190e4a4e41d2e9ebe324e41ed1934edad3a30ee2fcde0d01cc3a85d986a7a72bd012271b9541f5178f07e6ace39dfa2804495ad17aabc94dcff0d9997703e26298167521dd45b344210b327e91964e7ca7e76053ddf4548e0ac2cd5c8a70cbf746d0d2aa4c87e08442406010c499842ee1402a8f8551993ff7414434d8894ed0025fe40f9071b16c4ac75c0b1669954ed6fb2", + "0x3a65787472696e7369635f696e646578": "0x00000000", + "0x3a6772616e6470615f617574686f726974696573": "0x010c88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee0100000000000000d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae690100000000000000439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f0100000000000000", + "0x3d9cad2baf702e20b136f4c8900cd8024e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x3db7a24cfdc9de785974746c14a99df94e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x3f1467a096bcd71a5b6a0c8155e208104e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3fba98689ebed1138735e0e7a5a790ab4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x3fba98689ebed1138735e0e7a5a790abee99a84ccbfb4b82e714617e5e06f6f7": "0xd0070000", + "0x426e15054d267946093858132eb537f14e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x42b50b77ef717947e7043bb52127d6654e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x4da2c41eaffa8e1a791c5d65beeefd1f028685274e698e781f7f2766cba0cc8300000000": "0x0c020000000000000001000000abc3f086f5ac20eaab792c75933b2e196307835a61a955be82aa63bc0ff9617a060000000c90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48000000000000000000000000000000000000000100000000000000", + "0x4da2c41eaffa8e1a791c5d65beeefd1f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x4da2c41eaffa8e1a791c5d65beeefd1f5762b52ec4f696c1235b20491a567f8500000000": "0x00", + "0x4da2c41eaffa8e1a791c5d65beeefd1fff4a51b74593c3708682038efe5323b5": "0x00000000", + "0x50e709b04947c0cd2f04727ef76e88f64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5c0d1176a568c1f92944340dbfed9e9c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5c0d1176a568c1f92944340dbfed9e9c530ebca703c85910e7164cb7d1c9e47b": "0xd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d", + "0x5f27b51b5ec208ee9cb25b55d8728243308ce9615de0775a82f8a94dc3d285a1": "0x01", + "0x5f27b51b5ec208ee9cb25b55d87282434e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x5f9cc45b7a00c5899361e1c6099678dc4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0x5f9cc45b7a00c5899361e1c6099678dc8a2d09463effcc78a22d75b9cb87dffc": "0x0000000000000000", + "0x5f9cc45b7a00c5899361e1c6099678dcd47cb8f5328af743ddfb361e7180e7fcbb1bdbcacd6ac9340000000000000000": "0x00000000", + "0x63f78c98723ddc9073523ef3beefda0c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6786c4cec8d628b6598d7a70ace7acd44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6a0da05ca59913bc38a8630590f2627c2a351b6a99a5b21324516e668bb86a57": "0x00", + "0x6a0da05ca59913bc38a8630590f2627c4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6ac983d82528bf1595ab26438ae5b2cf4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x6cf4040bbce30824850f1a4823d8c65f4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x7474449cca95dc5d0c00e71735a6d17d4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0x89d139e01a5eb2256f222e5fc5dbe6b34e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x928fa8b8d92aa31f47ed74f188a43f704e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x94eadf0156a8ad5156507773d0471e4a16973e1142f5bd30d9464076794007db": "0x00", + "0x94eadf0156a8ad5156507773d0471e4a1e8de4295679f32032acb318db364135": "0x00", + "0x94eadf0156a8ad5156507773d0471e4a4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x94eadf0156a8ad5156507773d0471e4a64fb6e378f53d72f7859ad0e6b6d8810": "0x0000000000", + "0x94eadf0156a8ad5156507773d0471e4a9ce0310edffce7a01a96c2039f92dd10": "0x01000000", + "0x94eadf0156a8ad5156507773d0471e4ab8ebad86f546c7e0b135a4212aace339": "0x00", + "0x9c5d795d0297be56027a4b2464e333974e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0x9c5d795d0297be56027a4b2464e33397f43d6436dec51f09c3b71287a8fc9d48": "0x00000000000000000000000000000000", + "0xa2ce73642c549ae79c14f0a671cf45f94e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xa37f719efab16103103a0c8c2c784ce14e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xa8c65209d47ee80f56b0011e8fd91f504e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xaebd463ed9925c488c112434d61debc04e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xb341e3a63e58a188839b242d17f8c9f82586833f834350b4d435d5fd269ecc8b": "0x0c020000000000000001000000", + "0xb341e3a63e58a188839b242d17f8c9f84e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xb341e3a63e58a188839b242d17f8c9f87a50c904b368210021127f9238883a6e": "0x0c90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d8eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48", + "0xb341e3a63e58a188839b242d17f8c9f8b5cab3380174032968897a4c3ce57c0a": "0x00000000", + "0xc2261276cc9d1f8598ea4b6a74b15c2f4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xc2261276cc9d1f8598ea4b6a74b15c2f57c875e4cff74148e4628f264b974c80": "0x55a0acda6b9088a60000000000000000", + "0xca32a41f4b3ed515863dc0a38697f84e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcd710b30bd2eab0352ddcc26417aa1944e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcd710b30bd2eab0352ddcc26417aa1949f4993f016e2d2f8e5f43be7bb259486": "0x00", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb30e5be00fbc2e15b5fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e": "0xd17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae698eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f27", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3ce4f6702f7c0a2951e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625": "0x439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe220389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb", + "0xcec5070d609dd3497f72bde07fc96ba04c014e6bf8b8c2c011e7290b85696bb3e535263148daaf49be5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f": "0x88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1", + "0xcec5070d609dd3497f72bde07fc96ba04e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500b42ace3b5fab73c6265656684020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500e3a507571a62417696d6f6e808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19500e9b1341d066bc7162656566840389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195021cd04f63ad37128626162658090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950246b6699fb8b8db670617261808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19504a8e42157609c6c86173676e80d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19505905fe216cc5924c6772616e80d17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae69": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195062190f64559b55c9696d6f6e8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195066b8d48da86b869b6261626580d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950721887aafd517d296173676e8090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa195079b38849014a07307061726180d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19508b6d3621e5bd57f16772616e80439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa19509d4a4cfe1c2ef0b961756469808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950bcb9c3677bfe9155706172618090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c0cadce9c18510226173676e808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c7e637254b9ea61962656566840390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f27": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950c9b0c13125732d276175646980d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950ce1dd85a539ac289617564698090b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe22": "0x1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950d62c40514b41f31962616265808eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a48": "0xfe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950ed43a85541921049696d6f6e80d43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba0726380404683fc89e8233450c8aa1950f5537bdb2a1f626b6772616e8088dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0ee": "0xbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f", + "0xcec5070d609dd3497f72bde07fc96ba088dcde934c658227ee1dfafcd6e16903": "0x0cbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25ffe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860e1e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625", + "0xcec5070d609dd3497f72bde07fc96ba0e0cdd062e6eaf24295ad4ccfc41d4609": "0x0cbe5ddb1579b72e84524fc29e78609e3caf42e85aa118ebfe0b0ad404b5bdd25f88dc3417d5058ec4b4503e0c12ea1a0a89be200fe98922423d4334014fa6b0eed43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27dd43593c715fdd31c61141abd04a99fd6822c8558854ccde39a5684e7a56da27d020a1091341fe5664bfa1782d5e04779689068c916b04cb365ec3153755684d9a1fe65717dad0447d715f660a0a58411de509b42e6efb8375f562f58a554d5860ed17c2d7823ebf260fd138f2d7e27d114c0145d968b5ff5006125f2414fadae698eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a488eaf04151687736326c9fea17e25fc5287613693c912909cb226aa4794f26a480390084fdbf27d2b79d26a4f13f0ccd982cb755a661969143c37cbc49ef5b91f271e07379407fecc4b89eb7dbd287c2c781cfb1907a96947a3eb18e4f8e7198625439660b36c6c03afafca027b910b4fecf99801834c62a5e6006f27d978de234f90b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe2290b5ab205c6974c9ea841be688864633dc9ca8a357843eeacf2314649965fe220389411795514af1627765eceffcbd002719f031604fadd7d188e2dc585b4e1afb", + "0xd57bce545fb382c34570e5dfbf338f5e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5c41b52a371aa36c9254ce34324f2a54e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd5e1a2fa16732ce6906189438c0a82c64e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd8bbe27baf3aa64bb483afabc240f68e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xd8f314b7f4e6b095f0f8ee4656a448254e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xda7d4185f8093e80caceb64da45219e30c98535b82c72faf3c64974094af4643": "0x0100000000000000030000000dbfa19dafecc6c6c04586ce02ad17e404dd9aa1ddde5521f3169b192ca4a699", + "0xda7d4185f8093e80caceb64da45219e34e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xda7d4185f8093e80caceb64da45219e3c52aa943bf0908860a3eea0fad707cdc": "0x0000000000000000030000000dbfa19dafecc6c6c04586ce02ad17e404dd9aa1ddde5521f3169b192ca4a699", + "0xe2e62dd81c48a88f73b6f6463555fd8e4e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xed25f63942de25ac5253ba64b5eb64d14e7b9012096b41c4eb3aaf947f6ea429": "0x0400", + "0xedfb05b766f199ce00df85317e33050e4e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xf0c365c3cf59d671eb72da0e7a4113c44e7b9012096b41c4eb3aaf947f6ea429": "0x0000", + "0xf2794c22e353e9a839f12faab03a911b4e7b9012096b41c4eb3aaf947f6ea429": "0x0100", + "0xf2794c22e353e9a839f12faab03a911b7f17cdfbfa73331856cca0acddd7842e": "0x00000000", + "0xf2794c22e353e9a839f12faab03a911bbdcb0c5143a8617ed38ae3810dd45bc6": "0x00000000", + "0xf2794c22e353e9a839f12faab03a911be2f6cb0456905c189bcb0458f9440f13": "0x00000000", + "0xf5207f03cfdce586301014700e2c25934e7b9012096b41c4eb3aaf947f6ea429": "0x0100" + }, + "childrenDefault": {} + } + } +} \ No newline at end of file